plato:source:plaopl:esmcp
Table of Contents
ESMCP
Table Of Contents
- [00009] ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY.
- [00117] MAIN PROGRAM.
- [00253] PKD - PROCESS *K* DISPLAY.
- [00331] FUNCTION PROCESSORS.
- [00345] CON - CONFIGURE ESM.
- [00909] SUBROUTINES.
- [01159] SYN - GENERATE SYNDROME TO BIT CONVERSION
- [01653] FRM - FORM RELOCATION MEMORY
- [01717] MAS - CALL PP PROGRAM *MAS*.
- [01739] ROL - ROLLOUT FOR A WHILE
- [01752] RSP - ASSIGN SIDE-DOOR PORT.
- [01864] UEL - UNPACK ERROR LOG
- [01927] WEM - WRITE ERROR MESSAGE
- [02129] DATA STORAGE.
Source Code
- ESMCP.txt
- ESMCP
- * /--- FILE TYPE = E
- * /--- BLOCK IDENT 00 000 79/10/16 12.59
- IDENT ESM,ESM CONTROL EXTENDED SEMI-CONDUCTOR MEMORY
- ABS
- SST MA,T1
- TITLE ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY.
- ENTRY ESM
- ENTRY RFL=
- SYSCOM B1
- COMMENT CONTROL EXTENDED SEMI-CONDUCTOR MEMORY
- COMMENT COPYRIGHT CONTROL DATA CORP. 1978.
- SPACE 5,11
- *** ESM - CONTROL ESM.
- *
- * ESM CONTROLS ESM - EXTENDED SEMI-CONDUCTOR MEMORY.
- *
- * FUNCTIONS INCLUDE
- *
- * ERROR LOG MONITORING / DISPLAYING.
- * RELOCATION MEMORY MODIFICATION / LOADING.
- SPACE 5
- * SINGLE / DOUBLE BITS ERRORS ARE WRITTEN TO
- * THE NOS ERROR LOG AND THE PLATO DATASET *S0ESMERR*.
- *
- * FORMAT OF PLATO DATASET
- *
- * RECORD 1 / WORD 1 - *S0ESMERR*
- * RECORD 1 / WORD 2 - CURRENT RECORD TO WRITE TO
- * RECORD 1 / WORD 3 - NEXT WORD CURRENT RECORD
- *
- * REST OF DATASET - *PMSGL* WORDS / ERROR MESSAGE
- *
- * 320 WORDS RECORDS REQUIRED
- SPACE 5,11
- * *MACREF* BACKSTITCHED FROM HIGHER LEVEL NOS.
- PURGMAC MACREF
- MACREF MACRO N
- QUAL MACROS
- N SET *
- QUAL *
- ENDM
- *** ESM CONTROL CARD.
- *
- * ESM(F=LFN1,NK)
- *
- * LFN1- FILE WHERE ESM RELOCATION MEMORY STORED.
- * DEFAULT - ESMRM/UI=377777.
- * NK - DO NOT REQUEST *K* DISPLAY.
- * INITIALIZE RELOCATION MEMORY ONLY.
- * CLEAR ERROR LOG.
- * MONITOR ERROR LOG FOR PARITY ERRORS.
- * /--- BLOCK MACROS 00 000 80/09/19 11.02
- SPACE 5,11
- *CALL COMCMAC
- *CALL COMCDCM
- *CALL PLASMRC
- *CALL PLASESM
- **** ASSEMBLY CONSTANTS.
- BUFL EQU 301B BUFFER LENGTH
- ESML EQU 130 LENGTH OF RELOCATION FILE
- ERL EQU 64 LENGTH OF MEMORY ERROR LOG
- BLKLTH EQU 320 PLATO BLOCK LENGTH
- DSBLKS EQU 7 BLOCKS / PART
- RECX EQU 0 ECS BUFFER ADDRESS
- DSET MICRO 1,, S0ESMERR PLATO DATA SET NAME
- MSGL EQU 7 MESSAGE LENGTH IN ERROR LOG
- PMSGL EQU MSGL+2 MESSAGE LENGTH IN DATA SET
- EFL EQU BLKLTH ECS FIELD LENGTH
- ****
- MACROS SPACE 5,11
- *** DSL - DEFINE DATA FOR DISPLAY.
- *
- * DSL X,Y,A
- *
- * X - X LINE NUMBER.
- * Y - Y CHARACTER POSITION.
- * A - DATA TO DISPLAY.
- NOREF B,C,D
- PURGMAC DSL
- DSL MACRO X,Y,A
- B MICRO 1,6,$A$
- C MICRO 7,,$A$
- D SET Y D+1
- VFD 12/6000B+X*8,12/7756B-D*10,36/6H"B"
- DATA H$"C"$
- ENDM
- ** DEFINE SINGLE WORD ESM TRANSFERS
- PURGDEF RXX
- RXX OPDEF I,J
- + VFD 9/014B,3/I,3/J,15/0
- ENDM
- PURGDEF WXX
- WXX OPDEF I,J
- + VFD 9/015B,3/I,3/J,15/0
- ENDM
- * /--- BLOCK MAIN 00 000 79/11/06 19.41
- TITLE MAIN PROGRAM.
- ORG 120B
- ESM SB1 1 (B1) = 1
- SA1 ACTR GET ARGUMENT COUNT
- SA4 ARGR GET FIRST ARGUMENT
- SB5 ARGS (B5) = ARGUMENT TABLE
- SB4 X1
- RJ ARG PROCESS ARGUMENTS
- ZR X1,ESM2 IF NO ERRORS
- ESM1 MESSAGE (=C* ARGUMENT ERRORS.*)
- ABORT
- ESM2 SA1 ARGF CHECK IF *F* PARAMETER USED
- NG X1,ESM4 IF *F* PRESENT
- ESM3 BSS 0
- GETPFP PFA SAVE PACKNAM, USERNUM, USERIND
- SETUI 377777B GET FILE FROM SYSTEM USER INDEX
- GET RF
- ESM4 SA1 KD CHECK IF *K* DISPLAY REQUESTED
- NZ X1,NKO IF *NK* PARAMETER PRESENT
- EQ PKD
- * TERMINATE PROGRAM
- * (B2) = 0 IF NORMAL TERMINATION
- * MESSAGE IF ABNORMAL CONDITION.
- ESM5 NZ B2,ESM7 IF NOT NORMAL TERMINATION
- SA1 KD CHECK IF *NK* OPTION
- NZ X1,MEL IF SO MONITOR ERROR LOG
- SA1 ARGF CHECK IF MUST RESET UI/PACKNAM
- NG X1,ESM6 IF *F* PRESENT
- SA3 PFA READ GET,SET/PFP 1ST PARM WORD
- MX6 -3
- BX6 -X6+X3 OR IN SET OF 3 FLAG BITS
- SA6 A3 RESET 1ST PARAMETER WORD
- SETPFP A3 RESET PACKNAM, USERNUM, USERIND
- ESM6 ENDRUN TERMINATE PROGRAM
- ESM7 MESSAGE B2 ISSUE DAYFILE MESSAGE
- MOVE 2,B2,KERR MOVE MESSAGE
- SA1 KD CHECK IF IN *K* DISPLAY
- BX6 X6-X6
- SA6 A1
- ZR X1,PKD2 IF IN *K* DISPLAY
- MOVE KDL,CKD,LSA CLEAR LEFT SCREEN
- MOVE HLPL,HLPA,RSA
- EQ PKD1 REQUEST *K* DISPLAY
- * /--- BLOCK MEL 00 000 79/10/15 18.21
- MEL TITLE MONITOR ERROR LOG
- *** MEL - MONITOR ERROR LOG.
- MEL RJ RSP
- SX0 ELR READ ERROR LOG
- RJ FNC
- SX0 REL
- RJ FNC
- RJ UEL
- * PROCESS DOUBLE BIT ERRORS
- SB5 15
- SX5 B0 (X5) = COUNT LENGTH OF LOG
- MEL1 SA1 ERB1+B5
- PL X1,MEL2 IF NO DATA IN THIS WORD
- SB2 ERB2 SEARCH FOR DOUBLE BIT ERROR
- SB3 ERL
- SX5 X5+B1 COUNT THIS ENTRY
- RJ STB SEARCH TABLE
- ZR X6,MEL2 IF FOUND
- SA2 FEMC
- RJ FEM FORMAT ERROR MESSAGE
- RJ WEM WRITE ERROR MESSAGE
- MEL2 SB5 B5-B1
- GE B5,MEL1 IF MORE ENTRIES
- * PROCESS SINGLE BIT ERRORS
- SB5 15
- MEL3 SA1 ERB1+16+B5
- MX0 12
- BX2 X0*X1
- ZR X2,MEL4 IF NO DATA IN THIS WORD
- SB2 ERB3 SEARCH FOR SINGLE BIT ERROR
- SB3 ERL
- SX5 X5+100B COUNT THIS ENTRY
- RJ STB
- ZR X6,MEL4 IF FOUND
- SA2 FEMB
- RJ FEM FORMAT ERROR MESSAGE
- RJ WEM WRITE ERROR MESSAGE
- MEL4 SB5 B5-B1
- GE B5,MEL3 IF MORE ENTRIES
- RJ CPF CLOSE PLATO FILE
- * CHECK IF TIME TO CLEAR ERROR LOG
- LX5 12
- SX6 X5
- SX6 X6-160000B
- PL X6,MEL5 IF OVER 14 DOUBLE ERRORS
- AX5 12+6
- SX6 X5-15
- NG X6,MEL6 IF UNDER 15 SINGLE ERRORS
- MEL5 RJ RSP
- SX0 CEL CLEAR ERROR LOG
- RJ FNC
- SX0 REL
- RJ FNC
- * ROLLOUT FOR A WHILE
- MEL6 RJ CPF CLOSE PLATO FILE IS NEEDED
- * IF OPERATOR ROLLIN, PROCESS *K* DISPLAY
- RTIME T1
- ROLLOUT MELA
- SA5 T1
- RTIME T1
- SA1 T1
- AX5 36 (X5) = SECONDS AT ROLLOUT
- AX1 36 (X1) = CURRENT SECONDS
- SA2 MELA (X2) = SECONDS TO ROLL OUT
- IX1 X1-X5 (X1) = SECONDS ACTUALLY ROLLED
- IX1 X2-X1
- SX1 X1-2
- NG X1,MEL IF TIMED ROLLIN
- SA1 =0LERRORS. DISPLAY ERROR LOG
- BX6 X1
- SA6 KB
- EQ PKD PROCESS *K* DISPLAY
- MELA CON 5*60 ROLLOUT FOR 5 MINUTES
- * /--- BLOCK PKD 00 000 79/11/13 13.59
- PKD TITLE PROCESS *K* DISPLAY
- ** PKD - PROCESS *K* DISPLAY.
- PKD MOVE KDL,CKD,LSA CLEAR LEFT SCREEN
- MOVE HLPL,HLPA,RSA
- REWIND RF READ EXISTING RELOCATION FILE
- READ RF
- READW RF,SMB,ESML
- NZ X1,PKD1 IF NOT ENOUGH DATA
- SA1 SMB CHECK HEADER WORD
- SA2 ESMH
- BX1 X1-X2
- NZ X1,PKD1 IF IN ERROR
- RJ FKD FORMAT *K* DISPLAY
- PKD1 CONSOLE KR
- PKD2 SA5 KB CHECK IF ANY DATA TYPED IN
- NZ X5,PKD3 IF DATA
- RECALL
- EQ PKD2
- PKD3 MOVE 5,KB,KDT MOVE INPUT TO DISPLAY
- SA1 =10H
- BX7 X1
- SA7 KERR CLEAR ERROR FLAG
- SA7 A7+B1
- SA5 KB
- SB7 ARGR UNPACK CONTROL CARD
- RJ UPC
- SX7 B6-B1 SAVE PARAMETER COUNT
- SA7 T1
- BX7 X7-X7 CLEAR KEYBOARD BUFFER
- SB2 7
- PKD4 SA7 KB+B2
- SB2 B2-B1
- GE B2,PKD4
- ZR X6,PKD6 IF NO ERROR
- PKD5 SA5 =0HERROR.
- BX6 X5
- SA6 KERR
- EQ PKD2 GET NEXT INPUT
- PKD6 SA1 ARGR GET FUNCTION CODE
- SA2 PKDA
- MX0 42
- PKD7 BX6 X1-X2
- BX6 X0*X6
- ZR X6,PKD8 IF A MATCH
- SA2 A2+B1
- NZ X2,PKD7 IF MORE ARGUMENTS
- EQ PKD5
- PKD8 SB2 X2 GET PROCESSOR ADDDRESS
- JP B2 PROCESS FUNCTION
- * COMMON RETURN POINT FROM PROCESSORS
- PKDX SA5 =0HCOMPLETE.
- BX6 X5
- SA6 KERR SET FUNCTION COMPLETE
- EQ PKD2 WAIT FOR NEXT COMMAND
- PKDA VFD 42/0LCLEAR,18/CLE
- VFD 42/0LCONFIG,18/CON
- VFD 42/0LEND,18/END
- VFD 42/0LERRORS,18/ERD
- VFD 42/0LFLAW,18/FLW
- VFD 42/0LGO,18/GO
- VFD 42/0LHELP,18/HLP
- VFD 42/0LINIT,18/INI
- VFD 42/0LLOAD,18/LOA
- VFD 42/0LMA,18/PMA
- VFD 42/0LPA,18/PPA
- VFD 42/0LRELOC,18/DRM
- VFD 42/0LSAVE,18/SAV
- VFD 42/0LSET,18/SET
- VFD 42/0LSTOP,18/STP
- VFD 42/0LZERO,18/ZER
- CON 0
- * /--- BLOCK CLE 00 000 78/02/13 11.21
- TITLE FUNCTION PROCESSORS.
- CLE SPACE 5,11
- *** CLE - CLEAR ERROR LOG.
- CLE RJ RSP RESERVE SIDE-DOOR PORT
- SX0 CLEA SEND CLEAR FUNCTION
- RJ FNC
- SX0 REL RELEASE SIDE-DOOR PORT
- RJ FNC
- EQ PKDX
- CLEA CON RSEF RESET ERROR LOG
- * /--- BLOCK CONFIG 00 000 79/10/30 11.38
- CONFIG SPACE 5,11
- ** CON - CONFIGURE ESM.
- *
- * THE CHIP TYPE OF EACH BANK AS WELL AS THE
- * NUMBER OF BANKS IS DETERMINED.
- *
- * CONFIG.
- CON SA1 ESMH SET HEADER FOR FILE
- BX6 X1
- SA6 SMB
- RJ RSP ASSIGN SIDE-DOOR PORT
- SX6 B0+ SET UP RELOCATION MEMORY (16M)
- SB2 128
- CON1 SA6 SMB+2+X6
- SX6 X6+B1
- SB2 B2-B1
- GT B2,CON1 STORE REST OF MEMORY
- BX7 X7-X7 CLEAR LAST ENTRY
- SA7 SMB+2+X6
- RJ FRM FORMAT MEMORY
- SX0 RMB LOAD RELOCATION MEMORY
- RJ FNC
- SX6 177B SET MAXIMUM ADDRESS
- LX6 48
- SX0 MA
- SA6 X0+B1
- RJ FNC
- SX0 SXP SET UP EXCHANGE PACKAGE
- RJ FNC
- SX0 REL RELEASE SIDE-DOOR PORT
- RJ FNC
- BX0 X0-X0 SAVE WORD ZERO
- SA0 T1 SAVE ADDRESS ZERO IN (T1)
- + RE 1
- RJ ECSPRTY
- * /--- BLOCK CONFIG 00 000 79/10/29 17.46
- * WRITE ADDRESES TO ESM AND READ BACK
- SX0 B0 (X0) = ESM ADDRESS
- SB2 B0 (B2) = INDEX INTO MEMORY
- SX6 B1 (X6) = DATA TO WRITE
- SA1 CONA (X1) = 512K INCREMENT
- SA0 CONB (A0) = LOCATION TO READ/WRITE FROM/TO
- CON2 BX2 X0 (X2) = BEGINNING ADDRESS
- BX3 X6 (X3) = BEGINNING DATA
- SA6 A0 PREPARE TO WRITE (X6) TO (X0)
- + WE 1
- EQ CON3
- SX7 1000B
- IX0 X0+X7
- IX6 X6+X7
- SA6 A0 PREPARE TO WRITE (X6) TO (X0)
- + WE 1
- EQ CON3
- BX4 X6 (X4) = ENDING DATA WRITTEN
- BX0 X2 RESET X0
- BX6 X3 RESET X6
- * READ DATA WRITTEN TO ESM AND VERIFY
- + RE 1
- EQ CON3
- SA5 A0
- BX7 X5
- BX5 X7-X6 CHECK IF CORRECT DATA
- NZ X5,CON4 IF MISMATCH
- SX7 1000B
- IX0 X0+X7
- IX6 X6+X7
- + RE 1
- EQ CON3
- SA5 A0
- BX7 X5
- BX5 X7-X6 CHECK IF CORRECT DATA
- NZ X5,CON4 IF MISMATCH
- * SKIP TO NEXT BANK
- CON2.1 IX0 X2+X1 INCREMENT ADDRESSES BY 512K
- IX6 X3+X1
- SB2 B2+4 INCREMENT RELOCATION MEMORY
- BX2 X0 CHECK IF DONE
- LX2 59-24
- PL X2,CON2 CONTINUE CHECKING
- * END OF MEMORY REACHED
- SX6 B2-1 SET MAXIMUM ADDRESS
- SX7 B2-1
- LX7 12
- BX6 X6+X7
- SA6 SMB+1
- RJ FKD FORMAT *K* DISPLAY
- RJ LRM LOAD RELOCATION MEMORY
- SA0 T1 RE-WRITE WORD ZERO
- BX0 X0-X0
- WE 1
- + SX0 CXP CLEAR EXCHANGE PACKAGE
- RJ FNC
- EQ PKDX
- * /--- BLOCK CONFIG 00 000 79/10/29 17.24
- * ESM ABORT SIGNAL
- * DELETE THIS 512K BANK
- CON3 SA4 SMB+2+B2+4 MOVE MEMORY UP FOUR WORDS
- CON3.1 BX7 X4
- SA7 A4-4
- ZR X4,CON3.2 IF END OF MEMORY
- SA4 A4+B1
- EQ CON3.1
- CON3.2 SA7 A7+B1 CLEAR NEXT FOUR WORDS
- SA7 A7+B1
- SA7 A7+B1
- SA7 A7+B1
- SB2 B2-4
- EQ CON2.1 CONTINUE UNTIL END OF MEMORY
- * DATA DID NOT MATCH ON READ
- CON4 BX6 X2-X0 CHECK IF AT BEGINNING OF BANK
- NZ X6,CON7 IF NOT AT BEGINNING BANK
- ZR X7,CON3 IF ZERO WORD READ
- BX6 X7-X4 CHECK IF HIGH ADDRESS READ
- NZ X6,CON7 IF NOT HIGH ADDRESS
- * FOUND A 16K BOARD
- * MOVE RELOCATION MEMORY UP TO ACCOUNT FOR IT
- SA4 SMB+2+B2 SET 16K CHIP BIT
- SX7 1S7
- BX7 X7+X4
- SA7 A4
- SA4 A4+4 MOVE RELOCATION MEMORY UP 3
- CON5 BX7 X4
- SA7 A4-3
- ZR X4,CON6 IF END OF MEMORY
- SA4 A4+B1
- EQ CON5
- CON6 SA7 A7+B1 CLEAR NEXT 3 WORDS
- SA7 A7+B1
- SA7 A7+B1
- SB2 B2-3
- EQ CON2.1
- * UNKNOWN ERROR ENCOUNTERED
- CON7 BX6 X6-X6
- SA6 SMB+1
- SA6 A6+B1
- SA0 T1 RE-WRITE WORD ZERO
- BX0 X0-X0
- WE 1
- + SX0 CXP CLEAR EXCHANGE PACKAGE
- RJ FNC
- EQ PKD5 SEND ERROR MESSAGE
- CONA CON 512S10 512K
- CONB DATA 0
- * /--- BLOCK DRM/END 00 000 79/11/12 20.14
- DRM SPACE 5,11
- *** DRM - DISPLAY RELOCATION MEMORY.
- *
- * RELOC.
- DRM RJ FKD FORMAT *K* DISPLAY
- EQ PKDX EXIT
- END SPACE 5,11
- *** END - TERMINATE WITHOUT LOADING RELOCATION
- * MEMORY, BUT SAVE ON FILE
- *
- * END.
- END RJ SRM SAVE RELOCATION MEMORY
- EQ GO1 TERMINATE
- * /--- BLOCK ERD 00 000 79/10/22 20.49
- ERD SPACE 5,11
- *** ERD - DISPLAY ERROR LOG.
- ERD RJ RSP ASSIGN SIDE-DOOR PORT
- SX0 SBR STATUS BIT READ
- RJ FNC
- SX0 ELR ERROR LOG READ FUNCTION
- RJ FNC
- SX0 REL RELEASE SIDE-DOOR PORT
- RJ FNC
- RJ UEL UNPACK ERROR LOG
- MOVE KDL,CKD,LSA CLEAR LEFT SCREEN
- MOVE ERDL,ERDB,LSH MOVE HEADER LINE
- MOVE ERDL,ERDC,LSH+ERDL+16*MSGL
- MOVE HLPL,HLPA,RSA SET HELP TO RIGHT SCREEN
- * PROCESS DOUBLE BIT ERRORS
- SB6 B0
- SB5 15
- ERD1 SA1 ERB1+B5
- PL X1,ERD2 IF NO DATA IN THIS WORD
- SA2 ERDD
- SX6 B6+28 COMPUTE Y = 7756B-10*(I+28)
- SX3 -10
- IX6 X6*X3
- SX6 X6+7756B
- LX6 36
- BX2 X2+X6 SET Y AXIS
- RJ FEM FORMAT ERROR MESSAGE
- SX2 MSGL
- SX3 B6+16
- IX3 X3*X2
- MOVE MSGL,FEMA,LSH+2*ERDL+X3
- SB6 B6+B1
- ERD2 SB5 B5-B1
- GE B5,ERD1 IF MORE ENTRIES
- * PROCESS SINGLE BIT ERRORS
- SB6 B0
- SB5 15
- MX0 12
- ERD3 SA1 ERB1+16+B5
- BX2 X0*X1
- ZR X2,ERD4 IF NO DATA IN THIS WORD
- SA2 ERDA
- SX6 B6+10 COMPUTE Y = 7756B-10*(I+10)
- SX3 -10
- IX6 X6*X3
- SX6 X6+7756B
- LX6 36
- BX2 X2+X6 SET Y AXIS
- RJ FEM FORMAT ERROR MESSAGE
- SX2 MSGL
- SX3 B6
- IX3 X3*X2
- MOVE MSGL,FEMA,LSH+ERDL+X3
- SB6 B6+B1
- MX0 12
- ERD4 SB5 B5-B1
- GE B5,ERD3 IF MORE ENTRIES
- EQ PKDX GET NEXT COMMAND
- ERDA VFD 12/6000B,12/0,12/6000B,12/6000B,12/6000B
- DATA C* 0 00 0 0 00 00 00-00
- ,000*
- ERDB DSL 24,8,(SINGLE BIT ERRORS)
- DSL 0,,( BSU BANK SCAN CS BIT CABINET MODULE
- , CHIP)
- ERDL EQU *-ERDB
- D SET D+16
- ERDC DSL 24,,(DOUBLE BIT ERRORS)
- DSL 0,,( BSU BANK SCAN CS ADDR CABINET MODULE
- , )
- ERDD VFD 12/6000B,12/0,12/6000B,12/6000B,12/6000B
- DATA C* 0 00 0 0 00000 00 00-00
- , *
- * /--- BLOCK FLW 00 000 78/08/30 12.39
- FLW SPACE 5,11
- *** FLW - FLAW / CLEAR FLAW IN ESM.
- *
- * FLAW,BSU,BANK.
- FLW SA1 T1 GET ARGUMENT COUNT
- SA5 ARGR+1
- ZR X1,PKD5 IF NO PARAMETERS
- BX6 X6-X6
- SX1 X1-1
- ZR X1,FLW1 IF NO BSU ASSUME = 0
- SB7 B0
- MX0 42
- BX5 X0*X5
- RJ DXB CONVERT BSU
- NZ X4,PKD5 IF ERROR
- SX1 X6-2
- PL X1,PKD5 IF TOO LARGE
- SA5 A5+B1
- FLW1 SB6 X6
- MX0 42
- BX5 X0*X5
- SB7 B0
- RJ DXB CONVERT BANK
- NZ X4,PKD5 IF ERROR
- SX1 X6-16
- PL X1,PKD5 IF TOO LARGE
- SX7 B6 MERGE BSU AND BANK
- LX7 4
- BX6 X6+X7 (X6) = BSU /BANK TO FLAW
- LX6 2 POSITION TO RELOCATION SLOTS
- SA1 SMB+1 SEARCH FOR THIS BANK
- MX0 -12
- AX1 12
- BX1 -X0*X1
- SB2 X1 (B2) = NUMBER PHYSICAL BANKS
- SX3 1S9 (X3) = FLAW BIT POSITION
- SX0 174B (X0) = MASK FOR BSU/BANK
- FLW2 SA1 A1+B1 GET NEXT RELOCATION ENTRY
- BX2 X0*X1
- BX2 X2-X6
- NZ X2,FLW3 IF THIS ENTRY IS NOT THIS BANK
- BX7 X3-X1 TOGGLE FLAW BIT
- SA7 A1
- FLW3 SB2 B2-B1
- GT B2,FLW2 PROCESS REST OF ENTRIES
- RJ SOR SORT RELOCATION MEMORY
- RJ FKD FORMAT *K* DISPLAY
- EQ PKDX GET NEXT COMMAND
- * /--- BLOCK GO/HLP/IN 00 000 79/10/10 11.17
- GO SPACE 5,11
- *** GO - LOAD AND SAVE RELOCATION MEMORY.
- *
- * GO.
- GO RJ LRM LOAD RELOCATIN MEMORY
- RJ SRM SAVE RELOCATION MEMORY
- GO1 MESSAGE (=C* ESM COMPLETE.*)
- SB2 B0 SET NORMAL TERMINATION
- EQ ESM5
- HLP SPACE 5,11
- *** HLP - DISPLAY HELP MESSAGES TO DESCRIBE COMMANDS
- *
- * HELP.
- HLP MOVE KDL,CKD,RSA CLEAR RIGHT SCREEN
- MOVE HLPL,HLPA,RSA SET UP HELP SCREEN
- SA1 =10HSEE RIGHT
- SA2 =10HSCREEN.
- BX6 X1
- BX7 X2
- SA6 KERR
- SA7 A6+B1
- EQ PKD2
- INI SPACE 5,11
- *** INI - INITIALIZE RELOCATION MEMORY TABLE
- *
- * INIT.
- INI SA1 ESMH
- SB2 128
- BX6 X1
- SX7 B2
- SA6 SMB SET HEADER WORD
- LX7 12 SET NUMBER OF PHYSICAL BANKS
- SA7 A6+B1 SET NUMBER OF BANKS
- BX7 X7-X7
- INI1 SA7 A7+B1 SET NEXT RELOCATION ENTRY
- SB2 B2-B1
- SX7 X7+B1
- GE B2,INI1 IF MORE ENTRIES
- RJ FKD FORMAT K DISPLAY
- EQ PKDX GET NEXT COMMAND
- * /--- BLOCK LOA/NKO 00 000 79/10/10 11.17
- LOA SPACE 5,11
- *** LOA - LOAD RELOCATION MEMORY.
- *
- * LOAD.
- LOA RJ LRM LOAD MEMORY
- EQ PKDX GET NEXT COMMAND
- NKO SPACE 5,11
- *** NKO - NO *K* DISPLAY OPTION.
- *
- * THE RELOCATION MEMORY FILE IS READ
- * AND STORE IN ESM RELOCATION MEMORY.
- NKO NORERUN
- REWIND RF
- READ RF
- READW RF,SMB,ESML READ RELOCATION MEMORY
- NZ X1,NKO1 IF NOT ENOUGH DATA
- SA1 SMB CHECK HEADER WORD
- SA2 ESMH
- BX1 X1-X2
- ZR X1,NKO2 IF HEADER CHECKS
- NKO1 SB2 =C* FILE FORMAT ERROR.*
- EQ ESM5
- NKO2 RJ LRM LOAD RELOCATION MEMORY
- * CLEAR ERROR LOG
- RJ RSP RESERVE SIDE-DOOR PORT
- SX0 CLEA SEND CLEAR FUNCTION
- RJ FNC
- SX0 REL RELEASE SIDE-DOOR PORT
- RJ FNC
- MESSAGE (=C* LOAD COMPLETE.*)
- EQ MEL MONITOR ERROR LOG
- * /--- BLOCK PMA/PPA/SA 00 000 78/02/13 11.22
- PMA SPACE 5,11
- *** PMA - PROCESS MAXIMUM ADDRESS
- *
- * MA,ADDRESS.
- PMA MX0 42
- SA1 ARGR+1
- BX5 X1*X0
- SB7 B0
- RJ DXB CONVERT NUMBER TO BINARY
- NZ X4,PKD5 IF ERROR
- SA2 SMB+1 CHECK IF GREATER THAN BANKS
- MX0 -12
- BX1 X2
- AX1 12
- BX1 -X0*X1
- IX1 X1-X6
- NG X1,PKD5 IF GREATER THAN PHYSICAL BANKS
- BX1 X0*X2
- BX6 X1+X6
- SA6 A2
- RJ FKD FORMAT *K* DISPLAY
- EQ PKDX COMPLETE
- PPA SPACE 5,11
- *** PPA - PROCESS MAXIMUM PHYSICAL ADDRESS.
- *
- * PA,ADDRESS.
- PPA MX0 42
- SA1 ARGR+1
- BX5 X1*X0
- SB7 B0
- RJ DXB CONVERT NUMBER TO BINARY
- NZ X4,PKD5 IF ERROR
- SA1 SMB+1 CHECK IF GREATER THAN 127
- MX0 -7
- BX2 X0*X6
- NZ X2,PKD5 IF TOO LARGE
- MX0 -12
- LX1 -12
- BX1 X0*X1
- BX7 X6+X1 INSERT NEW MAX BANK
- LX7 12
- BX1 -X0*X7 GET MAXIMUM LOGICAL ADDRESS
- IX2 X6-X1
- PL X2,PPA1 IF LOGICAL .LE. PHYSICAL
- BX7 X0*X7 SET LOGICAL = PHYSICAL MAX
- BX7 X7+X6
- PPA1 SA7 A1
- RJ FKD FORMAT *K* DISPLAY
- EQ PKDX COMPLETE
- SAV SPACE 5,11
- *** SAV - SAVE NEW COPY OF RELOCATION MEMORY
- *
- * SAVE.
- SAV RJ SRM SAVE RELOCATION MEMORY
- EQ PKDX EXIT
- * /--- BLOCK SET/STP 00 000 79/11/12 20.19
- SET SPACE 5,11
- *** SET - SET A LOGICAL ADDRESS TO A PHYSICAL ADDRESS
- *
- * SET,LA=LOGICAL ADDRESS,PA=PHYSICAL ADDRESS.
- SET SB5 SETA (B5) = ARGUMENT TABLE
- SA4 ARGR+1 (X4) = ARGUMENTS
- SA1 T1
- BX6 X6-X6
- SB4 X1
- SA6 SETB CLEAR ARGUMENTS
- SA6 A6+B1
- RJ ARG
- NZ X1,PKD5 IF ERROR
- SA5 SETB GET *LA*
- ZR X5,PKD5
- SB7 B0
- RJ DXB CONVERT TO BINARY
- NZ X4,PKD5
- SB6 X6 SAVE VALUE
- SX6 X6-128
- PL X6,PKD5 IF TOO LARGE
- SA5 A5+B1 GET *PA*
- ZR X5,PKD5 IF NONE
- SB7 B0
- RJ DXB CONVERT TO BINARY
- SX1 X6-512
- PL X1,PKD5 IF TOO LARGE
- SA6 SMB+2+B6
- RJ FKD FORMAT*K* DISPLAY
- EQ PKDX
- SETA BSS 0
- VFD 12/0LLA,18/=0,12/4000B,18/SETB
- VFD 12/0LPA,18/=0,12/4000B,18/SETC
- DATA 0
- SETB CON 0 *LA* PARAMETER
- SETC CON 0 *PA* PARAMETER
- STP SPACE 5,11
- *** STP - TERMINATE PROGRAM WITHOUT SAVING CHANGES.
- *
- * STOP.
- STP EQU GO1
- * /--- BLOCK ZER 00 000 79/11/13 14.04
- ZER SPACE 5,11
- *** ZER - ZERO ESM.
- *
- * ZERO.
- *
- * WRITE ZEROS TO ALL OF ESM TO CLEAR PARITY ERRORS.
- ZER SX0 SXP SET UP EXCHANGE PACKAGE
- RJ FNC
- * ZERO 100B WORD CM BUFFER
- SA0 RECD
- SB4 100B-1
- BX6 X6-X6
- ZER1 SA6 A0+B4
- SB4 B4-B1
- GE B4,ZER1 IF MORE WORDS TO ZERO
- * COMPUTE LWA TO ZERO
- SA1 SMB+1
- MX0 -12
- BX1 -X0*X1 (X1) = MAXIMUM LOGICAL ADDRESS
- SA2 ZERA (X2) = 128K
- IX2 X1*X2 (X2) = LWA + 1 TO ZERO
- BX0 X0-X0
- SX1 100B
- * ZERO ALL OF MEMORY
- ZER2 WE 100B
- EQ ZER3
- IX0 X0+X1
- BX6 X0-X2
- NZ X6,ZER2 IF MORE TO ZERO
- SX0 CXP CLEAR EXCHANGE PACKAGE
- RJ FNC
- EQ PKDX EXIT
- * PROCESS WRITE ABORT
- ZER3 BX1 X0
- RJ COD
- SA1 ZERB
- BX6 X1
- BX7 X4
- SA6 KERR
- SA7 A6+B1
- SX0 CXP CLEAR EXCHANGE PACKAGE
- RJ FNC
- EQ PKD2 EXIT
- ZERA CON 128S10 128K
- ZERB DATA 10HABORT AT
- * /--- BLOCK CPF 00 000 79/10/15 19.16
- TITLE SUBROUTINES.
- CPF SPACE 5,11
- *** CPF - CLOSE PLATO FILE
- *
- * IF PLATO FILE IS ATTACHED, CLOSE FILE
- * AND RELEASE ECS.
- CPF SUBR
- SA1 WPFG CHECK IF FILE OPEN
- ZR X1,CPFX IF NOT OPEN
- NG X1,CPF1 IF ONLY ECS GOTTEN
- SB2 WPFE CLOSE FILE
- SA1 WPFH SET PLATO FILE NAME
- BX6 X1
- SA6 B2+B1
- SX0 B0
- RJ MAS
- CPF1 SX6 B0 RELEASE ECS
- SB2 WPFA
- SA6 B2+B1
- RJ MAS
- BX6 X6-X6 SHOW FILE CLOSED
- SA6 WPFG
- EQ CPFX EXIT
- * /--- BLOCK FEM 00 000 79/10/22 20.01
- FEM SPACE 5,11
- *** FEM - FORMAT ERROR MESSAGE
- *
- * FORMAT ERROR MESSAGE FOR THE ERROR LOG
- *
- * ENTRY - (X1) - ERROR
- * (A2) - MESSAGE SKELETON ADDRESS
- *
- * EXIT - (FEMA) - FORMATTED ERROR MESSAGE
- FEM SUBR
- BX0 X1 (X0) = ERROR LOG ENTRY
- BX6 X2 SAVE FIRST WORD OF MESSAGE
- SA6 FEMA SET ERROR TYPE
- SA2 A2+B1
- NG X0,FEM3 IF DOUBLE BIT ERROR
- * /--- BLOCK FEM 00 000 79/10/22 20.02
- * PROCESS SINGLE BIT ERROR
- MX6 -1
- BX1 X0
- AX1 12 GET BSU
- BX1 -X6*X1
- LX1 18
- IX6 X1+X2
- SA6 A6+B1
- BX1 X0
- MX6 -4
- AX1 5 GET BANK
- BX1 -X6*X1
- SX1 X1+100B
- RJ COD
- SA2 A2+B1
- MX7 -12
- LX6 36
- LX7 36
- BX2 X2*X7
- BX6 -X7*X6
- BX6 X6+X2
- MX1 -3 SET SCAN
- BX1 -X1*X0
- IX6 X1+X6
- SA6 A6+B1
- SA2 A2+B1
- BX1 X0 GET CHIP SELECT
- AX1 3
- MX6 -2
- BX1 -X6*X1
- LX1 36
- IX2 X1+X2
- BX1 X0 GET SYNDRONE BITS
- MX6 -8
- AX1 13
- BX6 -X6*X1
- SA3 FEMD+X6 CONVERT SYNDROME TO BIT
- MX6 -12
- BX3 -X6*X3
- BX2 X2*X6
- BX6 X2+X3
- SA6 A6+B1
- SA2 A2+B1
- BX1 X0 GET CABINET
- MX6 -4
- AX1 5
- BX6 -X6*X1
- SA3 FEME+X6
- BX1 X0
- LX1 59-12
- PL X1,FEM1 IF BSU 0
- AX3 12
- FEM1 MX6 -12
- LX6 24
- LX3 24
- BX2 X6*X2
- BX3 -X6*X3
- BX6 X3+X2
- SA6 A6+B1
- SA2 A2+B1
- BX1 X0 GET MODULE (BANK)
- AX1 5
- MX6 -4
- BX6 -X6*X1
- SA3 FEMF+X6
- MX6 -12
- LX3 30
- LX6 30
- BX2 X6*X2
- BX2 X3+X2
- BX1 X0 GET MODULE (SCAN)
- MX6 -3
- BX6 -X6*X1
- SA3 FEMG+X6
- MX6 -12
- LX3 12
- LX6 12
- BX2 X6*X2
- BX6 X2+X3
- SA6 A6+B1
- SA2 A2+B1
- BX1 X0
- AX1 13 GET CHIP (SYNDROME)
- MX6 -8
- BX6 -X6*X1
- SA3 FEMD+X6
- MX6 -18
- AX3 18
- BX1 X0
- LX1 59-4
- PL X1,FEM2 IF CHIP SELECT 0 - 1
- AX3 18
- FEM2 LX6 24
- LX3 24
- BX2 X6*X2
- BX3 -X6*X3
- BX6 X2+X3
- SA6 A6+B1
- EQ FEM5
- * /--- BLOCK FEM 00 000 79/10/22 20.40
- * PROCESS DOUBLE BIT ERROR
- FEM3 MX6 -1 GET BSU
- BX1 X0
- AX1 22
- BX1 -X6*X1
- LX1 18
- IX6 X1+X2
- SA6 A6+B1
- BX1 X0
- MX6 -4 GET BANK
- AX1 18
- BX1 -X6*X1
- SX1 X1+100B
- RJ COD
- SA2 A2+B1
- MX7 -12
- LX6 36
- LX7 36
- BX2 X2*X7
- BX6 -X7*X6
- BX6 X6+X2
- MX1 -3 SET SCAN
- BX1 -X1*X0
- IX6 X1+X6
- SA6 A6+B1
- BX1 X0 GET REST OF ADDRESS
- MX2 -13
- AX1 3
- BX1 -X2*X1
- SX1 X1+100000B
- RJ COD
- SA2 A2+B1
- MX3 30
- BX6 -X3*X6
- BX2 X2*X3
- BX2 X2+X6
- BX1 X0 GET CHIP SELECT
- AX1 16
- MX3 -2
- BX1 -X3*X1
- LX1 36
- IX6 X1+X2
- SA6 A6+B1
- SA2 A2+B1
- BX1 X0 GET CABINET
- MX6 -4
- AX1 18
- BX6 -X6*X1
- SA3 FEME+X6
- BX1 X0
- LX1 59-22
- PL X1,FEM4 IF BSU 0
- AX3 12
- FEM4 MX6 -12
- LX6 24
- LX3 24
- BX2 X6*X2
- BX3 -X6*X3
- BX6 X3+X2
- SA6 A6+B1
- SA2 A2+B1
- BX1 X0 GET MODULE (BANK)
- AX1 5
- MX6 -4
- BX6 -X6*X1
- SA3 FEMF+X6
- MX6 -12
- LX3 30
- LX6 30
- BX2 X6*X2
- BX2 X3+X2
- BX1 X0 GET MODULE (SCAN)
- MX6 -3
- BX6 -X6*X1
- SA3 FEMG+X6
- MX6 -12
- LX3 12
- LX6 12
- BX2 X6*X2
- BX6 X2+X3
- SA6 A6+B1
- * /--- BLOCK FEM 00 000 79/10/31 12.39
- * MOVE REST OF MESSAGE
- FEM5 MX1 -12 MOVE REST OF MESSAGE
- BX6 -X1*X6
- ZR X6,FEMX IF END OF MESSAGE
- SA2 A2+B1
- BX6 X2
- SA6 A6+B1 MOVE NEXT WORD
- EQ FEM5
- DATA 0 DATE
- DATA 0 CLOCK
- FEMA BSSZ MSGL MESSAGE BUFFER
- FEMB DATA C*ESM SNGL ERR,BSU0,BANK00,SCAN0,CS0,BIT00 CAB00,MODULE
- ,00-00,CHIP000.*
- FEMC DATA C*ESM DBLE ERR,BSU0,BANK00,SCAN0,CS0,00000 CAB00,MODULE
- ,00-00. *
- ** SYN - GENERATE SYNDROME TO BIT CONVERSION
- *
- * SYN BIT
- *
- * INDEXED BY SYNDROME BITS
- *
- * 6/0, 18/CHIP1, 18/CHIP2, 18/BIT NUMBER
- *
- * CHIP1 - CHIP LOCATION FOR CHIP SELECT 2 - 3
- * CHIP2 - CHIP LOCATION FOR CHIP SELECT 0 - 1
- NOREF .1,.2,.3,.4,.5
- SYN MACRO B
- .1 IFC NE,$B$$
- .2 SET B/4
- .3 SET B-.2*4
- .4 DECMIC .2,2
- .5 DECMIC B,2
- .6 MICRO .3+1,1, KHFD
- .7 MICRO .3+1,1, JGEC
- VFD 6/0,6/1R".6",12/2R".4",6/1R".7",12/2R".4",18/2R".5"
- .1 ELSE
- VFD 6/0,18/3R ,18/3R ,18/2RMB
- .1 ENDIF
- ENDM
- * /--- BLOCK FEM/SYN 00 000 79/10/19 14.01
- FEMD BSS 0 SYNDROME TO BIT CONVERSION
- LOC 0
- SYN
- SYN 64
- SYN 65
- SYN
- SYN 66
- SYN
- SYN
- SYN 40
- SYN 67
- SYN
- SYN
- SYN 48
- SYN
- SYN 56
- SYN 32
- SYN
- SYN 68
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 69
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 43
- SYN
- SYN
- SYN
- SYN 51
- SYN
- SYN 59
- SYN 35
- SYN
- SYN 70
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 45
- SYN
- SYN
- SYN
- SYN 53
- SYN
- SYN 61
- SYN 37
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 46
- SYN
- SYN
- SYN
- SYN 54
- SYN
- SYN 62
- SYN 38
- SYN
- SYN 24
- SYN
- SYN
- SYN 27
- SYN
- SYN 29
- SYN 30
- SYN
- SYN
- SYN 25
- SYN 26
- SYN
- SYN 28
- SYN
- SYN
- SYN 31
- * /--- BLOCK FEM/SYN 00 000 79/10/19 14.07
- SYN 71
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 41
- SYN
- SYN
- SYN
- SYN 49
- SYN
- SYN 57
- SYN 33
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 42
- SYN
- SYN
- SYN
- SYN 50
- SYN
- SYN 58
- SYN 34
- SYN
- SYN 16
- SYN
- SYN
- SYN 19
- SYN
- SYN 21
- SYN 22
- SYN
- SYN
- SYN 17
- SYN 18
- SYN
- SYN 20
- SYN
- SYN
- SYN 23
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 44
- SYN
- SYN
- SYN
- SYN 52
- SYN
- SYN 60
- SYN 36
- SYN
- SYN 08
- SYN
- SYN
- SYN 11
- SYN
- SYN 13
- SYN 14
- SYN
- SYN
- SYN 09
- SYN 10
- SYN
- SYN 12
- SYN
- SYN
- SYN 15
- SYN 00
- SYN
- SYN
- SYN 03
- SYN
- SYN 05
- SYN 06
- SYN
- SYN
- SYN 01
- SYN 02
- SYN
- SYN 04
- SYN
- SYN
- SYN 07
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN
- SYN 47
- SYN
- SYN
- SYN
- SYN 55
- SYN
- SYN 63
- SYN 39
- SYN
- LOC *O
- * /--- BLOCK FEM/CAB 00 000 79/10/22 20.13
- FEME BSS 0 CABINET CONVERSION TABLE
- LOC 0
- VFD 36/0,12/2RA2,12/2RA6
- VFD 36/0,12/2RA2,12/2RA6
- VFD 36/0,12/2RA2,12/2RA6
- VFD 36/0,12/2RA2,12/2RA6
- VFD 36/0,12/2RA1,12/2RA5
- VFD 36/0,12/2RA1,12/2RA5
- VFD 36/0,12/2RA1,12/2RA5
- VFD 36/0,12/2RA1,12/2RA5
- VFD 36/0,12/2RA1,12/2RA5
- VFD 36/0,12/2RA1,12/2RA5
- VFD 36/0,12/2RA3,12/2RA7
- VFD 36/0,12/2RA3,12/2RA7
- VFD 36/0,12/2RA3,12/2RA7
- VFD 36/0,12/2RA3,12/2RA7
- VFD 36/0,12/2RA3,12/2RA7
- VFD 36/0,12/2RA3,12/2RA7
- LOC *O
- FEMF BSS 0 MODULE (BANK) CONVERSION
- LOC 0
- DATA 2RA1
- DATA 2RA2
- DATA 2RA5
- DATA 2RA6
- DATA 2RA1
- DATA 2RA2
- DATA 2RA3
- DATA 2RA4
- DATA 2RA5
- DATA 2RA6
- DATA 2RA1
- DATA 2RA2
- DATA 2RA3
- DATA 2RA4
- DATA 2RA5
- DATA 2RA6
- LOC *O
- FEMG BSS 0 MODULE (SCAN) CONVERSION
- LOC 0
- DATA 2R04
- DATA 2R12
- DATA 2R05
- DATA 2R13
- DATA 2R06
- DATA 2R14
- DATA 2R07
- DATA 2R15
- LOC *O
- * /--- BLOCK FKD 00 000 78/08/30 08.37
- FKD SPACE 5,11
- *** FKD - FORMAT *K* DISPLAY
- *
- * THE RELOCATION MEMORY IS FORMATTED AS
- * DESCRIBED IN THE RELOCATION MEMORY
- FKD SUBR
- MOVE KDL,CKD,RSA CLEAR RIGHT SCREEN
- MOVE KDL,CKD,LSA CLEAR LEFT SCREEN
- MOVE RSA-RSH,RSH,LSH MOVE HEADER
- SA5 SMB+1
- MX0 -12
- BX1 -X0*X5
- SB6 X1+1 (B6) = MAX LOGICAL ADDRESS + 1
- RJ COD
- SA2 KMA
- MX0 30
- BX2 X0*X2
- LX6 12
- BX6 -X0*X6
- BX6 X6+X2
- SA6 A2 SET IN DISPLAY
- AX5 12
- BX1 -X0*X5
- SB7 X1+1 (B7) = NUMBER OF BANKS
- RJ COD
- LX4 -12
- BX6 X4
- SA6 KPA SET IN DISPLAY
- SB5 B0 (B5) = INDEX INTO QUARDENT
- SA5 SMB+2 (X5) = RELOCATION ENTRY
- * /--- BLOCK FKD 00 000 79/10/31 12.51
- FKD1 MX0 -5
- SX1 B5
- BX2 -X0*X1
- AX1 5
- SA3 FKDA+X1 BASE TO THIS QUADRANT
- SX4 7
- DX4 X4*X2 INDEX INTO QUADRANT
- IX7 X3+X4
- BX6 X6-X6 SET (A6) / TERMINATE DISPLAY
- SA6 X7
- SX1 B5 (X1) = RELOCATION INDEX
- RJ COD
- LX6 36
- SA1 =4R128K SET BANK TYPE
- LX5 59-7
- PL X5,FKD2 IF 4K CHIPS
- SA1 =4R512K
- FKD2 MX0 -24
- BX6 X0*X6
- BX6 X6+X1
- LX6 6
- SA6 A6 SET ENTRY IN DISPLAY
- LX5 1+7-2 SET BANK NUMBER
- MX0 -4
- BX1 -X0*X5
- RJ COD
- LX6 18
- SX1 1R0 SET BSU
- LX5 59-6+2
- PL X5,FKD3
- SX1 1R1
- FKD3 LX1 -6
- MX0 6
- BX6 -X0*X6
- BX6 X1+X6
- LX6 -12
- SA6 A6+B1 SET IN DISPLAY
- MX0 -2
- LX5 6+1
- BX1 -X0*X5 SET CHIP SELECT
- RJ COD
- LX6 -24-12
- LX5 59-9 CHECK IF FLAWED
- SX1 2R
- PL X5,FKD4
- SX1 2RF
- FKD4 GT B6,FKD5 IF ADDRESSABLE
- SX1 X1+1R*-1R
- FKD5 MX0 -12
- BX6 X0*X6
- BX6 X1+X6
- LX6 12
- SA6 A6+B1 STORE IN DISPLAY
- SA5 A5+B1 GET NEXT RELOCATION ENTRY
- SB5 B5+B1
- SB6 B6-B1
- SB7 B7-B1
- GT B7,FKD1 IF MORE RELOCATION ENTRIES
- SB5 B5-64 CHECK IF RIGHT SCREEN IN USE
- GT B5,FKDX IF IN USE
- MOVE HLPL,HLPA,RSA MOVE HELP SCREEN
- EQ FKDX EXIT
- FKDA CON LSA+1 FIRST QUADRANT BASE
- CON LSA+4 SECOND
- CON RSA+1 THIRD QUADRANT BASE
- CON RSA+4 FOURTH QUADRANT BASE
- * /--- BLOCK FNC/FRM/LR 00 000 79/10/01 21.49
- FNC SPACE 5,11
- *** FNC - CALL *ESM* TO FUNCTION SIDE-DOOR PORT.
- *
- * ENTRY (X0) - FUNCTION WORD
- FNC SUBR
- SA1 X0
- MX6 -1
- BX6 X6*X1
- SA6 A1
- SYSTEM ESM,R,X0
- SA1 X0 CHECK FOR ERROR
- MX0 -12
- AX1 12
- BX1 -X0*X1
- ZR X1,FNCX IF COMPLETED OKAY
- SB2 =C*FUNCTION FAILED.*
- EQ ESM5 PROCESS ERROR
- FRM SPACE 5,11
- ** FRM - FORM RELOCATION MEMORY
- *
- * ENTRY -
- * SMB+2 - SMB+129 - COPY OF RELOCATION MEMORY
- * ONE WORD PER WORD. NO PARITY.
- *
- * EXIT -
- * RMB+1 - RMB+32 - RELOCATION MEMORY IN 12 BIT
- * FORMAT WITH PARITY
- FRM SUBR
- SA1 SMB+2 LOAD FIRST WORD OF RELOCATION
- SB3 RMB+1
- SB4 5 (B4) = BYTES LEFT IN WORD
- SB5 B1 (B5) = NUMBER OF WORDS STORED
- MX0 -8
- SX3 B1
- BX6 X6-X6
- FRM1 BX1 -X0*X1 GET RELOCATION DATA
- CX2 X1 COMPUTE ODD PARITY
- BX2 X2*X3
- BX2 X2-X3
- LX2 8
- BX1 X1+X2
- BX6 X1+X6 MERGE INTO WORD
- SB4 B4-B1
- NZ B4,FRM2 IF MORE BYTES IN WORD
- SA6 RMB+B5
- SB5 B5+B1
- SB4 B5-33B CHECK IF MORE WORDS TO STORE
- GE B4,FRMX IF COMPLETED
- SB4 5
- BX6 X6-X6
- FRM2 SA1 A1+B1 GET NEXT WORD
- LX6 12
- EQ FRM1 LOOP
- LRM SPACE 5,11
- *** LRM - LOAD RELOCATION MEMORY
- *
- * THE RELOCATION FILE IS LOADED INTO
- * ESM RELOCATION MEMORY
- LRM SUBR
- SA1 SMB+1 GET MAXIMUM LOGICAL ADDRESS
- LX1 48
- SA6 MA+1
- RJ FRM FORM RELOCATION MEMORY
- RJ RSP ASSIGN SIDE-DOOR PORT
- SX0 RMB LOAD RELOCATION MEMORY
- RJ FNC
- SX0 MA SET MAXIMUM ADDRESS
- SA1 SMB+1
- LX1 48
- MX6 12
- BX6 X6*X1
- SA6 X0+B1
- RJ FNC
- SX0 REL RELEASE SIDE-DOOR PORT
- RJ FNC
- EQ LRMX EXIT
- * /--- BLOCK MAS/ROL/RS 00 000 80/07/01 16.17
- MAS SPACE 5,11
- ** MAS - CALL PP PROGRAM *MAS*.
- *
- * ENTRY - (B2) - ADDRESS OF REQUEST
- * (X0) - NO ABORT OPTION
- * 0 - ABORT
- * 100 - NO ABORT
- *
- * EXIT - (X6) - ERROR CODE
- MAS SUBR
- SA1 B2 CLEAR REQUEST ERRORS
- MX6 12
- BX6 X6*X1
- SA6 A1
- SYSTEM MAS,R,B2,X0
- SA1 B2
- MX6 -11
- AX1 12
- BX6 -X6*X1
- EQ MASX EXIT
- ROL SPACE 5,11
- ** ROL - ROLLOUT FOR A WHILE
- *
- * ENTRY - (X1) = DAYFILE MESSAGE ADDRESS
- ROL SUBR
- MESSAGE X1,1
- ROLLOUT ROLA
- MESSAGE =0,1 CLEAR *B* DISPLAY
- EQ ROLX
- ROLA VFD 36/0,12/0,12/60 ROLLOUT FOR 60 SECONDS
- RSP SPACE 5,11
- ** RSP - ASSIGN SIDE-DOOR PORT.
- RSP SUBR
- SA1 REQ CLEAR OLD ERRORS
- MX6 -11
- LX6 1
- BX6 -X6*X1
- SA6 A1
- SYSTEM ESM,R,A6 ASSIGN SIDE-DOOR PORT
- SA1 REQ
- MX0 -12
- AX1 12
- BX1 -X0*X1
- ZR X1,RSPX IF ASSIGNED
- SB2 =C*SIDE-DOOR PORT BUSY.*
- EQ ESM5
- * /--- BLOCK SOR/SRM 00 000 78/08/22 15.15
- SOR SPACE 5,11
- *** SOR - SORT RELOCATION MEMORY
- *
- * THE RELOCATION MEMORY IS SORTED SO THAT
- * ALL FLAWED BANKS GO TO HIGH END OF RELOCATION
- * IN BSU/BANK ORDER
- SOR SUBR
- SA1 SMB+1 GET PHYSICAL BANKS
- MX0 -12
- AX1 12
- BX1 -X0*X1
- SB2 B0 (B2) = BASE FOR SORT
- SB4 X1 (B4) = NUMBER PHYSICAL BANKS
- SB5 B4-B1
- SX0 177B (X0) = BSU / BANK / CHIP MASK
- SX1 1S9 (X1) = FLAW MASK
- SOR1 BX6 X6-X6 CLEAR SWAP FLAG
- SA2 SMB+2+B2 (X2) = SORT ENTRY
- SOR2 SA3 SMB+3+B2 (X3) = SORT ENTRY + 1
- BX4 X1*X2 SORT ON FLAW BIT
- BX5 X1*X3
- IX4 X5-X4
- NG X4,SOR3 SORT FLAWED ENTRY TO BOTTOM
- NZ X4,SOR4 IF FLAWED ENTRY ON BOTTOM
- BX4 X0*X2 SORT ON BSU / BANK
- BX5 X0*X3
- IX4 X5-X4
- PL X4,SOR4 IF IN CORRECT ORDER
- SOR3 BX6 X2 SWAP ENTRIES
- SA6 A3
- BX7 X3
- SA7 A3-B1
- BX3 X2
- SX6 B1 SET SWAP FLAG
- SOR4 SB2 B2+B1
- BX2 X3 SET TO SORT NEXT ENTRY
- LT B2,B5,SOR2 IF MORE TO SORT
- SB5 B5-B1 SET SIZE OF SORT ONE LESS
- SB2 B0
- LE B5,B1,SORX IF END OF SORT
- NZ X6,SOR1 RE-ENTER LOOP IF A SWAP OCCURED
- EQ SORX
- SRM SPACE 5,11
- *** SRM - SAVE RELOCATION MEMORY
- *
- * THE RELOCATION MEMORY IS WRITTEN AND REPLACED
- * ON THE RELOCATION FILE.
- SRM SUBR
- REWIND RF,R WRITE TO RELOCATION FILE
- WRITEW RF,SMB,ESML
- WRITER RF
- SA1 ARGF CHECK IF *F* OPTION PRESENT
- NG X1,SRMX IF PRESENT EXIT
- REPLACE RF
- EQ SRMX EXIT
- * /--- BLOCK STB/UEL 00 000 79/10/08 20.59
- STB SPACE 5,11
- *** STB - SEARCH / UPDATE TABLE.
- *
- * ENTRY - (B2) - ADDRESS OF TABLE
- * (B3) - LENGTH OF TABLE
- * (X1) - ENTRY TO SEARCH FOR
- *
- * EXIT - (X6) = 0 IF ENTRY FOUND
- STB1 BX7 X1
- SA7 A2 UPDATE ENTRY IN TABLE
- STB SUBR
- SB4 B0
- MX0 -24 (X0) = MASK TO SEARCH ON
- STB2 SA2 B2+B4
- BX6 X1-X2
- BX6 -X0*X6
- ZR X6,STB1 IF ENTRY FOUND
- SB4 B4+B1
- LT B4,B3,STB2 CONTINUE SEARCH
- * INSERT ENTRY INTO THE TABLE
- SA2 B2-B1 LOAD POINTER TO NEXT WORD
- BX6 X1
- SA6 B2+X2 PLACE ENTRY IN TABLE
- SX6 X2+B1
- SB4 X6
- NE B3,B4,STB3 IF NOT AT LIMIT
- SX6 B0
- STB3 SA6 A2 UPDATE POINTER TO NEXT WORD
- SX6 B1 (X6) = ENTRY NOT FOUND
- EQ STBX EXIT
- UEL SPACE 5,11
- ** UEL - UNPACK ERROR LOG
- *
- * UNPACKS THE ERROR LOG FROM ERB0 TO ERB1
- UEL SUBR
- MX0 -12
- SB6 B0
- SB5 B1+B1
- SA1 ERB0
- LX1 36
- UEL0 NZ B5,UEL1 IF MORE BYTES IN THIS WORD
- SA1 A1+B1 GET NEXT WORD
- SB5 5
- UEL1 LX1 12
- BX6 -X0*X1
- LX6 12
- SB5 B5-B1
- NZ B5,UEL2 IF MORE BYTES IN THIS WORD
- SA1 A1+B1
- SB5 5
- UEL2 LX1 12
- BX7 -X0*X1
- BX6 X6+X7 MERGE TWO BYTES
- SA6 ERB1+B6
- SB5 B5-B1
- SB6 B6+B1
- SB7 B6-32
- LT B7,UEL0
- * INSERT SINGLE BIT COUNTERS
- SB6 16
- SA2 ERB1+16
- UEL3 NZ B5,UEL4 IF MORE BYTES
- SA1 A1+B1
- SB5 5
- UEL4 LX1 12
- BX6 -X0*X1
- LX6 48
- BX6 X2+X6
- SA6 A2
- SB5 B5-B1
- SB6 B6-B1
- SA2 A2+B1
- GT B6,UEL3 IF MORE COUNTERS
- * MOVE DOUBLE BIT VALID TO HIGH BIT
- SB6 15
- MX0 1
- LX0 23-59
- UEL5 SA1 ERB1+B6
- BX6 X0*X1 ISOLATE VALID BIT
- BX1 -X0*X1 CLEAR VALID BIT
- LX6 59-23
- BX6 X1+X6
- SA6 A1
- SB6 B6-B1
- GE B6,UEL5 IF MORE WORDS
- EQ UELX
- * /--- BLOCK WEM 00 000 79/10/10 12.28
- WEM SPACE 5,11
- ** WEM - WRITE ERROR MESSAGE
- *
- * WRITE ERROR MESSAGE TO APPROPRIATE LOGS
- *
- * ENTRY - (FEMA) - ERROR MESSAGE
- WEM SUBR
- MESSAGE FEMA PLACE IN DAYFILE
- MESSAGE FEMA,4 PLACE IN ERRLOG
- DATE FEMA-2 SET DATE OF ERROR
- CLOCK FEMA-1 SET TIME OF ERROR
- SB6 FEMA-2 SET ADDRESS OF MESSAGE
- RJ WPF WRITE ERROR TO PLATO FILE
- EQ WEMX
- * /--- BLOCK WPF 00 000 79/11/06 19.32
- WPF SPACE 5,11
- *** WPF - WRITE ERROR TO PLATO FILE
- *
- * ECS TO GOTTEN, THE PLATO FILE OPENED,
- * END THE ERROR WRITTEN TO THE FILE
- *
- * ENTRY - (B6) - ADDRESS OF ERROR MESSAGE
- WPF SUBR
- SA1 WPFG CHECK IF FILE OPEN
- NG X1,WPF3 IF ONLY ECS GOTTEN
- NZ X1,WPF5 IF FILE OPEN
- WPF1 SB2 WPFA REQUEST ECS
- SX6 EFL SET AMOUNT OF ECS NEEDED
- SA6 B2+B1
- SX0 100B (X0) - NO ABORT
- RJ MAS CALL *MAS*
- ZR X6,WPF3 IF ECS GOTTEN
- SX1 X6-77B CHECK FOR MASTOR NOT ACTIVE
- ZR X1,WPFX IF MASTOR NOT AROUND
- SX1 X6-2
- NZ X1,WPFX IF NOT ECS NOT AVIALABLE
- SX1 =C* WAITING FOR ECS.*
- RJ ROL
- EQ WPF1 RE-TRY THE REQUEST
- WPF3 SX6 -1 SHOW ECS GOTTEN
- SA6 WPFG
- SX0 B0
- SB2 WPFB OPEN PLATO FILE
- SA1 WPFH SET PLATO FILE NAME
- BX6 X1
- SA6 B2+B1
- RJ MAS
- ZR X6,WPF5 IF FILE OPENED
- SX6 X6-4
- ZR X6,WPF4 IF FILE BUSY
- SX6 X6-6+4
- NZ X6,WPFX IF NOT FILE TABLE FULL
- WPF4 SX1 =C* WAITING FOR PLATO FILE.*
- RJ ROL
- EQ WPF3 TRY AGAIN
- WPF5 SX6 B1 SHOW FILE OPEN
- SA6 WPFG
- * READ RECORD ONE OF FILE
- SB2 WPFC
- SA1 WPFH SET PLATO FILE NAME
- BX6 X1
- SA6 B2+B1
- SX6 B1
- SA6 B2+2
- RJ MAS
- NZ X6,WPF8 IF ERROR
- SA0 RECD READ RECORD FROM ECS
- SX0 RECX
- RE BLKLTH
- RJ ECSPRTY
- SA1 A0
- SA2 WPFF CHECK HEADER
- BX2 X1-X2
- ZR X2,WPF6 IF HEADER OKAY
- WPF5.1 MESSAGE (=C* PLATO FILE HEADER BAD.*)
- EQ WPFX
- * /--- BLOCK WPF 00 000 79/11/06 19.33
- * READ NEXT RECORD TO STORE MESSAGE
- WPF6 SA1 A1+B1 READ NEXT RECORD TO STORE
- SA3 A1+B1 NEXT WORD IN RECORD
- SX2 X1-2
- NG X2,WPF5.1 IF NEXT RECORD NUMBER TOO SMALL
- SX6 X3-BLKLTH+PMSGL
- NG X6,WPF7 IF NEXT MESSAGE FITS
- SX1 X1+B1 BUMP TO NEXT RECORD
- SX3 B0
- * CHECK IF NEW RECORD IN BOUNDS OF FILE
- SA2 WPFB+1
- MX6 -6
- AX2 24
- BX2 -X6*X2 (X2) = NUMBER OF PARTS IN FILE
- SX6 DSBLKS (X6) = BLOCKS / PART
- IX6 X2*X6
- IX2 X1-X6
- NG X2,WPF7 IF WITHIN RANGE
- SX1 B1+B1 RESET BACK TO FIRST RECORD
- WPF7 SX7 X3+PMSGL BUMP TO NEXT MESSAGE SLOT
- BX6 X1
- SA6 WPFC+2
- SA6 WPFD+2
- SA6 A1 UPDATE POINTER RECORD
- SA7 A3 UPDATE POINTER WORD
- SB2 WPFC
- SA1 WPFH SET PLATO FILE NAME
- BX6 X1
- SA6 B2+B1
- SX0 B0
- RJ MAS
- NZ X6,WPF8 IF ERROR
- SA0 RECB
- SX0 RECX
- RE BLKLTH
- RJ ECSPRTY
- * MOVE ERROR MESSAGE TO RECORD
- MOVE PMSGL,B6,RECB+X3
- WE BLKLTH
- RJ ECSPRTY
- SB2 WPFD WRITE RECORD
- SA1 WPFH SET PLATO FILE NAME
- BX6 X1
- SA6 B2+B1
- SX0 B0
- RJ MAS
- NZ X6,WPF9 IF ERROR
- SA0 RECD RE-WRITE POINTER RECORD
- SX0 RECX
- WE BLKLTH
- RJ ECSPRTY
- SB2 WPFD
- SA1 WPFH SET PLATO FILE NAME
- BX6 X1
- SA6 B2+B1
- SX6 B1
- SX0 B0
- SA6 B2+2
- RJ MAS
- NZ X6,WPF9 IF ERROR
- EQ WPFX EXIT
- WPF8 MESSAGE (=C* PLATO FILE READ ERROR.*)
- EQ WPFX
- WPF9 MESSAGE (=C* PLATO FILE WRITE ERROR.*)
- EQ WPFX
- * /--- BLOCK WPF 00 000 79/10/15 18.35
- WPFA VFD 12/MS.ECS,48/0
- BSSZ MS.MDIM-1
- WPFB VFD 12/MS.OPF,48/0
- VFD 60/0 FILE NAME
- VFD 60/0LWRITE
- BSSZ MS.MDIM-3
- WPFC VFD 12/MS.RPF,48/0
- VFD 60/0 FILE NAME
- VFD 60/0 BLOCK NUMBER
- VFD 60/0 ECS ADDRESS
- BSSZ MS.MDIM-4
- WPFD VFD 12/MS.WPF,48/0
- VFD 60/0 FILE NAME
- VFD 60/0 BLOCK NUMBER
- VFD 60/0 ECS ADDRESS
- BSSZ MS.MDIM-4
- WPFE VFD 12/MS.CPF,48/0
- VFD 60/0 FILE NAME
- BSSZ MS.MDIM-2
- WPFF VFD 60/0LESMERRS RECORD HEADER
- WPFG CON 0 FLAG TO SHOW ECS / FILE OPEN
- WPFH DATA 0L"DSET" PLATO FILE NAME
- * /--- BLOCK COM 00 000 78/08/29 11.26
- SPACE 5,11
- ** COMMON DECKS.
- *CALL COMCARG
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCDXB
- *CALL COMCMVE
- *CALL COMCPFM
- *CALL COMCRDH
- *CALL COMCRDW
- *CALL COMCSFN
- *CALL COMCSYS
- *CALL COMCUPC
- *CALL COMCWTW
- *CALL ECSPRTY
- * /--- BLOCK KDISP 00 000 79/11/12 19.58
- TITLE DATA STORAGE.
- KDISP SPACE 5,11
- *** KDISP - BUFFERS FOR *K* DISPLAY.
- KR VFD 24/KB,18/RS,18/LS
- KB BSSZ 8
- LS VFD 10/0,1/0,1/0,48/0
- DSL 21,5,(ESM CONFIGURATION)
- DSL 4,7,(MAX LOGICAL ADDRESS)
- KMA EQU *-1
- DATA H*MAX PHYSICAL ADDRESS*
- KPA DATA 10H
- LSH DSL 0,9,( RM TYPE BSU BANK CS )
- DATA H*FA RM TYPE BSU BANK CS FA*
- LSA BSS 0
- DUP 35,1
- DATA 70H
- DSL 0,44,( )
- KERR DATA 20H
- DSL 0,45,( )
- KDT DATA 50H
- RS VFD 10/0,1/0,1/0,48/0
- RSH DSL 0,9,( RM TYPE BSU BANK CS )
- DATA H*FA RM TYPE BSU BANK CS FA*
- RSA BSS 0
- DUP 35,1
- DATA 70H
- DATA 0 END DISPLAY
- * BLANK FORMATTED SCREEN
- CKD BSS 0
- D SET 7756B-11*10
- DUP 35,3
- VFD 12/6000B,12/6000B,12/6000B,12/6000B,12/D
- DATA 60H
- D SET D-10
- KDL EQU *-CKD
- * /--- BLOCK KDISP 00 000 79/11/12 20.04
- * HELP SCREEN
- HLPA BSS 0
- DSL 0,11,(THE FOLLOWING COMMANDS ARE AVAILABLE)
- D SET D+1
- DSL 0,,(CLEAR. CLEAR ERROR LOGS.)
- DSL 0,,(CONFIG. DETERMINE ESM CONFIGURATION.)
- DSL 0,,(END. SAVE RELOCATION MEMORY,)
- DSL 0,,( TERMINATE PROGRAM.)
- DSL 0,,( DO NOT LOAD RELOCATION MEMORY.)
- DSL 0,,(ERRORS. DISPLAY ERROR LOGS.)
- DSL 0,,(FLAW,BSU,BANK.)
- DSL 0,,(FLAW,BANK.)
- DSL 0,,( TOGGLE THE FLAW STATUS OF PHYSICAL)
- DSL 0,,( BANK. THIS SORTS THE RELOCATION MEMORY)
- DSL 0,,( IN BANK ORDER AND PLACES FLAWED )
- DSL 0,,( ENTRIES AT THE HIGH END.)
- DSL 0,,(GO. SAVE AND LOAD RELOCATION MEMORY,)
- DSL 0,,( TERMINATE PROGRAM.)
- DSL 0,,(HELP. DISPLAY THIS SCREEN.)
- DSL 0,,(INIT. INITIALIZE RELOCATION MEMORY TO 16M WORDS.)
- DSL 0,,(LOAD. LOAD RELOCATION MEMORY.)
- DSL 0,,(MA,ADDR. SET *ADDR* AS HIGHEST LOGICAL ENTRY
- DSL 0,,( IN USE IN RELOCATION MEMORY.)
- DSL 0,,(PA,ADDR. SET *ADDR* AS HIGHEST PHYSICAL ENTRY)
- DSL 0,,( IN USE IN RELOCATION MEMORY.)
- DSL 0,,(RELOC. DISPLAY RELOCATION MEMORY.)
- DSL 0,,(SAVE. WRITE RELOCATION MEMORY TO FILE.)
- DSL 0,,(STOP. TERMINATE PROGRAM.)
- DSL 0,,(SET,LA=ADDR,PA=ADDR.)
- DSL 0,,( SET RELOCATION ENTRY *LA* TO *PA*.)
- DSL 0,,(ZERO. WRITE ZEROES TO ALL OF ESM.)
- D SET D+1 SKIP A LINE
- DSL 0,,(* - NOT ADDRESSABLE, F - FLAWED.)
- DSL 0,,(IF THE *NK* OPTION IS CHOSEN, THE *GO*
- DSL 0,,(COMMAND IS EXECUTED.)
- HLPL EQU *-HLPA
- ERRPL HLPL-KDL HELP SCREEN TOO LARGE
- * /--- BLOCK DATA 00 000 79/10/30 11.39
- SPACE 5,11
- RF BSS 0
- ESMRM FILEB BUF1,BUFL,EPR
- KD DATA 0 *K* DISPLAY OPTION
- T1 DATA 0 TEMPORARY
- ESMH CON 0LESM+ESML HEADER ON RELOCATION FILE
- PFA VFD 42/0,18/0 FAMILY NAME, 0
- PNA VFD 42/0,18/0 PACK NAME, 0
- UNA VFD 42/0,18/0 USER NUMBER, USER INDEX
- ARGS BSS 0 ARGUMENT TABLE FOR *COMCARG*
- ARGF VFD 12/0LF,18/RF,12/0,18/RF
- VFD 12/0LNK,18/=-1,12/0,18/KD
- CON 0
- SXP VFD 24/0,24/77777700B,12/SXPF
- CXP VFD 24/0,24/0,12/SXPF
- SMB BSSZ 1 RELOCATION MEMORY BUFFER HDR
- PLM BSSZ 1 36/,12/MAX PHYS BANK,12/MAX LOG
- RLM BSSZ ESML RELOCATION MEMORY (CM)
- CEL CON RSEF CLEAR ERROR LOG
- MA CON SMAF LOAD MAXIMUM ADDRESS
- DATA 0
- RMB CON WRMF WRITE RELOCATION MEMORY
- BSSZ 32
- REQ CON RSPF REQUEST SIDE-DOOR PORT
- REL CON REPF RELEASE SIDE-DOOR PORT
- SBR CON RSBF READ STATUS BITS
- DATA 0
- * ERROR LOG BUFFERS
- ELR CON RELF READ ERROR LOG
- ERB0 BSSZ 17 ACTUAL ERROR LOG
- * UNPACKED ERROR LOG
- *
- * FIRST 16 WORDS - DOUBLE BIT ERRORS
- * 1/VALID BIT, 35/0, 24/ADDRESS
- *
- * SECOND 16 WORDS - SINGLE BIT ERRORS
- * 12/COUNTER, 24/0, 24/ADDRESS
- ERB1 BSSZ 32 UNPACKED ERROR LOG
- CON 0 NUMBER OF ENTRIES IN TABLE
- ERB2 BSSZ ERL DOUBLE BIT ERROR LOG
- CON 0 NUMBER OF ENTRIES IN TABLE
- ERB3 BSSZ ERL SINGLE BIT ERROR LOG
- USE //
- BUF1 BSS BUFL
- RECD BSS BLKLTH PLATO RECORD BUFFER
- RECB BSS BLKLTH PLATO RECORD BUFFER
- RFL= EQU *+10B
- USE *
- END ESM
plato/source/plaopl/esmcp.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator