plato:source:plaopl:dsn1
Table of Contents
DSN1
Table Of Contents
- [00006] ASO - APPLICATION SYSTEM SIGNON
- [00095] DTS - DETERMINE TERMINAL SPEED
- [00145] DTT - DETERMINE TERMINAL TYPE
- [00286] BFI - READ NEXT BLOCK FROM CIRCULAR BUFFER
- [00455] CSS - CHANGE IN SWITCH STATUS
- [00524] DSM - DISPLAY SYSTEM MESSAGE
- [00567] CPR - PRESET FOR CCP ERROR MESSAGE
- [00626] C2O - CONVERT AND STORE TWO OCTAL DIGITS.
- [00646] ST2 - STORE TWO TEXT CHARACTERS.
- [00670] CD1 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 1
- [00732] ST2 - STORE TWO TEXT CHARACTERS.
- [00750] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- [00783] CD2 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 2
- [00846] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- [00873] ST2 - STORE TWO TEXT CHARACTERS.
- [00891] SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
- [00909] C2O - CONVERT AND STORE TWO OCTAL DIGITS.
- [00935] CE1 - CONVERT/DISPLAY $CE (CE ERROR) MESSAGES
- [01060] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- [01089] ST2 - STORE TWO TEXT CHARACTERS.
- [01107] SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
- [01211] SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- [01240] ST2 - STORE TWO TEXT CHARACTERS.
- [01260] SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
- [01279] COR - CONVERT ERROR ORDINAL INTO REAL ERROR CODE.
- [01349] DIB - DUMP INPUT BLOCK TO ERROR LOG.
- [01410] EM7 - EM ACCESS FOR 700 SERIES.
- [01458] RECS - READ ECS VIA MONITOR FUNCTION.
- [01548] WECS - WRITE ECS VIA MONITOR FUNCTION.
- [01636] EM8 - EM ACCESS ROUTINES FOR 800 SERIES.
- [01667] RECS - READ UEM VIA DIRECT ACCESS.
- [01732] WECS - WRITE UEM VIA DIRECT ACCESS.
- [01801] GPS - GET PRIMARY SWITCH NUMBER
- [01895] IDP - INITIALIZE ESM ACCESS
- [02108] KYO - PROCESS KEY BUFFER OVERFLOW PROBLEMS
- [02206] LPG - LOAD PROGRAM INTO 2550
- [02271] CNP - MASTER CLEAR 2550
- [02283] GTW - MOVE WORDS FROM DISK BUFFER TO 2550 BUFFER
- [02320] RDB - READ DISK BUFFER
- [02348] MXE - PROCESS 2550 CHANNEL ERRORS
- [02716] DXB - CONVERT NUMBER FROM DISPLAY CODE
- [02894] PSM - PROCESS SYSTEM MESSAGE
- [02963] RFE - RESERVE FRONT END.
- [03124] RTT - RETURN TERMINAL TYPE
- [03193] SSM - PROCESS SUPER SYSTEM MESSAGE
- [03240] TER - TERMINATION OVERLAY
- [03380] UMT - UPDATE MAXIMUM TERMINAL NUMBER IN USE
- [03468] KEYS - CONVERSION FROM ASCII TO PLATO KEYS
- [03473] KEY - MACRO TO CREATE KEY CONVERSION TABLE
- [03655] NKY - CONVERSION FROM ASCII TO PLATO KEYS
Source Code
- DSN1.txt
- DSN1
- * /--- FILE TYPE = E
- * /--- BLOCK ASO 00 000 86/05/28 14.31
- ASO OVERLAY (PROCESS APPLICATION SIGON-ON.)
- ASO SPACE 5,11
- ** ASO - APPLICATION SYSTEM SIGNON
- *
- * SIGN THIS TERMINAL INTO PLATO
- ORG //OVL+5
- ASO SUBR
- LDN 0 CLEAR *BFI LOADED FLAG
- STM BODC
- LDD NI GET HIGHEST POSSIBLE CONNECTION
- SHN 4
- STD T1
- LDM IBUF+7,IP GET PLATO STATION NUMBER
- ADD SI
- ADD CB
- STD ST
- SBM NCB+20,T1
- MJN ASO1 IF CONNECTION IN RANGE
- LDN TTBE T(D) TOO BIG
- RJM MES
- UJN ASOX EXIT
- * LOG USER IN TO PLATO
- * UPDATE PP TABLES
- * SEND NEXT KEY TO PLATO
- * SEND ACKNOWLEDGE TO CNP
- ASO1 LDN 0
- STM TOD,ST CLEAR OUTPUT DELAY
- LDM IBUF+5,IP
- STM SDT,ST SET S(D) IN PP TABLE
- LDM IBUF+6,IP
- STM TDT,ST SET T(D) IN PP TABLE
- * SAVE TERMINAL TYPE
- LDD RA
- SHN 6
- ADD TB
- ADD ST
- ADD ST
- CRD CM
- RJM DTT DETERMINE TERMINAL TYPE
- STM ASOA SAVE FOR LATER VERIFICATION
- SHN 4
- STD CM
- LDN 0
- STD CM+1 SHOW NO LOST KEYS
- LDD RA
- SHN 6
- ADD TB
- ADD ST
- ADD ST
- CWD CM UPDATE CM TABLE
- LDM IBUF+3,IP FETCH TERMINAL TYPE
- RJM DTS DETERMINE TERMINAL SPEED
- RAM TDT,ST SET TERMINAL SPEED
- LDN 0#04
- RJM PLM BUILD LOGIN MESSAGE
- LDD TH SET STATION IN USE
- STM TST,ST
- * /--- BLOCK ASO 00 000 86/05/28 14.33
- * CONVERT NETWORK TERMINAL TYPE TO PLATO TYPE
- LDM ASOA GET TERMINAL TYPE
- STD T1
- LDC //RTTA
- STD T2
- RTT1 LDI T2
- ZJN RTT4 IF TERMINAL TYPE NOT FOUND
- LMD T1
- LPC 0#FE TERMINAL TYPE WITHOUT PARITY
- ZJN RTT2 IF TERMINAL FOUND
- AOD T2
- UJN RTT1 CHECK NEXT TERMINAL TYPE
- RTT2 LJM ASOX VALID TYPE -- EXIT
- RTT4 LDN 0
- STM TST,ST SHOW TERMINAL NOT ACTIVE
- LDN 0#0C
- RJM PLM REVALIDATE USER AT DPNC
- LJM ASOX EXIT
- ASOA BSS 1 TEMP TERMINAL TYPE
- * /--- BLOCK ASO 00 000 86/05/28 14.33
- DTS SPACE 5,11
- ** DTS - DETERMINE TERMINAL SPEED
- *
- * ENTRY - (A) = NETWORK TERMINAL TYPE
- *
- * EXIT - (A) = -1 IF UNRECOGNIZED TERMINAL
- * 0 IF 1200 BAUD
- * 4000 IF 300 BAUD
- DTS3 LDI T2
- LPC 7400
- DTS SUBR
- STD T1
- LDC DTSA
- STD T2
- DTS1 LDI T2
- ZJN DTS2 IF END OF LIST
- LMD T1
- LPC 377
- ZJN DTS3 IF TERMINAL TYPE FOUND
- AOD T2
- UJN DTS1
- DTS2 BSS 0
- * LCN 1 (A) = UNRECOGNIZED
- LDN 0 (A) = 120 CPS IST
- UJN DTSX EXIT
- * NETWORK TERMINAL TYPE CONVERSION TABLE
- *
- * 1/LS, 1/TX, 2/, 8/NT
- *
- * LS = LINE SPEED (0- 120 CPS, 1- 300 CPS)
- * TX = TEKTRONIX (0 = STANDARD (IST), 1 = TEKTRONIX)
- * USED WHEN SETTING TTYPE IN LOGIN MESSAGE.
- * NT = NETWORK TERMINAL TYPE
- DTSA VFD 1/1,3/0,8/0#3C 30 CPS IST
- VFD 1/0,3/0,8/0#3D 120 CPS IST
- VFD 1/1,1/1,2/0,8/0#3E 30 CPS TEKTRONIX
- VFD 1/0,1/1,2/0,8/0#3F 120 CPS TEKTRONIX
- VFD 1/1,3/0,8/0#03 30 CPS DEFAULT
- VFD 1/0,3/0,8/0#21 120 CPS DEFAULT
- VFD 1/1,3/0,8/0#2E 30 CPS NOS
- VFD 1/0,3/0,8/0#22 120 CPS NOS
- DATA 0
- * /--- BLOCK ASO 00 000 86/05/28 14.34
- DTT SPACE 5,11
- ** DTT - DETERMINE TERMINAL TYPE
- *
- * A SIGN-ON MESSAGE IS INTERROGATED TO DETERMINE
- * THE ASCII TERMINAL TYPE
- *
- * THE TERMINAL TYPE IS SPECIFIED AFTER THE SYSTEM
- * NAME -
- * PLEASE SIGN ON -- PLD,T
- *
- * T - TERMINAL TYPE
- *
- * IF NO TYPE IS SPECFIED, ASCII IST IS ASSUMED
- *
- * EXIT - (A) = TERMINAL TYPE
- DTT2 LDM IBUF+1,T1 (A) = TERMINAL TYPE
- DTT SUBR
- LDD IP
- ADN 10
- STD T1 SET POINTER TO FIRST CHARACTER
- LDD IP
- ADD PL
- ADN 2-1
- STD T2 SET LWA TO SCAN (LWA-1 OF DATA)
- DTT1 LDM IBUF,T1
- LMN A.COMMA
- SCN 1 CLEAR PARITY BIT
- ZJN DTT2 IF COMMA FOUND
- AOD T1
- LMD T2
- NJN DTT1 IF MORE TO SCAN
- LDC A.I SET TERMINAL TYPE TO ASCII IST
- UJN DTTX EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK ASP 00 000 86/05/28 14.35
- ASP OVERLAY (COMPLETE PLATO APPLICATION SIGNON.)
- ASP SPACE 5,11
- ** UPDATE PLATO ASCII CONNECTION TABLE
- ORG //OVL+5
- ASP SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * TEST FOR PLATO STATION IN USE.
- ERRNZ STBKL-27D STATION BANK LENGTH .NE. 27D
- * COMPUTE STATION BANK OFFSET (27 = 32-1-1-1-1-1).
- LDD ST
- SBD CB
- ADD SB
- STD T1 1 * STATION
- SHN 5 32 * STATION
- SBD T1 31 * STATION
- SBD T1 30 * STATION
- SBD T1 29 * STATION
- SBD T1 28 * STATION
- SBD T1 27 * STATION
- * COMPUTE ADDRESS OF *BANKADD* WORD
- ADM BANKADD
- ADM NSYSBNK+1
- STD T2
- SHN -14
- ADM NSYSBNK
- STD T1
- * READ THE *BANKADD* WORD FROM THE STATION BANK.
- LDN 1
- STD T3
- LDN CN
- RJM RECS
- * CHECK FOR THE PLATO STATION IN USE.
- LDD CN
- SHN 6
- PJN ASO2 IF PLATO STATION SIGNED IN
- LDK TCAO ABORT ANY PENDING OUTPUT
- RJM STC
- UJN ASO4 CONTINUE LOGIN PROCESS
- * THE PLATO STATION IS IN USE. SEND AN *SSLKEY*
- * TO PLATO AND A LOGOUT TO THE NETWORK.
- ASO2 LDN PIUE PORT IN USE
- RJM MES
- ASO3 RJM SSL LOG OFF STATION
- LDN 0
- STM TST,ST SHOW TERMINAL NOT ACTIVE
- LDN 0#0C
- RJM PLM REVALIDATE USER AT DPNC
- LJM ASPX EXIT
- * /--- BLOCK ASP 00 000 86/07/23 14.06
- ASO4 BSS 0
- LDN ZERL
- CRD CN
- LDM SDT,ST SET S(D)
- LPC 0#FF
- STD CN
- LDM TDT,ST SET T(D)
- LPC 0#FF
- STD CN+1
- LDM IBUF+3,IP SET TERMINAL TYPE
- STD CN+2
- LDM IBUF-2,IP SET FOB NUMBER
- SHN 10B * 256
- ADM IBUF-1,IP
- STD CN+3
- LDD ST WRITE CONNECTION INFO TO EM
- SBD CB
- ADD SB
- ADM ASCCON+1
- STD T2
- SHN -14
- ADM ASCCON
- STD T1
- LDN 1
- STD T3
- LDN CN
- RJM WECS
- LDN NXKY SEND NEXT KEY TO PLATO
- STD KY
- RJM SKY
- LJM ASPX EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK BFI 00 000 86/05/28 14.36
- BFI OVERLAY (READ NEXT BLOCK FROM CIRCULAR BUFFER.)
- BFI SPACE 5,11
- ** BFI - READ NEXT BLOCK FROM CIRCULAR BUFFER
- *
- * ENTRY - (T4) = MAXIMUM BLOCK SIZE ACCEPTABLE
- * (FI2) = CPU IN POINTER
- * (FO2) = PPU OUT POINTER
- * (FL2) = LIMIT POINTER
- * (FP2) = ECS ADDR OF IN/OUT POINTERS
- * (FB2) = ECS ADDRESS OF BUFFER
- *
- * EXIT - (A) = NON-ZERO IF DATA PRESENT
- * BUF = DATA BLOCK
- *
- * NO DATA PRESENT IS RETURNED IF
- * 1. BUFFER IS EMPTY
- * 2. DATA BLOCK WILL NOT FIT IN CURRENT 2550 BUFFER
- * 3. EM ERROR OCCURRED
- ORG //OVL+5
- BFI SUBR
- LDN 1 SET *BFI* LOADED FLAG
- STM BODC
- LJM BFI0
- * INCREMENT PPU CIRCULAR BUFFER POINTER
- BFI8 LDM NETC INCREMENT CIRCULAR BUFF POINTER
- RAD FO2
- SBD FL2 CHECK FOR BUFFER WRAP-AROUND
- MJN BFI9 IF NO WRAPPING
- STD FO2 UPDATE *OUT* POINTER
- * WRITE *OUT* TO ECS
- BFI9 LDN ZERL
- CRD CN
- LDD FO2
- STD CN+4
- LDD FP2+1
- ADN 1 COMPUTE ADDR OF *OUT* POINTER
- STD T2
- SHN -14
- ADD FP2
- STD T1
- LDN 1
- STD T3 SET CM WORD COUNT
- LDN CN (A) = PP ADDRESS
- RJM WECS
- LDN 1 (A) = DATA READ
- BFI10 LJM BFIX EXIT
- * /--- BLOCK BFI 00 000 86/05/28 14.36
- * CHECK IF DATA PRESENT
- BFI0 LDD FL2 CHECK IF BUFFER DEFINED
- ZJN BFI10
- LDD FI2 CHECK IF DATA IN BUFFER
- SBD FO2
- ZJN BFI10 IF BUFFER EMPTY
- LDD FI2 CHECK IN POINTER LEGAL
- SBD FL2
- MJN BFI2 IF WITHIN RANGE
- BFI1 LDN DFPE DSN - FRAMAT POINTERS BAD
- BFI1.1 RJM MES SEND ERROR MSG
- BFI1.2 LDN 0 INDICATE NO DATA PASSED
- UJN BFI10 EXIT
- BFI2 LDD FO2 CHECK OUT POINTER LEGAL
- SBD FL2
- PJN BFI1 IF OUT OF RANGE
- * SET UP FOR BLOCK TRANSFER
- * READ HEADER WORD FROM BUFFER
- LDD FB2+1 SET BUFFER ADDRESS
- ADD FO2 BIAS BY *OUT*
- STD T2
- SHN -14
- ADD FB2
- STD T1
- LDN 1 SET CM WORD COUNT
- STD T3
- LDC BUF SET PP ADDRESS
- RJM RECS READ BLOCK HEADER
- NJN BFI1.2 -- IF ECS ERROR
- * UPDATE ECS ADDRESS
- AOD T2
- SHN -14
- RAD T1
- * /--- BLOCK BFI 00 000 86/05/28 14.38
- * CHECK IF CAN TRANSFER BLOCK IN ONE READ
- LDM NETC CHECK LENGTH LEGAL
- ZJN BFI1 IF EMPTY BLOCK
- SBD FL2
- PJN BFI1 IF LARGER THAN BUFFER
- ADD FL2
- SBN 1
- ZJN BFI5 IF HEADER ALONE
- STD T3 SET NUMBER OF WORDS TO READ
- LDM NETP MESSAGE LTH IN PP BYTES
- SBN 32D MAX DSN MSG IS 31D
- NJN BFI3 -- IF NO ERROR
- LDN PMLE PLATO MSG LTH ERROR
- UJP BFI1.1 -- SEND MSG AND EXIT
- BFI3 BSS 0
- * CHECK IF BLOCK WILL FIT IN 2550 BUFFER
- LDD T4 CHECK IF BLOCK TOO LONG
- SBN 4 ALLOW FOR HEADER
- SBM NETP
- MJN BFI4 IF BLOCK TOO BIG
- LDD T3
- ADD FO2
- SBD FL2 CHECK TRANSFER WITH *LIMIT*
- PJN BFI6 IF MUST SPLIT TRANSFER
- LDC BUF+5 (A) = PP ADDRESS
- RJM RECS READ THE BLOCK
- ZJN BFI5 IF NO ECS ERROR
- BFI4 LDN 0 (A) = 0, NO DATA
- LJM BFIX
- BFI5 LJM BFI8 UPDATE OUT POINTER
- * /--- BLOCK BFI 00 000 86/05/28 14.38
- * READ BLOCK IN TWO SECTIONS
- BFI6 LDD FL2 COMPUTE LENGTH OF FIRST READ
- SBD FO2
- SBN 1 DECREMENT FOR HEADER
- STD T3
- ZJN BFI7.1 IF HEADER IS AT LIMIT
- LDC BUF+5 (A) = PP ADDRESS
- RJM RECS READ FIRST PART OF BLOCK
- BFI7 NJN BFI4 IF ECS ERROR
- LDD T3 BUMP PP ADDRESS
- SHN 2 COMPUTE NUMBER PPU WORDS READ
- ADD T3
- BFI7.1 ADC BUF+5 COMPUTE PPU ADDRESS FOR READ
- STM BFIA
- LDD FB2+1 RESET BACK TO FIRST
- STD T2
- LDD FB2
- STD T1
- LDM NETC
- SBN 1 ADJUST FOR HEADER WORD
- SBD T3 COMPUTE NUMBER WORDS REMAINING
- STD T3
- LDC **
- BFIA EQU *-1
- RJM RECS
- NJN BFI7 IF ECS ERROR
- LJM BFI8 UPDATE POINTERS
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK CSS 00 000 82/04/22 13.41
- CSS OVERLAY (CHANGE IN SWITCH STATUS OVERLAY.)
- CSS SPACE 5,11
- ** CSS - CHANGE IN SWITCH STATUS
- *
- * UPDATE ALL TERMINALS CONNECTED TO THE SWITCH
- ORG //OVL+5
- CSS SUBR
- LDN 0
- STM BODC CLEAR *BFI* LOADED FLAG
- STM CSSC PRESET LOST USER COUNT
- LDD CB FETCH FIRST CONNECTION
- STD ST
- LDD NI
- SHN 4
- STD T1
- LDM NCB+20,T1 FETCH LAST CONNECTION
- STM CSSA
- LDC SLKY
- STD KY
- CSS1 LDM SDT,ST GET S(D) FOR THIS TERMINAL
- LMM IBUF+2,IP
- NJN CSS2 IF THIS TERMINAL NOT ON SWITCH
- LDM TST,ST
- ZJN CSS2 IF TERMINAL NOT ACTIVE
- * LOG OFF THIS TERMINAL
- AOM CSSC INCREMENT LOST USER COUNT
- LDN 0#08
- RJM PLM LOGOUT USER FROM DPNC
- LDN 0 (A) = FORCED STORE
- STM TST,ST SHOW TERMINAL NOT ACTIVE
- RJM SPK STORE PLATO KEY
- * BUMP TO NEXT TERMINAL
- CSS2 AOD ST
- LMM CSSA
- NJN CSS1 IF MORE TERMINALS
- LDM CSSC
- ZJN CSS3 IF NO USERS LOST
- LDM NEST,NI SET EQUIPMENT NUMBER
- RJM C2D
- STM CSSB+1
- LDM IBUF+2,IP SET SWITCH NUMBER
- RJM C2D
- STM CSSB+16D
- LDM IBUF+2,IP
- SHN -6
- RJM C2D
- STM CSSB+15D
- LDM CSSC SET NUMBER OF LOST USERS
- RJM C2D
- STM CSSB+3
- LDC CSSB
- RJM DFM SEND DAYFILE MESSAGE
- CSS3 BSS 0
- LJM CSSX EXIT
- CSSA BSS 1 LAST CONNECTION
- CSSB DATA C*EQXX XX USERS LOST ON SWITCH XXXXB*
- CSSC BSS 1
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK DSM 00 000 82/12/02 15.59
- DSM OVERLAY (DISPLAY SYSTEM MESSAGE OVERLAY.)
- DSM SPACE 5,11
- ** DSM - DISPLAY SYSTEM MESSAGE
- *
- * THE SYSTEM MESSAGE RECEIVED IS WRITTEN TO THE
- * ERROR LOG.
- ORG //OVL+5
- DSM SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDD PL
- STD T3 SET LENGTH OF DATA TO CONVERT
- SBN 16D
- MJN DSM1 IF NOT TOO LONG
- LDN 16D
- STD T3
- DSM1 LDD IP
- STD T4 (T4) = NEXT BYTE TO DUMP
- RAD T3 (T3) = LWA +1 TO DUMP
- LDC BUF+2
- STD T5 (T5) = DISPLAY DATA POINTER
- LDC 2R S SET MESSAGE HEADER
- STM BUF
- LDC 2RM
- STM BUF+1
- DSM2 LDM IBUF,T4
- RJM C2X CONVERT TO HEX
- STI T5
- AOD T5 BUMP OUTPUT POINTER
- AOD T4 BUMP INPUT POINTER
- SBD T3
- MJN DSM2 IF MORE TO DUMP
- LDN 0 SET ZERO TERMINATOR
- STI T5
- LDC BUF+ERLN SEND MESSAGE TO ERROR LOG
- RJM DFM
- LJM DSMX EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK CPR 00 000 86/05/28 14.37
- CPR OVERLAY (PRESET FOR CCP ERROR MESSAGE)
- CPR SPACE 5,11
- ** CPR - PRESET FOR CCP ERROR MESSAGE
- *
- * BUILD HEADER FOR ERROR LOG DAYFILE MESSAGE AND
- * DETERMINE CLASS OF MESSAGE
- ORG //OVL+5
- CPR SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDC DSFE (A) = EST MNEMONIC FOR DSN 2550
- STM BUF PLACE IT IN THE MESSAGE BUFFER
- LDC BUF+1 (A) = MESSAGE BUFFER POINTER
- STD PT
- * EST ORDINAL OF *FE* EQUIPMENT
- LDM NEST,NI (A) = EST ORDINAL OF THIS NPU
- RJM C2O CONVERT EST ORDINAL
- * *FE* CHANNEL
- LDC 2R,C
- RJM ST2
- LDM NCH,NI (A) = CHANNEL OF THIS NPU
- RJM C2O
- * *FE* EQUIPMENT NUMBER
- LDC 2R-E
- RJM ST2
- LDM NEQ (A) = NPU EQUIPMENT NUMBER
- SHN -3D POSITION IT FOR DAYFILE MSG
- SCN 77B
- ADC 2R0,
- RJM ST2
- LDM IBUF+2,IP (A) = CONTROL CODE
- LMC 0#CE CE ERROR MESSAGE
- NJN CPR1 IF NOT $CE CONTROL CODE
- * PROCESS $CE (CE ERROR MESSAGE) CONTROL CODE
- EXECUTE CE1,=
- LDC /CE1/OVL
- RJM EXR
- UJN CPR2
- CPR1 LDM IBUF+2,IP (A) = CONTROL CODE
- LMC 0#CD LINK/TRUNK STATISTICS
- NJN CPR2 IF NOT $CD CONTROL CODE
- * PROCESS $CD (LINK/TRUNK STATISTICS) CONTROL CODE
- EXECUTE CD1,=
- LDC /CD1/OVL
- RJM EXR
- CPR2 LJM CPRX EXIT
- * /--- BLOCK CPR 00 000 86/05/28 14.37
- C2O SPACE 4,10
- ** C2O - CONVERT AND STORE TWO OCTAL DIGITS.
- *
- * ENTRY (A) = BINARY VALUE LESS THAN 77B.
- *
- * EXIT TWO OCTAL DIGITS STORED AS DISPLAY CODE CHARACTERS.
- C2O SUBR ENTRY/EXIT
- STM C2OA
- SHN -3
- LPN 7
- ADN 1R0
- RJM STX
- LDC 0
- C2OA EQU *-1
- LPN 7
- ADN 1R0
- RJM STX
- UJN C2OX RETURN
- ST2 SPACE 4,10
- ** ST2 - STORE TWO TEXT CHARACTERS.
- * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = TWO DISPLAY CHARACTERS.
- *
- * EXIT CHARACTERS STORED.
- ST2 SUBR ENTRY/EXIT
- STM ST2A
- SHN -6
- RJM STX
- LDM ST2A
- RJM STX
- UJN ST2X RETURN
- ST2A CON 0
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK CD1 00 000 82/12/02 16.03
- CD1 OVERLAY (DISPLAY $CD LINK/STATISTICS MESSAGE - 1)
- CD1 SPACE 5,11
- ** CD1 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 1
- *
- * CONVERT AND SEND $CD MESSAGE TO THE ERROR LOG.
- * PART 1.
- *
- * EXIT T7 = UPDATED POINTER INTO *IBUF*
- ORG //OVL+5
- CD1 SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDD IP GET IBUF INDEX
- ADN 5 ADVANCE TO CODE
- STD T7 SAVE IN T7
- LDM IBUF,T7 (A) = CODE
- NJN WEL3 IF CODE IS NOT ZERO
- AOD T7 (T7) POINTS TO MAJOR RECORD TYPE
- LDM IBUF,T7 (A) = MAJOR RECORD TYPE
- SBN 3
- ZJN WEL4 IF TYPE IS $03
- PJN WEL3 IF TYPE IS OUT OF RANGE
- ADN 1
- ZJN WEL5 IF TYPE IS $02
- WEL3 LDN NSBE NET STAT TYPE/CODE BAD
- LJM WEL31
- WEL4 LDN 8D*2 SET TRUNK BYTE COUNT
- STM BYTECNT
- LDN 11D START MESSAGE OVERFLOW COUNTER
- STM MSGCNT
- LDC 2RTK TRUNK STATISTICS
- UJN WEL6
- WEL5 LDN 11D START MESSAGE OVERFLOW COUNTER
- STM MSGCNT
- SHN 1 SET LINK BYTE COUNT
- STM BYTECNT
- LDC 2RLK
- WEL6 RJM ST2
- LDD PL VERIFY PACKET LENGTH
- SBM BYTECNT WITH BYTE COUNT
- SBN 7 AND BY HEADER+1 (EQXX,CYY-EZ,)
- MJN WEL6.1 IF LENGTH OKAY
- LJM WEL30 PACKET IS TOO LONG
- WEL6.1 BSS 0
- AOD T7 (T7) POINTS TO MINOR RECORD TYPE
- LDM IBUF,T7 (A) = MAJOR RECORD TYPE (LINK NUM)
- RJM SHX
- UJN WEL32
- WEL30 LDN NMLE NET MSG LENGTH ERROR
- WEL31 RJM MES
- WEL32 EXECUTE CD2,=
- LDC /CD2/OVL
- RJM EXR
- * /--- BLOCK CD1 00 000 82/12/02 16.03
- ST2 SPACE 4,10
- ** ST2 - STORE TWO TEXT CHARACTERS.
- * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = TWO DISPLAY CHARACTERS.
- *
- * EXIT CHARACTERS STORED.
- ST2 SUBR ENTRY/EXIT
- STM ST2A
- SHN -6
- RJM STX
- LDM ST2A
- RJM STX
- UJN ST2X RETURN
- ST2A CON 0
- SHX SPACE 4,10
- ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
- *
- * EXIT CHARACTERS STORED AS DISPLAY CODES.
- *
- * USES T1.
- SHX SUBR ENTRY/EXIT
- STD T1 SAVE THE ORIGINAL
- SHN -4
- LPN 17B
- SBN 10D
- PJN SHX2 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX2 ADN 1
- RJM STX
- LDD T1
- LPN 17B
- SBN 10D
- PJN SHX4 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX4 ADN 1
- RJM STX
- UJN SHXX
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK CD2 00 000 82/12/02 16.04
- CD2 OVERLAY (DISPLAY $CD LINK/STATISTICS MESSAGE - 2)
- CD2 SPACE 5,11
- ** CD2 - CONVERT/DISPLAY $CD (LINK/STAT) MESSAGE - 2
- *
- * CONVERT AND SEND $CD MESSAGE TO THE ERROR LOG.
- * PART 2.
- *
- * ENTRY T7 = POINTER INTO IBUF
- ORG //OVL+5
- CD2 SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- WEL7 BSS 0
- AOD T7 (T7) POINTS TO DATA BYTE
- LDM IBUF,T7 (A) = MAJOR RECORD TYPE
- RJM SHX
- SOM BYTECNT
- ZJN WEL8 IF END OF INPUT DATA
- SOM MSGCNT
- PJN WEL7 IF NO MESSAGE OVERFLOW
- RJM SND SEND PARTIAL MESSAGE.
- LDN 11D
- STM MSGCNT RESET THE OVERFLOW COUNTER
- LDM STXB+1
- STM STXA
- LDC BUF+8D
- STD PT RESET POINTER FOR CONTINUATION
- UJN WEL7
- WEL8 BSS 0
- * OUTPUT THE USER COUNT
- LDD RA (A) = ADDRESS OF CP RA / 100B
- SHN 6 (A) = ADDRESS OF CP RA
- ADM UMTB OFFSET TO STATS
- ADD NI (A) = ADDR OF NPU USER STATS
- ADD NI (2 WDS/NPU)
- CRD CM
- * THE FOLLOWING CODE ASSUMES THAT A NPU WILL
- * SUPPORT NO MORE THAN 777B USERS.
- LDD CM (A) = USER STATS FOR THIS NPU
- SHN -6 (A) = UPPER PART OF STATS
- LPN 7B (A) = LIMITED TO 777B MAX
- ADC 2RU0 (A) SET UP FOR THE DAYFILE
- RJM ST2 OUTPUT THE UPPER PART
- LDD CM (A) = USER STATS FOR THIS NPU
- LPN 77B (A) = LOWER PART OF STATS
- RJM C2O CONVERT AND OUTPUT UPPER PART
- * COMPLETE THE MESSAGE
- LDN 1R. TERMINATE MESSAGE WITH A PERIOD
- RJM STX
- RJM SND SEND MESSAGE TO ERROR LOG
- LJM CEMX
- * /--- BLOCK CD2 00 000 82/12/02 16.06
- SHX SPACE 4,10
- ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
- *
- * EXIT CHARACTERS STORED AS DISPLAY CODES.
- *
- * USES T1.
- SHX SUBR ENTRY/EXIT
- STD T1 SAVE THE ORIGINAL
- SHN -4
- LPN 17B
- SBN 10D
- PJN SHX2 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX2 ADN 1
- RJM STX
- LDD T1
- LPN 17B
- SBN 10D
- PJN SHX4 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX4 ADN 1
- RJM STX
- UJN SHXX
- ST2 SPACE 4,10
- ** ST2 - STORE TWO TEXT CHARACTERS.
- * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = TWO DISPLAY CHARACTERS.
- *
- * EXIT CHARACTERS STORED.
- ST2 SUBR ENTRY/EXIT
- STM ST2A
- SHN -6
- RJM STX
- LDM ST2A
- RJM STX
- UJN ST2X RETURN
- ST2A CON 0
- SND SPACE 4,10
- ** SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
- *
- * ENTRY UNTERMINATED MESSAGE IN *BUF*.
- *
- * EXIT MESSAGE WRITTEN TO ERROR LOG.
- *
- * CALLS DFM.
- SND SUBR ENTRY/EXIT.
- LDN 0
- RJM STX
- LDN 0 ADD EOM TRAILER
- STI PT
- LDC BUF+ERLN
- RJM DFM
- UJN SNDX RETURN
- C2O SPACE 4,10
- ** C2O - CONVERT AND STORE TWO OCTAL DIGITS.
- *
- * ENTRY (A) = BINARY VALUE LESS THAN 77B.
- *
- * EXIT TWO OCTAL DIGITS STORED AS DISPLAY CODE CHARACTERS.
- C2O SUBR ENTRY/EXIT
- STM C2OA
- SHN -3
- LPN 7
- ADN 1R0
- RJM STX
- LDC 0
- C2OA EQU *-1
- LPN 7
- ADN 1R0
- RJM STX
- UJN C2OX RETURN
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK CE1 00 000 86/05/28 14.40
- CE1 OVERLAY (CONVERT $CE CE ERROR MESSAGES)
- CCE SPACE 5,11
- ** CE1 - CONVERT/DISPLAY $CE (CE ERROR) MESSAGES
- *
- * CONVERT AND SEND $CE MESSAGE TO THE ERROR LOG.
- * PART 1.
- *
- * C E ERROR MESSAGE FORMATS.
- *
- * 12/$CE,12/MN,12/SC,12/$XX,12/DATA...12/DATA
- *
- * MN = MINUTES.
- * SC = SECONDS.
- * XX = 01 IF DATA IS POPULATION COUNTERS,
- * 04 IF DATA IS ERROR MESSAGE TEXT.
- * DATA = 8 BITS PER WORD - VARIABLE LENGTH.
- *
- * CE ERROR DETAIL AND COUNT MESSAGES.
- *
- * SD.FE00,C00,E0,CE,CD, ---
- * 01,ZZZ---ZZZ.
- * 04,MN,SC,ZZZ---ZZZ.
- *
- * CE = C E ERROR MESSAGE IDENTIFICATION.
- * MN = MINUTE WHEN NPU ERROR OCCURRED.
- * SC = SECOND WHEN NPU ERROR OCCURRED.
- * CD = CODE TO DIFFERENTIATE DETAILS AND COUNTS
- * 01 = COUNT MESSAGES,
- * 04 = DETAIL MESSAGES.
- * ZZZ = DATA.
- * COUNT MESSAGES
- * NN/M=$00, OR NN/M=$0000.
- * NN = ERROR CODE,
- * M = TRUNK NUMBER (0 IF NON-TRUNK),
- * $00 OR $0000 = HEXIDECIMAL COUNTS.
- * DETAIL MESSAGES
- * 00NNXXX---XXX; NN = ERROR CODE, XXX = SEE CCP 2.0 ERS.
- ORG //OVL+5
- CE1 SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDD IP GET IBUF INDEX
- ADN 3 ADVANCE TO MINUTES
- STD T7 SAVE IN T7
- LDM IBUF,T7 (A) = MINUTES
- STM WELA
- LDC 2RCE START THE MESSAGE BUFFER
- RJM ST2
- LDN 1R, COMMA
- RJM STX
- AOD T7 (T7) POINTS TO SECONDS
- LDM IBUF,T7 (A) = SECONDS
- STM WELL SAVE THE SECONDS
- LDD PL GET PACKET LENGTH FOR LOOP COUNTER
- SBN 2
- STM BYTECNT
- AOD T7 (T7) POINTS TO $04 BYTE
- LDM IBUF,T7 (A) = $04 BYTE
- LMN 01
- NJN WEL10.1 IF DETAIL RECORD
- LJM WEL14 DATA IS COUNTERS
- * /--- BLOCK CE1 00 000 86/05/29 09.38
- WEL10.1 LDD PL VERIFY PACKET LENGTH
- SBN 12D
- MJN WEL10.2 IF LENGTH OKAY
- LJM WEL30 PACKET IS TOO LONG
- WEL10.2 BSS 0
- LDN 04
- RJM SHX
- LDN 1R, COMMA
- RJM STX
- LDC 0
- WELA EQU *-1 (MINUTES)
- RJM SHX STORE HEX MINUTES
- LDN 1R,
- RJM STX
- LDC 0
- WELL EQU *-1
- RJM SHX STORE HEX SECONDS
- LDN 1R,
- RJM STX
- WEL11 LDN 7
- STM MSGCNT START MESSAGE OVERFLOW COUNTER
- WEL12 AOD T7 (T7) POINTS TOO NEXT DATA BYTE
- LDM IBUF,T7 (A) = NEXT DATA BYTE
- RJM SHX
- SOM BYTECNT
- MJN WEL13 AT END OF DATA
- SOM MSGCNT
- PJN WEL12 IF NO MESSAGE OVERFLOW
- RJM SND SEND PARTIAL MESSAGE
- LDC BUF+12D
- STD PT RESET POINTER FOR CONTINUATION
- LDM STXB+1
- STM STXA
- UJN WEL11
- WEL13 LDN 1R. TERMINATE THE MESSAGE WITH A PERIOD
- RJM STX
- RJM SND SEND MESSAGE TO THE ERROR LOG
- UJN WEL35 EXIT
- WEL14 LDN 01 SUBCODE = 1 FOR MESSAGE COUNTERS
- RJM SHX
- LDN 1R, COMMA
- RJM STX
- LDD PL VERIFY PACKET LENGTH
- ADC -120D
- PJN WEL30 PACKET IS TOO LONG
- UJN WEL36 EXIT
- WEL30 LDN NMLE NET MSG LENGTH ERROR
- RJM MES
- WEL35 LDN 0 INDICATE MESSAGE COMPLETE
- WEL36 ZJN WEL37 IF MESSAGE COMPLETE
- EXECUTE CE2,=
- LDC /CE2/OVL
- RJM EXR
- WEL37 LJM CEMX EXIT
- * /--- BLOCK CE1 00 000 86/05/29 09.39
- SHX SPACE 4,10
- ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
- *
- * EXIT CHARACTERS STORED AS DISPLAY CODES.
- *
- * USES T1.
- *
- * CALLS STX.
- SHX SUBR ENTRY/EXIT
- STD T1 SAVE THE ORIGINAL
- SHN -4
- LPN 17B
- SBN 10D
- PJN SHX2 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX2 ADN 1
- RJM STX STORE FIRST DIGIT
- LDD T1
- LPN 17B
- SBN 10D
- PJN SHX4 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX4 ADN 1
- RJM STX STORE SECOND DIGIT
- UJN SHXX
- ST2 SPACE 4,10
- ** ST2 - STORE TWO TEXT CHARACTERS.
- * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = TWO DISPLAY CHARACTERS.
- *
- * EXIT CHARACTERS STORED.
- *
- * CALLS STX.
- ST2 SUBR ENTRY/EXIT
- STD T0
- SHN -6
- RJM STX STORE FIRST CHARACTER
- LDD T0
- RJM STX STORE SECOND CHARACTER
- UJN ST2X RETURN
- SND SPACE 4,10
- ** SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
- *
- * ENTRY UNTERMINATED MESSAGE IN *BUF*.
- *
- * EXIT MESSAGE WRITTEN TO ERROR LOG.
- *
- * CALLS DFM.
- SND SUBR ENTRY/EXIT.
- LDN 0
- RJM STX
- LDN 0 ADD EOM TRAILER
- STI PT
- LDC BUF+ERLN
- RJM DFM
- UJN SNDX RETURN
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK CE2 00 000 86/05/29 09.49
- CE2 OVERLAY (CONVERT $CE CE ERROR MESSAGE - 2)
- SPACE 5
- ** CE2 CONVERT AND SEND $CE MESAGE TO THE ERROR LOG.
- * PART 2.
- *
- * CE ERROR SUMMARY DATA.
- *
- ORG //OVL+5
- CE2 SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * THE SUMMARY CODE DOES NOT FIT IN THE OVERLAY BUFFER SO
- * LEAVE IT OUT FOR NOW.
- LIST F
- CESUM IF -DEF,CESUMRY
- LJM CEMX
- CESUM ELSE
- AOD T7 (T7) POINTS TO FIRST IDENTIFIER
- LDM IBUF,T7 (A) = FIRST IDENTIFIER
- LMC 376B
- NJN WEL15 IF NOT MINUS ONE
- LDC 2R-1
- RJM ST2 DISPLAY THE -1 IDENTIFIER
- LDC 2R/0
- RJM ST2 STORE TRUNK NUMBER
- UJN WEL16
- WEL15 LMC 376B RESTORE THE VALUE
- RJM COR
- WEL16 LDC 2R=$ SEPARATORS
- RJM ST2
- AOD T7 (T7) POINTS TO COUNTER (UPPER 8 BITS)
- LDM IBUF,T7 (A) = COUNTER (UPPER 8 BITS)
- ZJN WEL17 IF VALUE IS ZERO
- RJM SHX
- * /--- BLOCK CE2 00 000 86/05/29 09.49
- WEL17 AOD T7 (T7) POINTS TO COUNTER (LOWER 8 BITS)
- LDM IBUF,T7 (A) = COUNTER (LOWER 8 BITS)
- RJM SHX
- LDC -3 DECREMENT THE BYTE COUNT
- RAM MSGCNT
- MJN WEL18.2 IF END OF DATA
- LDN 1R,
- RJM STX
- AOD T7 (T7) POINTS TO IDENTIFIER
- LDM IBUF,T7 (A) = IDENTIFIER
- RJM COR
- LDC 2R=$
- RJM ST2
- AOD T7 (T7) POINTS TO COUNT (UPPER 8 BITS)
- LDM IBUF,T7 (A) = COUNT (UPPER 8 BITS)
- ZJN WEL18 IF ALL ZERO
- RJM SHX
- WEL18 AOD T7 (T7) POINTS TO COUNT (LOWER 8 BITS)
- LDM IBUF,T7 (A) = COUNT (LOWER 8 BITS)
- RJM SHX
- WEL18.2 LDN 1R. PERIOD
- RJM STX
- RJM SND SEND MESSAGE TO THE ERROR LOG
- LDM BYTECNT
- SHN 6
- MJN WEL19 IF DATA ALL PROCESSED
- LDC -3 DECREMENT THE PACKET CHARACTER COUNT
- RAM BYTECNT
- MJN WEL19 IF END OF PACKET
- LDC BUF+9D
- STD PT RESET THE BUFFER POINTER
- LDM STXB+1
- STM STXA RESET THE STORAGE CONTROL
- AOD T7 (T7) = ERROR MESSAGE IDENTIFIER
- LDM IBUF,T7 (A) = ERRORR MESSAGE IDENTIFIER
- RJM COR
- LJM WEL16 CONTINUE PROCESSING
- WEL19 LJM CEMX
- * /--- BLOCK CE2 00 000 86/05/29 09.48
- SHX SPACE 4,10
- ** SHX - STORE HEX CHARACTERS INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = 2 HEXIDECIMAL DIGITS.
- *
- * EXIT CHARACTERS STORED AS DISPLAY CODES.
- *
- * USES T1.
- *
- * CALLS STX.
- SHX SUBR ENTRY/EXIT
- STD T1 SAVE THE ORIGINAL
- SHN -4
- LPN 17B
- SBN 10D
- PJN SHX2 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX2 ADN 1
- RJM STX STORE FIRST DIGIT
- LDD T1
- LPN 17B
- SBN 10D
- PJN SHX4 IF ALPHA DIGIT
- ADN 1R0+9D
- SHX4 ADN 1
- RJM STX STORE SECOND DIGIT
- UJN SHXX
- ST2 SPACE 4,10
- ** ST2 - STORE TWO TEXT CHARACTERS.
- * (DISPLAY CODES) INTO THE MESSAGE BUFFER.
- *
- * ENTRY (A) = TWO DISPLAY CHARACTERS.
- *
- * EXIT CHARACTERS STORED.
- *
- * CALLS STX.
- ST2 SUBR ENTRY/EXIT
- STM ST2A
- SHN -6
- RJM STX STORE FIRST CHARACTER
- LDM ST2A
- RJM STX STORE SECOND CHARACTER
- UJN ST2X RETURN
- ST2A CON 0
- SND SPACE 4,10
- ** SND - SEND MESSAGE IN BUFFER TO THE ERROR LOG, SET TERMNATOR.
- *
- * ENTRY UNTERMINATED MESSAGE IN *BUF*.
- *
- * EXIT MESSAGE WRITTEN TO ERROR LOG.
- *
- * CALLS DFM.
- SND SUBR ENTRY/EXIT.
- LDN 0
- RJM STX
- LDN 0 ADD EOM TRAILER
- STI PT
- LDC BUF+ERLN
- RJM DFM
- UJN SNDX RETURN
- * /--- BLOCK CE2 00 000 86/05/29 09.50
- COR SPACE 4,10
- ** COR - CONVERT ERROR ORDINAL INTO REAL ERROR CODE.
- *
- * ENTRY (A) = ERROR ORDINAL.
- *
- * EXIT DATA CONVERTED AND STORED INTO BUFFER.
- *
- * CALLS SHX, ST2.
- SPACE 2
- COR SUBR ENTRY/EXIT
- STM CORA
- LDN 0
- STM CORC INITIALIZE THE TRUNK NUMBER
- LDC 0
- CORA EQU *-1 ERROR ORDINAL
- ZJN COR2 IF THE ERROR CODE IS ZERO
- SBN 32D
- MJN COR3 IF TRUNK MIGHT BE ZERO OR ONE
- COR1 STM CORB
- AOM CORC INCREMENT THE TRUNK NUMBER
- LDC 0
- CORB EQU *-1 WORKING ORDINAL
- SBN 16D
- PJN COR1 IF ORDINAL IS STILL LARGER
- AOM CORC ADJUST THE TRUNK NUMBER
- LDM CORB
- COR2 RJM SHX STORE THE HEX ERROR CODE
- LDC 0
- CORC EQU *-1 TRUNK NUMBER
- ADC 2R/0
- RJM ST2 STORE THE TRUNK NUMBER
- LJM CORX RETURN
- COR3 ADN 32D-19D
- MJN COR5 IF ERROR SMALLER, MAY BE FOR TRUNK 1
- ZJN COR4 IF ERROR IS $1C
- ADN 30D
- UJN COR2 STORE DATA INTO BUFFER
- COR4 LDN 28D
- UJN COR2 STORE DATA INTO BUFFER
- COR5 ADN 1
- MJN COR6 IF NOT $18 ERROR
- LDN 24D
- UJN COR2 STORE DATA INTO BUFFER
- COR6 STM CORD
- ADN 1
- ZJN COR7 IF ERROR = $11
- ADN 16D
- ZJN COR7 IF ERROR = $01
- LDN 1
- STM CORC SET TRUNK = 1
- COR7 LDC 0
- CORD EQU *-1 ERROR CODE COMPLEMENT
- SHN 21-13
- SHN 13-21 ENTEND THE SIGN
- ADN 19D RESTORE THE VALU
- LJM COR2 STORE DATA INTO BUFFER
- CESUM ENDIF
- LIST *
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK DIB 00 000 86/05/29 09.45
- DIB OVERLAY (DUMP INPUT BLOCK TO ERROR LOG)
- DIB SPACE 5,11
- ** DIB - DUMP INPUT BLOCK TO ERROR LOG.
- *
- * AN ERROR WAS ENCOUNTERED WHILE PROCESSING AN INPUT
- * BLOCK. PRINT THE CONTENTS OF IL, IP, PL AND THE
- * INPUT BLOCK.
- ORG //OVL+5
- DIB SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDD IL CONVERT BLOCK LENGTH
- RJM C2D
- STM DIBA+3
- LDD IL
- SHN -6
- RJM C2D
- STM DIBA+2
- LDD IP CONVERT PACKET POINTER
- RJM C2D
- STM DIBA+7
- LDD IP
- SHN -6
- RJM C2D
- STM DIBA+6
- LDD PL CONVERT PACKET LENGTH
- RJM C2D
- STM DIBA+13
- LDD PL
- SHN -6
- RJM C2D
- STM DIBA+12
- LDC DIBA+ERLN
- RJM DFM PRINT TO ERROR LOG
- LDD IL
- ZJN DIB2 EXIT IF ZERO LENGTH
- LDN 0
- STD T7 COUNTER FOR INPUT BLOCK
- DIB1 LDM IBUF,T7 INPUT BLOCK WORD TO CONVERT
- RJM C2D
- STM DIBB+1
- LDM IBUF,T7
- SHN -6
- RJM C2D
- STM DIBB
- LDC DIBB+ERLN
- RJM DFM PRINT WORD TO ERROR LOG
- AOD T7 INCREMENT BLOCK COUNTER
- LMD IL SUBTRACT BLOCK LENGTH
- NJN DIB1 IF MORE WORDS TO PRINT
- DIB2 LJM DIBX EXIT
- DIBA DATA C* IL=XXXX IP=XXXX PL=XXXX*
- DIBB DATA C*XXXX*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK EM7 00 000 82/12/02 16.07
- EM7 OVERLAY (EM ACCESS FOR 700 SERIES.)
- EM7 SPACE 5,11
- ** EM7 - EM ACCESS FOR 700 SERIES.
- *
- * OVER-WRITE THE DDP READ/WRITE EM ROUTINES WITH
- * READ/WRITE EM VIA MONITOR FUNCTION ROUTINES FOR
- * THE 700 SERIES.
- ORG //OVL+5
- EM7 SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * COPY CPMTR ROUTINE TO REPLACE DDP ROUTINES
- LDN 0
- STD T1
- EM71 LDM RECF,T1
- STM //RECSX,T1
- AOD T1
- LMC RECL
- NJN EM71 CONTINUE MOVE
- LDN 0 MOVE WRITE ROUTINE
- STD T1
- EM72 LDM WECF,T1
- STM //WECSX,T1
- AOD T1
- LMC WECL
- NJN EM72 CONTINUE MOVE
- * SET ADDRESS OF CM BUFFER
- LDD IR+4
- SHN 6
- .NOSV2 IFGE OSLEV,562D NOS V2
- RAM .RECA
- LDD IR+4 BIAS FOR HEADERS
- SHN 1
- .NOSV2 ENDIF
- RAM .RECA
- STM .RECB
- STM .WECA
- .NOSV2 IFGE OSLEV,562D NOS V2
- UJP EM7X
- .NOSV2 ELSE NOS V1
- UJN EM7X
- .NOSV2 ENDIF
- * /--- BLOCK /CMR/READE 00 000 86/05/29 10.31
- RECS SPACE 5,11
- ** RECS - READ ECS VIA MONITOR FUNCTION.
- *
- * ENTRY (A) = PPU MEMORY ADDRESS.
- * (T1) = UPPER PORTION OF ECS ADDRESS.
- * (T2) = LOWER PORTION OF ECS ADDRESS.
- * (T3) = NUMBER OF CM WORDS TO READ.
- *
- * EXIT (A) = 0, IF NO ERRORS.
- * = 1, IF ECS PARITY ERROR.
- *
- * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS READ
- * SUBROUTINE, //RECS, IF THE DDP IS NOT
- * AVAILABLE.
- RECF EQU *
- LOC //RECSX
- RECS SUBR
- STM RECA SAVE PP ADDRESS
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDK ZERL ZERO WORD
- CRD CM
- .NOSV2 ENDIF
- LDD T1
- STD CM+3 (CM+3) = UPPER PART OF EM ADDR.
- LDD T2
- STD CM+4 (CM+4) = LOWER PART OF EM ADDR.
- .NOSV1 IFLT OSLEV,562D NOS V1
- LDD MA
- CWD CM (MB) = 36/TRASH,24/EM ADDRESS
- .NOSV1 ENDIF
- LDD T3 GET NUMBER CPU WORDS TO READ
- .NOSV1 IFLT OSLEV,562D NOS V1
- SBN 1 ADJUST WORD COUNT
- .NOSV1 ENDIF
- SHN 6
- STD CM+1 SET NUMBER CPU WORDS TO READ
- LDD RA COMPUTE CM ADDRESS
- SHN 6
- ADC EB ECS/CM BUFFER ADDRESS
- .RECA EQU *-1
- * /--- BLOCK /CMR/READE 00 000 86/05/29 10.31
- .NOSV2 IFGE OSLEV,562D NOS V2
- SBN 1 BACK UP TO BUFFER HEADER
- CWD CM
- STD CM+2 SAVE HEADER ADDRESS
- SHN -12D
- LPN 77B ENSURE NO SIGN EXTENSION
- STD CM+1
- LDD HN STORE REQUEST COUNT
- RAD CM+1
- LDC /CPS/PELS*1000B
- STD CM+3 *ECSM* SUBFUNCTION *PELS*
- LDN 0
- STD CM+4
- .NOSV2 ELSE NOS V1
- STD CM+2 SET LOWER PART OF CM ADDRESS
- SHN -14
- RAD CM+1 SET UPPER PART OF CM ADDRESS
- LDC /CPS/RWEM*1000B
- STD CM+3 (CM+3) = SUBFUNCTION = *RWEM*
- LDN 0
- STD CM+4 (CM+4) = R/W FLAG (READ)
- .NOSV2 ENDIF
- MONITOR ECSM READ ECS TO CM
- LDD RA READ DATA TO PP
- SHN 6
- ADC EB CM/ECS BUFFER ADDRESS
- .RECB EQU *-1
- CRM **,T3
- RECA EQU *-1
- LDD CM+1 CHECK IF ECS ERROR OCCURRED
- ZJN RECS1 (A)=0, NO ECS ERROR
- LDN DERE ECS READ ERROR
- RJM MES
- LDN 1 EXIT WITH (A) = 1
- RECS1 LJM RECSX EXIT
- * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
- * DDP ECS READ SUBROUTINE LENGTH.
- RECL EQU *-RECSX LENGTH OF THIS SUBROUTINE
- ERRNG //RECL-RECL SUBROUTINE TOO LONG
- LOC *O
- * /--- BLOCK /CMR/WRITE 00 000 86/05/29 10.33
- WECS SPACE 5,11
- ** WECS - WRITE ECS VIA MONITOR FUNCTION.
- *
- * ENTRY (A) = PPU MEMORY ADDRESS.
- * (T1) = UPPER PORTION OF ECS ADDRESS.
- * (T2) = LOWER PORTION OF ECS ADDRESS.
- * (T3) = NUMBER OF CM WORDS TO WRITE.
- *
- * EXIT (A) = 0, IF NO ERRORS.
- * = 1, IF ECS PARITY ERROR.
- *
- * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS WRITE
- * SUBROUTINE, //WECS, IF THE DDP IS NOT
- * AVAILABLE.
- WECF EQU *
- LOC //WECSX
- WECS SUBR
- STM WECA SAVE PP ADDRESS
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDK ZERL ZERO WORD
- CRD CM
- .NOSV2 ENDIF
- LDD T1
- STD CM+3 (CM+3) = UPPER PART OF EM ADDR.
- LDD T2
- STD CM+4 (CM+4) = LOWER PART OF EM ADDR.
- .NOSV1 IFLT OSLEV,562D NOS V1
- LDD MA
- CWD CM (MB) = 36/TRASH,24/EM ADDRESS
- .NOSV1 ENDIF
- LDD T3 GET NUMBER CPU WORDS TO WRITE
- ZJN WECSX IF NO DATA
- .NOSV1 IFLT OSLEV,562D NOS V1
- SBN 1 ADJUST WORD COUNT
- .NOSV1 ENDIF
- SHN 6
- STD CM+1 SET NUMBER CPU WORDS TO WRITE
- LDD RA COMPUTE CM ADDRESS
- SHN 6
- ADC EB CM/ECS BUFFER ADDRESS
- .WECA EQU *-1
- CWM **,T3 WRITE THE DATA
- WECA EQU *-1
- SBD T3
- * /--- BLOCK /CMR/WRITE 00 000 86/05/29 10.33
- .NOSV2 IFGE OSLEV,562D NOS V2
- SBN 1 BACK UP TO BUFFER HEADER
- CWD CM
- .NOSV2 ENDIF
- STD CM+2
- SHN -14
- LPN 77 ENSURE NO SIGN EXTENSION
- .NOSV2 IFGE OSLEV,562D NOS V2
- LMD HN SET REQUEST COUNT
- STM CM+1
- LDC /CPS/PELS*1000B+1S8 WRITE EM VIA CM LIST
- .NOSV2 ELSE NOS V1
- RAD CM+1
- LDC /CPS/RWEM*1000B
- .NOSV2 ENDIF
- STD CM+3 (CM+3) = SUBFUNCTION = *RWEM*
- LDN 1
- STD CM+4 (CM+4) = R/W FLAG (READ)
- MONITOR ECSM WRITE CM TO ECS
- LDD CM+1 CHECK IF ECS ERROR OCCURRED
- ZJN WECS1 (A)=0, NO ECS ERROR
- LDN DEWE ECS WRITE ERROR
- RJM MES
- LDN 1 EXIT WITH (A) =1
- WECS1 LJM WECSX EXIT
- * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
- * DDP ECS WRITE SUBROUTINE LENGTH.
- WECL EQU *-WECSX LENGTH OF THIS SUBROUTINE
- ERRNG //WECL-WECL SUBROUTINE TOO LONG
- LOC *O
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK EM8 00 000 82/04/23 09.11
- EM8 OVERLAY (EM ACCESS FOR 800 SERIES.)
- EM8 SPACE 5,11
- ** EM8 - EM ACCESS ROUTINES FOR 800 SERIES.
- *
- * REWRITE THE DDP EM ACCESS ROUTINES WITH THE
- * READ/WRITE EM ROUTINES CONTAINED IN THIS OVERLAY
- * FOR 800 SERIES MACHINES.
- ORG //OVL+5
- EM8 SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * COPY CPMTR ROUTINE TO REPLACE DDP ROUTINES
- LDN 0
- STD T1
- EM81 LDM RECF,T1
- STM //RECSX,T1
- AOD T1
- LMC RECL
- NJN EM81 CONTINUE MOVE
- LDN 0 MOVE WRITE ROUTINE
- STD T1
- EM82 LDM WECF,T1
- STM //WECSX,T1
- AOD T1
- LMC WECL
- NJN EM82 CONTINUE MOVE
- LJM EM8X RETURN
- * /--- BLOCK /UEM/READE 00 000 86/05/29 10.38
- RECS SPACE 5,11
- ** RECS - READ UEM VIA DIRECT ACCESS.
- *
- * ENTRY (A) = PPU MEMORY ADDRESS.
- * (T1) = UPPER PORTION OF ECS ADDRESS.
- * (T2) = LOWER PORTION OF ECS ADDRESS.
- * (T3) = NUMBER OF CM WORDS TO READ.
- *
- * EXIT (A) = 0, IF NO ERRORS.
- * = 1, IF ECS PARITY ERROR.
- *
- * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS READ
- * SUBROUTINE, //RECS, ON 800-SERIES MAINFRAMES.
- RECF EQU *
- LOC //RECSX
- RECS SUBR
- * PLANT PP ADDRESS THE CM WORDS ARE TO BE READ INTO
- STM RCS20 PLANT PP MEMORY ADDRESS
- LDD T3 (A) = NUMBER OF PP WORDS
- ZJN RECSX IF NO WORDS TO BE READ
- SRD CM+2 SAVE CURRENT (R)
- * FORM PART OF EM ADDRESS IN (R)
- LDD T1 (A) = UPPER PART OF EM ADDRESS
- SHN -6 (A) = BITS 23 - 18 OF EM ADDR
- STD CM
- LDD T1
- SHN 6 (A) = BITS 17 - 12 OF EM ADDR
- STD CM+1
- LRD CM (R) = BITS 23 - 12 OF EM ADDR
- * FORM THE REST OF THE EM ADDRESS IN (A)
- LDD T2 (A) = LOWER PART OF EM ADDRESS
- LMC 400000B SET BIT TO USE (R) IN ADDR CALC
- * READ EM
- CRM **,T3
- RCS20 EQU *-1 LOCATION TO PLANT PP ADDR INTO
- * DONE.
- LRD CM+2 RESTORE OLD (R)
- LDN 0 MARK NO ERROR OCCURRED
- LJM RECSX RETURN
- * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
- * DDP ECS READ SUBROUTINE LENGTH.
- RECL EQU *-RECSX LENGTH OF THIS SUBROUTINE
- ERRNG //RECL-RECL SUBROUTINE TOO LONG
- LOC *O
- * /--- BLOCK /UEM/WRITE 00 000 86/05/29 10.37
- WECS SPACE 5,11
- ** WECS - WRITE UEM VIA DIRECT ACCESS.
- *
- * ENTRY (A) = PPU MEMORY ADDRESS.
- * (T1) = UPPER PORTION OF ECS ADDRESS.
- * (T2) = LOWER PORTION OF ECS ADDRESS.
- * (T3) = NUMBER OF CM WORDS TO WRITE.
- *
- * EXIT (A) = 0, IF NO ERRORS.
- * = 1, IF ECS PARITY ERROR.
- *
- * THIS SUBROUTINE WILL OVERWRITE THE DDP ECS WRITE
- * SUBROUTINE, //WECS, ON 800-SERIES MAINFRAMES.
- WECF EQU *
- LOC //WECSX
- WECS SUBR
- * PLANT PP ADDRESS THE CM WORDS ARE TO BE
- * WRITTEN FROM
- STM WCS20 PLANT PP MEMORY ADDRESS
- LDD T3 (A) = NUMBER OF PP WORDS
- ZJN WECSX IF NO WORDS TO WRITE
- SRD CM+2 SAVE CURRENT (R)
- * FORM PART OF EM ADDRESS IN (R)
- LDD T1 (A) = UPPER PART OF EM ADDRESS
- SHN -6 (A) = BITS 23 - 18 OF EM ADDR
- STD CM
- LDD T1
- SHN 6 (A) = BITS 17 - 12 OF EM ADDR
- STD CM+1
- LRD CM (R) = BITS 23 - 12 OF EM ADDR
- * FORM THE REST OF THE EM ADDRESS IN (A)
- LDD T2 (A) = LOWER PART OF EM ADDRESS
- LMC 400000B SET BIT TO USE (R) IN ADDR CALC
- * WRITE EM
- CWM **,T3
- WCS20 EQU *-1 LOCATION TO PLANT PP ADDR INTO
- * DONE.
- LRD CM+2 RESTORE OLD (R)
- LDN 0 MARK NO ERROR OCCURRED
- LJM WECSX RETURN
- * CHECK THAT THIS SUBROUTINES LENGTH IS .LE. THE
- * DDP ECS WRITE SUBROUTINE LENGTH.
- WECL EQU *-WECSX LENGTH OF THIS SUBROUTINE
- ERRNG //WECL-WECL SUBROUTINE TOO LONG
- LOC *O
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK GPS 00 000 87/02/10 12.05
- GPS OVERLAY (GET PRIMARY SWITCH NUMBER.)
- GPS SPACE 5,11
- ** GPS - GET PRIMARY SWITCH NUMBER
- *
- * GET PRIMARY SWITCH NUMBER, DATA AND TIME TO
- * WRITE INTO 2550.
- ORG //OVL+5
- GPS SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDN ZERL
- CRM /PRESET/BUF,ON
- LDN NPUS/400 NPU PRESET ADDRESS
- STM /PRESET/BUF+2
- LDC NPUS-NPUS/400*400
- STM /PRESET/BUF+3
- LDN 9D SET LENGTH
- STM /PRESET/BUF+5
- * SET NUMBER OF TRUNKS
- LDM NEST,NI READ EST ENTRY
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- .NOS252 IFGE OSLEV,678D
- ADK EQAE
- .NOS252 ELSE
- ADK EQDE WORD OFFSET
- .NOS252 ENDIF
- .NOS22 ELSE NOS 2.1 OR PRIOR
- ADM ESTS
- .NOS22 ENDIF
- CRD CM
- LDD CM+2
- LPN 77
- NJN GPS1 IF TRUNKS DEFINED
- LDN 1 SET TO ONE TRUNK
- GPS1 STM /PRESET/BUF+7
- LDN 1
- STM /PRESET/BUF+10
- LDN 9D YEAR - 19XX
- STM /PRESET/BUF+11
- LDN DTEL
- CRD CM
- LDD CM
- LPN 77
- SBN 33
- STM /PRESET/BUF+12 YEAR UPPER
- LDD CM+1
- SHN -6
- SBN 33
- STM /PRESET/BUF+13 YEAR LOWER
- * /--- BLOCK GPS 00 000 86/05/29 10.40
- LDN PDTL
- CRD CM
- LDD CM+2
- LPN 77 GET MONTH
- STM /PRESET/BUF+14
- LDD CM+3
- SHN 22-6 GET DAY
- STM /PRESET/BUF+15
- SHN -14 GET HOURS
- STM /PRESET/BUF+16
- LDD CM+4
- SHN 22-6 GET MINUTES
- STM /PRESET/BUF+17
- SHN -14 GET SECONDS
- STM /PRESET/BUF+20
- LDD SN SET S(D) UPPER
- SHN -10
- STM /PRESET/BUF+22
- LDD SN SET S(D) LOWER
- LPC 377
- STM /PRESET/BUF+23
- LDM NDS,NI SET DPNC S(D) UPPER
- SHN -10
- STM /PRESET/BUF+24
- LDM NDS,NI SET DPNC S(D) LOWER
- LPC 377
- STM /PRESET/BUF+25
- LDN 0 CLEAR UNUSED LOCATIONS
- STM /PRESET/BUF+6
- STM /PRESET/BUF+21
- STM /PRESET/BUF+26
- STM /PRESET/BUF+27
- LJM GPSX EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK IDP 00 000 87/02/10 12.23
- IDP OVERLAY (INITIALIZE ESM ACCESS.)
- IDP SPACE 5,11
- ** IDP - INITIALIZE ESM ACCESS
- *
- * ASSIGN DDP IF AVAILABLE, ELSE SET UP CM TRANSFER
- *
- * EXIT - (A) = 0 IF DDP RESERVED
- * 1 IF NO DDP AND 700 SERIES
- * -1 IF NO DDP AND 800 SERIES
- ORG //OVL+5
- IDP SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * SEARCH THE EST FOR A DDP (TYPE *D4*). THE DIRECT
- * CELLS USED IN THIS LOOP ARE AS FOLLOWS -
- *
- * NOS 2.2 AND LATER -
- * (CN) = CURRENT EST ORDINAL
- * (CN+2) = LAST EST ORDINAL +1
- *
- * NOS 2.1 AND PRIOR -
- * (CN) = CURRENT EST ENTRY ADDRESS
- * (CN+1) = LWA + 1 OF EST
- * (CN+2) = FWA OF EST
- LDN ESTP
- CRD CN
- .NOS22 IFGE OSLEV,594D NOS 2.2
- LDN 0
- .NOS22 ELSE NOS 2.1 OR PRIOR
- LDD CN SAVE BASE ADDRESS OF EST
- STD CN+2 (CN+2) = FWA OF EST
- SBN 1
- .NOS22 ENDIF
- STD CN (CN) = ENTRY ORDINAL OR ADDRESS
- IDP1 AOD CN BUMP TO NEXT EST ENTRY
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- CRD CM
- LDD CN (A) = CURRENT EST ORDINAL
- SBD CN+2
- .NOS22 ELSE NOS 2.1 OR PRIOR
- CRD CM
- SBD CN+1
- .NOS22 ENDIF
- NJN IDP1.1 IF MORE ENTRIES TO CHECK
- LJM IDP3 NO DDP RESERVED
- IDP1.1 BSS 0
- LDD CM+3
- LMC DSDP
- NJN IDP1 IF EQUIPMENT TYPES DO NOT MATCH
- .NOS251 IFGE OSLEV,664D
- LDD CM
- LPN 3
- NJP IDP1 IF DEVICE UNAVAILABLE
- .NOS251 ENDIF
- .NOSV2 IFGE OSLEV,562D NOS V2
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST,CN (A) = FWA OF ENTRY
- ADK EQAE OFFSET TO ASSIGNMENT WORD
- .NOS22 ELSE NOS 2.1
- LDD CN EST ENTRY
- ADD HN OFFSET TO EAT ENTRY
- .NOS22 ENDIF
- CRD CM
- LDD CM+4 EJT ORDINAL FOR THIS EQ
- STD T1 SAVE IT
- LDD CP GET THIS JOBS EJT ORDINAL
- ADN TFSW
- CRD CM
- LDD CM DSN EJT ORDINAL
- STD T2 SAVE IT
- * /--- BLOCK IDP 00 000 87/02/10 14.47
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST,CN (A) = FWA OF ENTRY
- ADK EQDE EQUIPMENT DESCRIPTOR WORD
- .NOS22 ELSE NOS 2.1
- LDD CN EST ENTRY
- .NOS22 ENDIF
- CRD CM RESTORE EST ENTRY IN CM
- LDD T1
- SBD T2
- ZJN IDP2 IF ALREADY ASSIGNED
- .NOSV2 ELSE NOS V1
- LDD CM CHECK IF ALREADY ASSIGN TO CP
- LPN 77
- SHN 7
- LMD CP
- ZJN IDP2 IF ASSIGNED TO THIS CP
- .NOSV2 ENDIF
- .NOS22 IFGE OSLEV,594D NOS 2.2
- LDD CN (A) = EST ORDINAL
- .NOS22 ELSE NOS 2.1 OR PRIOR
- LDD CN COMPUTE EST ORDINAL
- SBD CN+2
- .NOS22 ENDIF
- STD CM+1
- STM DPEQ
- .NOS242 IFGE OSLEV,642D
- LDN /CPS/REQS REQUEST ACTIVE EQUIPMENT
- .NOS242 ELSE
- LDN 0 REQUEST ACTIVE EQUIPMENT
- .NOS242 ENDIF
- STD CM+2
- MONITOR REQM REQUEST ASSIGNMENT
- LDD CM+1
- ZJN IDP2.2 IF NOT ASSIGNED
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST,CN (A) = FWA OF CURRENT ENTRY
- .NOS22 ELSE NOS 2.1 OR PRIOR
- LDD CN
- .NOS22 ENDIF
- CRD CM
- IDP2 MONITOR CCHM
- LDD CM+2
- NJN IDP2.1 IF CHANNEL RESERVED
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST,CN (A) = FWA OF CURRENT ENTRY
- .NOS22 ELSE NOS 2.1 OR PRIOR
- LDD CN
- .NOS22 ENDIF
- CRD CM
- LDD CM+2
- .NOS252 IFGE OSLEV,678D
- SHN 6
- PJP IDP2.2 IF ALTERNATE ACCESS DISABLED
- SHN 21-6
- .NOS252 ELSE
- ZJN IDP2.2 IF NO ALTERNATE CHANNELS
- .NOS252 ENDIF
- STD CM+1
- MONITOR CCHM
- LDD CM+2
- ZJN IDP2.2 IF CHANNEL NOT RESERVED
- IDP2.1 LJM IDP6 IF CHANNEL RESERVED
- IDP2.2 LJM IDP1 LOOP FOR NEXT ENTRY
- * /--- BLOCK IDP 00 000 87/02/24 10.10
- * SET CM BUFFER ADDRESS BASED ON PP ORDINAL
- IDP3 STM DPEQ SHOW NO LOW SPEED PORT
- * DETERMINE IF 700 OR 800 SERIES
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDC MABL
- CRD CM
- LDD CM+1
- SHN 21-13
- PJN IDP4 IF 800 SERIES
- LDN 1 MARK FOR 700 SERIES
- UJN IDP5
- IDP4 LCN 1 MARK FOR 800 SERIES
- IDP5 LJM IDPX RETURN
- .NOSV2 ELSE NOS V1
- LDC CPUL
- CRD CM
- LDD CM+3
- SHN 21-10
- MJN IDP4 IF 800 SERIES
- LDN 1 MARK FOR 700 SERIES
- UJN IDP5
- IDP4 LCN 1 MARK FOR 800 SERIES
- IDP5 LJM IDPX RETURN
- .NOSV2 ENDIF
- * SET DDP CHANNEL
- IDP6 LDC /PRESET/DPCH SET CHANNEL TABLE ADDRESS
- STD T2
- LDD CM+1 (A) = CHANNEL NUMBER
- STM //DPCH
- RJM ICH SET CHANNEL NUMBERS
- .NOS252 IFGE OSLEV,678D
- LDK EXML CHECK EM TYPE
- CRD CM
- LDD CM+3
- SHN 7
- MJN IDP7 IF ESM MODE
- .NOS252 ELSE
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDN MEFL CHECK EM TYPE
- CRD CM
- LDD CM+2
- LPN 7 (A) = EM TYPE CODE
- SBN 5 ESM MODE = 5
- ZJN IDP7 IF ESM MODE
- .NOSV2 ELSE NOS V1
- LDN CPUL
- CRD CM
- LDD CM+ESMW
- SHN 21-ESMB
- MJN IDP7 IF ESM MODE
- .NOSV2 ENDIF
- .NOS252 ENDIF
- LDC UJNI+2 NO-OP MODE SELECT
- STM //RECB
- STM //WECB
- IDP7 LDN 0 MARK DDP RESERVED
- LJM IDPX RETURN
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK KYO 00 000 86/05/29 10.45
- KYO OVERLAY (KEY BUFFER OVERFLOW PROCESSING.)
- KYO SPACE 5,11
- ** KYO - PROCESS KEY BUFFER OVERFLOW PROBLEMS
- *
- * THIS OVERLAY IS CALLED WHEN A KEY WILL BE DROPPED
- * BECAUSE THE OVERFLOW KEY BUFFER IS FULL
- *
- * EXIT - (A) = 0 IF KEY BUFFER SHOULD BE UPDATED
- ORG //OVL+5
- KYO SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * COUNT NUMBER OF KEYS LOST
- AOM SKYB+2 INCREMENT LOST KEY COUNT
- SHN -14
- RAM SKYB+1
- * CHECK FOR TOO MANY LOST FOR THIS USER
- AOM CMB+1
- SBN 50 LOSE UP TO 50B KEYS
- PJN KYO2 IF TOO MANY LOST KEYS
- LDD KY
- ADC -ST1KY
- NJN KYO1 IF NOT A STOP1 KEY
- * EMPTY OVERFLOW BUFFER AND SET STOP1 KEY
- LDN 1
- STD T2
- LDD KY
- STM CMB+2
- KYO1 LDN 0 (A) = UPDATE OVERFLOW BUFFER
- UJN KYOX
- * /--- BLOCK KYO 00 000 86/05/29 10.45
- * LOG USER OFF, TOO MANY LOST KEYS IN A ROW
- KYO2 BSS 0
- LDC SLKY SINGLE STATION LOGOFF KEY
- STD KY
- LDN 0 FORCE STORE OF KEY
- STM TST,ST SHOW TERMINAL NOT ACTIVE
- RJM SPK
- LDN 0#08
- RJM PLM LOGOUT USER FROM DPNC
- LDD ST
- SBD CB
- ADD SB
- STD T7 SAVE STATION NUMBER
- RJM C2D
- STM KYOA+7 SET LOWER STATION NUMBER
- LDD T7 GET STATION NUMBER
- SHN -6
- RJM C2D
- STM KYOA+6 SET UPPER STATION NUMBER
- LDM SDT,ST GET S(O)
- RJM C2D
- STM KYOA+16 SET LOWER S(O)
- LDM SDT,ST
- SHN -6
- RJM C2D
- STM KYOA+15 SET UPPER S(O)
- LDM TDT,ST GET T(D)
- LPC 377
- STD T7
- RJM C2D
- STM KYOA+21 SET LOWER T(O)
- LDD T7
- SHN -6
- RJM C2D
- STM KYOA+20 SET UPPER T(O)
- * CHECK FOR INHIBIT ERROR MESSAGE - SW2
- LDD RA
- SHN 6
- CRD CN
- LDD CN+4
- SHN 21-7 POSITION SW2
- MJN KYO3 EXIT IF SW2 IS SET
- LDC KYOA
- RJM DFM
- KYO3 BSS 0
- LDN 0 (A) = UPDATE OVERFLOW BUFFER
- STM CMB+1 CLEAR LOST KEY COUNT
- LJM KYOX EXIT
- KYOA DATA C*KEY PUMPING XXXXB, NETNUM XXXXB-XXXXB.*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK LPG 00 000 82/12/06 16.09
- LPG OVERLAY (LOAD PROGRAM INTO 2550.)
- LPG SPACE 5,11
- ** LPG - LOAD PROGRAM INTO 2550
- *
- * ENTRY - ((CB)) = LOAD FILE DISK ADDRESS
- ORG //OVL+5
- LPG SUBR
- * SET DISK ADDRESS OF LOAD FILE
- LDI CB
- STD T5
- LDM 1,CB
- STD T6
- LDM 2,CB
- STD T7
- LDC RTCL SET UP STATUS CLOCK
- CRD CM
- LDD CM+1
- STM NSTS,NI
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- STD IP CLEAR BUFFER INDEX
- STD IL CLEAR WORD COUNT
- RJM CNP CLEAR 2550
- LDC 20*5 PREFIX AND HEADER BYTE LENGTH
- RJM GTW SKIP PREFIX
- NJN LPG3 IF EOR
- * FORMAT DAYFILE MESSAGE
- LDM NEST,NI
- RJM C2D
- STM LPGB+1
- LDN 10D-1 LENGTH OF BINARY DECK ID
- STD T1
- LPG1 LDM /PRESET/BUF+50,T1
- STM LPGB+7,T1
- SOD T1
- PJN LPG1 IF MORE TO MOVE
- LDC LPGB
- RJM DFM
- LPG2 LDN 0
- STD IP BUFFER INDEX
- LDN 6 2550 FWA PACKET LENGTH
- RJM GTW
- NJN LPG5 IF EOR
- LDM /PRESET/BUF
- SHN 21-13
- MJN LPG4 IF LEGAL CONTROL WORD
- LPG3 LDN NFFE LOAD FILE FORMAT ERROR
- LJM MXE ABORT
- LPG4 LDM /PRESET/BUF+5
- SHN 1
- ZJN LPG3 IF PACKET LENGTH IS ZERO
- RJM GTW GET PACKET
- NJN LPG3 IF EOR
- RJM /PRESET/WTB WRITE LOAD DATA AND VERIFY
- UJN LPG2
- LPG5 LJM LPGX EXIT
- LPGB DATA C*EQXX LOADING- XXXXXXXXXXXXXXXXXXXX*
- CNP SPACE 5,11
- ** CNP - MASTER CLEAR 2550
- CNP SUBR
- LDC CLC
- RJM FNC CLEAR COUPLER
- LDC CNU
- RJM FNC CLEAR 2550
- RJM STS CLEAR ANY LEFT OVER STATUS
- UJN CNPX
- * /--- BLOCK LPG 00 000 82/12/06 16.04
- GTW SPACE 5,11
- ** GTW - MOVE WORDS FROM DISK BUFFER TO 2550 BUFFER
- *
- * ENTRY - (A) = REQUESTED PP BYTE COUNT
- * (IL) = NUMBER OF BYTES LEFT IN DISK BUFFER
- * (IP) = STARTING ADDRESS IN 2550 BUFFER
- *
- * EXIT - (BUF) = REQUESTED DATA BYTES
- * (A) = 0 DATA READ
- GTW4 LDN 1 SET EOF/EOI FLAG
- GTW SUBR
- ZJN GTWX IF NO DATA REQUESTED
- STD PL SAVE BYTE COUNT
- LDD IL
- NJN GTW2 IF BYTES LEFT IN *BFDS*
- GTW1 RJM RDB FILL *BFDS*
- ZJN GTW4 IF EOF/EOI ENCOUNTERED
- LDD IL SET SIZE OF READ
- ZJN GTW1 IF EMPTY SECTOR
- STM GTWA
- GTW2 LDC 500
- GTWA EQU *-1
- SBD IL FIND STARTING TRANSFER POINT
- STD T2
- GTW3 LDM /PRESET/BFDS+2,T2
- STM /PRESET/BUF,IP
- AOD T2
- AOD IP
- SOD IL
- SOD PL
- ZJN GTWX IF ALL BYTES TRANSFERRED
- LDD IL
- NJN GTW3 IF BYTES LEFT IN *BFDS*
- UJN GTW1 READ NEXT DISK SECTOR
- RDB SPACE 5,11
- ** RDB - READ DISK BUFFER
- *
- * EXIT - (A) = 0 IF EOF/EOI ENCOUNTERED
- * (IL) = NUMBER OF PP BYTES READ
- RDB SUBR
- LDN 1
- RDBA EQU *-1
- ZJN RDBX IF EOR ON PREVIOUS SECTOR
- SETMS READSYS
- LDC /PRESET/BFDS
- RJM /PRESET/RNS READ NEXT SECTOR
- SHN 2 COUNT PP WORD COUNT
- ADD T1
- STD IL
- ENDMS
- LDD T1
- SHN -6
- ADC LDNI
- STM RDBA SET EOR FLAG
- UJN RDBX EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK MXE 00 000 87/02/10 14.50
- MXE OVERLAY (PROCESS 2550 CHANNEL ERRORS.)
- MXE SPACE 5,11
- ** MXE - PROCESS 2550 CHANNEL ERRORS
- *
- * ENTRY - (T7) = ERROR CODE
- ORG //OVL+5
- MXE SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * ISSUE DAYFILE MESSAGE ABOUT ERROR
- LDD T7
- RAM .MXEA
- RJM C2D
- STM MXEA+6
- LDM NEST,NI
- RJM C2D
- STM MXEA+1
- STM MXEB+1
- LDC MXEA *EQXX ERROR XX.*
- RJM DFM
- LDN 0
- STD OD CLEAR OUTPUT DELAY FLAG
- STD OL CLEAR OUTPUT LENGTH
- LDD IR+2
- NJN MXE0.1 IF RELOAD CALL
- LDM INIC
- ZJN MXE0.1 IF INITIALIZATIONS COMPLETE
- LDN ILFE INITIAL LOADING FAILURE
- RJM MES
- LJM TER TERMINATE PROGRAM
- * LOG OFF ALL TERMINALS CONNECTED TO THIS 2550
- MXE0.1 BSS 0
- RJM LOT
- * CALL ANOTHER COPY OF DSN TO RE-LOAD THIS 2550
- LDM NCH,NI DROP CHANNEL
- DCHAN
- LDD MA BUILD INPUT REGISTER
- CWD IR
- CRD CM
- LDM NEST,NI SET EST ORDINAL TO RE-LOAD
- STD CM+2
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- ADK EQDE OFFSET TO DESCRIPTOR WORD
- .NOS22 ELSE NOS 2.1 OR PRIOR
- ADM ESTS READ EST ENTRY
- .NOS22 ENDIF
- CRD CN
- .NOS252 IFGE OSLEV,664D
- LDD CN
- LPN 3
- NJP MXE1 IF UNAVAILABLE
- .NOS252 ELSE
- LDD CN+3 CHECK IF 2550 IS STILL ON
- SHN 6
- MJN MXE1 IF TURNED OFF
- .NOS252 ENDIF
- LDN 0
- .MXEA EQU *-1 2550 ERROR CODE
- SBN OPLE
- ZJN MXE2 IF OPERATOR REQUESTED LOAD
- * /--- BLOCK MXE 00 000 86/05/29 10.49
- * CHECK IF RELOAD INHIBITED
- LDD RA READ SENSE SWITCHES
- SHN 6
- CRD CN
- LDD CN+4
- SHN 21-6
- MJN MXE0 IF RELOADS INHIBITED (SSW1)
- AOM NREL,NI CHECK IF TOO MANY RE-LOADS
- SBN MXREL+1
- MJN MXE2 IF NOT TOO MANY RE-LOADS
- * TURN 2550 OFF AFTER MAXIMUM RE-LOADS
- MXE0 LDD CM+2
- STD CM+1
- LDN 1
- STD CM+2
- MONITOR SEQM
- LDC MXEB *EQXX TURNED OFF.*
- RJM DFM
- LDD IR+2
- ZJN MXE1 -- IF NOT RELOAD CALL
- LJM TER RELOAD CALL'; EXIT
- MXE1 LJM MXE7
- MXE2 LDD SN SET S(D)
- STD CM+3
- LDM NDS,NI SET DPNC S(D)
- STD CM+4
- LDD MA
- CWD CM
- MXE5 LDN 1 SET PRIORITY PP REQUEST
- STD CM+1
- MONITOR RPPM REQUEST PP
- LDD CM+1
- ZJN MXE5 IF PP NOT LOADED
- * WAIT FOR PP TO LOAD 2550 AND DROP
- STD T7
- MXE6 DELAY
- LDD T7
- CRD CM
- LDD IR
- LMD CM
- NJN MXE7 IF PP HAS DROPPED
- LDD CM+1
- LMD IR+1
- SCN 77
- NJN MXE7 IF PP HAS DROPPED
- RJM PSE PAUSE
- ZJN MXE6 IF NO ERROR FLAG
- LJM TER
- * CONTINUE 2550 RELOAD AFTER LOAD PP DROPPED
- MXE7 EXECUTE MXP,=
- LDC /MXP/OVL
- RJM EXR
- MXEA DATA C*EQXX ERROR XX.*
- MXEB DATA C*EQXX TURNED OFF.*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK MXP 00 000 86/05/29 10.50
- MXP OVERLAY (COMPLETE 2550 RELOAD.)
- MXP SPACE 5,11
- ** COMPLETE 2550 RELOAD
- ORG //OVL+5
- MXP SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * CHECK IF 2550 IS STILL TURNED ON
- LDM NEST,NI
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- ADK EQDE OFFSET TO DESCRIPTOR WORD
- .NOS22 ELSE NOS 2.1 OR PRIOR
- ADM ESTS READ EST ENTRY
- .NOS22 ENDIF
- CRD CN
- LDD CN+3 CHECK IF 2550 IS STILL ON
- SHN 6
- PJN MXP3 IF STILL ON
- * STOP PROCESSING THIS 2550
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDM NEST,NI LOCATION IN EST TABLE
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- ADK EQAE
- CRD CN READ WORD *EQAE* OF EST ENTRY
- .NOS22 ELSE NOS 2.1
- ADM ESTS LOCATION OF EST TABLE
- ADC 100 MOVE TO EAT TABLE
- CRD CN READ EAT ENTRY
- .NOS22 ENDIF
- LDD CP GET EJT ORDINAL
- ADN TFSW
- CRD CM
- LDD CM EJT ORDINAL
- SBD CN+4 EJT 2550 IS ASSIGNED TO
- NJN MXP2 IF 2550 NOT ASSIGNED HERE
- .NOSV2 ELSE NOS V1
- LDD CN CHECK IF ALREADY DROPPED
- ZJN MXP2 IF NOT ASSIGNED TO ANY CP
- .NOSV2 ENDIF
- LDM NEST,NI RELEASE 2550 EQUIPMENT
- STD CM+1
- MONITOR DEQM
- MXP2 LDN 0
- STM NEST,NI SHOW THIS 2550 NOT ACTIVE
- * /--- BLOCK MXP 00 000 86/05/29 10.50
- * CHECK IF THE CHANNEL SHOULD BE RESERVED AGAIN
- * CHECK ANY 2550 TO PROCESS
- MXP3 LDN 0
- STD T1 (T1) = 2550 INDEX
- STD T2 (T2) = ACTIVE 2550 COUNT
- STD T3 (T3) = CHANNEL NEEDED FLAG
- LDC RTCL
- CRD CM
- MXP4 LDM NEST,T1
- ZJN MXP5 IF INACTIVE 2550
- AOD T2 COUNT ACTIVE 2550S
- LDD CM+1 RESET STATUS CLOCK
- STM NSTS,T1
- LDM NCH,T1
- LMM NCH,NI
- NJN MXP5 IF NOT ON THE DROPPED CHANNEL
- AOD T3 MARK CHANNEL NEEDED
- MXP5 AOD T1
- LMM .SNPA
- NJN MXP4 IF MORE 2550S TO CHECK
- LDD T2
- ZJN MXP7 IF NO 2550S TO PROCESS
- LDD T3
- ZJN MXP6 IF CHANNEL NOT NEEDED
- LDM NCH,NI
- RCHAN RESERVE CHANNEL
- MXP6 RJM SNP
- LJM MAI1 ENTER MAIN LOOP OF DRIVER
- MXP7 LJM MAI9 DROP PP
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK OPC 00 000 87/02/10 15.14
- OPC OVERLAY (PROCESS OPERATOR CFO COMMAND.)
- OPC SPACE 5,11
- ** PROCESS OPERATOR CFO COMMAND
- ORG //OVL+5
- OPC SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * READ OPERATOR REQUEST
- LDD RA
- SHN 6
- ADN CCDR
- CRD CM
- LDD CM
- LMC 2RRE CHECK FOR *RE*
- ZJN OPC2 IF RELOAD REQUEST
- OPC1 LDC OPCA
- RJM DFM
- LJM OPC9 SET CFO BIT AND EXIT
- * PROCESS *RELOAD* REQUEST
- OPC2 LDD CM+1
- RJM DXB CONVERT EST ORDINAL
- MJN OPC1 IF INVALID NUMBER
- STD T4 (T4) = EST ORDINAL
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- ADK EQDE OFFSET TO DESCRIPTOR WORD
- .NOS22 ELSE NOS 2.1 OR PRIOR
- ADM ESTS
- .NOS22 ENDIF
- CRD CM
- LDD CM+3
- LMC DSFE
- NJN OPC1 IF NOT *FE* EQUIPMENT
- * DETERMINE WHICH PP DRIVES THIS 2550
- .NOS252 IFGE OSLEV,678D
- SFA EST,T4
- ADK EQAE
- CRD CM
- .NOS252 ENDIF
- LDD CM+2 EXTRACT 2550 ORDINAL
- SHN -6
- STD CM+2
- LDD MA
- CWD IR
- CRD CN (CN+4) = PP ORDINAL
- OPC3 LCN MXNPU
- RAD CM+2
- MJN OPC4 IF FOUND THE CORRECT PP
- AOD CN+4
- UJN OPC3
- OPC4 ADN MXNPU
- STD T5 (T5) = 2550 ORDINAL WITHIN PP
- .NOS252 IFGE OSLEV,678D
- SFA EST,T4
- ADK EQDE
- CRD CM
- .NOS252 ENDIF
- LDD CM+1
- LPN 77
- STD T6 (T6) = CHANNEL
- LDD CM+4
- LPC 7000
- STD T7 (T7) = EQUIPMENT
- LDN 1
- STD T3 (T3) = UP REQUEST
- * /--- BLOCK OPC 00 000 86/05/29 10.53
- * CHECK IF THIS PP IS LOADED
- LDN PPUL
- CRD CM
- LDD CM+2
- STD T1 (T1) = NUMBER OF PPS
- LDN PPCP
- CRD CM
- LDD CM+4
- STD T2 (T2) = PP COMMUNICATION ADDRESS
- OPC5 LDD T2
- CRD CM
- LDD CM
- LMD IR
- NJN OPC6 IF NOT *DSN*
- LDD CM+1
- LMD IR+1
- SCN 77
- NJN OPC6 IF NOT *DSN*
- LDD CM+4
- LMD CN+4
- ZJN OPC8 IF PROPER DRIVER LOADED
- OPC6 LDN 10
- RAD T2
- SOD T1
- NJN OPC5 IF MORE PPS
- * LOAD THIS PP
- OPC7 LDD MA
- CWD CN
- LDN 1 SET PRIORITY PP REQUEST
- STD CM+1
- MONITOR RPPM
- LDD CM+1
- NJN OPC9 IF PP ASSIGNED
- RJM PSE
- ZJN OPC7
- LJM TER
- * /--- BLOCK OPC 00 000 86/05/29 10.52
- * WRITE REQUEST TO DRIVER REQUESTS
- OPC8 LDD RA
- SHN 6
- ADN DR
- ADD CN+4
- CWD T3
- * SET CFO BIT
- OPC9 LDD RA
- SHN 6
- CRD CM
- LDN 4
- STD CM+3
- LDD RA
- SHN 6
- CWD CM
- LJM OPCX EXIT
- OPCA DATA C* INVALID REQUEST.*
- DXB SPACE 5,11
- ** DXB - CONVERT NUMBER FROM DISPLAY CODE
- *
- * ENTRY - (A) = CHARACTERS TO CONVERT
- *
- * EXIT - (A) = CONVERTED NUMBER (-1 IF ERROR)
- DXB1 LCN 1
- DXB SUBR
- STD T1
- LPN 77
- SBN 1R0
- MJN DXB1 IF ILLEGAL CHARACTER
- STD T0
- SBN 10
- PJN DXB1 IF ILLEGAL CHARACTER
- LDD T1
- SHN -6
- SBN 1R0
- MJN DXB1 IF ILLEGAL CHARACTER
- SBN 10
- PJN DXB1 IF ILLEGAL CHARACTER
- ADN 10
- SHN 3
- ADD T0
- UJN DXBX EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK OPR 00 000 86/05/29 10.56
- OPR OVERLAY (PROCESS MAIN DRIVER REQUEST.)
- OPR SPACE 5,11
- ** PROCESS REQUEST FROM MAIN DRIVER
- *
- * REQUEST PARAMETERS
- * ------- ----------
- *
- * 1 (RELOAD 2550) EST, ORDINAL, CHANNEL, EQUIP
- ORG //OVL+5
- OPR SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- * READ AND CLEAR REQUEST BUFFER
- LDN ZERL
- CRD CM
- LDD RA
- SHN 6
- ADN DR
- ADD PO
- CRD CN READ REQUEST
- CWD CM CLEAR REQUEST
- * DETERMINE REQUEST TYPE
- LDD CN
- SBN 1
- NJN OPRX IF UNKNOWN REQUEST
- * RESERVE EQUIPMENT
- .NOSV2 IFLT OSLEV,562D IF NOS V1
- LDD CN+1 CHECK IF ALREADY ASSIGNED TO CP
- ADM ESTS
- CRD CM
- LDD CM
- SHN 7
- LMD CP
- .NOSV2 ELSE IF NOS V2
- LDD CN+1 (A) = EST ORDINAL
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- ADK EQAE OFFSET TO ASSIGNMENT WORD
- .NOS22 ELSE NOS 2.1
- ADM ESTS (A) = ADDRESS OF EST ENTRY
- ADD HN (A) = ADDRESS OF EAT ENTRY
- .NOS22 ENDIF
- CRD CM READ EAT ENTRY
- LDD CM+4
- STD T1
- LDD CP CHECK DSN,S EJT ORDINAL
- ADK TERW (A) = ADDR OF CP EJT ORDINAL
- CRD CM
- LDD T1
- LMD CM
- .NOSV2 ENDIF
- ZJN OPR1 IF ASSIGNED TO THIS CP
- LDM NEST,CN+2
- ZJN OPR0 IF 2550 ORDINAL IS OKAY
- LDC OPRA DUPLICATE 2550 ORDINALS
- RJM DFM
- LJM OPRX EXIT
- * /--- BLOCK OPR 00 000 86/05/29 10.55
- OPR0 BSS 0
- LDD CN+1
- STD CM+1
- .NOS242 IFGE OSLEV,642D
- LDN /CPS/REQS REQUEST ACTIVE EQUIPMENT
- .NOS242 ELSE
- LDN 0 REQUEST ACTIVE EQUIPMENT
- .NOS242 ENDIF
- STD CM+2
- MONITOR REQM REQUEST ASSIGNMENT
- LDD CM+1
- NJN OPR1 IF ASSIGNED
- LJM OPRX EXIT
- * BUILD TABLES FOR THIS 2550
- OPR1 LDD CN+2
- SHN 4
- STD T1
- LDD CN+1
- STM NEST,CN+2
- LDD CN+3
- STM NCH,CN+2
- LDD CN+4
- STM NEQ,T1
- LDN 0
- STM NREL,CN+2
- * CHECK IF CHANNEL ALREADY REQUEST
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDN CTALL
- STD T1 (T1) = LENGTH OF CHANNEL TABLE
- LDK CHTP (A) = CMR POINTER ADDRESS
- CRD CM
- LDD CM+2
- SHN 14B
- ADD CM+3 (A) = FWA OF CHANNEL TABLE
- .NOSV2 ELSE NOS V1
- LDN CTILL
- STD T1
- LDC CTIL
- .NOSV2 ENDIF
- CRM BUF,T1
- LDN PPCP
- CRD CM
- LDD IA
- SBD CM+4
- SHN -3
- LMM BUF,CN+3
- .NOSV2 IFGE OSLEV,562D NOS V2
- LPN 37
- .NOSV2 ELSE NOS V1
- LPN 77
- .NOSV2 ENDIF
- ZJN OPR2 IF CHANNEL ALREADY ASSIGNED
- LDD CN+3
- RCHAN
- * SET UP TO RE-LOAD THIS 2550
- OPR2 LDD CN+2
- LMD NI
- ZJN OPR3 IF SET TO PROPER 2550
- RJM SNP SET UP NEXT 2550
- UJN OPR2
- * FORCE THIS 2550 TO BE RELOADED
- OPR3 LDN OPLE
- LJM MXE RE-LOAD 2550
- OPRA DATA C*DUPLICATE 2550 ORDINALS.*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK PSM 00 000 86/05/29 10.53
- PSM OVERLAY (PROCESS SYSTEM MESSAGE.)
- PSM SPACE 5,11
- ** PSM - PROCESS SYSTEM MESSAGE
- *
- * ENTRY - (IP) - POINTER TO START OF TERMINAL BLOCK
- *
- * EXIT - (IP) - INCREMENTED BY LENGTH OF DATA BLOCK
- ORG //OVL+5
- PSM SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDM IBUF,IP SET SYSTEM MESSAGE NUMBER
- STD T4
- LDC SYSB
- STD T5
- LDM IBUF,IP CHECK FOR FB MESSAGE
- ADC -0#FB
- NJN SYS1 IF NOT A FB MESSAGE
- LDM IBUF+2,IP GET FB MESSAGE NUMBER
- STD T4
- LDC SYSD SET TO FB TABLE
- STD T5
- * SEARCH FOR THIS SYSTEM MESSAGE
- SYS1 LDI T5
- ZJN SYS2 IF END OF TABLE
- LMD T4
- ZJN SYS3 IF FOUND THIS SYSTEM MESSAGE
- LDN 2
- RAD T5
- UJN SYS1 CHECK NEXT ENTRY IN TABLE
- * SYSTEM MESSAGE NOT FOUND
- SYS2 LDD T4
- STD ST ST CONTAINS BAD CODE
- LDN USME UNKNOWN SYSTEM MESSAGE
- RJM MES
- LDN 1 MARK AS UNKNOWN MESSAGE
- UJN SYS4
- * JUMP TO PROCESSOR FOR THIS SYSTEM MESSAGE
- *
- * (IP) = POINTER TO TERMINAL BLOCK
- * (PL) = PACKET LENGTH
- SYS3 LDM 1,T5
- STM /SYS/SYSA
- LDN 0 MARK AS ROUTINE PLANTED
- SYS4 BSS 0
- LJM PSMX EXIT
- SYSB BSS 0 SYSTEM MESSAGE TABLE
- CON 0#CA,CSS CHANGE SWITCH STATUS
- CON 0#CD,DSM IST ERROR STATISTICS
- CON 0#DE,CEM 2550 CCP ERROR/STATISTIC MSG
- * DELETED ASU, APPLICATION SYSTEM UPDATE
- CON 0#E7,ASO APPLICATION SIGNON
- CON 0 END OF TABLE
- SYSD BSS 0 FB MESSAGE TABLE
- CON 0#91,SBG SIGN-ON TO BACKGROUND SYSTEM
- CON 0 END OF TABLE
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK RFE 00 000 87/02/10 15.16
- RFE OVERLAY (RESERVE FRONT ENDS.)
- RFE SPACE 4,10
- ** RFE - RESERVE FRONT END.
- *
- * RESERVE 2550S ASSIGNED TO THIS PP.
- ORG //OVL+5
- RFE SUBR ENTRY / EXIT
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDN ESTP
- CRD CN
- .NOS22 IFGE OSLEV,594D NOS 2.2
- LDN 0
- STD CN+3 (CN+3) = CURRENT EST ORDINAL
- STD CN+4 (CN+4) = NO. OF 2550S ASSIGNED
- RFE1 AOD CN+3 ADVANCE TO NEXT EST ENTRY
- SBD CN+2 (CN+2) = LAST EST ORDINAL + 1
- PJP RFE6 IF NO MORE ENTRIES
- SFA EST,CN+3
- CRD CM READ EST ENTRY
- .NOS22 ELSE NOS 2.1 OR PRIOR
- LDD CN SAVE BASE ADDRESS OF EST
- STD CN+2
- SBN 1
- STD CN INITIALIZE LOOP
- LDN 0
- STD CN+4 NUMBER OF 2550S ASSIGNED
- RFE1 AOD CN BUMP TO NEXT EST ENTRY
- CRD CM
- SBD CN+1
- MJN RFE1.1 IF MORE ENTRIES
- LJM RFE6
- .NOS22 ENDIF
- RFE1.1 LDD CM+3
- LMC DSFE
- NJN RFE1 IF EQUIPMENT TYPES DO NOT MATCH
- * CHECK IF THIS ORDINAL SHOULD BE ASSIGNED TO PP
- LDN 0
- STD NI
- .NOS252 IFGE OSLEV,678D
- SFA EST,CN+3
- ADK EQAE
- CRD CM
- .NOS252 ENDIF
- RFE2 LDD CM+2
- SHN -6
- LMM NORD,NI
- ZJN RFE3 IF THIS PP SHOULD PROCESS
- AOD NI
- LMM .SNPA
- NJN RFE2 IF MORE 2550 TO CHECK
- RFE2.1 UJN RFE1 SEARCH FOR NEXT 2550
- RFE3 LDM NEST,NI
- ZJN RFE4 IF ORDINAL NOT YET ASSIGNED
- LDC RFEB * DUPLICATE 2550 ORDINALS.*
- LJM RFE7
- .NOS22 IFGE OSLEV,594D NOS 2.2
- RFE4 LDD CN+3 (A) = EST ORDINAL
- .NOS22 ELSE NOS 2.1 OR PRIOR
- RFE4 LDD CN COMPUTE EST ORDINAL
- SBD CN+2
- .NOS22 ENDIF
- STD CM+1
- * /--- BLOCK RFE 00 000 87/02/10 15.19
- .NOS242 IFGE OSLEV,642D
- LDN /CPS/REQS
- .NOS242 ELSE
- LDN 0 REQUEST ACTIVE EQUIPMENT
- .NOS242 ENDIF
- STD CM+2 ACTIVE EQUIPMENT ONLY
- MONITOR REQM REQUEST ASSIGNMENT
- LDD CM+1
- ZJN RFE2.1 IF NOT ASSIGNED
- .NOS22 IFGE OSLEV,642D
- LDD CN+3 (A) = EST ORDINAL
- .NOS22 ENDIF
- STM NEST,NI SET EST ORDINAL
- AOD CN+4 COUNT 2550S ASSIGNED
- LDD NI
- SHN 4
- STD T7
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST,CN+3 (A) = CURRENT ENTRY FWA
- ADK EQDE
- .NOS22 ELSE NOS 2.1 OR PRIOR
- LDD CN
- .NOS22 ENDIF
- CRD CM RE-READ EST
- LDD CM+4 SAVE EQUIPMENT NUMBER
- LPC 7000
- STM NEQ,T7
- LDD CM+1
- LPN 77
- STD T2
- STM NCH,NI
- LDN 0 SHOW NO RE-LOADS YET
- STM NREL,NI
- * CHECK IF CHANNEL ALREADY REQUEST
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDN CTALL
- STD T1 (T1) = LENGTH OF CHANNEL TABLE
- LDK CHTP (A) = CMR POINTER ADDRESS
- CRD CM
- LDD CM+2
- SHN 14B
- ADD CM+3 (A) = FWA OF CHANNEL TABLE
- .NOSV2 ELSE NOS V1
- LDN CTILL
- STD T1
- LDC CTIL
- .NOSV2 ENDIF
- CRM BUF,T1
- LDN PPCP
- CRD CM
- LDD IA
- SBD CM+4
- SHN -3
- LMM BUF,T2
- .NOSV2 IFGE OSLEV,562D NOS V2
- LPN 37
- .NOSV2 ELSE NOS V1
- LPN 77
- .NOSV2 ENDIF
- ZJN RFE5 IF CHANNEL ALREADY ASSIGNED
- LDD T2
- RCHAN
- RFE5 LJM RFE1 CHECK REST OF EST
- * /--- BLOCK RFE 00 000 82/05/10 11.16
- * VERIFY SOME 2550S FOUND
- RFE6 LDD CN+4
- NJN RFE8 IF SOME 2550S FOUND
- LDD PO (A) = PP ORDINAL
- RJM C2D
- STM RFEA+13
- LDC RFEA *NO 2550S FOUND.*
- RFE7 RJM DFM
- LJM TER
- RFE8 LJM RFEX EXIT
- RFEA DATA C* NO 2550S FOUND FOR PPXX.*
- RFEB DATA C* DUPLICATE 2550 ORDINALS.*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK RTT 00 000 82/04/21 12.22
- RTT OVERLAY (RETURN PLATO TERMINAL TYPE.)
- RTT SPACE 5,11
- ** RTT - RETURN TERMINAL TYPE
- *
- * THE TERMINAL TYPE IS SENT TO PLATO AS AN ECHO
- * KEY
- *
- * TERMINAL ECHO KEY = 3/TT, 4/12 (ASCII TYPE)
- *
- * TT - 0 = ASCII IST
- * 1 = CDC 750
- * 2 = TEKTRONIX 4014
- * 3 = DATASPEED 40
- ORG //OVL+5
- RTT SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDM TST,ST
- ZJN RTTX IF TERMINAL NOT ACTIVE
- * READ TERMINAL INFORMATION WORD
- * GET TERMINAL TYPE
- LDD RA
- SHN 6
- ADD TB BIAS TO TERMINAL INFORMATION
- ADD ST
- ADD ST
- CRD CM
- LDD CM
- SHN -4
- STD T1 (T1) = TERMINAL TYPE
- * CONVERT NETWORK TERMINAL TYPE TO PLATO TYPE
- LDC //RTTA START OF TERM TYPE TABLE
- STD T2
- RTT1 LDI T2
- ZJN RTT4 IF TERMINAL TYPE NOT FOUND
- LMD T1
- LPC 0#FE TERMINAL TYPE WITHOUT PARITY
- ZJN RTT2 IF TERMINAL FOUND
- AOD T2
- UJN RTT1 CHECK NEXT TERMINAL TYPE
- RTT2 LDI T2 FETCH PLATO TERMINAL TYPE
- SHN -10 POSITION PLATO TYPE
- LPN 7
- SHN 4
- ADC TTKY INCLUDE ECHO CODE
- SHN 1
- STD KY
- LDN 0 FORCED STORE
- RJM SPK STORE PLATO KEY
- RTT3 LJM RTTX EXIT
- RTT4 RJM SSL RE-VALIDATE USER
- LDN 0
- STM TST,ST SHOW TERMINAL NOT ACTIVE
- LDN 0#0C
- RJM PLM REVALIDATE USER AT DPNC
- UJN RTT3 EXIT
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK SSM 00 000 82/03/26 14.56
- SSM OVERLAY (PROCESS SUPER SYSTEM MESSAGE.)
- SSM SPACE 5,11
- ** SSM - PROCESS SUPER SYSTEM MESSAGE
- *
- * ALL ACTIVE TERMINALS ARE LOGGED OFF
- * A RESET COMPLETE IS SENT IF REQUEST RESET IS
- * RECEIVED
- ORG //OVL+5
- SSM SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDM NEST,NI
- RJM C2D
- STM SSMA+1
- STM SSMB+1
- LDM IBUF ISSUE DAYFILE MESSAGE
- RJM C2X
- STM SSMA+13
- LDM IBUF+2
- RJM C2X
- STM SSMA+15
- LDC SSMA * SUPER SYSTEM MSG XX.*
- RJM DFM
- RJM LOT SIGN ALL TERMINALS OFF PLATO
- * SEND RESET COMPLETE
- SSM1 LDC 0#FD
- STM OBUF
- LDN 2
- STM OBUF+1
- STD OL
- RJM FOB SEND SUPER SYSTEM MESSAGE
- LDC 0#80+1*10000B SET ENABLE ROUTING
- RJM SRM SEND ROUTING MESSAGE
- LDC SSMB * RESET COMPLETE.*
- RJM DFM
- LJM SSMX EXIT
- SSMA DATA C*EQXX SUPER SYSTEM MSG XX (XX).*
- SSMB DATA C*EQXX RESET COMPLETE.*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK TER 00 000 86/05/29 11.00
- TER OVERLAY (TERMINATION OVERLAY.)
- TER SPACE 5,11
- ** TER - TERMINATION OVERLAY
- *
- * LOG OUT ALL TERMINALS
- * CLEAR 2550S
- * DROP EQUIPMENT AND CHANNELS
- *
- * ENTRY - (TERT) = 0 IF DISABLE ROUTING
- ORG //OVL+5
- TER SUBR
- LDN 0
- STM BODC CLEAR *BFI* LOADED FLAG
- STM MSD CLEAR MASS STORAGE DRIVER
- * SEND MESSAGE TO DISABLE ROUTING
- LCN 0
- STD NI
- LDD IR+2
- ZJN TER1 IF DRIVER COPY
- LJM TER4 RELOAD COPY'; NO DSN MSG OR EM
- TER1 RJM SNP SET UP NPU
- ZJN TER2 IF FULL CYCLE
- RJM LOT SIGN TERMINALS OFF PLATO
- LDM TERT
- NJN TER1 IF NO DISABLE ROUTING
- LDC 0#40+2*10000B DISABLE ROUTING CODE
- RJM SRM SEND ROUTING MESSAGE
- LDC CNU CLEAR 2550
- RJM FNC
- UJN TER1 IF MORE NPUS
- * /--- BLOCK TER 00 000 86/05/29 11.01
- * DROP LOW SPEED PORT CHANNEL
- TER2 LDM DPCH CHECK IF DDP CHANNEL ASSIGNED
- ZJN TER4 IF NO CHANNEL
- DCHAN
- LDM DPEQ RELEASE DDP EQUIPMENT
- ZJN TER4 IF THIS PP DID NOT RESERVE IT
- STD CM+1
- MONITOR DEQM
- UJN TER4
- TER3 LJM TER8 END OF DROP EQ/CH LOOP
- * RELEASE 2550 AND THEIR CHANNELS
- TER4 LDN 0
- STD NI
- TER5 LMM .SNPA
- ZJN TER3 IF NO MORE 2550S
- LDM NEST,NI RELEASE 2550 EQUIPMENT
- .NOSV2 IFGE OSLEV,562D NOS V2
- ZJP TER6 IF NO EQUIPMENT
- .NOSV2 ELSE NOS V1
- ZJN TER6 IF NO EQUIPMENT
- .NOSV2 ENDIF
- .NOS22 IFGE OSLEV,594D NOS 2.2
- SFA EST (A) = FWA OF EST ENTRY
- ADK EQAE READ EQUIPMENT ATTRIBUTE WORD
- CRD CN
- .NOS22 ELSE NOS 2.1
- ADM ESTS LOCATION OF EST TABLE
- ADD HN (A) = ADDRESS OF EAT ENTRY
- CRD CN READ EAT ENTRY
- .NOS22 ENDIF
- LDD CP GET EJT ORDINAL
- ADN TFSW
- CRD CM
- LDD CM EJT ORDINAL
- SBD CN+4 EJT 2550 IS ASSIGNED TO
- NJP TER6 IF NOT ASSIGNED HERE
- LDM NEST,NI RELEASE 2550 EQUIPMENT
- STD CM+1
- MONITOR DEQM
- * /--- BLOCK TER 00 000 86/05/29 11.01
- * CHECK IF CHANNEL ALREADY DROPPED
- TER6 BSS 0
- LDM NCH,NI
- STD T2
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDN CTALL
- STD T1 (T1) = LENGTH OF CHANNEL TABLE
- LDK CHTP (A) = CMR POINTER ADDRESS
- CRD CM
- LDD CM+2
- SHN 14B
- ADD CM+3 (A) = FWA OF CHANNEL TABLE
- .NOSV2 ELSE NOS V1
- LDN CTILL
- STD T1
- LDC CTIL
- .NOSV2 ENDIF
- CRM BUF,T1
- LDN PPCP
- CRD CM
- LDD IA
- SBD CM+4
- SHN -3
- LMM BUF,T2
- .NOSV2 IFGE OSLEV,562D NOS V2
- LPN 37
- .NOSV2 ELSE NOS V1
- LPN 77
- .NOSV2 ENDIF
- NJN TER7 IF CHANNEL NOT ASSIGNED TO PP
- LDD T2
- DCHAN
- TER7 AOD NI CHECK FOR MORE 2550S
- LJM TER5 PROCESS NEXT 2550
- * DISPLAY NUMBER OF KEYS LOST
- TER8 STD CM+1 SET NON-CM CONVERSION
- LDD MA
- CWM SKYB-2,ON
- MONITOR RDCM
- LDD MA
- CRM TERA,ON
- LDM TERA
- ZJN TER9 IF NO KEYS LOST
- LDC TERA
- RJM DFM
- TER9 MONITOR DPPM DROP PP
- LJM PPR IDLE
- TERA DATA C*XXXXXXXXXXK KEYS LOST.*
- ERRNG OVLE-* OVERFLOW OF OVERLAY BUFFER
- QUAL *
- * /--- BLOCK UMT 00 000 82/04/29 13.26
- UMT OVERLAY (UPDATE MAXIMUM TERMINAL NUMBER IN USE.)
- UMT SPACE 5,11
- ** UMT - UPDATE MAXIMUM TERMINAL NUMBER IN USE
- *
- * THE TERMINAL STATUS TABLE IS SEARCHED FOR THE
- * HIGHEST PLATO STATION NUMBER
- *
- * EXIT - (NMT) = UPDATED TO HIGHEST CONNECTION
- ORG //OVL+5
- UMT SUBR
- LDN 0 CLEAR *BFI* LOADED FLAG
- STM BODC
- LDD NI
- SHN 4
- STD T1
- LDM NCB+20,T1
- STD T3 SET TO MAXIMUM POSSIBLE NUMBER
- UMT1 LDM TST-1,T3
- NJN UMT2 IF TERMINAL IN USE
- SOD T3
- LMD CB
- NJN UMT1 IF MORE TERMINALS TO CHECK
- * COUNT NUMBER OF TERMINALS ACTIVE
- UMT2 LDD T3
- SBD CB
- STM NMT,NI SET HIGHEST CONNECTION IN USE
- LDN 0
- STD CM
- LDD CB
- STD T1
- UMT3 LMD T3
- ZJN UMT5 IF ALL TERMINALS CHECKED
- LDM TST,T1
- ZJN UMT4 IF TERMINAL NOT ACTIVE
- AOD CM COUNT TERMINAL
- UMT4 AOD T1 BUMP TO NEXT TERMINAL
- UJN UMT3
- * STORE FOR THIS NPU
- UMT5 BSS 0
- LDD CM NUMBER OF TERMINALS FOR NPU
- STM NUSR,NI
- RJM UCS UPDATE CM STATISTICS
- * COUNT TOTAL CONNECTED TERMINALS
- LDN 0
- STD T1
- STD T2
- UMT6 LDD RA
- SHN 5
- ADD T1
- SHN 1
- ADK TS
- CRD CM
- LDD CM
- RAD T2
- AOD T1
- LMM UMTC
- NJN UMT6 IF MORE 2550S
- * UPDATE *B* DISPLAY MESSAGE
- LDD T2
- RJM C2D CONVERT FOR MESSAGE
- STM UMTA+1
- LDD T2
- SHN -6
- RJM C2D
- STM UMTA
- LDD CP
- ADN MS1W
- CWM UMTA,TR
- LJM UMTX EXIT
- UMTA DATA C*XXXX TERMINALS ACTIVE.*
- ERRNG OVLE-*
- QUAL *
- OVLC EQU OVI LAST OVERLAY TO BE CM RESIDENT
- * /--- BLOCK KEY 00 000 82/03/31 15.48
- KEY OVERLAY (ASCII TO PLATO KEY TRANSLATION TABLE.)
- KEY SPACE 5,11
- ** KEYS - CONVERSION FROM ASCII TO PLATO KEYS
- *
- * ALL CHARACTERS ARRIVE IN REVERSE BIT ORDER
- * THIS TABLE IS ORDERED IN THIS MANNER
- SPACE 5,11
- ** KEY - MACRO TO CREATE KEY CONVERSION TABLE
- *
- *AA KEY PPP
- *
- * AA - HEX ASCII KEY VALUE
- * PPP- PLATO KEY VALUE
- *
- * TABLE ENTRY FORMAT
- *
- * 10/PLATO KEY VALUE, 1/0, 1/EXPECTED PARITY
- NOREF /KEY/KEYS,/KEY/.4
- MACRO KEY,A,P
- .1 MICRO 1,1, A
- .3 MICRO 1,, A
- .5 MICRO 0#".3"+1,1, 0110100110010110100101100110100110010110011
- ,01001011010011001011010010110011010010110100110010110011010011001011010
- ,01011001101001
- .2 MICRO 0#".1"+1,1, 084C2A6E195D3B7F
- .1 MICRO 2,1, A
- .3 MICRO 0#".1"+1,1, 084C2A6E195D3B7F
- .4 SET 0#".3"".2"
- .4 SET .4/2
- ORG KEYS+.4
- LOC .4
- VFD 10/P,1/0,1/".5"
- ENDM
- ORG //KEYA
- KEY SUBR
- UJN KEYX EXIT
- KEYS BSSZ 200
- * /--- BLOCK KEY 00 000 86/05/29 11.07
- 00 KEY 074 SQUARE1
- 01 KEY 032 STOP
- 02 KEY 030 BACK
- 03 KEY 033 COPY
- 04 KEY 021 SUB
- 05 KEY 061 SUB1
- *06 ACK
- 07 KEY 022 ANS
- 08 KEY 023 ERASE
- 09 KEY 065 HELP1
- 0A KEY 014 TAB
- 0B KEY 025 HELP
- 0C KEY 035 LAB
- 0D KEY 026 NEXT
- 0E KEY 070 BACK1
- 0F KEY 075 LAB1
- *10 DLE
- 11 KEY 072 STOP1
- 12 KEY 031 DATA
- 13 KEY 020 SUPER
- 14 KEY 062 TERM
- *15 NAK
- 16 KEY 073 COPY1
- 17 KEY 060 SUPER1
- 18 KEY 067 EDIT1
- 19 KEY 063 ERASE1
- 1A KEY 027 EDIT
- *1B ESC
- 1C KEY 054 CR
- 1D KEY 071 DATA1
- 1E KEY 066 NEXT1
- 1F KEY 140 SPACE1 (BKSP)
- 20 KEY 100 SPACE
- 21 KEY 176 '.
- 22 KEY 177 ',
- 23 KEY 056 '+
- 24 KEY 044 $
- 25 KEY 045 %
- 26 KEY 012 "
- 27 KEY 053 '#
- 28 KEY 051 (
- 29 KEY 173 )
- 2A KEY 050 *
- 2B KEY 016 +
- 2C KEY 137 ,
- 2D KEY 017 -
- 2E KEY 136 .
- 2F KEY 135 /
- 30 KEY 000 0
- 31 KEY 001 1
- 32 KEY 002 2
- 33 KEY 003 3
- 34 KEY 004 4
- 35 KEY 005 5
- 36 KEY 006 6
- 37 KEY 007 7
- 38 KEY 010 8
- 39 KEY 011 9
- 3A KEY 174 ';
- 3B KEY 134 ;
- 3C KEY 040 <
- 3D KEY 133 =
- 3E KEY 041 >
- 3F KEY 175 '/
- * /--- BLOCK KEY 00 000 86/05/29 11.07
- 40 KEY 052 '"
- 41 KEY 141 A (UC)
- 42 KEY 142 B (UC)
- 43 KEY 143 C (UC)
- 44 KEY 144 D (UC)
- 45 KEY 145 E (UC)
- 46 KEY 146 F (UC)
- 47 KEY 147 G (UC)
- 48 KEY 150 H (UC)
- 49 KEY 151 I (UC)
- 4A KEY 152 J (UC)
- 4B KEY 153 K (UC)
- 4C KEY 154 L (UC)
- 4D KEY 155 M (UC)
- 4E KEY 156 N (UC)
- 4F KEY 157 O (UC)
- 50 KEY 160 P (UC)
- 51 KEY 161 Q (UC)
- 52 KEY 162 R (UC)
- 53 KEY 163 S (UC)
- 54 KEY 164 T (UC)
- 55 KEY 165 U (UC)
- 56 KEY 166 V (UC)
- 57 KEY 167 W (UC)
- 58 KEY 170 X (UC)
- 59 KEY 171 Y (UC)
- 5A KEY 172 Z (UC)
- 5B KEY 042 [
- 5C KEY 055 ASSIGN1
- 5D KEY 043 ]
- 5E KEY 015 _
- 5F KEY 046 '6
- 60 KEY 013 #
- 61 KEY 101 A (LC)
- 62 KEY 102 B (LC)
- 63 KEY 103 C (LC)
- 64 KEY 104 D (LC)
- 65 KEY 105 E (LC)
- 66 KEY 106 F (LC)
- 67 KEY 107 G (LC)
- 68 KEY 110 H (LC)
- 69 KEY 111 I (LC)
- 6A KEY 112 J (LC)
- 6B KEY 113 K (LC)
- 6C KEY 114 L (LC)
- 6D KEY 115 M (LC)
- 6E KEY 116 N (LC)
- 6F KEY 117 O (LC)
- 70 KEY 120 P (LC)
- 71 KEY 121 Q (LC)
- 72 KEY 122 R (LC)
- 73 KEY 123 S (LC)
- 74 KEY 124 T (LC)
- 75 KEY 125 U (LC)
- 76 KEY 126 V (LC)
- 77 KEY 127 W (LC)
- 78 KEY 130 X (LC)
- 79 KEY 131 Y (LC)
- 7A KEY 132 Z (LC)
- 7B KEY 024 MICRO
- 7C KEY 047 '7
- 7D KEY 034 SQUARE
- 7E KEY 057 '-
- 7F KEY 064 FONT
- QUAL *
- * /--- BLOCK NKY 00 000 86/05/29 11.05
- NKY OVERLAY (ASCII TO PLATO NEW KEY TRANSLATION TABLE.)
- NKY SPACE 5,11
- ** NKY - CONVERSION FROM ASCII TO PLATO KEYS
- *
- * ALL CHARACTERS ARRIVE IN REVERSE BIT ORDER
- * THIS TABLE IS ORDERED IN THIS MANNER
- ORG //KEYA
- NKY SUBR
- UJN NKYX EXIT
- KEYS BSSZ 200
- * /--- BLOCK NKY 00 000 86/05/29 11.06
- * NUL
- 01 KEY 032 STOP
- 02 KEY 030 BACK
- 03 KEY 033 COPY
- 04 KEY 021 SUB
- 05 KEY 072 STOP1
- *06 ACK
- 07 KEY 022 ANS
- 08 KEY 023 ERASE
- 09 KEY 014 TAB
- 0A KEY 065 HELP1
- 0B KEY 025 HELP
- 0C KEY 035 LAB
- 0D KEY 026 NEXT
- 0E KEY 070 BACK1
- 0F KEY 075 LAB1
- *10 DLE
- * DC1
- 12 KEY 031 DATA
- * DC3
- 14 KEY 062 TERM
- *15 NAK
- 16 KEY 073 COPY1
- 17 KEY 020 SUPER
- 18 KEY 067 EDIT1
- 19 KEY 063 ERASE1
- 1A KEY 027 EDIT
- *1B ESC
- 1C KEY 054 CR
- 1D KEY 071 DATA1
- 1E KEY 066 NEXT1
- 1F KEY 140 SPACE1 (BKSP)
- 20 KEY 100 SPACE
- 21 KEY 176 '.
- 22 KEY 177 ',
- 23 KEY 056 '+
- 24 KEY 044 $
- 25 KEY 045 %
- 26 KEY 012 "
- 27 KEY 047 '7
- 28 KEY 051 (
- 29 KEY 173 )
- 2A KEY 050 *
- 2B KEY 016 +
- 2C KEY 137 ,
- 2D KEY 017 -
- 2E KEY 136 .
- 2F KEY 135 /
- 30 KEY 000 0
- 31 KEY 001 1
- 32 KEY 002 2
- 33 KEY 003 3
- 34 KEY 004 4
- 35 KEY 005 5
- 36 KEY 006 6
- 37 KEY 007 7
- 38 KEY 010 8
- 39 KEY 011 9
- 3A KEY 174 ';
- 3B KEY 134 ;
- 3C KEY 040 <
- 3D KEY 133 =
- 3E KEY 041 >
- 3F KEY 175 '/
- * /--- BLOCK NKY 00 000 86/05/29 11.06
- 40 KEY 052 '"
- 41 KEY 141 A (UC)
- 42 KEY 142 B (UC)
- 43 KEY 143 C (UC)
- 44 KEY 144 D (UC)
- 45 KEY 145 E (UC)
- 46 KEY 146 F (UC)
- 47 KEY 147 G (UC)
- 48 KEY 150 H (UC)
- 49 KEY 151 I (UC)
- 4A KEY 152 J (UC)
- 4B KEY 153 K (UC)
- 4C KEY 154 L (UC)
- 4D KEY 155 M (UC)
- 4E KEY 156 N (UC)
- 4F KEY 157 O (UC)
- 50 KEY 160 P (UC)
- 51 KEY 161 Q (UC)
- 52 KEY 162 R (UC)
- 53 KEY 163 S (UC)
- 54 KEY 164 T (UC)
- 55 KEY 165 U (UC)
- 56 KEY 166 V (UC)
- 57 KEY 167 W (UC)
- 58 KEY 170 X (UC)
- 59 KEY 171 Y (UC)
- 5A KEY 172 Z (UC)
- 5B KEY 042 [
- 5C KEY 055 ASSIGN1
- 5D KEY 043 ]
- 5E KEY 015 _
- 5F KEY 046 '6
- 60 KEY 013 #
- 61 KEY 101 A (LC)
- 62 KEY 102 B (LC)
- 63 KEY 103 C (LC)
- 64 KEY 104 D (LC)
- 65 KEY 105 E (LC)
- 66 KEY 106 F (LC)
- 67 KEY 107 G (LC)
- 68 KEY 110 H (LC)
- 69 KEY 111 I (LC)
- 6A KEY 112 J (LC)
- 6B KEY 113 K (LC)
- 6C KEY 114 L (LC)
- 6D KEY 115 M (LC)
- 6E KEY 116 N (LC)
- 6F KEY 117 O (LC)
- 70 KEY 120 P (LC)
- 71 KEY 121 Q (LC)
- 72 KEY 122 R (LC)
- 73 KEY 123 S (LC)
- 74 KEY 124 T (LC)
- 75 KEY 125 U (LC)
- 76 KEY 126 V (LC)
- 77 KEY 127 W (LC)
- 78 KEY 130 X (LC)
- 79 KEY 131 Y (LC)
- 7A KEY 132 Z (LC)
- 7B KEY 024 MICRO
- 7C KEY 053 ^'I
- 7D KEY 034 SQUARE
- 7E KEY 057 '-
- 7F KEY 064 FONT
- END
plato/source/plaopl/dsn1.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator