;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;LevelASM v1.4. 
;Made by Ersanio with help from certain people.
;To be applied with Xkas
;You can access another level's code by modifying RAM $010B and $010C
;To do so, just store the new level number in RAM $010B when you are in 16-bit mode.
;An example code *(For use with Custom Blocks)*
;	REP #$30
;	LDA #$0105	;Access the levelASM code of level 105
;	STA $010B
;	SEP #$30
;When you touch this block, LevelASM will execute the codes that level 105.
;Simple as that.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

HEADER
LOROM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Defines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	!FreeSpace 	= $218000	;Point this to some free space in the ROM, preferably below bank $40
!Freespace2 = $F00000;Set this ABOVE bank $40, to save the more valuable space below for stuff that needs it.
!Freespace3 = $F08000;Set this ABOVE bank $40, to save the more valuable space below for stuff that needs it.
	!FreeRAM	= $010B		;<-- It is recommended that you do NOT edit this.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Levelnum.ips disassembly
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG $05D8B9
	JSR Levelnummain

ORG $05DC46
Levelnummain:	LDA $0E  		;Load level number
		STA !FreeRAM		;Store it in free stack RAM
		ASL A    		;Multiply A by 2, probably to recover old code?
		RTS      		;Return from subroutine


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Hijack routine for LevelASM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG $00A242|$800000
	JML MAIN : NOP

org $00A5EE|$800000
        JML INITStart ;Hijack INIT stuff

org $008176|$800000
	JML NMIStart
	;LDA $4210
	;LDA $1DFB

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;New main code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG !FreeSpace|$800000
reset bytes

db "STAR"				;\
dw MainEnd-MainStart-$01		; |Write RATS tag #1 to protect main code
dw MainEnd-MainStart-$01^$FFFF		;/

MainStart:
MAIN:
	PHB				;\
	PHK				; |Setup program bank
	PLB				;/
	REP #$30			;16-bit AXY
	LDA !FreeRAM			;Load Level Number from stack
	ASL A				;x2
	TAX				;Transfer level # x2 into X
	LDA.l LevelASMTable,x		;Load table, indexed with X
	STA $00				;Store in $00 and $01
	SEP #$30			;8-bit AXY
	LDX #$00			;Clear X
	JSR ($0000,x)			;And jump to subroutine in pointers
	PLB				;Recover program bank
	LDA $13D4
	BEQ +
	JML $00A25B|$800000
+	JML $00A28A|$800000
INITStart:
        LDA !FreeRAM
        ASL A
        TAX
        LDA.l LevelInitTable,x
        STA $00
        SEP #$30
        LDX #$00
	PHB
	PHK
	PLB
        JSR ($0000,x)
	PLB
        PHK
        PEA.w RETURNADDR-1
        PEA $84CE
        JML $00919B

RETURNADDR:
	JML $00A5F3

NMIStart:
	LDA $0100
	CMP #$14
	BNE .return
	PHB				;\
	PHK				; |Setup program bank
	PLB				;/
	REP #$30			;16-bit AXY
	LDA $00
	PHA
	LDA !FreeRAM			;Load Level Number from stack
	ASL A				;x2
	TAX				;Transfer level # x2 into X
	LDA.l LevelNMItable,x		;Load table, indexed with X
	STA $00				;Store in $00 and $01
	SEP #$30			;8-bit AXY
	LDX #$00			;Clear X
	JSR ($0000,x)			;And jump to subroutine in pointers
	REP #$30
	PLA
	STA $00
	SEP #$30
	PLB				;Recover program bank
	.return
	LDA $4210
	LDA $1DFB
	JML $00817C|$800000


CodeStart:
incsrc Levelcode.asm			;Level Codes.

InitCodeStart:
incsrc Levelinitcode.asm		;Level inits.

NMICodeStart:
incsrc LevelNMIcode.asm

MainEnd:
print "CODE=",bytes
warnpc !FreeSpace|$800000+$10000

org !Freespace2|$800000
reset bytes

db "STAR"				;\
dw MainEnd2-MainStart2-$01		; |Write RATS tag #1 to protect main code
dw MainEnd2-MainStart2-$01^$FFFF		;/
MainStart2:
Background: 
incbin 12EBack.bin

autostim123:
incbin ccbg.stim

autostim1F:
incbin water.stim

autostim145:
incbin l3desert.stim

autostim148:
incbin circle.stim

TidesEE:
incbin water.stim

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Pointers and Code. Don't touch this.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

LevelASMTable:
dw level0 : dw level1 : dw level2 : dw level3 : dw level4 : dw level5 : dw level6 : dw level7
dw level8 : dw level9 : dw levelA : dw levelB : dw levelC : dw levelD : dw levelE : dw levelF
dw level10 : dw level11 : dw level12 : dw level13 : dw level14 : dw level15 : dw level16 : dw level17
dw level18 : dw level19 : dw level1A : dw level1B : dw level1C : dw level1D : dw level1E : dw level1F
dw level20 : dw level21 : dw level22 : dw level23 : dw level24 : dw level25 : dw level26 : dw level27
dw level28 : dw level29 : dw level2A : dw level2B : dw level2C : dw level2D : dw level2E : dw level2F
dw level30 : dw level31 : dw level32 : dw level33 : dw level34 : dw level35 : dw level36 : dw level37
dw level38 : dw level39 : dw level3A : dw level3B : dw level3C : dw level3D : dw level3E : dw level3F
dw level40 : dw level41 : dw level42 : dw level43 : dw level44 : dw level45 : dw level46 : dw level47
dw level48 : dw level49 : dw level4A : dw level4B : dw level4C : dw level4D : dw level4E : dw level4F
dw level50 : dw level51 : dw level52 : dw level53 : dw level54 : dw level55 : dw level56 : dw level57
dw level58 : dw level59 : dw level5A : dw level5B : dw level5C : dw level5D : dw level5E : dw level5F
dw level60 : dw level61 : dw level62 : dw level63 : dw level64 : dw level65 : dw level66 : dw level67
dw level68 : dw level69 : dw level6A : dw level6B : dw level6C : dw level6D : dw level6E : dw level6F
dw level70 : dw level71 : dw level72 : dw level73 : dw level74 : dw level75 : dw level76 : dw level77
dw level78 : dw level79 : dw level7A : dw level7B : dw level7C : dw level7D : dw level7E : dw level7F
dw level80 : dw level81 : dw level82 : dw level83 : dw level84 : dw level85 : dw level86 : dw level87
dw level88 : dw level89 : dw level8A : dw level8B : dw level8C : dw level8D : dw level8E : dw level8F
dw level90 : dw level91 : dw level92 : dw level93 : dw level94 : dw level95 : dw level96 : dw level97
dw level98 : dw level99 : dw level9A : dw level9B : dw level9C : dw level9D : dw level9E : dw level9F
dw levelA0 : dw levelA1 : dw levelA2 : dw levelA3 : dw levelA4 : dw levelA5 : dw levelA6 : dw levelA7
dw levelA8 : dw levelA9 : dw levelAA : dw levelAB : dw levelAC : dw levelAD : dw levelAE : dw levelAF
dw levelB0 : dw levelB1 : dw levelB2 : dw levelB3 : dw levelB4 : dw levelB5 : dw levelB6 : dw levelB7
dw levelB8 : dw levelB9 : dw levelBA : dw levelBB : dw levelBC : dw levelBD : dw levelBE : dw levelBF
dw levelC0 : dw levelC1 : dw levelC2 : dw levelC3 : dw levelC4 : dw levelC5 : dw levelC6 : dw levelC7
dw levelC8 : dw levelC9 : dw levelCA : dw levelCB : dw levelCC : dw levelCD : dw levelCE : dw levelCF
dw levelD0 : dw levelD1 : dw levelD2 : dw levelD3 : dw levelD4 : dw levelD5 : dw levelD6 : dw levelD7
dw levelD8 : dw levelD9 : dw levelDA : dw levelDB : dw levelDC : dw levelDD : dw levelDE : dw levelDF
dw levelE0 : dw levelE1 : dw levelE2 : dw levelE3 : dw levelE4 : dw levelE5 : dw levelE6 : dw levelE7
dw levelE8 : dw levelE9 : dw levelEA : dw levelEB : dw levelEC : dw levelED : dw levelEE : dw levelEF
dw levelF0 : dw levelF1 : dw levelF2 : dw levelF3 : dw levelF4 : dw levelF5 : dw levelF6 : dw levelF7
dw levelF8 : dw levelF9 : dw levelFA : dw levelFB : dw levelFC : dw levelFD : dw levelFE : dw levelFF
dw level100 : dw level101 : dw level102 : dw level103 : dw level104 : dw level105 : dw level106 : dw level107
dw level108 : dw level109 : dw level10A : dw level10B : dw level10C : dw level10D : dw level10E : dw level10F
dw level110 : dw level111 : dw level112 : dw level113 : dw level114 : dw level115 : dw level116 : dw level117
dw level118 : dw level119 : dw level11A : dw level11B : dw level11C : dw level11D : dw level11E : dw level11F
dw level120 : dw level121 : dw level122 : dw level123 : dw level124 : dw level125 : dw level126 : dw level127
dw level128 : dw level129 : dw level12A : dw level12B : dw level12C : dw level12D : dw level12E : dw level12F
dw level130 : dw level131 : dw level132 : dw level133 : dw level134 : dw level135 : dw level136 : dw level137
dw level138 : dw level139 : dw level13A : dw level13B : dw level13C : dw level13D : dw level13E : dw level13F
dw level140 : dw level141 : dw level142 : dw level143 : dw level144 : dw level145 : dw level146 : dw level147
dw level148 : dw level149 : dw level14A : dw level14B : dw level14C : dw level14D : dw level14E : dw level14F
dw level150 : dw level151 : dw level152 : dw level153 : dw level154 : dw level155 : dw level156 : dw level157
dw level158 : dw level159 : dw level15A : dw level15B : dw level15C : dw level15D : dw level15E : dw level15F
dw level160 : dw level161 : dw level162 : dw level163 : dw level164 : dw level165 : dw level166 : dw level167
dw level168 : dw level169 : dw level16A : dw level16B : dw level16C : dw level16D : dw level16E : dw level16F
dw level170 : dw level171 : dw level172 : dw level173 : dw level174 : dw level175 : dw level176 : dw level177
dw level178 : dw level179 : dw level17A : dw level17B : dw level17C : dw level17D : dw level17E : dw level17F
dw level180 : dw level181 : dw level182 : dw level183 : dw level184 : dw level185 : dw level186 : dw level187
dw level188 : dw level189 : dw level18A : dw level18B : dw level18C : dw level18D : dw level18E : dw level18F
dw level190 : dw level191 : dw level192 : dw level193 : dw level194 : dw level195 : dw level196 : dw level197
dw level198 : dw level199 : dw level19A : dw level19B : dw level19C : dw level19D : dw level19E : dw level19F
dw level1A0 : dw level1A1 : dw level1A2 : dw level1A3 : dw level1A4 : dw level1A5 : dw level1A6 : dw level1A7
dw level1A8 : dw level1A9 : dw level1AA : dw level1AB : dw level1AC : dw level1AD : dw level1AE : dw level1AF
dw level1B0 : dw level1B1 : dw level1B2 : dw level1B3 : dw level1B4 : dw level1B5 : dw level1B6 : dw level1B7
dw level1B8 : dw level1B9 : dw level1BA : dw level1BB : dw level1BC : dw level1BD : dw level1BE : dw level1BF
dw level1C0 : dw level1C1 : dw level1C2 : dw level1C3 : dw level1C4 : dw level1C5 : dw level1C6 : dw level1C7
dw level1C8 : dw level1C9 : dw level1CA : dw level1CB : dw level1CC : dw level1CD : dw level1CE : dw level1CF
dw level1D0 : dw level1D1 : dw level1D2 : dw level1D3 : dw level1D4 : dw level1D5 : dw level1D6 : dw level1D7
dw level1D8 : dw level1D9 : dw level1DA : dw level1DB : dw level1DC : dw level1DD : dw level1DE : dw level1DF
dw level1E0 : dw level1E1 : dw level1E2 : dw level1E3 : dw level1E4 : dw level1E5 : dw level1E6 : dw level1E7
dw level1E8 : dw level1E9 : dw level1EA : dw level1EB : dw level1EC : dw level1ED : dw level1EE : dw level1EF
dw level1F0 : dw level1F1 : dw level1F2 : dw level1F3 : dw level1F4 : dw level1F5 : dw level1F6 : dw level1F7
dw level1F8 : dw level1F9 : dw level1FA : dw level1FB : dw level1FC : dw level1FD : dw level1FE : dw level1FF

LevelInitTable:
dw levelinit0 : dw levelinit1 : dw levelinit2 : dw levelinit3 : dw levelinit4 : dw levelinit5 : dw levelinit6 : dw levelinit7
dw levelinit8 : dw levelinit9 : dw levelinitA : dw levelinitB : dw levelinitC : dw levelinitD : dw levelinitE : dw levelinitF
dw levelinit10 : dw levelinit11 : dw levelinit12 : dw levelinit13 : dw levelinit14 : dw levelinit15 : dw levelinit16 : dw levelinit17
dw levelinit18 : dw levelinit19 : dw levelinit1A : dw levelinit1B : dw levelinit1C : dw levelinit1D : dw levelinit1E : dw levelinit1F
dw levelinit20 : dw levelinit21 : dw levelinit22 : dw levelinit23 : dw levelinit24 : dw levelinit25 : dw levelinit26 : dw levelinit27
dw levelinit28 : dw levelinit29 : dw levelinit2A : dw levelinit2B : dw levelinit2C : dw levelinit2D : dw levelinit2E : dw levelinit2F
dw levelinit30 : dw levelinit31 : dw levelinit32 : dw levelinit33 : dw levelinit34 : dw levelinit35 : dw levelinit36 : dw levelinit37
dw levelinit38 : dw levelinit39 : dw levelinit3A : dw levelinit3B : dw levelinit3C : dw levelinit3D : dw levelinit3E : dw levelinit3F
dw levelinit40 : dw levelinit41 : dw levelinit42 : dw levelinit43 : dw levelinit44 : dw levelinit45 : dw levelinit46 : dw levelinit47
dw levelinit48 : dw levelinit49 : dw levelinit4A : dw levelinit4B : dw levelinit4C : dw levelinit4D : dw levelinit4E : dw levelinit4F
dw levelinit50 : dw levelinit51 : dw levelinit52 : dw levelinit53 : dw levelinit54 : dw levelinit55 : dw levelinit56 : dw levelinit57
dw levelinit58 : dw levelinit59 : dw levelinit5A : dw levelinit5B : dw levelinit5C : dw levelinit5D : dw levelinit5E : dw levelinit5F
dw levelinit60 : dw levelinit61 : dw levelinit62 : dw levelinit63 : dw levelinit64 : dw levelinit65 : dw levelinit66 : dw levelinit67
dw levelinit68 : dw levelinit69 : dw levelinit6A : dw levelinit6B : dw levelinit6C : dw levelinit6D : dw levelinit6E : dw levelinit6F
dw levelinit70 : dw levelinit71 : dw levelinit72 : dw levelinit73 : dw levelinit74 : dw levelinit75 : dw levelinit76 : dw levelinit77
dw levelinit78 : dw levelinit79 : dw levelinit7A : dw levelinit7B : dw levelinit7C : dw levelinit7D : dw levelinit7E : dw levelinit7F
dw levelinit80 : dw levelinit81 : dw levelinit82 : dw levelinit83 : dw levelinit84 : dw levelinit85 : dw levelinit86 : dw levelinit87
dw levelinit88 : dw levelinit89 : dw levelinit8A : dw levelinit8B : dw levelinit8C : dw levelinit8D : dw levelinit8E : dw levelinit8F
dw levelinit90 : dw levelinit91 : dw levelinit92 : dw levelinit93 : dw levelinit94 : dw levelinit95 : dw levelinit96 : dw levelinit97
dw levelinit98 : dw levelinit99 : dw levelinit9A : dw levelinit9B : dw levelinit9C : dw levelinit9D : dw levelinit9E : dw levelinit9F
dw levelinitA0 : dw levelinitA1 : dw levelinitA2 : dw levelinitA3 : dw levelinitA4 : dw levelinitA5 : dw levelinitA6 : dw levelinitA7
dw levelinitA8 : dw levelinitA9 : dw levelinitAA : dw levelinitAB : dw levelinitAC : dw levelinitAD : dw levelinitAE : dw levelinitAF
dw levelinitB0 : dw levelinitB1 : dw levelinitB2 : dw levelinitB3 : dw levelinitB4 : dw levelinitB5 : dw levelinitB6 : dw levelinitB7
dw levelinitB8 : dw levelinitB9 : dw levelinitBA : dw levelinitBB : dw levelinitBC : dw levelinitBD : dw levelinitBE : dw levelinitBF
dw levelinitC0 : dw levelinitC1 : dw levelinitC2 : dw levelinitC3 : dw levelinitC4 : dw levelinitC5 : dw levelinitC6 : dw levelinitC7
dw levelinitC8 : dw levelinitC9 : dw levelinitCA : dw levelinitCB : dw levelinitCC : dw levelinitCD : dw levelinitCE : dw levelinitCF
dw levelinitD0 : dw levelinitD1 : dw levelinitD2 : dw levelinitD3 : dw levelinitD4 : dw levelinitD5 : dw levelinitD6 : dw levelinitD7
dw levelinitD8 : dw levelinitD9 : dw levelinitDA : dw levelinitDB : dw levelinitDC : dw levelinitDD : dw levelinitDE : dw levelinitDF
dw levelinitE0 : dw levelinitE1 : dw levelinitE2 : dw levelinitE3 : dw levelinitE4 : dw levelinitE5 : dw levelinitE6 : dw levelinitE7
dw levelinitE8 : dw levelinitE9 : dw levelinitEA : dw levelinitEB : dw levelinitEC : dw levelinitED : dw levelinitEE : dw levelinitEF
dw levelinitF0 : dw levelinitF1 : dw levelinitF2 : dw levelinitF3 : dw levelinitF4 : dw levelinitF5 : dw levelinitF6 : dw levelinitF7
dw levelinitF8 : dw levelinitF9 : dw levelinitFA : dw levelinitFB : dw levelinitFC : dw levelinitFD : dw levelinitFE : dw levelinitFF
dw levelinit100 : dw levelinit101 : dw levelinit102 : dw levelinit103 : dw levelinit104 : dw levelinit105 : dw levelinit106 : dw levelinit107
dw levelinit108 : dw levelinit109 : dw levelinit10A : dw levelinit10B : dw levelinit10C : dw levelinit10D : dw levelinit10E : dw levelinit10F
dw levelinit110 : dw levelinit111 : dw levelinit112 : dw levelinit113 : dw levelinit114 : dw levelinit115 : dw levelinit116 : dw levelinit117
dw levelinit118 : dw levelinit119 : dw levelinit11A : dw levelinit11B : dw levelinit11C : dw levelinit11D : dw levelinit11E : dw levelinit11F
dw levelinit120 : dw levelinit121 : dw levelinit122 : dw levelinit123 : dw levelinit124 : dw levelinit125 : dw levelinit126 : dw levelinit127
dw levelinit128 : dw levelinit129 : dw levelinit12A : dw levelinit12B : dw levelinit12C : dw levelinit12D : dw levelinit12E : dw levelinit12F
dw levelinit130 : dw levelinit131 : dw levelinit132 : dw levelinit133 : dw levelinit134 : dw levelinit135 : dw levelinit136 : dw levelinit137
dw levelinit138 : dw levelinit139 : dw levelinit13A : dw levelinit13B : dw levelinit13C : dw levelinit13D : dw levelinit13E : dw levelinit13F
dw levelinit140 : dw levelinit141 : dw levelinit142 : dw levelinit143 : dw levelinit144 : dw levelinit145 : dw levelinit146 : dw levelinit147
dw levelinit148 : dw levelinit149 : dw levelinit14A : dw levelinit14B : dw levelinit14C : dw levelinit14D : dw levelinit14E : dw levelinit14F
dw levelinit150 : dw levelinit151 : dw levelinit152 : dw levelinit153 : dw levelinit154 : dw levelinit155 : dw levelinit156 : dw levelinit157
dw levelinit158 : dw levelinit159 : dw levelinit15A : dw levelinit15B : dw levelinit15C : dw levelinit15D : dw levelinit15E : dw levelinit15F
dw levelinit160 : dw levelinit161 : dw levelinit162 : dw levelinit163 : dw levelinit164 : dw levelinit165 : dw levelinit166 : dw levelinit167
dw levelinit168 : dw levelinit169 : dw levelinit16A : dw levelinit16B : dw levelinit16C : dw levelinit16D : dw levelinit16E : dw levelinit16F
dw levelinit170 : dw levelinit171 : dw levelinit172 : dw levelinit173 : dw levelinit174 : dw levelinit175 : dw levelinit176 : dw levelinit177
dw levelinit178 : dw levelinit179 : dw levelinit17A : dw levelinit17B : dw levelinit17C : dw levelinit17D : dw levelinit17E : dw levelinit17F
dw levelinit180 : dw levelinit181 : dw levelinit182 : dw levelinit183 : dw levelinit184 : dw levelinit185 : dw levelinit186 : dw levelinit187
dw levelinit188 : dw levelinit189 : dw levelinit18A : dw levelinit18B : dw levelinit18C : dw levelinit18D : dw levelinit18E : dw levelinit18F
dw levelinit190 : dw levelinit191 : dw levelinit192 : dw levelinit193 : dw levelinit194 : dw levelinit195 : dw levelinit196 : dw levelinit197
dw levelinit198 : dw levelinit199 : dw levelinit19A : dw levelinit19B : dw levelinit19C : dw levelinit19D : dw levelinit19E : dw levelinit19F
dw levelinit1A0 : dw levelinit1A1 : dw levelinit1A2 : dw levelinit1A3 : dw levelinit1A4 : dw levelinit1A5 : dw levelinit1A6 : dw levelinit1A7
dw levelinit1A8 : dw levelinit1A9 : dw levelinit1AA : dw levelinit1AB : dw levelinit1AC : dw levelinit1AD : dw levelinit1AE : dw levelinit1AF
dw levelinit1B0 : dw levelinit1B1 : dw levelinit1B2 : dw levelinit1B3 : dw levelinit1B4 : dw levelinit1B5 : dw levelinit1B6 : dw levelinit1B7
dw levelinit1B8 : dw levelinit1B9 : dw levelinit1BA : dw levelinit1BB : dw levelinit1BC : dw levelinit1BD : dw levelinit1BE : dw levelinit1BF
dw levelinit1C0 : dw levelinit1C1 : dw levelinit1C2 : dw levelinit1C3 : dw levelinit1C4 : dw levelinit1C5 : dw levelinit1C6 : dw levelinit1C7
dw levelinit1C8 : dw levelinit1C9 : dw levelinit1CA : dw levelinit1CB : dw levelinit1CC : dw levelinit1CD : dw levelinit1CE : dw levelinit1CF
dw levelinit1D0 : dw levelinit1D1 : dw levelinit1D2 : dw levelinit1D3 : dw levelinit1D4 : dw levelinit1D5 : dw levelinit1D6 : dw levelinit1D7
dw levelinit1D8 : dw levelinit1D9 : dw levelinit1DA : dw levelinit1DB : dw levelinit1DC : dw levelinit1DD : dw levelinit1DE : dw levelinit1DF
dw levelinit1E0 : dw levelinit1E1 : dw levelinit1E2 : dw levelinit1E3 : dw levelinit1E4 : dw levelinit1E5 : dw levelinit1E6 : dw levelinit1E7
dw levelinit1E8 : dw levelinit1E9 : dw levelinit1EA : dw levelinit1EB : dw levelinit1EC : dw levelinit1ED : dw levelinit1EE : dw levelinit1EF
dw levelinit1F0 : dw levelinit1F1 : dw levelinit1F2 : dw levelinit1F3 : dw levelinit1F4 : dw levelinit1F5 : dw levelinit1F6 : dw levelinit1F7
dw levelinit1F8 : dw levelinit1F9 : dw levelinit1FA : dw levelinit1FB : dw levelinit1FC : dw levelinit1FD : dw levelinit1FE : dw levelinit1FF

LevelNMItable:
dw levelNMI0 : dw levelNMI1 : dw levelNMI2 : dw levelNMI3 : dw levelNMI4 : dw levelNMI5 : dw levelNMI6 : dw levelNMI7
dw levelNMI8 : dw levelNMI9 : dw levelNMIA : dw levelNMIB : dw levelNMIC : dw levelNMID : dw levelNMIE : dw levelNMIF
dw levelNMI10 : dw levelNMI11 : dw levelNMI12 : dw levelNMI13 : dw levelNMI14 : dw levelNMI15 : dw levelNMI16 : dw levelNMI17
dw levelNMI18 : dw levelNMI19 : dw levelNMI1A : dw levelNMI1B : dw levelNMI1C : dw levelNMI1D : dw levelNMI1E : dw levelNMI1F
dw levelNMI20 : dw levelNMI21 : dw levelNMI22 : dw levelNMI23 : dw levelNMI24 : dw levelNMI25 : dw levelNMI26 : dw levelNMI27
dw levelNMI28 : dw levelNMI29 : dw levelNMI2A : dw levelNMI2B : dw levelNMI2C : dw levelNMI2D : dw levelNMI2E : dw levelNMI2F
dw levelNMI30 : dw levelNMI31 : dw levelNMI32 : dw levelNMI33 : dw levelNMI34 : dw levelNMI35 : dw levelNMI36 : dw levelNMI37
dw levelNMI38 : dw levelNMI39 : dw levelNMI3A : dw levelNMI3B : dw levelNMI3C : dw levelNMI3D : dw levelNMI3E : dw levelNMI3F
dw levelNMI40 : dw levelNMI41 : dw levelNMI42 : dw levelNMI43 : dw levelNMI44 : dw levelNMI45 : dw levelNMI46 : dw levelNMI47
dw levelNMI48 : dw levelNMI49 : dw levelNMI4A : dw levelNMI4B : dw levelNMI4C : dw levelNMI4D : dw levelNMI4E : dw levelNMI4F
dw levelNMI50 : dw levelNMI51 : dw levelNMI52 : dw levelNMI53 : dw levelNMI54 : dw levelNMI55 : dw levelNMI56 : dw levelNMI57
dw levelNMI58 : dw levelNMI59 : dw levelNMI5A : dw levelNMI5B : dw levelNMI5C : dw levelNMI5D : dw levelNMI5E : dw levelNMI5F
dw levelNMI60 : dw levelNMI61 : dw levelNMI62 : dw levelNMI63 : dw levelNMI64 : dw levelNMI65 : dw levelNMI66 : dw levelNMI67
dw levelNMI68 : dw levelNMI69 : dw levelNMI6A : dw levelNMI6B : dw levelNMI6C : dw levelNMI6D : dw levelNMI6E : dw levelNMI6F
dw levelNMI70 : dw levelNMI71 : dw levelNMI72 : dw levelNMI73 : dw levelNMI74 : dw levelNMI75 : dw levelNMI76 : dw levelNMI77
dw levelNMI78 : dw levelNMI79 : dw levelNMI7A : dw levelNMI7B : dw levelNMI7C : dw levelNMI7D : dw levelNMI7E : dw levelNMI7F
dw levelNMI80 : dw levelNMI81 : dw levelNMI82 : dw levelNMI83 : dw levelNMI84 : dw levelNMI85 : dw levelNMI86 : dw levelNMI87
dw levelNMI88 : dw levelNMI89 : dw levelNMI8A : dw levelNMI8B : dw levelNMI8C : dw levelNMI8D : dw levelNMI8E : dw levelNMI8F
dw levelNMI90 : dw levelNMI91 : dw levelNMI92 : dw levelNMI93 : dw levelNMI94 : dw levelNMI95 : dw levelNMI96 : dw levelNMI97
dw levelNMI98 : dw levelNMI99 : dw levelNMI9A : dw levelNMI9B : dw levelNMI9C : dw levelNMI9D : dw levelNMI9E : dw levelNMI9F
dw levelNMIA0 : dw levelNMIA1 : dw levelNMIA2 : dw levelNMIA3 : dw levelNMIA4 : dw levelNMIA5 : dw levelNMIA6 : dw levelNMIA7
dw levelNMIA8 : dw levelNMIA9 : dw levelNMIAA : dw levelNMIAB : dw levelNMIAC : dw levelNMIAD : dw levelNMIAE : dw levelNMIAF
dw levelNMIB0 : dw levelNMIB1 : dw levelNMIB2 : dw levelNMIB3 : dw levelNMIB4 : dw levelNMIB5 : dw levelNMIB6 : dw levelNMIB7
dw levelNMIB8 : dw levelNMIB9 : dw levelNMIBA : dw levelNMIBB : dw levelNMIBC : dw levelNMIBD : dw levelNMIBE : dw levelNMIBF
dw levelNMIC0 : dw levelNMIC1 : dw levelNMIC2 : dw levelNMIC3 : dw levelNMIC4 : dw levelNMIC5 : dw levelNMIC6 : dw levelNMIC7
dw levelNMIC8 : dw levelNMIC9 : dw levelNMICA : dw levelNMICB : dw levelNMICC : dw levelNMICD : dw levelNMICE : dw levelNMICF
dw levelNMID0 : dw levelNMID1 : dw levelNMID2 : dw levelNMID3 : dw levelNMID4 : dw levelNMID5 : dw levelNMID6 : dw levelNMID7
dw levelNMID8 : dw levelNMID9 : dw levelNMIDA : dw levelNMIDB : dw levelNMIDC : dw levelNMIDD : dw levelNMIDE : dw levelNMIDF
dw levelNMIE0 : dw levelNMIE1 : dw levelNMIE2 : dw levelNMIE3 : dw levelNMIE4 : dw levelNMIE5 : dw levelNMIE6 : dw levelNMIE7
dw levelNMIE8 : dw levelNMIE9 : dw levelNMIEA : dw levelNMIEB : dw levelNMIEC : dw levelNMIED : dw levelNMIEE : dw levelNMIEF
dw levelNMIF0 : dw levelNMIF1 : dw levelNMIF2 : dw levelNMIF3 : dw levelNMIF4 : dw levelNMIF5 : dw levelNMIF6 : dw levelNMIF7
dw levelNMIF8 : dw levelNMIF9 : dw levelNMIFA : dw levelNMIFB : dw levelNMIFC : dw levelNMIFD : dw levelNMIFE : dw levelNMIFF
dw levelNMI100 : dw levelNMI101 : dw levelNMI102 : dw levelNMI103 : dw levelNMI104 : dw levelNMI105 : dw levelNMI106 : dw levelNMI107
dw levelNMI108 : dw levelNMI109 : dw levelNMI10A : dw levelNMI10B : dw levelNMI10C : dw levelNMI10D : dw levelNMI10E : dw levelNMI10F
dw levelNMI110 : dw levelNMI111 : dw levelNMI112 : dw levelNMI113 : dw levelNMI114 : dw levelNMI115 : dw levelNMI116 : dw levelNMI117
dw levelNMI118 : dw levelNMI119 : dw levelNMI11A : dw levelNMI11B : dw levelNMI11C : dw levelNMI11D : dw levelNMI11E : dw levelNMI11F
dw levelNMI120 : dw levelNMI121 : dw levelNMI122 : dw levelNMI123 : dw levelNMI124 : dw levelNMI125 : dw levelNMI126 : dw levelNMI127
dw levelNMI128 : dw levelNMI129 : dw levelNMI12A : dw levelNMI12B : dw levelNMI12C : dw levelNMI12D : dw levelNMI12E : dw levelNMI12F
dw levelNMI130 : dw levelNMI131 : dw levelNMI132 : dw levelNMI133 : dw levelNMI134 : dw levelNMI135 : dw levelNMI136 : dw levelNMI137
dw levelNMI138 : dw levelNMI139 : dw levelNMI13A : dw levelNMI13B : dw levelNMI13C : dw levelNMI13D : dw levelNMI13E : dw levelNMI13F
dw levelNMI140 : dw levelNMI141 : dw levelNMI142 : dw levelNMI143 : dw levelNMI144 : dw levelNMI145 : dw levelNMI146 : dw levelNMI147
dw levelNMI148 : dw levelNMI149 : dw levelNMI14A : dw levelNMI14B : dw levelNMI14C : dw levelNMI14D : dw levelNMI14E : dw levelNMI14F
dw levelNMI150 : dw levelNMI151 : dw levelNMI152 : dw levelNMI153 : dw levelNMI154 : dw levelNMI155 : dw levelNMI156 : dw levelNMI157
dw levelNMI158 : dw levelNMI159 : dw levelNMI15A : dw levelNMI15B : dw levelNMI15C : dw levelNMI15D : dw levelNMI15E : dw levelNMI15F
dw levelNMI160 : dw levelNMI161 : dw levelNMI162 : dw levelNMI163 : dw levelNMI164 : dw levelNMI165 : dw levelNMI166 : dw levelNMI167
dw levelNMI168 : dw levelNMI169 : dw levelNMI16A : dw levelNMI16B : dw levelNMI16C : dw levelNMI16D : dw levelNMI16E : dw levelNMI16F
dw levelNMI170 : dw levelNMI171 : dw levelNMI172 : dw levelNMI173 : dw levelNMI174 : dw levelNMI175 : dw levelNMI176 : dw levelNMI177
dw levelNMI178 : dw levelNMI179 : dw levelNMI17A : dw levelNMI17B : dw levelNMI17C : dw levelNMI17D : dw levelNMI17E : dw levelNMI17F
dw levelNMI180 : dw levelNMI181 : dw levelNMI182 : dw levelNMI183 : dw levelNMI184 : dw levelNMI185 : dw levelNMI186 : dw levelNMI187
dw levelNMI188 : dw levelNMI189 : dw levelNMI18A : dw levelNMI18B : dw levelNMI18C : dw levelNMI18D : dw levelNMI18E : dw levelNMI18F
dw levelNMI190 : dw levelNMI191 : dw levelNMI192 : dw levelNMI193 : dw levelNMI194 : dw levelNMI195 : dw levelNMI196 : dw levelNMI197
dw levelNMI198 : dw levelNMI199 : dw levelNMI19A : dw levelNMI19B : dw levelNMI19C : dw levelNMI19D : dw levelNMI19E : dw levelNMI19F
dw levelNMI1A0 : dw levelNMI1A1 : dw levelNMI1A2 : dw levelNMI1A3 : dw levelNMI1A4 : dw levelNMI1A5 : dw levelNMI1A6 : dw levelNMI1A7
dw levelNMI1A8 : dw levelNMI1A9 : dw levelNMI1AA : dw levelNMI1AB : dw levelNMI1AC : dw levelNMI1AD : dw levelNMI1AE : dw levelNMI1AF
dw levelNMI1B0 : dw levelNMI1B1 : dw levelNMI1B2 : dw levelNMI1B3 : dw levelNMI1B4 : dw levelNMI1B5 : dw levelNMI1B6 : dw levelNMI1B7
dw levelNMI1B8 : dw levelNMI1B9 : dw levelNMI1BA : dw levelNMI1BB : dw levelNMI1BC : dw levelNMI1BD : dw levelNMI1BE : dw levelNMI1BF
dw levelNMI1C0 : dw levelNMI1C1 : dw levelNMI1C2 : dw levelNMI1C3 : dw levelNMI1C4 : dw levelNMI1C5 : dw levelNMI1C6 : dw levelNMI1C7
dw levelNMI1C8 : dw levelNMI1C9 : dw levelNMI1CA : dw levelNMI1CB : dw levelNMI1CC : dw levelNMI1CD : dw levelNMI1CE : dw levelNMI1CF
dw levelNMI1D0 : dw levelNMI1D1 : dw levelNMI1D2 : dw levelNMI1D3 : dw levelNMI1D4 : dw levelNMI1D5 : dw levelNMI1D6 : dw levelNMI1D7
dw levelNMI1D8 : dw levelNMI1D9 : dw levelNMI1DA : dw levelNMI1DB : dw levelNMI1DC : dw levelNMI1DD : dw levelNMI1DE : dw levelNMI1DF
dw levelNMI1E0 : dw levelNMI1E1 : dw levelNMI1E2 : dw levelNMI1E3 : dw levelNMI1E4 : dw levelNMI1E5 : dw levelNMI1E6 : dw levelNMI1E7
dw levelNMI1E8 : dw levelNMI1E9 : dw levelNMI1EA : dw levelNMI1EB : dw levelNMI1EC : dw levelNMI1ED : dw levelNMI1EE : dw levelNMI1EF
dw levelNMI1F0 : dw levelNMI1F1 : dw levelNMI1F2 : dw levelNMI1F3 : dw levelNMI1F4 : dw levelNMI1F5 : dw levelNMI1F6 : dw levelNMI1F7
dw levelNMI1F8 : dw levelNMI1F9 : dw levelNMI1FA : dw levelNMI1FB : dw levelNMI1FC : dw levelNMI1FD : dw levelNMI1FE : dw levelNMI1FF
MainEnd2:

print "DAT1=",bytes
warnpc !Freespace2|$800000+$10000

ORG !Freespace3|$800000
reset bytes
db "STAR"				;\
dw MainEnd3-MainStart3-$01		; |Write RATS tag #1 to protect main code
dw MainEnd3-MainStart3-$01^$FFFF		;/
MainStart3:

Conveyer1: 
incbin Conveyer1.bin
Conveyer2: 
incbin Conveyer2.bin
Conveyer3: 
incbin Conveyer3.bin
Conveyer4: 
incbin Conveyer4.bin
MainEnd3:

print "DAT2=",bytes
warnpc !Freespace2|$800000+$10000
