{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: FSFILE)}}
====== FSFILE ======
(GIN Macro)
**Defined in:** [[george:source:MACROSBRBS|MACROSBRBS]]
**Used in:**
69^J ...[??? FSFILE SECT FILE FGN 14 DOC
6=9B [
6=P2 [THE FOLLOWING MACRO USES THE LOCAL IDENTIFIERS MFINDFS,MFINDFS1,
6?8L [MFINDFS2,MFINDFS3. THEY HAVE THE FOLLOWING SIGNIFICANCE:-
6?N= [
6#7W [ MFINDFS: INITIALLY SET OPTIONALLY TO 2 TO CHECK VALIDITY OF THE
6#MG [ FIRST %A OF A GROUP (MUST BE EQUAL TO 3). THEREAFTER
6*76 [ REDEFINED EQUAL TO EACH %A IN TURN TO CHECK ITS VALIDITY
6*LQ [ AS BEING GREATER THAN THE LAST %A OF THE GROUP.
6B6B [
6BL2 [ MFINDFS1: POINTS TO NEXT AVAILABLE MEND SPACE. INITIALLY SET
6C5L [ OPTIONALLY TO FIRS & SUBSEQUENTLY REDEFINED AT END OF
6CK= [ EACH ISSUE OF FSFILE.
6D4W [
6DJG [ MFINDFS2: USED AS A TEMPORARY "STORAGE" IDENTIFIER TO REMEMBER
6F46 [ CURRENT FIRS TABLE POINTER WHILE MFINDFS1 IS FREED AND
6FHQ [ REDEFINED.
6G3B [
6GH2 [ MFINDFS3: OPTIONALLY SET TO 1 AT START OF EACH ISSUE. RESET TO ZERO
6H2L [ IF DEVICE TYPE (%B) IS NONE OF 6,9,OR 13. SUBSEQUENTLY
6HG= [ USED TO SKIP OVER THIS FILESTORE DESCRIPTION IF WRONG
6H^W [ DEVICE TYPE.
6JFG [
6J^6 [ MFINDFS4: USED TO COUNT THE NUMBER OF DESCRIPTIONS MENDED
6KDQ [ IN
6KYB [
6LD2 [ MFINDFS5: USED AS A TEMPORARY IDENTIFIER WHILE MFINDFS4 IS UPDATED
6LXL [
6MC= [ MFINDFS6 : TO REMEMBER IF RESIDENCES ARE DECLARED IN ORDER
6MWW [
6NBG [ MFINDFS7: TO REMEMBER IF A SWAP RESIDENCE HAS BEEN DECLARED.
6NW6 [ SET NON-ZERO IF THIS FSFILE IS FOR A SWAP RES.
6P*Q #MAC FSFILE
6PTB #LIS 0
6Q*2 #SKI %A-64
6QSL (
6R#= #OPT MFINDFS3=1
6RRW #DEF MFINDFS6=1
6S?G #STR %B,6
6SR6 (
6T=Q #STR %B,9
6TQB (
6W=2 #STR %B,13
6WPL (
6X9= #STR %B,25
6XNW (
6Y8G #STR %B,26
6YN6 (
6^7Q #FREE MFINDFS3
6^MB #DEF MFINDFS3=0
7272 )
72LL )
736= )
73KW )
745G )
74K6 #SKI MFINDFS3
754Q (
75JB #OPT MFINDFS=2
7642 #SKI MFINDFS-2
76HL #SKI
773= #STR %A,3
77GW #SKI MFINDFS-2
782G (
78G6 #SKI %A-MFINDFS
78^Q #SKI %A-MFINDFS
79FB #SKI
79^2 (
7=DL #FREE MFINDFS
7=Y= #DEF MFINDFS=%A [MFINDFS NOW = NEXT LOGICAL FILE NO.
7?CW #OPT MFINDFS1=FIRS [FIRS = ADDRESS OF START OF MEND AREA
7?XG #OPT MFINDFS4=0
7#C6 #SKI MFINDFS4-FSTABLEN
7#WQ #SKI
7*BB !!TOO MANY FILESTORE DESCRIPTIONS
7*W2 #SKI MFINDFS4-FSTABLEN
7B*L (
7BT= #LIS 3
7C#W #TRA MFINDFS1
7CSG 12H%C [FILENAME
7D#6 +%A [LOGICAL FILE NO.
7DRQ #FID 0 5 +%B [DEVICE TYPE
7F?B #STR SWAP,%E
7FR2 #SKI
7G=L (
7GQ= #SKI %A-3<1$1
7H9W !!RESIDENCE 3 ASWAP FILE??
7HPG #SKI %A>15-15*G4
7J96 !! SWAP RESIDENCE %A IN G4??
7JNQ #SKI %A-3
7K8B (
7KN2 #SKI %A>15-15*G4<1$1
7L7L (
7LM= #FID 6 6 1
7M6W #SKI MFINDFS7<1$1
7MLG (
7N66 #FRE MFINDFS7
7NKQ #DEF MFINDFS7=1 [REMEMBER SWAP RESIDENCE DECLARED
7P5B )
7PK2 )
7Q4L )
7QJ= )
7R3W #STR %D
7RHG #SKI
7S36 +0 [ZERO IF NO SERIAL NO PARAMETER
7SGQ #STR %D
7T2B (
7TG2 +#%D [SERIAL NO.
7T^L #SKI +#%D
7WF= (
7WYW !!SERIAL NO. TOOBIG!!
7XDG #DEF 0?=0?-1
7XY6 +0
7YCQ )
7YXB )
7^C2 #DEF MFINDFS2=MFINDFS1+5 [STEP IDENTIFIER FOR NEXT MEND AREA
7^WL #FREE MFINDFS1
82B= #DEF MFINDFS1=MFINDFS2 [MFINDFS1 SET FOR NEXT MACRO
82TW #FREE MFINDFS2 [FREE READY FOR NEXT TIME ROUND REDEF
83*G #DEF MFINDFS5=MFINDFS4+1
83T6 #FRE MFINDFS4
84#Q #DEF MFINDFS4=MFINDFS5
84SB #FRE MFINDFS5
85#2 #FRE MFINDFS6
85RL #DEF MFINDFS6=0
86?= #LIS 0
86QW )
87=G )
87Q6 #SKI MFINDFS6
889Q !!FSFILE OUT OF SEQUENCE!!
88PB )
8992 #SKI MFINDFS-2
89NL #SKI
8=8= (
8=MW #STR %A,3
8?7G !WHERE'S RES.3??
8?M6 )
8#6Q )
8#LB #SKI MFINDFS3<1$1
8*62 !!WRONG DEVICE TYPE
8*KL #FRE MFINDFS3,MFINDFS6
8B5= )
8BJW #SKI 63<%A-%A
8C4G (
8CJ6 !! RESIDENCE NO. %A??
8D3Q )
8DHB #LIS 3
8F32 #NORMAL