      ISZ REC    ALL DONE?
      JMP DMAC2   NOPE
      LDB TM11
      CLA 
      JSB CKJP,I   LOOP ENTIRE REST 
      JMP DMACK,I 
* 
* 
* 
*   DMA READ/WRITE REOUTINE 
*  E=1 FOR READ---=0 FOR WRITE
*   A-REG HAS CMD 
*   B-REG HAS BUFFER ADDRESS
*  WCC HAS WROD COUNT 
IODMA  NOP       START DMA  AND CHECK AT END
      CLC DMAL
      RBL,ERB   BUFF. ADD.--WITH READ/WRITE BIT 
      OTB DMAL
      STC DMAL
      LDB WCC    WROD COUNT 
      OTB DMAL
      LDB DMA1   SET UP CHAN. ASSIGNMENT
      OTB DMAH
      JSB OUTC   OUTPUT COMMAND 
      STC DMAH,C
      JSB CWTAD,I  WITH FOR EADY FLAG 
      SFC DMAH   DMA FLAG SHOULD BE HIGH
      CLA 
      CLC DMAH,C
      LDB TM7 
      JSB CKJP,I
      LIA DMAL     WORD COUNT SHOULD BE ZERO
      LDB TM7 
      JSB CKJP,I
      JMP IODMA,I 
* 
* 
* 
* 
* 
******   SHORT TESTS FOR HARDWARE DEBUGGING  :::::
* 
* 
*   SELECT A UNIT 
* 
*   STARTING ADDRESS=110
* 
*   SW    UNIT
*    0     0
*    1     1
*    2     2
*    3     3
* 
* 
SELT  EQU * 
      LIA SW
      AND P17 
      CCE,SZA,RSS 
      JMP *-3 
      ELA 
      ALF,ALF 
      STA SLN 
      JSB OUTC
      JSB GETUN 
      STA DGL1+6
      LDB DGSE
      LDA P7
      JSB TYPE,I
      HLT 20B 
      JMP SELT
* 
* 
* 
*    CHECK THE DENSITY SETTING
* 
*   STARTING ADDRESS=111
*   PRINTOUT IS*
*   DENSITY = N 
*   WHERE N=1 FOR 200 
*         N=2  FOR 556
*       N=3   FOR 800 
* 
* 
* 
CKDEN   EQU * 
      LDA SLN 
      JSB OUTC
      JSB STATS 
      ALF,RAL 
      AND P3
      XOR BLKZR 
      STA DM23+6
      LDA P14 
      LDB DM23
      JSB TYPE,I
      HLT 21B 
      JMP CKDEN 
DM23  DEF *+1 
      ASC 5,DENSITY = 
      BSS 1 
* 
* 
* 
* 
*   SET UP MODE 
*   SET SWITCH 0 FOR ODD PARITY 
* RESET    "  "      EVEN ARITY 
* 
*   STARTING ADDRESS=112
* 
* 
* 
MDSWT  EQU *
      LDA CMDN1+1 
      STA TMP1
      LDA CMDN1 
      STA TMP2
      LDA TMP1,I
      LIB SW
      CMB 
      ERB 
      ELA,RAR 
      STA TMP1,I
      ISZ TMP1
      ISZ TMP2
      JMP *-8 
      LIA SW
      AND P1
      RAL 
      STA PCKA
      LDB BLKZR 
      SZA 
      INB 
      STB DGL1+9
      LDB DGSP
      LDA P7
      JSB TYPE,I
      HLT 22B 
      JMP MDSWT 
* 
* 
* 
* 
*  THIS PROGRAM OUTPUTS THE COMMAND IN
*    THE SWITCH REGISTER
*   OPTIONALLY IT DELAYS A SPECIFIED
*    AMUNT OF TIME OR WAITS FOR 
*    COMMAND FLAG 
*   IT OPTIONALLY CLEARS CONTROLLER 
*     IT HALTS IF SWTICH 12 IS SET
* 
*   STARTING ADDRESS=113
* 
* 
OUTSW  EQU *
     LDA P600 
      STA HLTN
      LDA SLN 
      STA ERFLG 
      JSB OUTC
      LIB SW
      BLF,BLF 
      CMB,INB 
      STB TMP1
      HLT 1 
OTSW1  LDB TMP1 
      LIA SW
      AND OTMSK 
      JSB OUTC
      LIA SW
      RAL,RAL 
      SSA 
      JMP *+4 
      INB,SZB 
      JMP *-1 
      JMP *+3 
C24   SFS CMND
      JMP *-8 
      SLA 
       JMP *+4
      LDA CLR 
      JSB OUTC
      JSB CWTAD,I 
      LIA SW
      ALF,SLA 
      RSS 
      JMP OTSW1 
      HLT 23B 
      JMP OUTSW 
OTMSK  OCT 100377 
* 
* 
* 
* 
*  WRITE INFINITE LENGTH RECORD 
*   DATA PATTER IS IN SW REG. 
* 
*   HALT WHEN 15 SET(UNLESS 15
*   IS PART OF BIT PATTERN--THEN
*   HLAT WITH 15 RESET
* 
*   STARTING ADDRESS=114
* 
* 
RWRT   EQU *
      LDA SLN 
      STA ERFLG 
      JSB OUTC
      LIB SW
      STB TMP1
RWR1  JSB EOTRW 
      LDA P601
      STA HLTN
       LDA WRO
      JSB OUTC
      JSB DWTJ,I
      LIB SW
D41   OTB DATA,C
      LDA TMP1
      XOR B 
      SSA,RSS 
      JMP D41-2 
      LDA CLR 
      JSB OUTC
      HLT 24B 
      JMP RWRT
* 
* 
* 
* 
* 
* 
*  WRITE ALTERNATE ONE WORD RECORDS 
*   OF 1'S AND 0'S
*   BINARY MODE ONLY
*   SWITCH 15 HALTS TESTS 
* 
*   STARTING ADDRESS=115
* 
* 
* 
ONZR   EQU *
      LDA P604
      STA HLTN
      LDA WRO 
      STA ERFLG 
      STA SAVC
      ELA,CLE,ERA 
      STA WRO 
      LDA SLN 
      JSB OUTC
      CLB 
      JSB EOTRW 
      CCA 
       CMB
      JSB WRTAD,I 
      LIA SW
      SSA,RSS 
      JMP *-6 
      LDA SAVC
      STA WRO 
      HLT 25B 
      JMP ONZR
SAVC   NOP
* 
* 
* 
* 
*  USED TO ET UP MAG TAPE UNIT SKEW DELAYS, 
*    ACTUATOR TIMES, AND GENERAL OPERATION
* 
*  SET SR = TO DESIRED OPERATION
*   RESET SR TO STOP OPERATION
* 
*   SWITHC 0-10 JUST OUTPUTS THE COMMAND
*   DELAYS 100MS AT 37.5 IPS
* 
*   STARTING ADDRESS=116
* 
* 
*   SWITCH       OPERATION
*    0           WRITE
*     1          EOF
*    2           3 INCH GAP 
*    3           GAP AND EOF
*    4           READ 
*    5           FORWARD SPACE
*    6            BACKSPACE 
*    7            FORWARD SPACE FILE
*     8           BACKSPACE FILE
*     9           REWIND
*   10            REWIND/STANDBY
*    11           WRITE ALL 1'S AND READ BACK 
*    12            START-STOP FORWARD 
*    13            START-STOP REVERSE 
* 
* 
* 
SKWP   EQU *
      LDA SLN 
      STA ERFLG 
      JSB OUTC
      JSB EOTRW 
      LIA SW
      SZA 
      JMP *+4 
      LDA CLR 
      JSB WAIT
      JMP *-5 
      SSA,RSS 
      JMP *+3 
      HLT 17B 
      JMP SKWP
      LIA SW
      AND MSK2
      SZA,RSS 
      JMP SKP1
      STA B 
      LDA INSAD-1 
      STA INSAD 
      LDA INSAD,I 
      SLB,BRS 
      JMP GO
      ISZ INSAD 
       SZB
      JMP *-5 
      JMP SKWP
SKP1   EQU *
      LDA P605
      STA HLTN
      LIA SW
      ALF,RAR 
      SLA 
      JMP BKWD1 
      SSA 
      JMP FRWD1 
      LDA MI9 
      CCB 
      JSB WRTAD,I 
      LDA BSR 
      JSB OUTC
      JSB CWTAD,I 
      LDA P606
      STA HLTN
      LDA MI9 
      JSB REDAD,I 
      JMP SKWP
BKWD1  LDA BSR
      RSS 
FRWD1  LDA FSR
      JSB WAIT
      LDA CLR 
      JSB WAIT
      JMP SKWP
* 
* 
WAIT   NOP
      JSB OUTC
      LDA MS103 
      JSB DLYAD,I 
      JMP WAIT,I
GO    JSB WAIT
     JMP SKWP 
      DEF WRO 
INSAD   NOP 
* 
* 
* 
* 
* 
* 
*  SPECIAL CHECK FOR ODD,EVEN PARITY
* 
*   STARTING ADDRESS=117
* 
* 
SPCK1  EQU *
      LDA P620
      STA HLTN
      LDB TM12
      CLA 
      JSB CKJP,I
      LDA SLN 
      STA ERFLG 
      JSB OUTC
      LDA WRO 
      STA SPCHR+2 
      LDA RRO 
      ELA,CLE,ERA 
      STA COUNT 
      LDA WRO 
      IOR MSK15 
      JSB RDWRP 
      LDA WRO 
      ELA,CLE,ERA 
      JSB RDWRP 
      LDA SPCHR+2 
      STA WRO 
      LIA SW
      SLA,RSS 
      JMP SPCK1 
      HLT 26B 
      JMP SPCK1 
* 
* 
RDWRP   NOP 
      XOR MSK15 
      STA WRO 
      LDA MI24
      LDB CHAR1 
      JSB WRTAD,I 
      CLA 
      LDB TM3 
      JSB CKJP,I
      LDA BSR 
      JSB SKPRJ,I 
      LDA COUNT 
      XOR MSK15 
      STA COUNT 
      JSB DCMDJ,I 
      LDA TIM 
      XOR P2
      LDB TM4 
      JSB CKJP,I
      JMP RDWRP,I 
* 
* 
* 
* 
* 
* 
*  ODD CHAR CHECK FOR BCD MODE
*  WRITE A 9 WORD RECORD IN BINARY WITH ALL BITS SET
*   THIS WILL PLACE 27 CHARS. ON THE TAPE 
*    THEN READ THE DATA BACK IN BCD MODE
*   THE 14TH WORD SHOULD HAVE A ZERO IN THE LAST BYPE 
* 
*   STARTING ADDRESS=120
* 
* 
* 
* 
ODEVE  EQU *
      LDA P670
      STA HLTN
      CLA 
      LDB TM12
      JSB CKJP,I  SET UP LOOP CAPABILITY
      LDA SLN 
      STA ERFLG 
      JSB OUTC
      LDA WRO 
      STA SPCHR+2 
      LDA RRO 
      STA SAVOD 
       LDA WRO   MAKE WRITE COMMAND BINARY MODE 
      ELA,CLE,ERA 
      STA WRO 
      LDA MI9 
      CCB 
      JSB WRTAD,I 
      LDB TM3 
      CLA 
      JSB CKJP,I  HALT 672--WRITE CHECK 
      LDA BSR  BACKSPCE OVER RECORD 
      JSB SKPRJ,I  HALT 673 
      LDA RRO   MAKE READ COMAND BCD
      IOR MSK15 
      STA RRO 
      LDA WRO 
      IOR MSK15 
      STA WRO 
      CCB 
      LDA MI14
      JSB REDAD,I   READ WRECORD
      LDB ERRCT 
      LDA BADB,I
      CPA ODEVW   SHOULD HAVE ZERO IN LOW BITE
      CLB 
      STB ERRCT 
      LDB TM3 
      LDA P2
      JSB CKJP,I  HALT 674   READ CHECK 
      LDA SPCHR+2   NO SO RESTORE READ/WRTIE COMMANDS 
      STA WRO 
      LDA SAVOD 
      STA RRO 
      LIA SW
      SLA,RSS 
      JMP ODEVE 
      HLT 27B 
      JMP ODEVE 
SAVOD  BSS 1
ODEVW  OCT 37400
* 
STMES  ASC 20,WAITED TOO LONG TO MOVE OFF BOT MARKER  , 
LMESS   ASC 16,ALL UNITS SELECTED ARE OFF LINE
MESS2  ASC 9, REMOVE WRITE RING 
MESS3  ASC 9,REPLACE WRITE RING 
MESS4  ASC 16,POSSIBLE SEQUENCE ERROR--RESTART
STNM1  ASC 11,CBPTTMCRETLPFMFPOLTBRW
* 
* 
* 
*  TABLE OF TIMES FOR 2114/15 AT 75 IPS 
* 
T75T4  DEC -12
      DEC -38 
      DEC -88 
      DEC -111
      DEC -146      MS6+1 
      DEC -196
      DEC -251
      DEC -352      MS18
      DEC -792
      DEC -1057 
      DEC -1692 
      DEC -1938 
* 
* 
*  TABLE OF IMES FOR 2116 AT 75 IPS 
* 
T75T6  DEC -15
      DEC -48 
      DEC -110
      DEC -139
      DEC -183      MS6+1 
      DEC -245
      DEC -314
      DEC -440      MS18
      DEC -990
      DEC -1321 
      DEC -2116 
      DEC -2422 
* 
* 
*   TABLE OF TIMES FOR 2100 AT 75 IPS 
* 
T75T0   DEC -21 
      DEC -68 
      DEC -159
      DEC -201
      DEC -263      MS6+1 
      DEC -354
      DEC -452
      DEC -635      MS18
      DEC -1428 
      DEC -1904 
      DEC -3051 
      DEC -3493 
* 
* 
*   2114/15 TIMES FOR 45IPS 
* 
T45T4  DEC -19
      DEC -61 
      DEC -142
      DEC -178
      DEC -250      MS6+1 
      DEC -314
      DEC -403
      DEC -587      MS18
      DEC -1270 
      DEC -1693 
      DEC -2712 
      DEC -3105 
* 
* 
*  2116 TIMES FOR 45 IPS
* 
T45T6  DEC -24
      DEC -76 
      DEC -177
      DEC -223
      DEC -312      MS6+1 
      DEC -393
      DEC -504
      DEC -734      MS18
      DEC -1587 
      DEC -2117 
      DEC -3390 
      DEC -3882 
* 
* 
* 
*   TABLE OF 2100 TIMES FOR 45 IPS
* 
T45T0   DEC -34 
      DEC -109
      DEC -255
      DEC -322
      DEC -450      MS6+1 
      DEC -580
      DEC -726
      DEC -1058     MS18
      DEC -2288 
      DEC -3053 
      DEC -4890 
      DEC -5598 
* 
* 
* 
* 
* 
DTCHN DEF D1  ADDRESS OF DATA I/O INSTRUCTIONS
      DEF D2
      DEF D3
      DEF D4
      DEF D5
      DEF D6
      DEF D7
     DEF D8 
      DEF D9
      DEF D12 
         DEF D12.1
         DEF D12.2
         DEF D12.3
         DEF D12.4
         DEF D12.5
         DEF D12.6
      DEF D13 
      DEF D14 
      DEF D16 
      DEF D15 
      DEF D17 
      DEF D18 
      DEF D19 
      DEF D20 
      DEF D21 
      DEF D22 
      DEF D23 
      DEF D24 
      DEF D25 
      DEF D26 
      DEF D27 
      DEF D28 
      DEF D29 
      DEF D30 
      DEF D31 
      DEF D32 
      DEF D33 
      DEF D34 
      DEF D35 
      DEF D36 
      DEF D37 
      DEF D38 
      DEF D39 
      DEF DMA1
      DEF D41 
* 
* 
*   TABLE OF ADDRESS OF CMND I/O INSTRUCTIONS 
* 
CMCHN  DEF C1 
      DEF C2
      DEF C3
      DEF C4
      DEF C5
      DEF C6
      DEF C7
      DEF C8
      DEF C9
      DEF C10 
      DEF C11 
      DEF C12 
         DEF C12.1
      DEF C13 
      DEF C14 
      DEF C15 
      DEF C16 
      DEF C17 
      DEF C18 
      DEF C19 
      DEF C20 
      DEF C21 
      DEF C22 
      DEF C23 
      DEF C24 
      DEF C26 
      DEF C27 
      DEF C28 
      DEF C29 
      DEF C30 
      DEF C31 
      DEF C32 
      DEF C33 
LSTWD  DEF *+1
* 
* 
WORD   BSS 29 
      BSS 29
      BSS 29
SAVBB  BSS 29 
PARCT EQU * 
      NOP 
      NOP 
      LDA PB10F     IS BCD PARITY TEST BIT SET
      SZA,RSS       NO, DO NOT PERFORM THIS TEST
      JMP PARCT,I 
      LDA HLTC1     SET ERROR HALT CODE 
      STA HLTN
      LDA WROM      INITIALIZE WRITE COMMAND
      STA WRO       FOR BCD ODD PARITY
      LDA WRDC1     PICK UP WORD COUNT
      LDB BITP1     AND BIT PATTERN 
      JSB WRTAD,I   WRITE 1 RECORD IN BCD ODD 
      LDA RROM      INITILIZE READ COMMAND
      STA RRO       FOR BCD ODD 
      ISZ HLTN      BUMP HALT CODE
      NOP 
      LDA BSR       BACKSPACE OVER RECORD 
      IOR MODE1     JUST WRITTEN
      JSB SKPRJ,I 
      ISZ HLTN      BUMP HALT CODE
      NOP 
      LDA WRDC1     READ RECORD IN BCD ODD
      LDB BITP1     AND VERIFY NO PARITY ERROR
      JSB REDAD,I 
      CLA           CHECK DATA TO MAKE SURE 
      LDB CMPP1     IT WAS OK 
      ISZ HLTN
      NOP 
      JSB CKJP,I
      LDA BSR       BACKSPACE OVER RECORD 
      IOR MODE1 
      JSB SKPRJ,I 
      LDA RROM1     REREAD RECORD IN BCD EVEN 
      STA RRO       AND VERIFY THAT A PARITY
      LDA WRDC1     ERROR IS GENERATED
      LDB BITP1 
      JSB REDAD,I 
      ISZ HLTN
      NOP 
      LDA EXPP1 
      LDB CMPP1 
      JSB CKJP,I
      LDA WROS      PUT WRITE COMMAND BACK RIGHT
      STA WRO 
      LDA RROS      PUT READ  COMMAND BACK RIGHT
      STA RRO 
      JMP PARCT,I   EXIT BCD ODD CHECK
PB10F NOP           EXECUTE FLAG
WROM  OCT 140301    BCD ODD WRITE COMMAND 
WROS  OCT 301       BINARY ODD WRITE COMMAND
WRDC1 OCT 100       WORD COUNT FOR WRITE
BITP1 OCT 25425     BIT PATTERN TO SEND 
RROM  OCT 140203    BCD ODD READ COMMAND
RROS  OCT 203       BINARY ODD READ COMMAND 
HLTC1 OCT 700       INITIAL HALT VALUE
MODE1 OCT 140000    MASK VALUE FOR BCD ODD BSR
EXPP1 OCT 2         EXPECTED PARITY ERROR 
CMPP1 OCT 6         STATUS MASK 
RROM1 OCT 100203    BCD EVEN READ COMMAND 
      END 
                                                                                                                        