{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ORELHALF82)}}
====== ORELHALF82 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDMODE|ADDMODE]], [[george:macro:APVSF|APVSF]], [[george:macro:BS|BS]], [[george:macro:BXU|BXU]], [[george:macro:COOR3|COOR3]], [[george:macro:DOWN|DOWN]], [[george:macro:FINDFCB|FINDFCB]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GFCB|GFCB]], [[george:macro:JBC|JBC]], [[george:macro:JMBAC|JMBAC]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSET|LONGSET]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:READ|READ]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:SETREP2|SETREP2]], [[george:macro:TESTMODE|TESTMODE]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TOPFCA|TOPFCA]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEIF|TRACEIF]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:VFREEW|VFREEW]]
22FL [
22^= [THIS IS A TIDIED-UP VERSION WITH MODETEST & BITSETTING MACROS
23DW [
23YG ... SEG ORELHALF,8,ROB RUSHTON ,OPEN
24D6 SEGENTRY K1ORELHALF,Z1ORELHALF
24XQ SEGENTRY K2ORELHALF,Z2ORELHALF
25CB [
25X2 XGETFCB
26BL GFCB 6,3 [FIND FCB WITH UNIQUE NUMBER = [X6]
26W= EXIT 2 0
27*W [THIS ROUTINE TESTS WHETHER THE FCB INDICATED BY X2 CAN BE OPENED
27TG YCOP
28*6 JMBAC OK,2,BFFCB,BFMCOP [MUST WAIT IF FILE OPEN OR BEING OPEN
28SQ [COPY MODE: ELSE OK
29#B BRN WAIT [IS ALREADY OPEN
29S2 TRYREEL
2=?L TESTMAIN 7,YCOP,,COPY [J IF COPY
2=R= TESTMODE 7,ORDINARY,NOT,EMPTY
2?=W OPDIR GEOERR 1,DIREMPTY [OPENREL EMPTY ON A DIRECT-ORY
2?QG [NO ONE CAN BE USING THE FILE IN ANY SENSE IN THE MULTI-REEL/EMPTY CASE.
2#=6 [WE MIGHT AS WELL DO THE SAME FOR ONE REEL.
2#PQ ORDINARY
2*9B LDX 4 CTOPEN(2) [PICK UP OPEN MODE:
2*P2 TRACEIF K6ORELHALF,199,299,4,CTOPEN
2B8L [FORMAT IS; L.S. 12 BITS,COUNT OF READ OPENERS. NEXT L.S. 9 BITS,COUNT
2BN= [OF APPEND OPENERS. B0=SOLE OPENER BIT B1=COMMUNAL BIT.
2C7W BZE 4 OK [CARRY ON IF FCB OPEN
2CMG TESTMAIN 7,WAIT,NOT,READING
2D76 LDX 0 4
2DLQ SRL 0 12 [ISOLATE APPEND COUNT & SOLE BIT
2F6B ANDN 0 #5777 [RID OF COMMUNE BIT.
2FL2 BNZ 0 WAIT [WAIT IF NOT OPEN IN READ
2G5L OK EXIT 6 0
2GK= [
2H4W Z1ORELHALF
2HJG OPENMAST
2HS# ... STOZ AWORK4(2)
2J46 STOZ AWORK1(2)
2JHQ LDX 7 ACOMMUNE7(2)
2K3B ADDMODE 7,CAREFUL,LEAVE,DIROPEN [AS NO ENT OR
2KH2 CLEARMOD 7,REPLY [GET RID OF REPLY MODE
2L2L TRACE 7,OPENMAST
2LG= LDX 3 BFILE [X3 -> FCB OF MASTER
2L^W BRN ONEREEL
2MFG [
2M^6 Z2ORELHALF
2N8Y ... STOZ AWORK4(2)
2NDQ LDN 0 4
2NYB STO 0 AWORK1(2) [STORE HALFOPEN MARKER
2PD2 LDX 6 ACOMMUNE8(2) [LEVEL IN FABSNB
2PXL LDX 7 ACOMMUNE7(2) [MODES
2QC= FINDFCB 6,3
2QWW TESTREP2 OK,XERAZ
2RBG BRN UPPLUS1
2RW6 XERAZ
2S*Q ... JBC XHAOK,3,BFOPENERASE [J IF BEING ERASED!
2STB TESTMODE 7,XNF,,ERASING,THAW [J IF ERASING OR THAW MODES PRESENT
2T*2 SETREP2 NOFILE
2TSL BRN TUPP
2W#= XNF
2WRW SETREP2 NOTFOUND
2X?G BRN TUPP
2XR6 XHAOK
2Y=Q TESTMODE 7,XMADE,,DIREPLY
2YQB CLEARMOD 7,REPLY
2^=2 XMADE
2^PL ADDMODE 7,LEAVE,DIROPEN [FOR HALFOPEN
329= BRN ONEREEL
32NW WAIT
338G LDN 4 0
33N6 TESTMODE 7,OOR3,NOT,REPLY [WAIT UNLESS REPLY MODE GIVEN
347Q SAYCANT
34MB WENT
3572 TESTMODE 7,MENT,,LEAVE [FREE ENT UNLESS LEAVE MODE
35LL MFREE FILE,ENT
366= MENT
36KW BNG 4 SCLD [J IF CLUDGE
375G SETREP CANT
37K6 BRN REPG [REPLY SET
384Q SCLD SETREP CLUDGE
38JB TOPFCB 2 [X2 -> FCB OF FILE OPEN AT TOP LEVEL
3942 BXU 6 BACK2(2),REPG [TEST FOR CLUDGE AT TOP LEVEL
39HL TOPFCA 2
3=3= BS 2,BACLUDGE [SET BIT FOR COPY IF CLUDGE (??)
3=GW BRN UPPLUS1
3?2G OOR3
3?G6 LDN 0 1
3?^Q ADS 0 FWAITCOUNT(3) [ADD ONE TO THE COUNT OF WAITERS
3#FB LDX 5 BACK1(3)
3#^2 LDX 6 BACK2(3) [PICK UP BACKING STORE HOME PAIR
3*DL LONGSET 6,XSET,6 [SET WAITING STYLE
3*Y= DOWN OPENWAIT,3 [TEST FOR CLUDGE
3BCW BRN NCLD [NO CLUDGE IF COMES STRAIGHT UP
3BXG NGN 4 1 [SET CLUDGE MARKER
3CC6 CALL 2 XGETFCB [FIND FCB AGAIN
3CWQ LDN 0 1
3DBB SBS 0 FWAITCOUNT(3) [NO LONGER GOING TO WAIT
3DW2 BRN SAYCANT [REMOVE UNCLEAN BIT AND CLEAR UP
3F*L NCLD
3FT= PAR LONGOFF
3FWS ... LDX 0 AWORK4(2)
3FYB ... BNZ 0 NOMESS
3F^Y ... CALL 2 XGETFCB
3G3G ... JBC WCOOR,3,BFFREZ [J IF FILE NOT FROZEN BY DUMPER.
3G54 ... OUTPACK FME1(3),3,USERNAME [PREPARE USERNAME OF DIRECTORY AS
3G6L ... MONOUT INCFREZD [OUTPUT PARM. OUTPUT 'WAITING' MESSAG
3G88 ... LDN 4 1
3G9Q ... STO 4 AWORK4(2)
3G?# ...NOMESS
3G#W CALL 2 XGETFCB [FIND FCB AGAIN
3GJN ...WCOOR
3GSG LDX 0 CTOPEN(3) [TEST IF FILE HAS BECOME FREE
3H#6 BZE 0 SDFCB
3HRQ TRACEIF K6ORELHALF,199,299,6,ORELCOOR
3J?B COOR3 6 [WAIT FOR OBSTRUCTION TO CLEAR:
3JR2 TESTMODE 7,QTEST,NOT,REPWAIT
3K=L SETDIRC
3KQ= CALL 2 XGETFCB
3L9W LDN 0 1
3LPG SBS 0 FWAITCOUNT(3) [REPLY DIRECTORY HAS BEEN CLOSED
3M96 SETREP DIRCLOSE
3MNQ XDC
3N8B TESTMODE 7,UPPLUS1,,LEAVE [FREE ENT UNLESS LEAVE MODE GIVEN
3NN2 VFREEW FILE,ENT
3P7L XUP
3PM= REPG
3Q6W TUPP
3QLG UPPLUS1
3R66 UPPLUS 1
3RKQ QTEST
3S5B SFCBA
3SK2 CALL 2 XGETFCB [GET X3 -> FCB AGAIN
3T4L SDFCB
3TJ= LDN 0 1 [REMOVE THIS ACTIVITY FROM THE
3W3W SBS 0 FWAITCOUNT(3) [COUNT OF WAITERS.
3WHG ONEREEL
3X36 LDX 2 3 [X2 -> REEL TO BE OPENED:
3XGQ TESTMODE 7,NR,NOT,ERASE
3Y2B BS 2,BFERASE [SET 'TO BE ERASED' BIT IF ERASE MODE
3YG2 NR
3Y^L CALL 6 TRYREEL
3^F= OFCB
3^YW LDX 5 BACK1(3) [PICK UP HOME PAIR OF FCB.
42DG LDX 6 BACK2(3)
42Y6 TESTMAIN 7,NCOP,NOT,COPY
43CQ BS 3,BFFCB [SET 'DON'T MOVE FCB' BIT IF COPY MOD
43XB BRN OPENFCBED
44C2 NCOP
44WL TESTMAIN 7,READ,,READING
45B= TESTMAIN 7,SOLE,,CLEAN
45TW TESTMODE 7,NUWB,,CAREFUL
46*G BS 3,BFUWB [SET UWB UNLESS CAREFUL
46T6 NUWB
47#Q TESTMAIN 7,RAPP,,APPEND
47SB SOLE LDCT 0 #400 [SOLE OPENER, JUST ONE BIT TO STORE
48#2 ORS 0 CTOPEN(3)
48RL BRN OPENFCBED
49?= READ LDN 0 1
49QW ADS 0 CTOPEN(3) [INCREASE COUNT OF READERS.
4==G BRN OPENFCBED [[CHECK IT IS SMALL?
4=Q6 RAPP LDN 0 #4000
4?9Q ADX 0 0
4?PB ADS 0 CTOPEN(3) [INCREASE COUNT OF APPENDERS. <1024
4#92 OPENFCBED
4#DS ... APVSF UP [ADJUST ACT PRI
4#NL ACROSS ORELEND,1
4*8= XSET GEOERR 1,ORELHALF
4*MW [
4B7G MENDAREA GAPOPEN,K99ORELHALF
4BM6 #END
^^^^ ...47077343000400000000