22FL #SEG RELPER [JOHN BAILEY. 22PD ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982. 22^= #LIS K0RELPER>K0PUTPER>K0ALLGEO 23DW 8HRELPER80 23YG #OPT K6RELPER=K6ALLGEO 24D6 # 24XQ SEGENTRY K1RELPER,SK1RELPER 25CB #SKI ARETLO 25X2 SEGENTRY K11RELPER,SK11RELPER 26BL SEGENTRY K2RELPER,SK2RELPER 26W= SEGENTRY K3RELPER,SK3RELPER 27*W SEGENTRY K31RELPER,SK31RELPER 27TG # 28*6 # 28SQ # THIS SEG IMPLEMENTS RELPERENT,RELOFP AND PERCOUNT MACROS 29#B # FIRSTLY,RELPERENT AND RELOFP 29S2 # ON ENTRY TO THIS SEGMENT,THE PRB BLOCK IS HUNTED FOR AND WHEN FOUND 2=?L # A CHECK IS MADE THAT THE ENTRY TO BE CHECKED OR DELETED IS IN THE PRB 2=R= # AN ERROR INDICATOR IS SET IF IT IS NOT AND THE ROUTINE GOES UP 2?=W # IF THE ENTRY IS TO BE RETAINED,THEN THE ROUTINE SETS THE REPLY WORD 2?QG # AND GOES UP 2#=6 # OTHERWISE THE PRB ENTRY IS DELETED,AND IF THE PERI ASSOCIATED WITH IT 2#PQ # WAS ONLINE THEN THE PERI WILL BE DISENGAGED(IF AN INPUT DEVICE)AND 2*9B # FREED(EITHER) 2*P2 # OTHERWISE THE ROUTINE WILL GO DOWN TO THE APPROPRIATE ROUTINE TO DEAL 2B8L # WITH THE CLOSING OF THE FILE AND ON CONTROL RETURNING TO THIS ROUTINE 2BN= # IN EITHER CASE THE REPLY WORD WILL BE SET AND THE ROUTINE WILL GO UP 2C7W # 2CMG # SECONDLY PERCOUNT MACRO : ONLY LOGGING MESSAGES O/P. 2D76 # 2DK8 # AWORK4 IS USED AS A MARKER: B0 =1 => RELOFP 2F3= # B0 =0 => RELPER 2FF# # B1 =1 => RELPER ALL 2FXB # B2 =1 => PERCOUNT 2G*D # B3 =1 => PERCOUNT ALL 2GRG # B4 =1 => THIS PER IS BEING KEPT 2H9J # B5 =1 => ENGINEERS' MESSAGE (227). 2HML # B22=1 => RETAIN REGARDLESS 2J5N # B23=1 => RETAIN IF KEEP MARKER SET 2JHQ # 2K3B # 2K3Q ...#UNS JWPHASE4 2K46 ...( 2K4G ...TELLHLS 2K4W ...[ TELL HLS WHEN REAL PERIPH. RELEASED 2K5= ...[ 2K5L ...[ ON ENTRY X2=FX2. CALL ON X6. USES X0,X1,X2,X7 2K62 ...[ 2K6B ... SBX 6 FX1 2K6Q ... HLSINFORM (GEOERR),RELEASE,JOBNO(2),,SETSUP 2K76 ... ADX 6 FX1 2K7G ... EXIT 6 0 2K7W ...[ 2K8= ...[ NOTE - HLSINFORM CALLS SETSUP 2K8L ...[ 2K92 ...[ SETSUP IS USED BY HLSINFORM TO SET UP AN ADATA-GSUP. IT RETURNS 2K9B ...[ TO THE ROUTINE WHICH CALLED TELLHLS TO GET MORE INFORMATION. 2K9Q ...[ THIS ROUTINE WILL RETURN TO RESUP.IT MUST NOT CORRUPT X7 2K=6 ...[ 2K=G ...[ NOTE - ALL RFERENCES TO ADATA-GSUP IN COMMENTS REALLY MEAN ADATA-ASUP 2K=W ...[ 2K?= ...SETSUP 2K?L ... SBX 7 FX1 2K#2 ... SETNCORE 3,1,ADATA,ASUP 2K#B ... LDX 0 4 2K#Q ... SRL 0 15 [GET DEV. TYPE 2K*6 ... STO 0 A1(1) [AND STORE IN GSUP 2K*G ... SMO FX1 2K*W ... EXIT 6 1 [RETURN TO ROUTINE WHICH CALLED TELL 2KB= ...[ 2KBL ...[ 2KC2 ...[ RESUP FINISHES OFF GSUP. IT THEN RETURNS TO HLSINFORM. 2KCB ...[ ON ENTRY X0=GEOG. NO., X1 POINTS AT GSUP, AND X2=TSN OR CSN OR ZERO 2KCQ ...[ 2KD6 ...RESUP 2KDG ... STO 0 A1+1(1) [STORE GEOG NO. 2KDW ... STO 2 A1+2(1) [STORE TSN OR CSN 2KF= ... ADX 7 FX1 2KFL ... EXIT 7 0 [RETURN TO HLSINFORM 2KG2 ...[ 2KGB ...) 2KH2 # 2L2L # SUBROUTINE TO OUTPUT LOGGING MESSAGE: IDENTIFIER IN LOCATION AFTER CAL 2LG= # X5 IS -VE IF OFFLINE 2L^W # EXPECTS X4 TO HAVE PERINAME/GEOPER,AWORK2 TO HOLD TRANSFER CT 2MFG # 2M^6 RM1 LDX 3 AWORK2(2) 2NDQ BZE 3 XIT1 [DONT BOTHER IF NO TRANSFERS 2NYB RM1A LDX 5 GSIGN [OFFLINE MARKER 2PD2 SBX 6 FX1 2PXL OUTPACKC 4,1,PERINAME [O/P PERI NAME 2QC= BRN MEET 2QWW RM LDX 3 AWORK2(2) 2RBG BZE 3 XIT1 [DONT BOTHER IF NO TRANSFERS 2RW6 RMA SBX 6 FX1 2S*Q LGEOG 5,4 2STB GEOPACK 4,4,4 2T*2 OUTPACKC 4,1,GEOPER 2TSL MEET OUTPACKC AWORK2(2),1,TRANSCT [OUTPUT TRANSFER COUNT 2TWT #SKI JSKI06 [ENHANCEMENT NO. 8001 (B). 2T^4 ( 2W3? LDCT 0 #010 2W5G ANDX 0 AWORK4(2) [OUTPUT TIME IF ENGINEERS' MESS.(227) 2W7P BNZ 0 XXX 2W9Y ) 2W#= LDCT 0 #160 2WRW ANDX 0 AWORK4(2) 2X?G BNZ 0 RETN [IF PERCOUNT/RETAINED : NO TIME 2XR6 XXX OUTPARC TIMENOW 2Y=Q RETN BNG 5 NONE [J IF OFFLINE 2YQB LREPEATS 5,3 2YXJ #SKI JSKI06<1$1 2^4Q ( 2^=2 LFAILS 5,0 2^PL BNZ 3 SOME 329= BZE 0 NONE [DONT BOTHER IF BOTH ZERO 32NW SOME OUTPACKC 3,1,REPEATS 338G LFAILS 5,3 33N6 OUTPACKC 3,1,FAILCT [OUTPUT COUNTS 33P3 ) 33PY #SKI JSKI06 [ENHANCEMENT NO 8001 (B). 33QT ( 33RQ LFAILS 5,4 33RS ... HUNTW 2,ADATA,ELOUT 33RW ... BNG 2 NOEL [J IF NO ERROR LOG BLOCK 33RY ... STO 3 ELHEADER+11(2) 33S2 ... BZE 4 NOEL [J IF NO FAILS TO LOG 33S4 ... STOZ 3 33S6 ... SLL 34 16 33S8 ... STO 3 ELHEADER+12(2) [INSERT FAIL COUNT IN LOG 33S= ... ORS 4 ELHEADER+13(2) 33S? ... SRL 34 16 33S# ... LREPEATS 5,3 33SB ...NOEL 33SD ... LDX 2 FX2 33SM BNZ 3 SOME 33TJ BZE 4 NONE [EXCLUDE BOTH IF ZERO 33WF SOME OUTPACKC 3,1,REPEATS 33XB OUTPACKC 4,1,FAILCT 33Y? ... LDCT 0 #010 33^8 ANDX 0 AWORK4(2) 3425 ... BZE 0 NONE [J. IF NOT RELEASE OR PERIODIC REPORT 3432 DECANTCT 5,3,REPEAT [RESET REPEATS COUNT. 343X DECANTCT 5,4,FAIL [RESET FAILS COUNT. 344S INFORM 1,JSDREP,1,7 [SEND ALSO TO OPS' CONSOLE. 345P BRN XIT 346L ) 347Q NONE LDCH 0 AWORK4(2) 34MB ADX 1 6 3572 ANDN 0 4 35LL BZE 0 UNKP [J IF NOT PRFGRESS REPORT 366= MONOUTX 0(1),7 [X7 HAS JOBNO 36KW BRN XIT 375G UNKP MONOUTX 0(1) 377P ...XIT 379Y ... HUNTW 1,ADATA,ELOUT 37#7 ... BNG 1 NOCHAN 37BB ... LDX 2 BELOGACT 37DK ... LDX 3 ACTRING(2) 37GS ... SBN 3 ACTRING 37K3 ... LDX 3 BPTR(3) 37M= ... CHAIN 1,3 37PF ... STARTACT ELOG 37RN ... LDX 2 FX2 37TX ...NOCHAN 37Y6 ... LDX 1 FX1 382* ... ADX 6 1 384Q XIT1 EXIT 6 1 38JB # 3942 # THIS SUBROUTINE FINDS REQUIRED/NEXT ENTRY 39HL # EXPECTS X2=FX2,ACOMMUNE7 = PER TYPE/UNIT NO OR -VE IF ALL ,X3->PCA 3=3= # IF ALL,REL PTR IN AWORK3 3=GW # LINK X4,X6 WILL CONTAIN COUNT OF OFFLINE PERIS, 3?2G # X5 WILL CONTAIN SECOND INFORMATION WORD 3?G6 # X1 WILL -> START OF PRB ON EXIT 3?^Q # EXITS +0 IF END OF BLOCK FOUND BEFORE ENTRY IS 3#FB # EXITS +1 IF ENTRY FOUND 3#^2 PHIND HUNT2 3,APERI,APERIRES 3*DL PHIND1 3*Y= LDX 1 3 3BCW ADX 3 AWORK3(2) [UPDATE BY REL PTR 3BXG P2 LDX 0 A1(3) 3CC6 BNG 0 P1A [J IF END 3CWQ LDX 5 A1+1(3) 3DBB ERX 0 ACOMMUNE7(2) 3DW2 BZE 0 P4A 3F*L BNG 0 P4A [J IF FOUND 3FT= BPZ 5 P3 3G#W ADN 6 1 [UPDATE COUNT 3GSG P3 BDX 3 P2 [UPDATE PTR 3H#6 P1A EXIT 4 0 3HRQ P4A EXIT 4 1 3J?B # 3JR2 P1 3K=L #SKI K6ALLGEO>99-99 3KQ= TRACE 4,RELP NO 3L9W BRN RUNUP 3LPG # 3M96 # ENTRY POINT FOR RELOFP MACRO = UNPLUG + RELPER + RUNPROG 3MNQ # 3N8B SK2RELPER 3NN2 LDX 4 ACOMMUNE7(2) [PICK TYPE/UNIT NUMBER 3P7L FINDLINK 3 [PTR -> LINK IN X3 3PM= FREELINK [LINK BLOCK TO PREVIOUS STATE 3Q6W TOPCA1 ALINK1(3) [LEAVE OPLA'S LINK -> INST AFTER DOWN 3QLG UNPLUG 2 [ALWAYS COMES BACK 3R66 CAPCA [RETURN TO CPA 3RKQ STO 4 ACOMMUNE7(2) 3S5B STOZ ACOMMUNE8(2) 3SK2 STOZ ACOMMUNE9(2) 3T4L LDCT 0 #400 3TJ= STO 0 AWORK4(2) [INDICATE K2 ENTRY 3W3W BRN XJOIN 3WHG #SKI ARETLO 3X36 ( 3XGQ # 3Y2B # ENTRY POINT FOR RELPER MACRO 3YG2 # 3Y^L SK11RELPER 3^F= LDCT 0 #200 3^YW STO 0 AWORK4(2) [SET MARKER 42DG LDX 0 GSIGN 42Y6 STO 0 ACOMMUNE7(2) [ALL MARKER 43CQ BRN XJOIN 43XB ) 44C2 SK1RELPER 44WL STOZ ACOMMUNE8(2) 45B= STOZ AWORK4(2) [K1 ENTRY 45TW XJOIN LDX 0 ACOMMUNE8(2) 46*G ORS 0 AWORK4(2) [KEEP MARKERS,1=>KEEP,2=> KEEPALL 46T6 UNRET STOZ AWORK3(2) [CLEAR RELATIVE POINTER 47#Q LDN 6 1 [INITIALISE OFFLINE COUNT 47SB FPCACA 3,2 [FIND THE PCA. 48#2 # 48RL REL 49?= #SKI ARETLO 49QW ( 4==G LDEX 7 AWORK4(2) 4=Q6 SBN 7 1 [0 IF KEEP,-VE IF NONE,+VE IF KEEPALL 4?9Q ) 4?PB CALL 4 PHIND 4#92 BRN P1 [J IF NOT FOUND 4#NL [ 4*8= P4 LDX 4 A1(3) [TYPE / UNIT NUMBER 4*MW BPZ 5 P7 [J. IF ONLINE 4B7G #SKI ARETLO 4BM6 ( 4C6Q LDX 1 FX2 4CLB BNG 7 P7A [J IF NOT TO BE KEPT 4D62 LDX 5 6 4DKL TOUR FINDACTF 2,,AOLPT,,,FPTR 4F5= BCT 5 TOUR [FIND OLPA 4FJW ) 4G4G LDX 5 6 4GJ6 ORX 5 GSIGN 4H3Q #SKI ARETLO 4HHB ( 4J32 LDXC 0 ARETAIN(2) 4JGL BCS PHOUND [J IF KEEP MARKER SET 4K2= BZE 7 P7A [NOT KEPT UNLESS KEEPALL 4KFW LDX 0 ATMARK(2) [NOW TEST IF KEEPABLE 4K^G BZE 0 PHOUND [OK IF 0 4LF6 SBN 0 3 4LYQ BNZ 0 P7A [OR 3 4MDB PHOUND 4MY2 LDX 0 ACOUNT(2) 4NCL SBX 3 1 4NX= ADN 3 2 4PBW LDX 2 FX2 4PWG STO 0 AWORK2(2) 4QB6 STO 3 AWORK3(2) [KEEP RELATIVE POINTER 4QTQ ADN 6 1 4R*B STO 6 AWORK1(2) [KEEP OFFLINE COUNT 4RT2 LDCT 0 #20 4S#L ORS 0 AWORK4(2) [SET RETAIN THIS PER BIT 4SS= CALL 6 RM1 4T?W +JREL2 [OFFLINE RETAINED 4TRG BRN RUNUP 4W?6 ) 4WQQ #SKI ARETLO<1$1 4X=B BRN P7A 4XQ2 # 4Y9L P7 LOBJPERIS 5,6 [GET EXEC'S SCHEDULING COUNT 4YP= STO 6 AWORK2(2) [SAVE COUNT 4^8W P7A LDX 0 A1+2(3) [DELETE THE ENTRY. 4^NG STO 0 A1(3) 5286 BNG 0 P8 [BRANCH IF END OF BLOCK REACHED 52MQ LDX 0 A1+3(3) [DELETE 2ND WORD OF ENTRY 537B STO 0 A1+1(3) 53M2 BDX 3 P7A [UPDATE PTR. & J. TO CONTINUE DELETIO 546L [ 54L= P8 LDX 3 ALOGLEN(1) [GET LOGICAL LENGTH 555W SBN 3 2 55KG LDX 6 1 5656 ALTLEN 6,3 [DECREASE LOGICAL LENGTH BY 2 56=# ... SEGENTRY JKCRELPER [TO NULL BRANCH IN RELPERI 56CG ... RELPERI 4 [FOR KEPT CHAPTERS 56JQ FPCACA 3,2 [RELOCATE PCA. 574B P8A FJOCA 1,2 [FIND JOB BLOCK. 57J2 TESTRCTP 1,P6 [J. IF TRUSTED PROGRAM. 583L BRN P9 58H= P6 FINDPUC 3,1 [FIND PUC'S PCA 592W LDN 0 2 59GG SBS 0 APRB(1) [UPDATE POINTER TO LAST REC IN TP PRB 5=26 # 5=FQ P9 5=^B #SKI K6ALLGEO>99-99 5?F2 TRACE 4,RELPYES 5?YL BNG 5 P10 [J. IF OFFLINE 5#D= # 5#XW # RELEASE ONLINE PERIPHERAL 5*CG # 5*JN ...#UNS JWPHASE4 5*PW ...#SKI 5*X6 P9A LDX 7 ACOMMUNE9(2) [PRESERVE FOR LOWER ROUTINES 5*XQ ...#UNS JWPHASE4 5*YB ...( 5*^2 ...P9A LDX 3 ACOMMUNE9(2) [SAVE FOR LOWER ROUTINES 5*^L ... CALL 6 TELLHLS 5B2= ... BRN ZLS1 5B2W ...[ HLSINFORM FINISHED - GO TO ZLS1 5B3G ...[ 5B46 ...[ GET MORE DATA FOR GSUP 5B4Q ...[ 5B5B ... LTYPE 5,2 5B62 ... SBN 2 5 5B66 ...#UNS AR1 5B6= ...( 5B6B ... CLHLFDON 5 5B6G ...) 5B6L ... BNZ 2 NMTLS [J IF NOT MT 5B7= ... LADDP 5,2 [GET APIA ENTRY 5B7W ... BNG 2 NMTLS [J IF NONE 5B8G ... SMO 2 5B96 ... LDX 2 2 5B9Q ...[ GET TSN 5B=B ... BRN YMTLS 5B?2 ...NMTLS LDN 2 0 [ZERO IF NO TSN 5B?L ...YMTLS LGEOG 5,0 5B#= ...[ GET GEOG NUMBER 5B#W ... BRN RESUP [FINISH GSUP 5B*G ...ZLS1 LDX 7 3 5BB6 ...) 5BBQ OUTBLOCN 10 [SET UP PARAMETER BLOCK 5BWB CALL 6 RMA [OUTPUT LOGGING MESSAGE 5CB2 +JREL1 [ONLINE RELEASED 5CTL ... JNREALT 5,P9B [J IF REALTIME NOT NEEDED FOR THIS DE 5D*= ... CJOBLOCK 1 [FIND THE JOB BLOCK. 5FS6 LDN 0 1 5G?Q SBS 0 AEXCO(1) [SUBTRACT 1 FROM CT OF RT PERIPHERALS 5GRB P9B LTYPE 5,6 [PER TYPE TO X6 5H?2 STO 7 ACOMMUNE9(2) [RESET INFORMATION 5HQL SBN 6 5 [MAGNETIC TAPE TYPE 5J== BZE 6 P16 [BRANCH IF YES. 5JPW JEXOTIC 5,P9D [NOT IN IDF IF EXOTIC 5K9G SBN 6 5 [J. IF NOT A MULTIPLEXOR OR UNIPLEXOR 5KP6 STO 5 ACOMMUNE1(2) [PTR., FOR UNITOFF OR YUNITOFF MACRO 5L8Q BZE 6 P9C 5LNB SBN 6 1 5M82 BZE 6 P9C 5MML SBN 6 13 [AND NOT IPB. 5N7= BNZ 6 P9D 5N=B ...#UNS IDFMARK8 5N*G ... YUNITOFF (GEOERR) [FREE IPB IN IDF 5NDL ...#UNS IDFMARK8 5NHQ ...#SKI 5NLW YUNITOFF [FREE IPB IN IDF 5P6G BRN P9D 5P9L ...#UNS IDFMARK8 5P#Q ...P9C UNITOFF (GEOERR) [FREE PLEXOR IN IDF 5PCW ...#UNS IDFMARK8 5PH2 ...#SKI 5PL6 P9C UNITOFF [FREE PLEXOR IN IDF 5Q5Q P9D STO 5 CPPTR(2) 5QKB FREEPER [FREE OL PER 5R52 #SKI ARETLO 5RJL ( 5S4= PUP LDCT 0 #200 5SHW ANDX 0 AWORK4(2) 5T3G BNZ 0 MORE [J IF RELPER ALL 5TH6 PUP1 SETREP OK 5W2Q LDCT 0 #20 5WGB ANDX 0 AWORK4(2) 5X22 BNZ 0 SET [J IF LAST ONE KEPT 5XFL LDCT 0 #200 5X^= ANDX 0 AWORK4(2) 5YDW BZE 0 UP [J IF NOT RELPER ALL 5YYG FPCACA 3,2 5^D6 HUNT2 3,APERI,APERIRES 5^XQ LDX 0 ALOGLEN(3) 62CB BZE 0 UP [J IF NONE KEPT 62X2 SET SETREP KEPT 63BL UP UP 63W= MORE LDX 6 AWORK1(2) [GET OFFLINE COUNT 64*W LDCT 0 #20 [RETAIN THIS PER BIT 64TG ANDX 0 AWORK4(2) 65*6 ERS 0 AWORK4(2) [CLEAR IT 65SQ LDX 0 GSIGN 66#B STO 0 ACOMMUNE7(2) 66S2 FPCACA 3,2 67?L BRN REL [GO ROUND AGAIN 67R= ) 68=W #SKI ARETLO<1$1 68QG ( 69=6 UP 69PQ PUP UP 6=9B ) 6=P2 [ 6?8L [OFFLINE PERIPHERAL RELEASE SECTION 6?N= [ 6#7W P10 ANDN 5 #377 [OFF-LINE COUNT 6#MG P11 FINDACTFB 3,,AOLPT,,,FPTR [FIND NEXTOFFLINE ACTIVITY BLOCK. 6*76 BCT 5 P11 [J. IF NOT THE CORRECT BLOCK. 6*LQ LDX 6 ACOUNT(3) [GET THE SCHEDULING COUNT. 6B6B LOCK 3 [LOCK THE 'OLPA' 6BL2 SMO ATMARK(3) [SWITCH WORD. 6C5L BRN P12 [BRANCH BY THE SWITCH WORD 6CK= [ 6D4W [BRANCH TABLE 6DJG [ 6F46 P12 BRN P13 [FILE STORE OR PSEUDO O/L SLOW OUTPUT 6FHQ BRN P14 [BACKING STORE 6G3B BRN P15 [OL MAG TAPE WITH OLPA 6GH2 BRN P17 [PSEUDO ONLINE SLOW INPUT. 6H2L BRN P18 [COMMAND ISSUER 6HG= #SKI G4 6H^W NULL 6JFG #SKI G3 6J^6 BRN P19 [CONCEPTUAL MULTIPLEXOR. 6KDQ BRN P20 [INTER-PROGRAM COMMUNICATOR 6KYB BRN P21 [CONCEPTUAL IPB 6LD2 BRN P22 [ONLINE DRUM. 6LDG ...#UNS AV7900S 6LF2 ... BRN P23 [VIRTUAL 7900. 6LFG ...#UNS AV7900S 6LG2 ...#SKI 6LGG ...( 6LH6 ...#SKI JSKI04<1$1 6LL= ... NULL 6LPB ...#SKI JSKI04 6LSG ... BRN P18 [BULK COMMAND ISSUER. 6LW4 ...) 6LX4 ... BRN P24 [LPS14 - NIP 6LXL [ 6MC= P13 ORELP 3 [RELEASE THE FILE-STORE PERIPHERAL 6MWW BRN OUTM [J. TO OUTPUT THE LOGGING MESSAGE. 6NBG [ 6NW6 P14 DOWN CLOSBAC,2 [RELEASE BACKING STORE PERIPHERAL 6NW# ...#UNS JWPHASE4 6NWG ...( 6NWN ... STO 6 AWORK2(2) 6NWW ... LDX 3 ACOMMUNE8(2) [GET CSN 6NX4 ... LDX 5 ACOMMUNE9(2) [GET GEOG NO. 6NX= ... CALL 6 TELLHLS [TELL HLS ABOUT RELEASE 6NXD ... BRN ZLS2 [J IF HLSINFORM FINISHED 6NXL ...[ 6NXS ...[ GET CSN AND GEOG NO. FOR GSUP 6NY2 ...[ 6NY8 ... LDX 2 3 6NYB ... LDX 0 5 6NYJ ... BRN RESUP [GO TO FINISH GSUP 6NYQ ...ZLS2 6NYY ...) 6N^= ... LDX 0 4 6P4B ... SEGENTRY ADX 6P7G ... NULL 6P=L ... DLA 0 4 6P?= ...#UNS JWPHASE4 6P?W ... BRN OUTZ 6P#G ...#UNS JWPHASE4 6P*6 ...#SKI 6P*Q BRN OUTM [J. TO OUTPUT THE LOGGING MESSAGE. 6PTB [ 6Q*2 P15 MTPTR 3,5 [GET POINTER TO MAG. TAPE DEVICE LIST 6QSL MURDER 3 [RELEASE THE OLPA. 6R#= STO 6 AWORK2(2) [SAVE TRANSFER COUNT 6RRW BRN P9A 6S?G P16 LDX 4 5 [DEVICE LIST POINTER. 6SR6 DOWN CLOSEMT,1 [RELEASE THE PERIPHERAL. 6T=Q UP 6TK7 ...P17 6TXJ ... MURDER 3 [RELEASE THE OLPA 6W=2 BRN OUTM [J. TO OUTPUT THE LOGGING MESSAGE. 6WPL [ 6X9= P18 DOWN CIMOP,4 [RELEASE THE COMMAND CHANNEL 6XNW BRN OUTM [J. TO OUTPUT THE LOGGING MESSAGE. 6Y8G [ 6YN6 #SKI G3 6^7Q ( 6^MB P19 DOWN CONMXA,2 7272 BRN OUTM 72LL ) 736= [ 73KW P20 DOWN IPCPERI,3 [RELEASE IPC 745G BRN OUTM 74K6 [ 754Q P21 DOWN CDCIPB,1 [RELEASE CONCEPTUAL IPB 75JB BRN OUTM 7642 [ 76=Y ...P22 76FW ... DOWN DRUM,3 76NS ...#UNS AV7900S 76W2 ... BRN OUTM 773= [ 775T ...#UNS AV7900S 778D ...( 77?3 ...P23 DOWN VIPBPERI,2 [RELEASE A VIRTUAL 7900 COMMS CHANNEL 77*L ...[ 77D9 ...) 77DM ... BRN OUTM 77F# ...[ IF NIP TYPE FH - THEN RELEASE FH 77FH ...[ THIS MACRO NEVER EXITS FOR BREAKIN 77FQ ...P24 77FS ... LDX 0 ANIPSW [J IF NOT LPS14 - NIP 77FW ... BZE 0 P13 77F^ ... MURDER 3 [MURDER AOLPA 77G8 ... NIPREL (GEOERR),4 77GW OUTM STO 6 AWORK2(2) [SAVE COUNT 77N4 ...#UNS JWPHASE4 77T= ...OUTZ 782G CALL 6 RM1A [OUTPUT LOGGING MESSAGE 78G6 +JREL [OFFLINE RELEASED 78^Q RUNUP LDX 0 AWORK4(2) 79FB BPZ 0 PUP [K1 ENTRY = GO UP 79^2 RUNPROG [K2 ENTRY 7=DL [ 7=Y= # ENTRY FOR PERCOUNT 7?CW SK3RELPER 7?XG LDCT 0 #120 [SET MARKERS 7#C6 STO 0 AWORK4(2) 7#WQ LDX 0 GSIGN [SET ALL FOR REPORTING 7*BB STO 0 ACOMMUNE7(2) [SET MARKER 7*W2 LDN 6 1 [INITIALISE OFFLINE COUNT 7B*L STO 6 AWORK1(2) 7BT= STOZ AWORK3(2) [CLEAR REL PTR 7C#W ROUND FPCACA 3,2 [X3-> PCA 7CSG LDX 7 3 7D#6 CALL 4 PHIND 7DRQ BRN UP 7F?B LDX 4 A1(3) [GET PER NAME 7FR2 SBX 3 1 7G=L ADN 3 2 [UPDATE REL PTR 7GQ= STO 3 AWORK3(2) [SAVE REL PTR 7H9W BPZ 5 ONLIN 7HPG LDX 3 7 [X3-> PCA 7J96 LDX 7 6 [OFFLINE PERI CT -> X7 7JNQ R1 FINDACTF 3,,AOLPT,,,FPTR [X3 -> OLPA 7K8B BCT 7 R1 7KN2 ADN 6 1 7L7L STO 6 AWORK1(2) [UPDATE OFFLINE COUNT 7LM= LDX 0 ATMARK(3) 7M6W SBN 0 2 7MLG BZE 0 MAGT 7N66 LDX 0 ACOUNT(3) 7NKQ STO 0 AWORK2(2) 7P5B BRN OUT 7PK2 MAGT MTPTR 3,5 7Q4L ONLIN LOBJPERIS 5,0 7QJ= STO 0 AWORK2(2) 7R3W OUT BZE 0 SUB [J IF NO TRANS 7RHG OUTBLOCN 8 7S36 BNG 5 OFF 7SGQ CALL 6 RM 7T2B +JREL3 [ONLINE RETAINED 7TG2 BRN SUB 7T^L OFF CALL 6 RM1 7WF= +JREL2 [OFFLINE RETAINED 7WYW SUB LDX 0 GSIGN 7XDG STO 0 ACOMMUNE7(2) [RESET MARKER 7XY6 LDX 6 AWORK1(2) [GET OFFLINE COUNT 7YCQ BRN ROUND [BACK FOR NEXT 7YXB # 7^C2 # SUBROUTINE TO DO OUTBLOCN FOLLOWED BY JOBLOCK. 7^WL # ONLY NEEDED BECAUSE THESE ARE SUCH BORINGLY LONG MACROS. 82B= # 82TW SOUT1 SBX 4 FX1 [RELATIVISE LINK. 83*G OUTBLOCN 10 [SET UP GMON/ASET BLOCK. 83T6 ADX 4 1 [RETRIEVE LINK. 84#Q SOUT2 JOBLOCK 7,3 [FIND THE JOB BLOCK. 84SB EXIT 4 0 85#2 # 85RL # ENTRY FOR PERCOUNT ALL 86?= SK31RELPER 86QW LDCT 0 #40 87=G STO 0 AWORK4(2) 87Q6 STOZ AWORK3(2) 889Q # AFTER THIS INITIALISATION SEARCH JOB QUEUE 88PB OUTBLOCN 8 8992 LDN 3 BJOBQ 89NL SEEK LDX 3 FPTR(3) 8=8= SEEK1 TXU 3 CXJO 8=MW BCC OPENG [-> O/P ENGINEER MESSAGES 8?7G LDX 0 ALOGLEN(3) 8?M6 SBN 0 ASTJOB 8#6Q BZE 0 SEEK [IGNORE NO USER JOBS 8#LB LDX 7 JOBNUM(3) [KEEP JOB NUMBER 8*62 OUTPARC TIMENOW 8*KL OUTPACKC HTIMEJ(3),2,JOBMILL 8B5= LDEX 6 JMISC(3) 8BJW #SKI ARETLO 8C4G ( 8CJ6 BNZ 6 XCI [J IF CORE IMAGE 8D3Q LDX 6 JCLASS(3) 8DHB ANDN 6 #200 8F32 ) 8FGL BZE 6 NOCI [J IF NO PERIPHERAL CTS TO O/P 8G2= XCI OUTPACKC HCLOCKTIME(3),2,PROGMILL 8GFW NOCI MONOUT JPROGREP,7 [O/P PROGRESS REPORT -> JOURNAL 8G^G CALL 4 SOUT1 [SET UP GMON/ASET BLOCK FOR NEXT TIME 8HF6 BNG 3 REFIND [J IF NOW GONE 8HYQ LDEX 6 JMISC(3) 8JDB BZE 6 SEEK [J IF NO CORE IMAGE 8JY2 LDN 6 1 [INITIALISE COUNT 8KCL STO 6 AWORK1(2) 8KX= RETURN 8LBW FPCAJO 1,3 [X1 -> PCA 8LWG PCATEST 1,TP,TP [->TP IF TP -OR NORMAL APET 8MB6 FINDTP 1,1 [X1 -> TP APET 8MTQ TP STO 1 ACOMMUNE1(2) 8N*B HUNT2J 1,APERI,APERIRES,,SEEK [-> SEEK IF MISSING 8NT2 LDX 3 1 8P#L LDX 0 GSIGN 8PS= STO 0 ACOMMUNE7(2) 8Q?W CALL 4 PHIND1 8QRG BRN NEXT [IF END,GO TO GET NEXT 8R?6 STO 6 AWORK1(2) [KEEP COUNT OF OFFLINE PERIS 8RQQ LDX 4 A1(3) 8S=B SBX 3 1 8SQ2 ADN 3 2 [UPDATE REL PTR 8T9L STO 3 AWORK3(2) [KEEP REL PTR 8TP= LDX 1 ACOMMUNE1(2) [X1-> PCA 8WNG BPZ 5 MAG2 [J IF ONLINE 8X86 R2 FINDACTF 1,,AOLPT,,MISS1,FPTR 8XMQ TXU 7 JOBNO(1) 8Y7B BCS MISS1 [J IF NOT FOUND WITH SAME JOBNO 8YM2 BCT 6 R2 8^6L LDN 0 1 8^L= ADS 0 AWORK1(2) [UPDATE OLPA COUNT 925W LDX 0 ATMARK(1) 92KG SBN 0 2 9356 BZE 0 MAG1 [J IF MT 93JQ LDX 0 ACOUNT(1) 944B STO 0 AWORK2(2) 94J2 CALL 6 RM1 953L +JRELPRO [OFFLINE PROGRESSREPORT 95H= BRN PAST 962W MISS1 CALL 4 SOUT2 [FIND JOB BLOCK. 96GG BRN MISS2 9726 MAG1 MTPTR 1,5 [X5 -> DEVICE LIST 97FQ MAG2 LOBJPERIS 5,0 97^B STO 0 AWORK2(2) [KEEP TRANSFER COUNT 98F2 ONLN CALL 6 RM 98YL +JRELPRO1 [ONLINE PROGRESS RPORT 99D= PAST 99XW #SKI K6RELPER>499-499 9=CG ( 9=X6 TRACE 4,TYPE 9?BQ TRACE AWORK2(2),NUMBER 9?WB TRACE 7,JOBNO2 9#B2 ) 9#TL CALL 4 SOUT1 [DO OUTBLOCN & FIND JOB BLOCK 9**= MISS2 LDX 6 AWORK1(2) 9*SW BNG 3 REFIND 9B24 ... LDEX 4 JMISC(3) 9B7= ... BZE 4 SEEK [J IF NO CORE IMAGE 9B#G BRN RETURN 9BS6 # 9C?Q NEXT CALL 4 SOUT1 [DO OUTBLOCN & FIND JOB BLOCK. 9CRB BNG 3 REFIND 9D?2 STOZ AWORK3(2) [INITIALISE 9DQL BRN SEEK 9F== REFIND [GET POINTER TO NEXT BLOCK 9FPW #SKI K6RELPER>499-499 9G9G TRACE 7,JOBNO 9GP6 LDN 3 BJOBQ 9H8Q R3 LDX 3 FPTR(3) 9HNB TXU 3 CXJO 9J82 BCC OPENG [-> O/P ENGINEER MESSAGES 9JML TXL 7 JOBNUM(3) 9K7= BCS SEEK1 [J IF NEXT ONE 9KLW BRN R3 9L6G OPENG LDN 7 0 [JOB NO 9L?N #SKI JSKI06<1$1 9LDW ( 9LL6 FINDRPDE 3,RETRY,UP,4 [-> UP AT END 9M5Q OUTBLOCN 10 9MKB LDX 5 3 9N52 LGPERIS 3,0 9NJL STO 0 AWORK2(2) [FOR S/R:COUNT OF TRANS 9P4= STO 4 AWORK1(2) [KEEP WORK ACC. 9PHW CALL 6 RM [OUTPUT LOGGING MESSAGE 9Q3G +JRELPRO1 9QH6 LDX 3 5 9R2Q LDX 4 AWORK1(2) [RESTORE INFO FOR FINDRPDEV 9RGB CLCOUNT 3,GEORGE [CLEAR COUNTS 9S22 CLCOUNT 3,FAIL 9SFL CLCOUNT 3,REPEAT 9SG6 ) 9SGL #SKI JSKI06 [ENHANCEMENT NO. 8001 (B). 9SH6 ( 9SHL LDCT 0 #010 9SJ6 ORS 0 AWORK4(2) [SET MARKER = ENG. MESS. (227). 9SJL FINDRPDE 3,RETRY,UP,4 [GET ADDR. OF NEXT DEVICE. 9SK6 LGPERIS 3,0 9SKL BZE 0 RETRY [NO MESSAGE IF ZERO TRANSFERS. 9SL6 STO 0 AWORK2(2) [COUNT OF TRANSFERS FOR S/R. 9SLL DECANTCT 3,0,GEORGE [RESET GEORGE TRANSFER COUNT. 9SM6 STO 4 AWORK1(2) [KEEP WORK ACCUMULATOR. 9SM7 ... JENVNOT YNOT,CME 9SM8 ... JCAFSDV 3,YNOT 9SM9 ... LDN 4 22 9SM= ... SETELOG 2,4,3 9SM? ... LDN 5 #2460 9SM# ... ORS 5 ELHEADER+1(2) 9SM* ... STOZ 4 9SMB ... SMO FX2 9SMC ... LDX 5 AWORK2 9SMD ... SLL 45 8 9SMF ... ORS 4 ELHEADER+9(2) 9SMG ... STO 5 ELHEADER+10(2) 9SMH ... LDX 2 FX2 9SMJ ...YNOT 9SML LDX 5 3 [DEVICE LIST POINTER FOR S/R. 9SN6 OUTBLOCN 16 9SNL LTYPE 3,4 9SP6 OUTPACKC 4,1,PERITYPE [OUTPUT TYPE AS %A. 9SPL SBN 4 6 9SQ6 BZE 4 XXY [J. IF EDS. 9SQL SBN 4 20 9SR6 BNZ 4 XXZ [J. IF NOT EMDS. 9SRL XXY LADDP 3,3 9SS6 LDX 4 BSUNIT5(3) [GET CSN FROM APIA. 9SSL OUTPACKC 4,1,CSN [O/P CSN AS %B IF EDS OR EMDS 9ST6 BRN XYX 9STL XXZ OUTNULL [ELSE NULL %B IF OTHER TYPE. 9SW6 XYX CALL 6 RM [OUTPUT LOGGING MESSAGE. 9SWL +JSDREP 9SX6 LDX 3 5 [RESTORE DEVICE LIST POINTER FOR S/R, 9SXL LDX 4 AWORK1(2) [RESTORE WORK ACCUMULATOR FOR S/R. 9SY6 ) 9S^= BRN RETRY [BACK AGAIN 9TDW # 9TYG MENDAREA 20,K100RELPER 9WD6 #END ^^^^ ...17414373000100000000