OPENEND865

(George Source)

Macros used: ACROSS, ALTLENR, BACKSPACE, CHAIN, ERASEND, GEOERR, HUNT, JBC, JBCC, LOCFCB, LONGON, MENDAREA, MHUNT, MHUNTW, NAME, OPENEND, RESTOREN, REWRITE, RINGFILE, SEG, SEGENTRY, SETNCORE, TESTOPEN, TESTRPN2, THAW, THAWSAVE, TRACEIF, UNOPCH, UP, UPPLUS

OPENEND865.txt
22FL          SEG      OPENEND,,JUDY BIDGOOD,OPEN   
22^=          SEGENTRY K1OPENEND,OPENEND
23DW          SEGENTRY K2OPENEND,THAW   
23YG          SEGENTRY K3OPENEND,TESTOPEN   
24D6          SEGENTRY K4OPENEND,THAWSAVE   
24MY ...      SEGENTRY K5OPENEND,RESTOREN   
24XQ    #  THIS ROUTINE PUTS THE LAST LOCAL NAME OF A GIVEN FILE/FABSNB INTO A F
25CB    [   
25X2    OPENEND                            [ENTER   
26BL          LDX   7  ACOMMUNE7(2) 
26W=          HUNT     1,FILE,FABSNB
27*W          LDX   4  ALOGLEN(1)          [X4 = 4+6N+R 
27TG          LDX   0  4
28*6          SBX   0  A1(1)               [SEE IF RECORD HEADER =LOGICAL LENGTH
28SQ          BZE   0  SAME                [J IF SAME   
29#B          SBN   0  6
29S2          BNG   0  SAME                [J IF DIFFERENCE IS LESS THAN SIX
2=?L          LDX   4  A1(1)               [OTHERWISE GO BY RECORD LENGTH   
2=R=    SAME
2?=W          SBN   4  4
2?QG          LDN   6  6
2#=6          DVS   3  6                   [X3=R
2#PQ          MPY   4  6                   [X5=6N   
2*9B          TRACEIF  K6OPENEND,199,299,3,OPENLAST 
2*P2          SETUPCOR 6(3),2,FILE,FLOCNB  [GET R+6 WORD FLOCNB 
2B8L          HUNT     1,FILE,FABSNB
2BN=          LDX   0  ATYPE(1) 
2C7W          DSA   0  ATYPE(2)            [TRANSFER TYPE BITS  
2CMG          ADN   2  A1                  [POINTER TO CLOCNB   
2D76          ADX   1  5
2DLQ          ADN   1  A1-2                [X1 -> LAST LOCAL NAME   
2F6B          MOVE  1  6(3) 
2FL2          ACROSS   OPENREL,5           [SETTING OF X7 MATTERS.  
2G5L    [THIS IS THE ENTRY POINT FOR THE THAW MACRO.
2GK=    THAW
2H4W          LDN   6  EAUTOCOUNT   
2HJG          LDN   5  FREEZECOUNT  
2J46          BRN      MERGE
2JHQ    THAWSAVE                           [ENTRY FOR THAW WITH 'SAVE' PARAMETER
2K3B          LDN   6  ESAVECOUNT   
2KH2          LDN   5  FSVCT
2L2L    MERGE   
2LG=          MHUNTW   1,FILE,ENT   
2L^W          LDEX  0  ECOPS(1)            [IF NO ONLINE COPIES OF FILE THE 
2MFG          BZE   0  NBS                 [DIRECTORY ALREADY POSITIONED AFTER  
2M^6          BACKSPACE                    [NAME RECORD & THUS IS OK,OTHERWISE  
2NDQ          MHUNTW   1,FILE,ENT   
2NYB    NBS 
2PD2          SMO      6
2PXL          LDEX  7  0(1)                [GET FREEZE OR SAVE COUNT
2QC=          SBN   7  1
2QWW          BNG   7  NFR                  [GEOERR IF WASN'T FROZEN
2RBG          SMO      6
2RW6          DEX   7  0(1)                [NEW COUNT   
2S*Q          NAME     1,FILE,FWB   
2STB          REWRITE   
2T*2          MHUNTW   1,FILE,FWB   
2TSL          NAME     1,FILE,ENT   
2W#=          BNZ   7  NOTLONG  
2WRW          LONGON   6,ELOC1(1)          [WAKE UP WAITERS TO EMPTY FILE   
2X?G    NOTLONG 
2XR6          LDN   2  6
2Y=Q          LOCFCB   3
2YQB          TESTRPN2 OK,NOTOPEN   
2^=2          SMO      5
2^PL          LDEX  0  0(3)                [GET FREEZE OR SAVE COUNT
329=          SBN   0  1
32NW          SMO      5
338G          DEX   0  0(3)                [NEW COUNT   
33N6 ...      BNZ   0  NOTOPEN  
347Q          LONGON   6,BACK2(3)          [WAKE UP WAITERS 
34CJ ...      BZE   7  NOTOPEN  
34MB    UP  
3572          UPPLUS   1
35LL    NFR   GEOERR   1,NOFREEZE   
366=    NOTOPEN 
36KW          BNZ   7  UP                   [EXIT IF STILL FROZEN   
375G          MHUNTW   1,FILE,ENT   
379C ...      JBCC     NOTAB,1,BECLOSEAB
37*# ...      BRN      NOWERASE 
37F9 ...NOTAB   
37K6          JBC      UP,1,BEERASE         [EXIT UNLESS 'TO BE ERASED' 
37SY ...NOWERASE
384Q          SETNCORE 6,2,FILE,FLOCNB     [TEMPORARY FRIG FOR ERASEND  
38JB          MHUNTW   1,FILE,ENT   
3942          LDX   0  ELAN(1)  
39HL          STO   0  A1+5(2)  
3=3=          ADN   1  ELOC1
3=GW          ADN   2  A1   
3?2G          MOVE  1  5
3?G6          ERASEND   
3?^Q          MHUNT    1,FILE,FLOCNB
3#FB          NAME     1,FILE,ENT           [TEMPORARY FRIG FOR LISTFILE
3#^2          BRN      UP   
3*DL    [ THIS IS THE ENTRY POINT FOR THE TESTOPEN MACRO
3*Y=    TESTOPEN
3BCW          LOCFCB   3                   [LOCATE FCB & TESTIF OPEN UNCLEANLY  
3BXG          TESTRPN2 OK,UP
3CC6          UNOPCH   3,UNCL              [OPEN UNCLEANLY SO TAKE NO UNCLEAN   
3CWQ    NFCB  UPPLUS   1                   [OPEN PATH.  
3DBB    UNCL  UP
3DW2    [   
3DWD ...# SPECIAL SET UP MACRO FOR GEN RESTORE  
3DWW ...[   
3DX# ...RESTOREN
3DXQ ...      LDX   7  ACOMMUNE1(2)        [MODE
3DY8 ...      LDX   3  BFILE+1  
3DYL ...      LDX   0  ATYPE(3) 
3D^4 ...      SBX   0  STACK(1)            [IS THIS BLOCK A FSTACK  
3D^G ...      BNZ   0  STAKNTHERE          [J IF NOT
3D^Y ...      ALTLENR  3,4                 [ADD NEW SPACE FOR ELEMENT   
3F2B ...      LDX   3  BFILE+1  
3F2S ...      BRN      STACALREDI   
3F3= ...STAKNTHERE  
3F3N ...      SETNCORE FELLEN,3,FILE,FSTACK,,1,FELLEN   
3F46 ...STACALREDI  
3F4J ...      ADN   3  A1                  [SET UP FSTACK BLOCK 
3F52 ...      RINGFILE 3                   [RING IN ELEMENT 
3F5D ...      STOZ     FGENERAL2(3) 
3F5W ...      LDN   0  A1   
3F6# ...      NGS   0  FBACKPOINT(3)       [BACKWARD POINTER
3F6Q ...      NGS   0  FREADWORD(3)        [SET FILE UNACCESSED 
3F78 ...      NGS   0  FREADBLOCK(3)
3F7L ...      LDN   0  1
3F84 ...      SRC   7  9
3F8G ...      SMO      7
3F8Y ...      SRC   0  0
3F9B ...      STO   0  FGENERAL1(3)        [SET MODE BIT
3F9S ...      SBN   3  A1                  [X3 -> FSTACK
3F== ...      LDX   2  BFILE+1             [FOR G.R. FCB LAST IN FILE CHAIN 
3F=N ...      CHAIN    3,2                 [CHAIN IN FSTACK 
3F?6 ...      UP
3F?J ...STACK   
3F#2 ...#HAL  FILE+FSTACK,0 
3F#D ...[   
3F*L          MENDAREA GAPOPEN,K99OPENEND   
3FT=    #END
^^^^ ...66745411000200000000