Fixed typos in PDP6 dectape controller.
[retro-software/dec/tops10/v4.5.git] / src / dtasrn.mac
index 2f8d0bd..37a077f 100644 (file)
@@ -31,6 +31,7 @@ MINDIS=14     ;MINMUM NUMBER OF BLOCKS TO SEARCH BEFORE DISCONNECTING
                ;FROM A TAPE\r
 SPACE=4                ;NUMBER OF BLOCKS SEPERATING CONTIGUOUS BLKS OF A FILE\r
 \r
+\r
 ;DDB MAGIC CELLS\r
 FSTBLK=13\r
 DLOC=14\r
@@ -43,6 +44,7 @@ SVDWRD=21
 UDSD=100\r
 LSTSAV=20000\r
 \r
+\r
 ;FLAGS IN LH OF IOS\r
 NOLINK=200\r
 CHNGDR=400\r
@@ -57,10 +59,10 @@ REWBIT=100000
 RUNBIT=200000\r
 RECKON=400000          ;THIS TAPE IS DEAD-RECKONING.\r
                        ; (MUST BE SIGN BIT)\r
-\r
 CPBIT=-1               ;FEATURE TEST TO ALLOW IO INTO USER AREA DIRECTLY\r
                        ;IT WILL ONLY HAPPEN ON DUMP MODE WITH NON-STANDARD BIT\r
                        ;(UDSD) ON\r
+\r
 \f      EXTERN  JIFSEC\r
 \r
        INTERN  DTAINT,DTADDB,DTAINI,DTADDS,DTADSP\r
@@ -71,21 +73,18 @@ DTADDB:     SIXBIT  /DTA0/
        EXP     DTADSP\r
        XWD     1107,154403\r
        EXP     0,0\r
-\r
        XWD     PROG,0\r
        XWD     PROG,0\r
        EXP     0,0,0\r
-\r
        EXP     DTADIR\r
        EXP     0,0,0,0,0\r
-\r
-\r
 DTADIR:        BLOCK   200\r
-DTADDS=.-DTADDR\r
+DTADDS=.-DTADDB\r
+\r
 \r
        JRST    DTAINI\r
        JRST    HUNGTP          ;HUNG DEVICE\r
-DTADSP JRST    UREL\r
+DTADSP:        JRST    UREL\r
        JRST    UCLS\r
        JRST    UOUT\r
        JRST    UIN\r
@@ -103,9 +102,10 @@ DTADSP     JRST    UREL
 \f      HRRZ    TAC1,UUO        ;MTAPE - GET OPERATION\r
        CAIE    TAC1,1          ;REWIND OR\r
        CAIN    TAC1,11         ;REWIND UNLOAD ARE LEGAL\r
-       SOJA    TAC1,MTA0\r
+       SOJA    TAC1,MTAP0\r
        POPJ    PDP,            ;OTHERS ARE NO-OPS\r
 \r
+\r
 ;INITIALIZE DTC\r
 DTAINI:        CONO    DTC,0\r
        SETZM   DISCON\r
@@ -179,7 +179,6 @@ RENAM1:     TLO     IOS,CHNGDR      ;DIRECTORY HAS CHANGED
 \r
 ;COME HERE TO RENAME TO A REAL NEW NAME\r
 RENAM2:        MOVE    DAT,TAC          ;SAVE LOC OF NAME IN DIRECTORY\r
-\r
        PUSHJ   PDP,DSERCH      ;SEARCH FOR NEW NAME\r
        SKIPA           ;NOT FOUND - GOOD\r
        JRST    RENER2          ;NAME ALREADY EXISTS - ERROR\r
@@ -208,7 +207,7 @@ NMLOOK:     SKIPN   TAC1,@UUO       ;GET NAME
        MOVEM   TAC1,DEVFIL(DEVDAT)     ;STORE FOR RENAME AND SUPERSEDING\r
                                ; SHARED SEGMENTS\r
        CAMN    TAC1,(TAC)      ;TEST FOR MATCH\r
-       AOJA    UUOI,NMFOUN     ;FOUND NAME, CHECK EXTENSION\r
+       AOJA    UUO,NMFOUN      ;FOUND NAME, CHECK EXTENSION\r
        AOBJN   TAC,.-2         ;TRY NEXT NAME\r
        POPJ    PDP,            ;NOT FOUND\r
 NMFOUN:        HLLZ    TAC1,@UUO       ;PICK UP USER'S EXTENSION\r
@@ -282,7 +281,6 @@ DECPTR:     JUMPL   DAT,.+5
        SOJA    DAT,CPOPJ\r
        HRLI    DAT,060500\r
        SOJA    DAT,CPOPJ\r
-\r
 \f;COME HERE TO DELETE THE FILE WHOSE INDEX IS INN TAC\r
 DLETE: MOVEI   TAC1,0          ;SET TO DELETE BLOCKS\r
        PUSHJ   PDP,BLKSRC      ;FIND A BLOCK BELONGING TO FILE\r
@@ -296,7 +294,7 @@ DLETE:      MOVEI   TAC1,0          ;SET TO DELETE BLOCKS
 ENTR:  TRNE    IOS,UDSD        ;NON STANDARD?\r
        JRST    CPOPJ1          ;YES. RETURN\r
        PUSHJ   PDP,DSERCH      ;NO. LOOK FOR MATCH\r
-       JRST    NEWNT           ;THIS IS A NEW ENTRY\r
+       JRST    NEWENT          ;THIS IS A NEW ENTRY\r
 ENTR2: MOVE    TAC1,@UUO       ;PICK UP 2ND WORD (EXTENSSION)\r
        AOS     UUO             ;POINT TO WORD 3\r
        HRR     TAC1,@UUO       ;ADD DATE\r
@@ -317,11 +315,11 @@ ENTRA:    SUBI    UUO,2           ;NO. POINT TO NAME
        HRLM    TAC,OBLK(DEVDAT) ;SAVE INDEX IN DDB\r
 \r
        PUSHJ   PDP,DLETE       ;DELETE ALL BLOCKS BELONGING TO FILE\r
-       AOJE    AC3,FNTRD       ;FIND FIRST FREE BLOCK ON TAPE IF THIS\r
+       AOJE    AC3,ENTRD       ;FIND FIRST FREE BLOCK ON TAPE IF THIS\r
                                ;IS A SAVE FILE (UGETF DONE)\r
        MOVEI   BLK,DIRBLK      ;NO. GET 1ST BLOCK CLOSE TO\r
        TLO     IOS,RVERSE      ;DIRECTORY. GOING IN REVERSE\r
-       POPJ    PDP,USLSTA\r
+       PUSHJ   PDP,USLSTA\r
        CAILE   BLK,TOPBLK      ;BLOCK LEGAL?\r
        POPJ    PDP,            ;NO. ERROR RETURN\r
 ENTRC: MOVEM   BLK,FSTBLK(DEVDAT) ;SAVE AS 1ST BLOCK\r
@@ -342,7 +340,7 @@ MARKDR:     PUSHJ   PDP,DRPTR       ;SET POINTER TO BLOCK IN DIR
 ;;SET POINTER TO CORRECT DIRECTORY ENTRY\r
 DRPTR: SUBI    BLK,1           ;SET FOR ILDB OR IDPB\r
        IDIVI   BLK,7           ;COMPUTE WORD, POSITION\r
-       ADD     BLK,OLOC(DEVDAT) ;GET CORRECT ADDRESS\r
+       ADD     BLK,DLOC(DEVDAT) ;GET CORRECT ADDRESS\r
        HRLI    BLK,440500      ;MAKE IT A BYTE POINTER\r
        JUMPE   DAT,CPOPJ       ;CORRECT FOR POSITION IN WORD\r
        IBP     BLK\r
@@ -351,12 +349,12 @@ DRPTR:    SUBI    BLK,1           ;SET FOR ILDB OR IDPB
 \r
 ;HERE FOR NEW FILE NAME ON ENTER\r
 NEWENT:        SUB     TAC,[XWD 26,26];START AT BEGINNING OF DIRECT.\r
-\r
        SKIPN   (TAC)           ;FIND A FREE SLOT\r
        AOJA    UUO,ENTR2       ;RETURN WITH UUO POINTING TO WRD 2\r
        AOBJN   TAC,.-2\r
        POPJ    PDP,            ;NONE AVAILABLE.\r
 \r
+\r
 ;SET UP LENGTH OF FILE IN DIRECTORY FOR A SAVE FILE\r
 SETWD4:        HLRE    TAC1,@UUO       ;GET -LENGTH\r
        MOVNS   TAC1            ;+LENGTH\r
@@ -391,6 +389,7 @@ GETF:       PUSHJ   PDP,WAIT1       ;WAIT TILL BUFFERES EMPTY
        MOVE    TAC,BLK         ;TELL USER THE BLOCK NUMBER\r
        JRST    STOTAC\r
 \r
+\r
 ;GET NEXT (OR PREVIOUS) FREE BLOCK\r
 USRFRE:        MOVEI   TEM,SPACE       ;BLOCKS "SPACE" APART\r
        LDB     BLK,PIOMOD      ;EXCEPT DUMP AND SAVMOD FILES\r
@@ -415,6 +414,7 @@ USRLST:     SUBI    BLK,(TEM)       ;LOOK FOR FREE BLOCK N BEFORE
 USLSTA:        PUSHJ   PDP,LSTFRE      ;THIS ONE\r
        JRST    CALNXT+1\r
 \r
+\r
 ;NO FREE BLOCKS AVAILABLE. GIVE HIGH BLOCK,SET IOBKTL LATER\r
 NOBLKS:        MOVEI   BLK,TOPBLK+1    ;SET HIGH BLOCK\r
        POPJ    PDP,\r
@@ -450,8 +450,10 @@ UCLS:      TLZE    IOS,NOLINK      ;IS LAST BLOCK NOT LINKED?
        MOVEM   IOS,DEVIOS(DEVDAT)  ;SAVE IOS\r
        JRST    OUT             ;GO TO WRITE RECORD\r
 \r
+\r
+\r
 ;HERE TO CLOSE A DUMP MODE FILE\r
-CLSDMP:        TLO     IOS,DMPOCLS+IO+DMPMOD ;SET SWITCHES\r
+CLSDMP:        TLO     IOS,DMPCLS+IO+DMPMOD ;SET SWITCHES\r
        PUSHJ   PDP,GETDT       ;GET CONTROL\r
        SETZM   BUF             ;ENSURE ZERO LINK,WORDCOUNT\r
        SETZM   BUF+1           ;MAKE SURE 0, SO CAN GET WITH 3 SERIES MON.\r
@@ -473,9 +475,9 @@ UREL:       PUSHJ   PDP,WAIT1       ;MAKE SURE THE TAPE IS STOPPED
        PUSHJ   PDP,WRTBLK      ;WRITE UT\r
        PUSHJ   PDP,WAIT1       ;WAIT TILL IT HAS BEEN WRITTEN\r
 \r
+\r
 UREL2: MOVE    TAC,DEVIAD(DEVDAT) ;BITS 1,2 ARE COUNT OF CHANS\r
        TLNE    TAC,200000      ;DEV INITED ON ANOTHER CHANNEL TOO?\r
-\r
 QUANTL:        POPJ    PDP,QUANT       ;YES, DON'T ZAP IOS OR DDB\r
 \r
 ;SOME BITS IN THE IOS WORD AND THE DDB WILL NORMALLY BE CHANGED ON THE\r
@@ -487,6 +489,8 @@ QUANTL:     POPJ    PDP,QUANT       ;YES, DON'T ZAP IOS OR DDB
                                ;IT WILL WORK (CHECK IS MADE AT ENTER)\r
        SETZM   FSTBLK(DEVDAT)\r
        JRST    STOIOS          ;STORE IOS AND RETURN\r
+\r
+\r
 \fGETDT0:       PUSHJ   PDP,SETACT      ;WAIT TILL TAPE COMES OUT OF REWIND\r
        PUSHJ   PDP,WSYNC       ;BEFORE DOING ANYTHING ELSE TO IT\r
 ;GET DEC TAPE CONTROLLER\r
@@ -536,7 +540,6 @@ UIN:        TLZ     IOS,IO
        JUMPE   BLK,EOF         ;0 MEANS EOF\r
        PUSHJ   PDP,BLKCHK      ;CHECK LEGALITY OF BLOCK NUMBER\r
        TLNN    IOS,DMPMOD      ;DUMP MODE?\r
-\r
        CAIE    BLK,DIRBLK      ;TRYING TO READ DIRECTORY?\r
        JRST    READBF          ;NO. GO READ\r
 \r
@@ -561,6 +564,7 @@ EOF:        TLO     IOS,IOEND       ;LIGHT EOF BIT
        JRST    STOIOS\r
        JRST    DMPEOF          ;GIVE UP CONTROL IF DUMP-MODE\r
 \r
+\r
 ;ZERO USER'S CORE ON SAVE-MODE INPUT\r
 ZERCOR:        MOVEI   TAC,JOBDDT(PROG) ;ZERO CORE\r
        HRLI    TAC,1(TAC)\r
@@ -589,8 +593,7 @@ UOUT:       TLO     IOS,IO
        HRRZ    BLK,OBLK(DEVDAT)\r
        CAIN    BLK,DIRBLKK     ;CHECK IF WRITING DIRECTORY\r
        JRST    COR2HM          ;YES, WRITE CORE IMAGE\r
-       JUMPE   BLK,FAKAV       ;DONT WRITE IF NO BLOCK GIVEN\r
-\r
+       JUMPE   BLK,FAKADV      ;DONT WRITE IF NO BLOCK GIVEN\r
        PUSHJ   PDP,BLKCHK      ;CHECK FOR LEGAL BLOCK\r
 UOUT2: TLNN    IOS,DMPMOD      ;ALREADY HAVE CONTROL IF DUMP-MODE\r
        PUSHJ   PDP,GETDT       ;GET DEC TAPE CONTROLLER\r
@@ -623,6 +626,7 @@ OUTBLK:     HRLM    BLK,BUF          ;SAVE LINK IN 1ST WORD OF BLOCK
 OUTBL2:        HRRZ    BLK,OBLK(DEVDAT)\r
        PUSHJ   PDP,STOIOS\r
 \r
+\r
 WRTBLK:        PUSHJ   PDP,FNDBLK      ;GO SEARCH FOR BLOCK\r
        MOVE    TAC1,[BLKO DTC,700] ;HERE WE ARE - GO WRITE\r
        JRST    RDWRT\r
@@ -655,7 +659,7 @@ DMPSET:     PUSHJ   PDP,GETDT       ;GET CONTROL
        JRST    DMPTS1          ;YES. RETURN\r
        IFN CPBIT, <\r
        TRNE    IOS,UDSD        ;NO. NON-STD MODE?\r
-       SOJA    DAT,TDUSER      ;YES. GO ELSEWHERE\r
+       SOJA    DAT,TOUSER      ;YES. GO ELSEWHERE\r
 >\r
 DMPST2:        SOS     UUO             ;NO. SAVE START OF LIST (-1)\r
        MOVEM   UUO,DMPLST(DEVDAT)\r
@@ -664,9 +668,10 @@ DMPST2:    SOS     UUO             ;NO. SAVE START OF LIST (-1)
 DMPTS1:        POP     PDP,TAC\r
        JRST    THRUTD\r
 \r
+\r
        IFN CPBIT, <\r
 ;HERE TO START DUMP-MODE INTO USER AREA DIRECTLY\r
-TOUSRF:        JUMPE   AC2,NOBLK0      ;CANT READ BLK 0 IN NON-STD DUMP  MODE\r
+TOUSER:        JUMPE   AC2,NOBLK0      ;CANT READ BLK 0 IN NON-STD DUMP  MODE\r
        ASH     DAT,-7          ;NUMBER OF WRDS IN LIST /200\r
        AOS     DAT\r
        MOVEM   DAT,BLKCNT      ;SAVE TO UPDATE POSITION\r
@@ -675,7 +680,7 @@ TOUSR1:     MOVEM   UUO,USPNTR      ;SAVE IT
        MOVEM   UUO,SVPNTR\r
        ADDI    TAC,(PROG)      ;RELOCATE ADDRESS OF 1ST IOWD\r
        MOVEM   TAC,PNTR        ;AND SAVE IT\r
-       MOVE    TAC,[JSP DMPADV] ;SET UP LOC FOR WHEN\r
+       MOVE    TAC,[JSR DMPADV] ;SET UP LOC FOR WHEN\r
        MOVEM   TAC,DTALC2      ;IOWD IS EXHAUSTED\r
        HRRZM   PROG,ADRPRG     ;SAVE JUST ADDRESS OF PROG\r
        TLO     IOS,NOBUF       ;INDICATE DIRECTLY TO USER\r
@@ -684,6 +689,7 @@ TOUSR1:     MOVEM   UUO,USPNTR      ;SAVE IT
        POP     PDP,TAC         ;WRITING - THIS WILL SAVE LOTS OF TIME\r
        JRST    OUTBL2\r
 \r
+\r
 NOBLK0:        TRO     IOS,IOIMPM\r
        POP     PDP,TAC         ;RETURN TO UUOCON WITH ERROR BIT SET\r
        JRST    THRUTD\r
@@ -696,7 +702,7 @@ DMPFIL:     MOVSI   TAC1,-177
 >\r
 DMPFLB:        PUSHJ   PDP,NXTCOM      ;GET NEXT COMMAND\r
        JRST    DMPOTH          ;END OF LIST\r
-DMPLFA:        MOVE    TEM,(TAC)       ;GET NEXT WORD\r
+DMPFLA:        MOVE    TEM,(TAC)       ;GET NEXT WORD\r
        MOVEM   TEM,BUF+1(TAC1) ;INTO BUFFER\r
        AOBJP   TAC1,DMPOVR     ;BUFFER FULL IF GOES\r
        AOBJN   TAC,.-3         ;GET NEXT WORD FROM COMMAND\r
@@ -727,6 +733,7 @@ DMPOVA:     MOVEI   TAC,177
        MOVEM   TAC,BUF         ;WD CNT =177\r
        JRST    OUFULL          ;GO WRITE PART OF STUFF\r
 \r
+\r
 ;GET NEXT COMMAND FROM LIST\r
 NXTCOM:        SKIPN   DMPLST(DEVDAT)  ;END OF COMMANDS?\r
        JRST    NXTCM2          ;YES. RETURN\r
@@ -734,14 +741,16 @@ NXTCOM:   SKIPN   DMPLST(DEVDAT)  ;END OF COMMANDS?
 NXTCM1:        HRRM    TAC,DMPLST(DEVDAT) ;STORE GO-TO ADDRESS\r
        MOVE    TAC,@TAC        ;GET COMMAND\r
        JUMPE   TAC,NXTCM2      ;END OF LIST\r
-       JUMPG   TAX,NXTCM1      ;GO-TO WORD\r
+       JUMPG   TAC,NXTCM1      ;GO-TO WORD\r
        ADDI    TAC,(PROG)      ;REAL COMMAND - ADD RELOCATION\r
        AOJA    TAC,CPOPJ1      ;AND RETURN\r
+\r
 \f;END OF DUMP-MODE LIST\r
 NXTCM2:        SETZM   SVDWRD(DEVDAT)  ;ZERO POINTERS\r
        SETZM   DMPLST(DEVDAT)\r
        POPJ    PDP,\r
 \r
+\r
 DMPFLC:        SKIPE   TAC,SVDWRD(DEVDAT)      ;IS THERE ANOTHER COMMAND\r
        JRST    DMPFLA          ;YES. GET IT\r
        JRST    DMPTH2          ;NO. THROUGH\r
@@ -764,7 +773,6 @@ RDWRT:      HLLM    TAC1,IOWD       ;BLKI OR BLKO
        SKIPA   TAC,BFPNTR      ;NO. INTO BUF\r
        HRR     TAC,DLOC(DEVDAT)        ;YES. LOC OF DIRECTORY\r
        CONSZ   DTC,100000      ;IN REVERSE?\r
-\r
        JRST    IORVRS          ;YES\r
        SOS     TAC             ;ADDRESS -1\r
        MOVE    TEM,IOWD        ;GET IOWD\r
@@ -782,7 +790,8 @@ IOGO2:      CONO    DTC,DTBOTH(TAC1) ;START READ OR WRITE
 \f;HERE IF TAPE IS GOING IN REVERSE WHEN BLOCK NUMBER FOUND\r
 IORVRS:        ADDI    TAC,176         ;START AT TOP OF BUFFER\r
        MOVE    TEM,[JSR RVERS]\r
-       JRST    TOGO            ;COMPILCATED STUFF FOR EACH WORD\r
+       JRST    IOGO            ;COMPILCATED STUFF FOR EACH WORD\r
+\r
 \r
 ;HERE FOR AY DATA WORD WITH TAPE IN REVERSE\r
 RVERS: 0\r
@@ -810,6 +819,7 @@ MTAP0:      PUSHJ   PDP,GETDT       ;GET THE CONTROL FOR THE TAPE
        MOVEI   BLK,0           ;SEARCH FOR BLOCK 0\r
        PUSHJ   PDP,FNDBLK      ;GO FIND BLOCK\r
 \r
+\r
 ;CONTROL COMES HERE ON INTERRUPT CHANNEL WHEN THE BLOCK IS FOUND\r
        TLNE    IOS,RUNBIT      ;REWIND UNLOAD?\r
        JRST    .+3             ;YES, CONTINUE\r
@@ -829,6 +839,7 @@ RUNCLK:     MOVE    DEVDAT,USEWRD
        MOVE    IOS,DEVIOS(DEVDAT)  ;RESET IOS\r
        JRST    REWDUN          ;DECREASE DTREQ. STOP TAP\r
 \r
+\r
 ;HERE TO PUT C(TAC) IN THE CLOCK QUEUE\r
 CLKREQ:        0\r
        CONO    PI,PIOFF        ;TURN OFF PI\r
@@ -877,7 +888,8 @@ SRCH:       0
        TLNE    TAC,2000        ;IS CONTROL STILL ACTIVE?\r
        JRST    SRCHD           ;YES. MUST BE IN "PSEUDO END-ZONE"\r
        DATAI   DTC,TAC         ;NO. READ A BLOCK NUMBER\r
-       TLZ     TAC,-1          ;LEGAL BLOCK NUMBER>\r
+       TLZ     TAC,-1          ;INSURANCE\r
+       CAILE   TAC,TOPBLK      ;LEGAL BLOCK NUMBER?\r
        JRST    SRCHB           ;NO. SET ERROR SWITCH\r
        SUB     TAC,BLOCK       ;NOW-WANTED\r
        IFN CPBIT, <\r
@@ -888,13 +900,12 @@ SRCH:     0
 SRCHA: CONSZ   DTC,100000      ;IF TAPE IS IN REVERSE\r
        MOVNS   TAC             ;SWITCH TURN-AROUND TEST\r
        JUMPLE  TAC,.+3 ;TEST FOR DISCONNECT IF DIRECTION IS CORRECT\r
-\r
                                ;***\r
        CONO    DTC,DTTURN      ;TURN AROUND\r
        JRST    SRCHXT          ;AND GO AWAY\r
        MOVMS   TAC\r
        CAILE   TAC,MINDIS      ;WORTH WHILE TO DISCONNECT TAPE?\r
-       JRST    BEKON           ;YES. GO DISCONNECT\r
+       JRST    REKON           ;YES. GO DISCONNECT\r
        SKIPLE  DISCON          ;NO. IS THERE A DISCON. TAPE\r
                                ;WHICH HAS TIMED OUT?\r
        CAIG    TAC,2           ;YES. WILL THIS SEARCH TAKE LONG?\r
@@ -906,18 +917,19 @@ SRCHXT:   MOVE    TAC,TEMP        ;RESTORE TAC
        SETZM   ALMSWT\r
        JEN     @SRCH           ;AND DISMISS THE INTERRUPT\r
 \f;HERE IF AN ILLEGAL BLOCK WAS READ FROM THE TAPE\r
-SRCHR: AOS     TAC,ERRCNT      ;BUMP ERROR COUNT\r
-       CAIG    TAC,DTTRV       ;TRIED ENOUGH?\r
+SRCHB: AOS     TAC,ERRCNT      ;BUMP ERROR COUNT\r
+       CAIG    TAC,DTTRY       ;TRIED ENOUGH?\r
        JRST    SRCHXT          ;NO. READ ANOTHER BLOCK NUMBER\r
        SETOM   BLOCK           ;YES. BLOCK = -1 AS AN ERROR SWITCH\r
-       CONO    DTA,770001      ;FUNCTION STOP\r
+       CONO    DTS,770001      ;FUNCTION STOP\r
        JRST    SRCHXT          ;GO AWAY\r
 \r
+\r
        IFN CPBIT, <\r
 SRCHC: CONSZ   DTC,100000      ;GOING FORWARD?\r
        TLCA    TAC,400000      ;NO. SWITCH TURN AROUND TEST. ENSURE FORWARD\r
        JUMPE   TAC,FOUND       ;GO IF FOUND FORWARD\r
-       SKIPI   TAC             ;TURN AROUND?>\r
+       SKIPL   TAC             ;TURN AROUND?\r
        CONO    DTC,DTTURN      ;YES\r
        JRST    SRCHXT          ;READ ANOTHER BLOCK NUMBER\r
 >\r
@@ -946,7 +958,6 @@ REKON:      SKIPN   IOWRIT          ;MONITOR BUFFER FULL?
        LDB     TAC1,PJOBN      ;ASSOCIATED JOB NUMBER\r
        HRRM    TAC1,MONB2      ;SAVE IN WD 2 OF MONITOR BUFFER\r
        HRLM    DEVDAT,MONB2    ;SAVE ADDRESS OF DTA\r
-\r
        CONSZ   DTC,200000\r
        IMULI   TAC,62          ;COMPUTE A TIME TO BLOCK\r
        CONSZ   DTC,100000      ;BASED ON 50 MSEC/BLOCK FORWARD\r
@@ -993,6 +1004,7 @@ NXTICK:    MOVE    TAC,TIMRQ2      ;COME BACK IN A JIFFY
 TIMREQ:        XWD     BACK,0\r
 TIMRQ2:        XWD     BACKA,1\r
 \r
+\r
 IFN    ALMACT,<\r
        EXTERN  PRIIN\r
 ;COME HERE ON THE CLOCK LEVEL TO BRING THE JOB ASSOCIATED WITH\r
@@ -1006,12 +1018,13 @@ ALMREQ: XWD     .+1,1
        ANDCAM  TAC,DEVIOS(DEVDAT) ;ZAP BIT SO IT WONT BE SWAPPED OUT AGAIN\r
        POPJ    PDP,\r
 \r
+\r
 ;HERE WHEN SWAPPER DOES GET THE JOB BACK INTO CORE\r
 SWPBAK:        MOVE    IOS,DEVIOS(DEVDAT)\r
-       SETM    MONB2           ;CLEAR JOB NO, FROM MON BUFFER\r
+       SETZM   MONB2           ;CLEAR JOB NO, FROM MON BUFFER\r
        TLNN    IOS,IOFST       ;WAS JOB SWAPPED OUT WHEN DATA FINISHED?\r
        POPJ    PDP,            ;NO. TRANSFER COMPLETED\r
-       MOVE    TAC,JBTSTS(ITEM) ;YES, WAS IO ABORTED?>\r
+       MOVE    TAC,JBTSTS(ITEM) ;YES, WAS IO ABORTED?\r
        TRNN    TAC,ALBORT\r
        JRST    FAKINT          ;NO. NOW TRANSFER DATA, ADVANCE BUFFERS\r
        JRST    THRUTP          ;YES. FORGET REST OF OPERATION\r
@@ -1035,7 +1048,6 @@ BACK2:    TRZ     TAC,10
        HLRZ    TAC1,IBLK(DEVDAT) ;BLOCK NEEDED\r
        DPB     TAC1,[POINT 10,BLOCK,35]\r
        HRRZ    TAC,CLOCK\r
-\r
        HRLI    TAC1,CPOPJ      ;FIND CLOCK-QUEUE REFERENVCE TO BACKC\r
 BACK3: CAIN    TAC,CIPWTM\r
        JRST    BACKD           ;NOT THERE, TAPE MUST HAVE BEEN STOPPED\r
@@ -1070,6 +1082,7 @@ BACKA:    SETOM   TAC             ;DISCON WILL GO TO -1
        EXCH    TAC,DISCON      ;UNIT TO CONNECT TO\r
        JRST    BACK2           ;GO RECONNECT\r
 \r
+\r
 ;IF WE GET HERE THERE IS A SLOW TAPE ON THE SELECTED DRIVE\r
 BACKC: CONO    PI,PIOFF ;CANT RISK CHANGING THE INTERRUPT ENABLES HRE\r
        CONI    DTS,TAC         ;READ IN ENABLE FLAGS\r
@@ -1083,7 +1096,7 @@ FOUND:    MOVEM   TAC1,FNDTMP     ;SAVE THOSE ACS THAT WILL BE USED
        MOVEM   TEM,RVERS\r
        EXCH    DEVDAT,USEWRD\r
        EXCH    IOS,DEVIOS(DEVDAT)\r
-       ECHO    PDP,FNDPDP\r
+       EXCH    PDP,FNDPDP\r
        PUSHJ   PDP,@DISPAD(DEVDAT)     ;GO TO DISPATCH LOCATION\r
        EXCH    PDP,FNDPDP              ;RESTORE ACS\r
        EXCH    IOS,DEVIOS(DEVDAT)\r
@@ -1096,6 +1109,7 @@ FOUND:    MOVEM   TAC1,FNDTMP     ;SAVE THOSE ACS THAT WILL BE USED
 FNDPDP:        XWD     -2,.\r
        0\r
 \r
+\r
        IFN CPBIT, <\r
 ;HERE WHERE DUMP-MODE POINTER RUNS OUT\r
 DMPADV:        0\r
@@ -1139,6 +1153,7 @@ DTAIN1:   TLZE    IOS,REWBIT      ;NO, FROM A REWIND MTAPE?
        CONSZ   DTS,670000      ;AND NO ERRORS?\r
        JRST    ERRS            ;NO. TOUGH LUCK\r
        SKIPGE  BLOCK           ;BAD BLOCK NUMBER ON TAPE?\r
+       JRST    DERR            ;YES, TURN ON IODERR\r
 DTAIN2:        TLNE    IOS,DMPMOD      ;DUMP MODE?\r
        JRST    DMPTHR          ;YES. GO ELSEWHERE\r
        TLNN    IOS,SINGL\r
@@ -1155,6 +1170,7 @@ DTAIN2:   TLNE    IOS,DMPMOD      ;DUMP MODE?
        JRST    OUTHRU          ;YES\r
 \fEXTERN        JBTSTS,PJOBN\r
 \r
+\r
 ;HERE ON END OF AN INPUT BLOCK\r
        HRROI   TAC1,177        ;MASK OUT 1ST-BLK DATA\r
        TRNN    IOS,UDSD        ;UNLESS IN NON-STD\r
@@ -1169,9 +1185,8 @@ DTAIN2:   TLNE    IOS,DMPMOD      ;DUMP MODE?
        HRRM    BLK,IBLK(DEVDAT) ;DAVE IN DDB\r
        TRNE    IOS,IODTER+IODERR+IOIMPM\r
        JRST    THRUIN\r
-       PUSHJ   PDP,ADVBUFF     ;GET NEXT BUFFER\r
+       PUSHJ   PDP,ADVBFF      ;GET NEXT BUFFER\r
        JRST    THRUIN          ;EMPTY BUF NOT AVAILABLE\r
-\r
        SKIPLE  DISCON          ;TAPE TIMED OUT?\r
        JRST    BACKB           ;YES. GO RECONNECT\r
        SKIPE   BLK             ;EXIT  IF EOF OR BLOCK TOO LARGE\r
@@ -1181,6 +1196,7 @@ DTAIN2:   TLNE    IOS,DMPMOD      ;DUMP MODE?
        SKIPG   DTREQ           ;YES. ANYONE ELSE WANT IT?\r
        JRST    READBC          ;NO. READ NEXT BLOCK\r
 \r
+\r
 THRUIN:        HRRZ    TAC,OBLK(DEVDAT) ;TAPE ALSO BEING WRITTEN?\r
        JUMPN   TAC,THRUTP      ;YES. DONT CHANGE REVERSE BIT\r
        TLZ     IOS,RVERSE      ;NO. SET IOS BIT TO CORRECT DIRECTION\r
@@ -1193,7 +1209,7 @@ THRUTP:   SKIPLE  TAC,DISCON      ;TAPE TIMED OUT?
 THRUTD:        SOSL    DTREQ           ;BUMP COUNT DOWN\r
        SETOM   DTAVAL          ;TELL SCHEDULER\r
 THRUTA:        CONO    DTC,10000       ;DESELECT CONTROL\r
-       TLZ     IOS,DMPMOD+NOBUF+DMPCLS+PEWBIT+RUNBIT\r
+       TLZ     IOS,DMPMOD+NOBUF+DMPCLS+REWBIT+RUNBIT\r
        SETZM   USEWRD          ;INDICATE CONTROL NOW FREE\r
        JRST    CLRACT          ;RESET IOACT AND RETURN\r
 \r
@@ -1203,6 +1219,7 @@ HUNGTP:   JUMPGE  IOS,THRUTP      ;GIVE UP CONTROL IF NOT DEAD-RECKONING
 ;WHEN THE TAPE TIMES OUT FNDBLK WILL RESET THE HUNG TIME, AND\r
 ;IF IT IS STILL HUNG AT ITS END THE ERROR MESSAGE WILL OCCUR\r
 \r
+\r
        INTERN  FTSWAP\r
        EXTERN  SHFWAT\r
 ;HERE ON END OF BLOCK WHEN THE JOB IS STILL SWAPPED OUT\r
@@ -1240,6 +1257,7 @@ OUTHRU:   PUSHJ   PDP,ADVBFE      ;GET NEXT BUFFER
        JRST    FILBUF          ;NO. GO WRITE NEXT BLOCK\r
        JRST    THRUTP          ;YES. GIVE UP TAPE\r
 \r
+\r
 ;TURN TAPE AROUND AFTER END-ZONE INTERRUPT\r
 TURN:  CONSZ   DTC,500         ;READ BLOCK NUMBERS?\r
        JRST    DIREOF          ;NO. END ZONE WHILE READING DATA\r
@@ -1266,9 +1284,9 @@ SVDMTH:   SKIPLE  DISCON          ;HAS A TAPE TIMED OUT
        SUB     TAC1,ONEONE     ;SET UP TAC1 WITH COUNT\r
 >\r
        TLNN    IOS,IO\r
-       JRST    SVOMIN          ;INPUT FILE\r
+       JRST    SVDMIN          ;INPUT FILE\r
        HRRZ    BLK,OBLK(DEVDAT) ;OUTPUT FILE, NEXT BLOCK\r
-       JUMPF   BLK,DMPTHA      ;LAST BLOCK\r
+       JUMPE   BLK,DMPTHA      ;LAST BLOCK\r
        IFE     CPBIT, <\r
        TRNE    IOS,UDSD        ;IF NON-STD MODE\r
        AOSA    OBLK(DEVDAT)    ;WRITE CONSECUTIVE BLOCKS\r
@@ -1295,6 +1313,7 @@ SVDMIN:   HLRZ    BLK,BUF         ;NEXT BLOCK NUMBER
        HRRM    BLK,IBLK(DEVDAT) ;SAVE IN DDB\r
        JRST    CPOPJ1\r
 \r
+\r
        IFN CPBIT, <\r
 ;HERE WHEN THROUGH DUMP-MODE DIRECTLY TO USER\r
 USDMTH:        MOVEI   TAC1,IBLK(DEVDAT)\r
@@ -1329,12 +1348,14 @@ DMIFLB: MOVE    TEM,BUF+1(TAC1) ;NEXT DATA WORD
        JUMPE   BLK,DMPEOF      ;IF EOF - LIGHT BIT\r
 RDNXT: CAIG    BLK,TOPBLK      ;BLOCK LEGAL?\r
        JRST    READBC          ;GO READ BLOCK NUMBER\r
-       TROA    IOS,IOBLKT      ;LIGHT ERROR BIT\r
+       TROA    IOS,IOBKTL      ;LIGHT ERROR BIT\r
 \r
 ;EOF BEFORE ALL DATA IS IN - DUMP MODE\r
 DMPEOF:        TRO     IOS,IODEND      ;LIGHT EOF BIT\r
        JRST    DMPTH2          ;GIVE UP TAPE\r
-\fSVADER:       PUSHJ   PDP,DMPTH2      ;GIVE UP CONTROL\r
+\f\r
+\r
+SVADER:        PUSHJ   PDP,DMPTH2      ;GIVE UP CONTROL\r
        JRST    ADRERR          ;TYPE ERROR MESSAGE\r
 ;COME HERE ON ERROR\r
 ERRS:  AOS     TAC,ERRCNT      ;BUMP COUNT\r
@@ -1349,7 +1370,7 @@ ERRS:     AOS     TAC,ERRCNT      ;BUMP COUNT
 >\r
 ERRS1: CONSO   DTS,40000       ;IF ILLEGAL OP - DONT RETRY\r
        CAILE   TAC,DTTRY       ;ENOUGH REREADS?\r
-       JRST    PERMET          ;YES. PERMANENT ERROR\r
+       JRST    PERMER          ;YES. PERMANENT ERROR\r
        JRST    FNDBL2          ;NO. TRY AGAIN\r
 \r
 ;PERMANENT ERROR\r
@@ -1363,7 +1384,7 @@ DERR:     TRO     IOS,IODERR      ;MISSED DATA
        TRO     IOS,IOIMPM      ;ILLEGAL OP\r
        TLNE    IOS,DMPMOD      ;DUMP MODE?\r
        JRST    DMPTHR          ;YES. NOT THROUGH YET\r
-       TLNN    IOS,IO+RDDIR+SINGL\r
+       TLNN    IOS,IO+RWDIR+SINGL\r
        JRST    DTAIN2\r
 REWDUN:        TLZE    IOS,IOW\r
        PUSHJ   PDP,SETIOD      ;NO. TAKE OUT OF IO WAIT\r
@@ -1371,9 +1392,9 @@ REWDUN:   TLZE    IOS,IOW
        JRST    THRUTP          ;NO. RETURN TO USER\r
        PUSHJ   PDP,THRUTP      ;YES. STOP TAPE\r
        MOVSI   TAC,DVDIRIN     ;CLEAR DIRECTORY IN CORE BIT\r
-       ANDCAM  TAC,DEVMOND(DEVDAT)\r
+       ANDCAM  TAC,DEVMOD(DEVDAT)\r
 BDDIR: LDB     ITEM,PJOBN      ;NUMBER OF OFFENDING JOB\r
-       JRST    RADDIR          ;GO PRINT ERROR MESSAGE\r
+       JRST    BADDIR          ;GO PRINT ERROR MESSAGE\r
 \f      INTERN  DTABUF\r
 BFPNTR:        IOWD    200,BUF+1\r
 ONEONE:        XWD     1,1\r
@@ -1393,9 +1414,8 @@ ALMSWT:   0
        IFN CPBIT, <\r
 BLKCNT:        0\r
 SVPNTR:        0\r
-\r
 USPNTR:        0\r
-DIRCNT:        0\r
+DIRCTN:        0\r
 >\r
 ;THIS IS THE MONITOR BUFFER\r
 DTABUF:\r