      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 
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 
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 
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 
      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 
      RAR 
      SLA,RSS 
      JMP *+3 
E023  JSB ERMS,I    E023 I/O LINES NOT CLEAR
      DEF ZBE23 
      RAR 
      SLA,RSS 
      JMP *+3 
E020  JSB ERMS,I    E020 FLAG NOT SET 
      DEF ZBE20 
      RAR 
      SLA,RSS 
      JMP *+3 
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 
      DEF ZBS25 
      DEF ZBS26 
      DEF ZBS27 
      DEF ZBS31 
      DEF ZBS32 
      DEF ZBS33 
      DEF ZBS41 
      DEF ZBS42 
      DEF ZBS51 
      DEF ZBS52 
      DEF ZBS53 
      DEF ZBS61 
      DEF ZBS62 
      DEF ZBS63 
      DEF ZBS64 
      DEF ZBS65 
      DEF ZBS66 
      DEF ZBS71 
      DEF ZBS72 
      DEC -1
* 
ZCEND EQU * 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
      HED HP2613/2617/2618 LINE PRINTER DIAGNOSTIC
* 
      ORG 126B
* 
DSN   OCT 145103
* 
      ORG 140B
* 
IOIP  DEF IOID
TSTP  DEF TSTD
HDMP  DEF HDMS
STDA  OCT 377 
STDB  OCT 0 
STUD  DEF STUDD 
* 
      ORG 150B
* 
HDMS  ASC 14,2613-2618 LINE PRINTER DIAG/ 
      SPC 2 
IOID  EQU * 
      DEF TSTO
      DEF OTCHA 
      DEF OTCHB 
      DEF OTCHC 
      DEF OTCHE 
      DEF OTCHF 
      DEF OUTIA 
      DEF OUTIB 
      DEF OUTID 
      DEF TCJ 
      DEF DMSC1 
      DEF DMSC2 
      DEF MCTA
      DEF OSC01 
      DEF OSC02 
      DEF RDY1
      DEF DMD1
      DEC -1
      SPC 2 
TSTD  EQU * 
      DEF TST.0 
      DEF TST01 
      DEF TST02 
      DEF TST03 
      DEF TST04 
      DEF TST05 
      DEF TST06 
      DEF TST07 
      DEF OPDSN 
.M1   DEC -1
      SKP 
.2    OCT 2 
.3    OCT 3 
.4    OCT 4 
.5    OCT 5 
.6    OCT 6 
.15   OCT 15
.177  OCT 177 
.D25  DEC 25
.M2   DEC -2
.M3   DEC -3
.M4   DEC -4
.M10  DEC -10 
.M60  OCT -60 
CULN  OCT 0 
AA    OCT 101 
DBC   NOP 
DBT   NOP 
DBD   DEF DBDD
.40   OCT 40
.77   OCT 77
.200  OCT 200 
.204  OCT 204 
D27   DEC 27
D136  DEC 136 
DM60  DEC -60 
DM96  DEC -96 
DM136 DEC -136
DM137 DEC -137
M1000 DEC -1000 
RDY   DEF RDYI
TIMEA DEC 5000
CHARM OCT 115 
CNTR  NOP 
CHAR  NOP 
CHAR1 NOP 
BTCK  OCT 10400 
      SKP 
DT1   DEF TBL1
TBL1  DEC 1    TOF
      DEC 1    BOF
      DEC 1    TOF
      DEC 1    BOF
      DEC 120  SS 
      DEC 60   DS 
      DEC 40   TS 
      DEC 8    QP 
      DEC 4    HP 
      DEC 1    BOF
      DEC 12   SP 
      DEC 1    BOF
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      DEC 1 
      SPC 1 
      SPC 2 
*                                   VFU CHANNEL # 
DT2   DEF TBL2
TBL2  OCT 100100    TOF 
VFU1  OCT 100101          2       BOTTOM OF FORM
VFU0  OCT 100100          1       TOP OF FORM 
      OCT 100101    BOF 
VFU2  OCT 100102          3       SINGLE SPACE
VFU3  OCT 100103          4       DOUBLE SPACE
VFU4  OCT 100104          5       TRIPLE SPACE
VFU6  OCT 100106          7       NEXT QUARTER PAGE 
VFU5  OCT 100105          6       HALF PAGE LINE
      OCT 100101    BOF 
VFU7  OCT 100107          8       NEXT SIXTH PAGE 
      OCT 100100    TOF 
LS00  OCT 100000    SLEW  0 LINE
LS01  OCT 100001    SLEW  1 LINE
LS02  OCT 100002    SLEW  2 LINES 
LS03  OCT 100003    SLEW  3 LINES 
LS04  OCT 100004    SLEW  4 LINES 
LS05  OCT 100005    SLEW  5 LINES 
LS06  OCT 100006    SLEW  6 LINES 
LS07  OCT 100007    SLEW  7 LINES 
LS08  OCT 100010    SLEW  8 LINES 
LS09  OCT 100011    SLEW  9 LINES 
LS10  OCT 100012    SLEW 10 LINES 
LS11  OCT 100013    SLEW 11 LINES 
LS12  OCT 100014    SLEW 12 LINES 
LS13  OCT 100015    SLEW 13 LINES 
LS14  OCT 100016    SLEW 14 LINES 
LS15  OCT 100017    SLEW 15 LINES 
      SPC 2 
DT3   DEF TBL3
TBL3  DEF MSG01     TOF 
      DEF MSG02     BOF 
      DEF MSG01     TOF 
      DEF MSG02     BOF 
      DEF MSG03     SS
      DEF MSG04     DS
      DEF MSG05     TS
      DEF MSG07     QP
      DEF MSG06     HP
      DEF MSG02     BOF 
      DEF MSG08     SP
      DEF MSG01 
      DEF MSG24 
      DEF MSG09 
      DEF MSG10 
      DEF MSG11 
      DEF MSG12 
      DEF MSG13 
      DEF MSG14 
      DEF MSG15 
      DEF MSG16 
      DEF MSG17 
      DEF MSG18 
      DEF MSG19 
      DEF MSG20 
      DEF MSG21 
      DEF MSG22 
      DEF MSG23 
      SPC 2 
MSG01 ASC 02,TOF/ 
MSG02 ASC 02,BOF/ 
MSG03 ASC 02,SS/
MSG04 ASC 02,DS/
MSG05 ASC 02,TS/
MSG06 ASC 02,HP/
MSG07 ASC 02,QP/
MSG08 ASC 02,SP/
MSG09 ASC 02,S1/
MSG10 ASC 02,S2/
MSG11 ASC 02,S3/
MSG12 ASC 02,S4/
MSG13 ASC 02,S5/
MSG14 ASC 02,S6/
MSG15 ASC 02,S7/
MSG16 ASC 02,S8/
MSG17 ASC 02,S9/
MSG18 ASC 02,S10/ 
MSG19 ASC 03,S11/ 
MSG20 ASC 03,S12/ 
MSG21 ASC 03,S13/ 
MSG22 ASC 03,S14/ 
MSG23 ASC 03,S15/ 
MSG24 ASC 04,    S0/
      SPC 2 
*                   LINKS FOR VFC TEST
VF1X  DEF VF1 
VFCTX DEF VFCT,I    CONTAINS RETURN ADDR
* 
DT1E  DEF EX1 
DT3E  DEF MSG 
DT2E  DEF VFU10 
DT4E  DEF ER60
DH    OCT 110 
DI    OCT 111 
      SPC 1 
TSTNN NOP 
TMP   OCT 0 
      NOP 
      NOP 
      NOP 
      SKP 
* 
*               LINKAGES FOR OP DESIGN
* 
DBDD  BSS 150 
OPTR  DEF RUNR
* 
*         STATUS REPORT 
* 
SRP   NOP 
      LDB SRPM      SET UP
      CLA,CLE              FOR MESSAGE
      JSB FMTR,I                       OUTPUT 
      LDB CULN      SET UP
      CLA,INA              FOR LINE 
      JSB FMTR,I                    NUMBER INSERTION
OSC01 LIA CH        LOAD STATUS FROM LP 
      AND STMK      MASK OFF UNUSED BITS
      LDB A 
      CCA           SET UP FOR
      JSB FMTR,I               STATUS INSERTION 
      JMP SRP,I     EXIT
SRPM  DEF SRPMS 
SRPMS ASC 07,# STATUS IS #/ 
      SPC 3 
* 
*         STATUS CHECK
* 
SCP   NOP 
      STA SAVA      SAVE STATUS 
      STB SAVB      SAVE LINE NUMBER
OSC02 LIA CH        LOAD STATUS FROM LP 
      AND STMK      MASK OFF UNUSED BITS
      LDB A 
      LDA SAVB      LOAD A WITH REQUESTED LINE NO 
      CPB SAVA      TEST STATUS 
      CLA           LOAD A WITH DEFAULT LINE NO 
      JMP SCP,I     EXIT
SAVA  OCT 0 
SAVB  OCT 0 
STMK  OCT 140001
      SKP 
*         CYCLIC PATTERN PRINT
* 
CPP   NOP 
      SZA,RSS       IF CHRS = 0 
CPP.1 LDA DM136       THEN DEFAULT TO 136 
      SSA,RSS       IF CHRS IS POS. 
      CMA,INA         THEN MAKE IT NEG. 
      STA CPC       SAVE NUMBER OF CHRS 
      ADA D136      CHRS NOT> 136 
      SSA           ? 
      JMP CPP.1     YES USE 136 CHARS 
      SZB,RSS       IF LINE COUNT = 0 
CPP.2 LDB DM60        THEN DEFAULT TO 60
      SSB,RSS       IF LNCNT IS POS.
      CMB,INB         THEN MAKE IT NEG. 
      STB CNTR      SAVE LINE COUNT 
      ADB D60       IF LNCNT> 60
      SSB           ? 
      JMP CPP.2       THEN USE 60 LINES 
CPPL0 JSB CYBFI     SET UP CYCLIC BUFFER
      LDA CYBFD     GET ADDRESS 
      LDB CPC         AND COUNT 
      JSB OTP       OUTPUT BUFFER 
      JSB RTLF      OUTPUT A LINE FEED
      ISZ CNTR      DONE? 
      JMP CPPL0     NO
      CLA            YES
      JMP CPP,I     RETURN TO EXEC
* 
CPC   NOP 
D60   DEC 60
      SKP 
* 
*         OUTPUT BUFFER ONLY
* 
OCP   NOP 
      JSB OTBF
      CLA           NO LINE CHANGE
      JMP OCP,I     RETURN
      SPC 2 
* 
*         CARRIAGE RETURN/LINE FEED 
* 
CLP   NOP 
      JSB RTLF      OUTPUT RETURN/LINE FEED 
      CLA           NO LINE CHANGE
      JMP CLP,I     RETURN
      SPC 2 
* 
*         FORM FEED (AND PRINT) 
* 
FFP   NOP 
      JSB OTBF      OUTPUT BUFFER IF REQUIRED 
      JSB FF        OUTPUT FORMFEED 
      CLA           NO LINE CHANGE
      JMP FFP,I     RETURN
      SKP 
VFP   NOP 
      STA SAVA      SAVE A
      CPA ALC       IS IT A LC COMMAND ?
      JMP LCO       YES 
      ADB .M1       DECREMENT B 
      STB SAVB
      ADB DM8 
      LDA SAVB
      SSB,RSS       IS IT IN THE RANGE
      CLA           DEFAULT 
      ADA TBL2      ADD COMMAND CODE
      JSB OTCH      CALL FOR OUTPUT 
FCR   CLA           LOAD A WITH DEFAULT LINE NO.
      JMP VFP,I     EXIT
LCO   STB SAVB      SAVE B
      ADB DM16
      LDA SAVB
      SSB,RSS       IS IT IN THE RANGE
      CLA           DEFAULT 
      ADA LS00      ADD COMMAND CODE
      JSB OTCH      CALL FOR OUTPUT 
      JMP FCR       EXIT
ALC   ASC 01,LC 
DM8   DEC -8
DM16  DEC -16 
      SKP 
*         PUT CYCLIC PATTERN IN BUFFER
* 
CYBFI NOP 
      LDB CYBFD     SET POINTER 
      STB CYBFT       TO CYCLIC BUFFER
      LDA CYLC      GET LAST STARTING CHARACTER 
      INA           MOVE UP ONE 
      CPA .200      LAST CHARACTER? 
      LDA .40       YES 
      STA CYLC      SAVE FOR NEXT BUFFER
      LDB DM136     GET MAX BUFFER COUNT
CYBFL STA CYBFT,I   STORE CHARACTER 
      INA           MOVE TO NEXT CHARACTER
      CPA .200      IS IT LAST CHR? 
      LDA .40       YES 
      ISZ CYBFT     MOVE POINTER
      INB,SZB       IS BUFFER FULL
      JMP CYBFL     NO
      JMP CYBFI,I   YES RETURN
* 
CYBFT NOP 
CYLC  OCT 40
CYBFD DEF *+1 
      BSS 136 
      OCT 100102
      SKP 
*         OUTPUT A CHARACTER OR THE USER BUFFER 
* 
OTBF  NOP 
      CPA AUB       CHECK FOR USER BUFFER 
      JMP OTUB      YES - SO DO IT
      STA OTBFA     SAVE CHARACTERS 
      IOR B 
      SZA,RSS       ANY BUFFER REQUESTED? 
      JMP OTBF,I    NO
      SZB,RSS       IF B IS ZERO THEN 
      INB           MAKE IT ONE 
      SSB,RSS       IF B IS POS.
      CMB,INB       MAKE IT NEG.
      STB OTBFB     SAVE COUNT
      LDA OTBFA     RETRIEVE CHARACTERS 
      ALF,ALF       CHECK UPPER CHR.
      AND .177        FOR $ SYMBOLE 
      CPA A$        ? 
      JMP *+3       OK
      CLA           NO - THEN TAKE NO ACTION
      JMP OTBF,I    AND RETURN
      LDA OTBFA     GET CHR 
      AND .177        FOR OUTPUT
      JSB OTCH      OUTPUT A TO THE LINE PRINTER
      ISZ OTBFB     IS THERE ANOTHER REQUESTED? 
      JMP *-4       YES 
      CCA           NO - INDICATE A PRINT 
      JMP OTBF,I      AND RETURN
AUB   ASC 01,UB 
A$    OCT 44
      SKP 
*         OUTPUT USER BUFFER
* 
OTUB  SZB           IF NUMBER IS ZERO 
      JMP OTUBN 
      LDB DBC       DEFAULT TO BUFFER COUNT 
      SZB,RSS       PROTECT IF NO BUFFER DEFINED
      JMP OTBF,I
OTUBN SSB,RSS       IF NOT NEG
      CMB,INB       MAKE IT NEG 
      STB OTBFB     AND SAVE IT 
      LDA DBC       CHECK IF
      CMB,INB       BUFFER HAS
      ADB A           ENOUGH IN IT
      SSB           ? 
      LDA OTBFB     IF NO USE BUFFER COUNT
      STA B         SAVE COUNT
      LDA DBT       GET BUFFER TYPE 
      CPA .APA      IS IT PACKED ?
      JMP *+4       YES 
      LDA DBD       NO GET POINTER
      JSB OTP 
      JMP OTBF,I
      LDA B 
      LDB DBD       BUFFER ADDRESS
      JSB OTP2
      JMP OTBF,I    RETURN
* 
OTBFA NOP 
OTBFB NOP 
.APA  ASC 01,PA 
      SKP 
*         OUTPUT A CHR OR BUFFER
* 
*         A = CHR OR ADDRESS
*         B = +^  OR   -^ 
* 
OTP   NOP 
      STA OTPT      SAVE CHR OR ADDRESS 
      SSB             CHR OR ADDRESS? 
      JMP OTPB      IT'S A BUFFER OUTPUT
      CMB,INB       CHR, MAKE COUNT NEG.
      STB OTPC      SAVE COUNT
      LDA OTPT      RETRIEVE CHARACTER
      JSB OTCH      OUTPUT IT 
      ISZ OTPC      ALL DONE? 
      JMP *-3       NO
      JMP OTP,I       AND RETURN
* 
OTPB  STB OTPC      SAVE COUNT
      LDA OTPT,I    GET CHARACTER 
      JSB OTCH      OUTPUT IT 
      ISZ OTPT      MOVE POINTER
      ISZ OTPC      ALL DONE? 
      JMP *-4       NO
      JMP OTP,I     RETURN
OTPT  NOP 
OTPC  NOP 
* 
*         OUTPUT PACKED BUFFER
* 
OTP2  NOP 
      STA OTPC      SAVE NUMBER OF CHARACTERS 
      CLE,ELB 
      STB OTPT        AND ADDRESS POINTER 
OTP2L LDB OTPT      GET CHARACTER ADDRESS 
      CLE,ERB       E _ UPPER LOWER FLAG
      LDA B,I       2 CHR TO  A REG 
      SEZ,RSS       UP
      ALF,ALF       YES 
      AND .177      MASK OFF OPPSITE CHARACTER
      JSB OTCH      OUTPUT A TO LINE PRINTER
      ISZ OTPT      MOVE TO NEXT CHARACTER
      ISZ OTPC      IS THERE MORE OUTPUT? 
      JMP OTP2L     YES 
      JMP OTP2,I     NOW RETURN 
      SKP 
* 
*              CKST PERFORMS STATUS CHECK OF LP 
* 
CKST  NOP 
      STB MSG50+1   STORE ERROR NUMBER IN MESSAGE 
      STA EXP       EXPECTED DATA 
      LDB EXP1      SET UP VARIABLE 
      LDA TSTN        MASK
      CPA .4            * 
      LDB EXP5          * 
      STB MSK1          * 
MCTA  LIA CH        GET STATUS
      AND MSK1      MASK
      STA ACT       STORE ACTUAL STATUS 
      CPA EXP       IS STATUS OK ?
      JMP CKST,I    YES, EXIT 
      LDA ACT       CNVRT 
      LDB ACTD        ACT 
      CLE 
      JSB O2AS,I
      LDA EXP       CNVRT 
      LDB EXPD        EXP 
      CLE 
      JSB O2AS,I
E050  JSB ERMS,I    PRINT ERROR 
      DEF MSG50 
      JMP CKST,I    EXIT
      SPC 1 
ACTD  DEF MSG50+8 
EXPD  DEF MSG50+17
ACT   OCT 0 
EXP   OCT 0 
EXP1  OCT 140001
EXP2  OCT 100001
EXP3  OCT 0 
EXP4  OCT 040000
EXP5  OCT 170001
MSK1  OCT 0 
MSG50 ASC 21,E050 STATUS IS  XXXXXX SHOULD BE  XXXXXX/
                                                                                                                                                                    