{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RELPER867)}}
====== RELPER867 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:CAPCA|CAPCA]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CJOBLOCK|CJOBLOCK]], [[george:macro:CLCOUNT|CLCOUNT]], [[george:macro:CLHLFDON|CLHLFDON]], [[george:macro:DECANTCT|DECANTCT]], [[george:macro:DOWN|DOWN]], [[george:macro:FINDACTFB|FINDACTFB]], [[george:macro:FINDLINK|FINDLINK]], [[george:macro:FINDPUC|FINDPUC]], [[george:macro:FINDTP|FINDTP]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FPCAJO|FPCAJO]], [[george:macro:FREELINK|FREELINK]], [[george:macro:FREEPER|FREEPER]], [[george:macro:GEOPACK|GEOPACK]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORM|INFORM]], [[george:macro:JCAFSDV|JCAFSDV]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:JEXOTIC|JEXOTIC]], [[george:macro:JNREALT|JNREALT]], [[george:macro:JOBLOCK|JOBLOCK]], [[george:macro:LADDP|LADDP]], [[george:macro:LFAILS|LFAILS]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LGPERIS|LGPERIS]], [[george:macro:LOBJPERIS|LOBJPERIS]], [[george:macro:LOCK|LOCK]], [[george:macro:LREPEATS|LREPEATS]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:MTPTR|MTPTR]], [[george:macro:MURDER|MURDER]], [[george:macro:NIPREL|NIPREL]], [[george:macro:OFF|OFF]], [[george:macro:ORELP|ORELP]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTNULL|OUTNULL]], [[george:macro:OUTPACKC|OUTPACKC]], [[george:macro:OUTPARC|OUTPARC]], [[george:macro:PCATEST|PCATEST]], [[george:macro:RELPERI|RELPERI]], [[george:macro:RUNPROG|RUNPROG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETELOG|SETELOG]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:STARTACT|STARTACT]], [[george:macro:TESTRCTP|TESTRCTP]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:TRACE|TRACE]], [[george:macro:UNITOFF|UNITOFF]], [[george:macro:UNPLUG|UNPLUG]], [[george:macro:UP|UP]], [[george:macro:YUNITOFF|YUNITOFF]]
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