cdc:nos2.source:opl871:stl
Table of Contents
STL
Table Of Contents
- [00008] STL - SYSTEM TAPE LOADER.
- [00010] SYSTEM TAPE LOADER.
- [00137] MAIN PROGRAM.
- [00139] MAIN PROGRAM.
- [00250] TAPE PROCESSING SUBROUTINES.
- [00252] CID - CHECK IDENT TABLE.
- [00276] GCM - GET CMR MEMORY.
- [00309] IDF - ISSUE *DIO* FUNCTION.
- [00320] ROV - READ OVERLAY.
- [00338] RTB - READ TAPE BLOCK.
- [00367] WOG - WAIT FOR OPERATOR *GO.*.
- [00417] INITIAL LOAD PROCESSORS.
- [00419] TPPA - TABLE OF PP AVAILABILITIES.
- [00455] LPP - LOAD PP PACKAGE.
- [00482] OTB - OUTPUT TAPE BLOCK.
- [00499] LOAD PROCESSORS.
- [00501] CPM - LOAD CPU MONITOR.
- [00655] L1M - LOAD *MTR* PRESET OVERLAYS TO RPL.
- [00693] SUBROUTINES.
- [00695] AVB - ADVANCE BUFFER.
- [00728] ENT - PROCESS ENTRY TABLE.
- [00759] SIP - START IDLE PROGRAM.
- [00820] TXT - PROCESS TEXT TABLE.
- [00970] LPR - LOAD PP RESIDENT.
- [01005] PRESET TAPE LOAD.
- [01007] PRS - PRESET TAPE LOAD.
- [01171] MCI - MODIFY CHANNEL INSTRUCTIONS.
- [01212] APP - ACTIVATE PP-S.
- [01229] LIB - LOAD RESIDENT PP PROGRAMS.
- [01312] PLD - GENERATE PLD FOR DEADSTART RPL.
- [01453] WLP - WRITE LIBRARY POINTER.
- [01497] MRER - MAINTENANCE REGISTER ERROR HANDLER.
- [01511] SBA - SET OS BOUNDS ADDRESS.
- [01806] OPMESS - SEND OPERATOR MESSAGE.
- [01830] ALC - AUTOLOAD CONTROLLER.
- [01897] CRN - COMPARE RECORD NAMES.
- [01933] FCN - ISSUE FUNCTION TO CONTROLLER.
- [01969] IRN - INSERT RECORD NAME INTO MESSAGE.
- [01998] LFC - LOAD FIRMWARE RECORD TO CENTRAL MEMORY.
- [02049] LFR - LOAD FIRMWARE RECORD.
- [02111] LOH - LOAD PP DRIVERS FOR BUFFERED DEVICES.
- [02173] MCI - MODIFY CHANNEL INSTRUCTIONS.
- [02194] OAR - OUTPUT (A) REGISTER ON CHANNEL.
- [02206] OFR - OUTPUT FIRMWARE RECORD.
- [02253] RNR - READ NEXT RECORD.
- [02288] SFL - SEARCH FIRMWARE LIST.
- [02312] STS - STATUS CONTROLLER.
- [02332] TCD - TEST CHANNEL DOWN STATUS.
- [02385] TCHF - TABLE OF CHANNELS FOR FIRMWARE LOADING.
- [02395] THCD - TABLE OF 819 MUX CHANNELS TO INITIALIZE.
- [02402] THCC - TABLE OF 819 CONTROLLER CHANNEL MASKS.
- [02411] TFIR - TABLE OF FIRMWARE RECORD NAMES.
- [02433] DFR - DEFAULT FIRMWARE RECORDS TO LOAD ON EACH CHANNEL.
- [02544] SCT - SET CHANNEL TABLE *CCTL* IN CMR.
- [02616] TEQL - TABLE OF EQUIPMENT TYPES REQUIRING FIRMWARE LOADING.
- [02644] TCWT - TABLE OF CONTROLWARE TYPES.
- [02661] SCH - SELECT FULL TRACK CHANNELS FOR EQUIPMENT.
- [02741] RLC - RELOCATE CODE TO MS DRIVER AREA.
- [02822] LFD - LOAD 819 DRIVER.
- [02913] IPN - INSERT FIRST LEVEL PPU NUMBER IN S/C REGISTER.
- [02941] LFP - LOAD FIRST LEVEL PPUS.
- [03010] LCC - LOAD CONTROL MODULE CONTROLWARE.
- [03123] TCMR - TABLE OF CONTROL MODULE RECORD NAMES.
- [03143] ACC - AUTOLOAD CONCURRENT CHANNEL CONTROLLERS.
- [03216] LSL - MAIN ROUTINE.
- [03255] LCP - LOAD CENTRAL PROGRAM.
- [03289] OVERLAID PRESET ROUTINE.
- [03293] PRS - PRESET OVERLAY.
- [03467] CDJ - CREATE DEADSTART JOB.
- [03511] CFE - CREATE FAST ATTACH FNT ENTRIES.
Source Code
- STL.txt
- IDENT STL,STL
- PERIPH
- BASE MIXED
- SST .EST
- SYSCOM
- *COMMENT STL - SYSTEM TAPE LOADER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE STL - SYSTEM TAPE LOADER.
- SPACE 4
- *** STL - SYSTEM TAPE LOADER.
- *
- * G. R. MANSFIELD. 72/02/02.
- * R. J. THIELEN. 75/12/20.
- * W. E. GOEBEL. 76/07/12.
- * P. D. HAAS. 78/06/05.
- SPACE 4
- *** STL IS LOADED INTO PP 2 BY THE SYSTEM INITIALIZATION
- * PROGRAM. STL LOADS THE REMAINDER OF THE SYSTEM TAPE TO
- * CENTRAL MEMORY AND MASS STORAGE DEVICES. IT ALSO LOADS
- * THE PP RESIDENT, THE SYSTEM MONITOR, THE SYSTEM DISPLAY
- * PROGRAM, AND INITIALIZES RECOVERY RELOAD.
- SPACE 4
- *** OPERATOR MESSAGES.
- *
- * REFER TO OPERATORS GUIDE FOR INFORMATION AS TO CAUSE
- * OF ERROR AND RECOMMENDED CORRECTIVE ACTION.
- *
- * *LOADING CXX, RCDNAME.*
- * *TO CENTRAL MEMORY.*
- *
- * *LOADING CXX, RCDNAME.*
- * *TO CONTROL MODULE.*
- *
- * *LOADING CXX, RCDNAME.*
- * *TO CONTROLLER.*
- *
- * *LOADING CXX, RCDNAME.*
- * *TO FLPP.*
- *
- * *AUTOLOAD FAILURE, STXXXX.*
- *
- * *EQXXX, 2X PPS REQUIRED.*
- *
- * *EQXXX, NO FT CONTROLLER.*
- *
- * *MAINTENANCE REGISTER ERROR.*
- SPACE 4
- *** ENTRY CONDITIONS.
- *
- *
- * (T1) = DEADSTART CHANNEL.
- * (T2) = RECOVERY STATUS.
- * (CM) = DEADSTART OPTIONS = 8/,2/RA,1/A,1/G.
- * A = 0 TO ENABLE AUTOLOADING.
- * = 1 TO DISABLE AUTOLOADING.
- * G = 0 TO DISABLE GRENADE OPERATION AFTER AUTOLOAD.
- * = 1 TO ENABLE GRENADE OPERATION AFTER AUTOLOAD.
- * RA = 0, ALLOW RECOVERY.
- * RA = 1, CHECKPOINT ALL DEVICES, ABORT LEVEL 3.
- * RA = 2 OR 3, CHECKPOINT NON-BUFFERED DEVICES,
- * ABORT LEVEL 3 RECOVERY.
- * (DRSW) = DEADSTART EQUIPMENT.
- * (DRSW+1) = FIRST TRACK OF RMS DEADSTART FILE.
- SPACE 4
- ** PROGRAMS CALLED.
- *
- *
- * 0BF - BEGIN FILE.
- SPACE 4
- *CALL COMPMAC
- *CALL COMSCPS
- *CALL COMSDSL
- *CALL COMSDST
- *CALL COMSEJT
- QUAL IOU
- *CALL COMSIOU
- QUAL *
- *CALL COMSJCE
- *CALL COMSMSC
- QUAL MSP
- *CALL COMSMSP
- QUAL *
- *CALL COMSMTR
- *CALL COMSPRD
- *CALL COMSPIM
- QUAL SCD
- *CALL COMSSCD
- QUAL *
- *CALL COMSSCR
- *CALL COMSSSD
- *CALL COMSZOL
- *CALL COMS176
- *CALL COMSHIO
- *CALL COMPCHM
- *CALL COMPMRM
- MRRD EQU /IOU/MRRD
- MRWT EQU /IOU/MRWT
- SPACE 4
- **** DIRECT LOCATION ASSIGNMENTS.
- CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
- FS EQU 20 - 24 FST ENTRY (0BF)
- RS EQU 25 RECOVERY STATUS
- QA EQU 26 FNT ORDINAL (0BQ)
- * EQU 27 SPARE
- ZR EQU 30 - 34 CM ZERO WORD (5 LOCATIONS)
- LL EQU 35 DEADSTART LIBRARY LENGTH
- CA EQU 36 - 37 CURRENT CENTRAL ADDRESS (2 LOCATIONS)
- FN EQU 40 - 44 FILE NAME (0BF)
- WC EQU 42 WORD COUNT OF BLOCK
- BA EQU 43 PPU BUFFER ADDRESS
- BL EQU 44 PPU BUFFER LIMIT
- DH EQU 45 DEADSTART CHANNEL
- NC EQU 46 NUMBER OF CONTROL POINTS
- RN EQU 47 REGISTER NUMBER (COMPMRM)
- RP EQU IR+3 RPL ENTRY COUNT
- FA EQU 57 FNT ORDINAL (0BF)
- DP EQU 60 - 64 DATA POINTER (5 LOCATIONS)
- XA EQU 66 EXCHANGE ADDRESS (FOR CYBER 176 CPU)
- BC EQU 66 - 67 BLOCK COUNTER
- ****
- SPACE 4
- * ASSEMBLY CONSTANTS.
- BUF EQU TPBA TAPE BLOCK BUFFER
- FWBF EQU BUF FIRMWARE BUFFER
- FWBFL EQU 1000 FIRMWARE BUFFER LENGTH (CM WORDS)
- FCCN EQU 0 CONNECT FUNCTION
- FCOC EQU 10 OPERATION COMPLETE FUNCTION CODE
- FCGR EQU 11 GRENADE FUNCTION CODE
- FCGS EQU 12 GENERAL STATUS FUNCTION CODE
- FCLC EQU 71 LOAD CONTROL MODULE CONTROLWARE FROM PP
- FCAL EQU 414 AUTOLOAD FUNCTION CODE
- TITLE MAIN PROGRAM.
- STL SPACE 4
- ** STL - MAIN PROGRAM.
- ORG PPFW
- STL RJM PRS PRESET PROGRAM
- RJM LPP LOAD *MTR*
- RJM LPP LOAD *DSD*
- RJM CPM LOAD *CPUMTR*
- RJM L1M LOAD *MTR* PRESET OVERLAYS TO RPL
- LDN 1 SET NO PP DROP
- STD T1
- RJM MSFW+1 INITIALIZE PP RESIDENT
- CC1 DCN. 0 START *MTR*
- LDN IPRF INITIALIZE *DIO* RESIDENT
- RJM IDF
- RJM RTB READ TAPE BLOCK
- RJM ROV READ OVERLAY *RSL*
- RJM /RSL/SBA SET OS BOUNDS ADDRESS
- RJM /RSL/LIB BUILD DEADSTART RPL
- RJM /RSL/PLD BUILD DEADSTART PLD
- RJM /RSL/APP ACTIVATE PP-S
- * LOAD *MTE* FOR MULTI-MAINFRAME VIA LOW SPEED PORT.
- STLD LDD MA REQUEST PP FOR *MTE*
- * UJN STL2 (NOT LSPMMF)
- CWM STLE,ON
- LDN 1 SELECT NO QUEUING OF PP REQUEST
- STD CM+1
- MONITOR RPPM
- STL1 LDD CM+1 CHECK *MTE* INPUT REGISTER
- CRD DP
- DELAY
- LDD DP+2
- ZJN STL1 IF *MTE* PRESET NOT COMPLETE
- STM STLF POSSIBLE LINK DEVICE LABEL TRACK
- SHN 21-13
- MJN STL2 IF TRACK NUMBER RATHER THAN ERROR STATUS
- LDM STLA+3 PRESERVE *DEADSTART ABORT* STATUS FLAGS
- LPC 3000
- ADD DP+2 ADD *MTE* STATUS
- STM STLA+3
- * LOAD DISK CONTROLWARE, FLPP-S AND BUFFERED I/O DRIVERS.
- STL2 EXECUTE BCL LOAD CONTROLWARE, FLPP-S AND DRIVERS
- LDD RS CHECK RECOVERY STATUS
- LPN SYMK
- ZJN STL3 IF SYSTEM FILE LOAD
- LDN DPPF&IPPF
- STL3 LMN IPPF IDLE/DROP *DIO*
- RJM IDF
- LDC DSCP+ENRS CHANGE TO DEADSTART CONTROL POINT
- STD CM+1
- LPN 37
- STD IR+1
- SHN 7
- ADN STSW SAVE ROLLOUT STATUS
- CRD CN
- CRD DP
- STD T1
- MONITOR CCAM
- * LDN 0 CLEAR ROLLOUT STATUS TO ALLOW *RPPM*
- STD DP+2
- AOD DP INCLUDE *STL* IN PP COUNT
- STD CN
- LDD T1 STORE CP STATUS WORD
- CWD DP
- * CALL *RMS* TO RECOVER MASS STORAGE.
- LDM STLA+3 CHECK ERROR STATUS FLAGS
- NJN STL3.1 IF ERROR STATUS PRESENT
- LDM STLF SET LINK DEVICE LABEL TRACK
- STM STLA+3
- STL3.1 LDD MA REQUEST PP FOR *RMS*
- CWM STLA,ON
- LDN 1 SELECT NO QUEUING OF PP REQUEST
- STD CM+1
- MONITOR RPPM
- LDD CM+1 SET ADDRESS OF *RMS* INPUT REGISTER
- STM STLB+3
- AOD CN INCLUDE *RMS* IN PP COUNT
- LDC 0
- STLC EQU *-1
- ZJN STL4 IF NO JOB AT DEADSTART CP
- CWM .JSNE,ON
- STL4 LDN SMRL PRESERVE MOVE STATUS FOR *REC*
- CWM .SMRL,ON
- LDD T1 RESTORE ROLLOUT STATUS
- CWD CN
- LDD RS CHECK RECOVERY STATUS
- LPN SYMK
- NJN STL5 IF NO SYSTEM FILE LOAD
- LDD MA REQUEST PP FOR *SLL*
- CWM STLB,ON
- LDN 1 SELECT NO QUEUING OF PP REQUEST
- STD CM+1
- MONITOR RPPM
- RJM ROV READ OVERLAY *LSL*
- RJM /LSL/LSL LOAD SYSTEM LIBRARY
- STL5 MONITOR DPPM DROP PP
- LJM PPR EXIT TO PP RESIDENT
- STLA VFD 18/0LRMS,42/0
- STLB VFD 18/0LSLL,6/0,12/1,24/0
- STLE VFD 18/0LMTE,42/0
- STLF CON 0 LINK DEVICE LABEL TRACK
- .JSNE VFD 60/0
- .SMRL VFD 60/0
- TITLE TAPE PROCESSING SUBROUTINES.
- CID SPACE 4
- ** CID - CHECK IDENT TABLE.
- *
- * ENTRY (BA) = BUFFER OUTPUT ADDRESS.
- *
- * EXIT (BA) ADVANCED TO SKIP 7700 TABLE.
- * (T1) = WORD COUNT SKIPPED.
- * (A) = 0 IF NO PREFIX TABLE.
- CID1 LDN 0 CLEAR WORD COUNT
- STD T1
- CID SUBR ENTRY/EXIT
- LDI BA CHECK FIRST WORD
- LMC 7700
- NJN CID1 IF NO 7700 TABLE
- STI BA
- AOM 1,BA SKIP 7700 TABLE
- STD T1
- SHN 2
- ADD T1
- RAD BA
- UJN CIDX RETURN
- GCM SPACE 4,10
- ** GCM - GET CMR MEMORY.
- *
- * ENTRY (A) = LENGTH OF CM BLOCK DESIRED.
- * (CA - CA+1) = FWA OF CENTRAL MEMORY BLOCK.
- *
- * EXIT SIZE OF CMR INCREASED IF NECESSARY TO CONTAIN BLOCK.
- *
- * USES LL, CM - CM+4.
- *
- * MACROS MONITOR.
- GCM SUBR ENTRY/EXIT
- ADD CA+1 SET LWA OF BLOCK
- SHN 6
- ADD CA
- SHN 14
- ADN 77 ROUND UP TO NEXT 100
- SHN -6
- STD LL SAVE REQUIRED CMR SIZE
- GCM1 LDK CMRL
- CRD CM
- LDD CM+4
- SBD LL
- PJN GCMX IF STORAGE AVAILABLE
- LDD LL
- ADN 10 REQUEST EXTRA 1K
- STD CM+1
- LDC 1000 SET CMR REQUEST
- STD CM+2
- MONITOR RSTM
- UJN GCM1 CHECK IF ASSIGNED
- IDF SPACE 4,10
- ** IDF - ISSUE *DIO* FUNCTION.
- *
- * ENTRY (A) = FUNCTION REQUEST.
- IDF SUBR ENTRY/EXIT
- ACN PC
- OAN PC TRANSMIT FUNCTION
- AJM *,PC WAIT FUNCTION ACCEPT
- UJN IDFX RETURN
- ROV SPACE 4
- ** ROV - READ OVERLAY.
- ROV SUBR ENTRY/EXIT
- RJM CID CHECK IDENT TABLE
- LDM 2,BA SET COPY ADDRESS
- ADN 5
- STD T1
- LDN 5
- RAD BA
- ROV1 LDI BA COPY OVERLAY
- STI T1
- AOD T1
- AOD BA
- LMD BL
- NJN ROV1 LOOP UNTIL END OF COPY
- UJN ROVX RETURN
- RTB SPACE 4,10
- ** RTB - READ TAPE BLOCK.
- *
- * EXIT (WC) = (A) = WORD COUNT OF RECORD.
- * (BA) = PPU BUFFER ADDRESS.
- * (BL) = PPU BUFFER LIMIT.
- *
- * CALLS IDF.
- RTB SUBR ENTRY/EXIT
- LDN RTBF ISSUE READ TAPE BLOCK FUNCTION
- RJM IDF
- ACN PC
- IAN PC INPUT CM WORD COUNT
- STD WC
- ZJN RTB1 IF EMPTY PRU
- SHN 2 CONVERT TO BYTE COUNT
- ADD WC
- IAM BUF,PC INPUT TAPE BLOCK
- RTB1 LDC BUF SET PP BUFFER ADDRESS
- STD BA
- LDD WC SET PP BUFFER LIMIT
- SHN 2
- ADD WC
- ADD BA
- STD BL
- LDD WC (A) = WORD COUNT
- UJN RTBX RETURN
- WOG SPACE 4,10
- ** WOG - WAIT FOR OPERATOR *GO.*.
- *
- * ENTRY (A) = ADDRESS OF MESSAGE TO BE WRITTEN TO MS2W.
- *
- * EXIT (A) = 0.
- * OPERATOR ENTERED *GO.* COMMAND.
- *
- * USES T1, CM - CM+4.
- *
- * MACROS PAUSE.
- WOG SUBR ENTRY/EXIT
- STM WOGA SET MESSAGE ADDRESS
- LDD NC
- SHN 7 READ SENSE SWITCH WORD
- ADN SNSW
- STD T1 SAVE ADDRESS
- CRD CM
- LDD CM+3 SET PAUSE BIT
- SCN 1
- LMN 1
- STD CM+3
- LDD T1
- CWD CM
- ADN MS2W-SNSW WRITE MESSAGE TO MS2W
- CWM *,TR
- WOGA EQU *-1 MESSAGE ADDRESS
- WOG1 PAUSE NE
- LDD T1 CHECK PAUSE BIT
- CRD CM
- LDD CM+3
- LPN 1
- ZJN WOGX IF PAUSE BIT CLEAR
- UJN WOG1 LOOP
- SPACE 4,10
- DSTO BSS 1 DEADSTART OPTIONS
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *
- * NOTE - IT IS NECESSARY TO USE *COMPGFP* FOR EST ACCESS,
- * SINCE THE EST MUST BE ACCESSED PRIOR TO *PPR* STARTUP.
- EJT$ EQU 1 SELECT EJT PROCESSOR
- EST$ EQU 1 SELECT EST PROCESSOR
- IFP$ EQU 1 SELECT REMOTE INITIALIZATION CODE
- *CALL COMPGFP
- SPACE 4
- USE INITIAL
- TITLE INITIAL LOAD PROCESSORS.
- TPPA SPACE 4
- ** TPPA - TABLE OF PP AVAILABILITIES.
- * ENTRY = 1 WORD.
- *
- *T, 12/ CH
- * CH CHANNEL NUMBER TO WHICH PP IS ATTACHED + OANI
- TPPA BSS 0
- LOC 0
- CON 0+OANI PP 0
- CON 1+OANI PP 1
- CON 0 PP 2 - NOT NORMAL ASSIGNMENT
- CON 3+OANI PP 3
- CON 4+OANI PP 4
- CON 5+OANI PP 5
- CON 6+OANI PP 6
- CON 7+OANI PP 7
- CON PC+OANI
- CON 11+OANI PP 11
- CON 20+OANI PP 20
- CON 21+OANI PP 21
- CON 22+OANI PP 22
- CON 23+OANI PP 23
- CON 24+OANI PP 24
- CON 25+OANI PP 25
- CON 26+OANI PP 26
- CON 27+OANI PP 27
- CON 30+OANI PP 30
- CON 31+OANI PP 31
- TPPAL BSS 0
- LOC *O
- CON 0 (DUMMY)
- LPP SPACE 4,10
- ** LPP - LOAD PP PACKAGE.
- *
- * CALLS CID, OTB, RTB.
- QUAL LPP
- LPP SUBR ENTRY/EXIT
- RJM RTB READ FIRST BLOCK
- RJM CID CHECK IDENT TABLE
- LPP1 AOM LPPA
- LDM TPPA-1
- LPPA EQU *-1 CURRENT TABLE INDEX
- ZJN LPP1 IF PP NOT AVAILABLE
- STM OTBA SET *OAN*
- LDN 5 SKIP HEADER
- RAD BA
- LPP2 RJM OTB OUTPUT TAPE BLOCK
- LDD WC CHECK BLOCK WORD COUNT
- SHN -11
- ZJN LPPX IF SHORT BLOCK RETURN
- RJM RTB READ NEXT BLOCK
- ZJN LPPX IF EMPTY BLOCK RETURN
- UJN LPP2 OUTPUT NEXT BLOCK
- QUAL *
- LPP EQU /LPP/LPP
- OTB SPACE 4,10
- ** OTB - OUTPUT TAPE BLOCK.
- *
- * ENTRY (BA) = PPU BUFFER ADDRESS.
- * (BL) = PPU BUFFER LIMIT.
- * (OTBA) = OUTPUT INSTRUCTION.
- *
- OTB SUBR ENTRY/EXIT
- LDD BA
- STD T0
- OTB1 LDI T0 OUTPUT BYTE
- OTBA OAN. **
- AOD T0 ADVANCE BYTE
- LMD BL
- NJN OTB1 LOOP TO END OF BLOCK
- UJN OTBX RETURN
- TITLE LOAD PROCESSORS.
- CPM SPACE 4
- ** CPM - LOAD CPU MONITOR.
- CPM SUBR ENTRY/EXIT
- RJM RTB READ BLOCK
- CPM1 RJM AVB ADVANCE BUFFER
- NJN CPM4 IF END OF RECORD
- LDD CM+1 SET TABLE WORD COUNT
- STD T7
- LDD CM CHECK TABLE ID
- SHN 14
- LMN 36
- NJN CPM2 IF NOT ENTRY TABLE
- RJM ENT PROCESS ENTRY TABLE
- UJN CPM3
- CPM2 LMN 40&36
- NJN CPM3 IF NOT TEXT TABLE
- RJM TXT PROCESS TEXT TABLE
- CPM3 LDD T7
- ZJN CPM1 IF END OF TABLE
- RJM AVB ADVANCE BUFFER
- SOD T7
- UJN CPM3 LOOP TO END OF TABLE
- * INITIALIZE CPU MONITOR.
- CPM4 LDN 0 CLEAR ZERO WORD
- STD ZR
- STD ZR+1
- LDN ACPL READ CPU 0 STATUS
- CRD CM
- LDD CM CHECK CPU 0
- SHN 6
- PJN CPM5 IF AVAILABLE
- AOM CPMA SET CPU 1
- CPM5 LDN 20 READ DEADSTART EXCHANGE PACKAGE
- STD CM
- LDD NC
- SHN 7
- CRM BUF,CM
- LDD XA
- ZJN CPM6 IF NOT A 176 CPU
- SHN 11 SET NEA IN EXCHANGE PACKAGE
- STM BUF+6*5+1
- SHN -14
- STM BUF+6*5
- LDN 20 SET MONITOR MODE BIT FOR CYBER 176
- STM BUF+5*3
- LDD XA
- SHN 11
- CWM BUF,CM
- LDC FCCL+DSCU DEAD START CPU
- OAN. SC
- IAN. SC
- LDC FCSB+DSCU
- OAN. SC
- IAN. SC
- UJN CPM7 CHECK OPERATION COMPLETE
- CPM6 LDD NC START CPU
- SHN 7
- CPMA EXN 0
- CPM7 IAN. 14
- STD DP
- CC2 DCN. 0 START *DSD*
- CPM8 IAN. 14
- SBD DP
- PJN CPM9 IF ROLLOVER
- ADC 10000
- CPM9 ADC -1000D
- MJN CPM8 IF NOT ONE MILLISECOND
- ADC 1000D
- RAD DP
- AOD DP+4
- SHN -14
- RAD DP+3
- LDC RTCL
- CWD DP
- LDN 0 CHECK *CPUMTR* LOADED
- CRD CM
- LDD CM+3
- ADD CM+4
- ZJN CPM8 IF OPERATION NOT COMPLETE
- LDD CM
- ZJN CPM11 IF *CPUMTR* PRESET COMPLETE
- RJM RTB
- LDD WC SET WORD COUNT
- STD T1
- NJN CPM10 IF NOT ZERO LENGTH BLOCK
- AOD T1
- CPM10 LDD CM+3
- SHN 14
- ADD CM+4
- CWD WC-4 STORE BLOCK LENGTH
- ADN 1
- CWM BUF,T1
- LDN 0 INDICATE COMPLETE
- CWD ZR
- LJM CPM8 LOOP
- CPM11 LDD CM+3 SET END OF *CPUMTR*
- STD CA
- LDD CM+4
- STD CA+1
- LDN 0 CLEAR OPERATON COMPLETE
- CWD ZR
- CRD DP
- LDN 20 SET EXCHANGE PACKAGE WORD COUNT
- STD T1
- LDN ACPL READ CPU 0 STATUS
- CRD CM
- STD T2
- ADN EFRL-ACPL READ MMF LINK DEVICE STATUS
- CRD CN
- SBN EFRL-RTCL RESTORE REAL TIME CLOCK
- CWM CPMD,ON
- LDD CN+4
- ZJN CPM13 IF NO STATUS IN *EFRL*
- STM STLF POSSIBLE LINK DEVICE LABEL TRACK
- LMC -0 COMPLEMENT RESPONSE
- STM CPMC
- SHN 21-13
- PJN CPM13 IF TRACK NUMBER RATHER THAN ERROR STATUS
- LDM STLA+3 PREVIOUS STATUS/REQUESTS
- LPC ** CLEAR SLOTS FOR NEW STATUS
- CPMC EQU *-1
- ADD CN+4 ADD NEW STATUS
- STM STLA+3
- CPM13 LDD CM CHECK CPU 0 STATUS
- STD DP
- SHN 6
- MJN CPM14 IF CPU 0 NOT AVAILABLE
- RJM SIP START IDLE PROGRAM
- CPM14 AOD T2 CHECK CPU 1 STATUS
- CRD CM
- LDD CM CHECK CPU 1 STATUS
- STD DP
- SHN 6
- MJN CPM15 IF CPU 1 NOT AVAILABLE
- AOM SIPB
- CPME UJN CPM14.1 START IDLE PROGRAM FOR CPU1
- * PSN (DUAL CPU MACHINE WITH CACHE)
- LDC UJNI+77-SIPB+SIP0 USE *INPN* INSTRUCTION
- ERRPL SIP0-SIPB JUMP OUT OF RANGE
- ERRNG SIP0-SIPB+37 JUMP OUT OF RANGE
- STM SIPB
- CPM14.1 RJM SIP START IDLE PROGRAM
- CPM15 LJM CPMX RETURN
- CPMD BSSZ 5
- L1M SPACE 4,10
- ** L1M - LOAD *MTR* PRESET OVERLAYS TO RPL.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS CID, RTB.
- L1M SUBR ENTRY/EXIT
- LDK RPLP SET UP RPL POINTER
- CRD CM
- LDN PPIL RESERVE SPACE FOR PP IDLE CODE
- RAD CA+1
- STD CM+1
- SHN -14 SET RPL ADDRESS
- RAD CA
- STD CM
- LDK RPLP STORE RPL POINTER
- CWD CM
- LDN 6 SET NUMBER OF *MTR* PRESET OVERLAYS
- STD CM+2
- L1M1 RJM RTB READ NEXT *MTR* PRESET OVERLAY
- RJM CID SKIP OVER PREFIX TABLE
- LDD BA
- STM L1MA
- LDM 4,BA LENGTH OF PROGRAM
- STD T1
- LDD CM
- SHN 14
- LMD CM+1
- CWM *,T1 WRITE OVERLAY TO CENTRAL MEMORY
- L1MA EQU *-1
- CWD ZR TERMINATE WITH A ZERO WORD
- STD CM+1 SAVE LWA + 1 OF OVERLAY
- SHN -14
- STD CM
- SOD CM+2
- NJN L1M1 IF MORE PRESET OVERLAYS TO LOAD
- LJM L1MX EXIT
- TITLE SUBROUTINES.
- AVB SPACE 4
- ** AVB - ADVANCE BUFFER.
- *
- * ENTRY (BA) = PPU BUFFER ADDRESS.
- * (BL) = PPU BUFFER LIMIT.
- * (WC) = WORD COUNT OF BLOCK.
- *
- * EXIT (A) .NE 0 IF END OF RECORD.
- * (CM - CM+4) = NEXT CM WORD FROM BUFFER.
- *
- * USES T1.
- *
- * CALLS RTB.
- AVB2 LDI BA COPY WORD
- STI T1
- AOD BA
- AOD T1
- LMN CM+5
- NJN AVB2 LOOP TO END OF WORD
- AVB SUBR ENTRY/EXIT
- AVB1 LDN CM SET BYTE ADDRESS
- STD T1
- LDD BA
- LMD BL
- NJN AVB2 IF BUFFER NOT EMPTY
- LDD WC CHECK BLOCK WORD COUNT
- LMD TH
- NJN AVBX RETURN IF SHORT BLOCK
- RJM RTB READ NEXT BLOCK
- UJN AVB1
- ENT SPACE 4
- ** ENT - PROCESS ENTRY TABLE.
- *
- * ENTRY (BA) = PPU BUFFER ADDRESS.
- *
- * EXIT (BA) ADVANCED.
- *
- * USES CM - CM+4.
- *
- * CALLS AVB.
- ENT SUBR ENTRY/EXIT
- RJM AVB SKIP ENTRY NAME
- SOD T7
- RJM AVB READ ENTRY ADDRESS
- SOD T7
- LDD CM+3 RELOCATE ADDRESS
- LPN 37
- ADD CA
- SHN 14
- ADD CM+4
- ADD CA+1
- STD CM+1 (P) = ENTRY ADDRESS
- SHN -14
- STD CM
- LDD NC STORE (P)
- SHN 7
- CWD CM
- UJN ENTX RETURN
- MRER SPACE 4,10
- SIP SPACE 4
- ** SIP - START IDLE PROGRAM.
- *
- * ENTRY (T1) = EXCHANGE PACKAGE LENGTH.
- * (T2) = ADDRESS OF *ACPL* WORD.
- * (CM+3 - CM+4) = EXCHANGE PACKAGE ADDRESS.
- * (DP - DP+4) = *ACPL* WORD.
- *
- * USES CN - CN+4.
- SIP0 EXN 1 MOVE CPU1 ON DUAL CPU CACHE MACHINE
- * INPN 4 (INTERRUPT PROCESSOR ON PORT 4)
- SIPD EQU *-1
- STM SIPD CLEAR LONG INSTRUCTION
- SIP0.1 LDD CM+3
- SHN 14
- LMD CM+4
- ADN 11 CHECK FOR (X1) = ZERO
- CRD CN
- LDD CN
- NJN SIP0.1 IF IDLE PACKAGE NOT YET ACTIVE
- LDD CM+3
- SHN 14
- LMD CM+4
- UJN SIP2 RESTORE IDLE EXCHANGE PACKAGE
- SIP1 SBD T1 MOVE CPU TO IDLE PACKAGE
- SIPB EXN 0
- * EXN 1 (PROCESSING CPU 1)
- * UJN SIP0 (CPU 1 ON DUAL CPU CACHE MACHINE)
- SIP2 CRD CN
- CWM BFMS,T1 RESTORE IDLE EXCHANGE PACKAGE
- SIP SUBR ENTRY/EXIT
- LDD T2 CLEAR *ACPL* EXCEPT CPU STATUS
- CWD DP
- LDD CM+3 SAVE EXCHANGE PACKAGE
- STM SIPC
- SHN 14
- LMD CM+4
- STM SIPC+1
- CRM BFMS,T1
- SIPA UJN SIP1 MOVE CPU
- * PSN (176 TYPE CPU)
- LDD XA STORE IDLE PACKAGE
- SHN 11
- ADN 5
- CWM SIPC,ON MA
- CWM SIPC,ON EEA
- LDC FCCL+DSCU DEAD START CPU
- OAN. SC
- IAN. SC
- LDC FCSB+DSCU
- OAN. SC
- IAN. SC
- LDD CM+3
- SHN 14
- LMD CM+4
- LJM SIP2 RESTORE IDLE EXCHANGE PACKAGE
- SIPC VFD 60/0
- TXT SPACE 4
- ** TXT - PROCESS TEXT TABLE.
- *
- * ENTRY (T7) = TABLE WORD COUNT.
- *
- * EXIT BUFFER ADVANCED.
- *
- * USES T1 - T7, CM - CM+4, CN - CN+4, CW - CW+1.
- TXT SUBR ENTRY/EXIT
- LDD CM+3 SET LOAD ADDRESS
- LPN 37
- ADD CA
- SHN 14
- ADD CM+4
- ADD CA+1
- STD T5
- SHN -14
- STD T4
- RJM AVB READ RELOCATION WORD
- LDD MA MOVE TO RELOCATION BUFFER
- CWD CM
- CRD CN
- LDN CN SET FIRST BYTE OF RELOCATION WORD
- STD ZR
- * NEXT BYTE OF RELOCATION WORD.
- TXT1 LDN 3 SET BYTE COUNT
- STD ZR+1
- LDI ZR SET RELOCATION BYTE
- STD T6
- AOD ZR ADVANCE BYTE
- TXT2 SOD T7 DECREMENT TABLE COUNT
- ZJN TXTX RETURN IF END OF TABLE
- RJM AVB READ NEXT WORD
- LDD T6 SET RELOCATION BYTE
- SHN -10
- STD T2
- LPN 14
- LMN 10
- ZJN TXT3 IF UPPER POSITIVE
- LMN 4
- NJN TXT4 IF NOT UPPER NEGATIVE
- * PROCESS UPPER RELOCTION.
- LCN 0 -0 FOR NEGATIVE
- TXT3 LMD CA FORMAT ORIGIN FOR RELOCATION
- SHN 14
- LMD CA+1
- SHN 14
- STD T0
- SHN -6
- SCN 77
- ADD CM+2 ADD RELOCATION TO ADDRESS
- SCN 77
- SHN 6
- ADD T0
- RAD CM+1
- SHN -6
- LMD CM+2
- SCN 77
- LMD CM+2
- STD CM+2
- LJM TXT6 CHECK FOR LOWER RELOCATION
- TXT4 LDD T2
- LPN 16
- LMN 4
- ZJN TXT5 IF MIDDLE POSITIVE
- LMN 2
- NJN TXT6 IF NOT NEGATIVE MIDDLE
- * PROCESS MIDDLE RELOCATION.
- LCN 0 -0 FOR NEGATIVE RELOCATION
- TXT5 LMD CA FORMAT ORIGIN FOR RELOCATION
- SHN 14
- LMD CA+1
- STD T1
- SHN -11
- STD T0
- LDD CM+2 RELOCATE ADDRESS
- LPC 777
- RAD T0
- LDD T1
- SHN 11
- SHN -6
- ADD CM+3
- SCN 7
- SHN 6
- RAD T0
- SHN -6
- LMD CM+3
- SCN 7
- LMD CM+3
- STD CM+3
- LDD T0
- LMD CM+2
- LPC 777
- LMD CM+2
- STD CM+2
- UJN TXT8
- TXT6 LDD T2
- LPN 3
- LMN 2
- ZJN TXT7 IF LOWER POSITIVE
- LMN 1
- NJN TXT8 IF NOT LOWER NEGATIVE
- * PROCESS LOWER RELOCATION.
- LCN 0 -0 FOR NEGATIVE RELOCATION
- TXT7 LMD CA FORMAT ORIGIN FOR RELOCATION
- SHN 14
- LMD CA+1
- STD T1
- SHN -14
- STD T0
- LDD CM+3 RELOCATE ADDRESS
- LPN 77
- ADD T0
- SHN 14
- ADD T1
- RAD CM+4
- SHN -14
- LMD CM+3
- LPN 77
- LMD CM+3
- STD CM+3
- TXT8 LDD T4 STORE WORD
- SHN 14
- ADD T5
- CWD CM
- AOD T5 ADVANCE WORD ADDRESS
- SHN -14
- RAD T4
- LDD T6 SHIFT TO NEXT RELOCATION BYTE
- SHN 4
- STD T6
- SOD ZR+1
- ZJN TXT9 IF END OF 3 WORDS
- LJM TXT2 PROCESS NEXT WORD
- TXT9 LJM TXT1 SET NEXT BYTE
- SPACE 4
- ERRMI BUF-* OVERFLOW INTO TAPE BUFFER
- LPR SPACE 4
- ** LPR - LOAD PP RESIDENT.
- LPR2 STM TPPA+CH DISABLE *DIO* ACTIVATION
- LDD T2 RESET COMMUNICATION ADDRESSES
- STD IA
- ADN 1
- STD OA
- ADN 1
- STD MA
- LPR SUBR ENTRY/EXIT
- LDD IA SAVE INPUT REGISTER ADDRESS
- STD T2
- LDN 2 SET PP 2
- STD T1
- LPR1 AOD T1 ADVANCE PP
- LMN TPPAL
- ZJN LPR2 IF END OF PP-S
- LDN 10 ADVANCE COMMUNICATION ADDRESSES
- RAD IA
- ADN 1
- STD OA
- ADN 1
- STD MA
- LDM TPPA,T1 CHECK PP AVAILABILITY
- ZJN LPR1 IF NOT AVAILABLE
- STM LPRA
- LMD HN SET *OAM*
- STM LPRB
- LDC MSFW+1 OUTPUT START ADDRESS
- LPRA OAN. **
- LDC PPFW-1 OUTPUT PPR
- LPRB OAM. 1,**
- UJN LPR1 LOOP
- TITLE PRESET TAPE LOAD.
- PRS SPACE 4
- ** PRS - PRESET TAPE LOAD.
- PRS SUBR ENTRY/EXIT
- LDD CM SAVE DEADSTART OPTIONS
- STM DSTO
- RJM IFP INITIALIZE *COMPGFP*
- * SET BUFFER VALUES.
- LDC BIOL
- CRD CM
- LDD CM SET LOAD ADDRESS FOR *CPUMLD*
- SHN 6
- STD CA+1
- SHN -14
- STD CA
- LDN 0 CLEAR WORD COUNT
- STD WC
- LDN ZERL CLEAR (ZR - ZR+4)
- CRD ZR
- LDN CMRL
- CRD FL-4
- ADN RTCL-CMRL PRESERVE REAL TIME CLOCK
- CRD DP
- CRM CPMD,ON
- ADN EFRL-RTCL-1 FETCH LINK DEVICE LABEL TRACK
- CRD CN
- LDD T2 SET RECOVERY STATUS
- STD RS
- STM STLA+4
- LDD CN+4 SET LINK DEVICE LABEL TRACK
- STM STLF
- LDM DSTO SAVE DEADSTART ABORT OPTIONS
- LPN 14
- SHN 12-3
- STM STLA+3
- LDN SMRL SAVE STORAGE MOVE STATUS
- CRM .SMRL,ON
- * MODIFY CHANNEL INSTRUCTIONS.
- LDC CTTC MODIFY TAPE CHANNEL INSTRUCTIONS
- RJM MCI
- LDD T1 CHECK DEADSTART CHANNEL
- STD DH
- LMN PC
- NJN PRS1 IF NOT PP COMMUNICATIONS CHANNEL
- LDN 12 USE 12 AS PP COMMUNICATIONS CHANNEL
- STD T1
- LDC CTPC MODIFY PP COMMUNICATIONS CHANNELS
- RJM MCI
- LDC OANI+12
- STM TPPA+CH
- * INITIALIZE PP AVAILABLITY TABLE.
- PRS1 LDN PPUL READ PP CONFIGURATION
- CRD CM
- LDN PPCP READ PP COMMUNICATION POINTER
- CRD CN
- LDD CN+4 SET FIRST INPUT REGISTER ADDRESS
- STD T3
- ADN 2*10 SET INPUT REGISTER ADDRESS FOR *STL*
- STD IA
- LDN 0 SET PP0
- STD T1
- LDN 20D PRESET 20 PP-S
- STD T2
- LDD CM+2 CHECK PP COUNT
- SBN 11D
- PJN PRS2 IF MORE THAN 10 PPU,S
- LDN 10D SET 10 PP-S
- STD T2
- PRS2 LDM TPPA,T1 CHECK PP CHANNEL
- ZJN PRS4 IF *STL* PP
- LPN 77
- LMD DH
- NJN PRS3 IF NOT TAPE CHANNEL
- LDC OANI+12
- STM TPPA,T1
- PRS3 LDD T1 READ INPUT REGISTER
- SHN 3
- ADD T3
- CRD CM
- LDD CM
- ZJN PRS4 IF PP AVAILABLE
- LDN 0 CLEAR PP
- STM TPPA,T1
- PRS4 AOD T1 ADVANCE PP
- LMD T2
- NJN PRS2 IF NOT END OF PP-S
- LDM TPPA START *MTR* ON PROPER CHANNEL
- LPN 37
- RAM CC1
- LDM TPPA+1 START *DSD* ON PROPER CHANNEL
- LPN 37
- RAM CC2
- PRS5 LDN 0 CLEAR REMAINDER OF PP-S
- STM TPPA,T1
- AOD T1
- SBN 20D
- MJN PRS5 IF NOT END OF PP-S
- LDN NCPL READ NUMBER OF CONTROL POINTS
- CRD CM
- AOD CM+1 SET CONTROL POINT LIMIT
- STD NC
- LDN LPRF CONDITION *DIO* TO INPUT PP RESIDENT
- RJM IDF
- RJM LPR LOAD PP RESIDENT
- LDK MABL CHECK MAINFRAME TYPE
- CRD CM
- LDD CM+1
- SHN -11
- LMN 7
- NJN PRS6 IF NOT CYBER 176
- LDN ESTP
- STM SIPA SET PASS INSTRUCTION
- CRD CM
- SFA EST,CM+2 SET EXCHANGE PACKAGE BIAS
- ADC 777
- PRS6 SHN -11
- STD XA SAVE EXCHANGE BIAS
- LDN EIBP
- CRD CM
- LDD CM
- SHN 21-12
- PJN PRS6.1 IF NOT DUAL CPU MACHINE WITH CACHE
- LDN PSNI*0 FORCE USE OF *INPN* FOR CPU1
- STM CPME
- SCF. *,MR GET MAINTENANCE CHANNEL
- DCN. MR
- FNC. /IOU/MRDC,MR KILL DEADMAN TIMER
- DCN. MR
- LDC 102604 CREATE LONG INSTRUCTION
- ACN. MR
- OAN. MR
- LDN 1
- IAM. SIPD,MR READ INSTRUCTION TO MEMORY
- DCN. MR
- CCF. *,MR RELEASE CHANNEL
- PRS6.1 LDC 200*DSCP+TFSW
- CRD T7
- LDD T7
- ZJN PRS7 IF NO JOB AT DEADSTART CP
- SFA EJT
- ERRNZ JSNE CROSS REFERENCE *JSNE*
- CRD CM
- CRM .JSNE,ON
- LDN EXJS*2 CLEAR JOB ADVANCE
- STD CM+4
- SFA EJT,T7 UPDATE EJT ENTRY TO ALLOW *CCAM*
- CWD CM
- STM STLC SET ADDRESS OF EJT ENTRY
- SHN -14
- RAM STLC-1
- PRS7 LDK MMFL
- CRD CM
- LDD CM+1
- SHN 21-12
- MJN PRS8 IF LINK DEVICE VIA LOW SPEED PORT
- ISTORE STLD,(UJN STL2) DISABLE LOAD OF *MTE*
- PRS8 LJM PRSX RETURN
- MCI SPACE 4,10
- ** MCI - MODIFY CHANNEL INSTRUCTIONS.
- *
- * ENTRY (A) = ADDRESS OF INSTRUCTION LIST.
- * (T1) = CHANNEL NUMBER.
- *
- * USES T4, T5.
- MCI1 STD T5 SET INSTRUCTION ADDRESS
- LDI T5 MODIFY INSTRUCTION
- SCN 37
- LMD T1
- STI T5
- AOD T4 ADVANCE LIST ADDRESS
- MCI2 LDI T4
- NJN MCI1 IF NOT END OF LIST
- MCI SUBR ENTRY/EXIT
- STD T4 SET LIST ADDRESS
- UJN MCI2 ENTER LOOP
- SPACE 4,10
- ** CHANNEL TABLES.
- CHTB TC
- CHTB PC
- CHTB CH
- IFP HERE *COMPGFP* REMOTE INITIALIZATION CODE
- SPACE 4,10
- ERRZR PC-12 ILLEGAL CHANNEL DEFINITION
- ERRPL *-MXRL-STL+4 *STL* OVERFLOWS TAPE PRU
- TTL STL/RSL - LOAD RESIDENT SYSTEM LIBRARY.
- TITLE
- QUAL RSL
- IDENT RSL,RSL
- *COMMENT STL - LOAD RESIDENT SYSTEM LIBRARY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ORG CPMX
- RSL BSS 0
- APP SPACE 4
- ** APP - ACTIVATE PP-S.
- APP SUBR ENTRY/EXIT
- EXECUTE 1LP SET UP LOAD CODE FOR *PPR*
- LDN 3 START WITH PP3
- STD T1
- APP1 LDM TPPA,T1 CHECK PP AVAILABILITY
- ZJN APP2 IF NOT AVAILABLE
- LMC DCNI&OANI SET *DCN* INSTRUCTION
- STM APPA
- APPA DCN. **
- APP2 AOD T1 ADVANCE PP
- LMN TPPAL
- NJN APP1 LOOP TO END OF PP-S
- UJN APPX RETURN
- LIB SPACE 4
- ** LIB - LOAD RESIDENT PP PROGRAMS.
- LIB6 MONITOR HNGM HANG PP
- LIB SUBR ENTRY/EXIT
- LDN 2 ALLOW FOR TWO WORDS AT END OF PLD
- STD RP INITIALIZE RPL COUNTER
- LIB1 RJM RTB READ TAPE BLOCK
- RJM CID CHECK ID TABLE
- ZJN LIB1 IF NO PREFIX TABLE
- * STORE PP PROGRAM.
- LDM 4,BA
- ZJN LIB6 IF INCORRECT PROGRAM LENGTH
- STD T6 (T6) = PROGRAM LENGTH
- RJM GCM GET NEEDED STORAGE
- LDM 1,BA CHECK FOR *BCL* OVERLAY
- SHN 6
- LMI BA
- LMC 6100
- NJN LIB2 IF NOT 16 BIT PP ROUTINE
- LDM 2,BA
- SHN 14
- LMM 3,BA UNPACK LOAD ADDRESS
- SHN -4
- SBN 5
- STM 2,BA SET LOAD ADDRESS
- SHN -14
- LMN 20 APPEND *PPL* FLAG
- LMM BUF+6
- STM 1,BA SET PACKAGE NAME
- LDN 0
- STM 3,BA CLEAR UNUSED BYTE
- LDM BUF+5
- STI BA COMPLETE PACKAGE NAME
- LIB2 LMC 3RLBC&6100
- NJN LIB4 IF NOT END OF DEADSTART RPL
- SOM LIBB
- UJN LIB4 ENTER LOOP
- LIB3 RJM RTB READ NEXT BLOCK OF PP PROGRAM
- LDN 0 SET HEADER LENGTH
- STD T1
- LIB4 LDD WC SET CM WORD LENGTH OF PROGRAM IN BUFFER
- SBD T1
- STD T5
- LDD BA
- STM LIBA
- LDD CA WRITE PROGRAM TO RPL
- SHN 14
- LMD CA+1
- CWM *,T5
- LIBA EQU *-1
- STD CA+1 SET NEXT RPL ADDRESS
- SHN -14
- STD CA
- LDD T6 CHECK FOR ALL OF PROGRAM WRITTEN TO CM
- SBD T5
- STD T6
- NJN LIB3 IF PROGRAM NOT ALL IN ONE TAPE BLOCK
- LIBB LDN 1
- * LDN 0 IF END OF RPL
- NJP LIB1 IF NOT END OF DEADSTART RPL
- LDD TH ENSURE SUFFICIENT CM FOR PLD
- RJM GCM
- LDN ZERL
- CRD CN
- RJM WLP WRITE END OF RPL
- LDC 4000
- STD CN
- LDN PBKL LENGTH OF BREAKPOINT TABLE
- STD T6
- LIB5 RJM WLP PRESET BREAKPOINT TABLE
- SOD T6
- NJN LIB5 IF NOT END OF TABLE
- LDD CA+1
- STM WLPA SET PLD ADDRESS
- LDD CA
- RAM WLPA-1
- LJM LIBX EXIT
- PLD SPACE 4
- ** PLD - GENERATE PLD FOR DEADSTART RPL.
- *
- * ENTRY (CA - CA+1) = CURRENT ADDRESS.
- *
- * EXIT (CA - CA+1) = ADDRESS OF PROGRAM STATUS TABLE.
- *
- * USES RP, T1, T2, CM - CM+4, CN - CN+4.
- *
- * CALLS ICT, LDB, WLP.
- PLD9 LDC PLDP STORE PLD POINTER
- CWD DP
- RJM LDB LOAD *1DD* BOOTSTRAP
- LDN 1
- RJM ICT INITIALIZE *CPUMTR* TABLES
- PLD SUBR ENTRY/EXIT
- LDC RPLP
- CRD CM FETCH RPL POINTER
- ADN PLDP-RPLP
- CRD DP GET PLD POINTER WORD
- LDD CA
- STD DP SET PLD ADDRESS
- LDD CA+1
- STD DP+1
- PLD1 LDD CM READ RPL ENTRY
- SHN 14
- ADD CM+1
- CRD CN
- LDD CN+4 SET LENGTH OF PROGRAM
- STD T1
- STD CN+3
- LDD CN+2 SET LOAD ADDRESS
- STD CN+4
- LDD CN+1
- SCN 77
- LMD CM SET CM ADDRESS OF PROGRAM
- LMN 40
- STD CN+1
- LDD CM+1
- STD CN+2
- LDD CN CHECK PROGRAM NAME
- SHN -6
- ZJN PLD4 IF END OF RPL
- SBN 1R6
- ZJN PLD2 IF *6XX* MASS STORAGE DRIVER
- SBN 1R7-1R6
- NJN PLD3 IF NOT *7XX* MASS STORAGE ERROR PROCESSOR
- AOD CN+2 ADVANCE CM ADDRESS OF LOAD
- SHN -14
- RAD CN+1
- PLD2 SOD CN+3 DECREMENT LENGTH OF LOAD
- LDN 5 ADVANCE LOAD ADDRESS
- RAD CN+4
- PLD3 RJM WLP WRITE LIBRARY POINTER
- LDD T1 ADVANCE *RPL* ADDRESS
- RAD CM+1
- SHN -14
- RAD CM
- LJM PLD1 PROCESS NEXT ENTRY
- PLD4 LDN ZERL
- CRD CM
- ADN PSTP-ZERL
- CRD CN
- LDN 40 CREATE DUMMY *SFP* SLOT FOR *1DL*
- STD CM+1
- LDD CA
- SHN 14
- ADD CA+1
- CWD CM
- ADN 2 SET END OF PLD
- STD CA+1
- STD CN+3
- SHN -14
- STD CA
- STD CN+2
- LDC PSTP
- CWD CN
- SBN PSTP-PLDP READ PLD POINTER
- CRD CN
- PLDA LDN 0
- ZJN PLD5 IF NEITHER *0BK* NOR *7BK* IN RPL
- SBN 2
- ZJN PLD5 IF BOTH *0BK* AND *7BK* IN RPL
- LDN ZERL
- CRD CM
- LDC 4000
- STD CM
- LDD CN
- SHN 14
- LMD CN+1
- SBN PBKL CLEAR BREAKPOINT TABLE
- CWD CM
- ADN 1
- CWD CM
- * SORT DEADSTART PLD.
- PLD5 LDD RP CHECK FOR END OF SORT
- NJN PLD6 IF NOT END OF SORT
- LJM PLD9 RETURN
- PLD6 LDD MA MOVE PLD ADDRESS
- CWD DP
- CRD T1
- LDN 0 INITIALIZE SORT
- STD RP
- PLD7 AOD T2 ADVANCE ADDRESS
- SHN -14
- RAD T1 READ FIRST ENTRY
- SHN 14
- LMD T2
- CRD CN
- SBN 1
- CRD CM
- ADN 3
- LMD CA+1
- SHN 6
- LMD CA
- ZJN PLD5 IF END OF PASS
- LDD CN
- SBD CM
- MJN PLD8 IF OUT OF ORDER
- NJN PLD7 IF IN ORDER
- LDD CN+1
- SBD CM+1
- PJN PLD7 IF IN ORDER
- * SWITCH ENTRIES.
- PLD8 LDD T1
- SHN 14
- LMD T2
- CWD CM
- SBN 1
- CWD CN
- AOD RP
- UJN PLD7 LOOP
- WLP SPACE 4,10
- ** WLP - WRITE LIBRARY POINTER.
- *
- * ENTRY (CN - CN+4) = WORD TO WRITE TO LIBRARY.
- * (CA - CA+1) = LIBRARY ADDRESS.
- *
- * EXIT (CA - CA+1) ADVANCED BY 1.
- *
- * USES CN+1, CA, CA+1.
- WLP1 LDN 1 ENTER *0BK* IN BREAKPOINT TABLE
- WLP2 SBN PBKL
- ADC 0 ENTER *7BK* IN BREAKPOINT TABLE
- WLPA EQU *-1
- CWD CN
- AOM PLDA ADVANCE COUNTER
- WLP SUBR ENTRY/EXIT
- LDD CN+1
- SCN 77
- SHN 6
- LMD CN CHECK PROGRAM NAME
- SHN 6
- LMC 3R"PBK0"
- ZJN WLP1 IF *0BK*
- LMC 3R"PBK7"&3R"PBK0"
- ZJN WLP2 IF *7BK*
- LDD CA WRITE WORD
- SHN 14
- LMD CA+1
- CWD CN
- AOD CA+1 ADVANCE LIBRARY POINTER
- SHN -14
- RAD CA
- UJN WLPX EXIT
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPICT
- *CALL COMPLDB
- SPACE 4
- ERRMI BUF-* OVERFLOW INTO TAPE BUFFER
- MRER SPACE 4,10
- ** MRER - MAINTENANCE REGISTER ERROR HANDLER.
- *
- * ENTRY FATAL MAINTENANCE REGISTER ERROR.
- *
- * EXIT NO EXIT.
- MRER LDC DSCP*CPAS+MS1W
- CWM MREB,TR
- UJN * HANG
- MREB DATA C*MAINTENANCE REGISTER ERROR.*
- SBA SPACE 4,15
- ** SBA - SET OS BOUNDS ADDRESS.
- *
- * EXIT IOU OS BOUNDS ADDRESS SET TO
- * - FWA OF NVE CM, IF NOS/VE ACTIVE (LEVEL 3 D/S);
- * - END OF NOS UEM, IF UEM DEFINED;
- * - END OF NOS CENTRAL MEMORY, OTHERWISE.
- * IOU BARREL 1 SET TO BLOCK INTERLEAVE IF CYBER 810/830.
- *
- * USES T7, CM - CM+4, CN - CN+4.
- *
- * MACROS LOCKMR, READMR, WRITMR.
- SBA SUBR ENTRY/EXIT
- LDK EABL+IOEI SET IOU CONNECT CODE
- CRD CN
- ADK EIBP-EABL-IOEI GET *DSCB* ADDRESS
- CRD CM
- LDD CN+3
- STM SBAA
- LDD CM+3
- SHN 14
- LMD CM+4
- ZJN SBAX IF NO *EICB*
- ADN D7CM+1 GET NOS/VE FWA AND LWA
- CRD CN
- * CALCULATE OS BOUNDS ADDRESS.
- LDD CN+1
- LMD CN+3
- NJP SBA3 IF NOS/VE ACTIVE, USE NOS/VE FWA
- LDD CN+2
- LMD CN+4
- NJP SBA3 IF NOS/VE ACTIVE, USE NOS/VE FWA
- LDK UEML
- CRD CN
- LDD CN+4
- LPN 2
- ZJN SBA2 IF UEM NOT DEFINED
- LDK EABL+CMEI READ SYSTEM ATTRIBUTE BLOCK
- CRD CM
- LDD CM+1
- LPN 77
- SHN 14
- LMD CM+2
- CRD CM READ EXTENDED MEMORY DESCRIPTOR
- LDD CM+3 GET EXTENDED MEMORY EQUIPMENT SIZE / 1000B
- LPN 77
- SHN 14
- LMD CM+4
- NJN SBA1 IF DEFINED
- LDD CM+3 GET USER EXTENDED MEMORY SIZE / 1000B
- SCN 77
- SHN 6
- LMD CM+2
- SHN 6
- SBA1 ADD CN ADD UEM BASE ADDRESS / 1000B
- STD CN+2
- SHN -14
- STD CN+1
- UJN SBA3 SET OS BOUNDS ADDRESS
- SBA2 LDK MABL SET OS BOUNDS TO END OF NOS CENTRAL MEMORY
- CRD CM
- LDD CM+2 CONVERT FROM WORDS/100B TO WORDS/1000B
- SHN 14
- LMD CM+3
- ADN 7 ROUND UP
- SHN -3
- STD CN+2
- SHN -14
- STD CN+1
- * SET OS BOUNDS ADDRESS.
- SBA3 LOCKMR SET
- READMR RBUF,SBAA,/IOU/IOSB FETCH CURRENT OS BOUNDS DATA
- LDD CN+2 FORM OS BOUNDS ADDRESS/2000B
- ADN 1 ROUND UP
- SHN -1
- STM RBUF+7
- SHN -8D
- STD CN+2
- LDD CN+1
- SHN 3
- ADD CN+2
- STM RBUF+6
- READMR IBUF,SBAA,/IOU/DEMR READ IOU REGISTER
- LDM IBUF+7 CLEAR OS BOUNDS ENABLE
- STD T7
- SCN 10
- STM IBUF+7
- WRITMR IBUF,SBAA,/IOU/DEMR
- WRITMR RBUF,SBAA,/IOU/IOSB WRITE NEW OS BOUNDS
- LDD T7
- STM IBUF+7
- * SET BLOCK INTERLEAVING FOR IOU BARREL 1 ON CYBER 180-810/830.
- LDK EABL+CPEI READ *SAB* ADDRESS
- CRD CM
- LDD CM+1 GET CPU-0 POINTER
- SCN 77
- SHN 6
- LMD CM
- SHN 6
- CRD CM READ CPU-0 ENTRY
- LDD CM+2 CHECK CPU-0 MODEL
- SHN -4
- SBN 0#13
- ZJN SBA4 IF CYBER 810 CPU
- SBN 0#14-0#13
- NJP SBA5 IF NOT CYBER 830 CPU
- SBA4 READMR SBUF,SBAA,/IOU/ISTR READ STATUS REGISTER
- LDM SBUF+7 CHECK RECONFIGURATION
- LPN 20
- ADN 20
- SHN 6-4
- STD T7
- LDM IBUF+7
- LPN 0#3F
- ADD T7
- STM IBUF+7 SET BARREL 1 TO BLOCK INTERLEAVE MODE
- SBA5 WRITMR IBUF,SBAA,/IOU/DEMR
- LOCKMR CLEAR
- LJM SBAX RETURN
- SBAA CON 0 IOU CONNECT CODE
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPMRA
- RBUF EQU * OS BOUNDS REGISTER BUFFER
- SBUF EQU RBUF+12 STATUS REGISTER BUFFER
- IBUF EQU SBUF+12 IOU REGISTER BUFFER
- IBUFL EQU IBUF+12 END OF BUFFERS
- QUAL
- MRER EQU /RSL/MRER UNQUALIFY ROUTINE *MRER*
- TTL STL/BCL - BUFFER CONTROLLER LOADER.
- TITLE
- QUAL BCL
- IDENT BCL,BCLX BUFFER CONTROLLER LOADER
- *COMMENT STL - BUFFER CONTROLLER LOADER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** BCL - BUFFER CONTROLLER LOADER.
- SPACE 4,30
- *** BCL IS LOADED BY STL AFTER PP RESIDENT, THE SYSTEM
- * MONITOR, SYSTEM DISPLAY PROGRAM, RECOVERY PROGRAM AND
- * DEADSTART PPU LIBRARY HAVE BEEN LOADED AND THE PPU,S HAVE
- * BEEN STARTED. BCL IS LOADED IN THE SAME PPU AS STL AND
- * OVERLAYS THE CODE WHICH PERFORMED THE FUNCTIONS LISTED ABOVE.
- *
- * BCL READS THE DEADSTART TAPE UNTIL RECORD *LSL* IS
- * FOUND. THE RECORDS BETWEEN *BCL* AND *LSL* ARE ASSUMED TO BE
- * FIRMWARE RECORDS AND ARE LOADED TO BUFFER CONTROLLERS
- * (SKIPPED IF AUTOLOAD DEADSTART OPTION IS SPECIFIED).
- *
- * FIRMWARE RECORDS HAVE A STANDARD RECORD PREFIX TABLE
- * CONTAINING THE 1 - 7 CHARACTER RECORD NAME. THE PREFIX TABLE
- * IS FOLLOWED BY A ONE WORD HEADER TABLE (FORMAT NOT CHECKED),
- * FOLLOWED BY THE FIRMWARE DATA, FOLLOWED BY AN EOR. RECORDS
- * NOT HAVING A VALID PREFIX TABLE (INCLUDES EMPTY RECORDS) ARE
- * SKIPPED.
- *
- * A TABLE OF EQUIPMENT TYPES (TEQL) REQUIRING FIRMWARE
- * LOADING IS KEPT INTERNALLY TO *BCL*. THE EST IS SCANNED FOR
- * EQUIPMENTS MATCHING THOSE IN *TEQL*. WHEN A MATCH IS FOUND
- * THE RECORD TYPE IS FOUND IN THE *CRTL* ENTRY FOR EACH CHANNEL
- * OF ACCESS.
- *
- * IT IS POSSIBLE TO AVOID LOADING CONTROLWARE FOR MASS
- * STORAGE CHANNELS BY SPECIFYING THE CORRESPONDING NO LOAD
- * PARAMETER (IE. NF, NI, ETC.) AS THE CONTROLWARE RECORD TYPE
- * ON THE *LBC* EQPDECK ENTRY.
- *
- * AFTER A CONTROLLER HAS BEEN AUTOLOADED, A GRENADE
- * OPERATION IS PERFORMED IF THE GRENADE DEADSTART OPTION IS
- * SPECIFIED.
- *
- * BCL ALSO LOADS THE 819 DRIVER TO FIRST LEVEL PP-S ON
- * CYBER 176-S, AND LOADS PP DRIVERS FOR OTHER BUFFERED I/O
- * SYSTEMS.
- SPACE 4,40
- *** OPERATOR MESSAGES.
- *
- * LINE 1 OF DEADSTART CONTROL POINT -
- *
- * * LOADING CXX, RCDNAME.* = CHANNEL *XX* IS BEING
- * LOADED WITH CONTROLWARE RECORD *RCDNAME*. LINE
- * 2 MESSAGE AT THE DEADSTART CONTROL POINT INDICATES THE STATUS
- * OF THE LOAD.
- *
- * LINE 2 OF DEADSTART CONTROL POINT -
- *
- * *TO CENTRAL MEMORY.* = THE FIRMWARE RECORD LISTED IN THE
- * LINE 1 MESSAGE AT THE DEADSTART CONTROL POINT IS BEING
- * COPIED FROM TAPE TO CENTRAL MEMORY. IF THE DEADSTART STOPS
- * WITH THIS MESSAGE AND THE LINE 1 MESSAGE LISTED ABOVE
- * DISPLAYED, THERE IS INSUFFICIENT FREE CENTRAL MEMORY TO
- * CONTAIN THE FIRMWARE RECORD.
- *
- * *TO CONTROLLER.* = THE FIRMWARE RECORD LISTED IN THE LINE 1
- * MESSAGE AT THE DEADSTART CONTROL POINT IS BEING AUTOLOADED TO
- * THE CHANNEL AND EQUIPMENT TYPE LISTED IN THE LINE 1 MESSAGE.
- * IF THE DEADSTART STOPS WITH THIS MESSAGE AND THE LINE 1
- * MESSAGE LISTED ABOVE DISPLAYED, A CONTROLLER OR CHANNEL
- * MALFUNCTION OR INCORRECT EQPDECK EQUIPMENT DEFINITION HAS
- * CAUSED THE AUTOLOAD PROGRAM TO HANG.
- *
- * *TO CONTROL MODULE.* = THE FIRMWARE RECORD LISTED IN LINE 1
- * MESSAGE AT THE DEADSTART CONTROL POINT IS BEING AUTOLOADED TO
- * THE CHANNEL LISTED IN THE LINE 1 MESSAGE. IF THE DEADSTART
- * STOPS WITH THIS MESSAGE AND THE LINE 1 MESSAGE LISTED ABOVE
- * DISPLAYED, A CONTROLLER OR CHANNEL MALFUNCTION OR INCORRECT
- * EQPDECK DEFINITION HAS CAUSED THE AUTOLOAD PROGRAM TO HANG.
- *
- * *TO FLPP.* = THE FLPP-S ARE BEING DEADSTARTED AND LOADED
- * WITH THE 819 DRIVER SOFTWARE, *HCD*. IF THE DEADSTART
- * STOPS WITH THIS MESSAGE AND THE LINE 1 MESSAGE LISTED
- * ABOVE DISPLAYED, A HARDWARE PROBLEM IN THE FLPP OR MUX IS
- * INDICATED.
- *
- * *AUTOLOAD FAILURE, STXXXX.* = FOLLOWING THE AUTOLOADING OF
- * THE RECORD LISTED IN THE LINE 1 MESSAGE AT THE DEADSTART
- * CONTROL POINT TO THE CHANNEL AND EQUIPMENT TYPE LISTED IN THE
- * LINE 1 MESSAGE, CONTROLLER STATUS (STXXXX) INDICATED THAT A
- * CHANNEL PARITY ERROR OR FIRMWARE CHECKSUM ERROR OCCURED FOR
- * THE AUTOLOAD. A STATUS OF *ST0000* INDICATES THAT THE
- * CHANNEL WAS DISCONNECTED WITHOUT STATUS BEING SENT. WHEN
- * THIS MESSAGE IS DISPLAYED, DEADSTART STOPS UNTIL THE *GO*
- * COMMAND IS ENTERED BY THE OPERATOR. WHEN THE *GO*
- * COMMAND IS ENTERED, THE AUTOLOAD IS RETRIED. IF SEVERAL
- * RETRIES CONTINUE TO PRODUCE THIS MESSAGE AND THE LINE 1
- * MESSAGE LISTED ABOVE, A SOLID HARDWARE FAILURE OR BAD
- * FIRMWARE RECORD ON THE DEADSTART TAPE IS INDICATED.
- *
- * *CONTROLLER RESERVED.* = CONTROLLER RESERVED BY OTHER
- * ACCESS. CLEAR RESERVE VIA DEADSTART OF OTHER ACCESS, CLEAR
- * CONTROLLER OR CALL CE TO CHECK HARDWARE.
- *
- * * FUNCTION XXXX TIMEOUT.* = FUNCTION XXXX WAS NOT
- * ACCEPTED BY THE CONTROLLER, NOTIFY THE SITE CE.
- BCL SPACE 4,20
- *** BCL - BUFFER CONTROLLER LOADER.
- *
- * ENTRY (RS) = RECOVERY STATUS.
- * (BA) = BUFFER ADDRESS OF CURRENT TAPE BLOCK.
- * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- * (DSTO) = DEADSTART OPTIONS.
- * (MSFW) = TABLE OF FIRMWARE RECORDS TO LOAD.
- * NEXT RECORD ON DEADSTART TAPE IS THE FIRST FIRMWARE
- * RECORD.
- *
- * EXIT (BA) = BUFFER ADDRESS OF RECORD *LSL*.
- * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- * DEADSTART TAPE POSITIONED TO RECORD *LSL*.
- * AUTOLOADING OF BUFFER CONTROLLERS PERFORMED UNLESS
- * THE AUTOLOAD DEADSTART OPTION IS SPECIFIED.
- *
- * CALLS CRN, DFR, LFP, LFR, LOH, RLC, RNR, SCT, SFL.
- ORG TPPA+5
- BCL SUBR ENTRY/EXIT
- RJM RLC RELOCATE CODE INTO MS DRIVER AREA
- RJM SCT SET CONTROLWARE TYPE FOR CHANNEL
- RJM DFR DEFAULT CONTROLWARE RECORD FOR LOAD
- BCL2 RJM RNR READ NEXT TAPE RECORD
- LDC BCLB CHECK FOR END OF CONTROLWARE
- RJM CRN
- ZJN BCL4 IF RECORD *LSL*
- RJM SFL SEARCH FIRMWARE RECORD LIST
- ZJN BCL2 IF RECORD NOT FOUND
- LDM 4,T7
- STM BCLA
- RJM ** LOAD CONTROLWARE
- BCLA EQU *-1
- UJN BCL2 PROCESS NEXT RECORD
- BCL4 LDM STLA+3
- SHN 0-12
- LMN 1
- ZJN BCL5 IF NO CHECKPOINT OF BUFFERED DEVICES
- BCLC RJM LOH LOAD PP DRIVERS FOR BUFFERED DEVICES
- * UJN BCL5 (NO BUFFERED DEVICES PRESENT)
- BCL5 LJM BCLX RETURN
- BCLB VFD 48/0LLSL
- OPMESS SPACE 4,10
- ** OPMESS - SEND OPERATOR MESSAGE.
- *
- * OPMESS MADD,LINE
- *
- * MADD = ADDRESS OF MESSAGE.
- * LINE = 1 FOR A LINE ONE MESSAGE.
- * = 2 FOR A LINE TWO MESSAGE.
- OPMESS MACRO MADD,LINE
- LDC 200*DSCP+MS_LINE_W
- CWM MADD,TR
- ENDM
- SPACE 4,10
- ** CONSOLE MESSAGES.
- MSGA DATA C* LOADING CXX, RCDNAME.*
- MSGB EQU *-1 BLANK MESSAGE
- MSGC DATA C*TO CENTRAL MEMORY.*
- MSGD DATA C*TO CONTROLLER.*
- MSGE DATA C*AUTOLOAD FAILURE, ST0000.*
- MSGG DATA C*CONTROLLER RESERVED.*
- ALC SPACE 4,20
- ** ALC - AUTOLOAD CONTROLLER.
- *
- * ENTRY (CA - CA+1) = CENTRAL MEMORY ADDRESS OF FIRMWARE
- * RECORD.
- * (CN+4) = LENGTH OF FIRMWARE RECORD.
- * (T4) = CHANNEL TO AUTOLOAD.
- * (T7) = ADDRESS OF RECORD NAME.
- * (DSTO) = DEADSTART OPTIONS.
- *
- * EXIT CONTROLLER AUTOLOADED WITH FIRMWARE.
- * CONTROLLER GRENADED IF DEADSTART OPTION SPECIFIED.
- * WAITS FOR OPERATOR GO IF AN AUTOLOAD FAILURE OCCURS.
- *
- * CALLS C2D, FCN, MCI, OFR, STS, WOG.
- *
- * MACROS DCHAN, OPMESS, RCHAN.
- ALC SUBR ENTRY/EXIT
- RJM MCI MODIFY CHANNEL INSTRUCTIONS
- LDD T4 RESERVE CHANNEL
- RCHAN
- * CHECK THAT THE CONTROLLER IS NOT RESERVED TO THE OPPOSITE
- * ACCESS BEFORE ATTEMPTING THE AUTOLOAD. SKIP THE CHECK FOR
- * 7255/7165 CONTROLLERS, BECAUSE GENERAL STATUS FOR A 7255
- * IS UNDEFINED UNTIL AFTER CONTROLWARE HAS BEEN LOADED, AND
- * BECAUSE *CONTROLLER RESERVED* IS NOT POSSIBLE ON EITHER.
- LDD T7
- LMK ISD
- ZJN ALC2 IF LOADING A 7255, AVOID THE STATUS CHECK
- LMK MA4&ISD
- ZJN ALC2 IF LOADING A 7165
- ALC1 RJM STS GET STATUS
- SHN 21-12
- PJN ALC2 IF CONTROLLER NOT RESERVED TO OTHER ACCESS
- OPMESS MSGG,2
- UJN ALC1 LOOP
- ALC2 OPMESS MSGD,2
- LDC FCAL ISSUE AUTOLOAD FUNCTION
- RJM FCN
- RJM OFR LOAD CONTROLWARE
- RJM STS
- ZJN ALC3 IF AUTOLOAD SUCCESSFUL
- SHN -6 PUT STATUS IN MESSAGE
- RJM C2D
- STM MSGE+12
- LDD FN
- RJM C2D
- STM MSGE+13
- LDC MSGE DISPLAY AUTOLOAD FAILURE MESSAGE
- RJM WOG
- UJN ALC2 RETRY AUTOLOAD
- ALC3 LDM DSTO CHECK DEADSTART OPTIONS
- LPN 1
- ZJN ALC4 IF *GRENADE* NOT SPECIFIED
- LDN FCGR ISSUE GRENADE FUNCTION
- RJM FCN
- ALC4 LDN FCOC ISSUE OPERATION COMPLETE
- RJM FCN
- LDD T4 RELEASE CHANNEL
- DCHAN
- LJM ALCX RETURN
- CRN SPACE 4,10
- ** CRN - COMPARE RECORD NAMES.
- *
- * *CRN* COMPARES THE RECORD NAME IN THE CONTROLWARE RECORD
- * PREFIX TABLE WITH A RECORD NAME SUPPLIED BY THE CALLER TO SEE
- * IF THEY MATCH. A USER-SUPPLIED RECORD NAME BEGINNING WITH
- * THE CHARACTERS *$$* WILL MATCH ANY PREFIX TABLE NAME.
- *
- * ENTRY (A) = ADDRESS OF ONE RECORD NAME.
- * (BA) = ADDRESS OF RECORD PREFIX TABLE CONTAINING
- * SECOND RECORD NAME.
- *
- * EXIT (A) = 0 IF NAMES MATCH.
- * .NE. 0 IF NAMES ARE DIFFERENT.
- *
- * USES T1 - T3.
- CRN SUBR ENTRY/EXIT
- STD T1 SAVE ADDRESS OF RECORD NAME
- LDI T1 CHECK FOR AUTOMATIC MATCH
- LMC 2R$$
- ZJN CRNX IF AN AUTOMATIC MATCH
- LDD BA SET ADDRESS OF NAME IN PREFIX TABLE
- ADN 5
- STD T2
- ADN 4 SET LWA+1 OF NAME IN PREFIX TABLE
- STD T3
- CRN1 LDI T1 COMPARE NAMES
- LMI T2
- NJN CRNX IF NAMES ARE DIFFERENT
- AOD T1 ADVANCE NAME ADDRESSES
- AOD T2
- LMD T3
- NJN CRN1 IF NOT END OF NAMES
- UJN CRNX EXIT (NAMES MATCH)
- FCN SPACE 4,15
- ** FCN - ISSUE FUNCTION TO CONTROLLER.
- *
- * ENTRY (A) = FUNCTION CODE.
- *
- * EXIT (A) = 0 IF GENERAL STATUS FUNCTION TIMED OUT.
- *
- * USES FN.
- *
- * CALLS C2D.
- *
- * MACROS OPMESS.
- FCN SUBR ENTRY/EXIT
- STD FN
- FCN1 FAN CH
- FCN2 IJM FCNX,CH IF FUNCTION ACCEPTED
- ADD ON
- NJN FCN2 IF TIMEOUT NOT SATISFIED
- DCN CH
- LDD FN CHECK FUNCTION
- LMN FCGS
- ZJN FCNX IF GENERAL STATUS REQUEST
- SHN -6
- RJM C2D
- STM FCNB
- LDD FN CONVERT FUNCTION FOR MESSAGE
- RJM C2D
- STM FCNB+1
- OPMESS FCNA,2 DISPLAY TIMEOUT MESSAGE
- LDD FN
- UJN FCN1 RETRY
- FCNA DATA 10H FUNCTION
- FCNB DATA C*0000 TIMEOUT.*
- IRN SPACE 4,10
- ** IRN - INSERT RECORD NAME INTO MESSAGE.
- *
- * ENTRY (T7) = ADDRESS OF RECORD NAME.
- *
- * EXIT RECORD NAME INSERTED IN MESSAGE *MSGA*.
- *
- * USES T1, T2.
- IRN SUBR ENTRY/EXIT
- LDD T7 SET RECORD NAME ADDRESS
- SBN 1
- STD T1
- LDC MSGA+7-1 SET ADDRESS OF RECORD NAME
- STD T2
- IRN1 AOD T1 ADVANCE RECORD NAME ADDRESSES
- AOD T2
- LDI T1 MOVE TWO CHARACTERS
- STI T2
- ZJN IRN2 IF END OF RECORD NAME
- LPN 77
- NJN IRN1 IF NOT END OF RECORD NAME
- LDC 1R.&2R. ADD PERIOD TO MESSAGE
- IRN2 LMC 2R. ADD PERIOD TO MESSAGE
- RAI T2
- LDN 0 SET MESSAGE TERMINATOR
- STM 1,T2
- UJN IRNX
- LFC SPACE 4,20
- ** LFC - LOAD FIRMWARE RECORD TO CENTRAL MEMORY.
- *
- * ENTRY (BA) = ADDRESS OF RECORD PREFIX TABLE.
- * (CA - CA+1) = CURRENT CENTRAL MEMORY ADDRESS.
- * (WC) WORD COUNT OF CURRENT TAPE BLOCK.
- *
- * EXIT (CN+4) = RECORD WORD COUNT.
- * FIRMWARE RECORD LOADED TO CENTRAL MEMORY AT
- * (CA - CA+1).
- *
- * USES BA, T3, T5, T6.
- *
- * CALLS GCM, RTB.
- LFC SUBR ENTRY/EXIT
- OPMESS MSGC,2 DISPLAY LOADING TO CENTRAL MEMORY
- LDD CA SET FIRMWARE LOAD ADDRESS
- STD T5
- LDD CA+1
- STD T6
- LDN 0 CLEAR RECORD WORD COUNT
- STD CN+4
- LDM 1,BA PREFIX TABLE LENGTH
- ADN 2 PREFIX AND NEXT TABLE HEADER LENGTHS
- STD T3
- SHN 2 ADVANCE BUFFER TO BEGINNING OF DATA
- ADD T3
- RAD BA
- LDD WC SET WORD COUNT OF DATA
- SBD T3
- LFC1 ZJN LFCX IF AN EMPTY BLOCK
- STD T3 SAVE BLOCK WORD COUNT
- RAD CN+4 UPDATE RECORD WORD COUNT
- RJM GCM GET CMR SPACE FOR RECORD
- LDD BA SET PPU BUFFER ADDRESS
- STM LFCA
- LDD T5 SET CENTRAL MEMORY BUFFER ADDRESS
- SHN 14
- LMD T6
- CWM *,T3 WRITE BLOCK TO CENTRAL MEMORY
- LFCA EQU *-1 PPU BUFFER ADDRESS
- STD T6 SAVE NEXT CENTRAL MEMORY BUFFER ADDRESS
- SHN -14
- STD T5
- LDD WC CHECK FOR END OF RECORD
- SHN -11
- ZJN LFC1 IF END OF RECORD
- RJM RTB READ NEXT TAPE BLOCK
- UJN LFC1
- LFR SPACE 4,10
- ** LFR - LOAD FIRMWARE RECORD.
- *
- * ENTRY (BA) = ADDRESS OF RECORD PREFIX TABLE.
- * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- * (T7) ADDRESS OF RECORD NAME
- *
- * EXIT RECORD LOADED TO APPROPRIATE CHANNELS.
- *
- * USES T4, CM - CM+4, CN+2.
- *
- * CALLS ALC, C2D, IDF, IRN, LFC, TCD.
- LFR3 OPMESS MSGB,1 CLEAR MESSAGES
- OPMESS MSGB,2
- LFR SUBR ENTRY/EXIT
- RJM IRN INSERT RECORD NAME IN MESSAGE
- LCN 0 INITIALIZE CHANNEL
- STD T4
- STD CN+2 FLAG FIRMWARE NOT IN CM
- * SEARCH FOR CHANNELS TO LOAD.
- LFR1 AOD T4
- LFRA LMN TCHFL INITIALIZE CHANNEL
- * LMN MMXC (IF 819 DRIVER LOAD)
- * LMN TCCFL (IF CONCURRENT CHANNEL LOADS POSSIBLE)
- ZJN LFR3 IF END OF CHANNELS
- LDD T4 CHECK FOR CHANNEL DOWN
- RJM TCD
- MJN LFR1 IF CHANNEL DOWN
- LDM TCHF,T4
- * LDM THCD,T4 (IF 819 DRIVER LOAD)
- LFRB EQU *-1
- LMD T7
- NJN LFR1 IF CURRENT RECORD NOT FOR THIS CHANNEL
- STM TCHF,T4 CLEAR LOAD FOR THIS CHANNEL
- * STM THCD,T4 (IF 819 DRIVER LOAD)
- LFRC EQU *-1
- LDD T4 PUT CHANNEL NUMBER IN MESSAGE
- RJM C2D
- STM MSGA+5
- OPMESS MSGA,1 DISPLAY LOADING MESSAGE
- LDD CN+2
- ZJN LFR2 IF FIRMWARE IN CM
- RJM LFC LOAD FIRMWARE TO CM
- LDN 0 FLAG FIRMWARE IN CM
- STD CN+2
- LFR2 LDN IPPF IDLE *DIO*
- RJM IDF
- RJM ALC AUTOLOAD CONTROLLER
- * RJM LFD (IF 819 DRIVER LOAD)
- * RJM ACC (CONCURRENT CHANNEL LOADS POSSIBLE)
- LFRE EQU *-1
- LDD IA RESTART *DIO*
- ADN CH*10-2*10
- CRD CM
- STD CM+4
- CWD CM
- LJM LFR1 LOOP FOR NEXT CHANNEL
- LOH SPACE 4,15
- ** LOH - LOAD PP DRIVERS FOR BUFFERED DEVICES.
- *
- * ENTRY CHANNEL TABLE *CUN1* WORDS CONTAIN PP DRIVER INPUT
- * REGISTERS FOR BUFFERED I/O SYSTEMS.
- * *CUN1* BYTE 0 = 0 FOR 819 SYSTEMS.
- * CHANNEL TABLE POINTER WORD =
- * 12/NO. ENTRIES ,24/(OTHER STUFF) ,24/CCT FWA.
- *
- * EXIT ONE PP DRIVER LOADED FOR EACH CHANNEL DEFINED.
- *
- * USES FS - FS+4, CM - CM+4.
- *
- * CALLS TCD.
- *
- * MACROS MONITOR.
- LOH SUBR
- LOHA LDC ** ADDRESS OF CHANNEL TABLE POINTER WORD
- CRD FS CHANNEL TABLE POINTER WORD
- LDN CUN1
- RAD FS+4 POINT TO *CUN1* WORD
- SHN -14
- RAD FS+3
- * LDN 0
- STM TCDB SET BUFFER DRIVER LOAD FLAG
- * SCAN CHANNEL TABLE.
- LOH1 LDD FS+3
- SHN 14
- ADD FS+4
- CRD CM READ PP DRIVER INPUT REGISTER
- LDD CM
- ZJN LOH4 IF 819 ENTRY
- LDD MA
- CWD CM STORE INPUT REGISTER FOR PP REQUEST
- LDN 1
- STD CM+1 SELECT NO QUEUEING OF PP REQUEST
- LDD CM+4
- RJM TCD TEST FOR CHANNEL DOWN
- MJN LOH4 IF CHANNEL IS DOWN
- LDD CM+4
- LPN 40
- NJN LOH3 IF CONCURRENT CHANNEL
- MONITOR RPPM
- UJN LOH4 ADVANCE CCT POINTER
- LOH3 SBD CM+4 ISOLATE CHANNEL
- ADN 4
- SHN 0-21
- ADN 2 DETERMINE BARREL SELECT SUBFUNCTION
- STD CM+4
- MONITOR CPRM REQUEST CONCURRENT PP
- LOH4 LDN CCTL
- RAD FS+4 ADVANCE CCT POINTER
- SHN -14
- RAD FS+3
- SOD FS
- NJP LOH1 IF MORE CHANNELS TO SCAN
- LJM LOHX RETURN
- MCI SPACE 4,10
- ** MCI - MODIFY CHANNEL INSTRUCTIONS.
- *
- * ENTRY (T4) = CHANNEL NUMBER.
- *
- * USES T1, T2.
- MCI1 STD T2 SET INSTRUCTION ADDRESS
- LDI T2 MODIFY INSTRUCTION
- SCN 37
- LMD T4
- STI T2
- AOD T1 ADVANCE LIST ADDRESS
- MCI2 LDI T1
- NJN MCI1 IF NOT END OF LIST
- MCI SUBR ENTRY/EXIT
- LDC CTCH SET CHANNEL TABLE ADDRESS
- STD T1
- UJN MCI2 ENTER LOOP
- OAR SPACE 4,10
- ** OAR - OUTPUT (A) REGISTER ON CHANNEL.
- *
- * ENTRY (A) = PARAMETER TO OUTPUT.
- OAR SUBR ENTRY/EXIT
- ACN CH
- OAN CH OUTPUT PARAMETER
- FJM *,CH IF PARAMETER NOT ACCEPTED
- DCN CH
- UJN OARX RETURN
- OFR SPACE 4,20
- ** OFR - OUTPUT FIRMWARE RECORD.
- *
- * ENTRY (CA - CA+1) = CENTRAL MEMORY ADDRESS OF FIRMWARE
- * RECORD.
- * (CN+4) = WORD COUNT OF FIRMWARE RECORD.
- * CONTROLLER FUNCTIONED FOR AUTOLOAD.
- *
- * EXIT FIRMWARE RECORD TRANSFERRED FROM CENTRAL MEMORY TO
- * CONTROLLER.
- * CHANNEL INACTIVE.
- *
- * USES T1, T2, T5, T6.
- OFR3 FJM *,CH WAIT FOR LAST WORD ACCEPT
- DCN CH
- OFR SUBR ENTRY/EXIT
- LDD CA SET CENTRAL MEMORY ADDRESS OF RECORD
- STD T5
- LDD CA+1
- STD T6
- OFRA ACN CH PREPARE CHANNEL FOR OUTPUT
- * PSN (IF 819 DRIVER LOAD)
- LDD CN+4 RECORD WORD COUNT
- OFR1 ZJN OFR3 IF END OF RECORD
- STD T2 SAVE REMAINING WORD COUNT
- STD T1 SET BLOCK WORD COUNT
- ADC -FWBFL-1
- MJN OFR2 IF REMAINING DATA FITS IN BUFFER
- LDC FWBFL SET BLOCK COUNT TO BUFFER SIZE
- STD T1
- OFR2 LDD T5 SET CENTRAL BUFFER ADDRESS
- SHN 14
- LMD T6
- CRM FWBF,T1 READ BLOCK FROM CENTRAL MEMORY
- STD T6 SAVE NEXT CENTRAL MEMORY BUFFER ADDRESS
- SHN -14
- STD T5
- LDD T1 OUTPUT BLOCK TO CONTROLLER
- SHN 2
- ADD T1
- OAM FWBF,CH
- LDD T2 DECREMENT REMAINING RECORD WORD COUNT
- SBD T1
- UJN OFR1 PROCESS NEXT BLOCK
- RNR SPACE 4,20
- ** RNR - READ NEXT RECORD.
- *
- * ENTRY (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- *
- * EXIT (BA) = ADDRESS OF RECORD PREFIX TABLE.
- * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- * RECORDS WITHOUT VALID PREFIX TABLES SKIPPED.
- *
- * USES T1.
- *
- * CALLS RTB.
- RNR2 RJM RTB READ TAPE BLOCK
- LDD WC
- SBN 2
- MJN RNR2 IF BLOCK TOO SHORT
- LDI BA
- LMC 7700
- NJN RNR1 IF NO PREFIX TABLE
- LDM 1,BA PREFIX TABLE LENGTH
- ADN 2 PREFIX AND NEXT TABLE HEADER LENGTHS
- SBD WC
- PJN RNR1 IF TABLES OVERFLOW BLOCK
- RNR SUBR ENTRY/EXIT
- * SKIP TO END OF CURRENT RECORD.
- RNR1 LDD WC
- SHN -11
- ZJN RNR2 IF AT END OF RECORD
- RJM RTB READ NEXT TAPE BLOCK
- UJN RNR1 LOOP TO END OF RECORD
- SFL SPACE 4,10
- ** SFL - SEARCH FIRMWARE LIST.
- *
- * ENTRY (BA) = ADDRESS OF FIRMWARE RECORD PREFIX TABLE.
- *
- * EXIT (A) = 0 IF RECORD NOT FOUND.
- * (A) = (T7) = ADDRESS OF RECORD NAME IF FOUND.
- *
- * CALLS CRN.
- SFL2 LDD T7 RETURN FIRMWARE LIST ADDRESS
- SFL SUBR ENTRY/EXIT
- LDC TFIR SET FWA OF FIRMWARE RECORD TABLE
- STD T7
- SFL1 LDI T7
- ZJN SFLX IF END OF TABLE
- LDD T7 COMPARE RECORD NAMES
- RJM CRN
- ZJN SFL2 IF FOUND IN TABLE
- LDN 5
- RAD T7
- UJN SFL1 CHECK NEXT RECORD NAME
- STS SPACE 4,10
- ** STS - STATUS CONTROLLER.
- *
- * EXIT (A) = (FN) = GENERAL STATUS.
- * (A) = 775777 IF INCOMPLETE STATUS.
- * (FN = 5777 IF INCOMPLETE STATUS.
- *
- * CALLS FCN.
- STS SUBR ENTRY/EXIT
- LDN FCGS
- RJM FCN
- ZJN STS1 IF FUNCTION TIMED OUT
- ACN CH
- STS1 LDC -2000 ERROR STATUS
- STSA IAN CH
- * IAN CH+40 INPUT STATUS
- STD FN
- UJN STSX RETURN
- TCD SPACE 4,15
- ** TCD - TEST CHANNEL DOWN STATUS.
- *
- * ENTRY (A) = CHANNEL.
- *
- * EXIT (A) .LT. 0, IF CHANNEL DOWN.
- *
- * USES T0, T1, DP - DP+4.
- TCD2 LCN 0 FLAG CHANNEL DOWN
- TCD SUBR ENTRY/EXIT
- STD T1 SAVE CHANNEL NUMBER
- LCN 0 INITIALIZE WORD INDEX
- STD T0
- TCD1 AOD T0 INCREMENT WORD INDEX
- LCN 5 DIVIDE BY 5 LOOP
- RAD T1
- PJN TCD1 IF NOT CORRECT INDEX
- ADN 5+DP
- STD T1
- LDC 0 READ CHANNEL ASSIGNMENT TABLE WORD
- TCDA EQU *-1
- ADD T0 ADD CORRECT WORD INDEX
- CRD DP
- LDI T1 GET CHANNEL BYTE
- SHN 21-5
- PJN TCDX IF CHANNEL NOT DOWN
- TCDB UJN TCD2 SET CHANNEL DOWN STATUS
- * PSN (BUFFER DRIVER LOAD)
- LDC ** SET DRIVER NOT LOADED FLAG
- TCDC EQU *-1
- ADD T0
- CRD DP
- LDI T1
- LMD TH
- STI T1
- LDC **
- TCDD EQU *-1
- ADD T0
- CWD DP
- LJM TCD2 RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPC2D
- TCHS SPACE 4,10
- ** CHANNEL TABLE.
- CHTB CH
- SPACE 4
- ** TCHF - TABLE OF CHANNELS FOR FIRMWARE LOADING.
- *
- * ENTRY = 1 WORD = ADDRESS OF FIRMWARE RECORD NAME IN *TFIR*.
- TCHFL EQU 37
- TCHF BSSZ TCHFL
- TCCFL EQU TCHFL+12B ALLOW FOR CONCURRENT CHANNELS
- ERRNG TFIR-TCHF-TCCFL IF OVERFLOW OF TABLE OF CHANNELS
- SPACE 4
- ** THCD - TABLE OF 819 MUX CHANNELS TO INITIALIZE.
- *
- * ENTRY = 1 WORD = ADDRESS OF DRIVER RECORD NAME.
- THCD BSSZ MMXC
- SPACE 4
- ** THCC - TABLE OF 819 CONTROLLER CHANNEL MASKS.
- *
- * ENTRY = 7700B, IF CONTROLLER ON CHANNELS 2+3.
- * 77B, IF CONTROLLER ON CHANNELS 6+7.
- * 7777B, IF BOTH CONTROLLER PRESENT.
- THCC BSSZ MMXC
- SPACE 4
- ** TFIR - TABLE OF FIRMWARE RECORD NAMES.
- *
- * ENTRY = 4 WORDS = FIRMWARE RECORD NAME.
- * TERMINATED BY A ZERO WORD.
- TFIR BSS 0
- FHT VFD 48/0LBCS,12/LFR
- FFT VFD 48/0LBCF,12/LFR
- FFM VFD 48/0LFMD,12/LFR
- FAD VFD 48/0LADP,12/LFR
- ISD VFD 48/0LISD,12/LFR
- PHD VFD 48/0LPHD,12/LFR
- MA4 VFD 48/0LMA464,12/LFR
- M86 VFD 48/0LCCC7990,12/LFR
- HCD VFD 48/0LHCD,12/LFP
- CMD EQU HCD
- CON 0 TERMINATOR
- SPACE 4,10
- ERRNG BUF-* OVERFLOW INTO TAPE BUFFER
- DFR SPACE 4
- ** DFR - DEFAULT FIRMWARE RECORDS TO LOAD ON EACH CHANNEL.
- *
- * *DFR* BUILDS A TABLE (*TCHF*) OF ALL CHANNELS ON WHICH
- * CONTROLWARE MUST BE LOADED AND THE TYPE OF CONTROLWARE TO
- * LOAD ON EACH CHANNEL. FOR 819 DISKS, *DFR* DETERMINES WHAT
- * FLPP-S NEED TO BE LOADED WITH THE 819 DRIVER.
- DFR SUBR ENTRY/EXIT
- LDN ESTP
- CRD CM
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD T6
- LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
- STD T7
- * SEARCH EST FOR EQUIPMENT TYPES REQUIRING LOAD.
- DFR1 AOD T6
- LMD T7
- ZJN DFRX IF END OF MASS STORAGE DEVICES
- SFA EST,T6
- ADK EQDE
- CRD CN READ EST
- LDD CN
- SHN 21-13
- DFR2 PJN DFR1 IF NOT MASS STORAGE
- LDN TEQLL
- STD T1
- DFR3 LCN 2 DECREMENT TABLE INDEX
- RAD T1
- MJN DFR1 IF END OF EQUIPMENT TYPES
- LDD CN+3
- LMM TEQL,T1
- NJN DFR3 IF NO MATCH
- LDM TEQL+1,T1
- STD T1
- LJM 0,T1 EXIT TO PROCESSOR
- * PROCESS *FLPP* SOFTWARE - 819 DISK.
- DFR4 LDD CN+4 FETCH UNIT LIST FROM MST
- SHN 3
- ADN DDLL
- CRD CM
- LDN CN INITIALIZE CHANNEL BYTE INDEX
- STD T3
- DFR5 AOD T3 ADVANCE CHANNEL BYTE INDEX
- LMN CN+3
- ZJN DFR2 IF TWO CHANNELS CHECKED
- LDI T3
- ZJN DFR2 IF SINGLE ACCESS DEVICE
- LPN 37
- STD T4
- LDC HCD
- STM THCD,T4
- STM THCD+1,T4
- LDD CM+4 CHECK CONTROLLER ASSIGNMENT
- LPN 4
- ZJN DFR6 IF NOT ASSIGNED TO CHANNELS 6+7
- LCN 0
- DFR6 LMC 7700 SET CONTROLLER MASK
- STD T0
- LMC 7777
- STM DFRA
- LDM THCC,T4
- LPC **
- DFRA EQU *-1
- LMD T0
- STM THCC,T4
- STM THCC+1,T4
- LJM DFR5 CHECK NEXT CHANNEL
- * PROCESS FULL TRACK / FMD CONTROLWARE.
- DFR8 RJM SCH SET 7154 CHANNELS IN EST
- * CHECK IF EITHER CHANNEL TO THE DEVICE REQUIRES A CONTROLWARE
- * LOAD. IF SO, UPDATE TABLE *TCHF* WITH THE CONTROLWARE TYPE
- * TO LOAD.
- DFR9 LDN CN+1 INITIALIZE CHANNEL BYTE ADDRESS
- STD T3
- DFR10 LDI T3
- ZJN DFR11 IF NULL CHANNEL
- SHN 0-12
- LMN 2
- NJN DFR11 IF CHANNEL DOWN OR DISABLED
- LDI T3
- LPN 77
- STD T4
- LDM MSFW,T4
- STD CM
- ADC 1000-/MSP/CRTH*100
- SHN 0-11
- NJN DFR11 IF CONTROLWARE RELOAD LIMIT REACHED
- LDM DSTO
- LPN 2
- NJN DFR11 IF LOAD DISABLED BY *AUTOLOAD*
- LDD CM
- LPN 77
- STD CM
- LPN 40
- NJN DFR11 IF LOAD DISABLED VIA AN *LBC* COMMAND
- LDM TCWT,CM SET ADDRESS OF CONTROLWARE RECORD NAME
- STM TCHF,T4
- DFR11 AOD T3
- LMN CN+3
- NJN DFR10 IF POSSIBLE SECOND CHANNEL
- LJM DFR1 LOOP FOR NEXT EQUIPMENT
- SCT SPACE 4,10
- ** SCT - SET CHANNEL TABLE *CCTL* IN CMR.
- *
- * *SCT* LOADS THE CHANNEL CONTROLWARE TABLE INTO PP MEMORY. IF
- * NOT RECOVERING CENTRAL MEMORY, *SCT* CONVERTS THE TABLE FROM
- * THE FORMAT USED BY *SET* TO THE FORMAT USED DURING NORMAL
- * SYSTEM OPERATION. DURING DEADSTART, EACH BYTE IN THE TABLE
- * IS FORMATTED AS FOLLOWS-
- * 5/, 1/F, 6/LO
- * WHERE F = 1, IF LOAD OPTION SPECIFIED VIA *LOADBC* COMMAND.
- * LO = CHANNEL CONTROLWARE LOAD OPTION (SEE *COMSDSL*).
- *
- * AFTER *SCT* COMPLETES, EACH BYTE IN THE CHANNEL CONTROLWARE
- * TABLE HAS THE FOLLOWING FORMAT-
- * 6/0, 1/N, 5/CT
- * WHERE N = 1, IF CONTROLWARE IS NOT TO BE LOADED BY *STL*.
- * CT = CONTROLWARE TYPE FOR THE CHANNEL (SEE *COMSDSL*).
- *
- * EXIT *CCTL* IS INITIALIZED IN CMR TO PRESERVE CONTROLWARE
- * TYPE ON EACH CHANNEL.
- *
- * USES T1, T2, CM - CM+4.
- SCT SUBR ENTRY/EXIT
- LDC CHTP
- CRD CM
- LDN CTALL SET TABLE LENGTH
- STD T2
- LDD CM+2 FETCH FIRMWARE LOAD TABLE
- LPN 77
- RAM TCDA-1
- LPN 77
- SHN 14
- LMD CM+3
- STM TCDA
- ADN CTALL*2
- CRM MSFW,T2
- LDD CM+3 SET ADDRESS OF CONTROLWARE TABLE
- ADN CTALL*2
- STM TCDC
- STM TCDD
- SHN -14
- ADM TCDA-1
- STM TCDC-1
- STM TCDD-1
- LDD RS
- LPN SYMK
- LMN SYCM
- ZJP SCTX IF CM RECOVERY
- LDN MXCH
- STD CM
- SCT1 LDM MSFW,CM GET CHANNEL CONTROLWARE TYPE
- LPN 37
- SCT2 STD T1
- SBN MXCLO
- SHN 0-21
- ZJN SCT2 IF INVALID LOAD OPTION
- AOD T1
- LPN 1 GENERATE LOAD / NO LOAD FLAG
- SHN 6-0
- LMD T1 FORM CONTROLWARE TYPE WITH FLAG
- SHN 5-6
- STM MSFW,CM SET IN CONTROLWARE TABLE
- SOD CM
- PJN SCT1 IF NOT END OF TABLE
- LDD CM+2 STORE TABLE OF CHANNEL CONTROLWARE TYPE
- SHN 14
- LMD CM+3
- ADN CTALL*2
- CWM MSFW,T2
- LJM SCTX RETURN
- SPACE 4,10
- ** TEQL - TABLE OF EQUIPMENT TYPES REQUIRING FIRMWARE LOADING.
- *
- * ENTRY = 2 WORD EQUIPMENT MNEMONIC.
- * WORD 1 = EQUIPMENT TYPE.
- * WORD 2 = PROCESSOR ADDRESS.
- TEQL BSS 0
- CON 2RDI,DFR9
- CON 2RDJ,DFR9
- CON 2RDK,DFR8
- CON 2RDL,DFR8
- CON 2RDM,DFR9
- CON 2RDQ,DFR9
- CON 2RDX,DFR8
- CON 2RDY,DFR8
- CON 2RDZ,DFR8
- CON 2RDA,DFR8
- CON 2RDV,DFR4
- CON 2RDW,DFR4
- CON 2RDB,DFR9
- CON 2RDC,DFR9
- CON 2RDD,DFR9
- CON 2RDG,DFR9
- CON 2RSS,DFR9
- TEQLL EQU *-TEQL
- TCWT SPACE 4
- ** TCWT - TABLE OF CONTROLWARE TYPES.
- * ENTRY = 1 WORD.
- *
- * ENTRY IS ADDRESS OF CONTROLWARE RECORD NAME FOR RECORD TYPE.
- TCWT INDEX
- INDEX HTCW,FHT
- INDEX FTCW,FFT
- INDEX FMCW,FFM
- INDEX ADCW,FAD
- INDEX PHCW,PHD
- INDEX IDCW,ISD
- INDEX CCCW,MA4
- INDEX M8CW,M86
- INDEX MXCWT
- SCH SPACE 4,15
- ** SCH - SELECT FULL TRACK CHANNELS FOR EQUIPMENT.
- *
- * ENTRY (CN - CN+4) = EST ENTRY.
- * (T6) = EST ORDINAL.
- * (RS) = RECOVERY STATUS.
- *
- * EXIT FULL TRACK CHANNELS PLACED IN EST FOR USE.
- * MESSAGE *EQXXX, 2X PPS REQUIRED.* ISSUED IF 2X PP
- * STATUS IS NOT PRESENT.
- * MESSAGE *EQXXX, NO FT CONTROLLER.* ISSUED IF
- * NO FT CONTROLWARE IS SPECIFIED FOR LOAD BECAUSE OF
- * *LBC,HT,...* FOR ALL CHANNELS OF ACCESS FOR A FULL
- * TRACK EQUIPMENT.
- * THESE MESSAGES HALT DEADSTART UNTIL AN OPERATOR *GO*
- * IS ENTERED.
- *
- * CALLS WOG.
- *
- * USES T1, T4, CM - CM+4.
- *
- * MACROS MONITOR.
- SCH SUBR ENTRY/EXIT
- LDD RS
- LPN SYMK
- LMN SYCM
- ZJN SCHX IF CM RECOVERY
- LDD CN+3 SET EQUIPMENT TYPE
- STM SCHA
- STM SCHB
- LDD T6 CONVERT UPPER TWO DIGITS OF EST ORDINAL
- SHN -3
- RJM C2D
- STM SCHA+1
- STM SCHB+1
- LDD T6 CONVERT LOWER DIGIT OF EST ORDINAL
- LPN 7
- SHN 6
- ADC 2R0,
- STM SCHA+2
- STM SCHB+2
- LDN 0 CLEAR CHANNEL COUNT
- STD T1
- STD T4
- SCH1 LDM CN+1,T1
- ZJN SCH2.1 IF CHANNEL NOT DEFINED
- SHN 21-10
- PJN SCH2 IF FULL TRACK CONTROLLER
- SHN 10-21 DISABLE THE CHANNEL ACCESS
- LPN 37
- STD CM+2
- LDD T6
- STD CM+1
- LDN DAPS
- STD CM+3
- MONITOR SCSM DISABLE THE CHANNEL PATH
- UJN SCH2.1 CONTINUE
- SCH2 AOD T4
- SCH2.1 AOD T1
- LMN 2
- NJN SCH1 IF MORE CHANNELS
- LDD T4
- ZJN SCH3 IF NO FT CONTROLWARE PRESENT
- LDK MABL CHECK PPU SPEED
- CRD CM
- LDD CM+4
- LPN 7
- NJN SCH4 IF NOT 1XPP SPEED
- LDD RS
- NJN SCH4 IF RECOVERY DEADSTART
- LCN SCHB-SCHA *EQXXX, 2X PPS REQUIRED.*
- SCH3 ADC SCHB *EQXXX, NO FT CONTROLLER.*
- RJM WOG WAIT FOR OPERATOR GO
- SCH4 LJM SCHX EXIT
- SCHA DATA C*EQXXX, 2X PPS REQUIRED.*
- SCHB DATA C*EQXXX, NO FT CONTROLLER.*
- RLC SPACE 4,10
- ** RLC - RELOCATE CODE TO MS DRIVER AREA.
- *
- * CODE MUST BE MOVED INTO THE MASS STORAGE DRIVER AREA OF PP
- * MEMORY TO PROVIDE ENOUGH ROOM FOR A CONTROLWARE DATA BUFFER.
- * EITHER THE CONTROL MODULE, CPP OR THE 819 SUPPORT CODE IS
- * SAVED DEPENDING UPON WHICH TYPE OF DISK THE MAINFRAME USES.
- * (A SINGLE MAINFRAME CANNOT SUPPORT ISMD, CPP OR 819 DISKS AT
- * THE SAME TIME.) THE CODE FOR THE DISK TYPE NOT IN USE IS
- * OVERLAID BY THE DATA BUFFER.
- *
- * EXIT ROUTINES MOVED TO MS DRIVER AREA.
- *
- * USES T1, T2, CM - CM+4.
- RLC SUBR ENTRY/EXIT
- LDC BIOL
- CRD CM
- LDD CM+1
- SHN 14
- ADD CM+2
- NJN RLC0 IF BUFFERED DEVICES DEFINED
- ISTORE BCLC,(UJN BCL5) DISABLE BUFFERED DRIVER LOADS
- UJN RLC0.1 CONTINUE
- RLC0 ADN CCTP FORM ADDRESS OF CHANNEL TABLE POINTER
- STM LOHA+1
- SHN -14
- RAM LOHA
- RLC0.1 LDC .FWA SET MOVE PARAMETERS
- STD T1
- LDC .LOA
- STD T2
- LDN CFGL
- CRD CM
- LDD CM+3
- SHN 21-11
- MJN RLC1 IF ISMD SUBSYSTEM PRESENT
- LDK MABL CHECK FOR POSSIBLE CPP LOAD
- CRD CM
- LDD CM+1
- SHN 0-13
- NJP RLC3 IF NOT A 8XX MAINFRAME
- * LDN 0 DISABLE FLPP PROCESSING
- STM HCD
- LDC .FWC SET UP CPP CODE RELOCATION
- STD T1
- LDN TCCFL-TCHFL ADJUST MAXIMUM CHANNEL NUMBER
- RAM LFRA
- LDC ACC SET JUMP TO CPP CODE
- STM LFRE
- LDC .LWC
- UJN RLC2 RELOCATE CPP CODE
- RLC1 LDC .FWI SET ISMD SUBSYSTEM CODE ADDRESSES
- STD T1
- LDD MA MOVE *CMD* ENTRY TO TABLE *TFIR*
- CWM RLCB,ON
- SBN 1
- CRM CMD,ON
- LDC .LWI
- RLC2 STM RLCA
- RLC3 LDI T1 MOVE NEXT WORD TO MS DRIVER AREA
- STI T2
- AOD T2
- AOD T1
- LMC .LWA LAST WORD OF 819 CODE TO MOVE
- RLCA EQU *-1
- * LMC .LWI (LAST WORD OF ISMD SUBSYSTEM CODE TO MOVE)
- * LMC .LWC (LAST WORD ADDRESS OF CPP CODE TO MOVE)
- NJN RLC3 IF MORE TO MOVE
- LDN 40
- RAM STSA
- LJM RLCX RETURN
- RLCB VFD 48/0L$$,12/LCC
- .FWA BSS 0 FIRST WORD TO BE MOVED TO MS DRIVER AREA
- LOC MSFW+5*CTALL
- .LOA BSS 0 LOAD ADDRESS IN MS DRIVER AREA
- LFD SPACE 4,10
- ** LFD - LOAD 819 DRIVER.
- *
- * ENTRY (T4) = FLPP NUMBER.
- * (CA - CA+1) = CM ADDRESS OF DRIVER RECORD.
- *
- * EXIT DRIVER LOADED AND STARTED.
- *
- * USES T4, DP - DP+4.
- *
- * CALLS IPN, MCI, OFR.
- *
- * MACROS DCHAN, RCHAN.
- LFD SUBR ENTRY/EXIT
- OPMESS LFDD,2 DISPLAY LOADING MESSAGE
- LDD CA INITIALIZE DRIVER
- SHN 14
- LMD CA+1
- CRD CM
- ADN 1
- CRD DP
- LDD HN
- STD CM
- STD CM+1
- LDD T4 SET FLPP NUMBER
- STD DP
- LDM LFDC SET FLPP CONFIGURATION
- STD DP+1
- LDM THCC,T4
- STM LFDA
- LDM LFDC+1
- LPC **
- LFDA EQU *-1
- STD DP+2
- LDD CA
- SHN 14
- LMD CA+1
- CWD CM
- ADN 1
- CWD DP
- RJM IPN INSERT FLPP NUMBER IN S/R REGISTER
- LDD T4 SAVE THE FLPP NUMBER
- STM LFDB
- LDN MC SET CHANNEL TO SCANNER CHANNEL
- STD T4
- RJM MCI MODIFY CHANNEL INSTRUCTIONS
- LDN MC RESERVE THE CHANNEL
- RCHAN
- LDC FCSB+ENSC ENABLE SCANNER INTERFACE
- OAN. SC+40
- IAN. SC+40
- ACN MC ACTIVATE SCANNER CHANNEL
- LDC FCSB+DSFP DEADSTART THE FLPP
- OAN. SC+40
- IAN. SC+40
- LDC FCSB+CPUE CLEAR FLPP ERROR CONDITION
- OAN. SC+40
- IAN. SC+40
- LDC FCCL+PPUE CLEAR FLPP ERRORS IN SCR
- OAN. SC+40
- IAN. SC+40
- LDC FCCL+CPUE
- OAN. SC+40
- IAN. SC+40
- LDC FCCL+DSFP CLEAR DEADSTART
- OAN. SC+40
- IAN. SC+40
- RJM OFR OUTPUT DRIVER TO FLPP
- LDC FCCL+ENSC DISABLE SCANNER CHANNEL
- OAN. SC+40
- IAN. SC+40
- LDN MC RELEASE THE SCANNER CHANNEL
- DCHAN
- LDC ** RESTORE THE FLPP NUMBER
- LFDB EQU *-1
- STD T4
- LJM LFDX RETURN
- LFDC VFD 3/0 SCANNER CHANNEL
- VFD 3/1 CPU CHANNEL
- VFD 3/0 NOT USED
- VFD 3/4 PARTNER FLPP CHANNEL
- VFD 3/3 CONTROLLER *A* DATA CHANNEL
- VFD 3/2 CONTROLLER *A* CONTROL CHANNEL
- VFD 3/7 CONTROLLER *B* DATA CHANNEL
- VFD 3/6 CONTROLLER *B* CONTROL CHANNEL
- LFDD DATA C*TO FLPP.*
- IPN SPACE 4,10
- ** IPN - INSERT FIRST LEVEL PPU NUMBER IN S/C REGISTER.
- *
- * ENTRY (T4) = FLPP NUMBER.
- *
- * EXIT (A) = 0.
- *
- * USES T1, T2.
- IPN1 LDD T1 CHECK NEXT BIT
- SHN -1
- IPN2 STD T1
- LPN 1
- ZJN IPN3 IF BIT TO BE CLEARED
- LDC FCSB&FCCL
- IPN3 LMD T2
- OAN. SC+40
- IAN. SC+40
- AOD T2 ADVANCE BIT NUMBER
- LMC FCCL+SCSL+4
- NJN IPN1 IF NOT END OF BITS
- IPN SUBR ENTRY/EXIT
- LDC FCCL+SCSL PRESET FUNCTION AND BIT NUMBER
- STD T2
- LDD T4
- UJN IPN2 ENTER LOOP
- LFP SPACE 4,10
- ** LFP - LOAD FIRST LEVEL PPUS.
- *
- * ENTRY (BA) = ADDRESS OF RECORD PREFIX TABLE.
- * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- * (T7) = ADDRESS OF RECORD NAME.
- *
- * EXIT FLPP DRIVER LOADED TO APPROPRIATE FLPPS.
- *
- * USES T4.
- *
- * CALLS LFR.
- LFP SUBR ENTRY/EXIT
- LDC LFPE PRESET TO SWITCH TO 819 DRIVER LOAD
- LFP1 STM LFPA
- STM LFPC
- LDN 0
- STD T4
- LFP2 LDM LFPD,T4 SWITCH FUNCTIONS
- STM LFPB
- ZJN LFP3 IF END OF INSTRUCTIONS TO SWITCH
- LDM **,T4
- LFPA EQU *-1
- STM **
- LFPB EQU *-1
- AOD T4
- UJN LFP2 LOOP FOR NEXT ENTRY
- LFP3 LDC ** TEST FOR END OF LOAD
- LFPC EQU *-1
- LMC LFPF
- ZJN LFPX IF END OF LOAD
- RJM LFR LOAD 819 DRIVERS
- LDC LFPF SWITCH BACK TO FIRMWARE LOADING
- UJN LFP1 SET UP SWITCH
- * TABLE OF ADDRESSES TO MODIFY.
- LFPD CON LFRA
- CON LFRB
- CON LFRC
- CON LFRE
- CON OFRA
- CON 0 END OF TABLE
- * TABLE OF 819 LOAD VALUES.
- LFPE CON LMNI+MMXC
- CON THCD
- CON THCD
- CON LFD
- CON PSNI
- * TABLE OF FIRMWARE LOAD VALUES.
- LFPF CON LMNI+TCHFL
- CON TCHF
- CON TCHF
- CON ALC
- CON ACNI+CH
- SPACE 4,10
- ERRNG PPFW-* CODE OVERFLOWS MS DRIVER AREA
- LOC *O
- .LWA BSS 0 LWA TO MOVE TO MS DRIVER AREA
- SPACE 4,10
- .FWI BSS 0 FIRST WORD TO BE MOVED TO MS DRIVER AREA
- LOC MSFW+5*CTALL
- LCC SPACE 4,15
- ** LCC - LOAD CONTROL MODULE CONTROLWARE.
- *
- * ENTRY (T7) = ADDRESS OF RECORD NAME.
- * (BA) = ADDRESS OF RECORD PREFIX TABLE.
- * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
- *
- * EXIT RECORD LOADED TO APPROPRIATE CHANNELS.
- *
- * USES T3 - T7, CM - CM+4, DP - DP+4.
- *
- * CALLS CRN, C2D, FCN, IDF, IRN, LFC, MCI, OAR, OFR, STS, TCD,
- * WOG.
- *
- * MACROS DCHAN, DELAY, OPMESS, RCHAN, SFA.
- LCC SUBR ENTRY/EXIT
- LDM DSTO
- LPN 2
- NJN LCCX IF LOAD DISABLED BY *AUTOLOAD*
- LDC TCMR-5 FIND FIRMWARE TYPE
- STD T7
- LCC1 LDN 5
- RAD T7
- LDI T7
- ZJN LCCX IF END OF TABLE
- LDD T7
- RJM CRN COMPARE RECORD NAMES
- NJN LCC1 IF NO MATCH
- RJM IRN INSERT RECORD NAME IN MESSAGE
- RJM LFC LOAD FIRMWARE TO CM
- LDM 4,T7 SAVE FIRMWARE TYPE
- STD RN
- LDN ESTP
- CRD T7-2
- LCC3 SOD T7
- MJN LCCX IF END OF EST
- SFA EST GET EST ENTRY
- ADK EQDE
- CRD CM
- ADK EQAE-EQDE
- CRD DP
- LDD CM+3
- LMC 2RCM
- NJN LCC3 IF NOT *CM* DEVICE
- LDD DP+2
- LPN 77
- LMD RN
- NJN LCC3 IF WRONG CONTROLWARE OR NOLOAD SET
- LDD CM+1
- SHN 21-12
- PJN LCC4 IF FIRST CHANNEL NOT DOWN
- LDD CM+2
- ZJN LCC3 IF NO SECOND CHANNEL
- SHN 21-12
- MJN LCC3 IF SECOND CHANNEL DOWN
- LCC4 SHN 12-0+1
- LPN 37
- STD T4
- RJM TCD TEST CHANNEL DOWN
- MJN LCC3 IF CHANNEL DOWN
- LDD T4
- RJM C2D PUT CHANNEL NUMBER IN MESSAGE
- STM MSGA+5
- OPMESS MSGA,1 DISPLAY LOADING MESSAGE
- LDN IPPF IDLE *DIO*
- RJM IDF
- RJM MCI MODIFY CHANNEL INSTRUCTIONS
- LDD T4
- RCHAN RESERVE CHANNEL
- OPMESS LCCA,2 *TO CONTROL MODULE.*
- LCC5 LDN FCCN ISSUE CONNECT FUNCTION
- RJM FCN
- LDM DSTO CHECK *GRENADE*
- LPN 1
- SHN 21-0
- LMD CM+4 OUTPUT CONTROL MODULE EQUIPMENT NUMBER
- SHN -11+3
- SCN 7
- RJM OAR OUTPUT (A) REGISTER ON CHANNEL
- RJM STS STATUS CONTROLLER
- NJN LCC5 IF GENERAL STATUS NOT ZERO
- LDN FCLC ISSUE CONTROLWARE LOAD FROM PP FUNCTION
- RJM FCN
- RJM OFR OUTPUT FIRMWARE RECORD
- LCC6 DELAY
- RJM STS STATUS CONTROLLER
- ZJN LCC7 IF COMPLETE
- SCN 2
- ZJN LCC6 IF CONTROL MODULE BUSY
- SHN -6
- RJM C2D
- STM MSGE+12
- LDD FN
- RJM C2D
- STM MSGE+13
- LDC MSGE
- RJM WOG WAIT FOR OPERATOR GO
- LJM LCC5 RETRY
- LCC7 LDN FCOC ISSUE OPERATION COMPLETE
- RJM FCN
- LDD T4 DROP CHANNEL
- DCHAN
- LDD IA RESTART *DIO*
- ADN CH*10-2*10
- CRD CM
- STD CM+4
- CWD CM
- LJM LCC3 PROCESS NEXT EST ENTRY
- LCCA DATA C*TO CONTROL MODULE.*
- TCMR SPACE 4,10
- ** TCMR - TABLE OF CONTROL MODULE RECORD NAMES.
- *
- * ENTRY = 5 WORDS = 48/ RN ,12 / CT
- * RN = RECORD NAME.
- * CT = CONTROLWARE TYPE.
- TCMR BSS 0
- VFD 48/0LCMD,12/CMCW
- VFD 48/0LCM2,12/C2CW
- CON 0 TERMINATOR
- SPACE 4,10
- ERRNG PPFW-*
- LOC *O
- .LWI BSS 0
- SPACE 4,10
- .FWC BSS 0 FIRST WORD TO BE MOVED TO MS DRIVER AREA
- LOC MSFW+5*CTALL
- ACC SPACE 4,20
- ** ACC - AUTOLOAD CONCURRENT CHANNEL CONTROLLERS.
- *
- * ENTRY (CA - CA+1) = CMA OF FIRMWARE.
- * (CN+4) = RECORD LENGTH TO LOAD.
- * (T4) = CHANNEL TO AUTOLOAD.
- * (DSTO) = DEADSTART OPTIONS.
- *
- * EXIT CONTROLLER AUTOLOADED.
- * CONTROLLER GRENADED IF DEADSTART OPTION SELECTED.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS ALC, *1CL*.
- ACC2 RJM ALC AUTOLOAD CONTROLLER
- ACC SUBR ENTRY/EXIT
- LDD T4
- LPN 77 SET CHANNEL
- STD CM
- LPN 40
- ZJN ACC2 IF NOT A CONCURRENT CHANNEL
- LDD CN+4 SET RECORD LENGTH
- STD CM+1
- LDM DSTO SET DEADSTART OPTIONS
- STD CM+2
- LDD CA SET FIRMWARE RECORD ADDRESS
- STD CM+3
- LDD CA+1
- STD CM+4
- LDD MA
- CWM ACCA,ON
- CWD CM
- LDN 1 SELECT NO QUEUEING OF REQUEST
- STD CM+1
- LDN 44 SET BARREL SELECT
- SBD T4
- SHN 0-21
- ADN 2
- STD CM+4
- MONITOR CPRM REQUEST A CONCURRENT PP
- LDD CM+1
- NJN ACC0 IF CPP ASSIGNED
- OPMESS ACCB,2 *NO CPP AVAILABLE.*
- UJN * HANG
- ACC0 ADN 2
- STD T1
- ACC1 CRD CM CHECK FOR LOAD COMPLETE
- LDD CM
- LMC 7777
- ZJP ACCX IF LOAD COMPLETE
- DELAY
- LDD T1
- UJN ACC1 LOOP
- ACCA VFD 18/3R1CL, 6/0
- ACCB DATA C*NO CPP AVAILABLE.*
- ERRNG PPFW-* IF OVERFLOW IN PP CODE
- LOC *O
- .LWC BSS 0 END OF CODE TO MOVE
- OVERFLOW TPPA
- TTL STL/LSL - LOAD SYSTEM LIBRARY.
- TITLE
- QUAL LSL
- IDENT LSL,LSLX
- *COMMENT STL - COPY SYSTEM TAPE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- LSL SPACE 4
- ** LSL - MAIN ROUTINE.
- ORG TPPA
- LSL SUBR ENTRY/EXIT
- RJM PRS PRESET OVERLAY
- * LOAD AND INITIALIZE *SYSEDIT*.
- RJM LCP LOAD CENTRAL PROGRAM
- LDK UEML READ UEM PRESENT BIT
- CRD CM
- LDD CM+4
- LPN 2
- SHN 10-1 CM COPY FLAG BIT POSITION
- STD T1
- LDN ZERL
- CRD CM
- CRD CN
- LDC 104 (P) = ENTRY ADDRESS
- STD CN+1
- LDD FL (A0) = FL
- STD CN+2
- LDC EEMC SET ERROR EXIT MODE SELECTION
- LMD T1
- STD CM
- LDD FA (B3) = DISK DEADSTART FLAG
- STD CM+4
- ZJN LSL1 IF TAPE DEADSTART
- LDN DPPF&LSLF
- LSL1 LMN LSLF
- RJM IDF ISSUE *DIO* REQUEST
- LDD CP STORE EXCHANGE PACKAGE DATA
- CWD CN
- ADN 3
- CWD CM
- MONITOR RCPM REQUEST CPU
- LJM LSLX RETURN
- LCP SPACE 4
- ** LCP - LOAD CENTRAL PROGRAM.
- *
- * EXIT CENTRAL PROGRAM LOADED.
- *
- * USES T1, T6.
- *
- * CALLS RTB, CID.
- LCP SUBR ENTRY/EXIT
- RJM RTB READ BLOCK
- RJM CID CHECK IDENT TABLE
- LDD WC SET BLOCK WORD COUNT
- SBD T1
- STD T6
- LDD BA SET BUFFER ADDRESS
- STM LCPA
- LDD RA STORE FIRST BLOCK
- ADN 1
- SHN 6
- CWM *,T6
- LCPA EQU *-1
- LCP1 LDD WC CHECK WORD COUNT
- SHN -11
- ZJN LCPX RETURN IF NOT FULL BLOCK
- RJM RTB READ NEXT BLOCK
- LDD RA STORE BLOCK
- ADN 1
- SHN 6
- ADD T6
- CWM BUF,TH
- LDD TH ADVANCE STORE ADDRESS
- RAD T6
- UJN LCP1 LOOP
- TITLE OVERLAID PRESET ROUTINE.
- USE PRS
- ERRNG BUF-5-*
- PRS SPACE 4
- ** PRS - PRESET OVERLAY.
- PRS SUBR ENTRY/EXIT
- PRS1 PAUSE
- LDM STLB+3 READ *REC* INPUT REGISTER
- CRD CM
- LDD CM+3 CHECK RECOVERY COMPLETE FLAG
- LMC 7776
- NJN PRS1 WAIT UNTIL SET
- LDD IA RESTART *DIO*
- ADN CH*10-2*10
- CRD CM
- STD CM+4
- CWD CM
- * REQUEST ALL AVAILABLE STORAGE.
- LDN DNFL REQUEST NEGATIVE FL
- RJM NFL
- LDN CMRL READ CMR LENGTH
- CRD CN
- ADN MABL-CMRL READ CM SIZE
- CRD CM
- LDD CM+2 SET CM REQUEST = AVAILABLE CM - 100B
- SHN 14
- ADD CM+3
- SBD CN+4
- SBN 1
- STD T1
- SHN -13
- ZJN PRS2 IF REQUEST .LE. 131K
- LDC 3777 SET *SYSEDIT* FL = 377700B
- STD T1
- PRS2 LDD T1 REQUEST STORAGE
- SBN DNFL
- STD CM+1
- LDN 0 SET CM REQUEST
- STD CM+2
- MONITOR RSTM
- LDD FL
- ADN DNFL
- LMD T1
- NJN PRS2 LOOP IF NOT ASSIGNED
- RJM CDJ CREATE DEADSTART JOB
- * CREATE JOB INPUT FILE FOR DEADSTART CONTROL POINT.
- LDD MA SET FILE NAME
- CWM PRSE,ON
- SBN 1
- CRD FN
- LDN ZERL
- CRD DP
- CRD CN
- LDN NEEQ POINT DEFAULT FAMILY AT NULL EQUIPMENT
- STD CN+3
- STD DP
- LDC INFT*100
- STD FN+4
- NFA FNTN STORE FNT IN NFL
- CWD FN
- ADN FSTL
- CWD DP
- LDN ZERL
- CRD FN
- CRD CM
- LDC 4000 SET EOR ON CONTROL STATEMENT FILE
- STD CM+1
- LDD QA SET EJT ORDINAL
- STD DP
- LDC NOJT*100 SET QUEUE FILE DISPOSITION
- STD FN
- LDD CP
- ADN CWQW
- CWM PRSI,ON WRITE CPU PRIORITY
- ADN JCIW-CWQW-1 WRITE JOB CONTROL
- CWM PRSA,ON
- ADN CPTW-JCIW-1
- CWD ZR
- ADN STLW-CPTW
- CWM PRSD,ON SET SRU AND TIME LIMITS TO MAXIMUM
- ADK FLCW-STLW-1
- CWM PRSH,ON SET MAXIMUM FL
- ADK PFCW-FLCW-1
- CWD CN
- ADN TFSW-PFCW
- CWD DP
- ADN CSPW-TFSW STORE CONTROL STATEMENT POINTER
- CWD CM
- ADN ALMW-CSPW SET UNLIMITED VALIDATION LIMITS
- CWM PRSD,ON
- ADN ACLW-ALMW-1
- CWM PRSD,ON
- ADN AACW-ACLW-1
- CWM PRSD,ON
- SBN AACW+1-EOJW STORE END OF JOB INFORMATION
- CWD FN
- ADN CPLW-EOJW STORE CPU TIME LIMITS
- CWM PRSF,ON
- LDD RA CLEAR (RA+1)
- SHN 6
- ADN 1
- CWD ZR
- ADN 1 CLEAR (RA+2)
- CWD ZR
- ADN 1 CLEAR (RA+3)
- CWD ZR
- CRD CN SET UP CONFIGUARATION
- LDK MABL GET HARDWARE OPTIONS
- CRD CM
- LDD CM+1 SET CMU STATUS
- LPN 10
- LMN 10
- SHN 13-3
- STD CN
- LDD RA
- SHN 6
- ADN CMUR
- CWD CN
- ADN FWPR-CMUR
- CWM PRSB,ON
- LDM 1,HN
- STD FA
- NJN PRS3 IF DISK DEADSTART
- LJM PRSX RETURN
- PRS3 LDD MA MOVE FILE NAME TO DIRECT CELLS
- CWM PRSG,ON
- SBN 1
- CRD FN
- LDN NEEQ CREATE FNT ENTRY FOR DISK DEADSTART FILE
- STD FS
- LDN 5 RETURN IF FILE NOT CREATED IMMEDIATELY
- STM OVL1-1
- EXECUTE 0BF,OVL1
- ZJN PRS5 IF FILE CREATED
- * PROCESS LOCAL FILE LIMIT OR NFL INCREASE NEEDED.
- * PROCESS ADVANCE EXIT FROM *0BF* IF FNT ENTRY
- * ALREADY EXISTS.
- PRS4 MONITOR HNGM HANG PP
- UJN PRS4 CONTINUE TO HANG
- PRS5 LDI HN
- STD FS
- LDM 1,HN
- STD FS+1
- STD FS+2
- LDN FSMS SET FIRST SECTOR
- STD FS+3
- LDN 1
- STD FS+4
- LCN LOFT-LIFT SET FILE TYPE
- SHN 6
- RAD FN+4
- NFA FA,R STORE FNT
- CWD FN
- ADN FSTL STORE FST
- CWD FS
- LJM PRSX RETURN
- PRSA VFD 24/0,12/MSSI,6/0,18/0
- PRSB VFD 1/1,11/0,12/0,12/SYOT,24/0
- PRSD VFD 60/-0
- PRSE VFD 42/0LINPUT,18/0
- PRSF VFD 60/37777777777777777777B
- PRSG VFD 42/0LSDF,6/1,6/LIFT,6/0
- PRSH VFD 12/3777,12/0,12/3777,24/0
- PRSI VFD 2/1,7/MPRS-1,3/0,3/4,9/0,9//SCD/SSSC*JCBE,3/0,24/0
- CDJ SPACE 4,10
- ** CDJ - CREATE DEADSTART JOB.
- *
- * EXIT (QA) = EJT ORDINAL.
- * (CM+3 - CM+7) = *JSNE* WORD OF EJT ENTRY.
- * (CN - CN+4) = *SCHE* WORD OF EJT ENTRY.
- * (DP - DP+4) = *SCLE* WORD OF EJT ENTRY.
- *
- * CALLS CFE, CTE.
- *
- * MACROS MONITOR.
- CDJ SUBR ENTRY/EXIT
- LDN ZERL
- CRD CN
- CRD DP
- LCN 0 SET USER INDEX = 377777
- STD CM+6
- STD CN+4
- LDC 100+37 SET FOT ORDINAL = 1
- STD CM+5
- LDK NICS*200+EXJS*2 SET CONNECTION/JOB STATUS
- STD CM+7
- LDC /SCD/DSSC*100+SYOT SET SERVICE CLASS/ORIGIN TYPE
- STD DP
- LDN NEEQ SET NULL EQUIPMENT
- STD CN
- LDN DSCP SET CONTROL POINT
- STD CN+3
- STD CM+1 SELECT NO IOQT ENTRY
- MONITOR RJSM REQUEST JOB SEQUENCE NUMBER
- LDC 4000+PEJT CREATE EJT ENTRY
- RJM CTE
- ADN SCHE STORE EJT ENTRY
- CWD CN
- ADN SCLE-SCHE
- CWD DP
- LDD CM+1 SET EJT ORDINAL
- STD QA
- LDD RS
- NJN CDJ1 IF RECOVERY DEADSTART
- RJM CFE CREATE FAST ATTACH FILES
- CDJ1 LJM CDJX RETURN
- CFE SPACE 4,10
- ** CFE - CREATE FAST ATTACH FNT ENTRIES.
- *
- * USES T6, T7, CM - CM+4.
- *
- * MACROS MONITOR.
- CFE SUBR ENTRY/EXIT
- LDC MMFL FETCH MACHINE ID
- CRD CM
- LDD CM SET MACHINE ID IN RESOURCE FILE NAMES
- STM CFEC+2
- STM CFED+2
- LDC CFEB-1 INITIALIZE LIST ADDRESS
- STD T6
- LDN SYFO PRESET ORDINAL CHECK
- STD T7
- ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0
- CFE1 STD CM+1
- AOD T6 ADVANCE LIST ADDRESS
- LDI T6
- ZJN CFEX IF NO MORE FAST ATTACH FILES
- STM CFEA
- LDD MA MOVE FILE NAME TO MESSAGE BUFFER
- CWM *,ON
- CFEA EQU *-1
- LDN PFNT CREATE FNT ENTRY
- STD CM+2
- MONITOR MTRM
- AOD T7 ADVANCE ORDINAL CHECK
- LMD CM+1
- ZJN CFE1 IF FNT ORDINAL SEQUENTIAL
- UJN * HANG
- CFEB CON CFEC
- CON CFED
- CON 0 END OF LIST
- CFEC VFD 42/0LRSXDAA,6/0,6/SYFT,6/0
- CFED VFD 42/0LRSXVAA,6/0,6/SYFT,6/0
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCTE
- *CALL COMPNFL
- OVL1 EQU *+1 ZERO-LEVEL OVERLAY LOAD ADDRESS
- ERRNG 7777-OVL1-ZBFL CHECK LENGTH OF *0BF*.
- SPACE 4
- TTL STL - SYSTEM TAPE LOADER.
- END
cdc/nos2.source/opl871/stl.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator