{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PUTPER85)}}
====== PUTPER85 ======
(George Source)
**Macros used:** [[george:macro:ALTLENG|ALTLENG]], [[george:macro:CLOBJPERIS|CLOBJPERIS]], [[george:macro:DECANTCT|DECANTCT]], [[george:macro:FINDPUC|FINDPUC]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FPCACA|FPCACA]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JMT|JMT]], [[george:macro:KEEPCHAP|KEEPCHAP]], [[george:macro:LADDP|LADDP]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LOBJPERIS|LOBJPERIS]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NEWPERI|NEWPERI]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTPACKC|OUTPACKC]], [[george:macro:OUTPARC|OUTPARC]], [[george:macro:PHOTO|PHOTO]], [[george:macro:RELPERENT|RELPERENT]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TESTRCTP|TESTRCTP]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:VFREEW|VFREEW]]
22FL #SEG PUTPER [JOHN BAILEY.
22^= #LIS K0PUTPER>K0RELPER>K0ALLGEO
23DW 8HPUTPER
23YG #
24D6 SEGENTRY K1PUTPER,SK1PUTPER
24XQ #
25CB # ON ENTRY TO THIS SEGMENT,THE PRB BLOCK IS HUNTED FOR AND WHEN FOUND
25X2 # A CHECK IS MADE THAT THE ENTRY TO BE INSERTED IN THE PRB IS NOT
26BL # ALREADY PRESENT
26W= # IF THE ENTRY IS PRESENT,THEN THIS IS RELEASED AND THE ROUTINE GOES
27*W # BACK TO THE BEGINNING
27TG # THE LENGTH OF THE BLOCK IS THEN INCREASED BY 2 WORDS TO HOLD
28*6 # THE NEW ENTRY, WHICH IS APPENDED TO THE LIST.
28SQ # IF THE ENTRY IS FOR AN ONLINE PERIPHERAL A SUITABLE LOGGING
29#B # MESSAGE IS OUTPUT, AND THE REPLY IS SET ZERO, OTHERWISE THE
29S2 # OFFLINE PERIPHERAL COUNT IS SET AS A REPLY AND THE ROUTINE GOES UP.
2=?L #
2=R= #
2?=W # SUBROUTINE TO FIND THE PRB (APERI/APERIRES BLOCK)
2?QG #
2#=6 TFIND FPCACA 3,2
2#PQ STO 3 AWORK3(2) [SAVE THE PCA ADDRESS
2*9B HUNT2 3,APERI,APERIRES
2*P2 STO 3 AWORK1(2) [SAVE THE PRB ADDRESS
2B8L EXIT 6 0
2BN= #
2C7W # SUBROUTINE TO RE-FIND THE PRB AFTER CORE MOVES DURING ALTLENG
2CMG #
2D76 THUNT CALL 6 TFIND
2DLQ LDX 2 3 [ALTLENG NEEDS ADDRESS IN X2
2F6B EXIT 1 0
2FL2 #
2FLP ...#UNS JWPHASE4
2FMD ...(
2FN7 ...SETSUP [SUB TO GIVE HLS AN ADATA SETSUP BLOC
2FNW ... BZE 3 (7) [ALREADY THERE IF NO DELIST POINTER
2FP9 ... SBX 7 FX1
2FPK ... SETNCORE 3,1,ADATA,ASUP
2FQ# ... LGEOG 3,0
2FR3 ... STO 0 A1+1(1) [STORE GEOG NO.
2FRQ ... LTYPE 3,0
2FSF ... STO 0 A1(1)
2FT8 ...[ STORE DEVICE TYPE
2FTX ... ERN 0 5
2FWL ... BNZ 0 NMTLS [J IF NOT MT
2FX* ... LADDP 3,2
2FY4 ... BNG 2 NMTLS
2FYR ... LDX 2 2(2) [GET TSN FROM APIA ENTRY
2F^G ... BRN YMTLS
2G29 ...NMTLS LDN 2 0
2G2Y ...YMTLS STO 2 A1+2(1) [STORE TSN IF ANY
2G3? ... ADX 7 FX1
2G3M ... EXIT 7 0
2G4B ...)
2G5L SK1PUTPER
2GK= STO 6 AWORK2(2) [POINTER TO DEV LIST AND/OR B0 SET
2H4W LDX 5 ACOMMUNE7(2) [TYPE/UNIT NO.
2HJG P1 CALL 6 TFIND [GET PRB ADDRESS IN X3
2J46 LDN 4 1 [SET OFFLINE PERI COUNT = 1
2JHQ P2 LDX 0 A1(3) [NEXT ENTRY.
2K3B BNG 0 P5 [LAST WORD < 0 : NO MORE ENTRIES
2KH2 ERX 0 5
2L2L BZE 0 P4 [BRANCH IF ENTRY ALREADY PRESENT
2LG= LDXC 0 A1+1(3) [B0 SET IF OFFLINE
2L^W ADN 4 0
2MFG BDX 3 P2 [GO TO CHECK NEXT ENTRY
2M^6 P4 LDX 0 5
2NDQ RELPERENT 0 [DELETE THE ENTRY.
2NYB BRN P1 [BRANCH TO SET UP MARKERS
2PD2 #
2PXL P5 SMO AWORK1(2) [ADDRESS OF PRB
2QC= LDX 0 ALOGLEN [LENGTH OF PRB
2QWW LDN 7 3(3)
2RBG SBX 7 AWORK1(2) [NEW LENGTH NEEDED FOR NEW ENTRY
2STB PHOTO 6
2T2J ... TXL 0 7
2T7Q ... BCC P7X [ALREADY LONG ENOUGH
2T*2 ALTLENG AWORK1(2),7,THUNT [INCREASE THE PRB LENGTH BY 2 WORDS
2TG8 ... SEGENTRY JKCPUTPER [USED TO NULL BRANCH IN NEWPERI
2TH9 ...#UNS KEEPCHAP
2TJ= ...#SKI
2TK? ...P7X
2TL# ...#UNS KEEPCHAP
2TMB ...P7X NEWPERI 5 [FOR KEPT CHAPTERS
2TSL TESTMOVE 6,P7
2W#= CALL 6 TFIND [CORE MOVED : REFIND PRB
2WRW ADX 3 7
2X?G SBN 3 3 [POINT TO WORD EQUIVALENT TO AT P5
2XR6 #
2Y=Q P7 LDX 0 AWORK2(2) [POINTER TO DEV LIST AND/OR B0 SET
2YQB BPZ 0 P7A
2^=2 LDCT 0 #400 [STORE ONLY B0 IF OFFLINE
2^PL P7A STO 5 A1(3) [STORE FIRST WORD OF ENTRY
329= STO 0 A1+1(3) [SET FOR ASSISTE REPEATS.
32NW LDCT 0 #400
338G STO 0 A1+2(3) [SET END OF LIST MARKER
33N6 FJOCA 1,2 [FIND THE JOB BLOCK.
347Q TESTRCTP 1,P10 [J. IF TRUSTED PROGRAM.
34MB BRN P8
3572 P10 FINDPUC AWORK3(2),1 [FIND PUC'S PCA
35LL LDN 0 2
366= ADS 0 APRB(1) [UPDATE POINTER TO LAST REC IN TP PRB
36KW #
375G P8 LDXC 3 AWORK2(2)
37K6 BCC P8A [B0 NOT SET IF ONLINE
37N= ...#UNS JWPHASE4
37RB ... BZE 3 P9Q [ZERO IF NO MESSAGE TO BE OUTPUT
37WG ...#UNS JWPHASE4
37^L ...#SKI
384Q BZE 3 P9 [ZERO IF NO MESSAGE TO BE OUTPUT
38JB ...P8A JMT 3,SWCT [J. IF MAG. TAPE
3942 LGEOG 3,7
39HL OUTBLOCN 7 [SET UP A PARAMETER BLOCK.
3=3= OUTPARC TIMENOW [TIME
3=GW OUTPACKC 7,1,GEOPER [GEOGRAPHIC NUMBER
3?2G OUTPACKC 5,1,PERINAME [PERIPHERAL NAME
3?G6 MONOUT JPER
3?^Q LDX 0 AWORK2(2)
3#FB BNG 0 P9 [NEG. IF OFFLINE
3#^2 LDN 4 0 [NO OLPAS IF ONLINE
3*DL TAPE CLOBJPERIS 3 [ZEROISE EXEC'S SCHEDULING COUNT
3*G8 ...VRSW
3*HQ ...#UNS JWPHASE4
3*K# ...(
3*LW ...TELLHLS
3*ND ... HLSINFORM (GEOERR),ONLINE,JOBNO(2),,SETSUP
3*Q2 ... BNZ 3 P9
3*RJ ... VFREEW ADATA,ASUP
3*T6 ...P9M1 LDX 2 FX2
3*WN ...)
3*Y= P9
3BCW STO 4 ACOMMUNE7(2) [NO. OF OLPAS FOR ROLPA
3BXG #SKI K6ALLGEO>99-99
3CC6 TRACE 5,PUTPER
3CWQ UP [FINISH
3DBB #
3DD# ...SWCT
3DG= ... LOBJPERIS 3,0
3DJ8 ...[ GET ANY PROGRAM TRANSFERS
3DL6 ... DECANTCT 3,0,OBJECT [REMOVE THEM
3DN4 ... NGX 0 0
3DQ2 ... DECANTCT 3,0,GEORGE [AND ADD IN TO GEORGE COUNT
3DRY ... BRN VRSW
3DW2 #
3F*L #
3FBM ...#UNS JWPHASE4
3FCN ...(
3FDP ...P9Q LDX 0 5
3FFQ ... SRL 0 15
3FGR ... ERN 0 6
3FHS ... BNZ 0 P9 [J IF NOT DISC
3FJT ... HUNTW 2,ADATA,ASUP [ASUP ALREADY SET UP FOR REAL DISC
3FKW ... BNG 2 P9M1 [SO DONT TELL HLS IF THERE ISNT ONE
3FLX ... LDX 0 A1(2)
3FMY ... ERN 0 6
3FN^ ... BNZ 0 P9M1
3FQ2 ... LDX 2 FX2
3FR3 ... BRN TELLHLS [TELL HLS DISC ONLINED
3FS4 ...)
3FT= MENDAREA 10,K100PUTPER
3G#W #
3GSG #
3H#6 #
3HRQ #END
^^^^ ...24364256001000000000