Cleanup of typos. master
authorRichard Cornwell <rcornwell@github.com>
Sun, 15 Mar 2020 23:32:55 +0000 (19:32 -0400)
committerRichard Cornwell <rcornwell@github.com>
Sun, 15 Mar 2020 23:32:55 +0000 (19:32 -0400)
src/cdrser.mac
src/conall.ccl
src/conseq.ccl
src/copy.mac [new file with mode: 0644]
src/dtser2.mac
src/eddt.mac
src/pip.mac
src/s.mac
src/tendmp.mac

index ddb0347..1bcf2a4 100644 (file)
@@ -57,7 +57,6 @@ CDRDSP:         CONO CR,0 ;RELEASE
          JRST ILLOUT           ;OUTPUT\r
          JRST CRINP;           INPUT\r
 \f\r
-\r
 CRINP:   TLZ IOS,IOBEG;        VIRGIN DEVICE?  IOBUF:=0\r
 \r
 CDRIN1:          TLO IOS,IOFST+CRMFST;         IOFST:=CRMFST:=1\r
index ca60a47..9046fba 100644 (file)
@@ -26,3 +26,17 @@ SYSCON,SYSCON_S,SYSCON
 SYSCSS,SYSCSS_S,SYSCSS\r
 SYSINI,SYSINI_S,SYSINI\r
 SYSMAK,SYSMAK_S,SYSMAK\r
+TENDMP,TENDMP_TENDMP.MAC\r
+COPY,COPY_COPY\r
+EDDT,EDDT_E,EDDT\r
+DDT,DDT_EDDT\r
+EDITOR,EDITOR_EDITOR\r
+SRCCOM,SRCCOM_SRCCOM.3\r
+CREF,CREF_CREF.V2\r
+FUDGE2,FUDGE2_FUDGE2\r
+LOAD1K,LOAD1K_K,LOADER.1\r
+LOADER,LOADER_LOADER.1\r
+MACRO,MACRO_MACRO.10\r
+PIP1,PIP1_K,PIP\r
+PIP,PIP_PIP\r
+RIM10B,RIM10B_RIM10B\r
index 1188fd1..8e4bb5b 100644 (file)
@@ -34,3 +34,4 @@ syscss.max=syscss.mac/s
 sysini.max=sysini.mac/s
 sysmak.max=sysmak.mac/s
 tendmp.max=tendmp.mac/s
+copy.max=copy.mac/s
diff --git a/src/copy.mac b/src/copy.mac
new file mode 100644 (file)
index 0000000..a3325df
--- /dev/null
@@ -0,0 +1,1037 @@
+TITLE COPY     V006    31MAR\r
+;COPYRIGHT 1968, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.\r
+REPEAT 0,<\r
+\r
+\r
+       COPY WILL RUN IN ANY AMOUNT OF CORE, HOWEVER, EFFICIENCY \r
+INCREASES WITH CORE SIZE.  SWITCHES ARE PRECEDED BY A SLASH OR\r
+ENCLOSED IN PARENTHESES AND MAY APPEAR ANYWHERE IN THE COMMAND\r
+STRING.  THE GENERAL COMMAND STRING FORMAT IS:\r
+       (OUTPUT DECTAPE):_(INPUT DECTAPE):/C\r
+\r
+       /C      COPY ALL BLOCKS FROM THE INPUT DECTAPE ONTO\r
+               THE OUTPUT DECTAPE.\r
+       /Z      ZERO ALL BLOCKS OF THE OUTPUT DECTAPE, CLEAR\r
+               THE DIRECTORY.\r
+       /V      PERFORM A WORD BY WORD COMPARISION BETWEEN\r
+               EVERY WORD OF THE INPUT AND OUTPUT DECTAPES.\r
+       /L      LOAD A BOOTSTRAP LOADER INTO A CORE BUFFER.\r
+               COPY LOOKS FOR "BSLDR.REL" ON LOGICAL DEVICE\r
+               "PTR". NOTE COPY MUST BE "SAVED" IF THE LOADER\r
+               IS TO BE PRESERVED WITH THE COPY CORE IMAGE.\r
+       /T      CAUSES A BOOTSTRAP LOADER TO BE WRITTEN ONTO\r
+               BLOCKS 0,1 AND 2 OF THE OUTPUT TAPE. COPY TYPES\r
+               "TYPE CORE BANK OR OFFSET FOR BSLDR."\r
+               OFFSET = OCTAL NUMBER 1000 TO 777600.\r
+               CORE-BANK = NNNK = 16K TO 256K,\r
+               EX:     NNNK=64K\r
+               THEN    OFFSET=177000 (TOP OF COPE - 1000)\r
+       /N      DON'T OUTPUT A DIRECTORY.\r
+       /6      LOOK FOR A DIRECTORY IN BLOCK ONE, NOT BLOCK 144.\r
+       /G      DON'T RESTART THE PROGRAM AFTER A PARITY ERROR\r
+               (BIT20), OUTPUT AN ERROR MESSAGE AND CONTINUE.\r
+    NO SW'S    SET C AND V SWITCHES (DEFAULT CONDITION).\r
+\r
+    NOTE........AT COMPLETION THE OUTPUT DECTAPE SHOULD BE REASSIGNED\r
+               TO ENSURE THAT THE DIRECTORY IN CORE IS UP TO DATE.\r
+\r
+\fTHE FOLLOWING MESSAGES MAY BE OUTPUT TO THE USER'S TELETYPE.\r
+\r
+       ?WRITE LOCK ERROR\r
+       ?INPUT (OR OUTPUT) DEVICE ERROR\r
+       ?INPUT (OR OUTPUT) CHECKSUM OR PARITY ERROR\r
+       ?INPUT (OR OUTPUT) BLOCK TOO LARGE\r
+       ?INPUT (OR OUTPUT) PREMATURE END OF FILE\r
+       000000 VERIFICATION ERRORS\r
+       ?COMMAND ERROR\r
+       ?SWITCH ERROR\r
+       ?DEVICE INIT FAILURE\r
+       ?DEVICE MUST BE A DECTAPE\r
+       ?INPUT AND OUTPUT DECTAPES MAY NOT BE THE SAME DEVICE.\r
+\r
+THE FOLLOWING MAY BE OUTPUT WHILE PROESSING "/L".\r
+       ?PTR INIT FAILURE\r
+       ?LOOKUP FAILED, "BSLDR.REL"\r
+       ?DATA ERROR ON DEVICE PTR\r
+       ?ILLEGAL BLOCKTYPE\r
+       ?CANNOT PROCESS EXTERNAL SYMBOLS\r
+       ?CANNOT PROCESS HIGH SEG'S\r
+       ?NO END BLOCK ENCOUNTERED\r
+       ?BOOTSTRAP LOADER WILL NOT FIT IN 3 BLOCKS\r
+\r
+THE FOLLOWING MAY BE OUTPUT WHILE PROCESSING "/T".\r
+       TYPE CORE BANK OR OFFSET FOR DTBOOT\r
+       ?OFFSET = 1000 TO 777600 (OCTAL)\r
+       ?EXPECTED FORMAT IS "NNNK" = 16K T0 256K\r
+       ?BOOTSTRAP LOADER IS NOT IN COPY; TRY "/L".\r
+>\r
+\f\r
+FLP=400000             ;NOT SW MODE                    **FLAGS ARE IN LH OF F**\r
+FLC=200000             ;COPY\r
+FLZ=100000             ;ZERO\r
+FLV= 40000             ;VERIFY\r
+FLT= 20000             ;TENDMP\r
+FLG= 10000             ;IGNORE PARITY ERRORS\r
+FLL=  4000             ;LIST DIR\r
+FLK=  2000             ;COLON\r
+FLA=  1000             ;LEFT ARROW\r
+FLI=   400             ;INPUT DEVICE\r
+FL2=   200             ;CHANEL TWO\r
+HSW=   100             ;HELP\r
+LSW=   20              ;REQ TO LOAD A BSLDR\r
+LFL=   10              ;A BOOTSTRAP LOADER IS IN "COPY"\r
+NSW=     4             ;NO DIRECTORY\r
+FL6=     2             ;6 FORMATTED\r
+FPT=     1             ;A PDP-10\r
+ANYSW=FLC+FLZ+FLV+FLT  ;ANYSW=0 IMPLIES FLC+FLV\r
+JOBVER=137\r
+\r
+AC0=0\r
+AC1=1\r
+AC2=2\r
+AC3=3\r
+AC4=4\r
+AC5=5\r
+AC6=6\r
+V1=1   ;VERIFY CMDLST\r
+VZ1=2  ;CMDLST TERMINATOR\r
+V2=3   ;VERIFY CMDLST\r
+VZ2=4  ;CMDLST TERM\r
+BP=5   ;BYTE POINTER\r
+C=6    ;CURRENT CHARACTER\r
+LOC=7  ;BLOCK NUMBER\r
+T=10   ;TEMP\r
+U=T+1  ;TEMP\r
+F=12   ;FLAGS\r
+UNSD2=14       ;UNUSED\r
+UNSD3=15       ;UNUSED\r
+IOS=16 ;IO STATUS\r
+P=17   ;PUSH DOWN LIST\r
+       EXTERN  JOBFF,JOBREL,JOBSA,JOBREN\r
+       LOC     JOBVER\r
+       XWD     0,6     ;;VERSION #\r
+       RELOC\r
+\f\r
+ST:    CALLI   0\r
+       MOVE    P,[IOWD 20,TTYIN+23]    ;PUSH DOWN LIST\r
+       INIT    17,1                    ;ASCII LINE\r
+       SIXBIT  /TTY/\r
+       XWD     TOUT,TIN\r
+       HALT    .                       ;INIT ERROR\r
+       PUSH    P,JOBFF\r
+       MOVEI   T,TTYIN\r
+       MOVEM   T,JOBFF\r
+       INBUF   17,1                    ;SET THE BUFFER ADR TO TTYIN\r
+       MOVEI   T,TTYOUT\r
+       MOVEM   T,JOBFF\r
+       OUTBUF  17,1                    ;SET THE BUFFER ADR TO TTYOUT\r
+       OUTPUT  17,                     ;DUMMY\r
+       SETZB   F,IDEV\r
+       SETZB   T,ODEV\r
+       POP     P,JOBFF\r
+\r
+       MOVE    T,JOBREL\r
+       SUB     T,JOBFF                 ;T=NO. OF FREE LOC\r
+       MOVE    C,JOBFF         ;\r
+       MOVEI   AC0,3777(C)     ;\r
+       CAIGE   T,3777          ;TRY FOR AT LEAST 2K OF BUFFER AREA\r
+       CALLI   AC0,11          ;CORE UUO\r
+       JFCL                    ;O WELL\r
+       SUBI    C,1             ;IOWD FORMAT "ADR-1"\r
+       ANDI    T,-200          ;T=NO. OF FREE WORDS\r
+       MOVNM   T,U             ;IOWD FORMAT "-N"\r
+       LSH     T,-7            ;T=NO. OF BLOCKS PER COPY INPUT\r
+       MOVEM   T,INC           ;COPY INCREMENT\r
+       LSH     T,-1            ;T=NO. OF BLOCKS PER VERIFY INPUT\r
+       MOVEM   T,INCV          ;VERIFY INCREMENT\r
+       HRLM    U,C             ;ASSEMBLE\r
+       MOVEM   C,LISTC         ;COPY IOWD\r
+       ASH     U,-1            ;HALVE THE "-N" FOR VERIFY\r
+       TRNE    U,100           ;"-N" MUST AGREE WITH THE INCREMENT\r
+       ADDI    U,100           ;ADJUST\r
+       HRL     C,U             ;ASSEMBLE\r
+       MOVEM   C,LISTV1        ;VERIFY IOWD #1\r
+       MOVMM   U,U             ;\r
+       ADD     C,U             ;ASSEMBLE\r
+       MOVEM   C,LISTV2        ;VERIFY IOWD #2\r
+\r
+\f      MOVEI   C,"*"\r
+       PUSHJ   P,TYPC                  ;OUTPUT CHAR\r
+       INPUT   17,\r
+       MOVE    F,FSAVE                 ;INITIAL FLAGS\r
+       SKIPA   BP,[POINT 6,ODEV]       ;ASSUME AN OUTPUT DEV\r
+COIDEV:        MOVE    BP,[POINT 6,IDEV]       ;INPUT IF LEFT-ARROW + COLON WERE SEEN  \r
+COTGET:        PUSHJ   P,TYPGET                ;RETURN A CHAR TO C\r
+       CAIN    C,"/"\r
+       JRST    COSLSH                  ;SLASH\r
+       CAIN    C,"("\r
+       JRST    COLPRN                  ;LEFT PAREN\r
+       CAIN    C,":"\r
+       JRST    COCOLN                  ;COLON\r
+       CAIE    C,12\r
+       CAIN    C,15\r
+       JRST    COCRET                  ;CR OR LF\r
+       CAIE    C,175                   ;ALTMODE?\r
+       CAIN    C,33                    ;ALTMODE?\r
+       JRST    COCRET                  ;YES\r
+       CAIN    C,176                   ;ALTMODE?\r
+       JRST    COCRET                  ;YES\r
+       CAIE    C,"="                   ;==_\r
+       CAIN    C,"_"\r
+       JRST    COLARO                  ;LEFT ARROW\r
+       CAIGE   C,"0"                   ;\r
+       JRST    ERRCMD                  ;\r
+       CAILE   C,"9"                   ;ILLEGAL CHAR?\r
+       CAIL    C,"A"                   ;\r
+       CAILE   C,"Z"                   ;\r
+       JRST    ERRCMD                  ;\r
+       SUBI    C,40                    ;6 BITIZE IT\r
+       TLNE    BP,770000               ;ACCEPY 6 CHARS ONLY\r
+       IDPB    C,BP                    ;ASSEMBLE AN I/O DEV NAME\r
+       JRST    COTGET                  ;\r
+\fCOLPRN:       TLZA    F,FLP                   ;ENTER PAREN MODE\r
+COEXIT:        JUMPL   F,COTGET                ;NORMAL EXIT\r
+COSLSH:        PUSHJ   P,TYPGET                ;SLASH - RETURN SW IN C\r
+       MOVSI   U,-LEN                  ;U=-SWTAB LEN,0\r
+COSWLP:        MOVE    T,SWTAB(U)              ;T=FLAG,CHAR\r
+       CAIN    C,(T)                   ;C=0,CHAR\r
+       TDOA    F,T                     ;F=FLAGS,CHARS ANDED\r
+       AOBJN   U,COSWLP                ;MORE SW'S? LOOP\r
+       JUMPL   U,COEXIT                ;MATCH OR MORE SW? LOOP\r
+       JRST    ERRSW                   ;NOT A SWITCH\r
+\r
+COLARO:        TLZE    F,FLK                   ;CLEAR COLON FLAG\r
+       TLOE    F,FLA                   ;SET LEFT ARROW FLAG\r
+       JRST    ERRCMD                  ;TOO MANY ARROWS,NOT ENOUGH KOLONS\r
+       JRST    COIDEV                  ;NEXT DEVICE MUST BE INPUT\r
+\r
+COCOLN:        TLZ     BP,770000               ;ACCEPT NO MORE CHARS.\r
+       TLON    F,FLK                   ;SET KOLON FLAG\r
+       JUMPGE  BP,COTGET               ;NORMAL EXIT\r
+       JRST    ERRCMD                  ;NULL NAME, TOO MANY COLONS\r
+\r
+COCRET:        TLZE    F,HSW           ;HELP?\r
+       JRST    HELP            ;\r
+       TLZE    F,LSW           ;LOADING A LOADER?\r
+       JRST    BSLDR           ;YES\r
+       TLNE    F,FLA                   ;LEFT ARO ?\r
+       JRST    COSTRT                  ;_,SO OK\r
+       SKIPE   ODEV                    ;\r
+       JRST    ERRCMD                  ;NO_,SOME ODEV\r
+       TLNN    F,ANYSW                 ;\r
+       JRST    ST                      ;NO_,NO ODEV,NO SW =*\r
+       JRST    ERRCMD          ;NO_,NO ODEV, NO SW\r
+\r
+COSTRT:        TLNN    F,ANYSW         ;ANY SW=SKIP\r
+       TLO     F,FLC+FLV       ;DEFAULT=COPY+VERIFY\r
+       TLNE    F,FLC           ;IF COPY\r
+       TLZ     F,FLZ           ;DONT ZERO\r
+       TLNE    F,FLZ           ;IF ZERO\r
+       TLZ     F,FLV           ;DONT VERIFY\r
+       SKIPN   T,IDEV\r
+       TLNE    F,FLC+FLV\r
+       JUMPE   T,ERRCMD        ;AN INDEVICE IS REQUIRED\r
+       TLNN    F,FLT           ;IS 10DMP WANTED?\r
+       JRST    CINIT           ;NO, PROCEED\r
+\r
+\f      ;HERE TO ACCEPT THE BOOTSTRAP LOADER OFFSET (/T)\r
+\r
+CTENDM:        TLNN    F,LFL           ;IS A BOOTSTRAP LOADER LOADED?\r
+       JRST    ERRTNH          ;NO, COMPLAIN\r
+CTEN1: SETZB   AC1,OFFSET      ;\r
+       TTCALL  3,[ASCIZ /\r
+TYPE CORE BANK OR OFFSET FOR /]\r
+       MOVEI   BP,PNAME\r
+       PUSHJ   P,TYPEIT        ;BSLDR'S NAME\r
+       INPUT   17,\r
+CTEN0: PUSH    P,TIN+1         ;SAVE PTR FOR RESCAN\r
+       MOVEI   AC0,6           ;MAX CHARS TO ACCEPT\r
+       PUSHJ   P,TYPGET        ;\r
+       CAIN    C,"K"           ;\r
+       JRST    CTEN10          ;K, MUST BE A CORE-BANK\r
+       SOJG    AC0,.-3\r
+       POP     P,TIN+1         ;\r
+       MOVEI   AC0,6           ;ACCEPT 6 NUMBERS\r
+CTEN2: PUSHJ   P,TYPGET        ;GET A CHAR\r
+       CAIL    C,"0"           ;\r
+       CAILE   C,"7"           ;\r
+       JRST    CTEN7           ;NOT A OCTAL NUMBER, TERM?\r
+       LSH     AC1,3           ;MAKE ROOM\r
+       TRZ     C,777770        ;CLEAR HI-ORDER BITS\r
+       ADD     AC1,C           ;  FOR THIS CHAR\r
+       SOJG    AC0,CTEN2       ;LOOK FOR 6 CHARS\r
+CTEN3: CAIL    AC1,1000                ;LOWER LIMIT\r
+       CAILE   AC1,777600      ;UPPER LIMIT\r
+       JRST    CTEN8           ;COMPLAIN\r
+CTEN4: HRLI    AC1,W           ;SO [HRRI W,@OFFSET] WILL WORK\r
+       MOVEM   AC1,OFFSET      ;SAVIT\r
+       JRST    CINIT           ;\r
+\r
+CTEN7: CAIL    C,12            ;"LF"\r
+       CAILE   C,15            ;"CR"\r
+       CAIN    C,33            ;ALTMODE\r
+       JRST    CTEN3           ;A TERMINATOR\r
+CTEN8: TTCALL  3,[ASCIZ /\r
+?OFFSET = 1000 TO 777600 (OCTAL)/]\r
+       JRST    CTEN1           ;\r
+\r
+\f      ;LOOK FOR A CORE BANK, 16K-256K\r
+CTEN10:        POP     P,TIN+1         ;RESCAN TTYBUF\r
+       MOVEI   AC0,3           ;ONLY 3 CHARS MAX IS "256"\r
+CTEN11:        PUSHJ   P,TYPGET        ;\r
+       CAIL    C,"0"           ;\r
+       CAILE   C,"9"           ;\r
+       JRST    CTEN17          ;\r
+       IMULI   AC1,^D10        ;MAKE ROOM FOR NEXT CHAR... DEC TO OCT\r
+       ANDI    C,17            ;EXTRACT DECIMAL NUMBER\r
+       ADD     AC1,C           ;\r
+       SOJG    AC0,CTEN11      ;\r
+\r
+CTEN12:        TRNE    AC1,17          ;CHECK FOR MODULO 16\r
+       JRST    CTEN18                  ;ILL\r
+       JUMPE   AC1,CTEN18              ;ILL\r
+       LSH     AC1,-4          ;PUSH OFF ZEROES\r
+       CAILE   AC1,20          ;MAX IS 256\r
+       JRST    CTEN18  ;ILL\r
+       IMULI   AC1,40000       ;TURN IT INTO AN OFFSET\r
+       SUBI    AC1,1           ;\r
+       TRZ     AC1,777         ;1K BELOW TOP OF THIS BANK\r
+       JRST    CTEN4           ;\r
+CTEN17:        CAIN    C,"K"           ;SKIP IF TERM\r
+       JRST    CTEN12          ;\r
+\r
+CTEN18:        TTCALL  3,[ASCIZ /\r
+?EXPECTED FORMAT IS "NNNK" = 16K TO 256K.\r
+/]\r
+       JRST    CTEN1\r
+\fCINIT:        MOVEI   T,134           ;BUFRD MODE\r
+       PUSHJ   P,INIT          ;FIRST INIT\r
+       TLNE    F,FLC!FLZ       ;BEGIN HERE  ___******\r
+       PUSHJ   P,COPZRO        ;ZERO OR COPY\r
+       TLNE    F,FLC!FLZ       ;IF C OR Z-\r
+       PUSHJ   P,LALA                  ;THEN REWIND\r
+       TLNN    F,FLZ           ;WASIT /Z ?\r
+       JRST    CNOZRO          ;NO\r
+       SETSTS  2,16            ;YES\r
+       CALLI   2,13            ;CLEAR DIR IN CORE\r
+       RELEAS  2,              ;AND ON TAPE\r
+       MOVEI   T,14            ;AND\r
+       PUSHJ   P,INIT          ;REINIT\r
+CNOZRO:        TLNE    F,FLV           ;VERIFY ?\r
+       PUSHJ   P,VERZRO        ;YES\r
+       TLNE    F,FLV           ;IF VERIFY-\r
+       PUSHJ   P,LALA  ;THEN REWIND\r
+       TLNE    F,FLT           ;TEN DUMP ?\r
+       PUSHJ   P,TENINT        ;YES\r
+       JRST    ST              ;GO AGAIN ******\r
+\r
+LALA:  MTAPE   2,1             ;\r
+       SKIPE   C,IDEV          ;\r
+       MTAPE   1,1             ;\r
+       JFCL    1,.+1           ;PROCESSOR TEST\r
+       JRST    .+1             ;\r
+       JFCL    1,.+3           ;6-JUMP\r
+       TLO     F,FPT           ;PDP-10 FLAG\r
+       JRST    LSTEST          ;10-JUMP\r
+       JUMPE   C,LSTES0        ;JUMP IF NO INPUT DEV\r
+       USETI   1,1\r
+       INPUT   1,REWIND        ;IOWD 1,DATA\r
+LSTES0:        USETI   2,1\r
+       INPUT   2,REWIND\r
+LSTEST:        TLZE    F,FLL           ;LIST A DIR?\r
+       JRST    DLST            ;YES\r
+       MOVEI   C,^D15          ;SECONDS\r
+GDNITE:        TLNE    F,FPT           ;6-SKIP\r
+       CALLI   C,31            ;TO SLEEP\r
+       POPJ    P,              ;\r
+\r
+SWTAB: XWD     FLP,")"         ;XIT\r
+       XWD     FLC,"C"         ;COPY\r
+       XWD     FLZ,"Z"         ;ZERO\r
+       XWD     FLV,"V"         ;VERIFY\r
+       XWD     FLT,"T"         ;TENDMP\r
+       XWD     FLG,"G"         ;IGNORE\r
+       XWD     HSW,"H"         ;HELP\r
+       XWD     LSW,"L"         ;LOAD BSLDR\r
+       XWD     NSW,"N"         ;NO DIR\r
+       XWD     FL6,"6"         ;PDP6 DIR\r
+       LEN=.-SWTAB\r
+\fDSAV: TLON    F,FLL           ;ENTER THIS CODE ONCE ONLY\r
+       TLNE    F,FL6           ;SKIP IF ITS NOT 6FMT\r
+       POPJ    P,              ;2ND PASS OR 6FMT-EXIT.\r
+       MOVEI   1,-144(LOC)     ;FIRST BLK OF NEXT OUTPUT\r
+       SUB     1,INC           ;FIND A\r
+       IMULI   1,-200          ;     DIRECTORY,\r
+       ADD     1,LISTC         ;GRAB\r
+       HRLI    1,1(1)          ;    A\r
+       HRRI    1,DIRECT        ;     DIRECTORY.\r
+       BLT     1,DIRECT+177    ;SAVE IT.\r
+       POPJ    P,              ;RETURN\r
+\r
+DATE:  SETZ    AC2,\r
+       LDB     AC5,DATEP\r
+       IDIVI   AC5,^D31        ;PICK OFF THE DAY\r
+       ADDI    AC6,1           ;MAKE IT RIGHT\r
+       PUSHJ   P,DATE1         ;RETURNS TWO SIXBIT NUMBERS\r
+       DPB     AC6,DAY         ;XXDDXX\r
+       IDIVI   AC5,^D12        ;PICK OFF THE MONTH\r
+       MOVE    AC6,MONPH(AC6)  ;CONVERT TO ALPHA\r
+       DPB     AC6,MONTH       ;MMDDXX\r
+       MOVEI   AC6,^D64        ;GET THE BASE YEAR\r
+       ADD     AC6,AC5         ;PLUS YEARS SINCE THEN\r
+       PUSHJ   P,DATE1         ;SIXBIT\r
+       DPB     AC6,YEAR        ;YYMMDD-DATE FINISHED\r
+       POPJ    P,              ;\r
+\r
+DATE1: IDIVI   AC6,^D10        ;DIVIDE OUT A DECIMAL NUMBER\r
+       LSH     AC6,6           ;MAKE ROOM FOR THE REMIANDER\r
+       ADDI    AC6,152020(LOC) ;CONVERT TO SIXBIT\r
+       POPJ    P,              ;RETURN\r
+\r
+DAY:   POINT   12,AC2,11\r
+MONTH: POINT   24,AC2,35\r
+YEAR:  POINT   18,AC3,17\r
+DATEP: POINT   12,DNAM+^D22(AC1),35\r
+FREE:  SIXBIT  /FREE:  +/\r
+BLKS:  SIXBIT  /-BLKS  +/\r
+FILES: SIXBIT  /-FILES#/\r
+\fMONPH:        SIXBIT  /  -JAN/\r
+       SIXBIT  /  -FEB/\r
+       SIXBIT  /  -MAR/\r
+       SIXBIT  /  -APR/\r
+       SIXBIT  /  -MAY/\r
+       SIXBIT  /  -JUN/\r
+       SIXBIT  /  -JUL/\r
+       SIXBIT  /  -AUG/\r
+       SIXBIT  /  -SEP/\r
+       SIXBIT  /  -OCT/\r
+       SIXBIT  /  -NOV/\r
+       SIXBIT  /  -DEC/\r
+\r
+               ;STANDARD OCTAL TO ASCII ROUTINE\r
+DECMAL:        IDIVI   C,^D10          ;\r
+       HRLM    C+1,(P)         ;\r
+       SKIPE   C               ;\r
+       PUSHJ   P,DECMAL        ;\r
+       HLRZ    C,(P)           ;\r
+       ADDI    C,60            ;\r
+       JRST    TYPC            ;\r
+\r
+DLST:  TLNE    F,NSW           ;DIRECTORY WANTED?\r
+       JRST    DXIT            ;NO\r
+       TLNE    F,FL6           ;6FMT?\r
+       JRST    D6LST           ;YES.\r
+DLST1: SETZM   TOTAL           ;TOTAL FREE BLOCKS\r
+       MOVE    3,[XWD TOTAL,TOTAL+1]   ;CLEAR THE ^D23\r
+       BLT     3,TOTAL+^D22            ;    WORD TABLE\r
+       MOVE    2,[POINT 5,DIRECT,4]    ;POINT TO FIRST BLK SLOT\r
+       MOVEI   1,<7*^D83>-3            ;1102 SLOTS\r
+DLST2: ILDB    3,2                     ;PICK UP A FILE NUMBER\r
+       CAIG    3,^D22                  ;SKIP IF BLK IS SPECIAL\r
+       AOS     TOTAL(3)                ;COUNT BLKS/FILE\r
+       SOJG    1,DLST2                 ;LOOP\r
+       MOVEI   BP,FREE         ;FREE:\r
+       PUSHJ   P,TYPEIT                ;\r
+       MOVE    C,TOTAL         ;NUMBER OF FREE BLOCKS\r
+       PUSHJ   P,DECMAL                ;\r
+       MOVEI   BP,BLKS         ;-BLKS\r
+       PUSHJ   P,TYPEIT                ;\r
+       MOVEI   C,^D22          ;26 FILES MAX\r
+       HRLZI   AC1,-^D22               ;\r
+DLST7: SKIPE   DNAM(AC1)       ;\r
+       SOS     C               ;DECREMENT MAX NO. OF BLKS\r
+       AOBJN   AC1,DLST7       ;\r
+       PUSHJ   P,DECMAL        ;\r
+       MOVEI   BP,FILES        ;\r
+       PUSHJ   P,TYPEIT        ;\r
+       HRLZI   1,-^D22                 ;LOOP 26 TIMES\r
+\r
+\fDLST3:        HRLZI   3,161300                ;TERMINATOR\r
+       SKIPN   2,DNAM(1)               ;FILE NAME\r
+       JRST    DLST5                   ;\r
+       MOVEI   BP,2                    ;\r
+       PUSHJ   P,TYPEIT                ;\r
+       HLLZ    2,DNAM+^D22(1)          ;EXTENSION\r
+       HRRI    2,13                    ;\r
+       MOVEI   BP,2                    ;\r
+       PUSHJ   P,TYPEIT                ;\r
+       MOVE    C,TOTAL+1(1)            ;NUMBER OF BLKS\r
+       PUSHJ   P,DECMAL                ;\r
+       MOVEI   C,"     "                       ;SPACE\r
+       PUSHJ   P,TYPC                  ;\r
+       PUSHJ   P,DATE                  ;CREATION DATE\r
+       MOVEI   BP,2                    ;\r
+       HRRI    3,30000                 ;"#"\r
+       PUSHJ   P,TYPEIT                ;\r
+DLST5: AOBJN   1,DLST3                 ;LOOP\r
+DXIT:  MOVEI   C,^D15          ;15 SECONDS\r
+       JRST    GDNITE          ;TO SLEEP.\r
+\r
+D6LST: MOVEI   0,36            ;MAX NO. OF ENTRIES\r
+       HRRZ    1,DIRECT        ;LOC OF FIRST DIR BLK\r
+D6BEG: HRLI    3,130000        ;"-" TERMINATOR\r
+       MOVEI   BP,2            ;\r
+       SKIPN   2,DIRECT(1)     ;IS THERE A FILENAME?\r
+       JRST    DXIT            ;NORMAL EXIT\r
+       PUSHJ   P,TYPEIT        ;FILENAME\r
+       HLLZ    2,DIRECT+1(1)   ;EXTENSION\r
+       SKIPN   2               ;IF NULL,\r
+       JRST    D6FIN           ;JUMP\r
+       MOVEI   C,"     "       ;OTHERWISE\r
+       PUSHJ   P,TYPC          ;TAB\r
+       HRRI    2,130000        ;"-"\r
+       MOVEI   BP,2            ;TERM.\r
+       PUSHJ   P,TYPEIT        ;\r
+D6FIN: PUSHJ   P,TYPCL         ;CR-LF\r
+       ADDI    1,4             ;\r
+       SOJG    0,D6BEG         ;IN CASE\r
+       JRST    DXIT            ;DIR WAS FULL\r
+\f\r
+TYPEIT:        HRLI    BP,440600               ;BP=MESSAGE ADR\r
+TYPLOP:        ILDB    C,BP                    ;\r
+       CAIN    C,13                    ;PLUS?\r
+       POPJ    P,                      ;GET THE WHOLE MESSASE\r
+       CAIN    C,3                     ;#?\r
+       JRST    TYPCL                   ;APPEND CR LF AND TYPE\r
+       ADDI    C,40                    ;ASCIZE IT\r
+       IDPB    C,TOUT+1                ;TO THE BUFFER\r
+       JRST    TYPLOP                  ;+LOOP\r
+\r
+TYPGET:        ILDB    C,TIN+1                 ;GET CHAR\r
+       CAIE    C," "                   ;SPACE?\r
+       CAIN    C,"     "               ;TAB?\r
+       JRST    TYPGET                  ;FORGET IT\r
+       CAIGE   C,141                   ;LC "A"\r
+       POPJ    P,\r
+       CAIG    C,172                   ;LC "Z"\r
+       SUBI    C,40                    ;LC TO UC\r
+       POPJ    P,\r
+\r
+TYPCCL:        IDPB    C,TOUT+1                ;TYPE CHAR,CRLF\r
+TYPCL: MOVEI   C,15                    ;TYPE CRLF\r
+       IDPB    C,TOUT+1\r
+       MOVEI   C,12\r
+TYPC:  IDPB    C,TOUT+1                ;TYPE CHAR\r
+TYPBUF:        OUTPUT  17,                     ;DO IT\r
+       POPJ    P,\r
+\r
+\fHELP: TTCALL  3,.+2\r
+       JRST    COCRET\r
+ASCIZ %\r
+/C COPY \r
+/V VERIFY\r
+/Z ZERO ALL BLOCKS\r
+/L LOAD A BOOTSTRAP LOADER FROM PTR:BSLDR.REL\r
+/T "TYPE CORE BANK OR OFFSET FOR BSLDR"\r
+       CORE-BANK = NNNK (16K TO 256K)\r
+       OFFSET = <OCTAL 1000 TO 777600>\r
+   WRITE A BSLDR ONTO BLOCKS 0,1 AND 2\r
+/N DONT TYPE A DIRECTORY\r
+/6 PDP6 DIR\r
+/G IGNORE ERRORS\r
+NO SW'S IMPLY /C/V\r
+%\r
+\fERRT1I:       TLOA    F,FLI                   ;INPUT ERROR\r
+ERRT1O:        TLZ     F,FLI                   ;OUTPUT ERROR\r
+       STATUS  1,IOS                   ;STATUS TO IOS\r
+       TRNE    IOS,360000              ;ALL THE ERRORS\r
+       JRST    ERRCHK                  ;FOUND AN ERROR\r
+       POPJ    P,\r
+\r
+ERRT2I:        TLOA    F,FLI                   ;INPUT ERROR\r
+ERRT2O:        TLZ     F,FLI                   ;OUTPUT ERROR\r
+       STATUS  2,IOS                   ;FLAGS TO IOS\r
+       TRNN    IOS,760000              ;PLUS WRITE LOCK\r
+       POPJ    P,                      ;NO ERRORS\r
+       TLO     F,FL2                   ;IT'S A CHANNEL 2 ERROR\r
+\r
+ERRCHK:        TRNE    IOS,400000\r
+       PUSHJ   P,ERR400                ;WRITE LOCK\r
+       TRNE    IOS,200000\r
+       PUSHJ   P,ERR200                ;DEVICE ERROR\r
+       TRNE    IOS,100000\r
+       PUSHJ   P,ERR100                ;CKSUM/PARITY\r
+       TRNE    IOS,040000\r
+       PUSHJ   P,ERR040                ;BLOCK TOO LARGE\r
+       TRNE    IOS,020000              ;PREMATURE EOF,PDP9-DTA?\r
+       PUSHJ   P,ERR020                ;\r
+       TRNN    IOS,600000              ;THESE BITS IMPLY RESTART\r
+       TLNN    F,FLG                   ;/G+PARITY ERR = CONTINUE\r
+       JRST    ST                      ;RESTART\r
+       TRZ     IOS,740000              ;ZERO IN\r
+       TLNN    F,FL2\r
+       SETSTS  1,(IOS)                 ;TURN OFF\r
+       TLZE    F,FL2\r
+       SETSTS  2,(IOS)                 ;AND\r
+       POPJ    P,                      ;POP OUT\r
+\fERR400:       MOVEI   BP,MES400\r
+       JRST    TYPEIT\r
+MES400:        SIXBIT  /?WRITE LOCK ERROR#/\r
+ERR200:        PUSHJ   P,ERRCOM\r
+       MOVEI   BP,MES200\r
+       JRST    TYPEIT\r
+MES200:        SIXBIT  / DEVICE ERROR#/\r
+ERR100:        PUSHJ   P,ERRCOM\r
+       MOVEI   BP,MES100\r
+       JRST    TYPEIT\r
+MES100:        SIXBIT  / CHECKSUM OR PARITY ERROR#/\r
+ERR040:        PUSHJ   P,ERRCOM\r
+       MOVEI   BP,MES040\r
+       JRST    TYPEIT\r
+MES040:        SIXBIT  / BLOCK TOO LARGE#/\r
+ERR020:        PUSHJ   P,ERRCOM\r
+       MOVEI   BP,MES020\r
+       JRST    TYPEIT\r
+MES020:        SIXBIT  / PREMATURE END OF FILE#/\r
+ERRCOM:        MOVEI   BP,SXBINP\r
+       TLNN    F,FLI\r
+       MOVEI   BP,SXBOUT\r
+       JRST    TYPEIT\r
+SXBINP:        SIXBIT  /?INPUT+/\r
+SXBOUT:        SIXBIT  /?OUTPUT+/\r
+\fERRVER:       MOVE    T,[POINT 6,MESVER]\r
+       MOVE    BP,[POINT 3,U,17]\r
+ERRVE1:        ILDB    C,BP            ;LOAD AN OCTAL NUMBER\r
+       ADDI    C,20            ;6BITIZE IT\r
+       IDPB    C,T             ;INSERT IN MESS\r
+       TLNE    T,770000        ;ONE WORD ONLY\r
+       JRST    ERRVE1          ;LOOP 6 TIMES\r
+       MOVEI   BP,MESVER\r
+       JRST    TYPEIT\r
+MESVER:        SIXBIT  /000000 VERIFICATION ERRORS#/\r
+ERRCMD:        MOVEI   BP,MESCMD\r
+       PUSHJ   P,TYPEIT\r
+       JRST    ST\r
+MESCMD:        SIXBIT  /?COMMAND ERROR#/\r
+ERRSW: MOVEI   BP,MESSW\r
+       PUSHJ   P,TYPEIT\r
+       JRST    ST\r
+MESSW: SIXBIT  /?SWITCH ERROR#/\r
+ERRIN1:        SKIPA   T,IDEV\r
+ERRIN2:        MOVE    T,ODEV\r
+       TTCALL  3,[ASCIZ /?/]\r
+       MOVEM   T,MESINI\r
+       MOVEI   BP,MESINI\r
+       PUSHJ   P,TYPEIT\r
+       JRST    ST\r
+MESINI:        SIXBIT  /       INIT FAILURE#/\r
+ERRDT1:        SKIPA   T,IDEV\r
+ERRDT2:        MOVE    T,ODEV\r
+       TTCALL  3,[ASCIZ /?/]\r
+       MOVEM   T,MESDTA\r
+       MOVEI   BP,MESDTA\r
+       PUSHJ   P,TYPEIT\r
+       JRST ST\r
+MESDTA:        SIXBIT  /       MUST BE A DECTAPE#/\r
+\fERRTNH:       MOVEI   BP,MESTNH\r
+       PUSHJ   P,TYPEIT\r
+       JRST    ST\r
+MESTNH:        SIXBIT  %?BOOTSTRAP LOADER IS NOT IN COPY. TRY "/L".#%\r
+\rPTERR1:       TTCALL  3,[ASCIZ /?PTR INIT FAILURE\r
+/]\r
+       JRST    ST\r
+\r
+PTERR2:        TTCALL  3,[ASCIZ /?LOOKUP FAILED, "BSLDR.REL"\r
+/]\r
+       JRST    ST\r
+\f      ;WRITE A BOOOTSTRAP LOADER IN BLOCKS 0,1 AND 2\r
+TENINT:        PUSH    P,JOBFF\r
+       SETSTS  2,134           ;SO I CAN WRITE IN BLK 0\r
+       USETO   2,0\r
+       OUTBUF  2,1\r
+       OUTPUT  2,              ;DUMMY!\r
+\r
+       MOVE    AC0,[POINT 36,BSBUF]\r
+       MOVEM   AC0,BSPTR       ;WHERE THE LOADER IS KEPT\r
+       HRRZ    AC0,JOBFF       ;\r
+       HRLI    AC0,(POINT 36,)\r
+       MOVEM   AC0,FFPTR       ;WHERE ITS WRITTEN FROM\r
+\r
+       ILDB    W,BSPTR         ;IOWD\r
+       MOVE    CNT,OFFSET      ;\r
+       HRRI    W,-1(CNT)       ;FINISH THE IOWD\r
+       IDPB    W,FFPTR         ;\r
+\r
+TEN1:  PUSHJ   P,NBLK          ;GET THE NEXT BLOCK, SKIPE XIT IS NORMAL\r
+        JRST   RELDA5          ;TERMINATE THE BSLDR\r
+       TRNN    CNT,-1          ;EMPTY?\r
+       JRST    TEN1            ;YES\r
+       ILDB    OS,BSPTR        ;OFFSET FOR THIS BLK\r
+       LSH     RB,2            ;OS'S RELBITS\r
+       AOBJN   CNT,.+1         ;ACCOUNT FOR IT\r
+RELDAT:        TRNN    CNT,-1  ;ANY MORE DATA?\r
+       JRST    TEN1            ;NO\r
+       ILDB    W,BSPTR         ;PROGRAM WORD\r
+       JUMPGE  RB,RELDA1       ;CHECK LEFT HALF\r
+       HRLZ    I,OFFSET                ;\r
+       ADD     W,I             ;RELOCATE IT\r
+\r
+RELDA1:        TLNE    RB,200000       ;CHECK RIGHT HALF\r
+       HRRI    W,@OFFSET       ;RELOCATE IT\r
+       IDPB    W,FFPTR         ;\r
+       LSH     RB,2            ;NEXT RELOCATION BITS\r
+       AOBJN   CNT,RELDAT      ;NEXT WORD\r
+       TRNE    CNT,-1          ;\r
+       PUSHJ   P,NSEC          ;NEXT SECTION OF BLOCK\r
+       JRST    RELDAT          ;\r
+\r
+\fNBLK: ILDB    CNT,BSPTR       ;GET THE BLOCK WRD CNT\r
+       SKIPL   CNT             ;\r
+       AOS     (P)             ;SKIP EXIT IS NORMAL\r
+       MOVN    CNT,CNT         ;\r
+NSEC:  ILDB    RB,BSPTR        ;RELOCATION BITS\r
+       HRLI    CNT,-22         ;WRDS/SECTION\r
+       POPJ    P,\r
+\r
+RELDA5:        MOVE    W,SASAV         ;THIS JRST IS EXECUTED\r
+       HRR     W,OFFSET(W)     ;RELOCATE THE SA ADR\r
+       IDPB    W,FFPTR         ;THE LAST WORD\r
+       HRLZ    BP,JOBFF        ;BEG OF BSLDR\r
+       HRR     BP,OUT2+1       ;BLT PTR\r
+       MOVEM   BP,C            ;SAVE IT\r
+       BLT     BP,177(C)       ;ZAP 1\r
+       OUTPUT  2,              ;BLK 0\r
+       ADD     C,[XWD 200,0]\r
+       MOVEM   C,BP            ;2ND PTR SAVED\r
+       BLT     BP,177(C)       ;ZAP 2\r
+       USETO   2,1\r
+       OUTPUT  2,              ;BLK 1\r
+       ADD     C,[XWD 200,0]\r
+       MOVEM   C,BP\r
+       BLT     BP,177(C)\r
+       USETO   2,2\r
+       OUTPUT  2,\r
+       PUSHJ   P,ERRT2O        ;ERRORS?\r
+       POP     P,JOBFF\r
+       POPJ    P,\r
+\fCOPZRO:       PUSH    P,JOBFF         ;SAVE JOBFF\r
+       TLNE    F,FLC           ;SKIP IO TO UNASSIGNED CHAN.\r
+       SETSTS  1,134           ;\r
+       SETSTS  2,134           ;\r
+       OUTBUF  2,1             ;WITH ONE BUFFER MODE-134\r
+       USETO   2,0             ;FOR BLOCK ZERO\r
+       OUTPUT  2,              ;DUMMY\r
+       TLNN    F,FLC           ;COPY\r
+       JRST    COPBKZ          ;NO, MUST BE ZERO\r
+       INBUF   1,1             ;ONE BUFFER MODE-134\r
+       USETI   1,0             ;BLOCK ZERO\r
+       INPUT   1,              ;GET IT\r
+       PUSHJ   P,ERRT1I        ;OK?\r
+       MOVEI   T,177           ;LOOP LENGTH\r
+       LDB     C,IN1+1         ;FIRST WORD\r
+       DPB     C,OUT2+1        ;TO THE BUFFER\r
+COPLPZ:        ILDB    C,IN1+1         ;OTHER WORDS\r
+       IDPB    C,OUT2+1        ;TO THE BUFFER\r
+       SOJG    T,COPLPZ        ;TO LOOP\r
+       SETSTS  1,136           ;INPUT DEVICE\r
+       USETI   1,1             ;SIX FORMATTED DIRECTORY\r
+       INPUT   1,DIRWRD        ;GET IT\r
+COPBKZ:        OUTPUT  2,              ;DUMP THE BUFFER\r
+       POP     P,JOBFF         ;FOR VERIFY?\r
+       PUSHJ   P,ERRT2O                ;OK?\r
+       SETSTS  2,136           ;DUMP MODE\r
+       MOVE    U,JOBREL                ;UPPER LIMIT\r
+       MOVE    T,BLTWRD        ;FROM,TO\r
+       SETZM   @ZROWRD         ;START\r
+       BLT     T, (U)          ;ZAP\r
+       MOVEI   LOC,1           ;START AT BLOCK ONE\r
+COPSET:        TLNE    F,FLC           ;SKIP\r
+       USETI   1,(LOC)         ;IO 2 UNASGND CH\r
+       USETO   2,(LOC)         ;SET THE BLOCK NO.\r
+       ADD     LOC,INC         ;ADD THE INCREMENT\r
+       CAILE   LOC,1102        ;WILL IT FIT?\r
+       JRST    COPFIN          ;NO\r
+       PUSHJ   P,COPYIT        ;ONE BUFFER\r
+       JRST    COPSET          ;AND LOOP\r
+COPFIN:        MOVEI   T,-1102(LOC)    ;N BLOCKS WON'T FIT\r
+       IMULI   T,200           ;N WORDS WON'T FIT\r
+       MOVSS   T               ;GET ORGANIZED\r
+       ADDM    T,LISTC         ;SUB N WORDS FROM LIST\r
+       SKIPL   LISTC           ;IF LH OF IOWD = 0,\r
+       POPJ    P,              ;EXIT\r
+COPYIT:        TLNN    F,FLC           ;COPY?\r
+       JRST    COPOUT          ;ZERO!\r
+       INPUT   1,LISTC         ;COPY!\r
+       PUSHJ   P,ERRT1I        ;OK?\r
+       CAILE   LOC,144         ;SKIP IF NO CHANCE\r
+       PUSHJ   P,DSAV          ;TRY FOR A DIRECTORY\r
+COPOUT:        OUTPUT  2,LISTC         ;COPY AND ZERO\r
+       JRST    ERRT2O          ;OK?\r
+\fVERZRO:       PUSH    P,JOBFF\r
+       SETZB   VZ1,VZ2         ;CMDLST TERMINATOR\r
+       SETSTS  1,134           ;SET\r
+       SETSTS  2,134           ;IB MODE\r
+       USETI   1,0             ;AND\r
+       USETI   2,0             ;BLOCK 0\r
+       INBUF   1,1             ;WITH\r
+       INBUF   2,1             ;ONE BUFFER EA\r
+       INPUT   1,              ;GET A BLOCK\r
+       PUSHJ   P,ERRT1I        ;OK\r
+       INPUT   2,              ;GET ANOTHER\r
+       PUSHJ   P,ERRT2I        ;OK\r
+       HRRZ    V1,IN1          ;DUMMY\r
+       HRRZ    V2,IN2          ;IOWD\r
+       HRLI    V1,-200         ;FOR VERIFY LOOP\r
+       POP     P,JOBFF         ;RECLAIM BUFFERS\r
+       PUSHJ   P,VERIFY                ;VERIFY AND EXIT THIS PAGE\r
+VERONE:        SETSTS  1,136           ;SET\r
+       SETSTS  2,136           ;DUMP MODE\r
+       MOVEI   LOC,1           ;START AT BLOCK 1\r
+VERSET:        MOVE    V1,LISTV1       ;IOWDS\r
+       MOVE    V2,LISTV2       ;TO ACS\r
+       USETI   1,(LOC)         ;MASTER\r
+       USETI   2,(LOC)         ;AND COPY\r
+       ADD     LOC,INCV        ;ADD IN THE INCREMENT\r
+       CAILE   LOC,1102        ;AM I ASKING TOO MUCH?\r
+       JRST    VERFIN          ;YEP\r
+       PUSHJ   P,VERIN         ;COUPLE OF INPUTS AND VERIFY\r
+       JRST    VERSET\r
+\r
+VERFIN:        SUBI    LOC,1102        ;HOW MUCH TOO MUCH?\r
+       IMULI   LOC,200         ;IN WORDS PLEASE\r
+       MOVSS   LOC             ;BACKWARDS\r
+       ADD     V1,LOC          ;SUB WORDS FROM LIST\r
+       ADD     V2,LOC          ;I.E. ASK FOR LESS\r
+       SKIPL   V1              ;IF LH OF IOWD = 0,\r
+       POPJ    P,              ;EXIT\r
+\r
+VERIN: INPUT   1,V1            ;ONE FOR THE MASTER\r
+       PUSHJ   P,ERRT1I        ;OK?\r
+       INPUT   2,V2            ;ONE FOR THE COPY\r
+       PUSHJ   P,ERRT2I        ;OK?\r
+\r
+VERIFY:        SETZ    U,              ;CLR THE ERROR CNT\r
+       MOVE    T,1(V1)         ;MASTER WORD\r
+       CAME    T,1(V2)         ;SAME AS COPY WORD?\r
+       AOS     U               ;NO, COUNT THE ERRORS\r
+       AOS     V2              ;PLUS ONE\r
+       AOBJN   V1,VERIFY+1     ;BOTH HALVES AND LOOP\r
+       JUMPN   U,ERRVER        ;ERROR MESS IF APPROPIATE\r
+       POPJ    P,              ;UNLESS V1 IS POSITIVE\r
+\fINIT: INIT    2,(T)\r
+ODEV:  Z\r
+       XWD     OUT2,IN2\r
+       JRST    ERRIN2\r
+       MOVE    BP,ODEV         ;MAKE SURE ITS A DTA.\r
+       CALLI   BP,4\r
+       TLNN    BP,100\r
+       JRST    ERRDT2          ;ERROR, ITS NOT A DTA\r
+       SKIPN   BP,IDEV         ;IF NULL\r
+       POPJ    P,              ;NO INPUT DEV REQUIRED\r
+       CAMN    BP,ODEV         ;SAME DEVICES?\r
+       JRST    INITER          ;YEPER\r
+       INIT    1,(T)\r
+IDEV:  Z\r
+       XWD     0,IN1\r
+       JRST    ERRIN1\r
+       MOVE    BP,IDEV         ;MAKE SURE ITS A DTA\r
+       CALLI   BP,4\r
+       TLNN    BP,100\r
+       JRST    ERRDT1          ;ERROR\r
+       POPJ    P,\r
+\r
+INITER:        TTCALL  3,[ASCIZ /INPUT AND OUTPUT DEC-TAPES MAY NOT BE THE SAME DEVICE.\r
+/]\r
+       JRST    ST\r
+\f;     LOAD A BOOTSTRAP LOADER, \r
+\r
+I=1    ;PTR TO BSBUF\r
+W=2    ;WORD OF TENDMP.REL\r
+CNT=3  ;# OF WORDS IN CURRENT BLOCK\r
+TYPE=4 ;TYPE OF BLOCK\r
+OS=4   ;OFFSET\r
+RB=5   ;RELOCATION BITS\r
+\r
+FFPTR: BLOCK   1       ;BYTEPTR TO RELOCATED BSLDR\r
+BSPTR: BLOCK   1       ;BYTPTR TO UNRLCTD BSLDR\r
+OFFSET:        BLOCK   1       ;THE OFFSET\r
+RELBTS:        BLOCK   1       ;RELOCATION BITS\r
+SASAV: BLOCK   1       ;STARTING ADDRESS\r
+PNAME: BLOCK   1       ;PROGRAM NAME\r
+       SIXBIT  /#/     ;# = "CRLF"\r
+\r
+\r
+BSLDR: MOVE    AC0,[SIXBIT /BSLDR/]    ;LOOKUP BLOCK\r
+       HRLZI   AC1,(SIXBIT /REL/)\r
+       SETZB   AC2,AC3         ;\r
+       INIT    16,13           ;IMAGE-BINARY\r
+       SIXBIT  /PTR/           ;\r
+       EXP     PTRBUF          ;\r
+       JRST    PTERR1          ;INIT FAILURE ERROR\r
+       INBUF   16,1            ;ONE BUFFER\r
+       LOOKUP  16,             ;BSLDR.REL\r
+       JRST    PTERR2          ;LOOKUP FAILURE\r
+       MOVEI   I,BSBUF         ;PP PTR FOR BOOTSTRAP-LOADER-BUF\r
+\r
+NEWBLK:        PUSHJ   P,GETWRD        ;GET ONE WORD FROM PTR FILE\r
+       HLRZM   W,TYPE          ;SAVE BLOCK-TYPE\r
+       HRRZM   W,CNT           ;SAVE WRD-COUNT FOR THIS BLK\r
+       CAIN    TYPE,1          ;\r
+       PUSH    I,W             ;SAVE BLOCK HDR-WRD\r
+       PUSHJ   P,GETWRD        ;\r
+       MOVEM   W,RELBTS        ;SAVE RELOCATION-BITS\r
+       CAIN    TYPE,1          ;BLKTYP=1?\r
+       PUSH    I,W             ;YEP, SAVE THE BITS\r
+       CAIG    TYPE,7          ;ILL-BLK-TYP?\r
+       JRST    @TYPTAB(TYPE)   ;NO, OFF TO BLOCK HANDLER\r
+\r
+TTCALL 3,[ASCIZ /?ILLEGAL BLOCK TPYE\r
+/]\r
+       JRST    ST              ;\r
+\r
+\fTYPTAB:       Z       BLK0\r
+       Z       BLK1\r
+       Z       BLK2\r
+       Z       BLK3\r
+       Z       BLK4\r
+       Z       BLK5\r
+       Z       BLK6\r
+       Z       BLK7\r
+\r
+GETWRD:        SOSG    PTRBUF+2        ;EMPTY BUF?\r
+       PUSHJ   P,GETBUF        ;GET A BUFFER\r
+       ILDB    W,PTRBUF+1      ;\r
+       POPJ    P,\r
+\r
+GETBUF:        IN      16,             ;GET BUFFER\r
+       POPJ    P,\r
+       STATZ   16,20000        ;EOF?\r
+       TTCALL  3,[ASCIZ /?NO END BLOCK ENCOUNTERED\r
+/]\r
+       STATZ   16,74000        ;ERRORS?\r
+       TTCALL  3,[ASCIZ /?DATA ERROR ON DEVICE PTR\r
+/]\r
+       JRST    ST\r
+       ;THIS IS NOT A BLOCK, IGNORE IT\r
+BLK0:  JUMPE   CNT,NEWBLK      ;\r
+       PUSHJ   P,GETWRD        ;PASS A WRD\r
+       SOJA    CNT,BLK0        ;\r
+\r
+       ;THIS IS THE PROGRAM\r
+BLK1:  MOVN    CNT,CNT         ;TOTAL NUMBER OF WRDS THIS BLK\r
+BLK1A: HRLI    CNT,-22         ;MAX NUMBER PER SECTION\r
+BLK1B: TRNN    CNT,-1          ;ANY MORE WRDS?\r
+       JRST    NEWBLK          ;NO\r
+       PUSHJ   P,GETWRD        ;\r
+       PUSH    I,W             ;SAVE IN BSBUF\r
+       AOBJN   CNT,BLK1B       ;ANY MORE WRDS THIS SECTION?\r
+       TRNN    CNT,-1          ;NO, ...THIS BLK?\r
+       JRST    NEWBLK          ;NO\r
+       PUSHJ   P,GETWRD        ;GET THE REL-BITS FOR NXT SECT\r
+       PUSH    I,W             ;SAVEM\r
+       JRST    BLK1A           ;\r
+\r
+\f      ;THIS IS THE SYMBOL TABLE\r
+BLK2:  MOVN    CNT,CNT         ;\r
+BLK2A: HRLI    CNT,-22         ;\r
+BLK2B: TRNN    CNT,-1          ;\r
+       JRST    NEWBLK          ;\r
+       PUSHJ   P,GETWRD        ;\r
+       TLNE    W,200000        ;\r
+       JUMPL   W,BLK2ER        ;ERROR - ITSA EXTERNAL SYMBOL\r
+       AOBJN   CNT,.+1         ;IGNORE THE VALUE\r
+       PUSHJ   P,GETWRD        ;\r
+       AOBJN   CNT,BLK2B       ;\r
+       TRNN    CNT,-1          ;\r
+       JRST    NEWBLK          ;\r
+       JRST    BLK2A\r
+BLK2ER:        TTCALL  3,[ASCIZ /?CANNOT PROCESS EXTERNAL SYMBOLS\r
+/]\r
+       JRST    ST\r
+\r
+       ;HIGHSEG FLAG, GIVE ERROR EXIT\r
+BLK3:  TTCALL  3,[ASCIZ /?CANNOT PROCESS HIGH-SEG'S\r
+/]\r
+       JRST    ST\r
+\r
+       ;ENTRY BLOCK, IGNORE THIS BLOCK\r
+BLK4:  MOVN    CNT,CNT ;\r
+BLK4A: HRLI    CNT,-22         ;\r
+       TRNN    CNT,-1          ;\r
+       JRST    NEWBLK          ;\r
+       PUSHJ   P,GETWRD        ;\r
+       AOBJN   CNT,BLK4A+1     ;PASS/IGNORE \r
+       TRNN    CNT,-1          ;\r
+       JRST    NEWBLK          ;\r
+       PUSHJ   P,GETWRD        ;\r
+       JRST    BLK4A           ;\r
+\r
+       ;THIS IS LAST BLK, MUST BE SEEN, ALSO IS PROG-BREAK\r
+BLK5:  PUSHJ   P,GETWRD        ;\r
+       MOVNI   AC0,1(W)                ;\r
+       HRLM    AC0,BSBUF       ;START THE IOWD\r
+       CAILE   W,600           ;MUST FIT IN LESS-THAN 4 BLKS\r
+       JRST    BLK5ER          ;ERROR IF'E CAN'T\r
+       TLO     W,400000        ;NOTE THE END\r
+       PUSH    I,W             ;\r
+       HRLZI   LFL             ;NOTE BSLDR IS IN "COPY"\r
+       IORM    FSAVE           ;SAVE IT\r
+       TLO     F,LFL           ;\r
+       CLOSE   16,             ;\r
+       JRST    COCRET          ;THE ONLY WAY OUT\r
+BLK5ER:        TTCALL  3,[ASCIZ /?BOOTSTRAP LOADER WILL NOT FIT IN 3 BLOCKS\r
+/]\r
+       JRST    ST\r
+\r
+\f      ;PROG-NAME IN RADIX50\r
+BLK6:  PUSHJ   P,GETWRD        ;\r
+       PUSHJ   P,UNWIND        ;CONVRT RX50 TO 6BIT PROG-NAME\r
+       SOJA    CNT,BLK4        ;I.E. IGNORE REST OF THIS BLK\r
+\r
+UNWIND:        MOVE    AC4,[POINT 6,PNAME]\r
+       SETZM   PNAME\r
+       MOVEM   W,AC5           ;\r
+       HRROI   AC0,-6          ;6 CHARS\r
+       TLZ     W,740000        ;CLEAR THE CODE BITS\r
+UNW1:  IDIVI   AC5,50          ;\r
+       HRLM    AC6,(P) ;SAVE REMAINDER\r
+       AOJGE   AC0,UNW2        ;LOOP\r
+       PUSHJ   P,UNW1          ;LOOP\r
+UNW2:  HLRZ    AC6,(P)         ;PICK OFF THE REMAINDER + DECODE IT\r
+       JUMPE   AC6,UNW3        ;DONE\r
+       ADDI    AC6,20-1\r
+       CAILE   AC6,31\r
+       ADDI    AC6,41-32\r
+       CAILE   AC6,72\r
+       SUBI    AC6,74-4\r
+       CAIN    AC6,3\r
+       MOVEI   AC6,16\r
+\r
+       IDPB    AC6,AC4\r
+UNW3:  POPJ    P,\r
+\r
+       ;STARTING ADR.\r
+BLK7:  PUSHJ   P,GETWRD        ;\r
+       HRLI    W,(JRST)        ;JUMP TO THE STARTING ADDRESS\r
+       MOVEM   W,SASAV         ;SAVE STARTING ADDRESS\r
+       SOJA    CNT,BLK4        ;IGNORE REST OF BLK\r
+\r
+\fBLTWRD:       XWD     END.,END.+1     ;ZRO FROM,TO\r
+ZROWRD:        EXP     END.            ;START\r
+FSAVE: XWD     FLP,0   ;MODIFIED WHEN BSLDR IS LOADED\r
+LISTC: IOWD    0,END.\r
+       Z\r
+LISTV1:        IOWD    0,END.\r
+LISTV2:        IOWD    0,END.\r
+INC:   BLOCK   1\r
+INCV:  BLOCK   1\r
+DIRECT:        BLOCK   123\r
+DNAM:  BLOCK   55\r
+TOTAL: BLOCK   26      ;BLOCK TABLE\r
+DIRWRD:        IOWD    200,DIRECT\r
+       Z\r
+REWIND:        IOWD    1,PTRBUF\r
+       Z\r
+TTYIN: BLOCK   23+20\r
+TTYOUT:        BLOCK   23\r
+IN1:   BLOCK   3\r
+IN2:   BLOCK   3\r
+OUT2:  BLOCK   3\r
+TIN:   BLOCK   3\r
+TOUT:  BLOCK   3\r
+PTRBUF:        BLOCK   3\r
+BSBUF: BLOCK   720     ;ENUF FOR 3BLOCKS PLUS HDR WRDS\r
+       VAR\r
+       LIT\r
+END.:  END     ST      ;;22-JUN\r
+\f\r
index 7264fb4..233dd8e 100644 (file)
@@ -684,7 +684,7 @@ DMPRD0:       CAILE TAC, 0                  ;<END? MODIFIED
          MOVE TAC, UDMP                ;PROG\r
          ADDM TAC, BLO                 ;TO GET ACTUAL I/O POINTER\r
          MOVEI TAC,DMPRDA              ;NEW RETURN\r
-         HRRM TAC, UCHA+\r
+         HRRM TAC, UCHA+1\r
          SKIPA TAC, SV1                ;RESTORE TAC\r
 DMPRD1:          CONO DC, 0\r
          JEN @DMPRD\r
index c139a50..e82055a 100644 (file)
@@ -3,7 +3,7 @@
 
 
 
-EDDT=3         ;THIS CAUSES A RELOCATABLE VERSION OF EXEC DDT WITH THE
+               ;THIS CAUSES A RELOCATABLE VERSION OF EXEC DDT WITH THE
                ; PAPER TAPE I/O OPTION TO BE ASSEMBLED (AS OPPOSED TO
                ; RELOCATABLE AND/OR ABSOLUTE VERSIONS OF USER DDT
                ; AND/OR NON-PAPER TAPE I/O EXEC DDT, ALL OF WHICH CAN
index d789804..a62369f 100644 (file)
@@ -2486,7 +2486,7 @@ DTALST:   PUSHJ   P,DTCHECK       ;CHECK FOR DTA INPUT-MUST BE DECTAPE AND
        LDB     T1,[POINT 5,16(T5),14]\r
        CAIE    T1,36           ; SKIP DIR HEADER IF\r
        JRST    PDIR1B          ; DECTAPE HAS NO PROTECTION\r
-       LSTLIN  HEDL1           ; PRINT HEADER\r
+;      LSTLIN  HEDL1           ; PRINT HEADER\r
        MOVE    T2,DTAID\r
        JUMPE   T2,DTALS4\r
        MOVEI   T2,5            ; CHARACTER COUNT\r
@@ -2621,7 +2621,7 @@ IFN WCH,<
        HRRZ    T1,IBF\r
        SUBM    T5,T1\r
        LDB     0,[POINT 9,DBUF+200(T1),8]\r
-       PUSHJ   P,PROTO         ; OUTPUT PROTECTION\r
+;      PUSHJ   P,PROTO         ; OUTPUT PROTECTION\r
 PDIR3B:\r
 IFE WCH,<\r
        MOVE    0,151(T5)       ;GET ENTRY DATE>\r
@@ -3199,6 +3199,8 @@ INMTA1:   BLOCK 1
 MTANAM:        BLOCK 2\r
 MATCH: BLOCK   2       ;NAME AND EXT FOR /L OR (RX)\r
 RENSN: BLOCK   1       ;-1 IF RENAME MESSAGE SEEN\r
+DTBLK: BLOCK 1         ; OPEN DTA DIRECTORY BLOCK\r
+DTDEV: BLOCK 2         ; SIXBIT /DTAN/\r
 \r
 \fSUBTTL        RIM LOADER\r
 IFE RIMSW,<\r
@@ -4035,8 +4037,6 @@ LIN:      BLOCK 1                 ;COUNT FOR DSK DIR LIST
 UFDIN: BLOCK 3                 ;HEADER FOR READING DISK DIRECTORY\r
 UFD:   BLOCK 4                 ;[P,P] OR *FD*\r
                                ;UFD OR SYS\r
-DTBLK: BLOCK 1         ; OPEN DTA DIRECTORY BLOCK\r
-DTDEV: BLOCK 2         ; SIXBIT /DTAN/\r
 IFN DISK30,<\r
 BLKHD: BLOCK 3                 ;HEADER FOR READING BLOCKS OFF 10/30 DISK\r
 MASK:   BLOCK 1                        ;PROJ,PROG # 10/30 DISK>\r
index 5649e63..a242144 100644 (file)
--- a/src/s.mac
+++ b/src/s.mac
@@ -1,5 +1,8 @@
        XLIST\r
 \r
+\r
+\r
+\r
 DEFINE XP(A,B)               ;SYSTEM PARAMETER\r
        <A=B\r
        INTERNAL A\r
@@ -185,5 +188,6 @@ DEFINE      ADRCHK (B)
        HRRZ TAC,A>\r
 \r
 \r
+\r
        LIST\r
 \f\r
index 7c17154..8110991 100644 (file)
@@ -1,23 +1,13 @@
 TITLE TENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032\r
        IFNDEF REL,<REL=0>      ;0 PAPER TAPE, 1 RELOCATABLE BINARY\r
-       IFNDEF MAGT,<MAGT=0>    ;0 DTAPE, 1 MTAPE\r
-       IFN MAGT,<\r
-; MAGTAPE UTILITY ROUTINE - COURTSEY DATALINE SYSTEMS J HANCOCK\r
-       >\r
-       IFNDEF MODE,<MODE=0>    ;0 IS TD10, 1 IS 551/136\r
        IFNDEF CORE,<CORE=4>    ;NUMBER OF 8K MEMORY BLOCKS\r
 \r
-       IFE MODE,<SUBTTL TD10 VERSION>\r
-       IFN MODE,<SUBTTL 551/136 VERSION>\r
+       SUBTTL 551/136 VERSION\r
 \r
-IFE REL,<\r
-IFE MAGT,<RIM10B>\r
-IFN MAGT,<RIM10>>\r
+IFE REL,<RIM>\r
        UTC=210\r
        UTS=214\r
        DC=200\r
-       DTC=320\r
-       DTS=324\r
 \r
 F=0    ;MUST BE 0. USED BY JRA'S\r
 A=2    ;MISC TEMP. HOLDS 136 CONO INDEX IN UWAIT\r
@@ -46,9 +36,7 @@ COMPTR=BEGR+377       ;COMMAND POINTER, IF SUPPLIED
        FOOF=BEGR-202   ;NEEDED FOR ZERO CORE SEARCH, ZEROED AT BEG1\r
 TAB=BEGR-201           ;FILE DIRECTORY\r
 LINK=BEGR-1            ;0-17=LINK, 18-27=FBN, 29-35=WC\r
-IFE REL,<IFE MAGT,<LOC 17400+<<CORE-1>*20000>>\r
-        IFN MAGT,<LOC 17377+<<CORE-1>*20000>\r
-       IOWD    LAST-BEGR+1,BEGR>>\r
+IFE REL,<LOC 17400+<<CORE-1>*20000>>\r
 \f;INITIAL ENTRY IS AT BEGR, UNLESS A COMMAND POINTER IS\r
 ;SUPPLIED IN COMPTR. IN THAT CASE, ENTRY IS AT BEGR+1\r
 \r
@@ -71,8 +59,7 @@ TYI:  SETZB C,HIGH    ;HOPEFULLY HIGH IS TEMPORARY
 SPACE: MOVEI E,C-1     ;EXTENSION INTO C\r
        HRLI E,20600    ;FAKE OUT END TEST OF BYTE PTR\r
 ;STOP TAPE DRIVE\r
-IFN MODE,<CONO UTC,0>\r
-IFE MODE,<CONO DTC,400000>\r
+       CONO UTC,0\r
 NEXT:  ILDB A,@BEGR    ;GIVES A 0 UNLESS COMMAND POINTER SUPPLIED\r
                        ;RH OF NEXT IS USED AS A CONSTANT\r
 BELL:  SETOI FILN,207  ;INITIALIZATION FOR SEARCH\r
@@ -102,8 +89,7 @@ NEXT1:       TLNE E,770000   ;NO MORE THAN SIX CHARS
 ;HERE ON JUMP BLOCK DURING LOADS, OR NUMBER>7 ALT\r
 JBLK:\r
 ;STOP TAPE DRIVE\r
-IFN MODE,<CONO UTC,0>\r
-IFE MODE,<CONO DTC,400000>\r
+       CONO UTC,0\r
        HRRM D,SADR     ;SAVE STARTING ADDRESS\r
        JUMPN CH,BEG    ;IF NOT LOADGO COMMAND\r
 SADR:  JRST BEG        ;CURRENT S.A.\r
@@ -155,7 +141,6 @@ FREE:       MOVEI FILN,.    ;DUMP & NOT FOUND, MAKE ENTRY WHERE FREE
 \r
 BEG69: MOVEI FILN,1(FILN)      ;FILN IS FILE #+1; CLR LH\r
        JUMPL WRITE,LOADS       ;ALL LOAD INSTRUCTIONS\r
-IFE MAGT,<\r
        SKIPN WRITE     ;DELETE? (K COMMAND)\r
        SETZB B,C       ;YES, KILL FILE\r
        MOVEM B,TAB+122(FILN)   ;CLEAR IF DELE, ENTER IF NEW DUMP\r
@@ -202,46 +187,6 @@ DMP2:      MOVEI D,SPNT-1  ;SET UP TO FOLLOW THE HEADERS.
 DMP3:  MOVE D,1(D)     ;GET HEADER\r
        JUMPGE D,THRU   ;IF NULL HEADER FOUND\r
        MOVEI Q,DMP3    ;Q:= DMP3 AS A RETURN AFTER AOBJN\r
-       >\r
-\r
-IFN MAGT,<\r
-       JRST    ERR             ;HOW DID WE GET HERE?  DLS***\r
-;DUMP WRITES OUT CORE ONTO MAGNETIC TAPE\r
-;DUMP WRITES OUT A CORE IMAGE ON MAGNETIC TAPE WITHOUT\r
-;ZERO COMPRESSION. THE RECORDS ARE 200(OCTAL) WORDS IN LENGTH\r
-;AND BEGIN WITH WORD ZERO. BEFORE STARTING THE TAPE IS REWOUND.\r
-;IT ASSUMES MTA0, AT LEAST FOR NOW.\r
\r
-       MTC=    340\r
-       MTS=    344\r
-DUMP:  CONO    MTC,1000        ;REWIND\r
-       CONSO   MTS,300000      ;WAIT FOR BOT OR REWINDING\r
-       JRST    .-1\r
-       CONSO   MTS,40          ;TRANSPORT READY?\r
-       JRST    .-1\r
-       SETZ    A,\r
-DUMP1: HRLI    A,-200          ;WORDS PER BLOCK\r
-       CONO    MTC,64100       ;START WRITE OPERATION\r
-DUMP2: CONSO   MTS,1           ;TD10 READY FOR DATA?\r
-       JRST    .-1\r
-       DATAO   MTC,(A)         ;SEND OUT DATA\r
-       AOBJN   A,DUMP2         ;POINT TO NEXT WORD AND LOOP\r
-       CONO    MTS,1           ;STOP THE DRIVE\r
-       CONSO   MTS,100         ;WAIT TILL STOPPED\r
-       JRST    .-1\r
-       CONSZ   MTS,464610      ;ANY ERRORS?\r
-       JRST    ERR             ;YES, GO RING BELL\r
-       AOSE    [-CORE*20000/200+2]     ;ALL CORE DUMPED?\r
-       JRST    DUMP1           ;NO\r
-       CONO    MTC,65100       ;WRITE END OF FILE\r
-       CONSO   MTS,100         ;DONE?\r
-       JRST    .-1\r
-       CONO    MTC,65100\r
-       CONSO   MTS,100\r
-       JRST    .-1\r
-       JRST    BEGR            ;ALL DONE\r
-       >\r
-\r
 \r
 LODUMP:        JSP P,UWAIT\r
        JFCL D          ;IN/OUTPUT HEADER\r
@@ -254,7 +199,6 @@ DMP5:       JSP P,UWAIT
 \r
 THRU:  JSP P,UWAIT     ;WRITE OUT JRST BLOCK\r
        JFCL SADR       ;FROM LOC SADR\r
-IFE MODE,<     AOJL E,UWAIT1   ;FILL OUT BLOCK, TO GET CKSM OUT>\r
        TRZA WRITE,-1   ;THEN SET WRITE TO 0, AND GO CLOBBER\r
                        ;ANY FURTHER BLOCKS WITH THIS FILN\r
 UWAIT: AOJL E,UWAIT1   ;RETURN ADDR = (P)      DATA ADDR = @(P)\r
@@ -292,27 +236,7 @@ MNLUP1:    DPB B,PNTR      ;FOR DELETE, 0 FILE NAME AND NUMBER
 \r
 RBLK:  HRRO C,TAPENO   ;CURRENT TAPE NO.\r
                        ;SET LH TO  PREPARE FOR JUMPN IN DELE\r
-IFE MODE,<\r
-       TRO B,-1        ;ENSURE GOING FORWARD WHEN FIRST SEARCH\r
-       CONSO DTC,300000        ;IS A DIRECTION ASSERTED?\r
-       TRO C,210000    ;NO. GO FORWARD\r
-RB1:   TRNN B,400001   ;DECIDE WHETHER TO TURN AROUND\r
-       TRO C,300000    ;TURN AROUND\r
-RBG:   CONO DTC,20200(C)       ;ISSUE THE COMMAND TO TD10.\r
-                               ;200=SEARCH, 300=READ, 700=WRITE.\r
-UWAIT1:        CONSZ DTS,672700        ;ANY ERRORS?\r
-       JRST ERR        ;YES. GO DING AND THEN TYI\r
-       CONSO DTS,1     ;DATA READY?\r
-       JRST .-3        ;NO. GO WAIT SOME MORE\r
-       JUMPL E,INOUT(WRITE)    ;IF IN MIDST OF A DT BLOCK, DISPATCH\r
-       DATAI DTC,B     ;NO. SEARCHING. GET BLOCK NO.\r
-       TRZ C,310000    ;CLOBBER DIRECTION BITS IN CONO\r
-       SUBI B,(BLKNO)  ;COMPARE WITH DESIRED BLOCK\r
-       CONSZ DTC,100000        ;COMPLEMENT DECISION IF GOING REVERSE\r
-       TRC B,-2        ;BIT 35 IS FOR  TURNAROUND SPACE.\r
->\r
 \f\r
-IFN MODE,<\r
        SETOB A,B       ;GO FORWARD, SET DC FOR SEARCH\r
        CONSZ UTS,40    ;IS CHECKSUM BEING WRITTEN?\r
        JRST .-1        ;WAIT\r
@@ -333,14 +257,13 @@ UWAIT1:   CONSZ UTS,6     ;ANY ERRORS?
        SUBI B,(BLKNO)  ;COMPARE WITH DESIRED BLOCK\r
        TRNE C,10000    ;COMPLEMENT IF GOING REVERSE\r
        TRC B,-2        ;BIT 35 IS FOR TURNAROUND SPACE.\r
->\r
        JUMPN B,RB1     ;JUMP IF NOT GOING FORWARD INTO (BLKNO)\r
        MOVNI E,200     ;WORDS PER BLOCK\r
        MOVEM P,F       ;SAVE RETURN IN AC0\r
        TRO C,100       ;READ COMMAND, MAYBE\r
        JUMPLE WRITE,RB2        ;JUMP IF READ\r
        TRO C,400       ;CHANGE TO WRITE COMMAND\r
-IFN MODE,<MOVNI A,401  ;SET 136 TO OUTPUT>\r
+       MOVNI A,401     ;SET 136 TO OUTPUT\r
        JUMPG CT,.+3\r
        HRRZS LINK      ;IF LAST BLK, KILL LINK\r
        DPB E,PNTR              ;AND THE DIR BYTE ? 0\r
@@ -351,39 +274,18 @@ RB2:      CAIE BLKNO,^D100        ;IF NOT DIRECTORY BLOCK
        JRA P,UWAIT1    ;RESTORE CALLER ADR\r
                        ;AND PROCESS DATA WORDS\r
 \f\r
-IFE MODE,<\r
-       DATAI DTC,@(P)  ;READ COMMANDS. GET WORD TO CORE\r
-INOUT: JRST UWAIT2     ;INOUT-1 TO INOUT +1 ARE DISPATCHED TO.\r
-       DATAO DTC,@(P)  ;OUTPUT TO TAPE\r
-UWAIT2:        AOJN E,UWAIT3   ;WAS THAT THE LAST WORD IN THE DT BLOCK?\r
-       CONO DTS,1      ;YES. GIVE FUNCTION STOP TO TD10\r
-       CONSO DTS,100000        ;AND WAIT FOR CHECKSUM TO BE DONE\r
-       JRST .-1        ;NOT YET. WAIT\r
-UWAIT3:        SOJA E,0(P)     ;DONE. COMPENSATE FOR THE AOJN ABOVE, AND\r
-                       ;RETURN TO CALLER OF UWAIT OR RBLK\r
->\r
 \r
-IFN MODE,<\r
        DATAI DC,@(P)   ;READ COMMANDS. GET WORD TO CORE\r
 INOUT: JRST UWAIT2     ;INOUT-1 THRU INOUT+1 ARE DISPATCHED TO.\r
        DATAO DC,@(P)   ;OUTPUT TO TAPE\r
 UWAIT2:        JRST 0(P)       ;RETURN TO CALLER OF UWAIT OR RBLK.\r
->\r
 \f\r
 ALTMD: MOVEI A,"$"\r
        JSP P,TYO       ;ALTMODE IS PRINTED AS "$"\r
 \r
-IFE MAGT,<\r
        CAIE CH,"K"-40  ;FOR K, WRITE := 0\r
        CAIN CH,"D"-40  ;FOR D, WRITE :=1\r
        AOJLE WRITE,.-1 ;COUNT (WRITE)\r
-       >\r
-\r
-IFN MAGT,<\r
-       CAIN CH,"D"-40  ;FOR D, WRITE :=1\r
-       AOJLE WRITE,.-1 ;COUNT (WRITE)\r
-       JUMPG WRITE,DUMP        ;D MEANS GO DUMP ON MAG TAPE\r
-       >\r
 \r
        CAIN CH,"G"-40  ;GO TO PROGRAM?\r
        JRST @SADR      ;YES. JUMP OUT\r
@@ -399,8 +301,7 @@ IFN MAGT,<
        CAILE F,7       ;SKIP IF ONE DIGIT\r
        JRA D,JBLK      ;D:=SADR. DISPATCH TO JBLK WHICH SAVES SADR.\r
 OPNTP:                 ;SHIFT UNIT NUMBER LEFT FOR CONO\r
-IFE MODE,<LSH F,11>\r
-IFN MODE,<LSH F,3>\r
+       LSH F,3\r
        HRRM F,TAPENO   ;SAVE IN CORE\r
 CLSTP: MOVEI BLKNO,^D100       ;BLK NO OF FILE DIR\r
        SETZI PNTR,0    ;DONT CLOBBER DIRECTORY BYTE\r
@@ -446,15 +347,6 @@ SPNT:      0               ;POINTER TO HEADERS IN CORE.
        LIT\r
 \r
 \r
-IFN MAGT,<\r
-SLOP:  MOVE    .+3\r
-       MOVEM   COMPTR\r
-       JRST    BEGR+1\r
-       XWD     440700,.+1\r
-       BYTE    (7) "0",33,177\r
-LAST:  JRST    SLOP\r
-       >\r
-IFE MAGT,<\r
        SLOP=COMPTR-17-.        ;THIS MANY WORDS BEFORE RESERVED AREA\r
                                ;FOR COMMAND STRINGS.\r
 ;!!!!! NOTE: ABOVE PARAMETER MUST COME OUT POSITIVE IN\r
@@ -463,7 +355,6 @@ IFE MAGT,<
 ;      THIS MEANS ANY CODE ADDED MUST BE COMPENSATED FOR BY\r
 ;      A CORRESPONDING TIGHTENING SOMEWHERE. GOOD LUCK.\r
 ;      TENDMP IS VERY TIGHT ALREADY.\r
-       >\r
 \r
        END BEGR\r
 \f\r