{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: SCEX866)}}
====== SCEX866 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:CLOSEST|CLOSEST]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:DOWN|DOWN]], [[george:macro:EXMESS|EXMESS]], [[george:macro:EXOFILE|EXOFILE]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCORE|GETCORE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFINDEXOF|MFINDEXOF]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:MOVLONG|MOVLONG]], [[george:macro:MUSEST|MUSEST]], [[george:macro:OPENST|OPENST]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:PROGBRKIN|PROGBRKIN]], [[george:macro:READST|READST]], [[george:macro:RELST|RELST]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STEPBACK|STEPBACK]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:TWAIT|TWAIT]], [[george:macro:UNLOCKSU|UNLOCKSU]], [[george:macro:USEST|USEST]]
22FL ...#SEG SCEX70 [FRANK BLUNDELL
22^= #LIS K0SCEX
23DW 8HSCEX
23YG # THIS SEGMENT DOES EXTEND AND OPEN SCRATCH FILE
24D6 # IT IS ENTERED FROM SEGMENTS EXTEND AND SCRATCH,IN CPA,
24XQ # WITH PERI OR COMMAND CHECKED AND /GEXD BLOCK SET UP
25CB #
25X2 #
26BL SEGENTRY K1SCEX
26W= MHUNTW 3,EWDAS,GEXD
27*W #SKI K6SCEX>99-99
27TG TRACE BREQ(3),SCEX
28*6 #SKI K6SCEX>299-299
28SQ (
29#B TRACE EMARK(3),SCEXMARK
29S2 TRACE CEFN(3),SCEXCEFN
2=?L )
2=R= LDN 0 1
2?=W STO 0 BAVAIL(3) [SET DEFAULT 'LARGEST AREA'
2?QG LDX 0 EMARK(3)
2#=6 BNG 0 SCR [J IF SCRATCH FILE
2#PQ # S-TRUSTED CHECK
2*9B RFIP
2*P2 MFINDEXOF 1,CEFN(3) [FIND OUR EXOF
2B8L LDCT 4 4
2BN= ANDX 4 EXMARK(1)
2C7W SLL 4 6 [GET S-TRUSTED MARKER IN B0
2CMG ORX 4 ALOGLEN(1) [
2D76 CALL 7 XHOME [GET HOME UNIT ONLINE
2DLQ LDXC 4 4
2F6B BCC REX [J IF NOT S-TRUSTED,ELSE REREAD FIP
2FL2 GETCORE 4,1
2G5L FINDCORE 2
2GK= MHUNTW 3,EWDAS,GEXD
2H4W MFINDEXOF 1,CEFN(3)
2HJG LDN 5 ATYPE(1)
2J46 LDN 6 ATYPE(2)
2JHQ ... ADN 4 A1-ATYPE [COPY OUR EXOF
2K3B ... MOVLONG 5,6,4 [INTO ACTIVITY CHAIN
2KH2 LDN 0 BOPEN+BSPEC+BSERL+BLOCK
2L2L STO 0 EXMARK(2) [SET MARKER,OPEN,GEN/SER SPECIFIEDETC
2LG= LDX 4 EMARK(3) [SAVE EMARK AND
2L^W LDX 5 HMUNIT(3)
2MFG STOZ EMARK(3) [CLEAR FOR
2M^6 DOWN EXOPEN,1 [EXOPEN - FIND FILE
2NDQ TESTREP EXFAIL,XN9 [J IF NOT FOUND OR ERROR
2NYB MHUNTW 3,EWDAS,GEXD
2PD2 MHUNTW 1,EWDAS,EXOF
2PXL LDX 5 HOME(1) [ELSE
2QC= FREECORE 1 [FREE EXOF IN ACTIVITY CHAIN
2QWW MFINDEXOF 1,CEFN(3)
2RBG STO 5 HOME(1) [RESET HOME IN OUR EXOF
2RW6 STO 4 EMARK(3) [RESTORE EMARK
2S*Q REX
2STB MHUNTW 3,EWDAS,GEXD
2T*2 MFINDSU 1,HMUNIT(3) [FIND ITS ASTUC
2TSL LDX 7 CEXTEND(1)
2W#= ADN 7 1
2WRW STO 7 CEXTEND(1) [ADD 1 TO COUNT OF EXTENDS
2X?G OPENST HMUNIT(3) [OPEN HOME UNIT FOR TRANSFERS
2XR6 LDN 4 140
2Y=Q XC2 READST 4,XC1 [READ HEAD OF VACANT CHAIN/NEXT CELL
2YQB TESTREPNOT OK,XN11 [J IF FAIL
2^=2 LDX 1 ECOR(3)
2^PL XC1 LDX 4 0(1) [POINTER TO NEXT CELL
329= BZE 4 XN10 [J IF ZERO,SCA FULL
32NW BCT 7 XC2 [ELSE REDUCE COUNT AND GET NEXT
338G LDX 7 HMUNIT(3) [OK,[COUNT OF EXTENDS] VACANT CELLS
33N6 CLOSEST XC3 [CLOSE DOWN HOME UNIT
347Q #SKI K6SCEX>399-399
34MB (
3572 TESTREP OK,XC3
35LL XC4 GEOERR 1,CLFAIL?
366= )
36KW XC3 UNLOCKSU 7 [UNLOCK,BUT DONT RELEASE
375G #
37K6 MHUNTW 3,EWDAS,GEXD [AND
384Q BRN XALT [GO TO ADD AREA
38JB SCR SLL 0 3
3942 BPZ 0 XALT [J UNLESS OPEN
39HL LDX 6 BKSIZE(3)
3=3= SETNCORE FDCELLS-A1+6,1,EWDAS,EXOF [SET UP EXOF FOR NEW SCRFILE
3=GW STOZ A1(1)
3?2G LDN 4 A1(1)
3?G6 LDN 5 A1+1(1)
3?^Q MOVE 4 FDCELLS-A1+5 [ZEROISE
3#FB STOZ BACK1(1)
3#^2 LDN 7 1
3*DL STO 7 COPEN(1) [COUNT OF OPENS=1
3*Y= LDCT 0 #600
3BCW STO 0 EXMARK(1) [MARKER=SCRATCH,OPEN FOR WRITING
3BXG LDCT 0 #200 [IC=1
3CC6 ADN 0 1 [AREAS=1
3CWQ STO 0 FIP+5(1)
3DBB STO 6 FIP+8(1) [BUCKET SIZE
3DW2 STO 7 FBUK(1) [FBUK=1
3F*L LDX 6 1
3FT= EXOFILE 6 [CHAIN IN NEW EXOF
3G#W LDX 1 6
3GSG #SKI K6SCEX>299-299
3H#6 TRACE BACK2(1),SCR EFN
3HRQ LDX 6 BACK2(1)
3J?B MHUNTW 3,EWDAS,GEXD
3JR2 STO 6 CEFN(3) [SAVE EXOFILE NUMBER
3K=L BRN SUNIT [GO TO GET AREA UNIT
3KQ= #
3L9W XALT
3LPG MFINDEXOF 1,CEFN(3) [FIND OUR EXOF
3M96 LDEX 4 FIP+5(1)
3M*3 ... STO 4 5
3MDY ... SBN 5 511
3MJT ... BPZ 5 XN16
3MNQ SLL 4 1
3N8B LDX 5 4
3NN2 SLL 4 1
3P7L ADX 4 5 [AREAS*6
3PM= LDX 5 CEFN(3)
3Q6W LDX 3 4
3QLG ADN 4 FDCELLS-A1+5
3R66 TXL 4 ALOGLEN(1)
3RKQ BCS XAOK [J IF LONG ENOUGH FOR ANOTHER AREA
3S5B #SKI K6SCEX>299-299
3SK2 (
3T4L SBN 4 6
3TJ= TXL 4 ALOGLEN(1)
3W3W BCS XALT1
3WHG GEOERR 1,EXOFLEN?
3X36 XALT1 ADN 4 6
3XGQ )
3Y2B ADN 4 1
3YG2 LDX 6 1
3Y^L ALTLEN 6,4 [ELSE ALTLEN
3^F= MFINDEXOF 1,5
3^YW XAOK LDN 0 1
42DG ADS 0 FIP+5(1) [ADD 1 TO COUNT OF AREAS
42Y6 ADN 3 FDCELLS(1)
43CQ LDN 4 1(3)
43XB STOZ 0(3)
44C2 MOVE 3 5 [ZEROISE NEW CELL
44WL SUNIT
45B= ACROSS NEXTUNIT,1 [GO TO GET AREA UNIT
45TW #
46*G #
46T6 #
47#Q # S/R TO GET HOME UNIT ONLINE AND LOCKED
47SB #
48#2 XHOME
48RL SBX 7 FX1
49?= MHUNTW 3,EWDAS,GEXD
49QW LDX 5 HMUNIT(3) [GET SUSN
4==G LDCT 6 #10
4=Q6 ANDX 6 EMARK(3) [AND MODE *4000 MARKER
4?6L ...#UNS IPBD
4?H6 ...XH5A USEST 5,XH1,,XH5,XH4A [GET UNIT LOCKED IF ONLINE
4?XL ...#UNS IPBD
4##6 ...#SKI
4#NL USEST 5,XH1,,XH5,XH4 [IS UNIT ONLINE,LOCK IF SO
4*8= XH2 ADX 7 FX1 [EXIT
4*MW EXIT 7 0
4B7G XH1 BZE 6 XH3 [NOT ONLINE,J UNLESS SUPRESS LOAD
4BM6 LDCT 7 #400
4C6Q ORN 7 6 [SET REPLY 6
4CLB BRN XN7 [AND END
4D2W ...#UNS IPBD
4DCB ...XH3 MUSEST 5,XH4,XH5,,XH4A [DEMAND UNIT
4DRW ...#UNS IPBD
4F8B ...#SKI
4FJW XH3 MUSEST 5,XH4,XH5,,XH4 [GET UNIT ONLINE
4G4G BRN XH2 [EXIT IF GOT
4G64 ...#UNS IPBD
4G7L ...(
4G98 ...#
4G=Q ...# IPB DOWN
4G## ...#
4G*W ...XH4A TWAIT 5,XH5 [WAIT FOR IPB
4GCD ... BRN XH5A [TRY AGAIN
4GF2 ...#
4GGJ ...)
4GJ6 XH4 LDCT 7 #440 [REPLY FAIL IF CANTDO
4H3Q BRN XN7
4HHB XH5 MHUNTW 3,EWDAS,GEXD [IF BREAKIN
4J32 LDCT 6 #100
4JGL ANDX 6 EMARK(3)
4K2= FREECORE 3 [FREE GEXD
4KFW BZE 6 XH6 [J PERI
4K^G COMBRKIN [AND
4LF6 XH6 STEPBACK [ACKNOWLEDGE
4LYQ PROGBRKIN [BREAKIN
4MDB #
4MY2 #
4NCL #
4NX= # FAIL TO GET HOME UNIT,REPLY IN X7
4PBW XN7 MHUNTW 3,EWDAS,GEXD
4PWG LDX 4 CNR(3)
4QB6 LDX 5 EXCHNL(3)
4QTQ FREECORE 3 [FREE GEXD
4R*B XN13 EXMESS ALL [MESSAGES
4RT2 ACROSS NEXTUNIT,4 [SET REPLIES AND END
4S#L # FAIL IN REREADING FIP (S-TRUSTED)
4SS= XN9 MFREE EWDAS,EXOF [FREE COPY OF EXOF IN ACTIVITY CHAIN
4T?W UNLOCKSU 5 [UNLOCK AND
4TRG RELST 5 [RELEASE HOME UNIT
4W?6 LDCT 7 #440 [SET FAIL REPLY
4WQQ BRN XN7 [AND END
4X=B #
4XQ2 XN10 LDCT 7 #400 [SET REPLY SCA FULL
4Y9L MHUNTW 3,EWDAS,GEXD
4YP= CLOSEST XN12 [CLOSE DOWN
4^8W #SKI K6SCEX>399-399
4^NG TESTREPNOT OK,XC4
5286 BRN XN12 [AND GO TO END (EVEN IF FAIL)
52MQ #
537B XN11 LDCT 7 #440 [SET FAIL REPLY
53M2 XN12 MHUNTW 3,EWDAS,GEXD
546L MFINDSU 1,HMUNIT(3) [FIND ASTUC FOR HOME UNIT
54L= LDN 0 1
555W SBS 0 CEXTEND(1) [SUBTRACT 1 FROM COUNT OF EXTENDS
55KG #SKI K6SCEX>399-399
5656 (
56JQ LDX 0 CEXTEND(1)
574B BNG 0 XC4
57J2 )
583L LDX 4 CNR(3)
58H= LDX 5 EXCHNL(3)
592W LDX 6 HMUNIT(3)
59GG FREECORE 3 [FREE GEXD
5=26 UNLOCKSU 6 [UNLOCK
5=FQ RELST 6 [AND RELEASE HOME UNIT
5=^B BRN XN13 [AND END
5?98 ...# ROUTINE TO OUTPUT MESSAGE + ERROR CODE FOR > 511 FILE AREAS
5?F2
5?YL #
5#D= #
5#DT ...REP1 #40000003
5#FD ...XN16 MHUNTW 3,EWDAS,GEXD
5#G3 ... LDX 4 CNR(3)
5#GL ... LDX 5 EXCHNL(3)
5#H9 ... LDX 0 EMARK(3)
5#HS ... BNG 0 XN18
5#JC ... LDX 6 HMUNIT(3)
5#K2 ... MFINDSU 1,6
5#KK ... LDN 0 1
5#L8 ... SBS 0 CEXTEND(1)
5#LR ... RELST 6
5#MB ... LDX 2 FX2
5#M^ ... MFINDEXOF 1,CEFN(3)
5#NJ ... LDN 7 FIP(1)
5#P7 ... LDN 0 ACOMMUNE1(2)
5#PQ ... MOVE 7 3
5#Q* ... LDN 7 12
5#QY ... OUTPARAM 7,ACOMMUNE1
5#RH ... MONOUT EWTMFI
5#RS ... MHUNTW 3,EWDAS,GEXD
5#S6 ... FREECORE 3
5#SP ...XN17 LDX 7 REP1(1)
5#T# ... BRN XN13
5#TX ...XN18 FREECORE 3
5#WG ... MONOUT EWTMSC
5#X5 ... BRN XN17
5#XW MENDAREA 40,K99SCEX
5*CG #END
^^^^ ...01375113000300000000