{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: EMSCORE)}}
====== EMSCORE ======
(GIN Macro)
**Defined in:** [[george:source:COREMACROS|COREMACROS]]
**Used in:** [[george:source:LOADERII867|LOADERII867]], [[george:source:SETLIST864|SETLIST864]], [[george:source:SETUPA867|SETUPA867]], [[george:source:SETUPB867|SETUPB867]]
59Q# ...[??? EMSCORE SECT CENT FGN 32 DOC
5=26 #
5=FQ [
5=^B [ENTRY SEQUENCE TO SPECIAL EARLY MORNING START ROUTINE WHICH GETS CORE
5?F2 [FROM THE TOP END OF THE STORE
5?YL [
5#D= #MAC EMSCORE
5#XW [
5*CG [THIS IS A SPECIAL EARLY MORNING START ROUTINE WHICH GETS A BLOCK OF
5*X6 [CORE FROM THE TOP OF STORE
5BBQ [
5BWB SEMS LDX 2 %A [LOAD AMOUNT REQUIRED
5CB2 STO 2 GLOGLEN [PRESERVE LOGICAL LENGTH
5CTL ADN 2 A1
5D*= #STR %B
5DSW (
5F#G BZE %B SEMS1 [J IF BLOCK NEEDNT START AT IROUND
5FS6 LDX 1 BFREE+1 [ MULTIPLE
5G?Q LDX 1 ASIZE(1) [ELSE SET SIZE SO THAT BLOCK WILL
5GBW ...#UNS CA1D
5GG2 ... ANDX 1 CIRNDA
5GK6 ...#UNS CA1D
5GN= ...#SKI
5GRB ANDN 1 IROUND-1 [ START ON A MULTIPLE OF IROUND
5H?2 SBX 2 1
5HB6 ...#UNS CA1D
5HF= ... ADX 2 CIRNDA
5HJB ...#UNS CA1D
5HMG ...#SKI
5HQL ADN 2 IROUND-1
5J== ANDX 2 IROUNDNG
5JPW ADX 2 1
5K9G SEMS1
5KP6 )
5L8Q LDX 1 BFREE+1 [FIND LAST BLOCK OF FREECORE
5LNB LDX 0 ASIZE(1) [ GET ITS SIZE
5M82 SBS 2 CFREE [SUB AMOUNT GIVEN FROM CURRENT FREE
5MML SBS 2 AFREE
5N7= SBX 0 2 [SUB REQUIRED SIZE
5NLW BNG 0 SERR [J IF NOT ENOUGH
5P6G BZE 0 SALL [J IF ALL NEEDED
5PL6 SBS 2 ASIZE(1) [SET NEW SIZE OF FREE BLOCK
5R52 ADX 1 0 [CALC ADDRESS OF GOT BLOCK
5RJL STO 2 ASIZE(1) [STORE ITS SIZE
5RLJ ...#UNS ISFC
5RNG ...(
5RQD ... SBX 1 0 [RETURN TO THE FREE BLOCK
5RSB ... FREEOUT 1 [DECHAIN FROM SIZE RING,AS SHORTER
5RW# ... FREEIN 1 [CHAIN INTO NEW SIZE RING
5RY= ... ADX 1 ASIZE(1) [NOW BACK TO THE GOT BLOCK
5S28 ...)
5S4= LDN 0 #10 [ LOCK IT
5SHW STO 0 AFLAG(1)
5T3G STOZ ATYPE(1)
5TH6 STOZ BACK1(1)
5W2Q STOZ BACK2(1)
5WGB LDX 2 GLOGLEN [SET LOGICAL LENGTH
5X22 STO 2 ALOGLEN(1)
5XFL LDCT 2 #2
5X^= STO 2 ARINGNO(1)
5YDW LDX 2 FX2 [CHAIN GOT BLOCK AFTER ACTIVITY
5YYG LDX 0 FPTR(2)
5^D6 STO 1 FPTR(2)
5^XQ STO 0 FPTR(1)
62CB STO 2 BPTR(1)
62X2 SMO 0
63BL STO 1 BPTR
63W= LDX 1 FX1
64*W BRN SEMSEND
64TG SALL
657X ...#UNS ISFC
65G# ... FREEOUT 1 [REMOVE BLK FROM SIZE RING
65SQ LDN 0 #10 [ LOCK IT
66#B STO 0 AFLAG(1)
66S2 STOZ ATYPE(1)
67?L STOZ BACK1(1)
67R= STOZ BACK2(1)
68=W CHAIN 1,FX2 [CHAIN IT
68QG BRN SEMSEND
69=6 SERR GEOERR 1,EMSCORE
69PQ SEMSEND
6=9B #NOR