X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/4004a326545fc294821707378dd8e6b026df8be1..8c11230d54654d010d9027c672dcf4011d2cf539:/src/clock1.mac diff --git a/src/clock1.mac b/src/clock1.mac index 67292ba..92a704e 100644 --- a/src/clock1.mac +++ b/src/clock1.mac @@ -1,5 +1,5 @@ -TITLE CLOCK1 - CLOCK, CONTEXT SWITCHING, AND JOB STARTING AND STOP ROUTINES - V412 -SUBTTL APRINT TH/TH/CHW TS 20 MAY 69 +TITLE CLOCK1 - CLOCK, CONTEXT SWITCHING, AND JOB STARTUP AND STOP ROUTINES - V412 +SUBTTL APRINT TH/TH/CHW TS 20 MAY 69 XP VCLOCK1,412 ; PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP @@ -18,7 +18,7 @@ EXTERNAL JOBDAT,JOBTPC,JOBCNI,JOBAPR,APRERR,SCHEDF EXTERNAL APRILM,COMMAN,CONMES,DEVCHK,DEVSRC,ERROR,INLMES EXTERNAL RELEA9,CRSHWD,CRASHX -INTERNAL FTTTYSER ;THIS ROUTINE MAY BE ASSEMBLED TO WORD EITHER +INTERNAL FTTTYSER ;THIS ROUTINE MAY BE ASSEMBLED TO WORK WITH EITHER ; THE OLD SCNSER OR THE NEW TTYSER. @@ -31,10 +31,10 @@ INTERNAL UUO1 IFE FTCHECK+FTMONP,< INTERN CLOCK,DAMESS EXTERN CIPWTM -APRCON: 231000 ;MONITOR ENABLED CPU FLAGS -APRIN1: 0 ;USER ENABLED CPU FLAGS -CLKS17: 0 ;PLACE TO SAVE AC17 ON CLOCK INTERRUPT -DAMESS: ASCIZ /-JAN-/ +APRCON: 231000 ;MONITOR ENABLED CPU FLAGS +APRIN1: 0 ;USER ENABLED CPU FLAGS +CLKS17: 0 ;PLACE TO SAVE AC17 ON CLOCK INTERRUPT +DAMESS: ASCIZ /-JAN-/ CLOCK: POINT 36,CIPWTM,35 ;BYTE POINTER TO CLOCK REQ QUEUE > INTERN APRINT @@ -42,11 +42,11 @@ CLOCK: POINT 36,CIPWTM,35 ;BYTE POINTER TO CLOCK REQ QUEUE APRINT: JRST APRPAR ;ALWAYS CHECK APR AND PI DEVICES JRST . ;CHECK OTHER DEVICES -APRPCL: CONO PI,240000 ;TURN OFF MEM PAR, ERR, AND +APRPCL: CONO PI,240000 ;TURN OFF MEM PAR. ERR, AND ; ENABLE FOR MEM PAR AND TRY AGAIN ; (DO NOT TURN OFF POWR FAIL AS THAT PERMANENTLY ; DISABLES POWR FAIL INTERRUPT) -APRPAR: CONSZ PI,600000 ;MEM PARITY ERROR OR POWER FAILURE? +APRPAR: CONSZ PI,600000 ;MEM PARITY ERROR OR POWER FAILURE? HALT APRPCL ;YES, HALT MACHINE, CLEAR FLAGS AND TRY AGAIN ; ON CONTINUE CONSO APR,@APRCON ;INTERRUPT FOR APR? @@ -54,8 +54,8 @@ APRPAR: CONSZ PI,600000 ;MEM PARITY ERROR OR POWER FAILURE? ; RH MODIFIED EACH TIME USER RUNS IN CASE HE IS ; ENABLED FOR PC CHANGE OR AR OVF JRST APRINT+1 ;NO,CHECK OTHER DEVICES ON THIS PI CHANNEL - SKIPE CRSHWD ;IS LOC, 30 CLOBBERED? - JRST CRASHX ;YES ~ GO SAVE AC'S & STATE OF ALL DEVS, + SKIPE CRSHWD ;IS LOC. 30 CLOBBERED? + JRST CRASHX ;YES - GO SAVE AC'S & STATE OF ALL DEVS. CONSO APR,001000 ;YES, IS IT CLOCK? JRST APRER ;NO, GO CHECK ERROR FLAGS AOS TIME ;YES, INCREMENT TIME OF DAY @@ -75,7 +75,7 @@ APRER1: CONO APR,1000+APRCHN ;NOW CLEAR CLOCK FLAG EXCH TAC,APRCHL ;SAVE TAC, GET PC TLNE TAC,USRMOD ;IS PC FROM USER MODE? JRST APRER4 ;YES, GO TRAP TO HIM - JRST APRER2 ;NO. GO CHECK IN CASE ALSO A SERIOUS ERROR + JRST APRER2 ;NO, GO CHECK IN CASE ALSO A SERIOUS ERROR ;OTHER APR INTERRUPTS BESIDES CLOCK APRER: EXCH TAC,APRCHL ;SAVE TAC, GET PC @@ -93,7 +93,7 @@ APRER4: EXCH JDAT,JOBDAT ;YES, SAVE JDAT, GET CURRENT JOB DATA AREA ADR. HRRM TAC,APRCON ;PD OVF,ILM,NXM, AND CLOCK HRR TAC,JOBAPR(JDAT) ;GET USER LOC TO TRAP TO EXCH JDAT,JOBDAT ;RESTORE JDAT,JOBDAT - CONO APR,440+APRCHN ;DISBALE FOV, AROVF IN CASE ON + CONO APR,440+APRCHN ;DISABLE FOV, AROVF IN CASE ON ;SO USER MUST REENABLE WITH SETAPR UUO APRER3: TLZ TAC,440000 ;CLEAR FOV (PC CHANGE ON PDP-6) AND AR OVF FLAGS ; SO INTERRUPT MAY BE DISMISSED @@ -101,18 +101,18 @@ APRER3: TLZ TAC,440000 ;CLEAR FOV (PC CHANGE ON PDP-6) AND AR OVF FLAGS CONO APR,430110+APRCHN ;CLEAR ALL ERROR FLAGS WHICH CAN CAUSE INTERRUPTS ; EXCEPT CLOCK FLAG(ELSE LOSE TIME OF DAY) JEN @APRCHL ;DISMISS INTERRUPT - APRER2: CONSO APR,NXM!ILM!POV! ;DOES EXEC CARE? - JRST APRER3 ;NO. IGNORE EXEC OVERFLOW (MUST BE FOV OR AROVF + APRER2: CONSO APR,NXM!ILM!POV ;DOES EXEC CARE? + JRST APRER3 ;NO. IGNORE EXEC OVERFLOW (MUST BE FOV OR AROVF) MOVEM TAC,APRPC ;STORE ERROR PC FOR CLK CHANNEL CONI APR,APRERR ;STORE ERROR FLAGS ; (ALSO USED AS ERROR FLAG) SETOM CLKFLG ;SET FLAG FOR CLK INTERRUPT SETOM SCHEDF ;FLAG THAT RESCHEDULING IS NEEDED - ; (EVEN THROUGH PC MAY BE IN EXEC MODE) + ; (EVEN THOUGH PC MAY BE IN EXEC MODE) CONO PI,REQCLK ;REQUEST INTERRUPT IN CLK CHANNEL CONSZ APR,ILM ;WAS ERROR ILLEGAL MEMORY(FROM USER)? HRRI TAC,0 ;YES,CLEAR RH OF PC,SO A SECOND ILM INTERRUPT - ; WILL NOT OCCUR IF THIS IS A WILD(AND A PDP-10) + ; WILL NOT OCCUR IF THIS IS A WILD PC(AND A PDP-10) IFN FTHALT,< CONSZ PI,003400 ;ARE ANY PI'S IN PROGRESS OF LOWER PRIORITY THAN APR? ; (PDP-10 BITS ONLY) @@ -125,10 +125,10 @@ IFN FTHALT,< ;THIS ROUTINE RUNS ON THE LOWEST PRIORITY PI CHANNEL AND AT UUO LEVEL ;TO CAUSE AN INTERRUPT ON CLK CHANNEL: ; SETOM CLKFLG ;FLAG THAT INTERRUPT HAS BEEN REQUESTED -; CONO PI,CLKREQ ;REQUEST PI INTERRUPT ON LOWEST PI CHANNEL +; CONO PI,CLKREQ ;REQUEST PI INTERUPT ON LOWEST PI CHANNEL ;THE FOLLOWING OTHER FLAGS MUST ALSO BE SET ;APRERR-APR DETECTED ERROR IN CURRENT JOB -;SCHEDF-RESCHEDULING MUST TAKE PLACE(EVEN THROUGH PC IN EXEC MODE) +;SCHEDF-RESCHEDULING MUST TAKE PLACE(EVEN THOUGH PC IN EXEC MODE) ;TIMEF-APR CLOCK HAS TICKED ON HIGH PRIORITY CHANNEL ;SEE APRSER AND RUNCSS TO SEE HOW THIS ROUTINE IS CALLED @@ -140,9 +140,9 @@ IFN FTHALT,< ;IF THE CURRENT JOB IS IN EXEC MODE THE ABOVE 4 TASKS ARE ;DELAYED UNTIL THE CURRENT JOB ENTERS A STOPPABLE STATE: I.E., UNTIL ; 1. JOB STARTS TO WAIT FOR A BUSY SHARABLE DEVICE -; 2. JOB STARTS TO WAIT FOR A IO TO COMPLETE +; 2. JOB STARTS TO WAIT FOR IO TO COMPLETE ; 3. CONTROL ABOUT TO RETURN TO USER MODE -;THEN CLK SERVICE IS ENTERED AT THE UU0 LEVEL +;THEN CLK SERVICE IS ENTERED AT THE UUO LEVEL STOR=DAT T=TAC @@ -157,7 +157,7 @@ JA=JDAT ; CONO PI,PIOFF ; IDPB AC,CLOCK ;STORE CLOCK REQUEST IN QUEUE ; CONO PI,PION ;TURN PI BACK ON -;C(AC)=XWD ADDRESS,NO. OF CLOCK TICKS*DATA*10000 +;C(AC)=XWD ADDRESS,NO. OF CLOCK TICKS+DATA*10000 ;WHERE DATA IS 6 BITS OF INFO NEEDED WHEN TIME RUNS OUT ;CLK SERVICE WILL PUSHJ PDP,ADR ;WHEN TIME RUNS OUT WITH DATA RIGHT JUSTIFIED IN AC TAC @@ -181,7 +181,7 @@ WSCHED: POP PDP,USRPC ;SAVE PC IN PROTECTED PART OF SYSTEM DATA MOVEI AC3,JOBDAC(JDAT) ;SAVE ACS 0-16 IN DUMP ACS BLT AC3,JOBD16(JDAT) ;IN CURRENT JOB DATA AREA MOVEI PDP,NULPDL ;NULL JOB PD LIST - HRLI PDP,MJOBP1 ;USED TO CALL SCHEDULER AND COMMAND DECODE + HRLI PDP,MJOBP1 ;USED TO CALL SCHEDULER AND COMMAND DECODER ; OTHERWISE GET PD OUF JRST RSCHED ;GO RESCHEDULE @@ -230,12 +230,12 @@ CLKERR: SKIPN 17,JOBDAT ;CURRENT JOB DATA AREA, IS THERE ONE? MOVEI 16,JOBDAC(17) ;SOURCE=0,DESTINATION=DUMP AC 0 BLT 16,JOBD15(17) ;SAVE ACS 0-15 JUST BELOW AC 16 MOVE TAC,CLKS17 ;NOW SAVE 17 IN JOB DATA AREA - MOVEM TAC,JOBD17(17) ;ALONE WITH OTHER ACS + MOVEM TAC,JOBD17(17) ;ALONG WITH OTHER ACS MOVEI PDP,NULPDL ;SET UP PUSH DOWN LIST IN NULL JOB DATA ; AREA IN LOWER CORE HRLI PDP,MJOBP1 ;-LENGTH+1(LEAVE ROOM FOR UUO PC) SKIPE TAC,APRERR ;IT THIS AN ERROR INTERRUPT? - PUSHJ PDP,APRILM ;YES, GO PROCESS ERROR, APRILM WILL CLEAR APRERR + PUSHJ PDP,APRILM ;YES, GO PROCESS ERROR,APRILM WILL CLEAR APRERR ; FLAG IMMEDIATELY EXTERNAL COMCNT,NXTJOB,HNGTIM,POTLST,LSTWRD EXTERNAL TIMEF,APRERR,CLKFLG,SCHEDF,JOB,PMONTB @@ -254,8 +254,8 @@ IFN FTTIME,< JRST INCTIM ;NO-PROCEED NORMALLY AOS LSTWRD ;YES-INCREMENT LOST TIME COUNT SETZM POTLST ;AND CLEAR LOST TICK INDICATION -INCTIM: AOS RTIME(ITEM) ;INCR, CURRENT JOB INCREMENTAL RUN TIME - AOS TTIME(ITEM) ;INCR, CURRENT JOB TOTAL RUN TIME +INCTIM: AOS RTIME(ITEM) ;INCR. CURRENT JOB INCREMENTAL RUN TIME + AOS TTIME(ITEM) ;INCR. CURRENT JOB TOTAL RUN TIME > IFN FTKCT,< EXTERN USRREL,JBTKCT @@ -273,7 +273,7 @@ IFN FT2REL,< MOVE TAC1,TIME CAMGE TAC1,MIDNIT ;GONE PAST MIDNITE? JRST CIP2 ;NO -CIP3: SETZB IOS,TIME ;YES, RESET TIME OF DAY +CIP3: SETZB IOS,TIME ;YES. RESET TIME OF DAY AOS TAC,THSDAT ;UPDATE DAY IDIVI TAC,^D31 DIVI IOS,^D12 ;NO. @@ -300,32 +300,32 @@ CIP4: CAIN STOR,CIPWTM1 ;END YET? POP PDP, STOR SOJA STOR, CIP4 ;GO BACK FOR MORE REQUESTS -CIP5: SOSG HNGTIM ;DECREMENT HUNG ID DEVICE - PUSHJ PDP,DEVCHK ;GO CHECK FOR HUNG ID DEVICES +CIP5: SOSG HNGTIM ;DECREMENT HUNG IO DEVICE + PUSHJ PDP,DEVCHK ;GO CHECK FOR HUNG IO DEVICES SKIPE COMCNT ;ANY COMMANDS TO PROCESS? PUSHJ PDP,COMMAND ;YES, CALL COMMAND DECODER CIP6: PUSHJ PDP,NXTJOB ;CALL SCHEDULER SETZM CLKFLG ;CLEAR CLK INTERRUPT FLAG ; SET ON ALL FORCED CLK INTERRUPTS - SETZM TIMEF ;CLEAR TIME0 (1 JIFFY) INTERRUPT FLAG, + SETZM TIMEF ;CLEAR TIMED (1 JIFFY) INTERRUPT FLAG. SETZM SCHEDF ;CLEAR FORCED SCHEDULING FLAG CAMN ITEM,JOB ;IS NEXT JOB SAME AS LAST ONE? JRST CIP8 ;YES, JUST RESTORE ACS AND DISMISS - ;DIFFERENT JOB. SAVE SOFTWARE STATE(HARDWARE ALREADY SAVED) + ;DIFFERENT JOB, SAVE SOFTWARE STATE(HARDWARE ALREADY SAVED) EXTERNAL JOB,JOBDAT,JOBPRT,USRPRT,USRHCU,JOBJDA SKIPN JA,JOBDAT ;NULL JOB OR CORE 0 ON OLD JOB? - JRST CIP7 ;YES, DO NOT SAVE SOFTWARE STATE - MOVEI T,JOBPRT(JA) ;DEST,#FIRST LOC PROTECTED FROM USER - HRLI T,USRPRT ;SOUR,#SYSTEM DATA STORAGE FOR CURRETN JOB + JRST CIP7 ;YES, DO NO SAVE SOFTWARE STATE + MOVEI T,JOBPRT(JA) ;DEST.=FIRST LOC PROTECTED FROM USER + HRLI T,USRPRT ;SOUR.=SYSTEM DATA STORAGE FOR CURRETN JOB SKIPL T1,USRHCU ;MOVE NO. OF OLD USER IO CHAN. IN USE CAILE T1,17 ;MUST BE 17 OR LESS(IO MIGHT ; CLOBBER IF ADDRESS CHECKING MISSES) MOVEI T1,0 ;MOVE ONLY CHN 0 IF NEG, OR GR 17 ; SAVGET SETS LH NEGATIVE DURING IO AS A FLAG ; SINCE IT DOES IO INTO AND OUT OF - ; CHANNEL LOCATIONS (JOBJDA+1..,JOBJDA+17), + ; CHANNEL LOCATIONS (JOBJDA+1...JOBJDA+17). ADD JA,T1 ;RELOCATE TO USER AREA BLT T,JOBJDA(JA) ;MOVE TO USER JOB DATA AREA ; STOP WITH USER CHANNEL 0-1+C(USRHCU) @@ -345,13 +345,13 @@ IFN FTHALT,< SKIPN JA ;DOES JOB HAVE CORE ASSIGNED? HALT . ;NO -ELSE CLOBBER MONITOR > - MOVEI T,USRPRT ;NO, DEST,#PROTECTED AREA IN MONITOR - HRLI T,JOBPRT(JA) ;SOURCE#FIRST PROTECT LOC. IN JB DATA AREA + MOVEI T,USRPRT ;NO, DEST.=PROTECTED AREA IN MONITOR + HRLI T,JOBPRT(JA) ;SOURCE=FIRST PROTECTED LOC. IN JB DATA AREA SKIPL T1,JOBHCU(JA) ;MOVE NO. OF USER IO CHAN. IN USE CAILE T1,17 ;MUST BE 17 OR LESS(IO MIGHT CLOBBER ; IF ADRRESS CHECKING MISSES MOVEI T1,0 ;MOVEJUST CHAN 0 IF NEG. OR GREATER THAN 17 - ; SAVEGET SETS NUG,DURING IO + ; SAVEGET SETS NEG.DURING IO BLT T,USRJDA(T1) ;AND MOVE INTO MONITOR ;RESTORE HARDWARE STATE OF CURRENT JOB @@ -364,18 +364,18 @@ CIP8: SKIPN JA,JBTDAT(ITEM) ;JOB DATA AREA(IS THERE ONE?) ; (ON CLK PI OR HIGHER) JRST CLKERR ;YES, GO PROCESS ERROR SKIPN JOB ;IS THIS JOB THE NULL JOB? - SKIPN NULERR ;YES, HAS AN ERROR OCCURED WHILE NULL JOB + SKIPN NULERR ;YES, HAS AN ERROR OCCURRED WHILE NULL JOB ; WAS RUNNING? IF YES, RESTORE ACS ; ILL UUO LOSED ACS JEN @USRPC ;DISMISS CHANNEL(IF INTERRUPT IN PROGRESS) ;THE NULL JOB -;RUNS IN USER MODE WITH PC=1 AND COUNTS AND AC 0 +;RUNS IN USER MODE WITH PC=1 AND COUNTS IN AC 0 EXTERNAL APRNUL,TIME,THSDAT,MIDNIT,NULERR NULJB: -IFN FTCHECK, +;THEN ADD ^C ;CALL: MOVEI TAC,ADR. OF MESSAGE ; PUSHJ PDP,PHOLD @@ -528,7 +528,7 @@ EXTERN PRJPRG PHOLD: PUSHJ PDP,CONMES ;MOVE MESSAGE TO TTY OUTPUT BUFFER ; FALL INTO HOLD -;ROUTINE TO STOP JOB, SET ERROR BIT. +;ROUTINE TO STOP JOB, SET ERROR BIT, ;AND ADD "^C INTERNAL HOLD,HOLD1 @@ -541,7 +541,7 @@ HOLD: PUSHJ PDP,INLMES ./ HOLD1: PUSHJ PDP,TTYSTC ;MAKE SURE TTY STAYS IN MONITOR MODE - ; AND START TTYP TYPING OUTMESSAGE + ; AND START TTY TYPING OUT MESSAGE ; FALL INTO ESTOP ;ROUTINE TO STOP USER AND FLAG AS ERROR STOP @@ -553,9 +553,9 @@ EXTERNAL SCHEDF,JOB,CPOPJ ESTOP: JUMPE ITEM,CPOPJ ;IS THIS ERROR IN JOB 0? MOVSI TAC,JACCT ;NO, CLEAR ACCOUNTING BIT(IN CASE LOGGING - ANDCAM TAC,JBTSTS(ITEM) ;IN OR OUT0 SO USER CAN USE CONTROL C + ANDCAM TAC,JBTSTS(ITEM) ;IN OR OUT) SO USER CAN USE CONTROL C ; TO RECOVER -ESTOP1: MOVSI TAC,JERR ;SSET ERROR BIT IN JOB STATUS WORD +ESTOP1: MOVSI TAC,JERR ;SET ERROR BIT IN JOB STATUS WORD IORM TAC,JBTSTS(ITEM) ;SO JOB CAN NOT CONTINUE(CONT COM.) CAME ITEM,STUSER ;SYSTEM TAPE USER? JRST STOP1 ;NO @@ -563,33 +563,33 @@ ESTOP1: MOVSI TAC,JERR ;SSET ERROR BIT IN JOB STATUS WORD PUSHJ PDP,DEVSRC ;SYSTEM ERROR IF NOT FOUND JSP DAT,ERROR PUSHJ PDP,RELEA9 ;YES, RELEASE SYSTEM TAPE WITHOUT WAITING - ;ROUTINE TO STOP NY JOB FROM BEING SCHEDULED + ;ROUTINE TO STOP ANY JOB FROM BEING SCHEDULED ;CALL: ; MOVE ITEM, JOB NUMBER ; PUSHJ PDP, STOP1 ; EXIT ;RETURN HERE IMMEDIATELY, IF CALLED FROM HIGHER ;PRIORITY PI CHANNEL THAN CLK(LOWEST), OTHERWISE WHEN JOB IS RUNABLE ;CALLED FROM COMMAND DECODER WHEN C TYPED IN BY USER -;OR ON ANY ERROR MESSAGE(SFE PREVIOUS PAGE) +;OR ON ANY ERROR MESSAGE(SEE PREVIOUS PAGE) INTERNAL STOP1 EXTERNAL JBTSTS,PJBSTS,REQTAB,JOB,STUSER,MAXQ,AVALTB -STOP1: MOVSI TAC,RUN - CONO PI,PIOFF ;DONE AT INTERRUPT LEVEL HIGHER THEN DT LEVEL - CAME ITEM,STUSER ;IS THIS JOB CURRENTLY USING THE SYTEM TAPE? +STOP1: MOVSI TAC, RUN + CONO PI, PIOFF ;DONE AT INTERUPT LEVEL HIGHER THAN DT LEVEL + CAME ITEM,STUSER ;IS THIS JOB CURRENTLY USING THE SYSTEM TAPE? TDNN TAC,JBTSTS(ITEM) ;NO, IS RUN BIT OFF IN JOB STATUS WORD JRST STOP1A ;YES ANDCAM TAC,JBTSTS(ITEM) ;NO, SO CLEAR IT - CONO PI,PION + CONO PI, PION LDB TAC,PJBSTS ;GET JOB WAIT QUEUE CODE(IF ANY) CAIG TAC,MAXQ ;DOES STATE HAVE Q ? SOSL REQTAB(TAC) ;YES. REDUCE IT. JRST STOP1A ;NO SOSGE AVALTB(TAC) ;YES REDUCE COUNT SETZM AVALTB(TAC) ;CLEAR AVAL FLAG IF NO ONE WAITING -STOP1A: CONO PI,PION ;MAKE SURE PI ON - CAME ITEM, JOB ;NO. IS THIS JONB CURRENT USER +STOP1A: CONO PI, PION ;MAKE SURE PI ON + CAME ITEM, JOB ;NO, IS THIS JOB CURRENT USER INTERNAL FTSWAP @@ -601,7 +601,7 @@ IFN FTSWAP,< > SKIPL TAC,JBTSTS(ITEM) ;RUN FLAG OFF? - TLNN TAC,JERR ;YES, ERROR FLAG ON? + TLNN TAC,JERR ;YES. ERROR FLAG ON? JRST STOP2 ;NO SETOM SCHEDF ;YES, FORCE RESCHEDULING EVEN IF JOB IN EXEC MODE JRST STOP2 ;YES, MAKE CLK RESCHEDULE ANOTHER JOB @@ -659,7 +659,7 @@ MONJOB: PUSHJ PDP,MSTART ;START WITH PC IN MONITOR ;SETS UP ITEM, WITH JOB NO.; PROG WITH RELOCATION, AND PDP ;WITH PUSH DOWN LIST ADR. IN JOB DATA AREA ;USED BY KJOB,CORE 0,SAVE,GET,RUN,R,REASSIGN AND FINISH COMMANDS -;CALL: MOVEI TAC1,MONITOR JOB START ADDRESS +;CALL: MOVEI TAC1,MONITOR JOB STOP ADDRESS ; JSP TAC,MONSTR ; RETURN WITH ACS PDP,PROG,JDAT, AND ITEM SETUP @@ -669,13 +669,13 @@ EXTERNAL JOB,JBTADR,MJOBPD,JOBPDL,TTYFNU,JBTDAT MONSTR: MOVE ITEM,JOB ;CURRENT JOB NUMBER MOVE JDAT,JBTDAT(ITEM) ;ADR. OF JOB DATA AREA IFN JDAT-PROG,< - MOVE PROG,JBTADDR(ITEM) ;JOB RELOCATION + MOVE PROG,JBTADR(ITEM) ;JOB RELOCATION > MOVSI PDP,MJOBPD ;MINUS LENGTH OF SYSTEM PD LIST HRRI PDP,JOBPDL(JDAT) ;FIRST LOC.-1 OF PD LIST - PUSH PDP,TAC1 ;SAVE STOP ADDRESS + PUSH PDP,TAC1 ;SAVE STOP ADRRESS JRST (TAC) ;RETURN AND DO MONITOR JOB - ; WITH TT DDB,OUTPUT BYTE POINTER, AND JOB NO. + ; WITH TTY DDB,OUTPUT BYTE POINTER, AND JOB NO. ;ROUTINE TO SET JOB STATE TO BE SCHEDULED TO RUN ;WITH SPECIFIED STARTING ADDRESS INCLUDING PC FLAGS ;CALLED ONLY WHEN JOB IN CORE AND AFTER JOB HAS BEEN @@ -695,22 +695,22 @@ EXTERNAL JOBPC,JOBDAC,JOBD17,TTYSET,JOBOPC,JOBPD1 USTART: MOVE TAC,JOBPC(JDAT) ;GET OLD PC TLNE TAC,USRMOD ;IS IT IN USER MODE TOO? JRST USTRT1 ;YES, DUMP ACS AND PC FLAGS ARE ALREADY HIS - MOVEI TAC,JOBDAC(JDAT) ;NO. MOVE USERS(UUO) ACS TO DUMP ACS - HRL TAC,JDAT ;SOURCE=REL, 0,DEST,=JOBDAC IN JOB DATA AREA + MOVEI TAC,JOBDAC(JDAT) ;NO, MOVE USERS(UUO) ACS TO DUMP ACS + HRL TAC,JDAT ;SOURCE=REL. 0,DEST.=JOBDAC IN JOB DATA AREA BLT TAC,JOBD17(JDAT) ;MOVE ALL ACS MOVE TAC,JOBPD1(JDAT) ;UUO PC HAS LAST PC HRRI TAC,-1(TAC) ;SUBTRACT 1 FROM RIGHT HALF AND - ; PRESERVE LH PC FLAGS + ; PRESERVE LH PC FLAGS. ; (RH=0 ON HALT 0 OR FIRST START) USTRT1: MOVEM TAC,JOBOPC(JDAT) ;STORE OLD PC FOR USER TO LOOK AT HLL TAC1,TAC ;PRESERVE USER APR FLAGS TLO TAC1,USRMOD ;MAKE SURE NEW PC IN USER MODE TLZ TAC1,37 ;MAKE SURE NO INDIRECT BITS OR INDEX FIELD - + MSTART: MOVEM TAC1,JOBPC(JDAT) ;STORE NEW PC MOVSI TAC,JERR+WTMASK ANDCAM TAC,JBTSTS(ITEM) ;CLEAR ERROR AND WAIT STATUS BITS - JRST TTYSET ;SET TTY STATE TO INITAL COND. + JRST TTYSET ;SET TTY STATE TO INITIAL COND. ; TTYUSR OR TTYURC SHOULD BE CALLED ; TO INDICATE WHETHER TTY TO USER OR EXEC MODE ; AND THAT JOB IS TO RUN(RUN BIT =1) WHEN @@ -720,9 +720,9 @@ MSTART: MOVEM TAC1,JOBPC(JDAT) ;STORE NEW PC ;ROUTINE TO SET JOB STATUS RUN BIT(RUN) ;CALLED BY SCANNER SERVICE WHEN TTY MONITOR COMMAND -;RESPONSE FINISHES, THIS ACTION IS ENABLED BY CALLING -;TTYUSR. OR TTYURC IN SCNSER -;CALL: MOVE ITEM,JOB NUMBER +;RESPONSE FINISHES. THIS ACTION IS ENABLED BY CALLING +;TTYUSR, OR TTYURC IN SCNSER +;CALL: MOVE ITEM,JOB NUMBER ; PUSHJ PDP,SETRUN INTERNAL SETRUN @@ -736,7 +736,7 @@ SETRUN: LDB TAC,PJBSTS ;GET JOB STATUS WAIT QUEUE CODE JRST SETR1 ;OTHERS WAITING? AOSG AVALTB(TAC) ;MAKE AVAILABLE SETOM AVALTB(TAC) ;FLAG AS JUST AVAILABLE, BECAUSE - ; NO JONB WAS USING DEVICE. SCHEDULER + ; NO JOB WAS USING DEVICE. SCHEDULER ; WILL SCAN THIS QUEUE SETR1: MOVSI TAC,RUN ;SET RUN BIT IN JOB STATUS WORD IORM TAC,JBTSTS(ITEM) @@ -753,8 +753,7 @@ IFN FTSWAP,< REQUE: MOVSI TAC,JRQ ;MARK JOB TO BE REQUEUED WITH JRQ BIT TDNN TAC,JBTSTS(ITEM) ;INCREMENT COUNT ONLY ONCE FOR EACH JOB - AOS QJOB ;INCREMENT COUNT OF NO. OF JOBS WAITING TO BE REUEUED - + AOS QJOB ;INCREMENT COUNT OF NO. OF JOBS WAITING TO BE REQUEUED IORM TAC,JBTSTS(ITEM) ;SET REQUE BIT FOR SCHEDULER POPJ PDP, @@ -786,9 +785,9 @@ WAKE: MOVEI TAC1,RNQ ;RUN QUEUE CODE ANDCAM TAC,JBTSTS(ITEM) ;SO IT CAN PUT ANOTHER ONE IN LDB TAC,PJBSTS ;GET QUEUE CODE CAIE TAC,SLPQ ;IS JOB STILL SLEEPING? - POPJ PDP, ;NO, RETURN TO CLOCK ROUTINE + POPJ PDP, ;NO. RETURN TO CLOCK ROUTINE DPB TAC1,PJBSTS ;YES, STORE RUN QUEUE CODE - ; (CONTROL C, START CAN GET JOB OUT SLEEP) + ; (CONTROL C, START CAN GET JOB OUT OF SLEEP) JRST SETR2 > ;ROUTINE TO GET DATA CONTROL AND ANOTHER SHARABLE DEVICE @@ -811,7 +810,7 @@ GETWT: PUSHJ PDP,DVWAT1 ;NOT AVAIL., GO WAIT FOR IT SOSL REQTAB(AC1) ;REDUCE REQ. COUNT FOR OTHER ; SHARABLE DEVICE. SETOM AVALTB(AC1) ;SET AVAILABLE IF OTHER JOBS WAITING - JFCL DCREQ ;ARGUMENT FOR DCQAIT + JFCL DCREQ ;ARGUMENT FOR DCWAIT PUSHJ PDP,DCWAIT ;WAIT FOR DATA CONTROL FREE MOVE AC1,@(PDP) ;INCREMENT REQ. COUNT AOSN @AC1 ;NOW IS SHARABLE DEVICE FREE? @@ -839,7 +838,7 @@ EXTERNAL JOB,REQTAB MTWAIT:DTWAIT:DCWAIT:STWAIT:DAWAIT:MQWAIT:AUWAIT: DVWAIT: MOVE AC1,(PDP) ;GET ADR. OF CALLER - MOVE AC1,-2(AC1) ;GEET AOSLE XXREQ INSTRUCTION + MOVE AC1,-2(AC1) ;GET AOSLE XXREQ INSTRUCTION JRST .+2 DVWAT1: MOVE AC1,@-1(PDP) ;GET ADR. OF CALLER OF THIS ROUTINE SUBI AC1,REQTAB ;COMPUTE WAIT-STATE QUEUE CODE @@ -853,16 +852,16 @@ PJBS1: POINT JWSIZ,JBTSTS(AC3),JWPOS ;BYTE POINTER TO JOB STATUS ; WORD WAIT QUEUE CODE ;ROUTINE TO SET JOB TO RUN AFTER IT HAS BEEN STOPPED ;BECAUSE IT HAD TO WAIT FOR IO TO COMPLETE FOR SOME DEVICE -;EACH SERVICE ROUTINE WILL AT INTERRUPT LEVEL -;CHECK EACH TIME IT FINISHED A TASK(RUNFFERFUL) +;EACH SERVICE ROUTINE AT INTERRUPT LEVEL +;CHECK EACH TIME IT FINISHED A TASK(BUFFERFUL) ;TO SEE IF THE JOB USING THE DEVICE HAS ;PREVIOUSLY CAUGHT UP WITH DEVICE AND HAS BEEN STOPPED -;CALL: MOVE DEVDAT,ADR, OF DEVICE DATA BLOCK +;CALL: MOVE DEVDAT,ADR. OF DEVICE DATA BLOCK ; MOVE IOS,DEVIOS(DEVDAT) ;GET DEVICE IO STATUS WORD FROM DDB -; TLZE IOS,IOW ;IS JOB AN IO WAIT FOR THIS DEVICE? +; TLZE IOS,IOW ;IS JOB IN AN IO WAIT FOR THIS DEVICE? ; PUSHJ PDP,SETIOD ;YES, GO FLAG JOB TO START UP AGAIN ; RETURN -;SETS THE JOB QUEUE WAIT CODE TO WSQ IN JOB STATUS WORD, +;SETS THE JOB QUEUE WAIT CODE TO WSQ IN JOB STATUS WORD. ;THE SCHEDULER THEN SEES THAT THIS JOB HAS ITS ;IO WAIT SATISFIED AND IS WAITING TO BE RUN AGAIN @@ -872,15 +871,15 @@ EXTERNAL WSQ,WSAVAL,TSQ,TSAVAL,JOB,PJOBN PJBS2: POINT JWSIZ,JBTSTS(TAC),JWPOS ;BYTE POINTER TO JOB STATUS ; WORD QUEUE CODE -STTIOD: MOVEI TAC1,TSQ ;SET TTY IO WAIT SATISFIED QUEUE CODE +STTIOD: MOVEI TAC1,TSQ ;SET TTY IO WAIT SATISFIED QUEUE CODE AOS TSAVAL - JRST SETIO1 + JRST SETID1 SETIOD: MOVEI TAC1,WSQ ;REQUE TO WAIT SATISFIED Q - AOS WSAVAL ;INCR, NO, OF JOBS WITH IO WAIT - ; SATISFIED, NON-ZERO WSAVAL WILL - ; CAUSE SCHED, TO SCAN FOR IO + AOS WSAVAL ;INCR. NO. OF JOBS WITH IO WAIT + ; SATISFIED. NON-ZERO WSAVAL WILL + ; CAUSE SCHED. TO SCAN FOR IO ; SATISFIED JOB. -SETIO1: LDB TAC,PJOBN +SETID1: LDB TAC,PJOBN DPB TAC1,PJBS2 ;IN JOB STATUS WORD INTERNAL FTSWAP @@ -892,8 +891,8 @@ IFN FTSWAP,< IORM TAC1,JBTSTS(TAC) ;SET REQUEUEING BIT FOR SCHEDULER > NULTST: SKIPE JOB ;IS NULL JOB RUNNING? - POPJ PDP, ;NO LET OTHER JOB RUN TILL SCHEDULER IS TRAPPED TO - ;ROUTINE TO CAUSE CLK TO ROUTINE TO RESCHEDULE + POPJ PDP, ;NO LET OTHER JOB RUN TILL SCHEDULER IS TRAPPPED TO + ;ROUTINE TO CAUSE CLK ROUTINE TO RESCHEDULE ;CALLED AT ANY LEVEL ;CALL: PUSHJ PDP,STOP2 ; RETURN IMMEDIATELY EXCEPT IF AT UUO LEVEL @@ -904,24 +903,24 @@ EXTERNAL PICLK,CLKFLG STOP2: CONO PI,PIOFF ;PREVENT CLOCK INTERRUPT DURING STOP2 CODE SETOM CLKFLG ;SET FLAG TO INDICATE CLK INTERRUPT - ; EVEN THOUGH CLK INTERRUTP IS NOT A ATIME INTERRUPT - CONO PI,PICLK ;TURN PI BACK ON AND REQUESST INTERRUPT TO + ; EVEN THOUGH CLK INTERRUPT IS NOT A TIME INTERRUPT + CONO PI,PICLK ;TURN PI BACK ON AND REQUEST INTERRUPT TO ; CLK PI CHANNEL(LOWEST PRIORITY CHANNEL) POPJ PDP, ;INTERRUPT IMMEDIATELY IF AT UUO LEVEL - ;ROUTINE TO WAIT TILL DEVICE CATCHES UP WITH USER AND BECOMES INCTIVE + ;ROUTINE TO WAIT TILL DEVICE CATCHES UP WITH USER AND BECOMES INACTIVE ,CALLING SEQUENCE , PUSHJ PDP, WAIT1 -, EXIT ALWAYS RETURN HERE +, EXIT ALWAYS RETURNS HERE -,IF DEVICE IS INACTIVBE (IOACT=0), RETURNS TO EXIT, OTHERWISE, SETS -,IOW:=1 AND ENTERS WAIT UNLESS IOCT BECOMES ZERO BEFORE THE -,JUMP IS MADE, IN WHICH CASE IT SETS IOW:=0 AND RETURNS TO EXIT, -,ON LEAVING THE WIAT STATE, RETURNS TO EXIT. +,IF THE DEVICE IS INACTIVE (IOACT=0), RETURNS TO EXIT. OTHERWISE. SETS +,IOW:=1 AND ENTERS WAIT UNLESS IOACT BECOMES ZERO BEFORE THE +,JUMP IS MADE, IN WHICH CASE IT SETS IOW:=0 AND RETURNS TO EXIT. +,ON LEAVING THE WAIT STATE, RETURNS TO EXIT. ,THIS ROUTINE PREVENTS THE STATE IOACT=0 AND IOW=1 FROM OCCURING ,CALLING SEQUENCE , PUSHJ PDP, WSYNC , EXIT ALWAYS RETURNS HERE -,SETS IOW:=1 AND ENTERS WAIT ROUTINE. RETURNS TO EXIT WHEN IOACT=0 +,SETS IOW:=1 AND ENTERS WAIT ROUTINE. RETURNS TO EXIT WHEN IOACT=0. INTERNAL WAIT1 @@ -932,7 +931,7 @@ WAIT1: MOVE IOS,DEVIOS(DEVDAT) JRST WAIT1 ;WSYNC IS CALLED TO WAIT UNTIL SETIOD IS CALLED BY INTERRUPT SERVICE ROUTINE -;IE UNTIL CURRENT BUFFER ACTIVITY IS COMPLETE +;IE UNTIL CURRENT BUFFER ACTIVITY IS COMPLETED ;CALLED ONLY FROM UUO LEVEL ;CALL: MOVE DEVDAT,ADR. OF DEVICE DATA BLOCK ; PUSHJ PDP,WSYNC @@ -963,7 +962,7 @@ WSYNC: MOVSI IOS,IOW ;SETUP DEVICE IO WAIT BIT ; WITH ACS 0-14 OCTAL RESTORED ; RETURN WHEN IO-WAIT FINISHED WSYNC1: CONO PI, PION - ANDCAB IOS, DEVIOS(DEVDAT) ;CLEAR DEVIVCE IO-WAIT BIT + ANDCAB IOS, DEVIOS(DEVDAT) ;CLEAR DEVICE IO-WAIT BIT POPJ PDP,