CPB A IS IT THE CH? JMP Z.CLF+1 YES - SKIP TEST LDA Z.STF SET UP AND ZIOM IOR B STF INSTRUCTION STA Z.STF PUT IT IN PLACE LDA Z.CLF SET UP AND ZIOM IOR B CLF INSTRUCTION STA Z.CLF PUT IT IN LINE ZBS41 CLF CH CLEAR CHANNEL FLAG Z.STF STF CH EXECUTE STF CH INSTRUCTION ZBS42 SFC CH TEST CHANNEL FLAG JMP ZB41 Z.CLF CLF CH CLEAR TEST FLAG CPB Z.77 IS TEST FINISHED? JMP ZBIO5 YES INB NO JMP ZB40 DO NEXT CHANNEL * ZBE11 ASC 14,E011 STF XX SET CARD FLAG// * ZB41 STB ZBTMP SAVE NUMBER LDA B CONVERT CH FOR MESSAGE JSB ZN2AO STA ZBE11+5 LDA ZBTMP RETRIEVE NUMBER E011 JSB ERMS,I E011 DEF ZBE11 * * * * * SKP * CHECK INTERRUPT & HOLD OFF * ZBIO5 JSB ZTCJI DEF ZBI5 CLA SET UP STA ZBF5 FLAGS STA ZBI5 FOR TEST STA ZBTMP ZBS51 STC CH TURN ON ZBS52 STF CH CARD STF INTP AND INTERRUPTS STC 1 * STF 1 * CLC 1 * CLF 1 * NO INTERRUPT JMP *+1,I * SHOULD OCCURR DEF *+1 * HERE JSB *+1,I * *› DEF *+1 * *Ÿ ZBF5 NOP * ISZ ZBTMP INT. SHOULD BE HERE ISZ ZBTMP CLF INTP TURN I/O SYSTEM OFF LDA ZBI5 DID IT INTERRUPT? SZA JMP *+4 E014 JSB ERMS,I E014 NO INT DEF ZBE14 JMP ZBIO6 ABORT REST OF SECTION LDA ZBTMP CHECK FOR CORRECT INTERRUPT CPA Z.2 ? JMP *+3 3H E026 JSB ERMS,I E026 INT EXECUTION ERROR DEF ZBE26 ZBS53 CLF CH TURN OFF CH FLAG JMP ZBIO6 GO TO NEXT SECTION * ZBD5 DEF ZBF5-1 ZBD5A DEF ZBF5+1 * ZBE12 ASC 16,E012 INT DURING HOLD OFF INSTR/ ZBE13 ASC 12,E013 SECOND INT OCURRED/ ZBE14 ASC 06,E014 NO INT/ ZBE15 ASC 12,E015 INT RTN ADDR ERROR/ ZBE26 ASC 13,E026 INT EXECUTION ERROR/ * * ññ * ññ * SKP Pl ZBI5 NOP CLF INTP TURN I/O SYSTEM OFF LDA ZBD5 CHECK TO SEE IF ALL CPA ZBF5 INSTRUCTION COMPLETED JMP *+3 YES E012 JSB ERMS,I E012 INT DURING HOLD OFF DEF ZBE12 LDA ZBD5A CHECK RETURN ADDRESS LDB CPTO IF 210X SSB ADD ONE INA CPA ZBI5 JMP ZBI5A E015 JSB ERMS,I E015 INT RTN ADDR ERROR DEF ZBE15 JMP ZBIO6 6< ZBI5A JSB ZTCJI SET SECOND INT TRAP DEF ZBT5 STF INTP TURN I/O SYSTEM ON JMP ZBI5,I CONTINUE TEST * * ñññû ZBT5 NOP CLF INTP TURN I/O SYSTEM OFF E013 JSB ERMS,I E013 SECOND INT OCURRED DEF ZBE13 * * * * * ññ SKP * CLC CH AND CLC 0 * ññ ZBIO6 JSB ZTCJI SET JSB INSTRUCTION DEF ZBI61 ZBS61 STC CH SET CH CONTROL ZBS62 STF CH SET CH FLAG STF INTP TURN ON INTERRUPTS ZBS63 CLC CH CLEAR CH CONTROL NOP GIVE IT A CHANCE NOP PÈ CLF INTP TURN INTS OFF ZB60 JSB ZTCJI SET JSB INSTRUCTION DEF ZBI62 ZBS64 CLF CH CLEAR CH FLAG ZBS65 STC CH SET CH CONTROL ZBS66 STF CH SET CH FLAG STF INTP TURN ON INTS CLC INTP CLEAR I/O SYSTEM NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTS JMP ZBIO7 * * ZBI61 NOP CLF INTP TURN OFF INTS E016 JSB ERMS,I E016 CLC CH ERROR DEF ZBE16 JMP ZB60 * ZBI62 NOP CLF INTP TURN OFF INTS E017 JSB ERMS,I E017 CLC 0 ERROR DEF ZBE17 JMP ZBIO7 * ZBE16 ASC 9,E016 CLC CH ERROR/ ZBE17 ASC 9,E017 CLC 0 ERROR/ * * * * * SKP * EXTERNAL & INTERNAL PRESET TEST * ZBIO7 LDB ZS812 CHECK TO SUPPRESS JSB SWRT,I ? JMP H025 YES - SKIP PRESET TEST H024 JSB MSGC,I TELL OPERATOR DEF ZBM24 PRESS PRESET * ZBS71 CLF CH CLEAR CH FLAG STF INTP TURN ON INTS JSB ZTCJI SET TRAP CELL JSB INSTRUCTION DEF ZBI70 HLT 24B WAIT FOR OPERATOR CLA,INA SET UP FLAGS FOR TESTS SFS INTP CHECK INTP FLAG CLA NOT SET SO CLEAR FLAG RAL MOVE TO NEXT FLAG CLF INTP TURN OFF ONTPS ZBS72 SFS CH CHECK CHANNEL FLAG INA NOT SET SO FLAG IT RAL MOVE TO NEXT FLAG LIB 0 CHECK I/O BUSS SZB SHOULD BE ZERO INA NOT SO FLAG IT RAL MOVE TO NEXT FLAG STF INTP CHECK CONTROL ON CARD NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTPS * * * *ñ * * * * * * ññ * * * * * *ñ * * * * * * * * * SKP ZB70 SLA,RSS CHECK FOR ERRORS JMP *+3 E022 JSB ERMS,I E022 DID NOT CLEAR CONTROL DEF ZBE22 2b RAR SLA,RSS JMP *+3 E023 JSB ERMS,I E023 I/O LINES NOT CLEAR DEF ZBE23 RAR SLA,RSS JMP *+3 3H E020 JSB ERMS,I E020 FLAG NOT SET DEF ZBE20 RAR SLA,RSS JMP *+3 3H E021 JSB ERMS,I E021 DID NOT DIABLE INTS DEF ZBE21 H025 JSB MSGC,I TELL OPERATOR DEF ZBM25 BASIC I/O IS COMPLETE JMP ZBIO,I RETURN TO CALLER * ZBI70 NOP CONTROL FAILED CLF INTP TURN OFF INTPS INA JMP ZB70 * ZBE20 ASC 17,E020 PRESET(EXT) DID NOT SET FLAG/ ZBE21 ASC 19,E021 PRESET(INT) DID NOT DISABLE INTS/ ZBE22 ASC 20,E022 PRESET(EXT) DID NOT CLEAR CONTROL/ ZBE23 ASC 21,E023 PRESET(EXT) DID NOT CLEAR I-O LINES/ ZBM24 ASC 17,H024 PRESS PRESET (EXT&INT),RUN/ ZBM25 ASC 08,H025 BI-O COMP/ SKP ZBIOD DEF *+1 DEF ZBS21 DEF ZBS22 DEF ZBS23 DEF ZBS24 4Ÿ DEF ZBS25 DEF ZBS26 DEF ZBS27 DEF ZBS31 DEF ZBS32 DEF ZBS33 DEF ZBS41 DEF ZBS42 DEF ZBS51 DEF ZBS52 DEF ZBS53 DEF ZBS61 1 DEF ZBS62 DEF ZBS63 DEF ZBS64 4ƒ DEF ZBS65 DEF ZBS66 DEF ZBS71 DEF ZBS72 DEC -1 * ZCEND EQU * * * *ñ * * * * ññ * ññ * * * ññ * ññ * * * * * * * ññ * * * * * ññ * * HED BASEPAGE DATA ORG 100B JMP CONF * ORG 126B DSN OCT 113100 REVISION B ORG 140B IOIP DEF IOID POINTER TO I/O INSTRUCTIONS TSTP DEF TSTD POINTER TO TESTS HDMP DEF HDMS POINTER TO HEADER MESSAGE STDA OCT 77 TESTS 5-0 (6 IS NOT STANDARD) STDB OCT 0 NO B REG TESTS * ORG 150B HDMS EQU * ASC 15,2892A CARD READER DIAGNOSTIC/ CR EQU 10B B} SKP IOID EQU * DEF STRS1 DEF STRS2 DEF STRS3 DEF STSS1 DEF STSS2 DEF STS01 DEF STS02 DEF STS03 DEF STS04 DEF STS05 DEF STS06 –– DEF STS07 DEF STS08 DEF STS09 DEF TMGS1 DEF TMGS2 DEF TMGS3 DEF TMGS3+1 DEF TMG1 DEF CFRS1 1 DEF CFRS2 DEF R2BS1 DEF R2BS2 DEF RRSI1 DEF RRS01 DEF RRIS1 DEF RRIS2 DEF DMAS1 DEF DMAS2 DEF DMAS3 DEF DMAS4 DEF SDTS1 DEF SDTS2 2ä DEC -1 TSTD EQU * DEF TST00 BASIC I/O DEF TST01 STATUS DEF TST02 TIMING DEF TST03 DATA PATTERN DEF TST04 READ RATE DEF TST05 DMA TRANSFER DEF TST06 PSEUDO OPERATOR DESIGN DEC -1 TERMINATOR HED COMMON SUBROUTINES CONF CLC INTP,C CLEAR ALL I/O JSB SWRT,I CHECK SWR FOR A TBG NOP LDA B ALF,ALF RAR AND .77 STA TBGSC SAVE SELECT CODE LDB RSS SET FLAG IN PROGRAM SZA CLB STB .TBG1,I STB .TBG2,I STB .TBG3,I SZA,RSS IS THERE A TBG SC? JMP CFIG,I NO AND .M7 SZA TBG > 7 JMP *+3 YES HLT 73B NO TELL OPERATOR JMP CONF TRY AGAIN LDA TBGS1 UPDATE SELECT CODE AND .M77 IOR TBGSC STA TBGS1 OTA TBG LDA TBGS2 AND .M77 IOR TBGSC STA TBGS2 STC TBG,C LDA TBGS3 AND .M77 IOR TBGSC STA TBGS3 CLF TBG JMP CFIG,I CONTINUE CONFIGURATION SKP JSBTM JSB TBGI TRAP CELL JSB FOR TBG * TBGI NOP INA COUNT 1 MILLISECOND TBGS3 CLF 10B RESET TBG JMP TBGI,I RETURN TO PROGRAM * *ñ RRTM NOP CLA,INA SET FOR 1 MILL SEC TBGS1 OTA 10B TBGS2 STC 10B,C START TBG LDA JSBTM SET TRAP CELL STA TBGSC,I I| JMP RRTM,I * TBGSC NOP JSBDM JSB *+1,I DEF DMAI JSBRI JSB *+1,I DEF RRI .M7 OCT 177770 .M77 OCT 177700 RSS RSS .TBG1 DEF TBG1 .TBG2 DEF TBG2 .TBG3 DEF TBG3 SKP * READ ONE CARD (STATUS TESTS MAINLY) * STRD NOP LDA STRD,I GET ANY VARIATIONS STA STRDP LDA DM80 SET FOR 80 COLUMNS STA TMP STRS1 STC CR,C PICK CARD LDA D1000 ALLOW 1 SECOND JSB WFI WAIT FOR INTERRUPT JMP STRDT TIMED OUT LDB TMP CPB DM50 VARIATION ON 50TH COLUMN STRDP NOP STRS2 LIA CR GET DATA STRS3 CLF CR CLEAR FLAG FOR INB,SZB,RSS DONE? JMP *+3 STB TMP NO SAVE COUNT JMP STRS1+1 WAIT FOR NEXT COLUMN LDA D1000 JSB WFI YES WAIT FOR EOP JMP STRDT TIMED OUT STRDX ISZ STRD ADJUST RETURN JMP STRD,I RETURN P+2 * STRDT EQU * E030 JSB ERMS,I TELL OPERATOR OF DEF STRDE TIME OUT ERROR JMP STRDX EXIT * STRDE ASC 09,E030 CR TIMED OUT/ DM80 DEC -80 DM50 DEC -50 TMP NOP NOP NOP NOP PÈ NOP D1000 DEC 1000 SKP * READ TO BUFFER * R2B NOP JSB WFIS SET INTERRUPT TRAP LDA DM80 SET FOR 80 COLUMNS STA CNTR LDA BFD SET POINTER TO INPUT BUFFER STA TMP R2BS1 STC CR,C GIVE PICK COMMAND R2B0 LDA D1000 JSB WFI WAIT FOR INTERRUPT JMP E130 R2BS2 LIA CR GET DATA AND STATUS SSA EOP? JMP E131 YES - ERROR STA TMP,I NO PUT DATA IN BUFFER ISZ TMP ISZ CNTR DONE 80 COLUMNS? JMP R2B0 NO LDA D1000 YES WAIT FOR EOP JSB WFI JMP E130 JMP R2B,I RETURN TO CALLER * E130 JSB ERMS,I TELL OPERATOR OF ERROR DEF DRTE1 CARD TIMED OUT JMP R2B,I EXIT * E131 JSB ERMS,I DEF DRTE2 EOP BEFORE 80 COLUMNS JMP R2B,I EXIT SKP Pl DRTC NOP LDA DM80 SET COUNT FOR COMPARE STA CNTR LDA BFD AND BUFFER POINTERS STA TMP LDA DRTC,I STA TMP+1 DRT0 LDA TMP,I GET DATA READ CPA TMP+1,I DOES DATA COMPARE? RSS JSB DRTE NO ISZ TMP YES MOVE TO NEXT WORD ISZ TMP+1 ISZ CNTR DONE 80 COLUMNS YET? JMP DRT0 NO ISZ DRTC YES ADJUST RETURN JMP DRTC,I RETURN * *ñ DRTE NOP LDB DRTBD CONVERT ACTUAL DATA CLE JSB O2AS,I MESSAGE LDA DRTA MOVE 4 CHARACTERS STA DRTE4 TO MESSAGE LDA DRTB STA DRTE4+1 LDA TMP+1,I CONVERT EXPECTED DATA FOR LDB DRTBD CLE JSB O2AS,I MESSAGE LDA DRTA MOVE 4 CHARACTERS STA DRTE5 TO MESSAGE LDA DRTB STA DRTE5+1 LDA TMP,I GET DATA FOR HALT LDB TMP+1,I E132 JSB ERMS,I REPORT ERROR DEF DRTE3 JMP DRTE,I RETURN * DRTE1 ASC 09,E130 CR TIMED OUT/ DRTE2 ASC 14,E131 EOP BEFORE 80 COLUMNS/ DRTE3 ASC 10,E132 DATA ERROR ACT DRTE4 ASC 05,XXXX EXP DRTE5 ASC 03,XXXX// CNTR NOP DRTBD DEF *+1 NOP DRTA NOP DRTB NOP BFD DEF *+1 BSS 90 SKP * STATUS CHECK FOR TEST 1 * * CDSTC NOP P STSS1 OTA CR DO OTA TO GET STATUS STSS2 LIA CR GET STATUS CPA CDSTC,I DOES IT COMPARE? JMP CDSTR YES RETURN STA CDSTX NO - SAVE STATUS LDA STPNO REPORT ERROR RAR,RAR CONVERT RAR STEP AND .7 NUMBER ADA .63 ALF,ALF STA B LDA STPNO AND .7 ADA .60 IOR B STA STCM0+1 PUT IT IN PLACE LDA CDSTX GET CURRENT STATUS FOR MESSAGE LDB STCRN CLE JSB O2AS,I CONVERT IT AND STORE IT LDA CDSTC,I GET EXPECTED FOR MESSAGE LDB STEXP CLE JSB O2AS,I CONVERT IT AND STOR IT LDA CDSTX GET CURRENT STATUS FOR HALT LDB CDSTC,I GET EXPECTED FOR HALT JSB ERMS,I REPORT ERROR DEF STCM0 CDSTR ISZ CDSTC JMP CDSTC,I RETURN TO CALLER * * STCM0 ASC 08,E0XX STATUS IS STCM1 ASC 03,XXXXXX ASC 07, AND EXPECTED STCM2 ASC 04,XXXXXX// STCRN DEF STCM1 STEXP DEF STCM2 2Û STPNO NOP CDSTX NOP .60 OCT 60 .63 OCT 63 .7 OCT 7 SKP * WAIT FOR INTERRUPT * WFI NOP STF INTP JSB TMRR,I CLF INTP JMP WFI,I RETURN P+1 WFIR CLF INTP ISZ WFI RETURN P+2 JMP WFI,I * *ñ * WFIS NOP LDA USSC GET SELECT CODE AND .77 LDB JMPI STB A,I PUT JMP IN TRAP CELL JMP WFIS,I,¢ * JMPI JMP WFIR .77 OCT 77 * ññ * CHECK FOR READY * CFR NOP CLB GIVE HIM 2 CHANCES CFRS1 OTA CR CFRS2 LIA CR SLA IS IT READY? JMP *+3 ISZ CFR YES JMP CFR,I RETURN P+2 SZB SECOND TIME? JMP CFR,I YES E055 JSB ERMS,I TELL OPERATOR DEF CFRM1 1¿ CCB SECOND TRY JMP CFR+2 2r * CFRM1 ASC 09,E055 CR NOT READY/ HED TESTS * STATUS CHECKS * ññ TST01 EQU * * STCK NOP CLC INTP,C CLEAR ALL I/O JSB WFIS SET INTERRUPT TRAP CLA,INA SET STEP 1 STA STPNO H100 JSB MSGH,I TELL OPERATOR TO DEF STM1 TURN CARD READER POWER OFF JSB CDSTC GO CHECK STATUS OCT 110001 BIT 2 =0 BIT 0 =1 * * ISZ STPNO SET STEP 2 H101 JSB MSGH,I TELL OPERATOR TO DEF STM2 TURN CARD READER POWER ON JSB CDSTC GO CHECK STATUS OCT 110041 BIT 2 =0 BIT 0 =1 * *ñ * *ñ ISZ STPNO SET STEP 3 STS01 STC CR,C GIVE PICK COMMAND JSB CDSTC GO CHECK STATUS OCT 010441 BIT 12 =1 BIT 15 =0 BIT 8 =1 * * ññ ISZ STPNO SET STEP 4 H102 JSB MSGH,I TELL OPERATOR TO DEF STM3 PUT CR IN OFF-LINE MODE JSB CDSTC GO CHECK STATUS OCT 110045 BITS 2,15,12 =1 BITS 8 & 0 =0 STS02 SFC CR CHECK THAT FLAG SET BY OL+PICK JMP *+5 CLA CLB E053 JSB ERMS,I IT WASN'T REPORT ERROR DEF STE1 * * ISZ STPNO SET STEP 5 STS03 STC CR,C GIVE PICK COMMAND JSB CDSTC GO CHECK STATUS OCT 110045 BIT 8 =0 BITS 12&15 =1 SKP ISZ STPNO SET STEP 6 H103 JSB MSGH,I TELL OPERATOR TO DEF STM4 PUT CR IN ON-LINE MODE * LOAD THREE CARDS * START CR PRESS RUN STS04 SFC CR CHECK THAT FLAG IS SET BY * OFF-TO-ON LINE * CONTROL SET * RIP =0 JMP *+5 CLA CLB