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