Removed code that did not match
[retro-software/dec/tops10/v4.5.git] / src / schedb.mac
index b33d156..d23cdcb 100644 (file)
@@ -8,6 +8,7 @@ SUBTTL  CLKCSW R,KRASIN/AF/TH/RCC  TS  02 JUNE 69  V421
 XP VSCHED,421\r
                ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP\r
 \r
+\r
 INTERNAL       FTRC10  ;THIS SOURCE FILE MAY BE ASSEMBLED TO USE EITHER THE\r
                ; NEW PDP-10 DISK (MODEL RC-10) OR THE OLD PDP-6 DISK (DATA\r
                ; PRODUCTS DISK FILE) FOR SWAPPING.\r
@@ -21,6 +22,7 @@ IFE   FTRC10, <
 ENTRY  XCKCSW\r
 >\r
 \r
+\r
 EXTERNAL JOB,JBTSTS\r
 EXTERNAL JBTQ,PJBSTS\r
 EXTERNAL PJBSTS,TIMEF,MJOBN\r
@@ -48,6 +50,7 @@ NXTINI:       MOVEI TAC,MAXQ          ;MAX. NO. OF QUEUES
        SETZM XJOB              ;CLEAR NO. OF JOBS NEEDING EXPANDING\r
        SETZM JOBQUE            ;CLEAR JOB NO. TO BE REQUEUED\r
        POPJ PDP,\r
+\r
 \f,NXTJOB DECREMENTS CURRENT JOB'S QUANT. AND PROTECT\r
 ,TIMES AND REQUEUES IT IF QUANT. TIME GONE TO 0\r
 ,SERVINCES ANY JOB REQUEING REQUESTED AT OTHER PRIORITY\r
@@ -55,6 +58,7 @@ NXTINI:       MOVEI TAC,MAXQ          ;MAX. NO. OF QUEUES
 ,MAKES NO ASSUMPTIONS RE. ACS\r
 ,RETURSN NEXT JOB TO RUN IN J.\r
 \r
+\r
 EXTERNAL JBTSWP,POTLST\r
 \r
 NXTJOB:        SKIPN TIMEF             ;CLOCK TIC?\r
@@ -66,7 +70,6 @@ NXTJOB:       SKIPN TIMEF             ;CLOCK TIC?
        JRST .+3\r
        SKIPL JBTSWP(J)\r
        ADDM SW,JBTSWP(J)\r
-\r
        AOBJN J,.-4\r
 \r
 NXTJB1:        SKIPN J,JOB             ;CURRENT JOB NO., IS IT NULL JOB?\r
@@ -75,7 +78,7 @@ NXTJB1:       SKIPN J,JOB             ;CURRENT JOB NO., IS IT NULL JOB?
        HLRZ SW,JBTSTS(J)       ;GET JOB STATUS BITS AND CODES\r
        TRZ SW,RUNMSK+CMWB              ;MASK OUT DO NOT CARE BITS\r
        CAIE SW,RUNABLE         ;IS CURRENT JOB RUNABLE?\r
-       JRST CKJR3              ;NO. REQUEU CURRENT JOB\r
+       JRST CKJB3              ;NO. REQUEU CURRENT JOB\r
        SKIPN TIMEF             ;NO. IS THIS A TIME INTERRUPT?\r
        JRST CKJB1              ;NO.\r
 \r
@@ -85,10 +88,10 @@ NXTJB1:     SKIPN J,JOB             ;CURRENT JOB NO., IS IT NULL JOB?
        MOVEI DAT,QTIME         ;YES---REQUEUE AND RESET QUANT. TIME\r
        MOVE TAC,JOBQUE\r
        PUSHJ PDP,QXFER\r
-\fCKJB1:        SKIPG   QJ,QJDB         ;SET QJ NON ZERO IF ANY REQUEUING TO DO\r
+\fCKJB1:        SKIPG   QJ,QJOB         ;SET QJ NON ZERO IF ANY REQUEUING TO DO\r
        JRST    CKJB5           ;NO REQUEUEING NECESSARY\r
        MOVEI   J,JOBMAX        ;START WITH HIGHEST JOB NUMBER ASSIGNED\r
-CKJB2: MOVSI   SW,JBQ          ;JOB NEEDS REQUEUEING BIT\r
+CKJB2: MOVSI   SW,JRQ          ;JOB NEEDS REQUEUEING BIT\r
        TDNN    SW,JBTSTS(J)    ;THIS JOB?\r
        SOJG    J,.-1           ;NO, KEEP LOOKING\r
        JUMPLE  J,CKJB5         ;YES,LOOKED AT ALL JOBS?\r
@@ -100,12 +103,12 @@ CKJB3:    MOVE SW,JBTSTS(J)       ;JOB STATUS WORD
        TLNN SW,CMWB            ;IS JOB IN COMMAND WAIT?\r
        JRST CKJB9              ;NO.\r
        TLNE SW,SWP+JXPN                ;YES, IS JOB ON DISK, OR TRYING TO EXPAND?\r
-       JRST CK,JB4A            ;YES. PUT JOB IN COMMAND WAIT Q\r
+       JRST CKJB4A             ;YES. PUT JOB IN COMMAND WAIT Q\r
 CKJB9: JUMPGE SW,CKJB4         ;NO,WAIT STATUS CODE DETERMINES NEW Q\r
        LDB SW,PJBSTS           ;YES, GET QUEUE CODE.\r
        CAIN    SW,WSQ          ;*** EXPERIMENTAL ***\r
        JRST    CKJB10          ;*** EXPERIMENTAL ***\r
-       CAIN SW,TIOWD           ;CURRENT JOB GOING INTO TTY IO WAIT?\r
+       CAIN SW,TIOWQ           ;CURRENT JOB GOING INTO TTY IO WAIT?\r
        HRROS JBTSWP(J)         ;YES, SET IN CORE PROTECT TIME TO -1,\r
                                ; SO HE CAN BE SWAPPED IMMEDIATELY IF SOMEONE\r
                                ; ELSE WANTS TO BE SWAPPED IN\r
@@ -140,8 +143,7 @@ IFE FTSWAP,<        EXTERNAL CHKSHF
        PUSHJ PDP,CHKSHF\r
 >\r
 IFN FTSWAP,<\r
-       PUSHJ PDP,SWAP\r
->\r
+       PUSHJ PDP,SWAP>\r
 \r
 ;SCHEDULAR--SEARCH THRU QUEUES ACCORDING TO SSCAN TABLE\r
 ;FOR 1ST JOB IN CORE--RETURN ITS NO. IN J\r
@@ -164,6 +166,7 @@ SCHD1:      SETZ J,                 ;RETURN NULL JOB
        POPJ PDP,\r
 \r
 \r
+\r
 ;TEMPORARY EXPERIMENTAL SCHEDULING CHANGE TO PERMIT TTY-I/O-WAIT-SATISFIED JOBS ON\r
 ; THE DISK TO DISPLACE I/O BOUND JOBS IN CORE.... R.CLEMENTS/D.PLUMER 9 MAY 68\r
 CKJB10:        SKIPE   INFLG\r
@@ -207,15 +210,16 @@ INTERNAL QXFER,QSCAN,FTSWAP,FTDISK
 ,BOTH ROUTINES ARE "TABLE DRIVEN" IN THE SENSE THAT THE\r
 ,CALLING ROUTINE PROVIDES THE ADDRESS OF A TABLE WHICH\r
 ,DEFINES THE SPECIFIC OPERATIONS TO BE PERFORMED.\r
-\f;QUEUE INITIALIZATION\r
+\f\r
+;QUEUE INITIALIZATION\r
 ;PUT ALL JOBS IN NULL QUEUE(JOB NO. NOT ASSIGNED)\r
 ;CALLED ON RESTART AT LOC 143\r
 \r
-INTERNAL QINT\r
+INTERNAL QINI\r
 EXTERNAL CPOPJ,JOBMAX,MXQUE,JBTQ\r
 EXTERNAL JBTQP1 ;EQUALS JBTQ+1\r
-EXTERNAL JBTCM1 ;EQUALS JBTQ-1\r
-EXTERNAL JBTOMN ;EQUALS JBTQ-NULQ\r
+EXTERNAL JBTQM1 ;EQUALS JBTQ-1\r
+EXTERNAL JBTQMN ;EQUALS JBTQ-NULQ\r
 \r
 QINI:  MOVNI TAC,MXQUE         ;MAKE ALL QUEUE HEADERS POINT TO THEMSELVES\r
        HRL TAC,TAC             ;BACKWARD POINTERS TOO\r
@@ -225,7 +229,6 @@ QINI:       MOVNI TAC,MXQUE         ;MAKE ALL QUEUE HEADERS POINT TO THEMSELVES
        MOVSM TAC,JBTQP1        ;BACK POINTER FOR JOB 1\r
        MOVEI ITEM,JOBMAX       ;MAX. JOB NO.\r
        MOVEM TAC,JBTQ(ITEM)    ;FOR. POINTER OF JOBMAX JOB NO.\r
-\r
        HRLM ITEM,JBTQMN        ;SET NULQ HEADER TO POINT TO JOB1\r
        MOVEI TAC,1             ;AND JOBMAX\r
        HRRM TAC,JBTQMN ;FORWARD POINTER\r
@@ -234,7 +237,8 @@ QINI1:      HRRM ITEM,JBTQM1(ITEM)  ;JOB I-1 POINT TO JOB I
        SOJLE ITEM,CPOPJ        ;FINISHED?\r
        HRLM ITEM,JBTQP1(ITEM)  ;BACK POINTER JOB I+1 POINTS TO JOB I\r
        JRST QINI1\r
-\f,DELETES A JOB FROM ITS "SOURCE-Q", DETERMINES A "DEST-Q"\r
+\f\r
+,DELETES A JOB FROM ITS "SOURCE-Q", DETERMINES A "DEST-Q"\r
 ,ACCORDING TO ONE OF 3 FUNCTIONS, AND INSERTS THE JOB AT\r
 ,THE BEGINNING OR END OF THIS DEST-Q. IN ADDITION IT MAY\r
 ,RESET THE JOB'S QUANTUM TIME (RH JBTSTS).\r
@@ -280,7 +284,6 @@ QINI1:      HRRM ITEM,JBTQM1(ITEM)  ;JOB I-1 POINT TO JOB I
 , <QUANT-TAB>: EXP <QUANT1>    ;CORRES. TO <Q-TAB>+0\r
 ,              ...\r
 ,              EXP <QUANTN>    ;CORRES. TO <Q-TAB>+N-1\r
-\r
 ,              Z\r
 ,\r
 , UPON A CALL TO QXFER FOR THESE 2 CODES, AC T2 CONTAINES\r
@@ -291,6 +294,7 @@ QINI1:      HRRM ITEM,JBTQM1(ITEM)  ;JOB I-1 POINT TO JOB I
 , <QUANT-TAB> TABLE.\r
 , IF NO MATCH FOUND..NO TRANSFER TAKES PLACE.\r
 \r
+\r
 ,DEST-Q AS A FUNCTION OF JOB SIZE\r
 ,BQJSIZ INSERT AT BEG OF DEST-Q\r
 ,EQJSIZ INSERT AT END\r
@@ -315,7 +319,7 @@ QINI1:      HRRM ITEM,JBTQM1(ITEM)  ;JOB I-1 POINT TO JOB I
 \f,CALLING SEQUENCE:\r
 ,      MOVE  J,[JOB NUMBER]\r
 ,      MOVE T2,[CURRENT Q]     ;BQLINK AND EQLINK ONLY\r
-;      MOVEI TT,TRANS TABLE ADDRESS\r
+,      MOVEI TT,TRANS TABLE ADDRESS\r
 ,      PUSHJ PDP,QXFER\r
 ,      ...             ;RETURN\r
 ,  ON RETURN J IS UNALTERED; LH(Q)=-1  IF QUANT, TIME OUT\r
@@ -326,7 +330,7 @@ TT=DAT      ;POINTER TO TRANSFER TABLE
 J=ITEM ;JOB NO.\r
 Q=PROG ;DEST-Q AND QUANT. TIME ON RETURN\r
 T1=TAC1        ;TEMP\r
-T2=TAC ;TEMP AND SOURCE-Q ON CALL TO B,EQLINE\r
+T2=TAC ;TEMP AND SOURCE-Q ON CALL TO B,EQLINK\r
 \r
 EXTERNAL ERROR\r
 \r
@@ -354,7 +358,8 @@ QX2:        MOVS T2,Q               ;T2 IS ADDR. OF QUANT.TIME(IF REQUESTED)
        HRRO Q,(Q)              ;RH(Q)=DEST-Q;LH=-1(NO QUANT.TIME REQ.)\r
        SKIPL 1(TT)             ;WAS QUANT. TIME REQUESTED?\r
        HRL Q,(T2)              ;YES--GET IT\r
-\f,FIXED DEST-Q\r
+\f\r
+,FIXED DEST-Q\r
 QFIX:  MOVE T1,JBTQ(J)         ;DELETE JOB FROM SOURCE-Q\r
        MOVS T2,T1              ;T1=FORW. LINK, T2=BACK LINK\r
        HRRM T1,JBTQ(T2)        ;FORW, LINK PAST JOB\r
@@ -372,7 +377,6 @@ QFIX:       MOVE T1,JBTQ(J)         ;DELETE JOB FROM SOURCE-Q
 \r
        JUMPL Q,QX3             ;RETURN IF QUANT. TIME NOT REQ.\r
        HLRM Q,JBTSTS(J)        ;SET QUANT. TIME\r
-\r
        MOVEI TT,RNQ            ;SET JOB STATUS WAIT\r
        DPB TT,PJBSTS           ;CODE TO RUN QUEUE (0).\r
 QX3:   POPJ PDP,\r
@@ -380,7 +384,7 @@ QX3:        POPJ PDP,
 BQFIX=QFIX\r
 EQFIX=QFIX+1B0\r
 BQLINK=QLINK\r
-EQLINK=QLINE+1B0\r
+EQLINK=QLINK+1B0\r
 BQJSIZ=QJSIZ\r
 EQJSIZ=QJSIZ+1B0\r
 \f,SCANS THE QS RETURNING THE NUMBERS OF THE JOBS IN THE QS.\r
@@ -461,11 +465,12 @@ IFE FTCHECK+FTMONP,<
 \r
 DEFINE X(A,B)\r
 <INTERNAL A'AVAL,A'Q\r
-A'Q=.=AVALTB\r
+A'Q=.-AVALTB\r
 A'AVAL: 0\r
 >\r
 \r
 INTERNAL AVALTB\r
+\r
 AVALTB:        QUEUES  ;GENERATE THE AVAL FLAGS\r
 LOC=.-AVALTB\r
 >\r
@@ -483,7 +488,17 @@ A'Q=LOC
 LOC=LOC+1\r
 >\r
        CODES\r
-\f;CORRESPONDENCE TABLE BETWEEN JOB STATUS CODES AND QUEUE TRANSFER TABLES\r
+\r
+XP MXCODE,LOC-1        ;MAX, JOB STATE DONE\r
+PQ1=LOC\r
+LOC=LOC+1\r
+PQ2=LOC\r
+LOC=LOC+1\r
+PQ3=LOC\r
+LOC=LOC+1\r
+CMQ=LOC                ;COMMAND DELAY QUEUE\r
+\f\r
+;CORRESPONDENCE TABLE BETWEEN JOB STATUS CODES AND QUEUE TRANSFER TABLES\r
 ;USED BY SCHEDULER\r
 ;RUNCSS SETS JOB STATUS WORD TO NEW STATE CODE.\r
 ;SCHEDULER SETS UP QUEUE TRANSFER TABLE ADDRESS FROM\r
@@ -496,6 +511,7 @@ DEFINE X(A,B)
 INTERNAL QBITS\r
 \r
 QBITS: QUEUES\r
+       CODES\r
 \fIFN FTCHECK+FTMONP,<\r
 DEFINE X(A,B),<\r
 EXTERNAL A'RFQ\r
@@ -545,6 +561,7 @@ EXTERNAL XJOB
 >>\r
 IFE FTCHECK+FTMONP,<\r
 \r
+\r
 INTERNAL JOBQUE\r
 JOBQUE:        0       ;JOBS TO BE REQUEUED ON CLOCK INTERRUPT\r
 \r
@@ -583,7 +600,7 @@ QRNW:       PTTAB EQJSIZ,QSTAB,QQSTAB       ;JUST RUNABLE JOBS
 QWSW:  TTAB BQFIX,PQ1,QQTTY    ;IO WAIT SAT.(EXCEPT TTY)\r
        ;ENTER FRONT OF PROCESSOR QS AND GET QUANT, TIME\r
        ;ACCORDING TO JOB SIZE\r
-QTSW:  TTAB BQFIX,PQ,QQTTY     ;TTY IO WAIT SATISFIED(ENTER FRONT OF PQ1)\r
+QTSW:  TTAB BQFIX,PQ1,QQTTY    ;TTY IO WAIT SATISFIED(ENTER FRONT OF PQ11)\r
 \r
 QIOWW: TTAB EQFIX,IOWQ,-1      ;IOW(EXDEPT TTY) HELD IN IOWQ\r
 QTIOWW:        TTAB EQFIX,TIOWQ,-1     ;TTY IOW HELD IN TIOWQ\r
@@ -600,22 +617,23 @@ QSLPW:    TTAB EQFIX,SLPQ,-1      ;SLEEP UUO
 \r
 QQSD=-1\r
 \r
-QMSQ:  TTAB BQFIX,PQ1,QQSD     ;START MON. Q(DISK) AT PQ1\r
+QMQS:  TTAB BQFIX,PQ1,QQSD     ;START MON. Q(DISK) AT PQ1\r
 QDAS:  TTAB BQFIX,PQ1,QQSD     ;DEV. ALLOC.(DISK)...\r
 QDCS:  TTAB BQFIX,PQ1,QQSD     ;DATA CONTROL...\r
 QSTS:  TTAB BQFIX,PQ1,QQSD     ;SYST TAPE\r
 QDTS:  TTAB BQFIX,PQ1,QQSD     ;DEC TAPE\r
 QMTS:  TTAB BQFIX,PQ1,QQSD     ;MAG TAPE\r
 QAUS:  TTAB BQFIX,PQ1,QQSD     ;ALTER UFD\r
-QTIME  PTTAB EQLINK,QTTAB,QQSTAB       ;MOVE JOB TO LOWER Q\r
+QTIME: PTTAB EQLINK,QTTAB,QQSTAB       ;MOVE JOB TO LOWER Q\r
        ;WHEN QUANT. TIME EXCEEDED AND RESET QUANT. TIME\r
 \f,ENTER PROCESSOR QS ACCORDING TO JOB SIZE\r
 QSTAB: XWD 4,-PQ1      ;PQ1 IF     SIZE .LE. 4K\r
        XWD ^D16,-PQ2   ;PQ2 IF  4K .L. SIZE .LE. 16K\r
        XWD ^D256,-PQ3  ;PQ3 IF 16 .L. SIZE\r
+       Z\r
 \r
 ,PUT JOB DOWN A Q IF EXCEEDS QUANT. TIME\r
-QQTAB: XWD -PQ1,-PQ2\r
+QTTAB: XWD -PQ1,-PQ2\r
        XWD -PQ2,-PQ3\r
        XWD -PQ3,-PQ2           ;BACK TO PQ2 TO COMPETE WITH IOWS JOBS\r
        Z\r
@@ -637,7 +655,7 @@ QQSTAB:     EXP ^D30        ;PQ1: ONE HALF SECOND
 \fIFN FTSWAP,<\r
 INTERNAL ISCAN,QSCAN\r
 ISCAN: ;SCAN FOR INPUT\r
-       XWD -CWM,QFOR   ;MONITOR COMMAND WHICH NEEDS CORE IMAGE IN CORE\r
+       XWD -CMQ,QFOR   ;MONITOR COMMAND WHICH NEEDS CORE IMAGE IN CORE\r
        XWD -MQQ,QFOR1  ;LOOK FOR 1ST JOBS IN SHAR. DEV QUEUES\r
        XWD -DAQ,QFOR1\r
        XWD -AUQ,QFOR1\r
@@ -652,7 +670,7 @@ SSCAN:      XWD -PQ1,QFOR   ;SCAN PROCESSOR AS SCHEDULER DOES
        Z\r
        Z               ;FINAL ZERO TO FLAG END\r
 \r
-QSCAN: ;SCAN FOR OUTPUT\r
+OSCAN: ;SCAN FOR OUTPUT\r
        XWD -STOPQ,QFOR ;UNRUNABLE JOBS FIRST\r
        XWD     -SLPQ,QFOR\r
        XWD -DTQ,QBAK1  ;ANY SHAR. DEV.WAITERS MORE THAN 1 DEEP\r
@@ -677,6 +695,7 @@ QSCAN:      ;SCAN FOR OUTPUT
        Z\r
        Z                       ;FINAL ZERO TO FLAG END\r
 >\r
+\r
 \fSUBTTL        SWAP R. KRASIN/AF TS4.34  03 FEB 69  V406\r
 \r
 ,SWAPPER CALLED EVERY CLOCK TIC.\r
@@ -696,7 +715,6 @@ QSCAN:      ;SCAN FOR OUTPUT
 , IF ONE--WILL LOW(HIGH) SEG FIT IN LARGEST HOLE IN CORE?\r
 ,   YES--START INPUT AND RETURN\r
 ,   NO--IS TOTAL FREE CORE(CORTAL) ENOUGH TO ACCOMMODATE LOW(HIGH) SEG?\r
-\r
 ;      YES--CALL CORE SHUFFLER\r
 ;        IS SHUFFLER WAITING FOR IO TO STOP?\r
 ;          YES--RETURN AND DO NOTHING\r
@@ -729,7 +747,7 @@ T2=TAC
 J=ITEM\r
 \r
 ,ALL DEVICE DEPENDENT CODE MARKED WITH A "*"\r
-\fSWAP: SKIPE SHWAT             ;IS CORE SHUFFLER WAITING FOR IO TO STOP\r
+\fSWAP: SKIPE SHFWAT            ;IS CORE SHUFFLER WAITING FOR IO TO STOP\r
                                ; FOR SOME JOB?\r
        PUSHJ PDP,CHKSHF        ;YES, CALL CORE SHUFFLER TO SEE IF\r
                                ; IO STOPPED YET\r
@@ -809,7 +827,7 @@ IFN PROG-JDAT,<
 IFN FT2REL,<\r
        EXTERN FINOT\r
        PUSHJ PDP,FINOT         ;IS THIS A HIGH SEG WHICH WAS JUST SWAPPED OUT?\r
-                               ;YES, J SET TO LOW SEG NO, GO TRY SWAP IT OUT\r
+       JRST FORCEL             ;YES, J SET TO LOW SEG NO, GO TRY SWAP IT OUT\r
                                ; NO, THIS WAS A LOW SEG, ALL SWAPPING FOR THIS USER\r
                                ; IS FINISHED.\r
 >\r
@@ -871,7 +889,8 @@ SWPREC:     MOVE    TAC,SERA        ;ERROR FLAGS
        LDB     TAC,IMGOUT\r
        TLO     TAC,1\r
        ADDM    TAC,SWPERC\r
-       JRST    SWAPO           ;GO TRY AGAIN\r
+       JRST SWAPO              ;GO TRY AGAIN\r
+\r
 \r
 ;NO INPUT TO DD, CHECK FOR EXPANDING JOBS\r
 CHKXPN:        SKIPG XJOB              ;ANY JOBS TO EXPAND\r
@@ -879,17 +898,17 @@ CHKXPN:   SKIPG XJOB              ;ANY JOBS TO EXPAND
                                ; YES, FALL INTO SCNOUT WHICH WILL SWAP OUT EXPANDING\r
                                ; JOB SINCE THERE IS ONE\r
 ;INPUT TO DO, CHECK TO SEE IF ANY JOBS JUST HAPPEN TO WANT TO EXPAND\r
-\r
        EXTERN HIGHJB,JBTSTS,ERROR,MAXSIZ,MAXJBN,SUMCOR\r
 SCNOUT:        SKIPG XJOB              ;ANY JOBS WAITING TO EXPAND?\r
        JRST SCNJOB             ;NO, SCAN ALL JOBS IN PRIORITY ORDER LOOKING\r
                                ; FOR ONE TO SWAP OUT\r
        MOVE J,HIGHJB           ;YES, START WITH HIGHEST JOB NUMBER ASSIGNED\r
        MOVSI T,JXPN            ;SETUP JOB EXPANDED BIT\r
-       TDDN T,JBTSTS(J)        ;IS THIS JOB EXPANDING?\r
+       TDNN T,JBTSTS(J)        ;IS THIS JOB EXPANDING?\r
        SOJG J,.-1              ;NO, KEEP LOOKING\r
        IFN FTRCHK,<\r
-       JUMPG J,SCNOK           ;CLEAR XJOB SO MESSAGE WILL PRINT\r
+       JUMPG J,SCNOK\r
+       SETZM XJOB              ;CLEAR XJOB SO MESSAGE WILL PRINT\r
        JSP DAT,ERROR           ;ERROR IF NONE FOUND\r
 >\r
 SCNOK: SOS XJOB                ;DECREMENT COUNT OF EXPANDING JOBS\r
@@ -913,11 +932,11 @@ SCNJOB:   MOVE T,CORTAL           ;INITIALIZE FREE CORE COUNTER
                                ; PROTECT TIME IS DECREMENTED ONLY WHEN\r
                                ; A JOB IS RUNABLE, SO LOOK AT IT\r
                                ; ONLY IF RUN BIT STILL ON\r
-       TLNE T,NSWP+SWP         ;NO, IS THIS JOB NOT TO BE SWAPPED OR ALREADY SWAPPED?\r
+       TLNE T,NSWP+SWP         ;NO, IS THIS JOB NOT TO BE SWAPPED OR ALREADY SWAPPED?     \r
                                ; (DISPLAY, REAL TIME)?\r
        JRST (TAC1)             ;YES,CONTINUE SCAN TO FIND ANOTHER\r
        HLRZ T,JBTADR(J)        ;PICK UP SIZE OF JOB\r
-       JUMPE T,(TAC1)  `       ;CONTINUE SCAN IF NOT IN CORE (HIGH SEG ALREADY SWAPPED\r
+       JUMPE T,(TAC1)          ;CONTINUE SCAN IF NOT IN CORE (HIGH SEG ALREADY SWAPPED)\r
                                ; OUT FOR THIS USER IF NO LOW SEG)\r
        ASH T,-12               ;CONVERT TO 1K BLOCKS\r
        ADDI T,1\r
@@ -953,7 +972,6 @@ IFN FT2REL,<
                                ; 5. HIGH SEG NOT ON DISK YET\r
                                ; 6. THIS HIGH SEG IS NOT THE SAME ONE AS JOB\r
                                ;    BEING FITTED IN IS GOING TO WANT\r
-\r
                                ; RETURN HIGH SEG NO. IN J IF YES, OTHERWISE\r
                                ; RETURN LOW SEG NO.\r
                                ; IF JOB JUST HAS LOW SEG. SHF BIT IS SET IN JBTSTS\r
@@ -981,12 +999,12 @@ IFN JDAT-PROG,<
 \r
 INTERNAL FTTRACK\r
 \r
-SWAPD:\r
+SWAPO:\r
 IFN FTTRACK,<EXTERN LASOUT\r
        MOVEM J,LASOUT          ;SAVE LAST SWAP OUT FOR DEBUGGING ONLY\r
 >\r
        SETZM FORCE             ;CLEAR FORCE FLAG\r
-       HLRZ T,JBTADTR(J)       ;COMPUTE CORE IMAGE\r
+       HLRZ T,JBTADR(J)        ;COMPUTE CORE IMAGE\r
        JUMPE T,SWP1            ;DONT OUTPUT IF 0 CORE(IMGOUT ALREADY SET TO 0\r
                                ; WHEN CORE WAS RETURNED\r
 \r
@@ -1016,7 +1034,7 @@ NOFIT:    SETZM FIT               ;FORGET ABOUT FITTING IN A JOB ON DISK
 \f;COME HERE WHEN THE AMOUNT OF SPACE NEEDED ON THE DISK\r
 ;IS NOT AVAILABLE IN ONE CONTIGUOUS BLOCK\r
 \r
-       EXTERN GETFOR\r
+       EXTERN GETFCR\r
 \r
 FULL:  HRLM    DAT,AC3         ;SAVE DAT (LARGEST AVAILABLE HOLE)\r
        PUSHJ   PDP,FULCOR      ;GET 4 FREE CORE LOCS\r
@@ -1032,7 +1050,6 @@ FULL1A:   PUSHJ   PDP,GXSAT       ;GET SOME SWAPPING SPACE
        POP     PDP,DAT         ;RESTORE AMT GOTTEN\r
        HRLM    DAT,(AC3)       ;SAVE AMOUNT IN TABLE\r
        SUB     T,DAT           ;AMOUNT STILL NEEDED\r
-\r
        JUMPE   T,FULSET        ;THROUGH IF NEED 0 K NOW\r
        PUSHJ   PDP,BMPAC3      ;STEP TO NEXT TABLE LOCATION\r
        MOVE    DAT,T           ;TRY TO GET ALL WE NEED NOW IN 1 CHUNK\r
@@ -1059,8 +1076,8 @@ FULSET:   PUSHJ   PDP,BMPAC3      ;STEP TO NEXT (LAST) TABLE LOCATION
        JRST    OUTP2           ;GO START OUTPUT\r
 \r
 ;HERE TO GET 4 LOCS OF FREE CORE\r
-FULCOR:        PUSH    PDP,ITEM        ;GETFOR USES ITEM\r
-       PUSHJ   PDP,GETFOR      ;GET 4 CELLS\r
+FULCOR:        PUSH    PDP,ITEM        ;GETFCR USES ITEM\r
+       PUSHJ   PDP,GETFCR      ;GET 4 CELLS\r
        JRST IPOPJ              ;RETORE ITEM AND RETURN\r
 \r
 ;STEP AC3 TO NEXT LOC OF TABLE BEING BUILT\r
@@ -1148,7 +1165,7 @@ CHGSWP:   LDB TAC1,IMGIN          ;SIZE WHEN SEG NEXT SWAPPED IN
 \r
        INTERN ZERSWP\r
 \r
-ZERSWPL        TDZA TAC,TAC            ;REQUEST O SPACE ON DISK AND ALWAYS SKIP\r
+ZERSWP:        TDZA TAC,TAC            ;REQUEST O SPACE ON DISK AND ALWAYS SKIP\r
 CHG1:  ADDM TAC1,VIRTAL        ;INCREASE SIZE OF VIRTUAL CORE AVAILABLE IN SYSTEM\r
                                ; AND THEN RETURN ALL OF DISK SPACE(CHGSWP)\r
        MOVSI TAC1,SWP!SHF      ;CLEAR SWAPPED OUT BIT IN JOB OR SEG\r
@@ -1157,7 +1174,6 @@ CHG1:     ADDM TAC1,VIRTAL        ;INCREASE SIZE OF VIRTUAL CORE AVAILABLE IN SYSTEM
 \r
        PUSH PDP,DAT            ;SAVE TTY OUTPUT BYTE POINTER(COMMAND DECODER)\r
        LDB DAT,IMGOUT          ;*SIZE ON DISK(1K BLOCKS)\r
-\r
        JUMPE DAT,CHG3          ;DID SEG HAVE ANY DISK SPACE?\r
        HLRZ TAC,JBTSWP(ITEM)   ;*YES, LOGICAL DISK BLOCK+FRGSEG BIT\r
        PUSHJ PDP,FXSAT         ;*FREE THE DISK BLOCKS NO LONGER NEEDED\r
@@ -1199,7 +1215,6 @@ XPAND:    LSH TAC,-12             ;CONVERT HIGHEST DESIRED ADDRESS
 ;ROUTINE TO FLAG JOB TO BE STOPPED AND SWAPPED OUT\r
 ;BECAUSE IT HAS JUST BEEN CONNECTED TO A HIGH SHARABLE SEG WHICH IS ON DISK\r
 ;OR ON ITW WAY IN OR OUT.  THE SIZE OF THE HIGH SEG IS UNCHANGED\r
-\r
 ;THE JOB MUST BE STOPPED UNTIL HIGH SEG SWAPPED IN JUS AS IF JOB HAS\r
 ;EXPANDED HIGH SEG(MUST BE CALLED FROM UUO LEVEL FOR CURRENT JOB IF HIGH SEG)\r
 ;CALL: MOVE ITEM,HIGH SEG NUMBER\r
@@ -1246,6 +1261,7 @@ SQOUT:    MOVEM TAC,SERA          ;STORE THE BLOCK NUMBER
        EXCH TAC,DFBUSY \r
        JUMPN TAC,CPOPJ         ;YES IF JUMP\r
 \r
+\r
 ERATRY=3       ;NO. OF TIMES TO READ AND WRITE ON ERRORS\r
 \r
 ;START UP DEVICE WITH SWAPPING REQUEST. THIS ROUTINE\r
@@ -1266,7 +1282,7 @@ SQGO:     MOVEI TAC1,ERATRY
 \fSQGO1:        SETZM   SQLEN           ;ZERO AMOUNT TRANSFERRED SO FAR\r
        MOVE TAC1,SQREQ         ;*PUT IOWD INTO TAC1\r
        MOVSI TAC,200000        ;*SET "SWAPPER I/O GOING" FLAG ON\r
-       ORB TAC,SETA    ;*\r
+       ORB TAC,SERA    ;*\r
        TRZN    TAC,FRGSEG      ;*FRAGMENTED?\r
        JRST    SQGO2           ;*NO, READ IN ENTIRE (OR PART) OF SEG\r
 \r
@@ -1283,7 +1299,6 @@ FRGIO1:   HLRE    DAT,(TAC)       ;NO OF K IN THIS  DISK CHUNCK
        ORM TAC,SERA            ;INSERT NEW ADDRESS\r
        JRST FRGIO1\r
 \r
-\r
 FRGIO2:        LSH     DAT,12          ;CONVERT FROM K TO WORDS\r
        ADDM DAT,SQLEN          ;ADD TO PREVIOUSLY TRANSFERRED AMOUNT\r
        MOVNS DAT               ;-N WORDS\r
@@ -1328,7 +1343,7 @@ DINT8A:   HRRZM IOS,SERA
        SETZM SQREQ\r
        JRST DINT4B\r
 \r
-SWPER1;        MOVSI TAC,100\r
+SWPER1:        MOVSI TAC,100\r
        ADDM TAC,CKSMCT\r
        TRO IOS,IODTER\r
 SWPERR:        MOVM TAC, FINISH        ;*RESET SERA IN CASE OF FRAGMENTED JOB\r
@@ -1358,7 +1373,6 @@ GXSAT:    MOVE AC1,XSAT1          ;SAVE AC1, SET IT TO TABLE LOC.
        MOVE AC2,XSAT2  ;\r
        LSH DAT,CONVMD          ;CONVERT TO 128 WORD DISK BLOCKS\r
        PUSH PDP,ITEM           ;SAVE C(ITEM)\r
-       \r
        MOVE ITEM,DAT           ;GETBIT EXPECTS PARAMETER IN ITEM\r
        PUSHJ PDP,GETBIT        ;FIND A HOLE BIG ENOUGH\r
        JRST IPOPJ              ;NONE, RESTORE ITEM AND ERROR RETURN\r
@@ -1392,7 +1406,6 @@ FXSAT:    LSH TAC,CONVMD          ;RESTORE SHIFTED DISK ADDRESS.
        JRST IPOPJ              ;RETURN, AND RESTORE ITEM\r
 \r
 ;INITIALIZE SWAPPER DISK STORAGE TABLE\r
-\r
 INTERNAL SWPINI\r
 \r
 SWPINI:        MOVE TAC,XSAT2\r
@@ -1406,7 +1419,7 @@ SWPINI:   MOVE TAC,XSAT2
        MOVEM TAC,XSAT5\r
        MOVE TAC,XSAT8\r
        MOVEM TAC,XSAT6\r
-       POPJ PDPD,\r
+       POPJ PDP,\r
 \r
 IFN FTCHECK+FTMONP,<\r
 EXTERNAL SQREQ,SERA,SERACT,XSAT1,XSAT2,XSAT3,XSAT4,XSAT5,XSAT6,XSAT7\r
@@ -1426,7 +1439,7 @@ ESQREQ:   Z                       ;COPY OF SQREQ, IN CASE OF
 SERA:  Z                       ;SIGN IS 1 IF A READ\r
                                ; C(RH)=BLOCK NUMBER BEFORE READING.\r
                                ;  ERROR BITS AFTER READING.\r
-SELACT:        0                       ;COUNT FOR ERRORS\r
+SERACT:        0                       ;COUNT FOR ERRORS\r
 SQLEN: 0                       ;AMOUNT TRANSFERRED SO FAR - FRAG SEG\r
 \r
 XSAT1: EXP XSAT3-1             ;POINTER USED BY GETBIT,CLRBIT\r
@@ -1448,11 +1461,11 @@ XSAT5:  BLOCK W2+1
 XSAT6: BLOCK 1\r
        REPEAT 1,<\r
                IFE E1,<X=1B0>\r
-               IFN E1,<X1\r
+               IFN E1,<X=1\r
                REPEAT ^D35-E1,<X=X*2>>\r
                IFE E2,<Z=-1>\r
                IFN E2,<Z=0\r
-               X=1\r
+               Y=1\r
                REPEAT ^D36-E2,<Z=Z+Y\r
                Y=Y*2>\r
                >>\r
@@ -1464,7 +1477,6 @@ SWPSIZ=XSAT6-XSAT4+1              ;SIZE OF TABLE
 HISWAP=17*BLOCKS               ;LOGICAL BLOCK NUMBER OF FIRST\r
                                ; BLOCK ON DISK\r
 DIFF=HISWAP-BLOCKS-1\r
-\r
 XP CONVMD,3    ;CONVERSION FROM 1K CORE BLOCKS TO 128 WORD\r
                ;DISC BLOCKS(SHIFT COUNT)\r
 \r
@@ -1527,8 +1539,7 @@ GXSAT:    PUSH    PDP,ITEM        ;THIS ROUTINE SAVES AND RESTORES ACCUMULATOR "ITEM".
 \r
 FXSAT: TRZN    TAC,FRGSEG      ;FRAGMENTED?\r
        JRST    FXSAT1          ;NO. DO IN REGULAR WAY\r
-\r
-FRAGRK:        HRRZ    AC3,TAC         ;YES. LOC OF TABLE IN AC3\r
+FRAGBK:        HRRZ    AC3,TAC         ;YES. LOC OF TABLE IN AC3\r
 FRGBK1:        HRRZ    TAC,(AC3)       ;LOC OF NEXT DISK ADDRESS\r
        HLRE    DAT,(AC3)       ;NUMBER OF K\r
        JUMPLE  DAT,FRGBK2      ;GIVE UP FREE CORE IF NOT REAL ADDRESS\r
@@ -1560,6 +1571,8 @@ FXSAT1:   PUSH    PDP,ITEM        ;THIS ROUTINE SAVES AND RESTORES ACCUMULATOR "ITEM".
 FXSATC:        PUSHJ   PDP,CLRBIT      ;THE "CLRBIT" SUBROUTINE IN "DSKSER" ACTUALLY DOES\r
                                ; THE WORK OF CLEARING THE BITS.\r
        JRST IPOPJ              ;RESTORE ITEM AND RETURN\r
+\r
+\f\r
 ;ROUTINE TO RE-INITIALIZE THE SWAPPING AVAILABILITY TABLE. CALLED AT\r
 ; SYSTEM INITIALIZATION TIME.\r
 \r
@@ -1590,7 +1603,7 @@ EXTERNAL  LBHIGH,BLKSPK,MAX2SWP,SWPENT,SWPTAB,MAXSWP
 IFE FTCHECK+FTMONP,<\r
 ;DATA ASSOCIATED WITH THE SWPSER LOGIC FOR THE NEW PDP-10 DISK ---\r
 \r
-       INTERN  MXK2SWP,CONVMD,BLKSPK,SWAPTAB,MAXSWP\r
+       INTERN  MXK2SWP,CONVMD,BLKSPK,SWPTAB,MAXSWP\r
        EXTERN K4SWAP\r
 ;THE ABOVE ARE REFERENCED OR INITIALIZED BY THE "ONCE" ROUTINE.\r
 \r
@@ -1610,7 +1623,7 @@ MXK2SWP=^D1000    ;MASIMUM NUMBER OF 1K DISK BLOCKS WHICH MIGHT BE ALLOCATED
                ; FOR SWAPPING (UPPER BOUND ON THE VALUE OF K4SWAP  WHICH\r
                ; MAY BE REQUESTED AT DISK REFRESH TIME). (ONE MILLION WORDS\r
                ; FOR SWAPPING SEEMS LIKE A NON-RESTRICTIVE ARBITRARY LIMIT.)\r
-SWPSIZ=MXK2SWP/.^D36+1 ;SIZE OF SWPTAB ALLOCATION TABLE.\r
+SWPSIZ=MXK2SWP/^D36+1  ;SIZE OF SWPTAB ALLOCATION TABLE.\r
 \r
 SWPENT:        XWD     -SWPSIZ,SWPTAB  ;THREE WORD POINTER TABLE\r
        XWD     400000,0        ; REQUIRED BY THE "GETBIT" AND\r
@@ -1626,7 +1639,7 @@ ESQREQ:   Z                       ;COPY OF SQREQ, IN CASE OF SWAP ERROR IN FRAGMENTED JOB
 SERA:  Z                       ;SIGN IS 1 IF A READ\r
                                ; C(RH)=BLOCK NUMBER BEFORE READING.\r
                                ;  ERROR BITS AFTER READING.\r
-SELACT:        0                       ;COUNT FOR ERRORS\r
+SERACT:        0                       ;COUNT FOR ERRORS\r
 SQLEN: 0                       ;AMOUNT TRANSFERRED SO FAR FOR FRAGMENTED JOB\r
 >\r
 >      ;END OF SWPSER LOGIC FOR THE NEW PDP-10 DISK.\r