simh-testsetgenerator/SDS
Mark Emmer c256894b62 SDS: Allow LOAD command to accept a more flexible boot sequence
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
2014-03-05 19:08:33 -06:00
..
sds_cpu.c SDS: Install better fix for 2x real-time clock speed problem 2014-03-04 17:39:34 -06:00
sds_defs.h SDS: Allow specifying breakpoints as being in monitor, user or normal mode only 2014-03-02 22:47:39 -06:00
sds_diag.txt Notes For V2.10-4 2011-04-15 08:34:03 -07:00
sds_drm.c Compiler nits for void * assignments from Bob Supnik 2013-09-04 19:50:47 -07:00
sds_dsk.c Cleanup for warning messages produced by the clang C compiler. Mostly adding parentheses in conditional assignments and clarification parentheses in complex boolean expressions. 2012-04-29 11:59:44 -07:00
sds_io.c SDS: Various fixes to asynchronous communication mux 2014-03-02 22:26:44 -06:00
sds_lp.c Cleanup for warning messages produced by the clang C compiler. Mostly adding parentheses in conditional assignments and clarification parentheses in complex boolean expressions. 2012-04-29 11:59:44 -07:00
sds_mt.c Set device flags indicating DEV_DISK, DEV_TAPE, DEV_MUX and DEV_ETHER for all simulator devices which use the sim_disk, sim_tape, sim_tmxr, and sim_ether libraries 2013-01-07 12:47:24 -08:00
sds_mux.c SDS: Various fixes to asynchronous communication mux 2014-03-02 22:26:44 -06:00
sds_rad.c SDS: Fixed head disk addressing corrected when start new sector 2014-03-02 22:27:45 -06:00
sds_stddev.c Compiler suggested cleanup 2013-05-23 11:27:53 -07:00
sds_sys.c SDS: Allow LOAD command to accept a more flexible boot sequence 2014-03-05 19:08:33 -06:00