Bare Metal Diagnostic ROM: Now good enough to use.
Posted: Mon Jun 23, 2025 5:24 pm
My bare metal diagnostic ROM is now good enough to be declared version 0.10.
The ROM image can be downloaded from the Github repository ( https://github.com/stephen-usher/Sincla ... l-Diag-ROM ) as the file "diagrom.bin".
This replaces the system ROMs in the same way as you would with an adapter for Minerva. Alternatively, you can hack a ROM cartridge so it selects the ROM for the whole of the ROM address range and use a Winbond W27C512 EEPROM as this has line drivers strong enough to override the system masked ROMs.
What the ROM can do.
The ROM will output to ser2 at 4800 baud and try to output to the screen at the same time. This means that if the video output part of the machine is non-functional you can still see if the rest of the machine is working.
The first thing the ROM will do will be to write a banner to both the screen and serial port before running a March and 'Own address' memory test on the main 128K of memory. It does this without requiring any working memory in the system. (Of course, if there's no RAM then nothing will appear on the screen.)
If the memory test fails then a message with address and error bits will be printed to the serial port and a set of coloured bars will be put into screen memory. The first is black or white depending upon which bank of memory failed, followed by red or green strips for each of the 8 bits.
If the memory test passes then the main initial tests are run. i.e. testing for and testing RAM expansions, testing the IPC, reading the keyboard and finally reading the serial port (ser2).
If this much of the machine is running using this ROM then it *should* boot QDOS or Minerva. If the tests fail you should be able to know where to look to fix the machine.
The ROM image can be downloaded from the Github repository ( https://github.com/stephen-usher/Sincla ... l-Diag-ROM ) as the file "diagrom.bin".
This replaces the system ROMs in the same way as you would with an adapter for Minerva. Alternatively, you can hack a ROM cartridge so it selects the ROM for the whole of the ROM address range and use a Winbond W27C512 EEPROM as this has line drivers strong enough to override the system masked ROMs.
What the ROM can do.
The ROM will output to ser2 at 4800 baud and try to output to the screen at the same time. This means that if the video output part of the machine is non-functional you can still see if the rest of the machine is working.
The first thing the ROM will do will be to write a banner to both the screen and serial port before running a March and 'Own address' memory test on the main 128K of memory. It does this without requiring any working memory in the system. (Of course, if there's no RAM then nothing will appear on the screen.)
If the memory test fails then a message with address and error bits will be printed to the serial port and a set of coloured bars will be put into screen memory. The first is black or white depending upon which bank of memory failed, followed by red or green strips for each of the 8 bits.
If the memory test passes then the main initial tests are run. i.e. testing for and testing RAM expansions, testing the IPC, reading the keyboard and finally reading the serial port (ser2).
If this much of the machine is running using this ROM then it *should* boot QDOS or Minerva. If the tests fail you should be able to know where to look to fix the machine.