diff --git a/.gitattributes b/.gitattributes index 8656dffb..ed3ba613 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,5 +7,6 @@ *.bin binary *.imd binary *.rim binary +*.tap binary sim_rev.h export-subst diff --git a/CDC1700/CDC1700-Customization.txt b/CDC1700/CDC1700-Customization.txt new file mode 100644 index 00000000..06661909 --- /dev/null +++ b/CDC1700/CDC1700-Customization.txt @@ -0,0 +1,189 @@ +Customizing MSOS 5 For the CDC 1700 Simulator +============================================= + +1. Overview + + Each MSOS 5 customer was provided with at least 2 sets of distribution +materials for MSOS 5 (on punched cards or magnetic tape): + + 1. A full distribution of all possible system modules for all supported + hardware confugurations (the Fortran library on the other hand is + tailored for a particular installation). + + 2. A distribution tailored for a specific installation. It only contains + device drivers for a specific configuration and may or may not include + modules from the Fortran run-time library. + +Unfortunately none of the full distribution kits have survived so we will +have to make use of a tailored distribution. This means that we will only be +able to remove device drivers and make small modifications to a running system. + + System customization consists of making modifications to 1 or 2 +source-level components: + + 1. The system skeleton which describes which is read by the initializer and + defines which components should be loaded into the system image and + specifies which components should be loaded on the library disk. The + skeleton is also able to define global values by the system. + + 2. SYSDAT. This an assembler source file which describes the peripheral + configuration including interrupts and equipment addresses. Optional + components, such as file manager, may have dedicated sections of SYSDAT. + +The system skeleton may be extracted and edited by an application called SKED. +This is a very primitive line editor but, fortunately, most of the changes are +in SYSDAT. SYSDAT is usually provided as the last file present on a tailored +magtape distribution. Unfortunately I have been unable to use MSOS tools to +extract a useable version from a magtape so I wrote Unix tools to manipulate +magtape containers and compress/decompress COSY format files (rawtap & cosy). +Each customization builds on the previous version to change setting and/or +change MSOS drivers. Each customization is driven by a simh script, takes an +existing installation tape (typically MSOS5_SL136.tap) and generates a new +installation tape (MSOS5-Install.trap). When SYSDAT needs to be modified, a +sysdat.asm file is present which needs to be converted to fixed size (80 +characters) records and written to a magtape container: + + dd if=sysdat.asm of=sysdat.asm.blk cbs=80 conv=block + rawtap -c sysdat.tap -r 80 sysdat.asm.blk + +To perform a customization, a running installation generated by +msosInstall.simh is required. If necessary, create sysdat.tap as described +above (customizations 2 - 5) and run the simulator: + + cdc1700 msosCustomX.simh + +where X is 1 to 5 depending on which customization is required. +does not need to be specified if it is MSOS5_SL136.tap in the current +directory. The script will run through the customization steps and generate a +new install tape (MSOS5-Install.tap). msosInstall.simh can be used with this +tape to create a customized system. + +Each customization directory includes msosCustomX.simh as well as sysdat.asm +and sysdat.tap (customization 1 does not require sysdat changes so it only +contains msosCustom1.simh. + + +2. Customization 1 + + This customization changes the creation date of the OS which is +output to the console when the system boots. The changes are in-line in +msosCustom1.simh. SYSMON, SYSDAY and SYSYER modified by SKED. The values are +the month, day and year in ASCII (high byte first). + + +3. Customization 2 + + This customization also changes the name of the system from "EXXON +DEVELOPMENT SYSTEM" to "SIMH DEVELOPMENT SYSTEM". Note that the SYSDAT module +name still includes "EXXON DEVELOPMENT SYSTEM" since there is no way to delete +a module and include a new one, only the ability to replace an existing module +is available. + + +4. Customization 3 + + The default installation from MSOS5_SL136.tap sets up all four disk +drives as well as the drum for file storage. I have been unable to find a +method for initializing the disk space for anything other than the the +library disk (CDD0/CDD1). This customization changes the file manager +configuration to only use the library disk for storage. This change gets rid +of one of the verification errors. + + +5. Customization 4 + + This customization gets rid of the 1743-2 Asynch communications +controller drive. There is no documentation for this device and it appears to +be used for the TIMESHARE option for which there are no good tapes available. + + +6. Customization 5 + + This customization adds support for a 10336 real-time clock which +interrupts at ~60Hz. After all of the above modifications, an example run of +the system: + +MSOS 5.0--PSR LEVEL 120 04/19/17 + + +SET PROGRAM PROTECT + + +SIMH DEVELOPMENT SYSTEM + + +65K MODE + + +CHECKING FILES - OK + + +ENTER DATE/TIME MMDDYYHHMM + +0508891516 +DATE: 08 MAY 89 TIME: 1516:00 +MI +*BATCH +J +*JOB +J +*K,L4 +J +*LULIST + E10 + LOG1A + SYSID + SYSYER + SYSDAY + SYSMON + + +E *E + + +MSOS 5.0 LOGICAL UNIT LISTING FOR SIMH DEVELOPMENT SYSTEM 04/19/17 +LU. EQUIPMENT DESCRIPTION READ/WRITE CLASS CODE EQ NO +01. SOFTWARE CORE ALLOCATOR READ/WRITE NO CLASS CODE EQ 00 +02. SOFTWARE DUMMY ALTERNATE DEVICE READ/WRITE NO CLASS CODE EQ 00 +03. SOFTWARE DUMMY ALTERNATE DEVICE READ/WRITE NO CLASS CODE EQ 00 +04. 1711 TELETYPEWRITER READ/WRITE TELETYPE EQ 01 +05. COSY UNIT READ/WRITE MAGNETIC TAPE EQ 00 +06. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +07. PSEUDO TAPE UNIT READ/WRITE MAGNETIC TAPE EQ 00 +08. 1733-2/856-4 DISK UNIT (4.5M) READ/WRITE MASS STORAGE EQ 03 +09. 1742-120 LINE PRINTER WRITE ONLY LINE PRINTER EQ 04 +10. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +11. 1728/430 CARD READER/PUNCH READ/WRITE CARD RDR/PUNCH EQ 10 +12. 1742-120 LINE PRINTER WRITE ONLY LINE PRINTER EQ 04 +13. 1733-2/856-4 DISK UNIT (4.5M) READ/WRITE MASS STORAGE EQ 03 +14. 1733-2/856-4 DISK UNIT (4.5M) READ/WRITE MASS STORAGE EQ 03 +15. 1733-2/856-4 DISK UNIT (4.5M) READ/WRITE MASS STORAGE EQ 03 +16. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +17. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +18. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +19. PSEUDO TAPE UNIT READ/WRITE MAGNETIC TAPE EQ 00 +20. PSEUDO TAPE UNIT READ/WRITE MAGNETIC TAPE EQ 00 +21. PSEUDO TAPE UNIT READ/WRITE MAGNETIC TAPE EQ 00 +22. PSEUDO DISK DRIVER READ/WRITE MASS STORAGE EQ 00 +23. PSEUDO DISK DRIVER READ/WRITE MASS STORAGE EQ 00 +24. PSEUDO DISK DRIVER READ/WRITE MASS STORAGE EQ 00 +25. PSEUDO DISK DRIVER READ/WRITE MASS STORAGE EQ 00 +26. 1752 DRUM UNIT READ/WRITE MASS STORAGE EQ 02 +27. COSY UNIT READ/WRITE MAGNETIC TAPE EQ 00 +28. 1728/430 CARD READER/PUNCH READ/WRITE CARD RDR/PUNCH EQ 10 +29. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +30. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +31. 1732-3/616-92 MAG TAPE READ/WRITE MAGNETIC TAPE EQ 07 +32. 1742-120 LINE PRINTER WRITE ONLY LINE PRINTER EQ 04 +33. 1728/430 CARD READER/PUNCH READ/WRITE CARD RDR/PUNCH EQ 10 +34. 1711 TELETYPEWRITER READ/WRITE TELETYPE EQ 01 +J + + +7. RPG II and Cobol Installation + + While installation materials for both RPG II and Cobol are available +on bitsavers.org (141_PRODUCT_SET.tap contains both) they are built to run +in core partition 3 which does not exist in the standard distribution tape +(MSOS5_SL136.tap). There does not appear to be sufficient documentation +available to add another partition. diff --git a/CDC1700/CDC1700-Diagnostics.txt b/CDC1700/CDC1700-Diagnostics.txt index c4b53f9c..23ee461a 100644 --- a/CDC1700/CDC1700-Diagnostics.txt +++ b/CDC1700/CDC1700-Diagnostics.txt @@ -50,6 +50,8 @@ FE QL2 10196 095C Quick Look 2 (more detailed instruction set test) 4B PET 12166 0C14 1732-2/1732-3 Magnetic Tape Test Passed in programmed I/O mode Failed in DMA mode +80 DRM 11086 2702 BG504 Drum Test + Passed 91 RTC 10216 04DA System 17 Real Time Clock Test Passed @@ -269,7 +271,7 @@ FC DPC 09146 0685 Disk Call-up Program 87 SCC 07155 0BCD Synchronous Communication Controller (FJ606-A) Test 88 CPC 10216 0E5C 1725-1 Card Punch Test 89 BSC 11196 0CC3 Cyberdata Bisync Controller Test -8A HFP 07046 1CDE 1781-a Hardware Floating Point Unit Test +8A HFP 07046 1CDE 1781-A Hardware Floating Point Unit Test 90 IOM 11096 0B8B IOM Mother Unit Digital Input/Output Test 91 RTC 10216 04DA System 17 Real Time Clock Test 92 PT1 10205 0617 1720-1 Paper Tape Punch Test diff --git a/CDC1700/CDC1700-MSOS.txt b/CDC1700/CDC1700-MSOS.txt index b0d46738..8082b751 100644 --- a/CDC1700/CDC1700-MSOS.txt +++ b/CDC1700/CDC1700-MSOS.txt @@ -874,7 +874,7 @@ the simtools respository on github: *Z This will compile the source code, send a message to the comment device -(typically the console TTY) and then load an execute the program. If the +(typically the console TTY) and then load and execute the program. If the program reads data from standard input it should follow the *LGO command. 4. The compiler/assembler expects each line of input to be in a separate @@ -892,8 +892,8 @@ program reads data from standard input it should follow the *LGO command. running. Listings should be sent to the line printer along with any output from the application. -If you want to code is Macro Assembler, the operations are the same; change -*FTN to *ASSEM and change the OPT parameters. Documentation for both the -Macro Assembler and Fortran compiler are available on bitsavers.org. +If you want to code in Macro Assembler, the operations are the same; change +*FTN to *ASSEM and change the OPT parameters. Documentation for both the Macro +Assembler and Fortran compiler are available on bitsavers.org. diff --git a/CDC1700/CDC1700.txt b/CDC1700/CDC1700.txt index 07f8c277..4739c9ed 100644 --- a/CDC1700/CDC1700.txt +++ b/CDC1700/CDC1700.txt @@ -80,6 +80,11 @@ mostly from the early period of its release: [Equipment address: 0x3] + DRM 1752 Drum memory controller with 64 - 1024 tracks of + drum memory (each track is 3072 words). + + [Equipment address: 0x2] + Notes: DP and CDD use the same equipment address so only 1 of them may be enabled (default is for CDD to be enabled). @@ -132,11 +137,12 @@ handling: 3.2 Disk autoload - The autoload mechanism loads track 0 from logical drive 0 of a disk -controller to memory location 0, it does not start execution of the loaded -code (some of the diagnostics code relies on this). Both DP and CD controllers -support the autoload command ("autoload dp" or "autoload cd") which is -normally followed by a "run 0" command to start execution of the loaded code. + The autoload mechanism loads track 0 from logical drive 0 of a disk or +drum controller to memory location 0, it does not start execution of the loaded +code (some of the diagnostics code relies on this). DP, CDD and DRM controllers +support the autoload command ("autoload dp", "autoload cdd" or "autoload drm") +which is normally followed by a "run 0" command to start execution of the +loaded code. 4. Operating The Simulator @@ -195,5 +201,15 @@ The actual key combination may be changed by issuing the command 5. Software There is some software available at bitsavers.org in the -bits/CDC/1700_Cyber18 directory, see CDC1700_Diagnostics.txt and -CDC1700_MSOS.txt for more details. +bits/CDC/1700_Cyber18 directory, see CDC1700-Diagnostics.txt and +CDC1700-MSOS.txt for more details. + + +6. Cyber-18 + + The CDC 1700 later morphed into the Cyber-18 series. This series +included an enhanced instruction set using unused bits from the 1700 +instruction encoding. The simulator can detect these instructions and can be +configured to stop if it tries to execute such an instruction +(set cpu debug=enhanced). Due to a lack of detailed documentation it it +unlikely that the enhanced instruction set will ever be completely implemented. diff --git a/CDC1700/cdc1700_cd.c b/CDC1700/cdc1700_cd.c index 7fa54f4d..d82ce6d6 100644 --- a/CDC1700/cdc1700_cd.c +++ b/CDC1700/cdc1700_cd.c @@ -300,7 +300,7 @@ t_bool CDintr(IO_DEVICE *); IO_DEVICE CDdev = IODEV(NULL, "1733-2", 1733, 3, 0xFF, 0, CDreject, CDin, CDout, NULL, NULL, - CDstate, CDintr, NULL, NULL, + CDstate, CDintr, NULL, NULL, NULL, NULL, 0x7F, 8, MASK_REGISTER0 | MASK_REGISTER1 | MASK_REGISTER2 | \ MASK_REGISTER3 | MASK_REGISTER4 | MASK_REGISTER5 | \ @@ -876,7 +876,7 @@ void CDDiskIO(UNIT *uptr, uint16 iotype) if ((cd_dev.dctrl & DBG_DERROR) != 0) fprintf(DBGOUT, - "%sCD - ReadWrite/Compare failed - %s\r\n", + "%sCD - Read/Write/Compare failed - %s\r\n", INTprefix, error); fw_IOalarm(FALSE, &cd_dev, &CDdev, "Alarm"); @@ -1235,6 +1235,8 @@ enum IOstatus CDout(IO_DEVICE *iod, uint8 reg) /*** TODO: Check protect conditions ***/ } + CDdev.STATUS &= ~IO_1733_SINGLE; + if ((IOAreg & IO_1733_USEL) != 0) { CDdev.iod_drive = NULL; CDdev.STATUS &= ~(IO_1733_ONCYL | IO_ST_BUSY | IO_ST_READY); @@ -1244,6 +1246,13 @@ enum IOstatus CDout(IO_DEVICE *iod, uint8 reg) CDdev.iod_drive = iou; CDdev.STATUS |= IO_ST_READY; + /* + * We only need to check on of the physical drives to see if it is + * an 856-4 since both drive types are updated together. + */ + if ((iou->ondrive[0]->flags & UNIT_856_4) == 0) + CDdev.STATUS |= IO_1733_SINGLE; + if (iou->active == NULL) { int first = ((cd_dev.flags & DEV_FIXED) != 0) ? 1 : 0; @@ -1351,14 +1360,14 @@ enum IOstatus CDout(IO_DEVICE *iod, uint8 reg) */ t_stat CDautoload(void) { - UNIT *uptr = &cd_unit[(cd_dev.flags & DEV_FIXED) ==0 ? 0 : 1]; + UNIT *uptr = &cd_unit[(cd_dev.flags & DEV_FIXED) == 0 ? 0 : 1]; if ((uptr->flags & UNIT_ATT) != 0) { uint32 i; for (i = 0; i < CD_NUMSC; i++) { t_offset offset = i * CD_NUMBY; - void * buf = &M[i * CD_NUMWD]; + void *buf = &M[i * CD_NUMWD]; if (sim_fseeko(uptr->fileref, offset, SEEK_SET) || (sim_fread(buf, sizeof(uint16), CD_NUMWD, uptr->fileref) != CD_NUMWD)) diff --git a/CDC1700/cdc1700_cpu.c b/CDC1700/cdc1700_cpu.c index d0b0de67..d0788028 100644 --- a/CDC1700/cdc1700_cpu.c +++ b/CDC1700/cdc1700_cpu.c @@ -50,28 +50,50 @@ * CPU interrupts are edge-triggered. The interrupt trigger is * automatically lowered when the CPU starts processing interrupt 0. * - * 2. There is no documention on relative timing. For example, the paper tape + * 2. Interrupts - undocumented feature + * + * The 1704 and 1784 processor doucmentation has a section describing + * interrupt handling. There is a sub-section titled "Sharing subroutines + * between interrupt levels" which indicates that a subroutine such as: + * + * SUBR ADC 0 + * IIN + * + * EIN + * JMP* (SUBR) + * + * may be shared between interrupt levels. It include the text "Interrupts + * occuring after the execution of the RTJ are blocked because the IIN is + * executed. These interrupts are not recognized until after the jump is + * executed, because one instruction must be executed after an EIN before + * the interrupt system is active". + * + * The implication of this is that interrupts must be deferred for one + * instruction following an RTJ. And indeed, deferring interrupts after + * an RTJ fixed a crash I was seeing on a customized version of MSOS 5.0. + * + * 3. There is no documention on relative timing. For example, the paper tape * punch diagnostic enables Alarm+Data interrupts and assumes that it will * be able to execute some number of instructions before the interrupt * occurs. How many instructions should we delay if interrupts are enabled * and all conditions are met to deliver the interrupt immediately? * - * 3. Some peripherals, notably the teletypewriter, do not have a protected + * 4. Some peripherals, notably the teletypewriter, do not have a protected * status bit. Does this mean that any application can directly affect * them? * * - The teletypewriter may be addressed by either a protected or a * nonprotected instruction (see SC17 Reference Manual). * - * 4. The 1740/1742 line printer controllers are incorrectly documented as + * 5. The 1740/1742 line printer controllers are incorrectly documented as * having the status register at offset 3, it is at offset 1 like all * other peripherals. * - * 5. For the 1738 disk pack controller, what is the correct response if an + * 6. For the 1738 disk pack controller, what is the correct response if an * operation is initiated with no drive selected? For now, we'll reject * the request. * - * 6. For the 1706-A buffered data channel, what interrupt is used to signal + * 7. For the 1706-A buffered data channel, what interrupt is used to signal * "End of Operation"? A channel-specific interrupt or a pass-through * interrupt from the device being controlled or some other? * @@ -123,6 +145,7 @@ uint8 P[MAXMEMSIZE]; t_uint64 Instructions; uint16 Preg, Areg, Qreg, Mreg, CAenable, OrigPreg, Pending, IOAreg, IOQreg; +uint16 R1reg, R2reg, R3reg, R4reg; uint8 Pfault, Protected, lastP, Oflag, INTflag, DEFERflag; t_bool ExecutionStarted = FALSE; @@ -177,7 +200,7 @@ t_stat cpu_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE CPUdev = IODEV(NULL, "1714", CPU, 0, 0xFF, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - 0, 0, 0, 0, 0, 0, 0, 0, NULL); + NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, NULL); /* CPU data structures @@ -1128,6 +1151,7 @@ t_stat executeAnInstruction(void) StoreToMem(operand, Preg); Preg = operand; INCP; + DEFERflag = 1; break; case OPC_STQ: @@ -1185,7 +1209,8 @@ t_stat executeAnInstruction(void) } break; } - /*** TODO: Enhanced skip instructions ***/ + Preg = OrigPreg; + return SCPE_UNIMPL; break; } break; @@ -1427,8 +1452,8 @@ t_stat executeAnInstruction(void) case INSTR_ENHANCED: if ((instr & OPC_MODMASK) != 0) { - /*** TODO: Enhanced instructions ***/ - goto done; + Preg = OrigPreg; + return SCPE_UNIMPL; } break; } @@ -1635,7 +1660,8 @@ t_stat executeAnInstruction(void) case INSTR_ENHANCED: if ((instr & OPC_MODMASK) != 0) { - /*** TODO: Enhanced miscellaneous instructions ***/ + Preg = OrigPreg; + return SCPE_UNIMPL; } break; } diff --git a/CDC1700/cdc1700_dc.c b/CDC1700/cdc1700_dc.c index 481e9bfe..963f465c 100644 --- a/CDC1700/cdc1700_dc.c +++ b/CDC1700/cdc1700_dc.c @@ -116,7 +116,7 @@ t_stat dc_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE DCAdev = IODEV(NULL, "1706-A", DC, 0, 0xFF, IO_1706_1_A, DCreject, DCin, DCout, NULL, NULL, - DCstate, NULL, NULL, NULL, + DCstate, NULL, NULL, NULL, NULL, NULL, 0x7F, 4, MASK_REGISTER0 | MASK_REGISTER1 | \ MASK_REGISTER2 | MASK_REGISTER3, @@ -124,7 +124,7 @@ IO_DEVICE DCAdev = IODEV(NULL, "1706-A", DC, 0, 0xFF, IO_1706_1_A, IO_DEVICE DCBdev = IODEV(NULL, "1706-A", DC, 0, 0xFF, IO_1706_2_A, DCreject, DCin, DCout, NULL, NULL, - DCstate, NULL, NULL, NULL, + DCstate, NULL, NULL, NULL, NULL, NULL, 0x7F, 4, MASK_REGISTER0 | MASK_REGISTER1 | \ MASK_REGISTER2 | MASK_REGISTER3, @@ -132,7 +132,7 @@ IO_DEVICE DCBdev = IODEV(NULL, "1706-A", DC, 0, 0xFF, IO_1706_2_A, IO_DEVICE DCCdev = IODEV(NULL, "1706-A", DC, 0, 0xFF, IO_1706_3_A, DCreject, DCin, DCout, NULL, NULL, - DCstate, NULL, NULL, NULL, + DCstate, NULL, NULL, NULL, NULL, NULL, 0x7F, 4, MASK_REGISTER0 | MASK_REGISTER1 | \ MASK_REGISTER2 | MASK_REGISTER3, diff --git a/CDC1700/cdc1700_defs.h b/CDC1700/cdc1700_defs.h index 5eb7fa10..22539b18 100644 --- a/CDC1700/cdc1700_defs.h +++ b/CDC1700/cdc1700_defs.h @@ -44,6 +44,7 @@ #define SCPE_INVEXI 3 /* Invalid bit in EXI delta */ #define SCPE_IBKPT 4 /* Breakpoint */ #define SCPE_REJECT 5 /* Stop on reject */ +#define SCPE_UNIMPL 6 /* Unimplemented instruction */ /* * Private device flags @@ -113,11 +114,13 @@ #define UNIT_V_854 (UNIT_V_UF + 0) /* 854 vs. 853 disk pack drive */ #define UNIT_V_856_4 (UNIT_V_UF + 0) /* 856_4 vs. 856_2 drive */ +#define UNIT_V_DRMSIZE (UNIT_V_UF + 0) /* 1752 drum memory assignment */ #define UNIT_7TRACK (1 << UNIT_V_7TRACK) #define UNIT_WPROT (1 << UNIT_V_WPROT) #define UNIT_854 (1 << UNIT_V_854) #define UNIT_856_4 (1 << UNIT_V_856_4) +#define UNIT_DRMSIZE (1 << UNIT_V_DRMSIZE) /* * CPU @@ -386,8 +389,10 @@ enum IOstatus { */ #define MOD_ENHRE 0x0080 #define MOD_ENHIN 0x0040 +#define MOD_ENHRA 0x0038 +#define MOD_ENHRB 0x0007 -//#define REG_NONE 0x0 +#define REG_NONE 0x0 #define REG_R1 0x1 #define REG_R2 0x2 #define REG_R3 0x3 @@ -396,40 +401,48 @@ enum IOstatus { #define REG_A 0x6 #define REG_I 0x7 +#define OPC_ENHF4 0xF000 +#define OPC_ENHF5 0x0F00 + #define WORD_REG 0x0 #define WORD_MEM 0x1 #define CHAR_REG 0x2 #define CHAR_MEM 0x3 -#define OPC_ENHSUBJX 0x5000 -#define OPC_ENHADDR 0x8000 -#define OPC_ENHSUBR 0x9000 -#define OPC_ENHANDR 0xA000 -#define OPC_ENHANDM 0xA100 -#define OPC_ENHLOAD 0xC000 -#define OPC_ENHSTORE 0xC100 -#define OPC_ENHLOADC 0xC200 -#define OPC_ENHSTOREC 0xC300 -#define OPC_ENHORR 0xD000 -#define OPC_ENHORM 0xD100 -#define OPC_CMPREQ 0xE000 -#define OPC_CMPCEQ 0xE200 +#define OPC_STOSJMP 0x5000 +#define OPC_STOADD 0x8000 +#define OPC_STOSUB 0x9000 +#define OPC_STOAND 0xA000 +#define OPC_STOLOADST 0xC000 +#define OPC_STOOR 0xD000 +#define OPC_STOCRE 0xE000 +#define OPC_FLDF3A 0x07 +#define OPC_FLDRSV1 0x0 +#define OPC_FLDRSV2 0x1 #define OPC_FLDSFZ 0x2 #define OPC_FLDSFN 0x3 #define OPC_FLDLOAD 0x4 #define OPC_FLDSTORE 0x5 #define OPC_FLDCLEAR 0x6 #define OPC_FLDSET 0x7 +#define OPC_FLDSTR 0xF000 +#define OPC_FLDLTH 0x0F00 -#define OPC_ENHSKIPZ 0x0 -#define OPC_ENHSKIPNZ 0x1 -#define OPC_ENHSKIPPOS 0x2 -#define OPC_ENHSKIPNEG 0x3 -#define OPC_ENHSKIPR1 0x4 -#define OPC_ENHSKIPR2 0x8 -#define OPC_ENHSKIPR3 0xC -#define OPC_ENHSKIPR4 0x0 +#define OPC_ENHXFRRA 0xE0 +#define OPC_ENHXFRF2A 0x18 +#define OPC_ENHXFRRB 0x7 + +#define OPC_ENHSKIPTY 0x30 +#define OPC_ENHSKIPREG 0xC0 +#define OPC_ENHSKIPCNT 0xF + +#define OPC_DRPMBZ 0x10 +#define OPC_DRPRA 0xE0 +#define OPC_DRPSK 0xF + +#define OPC_MISCRA 0xE0 +#define OPC_MISCF3 0xF #define OPC_ENHLMM 0x1 #define OPC_ENHLRG 0x2 @@ -553,6 +566,8 @@ struct io_device { t_bool (*iod_intr)(struct io_device *); uint16 (*iod_raised)(DEVICE *); void (*iod_clear)(DEVICE *); + uint8 (*iod_decode)(struct io_device *, t_bool, uint8); + t_bool (*iod_chksta)(t_bool, uint8); uint16 iod_ienable; uint16 iod_oldienable; uint16 iod_imask; @@ -561,15 +576,15 @@ struct io_device { uint16 iod_cmask; uint16 iod_rmask; uint8 iod_regs; - uint8 iod_validmask; - uint8 iod_readmap; - uint8 iod_rejmapR; - uint8 iod_rejmapW; + uint16 iod_validmask; + uint16 iod_readmap; + uint16 iod_rejmapR; + uint16 iod_rejmapW; uint8 iod_flags; uint8 iod_dc; - uint16 iod_readR[8]; - uint16 iod_writeR[8]; - uint16 iod_prevR[8]; + uint16 iod_readR[16]; + uint16 iod_writeR[16]; + uint16 iod_prevR[16]; uint16 iod_forced; t_uint64 iod_event; uint16 iod_private; @@ -582,6 +597,10 @@ struct io_device { uint16 iod_private8; uint8 iod_private9; t_bool iod_private10; + uint16 iod_private11; + uint16 iod_private12; + uint8 iod_private13; + uint8 iod_private14; }; #define STATUS iod_readR[1] #define DEVSTATUS(iod) ((iod)->iod_readR[1]) @@ -598,23 +617,31 @@ struct io_device { #define CLRSTICKY(iod, reg, value) \ ((iod)->iod_sticky[reg] &= ~value) -#define MASK_REGISTER0 0x01 -#define MASK_REGISTER1 0x02 -#define MASK_REGISTER2 0x04 -#define MASK_REGISTER3 0x08 -#define MASK_REGISTER4 0x10 -#define MASK_REGISTER5 0x20 -#define MASK_REGISTER6 0x40 -#define MASK_REGISTER7 0x80 +#define MASK_REGISTER0 0x0001 +#define MASK_REGISTER1 0x0002 +#define MASK_REGISTER2 0x0004 +#define MASK_REGISTER3 0x0008 +#define MASK_REGISTER4 0x0010 +#define MASK_REGISTER5 0x0020 +#define MASK_REGISTER6 0x0040 +#define MASK_REGISTER7 0x0080 +#define MASK_REGISTER8 0x0100 +#define MASK_REGISTER9 0x0200 +#define MASK_REGISTER10 0x0400 +#define MASK_REGISTER11 0x0800 +#define MASK_REGISTER12 0x1000 +#define MASK_REGISTER13 0x2000 +#define MASK_REGISTER14 0x4000 +#define MASK_REGISTER15 0x8000 #define STATUS_ZERO 0x01 #define DEVICE_DC 0x02 #define AQ_ONLY 0x04 -#define IODEV(name, model, id, equ, sta, base, busy, ior, iow, bdcr, bdcw, dump, intr, raised, clear, mask, regs, valid, map, rejR, rejW, flags, dc, devspec) \ +#define IODEV(name, model, id, equ, sta, base, busy, ior, iow, bdcr, bdcw, dump, intr, raised, clear, decode, chksta, mask, regs, valid, map, rejR, rejW, flags, dc, devspec) \ { name, model, IOtype_default, equ, sta, 0, base, \ NULL, NULL, NULL, \ - busy, ior, iow, bdcr, bdcw, dump, intr, raised, clear, \ + busy, ior, iow, bdcr, bdcw, dump, intr, raised, clear, decode, chksta, \ 0, 0, IO_##id##_INTR, IO_##id##_DIRMSK, IO_##id##_STMSK, \ IO_##id##_STCINT | IO_ST_INT, \ mask, regs, valid, map, rejR, rejW, flags, dc, \ @@ -722,7 +749,7 @@ typedef uint16 devINTR(DEVICE *); #define IO_1711_SWRITE 0x0100 /* Select write mode */ #define IO_1711_DIRMSK (IO_1711_SREAD | IO_1711_SWRITE | IO_DIR_ALARM | \ IO_DIR_EOP | IO_DIR_DATA | IO_DIR_CINT | IO_DIR_CCONT) -#define IO_1711_INTR (IO_DIR_ALARM |IO_DIR_EOP | IO_DIR_DATA) +#define IO_1711_INTR (IO_DIR_ALARM | IO_DIR_EOP | IO_DIR_DATA) #define IO_1711_MANUAL 0x0800 /* Manual interrupt */ #define IO_1711_MON 0x0400 /* Motor on */ @@ -797,6 +824,47 @@ typedef uint16 devINTR(DEVICE *); IO_ST_INT | IO_ST_BUSY | IO_ST_READY) #define IO_1726_STCINT (IO_ST_ALARM | IO_ST_EOP | IO_ST_DATA) +/* + * 1728-A/B Card Reader/Punch + */ +#define IO_1728_MASK 0x0060 /* Station mask */ +#define IO_1728_CR 0x0020 /* Card reader select */ +#define IO_1728_CP 0x0040 /* Card puch select */ + +#define IO_1728_OFFSET 0x0100 /* Offset request */ +#define IO_1728_FEED 0x0080 /* Initiate feed cycle */ + +#define IO_1728_DIRMSK (IO_1728_OFFSET | IO_1728_FEED | IO_DIR_ALARM | \ + IO_DIR_EOP | IO_DIR_DATA | IO_DIR_CINT | \ + IO_DIR_CCONT) +#define IO_1728_INTR (IO_DIR_ALARM | IO_DIR_EOP | IO_DIR_DATA) + +#define IO_1728_CBFULL 0x0800 /* Chip box full */ +#define IO_1728_EOF 0x0400 /* End of file */ +#define IO_1728_FEEDAL 0x0200 /* Feed alert */ +#define IO_1728_ERROR 0x0100 /* Pre-read or punch error */ +#define IO_1728_STMSK (IO_1728_CBFULL | IO_1728_EOF | IO_1728_FEEDAL | \ + IO_1728_ERROR | IO_ST_PROT | IO_ST_LOST | \ + IO_ST_EOP | IO_ST_DATA | IO_ST_INT | IO_ST_BUSY | \ + IO_ST_READY) +#define IO_1728_STCINT (IO_DIR_ALARM | IO_DIR_EOP | IO_DIR_DATA) + +#define IO_ST2_INTLOCK 0x0400 /* Door interlock */ +#define IO_ST2_PUNINH 0x0200 /* Punch inhibit set */ +#define IO_ST2_MANUAL 0x0100 /* Manual mode */ +#define IO_ST2_PUNERR 0x0080 /* Punch error */ +#define IO_ST2_PREERR 0x0040 /* Pre-read error */ +#define IO_ST2_STKJAM 0x0020 /* Stacker area jam */ +#define IO_ST2_PUNJAM 0x0010 /* Punch area jam */ +#define IO_ST2_READJAM 0x0008 /* Read area jam */ +#define IO_ST2_FFEED 0x0004 /* Fail to feed */ +#define IO_ST2_FULL 0x0002 /* Stacker full */ +#define IO_ST2_EMPTY 0x0001 /* Hopper empty */ +#define IO_1728_ST2MSK (IO_ST2_INTLOCK | IO_ST2_PUNINH | IO_ST2_MANUAL | \ + IO_ST2_PUNERR | IO_ST2_PREERR | IO_ST2_STKJAM | \ + IO_ST2_PUNJAM | IO_ST2_READJAM | IO_ST2_FFEED | \ + IO_ST2_FULL | IO_ST2_EMPTY) + /* * 1729-A/B Card Reader */ @@ -997,6 +1065,29 @@ typedef uint16 devINTR(DEVICE *); #define IO_1742_STCINT (IO_ST_ALARM | IO_ST_EOP | IO_ST_DATA) +/* + * 1752-1/2/3/4 Drum + */ +#define IO_1752_DIRMSK (IO_DIR_ALARM | IO_DIR_EOP | IO_DIR_CINT | \ + IO_DIR_CCONT) +#define IO_1752_INTR (IO_DIR_ALARM | IO_DIR_EOP) + +#define IO_1752_OVERR 0x8000 /* Sector overrange error */ +#define IO_1752_GUARDED 0x4000 /* Guarded address error */ +#define IO_1752_SECCMP 0x2000 /* Sector compare */ +#define IO_1752_POWERF 0x1000 /* Power failure */ +#define IO_1752_TIMERR 0x0800 /* Timing track error */ +#define IO_1752_GUARDE 0x0400 /* Guarded address enabled */ +#define IO_1752_PROTF 0x0200 /* Protect fault */ +#define IO_1752_CHECKW 0x0100 /* Checkword error */ +#define IO_1752_STMSK (IO_1752_OVERR | IO_1752_GUARDED | IO_1752_SECCMP | \ + IO_1752_POWERF | IO_1752_TIMERR | IO_1752_GUARDE | \ + IO_1752_PROTF | IO_1752_CHECKW | IO_ST_PROT | \ + IO_ST_LOST | IO_ST_ALARM | IO_ST_EOP | IO_ST_DATA | \ + IO_ST_INT | IO_ST_BUSY | IO_ST_READY) + +#define IO_1752_STCINT (IO_ST_ALARM | IO_ST_EOP) + /* * 10336-1 Real-Time Clock */ @@ -1013,6 +1104,15 @@ typedef uint16 devINTR(DEVICE *); #define IO_10336_STMSK 0 #define IO_10336_STCINT 0 +/* + * M05 addressing scheme used by Cyber-18 enhanced instruction set for + * magtape access. + */ +#define M05_SAMPLE 0x0000 /* Sample (peripheral input) */ +#define M05_SET 0x0008 /* Set (peripheral output) */ +#define M05_DEVICE 0x0070 /* Device selection */ +#define M05_CONTR 0x0380 /* Controller selection */ + /* * Timing parameters */ @@ -1047,8 +1147,14 @@ typedef uint16 devINTR(DEVICE *); #define CD_IO_WAIT 800 /* Sector I/O wait time */ #define CD_RTZS_WAIT 200 /* Return to zero seek wait */ +#define DRM_ACCESS_WAIT 5800 /* Average access latency */ +#define DRM_SECTOR_WAIT 350 /* Sector I/O time */ + #define DC_START_WAIT 4 /* Startup delay */ #define DC_IO_WAIT 4 /* I/O transfer delay */ #define DC_EOP_WAIT 5 /* EOP delay */ +#define RDR_IN_WAIT 200 /* Card reader feed wait */ +#define PUN_OUT_WAIT 200 /* Card punch feed wait */ + #endif diff --git a/CDC1700/cdc1700_dev1.c b/CDC1700/cdc1700_dev1.c index 6e1870e0..f09051dc 100644 --- a/CDC1700/cdc1700_dev1.c +++ b/CDC1700/cdc1700_dev1.c @@ -26,7 +26,7 @@ */ /* cdc1700_dev1.c: equipment number 1 I/O device support - * Simh devices: tti, tto, ptr, ptp, cdr + * Simh devices: tti, tto, ptr, ptp */ #include "cdc1700_defs.h" @@ -140,21 +140,21 @@ t_stat tt_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE TTIdev = IODEV("TTI", "1711-A", 1711, 1, 1, 0, NULL, NULL, NULL, NULL, NULL, - TTIstate, NULL, NULL, NULL, + TTIstate, NULL, NULL, NULL, NULL, NULL, 0xF, 2, MASK_REGISTER0 | MASK_REGISTER1, MASK_REGISTER1, 0, 0, 0, 0, NULL); IO_DEVICE TTOdev = IODEV("TTO", "1711-A", 1711, 1, 1, 0, NULL, NULL, NULL, NULL, NULL, - TTOstate, NULL, NULL, NULL, + TTOstate, NULL, NULL, NULL, NULL, NULL, 0xF, 2, MASK_REGISTER0 | MASK_REGISTER1, MASK_REGISTER1, 0, 0, 0, 0, NULL); IO_DEVICE TTdev = IODEV("TT", "1711-A", 1711, 1, 1, 0, TTreject, TTin, TTout, NULL, NULL, - TTstate, NULL, NULL, NULL, + TTstate, NULL, NULL, NULL, NULL, NULL, 0xF, 2, MASK_REGISTER0 | MASK_REGISTER1, 0, 0, 0, 0, 0, NULL); @@ -841,7 +841,7 @@ t_stat ptr_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE PTRdev = IODEV(NULL, "1721-A", 1721, 1, 2, 0, fw_reject, PTRin, PTRout, NULL, NULL, - NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, 0xF, 2, MASK_REGISTER0 | MASK_REGISTER1, MASK_REGISTER1, 0, 0, 0, 0, NULL); @@ -1147,7 +1147,7 @@ t_stat ptp_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE PTPdev = IODEV(NULL, "1723-A", 1723, 1, 4, 0, fw_reject, PTPin, PTPout, NULL, NULL, - NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, 0xF, 2, MASK_REGISTER0 | MASK_REGISTER1, MASK_REGISTER1, 0, 0, 0, 0, NULL); @@ -1397,164 +1397,6 @@ t_stat ptp_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr return scp_help(st, dptr, uptr, flag, helpString, cptr); } -t_stat cdr_svc(UNIT *); -t_stat cdr_reset(DEVICE *); - -enum IOstatus CDRin(IO_DEVICE *, uint8); -enum IOstatus CDRout(IO_DEVICE *, uint8); - -/* - 1729-A/B Card Reader - - Addresses - Computer Instruction - Q Register Output From A Input to A - - 00E0 Read - 00E1 Director Function Director Status - - - Operations: - - Director Function - - 15 7 6 5 4 3 2 1 0 - +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - | X | X | X | X | X | X | X | X | X | | | | | | | | - +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - | | | | | | | - | | | | | | Clr Controller - | | | | | Clr Interrupts - | | | | Data Interrupt Req. - | | | Interrupt on End of Record - | | Interrupt on Alarm - | Start Motion - Stop Motion - - Status Response: - - Director Status - - 15 10 9 8 7 6 5 4 3 2 1 0 - +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - | X | X | X | X | X | X | | | | | | | | | | | - +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - | | | | | | | | | | - | | | | | | | | | Ready - | | | | | | | | Busy - | | | | | | | Interrupt - | | | | | | Data - | | | | | End Of Record - | | | | Alarm - | | | Lost Data - | | Protected - | Existence Code - Read Station Empty - - */ - -IO_DEVICE CDRdev = IODEV(NULL, "1729", 1729, 1, 6, 0, - fw_reject, CDRin, CDRout, NULL, NULL, - NULL, NULL, NULL, NULL, - 0xF, 2, - MASK_REGISTER0 | MASK_REGISTER1, - MASK_REGISTER1, 0, 0, 0, 0, NULL); - -/* CDR data structures - - cdr_dev CDR device descriptor - cdr_unit CDR unit descriptor - cdr_reg CDR register list - cdr_mod CDR modifiers list -*/ - -UNIT cdr_unit = { - UDATA(&cdr_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_ROABLE, 0), SERIAL_IN_WAIT -}; - -REG cdr_reg[] = { - { HRDATAD(FUNCTION, CDRdev.FUNCTION, 16, "Last director function issued") }, - { HRDATAD(STATUS, CDRdev.STATUS, 16, "Director status register") }, - { HRDATAD(IENABLE, CDRdev.IENABLE, 16, "Interrupts enabled") }, - { NULL } -}; - -MTAB cdr_mod[] = { - { MTAB_XTD | MTAB_VDV, 0, "1729 Card Reader" }, - { MTAB_XTD|MTAB_VDV, 0, "EQUIPMENT", NULL, - NULL, &show_addr, NULL, "Display equipment address" }, - { MTAB_XTD|MTAB_VDV, 0, NULL, "PROTECT", - &set_protected, NULL, NULL, "Device is protected (unimplemented)" }, - { MTAB_XTD|MTAB_VDV, 0, NULL, "NOPROTECT", - &clear_protected, NULL, NULL, "Device is unprotected (unimplemented)" }, - { 0 } -}; - -DEBTAB cdr_deb[] = { - { "TRACE", DBG_DTRACE, "Trace device I/O requests" }, - { "STATE", DBG_DSTATE, "Display device state changes" }, - { "LOCATION", DBG_DLOC, "Display address for I/O instructions" }, - { "FIRSTREJ", DBG_DFIRSTREJ, "Suppress display of 2nd ... I/O rejects" }, - { "ALL", DBG_DTRACE | DBG_DSTATE | DBG_DLOC }, - { NULL } -}; - -DEVICE cdr_dev = { - "CDR", &cdr_unit, cdr_reg, cdr_mod, - 1, 10, 31, 1, 8, 8, - NULL, NULL, &cdr_reset, - NULL, NULL, NULL, - &CDRdev, - DEV_DEBUG | DEV_NOEQUIP | DEV_INDEV | DEV_PROTECT, 0, cdr_deb, - NULL, NULL, NULL, NULL, NULL, NULL -}; - -/* Unit service */ - -t_stat cdr_svc(UNIT *uptr) -{ - /*** TODO: Implement Card Reader support ***/ - return SCPE_OK; -} - -/* Reset routine */ - -t_stat cdr_reset(DEVICE *dptr) -{ - DEVRESET(&CDRdev); - - ptr_unit.buf = 0; - if (!sim_is_running) - sim_activate(&cdr_unit, cdr_unit.wait); - return SCPE_OK; -} - -/* Perform I/O */ - -enum IOstatus CDRin(IO_DEVICE *iod, uint8 reg) -{ - /* - * The framework only passes IN operations for the data register (0x90) - */ - Areg = cdr_unit.buf; - CDRdev.STATUS &= IO_ST_BUSY | IO_ST_DATA; - return IO_REPLY; -} - -enum IOstatus CDRout(IO_DEVICE *iod, uint8 reg) -{ - switch (reg) { - case 0x00: - return IO_REJECT; - - case 0x01: - doDirectorFunc(&cdr_dev, FALSE); - /*** TODO: Process local director functions ***/ - break; - } - return IO_REPLY; -} - /* * Return device 1 interrupt status. If any of the sub-devices have their * interrupt status active, return the device 1 interrupt mask bit. @@ -1563,7 +1405,7 @@ uint16 dev1INTR(DEVICE *dptr) { uint16 status; - status = TTIdev.STATUS | TTOdev.STATUS | PTRdev.STATUS | PTPdev.STATUS | CDRdev.STATUS; + status = TTIdev.STATUS | TTOdev.STATUS | PTRdev.STATUS | PTPdev.STATUS; return (status & IO_ST_INT) != 0 ? 1 << 1 : 0; } @@ -1584,6 +1426,4 @@ void dev1Interrupts(char *buf) strcat(buf, " PTR"); if ((PTPdev.STATUS & IO_ST_INT) != 0) strcat(buf, " PTP"); - if ((CDRdev.STATUS & IO_ST_INT) != 0) - strcat(buf, " CDR"); } diff --git a/CDC1700/cdc1700_dis.c b/CDC1700/cdc1700_dis.c index 8aa3f85b..7ff8cb2b 100644 --- a/CDC1700/cdc1700_dis.c +++ b/CDC1700/cdc1700_dis.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2015-2016, John Forecast + Copyright (c) 2015-2017, John Forecast Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -71,22 +71,61 @@ const char *destName[] = { "", "M", "Q", "Q,M", "A", "A,M", "A,Q", "A,Q,M" }; - const char *shiftName[] = { NULL, "QRS", "ARS", "LRS", NULL, "QLS", "ALS", "LLS" }; +/* + * Enhanced instruction set mnemonics + */ +char enhRegChar[] = { + ' ', '1', '2', '3', '4', 'Q', 'A', 'I' +}; + +const char *enhIdxName[] = { + "", ",1", ",2", ",3", ",4", ",Q", ",A", ",I" +}; + +char enhSkipType[] = { + 'Z', 'N', 'P', 'M' +}; + +char enhSkipReg[] = { + '4', '1', '2', '3' +}; + +const char *enhMiscName0[] = { + "???", "LMM", "LRG", "SRG", "SIO", "SPS", "DMI", "CBP", + "GPE", "GPO", "ASC", "APM", "PM0", "PM1" +}; +#define ENH_MAXMISC0 0xD + +const char *enhMiscName1[] = { + "LUB", "LLB", "EMS", "WPR", "RPR", "ECC" +}; +#define ENH_MAXMISC1 0x5 + +const char *enhFldName[] = { + "???", "???", "SFZ", "SFN", "LFA", "SFA", "CLF", "SEF" +}; + /* * Generate a single line of text for an instruction. Format is: * * c xxxx yyyy zzzz * + * or if enhanced instruction set is enabled + * + * c xxxx yyyy zzzz aaaa + * * where: * * |P Normal/Protected location * xxxx Memory address of instruction in hex * yyyy First word of instruction in hex - * zzzz Second word of inctruction in hex, replaced by spaces if + * zzzz Second word of instruction in hex, replaced by spaces if + * not present + * aaaa Third word of instruction in hex, replaced by spaces if * not present * Disassmbled instruction * Optional target address and contents @@ -99,14 +138,17 @@ int disassem(char *buf, uint16 addr, t_bool dbg, t_bool targ, t_bool exec) { int consumed = 1; char prot = ISPROTECTED(addr) ? 'P' : ' '; - char optional[8], temp[8], decoded[64]; + char optional[8], optional2[8], temp[8], decoded[64], enhInstr[8]; const char *mode, *spc, *shift, *inter, *dest; uint16 instr = LoadFromMem(addr); + uint16 instr2, enhMode; uint16 delta = instr & OPC_ADDRMASK; - uint8 more = 0, isconst = 0; + uint8 more = 0, isconst = 0, enhRB; uint16 t; + t_bool enhValid = FALSE, enhChar = FALSE; strcpy(optional, " "); + strcpy(optional2, " "); strcpy(decoded, "UNDEF"); if ((instr & OPC_MASK) != 0) { @@ -181,7 +223,228 @@ int disassem(char *buf, uint16 addr, t_bool dbg, t_bool targ, t_bool exec) break; case INSTR_ENHANCED: - sprintf(decoded, "%s", delta != 0 ? "Enhanced" : spc); + if (delta != 0) { + switch (instr & OPC_SPECIALMASK) { + case OPC_IIN: + if (((instr & OPC_FLDF3A) != OPC_FLDRSV1) && + ((instr & OPC_FLDF3A) != OPC_FLDRSV2)) { + instr2 = LoadFromMem(addr + 1); + delta = instr2 & OPC_ADDRMASK; + + if (((instr2 & OPC_FLDSTR) - (instr2 & OPC_FLDLTH)) >= 0) { + consumed++; + + if ((instr & MOD_ENHRE) == 0) + mode = delta == 0 ? "+ " : "- "; + else mode = "* "; + + sprintf(optional, "%04X", instr2); + if (delta == 0) { + consumed++; + sprintf(optional2, "%04X", LoadFromMem(addr + 2)); + sprintf(temp, "$%04X", LoadFromMem(addr + 2)); + } else sprintf(temp, "$%02X", delta); + + sprintf(decoded, "%s%s%s%s%s,%d,%d%s", + enhFldName[instr & OPC_FLDF3A], + mode, + (instr & MOD_ENHIN) != 0 ? "(" : "", + temp, + (instr & MOD_ENHIN) != 0 ? ")" : "", + (instr2 & OPC_FLDSTR) >> 12, + ((instr2 & OPC_FLDLTH) >> 8) + 1, + enhIdxName[(instr & MOD_ENHRA) >> 3]); + break; + } + } + strcpy(decoded, "UNDEF"); + targ = FALSE; + break; + + case OPC_EIN: + instr2 = LoadFromMem(addr + 1); + enhMode = (instr2 & OPC_ENHF5) >> 8; + enhRB = instr & MOD_ENHRB; + + switch (instr2 & OPC_ENHF4) { + case OPC_STOSJMP: + if (enhMode == 0) { + enhValid = TRUE; + if (enhRB == REG_NONE) + strcpy(enhInstr, "SJE"); + else sprintf(enhInstr, "SJ%c", enhRegChar[enhRB]); + } + break; + + case OPC_STOADD: + if ((enhMode == 0) && (enhRB != REG_NONE)) { + enhValid = TRUE; + sprintf(enhInstr, "AR%c", enhRegChar[enhRB]); + } + break; + + case OPC_STOSUB: + if ((enhMode == 0) && (enhRB != REG_NONE)) { + enhValid = TRUE; + sprintf(enhInstr, "SB%c", enhRegChar[enhRB]); + } + break; + + case OPC_STOAND: + if (enhRB != REG_NONE) + switch (enhMode) { + case WORD_REG: + enhValid = TRUE; + sprintf(enhInstr, "AN%c", enhRegChar[enhRB]); + break; + + case WORD_MEM: + enhValid = TRUE; + sprintf(enhInstr, "AM%c", enhRegChar[enhRB]); + break; + } + break; + + case OPC_STOLOADST: + switch (enhMode) { + case WORD_REG: + if (enhRB != REG_NONE) { + enhValid = TRUE; + sprintf(enhInstr, "LR%c", enhRegChar[enhRB]); + } + break; + + case WORD_MEM: + if (enhRB != REG_NONE) { + enhValid = TRUE; + sprintf(enhInstr, "SR%c", enhRegChar[enhRB]); + } + break; + + case CHAR_REG: + if (enhRB != REG_NONE) { + enhValid = TRUE; + enhChar = TRUE; + strcpy(enhInstr, "LCA"); + } + break; + + case CHAR_MEM: + if (enhRB != REG_NONE) { + enhValid = TRUE; + enhChar = TRUE; + strcpy(enhInstr, "SCA"); + } + break; + } + break; + + case OPC_STOOR: + if (enhRB != REG_NONE) + switch (enhMode) { + case WORD_REG: + enhValid = TRUE; + sprintf(enhInstr, "OR%c", enhRegChar[enhRB]); + break; + + case WORD_MEM: + enhValid = TRUE; + sprintf(enhInstr, "OM%c", enhRegChar[enhRB]); + break; + } + break; + + case OPC_STOCRE: + switch (enhMode) { + case WORD_REG: + if (enhRB != REG_NONE) { + enhValid = TRUE; + sprintf(enhInstr, "C%cE", enhRegChar[enhRB]); + } + break; + + case CHAR_REG: + if (enhRB != REG_NONE) { + enhValid = TRUE; + enhChar = TRUE; + strcpy(enhInstr, "CCE"); + } + break; + } + break; + } + if (enhValid) { + delta = instr2 & OPC_ADDRMASK; + consumed++; + + if ((instr & MOD_ENHRE) == 0) + mode = delta == 0 ? "+ " : "- "; + else mode = "* "; + + sprintf(optional, "%04X", instr2); + if (delta == 0) { + consumed++; + sprintf(optional2, "%04X", LoadFromMem(addr + 2)); + sprintf(temp, "$%04X", LoadFromMem(addr + 2)); + } else sprintf(temp, "$%02X", delta); + + if (!enhChar) { + if ((delta == 0) && + (instr & (MOD_ENHRE | MOD_ENHIN)) == 0) + isconst = 1; + + sprintf(decoded, "%s%s%s%s%s%s%s", + enhInstr, + mode, + isconst ? "=" : "", + (instr & MOD_ENHIN) != 0 ? "(" : "", + temp, + (instr & MOD_ENHIN) != 0 ? ")" : "", + enhIdxName[(instr & MOD_ENHRA) >> 3]); + } else { + sprintf(decoded, "%s%s%s%s%s%s%s", + enhInstr, + mode, + (instr & MOD_ENHIN) != 0 ? "(" : "", + temp, + (instr & MOD_ENHIN) != 0 ? ")" : "", + enhIdxName[enhRB], + enhIdxName[(instr & MOD_ENHRA) >> 3]); + } + } else { + strcpy(decoded, "UNDEF"); + targ = FALSE; + } + break; + + case OPC_SPB: + if ((instr & OPC_DRPMBZ) == 0) { + char reg = enhRegChar[(instr & OPC_DRPRA) >> 5]; + uint8 sk = instr & OPC_DRPSK; + + sprintf(decoded, "D%cP $%1X", reg, sk); + break; + } + break; + + case OPC_CPB: + if ((instr & OPC_ENHXFRF2A) == 0) { + if ((instr & (OPC_ENHXFRRA | OPC_ENHXFRRB)) != 0) { + char ra = enhRegChar[(instr & OPC_ENHXFRRA) >> 5]; + char rb = enhRegChar[instr & OPC_ENHXFRRB]; + + sprintf(decoded, "XF%c %c", ra, rb); + break; + } + } + strcpy(decoded, "UNDEF"); + targ = FALSE; + break; + } + } else { + sprintf(decoded, "%s", spc); + targ = FALSE; + } break; } break; @@ -199,7 +462,23 @@ int disassem(char *buf, uint16 addr, t_bool dbg, t_bool targ, t_bool exec) break; case INSTR_ENHANCED: - sprintf(decoded, "%s", delta != 0 ? "Enhanced" : spc); + if (delta != 0) { + uint8 miscFN = instr & OPC_MISCF3; + char reg = enhRegChar[(instr & OPC_MISCRA) >> 5]; + + targ = FALSE; + if ((instr & OPC_MISCRA) == 0) { + if (miscFN <= ENH_MAXMISC0) + spc = enhMiscName0[miscFN]; + else spc = "UNDEF"; + sprintf(decoded, "%s", spc); + } else { + if (miscFN <= ENH_MAXMISC1) { + spc = enhMiscName1[miscFN]; + sprintf(decoded, "%s %c", spc, reg); + } else strcpy(decoded, "UNDEF"); + } + } else sprintf(decoded, "%s", spc); break; } break; @@ -225,7 +504,13 @@ int disassem(char *buf, uint16 addr, t_bool dbg, t_bool targ, t_bool exec) break; case INSTR_ENHANCED: - sprintf(decoded, "%s", "Enhanced"); + { + char reg = enhSkipReg[(instr & OPC_ENHSKIPREG) >> 6]; + char type = enhSkipType[(instr & OPC_ENHSKIPTY) >> 4]; + uint8 sk = instr & OPC_ENHSKIPCNT; + + sprintf(decoded, "S%c%c $%1X", reg, type, sk); + } break; } break; @@ -257,11 +542,19 @@ int disassem(char *buf, uint16 addr, t_bool dbg, t_bool targ, t_bool exec) } if (dbg) { - sprintf(buf, "%c %04X %04X %s %s", - prot, addr, instr, optional, decoded); + if (INSTR_SET == INSTR_ENHANCED) + sprintf(buf, "%c %04X %04X %s %s %s", + prot, addr, instr, optional, optional2, decoded); + else + sprintf(buf, "%c %04X %04X %s %s", + prot, addr, instr, optional, decoded); } else { - sprintf(buf, "%c %04X %s %s", - prot, instr, optional, decoded); + if (INSTR_SET == INSTR_ENHANCED) + sprintf(buf, "%c %04X %s %s %s", + prot, instr, optional, optional2, decoded); + else + sprintf(buf, "%c %04X %s %s", + prot, instr, optional, decoded); } if (targ) { @@ -350,6 +643,13 @@ int disassem(char *buf, uint16 addr, t_bool dbg, t_bool targ, t_bool exec) case OPC_INP: case OPC_OUT: + taddr = doADDinternal(addr, EXTEND8(instr & OPC_MODMASK)); + taddr2 = taddr; + if ((sim_switches & SWMASK('R')) != 0) + taddr2 -= RelBase; + more = 1; + break; + case OPC_EIN: case OPC_IIN: case OPC_INTER: diff --git a/CDC1700/cdc1700_dp.c b/CDC1700/cdc1700_dp.c index a1c47fb6..371c2f74 100644 --- a/CDC1700/cdc1700_dp.c +++ b/CDC1700/cdc1700_dp.c @@ -231,7 +231,7 @@ t_stat dp_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE DPdev = IODEV(NULL, "1738-B", 1738, 3, 0xFF, 0, DPreject, DPin, DPout, NULL, NULL, - DPstate, DPintr, NULL, NULL, + DPstate, DPintr, NULL, NULL, NULL, NULL, 0x7F, 8, MASK_REGISTER1 | MASK_REGISTER2 | MASK_REGISTER3 | \ MASK_REGISTER4 | MASK_REGISTER5 | MASK_REGISTER6 | \ diff --git a/CDC1700/cdc1700_drm.c b/CDC1700/cdc1700_drm.c new file mode 100644 index 00000000..e3140e9c --- /dev/null +++ b/CDC1700/cdc1700_drm.c @@ -0,0 +1,967 @@ +/* + + Copyright (c) 2015-2017, John Forecast + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + JOHN FORECAST BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of John Forecast shall not + be used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from John Forecast. + +*/ + +/* cdc1700_drm.c: drum memory controller + * Simh device: drm + */ + +/* + * Notes: + * + * 1. The 1752 Drum Memory Subsystem consists of a 3600 RPM drum with 32 + * sectors (96 words each) per track. There can be 64 - 1024 tracks + * depending on the model ordered. + * + * There is 1 readable register which needs to be handled specially - the + * Sector Address Status. This register consists of 3 fields: + * + * - Current sector address as read from the drum (0 - 31) + * - Current track address from last I/O request (zero on startup) + * - Core address compare - set if transfer is to last address of buffer + * + * The SMM17 diagnostic for the 1752 uses this register to verify that + * the hardware is operational before allowing the diagnostic to run. The + * register fields will be implemented as follows: + * + * 1. Current sector address + * + * Rather than use a repeating service routine, we will timestamp + * (using the instruction count) when the Sector Address Status register + * was last referenced or used as part of an I/O operation. When the + * register is next referenced, we will compute the number of sectors + * which have passed under the head (521 uSec/sector so 350 instructions + * assuming 1.5 microsecond/instruction) and update the sector address + * field appropriately. If an I/O is active, the sector address will + * reflect that used by the current I/O. This may result in a sudden + * change in value. + * + * 2. Current track address + * + * This will be the last track address referenced by an I/O request. + * + * 3. Core address compare + * + * This bit is set when the current/next DMA request is to the last + * address of the buffer. Rather than simulate DMA word at a time, + * we simulate sector transfer at a time. We will set this bit if the + * last address of the buffer is somewhere within the current sector + * and also set the Core Address Status to be the last address of + * the buffer. + * + * 2. This is the first, and only, device driver which requires dynamic + * processing of the Director Status Register. The Sector Compare is only + * set when the requested sector is under the read head. The I/O framework + * did not require any changes to allow this to work. + */ + +#include "cdc1700_defs.h" + +#define SASTATUS iod_readR[2] +#define CASTATUS iod_readR[3] +#define DATASTATUS iod_readR[4] + +extern char INTprefix[]; + +extern void RaiseExternalInterrupt(DEVICE *); + +extern t_bool doDirectorFunc(DEVICE *, t_bool); +extern t_bool fw_reject(IO_DEVICE *, t_bool, uint8); +extern void fw_IOunderwayEOP2(IO_DEVICE *, uint16); +extern void fw_IOcompleteEOP2(t_bool, DEVICE *, IO_DEVICE *, uint16, const char *); +extern void fw_IOalarm(t_bool, DEVICE *, IO_DEVICE *, const char *); +extern void fw_IOintr(t_bool, DEVICE *, IO_DEVICE *, uint16, uint16, uint16, const char *); + +extern void rebuildPending(void); + +extern t_stat show_addr(FILE *, UNIT *, int32, CONST void *); + +extern t_stat set_protected(UNIT *, int32, CONST char *, void *); +extern t_stat clear_protected(UNIT *, int32, CONST char *, void *); + +extern t_stat set_equipment(UNIT *, int32, CONST char *, void *); + +extern t_stat set_stoponrej(UNIT *, int32, CONST char *, void *); +extern t_stat clr_stoponrej(UNIT *, int32, CONST char *, void *); + +extern uint16 LoadFromMem(uint16); +extern t_bool IOStoreToMem(uint16, uint16, t_bool); + +extern uint16 M[], Areg, IOAreg; +extern t_uint64 Instructions; + +extern t_bool IOFWinitialized; + +extern UNIT cpu_unit; + +t_stat drm_help(FILE *, DEVICE *, UNIT *, int32, const char *); + +/* Constants */ + +#define DRM_NUMWD (96) /* words/sector */ +#define DRM_NUMBY (DRM_NUMWD * sizeof(uint16)) +#define DRM_NUMSC (32) /* sectors/track */ +#define DRM_SIZE (512 * DRM_NUMSC * DRM_NUMBY) +#define DRM_MINTRACKS (64) /* Min # of tracks supported */ +#define DRM_MAXTRACKS (1024) /* Max # of tracks supported */ + +#define DRM_AUTOLOAD (16) /* Sectors to autoload */ + +/* + * Drum address fields + */ +#define DRM_TRK_MASK 0x7FE0 /* Track address */ +#define DRM_TRK_SHIFT 5 /* and shift */ +#define DRM_SEC_MASK 0x001F /* Sector mask */ + +#define DRM_COMPARE 0x8000 /* Core address compare */ + +enum drmio_status { + DRMIO_MORE, /* More I/O pending */ + DRMIO_DONE, /* I/O processing complete */ + DRMIO_PROTECT, /* Protect fault */ + DRMIO_ADDRERR /* Addressing error */ +}; + +t_stat drm_svc(UNIT *); +t_stat drm_reset(DEVICE *); +t_stat drm_attach(UNIT *, CONST char *); +t_stat drm_detach(UNIT *); + +t_stat drm_set_size(UNIT *, int32, CONST char *, void *); + +void DRMstate(const char *, DEVICE *, IO_DEVICE *); +t_bool DRMreject(IO_DEVICE *, t_bool, uint8); +enum IOstatus DRMin(IO_DEVICE *, uint8); +enum IOstatus DRMout(IO_DEVICE *, uint8); +void DRMclear(DEVICE *); +uint8 DRMdecode(IO_DEVICE *, t_bool, uint8); + +/* + 1752-A/B/C/D Drum memory controller + + Addresses + Computer Instruction + Q Register Output From A Input to A + (Bits 03-00) + + 0000 Initiate Write Op Illegal + 0001 Director Function Director Status + 0010 Illegal Sector Address Status + 0011 Director Function Core Address Status + 0100 Initiate Read Op Data Status + 0101 Director Function Illegal + 0110 Illegal Illegal + 0111 Director Function Illegal + 1000 Load ISA Illegal + 1001 Director Function Illegal + 1010 Illegal Illegal + 1011 Director Function Illegal + 1100 Load Initial Addr Illegal + 1101 Director Function Illegal + 1110 Load Final Addr Illegal + 1111 Director Function Illegal + + Operations: + + Initiate Drum Write Operation + + 15 14 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + + Director Function + + 15 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | X | X | X | X | X | X | X | X | X | X | X | | | X | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | + | | | Clr Controller + | | Clr Interrupts + | EOP Interrupt Req. + Interrupt on Alarm + + Initiate Drum Read Operation + + 15 14 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + + Load Initial Sector Address + + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | 0 | | | | | | | | | | | | | | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | + +-----------------------------------+ +---------------+ + Desired Initial Track Address Desired Initial + Sector Addr - 1 + + Load Initial Core Address, Load Final Core Address + + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | | | | | | | | | | | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | + +-----------------------------------------------------------+ + Core Address + + Status Response: + + Director Status + + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | | | | | | | | | | | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | Ready + | | | | | | | | | | | | | | Busy + | | | | | | | | | | | | | Interrupt + | | | | | | | | | | | | Data + | | | | | | | | | | | End of Operation + | | | | | | | | | | Alarm + | | | | | | | | | Lost Data + | | | | | | | | Protected + | | | | | | | Checkword Error + | | | | | | Protect Fault + | | | | | Guarded Address Enabled + | | | | Timing Track Error + | | | Power Failure + | | Sector Compare + | Guarded Address Error + Sector Overrange Error + + Sector Address Status + + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | | | | | | | | | | | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | + | +-----------------------------------+ +---------------+ + | Track Address Register Contents Sector Address + | Register Contents + Core Address Compare + + Core Address Status + + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | | | | | | | | | | | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | + +-----------------------------------------------------------+ + Core Address Register Contents + + Data Status + + 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | | | | | | | | | | | | | | | | + +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + | | + +-----------------------------------------------------------+ + Data Register Zero Contents + +*/ + +IO_DEVICE DRMdev = IODEV(NULL, "1752", 1752, 2, 0xFF, 0, + DRMreject, DRMin, DRMout, NULL, NULL, + DRMstate, NULL, NULL, DRMclear, DRMdecode, NULL, + 0x7F, 16, + MASK_REGISTER0 | MASK_REGISTER1 | MASK_REGISTER2 | \ + MASK_REGISTER3 | MASK_REGISTER4 | MASK_REGISTER5 | \ + MASK_REGISTER6 | MASK_REGISTER7 | MASK_REGISTER8 | \ + MASK_REGISTER9 | MASK_REGISTER10 | MASK_REGISTER11 | \ + MASK_REGISTER12 | MASK_REGISTER13 | \ + MASK_REGISTER14 | MASK_REGISTER15, + MASK_REGISTER3 | MASK_REGISTER4, + MASK_REGISTER0 | MASK_REGISTER5 | MASK_REGISTER6 | \ + MASK_REGISTER7 | MASK_REGISTER8 | MASK_REGISTER9 | \ + MASK_REGISTER10 | MASK_REGISTER11 | \ + MASK_REGISTER12 | MASK_REGISTER13 | \ + MASK_REGISTER14 | MASK_REGISTER15, + MASK_REGISTER2 | MASK_REGISTER6 | MASK_REGISTER10, + 0, 0, NULL); + +/* + * Define usage for "private" IO_DEVICE data areas. + */ +#define iod_tracks iod_private /* # of tracks on device */ +#define iod_compare iod_private4 /* TRUE if DMA of last buffer word */ +#define iod_isa iod_private6 /* Initial sector address */ +#define iod_ica iod_private7 /* Initial core address */ +#define iod_fca iod_private8 /* Final core address */ +#define iod_state iod_private9 /* Current controller state */ +#define iod_ca iod_private11 /* Current DMA address */ +#define iod_trk iod_private12 /* Current track # */ +#define iod_sec iod_private13 /* Current sector # */ + +#define DRM_IDLE 0x00 /* Idle */ +#define DRM_WRITE 0x01 /* Write data */ +#define DRM_READ 0x02 /* Read data */ + +/* DRM data structures + + drm_dev DRM device descriptor + drm_unit DRM unit descriptor + drm_reg DRM register list + drm_mod DRM modifier list +*/ + +UNIT drm_unit = { + UDATA(&drm_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE, DRM_SIZE) +}; + +REG drm_reg[] = { + { HRDATAD(FUNCTION, DRMdev.FUNCTION, 16, "Last director function issued") }, + { HRDATAD(STATUS, DRMdev.STATUS, 16, "Director status register") }, + { HRDATAD(IENABLE, DRMdev.IENABLE, 16, "Interrupts enabled") }, + /*** more ***/ + { NULL } +}; + +MTAB drm_mod[] = { + { MTAB_XTD | MTAB_VDV, 0, "1752 Drum Memory Controller" }, + { MTAB_XTD|MTAB_VDV, 0, "EQUIPMENT", "EQUIPMENT=hexAddress", + &set_equipment, &show_addr, NULL, "Set/Display equipment address" }, + { MTAB_XTD|MTAB_VDV, 0, NULL, "STOPONREJECT", + &set_stoponrej, NULL, NULL, "Stop simulation if I/O is rejected" }, + { MTAB_XTD|MTAB_VDV, 0, NULL, "NOSTOPONREJECT", + &clr_stoponrej, NULL, NULL, "Don't stop simulation if I/O is rejected" }, + { MTAB_XTD|MTAB_VDV, 0, NULL, "PROTECT", + &set_protected, NULL, NULL, "Device is protected (unimplemented)" }, + { MTAB_XTD|MTAB_VDV, 0, NULL, "NOPROTECT", + &clear_protected, NULL, NULL, "Device is unprotected (unimplemented)" }, + { UNIT_DRMSIZE, 64, NULL, "64", + &drm_set_size, NULL, NULL, "Set drum storage to 64 tracks" }, + { UNIT_DRMSIZE, 128, NULL, "128", + &drm_set_size, NULL, NULL, "Set drum storage to 128 tracks" }, + { UNIT_DRMSIZE, 192, NULL, "192", + &drm_set_size, NULL, NULL, "Set drum storage to 192 tracks" }, + { UNIT_DRMSIZE, 256, NULL, "256", + &drm_set_size, NULL, NULL, "Set drum storage to 256 tracks" }, + { UNIT_DRMSIZE, 320, NULL, "320", + &drm_set_size, NULL, NULL, "Set drum storage to 320 tracks" }, + { UNIT_DRMSIZE, 384, NULL, "384", + &drm_set_size, NULL, NULL, "Set drum storage to 384 tracks" }, + { UNIT_DRMSIZE, 448, NULL, "448", + &drm_set_size, NULL, NULL, "Set drum storage to 448 tracks" }, + { UNIT_DRMSIZE, 512, NULL, "512", + &drm_set_size, NULL, NULL, "Set drum storage to 512 tracks" }, + { UNIT_DRMSIZE, 576, NULL, "576", + &drm_set_size, NULL, NULL, "Set drum storage to 576 tracks" }, + { UNIT_DRMSIZE, 640, NULL, "640", + &drm_set_size, NULL, NULL, "Set drum storage to 640 tracks" }, + { UNIT_DRMSIZE, 704, NULL, "704", + &drm_set_size, NULL, NULL, "Set drum storage to 704 tracks" }, + { UNIT_DRMSIZE, 768, NULL, "768", + &drm_set_size, NULL, NULL, "Set drum storage to 768 tracks" }, + { UNIT_DRMSIZE, 832, NULL, "832", + &drm_set_size, NULL, NULL, "Set drum storage to 832 tracks" }, + { UNIT_DRMSIZE, 896, NULL, "896", + &drm_set_size, NULL, NULL, "Set drum storage to 896 tracks" }, + { UNIT_DRMSIZE, 960, NULL, "960", + &drm_set_size, NULL, NULL, "Set drum storage to 960 tracks" }, + { UNIT_DRMSIZE, 1024, NULL, "1024", + &drm_set_size, NULL, NULL, "Set drum storage to 1024 tracks" }, + { 0 } +}; + +DEBTAB drm_deb[] = { + { "TRACE", DBG_DTRACE, "Trace device I/O requests" }, + { "STATE", DBG_DSTATE, "Display device state changes" }, + { "INTR", DBG_DINTR, "Display device interrupt requests" }, + { "ERROR", DBG_DERROR, "Display device errors" }, + { "LOCATION", DBG_DLOC, "Display address for I/O instructions" }, + { "FIRSTREJ", DBG_DFIRSTREJ, "Suppress display of 2nd ... I/O rejects" }, + { "ALL", DBG_DTRACE | DBG_DSTATE | DBG_DINTR | DBG_DERROR | DBG_DLOC }, + { NULL } +}; + +DEVICE drm_dev = { + "DRM", &drm_unit, drm_reg, drm_mod, + 1, 10, 31, 1, 8, 8, + NULL, NULL, &drm_reset, + NULL, &drm_attach, &drm_detach, + &DRMdev, + DEV_DEBUG | DEV_DISK | DEV_DISABLE | DEV_INDEV | DEV_OUTDEV | DEV_PROTECT, + 0, drm_deb, + NULL, NULL, &drm_help, NULL, NULL, NULL +}; + +/* + * Dump the current internal state of the DRM device. + */ +const char *DRMStateStr[] = { + "Idle", "Write", "Read" +}; + +void DRMstate(const char *where, DEVICE *dev, IO_DEVICE *iod) +{ + fprintf(DBGOUT, + "%s[%s %s: %s, Func: %04X, Sta: %04X, Ena: %04X]\r\n", + INTprefix, dev->name, where, DRMStateStr[iod->iod_state], + iod->FUNCTION, iod->STATUS, iod->IENABLE); + fprintf(DBGOUT, + "%s[%s: ISA: %04X, ICA: %04X, FCA: %04X, SAS: %04X, CAS: %04X]\r\n", + INTprefix, dev->name, + iod->iod_isa, iod->iod_ica, iod->iod_fca, + iod->SASTATUS, iod->CASTATUS); + fprintf(DBGOUT, + "%s[%s: Trk: %03X, Sec: %02X, Cur: %04X, Comp: %c]\r\n", + INTprefix, dev->name, iod->iod_trk, iod->iod_sec, iod->iod_ca, + iod->iod_compare ? 'T' : 'F'); +} + +/* + * Load and validate drum address in the Initial Sector Address Register + */ +static t_bool LoadDrumAddress(void) +{ + uint16 track = (DRMdev.iod_isa & DRM_TRK_MASK) >> DRM_TRK_SHIFT; + + if (track >= DRMdev.iod_tracks) + return FALSE; + + /* + * The sector field initially holds (sector # - 1) and needs to be + * incremented without touching the track #. + */ + DRMdev.iod_trk = track; + DRMdev.iod_sec = (DRMdev.iod_isa + 1) & DRM_SEC_MASK; + return TRUE; +} + +/* + * Set up a drum I/O operation using the currently set parameters + */ +static void StartDrumIO(t_bool wr) +{ + if (LoadDrumAddress()) { + DRMdev.iod_compare =(DRMdev.iod_fca >= DRMdev.CASTATUS) && + (DRMdev.iod_fca < (DRMdev.CASTATUS + DRM_NUMWD)); + DRMdev.iod_ca = DRMdev.iod_ica; + DRMdev.CASTATUS = DRMdev.iod_compare ? DRMdev.iod_ica : DRMdev.iod_fca; + + fw_IOunderwayEOP2(&DRMdev, IO_ST_DATA); + + if ((drm_dev.dctrl & DBG_DTRACE) != 0) { + fprintf(DBGOUT, + "%sDRM - Start %s I/O, Trk: %03X, Sec: %02X, Start: %04X, End: %04X\r\n", + INTprefix, wr ? "Write" : "Read", + DRMdev.iod_trk, DRMdev.iod_sec, DRMdev.iod_ica, DRMdev.iod_fca); + } + + DRMdev.iod_state = wr ? DRM_WRITE : DRM_READ; + sim_activate(&drm_unit, DRM_ACCESS_WAIT); + return; + } + + /* + * Generate a sector overrange error and possible interrupt. + */ + DRMdev.STATUS &= ~IO_ST_DATA; + DRMdev.STATUS |= IO_1752_OVERR; + fw_IOalarm(FALSE, &drm_dev, &DRMdev, "Invalid track #"); +} + +/* + * Increment the drum sector address. + */ +static void DrumIOIncSector(void) +{ + DRMdev.iod_sec = (DRMdev.iod_sec + 1) & DRM_SEC_MASK; + if (DRMdev.iod_sec == 0) + DRMdev.iod_trk++; +} + +/* + * Initiate a read operation on the drum. + */ +static enum drmio_status DrumIORead(UNIT *uptr) +{ + uint16 buf[DRM_NUMWD]; + uint32 lba = (DRMdev.iod_trk << DRM_TRK_SHIFT) | DRMdev.iod_sec; + int i; + + if (DRMdev.iod_trk >= DRMdev.iod_tracks) + return DRMIO_ADDRERR; + + /* + * Report any error in the underlying container infrastructure as an + * address error. + */ + if (sim_fseeko(uptr->fileref, lba * DRM_NUMBY, SEEK_SET) || + (sim_fread(buf, sizeof(uint16), DRM_NUMWD, uptr->fileref) != DRM_NUMWD)) + return DRMIO_ADDRERR; + + for (i = 0; i < DRM_NUMWD; i++) { + /*** TODO: fix protect check ***/ + if (!IOStoreToMem(DRMdev.iod_ca, buf[i], TRUE)) + return DRMIO_PROTECT; + + DRMdev.DATASTATUS = buf[i]; + + if (DRMdev.iod_ca++ == DRMdev.iod_fca) { + DRMdev.CASTATUS = DRMdev.iod_ca; + DrumIOIncSector(); + return DRMIO_DONE; + } + } + DrumIOIncSector(); + if ((drm_dev.dctrl & DBG_DTRACE) != 0) + fprintf(DBGOUT, + "%sDRM - Continue Read I/O, Trk: %03X, Sec: %02X, Cur: %04X, End: %04X\r\n", + INTprefix, DRMdev.iod_trk, DRMdev.iod_sec, + DRMdev.iod_ca, DRMdev.iod_fca); + + return DRMIO_MORE; +} + +/* + * Initiate a write operation on the drum. + */ +static enum drmio_status DrumIOWrite(UNIT *uptr) +{ + uint16 buf[DRM_NUMWD]; + uint32 lba = (DRMdev.iod_trk << DRM_TRK_SHIFT) | DRMdev.iod_sec; + t_bool done = FALSE; + int i; + + if (DRMdev.iod_trk >= DRMdev.iod_tracks) + return DRMIO_ADDRERR; + + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < DRM_NUMWD; i++) { + DRMdev.DATASTATUS = buf[i] = LoadFromMem(DRMdev.iod_ca); + if (DRMdev.iod_ca++ == DRMdev.iod_fca) { + DRMdev.CASTATUS = DRMdev.iod_ca; + done = TRUE; + break; + } + } + + /* + * Report any error in the underlying container infrastructure as an + * address error. + */ + if (sim_fseeko(uptr->fileref, lba * DRM_NUMBY, SEEK_SET) || + (sim_fwrite(buf, sizeof(uint16), DRM_NUMWD, uptr->fileref) != DRM_NUMWD)) + return DRMIO_ADDRERR; + + DrumIOIncSector(); + if (((drm_dev.dctrl & DBG_DTRACE) != 0) && !done) + fprintf(DBGOUT, + "%sDRM - Continue Write I/O, Trk: %03X, Sec: %02X, Cur: %04X, End: %04X\r\n", + INTprefix, DRMdev.iod_trk, DRMdev.iod_sec, + DRMdev.iod_ca, DRMdev.iod_fca); + + return done ? DRMIO_DONE : DRMIO_MORE; +} + +/* + * Perform read/write sector operations from within the unit service routine. + */ +void DrumIO(UNIT *uptr, uint8 iotype) +{ + const char *error = "Unknown"; + enum drmio_status status = DRMIO_ADDRERR; + + switch (iotype) { + case DRM_WRITE: + status = DrumIOWrite(uptr); + break; + + case DRM_READ: + status = DrumIORead(uptr); + break; + } + + /* + * Update the sector address status register if the I/O was successful. + * Note that since we perform sector at a time I/O, we assert the "Core + * Address Compare" bit for the entire period. + */ + if ((status == DRMIO_MORE) || (status == DRMIO_DONE)) { + DRMdev.iod_compare =(DRMdev.iod_fca >= DRMdev.iod_ca) && + (DRMdev.iod_fca < (DRMdev.iod_ca + DRM_NUMWD)); + } + + switch (status) { + case DRMIO_MORE: + sim_activate(uptr, DRM_SECTOR_WAIT); + break; + + case DRMIO_PROTECT: + DRMdev.STATUS |= IO_1752_PROTF; + error = "Protection Fault"; + goto err; + + case DRMIO_ADDRERR: + DRMdev.STATUS |= IO_1752_OVERR; + error = "Address Error"; + err: + DRMdev.iod_compare = FALSE; + DRMdev.iod_state = DRM_IDLE; + + if ((drm_dev.dctrl & DBG_DERROR) != 0) + fprintf(DBGOUT, + "%sDRM - Read/Write failed - %s\r\n", + INTprefix, error); + + fw_IOalarm(FALSE, &drm_dev, &DRMdev, "Alarm"); + break; + + case DRMIO_DONE: + DRMdev.iod_compare = FALSE; + DRMdev.iod_event = Instructions; + DRMdev.iod_state = DRM_IDLE; + + if ((drm_dev.dctrl & DBG_DTRACE) != 0) + fprintf(DBGOUT, + "%sDRM - Read/Write transfer complete\r\n", INTprefix); + + DRMdev.STATUS |= IO_ST_DATA; + fw_IOcompleteEOP2(FALSE, &drm_dev, &DRMdev, 0xFFFF, "Transfer complete"); + break; + } +} + +/* Unit service */ + +t_stat drm_svc(UNIT *uptr) +{ + if ((drm_dev.dctrl & DBG_DTRACE) != 0) { + fprintf(DBGOUT, "%s[DRM: drm_svc() entry]\r\n", INTprefix); + if ((drm_dev.dctrl & DBG_DSTATE) != 0) + DRMstate("svc_entry", &drm_dev, &DRMdev); + } + + switch (DRMdev.iod_state) { + case DRM_IDLE: + /* + * Unit is idle, nothing to do. + */ + break; + + case DRM_WRITE: + case DRM_READ: + DrumIO(uptr, DRMdev.iod_state); + break; + } + + if ((drm_dev.dctrl & DBG_DTRACE) != 0) { + fprintf(DBGOUT, "%s[DRM: drm_svc() exit]\r\n", INTprefix); + if ((drm_dev.dctrl & DBG_DSTATE) != 0) + DRMstate("svc_exit", &drm_dev, &DRMdev); + } + return SCPE_OK; +} + +/* Reset routine */ + +t_stat drm_reset(DEVICE *dptr) +{ + DRMdev.STATUS = 0; + if ((drm_unit.flags & UNIT_ATT) != 0) + DRMdev.STATUS |= IO_ST_READY | IO_ST_DATA; + + DRMdev.SASTATUS = + DRMdev.CASTATUS = + DRMdev.DATASTATUS = 0; + + DRMdev.iod_trk = + DRMdev.iod_sec = 0; + + DRMdev.iod_event = Instructions; + + return SCPE_OK; +} + +/* Attach routine */ + +t_stat drm_attach (UNIT *uptr, CONST char *cptr) +{ + t_addr capac = uptr->capac; + t_stat r; + uint16 tracks; + + r = attach_unit(uptr, cptr); + if (r != SCPE_OK) + return r; + + /* + * If this ia a newly created file, set the drum size appropriately. + */ + if (sim_fsize_ex(uptr->fileref) == 0) + sim_set_fsize(uptr->fileref, capac); + + /* + * If we are attaching to an existing file, make sure that its size: + * + * - is a multiple of 3072 words + * - is between 64 and 1024 tracks (each of 3072 words) + * - is a multiple of 64 tracks + */ + tracks = sim_fsize_ex(uptr->fileref) / (DRM_NUMSC * DRM_NUMBY); + if (((sim_fsize_ex(uptr->fileref) % (DRM_NUMSC * DRM_NUMBY)) != 0) || + (tracks < DRM_MINTRACKS) || + (tracks > DRM_MAXTRACKS) || + ((tracks & (DRM_MINTRACKS - 1)) != 0)) { + detach_unit(uptr); + uptr->capac = capac; + return sim_messagef(SCPE_OPENERR, "Invalid file size"); + } + DRMdev.STATUS = IO_ST_READY | IO_ST_DATA; + DRMdev.iod_tracks = tracks; + DRMdev.iod_event = Instructions; + + return SCPE_OK; +} + +/* Detach routine */ + +t_stat drm_detach(UNIT *uptr) +{ + sim_cancel(uptr); + DRMdev.STATUS &= ~(IO_ST_READY | IO_ST_DATA); + return detach_unit(uptr); +} + +/* + * Change drum capacity + */ +t_stat drm_set_size(UNIT *uptr, int32 val, CONST char *cptr, void *desc) +{ + if ((uptr->flags & UNIT_ATT) != 0) + return SCPE_ALATT; + + drm_unit.capac = val * DRM_NUMSC * DRM_NUMBY; + DRMdev.iod_tracks = val; + return SCPE_OK; +} + +/* Check if I/O should be rejected */ + +t_bool DRMreject(IO_DEVICE *iod, t_bool output, uint8 reg) +{ + if (output) { + if (reg != 0x1) + return (DRMdev.STATUS & IO_ST_BUSY) != 0; + } + return FALSE; +} + +/* Perform I/O */ + +enum IOstatus DRMin(IO_DEVICE *iod, uint8 reg) +{ + /* + * The I/O framework passes input requests for the Director Status register + * and the Sector Address Status register so that we can return values + * which are dependent on the rotational position of the drum. + */ + + /* + * Update the current sector value. + */ + if (DRMdev.iod_state == DRM_IDLE) { + t_uint64 sectors = (Instructions - DRMdev.iod_event) / DRM_SECTOR_WAIT; + + if (sectors != 0) { + DRMdev.iod_sec = (DRMdev.iod_sec + sectors) & DRM_SEC_MASK; + DRMdev.iod_event += sectors * DRM_SECTOR_WAIT; + } + } + + switch (reg) { + case 0x01: + /* + * Director Status + */ + if (DRMdev.iod_sec == (DRMdev.iod_isa & DRM_SEC_MASK)) + DRMdev.STATUS |= IO_1752_SECCMP; + else DRMdev.STATUS &= ~IO_1752_SECCMP; + Areg = DRMdev.STATUS; + return IO_REPLY; + + case 0x02: + /* + * Sector Address Status + */ + DRMdev.SASTATUS = (DRMdev.iod_trk << DRM_TRK_SHIFT) | DRMdev.iod_sec; + if (DRMdev.iod_compare) + DRMdev.SASTATUS |= DRM_COMPARE; + Areg = DRMdev.SASTATUS; + return IO_REPLY; + } + return IO_REJECT; +} + +enum IOstatus DRMout(IO_DEVICE *iod, uint8 reg) +{ + switch (reg) { + case 0x00: + /* + * Initiate Drum Write Operation + */ + StartDrumIO(TRUE); + break; + + case 0x01: + /* + * Director function. + */ + doDirectorFunc(&drm_dev, FALSE); + break; + + case 0x04: + /* + * Initiate Drum Read Operation + */ + StartDrumIO(FALSE); + break; + + case 0x08: + /* + * Load Initial Sector Address Register. + */ + DRMdev.iod_isa = IOAreg; + DRMdev.iod_trk = (IOAreg & DRM_TRK_MASK) >> DRM_TRK_SHIFT; + break; + + case 0x0C: + /* + * Load Initial Core Address Register + */ + DRMdev.iod_ica = DRMdev.CASTATUS = IOAreg; + DRMdev.iod_compare = DRMdev.iod_ica == DRMdev.iod_fca; + break; + + case 0x0E: + /* + * Load Final Core Address Register + */ + DRMdev.iod_fca = IOAreg; + DRMdev.iod_compare = DRMdev.iod_ica == DRMdev.iod_fca; + break; + } + /* + * Any non-rejected output clears EOP interrupt. + */ + if ((DRMdev.STATUS & IO_ST_EOP) != 0) + DRMdev.STATUS &= ~(IO_ST_INT | IO_ST_EOP); + rebuildPending(); + + return IO_REPLY; +} + +/* + * Device clear routine. Clear controller operation from a director + * function - same as device reset but don't clear CASTATUS and DATASTATUS + */ +void DRMclear(DEVICE *dptr) +{ + DRMdev.STATUS = 0; + if ((drm_unit.flags & UNIT_ATT) != 0) + DRMdev.STATUS |= IO_ST_READY | IO_ST_DATA; + + DRMdev.SASTATUS = 0; + + DRMdev.iod_trk = + DRMdev.iod_sec = 0; + + DRMdev.iod_event = Instructions; +} + +/* + * Address decode routine. If bit 0 of an output register address is set, + * clear bits 1 - 7 since they are ignored. + */ +uint8 DRMdecode(IO_DEVICE *iod, t_bool output, uint8 reg) +{ + if (output && ((reg & 0x01) != 0)) + reg &= 0x01; + return reg; +} + +/* + * Autoload support + */ +t_stat DRMautoload(void) +{ + UNIT *uptr = &drm_unit; + + if ((uptr->flags & UNIT_ATT) != 0) { + uint32 i; + + for (i = 0; i < DRM_AUTOLOAD; i++) { + t_offset offset = i * DRM_NUMBY; + void *buf = &M[i * DRM_NUMBY]; + + if (sim_fseeko(uptr->fileref, offset, SEEK_SET) || + (sim_fread(buf, sizeof(uint16), DRM_NUMWD, uptr->fileref) != DRM_NUMWD)) + return SCPE_IOERR; + } + return SCPE_OK; + } + return SCPE_UNATT; +} + +t_stat drm_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) +{ + const char helpString[] = + /****************************************************************************/ + " The %D device is a 1752 drum memory controller.\n" + "1 Hardware Description\n" + " The 1752-1/2/3/4 consists of a controller and field expandable drum\n" + " storage from 196608 to 1572864 words. A custom order may provide\n" + " additional storage up to 3145728 words.\n" + "2 Equipment Address\n" + " Drum controllers are typically set to equipment address 2. This address\n" + " may be changed by:\n\n" + "+sim> SET %D EQUIPMENT=hexValue\n\n" + "2 $Registers\n" + "\n" + " These registers contain the emulated state of the device. These values\n" + " don't necessarily relate to any detail of the original device being\n" + " emulated but are merely internal details of the emulation. STATUS always\n" + " contains the current status of the device as it would be read by an\n" + " application program.\n" + "1 Configuration\n" + " A %D device is configured with various simh SET and ATTACH commands\n" + "2 $Set commands\n"; + + return scp_help(st, dptr, uptr, flag, helpString, cptr); +} diff --git a/CDC1700/cdc1700_io.c b/CDC1700/cdc1700_io.c index 724e4809..87dee337 100644 --- a/CDC1700/cdc1700_io.c +++ b/CDC1700/cdc1700_io.c @@ -49,7 +49,7 @@ extern t_bool FirstRejSeen; extern uint32 CountRejects; extern DEVICE cpu_dev, dca_dev, dcb_dev, dcc_dev, tti_dev, tto_dev, - ptr_dev, ptp_dev, cdr_dev; + ptr_dev, ptp_dev; static const char *status[] = { "REPLY", "REJECT", "INTERNALREJECT" @@ -326,7 +326,7 @@ enum IOstatus doIO(t_bool output, DEVICE **device) * 001 - 1711/1712/1713 teletypewriter * 010 - 1721/1722 paper tape reader * 100 - 1723/1724 paper tape punch - * 110 - 1729 card reader + * 110 - 1729 card reader (not implemented on device address 1) */ switch ((IOQreg >> 4) & 0x7) { case 0x01: @@ -341,10 +341,6 @@ enum IOstatus doIO(t_bool output, DEVICE **device) dev = &ptp_dev; break; - case 0x06: - dev = &cdr_dev; - break; - default: return IO_INTERNALREJECT; } diff --git a/CDC1700/cdc1700_iofw.c b/CDC1700/cdc1700_iofw.c index cc88b84a..e2c05484 100644 --- a/CDC1700/cdc1700_iofw.c +++ b/CDC1700/cdc1700_iofw.c @@ -46,7 +46,7 @@ t_bool IOFWinitialized = FALSE; /* * This I/O framework provides an implementation of a generic device. The - * framework provides for up to 8 read and 8 write device registers. The + * framework provides for up to 16 read and 16 write device registers. The * read device registers may be stored and read directly from the framework * or may cause an entry to the device-specific portion of the device * driver. The framework may be setup to dynamically reject I/O requests @@ -110,6 +110,10 @@ t_bool IOFWinitialized = FALSE; * interrupt handling * void (*iod_clear)(DEVICE *); * - Perform clear controller operation + * uint8 (*iod_decode)(DEVICE *, t_bool, uint8); + * - Non-std device register decode + * t_bool (*iod_chksta)(t_bool, uint8); + * - Check for valid station address(es) * uint16 iod_ienable; - Device interrupt enables * uint16 iod_oldienable; - Previous iod_ienable * uint16 iod_imask; - Valid device interrupts @@ -119,10 +123,10 @@ t_bool IOFWinitialized = FALSE; * "clear interrupts" * uint16 iod_rmask; - Register mask (vs. station addr) * uint8 iod_regs; - # of device registers - * uint8 iod_validmask; - Bitmap of valid registers - * uint8 iod_readmap; - Bitmap of read registers - * uint8 iod_rejmapR; - Bitmaps of register R/W - * uint8 iod_rejmapW; access to be rejected + * uint16 iod_validmask; - Bitmap of valid registers + * uint16 iod_readmap; - Bitmap of read registers + * uint16 iod_rejmapR; - Bitmaps of register R/W + * uint16 iod_rejmapW; access to be rejected * uint8 iod_flags; - Device flags * #define STATUS_ZERO 0x01 - Status register read returns 0 * #define DEVICE_DC 0x02 - Device is buffered data channel @@ -143,6 +147,10 @@ t_bool IOFWinitialized = FALSE; * uint16 iod_private8; - Device-specific use * uint8 iod_private9; - Device-specific use * t_bool iod_private10; - Device-specific use + * uint16 iod_private11; - Device-specific use + * uint16 iod_private12; - Device-specific use + * uint8 iod_private13; - Device-specific use + * uint8 iod_private14; - Device-specific use * * The macro CHANGED(iod, n) will return what bits have been changed in write * register 'n' just after it has been written. @@ -193,13 +201,28 @@ void fw_init(void) enum IOstatus fw_doIO(DEVICE *dptr, t_bool output) { IO_DEVICE *iod = (IO_DEVICE *)dptr->ctxt; - uint8 rej = (output ? iod->iod_rejmapW : iod->iod_rejmapR) & ~MASK_REGISTER1; + uint16 rej = (output ? iod->iod_rejmapW : iod->iod_rejmapR) & ~MASK_REGISTER1; uint8 reg; if ((iod->iod_flags & DEVICE_DC) != 0) reg = ((IOQreg & IO_W) - iod->iod_dcbase) >> 11; else reg = IOQreg & iod->iod_rmask; + /* + * Check for special station address handling for this device. + */ + if (iod->iod_chksta != NULL) + if (!(*iod->iod_chksta)(output, reg)) + return IO_INTERNALREJECT; + + /* + * Handle non-standard register decoding. E.g. For the 1752 drum controller, + * if bit 0 of the equipment address is set, bits 1 - 3 are ignored so all + * odd addresses map to "Director Function". + */ + if (iod->iod_decode != NULL) + reg = (*iod->iod_decode)(iod, output, reg); + /* * Check for valid device address */ @@ -298,7 +321,7 @@ enum IOstatus fw_doBDCIO(IO_DEVICE *iod, uint16 *data, t_bool output, uint8 reg) * must make sure that the active interrupt flag is set whenever one or more * interrupt source is active and the interrupt(s) have been enabled. * Interrupts are typically generated when a status flag is raised but we also - * need to handle removing an interrupt souce when a flag is dropped. + * need to handle removing an interrupt source when a flag is dropped. * * In addition, some devices have non-standard interrupts and we need to * provide a callback to a device-specific routine to check for such diff --git a/CDC1700/cdc1700_lp.c b/CDC1700/cdc1700_lp.c index cd0c0d41..7112869a 100644 --- a/CDC1700/cdc1700_lp.c +++ b/CDC1700/cdc1700_lp.c @@ -182,7 +182,7 @@ t_stat lp_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE LPdev = IODEV(NULL, "Line Printer", 1740, 4, 0xFF, 0, fw_reject, LPin, LPout, NULL, NULL, - NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, 0x7F, 4, MASK_REGISTER0 | MASK_REGISTER1 | MASK_REGISTER3, MASK_REGISTER1, @@ -215,7 +215,7 @@ IO_DEVICE LPdev = IODEV(NULL, "Line Printer", 1740, 4, 0xFF, 0, */ UNIT lp_unit = { - UDATA(&lp_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_ROABLE, 0), LP_OUT_WAIT + UDATA(&lp_svc, UNIT_SEQ+UNIT_ATTABLE, 0), LP_OUT_WAIT }; REG lp_reg_1740[] = { @@ -326,10 +326,12 @@ const char *LPprivateState[4] = { void LPstate(const char *where, DEVICE *dev, IO_DEVICE *iod) { fprintf(DBGOUT, - "%s[%s %s: Func: %04X, Func2: %04X, Sta: %04X, Ena: %04x, Count: %d, \ -Private: %s%s\r\n", + "%s[%s %s: Func: %04X, Func2: %04X, Sta: %04X, Ena: %04x]\r\n", + INTprefix, dev->name, where, + iod->FUNCTION, iod->FUNCTION2, iod->STATUS, iod->IENABLE); + fprintf(DBGOUT, + "%s[%s %s: Count: %d, Private: %s%s\r\n", INTprefix, dev->name, where, - iod->FUNCTION, iod->FUNCTION2, iod->STATUS, iod->IENABLE, iod->iod_LPcolumn, LPprivateState[iod->iod_LPstate], iod->iod_LPoverwrite ? ",Overwrite" : ""); @@ -391,12 +393,36 @@ t_stat lp_svc(UNIT *uptr) return SCPE_OK; } +/* I/O routines */ +static void lp_puts(char *s) +{ + if (fputs(s, lp_unit.fileref) == EOF) { + perror("LP I/O error (puts)"); + clearerr(lp_unit.fileref); + return; + } + lp_unit.pos += strlen(s); +} + +static void lp_putc(uint8 ch) +{ + if (putc(ch, lp_unit.fileref) == EOF) { + perror("LP I/O error (putc)"); + clearerr(lp_unit.fileref); + return; + } + lp_unit.pos++; +} + /* Reset routine */ t_stat lp_reset(DEVICE *dptr) { t_stat r; + if ((lp_dev.dctrl & DBG_TRACE) != 0) + fprintf(DBGOUT, "%s[LP: lp_reset() entry]\r\n", INTprefix); + if (LPdev.iod_type == IOtype_default) { /* * Setup the default device type. @@ -408,8 +434,11 @@ t_stat lp_reset(DEVICE *dptr) if (IOFWinitialized) if ((dptr->flags & DEV_DIS) == 0) - if ((r = checkReset(dptr, LPdev.iod_equip)) != SCPE_OK) + if ((r = checkReset(dptr, LPdev.iod_equip)) != SCPE_OK) { + if ((lp_dev.dctrl & DBG_TRACE) != 0) + fprintf(DBGOUT, "%s[LP: lp_reset() disabled]\r\n", INTprefix); return r; + } DEVRESET(&LPdev); @@ -421,6 +450,9 @@ t_stat lp_reset(DEVICE *dptr) LPdev.STATUS |= IO_ST_DATA | IO_ST_EOP; + if ((lp_dev.dctrl & DBG_TRACE) != 0) + fprintf(DBGOUT, "%s[LP: lp_reset() exit]\r\n", INTprefix); + return SCPE_OK; } @@ -511,12 +543,9 @@ enum IOstatus LPout(IO_DEVICE *iod, uint8 reg) /*** TODO: implement format tape decoding ***/ } - if ((lp_unit.flags & UNIT_ATT) != 0) { - if (fputs(ccontrol, lp_unit.fileref) == EOF) { - perror("LP I/O error"); - clearerr(lp_unit.fileref); - } - } + if ((lp_unit.flags & UNIT_ATT) != 0) + lp_puts((char *)ccontrol); + fw_IOunderwayData(&LPdev, 0); LPdev.iod_LPstate = IODP_LPCCWAIT; @@ -567,12 +596,8 @@ enum IOstatus LPout(IO_DEVICE *iod, uint8 reg) if ((lp_unit.flags & UNIT_ATT) != 0) { int i; - for (i = 0; i < iod->iod_LPcolumn; i++) { - if (putc(buffer[i], lp_unit.fileref) == EOF) { - perror("LP I/O error"); - clearerr(lp_unit.fileref); - } - } + for (i = 0; i < iod->iod_LPcolumn; i++) + lp_putc(buffer[i]); } } fw_IOunderwayEOP(&LPdev, IO_ST_INT); @@ -597,19 +622,12 @@ enum IOstatus LPout(IO_DEVICE *iod, uint8 reg) if ((lp_unit.flags & UNIT_ATT) != 0) { int i; - if (iod->iod_LPoverwrite) { - if (putc('\r', lp_unit.fileref) == EOF) { - perror("LP I/O error"); - clearerr(lp_unit.fileref); - } - } + if (iod->iod_LPoverwrite) + lp_putc('\r'); + + for (i = 0; i < iod->iod_LPcolumn; i++) + lp_putc(buffer[i]); - for (i = 0; i < iod->iod_LPcolumn; i++) { - if (putc(buffer[i], lp_unit.fileref) == EOF) { - perror("LP I/O error"); - clearerr(lp_unit.fileref); - } - } iod->iod_LPoverwrite = TRUE; } } @@ -620,16 +638,10 @@ enum IOstatus LPout(IO_DEVICE *iod, uint8 reg) /*** TODO: Implement format tape operations. For now, all operations generate a single space motion ***/ if ((lp_unit.flags & UNIT_ATT) != 0) { - if (putc('\n', lp_unit.fileref) == EOF) { - perror("LP I/O error"); - clearerr(lp_unit.fileref); - } - if ((Areg & IO_1740_DSP) != 0) { - if (putc('\n', lp_unit.fileref) == EOF) { - perror("LP I/O error"); - clearerr(lp_unit.fileref); - } - } + lp_putc('\n'); + + if ((Areg & IO_1740_DSP) != 0) + lp_putc('\n'); } iod->iod_LPoverwrite = FALSE; printwait = TRUE; diff --git a/CDC1700/cdc1700_mt.c b/CDC1700/cdc1700_mt.c index 7b28cc09..20a9b3b3 100644 --- a/CDC1700/cdc1700_mt.c +++ b/CDC1700/cdc1700_mt.c @@ -24,7 +24,7 @@ in this Software without prior written authorization from John Forecast. */ - + /* cdc1700_mt.c: 1732-A/B and 1732-3 magtape device support * Simh devices: mt0, mt1, mt2, mt3 */ @@ -127,6 +127,8 @@ extern t_bool IOFWinitialized; extern UNIT cpu_unit; t_stat mt_show_transport(FILE *, UNIT *, int32, CONST void *); +t_stat mt_set_9track(UNIT *, int32, CONST char *, void *); +t_stat mt_set_7track(UNIT *, int32, CONST char *, void *); t_stat mt_show_type(FILE *, UNIT *, int32, CONST void *); t_stat mt_set_type(UNIT *, int32, CONST char *, void *); @@ -352,7 +354,7 @@ t_stat mt_help(FILE *, DEVICE *, UNIT *, int32, const char *); | | | (1732-A only, additional unit select bit) | | Select Tape Unit | Deselect Tape Unit - Select Low Read Threshold (1733-3 only) + Select Low Read Threshold (1732-3 only) Status Response: @@ -377,8 +379,8 @@ t_stat mt_help(FILE *, DEVICE *, UNIT *, int32, const char *); | | | | File Mark | | | Controller Active | | Fill - | Storage Parity Error (1733-3 only) - Protect Fault (1733-3 only) + | Storage Parity Error (1732-3 only) + Protect Fault (1732-3 only) Director Status 2 @@ -389,7 +391,7 @@ t_stat mt_help(FILE *, DEVICE *, UNIT *, int32, const char *); | | | | | | | | | | | | | | | | | | | 556 BPI | | | | | | | | 800 BPI - | | | | | | | 1600 BPI (1733-3 only) + | | | | | | | 1600 BPI (1732-3 only) | | | | | | Seven Track | | | | | Write Enable | | | | PE - Warning @@ -402,7 +404,7 @@ t_stat mt_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE MTdev = IODEV(NULL, "Magtape", 1732, 7, 0xFF, 0, MTreject, MTin, MTout, MTBDCin, MTBDCout, - MTstate, NULL, NULL, MTclear, + MTstate, NULL, NULL, MTclear, NULL, NULL, 0x7F, 4, MASK_REGISTER0 | MASK_REGISTER1 | MASK_REGISTER2 | \ MASK_REGISTER3, @@ -419,6 +421,7 @@ IO_DEVICE MTdev = IODEV(NULL, "Magtape", 1732, 7, 0xFF, 0, #define iod_CWA iod_readR[3] /* current DSA address */ #define iod_LWA iod_private6 /* last word address */ #define iod_DSApending iod_private10 /* DSA request pending */ +#define iod_FWA iod_private11 /* first word address */ /* * Define delay functions other than the standard motion commands. The low @@ -486,6 +489,10 @@ MTAB mt_mod[] = { &sim_tape_set_capac, &sim_tape_show_capac, NULL, "Specify tape capacity" }, { MTAB_XTD|MTAB_VUN, 0, "TRANSPORT", NULL, NULL, &mt_show_transport, NULL, "Display type of tape transport" }, + { MTAB_XTD|MTAB_VUN, 0, NULL, "9TRACK", + &mt_set_9track, NULL, NULL, "Set drive as 9-track transport" }, + { MTAB_XTD|MTAB_VUN, 0, NULL, "7TRACK", + &mt_set_7track, NULL, NULL, "Set drive as 7-track transport" }, { MTAB_XTD|MTAB_VDV, 0, NULL, "STOPONREJECT", &set_stoponrej, NULL, NULL, "Stop simulation if I/O is rejected" }, { MTAB_XTD|MTAB_VDV, 0, NULL, "NOSTOPONREJECT", @@ -507,6 +514,8 @@ MTAB mt_mod[] = { #define DBG_V_MTIO (DBG_SPECIFIC+4)/* Trace library routine calls */ #define DBG_V_DENS (DBG_SPECIFIC+5)/* Trace density select changes */ #define DBG_V_SELECT (DBG_SPECIFIC+6)/* Trace drive select/de-select */ +#define DBG_V_RDSA (DBG_SPECIFIC+7)/* Read data after DSA transfer */ +#define DBG_V_WDSA (DBG_SPECIFIC+8)/* Write data before DSA transfer */ #define DBG_OPS (1 << DBG_V_OPS) #define DBG_READ (1 << DBG_V_READ) @@ -515,6 +524,8 @@ MTAB mt_mod[] = { #define DBG_MTIO (1 << DBG_V_MTIO) #define DBG_DENS (1 << DBG_V_DENS) #define DBG_SELECT (1 << DBG_V_SELECT) +#define DBG_RDSA (1 << DBG_V_RDSA) +#define DBG_WDSA (1 << DBG_V_WDSA) DEBTAB mt_deb[] = { { "TRACE", DBG_DTRACE, "Trace device I/O requests" }, @@ -529,6 +540,8 @@ DEBTAB mt_deb[] = { { "MTIO", DBG_MTIO, "Trace tape library routine calls" }, { "DENS", DBG_DENS, "Trace denisty select changes" }, { "SELECT", DBG_SELECT, "Trace transport select/de-select" }, + { "RDSA", DBG_RDSA, "Dump buffer after DSA read" }, + { "WDSA", DBG_WDSA, "Dump buffer before DSA write" }, { NULL } }; @@ -745,6 +758,42 @@ void mt_dump(void) } } +void mt_DSAdump(uint16 lwa, t_bool rw) +{ + uint16 cwa = MTdev.iod_FWA; + int idx; + char msg[80], text[16], temp[8]; + + fprintf(DBGOUT, "Dump of DSA %s buffer (FWA: %04X, LWA: %04X):\r\n", + rw ? "write" : "read", cwa, lwa); + + msg[0] = '\0'; + idx = 0; + + while (cwa != lwa) { + text[idx++] = chars[(M[cwa] >> 8) & 0x7F]; + text[idx++] = chars[M[cwa] & 0x7F]; + + sprintf(temp, "0x%04X", M[cwa]); + if (msg[0] != '\0') + strcat(msg, " "); + strcat(msg, temp); + + if (idx == 10) { + text[idx++] = '\0'; + fprintf(DBGOUT, "%-55s%s\r\n", msg, text); + msg[0] = '\0'; + idx = 0; + } + cwa++; + } + + if (idx != 0) { + text[idx++] = '\0'; + fprintf(DBGOUT, "%-55s%s\r\n", msg, text); + } +} + /* * Dump the current internal state of the MT device. */ @@ -788,7 +837,7 @@ t_stat mt_show_type(FILE *st, UNIT *uptr, int32 val, CONST void *desc) break; case DEVTYPE_1732_3: - fprintf(st, "1733-3 Magnetic Tape Controller"); + fprintf(st, "1732-3 Magnetic Tape Controller"); break; default: @@ -842,6 +891,36 @@ t_stat mt_show_transport(FILE *st, UNIT *uptr, int32 val, CONST void *desc) return SCPE_OK; } +/* + * Set drive to 9-track transport. + */ +t_stat mt_set_9track(UNIT *uptr, int32 val, CONST char *cptr, void *desc) +{ + if (uptr == NULL) + return SCPE_IERR; + + if ((uptr->flags & UNIT_ATT) != 0) + return SCPE_ALATT; + + uptr->flags &= ~UNIT_7TRACK; + return SCPE_OK; +} + +/* + * Set drive to 7-track transport. + */ +t_stat mt_set_7track(UNIT *uptr, int32 val, CONST char *cptr, void *desc) +{ + if (uptr == NULL) + return SCPE_IERR; + + if ((uptr->flags & UNIT_ATT) != 0) + return SCPE_ALATT; + + uptr->flags |= UNIT_7TRACK; + return SCPE_OK; +} + /* * Compute the delay time between new data being available from tape. This * will be dependent on the density of the tape and the speed of the drive @@ -988,6 +1067,8 @@ t_stat mt_svc(UNIT *uptr) if ((mt_dev.dctrl & DBG_OPS) != 0) mt_trace(uptr, "DSA read complete", (t_stat)-1, FALSE); + if ((mt_dev.dctrl & DBG_RDSA) != 0) + mt_DSAdump(MTdev.iod_LWA, FALSE); break; } @@ -1005,6 +1086,8 @@ t_stat mt_svc(UNIT *uptr) if ((mt_dev.dctrl & DBG_OPS) != 0) mt_trace(uptr, "DSA read complete - no data", (t_stat)-1, FALSE); + if ((mt_dev.dctrl & DBG_RDSA) != 0) + mt_DSAdump(MTdev.iod_CWA, FALSE); break; } @@ -1108,181 +1191,187 @@ t_stat mt_svc(UNIT *uptr) * motion" does set "end of operation" if a tape mark or end of tape * is detected. */ - case IO_1732_READ: - MTremain = 0; - status = sim_tape_rdrecf(uptr, MTbuf, &MTremain, MTSIZ); + case IO_1732_READ: + MTremain = 0; + status = sim_tape_rdrecf(uptr, MTbuf, &MTremain, MTSIZ); - if ((mt_dev.dctrl & DBG_MTIO) != 0) - mtio_trace(uptr, "rdrecf", status, TRUE, MTremain); + if ((mt_dev.dctrl & DBG_MTIO) != 0) + mtio_trace(uptr, "rdrecf", status, TRUE, MTremain); - switch (status) { - case MTSE_OK: - break; + switch (status) { + case MTSE_OK: + break; - case MTSE_TMK: - MTdev.STATUS |= IO_ST_ALARM | IO_1732_FMARK; - break; + case MTSE_TMK: + MTdev.STATUS |= IO_ST_ALARM | IO_1732_FMARK; + break; - case MTSE_EOM: - MTdev.STATUS |= IO_ST_ALARM | IO_1732_EOT; - break; + case MTSE_EOM: + MTdev.STATUS |= IO_ST_ALARM | IO_1732_EOT; + break; - case MTSE_RECE: - MTdev.STATUS |= IO_ST_ALARM | IO_ST_PARITY; - MTremain = 0; - break; - } - MToffset = 0; + case MTSE_RECE: + MTdev.STATUS |= IO_ST_ALARM | IO_ST_PARITY; + MTremain = 0; + break; + } + MToffset = 0; - if ((MTdev.STATUS & (IO_1732_FMARK | IO_1732_EOT | IO_ST_PARITY)) == 0) - mask &= ~IO_ST_EOP; + if ((MTdev.STATUS & (IO_1732_FMARK | IO_1732_EOT | IO_ST_PARITY)) == 0) + mask &= ~IO_ST_EOP; - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "READ", status, TRUE); - if ((mt_dev.dctrl & DBG_READ) != 0) - mt_dump(); + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "READ", status, TRUE); + if ((mt_dev.dctrl & DBG_READ) != 0) + mt_dump(); + + if (MTremain > 0) { + if (MTdev.iod_DSApending) { + MTdev.iod_DSApending = FALSE; + MTdev.iod_delay = IO_DSA_READ; + sim_activate(uptr, mt_densityTimeout(FALSE)); + if ((mt_dev.dctrl & DBG_OPS) != 0) { + int32 u = uptr - mt_dev.units; + + fprintf(DBGOUT, + "[MT%d: DSA Read started, CWA: 0x%04X, LWA: 0x%04X, Mode: 0x%X\r\n", + u, MTdev.iod_CWA, MTdev.iod_LWA, MTdev.iod_mode); + } + return SCPE_OK; + } + MTdev.iod_delay = IO_DELAY_RDATA; + sim_activate(uptr, MT_MIN_WAIT); + return SCPE_OK; + } + MTmode = MT_IDLE; + break; + + case IO_1732_WRITE: + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "WRITE", (t_stat)-1, FALSE); - if (MTremain > 0) { if (MTdev.iod_DSApending) { MTdev.iod_DSApending = FALSE; - MTdev.iod_delay = IO_DSA_READ; + MTdev.iod_delay = IO_DSA_WRITE; + + if ((mt_dev.dctrl & DBG_WDSA) != 0) + mt_DSAdump(MTdev.iod_LWA, TRUE); + sim_activate(uptr, mt_densityTimeout(FALSE)); if ((mt_dev.dctrl & DBG_OPS) != 0) { int32 u = uptr - mt_dev.units; fprintf(DBGOUT, - "[MT%d: DSA Read started, CWA: 0x%04X, LWA: 0x%04X, Mode: 0x%X\r\n", + "[MT%d: DSA Write started, CWA: 0x%04X, LWA: 0x%04X, Mode: 0x%X\r\n", u, MTdev.iod_CWA, MTdev.iod_LWA, MTdev.iod_mode); } return SCPE_OK; } - MTdev.iod_delay = IO_DELAY_RDATA; + MTdev.iod_delay = IO_DELAY_WDATA; sim_activate(uptr, MT_MIN_WAIT); return SCPE_OK; - } - MTmode = MT_IDLE; - break; - case IO_1732_WRITE: - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "WRITE", (t_stat)-1, FALSE); + case IO_1732A_REWU: + status = sim_tape_rewind(uptr); - if (MTdev.iod_DSApending) { - MTdev.iod_DSApending = FALSE; - MTdev.iod_delay = IO_DSA_WRITE; - sim_activate(uptr, mt_densityTimeout(FALSE)); - if ((mt_dev.dctrl & DBG_OPS) != 0) { - int32 u = uptr - mt_dev.units; + if ((mt_dev.dctrl & DBG_MTIO) != 0) + mtio_trace(uptr, "rewind & unload", status, FALSE, 0); - fprintf(DBGOUT, - "[MT%d: DSA Write started, CWA: 0x%04X, LWA: 0x%04X, Mode: 0x%X\r\n", - u, MTdev.iod_CWA, MTdev.iod_LWA, MTdev.iod_mode); - } - return SCPE_OK; - } - MTdev.iod_delay = IO_DELAY_WDATA; - sim_activate(uptr, MT_MIN_WAIT); - return SCPE_OK; - - case IO_1732A_REWU: - status = sim_tape_rewind(uptr); - - if ((mt_dev.dctrl & DBG_MTIO) != 0) - mtio_trace(uptr, "rewind & unload", status, FALSE, 0); - - MTdev.STATUS |= IO_1732_BOT; - mt_detach(uptr); - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "REWU", status, FALSE); - - mask &= ~IO_ST_EOP; - break; + MTdev.STATUS |= IO_1732_BOT; + mt_detach(uptr); + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "REWU", status, FALSE); + + mask &= ~IO_ST_EOP; + break; /* * The following commands set "end of operation" when the command * completes. */ - case IO_1732_BACKSP: - status = sim_tape_sprecr(uptr, &temp); - - if ((mt_dev.dctrl & DBG_MTIO) != 0) - mtio_trace(uptr, "sprecr", status, FALSE, 0); - - if (status == MTSE_TMK) - MTdev.STATUS |= IO_1732_FMARK; - if (sim_tape_bot(uptr)) - MTdev.STATUS |= IO_1732_BOT; - if (sim_tape_eot(uptr)) - MTdev.STATUS |= IO_1732_EOT; - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "BACKSP", status, FALSE); - break; - - case IO_1732_WFM: - status = sim_tape_wrtmk(uptr); - - if ((mt_dev.dctrl & DBG_MTIO) != 0) - mtio_trace(uptr, "wrtmk", status, FALSE, 0); - -#if 0 - MTdev.STATUS |= IO_ST_ALARM | IO_1732_FMARK; -#endif - if (sim_tape_eot(uptr)) - MTdev.STATUS |= IO_1732_EOT; - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "WFM", status, FALSE); - break; - - case IO_1732_SFWD: - while (!sim_tape_eot(uptr)) { - status = sim_tape_sprecf(uptr, &temp); - - if ((mt_dev.dctrl & DBG_MTIO) != 0) - mtio_trace(uptr, "sprecf", status, FALSE, 0); - - if (status == MTSE_TMK) { - MTdev.STATUS |= IO_1732_FMARK; - break; - } - } - if (sim_tape_bot(uptr)) - MTdev.STATUS |= IO_1732_BOT; - if (sim_tape_eot(uptr)) - MTdev.STATUS |= IO_1732_EOT; - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "SFWD", status, FALSE); - break; - - case IO_1732_SBACK: - while (!sim_tape_bot(uptr)) { + case IO_1732_BACKSP: status = sim_tape_sprecr(uptr, &temp); if ((mt_dev.dctrl & DBG_MTIO) != 0) mtio_trace(uptr, "sprecr", status, FALSE, 0); - if (status == MTSE_TMK) { + if (status == MTSE_TMK) MTdev.STATUS |= IO_1732_FMARK; - break; + if (sim_tape_bot(uptr)) + MTdev.STATUS |= IO_1732_BOT; + if (sim_tape_eot(uptr)) + MTdev.STATUS |= IO_1732_EOT; + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "BACKSP", status, FALSE); + break; + + case IO_1732_WFM: + status = sim_tape_wrtmk(uptr); + + if ((mt_dev.dctrl & DBG_MTIO) != 0) + mtio_trace(uptr, "wrtmk", status, FALSE, 0); + +#if 0 + MTdev.STATUS |= IO_ST_ALARM | IO_1732_FMARK; +#endif + if (sim_tape_eot(uptr)) + MTdev.STATUS |= IO_1732_EOT; + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "WFM", status, FALSE); + break; + + case IO_1732_SFWD: + while (!sim_tape_eot(uptr)) { + status = sim_tape_sprecf(uptr, &temp); + + if ((mt_dev.dctrl & DBG_MTIO) != 0) + mtio_trace(uptr, "sprecf", status, FALSE, 0); + + if (status == MTSE_TMK) + MTdev.STATUS |= IO_1732_FMARK; + + if (status != MTSE_OK) + break; } - } - if (sim_tape_bot(uptr)) + if (sim_tape_bot(uptr)) + MTdev.STATUS |= IO_1732_BOT; + if (sim_tape_eot(uptr)) + MTdev.STATUS |= IO_1732_EOT; + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "SFWD", status, FALSE); + break; + + case IO_1732_SBACK: + while (!sim_tape_bot(uptr)) { + status = sim_tape_sprecr(uptr, &temp); + + if ((mt_dev.dctrl & DBG_MTIO) != 0) + mtio_trace(uptr, "sprecr", status, FALSE, 0); + + if (status == MTSE_TMK) + MTdev.STATUS |= IO_1732_FMARK; + + if (status != MTSE_OK) + break; + } + if (sim_tape_bot(uptr)) + MTdev.STATUS |= IO_1732_BOT; + if (sim_tape_eot(uptr)) + MTdev.STATUS |= IO_1732_EOT; + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "SBACK", status, FALSE); + break; + + case IO_1732_REWL: + status = sim_tape_rewind(uptr); + + if ((mt_dev.dctrl & DBG_MTIO) != 0) + mtio_trace(uptr, "rewind", status, FALSE, 0); + MTdev.STATUS |= IO_1732_BOT; - if (sim_tape_eot(uptr)) - MTdev.STATUS |= IO_1732_EOT; - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "SBACK", status, FALSE); - break; - - case IO_1732_REWL: - status = sim_tape_rewind(uptr); - - if ((mt_dev.dctrl & DBG_MTIO) != 0) - mtio_trace(uptr, "rewind", status, FALSE, 0); - - MTdev.STATUS |= IO_1732_BOT; - if ((mt_dev.dctrl & DBG_OPS) != 0) - mt_trace(uptr, "REWL", status, FALSE); - break; + if ((mt_dev.dctrl & DBG_OPS) != 0) + mt_trace(uptr, "REWL", status, FALSE); + break; } /* @@ -1915,7 +2004,7 @@ enum IOstatus MTout(IO_DEVICE *iod, uint8 reg) if ((uptr == NULL) || (MTdev.iod_type == DEVTYPE_1732_A)) return IO_REJECT; MTdev.iod_LWA = LoadFromMem(IOAreg); - MTdev.iod_CWA = ++IOAreg; + MTdev.iod_CWA = MTdev.iod_FWA = ++IOAreg; MTdev.iod_DSApending = TRUE; if ((mt_dev.dctrl & DBG_OPS) != 0) mt_DSAtrace(uptr, "setup"); @@ -1991,8 +2080,10 @@ t_stat mt_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) "+sim> SET %D 1732-A\n" "+sim> SET %D 1732-3\n\n" " The first 3 transports (MT0, MT1, MT2) are 9-track drives and MT3 is a\n" - " 7-track drive. Each drive may be individually write-locked or\n" - " write-enabled with:\n\n" + " 7-track drive. The type of a transport may be changed with:\n\n" + "+sim> SET %U 9TRACK\n" + "+sim> SET %U 7TRACK\n\n" + " Each drive may be individually write-locked or write-enabled with:\n\n" "+sim> SET %U LOCKED\n" "+sim> SET %U WRITEENABLED\n\n" " The 1732-A controller can only perform I/O 1 or 2 bytes at a time. In\n" diff --git a/CDC1700/cdc1700_rtc.c b/CDC1700/cdc1700_rtc.c index ceeab5c2..5290a693 100644 --- a/CDC1700/cdc1700_rtc.c +++ b/CDC1700/cdc1700_rtc.c @@ -93,7 +93,7 @@ t_stat rtc_help(FILE *, DEVICE *, UNIT *, int32, const char *); IO_DEVICE RTCdev = IODEV(NULL, "10336-1", 10336, 13, 0xFF, 0, NULL, RTCin, RTCout, NULL, NULL, - NULL, NULL, RTCraised, NULL, + NULL, NULL, RTCraised, NULL, NULL, NULL, 0x7F, 2, MASK_REGISTER0 | MASK_REGISTER1, MASK_REGISTER1, @@ -158,7 +158,7 @@ struct RTCtimebase { */ UNIT rtc_unit = { - UDATA(&rtc_svc, 0, 0), RTC_10MSEC + UDATA(&rtc_svc, 0, 0), RTC_10USEC }; REG rtc_reg[] = { @@ -346,7 +346,8 @@ t_stat rtc_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr "1 Hardware Description\n" " The 10336-1 is a Real Time Clock which can generate periodic interrupts\n" " or measure elapsed time. The timer resolution is set via jumpers on the\n" - " physical hardware. For the simulator, the resolution can be changed by:\n\n" + " physical hardware. For the simulator, the default resolution is\n" + " 10 uSec and can be changed by:\n\n" "+sim> SET %D RATE=1usec\n" "+sim> SET %D RATE=10usec\n" "+sim> SET %D RATE=100usec\n" diff --git a/CDC1700/cdc1700_sys.c b/CDC1700/cdc1700_sys.c index 3b8ba1a8..9a17c13b 100644 --- a/CDC1700/cdc1700_sys.c +++ b/CDC1700/cdc1700_sys.c @@ -39,13 +39,14 @@ extern int disassem(char *, uint16, t_bool, t_bool, t_bool); extern uint16 M[]; extern REG cpu_reg[]; extern DEVICE cpu_dev, dca_dev, dcb_dev, dcc_dev, - tti_dev, tto_dev, ptr_dev, ptp_dev, cdr_dev, mt_dev, lp_dev, dp_dev, - cd_dev, rtc_dev; + tti_dev, tto_dev, ptr_dev, ptp_dev, mt_dev, lp_dev, dp_dev, + cd_dev, drm_dev, rtc_dev; extern UNIT cpu_unit; t_stat autoload(int32, CONST char *); t_stat CDautoload(void); t_stat DPautoload(void); +t_stat DRMautoload(void); t_bool RelValid = FALSE; uint16 RelBase; @@ -76,13 +77,11 @@ DEVICE *sim_devices[] = { &tto_dev, &ptr_dev, &ptp_dev, -#if 0 - &cdr_dev, -#endif &mt_dev, &lp_dev, &dp_dev, &cd_dev, + &drm_dev, NULL }; @@ -92,7 +91,8 @@ const char *sim_stop_messages[] = { "Selective Stop", "Invalid bits set in EXI instruction", "Breakpoint", - "Stop on reject" + "Stop on reject", + "Unimpl. instruction" }; /* @@ -113,7 +113,7 @@ static void postUpdate(t_bool from_scp) { /* * Rebuild the I/O device and buffered data channel tables in case the - * command the configuration. + * command changed the configuration. */ buildIOtable(); buildDCtables(); @@ -346,6 +346,8 @@ t_stat autoload(int32 flag, CONST char *ptr) return CDautoload(); if (dptr == &dp_dev) return DPautoload(); + if (dptr == &drm_dev) + return DRMautoload(); return SCPE_NOFNC; } diff --git a/CDC1700/customization/custom1/msosCustom1.simh b/CDC1700/customization/custom1/msosCustom1.simh new file mode 100644 index 00000000..71903ea1 --- /dev/null +++ b/CDC1700/customization/custom1/msosCustom1.simh @@ -0,0 +1,126 @@ +# Script to generate a customized MSOS 5.0 installation tape. +# +# Customizations: +# 1. Set system creation date to 4/19/17 +# +# Requires: +# MSOS5-A.dsk and MSOS5-B.dsk Installation boot disks +# Installation tape Default is MSOS5_SL136.tap which can +# be copied from bitsavers.org. This can +# be overridden by specifying the +# installation tape on the command line: +# +# cdc1700 msosCustom1.simh install.tap +# +# Creates: +# MSOS5-Install.tap New installation tape. If it already +# exists, it will be overwritten +# Scratch1.tap and Scratch2.tap Tapes for temporary use. If they +# already exist, they will be overwritten +# %DATETIME%.lpt Unique LPT output file for this run +# +set env CDD0=MSOS5-A.dsk +set env CDD1=MSOS5-B.dsk +set env MT0=%1 +if "%MT0%"=="" set env MT0=MSOS5_SL136.tap +set env MT1=MSOS5-Install.tap +set env MT2=Scratch1.tap +set env MT3=Scratch2.tap +set cpu instr=basic +set cpu mode65k,64k +#set throttle 30% +set mt type=1732-3 +set mt3 9track +set lp type=1742 +att lp %DATETIME%.lpt +att cdd0 %CDD0% +att cdd1 %CDD1% +att -r mt0 %MT0% +att mt1 %MT1% +att mt2 %MT2% +att mt3 %MT3% +set env TODAY=%DATE_MM%%DATE_DD%%DATE_19XX_YY% +# +# The following command will patch out unimplemented devices (1728 card +# reader/punch) +# +expect "SET PROGRAM PROTECT" set cpu protect; d 056D 0649; d 057E 0649; d 0589 0649; c +expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%TODAY%%TIME_HH%%TIME_MM%\r"; c +expect ":00 " send after=1000000,"\007"; c +expect "MI\r\n" send "*BATCH,4\r"; c +expect "J \r\n" send "*JOB\r"; c +# Use SKED to extract and edit the skeleton file +expect "J \r\n" send delay=10000,"*SKED\r"; c +expect "NEXT\r\n" send "ADF,6,1\r"; c +expect "NEXT\r\n" send "BUILD,6\r"; c +expect "ENTER LU\r\n\007" send "\r"; goto insert1 +autoload cdd +run 0 +goto end + +:insert1 +expect "NEXT\r\n" send "INSERT,1,4\r"; c +expect "\007" send delay=20000,"*S,SYSMON,$3034\r"; c +expect "\007" send "*S,SYSDAY,$3139\r"; c +expect "\007" send "*S,SYSYER,$3137\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n" send delay=10000,"DELETE,2,4\r"; c +expect "NEXT\r\n" send "DUMP,17\r"; c +expect "NEXT\r\n" send "EXIT\r"; c +expect "J \r\n" send "*REW,6,17\r"; c +expect "J \r\n" send "*ADF,6,1\r"; goto libild +continue + +:libild +expect "J \r\n" send delay=5000,"*LIBILD\r"; c +expect "CONTROL LU = \007" send "\r"; c +expect "DEFS LU = \007" send "\r"; c +expect "INSTALL LU = \007" send "18\r"; c +expect "NEWLIB LU = \007" send "\r"; c +expect "LIB 01 LU = \007" send "6\r"; c +expect "LIB 02 LU = \007" send "\r"; c +expect "SKELETON LU = \007" send "17\r"; c +expect "CR WHEN READY \r\n\007" send "\r"; c +expect "OUTPUT LIBRARY LU'S \007" send "*Z\r"; c +expect "J \r\n" send "*REW,6\r"; goto mtup +continue + +:mtup +expect "J \r\n" send "*mtup\r"; c +expect "NEXT: \007" send "OPEN,O18,NL,U,A,SF0\r"; c +expect "NEXT: \007" send "CLOSE,O18,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF1,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I18,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I18,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*Z\r"; c +continue + +:end diff --git a/CDC1700/customization/custom2/msosCustom2.simh b/CDC1700/customization/custom2/msosCustom2.simh new file mode 100644 index 00000000..86fa241a --- /dev/null +++ b/CDC1700/customization/custom2/msosCustom2.simh @@ -0,0 +1,149 @@ +# Script to generate a customized MSOS 5.0 installation tape. +# +# Customizations: +# 1. Set system creation date to 4/19/17 +# 2. Change the system name to "SIMH DEVELOPMENT SYSTEM" +# +# Requires: +# MSOS5-A.dsk and MSOS5-B.dsk Installation boot disks +# sysdat.tap Modified sysdat.asm as only file on +# the tape (80 char records) +# Installation tape Default is MSOS5_SL136.tap which can +# be copied from bitsavers.org. This can +# be overridden by specifying the +# installation tape on the command line: +# +# cdc1700 msosCustom1.simh install.tap +# +# Creates: +# MSOS5-Install.tap New installation tape. If it already +# exists, it will be overwritten +# Scratch?.tap Tapes for temporary use. If they +# already exist, they will be overwritten +# %DATETIME%.lpt Unique LPT output file for this run +# +set env CDD0=MSOS5-A.dsk +set env CDD1=MSOS5-B.dsk +set env MT0=%1 +if "%MT0%"=="" set env MT0=MSOS5_SL136.tap +set env MT1A=Scratch3.tap +set env MT1B=MSOS5-Install.tap +set env MT2A=sysdat.tap +set env MT2B=Scratch1.tap +set env MT3=Scratch2.tap +set cpu instr=basic +set cpu mode65k,64k +#set throttle 30% +set mt type=1732-3 +set mt3 9track +set lp type=1742 +att lp %DATETIME%.lpt +att cdd0 %CDD0% +att cdd1 %CDD1% +att -r mt0 %MT0% +att mt1 %MT1A% +att -r mt2 %MT2A% +att mt3 %MT3% +set env TODAY=%DATE_MM%%DATE_DD%%DATE_19XX_YY% +# +# The following command will patch out unimplemented devices (1728 card +# reader/punch) +# +expect "SET PROGRAM PROTECT" set cpu protect; d 056D 0649; d 057E 0649; d 0589 0649; c +expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%TODAY%%TIME_HH%%TIME_MM%\r"; c +expect ":00 " send after=1000000,"\007"; c +expect "MI\r\n" send "*BATCH,4\r"; c +expect "J \r\n" send "*JOB\r"; c +expect "J \r\n" send "*K,I17,P16\r"; c +expect "J \r\n" send "*ASSEM\r"; c +expect "J \r\n" send "*mtup\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*REW,17\r"; c +# Use SKED to extract and edit the skeleton file +expect "J \r\n" send "*SKED\r"; c +expect "NEXT\r\n\007" send "ADF,6,1\r"; c +expect "NEXT\r\n\007" send "BUILD,6\r"; c +expect "ENTER LU\r\n\007" send "\r"; goto insert1 +send delay=10000 +autoload cdd +run 0 +goto end + +:insert1 +det mt2 +att -q mt2 %MT2B% +expect "NEXT\r\n\007" send "INSERT,1,4\r"; c +expect "\007" send "*S,SYSMON,$3034\r"; c +expect "\007" send "*S,SYSDAY,$3139\r"; c +expect "\007" send "*S,SYSYER,$3137\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,2,4\r"; c +expect "NEXT\r\n\007" send "INSERT,8,4\r"; c +expect "\007" send "*V SIMH DEVELOPMENT SYSTEM\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,9\r"; c +expect "NEXT\r\n\007" send "DUMP,17\r"; c +expect "NEXT\r\n\007" send "EXIT\r"; c +expect "J \r\n" send "*REW,6\r"; c +expect "J \r\n" send "*ADF,6,1\r"; goto libild +continue + +:libild +expect "J \r\n" send delay=5000,"*LIBILD\r"; c +expect "CONTROL LU = \007" send "\r"; c +expect "DEFS LU = \007" send "\r"; c +expect "INSTALL LU = \007" send "18\r"; c +expect "NEWLIB LU = \007" send "\r"; c +expect "LIB 01 LU = \007" send "16\r"; c +expect "LIB 02 LU = \007" send "6\r"; c +expect "LIB 03 LU = \007" send "\r"; c +expect "SKELETON LU = \007" send "17\r"; c +expect "CR WHEN READY. \r\n\007" send "\r"; c +expect "CR WHEN READY \r\n\007" send "\r"; c +expect "OUTPUT LIBRARY LU'S \007" send "*Z\r"; c +expect "J \r\n" send "*REW,6,16\r"; goto mtup +continue + +:mtup +det mt1 +att mt1 %MT1B% +expect "J \r\n" send "*mtup\r"; c +expect "NEXT: \007" send "OPEN,O18,NL,U,A,SF0\r"; c +expect "NEXT: \007" send "CLOSE,O18,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF1,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I18,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I18,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*Z\r"; c +continue + +:end diff --git a/CDC1700/customization/custom2/sysdat.asm b/CDC1700/customization/custom2/sysdat.asm new file mode 100644 index 00000000..70b64e43 --- /dev/null +++ b/CDC1700/customization/custom2/sysdat.asm @@ -0,0 +1,2922 @@ + NAM SYSDAT EXXON DEVELOPMENT SYSTEM SUMMARY-122 +* SYSTEM DATA PROGRAM - MSOS 5.0 +* 1700 MASS STORAGE OPERATING SYSTEM VERSION 5.0 +* SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA +* COPYRIGHT CONTROL DATA CORPORATION 1976 +* +* SIMH DEVELOPMENT SYSTEM +* +* PROGRAM BASE - MSOS 4.3 +* +* S Y S T E M D A T A P R O G R A M +* +* +* TABLE OF CONTENTS +* +* 1. COMMUNICATION EXTERNALS +* +* 2. COMMUNICATION REGION (INCLUDING APPLICATIONS AREA) +* +* 3. INTERRUPT REGION +* +* 4. INTERRUPT MASK TABLE (MASKT) +* +* 5. EXTENDED COMMUNICATIONS REGION +* +* 6. STORAGE STACKS (INTSTK,VOLBLK, SCHSTK) +* +* 7. LOGICAL UNIT TABLES (LOG1A, LOG1, LOG2) +* +* 8. DIAGNOSTIC TABLES (DGNTAB, ALTERR) +* +* 9. STANDARD LOGICAL UNIT DEFINITIONS AND LINE 1 TABLE +* +* 10. PHYSICAL DEVICE TABLES WITH INTERRUPT RESPONSE ROUTINES +* +* 11. CORE ALLOCATION INFORMATION (CALTHD, LVLSTR, NN'S) +* +* 12. CORE PARTITION INFORMATION (PARTBL, THDS, USE) +* +* 13. SYSTEM COMMON DECLARATION +* +* 14. MISCELLANEOUS PROGRAMS +* +* 15. MISCELLANEOUS INFORMATION +* +* 16. SYSTEM FILE INFORMATION +* +* 17. PRESET REGION +* +* 18. START OF SYSTEM DIRECTORY +* + EJT +* C O M M U N I C A T I O N S E X T E R N A L S +* +* + EXT FNR FIND NEXT REQUEST + EXT COMPRQ COMPLETE REQUEST + EXT REQXT REQUEST EXIT + EXT VOLR VOLATILE RELEASE + EXT VOLA VOLATILE ASSIGNMENT + EXT LUABS LOGICAL UNIT ABSOLUTIZING + EXT SABS STARTING ADDRESS ABSOLUTIZING + EXT CABS COMPLETION ADDRESS ABSOLUTIZING + EXT NABS NUMBER OF WORDS ABSOLUTIZING + EXT DISPXX DISPATCHER + EXT MONI MONITOR + EXT MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + EXT IPROC INTERNAL INTERRUPT PROCESSOR + EXT ALLIN COMMON INTERRUPT HANDLER + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG 0 + RTJ SYFAIL GO TO COMMON SYSTEM FAILURE ROUTINE +* +LPMSK NUM 0 LOGICAL PRODUCT MASK TABLE OF ONES +ONE NUM 1 ONE +THREE NUM 3 THREE +SEVEN NUM 7 SEVEN + NUM $F + NUM $1F + NUM $3F + NUM $7F + NUM $FF + NUM $1FF + NUM $3FF + NUM $7FF + NUM $FFF + NUM $1FFF + NUM $3FFF + NUM $7FFF +* +NZERO NUM $FFFF LOGICAL PRODUCT MASK TABLE OF ZEROS (NEG ZERO) + NUM $FFFE + NUM $FFFC + NUM $FFF8 + NUM $FFF0 + NUM $FFE0 + NUM $FFC0 + NUM $FF80 + NUM $FF00 + NUM $FE00 + NUM $FC00 + NUM $F800 + NUM $F000 + NUM $E000 + NUM $C000 + NUM $8000 + EJT +* C O M M U N I C A T I O N R E G I O N +* +ZERO NUM 0 ZERO +* +ONEBIT NUM 1 ONE BIT TABLE +TWO NUM 2 TWO +FOUR NUM 4 FOUR +EIGHT NUM 8 EIGHT + NUM $10 + NUM $20 + NUM $40 + NUM $80 + NUM $100 + NUM $200 + NUM $400 + NUM $800 + NUM $1000 + NUM $2000 + NUM $4000 + NUM $8000 +* +ZROBIT NUM $FFFE ZERO BIT TABLE + NUM $FFFD + NUM $FFFB + NUM $FFF7 + NUM $FFEF + NUM $FFDF + NUM $FFBF + NUM $FF7F + NUM $FEFF + NUM $FDFF + NUM $FBFF + NUM $F7FF + NUM $EFFF + NUM $DFFF + NUM $BFFF + NUM $7FFF +* +FIVE NUM 5 FIVE +SIX NUM 6 SIX +NINE NUM 9 NINE +TEN NUM 10 TEN + EJT +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $47 + NUM 0 $48 + NUM 0 $49 + NUM 0 $4A + NUM 0 $4B + NUM 0 $4C + NUM 0 $4D + NUM 0 $4E + NUM 0 $4F + NUM 0 $50 + NUM 0 $51 + NUM 0 $52 + NUM 0 $53 + NUM 0 $54 + NUM 0 $55 + NUM 0 $56 + NUM 0 $57 + NUM 0 $58 + NUM 0 $59 + NUM 0 $5A + NUM 0 $5B + NUM 0 $5C + NUM 0 $5D + NUM 0 $5E + NUM 0 $5F + NUM 0 $60 + NUM 0 $61 + NUM 0 $62 + NUM 0 $63 + NUM 0 $64 + NUM 0 $65 + NUM 0 $66 + NUM 0 $67 + NUM 0 $68 + NUM 0 $69 + NUM 0 $6A + NUM 0 $6B + NUM 0 $6C + NUM 0 $6D + NUM 0 $6E + NUM 0 $6F + EJT + SPC 4 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $70 + NUM 0 $71 + NUM 0 $72 + NUM 0 $73 + NUM 0 $74 + NUM 0 $75 + NUM 0 $76 + NUM 0 $77 + NUM 0 $78 + NUM 0 $79 + NUM 0 $7A + NUM 0 $7B + NUM 0 $7C + NUM 0 $7D + NUM 0 $7E + NUM 0 $7F + NUM 0 $80 + NUM 0 $81 + NUM 0 $82 + NUM 0 $83 + NUM 0 $84 + NUM 0 $85 + NUM 0 $86 + NUM 0 $87 + NUM 0 $88 + NUM 0 $89 + NUM 0 $8A + NUM 0 $8B + NUM 0 $8C + NUM 0 $8D + NUM 0 $8E + NUM 0 $8F + EJT + SPC 2 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $90 + NUM 0 $91 + NUM 0 $92 + NUM 0 $93 + NUM 0 $94 + NUM 0 $95 + NUM 0 $96 + NUM 0 $97 + NUM 0 $98 + NUM 0 $99 + NUM 0 $9A + NUM 0 $9B + NUM 0 $9C + NUM 0 $9D + NUM 0 $9E + NUM 0 $9F + NUM 0 $A0 + NUM 0 $A1 + NUM 0 $A2 + NUM 0 $A3 + NUM 0 $A4 + NUM 0 $A5 + NUM 0 $A6 + NUM 0 $A7 + NUM 0 $A8 + NUM 0 $A9 + NUM 0 $AA + NUM 0 $AB + NUM 0 $AC + NUM 0 $AD + NUM 0 $AE + NUM 0 $AF + NUM 0 $B0 + NUM 0 $B1 + NUM 0 $B2 + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG $B3 + ADC SCRTCH LOGICAL UNIT OF STANDARD SCRATCH DEVICE + ADC SCHSTK ADR OF TOP OF SCHEDULER STACK +AFNR ADC FNR ADR OF FIND NEXT REQUEST +ACOMPR ADC COMPRQ ADR OF COMPLETE REQUEST + ADC MASKT ADR OF MASK TABLE + ADC INTSTK ADR OF TOP OF INTERRUPT STACK + ADC REQXT ADR OF EXIT FOR MONITOR REQUESTS +AVOLR ADC VOLR ADR OF RELEASE VOLATILE ROUTINE +AVOLA ADC VOLA ADR OF ASSIGN VOLATILE ROUTINE + ADC LUABS ADR OF ABSOLUTIZING ROUTINE FOR LOGICAL UNIT + ADC SABS ADR OF ABSOLUTIZING ROUTINE FOR STARTING ADR + ADC CABS ADR OF ABSOLUTIZING ROUTINE FOR COMPLETION ADR + ADC NABS ADR OF ABSOLUTIZING ROUTINE FOR NUMBER OF WRDS + NUM 0 MSB OF STARTING SCRATCH SECTOR (ALWAYS ZERO) + NUM 0 LSB OF STARTING SCRATCH SECTOR (SET BY SI) + ADC LBUNIT LOGICAL UNIT OF STANDARD LIBRARY DEVICE + NUM 0 MSB OF PGM LIB DIRECTORY SECTOR (ALWAYS ZERO) + NUM 0 LSB OF PGM LIB DIRECTORY SECTOR (SET BY SI) +* + BZS ($E3-$C5+1) RESERVED FOR FTN (UNPROTECTED) + NUM 0 RESERVED FOR FTN + LOAD/GO SECTOR(UNPROTECTED) + NUM 0 RESERVED FOR FTN (UNPROTECTED) +* + BSS (1) LENGTH OF MASS RESIDENT SYSTEM DIR.(SET BY SI) + BSS (1) LENGTH OF CORE RESIDENT SYSTEM DIR.(SET BY SI) + NUM 0 REAL TIME CLOCK COUNTER + ADC EXTBV4 ADDR OF EXTENDED CORE TABLE +ADISP ADC DISPXX ADR OF DISPATCHER + ADC SLDIRY ADR OF SYSTEM DIRECTORY + NUM 0 TEMPORARY TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 TEMPORARY BOTTOM-1 OF UNPROTECTED (SET BY SI) + NUM 0 USED BY JOB PROCESSOR FOR LOADER RETURNS + NUM -1 CURRENT PRIORITY LEVEL + ADC VOLBLK STARTING LOCATION OF VOLATILE STORAGE + ADC LPRSET LENGTH OF PRESETS TABLE + ADC APRSET STARTING LOCATION OF PRESETS TABLE + ADC 0 ADR OF BREAKPOINT PROGRAM IN CORE(UNPROTECTED) +AMONI ADC MONI ADR OF MONITOR ENTRY FOR REQUESTS + ADC MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + NUM 0 TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 BOTTOM-1 OF UNPROTECTED (SET BY SI) + ADC IPROC ADR OF INTERNAL INTERRUPT PROCESSOR + ADC STDINP LOGICAL UNIT OF STANDARD INPUT DEVICE (FTN 1) + ADC BINOUT LOGICAL UNIT OF STANDARD BINARY DEVICE (FTN 2) + ADC LSTOUT LOGICAL UNIT OF STANDARD PRINT DEVICE (FTN 3) + ADC OUTCOM LOGICAL UNIT OF OUTPUT COMMENT DEVICE (FTN 4) + ADC INPCOM LOGICAL UNIT OF INPUT COMMENT DEVICE (FTN 4) + ADC ALLIN ADR OF COMMON INTERRUPT HANDLER + BSS (1) I (MEMORY INDEX) REGISTER (UNPROTECTED) + EJT + SPC 6 +* I N T E R R U P T R E G I O N +* +* +* +LINE00 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($F8) GO TO INTERRUPT HANDLER ROUTINE + NUM 15 PRIORITY LEVEL OF INTERRUPT + ADC IPROC INTERRUPT RESPONSE FOR THE PROTECT/PARITY ERR. +* +LINE01 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 13 PRIORITY LEVEL OF INTERRUPT + ADC LIN1V4 INTERRUPT RESPONSE FOR THE LOW SPEED I / O +* +LINE02 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R1752 INTERRUPT RESPONSE FOR THE 1752 DRUM +* +LINE03 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R17332 INTERRUPT RESPONSE FOR THE 1733-2/856-2/4 DISK +* +LINE04 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R42312 INTERRUPT RESPONSE FOR THE 1742-30/120 PRINTER +* +LINE05 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R17432 INTERRUPT RESPONSE FOR THE 1743-2 COMM. CONT. +* +LINE06 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE07 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R17323 INTERRUPT RESPONSE FOR THE 1732-3/616 MAG TAPE +* +LINE08 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE09 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE10 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 14 PRIORITY LEVEL OF INTERRUPT + ADC R1728 INTERRUPT RESPONSE FOR THE 1728-430 READ/PNCH +* +LINE11 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE12 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE13 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE14 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE15 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 + EJT +* C O R E R E S I D E N T D E B U G E N T R I E S + SPC 2 + ORG $140 + SPC 1 + EXT COUTV4 + EXT COBOP + SPC 2 + JMP+ COUTV4 OFF-LINE CORE DUMP + SPC 4 + JMP+ COBOP SYSTEM CHECKOUT BOOTSTRAP + EJT +* I N T E R R U P T M A S K T A B L E +* +* + ENT MASKT INTERRUPT MASKS INDEXED BY PRIORITY LEVEL +* +* +* <----------------------------- INTERRUPT LINE NUMBER +* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +* **************************************************** +* P -1 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* R 0 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* I 1 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* O 2 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* R 3 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* I 4 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* T 5 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* Y 6 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* 7 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* L 8 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* E 9 * 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 * +* V 10 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* E 11 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* L 12 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* . 13 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 * +* . 14 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 * +* V 15 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * +* **************************************************** +* +* + NUM $04BF PRIORITY LEVEL -1 +MASKT NUM $04BF PRIORITY LEVEL 00 + NUM $04BF PRIORITY LEVEL 01 + NUM $04BF PRIORITY LEVEL 02 + NUM $04BF PRIORITY LEVEL 03 + NUM $04BF PRIORITY LEVEL 04 + NUM $04BF PRIORITY LEVEL 05 + NUM $04BF PRIORITY LEVEL 06 + NUM $04BF PRIORITY LEVEL 07 + NUM $04BF PRIORITY LEVEL 08 + NUM $04B3 PRIORITY LEVEL 09 + NUM $0403 PRIORITY LEVEL 10 + NUM $0403 PRIORITY LEVEL 11 + NUM $0403 PRIORITY LEVEL 12 + NUM $0401 PRIORITY LEVEL 13 + NUM $0001 PRIORITY LEVEL 14 + NUM $0000 PRIORITY LEVEL 15 + EJT +* E X T E N D E D C O M M U N I C A T I O N S R E G I O N +* +* REFERENCED THRU LOCATION $E9 + SPC 3 + ENT MAXSEC + ENT MPFLAG + ENT MIINP + EXT JFILV4 + EXT RCTV + EXT END0V4 + EXT DATBAS + EXT SECTOR + EQU CSYLST(9) + EQU CSYINP(10) + EQU CSYPUN(11) + EQU SECT1(0) + EQU SECT3(0) + EQU SECT4($5BFA) + SPC 3 +EXTBV4 ADC 0 00 MODE SWITCH 32K=0 65K=1 + ADC CSYINP 01 STANDARD COSY INPUT LU NUMBER + ADC CSYPUN 02 STANDARD COSY OUTPUT LU NUMBER + ADC CSYLST 03 STANDARD COSY LIST LU NUMBER + ADC 0 04 FIRST SECTOR LSB OF SYSTEM CORE IMAGE + ADC 0 05 FIRST SECTOR LSB OF S. A. T. + ADC 0 06 FIRST SECTOR LSB OF CREP TABLE + ADC 0 07 FIRST SECTOR LSB OF CREP1 TABLE + ADC JFILV4 08 FIRST SECTOR LSB OF JOB FILE DIRECTORY + ADC RCTV 09 ADDRESS OF RCTV TABLE IN THE MONITOR + ADC 0 10 UNPROTECTED CORE FLAG 0=PART0 / 1=PART1 + ADC 0 11 UNPROTECTED SWAP ALLOWED 0=YES / 1=NO + ADC AYERTO 12 ADDRESS LOCATION CONTAINING THE YEAR + ADC AMONTO 13 ADDRESS LOCATION CONTAINING THE MONTH + ADC ADAYTO 14 ADDRESS LOCATION CONTAINING THE DAY + ADC END0V4 15 LAST ADDRESS OF PART 0 CORE + ADC 0 16 FIRST ADDRESS OF BLANK (SYSTEM) COMMON + ADC DATBAS 17 FIRST ADDRESS OF LABELED COMMON + ADC 0 18 COSY DRIVER CURRENT PHYSTAB ADDRESS + ADC 0 19 JOB TABLE INITIALIZATION FLAG + ADC 0 20 MASS MEMORY LOCATION OF ENGINEERING FILE + ADC SECT1 21 MSB OF MAXIMUM SCRATCH SECTOR +MAXSEC ADC SECTOR 22 LSB OF MAXIMUM SCRATCH SECTOR + ADC SECT3 23 MSB OF MAXIMUM LIBRARY SECTOR + ADC SECT4 24 LSB OF MAXIMUM LIBRARY SECTOR + ADC 0 25 LAST ADDRESS OF LABELED COMMON + ADC 0 26 UNUSED +MPFLAG ADC 0 27 ZERO IF NOT AN MP SYSTEM + ADC LOG1A 28 ADDRESS OF LOG1A TABLE +MIINP BZS MIINP(40) MANUAL INPUT BUFFER + EJT +* S Y S T E M I D E N T I F I C A T I O N +* + SPC 1 + ENT SYSID + EXT SYSMON MONTH SYSTEM WAS BUILT + EXT SYSDAY DAY SYSTEM WAS BUILT + EXT SYSYER YEAR SYSTEM WAS BUILT + SPC 4 +SYSID ALF 16, SIMH DEVELOPMENT SYSTEM + ADC SYSMON + ADC SYSDAY + ADC SYSYER + SPC 4 +* COMMON SYSTEM FAILURE ROUTINE + SPC 2 + ENT SYFAIL + SPC 1 +SYFAIL NOP 0 + IIN 0 INHIBIT INTERRUPTS + STA* SAVEA SAVE A + STQ* SAVEQ SAVE Q + TRM A MOVE M TO A + STA* SAVEM SAVE M + LDA* SYFAIL PICK UP ADDRESS OF CALLER + INA -2 CORRECT IT FOR 2 WORD RTJ + STA* SYFAIL STORE IT BACK + NUM $18FF HANG + SPC 2 +SAVEA NUM 0 +SAVEQ NUM 0 +SAVEM NUM 0 + EJT +* C O N T R O L P O I N T / B O U N D S R E G I S T E R +* P A R A M E T E R S +* + ENT UBPROT + ENT LBPROT + ENT UPBDTB + ENT LOBDTB + ENT TSCNAC + ENT TSCNMI + ENT SIM200 + ENT CCP + ENT CPSET + SPC + EQU UBPROT($7FFF),LBPROT($7FFF),UPBDTB($7FFF),LOBDTB($7FFF) + EQU TSCNAC($7FFF),TSCNMI($7FFF),SIM200($7FFF) + EQU CCP($7FFF) + SPC 2 +CPSET NUM 0 + JMP* (CPSET) + EJT +* S T O R A G E S T A C K S +* +* +NUMPRI EQU NUMPRI(16) NUMBER OF SYSTEM PRIORITY LEVELS +EXTVOL EQU EXTVOL(00) AMOUNT OF EXTRA VOLATILE STORAGE +* +NFTNLV EQU NFTNLV(3) NUMBER OF REENTRANT FORTRAN LEVELS +NEDLVL EQU NEDLVL(3) NUMBER OF REENTRANT ENCODE/DECODE LEVELS + SPC 3 +* +* I N T E R R U P T S T A C K +* + ENT INTSTK CONTENTS, 1 = Q-REGISTER +* 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = P-REGISTER +* 5 = PRIORITY LEVEL AND OVERFLOW +* INDICATOR (BIT 15) +* +INTSTK BZS INTSTK(5*NUMPRI) + SPC 3 +* +* V O L A T I L E B L O C K S T A C K +* + ENT VOLBLK CONTENTS, 1 = Q-REGISTER + ENT VOLEND 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = USER ASSIGNMENTS +* . +* N = USER ASSIGNMENTS +* +VOLBLK BZS VOLBLK(18*NUMPRI+98*NFTNLV+57*NEDLVL+EXTVOL+1) +VOLEND EQU VOLEND(*) END OF VOLATILE + SPC 3 +* +* S C H E D U L E R / T I M E R S T A C K +* + ENT SCHSTK CONTENTS, 1 = SCHEDULER CALL + ENT SCHLNG 2 = STARTING ADDRESS +* 3 = THREAD TO NEXT CALL +SCHSTK EQU SCHSTK(*) 4 = Q-REGISTER CONTENTS + SPC 1 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 001 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 002 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 003 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 004 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 005 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 006 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 007 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 008 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 009 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 010 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 011 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 012 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 013 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 014 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 015 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 016 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 017 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 018 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 019 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 020 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 021 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 022 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 023 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 024 + ADC 0,0,(-0),0 SCHEDULER STACK ENTRY 025 +SCHLNG EQU SCHLNG(*-SCHSTK) SCHEDULER STACK LENGTH + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 A ) +* +* + ENT LOG1A PHYSICAL DEVICES ADDRESSES BY LOGICAL UNIT + ENT NUMLU + SPC 1 +LOG1A ADC NUMLU NUMBER OF LOGICAL UNITS + ADC PCORE 1 CORE ALLOCATOR + ADC PDUMMY 2 DUMMY LOGICAL UNIT + ADC PDUMMY 3 DUMMY LOGICAL UNIT + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC PCOSY1 5 COSY DRIVER, FIRST UNIT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC PSUDO0 7 PSEUDO TAPE, UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER +X73230 ADC P73230 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC P1728 11 1728-430 CARD PUNCH +FTN742 ADC P42312 12 1742-30/120 FORTRAN LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC PSUDO1 19 PSEUDO TAPE, UNIT 1 + ADC PSUDO2 20 PSEUDO TAPE, UNIT 2 + ADC PSUDO3 21 PSEUDO TAPE, UNIT 3 + ADC PSDSK0 22 PSEUDO DISK, UNIT 0 + ADC PSDSK1 23 PSEUDO DISK, UNIT 1 + ADC PSDSK2 24 PSEUDO DISK, UNIT 2 + ADC PSDSK3 25 PSEUDO DISK, UNIT 3 + ADC P1752 26 1752 DRUM + ADC PCOSY2 27 COSY DRIVER, SECOND UNIT + ADC P1728 28 1728-430 CARD READER +X73231 ADC P73231 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 +L74300 ADC P74300 30 1743-2 COMMUNICATIONS UNIT 0 +L74301 ADC P74301 31 1743-2 COMMUNICATIONS UNIT 1 +L74302 ADC P74302 32 1743-2 COMMUNICATIONS UNIT 2 +L74303 ADC P74303 33 1743-2 COMMUNICATIONS UNIT 3 +L74304 ADC P74304 34 1743-2 COMMUNICATIONS UNIT 4 +L74305 ADC P74305 35 1743-2 COMMUNICATIONS UNIT 5 +X73232 ADC P73232 36 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 +X73233 ADC P73233 37 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 +X42312 ADC P42312 38 DIAGNOSTIC 1742-30/120 LINE PRINTER +X1728 ADC P1728 39 DIAGNOSTIC 1728-430 READER / PUNCH +X74300 ADC P74300 40 DIAGNOSTIC 1743-2 COMM. , UNIT 0 +X74301 ADC P74301 41 DIAGNOSTIC 1743-2 COMM. , UNIT 1 +X74302 ADC P74302 42 DIAGNOSTIC 1743-2 COMM. , UNIT 2 +X74303 ADC P74303 43 DIAGNOSTIC 1743-2 COMM. , UNIT 3 +X74304 ADC P74304 44 DIAGNOSTIC 1743-2 COMM. , UNIT 4 +X74305 ADC P74305 45 DIAGNOSTIC 1743-2 COMM. , UNIT 5 +X1711 ADC P1711 46 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT +NUMLU EQU NUMLU(*-LOG1A-1) + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 ) +* +* + ENT LOG1 LOGICAL UNIT INFORMATION BY LOGICAL UNIT +* BIT 14 = 1, IMPLIES LU SHARES DEVICE +* BIT 13 = 1, IMPLIES LU IS MARKED DOWN +* BITS 0 - 11 IS ALTERNATE LOGICAL UNIT +* ALTERNATE = 0, IMPLIES NONE +S EQU S($4000) SHARED BIT + SPC 1 +LOG1 ADC NUMLU NUMBER OF LOGICAL UNITS + ADC 0 1 CORE ALLOCATOR + ADC 0+S 2 DUMMY LOGICAL UNIT + ADC 0+S 3 DUMMY LOGICAL UNIT + ADC 2+S 4 1711 TELETYPE, 713-10 CRT + ADC 0 5 COSY DRIVER, FIRST UNIT + ADC 0+S 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC 0 7 PSEUDO TAPE, UNIT 0 + ADC 0 8 1733-2 856-2/4 DISK, UNIT 0 + ADC 0+S 9 1742-30/120 LINE PRINTER + ADC 0+S 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC 0+S 11 1728-430 CARD PUNCH + ADC 0+S 12 1742-30/120 FORTRAN LINE PRINTER + ADC 0 13 1733-2 856-2/4 DISK, UNIT 1 + ADC 0 14 1733-2 856-2/4 DISK, UNIT 2 + ADC 0 15 1733-2 856-2/4 DISK, UNIT 3 + ADC 0+S 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC 0+S 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC 0+S 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC 0 19 PSEUDO TAPE, UNIT 1 + ADC 0 20 PSEUDO TAPE, UNIT 2 + ADC 0 21 PSEUDO TAPE, UNIT 3 + ADC 0 22 PSEUDO DISK, UNIT 0 + ADC 0 23 PSEUDO DISK, UNIT 1 + ADC 0 24 PSEUDO DISK, UNIT 2 + ADC 0 25 PSEUDO DISK, UNIT 3 + ADC 0 26 1752 DRUM + ADC 0 27 COSY DRIVER, SECOND UNIT + ADC 0+S 28 1728-430 CARD READER + ADC 0+S 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + ADC 0+S 30 1743-2 COMMUNICATIONS UNIT 0 + ADC 0+S 31 1743-2 COMMUNICATIONS UNIT 1 + ADC 0+S 32 1743-2 COMMUNICATIONS UNIT 2 + ADC 0+S 33 1743-2 COMMUNICATIONS UNIT 3 + ADC 0+S 34 1743-2 COMMUNICATIONS UNIT 4 + ADC 0+S 35 1743-2 COMMUNICATIONS UNIT 5 + ADC 0+S 36 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + ADC 0+S 37 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + ADC 0+S 38 DIAGNOSTIC 1742-30/120 LINE PRINTER + ADC 0+S 39 DIAGNOSTIC 1728-430 READER / PUNCH + ADC 0+S 40 DIAGNOSTIC 1743-2 COMM. , UNIT 0 + ADC 0+S 41 DIAGNOSTIC 1743-2 COMM. , UNIT 1 + ADC 0+S 42 DIAGNOSTIC 1743-2 COMM. , UNIT 2 + ADC 0+S 43 DIAGNOSTIC 1743-2 COMM. , UNIT 3 + ADC 0+S 44 DIAGNOSTIC 1743-2 COMM. , UNIT 4 + ADC 0+S 45 DIAGNOSTIC 1743-2 COMM. , UNIT 5 + ADC 0+S 46 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* L O G I C A L U N I T T A B L E S ( L O G 2 ) +* +* + ENT LOG2 TOP OF I/O THREAD ADDRESSES BY LOGICAL UNIT + SPC 1 +LOG2 ADC NUMLU NUMBER OF LOGICAL UNITS + NUM $FFFF 1 CORE ALLOCATOR + NUM $FFFF 2 DUMMY LOGICAL UNIT + NUM $FFFF 3 DUMMY LOGICAL UNIT + NUM $FFFF 4 1711 TELETYPE, 713-10 CRT + NUM $FFFF 5 COSY DRIVER, FIRST UNIT + NUM $FFFF 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + NUM $FFFF 7 PSEUDO TAPE, UNIT 0 + NUM $FFFF 8 1733-2 856-2/4 DISK, UNIT 0 + NUM $FFFF 9 1742-30/120 LINE PRINTER + NUM $FFFF 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + NUM $FFFF 11 1728-430 CARD PUNCH + NUM $FFFF 12 1742-30/120 FORTRAN LINE PRINTER + NUM $FFFF 13 1733-2 856-2/4 DISK, UNIT 1 + NUM $FFFF 14 1733-2 856-2/4 DISK, UNIT 2 + NUM $FFFF 15 1733-2 856-2/4 DISK, UNIT 3 + NUM $FFFF 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + NUM $FFFF 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + NUM $FFFF 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + NUM $FFFF 19 PSEUDO TAPE, UNIT 1 + NUM $FFFF 20 PSEUDO TAPE, UNIT 2 + NUM $FFFF 21 PSEUDO TAPE, UNIT 3 + NUM $FFFF 22 PSEUDO DISK, UNIT 0 + NUM $FFFF 23 PSEUDO DISK, UNIT 1 + NUM $FFFF 24 PSEUDO DISK, UNIT 2 + NUM $FFFF 25 PSEUDO DISK, UNIT 3 + NUM $FFFF 26 1752 DRUM + NUM $FFFF 27 COSY DRIVER, SECOND UNIT + NUM $FFFF 28 1728-430 CARD READER + NUM $FFFF 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + NUM $FFFF 30 1743-2 COMMUNICATIONS UNIT 0 + NUM $FFFF 31 1743-2 COMMUNICATIONS UNIT 1 + NUM $FFFF 32 1743-2 COMMUNICATIONS UNIT 2 + NUM $FFFF 33 1743-2 COMMUNICATIONS UNIT 3 + NUM $FFFF 34 1743-2 COMMUNICATIONS UNIT 4 + NUM $FFFF 35 1743-2 COMMUNICATIONS UNIT 5 + NUM $FFFF 36 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + NUM $FFFF 37 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + NUM $FFFF 38 DIAGNOSTIC 1742-30/120 LINE PRINTER + NUM $FFFF 39 DIAGNOSTIC 1728-430 READER / PUNCH + NUM $FFFF 40 DIAGNOSTIC 1743-2 COMM. , UNIT 0 + NUM $FFFF 41 DIAGNOSTIC 1743-2 COMM. , UNIT 1 + NUM $FFFF 42 DIAGNOSTIC 1743-2 COMM. , UNIT 2 + NUM $FFFF 43 DIAGNOSTIC 1743-2 COMM. , UNIT 3 + NUM $FFFF 44 DIAGNOSTIC 1743-2 COMM. , UNIT 4 + NUM $FFFF 45 DIAGNOSTIC 1743-2 COMM. , UNIT 5 + NUM $FFFF 46 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* D I A G N O S T I C T A B L E S +* +* + ENT ALTERR ALTERNATE DEVICE ERROR TABLE + SPC 1 +ALTERR ADC NUMLU ERROR TABLE SIZE + BZS (NUMLU) SPACE FOR MAXIMUM SIMULTANEOUS FAILURES + SPC 3 + ENT DGNTAB DIAGNOSTIC TIMER TABLE + SPC 1 +DGNTAB EQU DGNTAB(*) START OF TABLE + ADC PCORE 1 CORE ALLOCATOR + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC P1752 26 1752 DRUM + ADC P1728 28 1728-430 CARD READER + ADC P74300 30 1743-2 COMMUNICATIONS UNIT 0 + ADC P74301 31 1743-2 COMMUNICATIONS UNIT 1 + ADC P74302 32 1743-2 COMMUNICATIONS UNIT 2 + ADC P74303 33 1743-2 COMMUNICATIONS UNIT 3 + ADC P74304 34 1743-2 COMMUNICATIONS UNIT 4 + ADC P74305 35 1743-2 COMMUNICATIONS UNIT 5 + NUM $FFFF END OF TABLE + EJT + SPC 4 +* S T A N D A R D L O G I C A L U N I T S +* + ENT DUMALT +* +DUMALT EQU DUMALT(2) STANDARD DUMMY ALTERNATE +INPCOM EQU INPCOM(4) STANDARD INPUT COMMENT +OUTCOM EQU OUTCOM(4) STANDARD OUTPUT COMMENT +LBUNIT EQU LBUNIT(8) STANDARD LIBRARY UNIT +SCRTCH EQU SCRTCH(8) STANDARD SCRATCH UNIT +LSTOUT EQU LSTOUT(9) STANDARD LIST OUTPUT +STDINP EQU STDINP(10) STANDARD INPUT +BINOUT EQU BINOUT(11) STANDARD BINARY OUTPUT + EJT +* L I N E O N E T A B L E +* + SPC 1 +* + ENT LIN1V4 LINE 1 INTERRUPT ENTRY + SPC 1 +LIN1V4 LDQ* LN1TV4 PLACE THE PDT ADDRESS IN Q + LDA- 2,Q + STA- I + JMP- (I) TRANSFER CONTROL TO THE DRIVER CONTINUATOR + SPC 3 + ENT INVINT + SPC 1 +INVINT JMP- (ADISP) +* + SPC 4 + EQU LN1TV4(*) START OF TABLE + ADC P1711 1711 TELETYPE, 713-10 CRT + NUM $FFFF END OF TABLE + EJT +* P H Y S I C A L D E V I C E T A B L E S +* +* +* THE FOLLOWING SECTION CONTAINS THE PHYSICAL DEVICE TABLES +* AND INTERRUPT RESPONSE ROUTINES FOR EACH LOGICAL UNIT IN +* THE SYSTEM. +* +* LISTED BELOW ARE THE MANDATORY ENTRIES FOR ALL PHYSICAL +* DEVICE TABLES. ADDITIONAL ENTRIES REQUIRED BY EACH +* DRIVER MAY BE ADDED AFTER THE LAST ENTRY INDICATED. + SPC 3 +PHYSTB EQU PHYSTB(*) + EQU ELVL(0) 00 SCHEDULER CALL WITH DRIVER LEVEL + EQU EDIN(1) 01 DRIVER INITIATOR ENTRY + EQU EDCN(2) 02 DRIVER CONTINUATOR ENTRY + EQU EDPGM(3) 03 DRIVER DIAGNOSTIC ENTRY + EQU EDCLK(4) 04 DIAGNOSTIC CLOCK + EQU ELU(5) 05 LOGICAL UNIT + EQU EPTR(6) 06 PARAMETER LOCATION + EQU EWES(7) 07 CONVERTOR, EQUIPMENT, STATION + EQU EREQST(8) 08 REQUEST STATUS + EQU ESTAT1(9) 09 DRIVER STATUS + EQU ECCOR(10) 10 CURRENT LOCATION + EQU ELSTWD(11) 11 LAST LOCATION PLUS ONE + EQU ESTAT2(12) 12 DEVICE STATUS + EQU MASLGN(13) 13 DRIVER LENGTH (IF MASS MEMORY) + EQU MASSEC(14) 14 NAME ASSOCIATED WITH SECTOR NUMBER + EQU RETURN(15) 15 RESERVED FOR FNR AND CMR + SPC 3 +* LINK UNSELECTED PHYSICAL DEVICE TABLES + SPC 1 + ENT P18ECM + ENT P18PGA + ENT P18ADD + ENT P18MXP +P18ECM EQU P18ECM($7FFF) +P18PGA EQU P18PGA($7FFF) +P18ADD EQU P18ADD($7FFF) +P18MXP EQU P18MXP($7FFF) + EJT +* C O R E A L L O C A T O R +* + SPC 1 + ENT PCORE + EXT ICORE,ECORE + EQU SWAPT(0) SWAP TIME + SPC 1 +PCORE ADC $5207 00 SCHEDULER CALL + ADC ICORE 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC ECORE 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $00D6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + VFD X16/SWAPT-1 13 TIME BETWEEN SWAPS (NONE IF NEGATIVE) + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* D U M M Y L O G I C A L U N I T +* + SPC 1 + EXT IDUMMY,CDUMMY,EDUMMY + SPC 1 +PDUMMY ADC $520A 00 SCHEDULER CALL + ADC IDUMMY 01 INITIATOR ADDRESS + ADC CDUMMY 02 CONTINUATOR ADDRESS + ADC EDUMMY 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $01F6 08 REQUEST STATUS + NUM $8000 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* 1 7 1 1 T E L E T Y P E , 7 1 3 - 1 0 C R T +* + SPC 1 + EXT I1711,C1711,E1711 + EQU T713(04*$10) TYPE CODE - 713-10 CRT + EQU T1711(00*$10) TYPE CODE - 1711 TELETYPE + EQU U1711(X1711-LOG1A) + SPC 1 +P1711 ADC $520D 00 SCHEDULER CALL + ADC I1711 01 INITIATOR ADDRESS + ADC C1711 02 CONTINUATOR ADDRESS + ADC E1711 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0091 07 CONVERTER, EQUIPMENT, STATION + ADC $3006+T1711 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR CODE AND STARTING LOCATION + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 DRIVER FLAGS + NUM 1 17 HARDWARE PARITY CHECK FLAG + ADC U1711 18 DIAGNOSTIC LU + EJT +* C O S Y D R I V E R +* + SPC 1 + EQU MCOSY1(1) +* + IFA MCOSY1,EQ,0 CORE RESIDENT DRIVER + EXT ICOSY + EQU LCOSY(0) + EQU SCOSY($7FFF) + EIF +* + IFA MCOSY1,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +ICOSY JMP+ MASDRV INITIATE DRIVER + EXT LCOSY + EXT SCOSY + EIF +* + EJT +* C O S Y D R I V E R , F I R S T U N I T +* + SPC 1 +PCOSY1 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY2 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFA 28 COSY BUFFER LOCATION + ADC INPBFA 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFA(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* C O S Y D R I V E R , S E C O N D U N I T +* + SPC 1 +PCOSY2 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY1 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFB 28 COSY BUFFER LOCATION + ADC INPBFB 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFB(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E +* + SPC 1 + EQU T6167(53*$10) TYPE CODE - 616-72 MAG TAPE + EQU T6169(54*$10) TYPE CODE - 616-92-95 MAG TAPE + EQU PHSREC(192) MAX. PHYSICAL RECORD SIZE FOR 7 TRACK + SPC 2 +BF1F33 BZS BF1F33(PHSREC*4/3+2) PACK/UNPACK BUFFER (7 TRACK) + SPC 1 + EQU M17323(1) +* + IFA M17323,EQ,0 CORE RESIDENT DRIVER + EXT I17323 + EXT C17323 + EXT E17323 + EQU L17323(0) + EQU S17323($7FFF) + EIF +* + IFA M17323,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I17323 JMP+ MASDRV INITIATE DRIVER +C17323 JMP+ MASCON INTERRUPT RESPONSE +E17323 JMP+ MASERR TIMEOUT ERROR + EXT L17323 + EXT S17323 + EIF +* + SPC 2 +R17323 LDQ =XP73230 INTERRUPT RESPONSE FOR 616-72-92-95 MAG TAPE + JMP* (P73230+2) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 0 +* + EQU U73230(X73230-LOG1A) + SPC 1 +P73230 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0448 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73230 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73231 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 1 +* + EQU U73231(X73231-LOG1A) + SPC 1 +P73231 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $04C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73231 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73232 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 2 +* + EQU U73232(X73232-LOG1A) + SPC 1 +P73232 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0548 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73232 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73233 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 3 +* + EQU U73233(X73233-LOG1A) + SPC 1 +P73233 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $05C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73233 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73230 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* P S E U D O T A P E +* + SPC 1 + EQU PSTPD0(1) +* + IFA PSTPD0,EQ,0 CORE RESIDENT DRIVER + EXT IPSUDO + EQU LPSUDO(0) + EQU SPSUDO($7FFF) + EIF +* + IFA PSTPD0,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +IPSUDO JMP+ MASDRV INITIATE DRIVER + EXT LPSUDO + EXT SPSUDO + EIF +* + EJT +* P S E U D O T A P E , U N I T 0 +* + SPC 1 +PSUDO0 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES0 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ0 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES0 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ0) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO1 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 1 +* + SPC 1 +PSUDO1 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES1 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ1 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES1 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ1) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO2 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 2 +* + SPC 1 +PSUDO2 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES2 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF7 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ2 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES2 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ2) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO3 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 3 +* + SPC 1 +PSUDO3 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES3 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF8 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ3 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES3 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ3) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO0 75 PHYSTB THREAD + EJT +* P S E U D O D I S K U N I T 0 +* + SPC 1 + EXT IPSDSK,CPSDSK,EPSDSK + EQU SBIAS0(1) + SPC 1 +PSDSK0 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 8 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS0 25 SECTOR BIAS + ADC SBIAS0*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 1 +* + EQU SBIAS1(1) + SPC 1 +PSDSK1 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 13 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS1 25 SECTOR BIAS + ADC SBIAS1*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 2 +* + EQU SBIAS2(1) + SPC 1 +PSDSK2 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 14 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS2 25 SECTOR BIAS + ADC SBIAS2*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 3 +* + EQU SBIAS3(1) + SPC 1 +PSDSK3 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 15 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS3 25 SECTOR BIAS + ADC SBIAS3*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K +* + SPC 1 + ENT P332D0 + EXT I17332,C17332,E17332 + EQU T8562(15*$10) TYPE CODE - 1733-2 856-2 + EQU T8564(16*$10) TYPE CODE - 1733-2 856-4 + SPC 2 +R17332 LDQ =XP73320 INTERRUPT RESPONSE FOR 1733-2 DISK + JMP* (P73320+2) + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 0 +* + SPC 1 + EQU P332D0(*) +P73320 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8100 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73321 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 1 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332A 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332A(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 1 +* + SPC 1 +P73321 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8300 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73322 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 2 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332B 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332B(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 2 +* + SPC 1 +P73322 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8500 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73323 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 4 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332C 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332C(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 3 +* + SPC 1 +P73323 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8700 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73320 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 8 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332D 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332D(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 5 2 D R U M +* + EXT I1752,C1752,E1752 + SPC 2 +R1752 LDQ =XP1752 INTERRUPT RESPONSE FOR 1752 DRUM + JMP* (P1752+2) + EJT +* 1 7 5 2 D R U M +* + SPC 1 +P1752 ADC $5209 00 SCHEDULER CALL + ADC I1752 01 INITIATOR ADDRESS + ADC C1752 02 CONTINUATOR ADDRESS + ADC E1752 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0101 07 CONVERTER, EQUIPMENT, STATION + NUM $1036 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 SECTOR NUMBER + NUM 0 17 DATA TRANSFER FUNCTION + NUM 0 18 COUNTER + NUM 0 19 FULL SECTOR COUNTER + NUM 0 20 SAVE ECCOR + NUM 0 21 SAVE ELSTWD + NUM 0 22 OVERLAY AREA (SCHEDULER CALL) + NUM 0 23 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 24 OVERLAY AREA (THREAD) + NUM 0 25 OVERLAY AREA (LOGICAL UNIT) + NUM 0 26 UNSUCCESSFUL I/O ATTEMPT COUNTER + NUM 0 27 EQUIPMENT STATUS (ON LAST ERROR) + NUM 0 28 CORE STATUS (ON LAST ERROR) + NUM 0 29 SECTOR STATUS (ON LAST ERROR) + NUM 0 30 DATA STATUS (ON LAST ERROR) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 + EQU T4230(17*$10) TYPE CODE - 1742-30 + EQU T4212(18*$10) TYPE CODE - 1742-120 + EQU U42312(X42312-LOG1A) + EQU F42312(FTN742-LOG1A) + SPC 1 + EQU M42312(1) +* + IFA M42312,EQ,0 CORE RESIDENT DRIVER + EXT I42312 + EXT C42312 + EXT E42312 + EQU L42312(0) + EQU S42312($7FFF) + EIF +* + IFA M42312,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I42312 JMP+ MASDRV INITIATE DRIVER +C42312 JMP+ MASCON INTERRUPT RESPONSE +E42312 JMP+ MASERR TIMEOUT ERROR + EXT L42312 + EXT S42312 + EIF +* + SPC 2 +R42312 LDQ =XP42312 INTERRUPT RESPONSE FOR 1742-30/120 PRINTER + JMP* (P42312+2) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 +P42312 ADC $520A 00 SCHEDULER CALL + ADC I42312 01 INITIATOR ADDRESS + ADC C42312 02 CONTINUATOR ADDRESS + ADC E42312 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0201 07 CONVERTER, EQUIPMENT, STATION + ADC $2804+T4212 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L42312 13 DRIVER LENGTH IF MASS MEMORY + ADC S42312 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 BLANK DETECTION INDICATOR + NUM 0 16 LINE COUNT + NUM 0 17 TEMPORARY STORAGE FOR CONTROL FUNC. + NUM 0 18 CHARACTER COUNT + ADC F42312 19 FORTRAN LOGICAL UNIT + NUM 0 20 NUMBER OF BLANKS TO BE SENT + NUM 60 21 MAXIMUM NUMBER OF LINES PER PAGE + NUM 136 22 NUMBER OF CHARACTERS PER LINE + ADC U42312 23 DIAGNOSTIC LU + EJT +* +* F O R T R A N L I N E P R I N T E R + SPC 2 +* PHYSTB SHARED WITH 1742-30/120 LINE PRINTER + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 + EQU U1728(X1728-LOG1A) + SPC 1 + EQU M1728(1) +* + IFA M1728,EQ,0 CORE RESIDENT DRIVER + EXT I1728 + EXT C1728 + EXT E1728 + EQU L1728(0) + EQU S1728($7FFF) + EIF +* + IFA M1728,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I1728 JMP+ MASDRV INITIATE DRIVER +C1728 JMP+ MASCON INTERRUPT RESPONSE +E1728 JMP+ MASERR TIMEOUT ERROR + EXT L1728 + EXT S1728 + EIF +* + SPC 2 +R1728 LDQ =XP1728 INTERRUPT RESPONSE FOR 1728-430 READ/PUNCH + JMP* (P1728+2) + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 +P1728 ADC $520E 00 SCHEDULER CALL + ADC I1728 01 INITIATOR ADDRESS + ADC C1728 02 CONTINUATOR ADDRESS + ADC E1728 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0521 07 CONVERTER, EQUIPMENT, STATION + NUM $18C6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L1728 13 DRIVER LENGTH IF MASS MEMORY + ADC S1728 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 PACKING CYCLE ADDRESS STORAGE + NUM $800F 16 READ/PUNCH SWITCH, EOF FORMAT (6789) + ADC BUF28 17 FIRST LOCATION OF 80 WORD I / O BUFFER + NUM 0 18 CURRENT CARD BUFFER LOCATION + NUM 0 19 SUBROUTINE RETURN ADDRESS + NUM 0 20 CARD SEQUENCE NUMBER + NUM 0 21 RECORD LENGTH + NUM 0 22 CHECKSUM ACCUMULATOR + NUM 0 23 TEMPORARY STORAGE + NUM 0 24 OUTPUT OFFSET SWITCH + NUM 0 25 ERROR RETURN + NUM 0 26 HOLLERITH ERROR FLAG + ADC U1728 27 DIAGNOSTIC LU +* + BZS BUF28(80) 28 INPUT / OUTPUT BUFFER +* 107 INPUT / OUTPUT BUFFER + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 0 +* + EXT I17432,C17432,E17432 + ENT CABF00 + ENT P74300 + EQU U74300(X74300-LOG1A) + SPC 1 +R17432 LDQ =XP74300 INTERRUPT RESPONSE FOR 1743-2 + JMP* (P74300+2) + SPC 2 +P74300 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0282 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF00 16 START OF BUFFER ADDRESS + ADC U74300 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74300-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF00(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74301 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 1 +* + ENT CABF01 + EQU U74301(X74301-LOG1A) + SPC 1 +P74301 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0292 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF01 16 START OF BUFFER ADDRESS + ADC U74301 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74301-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF01(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74302 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 2 +* + ENT CABF02 + EQU U74302(X74302-LOG1A) + SPC 1 +P74302 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02A2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF02 16 START OF BUFFER ADDRESS + ADC U74302 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74302-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF02(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74303 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 3 +* + ENT CABF03 + EQU U74303(X74303-LOG1A) + SPC 1 +P74303 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02B2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF03 16 START OF BUFFER ADDRESS + ADC U74303 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74303-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF03(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74304 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 4 +* + ENT CABF04 + EQU U74304(X74304-LOG1A) + SPC 1 +P74304 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02C2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF04 16 START OF BUFFER ADDRESS + ADC U74304 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74304-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF04(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74305 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 5 +* + ENT CABF05 + EQU U74305(X74305-LOG1A) + SPC 1 +P74305 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02D2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF05 16 START OF BUFFER ADDRESS + ADC U74305 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74305-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF05(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74300 75 PHYSTB THREAD + EJT +* R E S I D E N T C O R E D A T A +* + ENT LSTLOC + EXT BGNMON + SPC 1 +LSTLOC ADC BGNMON BEGINNING LOCATION OF CORE RESIDENT SYSTEM + SPC 2 +* C O R E A L L O C A T I O N D A T A +* + ENT CALTHD CORE ALLOCATOR THREAD + ENT LVLSTR LEVEL START ALLOCATION TABLE + EXT AREAC START OF ALLOCATABLE AREA + EXT LEND END OF ALLOCATABLE AREA +* +CALTHD ADC 0 TOTAL AVAILABLE ALLOCATABLE CORE + ADC AREAC START OF ALLOCATABLE AREA +* +LVLSTR ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 0 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 1 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 2 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 3 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 4 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 5 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 6 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 7 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 8 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 9 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 10 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 11 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 12 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 13 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 14 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 15 + ADC LEND END OF ALLOCATABLE CORE +* + ENT N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15 + SPC 1 +* NOTE - THE SIZE OF AREAS 1, 2, 3, AND 4 ARE SPECIFIED +* DURING SYSTEM INITIALIZATION +* +N5 EQU N5() NUMBER OF CORE LOCATIONS FOR AREA 5 +N6 EQU N6() NUMBER OF CORE LOCATIONS FOR AREA 6 +N7 EQU N7() NUMBER OF CORE LOCATIONS FOR AREA 7 +N8 EQU N8() NUMBER OF CORE LOCATIONS FOR AREA 8 +N9 EQU N9() NUMBER OF CORE LOCATIONS FOR AREA 9 +N10 EQU N10() NUMBER OF CORE LOCATIONS FOR AREA 10 +N11 EQU N11() NUMBER OF CORE LOCATIONS FOR AREA 11 +N12 EQU N12() NUMBER OF CORE LOCATIONS FOR AREA 12 +N13 EQU N13() NUMBER OF CORE LOCATIONS FOR AREA 13 +N14 EQU N14() NUMBER OF CORE LOCATIONS FOR AREA 14 +N15 EQU N15() NUMBER OF CORE LOCATIONS FOR AREA 15 + EJT +* P A R T I T I O N C O R E D A T A +* + ENT PARTBL,BUSY,DIP,LSTPRT,THDS,USE + SPC 1 + EQU LSTPRT(2) LAST PARTITION IN SYSTEM +* +PARTBL NUM $BF20 STARTING ADDRESS OF PARTITION 0 + NUM $C310 STARTING ADDRESS OF PARTITION 1 + NUM $CAE0 STARTING ADDRESS OF PARTITION 2 + NUM $FFFF STARTING ADDRESS OF PARTITION 3 + NUM $FFFF STARTING ADDRESS OF PARTITION 4 + NUM $FFFF STARTING ADDRESS OF PARTITION 5 + NUM $FFFF STARTING ADDRESS OF PARTITION 6 + NUM $FFFF STARTING ADDRESS OF PARTITION 7 + NUM $FFFF STARTING ADDRESS OF PARTITION 8 + NUM $FFFF STARTING ADDRESS OF PARTITION 9 + NUM $FFFF STARTING ADDRESS OF PARTITION 10 + NUM $FFFF STARTING ADDRESS OF PARTITION 11 + NUM $FFFF STARTING ADDRESS OF PARTITION 12 + NUM $FFFF STARTING ADDRESS OF PARTITION 13 + NUM $FFFF STARTING ADDRESS OF PARTITION 14 + NUM $FFFF STARTING ADDRESS OF PARTITION 15 +* + NUM $FFFF STARTING ADDRESS OF PARTITION 16 - SWAP AREA + SPC 2 +THDS NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 0 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 1 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 2 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 3 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 4 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 5 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 6 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 7 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 8 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 9 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 10 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 11 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 12 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 13 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 14 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 15 +* + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 16 - SWAP + SPC 2 +USE BZS USE(16) PARTITION-IN-USE INDICATORS + SPC 2 +BUSY NUM $FFF8 BUSY INDICATOR - BIT 0 = PARTITION 0 +DIP NUM -0 PARTITION CORE DRIVER ACTIVE INDICATOR + EJT +* S Y S T E M C O M M O N D E C L A R A T I O N +* +* THIS ENTRY SPECIFIES THE AMOUNT OF SYSTEM (BLANK) COMMON + SPC 4 + EQU NCOM($03E8) + SPC 1 +COMMON COM COMMON(NCOM) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* S Y S T E M I D L E L O O P + SPC 2 + ENT IDLE BASIC SYSTEM IDLE LOOP + ENT IDLER SYSTEM IDLE SUBROUTINE + ENT INSTLU SYSTEM INSTALLATION L. U. + SPC 2 +IDLE LDA* STRTUP IS THIS THE INITIAL IDLE ENTRY + SAN IDLE1 NO + RTJ* STRTUP YES, PERFORM STARTUP FUNCTIONS +IDLE1 RTJ* IDLER + JMP* IDLE + SPC 2 + EXT LIBEDT LIBRARY EDIT + EXT RELFLE SYSTEM CORE SWAP ROUTINE + EXT INPTV4 JOB PROCESSOR STANDARD INPUT DEVICE + EQU INSTLU(6) + SPC 1 +STRTUP NUM 0 + LDQ- $EB + ADQ =XLIBEDT OBTAIN THE DIRECTORY ADDRESS OF LIBEDT + LDA- (ZERO),Q HAVE THE REQUEST PRIORITIES BEEN SET UP + SAN STRTP1 YES + LDA =XINSTLU + STA+ INPTV4 SET THE STD. INPUT TO THE INSTALLATION L.U. + JMP* (STRTUP) AND EXIT + SPC 1 +STRTP1 EQU STRTP1(*) +* +* NOTE - ANY ADDITIONAL SYSTEM STARTUP FUNCTIONS +* MAY BE ADDED HERE. +* + RTJ- (AMONI) SCHEDULE RELFLE TO FORCE A SWAP + ADC $5203 + ADC RELFLE + JMP* (STRTUP) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* I N T E R R U P T R E S P O N S E F O R T I M E R +* + ENT TMRTYP,TMCODE TYPE OF SYSTEM TIME BASE + EXT TIMEUP TMINT INTERRUPT ENTRY + EQU X($7FFF) VALUE FOR UNSELECTED ENTRY POINTS + ENT E15761 + EQU E15761(X) LINK UNSELECTED ENTRY POINT + SPC 1 + EQU TMCODE(0) SOFTWARE PSEUDO TIMER +TMRTYP ADC 6 TIME BASE CODE + SPC 2 +CTR NUM 30967 +BASCTR NUM 30967 APPROXIMATION TO 60 CPS + SPC 1 +IDLER NUM 0 + IIN 0 USED AT LEVEL -1 OR LEVEL 2 + SOV 0 + RAO* CTR PSEUDO SYSTEM TIMER + SOV COUNT SKIP IF 1800 LOOPS EXECUTED + EIN 0 + JMP* (IDLER) BACK TO BASIC IDLE LOOP +COUNT LDA* BASCTR INITIALIZE LOOP COUNTER + STA* CTR + LDQ* IDLER SAVE RETURN FOR RE-ENTRANCY IN VOLATILE + RTJ- (AVOLA) GET 3 WORDS VOLATILE STORAGE + NUM 3 + RTJ- (AMONI) + ADC $520D SCHEDULE TMINT AT LEVEL 13 + ADC TIMEUP + IIN 0 + RTJ- (AVOLR) RETURN VOLATILE + JMP- (ZERO),Q RETURN TO IDLE LOOP + SPC 4 +* +* LINK ALL UNSELECTED ENTRY POINTS +* + ENT E1572F,E1572,O1572,E1573,H15721,E15721,D15721,O15721,EQ3644 + ENT F10336,O10336,E10336 + ENT DMICOD,EMPSRT,TBLADR + EQU E1572F(X),E1572(X),O1572(X),E1573(X),H15721(X) + EQU E15721(X),D15721(X),O15721(X),EQ3644(X) + EQU F10336(X),O10336(X),E10336(X) + EQU DMICOD(X),EMPSRT(X),TBLADR(X) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* A / Q C H A N N E L A L L O C A T I O N +* + SPC 2 + ENT RQAQ REQUEST ENTRY FOR A/Q + ENT RLAQ RELEASE ENTRY FOR A/Q + SPC 1 +RQAQ NUM 0 ENTRY USED IF NO A/Q ALLOCATION + IIN 0 + LDQ- I TRANSFER PDT ADDRESS TO Q + EIN 0 + JMP* (RQAQ) RETURN + SPC 1 + EQU RLAQ(RQAQ) EQUATE BOTH ENTRIES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* M A S S R E S I D E N T D R I V E R S B U F F E R +* +* THIS BUFFER WILL CONTAIN THE MASS RESIDENT DRIVER(S) +* WHEN THEY ARE IN CORE. THE SMALLEST ALLOWABLE SIZE IS +* EQUAL TO THE LARGEST MASS RESIDENT DRIVER IN THE SYSTEM. +* OPTIMUM THROUGHPUT REQUIRES SIZING EQUAL TO THE TWO +* LARGEST MASS RESIDENT DRIVERS IN THE SYSTEM. + SPC 2 + ENT BUFF,BUFFE + EQU MBFSZ($A00) + SPC 2 +BUFF BZS BUFF(MBFSZ) + EQU BUFFE(*) + SPC 2 +* C O M M O N G H O S T I N T E R R U P T R O U T I N E + SPC 1 + ENT CGHOST + SPC 1 +CGHOST NOP 0 + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + ENT FMASK,FLIST + EXT E4SAVE + EXT ARGU0 + SPC 1 +FMASK NUM $0070 FORTRAN REENTRANT LEVELS (BIT 0 = LEVEL 0) + SPC 1 +* TABLE OF FORTRAN ENTRY POINTS SAVED TO MAINTAIN REENTRANCY + SPC 1 +* ENTRY POINT PROGRAM DESCRIPTION +* ----------- ------- ---------- + SPC 1 +FLIST ADC FEND + ADC E4SAVE Q8EXPR LOCATION $E4 STORAGE + ADC ARGU0 Q8QIO TEMPORARY STORAGE +FEND EQU FEND(*-FLIST-1) + EJT +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + SPC 4 +* THIS ENTRY IS PROVIDED TO ALLOW COMPATIBILITY BETWEEN THE +* NON-REENTRANT (BACKGROUND) FORTRAN AND REENTRANT FORTRAN + SPC 1 + ENT Q8STP + SPC 1 +Q8STP NOP 0 FORTRAN STOP + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* 1 7 8 1 - 1 H A R D W A R E F L O A T I N G +* +* P O I N T I N F O R M A T I O N +* + SPC 4 +* THESE ENTRIES ALLOW PROPER SYSTEM LINKAGE IF THE 1781-1 +* IS NOT SELECTED. + SPC 2 + ENT E17811,F17811 +E17811 NUM $7FFF + EQU F17811($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* T I M E / D A T E P A R A M E T E R S T O R A G E +* + SPC 3 + ENT AYERTO CURRENT YEAR (ASCII) + ENT AMONTO CURRENT MONTH (ASCII) + ENT ADAYTO CURRENT DAY (ASCII) + ENT YERTO CURRENT YEAR (INTEGER) + ENT MONTO CURRENT MONTH (INTEGER) + ENT DAYTO CURRENT DAY (INTEGER) + ENT HORTO CURRENT HOUR (INTEGER) + ENT MINTO CURRENT MINUTE (INTEGER) + ENT SECON CURRENT SECOND (INTEGER) + ENT CONTA CURRENT COUNT (INTEGER) + ENT HORMIN CURRENT 24-HOUR TIME + ENT TOTMIN CURRENT DAY ELAPSED MINUTES + SPC 3 +AYERTO NUM 0 00 CURRENT YEAR (ASCII) +AMONTO NUM 0 01 CURRENT MONTH (ASCII) +ADAYTO NUM 0 02 CURRENT DAY (ASCII) +YERTO NUM 0 03 CURRENT YEAR (INTEGER) +MONTO NUM 0 04 CURRENT MONTH (INTEGER) +DAYTO NUM 0 05 CURRENT DAY (INTEGER) +HORTO NUM 0 06 CURRENT HOUR (INTEGER) +MINTO NUM 0 07 CURRENT MINUTE (INTEGER) +SECON NUM 0 08 CURRENT SECOND (INTEGER) +CONTA NUM 0 09 CURRENT COUNT (INTEGER) +HORMIN NUM 0 10 CURRENT 24-HOUR TIME +TOTMIN NUM 0 11 CURRENT DAY ELAPSED MINUTES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M T I M E R P A R A M E T E R S + SPC 4 + ENT TIMCPS BASIC SYSTEM CLOCK FREQUENCY + SPC 1 +TIMCPS EQU TIMCPS(60) TIMER CYCLES PER SECOND + SPC 4 + ENT TIMEC TIMER CYCLES PER 1/10 SECOND MINUS 1 + SPC 1 +TIMEC EQU TIMEC(TIMCPS/10-1) + SPC 4 + ENT TODLVL TIME OF DAY(TOD) PROGRAM REQ. CODE + PRIORITY + SPC 1 +TODLVL EQU TODLVL($5006) D-BIT = 1, REQUEST CODE 8, PRIORITY 6 + SPC 4 + ENT NSCHED MAX. NO. OF COMPLETIONS PER TIMER INTERVAL + SPC 1 +NSCHED NUM 5 MAXIMUM 5 COMPLETIONS PER INTERVAL + SPC 4 + ENT TMRLVL DIAGNOSTIC TIMER PRIORITY LEVEL + SPC 1 +TMRLVL EQU TMRLVL(13) LEVEL 13 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M P R O G R A M O V E R L A Y S I Z E S + SPC 2 + ENT LSIZV4 INITIAL OVERLAY SIZE OF LIBEDT + ENT PSIZV4 SIZE OF AREA 3 + ENT ODBSIZ INITIAL OVERLAY SIZE OF ODEBUG + SPC 4 + EQU LSIZV4($4B8) INITIAL OVERLAY SIZE OF LIBEDT + EQU PSIZV4($4B8) SIZE OF AREA 3 + EQU ODBSIZ($369) INITIAL OVERLAY SIZE OF ODEBUG + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S C M M I N C O R E F L A G +* + ENT SCMMLC + SPC 2 +SCMMLC NUM 0 NON-ZERO IF S C M M RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* O N L I N E D E B U G I N C O R E F L A G +* + ENT CHRSFG + SPC 2 +CHRSFG NUM 0 NON-ZERO IF ODEBUG RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M C H E C K O U T P A R A M E T E R S + SPC 4 +* THE STARTING SECTOR OF THE FAILED CORE IMAGE IS SPECIFIED BY +* THE NAME COBOPS. THIS AREA MUST BE SIZED TO ACCOMODATE A +* FAILED IMAGE OF THE SIZE SPECIFIED BY NAME MSIZV4. THE FAILED +* IMAGE MUST RESIDE ON THE LIBRARY MASS MEMORY UNIT. IF THE +* MASS MEMORY LIBRARY UNIT IS A CARTRIDGE DISK, THE IMAGE AREA +* CANNOT OVERLAP FROM ONE PLATTER TO THE OTHER. + SPC 2 + ENT COBOPS +COBOPS EQU COBOPS($5A00) START SECTOR OF FAILED IMAGE + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE NO-FORTRAN DISPATCHER +* ENTRY POINT + SPC 1 + ENT NDISP + SPC 1 + EQU NDISP($7FFF) + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE TIMESHARE PROTECT INTERRUPT +* PROCESSOR ENTRY POINT + SPC 1 + ENT TSIPRC + SPC 1 + EQU TSIPRC($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F I L E M A N A G E R D A T A +* + SPC 2 + ENT FISLU LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + ENT MAXMMA MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + ENT RPTPER REQUEST PROCESSOR TIMEOUT PERIOD + ENT FDTPER FILE/DIRECTORY TIMEOUT PERIOD + ENT FIDSEC FIS DIRECTORY, S SECTOR ADDRESS + ENT FIBLSA SECTOR ADDRESS OF LAST FIS BLOCK + ENT FIBNIX INDEX TO THE NEXT AVAILABLE LOCATION IN FIBLSA + ENT FSLIST START OF FILE SPACE LIST + ENT FSLLTH FILE SPACE LIST LENGTH + ENT FSLEND END OF FILE SPACE LIST + ENT ADRFMS BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 2 + EQU FISLU(LBUNIT) LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + EQU MAXMMA(1) MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + EQU FDTPER(1) FILE/DIRECTORY TIMEOUT PERIOD (1/10 SEC.) + EQU RPTPER(1) REQUEST PROCESSOR TIMEOUT PERIOD (1/10 SEC.) + SPC 2 +ADRFMS ADC $5BFB BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 1 +******** THE FOLLOWING MUST BE IN ORDER ******** +FIDSEC ADC 0 1. FIS DIRECTORY, S SECTOR ADDRESS +FIBLSA ADC 0 2. SECTOR ADDRESS OF THE LAST FIS BLOCK +FIBNIX ADC 0 3. INDEX TO NEXT AVAILABLE LOCATION IN FIBLSA +FSLIST EQU FSLIST(*) 4. START OF FILE SPACE LIST + SPC 1 +******** START OF LOGICAL UNIT ENTRIES ******** + SPC 2 +* L O G I C A L U N I T D A T A , U N I T 0 +* + ENT NUMFS0 + EQU NUMFS0($1F40) NUMBER OF FILE SECTORS - UNIT 0 + SPC 1 +LUE0 VFD X9/LUEL0,X7/LBUNIT LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC 0 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS0 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL0 EQU LUEL0(*-LUE0) + EJT +* L O G I C A L U N I T D A T A , U N I T 1 +* + ENT BEGLU1 + ENT NUMFS1 + EQU LUNIT1(13) LOGICAL UNIT OF FILE MANAGER UNIT 1 + EQU BEGLU1(1) BEGINNING FILE SECTOR - UNIT 1 + EQU NUMFS1($7FFF) NUMBER OF FILE SECTORS - UNIT 1 + SPC 1 +LUE1 VFD X9/LUEL1,X7/LUNIT1 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU1 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS1 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL1 EQU LUEL1(*-LUE1) + EJT +* L O G I C A L U N I T D A T A , U N I T 2 +* + ENT BEGLU2 + ENT NUMFS2 + EQU LUNIT2(14) LOGICAL UNIT OF FILE MANAGER UNIT 2 + EQU BEGLU2(1) BEGINNING FILE SECTOR - UNIT 2 + EQU NUMFS2($7FFF) NUMBER OF FILE SECTORS - UNIT 2 + SPC 1 +LUE2 VFD X9/LUEL2,X7/LUNIT2 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU2 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS2 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL2 EQU LUEL2(*-LUE2) + EJT +* L O G I C A L U N I T D A T A , U N I T 3 +* + ENT BEGLU3 + ENT NUMFS3 + EQU LUNIT3(15) LOGICAL UNIT OF FILE MANAGER UNIT 3 + EQU BEGLU3(1) BEGINNING FILE SECTOR - UNIT 3 + EQU NUMFS3($7FFF) NUMBER OF FILE SECTORS - UNIT 3 + SPC 1 +LUE3 VFD X9/LUEL3,X7/LUNIT3 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU3 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS3 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL3 EQU LUEL3(*-LUE3) + EJT +* L O G I C A L U N I T D A T A , U N I T 4 +* + ENT BEGLU4 + ENT NUMFS4 + EQU LUNIT4(22) LOGICAL UNIT OF FILE MANAGER UNIT 4 + EQU BEGLU4(1) BEGINNING FILE SECTOR - UNIT 4 + EQU NUMFS4($37F5) NUMBER OF FILE SECTORS - UNIT 4 + SPC 1 +LUE4 VFD X9/LUEL4,X7/LUNIT4 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU4 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS4 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL4 EQU LUEL4(*-LUE4) + EJT +* L O G I C A L U N I T D A T A , U N I T 5 +* + ENT BEGLU5 + ENT NUMFS5 + EQU LUNIT5(23) LOGICAL UNIT OF FILE MANAGER UNIT 5 + EQU BEGLU5(1) BEGINNING FILE SECTOR - UNIT 5 + EQU NUMFS5($37F5) NUMBER OF FILE SECTORS - UNIT 5 + SPC 1 +LUE5 VFD X9/LUEL5,X7/LUNIT5 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU5 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS5 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL5 EQU LUEL5(*-LUE5) + EJT +* L O G I C A L U N I T D A T A , U N I T 6 +* + ENT BEGLU6 + ENT NUMFS6 + EQU LUNIT6(24) LOGICAL UNIT OF FILE MANAGER UNIT 6 + EQU BEGLU6(1) BEGINNING FILE SECTOR - UNIT 6 + EQU NUMFS6($37F5) NUMBER OF FILE SECTORS - UNIT 6 + SPC 1 +LUE6 VFD X9/LUEL6,X7/LUNIT6 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU6 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS6 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL6 EQU LUEL6(*-LUE6) + EJT +* L O G I C A L U N I T D A T A , U N I T 7 +* + ENT BEGLU7 + ENT NUMFS7 + EQU LUNIT7(25) LOGICAL UNIT OF FILE MANAGER UNIT 7 + EQU BEGLU7(1) BEGINNING FILE SECTOR - UNIT 7 + EQU NUMFS7($37F5) NUMBER OF FILE SECTORS - UNIT 7 + SPC 1 +LUE7 VFD X9/LUEL7,X7/LUNIT7 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU7 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS7 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD ON TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL7 EQU LUEL7(*-LUE7) + EJT +* L O G I C A L U N I T D A T A , U N I T 8 +* + ENT BEGLU8 + ENT NUMFS8 + EQU LUNIT8(26) LOGICAL UNIT OF FILE MANAGER UNIT 8 + EQU BEGLU8(1) BEGINNING FILE SECTOR - UNIT 8 + EQU NUMFS8($4000) NUMBER OF FILE SECTORS - UNIT 8 + SPC 1 +LUE8 VFD X9/LUEL8,X7/LUNIT8 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU8 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS8 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD ON TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL8 EQU LUEL8(*-LUE8) + SPC 2 +FSLLTH EQU FSLLTH(*-FSLIST) FILE SPACE LIST LENGTH + SPC 1 +FSLEND NUM -0 END OF FILE SPACE LIST + EJT +* F I L E M A N A G E R D A T A +* + SPC 2 +* LINK UNSELECTED ENTRY POINTS + SPC 2 +* +* S O R T - M E R G E L O G I C A L U N I T S +* + SPC 1 + ENT SMCLU1 + ENT SMCLU2 + ENT SMCLU3 + ENT SMCLU4 + SPC 1 +SMCLU1 EQU SMCLU1(8) SORT MERGE L.U. 1 +SMCLU2 EQU SMCLU2(8) SORT MERGE L.U. 2 +SMCLU3 EQU SMCLU3(8) SORT MERGE L.U. 3 +SMCLU4 EQU SMCLU4(8) SORT MERGE L.U. 4 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* J O B P R O C E S S O R F I L E P A R A M E T E R S +* + SPC 3 + ENT JLLUV4 LOGICAL UNIT OF JOB PROCESSOR FILES + ENT JBFLV4 NUMBER OF JOB PROCESSOR FILES + ENT FBASV4 FIRST FILE NUMBER USED BY JOB PROCESSOR + ENT PKEYV4 JOB FILE PURGE KEY + SPC 3 +JLLUV4 ADC LBUNIT LOGICAL UNIT OF JOB PROCESSOR FILES + SPC 2 + EQU JBFLV4(500) NUMBER OF JOB PROCESSOR FILES + SPC 1 + EQU FBASV4($7F2B-JBFLV4) +* +* NOTE - FILES $7FFD THRU $7FFF ARE RESERVED FOR THE MSOS +* VERIFICATION TESTS, FILES $7FF5 THRU $7FFC ARE +* RESERVED FOR FOREGROUND PSEUDO TAPES, FILES $7FF3 +* THRU $7FF4 ARE RESERVED FOR THE TEXT EDITOR, AND +* FILES $7F2B THRU $7FF2 ARE RESERVED FOR RPGII. + SPC 2 + EQU PKEYV4($3030) JOB FILE PURGE KEY + EJT +* P R E S E T R E G I O N +* +* PRESET PROTECTED ENTRY POINTS FOR USE BY UNPROTECTED PGMS +* +APRSET EQU APRSET(*) + ENT JPRET + SPC 2 +* J O B P R O C E S S O R P R E S E T + SPC 2 + EXT JPRETN + ALF 3,JPRETN +JPRET ADC JPRETN JOB PROCESSOR RETURN +* + SPC 2 +* S N A P D U M P P R E S E T + SPC 2 + EXT SNAPOL + ALF 3,SNAPOL + ADC SNAPOL REGISTER SNAPSHOT +* + SPC 2 +* F I L E M A N A G E R P R E S E T S + SPC 2 + EXT DEFFIL + ALF 3,DEFFIL + ADC DEFFIL DEFINE FILE +* + EXT RELFIL + ALF 3,RELFIL + ADC RELFIL RELEASE FILE +* + EXT DEFIDX + ALF 3,DEFIDX + ADC DEFIDX DEFINE INDEXED FILE +* + EXT LOKFIL + ALF 3,LOKFIL + ADC LOKFIL LOCK FILE +* + EXT UNLFIL + ALF 3,UNLFIL + ADC UNLFIL UNLOCK FILE +* + EXT STOSEQ + ALF 3,STOSEQ + ADC STOSEQ STORE SEQUENTIAL RECORD +* + EXT STODIR + ALF 3,STODIR + ADC STODIR STORE DIRECT +* + EXT STOIDX + ALF 3,STOIDX + ADC STOIDX STORE INDEXED RECORD +* + EXT RTVSEQ + ALF 3,RTVSEQ + ADC RTVSEQ RETRIEVE SEQUENTIAL RECORD +* + EXT RTVDIR + ALF 3,RTVDIR + ADC RTVDIR RETRIEVE DIRECT +* + EXT RTVIDX + ALF 3,RTVIDX + ADC RTVIDX RETRIEVE INDEXED RECORD +* + EXT RTVIDO + ALF 3,RTVIDO + ADC RTVIDO RETRIEVE INDEXED-ORDERED RECORD + SPC 2 +* F I L E M A N A G E R F L A G P R E S E T + SPC 2 + EXT FMPFLG + ALF 3,FMPFLG + ADC FMPFLG + SPC 1 +LPRSET EQU LPRSET(*-APRSET) + EJT + SPC 10 +* S Y S T E M L I B R A R Y D I R E C T O R Y +* +* COMPILED FROM *Y, *YM BY SYSTEM INITIALIZER +SLDIRY EQU SLDIRY(*) + END diff --git a/CDC1700/customization/custom2/sysdat.tap b/CDC1700/customization/custom2/sysdat.tap new file mode 100644 index 00000000..c44973d6 Binary files /dev/null and b/CDC1700/customization/custom2/sysdat.tap differ diff --git a/CDC1700/customization/custom3/msosCustom3.simh b/CDC1700/customization/custom3/msosCustom3.simh new file mode 100644 index 00000000..4e354915 --- /dev/null +++ b/CDC1700/customization/custom3/msosCustom3.simh @@ -0,0 +1,150 @@ +# Script to generate a customized MSOS 5.0 installation tape. +# +# Customizations: +# 1. Set system creation date to 4/19/17 +# 2. Change the system name to "SIMH DEVELOPMENT SYSTEM" +# 3. Reduce file manager devices to CDD0/CDD1 +# +# Requires: +# MSOS5-A.dsk and MSOS5-B.dsk Installation boot disks +# sysdat.tap Modified sysdat.asm as only file on +# the tape (80 char records) +# Installation tape Default is MSOS5_SL136.tap which can +# be copied from bitsavers.org. This can +# be overridden by specifying the +# installation tape on the command line: +# +# cdc1700 msosCustom1.simh install.tap +# +# Creates: +# MSOS5-Install.tap New installation tape. If it already +# exists, it will be overwritten +# Scratch?.tap Tapes for temporary use. If they +# already exist, they will be overwritten +# %DATETIME%.lpt Unique LPT output file for this run +# +set env CDD0=MSOS5-A.dsk +set env CDD1=MSOS5-B.dsk +set env MT0=%1 +if "%MT0%"=="" set env MT0=MSOS5_SL136.tap +set env MT1A=Scratch3.tap +set env MT1B=MSOS5-Install.tap +set env MT2A=sysdat.tap +set env MT2B=Scratch1.tap +set env MT3=Scratch2.tap +set cpu instr=basic +set cpu mode65k,64k +#set throttle 30% +set mt type=1732-3 +set mt3 9track +set lp type=1742 +att lp %DATETIME%.lpt +att cdd0 %CDD0% +att cdd1 %CDD1% +att -r mt0 %MT0% +att mt1 %MT1A% +att -r mt2 %MT2A% +att mt3 %MT3% +set env TODAY=%DATE_MM%%DATE_DD%%DATE_19XX_YY% +# +# The following command will patch out unimplemented devices (1728 card +# reader/punch) +# +expect "SET PROGRAM PROTECT" set cpu protect; d 056D 0649; d 057E 0649; d 0589 0649; c +expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%TODAY%%TIME_HH%%TIME_MM%\r"; c +expect ":00 " send after=1000000,"\007"; c +expect "MI\r\n" send "*BATCH,4\r"; c +expect "J \r\n" send "*JOB\r"; c +expect "J \r\n" send "*K,I17,P16\r"; c +expect "J \r\n" send "*ASSEM\r"; c +expect "J \r\n" send "*MTUP\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,BR1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*REW,17\r"; c +# Use SKED to extract and edit the skeleton file +expect "J \r\n" send "*SKED\r"; c +expect "NEXT\r\n\007" send "ADF,6,1\r"; c +expect "NEXT\r\n\007" send "BUILD,6\r"; c +expect "ENTER LU\r\n\007" send "\r"; goto insert1 +send delay=10000 +autoload cdd +run 0 +goto end + +:insert1 +det mt2 +att -q mt2 %MT2B% +expect "NEXT\r\n\007" send "INSERT,1,4\r"; c +expect "\007" send "*S,SYSMON,$3034\r"; c +expect "\007" send "*S,SYSDAY,$3139\r"; c +expect "\007" send "*S,SYSYER,$3137\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,2,4\r"; c +expect "NEXT\r\n\007" send "INSERT,8,4\r"; c +expect "\007" send "*V SIMH DEVELOPMENT SYSTEM\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,9\r"; c +expect "NEXT\r\n\007" send "DUMP,17\r"; c +expect "NEXT\r\n\007" send "EXIT\r"; c +expect "J \r\n" send "*REW,6,17\r"; c +expect "J \r\n" send "*ADF,6,1\r"; goto libild +continue + +:libild +expect "J \r\n" send delay=5000,"*LIBILD\r"; c +expect "CONTROL LU = \007" send "\r"; c +expect "DEFS LU = \007" send "\r"; c +expect "INSTALL LU = \007" send "18\r"; c +expect "NEWLIB LU = \007" send "\r"; c +expect "LIB 01 LU = \007" send "16\r"; c +expect "LIB 02 LU = \007" send "6\r"; c +expect "LIB 03 LU = \007" send "\r"; c +expect "SKELETON LU = \007" send "17\r"; c +expect "CR WHEN READY. \r\n\007" send "\r"; c +expect "CR WHEN READY \r\n\007" send "\r"; c +expect "OUTPUT LIBRARY LU'S \007" send "*Z\r"; c +expect "J \r\n" send "*REW,6,16\r"; goto mtup +continue + +:mtup +det mt1 +att -q mt1 %MT1B% +expect "J \r\n" send "*mtup\r"; c +expect "NEXT: \007" send "OPEN,O18,NL,U,A,SF0\r"; c +expect "NEXT: \007" send "CLOSE,O18,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF1,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I18,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I18,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*Z\r"; c +continue + +:end diff --git a/CDC1700/customization/custom3/sysdat.asm b/CDC1700/customization/custom3/sysdat.asm new file mode 100644 index 00000000..83b2ae9f --- /dev/null +++ b/CDC1700/customization/custom3/sysdat.asm @@ -0,0 +1,2817 @@ + NAM SYSDAT EXXON DEVELOPMENT SYSTEM SUMMARY-122 +* SYSTEM DATA PROGRAM - MSOS 5.0 +* 1700 MASS STORAGE OPERATING SYSTEM VERSION 5.0 +* SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA +* COPYRIGHT CONTROL DATA CORPORATION 1976 +* +* SIMH DEVELOPMENT SYSTEM +* +* PROGRAM BASE - MSOS 4.3 +* +* S Y S T E M D A T A P R O G R A M +* +* +* TABLE OF CONTENTS +* +* 1. COMMUNICATION EXTERNALS +* +* 2. COMMUNICATION REGION (INCLUDING APPLICATIONS AREA) +* +* 3. INTERRUPT REGION +* +* 4. INTERRUPT MASK TABLE (MASKT) +* +* 5. EXTENDED COMMUNICATIONS REGION +* +* 6. STORAGE STACKS (INTSTK,VOLBLK, SCHSTK) +* +* 7. LOGICAL UNIT TABLES (LOG1A, LOG1, LOG2) +* +* 8. DIAGNOSTIC TABLES (DGNTAB, ALTERR) +* +* 9. STANDARD LOGICAL UNIT DEFINITIONS AND LINE 1 TABLE +* +* 10. PHYSICAL DEVICE TABLES WITH INTERRUPT RESPONSE ROUTINES +* +* 11. CORE ALLOCATION INFORMATION (CALTHD, LVLSTR, NN'S) +* +* 12. CORE PARTITION INFORMATION (PARTBL, THDS, USE) +* +* 13. SYSTEM COMMON DECLARATION +* +* 14. MISCELLANEOUS PROGRAMS +* +* 15. MISCELLANEOUS INFORMATION +* +* 16. SYSTEM FILE INFORMATION +* +* 17. PRESET REGION +* +* 18. START OF SYSTEM DIRECTORY +* + EJT +* C O M M U N I C A T I O N S E X T E R N A L S +* +* + EXT FNR FIND NEXT REQUEST + EXT COMPRQ COMPLETE REQUEST + EXT REQXT REQUEST EXIT + EXT VOLR VOLATILE RELEASE + EXT VOLA VOLATILE ASSIGNMENT + EXT LUABS LOGICAL UNIT ABSOLUTIZING + EXT SABS STARTING ADDRESS ABSOLUTIZING + EXT CABS COMPLETION ADDRESS ABSOLUTIZING + EXT NABS NUMBER OF WORDS ABSOLUTIZING + EXT DISPXX DISPATCHER + EXT MONI MONITOR + EXT MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + EXT IPROC INTERNAL INTERRUPT PROCESSOR + EXT ALLIN COMMON INTERRUPT HANDLER + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG 0 + RTJ SYFAIL GO TO COMMON SYSTEM FAILURE ROUTINE +* +LPMSK NUM 0 LOGICAL PRODUCT MASK TABLE OF ONES +ONE NUM 1 ONE +THREE NUM 3 THREE +SEVEN NUM 7 SEVEN + NUM $F + NUM $1F + NUM $3F + NUM $7F + NUM $FF + NUM $1FF + NUM $3FF + NUM $7FF + NUM $FFF + NUM $1FFF + NUM $3FFF + NUM $7FFF +* +NZERO NUM $FFFF LOGICAL PRODUCT MASK TABLE OF ZEROS (NEG ZERO) + NUM $FFFE + NUM $FFFC + NUM $FFF8 + NUM $FFF0 + NUM $FFE0 + NUM $FFC0 + NUM $FF80 + NUM $FF00 + NUM $FE00 + NUM $FC00 + NUM $F800 + NUM $F000 + NUM $E000 + NUM $C000 + NUM $8000 + EJT +* C O M M U N I C A T I O N R E G I O N +* +ZERO NUM 0 ZERO +* +ONEBIT NUM 1 ONE BIT TABLE +TWO NUM 2 TWO +FOUR NUM 4 FOUR +EIGHT NUM 8 EIGHT + NUM $10 + NUM $20 + NUM $40 + NUM $80 + NUM $100 + NUM $200 + NUM $400 + NUM $800 + NUM $1000 + NUM $2000 + NUM $4000 + NUM $8000 +* +ZROBIT NUM $FFFE ZERO BIT TABLE + NUM $FFFD + NUM $FFFB + NUM $FFF7 + NUM $FFEF + NUM $FFDF + NUM $FFBF + NUM $FF7F + NUM $FEFF + NUM $FDFF + NUM $FBFF + NUM $F7FF + NUM $EFFF + NUM $DFFF + NUM $BFFF + NUM $7FFF +* +FIVE NUM 5 FIVE +SIX NUM 6 SIX +NINE NUM 9 NINE +TEN NUM 10 TEN + EJT +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $47 + NUM 0 $48 + NUM 0 $49 + NUM 0 $4A + NUM 0 $4B + NUM 0 $4C + NUM 0 $4D + NUM 0 $4E + NUM 0 $4F + NUM 0 $50 + NUM 0 $51 + NUM 0 $52 + NUM 0 $53 + NUM 0 $54 + NUM 0 $55 + NUM 0 $56 + NUM 0 $57 + NUM 0 $58 + NUM 0 $59 + NUM 0 $5A + NUM 0 $5B + NUM 0 $5C + NUM 0 $5D + NUM 0 $5E + NUM 0 $5F + NUM 0 $60 + NUM 0 $61 + NUM 0 $62 + NUM 0 $63 + NUM 0 $64 + NUM 0 $65 + NUM 0 $66 + NUM 0 $67 + NUM 0 $68 + NUM 0 $69 + NUM 0 $6A + NUM 0 $6B + NUM 0 $6C + NUM 0 $6D + NUM 0 $6E + NUM 0 $6F + EJT + SPC 4 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $70 + NUM 0 $71 + NUM 0 $72 + NUM 0 $73 + NUM 0 $74 + NUM 0 $75 + NUM 0 $76 + NUM 0 $77 + NUM 0 $78 + NUM 0 $79 + NUM 0 $7A + NUM 0 $7B + NUM 0 $7C + NUM 0 $7D + NUM 0 $7E + NUM 0 $7F + NUM 0 $80 + NUM 0 $81 + NUM 0 $82 + NUM 0 $83 + NUM 0 $84 + NUM 0 $85 + NUM 0 $86 + NUM 0 $87 + NUM 0 $88 + NUM 0 $89 + NUM 0 $8A + NUM 0 $8B + NUM 0 $8C + NUM 0 $8D + NUM 0 $8E + NUM 0 $8F + EJT + SPC 2 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $90 + NUM 0 $91 + NUM 0 $92 + NUM 0 $93 + NUM 0 $94 + NUM 0 $95 + NUM 0 $96 + NUM 0 $97 + NUM 0 $98 + NUM 0 $99 + NUM 0 $9A + NUM 0 $9B + NUM 0 $9C + NUM 0 $9D + NUM 0 $9E + NUM 0 $9F + NUM 0 $A0 + NUM 0 $A1 + NUM 0 $A2 + NUM 0 $A3 + NUM 0 $A4 + NUM 0 $A5 + NUM 0 $A6 + NUM 0 $A7 + NUM 0 $A8 + NUM 0 $A9 + NUM 0 $AA + NUM 0 $AB + NUM 0 $AC + NUM 0 $AD + NUM 0 $AE + NUM 0 $AF + NUM 0 $B0 + NUM 0 $B1 + NUM 0 $B2 + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG $B3 + ADC SCRTCH LOGICAL UNIT OF STANDARD SCRATCH DEVICE + ADC SCHSTK ADR OF TOP OF SCHEDULER STACK +AFNR ADC FNR ADR OF FIND NEXT REQUEST +ACOMPR ADC COMPRQ ADR OF COMPLETE REQUEST + ADC MASKT ADR OF MASK TABLE + ADC INTSTK ADR OF TOP OF INTERRUPT STACK + ADC REQXT ADR OF EXIT FOR MONITOR REQUESTS +AVOLR ADC VOLR ADR OF RELEASE VOLATILE ROUTINE +AVOLA ADC VOLA ADR OF ASSIGN VOLATILE ROUTINE + ADC LUABS ADR OF ABSOLUTIZING ROUTINE FOR LOGICAL UNIT + ADC SABS ADR OF ABSOLUTIZING ROUTINE FOR STARTING ADR + ADC CABS ADR OF ABSOLUTIZING ROUTINE FOR COMPLETION ADR + ADC NABS ADR OF ABSOLUTIZING ROUTINE FOR NUMBER OF WRDS + NUM 0 MSB OF STARTING SCRATCH SECTOR (ALWAYS ZERO) + NUM 0 LSB OF STARTING SCRATCH SECTOR (SET BY SI) + ADC LBUNIT LOGICAL UNIT OF STANDARD LIBRARY DEVICE + NUM 0 MSB OF PGM LIB DIRECTORY SECTOR (ALWAYS ZERO) + NUM 0 LSB OF PGM LIB DIRECTORY SECTOR (SET BY SI) +* + BZS ($E3-$C5+1) RESERVED FOR FTN (UNPROTECTED) + NUM 0 RESERVED FOR FTN + LOAD/GO SECTOR(UNPROTECTED) + NUM 0 RESERVED FOR FTN (UNPROTECTED) +* + BSS (1) LENGTH OF MASS RESIDENT SYSTEM DIR.(SET BY SI) + BSS (1) LENGTH OF CORE RESIDENT SYSTEM DIR.(SET BY SI) + NUM 0 REAL TIME CLOCK COUNTER + ADC EXTBV4 ADDR OF EXTENDED CORE TABLE +ADISP ADC DISPXX ADR OF DISPATCHER + ADC SLDIRY ADR OF SYSTEM DIRECTORY + NUM 0 TEMPORARY TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 TEMPORARY BOTTOM-1 OF UNPROTECTED (SET BY SI) + NUM 0 USED BY JOB PROCESSOR FOR LOADER RETURNS + NUM -1 CURRENT PRIORITY LEVEL + ADC VOLBLK STARTING LOCATION OF VOLATILE STORAGE + ADC LPRSET LENGTH OF PRESETS TABLE + ADC APRSET STARTING LOCATION OF PRESETS TABLE + ADC 0 ADR OF BREAKPOINT PROGRAM IN CORE(UNPROTECTED) +AMONI ADC MONI ADR OF MONITOR ENTRY FOR REQUESTS + ADC MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + NUM 0 TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 BOTTOM-1 OF UNPROTECTED (SET BY SI) + ADC IPROC ADR OF INTERNAL INTERRUPT PROCESSOR + ADC STDINP LOGICAL UNIT OF STANDARD INPUT DEVICE (FTN 1) + ADC BINOUT LOGICAL UNIT OF STANDARD BINARY DEVICE (FTN 2) + ADC LSTOUT LOGICAL UNIT OF STANDARD PRINT DEVICE (FTN 3) + ADC OUTCOM LOGICAL UNIT OF OUTPUT COMMENT DEVICE (FTN 4) + ADC INPCOM LOGICAL UNIT OF INPUT COMMENT DEVICE (FTN 4) + ADC ALLIN ADR OF COMMON INTERRUPT HANDLER + BSS (1) I (MEMORY INDEX) REGISTER (UNPROTECTED) + EJT + SPC 6 +* I N T E R R U P T R E G I O N +* +* +* +LINE00 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($F8) GO TO INTERRUPT HANDLER ROUTINE + NUM 15 PRIORITY LEVEL OF INTERRUPT + ADC IPROC INTERRUPT RESPONSE FOR THE PROTECT/PARITY ERR. +* +LINE01 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 13 PRIORITY LEVEL OF INTERRUPT + ADC LIN1V4 INTERRUPT RESPONSE FOR THE LOW SPEED I / O +* +LINE02 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R1752 INTERRUPT RESPONSE FOR THE 1752 DRUM +* +LINE03 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R17332 INTERRUPT RESPONSE FOR THE 1733-2/856-2/4 DISK +* +LINE04 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R42312 INTERRUPT RESPONSE FOR THE 1742-30/120 PRINTER +* +LINE05 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R17432 INTERRUPT RESPONSE FOR THE 1743-2 COMM. CONT. +* +LINE06 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE07 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R17323 INTERRUPT RESPONSE FOR THE 1732-3/616 MAG TAPE +* +LINE08 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE09 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE10 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 14 PRIORITY LEVEL OF INTERRUPT + ADC R1728 INTERRUPT RESPONSE FOR THE 1728-430 READ/PNCH +* +LINE11 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE12 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE13 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE14 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE15 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 + EJT +* C O R E R E S I D E N T D E B U G E N T R I E S + SPC 2 + ORG $140 + SPC 1 + EXT COUTV4 + EXT COBOP + SPC 2 + JMP+ COUTV4 OFF-LINE CORE DUMP + SPC 4 + JMP+ COBOP SYSTEM CHECKOUT BOOTSTRAP + EJT +* I N T E R R U P T M A S K T A B L E +* +* + ENT MASKT INTERRUPT MASKS INDEXED BY PRIORITY LEVEL +* +* +* <----------------------------- INTERRUPT LINE NUMBER +* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +* **************************************************** +* P -1 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* R 0 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* I 1 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* O 2 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* R 3 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* I 4 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* T 5 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* Y 6 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* 7 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* L 8 * 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 * +* E 9 * 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 * +* V 10 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* E 11 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* L 12 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* . 13 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 * +* . 14 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 * +* V 15 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * +* **************************************************** +* +* + NUM $04BF PRIORITY LEVEL -1 +MASKT NUM $04BF PRIORITY LEVEL 00 + NUM $04BF PRIORITY LEVEL 01 + NUM $04BF PRIORITY LEVEL 02 + NUM $04BF PRIORITY LEVEL 03 + NUM $04BF PRIORITY LEVEL 04 + NUM $04BF PRIORITY LEVEL 05 + NUM $04BF PRIORITY LEVEL 06 + NUM $04BF PRIORITY LEVEL 07 + NUM $04BF PRIORITY LEVEL 08 + NUM $04B3 PRIORITY LEVEL 09 + NUM $0403 PRIORITY LEVEL 10 + NUM $0403 PRIORITY LEVEL 11 + NUM $0403 PRIORITY LEVEL 12 + NUM $0401 PRIORITY LEVEL 13 + NUM $0001 PRIORITY LEVEL 14 + NUM $0000 PRIORITY LEVEL 15 + EJT +* E X T E N D E D C O M M U N I C A T I O N S R E G I O N +* +* REFERENCED THRU LOCATION $E9 + SPC 3 + ENT MAXSEC + ENT MPFLAG + ENT MIINP + EXT JFILV4 + EXT RCTV + EXT END0V4 + EXT DATBAS + EXT SECTOR + EQU CSYLST(9) + EQU CSYINP(10) + EQU CSYPUN(11) + EQU SECT1(0) + EQU SECT3(0) + EQU SECT4($5BFA) + SPC 3 +EXTBV4 ADC 0 00 MODE SWITCH 32K=0 65K=1 + ADC CSYINP 01 STANDARD COSY INPUT LU NUMBER + ADC CSYPUN 02 STANDARD COSY OUTPUT LU NUMBER + ADC CSYLST 03 STANDARD COSY LIST LU NUMBER + ADC 0 04 FIRST SECTOR LSB OF SYSTEM CORE IMAGE + ADC 0 05 FIRST SECTOR LSB OF S. A. T. + ADC 0 06 FIRST SECTOR LSB OF CREP TABLE + ADC 0 07 FIRST SECTOR LSB OF CREP1 TABLE + ADC JFILV4 08 FIRST SECTOR LSB OF JOB FILE DIRECTORY + ADC RCTV 09 ADDRESS OF RCTV TABLE IN THE MONITOR + ADC 0 10 UNPROTECTED CORE FLAG 0=PART0 / 1=PART1 + ADC 0 11 UNPROTECTED SWAP ALLOWED 0=YES / 1=NO + ADC AYERTO 12 ADDRESS LOCATION CONTAINING THE YEAR + ADC AMONTO 13 ADDRESS LOCATION CONTAINING THE MONTH + ADC ADAYTO 14 ADDRESS LOCATION CONTAINING THE DAY + ADC END0V4 15 LAST ADDRESS OF PART 0 CORE + ADC 0 16 FIRST ADDRESS OF BLANK (SYSTEM) COMMON + ADC DATBAS 17 FIRST ADDRESS OF LABELED COMMON + ADC 0 18 COSY DRIVER CURRENT PHYSTAB ADDRESS + ADC 0 19 JOB TABLE INITIALIZATION FLAG + ADC 0 20 MASS MEMORY LOCATION OF ENGINEERING FILE + ADC SECT1 21 MSB OF MAXIMUM SCRATCH SECTOR +MAXSEC ADC SECTOR 22 LSB OF MAXIMUM SCRATCH SECTOR + ADC SECT3 23 MSB OF MAXIMUM LIBRARY SECTOR + ADC SECT4 24 LSB OF MAXIMUM LIBRARY SECTOR + ADC 0 25 LAST ADDRESS OF LABELED COMMON + ADC 0 26 UNUSED +MPFLAG ADC 0 27 ZERO IF NOT AN MP SYSTEM + ADC LOG1A 28 ADDRESS OF LOG1A TABLE +MIINP BZS MIINP(40) MANUAL INPUT BUFFER + EJT +* S Y S T E M I D E N T I F I C A T I O N +* + SPC 1 + ENT SYSID + EXT SYSMON MONTH SYSTEM WAS BUILT + EXT SYSDAY DAY SYSTEM WAS BUILT + EXT SYSYER YEAR SYSTEM WAS BUILT + SPC 4 +SYSID ALF 16, SIMH DEVELOPMENT SYSTEM + ADC SYSMON + ADC SYSDAY + ADC SYSYER + SPC 4 +* COMMON SYSTEM FAILURE ROUTINE + SPC 2 + ENT SYFAIL + SPC 1 +SYFAIL NOP 0 + IIN 0 INHIBIT INTERRUPTS + STA* SAVEA SAVE A + STQ* SAVEQ SAVE Q + TRM A MOVE M TO A + STA* SAVEM SAVE M + LDA* SYFAIL PICK UP ADDRESS OF CALLER + INA -2 CORRECT IT FOR 2 WORD RTJ + STA* SYFAIL STORE IT BACK + NUM $18FF HANG + SPC 2 +SAVEA NUM 0 +SAVEQ NUM 0 +SAVEM NUM 0 + EJT +* C O N T R O L P O I N T / B O U N D S R E G I S T E R +* P A R A M E T E R S +* + ENT UBPROT + ENT LBPROT + ENT UPBDTB + ENT LOBDTB + ENT TSCNAC + ENT TSCNMI + ENT SIM200 + ENT CCP + ENT CPSET + SPC + EQU UBPROT($7FFF),LBPROT($7FFF),UPBDTB($7FFF),LOBDTB($7FFF) + EQU TSCNAC($7FFF),TSCNMI($7FFF),SIM200($7FFF) + EQU CCP($7FFF) + SPC 2 +CPSET NUM 0 + JMP* (CPSET) + EJT +* S T O R A G E S T A C K S +* +* +NUMPRI EQU NUMPRI(16) NUMBER OF SYSTEM PRIORITY LEVELS +EXTVOL EQU EXTVOL(00) AMOUNT OF EXTRA VOLATILE STORAGE +* +NFTNLV EQU NFTNLV(3) NUMBER OF REENTRANT FORTRAN LEVELS +NEDLVL EQU NEDLVL(3) NUMBER OF REENTRANT ENCODE/DECODE LEVELS + SPC 3 +* +* I N T E R R U P T S T A C K +* + ENT INTSTK CONTENTS, 1 = Q-REGISTER +* 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = P-REGISTER +* 5 = PRIORITY LEVEL AND OVERFLOW +* INDICATOR (BIT 15) +* +INTSTK BZS INTSTK(5*NUMPRI) + SPC 3 +* +* V O L A T I L E B L O C K S T A C K +* + ENT VOLBLK CONTENTS, 1 = Q-REGISTER + ENT VOLEND 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = USER ASSIGNMENTS +* . +* N = USER ASSIGNMENTS +* +VOLBLK BZS VOLBLK(18*NUMPRI+98*NFTNLV+57*NEDLVL+EXTVOL+1) +VOLEND EQU VOLEND(*) END OF VOLATILE + SPC 3 +* +* S C H E D U L E R / T I M E R S T A C K +* + ENT SCHSTK CONTENTS, 1 = SCHEDULER CALL + ENT SCHLNG 2 = STARTING ADDRESS +* 3 = THREAD TO NEXT CALL +SCHSTK EQU SCHSTK(*) 4 = Q-REGISTER CONTENTS + SPC 1 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 001 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 002 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 003 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 004 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 005 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 006 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 007 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 008 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 009 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 010 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 011 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 012 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 013 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 014 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 015 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 016 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 017 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 018 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 019 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 020 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 021 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 022 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 023 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 024 + ADC 0,0,(-0),0 SCHEDULER STACK ENTRY 025 +SCHLNG EQU SCHLNG(*-SCHSTK) SCHEDULER STACK LENGTH + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 A ) +* +* + ENT LOG1A PHYSICAL DEVICES ADDRESSES BY LOGICAL UNIT + ENT NUMLU + SPC 1 +LOG1A ADC NUMLU NUMBER OF LOGICAL UNITS + ADC PCORE 1 CORE ALLOCATOR + ADC PDUMMY 2 DUMMY LOGICAL UNIT + ADC PDUMMY 3 DUMMY LOGICAL UNIT + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC PCOSY1 5 COSY DRIVER, FIRST UNIT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC PSUDO0 7 PSEUDO TAPE, UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER +X73230 ADC P73230 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC P1728 11 1728-430 CARD PUNCH +FTN742 ADC P42312 12 1742-30/120 FORTRAN LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC PSUDO1 19 PSEUDO TAPE, UNIT 1 + ADC PSUDO2 20 PSEUDO TAPE, UNIT 2 + ADC PSUDO3 21 PSEUDO TAPE, UNIT 3 + ADC PSDSK0 22 PSEUDO DISK, UNIT 0 + ADC PSDSK1 23 PSEUDO DISK, UNIT 1 + ADC PSDSK2 24 PSEUDO DISK, UNIT 2 + ADC PSDSK3 25 PSEUDO DISK, UNIT 3 + ADC P1752 26 1752 DRUM + ADC PCOSY2 27 COSY DRIVER, SECOND UNIT + ADC P1728 28 1728-430 CARD READER +X73231 ADC P73231 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 +L74300 ADC P74300 30 1743-2 COMMUNICATIONS UNIT 0 +L74301 ADC P74301 31 1743-2 COMMUNICATIONS UNIT 1 +L74302 ADC P74302 32 1743-2 COMMUNICATIONS UNIT 2 +L74303 ADC P74303 33 1743-2 COMMUNICATIONS UNIT 3 +L74304 ADC P74304 34 1743-2 COMMUNICATIONS UNIT 4 +L74305 ADC P74305 35 1743-2 COMMUNICATIONS UNIT 5 +X73232 ADC P73232 36 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 +X73233 ADC P73233 37 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 +X42312 ADC P42312 38 DIAGNOSTIC 1742-30/120 LINE PRINTER +X1728 ADC P1728 39 DIAGNOSTIC 1728-430 READER / PUNCH +X74300 ADC P74300 40 DIAGNOSTIC 1743-2 COMM. , UNIT 0 +X74301 ADC P74301 41 DIAGNOSTIC 1743-2 COMM. , UNIT 1 +X74302 ADC P74302 42 DIAGNOSTIC 1743-2 COMM. , UNIT 2 +X74303 ADC P74303 43 DIAGNOSTIC 1743-2 COMM. , UNIT 3 +X74304 ADC P74304 44 DIAGNOSTIC 1743-2 COMM. , UNIT 4 +X74305 ADC P74305 45 DIAGNOSTIC 1743-2 COMM. , UNIT 5 +X1711 ADC P1711 46 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT +NUMLU EQU NUMLU(*-LOG1A-1) + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 ) +* +* + ENT LOG1 LOGICAL UNIT INFORMATION BY LOGICAL UNIT +* BIT 14 = 1, IMPLIES LU SHARES DEVICE +* BIT 13 = 1, IMPLIES LU IS MARKED DOWN +* BITS 0 - 11 IS ALTERNATE LOGICAL UNIT +* ALTERNATE = 0, IMPLIES NONE +S EQU S($4000) SHARED BIT + SPC 1 +LOG1 ADC NUMLU NUMBER OF LOGICAL UNITS + ADC 0 1 CORE ALLOCATOR + ADC 0+S 2 DUMMY LOGICAL UNIT + ADC 0+S 3 DUMMY LOGICAL UNIT + ADC 2+S 4 1711 TELETYPE, 713-10 CRT + ADC 0 5 COSY DRIVER, FIRST UNIT + ADC 0+S 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC 0 7 PSEUDO TAPE, UNIT 0 + ADC 0 8 1733-2 856-2/4 DISK, UNIT 0 + ADC 0+S 9 1742-30/120 LINE PRINTER + ADC 0+S 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC 0+S 11 1728-430 CARD PUNCH + ADC 0+S 12 1742-30/120 FORTRAN LINE PRINTER + ADC 0 13 1733-2 856-2/4 DISK, UNIT 1 + ADC 0 14 1733-2 856-2/4 DISK, UNIT 2 + ADC 0 15 1733-2 856-2/4 DISK, UNIT 3 + ADC 0+S 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC 0+S 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC 0+S 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC 0 19 PSEUDO TAPE, UNIT 1 + ADC 0 20 PSEUDO TAPE, UNIT 2 + ADC 0 21 PSEUDO TAPE, UNIT 3 + ADC 0 22 PSEUDO DISK, UNIT 0 + ADC 0 23 PSEUDO DISK, UNIT 1 + ADC 0 24 PSEUDO DISK, UNIT 2 + ADC 0 25 PSEUDO DISK, UNIT 3 + ADC 0 26 1752 DRUM + ADC 0 27 COSY DRIVER, SECOND UNIT + ADC 0+S 28 1728-430 CARD READER + ADC 0+S 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + ADC 0+S 30 1743-2 COMMUNICATIONS UNIT 0 + ADC 0+S 31 1743-2 COMMUNICATIONS UNIT 1 + ADC 0+S 32 1743-2 COMMUNICATIONS UNIT 2 + ADC 0+S 33 1743-2 COMMUNICATIONS UNIT 3 + ADC 0+S 34 1743-2 COMMUNICATIONS UNIT 4 + ADC 0+S 35 1743-2 COMMUNICATIONS UNIT 5 + ADC 0+S 36 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + ADC 0+S 37 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + ADC 0+S 38 DIAGNOSTIC 1742-30/120 LINE PRINTER + ADC 0+S 39 DIAGNOSTIC 1728-430 READER / PUNCH + ADC 0+S 40 DIAGNOSTIC 1743-2 COMM. , UNIT 0 + ADC 0+S 41 DIAGNOSTIC 1743-2 COMM. , UNIT 1 + ADC 0+S 42 DIAGNOSTIC 1743-2 COMM. , UNIT 2 + ADC 0+S 43 DIAGNOSTIC 1743-2 COMM. , UNIT 3 + ADC 0+S 44 DIAGNOSTIC 1743-2 COMM. , UNIT 4 + ADC 0+S 45 DIAGNOSTIC 1743-2 COMM. , UNIT 5 + ADC 0+S 46 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* L O G I C A L U N I T T A B L E S ( L O G 2 ) +* +* + ENT LOG2 TOP OF I/O THREAD ADDRESSES BY LOGICAL UNIT + SPC 1 +LOG2 ADC NUMLU NUMBER OF LOGICAL UNITS + NUM $FFFF 1 CORE ALLOCATOR + NUM $FFFF 2 DUMMY LOGICAL UNIT + NUM $FFFF 3 DUMMY LOGICAL UNIT + NUM $FFFF 4 1711 TELETYPE, 713-10 CRT + NUM $FFFF 5 COSY DRIVER, FIRST UNIT + NUM $FFFF 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + NUM $FFFF 7 PSEUDO TAPE, UNIT 0 + NUM $FFFF 8 1733-2 856-2/4 DISK, UNIT 0 + NUM $FFFF 9 1742-30/120 LINE PRINTER + NUM $FFFF 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + NUM $FFFF 11 1728-430 CARD PUNCH + NUM $FFFF 12 1742-30/120 FORTRAN LINE PRINTER + NUM $FFFF 13 1733-2 856-2/4 DISK, UNIT 1 + NUM $FFFF 14 1733-2 856-2/4 DISK, UNIT 2 + NUM $FFFF 15 1733-2 856-2/4 DISK, UNIT 3 + NUM $FFFF 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + NUM $FFFF 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + NUM $FFFF 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + NUM $FFFF 19 PSEUDO TAPE, UNIT 1 + NUM $FFFF 20 PSEUDO TAPE, UNIT 2 + NUM $FFFF 21 PSEUDO TAPE, UNIT 3 + NUM $FFFF 22 PSEUDO DISK, UNIT 0 + NUM $FFFF 23 PSEUDO DISK, UNIT 1 + NUM $FFFF 24 PSEUDO DISK, UNIT 2 + NUM $FFFF 25 PSEUDO DISK, UNIT 3 + NUM $FFFF 26 1752 DRUM + NUM $FFFF 27 COSY DRIVER, SECOND UNIT + NUM $FFFF 28 1728-430 CARD READER + NUM $FFFF 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + NUM $FFFF 30 1743-2 COMMUNICATIONS UNIT 0 + NUM $FFFF 31 1743-2 COMMUNICATIONS UNIT 1 + NUM $FFFF 32 1743-2 COMMUNICATIONS UNIT 2 + NUM $FFFF 33 1743-2 COMMUNICATIONS UNIT 3 + NUM $FFFF 34 1743-2 COMMUNICATIONS UNIT 4 + NUM $FFFF 35 1743-2 COMMUNICATIONS UNIT 5 + NUM $FFFF 36 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + NUM $FFFF 37 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + NUM $FFFF 38 DIAGNOSTIC 1742-30/120 LINE PRINTER + NUM $FFFF 39 DIAGNOSTIC 1728-430 READER / PUNCH + NUM $FFFF 40 DIAGNOSTIC 1743-2 COMM. , UNIT 0 + NUM $FFFF 41 DIAGNOSTIC 1743-2 COMM. , UNIT 1 + NUM $FFFF 42 DIAGNOSTIC 1743-2 COMM. , UNIT 2 + NUM $FFFF 43 DIAGNOSTIC 1743-2 COMM. , UNIT 3 + NUM $FFFF 44 DIAGNOSTIC 1743-2 COMM. , UNIT 4 + NUM $FFFF 45 DIAGNOSTIC 1743-2 COMM. , UNIT 5 + NUM $FFFF 46 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* D I A G N O S T I C T A B L E S +* +* + ENT ALTERR ALTERNATE DEVICE ERROR TABLE + SPC 1 +ALTERR ADC NUMLU ERROR TABLE SIZE + BZS (NUMLU) SPACE FOR MAXIMUM SIMULTANEOUS FAILURES + SPC 3 + ENT DGNTAB DIAGNOSTIC TIMER TABLE + SPC 1 +DGNTAB EQU DGNTAB(*) START OF TABLE + ADC PCORE 1 CORE ALLOCATOR + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC P1752 26 1752 DRUM + ADC P1728 28 1728-430 CARD READER + ADC P74300 30 1743-2 COMMUNICATIONS UNIT 0 + ADC P74301 31 1743-2 COMMUNICATIONS UNIT 1 + ADC P74302 32 1743-2 COMMUNICATIONS UNIT 2 + ADC P74303 33 1743-2 COMMUNICATIONS UNIT 3 + ADC P74304 34 1743-2 COMMUNICATIONS UNIT 4 + ADC P74305 35 1743-2 COMMUNICATIONS UNIT 5 + NUM $FFFF END OF TABLE + EJT + SPC 4 +* S T A N D A R D L O G I C A L U N I T S +* + ENT DUMALT +* +DUMALT EQU DUMALT(2) STANDARD DUMMY ALTERNATE +INPCOM EQU INPCOM(4) STANDARD INPUT COMMENT +OUTCOM EQU OUTCOM(4) STANDARD OUTPUT COMMENT +LBUNIT EQU LBUNIT(8) STANDARD LIBRARY UNIT +SCRTCH EQU SCRTCH(8) STANDARD SCRATCH UNIT +LSTOUT EQU LSTOUT(9) STANDARD LIST OUTPUT +STDINP EQU STDINP(10) STANDARD INPUT +BINOUT EQU BINOUT(11) STANDARD BINARY OUTPUT + EJT +* L I N E O N E T A B L E +* + SPC 1 +* + ENT LIN1V4 LINE 1 INTERRUPT ENTRY + SPC 1 +LIN1V4 LDQ* LN1TV4 PLACE THE PDT ADDRESS IN Q + LDA- 2,Q + STA- I + JMP- (I) TRANSFER CONTROL TO THE DRIVER CONTINUATOR + SPC 3 + ENT INVINT + SPC 1 +INVINT JMP- (ADISP) +* + SPC 4 + EQU LN1TV4(*) START OF TABLE + ADC P1711 1711 TELETYPE, 713-10 CRT + NUM $FFFF END OF TABLE + EJT +* P H Y S I C A L D E V I C E T A B L E S +* +* +* THE FOLLOWING SECTION CONTAINS THE PHYSICAL DEVICE TABLES +* AND INTERRUPT RESPONSE ROUTINES FOR EACH LOGICAL UNIT IN +* THE SYSTEM. +* +* LISTED BELOW ARE THE MANDATORY ENTRIES FOR ALL PHYSICAL +* DEVICE TABLES. ADDITIONAL ENTRIES REQUIRED BY EACH +* DRIVER MAY BE ADDED AFTER THE LAST ENTRY INDICATED. + SPC 3 +PHYSTB EQU PHYSTB(*) + EQU ELVL(0) 00 SCHEDULER CALL WITH DRIVER LEVEL + EQU EDIN(1) 01 DRIVER INITIATOR ENTRY + EQU EDCN(2) 02 DRIVER CONTINUATOR ENTRY + EQU EDPGM(3) 03 DRIVER DIAGNOSTIC ENTRY + EQU EDCLK(4) 04 DIAGNOSTIC CLOCK + EQU ELU(5) 05 LOGICAL UNIT + EQU EPTR(6) 06 PARAMETER LOCATION + EQU EWES(7) 07 CONVERTOR, EQUIPMENT, STATION + EQU EREQST(8) 08 REQUEST STATUS + EQU ESTAT1(9) 09 DRIVER STATUS + EQU ECCOR(10) 10 CURRENT LOCATION + EQU ELSTWD(11) 11 LAST LOCATION PLUS ONE + EQU ESTAT2(12) 12 DEVICE STATUS + EQU MASLGN(13) 13 DRIVER LENGTH (IF MASS MEMORY) + EQU MASSEC(14) 14 NAME ASSOCIATED WITH SECTOR NUMBER + EQU RETURN(15) 15 RESERVED FOR FNR AND CMR + SPC 3 +* LINK UNSELECTED PHYSICAL DEVICE TABLES + SPC 1 + ENT P18ECM + ENT P18PGA + ENT P18ADD + ENT P18MXP +P18ECM EQU P18ECM($7FFF) +P18PGA EQU P18PGA($7FFF) +P18ADD EQU P18ADD($7FFF) +P18MXP EQU P18MXP($7FFF) + EJT +* C O R E A L L O C A T O R +* + SPC 1 + ENT PCORE + EXT ICORE,ECORE + EQU SWAPT(0) SWAP TIME + SPC 1 +PCORE ADC $5207 00 SCHEDULER CALL + ADC ICORE 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC ECORE 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $00D6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + VFD X16/SWAPT-1 13 TIME BETWEEN SWAPS (NONE IF NEGATIVE) + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* D U M M Y L O G I C A L U N I T +* + SPC 1 + EXT IDUMMY,CDUMMY,EDUMMY + SPC 1 +PDUMMY ADC $520A 00 SCHEDULER CALL + ADC IDUMMY 01 INITIATOR ADDRESS + ADC CDUMMY 02 CONTINUATOR ADDRESS + ADC EDUMMY 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $01F6 08 REQUEST STATUS + NUM $8000 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* 1 7 1 1 T E L E T Y P E , 7 1 3 - 1 0 C R T +* + SPC 1 + EXT I1711,C1711,E1711 + EQU T713(04*$10) TYPE CODE - 713-10 CRT + EQU T1711(00*$10) TYPE CODE - 1711 TELETYPE + EQU U1711(X1711-LOG1A) + SPC 1 +P1711 ADC $520D 00 SCHEDULER CALL + ADC I1711 01 INITIATOR ADDRESS + ADC C1711 02 CONTINUATOR ADDRESS + ADC E1711 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0091 07 CONVERTER, EQUIPMENT, STATION + ADC $3006+T1711 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR CODE AND STARTING LOCATION + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 DRIVER FLAGS + NUM 1 17 HARDWARE PARITY CHECK FLAG + ADC U1711 18 DIAGNOSTIC LU + EJT +* C O S Y D R I V E R +* + SPC 1 + EQU MCOSY1(1) +* + IFA MCOSY1,EQ,0 CORE RESIDENT DRIVER + EXT ICOSY + EQU LCOSY(0) + EQU SCOSY($7FFF) + EIF +* + IFA MCOSY1,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +ICOSY JMP+ MASDRV INITIATE DRIVER + EXT LCOSY + EXT SCOSY + EIF +* + EJT +* C O S Y D R I V E R , F I R S T U N I T +* + SPC 1 +PCOSY1 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY2 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFA 28 COSY BUFFER LOCATION + ADC INPBFA 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFA(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* C O S Y D R I V E R , S E C O N D U N I T +* + SPC 1 +PCOSY2 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY1 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFB 28 COSY BUFFER LOCATION + ADC INPBFB 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFB(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E +* + SPC 1 + EQU T6167(53*$10) TYPE CODE - 616-72 MAG TAPE + EQU T6169(54*$10) TYPE CODE - 616-92-95 MAG TAPE + EQU PHSREC(192) MAX. PHYSICAL RECORD SIZE FOR 7 TRACK + SPC 2 +BF1F33 BZS BF1F33(PHSREC*4/3+2) PACK/UNPACK BUFFER (7 TRACK) + SPC 1 + EQU M17323(1) +* + IFA M17323,EQ,0 CORE RESIDENT DRIVER + EXT I17323 + EXT C17323 + EXT E17323 + EQU L17323(0) + EQU S17323($7FFF) + EIF +* + IFA M17323,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I17323 JMP+ MASDRV INITIATE DRIVER +C17323 JMP+ MASCON INTERRUPT RESPONSE +E17323 JMP+ MASERR TIMEOUT ERROR + EXT L17323 + EXT S17323 + EIF +* + SPC 2 +R17323 LDQ =XP73230 INTERRUPT RESPONSE FOR 616-72-92-95 MAG TAPE + JMP* (P73230+2) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 0 +* + EQU U73230(X73230-LOG1A) + SPC 1 +P73230 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0448 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73230 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73231 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 1 +* + EQU U73231(X73231-LOG1A) + SPC 1 +P73231 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $04C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73231 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73232 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 2 +* + EQU U73232(X73232-LOG1A) + SPC 1 +P73232 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0548 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73232 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73233 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 3 +* + EQU U73233(X73233-LOG1A) + SPC 1 +P73233 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $05C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73233 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73230 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* P S E U D O T A P E +* + SPC 1 + EQU PSTPD0(1) +* + IFA PSTPD0,EQ,0 CORE RESIDENT DRIVER + EXT IPSUDO + EQU LPSUDO(0) + EQU SPSUDO($7FFF) + EIF +* + IFA PSTPD0,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +IPSUDO JMP+ MASDRV INITIATE DRIVER + EXT LPSUDO + EXT SPSUDO + EIF +* + EJT +* P S E U D O T A P E , U N I T 0 +* + SPC 1 +PSUDO0 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES0 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ0 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES0 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ0) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO1 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 1 +* + SPC 1 +PSUDO1 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES1 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ1 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES1 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ1) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO2 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 2 +* + SPC 1 +PSUDO2 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES2 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF7 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ2 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES2 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ2) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO3 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 3 +* + SPC 1 +PSUDO3 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES3 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF8 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ3 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES3 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ3) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO0 75 PHYSTB THREAD + EJT +* P S E U D O D I S K U N I T 0 +* + SPC 1 + EXT IPSDSK,CPSDSK,EPSDSK + EQU SBIAS0(1) + SPC 1 +PSDSK0 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 8 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS0 25 SECTOR BIAS + ADC SBIAS0*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 1 +* + EQU SBIAS1(1) + SPC 1 +PSDSK1 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 13 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS1 25 SECTOR BIAS + ADC SBIAS1*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 2 +* + EQU SBIAS2(1) + SPC 1 +PSDSK2 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 14 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS2 25 SECTOR BIAS + ADC SBIAS2*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 3 +* + EQU SBIAS3(1) + SPC 1 +PSDSK3 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 15 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS3 25 SECTOR BIAS + ADC SBIAS3*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K +* + SPC 1 + ENT P332D0 + EXT I17332,C17332,E17332 + EQU T8562(15*$10) TYPE CODE - 1733-2 856-2 + EQU T8564(16*$10) TYPE CODE - 1733-2 856-4 + SPC 2 +R17332 LDQ =XP73320 INTERRUPT RESPONSE FOR 1733-2 DISK + JMP* (P73320+2) + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 0 +* + SPC 1 + EQU P332D0(*) +P73320 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8100 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73321 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 1 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332A 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332A(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 1 +* + SPC 1 +P73321 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8300 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73322 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 2 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332B 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332B(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 2 +* + SPC 1 +P73322 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8500 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73323 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 4 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332C 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332C(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 3 +* + SPC 1 +P73323 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8700 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73320 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 8 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332D 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332D(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 5 2 D R U M +* + EXT I1752,C1752,E1752 + SPC 2 +R1752 LDQ =XP1752 INTERRUPT RESPONSE FOR 1752 DRUM + JMP* (P1752+2) + EJT +* 1 7 5 2 D R U M +* + SPC 1 +P1752 ADC $5209 00 SCHEDULER CALL + ADC I1752 01 INITIATOR ADDRESS + ADC C1752 02 CONTINUATOR ADDRESS + ADC E1752 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0101 07 CONVERTER, EQUIPMENT, STATION + NUM $1036 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 SECTOR NUMBER + NUM 0 17 DATA TRANSFER FUNCTION + NUM 0 18 COUNTER + NUM 0 19 FULL SECTOR COUNTER + NUM 0 20 SAVE ECCOR + NUM 0 21 SAVE ELSTWD + NUM 0 22 OVERLAY AREA (SCHEDULER CALL) + NUM 0 23 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 24 OVERLAY AREA (THREAD) + NUM 0 25 OVERLAY AREA (LOGICAL UNIT) + NUM 0 26 UNSUCCESSFUL I/O ATTEMPT COUNTER + NUM 0 27 EQUIPMENT STATUS (ON LAST ERROR) + NUM 0 28 CORE STATUS (ON LAST ERROR) + NUM 0 29 SECTOR STATUS (ON LAST ERROR) + NUM 0 30 DATA STATUS (ON LAST ERROR) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 + EQU T4230(17*$10) TYPE CODE - 1742-30 + EQU T4212(18*$10) TYPE CODE - 1742-120 + EQU U42312(X42312-LOG1A) + EQU F42312(FTN742-LOG1A) + SPC 1 + EQU M42312(1) +* + IFA M42312,EQ,0 CORE RESIDENT DRIVER + EXT I42312 + EXT C42312 + EXT E42312 + EQU L42312(0) + EQU S42312($7FFF) + EIF +* + IFA M42312,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I42312 JMP+ MASDRV INITIATE DRIVER +C42312 JMP+ MASCON INTERRUPT RESPONSE +E42312 JMP+ MASERR TIMEOUT ERROR + EXT L42312 + EXT S42312 + EIF +* + SPC 2 +R42312 LDQ =XP42312 INTERRUPT RESPONSE FOR 1742-30/120 PRINTER + JMP* (P42312+2) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 +P42312 ADC $520A 00 SCHEDULER CALL + ADC I42312 01 INITIATOR ADDRESS + ADC C42312 02 CONTINUATOR ADDRESS + ADC E42312 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0201 07 CONVERTER, EQUIPMENT, STATION + ADC $2804+T4212 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L42312 13 DRIVER LENGTH IF MASS MEMORY + ADC S42312 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 BLANK DETECTION INDICATOR + NUM 0 16 LINE COUNT + NUM 0 17 TEMPORARY STORAGE FOR CONTROL FUNC. + NUM 0 18 CHARACTER COUNT + ADC F42312 19 FORTRAN LOGICAL UNIT + NUM 0 20 NUMBER OF BLANKS TO BE SENT + NUM 60 21 MAXIMUM NUMBER OF LINES PER PAGE + NUM 136 22 NUMBER OF CHARACTERS PER LINE + ADC U42312 23 DIAGNOSTIC LU + EJT +* +* F O R T R A N L I N E P R I N T E R + SPC 2 +* PHYSTB SHARED WITH 1742-30/120 LINE PRINTER + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 + EQU U1728(X1728-LOG1A) + SPC 1 + EQU M1728(1) +* + IFA M1728,EQ,0 CORE RESIDENT DRIVER + EXT I1728 + EXT C1728 + EXT E1728 + EQU L1728(0) + EQU S1728($7FFF) + EIF +* + IFA M1728,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I1728 JMP+ MASDRV INITIATE DRIVER +C1728 JMP+ MASCON INTERRUPT RESPONSE +E1728 JMP+ MASERR TIMEOUT ERROR + EXT L1728 + EXT S1728 + EIF +* + SPC 2 +R1728 LDQ =XP1728 INTERRUPT RESPONSE FOR 1728-430 READ/PUNCH + JMP* (P1728+2) + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 +P1728 ADC $520E 00 SCHEDULER CALL + ADC I1728 01 INITIATOR ADDRESS + ADC C1728 02 CONTINUATOR ADDRESS + ADC E1728 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0521 07 CONVERTER, EQUIPMENT, STATION + NUM $18C6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L1728 13 DRIVER LENGTH IF MASS MEMORY + ADC S1728 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 PACKING CYCLE ADDRESS STORAGE + NUM $800F 16 READ/PUNCH SWITCH, EOF FORMAT (6789) + ADC BUF28 17 FIRST LOCATION OF 80 WORD I / O BUFFER + NUM 0 18 CURRENT CARD BUFFER LOCATION + NUM 0 19 SUBROUTINE RETURN ADDRESS + NUM 0 20 CARD SEQUENCE NUMBER + NUM 0 21 RECORD LENGTH + NUM 0 22 CHECKSUM ACCUMULATOR + NUM 0 23 TEMPORARY STORAGE + NUM 0 24 OUTPUT OFFSET SWITCH + NUM 0 25 ERROR RETURN + NUM 0 26 HOLLERITH ERROR FLAG + ADC U1728 27 DIAGNOSTIC LU +* + BZS BUF28(80) 28 INPUT / OUTPUT BUFFER +* 107 INPUT / OUTPUT BUFFER + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 0 +* + EXT I17432,C17432,E17432 + ENT CABF00 + ENT P74300 + EQU U74300(X74300-LOG1A) + SPC 1 +R17432 LDQ =XP74300 INTERRUPT RESPONSE FOR 1743-2 + JMP* (P74300+2) + SPC 2 +P74300 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0282 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF00 16 START OF BUFFER ADDRESS + ADC U74300 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74300-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF00(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74301 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 1 +* + ENT CABF01 + EQU U74301(X74301-LOG1A) + SPC 1 +P74301 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0292 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF01 16 START OF BUFFER ADDRESS + ADC U74301 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74301-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF01(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74302 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 2 +* + ENT CABF02 + EQU U74302(X74302-LOG1A) + SPC 1 +P74302 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02A2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF02 16 START OF BUFFER ADDRESS + ADC U74302 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74302-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF02(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74303 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 3 +* + ENT CABF03 + EQU U74303(X74303-LOG1A) + SPC 1 +P74303 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02B2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF03 16 START OF BUFFER ADDRESS + ADC U74303 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74303-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF03(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74304 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 4 +* + ENT CABF04 + EQU U74304(X74304-LOG1A) + SPC 1 +P74304 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02C2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF04 16 START OF BUFFER ADDRESS + ADC U74304 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74304-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF04(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74305 75 PHYSTB THREAD + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R , U N I T 5 +* + ENT CABF05 + EQU U74305(X74305-LOG1A) + SPC 1 +P74305 ADC $520A 00 SCHEDULER CALL + ADC I17432 01 INITIATOR ADDRESS + ADC C17432 02 CONTINUATOR ADDRESS + ADC E17432 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $02D2 07 CONVERTER, EQUIPMENT, STATION + NUM $3376 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + ADC 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + ADC CABF05 16 START OF BUFFER ADDRESS + ADC U74305 17 DIAGNOSTIC LOGICAL UNIT + NUM $0000 18 TERMINATION CHARACTERS + NUM 0 19 ERROR CODE STORAGE + NUM $8000 20 TYPE OF I/O - = FULL DUPLEX + NUM $023C 21 OUTPUT/INPUT DIAG CLOCK TIME + NUM $0800 22 MOTION WORD 1 - BACKSPACE RECORD + NUM $1900 23 MOTION WORD 2 - WRITE EOF + NUM 0 24 MOTION WORD 3 - REWIND + NUM $0D00 25 MOTION WORD 4 - REWIND/UNLOAD + NUM $0A00 26 MOTION WORD 5 - ADVANCE FILE + NUM $1A00 27 MOTION WORD 6 - BACKSPACE FILE + NUM $1500 28 MOTION WORD 7 - ADVANCE RECORD + NUM $0000 29 TIMESHARE FLAG AND PRIORITY LEVEL + NUM 40 30 LENGTH OF INPUT BUFFER + ADC 0 31 ENTRY POINT OF INPUT HANDLER + NUM 0 32 CURRENT MOTION WORD + ADC L74305-LOG1A 33 ACTUAL LOGICAL UNIT + BZS CABF05(40) 34 INPUT BUFFER +* 73 INPUT BUFFER + NUM 0 74 INPUT LENGTH + ADC P74300 75 PHYSTB THREAD + EJT +* R E S I D E N T C O R E D A T A +* + ENT LSTLOC + EXT BGNMON + SPC 1 +LSTLOC ADC BGNMON BEGINNING LOCATION OF CORE RESIDENT SYSTEM + SPC 2 +* C O R E A L L O C A T I O N D A T A +* + ENT CALTHD CORE ALLOCATOR THREAD + ENT LVLSTR LEVEL START ALLOCATION TABLE + EXT AREAC START OF ALLOCATABLE AREA + EXT LEND END OF ALLOCATABLE AREA +* +CALTHD ADC 0 TOTAL AVAILABLE ALLOCATABLE CORE + ADC AREAC START OF ALLOCATABLE AREA +* +LVLSTR ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 0 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 1 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 2 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 3 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 4 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 5 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 6 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 7 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 8 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 9 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 10 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 11 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 12 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 13 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 14 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 15 + ADC LEND END OF ALLOCATABLE CORE +* + ENT N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15 + SPC 1 +* NOTE - THE SIZE OF AREAS 1, 2, 3, AND 4 ARE SPECIFIED +* DURING SYSTEM INITIALIZATION +* +N5 EQU N5() NUMBER OF CORE LOCATIONS FOR AREA 5 +N6 EQU N6() NUMBER OF CORE LOCATIONS FOR AREA 6 +N7 EQU N7() NUMBER OF CORE LOCATIONS FOR AREA 7 +N8 EQU N8() NUMBER OF CORE LOCATIONS FOR AREA 8 +N9 EQU N9() NUMBER OF CORE LOCATIONS FOR AREA 9 +N10 EQU N10() NUMBER OF CORE LOCATIONS FOR AREA 10 +N11 EQU N11() NUMBER OF CORE LOCATIONS FOR AREA 11 +N12 EQU N12() NUMBER OF CORE LOCATIONS FOR AREA 12 +N13 EQU N13() NUMBER OF CORE LOCATIONS FOR AREA 13 +N14 EQU N14() NUMBER OF CORE LOCATIONS FOR AREA 14 +N15 EQU N15() NUMBER OF CORE LOCATIONS FOR AREA 15 + EJT +* P A R T I T I O N C O R E D A T A +* + ENT PARTBL,BUSY,DIP,LSTPRT,THDS,USE + SPC 1 + EQU LSTPRT(2) LAST PARTITION IN SYSTEM +* +PARTBL NUM $BF20 STARTING ADDRESS OF PARTITION 0 + NUM $C310 STARTING ADDRESS OF PARTITION 1 + NUM $CAE0 STARTING ADDRESS OF PARTITION 2 + NUM $FFFF STARTING ADDRESS OF PARTITION 3 + NUM $FFFF STARTING ADDRESS OF PARTITION 4 + NUM $FFFF STARTING ADDRESS OF PARTITION 5 + NUM $FFFF STARTING ADDRESS OF PARTITION 6 + NUM $FFFF STARTING ADDRESS OF PARTITION 7 + NUM $FFFF STARTING ADDRESS OF PARTITION 8 + NUM $FFFF STARTING ADDRESS OF PARTITION 9 + NUM $FFFF STARTING ADDRESS OF PARTITION 10 + NUM $FFFF STARTING ADDRESS OF PARTITION 11 + NUM $FFFF STARTING ADDRESS OF PARTITION 12 + NUM $FFFF STARTING ADDRESS OF PARTITION 13 + NUM $FFFF STARTING ADDRESS OF PARTITION 14 + NUM $FFFF STARTING ADDRESS OF PARTITION 15 +* + NUM $FFFF STARTING ADDRESS OF PARTITION 16 - SWAP AREA + SPC 2 +THDS NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 0 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 1 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 2 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 3 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 4 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 5 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 6 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 7 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 8 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 9 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 10 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 11 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 12 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 13 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 14 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 15 +* + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 16 - SWAP + SPC 2 +USE BZS USE(16) PARTITION-IN-USE INDICATORS + SPC 2 +BUSY NUM $FFF8 BUSY INDICATOR - BIT 0 = PARTITION 0 +DIP NUM -0 PARTITION CORE DRIVER ACTIVE INDICATOR + EJT +* S Y S T E M C O M M O N D E C L A R A T I O N +* +* THIS ENTRY SPECIFIES THE AMOUNT OF SYSTEM (BLANK) COMMON + SPC 4 + EQU NCOM($03E8) + SPC 1 +COMMON COM COMMON(NCOM) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* S Y S T E M I D L E L O O P + SPC 2 + ENT IDLE BASIC SYSTEM IDLE LOOP + ENT IDLER SYSTEM IDLE SUBROUTINE + ENT INSTLU SYSTEM INSTALLATION L. U. + SPC 2 +IDLE LDA* STRTUP IS THIS THE INITIAL IDLE ENTRY + SAN IDLE1 NO + RTJ* STRTUP YES, PERFORM STARTUP FUNCTIONS +IDLE1 RTJ* IDLER + JMP* IDLE + SPC 2 + EXT LIBEDT LIBRARY EDIT + EXT RELFLE SYSTEM CORE SWAP ROUTINE + EXT INPTV4 JOB PROCESSOR STANDARD INPUT DEVICE + EQU INSTLU(6) + SPC 1 +STRTUP NUM 0 + LDQ- $EB + ADQ =XLIBEDT OBTAIN THE DIRECTORY ADDRESS OF LIBEDT + LDA- (ZERO),Q HAVE THE REQUEST PRIORITIES BEEN SET UP + SAN STRTP1 YES + LDA =XINSTLU + STA+ INPTV4 SET THE STD. INPUT TO THE INSTALLATION L.U. + JMP* (STRTUP) AND EXIT + SPC 1 +STRTP1 EQU STRTP1(*) +* +* NOTE - ANY ADDITIONAL SYSTEM STARTUP FUNCTIONS +* MAY BE ADDED HERE. +* + RTJ- (AMONI) SCHEDULE RELFLE TO FORCE A SWAP + ADC $5203 + ADC RELFLE + JMP* (STRTUP) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* I N T E R R U P T R E S P O N S E F O R T I M E R +* + ENT TMRTYP,TMCODE TYPE OF SYSTEM TIME BASE + EXT TIMEUP TMINT INTERRUPT ENTRY + EQU X($7FFF) VALUE FOR UNSELECTED ENTRY POINTS + ENT E15761 + EQU E15761(X) LINK UNSELECTED ENTRY POINT + SPC 1 + EQU TMCODE(0) SOFTWARE PSEUDO TIMER +TMRTYP ADC 6 TIME BASE CODE + SPC 2 +CTR NUM 30967 +BASCTR NUM 30967 APPROXIMATION TO 60 CPS + SPC 1 +IDLER NUM 0 + IIN 0 USED AT LEVEL -1 OR LEVEL 2 + SOV 0 + RAO* CTR PSEUDO SYSTEM TIMER + SOV COUNT SKIP IF 1800 LOOPS EXECUTED + EIN 0 + JMP* (IDLER) BACK TO BASIC IDLE LOOP +COUNT LDA* BASCTR INITIALIZE LOOP COUNTER + STA* CTR + LDQ* IDLER SAVE RETURN FOR RE-ENTRANCY IN VOLATILE + RTJ- (AVOLA) GET 3 WORDS VOLATILE STORAGE + NUM 3 + RTJ- (AMONI) + ADC $520D SCHEDULE TMINT AT LEVEL 13 + ADC TIMEUP + IIN 0 + RTJ- (AVOLR) RETURN VOLATILE + JMP- (ZERO),Q RETURN TO IDLE LOOP + SPC 4 +* +* LINK ALL UNSELECTED ENTRY POINTS +* + ENT E1572F,E1572,O1572,E1573,H15721,E15721,D15721,O15721,EQ3644 + ENT F10336,O10336,E10336 + ENT DMICOD,EMPSRT,TBLADR + EQU E1572F(X),E1572(X),O1572(X),E1573(X),H15721(X) + EQU E15721(X),D15721(X),O15721(X),EQ3644(X) + EQU F10336(X),O10336(X),E10336(X) + EQU DMICOD(X),EMPSRT(X),TBLADR(X) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* A / Q C H A N N E L A L L O C A T I O N +* + SPC 2 + ENT RQAQ REQUEST ENTRY FOR A/Q + ENT RLAQ RELEASE ENTRY FOR A/Q + SPC 1 +RQAQ NUM 0 ENTRY USED IF NO A/Q ALLOCATION + IIN 0 + LDQ- I TRANSFER PDT ADDRESS TO Q + EIN 0 + JMP* (RQAQ) RETURN + SPC 1 + EQU RLAQ(RQAQ) EQUATE BOTH ENTRIES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* M A S S R E S I D E N T D R I V E R S B U F F E R +* +* THIS BUFFER WILL CONTAIN THE MASS RESIDENT DRIVER(S) +* WHEN THEY ARE IN CORE. THE SMALLEST ALLOWABLE SIZE IS +* EQUAL TO THE LARGEST MASS RESIDENT DRIVER IN THE SYSTEM. +* OPTIMUM THROUGHPUT REQUIRES SIZING EQUAL TO THE TWO +* LARGEST MASS RESIDENT DRIVERS IN THE SYSTEM. + SPC 2 + ENT BUFF,BUFFE + EQU MBFSZ($A00) + SPC 2 +BUFF BZS BUFF(MBFSZ) + EQU BUFFE(*) + SPC 2 +* C O M M O N G H O S T I N T E R R U P T R O U T I N E + SPC 1 + ENT CGHOST + SPC 1 +CGHOST NOP 0 + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + ENT FMASK,FLIST + EXT E4SAVE + EXT ARGU0 + SPC 1 +FMASK NUM $0070 FORTRAN REENTRANT LEVELS (BIT 0 = LEVEL 0) + SPC 1 +* TABLE OF FORTRAN ENTRY POINTS SAVED TO MAINTAIN REENTRANCY + SPC 1 +* ENTRY POINT PROGRAM DESCRIPTION +* ----------- ------- ---------- + SPC 1 +FLIST ADC FEND + ADC E4SAVE Q8EXPR LOCATION $E4 STORAGE + ADC ARGU0 Q8QIO TEMPORARY STORAGE +FEND EQU FEND(*-FLIST-1) + EJT +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + SPC 4 +* THIS ENTRY IS PROVIDED TO ALLOW COMPATIBILITY BETWEEN THE +* NON-REENTRANT (BACKGROUND) FORTRAN AND REENTRANT FORTRAN + SPC 1 + ENT Q8STP + SPC 1 +Q8STP NOP 0 FORTRAN STOP + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* 1 7 8 1 - 1 H A R D W A R E F L O A T I N G +* +* P O I N T I N F O R M A T I O N +* + SPC 4 +* THESE ENTRIES ALLOW PROPER SYSTEM LINKAGE IF THE 1781-1 +* IS NOT SELECTED. + SPC 2 + ENT E17811,F17811 +E17811 NUM $7FFF + EQU F17811($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* T I M E / D A T E P A R A M E T E R S T O R A G E +* + SPC 3 + ENT AYERTO CURRENT YEAR (ASCII) + ENT AMONTO CURRENT MONTH (ASCII) + ENT ADAYTO CURRENT DAY (ASCII) + ENT YERTO CURRENT YEAR (INTEGER) + ENT MONTO CURRENT MONTH (INTEGER) + ENT DAYTO CURRENT DAY (INTEGER) + ENT HORTO CURRENT HOUR (INTEGER) + ENT MINTO CURRENT MINUTE (INTEGER) + ENT SECON CURRENT SECOND (INTEGER) + ENT CONTA CURRENT COUNT (INTEGER) + ENT HORMIN CURRENT 24-HOUR TIME + ENT TOTMIN CURRENT DAY ELAPSED MINUTES + SPC 3 +AYERTO NUM 0 00 CURRENT YEAR (ASCII) +AMONTO NUM 0 01 CURRENT MONTH (ASCII) +ADAYTO NUM 0 02 CURRENT DAY (ASCII) +YERTO NUM 0 03 CURRENT YEAR (INTEGER) +MONTO NUM 0 04 CURRENT MONTH (INTEGER) +DAYTO NUM 0 05 CURRENT DAY (INTEGER) +HORTO NUM 0 06 CURRENT HOUR (INTEGER) +MINTO NUM 0 07 CURRENT MINUTE (INTEGER) +SECON NUM 0 08 CURRENT SECOND (INTEGER) +CONTA NUM 0 09 CURRENT COUNT (INTEGER) +HORMIN NUM 0 10 CURRENT 24-HOUR TIME +TOTMIN NUM 0 11 CURRENT DAY ELAPSED MINUTES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M T I M E R P A R A M E T E R S + SPC 4 + ENT TIMCPS BASIC SYSTEM CLOCK FREQUENCY + SPC 1 +TIMCPS EQU TIMCPS(60) TIMER CYCLES PER SECOND + SPC 4 + ENT TIMEC TIMER CYCLES PER 1/10 SECOND MINUS 1 + SPC 1 +TIMEC EQU TIMEC(TIMCPS/10-1) + SPC 4 + ENT TODLVL TIME OF DAY(TOD) PROGRAM REQ. CODE + PRIORITY + SPC 1 +TODLVL EQU TODLVL($5006) D-BIT = 1, REQUEST CODE 8, PRIORITY 6 + SPC 4 + ENT NSCHED MAX. NO. OF COMPLETIONS PER TIMER INTERVAL + SPC 1 +NSCHED NUM 5 MAXIMUM 5 COMPLETIONS PER INTERVAL + SPC 4 + ENT TMRLVL DIAGNOSTIC TIMER PRIORITY LEVEL + SPC 1 +TMRLVL EQU TMRLVL(13) LEVEL 13 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M P R O G R A M O V E R L A Y S I Z E S + SPC 2 + ENT LSIZV4 INITIAL OVERLAY SIZE OF LIBEDT + ENT PSIZV4 SIZE OF AREA 3 + ENT ODBSIZ INITIAL OVERLAY SIZE OF ODEBUG + SPC 4 + EQU LSIZV4($4B8) INITIAL OVERLAY SIZE OF LIBEDT + EQU PSIZV4($4B8) SIZE OF AREA 3 + EQU ODBSIZ($369) INITIAL OVERLAY SIZE OF ODEBUG + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S C M M I N C O R E F L A G +* + ENT SCMMLC + SPC 2 +SCMMLC NUM 0 NON-ZERO IF S C M M RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* O N L I N E D E B U G I N C O R E F L A G +* + ENT CHRSFG + SPC 2 +CHRSFG NUM 0 NON-ZERO IF ODEBUG RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M C H E C K O U T P A R A M E T E R S + SPC 4 +* THE STARTING SECTOR OF THE FAILED CORE IMAGE IS SPECIFIED BY +* THE NAME COBOPS. THIS AREA MUST BE SIZED TO ACCOMODATE A +* FAILED IMAGE OF THE SIZE SPECIFIED BY NAME MSIZV4. THE FAILED +* IMAGE MUST RESIDE ON THE LIBRARY MASS MEMORY UNIT. IF THE +* MASS MEMORY LIBRARY UNIT IS A CARTRIDGE DISK, THE IMAGE AREA +* CANNOT OVERLAP FROM ONE PLATTER TO THE OTHER. + SPC 2 + ENT COBOPS +COBOPS EQU COBOPS($5A00) START SECTOR OF FAILED IMAGE + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE NO-FORTRAN DISPATCHER +* ENTRY POINT + SPC 1 + ENT NDISP + SPC 1 + EQU NDISP($7FFF) + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE TIMESHARE PROTECT INTERRUPT +* PROCESSOR ENTRY POINT + SPC 1 + ENT TSIPRC + SPC 1 + EQU TSIPRC($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F I L E M A N A G E R D A T A +* + SPC 2 + ENT FISLU LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + ENT MAXMMA MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + ENT RPTPER REQUEST PROCESSOR TIMEOUT PERIOD + ENT FDTPER FILE/DIRECTORY TIMEOUT PERIOD + ENT FIDSEC FIS DIRECTORY, S SECTOR ADDRESS + ENT FIBLSA SECTOR ADDRESS OF LAST FIS BLOCK + ENT FIBNIX INDEX TO THE NEXT AVAILABLE LOCATION IN FIBLSA + ENT FSLIST START OF FILE SPACE LIST + ENT FSLLTH FILE SPACE LIST LENGTH + ENT FSLEND END OF FILE SPACE LIST + ENT ADRFMS BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 2 + EQU FISLU(LBUNIT) LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + EQU MAXMMA(1) MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + EQU FDTPER(1) FILE/DIRECTORY TIMEOUT PERIOD (1/10 SEC.) + EQU RPTPER(1) REQUEST PROCESSOR TIMEOUT PERIOD (1/10 SEC.) + SPC 2 +ADRFMS ADC $5BFB BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 1 +******** THE FOLLOWING MUST BE IN ORDER ******** +FIDSEC ADC 0 1. FIS DIRECTORY, S SECTOR ADDRESS +FIBLSA ADC 0 2. SECTOR ADDRESS OF THE LAST FIS BLOCK +FIBNIX ADC 0 3. INDEX TO NEXT AVAILABLE LOCATION IN FIBLSA +FSLIST EQU FSLIST(*) 4. START OF FILE SPACE LIST + SPC 1 +******** START OF LOGICAL UNIT ENTRIES ******** + SPC 2 +* L O G I C A L U N I T D A T A , U N I T 0 +* + ENT NUMFS0 + EQU NUMFS0($1F40) NUMBER OF FILE SECTORS - UNIT 0 + SPC 1 +LUE0 VFD X9/LUEL0,X7/LBUNIT LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC 0 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS0 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL0 EQU LUEL0(*-LUE0) + EJT +* L O G I C A L U N I T D A T A , U N I T 1 +* + ENT BEGLU1 + ENT NUMFS1 + EQU LUNIT1(22) LOGICAL UNIT OF FILE MANAGER UNIT 1 + EQU BEGLU1(1) BEGINNING FILE SECTOR - UNIT 1 + EQU NUMFS1($37F5) NUMBER OF FILE SECTORS - UNIT 1 + SPC 1 +LUE1 VFD X9/LUEL1,X7/LUNIT1 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU1 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS1 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL1 EQU LUEL1(*-LUE1) + SPC 2 +FSLLTH EQU FSLLTH(*-FSLIST) FILE SPACE LIST LENGTH + SPC 1 +FSLEND NUM -0 END OF FILE SPACE LIST + EJT +* F I L E M A N A G E R D A T A +* + SPC 2 +* LINK UNSELECTED ENTRY POINTS + SPC 2 + ENT BEGLU2,NUMFS2 + EQU BEGLU2($7FFF),NUMFS2($7FFF) + ENT BEGLU3,NUMFS3 + EQU BEGLU3($7FFF),NUMFS3($7FFF) + ENT BEGLU4,NUMFS4 + EQU BEGLU4($7FFF),NUMFS4($7FFF) + ENT BEGLU5,NUMFS5 + EQU BEGLU5($7FFF),NUMFS5($7FFF) + ENT BEGLU6,NUMFS6 + EQU BEGLU6($7FFF),NUMFS6($7FFF) + ENT BEGLU7,NUMFS7 + EQU BEGLU7($7FFF),NUMFS7($7FFF) + ENT BEGLU8,NUMFS8 + EQU BEGLU8($7FFF),NUMFS8($7FFF) +* +* S O R T - M E R G E L O G I C A L U N I T S +* + SPC 1 + ENT SMCLU1 + ENT SMCLU2 + ENT SMCLU3 + ENT SMCLU4 + SPC 1 +SMCLU1 EQU SMCLU1(8) SORT MERGE L.U. 1 +SMCLU2 EQU SMCLU2(8) SORT MERGE L.U. 2 +SMCLU3 EQU SMCLU3(8) SORT MERGE L.U. 3 +SMCLU4 EQU SMCLU4(8) SORT MERGE L.U. 4 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* J O B P R O C E S S O R F I L E P A R A M E T E R S +* + SPC 3 + ENT JLLUV4 LOGICAL UNIT OF JOB PROCESSOR FILES + ENT JBFLV4 NUMBER OF JOB PROCESSOR FILES + ENT FBASV4 FIRST FILE NUMBER USED BY JOB PROCESSOR + ENT PKEYV4 JOB FILE PURGE KEY + SPC 3 +JLLUV4 ADC LBUNIT LOGICAL UNIT OF JOB PROCESSOR FILES + SPC 2 + EQU JBFLV4(500) NUMBER OF JOB PROCESSOR FILES + SPC 1 + EQU FBASV4($7F2B-JBFLV4) +* +* NOTE - FILES $7FFD THRU $7FFF ARE RESERVED FOR THE MSOS +* VERIFICATION TESTS, FILES $7FF5 THRU $7FFC ARE +* RESERVED FOR FOREGROUND PSEUDO TAPES, FILES $7FF3 +* THRU $7FF4 ARE RESERVED FOR THE TEXT EDITOR, AND +* FILES $7F2B THRU $7FF2 ARE RESERVED FOR RPGII. + SPC 2 + EQU PKEYV4($3030) JOB FILE PURGE KEY + EJT +* P R E S E T R E G I O N +* +* PRESET PROTECTED ENTRY POINTS FOR USE BY UNPROTECTED PGMS +* +APRSET EQU APRSET(*) + ENT JPRET + SPC 2 +* J O B P R O C E S S O R P R E S E T + SPC 2 + EXT JPRETN + ALF 3,JPRETN +JPRET ADC JPRETN JOB PROCESSOR RETURN +* + SPC 2 +* S N A P D U M P P R E S E T + SPC 2 + EXT SNAPOL + ALF 3,SNAPOL + ADC SNAPOL REGISTER SNAPSHOT +* + SPC 2 +* F I L E M A N A G E R P R E S E T S + SPC 2 + EXT DEFFIL + ALF 3,DEFFIL + ADC DEFFIL DEFINE FILE +* + EXT RELFIL + ALF 3,RELFIL + ADC RELFIL RELEASE FILE +* + EXT DEFIDX + ALF 3,DEFIDX + ADC DEFIDX DEFINE INDEXED FILE +* + EXT LOKFIL + ALF 3,LOKFIL + ADC LOKFIL LOCK FILE +* + EXT UNLFIL + ALF 3,UNLFIL + ADC UNLFIL UNLOCK FILE +* + EXT STOSEQ + ALF 3,STOSEQ + ADC STOSEQ STORE SEQUENTIAL RECORD +* + EXT STODIR + ALF 3,STODIR + ADC STODIR STORE DIRECT +* + EXT STOIDX + ALF 3,STOIDX + ADC STOIDX STORE INDEXED RECORD +* + EXT RTVSEQ + ALF 3,RTVSEQ + ADC RTVSEQ RETRIEVE SEQUENTIAL RECORD +* + EXT RTVDIR + ALF 3,RTVDIR + ADC RTVDIR RETRIEVE DIRECT +* + EXT RTVIDX + ALF 3,RTVIDX + ADC RTVIDX RETRIEVE INDEXED RECORD +* + EXT RTVIDO + ALF 3,RTVIDO + ADC RTVIDO RETRIEVE INDEXED-ORDERED RECORD + SPC 2 +* F I L E M A N A G E R F L A G P R E S E T + SPC 2 + EXT FMPFLG + ALF 3,FMPFLG + ADC FMPFLG + SPC 1 +LPRSET EQU LPRSET(*-APRSET) + EJT + SPC 10 +* S Y S T E M L I B R A R Y D I R E C T O R Y +* +* COMPILED FROM *Y, *YM BY SYSTEM INITIALIZER +SLDIRY EQU SLDIRY(*) + END diff --git a/CDC1700/customization/custom3/sysdat.tap b/CDC1700/customization/custom3/sysdat.tap new file mode 100644 index 00000000..58156e96 Binary files /dev/null and b/CDC1700/customization/custom3/sysdat.tap differ diff --git a/CDC1700/customization/custom4/msosCustom4.simh b/CDC1700/customization/custom4/msosCustom4.simh new file mode 100644 index 00000000..04ceabc1 --- /dev/null +++ b/CDC1700/customization/custom4/msosCustom4.simh @@ -0,0 +1,151 @@ +# Script to generate a customized MSOS 5.0 installation tape. +# +# Customizations: +# 1. Set system creation date to 4/19/17 +# 2. Change the system name to "SIMH DEVELOPMENT SYSTEM" +# 3. Reduce file manager devices to CDD0/CDD1 +# 4. Remove the 1743-2 Asynch communication controller support +# +# Requires: +# MSOS5-A.dsk and MSOS5-B.dsk Installation boot disks +# sysdat.tap Modified sysdat.asm as only file on +# the tape (80 char records) +# Installation tape Default is MSOS5_SL136.tap which can +# be copied from bitsavers.org. This can +# be overridden by specifying the +# installation tape on the command line: +# +# cdc1700 msosCustom1.simh install.tap +# +# Creates: +# MSOS5-Install.tap New installation tape. If it already +# exists, it will be overwritten +# Scratch?.tap Tapes for temporary use. If they +# already exist, they will be overwritten +# %DATETIME%.lpt Unique LPT output file for this run +# +set env CDD0=MSOS5-A.dsk +set env CDD1=MSOS5-B.dsk +set env MT0=%1 +if "%MT0%"=="" set env MT0=MSOS5_SL136.tap +set env MT1A=Scratch3.tap +set env MT1B=MSOS5-Install.tap +set env MT2A=sysdat.tap +set env MT2B=Scratch1.tap +set env MT3=Scratch2.tap +set cpu instr=basic +set cpu mode65k,64k +#set throttle 30% +set mt type=1732-3 +set mt3 9track +set lp type=1742 +att lp %DATETIME%.lpt +att cdd0 %CDD0% +att cdd1 %CDD1% +att -r mt0 %MT0% +att mt1 %MT1A% +att -r mt2 %MT2A% +att mt3 %MT3% +set env TODAY=%DATE_MM%%DATE_DD%%DATE_19XX_YY% +# +# The following command will patch out unimplemented devices (1728 card +# reader/punch) +# +expect "SET PROGRAM PROTECT" set cpu protect; d 056D 0649; d 057E 0649; d 0589 0649; c +expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%TODAY%%TIME_HH%%TIME_MM%\r"; c +expect ":00 " send after=1000000,"\007"; c +expect "MI\r\n" send "*BATCH,4\r"; c +expect "J \r\n" send "*JOB\r"; c +expect "J \r\n" send "*K,I17,P16\r"; c +expect "J \r\n" send "*ASSEM\r"; c +expect "J \r\n" send "*MTUP\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,BR1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*REW,17\r"; c +# Use SKED to extract and edit the skeleton file +expect "J \r\n" send "*SKED\r"; c +expect "NEXT\r\n\007" send "ADF,6,1\r"; c +expect "NEXT\r\n\007" send "BUILD,6\r"; c +expect "ENTER LU\r\n\007" send "\r"; goto insert1 +send delay=10000 +autoload cdd +run 0 +goto end + +:insert1 +det mt2 +att -q mt2 %MT2B% +expect "NEXT\r\n\007" send "INSERT,1,4\r"; c +expect "\007" send "*S,SYSMON,$3034\r"; c +expect "\007" send "*S,SYSDAY,$3139\r"; c +expect "\007" send "*S,SYSYER,$3137\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,2,4\r"; c +expect "NEXT\r\n\007" send "INSERT,8,4\r"; c +expect "\007" send "*V SIMH DEVELOPMENT SYSTEM\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,9\r"; c +expect "NEXT\r\n\007" send "DUMP,17\r"; c +expect "NEXT\r\n\007" send "EXIT\r"; c +expect "J \r\n" send "*REW,6,17\r"; c +expect "J \r\n" send "*ADF,6,1\r"; goto libild +continue + +:libild +expect "J \r\n" send delay=5000,"*LIBILD\r"; c +expect "CONTROL LU = \007" send "\r"; c +expect "DEFS LU = \007" send "\r"; c +expect "INSTALL LU = \007" send "18\r"; c +expect "NEWLIB LU = \007" send "\r"; c +expect "LIB 01 LU = \007" send "16\r"; c +expect "LIB 02 LU = \007" send "6\r"; c +expect "LIB 03 LU = \007" send "\r"; c +expect "SKELETON LU = \007" send "17\r"; c +expect "CR WHEN READY. \r\n\007" send "\r"; c +expect "CR WHEN READY \r\n\007" send "\r"; c +expect "OUTPUT LIBRARY LU'S \007" send "*Z\r"; c +expect "J \r\n" send "*REW,6,16\r"; goto mtup +continue + +:mtup +det mt1 +att -q mt1 %MT1B% +expect "J \r\n" send "*mtup\r"; c +expect "NEXT: \007" send "OPEN,O18,NL,U,A,SF0\r"; c +expect "NEXT: \007" send "CLOSE,O18,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF1,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I18,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I18,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*Z\r"; c +continue + +:end diff --git a/CDC1700/customization/custom4/sysdat.asm b/CDC1700/customization/custom4/sysdat.asm new file mode 100644 index 00000000..3e786ff1 --- /dev/null +++ b/CDC1700/customization/custom4/sysdat.asm @@ -0,0 +1,2503 @@ + NAM SYSDAT EXXON DEVELOPMENT SYSTEM SUMMARY-122 +* SYSTEM DATA PROGRAM - MSOS 5.0 +* 1700 MASS STORAGE OPERATING SYSTEM VERSION 5.0 +* SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA +* COPYRIGHT CONTROL DATA CORPORATION 1976 +* +* SIMH DEVELOPMENT SYSTEM +* +* PROGRAM BASE - MSOS 4.3 +* +* S Y S T E M D A T A P R O G R A M +* +* +* TABLE OF CONTENTS +* +* 1. COMMUNICATION EXTERNALS +* +* 2. COMMUNICATION REGION (INCLUDING APPLICATIONS AREA) +* +* 3. INTERRUPT REGION +* +* 4. INTERRUPT MASK TABLE (MASKT) +* +* 5. EXTENDED COMMUNICATIONS REGION +* +* 6. STORAGE STACKS (INTSTK,VOLBLK, SCHSTK) +* +* 7. LOGICAL UNIT TABLES (LOG1A, LOG1, LOG2) +* +* 8. DIAGNOSTIC TABLES (DGNTAB, ALTERR) +* +* 9. STANDARD LOGICAL UNIT DEFINITIONS AND LINE 1 TABLE +* +* 10. PHYSICAL DEVICE TABLES WITH INTERRUPT RESPONSE ROUTINES +* +* 11. CORE ALLOCATION INFORMATION (CALTHD, LVLSTR, NN'S) +* +* 12. CORE PARTITION INFORMATION (PARTBL, THDS, USE) +* +* 13. SYSTEM COMMON DECLARATION +* +* 14. MISCELLANEOUS PROGRAMS +* +* 15. MISCELLANEOUS INFORMATION +* +* 16. SYSTEM FILE INFORMATION +* +* 17. PRESET REGION +* +* 18. START OF SYSTEM DIRECTORY +* + EJT +* C O M M U N I C A T I O N S E X T E R N A L S +* +* + EXT FNR FIND NEXT REQUEST + EXT COMPRQ COMPLETE REQUEST + EXT REQXT REQUEST EXIT + EXT VOLR VOLATILE RELEASE + EXT VOLA VOLATILE ASSIGNMENT + EXT LUABS LOGICAL UNIT ABSOLUTIZING + EXT SABS STARTING ADDRESS ABSOLUTIZING + EXT CABS COMPLETION ADDRESS ABSOLUTIZING + EXT NABS NUMBER OF WORDS ABSOLUTIZING + EXT DISPXX DISPATCHER + EXT MONI MONITOR + EXT MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + EXT IPROC INTERNAL INTERRUPT PROCESSOR + EXT ALLIN COMMON INTERRUPT HANDLER + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG 0 + RTJ SYFAIL GO TO COMMON SYSTEM FAILURE ROUTINE +* +LPMSK NUM 0 LOGICAL PRODUCT MASK TABLE OF ONES +ONE NUM 1 ONE +THREE NUM 3 THREE +SEVEN NUM 7 SEVEN + NUM $F + NUM $1F + NUM $3F + NUM $7F + NUM $FF + NUM $1FF + NUM $3FF + NUM $7FF + NUM $FFF + NUM $1FFF + NUM $3FFF + NUM $7FFF +* +NZERO NUM $FFFF LOGICAL PRODUCT MASK TABLE OF ZEROS (NEG ZERO) + NUM $FFFE + NUM $FFFC + NUM $FFF8 + NUM $FFF0 + NUM $FFE0 + NUM $FFC0 + NUM $FF80 + NUM $FF00 + NUM $FE00 + NUM $FC00 + NUM $F800 + NUM $F000 + NUM $E000 + NUM $C000 + NUM $8000 + EJT +* C O M M U N I C A T I O N R E G I O N +* +ZERO NUM 0 ZERO +* +ONEBIT NUM 1 ONE BIT TABLE +TWO NUM 2 TWO +FOUR NUM 4 FOUR +EIGHT NUM 8 EIGHT + NUM $10 + NUM $20 + NUM $40 + NUM $80 + NUM $100 + NUM $200 + NUM $400 + NUM $800 + NUM $1000 + NUM $2000 + NUM $4000 + NUM $8000 +* +ZROBIT NUM $FFFE ZERO BIT TABLE + NUM $FFFD + NUM $FFFB + NUM $FFF7 + NUM $FFEF + NUM $FFDF + NUM $FFBF + NUM $FF7F + NUM $FEFF + NUM $FDFF + NUM $FBFF + NUM $F7FF + NUM $EFFF + NUM $DFFF + NUM $BFFF + NUM $7FFF +* +FIVE NUM 5 FIVE +SIX NUM 6 SIX +NINE NUM 9 NINE +TEN NUM 10 TEN + EJT +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $47 + NUM 0 $48 + NUM 0 $49 + NUM 0 $4A + NUM 0 $4B + NUM 0 $4C + NUM 0 $4D + NUM 0 $4E + NUM 0 $4F + NUM 0 $50 + NUM 0 $51 + NUM 0 $52 + NUM 0 $53 + NUM 0 $54 + NUM 0 $55 + NUM 0 $56 + NUM 0 $57 + NUM 0 $58 + NUM 0 $59 + NUM 0 $5A + NUM 0 $5B + NUM 0 $5C + NUM 0 $5D + NUM 0 $5E + NUM 0 $5F + NUM 0 $60 + NUM 0 $61 + NUM 0 $62 + NUM 0 $63 + NUM 0 $64 + NUM 0 $65 + NUM 0 $66 + NUM 0 $67 + NUM 0 $68 + NUM 0 $69 + NUM 0 $6A + NUM 0 $6B + NUM 0 $6C + NUM 0 $6D + NUM 0 $6E + NUM 0 $6F + EJT + SPC 4 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $70 + NUM 0 $71 + NUM 0 $72 + NUM 0 $73 + NUM 0 $74 + NUM 0 $75 + NUM 0 $76 + NUM 0 $77 + NUM 0 $78 + NUM 0 $79 + NUM 0 $7A + NUM 0 $7B + NUM 0 $7C + NUM 0 $7D + NUM 0 $7E + NUM 0 $7F + NUM 0 $80 + NUM 0 $81 + NUM 0 $82 + NUM 0 $83 + NUM 0 $84 + NUM 0 $85 + NUM 0 $86 + NUM 0 $87 + NUM 0 $88 + NUM 0 $89 + NUM 0 $8A + NUM 0 $8B + NUM 0 $8C + NUM 0 $8D + NUM 0 $8E + NUM 0 $8F + EJT + SPC 2 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $90 + NUM 0 $91 + NUM 0 $92 + NUM 0 $93 + NUM 0 $94 + NUM 0 $95 + NUM 0 $96 + NUM 0 $97 + NUM 0 $98 + NUM 0 $99 + NUM 0 $9A + NUM 0 $9B + NUM 0 $9C + NUM 0 $9D + NUM 0 $9E + NUM 0 $9F + NUM 0 $A0 + NUM 0 $A1 + NUM 0 $A2 + NUM 0 $A3 + NUM 0 $A4 + NUM 0 $A5 + NUM 0 $A6 + NUM 0 $A7 + NUM 0 $A8 + NUM 0 $A9 + NUM 0 $AA + NUM 0 $AB + NUM 0 $AC + NUM 0 $AD + NUM 0 $AE + NUM 0 $AF + NUM 0 $B0 + NUM 0 $B1 + NUM 0 $B2 + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG $B3 + ADC SCRTCH LOGICAL UNIT OF STANDARD SCRATCH DEVICE + ADC SCHSTK ADR OF TOP OF SCHEDULER STACK +AFNR ADC FNR ADR OF FIND NEXT REQUEST +ACOMPR ADC COMPRQ ADR OF COMPLETE REQUEST + ADC MASKT ADR OF MASK TABLE + ADC INTSTK ADR OF TOP OF INTERRUPT STACK + ADC REQXT ADR OF EXIT FOR MONITOR REQUESTS +AVOLR ADC VOLR ADR OF RELEASE VOLATILE ROUTINE +AVOLA ADC VOLA ADR OF ASSIGN VOLATILE ROUTINE + ADC LUABS ADR OF ABSOLUTIZING ROUTINE FOR LOGICAL UNIT + ADC SABS ADR OF ABSOLUTIZING ROUTINE FOR STARTING ADR + ADC CABS ADR OF ABSOLUTIZING ROUTINE FOR COMPLETION ADR + ADC NABS ADR OF ABSOLUTIZING ROUTINE FOR NUMBER OF WRDS + NUM 0 MSB OF STARTING SCRATCH SECTOR (ALWAYS ZERO) + NUM 0 LSB OF STARTING SCRATCH SECTOR (SET BY SI) + ADC LBUNIT LOGICAL UNIT OF STANDARD LIBRARY DEVICE + NUM 0 MSB OF PGM LIB DIRECTORY SECTOR (ALWAYS ZERO) + NUM 0 LSB OF PGM LIB DIRECTORY SECTOR (SET BY SI) +* + BZS ($E3-$C5+1) RESERVED FOR FTN (UNPROTECTED) + NUM 0 RESERVED FOR FTN + LOAD/GO SECTOR(UNPROTECTED) + NUM 0 RESERVED FOR FTN (UNPROTECTED) +* + BSS (1) LENGTH OF MASS RESIDENT SYSTEM DIR.(SET BY SI) + BSS (1) LENGTH OF CORE RESIDENT SYSTEM DIR.(SET BY SI) + NUM 0 REAL TIME CLOCK COUNTER + ADC EXTBV4 ADDR OF EXTENDED CORE TABLE +ADISP ADC DISPXX ADR OF DISPATCHER + ADC SLDIRY ADR OF SYSTEM DIRECTORY + NUM 0 TEMPORARY TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 TEMPORARY BOTTOM-1 OF UNPROTECTED (SET BY SI) + NUM 0 USED BY JOB PROCESSOR FOR LOADER RETURNS + NUM -1 CURRENT PRIORITY LEVEL + ADC VOLBLK STARTING LOCATION OF VOLATILE STORAGE + ADC LPRSET LENGTH OF PRESETS TABLE + ADC APRSET STARTING LOCATION OF PRESETS TABLE + ADC 0 ADR OF BREAKPOINT PROGRAM IN CORE(UNPROTECTED) +AMONI ADC MONI ADR OF MONITOR ENTRY FOR REQUESTS + ADC MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + NUM 0 TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 BOTTOM-1 OF UNPROTECTED (SET BY SI) + ADC IPROC ADR OF INTERNAL INTERRUPT PROCESSOR + ADC STDINP LOGICAL UNIT OF STANDARD INPUT DEVICE (FTN 1) + ADC BINOUT LOGICAL UNIT OF STANDARD BINARY DEVICE (FTN 2) + ADC LSTOUT LOGICAL UNIT OF STANDARD PRINT DEVICE (FTN 3) + ADC OUTCOM LOGICAL UNIT OF OUTPUT COMMENT DEVICE (FTN 4) + ADC INPCOM LOGICAL UNIT OF INPUT COMMENT DEVICE (FTN 4) + ADC ALLIN ADR OF COMMON INTERRUPT HANDLER + BSS (1) I (MEMORY INDEX) REGISTER (UNPROTECTED) + EJT + SPC 6 +* I N T E R R U P T R E G I O N +* +* +* +LINE00 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($F8) GO TO INTERRUPT HANDLER ROUTINE + NUM 15 PRIORITY LEVEL OF INTERRUPT + ADC IPROC INTERRUPT RESPONSE FOR THE PROTECT/PARITY ERR. +* +LINE01 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 13 PRIORITY LEVEL OF INTERRUPT + ADC LIN1V4 INTERRUPT RESPONSE FOR THE LOW SPEED I / O +* +LINE02 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R1752 INTERRUPT RESPONSE FOR THE 1752 DRUM +* +LINE03 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R17332 INTERRUPT RESPONSE FOR THE 1733-2/856-2/4 DISK +* +LINE04 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R42312 INTERRUPT RESPONSE FOR THE 1742-30/120 PRINTER +* +LINE05 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS +* +LINE06 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE07 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R17323 INTERRUPT RESPONSE FOR THE 1732-3/616 MAG TAPE +* +LINE08 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE09 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE10 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 14 PRIORITY LEVEL OF INTERRUPT + ADC R1728 INTERRUPT RESPONSE FOR THE 1728-430 READ/PNCH +* +LINE11 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE12 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE13 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE14 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE15 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 + EJT +* C O R E R E S I D E N T D E B U G E N T R I E S + SPC 2 + ORG $140 + SPC 1 + EXT COUTV4 + EXT COBOP + SPC 2 + JMP+ COUTV4 OFF-LINE CORE DUMP + SPC 4 + JMP+ COBOP SYSTEM CHECKOUT BOOTSTRAP + EJT +* I N T E R R U P T M A S K T A B L E +* +* + ENT MASKT INTERRUPT MASKS INDEXED BY PRIORITY LEVEL +* +* +* <----------------------------- INTERRUPT LINE NUMBER +* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +* **************************************************** +* P -1 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* R 0 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* I 1 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* O 2 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* R 3 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* I 4 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* T 5 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* Y 6 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* 7 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* L 8 * 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* E 9 * 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 * +* V 10 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* E 11 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* L 12 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* . 13 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 * +* . 14 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 * +* V 15 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * +* **************************************************** +* +* + NUM $049F PRIORITY LEVEL -1 +MASKT NUM $049F PRIORITY LEVEL 00 + NUM $049F PRIORITY LEVEL 01 + NUM $049F PRIORITY LEVEL 02 + NUM $049F PRIORITY LEVEL 03 + NUM $049F PRIORITY LEVEL 04 + NUM $049F PRIORITY LEVEL 05 + NUM $049F PRIORITY LEVEL 06 + NUM $049F PRIORITY LEVEL 07 + NUM $049F PRIORITY LEVEL 08 + NUM $0493 PRIORITY LEVEL 09 + NUM $0403 PRIORITY LEVEL 10 + NUM $0403 PRIORITY LEVEL 11 + NUM $0403 PRIORITY LEVEL 12 + NUM $0401 PRIORITY LEVEL 13 + NUM $0001 PRIORITY LEVEL 14 + NUM $0000 PRIORITY LEVEL 15 + EJT +* E X T E N D E D C O M M U N I C A T I O N S R E G I O N +* +* REFERENCED THRU LOCATION $E9 + SPC 3 + ENT MAXSEC + ENT MPFLAG + ENT MIINP + EXT JFILV4 + EXT RCTV + EXT END0V4 + EXT DATBAS + EXT SECTOR + EQU CSYLST(9) + EQU CSYINP(10) + EQU CSYPUN(11) + EQU SECT1(0) + EQU SECT3(0) + EQU SECT4($5BFA) + SPC 3 +EXTBV4 ADC 0 00 MODE SWITCH 32K=0 65K=1 + ADC CSYINP 01 STANDARD COSY INPUT LU NUMBER + ADC CSYPUN 02 STANDARD COSY OUTPUT LU NUMBER + ADC CSYLST 03 STANDARD COSY LIST LU NUMBER + ADC 0 04 FIRST SECTOR LSB OF SYSTEM CORE IMAGE + ADC 0 05 FIRST SECTOR LSB OF S. A. T. + ADC 0 06 FIRST SECTOR LSB OF CREP TABLE + ADC 0 07 FIRST SECTOR LSB OF CREP1 TABLE + ADC JFILV4 08 FIRST SECTOR LSB OF JOB FILE DIRECTORY + ADC RCTV 09 ADDRESS OF RCTV TABLE IN THE MONITOR + ADC 0 10 UNPROTECTED CORE FLAG 0=PART0 / 1=PART1 + ADC 0 11 UNPROTECTED SWAP ALLOWED 0=YES / 1=NO + ADC AYERTO 12 ADDRESS LOCATION CONTAINING THE YEAR + ADC AMONTO 13 ADDRESS LOCATION CONTAINING THE MONTH + ADC ADAYTO 14 ADDRESS LOCATION CONTAINING THE DAY + ADC END0V4 15 LAST ADDRESS OF PART 0 CORE + ADC 0 16 FIRST ADDRESS OF BLANK (SYSTEM) COMMON + ADC DATBAS 17 FIRST ADDRESS OF LABELED COMMON + ADC 0 18 COSY DRIVER CURRENT PHYSTAB ADDRESS + ADC 0 19 JOB TABLE INITIALIZATION FLAG + ADC 0 20 MASS MEMORY LOCATION OF ENGINEERING FILE + ADC SECT1 21 MSB OF MAXIMUM SCRATCH SECTOR +MAXSEC ADC SECTOR 22 LSB OF MAXIMUM SCRATCH SECTOR + ADC SECT3 23 MSB OF MAXIMUM LIBRARY SECTOR + ADC SECT4 24 LSB OF MAXIMUM LIBRARY SECTOR + ADC 0 25 LAST ADDRESS OF LABELED COMMON + ADC 0 26 UNUSED +MPFLAG ADC 0 27 ZERO IF NOT AN MP SYSTEM + ADC LOG1A 28 ADDRESS OF LOG1A TABLE +MIINP BZS MIINP(40) MANUAL INPUT BUFFER + EJT +* S Y S T E M I D E N T I F I C A T I O N +* + SPC 1 + ENT SYSID + EXT SYSMON MONTH SYSTEM WAS BUILT + EXT SYSDAY DAY SYSTEM WAS BUILT + EXT SYSYER YEAR SYSTEM WAS BUILT + SPC 4 +SYSID ALF 16, SIMH DEVELOPMENT SYSTEM + ADC SYSMON + ADC SYSDAY + ADC SYSYER + SPC 4 +* COMMON SYSTEM FAILURE ROUTINE + SPC 2 + ENT SYFAIL + SPC 1 +SYFAIL NOP 0 + IIN 0 INHIBIT INTERRUPTS + STA* SAVEA SAVE A + STQ* SAVEQ SAVE Q + TRM A MOVE M TO A + STA* SAVEM SAVE M + LDA* SYFAIL PICK UP ADDRESS OF CALLER + INA -2 CORRECT IT FOR 2 WORD RTJ + STA* SYFAIL STORE IT BACK + NUM $18FF HANG + SPC 2 +SAVEA NUM 0 +SAVEQ NUM 0 +SAVEM NUM 0 + EJT +* C O N T R O L P O I N T / B O U N D S R E G I S T E R +* P A R A M E T E R S +* + ENT UBPROT + ENT LBPROT + ENT UPBDTB + ENT LOBDTB + ENT TSCNAC + ENT TSCNMI + ENT SIM200 + ENT CCP + ENT CPSET + SPC + EQU UBPROT($7FFF),LBPROT($7FFF),UPBDTB($7FFF),LOBDTB($7FFF) + EQU TSCNAC($7FFF),TSCNMI($7FFF),SIM200($7FFF) + EQU CCP($7FFF) + SPC 2 +CPSET NUM 0 + JMP* (CPSET) + EJT +* S T O R A G E S T A C K S +* +* +NUMPRI EQU NUMPRI(16) NUMBER OF SYSTEM PRIORITY LEVELS +EXTVOL EQU EXTVOL(00) AMOUNT OF EXTRA VOLATILE STORAGE +* +NFTNLV EQU NFTNLV(3) NUMBER OF REENTRANT FORTRAN LEVELS +NEDLVL EQU NEDLVL(3) NUMBER OF REENTRANT ENCODE/DECODE LEVELS + SPC 3 +* +* I N T E R R U P T S T A C K +* + ENT INTSTK CONTENTS, 1 = Q-REGISTER +* 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = P-REGISTER +* 5 = PRIORITY LEVEL AND OVERFLOW +* INDICATOR (BIT 15) +* +INTSTK BZS INTSTK(5*NUMPRI) + SPC 3 +* +* V O L A T I L E B L O C K S T A C K +* + ENT VOLBLK CONTENTS, 1 = Q-REGISTER + ENT VOLEND 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = USER ASSIGNMENTS +* . +* N = USER ASSIGNMENTS +* +VOLBLK BZS VOLBLK(18*NUMPRI+98*NFTNLV+57*NEDLVL+EXTVOL+1) +VOLEND EQU VOLEND(*) END OF VOLATILE + SPC 3 +* +* S C H E D U L E R / T I M E R S T A C K +* + ENT SCHSTK CONTENTS, 1 = SCHEDULER CALL + ENT SCHLNG 2 = STARTING ADDRESS +* 3 = THREAD TO NEXT CALL +SCHSTK EQU SCHSTK(*) 4 = Q-REGISTER CONTENTS + SPC 1 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 001 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 002 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 003 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 004 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 005 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 006 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 007 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 008 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 009 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 010 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 011 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 012 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 013 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 014 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 015 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 016 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 017 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 018 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 019 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 020 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 021 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 022 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 023 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 024 + ADC 0,0,(-0),0 SCHEDULER STACK ENTRY 025 +SCHLNG EQU SCHLNG(*-SCHSTK) SCHEDULER STACK LENGTH + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 A ) +* +* + ENT LOG1A PHYSICAL DEVICES ADDRESSES BY LOGICAL UNIT + ENT NUMLU + SPC 1 +LOG1A ADC NUMLU NUMBER OF LOGICAL UNITS + ADC PCORE 1 CORE ALLOCATOR + ADC PDUMMY 2 DUMMY LOGICAL UNIT + ADC PDUMMY 3 DUMMY LOGICAL UNIT + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC PCOSY1 5 COSY DRIVER, FIRST UNIT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC PSUDO0 7 PSEUDO TAPE, UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER +X73230 ADC P73230 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC P1728 11 1728-430 CARD PUNCH +FTN742 ADC P42312 12 1742-30/120 FORTRAN LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC PSUDO1 19 PSEUDO TAPE, UNIT 1 + ADC PSUDO2 20 PSEUDO TAPE, UNIT 2 + ADC PSUDO3 21 PSEUDO TAPE, UNIT 3 + ADC PSDSK0 22 PSEUDO DISK, UNIT 0 + ADC PSDSK1 23 PSEUDO DISK, UNIT 1 + ADC PSDSK2 24 PSEUDO DISK, UNIT 2 + ADC PSDSK3 25 PSEUDO DISK, UNIT 3 + ADC P1752 26 1752 DRUM + ADC PCOSY2 27 COSY DRIVER, SECOND UNIT + ADC P1728 28 1728-430 CARD READER +X73231 ADC P73231 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 +X73232 ADC P73232 30 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 +X73233 ADC P73233 31 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 +X42312 ADC P42312 32 DIAGNOSTIC 1742-30/120 LINE PRINTER +X1728 ADC P1728 33 DIAGNOSTIC 1728-430 READER / PUNCH +X1711 ADC P1711 34 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT +NUMLU EQU NUMLU(*-LOG1A-1) + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 ) +* +* + ENT LOG1 LOGICAL UNIT INFORMATION BY LOGICAL UNIT +* BIT 14 = 1, IMPLIES LU SHARES DEVICE +* BIT 13 = 1, IMPLIES LU IS MARKED DOWN +* BITS 0 - 11 IS ALTERNATE LOGICAL UNIT +* ALTERNATE = 0, IMPLIES NONE +S EQU S($4000) SHARED BIT + SPC 1 +LOG1 ADC NUMLU NUMBER OF LOGICAL UNITS + ADC 0 1 CORE ALLOCATOR + ADC 0+S 2 DUMMY LOGICAL UNIT + ADC 0+S 3 DUMMY LOGICAL UNIT + ADC 2+S 4 1711 TELETYPE, 713-10 CRT + ADC 0 5 COSY DRIVER, FIRST UNIT + ADC 0+S 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC 0 7 PSEUDO TAPE, UNIT 0 + ADC 0 8 1733-2 856-2/4 DISK, UNIT 0 + ADC 0+S 9 1742-30/120 LINE PRINTER + ADC 0+S 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC 0+S 11 1728-430 CARD PUNCH + ADC 0+S 12 1742-30/120 FORTRAN LINE PRINTER + ADC 0 13 1733-2 856-2/4 DISK, UNIT 1 + ADC 0 14 1733-2 856-2/4 DISK, UNIT 2 + ADC 0 15 1733-2 856-2/4 DISK, UNIT 3 + ADC 0+S 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC 0+S 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC 0+S 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC 0 19 PSEUDO TAPE, UNIT 1 + ADC 0 20 PSEUDO TAPE, UNIT 2 + ADC 0 21 PSEUDO TAPE, UNIT 3 + ADC 0 22 PSEUDO DISK, UNIT 0 + ADC 0 23 PSEUDO DISK, UNIT 1 + ADC 0 24 PSEUDO DISK, UNIT 2 + ADC 0 25 PSEUDO DISK, UNIT 3 + ADC 0 26 1752 DRUM + ADC 0 27 COSY DRIVER, SECOND UNIT + ADC 0+S 28 1728-430 CARD READER + ADC 0+S 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + ADC 0+S 30 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + ADC 0+S 31 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + ADC 0+S 32 DIAGNOSTIC 1742-30/120 LINE PRINTER + ADC 0+S 33 DIAGNOSTIC 1728-430 READER / PUNCH + ADC 0+S 34 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* L O G I C A L U N I T T A B L E S ( L O G 2 ) +* +* + ENT LOG2 TOP OF I/O THREAD ADDRESSES BY LOGICAL UNIT + SPC 1 +LOG2 ADC NUMLU NUMBER OF LOGICAL UNITS + NUM $FFFF 1 CORE ALLOCATOR + NUM $FFFF 2 DUMMY LOGICAL UNIT + NUM $FFFF 3 DUMMY LOGICAL UNIT + NUM $FFFF 4 1711 TELETYPE, 713-10 CRT + NUM $FFFF 5 COSY DRIVER, FIRST UNIT + NUM $FFFF 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + NUM $FFFF 7 PSEUDO TAPE, UNIT 0 + NUM $FFFF 8 1733-2 856-2/4 DISK, UNIT 0 + NUM $FFFF 9 1742-30/120 LINE PRINTER + NUM $FFFF 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + NUM $FFFF 11 1728-430 CARD PUNCH + NUM $FFFF 12 1742-30/120 FORTRAN LINE PRINTER + NUM $FFFF 13 1733-2 856-2/4 DISK, UNIT 1 + NUM $FFFF 14 1733-2 856-2/4 DISK, UNIT 2 + NUM $FFFF 15 1733-2 856-2/4 DISK, UNIT 3 + NUM $FFFF 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + NUM $FFFF 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + NUM $FFFF 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + NUM $FFFF 19 PSEUDO TAPE, UNIT 1 + NUM $FFFF 20 PSEUDO TAPE, UNIT 2 + NUM $FFFF 21 PSEUDO TAPE, UNIT 3 + NUM $FFFF 22 PSEUDO DISK, UNIT 0 + NUM $FFFF 23 PSEUDO DISK, UNIT 1 + NUM $FFFF 24 PSEUDO DISK, UNIT 2 + NUM $FFFF 25 PSEUDO DISK, UNIT 3 + NUM $FFFF 26 1752 DRUM + NUM $FFFF 27 COSY DRIVER, SECOND UNIT + NUM $FFFF 28 1728-430 CARD READER + NUM $FFFF 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + NUM $FFFF 30 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + NUM $FFFF 31 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + NUM $FFFF 32 DIAGNOSTIC 1742-30/120 LINE PRINTER + NUM $FFFF 33 DIAGNOSTIC 1728-430 READER / PUNCH + NUM $FFFF 34 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* D I A G N O S T I C T A B L E S +* +* + ENT ALTERR ALTERNATE DEVICE ERROR TABLE + SPC 1 +ALTERR ADC NUMLU ERROR TABLE SIZE + BZS (NUMLU) SPACE FOR MAXIMUM SIMULTANEOUS FAILURES + SPC 3 + ENT DGNTAB DIAGNOSTIC TIMER TABLE + SPC 1 +DGNTAB EQU DGNTAB(*) START OF TABLE + ADC PCORE 1 CORE ALLOCATOR + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC P1752 26 1752 DRUM + ADC P1728 28 1728-430 CARD READER + NUM $FFFF END OF TABLE + EJT + SPC 4 +* S T A N D A R D L O G I C A L U N I T S +* + ENT DUMALT +* +DUMALT EQU DUMALT(2) STANDARD DUMMY ALTERNATE +INPCOM EQU INPCOM(4) STANDARD INPUT COMMENT +OUTCOM EQU OUTCOM(4) STANDARD OUTPUT COMMENT +LBUNIT EQU LBUNIT(8) STANDARD LIBRARY UNIT +SCRTCH EQU SCRTCH(8) STANDARD SCRATCH UNIT +LSTOUT EQU LSTOUT(9) STANDARD LIST OUTPUT +STDINP EQU STDINP(10) STANDARD INPUT +BINOUT EQU BINOUT(11) STANDARD BINARY OUTPUT + EJT +* L I N E O N E T A B L E +* + SPC 1 +* + ENT LIN1V4 LINE 1 INTERRUPT ENTRY + SPC 1 +LIN1V4 LDQ* LN1TV4 PLACE THE PDT ADDRESS IN Q + LDA- 2,Q + STA- I + JMP- (I) TRANSFER CONTROL TO THE DRIVER CONTINUATOR + SPC 3 + ENT INVINT + SPC 1 +INVINT JMP- (ADISP) +* + SPC 4 + EQU LN1TV4(*) START OF TABLE + ADC P1711 1711 TELETYPE, 713-10 CRT + NUM $FFFF END OF TABLE + EJT +* P H Y S I C A L D E V I C E T A B L E S +* +* +* THE FOLLOWING SECTION CONTAINS THE PHYSICAL DEVICE TABLES +* AND INTERRUPT RESPONSE ROUTINES FOR EACH LOGICAL UNIT IN +* THE SYSTEM. +* +* LISTED BELOW ARE THE MANDATORY ENTRIES FOR ALL PHYSICAL +* DEVICE TABLES. ADDITIONAL ENTRIES REQUIRED BY EACH +* DRIVER MAY BE ADDED AFTER THE LAST ENTRY INDICATED. + SPC 3 +PHYSTB EQU PHYSTB(*) + EQU ELVL(0) 00 SCHEDULER CALL WITH DRIVER LEVEL + EQU EDIN(1) 01 DRIVER INITIATOR ENTRY + EQU EDCN(2) 02 DRIVER CONTINUATOR ENTRY + EQU EDPGM(3) 03 DRIVER DIAGNOSTIC ENTRY + EQU EDCLK(4) 04 DIAGNOSTIC CLOCK + EQU ELU(5) 05 LOGICAL UNIT + EQU EPTR(6) 06 PARAMETER LOCATION + EQU EWES(7) 07 CONVERTOR, EQUIPMENT, STATION + EQU EREQST(8) 08 REQUEST STATUS + EQU ESTAT1(9) 09 DRIVER STATUS + EQU ECCOR(10) 10 CURRENT LOCATION + EQU ELSTWD(11) 11 LAST LOCATION PLUS ONE + EQU ESTAT2(12) 12 DEVICE STATUS + EQU MASLGN(13) 13 DRIVER LENGTH (IF MASS MEMORY) + EQU MASSEC(14) 14 NAME ASSOCIATED WITH SECTOR NUMBER + EQU RETURN(15) 15 RESERVED FOR FNR AND CMR + SPC 3 +* LINK UNSELECTED PHYSICAL DEVICE TABLES + SPC 1 + ENT P18ECM + ENT P18PGA + ENT P18ADD + ENT P18MXP +P18ECM EQU P18ECM($7FFF) +P18PGA EQU P18PGA($7FFF) +P18ADD EQU P18ADD($7FFF) +P18MXP EQU P18MXP($7FFF) + EJT +* C O R E A L L O C A T O R +* + SPC 1 + ENT PCORE + EXT ICORE,ECORE + EQU SWAPT(0) SWAP TIME + SPC 1 +PCORE ADC $5207 00 SCHEDULER CALL + ADC ICORE 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC ECORE 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $00D6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + VFD X16/SWAPT-1 13 TIME BETWEEN SWAPS (NONE IF NEGATIVE) + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* D U M M Y L O G I C A L U N I T +* + SPC 1 + EXT IDUMMY,CDUMMY,EDUMMY + SPC 1 +PDUMMY ADC $520A 00 SCHEDULER CALL + ADC IDUMMY 01 INITIATOR ADDRESS + ADC CDUMMY 02 CONTINUATOR ADDRESS + ADC EDUMMY 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $01F6 08 REQUEST STATUS + NUM $8000 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* 1 7 1 1 T E L E T Y P E , 7 1 3 - 1 0 C R T +* + SPC 1 + EXT I1711,C1711,E1711 + EQU T713(04*$10) TYPE CODE - 713-10 CRT + EQU T1711(00*$10) TYPE CODE - 1711 TELETYPE + EQU U1711(X1711-LOG1A) + SPC 1 +P1711 ADC $520D 00 SCHEDULER CALL + ADC I1711 01 INITIATOR ADDRESS + ADC C1711 02 CONTINUATOR ADDRESS + ADC E1711 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0091 07 CONVERTER, EQUIPMENT, STATION + ADC $3006+T1711 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR CODE AND STARTING LOCATION + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 DRIVER FLAGS + NUM 1 17 HARDWARE PARITY CHECK FLAG + ADC U1711 18 DIAGNOSTIC LU + EJT +* C O S Y D R I V E R +* + SPC 1 + EQU MCOSY1(1) +* + IFA MCOSY1,EQ,0 CORE RESIDENT DRIVER + EXT ICOSY + EQU LCOSY(0) + EQU SCOSY($7FFF) + EIF +* + IFA MCOSY1,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +ICOSY JMP+ MASDRV INITIATE DRIVER + EXT LCOSY + EXT SCOSY + EIF +* + EJT +* C O S Y D R I V E R , F I R S T U N I T +* + SPC 1 +PCOSY1 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY2 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFA 28 COSY BUFFER LOCATION + ADC INPBFA 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFA(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* C O S Y D R I V E R , S E C O N D U N I T +* + SPC 1 +PCOSY2 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY1 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFB 28 COSY BUFFER LOCATION + ADC INPBFB 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFB(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E +* + SPC 1 + EQU T6167(53*$10) TYPE CODE - 616-72 MAG TAPE + EQU T6169(54*$10) TYPE CODE - 616-92-95 MAG TAPE + EQU PHSREC(192) MAX. PHYSICAL RECORD SIZE FOR 7 TRACK + SPC 2 +BF1F33 BZS BF1F33(PHSREC*4/3+2) PACK/UNPACK BUFFER (7 TRACK) + SPC 1 + EQU M17323(1) +* + IFA M17323,EQ,0 CORE RESIDENT DRIVER + EXT I17323 + EXT C17323 + EXT E17323 + EQU L17323(0) + EQU S17323($7FFF) + EIF +* + IFA M17323,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I17323 JMP+ MASDRV INITIATE DRIVER +C17323 JMP+ MASCON INTERRUPT RESPONSE +E17323 JMP+ MASERR TIMEOUT ERROR + EXT L17323 + EXT S17323 + EIF +* + SPC 2 +R17323 LDQ =XP73230 INTERRUPT RESPONSE FOR 616-72-92-95 MAG TAPE + JMP* (P73230+2) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 0 +* + EQU U73230(X73230-LOG1A) + SPC 1 +P73230 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0448 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73230 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73231 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 1 +* + EQU U73231(X73231-LOG1A) + SPC 1 +P73231 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $04C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73231 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73232 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 2 +* + EQU U73232(X73232-LOG1A) + SPC 1 +P73232 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0548 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73232 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73233 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 3 +* + EQU U73233(X73233-LOG1A) + SPC 1 +P73233 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $05C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73233 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73230 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* P S E U D O T A P E +* + SPC 1 + EQU PSTPD0(1) +* + IFA PSTPD0,EQ,0 CORE RESIDENT DRIVER + EXT IPSUDO + EQU LPSUDO(0) + EQU SPSUDO($7FFF) + EIF +* + IFA PSTPD0,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +IPSUDO JMP+ MASDRV INITIATE DRIVER + EXT LPSUDO + EXT SPSUDO + EIF +* + EJT +* P S E U D O T A P E , U N I T 0 +* + SPC 1 +PSUDO0 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES0 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ0 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES0 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ0) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO1 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 1 +* + SPC 1 +PSUDO1 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES1 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ1 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES1 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ1) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO2 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 2 +* + SPC 1 +PSUDO2 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES2 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF7 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ2 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES2 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ2) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO3 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 3 +* + SPC 1 +PSUDO3 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES3 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF8 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ3 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES3 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ3) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO0 75 PHYSTB THREAD + EJT +* P S E U D O D I S K U N I T 0 +* + SPC 1 + EXT IPSDSK,CPSDSK,EPSDSK + EQU SBIAS0(1) + SPC 1 +PSDSK0 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 8 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS0 25 SECTOR BIAS + ADC SBIAS0*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 1 +* + EQU SBIAS1(1) + SPC 1 +PSDSK1 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 13 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS1 25 SECTOR BIAS + ADC SBIAS1*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 2 +* + EQU SBIAS2(1) + SPC 1 +PSDSK2 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 14 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS2 25 SECTOR BIAS + ADC SBIAS2*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 3 +* + EQU SBIAS3(1) + SPC 1 +PSDSK3 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 15 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS3 25 SECTOR BIAS + ADC SBIAS3*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K +* + SPC 1 + ENT P332D0 + EXT I17332,C17332,E17332 + EQU T8562(15*$10) TYPE CODE - 1733-2 856-2 + EQU T8564(16*$10) TYPE CODE - 1733-2 856-4 + SPC 2 +R17332 LDQ =XP73320 INTERRUPT RESPONSE FOR 1733-2 DISK + JMP* (P73320+2) + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 0 +* + SPC 1 + EQU P332D0(*) +P73320 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8100 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73321 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 1 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332A 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332A(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 1 +* + SPC 1 +P73321 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8300 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73322 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 2 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332B 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332B(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 2 +* + SPC 1 +P73322 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8500 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73323 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 4 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332C 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332C(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 3 +* + SPC 1 +P73323 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8700 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73320 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 8 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332D 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332D(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 5 2 D R U M +* + EXT I1752,C1752,E1752 + SPC 2 +R1752 LDQ =XP1752 INTERRUPT RESPONSE FOR 1752 DRUM + JMP* (P1752+2) + EJT +* 1 7 5 2 D R U M +* + SPC 1 +P1752 ADC $5209 00 SCHEDULER CALL + ADC I1752 01 INITIATOR ADDRESS + ADC C1752 02 CONTINUATOR ADDRESS + ADC E1752 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0101 07 CONVERTER, EQUIPMENT, STATION + NUM $1036 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 SECTOR NUMBER + NUM 0 17 DATA TRANSFER FUNCTION + NUM 0 18 COUNTER + NUM 0 19 FULL SECTOR COUNTER + NUM 0 20 SAVE ECCOR + NUM 0 21 SAVE ELSTWD + NUM 0 22 OVERLAY AREA (SCHEDULER CALL) + NUM 0 23 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 24 OVERLAY AREA (THREAD) + NUM 0 25 OVERLAY AREA (LOGICAL UNIT) + NUM 0 26 UNSUCCESSFUL I/O ATTEMPT COUNTER + NUM 0 27 EQUIPMENT STATUS (ON LAST ERROR) + NUM 0 28 CORE STATUS (ON LAST ERROR) + NUM 0 29 SECTOR STATUS (ON LAST ERROR) + NUM 0 30 DATA STATUS (ON LAST ERROR) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 + EQU T4230(17*$10) TYPE CODE - 1742-30 + EQU T4212(18*$10) TYPE CODE - 1742-120 + EQU U42312(X42312-LOG1A) + EQU F42312(FTN742-LOG1A) + SPC 1 + EQU M42312(1) +* + IFA M42312,EQ,0 CORE RESIDENT DRIVER + EXT I42312 + EXT C42312 + EXT E42312 + EQU L42312(0) + EQU S42312($7FFF) + EIF +* + IFA M42312,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I42312 JMP+ MASDRV INITIATE DRIVER +C42312 JMP+ MASCON INTERRUPT RESPONSE +E42312 JMP+ MASERR TIMEOUT ERROR + EXT L42312 + EXT S42312 + EIF +* + SPC 2 +R42312 LDQ =XP42312 INTERRUPT RESPONSE FOR 1742-30/120 PRINTER + JMP* (P42312+2) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 +P42312 ADC $520A 00 SCHEDULER CALL + ADC I42312 01 INITIATOR ADDRESS + ADC C42312 02 CONTINUATOR ADDRESS + ADC E42312 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0201 07 CONVERTER, EQUIPMENT, STATION + ADC $2804+T4212 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L42312 13 DRIVER LENGTH IF MASS MEMORY + ADC S42312 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 BLANK DETECTION INDICATOR + NUM 0 16 LINE COUNT + NUM 0 17 TEMPORARY STORAGE FOR CONTROL FUNC. + NUM 0 18 CHARACTER COUNT + ADC F42312 19 FORTRAN LOGICAL UNIT + NUM 0 20 NUMBER OF BLANKS TO BE SENT + NUM 60 21 MAXIMUM NUMBER OF LINES PER PAGE + NUM 136 22 NUMBER OF CHARACTERS PER LINE + ADC U42312 23 DIAGNOSTIC LU + EJT +* +* F O R T R A N L I N E P R I N T E R + SPC 2 +* PHYSTB SHARED WITH 1742-30/120 LINE PRINTER + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 + EQU U1728(X1728-LOG1A) + SPC 1 + EQU M1728(1) +* + IFA M1728,EQ,0 CORE RESIDENT DRIVER + EXT I1728 + EXT C1728 + EXT E1728 + EQU L1728(0) + EQU S1728($7FFF) + EIF +* + IFA M1728,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I1728 JMP+ MASDRV INITIATE DRIVER +C1728 JMP+ MASCON INTERRUPT RESPONSE +E1728 JMP+ MASERR TIMEOUT ERROR + EXT L1728 + EXT S1728 + EIF +* + SPC 2 +R1728 LDQ =XP1728 INTERRUPT RESPONSE FOR 1728-430 READ/PUNCH + JMP* (P1728+2) + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 +P1728 ADC $520E 00 SCHEDULER CALL + ADC I1728 01 INITIATOR ADDRESS + ADC C1728 02 CONTINUATOR ADDRESS + ADC E1728 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0521 07 CONVERTER, EQUIPMENT, STATION + NUM $18C6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L1728 13 DRIVER LENGTH IF MASS MEMORY + ADC S1728 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 PACKING CYCLE ADDRESS STORAGE + NUM $800F 16 READ/PUNCH SWITCH, EOF FORMAT (6789) + ADC BUF28 17 FIRST LOCATION OF 80 WORD I / O BUFFER + NUM 0 18 CURRENT CARD BUFFER LOCATION + NUM 0 19 SUBROUTINE RETURN ADDRESS + NUM 0 20 CARD SEQUENCE NUMBER + NUM 0 21 RECORD LENGTH + NUM 0 22 CHECKSUM ACCUMULATOR + NUM 0 23 TEMPORARY STORAGE + NUM 0 24 OUTPUT OFFSET SWITCH + NUM 0 25 ERROR RETURN + NUM 0 26 HOLLERITH ERROR FLAG + ADC U1728 27 DIAGNOSTIC LU +* + BZS BUF28(80) 28 INPUT / OUTPUT BUFFER +* 107 INPUT / OUTPUT BUFFER + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R, U N I T 0 +* +* REMOVED FROM SYSTEM +* + ENT P74300 + EQU P74300($7FFF) + EJT +* R E S I D E N T C O R E D A T A +* + ENT LSTLOC + EXT BGNMON + SPC 1 +LSTLOC ADC BGNMON BEGINNING LOCATION OF CORE RESIDENT SYSTEM + SPC 2 +* C O R E A L L O C A T I O N D A T A +* + ENT CALTHD CORE ALLOCATOR THREAD + ENT LVLSTR LEVEL START ALLOCATION TABLE + EXT AREAC START OF ALLOCATABLE AREA + EXT LEND END OF ALLOCATABLE AREA +* +CALTHD ADC 0 TOTAL AVAILABLE ALLOCATABLE CORE + ADC AREAC START OF ALLOCATABLE AREA +* +LVLSTR ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 0 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 1 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 2 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 3 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 4 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 5 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 6 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 7 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 8 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 9 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 10 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 11 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 12 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 13 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 14 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 15 + ADC LEND END OF ALLOCATABLE CORE +* + ENT N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15 + SPC 1 +* NOTE - THE SIZE OF AREAS 1, 2, 3, AND 4 ARE SPECIFIED +* DURING SYSTEM INITIALIZATION +* +N5 EQU N5() NUMBER OF CORE LOCATIONS FOR AREA 5 +N6 EQU N6() NUMBER OF CORE LOCATIONS FOR AREA 6 +N7 EQU N7() NUMBER OF CORE LOCATIONS FOR AREA 7 +N8 EQU N8() NUMBER OF CORE LOCATIONS FOR AREA 8 +N9 EQU N9() NUMBER OF CORE LOCATIONS FOR AREA 9 +N10 EQU N10() NUMBER OF CORE LOCATIONS FOR AREA 10 +N11 EQU N11() NUMBER OF CORE LOCATIONS FOR AREA 11 +N12 EQU N12() NUMBER OF CORE LOCATIONS FOR AREA 12 +N13 EQU N13() NUMBER OF CORE LOCATIONS FOR AREA 13 +N14 EQU N14() NUMBER OF CORE LOCATIONS FOR AREA 14 +N15 EQU N15() NUMBER OF CORE LOCATIONS FOR AREA 15 + EJT +* P A R T I T I O N C O R E D A T A +* + ENT PARTBL,BUSY,DIP,LSTPRT,THDS,USE + SPC 1 + EQU LSTPRT(2) LAST PARTITION IN SYSTEM +* +PARTBL NUM $BF20 STARTING ADDRESS OF PARTITION 0 + NUM $C310 STARTING ADDRESS OF PARTITION 1 + NUM $CAE0 STARTING ADDRESS OF PARTITION 2 + NUM $FFFF STARTING ADDRESS OF PARTITION 3 + NUM $FFFF STARTING ADDRESS OF PARTITION 4 + NUM $FFFF STARTING ADDRESS OF PARTITION 5 + NUM $FFFF STARTING ADDRESS OF PARTITION 6 + NUM $FFFF STARTING ADDRESS OF PARTITION 7 + NUM $FFFF STARTING ADDRESS OF PARTITION 8 + NUM $FFFF STARTING ADDRESS OF PARTITION 9 + NUM $FFFF STARTING ADDRESS OF PARTITION 10 + NUM $FFFF STARTING ADDRESS OF PARTITION 11 + NUM $FFFF STARTING ADDRESS OF PARTITION 12 + NUM $FFFF STARTING ADDRESS OF PARTITION 13 + NUM $FFFF STARTING ADDRESS OF PARTITION 14 + NUM $FFFF STARTING ADDRESS OF PARTITION 15 +* + NUM $FFFF STARTING ADDRESS OF PARTITION 16 - SWAP AREA + SPC 2 +THDS NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 0 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 1 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 2 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 3 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 4 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 5 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 6 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 7 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 8 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 9 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 10 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 11 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 12 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 13 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 14 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 15 +* + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 16 - SWAP + SPC 2 +USE BZS USE(16) PARTITION-IN-USE INDICATORS + SPC 2 +BUSY NUM $FFF8 BUSY INDICATOR - BIT 0 = PARTITION 0 +DIP NUM -0 PARTITION CORE DRIVER ACTIVE INDICATOR + EJT +* S Y S T E M C O M M O N D E C L A R A T I O N +* +* THIS ENTRY SPECIFIES THE AMOUNT OF SYSTEM (BLANK) COMMON + SPC 4 + EQU NCOM($03E8) + SPC 1 +COMMON COM COMMON(NCOM) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* S Y S T E M I D L E L O O P + SPC 2 + ENT IDLE BASIC SYSTEM IDLE LOOP + ENT IDLER SYSTEM IDLE SUBROUTINE + ENT INSTLU SYSTEM INSTALLATION L. U. + SPC 2 +IDLE LDA* STRTUP IS THIS THE INITIAL IDLE ENTRY + SAN IDLE1 NO + RTJ* STRTUP YES, PERFORM STARTUP FUNCTIONS +IDLE1 RTJ* IDLER + JMP* IDLE + SPC 2 + EXT LIBEDT LIBRARY EDIT + EXT RELFLE SYSTEM CORE SWAP ROUTINE + EXT INPTV4 JOB PROCESSOR STANDARD INPUT DEVICE + EQU INSTLU(6) + SPC 1 +STRTUP NUM 0 + LDQ- $EB + ADQ =XLIBEDT OBTAIN THE DIRECTORY ADDRESS OF LIBEDT + LDA- (ZERO),Q HAVE THE REQUEST PRIORITIES BEEN SET UP + SAN STRTP1 YES + LDA =XINSTLU + STA+ INPTV4 SET THE STD. INPUT TO THE INSTALLATION L.U. + JMP* (STRTUP) AND EXIT + SPC 1 +STRTP1 EQU STRTP1(*) +* +* NOTE - ANY ADDITIONAL SYSTEM STARTUP FUNCTIONS +* MAY BE ADDED HERE. +* + RTJ- (AMONI) SCHEDULE RELFLE TO FORCE A SWAP + ADC $5203 + ADC RELFLE + JMP* (STRTUP) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* I N T E R R U P T R E S P O N S E F O R T I M E R +* + ENT TMRTYP,TMCODE TYPE OF SYSTEM TIME BASE + EXT TIMEUP TMINT INTERRUPT ENTRY + EQU X($7FFF) VALUE FOR UNSELECTED ENTRY POINTS + ENT E15761 + EQU E15761(X) LINK UNSELECTED ENTRY POINT + SPC 1 + EQU TMCODE(0) SOFTWARE PSEUDO TIMER +TMRTYP ADC 6 TIME BASE CODE + SPC 2 +CTR NUM 30967 +BASCTR NUM 30967 APPROXIMATION TO 60 CPS + SPC 1 +IDLER NUM 0 + IIN 0 USED AT LEVEL -1 OR LEVEL 2 + SOV 0 + RAO* CTR PSEUDO SYSTEM TIMER + SOV COUNT SKIP IF 1800 LOOPS EXECUTED + EIN 0 + JMP* (IDLER) BACK TO BASIC IDLE LOOP +COUNT LDA* BASCTR INITIALIZE LOOP COUNTER + STA* CTR + LDQ* IDLER SAVE RETURN FOR RE-ENTRANCY IN VOLATILE + RTJ- (AVOLA) GET 3 WORDS VOLATILE STORAGE + NUM 3 + RTJ- (AMONI) + ADC $520D SCHEDULE TMINT AT LEVEL 13 + ADC TIMEUP + IIN 0 + RTJ- (AVOLR) RETURN VOLATILE + JMP- (ZERO),Q RETURN TO IDLE LOOP + SPC 4 +* +* LINK ALL UNSELECTED ENTRY POINTS +* + ENT E1572F,E1572,O1572,E1573,H15721,E15721,D15721,O15721,EQ3644 + ENT F10336,O10336,E10336 + ENT DMICOD,EMPSRT,TBLADR + EQU E1572F(X),E1572(X),O1572(X),E1573(X),H15721(X) + EQU E15721(X),D15721(X),O15721(X),EQ3644(X) + EQU F10336(X),O10336(X),E10336(X) + EQU DMICOD(X),EMPSRT(X),TBLADR(X) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* A / Q C H A N N E L A L L O C A T I O N +* + SPC 2 + ENT RQAQ REQUEST ENTRY FOR A/Q + ENT RLAQ RELEASE ENTRY FOR A/Q + SPC 1 +RQAQ NUM 0 ENTRY USED IF NO A/Q ALLOCATION + IIN 0 + LDQ- I TRANSFER PDT ADDRESS TO Q + EIN 0 + JMP* (RQAQ) RETURN + SPC 1 + EQU RLAQ(RQAQ) EQUATE BOTH ENTRIES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* M A S S R E S I D E N T D R I V E R S B U F F E R +* +* THIS BUFFER WILL CONTAIN THE MASS RESIDENT DRIVER(S) +* WHEN THEY ARE IN CORE. THE SMALLEST ALLOWABLE SIZE IS +* EQUAL TO THE LARGEST MASS RESIDENT DRIVER IN THE SYSTEM. +* OPTIMUM THROUGHPUT REQUIRES SIZING EQUAL TO THE TWO +* LARGEST MASS RESIDENT DRIVERS IN THE SYSTEM. + SPC 2 + ENT BUFF,BUFFE + EQU MBFSZ($A00) + SPC 2 +BUFF BZS BUFF(MBFSZ) + EQU BUFFE(*) + SPC 2 +* C O M M O N G H O S T I N T E R R U P T R O U T I N E + SPC 1 + ENT CGHOST + SPC 1 +CGHOST NOP 0 + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + ENT FMASK,FLIST + EXT E4SAVE + EXT ARGU0 + SPC 1 +FMASK NUM $0070 FORTRAN REENTRANT LEVELS (BIT 0 = LEVEL 0) + SPC 1 +* TABLE OF FORTRAN ENTRY POINTS SAVED TO MAINTAIN REENTRANCY + SPC 1 +* ENTRY POINT PROGRAM DESCRIPTION +* ----------- ------- ---------- + SPC 1 +FLIST ADC FEND + ADC E4SAVE Q8EXPR LOCATION $E4 STORAGE + ADC ARGU0 Q8QIO TEMPORARY STORAGE +FEND EQU FEND(*-FLIST-1) + EJT +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + SPC 4 +* THIS ENTRY IS PROVIDED TO ALLOW COMPATIBILITY BETWEEN THE +* NON-REENTRANT (BACKGROUND) FORTRAN AND REENTRANT FORTRAN + SPC 1 + ENT Q8STP + SPC 1 +Q8STP NOP 0 FORTRAN STOP + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* 1 7 8 1 - 1 H A R D W A R E F L O A T I N G +* +* P O I N T I N F O R M A T I O N +* + SPC 4 +* THESE ENTRIES ALLOW PROPER SYSTEM LINKAGE IF THE 1781-1 +* IS NOT SELECTED. + SPC 2 + ENT E17811,F17811 +E17811 NUM $7FFF + EQU F17811($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* T I M E / D A T E P A R A M E T E R S T O R A G E +* + SPC 3 + ENT AYERTO CURRENT YEAR (ASCII) + ENT AMONTO CURRENT MONTH (ASCII) + ENT ADAYTO CURRENT DAY (ASCII) + ENT YERTO CURRENT YEAR (INTEGER) + ENT MONTO CURRENT MONTH (INTEGER) + ENT DAYTO CURRENT DAY (INTEGER) + ENT HORTO CURRENT HOUR (INTEGER) + ENT MINTO CURRENT MINUTE (INTEGER) + ENT SECON CURRENT SECOND (INTEGER) + ENT CONTA CURRENT COUNT (INTEGER) + ENT HORMIN CURRENT 24-HOUR TIME + ENT TOTMIN CURRENT DAY ELAPSED MINUTES + SPC 3 +AYERTO NUM 0 00 CURRENT YEAR (ASCII) +AMONTO NUM 0 01 CURRENT MONTH (ASCII) +ADAYTO NUM 0 02 CURRENT DAY (ASCII) +YERTO NUM 0 03 CURRENT YEAR (INTEGER) +MONTO NUM 0 04 CURRENT MONTH (INTEGER) +DAYTO NUM 0 05 CURRENT DAY (INTEGER) +HORTO NUM 0 06 CURRENT HOUR (INTEGER) +MINTO NUM 0 07 CURRENT MINUTE (INTEGER) +SECON NUM 0 08 CURRENT SECOND (INTEGER) +CONTA NUM 0 09 CURRENT COUNT (INTEGER) +HORMIN NUM 0 10 CURRENT 24-HOUR TIME +TOTMIN NUM 0 11 CURRENT DAY ELAPSED MINUTES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M T I M E R P A R A M E T E R S + SPC 4 + ENT TIMCPS BASIC SYSTEM CLOCK FREQUENCY + SPC 1 +TIMCPS EQU TIMCPS(60) TIMER CYCLES PER SECOND + SPC 4 + ENT TIMEC TIMER CYCLES PER 1/10 SECOND MINUS 1 + SPC 1 +TIMEC EQU TIMEC(TIMCPS/10-1) + SPC 4 + ENT TODLVL TIME OF DAY(TOD) PROGRAM REQ. CODE + PRIORITY + SPC 1 +TODLVL EQU TODLVL($5006) D-BIT = 1, REQUEST CODE 8, PRIORITY 6 + SPC 4 + ENT NSCHED MAX. NO. OF COMPLETIONS PER TIMER INTERVAL + SPC 1 +NSCHED NUM 5 MAXIMUM 5 COMPLETIONS PER INTERVAL + SPC 4 + ENT TMRLVL DIAGNOSTIC TIMER PRIORITY LEVEL + SPC 1 +TMRLVL EQU TMRLVL(13) LEVEL 13 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M P R O G R A M O V E R L A Y S I Z E S + SPC 2 + ENT LSIZV4 INITIAL OVERLAY SIZE OF LIBEDT + ENT PSIZV4 SIZE OF AREA 3 + ENT ODBSIZ INITIAL OVERLAY SIZE OF ODEBUG + SPC 4 + EQU LSIZV4($4B8) INITIAL OVERLAY SIZE OF LIBEDT + EQU PSIZV4($4B8) SIZE OF AREA 3 + EQU ODBSIZ($369) INITIAL OVERLAY SIZE OF ODEBUG + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S C M M I N C O R E F L A G +* + ENT SCMMLC + SPC 2 +SCMMLC NUM 0 NON-ZERO IF S C M M RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* O N L I N E D E B U G I N C O R E F L A G +* + ENT CHRSFG + SPC 2 +CHRSFG NUM 0 NON-ZERO IF ODEBUG RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M C H E C K O U T P A R A M E T E R S + SPC 4 +* THE STARTING SECTOR OF THE FAILED CORE IMAGE IS SPECIFIED BY +* THE NAME COBOPS. THIS AREA MUST BE SIZED TO ACCOMODATE A +* FAILED IMAGE OF THE SIZE SPECIFIED BY NAME MSIZV4. THE FAILED +* IMAGE MUST RESIDE ON THE LIBRARY MASS MEMORY UNIT. IF THE +* MASS MEMORY LIBRARY UNIT IS A CARTRIDGE DISK, THE IMAGE AREA +* CANNOT OVERLAP FROM ONE PLATTER TO THE OTHER. + SPC 2 + ENT COBOPS +COBOPS EQU COBOPS($5A00) START SECTOR OF FAILED IMAGE + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE NO-FORTRAN DISPATCHER +* ENTRY POINT + SPC 1 + ENT NDISP + SPC 1 + EQU NDISP($7FFF) + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE TIMESHARE PROTECT INTERRUPT +* PROCESSOR ENTRY POINT + SPC 1 + ENT TSIPRC + SPC 1 + EQU TSIPRC($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F I L E M A N A G E R D A T A +* + SPC 2 + ENT FISLU LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + ENT MAXMMA MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + ENT RPTPER REQUEST PROCESSOR TIMEOUT PERIOD + ENT FDTPER FILE/DIRECTORY TIMEOUT PERIOD + ENT FIDSEC FIS DIRECTORY, S SECTOR ADDRESS + ENT FIBLSA SECTOR ADDRESS OF LAST FIS BLOCK + ENT FIBNIX INDEX TO THE NEXT AVAILABLE LOCATION IN FIBLSA + ENT FSLIST START OF FILE SPACE LIST + ENT FSLLTH FILE SPACE LIST LENGTH + ENT FSLEND END OF FILE SPACE LIST + ENT ADRFMS BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 2 + EQU FISLU(LBUNIT) LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + EQU MAXMMA(1) MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + EQU FDTPER(1) FILE/DIRECTORY TIMEOUT PERIOD (1/10 SEC.) + EQU RPTPER(1) REQUEST PROCESSOR TIMEOUT PERIOD (1/10 SEC.) + SPC 2 +ADRFMS ADC $5BFB BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 1 +******** THE FOLLOWING MUST BE IN ORDER ******** +FIDSEC ADC 0 1. FIS DIRECTORY, S SECTOR ADDRESS +FIBLSA ADC 0 2. SECTOR ADDRESS OF THE LAST FIS BLOCK +FIBNIX ADC 0 3. INDEX TO NEXT AVAILABLE LOCATION IN FIBLSA +FSLIST EQU FSLIST(*) 4. START OF FILE SPACE LIST + SPC 1 +******** START OF LOGICAL UNIT ENTRIES ******** + SPC 2 +* L O G I C A L U N I T D A T A , U N I T 0 +* + ENT NUMFS0 + EQU NUMFS0($1F40) NUMBER OF FILE SECTORS - UNIT 0 + SPC 1 +LUE0 VFD X9/LUEL0,X7/LBUNIT LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC 0 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS0 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL0 EQU LUEL0(*-LUE0) + EJT +* L O G I C A L U N I T D A T A , U N I T 1 +* + ENT BEGLU1 + ENT NUMFS1 + EQU LUNIT1(22) LOGICAL UNIT OF FILE MANAGER UNIT 1 + EQU BEGLU1(1) BEGINNING FILE SECTOR - UNIT 1 + EQU NUMFS1($37F5) NUMBER OF FILE SECTORS - UNIT 1 + SPC 1 +LUE1 VFD X9/LUEL1,X7/LUNIT1 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU1 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS1 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL1 EQU LUEL1(*-LUE1) + SPC 2 +FSLLTH EQU FSLLTH(*-FSLIST) FILE SPACE LIST LENGTH + SPC 1 +FSLEND NUM -0 END OF FILE SPACE LIST + EJT +* F I L E M A N A G E R D A T A +* + SPC 2 +* LINK UNSELECTED ENTRY POINTS + SPC 2 + ENT BEGLU2,NUMFS2 + EQU BEGLU2($7FFF),NUMFS2($7FFF) + ENT BEGLU3,NUMFS3 + EQU BEGLU3($7FFF),NUMFS3($7FFF) + ENT BEGLU4,NUMFS4 + EQU BEGLU4($7FFF),NUMFS4($7FFF) + ENT BEGLU5,NUMFS5 + EQU BEGLU5($7FFF),NUMFS5($7FFF) + ENT BEGLU6,NUMFS6 + EQU BEGLU6($7FFF),NUMFS6($7FFF) + ENT BEGLU7,NUMFS7 + EQU BEGLU7($7FFF),NUMFS7($7FFF) + ENT BEGLU8,NUMFS8 + EQU BEGLU8($7FFF),NUMFS8($7FFF) +* +* S O R T - M E R G E L O G I C A L U N I T S +* + SPC 1 + ENT SMCLU1 + ENT SMCLU2 + ENT SMCLU3 + ENT SMCLU4 + SPC 1 +SMCLU1 EQU SMCLU1(8) SORT MERGE L.U. 1 +SMCLU2 EQU SMCLU2(8) SORT MERGE L.U. 2 +SMCLU3 EQU SMCLU3(8) SORT MERGE L.U. 3 +SMCLU4 EQU SMCLU4(8) SORT MERGE L.U. 4 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* J O B P R O C E S S O R F I L E P A R A M E T E R S +* + SPC 3 + ENT JLLUV4 LOGICAL UNIT OF JOB PROCESSOR FILES + ENT JBFLV4 NUMBER OF JOB PROCESSOR FILES + ENT FBASV4 FIRST FILE NUMBER USED BY JOB PROCESSOR + ENT PKEYV4 JOB FILE PURGE KEY + SPC 3 +JLLUV4 ADC LBUNIT LOGICAL UNIT OF JOB PROCESSOR FILES + SPC 2 + EQU JBFLV4(500) NUMBER OF JOB PROCESSOR FILES + SPC 1 + EQU FBASV4($7F2B-JBFLV4) +* +* NOTE - FILES $7FFD THRU $7FFF ARE RESERVED FOR THE MSOS +* VERIFICATION TESTS, FILES $7FF5 THRU $7FFC ARE +* RESERVED FOR FOREGROUND PSEUDO TAPES, FILES $7FF3 +* THRU $7FF4 ARE RESERVED FOR THE TEXT EDITOR, AND +* FILES $7F2B THRU $7FF2 ARE RESERVED FOR RPGII. + SPC 2 + EQU PKEYV4($3030) JOB FILE PURGE KEY + EJT +* P R E S E T R E G I O N +* +* PRESET PROTECTED ENTRY POINTS FOR USE BY UNPROTECTED PGMS +* +APRSET EQU APRSET(*) + ENT JPRET + SPC 2 +* J O B P R O C E S S O R P R E S E T + SPC 2 + EXT JPRETN + ALF 3,JPRETN +JPRET ADC JPRETN JOB PROCESSOR RETURN +* + SPC 2 +* S N A P D U M P P R E S E T + SPC 2 + EXT SNAPOL + ALF 3,SNAPOL + ADC SNAPOL REGISTER SNAPSHOT +* + SPC 2 +* F I L E M A N A G E R P R E S E T S + SPC 2 + EXT DEFFIL + ALF 3,DEFFIL + ADC DEFFIL DEFINE FILE +* + EXT RELFIL + ALF 3,RELFIL + ADC RELFIL RELEASE FILE +* + EXT DEFIDX + ALF 3,DEFIDX + ADC DEFIDX DEFINE INDEXED FILE +* + EXT LOKFIL + ALF 3,LOKFIL + ADC LOKFIL LOCK FILE +* + EXT UNLFIL + ALF 3,UNLFIL + ADC UNLFIL UNLOCK FILE +* + EXT STOSEQ + ALF 3,STOSEQ + ADC STOSEQ STORE SEQUENTIAL RECORD +* + EXT STODIR + ALF 3,STODIR + ADC STODIR STORE DIRECT +* + EXT STOIDX + ALF 3,STOIDX + ADC STOIDX STORE INDEXED RECORD +* + EXT RTVSEQ + ALF 3,RTVSEQ + ADC RTVSEQ RETRIEVE SEQUENTIAL RECORD +* + EXT RTVDIR + ALF 3,RTVDIR + ADC RTVDIR RETRIEVE DIRECT +* + EXT RTVIDX + ALF 3,RTVIDX + ADC RTVIDX RETRIEVE INDEXED RECORD +* + EXT RTVIDO + ALF 3,RTVIDO + ADC RTVIDO RETRIEVE INDEXED-ORDERED RECORD + SPC 2 +* F I L E M A N A G E R F L A G P R E S E T + SPC 2 + EXT FMPFLG + ALF 3,FMPFLG + ADC FMPFLG + SPC 1 +LPRSET EQU LPRSET(*-APRSET) + EJT + SPC 10 +* S Y S T E M L I B R A R Y D I R E C T O R Y +* +* COMPILED FROM *Y, *YM BY SYSTEM INITIALIZER +SLDIRY EQU SLDIRY(*) + END diff --git a/CDC1700/customization/custom4/sysdat.tap b/CDC1700/customization/custom4/sysdat.tap new file mode 100644 index 00000000..34118aaf Binary files /dev/null and b/CDC1700/customization/custom4/sysdat.tap differ diff --git a/CDC1700/customization/custom5/msosCustom5.simh b/CDC1700/customization/custom5/msosCustom5.simh new file mode 100644 index 00000000..8cc0b593 --- /dev/null +++ b/CDC1700/customization/custom5/msosCustom5.simh @@ -0,0 +1,152 @@ +# Script to generate a customized MSOS 5.0 installation tape. +# +# Customizations: +# 1. Set system creation date to 4/19/17 +# 2. Change the system name to "SIMH DEVELOPMENT SYSTEM" +# 3. Reduce file manager devices to CDD0/CDD1 +# 4. Remove the 1743-2 Asynch communication controller support +# 5. Add 10336 real-time clock +# +# Requires: +# MSOS5-A.dsk and MSOS5-B.dsk Installation boot disks +# sysdat.tap Modified sysdat.asm as only file on +# the tape (80 char records) +# Installation tape Default is MSOS5_SL136.tap which can +# be copied from bitsavers.org. This can +# be overridden by specifying the +# installation tape on the command line: +# +# cdc1700 msosCustom1.simh install.tap +# +# Creates: +# MSOS5-Install.tap New installation tape. If it already +# exists, it will be overwritten +# Scratch?.tap Tapes for temporary use. If they +# already exist, they will be overwritten +# %DATETIME%.lpt Unique LPT output file for this run +# +set env CDD0=MSOS5-A.dsk +set env CDD1=MSOS5-B.dsk +set env MT0=%1 +if "%MT0%"=="" set env MT0=MSOS5_SL136.tap +set env MT1A=Scratch3.tap +set env MT1B=MSOS5-Install.tap +set env MT2A=sysdat.tap +set env MT2B=Scratch1.tap +set env MT3=Scratch2.tap +set cpu instr=basic +set cpu mode65k,64k +#set throttle 30% +set mt type=1732-3 +set mt3 9track +set lp type=1742 +att lp %DATETIME%.lpt +att cdd0 %CDD0% +att cdd1 %CDD1% +att -r mt0 %MT0% +att mt1 %MT1A% +att -r mt2 %MT2A% +att mt3 %MT3% +set env TODAY=%DATE_MM%%DATE_DD%%DATE_19XX_YY% +# +# The following command will patch out unimplemented devices (1728 card +# reader/punch) +# +expect "SET PROGRAM PROTECT" set cpu protect; d 056D 0649; d 057E 0649; d 0589 0649; c +expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%TODAY%%TIME_HH%%TIME_MM%\r"; c +expect ":00 " send after=1000000,"\007"; c +expect "MI\r\n" send "*BATCH,4\r"; c +expect "J \r\n" send "*JOB\r"; c +expect "J \r\n" send "*K,I17,P16\r"; c +expect "J \r\n" send "*ASSEM\r"; c +expect "J \r\n" send "*MTUP\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,BR1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*REW,17\r"; c +# Use SKED to extract and edit the skeleton file +expect "J \r\n" send "*SKED\r"; c +expect "NEXT\r\n\007" send "ADF,6,1\r"; c +expect "NEXT\r\n\007" send "BUILD,6\r"; c +expect "ENTER LU\r\n\007" send "\r"; goto insert1 +send delay=10000 +autoload cdd +run 0 +goto end + +:insert1 +det mt2 +att -q mt2 %MT2B% +expect "NEXT\r\n\007" send "INSERT,1,4\r"; c +expect "\007" send "*S,SYSMON,$3034\r"; c +expect "\007" send "*S,SYSDAY,$3139\r"; c +expect "\007" send "*S,SYSYER,$3137\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,2,4\r"; c +expect "NEXT\r\n\007" send "INSERT,8,4\r"; c +expect "\007" send "*V SIMH DEVELOPMENT SYSTEM\r"; c +expect "\007" send "\r"; c +expect "NEXT\r\n\007" send "DELETE,9\r"; c +expect "NEXT\r\n\007" send "DUMP,17\r"; c +expect "NEXT\r\n\007" send "EXIT\r"; c +expect "J \r\n" send "*REW,6,17\r"; c +expect "J \r\n" send "*ADF,6,1\r"; goto libild +continue + +:libild +expect "J \r\n" send delay=5000,"*LIBILD\r"; c +expect "CONTROL LU = \007" send "\r"; c +expect "DEFS LU = \007" send "\r"; c +expect "INSTALL LU = \007" send "18\r"; c +expect "NEWLIB LU = \007" send "\r"; c +expect "LIB 01 LU = \007" send "16\r"; c +expect "LIB 02 LU = \007" send "6\r"; c +expect "LIB 03 LU = \007" send "\r"; c +expect "SKELETON LU = \007" send "17\r"; c +expect "CR WHEN READY. \r\n\007" send "\r"; c +expect "CR WHEN READY \r\n\007" send "\r"; c +expect "OUTPUT LIBRARY LU'S \007" send "*Z\r"; c +expect "J \r\n" send "*REW,6,16\r"; goto mtup +continue + +:mtup +det mt1 +att -q mt1 %MT1B% +expect "J \r\n" send "*mtup\r"; c +expect "NEXT: \007" send "OPEN,O18,NL,U,A,SF0\r"; c +expect "NEXT: \007" send "CLOSE,O18,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF1,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,I18,NL,U,A,SF0,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I18,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF2,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF3,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF4,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "OPEN,I6,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "OPEN,O16,NL,U,A,SF5,,LB13000\r"; c +expect "NEXT: \007" send "COPY,FC1\r"; c +expect "NEXT: \007" send "CLOSE,O16,RW\r"; c +expect "NEXT: \007" send "CLOSE,I6,RW\r"; c +expect "NEXT: \007" send "EXIT\r"; c +expect "J \r\n" send "*Z\r"; c +continue + +:end diff --git a/CDC1700/customization/custom5/sysdat.asm b/CDC1700/customization/custom5/sysdat.asm new file mode 100644 index 00000000..b460620a --- /dev/null +++ b/CDC1700/customization/custom5/sysdat.asm @@ -0,0 +1,2497 @@ + NAM SYSDAT EXXON DEVELOPMENT SYSTEM SUMMARY-122 +* SYSTEM DATA PROGRAM - MSOS 5.0 +* 1700 MASS STORAGE OPERATING SYSTEM VERSION 5.0 +* SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA +* COPYRIGHT CONTROL DATA CORPORATION 1976 +* +* SIMH DEVELOPMENT SYSTEM +* +* PROGRAM BASE - MSOS 4.3 +* +* S Y S T E M D A T A P R O G R A M +* +* +* TABLE OF CONTENTS +* +* 1. COMMUNICATION EXTERNALS +* +* 2. COMMUNICATION REGION (INCLUDING APPLICATIONS AREA) +* +* 3. INTERRUPT REGION +* +* 4. INTERRUPT MASK TABLE (MASKT) +* +* 5. EXTENDED COMMUNICATIONS REGION +* +* 6. STORAGE STACKS (INTSTK,VOLBLK, SCHSTK) +* +* 7. LOGICAL UNIT TABLES (LOG1A, LOG1, LOG2) +* +* 8. DIAGNOSTIC TABLES (DGNTAB, ALTERR) +* +* 9. STANDARD LOGICAL UNIT DEFINITIONS AND LINE 1 TABLE +* +* 10. PHYSICAL DEVICE TABLES WITH INTERRUPT RESPONSE ROUTINES +* +* 11. CORE ALLOCATION INFORMATION (CALTHD, LVLSTR, NN'S) +* +* 12. CORE PARTITION INFORMATION (PARTBL, THDS, USE) +* +* 13. SYSTEM COMMON DECLARATION +* +* 14. MISCELLANEOUS PROGRAMS +* +* 15. MISCELLANEOUS INFORMATION +* +* 16. SYSTEM FILE INFORMATION +* +* 17. PRESET REGION +* +* 18. START OF SYSTEM DIRECTORY +* + EJT +* C O M M U N I C A T I O N S E X T E R N A L S +* +* + EXT FNR FIND NEXT REQUEST + EXT COMPRQ COMPLETE REQUEST + EXT REQXT REQUEST EXIT + EXT VOLR VOLATILE RELEASE + EXT VOLA VOLATILE ASSIGNMENT + EXT LUABS LOGICAL UNIT ABSOLUTIZING + EXT SABS STARTING ADDRESS ABSOLUTIZING + EXT CABS COMPLETION ADDRESS ABSOLUTIZING + EXT NABS NUMBER OF WORDS ABSOLUTIZING + EXT DISPXX DISPATCHER + EXT MONI MONITOR + EXT MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + EXT IPROC INTERNAL INTERRUPT PROCESSOR + EXT ALLIN COMMON INTERRUPT HANDLER + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG 0 + RTJ SYFAIL GO TO COMMON SYSTEM FAILURE ROUTINE +* +LPMSK NUM 0 LOGICAL PRODUCT MASK TABLE OF ONES +ONE NUM 1 ONE +THREE NUM 3 THREE +SEVEN NUM 7 SEVEN + NUM $F + NUM $1F + NUM $3F + NUM $7F + NUM $FF + NUM $1FF + NUM $3FF + NUM $7FF + NUM $FFF + NUM $1FFF + NUM $3FFF + NUM $7FFF +* +NZERO NUM $FFFF LOGICAL PRODUCT MASK TABLE OF ZEROS (NEG ZERO) + NUM $FFFE + NUM $FFFC + NUM $FFF8 + NUM $FFF0 + NUM $FFE0 + NUM $FFC0 + NUM $FF80 + NUM $FF00 + NUM $FE00 + NUM $FC00 + NUM $F800 + NUM $F000 + NUM $E000 + NUM $C000 + NUM $8000 + EJT +* C O M M U N I C A T I O N R E G I O N +* +ZERO NUM 0 ZERO +* +ONEBIT NUM 1 ONE BIT TABLE +TWO NUM 2 TWO +FOUR NUM 4 FOUR +EIGHT NUM 8 EIGHT + NUM $10 + NUM $20 + NUM $40 + NUM $80 + NUM $100 + NUM $200 + NUM $400 + NUM $800 + NUM $1000 + NUM $2000 + NUM $4000 + NUM $8000 +* +ZROBIT NUM $FFFE ZERO BIT TABLE + NUM $FFFD + NUM $FFFB + NUM $FFF7 + NUM $FFEF + NUM $FFDF + NUM $FFBF + NUM $FF7F + NUM $FEFF + NUM $FDFF + NUM $FBFF + NUM $F7FF + NUM $EFFF + NUM $DFFF + NUM $BFFF + NUM $7FFF +* +FIVE NUM 5 FIVE +SIX NUM 6 SIX +NINE NUM 9 NINE +TEN NUM 10 TEN + EJT +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $47 + NUM 0 $48 + NUM 0 $49 + NUM 0 $4A + NUM 0 $4B + NUM 0 $4C + NUM 0 $4D + NUM 0 $4E + NUM 0 $4F + NUM 0 $50 + NUM 0 $51 + NUM 0 $52 + NUM 0 $53 + NUM 0 $54 + NUM 0 $55 + NUM 0 $56 + NUM 0 $57 + NUM 0 $58 + NUM 0 $59 + NUM 0 $5A + NUM 0 $5B + NUM 0 $5C + NUM 0 $5D + NUM 0 $5E + NUM 0 $5F + NUM 0 $60 + NUM 0 $61 + NUM 0 $62 + NUM 0 $63 + NUM 0 $64 + NUM 0 $65 + NUM 0 $66 + NUM 0 $67 + NUM 0 $68 + NUM 0 $69 + NUM 0 $6A + NUM 0 $6B + NUM 0 $6C + NUM 0 $6D + NUM 0 $6E + NUM 0 $6F + EJT + SPC 4 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $70 + NUM 0 $71 + NUM 0 $72 + NUM 0 $73 + NUM 0 $74 + NUM 0 $75 + NUM 0 $76 + NUM 0 $77 + NUM 0 $78 + NUM 0 $79 + NUM 0 $7A + NUM 0 $7B + NUM 0 $7C + NUM 0 $7D + NUM 0 $7E + NUM 0 $7F + NUM 0 $80 + NUM 0 $81 + NUM 0 $82 + NUM 0 $83 + NUM 0 $84 + NUM 0 $85 + NUM 0 $86 + NUM 0 $87 + NUM 0 $88 + NUM 0 $89 + NUM 0 $8A + NUM 0 $8B + NUM 0 $8C + NUM 0 $8D + NUM 0 $8E + NUM 0 $8F + EJT + SPC 2 +* C O M M U N I C A T I O N R E G I O N +* +* THIS AREA IS AVAILABLE FOR APPLICATIONS USE +* + NUM 0 $90 + NUM 0 $91 + NUM 0 $92 + NUM 0 $93 + NUM 0 $94 + NUM 0 $95 + NUM 0 $96 + NUM 0 $97 + NUM 0 $98 + NUM 0 $99 + NUM 0 $9A + NUM 0 $9B + NUM 0 $9C + NUM 0 $9D + NUM 0 $9E + NUM 0 $9F + NUM 0 $A0 + NUM 0 $A1 + NUM 0 $A2 + NUM 0 $A3 + NUM 0 $A4 + NUM 0 $A5 + NUM 0 $A6 + NUM 0 $A7 + NUM 0 $A8 + NUM 0 $A9 + NUM 0 $AA + NUM 0 $AB + NUM 0 $AC + NUM 0 $AD + NUM 0 $AE + NUM 0 $AF + NUM 0 $B0 + NUM 0 $B1 + NUM 0 $B2 + EJT +* C O M M U N I C A T I O N R E G I O N +* + ORG $B3 + ADC SCRTCH LOGICAL UNIT OF STANDARD SCRATCH DEVICE + ADC SCHSTK ADR OF TOP OF SCHEDULER STACK +AFNR ADC FNR ADR OF FIND NEXT REQUEST +ACOMPR ADC COMPRQ ADR OF COMPLETE REQUEST + ADC MASKT ADR OF MASK TABLE + ADC INTSTK ADR OF TOP OF INTERRUPT STACK + ADC REQXT ADR OF EXIT FOR MONITOR REQUESTS +AVOLR ADC VOLR ADR OF RELEASE VOLATILE ROUTINE +AVOLA ADC VOLA ADR OF ASSIGN VOLATILE ROUTINE + ADC LUABS ADR OF ABSOLUTIZING ROUTINE FOR LOGICAL UNIT + ADC SABS ADR OF ABSOLUTIZING ROUTINE FOR STARTING ADR + ADC CABS ADR OF ABSOLUTIZING ROUTINE FOR COMPLETION ADR + ADC NABS ADR OF ABSOLUTIZING ROUTINE FOR NUMBER OF WRDS + NUM 0 MSB OF STARTING SCRATCH SECTOR (ALWAYS ZERO) + NUM 0 LSB OF STARTING SCRATCH SECTOR (SET BY SI) + ADC LBUNIT LOGICAL UNIT OF STANDARD LIBRARY DEVICE + NUM 0 MSB OF PGM LIB DIRECTORY SECTOR (ALWAYS ZERO) + NUM 0 LSB OF PGM LIB DIRECTORY SECTOR (SET BY SI) +* + BZS ($E3-$C5+1) RESERVED FOR FTN (UNPROTECTED) + NUM 0 RESERVED FOR FTN + LOAD/GO SECTOR(UNPROTECTED) + NUM 0 RESERVED FOR FTN (UNPROTECTED) +* + BSS (1) LENGTH OF MASS RESIDENT SYSTEM DIR.(SET BY SI) + BSS (1) LENGTH OF CORE RESIDENT SYSTEM DIR.(SET BY SI) + NUM 0 REAL TIME CLOCK COUNTER + ADC EXTBV4 ADDR OF EXTENDED CORE TABLE +ADISP ADC DISPXX ADR OF DISPATCHER + ADC SLDIRY ADR OF SYSTEM DIRECTORY + NUM 0 TEMPORARY TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 TEMPORARY BOTTOM-1 OF UNPROTECTED (SET BY SI) + NUM 0 USED BY JOB PROCESSOR FOR LOADER RETURNS + NUM -1 CURRENT PRIORITY LEVEL + ADC VOLBLK STARTING LOCATION OF VOLATILE STORAGE + ADC LPRSET LENGTH OF PRESETS TABLE + ADC APRSET STARTING LOCATION OF PRESETS TABLE + ADC 0 ADR OF BREAKPOINT PROGRAM IN CORE(UNPROTECTED) +AMONI ADC MONI ADR OF MONITOR ENTRY FOR REQUESTS + ADC MSIZV4 HIGHEST CORE LOCATION USED BY SYSTEM + NUM 0 TOP+1 OF UNPROTECTED (SET BY SI) + NUM 0 BOTTOM-1 OF UNPROTECTED (SET BY SI) + ADC IPROC ADR OF INTERNAL INTERRUPT PROCESSOR + ADC STDINP LOGICAL UNIT OF STANDARD INPUT DEVICE (FTN 1) + ADC BINOUT LOGICAL UNIT OF STANDARD BINARY DEVICE (FTN 2) + ADC LSTOUT LOGICAL UNIT OF STANDARD PRINT DEVICE (FTN 3) + ADC OUTCOM LOGICAL UNIT OF OUTPUT COMMENT DEVICE (FTN 4) + ADC INPCOM LOGICAL UNIT OF INPUT COMMENT DEVICE (FTN 4) + ADC ALLIN ADR OF COMMON INTERRUPT HANDLER + BSS (1) I (MEMORY INDEX) REGISTER (UNPROTECTED) + EJT + SPC 6 +* I N T E R R U P T R E G I O N +* +* +* +LINE00 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($F8) GO TO INTERRUPT HANDLER ROUTINE + NUM 15 PRIORITY LEVEL OF INTERRUPT + ADC IPROC INTERRUPT RESPONSE FOR THE PROTECT/PARITY ERR. +* +LINE01 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 13 PRIORITY LEVEL OF INTERRUPT + ADC LIN1V4 INTERRUPT RESPONSE FOR THE LOW SPEED I / O +* +LINE02 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R1752 INTERRUPT RESPONSE FOR THE 1752 DRUM +* +LINE03 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 09 PRIORITY LEVEL OF INTERRUPT + ADC R17332 INTERRUPT RESPONSE FOR THE 1733-2/856-2/4 DISK +* +LINE04 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R42312 INTERRUPT RESPONSE FOR THE 1742-30/120 PRINTER +* +LINE05 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS +* +LINE06 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE07 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 10 PRIORITY LEVEL OF INTERRUPT + ADC R17323 INTERRUPT RESPONSE FOR THE 1732-3/616 MAG TAPE +* +LINE08 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE09 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE10 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 14 PRIORITY LEVEL OF INTERRUPT + ADC R1728 INTERRUPT RESPONSE FOR THE 1728-430 READ/PNCH +* +LINE11 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE12 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE13 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 13 PRIORITY LEVEL OF INTERRUPT + ADC TIMINT INTERRUPT RESPONSE FOR THE SYSTEM TIME BASE + SPC 1 +* +LINE14 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 +* +LINE15 NUM 0 INTERRUPT LINE ENTRY + RTJ- ($FE) GO TO INTERRUPT HANDLER ROUTINE + NUM 0 PRIORITY LEVEL OF INTERRUPT + ADC INVINT INTERRUPT RESPONSE FOR THE INVALID INTERRUPTS + SPC 1 + EJT +* C O R E R E S I D E N T D E B U G E N T R I E S + SPC 2 + ORG $140 + SPC 1 + EXT COUTV4 + EXT COBOP + SPC 2 + JMP+ COUTV4 OFF-LINE CORE DUMP + SPC 4 + JMP+ COBOP SYSTEM CHECKOUT BOOTSTRAP + EJT +* I N T E R R U P T M A S K T A B L E +* +* + ENT MASKT INTERRUPT MASKS INDEXED BY PRIORITY LEVEL +* +* +* <----------------------------- INTERRUPT LINE NUMBER +* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +* **************************************************** +* P -1 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* R 0 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* I 1 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* O 2 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* R 3 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* I 4 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* T 5 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* Y 6 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* 7 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* L 8 * 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 * +* E 9 * 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 * +* V 10 * 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* E 11 * 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* L 12 * 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 * +* . 13 * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 * +* . 14 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 * +* V 15 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * +* **************************************************** +* +* + NUM $249F PRIORITY LEVEL -1 +MASKT NUM $249F PRIORITY LEVEL 00 + NUM $249F PRIORITY LEVEL 01 + NUM $249F PRIORITY LEVEL 02 + NUM $249F PRIORITY LEVEL 03 + NUM $249F PRIORITY LEVEL 04 + NUM $249F PRIORITY LEVEL 05 + NUM $249F PRIORITY LEVEL 06 + NUM $249F PRIORITY LEVEL 07 + NUM $249F PRIORITY LEVEL 08 + NUM $2493 PRIORITY LEVEL 09 + NUM $2403 PRIORITY LEVEL 10 + NUM $2403 PRIORITY LEVEL 11 + NUM $2403 PRIORITY LEVEL 12 + NUM $0401 PRIORITY LEVEL 13 + NUM $0001 PRIORITY LEVEL 14 + NUM $0000 PRIORITY LEVEL 15 + EJT +* E X T E N D E D C O M M U N I C A T I O N S R E G I O N +* +* REFERENCED THRU LOCATION $E9 + SPC 3 + ENT MAXSEC + ENT MPFLAG + ENT MIINP + EXT JFILV4 + EXT RCTV + EXT END0V4 + EXT DATBAS + EXT SECTOR + EQU CSYLST(9) + EQU CSYINP(10) + EQU CSYPUN(11) + EQU SECT1(0) + EQU SECT3(0) + EQU SECT4($5BFA) + SPC 3 +EXTBV4 ADC 0 00 MODE SWITCH 32K=0 65K=1 + ADC CSYINP 01 STANDARD COSY INPUT LU NUMBER + ADC CSYPUN 02 STANDARD COSY OUTPUT LU NUMBER + ADC CSYLST 03 STANDARD COSY LIST LU NUMBER + ADC 0 04 FIRST SECTOR LSB OF SYSTEM CORE IMAGE + ADC 0 05 FIRST SECTOR LSB OF S. A. T. + ADC 0 06 FIRST SECTOR LSB OF CREP TABLE + ADC 0 07 FIRST SECTOR LSB OF CREP1 TABLE + ADC JFILV4 08 FIRST SECTOR LSB OF JOB FILE DIRECTORY + ADC RCTV 09 ADDRESS OF RCTV TABLE IN THE MONITOR + ADC 0 10 UNPROTECTED CORE FLAG 0=PART0 / 1=PART1 + ADC 0 11 UNPROTECTED SWAP ALLOWED 0=YES / 1=NO + ADC AYERTO 12 ADDRESS LOCATION CONTAINING THE YEAR + ADC AMONTO 13 ADDRESS LOCATION CONTAINING THE MONTH + ADC ADAYTO 14 ADDRESS LOCATION CONTAINING THE DAY + ADC END0V4 15 LAST ADDRESS OF PART 0 CORE + ADC 0 16 FIRST ADDRESS OF BLANK (SYSTEM) COMMON + ADC DATBAS 17 FIRST ADDRESS OF LABELED COMMON + ADC 0 18 COSY DRIVER CURRENT PHYSTAB ADDRESS + ADC 0 19 JOB TABLE INITIALIZATION FLAG + ADC 0 20 MASS MEMORY LOCATION OF ENGINEERING FILE + ADC SECT1 21 MSB OF MAXIMUM SCRATCH SECTOR +MAXSEC ADC SECTOR 22 LSB OF MAXIMUM SCRATCH SECTOR + ADC SECT3 23 MSB OF MAXIMUM LIBRARY SECTOR + ADC SECT4 24 LSB OF MAXIMUM LIBRARY SECTOR + ADC 0 25 LAST ADDRESS OF LABELED COMMON + ADC 0 26 UNUSED +MPFLAG ADC 0 27 ZERO IF NOT AN MP SYSTEM + ADC LOG1A 28 ADDRESS OF LOG1A TABLE +MIINP BZS MIINP(40) MANUAL INPUT BUFFER + EJT +* S Y S T E M I D E N T I F I C A T I O N +* + SPC 1 + ENT SYSID + EXT SYSMON MONTH SYSTEM WAS BUILT + EXT SYSDAY DAY SYSTEM WAS BUILT + EXT SYSYER YEAR SYSTEM WAS BUILT + SPC 4 +SYSID ALF 16, SIMH DEVELOPMENT SYSTEM + ADC SYSMON + ADC SYSDAY + ADC SYSYER + SPC 4 +* COMMON SYSTEM FAILURE ROUTINE + SPC 2 + ENT SYFAIL + SPC 1 +SYFAIL NOP 0 + IIN 0 INHIBIT INTERRUPTS + STA* SAVEA SAVE A + STQ* SAVEQ SAVE Q + TRM A MOVE M TO A + STA* SAVEM SAVE M + LDA* SYFAIL PICK UP ADDRESS OF CALLER + INA -2 CORRECT IT FOR 2 WORD RTJ + STA* SYFAIL STORE IT BACK + NUM $18FF HANG + SPC 2 +SAVEA NUM 0 +SAVEQ NUM 0 +SAVEM NUM 0 + EJT +* C O N T R O L P O I N T / B O U N D S R E G I S T E R +* P A R A M E T E R S +* + ENT UBPROT + ENT LBPROT + ENT UPBDTB + ENT LOBDTB + ENT TSCNAC + ENT TSCNMI + ENT SIM200 + ENT CCP + ENT CPSET + SPC + EQU UBPROT($7FFF),LBPROT($7FFF),UPBDTB($7FFF),LOBDTB($7FFF) + EQU TSCNAC($7FFF),TSCNMI($7FFF),SIM200($7FFF) + EQU CCP($7FFF) + SPC 2 +CPSET NUM 0 + JMP* (CPSET) + EJT +* S T O R A G E S T A C K S +* +* +NUMPRI EQU NUMPRI(16) NUMBER OF SYSTEM PRIORITY LEVELS +EXTVOL EQU EXTVOL(00) AMOUNT OF EXTRA VOLATILE STORAGE +* +NFTNLV EQU NFTNLV(3) NUMBER OF REENTRANT FORTRAN LEVELS +NEDLVL EQU NEDLVL(3) NUMBER OF REENTRANT ENCODE/DECODE LEVELS + SPC 3 +* +* I N T E R R U P T S T A C K +* + ENT INTSTK CONTENTS, 1 = Q-REGISTER +* 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = P-REGISTER +* 5 = PRIORITY LEVEL AND OVERFLOW +* INDICATOR (BIT 15) +* +INTSTK BZS INTSTK(5*NUMPRI) + SPC 3 +* +* V O L A T I L E B L O C K S T A C K +* + ENT VOLBLK CONTENTS, 1 = Q-REGISTER + ENT VOLEND 2 = A-REGISTER +* 3 = I-REGISTER +* 4 = USER ASSIGNMENTS +* . +* N = USER ASSIGNMENTS +* +VOLBLK BZS VOLBLK(18*NUMPRI+98*NFTNLV+57*NEDLVL+EXTVOL+1) +VOLEND EQU VOLEND(*) END OF VOLATILE + SPC 3 +* +* S C H E D U L E R / T I M E R S T A C K +* + ENT SCHSTK CONTENTS, 1 = SCHEDULER CALL + ENT SCHLNG 2 = STARTING ADDRESS +* 3 = THREAD TO NEXT CALL +SCHSTK EQU SCHSTK(*) 4 = Q-REGISTER CONTENTS + SPC 1 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 001 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 002 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 003 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 004 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 005 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 006 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 007 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 008 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 009 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 010 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 011 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 012 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 013 + EJT + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 014 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 015 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 016 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 017 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 018 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 019 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 020 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 021 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 022 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 023 + ADC 0,0,*+2,0 SCHEDULER STACK ENTRY 024 + ADC 0,0,(-0),0 SCHEDULER STACK ENTRY 025 +SCHLNG EQU SCHLNG(*-SCHSTK) SCHEDULER STACK LENGTH + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 A ) +* +* + ENT LOG1A PHYSICAL DEVICES ADDRESSES BY LOGICAL UNIT + ENT NUMLU + SPC 1 +LOG1A ADC NUMLU NUMBER OF LOGICAL UNITS + ADC PCORE 1 CORE ALLOCATOR + ADC PDUMMY 2 DUMMY LOGICAL UNIT + ADC PDUMMY 3 DUMMY LOGICAL UNIT + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC PCOSY1 5 COSY DRIVER, FIRST UNIT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC PSUDO0 7 PSEUDO TAPE, UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER +X73230 ADC P73230 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC P1728 11 1728-430 CARD PUNCH +FTN742 ADC P42312 12 1742-30/120 FORTRAN LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC PSUDO1 19 PSEUDO TAPE, UNIT 1 + ADC PSUDO2 20 PSEUDO TAPE, UNIT 2 + ADC PSUDO3 21 PSEUDO TAPE, UNIT 3 + ADC PSDSK0 22 PSEUDO DISK, UNIT 0 + ADC PSDSK1 23 PSEUDO DISK, UNIT 1 + ADC PSDSK2 24 PSEUDO DISK, UNIT 2 + ADC PSDSK3 25 PSEUDO DISK, UNIT 3 + ADC P1752 26 1752 DRUM + ADC PCOSY2 27 COSY DRIVER, SECOND UNIT + ADC P1728 28 1728-430 CARD READER +X73231 ADC P73231 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 +X73232 ADC P73232 30 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 +X73233 ADC P73233 31 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 +X42312 ADC P42312 32 DIAGNOSTIC 1742-30/120 LINE PRINTER +X1728 ADC P1728 33 DIAGNOSTIC 1728-430 READER / PUNCH +X1711 ADC P1711 34 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT +NUMLU EQU NUMLU(*-LOG1A-1) + EJT +* L O G I C A L U N I T T A B L E S ( L O G 1 ) +* +* + ENT LOG1 LOGICAL UNIT INFORMATION BY LOGICAL UNIT +* BIT 14 = 1, IMPLIES LU SHARES DEVICE +* BIT 13 = 1, IMPLIES LU IS MARKED DOWN +* BITS 0 - 11 IS ALTERNATE LOGICAL UNIT +* ALTERNATE = 0, IMPLIES NONE +S EQU S($4000) SHARED BIT + SPC 1 +LOG1 ADC NUMLU NUMBER OF LOGICAL UNITS + ADC 0 1 CORE ALLOCATOR + ADC 0+S 2 DUMMY LOGICAL UNIT + ADC 0+S 3 DUMMY LOGICAL UNIT + ADC 2+S 4 1711 TELETYPE, 713-10 CRT + ADC 0 5 COSY DRIVER, FIRST UNIT + ADC 0+S 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC 0 7 PSEUDO TAPE, UNIT 0 + ADC 0 8 1733-2 856-2/4 DISK, UNIT 0 + ADC 0+S 9 1742-30/120 LINE PRINTER + ADC 0+S 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + ADC 0+S 11 1728-430 CARD PUNCH + ADC 0+S 12 1742-30/120 FORTRAN LINE PRINTER + ADC 0 13 1733-2 856-2/4 DISK, UNIT 1 + ADC 0 14 1733-2 856-2/4 DISK, UNIT 2 + ADC 0 15 1733-2 856-2/4 DISK, UNIT 3 + ADC 0+S 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC 0+S 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC 0+S 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC 0 19 PSEUDO TAPE, UNIT 1 + ADC 0 20 PSEUDO TAPE, UNIT 2 + ADC 0 21 PSEUDO TAPE, UNIT 3 + ADC 0 22 PSEUDO DISK, UNIT 0 + ADC 0 23 PSEUDO DISK, UNIT 1 + ADC 0 24 PSEUDO DISK, UNIT 2 + ADC 0 25 PSEUDO DISK, UNIT 3 + ADC 0 26 1752 DRUM + ADC 0 27 COSY DRIVER, SECOND UNIT + ADC 0+S 28 1728-430 CARD READER + ADC 0+S 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + ADC 0+S 30 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + ADC 0+S 31 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + ADC 0+S 32 DIAGNOSTIC 1742-30/120 LINE PRINTER + ADC 0+S 33 DIAGNOSTIC 1728-430 READER / PUNCH + ADC 0+S 34 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* L O G I C A L U N I T T A B L E S ( L O G 2 ) +* +* + ENT LOG2 TOP OF I/O THREAD ADDRESSES BY LOGICAL UNIT + SPC 1 +LOG2 ADC NUMLU NUMBER OF LOGICAL UNITS + NUM $FFFF 1 CORE ALLOCATOR + NUM $FFFF 2 DUMMY LOGICAL UNIT + NUM $FFFF 3 DUMMY LOGICAL UNIT + NUM $FFFF 4 1711 TELETYPE, 713-10 CRT + NUM $FFFF 5 COSY DRIVER, FIRST UNIT + NUM $FFFF 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + NUM $FFFF 7 PSEUDO TAPE, UNIT 0 + NUM $FFFF 8 1733-2 856-2/4 DISK, UNIT 0 + NUM $FFFF 9 1742-30/120 LINE PRINTER + NUM $FFFF 10 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 0 + NUM $FFFF 11 1728-430 CARD PUNCH + NUM $FFFF 12 1742-30/120 FORTRAN LINE PRINTER + NUM $FFFF 13 1733-2 856-2/4 DISK, UNIT 1 + NUM $FFFF 14 1733-2 856-2/4 DISK, UNIT 2 + NUM $FFFF 15 1733-2 856-2/4 DISK, UNIT 3 + NUM $FFFF 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + NUM $FFFF 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + NUM $FFFF 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + NUM $FFFF 19 PSEUDO TAPE, UNIT 1 + NUM $FFFF 20 PSEUDO TAPE, UNIT 2 + NUM $FFFF 21 PSEUDO TAPE, UNIT 3 + NUM $FFFF 22 PSEUDO DISK, UNIT 0 + NUM $FFFF 23 PSEUDO DISK, UNIT 1 + NUM $FFFF 24 PSEUDO DISK, UNIT 2 + NUM $FFFF 25 PSEUDO DISK, UNIT 3 + NUM $FFFF 26 1752 DRUM + NUM $FFFF 27 COSY DRIVER, SECOND UNIT + NUM $FFFF 28 1728-430 CARD READER + NUM $FFFF 29 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 1 + NUM $FFFF 30 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 2 + NUM $FFFF 31 DIAGNOSTIC 1732-3 616 MAG TAPE, UNIT 3 + NUM $FFFF 32 DIAGNOSTIC 1742-30/120 LINE PRINTER + NUM $FFFF 33 DIAGNOSTIC 1728-430 READER / PUNCH + NUM $FFFF 34 DIAGNOSTIC 1711 TELETYPE, 713-10 CRT + EJT +* D I A G N O S T I C T A B L E S +* +* + ENT ALTERR ALTERNATE DEVICE ERROR TABLE + SPC 1 +ALTERR ADC NUMLU ERROR TABLE SIZE + BZS (NUMLU) SPACE FOR MAXIMUM SIMULTANEOUS FAILURES + SPC 3 + ENT DGNTAB DIAGNOSTIC TIMER TABLE + SPC 1 +DGNTAB EQU DGNTAB(*) START OF TABLE + ADC PCORE 1 CORE ALLOCATOR + ADC P1711 4 1711 TELETYPE, 713-10 CRT + ADC P73230 6 1732-3 616-73/93/95 MAG TAPE UNIT 0 + ADC P73320 8 1733-2 856-2/4 DISK, UNIT 0 + ADC P42312 9 1742-30/120 LINE PRINTER + ADC P73321 13 1733-2 856-2/4 DISK, UNIT 1 + ADC P73322 14 1733-2 856-2/4 DISK, UNIT 2 + ADC P73323 15 1733-2 856-2/4 DISK, UNIT 3 + ADC P73231 16 1732-3 616-73/93/95 MAG TAPE UNIT 1 + ADC P73232 17 1732-3 616-73/93/95 MAG TAPE UNIT 2 + ADC P73233 18 1732-3 616-73/93/95 MAG TAPE UNIT 3 + ADC P1752 26 1752 DRUM + ADC P1728 28 1728-430 CARD READER + NUM $FFFF END OF TABLE + EJT + SPC 4 +* S T A N D A R D L O G I C A L U N I T S +* + ENT DUMALT +* +DUMALT EQU DUMALT(2) STANDARD DUMMY ALTERNATE +INPCOM EQU INPCOM(4) STANDARD INPUT COMMENT +OUTCOM EQU OUTCOM(4) STANDARD OUTPUT COMMENT +LBUNIT EQU LBUNIT(8) STANDARD LIBRARY UNIT +SCRTCH EQU SCRTCH(8) STANDARD SCRATCH UNIT +LSTOUT EQU LSTOUT(9) STANDARD LIST OUTPUT +STDINP EQU STDINP(10) STANDARD INPUT +BINOUT EQU BINOUT(11) STANDARD BINARY OUTPUT + EJT +* L I N E O N E T A B L E +* + SPC 1 +* + ENT LIN1V4 LINE 1 INTERRUPT ENTRY + SPC 1 +LIN1V4 LDQ* LN1TV4 PLACE THE PDT ADDRESS IN Q + LDA- 2,Q + STA- I + JMP- (I) TRANSFER CONTROL TO THE DRIVER CONTINUATOR + SPC 3 + ENT INVINT + SPC 1 +INVINT JMP- (ADISP) +* + SPC 4 + EQU LN1TV4(*) START OF TABLE + ADC P1711 1711 TELETYPE, 713-10 CRT + NUM $FFFF END OF TABLE + EJT +* P H Y S I C A L D E V I C E T A B L E S +* +* +* THE FOLLOWING SECTION CONTAINS THE PHYSICAL DEVICE TABLES +* AND INTERRUPT RESPONSE ROUTINES FOR EACH LOGICAL UNIT IN +* THE SYSTEM. +* +* LISTED BELOW ARE THE MANDATORY ENTRIES FOR ALL PHYSICAL +* DEVICE TABLES. ADDITIONAL ENTRIES REQUIRED BY EACH +* DRIVER MAY BE ADDED AFTER THE LAST ENTRY INDICATED. + SPC 3 +PHYSTB EQU PHYSTB(*) + EQU ELVL(0) 00 SCHEDULER CALL WITH DRIVER LEVEL + EQU EDIN(1) 01 DRIVER INITIATOR ENTRY + EQU EDCN(2) 02 DRIVER CONTINUATOR ENTRY + EQU EDPGM(3) 03 DRIVER DIAGNOSTIC ENTRY + EQU EDCLK(4) 04 DIAGNOSTIC CLOCK + EQU ELU(5) 05 LOGICAL UNIT + EQU EPTR(6) 06 PARAMETER LOCATION + EQU EWES(7) 07 CONVERTOR, EQUIPMENT, STATION + EQU EREQST(8) 08 REQUEST STATUS + EQU ESTAT1(9) 09 DRIVER STATUS + EQU ECCOR(10) 10 CURRENT LOCATION + EQU ELSTWD(11) 11 LAST LOCATION PLUS ONE + EQU ESTAT2(12) 12 DEVICE STATUS + EQU MASLGN(13) 13 DRIVER LENGTH (IF MASS MEMORY) + EQU MASSEC(14) 14 NAME ASSOCIATED WITH SECTOR NUMBER + EQU RETURN(15) 15 RESERVED FOR FNR AND CMR + SPC 3 +* LINK UNSELECTED PHYSICAL DEVICE TABLES + SPC 1 + ENT P18ECM + ENT P18PGA + ENT P18ADD + ENT P18MXP +P18ECM EQU P18ECM($7FFF) +P18PGA EQU P18PGA($7FFF) +P18ADD EQU P18ADD($7FFF) +P18MXP EQU P18MXP($7FFF) + EJT +* C O R E A L L O C A T O R +* + SPC 1 + ENT PCORE + EXT ICORE,ECORE + EQU SWAPT(0) SWAP TIME + SPC 1 +PCORE ADC $5207 00 SCHEDULER CALL + ADC ICORE 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC ECORE 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $00D6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + VFD X16/SWAPT-1 13 TIME BETWEEN SWAPS (NONE IF NEGATIVE) + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* D U M M Y L O G I C A L U N I T +* + SPC 1 + EXT IDUMMY,CDUMMY,EDUMMY + SPC 1 +PDUMMY ADC $520A 00 SCHEDULER CALL + ADC IDUMMY 01 INITIATOR ADDRESS + ADC CDUMMY 02 CONTINUATOR ADDRESS + ADC EDUMMY 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $01F6 08 REQUEST STATUS + NUM $8000 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + EJT +* 1 7 1 1 T E L E T Y P E , 7 1 3 - 1 0 C R T +* + SPC 1 + EXT I1711,C1711,E1711 + EQU T713(04*$10) TYPE CODE - 713-10 CRT + EQU T1711(00*$10) TYPE CODE - 1711 TELETYPE + EQU U1711(X1711-LOG1A) + SPC 1 +P1711 ADC $520D 00 SCHEDULER CALL + ADC I1711 01 INITIATOR ADDRESS + ADC C1711 02 CONTINUATOR ADDRESS + ADC E1711 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0091 07 CONVERTER, EQUIPMENT, STATION + ADC $3006+T1711 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR CODE AND STARTING LOCATION + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 DRIVER FLAGS + NUM 1 17 HARDWARE PARITY CHECK FLAG + ADC U1711 18 DIAGNOSTIC LU + EJT +* C O S Y D R I V E R +* + SPC 1 + EQU MCOSY1(1) +* + IFA MCOSY1,EQ,0 CORE RESIDENT DRIVER + EXT ICOSY + EQU LCOSY(0) + EQU SCOSY($7FFF) + EIF +* + IFA MCOSY1,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +ICOSY JMP+ MASDRV INITIATE DRIVER + EXT LCOSY + EXT SCOSY + EIF +* + EJT +* C O S Y D R I V E R , F I R S T U N I T +* + SPC 1 +PCOSY1 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY2 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFA 28 COSY BUFFER LOCATION + ADC INPBFA 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFA(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* C O S Y D R I V E R , S E C O N D U N I T +* + SPC 1 +PCOSY2 ADC $5208 00 SCHEDULER CALL + ADC ICOSY 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $08B6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC LCOSY 13 DRIVER LENGTH IF MASS MEMORY + ADC SCOSY 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + ADC PCOSY1 16 PHYSTB THREAD + NUM 0 17 SEQUENCE NUMBER + NUM 0 18 ID + NUM 0 19 ID-1 + NUM 0 20 ID-2 + NUM 0 21 NUMBER OF WORDS REQUESTED + NUM $5555 22 HOL-CHARACTER POINTER + NUM $5555 23 COSY-CHARACTER POINTER + NUM 0 24 R/W FLAG + NUM 1 25 PON5F + NUM 0 26 FSTCHR + NUM 0 27 ENDDCK + ADC INPBFB 28 COSY BUFFER LOCATION + ADC INPBFB 29 NEXT COSY WORD + NUM 0 30 HOL-BUFFER POINTER + NUM 1 31 INITIAL CALL FLAG + NUM 0 32 SEQUENCE FLAG NONZERO=NO SEQUENCE NUMBER +* + BZS INPBFB(192) 33 COSY BUFFER +* 224 COSY BUFFER + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E +* + SPC 1 + EQU T6167(53*$10) TYPE CODE - 616-72 MAG TAPE + EQU T6169(54*$10) TYPE CODE - 616-92-95 MAG TAPE + EQU PHSREC(192) MAX. PHYSICAL RECORD SIZE FOR 7 TRACK + SPC 2 +BF1F33 BZS BF1F33(PHSREC*4/3+2) PACK/UNPACK BUFFER (7 TRACK) + SPC 1 + EQU M17323(1) +* + IFA M17323,EQ,0 CORE RESIDENT DRIVER + EXT I17323 + EXT C17323 + EXT E17323 + EQU L17323(0) + EQU S17323($7FFF) + EIF +* + IFA M17323,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I17323 JMP+ MASDRV INITIATE DRIVER +C17323 JMP+ MASCON INTERRUPT RESPONSE +E17323 JMP+ MASERR TIMEOUT ERROR + EXT L17323 + EXT S17323 + EIF +* + SPC 2 +R17323 LDQ =XP73230 INTERRUPT RESPONSE FOR 616-72-92-95 MAG TAPE + JMP* (P73230+2) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 0 +* + EQU U73230(X73230-LOG1A) + SPC 1 +P73230 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0448 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73230 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73231 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 1 +* + EQU U73231(X73231-LOG1A) + SPC 1 +P73231 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $04C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73231 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73232 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 2 +* + EQU U73232(X73232-LOG1A) + SPC 1 +P73232 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $0548 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73232 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73233 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* 6 1 6 - 7 2 / 9 2 / 9 5 M A G T A P E , U N I T 3 +* + EQU U73233(X73233-LOG1A) + SPC 1 +P73233 ADC $520A 00 SCHEDULER CALL + ADC I17323 01 INITIATOR ADDRESS + ADC C17323 02 CONTINUATOR ADDRESS + ADC E17323 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0381 07 CONVERTER, EQUIPMENT, STATION + ADC $0806+T6169 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L17323 13 DRIVER LENGTH IF MASS MEMORY + ADC S17323 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $05C8 16 REC. OPT., UNIT, FUNCTION, DENSITY CONTROL + ADC U73233 17 DIAGNOSTIC LU + ADC 0 18 ERROR CODE + NUM 0 19 RECOVERY RETURN ADDRESS + NUM 0 20 RECORD CHECKSUM + NUM $D554 21 FUNCTION DIRECTORY BITWORD + NUM 0 22 TEMPORARY CHECKSUM + ADC P73230 23 PHYSTB THREAD + ADC PHSREC 24 MAX PHY RECORD SIZE (7 TRACK) + ADC BF1F33 25 PACK/UNPACK BUFFER (7 TRACK) + EJT +* P S E U D O T A P E +* + SPC 1 + EQU PSTPD0(1) +* + IFA PSTPD0,EQ,0 CORE RESIDENT DRIVER + EXT IPSUDO + EQU LPSUDO(0) + EQU SPSUDO($7FFF) + EIF +* + IFA PSTPD0,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV +IPSUDO JMP+ MASDRV INITIATE DRIVER + EXT LPSUDO + EXT SPSUDO + EIF +* + EJT +* P S E U D O T A P E , U N I T 0 +* + SPC 1 +PSUDO0 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES0 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ0 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES0 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ0) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO1 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 1 +* + SPC 1 +PSUDO1 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES1 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 1 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ1 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES1 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ1) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO2 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 2 +* + SPC 1 +PSUDO2 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES2 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF7 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ2 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES2 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ2) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO3 75 PHYSTB THREAD + EJT +* P S E U D O T A P E , U N I T 3 +* + SPC 1 +PSUDO3 ADC $5208 00 SCHEDULER CALL + ADC IPSUDO 01 INITIATOR ADDRESS + ADC 0 02 CONTINUATOR ADDRESS - NOT USED + ADC 0 03 TIMEOUT ERROR ADDRESS - NOT USED + NUM -1 04 DIAGNOSTIC CLOCK - NOT USED + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION +PWES3 NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $0A46 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM $C401 12 DEVICE STATUS + ADC LPSUDO 13 DRIVER LENGTH IF MASS MEMORY + ADC SPSUDO 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 RESERVED FOR FNR AND CMR + NUM $7FF8 16 FILE NUMBER + NUM 0 17 TEMP FOR MOTION REQ PROCESSOR + NUM 0 18 TEMP FOR MOTION REQ PROCESSOR + BZS (12) 19 REQUEST BUFFER - REQBUF + NUM 0 31 BLOCK POINTER - BLKPTR + BZS (30) 32 POINTER BLOCK - PTRBLK +PSDRQ3 NUM 0 62 * + NUM $5400 63 * + NUM 0 64 * AREA TO BE STUFFED WITH + ADC PWES3 65 * FILE MANAGER AND DISK REQUESTS + BZS (6) 66 * + NUM $1400 72 * + RTJ* (PSDRQ3) 73 * + ADC 0 74 INPUT BUFFER ADDRESS + ADC PSUDO0 75 PHYSTB THREAD + EJT +* P S E U D O D I S K U N I T 0 +* + SPC 1 + EXT IPSDSK,CPSDSK,EPSDSK + EQU SBIAS0(1) + SPC 1 +PSDSK0 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 8 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS0 25 SECTOR BIAS + ADC SBIAS0*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 1 +* + EQU SBIAS1(1) + SPC 1 +PSDSK1 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 13 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS1 25 SECTOR BIAS + ADC SBIAS1*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 2 +* + EQU SBIAS2(1) + SPC 1 +PSDSK2 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 14 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS2 25 SECTOR BIAS + ADC SBIAS2*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* P S E U D O D I S K U N I T 3 +* + EQU SBIAS3(1) + SPC 1 +PSDSK3 ADC $5209 00 SCHEDULER CALL + ADC IPSDSK 01 INITIATOR ADDRESS + ADC CPSDSK 02 CONTINUATOR ADDRESS + ADC EPSDSK 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM 0 07 CONVERTER, EQUIPMENT, STATION - NONE + NUM $1486 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM 0 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 NEW REQUEST + ADC CPSDSK 17 COMPLETION + NUM 0 18 THREAD + NUM 15 19 MASS MEMORY LOGICAL UNIT + NUM 0 20 NUMBER OF WORDS + NUM 0 21 BUFFER + NUM 0 22 NEW REQUEST MSB + NUM 0 23 NEW REQUEST LSB + NUM 0 24 CONTROL POINT FOR TIME SHARE SYSTEM + ADC SBIAS3 25 SECTOR BIAS + ADC SBIAS3*$60 26 WORD BIAS + NUM 9 27 COMPLETION LEVEL + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K +* + SPC 1 + ENT P332D0 + EXT I17332,C17332,E17332 + EQU T8562(15*$10) TYPE CODE - 1733-2 856-2 + EQU T8564(16*$10) TYPE CODE - 1733-2 856-4 + SPC 2 +R17332 LDQ =XP73320 INTERRUPT RESPONSE FOR 1733-2 DISK + JMP* (P73320+2) + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 0 +* + SPC 1 + EQU P332D0(*) +P73320 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8100 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73321 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 1 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332A 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332A(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 1 +* + SPC 1 +P73321 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8300 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73322 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 2 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332B 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332B(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 2 +* + SPC 1 +P73322 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8500 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73323 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 4 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332C 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332C(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 3 3 - 2 / 8 5 6 D I S K - U N I T 3 +* + SPC 1 +P73323 ADC $5209 00 SCHEDULER CALL + ADC I17332 01 INITIATOR ADDRESS + ADC C17332 02 CONTINUATOR ADDRESS + ADC E17332 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0181 07 CONVERTER, EQUIPMENT, STATION + ADC $1006+T8564 08 REQUEST STATUS + NUM $0200 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 ERROR COUNTER + NUM 0 14 DATA TRANSFER FUNCTION + NUM 0 15 SECTOR NUMBER OR FNR RETURN + NUM $8700 16 NO COMPARE FLAG / DIRECTOR FUNCTION + NUM 0 17 TEMSEC - USED BY WORD ADDRESSING + NUM 0 18 OVERLAY AREA (SCHEDULER CALL) + NUM 0 19 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 20 OVERLAY AREA (THREAD) + NUM 0 21 OVERLAY AREA (LOGICAL UNIT) + ADC P73320 22 PHYSTB THREAD + NUM 0 23 RETURN ADDRESS FOR DATA TRANSFER + NUM $5BFB 24 FIRST SECTOR ADDRESS ON DISK 1 + NUM 0 25 LAST DATA TRANSFER FUNCTION + NUM 0 26 BUFFER SIZE FOR SPLIT TRANSFERS + NUM 0 27 CYLINDER ADDRESS FOR TRANSFER + NUM 8 28 MASK FOR THIS UNITS SEEK COMPLETE BIT + ADC BF332D 29 ADDRESS OF 96 WORD BUFFER + NUM 0 30 TEMPORARY FOR WORD ADDRESSING + NUM 0 31 TEMPORARY FOR WORD ADDRESSING + NUM 0 32 TEMPORARY FOR WORD ADDRESSING + NUM 0 33 REQUEST CODE + NUM 0 34 REQUEST PRIORITY + NUM 0 35 STARTING SECTOR FOR COMPARE OR RETRY + NUM 0 36 FWA OF TRANSFER FOR COMPARE OR RETRY + NUM 0 37 ERROR COUNTER + NUM 0 38 DATA TRANSFER FUNCTION CODE + NUM $FFFF 39 SECTOR NUMBER CURRENTLY IN BUFFER + NUM 0 40 LAST VALUE OF CYLINDER ADDRESS STATUS + NUM 0 41 LAST VALUE OF C W A STATUS + NUM 0 42 LAST VALUE OF CHECKWORD STATUS + NUM 0 43 LAST VALUE OF DRIVE CYLINDER STATUS +* + BZS BF332D(96) 44 BUFFER FOR WORD ADDRESSING +* 139 BUFFER FOR WORD ADDRESSING + EJT +* 1 7 5 2 D R U M +* + EXT I1752,C1752,E1752 + SPC 2 +R1752 LDQ =XP1752 INTERRUPT RESPONSE FOR 1752 DRUM + JMP* (P1752+2) + EJT +* 1 7 5 2 D R U M +* + SPC 1 +P1752 ADC $5209 00 SCHEDULER CALL + ADC I1752 01 INITIATOR ADDRESS + ADC C1752 02 CONTINUATOR ADDRESS + ADC E1752 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0101 07 CONVERTER, EQUIPMENT, STATION + NUM $1036 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + NUM 0 13 RESERVED + NUM $7FFF 14 RESERVED + NUM 0 15 RESERVED FOR FNR AND CMR + NUM 0 16 SECTOR NUMBER + NUM 0 17 DATA TRANSFER FUNCTION + NUM 0 18 COUNTER + NUM 0 19 FULL SECTOR COUNTER + NUM 0 20 SAVE ECCOR + NUM 0 21 SAVE ELSTWD + NUM 0 22 OVERLAY AREA (SCHEDULER CALL) + NUM 0 23 OVERLAY AREA (COMPLETION ADDRESS) + NUM 0 24 OVERLAY AREA (THREAD) + NUM 0 25 OVERLAY AREA (LOGICAL UNIT) + NUM 0 26 UNSUCCESSFUL I/O ATTEMPT COUNTER + NUM 0 27 EQUIPMENT STATUS (ON LAST ERROR) + NUM 0 28 CORE STATUS (ON LAST ERROR) + NUM 0 29 SECTOR STATUS (ON LAST ERROR) + NUM 0 30 DATA STATUS (ON LAST ERROR) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 + EQU T4230(17*$10) TYPE CODE - 1742-30 + EQU T4212(18*$10) TYPE CODE - 1742-120 + EQU U42312(X42312-LOG1A) + EQU F42312(FTN742-LOG1A) + SPC 1 + EQU M42312(1) +* + IFA M42312,EQ,0 CORE RESIDENT DRIVER + EXT I42312 + EXT C42312 + EXT E42312 + EQU L42312(0) + EQU S42312($7FFF) + EIF +* + IFA M42312,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I42312 JMP+ MASDRV INITIATE DRIVER +C42312 JMP+ MASCON INTERRUPT RESPONSE +E42312 JMP+ MASERR TIMEOUT ERROR + EXT L42312 + EXT S42312 + EIF +* + SPC 2 +R42312 LDQ =XP42312 INTERRUPT RESPONSE FOR 1742-30/120 PRINTER + JMP* (P42312+2) + EJT +* 1 7 4 2 - 3 0 / 1 2 0 L I N E P R I N T E R +* + SPC 1 +P42312 ADC $520A 00 SCHEDULER CALL + ADC I42312 01 INITIATOR ADDRESS + ADC C42312 02 CONTINUATOR ADDRESS + ADC E42312 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0201 07 CONVERTER, EQUIPMENT, STATION + ADC $2804+T4212 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L42312 13 DRIVER LENGTH IF MASS MEMORY + ADC S42312 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 BLANK DETECTION INDICATOR + NUM 0 16 LINE COUNT + NUM 0 17 TEMPORARY STORAGE FOR CONTROL FUNC. + NUM 0 18 CHARACTER COUNT + ADC F42312 19 FORTRAN LOGICAL UNIT + NUM 0 20 NUMBER OF BLANKS TO BE SENT + NUM 60 21 MAXIMUM NUMBER OF LINES PER PAGE + NUM 136 22 NUMBER OF CHARACTERS PER LINE + ADC U42312 23 DIAGNOSTIC LU + EJT +* +* F O R T R A N L I N E P R I N T E R + SPC 2 +* PHYSTB SHARED WITH 1742-30/120 LINE PRINTER + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 + EQU U1728(X1728-LOG1A) + SPC 1 + EQU M1728(1) +* + IFA M1728,EQ,0 CORE RESIDENT DRIVER + EXT I1728 + EXT C1728 + EXT E1728 + EQU L1728(0) + EQU S1728($7FFF) + EIF +* + IFA M1728,EQ,1 MASS RESIDENT DRIVER + EXT MASDRV + EXT MASCON + EXT MASERR +I1728 JMP+ MASDRV INITIATE DRIVER +C1728 JMP+ MASCON INTERRUPT RESPONSE +E1728 JMP+ MASERR TIMEOUT ERROR + EXT L1728 + EXT S1728 + EIF +* + SPC 2 +R1728 LDQ =XP1728 INTERRUPT RESPONSE FOR 1728-430 READ/PUNCH + JMP* (P1728+2) + EJT +* 1 7 2 8 / 4 3 0 C A R D R E A D E R / P U N C H +* + SPC 1 +P1728 ADC $520E 00 SCHEDULER CALL + ADC I1728 01 INITIATOR ADDRESS + ADC C1728 02 CONTINUATOR ADDRESS + ADC E1728 03 TIMEOUT ERROR ADDRESS + NUM -1 04 DIAGNOSTIC CLOCK + NUM 0 05 LOGICAL UNIT + NUM 0 06 PARAMETER LOCATION + NUM $0521 07 CONVERTER, EQUIPMENT, STATION + NUM $18C6 08 REQUEST STATUS + NUM 0 09 DRIVER STATUS + NUM 0 10 CURRENT LOCATION + NUM 0 11 LAST LOCATION PLUS ONE + NUM 0 12 DEVICE STATUS + ADC L1728 13 DRIVER LENGTH IF MASS MEMORY + ADC S1728 14 NAME ASSOCIATED WITH SECTOR NUMBER + NUM 0 15 PACKING CYCLE ADDRESS STORAGE + NUM $800F 16 READ/PUNCH SWITCH, EOF FORMAT (6789) + ADC BUF28 17 FIRST LOCATION OF 80 WORD I / O BUFFER + NUM 0 18 CURRENT CARD BUFFER LOCATION + NUM 0 19 SUBROUTINE RETURN ADDRESS + NUM 0 20 CARD SEQUENCE NUMBER + NUM 0 21 RECORD LENGTH + NUM 0 22 CHECKSUM ACCUMULATOR + NUM 0 23 TEMPORARY STORAGE + NUM 0 24 OUTPUT OFFSET SWITCH + NUM 0 25 ERROR RETURN + NUM 0 26 HOLLERITH ERROR FLAG + ADC U1728 27 DIAGNOSTIC LU +* + BZS BUF28(80) 28 INPUT / OUTPUT BUFFER +* 107 INPUT / OUTPUT BUFFER + EJT +* 1 7 4 3 - 2 C O M M U N I C A T I O N S +* +* C O N T R O L L E R, U N I T 0 +* +* REMOVED FROM SYSTEM +* + ENT P74300 + EQU P74300($7FFF) + EJT +* R E S I D E N T C O R E D A T A +* + ENT LSTLOC + EXT BGNMON + SPC 1 +LSTLOC ADC BGNMON BEGINNING LOCATION OF CORE RESIDENT SYSTEM + SPC 2 +* C O R E A L L O C A T I O N D A T A +* + ENT CALTHD CORE ALLOCATOR THREAD + ENT LVLSTR LEVEL START ALLOCATION TABLE + EXT AREAC START OF ALLOCATABLE AREA + EXT LEND END OF ALLOCATABLE AREA +* +CALTHD ADC 0 TOTAL AVAILABLE ALLOCATABLE CORE + ADC AREAC START OF ALLOCATABLE AREA +* +LVLSTR ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 0 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 1 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 2 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 3 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 4 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 5 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 6 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 7 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 8 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 9 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 10 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 11 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 12 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 13 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 14 + ADC AREAC START OF ALLOCATABLE CORE FOR LEVEL 15 + ADC LEND END OF ALLOCATABLE CORE +* + ENT N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15 + SPC 1 +* NOTE - THE SIZE OF AREAS 1, 2, 3, AND 4 ARE SPECIFIED +* DURING SYSTEM INITIALIZATION +* +N5 EQU N5() NUMBER OF CORE LOCATIONS FOR AREA 5 +N6 EQU N6() NUMBER OF CORE LOCATIONS FOR AREA 6 +N7 EQU N7() NUMBER OF CORE LOCATIONS FOR AREA 7 +N8 EQU N8() NUMBER OF CORE LOCATIONS FOR AREA 8 +N9 EQU N9() NUMBER OF CORE LOCATIONS FOR AREA 9 +N10 EQU N10() NUMBER OF CORE LOCATIONS FOR AREA 10 +N11 EQU N11() NUMBER OF CORE LOCATIONS FOR AREA 11 +N12 EQU N12() NUMBER OF CORE LOCATIONS FOR AREA 12 +N13 EQU N13() NUMBER OF CORE LOCATIONS FOR AREA 13 +N14 EQU N14() NUMBER OF CORE LOCATIONS FOR AREA 14 +N15 EQU N15() NUMBER OF CORE LOCATIONS FOR AREA 15 + EJT +* P A R T I T I O N C O R E D A T A +* + ENT PARTBL,BUSY,DIP,LSTPRT,THDS,USE + SPC 1 + EQU LSTPRT(2) LAST PARTITION IN SYSTEM +* +PARTBL NUM $BF20 STARTING ADDRESS OF PARTITION 0 + NUM $C310 STARTING ADDRESS OF PARTITION 1 + NUM $CAE0 STARTING ADDRESS OF PARTITION 2 + NUM $FFFF STARTING ADDRESS OF PARTITION 3 + NUM $FFFF STARTING ADDRESS OF PARTITION 4 + NUM $FFFF STARTING ADDRESS OF PARTITION 5 + NUM $FFFF STARTING ADDRESS OF PARTITION 6 + NUM $FFFF STARTING ADDRESS OF PARTITION 7 + NUM $FFFF STARTING ADDRESS OF PARTITION 8 + NUM $FFFF STARTING ADDRESS OF PARTITION 9 + NUM $FFFF STARTING ADDRESS OF PARTITION 10 + NUM $FFFF STARTING ADDRESS OF PARTITION 11 + NUM $FFFF STARTING ADDRESS OF PARTITION 12 + NUM $FFFF STARTING ADDRESS OF PARTITION 13 + NUM $FFFF STARTING ADDRESS OF PARTITION 14 + NUM $FFFF STARTING ADDRESS OF PARTITION 15 +* + NUM $FFFF STARTING ADDRESS OF PARTITION 16 - SWAP AREA + SPC 2 +THDS NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 0 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 1 + NUM $FFFF TOP OF REQUEST THREAD FOR PARTITION 2 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 3 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 4 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 5 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 6 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 7 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 8 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 9 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 10 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 11 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 12 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 13 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 14 + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 15 +* + NUM 0 TOP OF REQUEST THREAD FOR PARTITION 16 - SWAP + SPC 2 +USE BZS USE(16) PARTITION-IN-USE INDICATORS + SPC 2 +BUSY NUM $FFF8 BUSY INDICATOR - BIT 0 = PARTITION 0 +DIP NUM -0 PARTITION CORE DRIVER ACTIVE INDICATOR + EJT +* S Y S T E M C O M M O N D E C L A R A T I O N +* +* THIS ENTRY SPECIFIES THE AMOUNT OF SYSTEM (BLANK) COMMON + SPC 4 + EQU NCOM($03E8) + SPC 1 +COMMON COM COMMON(NCOM) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* S Y S T E M I D L E L O O P + SPC 2 + ENT IDLE BASIC SYSTEM IDLE LOOP + ENT IDLER SYSTEM IDLE SUBROUTINE + ENT INSTLU SYSTEM INSTALLATION L. U. + SPC 2 +IDLE LDA* STRTUP IS THIS THE INITIAL IDLE ENTRY + SAN IDLE1 NO + RTJ* STRTUP YES, PERFORM STARTUP FUNCTIONS +IDLE1 RTJ* IDLER + JMP* IDLE +IDLER NUM 0 + IIN 0 USED AT LEVEL -1 OR LEVEL 2 + RAO* IDLCTR + EIN 0 + JMP* (IDLER) +IDLCTR NUM 0 IDLE LOOP COUNTER + SPC 2 + EXT LIBEDT LIBRARY EDIT + EXT RELFLE SYSTEM CORE SWAP ROUTINE + EXT INPTV4 JOB PROCESSOR STANDARD INPUT DEVICE + EQU INSTLU(6) + SPC 1 +STRTUP NUM 0 + LDQ- $EB + ADQ =XLIBEDT OBTAIN THE DIRECTORY ADDRESS OF LIBEDT + LDA- (ZERO),Q HAVE THE REQUEST PRIORITIES BEEN SET UP + SAN STRTP1 YES + LDA =XINSTLU + STA+ INPTV4 SET THE STD. INPUT TO THE INSTALLATION L.U. + JMP* (STRTUP) AND EXIT + SPC 1 +STRTP1 EQU STRTP1(*) +* +* NOTE - ANY ADDITIONAL SYSTEM STARTUP FUNCTIONS +* MAY BE ADDED HERE. +* + RTJ- (AMONI) SCHEDULE RELFLE TO FORCE A SWAP + ADC $5203 + ADC RELFLE + JMP* (STRTUP) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* I N T E R R U P T R E S P O N S E F O R T I M E R +* + ENT TMRTYP,TMCODE TYPE OF SYSTEM TIME BASE + EXT TIMEUP TMINT INTERRUPT ENTRY + EQU X($7FFF) VALUE FOR UNSELECTED ENTRY POINTS + EQU TMCODE(7) +TMRTYP ADC TMCODE TIME BASE CODE + SPC 2 + ENT E10336,O10336,F10336 +E10336 NUM $0681 +O10336 NUM 1667 100 KCS / 60 +F10336 NUM $8080 ENABLE INTERRUPT AND START CLOCK +A10336 NUM $0002 ACKNOWLEDGE INTERRUPT + SPC 1 +TIMINT LDA* A10336 ACK. THIS INTERRUPT + LDQ* E10336 + OUT TIMREJ-* + JMP TIMEUP EXIT TO TMINT +TIMREJ NOP 0 TIMER REJECT + JMP- (ADISP) EXIT + SPC 2 +* +* LINK ALL UNSELECTED ENTRY POINTS +* + ENT E1572F,E1572,O1572,E1573,H15721,E15721,D15721,O15721,EQ3644 + ENT E15761 + ENT DMICOD,EMPSRT,TBLADR + EQU E1572F(X),E1572(X),O1572(X),E1573(X),H15721(X) + EQU E15721(X),D15721(X),O15721(X),EQ3644(X) + EQU E15761(X) + EQU DMICOD(X),EMPSRT(X),TBLADR(X) + EJT +* M I S C E L L A N E O U S P R O G R A M S +* +* A / Q C H A N N E L A L L O C A T I O N +* + SPC 2 + ENT RQAQ REQUEST ENTRY FOR A/Q + ENT RLAQ RELEASE ENTRY FOR A/Q + SPC 1 +RQAQ NUM 0 ENTRY USED IF NO A/Q ALLOCATION + IIN 0 + LDQ- I TRANSFER PDT ADDRESS TO Q + EIN 0 + JMP* (RQAQ) RETURN + SPC 1 + EQU RLAQ(RQAQ) EQUATE BOTH ENTRIES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* M A S S R E S I D E N T D R I V E R S B U F F E R +* +* THIS BUFFER WILL CONTAIN THE MASS RESIDENT DRIVER(S) +* WHEN THEY ARE IN CORE. THE SMALLEST ALLOWABLE SIZE IS +* EQUAL TO THE LARGEST MASS RESIDENT DRIVER IN THE SYSTEM. +* OPTIMUM THROUGHPUT REQUIRES SIZING EQUAL TO THE TWO +* LARGEST MASS RESIDENT DRIVERS IN THE SYSTEM. + SPC 2 + ENT BUFF,BUFFE + EQU MBFSZ($A00) + SPC 2 +BUFF BZS BUFF(MBFSZ) + EQU BUFFE(*) + SPC 2 +* C O M M O N G H O S T I N T E R R U P T R O U T I N E + SPC 1 + ENT CGHOST + SPC 1 +CGHOST NOP 0 + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + ENT FMASK,FLIST + EXT E4SAVE + EXT ARGU0 + SPC 1 +FMASK NUM $0070 FORTRAN REENTRANT LEVELS (BIT 0 = LEVEL 0) + SPC 1 +* TABLE OF FORTRAN ENTRY POINTS SAVED TO MAINTAIN REENTRANCY + SPC 1 +* ENTRY POINT PROGRAM DESCRIPTION +* ----------- ------- ---------- + SPC 1 +FLIST ADC FEND + ADC E4SAVE Q8EXPR LOCATION $E4 STORAGE + ADC ARGU0 Q8QIO TEMPORARY STORAGE +FEND EQU FEND(*-FLIST-1) + EJT +* F O R T R A N R E E N T R A N T I N F O R M A T I O N +* + SPC 4 +* THIS ENTRY IS PROVIDED TO ALLOW COMPATIBILITY BETWEEN THE +* NON-REENTRANT (BACKGROUND) FORTRAN AND REENTRANT FORTRAN + SPC 1 + ENT Q8STP + SPC 1 +Q8STP NOP 0 FORTRAN STOP + JMP- (ADISP) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* 1 7 8 1 - 1 H A R D W A R E F L O A T I N G +* +* P O I N T I N F O R M A T I O N +* + SPC 4 +* THESE ENTRIES ALLOW PROPER SYSTEM LINKAGE IF THE 1781-1 +* IS NOT SELECTED. + SPC 2 + ENT E17811,F17811 +E17811 NUM $7FFF + EQU F17811($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* T I M E / D A T E P A R A M E T E R S T O R A G E +* + SPC 3 + ENT AYERTO CURRENT YEAR (ASCII) + ENT AMONTO CURRENT MONTH (ASCII) + ENT ADAYTO CURRENT DAY (ASCII) + ENT YERTO CURRENT YEAR (INTEGER) + ENT MONTO CURRENT MONTH (INTEGER) + ENT DAYTO CURRENT DAY (INTEGER) + ENT HORTO CURRENT HOUR (INTEGER) + ENT MINTO CURRENT MINUTE (INTEGER) + ENT SECON CURRENT SECOND (INTEGER) + ENT CONTA CURRENT COUNT (INTEGER) + ENT HORMIN CURRENT 24-HOUR TIME + ENT TOTMIN CURRENT DAY ELAPSED MINUTES + SPC 3 +AYERTO NUM 0 00 CURRENT YEAR (ASCII) +AMONTO NUM 0 01 CURRENT MONTH (ASCII) +ADAYTO NUM 0 02 CURRENT DAY (ASCII) +YERTO NUM 0 03 CURRENT YEAR (INTEGER) +MONTO NUM 0 04 CURRENT MONTH (INTEGER) +DAYTO NUM 0 05 CURRENT DAY (INTEGER) +HORTO NUM 0 06 CURRENT HOUR (INTEGER) +MINTO NUM 0 07 CURRENT MINUTE (INTEGER) +SECON NUM 0 08 CURRENT SECOND (INTEGER) +CONTA NUM 0 09 CURRENT COUNT (INTEGER) +HORMIN NUM 0 10 CURRENT 24-HOUR TIME +TOTMIN NUM 0 11 CURRENT DAY ELAPSED MINUTES + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M T I M E R P A R A M E T E R S + SPC 4 + ENT TIMCPS BASIC SYSTEM CLOCK FREQUENCY + SPC 1 +TIMCPS EQU TIMCPS(60) TIMER CYCLES PER SECOND + SPC 4 + ENT TIMEC TIMER CYCLES PER 1/10 SECOND MINUS 1 + SPC 1 +TIMEC EQU TIMEC(TIMCPS/10-1) + SPC 4 + ENT TODLVL TIME OF DAY(TOD) PROGRAM REQ. CODE + PRIORITY + SPC 1 +TODLVL EQU TODLVL($5006) D-BIT = 1, REQUEST CODE 8, PRIORITY 6 + SPC 4 + ENT NSCHED MAX. NO. OF COMPLETIONS PER TIMER INTERVAL + SPC 1 +NSCHED NUM 5 MAXIMUM 5 COMPLETIONS PER INTERVAL + SPC 4 + ENT TMRLVL DIAGNOSTIC TIMER PRIORITY LEVEL + SPC 1 +TMRLVL EQU TMRLVL(13) LEVEL 13 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M P R O G R A M O V E R L A Y S I Z E S + SPC 2 + ENT LSIZV4 INITIAL OVERLAY SIZE OF LIBEDT + ENT PSIZV4 SIZE OF AREA 3 + ENT ODBSIZ INITIAL OVERLAY SIZE OF ODEBUG + SPC 4 + EQU LSIZV4($4B8) INITIAL OVERLAY SIZE OF LIBEDT + EQU PSIZV4($4B8) SIZE OF AREA 3 + EQU ODBSIZ($369) INITIAL OVERLAY SIZE OF ODEBUG + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S C M M I N C O R E F L A G +* + ENT SCMMLC + SPC 2 +SCMMLC NUM 0 NON-ZERO IF S C M M RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* O N L I N E D E B U G I N C O R E F L A G +* + ENT CHRSFG + SPC 2 +CHRSFG NUM 0 NON-ZERO IF ODEBUG RUNNING + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* S Y S T E M C H E C K O U T P A R A M E T E R S + SPC 4 +* THE STARTING SECTOR OF THE FAILED CORE IMAGE IS SPECIFIED BY +* THE NAME COBOPS. THIS AREA MUST BE SIZED TO ACCOMODATE A +* FAILED IMAGE OF THE SIZE SPECIFIED BY NAME MSIZV4. THE FAILED +* IMAGE MUST RESIDE ON THE LIBRARY MASS MEMORY UNIT. IF THE +* MASS MEMORY LIBRARY UNIT IS A CARTRIDGE DISK, THE IMAGE AREA +* CANNOT OVERLAP FROM ONE PLATTER TO THE OTHER. + SPC 2 + ENT COBOPS +COBOPS EQU COBOPS($5A00) START SECTOR OF FAILED IMAGE + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE NO-FORTRAN DISPATCHER +* ENTRY POINT + SPC 1 + ENT NDISP + SPC 1 + EQU NDISP($7FFF) + SPC 4 +* THIS ENTRY IS PROVIDED TO LINK THE TIMESHARE PROTECT INTERRUPT +* PROCESSOR ENTRY POINT + SPC 1 + ENT TSIPRC + SPC 1 + EQU TSIPRC($7FFF) + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* F I L E M A N A G E R D A T A +* + SPC 2 + ENT FISLU LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + ENT MAXMMA MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + ENT RPTPER REQUEST PROCESSOR TIMEOUT PERIOD + ENT FDTPER FILE/DIRECTORY TIMEOUT PERIOD + ENT FIDSEC FIS DIRECTORY, S SECTOR ADDRESS + ENT FIBLSA SECTOR ADDRESS OF LAST FIS BLOCK + ENT FIBNIX INDEX TO THE NEXT AVAILABLE LOCATION IN FIBLSA + ENT FSLIST START OF FILE SPACE LIST + ENT FSLLTH FILE SPACE LIST LENGTH + ENT FSLEND END OF FILE SPACE LIST + ENT ADRFMS BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 2 + EQU FISLU(LBUNIT) LOGICAL UNIT OF FIS DIRECTORY AND BLOCKS + EQU MAXMMA(1) MAXIMUM NO. OF MASS MEMORY ATTEMPTS ON ERROR + EQU FDTPER(1) FILE/DIRECTORY TIMEOUT PERIOD (1/10 SEC.) + EQU RPTPER(1) REQUEST PROCESSOR TIMEOUT PERIOD (1/10 SEC.) + SPC 2 +ADRFMS ADC $5BFB BEGINNING OF FILE MANAGER SPACE ON LIB UNIT + SPC 1 +******** THE FOLLOWING MUST BE IN ORDER ******** +FIDSEC ADC 0 1. FIS DIRECTORY, S SECTOR ADDRESS +FIBLSA ADC 0 2. SECTOR ADDRESS OF THE LAST FIS BLOCK +FIBNIX ADC 0 3. INDEX TO NEXT AVAILABLE LOCATION IN FIBLSA +FSLIST EQU FSLIST(*) 4. START OF FILE SPACE LIST + SPC 1 +******** START OF LOGICAL UNIT ENTRIES ******** + SPC 2 +* L O G I C A L U N I T D A T A , U N I T 0 +* + ENT NUMFS0 + EQU NUMFS0($1F40) NUMBER OF FILE SECTORS - UNIT 0 + SPC 1 +LUE0 VFD X9/LUEL0,X7/LBUNIT LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC 0 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS0 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL0 EQU LUEL0(*-LUE0) + EJT +* L O G I C A L U N I T D A T A , U N I T 1 +* + ENT BEGLU1 + ENT NUMFS1 + EQU LUNIT1(22) LOGICAL UNIT OF FILE MANAGER UNIT 1 + EQU BEGLU1(1) BEGINNING FILE SECTOR - UNIT 1 + EQU NUMFS1($37F5) NUMBER OF FILE SECTORS - UNIT 1 + SPC 1 +LUE1 VFD X9/LUEL1,X7/LUNIT1 LU ENTRY LENGTH(7/15), LOGICAL UNIT(0-6) + ADC BEGLU1 ADDRESS OF FILE SPACE POOL + ADC 0 NUMBER OF AVAILABLE SECTORS + ADC NUMFS1 NUMBER OF SECTORS IN THIS FILE SPACE + NUM 0,1 THREAD OF ONE SECTOR LONG + NUM 0,2 THREAD OF TWO SECTORS LONG + NUM 0,3 THREAD OF THREE SECTORS LONG +LUEL1 EQU LUEL1(*-LUE1) + SPC 2 +FSLLTH EQU FSLLTH(*-FSLIST) FILE SPACE LIST LENGTH + SPC 1 +FSLEND NUM -0 END OF FILE SPACE LIST + EJT +* F I L E M A N A G E R D A T A +* + SPC 2 +* LINK UNSELECTED ENTRY POINTS + SPC 2 + ENT BEGLU2,NUMFS2 + EQU BEGLU2($7FFF),NUMFS2($7FFF) + ENT BEGLU3,NUMFS3 + EQU BEGLU3($7FFF),NUMFS3($7FFF) + ENT BEGLU4,NUMFS4 + EQU BEGLU4($7FFF),NUMFS4($7FFF) + ENT BEGLU5,NUMFS5 + EQU BEGLU5($7FFF),NUMFS5($7FFF) + ENT BEGLU6,NUMFS6 + EQU BEGLU6($7FFF),NUMFS6($7FFF) + ENT BEGLU7,NUMFS7 + EQU BEGLU7($7FFF),NUMFS7($7FFF) + ENT BEGLU8,NUMFS8 + EQU BEGLU8($7FFF),NUMFS8($7FFF) +* +* S O R T - M E R G E L O G I C A L U N I T S +* + SPC 1 + ENT SMCLU1 + ENT SMCLU2 + ENT SMCLU3 + ENT SMCLU4 + SPC 1 +SMCLU1 EQU SMCLU1(8) SORT MERGE L.U. 1 +SMCLU2 EQU SMCLU2(8) SORT MERGE L.U. 2 +SMCLU3 EQU SMCLU3(8) SORT MERGE L.U. 3 +SMCLU4 EQU SMCLU4(8) SORT MERGE L.U. 4 + EJT +* M I S C E L L A N E O U S I N F O R M A T I O N +* +* J O B P R O C E S S O R F I L E P A R A M E T E R S +* + SPC 3 + ENT JLLUV4 LOGICAL UNIT OF JOB PROCESSOR FILES + ENT JBFLV4 NUMBER OF JOB PROCESSOR FILES + ENT FBASV4 FIRST FILE NUMBER USED BY JOB PROCESSOR + ENT PKEYV4 JOB FILE PURGE KEY + SPC 3 +JLLUV4 ADC LBUNIT LOGICAL UNIT OF JOB PROCESSOR FILES + SPC 2 + EQU JBFLV4(500) NUMBER OF JOB PROCESSOR FILES + SPC 1 + EQU FBASV4($7F2B-JBFLV4) +* +* NOTE - FILES $7FFD THRU $7FFF ARE RESERVED FOR THE MSOS +* VERIFICATION TESTS, FILES $7FF5 THRU $7FFC ARE +* RESERVED FOR FOREGROUND PSEUDO TAPES, FILES $7FF3 +* THRU $7FF4 ARE RESERVED FOR THE TEXT EDITOR, AND +* FILES $7F2B THRU $7FF2 ARE RESERVED FOR RPGII. + SPC 2 + EQU PKEYV4($3030) JOB FILE PURGE KEY + EJT +* P R E S E T R E G I O N +* +* PRESET PROTECTED ENTRY POINTS FOR USE BY UNPROTECTED PGMS +* +APRSET EQU APRSET(*) + ENT JPRET + SPC 2 +* J O B P R O C E S S O R P R E S E T + SPC 2 + EXT JPRETN + ALF 3,JPRETN +JPRET ADC JPRETN JOB PROCESSOR RETURN +* + SPC 2 +* S N A P D U M P P R E S E T + SPC 2 + EXT SNAPOL + ALF 3,SNAPOL + ADC SNAPOL REGISTER SNAPSHOT +* + SPC 2 +* F I L E M A N A G E R P R E S E T S + SPC 2 + EXT DEFFIL + ALF 3,DEFFIL + ADC DEFFIL DEFINE FILE +* + EXT RELFIL + ALF 3,RELFIL + ADC RELFIL RELEASE FILE +* + EXT DEFIDX + ALF 3,DEFIDX + ADC DEFIDX DEFINE INDEXED FILE +* + EXT LOKFIL + ALF 3,LOKFIL + ADC LOKFIL LOCK FILE +* + EXT UNLFIL + ALF 3,UNLFIL + ADC UNLFIL UNLOCK FILE +* + EXT STOSEQ + ALF 3,STOSEQ + ADC STOSEQ STORE SEQUENTIAL RECORD +* + EXT STODIR + ALF 3,STODIR + ADC STODIR STORE DIRECT +* + EXT STOIDX + ALF 3,STOIDX + ADC STOIDX STORE INDEXED RECORD +* + EXT RTVSEQ + ALF 3,RTVSEQ + ADC RTVSEQ RETRIEVE SEQUENTIAL RECORD +* + EXT RTVDIR + ALF 3,RTVDIR + ADC RTVDIR RETRIEVE DIRECT +* + EXT RTVIDX + ALF 3,RTVIDX + ADC RTVIDX RETRIEVE INDEXED RECORD +* + EXT RTVIDO + ALF 3,RTVIDO + ADC RTVIDO RETRIEVE INDEXED-ORDERED RECORD + SPC 2 +* F I L E M A N A G E R F L A G P R E S E T + SPC 2 + EXT FMPFLG + ALF 3,FMPFLG + ADC FMPFLG + SPC 1 +LPRSET EQU LPRSET(*-APRSET) + EJT + SPC 10 +* S Y S T E M L I B R A R Y D I R E C T O R Y +* +* COMPILED FROM *Y, *YM BY SYSTEM INITIALIZER +SLDIRY EQU SLDIRY(*) + END diff --git a/CDC1700/customization/custom5/sysdat.tap b/CDC1700/customization/custom5/sysdat.tap new file mode 100644 index 00000000..e1bd993d Binary files /dev/null and b/CDC1700/customization/custom5/sysdat.tap differ diff --git a/CDC1700/msosInstall.simh b/CDC1700/msosInstall.simh index 8c913249..c2a756f4 100644 --- a/CDC1700/msosInstall.simh +++ b/CDC1700/msosInstall.simh @@ -1,6 +1,6 @@ # Script to install MSOS5 onto cartridge disks # Requires: -# Installtion tape Default is MSOS5_SL136.tap which can +# Installation tape Default is MSOS5_SL136.tap which can # be copied from bitsavers.org. This # can be overridden by specifying the # installation tape on the command line: @@ -13,7 +13,7 @@ # set env CDD0=MSOS5-A.dsk set env CDD1=MSOS5-B.dsk -set env MT0=%2 +set env MT0=%1 if "%MT0%"=="" set env MT0=MSOS5_SL136.tap set env LPT=MSOSinstall.lpt set cpu instr=basic @@ -46,14 +46,20 @@ echo 1. Partition setup error echo 2. File Manager sequential file error echo 3. Fortran Formatted I/O error echo +send delay=10000 expect "DATE MM/DD/YY \r\r\r\r\n" send "%DATE1%\r"; c expect -p "DATE/TIME MMDDYYHHMM \n\r\n" send "%DATE2%%TIME_HH%%TIME_MM%\r"; c expect "Q\r\r\r\r\n" send "*i,3\r"; c expect "Q\r\r\r\r\n" send "*V\r"; c expect -p "YOU MAY AUTOLOAD" step 100000; autoload cdd; go 0 expect "SET PROGRAM PROTECT \r\n" set cpu protect; c -expect -p ":00 " send after=100000,"\007"; c +expect -p ":00 " send after=1000000,"\007"; c expect "MI\r\n" send "*BATCH\r"; c +expect "MI\r\n" send "DB\r"; c +expect "IN\n\r\007" send "REW,6\r"; c +expect "NEXT \n\r\007" send "ADF,6,2\r"; c +expect "NEXT \n\r\007" send "OFF\r"; c +expect "OUT \n\r" send "\007"; c expect "MI\r\n" send "VERIFY\r"; c expect "TESTS COMPLETE." step 100000 boot mt0 diff --git a/CDC1700/msosRun.simh b/CDC1700/msosRun.simh index 58023d91..06d1d1dc 100644 --- a/CDC1700/msosRun.simh +++ b/CDC1700/msosRun.simh @@ -18,11 +18,8 @@ att lp %DATETIME%.lpt att cdd0 %CDD0% att cdd1 %CDD1% set env DATEANDTIME=%DATE_MM%%DATE_DD%%DATE_19XX_YY%%TIME_HH%%TIME_MM% -# -# The following command will patch out unimplemented devices (1728 card -# reader/punch and 1752 drum) -# -expect "SET PROGRAM PROTECT" set cpu protect; d 056D 0649; d 057E 0649; d 0589 0649; d 057C 0649; c +send delay=10000 +expect "SET PROGRAM PROTECT" set cpu protect; c expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%DATEANDTIME%\r"; c autoload cdd run 0 diff --git a/CDC1700/msosVerify.simh b/CDC1700/msosVerify.simh new file mode 100644 index 00000000..426d4fb2 --- /dev/null +++ b/CDC1700/msosVerify.simh @@ -0,0 +1,51 @@ +# Script to run the MSOS5 installation verification procedure +# Requires: +# Installation tape Default is MSOS5_SL136.tap which can +# be copied from bitsavers.org. This +# can be overridden by specifying the +# installation tape on the command line: +# +# cdc1700 msosInstall.simh install.tap +# +# Creates: +# MSOS5-A.dsk and MSOS5-B.dsk installation disks +# %DATETIME%.lpt unique LPT output file for this run +# +set env CDD0=MSOS5-A.dsk +set env CDD1=MSOS5-B.dsk +set env MT0=%1 +if "%MT0%"=="" set env MT0=MSOS5_SL136.tap +set cpu instr=basic +set cpu mode65k,64k +set throttle 50% +set mt type=1732-3 +set lp type=1742 +att lp %DATETIME%.lpt +att cdd0 %CDD0% +att cdd1 %CDD1% +att -r mt0 %MT0% +set env DATEANDTIME=%DATE_MM%%DATE_DD%%DATE_19XX_YY%%TIME_HH%%TIME_MM% + +set env DATE1=%DATE_MM%/%DATE_DD%/%DATE_19XX_YY% +set env DATE2=%DATE_MM%%DATE_DD%%DATE_19XX_YY% +echo This script will execute the installation verification procedure. It will +echo detect 3 errors: +echo +echo 1. Partition setup error +echo 2. File Manager sequential file error +echo 3. Fortran Formatted I/O error +echo +send delay=10000 +expect "SET PROGRAM PROTECT \r\n" set cpu protect; c +expect "DATE/TIME MMDDYYHHMM \n\r\n" send "%DATE2%%TIME_HH%%TIME_MM%\r"; c +expect ":00 " send after=1000000,"\007"; c +expect "MI\r\n" send "DB\r"; c +expect "IN\n\r\007" send "REW,6\r"; c +expect "NEXT \n\r\007" send "ADF,6,2\r"; c +expect "NEXT \n\r\007" send "OFF\r"; c +expect "OUT \n\r" send "\007"; c +expect "MI\r\n" send "VERIFY\r"; c +expect "TESTS COMPLETE." step 100000 +autoload cdd +run 0 + diff --git a/Visual Studio Projects/CDC1700.vcproj b/Visual Studio Projects/CDC1700.vcproj index d390f5eb..3042bd50 100644 --- a/Visual Studio Projects/CDC1700.vcproj +++ b/Visual Studio Projects/CDC1700.vcproj @@ -212,6 +212,10 @@ RelativePath="..\CDC1700\cdc1700_dp.c" > + + diff --git a/descrip.mms b/descrip.mms index f2d38775..03fa74f1 100644 --- a/descrip.mms +++ b/descrip.mms @@ -698,7 +698,7 @@ CDC1700_SOURCE = $(CDC1700_DIR)CDC1700_CPU.C,$(CDC1700_DIR)CDC1700_DIS.C,$(CDC17 $(CDC1700_DIR)CDC1700_SYS.C,$(CDC1700_DIR)CDC1700_DEV1.C,$(CDC1700_DIR)CDC1700_MT.C,\ $(CDC1700_DIR)CDC1700_DC.C,$(CDC1700_DIR)CDC1700_IOFW.C,$(CDC1700_DIR)CDC1700_LP.C,\ $(CDC1700_DIR)CDC1700_DP.C,$(CDC1700_DIR)CDC1700_CD.C,$(CDC1700_DIR)CDC1700_SYM.C,\ - $(CDC1700_DIR)CDC1700_RTC.C $(CDC1700_DIR)CDC1700_MSOS5.C + $(CDC1700_DIR)CDC1700_RTC.C $(CDC1700_DIR)CDC1700_MSOS5.C $(CDC1700_DIR)CDC1700_DRM.C CDC1700_OPTIONS = /INCL=($(SIMH_DIR),$(CDC1700_DIR))/DEF=($(CC_DEFS)) # diff --git a/makefile b/makefile index e334fd71..7e8def82 100644 --- a/makefile +++ b/makefile @@ -1570,7 +1570,8 @@ CDC1700 = ${CDC1700D}/cdc1700_cpu.c ${CDC1700D}/cdc1700_dis.c \ ${CDC1700D}/cdc1700_dc.c ${CDC1700D}/cdc1700_iofw.c \ ${CDC1700D}/cdc1700_lp.c ${CDC1700D}/cdc1700_dp.c \ ${CDC1700D}/cdc1700_cd.c ${CDC1700D}/cdc1700_sym.c \ - ${CDC1700D}/cdc1700_rtc.c ${CDC1700D}/cdc1700_msos5.c + ${CDC1700D}/cdc1700_rtc.c ${CDC1700D}/cdc1700_drm.c \ + ${CDC1700D}/cdc1700_msos5.c CDC1700_OPT = -I ${CDC1700D} ###