EPE * /--- FILE TYPE = E * /--- BLOCK IDENT 00 000 87/02/24 09.41 IDENT EPE,EPE PROCESS EM PARITY ERRORS PERIPH BASE M SST COMMENT PROCESS EM PARITY ERRORS. COMMENT COPYRIGHT CONTROL DATA CORP. 1980. LIST F TITLE EPE - PROCESS EM PARITY ERRORS. SPACE 5,11 *** EPE - PROCESS EM PARITY ERRORS. * * EPE IS THE PP HELPER TO RECOVER FROM EM * PARITY ERRORS. IT IS CALLED BY THE COMMON * DECK *ECSPRTY* TO RECOVER/RECORD EM * PARITY ERRORS. SPACE 5,11 *** CALL. * * 18/EPE,24/,18/ADDR * * ADDR = ADDRESS OF PARAMTERS * * PARAMETERS - * * WORD DESCRIPTION * * 0 REQUEST/RETURN STATUS * EPE POST RETURN STATUS IN LOW BITS * 1 - RECOVERED FROM ERROR * 3 - NO RECOVERY FROM ERROR * 5 - READ A WORD FROM EM * 7 - WRITE A WORD TO EM * * CPU POSTS EM PARITY ERROR ON 5/7 * REQUESTS IN UPPER BIT * * 1 ADDRESS OF RE/WE INSTRUCTION THAT FAILED * 2 WORD TO READ/WRITE FROM ON 5/7 REQUESTS * 3 - 18 COPY OF EXCHANGE PACKAGE * UPON CALLING *EPE*, THE EXCHANGE PACKAGE * CONTAINS A6/X6/A1/X1 IN FIRST FOUR WORDS. * USING THE ACTUAL EXCHANGE PACKAGE AND * SUBROUTINE TO SAVE *B1*, *EPE* STORES * EXCHANGE PACKAGE HERE. * 19 - 56 SUBROUTINE TO SAVE B1 VIA SERIES OF RJ,S * * ** MACREF - GENERATE MACRO SYMBOLIC REFERENCE LISTING. * * CAUSES THE MACRO NAME TO BE LISTED IN THE SYMBOLIC * REFERENCE TABLE UNDER THE QUALIFIER *MACRO$*. * * MACREF MNAME * MNAME MACRO NAME FOR REFERENCE TABLE. PURGMAC MACREF MACREF MACRO N QUAL MACRO$ N SET * QUAL * ENDM * * * COMMON DECKS *CALL COMPMAC *CALL AIDTEXT BASE D *CALL PLASRWX BASE * .NOSV2 IFLT OSLEV,578D NOS V1 * ECS/ESM MODE WORD / BIT IN *CPUL* .1 SET ESMM/12D ESMW EQU 4-.1 BYTE IN *CPUL* ESMB EQU ESMM-12D*.1 BIT IN THAT BYTE .NOSV2 ENDIF * ASSEMBLY CONSTANTS RL EQU 12 RETRY LIMIT TO CAUSE FAILURE * INSTRUCTIONS USED AS CONSTANTS UJNI EQU 0300 UJN * /--- BLOCK DIRECT 00 000 87/02/24 09.34 * DEFINE DIRECT CELLS RE EQU 20 - 21 EM RAE .NOSV2 IFGE OSLEV,578D NOS V2 ES EQU 22 ECS/ESM MODE (= 0 IF ESM) .NOSV2 ELSE NOS V1 ES EQU 22 ECS/ESM MODE (NONZERO IF ESM) .NOSV2 ENDIF IO EQU 23 INSTRUCTION DEFINITION IS EQU 24 - 25 INSTRUCTION ADDRESS PT EQU 26 - 32 TEST PATTERN WC EQU 33 - 34 WORD COUNT EA EQU 35 - 36 EM FWA OF TRANSFER NW EQU 37 - 40 NUMBER OF WORDS TO TRANSFER CA EQU 41 - 42 CM FWA OF TRANSFER IN EQU 43 - 47 FAILING INSTRUCTION RC EQU 57 RETRY COUNT CN EQU 60 - 64 CM WORD STORAGE EX EQU 65 EXTENDED ADDRESSING MODE (1 = Y) * /--- BLOCK MAIN 00 000 81/07/11 15.15 TITLE MAIN PROCESSING LOOP ORG PPFW EPE RJM PRS * FETCH FAILING INSTRUCTION LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 ADN 1 CRD CM READ ADDRESS OF INSTRUCTION LDD CM+3 STD IS LDD CM+4 STD IS+1 LDD IS SHN 6 ADD RA SHN 6 ADD IS+1 CRD IN READ FAILING INSTRUCTION LDN 0 STD IO SET ILLEGAL INSTRUCTION LDD IN SHN -6 SBN 1 NJN EPE1 IF NOT RJ/RE/WE LDD IN SHN -3 LPN 7 SHN 1 STD T1 LDM EPEA,T1 STD IO SET INSTRUCTION TYPE LDM EPEA+1,T1 STM IDMH+11 SET OP-CODE EPE1 RJM STA SET TRANSFER ADDRESS ZJN EPE2 IF NO ERRORS OCCURRED LDN 3 (A) = UNRECOVERABLE ERROR LJM EPE12 POST REPLY * SEARCH FOR FAILING WORD EPE2 RJM SFW SEARCH FOR FAILING WORD NJN EPE3 IF FAILING ADDRESS FOUND LDC IDMANF ADDR OF NON-FATAL ERR MESSAGE STM IDMADDR STORE IN MESSAGE ADDR CELL LDC 2R,R RESET ERRORLOG MESSAGE STATUS STM IDMJ+5 LDN 0 STD WC STD WC+1 RJM IDM ISSUE DAYFILE MESSAGES LDN 1 (A) = RECOVERED ERROR LJM EPE12 POST REPLY * FAILING WORD LOCATED, TRY TEST PATTERNS EPE3 RJM SCR SET JOB CONTROL REGISTERS LDD MA CWD CN CRM EFW,ON SAVE FAILING WORD * /--- BLOCK MAIN 00 000 87/02/24 09.26 * WRITE ZERO TEST PATTERN LDN ZERL CRD PT LDN RL SET RE-TRY COUNT STD RC EPE4 RJM WTW WRITE TEST PATTERN LDN 1 (A) = COMPARE AGAINST PT RJM RDW READ WORD MJN EPE6 IF ERROR OCCURRED SOD RC NJN EPE4 IF RETRY COUNT NOT EXHAUSTED * WRITE ONES TEST PATTERN LCN 0 STD PT STD PT+1 STD PT+2 STD PT+3 STD PT+4 LDN RL SET RE-TRY COUNT STD RC EPE5 RJM WTW WRITE TEST PATTERN LDN 1 (A) = COMPARE AGAINST PT RJM RDW READ WORD PJN EPE7 IF NO ERROR OCCURRED EPE6 LJM EPE11 PROCESS ERROR EPE7 SOD RC NJN EPE5 IF RETRY COUNT NOT EXHAUSTED * TEST ONE/ZERO PATTERN LDN RL SET RE-TRY COUNT STD RC EPE8 LDD MA CWM EPEB,ON SBN 1 CRD PT RJM WTW WRITE TEST PATTERN LDN 1 (A) = COMPARE AGAINST PT RJM RDW READ WORD MJN EPE6 IF ERROR OCCURRED LDD MA TEST 252525... CWM EPEC,ON SBN 1 CRD PT RJM WTW WRITE TEST PATTERN LDN 1 (A) = COMPARE AGAINST PT RJM RDW READ WORD MJN EPE6 IF ERROR OCCURRED SOD RC NJN EPE8 IF RETRY COUNT NOT EXHAUSTED * TEST ORIGINAL WORD WITH EACH BIT COMPLEMENTED LDN 5-1 SET BYTE COUNT STD RC EPE9 LDD MA FETCH ORIGINAL WORD CWM EFW,ON SBN 1 CRD PT LDM PT,RC COMPLEMENT NEXT BIT LMC 1 EPE10 EQU *-1 STM PT,RC RJM WTW WRITE TO EM LDN 1 (A) = COMPARE AGAINST PT RJM RDW READ WORD MJN EPE11 IF ERROR OCCURRED * /--- BLOCK MAIN 00 000 80/07/28 13.39 LDM EPE10 RAM EPE10 SHN 21-14 PJN EPE9 IF BYTE NOT COMPLETE LDN 1 STM EPE10 RESET BIT SOD RC PJN EPE9 IF MORE BYTES TO CHECK * COULD NOT REPRODUCE ERROR LDN 1 (A) = TEST PATTERNS WORKED RJM IDM ISSUE DAYFILE MESSAGES LDD IO LPN 2 (A) = 2 IF WRITE INSTRUCTION STD T1 LDN 3 (A) = NOT RECOVERED SBD T1 CONVERT TO RECOVERED IF WRITE UJN EPE12 POST REPLY EPE11 LDN 2 (A) = TEST PATTERN FAILED RJM IDM ISSUE DAYFILE MESSAGES LDN 3 (A) = UNRECOVERED ERROR * /--- BLOCK MAIN 00 000 88/10/26 12.58 * SET RETURN CODE / DROP PP EPE12 STD CM+4 SET RETURN CODE LDN 0 STD CM STD CM+1 STD CM+2 STD CM+3 LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 CWD CM * RJM MEL MONITOR ESM ERROR LOG MONITOR DPPM LJM PPR * EM INSTRUCTION TYPES * * BIT DESCRIPTION * * 0 LEGAL OP-CODE * 1 SET IF WRITE TYPE * 2 SET IF SINGLE WORD TYPE EPEA BSS 0 LOC 0 DATA 0,2RRJ RJ DATA 1,2RRE RE DATA 3,2RWE WE DATA 0,2RXJ XJ DATA 5,2RRX RX DATA 7,2RWX WX DATA 0,0 ILLEGAL DATA 0,0 ILLEGAL LOC *O EPEB DATA 5252,5252,5252,5252,5252 EPEC DATA 2525,2525,2525,2525,2525 * /--- BLOCK CONVERT 00 000 80/06/27 13.19 TITLE SUBROUTINES. C18 SPACE 5,11 ** C18 - CONVERT 18 BITS TO DISPLAY CODE * * ENTRY - (T1) = ADDRESS TO STORE RESULT * (T2) = ADDRESS OF VALUE TO CONVERT C18 SUBR LDI T2 LPN 77 RJM C2D STI T1 AOD T1 AOD T2 LDI T2 SHN -6 RJM C2D STI T1 AOD T1 LDI T2 LPN 77 RJM C2D STI T1 UJN C18X C24 SPACE 5,11 ** C24 - CONVERT 24 BITS TO DISPLAY CODE * * ENTRY - (T1) = ADDRESS TO STORE RESULT * (T2) = ADDRESS OF VALUE TO CONVERT C24 SUBR LDN 2 STD T3 C241 LDI T2 SHN -6 RJM C2D STI T1 AOD T1 LDI T2 LPN 77 RJM C2D STI T1 AOD T1 AOD T2 SOD T3 NJN C241 IF MORE BYTES TO CONVERT UJN C24X C60 SPACE 5,11 ** C60 - CONVERT 60 BITS TO DISPLAY CODE * * ENTRY - (T1) = ADDRESS TO STORE RESULT * (T2) = ADDRESS OF VALUE TO CONVERT C60 SUBR LDN 5 STD T3 C601 LDI T2 SHN -6 RJM C2D STI T1 AOD T1 LDI T2 LPN 77 RJM C2D STI T1 AOD T1 AOD T2 SOD T3 NJN C601 IF MORE BYTES TO CONVERT UJN C60X * /--- BLOCK IDM 00 000 87/02/24 09.27 IDM SPACE 5,11 ** IDM - ISSUE DAYFILE MESSAGES * * ENTRY - (A) = 0 - ADDRESS NOT KNOWN * 1 - TEST PATERN DID NOT FAIL * 2 - TEST PATTERN FAILED IDM SUBR STD T5 SAVE FLAGS LDN DTEL (A) = ADDR OF DATE ( YY/MM/DD.) CRM IDMI+5,ON READ DATE TO PP MEMORY LDC IDMI *+++++...* RJM DFM LDM IDMADDR ADDR OF *EM PARITY ERR* MESS RJM DFM * SET LINK INFORMATION FOR ERRLOG MESSAGE LDN PPCP COMPUTE PP NUMBER CRD CM LDD IA SBD CM+4 SHN -3 RJM C2D STM IDMJ+2 STM IDMK+2 STM IDML+2 LDD T5 NJN IDM1 IF ADDRESS KNOWN LJM IDM3 * DISPLAY FAILING ADDRESS IDM1 LDD RE+1 DISPLAY ECS ADDRESS ADD EA+1 ADD WC+1 STD T7 SHN -14 ADD RE ADD EA ADD WC STD T6 LDC IDMB+5 STD T1 LDN T6 STD T2 RJM C24 LDC IDMB *EM ADDR XXXXXXXX* RJM DFM LDC IDMJ+6 FORMAT EM ADDRESS FOR ERRORLOG STD T1 LDN T6 STD T2 LDD T6 LPC 7000 CHECK FOR ESM .GT. 2000K ZJN IDM1.1 IF .LT. 2000K RJM C24 UJN IDM1.2 IDM1.1 SHN -11 RAM IDMJ+6 AOD T1 ADVANCE POINTER RJM C18 IDM1.2 LDC IDMC+5 DISPLAY CONTENTS OF WORD STD T1 LDC EFW STD T2 RJM C60 LDC IDMC *CONTENTS XXXXX...* RJM DFM LDD T5 SBN 1 NJN IDM2 IF TEST PATTERN DID FAIL LJM IDM4 IDM2 LDC IDMD+5 DISPLAY TEST DATA STD T1 LDN PT STD T2 RJM C60 LDC IDMD *TEST DATA XXXX...* RJM DFM LDC IDME+5 DISPLAY READ TEST DATA STD T1 LDN CN STD T2 RJM C60 LDC IDME * READ AS XXXX...* RJM DFM LDC IDMK+7 FORMAT FOR ERRORLOG * /--- BLOCK IDM 00 000 80/09/02 22.58 STD T1 LDN CN STD T2 RJM C60 LDC IDML+7 STD T1 LDN PT STD T2 RJM C60 * /--- BLOCK IDM 00 000 80/08/27 15.20 * FORMAT FWA FOR ERRLOG IF NO FAILING ADDRESS IDM3 LDD RE+1 ADD EA+1 STD T7 SHN -14 ADD RE ADD EA STD T6 LDN T6 STD T2 LDC IDMJ+6 FORMAT EM ADDRESS FOR ERRORLOG STD T1 LDD T6 LPC 7000 CHECK FOR EM .GT. 2000K ZJN IDM3.1 IF .LT. 2000K RJM C24 UJN IDM4 IDM3.1 SHN -11 RAM IDMJ+6 AOD T1 RJM C18 IDM4 LDC IDMF+5 DISPLAY FWA OF TRANSFER STD T1 LDD RE+1 ADD EA+1 STD T7 SHN -14 ADD RE ADD EA STD T6 LDN T6 STD T2 RJM C24 LDC IDMF *FWA TRANS XXXXXXXX* RJM DFM LDC IDMG+5 DISPLAY LENGTH OF TRANSFER STD T1 LDN NW STD T2 RJM C24 LDC IDMG *LTH TRANS XXXXXXXX* RJM DFM LDC IDMJ+17 FORMAT WORD CNT FOR ERRORLOG STD T1 LDN NW STD T2 RJM C18 LDC IDMH+5 DISPLAY CALL ADDRESS STD T1 LDN IS STD T2 RJM C18 LDC IDMH *CALL ADDR XXXXXX* RJM DFM LDC IDMI1 *++++...* RJM DFM LDC IDMJ+13 FORMAT CM ADDRESS FOR ERRORLOG STD T1 LDN CA STD T2 RJM C18 LDD IO SET READ/WRITE FLAG SHN -1 LPN 1 STD T1 LDM IDMM,T1 STM IDMJ+3 LDC ERLN+IDMJ RJM DFM LDD T5 SBN 2 NJN IDM5 IF NO FAILING DATA LDC ERLN+IDMK RJM DFM LDC ERLN+IDML RJM DFM IDM5 LJM IDMX EXIT * /--- BLOCK MESSAGES 00 000 87/02/24 09.27 * THESE MESSAGES ARE READ FROM THE ERRORLOG BY A * FTN PROGRAM, *NORM*, FROM THE CE TOOLS PACKAGE * AND REFORMATTED FOR USE BY *HPA*. IDMADDR VFD 12/IDMAF DEFAULT TO FATAL ERR MESSAGE IDMAF DATA 2RUN IDMANF DATA 10HRECOVERED DATA C*EM PARITY ERROR* IDMB DATA C*EM ADDR XXXXXXXX* IDMC DATA C*CONTENTS UNKNOWN * IDMD DATA C*TEST DATA XXXXXXXXXXXXXXXXXXXX* IDME DATA C* READ AS XXXXXXXXXXXXXXXXXXXX* IDMF DATA C*FWA TRANS XXXXXXXX* IDMG DATA C*LTH TRANS XXXXXXXX* IDMH DATA C*CALL ADDR XXXXXX XX* IDMI DATA C*++++++++++ YY/MM/DD.++++++++++* IDMI1 DATA C*++++++++++++++++++++++++++++++* IDMJ DATA C*EC00XX,R01,U,AAAAAAA,CAAAAAA,WXXXXXX.* IDMK DATA C*EC00XX,R01,U,BXXXXXXXXXXXXXXXXXXXX.* IDML DATA C*EC00XX,R01,U,GXXXXXXXXXXXXXXXXXXXX.* IDMM DATA 2R,R DATA 2R,W * /--- BLOCK MEL 00 000 80/07/02 08.30 MEL SPACE 5,11 ** MEL - MONITOR ESM ERROR LOG * * IF RUNNING IN ESM MODE, POST EVENT TO CAUSE * ESM ERROR LOG MONITOR TO EXECUTE. MEL SUBR * SEARCH EST FOR *SP* ENTRY LDC 2RSP RJM EQN SEARCH EST PJN MEL1 IF *SP* ENTRY FOUND LDC 2RDE LOOK FOR MC DEFINITION ON DE RJM EQN MJN MELX DE NOT FOUND (ARGH) STD T1 SAVE EST ORDINAL .NOS252 IFGE "MODLEVEL",678D SFA EST (A) = ADDR OF EST ENTRY ADK EQAE CRD CM .NOS252 ENDIF LDD CM+2 LPN 77 ZJN MELX NO *MC* DEFINED LDD T1 MEL1 STD CM+3 (CM+3) = EST ORDINAL MONITOR EATM UJN MELX EXIT *CALL PLAPEQN * /--- BLOCK RDW 00 000 87/02/24 09.28 RDW SPACE 5,11 ** RDW - READ WORD FROM EM * * ENTRY - (A) = 1 IF COMPARE WORD TO *PT* * (WC) = WORD TO READ * * EXIT - (A) = <0 IF ERRORS RDW SUBR STD T7 SAVE COMPARE FLAG LDN ZERL CRD CM LDD WC+1 ADD EA+1 STD CM+1 SHN -14 ADD WC ADD EA STD CM LDN 5 RJM REQ REQUEST CPU ACTION MJN RDWX IF ERROR LDD T7 ZJN RDWX IF NO COMPARE LDD CN LMD PT NJN RDW1 IF MIS-MATCH LDD CN+1 LMD PT+1 NJN RDW1 IF MIS-MATCH LDD CN+2 LMD PT+2 NJN RDW1 IF MIS-MATCH LDD CN+3 LMD PT+3 NJN RDW1 IF MIS-MATCH LDD CN+4 LMD PT+4 NJN RDW1 IF MIS-MATCH LJM RDWX EXIT RDW1 LCN 0 (A) = ERROR OCCURRED LJM RDWX * /--- BLOCK REQ 00 000 80/06/27 11.30 REQ SPACE 5,11 ** REQ - REQUEST CPU ACTION * * ENTRY - (A) = REQUEST CODE * * EXIT - (A) = ERROR RESPONSE REQ SUBR STD CM+4 LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 ADN 2 CWD PT WRITE PATTERN TO WRITE SBN 2 CWD CM MONITOR RCLM RE-START CPU PROGRAM * WAIT FOR CPU TO PROCESS REQUEST REQ1 DELAY PAUSE LDD CM+1 NJN REQ2 IF ERROR FLAG SET * READ REQUEST WORD LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 CRD CM ADN 2 CRD CN READ WORD READ LDD CM+4 SHN 21-0 MJN REQ1 IF REQUEST NOT COMPLETE LDD CM SHN 21-13 POSITION ERROR CODE LJM REQX EXIT * PROCESS ERROR FLAG REQ2 MONITOR DPPM LJM PPR * /--- BLOCK SCR 00 000 87/02/24 09.28 SCR SPACE 5,11 ** SCR - SET JOB CONTROL REGISTERS * * SETS JOB CONTROL REGISTERS FOR EM TESTER * * EXIT - (R1) = *ECS* * (R2) = 0 (IF FAILING BIT FOUND) * 200000 + LOW 16 BITS OF ADDRESS SCR SUBR LDD CP ADC JCRW CRD CM LDN 0 CLEAR *R2* STD CM+2 LDN 1RE SET *R1* = *ECS* STD CM+3 LDC 2RCS STD CM+4 LDD T5 SBN 2 ZJN SCR1 IF FAILING BIT FOUND LDD RE ADD EA ADD WC LPN 37 SHN 14 ADD RE+1 ADD EA+1 ADD WC+1 LPC 177777 ADC 200000 SHN 14 STD CM+2 SHN -14 SHN 6 RAD CM+3 * RE-WRITE JOB CONTROL REGISTERS SCR1 LDD CP ADC JCRW CWD CM LJM SCRX EXIT * /--- BLOCK SFW 00 000 80/06/27 09.35 SFW SPACE 5,11 ** SFW - SEARCH FOR FAILING WORD * * EXIT - (A) = 0 IF NO ERRORS * (WC) = WORD IN ERROR SFW SUBR LDN 0 STD WC STD WC+1 SFW1 LDD WC LMD NW NJN SFW2 IF NOT AT LIMIT LDD WC+1 LMD NW+1 ZJN SFWX IF SEARCH COMPLETE SFW2 LDN 0 (A) = NO COMPARE RJM RDW READ A WORD MJN SFWX IF ERROR OCCURRED AOD WC+1 SHN -14 RAD WC UJN SFW1 READ NEXT WORD * /--- BLOCK STA 00 000 87/02/24 09.29 STA SPACE 5,11 ** STA - SET TRANSFER ADDRESS * * ENTRY - (IO) = INSTRUCTION DEFINITION BITS * * EXIT - (CA) = CM FWA OF TRANSFER * (EA) = EM FWA OF TRANSFER * (NW) = NUMBER OF WORDS IN TRANSFER * (A) = 0 IF NO ERRORS STA7 LDC STAB STD T1 LDN IS STD T2 RJM C18 LDC STAA * ILLEGAL EM INSTRUCTION...* RJM DFM STA8 LDC STAD STD T1 LDN IN STD T2 RJM C60 CONVERT 60 BITS LDC STAC * INSTRUCTION - XXX...* RJM DFM LDN 1 (A) = ERRORS STA SUBR LDD IO ZJN STA7 IF ILLEGAL INSTRUCTION SHN 21-2 MJN STA1 IF SINGLE WORD TYPE LJM STA2 * PROCESS SINGLE WORD TRANSFERS STA1 LDN 1 SET TRANSFER LENGTH STD NW+1 LDN 0 STD NW LDD IN+1 SHN -11 STD T1 SET X(J) LDD IN LPN 7 STD T2 SET X(I) LDD IR+3 SHN 14 ADD IR+4 ADN 3+10 ADD T2 (A) = CM ADDRESS STD CA+1 SHN -14 STD CA LDD IR+3 READ *X(J)* SHN 6 ADD RA SHN 6 ADD IR+4 ADN 3+10 ADD T1 CRD CM LDD CM+3 SET EM ADDRESS STD EA LDD CM+4 STD EA+1 LJM STA3 * /--- BLOCK STA 00 000 87/02/24 09.29 * PROCESS RE/WE INSTRUCTIONS STA2 LDD IN LPN 7 (A) = B REGISTER STD T1 LDD IR+3 READ *B* REGISTER SHN 6 ADD RA SHN 6 ADD IR+4 ADN 3 CRD PT READ *A0* ADN 10 CRD CM READ *X0* SBN 10 ADD T1 CRD CN READ *B(I)* LDD CN+4 SET (B(I)) STM .STA+1 LDD CN+3 LPN 77 RAM .STA LDD PT+3 SET CM FWA SCN 77 SHN 6 ADD PT+2 SHN 6 STD CA+1 SHN -14 STD CA LDD CM+3 SET EM FWA STD EA LDD CM+4 STD EA+1 LDD IN+2 COMPUTE TRANSFER LENGTH SCN 77 SHN 6 ADD IN+1 SHN 6 .STA ADC 0 INCLUDE *B(I)* STD NW+1 SHN -14 STD NW * VERIFY NOT A FLAG REGISTER INSTRUCTION STA3 LDD ES .NOSV2 IFGE OSLEV,578D NOS V2 ZJN STA4 IF ESM MODE .NOSV2 ELSE NOS V1 NJN STA4 IF ESM MODE .NOSV2 ENDIF LDD CM+3 SHN 21-13 UJN STA5 STA4 LDD CM+2 SHN 21-5 STA5 MJN STA6 IF FLAG BIT ON LDN 0 (A) = NO ERRORS LJM STAX EXIT * PROCESS ILLEGAL INSTRUCTION STA6 LDC STAF STD T1 LDN IS STD T2 RJM C18 CONVERT CM ADDR TO DISPLAY LDC STAH STD T1 LDN CM STD T2 RJM C60 CONVERT X0 TO DISPLAY LDC STAE * INVALID FLAG FUNCTION...* RJM DFM LDC STAG * X0 - XXX...* RJM DFM LJM STA8 EXIT AFTER DISPLAYING INSTR. STAA DATA H* ILLEGAL EM INSTRUCTION AT * STAB DATA C*XXXXXX* STAC DATA H* INSTRUCTION - * STAD DATA C*XXXXXXXXXXXXXXXXXXXX* STAE DATA H* INVALID FLAG FUNCTION AT * STAF DATA C*XXXXXX* STAG DATA H* REGISTER X0 - * STAH DATA C*XXXXXXXXXXXXXXXXXXXX* * /--- BLOCK WTW 00 000 87/02/24 09.29 WTW SPACE 5,11 ** WTW - WRITE WORD TO EM * * ENTRY - (WC) = WORD TO WRITE * * EXIT - (A) = <0 IF ERRORS WTW SUBR LDN ZERL CRD CM LDD WC+1 ADD EA+1 STD CM+1 SHN -14 ADD WC ADD EA STD CM LDN 7 RJM REQ REQUEST CPU ACTION UJN WTWX EXIT * /--- BLOCK COMMON 00 000 80/06/30 15.48 * COMMON DECKS *CALL COMPC2D * /--- BLOCK PRS 00 000 87/02/24 11.06 TITLE PRESET. ** PRS - PRESET PROGRAM PRS SUBR RJM CUA CHECK USER ACCESS ZJN PRS2 IF ACCESS ALLOWED LDC PRSA * ILLEGAL USER ACCESS.* PRS1 RJM DFM MONITOR ABTM LJM PPR PRS2 RJM CRS CHECK RECALL STATUS NJN PRS3 IF CALLED WITH AUTO-RECALL LDC PRSB * AUTO-RECALL ERROR.* UJN PRS1 * VALIDATE PARAMETER ADDRESS PRS3 LDD IR+3 SHN 14 LMD IR+4 ADN 3+20+2*18D+1 SHN -6 SBD FL MJN PRS4 IF PARAMETERS IN RANGE LDC PRSC * ADDRESS OUT OF RANGE* UJN PRS1 * SET ECS/ESM MODE FLAG .NOS252 IFGE OSLEV,678D PRS4 LDK EXML CHECK ECS/ESM MODE CRD CM LDD CM+3 SHN -12 LPN 1 LMN 1 COMPLEMENT .NOS252 ELSE .NOSV2 IFGE OSLEV,578D NOS V2 PRS4 LDN MEFL CHECK ECS/ESM MODE CRD CM LDD CM+2 LPN 7 (A) = 15/0, 3/EM TYPE SBN 5 EM TYPE = 5 IF ESM .NOSV2 ELSE NOS V1 PRS4 LDN CPUL FETCH ECS/ESM MODE CRD CM LDD CM+ESMW SHN -ESMB LPN 1 .NOSV2 ENDIF .NOS252 ENDIF STD ES SET ESM MODE .NOS252 IFGE OSLEV,678D * SET STANDARD/EXTENDED ADRESSING MODE FLAG LDK MEFL CRD CM LDD CM+2 SHN -7 EXTENDED ADDRESSING BIT LPN 1 STD EX .NOS252 ENDIF * /--- BLOCK PRS 00 000 87/02/24 11.11 * FETCH EM RA LDD CP ADN 4 CRD CM .NOS252 IFGE OSLEV,678D LDD EX NJN PRS5 IF EXTENDED ADDRESSING MODE .NOS252 ELSE LDD ES .NOSV2 IFGE OSLEV,578D NOS V2 ZJN PRS5 IF ESM MODE .NOSV2 ELSE NOS V1 NJN PRS5 IF ESM MODE .NOSV2 ENDIF .NOS252 ENDIF LDD CM LPC 777 STD RE LDD CM+1 STD RE+1 UJN PRS6 PRS5 LDD CM LPN 77 SHN 14 LMD CM+1 SHN 14 STD RE SHN -14 SCN 77 STD RE+1 PRS6 RJM BXP BUILD EXCHANGE PACKAGE LJM PRSX EXIT PRSA DATA C* ILLEGAL USER ACCESS.* PRSB DATA C* AUTO-RECALL ERROR.* PRSC DATA C* ADDRESS OUT OF RANGE.* * /--- BLOCK BXP 00 000 80/06/27 13.56 BXP SPACE 5,11 ** BXP - BUILD EXCHANGE PACKAGE * * WHEN CALLING *EPE*, THE CALLER HAS SAVED * X6/A6/X1/A6 IN FIRST FOUR WORDS OF EXCHANGE * PACKAGE AREA. IMMEDIATELY FOLLOWING THE * EXCHANGE PACKAGE IS *B1* THAT IS SAVED * BY A SERIES OF EXCHANGE JUMPS. * * THIS ROUTINE BUILD A GOOD EXCHANGE PACKAGE * IN THE EXCHANGE PACKAGE AREA AND RESET THE * RJ TRAIL FOR NEXT ENTRY. BXP SUBR * READ X6/A6/X1/A1 LDN 4 STD T1 LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 ADN 3 CRM BXPA,T1 * COPY EXCHANGE PACKAGE FROM CONTROL POINT AREA LDN 20 STD T1 LDD CP CRM BXPB,T1 * MOVE SAVED REGISTERS TO EXCHANGE PACKAGE LDD MA CWM BXPA,ON MOVE X6 CWM BXPA+2*5,ON MOVE X1 LDD MA CRM BXPB+5*16,ON CRM BXPB+5*11,ON * MOVE *A1* LDM BXPA+5*1+3 SHN 14 ADM BXPA+5*1+4 SHN -6 STM BXPB+5*1+2 STORE UPPER 12 BITS LDM BXPB+5*1+3 LPN 77 STM BXPB+5*1+3 LDM BXPA+5*1+4 SHN 6 RAM BXPB+5*1+3 MERGE LOWER SIX BITS * MOVE *A6* LDM BXPA+5*3+3 SHN 14 ADM BXPA+5*3+4 SHN -6 STM BXPB+5*6+2 STORE UPPER 12 BITS LDM BXPB+5*6+3 LPN 77 STM BXPB+5*6+3 LDM BXPA+5*3+4 SHN 6 RAM BXPB+5*6+3 MERGE LOWER SIX BITS * /--- BLOCK BXP 00 000 80/07/01 14.13 * BUILD *B1* / RESTORE *RJ* TRAIL LDN 0 STD T2 STD T3 STD T4 BXP1 LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 ADN 3+20+2 ADD T2 CRD CM READ *RJ* LDD T3 SHN 14 ADD T4 SHN 1 ADD CM+4 INCLUDE NEW BIT STD T4 SHN -14 STD T3 * RESET *RJ* INSTRUCTION LDD CM+4 NJN BXP3 IF *RJ* DID NOT EXECUTE LDC 0100 SET OP-CODE STD CM LDC -100 SET ADDRESS RAD CM+2 PJN BXP2 IF NO UNDERFLOW SOD CM+1 LDC 7700 STD CM+2 BXP2 LDN 1 SET *B* REGISTER BIT STD CM+4 LDD IR+3 RE-WRITE *RJ* SHN 6 ADD RA SHN 6 ADD IR+4 ADN 3+20+2 ADD T2 CWD CM BXP3 LDN 2 RAD T2 LMN 2*22 ZJN BXP4 IF ALL BITS BUILT LJM BXP1 GET NEXT BIT BXP4 LDD T4 STM BXPB+1*5+4 SET LOWER 12 BITS OF *B1* LDM BXPB+1*5+3 SCN 77 ADD T3 STM BXPB+1*5+3 SET UPPER 6 BITS OF *B1* * WRITE EXCHANGE PACKAGE TO FL LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 ADN 3 CWM BXPB,T1 MONITOR RCPM RE-START CPU LJM BXPX EXIT * /--- BLOCK STORAGE 00 000 80/06/30 15.53 * COMMON DECKS *CALL COMPCRS *CALL COMPCUA * STORAGE EFW BSS 0 CONTENTS OF FAILING WORD EMB EQU EFW+5 ERRLOG MESSAGE BUFFER BXPA EQU EMB+20D X1/A1/X6/A6 BXPB EQU BXPA+4*5 EXCHANGE PACKAGE LWA EQU BXPB+20*5 ERRNG 10000-LWA TABLE OVERFLOW OVERFLOW END