{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: FLENME)}}
====== FLENME ======
(GIN Macro)
**Defined in:** [[george:source:MACROS_GEM|MACROS GEM]]
**Used in:** [[george:source:DISPCOM867|DISPCOM867]], [[george:source:LISTHEAD863|LISTHEAD863]], [[george:source:LISTINIT867|LISTINIT867]], [[george:source:LISTINTC865|LISTINTC865]], [[george:source:QUESCOM867|QUESCOM867]]
22FL #
22^= # RUTH HEAP
23DW #
23NN ...[??? FLENME SECT CENT FGN 1 DOC
23YG # THIS MACRO IS A BIT OF CODE!
24D6 # ITS PURPOSE IS TO GET A FILENAME FROM A BLOCK OR ANY WHERE ELSE.
24XQ # %A IS THE RELATIVE ADDRESS OF USER-NAME.
25CB # %B IS DO OF LOCAL-FILE-NAME.
25X2 # %C DESCRIBED AT END OF MACRO.
26BL #
26W= # X2 CONTAINS A GEORGE ADDRESS: %A & %B ARE RELATIVE TO THIS.
27*W # X7 CONTAINS THE GEORGE ADDRESS OF THE O/P BUFFER.
27TG #
28*6 # ALL ACCS ARE USE EXCEPT X3.
28SQ # X7 WILL POINT TO THE NEXT AVAILABLE CHAR IN THE O/P BUFFER.
29#B # THE FIRST WORD OF THE RECORD WILL BE THE NUMBER OF CHARACTERS.
29S2 # THE FORMAT IS
2=?L # :USER.LOCAL
2=R= #MAC FLENME
2?=W #
2?QG LDX 1 7 [GEO. ADDRESS OF O/P.
2#=6 STOZ 0(1) [ZEROISE CH. COUNT.
2#PQ ADN 7 1 [STEP PAST THE COUNT WORD.
2*9B #
2*P2 CALL 5 MFLENME1 [ROUTINE UPDATES COUNT AND INSERTS
2B8L ...[ FILE-NAME INTO BLOCK.
2BN= LDN 4 #12 [COLON
2C7W SBN 2 %A [SET X2 TO POINT TO LOCAL-
2CMG ADN 2 %B [FILE-NAME.
2D76 CALL 5 MFLENME1
2DLQ LDN 4 #36 [FULL STOP.
2F6B BRN MFLENME6
2FL2 #
2G5L ...[ TRANSFER ROUTINE.
2GK= #
2H4W MFLENME1
2HJG LDN 4 12 [TOTAL NUMBER OF CHARACTERS.
2J46 LDN 6 0
2JHQ MFLENME2
2K3B LDCH 0 %A(2) [LOAD CHARACTER.
2KH2 SBN 0 #20 [SPACE
2L2L BNZ 0 MFLENME3
2LG= ADN 6 1 [NO OF TRAILING SPACE.
2L^W BRN MFLENME4
2MFG MFLENME3
2M^6 LDN 6 0 [ZEROISE NO OF TRAILING SPACES.
2NDQ MFLENME4
2NYB BCHX 2 £ [STEP CHAR. POSN.
2PD2 BCT 4 MFLENME2
2PXL #
2QC= SBN 2 3 [SET BACK X2
2QWW LDX 4 %A(2)
2RBG BZE 4 MFLENME5 [NOT LOCAL-FILE-NAME
2RW6 NGX 4 6
2S*Q ADN 4 13 [NO OF CHARAVTERS.
2STB LDX 0 1 [STORE X1
2T*2 ADS 4 0(1) [ADD NO OF CHARACTERS.
2TSL LDX 1 5 [ADDRESS OF PARAMETER.
2W#= OBEY 0(1) [GET COLON OR FULL STOP.
2WRW LDX 1 7 [PUT ADDRESS INTO MODIFIER
2X?G DCH 4 0(1) [DEPOSITE
2XR6 BCHX 7 £ [STEP PAST
2Y=Q NGX 1 6
2YQB ADN 1 12 [NUMBER OF CHARACTERS
2^=2 LDN 6 %A(2) [ADDRESS OF STRING.
2^PL MVCH 6 0(1)
329= LDX 1 0 [RESTORE X1
32NW MFLENME5
338G EXIT 5 1
33N6 #
347Q #
34MB MFLENME6
3572 #
35LL #STRING 2,%C
366= #SKI
36KW (
375G SBN 2 %B
37K6 ADN 2 %A
384Q )
38JB ...[ THIS WILL RESTORE X2 TO ITS ORIGINAL VALUE IF %C=2.
3942 #
39HL #NOR