mirror of
https://github.com/open-simh/simh.git
synced 2026-01-17 16:54:08 +00:00
The canonical boot sequence uses WIM 0,2 in location 5 and an initial load address in location 11 (and in the X register). This is limiting for devices like RAD that do not report an end-of-file, or for paper tape that report EOF too late and cause the WIM to fail. A simple load address in location 11, with bit 9 set to satisfy the BRX, doesn't do any word counting. The BRX always branches back to location 5. This change allows a true negative word count to be placed in location 11 to work with a WIM XXXXX,2 where XXXXX is one location past the region to be loaded by the boot sequence. XXXXX plus the negative count in location 11 (buf[3]+buf[7]) initially points to the first location to be loaded, and the BRX will not branch when the word count is exhausted (register X=0) allowing the branch to the start address to be executed. Old allowable boot sequence: location 2 = WIM 12,2 location 3 = BRX 2 location 4 = LDX 11 location 5 = WIM 0,2 location 6 = SKS 21000 location 7 = BRX 5 location 10 = BRU Transfer Address location 11 = Load address with bit 9 set to force BRX to branch New allowable boot sequence: location 2 = WIM 12,2 location 3 = BRX 2 location 4 = LDX 11 location 5 = WIM [end load address + 1],2 location 6 = SKS 21000 location 7 = BRX 5 location 10 = BRU Transfer Address location 11 = Negative count to number of words to load