* 
      LDA .1
      STA SUBTS     SETUP SUBTEST # 
      JSB MSGH,I    OUTPUT MESSAGE
*                        -REMOVE WRITE RING 
      DEF H130      POINTER TO MESSAGE
      JMP T2601 
H130  EQU * 
      ASC 12,H130 REMOVE WRITE RING/
T2601 EQU * 
* 
*                   SUBTEST # 2 
* 
      LDA .2
      STA SUBTS     SETUP SUBTEST # 
      LDA WCC 
      JSB AOTA      OUTPUT THE COMMAND
      JSB STATS     GET STATUS
      AND MSKFP     CHECK FILE PROTECTED BIT
      SZA,RSS       IS IT SET?
      JMP T2604     NO-REPORT ERROR 
      LDA STATU     YES-CONTINUE
      AND MSKCR     CHECK COMMAND REJECT
      SZA           IS IT ZERO? 
      JMP T2605     OK-CONTINUE TEST
      JSB CLEAR     CLEAR CONTROLLER
      LDB MSKFP     SETUP EXPECTED STATUS 
      ADB MSKCR 
      ADB MSKLP 
      JSB ERMS,I    REPORT COMMAND REJ. ERROR 
      DEF E041
      JMP T2605     GO-OUTPUT MESSAGE 
T2604 EQU * 
      JSB CLEAR     CLEAR CONTROLLER
      LDB MSKFP     SETUP EXPECTED STATUS 
      ADB MSKLP 
      JSB ERMS,I
      DEF E132
      JMP T2605     GO-OUTPUT MESSAGE 
E132  EQU * 
      ASC 12,E132 FILE PROTECT ERROR/ 
* 
T2605 EQU * 
* 
*                   SUBTEST # 3 
* 
      LDA .3
      STA SUBTS     SETUP SUBTEST # 
      JSB MSGH,I    OUTPUT MESSAGE-REPLACE WRITE RING 
      DEF H131
      JMP T2606     GO CHECK UNIT FOR ON-LINE 
H131  EQU * 
      ASC 12,H131 REPLACE WRITE RING/ 
T2606 EQU * 
      LDA MSKFP     LOAD MASK 
      JSB BITCK     IS FILE PROTECT BIT SET?
      JMP T2609     REPORT FILE PROTECT ERROR 
      JMP T2608     EXIT
T2609 EQU * 
      CLB           SETUP EXPECTED STATUS 
      JSB ERMS,I    REPORT FILE PROTECT BIT ERROR 
      DEF E042      -NO WRITE RING
T2608 EQU * 
      JMP TST26,I   EXIT TEST 
* 
*                   END OF TEST 26
* 
* 
*         TEST 27(33)   REWIND OFF-LINE CHECK 
* 
*                   -THIS TEST REQUIRES OPERATOR INTERVENTION 
*                   TO TURN THIS TEST INTO A MANUAL ECHO CHECK
*                     1.)ONLY ONE UNIT ON-LINE. 
*                     2.)SET SW 13- LOOP ON TEST. 
*                     3.)SET SW 15- HALT AT END OF TEST.
*                     4.)EXECUTE TEST.
*                     5.)AT END OF TEST SELECT NEXT UNIT. 
*                     6.)REPEAT STEP 4 AND 5 UNTIL ALL UNITS ARE
*                        TESTED.
*                     7.)RESET SW 13 AND 15.
*                     8.)PUT ALL UNITS TO BE TESTED ON-LINE.
*                     9.)EXIT TEST
* 
* 
TST27 NOP 
      JSB .EXEC,I   GO SELECT A TAPE UNIT 
      LDB SW68      CHECK SWITCH  6,8, AND 12 
      JSB SWRC,I    GO CHECK SWITCH REGISTER
      JMP TST27,I   ON-EXIT TEST
*                   OFF-CONTINUE
* 
*                   SUBTEST # 1 
* 
      LDA .1
      STA SUBTS     SETUP SUBTEST # 
      CLA 
      STA UNITX     START CHECK WITH UNIT 0 
T2706 EQU * 
      JSB UNISL     GOTO SELECT UNIT ROUTINE
      JMP T2707     UNIT OFF-LINE RETURN
      JMP T2708     UNIT IS ON LINE-CONTINUE
T2707 EQU * 
      LDA UNITX     GET CURRENT UNIT #
      INA           INCREMENT UNIT #
      STA UNITX     SAVE IT 
      CPA .4        IS UNIT # = TO 4? 
      JMP T2702     ALL UNITS CHECKED-EXIT
      JMP T2706     NO-GO CHECK NEXT UNIT 
T2708 EQU * 
      LDB RWO       LOAD OFF-LINE REWIND
      JSB OCMMD     OUTPUT THE COMMAND
      JSB FLGWT     WAIT FOR COMMAND FLAG 
T2701 EQU * 
      LDA MSKRT 
      JSB BITCK     IS THE REWIND BIT SET?
      JMP T2701     YES-GO WAIT FOR REW TO FINISH 
      LDA MSKOL     NO-CONTINUE 
      JSB BITCK     IS OFF-LINE BIT SET 
      JMP T2705     YES-CONTINUE
      LDB MSKOL     SETUP EXPECTED STATUS 
      ADB MSKTB 
      JSB ERMS,I    REPORT UNIT IS STILL UP 
      DEF E136
      JMP T2707     GO TRY NEXT UNIT
E136  EQU * 
      ASC 09,E136 UNIT ON-LINE/ 
T2705 EQU * 
      JSB MSGH,I    OUTPUT  MESSAGE 
      DEF H137      POINTER TO MESSAGE
      JMP T2703 
* 
H137  EQU * 
      ASC 14,H137 PUT TAPE UNIT ON-LINE/
T2703 EQU * 
      LDA MSKOL     CHECK OFF-LINE BIT
      JSB BITCK     IS IT SET?
      JMP T2709     YES-GO REPORT ERROR 
      JMP T2707     NO-GO TRY NEXT UNIT 
T2709 EQU * 
      LDB MSKLP     SETUP EXPECTED STATUS 
      JSB ERMS,I    REPORT UNIT FAILED TO GO UP 
      DEF E140
      JMP T2707     GO TRY NEXT UNIT
E140  EQU * 
      ASC 10,E140 UNIT OFF-LINE/
* 
T2702 EQU * 
      JSB UNIUP     REPORT ERROR IF NO UNIT UP
      JMP TST27,I   EXIT TEST 
* 
*                   END OF TEST 27
* 
* 
*         TEST 28(34)   WRITE ALL ONES RECORD 
* 
TST28 NOP 
      JSB .EXEC,I   GO SELECT A TAPE UNIT 
* 
      LDA FG183 
      SZA           IS IT A 13183?
      JMP TST28,I   YES-EXIT TEST 
* 
*     ALL ONE'S CHECK-WRITE 
* 
*                   SUBTEST # 1 
* 
      LDA .1
      STA SUBTS     SETUP SUBTEST # 
      JSB LPREW     SETUP TEST AT LP
      CCA           ALL 1'S OUTPUT WORD 
      JSB LONGW,I   WRITE RECORD TO EOT 
      JMP TST28,I   EXIT TEST 
* 
*         LONGW- WRITES RECORD UNTIL EOT
*CALL 
*     LDA WORD      WORD=WORD TO BE WRITTEN ON TAPE 
*     JSB LONGW,I 
*     <RETURN>
* 
WORD  NOP 
.LONG NOP 
      STA WORD      SAVE WORD 
      CLA 
      STA RDERR     CLEAR READ ERROR FLAG 
      STA WRERR     CLEAR WRITE ERROR FLAG
      LDB WCC       START THE WRITE 
      JSB OCMMD     OUTPUT COMMAND
LONG1 STC DATA,C    START DATA TRANSFER 
LONG2 EQU * 
LON10 LDA WORD      LOAD OUTPUT WORD
      CLB           SETUP TIME OUT COUNTER
LONG3 SFC DATA      IS DATA FLAG CLEAR
      JMP LONG4     NO-OUTPUT A WORD
      LIA SW        GET SWITCH REGISTER 
      AND SW09      CHECK SWITCH 9
      SZA           IS IT SET?
      JMP LON12     YES - TERMINATE RECORD
      LDA WORD      RELOAD THE WORD 
      ISZ B         INCREMENT TIME OUT COUNTER
      JMP LONG3     GO CHECK FLAG 
      JSB DATFG     DATA FLAG TIME OUT- REPORT ERROR
LON13 EQU * 
      JSB EOTCK     CHECK EOT BIT 
      JMP LONG5     YES-EOT BIT SET 
      JSB STATS     GET STATUS
      STA WRERR     SET WRITE ERROR FLAG
LONG5 EQU * 
LON12 CLC DATA,C    TERMINATE RECORD
      JSB FLGWT     WAIT FOR COMMAND FLAG 
      JSB ERRCK     GO REPORT ANY ERROR FLAGS 
      JSB EOTRW     REWIND IF AT EOT
      JMP .LONG,I   EXIT
LONG4 EQU * 
      OTA DATA,C
LON14 EQU * 
      LIA CMMD      GET THE STATUS
      AND LONG6     CHECK THE DE AND EOT BIT
      SZA           IS IT ZERO? 
      JMP LON13     NO-REPORT ERROR 
*                   YES-CONTINUE
      JMP LON10     GO CHECK DATA FLAG
* 
LONG6 OCT 4073      TEMPORARY MASK
* 
*                   END OF TEST 28
* 
* 
*         TEST 29(35)   READ ALL ONES RECORD
* 
TST29 NOP 
      JSB .EXEC,I   GO SELECT A TAPE UNIT 
* 
      LDA FG183 
      SZA           IS IT A 13183?
      JMP TST29,I   YES-EXIT TEST 
* 
*     ALL ONE'S CHECK-READ
* 
* 
*                   SUBTEST # 1 
* 
      LDA .1
      STA SUBTS     SETUP SUBTEST # 
      LDA MSKLP 
      JSB BITCK     GO CHECK STATUS FOR LP
      JMP T2901     BIT SET- CONTINUE 
      JSB .RWSL,I   BIT RESET-GO BACK SPACE RECORD
      JMP TST29,I   ERROR EXIT
T2901 EQU * 
      CCA           LOAD WORD TO BE READ
      JSB LONGR,I   GO READ RECORD TO EOT 
      JMP TST29,I   EXIT TEST 
* 
*         SUBROUTINE LONR-READS RECORD TO EOT 
*CALL 
*     LDA <WORD TO BE READ FROM TAPE> 
*     JSB LONGR,I   GO READ RECORD
* 
.LONR NOP 
      STA LOR16     SAVE WORD 
      CLA 
      STA RDERR     CLEAR READ ERROR FLAG 
      STA WRERR     CLEAR WRITE ERROR FLAG
      LDB RRF 
      JSB OCMMD     OUTPUT COMMAND
LOR01 STC DATA,C    START DATA TRANSFER 
LOR02 EQU * 
      CLB           SETUP TIME OUT COUNTER
LOR03 EQU * 
      SFC DATA      IS DATA FLAG CLEAR
      JMP LOR04     NO-GO GET WORD
      LIA SW        LOAD THE SWITCH REGISTER
      AND SW09      CHECK SWITCH 9
      SZA           IS IT SET?
      JMP LOR14     YES-GO TERMINATE RECORD 
      LDA WORD      RELOAD WORD 
      ISZ B         INCREMENT TIME OUT COUNTER
      JMP LOR03     YES-GO WAIT FOR NEXT WORD 
      JSB DATFG     DATA FLAG TIME OUT- REPORT ERROR
LOR12 EQU * 
      JSB EOTCK     CHECK EOT BIT 
      JMP LOR14     YES-EOT BIT SET 
      JSB STATS     GET STATUS
      AND MSKIO     ISOLATE BITS
      STA RDERR     SET READ ERROR FLAG 
      JSB MS,I      ERROR MESSAGE 
      DEF LOR05     RETURN
      DEF H067      POINTER TO MESSAGE
LOR07 NOP           BAD WORD
LOR16 NOP           GOOD WORD 
LOR05 EQU * 
      CLB           SETUP EXPECTED STATUS 
      JSB ERMS,I    REPORT DATA TRANSFER ERROR
      DEF E062
      JMP LOR17     GO CHECK FOR READ ERROR 
LOR14 EQU * 
      CLC DATA,C    TERMINATE RECORD
      JSB FLGWT     WAIT FOR COMMAND FLAG 
LOR17 EQU * 
      JSB ERRCK     CHECK READ ERROR FLAGS
      JSB .RWSL,I   SLOW REWIND 
      JMP .LONR,I   ERROR RETURN
      JMP .LONR,I   RETURN TO CALLER
LOR04 EQU * 
      LIB DATA,C
      STB LOR07     SAVE THE INPUT DATA 
      CPB LOR16     IS INPUT SAME AS STORED WORD? 
      JMP LOR13     YES-CONTINUE
      JMP LOR12     NO-GO REPORT ERROR
LOR13 EQU * 
LOR15 EQU * 
      LIA CMMD      GET THE STATUS
      AND LOR06     CHECK THE DE AND EOT BIT
      SZA           IS IT ZERO
      JMP LOR12     NO-GO REPORT ERROR
      JMP LOR02     GO CHECK DATE FLAG
* 
LOR06 OCT 4073      TEMPORARY MASK
* 
* 
*                   END OF TEST 29
* 
* 
* 
*         TEST 30(36)   OPERATOR SERVICE ROUTINES 
* 
* 
*     BIT 0 = WRITE A TAPE BYTE 
* 
*     BIT 1 = WRITE COMPUTER WORD 
* 
*     BIT 2 = COMMAND EXERCISE
* 
*     BIT 3 = DMA TRANSFER
* 
* 
* 
TST30 NOP 
* 
* 
*     BEGIN SWITCH REG SELECTION OF OPERATOR SERVICE ROUTINES **
* 
      JSB .EXEC,I   GO SELECT A TAPE UNIT 
      LIA SW        SAVE THE SWITCH REGISTER
      STA INSWR 
      AND SW09
      SZA           IS SWITCH 9 SET?
      JMP TST30,I   YES-EXIT TEST 
      CCA 
      STA ERSKP     SET ERROR MESSAGE SKIP FLAG 
      STA CRCFG     SET CRCC SKIP FLAG
T3001 EQU * 
      CLA           CLEAR THE SWITCH REGISTER 
      OTA SW
      JSB CLEAR     CLEAR CONTROLLER
      JSB MSGH,I    OUTPUT OPERATOR SERVICE MSG 
      DEF H146      AND HALT
      LIA SW        LOAD SWITCH REGISTER
      SZA           ARE ANY SW BITS SET?
      JMP T3002     YES-GO CHECK
T3054 EQU * 
      LDA INSWR     RESTORE THE SWITCH REGISTER 
      OTA SW
      CLA 
      STA SKPSW     CLEAR SKIP SW REG CHECK FLAG
      STA ERSKP     CLEAR ERROR MESSAGE SKIP FLAG 
      JMP TST30,I   NO-EXIT TEST
T3002 EQU * 
      LDB SW00      CHECK BIT 0 
      JSB SWRC,I    IS IT SET?
      JMP T3050     YES-GO WRITE A TAPE BYTE
      LDB SW01      NO-CHECK BIT 1
      JSB SWRC,I    IS IT SET?
      JMP T3051     YES-WRITE COMPUTER WORD 
      LDB SW02      NO-CHECK BIT 2
      JSB SWRC,I    IS IT SET?
      JMP T3052     YES-GO TO COMMAND EXERCISE
      LDB SW03      NO-CHECK BIT 3
      JSB SWRC,I    IS IT SET?
      JMP T3053     YES-GOTO DMA TRANSFER 
      JMP T3054     NO-EXIT TEST
* 
T3050 EQU * 
      JSB .T303,I   WRITE A TAPE BYTE 
      JMP T3001 
T3051 EQU * 
      JSB .T304,I   WRITE A COMPUTER WORD 
      JMP T3001 
T3052 EQU * 
      JSB .T305,I   COMMAND EXERCISE
      JMP T3001 
T3053 EQU * 
      JSB .T306,I   DO A DMA TRANSFER 
      JMP T3001 
* 
* 
.T303 DEF T3003     POINTER TO TAPE BYTE
.T304 DEF T3004     POINTER TO COMPUTER WORD
.T305 DEF T3005     POINTER TO COMMAND EXER.
.T306 DEF T3006     POINTER TO DMA TRANSFER 
* 
H146  EQU * 
      ASC 11,H146 SELECT OP. SER./
H147  EQU * 
      ASC 09,H147 SELECT BYTE/
* 
* 
* 
* 
*     END OF SWITCH REG SELECTION 
* 
      SKP 
      ORG PAG12 
*        SKIP TO NEXT PAGE OF MEMORY ******************************** 
* 
H150  EQU * 
      ASC 09,H150 SELECT WORD/
H151  EQU * 
      ASC 10,H151 SELECT COMMAND/ 
* 
* 
*    WRITE RECORDS FROM THE SWITCH REGISTER    *
 SPC 1
*    (1)  THE CHARACTERS WRITTEN ON TAPE ARE DEFINED BY 
*    SWITCHES 0 - 7 OF THE SWITCH REGISTER. 
* 
*    (2)  THE RECORD LENGTHS ARE DETERMINED BY SETTING
*    SWITCHES 8 - 14 OF THE SWITCH REGISTER.
*      SW  8 =   2 CHARACTERS 
*      SW  9 =   4 CHARACTERS 
*      SW 10 =   8 CHARACTERS 
*       . 
*       . 
*       . 
*      SW 14 = 128 CHARACTERS 
*    IF SWITCHES 8 - 14 ARE ALL SET, (1), THE RECORD
*    LENGTH IS 255 CHARACTERS.
*    IF SWITCHES 8 - 14 ARE ALL RESET, (0), THE RECORD
*    LENGTH IS LIMITED BY AVAILABLE CORE MEMORY.
* 
*    (3)  SWITCH 15 TERMINATES THE WRITE PROGRAM AT THE 
*    END OF THE CURRENT RECORD. 
 SPC 1
********************************************************
T3003 NOP 
* 
*         WRITE TAPE BYTE FROM SWITCH REQISTER
* 
      JSB MSGH,I    OUTPUT MESSAGE
      DEF H147      AND HALT
T3049 EQU * 
      LDB SW15      CHECK BIT 15 OF SW
      JSB SWRC,I    IS BIT 15 SET?
      JMP T3003,I   EXIT TO CONTROL SECTION 
      JSB EOTRW     NO-CHECK FOR EOT
*                   SHOULD HAVE A BIT 15 CHECK
*                   DURING REWIND FOR ABORT 
      LIA SW        LOAD SWITCH 
      AND MK377     GET BITS 7-0
      STA T3007     SAVE IT 
      ALF,ALF       ROTATE BYTE TO UPPER
      ADA T3007     SETUP COMPUTER WORD 
      STA T3007     SAVE IT 
      LIA SW
      AND MK77K     GET BITS 8-14 
      ALF,ALF       ROTATE TO BIT 0-7 
      STA T3008     KEEP WORD COUNT 
      SZA           ARE BITS 14-8 ZERO? 
      JMP T3010     GO FILL OUTPUT BUFFER 
T3011 EQU * 
      LDA BFMAX     GET MAX BUFFER
      STA T3008     SAVE IN WORD COUNT
T3010 EQU * 
      LDA .1        ONE WORD PATTERN
      LDB T3007-1   LOCATION OF BUFFER
      JSB FILL,I    FILL THE OUT PUT BUFFER 
      DEF T3013     RETURN ADDRESS
T3008 NOP           BUFFER LENGTH 
      DEF T3011     ERROR RETURN
      DEF *+1       POINTER TO WORD 
T3007 NOP           COMPUTER WORD 
*                   OUTPUT BUFFER 
T3013 EQU * 
      CCA 
      STA SKPSW     SET SW REG SKIP FLAG
      JSB SIOW,I    WRITE A RECORD
      JSB BSRWF     BACKSPACE RECORD
      JSB SIOR,I    READ THE RECORD 
      CLA 
      STA SKPSW     CLEAR SW REG CHECK FLAG 
      JMP T3049     GO BACK AND DO IT AGAIN 
* 
* 
* 
* 
*          WRITE COMPUTER WORD ROUTINE
* 
* 
*    --PROGRAM OPERATION--
* 
*    1. LOAD SWITCH REGISTER BIT 1 AT HLT 106046
* 
*    2. LOAD THE SWITCH REGISTER (0-15) WITH THE PATTERN OF 
*       THE WORD TO BE WRITTEN. 
* 
*    3. PRESS RUN 
* 
*    ---------------------
* 
*    THE PROGRAM WRITES A 2048 (MAX SIZE) BYTE RECORD, THEN BACK- 
*    SPACES AND READS THE RECORD .
* 
*    CHANGING ANY SWITCH ON THE SWITCH REGISTER, BRINGS 
*    THE PROGRAM TO A NORMAL HALT (106046B).
*    OTHER WISE THE PROGRAM CONTINUES TRANSFERRING RECORDS UN-
*    TIL AN END-OF-TAPE IS DETECTED, AT WHICH TIME THE TAPE IS
*    AUTOMATICALLY REWOUND. 
* 
 SPC 1
********************************************************* 
T3004 NOP 
* 
*         WRITE A COMPUTER WORD 
* 
      JSB MSGH,I    OUTPUT MESSAGE
      DEF H150      AND HALT
T3014 EQU * 
      LIA SW        LOAD A WITH SW REG
      STA T3016     SAVE IT 
      LDA BFMAX     GET MAX BUFFER
      STA T3017     SAVE IT 
      LDA .1        ONE WORD PATTERN
      LDB T3016-1   POINTER TO COMPUTER WORD
      JSB FILL,I    FILL THE OUTPUT BUFFER
      DEF T3018     RETURN ADDRESS
T3017 NOP           BUFFER LENGTH 
      DEF T3001     ERROR RETURN
      DEF *+1       POINTER TO WORD 
T3016 NOP           COMPUTER WORD 
T3018 EQU * 
      CCA 
      STA SKPSW     SET SW REG SKIP FLAG
      JSB SIOW,I    WRITE A RECORD
      JSB BSRWF     BACKSPACE RECORD
      JSB SIOR,I    READ THE RECORD 
      CLA 
      STA SKPSW     CLEAR SW REG CHECK FLAG 
      JSB EOTRW     REWIND IF AT BOT
      LDB FWAM,I    GET FIRST WORD IN OUTPUT BUFFER 
      LIA SW        GET THE SWITCH REGISTER CONTENTS
      CPA B         HAS THE SWITCH REGISTER CHANGED?
      JMP T3014     NO-LOOP ON ROUTINE
      JMP T3004,I   YES-EXIT
* 
* 
*    COMMAND EXERCISE ROUTINE    *
 SPC 1
*       SW 0   WRITE (WCC)
*       SW 1   WRITE TAPE MARKS (WFM) 
*       SW 2   READ ONE RECORD FORWARD (RRF)
*       SW 3   FORWARD SPACE ONE RECORD (FSR) 
*       SW 4   FORWARD SPACE ONE FILE (FSF) 
*       SW 5   CLEAR THE CONTROLLER (CLR) 
*       - - - - - - - - - - - - - - - - - 
*       SW 6   WRITE A GAP (GAP)
*       SW 7   BACKSPACE ONE RECORD (BSR) 
*       SW 8   BACKSPACE ONE FILE (BSF) 
*       SW 9   REWIND TO LOAD POINT (REW) 
*       SW 10  REWIND AND OFF-LINE (RWO)
*       SW 11  CLEAR THE CONTROLLER (CLR) 
*       SW 12  ALLOWS APPROX. 10 MS DELAY BETWEEN COMMANDS
*       SW 13  ALLOWS APPROX. 15 MS DELAY BETWEEN COMMANDS
*       SW 14  ALLOWS APPROX. 30 MS DELAY BETWEEN COMMANDS
*       SW 15  TERMINATES OPERATION 
* 
*    ANY OF THE FIRST SIX COMMANDS CAN BE COMBINED WITH ANY 
*    OF THE LAST SIX, OR ANY OF THE TWELVE CAN BE USED ALONE. 
 SPC 1
********************************************************* 
* 
*         COMMAND EXERCISE
* 
T3005 NOP 
      JSB MSGH,I    OUTPUT MESSAGE
      DEF H151      AND HALT
T3021 EQU * 
      LDB SW15      CHECK SW BIT 15 
      JSB SWRC,I    IS IT SET?
      JMP T3022     CLEAR ROUTINE 
      JSB EOTRW     RW IF AT EOT
*     BEGIN COMMAND DECODER 
      LDB SW00      CHECK BIT 0 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3023     NO-GO TRY NEXT BIT
      LDA WCC       WRITE 
      JSB OUTCD     OUTPUT IT 
T3023 EQU * 
      LDB SW01      CHECK BIT 1 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3024     NO-GO TRY NEXT BIT
      LDA WFM       WRITE FILE MARK 
      JSB OUTCD     OUTPUT IT 
T3024 EQU * 
      LDB SW02      CHECK BIT 2 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3025     NO-GO TRY NEXT BIT
      LDA RRF       READ A RECORD 
      JSB OUTCD     OUTPUT IT 
T3025 EQU * 
      LDB SW03      CHECK BIT 3 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3026     NO-GO TRY NEXT BIT
      LDA FSR       FORWARD SPACE FILE
      JSB OUTCD     OUTPUT IT 
T3026 EQU * 
      LDB SW04      CHECK BIT 4 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3027     NO-GO TRY NEXT BIT
      LDA FSF       FORWARD SPACE FILE
      JSB OUTCD     OUTPUT IT 
T3027 EQU * 
      LDB SW05      CHECK BIT 5 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3028     NO-GO TRY NEXT BIT
      LDA CLR       CLEAR 
      JSB OUTCD     OUTPUT IT 
T3028 EQU * 
      LDB SW06      CHECK BIT 6 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3030     NO-GO TRY NEXT BIT
      LDA GAP       GAP 
      JSB OUTCD     OUTPUT IT 
T3030 EQU * 
      LDB SW07      CHECK BIT 7 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3031     NO-GO TRY NEXT BIT
      LDA BSR       BACKSPACE RECORD
      JSB OUTCD     OUTPUT IT 
T3031 EQU * 
      LDB SW08      CHECK BIT 8 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3032     NO-GO OUTPUT COMMAND
      LDA BSF       BACKSPACE FILE
      JSB OUTCD     OUTPUT IT 
T3032 EQU * 
      LDB SW09      CHECK BIT 9 
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3033     NO-GO TRY NEXT BIT
      LDA REW       REWIND
      JSB OUTCD     OUTPUT IT 
T3033 EQU * 
      LDB SW10      CHECK BIT 10
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3034     NO-GO TRY NEXT BIT
      LDA RWO       REWIND OFF-LINE 
      JSB OUTCD     OUTPUT IT 
T3034 EQU * 
      LDB SW11      CHECK BIT 11
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-GO OUTPUT COMMAND 
      JMP T3035     NO-GO TRY NEXT BIT
      LDA CLR       CLEAR 
      JSB OUTCD     OUTPUT IT.
T3035 EQU * 
      JMP T3021     LOOP
T3022 EQU * 
      JSB CLEAR     CLEAR CONTROLLER
      JMP T3005,I   EXIT
* 
*     SUBROUTINE    OUTCD (OUTPUT A COMMAND)
* 
OUTCD NOP 
      STA AREG      SAVE A REGISTER 
      LDB AREG      LOAD COMMAND INTO B REGISTER
      JSB OCMMD     OUTPUT A COMMAND IN B 
      LIA SW        LOAD A WITH SW
      ALF           ROTATE BITS 15-12 TO 0-4
      AND .7        MASK OFF BITS 3-0 
      SZA,RSS       IS IT ZERO? 
      JMP OTCD1     YES-SKIP TIMER
      LDB SW14      CHECK BIT 14
      JSB SWRC,I    IS IT SET?
      JMP *+2       YES-WAIT 30 MILLI-SEC 
      JMP OTCD2     NO-GOTO NEXT BIT
      LDA .30D
      JSB TMRR,I    WAIT 30 MILLI-SEC 
      JMP OTCD3 
OTCD2 EQU * 
      LDB SW13      CHECK BIT 13
      JSB SWRC,I     IT SET?
      JMP *+2       YES-WAIT 15 MILLI-SEC 
      JMP OTCD4     NO-GOTO NEXT BIT
                                                            