FREEFILE
(GIN Macro)
Defined in: MACROS RMD10
Used in: UNJAMMER866
- FREEFILE.mac.txt
692# ...[??? FREEFILE SECT FILE FGN 16 DOC 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