{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: LOSEMACRO)}}
====== LOSEMACRO ======
(GIN Macro)
**Defined in:** [[george:source:MACINTLUDES|MACINTLUDES]]
**Used in:**
*YS2 [??? LOSEMACR SECT DIAG FGN 9 DOC
*^?L #MAC LOSEMACRO [M.C.D. MANN AND J.T. WIFFEN
*^R= [
B2=W [
B2QG [ ***************
B3=6 [ * LOSEMACRO *
B3PQ [ ***************
B49B [
B4P2 [
B58L [ LOSEMACRO - THIS MACRO CAUSES GIN TO FORGET THE EXISTENCE OF THE MACRO
B5N= [ CALLED %A, SO THAT ANOTHER MACRO OF THE SAME NAME MAY BE COMPILED IN
B67W [ ITS STEAD.
B6MG [ %A MACRO NAME
B776 [ %B LISTING LEVEL (OPTIONAL)
B7LQ [
B86B #STR %A
B8L2 (
B95L #DEF 19?+1=1?
B9K= #STR %B
B=4W #LIS %B
B=JG #STR %B
B?46 #SKI
B?HQ #LIS 0
B#3B #FRL
B#H2 #INT
B*2L #ORD
B*G= NAME 12H%A [NAME OF MACRO
B*^W SAVE +0 [LINS OF INTERLMDE
BBFG PREVIOUS +0 [WORKFILE ADDRESS OF PRECEDING MACRO
BB^6 NTRY LDX 5 NAME
BCDQ LDX 6 NAME+1
BCYB STO 0 SAVE [SAVE LINK
BDD2 STO 5 4
BDXL ERS 6 4 [RANDOMISE
BFC= LDX 3 18?+4]+0 [NUMBER OF CHAINS
BFWW DVS 3 3
BGBG ADX 3 18?+4]+16 [GET CHAIN BASE
BGW6 STO 3 NAME [SAVE IN CASE WE WANT FIRST MACRO
BH*Q LDX 3 0(3)
BHTB BZE 3 TIXE
BJ*2 SERCH STO 3 NAME+1
BJSL CALL 0 18?+2]+6] [LOOK UP MACRO ENTRY
BK#= TXU 5 2(3) [COMPARE MACRO NAMES
BKRW TXU 6 3(3)
BL?G BCC YES [FOUND IT
BLR6 LDX 0 NAME+1 [KEEP WORKFILE ADDRESS OF PREV MACRO
BM=Q STO 0 PREVIOUS
BMQB LDX 3 1(3) [GET OFRWARD POINTER
BN=2 BNZ 3 SERCH [TRY NEXT IF ANY
BNPL TIXE LDX 0 SAVE [EXIT
BP9= EXIT 0 0
BPNW YES LDX 5 1(3) [FORWARD POINTER FROM THIS MACRO
BQ8G LDX 3 PREVIOUS [WORKFILE ADDRESS OF THE ONE IN FRONT
BQN6 BZE 3 NOPRV [J IF FIRST ON CHAIN
BR7Q CALL 0 18?+2]+7] [LOOK UP PREVIOUS
BRMB STO 5 1(3) [FORGET MACRO
BS72 BRN TIXE
BSLL NOPRV LDX 3 NAME
BT6= STO 5 0(3) [STORE IN CHAIN BASE
BTKW BRN TIXE
BW5G #JUM NTRY
BWK6 #EXT
BX4Q #LIS 19?+1]
BXJB )
BY42 #NOR