ORELHALF82

(George Source)

Macros used: ACROSS, ADDMODE, APVSF, BS, BXU, COOR3, DOWN, FINDFCB, GEOERR, GFCB, JBC, JMBAC, LONGOFF, LONGSET, MENDAREA, MFREE, MONOUT, OUTPACK, READ, SEG, SEGENTRY, SETREP, SETREP2, TESTMODE, TESTREP2, TOPFCA, TOPFCB, TRACE, TRACEIF, UP, UPPLUS, VFREEW

ORELHALF82.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1