22FL0>>> 22^= 23DW [ GEORGE PORTER 23YG [ THIS S/F CONTAINS THE FOLLOWING MACROS 24D6 [ 24MY ...[ FNYLIST 24XQ [ MAGREAD 25CB [ MAGSTEP 25X2 [ FTM 266S ...[ MTCHECK 26BL [ FAILURE 26W= [ FREEHALF 27*W [ FREEHALL 27TG [ FREHFURB 28*6 [ FRSOFURB 28SQ [ FRSOFUWB 29#B [ FREEFURB 29S2 [ FREEFUWB 2=?L [ FREEFILE 2=R= [ CLUDGEQUERY 2?=W [ NEWDIR 2?QG [ ASSILO 2#=6 [ UNCOMERR 2#PQ [ CONFURWB 2*9B [ BLAM 2*P2 [ FINDACTX 2B8L [ OPENBUDO 2BN= [ ERASTREM 2C7W [ ERASEMULT 2CMG [ COMPQU 2D76 [ CLOSESTREAM 2DLQ [ CLOSEMULT 2F6B [ FSCON 2FL2 [ EXTEND 2G5L [ READED 2GK= [ WRITED 2H4W [ TRANSFORM 2HJG [ TRANSFO1 2J46 [ INFINB 2K3B 2KH2 2KHB ...[??? FNYLIST SECT FILE 2KHQ ...#MAC FNYLIST 2KJ6 ...[FILE NEARLY FULL CONDITION BASED ON 2KJG ...[%A - LINE LENGTH 2KJW ...[%B - NO OF LINES PER PAGE 2KK= ...[RESTORE TIME MACRO 2KKL ...#MEND APPEND 2KL2 ...#TRA FNYBLCK 2KLB ... +((%A+2)*%B/2048)+1 2KLQ ...#END 2KM6 ...#MEN APPEND 2KMG ...#TRA K98APPEND 2KMW ... NULL 2KN= ...#END 2KNL ...#NOR 2KP2 ... 2KPB ... 2KPQ ... 2KQ6 ... 2KQS ...[??? MAGREAD SECT FILE FGN 16 DOC 2L2L # READ NEXT RECORD FROM TOP FILE ( MT FILE) 2LG= #MAC MAGREAD 2L^W LDX 2 FX2 2MFG ACCSTO %D,ACOMMUNE9(2) 2M^6 DOWN MATALO,2 2NDQ BRN %A [END OF FILE 2NYB BRN %B [TAPE MARK 2PD2 BRN %C [LONG BLOCK 2PXL #NOR 2Q7D ...[??? MAGSTEP SECT FILE FGN 16 DOC 2QC= 2QWW # READ NEXT MT BLOCK FROM TOP FILE INTO OBJECT PROGRAM AREA 2RBG #MAC MAGSTEP 2RW6 LDX 2 FX2 2S*Q ACCSTO %D,ACOMMUNE9(2) 2STB ACCSTO %E,ACOMMUNE8(2) 2T*2 DOWN MATALO,1 2TSL BRN %A [END OF FILE 2W#= BRN %B [TAPE MARK 2WRW BRN %C [LONG BLOCK 2X?G #NOR 2XH# ...[??? FTM SECT FILE FGN 16 DOC 2XR6 2Y=Q #MAC FTM 2YQB DOWN MATALO,3 2^=2 BRN %A [END OF FILE 2^PL #NOR 326B ...[??? MTCHECK SECT FILE FGN 17 DOC 32H6 ...[ %A=BLOCK TYPE; %B=BLOCK SUBTYPE; %C=BULK FILE ADDRESS 32XW ...[ %D(OPTIONAL)=SIZE OF BULK FILE IN BLOCKS 33#L ...#MAC MTCHECK 33PB ... LDX 2 FX2 3466 ... ACCSTO %C,ACOMMUNE2(2) 34GW ...#STR %D 34XL ... ACCSTO %D,ACOMMUNE3(2) 35#B ... SMO FX1 35P6 ... LDX 0 M1MTCHECK 365W ... STO 0 ACOMMUNE1(2) 36GL ...#STR %D 36XB ...#SKI 37#6 ... DOWN MTCHECK,11 37NW ...#STR %D 385L ... DOWN MTCHECK,1 38GB ...M1MTCHECK 38X6 ...#HAL %A+%B,0 39?W ...#NOR 39NL ...[??? FAILURE SECT FILE FGN 16 DOC 3=5B ... 3=G6 ...# MACRO TO CHANGE BLOCK NOS IN FILESTORE BLOCKS, ACTS, AND Q-BLOCKS 3=WW ...#MAC FAILURE 3??L ...[ THIS MACRO SEARCHES THE ACTIVITY CHAIN WITH DETOURS VIA THE 3?NB ...[ WORKFILE RINGS & THEN THE FILE CHAIN LOOKING FOR BLOCKS WHICH NEED TO 3#56 ...[ BE UPDATED BY THE WRITE FAILURE SWAP MECHANISM 3#FW ...[IT DOES NOT CO-ORDINATE (OR IT WOULD LOSE ITS PLACE). 3#WL ...[ ON ENTRY X1=NEW DATUMISED BLOCK NUMBER 3*?B ...[ X5=RESIDENCE NUMBER 3*N6 ...[ X6=OLD BLOCK NUMBER 3B4W ...[ X7=NEW (REPLACEMENT) BLOCK NUMBER 3BFL ...[ 3BWB ... STO 1 GEN0 3C?6 ... STOZ GEN1 3CMW ... LDN 0 BTHREE [MASTER'S DIRECTORY 3D4L ... LDN 1 ADMASTDIR [ENTRY 3DFB ... TXU 5 0 3DW6 ... BXU 6 1,M0FAIL [J UNLESS :MASTER'S DIR ENT 3F7N ... GEOERR 1,MASSADED [WRITE FAIL ON :MASTER'S DIRECTORY 3FF= ... [ ENTRY CAN'T BE SWAPPED - FIXED 3FQS ... [ POSITION 3G4B ...M0FAIL 3GF6 ... ORN 6 3 [SET BLT BITS 3GTW ... ORN 7 3 3H=L ... LDX 1 BACT [BASE OF ACTIVITY CHAIN 3HMB ...[ 3J46 ...M1FAIL [CHECK BLOCK TYPE 3JDW ...[ 3JTL ... LDX 0 ATYPE(1) 3K=B ... SRL 0 12 3KM6 ... SBN 0 #6000 [MINIMUM ACTIVITY BLOCK TYPE 3L3W ... BPZ 0 M5FAIL [J IF ACTIVITY BLOCK 3LDL ... LDN 2 M92FAIL-M91FAIL [NUMBER OF BLOCK TYPES IN TABLE 3LTB ...M2FAIL 3M=6 ... SMO FX1 3MLW ... BXE 0 M91FAIL-1(2),M3FAIL [J IF BLOCK TYPES MATCH 3N3L ... BCT 2 M2FAIL [TRY NEXT TYPE IN TABLE 3NDB ... BRN M4FAIL [TRY NEXT BLOCK IN CHAIN 3NT6 ...[ 3P9W ...M3FAIL 3PLL ... LDN 3 ALENLFN [QBLK RELATIVISER 3Q3B ... LDN 4 ADBLKNO [ DITTO 3QD6 ... SBN 2 4 3QSW ... BZE 2 M7FAIL [J IF QBLK (4TH IN TABLE) 3R9L ... BNG 2 M8FAIL [J IF FCB OR FULLB OR FTABLE 3RLB ...[ 3S36 ...[ MUST BE BACK1/2 TYPE 3SCW ...[ 3SSL ... LDN 0 3 3T56 ... ORX 0 BACK2(1) [PLUS BLOCKLET BITS (MAY BE SET 3T*L ... [ ALREADY) 3TL6 ... TXU 5 BACK1(1) 3W2W ... BXU 6 0,M4FAIL [J UNLESS RESIDENCE & BLOCKS MATCH 3WCL ... ERX 0 7 3WSB ... ERS 0 BACK2(1) [SET NEW BL.NO. 3X96 ...[ 3XKW ...M4FAIL [GET NEXT BLOCK & CHECK FOR END OF CHAIN 3Y2L ...[ 3YCB ... LDX 1 FPTR(1) 3YS6 ... BXE 1 BACT,M40FAIL [J IF END OF ACTIVITY CHAIN 3^8W ... BXE 1 BFILE,M94FAIL [J TO EXIT IF END OF FILE CHAIN 3^KL ... BXU 1 GEN1,M1FAIL [J UNLESS END OF WORKFILE RING 422B ... SBN 1 BWORKRING [RECOVER CPAT ADDRESS 42C6 ... BRN M51FAIL 42RW ...[ 438L ...M40FAIL 43KB ... LDX 1 BFILE [START ON FILE CHAIN 4426 ... BRN M1FAIL 44BW ...[ 44RL ...M5FAIL [ACT. BLOCK SECTION 458B ... SMO FX1 45K6 ... BXU 0 M93FAIL,M51FAIL [J UNLESS CPAT 45^W ... ADN 1 BWORKRING [->WORKFILE RING 46BL ... STO 1 GEN1 [SAVE IT 46RB ... BRN M4FAIL 4786 ...[ 47JW ...M51FAIL 47^L ... BBUS 14,BA1(1),M4FAIL [J UNLESS TRANSFER IN PROGRESS 48BB ... LDN 3 BA2 [RELATIVISER FOR ACTIVITY TO BA WORDS 48R6 ... LDN 4 ACOMMUNE9 [ DITTO 497W ...M7FAIL [ACTIVITY OR QBLK 49JL ... LDN 0 #377 49^B ... ADX 3 1 4=B6 ... ANDX 0 0(3) 4=QW ... LDN 2 3 4?7L ... ORX 2 1(3) [BL. NO. 4?JB ... TXU 5 0 4?^6 ... BXU 6 2,M4FAIL [J UNLESS BLOCKS MATCH 4#*W ... ERX 2 7 4#QL ... ERS 2 1(3) [SET NEW NO. 4#^2 ... LDN 0 3 [UPDATE DATUMISED BLK NO 4*7B ... SMO 4 4**Q ... ANDS 0 0(1) [REMOVE OLD BLK NO LEAVING BLT BITS 4*J6 ... ORX 0 GEN0 [PICK UP NEW BLK NO AND 4*QG ... ERN 0 3 [REMOVE BLT BITS 4*YW ... SMO 4 4B7= ... ORS 0 0(1) [SET NEW BLK NO 4B*L ... BRN M4FAIL 4BQB ...[ 4C76 ...M8FAIL [FCB/FTABLE/FULLB 4CHW ...[ 4CYL ... ADN 2 2 [NOW ZERO IF FTABLE & NEGATIVE IF FCB 4D*B ... LDX 0 2 4DQ6 ... BNG 2 M42FAIL [J IF FCB 4F6W ... LDN 3 A1+1(1) [ADDRESS OF LFN IN FULLB 4FHL ... LDX 2 A1(1) 4FYB ... SBN 2 2 [NO. OF BLOCK NOS. 4G*6 ... BRN M43FAIL 4GPW ...[ 4H6L ...M42FAIL 4HHB ... LDX 2 FUSEBL(1) 4HY6 ... SBN 2 FBLKS-A1 [NUMBER OF BLOCKS IN FCB 4J#W ... LDN 3 BSPRE(1) [RELATIVISER TO BLOCK LIST 4JPL ...M43FAIL 4K6B ... BZE 2 M4FAIL [J IF NO BLOCKS 4KH6 ... LDX 4 0(3) [RESIDENCE NUMBER (SOMETIMES HAS 4KXW ... ANDN 4 #377 [ OTHER BITS SET) 4L#L ... BXU 5 4,M4FAIL [J IF WRONG RESIDENCE 4LS= ... ERN 6 3 [CLEAR BLOCKLET BITS IN OLD BLOCK 4M?W ... [ NUMBER 4W?L ...M9FAIL 4WNB ... SMO 2 4X56 ... BXE 6 0(3),M90FAIL [J IF BLOCK NUMBER FOUND 4XFW ... BCT 2 M9FAIL [TRY NEXT BLOCK NUMBER 4XWL ... BRN M44FAIL [TRY NEXT BLOCK IN CHAIN 4Y?B ...[ 4YN6 ...M90FAIL 4YYL ... ERN 7 3 [CLEAR BLOCKLET BITS IN NEW BLOCK 4^96 ... [ NUMBER 4^FL ... SMO 2 4^WB ... STO 7 0(3) [NEW BLOCK NO. 52?6 ... BPZ 0 M44FAIL [J UNLESS FCB 52MW ... JBC M9005FAIL,1,BFREV [J UNLESS REVERED (SJFILE) 534L ... BS BSJACT,BJFILSWITCH [FORCE CLOSE TO UPDATE BLOCKS RECORD 53FB ... LDX 3 1 [SAVE SEARCH POSITION 53W6 ... STARTACT SJ [WAKE JOURNAL ACTIVITY (FAILS IF 54=W ... LDX 1 3 [RECOVER SEARCH POSITION TEMPACT) 54ML ...M9005FAIL 554B ... MBS 1,BFALTB,BFALTR [SET REEL & BLOCKS ALTERED BITS 55F6 ... JBC M44FAIL,1,BFCARE [J UNLESS CAREFUL FILE 55TW ... LDX 0 FFSFMAPP 56=L ... LDX 2 1 56MB ...M4305FAIL 5746 ... LDX 2 FPTR(2) [X2->NEXT BLOCK IN FILA CHAIN 57DW ... BXU 0 ATYPE(2),M4305FAIL [J UNLESS FMAPP BLOCK 57TL ... LDN 0 1 [UPDATE FBCOMM TO INDICATE ALTERED 5842 ... [ BLOCK 58=B ... ANDX 0 FBCOMM(2) 58M6 ... ADN 0 1 593W ... ORS 0 FBCOMM(2) 59DL ...M44FAIL 59TB ... ORN 7 3 [REPLACE BLOCKLET BITS 5==6 ... ORN 6 3 [ DITTO 5=LW ... BRN M4FAIL 5?3L ...[ 5?DB ...M91FAIL [*** THESE 5?T6 ... +FILE+FCB-#6000 [*** FOUR 5#9W ... +FI+FTABLE-#6000 [*** BLOCKS 5#LL ... +BSTB+FULLB-#6000 [*** MUST 5*3B ... +BSTB+BQBLK-#6000 [*** REMAIN IN THE SAME ORDER 5*D6 ... +FILE+FURB-#6000 5*SW ... +FILE+FUWB-#6000 5B9L ... +FILE+FURWB-#6000 5BLB ... +FILE+FURRB-#6000 5C36 ... +BSTB+BREAD-#6000 5CCW ... +BSTB+FLOUR-#6000 5CSL ...M92FAIL 5DL6 ...[ 5F2W ...M93FAIL +CPAT-#6000 5FCL ...[ 5FSB ...M94FAIL 5G96 ...#NOR 5GKW ...[ 5H2L ...[ 5HCB ...[ 5HS6 ...[??? FREEHALF SECT FILE FGN 16 DOC 5J== 5JPW 5K9G [ THESE MACROS ARE USED BY THE CORE UNJAMMER TO FREE FILESTORE BLOCK 5KP6 5L8Q #MAC FREEHALF 5LNB [FREES HALF THE BLOCKS IN THE HALFOPEN CHAIN 5M82 CALL 7 M1FREEFILE 5MML #NOR 5MXD ...[??? FREEHALL SECT FILE FGN 16 DOC 5N7= 5NLW #MAC FREEHALL 5P6G [FREES ALL THE BLOCKS IN THE HALFOPEN CHAIN 5PL6 CALL 7 M2FREEFILE 5Q5Q #NOR 5Q*J ...[??? FREHFURB SECT FILE FGN 16 DOC 5QKB # 5R52 # FREES HALF THE FURBS/FURRBS ALTERNATELY 5RJL #MAC FREHFURB 5S4= LDCT 0 #100 5SHW CALL 7 M12FREEFILE 5T3G #NOR 5T?# ...[??? FRSOFURB SECT FILE FGN 16 DOC 5TH6 # 5W2Q # FREES FURBS/FURRBS BELONGING TO SWAPPED OUT PROGRAMS 5WGB #MAC FRSOFURB 5X22 LDCT 0 #200 5XFL CALL 7 M12FREEFILE 5X^= #NOR 5Y94 ...[??? FRSOFUWB SECT FILE FGN 16 DOC 5YDW # 5YYG # FREES FUWBS/FURWBS BELONGING TO SWAPPED OUT PROGRAMS 5^D6 #MAC FRSOFUWB 5^XQ LDCT 0 #600 62CB CALL 7 M12FREEFILE 62X2 #NOR 636S ...[??? FREEFURB SECT FILE FGN 16 DOC 63BL # 63W= #MAC FREEFURB 64*W [FREE READ BUFFER BLOCKS 64TG LDN 0 0 65*6 CALL 7 M12FREEFILE 65SQ #NOR 664J ...[??? FREEFUWB SECT FILE FGN 16 DOC 66#B 66S2 #MAC FREEFUWB 67?L [FREE WRITE BUFFER BLOCKS 67R= LDX 0 GSIGN 68=W CALL 7 M12FREEFILE 68QG #NOR 692# ...[??? FREEFILE SECT FILE FGN 16 DOC 69=6 69PQ #MAC FREEFILE 6=9B [CONTAINS SUBROUTINES FOR ABOVE MACROS 6=P2 [ 6?8L [ FREE HALF THE HALF-OPEN CHAIN 6?N= #DEF M1FREEFILE=0? 6#7W LDX 5 HALFFCB 6#MG SRA 5 1 6*76 BRN M3FREEFILE 6*LQ [ 6B6B [ FREE ALL THE HALF-OPEN CHAIN 6BL2 #DEF M2FREEFILE=0? 6C5L LDX 5 HALFFCB 6CK= M3FREEFILE 6D4W ... SBN 5 8 [LEAVE 16 OR 8 BLOX IN 1/2-CHAIN 6DJG BNG 5 (7) 6FHQ LDX 3 FFSFCB 6G3B LDN 4 1 6GH2 M4FREEFILE 6GL6 ... BZE 5 (7) 6HG= LDX 1 BHALF+1 6HQ4 ... ADX 6 ASIZE(1) 6H^W BXU 3 ATYPE(1),M5FREEFILE [JUMP IF NOT FCB 6J^6 SBN 5 1 6K6# ... DELFCB 1,HALF 6K?G ... BRN M4FREEFILE 6KDQ M5FREEFILE 6L4? ... FREECORE 1 6LXL BRN M4FREEFILE 6MC= [ 6MWW [ 6NBG #DEF M8FREEFILE=0? 6NW6 STO 0 GEN0 [STORE LINK 6P*Q LDCT 0 #40 6PTB ANDX 0 7 6Q*2 BNZ 0 M8FFREEFILE 6QSL LDN 0 FILE+FSTACK 6R#= SLL 0 12 6RRW M8AFREEFILE 6S?G LDX 3 BPTR(3) [SEARCH BACK FOR FSTACK 6SR6 BXU 0 ATYPE(3),M8AFREEFILE 6T=Q LDEX 2 ARINGNO(3) 6TQB ... BZE 2 M8GFREEFILE 6W=2 ADN 3 A1 6WPL M8BFREEFILE 6X9= JBS M8EFREEFILE,3,BASPARE 6XNW JMBAC M8EFREEFILE,3,BAMREAD,BAMREADR,BAMAPP,BAMWRITE,BAMGEN, - 6Y8G BAMCOPY,BAMCLEAN 6YN6 LDX 1 3 6^7Q M8CFREEFILE 6^MB LDX 1 BPTRF(1) [SEARCH BACK ROUND FILE RING FOR ACTI 7272 SMO FBACKPOINT(1) 72LL LDX 0 ATYPE(1) 736= BXL 0 CACT,M8CFREEFILE 73KW LDX 0 JOBNO-FILERING(1) 745G BZE 0 M18FREEFILE [NO GOOD - OPEN TO NOUSER ACTIVITY 74K6 LDN 1 BJOBQ 754Q M8DFREEFILE 75JB LDX 1 FPTR(1) 75S8 ... BXE 1 CXJO,M18FREEFILE 76HL BXU 0 JOBNUM(1),M8DFREEFILE 773= JBC M18FREEFILE,1,JBSO [J IF USER PROGS NOT SWAPPED OUT 77GW M8EFREEFILE 782G ADN 3 FELLEN 78G6 BCT 2 M8BFREEFILE 78PY ...M8GFREEFILE 78^Q SMO 4 79FB LDX 3 BPTR 79^2 M8FFREEFILE 7=DL LDN 0 1 7=Y= ADS 0 CJSOFREE 7?CW BRN (GEN0) [OK TO FREE 7?XG [ X7 BIT 0 - FREE WRITE BLOCKS 7#C6 [ BIT 1 - FREE BLOCKS FOR SWAPPED-OUT PROGRAMS 7#WQ [ BIT 2 - FREE ALTERNATE BLOCKS 7*BB [ BIT 3 SEARCHING WORKFILE RINGS 7*W2 ...[ BIT 4 - ALTERNATE BLOCK SWITCH 7B*L [ ENTER @ M12 TO SEARCH FILE CHAIN & WORKFILE RINGS ONLY 7FR2 #DEF M12FREEFILE=0? 7G=L SBX 7 FX1 7GQ= ORX 7 0 [KEEP SWITCH BITS 7HPG LDX 3 BFILE [SEARCH FILE CHAIN 7J96 LDN 5 BFILE 7JNQ M14FREEFILE 7K8B BXE 3 5,M31FREEFILE [JUMP IF END OF CHAIN 7K=^ ...#SKI IFS 7K*J ...( 7KD7 ... SBN 3 FCBRING 7KGQ ...M13FREEFILE 7KK* ...) 7KN2 LDX 4 FPTR(3) 7L7L LDX 0 ATYPE(3) 7LM= SRL 0 12 7M6W BNG 7 M20FREEFILE 7MLG SBN 0 FILE+FURB 7N66 BZE 0 M15FREEFILE [J IF FURB 7NKQ SUBNUM 0,FURRB-FURB 7P5B BNZ 0 M18FREEFILE [J UNLESS FURRB 7PK2 LDCT 0 #100 7Q4L ANDX 0 7 7QJ= BZE 0 M15FREEFILE [J UNLESS FREEING ALTERNATE BLOCKS 7R3W LDN 0 GSBS4 7RHG BXE 0 ALOGLEN(3),M18FREEFILE 7S36 [PROBABLY MT INDEX BLOCK - SO DONT FR 7SGQ M15FREEFILE 7T2B LDCT 0 #200 7TG2 ANDX 0 7 7T^L BZE 0 M16FREEFILE 7WF= CALL 0 M8FREEFILE 7WYW BRN M17FREEFILE 7XDG M16FREEFILE 7XY6 LDCT 0 #100 7YCQ ANDX 0 7 7YXB BZE 0 M17FREEFILE [J UNLESS FREEING ALTERNATE BLOCKS 7^5L ... LDCT 0 #20 7^?W ... ERS 0 7 7^G6 ... ANDX 0 7 7^NB ... BZE 0 M18FREEFILE 7^WL M17FREEFILE 82B= ADDSKIP I516A,COREFURB 83*G ADX 6 ASIZE(3) 86?= FREECORE 3 86QW M18FREEFILE 87=G LDX 3 4 87#9 ...#SKI IFS 87*Y ...( 87CM ... BXGE 6 CJTARGET,M19FREEFILE 87FB ... BXU 0 FFSFCB,M13FREEFILE 87H5 ... LDX 3 FCBRING(3) 87JS ... BRN M14FREEFILE 87LH ...) 87N= ...#SKI IFS<1$1 87Q6 BXL 6 CJTARGET,M14FREEFILE 889Q M19FREEFILE 88PB ANDN 7 #7777 [GET RID OF SWITCH BITS 8992 ADX 7 FX1 8=8= BRN (7) 8=MW M20FREEFILE 8?7G SBN 0 FILE+FUWB 8?M6 BZE 0 M21FREEFILE [J IF FUWB 8#6Q SUBNUM 0,FURWB-FUWB 8#LB BNZ 0 M18FREEFILE [J UNLESS FURWB 8*62 LDEX 0 ATYPE(3) 8*KL BNZ 0 M18FREEFILE [J IF FURWB NOT FULL 8B5= M21FREEFILE 8BJW LDCT 0 #200 8C4G ANDX 0 7 8CJ6 BZE 0 M22FREEFILE 8D3Q CALL 0 M8FREEFILE 8DHB M22FREEFILE 8F32 LDX 1 BPTR(3) [FIND FCB SKIPPING FSTACK 8FGL LDX 0 FFSFCB 8G2= M23FREEFILE 8GFW LDX 1 BPTR(1) 8G^G BXU 0 ATYPE(1),M23FREEFILE 8HF6 JBS M18FREEFILE,1,BFCOPY[CANT WRITE BLK IF FILE BEING COPIED 8HYQ ... LDX 2 3 [FOR HCHBLW 8JDB ... CALL 0 (HCHBLW) [CHECK FOR CORRUPTION IF SERIAL 8JY2 ... BRN M23AFREFILE 8KCL ... GEOERR 1,CORRUPT! [CORRUPT FUWB 8KX= ...M23AFREFILE 8LBW ... UNJAMWRI M24FREEFILE,M25FREEFILE 8LWG ... ADX 6 ASIZE(3) 8MB6 ... FREECORE 3 8T9L M24FREEFILE 8TP= FON #55 [WAKE UP CLOSES 8W6= ... LDCT 0 #40 8WH= ... ANDX 0 7 8WY= ... BZE 0 M18FREEFILE [J UNLESS SEARCHING WORKFILE RINGS 8X*= ... STOZ 5 [INDICATES NOT YET REACHED END OF 8XQ= ... BRN M32FREEFILE [RING FOR CURRENT JOB. 8Y7B M25FREEFILE 8YM2 LDX 1 ATFAPTR [ADDRESS OF TRANSFER FAIL ACTIVITY 8^6L LDX 0 BACK1(1) 8^L= LDN 2 1 [INCREMENT COUNT OF FAILS BEING DEALT 925W ADS 2 BACK1(1) [WITH BY TRANSFER FAIL ACTIVITY 92KG BNZ 0 M26FREEFILE [NO NEED TO FPUT ACTIVITY IF ALREADY 9356 ADN 1 BSCHANAD 93JQ BXU 1 0(1),M26FREEFILE 944B LDX 2 ATFAPTR 94J2 FPUT 953L M26FREEFILE 95H= LDX 1 BLANKF1 962W ... STO 4 BACK2(3) 9726 STO 1 BACK1(3) 97FQ NAME 3,BSTB,BWRITE 97^B STOZ BLANKF1 [CLEAR WORDS SET UP BY BSTS 98F2 STOZ BLANKF2 98YL LDX 4 FPTR(3) [NEXT BLOCK 99D= UNLOCK 3 99XW LDX 2 BBAC 9=CG CHAIN 3,BPTR(2) [CHAIN TO TF ACTIVITY 9=X6 BRN M24FREEFILE 9?BQ M31FREEFILE 9#B2 BXU 5 CXFI,M32FREEFILE [J UNLESS END OF FILE CHAIN 9#TL LDCT 0 #40 9**= ORX 7 0 9*SW LDX 2 FX2 9B#G STOZ AWORK2(2) 9BS6 M32FREEFILE 9C?Q LDN 1 BJOBQ 9CRB M33FREEFILE 9D?2 LDX 1 FPTR(1) 9DQL BXE 1 CXJO,M19FREEFILE 9F== NGX 0 JOBNUM(1) 9FG4 ... ADX 0 AWORK2(2) 9FPW ... BNZ 0 M33AFREFILE [J IF NOT CURRENT JOBNO (IN AWORK2) 9F^N ... BZE 5 M33BFREFILE [J IF NOT REACHED END OF RING 9G9G ...M33AFREFILE 9GF# ... BPZ 0 M33FREEFILE [J IF JOB EXAMINED ALREADY 9GP6 ... SBS 0 AWORK2(2) [ELSE RESET AWORK2 TO NEXT JOBNO. 9GT3 ... LDN 5 1 [SET 'END OF RING' MARKER 9GYY ...M33BFREFILE 9H8Q LDCT 3 #200 9HNB ANDX 3 7 9J82 BZE 3 M34FREEFILE [J UNLESS SEARCHING FOR SWAPPED PROG 9JML JBC M33FREEFILE,1,JBSO [OMIT UNLESS SWAPPED OUT 9K7= M34FREEFILE 9KLW HLSAV 1,SET,SAVING,JOBQ,M33FREEFILE 9L6G FCAJO 3,1,N 9LB# ... LDX 0 5 9LL6 LDN 5 BWORKRING(3) 9LTY ... BZE 0 M18FREEFILE 9M5Q LDX 3 BWORKRING(3) 9MKB BRN M14FREEFILE 9N52 #NOR 9N#S ...[??? CLUDGEQU SECT FILE FGN 16 DOC 9NJL 9P4= [ %A MODIFIER POINTING TO FCB 9PHW [ %B LABEL TO JUMP TO IF CLUDGE 9Q3G [ %C & %D WORK ACCUMULATORS (X3->X7) 9QH6 #MAC CLUDGEQUERY 9R2Q LDX 1 FPTR(%A) 9RGB LDX 0 ATYPE(1) 9S22 SRL 0 12 9SFL SBN 0 FILE+FSTACK 9S^= BNZ 0 M3CLUDGEQUE 9TDW SMO FX2 9TYG LDX %C JOBNO 9WD6 LDEX %D ARINGNO(1) 9WMY ... BZE %D M3CLUDGEQUE 9WXQ M1CLUDGEQUE 9XCB LDN 2 A1(1) 9XX2 M2CLUDGEQUE 9YBL LDX 2 BPTRF(2) 9YW= SMO FBACKPOINT(2) 9^*W LDX 0 ATYPE(2) 9^TG BXL 0 CACT,M2CLUDGEQUE =2*6 BXE %C JOBNO-FILERING(2),%B =2SQ ADN 1 FELLEN =3#B BCT %D M1CLUDGEQUE =3S2 M3CLUDGEQUE =4?L #NOR =4HD ...[??? NEWDIR SECT FILE FGN 16 DOC =4R= =5=W [CREATES A NON-PSEUDO DIRECTORY GIVEN A FABSNB & A CREATE BLOCK ==76 #MAC NEWDIR ==LQ DOWN NEWDIR,1 =?6B BRN %A =?L2 #NOR =#5L ...[??? ASSILO SECT FILE FGN 16 DOC =#K= =*4W # THIS MACRO EFFECTS AN ASSIGN FOR LOAD =*JG #MAC ASSILO =B46 DOWN ASSIGN,10 =BHQ BRN %A =C3B #NOR =C?8 ...[??? UNCOMERR SECT FILE FGN 16 DOC =CH2 =D2L #MAC UNCOMERR =DG= LDX 0 GSIGN =D^W SMO FX2 =FFG ERS 0 EXT+8 =F^6 #NOR =GDQ ...[??? CONFURWB SECT FILE FGN 16 DOC =GYB ... =HD2 ...#MAC CONFURWB =HXL ...#STR %B =JC= ... ACCSTO %B,ACOMMUNE4,FX2 =JWW ...#STR %A =KBG ... CHAIN %A,FX2 =KW6 ...#STR %B =L*Q ... DOWN EDOBJ,21 =LTB ...#STR %B =M*2 ...#SKI =MSL ... DOWN EDOBJ,22 =N#= ...#NOR =NRW ...[??? BLAM SECT FILE FGN 16 DOC =P?G ... =PR6 ...# MACRO TO CONVERT BLOCK NO IN USAGE BLOCK TO FREADBLOCK TYPE POINTE =Q=Q ...# BLOCK MUST BE CHAINED BEHIND CURRENT ACTIVITY UNLESS %B GIVEN =QQB ...#MAC BLAM =R=2 ...#STR %A =RPL ...#SKI =S9= ...( =SNW ...#STR %B =T8G ... MOD LDX 0 BACK2,%B =TN6 ... LDX 2 FX2 =W7Q ...#STR %B =WMB ...#SKI =X72 ...( =XLL ... SMO FPTR(2) =Y6= ... LDX 0 BACK2 =YKW ...) =^5G ... LDN 1 0 =^K6 ... SRL 01 2 ?24Q ... SLL 0 2 ?2JB ... TOPFCB2 2 ?342 ...) ?3HL ...#STR %A ?43= ...( ?4GW ...#STR %B ?52G ...! %B NOT ALLOWED IF %A PRESENT ?5G6 ...#STR GEN0,%A ?5^Q ... STO 3 GEN0 ?6FB ...#STR 3,%A ?6^2 ... LDX 3 %A ?7DL ... LDX 2 FX2 ?7Y= ... LDX 1 FPTR(2) ?8CW ... FFCA ?8XG ...#STR GEN0,%A ?9C6 ... LDX 3 GEN0 ?9WQ ... ADX 2 FBACKPOINT(2) ?=BB ... LDX 2 BPTR(2) ?=W2 ... LDX 0 BACK2(1) ??*L ... LDN 1 0 ??T= ... SRL 01 2 ?##W ... SLL 0 2 ?#SG ...) ?*#6 ... ADN 1 A1-1(2) ?*RQ ... ADX 1 FBLMOD(2) ?B?B ...M1BLAM ?BR2 ... TXU 0 0(1) ?C=L ... BCC M2BLAM ?CQ= ... BCT 1 M1BLAM ?D9W ...M2BLAM ?DPG ... SBX 1 2 ?F96 ...#NOR ?FNQ ...[??? FINDACTX SECT FILE FGN 16 DOC ?TXB # ?WC2 # ?WWL #MAC FINDACTX ?XB= ADN %A ACTRING ?XTW M1FINDACTX ?Y*G LDX %A FPTR(%A) ?YT6 BXU %B ACTNUM-ACTRING(%A),M1FINDACTX ?^#Q SBN %A ACTRING ?^SB #NOR #248 ...[??? OPENBUDO SECT FILE FGN 16 DOC #2#2 # #2RL #MAC OPENBUDO #3?= # OPENS DICT & READS ENTRY FOR OWNER OF FILES IN DIRECTORY #3QW # NAMED BY FIRST FABSNB IN CHAIN #4=G DOWN BUDGTWO,31 #4Q6 BRN %A #59Q #NOR #5FJ ...[??? ERASTREM SECT FILE FGN 16 DOC #5PB #692 #MAC ERASTREM #6NL DOWN ERASE,2 #78= #NOR #7D4 ...[??? ERASEMUL SECT FILE FGN 16 DOC #7MW #MAC ERASEMULT #87G DOWN ERASE,2 #8M6 #NOR #8WY ...[??? COMPQU SECT FILE FGN 16 DOC #96Q #9LB #=62 #MAC COMPQU #=KL TOPFCA 0 #?5= SMO 0 #?JW LDX 0 FGENERAL1 ##4G SLL 0 8 ##J6 BPZ 0 %A #*3Q DOWN COMPCHAN,1 #*HB #NOR #*R8 ...[??? CLOSESTR SECT FILE FGN 16 DOC #B32 # #BGL # #C2= #MAC CLOSESTREAM #CFW DOWN COMPOST,7 #C^G #NOR #D9# ...[??? CLOSEMUL SECT FILE FGN 16 DOC #DF6 #MAC CLOSEMULT #DYQ DOWN COMPOST,7 #FDB #NOR #FN8 ...[??? FSCON SECT FILE FGN 16 DOC #FY2 #GCL #GX= #MAC FSCON #HBW #STR %A,0 #HWG LDX 0 %A #JB6 TOPFCB 1 #JTQ SBS 0 FSIZE(1) #K*B MBS 1,BFALTB,BFALTR #KT2 LDX 0 FSIZE(1) #L#L BPZ 0 M1FSCON #LS= STOZ FSIZE(1) #M?W LDN 0 FBLKS-A1 #MRG STO 0 FBLMOD(1) #N?6 BRN %B #NQQ M1FSCON #P=B ADN 0 FBLKS-A1 #PQ2 BXGE 0 FBLMOD(1),M2FSCON #Q9L STO 0 FBLMOD(1) #QP= M2FSCON #R8W #NOR #RDN ...[??? EXTEND SECT FILE FGN 16 DOC #RNG #S86 #MAC EXTEND #SMQ #STR %A,0 #T7B LDX 0 %A #TM2 TOPFCB 1 #W6L ADS 0 FSIZE(1) #WL= MBS 1,BFALTB,BFALTR #X5W LDN 0 FILESIZE #XKG BXGE 0 FSIZE(1),M1EXTEND #Y56 STO 0 FSIZE(1) #YJQ BRN %B #^4B M1EXTEND #^J2 #NOR #^RS ...[??? READED SECT FILE FGN 16 DOC *23L # *2H= # THESE MACROS READ & WRITE UP TO ONE BUCKET OF EDS-TYPE FILES OF *32W # BUCKS1,2&4. THE BUCK PARAMETER (%B) IS NOT REPLACED. IF BUCK8 IS *3GG # USED AN ERROR LINE IS FLAGGED AT COMPILATION TIME. THE AUTHOR IS *426 # AWARE THAT THE TENSE USED IS NOT COMMONLY FOUND IN TEXT BOOKS ON *4FQ # STANDARD ENGLISH. *4^B #MAC READED *5F2 #STR %C *5YL ACCSTO %C,ACOMMUNE7,FX2 *6D= #STR %C *6XW #SKI *7CG ( *7X6 LDN 0 %B*128 *8BQ SMO FX2 *8WB STO 0 ACOMMUNE7 *9B2 ) *9TL ACCSTO %A,ACOMMUNE8,FX2 *=*= LDN 0 %B *=SW SMO FX2 *?#G STO 0 ACOMMUNE9 *?S6 DOWN RAND,1 *#?Q #STR %B,8 *#RB #SKI **?2 ! BUCK8 INVALID WITH READED **QL #NOR *B2D ...[??? WRITED SECT FILE FGN 16 DOC *B== *BPW #MAC WRITED *C9G ACCSTO %A,ACOMMUNE8,FX2 *CP6 LDN 0 %B *D8Q SMO FX2 *DNB STO 0 ACOMMUNE9 *F82 #STR %B,8 *FML #SKI *G7= ! BUCK8 INVALID WITH WRITED *GLW DOWN RAND,2 *H6G #NOR *HB# ...[??? TRANSFOR SECT FILE FGN 16 DOC *HL6 # *J5Q # MACROS TO CONVERT P/T RECORDS *JKB # *K52 #MAC TRANSFORM *KJL SMO FX2 *L4= STO %A ACOMMUNE1 *LHW SMO FX2 *M3G STO %B ACOMMUNE2 *MH6 DOWN TRANSFOR,1 *N2Q #NOR *N=J ...[??? TRANSFO1 SECT FILE FGN 16 DOC *NGB *P22 #MAC TRANSFO1 *PFL LDX 2 FX2 *P^= ANSOK2 *QDW LDX 0 %A *QYG ERX 0 %B *RD6 ANDN 0 #7775 *RXQ BZE 0 MTR *SCB LDN 1 #20 *SX2 ANDX 1 %B *TBL ERX 0 1 *TW= BZE 0 MTR *W*W STO %A ACOMMUNE1(2) *WTG STO %B ACOMMUNE2(2) *X*6 DOWN TRANSFOR,1 *XSQ MTR LDX 1 FX1 *Y#B #NOR *YJ8 ...[??? INFINB SECT FILE FGN 16 DOC *YS2 # *^?L # INPUT MACRO TO SET OR UNSET BIT FOR FINISH COMMAND *^R= # B2=W #MAC INFINB B2QG LDX 2 FX2 B3PQ BRUSEN M1INFINB,2 B49B CJOBLOCK 1 B4P2 LDCT 0 #40 B58L ERS 0 JMISC(1) B5N= LDX 1 FX1 B776 BRN M2INFINB B7LQ M1INFINB B86B LDN 0 #2000 B8L2 ERS 0 EXT+11(2) B95L ...M2INFINB B=4W #NOR BJ*2 ...# ^^^^ ...43065557003100000000