22FL ...#SEG REALTIME [JOHN P. TITORENKO 22^= #OPT K0REALTIME=0 23DW #OPT K6REALTIME=K6GREATGEO>K6ALLGEO 23YG #LIS K0REALTIME>K0GREATGEO>K0ALLGEO 24D6 8HREALTIME 24XQ # 25CB # 25X2 # THE REALTIME COMMAND . 26BL # IF THE PARAMETER OF THE COMMAND IS THE CHARACTER STRING 'ON' 26W= # THEN THE ROUTINE FIRST OF ALL CHECKS THAT THE USER HAS SUFFICIENT 27*W # REALTIME BUDGET AVAILABLE AND , IF HE HAS , THEN SETS A MARKER 27TG # BIT TO INDICATE THAT REALTIME WILL TAKE EFFECT FROM THE NEXT 28*6 # ENTER/RESUME COMMAND . 28SQ # IF THE COMMAND PARAMETER IS THE CHARACTER STRING 'OFF' THEN THE 29#B # ROUTINE UNSETS A REALTIME MARKER TO ALLOW THE PROGRAM TO BE 29S2 # TREATED AS ANY OTHER PROGRAM . 2=?L # BUDGETING TAKES PLACE ON BOTH PATHS UNLESS THE PROGRAM IS SYSTEM 2=R= # ISSUED OR SYSTEM STARTED . 2?=W # ANY PARAMETER OTHER THAN 'ON' OR 'OFF' OR A NULL PARAMETER RESULTS 2?QG # IN A COMMERR. A COMERR IS ALSO OBEYED IF INSUFFICIENT REALTIME 2#=6 # BUDGET IS AVAILABLE FOR USE . 2#PQ # 2*9B # SUBROUTINE TO SET UP MONITORING FILE MESSAGES 2*P2 # 2B8L SEGENTRY K1REALTIME,XX1R 2CMG SEGENTRY K3REALTIME,XX3R 2DN# ... FSHENTRY K4REALTIME,XX4R,,XX4R 2DPW ... FSHENTRY K5REALTIME,XX5R,,XX5R 2DRD ... FSHENTRY K7REALTIME,XX7R,,XX7R 2DT2 ...# 2DWJ ... FSHCODE AORB 2DY6 ...( 2D^N ...ULINK [UNANTICIPATED CLOSEDOWN LINK 2F3= ... LINK REALTIME,7 2F4S ...) 2F6B XPARA 2FL2 SBX 6 FX1 [CHANGE LINK 2G5L #SKI JNLPACK<1$1 2GK= ( 2H4W LDN 4 4 2HJG OUTBLOCK 4 [SET UP MONOUT BLOCK 2J46 TIMECON CLEANCT 2JHQ LDN 1 8 2K3B OUTPARAM 1,ACOMMUNE1 [ACTUAL TIME 2KH2 OUTMILL [MILL TIME PARAMETER 2L2L ) 2LG= #SKI JNLPACK 2L^W ( 2MFG OUTBLOCN 8 [SET UP MONOUT BLOCK 2M^6 OUTPARC TIMENOW,JOBMILL 2NDQ #SKI JNLPER 2NYB OUTPMILL 2PD2 ) 2PXL ADX 6 FX1 2QC= EXIT 6 0 2QWW # 2R35 ...TELLHLS [INFORM HLS OF REALTIME EVENT 2R4G ... SBX 7 FX1 2R5X ... LDX 2 FX2 2R7# ... HLSINFORM XBRKIN,REALTIME,JOBNO(2),6 2R8P ...XBRKIN 2R=6 ... ADX 7 FX1 2R?H ... EXIT 7 0 2RBG PON 4HON 2RW6 POFF 4HOFF 2S*Q X4 +4 2STB XNUM +9 2T*2 XPR 4HPR 2TSL MSK #77777377 [MASK FOR ALL EXCEPT B15 OF A WORD 2W72 ...MILLP #36363636 [DEFAULT MILL PRI.FOR RE OFF IS 30 2W8# ...REMILL #74727170 2W9L ... +0 2W#= # 2WRW XX1R 2X?G # 2XR6 LDN 5 0 2Y=Q PARAPASS 5 2YQB MHUNT 3,CPB,CUNI 2^=2 LDX 5 ANUM(3) 2^PL BZE 5 XMIS [ERROR IF NULL PARAMETER 329= ADN 5 1 32NW BZE 5 XMIS [ERROR IF NON EXISTENT PARAMETER 338G LDX 6 POFF(1) 33N6 LDX 7 APARA(3) 347Q BXU 6 7,XNOTOFF 34MB LDN 5 0 3572 CALL 6 XOFF [ DO REALTIME OFF 35BR ... LDN 6 0 [=> RE OFF TO HLS 35FB ... CALL 7 TELLHLS 35LL ENDCOM 366= # 36KW # 375G XNOTOFF 37K6 LDX 6 PON(1) 384Q TXU 6 7 38JB BCS XSTR [BRANCH IF NOT 'RT ON' 3942 XON ['REALTIME ON' ROUTINE 3DW2 FJOCA 3,FX2 [POINT TO APPROPRIATE JOB BLOCK 3F*L RTTEST SBIT,3 [JUMP IF RE ON COMMAND ISSUED 3FT= SPRIVTEST JSSTART,3,UDBUG [IS JOB 00STEM STARTED ? 3G#W BRN SBIT [BRANCH IF YES 3HRQ UDBUG SMO JCSIZE(3) [PROG SIZE 3J?B LDN 5 0 3KR7 ...# 3KS4 ...XX4R 3KS^ ... FSHCODE B,XENDB1 3KTW ...( 3KWR ...# REALTIME BUDGET CHECKING FOR SHARED FILESTORE IS DEALT WITH IN 3KXN ...# 'A' TO ALLOW PROPER CLOSEDOWN ACTION TO BE TAKEN IF 'B' FAILS 3KYK ...# WITH REALTIME PROGRAMS RUNNING 3K^G ...# 3L2C ... TRANSBEG FSHNOID,REALTIME,4,NOBLOCKS,,ACOMMUNE1 3L3# ...# 3L49 ... BRN XBRK [BREAK IN WHILE IN 'A' 3L56 ...# 3L63 ...XENDB1 3L6Y ...) 3L7T ... FSHSKIP B,XNOTB1 3L8Q ...( 3L9W OPENBUDG XBRK [OPEN DICTIONARY 3LPG BUDGINCR GREALTIME,5 [INCREMENT REALTIME CORE USED 3M96 TESTREPNOT OK,XNOK [BRANCH IF BUDET INCREMENT WAS NOT OK 3MNQ XCL CLOSBUDG 3MPB ...# 3MQ2 ...XNOTB1 3MQL ...) 3MR= ... FSHCODE A,XENDA1 3MRW ...( 3MSG ... NOTALIEN XENDA1,2 [JIF JOB IS AT HOME IN 'A' 3MT6 ...# 3MTQ ...# WE NOW HAVE TO GUARD AGAINST THE PROBLEM THAT REALTIME BUDGET 3MWB ...# GETS 'LOST' IN 'B' M/C BREAKS UNTIL THE WHOLE SYSTEM IS RELOADED 3MX2 ...# AND GOES THROUGH BACKMAP. TO DO THIS WE SET UP A /FSHAMBLES 3MXL ...# BLOCK INDICATING THE SIZE OF THE REALTIME CORE IMAGE FOR THE 3MY= ...# JOB. THIS WILL BE PICKED UP BY UNANTICIPATED CLOSEDOWN. 3MYW ...# 3M^G ... SETNCORE 2,2,FSH,FSHAMBLES [GET UNANT. CLOSEDOWN BLOCK 3N26 ... LDX 0 ULINK(1) [& SET INTO IT A LINK AND THE 3N2Q ... STO 0 FSHCDLINK(2) [SIZE OF THE CURRENT REALTIME 3N3B ... STO 5 FSHWORK(2) [CORE IMAGE 3N42 ... LDN 2 1 [SET 'OK' OFFSET FOR TRANSFIN 3N4L ...# 3N5= ...XFIN TRANSFIN 2 [RETURN TO 'B' MACHINE 3N5W ...# 3N6G ...XENDA1 3N76 ...) 3N8B CALL 6 XPARA 3NN2 MONOUT JRTST [OUTPUT LOGGING MESSAGE 3P7L PERCOUNT 3PLR ...SBIT 3Q5Y ... LDN 7 2 3QK5 ... PARANEXT ,,7 [GET SECOND PARA TO RE COMMAND 3R4= ... TESTREP2 UNPAIR,TERR [ERROR IF CONTAINS UNPAIRED PARENTHES 3R9? ...#UNS ANSTOOMANY 3RB# ... TESTREP2 TOOMANY,TERR [ERROR IF OVER 24 PARAS 3RHC ... MHUNT 2,CPB,CUNI 3S2J ... NGX 0 ANUM(2) [JUMP IF.... 3SFP ... BPZ 0 PTR [....SECOND PARA NULL OR NON-EXISTENT 3SYW ...[ 3TD3 ...[ 3TX8 ...[ 3WB* ...[ 3WTG ... LDX 0 APARA(2) [CHECK FOR.... 3X#M ... ERX 0 XPR(1) [....PARAMETER STARTING WITH.... 3XRS ... SRL 0 12 [....THE CHARACTER STRING.... 3Y=^ ... BNZ 0 TERR [....PR (J TO TERR IF NOT) 3YQ6 ...[ 3^9? ...[ 3^ND ...[ 427K ...[ 42LQ ... PARANUMB 7 [CHECK FOR.... 435X ... SBN 7 2 [....TWO PARAMETERS I.E. PR & (*).... 43K4 ... BNZ 7 TERR [....CONTAINED IN CPB,CMULTI 4449 ... MFREE CPB,CUNI 44HB ...[ 452H ...[ 45FN ...[ 45YT ...[ 46D2 ... PARAPASS 46X7 ... MHUNT 2,CPB,CUNI [GET NEXT CPB,CUNI 47B# ... LDX 0 ANUM(2) [CHECK FOR 2ND HALF OF .... 47TF ... SRL 0 12 [....2ND PARAMETER TO RE COMMAND.... 48#L ... SBN 0 2 [....IS COMPOSITE, I.E. TYPE 2.... 48RR ... BNZ 0 TERR [....J IF NOT 493G ... PARABRAC 495D ... MHUNT 2,CPB,CUNI 497B ... LDX 0 ANUM(2) 499# ... BZE 0 TERR [J IF NOTHING IN BRACKETS 49?= CHNUMCON 1 49QW TESTREP2 OK,TOK 4=2N ...TERR LDN 7 0 4==G ... SPARANOT 2,7 4=G# ... ERROR APFERR 4=Q6 BRN PTR 4?9Q TOK FJOCA 3,FX2 4?PB UNSETRTP 3 4#92 LDX 4 3 4#NL LDX 7 JOBNUM(3) 4*8= MHUNT 3,CPAR,GNUMCON 4*MW LDX 5 A1(3) 4B7G TOK1 SMO 5 4BM6 LDX 6 A1(3) 4C6Q BNG 6 TERR 4CLB TXL 6 X4(1) 4D62 BCC TERR 4DKL SETRTP 4,6 4F5= BCT 5 TOK1 4FCM ...#UNS ICT 4FQ4 ... APREALT HIGH 4G4G FJOCA 3,FX2 4GJ6 BRN RTP 4GQB ...PTR 4GYL ...#UNS ICT 4H6W ... APREALT ON 4H*6 ... FJOCA 3,FX2 4HHB UNSETRTP 3 4J32 LDX 7 JOBNUM(3) 4K2= RTP VFREE CPAR,GNUMCON 4K3C ...[ CALCULATE MEMBER PRIORITIES 4K3D ...[ 4K3F ... FPCACA 1,2 4K3G ... HUNT2 1,AOBRES,0 4K3H ... LDX 0 A1+7(1) 4K3J ... STO 0 ACOMMUNE1(2) 4K3K ... LDX 0 A1+9(1) 4K3L ... STO 0 ACOMMUNE2(2) 4K3M ... LDX 0 A1+11(1) 4K3N ... STO 0 ACOMMUNE3(2) 4K3P ... LDX 0 A1+8(1) 4K3Q ... STO 0 ACOMMUNE4(2) 4K3R ... LDN 5 4 4K3S ...XCALC1 4K3T ... SMO 5 4K3W ... LDX 0 ACOMMUNE1-1(2) 4K3X ... LDN 1 4 4K3Y ... BZE 0 XCALC3 4K3^ ... LDN 1 0 4K42 ... LDN 4 4 4K43 ...XCALC2 4K44 ... SMO 4 4K45 ... TXL 0 ACOMMUNE1-1(2) 4K46 ... ADN 1 0 4K47 ... BCT 4 XCALC2 4K48 ...XCALC3 4K49 ... SMO 5 4K4= ... STO 1 ACOMMUNE5-1(2) 4K4? ... BCT 5 XCALC1 4K4# ... LDN 4 4 4K4* ...XCALC4 4K4B ... SMO 4 4K4C ... LDX 1 ACOMMUNE5-1(2) 4K4D ... SRC 1 2 4K4F ... SMO FX1 4K4G ... LDCH 0 REMILL(1) 4K4H ... DCH 0 7 4K4J ... SRC 7 6 4K4K ... BCT 4 XCALC4 4K4L ...[ 4K54 ... FPCACA 1,2 4K68 ... ADN 1 AMR1 [START OF MILL PRI'S IN APET 4K6Q ... ORX 1 GSIGN [CHARACTER 2 IS MILL PRI. IN AMR'S 4K7# ... LDN 6 4 4K7W ...XAMR 4K8P ... SLC 7 6 4K9J ... DCH 7 0(1) [STORE MILL PRI.IN APET 4K=6 ... DCH 7 AMILLP(3) [ & IN JOB BLOCK 4K=N ...XAMR1 4K?= ... BCHX 3 £ 4K?S ... ADN 1 1 4K#B ... BCT 6 XAMR [J IF STILL MORE MEMBERS 4K#Y ... SBN 3 1 [RESET JOB BLOCK PTR. 4K*G ... SBN 1 AMR1+4 [RESET PCA PTR 4KB4 ... PCATEST 1,NORM [J IF NOT TP 4KBL ... FINDPUC 1,1 [AS TP,FIND PUC & STORE MILL PRI. 4KC8 ... ORX 1 GSIGN [ IN PUC'S APET 4KCF ... SLC 7 6 4KCQ ... DCH 7 AMR1(1) 4KD# ...NORM 4KDW ...) 4KFW TESTRTQ XEND,3 4K^G TESTRT SEND,3 4LF6 BRN SEND1 4LYQ SEND FPCAJO 2,3 4MDB MELRERING 2 4MY2 BRN XEND 4NCL SEND1 4NX= LDN 0 #400 [SET B15 OF JMISC TO INDICATE THAT RE 4PBW ORS 0 JMISC(3) [ COMMAND HAS BEEN ISSUED 4PWG #SKI CAMK7*G3 4QB6 SWAPOUT 588# ...XEND 589W ... LDN 6 1 [=> RE ON TO HLS 58?D ... CALL 7 TELLHLS 58*2 ... ENDCOM 58ND ... FSHSKIP B,XNOTB2 58TL ...( 592W # ROUTINE IF NOT ENOUGH REALTINE BUDGET LEFT 59GG XNOK TESTREP NOMORE,XCL [TEST IN CASE RT CAN STILL BE USED 5=26 CLOSE [CLOSE DIRECTORY 5=63 ...# 5=9Y ...XNOTB2 5=*T ...) 5=FQ XCER COMERR JNORT [ERROR AS NO REALTIME BUDGET FOR USE 5=^B # 5?F2 # THIS ROUTINE DOES THE REALTIME OFF. ALSO USED BY PROSTART. 5?YL # X6 = LINK 5#D= # 5#XW XOFF ['RT OFF' ROUTINE 5*CG SBX 6 FX1 5*X6 STO 6 AWORK1(2) 5B6Y ... STOZ BIGPROGCP [CORRECTS B9237 5B9H ...#UNS ICT 5B#6 ... APREALT OFF 5BBQ LDN 3 BJOBQ 5BWB XOFF1 LDX 3 FPTR(3) 5CB2 TXU 3 CXJO 5CTL BCC XOFF2 5D*= FLIPS JMISC(3),17 5DSW BRN XOFF1 5F#G XOFF2 5FS6 FJOCA 3,FX2 [LOCATE JOB BLOCK 5G?Q UNSETRTP 3 5GRB LDX 4 JOBNUM(3) 5HQL BNG 5 XUNI 5J== LDX 4 AEXCO(3) 5JPW BNZ 4 RPERL 5K9G XUNI 5KP6 TESTRT XUNPL,3 [BRANCH IF 'RT ON' EFFECTED 5L8Q TESTRTQ XTPR,3 [BRANCH IF 'RE ON' TO BE EFFECTED 5LNB LDX 6 AWORK1(2) 5M82 ADX 6 FX1 5MML EXIT 6 0 5N7= XUNPL UNPLUGRT [UNPLUG THE RT PROGRAM 5NLW FJOCA 3,FX2 [RELOCATE JOB BLOCK 5P6G XTPR SPRIVTEST JSSTART,3,SBBUD [TEST IF PROGRAM SYSTEM STARTED 5P?N ...#UNS IMR 5PDW ... LDX 7 ISISSMP [MILL PRI'S FOR SYSTEM JOBS 5PL6 BRN XBUNS [BRANCH IF IT WAS 5Q5Q SBBUD SMO JCSIZE(3) [PROG SIZE 5QKB NGN 5 0 5QL* ...# 5QM# ...XX5R 5QN? ... FSHCODE B,XENDB2 5QP= ...( 5QQ9 ...# AS WITH ESTABLISHING REALTIME PROGRAMS, FOR REALTIME OFF, WE 5QR8 ...# DEAL WITH BUDGET UPDATES IN 'A' 5QS7 ...# 5QT6 ... TRANSBEG FSHNOID,REALTIME,5,NOBLOCKS,,ACOMMUNE1 5QW5 ...# 5QX4 ... BRN XBRK [BREAK IN WHILE IN 'A' 5QY3 ...# 5Q^2 ...XENDB2 5Q^^ ...) 5R2Y ... FSHSKIP B,XNOTB3 5R3X ...( 5R52 OPENBUDG XBRK [OPEN DICTIONARY 5RJL BUDGINCR GREALTIME,5 [INCREASE USERS REALTIME BUDGET 5S4= CLOSBUDG [CLOSE DICTIONARY 5S4Y ...# 5S5L ...XNOTB3 5S6# ...) 5S72 ... FSHCODE A,XENDA3 5S7N ...( 5S8B ... NOTALIEN XENDA3,2 [JIF THIS IS AN 'A' MACHINE JOB 5S94 ...# 5S9Q ...# WE MUST NOW GET RID OF THE /FSHAMBLES BLOCK THAT WAS SET UP 5S=D ...# BY REALTIME ON 5S?6 ...# 5S?S ... LDX 1 ULINK(1) [LINK ADDR FOR BLOCK IDENTIFICATION 5S#G ...# 5S*8 ...XLOOKAGAIN 5S*W ... HUNT2J 2,FSH,FSHAMBLES,,(GEOERR) [LOOK FOR A /FSHAMBLES BLOCK 5SBJ ... BXU 1 FSHCDLINK(2),XLOOKAGAIN [JIF NOT THE RIGHT LINK ADDRESS 5SC= ... FREECORE 2 5SCY ... LDN 2 1 [SET 'OK' OFFSET FOR TRANSFIN 5SDL ... BRN XFIN 5SF# ...# 5SG2 ...XENDA3 5SGN ...) 5SHW CALL 6 XPARA [SET UP MESSAGE 5T3G MONOUT JRTFIN [OUTPUT MESSAGE 5TH6 PERCOUNT 5W2Q FJOCA 3,FX2 5W*7 ... LDN 7 0 5WGB XBUNS LDX 5 MSK(1) [UNSET B15 OF JMISC 5X22 ANDS 5 JMISC(3) 5X3^ ... STO 7 AMILLP(3) [STORE MILL PRI'S IN JOB BLOCK 5X4L ... FPCACA 3,2 5X5? ... ORX 3 GSIGN [MILL PRI IN CHARA.2 IN AMR'S 5X5Y ... LDN 6 4 [4 MEMBERS 5X6= ... STOZ 5 5X6K ... BRN YAMR1 5X7= ...YAMR 5X7X ... SRL 7 6 [GET MILL PRI FOR N-1 5X8J ...YAMR1 5X8M ... DCH 7 5 5X8Q ... BNZ 5 YAMR2 [IF JOBBLOCK MILL PRIORITY IS ZERO 5X8T ... LDN 5 30 [PCA MP IS DEFAULT OF 30 5X8Y ... DCH 5 7 5X93 ...YAMR2 5X99 ... SMO 6 5X9W ... DCH 7 AMR1-1(3) [MILL PRI FOR MEMBER N 5X=H ... BCT 6 YAMR [J IF ANY MEMBERS LEFT 5X?8 ... PCATEST 3,XNORM [J IF NOT TP 5X?T ... FINDPUC 3,3 5X#G ... ORX 3 GSIGN 5X*7 ... DCH 7 AMR1(3) [RESET PUC'S MILL PRI 5X*S ...XNORM 64TG LDX 6 AWORK1(2) 65*6 ADX 6 FX1 65SQ EXIT 6 0 66#B # 66S2 XMIS FREECORE 3 [FREE THE CPB/CUNI BLOCK 67?L COMERR JPARMIS [PARAMETER MISSING ERROR 67R= # 68=W XSTR COMERR ERMCH [PARAMETER NOT RECOGNISED 68QG # 6#MG # 6#PP ...XBRK 6#RY ... FSHCODE A,XENDA2 6#W7 ...( 6#YB ... NOTALIEN XENDA2,2 [JIF THIS IS AN 'A' MACHINE JOB 6*2K ...# 6*4S ...# WE RETURN TO 'B' BEFORE DEALING WITH BREAKIN 6*73 ...# 6*9= ... LDN 2 0 [SET BREAK IN OFFSET FOR TRANSFIN 6*?F ... BRN XFIN 6**N ...# 6*CX ...XENDA2 6*G6 ...) 6*J* ... MHUNT 3,CPB,CUNI [END OF COMMAND AFTER BREAK-IN 6*LQ FREECORE 3 6B6B COMBRKIN 6BL2 RPERL COMERR JRTPER [RT PERIPHS. STILL ALLOCATED 6MWW XX3R [ENTRY FOR RE OFF FROM PROSTART 6NBG NGN 5 1 6NW6 CALL 6 XOFF 6P*Q UP 6PTB # 6Q*2 # 9P4= # 9P4P ... FSHCODE A,XENDA4 9P58 ...( 9P5M ...XX7R 9P66 ...# 9P6K ...# DURING UNANTICIPATED CLOSEDOWN WE ARE ENTERED HERE IF THE 9P74 ...# JOB HAD A REALTIME CORE IMAGE IN 'B'. WE HAVE TO RETURN THE 9P7H ...# REALTIME BUDGET THAT WAS IN USE IN 'B' 9P82 ...# 9P8F ... MHUNTW 1,FSH,FSHAMBLES [FIND THE UNANTICIPATED CLOSEDOWN 9P8Y ... NGX 5 FSHWORK(1) [BLOCK AND RECOVER CORE IMAGE SIZE 9P9C ... FREECORE 1 [GET RID OF DATA BLOCK 9P9W ...# 9P=* ...# 9P=S ...# TO OVERCOME POSSIBLE PROBLEMS WITH BREAKIN BEING SET WHEN 9P?? ...# THE DICTIONARY IS OPENED, WE FIDDLE JOBEVENTS TO INHIBIT ANY 9P?Q ...# BREAKIN AND WE RESET IT AFTER THE BUDGET UPDATE IS COMPLETE 9P#9 ...# 9P#N ... LDX 4 JOBEVENTS(2) [HOLD ORIGINAL CONTENTS OF JOBEVENTS 9P*7 ... LDCT 0 #40 9P*L ... STO 0 JOBEVENTS(2) [FORCE 'INHIBIT BREAKIN' STATE 9PB5 ...# 9PBJ ... OPENBUDG (GEOERR) [OPEN DICTIONARY & READ USER'S ENTRY 9PC3 ... BUDGINCR GREALTIME,5 [UPDATE REALTIME BUDGET 9PCG ... CLOSBUDG 9PC^ ...# 9PDD ... STO 4 JOBEVENTS(2) [RESTORE ORIGINAL 'BREAKIN' STATE 9PDX ...# 9PFB ... TRANSDIE [RETURN TO NORMAL CLOSEDOWN CODE 9PFT ...# 9PG# ...XENDA4 9PGR ...) 9PHW MENDAREA 20,K99REALTIME 9Q3G #END ^^^^ ...23575621000100000000