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