D0CMP JSB D0CSF     WAIT FOR COMPLETION 
      JSB D0ST      GO CHECK STATUS 
      JMP D0RW,I
      LDA D0RW      BACK UP POINTER 
      ADA DLM2
      STA D0RW
      JMP D0RW+3    ERROR TRY AGAIN 
* 
D0SK  NOP 
      LDA DLSA      GET CYLINDER
D0D04 OTA DC        CYLINDER 0
D0D05 STC DC,C
      LDA D0SKC     SEEK COMMAND
D0C07 OTA CC
D0C08 STC CC,C
      JSB D0DSF     WAIT FOR COMPLETION 
      LDB DLSB      GET HEAD SECTOR 
D0D07 OTB DC        HEAD/SECTOR 
D0D08 STC DC,C
      JSB D0CSF 
      JSB D0ST      CHECK IF OK 
      JMP D0SK,I
      JMP D0SK+1    ERROR TRY AGAIN 
* 
      SKP 
D0ST  NOP 
      STF DMA6      TURN OFF DMA
      LDA D0B5      GET COUNT FOR STATUS
D0D09 CLC DC
D0C10 CLC CC
      ADA DLM1      DECREMENT DRIVE 
D0C11 OTA CC
D0C12 STC CC,C
      JSB D0DSF 
      SZA           DONE ALL? 
      JMP D0D09     NO
D0D11 LIA DC
      SLA,RSS       ANY ERRORS
      JMP D0D12 
      RAL           FIRST STATUS
      SSA 
      JMP D0D12     YES 
      HLT 45B        DISC ERROR TRY AGAIN 
      ISZ D0ST      RETURN WITH ERROR 
D0D12 CLC DC
D0C13 CLC CC
      LDA DLSA      RESTORE A 
      LDB DLSB          AND B 
      INB           MOVE TO NEXT SECTOR 
      CPB D0HS0     END OF TRACK? 
      LDB D0HS.     YES SET FOR OPPSITE HEAD
      CPB D0HS1     DONE WITH OPPSITE?
      CLB           YES START ALL OVER
      SZB,RSS       DID I START OVER? 
      INA 
      JMP D0ST,I    RETURN
* 
D0DSF NOP 
      CLB 
D0D06 SFS DC        WAIT FOR DATA CHANNEL 
      RSS 
      JMP D0DSF,I   OK RETURN 
      INB,SZB       TIMED OUT 
      JMP *-4       NO
      HLT 44B 
      JMP *-1 
* 
D0CSF NOP 
      CLB 
D0C03 SFS CC        WAIT FOR COMMAND CHANNEL
      RSS 
      JMP D0CSF,I 
      INB,SZB       TIMED OUT 
      JMP *-4       NO
      HLT 44B       YES TELL OPERATOR 
      JMP *-1       (NOT RECOVERABLE) 
      SKP 
D0B5  OCT 5 
D0HS0 OCT 30        END OF TRACK SECTOR 24
D0HS. OCT 400       START OF NEXT TRACK FOR THAT CYLINDER 
D0HS1 OCT 430       END OF NEXT TRACK SECTOR 24 
D0SKC OCT 30000     SEEK COMMAND
D0RC  OCT 20000     READ COMMAND
D0WC  OCT 111000    WRITE COMMAND 
D0CW1 OCT 120000    DMA CONTROL WORD + SC 
* 
D0RWD DEF D0RW      7900 DRIVER POINTER 
D0RIO DEF *+1 
      DEF D0D01 
      DEF D0D02 
      DEF D0D03 
      DEF D0D04 
      DEF D0D05 
      DEF D0D06 
      DEF D0D07 
      DEF D0D08 
      DEF D0D09 
      DEF D0D11 
      DEF D0D12 
      DEF D0CW1 
      DEC -2
      DEF D0C01 
      DEF D0C02 
      DEF D0C03 
      DEF D0C04 
      DEF D0C05 
      DEF D0C07 
      DEF D0C08 
      DEF D0C10 
      DEF D0C11 
      DEF D0C12 
      DEF D0C13 
      DEC -1
      SKP 
D5RW  NOP 
      STA DLSA      SAVE CYLINDER 
      STB DLSB         AND HEAD SECTOR
      JSB D5SK      GIVE SEEK 
      LDA D5CW1     GIVE DMA THE SELECT CODE
      OTA DMA6
      CLC DMA2
      LDA D5RW,I    BUFFER ADDRESS
      ISZ D5RW
      OTA DMA2
      STC DMA2
      LDB D5RW,I    BUFFER COUNT
      ISZ D5RW
      OTB DMA2
      SSA           READ OR WRITE?
      JMP D5R       IT'S A READ 
D5S01 CLC SC        SET TO OUTPUT COMMAND 
      LDA D5WC      GET WRITE COMMAND 
D5S02 OTA SC,C
      JMP D5CMP     GO WAIT FOR COMPLETION
D5R   LDA D5RC      GET READ COMMSND
D5S03 CLC SC        SET TO OUTPUT READ COMMAND
D5S04 OTA SC,C
D5CMP STC DMA6,C    START DMA TRANSFER
      JSB D5CSF     WAIT FOR COMPLETION 
      JSB D5ST      GO CHECK STATUS 
      JMP D5RW,I
      LDA D5RW      BACK UP POINTER 
      ADA M2
      STA D5RW
      JMP D5RW+3    ERROR TRY AGAIN 
      SKP 
D5SK  NOP 
      JSB D5ST      CHECK STATUS FIRST
      LDA D5SKC     GET SEEK COMMAND
D5S05 CLC SC        SET TO OUTPUT COMMAND 
D5S06 OTA SC,C
      JSB D5CSF     WAIT FOR ACCEPTANCE 
      LDA DLSA      GET CYLINDER
D5S07 OTA SC,C
      JSB D5CSF     WAIT FOR COMPLETION 
      LDB DLSB      GET HEAD SECTOR 
D5S08 OTB SC,C      HEAD/SECTOR 
      STC SC        START OPERATION 
      JSB D5CSF     WAIT FOR IT 
      JSB D5ST      CHECK IF OK 
      JMP D5SK,I
      JMP D5SK+1    ERROR TRY AGAIN 
* 
D5ST  NOP 
      STF DMA6      TURN OFF DMA
      LDA D5STR     GET STATUS REQUEST COMMAND
D5S09 CLC SC        SET TO OUTOUT COMMAND 
D5S10 OTA SC,C
      JSB D5CSF     WAIT FOR IT 
D5S11 LIA SC,C      GET FIRST WORD
      JSB D5CSF     WAIT FOR NEXT 
D5S12 LIB SC,C      GET SECOND WORD 
      ALF,ALF 
      AND D5B37 
      SZA           ANY ERRORS
      CPA D5B37 
      JMP D5STE     NO EXIT 
      HLT 45B       D5SC ERROR  TRY AGAIN?
      ISZ D5ST      RETURN WITH ERROR 
D5STE LDA D5FM      SET FILE MASK 
D5S13 CLC SC
D5S14 OTA SC,C
      JSB D5CSF     WAIT FOR IT 
      LDA DLSA      RESTORE A 
      LDB DLSB          AND B 
      INB           MOVE TO NEXT SECTOR 
      CPB D5HS0     DONE WITH THIS TRACK? 
      CLB           YES 
      SZB,RSS       INCREMENT CYLINDER? 
      INA           YES 
      JMP D5ST,I    RETURN
* 
D5CSF NOP 
      CLB 
D5S15 SFS SC        WAIT FOR COMPLETION 
      RSS 
      JMP D5CSF,I 
      INB,SZB       TIMED OUT 
      JMP *-4       NO
      HLT 44B       YES TELL OPERATOR 
      JMP *-1       NOT RECOVERABLE 
      SKP 
D5HS0 OCT 60        LAST SECTOR FOR CYLINDER (48) 
D5STR OCT 1400      STATUS REQUEST COMMAND
D5FM  OCT 7700      SET FILE MASK 
D5B37 OCT 37
D5WC  OCT 005400    WRITE (+INITIALIZE+PROTECT) 
D5CW1 OCT 000000    DMA CONTROL WORD + SC 
D5RC  OCT 02400     READ COMMAND
D5SKC OCT 01000     SEEK COMMAND
D5RWD DEF D5RW      7905 DRIVER POINTER 
D5RIO DEF *+1 
      DEC -2        MOVE SELECT CODE UP ONE 
      DEF D5S01 
      DEF D5S02 
      DEF D5S03 
      DEF D5S04 
      DEF D5S05 
      DEF D5S06 
      DEF D5S07 
      DEF D5S08 
      DEF D5S08+1 
      DEF D5S09 
      DEF D5S10 
      DEF D5S11 
      DEF D5S12 
      DEF D5S13 
      DEF D5S14 
      DEF D5S15 
      DEF D5CW1 
      DEC -1
DLMXA DEF DLLDS 
DLLDE EQU * 
      SKP 
*         DISC INITIALIZE ROUTINE 
* 
* 
DC    EQU 10B 
CC    EQU DC+1
* 
DI    EQU * 
* 
      CLC INTP,C    CLEAR ALL I/O 
      LDA CODSC     INSURE THERE IS A CONSOLE DEVICE
      SZA,RSS 
      HLT 10B       NO - TELL OPERATOR
      LDA *-1       BUILD HALT 77 FOR BOOT
      IOR B77 
      STA DLRR+3
      LDA DIJ6      SET TO ALLOW CONFIG 
      STA DI5.      ONLY ONCE 
      CLA 
      JSB COD,I     DO CR-LF
      JSB MSG       OUTPUT TITLE (HEADER) 
      DEF DIMHD,I   (NO INPUT)
      CLA 
      STA DISC      CLEAR DISC SELECT CODE
      JSB COD,I     DO CR/LF
DI0   JSB MSG       ASK FOR TYPE AND SELECT CODE
      DEF DIMTS 
      JSB CNTS      SEARCH FOR MODULE NUMBER
      DEF DISCT 
      JMP DI0       NOT FOUND ASK AGAIN 
      STA TYPE      SAVE TYPE 
      CPA B7        IS IT A VERIFY? 
      JMP DI2       YES - MOVE TO INPUT DEVICE
      LDB D0RIO     7900 I/O INST LIST
      SLA           7900/7905?
      LDB D5RIO     7905 I/O INST LIST
      STB DLSCL 
      LDB RSS       7900 DISC BOOT
      SLA           7900/7905?
      CLB           7905 DISC BOOT
      STB DRB05 
      STB ISCF
      LDB D0RWD     7900 DISC DRIVER
      SLA           7900/7905?
      LDB D5RWD     7905 DISC DRIVER
      STB DLRW
      LDB DI203     7900 MAX CYLINDER 
      SLA           7900/7905?
      LDB DI411     7905 MAX CYLINDER 
      STB DIMXC 
      SKP 
      JSB CVSC      GET SELECT CODE 
      JMP DI0       NOT GOOD TRY AGAIN
      STA ISCT      SAVE SC FOR UPDATE
      STA DISC      SAVE FOR CHECK
      LDB DLSCL 
      JSB ISC       UPDATE SELECT CODE
      CLA           READ CYLINDER 0 
      CLB             H/S 0 
      JSB DLRW,I      READ IT 
      DEF DIBF,I
      DEC -128
      LDA DIBF+100B SAVE PARAMETERS 
      STA 2111B       FOR DOS IIIB
      LDA DIBF+101B 
      STA 2112B 
      LDA DIBF+102B 
      STA 2113B 
      LDA DIBF+177B 
      STA 2210B 
      LDA DIBF+2    SAVE SYS GEN CODE 
      STA 2013B 
      LDA DIBF+3    SAVE LABEL
      STA 2014B 
      LDA DIBF+4
      STA 2015B 
      LDA DIBF+5
      STA 2016B 
      SKP 
DI1   CLA 
      JSB COD,I     DO A CR/LF
      JSB MSG       ASK FOR FIRST, LAST CYLINDERS 
      DEF DIMCY 
      CLA,CLE 
      LDB IBUFD 
      JSB AS2N,I    CONVERT FIRST CYLINDER
      STA DIFC      SAVE IT 
      LDA B,I       CHECK NEXT CHARACTER
      SEZ,RSS        IS A COMMA 
      ALF,ALF 
      AND B177
      CPA COMMA     ? 
RSS   RSS 
      JMP DI1       INPUT ERROR 
      ELB 
      INB           MOVE PAST COMMA 
      ERB 
      CLA 
      JSB AS2N,I    CONVERT LAST CYLINDER 
      STA DILC      SAVE IT 
      LDA B,I       CHECK NEXT CHARACTER
      SEZ,RSS         IS ZERO 
      ALF,ALF 
      AND B177
      SZA 
      JMP DI1       NO - INPUT ERROR
      LDA DILC      CHECK FIRST < LAST
      CMA,INA 
      ADA DIFC
      SSA,RSS       ? 
      JMP DI1       NO - ERROR
      LDA DILC      CHECK IF LAST IS OVER 202 TRACKS
      ADA DIMXC 
      SSA,RSS 
      JMP DI1       YES 
      LDA DIFC
      INA 
      STA DRBCY     UPDATE BOOT 
      STA DICY      SAVE IT 
      STA DLCY      LOADER
      CLA 
      STA DIHS
      STA DLHS
      CLA           BUILD CHECKSUM
      LDB DRBSD 
      ELB,CLE,ERB 
      ADA B,I 
      INB 
      CPB DIAD      DONE? 
      RSS           YES 
      JMP *-4 
      STA DRBCS 
      SKP 
      CLA           WRITE CONFIG. BOOT
      CLB 
      JSB DLRW,I
D2011 OCT 2011
      DEC -128
      LDA DIBF+1
      CPA 2012B     IS THIS A DISC WITH DIAG. BOOT
      RSS 
      JMP *+7       NO
      LDA DIBF+176B YES GET OLD BOOT
      ADA M1
      LDB DRBSX 
      JSB DLRW,I
      DEF DIBF,I
      DEC -128
      LDA DRBCY     GET CYLINDER
      ADA M1
      LDB DRBSX     HEAD 0 SECTOR 15
      JSB DLRW,I      WRITE BOOT
      DEF DIBF
      DEC -128
      LDA DRBCY     SWAP BOOTS AGAIN
      ADA M1
      LDB DRBSX 
      INB 
      JSB DLRW,I      WRITE LOADER
      OCT 2211
      ABS 2211B-DLLDE 
* 
      SKP 
DI2   EQU * 
      CLA           DO CR-LF
      JSB COD,I 
      JSB MSG       "DIAG. INPUT DEVICE + SC.." 
      DEF DINDM 
      JSB CNTS       SEARCH FOR DEVICE
      DEF DINDT 
      JMP *-4       NOT FOUND 
      STA TMP0
      JSB CVSC      CONVERT SELECT CODE 
      JMP *-7 
      STA .SC        SAVE FOR MOVE
      CPA DISC      IS THIS DISC? 
      JMP DI2+2     YES NOT ALLOWED 
      LDB TMP0
      BLF 
      RBL,RBL 
      IOR B 
      STA DILSC       PUT TYPE & SC IN BASE PAGE
      LDA TMP0
      ADA DINDD 
      LDA A,I 
      LDB DILDV 
      JSB MVDVR      MOVE LOADER INTO POSITION
      ABS LDVR-5767B REQUIRED COUNT FOR MOVE
DI3   CLA           DO CR-LF
      JSB COD,I 
      JSB MSG       READY INPUT DEVICE
      DEF LDVRY,I   (NO INPUT)
      CLA,INA 
      JSB CID,I     REQUEST CR ONLY 
      LDB M3        REWIND DEVICE 
      JSB DILDV,I 
DI4   CCA           WRITE EOF'S RECORD
      LDB TYPE      CHECK IF VERIFY 
      CPB B7        ??
      JMP DILD      YES 
      STA DIBF      CYLINDER = -1 
      CLA 
      STA DIBF+1    HEAD AND SECTOR = 0 
      STA DIBF+2    FWA OF DIAG.= 0 
      LDA DICY
      LDB DIHS
      STA DICYS     SAVE LOCATION 
      STB DIHSS 
      JSB DLRW,I      WRITE IT
DISBF DEF DIBF
DI128 DEC -128
      LDA DISBF     SET SECTOR BUFFER 
      ADA B3
      STA DISTA     SECTOR STORE ADDRESS
      LDA DI128 
      ADA B3
      STA DISTC     STORE WORD COUNT
      SKP 
DILD  CLA 
      STA DISN      CLEAR SERIAL NUMBER 
      STA DIFWA     CLEAR FWA OF DIAG.
      CLB,INB,RSS       DON'T CHECK FOR EOT 
DILR  LDB B2        LOOK FOR EOT
      JSB DILDV,I 
      SZA           EOF OR
      SSA           EOT?
      JMP DI5       END OF FILE 
      JSB DISTS     PUT COUNT IN SECTOR BUFFER
      ALF,ALF       COUNT IS IN UPPER HALF
      CMA,INA       MAKE IT NEG 
      STA DICNT     SAVE IT 
      CLB 
      JSB DILDV,I     READ ADDRESS
      JSB DISTS     PUT ADDRESS IN SECTOR BUFFER
      STA DIADD     SAVE IT 
      STA DICKM     INITIALIZE CHECKSUM 
DILP  CLB 
      JSB DILDV,I     READ NEXT WORD
      JSB DISTS     PUT CONTENTS IN SECTOR BUFFER 
      STA DIDTA     SAVE IT 
      ADA DICKM     ADD WORD
      STA DICKM       TO CHECKSUM 
      LDB DIDTA 
      LDA DIADD 
      CPA DI126     IS THIS THE SERIAL NUMBER?
      STB DISN      YES SAVE IT 
      CMA,INA       IS THIS FWA?
      ADA DIFWA 
      SSA,RSS       (CURRENT GREATER THAN LAST) 
      JMP *+3       (NO LEAVE ADDRESS ALONE)
      LDA DIADD     YES UPDATE FWA
      STA DIFWA 
      ISZ DIADD     MOVE TO NEXT ADDRESS
      ISZ DICNT     IS THAT ALL  ?? 
      JMP DILP      NO
      CLB 
      JSB DILDV,I     READ CHECKSUM 
      JSB DISTS     PUT CHECKSUM IN SECTOR BUFFER 
      CPA DICKM     DOES IT AGREE?
      JMP DILR      YES 
      JSB YES?
      DEF DICSE     CHECKSUM ERROR, ABORT?
      RSS 
      JMP DILR      NO
      LDA DICYS     RESTORE STARTING
      STA DICY        CYLINDER
      LDA DIHSS          AND
      STA DIHS             HEAD/SECTOR
      JMP DI6        COMPLETE 
* 
      SKP 
DI5   SZA           END-OF-FILES? 
      JMP DI7       YES 
      LDB TYPE      CHECK IF VERIFY 
      CPB B7        ??
      JMP DI8       YES 
      JSB DISTS 
      LDB DISTC     CLEAR REST OF SECTOR
      CPB DI128 
DI5.  RSS 
      JMP *-4 
      LDA DISN      CHECK SERIAL NUMBER 
      AND DIMSK     MASK OFF REV CODE 
      SZA           IS IT THE CONFIGURATOR? 
DIJ6  JMP DI6       NO CONTINUE 
      LDA DICYS     YES RESET CYLINDER AND HEAD SECTOR
      STA DICY
      LDA DIHSS 
      STA DIHS
      JMP DI4       READ NEXT FILE
DI6   CLA,CLE       OUTPUT DSN TO CONSOLE 
      LDB DISNM 
      JSB FMTO,I
      CCA           OUTPUT IT IN OCTAL
      LDB DISN
      JSB FMTO,I
      CCA           WRITE EOF 
      STA DIBF
      CLA 
      STA DIBF+1
      STA DIBF+2
      STA DIBF+3
      LDA DICY
      LDB DIHS
      JSB DLRW,I
      DEF DIBF
      DEC -128
      LDA DICYS     READ FIRST
      LDB DIHSS       SECTOR
      JSB DLRW,I
      DEF DIBF,I
      DEC -128
      LDA DICY      NEXT CYLINDER 
      STA DIBF
      LDA DIHS      AND NEXT HEAD & SECTOR
      STA DIBF+1
      LDA DIFWA     AND FWA OF DIAG 
      CMA,INA       MAKE IT NEG.
      STA DIBF+2
      LDA DICYS 
      LDB DIHSS 
      JSB DLRW,I
      DEF DIBF
      DEC -128
      LDA RSS       SET TO SKIP ANY CONFIGURATORS AFTER THIS
      STA DI5.
      JMP DI4 
      SKP 
DI7   CLA 
      JSB COD,I     DO CR/LF
      JSB YES?      ASK OPERATOR
      DEF DIMEL     END OF LOAD?
      RSS 
      JMP DI3       NO, READY DEVICE AND CONTINUE 
      HLT 77B       YES STOP
      JMP 130B,I    DO IT ALL OVER AGAIN
* 
DI8   CLA,CLE       OUTPUT DSN TO CONSOLE 
      LDB DISNM 
      JSB FMTO,I
      CCA 
      LDB DISN
      JSB FMTO,I
      JMP DILD      CONTINUE READING
* 
DISTS NOP 
      LDB TYPE      CHECK IF VERIFY 
      CPB B7        ??
      JMP DISTS,I   YES JUST RETURN 
      STA DISTX     SAVE A REG
      STA DISTA,I   PUT IT IN BUFFER
      ISZ DISTA 
      ISZ DISTC     BUFFER FULL?
      JMP DISTS,I   NO
      LDA DICY      YES 
      LDB DIHS
      JSB DLRW,I      WRITE SECTOR
      DEF DIBF
      DEC -128
      STB DIHS      UPDATE HEAD AND SECTOR
      STA DICY        AND CYLINDER
      CMA,INA 
      ADA DILC
      SSA           IS CYLINDER OVER LAST CYLINDER? 
      JMP *+7       YES 
      LDA DISBF     RESTORE ADDRESS 
      STA DISTA 
      LDA DI128 
      STA DISTC 
      LDA DISTX      RESTORE A REG
      JMP DISTS,I   AND RETURN
      JSB MSG 
      DEF DIERM,I    OVER LAST CYLINDER 
      JMP 130B,I
      SKP 
      ORG 4000B 
PAGE  EQU * 
*         PAPER TAPE LOADER DRIVER
* 
* 
* 
PT    EQU * 
* 
* 
PTRD  EQU *-PT
      NOP 
      SSB           READ OR FORWARD SPACE?
  ABS JMP+LD+*-PT+3  REWIND OR FORWARD SPACE
  ABS JSB+LD+PTFW    READ WORD
  ABS JMP+LD+PTRD+100000B 
      SLB            REWIND?
  ABS JMP+LD+PTRD+100000B YES  EXIT 
      RBR,SLB        FILE FORWARD?
      RSS 
  ABS JMP+LD+PTRD+100000B  NO 
PTFF  EQU *-PT
      CLB 
  ABS LDA+LD+PTCX    ANY COUNT REMAINING
      SSA,RSS        ?
  ABS JMP+LD+*-PT+3  NO 
  ABS JSB+LD+PTFW    YES PICK WORDS UP
  ABS JMP+LD+PTFF 
      INB 
      SZA,RSS 
      INB 
  ABS JSB+LD+PTFW 
      SZA                EOF OR EOT?
      SSA 
  ABS JMP+LD+PTRD+100000B  YES RETURN 
  ABS JMP+LD+PTFF      NO DO MORE 
      SKP 
PTFW  EQU *-PT
      NOP 
      SZB,RSS            READ WORD? 
  ABS JMP+LD+PTW         YES
      SLB,RSS 
  ABS JMP+LD+*-PT+3      READ NEXT RECORD 
PTRS  EQU *-PT
      STC SC,C           NO START READER
      CLB,RSS            SEARCH FOR FIRST BYTE
  ABS LDB+%M10-PAGE      SET NULL COUNT TO 10 
  ABS JSB+LD+PTRB        WAIT FOR BYTE
      SZA                ANY DATA YET?
  ABS JMP+LD+*-PT+6      YES CONTINUE 
      INB,SZB            NO EOT YET?
  ABS JMP+LD+*-PT-4      NO TRY NEXT BYTE 
      INB 
  ABS STB+LD+PTCX        SET EOF REACHED
  ABS JMP+LD+PTFW+100000B YES RETURN WITH EOT 
      ALF,ALF            PUT COUNT IN UPPER BYTE
  ABS STA+LD+PTDOT       SAVE IT
  ABS JSB+LD+PTRB        READ NEXT BYTE 
      SZA                NEXT BYTE SHOULD BE ZERO 
  ABS JMP+LD+PTEX        NOT SO EXIT
  ABS LDA+LD+PTDOT       RETRIEVE COUNT 
      LDB A 
      BLF,BLF 
      INB 
      CMB 
  ABS STB+LD+PTCX 
  ABS JMP+LD+PTFW+100000B OK RETURN 
      SKP 
PTRB  EQU *-PT
      NOP 
  ABS LDA+%M10-PAGE    SET TIME OUT 
  ABS STA+LD+PTDLT
      CLA,CLE 
      SFS SC             READER READY WITH BYTE 
      RSS 
  ABS JMP+LD+PTLD        YES READ IT
      INA,SZA            IS FIRST DELAY OVER? 
  ABS JMP+LD+PTRB+4      NO CHECK IT AGAIN
  ABS ISZ+LD+PTDLT       YES IS SECOND DELAY OVER?
  ABS JMP+LD+PTRB+3      NO RESTART FIRST DELAY 
PTEX  EQU *-PT
      CLC SC,C      STOP READER 
      CCA                YES INDICATE END OF FILE 
      SZB           EOT?
  ABS JMP+LD+PTFW+100000B 
      OCT 106074    TAPE TORN OR GATE DOWN
  ABS JMP+LD+PTRS   TRY AGAIN 
PTLD  EQU *-PT
      LIA SC             GET BYTE 
      STC SC,C           START NEXT READ
  ABS JMP+LD+PTRB+100000B 
PTW   EQU *-PT
  ABS JSB+LD+PTRB        GET A BYTE 
      ALF,ALF            PUT IT IN UPPER HALF 
  ABS STA+LD+PTDOT       SAVE IT
  ABS JSB+LD+PTRB        READ NEXT HALF 
  ABS IOR+LD+PTDOT       PUT THEM TOGETHER
  ABS ISZ+LD+PTCX        DECREMENT REMAINDING COUNT 
      NOP 
  ABS JMP+LD+PTFW+100000B RETURN
* 
PTCX  EQU *-PT
      NOP 
PTDOT EQU *-PT
      NOP 
PTDLT EQU *-PT
      NOP 
      SKP 
*         MAG TAPE LOADER DRIVER
* 
MG    EQU * 
* 
MGLR  EQU *-MG
      NOP 
      SZB,RSS            READ A WORD? 
  ABS JMP+LD+MGW         YES
  ABS STB+LD+MGBF+1 
      SSB,RSS            READ A RECORD? 
  ABS JMP+LD+MGLR0       YES
      SLB,RSS       REWIND? 
  ABS JMP+LD+*-MG+4 
                                                                                                                                              