Added version 10 of basic.
[retro-software/dec/tops10/v4.5.git] / src / comcon.mac
index 050b588..2397feb 100644 (file)
@@ -7,7 +7,6 @@ XP VCOMCN,433
 COMCON:\r
 \r
 ;CALLED FROM CLOCK ROUTINE WHEN 'COMCNT' IS GREATER THAN 0\r
-\r
 ;AS SET BY TTY SERVICE ROUTINE\r
 ;ALL AC'S HAVE BEEN SAVED BY CLOCK CHANNEL\r
 ;THE COMMAND DECODER CALLS TTYCOM WHICH SCANS FOR TTY WHICH TYPED\r
@@ -37,8 +36,7 @@ COMCON:
 ;IF A COMMAND FUNCTION CANNOT DO THIS, IT MUST JUST SET\r
 ;THE JOB TO RUNABLE STATUS AND RETURN IMMEDIATELY\r
 ;OR DELAY THE COMMAND FOR LATER EXECUTION\r
-\f\r
-INTERNAL COMMAND\r
+\fINTERNAL COMMAND\r
 INTERNAL FTLOGIN,FTSWAP,FTTIME\r
 EXTERNAL COMCNT,TTYCOM,JBTSTS,JOBMAX,JBTDAT,JBTADR,JOBHCU\r
 EXTERNAL CONFIG,HIGHJB\r
@@ -50,6 +48,7 @@ EXTERNAL MONSTR,MSTART,OCTPNT,PHOLD,PRNAME,RADX10,RELEA5
 EXTERNAL RELEA6,RESET,SETRUN,STOP1\r
 EXTERNAL STOTAC,UPTIME,USRXIT,USTART,UUOERR\r
 \r
+\r
 T=BUFPNT       ;TEMPORARY AC'S\r
 T1=BUFWRD\r
 T2=UUO\r
@@ -79,8 +78,7 @@ COMLP:        MOVE T2,COMTAB(T)       ;GET NEXT ENTRY FROM COMMAND TABLE
 COMNEQ:        AOBJN T,COMLP           ;NO, KEEP LOOKING\r
        CAIN T4,1               ;DID ONE AND ONLY ONE COMMAND MATCH?\r
        MOVE T,T3               ;YES, GET ITS INDEX\r
-\f\r
-COMFND:        MOVE TAC1,DISP(T)       ;GET DISPATCH TABLE ENTRY,\r
+\fCOMFND:       MOVE TAC1,DISP(T)       ;GET DISPATCH TABLE ENTRY,\r
        PUSH PDP,TAC1           ;SAVE RH(DISPATCH ADR,+BITS)\r
        MOVE T,JBTSTS(ITEM)     ;JOB STATUS WORD FOR THIS JOB\r
 IFN FTLOGIN,<\r
@@ -89,7 +87,8 @@ IFN FTLOGIN,<
                JRST CHKNO              ;YES\r
                JSP TAC,COMER           ;NO, TYPE "LOGIN PLEASE"\r
                ASCIZ /LOGIN PLEASE\r
-/>\r
+/\r
+>\r
 CHKNO: JUMPN ITEM,CHKRUN       ;JOB NUMBER ALREADY ASSIGNED?\r
        TLNE TAC1,NOJOBN        ;NO, DOES THIS COMMAND NEED A JOB NUMBER?\r
        JRST COMGO              ;NO\r
@@ -97,15 +96,16 @@ CHKNO:      JUMPN ITEM,CHKRUN       ;JOB NUMBER ALREADY ASSIGNED?
 NUMLOP:        MOVE T,JBTSTS(ITEM)     ;SCAN FOR FREE JOB NO.\r
        TLNN T,JNA+CMWB         ;THIS NUMBER ASSIGNED?\r
        JRST NEWJOB             ;NO, SO USE THIS NUMBER\r
-\r
        CAIGE ITEM,JOBMAX       ;YES, IS THE MAX. JOB NO.?\r
        AOJA ITEM,NUMLOP        ;NO, KEEP LOOKING\r
        JSP TAC,COMER           ;YES, NONE LEFT, PRINT "JOB CAPACITY EXCEEDED"\r
        ASCIZ /JOB CAPACITY EXCEEDED\r
 /\r
+\r
                                ; EVEN THROUGH THIS IS A NEW JOB NUMBER\r
                                ; IT MAY HAVE CORE ASSIGNED NOW BECAUSE IT WAS DELAYED\r
                                ; UNTIL IT COULD BE SWAPPED IN(LOGIN WITH CORE FULL)\r
+\r
 NEWJOB:        MOVEI T1,ASSCON         ;SET ASSIGNED BY CONSOLE BIT FOR TTY\r
        IORM T1,DEVMOD(DEVDAT)  ;SO OTHER JOBS CAN NOT USE\r
        SETZM DEVLOG(DEVDAT)    ;SET LOGICAL NAME TO ZERO\r
@@ -118,10 +118,10 @@ IFN FTKCT,<
        EXTERN JBTKCT\r
        SETZM JBTKCT(ITEM)      ;CLEAR CORE-RUNNING TIME CORE\r
 >\r
+\r
        CAMLE ITEM,HIGHJB       ;HIGHEST JOB NUMBER ASSIGNED?\r
        MOVEM ITEM,HIGHJB       ;YES,SAVE IT FOR SCHEDULER SCAN OF JOBS\r
-\f\r
-CHKRUN:        TLNE    T,RUN           ;RUN BIT ON IN JOB STATUS?\r
+\fCHKRUN:       TLNE    T,RUN           ;RUN BIT ON IN JOB STATUS?\r
        TLNN    TAC1,NORUN      ;YES, DOES THIS COMMAND REQUIRE A JOB?\r
        JRST    CHKACT          ;NO\r
        JSP     TAC,COMER       ;YES.\r
@@ -150,6 +150,7 @@ IFN FTSWAP,<
        TLNN TAC1,INCOR         ;IS THIS TRUE?\r
 CHKDLY:        HRRI TAC1,DLYCM1        ;NO, JUST DELAY COMMAND UNTIL SWAP OUT OR IN IS FINISHED\r
        JRST COMDIS             ;AND DISPATCH TO DELAY COMMAND\r
+>\r
 CHKCO2:        TLNE TAC1,NOACT         ;CAN COMMAND BE PERFORMED WITH ACTIVE DEVICES?\r
        PUSHJ PDP,RUNCHK        ;NO, RETURN IF JOB STOPPED AND NO ACTIVE DEVICES\r
 CHKCO1:        TLNE TAC1,NOCORE        ;DOES THIS COMMAND NEED CORE?\r
@@ -158,8 +159,7 @@ CHKCO1:     TLNE TAC1,NOCORE        ;DOES THIS COMMAND NEED CORE?
        JSP TAC,COMER           ;NO, PRINT "NO CORE ASSIGNED"\r
        ASCIZ /NO CORE ASSIGNED\r
 /\r
-\f\r
-CHKXPN:        TLNN TAC1,PLSXPN        ;DOES THIS COMMAND NEED CORE TO BE EXPANDED?\r
+\fCHKXPN:       TLNN TAC1,PLSXPN        ;DOES THIS COMMAND NEED CORE TO BE EXPANDED?\r
        JRST COMGO              ;NO\r
        HLRE IOS,JOBHCU(JDAT)   ;YES, IS CORE STILL COMPRESSED(SAVE DID NOT GO\r
                                ; TO COMPLETION)\r
@@ -187,10 +187,10 @@ COMGO:    MOVSI   IOS,CMWRQ
        ANDCAM  IOS,(PDP)       ;NO, CLEAR REQUEU BIT IN DISP. FLAGS\r
        MOVEM   T,JBTSTS(ITEM)\r
 \r
+\r
 COMDIS:        MOVEI IOS,0             ;CLEAR IOS FOR SETTING DISPATCH ADDRESSES\r
        PUSHJ PDP,(TAC1)        ;DISPATCH TO COMMAND SETUP ROUTINE.\r
-\f\r
-;RETURN FROM COMMAND SETUP ROUTINE\r
+\f;RETURN FROM COMMAND SETUP ROUTINE\r
 \r
 COMRET:        POP PDP,T1              ;RESTORE COMMAND FLAGS\r
        POP PDP,DEVDAT          ;RESTORE TTY DDB ADDRESS.\r
@@ -230,8 +230,7 @@ IFE FTLOGIN, <
        PUSHJ PDP,PRSPC\r
        PUSHJ   PDP,DAYTM1\r
 >\r
-\f\r
-PCRLF: TLNE T1,ERRFLG          ;DID AN ERROR OCCUR?\r
+\fPCRLF:        TLNE T1,ERRFLG          ;DID AN ERROR OCCUR?\r
        PUSHJ PDP,PRQM          ;YES. APPEND ?\r
        TLNN T1,NOCRLF          ;SUPRESS CRLF?\r
        PUSHJ PDP,CRLF          ;NO\r
@@ -250,7 +249,6 @@ IFN FTSWAP, <
        LDB     ITEM,PJOBN      ;GET JOB NUMBER FROM TTY DEVICE DATA BLOCK\r
        JUMPE   ITEM,CPOPJ      \r
        TLNE    T1,CMWRQ        ;REQUEUE JOB AFTER COMMAND WAIT OR ERROR?\r
-\r
        JRST    REQUE           ;YES\r
 >\r
        POPJ PDP,\r
@@ -266,8 +264,7 @@ SKPBR1:     PUSHJ   PDP,GETCHR
        JUMPN   TEM,SKPBR2      ;LOOK FURTHER FOR BREAK\r
        JRST    TPOPJ           ;UNLESS NO MORE CHARS\r
 >\r
-\f\r
-;TABLE OF CONSOLE COMMANDS\r
+\f;TABLE OF CONSOLE COMMANDS\r
 \r
 INTERNAL FTATTACH,FTTIME,FTTALK,FTEXAMINE,FTLOGIN,FTREASSIGN\r
 INTERNAL FTFINISH,FTCCL\r
@@ -288,11 +285,12 @@ INCORE=4000!NOTRAN        ;COMMAND MUST BE DELAYED IF JOB HAS LOGICAL CORE
                ; WHICH IS ON DISK OR ON ITS WAY IN OR OUT.\r
                ; JOB WILL BE SWAPPED IN (SEE DLYCOM)\r
                ; AND IS NOT SITTING QUIETLY IN CORE(IE NO SWAPPING TRANSFER)\r
-PLSXPN=4       ;CORE MUST BE EXPANED IF STILL COMPRESSED BY SAVE NOT GOING\r
+PLSXPN==4      ;CORE MUST BE EXPANED IF STILL COMPRESSED BY SAVE NOT GOING\r
                ; TO COMPLETION(CONTROL C OR DEVICE OK?)\r
                ; MUST BE USED IN CONJUNCTION WITH COMMANDS WHICH\r
                ; NEED CORE AND NEED IT IN CORE\r
 \r
+\r
 ;BITS CHECKED AFTER RETURN FROM COMMAND SETUP ROUTINE\r
 \r
 CMWRQ=2000     ;REQUEUE JOB AFTER COMMAND WAIT\r
@@ -306,11 +304,11 @@ TTYRNC=20 ;KEEP TTY IN COMMAND MODE AND START JOB
                ; WHEN COMMAND RESPONSE STOPS TYPING\r
 NOMESS=10      ;NO COMMAND RESPONSE EVER, DO NOT CALL TTYSTR\r
 \r
-               ;T TAKEN ABOVE BY 'PLSXPN' BIT\r
+               ;4 TAKEN ABOVE BY 'PLSXPN' BIT\r
+\r
 \r
 ERRFLG=1       ;COMMAND ERROR\r
-\f\r
-DEFINE NAMES<\r
+\fDEFINE NAMES<\r
        C START,START,NOPER!TTYRNU!INCORE!NOACT!NORUN\r
        C HALT,STOP,NOCORE!NOJOBN!NOLOGIN!NOINCK!CMWRQ\r
        C KJOB,KJOB,NOCORE!NOJOBN!NOINCK!NOLOGIN!NOACT!NORUN!NOPER!NOCRLF!NOMESS!NOTRAN\r
@@ -382,21 +380,23 @@ IFN FTCCL,<
        C CTEST,CCLRUN,NOCORE!NOPER!TTYRNU!NOCRLF!INCORE!NOACT!NORUN\r
 >\r
 >\r
-\f\r
-;GENERATE TABLE OF SIXBIT COMMAND NAMES\r
+\f;GENERATE TABLE OF SIXBIT COMMAND NAMES\r
 \r
 DEFINE C(A,B,D) <\r
        <SIXBIT /A/>\r
 >\r
+\r
 COMTAB:        NAMES\r
 DISPL=.-COMTAB ;LENGTH OF TABLE\r
-\f\r
-;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS\r
+\f;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS\r
 \r
 DEFINE C(A,B,D) <\r
 Z      B       (D)\r
 >\r
 DISP:  NAMES\r
+\r
+       XWD NOCORE+NOJOBN+NOLOGIN+NOINCK,NOCOM\r
+\r
 \f\r
 ;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE\r
 ;WITH FOLLOWING AC'S SET:\r
@@ -451,6 +451,7 @@ PJOB:       MOVE TAC,ITEM           ;JOB NO.
 DECLF: PUSHJ PDP,RADX10        ;PRINT TAC AS DEC. THEN CRLF\r
        JRST CRLF\r
 \r
+\r
 ; "KJOB" KILL ATTACHED JOB\r
 \r
 EXTERNAL JBTSTS,TTYKILM,CPOPJ\r
@@ -478,7 +479,7 @@ IFE FTSWAP+FTLOGIN,<
        JUMPE PROG,DLYCM1       ;DELAY COMMAND IF CORE ASSIGNED ON DISK\r
        JSP TAC1,MONJOB         ;YES, SCHEDULE MONITOR JOB(PC IN EXEC MODE)\r
                                ;RETURN HERE AT UUO LEVEL WHEN SCHEDULED\r
-JOBKL: MOVEI TAC1,ESTOP        ;PUT ESTOP ON END OF PDL\r
+\fJOBKL:        MOVEI TAC1,ESTOP        ;PUT ESTOP ON END OF PDL\r
        JSP TAC,MONSTR          ;GO SETUP ACS AND PD LIST\r
        PUSHJ PDP,JOB1          ;FLUSH CORE AFTER RELEASING DEVICES\r
 JOBKA:\r
@@ -491,22 +492,25 @@ IFE       FTLOGIN, <
        PUSHJ PDP,TTYKIL        ;RETURN TTY TO VIRGIN STATE\r
        JRST KSTOP              ;CLEAR JOB STATUS WORD AND STOP JOB\r
 \r
+\r
 ;ERROR IN COMMAND\r
 \r
+\r
 CERR:  JRST ERRMES\r
 \r
 JOBKB: SETZM   -1(PDP)         ;CLEAR NOJOBN SO COMRET WILL PRINT ERROR MSG.\r
        JRST    ATT4            ;"NOT A JOB"\r
-\f\r
-; "START L" OR "START" - START AT LOC, L OR STARTING ADDRESS\r
+\f; "START L" OR "START" - START AT LOC, L OR STARTING ADDRESS\r
 INTERNAL FT2REL\r
 EXTERNAL JOBSA\r
 \r
 START:                         ;SAME AS CSTART, DIFF BY COMTAB BITS\r
                        ; WHICH PUT TTY IN MONITOR OR USER MODE\r
 \r
+\r
 ; "CSTART L" OR   "CSTART" - START AT LOC. L(TTY IN COMMAND MODE)\r
 \r
+\r
 STARTC:        PUSHJ PDP,OCTIN         ;CONVERT POSSIBLE OCTAL NO ARG.\r
 IFE FT2REL,<\r
        SKIPA TAC1,JOBSA(JDAT)  ;NO START ADR. SPECIFIED RETURN\r
@@ -528,8 +532,7 @@ SNOARG: SKIPA TAC1,JOBSA(JDAT)      ;NO. ARG SPECIFIED, USE START ADR SUPPLIED
                        ; BY PROGRAM END STATEMENT AND STORED BY LINKING LOADER\r
                        ; SKIP INTO REENTER, START WITH PC IN USER MODE\r
 >\r
-\f\r
-;"REENTER"  - REENTER USER PROGRAM\r
+\f;"REENTER"  - REENTER USER PROGRAM\r
 \r
 EXTERNAL JOBREN\r
 \r
@@ -592,8 +595,7 @@ CONT:       MOVSI TAC1,JERR
 \r
        ASCIZ /CAN'T CONTINUE\r
 /\r
-\f\r
-; "CORE  #" - ASSIGNS #*1024 WORDS OF CORE TO JOB\r
+\f; "CORE  #" - ASSIGNS #*1024 WORDS OF CORE TO JOB\r
 ; "CORE" WITH NO ARG. WILL PRINT NO OF FREE BLOCKS LEFT\r
 ;      WITHOUT AFFECTING CURRENT ASSIGNMENT OF CORE\r
 ;      JOB NOT IN MIDDLE OF SWAPPING\r
@@ -612,7 +614,6 @@ IFN FTSWAP,<
                                ; IF ASKING FOR 0 CORE\r
 >\r
        LSH TAC1,12             ;CONVERT 1K BLOCKS TO WORDS\r
-       \r
        MOVEI TAC,-1(TAC1)      ;HIGHEST RELATIVE ADDRESS=LENGTH-1 OF LOW SEG\r
        PUSHJ PDP,CORE0         ;TRY TO ASSIGN CORE\r
        JRST COR2               ;CORE NOT AVAILABLE. GO PRINT MESSAGE\r
@@ -625,8 +626,7 @@ COR1:       JUMPN PROG,COR0         ;GO RELEASE ALL DEVICES IF HE HAS CORE IN MEMORY YET
        JRST DLYCM              ;AND DELAY COMMAND TILL CORE IS IN MEMORY\r
                                ; DLYCM WILL SWAP IT IN.\r
 >\r
-\f\r
-COR2:  IFN FTTTYSERM,<\r
+\fCOR2: IFN FTTTYSER,<\r
        MOVE DEVDAT,-2(PDP)     ;RESTORE TTY DDB ADR\r
 >\r
        PUSHJ PDP,INLMES        ;PRINT ? FOR PATCH\r
@@ -653,7 +653,7 @@ IFN FTSWAP,<
 >\r
        PUSHJ PDP,RADX10        ;PRINT NO. OF 1K BLOCKS AVAILABLE\r
 IFE FTSWAP,<\r
-       JSP TAC,CONMAS\r
+       JSP TAC,CONMES\r
        ASCIZ /K CORE\r
 /\r
 >\r
@@ -661,15 +661,15 @@ IFN FTSWAP,<
        EXTERN VIRTAL\r
        PUSHJ PDP,INLMES\r
        ASCIZ /K CORE\r
-VIR. CORE LEFT =/\r
+VIR. CORE LEFT=/\r
        MOVE TAC,VIRTAL         ;PRINT AMOUNT OF FREE SWAP SAPCE LEFT\r
        JRST RADX10             ;IN DECIMAL\r
 >\r
-\f\r
-; "SSAVE FILENAM.EXT [PROJ,PROG] CORE"\r
+\f; "SSAVE FILENAM.EXT [PROJ,PROG] CORE"\r
 ;WORKS LIKE SAVE, EXCEPT THAT HIGH SEG IS SAVED AS SHARABLE(EXT=SHR)\r
 ;INSTEAD OF NON-SHARABLE(EXT=HGH)\r
 \r
+\r
 ; "SAVE FILE-NAME[PROJ.,PROG.] CORE" - SAVES JOB AREA ON RETRIEVABLE DEVICE\r
 ;ONLY A SAVE OR A GET IN PROGRESS FOR EACH JOB\r
 ;NO ATTEMPT IS MADE TO SAVE DEVICE ASSGINMENTS, AC'S OR PC\r
@@ -682,6 +682,7 @@ SSAVE:      HRRI IOS,SAVJOB         ;SETUP TO RUN SAVEJOB (IOS CLEARED BEFORE
        SETZM JBTPRG(ITEM)      ;CLEAR JOB'S PROGRAM NAME FOR ROOM\r
        JRST SGSET\r
 \r
+\r
 ; "GET DEVICE:FILE-NAME[PROJ.,PROG.] CORE" - SETS UP JOB AREA FROM RETREIVABLE\r
 \r
 ;DEVICE AND ASSIGNS CORE.\r
@@ -703,15 +704,14 @@ LOGREF:   MOVEM   TAC,PRJPRG(ITEM)        ;PRJ,PRG NRS. IN REFLAG
        SETZM   REFLAG                  ;ONLY ONCE\r
        POPJ    PDP,\r
 >\r
-\f\r
-;"HELP" -HELP COMMAND\r
+\f;"HELP" -HELP COMMAND\r
 \r
 INTERNAL FTLOGIN\r
 \r
 IFN FTLOGIN,<  EXTERNAL HELPPP\r
 HELP1:\r
        MOVE TAC,HELPPP\r
-       TLN T,JLOG\r
+       TLNN T,JLOG\r
        JRST    ALOGIN\r
        POPJ    PDP,\r
 >\r
@@ -728,6 +728,7 @@ SYSTAT:     IFN FTLOGIN,<
        MOVE    TAC,[SIXBIT /SYSTAT/]   ;CUSP NAME\r
        JRST    ARCOM   ;RUN IT\r
 \r
+\r
 EXTERNAL JBTSTS,TTYATT\r
 \r
 ALOGIN:\r
@@ -744,13 +745,13 @@ ALOGN1:   PUSHJ PDP,TTYATT        ;MAKE SURE TTY IS ATTACHED IN CASE
        JFCL\r
 >\r
        POPJ PDP,\r
-\f\r
-INTERN FTCCL\r
+\fINTERN FTCCL\r
 \r
 IFN FTCCL,<\r
 \r
 CCLRUN:        MOVE    TAC,[SIXBIT /COMPIL/]   ;CUSP NAME\r
        JRST    ARCOM   ;RUN IT\r
+\r
 >\r
 ;"LOGIN" - LOGIN COMMAND\r
 \r
@@ -784,8 +785,7 @@ CLOG2:      SKIPE   TAC,REFLAG      ;REFLAG SET NON-ZERO FOR AUTOMATIC LOGIN?
        MOVE    TAC,[SIXBIT /LOGIN/]    ;CUSP NAME\r
        JRST    ARCOM   ;RUN IT\r
 >\r
-\f\r
-; "R CUSTNAME CORE" - DOES "RUN SYS:CUSPNAME"\r
+\f; "R CUSTNAME CORE" - DOES "RUN SYS:CUSPNAME"\r
 \r
 RCOM:  MOVEI   TAC,0   ;NO FILE NAME, TTY WILL SUPPLY IT\r
        JRST    ARCOM1\r
@@ -812,14 +812,13 @@ IFE FTSWAP,<
 IFN FTSWAP,<\r
        JRST DLYCM              ;NO. DELAY COMMAND UNTIL IN CORE\r
 >\r
-\f\r
-; "ASSIGN DEV:NAME" - ASSIGN DEVICE TO JOB AND GIVE IT LOGICAL NAME\r
+\f; "ASSIGN DEV:NAME" - ASSIGN DEVICE TO JOB AND GIVE IT LOGICAL NAME\r
 \r
 EXTERNAL DEVLST,PJOBN,SYSTAP\r
 \r
 ASSIGN:        PUSHJ PDP, CTEXT1       ;GET FIRST ARGUMENT\r
        JUMPE TAC1, NOTENF      ;NO ARGUEMNT TYPED IF 0\r
-IFN FTLOGIN,<EXTERN PRJPROG\r
+IFN FTLOGIN,<EXTERN PRJPRG\r
        CAME    TAC,[SIXBIT .SYS.]\r
        JRST    ASSG6\r
        HLRZ    T1,PRJPRG(ITEM)\r
@@ -832,7 +831,6 @@ IFN FTTTYSER,<
        PUSH    PDP,DEVDAT      ;SAVE TTY\r
 >\r
 IFE FTTTYSER,<\r
-\r
        PUSH PDP, TAC           ;SAVE INPUT BYTE POINT\r
 >\r
        MOVE    TAC,TAC1\r
@@ -852,8 +850,7 @@ ASSG4:      CAMN T1,[SIXBIT /DSK/]  ;IS THIS A DISC?(IF YES,
 ASSG5: PUSHJ   PDP,ASSASG      ;NO, TRY TO ASSGIN DEVICE\r
        JRST ASSER1             ;ALREADY ASSIGNED TO ANOTHER JOB\r
        JRST ASSFIN             ;ASSIGNED\r
-\f\r
-;SYSTEM TAPE OR NOT MATCH OF ARG AND PHYSICAL NAME.\r
+\f;SYSTEM TAPE OR NOT MATCH OF ARG AND PHYSICAL NAME.\r
 \r
 ASSG1: CAMN TAC,SYSTAP         ;IS THIS SYSTEM TAPE?\r
        JRST ASSG2              ;YES\r
@@ -882,8 +879,7 @@ ASSG7:      PUSHJ   PDP,CTEXT1
        MOVEM   TAC1,SYSTAP\r
        POPJ    PDP,\r
 >\r
-\f\r
-;ALREADY ASSIGNED TO ANOTHER JOB\r
+\f;ALREADY ASSIGNED TO ANOTHER JOB\r
 ASSER1:\r
 IFE FTTTYSER,<\r
        PDP PDP, TAC\r
@@ -903,8 +899,7 @@ IFN FTTTYSER,<
 >\r
 \r
 ASSMS2:        ASCIZ   /ALREADY ASSIGNED TO JOB /\r
-\f\r
-;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME\r
+\f;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME\r
 ASSFIN:        SETZM   DEVLOG(DEVDAT)  ;CLEAR LOGICAL NAME\r
 IFE FTTTYSER,<\r
        POP PDP,TAC             ;RESTORE INPUT BYTE POINTER\r
@@ -917,7 +912,7 @@ IFN FTTTYSER,<
        SKIPE TAC,TAC1          ;IS THERE A LOGICAL NAME SPECIFIED?\r
        PUSHJ PDP, DEVLG        ;YES, SEE IF IT IS ALREADY IN USE\r
                                ; BY THIS USER\r
-       JRST ASSG1              ;NO \r
+       JRST ASSF1              ;NO \r
        MOVEI TAC,LOGERR        ;YES, PRINT ERROR\r
        MOVE    DEVDAT,-3(PDP)  ;RESTORE TTY DDB\r
        PUSHJ PDP,ERRMES\r
@@ -939,7 +934,7 @@ IFN FT2REL,<
        ASCIZ / ASSIGNED\r
 /\r
 \r
-LOGERR:        ASCIZ /LOGICAL NAME ALREADY IN USE. /\r
+LOGERR:        ASCIZ /LOGICAL NAME ALREADY IN USE, /\r
 \f\r
 ;"DEASSIGN DEV" - DEASSIGNS DEVICE FROM CONSOLE\r
 \r
@@ -969,8 +964,7 @@ DEAER2:     MOVE TAC1,DEVNAM(DEVDAT)        ;PRINT PHYSICAL DEVICE NAME
 \r
        ASCIZ / WASN'T ASSIGNED\r
 /\r
-\f\r
-INTERNAL FTREASSIGN\r
+\fINTERNAL FTREASSIGN\r
 IFE FTREASSIGN,<\r
 REASSI=UUOERR\r
 >\r
@@ -997,9 +991,10 @@ REASSI:    LDB UUO,PUUOAC
 \r
 ;"REASSIGN DEV:JOB" - REASSIGN DEVICE "DEV" TO JOB "JOB"\r
 \r
+\r
 REASS:\r
-       PUSHJ PDP,CTEXT         ;GET DEVICE NAME\r
-       JUMPE TAC,NOTENF        ;NULL NAME?\r
+       PUSHJ PDP,CTEXT1        ;GET DEVICE NAME\r
+       JUMPE TAC1,NOTENF       ;NULL NAME?\r
        MOVE UUO,TAC1           ;SAVE IT IN UUO\r
        PUSHJ PDP,DECIN1        ;GET NEW JOB NUMBER\r
        JRST NOTENF             ;NONE SPECIFIED, DOESN'T RETURN IF ERROR\r
@@ -1026,7 +1021,6 @@ REASS1:   EXCH ITEM,(PDP)         ;NEW JOB NO. IN ITEM
        CAME TAC,ITEM           ;ASSIGNED TO THIS JOB\r
        JRST REASE3             ;NO\r
        MOVE TAC,DEVMOD(DEVDAT)\r
-\r
        TLNE TAC,DVTTY          ;IS IT A TTY?\r
        JRST REASE6             ;YES. CAN'T BE REASSIGNED\r
        TRNN TAC,ASSPRG         ;IS DEVICE INITED?\r
@@ -1048,8 +1042,7 @@ REASS1:   EXCH ITEM,(PDP)         ;NEW JOB NO. IN ITEM
 REASS4:        HRRZ DSER,DEVSER(DEVDAT)\r
        HRRZM DEVDAT,JOBFDV(JDAT)\r
        MOVE UCHN,USRHCU\r
-\f\r
-REASS2:        MOVE DEVDAT,USRJDA(UCHN)        ;GET XWD UUO BITS,DDB ADDRESS\r
+\fREASS2:       MOVE DEVDAT,USRJDA(UCHN)        ;GET XWD UUO BITS,DDB ADDRESS\r
        HRRZ TAC,JOBFDV(JDAT)   ;GET ADDR. OF DDB SAVED BY COMMAND\r
        PUSH PDP,UCHN           ;SAVE USER CHANNEL\r
        CAIN TAC,(DEVDAT)       ;IS CHOSEN DEVICE ON THHS CHANNEL?\r
@@ -1088,8 +1081,7 @@ REASE7:   MOVE TAC1,DEVNAM(DEVDAT)
        ASCIZ / CAN'T BE REASSIGNED\r
 /\r
 >\r
-\f\r
-INTERNAL FTATTACH\r
+\fINTERNAL FTATTACH\r
 IFN FTATTACH,<\r
 \r
 ;"ATTACH DEVNAME" -ATTACHES A PREVIOUSLY PARTITIONED DEVICE\r
@@ -1108,7 +1100,6 @@ ATTACH:   IFE FTTTYSER,<
 IFN    FTLOGIN, <\r
        JRST DEVATT             ;WANTS TO ATTACH A DEVICE\r
 >\r
-\r
 IFE    FTLOGIN, <\r
        JRST    ATT1\r
 >\r
@@ -1170,28 +1161,33 @@ DEVATT: IFE FTTTYSER,<
 ATT1:  JSP TAC,ERRMES\r
        ASCIZ /ILLEGAL JOB NUMBER\r
 /\r
+\r
 ATT2:  MOVE TAC1,DEVNAM(DEVDAT)        ;[PRINT PHYSICAL NAME\r
        MOVE    DEVDAT,-2(PDP)  ;RESTORE TTY DDB\r
        PUSHJ PDP,PRNAME\r
        JSP TAC,ERRMES\r
        ASCIZ / ALREADY ATTACHED\r
 /\r
+\r
 ATT3:  JSP TAC,ERRMES\r
        ASCIZ /CAN'T ATT TO JOB\r
 /\r
+\r
 ATT4:  JSP TAC,ERRMES\r
        ASCIZ /NOT A JOB\r
 /\r
+\r
+\r
 ATT5:  JSP TAC,ERRMES\r
        ASCIZ /CAN'T ATT DEV\r
 /\r
+\r
 ATT6:  POP PDP,DEVDAT\r
        JSP TAC,ERRMES\r
        ASCIZ /WASN'T DET\r
 /\r
 >\r
-\f\r
-INTERNAL FTATTACH\r
+\fINTERNAL FTATTACH\r
 IFN FTATTACH,<\r
 \r
 ;"DETACH" - DETACH CONSOLE FROM JOB\r
@@ -1234,8 +1230,7 @@ DETACH:   PUSHJ PDP,CTEXT1                ;GET ARGUMENT
        HRRM TAC1,TTYTAB(TAC)   ;SO THAT SCNSER CHECKS FOR THIS\r
        POP PDP,DEVDAT          ;RESTORE TTY DDB\r
        POPJ PDP,               ;SUCCESSFUL RETURN\r
-\f\r
-TEMP1: POP PDP,DEVDAT          ;RESTORE TTY DDB\r
+\fTEMP1:        POP PDP,DEVDAT          ;RESTORE TTY DDB\r
        JRST DEAER1             ;PRINT ERROR MSG. AND RETURN\r
 TEMP2:\r
 IFE FTTTYSER,< POP PDP,DEVDAT          ;RESTORE TTY DDB\r
@@ -1247,10 +1242,8 @@ IFN FTTTYSER,<
 LOGER1:        JSP TAC,ERRMES\r
        ASCIZ /CAN'T DET DEV\r
 /\r
-\r
 >>     ;CLOSE BOTH FTLOGIN AND FTATTACH CONDITIONALS.\r
-\r
-;"DAYTIME" - PRINT TIME OF DAY\r
+\f;"DAYTIME" - PRINT TIME OF DAY\r
 \r
 EXTERNAL TIME,THSDAT,MONTAB,JIFMIN\r
 \r
@@ -1287,8 +1280,7 @@ DAYTM1:   MOVE TAC,THSDAT         ;PRINT TODAY'S DATE
        PUSHJ PDP,PRSPC\r
        MOVE TAC,TIME           ;PRINT TIME OF DAY\r
        JRST PRTIM1\r
-\f\r
-INTERNAL FTTIME\r
+\fINTERNAL FTTIME\r
 IFN FTTIME,<\r
 ;"TIME (JOB NO.)" - PRINT TOTAL AND INCREMENTAL RUNNING TIME FOR A JOB\r
 ;FOLLOWED BY KILO-CORE TICKS\r
@@ -1307,7 +1299,6 @@ RUNTIM:   PUSHJ PDP,DECIN         ;GETJOB NO. ARG.
        JRST PRTIME             ;PRINT AND RETURN\r
 \r
 RUN2:  PUSHJ PDP,INLMES        ;PRINT\r
-\r
        ASCIZ /SHFL /           ;"SHUFFLING "\r
        MOVE TAC,SHFWRD         ;NO. WORDS SHUFFLED\r
        IDIVI TAC,WDPJIF        ;NO.WORDS/JIFFY USING BLT\r
@@ -1329,8 +1320,8 @@ RUN2:     PUSHJ PDP,INLMES        ;PRINT
        ASCIZ /UP   /\r
        MOVE TAC,UPTIME\r
        JRST PRTIME             ;AND RETURN\r
-\f\r
-RUN1:\r
+\r
+\fRUN1:\r
 IFE FTLOGIN,<\r
        MOVEI TAC,0             ;GET SET TO CLEAR INCREMENTAL RUN TIME\r
 >\r
@@ -1356,8 +1347,7 @@ IFE FTKCT,<
        JRST PRTIME             ;PRINT IT AND RETURN\r
 >\r
 >\r
-\f\r
-;ROUTINE TO LET TTY TALK TO ANY OTHER RING OF TTYS\r
+\f;ROUTINE TO LET TTY TALK TO ANY OTHER RING OF TTYS\r
 ;      "TALK TTYN"\r
 ;      TTYN NEED NEVER HAVE BEEN TYPED ON BEFORE\r
 \r
@@ -1387,8 +1377,7 @@ TALK1:    MOVE    DEVDAT,-2(PDP)  ;RESTORE TTY DDB
        ASCIZ /BUSY\r
 /\r
 >\r
-\f\r
-INTERNAL FTEXAMINE\r
+\fINTERNAL FTEXAMINE\r
 \r
 IFN FTEXAMINE,<\r
 \r
@@ -1403,7 +1392,7 @@ ECOM:     SKIPGE JOBEXM(JDAT)     ;WAS PREVIOUS D OR E COMMAND. A D COMMAND?
        AOS JOBEXM(JDAT)        ;NO, IT WAS AN  E. INCREMENT IN CASE HE TYPES NO ARG\r
        HRROS JOBEXM(JDAT)      ;YES, FLAG THAT E HAPPENED LAST(LH=-1)\r
        PUSHJ PDP,OCTIN         ;GET OCTAL LOCATION\r
-       SKIPA TAC,JOBEXM(JDAT)  ;NONE SPECIFIED, USE LAST LOC OF D OR NEXT OF E\r
+       SKIPA TAC1,JOBEXM(JDAT) ;NONE SPECIFIED, USE LAST LOC OF D OR NEXT OF E\r
        JRST COMERA             ;ILLEGAL CHARACTER\r
        PUSHJ PDP,DEAT          ;CHECK FOR AC REFERENCE AND STORE JOBEXM\r
        HRRZ UUO,TAC1           ;IGNORE LH\r
@@ -1422,7 +1411,7 @@ ECOM:     SKIPGE JOBEXM(JDAT)     ;WAS PREVIOUS D OR E COMMAND. A D COMMAND?
        HRRZ TAC,(PDP)          ;PRINT RIGHT HALF\r
        PUSHJ PDP,OCTPNT\r
        PUSHJ PDP,INLMES        ;PRINT FINAL TAB\r
-       ASCIZ / /\r
+       ASCIZ / /\r
        JRST TPOPJ              ;POP PDP,TAC,POPJ PDP,\r
 \f\r
 ;"DEPOSIT LH RH LOC" - DEPOSITS XWD LH,RH IN LOCATION LOC\r
@@ -1464,8 +1453,9 @@ DCOM1:    PUSHJ PDP,DEAT          ;CHECK FOR AC REFERENCE
        HRLI TAC1,PROG          ;SET FOR RELOCATION\r
        MOVEM IOS,@TAC1 \r
        POPJ PDP,\r
-\f\r
-DEAT:  TLZ TAC1,-1             ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG\r
+\r
+\r
+\fDEAT: TLZ TAC1,-1             ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG\r
        HRRM TAC1,JOBEXM(JDAT)  ;STORE FOR NEXT TIME, DO NOT TOUCH LH(D OR E LAST)\r
                                ; YES, WAS JOB STOPPED IN USER MODE?\r
        CAIL TAC1,20            ;IS IT AN AC?\r
@@ -1473,6 +1463,7 @@ DEAT:     TLZ TAC1,-1             ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG
        MOVE TAC,JOBPC(JDAT)\r
        TLNE TAC,USRMOD         ;USER MODE?\r
        ADDI TAC1,20            ;YES USER ACS ARE AT 20 INSTEAD OF 0\r
+       POPJ PDP,\r
 \r
 DCOMA:\r
 IFN FT2REL,<\r
@@ -1484,10 +1475,8 @@ IFN FT2REL,<
 ECOMA: JSP TAC,ERRMES  ;OUT OF BOUNDS\r
        ASCIZ /OUT OF BOUNDS\r
 /\r
-\r
 >\r
-\f\r
-IFN FTLOGIN,<\r
+\fIFN FTLOGIN,<\r
 ;"SCHEDULE OCTN" - SETS RH OF STATES TO OCTN, IF TYPED FROM\r
 ; THE OPERATOR CONSOLE (C(DEVOPR)), OTHERWISE ILLEGAL\r
 ;"SCHEDULE" WITH NO ARGUMENTS TYPES OUT RH OF STATES, LEGAL FOR ALL.\r
@@ -1510,6 +1499,7 @@ SKED1:    HRRZ    TAC,STATES      ;SCHEDULE WITH NO ARGUMENTS.
 ;"BLANK" OR NO ALPHA NUMERIC BEFORE BREAK CHAR COMMAND\r
 ;DISPATCHED TO LIKE ANY OTHER COMMAND(0 IN COMMAND TABLE)\r
 \r
+\r
 CBLANK:\r
 IFE FTTTYSER,<\r
        LDB     TEM,TAC         ;GET BREAK CHARACTER\r
@@ -1525,8 +1515,7 @@ IFN FTTTYSER,<
 ;COMMAND NOT IN COMMAND DICECTORY\r
 \r
 NOCOM: JRST COMERR     ;NO, APPEND ? TO WHAT HE TYPED IN\r
-\f\r
-IFN FTFINISH,<\r
+\fIFN FTFINISH,<\r
 ; "FINISH DEVICE" - CLOSES,RELEASE AND DESASSIGNS DEVICE\r
 ;JOB MUST HAVE CORE\r
 \r
@@ -1558,8 +1547,7 @@ FDV1:     HRRZ DEVDAT,USRJDA(UCHN)        ;GET NEXT DEVICE
        JFCL                    ;IGNORE IF NOT ASSIGNED BY CONSOLE\r
        JRST ESTOP              ;STOP JOB SO HE CANNOT CONTINUE\r
 >\r
-\f\r
-IFN FTTIME,<\r
+\fIFN FTTIME,<\r
 ;"RESOURCES" - PRINT OUT AVAILABLE DEVICES AND FREE BLOCKS ON THE DISK\r
 \r
 EXTERNAL DEVLST\r
@@ -1585,7 +1573,7 @@ LOP06:    ADDI T1,SENTSZ          ;BUMP POINTER
        ASCIZ /. BLKS/\r
 >\r
 \r
-       HRLZ T,DEVLST           ;GET DDB POINTER\r
+       HLRZ T,DEVLST           ;GET DDB POINTER\r
        MOVEI AC2,0             ;SET DEVICE NAME 0 FOR FIRST COMPARE\r
 LOP01: MOVE T1,DEVMOD(T)       ;DEVICE CHARACTERISTICS\r
        TRNN T1,ASSCON!ASSPRG   ;DEVICE ASSIGNED BY CONSOLE OR PROGRAM?\r
@@ -1608,8 +1596,7 @@ LOP02:    HLRZ T,DEVSER(T)        ;GET NEXT DEVICE IN CHAIN
        JUMPN T,LOP01           ;IS THERE ONE?\r
        JRST CRLF               ;NO. DONE, PRINT CR. LF AND THEN POPJ\r
 >\r
-\f\r
-EXTERNAL CPOPJ,STUSER\r
+\fEXTERNAL CPOPJ,STUSER\r
 ;ROUTINE TO CHECK FOR ACTIVE DEVICES\r
 ;NEVER GET HERE DURING SWAP IN OU OUT\r
 ;SINCE COMMAND TABLE SHOULD AHVE NOTRAN BIT ON\r
@@ -1665,13 +1652,11 @@ STOPD:  LDB TAC,PJOBN
        JRST CPOPJ              ;YES. DELAY\r
 STOPC: HLRZ DEVDAT,DEVSER(DEVDAT)\r
        MOVSI TAC,446353\r
-\r
        CAMN TAC,DEVNAM(DEVDAT)\r
        JRST STOPD\r
        JRST CPOPJ1             ;OK TO STOP\r
 >\r
-\f\r
-SUBTTL COMCSS - COMMON COMMAND SUBROUTINES\r
+\fSUBTTL        COMCSS - COMMON COMMAND SUBROUTINES\r
 \r
 ;ROUTINE TO RETURN NEXT ALPHANUMERIC STRING\r
 ; IN COMMAND LINE (SIXBIT)\r
@@ -1698,7 +1683,7 @@ IFE FTTTYSER,<
 CTEX0: ILDB    TEM,TAC\r
 >\r
 IFN FTTTYSER,<\r
-EXTERN TAKR,GETCHAR\r
+EXTERN TAKR,GETCHR\r
        LDB     TEM,TAKR(DAT)   ;GET LAST CHAR.\r
        JRST    CTEX1\r
 CTEX0: PUSHJ   PDP,GETCHR      ;ROUTINE IN SCNSER TO PICK UP CHAR.\r
@@ -1709,8 +1694,7 @@ CTEX1:    PUSHJ PDP, CTEX         ;IS IT ALPHANUMERIC
        TLNE    T,770000        ;SIX CHARS YET?\r
        IDPB    TEM,T   ;NO. BUILD WORD \r
        JRST CTEX0      ;LOOP FOR MORE\r
-\f\r
-;SCAN FOR ALPHANUMERIC CHAR IN TEM\r
+\f;SCAN FOR ALPHANUMERIC CHAR IN TEM\r
 CTEX:  CAILE   TEM,"Z"+40      ;GREATER THAN LC Z?\r
        JRST    CTEXA           ;YES. NOT SIXBIT.\r
        CAIL    TEM,"A"+40      ;LOWER CASE LETTER?\r
@@ -1729,14 +1713,12 @@ IFN FTTTYSER,<
        CAIN    TEM,":"         ;DEVICE NAME?\r
        PUSHJ   PDP,GETCHR      ;YES. SKIP COLON\r
        CAIE    TEM,3   ;CONTROL C?\r
-\r
        JRST    TPOPJ   ;NO. RETURN ONE LEVEL UP\r
 CTXCNC:        MOVSI   TAC1,(SIXBIT /HAL/)     ;MAKE PHONY HALT COMMAND\r
-       MOVSI   TEM,12  ;WITH LF FOR TERMINATION\r
+       MOVEI   TEM,12  ;WITH LF FOR TERMINATION\r
        JRST    TPOPJ   ;AND RETURN UP A LEVEL\r
 >\r
-\f\r
-;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS\r
+\f;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS\r
 ;ALSO CLEARS TAC1\r
 ;DOES NOT RETURN IF PREVIOUS CHAR. OR NEXT NON-SPACING\r
 ;CHAR, IS CR(IE POPS SUBROUTINE LEVEL UP 1 ON RETURN)\r
@@ -1759,6 +1741,7 @@ SKIPSA:
        JRST SKIPSA\r
        CAIN TEM,15     ;CR?\r
 SKIPS2:        POP PDP,T       ;YES. POP SUB. LEVEL UP ONE\r
+       POPJ PDP,\r
 >\r
 IFN FTTTYSER,< EXTERNAL GETCHR,SPCHEK,BREAKB,TAKR\r
 \r
@@ -1780,8 +1763,7 @@ SKIPS3:   CAIN    TEM,3   ;^C?
        MOVEI   TEM,12  ;FOR BREAK CONSISTENCY\r
        JRST    TPOPJ   ;RETURN ONE LEVEL UP\r
 >\r
-\f\r
-;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT\r
+\f;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT\r
 ;CALLED FROM OCTIN, RETURNS TO SECOND LEVEL ON PDL\r
 ;CALL: MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
 ;      PUSHJ PDP, COMERA\r
@@ -1792,6 +1774,7 @@ COMERP:   POP     PDP,T           ;REMOVE SUB. RETURN BEFORE CALLING COMERA
 COMERA:        IFE FTTTYSER,<  IBP     TAC>\r
        IFN FTTTYSER,<  PUSHJ   PDP,GETCHR>     ;MOVE UP, A CH\r
 \r
+\r
 ;ROUTINE TO REPLACE LAST CHARACTER IN INPUT STRING BY "?"\r
 ;AND SET AS OUTPUT\r
 ;CALL: MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
@@ -1823,8 +1806,7 @@ IFE FTTTYSER,<
        DPB     T,DAT\r
 >\r
        TDZA ITEM,ITEM          ;CLEAR JOB NO. AND SKIP INTO CRLF ROUT.\r
-\f\r
-;ROUTINE TO PRINT A COMMAND ERROR MESSAGE\r
+\f;ROUTINE TO PRINT A COMMAND ERROR MESSAGE\r
 ;SAME CALL AS CONMES\r
 \r
 INTERNAL ERRMES\r
@@ -1869,8 +1851,7 @@ IFE FTTTYSER,<
        IDPB    TEM,DAT\r
 >\r
        JRST CON0               ;KEEP GOING\r
-\f\r
-;ROUTINE TO PRINT INLINE ASCIZ MESSAGE\r
+\f;ROUTINE TO PRINT INLINE ASCIZ MESSAGE\r
 ;CALL: PUSHJ PDP,INLMES\r
 ;      ASCIZ /THE MESSAGE/\r
 ;RETURN TO NEXT LOC AFTER MESSAGE\r
@@ -1889,7 +1870,6 @@ INTERNAL PRQM
 \r
 PRQM:  MOVEI TEM,"?"\r
 IFN FTTTYSER,<\r
-\r
 EXTERN OUTCHS\r
        JRST    OUTCHS\r
 >\r
@@ -1897,9 +1877,10 @@ IFE FTTTYSER,<
        IDPB    TEM,DAT\r
        POPJ    PDP,\r
 >\r
-PRSPC: MOVEI TAC,[ASCIZ /      /]\r
+PRSPC: MOVEI TAC,[ASCIZ /    /]\r
        JRST CONMES\r
 \f\r
+\r
 ;ROUTINE TO PRINT "TOO FEW ARGUMENTS"\r
 ;CALL: MOVE DAT,BYTE POINTER\r
 ;      PUSHJ PDP,NOTENF\r
@@ -1937,7 +1918,6 @@ DEASG:    LDB T, PJOBN            ;WAS DEVICE ASSIGNED TO THIS JOB?
        ANDCAB TAC1,DEVMOD(DEVDAT)      ;SET DEVICE CHARACTERISTICS FOR TEST\r
                                ; AND ASGHGH\r
        SETZM DEVLOG(DEVDAT)    ;CLEAR LOGICAL NAME\r
-\r
        TRNE TAC1,ASSCON        ;IS DEVICE ASSIGNED BY CONSOLE?\r
        AOS -1(PDP)             ;YES, DO OK RETURN\r
 IFN FT2REL,<\r
@@ -1958,6 +1938,7 @@ IFN FT2REL,<
 INTERNAL DEASAL,DEASTY\r
 EXTERNAL DEVLST\r
 \r
+\r
 DEASTY:\r
 DEASAL:        PUSH PDP,DEVDAT         ;SAVE TTY DDB ADDRESS\r
        HLRZ DEVDAT,DEVLST      ;SEARCH ALL DDB'S\r
@@ -1969,7 +1950,7 @@ DEA1:     CAIE DEVDAT,@(PDP)      ;IS THIS DEVICE NOT TO BE DEASSIGNED?
        POP PDP,DEVDAT          ;RESTORE TTY DDB ADDRESS\r
        POPJ PDP,\r
 \f\r
-;ROUTINE TO REA CONSOLE AND CONVERT ANY RADIX NUMBER\r
+;ROUTINE TO READ CONSOLE AND CONVERT ANY RADIX NUMBER\r
 ; CALL:        MOVE TAC1,  DESIRED RADIX\r
 ;      MOVE TAC,  BYTE POINTER TO FIRST CHARACTER\r
 ;      PUSHJ PDP, ANYRIN\r
@@ -2000,7 +1981,7 @@ OCT0:     CAIGE TEM,175           ;ALTMODES(175 OR 176)?
                                ; BEFORE [P,P] IN ATT AND GET COMMANDS.\r
        JRST    CPOPJ2  ;YES. SKIP RETURN\r
        CAIE TEM,"-"    ;DASH?\r
-       CAIG    TEM,400 ;SPACE OR CONTROL CHAR?\r
+       CAIG    TEM,40  ;SPACE OR CONTROL CHAR?\r
        JRST CPOPJ2             ;YES, ONLY LEGAL TERMINATORS\r
        CAIE TEM,","            ;COMMA?\r
        CAIN TEM,"]"            ;RIGHT BRACKET?\r
@@ -2014,8 +1995,7 @@ OCT0:     CAIGE TEM,175           ;ALTMODES(175 OR 176)?
 IFE FTTTYSER,< ILDB    TEM,TAC ;NEXT CHAR>\r
 IFN FTTTYSER,< PUSHJ   PDP,GETCHR>     ;NEXT CHAR\r
        JRST OCT0\r
-\f\r
-INTERNAL FTLOGIN\r
+\fINTERNAL FTLOGIN\r
 IFN FTLOGIN,<\r
 ;GET PROJECT-PROGRAMMER NUMBERS\r
 ;CALL: MOVE TAC,INPUT BYTE POINTER\r
@@ -2026,6 +2006,7 @@ IFN FTLOGIN,<
 ;(AC2) = 0 IF NO [ ]'S TYPED\r
 ;THE TERMINAL ] IS OPTIONAL\r
 \r
+\r
 IFE FTTTYSER,<\r
 PJPGNO: SKIPA  TAC1,TAC        ;SAVE INPUT BYTE POINTER IN CASE NO\r
                                ; [ ]'S WERE TYPED IN.\r
@@ -2033,7 +2014,6 @@ PP0:      IBP     TAC             ;GET NEXT CHARACTER (2ND TIME THRU LOOP)
        LDB     TEM,TAC         ;GET CHAR WHICH STOPED PREVIOUS FIELD SCAN\r
                                ; (OR NEXT CHAR ON 2ND TIME THRU LOOP)\r
 >\r
-\r
 IFN FTTTYSER,<\r
 PP0:   PUSHJ   PDP,SKIPS1\r
 PJPGNO:\r
@@ -2067,8 +2047,7 @@ IFE FTTTYSER,<IBP TAC>            ;YES, SKIP IT
 IFN FTTTYSER,<PUSHJ PDP,GETCHR>        ;YES, SKIP IT SO FINAL ] IS OPTIONAL\r
        POPJ PDP,               ;RETURN RO CALL\r
 >\r
-\f\r
-;ROUTINE TO PRINT TIME AS HOURS,MINUTES,SECONDS, AND HUNDRETHS\r
+\f;ROUTINE TO PRINT TIME AS HOURS,MINUTES,SECONDS, AND HUNDRETHS\r
 ;FORMAT IS HHMM:SS.HH\r
 ;CALL: MOVE TAC,TIME IN JIFFIES(60THS,50THS OR MILLISECONDS)\r
 ;      MOVE DAT,OUTPUT TEXT BYTE POINTER\r
@@ -2108,8 +2087,7 @@ PR1:      POP PDP,TAC             ;RESTORE SECONDS(IN JIFFIES)
        CAIL TAC1,JIFSC2        ;ROUND IF GREATER THEN HALF\r
        AOS TAC\r
        JRST PRT2LF             ;PRINT\r
-\f\r
-PRTIM1:        IDIVI TAC,JIFMIN        ;\r
+\fPRTIM1:       IDIVI TAC,JIFMIN        ;\r
        IDIVI TAC,^D60          ;HOURS,MINUTES IN TAC,TAC1\r
        PUSHJ PDP,PRT2\r
        PUSHJ PDP,INLMES        ;PRINT "HH:"\r
@@ -2122,8 +2100,7 @@ PRT2:     MOVEI TEM,"0"
        CAIGE TAC,^D10\r
        XCT CONOUT              ;PUT LEADING 0 IF LESS THEN 10\r
        JRST RADX10             ;PRINT REST OF NUMBER\r
-\f\r
-;ROUTINE TO PRINT SIZE OF LOGICAL SEGMENT (LOW OR HIGH)\r
+\f;ROUTINE TO PRINT SIZE OF LOGICAL SEGMENT (LOW OR HIGH)\r
 ;CALL: MOVE ITEM, HIGH OR LOW SEG NUMBER\r
 ;      PUSHJ PDP,PRT SEG\r
 ;      RETURN\r
@@ -2154,8 +2131,7 @@ IFN FTSWAP,<
        JUMPE TAC1,CPOPJ        ;IS IT IN CORE?\r
        LSH TAC1,-12            ;YES, CONVERT TO #K-1\r
        AOJA TAC1,CPOPJ         ;ADD 1 AND RETURN NUMBER OF K\r
-\f\r
-;ROUTINE TO ASSIGN A MINIMAL CORE AREA(140 WORDS)\r
+\f;ROUTINE TO ASSIGN A MINIMAL CORE AREA(140 WORDS)\r
 ;CALLED FROM CORE,KJOB, AND RUN COMMANDS\r
 ;THIS ROUTINE PRESERVES INPUT BYTE POINTER IN TAC\r
 ;CALL: PUSHJ PDP,GETMIN\r
@@ -2174,7 +2150,6 @@ IFN FTTTYSER,<
        PUSH PDP,IOS    ;SAVE DISPATCH ADDRESS(ANYACT USES IOS)\r
 IFN FT2REL,<\r
        EXTERN KILHGH\r
-\r
        PUSHJ PDP,KILHGH        ;KILL HIGH SEG\r
 >\r
        MOVEI TAC,JOBDA         ;LENGTH OF JOBDATA AREA\r
@@ -2189,8 +2164,7 @@ IFN FTTTYSER,<
 IFE FTTTYSER,<\r
        JRST TPOPJ              ;RESTORE TAC AND RETURN\r
 >\r
-\f\r
-;ROUTINE TO GET 1 WORD FORM USER ARE WHICH CAN BE IN LOW OR HIGH SEG\r
+\f;ROUTINE TO GET 1 WORD FORM USER ARE WHICH CAN BE IN LOW OR HIGH SEG\r
 ;CALL: MOVE PROG,[XWD PROT,RELOC FOR LOW SEG]\r
 ;      MOVE ITEM,JOB NUMBER\r
 ;      HRLI UUO,PROG           ;FOR RELOCATION\r
@@ -2215,41 +2189,59 @@ IFE FT2REL,<
 >\r
        MOVE TAC,@UUO           ;YES, GET IT FROM LOW SEG\r
        JRST CPOPJ1             ;AND SKIP RETURN\r
-\f\r
-SUBTTL SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS\r
+\fSUBTTL        SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS\r
 \r
 ;SAVGET LOWER CORE LOCATIONS USED FOR UUOS TO MONITOR\r
 ;USED IN SAVGET IN APRSER AND SAVGET IN SEGCON\r
 ;THESE LOCATIONS ARE DEFINED TO BE IN THE USERS UUO ACS\r
 \r
 ;FOR LOOKUP,ENTER UUOS:\r
-       XP SGANAM,0             ;FILE NAME\r
-       XP SGAEXT,SGANAM+1      ;FILE EXTENSION\r
-       XP SGADAT,SGANAM+2      ;FILE CREATION DATE+TIME\r
-       XP SGALEN,SGANAM+3      ;LN=-LENGTH,RH=FIRST LOC-1 DUMPED\r
+       XP SGANAM,0\r
+                               ;FILE NAME\r
+       XP SGAEXT,SGANAM+1\r
+                               ;FILE EXTENSION\r
+       XP SGADAT,SGANAM+2\r
+                               ;FILE CREATION DATE+TIME\r
+       XP SGALEN,SGANAM+3\r
+                               ;LN=-LENGTH,RH=FIRST LOC-1 DUMPED\r
+\r
                                ; OR PROJECT-PROGRAMMER NUMBER(DISK)\r
-       XP SGAEND,SGALEN+1      ;LAST WORD OF DUMP COMMAND LIST=0(SAVE AND GET)\r
-       XP SGAREN,SGAEND        ; ALSO FIRST WORD FOR RENAME USED AS DELETE\r
-       XP SGAPPN,SGAREN+3      ;FOURTH WORD-PLACE TO SAVE PROJECT-PROGRAMEMR\r
+       XP SGAEND,SGALEN+1\r
+                               ;LAST WORD OF DUMP COMMAND LIST=0(SAVE AND GET)\r
+       XP SGAREN,SGAEND\r
+                               ; ALSO FIRST WORD FOR RENAME USED AS DELETE\r
+       XP SGAPPN,SGAREN+3\r
+                               ;FOURTH WORD-PLACE TO SAVE PROJECT-PROGRAMEMR\r
+\r
                                ; NUMBER USER TYPED\r
 \r
 ;FOR OPEN UUOS:\r
-       XP SGAMOD,10            ;IOS MODE WORD FOR OPEN UUO\r
-       XP SGADEV,SGAMOD+1      ;DEVICE NAME\r
-       XP SGAHED,SGAMOD+2      ;INPUT-OUTPUT BUFFER HEADER ADDRESSES=0\r
+       XP SGAMOD,10\r
+                               ;IOS MODE WORD FOR OPEN UUO\r
+       XP SGADEV,SGAMOD+1\r
+                               ;DEVICE NAME\r
+       XP SGAHED,SGAMOD+2\r
+                               ;INPUT-OUTPUT BUFFER HEADER ADDRESSES=0\r
 \r
 ;MISC. DATA LOCATIONS:\r
 \r
-       XP SGADMP,13            ;DUMP COMMAND IOWD\r
-       XP SGACOR,14            ;AC FOR CORE UUO'S(HIGHEST USER LOC DESIRED)\r
-       XP SGANEW,15            ;NEW CORE ASSIGNMENT AS SPECIFIED BY THIRD ARG\r
-       XP SGAHGH,16            ;LH=EXT TO USE FOR SAVING HIGH SEG\r
+       XP SGADMP,13\r
+                               ;DUMP COMMAND IOWD\r
+       XP SGACOR,14\r
+                               ;AC FOR CORE UUO'S(HIGHEST USER LOC DESIRED)\r
+       XP SGANEW,15\r
+                               ;NEW CORE ASSIGNMENT AS SPECIFIED BY THIRD ARG\r
+       XP SGAHGH,16\r
+                               ;LH=EXT TO USE FOR SAVING HIGH SEG\r
+\r
                                ; RH=EXT TO DELETE(IE SHRHGH OR HGHSHR)\r
-       XP SGALOW,17            ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND\r
+       XP SGALOW,17\r
+                               ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND\r
+\r
                                ; OR .SAV IF HE DIDN'T TYPE AN ARG WITH LEADING PERIOD\r
+\r
                                ; RH=0\r
-\f\r
-;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R\r
+\f;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R\r
 ;COMAMNDS AND STORE THEM IN JOB DATA AREA WHICH MUST BE IN CORE\r
 ;WHEN SGSET IS CALLED FROM COMMAND DECODER\r
 ;CALL: MOVE TAC,INPUT BYTE POINTER\r
@@ -2291,15 +2283,14 @@ IFN FTLOGIN,<
        PUSHJ PDP,DECIN1        ;AMOUNT OF CORE (OPTIONAL THIRD ARG.)\r
        JRST SGSET1             ;DOES NOT RETURN IF ERROR. RETURN HERE IF NO ARG.\r
        JRST COMERA             ;ILLEGAL CHARACTER\r
-       LSH TAC,12              ;CONVERT TO HIGHEST REL. LOC.\r
-       SUBI TAC,1\r
+       LSH TAC1,12             ;CONVERT TO HIGHEST REL. LOC.\r
+       SUBI TAC1,1\r
 SGSET1:        MOVEM TAC1,SGANEW(PROG) ;STORE FOR RUN AND SAVE\r
        HRRZ TAC1,IOS           ;SCHEDULE MONITOR JOB   \r
                                ; GUARRANTEE LH OF PC WORD IS 0, SINCE IT WILL\r
                                ; BE ADDED TO STARTING ADDRESS(IF RUN COM)\r
        JRST MSTART             ;START JOB WITH PC IN MONITOR MODE\r
-\f\r
-;ROUTINE TO PICKUP ARGUMENTS FOR RUN AND GETSET UUOS\r
+\f;ROUTINE TO PICKUP ARGUMENTS FOR RUN AND GETSET UUOS\r
 ;THIS ROUTINE DOES SAME THING AS SGSET, EXCEPT THAT ARGUMENTS ARE\r
 ;OBTAINED FROM USER UUO ARGUMENTS INSTEAD OF FROM CONSOLE COMMAND\r
 ;THE USERS ARG ARE MOVED TO USER ACS(SGA...), THEREBY CLOBBERING HIS AC$S\r
@@ -2312,13 +2303,12 @@ SGSET1: MOVEM TAC1,SGANEW(PROG) ;STORE FOR RUN AND SAVE
 ;      RETURN\r
 \r
        INTERN GETARG\r
-       EXTERN JBTPROG,JOBCORE,PUUOAC\r
+       EXTERN JBTPRG,JOBCOR,PUUOAC\r
 \r
 GETARG:        HRR UUO,TAC             ;MOVE ADR. OF ARG LIST TO UUO\r
        EXCH TAC,(PDP)          ;AND PUT ON PD LIST\r
        PUSH PDP,TAC            ;MOVE RETURN PC UP ONE IN PD LIST\r
        LDB TAC,PUUOAC          ;USER AC FIELD IN RUN OF GETSEG UUO\r
-\r
        HRRM TAC,-1(PDP)        ;SAVE IN CASE OF ERROR RETURN\r
        PUSHJ PDP,GETWDU        ;GET FIRST ARG FROM USER AREA\r
        MOVEM TAC,SGADEV(PROG)  ;STORE DEVICE NAME\r
@@ -2342,8 +2332,7 @@ IFN FT2REL,<
                                ; IGNORE LH\r
        JRST SG2A               ;GO SET UP LOWER CORE AND RETURN\r
                                ; DO NOT DO A RESET\r
-\f\r
-;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
+\f;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
 ;THIS JOB RUNS IN EXEC MODE AND CALLS IO ROUTINES USING REGULAR UUOS\r
 ;NO ATTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBDP, OR AC'S\r
 ;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA\r
@@ -2353,6 +2342,7 @@ IFN FT2REL,<
 INTERNAL SAVJOB,SAVERR\r
 EXTERNAL JOB41,JOBS41,JOBDDT,JOBSDD,JOBSV\r
 \r
+\r
 SAVJOB:        JSP TAC1,SG1            ;SET UP ACS PROG,PDP,JDAT,ITEM.\r
                                ; RESET DEVICES\r
        HLRE TAC1,SGADMP(PROG)  ;-NO. OF WORDS TO WRITE\r
@@ -2374,12 +2364,12 @@ SAVJB1: OPEN 0,SGAMOD           ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE
        UGETF 0,SGAHED          ;GET FIRST FREE BLOCK(MEANINGFUL ONLY IF DTA)\r
                                ; CAUSE ENTER TO ASSIGN FIRST LOBCK OF FILE\r
                                ; AS LOWEST FREE BLOCK SO TENDMP CAN READ\r
+                               ; SAVED FILES, SGAHED IS NO LONGER NEEDED(OPEN UUO)\r
        ENTER 0,SGANAM          ;ENTER FILE NAME IN DIRECTORY\r
        JRST SAVERR             ;DIRECTORY FULL OR PROTECTION FAILURE\r
        MOVE TAC,JOB41(JDAT)    ;SAVE USER UUO HANDLING JSR\r
        MOVEM TAC,JOBS41(JDAT)  ;IN UPPER PART OF JOB DATA AREA\r
-\f\r
-       MOVE TAC,JOBDDT(JDAT)   ;SAVE DDT STARTING ADDRESS HIGHER UP IN JOB DATA AREA\r
+\f      MOVE TAC,JOBDDT(JDAT)   ;SAVE DDT STARTING ADDRESS HIGHER UP IN JOB DATA AREA\r
        MOVEM TAC,JOBSDD(JDAT)  ;SO COMPRESS ALWAYS MOVES CODE DOWN\r
        HRROS USRHCU            ;FLAG THAT SAVE GET IS UNDER WAY\r
                                ; SO THAT JOBHRL WILL NOT BE MODIFIED BY SETHGH RUOTINE\r
@@ -2397,7 +2387,6 @@ SAVJB1:   OPEN 0,SGAMOD           ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE
 CMPLP1:        MOVEM   TAC,DAT         ;SAVE 1ST LOC FOR IOWD\r
        CAMLE   TAC1,ITEM        ;SEARCH FOR 1ST NON-0 WORD\r
        AOJA    TAC,CMPTHR        ;THROUGH\r
-\r
        SKIPN   @TAC1            ;THIS A DATA WORD?\r
        AOJA    TAC1,.-3        ;NO, KEEP LOOKING\r
        MOVNI   AC1,1           ;YES, AC1 WILL BE AN IOWD\r
@@ -2421,13 +2410,13 @@ CMPTHR: HRLI    TEM,254000      ;SET A JRST C(JOBSA)
                                ; CORE ON START ,ODT,SAVE, REENTER,SSAVE IN CASE\r
                                ; THIS SAE IO DOES NOT GO TO COMPLETION. (CONTROL C\r
                                ; OR  DEVICE FULL, SO THAT CORE DOES NOT GET EXPANDED\r
-\f\r
-       PUSHJ PDP,SGDOA         ;DO OUTPUT,RELEASE,FIND TTY\r
+\f      PUSHJ PDP,SGDOA         ;DO OUTPUT,RELEASE,FIND TTY\r
        OUTPUT 0,SGALEN         ;OUTPUT UUO EXECUTED BY SGDO\r
                                ; RETURN HERE ONLY IF NO ERRORS\r
 SAVFIN:        PUSHJ PDP,SGREL         ;RELEASE DEVICE AND FIND TTY\r
        JSP TAC,PHOLD           ;PRINT MESSAGE AND STOP JOB\r
        ASCIZ /JOB SAVED/\r
+\r
 SAVERR:        MOVEI TAC,PRTERR        ;ERROR CORE IN CASE RUN UUO(PROTECTION ERROR)\r
                                ; CHANGE TO DISK ERROR CODE IF DEV IS DSK\r
        PUSHJ PDP,SGRELL        ;CHANGE TO DISK ENTER ERROR CODE IF DSK\r
@@ -2464,8 +2453,7 @@ RUNJOB:   JSP TAC1,SG1            ;SETUP ACS, SETUP LOWER CORE(SGALEN,SGADMP)
                                ; PUT TAC1 AS FIRST ITEM ON PD LIST(JOBPN1)\r
                                ; LH USED BY SGRELE ON ERROR TO SEE IF FROM USER\r
                                ; AND LH ADDED TO START PC(JOBSA) BY URUN\r
-\f\r
-;RUN UUO\r
+\f;RUN UUO\r
 ;CALL: MOVE AC,[XWD N,D]\r
 ;      CALL AC,[SIXBIT /RUN/]\r
 ;      ERROR RETURN            ;UNLESS LH=HALT(PRINT CONSOLE MESS, IF YES)\r
@@ -2511,8 +2499,7 @@ IFN FT2REL,<
        HRLI TAC1,USRMOD        ;SET USER MODE BIT IN PC\r
        PUSH PDP,TAC1           ;PUT ON PD LIST\r
        JRST USRXIT             ;AND GO TO RETURN TO USER AS IF FROM UUO\r
-\f\r
-;UUO TO GET JUST HIGH SEG AND RETURN TO USER\r
+\f;UUO TO GET JUST HIGH SEG AND RETURN TO USER\r
 ;CALL IS THE SAME AS FOR RUN UUO EXCEPT THAT OK RETURN IS SKIP RETURN\r
 ;IF ERROR RETURN HAS HALT IN LH, STANDARD CONSOLE MESSAGE IS PRINTED AND JOB STOPPED\r
 \r
@@ -2526,8 +2513,7 @@ IFN FT2REL,<
 UGTERR:        MOVEI TAC,ILUERR        ;ILLEGAL UUO ERROR CORE\r
        PUSHJ PDP,SGRELE        ;SEE IF USER WANTS ERROR\r
        JRST UUOERR             ;NO, PRINT ILLEGAL UUO\r
-\f\r
-;ROUTINE TO SETUP ACS, RESET IO, AND SETUP LOWER CORE LOCATIONS\r
+\f;ROUTINE TO SETUP ACS, RESET IO, AND SETUP LOWER CORE LOCATIONS\r
 ;FOR SAVE AND GET(SGALEN SET IO IOWD OR PP IF DTA OR DSK)\r
 ;SGADMP SET TO IOWD FOR THIS SIZE CORE\r
 ;CALL: JSP TAC1,SG1\r
@@ -2568,8 +2554,7 @@ IFN FT2REL,<
 >\r
        JRST SGERRA             ;NOT AVAILABLE\r
                                ;DEVICE INITED(OR FOUND)\r
-\f\r
-;COMMON EXIT FROM SAVHGH AND GETHGH ROUTINES(HIGH SEG SAVE AND GET)\r
+\f;COMMON EXIT FROM SAVHGH AND GETHGH ROUTINES(HIGH SEG SAVE AND GET)\r
 ;SO THAT SGA... LOCATIONS ARE RESTOREED TO ORIGINAL VALUES FOR LOW SEG\r
 \r
 SG3:   MOVE TAC,JOBFF(JDAT)    ;FIRST FREE LOC IN JOB(SET FROM LH OF\r
@@ -2589,7 +2574,7 @@ IFN FTDISK,<
        MOVE TAC1,DEVMOD(DEVDAT)        ;RETURN DEVICE CHARACTERISTICS(IF DISK SYS)\r
        TLNE TAC1,DVDSK         ;IS THIS DEVICE A DISK?\r
 \r
-       MOVS TAC1,SGAPPN(PROG)  ;YES. MAKE SURE FORTH WORD IS PROJ,PROG NO.\r
+       MOVS TAC,SGAPPN(PROG)   ;YES. MAKE SURE FORTH WORD IS PROJ,PROG NO.\r
 >\r
        MOVSM TAC,SGALEN(PROG)  ;NO. MAKE SURE FORTH WORD IS IOWD FOR DECTAPE\r
                                ; SINCE DECTAPE USES RH TO COMPUTE LENGTH IN K\r
@@ -2617,14 +2602,14 @@ SGERR1: MOVEI TAC,NSDERR        ;ERROR CODE IN CASE RUN UUO(NO SUCH DEVICE)
                                ; OR FIND TTY AND PRINT ?CRLF\r
        JSP TAC,PHOLD           ;START TTY AND STOP JOB\r
        ASCIZ /NO SUCH DEVICE/\r
-\f\r
-;ROUTINE TO GET FILE FROM DEVICE(LOW AND/OR HIGH)\r
+\f;ROUTINE TO GET FILE FROM DEVICE(LOW AND/OR HIGH)\r
 ;CALL: ACS JDAT,PROG,PDP,DEVDAT SETUP\r
 ;      MOVE ITEM,JOB NUMBER\r
 ;      IFN FTDISK,<MOVE TAC1,DEVMOD(DEVDAT)    ;DEVICE CHAR.>\r
 ;      PUSHJ PDP,GETJB\r
 ;      RETURN ONLY IF EVERYTHING OK\r
 \r
+\r
 EXTERNAL JOBCOR,JOB,CPOPJ,JOBS41,JOB41\r
 \r
 GETJB:\r
@@ -2662,7 +2647,7 @@ IFN FT2REL,<
        MOVEM TAC,JOB41(JDAT)   ;SAVED BY SAVE\r
 LOWFIN:        HRRZ TAC,JOBCOR(JDAT)   ;CORE ARG FROM PREVIOUS SAVE(THIS MONITOR\r
                                ; ALWAYS STORES SOMETHING)\r
-       SKIP TAC                ;IS THIS AN OLD FORMAT FILE WITH NO CORE ARG TO SAVE?\r
+       SKIPN TAC               ;IS THIS AN OLD FORMAT FILE WITH NO CORE ARG TO SAVE?\r
        MOVE TAC,USRREL         ;YES, USE ASSIGNMENT MADE WEN LOW FILE READ IN\r
        PUSHJ PDP,CKSARG        ;RETURN ONLY IF USER'S SUPLLIED ARG IS 0 OR NOT\r
                                ; SMALLER THAN SAVE CORE ARG. RETURN LARGER\r
@@ -2672,24 +2657,26 @@ LOWFIN: HRRZ TAC,JOBCOR(JDAT)   ;CORE ARG FROM PREVIOUS SAVE(THIS MONITOR
                                ; USER TO USE TO RESET CORE TO INITIAL SETTING WHEN\r
                                ; PROGRAM IS RESTARTED\r
                                ; FALL INTO SGREL\r
+\f\r
 ;ROUTINE TO RELEASE DEVICE AND FIND TTY\r
 INTERN SGREL\r
+EXTERN TTYFUW\r
 \r
-SGREL:  SKIPN   DEVDAT,USRJDA   ;HAS CHANNEL BEEN RELEASED ALREADY?\r
-        JRST    SGREL2          ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH\r
-        PUSH    PDP,T4          ;NO,\r
-        MOVE    TAC1,DEVMOD(DEVDAT)\r
-        TLNE    TAC1,DVMTA      ;MAGTAPE?\r
-        TLNN    DEVDAT,INPB     ;YES, WAS AN INPUT DONE?\r
-        JRST    SGREL1          ;NO\r
-        CLOSE   0,CLSOUT        ;YES, CLOSE MTA INPUT\r
-        STATO   0,IOTEND+IODEND ;AT END OF APTE?\r
-        MTAPE   0,16            ;NO SKIP TO EOF\r
-SGREL1: RELEASE 0,              ;NO RELEASE DEVICE\r
-        POP     PDP,T4\r
+SGREL: SKIPN DEVDAT,USRJDA     ;HAS CHANNEL BEEN RELEASED ALREADY?\r
+       JRST TTYFUW             ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH\r
+       PUSH PDP,IOS            ;NO,\r
+       MOVE TAC,DEVMOD(DEVDAT)\r
+       TLNE TAC,DVMTA          ;MAGTAPE?\r
+       TLNN DEVDAT,INPB        ;YES, WAS AN INPUT DONE?\r
+       JRST SGREL1             ;NO\r
+       CLOSE 0,CLSOUT          ;YES, CLOSE MTA INPUT\r
+       STATO 0,IOTEND+IODEND    ;AT END OF APTE?\r
+       MTAPE 0,6               ;NO SKIP TO EOF\r
+SGREL1: RELEAS                 ;NO RELEASE DEVICE\r
+       POP PDP,IOS\r
 SGREL2:\r
-        JRST    TTYFNU          ;FIND TTY FOR CURRENT USER\r
-\f\r
+       JRST    TTYFUW          ;FIND TTY FOR CURRENT USER\r
+\r
 ;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R)\r
 ;AND CHECK FOR ERRORS. USED ONLY TO READ LOW FILE.\r
 ;CALL:  PUSHJ P,SGDO\r
@@ -2698,20 +2685,20 @@ SGREL2:
 ;SGDOA CALLED FROM SAVE, IT HAS ALREADY SET LH OF USRHCU=-2\r
 ;TO INDICATE CORE IS COMPRESSED\r
 \r
-       EXTERN  USRHCU,USRJDA,JOBSA,JOBDDT,JOBSDD,JOBSD1,JOBSAV,JOBCOR\r
-       EXTERN  JOBSV,JOBSV3,JOBSVD,JOBSDP\r
+       EXTERN USRHCU,USRJDA,JOBSA,JOBDDT,JOBSDD,JOBSD1,JOBSAV,JOBCOR\r
+       EXTERN JOBSV,JOBSV3,JOBSVD,JOBSDP\r
 \r
-SGDO:   HRROS   USRHCU         ;SET LH OF USRCHU-1 AS A FLAG TO INDICATE SAVE GET\r
+SGDO:   HRROS USRHCU           ;SET LH OF USRCHU-1 AS A FLAG TO INDICATE SAVE GET\r
                                ; LOW FILE IO IN PROGRESS, SO MONITOR WILL\r
                                ; NOT STORE HIGH SEG PROTECTION IN JOBHRL WHICH\r
                                ; HAS IOWD FOR ZERO COMPRESSION\r
-SGDOA:  XCT  @(PDP)            ;EXECUTE INPUT OR OUTPUT UUO\r
-       MOVE    ITEM,JOB                ;READ INTO PROTECTED PART OF JOB DATA AREA\r
-       PUSHJ   PDP,EXPAND      ;EXPAND CORE IMAGE\r
-       JRST    ADRERR          ;ADDRESS CHECK, PRINT MESSAGE AND STOP JOB\r
-       MOVE    TAC1,JOBDDT(PROG) ;COPY DDT STARTING ADR\r
-       MOVEM   TAC1,USRDDT     ;INTO MONITOR PROTECTED AREA(IN CASE THIS IS GET)\r
-       SETZM   USRHCU          ;FLAG THAT SAVE-GET IO FINISHED AND CORE EXPANDED\r
+SGDOA:  XCT @(PDP)             ;EXECUTE INPUT OR OUTPUT UUO\r
+       MOVE ITEM,JOB   ;READ INTO PROTECTED PART OF JOB DATA AREA\r
+       PUSHJ PDP,EXPAND        ;EXPAND CORE IMAGE\r
+       JRST ADRERR             ;ADDRESS CHECK, PRINT MESSAGE AND STOP JOB\r
+       MOVE TAC,JOBDDT(PROG) ;COPY DDT STARTING ADR\r
+       MOVEM TAC,USRDDT        ;INTO MONITOR PROTECTED AREA(IN CASE THIS IS GET)\r
+       SETZM USRHCU            ;FLAG THAT SAVE-GET IO FINISHED AND CORE EXPANDED\r
        AOS (PDP)               ;SKIP OVER UUO IN CALLING SEQUENCE\r
 \r
 ;ROUTINE TO CHECK FOR IO ERRORS(CALLED FROM SEGCON)\r
@@ -2721,8 +2708,8 @@ SGDOA:  XCT  @(PDP)               ;EXECUTE INPUT OR OUTPUT UUO
 \r
        INTERN  SGIOCK\r
 \r
-SGIOCK: MOVE T4,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE\r
-       TRNN T4,IOBKTL!IODTER!IODERR!IOIMPM   ;ANY ERRORS ON SAVE-GET DEVICE?\r
+SGIOCK: MOVE IOS,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE\r
+       TRNN IOS,IOBKTL!IODTER!IODERR!IOIMPM   ;ANY ERRORS ON SAVE-GET DEVICE?\r
        POPJ PDP,               ;NO, GIVE OK RETURN\r
        MOVEI TAC,TRNERR        ;YES, ERROR CODE IN CASE THIS IS RUN UUO\r
                                ; (TRANSMISSION ERROR)\r
@@ -2730,8 +2717,7 @@ SGIOCK: MOVE T4,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE
                                ; OF FIND TTY AND PRINT ?CRLF\r
        JSP TAC,PHOLD           ;START TTY AND STOP JOB\r
        ASCIZ /TRANSMISSION ERROR/\r
-\f\r
-;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY)\r
+\f;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY)\r
 ;CALL: MOVE DEVDAT,DEVICE ADR.\r
 ;      MOVE PROG,JOBADR.\r
 ;      MOVE ITEM,JOB NUMBER\r
@@ -2771,10 +2757,9 @@ EXPAND:  HLRE AC3,SGALEN(PROG)   ;-LENGTH OF FILE
        JRST EXPND1\r
 EXPZ:  MOVSI TAC,-2\r
        HLLM TAC,JOBSV(PROG)\r
-\f\r
-;COME HERE TO DO THE ACTUAL EXPANSION OF A FILE\r
+\f;COME HERE TO DO THE ACTUAL EXPANSION OF A FILE\r
 EXPND1:        MOVE TAC,[XWD PROG,JOBSV] ;IT WAS READ INTO JOBSV\r
-       MOVE    TAC,@TAC        ;FIRST IOWD\r
+       MOVE    TAC1,@TAC       ;FIRST IOWD\r
 EXPLP1:        HRRZ    AC1,TAC1        ;ADDRESS OF IOWD\r
        CAIGE   AC1,JOBSAV      ;LEGAL?\r
        AOJA    AC1,TOOLOW      ;NO. DELETE DATA WHICH IS TO LOW\r
@@ -2791,7 +2776,6 @@ EXPLP1:   HRRZ    AC1,TAC1        ;ADDRESS OF IOWD
        HRRZ    TAC,@TAC          ;TOP REAL LOCATION NEEDED\r
 \r
        TRO     TAC,1777        ;MAKE IT NK-1\r
-\r
        HLRZ TAC1,PROG          ;PRESENT SIZ OF LOW SEG\r
        CAMG TAC,TAC1           ;IS THERE ENOUGH?\r
        JRST EXPCOR             ;YES.\r
@@ -2825,8 +2809,7 @@ EXPLP3:   SOS     AC1
        MOVEM AC2,JOBDDT(JDAT)  ;SET USER DDT STR ADR\r
        JRST SGDO2              ;AND SETUP USRDDT IN MONITOR PROTECTED\r
                                ; FROM THIS USER\r
-\f\r
-;THIS ROUTINE WILL DELETE ALL DATA FROM A COMPRESSED FILE\r
+\f;THIS ROUTINE WILL DELETE ALL DATA FROM A COMPRESSED FILE\r
 ;WHICH IS BELOW JOBSOD (PROBABLY WRITTEN BY TENDUMP)\r
 \r
 TOOLOW:        HLRE    AC2,@TAC        ;WORDCOUNT OF OFFENDING IOWD\r
@@ -2845,14 +2828,13 @@ NXIOWD: SUB     TAC,AC2         ;POINT TAC TO NEXT IOWD
        HRRZ    AC1,@TAC        ;GET ADDRESS\r
        CAIGE   AC1,JOBSD1      ;LEGAL?\r
        AOJA    AC1,TOOLOW      ;NO, AT LEAST PART OF THE DATA IS LOW\r
-IOWBLT:        MOVSI   TAC,@TAC        ;YES, KEEP THE ENTIRE IOWD DATA\r
+IOWBLT:        MOVSI   TAC1,@TAC       ;YES, KEEP THE ENTIRE IOWD DATA\r
        HRRI    TAC1,JOBSV(PROG) ;TAC1 IS A BLT POINTER\r
        SUBI    TAC,JOBSV       ;RH OF TAC IS AMOUNT BEING DELETED\r
        SUBI    AC3,(TAC)       ;AC3 POINTS TO TOP OF DATA READ IN-(N)\r
        BLT     TAC1,@AC3       ;MOVE ONLY GOOD DATA DOWN\r
        JRST    EXPND1          ;GO EXPAND THE GOOD DATA\r
-\f\r
-SGDO1: MOVEI TAC,JOBDDT(PROG)  ;MOVE EVERYTHING DOWN )MUST BE NON-COMPRESSED DSK FILE\r
+\fSGDO1:        MOVEI TAC,JOBDDT(PROG)  ;MOVE EVERYTHING DOWN )MUST BE NON-COMPRESSED DSK FILE  \r
        HRLI TAC,JOBSVD(TAC)    ;OR CONVERT SAVE FILE\r
        SKIPGE JOBSV(JDAT)      ;IS THIS CONVERT FILE(FIRST WORD IS IOWD)?\r
        HRLI TAC,JOBSDP(TAC)    ;YES, ALSO SKIP OVER IOWD\r
@@ -2863,8 +2845,7 @@ SGDOER:   POP PDP,TAC
        SETZM JOBHCU(JDAT)      ;CLEAR LH AND SET HIGHEST USER CHAN, IN\r
                                ; USE TO 0(WHERE IT SHOULD BE ANYWAY)\r
        POPJ PDP,               ;ERROR RETURN OR OK RETURN\r
-\f\r
-;ROUTINE TO CHECK USER SUPPLIED CORE ARG AND CHECK TO SEE IF 0\r
+\f;ROUTINE TO CHECK USER SUPPLIED CORE ARG AND CHECK TO SEE IF 0\r
 ;OR GREATER THAN OR EQUAL TO IOWD USED TO SAVE OR GET FILE\r
 ;CALL: HLRE TAC1,-NO. OF WORDS IN FILE\r
 ;      PUSHJ PDP,CKIOWD\r
@@ -2908,6 +2889,7 @@ NOROOM:   MOVEI TAC,NECERR        ;ERROR CODE IN CASE THIS IS RUN UUO(NOT ENOUGH CORE)
        JSP TAC,PHOLD           ;START TTY ADN STOP JOB\r
        ASCIZ /K OF CORE NEEDED/\r
 \f\r
+\r
 ;ROUTINE TO ASSIGN CORE FOR LOW  AND HIGH SEG\r
 ;CALL: MOVE PROG,LOW SEG RELOCATION\r
 ;      HRR TAC,HIGHEST LOC DESIRED\r
@@ -2921,8 +2903,7 @@ GETCOR:   HRRZM TAC,SGACOR(PROG)  ;SOTRE CORE ARG FOR CORE UUO IN USER AC
        CALLI SGACOR,11         ;DO CORE UUO\r
        JRST NOROOM             ;NOT AVAILABLE, PRINT ERROR AND AMOUNT TRYING FOR\r
        JRST TPOPJ              ;OK, REMOVE TAC FROM PD LIST AND RETURN\r
-\f\r
-;ROUTINE TO PRINT NOT A SAVE FILE IF WRONG FORMAT FILE DETECTED\r
+\f;ROUTINE TO PRINT NOT A SAVE FILE IF WRONG FORMAT FILE DETECTED\r
 \r
 INTERN GETERR\r
 \r
@@ -2941,6 +2922,7 @@ NOFILE:   MOVEI TAC,FNFERR        ;ERROR CODE IN CASE THIS IS RUN UUO(FILE NOT FOUND
        PUSHJ PDP,SGRELL        ;RETURN DISK LOOKUP OR ENTER ERROR CODE IF DSK  \r
                                ; RELEASE DEVICE AND ERROR RETURN TO USER IF HE WANTED\r
                                ; OR FIND TTY AND PRINT ?CRLF\r
+\r
        MOVE TAC1,SGANAM(PROG)  ;PRINT FILE NAME\r
        PUSHJ PDP,PRNAME\r
        PUSHJ PDP,PRPER         ;PRINT PERIOD\r
@@ -2948,8 +2930,7 @@ NOFILE:   MOVEI TAC,FNFERR        ;ERROR CODE IN CASE THIS IS RUN UUO(FILE NOT FOUND
        PUSHJ PDP,PRNAME\r
        JSP TAC,PHOLD           ;START TTY AND STOP JOB\r
        ASCIZ / NOT FOUND/\r
-\f\r
-;ROUTINE TO RELEASE DEVICE ON AN ERROR AND CHECK TO SEE\r
+\f;ROUTINE TO RELEASE DEVICE ON AN ERROR AND CHECK TO SEE\r
 ;IF THIS IS A MONITOR COMMAND OR USER UUO\r
 ;IF USER UUO, GIVE ERROR RETURN TO USER UNLESS THERE IS A HALT\r
 ;IN LH OF EROR RETURN WORD, IN WHICH CASE FIND TTY, PRINT ?CRLF\r
@@ -2968,7 +2949,6 @@ IFN FTDISK,<
 >\r
 SGRELE:        MOVE TAC1,JOBPD1(JDAT)  ;GET FIRST PC ON PD LIST\r
        TLNN TAC1,USRMOD        ;IS IT IN USER MODE(IE USER UUO)?\r
-\r
        JRST SGRLE1             ;NO. MUST BE MONITOR COMMAND OR CALLED OVERLAYED\r
                                ; RELEASE DEVICE, FIND TTY, AND RETURN TO CALLED\r
        PUSH PDP,TAC            ;SAVE ERROR CORE\r
@@ -2983,12 +2963,13 @@ SGRELE: MOVE TAC1,JOBPD1(JDAT)  ;GET FIRST PC ON PD LIST
        SKIPE USRJDA+0          ;DO NOT RELEASE CHANNEL 0 IF NOT INITED YET\r
                                ; UUO HANDLER DOES NOT ALLOW THIS FROM EXEC MODE\r
        RELEAS 0,               ;RELEASE DEVICE(IF INITED)\r
+       PUSH PDP,JOBPD1(JDAT)   ;PUT RETURN ON END OF PDLIST\r
        JRST USRXIT             ;AND RETURN TO USER TO HANDLE ERROR\r
 \r
+\r
 SGRLE1:        PUSHJ PDP,SGREL         ;RELEASE DEVICE AND FIND TTY\r
        JSP TAC,CONMES          ;PRINT ?CRLF AND RETURN TO CALLER\r
                                ; WHO WILL PRINT REST OF ERROR MESSAGE AND STOP JOB\r
        ASCIZ /?\r
 /\r
 COMEND:        END             ;END OF COMCON\r
-\r