Dwight wrote... > If you still have a working machine, why not disassemble the boot ROMs. They are only a few instructions long. Not necessary, as the source and binary for all the loader roms is in the aforementioned manual. None of them are "only a few instructions long". Most of them are a couple pages of assembler code.
> As I recall, in the boot sequence, it transfers the ROMs to ram and then executes it. Pressing the IPL/TEST button does the following: 1) It executes cpu diagnostic 1 (registers and a few functions) and 2 (quick memory test, up to 32kw) that are stored in microcode. 2) It transfers any one of the four installed loader roms (as designated by switch register bits 15 & 14) to the last (up to 32kw) 64 words of memory. 3) Any I/O instructions in the loader are automatically patched during the transfer (based on switch register bits 11 through 6) so that the correct I/O address (device) is referenced. 4) The program counter is set to the first word of the last (up to 32kw) 64 words. Then you can hit the run switch to execute the (patched) loader. Interesting to me... on the 2100A/S, the last 64 words of memory can be protected. They cannot be accessed unless the "loader enable" button/light has been pressed. This makes it less likely that your loader (which had to be hand entered on that model as it didn't support "loader roms") would accidentally be clobbered by other code. The loader enable button stays on until the computer reaches a halt instruction or the halt button is pressed. So the typical process was to set the program counter to the first word of the last 64 words (up to 32kw) of memory, press loader enable, then run. Once the loader finished loading whatever it's target was, it would halt (thus re-protecting the loader). Then the user could press run to execute the target code and not worry about the loader getting toasted. Best, J