{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: FREEFILE)}}
====== FREEFILE ======
(GIN Macro)
**Defined in:** [[george:source:MACROS_RMD10|MACROS RMD10]]
**Used in:** [[george:source:UNJAMMER866|UNJAMMER866]]
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