{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: WFMOVE867)}}
====== WFMOVE867 ======
(George Source)
**Macros used:** [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COMERR|COMERR]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FINDWFL|FINDWFL]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT|HUNT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:RERING|RERING]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TRACE|TRACE]]
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 200100-80
32NW #END
^^^^ ...42356052000100000000