File: CHKPNT.RA of Tape: Various/ETH/fc-files
(Source file text)
/CHKPNT CHECKPOINTING RUTINE FOR ETOS /SAME EFFECT AS IF(ETOS)CALL WAIT(-1,0,0) BUT USES MUCH LESS CORE /ALSO PRIV XX0X CLEARS CHECK /A=ETTST IS SAME AS IF(ETOS) BUT DOES NOT INITIALIZE IO RUTINES SYSCAL=6200 ACL=7701 MQA=7501 MQL=7421 BSW=7002 ETSKP=6107 ENTRY CHKPNT BASE 0 ENTRY ETTST SECT8 #CHK ETTST, STARTD SETX #XR FLDA 30 FSTA RTN STARTF TRAP4 ETOS /ELSE CHECK FOR ETOS XTA 0 RTN, FNOP JA . CHKPNT, STARTD SETX #XR 0210 FSTA RTN STARTF TRAP4 ETOS XTA 0 JEQ RTN /IF NOT ETOS RETURN TRAP4 WAITER JA RTN WAITER, 0 /WAITING SUBROUTINE TAD JOBNUM MQL SYSCAL BSW CIA DCA MYJOB /SAVE MY JOB NR MLOOP, TAD P300 DCA CJOB /COUNTER FOR CURRENT JOB START AT 3 LOOP2, TAD DATAPK MQL TAD P5 SYSCAL MQA /CHECK PRIV WORD AND P70 SNA CLA /ONLY PRIORITY 0 AVOIDS CHKPOINT JMP EXIT TAD DATAPK MQL TAD CJOB TAD P20 /CHECK ACCOUNT NR SYSCAL SZA CLA JMP EXIT /REACHED MAXJOB MQA SNA CLA JMP LOOP /NOT ACTIVE TAD CJOB TAD MYJOB SNA CLA /WAS IT OUR JOB ? JMP LOOP /YES CHECK NEXT TAD DATAPK MQL CLA IAC /STATUS = ENTRY 1 TAD CJOB SYSCAL MQA AND P303 /SCALE+INPUT+CLOCKS SZA CLA JMP LOOP /IF NONE OF THESE WAIT CLA IAC RAL MQL TAD M100 SYSCAL JMP MLOOP LOOP, TAD CJOB TAD P100 /INCREMENT BITS 0-5 DCA CJOB JMP LOOP2 EXIT, CDF CIF 0 JMP% WAITER #XR, ORG .+10 ORG #XR ARG, 1 CJOB, 0 MYJOB, 0 ORG #XR+10 TEXT +CHKPNT+ #RET, SETX #XR DECIMAL M100, -100 /=10 SEC OCTAL P20, 20 P300, 300 P100, 100 DATAPK, 11 JOBNUM, 15 P303, 303 P5, 5 P70, 70 ETOS, 0 ETSKP SKP JMP ETOSR DCA ARG /CLEAR OUT IF NOT ETOS ETOSR, CDF CIF 0 JMP% ETOS