WFMOVE867

(George Source)

Macros used: BXU, CHAIN, COMERR, ENDCOM, FINDWFL, FNORM, FREECORE, HUNT, MENDAREA, MFREE, NAMETOP, RERING, SEGENTRY, TESTREP, TRACE

WFMOVE867.txt
22FL    #SEG  WFMOVE5                      [R.D.P.CLIFTON   
22KH ...[   
22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
22T* ...[   
22^=    #OPT  K0WFMOVE=0
23DW    #LIS           K0WFMOVE>K0WORK>K0ALLGEO>K0FILESTORE 
23YG    #OPT           K6WFMOVE=K6WORK>K6ALLGEO>K6FILESTORE 
24D6                   8HWFMOVE 
24XQ          SEGENTRY K1WFMOVE 
25CB    #     THIS SEGMENT REPOSITIONS A WORKFILE FCB AND ITS ASSOCIATED BLOCKS 
25X2    #     WITHIN THE WORKFILE RING. 
26BL    #   
26W=    #SKI        K6WFMOVE>599-599
27*W          TRACE    FX2,WFMOVE   
27TG          LDN   7  0
28*6    WF4   SPARAPASS 
28SQ          HUNT     1,CPB,CUNI   
29#B          NGX   0  ANUM(1)  
29S2          BNG   0  WF1                 [BRANCH IF PARAMETER FOUND   
2=?L          COMERR   JPARMIS  
2=R=    WF1   NAMETOP  1,FILE,FNAME        [RENAME CUNI FOR FNORM   
2?=W          FNORM 32  
2?QG          TESTREPN NAMEFORM,WF2 
2#=6          MFREE    FILE,FNAME   
2#PQ          ENDCOM
2*9B    WF2   HUNT     1,FILE,FNAME 
2*P2          NAMETOP  1,CPB,CUNI          [RENAME FOR ERROR MESSAGES   
2B8L          BNZ   7  WF3                 [BOTH PARAMETERS ANALYSED
2BN=          ADN   7  1                   [SET NON-ZERO
2C7W          BRN      WF4  
2CMG    WF3   LDN   3  0
2D76    WF10  FINDWFL  7
2DLQ          TESTREP  OK,WF6   
2F6B          COMERR   ERWFMOVE 
2FL2    WF6   MFREE    CPB,CUNI 
2G5L          HUNT     1,FILE,FABSNB
2GK=          BNZ   3  WF9                 [BRANCH IF SECOND PARAMETER  
2H4W          LDX   6  A1+1(1)             [LEVEL NUMBER
2HJG          FREECORE 1                   [FREE FABSNB OF PARA 2   
2J46          LDX   3  7                   [ADDRESS OF FCB AT LEVEL PARA 2  
2JHQ          BRN      WF10 
2K3B    WF9   SBX   6  A1+1(1)             [+VE IF FORWARD, -VE IFBACKWARDS 
2KH2          FREECORE 1                   [FREE FABSNB OF PARA 1   
2L2L          LDX   5  2
2LG=          ADN   5  BWORKRING
2L^W          BNG   6  WF5  
2MFG    WF7   LDX   3  0(3)                [FPTR
2M^6          TXU   3  5
2NDQ          BCC      WF5                 [BRANCH IF FPTR IS TO BWORKRING  
2NYB          LDX   0  ATYPE(3) 
2PD2          SBX   0  FILEPLUSFCB  
2PXL          BNZ   0  WF7                 [BRANCH IF FPTR NOT TO FCB   
2Q2D ...WF5 
2Q5= ...      LDX   1  7
2Q84 ...      ADN   1  FCBRING    [RE RING FCBRING IN RIGHT ORDER   
2Q=W ...      LDX   2  3
2Q*N ...      BXU   2  5,WF5X     [POINTING TO FILE RING?   
2QDG ...      LDX   2  0(2)        [YES 
2QH# ...WF5X
2QL6 ...      LDX   2  FCBRING+1(2) 
2QNY ...      RERING 1,2
2QRQ ...      LDX   3  BPTR(3)  
2QWW    #     X3 NOW THE ADDRESS OF THE BLOCK AFTER WHICH THE FCB WILL BE   
2RBG    #     RECHAINED 
2RW6          LDX   1  7
2S*Q    WF8   LDX   6  0(1)                [FPTR - NEXT BLOCK TO BE MOVED   
2STB          CHAIN    7,3                 [REPOSITION THE BLOCK
2T*2          TXU   6  5
2TSL          BCC      WFEND               [BWORKRING - NO MORE BLOCKS  
2W#=          LDX   1  6
2WRW          LDX   0  ATYPE(1) 
2X?G          SBX   0  FILEPLUSFCB  
2XR6          BZE   0  WFEND               [NEXT FCB - NO MORE BLOCKS   
2Y=Q          LDX   3  7                   [BLOCK TO PRECEDE NEXT MOVED BLOCK   
2YQB          LDX   7  6                   [BLOCK TO BE MOVED   
2^=2          BRN      WF8  
2^PL    WFEND ENDCOM
329=          MENDAREA 200<K6WFMOVE>100-80  
32NW    #END
^^^^ ...42356052000100000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1