LSH TAC,-12\r
>\r
JRST STOTAC ;STORE IN USER AC AND RETURN TO USER\r
-\f;ROUTINE TO CHECK JOBS TO SEE IF ANY JOB CAN BE SHUFFLED\r
+\f\r
+;ROUTINE TO CHECK JOBS TO SEE IF ANY JOB CAN BE SHUFFLED\r
;IT IS CALLED EVERY 60TH OF A SECOND BY CLOCK ROUTINE\r
;PROVIDING CURRENT JOB IS IN USER MODE OR JUST ENTERING\r
;IO WAIT OR SHARABLE DEVICE WIAT OR RETURNING ON UUO CALLS\r
;THE NSHF BIT IN JOBSTS WHOULD BE SET FOR JOBS USING DISPLAYS\r
;SINCE DISSER CONTINUALLY REFERENCES USER AREA EVEN THOUGH\r
;IOAC1 IS OFF.\r
-\r
+\f\r
;THIS VERSION OF THE CORE SHUFFLER WORKS AS FOLLOWS:\r
;EVERY CLOCK TICK FOR WHICH ALL JOBS ARE SHUFFABLE(NOT COUNTING ACTIVE\r
;IO DEVICES). THE JOB IMMEDIATELY ABOVE THE LOWEST HOLE\r
MOVSI TAC,SHF ;SET SHF WAIT BIT IN JOB STATUS WORD\r
IORM TAC,JBTSTS(ITEM) ;SO JOB WILL NOT BE RUN\r
POPJ PDP, ;AND IO WILL STOP SOON\r
-\f\r
-;ROUTINE TO TEST FOR ANY ACTIVE DEVICES\r
+\f;ROUTINE TO TEST FOR ANY ACTIVE DEVICES\r
\r
;CALL: MOVE ITEM,JOB NUMBER OR HIGH SEG NUMBER\r
; MOVE JDAT,ADDRESS OF JOB DATA AREA\r
TDNN AC3,DEVMOD(DEVDAT) ;NOT FINISHED, IS DEVICE TTY?\r
POPJ PDP, ;NO, ERROR RETURN, CANNOT ASSIGN CORE\r
JRST ANY2 ;YES, KEEP LOOKING FOR AN ACTIVE DEVICE\r
-\f\r
-;ROUTINE TO TEST TO SEE IF JOB OR HIGH SEG CAN BE SWAPPED\r
+\f;ROUTINE TO TEST TO SEE IF JOB OR HIGH SEG CAN BE SWAPPED\r
; OR WHETHER IT SHOULD BE ALLOWED TO CONITNUE RUNNING\r
; UNTIL A MORE FAVORABLE ITME\r
;CALL: MOVE ITEM,HIGH RO LOW SEG NUMBER\r
JRST CPOPJ1 ;NO, GIVE OK RETURN\r
>\r
>\r
-\f\r
-;ROUTINE TO FLUSH PHYSICAL CORE ASSIGNED IN MEMORY\r
+\f;ROUTINE TO FLUSH PHYSICAL CORE ASSIGNED IN MEMORY\r
;NOTE: THIS ROUTINE DIFERS SIGNIFICANTLY FROM CORE0 AND CORE1 IN THAT\r
;IT IS ONLY A PHYSICAL REMOVAL OF CORE(VIRTAL IS NOT AFFECTED)\r
;SEE COMMENTS FOR CORE1\r
; AND FLUSH PHYSICAL CORE(LOGICAL CORE UNEFFECTED)\r
\r
\r
+\r
;CORE0 IS CALLED BY THE CORE MONITOR COMMAND AND THE CORE SHUFFLER\r
\r
;AND RUN COMMAND\r
;THE CORE ROUTINES DO NOT ALTER THE HIGH SEG IN CORE COUT. IT IS UP TO THE CALLER\r
;(IN SEGCOR) TO CALL THE CORE ROUTINES ONLY IF IN CORE COUNT IS 0\r
;AND END OF SWAPIN OF LOW SEG AND HIGH SEG IS ALREADY IN CORE FOR OTHER USER\r
-\f\r
-CORE0:\r
+\fCORE0:\r
IFE FTSWAP,<\r
JUMPE PROG,CORGET ;IS JOB WITHOUT CORE IN MEMORY?\r
>\r
PUSHJ PDP,ANYACT ;NO,ANY ACTIVE DEVICE?\r
POPJ PDP, ;YES, CANNOT ASSIGN CORE\r
; NO, FALL INTO CORE1\r
-;ROUTINE TO TRY TO ASSIGN CORE IN CORE\r
+\f;ROUTINE TO TRY TO ASSIGN CORE IN CORE\r
;LOW OR HIGH SEG MUST NOT BE SWAPPED OUT(CALLER'S RESPONSIBILITY)\r
;AND MUST NOT HAVE ANY ACTIVE DEVICES(IT MAY HAVE 0 CORE IN CORE THOUGH)\r
;IN OTHER WORDS HIGH OR LOW SEG MAY OR MAY NOT HAVE VIRTUAL CORE\r
HLRZ BLK,PROG ;HIGHEST LEGAL REL. ADR.\r
MOVEI T,0 ;CLEAR FOR CORSTG CALL\r
PUSHJ PDP,CORSTG ;RETURN OLD CORE TO FREE STORAGE\r
-;CORGET IS CALLED BY SWAPPER WHEN JOB IS ON DISC AND IS\r
+\f;CORGET IS CALLED BY SWAPPER WHEN JOB IS ON DISC AND IS\r
;WANTED IN CORE.\r
\r
CORGET: SETZB LOC,PROG ;SET NEW ASSIGNMENT TO 0 AND DIST. MOVED\r
;OLD, CLEAR OUT INCREASED SO SECURITY WILL\r
; BE MAINTAINED. TAC1 IS SIZE-1 OF OLD\r
; ASSIGNMENT. -1 OF NO OLD ASSIGNMENT\r
-;HERE WHEN FREE CORE TABLE DOES NOT HAVE ENOUGH ROOM FOR REQUEST\r
+\f;HERE WHEN FREE CORE TABLE DOES NOT HAVE ENOUGH ROOM FOR REQUEST\r
\r
BAKOLD:\r
IFN FTSWAP,<\r
>\r
BKOLD1: HLRZ TAC,JBTADR(ITEM) ;GIVE BACK OLD CORE.\r
JRST CORGET\r
-\f\r
-;MOVE OLD CORE TO NEW AREA\r
+\f;MOVE OLD CORE TO NEW AREA\r
\r
MOVCOR: CAIN LOC,(BLK) ;IS NEW CORE IN SAME PLACE AS OLD?\r
JRST CLRCOR ;YES, DO NOT MOVE IT,CLEAR IF INCREASE\r
CAILE TAC1,(TAC) ;IS OLD CORE LESS THEN NEW?\r
HRRZ TAC1,TAC ;NO, MOVE THE SHORTENED NEW CORE\r
IFN FTTIME,<\r
- EXTERNAL SHRWRD\r
- ADDM TAC1,SHRWRD ;INCREMENT TOTAL NO. WORDS SHUFFLED\r
+ EXTERNAL SHFWRD\r
+ ADDM TAC1,SHFWRD ;INCREMENT TOTAL NO. WORDS SHUFFLED\r
>\r
ADD TAC1,LOC ;ADD IN NEW RELOC.\r
MOVE AC1,LOC ;DEST.=NEW RELOC.\r
SETZM -1(TAC1) ;CLEAR FIRST WORD\r
HRLI TAC1,-1(TAC1) ;SET LH TO FIRST ADR. TO CLEAR\r
BLT TAC1,(TAC) ;CLEAR THE INCREASE PORTION\r
+\f\r
;IF THE SHUFFLED JOB IS IN EXEC MODE, ITS DUMP ACS\r
;(PDP,PROG,JDAT SAVED IN JOB DATA AREA) MUST BE\r
;ALTERED BY DISTANCE CODE WAS MOVED\r
SUBI LOC,2000(BLK) ;YES, SET LOC TO FIRST BLOCK IN HOLD\r
SOJA BLK,CPOPJ1 ;SET BLK TO HIGHEST REL. LOC.\r
; AND RETURN\r
-\f\r
-;ROUTINE TO SET AND CLEAR CORE USE TABLE\r
+\f;ROUTINE TO SET AND CLEAR CORE USE TABLE\r
;CALL: MOVEI T,1 ;TO SET TABLE\r
MOVEI T,0 ;TO CLEAR TABLE\r
; MOVE BLK,HIGHEST REL. LOC. IN USER AREA\r