Fixed typos.
[retro-software/dec/tops10/v4.5.git] / src / schedb.mac
index b33d156..16c0de7 100644 (file)
@@ -75,7 +75,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 +85,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 +100,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
@@ -211,11 +211,11 @@ INTERNAL QXFER,QSCAN,FTSWAP,FTDISK
 ;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
@@ -326,7 +326,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
@@ -380,7 +380,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,7 +461,7 @@ 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
@@ -483,6 +483,15 @@ A'Q=LOC
 LOC=LOC+1\r
 >\r
        CODES\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;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
@@ -496,6 +505,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
@@ -583,7 +593,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,14 +610,14 @@ 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
@@ -620,6 +630,12 @@ QQTAB:     XWD -PQ1,-PQ2
        XWD -PQ3,-PQ2           ;BACK TO PQ2 TO COMPETE WITH IOWS JOBS\r
        Z\r
 \r
+,PUT JOB DOWN A Q IF EXCEEDS QUANT. TIME\r
+QTTAB: XWD -PQ1,-PQ2\r
+       XWD -PQ2,-PQ3\r
+       XWD -PQ3,-PQ2           ;BACK TO PQ2 TO COMPETE WITH IOWS JOBS\r
+       Z\r
+\r
 ,QUANTUM TABLES\r
 \r
 QQSD=6 ;TENTH SEC. INITIAL QUANT. FOR SHAR. DEV. WAITERS\r
@@ -637,7 +653,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 +668,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
@@ -729,7 +745,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
@@ -886,7 +902,7 @@ SCNOUT:     SKIPG XJOB              ;ANY JOBS WAITING TO EXPAND?
                                ; 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
@@ -917,7 +933,7 @@ SCNJOB:     MOVE T,CORTAL           ;INITIALIZE FREE CORE COUNTER
                                ; (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
@@ -981,12 +997,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 +1032,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
@@ -1059,8 +1075,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 +1164,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
@@ -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
@@ -1328,7 +1344,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
@@ -1406,7 +1422,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 +1442,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 +1464,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
@@ -1528,7 +1544,7 @@ GXSAT:    PUSH    PDP,ITEM        ;THIS ROUTINE SAVES AND RESTORES ACCUMULATOR "ITEM".
 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
@@ -1590,7 +1606,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 +1626,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,8 +1642,9 @@ 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
 \fSCHEND:       END\r
+\0\r