{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: FIXEMSCR)}}
====== FIXEMSCR ======
(GIN Macro)
**Defined in:** [[george:source:MACROS_GLJ|MACROS GLJ]]
**Used in:** [[george:source:SETUPA867|SETUPA867]], [[george:source:SETUPB867|SETUPB867]]
9S22 #
9SFL #MAC FIXEMSCR
9S^= LDX 2 %A
9TDW STO 2 GLOGLEN [PRESERVE LOGICAL LENGTH
9TYG ADN 2 A1
9WD6 LDX 0 GFIXFREE
9WXQ SBX 0 2
9XCB BNG 0 MFIXEMSCR
9XX2 LDX 1 BSUT
9YBL SBX 1 GFIXFREE [S/A OF NEW BLOCK IN X1
9YW= SBS 2 GFIXFREE [UPDATE TOTAL
9^*W STO 2 ASIZE(1) [SET SIZE OF BLOCK
9^TG #SKI CAMK7<5-5
=2*6 (
=2SQ LDCT 0 128
=3#B ORS 0 ASIZE(1) [LOCK BLOCK
=3S2 )
=4?L LDX 0 GLOGLEN
=4R= STO 0 ALOGLEN(1) [SET LOGICAL LENGTH
=5=W STOZ BACK1(1)
=5QG STOZ BACK2(1)
=6=6 #SKI CAMK7>4-4
=6PQ (
=79B LDN 0 #10
=7P2 STO 0 AFLAG(1) [LOCK IT
=88L )
=8N= #SKI CAMK7<5-5
=97W STOZ AFLAG(1)
=9MG STOZ ATYPE(1) [NAME THE BLOCK 'GCB'
==76 LDX 2 FX2
==LQ LDX 0 FPTR(2) [CHAIN AFTER
=?6B STO 1 FPTR(2) [CALLING ACTIVITY
=?L2 STO 0 FPTR(1) [X2 CALLING ACTIVITY BLOCK
=#5L STO 2 BPTR(1) [X1 NEW BLOCK
=#K= SMO 0 [X0 NEXT BLOCK IN CHAIN
=*4W STO 1 BPTR
=*JG LDX 1 FX1
=B46 BRN MFIXEMSCR1
=BHQ MFIXEMSCR
=C3B LDX 2 GLOGLEN
=CH2 #STR %B
=D2L (
=DG= BRN MFIXEMSCR2
=D^W MFIXEMSCR3
=FFG LDX 2 %A [ ENTRY HERE IF NORMAL EMSCORE REQD.
=F^6 #DEF %B=MFIXEMSCR3
=GDQ MFIXEMSCR2
=GYB )
=HD2 EMSCORE 2 [NORMAL EMSCORE
=HXL MFIXEMSCR1
=JC= #NOR