      HED 3030 MAG TAPE DRIVERMTD   NOP           ** MAG TAPE DRIVER ENTRY **       STA BUFL      SAVE LENGTH AND       STB BUFA       ADDRESS OF BUFFER      LDA MAGSC                                  [F]      SSA           7970?                        [F]      JMP XMTD      YES                          [F]MT.21 LIA CMND      SET EOT FLAG      AND DB40      STA EOTF      JSB AUTCK     INSURE TAPE UNIT IN AUTO     [E]MT.52 LDA DB300     ISSUE A CLEAR COMMAND TO      JSB CMAND      THE CONTROLLER AND WAIT.       LDA MTD,I     FETCH OPERATION CODE      ISZ MTD       INCREMENT RETURN POINT (P+2)      AND DB7       ADA TBASE     LOOK UP PROCESSOR IN TABLE      JMP 0,I       CALL PROCESSOR* TBASE DEF *+1,I     COMMAND PROCESSOR ENTRY       DEF READT      POINT TABLE      DEF WRITE       DEF WEOF      DEF REW       DEF POS       DEF RES       DEF GAP       DEF STAT* EXIT  JSB STIN      GET STATUS, RECORD COUNT      ISZ MTD       AND EXIT      ISZ MTD       LDA BUFL      JMP MTD,I * REW   LDA DB201     REWINDMT.20 OTA CMND      INA,SZA       TIME OUT FOR TAPE UNIT      JMP *-1       TO ACCEPT COMMAND       JMP MTD,I * RES   LDA DB101     REWIND AND STANDBY      JMP MT.20 * *    TAPE POSITIONING ROUTINE * *    ENTER WITH COMMANDS STORED IN BUFL AND BUFA. * POS   LDB BUFL      GET FILE COUNT      JSB ABS       SET FLAGS, COMMANDS AND COUNT       JMP P.1       # FILES = 0, DO RECORDS       LDA BUFL      SSA           TEST FWD/REV      JMP P.2       BACKSPACE FILES       JSB SPACE     FORWARD SPACE       JMP *-1       REPEAT UNTIL FILE       ISZ CNT       CHECK FOR FINISHED      JMP *-3       NO, LOOPP.1   LDB BUFA      PROCESS RECORDS       JSB ABS       SET FOR FWD/REV RECORD SPACING      JMP EXIT      NO RECORDS, EXIT      LDA BUFA      SSA          TEST FWD/REV       JMP P.3       BACKSPACE RECORD      JSB SPACE     FORWARD SPACE       NOP           COUNT FILE MARK AS ONE RECORD       ISZ CNT       FINISHED?       JMP *-3       NO , LOOP       JMP EXIT      YES RETURN* P.2   JSB STIN      GET TAPE STATUS (BACKFILE)      AND DB100     MASK FOR SOT      SZA       JMP P.4       SOT SET - EXIT IF CNT > 1       LDA WCNT      JSB CMAND     BACKSPACE       AND DB200       SZA,RSS       EOF?      JMP P.2       NO, LOOP      ISZ CNT       DONE?       JMP P.2       NO, LOOP AGAIN      ISZ BUFA      BUMP RECORD COUNTER TO RECROSS      JMP P.1        LAST FILE MARK AND DO RECORDS      JMP EXIT      NO RECORDS NOW, EXIT* P.4   ISZ CNT       CNT = -1?       JMP MTD,I     NO, TRIED TO CROSS SOT, ERROR       JMP P.1       YES, DO RECORD SPACING* P.3   LDA WCNT      BACKSPACE RECORD      JSB CMAND       AND DB100       SZA           SOT?      JMP MTD,I     YES - EOT EXIT      ISZ CNT       DONE?       JMP P.3       NO, LOOP      JMP EXIT* ABS   NOP           SET-UP ROUTINE      LDA D.3       FORWARD SPACE COMMAND       SSB           IF # IS < 0 SET FOR       LDA DB41      BACKSPACE COMMAND       STA WCNT      SSB,RSS       GET -ABS(#) FOR CNT       CMB,INB       STB CNT       SZB           IF = 0 EXIT CALL + 1      ISZ ABS       OTHERWISE CALL + 2      JMP ABS,I * SPACE NOP           SPACE TAPE      JSB STIN      GET TAPE STATUS       AND DB40      CHECK FOR EOT       SZA       JMP MTD,I     EOT EXIT      LDA WCNT      JSB CMAND     SPACE       AND DB200     CHECK FOR EOF       SZA           RETURN CALL + 1 FOR EOF       ISZ SPACE       JMP SPACE,I * STIN  NOP           GET TAPE STATUS S.1   LIA CMNDS.2   LIB CMND      JMP STIN,I* STAT  JSB STIN      GET TAPE STATUS       JMP MTD,I    EXIT DRIVER* *                  WRITE 3" BLANK TAPE* GAP   JSB WNEC      CHECK FOR WRITE RING IN       JSB EOTC      CHECK FOR END OF TAPE       LDA DB11      COMMAND       JSB CMAND       JMP EXIT      NORMAL EXIT * *                  WRITE END OF FILE* WEOF  JSB WNEC      CHECK FOR WRITE RING IN       LDA DB35      WRITE FILE MARK CODE      JSB CMAND       XOR DB200       IOR EOTF      CHECK EOT       SZA       JMP MTD,I       JMP EXITWRITE JSB EOTC      WRITE **      JSB WNEC      CHECK FOR WRITE RING IN       JSB CNTR      GET NEG # WORDS       SSB,RSS       IS REQUEST AT LEAST 5 WORDS?      LDA DM5       NO, PAD BUFFER      ADA DM1       ADD 1 FOR RECORD LENGTH       STA CNT RETRY STA WCNT      SAVE WORD COUNT              [F]      LDB BUFA      GET BUFFER ADDRESS      ADB DM1       INITIALIZE BUFFER POINTER       LDA DB31      WRITE CHARACTERS CODE MT.10 OTA CMND      START FORWARD TAPE MOTION       LDA BUFL      FIRST WRITTEN WORD IS BUFLOUT   ALF,ALF       POSITION FIRST BYTE MT.8  SFS DATA      JMP *-1       WAIT FOR DATA CHANNEL FLAGMT.9  OTA DATA,C    WRITE FIRST BYTE      INB           STEP BUFFER POINTER       ALF,ALF       POSITION SECOND BYTEMT.2  SFS DATA      JMP *-1       WAIT FOR DATA FLAGMT.3  OTA DATA,C    WRITE SECOND BYTE       LDA 1,I       GET NEXT WORD       ISZ WCNT      STEP AND TEST WORD COUNT      JMP OUT       NOT END, LOOP MT.5  CLC DATA      INITIATE END OF RECORD SEQUENCE       CLA           WAIT FOR CONTROL FLAG       JSB CMAND       AND GET STATUS      AND DB733     DISCARD EOT BIT       SZA,RSS       TEST FOR ERRORS DURING WRITE      JMP EXIT      NORMAL EXIT       LDA DB41      BACKSPACE                    [F]      JSB CMAND                                  [F]      LDA DB11      GAP                          [F]      JSB CMAND                                  [F]      AND DB40                                   [F]      SZA           EOT?                         [F]      JMP ERR       YES                          [F]      LDA CNT       NO,                          [F]      JMP RETRY       RETRY                      [F]* READT JSB EOTC      READ      LDA DM10      STA ECNT      SET RETRY COUNTER TO -10      JSB CNTR      GET NEG # OF WORDS      SSB,RSS       IS REQUEST AT LEAST 5 WORDS?      LDA DM5       NO, PAD BUFFER      STA CNT RERED LDB CNT       NEGATIVE WORD COUNT       LDA BUFA      ADA DM1       STA XWNEC     INITIALIZE BUFFER POINTER    [F]      LDA DB23      READ CHARACTERS CODEMT.40 OTA CMND      START TAPE MOTION MT.41 STC CMND,CMT.42 SFS DATA      JMP *-1       WAIT FOR DATA FLAGMT.43 LIA DATA,C    READ TAPE RECORD LENGTH       ALF,ALF MT.30 SFC CMND      CHECK FOR EOF/EOT       JMP ENDRMT.44 SFS DATA      JMP *-3       WAIT FOR DATA FLAGMT.45 MIA DATA,C      STA XABS      SAVE RECORD LENGTH           [F]LOOP  SFC CMND      CHECK FOR END OF TAPE       JMP ENDRMT.46 SFS DATA         OR NEXT WORD       JMP *-3 MT.47 LIA DATA,C    READ FIRST BYTE       ALF,ALF       POSITION BYTE       ISZ XWNEC     STEP BUFFER POINTER          [F]MT.51 SFC CMND      JMP ENDRMT.48 SFS DATA      JMP *-3 MT.49 MIA DATA,C    READ AND MERGE SECOND BYTEMTVLC STA XWNEC,I   *** THIS WORD CHANGED ***    [F]      INB,SZB,RSS   END OF BUFFER?               [F]      RSS           NO COMPARE OR BUFFER END     [F]      JMP MT.46     NOT END, READ NEXT WORD       SZB           SKIP IF BUFFER END           [F]      JMP MTDER     NO COMPARE ON VERIFY         [F]MT.50 CLC DATA      START END OF RECORD SEQUENCE      CLA       JSB CMAND     WIAT FOR END OF RECORD      AND DB757     DISCARD TIMING ERROR BIT      RSS           PROCESS END OF RECORD READX JSB STIN      RESTORE STATUS      AND DB733     DISCARD NW AND EOT BITS       SZA,RSS       ANY ERRORS?       JMP EXIT      NO,DONE       AND DB200     CHECK FOR END OF FILE       SZA       JMP MTD,I     EOF EXIT      STB 0         RESTORE STATUS      ISZ ECNT      HAVE WE TRIED 10 TIMES?       RSS           NO      JMP SHORT     YES, CHECK FOR SHORT RECORD  [F]      LDA DB41      BACKSPACE       JSB CMAND       JMP RERED     TRY AGAIN SHORT LDA BUFA      RECORD                       [F]      CMA,INA                                    [F]      ADA XWNEC       < 5                        [F]      ADA DM5                                    [F]      SSA               WORDS?                   [F]      JMP READT     YES                          [F]      JMP ERR       NO                           [F]* RECORD < BUFFER LENGTH, GET TAPE LENGTH IN USER'S BUFFER* ENDR  LDA XABS      GET TAPE RECORD LENGTH       [F]      LDB BUFL      GET USER BUFFER LENGTH      SSB           CHECK USER'S SPECIFICATIONS:      JMP *+6       USER SPECIFIED WORDS      SSA,RSS       USER SPECIFIED CHARACTERS       JMP ENDR1     BOTH ARE WORDS      ALS           DIFFERENT, CONVERT TO CHARS       CMA,INA       JMP ENDR1       SSA           CHECK TAPE TYPE       JMP ENDR1     WORDS,      CMA,INA       CHARACTERS, MAKE WORDS      ARS ENDR1 STA BUFL      SAVE TAPE LENGTH FOR USER       JMP READX     CONTINUE READ PROCESSING* CNTR  NOP           GET NEG # WORDS IN A      LDA BUFL      USER'S BUFFER LENGTH      SZA,RSS       JMP EXIT      0 LENGTH, DON'T READ OR WRITE       SSA           WORDS OR CHARACTERS?      JMP *+3       WORDS, LEAVE AS IS      CMA,INA       CHARACTERS, CONVERT TO WORDS      ARS       LDB 0       ADB D.5       RETURN WITH (NEG # WORDS + 5)       JMP CNTR,I      IN B      SKP WNEC  NOP           CHECK FOR WRITE RINGMT.12 LIA CMND      AND D.4       SZA,RSS       JMP WNEC,I    EXIT WITH WRITE ENABLED       LDA D.19      REQUEST       LDB WNEA        WRITE       JSB TT35I,I       RING                     [F]      HLT 33B       WAIT      JSB AUTCK     INSURE TAPE UNIT IN AUTO     [E]      JMP MT.12 *                                                                [E]*                  CHECK FOR TAPE UNIT IN AUTO                   [E]*                                                                [E]AUTCK NOP                                        [E]MT.1  LIA CMND      IS                           [E]      AND DB400       STATUS                     [E]      SZA,RSS           AUTO?                    [E]      JMP AUTCK,I   YES                          [E]      LDA D.25      NO                           [E]      LDB MTLMA     REQUEST                      [E]      JSB TT35I,I     AUTO                       [F]      HLT 44B       WAIT                         [E]      JMP MT.1                                   [E]* CMAND NOP           ISSUE THE COMMAND IN -A-MT.14 OTA CMNDMT.15 SFS CMND      JMP *-1       JSB STIN      GET TAPE STATUS       JMP CMAND,I * EOTC  NOP           CHECK FOR EOT       JSB STIN      LDA EOTF      SZA       JMP MTD,I       JMP EOTC,I* ERR   JSB STIN      ERROR EXIT      CLA       ISZ MTD       JMP MTD,I       HED 7970 MAG TAPE DRIVER                   [F]XMTD  JSB XSTIN     GET STATUS                   [F]      SLA           CONTROLLER BUSY?             [F]      JMP XS.1      YES, CONTINUE                [F]XT.13 CLC DATA      CLEAR CONTROL BIT            [F]XT.16 CLC CMND        ON BOTH CHANNELS           [F]      LDA SL0       NO                           [F]XT.1  OTA CMND      SELECT UNIT 0                [F]      JSB XATCK     INSURE TAPE UNIT IN AUTO     [F]      LDA MTD,I     FETCH OPERATION CODE         [F]      AND DB7       USE LOWER 3 BITS             [F]      CPA DB7       STATUS REQUEST?              [F]      JMP ERR.1     YES, STATUS IN (B)           [F]      STA XABS      NO                           [F]      LDA DB110     ISSUE CLEAR                  [F]      JSB XCMND       COMMAND                    [F]      LDA XABS                                   [F]      ISZ MTD       INCREMENT RETURN POINT (P+2) [F]      ADA XBASE     LOOK UP PROCESSOR IN TABLE   [F]      JMP 0,I       CALL PROCESSOR               [F]*                                                                [F]XBASE DEF *+1,I     COMMAND PROCESSOR ENTRY      [F]      DEF XREAD       POINT TABLE                [F]      DEF XWRTE                                  [F]      DEF XWEOF                                  [F]      DEF XREW                                   [F]      DEF XPOS                                   [F]      DEF XRES                                   [F]      DEF XGAP                                   [F]      SPC 3                                      [F]XRES  LDA DB105     REWIND/STANDBY COMMAND       [F]      CCE,RSS                                    [F]XREW  LDA DB101     REWIND COMMAND               [F]      CCE                                        [F]      JSB XCMND     INITIATE COMMAND EXECUTION   [F]      JSB XSTIN     GET STATUS                   [F]      JMP XIT1                                   [F]*                                                                [F]** TAPE POSITIONING ROUTINE  **                                  [F]*                                                                [F]* ENTER WITH COMMANDS STORED IN BUFA AND BUFL                    [F]*                                                                [F]XPOS  LDB BUFL      GET FILE COUNT               [F]      LDA DB200                                  [F]      JSB XABS      SET FLAGS, COMMANDS AND COUNT[F]      JMP XP.1      # FILES = 0, DO RECORDS      [F]XP.5  CCA,SEZ,CCE,RSS  BACKWARDS MOTION?         [F]      JSB XP.2      YES, GO CHECK FOR "BOT"      [F]      JSB XSPCE     FORWARD SPACE                [F]      JMP XP.5      REPEAT UNTIL FILE            [F]      ISZ XCNTR     FINISHED?                    [F]      JMP XP.5      NO, LOOP                     [F]      LDA BUFL                                   [F]      RAL,CLE,SLA,ELA  BACKFILE REQUEST?         [F]      ISZ BUFA                                   [F]      SLA,ARS       SKIP                         [F]      JMP XIT                                    [F]XP.1  LDB BUFA      PROCESS RECORDS              [F]      CLA                                        [F]      JSB XABS      SET FOR FWD/REV RECORD SPACE [F]      JMP XIT       NO RECORDS, EXIT             [F]XP.0  CCA,SEZ,CLE,RSS  BACKWARDS MOTION?         [F]      JSB XP.2      YES, GO CHECK FOR "BOT"      [F]      JSB XSPCE     FORWARD SPACE                [F]SL0   ALR           SELECT UNIT 0 COMMAND        [F]      ISZ XCNTR     FINISHED?                    [F]      JMP XP.0      NO, LOOP                     [F]*                                                                [F]XIT   ISZ MTD                                    [F]      JSB XSTIN     GO LOAD THE MT STATUS        [F]ERR.1 ISZ MTD                                    [F]XIT1  LDA BUFL                                   [F]XT.4  CLC CMND      CLEAR MT COMMAND CONTROL BIT [F]      JMP MTD,I                                  [F]      SPC 2                                      [F]XP.2  NOP                                        [F]      JSB XSTIN     GET STATUS                   [F]      RAL           SHIFT SOT BIT TO A15.        [F]      SSA,RSS       MT UNIT AT "SOT"?            [F]      JMP XP.2,I    NO, RETURN                   [F]      SEZ           YES, FILE SKIPPING?          [F]      ISZ XCNTR     CNT=-1?                      [F]      JMP XIT1      NO, TRIED TO CROSS SOT       [F]      JMP XP.1      YES, DO RECORD SPACING       [F]      SPC 2                                      [F]XABS  NOP           SET-UP ROUTINE               [F]      SSB,RSS                                    [F]      ADA D.3       FORWARD SPACE COMMAND        [F]      SSB           IF # IS < 0 SET FOR          [F]      ADA DB41        BACKSPACE COMMAND          [F]      STA XWNEC                                  [F]      CLE,SSB,RSS   GET -ABS(#) FOR CNT          [F]      CMB,CCE,INB,SZB IS THE MT TO BE MOVED?     [F]      ISZ XABS      YES, EXIT TO (P+2)           [F]      STB XCNTR                                  [F]      JMP XABS,I                                 [F]XSPCE NOP                                        [F]      CLE,SSA       IS TAPE MOTION BACKWARDS     [F]      JSB XEOTC                                  [F]      LDA XWNEC                                  [F]      JSB XCMND     SPACE                        [F]      RAL,SLA       EOF MARK?                    [F]      ISZ XSPCE     YES                          [F]      CCE,SSA       NO, IS THE TAPE AT SOT?      [F]      JMP XIT1      YES                          [F]      JMP XSPCE,I   NO                           [F]      SPC 2                                      [F]XSTIN NOP           GET TAPE STATUS              [F]XS.1  LIA CMND                                   [F]      LDB 0         (B)= STATUS                  [F]      ALF,ALF       (A)= STATUS SHIFTED 8 BITS   [F]      JMP XSTIN,I                                [F]*                                                                [F]**  WRITE 4" BLANK TAPE  **                                      [F]*                                                                [F]XGAP  JSB XWNEC     CHECK FOR WRITE RING         [F]      JSB XEOTC     CHECK FOR END OF TAPE        [F]      LDA DB15      COMMAND                      [F]      JSB XCMND                                  [F]      JMP XIT                                    [F]*                                                                [F]**  WRITE END OF FILE  **                                        [F]*                                                                [F]XWEOR LDA DB41      BACKSPACE RECORD COMMAND     [F]      JSB XCMND     EXECUTE COMMAND              [F]      JMP RWEOF                                  [F]XWEOF JSB XWNEC     CHECK FOR WRITE              [F]XT.12 CLF DATA                                   [F]RWEOF LDA DB215     WRITE FILE MARK CODE         [F]      JSB XCMND                                  [F]      RBR,SLB,RBL   PARITY OR TIMING ERROR OCCUR?[F]      JMP XWEOR     YES, GO BACKSPACE            [F]      JSB XEOTC                                  [F]      JMP XIT                                    [F]      SPC 2                                      [F]XWRTE JSB XWNEC     CHECK FOR WRITE ENABLED      [F]      JSB XEOTC     CHECK FOR END OF TAPE        [F]      JSB XCNTR     GET NEG # WORDS              [F]      ADA DM1       ADD 1 FOR RECORD LENGTH      [F]      STA XWNEC     SAVE WORD COUNT              [F]      LDA DB31      WRITE RECORD COMMAND         [F]      JSB XCMND     GO INITIATE WRITE SEQUENCE   [F]XT.9  STC DATA,C    INITIALIZE DATA CHANNEL      [F]      ADB BUFA      BUFFER ADDRESS - 1           [F]      LDA BUFL      FIRST WRITTEN WORD IS BUFL   [F]XOUT  INB           STEP BUFFER POINTER          [F]XT.20 SFC CMND                                   [F]      JMP XT.5                                   [F]XT.2  SFS DATA      WAIT FOR                     [F]      JMP XT.20       DATA FLAG                  [F]XT.3  OTA DATA,C    WRITE RECORD HEADER WORD     [F]      LDA 1,I       GET NEXT WORD                [F]      ISZ XWNEC     DONE                         [F]      JMP XOUT      NO, LOOP                     [F]XT.5  CLC DATA      INITIATE END RECORD SEQUENCE [F]XT.10 SFS CMND      WRITE COMPLETE?              [F]      JMP XT.10     NO, CONTINUE                 [F]      JSB XSTIN     YES, GET STATUS              [F]      RBR,SLB       PARITY OR TIMING ERROR?      [F]      CLE,RSS       YES                          [F]      JMP XIT       NO                           [F]      LDA DB41      BACKSPACE                    [F]      JSB XCMND                                  [F]      LDA DB15      GAP                          [F]      JSB XCMND                                  [F]      JMP XEOTC+1   RETRY                        [F]      SPC 2                                      [F]XREAD JSB XEOTC     READ                         [F]      LDA DM3       SET RETRY                    [F]      STA XSPCE       COUNTER TO -3              [F]      JSB XCNTR     GET NEG # OF WORDS           [F]      STA XCNTR                                  [F]XRERD CCA,CCE                                    [F]      ADA BUFA      BUFFER ADDRESS - 1           [F]      STA XWNEC                                  [F]      CLA           INITIALIZE RECORD            [F]      STA XABS        LENGTH COUNTER             [F]      LDA DB23      READ CHARACTERS CODE         [F]      JSB XCMND     INITIATE READ RECORD SEQUENCE[F]XT.11 STC DATA,C    INITIALIZE DATA CHANNEL      [F]      LDB XCNTR     LOAD NEG WORD COUNT          [F]      JSB XWAIT     WAIT FOR 1ST WORD            [F]      STA XABS      SAVE RECORD LENGTH           [F]      JSB XWAIT     WAIT FOR NEXT WORD OR EOR    [F]      ISZ XWNEC     STEP BUFFER POINTER          [F]MTVLQ STA XWNEC,I   *** THIS WORD CHANGED ***    [F]      INB,SZB,RSS   END OF BUFFER?               [F]      RSS           END OF BUFFER OR NO COMPARE. [F]      JMP XLOOP                                  [F]      SZB           END OF BUFFER                [F]      JMP MTDER     NO, NO COMPARE               [F]XT.50 CLC DATA      YES, START EOR SEQUENCE      [F]XT.8  SFS CMND      READ FUNCTION COMPLETE?      [F]      JMP XT.8      NO                           [F]      JSB XSTIN     YES, RESTORE STATUS          [F]      SSA           WAN AN "EOF" READ?           [F]      JMP XIT1      YES, RETURN TO (P+2)         [F]      RBR,SLB,RBL   PARITY OR TIMING ERROR       [F]      RSS           YES                          [F]      JMP XENDR     NO                           [F]NOISE ISZ XSPCE     HAVE WE TRIED 3 TIMES?       [F]      CLE,RSS       NO                           [F]      JMP XSHRT     YES                          [F]      LDA DB41      BACKSPACE                    [F]      JSB XCMND                                  [F]      JMP XRERD     TRY AGAIN                    [F]XSHRT LDA BUFA      RECORD                       [F]      CMA,INA                                    [F]      ADA XWNEC       < 5                        [F]      ADA DM5                                    [F]      SSA               WORDS?                   [F]      JMP XREAD     YES                          [F]      JMP ERR.1     NO                           [F]*                                                                [F]**  RECORD < BUFFER LENGTH, GET TAPE LENGTH IN USER'S BUFFER  ** [F]*                                                                [F]XENDR LDA XABS      GET TAPE RECORD LENGTH       [F]      SZA,RSS       IS LENGTH 0?                 [F]      JMP NOISE     YES, ASSUME TAPE NOISE       [F]      LDB BUFL      GET USER BUFFER LENGTH       [F]      STB BUFA      SAVE USER REUQEST            [F]      SSA                                        [F]      JMP XEND2                                  [F]      SSB                                        [F]      ARS                                        [F]      JMP XEND1                                  [F]*                                                                [F]XEND2 SSB,RSS                                    [F]      ALS                                        [F]      CMA,INA                                    [F]XEND1 STA BUFL      SAVE TAPE LENGTH FOR USER    [F]      SSB,RSS       USER LENGTH IN CHARS?        [F]      CMB,INB       YES                          [F]      ADA 1         NO                           [F]      CMB,INB                                    [F]      SSA,RSS       RECORD LENGTH > USER REQUEST?[F]      STB BUFL      YES, STORE USER REQUEST LENGT[F]      LDA BUFL                                   [F]      LDB BUFA      GET ORIGINAL REQUEST         [F]      SSB           USER REQUEST FOR WORDS?      [F]      CMA,INA       YES, NEGATE ACTUAL LENGTH    [F]      STA BUFL      NO                           [F]      JMP XIT       CONTINUE READ PROCESSING     [F]      SPC 2                                      [F]XWAIT NOP                                        [F]XLOOP SFC CMND      END-OF-RECORD?               [F]      JMP XT.50     YES                          [F]XT.46 SFS DATA      NO, NEXT WORD READY?         [F]      JMP XLOOP     NO                           [F]XT.43 LIA DATA,C    YES, LOAD DATA WORD          [F]      JMP XWAIT,I                                [F]      SPC 2                                      [F]XCNTR NOP                                        [F]      LDA BUFL      USER'S BUFFER LENGTH         [F]      CCE,SSA       WORDS?                       [F]      JMP XCNTR,I   YES                          [F]      CMA,INA,SZA,RSS NO, CHARACTERS             [F]      JMP XIT       DONE IF REQUEST=0            [F]      ARS                                        [F]      JMP XCNTR,I                                [F]      SPC 2                                      [F]XWNEC NOP                                        [F]      JSB XSTIN     GET STATUS                   [F]      RAR,SLA       UNIT READY?                  [F]      JMP XS.1      NO                           [F]      RBR,CLE,RBR   YES                          [F]      SLB,RSS       WRITE ENABLED?               [F]      JMP XWNEC,I   YES                          [F]      LDA D.19      NO                           [F]      LDB WNEA      OUTPUT                       [F]      JSB TT35I,I     MESSAGE                    [F]      HLT 33B       HALT                         [F]      JSB XATCK     CHECK FOR AUTO               [F]      JMP XWNEC+1                                [F]      SPC 2                                      [F]XCMND NOP                                        [F]XT.14 OTA CMND      OUTPUT COMMAND               [F]XS.0  LIB CMND      LOAD STATUS WORD             [F]      RBR,RBR                                    [F]      RBR,SLB       REQUEST REJECTED             [F]      JMP REJCT     YES                          [F]XT.7  STC CMND,C    NO, INITIATE EXECUTION       [F]      CCB,SEZ,CLE   READ OR WRITE?               [F]      JMP XCMND,I   YES, RETURN                  [F]XT.15 SFS CMND                                   [F]      JMP XT.15                                  [F]      JSB XSTIN     GET STATUS                   [F]      JMP XCMND,I                                [F]*                                                                [F]**  CHECK FOR TAPE UNIT IN AUTO  **                              [F]*                                                                [F]XATCK NOP                                        [F]      JSB XSTIN     GET STATUS                   [F]      CLE,SLB,RSS   UNIT IN AUTO?                [F]      JMP XATCK,I   YES                          [F]      LDA D.25      OUTPUT                       [F]      LDB MTLMA                                  [F]      JSB TT35I,I     MESSAGE                    [F]      HLT 44B       HALT                         [F]      JMP XATCK+1                                [F]      SPC 2                                      [F]REJCT LDB DB110     LOAD CLEAR COMMAND           [F]O.B   OTB CMND      OUTPUT IT                    [F]XT.6  STC CMND,C    INITIATE IT                  [F]XT.0  SFS CMND      COMPLETED?                   [F]      JMP XT.0      NO                           [F]      JMP XT.14     YES                          [F]      SPC 2                                      [F]XEOTC NOP                                        [F]      JSB XSTIN     GET STATUS                   [F]      ALF,CLE,RAR   SHIFT "EOT" TO A0            [F]      SLA           AT "EOT"                     [F]      JMP XIT1      YES                          [F]      JMP XEOTC,I   NO                           [F]