{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: EXINTWO866)}}
====== EXINTWO866 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CHAREA|CHAREA]], [[george:macro:CHUCK|CHUCK]], [[george:macro:CHUCKWR|CHUCKWR]], [[george:macro:CLOSEST|CLOSEST]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OPENST|OPENST]], [[george:macro:READSAVE|READSAVE]], [[george:macro:READST|READST]], [[george:macro:SAVEST|SAVEST]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:WRITEST|WRITEST]]
22FL ...#SEG EXINTWO70 [BACK
22^= #LIS K0EXINTWO
23DW 8HEXINTWO
23YG #DEF XCA=EVENT2
24D6 #
24XQ ... SEGENTRY K1EXINTWO,QK1EX [#1500 VIA ACROSS FROM EXINONE
25CB ... SEGENTRY K2EXINTWO,QK2EX [FENCE BREAKER
25X2 #
26BL ZMASK #37777777
26W= ZMASK1 #00777777
27*W Z6 +6
27TG # SET UP CELL WHOSE ADDRESS IS IN X2,ACTUAL CORE
28*6 # ADDRESS IN X1-LINK X6
28SQ ...XCELLSET
29#B STO 1 5(2) [STORE CORE ADDRESS
29S2 STO 4 4(2) [BS ADDR TO CELL
2=?L LDXC 0 1(1)
2=R= DVS 7 EDEPF(3) [CONVERT ABSOLUTE BLOCK NO.TO...
2?=W STO 7 2(2) [...CYLINDER/BLOCK
2?QG STO 0 0(2) [START BLOCK
2#=6 LDXC 0 2(1)
2#PQ BCS ZA32
2*9B ZA32 SBN 0 1 [END BLOCK
2*P2 DVS 7 EDEPF(3)
2B8L STO 7 3(2)
2BN= STO 0 1(2)
2C7W EXIT 6 0
2CMG ...XISITSCR [IS AREA(1) A SCRATCH AREA?
2DLQ SBX 6 FX1
2F6B MFINDSU 2,ARUNIT(3)
2FL2 LDXC 0 1(1) [START BLOCK NO-BIT 0
2G5L BCS ZA31
2GK= ZA31 LDN 7 0
2H4W ZA34 TXU 7 CSCRATCH(2) [ANY MORE SCRATCH AREAS?
2HJG BCS ZA30
2K3B LDX 7 1 [SAVE PTR
2KH2 LDX 2 3 [PTR TO GEXD
2L2L LDX 3 0 [BLOCK NO
2L4* ...#UNS IPBD
2L64 ...(
2L7R ... CHAREA ARUNIT(2),3,NC [CHECK IF AREA IN USE AS SCRATCH
2L9G ... MHUNTW 1,EWDAS,GEXD [..FILE OTHER PROCESSOR
2L?9 ...)
2L#Y ...#UNS IPBD
2LBM ...#SKI
2LDB ...(
2LG= CHAREA 3,ARUNIT(2),NB,NC,NC,NOC [SEE IF OTHER PROCESSOR HAS THIS
2L^W [..BLOCK IN USE AS SCRATCH FILE
2MFG NOC MHUNTW 1,EWDAS,GEXD
2MP# ...)
2M^6 MFINDSU 2,ARUNIT(1)
2NDQ LDX 0 3 [BLOCK NO
2NYB LDX 3 1 [PTR TO GEXD
2PD2 LDX 1 7
2PXL ADX 6 FX1
2QWW EXIT 6 1
2RBG ZA30 SMO 7
2RW6 TXU 0 HSCRATCH(2) [START BLOCK NO.A SCRATCH AREA?
2S*Q BCS ZA33
2T*2 ND ADX 6 FX1
2TSL EXIT 6 0
2W#= ZA33 ADN 7 1 [GO TO LOOK AT NEXT
2WRW BRN ZA34
2X?G ...NC LDX 0 3 [AREA IN USE IN OTHER PROCESSOR
2YQB MHUNTW 3,EWDAS,GEXD
2^=2 MFINDSU 2,ARUNIT(3)
2^PL ... LDX 1 7
329= BRN ND
338G #
33N6 ...XMALG SBX 6 FX1 [ON ENTRY X1 IS POINTER TO LAST...
347Q LDX 2 FX2 [WORD OF PREVIOUS CELL(P) AND AWORK4
34MB STO 6 AWORK1(2) [...IS POINTER TO SCH.X3 IS POINTER
3572 SMO 6(1) [...TO GEXD.
35LL LDXC 6 1 [LOAD START BLOCK FROM CELL+1
366= BCS ZA45 [CLEAR BIT 0...
36KW ZA45 STO 6 AWORK2(2) [REMEMBER IN AWORK2(2)
375G DVS 5 EDEPF(3) [CONVERT TO CYL/BLOCK
37K6 SMO 12(1)
384Q LDXC 7 2 [LOAD END BLOCK FROM CELL+2
38JB BCS ZA46 [CLEAR BIT 0
3942 ZA46 STO 7 AWORK3(2) [REMEMBER IN AWORK3(2)
39HL DVS 6 EDEPF(3) [CONVERT TO CYL/BLOCK
3=3= ADX 5 6 [ADD BLOCKS FROM CYL/BLOCK
3=GW BZE 5 ZA42 [IF ZERO FILE AREA IS...
3?2G LDCT 5 256 [...NOW FULL DEPTH
3?G6 ORS 5 AWORK3(2)
3?^Q ZA42 LDX 5 8(1) [UPDATE END CYLINDER/END BLOCK IN
3#FB STO 5 2(1) [...CELL+1
3#^2 LDX 5 10(1)
3*DL STO 5 4(1)
3*Y= LDX 6 5(1) [IS BACKING STORE ADDRESS OF CELL+1
3BCW TXL 6 11(1) [...LESS THAN THAT OF CELL+2
3BXG BCS ZA44 [BRANCH IF GREATER
3CC6 LDX 5 5(1)
3CWQ LDX 6 11(1) [BECAUSE WE MUST ALWAYS FREE HIGHEST
3DBB STO 5 11(1) [...ADDRESSED CELL WE SWITCH CELLS..
3DW2 STO 6 5(1) [...SO THAT WE CAN ALWAYS FREE CELL+2
3F*L LDX 5 6(1)
3FT= LDX 6 12(1)
3G#W STO 5 12(1)
3GSG STO 6 6(1)
3H#6 LDX 2 1
3HRQ SBN 2 5 [SETX2 TO POINT TO FIRSTWORD...
3J?B BRN ZA48 [OF PREVIOUS CELL
3JR2 ZA44 LDN 2 1(1) [SET X2 TO POINT TO CELL+1
3K=L ZA48 SMO 12(1)
3KQ= LDX 5 0 [COPY POINTER FROM CELL+2 TO CELL(2)
3L9W SMO 5(2)
3LPG STO 5 0
3M96 SBX 1 3 [REMEMBER POINTER TO PREVIOUS CELL
3MNQ STO 1 5 [...RELATIVE TO GEXD
3N8B WRITEST C,5(2),ZA49 [WRITE AWAY CELL(2)
3NN2 TESTREPNOT OK,ZAE9
3P7L ZA49 LDX 1 3
3PM= ADX 1 5 [RECREATE ABSOLUTE POINTER TO GEXD
3Q6W LDX 2 FX2
3QLG LDX 6 AWORK2(2)
3R66 SMO 6(1) [UPDATE STARTING/ENDING BLOCK FOR
3RKQ STO 6 1 [...NEW CELL(+1)
3S5B LDX 6 AWORK3(2)
3SK2 SMO 6(1)
3T4L STO 6 2
3TJ= WRITEST C,6(1),ZA50 [WRITE AWAY NEW CELL
3W3W TESTREPNOT OK,ZAE9
3WHG ZA50 SMO AWORK4(2)
3X36 LDN 1 12 [X1 IS POINTER TO VACANT CHAIN
3XGQ ZA53 LDX 6 0(1) [X6 IS PONTER TO NEXT VACANT CELL
3Y2B BZE 6 ZA51 [IF ZERO END OF CHAIN OTHERWISE...
3YG2 SMO 5 [...SEE IF OUR VACANT CELL SHOULD...
3Y^L TXL 6 11(3) [...FIT IN THE CHAIN AT THIS POINT
3^F= BCC ZA51 [BRANCH IF IT SHOULD
3^YW LDX 1 6 [READ NEXT CELL IN VACANT CHAIN
42DG READST 1,ZA53
42Y6 TESTREPNOT OK,ZAE9
43CQ LDX 1 ECOR(3) [X1 POINTS TO CELL JUST READ
43XB BRN ZA53
44C2 ZA51 SAVEST C,1 [SAVE THIS CELL
44WL LDX 7 1
45B= SMO 5 [POINT FREED CELL TO NEXT VACANT
45TW LDX 1 12(3)
46*G STO 6 0(1)
46T6 CHUCKWR C,1,ZA54 [MARK CELL TO BE WRITTEN
47#Q TESTREPNOT OK,ZAE9
47SB ZA54 SMO 5
48#2 LDX 0 11(3) [POINT PREVIOUS VACANT TO FREED CELL
48RL SMO 7
49?= STO 0 0
49QW CHUCKWR C,7,ZA55 [MARK CELL TO BE WRITTEN
4==G TESTREPNOT OK,ZAE9
4=Q6 ZA55 LDX 6 AWORK1(2) [LOAD LINK
4?9Q ADX 6 FX1 [DATUMISE LINK
4?PB EXIT 6 0
4#92 #
4#NL ZAE70 LDN 4 0 [X4=REPLY FOR BREAKIN
4*8= BRN ZCANT
4*MW ZA10 LDN 4 6 [X4=REPLY STORAGE UNIT NOT ONLINE
4B7G ZCANT ACROSS EXINONE,4
4BM6 ZAE6 LDN 4 4 [REPLY=INVALID AREA
4C6Q ZFR1 LDN 7 1 [MARKER FOR EXTEND
4CLB BRN ZJRB9
4D62 ZAE10 LDN 4 2 [REPLY=AREA WOULD CREATE TOO MANY...
4DKL LDCT 0 #400
4F5= SMO CELLA+5(3)
4FJW LDXC 7 2 [OK IF FULL DEPTH
4G4G BCC ZJRB8
4GJ6 ORS 0 CELLA+1(3) [NOT FULL DEPTH
4H3Q BRN ZJRB8 [...FENCES
4HHB ZAE9
4J32 ZAF9 LDCT 4 #40 [REPLY=FAILURE
4JGL BRN ZFR1
4K2= ZAE7 LDN 4 1 [REPLY=PART OR WHOLE OF AREA ASSIGNED
4KFW ZJRB8 NGN 7 1 [MARKER FOR EXTEND
4K^G MHUNT 3,EWDAS,GEXD
4LF6 CLOSEST ZJRB5 [CLOSE UNIT TO TRANSFER SYSTEM
4LYQ TESTREPNOT OK,ZAE9
4MDB ZJRB9 MHUNT 3,EWDAS,GEXD
4MY2 ZJRB5 LDCT 0 128
4NCL ANDX 0 EMARK(3) [SEE IF MODE #1500...
4NX= BZE 0 ZJRB6 [...BRANCH IF SO
4PBW ACROSS SCEXEND,3
4PWG ZJRB6 ACROSS EXINONE,5
4QB6 #
4QTQ QK1EX
4R*B MHUNT 3,EWDAS,GEXD
4RT2 MFINDSU 1,ARUNIT(3) [ASTUC FOR AREA UNIT
4S#L LDX 7 AREQT+1(3)
4SS= TXL 7 HCYL(1) [MAKE SURE AREA REQUIRED...
4T?W BCC ZAE6 [...BY OBJ PROG IS WITHIN...
4TRG LDX 7 AREQT+3(3) [...DEVICES BOUNDARIES
4W?6 TXL 7 HBLOCK(1)
4WQQ BCC ZAE6
4X=B LDX 0 AREQT+2(3)
4XQ2 LDX 7 AREQT(3) [CHANGE CYL/BLOCK ADDRESS...
4Y9L MPA 7 HBLOCK(1) [...TO BLOCK ADDRESS
4YP= STO 0 ARQS(3)
4^8W OPENST ARUNIT(3) [OPEN AREA UNIT
4^NG LDN 0 128
5286 READSAVE 0,ZA25 [READ AND SAVE SCH
52MQ TESTREPNOT OK,ZAF9
537B ZA25 LDX 4 ECOR(3) [ADDR OF SCH
53M2 SMO FX2
546L STO 4 AWORK4 [REMEMBER ADDRESS OF SCH
54L= SMO ECOR(3)
555W LDN 1 10 [ADDRESS OF UNUSED FILE...
55KG STO 1 CELLA+5(3) [...AREA CHAIN
5656 STOZ CELLB+5(3) [CELL IS NOT YET READ
56JQ SAVEST C,1 [SAVE SCH TWICE
574B ZA37 LDX 4 0(1) [ADDRESS OF NEXT FILE AREA CELL
57J2 BZE 4 ZAE7 [REPLY 1 IF END OF CHAIN
583L LDX 0 CELLA+5(3)
58H= STO 0 CELLP(3) [REMEMER CORE POINTER OF LAST CELL
592W LDX 0 CELLB+5(3)
59GG BNZ 0 ZA28
5=26 READSAVE 4,ZA29 [READANDSAVE NEXT FILE AREA CELL
5=FQ TESTREPNOT OK,ZAF9
5=^B LDX 1 ECOR(3) [CORE ADDRESS OF CELL
5?F2 ZA29 LDN 2 CELLA(3)
5?YL ... CALL 6 XCELLSET [SET UP CELLA
5#D= ...ZA36 CALL 6 XISITSCR [SEE IF SCRATCH AREA
5#XW BRN ZA35 [BRANCH IF SO
5*CG LDX 7 ARQS(3) [BRANCH IF AREA NOT VACANT
5*X6 TXL 7 0
5BBQ BCS ZAE7 [IS ARQS LESS THAN START BLOCK OF A
5BWB QK2EX
5CB2 MHUNT 3,EWDAS,GEXD
5CTL ZA41 SMO CELLA+5(3) [FENCE BREAKER
5D*= LDX 4 0 [LOAD ADDRESS OF NEXT CELL
5DSW BZE 4 ZA38 [BRANCH IF NO MORE
5F#G READSAVE 4,ZA39 [READ NEXT FILE AREA CELL
5FS6 TESTREPNOT OK,ZAF9
5G?Q LDX 1 ECOR(3)
5GRB ZA39 LDN 2 CELLB(3)
5H?2 ... CALL 6 XCELLSET [SET UP CELLB IN GEXD...
5HQL ... CALL 6 XISITSCR [...AND SEE IF SCRATCH AREA
5J== BRN ZA38
5JPW SMO CELLA+5(3)
5K9G LDXC 5 2 [IS CELLA A FULL DEPTH AREA...
5KP6 BCC ZA40 [...BRANCH IF SO
5L8Q LDX 5 CELLA(3)
5LNB LDX 6 CELLA+1(3) [IS CELLB SAME CYLINDERS AS CELLA...
5M82 TXU 5 CELLB(3) [...AND STARTING BLOCK NEXT...
5MML TXU 6 CELLB+1(3) [...AFTER CELLA
5N7= BCS ZA38
5NLW LDX 5 CELLB+2(3)
5P6G SBN 5 1 [IS AREA SPECIFIED IN CELLB...
5PL6 TXU 5 CELLA+3(3) [IMMEDIATELY AFTER THAT SPECIFIED...
5Q5Q BCS ZA38 [BY CELLA?-SAME CYLINDERS ADJACENT
5QKB ZA56 LDN 1 CELLP(3) [BLOCKS
5R52 ... CALL 6 XMALG [AMALGAMATE CELLB INTO CELLA
5RJL STOZ CELLB+5(3)
5S4= BRN ZA41
5SHW ZA28 LDN 7 CELLB(3) [CELLB TO CELLA
5T3G LDN 0 CELLA(3)
5TH6 MOVE 7 6
5W2Q STOZ CELLB+5(3) [CELLB NOT YET READ
5WGB LDX 1 CELLA+5(3)
5X22 BRN ZA36
5XFL ZAA3
5X^= ZA35 CHUCK C,CELLP(3) [CHUCK IF SCRATCH AREA
5YDW BRN ZA37
5YYG ZA40 LDX 5 CELLA+1(3) [DOES CELLB START AT BLOCK 0 OF...
5^D6 ADN 5 1 [NEXT CYLINDER AFTER CELLA?
5^XQ TXU 5 CELLB(3)
62CB BCS ZA38 [BRANCH IF NOT
62X2 LDX 5 CELLB+2(3)
63BL BNZ 5 ZA38
63W= ZA58 SMO CELLB+5(3)
64*W LDXC 5 2 [IS CELLB A FULL DEPTH AREA...
64TG BCC ZA56
65*6 SMO CELLB+5(3) [IF NOT SEE IF WE CAN AMALGAMATE...
65SQ LDX 4 0 [ANOTHER CELL WITH CELLB TO...
66#B BZE 4 ZA38 [MAKE IT FULL DEPTH
66S2 READST 4,ZA57 [IF ANOTHER VACANT CELL READ IT
67?L TESTREPNOT OK,ZAF9
67R= LDX 1 ECOR(3)
68=W ...ZA57 CALL 6 XISITSCR [IS IT A SCRATCH AREA...
68QG BRN ZA38 [BRANCH IF SO
69=6 LDX 1 ECOR(3)
69PQ LDN 2 CELLC(3)
6=9B ... CALL 6 XCELLSET [SET UP CELLC WITH INFO FROM CELL
6=P2 LDX 5 CELLC(3)
6?8L LDX 6 CELLC+1(3) [IS CELLC SAME CYLINDERS AS CELLB...
6?N= TXU 5 CELLB(3) [AND STARTING BLOCK NEXT AFTER CELLB
6#7W TXU 6 CELLB+1(3)
6#MG BCS ZA38 [BRANCH IF NOT
6*76 LDX 5 CELLC+2(3)
6*LQ SBN 5 1
6B6B TXU 5 CELLB+3(3)
6BL2 BCS ZA38 [BRANCH IF NOT
6C5L SAVEST C,CELLC+5(3) [SAVE THIS CELL AND AMALGAMATE...
6CK= LDN 1 CELLA+5(3) [...WITH PREVIOUS CELL
6D4W ... CALL 6 XMALG
6DJG BRN ZA58
6F46 ZA38 LDCT 0 #200
6FHQ ANDX 0 EMARK(3) [SEE IF MODE #1500
6G3B BZE 0 ZA38A [BRANCH IF #1500
6GH2 ACROSS SCEXEND,2
6H2L ZA38A LDX 1 CELLA+5(3) [IS CELLA THE AREA REQUESTED
6HG= LDX 5 1(1)
6H^W ZA59 TXU 5 ARQS(3)
6JFG BCC ZA60 [BRANCH IF EQUAL
6J^6 LDX 5 AREQT(3)
6KDQ TXL 5 CELLA(3) [DOES AREA REQUESTED START...
6KYB BCS ZAA3 [...WITHIN AREA SPECIFIED BY CELLA?
6LD2 TXL 5 CELLA+1(3)
6LXL BCS ZA61 [IF IT DOESN'T GO TO TRY NEXT AREA
6MC= TXU 5 CELLA+1(3)
6MWW BCS ZAA3
6NBG ZA61 LDX 5 AREQT+2(3)
6NW6 TXL 5 CELLA+2(3) [IS START BLOCK OF AREA REQUESTED...
6P*Q BCS ZAA3 [LESS THAN START BLOCK OF CELLA...
6PTB TXL 5 CELLA+3(3) [AND IS IT LESS THAN END BLOCK...
6Q*2 BCS ZA62 [OF CELLA
6QSL TXU 5 CELLA+3(3)
6R#= BCS ZAA3
6RRW ZA62 LDX 5 AREQT+1(3) [ENDING CYLINDER...
6S?G TXL 5 CELLA+1(3) [...LESS THAN ENDING CYLINDER...
6SR6 BCS ZA63 [...OF UNALLOCATED AREA?
6T=Q TXU 5 CELLA+1(3)
6TQB BCS ZAE7 [REPLY 1
6W=2 ZA63 LDX 5 AREQT+3(3) [ENDING BLOCK...
6WPL TXL 5 CELLA+3(3) [...LESS THAN ENDING BLOCK...
6X9= BCS ZAE10 [...OF UNALLOCATED AREA?
6XNW TXU 5 CELLA+3(3)
6Y8G BCS ZAE7 [REPLY 1
6YN6 BRN ZAE10 [REPLY 2
6^7Q ZA60 LDX 5 CELLB+5(3) [OK SO FAR
6^MB BZE 5 ZA64 [HAS CELLB BEEN READ?
7272 CHUCK C,5 [IF SO CHUCK
72LL ZA64 LDX 5 AREQT+1(3) [ENDING CYLINDER...
736= TXL 5 CELLA+1(3) [...LESS THAN ENDING CYLINDER...
73KW BCS ZA65 [...OF UNALLOCATED AREA?
745G TXU 5 CELLA+1(3)
74K6 BCS ZAE7 [REPLY 1
754Q ZA65 LDN 6 0 [X6=COUNT OF VACANT CELLS REQUIRED
75JB LDX 5 AREQT+3(3)
7642 TXU 5 CELLA+3(3) [IS UNALLOCATED AREA EXACTLY...
76HL BCC ZA66 [...THE RIGHT LENGTH?
773= ADN 6 1 [IF NOT ADD 1 TO COUNT OF CELLS
77GW ORX 6 GSIGN
782G TXL 5 CELLA+3(3)
78G6 BCC ZAE7 [BRANCH IF AREA NOT LONG ENOUGH
78^Q ZA66 LDX 5 AREQT+1(3)
79FB TXU 5 CELLA+1(3) [IS AREA EXACTLY RIGHT WIDTH?
79^2 BCC ZAA6 [BRANCH IF SO
7=DL SMO CELLA+5(3) [UNALLOCATED AREA MUST BE FULL...
7=Y= LDXC 5 2 [...DEPTH FOR O/P PERI TO BE LEGAL-
7?CW BCS ZAE10 [OTHERWISE ILLEGAL FENCE BREAKING
7?XG BCHX 6 £ [+1 TO NUMBER OF VACANT CELLS
7#C6 ADN 6 1
7#WQ ZAA6 ACROSS EXINTO,3
7*BB #
7*W2 MENDAREA 30,K99EXINTWO
7B*L #END
^^^^ ...56117506000200000000