plato:source:plaopl:ecstst
Table of Contents
ECSTST
Table Of Contents
- [00003] ECSTST ECS TEST ROUTINE
- [00004] DEFINITIONS
- [00036] INITIALIZATIONS
- [00050] ECSTST
- [00102] GENERATE TEST PATTERN
- [00182] ROUTINES
- [00324] ECS PARITY ERROR PROCESSING
- [00520] STORAGE DEFINITIONS
Source Code
- ECSTST.txt
- ECSTST
- IDENT ECSTST,111B,ECSTST
- TITLE ECSTST ECS TEST ROUTINE
- TITLE DEFINITIONS
- *
- *
- ABS
- SST
- SYSCOM
- *
- *
- *CALL COMCMAC
- *CALL PLASMRC
- *
- ECSDIM EQU 2000B ECS FIELD LENGTH
- BUFDIM EQU 2000B READ/WRITE BUFFER LENGTHS
- *
- TRLIM EQU 200B MAXIMUM TRANSFER LENGTH
- BILIM EQU 200B MAXIMUM BIAS
- *
- *
- PURGMAC CALL
- CALL MACRO NAME,N1,N2,N3,N4,N5,N6
- NN DECMIC 0
- ECHO 5,P1=(N1,N2,N3,N4,N5,N6),P2=(1,2,3,4,5,6)
- IFC EQ,*P1**,1
- STOPDUP
- IFC NE,*P1**,2
- SB_P2 P1
- NN DECMIC P2
- RJ _NAME_
- BSS 0
- ENDM
- *
- *
- TITLE INITIALIZATIONS
- *
- *
- *
- ORG 111B
- ECSTST SX6 LWA+101B SET CM FIELD LENGTH
- AX6 6
- LX6 30+6 POSITION FOR MEMORY REQUEST
- SA6 CMFL
- CALL S=CM,CMFL
- SX6 ECSDIM SET ECS FIELD LENGTH
- SA6 CMFL
- CALL S=ECS,CMFL
- *
- TITLE ECSTST
- *
- *
- *
- MAIN MX6 0 RE-SET PATTERN INDEX
- SA6 IP
- *
- M100 CALL S=WAIT,500 IDLE
- CALL PATTERN GENERATE NEXT TEST PATTERN
- SB6 B0 B6 = BUFFER INDEX
- SB7 1 B7 = TRANSFER LENGTH
- *
- * WRITE, READ, VERIFY PATTERN
- *
- M200 SA0 WBUFF SET CM ADDRESS
- SX0 B6 SET ECS ADDRESS
- + WE B7 WRITE PATTERN TO ECS
- RJ ECSPRTY
- SA0 B6+RBUFF SET CM ADDRESS
- + RE B7 READ PATTERN FROM ECS
- RJ ECSPRTY
- SB1 B7-1 B1 = INDEX WITHIN TRANSFER
- SB2 B6+RBUFF B2 = READ BUFFER ADDRESS
- SB3 1 B3 = 1
- *
- M220 SA1 B1+B2 GET READ BUFFER ENTRY
- SA2 B1+WBUFF GET WRITE BUFFER ENTRY
- IX6 X1-X2
- NZ X6,M500 JUMP IF VERIFY ERROR
- SB1 B1-B3
- PL B1,M220 END TEST
- *
- * INCREMENT TRANSFER LENGTH
- *
- SB7 B7+1 INCREMENT TRANSFER LENGTH
- SB1 B7-TRLIM-1
- NG B1,M200
- SB7 1 RE-SET TRANSFER LENGTH
- *
- * INCREMENT BUFFER INDEX
- *
- SB6 B6+1 INCREMENT BUFFER INDEX
- SB1 B6-BILIM-1
- NG B1,M200
- EQ M100 GENERATE NEXT PATTERN
- *
- *
- * PROCESS VERIFY ERROR
- *
- M500 CALL S=MSG,(=12CVERIFY ERROR)
- EQ MAIN
- *
- TITLE GENERATE TEST PATTERN
- *
- *
- *
- * PATTERN GENERATE TEST PATTERN
- * ON ENTRY - *IP* = INDEX OF PATTERN
- *
- *
- PATTERN EQ *
- SA1 IP GET PATTERN INDEX
- SB1 X1
- SX6 X1+1 ADVANCE INDEX
- SA6 A1
- JP B1+*+1 JUMP TO APPROPRIATE ROUTINE
- *
- + EQ PAT000 0 = ALL ZEROS
- + EQ PAT100 1 = ALL ONES
- + EQ PAT200 2 = ONE BIT SET
- + EQ PAT300 3 = ONE BIT CLEAR
- + EQ PAT400 4 = ALTERNATING ONES/ZEROS
- + EQ PAT500 5 = ADDRESS
- + EQ PAT600 6 = COMPLEMENTED ADDRESS
- + EQ PAT990 RE-SET INDEX
- *
- *
- PAT000 MX6 0 X6 = PATTERN
- EQ PATSHF
- *
- PAT100 MX6 60 X6 = PATTERN
- EQ PATSHF
- *
- PAT200 SX6 1 X6 = PATTERN
- EQ PATSHF
- *
- PAT300 MX6 -1 X6 = PATTERN
- EQ PATSHF
- *
- PAT400 SA1 =52525252525252525252B
- BX6 X1 X6 = PATTERN
- EQ PATSHF
- *
- *
- PAT500 SB1 BUFDIM-1 B1 = INDEX
- PAT510 SX6 B1+1
- BX1 X6 FORM PATTERN = 30/INDX, 30/INDX
- LX1 30
- BX6 X1+X6
- SA6 B1+RBUFF SET NEXT WORD OF READ BUFFER
- SA6 B1+WBUFF SET NEXT WORD OF WRITE BUFFER
- SB1 B1-1
- PL B1,PAT510 END TEST
- EQ PATTERN
- *
- PAT600 SB1 BUFDIM-1 B1 = INDEX
- PAT610 SX6 B1+1
- BX1 X6 FORM PATTERN = 30/INDX, 30/INDX
- LX1 30
- BX6 X1+X6
- BX6 -X6 COMPLEMENT ADDRESSES
- SA6 B1+RBUFF SET NEXT WORD OF READ BUFFER
- SA6 B1+WBUFF SET NEXT WORD OF WRITE BUFFER
- SB1 B1-1
- PL B1,PAT610 END TEST
- EQ PATTERN
- *
- *
- PAT990 SX6 1 RE-SET INDEX
- SA6 IP
- EQ PAT000
- *
- *
- PATSHF SB1 BUFDIM-1 B1 = BUFFER INDEX
- PATS20 SA6 B1+RBUFF SET NEXT WORD OF READ BUFFER
- SA6 B1+WBUFF SET NEXT WORD OF WRITE BUFFER
- LX6 1 SHIFT PATTERN
- SB1 B1-1
- PL B1,PATS20 END TEST
- EQ PATTERN
- *
- *
- TITLE ROUTINES
- *
- *
- *
- * S=MAS
- * CALLS *MAS* PPU TO POST REQUEST TO *MASTOR*
- * ON ENTRY - *MASREQ* = REQUEST
- *
- *
- S=MAS EQ *
- SYSTEM MAS,R,MASREQ
- RECALL MASREQ
- EQ S=MAS
- *
- *
- *
- * S=MZER ZERO *MASTOR* REQUEST AREA
- *
- S=MZER EQ *
- MX6 0 X6 = 0
- SX1 MS.MDIM X1 = INDEX IN REQUEST BUFFER
- *
- S=MZ10 SX1 X1-1 END TEST
- NG X1,S=MZER
- SA6 X1+MASREQ ZERO NEXT WORD OF REQUEST BUFF
- EQ S=MZ10
- *
- *
- *
- * S=WAIT IDLE
- * ON ENTRY - B1 = NUMBER OF RECALL CYCLES TO IDLE
- *
- S=WAIT EQ *
- SX6 B1 SET NUMBER TIMES TO RECALL
- SA6 SWK1
- *
- S=W10 RECALL IDLE
- SA1 SWK1
- SX6 X1-1 END TEST
- ZR X6,S=WAIT
- NG X6,S=WAIT
- SA6 A1 UPDATE COUNTER
- EQ S=W10
- *
- *
- *
- *
- * S=BMSG
- * OUTPUTS B-DISPLAY MESSAGE
- * ON ENTRY - B1 = ADDRESS OF MESSAGE
- *
- *
- S=BMSG EQ *
- MESSAGE B1,1,RECALL
- EQ S=BMSG
- *
- *
- *
- * S=MSG
- * OUTPUTS DAYFILE MESSAGE
- * ON ENTRY - B1 = ADDRESS OF MESSAGE
- *
- *
- S=MSG EQ *
- MESSAGE B1,0,RECALL
- EQ S=MSG
- *
- *
- * S=CM OBTAIN CENTRAL MEMORY
- * ON ENTRY - B1 = ADDRESS OF MEMORY REQUEST WORD
- *
- S=CM EQ *
- MX0 30
- SA1 B1
- BX6 X0*X1 SET UP ARGUMENT
- SA6 SWK1
- MEMORY CM,SWK1,RECALL
- EQ S=CM
- *
- *
- *
- * S=ECS OBTAIN ECS
- * ON ENTRY - B1 = ADDRESS OF AMOUNT OF ECS REQUIRED
- *
- S=ECS EQ *
- CALL S=MZER ZERO *MASTOR* REQUEST AREA
- SX6 MS.ECS SET *MASTOR* REQUEST CODE
- LX6 60-12
- SA6 MASREQ
- SA1 B1 SET AMOUNT OF ECS REQUESTED
- BX6 X1
- SA6 MASREQ+1
- *
- S=EC10 CALL S=MAS ATTEMPT TO OBTAIN ECS
- MX0 -11
- SA1 MASREQ CHECK REPLY CODE
- AX1 12
- BX1 -X0*X1
- ZR X1,S=ECS EXIT IF REQUEST COMPLETED
- CALL S=BMSG,(=25CWAITING FOR ECS)
- CALL S=WAIT,100
- EQ S=EC10
- *
- *
- *
- *
- * S=OTOA CONVERT OCTAL TO DISPLAY CODE
- * ON ENTRY - X1 = OCTAL TO CONVERT
- * ON EXIT - X6,X7 = DISPLAY CODE
- *
- *
- S=OTOA EQ *
- SB1 1 B1 = 1
- CALL WOD
- EQ S=OTOA
- *
- *
- *
- * S=ATOO CONVERT DISPLAY CODE TO OCTAL
- * ON ENTRY - X1 = DISPLAY CODE TO CONVERT
- * ON EXIT - X6 = OCTAL
- * X7 = 0 = CONVERSION SUCCESSFUL
- * -1 = ILLEGAL OCTAL VALUE
- *
- *
- S=ATOO EQ *
- SB1 1 B1 = 1
- SB7 B0 B7 = 0 = OCTAL
- BX5 X1 X5 = DISPLAY CODE
- CALL DXB
- MX7 0 X7 = 0 = OK
- ZR X4,S=ATOO
- MX7 -1 X7 = -1 = ERROR
- EQ S=ATOO
- *
- *
- *
- *CALL COMCSYS
- *CALL COMCWOD
- *CALL COMCDXB
- *
- *
- TITLE ECS PARITY ERROR PROCESSING
- *
- *
- *
- * -ECSPRTY-
- * ECS PARITY ERROR PROCESSING FOR ROUTINES WHICH DO
- * NOT PROVIDE FOR ERROR RECOVERY
- *
- * OUTPUTS ECS ERROR DAYFILE MESSAGES AND TERMINATES
- * JOB
- *
- * USES MACROS - CALL, SYSTEM
- * USES SYMBOLS - MTEXT, ECSRA, ECSRET
- * CALLS - S=OTOA, S=MSG
- *
- * AFTER ERROR PROCESSING CONTROL IS RETURNED TO THE
- * ADDRESS INDICATED BY *ECSRET*
- *
- * IF CELL *ECSRA* IS DEFINED IT IS ASSUMED TO HOLD
- * THE ECS REFERENCE ADDRESS
- * IF CELL *ECSRA* IS NOT DEFINED A CALL TO *MASTOR*
- * IS MADE TO OBTAIN THE ECS RA
- *
- *
- QUAL ECSPRTY
- *
- *
- ECSPRTY EQ *
- SA1 ECSPRTY
- LX1 30
- SX6 X1 SAVE ADDRESS
- SA6 PLOC
- SA1 X1-1 LOAD RE/WE INSTRUCTION
- *
- * GET B-REGISTER NUMBER AND TRANSFER LENGTH
- *
- LX1 12 POSITION B-REGISTER NUMBER
- MX2 -3
- BX2 -X2*X1 MASK OFF B-REGISTER NUMBER
- LX2 45
- SA3 KSB1 SB1 X1+B0 INSTRUCTION
- BX6 X2+X3 ATTACH REGISTER NUMBER
- SA6 ERR10 PLANT INSTRUCTION
- LX1 18 POSITION LENGTH OF RE/WE
- + NO AVOID ERROR MODE 0
- *
- * SEARCH TO FIND EXACT ADDRESS ERROR OCCURRED AT
- *
- ERR10 BSSZ 1 SB1 X1+BN
- BX6 X0
- SA6 TFWA SAVE FWA OF ECS TRANSFER
- SX6 B1
- SA6 TLTH SAVE LENGTH OF TRANSFER
- MX6 -1
- SA6 ERRADD MARK EXACT ADDR NOT KNOWN YET
- SX1 1
- SA0 CONTNT
- *
- ERR20 SB1 B1-1 END TEST
- NG B1,ERR40 EXIT IF CANNOT FIND ERROR
- + RE 1
- EQ ERR30 JUMP IF FOUND THE ERROR
- IX0 X0+X1 ADVANCE ECS ADDRESS
- EQ ERR20
- *
- *
- * TEST FAILING LOCATION WITH ALL ZERO/ONES PATTERNS
- *
- ERR30 BX6 X0 SAVE EXACT ADDRESS OF ERROR
- SA6 ERRADD
- SA0 ZRPAT OVERWRITE WITH ZERO PATTERN
- + WE 1
- + RE 1 RE-READ BAD LOCATION
- + SA0 ONPAT OVERWRITE WITH ONES PATTERN
- + WE 1
- + RE 1 RE-READ BAD LOCATION
- *
- *
- * OBTAIN ECS REFERENCE ADDRESS
- *
- ERR40 BSS 0
- *
- EPIF IF -DEF,ECSRA
- SYSTEM MAS,R,XRAQ
- SA1 XRAQ+2 LOAD ECS REFERENCE ADDRESS
- BX6 X1
- SA6 XXRA
- EPIF ELSE
- SA1 ECSRA LOAD ECS REFERENCE ADDRESS
- BX6 X1
- SA6 XXRA
- EPIF ENDIF
- *
- * FORMAT ECS ERROR DAYFILE MESSAGES
- *
- SA1 TFWA LOAD ECS FWA OF TRANSFER
- SA2 XXRA LOAD ECS REFERENCE ADDRESS
- IX1 X1+X2
- CALL S=OTOA
- MX0 42
- LX7 18 POSTION 7 CHAR DISPLAY CODES
- BX7 X0*X7
- SA7 LINE3+1
- *
- SA1 TLTH LOAD LENGTH OF ECS TRANSFER
- CALL S=OTOA
- MX0 42
- LX7 18 POSTION 7 CHAR DISPLAY CODES
- BX7 X0*X7
- SA7 LINE4+1
- *
- SA1 PLOC LOAD PROGRAM ADDRESS
- CALL S=OTOA
- MX0 42
- LX7 18 POSTION 7 CHAR DISPLAY CODES
- BX7 X0*X7
- SA7 LINE5+1
- *
- SA1 ERRADD LOAD ECS ADDR OF FAILING WORD
- NG X1,ERR50
- SA2 XXRA LOAD ECS REFERENCE ADDRESS
- IX1 X1+X2
- CALL S=OTOA
- MX0 42
- LX7 18 POSTION 7 CHAR DISPLAY CODES
- BX7 X0*X7
- SA7 LINE2+1
- *
- SA1 CONTNT LOAD CONTENTS OF FAILING WORD
- CALL S=OTOA
- SA6 LINE6+1
- SA7 LINE6+2
- *
- SA1 ZRPAT LOAD ZERO TEST PATTERN
- CALL S=OTOA
- SA6 LINE7+1
- SA7 LINE7+2
- *
- SA1 ONPAT LOAD ONES TEST PATTERN
- CALL S=OTOA
- SA6 LINE8+1
- SA7 LINE8+2
- *
- * OUTPUT DAYFILE MESSAGES
- *
- ERR50 CALL S=MSG,LINE0
- CALL S=MSG,LINE1
- CALL S=MSG,LINE2
- CALL S=MSG,LINE3
- CALL S=MSG,LINE4
- CALL S=MSG,LINE5
- CALL S=MSG,LINE6
- CALL S=MSG,LINE7
- CALL S=MSG,LINE8
- CALL S=MSG,LINE0
- *
- MX6 0 RESTORE ZERO PATTERN
- SA6 ZRPAT
- MX6 60 RESTORE ONES PATTERN
- SA6 ONPAT
- SA1 ECSRET
- SB1 X1 GET RETURN ADDRESS
- JP B1
- *
- *
- *
- *
- KSB1 SB1 X1+B0
- *
- LINE0 DIS ,*+++++++++++++++++++++++++++++++++++*
- LINE1 DIS ,*ECS PARITY ERROR*
- LINE2 DIS ,*ECS ADDR UNKNOWN*
- LINE3 DIS ,*FWA TRANS XXXXXXX*
- LINE4 DIS ,*LTH TRANS XXXXXXX*
- LINE5 DIS ,*CALL ADDR XXXXXXX*
- LINE6 DIS ,*CONTENTS UNKNOWN *
- LINE7 DIS ,*ZEROS UNKNOWN *
- LINE8 DIS ,*ONES UNKNOWN *
- *
- TFWA BSSZ 1 FWA OF ECS TRANSFER
- TLTH BSSZ 1 LENGTH OF TRANSFER
- ERRADD BSSZ 1 ECS ADDRESS OF BAD WORD
- CONTNT BSSZ 1 CONTENTS OF BAD WORD
- PLOC BSSZ 1 PROGRAM CALL LOCATION
- ZRPAT BSSZ 1 ZEROS
- ONPAT VFD 60/-0B ONES
- XXRA BSSZ 1 ECS REFERENCE ADDRESS
- *
- XRAQ VFD 12/MS.EFL,48/0
- BSSZ MS.MDIM-1
- *
- *
- QUAL *
- ECSPRTY EQU /ECSPRTY/ECSPRTY
- *
- *
- TITLE STORAGE DEFINITIONS
- *
- *
- *
- CMFL BSS 1 CM FIELD LENGTH
- *
- SWK1 BSS 1
- SWK2 BSS 1
- SWK3 BSS 1
- MASREQ BSSZ MS.MDIM MASTOR REQUEST AREA
- *
- IP DATA 0 PATTERN INDEX
- *
- ECSRET VFD 60/MAIN RETURN ADDRESS FOR ECS ERRORS
- *
- WBUFF BSSZ BUFDIM WRITE BUFFER
- RBUFF BSSZ BUFDIM READ BUFFER
- *
- *
- LWA END
plato/source/plaopl/ecstst.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator