Merge pull request #1 from Pecusx/develop

Silly Venture edition - version 1.00
This commit is contained in:
Pecusx
2025-07-28 09:34:41 +02:00
committed by GitHub
85 changed files with 10765 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
*.bak
*.lab
*.lst
+295
View File
@@ -0,0 +1,295 @@
/***************************************/
/* Use MADS http://mads.atari8.info/ */
/* Mode: DLI (char mode) */
/***************************************/
icl "digital_melody_logo.h"
org $f0
fcnt .ds 2
fadr .ds 2
fhlp .ds 2
cloc .ds 1
regA .ds 1
regX .ds 1
regY .ds 1
WIDTH = 40
HEIGHT = 30
; --- BASIC switch OFF
org $2000\ mva #$ff portb\ rts\ ini $2000
; --- MAIN PROGRAM
org $2000
ant dta $42,a(scr)
dta $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02
dta $02,$02,$02,$02,$02,$02,$02,$02,$82,$04,$02,$02,$22
dta $41,a(ant)
scr ins "digital_melody_logo.scr"
.ds 0*40
.ALIGN $0400
fnt ins "digital_melody_logo.fnt"
ift USESPRITES
.ALIGN $0800
pmg .ds $0300
ift FADECHR = 0
SPRITES
els
.ds $500
eif
eif
main
; --- init PMG
ift USESPRITES
mva >pmg pmbase ;missiles and players data address
mva #$03 pmcntl ;enable players and missiles
eif
lda:cmp:req $14 ;wait 1 frame
sei ;stop IRQ interrupts
mva #$00 nmien ;stop NMI interrupts
sta dmactl
mva #$fe portb ;switch off ROM to get 16k more ram
mwa #NMI $fffa ;new NMI handler
mva #1 vscrol
mva #$c0 nmien ;switch on NMI+DLI again
ift CHANGES ;if label CHANGES defined
_lp lda trig0 ; FIRE #0
beq stop
lda trig1 ; FIRE #1
beq stop
lda consol ; START
and #1
beq stop
lda cloc
cmp #200 ; timer - 4s.
bcs stop
lda skctl
and #$04
bne _lp ;wait to press any key; here you can put any own routine
els
null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed
eif
stop
mva #0 dmactls ; dark screen
sta dmactl
mva #$00 pmcntl ;PMG disabled
tax
sta:rne hposp0,x+
mva #$ff portb ;ROM switch on
mva #$40 nmien ;only NMI interrupts, DLI disabled
cli ;IRQ enabled
rts ;return to ... DOS
; --- DLI PROGRAM
.local DLI
?old_dli = *
ift !CHANGES
dli1 lda trig0 ; FIRE #0
beq stop
lda trig1 ; FIRE #1
beq stop
lda consol ; START
and #1
beq stop
lda skctl
and #$04
beq stop
lda vcount
cmp #$02
bne dli1
:3 sta wsync
DLINEW dli4
eif
dli_start
dli4
sta regA
stx regX
sty regY
c9 lda #$38
c10 ldx #$04
c11 ldy #$0E
sta wsync ;line=208
sta color0
stx color1
sty color2
c12 lda #$82
sta color3
lda #$01
sta gtictl
lda regA
ldx regX
ldy regY
rti
.endl
; ---
CHANGES = 1
FADECHR = 0
SCHR = 127
; ---
.proc NMI
bit nmist
bpl VBL
jmp DLI.dli_start
dliv equ *-2
VBL
sta regA
stx regX
sty regY
sta nmist ;reset NMI flag
mwa #ant dlptr ;ANTIC address program
mva #@dmactl(standard|dma|lineX1|players|missiles) dmactl ;set new screen width
inc cloc ;little timer
; Initial values
lda >fnt+$400*$00
sta chbase
c0 lda #$0E
sta colpm0
c1 lda #$38
sta colpm1
c2 lda #$04
sta colpm2
c3 lda #$0E
sta colpm3
c4 lda #$82
sta color0
c5 lda #$02
sta color1
c6 lda #$56
sta color2
c7 lda #$86
sta color3
c8 lda #$0E
sta colbak
lda #$02
sta chrctl
lda #$81
sta gtictl
x0 lda #$00
sta hposp0
sta hposp1
sta hposp2
sta hposp3
sta hposm0
sta hposm1
sta hposm2
sta hposm3
sta sizep0
sta sizep1
sta sizep2
sta sizep3
sta sizem
mwa #DLI.dli_start dliv ;set the first address of DLI interrupt
;this area is for yours routines
quit
lda regA
ldx regX
ldy regY
rti
.endp
; ---
ini main
; ---
opt l-
.MACRO SPRITES
missiles
.ds $100
player0
.ds $100
player1
.ds $100
player2
.ds $100
player3
.ds $100
.ENDM
USESPRITES = 0
.MACRO DLINEW
mva <:1 NMI.dliv
ift [>?old_dli]<>[>:1]
mva >:1 NMI.dliv+1
eif
ift :2
lda regA
eif
ift :3
ldx regX
eif
ift :4
ldy regY
eif
rti
.def ?old_dli = *
.ENDM
+164
View File
@@ -0,0 +1,164 @@
; ---
; --- FADE
; ---
.local FADE
stx jsr+1
sty jsr+2
ldx #6
jsr wait
mva #16 cnt
lcol mva <tcol fcnt
hcol mva >tcol fcnt+1
ldx #2
jsr wait
jsr jsr $ffff
dec cnt
bne lcol
ldx #6
wait lda:cmp:req cloc
dex
bne wait
rts
cnt brk
.end
; ---
; --- FADE IN
; ---
.local FADE_IN
ldx <fade
ldy >fade
jmp :fade
fade ldy #0
mva (fcnt),y fadr
iny
lda (fcnt),y
sne:rts
sta fadr+1
lda (fadr),y
tax
iny
eor (fcnt),y
beq skp
dey
pha
and #$f0
beq plus1
plus16 txa
add #$10
tax
plus1 pla
and #$0f
seq
inx
txa
sta (fadr),y
skp adw fcnt #3
jmp fade
.end
; ---
; --- FADE OUT
; ---
.local FADE_OUT
ldx <fade
ldy >fade
jmp :fade
fade ldy #0
mva (fcnt),y fadr
iny
lda (fcnt),y
sne:rts
sta fadr+1
lda (fadr),y
tax
and #$0f
beq skp0
dex
skp0
txa
and #$f0
beq skp1
txa
sub #$10
tax
skp1
txa
sta (fadr),y
adw fcnt #3
jmp fade
.end
; ---
; --- SAVE COLOR
; ---
.local SAVE_COLOR
mva fade.lcol+1 fcnt
mva fade.hcol+1 fcnt+1
loop ldy #0
mva (fcnt),y fadr
iny
lda (fcnt),y
sne:rts
sta fadr+1
lda (fadr),y
iny
sta (fcnt),y
dey
mva #0 (fadr),y ; black screen (all colors = $00)
adw fcnt #3
jmp loop
.end
.use DLI,NMI
tcol
dta t(c0,c1,c2,c3,c4,c5,c6,c7,c8,c9)
dta t(c10,c11,c12)
dta t(0)
Binary file not shown.
+275
View File
@@ -0,0 +1,275 @@
opt l-
.enum @dmactl
blank = %00
narrow = %01
standard= %10
wide = %11
missiles= %100
players = %1000
lineX1 = %10000
lineX2 = %00000
dma = %100000
.ende
scr48 = @dmactl(wide|dma|players|missiles|lineX1) ;screen 48b
scr40 = @dmactl(standard|dma|players|missiles|lineX1) ;screen 40b
scr32 = @dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b
.enum @pmcntl
missiles= %1
players = %10
trigs = %100
.ende
.enum @gtictl
prior0 = %0
prior1 = %1
prior2 = %10
prior4 = %100
prior8 = %1000
ply5 = %10000 ; Fifth Player Enable
mlc = %100000 ; Multiple Color Player Enable
mode9 = %01000000
mode10 = %10000000
mode11 = %11000000
.ende
* ---------------------------------------------------------------------------------------------
* --- OS
* ---------------------------------------------------------------------------------------------
ramlo = $04 ; (2) wektor RAM dla testu wielko?ci pami?ci
warmst = $08 ; znacznik gor?cego startu
boot? = $09 ; znacznik odczytu wst?pnego
dosvec = $0A ; (2) wektor startowy programu dyskowego
dosini = $0C ; (2) wektor inicjacji po odczycie z dyskietki
rtclok = $12 ; (3) zegar czasu rzeczywistego
lmargin = $52
rmargin = $53
rowcrs = $54 ; wiersz kursora
colcrs = $55 ; (2) Kolumna kursora
keydef = $79 ; (2) tablica konwersji kod?w klawiatury na ATASCII
vdslst = $0200 ; (2) wektor przerwa? NMI listy displejowej
timcnt3 = $021C ; trzeci licznik systemu
vvblki = $0222 ; (2) wektor NMI natychmiastowego VBI
vvblkd = $0224 ; (2) wektor NMI op??nionego VBI
timflg3 = $022a ; znacznik wyzerowania licznika TIMCNT3
colpf0s = $02C4 ; rejestr-cie? COLPF0
colpf1s = $02C5 ; rejestr-cie? COLPF1
colpf2s = $02C6 ; rejestr-cie? COLPF2
colpf3s = $02C7 ; rejestr-cie? COLPF3
colbaks = $02C8 ; rejestr-cie? COLBAK
dsctln = $02D5 ; (2) Disk sector size register; default of 128 ($80) bytes
dvstat = $02EA ; (4) device status
crsinh = $02F0 ; znacznik widoczno?ci kursora
chact = $02F3 ; rejestr cien CHRCTL
chbas = $02F4 ; rejestr cien CHBASE
atachr = $02Fb ; numer koloru dla PLOT, DRAW (kod ATASCII znaku)
kbcodes = $02Fc ; kod ostatnio naci?ni?tego klawisza, $ff je?li ?aden nie zosta? naci?ni?ty (KBCODE)
fildat = $02Fd ; numer koloru dla FILL
chart = $02F3 ; cie? rejestru kontroli wy?wietlania znak?w (CHRCTL)
ddevic = $0300 ; Device Control Block, identyfikator urz?dzenia
dunit = $0301 ; Numer urz?dzenia; w przypadku stacji dysk?w numer nap?du
dcmnd = $0302 ; Komenda dla urz?dzenia.
dstats = $0303 ; Przed wywo?aniem SIO nale?y ustawi? tu rodzaj operacji ($40 odczyt, $80 zapis, $C0 zapis i odczyt, $00 brak transferu danych). Po powrocie z systemu znajduje si? tu status operacji (kod b??du).
dbufa = $0304 ; (2) Adres bufora. Przy operacji zapisu i odczytu jednocze?nie (DSTATS = $C0) bufor na odczytywane dane znajduje si? w tym samym miejscu, co bufor danch przeznaczonych do zapisu.
dtimlo = $0306 ; Czas oczekiwania na pozytywn? odpowied? urz?dzenia, tzw. timeout, najczesciej = 7
dunuse = $0307 ; Bajt nieu?ywany, zarezerwowany do przysz?ych zastosowa?.
dbyt = $0308 ; (2) Wielko?? bufora; musi by? zgodna z wielko?ci? transmitowanego bloku danych. Zero oznacza 64 kilobajty.
daux1 = $030A ; Pierwszy bajt pomocniczy. W operacjach dyskowych m?odszy bajt numeru sektora.
daux2 = $030B ; Drugi bajt pomocniczy. W operacjach dyskowych starszy bajt numeru sektora.
casflg = $030F ; When set to zero, the current operation is a standard SIO operation; when non-zero, it is a cassette operation.
hatabs = $031A ; tabela wektor?w procedur obs?ugi
iocb = $0340 ; IOCB 0..7 ($340, $350, $360 ...)
iocom = iocb+2 ; Komenda dla IOCB
ioadr = iocb+4 ; (2) Adres bufora dla IOCB
ioaux1 = iocb+10 ; Bajt pomocniczy 1 IOCB
ioaux2 = iocb+11 ; Bajt pomocniczy 2 IOCB
icchid = $0340
icdno = $0341
iccmd = $0342 ; kod rozkazu operacji I/O
icstat = $0343 ; status operacji I/O
icbufa = $0344 ; (2) adres bufora danych dla operacji I/O
icputb = $0346 ; (2) adres procedury przesy?ania danych
icbufl = $0348 ; (2) d?ugo?? bufora danych dla operacji I/O
icax1 = $034A ; rejestr pomocniczy dla operacji I/O
icax2 = $034B ; rejestr pomocniczy dla operacji I/O
icax3 = $034C ; rejestr pomocniczy dla operacji I/O
icax4 = $034D ; rejestr pomocniczy dla operacji I/O
icax5 = $034E ; rejestr pomocniczy dla operacji I/O
icax6 = $034F ; rejestr pomocniczy dla operacji I/O
casbuf = $0400 ; bufor magnetofonu
casben = $047F ; koniec bufora magnetofonu
setvbv = $E45C
xitvbv = $E462
ciov = $E456 ; Wektor do CIOMAIN
jsioint = $E459 ; Wektor do SIO
jdskint = $E453 ; Wektor do sterownika dyskowego
* ---------------------------------------------------------------------------------------------
* --- KEY ($d209)
* ---------------------------------------------------------------------------------------------
key_esc = 28
key_space = 33
key_a = 63
key_b = 21
key_d = 58
key_m = 37
key_n = 35
key_v = 16
key_o = 8
key_p = 10
key_s = 62
key_w = 46
* ---------------------------------------------------------------------------------------------
* --- GTIA
* ---------------------------------------------------------------------------------------------
hposp0 = $D000 ; pozioma pozycja gracza 0 (Z)
hposp1 = $D001 ; pozioma pozycja gracza 1 (Z)
hposp2 = $D002 ; pozioma pozycja gracza 2 (Z)
hposp3 = $D003 ; pozioma pozycja gracza 3 (Z)
hposm0 = $D004 ; pozioma pozycja pocisku 0 (Z)
hposm1 = $D005 ; pozioma pozycja pocisku 1 (Z)
hposm2 = $D006 ; pozioma pozycja pocisku 2 (Z)
hposm3 = $D007 ; pozioma pozycja pocisku 3 (Z)
sizep0 = $D008 ; poziomy rozmiar gracza 0 (Z)
sizep1 = $D009 ; poziomy rozmiar gracza 1 (Z)
sizep2 = $D00A ; poziomy rozmiar gracza 2 (Z)
sizep3 = $D00B ; poziomy rozmiar gracza 3 (Z)
sizem = $D00C ; poziomy rozmiar pocisk?w (Z)
grafp0 = $D00D ; rejestr grafiki gracza 0 (Z)
grafp1 = $D00E ; rejestr grafiki gracza 1 (Z)
grafp2 = $D00F ; rejestr grafiki gracza 2 (Z)
grafp3 = $D010 ; rejestr grafiki gracza 3 (Z)
grafm = $D011 ; rejestr grafiki pocisk?w (Z)
colpm0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z)
colpm1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z)
colpm2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z)
colpm3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z)
colpf0 = $D016 ; rejestr koloru pola gry 0 (Z)
colpf1 = $D017 ; rejestr koloru pola gry 1 (Z)
colpf2 = $D018 ; rejestr koloru pola gry 2 (Z)
colpf3 = $D019 ; rejestr koloru pola gry 3 (Z)
colpf4 = $D01A
colbak = $D01A ; rejestr koloru t?a (Z)
color0 = colpf0
color1 = colpf1
color2 = colpf2
color3 = colpf3
kolm0pf = $D000 ; kolizja pocisku 0 z polem gry (O)
kolm1pf = $D001 ; kolizja pocisku 1 z polem gry (O)
kolm2pf = $D002 ; kolizja pocisku 2 z polem gry (O)
kolm3pf = $D003 ; kolizja pocisku 3 z polem gry (O)
kolp0pf = $D004 ; kolizja gracza 0 z polem gry (O)
kolp1pf = $D005 ; kolizja gracza 1 z polem gry (O)
kolp2pf = $D006 ; kolizja gracza 2 z polem gry (O)
kolp3pf = $D007 ; kolizja gracza 3 z polem gry (O)
kolm0p = $D008 ; kolizja pocisku 0 z graczem (O)
kolm1p = $D009 ; kolizja pocisku 1 z graczem (O)
kolm2p = $D00A ; kolizja pocisku 2 z graczem (O)
kolm3p = $D00B ; kolizja pocisku 3 z graczem (O)
kolp0p = $D00C ; kolizja gracza 0 z innym graczem (O)
kolp1p = $D00D ; kolizja gracza 1 z innym graczem (O)
kolp2p = $D00E ; kolizja gracza 2 z innym graczem (O)
kolp3p = $D00F ; kolizja gracza 3 z innym graczem (O)
trig0 = $D010 ; stan przycisku joysticka 0 (O)
trig1 = $D011 ; stan przycisku joysticka 1 (O)
trig3 = $D013 ; znacznik do??czenia cartridge-a (O)
pal = $D014 ; znacznik systemu TV (O) PAL = 1, NTSC = 15
gtictl = $D01B ; rejestr kontroli uk?adu GTIA
gtiactl = gtictl
vdelay = $D01C ; licznik op??nienia pionowego P/MG
pmcntl = $D01D ; rejestr kontroli graczy i pocisk?w
hitclr = $D01E ; rejestr kasowania rejestr?w kolizji
consol = $D01F ; rejestr stanu klawiszy konsoli
* ---------------------------------------------------------------------------------------------
* --- POKEY
* ---------------------------------------------------------------------------------------------
irqens = $0010 ; rejestr-cie? IRQEN
irqstat = $0011 ; rejestr-cie? IRQST
audf1 = $d200 ; cz?stotliwo?? pracy generatora 1 (Z)
audc1 = $d201 ; rejestr kontroli d?wi?ku generatora 1 (Z)
audf2 = $d202 ; cz?stotliwo?? pracy generatora 2 (Z)
audc2 = $d203 ; rejestr kontroli d?wi?ku generatora 2 (Z)
audf3 = $d204 ; cz?stotliwo?? pracy generatora 3 (Z)
audc3 = $d205 ; rejestr kontroli d?wi?ku generatora 3 (Z)
audf4 = $d206 ; cz?stotliwo?? pracy generatora 4 (Z)
audc4 = $d207 ; rejestr kontroli d?wi?ku generatora 4 (Z)
audctl = $D208 ; rejestr kontroli generator?w d?wi?ku (Z)
stimer = $D209 ; rejestr zerowania licznik?w (Z)
kbcode = $D209 ; kod ostatnio naci?ni?tego klawisza (O)
skstres = $D20A ; rejestr statusu z??cza szeregowego (Z)
random = $D20A ; rejestr liczby losowej (O)
serout = $D20D ; szeregowy rejestr wyj?ciowy (Z)
serin = $D20D ; szeregowy rejestr wej?ciowy (O)
irqen = $D20E ; zezwolenie przerwa? IRQ (Z)
irqst = $D20E ; status przerwa? IRQ (O)
skctl = $D20F ; rejestr kontroli z??cza szeregowego (Z)
skstat = $D20F ; rejestr statusu z??cza szeregowego (O)
* ---------------------------------------------------------------------------------------------
* --- PIA
* ---------------------------------------------------------------------------------------------
porta = $D300 ; port A uk?adu PIA
portb = $D301 ; port B uk?adu PIA
pactl = $D302 ; rejestr kontroli portu A
pbctl = $D303 ; rejestr kontroli portu B
* ---------------------------------------------------------------------------------------------
* --- ANTIC
* ---------------------------------------------------------------------------------------------
dmactl = $D400 ; rejestr kontroli dost?pu do pami?ci
chrctl = $D401 ; rejestr kontroli wy?wietlania znak?w
dlptr = $D402 ; adres programu ANTIC-a
hscrol = $D404 ; znacznik poziomego przesuwu obrazu
vscrol = $D405 ; znacznik pionowego przesuwu obrazu
pmbase = $D407 ; adres pami?ci graczy i pocisk?w
chbase = $D409 ; adres zestawu znak?w
wsync = $D40A ; znacznik oczekiwania na synchronizacj? poziom?
vcount = $D40B ; licznik linii obrazu
lpenh = $D40C ; poziome po?o?enie pi?ra ?wietlengo
lpenv = $D40D ; pionowe po?o?enie pi?ra ?wietlnego
nmien = $D40E ; rejestr zezwole? na przerwania NMI
nmist = $D40F ; rejestr statusu przerwa? NMI
* ---------------------------------------------------------------------------------------------
* --- HARDWARE
* ---------------------------------------------------------------------------------------------
nmivec = $FFFA ; wektor przerwania NMI
resetvec= $FFFC ; wektor przerwania RESET
irqvec = $FFFE ; wektor przerwania IRQ
opt l+
+466
View File
@@ -0,0 +1,466 @@
// Player-Missile Fade
// v2.5 (26.07.2010 - 12.08.2013)
.ifndef pmg
pmg = $0000
eif
mapBits = pmg+$100
ert <mapBits<>0
// -----------------------------------------------------------
.local fade_chars
color
cont ldx #0
ldy #0
ift FADECHR = 1
box #WIDTH #HEIGHT
eli FADECHR = 2
random
eli FADECHR = 3
left_right
eli FADECHR = 4
plasma
eif
wait lda:cmp:req cloc
rts
.proc color (.byte a) .reg
beq color0
color1 mva #{lda $ffff,y} plot.src
rts
color0 mva #{bit $ffff} plot.src
rts
.endp
// -----------------------------------------------------------
ift FADECHR = 4
.proc plasma
loop mwa #hmap src
ldx #HEIGHT-1
lpy
ldy #WIDTH-1
lpx lda $ffff,y
src equ *-2
cmp #0
hmax equ *-1
sne
jsr plot
dey
bpl lpx
adw src #48
dex
bpl lpy
jsr wait
incdec inc hmax
lda hmax
bmi stop_p
cmp #$3f+1
bcs stop_m
jmp loop
stop_p lda #{inc*}
dta {bit*}
stop_m lda #{dec*}
sta incdec
rts
hmap .he 28 2E 33 39 3F 3B 35 2F 29 24 1F 1A 16 12 0F 0B 09 07 05 05 04 05 06 07 09 0C 0F 12 16 1B 1F 24
.he 29 2E 33 38 3C 3F 3B 38 35 34 33 33 34 36 38 3B 2D 33 39 3F 3A 34 2E 28 23 1E 18 14 0F 0B 08 05
.he 03 01 00 00 00 00 01 02 04 07 0A 0E 13 18 1C 21 26 2C 32 37 3B 3F 3B 37 34 33 32 32 33 35 37 39
.he 33 39 3F 3B 34 2E 28 23 1D 18 12 0E 0A 06 02 00 01 04 05 05 05 04 03 01 01 03 07 0B 0F 14 1A 1F
.he 25 2A 30 35 3B 3F 3A 37 33 32 30 31 32 33 35 38 38 3E 3B 35 2F 29 23 1D 18 12 0D 09 05 01 02 05
.he 07 09 0A 0A 0A 09 07 05 03 00 03 08 0C 11 16 1C 23 28 2E 34 3A 3F 3A 36 33 30 2F 2F 30 32 34 37
.he 3D 3D 37 30 2B 24 1F 19 13 0E 09 03 00 03 06 09 0B 0D 0E 0E 0E 0D 0B 09 06 02 00 05 09 0F 14 1A
.he 20 26 2D 33 3A 3E 3B 37 33 31 30 2F 30 32 34 37 3E 39 32 2C 26 21 1A 15 0F 09 05 00 04 07 0A 0C
.he 0F 10 11 11 11 10 0E 0C 09 05 01 02 07 0C 11 18 1E 24 2B 31 38 3E 3C 38 34 31 2F 30 30 32 34 37
.he 3B 35 2F 29 23 1D 17 12 0C 07 02 02 06 0A 0C 0F 11 13 14 14 13 12 11 0E 0B 08 04 00 05 0A 10 15
.he 1B 22 29 2F 35 3B 3D 39 35 32 31 30 31 34 36 38 38 32 2C 27 20 1A 15 0F 09 04 00 05 09 0C 0F 12
.he 13 15 16 16 15 14 13 10 0D 0A 06 02 02 08 0D 14 1A 20 26 2D 33 39 3E 3C 37 35 33 33 34 35 37 39
.he 35 2F 2A 24 1E 18 13 0D 08 03 02 06 09 0D 10 13 15 16 17 17 16 15 14 12 0F 0B 07 03 01 06 0C 11
.he 17 1D 24 2A 30 36 3C 3F 3C 38 37 37 36 38 39 3C 34 2E 28 23 1D 17 11 0C 07 02 02 07 0A 0D 11 13
.he 15 16 17 17 17 16 14 12 0F 0C 08 04 00 04 0A 10 15 1B 21 27 2D 33 38 3C 3F 3C 3B 3A 3A 3B 3D 3E
.he 32 2D 28 22 1C 16 11 0C 07 02 02 06 0A 0D 10 13 14 16 17 17 16 15 14 12 0F 0C 09 05 00 04 08 0E
.he 13 19 1F 24 2A 30 34 38 3C 3E 3F 3E 3E 3F 3F 3E 32 2D 28 22 1D 17 12 0D 08 03 01 04 09 0C 10 11
.he 13 15 15 15 15 15 13 11 0F 0C 09 04 01 03 07 0D 12 17 1C 22 26 2B 30 34 37 39 3C 3D 3D 3C 3C 3A
.he 33 2E 28 23 1E 19 13 0E 09 04 00 03 07 0A 0D 10 12 13 13 13 14 13 11 10 0D 0A 07 04 00 02 07 0C
.he 10 15 19 1F 23 28 2C 2F 33 35 37 38 38 38 38 37 33 2F 2A 24 20 1A 15 10 0B 07 03 01 05 08 0B 0D
.he 0E 0F 11 11 11 10 0F 0E 0B 09 07 03 00 03 07 0B 0F 14 18 1C 20 24 28 2B 2E 31 32 33 34 34 34 33
.he 35 30 2C 27 22 1C 18 13 0E 0A 06 02 01 04 07 09 0B 0C 0D 0E 0E 0D 0C 0A 09 07 04 01 00 04 07 0B
.he 0E 12 16 1A 1E 21 24 27 2A 2C 2E 2F 30 30 30 30 36 33 2E 2A 25 20 1B 17 13 0E 0A 06 02 00 03 04
.he 06 08 09 09 09 09 08 07 06 04 02 00 01 05 08 0B 0E 11 14 18 1B 1E 21 23 26 28 2A 2B 2C 2C 2C 2C
.he 39 35 32 2D 29 24 20 1B 17 12 0E 0A 07 04 02 00 02 03 04 05 05 04 04 03 02 00 00 02 04 07 09 0B
.he 0E 10 13 16 19 1B 1E 20 23 24 26 27 28 29 29 29 3C 39 35 31 2D 29 24 20 1C 17 13 10 0D 0A 07 05
.he 03 02 01 00 00 00 00 01 01 02 04 05 06 08 0A 0C 0E 11 13 15 17 1A 1B 1E 1F 21 23 24 24 25 26 26
.he 3F 3D 39 36 31 2E 29 25 21 1D 19 16 12 0F 0C 0A 09 08 06 05 05 05 06 06 07 07 08 09 0A 0B 0C 0E
.he 0F 11 12 14 16 18 19 1B 1D 1E 20 20 22 22 23 24 3C 3E 3E 3A 37 33 2F 2B 27 23 1F 1C 19 16 13 11
.he 0F 0E 0D 0C 0C 0B 0B 0C 0C 0C 0D 0D 0D 0E 0F 0F 10 11 12 14 15 16 18 19 1B 1C 1D 1E 1F 20 21 21
.he 37 3A 3C 3F 3C 38 34 30 2D 29 25 22 1F 1C 1A 18 15 15 13 12 12 12 12 12 12 12 12 12 11 12 11 11
.he 12 12 13 14 15 15 16 18 19 1A 1B 1C 1D 1E 1E 20 33 35 37 3A 3D 3E 3B 37 33 2F 2C 28 25 23 20 1E
.he 1D 1B 1A 19 19 19 18 18 18 17 17 16 16 15 15 14 13 13 14 14 14 15 15 16 18 18 19 1A 1B 1D 1D 1F
.he 2E 30 32 35 37 3B 3E 3D 39 35 32 2F 2C 29 27 25 23 22 21 21 20 1F 1F 1F 1E 1D 1D 1C 1A 19 17 17
.he 16 15 15 14 14 14 15 15 16 17 18 19 1A 1B 1C 1D 2A 2B 2D 2F 31 35 38 3C 3F 3C 38 35 32 2F 2D 2B
.he 2A 29 28 27 27 26 26 25 24 23 22 20 1E 1D 1B 19 18 16 16 15 15 15 15 15 15 16 17 18 19 1B 1B 1C
.he 26 27 28 29 2C 2F 32 36 3A 3D 3F 3B 38 36 33 31 31 2F 2E 2E 2D 2C 2D 2B 2B 2A 28 26 24 21 1E 1C
.he 1A 19 17 16 15 15 15 15 15 16 17 18 19 1A 1B 1D 22 22 23 25 26 29 2D 30 34 37 3B 3E 3E 3B 39 37
.he 36 35 34 34 34 33 32 31 30 2F 2C 2A 28 24 22 1F 1D 1A 18 17 17 16 15 15 15 16 17 18 19 1A 1C 1D
.he 1E 1E 1E 1F 21 24 28 2B 2F 32 36 39 3C 3E 3E 3D 3C 3B 3A 3A 39 39 38 36 36 34 31 2E 2B 28 25 22
.he 1F 1C 1A 19 17 17 16 16 16 17 17 18 1A 1B 1C 1E 1B 1B 1B 1B 1E 20 23 27 2A 2E 31 35 38 3A 3C 3E
.he 3F 3F 3F 3F 3D 3D 3C 3B 39 38 35 32 2E 2A 27 24 21 1E 1C 1A 19 18 18 17 18 18 19 19 1B 1C 1E 1F
.he 19 18 17 19 1A 1D 20 23 27 2A 2E 31 34 36 39 3A 3A 3C 3C 3D 3D 3E 3F 3E 3D 3A 37 33 31 2D 29 26
.he 22 20 1E 1C 1A 1A 19 18 19 19 1A 1B 1C 1D 1F 21 18 16 16 17 18 1B 1D 21 25 28 2B 2F 31 34 35 37
.he 38 39 39 3A 3B 3C 3E 3F 3E 3C 39 35 32 2E 2B 27 24 21 1F 1E 1C 1B 1A 1A 1A 1B 1C 1D 1E 1F 22 24
.endp
eif
// -----------------------------------------------------------
ift FADECHR = 3
.proc left_right
mva #WIDTH/2 cnt
mva #0 x0
mva #WIDTH-1 x1
loop ldy #0
x0 equ *-1
jsr column
ldy #0
x1 equ *-1
jsr column
:2 inc x0
:2 dec x1
dec cnt
bne loop
rts
column ldx #HEIGHT-1
draw jsr plot
dex
bpl draw
jmp wait
cnt brk
.endp
eif
// -----------------------------------------------------------
ift FADECHR = 2
.proc random
mwa #0 cnt
loop lda $d20a ; y
and #$f
cmp #15
bcs loop
asl @
sta py
:2 asl @
sta bmap
ret lda $d20a ; x
lsr @
and #$1f
cmp #WIDTH/2
bcs ret
asl @
sta px
:3 lsr @
tax
lda px
and #7
tay
jsr mapByte
and mask,y
bne loop
jsr mapByte
ora mask,y
mvy #{sta $ffff,x} mapByte
jsr mapByte
mvy #{lda $ffff,x} mapByte
ldy #0
px equ *-1
ldx #0
py equ *-1
jsr plot
iny
jsr plot
inx
jsr plot
dey
jsr plot
inw cnt
cpw cnt #(WIDTH/2)*15
jne loop
ldx #$7f
lda #0
sta:rpl mapBits,x-
mapByte lda mapBits,x
bmap equ *-2
rts
mask dta $80,$40,$20,$10,$08,$04,$02,$01
cnt dta a(0)
.endp
eif
// -----------------------------------------------------------
ift FADECHR = 1
.proc box (.byte width, height) .var
loop mva width w
dec w
l0 jsr plot
iny
dec w
bne l0
mva height h
dec h
l1 jsr plot
inx
dec h
bne l1
mva width w
dec w
l2 jsr plot
dey
dec w
bne l2
mva height h
dec h
l3 jsr plot
dex
dec h
bne l3
:2 dec width
:2 dec height
inx
iny
jsr wait
cpy #15
bne loop
rts
w brk
h brk
width brk
height brk
.endp
eif
// -----------------------------------------------------------
.proc movfil (.word fadr, fhlp, fcnt .byte fill+1) .var
sta fill_+1
LDY #0
LDX fcnt+1
BEQ MD2
MD1 LDA (fadr),y ; move the remaining bytes
STA (fhlp),y
fill lda #0
sta (fadr),y
INY
BNE MD1
INC fadr+1
INC fhlp+1
DEX
BNE MD1
MD2 LDX fcnt
BEQ MD4
MD3 LDA (fadr),y ; move the remaining bytes
STA (fhlp),y
fill_ lda #0
sta (fadr),y
INY
DEX
BNE MD3
MD4 RTS
.endp
init movfil #scr #scrn #WIDTH*HEIGHT #SCHR
ldy #0
tya
pmgClr sta pmg+$300,y
sta pmg+$400,y
sta pmg+$500,y
sta pmg+$600,y
sta pmg+$700,y
iny
bne pmgClr
rts
// -----------------------------------------------------------
.proc plot (.byte x,y) .reg
stx rx ; Y char position
sty ry ; X char position
mva lmul,x fadr
mva hmul,x fadr+1
lda fadr
add <scrn
_sta0 sta src+1
lda fadr+1
adc >scrn
_sta1 sta src+2
adw fadr #scr dst+1
lda #SCHR
src lda $ffff,y
dst sta $ffff,y
jsr pmg_plot
ldx #0
rx equ *-1
ldy #0
ry equ *-1
rts
.local pmg_plot
mva lcol,y fcnt
mva hcol,y fcnt+1
txa
asl @
tay
asl @
asl @
add #8
tax
lda (fcnt),y
sta fadr
iny
lda (fcnt),y
sta fadr+1
ldy #0
loop lda (fadr),y
src equ *-2
sta tmp
beq stop
jmi _mis
p0 asl tmp
jmi _pl0
p1 asl tmp
jmi _pl1
p2 asl tmp
jmi _pl2
p3 asl tmp
jmi _pl3
stop rts
tmp brk
_mis @plot $300
jmp p0
_pl0 @plot $400
jmp p1
_pl1 @plot $500
jmp p2
_pl2 @plot $600
jmp p3
_pl3 @plot $700
rts
.macro @plot (player)
.rept 8
iny
lda pmg+%%player+#,x
eor (fadr),y
sta pmg+%%player+#,x
.endr
.endm
.endl
lcol :WIDTH dta l(col%%1)
hcol :WIDTH dta h(col%%1)
.rept WIDTH,#
col%%1 dta a(c%%1r0),a(c%%1r1),a(c%%1r2),a(c%%1r3),a(c%%1r4)
dta a(c%%1r5),a(c%%1r6),a(c%%1r7),a(c%%1r8),a(c%%1r9)
dta a(c%%1r10),a(c%%1r11),a(c%%1r12),a(c%%1r13),a(c%%1r14)
dta a(c%%1r15),a(c%%1r16),a(c%%1r17),a(c%%1r18),a(c%%1r19)
dta a(c%%1r20),a(c%%1r21),a(c%%1r22),a(c%%1r23),a(c%%1r24)
dta a(c%%1r25),a(c%%1r26),a(c%%1r27),a(c%%1r28),a(c%%1r29)
.endr
lmul :HEIGHT dta l(#*WIDTH)
hmul :HEIGHT dta h(#*WIDTH)
.endp
.endl
scrn .ds WIDTH*HEIGHT
Binary file not shown.
+846
View File
@@ -0,0 +1,846 @@
gamescreen_upper
skyp1c0 = $8E
skyp1c1 = $88
skyp1c2 = $00
skyp1c3 = $F4
skyp1c4 = $38
skyp1c5 = $16
skyp1c6 = $16
skyp1c7 = $1A
skyp1c8 = $B4
skyp1c9 = $BA
power_bar
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$02,$0B,$0B,$0B,$0B,$0B,$0B,$87,$87,$87,$87,$87,$87,$0C,$84,$8D,$01,$01,$01,$01,$01,$01,$85
branch0
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
branch1
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$B4,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$B5,$CB,$CC,$CD,$CE,$CF,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
branch2
dta $A8,$8D,$01,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$AB,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$BF,$C0,$C1,$C2,$AA,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
dta $A8,$8D,$01,$01,$01,$01,$8E,$86,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$84,$8D,$01,$01,$01,$01,$01,$01,$85
last_line_r
phase1rp1c0 = $CE
phase1rp1c1 = $C8
phase1rp1c2 = $00
phase1rp1c3 = $F4
phase1rp1c4 = $0C
phase1rp1c5 = $F6
phase1rp1c6 = $16
phase1rp1c7 = $1A
phase1rp1c8 = $B4
phase1rp1c9 = $BA
dta $D2,$D3,$01,$01,$01,$01,$01,$01,$01,$01,$27,$D0,$9F,$00,$0F,$A0,$A3,$A4,$9E,$9F,$51,$A9,$D7,$6F,$70,$6A,$6A,$71,$72,$01,$D4,$D5
last_line_l
phase1lp1c0 = $CE
phase1lp1c1 = $C8
phase1lp1c2 = $00
phase1lp1c3 = $F4
phase1lp1c4 = $0C
phase1lp1c5 = $F6
phase1lp1c6 = $16
phase1lp1c7 = $1A
phase1lp1c8 = $B4
phase1lp1c9 = $BA
dta $D2,$D3,$01,$7F,$7E,$6A,$6A,$7D,$7C,$01,$27,$D0,$9F,$00,$0F,$A0,$A3,$A4,$9E,$9F,$51,$A9,$D7,$01,$01,$01,$01,$BE,$01,$01,$D4,$D5
last_line_RIP_l
ripp1c0 = $CE
ripp1c1 = $C8
ripp1c2 = $00
ripp1c3 = $F4
ripp1c4 = $0C
ripp1c5 = $F6
ripp1c6 = $16
ripp1c7 = $1A
ripp1c8 = $B4
ripp1c9 = $BA
dta $D2,$D3,$01,$60,$61,$62,$62,$63,$64,$01,$27,$D0,$9F,$00,$0F,$A0,$A3,$A4,$9E,$9F,$51,$A9,$D7,$01,$01,$01,$01,$BE,$01,$01,$D4,$D5
last_line_RIP_r
ripp2c0 = $CE
ripp2c1 = $C8
ripp2c2 = $00
ripp2c3 = $F4
ripp2c4 = $0C
ripp2c5 = $F6
ripp2c6 = $16
ripp2c7 = $1A
ripp2c8 = $B4
ripp2c9 = $BA
dta $D2,$D3,$01,$01,$01,$01,$01,$01,$01,$01,$27,$D0,$9F,$00,$0F,$A0,$A3,$A4,$9E,$9F,$51,$A9,$D7,$60,$61,$62,$62,$63,$64,$01,$D4,$D5
.align $100
; Right animation
gamescreen_r_ph1p1 ; phase 1 page 1
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$04,$87,$08,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$5A,$5B,$35,$89,$0A,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$5E,$5F,$DD,$DC,$64,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$E0,$E1,$62,$63,$E6,$42,$65,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$ED,$E8,$E9,$6A,$EB,$EC,$64,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$ED,$EE,$42,$70,$42,$F2,$65,$01,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$F5,$F4,$6B,$6E,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph1p2 ; phase 1 page 2
phase1rp2c0 = $CE
phase1rp2c1 = $C8
phase1rp2c2 = $00
phase1rp2c3 = $F4
phase1rp2c4 = $0C
phase1rp2c5 = $F6
phase1rp2c6 = $16
phase1rp2c7 = $1A
phase1rp2c8 = $B4
phase1rp2c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$04,$87,$08,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$5A,$5B,$35,$89,$0A,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$5E,$5F,$DD,$DC,$64,$01,$01
dta $01,$01,$01,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$E0,$E1,$62,$63,$E6,$42,$65,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$F4,$F5,$F6,$F7,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$ED,$E8,$E9,$6A,$EB,$EC,$64,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$ED,$EE,$42,$70,$42,$F2,$65,$01,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$F5,$F4,$6B,$6E,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p1 ; phase 2 page 1
phase2rp1c0 = $CE
phase2rp1c1 = $C8
phase2rp1c2 = $00
phase2rp1c3 = $F4
phase2rp1c4 = $0C
phase2rp1c5 = $F6
phase2rp1c6 = $16
phase2rp1c7 = $1A
phase2rp1c8 = $B4
phase2rp1c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$01,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p2 ; phase 2 page 2
phase2rp2c0 = $CE
phase2rp2c1 = $C8
phase2rp2c2 = $00
phase2rp2c3 = $F4
phase2rp2c4 = $0C
phase2rp2c5 = $F6
phase2rp2c6 = $16
phase2rp2c7 = $1A
phase2rp2c8 = $B4
phase2rp2c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p3 ; phase 2 page 3
phase2rp3c0 = $CE
phase2rp3c1 = $C8
phase2rp3c2 = $00
phase2rp3c3 = $F4
phase2rp3c4 = $0C
phase2rp3c5 = $F6
phase2rp3c6 = $16
phase2rp3c7 = $1A
phase2rp3c8 = $B4
phase2rp3c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p4 ; phase 2 page 4
phase2rp4c0 = $CE
phase2rp4c1 = $C8
phase2rp4c2 = $00
phase2rp4c3 = $F4
phase2rp4c4 = $0C
phase2rp4c5 = $F6
phase2rp4c6 = $16
phase2rp4c7 = $1A
phase2rp4c8 = $B4
phase2rp4c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $A4,$A5,$26,$01,$01,$01,$D2,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $A4,$A5,$26,$01,$D2,$D7,$01,$01,$01,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p7 ; phase 2 page 7
phase2rp7c0 = $CE
phase2rp7c1 = $C8
phase2rp7c2 = $00
phase2rp7c3 = $F4
phase2rp7c4 = $0C
phase2rp7c5 = $F6
phase2rp7c6 = $16
phase2rp7c7 = $1A
phase2rp7c8 = $B4
phase2rp7c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$F4,$F5,$F6,$F7,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p8 ; phase 2 page 8
phase2rp8c0 = $CE
phase2rp8c1 = $C8
phase2rp8c2 = $00
phase2rp8c3 = $F4
phase2rp8c4 = $0C
phase2rp8c5 = $F6
phase2rp8c6 = $16
phase2rp8c7 = $1A
phase2rp8c8 = $B4
phase2rp8c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$F4,$F5,$F6,$F7,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p9 ; phase 2 page 9
phase2rp9c0 = $CE
phase2rp9c1 = $C8
phase2rp9c2 = $00
phase2rp9c3 = $F4
phase2rp9c4 = $0C
phase2rp9c5 = $F6
phase2rp9c6 = $16
phase2rp9c7 = $1A
phase2rp9c8 = $B4
phase2rp9c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $A4,$A5,$26,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$F4,$F5,$F6,$F7,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $A4,$A5,$26,$01,$01,$01,$D2,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $A4,$A5,$26,$01,$D2,$D7,$01,$01,$01,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p11 ; phase 2 page 11
phase2rp11c0 = $CE
phase2rp11c1 = $C8
phase2rp11c2 = $00
phase2rp11c3 = $F4
phase2rp11c4 = $0C
phase2rp11c5 = $F6
phase2rp11c6 = $16
phase2rp11c7 = $1A
phase2rp11c8 = $B4
phase2rp11c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$C8,$C9,$CA,$CB,$CC,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A4,$A5,$26,$01,$01,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p12 ; phase 2 page 12
phase2rp12c0 = $CE
phase2rp12c1 = $C8
phase2rp12c2 = $00
phase2rp12c3 = $F4
phase2rp12c4 = $0C
phase2rp12c5 = $F6
phase2rp12c6 = $16
phase2rp12c7 = $1A
phase2rp12c8 = $B4
phase2rp12c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$D1,$D2,$D3,$D4,$0C,$59,$D6,$D7,$01,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$C8,$C9,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph2p13 ; phase 2 page 13
phase2rp13c0 = $CE
phase2rp13c1 = $C8
phase2rp13c2 = $00
phase2rp13c3 = $F4
phase2rp13c4 = $0C
phase2rp13c5 = $F6
phase2rp13c6 = $16
phase2rp13c7 = $1A
phase2rp13c8 = $B4
phase2rp13c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$06,$0B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$04,$0C,$0D,$01,$01,$01,$01,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$D1,$D2,$8E,$8F,$10,$11,$92,$93,$01,$01,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$C8,$C9,$94,$95,$96,$97,$98,$99,$1A,$1B,$01
dta $A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$D0,$9C,$AC,$AD,$2E,$AF,$30,$31,$01
dta $A4,$A5,$26,$01,$01,$01,$D2,$E7,$01,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $A4,$A5,$26,$01,$D2,$D7,$01,$01,$01,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph3p1 ; phase 3 page 1
phase3rp1c0 = $CE
phase3rp1c1 = $C8
phase3rp1c2 = $00
phase3rp1c3 = $F4
phase3rp1c4 = $0C
phase3rp1c5 = $F6
phase3rp1c6 = $16
phase3rp1c7 = $1A
phase3rp1c8 = $B4
phase3rp1c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5A,$5B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5E,$5F,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E0,$67,$62,$63,$A7,$B2,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A1,$A2,$A3,$A4,$B3,$B4,$B6,$B7,$B8,$B9,$BA,$3B,$BC,$BD,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$BE,$BF,$C1,$42,$C3,$C4,$45,$46,$CE,$BD,$01,$01,$01
dta $01,$01,$D6,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph3p2 ; phase 3 page 2
phase3rp2c0 = $CE
phase3rp2c1 = $C8
phase3rp2c2 = $00
phase3rp2c3 = $F4
phase3rp2c4 = $0C
phase3rp2c5 = $F6
phase3rp2c6 = $16
phase3rp2c7 = $1A
phase3rp2c8 = $B4
phase3rp2c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5A,$5B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5E,$5F,$01,$01,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E0,$67,$62,$63,$A7,$B2,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$B6,$B7,$B8,$B9,$BA,$3B,$BC,$BD,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$C1,$42,$C3,$C4,$45,$46,$CE,$BD,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$E9,$01,$01,$01,$01,$01,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph3p5 ; phase 3 page 5
phase3rp5c0 = $CE
phase3rp5c1 = $C8
phase3rp5c2 = $00
phase3rp5c3 = $F4
phase3rp5c4 = $0C
phase3rp5c5 = $F6
phase3rp5c6 = $16
phase3rp5c7 = $1A
phase3rp5c8 = $B4
phase3rp5c9 = $BA
dta $01,$01,$01,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$F4,$F5,$F6,$F7,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5A,$5B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5E,$5F,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E0,$67,$62,$63,$A7,$B2,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A1,$A2,$A3,$A4,$B3,$B4,$B6,$B7,$B8,$B9,$BA,$3B,$BC,$BD,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$BE,$BF,$C1,$42,$C3,$C4,$45,$46,$CE,$BD,$01,$01,$01
dta $01,$01,$D6,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph3p6 ; phase 3 page 6
phase3rp6c0 = $CE
phase3rp6c1 = $C8
phase3rp6c2 = $00
phase3rp6c3 = $F4
phase3rp6c4 = $0C
phase3rp6c5 = $F6
phase3rp6c6 = $16
phase3rp6c7 = $1A
phase3rp6c8 = $B4
phase3rp6c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5A,$5B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$F4,$F5,$F6,$F7,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5E,$5F,$01,$01,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E0,$67,$62,$63,$A7,$B2,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$B6,$B7,$B8,$B9,$BA,$3B,$BC,$BD,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$C1,$42,$C3,$C4,$45,$46,$CE,$BD,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$E9,$01,$01,$01,$01,$01,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph3p9 ; phase 3 page 9
phase3rp9c0 = $CE
phase3rp9c1 = $C8
phase3rp9c2 = $00
phase3rp9c3 = $F4
phase3rp9c4 = $0C
phase3rp9c5 = $F6
phase3rp9c6 = $16
phase3rp9c7 = $1A
phase3rp9c8 = $B4
phase3rp9c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$D1,$D2,$D3,$D4,$D5,$FA,$D6,$D7,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$C8,$C9,$CA,$CB,$CC,$5B,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$5E,$5F,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E0,$67,$62,$63,$A7,$B2,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$A1,$A2,$A3,$A4,$B3,$B4,$B6,$B7,$B8,$B9,$BA,$3B,$BC,$BD,$01,$01,$01
dta $01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$BE,$BF,$C1,$42,$C3,$C4,$45,$46,$CE,$BD,$01,$01,$01
dta $01,$01,$D6,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
gamescreen_r_ph3p10 ; phase 3 page 10
phase3rp10c0 = $CE
phase3rp10c1 = $C8
phase3rp10c2 = $00
phase3rp10c3 = $F4
phase3rp10c4 = $0C
phase3rp10c5 = $F6
phase3rp10c6 = $16
phase3rp10c7 = $1A
phase3rp10c8 = $B4
phase3rp10c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$D1,$D2,$D3,$D4,$D5,$D8,$D6,$D7,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$C8,$C9,$CA,$CB,$5E,$5F,$01,$01,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E0,$67,$62,$63,$A7,$B2,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$B6,$B7,$B8,$B9,$BA,$3B,$BC,$BD,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$C1,$42,$C3,$C4,$45,$46,$CE,$BD,$01,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$E9,$01,$01,$01,$01,$01,$01,$01,$01,$01,$D5,$F5,$F4,$6D,$6C,$F4,$F3,$D2,$01,$01
dta $01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$7B,$7A,$79,$78,$77,$76,$01,$01,$01
; left animation
gamescreen_l_ph1p1 ; phase 1 page 1
dta $01,$01,$08,$87,$04,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$09,$8A,$35,$5B,$5A,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$64,$DC,$DD,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$65,$C2,$E6,$63,$62,$E1,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$64,$EC,$EB,$6A,$E9,$E8,$ED,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$65,$F2,$42,$70,$42,$EE,$ED,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6D,$6C,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$01,$01,$01
gamescreen_l_ph1p2 ; phase 1 page 2
phase1lp2c0 = $CE
phase1lp2c1 = $C8
phase1lp2c2 = $00
phase1lp2c3 = $F4
phase1lp2c4 = $0C
phase1lp2c5 = $F6
phase1lp2c6 = $16
phase1lp2c7 = $1A
phase1lp2c8 = $B4
phase1lp2c9 = $BA
dta $01,$01,$08,$87,$04,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$09,$8A,$35,$5B,$5A,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$64,$DC,$DD,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$65,$C2,$E6,$63,$62,$E1,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$01,$01,$01
dta $01,$01,$64,$EC,$EB,$6A,$E9,$E8,$ED,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A9,$F3,$F4,$D9,$FD,$FE,$01,$01,$01,$01,$01,$01
dta $01,$01,$65,$F2,$42,$70,$42,$EE,$ED,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6D,$6C,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$01,$01,$01
gamescreen_l_ph2p1 ; phase 2 page 1
phase2lp1c0 = $CE
phase2lp1c1 = $C8
phase2lp1c2 = $00
phase2lp1c3 = $F4
phase2lp1c4 = $0C
phase2lp1c5 = $F6
phase2lp1c6 = $16
phase2lp1c7 = $1A
phase2lp1c8 = $B4
phase2lp1c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$01,$01,$01
gamescreen_l_ph2p2 ; phase 2 page 2
phase2lp2c0 = $CE
phase2lp2c1 = $C8
phase2lp2c2 = $00
phase2lp2c3 = $F4
phase2lp2c4 = $0C
phase2lp2c5 = $F6
phase2lp2c6 = $16
phase2lp2c7 = $1A
phase2lp2c8 = $B4
phase2lp2c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$E8,$E7,$01,$01,$01,$01,$01,$01
gamescreen_l_ph2p3 ; phase 2 page 3
phase2lp3c0 = $CE
phase2lp3c1 = $C8
phase2lp3c2 = $00
phase2lp3c3 = $F4
phase2lp3c4 = $0C
phase2lp3c5 = $F6
phase2lp3c6 = $16
phase2lp3c7 = $1A
phase2lp3c8 = $B4
phase2lp3c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$01,$E8,$1D,$9E,$9F,$A0,$A1,$A2,$A3
gamescreen_l_ph2p4 ; phase 2 page 4
phase2lp4c0 = $CE
phase2lp4c1 = $C8
phase2lp4c2 = $00
phase2lp4c3 = $F4
phase2lp4c4 = $0C
phase2lp4c5 = $F6
phase2lp4c6 = $16
phase2lp4c7 = $1A
phase2lp4c8 = $B4
phase2lp4c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$01,$E9,$D9,$01,$1D,$9E,$9F
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$1D,$9E,$9F
gamescreen_l_ph2p7 ; phase 2 page 7
phase2lp7c0 = $CE
phase2lp7c1 = $C8
phase2lp7c2 = $00
phase2lp7c3 = $F4
phase2lp7c4 = $0C
phase2lp7c5 = $F6
phase2lp7c6 = $16
phase2lp7c7 = $1A
phase2lp7c8 = $B4
phase2lp7c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$F3,$F4,$D9,$FD,$FE,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$E8,$E7,$01,$01,$01,$01,$01,$01
gamescreen_l_ph2p8 ; phase 2 page 8
phase2lp8c0 = $CE
phase2lp8c1 = $C8
phase2lp8c2 = $00
phase2lp8c3 = $F4
phase2lp8c4 = $0C
phase2lp8c5 = $F6
phase2lp8c6 = $16
phase2lp8c7 = $1A
phase2lp8c8 = $B4
phase2lp8c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A9,$F3,$F4,$D9,$FD,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$01,$E8,$1D,$9E,$9F,$A0,$A1,$A2,$A3
gamescreen_l_ph2p9 ; phase 2 page 9
phase2lp9c0 = $CE
phase2lp9c1 = $C8
phase2lp9c2 = $00
phase2lp9c3 = $F4
phase2lp9c4 = $0C
phase2lp9c5 = $F6
phase2lp9c6 = $16
phase2lp9c7 = $1A
phase2lp9c8 = $B4
phase2lp9c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$1D,$9E,$9F
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A9,$F3,$F4,$D9,$FD,$FE,$01,$01,$01,$1D,$9E,$9F
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$01,$E9,$D9,$01,$1D,$9E,$9F
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$1D,$9E,$9F
gamescreen_l_ph2p11 ; phase 2 page 11
phase2lp11c0 = $CE
phase2lp11c1 = $C8
phase2lp11c2 = $00
phase2lp11c3 = $F4
phase2lp11c4 = $0C
phase2lp11c5 = $F6
phase2lp11c6 = $16
phase2lp11c7 = $1A
phase2lp11c8 = $B4
phase2lp11c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$CA,$CB,$CC,$CD,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$01,$01,$1D,$9E,$9F,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$E8,$E7,$01,$01,$01,$01,$01,$01
gamescreen_l_ph2p12 ; phase 2 page 12
phase2lp12c0 = $CE
phase2lp12c1 = $C8
phase2lp12c2 = $00
phase2lp12c3 = $F4
phase2lp12c4 = $0C
phase2lp12c5 = $F6
phase2lp12c6 = $16
phase2lp12c7 = $1A
phase2lp12c8 = $B4
phase2lp12c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$D2,$D3,$0D,$0C,$D5,$D6,$D7,$D8,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$CC,$CD,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$01,$01,$01,$E8,$1D,$9E,$9F,$A0,$A1,$A2,$A3
gamescreen_l_ph2p13 ; phase 2 page 13
phase2lp13c0 = $CE
phase2lp13c1 = $C8
phase2lp13c2 = $00
phase2lp13c3 = $F4
phase2lp13c4 = $0C
phase2lp13c5 = $F6
phase2lp13c6 = $16
phase2lp13c7 = $1A
phase2lp13c8 = $B4
phase2lp13c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0B,$06,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$0D,$0C,$04,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$93,$92,$11,$10,$8F,$8E,$D7,$D8,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$1B,$1A,$99,$98,$97,$96,$95,$94,$CC,$CD,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$31,$30,$AF,$2E,$AD,$AC,$9C,$D0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$D5,$01,$01,$01,$E9,$D9,$01,$1D,$9E,$9F
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$1D,$9E,$9F
gamescreen_l_ph3p1 ; phase 3 page 1
phase3lp1c0 = $CE
phase3lp1c1 = $C8
phase3lp1c2 = $00
phase3lp1c3 = $F4
phase3lp1c4 = $0C
phase3lp1c5 = $F6
phase3lp1c6 = $16
phase3lp1c7 = $1A
phase3lp1c8 = $B4
phase3lp1c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5B,$5A,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$B2,$A7,$63,$62,$67,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$01,$BD,$BC,$3B,$BA,$B9,$B8,$B7,$B6,$B4,$B3,$9F,$A0,$A1,$A2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$01,$BD,$CE,$46,$45,$C4,$C3,$42,$C1,$BF,$BE,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
gamescreen_l_ph3p2 ; phase 3 page 2
phase3lp2c0 = $CE
phase3lp2c1 = $C8
phase3lp2c2 = $00
phase3lp2c3 = $F4
phase3lp2c4 = $0C
phase3lp2c5 = $F6
phase3lp2c6 = $16
phase3lp2c7 = $1A
phase3lp2c8 = $B4
phase3lp2c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5B,$5A,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$B2,$A7,$63,$62,$67,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$BD,$BC,$3B,$BA,$B9,$B8,$B7,$B6,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$BD,$CE,$46,$45,$C4,$C3,$42,$C1,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
gamescreen_l_ph3p5 ; phase 3 page 5
phase3lp5c0 = $CE
phase3lp5c1 = $C8
phase3lp5c2 = $00
phase3lp5c3 = $F4
phase3lp5c4 = $0C
phase3lp5c5 = $F6
phase3lp5c6 = $16
phase3lp5c7 = $1A
phase3lp5c8 = $B4
phase3lp5c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$01,$01,$01
dta $01,$01,$01,$01,$01,$5B,$5A,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$F3,$F4,$D9,$FD,$FE,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$B2,$A7,$63,$62,$67,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$01,$BD,$BC,$3B,$BA,$B9,$B8,$B7,$B6,$B4,$B3,$9F,$A0,$A1,$A2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$01,$BD,$CE,$46,$45,$C4,$C3,$42,$C1,$BF,$BE,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
gamescreen_l_ph3p6 ; phase 3 page 6
phase3lp6c0 = $CE
phase3lp6c1 = $C8
phase3lp6c2 = $00
phase3lp6c3 = $F4
phase3lp6c4 = $0C
phase3lp6c5 = $F6
phase3lp6c6 = $16
phase3lp6c7 = $1A
phase3lp6c8 = $B4
phase3lp6c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5B,$5A,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$01,$01,$01
dta $01,$01,$01,$01,$01,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A9,$F3,$F4,$D9,$FD,$FE,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$B2,$A7,$63,$62,$67,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$BD,$BC,$3B,$BA,$B9,$B8,$B7,$B6,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$BD,$CE,$46,$45,$C4,$C3,$42,$C1,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
gamescreen_l_ph3p9 ; phase 3 page 9
phase3lp9c0 = $CE
phase3lp9c1 = $C8
phase3lp9c2 = $00
phase3lp9c3 = $F4
phase3lp9c4 = $0C
phase3lp9c5 = $F6
phase3lp9c6 = $16
phase3lp9c7 = $1A
phase3lp9c8 = $B4
phase3lp9c9 = $BA
dta $01,$01,$01,$D2,$D3,$D1,$C8,$D5,$D6,$D7,$D8,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5B,$5A,$CA,$CB,$CC,$CD,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5F,$5E,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$B2,$A7,$63,$62,$67,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$01,$BD,$BC,$3B,$BA,$B9,$B8,$B7,$B6,$B4,$B3,$9F,$A0,$A1,$A2,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$01,$BD,$CE,$46,$45,$C4,$C3,$42,$C1,$BF,$BE,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01
gamescreen_l_ph3p10 ; phase 3 page 10
phase3lp10c0 = $CE
phase3lp10c1 = $C8
phase3lp10c2 = $00
phase3lp10c3 = $F4
phase3lp10c4 = $0C
phase3lp10c5 = $F6
phase3lp10c6 = $16
phase3lp10c7 = $1A
phase3lp10c8 = $B4
phase3lp10c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$D2,$D3,$D1,$C8,$D5,$D6,$D7,$D8,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$5F,$5E,$CA,$CB,$CC,$CD,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$B2,$A7,$63,$62,$67,$E0,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$BD,$BC,$3B,$BA,$B9,$B8,$B7,$B6,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$BD,$CE,$46,$45,$C4,$C3,$42,$C1,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$D6,$F5,$F4,$6B,$6E,$F4,$F3,$01,$D9,$01,$E9,$01,$01,$01,$01,$01,$01,$01,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
dta $01,$01,$01,$7B,$7A,$79,$78,$77,$76,$D8,$01,$01,$01,$01,$01,$01,$01,$01,$E8,$D3,$01,$1D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01
; RIP screens
RIPscreen_l_nobranch ; page 1
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$6D,$6E,$6F,$70,$71,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$7A,$76,$72,$73,$74,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$5F,$5A,$5B,$5B,$5D,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$01,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$5F,$5A,$66,$5C,$5E,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$E8,$E7,$01,$01,$01,$01,$01,$01
RIPscreen_r_nobranch ; page 2
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$6D,$6E,$6F,$70,$71,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$7A,$76,$72,$73,$74,$01,$01,$01,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$5F,$5A,$5B,$5B,$5D,$01,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$5F,$5A,$66,$5C,$5E,$01,$01,$01,$01
RIPscreen_l_branch ; page 3
ripp3c0 = $CE
ripp3c1 = $C8
ripp3c2 = $00
ripp3c3 = $F4
ripp3c4 = $0C
ripp3c5 = $F6
ripp3c6 = $16
ripp3c7 = $1A
ripp3c8 = $B4
ripp3c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$E9,$D4,$D5,$D6,$D7,$EA,$EB,$EC,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$6D,$6E,$6F,$70,$79,$E6,$E7,$E8,$A7,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$7A,$76,$72,$73,$74,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$5F,$5A,$5B,$5B,$5D,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$01,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$5F,$5A,$66,$5C,$5E,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$26,$01,$01,$01,$E8,$E7,$01,$01,$01,$01,$01,$01
RIPscreen_r_branch ; page 4
ripp4c0 = $CE
ripp4c1 = $C8
ripp4c2 = $00
ripp4c3 = $F4
ripp4c4 = $0C
ripp4c5 = $F6
ripp4c6 = $16
ripp4c7 = $1A
ripp4c8 = $B4
ripp4c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$E2,$E3,$E4,$DC,$DD,$88,$DE,$E5,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$DF,$E0,$75,$77,$6F,$70,$71,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$7A,$76,$72,$73,$74,$01,$01,$01,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$5F,$5A,$5B,$5B,$5D,$01,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$5F,$5A,$66,$5C,$5E,$01,$01,$01,$01
RIPscreen_l_Rbranch ; page 5
ripp5c0 = $CE
ripp5c1 = $C8
ripp5c2 = $00
ripp5c3 = $F4
ripp5c4 = $0C
ripp5c5 = $F6
ripp5c6 = $16
ripp5c7 = $1A
ripp5c8 = $B4
ripp5c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$9E,$E2,$E3,$E4,$DC,$DD,$88,$DE,$E5,$01,$01,$01
dta $01,$01,$01,$6D,$6E,$6F,$70,$71,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$29,$DF,$E0,$E1,$DA,$DB,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$7A,$76,$72,$73,$74,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$D6,$5F,$5A,$5B,$5B,$5D,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$01,$01,$01,$E9,$D9,$01,$D2,$01,$01
dta $01,$01,$01,$5F,$5A,$66,$5C,$5E,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$E8,$E7,$01,$01,$01,$01,$01,$01
RIPscreen_r_Lbranch ; page 6
ripp6c0 = $CE
ripp6c1 = $C8
ripp6c2 = $00
ripp6c3 = $F4
ripp6c4 = $0C
ripp6c5 = $F6
ripp6c6 = $16
ripp6c7 = $1A
ripp6c8 = $B4
ripp6c9 = $BA
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$E9,$87,$88,$89,$8A,$EA,$EB,$EC,$A5,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$D9,$E6,$E7,$E8,$28,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$6D,$6E,$6F,$70,$71,$01,$01,$01,$01
dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$7A,$76,$72,$73,$74,$01,$01,$01,$01
dta $01,$01,$D6,$01,$01,$01,$D2,$E7,$01,$01,$D9,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$D5,$5F,$5A,$5B,$5B,$5D,$01,$D2,$01,$01
dta $01,$01,$01,$01,$D2,$D7,$01,$01,$01,$D8,$01,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$01,$01,$5F,$5A,$66,$5C,$5E,$01,$01,$01,$01
+462
View File
@@ -0,0 +1,462 @@
;---------------------------------------------------
; Animation sequence:
; v1 - if no branches
; v2 - if the branch under (due to change of sides) the lumberjack and none above - (now v1)
;
; - (last position)
; - phase 2 page 1
; - phase 2 page 2
; - phase 3 page 1
; - phase 3 page 2
; - phase 2 page 3
; - phase 2 page 4
; - phase 1 page 1 (new position)
;
; v3 - if the branch opposite the lumberjack and no branch above - (now v1)
;
; - (last position)
; - phase 2 page 5
; - phase 2 page 6
; - phase 3 page 3
; - phase 3 page 4
; - phase 2 page 3
; - phase 2 page 4
; - phase 1 page 1 (new position)
;
; v4 - if no branch at the level of the lumberjack and branch above (kill)
; v5 - if the branch under (due to change of sides) the lumberjack and branch above (kill) - (now v4)
;
; - (last position)
; - phase 2 page 1
; - phase 2 page 11
; - phase 3 page 9
; - phase 3 page 10
; - phase 2 page 12
; - phase 2 page 13
; - phase 1 page 1 (new position) - killed
;
; v6 - if the branch opposite the lumberjack and branch above (kill) - (now v4)
;
; - (last position)
; - phase 2 page 5
; - phase 2 page 14
; - phase 3 page 11
; - phase 3 page 12
; - phase 2 page 12
; - phase 2 page 13
; - phase 1 page 1 (new position) - killed
;
; v7 - if no branch at the level of the lumberjack and branch above on the other side
; v8 - if the branch under (due to change of sides) the lumberjack and branch above on the other side - (now v7)
;
; - (last position)
; - phase 2 page 1
; - phase 2 page 7
; - phase 3 page 5
; - phase 3 page 6
; - phase 2 page 8
; - phase 2 page 9
; - phase 1 page 2 (new position)
;
; v9 - if the branch opposite the lumberjack and branch above on the other side - (now v7)
;
; - (last position)
; - phase 2 page 5
; - phase 2 page 10
; - phase 3 page 7
; - phase 3 page 8
; - phase 2 page 8
; - phase 2 page 9
; - phase 1 page 2 (new position)
;
;--------------------------------------------------
.proc AnimationR1
;--------------------------------------------------
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
;mwa #gamescreen_r_ph2p1 animation_addr
;jsr SetPMr2
;WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p2 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p1 animation_addr
jsr SetPMr3
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p2 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p3 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p4 animation_addr
WaitForSync
mwa #gamescreen_r_ph1p1 animation_addr
jsr SetPMr1
;WaitForSync
mva #1 LumberjackDir ; right side
rts
.endp
;AnimationR2 = AnimationR1
;--------------------------------------------------
.proc AnimationL1
;--------------------------------------------------
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
;mwa #gamescreen_l_ph2p1 animation_addr
;jsr SetPMl2
;WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p2 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p1 animation_addr
jsr SetPMl3
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p2 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p3 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p4 animation_addr
WaitForSync
mwa #gamescreen_l_ph1p1 animation_addr
jsr SetPMl1
;WaitForSync
mva #2 LumberjackDir ; left side
rts
.endp
/* AnimationL2 = AnimationL1
;--------------------------------------------------
.proc AnimationR3
;--------------------------------------------------
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p5 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p6 animation_addr
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p3 animation_addr
jsr SetPMr3
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p4 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p3 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p4 animation_addr
WaitForSync
mwa #gamescreen_r_ph1p1 animation_addr
jsr SetPMr1
WaitForSync
mva #1 LumberjackDir ; right side
rts
.endp
;--------------------------------------------------
.proc AnimationL3
;--------------------------------------------------
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p5 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p6 animation_addr
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p3 animation_addr
jsr SetPMl3
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p4 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p3 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p4 animation_addr
WaitForSync
mwa #gamescreen_l_ph1p1 animation_addr
jsr SetPMl1
WaitForSync
mva #2 LumberjackDir ; left side
rts
.endp */
;--------------------------------------------------
.proc AnimationR4
;--------------------------------------------------
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
;mwa #gamescreen_r_ph2p1 animation_addr
;jsr SetPMr2
;WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p11 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p9 animation_addr
jsr SetPMr3
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p10 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p12 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p13 animation_addr
;WaitForSync
mva #1 LumberjackDir ; right side (kill)
rts
.endp
;AnimationR5 = AnimationR4
;--------------------------------------------------
.proc AnimationL4
;--------------------------------------------------
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
;mwa #gamescreen_l_ph2p1 animation_addr
;jsr SetPMl2
;WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p11 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p9 animation_addr
jsr SetPMl3
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p10 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p12 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p13 animation_addr
;WaitForSync
mva #2 LumberjackDir ; left side (kill)
rts
.endp
/* AnimationL5 = AnimationL4
;--------------------------------------------------
.proc AnimationR6
;--------------------------------------------------
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p5 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p14 animation_addr
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p11 animation_addr
jsr SetPMr3
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p12 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p12 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p13 animation_addr
WaitForSync
mwa #gamescreen_r_ph1p1 animation_addr
jsr SetPMr1
WaitForSync
mva #1 LumberjackDir ; right side (kill)
rts
.endp
;--------------------------------------------------
.proc AnimationL6
;--------------------------------------------------
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p5 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p14 animation_addr
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p11 animation_addr
jsr SetPMl3
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p12 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p12 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p13 animation_addr
WaitForSync
mwa #gamescreen_l_ph1p1 animation_addr
jsr SetPMl1
WaitForSync
mva #2 LumberjackDir ; left side (kill)
rts
.endp */
;--------------------------------------------------
.proc AnimationR7
;--------------------------------------------------
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
;mwa #gamescreen_r_ph2p1 animation_addr
;jsr SetPMr2
;WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p7 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p5 animation_addr
jsr SetPMr3
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p6 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p8 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p9 animation_addr
WaitForSync
mwa #gamescreen_r_ph1p2 animation_addr
jsr SetPMr1
;WaitForSync
mva #1 LumberjackDir ; right side
rts
.endp
;AnimationR8 = AnimationR7
;--------------------------------------------------
.proc AnimationL7
;--------------------------------------------------
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
;mwa #gamescreen_l_ph2p1 animation_addr
;jsr SetPMl2
;WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p7 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p5 animation_addr
jsr SetPMl3
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p6 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p8 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p9 animation_addr
WaitForSync
mwa #gamescreen_l_ph1p2 animation_addr
jsr SetPMl1
;WaitForSync
mva #2 LumberjackDir ; left side
rts
.endp
/* AnimationL8 = AnimationL7
;--------------------------------------------------
.proc AnimationR9
;--------------------------------------------------
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p5 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p10 animation_addr
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p7 animation_addr
jsr SetPMr3
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p8 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p8 animation_addr
jsr SetPMr2
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p9 animation_addr
WaitForSync
mwa #gamescreen_r_ph1p2 animation_addr
jsr SetPMr1
WaitForSync
mva #1 LumberjackDir ; right side
rts
.endp
;--------------------------------------------------
.proc AnimationL9
;--------------------------------------------------
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p5 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p10 animation_addr
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p7 animation_addr
jsr SetPMl3
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p8 animation_addr
jsr RestoreRedBar
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p8 animation_addr
jsr SetPMl2
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p9 animation_addr
WaitForSync
mwa #gamescreen_l_ph1p2 animation_addr
jsr SetPMl1
WaitForSync
mva #2 LumberjackDir ; left side
rts
.endp */
;--------------------------------------------------
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$24,$25,$24,$3D,$26,$27,$26,$29,$08,$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$46,$47,$24,$3D,$38,$39,$26,$29,$26,$35,$31,$03,$26,$3F,$26,$29,$24,$25,$48,$49,$54,$55,$02,$00,$26,$3F,$26,$29,$24,$25,$26,$35,$24,$3D,$31,$00,$00
dta $00,$00,$00,$00,$00,$20,$21,$26,$27,$26,$27,$30,$46,$47,$30,$24,$3D,$3A,$3B,$20,$21,$36,$37,$58,$00,$24,$25,$24,$3D,$26,$27,$26,$29,$08,$09,$00,$00,$00,$00,$00
dta $26,$3F,$20,$21,$4C,$4D,$26,$29,$36,$57,$58,$03,$26,$3F,$30,$26,$43,$4E,$4F,$02,$00,$26,$35,$20,$21,$36,$37,$30,$3A,$3B,$24,$3D,$4C,$4D,$44,$45,$26,$35,$30,$31
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$24,$2D,$26,$43,$20,$21,$26,$3F,$26,$2F,$30,$24,$25,$44,$45,$08,$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$20,$21,$26,$27,$20,$21,$38,$39,$31,$00,$4C,$4D,$20,$21,$24,$25,$26,$2F,$24,$3D,$4C,$4D,$44,$45,$26,$35,$30,$31,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$38,$39,$48,$49,$44,$45,$30,$24,$25,$0A,$0B,$44,$45,$24,$3D,$48,$49,$3A,$3B,$26,$27,$31,$22,$2B,$4E,$4F,$08,$09,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$20,$21,$36,$37,$26,$29,$26,$35,$44,$45,$20,$21,$3A,$3B,$26,$27,$26,$29,$26,$43,$31,$00,$38,$39,$20,$21,$26,$43,$46,$47,$30,$3A,$3B,$31,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$46,$47,$26,$2F,$20,$21,$3A,$3B,$26,$35,$44,$45,$31,$00,$46,$47,$24,$3D,$08,$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$46,$47,$24,$3D,$38,$39,$26,$29,$26,$35,$31,$03,$46,$47,$26,$27,$24,$25,$02,$00,$24,$25,$30,$26,$29,$54,$55,$36,$37,$26,$29,$4C,$4D,$30,$24,$25,$52,$53,$31
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$36,$37,$30,$24,$25,$26,$29,$3A,$3B,$24,$25,$26,$29,$26,$27,$31,$00,$22,$13,$50,$51,$31,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$26,$27,$30,$24,$2D,$30,$46,$47,$20,$21,$36,$37,$58,$00,$38,$39,$26,$29,$36,$37,$24,$3D,$26,$27,$50,$51,$31,$00,$0E,$0F,$1E,$1F,$1C,$13,$14,$15,$31,$00
+2
View File
@@ -0,0 +1,2 @@
dta $00,$00,$00,$00,$00,$00,$00,$00,$38,$39,$24,$3D,$26,$27,$26,$29,$08,$09,$00,$00,$00,$24,$2D,$20,$21,$38,$39,$26,$29,$31,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$38,$39,$24,$3D,$26,$27,$26,$29,$08,$09,$46,$47,$26,$43,$20,$21,$30,$3A,$3B,$30,$3A,$3B,$24,$2D,$31,$00,$00,$00,$00,$00,$00,$00
Binary file not shown.
+78
View File
@@ -0,0 +1,78 @@
import json
import sys
def print_lines(
dta, line_from: int, line_to: int, skip_left: int = 0, skip_right: int = 0, f=sys.stdout,):
for d in dta[line_from:line_to]:
print(
f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0 + skip_left*2, len(d) - skip_right*2, 2)]),
file=f)
def write_asm(atrview, out, page, line_from, line_to, skip_left, skip_right):
with open(atrview, 'r', encoding='utf-8-sig') as f:
s = json.load(f)
for p in s['Pages']:
if (isinstance(page, int) and p['Nr'] == page) or (isinstance(page, str) and p['Name'] == page):
dta = p['View']
width = p.get('Width', 40) * 2 # 2 hex chars per byte or 40
dtas = [dta[i * width:(i + 1) * width] for i in range(len(dta) // width)]
break
with open(out, 'wt') as f:
print(f'Writing file: {out}')
print_lines(dtas, line_from, line_to, skip_left,skip_right, f)
write_asm(
atrview='title_fonts.atrview',
out='over_screen.asm',
page='GameOver',
line_from=0,
line_to=13,
skip_left=0,
skip_right=8)
write_asm(
atrview='title_fonts.atrview',
out='credits.asm',
page='Credits',
line_from=0,
line_to=12,
skip_left=0,
skip_right=0)
write_asm(
atrview="title.atrview",
out='title_logo.asm',
page=1,
line_from=2,
line_to=2+8,
skip_left=0,
skip_right=8)
write_asm(
atrview="title.atrview",
out='title_timber.asm',
page=1,
line_from=12,
line_to=12+13,
skip_left=0,
skip_right=8)
write_asm(
atrview="title_fonts.atrview",
out='difficulty_texts.asm',
page='Options',
line_from=0,
line_to=0+2,
skip_left=0,
skip_right=0)
write_asm(
atrview="title_fonts.atrview",
out='go.asm',
page='GO',
line_from=0,
line_to=0+4,
skip_left=0,
skip_right=8)
BIN
View File
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$12,$13,$31,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$10,$11,$31,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0E,$0F,$58,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$24,$2D,$24,$3D,$5C,$31,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+52
View File
@@ -0,0 +1,52 @@
dta $00,$00,$00,$00,$24,$2D,$20,$21
dta $38,$39,$26,$29,$31,$24,$25,$24
dta $3D,$3A,$3B,$46,$47,$26,$43,$24
dta $3D,$36,$37,$44,$45,$31,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$A0,$A1,$A4,$A5,$C6,$C7
dta $B0,$A4,$BD,$BA,$BB,$88,$89,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$44,$45,$46
dta $47,$20,$21,$26,$43,$46,$47,$1D
dta $01,$44,$45,$26,$3F,$20,$21,$24
dta $25,$26,$29,$1D,$01,$00,$00,$00
dta $00,$00,$00,$0E,$0F,$44,$45,$46
dta $47,$31,$32,$33,$24,$3D,$50,$51
dta $31,$22,$13,$48,$49,$46,$47,$46
dta $47,$24,$3D,$3A,$3B,$31,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$B6,$B7,$A6,$A9,$A6
dta $AB,$C6,$C7,$88,$89,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$32,$33
dta $24,$3D,$50,$51,$1D,$01,$24,$25
dta $48,$49,$26,$43,$44,$45,$24,$3D
dta $22,$43,$1D,$01,$00,$00,$00,$00
dta $00,$00,$00,$0E,$0F,$44,$45,$46
dta $47,$31,$32,$33,$24,$3D,$50,$51
dta $31,$22,$13,$48,$49,$46,$47,$46
dta $47,$24,$3D,$3A,$3B,$1D,$01,$00
dta $00,$00,$00,$00,$00,$00,$46,$47
dta $20,$21,$22,$13,$1D,$01,$44,$45
dta $26,$29,$36,$37,$26,$29,$24,$25
dta $46,$47,$31,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$A6,$C3,$B0,$A4,$AD
dta $A6,$AF,$C6,$C7,$88,$89,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$32,$33
dta $24,$3D,$50,$51,$1D,$01,$24,$25
dta $48,$49,$26,$43,$44,$45,$24,$3D
dta $22,$43,$1D,$01,$00,$00,$00,$00
dta $00,$00,$00,$10,$11,$3A,$3B,$26
dta $27,$31,$32,$33,$24,$3D,$50,$51
dta $31,$22,$13,$48,$49,$46,$47,$46
dta $47,$24,$3D,$3A,$3B,$1D,$01,$00
dta $00,$00,$00,$00,$22,$43,$26,$29
dta $46,$47,$48,$49,$22,$43,$3A,$3B
dta $1D,$01,$24,$3D,$26,$3F,$46,$47
dta $30,$24,$3D,$3A,$3B,$31,$00,$00
+325
View File
@@ -0,0 +1,325 @@
import json
color_labels_used = set()
def load_atrview(filename: str, page: int = 1) -> list[str]:
with open(filename, 'rb') as f:
full_json = json.loads(f.read().decode('utf-8-sig'))
dta = full_json['Pages'][page - 1]['View']
# very unpythonic side effect - printing colors consts
const_name = filename.replace('.atrview', '')
cols = full_json['Colors']
for i, val in enumerate([cols[i:i + 2] for i in range(0, len(cols), 2)]):
color_label = const_name + 'p' + str(page) + 'c' + str(i)
if color_label not in color_labels_used:
print(color_label + ' = $' + val)
color_labels_used.add(color_label)
return [dta[i * 80:(i + 1) * 80][:64] for i in range(len(dta) // 80)]
def print_lines(dta, line_from: int, line_to: int):
for d in dta[line_from:line_to]:
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('gamescreen_upper')
dta = load_atrview('sky.atrview')
print("power_bar")
print_lines(dta, 0, 2)
print("branch0")
print_lines(dta, 2, 7)
print("branch1")
print_lines(dta, 7, 12)
print("branch2")
print_lines(dta, 12, 17)
# print("branch3")
# print_lines(dta, 17,22)
print()
print('last_line_r')
dta = load_atrview('phase1r.atrview')
d = dta[-1]
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('last_line_l')
dta = load_atrview('phase1l.atrview')
d = dta[-1]
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('last_line_RIP_l')
dta = load_atrview('rip.atrview', page=1)
d = dta[-1]
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('last_line_RIP_r')
dta = load_atrview('rip.atrview', page=2)
d = dta[-1]
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print("""
.align $100
; Right animation
gamescreen_r_ph1p1 ; phase 1 page 1""")
dta = load_atrview('phase1r.atrview')
for l, d in enumerate(dta[-9:-1], 1):
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('gamescreen_r_ph1p2 ; phase 1 page 2')
dta = load_atrview('phase1r.atrview', page=2)
print_lines(dta, -9, -1)
print("gamescreen_r_ph2p1 ; phase 2 page 1")
dta = load_atrview('phase2r.atrview')
for l, d in enumerate(dta[-9:-1], 1):
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('gamescreen_r_ph2p2 ; phase 2 page 2')
dta = load_atrview('phase2r.atrview', page=2)
print_lines(dta, -9, -1)
print('gamescreen_r_ph2p3 ; phase 2 page 3')
dta = load_atrview('phase2r.atrview', page=3)
print_lines(dta, -9, -1)
print('gamescreen_r_ph2p4 ; phase 2 page 4')
dta = load_atrview('phase2r.atrview', page=4)
print_lines(dta, -9, -1)
#print('gamescreen_r_ph2p5 ; phase 2 page 5')
#dta = load_atrview('phase2r.atrview', page=5)
#print_lines(dta, -9, -1)
#print('gamescreen_r_ph2p6 ; phase 2 page 6')
#dta = load_atrview('phase2r.atrview', page=6)
#print_lines(dta, -9, -1)
print('gamescreen_r_ph2p7 ; phase 2 page 7')
dta = load_atrview('phase2r.atrview', page=7)
print_lines(dta, -9, -1)
print('gamescreen_r_ph2p8 ; phase 2 page 8')
dta = load_atrview('phase2r.atrview', page=8)
print_lines(dta, -9, -1)
print('gamescreen_r_ph2p9 ; phase 2 page 9')
dta = load_atrview('phase2r.atrview', page=9)
print_lines(dta, -9, -1)
#print('gamescreen_r_ph2p10 ; phase 2 page 10')
#dta = load_atrview('phase2r.atrview', page=10)
#print_lines(dta, -9, -1)
print('gamescreen_r_ph2p11 ; phase 2 page 11')
dta = load_atrview('phase2r.atrview', page=11)
print_lines(dta, -9, -1)
print('gamescreen_r_ph2p12 ; phase 2 page 12')
dta = load_atrview('phase2r.atrview', page=12)
print_lines(dta, -9, -1)
print('gamescreen_r_ph2p13 ; phase 2 page 13')
dta = load_atrview('phase2r.atrview', page=13)
print_lines(dta, -9, -1)
#print('gamescreen_r_ph2p14 ; phase 2 page 14')
#dta = load_atrview('phase2r.atrview', page=14)
#print_lines(dta, -9, -1)
print('gamescreen_r_ph3p1 ; phase 3 page 1')
dta = load_atrview('phase3r.atrview', page=1)
print_lines(dta, -9, -1)
print('gamescreen_r_ph3p2 ; phase 3 page 2')
dta = load_atrview('phase3r.atrview', page=2)
print_lines(dta, -9, -1)
#print('gamescreen_r_ph3p3 ; phase 3 page 3')
#dta = load_atrview('phase3r.atrview', page=3)
#print_lines(dta, -9, -1)
#print('gamescreen_r_ph3p4 ; phase 3 page 4')
#dta = load_atrview('phase3r.atrview', page=4)
#print_lines(dta, -9, -1)
print('gamescreen_r_ph3p5 ; phase 3 page 5')
dta = load_atrview('phase3r.atrview', page=5)
print_lines(dta, -9, -1)
print('gamescreen_r_ph3p6 ; phase 3 page 6')
dta = load_atrview('phase3r.atrview', page=6)
print_lines(dta, -9, -1)
#print('gamescreen_r_ph3p7 ; phase 3 page 7')
#dta = load_atrview('phase3r.atrview', page=7)
#print_lines(dta, -9, -1)
#print('gamescreen_r_ph3p8 ; phase 3 page 8')
#dta = load_atrview('phase3r.atrview', page=8)
#print_lines(dta, -9, -1)
print('gamescreen_r_ph3p9 ; phase 3 page 9')
dta = load_atrview('phase3r.atrview', page=9)
print_lines(dta, -9, -1)
print('gamescreen_r_ph3p10 ; phase 3 page 10')
dta = load_atrview('phase3r.atrview', page=10)
print_lines(dta, -9, -1)
#print('gamescreen_r_ph3p11 ; phase 3 page 11')
#dta = load_atrview('phase3r.atrview', page=11)
#print_lines(dta, -9, -1)
#print('gamescreen_r_ph3p12 ; phase 3 page 12')
#dta = load_atrview('phase3r.atrview', page=12)
#print_lines(dta, -9, -1)
print("""
; left animation
gamescreen_l_ph1p1 ; phase 1 page 1""")
# pj = load_atrview('phase1l.atrview')
# print_lines(dta, -9, -1)
with open('phase1l.atrview', 'rb') as f:
pj = json.loads(f.read().decode('utf-8-sig'))
dta = pj['Pages'][0]['View']
dta = [dta[i * 80:(i + 1) * 80][:64] for i in range(len(dta) // 80)]
for l, d in enumerate(dta[-9:-1], 1):
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('gamescreen_l_ph1p2 ; phase 1 page 2')
dta = load_atrview('phase1l.atrview', page=2)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p1 ; phase 2 page 1')
dta = load_atrview('phase2l.atrview', page=1)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p2 ; phase 2 page 2')
dta = load_atrview('phase2l.atrview', page=2)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p3 ; phase 2 page 3')
dta = load_atrview('phase2l.atrview', page=3)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p4 ; phase 2 page 4')
dta = load_atrview('phase2l.atrview', page=4)
print_lines(dta, -9, -1)
#print('gamescreen_l_ph2p5 ; phase 2 page 5')
#dta = load_atrview('phase2l.atrview', page=5)
#print_lines(dta, -9, -1)
#print('gamescreen_l_ph2p6 ; phase 2 page 6')
#dta = load_atrview('phase2l.atrview', page=6)
#print_lines(dta, -9, -1)
print('gamescreen_l_ph2p7 ; phase 2 page 7')
dta = load_atrview('phase2l.atrview', page=7)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p8 ; phase 2 page 8')
dta = load_atrview('phase2l.atrview', page=8)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p9 ; phase 2 page 9')
dta = load_atrview('phase2l.atrview', page=9)
print_lines(dta, -9, -1)
#print('gamescreen_l_ph2p10 ; phase 2 page 10')
#dta = load_atrview('phase2l.atrview', page=10)
#print_lines(dta, -9, -1)
print('gamescreen_l_ph2p11 ; phase 2 page 11')
dta = load_atrview('phase2l.atrview', page=11)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p12 ; phase 2 page 12')
dta = load_atrview('phase2l.atrview', page=12)
print_lines(dta, -9, -1)
print('gamescreen_l_ph2p13 ; phase 2 page 13')
dta = load_atrview('phase2l.atrview', page=13)
print_lines(dta, -9, -1)
#print('gamescreen_l_ph2p14 ; phase 2 page 14')
#dta = load_atrview('phase2l.atrview', page=14)
#print_lines(dta, -9, -1)
print('gamescreen_l_ph3p1 ; phase 3 page 1')
dta = load_atrview('phase3l.atrview', page=1)
print_lines(dta, -9, -1)
print('gamescreen_l_ph3p2 ; phase 3 page 2')
dta = load_atrview('phase3l.atrview', page=2)
print_lines(dta, -9, -1)
#print('gamescreen_l_ph3p3 ; phase 3 page 3')
#dta = load_atrview('phase3l.atrview', page=3)
#print_lines(dta, -9, -1)
#print('gamescreen_l_ph3p4 ; phase 3 page 4')
#dta = load_atrview('phase3l.atrview', page=4)
#print_lines(dta, -9, -1)
print('gamescreen_l_ph3p5 ; phase 3 page 5')
dta = load_atrview('phase3l.atrview', page=5)
print_lines(dta, -9, -1)
print('gamescreen_l_ph3p6 ; phase 3 page 6')
dta = load_atrview('phase3l.atrview', page=6)
print_lines(dta, -9, -1)
#print('gamescreen_l_ph3p7 ; phase 3 page 7')
#dta = load_atrview('phase3l.atrview', page=7)
#print_lines(dta, -9, -1)
#print('gamescreen_l_ph3p8 ; phase 3 page 8')
#dta = load_atrview('phase3l.atrview', page=8)
#print_lines(dta, -9, -1)
print('gamescreen_l_ph3p9 ; phase 3 page 9')
dta = load_atrview('phase3l.atrview', page=9)
print_lines(dta, -9, -1)
print('gamescreen_l_ph3p10 ; phase 3 page 10')
dta = load_atrview('phase3l.atrview', page=10)
print_lines(dta, -9, -1)
#print('gamescreen_l_ph3p11 ; phase 3 page 11')
#dta = load_atrview('phase3l.atrview', page=11)
#print_lines(dta, -9, -1)
#print('gamescreen_l_ph3p12 ; phase 3 page 12')
#dta = load_atrview('phase3l.atrview', page=12)
#print_lines(dta, -9, -1)
print("""
; RIP screens
RIPscreen_l_nobranch ; page 1""")
with open('rip.atrview', 'rb') as f:
pj = json.loads(f.read().decode('utf-8-sig'))
dta = pj['Pages'][0]['View']
dta = [dta[i * 80:(i + 1) * 80][:64] for i in range(len(dta) // 80)]
for l, d in enumerate(dta[-9:-1], 1):
print(f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0, len(d), 2)]))
print('RIPscreen_r_nobranch ; page 2')
dta = load_atrview('rip.atrview', page=2)
print_lines(dta, -9, -1)
print('RIPscreen_l_branch ; page 3')
dta = load_atrview('rip.atrview', page=3)
print_lines(dta, -9, -1)
print('RIPscreen_r_branch ; page 4')
dta = load_atrview('rip.atrview', page=4)
print_lines(dta, -9, -1)
print('RIPscreen_l_Rbranch ; page 5')
dta = load_atrview('rip.atrview', page=5)
print_lines(dta, -9, -1)
print('RIPscreen_r_Lbranch ; page 6')
dta = load_atrview('rip.atrview', page=6)
print_lines(dta, -9, -1)
+2
View File
@@ -0,0 +1,2 @@
python ex.py
python lumberjack_export.py >anim_exported.asm
+13
View File
@@ -0,0 +1,13 @@
dta $00,$00,$00,$00,$00,$81,$82,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$81,$82,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$81,$82,$00,$0B,$0C,$0C,$0D,$0B,$0C,$0C,$2D,$1A,$0D,$00,$0D,$1A,$0C,$0C,$0D,$00,$81,$82,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$81,$82,$00,$05,$06,$0E,$0F,$24,$06,$11,$20,$18,$34,$1B,$1D,$18,$06,$15,$22,$21,$81,$82,$00,$00,$00,$00,$00
dta $00,$00,$00,$F4,$B8,$83,$84,$BD,$08,$09,$10,$0A,$19,$12,$13,$36,$19,$36,$1C,$14,$19,$09,$16,$17,$A3,$C8,$C9,$B0,$F5,$00,$00,$00
dta $00,$00,$00,$2E,$B9,$BA,$BB,$BC,$05,$06,$1E,$07,$37,$1D,$25,$1D,$37,$06,$15,$62,$37,$06,$11,$2A,$D7,$D8,$D9,$DA,$2F,$00,$00,$00
dta $00,$00,$00,$2E,$E8,$E9,$EA,$C1,$08,$09,$1F,$0A,$76,$09,$26,$27,$19,$09,$16,$17,$19,$14,$28,$2B,$AC,$DB,$DC,$DD,$2F,$00,$00,$00
dta $00,$00,$00,$2E,$EC,$BE,$C3,$ED,$C6,$C4,$E4,$C5,$B3,$C2,$B5,$E5,$B2,$C4,$E6,$E7,$B2,$C7,$C6,$B1,$DE,$DF,$E0,$E1,$2F,$00,$00,$00
dta $00,$00,$00,$5E,$D6,$00,$0C,$0D,$0C,$0D,$0C,$0D,$0C,$0D,$31,$00,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$31,$B4,$5F,$00,$00,$00
dta $00,$00,$00,$5E,$AE,$00,$0C,$0D,$0C,$0D,$0C,$0D,$0C,$0D,$31,$00,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$31,$BC,$5F,$00,$00,$00
dta $00,$00,$00,$5E,$A8,$C2,$0C,$0D,$0C,$0D,$0C,$0D,$0C,$0D,$31,$00,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$31,$BE,$5F,$00,$00,$00
dta $00,$00,$00,$5E,$AE,$A3,$0C,$0D,$0C,$0D,$0C,$0D,$0C,$0D,$31,$00,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$31,$C0,$5F,$00,$00,$00
dta $00,$00,$00,$5E,$AA,$C0,$0C,$0D,$0C,$0D,$0C,$0D,$0C,$0D,$31,$00,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$31,$BC,$5F,$00,$00,$00
dta $00,$00,$00,$2E,$CD,$D1,$CE,$EE,$D2,$F0,$CE,$F1,$EF,$50,$CC,$CF,$EF,$F3,$F0,$CE,$CF,$F2,$D2,$CA,$CE,$D3,$D4,$D5,$2F,$00,$00,$00
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
BIN
View File
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
dta $00,$00,$00,$00,$00,$00,$01,$02,$02,$03,$04,$05,$06,$07,$04,$05,$04,$04,$09,$04,$04,$0A,$02,$02,$0B,$0C,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$0D,$0E,$0F,$10,$11,$12,$13,$14,$11,$12,$15,$16,$17,$11,$18,$19,$1A,$1B,$1C,$1D,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$1E,$1F,$20,$21,$11,$12,$22,$23,$11,$12,$24,$25,$26,$11,$27,$28,$11,$29,$11,$2A,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$1F,$20,$2B,$11,$12,$2C,$2D,$11,$12,$2E,$2F,$30,$11,$31,$32,$11,$33,$12,$20,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$36,$37,$38,$39,$39,$3A,$3B,$3C,$3D,$3E,$3F,$40,$41,$42,$39,$39,$43,$39,$37,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$44,$45,$46,$47,$48,$49,$4A,$4B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$34,$35,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6C,$6D,$6E,$E0,$E1,$6F,$70,$71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$7B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$E0,$E1,$62,$63,$64,$63,$63,$65,$E1,$E6,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$67,$68,$69,$6A,$6B,$6C,$63,$63,$65,$6D,$6E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6F,$70,$71,$72,$F3,$74,$75,$76,$77,$71,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$79,$7A,$7B,$7B,$7C,$7D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$5D,$59,$59,$59,$59,$7F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6C,$6D,$6E,$E2,$E3,$6F,$70,$71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6C,$6D,$6E,$E4,$E5,$6F,$70,$71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6C,$6D,$6E,$E6,$E7,$6F,$70,$71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6C,$6D,$6E,$E8,$E9,$6F,$70,$71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$79,$7A,$7B,$7B,$7C,$7E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+161
View File
@@ -0,0 +1,161 @@
;-------------------------------------
.MACRO ROLW
ROL :1
ROL :1+1
.ENDM
;-------------------------------------
.MACRO ASLW
ASL :1
ROL :1+1
.ENDM
;-------------------------------------
.MACRO RORW
ROR :1+1
ROR :1
.ENDM
;-------------------------------------
.MACRO LSRW
LSR :1+1
ROR :1
.ENDM
;-------------------------------------
.MACRO VMAIN
; VMAIN #WORD,interrupt.vector
; interrupt.vector:
; 0 - VIMIRQ
; 1 - TIMCNT1
; 2 - TIMCNT2
; 3 - TIMCNT3
; 4 - TIMCNT4
; 5 - TIMCNT5
; 6 - VVBLKI
; 7 - VVBLKD
; 8 - TIMVEC1
; 9 - TIMVEC2
; Initialises Vertical Blank Interrupts
; (works only with system interrupts ON)
;----------
; on 5200 it sets up deferred VBL ONLY for now
sei
lda #$00 ;Disable all interruptes
sta nmien
sta irqen
@ lda vcount
bne @-
mwa #:1 VVBLKD
mva #$40 nmien
;Enable IRQ interrupts
sta pokmsk
sta irqen
cli
.ENDM
;-------------------------------------
.MACRO VDLI
; VDLI #WORD
; Initialises Display List Interrupts
mwa #:1 VDSLST
mva #$C0 NMIEN
.ENDM
;-------------------------------------
.MACRO halt
?stop
lda RANDOM
and #$05
sta COLBAK
jmp ?stop
.ENDM
;-------------------------------------
.MACRO KEY
; KEY
; waits for releasing and pressing "any key"
.ENDM
;-------------------------------------
.MACRO WAIT
; WAIT
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
?ze LDA VCOUNT
cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
bcc ?ze
sbc #10 ; last lines correction
?wa cmp VCOUNT
bcc ?wa
?wf cmp VCOUNT
bcs ?wf
.ENDM
;-------------------------------------
.macro waitRTC
lda RTCLOK+1
?wa cmp RTCLOK+1
beq ?wa
.endm
;-------------------------------------
.macro negw
; negate the given word (0-a)
;-------------------------------------
sec
lda #$00
sbc :1
sta :1
lda #$00
sbc :1+1
sta :1+1
.endm
;-------------------------------------
.macro randomize
;usage: randomize floor ceiling
;returns (in A) a random .byte between "floor" and "ceiling"
.if :2 < :1
.error "floor higher than ceiling"
.endif
?rand
lda random
cmp #:2+1-:1 ;ceiling
bcs ?rand
.if %1>0 ; if floor = 0 - no add offset
adc #:1
.endif
.endm
;-------------------------------------
.macro phx
txa
pha
.endm
;-------------------------------------
.macro phy
tya
pha
.endm
;-------------------------------------
.macro plx
pla
tax
.endm
;-------------------------------------
.macro ply
pla
tay
.endm
;-------------------------------------
.macro txy
txa
tay
.endm
;-------------------------------------
.macro tyx
tya
tax
.endm
;-------------------------------------
.macro pause
;waits :1 number (byte) of frames
ldx #:1
?PAUSELOOP
wait
dex
bne ?PAUSELOOP
.ENDM
+272
View File
@@ -0,0 +1,272 @@
;****************************************************************************
;* ATARI 5200 CONSOLE *
;* SYSTEM EQUATES *
;****************************************************************************
; based on https://web.archive.org/web/20200831200348/http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html
;
; OS VARIABLES FOR 5200
;
; PAGE 0
POKMSK = $00 ;pokmsk at $00 on Atari 5200 instead of $10 on Atari XL
RTCLOK = $01 ;Actually $01/$02
CRITIC = $03
ATRACT = $04 ;attact at $04 on Atari 5200 instead of $4D on Atari XL
DLPTRS = $05 ;DLPTRS at $05/$06 on Atari 5200 instead of $230 on Atari XL
DMACTLS = $07 ;DMACTLS at $07 on Atari 5200 instead of $22f on Atari XL
SSKCTL = skctl ;There is no shadow on Atari 5200
PCOLR0 EQU $08 ;P0 COLOR
PCOLR1 EQU $09 ;P1 COLOR
PCOLR2 EQU $0a ;P2 COLOR
PCOLR3 EQU $0b ;P3 COLOR
COLOR0 EQU $0c ;COLOR 0
COLOR1 EQU $0d
COLOR2 EQU $0e
COLOR3 EQU $0f
COLOR4 EQU $10
COLBAKS EQU COLOR4
PADDL0 EQU $11
PADDL1 EQU $12
PADDL2 EQU $13
PADDL3 EQU $14
PADDL4 EQU $15
PADDL5 EQU $16
PADDL6 EQU $17
PADDL7 EQU $18
STICK0 = $19 ;There is no stick0 but we will make the analog stick look like a digital one and store it here
STRIG0 = $1a ;There is no strig0 but we will make this the shadow of the TRIG0 ($c010) of GTIA
chbas = $1b ;There is no CHBAS but we will make this the shadow of the CHBASE
CONSOL = $1c ;There are no console keys on Atari 5200, so we replace console h/w reads with a new shadow based on the keypad keys
consol_reset = $07;The constant value representing that no consol key is pressed
kbcode = $1d ;There is no keyboard on the Atari 5200, so replace kbcode h/w reads with a byte variable read based on the keypad keys
; PAGE 2
VIMIRQ EQU $0200 ;IMMED IRQ VECTOR
VVBLKI EQU $0202 ;IMM VBLK NMI VECTOR
VVBLKD EQU $0204 ;DEF VBLK NMI VECTOR
VDSLST EQU $0206 ;DSP LIST NMI VECTOR
VKEYBD EQU $0208 ;POKEY KB IRQ VECTOR
VKEYCNT EQU $020A ;Keypad routine continuation vector
BRKKY EQU $023C ;BREAK KEY VECTOR
VBREAK EQU $020E ;BRK INST IRQ VECTOR
VSERIN EQU $0210 ;POKEY INPUT RDY IRQ
VSEROR EQU $0212 ;POKEY OUTPUT RDY
VSEROC EQU $0214 ;POKEY OUTPUT DONE
VTIMR1 EQU $0216 ;POKEY TIMER 1 IRQ
VTIMR2 EQU $0218 ;POKEY TIMER 2 IRQ
VTIMR4 EQU $021A ;POKEY TIMER 4 IRQ
ROM_SETTINGS = $bfe8 ; game ROM info start (24 bytes total, 20b title, 2b year, 2b start vector)
; HARDWARE REGISTERS
; ---------------------------------------------------------------------------
POKEY EQU $EB00
; ---------------------------------------------------------------------------
;
; READ
;
POT0 EQU POKEY+$00
POT1 EQU POKEY+$01
POT2 EQU POKEY+$02
POT3 EQU POKEY+$03
POT4 EQU POKEY+$04
POT5 EQU POKEY+$05
POT6 EQU POKEY+$06
POT7 EQU POKEY+$07
ALLPOT EQU POKEY+$08
KBCODE_5200 EQU POKEY+$09
RANDOM EQU POKEY+$0a
POTGO EQU POKEY+$0b
SERIN EQU POKEY+$0d
IRQST EQU POKEY+$0e
SKSTAT EQU POKEY+$0f
;
; WRITE
;
AUDF1 EQU POKEY+$00
AUDC1 EQU POKEY+$01
AUDF2 EQU POKEY+$02
AUDC2 EQU POKEY+$03
AUDF3 EQU POKEY+$04
AUDC3 EQU POKEY+$05
AUDF4 EQU POKEY+$06
AUDC4 EQU POKEY+$07
AUDCTL EQU POKEY+$08
STIMER EQU POKEY+$09
SKRES EQU POKEY+$0a
SEROUT EQU POKEY+$0d
IRQEN EQU POKEY+$0e
SKCTL EQU POKEY+$0f
;
;
;
; ---------------------------------------------------------------------------
GTIA EQU $C000
; ---------------------------------------------------------------------------
;
; WRITE
;
HPOSP0 EQU GTIA+$00
HPOSP1 EQU GTIA+$01
HPOSP2 EQU GTIA+$02
HPOSP3 EQU GTIA+$03
HPOSM0 EQU GTIA+$04
HPOSM1 EQU GTIA+$05
HPOSM2 EQU GTIA+$06
HPOSM3 EQU GTIA+$07
SIZEP0 EQU GTIA+$08
SIZEP1 EQU GTIA+$09
SIZEP2 EQU GTIA+$0a
SIZEP3 EQU GTIA+$0b
SIZEM EQU GTIA+$0c
GRAFP0 EQU GTIA+$0d
GRAFP1 EQU GTIA+$0e
GRAFP2 EQU GTIA+$0f
GRAFP3 EQU GTIA+$10
GRAFM EQU GTIA+$11
COLPM0 EQU GTIA+$12
COLPM1 EQU GTIA+$13
COLPM2 EQU GTIA+$14
COLPM3 EQU GTIA+$15
COLPF0 EQU GTIA+$16
COLPF1 EQU GTIA+$17
COLPF2 EQU GTIA+$18
COLPF3 EQU GTIA+$19
COLBAK EQU GTIA+$1a
PRIOR EQU GTIA+$1b
GPRIOR = PRIOR ; no PRIOR shadow (GPRIOR)
VDELAY EQU GTIA+$1c
GRACTL EQU GTIA+$1d
HITCLR EQU GTIA+$1e
CONSOL5200 EQU GTIA+$1f ; no CONSOL in 5200
;
; READ
;
M0PF EQU GTIA+$00
M1PF EQU GTIA+$01
M2PF EQU GTIA+$02
M3PF EQU GTIA+$03
P0PF EQU GTIA+$04
P1PF EQU GTIA+$05
P2PF EQU GTIA+$06
P3PF EQU GTIA+$07
M0PL EQU GTIA+$08
M1PL EQU GTIA+$09
M2PL EQU GTIA+$0a
M3PL EQU GTIA+$0b
P0PL EQU GTIA+$0c
P1PL EQU GTIA+$0d
P2PL EQU GTIA+$0e
P3PL EQU GTIA+$0f
TRIG0 EQU GTIA+$10
TRIG1 EQU GTIA+$11
TRIG2 EQU GTIA+$12
TRIG3 EQU GTIA+$13
PAL EQU GTIA+$14
;
;
; ---------------------------------------------------------------------------
ANTIC EQU $D400
; ---------------------------------------------------------------------------
;
DMACTL EQU ANTIC+$00
CHACTL EQU ANTIC+$01
DLPTR EQU ANTIC+$02
;DLISTH EQU ANTIC+$03
HSCROL EQU ANTIC+$04
VSCROL EQU ANTIC+$05
PMBASE EQU ANTIC+$07
CHBASE EQU ANTIC+$09
WSYNC EQU ANTIC+$0a
VCOUNT EQU ANTIC+$0b
PENH EQU ANTIC+$0c
PENV EQU ANTIC+$0d
NMIEN EQU ANTIC+$0e
NMIRES EQU ANTIC+$0f
NMIST EQU ANTIC+$0f
;
; ---------------------------------------------------------------------------
; Atari ANTIC chip display list equates
; ---------------------------------------------------------------------------
;
JUMP EQU $01 ; display list jump instruction (3 byte)
JVB EQU $41 ; display list jump and wait for vblank instruction (3)
;
SCH EQU $10 ; display list horizontal scrolling
SCV EQU $20 ; display list vertical scrolling
LMS EQU $40 ; display list load memory scan instruction (3 byte)
DLII EQU $80 ; display list interrupt instruction
;
SKIP1 EQU $00 ; display list skip 1 scan line instruction
SKIP2 EQU $10 ; display list skip 2 scan lines instruction
SKIP3 EQU $20 ; display list skip 3 scan lines instruction
SKIP4 EQU $30 ; display list skip 4 scan lines instruction
SKIP5 EQU $40 ; display list skip 5 scan lines instruction
SKIP6 EQU $50 ; display list skip 6 scan lines instruction
SKIP7 EQU $60 ; display list skip 7 scan lines instruction
SKIP8 EQU $70 ; display list skip 8 scan lines instruction
;
MODE2 EQU $02 ; display list mode 2
MODE4 EQU $04 ; display list mode 4
MODE8 EQU $08 ; display list mode 8
MODEE EQU $0E ; display list mode E
MODEF EQU $0F ; display list mode F
; ---------------------------------------------------------------------------
; ENUMS
; ---------------------------------------------------------------------------
.enum @dmactl
blank = %00
narrow = %01
standard= %10
wide = %11
missiles= %100
players = %1000
lineX1 = %10000
lineX2 = %00000
dma = %100000
.ende
scr48 = @dmactl(wide|dma|players|missiles|lineX1)
scr40 = @dmactl(standard|dma|players|missiles|lineX1)
scr32 = @dmactl(narrow|dma|players|missiles|lineX1)
.enum @pmcntl
missiles= %1
players = %10
trigs = %100
.ende
.enum @gtictl
prior0 = %0
prior1 = %1
prior2 = %10
prior4 = %100
prior8 = %1000
ply5 = %10000 ; Fifth Player Enable
mlc = %100000 ; Multiple Color Player Enable
mode9 = %01000000
mode10 = %10000000
mode11 = %11000000
.ende
/*
; commented out to be replaced by the application specific A800 --> 5200 keypad translation
.enum @kbcode
_0
_1
_2
_3
_4
_5
_6
_7
_8
_9
_asterisk = $0a
_hash = $0b
_start = $0c
_pause = $0d
_reset = $0e
.ende
*/
+738
View File
@@ -0,0 +1,738 @@
;****************************************************************************
;* ATARI PERSONAL COMPUTER *
;* SYSTEM EQUATES *
;****************************************************************************
;
; OPERATING SYSTEM EQUATE FILE
;
; MODULE ORIGIN TABLE
;
; VECTOR TABLE
;
; HANDLER ENTRY POINTS ARE CALL-
; ED OUT IN THE FOLLOWING VECTOR
; TABLE. THESE ARE THE ADDRESSES
; MINUS ONE.
;
; EXAMPLE FOR EDITOR
;
; E400 OPEN
; 2 CLOSE
; 4 GET
; 6 PUT
; 8 STATUS
; A SPECIAL
; C JUMP TO POWER ON INIT
; F NOT USED
;
EDITRV EQU $E400 ;EDITOR
SCRENV EQU $E410 ;TV SCREEN
KEYBDV EQU $E420 ;KEYBOARD
PRINTV EQU $E430 ;PRINTER
CASETV EQU $E440 ;CASSETTE
;
; JUMP VECTOR TABLE
;
; THE FOLLOWING IS A TABLE OF
; JUMP INSTRUCTIONS TO VARIOUS
; ENTRY POINTS IN THE OPERATING
; SYSTEM
;
DISKIV EQU $E450 ;DISK INITIALIZATION
DSKINV EQU $E453 ;DISK INTERFACE
CIOV EQU $E456 ;CENTRAL I/O ROUTINE
SIOV EQU $E459 ;SERIAL I/O ROUTINE
SETVBV EQU $E45C ;SET SYSTEM TIMERS
SYSVBV EQU $E45F ;VBLANK CALCULATIONS
XITVBV EQU $E462 ;EXIT VBLANK
SIOINV EQU $E465 ;SIO INITIALIZATION
SENDEV EQU $E468 ;SEND ENABLE ROUTINE
INTINV EQU $E46B ;INTRPT HANDLER INIT
CIOINV EQU $E46E ;CIO INITIALIZATION
BLKBDV EQU $E471 ;BLACKBOARD MODE
WARMSV EQU $E474 ;WARM START VECTOR
COLDSV EQU $E477 ;COLD START VECTOR
RBLOKV EQU $E47A ;CASSETTE READ BLOCK
CSOPIV EQU $E47D ;CASSETTE INPUT OPEN
;
; VECTORS ADDED FOR 800XL
;
PUPDIV EQU $E480 ;POWER UP DISPLAY
SLFTSV EQU $E483 ;SELF TEST PROGRAM
PHENTV EQU $E486 ;UPLOADED HANDLER ENTER
PHULNV EQU $E489 ;UPLOADED HANDLER UNLINK
PHINIV EQU $E48C ;UPLOADED HANDLER INIT
;
; OPERATING SYSTEM EQUATES
;
; COMMAND CODES FOR IOCBS
;
_OPEN EQU $03 ;OPEN FOR I/O
GETREC EQU $05 ;GET RECORD (TEXT)
GETCHR EQU $07 ;GET CHARACTER(S)
PUTREC EQU $09 ;PUT RECORD (TEXT)
PUTCHR EQU $0B ;PUT CHARACTER(S)
_CLOSE EQU $0C ;CLOSE DEVICE
STATIS EQU $0D ;STATUS REQUEST
SPECIL EQU $0E ;SPECIAL ENTRY COMMAND
;
; SPECIAL ENTRY COMMANDS
;
DRAWLN EQU $11 ;DRAW LINE
FILLIN EQU $12 ;FILL
RENAME EQU $20 ;RENAME DISK FILE
DELETE EQU $21 ;DELETE DISK FILE
FORMAT EQU $22 ;FORMAT DISK
LOCKFL EQU $23 ;LOCK FILE
UNLOCK EQU $24 ;UNLOCK FILE
POINT EQU $25 ;POINT SECTOR
NOTE EQU $26 ;NOTE SECTOR
IOCFRE EQU $FF ;IOCB "FREE"
;
; AUX1 EQUATES
; () INDICATES WHICH DEVICES
;
APPEND EQU $01 ;WR APPEND(D)-SCN RD(E)
DIRECT EQU $02 ;OPEN DIRECTORY(D)
OPNIN EQU $04 ;OPEN FOR INPUT(ALL)
OPNOT EQU $08 ;OPEN FOR OUTPUT(ALL)
OPNINO EQU $0C ;OPEN INPUT&OUTPUT(ALL)
MXDMOD EQU $10 ;OPEN MIXED MODE(E,S)
INSCLR EQU $20 ;OPEN W/O CLEAR(E,S)
;
; DEVICE NAMES
;
SCREDT EQU 'E' ;SCREEN EDITOR (R/W)
KBD EQU 'K' ;KEYBOARD (R ONLY)
DISPLY EQU 'S' ;SCREEN DISPLAY (R/W)
PRINTR EQU 'P' ;PRINTER (W ONLY)
CASSET EQU 'C' ;CASSETTE (R/W)
RS232 EQU 'R' ;MODEM (R/W)
DISK EQU 'D' ;DISK (R/W)
;
;
;
; OPERATING SYSTEM STATUS CODES
;
SUCCES EQU $01 ;SUCCESSFUL OPERATION
BRKABT EQU $80 ;BREAK KEY ABORT
PRVOPN EQU $81 ;IOCB ALREADY OPEN
NONDEV EQU $82 ;NON-EXISTANT DEVICE
WRONLY EQU $83 ;IOCB OPEN FOR W ONLY
NVALID EQU $84 ;INVALID COMMAND
NOTOPN EQU $85 ;DEVICE/FILE NOT OPEN
BADIOC EQU $86 ;INVALID IOCB #
RDONLY EQU $87 ;IOCB OPEN FOR R ONLY
EOFERR EQU $88 ;END OF FILE
TRNRCD EQU $89 ;TRUNCATED RECORD
TIMOUT EQU $8A ;PERIPHERAL TIMEOUT
DNACK EQU $8B ;DEVICE NO ACKNOWLEDGE
FRMERR EQU $8C ;SERIAL BUS FRAME ERR
CRSROR EQU $8D ;CURSOR OVERRANGE
OVRRUN EQU $8E ;SERIAL DATA OVERRUN
CHKERR EQU $8F ;SERIAL CHECKSUM ERR
DERRER EQU $90 ;PERIPHRAL DEVICE ERR
BADMOD EQU $91 ;BAD SCREEN MODE #
FNCNOT EQU $92 ;NONEXISTANT FUNCTION
SCRMEM EQU $93 ;SCREEN MEM TOO SMALL
FILENF EQU $AA ;FILE NOT FOUND
;
; PAGE ZERO RAM ASSIGNMENTS
;
LNFLG EQU $00 ;LINBUG RAM
NGFLAG EQU $01 ;POWER-UP SELF-TEST FLAG
;
; THESE LOCATIONS NOT CLEARED
;
CASINI EQU $02 ;CASSETTE INIT LOC
RAMLO EQU $04 ;RAM POINTER MEM TST
TRAMSZ EQU $06 ;TEMP REG RAM SIZE
TSTDAT EQU $07 ;RAM TEST DATA REG
;
;CLEARED ON COLDSTART ONLY
;
WARMST EQU $08 ;WARM START FLAG
BOOTQ EQU $09 ;SUCCESSFUL BOOT FLG
DOSVEC EQU $0A ;DOS START VECTOR
DOSINI EQU $0C ;DOS INIT ADDRESS
APPMHI EQU $0E ;APPL MEM HI LIMIT
;
;CLEARED ON COLD OR WARM START
;
POKMSK EQU $10 ;MASK POKEY IRQ
BRKKEY EQU $11 ;BREAK KEY FLAG
RTCLOK EQU $12 ;REAL TIME CLOCK
BUFADR EQU $15 ;INDIRECT BUFF ADDR
ICCOMT EQU $17 ;COMMAND FOR VECTOR
DSKFMS EQU $18 ;FMS POINTER
DSKUTL EQU $1A ;DISK UTILITIES PTR
ABUFPT EQU $1C ;RESERVED
ICHIDZ EQU $20 ;HANDLER INDEX #
ICDNOZ EQU $21 ;DEVICE NUMBER
ICCOMZ EQU $22 ;COMMAND CODE
ICSTAZ EQU $23 ;STATUS RETURN
ICBALZ EQU $24 ;BUFFER ADDRESS
ICBAHZ EQU $25
ICPTLZ EQU $26 ;PUT BYTE ROUTINE-1
ICPTHZ EQU $27
ICBLLZ EQU $28 ;BUFFER LENGTH
ICBLHZ EQU $29
ICAX1Z EQU $2A ;AUXILIARY BYTES
ICAX2Z EQU $2B
ICSPRZ EQU $2C ;SPARE BYTES
ICIDNO EQU $2E ;IOCB # X 16
CIOCHR EQU $2F ;CIO CHARACTER BYTE
STATUS EQU $30 ;INTERNAL STATUS
CHKSUM EQU $31 ;CHECKSUM
BUFRLO EQU $32 ;DATA BUFFER LO BYTE
BUFRHI EQU $33 ;DATA BUFFER HI BYTE
BFENLO EQU $34 ;NEXT BYTE PAST DATA
BFENHI EQU $35 ;BUFFER (HI & LO)
LTEMP EQU $36 ;LOADER TEMP
BUFRFL EQU $38 ;DATA BUFFR FULL FLG
RECVDN EQU $39 ;RECIEVE DONE FLAG
XMTDON EQU $3A ;XMIT DONE FLAG
CHKSNT EQU $3B ;CHECKSUM SENT FLAG
NOCKSM EQU $3C ;NO CHKSUM SENT FLAG
;BPTR EQU $3D ;CASSETTE DATA INDEX
FTYPE EQU $3E ;INTERRECORD GAP TYPE
FEOF EQU $3F ;END OF FILE FLAG
FREQ EQU $40 ;BEEP COUNT
SOUNDR EQU $41 ;NOISY I/O FLAG
CRITIC EQU $42 ;CRITICAL MODE
FMSZPG EQU $43 ;FMS ZERO PAGE
ZCHAIN EQU $4A ;HANDLER LOADER TEMP
DSTAT EQU $4C ;DISPLAY STATUS
ATRACT EQU $4D ;ATTRACT FLAG
DRKMSK EQU $4E ;DARK ATTRACT MASK
COLRSH EQU $4F ;COLOR SHIFTER
TMPCHR EQU $50 ;TEMP STORAGE
HOLD1 EQU $51 ;TEMP STORAGE
LMARGN EQU $52 ;LEFT MARGIN (1)
RMARGN EQU $53 ;RIGHT MARGIN (38)
ROWCRS EQU $54 ;CURSOR COUNTERS
COLCRS EQU $55
DINDEX EQU $57 ;DISPLAY MODE #
SAVMSC EQU $58 ;SCREEN MEM ADDR
OLDROW EQU $5A ;DRAW START POSIT
OLDCOL EQU $5B
OLDCHR EQU $5D ;DATA UNDER CURSOR
OLDADR EQU $5E ;CURSOR MEM ADDR
FKDEF EQU $60 ;FUNC KEY DEFEAT POINTER
PALNTS EQU $62 ;PAL/NTSC FLAG
LOGCOL EQU $63 ;COL IN LOGICAL LINE
ADRESS EQU $64 ;TEMP STORAGE
MLTEMP EQU $66 ;TEMP STORAGE
SAVADR EQU $68 ;TEMP STORAGE
RAMTOP EQU $6A ;AVAILABLE RAM PAGES
BUFCNT EQU $6B ;BUFFER COUNT
BUFSTR EQU $6C ;EDITOR GETCH POINTR
BITMSK EQU $6E ;BIT MASK
SHFAMT EQU $6F ;PIXEL JUSTIFICATION
ROWAC EQU $70 ;ROW ACCUMULATOR
COLAC EQU $72 ;COLUMN ACCUMULATOR
ENDPT EQU $74 ;LINE LENGTH
DELTAR EQU $76 ;DELTA ROW
DELTAC EQU $77 ;DELTA COLUMN
KEYDEF EQU $79 ;KEY DEFEAT POINTER
SWPFLG EQU $7B ;SPLIT SCN CURS CNTL
HOLDCH EQU $7C ;KB CHAR TEMP HOLD
INSDAT EQU $7D ;TEMP STORAGE
COUNTR EQU $7E ;DRAW ITERATION CNT
;
; 80-FF ARE RESERVED FOR USER
;
; NOTE: SEE FLOATING POINT
; SUBROUTINE AREA FOR ZERO
; PAGE CELLS
;
; PAGE 1 - HARDWARE STACK
;
; PAGE TWO RAM ASSIGNMENTS
;
VDSLST EQU $0200 ;DSP LIST NMI VECTOR
VPRCED EQU $0202 ;PROCEED IRQ VECTOR
VINTER EQU $0204 ;INTERUPT IRQ VECTOR
VBREAK EQU $0206 ;BRK INST IRQ VECTOR
VKEYBD EQU $0208 ;POKEY KB IRQ VECTOR
VSERIN EQU $020A ;POKEY INPUT RDY IRQ
VSEROR EQU $020C ;POKEY OUTPUT RDY
VSEROC EQU $020E ;POKEY OUTPUT DONE
VTIMR1 EQU $0210 ;POKEY TIMER 1 IRQ
VTIMR2 EQU $0212 ;POKEY TIMER 2 IRQ
VTIMR4 EQU $0214 ;POKEY TIMER 4 IRQ
VIMIRQ EQU $0216 ;IMMED IRQ VECTOR
CDTMV1 EQU $0218 ;COUNT DOWN TIMER 1
CDTMV2 EQU $021A ;COUNT DOWN TIMER 2
CDTMV3 EQU $021C ;COUNT DOWN TIMER 3
CDTMV4 EQU $021E ;COUNT DOWN TIMER 4
CDTMV5 EQU $0220 ;COUNT DOWN TIMER 5
VVBLKI EQU $0222 ;IMM VBLK NMI VECTOR
VVBLKD EQU $0224 ;DEF VBLK NMI VECTOR
CDTMA1 EQU $0226 ;CDTMV1 JSR ADDRESS
CDTMA2 EQU $0228 ;CDTMV2 JSR ADDRESS
CDTMF3 EQU $022A ;CDTMV3 FLAG
SRTIMR EQU $022B ;SOFTWARE REPEAT TMR
CDTMF4 EQU $022C ;CDTMV4 FLAG
INTEMP EQU $022D ;IAN'S TEMP
CDTMF5 EQU $022E ;CDTMV5 FLAG
DMACTLS EQU $022F ;SAVE DMACTL REG
DLPTRS EQU $0230 ;SAVE DISP LIST LO
;SDLSTH EQU $0231 ;SAVE DISP LIST HI
SSKCTL EQU $0232 ;SKCTL REGISTER RAM
LCOUNT EQU $0233 ;LOADER TEMP
LPENH EQU $0234 ;LIGHT PEN HORIZONTAL
LPENV EQU $0235 ;LIGHT PEN VERTICAL
BRKKY EQU $0236 ;BREAK KEY VECTOR
RELADR EQU $0238 ;LOADER REL ADDR
CDEVIC EQU $023A ;COMMAND BUFFER-DEV
CCOMND EQU $023B ;COMMAND BUFFER-CMND
CAUX1 EQU $023C ;COMMAND BUFFER AUX1
CAUX2 EQU $023D ;COMMAND BUFFER AUX2
;TEMP EQU $023E ;TEMPORARY RAM CELL
ERRFLG EQU $023F ;DEVICE ERROR FLAG
DFLAGS EQU $0240 ;DISK FLAGS(SECTOR1)
DBSECT EQU $0241 ;# DISK BOOT SECTORS
BOOTAD EQU $0242 ;DISK BOOT ADDRESS
COLDST EQU $0244 ;COLDSTART FLAG 1=CS
RECLEN EQU $0245 ;LOADER LENGTH
DSKTIM EQU $0246 ;DISK TIME OUT REG
VSFLAG EQU $026C ;FINE SCROLL TEMP
KEYDIS EQU $026D ;KEY DISABLE FLAG
FINE EQU $026E ;FINE SCROLL ENABLE(A1200)
GPRIOR EQU $026F ;GLOBAL PRIORITY
PADDL0 EQU $0270 ;POT 0 RAM CELL
PADDL1 EQU $0271
PADDL2 EQU $0272
PADDL3 EQU $0273
STICK0 EQU $0278 ;JOYSTICK 0 RAM CELL
STICK1 EQU $0279
PTRIG0 EQU $027C ;PADDLE TRIGGER 0
PTRIG1 EQU $027D
PTRIG2 EQU $027E
PTRIG3 EQU $027F
STRIG0 EQU $0284 ;JOYSTICK TRIGGER 0
STRIG1 EQU $0285
HIBYTE EQU $0288 ;LOADER
WMODE EQU $0289 ;CASSETTE R/W MODE
BLIM EQU $028A ;CASSETTE RECORD SIZE
IMASK EQU $028B
JVECK EQU $028C ;JUMP VECTOR
NEWADR EQU $028E ;LOADER NEW ADDRESS
TXTROW EQU $0290 ;TEXT ROWCRS
TXTCOL EQU $0291 ;TEXT COLCRS
TINDEX EQU $0293 ;TEXT INDEX
TXTMSC EQU $0294 ;TEXT WINDOW MEM ADD
TXTOLD EQU $0296 ;TEXT OLDROW & COL
CRETRY EQU $029C ;# COMMAND RETRIES
HOLD3 EQU $029D
SUBTMP EQU $029E
HOLD2 EQU $029F
DMASK EQU $02A0 ;PIXEL LOCATION MASK
TMPLBT EQU $02A1
ESCFLG EQU $02A2 ;ESCAPE FLAG
TABMAP EQU $02A3 ;TAB STOP MAP
LOGMAP EQU $02B2 ;LINE START BIT MAP
INVFLG EQU $02B6 ;INVERSE VIDEO FLAG
FILFLG EQU $02B7 ;FILL FLAG FOR DRAW
TMPROW EQU $02B8
TMPCOL EQU $02B9
SCRFLG EQU $02BB ;SET IF SCROLLING
HOLD4 EQU $02BC ;TEMP USED BY DRAW
DRETRY EQU $02BD ;# OF DEVICE RETRIES
SHFLOK EQU $02BE ;SHIFT/CTL LOCK FLAG
BOTSCR EQU $02BF ;BOTTOM OF SCREEN
PCOLR0 EQU $02C0 ;P0 COLOR
PCOLR1 EQU $02C1 ;P1 COLOR
PCOLR2 EQU $02C2 ;P2 COLOR
PCOLR3 EQU $02C3 ;P3 COLOR
COLOR0 EQU $02C4 ;COLOR 0
COLOR1 EQU $02C5
COLOR2 EQU $02C6
COLOR3 EQU $02C7
COLOR4 EQU $02C8
COLBAKS EQU COLOR4
RUNADR EQU $02C9 ;LOADER
HIUSED EQU $02CB ;LOADER
ZHIUSE EQU $02CD ;LOADER
GBYTEA EQU $02CF ;LOADER
LOADAD EQU $02D1 ;LOADER
ZLOADA EQU $02D3 ;LOADER
DSCTLN EQU $02D5 ;DISK SECTOR LENGTH
ACMISR EQU $02D7 ;RESERVED
KRPDEL EQU $02D9 ;KEY REPEAT DELAY
KEYREP EQU $02DA ;KEY REPEAT RATE(VBLANKS)
NOCLIK EQU $02DB ;CLICK ENABLE/DISABLE
HELPFG EQU $02DC ;HELP KEY FLAG
DMASAV EQU $02DD ;DMA SAVE STATE
PBPNT EQU $02DE ;PRINT BUFFER POINTER
PBUFSZ EQU $02DF ;PRINT BUFFER SIZE
DOSRUN EQU $02E0 ;DOS RUN/INIT ADDRESSES
RAMSIZ EQU $02E4 ;RAM SIZE-HIGH BYTE
MEMTOP EQU $02E5 ;TOP OF AVAIL MEMORY
MEMLO EQU $02E7 ;BOTTOM OF AVAIL MEM
HNDLOD EQU $02E9 ;POLL FLAG (1200)
DVSTAT EQU $02EA ;STATUS BUFFER
CBAUDL EQU $02EE ;CASSETTE BAUD RATE
CBAUDH EQU $02EF
CRSINH EQU $02F0 ;CURSOR INHIBIT 0=ON
KEYDEL EQU $02F1 ;KEY DELAY
CH1 EQU $02F2 ;PRIOR KB CHAR CODE
CHACT EQU $02F3 ;CHACTL REGISTER RAM
CHBAS EQU $02F4 ;CHBAS REGISTER RAM
NEWROW EQU $02F5 ;POINT DRAW GOES TO
NEWCOL EQU $02F6
ROWINC EQU $02F8 ;ROW INCREMENT VALUE
COLINC EQU $02F9 ;COL INCREMENT VALUE
CHAR EQU $02FA ;INTERNAL CHAR CODE
ATACHR EQU $02FB ;ATASCII CHARACTER
CHKEY EQU $02FC ;KB CHAR CODE (FIFO)
FILDAT EQU $02FD ;RIGHT FILL DATA
DSPFLG EQU $02FE ;DISPLAY FLAG
SSFLAG EQU $02FF ;START/STOP FLAG
;
; PAGE THREE RAM ASSIGNMENTS
;
DDEVIC EQU $0300 ;BUS I.D. NUMBER
DUNIT EQU $0301 ;UNIT NUMBER
DCOMND EQU $0302 ;BUS COMMAND
DSTATS EQU $0303 ;COMMAND TYPE/STATUS
DBUFLO EQU $0304 ;DATA BUFFER LO BYTE
DBUFHI EQU $0305 ;DATA BUFFER HI BYTE
DTIMLO EQU $0306 ;DEVICE TIMEOUT SECS
DUNUSE EQU $0307 ;UNUSED BYTE
DBYTLO EQU $0308 ;# OF BYTES XFERRED
DBYTHI EQU $0309
DAUX1 EQU $030A ;COMMAND AUX BYTE 1
DAUX2 EQU $030B ;COMMAND AUX BYTE 2
TIMER1 EQU $030C ;INITIAL TIMER VALUE
JMPERS EQU $030E ;OPTIONS (1200)
CASFLG EQU $030F ;CASSETE MODE IF SET
TIMER2 EQU $0310 ;FINAL TIMER VALUE
;TEMP1 EQU $0312 ;TEMP STORAGE
;TEMP2 EQU $0313 ;TEMP STORAGE
PTIMOT EQU $0314 ;PRINTER TIMEOUT REG
;TEMP3 EQU $0315 ;TEMP STORAGE
SAVIO EQU $0316 ;SAVE SERIAL IN DATA
TIMFLG EQU $0317 ;TIMEOUT FLAG C BAUD
STACKP EQU $0318 ;SIO STACK PTR SAVE
TSTAT EQU $0319 ;TEMP STATUS HOLDER
HATABS EQU $031A ;HANDLER ADDR TABLE
PUPBT1 EQU $033D ;POWER/UP RESET
PUPBT2 EQU $033E
PUPBT3 EQU $033F
ICHID EQU $0340 ;HANDLER INDEX #
ICDNO EQU $0341 ;DEVICE NUMBER
ICCOM EQU $0342 ;COMMAND CODE
ICSTA EQU $0343 ;STATUS
ICBAL EQU $0344 ;BUFFER ADDR LO BYTE
ICBAH EQU $0345 ;BUFFER ADDR HI BYTE
ICPTL EQU $0346 ;PUT ROUTINE ADDR-1
ICPTH EQU $0347
ICBLL EQU $0348 ;BUFFER LENGTH LO
ICBLH EQU $0349 ;BUFFER LENGTH HI
ICAX1 EQU $034A ;AUX BYTE 1
ICAX2 EQU $034B ;AUX BYTE 2
ICSPR EQU $034C ;SPARE BYTES
PRNBUF EQU $03C0 ;PRINTER BUFFER (40 BYTES)
SUPERF EQU $03E8 ;SCREEN EDITOR
CKEY EQU $03E9 ;START KEY FLAG
CASSBT EQU $03EA ;CASSETTE BOOT FLAG
CARTCK EQU $03EB ;CARTRIDGE CHECKSUM
ACMVAR EQU $03ED ;RESERVED
MINTLK EQU $03F9 ;RESERVED
GINTLK EQU $03FA ;CART INTERLOCK
CHLINK EQU $03FB ;HANDLER CHAIN
;
; PAGE FOUR RAM ASSIGNMENTS
;
CASBUF EQU $03FD ;CASSETTE BUFFER (131 BYTES)
USAREA EQU $0480 ;USER AREA
;
; PAGE FIVE AND SIX ARE RESERVED
; FOR USER WORK SPACE
;
; COLLEEN MNEMONICS
;
; ---------------------------------------------------------------------------
POKEY EQU $D200
; ---------------------------------------------------------------------------
;
; READ
;
POT0 EQU POKEY+$00
POT1 EQU POKEY+$01
POT2 EQU POKEY+$02
POT3 EQU POKEY+$03
POT4 EQU POKEY+$04
POT5 EQU POKEY+$05
POT6 EQU POKEY+$06
POT7 EQU POKEY+$07
ALLPOT EQU POKEY+$08
KBCODE EQU POKEY+$09
RANDOM EQU POKEY+$0a
POTGO EQU POKEY+$0b
SERIN EQU POKEY+$0d
IRQST EQU POKEY+$0e
SKSTAT EQU POKEY+$0f
;
; WRITE
;
AUDF1 EQU POKEY+$00
AUDC1 EQU POKEY+$01
AUDF2 EQU POKEY+$02
AUDC2 EQU POKEY+$03
AUDF3 EQU POKEY+$04
AUDC3 EQU POKEY+$05
AUDF4 EQU POKEY+$06
AUDC4 EQU POKEY+$07
AUDCTL EQU POKEY+$08
STIMER EQU POKEY+$09
SKRES EQU POKEY+$0a
SEROUT EQU POKEY+$0d
IRQEN EQU POKEY+$0e
SKCTL EQU POKEY+$0f
;
;
;
; ---------------------------------------------------------------------------
GTIA EQU $D000
; ---------------------------------------------------------------------------
;
; WRITE
;
HPOSP0 EQU GTIA+$00
HPOSP1 EQU GTIA+$01
HPOSP2 EQU GTIA+$02
HPOSP3 EQU GTIA+$03
HPOSM0 EQU GTIA+$04
HPOSM1 EQU GTIA+$05
HPOSM2 EQU GTIA+$06
HPOSM3 EQU GTIA+$07
SIZEP0 EQU GTIA+$08
SIZEP1 EQU GTIA+$09
SIZEP2 EQU GTIA+$0a
SIZEP3 EQU GTIA+$0b
SIZEM EQU GTIA+$0c
GRAFP0 EQU GTIA+$0d
GRAFP1 EQU GTIA+$0e
GRAFP2 EQU GTIA+$0f
GRAFP3 EQU GTIA+$10
GRAFM EQU GTIA+$11
COLPM0 EQU GTIA+$12
COLPM1 EQU GTIA+$13
COLPM2 EQU GTIA+$14
COLPM3 EQU GTIA+$15
COLPF0 EQU GTIA+$16
COLPF1 EQU GTIA+$17
COLPF2 EQU GTIA+$18
COLPF3 EQU GTIA+$19
COLBAK EQU GTIA+$1a
PRIOR EQU GTIA+$1b
VDELAY EQU GTIA+$1c
GRACTL EQU GTIA+$1d
HITCLR EQU GTIA+$1e
CONSOL EQU GTIA+$1f
;
; READ
;
M0PF EQU GTIA+$00
M1PF EQU GTIA+$01
M2PF EQU GTIA+$02
M3PF EQU GTIA+$03
P0PF EQU GTIA+$04
P1PF EQU GTIA+$05
P2PF EQU GTIA+$06
P3PF EQU GTIA+$07
M0PL EQU GTIA+$08
M1PL EQU GTIA+$09
M2PL EQU GTIA+$0a
M3PL EQU GTIA+$0b
P0PL EQU GTIA+$0c
P1PL EQU GTIA+$0d
P2PL EQU GTIA+$0e
P3PL EQU GTIA+$0f
TRIG0 EQU GTIA+$10
TRIG1 EQU GTIA+$11
TRIG2 EQU GTIA+$12
TRIG3 EQU GTIA+$13
PAL EQU GTIA+$14
;
;
; ---------------------------------------------------------------------------
ANTIC EQU $D400
; ---------------------------------------------------------------------------
;
DMACTL EQU ANTIC+$00
CHACTL EQU ANTIC+$01
DLPTR EQU ANTIC+$02
;DLISTH EQU ANTIC+$03
HSCROL EQU ANTIC+$04
VSCROL EQU ANTIC+$05
PMBASE EQU ANTIC+$07
CHBASE EQU ANTIC+$09
WSYNC EQU ANTIC+$0a
VCOUNT EQU ANTIC+$0b
PENH EQU ANTIC+$0c
PENV EQU ANTIC+$0d
NMIEN EQU ANTIC+$0e
NMIRES EQU ANTIC+$0f
NMIST EQU ANTIC+$0f
;
;
; ---------------------------------------------------------------------------
PIA EQU $D300
; ---------------------------------------------------------------------------
;
PORTA EQU PIA+0
PORTB EQU PIA+1
PACTL EQU PIA+2
PBCTL EQU PIA+3
;
; ---------------------------------------------------------------------------
; Atari ANTIC chip display list equates
; ---------------------------------------------------------------------------
;
JUMP EQU $01 ; display list jump instruction (3 byte)
JVB EQU $41 ; display list jump and wait for vblank instruction (3)
;
SCH EQU $10 ; display list horizontal scrolling
SCV EQU $20 ; display list vertical scrolling
LMS EQU $40 ; display list load memory scan instruction (3 byte)
DLII EQU $80 ; display list interrupt instruction
;
SKIP1 EQU $00 ; display list skip 1 scan line instruction
SKIP2 EQU $10 ; display list skip 2 scan lines instruction
SKIP3 EQU $20 ; display list skip 3 scan lines instruction
SKIP4 EQU $30 ; display list skip 4 scan lines instruction
SKIP5 EQU $40 ; display list skip 5 scan lines instruction
SKIP6 EQU $50 ; display list skip 6 scan lines instruction
SKIP7 EQU $60 ; display list skip 7 scan lines instruction
SKIP8 EQU $70 ; display list skip 8 scan lines instruction
;
MODE2 EQU $02 ; display list mode 2
MODE4 EQU $04 ; display list mode 4
MODE8 EQU $08 ; display list mode 8
MODEE EQU $0E ; display list mode E
MODEF EQU $0F ; display list mode F
; ---------------------------------------------------------------------------
; ENUMS
; ---------------------------------------------------------------------------
.enum @dmactl
blank = %00
narrow = %01
standard= %10
wide = %11
missiles= %100
players = %1000
lineX1 = %10000
lineX2 = %00000
dma = %100000
.ende
scr48 = @dmactl(wide|dma|players|missiles|lineX1)
scr40 = @dmactl(standard|dma|players|missiles|lineX1)
scr32 = @dmactl(narrow|dma|players|missiles|lineX1)
.enum @pmcntl
missiles= %1
players = %10
trigs = %100
.ende
.enum @gtictl
prior0 = %0
prior1 = %1
prior2 = %10
prior4 = %100
prior8 = %1000
ply5 = %10000 ; Fifth Player Enable
mlc = %100000 ; Multiple Color Player Enable
mode9 = %01000000
mode10 = %10000000
mode11 = %11000000
.ende
.enum @consol
start = %001
select = %010
option = %100
.ende
; ---------------------------------------------------------------------------
; KBCODEs
; ---------------------------------------------------------------------------
.enum @kbcode
_none = 255
_esc = 28
_1 = 31
_2 = 30
_3 = 26
_4 = 24
_5 = 29
_6 = 27
_7 = 51
_8 = 53
_9 = 48
_0 = 50
_lt = 54
_gt = 55
_del = 52
_tab = 44
_Q = 47
_W = 46
_E = 42
_R = 40
_T = 45
_Y = 43
_U = 11
_I = 13
_O = 8
_P = 10
_min = 14
_up = 14 ; cursor function
_eq = 15
_down = 15 ; cursor function
_ret = 12
_A = 63
_S = 62
_D = 58
_F = 56
_G = 61
_H = 57
_J = 1
_K = 5
_L = 0
_semicolon = 2
_plus = 6
_left = 6 ; cursor function
_asterisk = 7
_right = 7 ; cursor function
_caps = 60
_Z = 23
_X = 22
_C = 18
_V = 16
_B = 21
_N = 36
_M = 37
_comma = 32
_dot = 34
_slash = 38
_atari = 39
_help = 17
_F1 = 3
_F2 = 4
_F3 = 19
_F4 = 20
_space = 33
.ende
; ---------------------------------------------------------------------------
; MISCELLANEOUS
; ---------------------------------------------------------------------------
EOL = $9b
CR_PC = 13 ; PC CR code
LF_PC = 10 ; PC LF code
+182
View File
@@ -0,0 +1,182 @@
;-------------------------------------
.MACRO ROLW
ROL :1
ROL :1+1
.ENDM
;-------------------------------------
.MACRO ASLW
ASL :1
ROL :1+1
.ENDM
;-------------------------------------
.MACRO RORW
ROR :1+1
ROR :1
.ENDM
;-------------------------------------
.MACRO LSRW
LSR :1+1
ROR :1
.ENDM
;-------------------------------------
.MACRO VMAIN
; VMAIN #WORD,interrupt.vector
; interrupt.vector:
; 0 - VIMIRQ
; 1 - TIMCNT1
; 2 - TIMCNT2
; 3 - TIMCNT3
; 4 - TIMCNT4
; 5 - TIMCNT5
; 6 - VVBLKI
; 7 - VVBLKD
; 8 - TIMVEC1
; 9 - TIMVEC2
; Initialises Vertical Blank Interrupts
; (works only with system interrupts ON)
LDY # <:1
LDX # >:1
LDA #:2
JSR SETVBV
.ENDM
;-------------------------------------
.MACRO VDLI
; VDLI #WORD
; Initialises Display List Interrupts
LDY # <:1
LDX # >:1
LDA #$C0
STY $0200
STX $0201
STA NMIEN
.ENDM
;-------------------------------------
.MACRO VDL
; VDL #WORD
; Changes Display List addres
; and sets width of the screen
; vdl dl,$01 - narrow screen (32 bytes)
; vdl dl,$02 - normal screen (40 bytes)
; vdl dl,$03 - wide screen (48 bytes)
; (works only with system interrupts ON)
.if %0=2
lda dmactls
and #$fc
ora #%2
sta dmactls
.endif
LDA # <%1
STA DLPTRS
LDA # >%1
STA DLPTRS+1
.ENDM
;-------------------------------------
.MACRO halt
?stop
lda RANDOM
and #$05
sta COLBAK
jmp ?stop
.ENDM
;-------------------------------------
.MACRO KEY
; KEY
; waits for releasing and pressing "any key"
PHA
?CK1 LDA SKSTAT
AND #$04
BEQ ?CK1
?CK LDA SKSTAT
AND #$04
BNE ?CK
PLA
.ENDM
;-------------------------------------
.MACRO WAIT
; WAIT
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
?ze LDA VCOUNT
cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
bcc ?ze
sbc #10 ; last lines correction
?wa cmp VCOUNT
bcc ?wa
?wf cmp VCOUNT
bcs ?wf
.ENDM
;-------------------------------------
.macro waitRTC
lda RTCLOK+2
?wa cmp RTCLOK+2
beq ?wa
.endm
;-------------------------------------
.macro negw
; negate the given word (0-a)
;-------------------------------------
sec
lda #$00
sbc :1
sta :1
lda #$00
sbc :1+1
sta :1+1
.endm
;-------------------------------------
.macro randomize
;usage: randomize floor ceiling
;returns (in A) a random .byte between "floor" and "ceiling"
.if :2 < :1
.error "floor higher than ceiling"
.endif
?rand
lda random
cmp #:2+1-:1 ;ceiling
bcs ?rand
.if %1>0 ; if floor = 0 - no add offset
adc #:1
.endif
.endm
;-------------------------------------
.macro phx
txa
pha
.endm
;-------------------------------------
.macro phy
tya
pha
.endm
;-------------------------------------
.macro plx
pla
tax
.endm
;-------------------------------------
.macro ply
pla
tay
.endm
;-------------------------------------
.macro txy
txa
tay
.endm
;-------------------------------------
.macro tyx
tya
tax
.endm
;-------------------------------------
.macro pause
;waits :1 number (byte) of frames
ldx #:1
?PAUSELOOP
wait
dex
bne ?PAUSELOOP
.ENDM
+50
View File
@@ -0,0 +1,50 @@
.IF *>0 ;this is a trick that prevents compiling this file alone
;--------------------------------------------------
.proc open
;--------------------------------------------------
; OPEN #1,4,0,"D:LEVEL000.DAT"
ldx #$10 ;IOCB #1
lda #$03 ;komenda: OPEN
sta ICCOM,x
lda #<fname ;adres nazwy pliku
sta ICBAL,x
lda #>fname
sta ICBAH,x
lda #04 ;kod dostępu: $04 odczyt, $08 zapis, $09 dopisywanie, $0c odczyt/zapis
sta ICAX1,x
lda #$00 ;dodatkowy parametr, $00 jest zawsze dobre
sta ICAX2,x
jmp ciov
.endp
;--------------------------------------------------
.proc bget
;--------------------------------------------------
; BGET #1,LevelFileBuff,LevelFileBuffLen-2
ldx #$10 ;IOCB #1
lda #$07 ;komenda: GET BYTES / BINARY READ
sta ICCOM,x
lda #<LevelFileBuff ;adres w pamieci, gdzie maja trafic dane
sta ICBAL,x
lda #>LevelFileBuff
sta ICBAH,x
lda #<(LevelFileBuffLen-2) ;wielkosc bloku danych w bajtach
sta ICBLL,x
lda #>(LevelFileBuffLen-2)
sta ICBLH,x
jmp ciov
.endp
;--------------------------------------------------
.proc close
;--------------------------------------------------
; CLOSE #1
ldx #$10 ;IOCB #1
lda #$0c ;komenda: CLOSE
sta ICCOM,x
jmp ciov
.endp
.ENDIF
+4189
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
[ViewState]
Mode=
Vid=
FolderType=Generic
+43
View File
@@ -0,0 +1,43 @@
SFX_PRIOR equ 0
STEREOMODE equ 0
PSEUDOSTEREO equ 1
;* --------BEGIN--------
;* Z:\GitHub\Young-lumberjack\msx\tbm5_str.rmt
FEAT_SFX equ 1
FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable
FEAT_NOSTARTINGSONGLINE equ 0
FEAT_INSTRSPEED equ 1
FEAT_CONSTANTSPEED equ 0 ;(10 times)
FEAT_COMMAND1 equ 0 ;(0 times)
FEAT_COMMAND2 equ 0 ;(0 times)
FEAT_COMMAND3 equ 0 ;(0 times)
FEAT_COMMAND4 equ 0 ;(0 times)
FEAT_COMMAND5 equ 0 ;(0 times)
FEAT_COMMAND6 equ 0 ;(0 times)
FEAT_COMMAND7SETNOTE equ 0 ;(0 times)
FEAT_COMMAND7VOLUMEONLY equ 0 ;(0 times)
FEAT_PORTAMENTO equ 0 ;(0 times)
FEAT_FILTER equ 1 ;(12 times)
FEAT_FILTERG0L equ 1 ;(12 times)
FEAT_FILTERG1L equ 0 ;(0 times)
FEAT_FILTERG0R equ 0 ;(0 times)
FEAT_FILTERG1R equ 0 ;(0 times)
FEAT_BASS16 equ 1 ;(11 times)
FEAT_BASS16G1L equ 1 ;(10 times)
FEAT_BASS16G3L equ 0 ;(0 times)
FEAT_BASS16G1R equ 0 ;(0 times)
FEAT_BASS16G3R equ 0 ;(0 times)
FEAT_VOLUMEONLYG0L equ 0 ;(0 times)
FEAT_VOLUMEONLYG2L equ 0 ;(0 times)
FEAT_VOLUMEONLYG3L equ 0 ;(0 times)
FEAT_VOLUMEONLYG0R equ 0 ;(0 times)
FEAT_VOLUMEONLYG2R equ 0 ;(0 times)
FEAT_VOLUMEONLYG3R equ 0 ;(0 times)
FEAT_TABLETYPE equ 0 ;(0 times)
FEAT_TABLEMODE equ 0 ;(0 times)
FEAT_TABLEGO equ 0 ;(0 times)
FEAT_AUDCTLMANUALSET equ 1 ;(2 times)
FEAT_VOLUMEMIN equ 0 ;(0 times)
FEAT_EFFECTVIBRATO equ 0 ;(0 times)
FEAT_EFFECTFSHIFT equ 1 ;(1 times)
;* --------END--------
+1431
View File
File diff suppressed because it is too large Load Diff
+642
View File
@@ -0,0 +1,642 @@
;
; Raster Music Tracker, RMT Atari routine version 1.20090108
; (c) Radek Sterba, Raster/C.P.U., 2002 - 2009
; http://raster.atari.org
;
; Warnings:
;
; 1. RMT player routine needs 19 itself reserved bytes in zero page (no accessed
; from any other routines) as well as cca 1KB of memory before the "PLAYER"
; address for frequency tables and functionary variables. It's:
; a) from PLAYER-$03c0 to PLAYER for stereo RMTplayer
; b) from PLAYER-$0320 to PLAYER for mono RMTplayer
;
; 2. RMT player routine MUST (!!!) be compiled from the begin of the memory page.
; i.e. "PLAYER" address can be $..00 only!
;
; 3. Because of RMTplayer provides a lot of effects, it spent a lot of CPU time.
;
; STEREOMODE equ 0..3 ;0 => compile RMTplayer for 4 tracks mono
; ;1 => compile RMTplayer for 8 tracks stereo
; ;2 => compile RMTplayer for 4 tracks stereo L1 R2 R3 L4
; ;3 => compile RMTplayer for 4 tracks stereo L1 L2 R3 R4
TRACKS equ 4
; RMT FEATures definitions file
; For optimizations of RMT player routine to concrete RMT modul only!
icl "feat.txt"
;FEAT_EFFECTS equ FEAT_EFFECTVIBRATO||FEAT_EFFECTFSHIFT
;
; RMT ZeroPage addresses
.zpvar p_tis .word
p_instrstable = p_tis
.zpvar p_trackslbstable .word
.zpvar p_trackshbstable .word
.zpvar p_song .word
.zpvar ns .word
.zpvar nr .word
.zpvar nt .byte
.zpvar reg1 .byte
.zpvar reg2 .byte
.zpvar reg3 .byte
.zpvar tmp .byte
.zpvar v_audctl .byte ; de-self-modification vars
.zpvar v_ainstrspeed .byte
.zpvar v_maxtracklen .byte
.zpvar v_abeat .byte
.zpvar v_bspeed .byte
.zpvar v_speed .byte
.zpvar RMTSFXVOLUME .byte
; MOVED TO lumber.asm
; org PLAYER-$400+$e0
;track_variables
;trackn_db .ds TRACKS
;trackn_hb .ds TRACKS
;trackn_idx .ds TRACKS
;trackn_pause .ds TRACKS
;trackn_note .ds TRACKS
;trackn_volume .ds TRACKS
;trackn_distor .ds TRACKS
;trackn_shiftfrq .ds TRACKS
;trackn_instrx2 .ds TRACKS
;trackn_instrdb .ds TRACKS
;trackn_instrhb .ds TRACKS
;trackn_instridx .ds TRACKS
;trackn_instrlen .ds TRACKS
;trackn_instrlop .ds TRACKS
;trackn_instrreachend .ds TRACKS
;trackn_volumeslidedepth .ds TRACKS
;trackn_volumeslidevalue .ds TRACKS
;trackn_effdelay .ds TRACKS
;trackn_effvibratoa .ds TRACKS
;trackn_effshift .ds TRACKS
;trackn_tabletypespeed .ds TRACKS
;trackn_tablenote .ds TRACKS
;trackn_tablea .ds TRACKS
;trackn_tableend .ds TRACKS
;trackn_tablelop .ds TRACKS
;trackn_tablespeeda .ds TRACKS
;trackn_command .ds TRACKS
;trackn_filter .ds TRACKS
;trackn_audf .ds TRACKS
;trackn_audc .ds TRACKS
;trackn_audctl .ds TRACKS
;v_aspeed .ds 1
;track_endvariables
INSTRPAR equ 12
tabbeganddistor
dta frqtabpure-frqtab,$00
dta frqtabpure-frqtab,$20
dta frqtabpure-frqtab,$40
dta frqtabbass1-frqtab,$c0
dta frqtabpure-frqtab,$80
dta frqtabpure-frqtab,$a0
dta frqtabbass1-frqtab,$c0
dta frqtabbass2-frqtab,$c0
vibtabbeg dta 0,vib1-vib0,vib2-vib0,vib3-vib0
vib0 dta 0
vib1 dta 1,-1,-1,1
vib2 dta 1,0,-1,-1,0,1
vib3 dta 1,1,0,-1,-1,-1,-1,0,1,1
vibtabnext
dta vib0-vib0+0
dta vib1-vib0+1,vib1-vib0+2,vib1-vib0+3,vib1-vib0+0
dta vib2-vib0+1,vib2-vib0+2,vib2-vib0+3,vib2-vib0+4,vib2-vib0+5,vib2-vib0+0
dta vib3-vib0+1,vib3-vib0+2,vib3-vib0+3,vib3-vib0+4,vib3-vib0+5,vib3-vib0+6,vib3-vib0+7,vib3-vib0+8,vib3-vib0+9,vib3-vib0+0
.align $100
frqtab
ERT [<frqtab]!=0 ;* frqtab must begin at the memory page bound! (i.e. $..00 address)
frqtabbass1
dta $BF,$B6,$AA,$A1,$98,$8F,$89,$80,$F2,$E6,$DA,$CE,$BF,$B6,$AA,$A1
dta $98,$8F,$89,$80,$7A,$71,$6B,$65,$5F,$5C,$56,$50,$4D,$47,$44,$3E
dta $3C,$38,$35,$32,$2F,$2D,$2A,$28,$25,$23,$21,$1F,$1D,$1C,$1A,$18
dta $17,$16,$14,$13,$12,$11,$10,$0F,$0E,$0D,$0C,$0B,$0A,$09,$08,$07
frqtabbass2
dta $FF,$F1,$E4,$D8,$CA,$C0,$B5,$AB,$A2,$99,$8E,$87,$7F,$79,$73,$70
dta $66,$61,$5A,$55,$52,$4B,$48,$43,$3F,$3C,$39,$37,$33,$30,$2D,$2A
dta $28,$25,$24,$21,$1F,$1E,$1C,$1B,$19,$17,$16,$15,$13,$12,$11,$10
dta $0F,$0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03,$02,$01,$00
frqtabpure
dta $F3,$E6,$D9,$CC,$C1,$B5,$AD,$A2,$99,$90,$88,$80,$79,$72,$6C,$66
dta $60,$5B,$55,$51,$4C,$48,$44,$40,$3C,$39,$35,$32,$2F,$2D,$2A,$28
dta $25,$23,$21,$1F,$1D,$1C,$1A,$18,$17,$16,$14,$13,$12,$11,$10,$0F
dta $0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03,$02,$01,$00,$00
.align $100
volumetab
dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
dta $00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01
dta $00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01,$02,$02,$02,$02
dta $00,$00,$00,$01,$01,$01,$01,$01,$02,$02,$02,$02,$02,$03,$03,$03
dta $00,$00,$01,$01,$01,$01,$02,$02,$02,$02,$03,$03,$03,$03,$04,$04
dta $00,$00,$01,$01,$01,$02,$02,$02,$03,$03,$03,$04,$04,$04,$05,$05
dta $00,$00,$01,$01,$02,$02,$02,$03,$03,$04,$04,$04,$05,$05,$06,$06
dta $00,$00,$01,$01,$02,$02,$03,$03,$04,$04,$05,$05,$06,$06,$07,$07
dta $00,$01,$01,$02,$02,$03,$03,$04,$04,$05,$05,$06,$06,$07,$07,$08
dta $00,$01,$01,$02,$02,$03,$04,$04,$05,$05,$06,$07,$07,$08,$08,$09
dta $00,$01,$01,$02,$03,$03,$04,$05,$05,$06,$07,$07,$08,$09,$09,$0A
dta $00,$01,$01,$02,$03,$04,$04,$05,$06,$07,$07,$08,$09,$0A,$0A,$0B
dta $00,$01,$02,$02,$03,$04,$05,$06,$06,$07,$08,$09,$0A,$0A,$0B,$0C
dta $00,$01,$02,$03,$03,$04,$05,$06,$07,$08,$09,$0A,$0A,$0B,$0C,$0D
dta $00,$01,$02,$03,$04,$05,$06,$07,$07,$08,$09,$0A,$0B,$0C,$0D,$0E
dta $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F
;*
;* Set of RMT main vectors:
;*
RASTERMUSICTRACKER
jmp rmt_init
jmp rmt_play
jmp rmt_p3
jmp rmt_silence
jmp SetPokey
jmp rmt_sfx ;* A=note(0,..,60),X=channel(0,..,3 or 0,..,7),Y=instrument*2(0,2,4,..,126)
rmt_init
stx ns
sty ns+1
pha
ldy #track_endvariables-track_variables
lda #0
ri0 sta track_variables-1,y
dey
bne ri0
ldy #4
lda (ns),y
sta v_maxtracklen
iny
lda (ns),y
sta v_speed
ldy #8
ri1 lda (ns),y
sta p_tis-8,y
iny
cpy #8+8
bne ri1
pla
pha
asl @
asl @
clc
adc p_song
sta p_song
pla
php
and #$c0
asl @
rol @
rol @
plp
adc p_song+1
sta p_song+1
jsr GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3
rmt_silence
lda #0
sta $d208
sta $d208+$10
ldy #3
sty $d20f
sty $d20f+$10
ldy #8
si1 sta $d200,y
sta $d200+$10,y
dey
bpl si1
lda #FEAT_INSTRSPEED
rts
GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3
GetSongLine
ldx #0
stx v_abeat
nn0
nn1 txa
tay
lda (p_song),y
cmp #$fe
bcs nn2
tay
lda (p_trackslbstable),y
sta trackn_db,x
lda (p_trackshbstable),y
nn1a sta trackn_hb,x
lda #0
sta trackn_idx,x
lda #1
nn1a2 sta trackn_pause,x
lda #$80
sta trackn_instrx2,x
inx
xtracks01 cpx #TRACKS
bne nn1
lda p_song
clc
xtracks02 adc #TRACKS
sta p_song
bcc GetTrackLine
inc p_song+1
nn1b
jmp GetTrackLine
nn2
beq nn3
nn2a
lda #0
beq nn1a2
nn3
ldy #2
lda (p_song),y
tax
iny
lda (p_song),y
sta p_song+1
stx p_song
ldx #0
beq nn0
GetTrackLine
oo0
oo0a
lda v_speed
sta v_bspeed
ldx #-1
oo1
inx
dec trackn_pause,x
bne oo1x
oo1b
lda trackn_db,x
sta ns
lda trackn_hb,x
sta ns+1
oo1i
ldy trackn_idx,x
inc trackn_idx,x
lda (ns),y
sta reg1
and #$3f
cmp #61
beq oo1a
bcs oo2
sta trackn_note,x
iny
lda (ns),y
lsr @
and #$3f*2
sta trackn_instrx2,x
oo1a
lda #1
sta trackn_pause,x
ldy trackn_idx,x
inc trackn_idx,x
lda (ns),y
lsr @
ror reg1
lsr @
ror reg1
lda reg1
and #$f0
sta trackn_volume,x
oo1x
xtracks03sub1 cpx #TRACKS-1
bne oo1
lda v_bspeed
sta v_speed
sta v_aspeed
jmp InitOfNewSetInstrumentsOnly
oo2
cmp #63
beq oo63
lda reg1
and #$c0
beq oo62_b
asl @
rol @
rol @
sta trackn_pause,x
jmp oo1x
oo62_b
iny
lda (ns),y
sta trackn_pause,x
inc trackn_idx,x
jmp oo1x
oo63
lda reg1
bmi oo63_1X
iny
lda (ns),y
sta v_bspeed
inc trackn_idx,x
jmp oo1i
oo63_1X
cmp #255
beq oo63_11
iny
lda (ns),y
sta trackn_idx,x
jmp oo1i
oo63_11
jmp GetSongLine
p2xrmtp3 jmp rmt_p3
p2x0 dex
bmi p2xrmtp3
InitOfNewSetInstrumentsOnly
p2x1 ldy trackn_instrx2,x
bmi p2x0
jsr SetUpInstrumentY2
jmp p2x0
rmt_sfx
sta trackn_note,x
lda RMTSFXVOLUME ;* sfx note volume*16
;* label for sfx note volume parameter overwriting
sta trackn_volume,x
SetUpInstrumentY2
lda (p_instrstable),y
sta trackn_instrdb,x
sta nt
iny
lda (p_instrstable),y
sta trackn_instrhb,x
sta nt+1
lda #1
sta trackn_filter,x
tay
lda (nt),y
sta trackn_tablelop,x
iny
lda (nt),y
sta trackn_instrlen,x
iny
lda (nt),y
sta trackn_instrlop,x
iny
lda (nt),y
sta trackn_tabletypespeed,x
sta trackn_tablespeeda,x
iny
lda (nt),y
sta trackn_audctl,x
iny
lda (nt),y
sta trackn_volumeslidedepth,x
ldy #8
lda (nt),y
sta trackn_effdelay,x
iny
lda (nt),y
tay
lda vibtabbeg,y
sta trackn_effvibratoa,x
ldy #10
lda (nt),y
sta trackn_effshift,x
lda #128
sta trackn_volumeslidevalue,x
sta trackn_instrx2,x
asl @
sta trackn_instrreachend,x
sta trackn_shiftfrq,x
tay
lda (nt),y
sta trackn_tableend,x
adc #0
sta trackn_instridx,x
lda #INSTRPAR
sta trackn_tablea,x
tay
lda (nt),y
sta trackn_tablenote,x
xata_rtshere
rts
rmt_play
rmt_p0
jsr SetPokey
rmt_p1
rmt_p2
dec v_aspeed
bne rmt_p3
inc v_abeat
lda v_abeat
cmp v_maxtracklen
beq p2o3
jmp GetTrackLine
p2o3
jmp GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3
go_ppnext jmp ppnext
rmt_p3
lda #>frqtab
sta nr+1
xtracks05sub1 ldx #TRACKS-1
pp1
lda trackn_instrhb,x
beq go_ppnext
sta ns+1
lda trackn_instrdb,x
sta ns
ldy trackn_instridx,x
lda (ns),y
sta reg1
iny
lda (ns),y
sta reg2
iny
lda (ns),y
sta reg3
iny
tya
cmp trackn_instrlen,x
bcc pp2
beq pp2
lda #$80
sta trackn_instrreachend,x
pp1b
lda trackn_instrlop,x
pp2 sta trackn_instridx,x
lda reg1
and #$0f
ora trackn_volume,x
tay
lda volumetab,y
sta tmp
lda reg2
and #$0e
tay
lda tabbeganddistor,y
sta nr
lda tmp
ora tabbeganddistor+1,y
sta trackn_audc,x
InstrumentsEffects
lda trackn_effdelay,x
beq ei2
cmp #1
bne ei1
lda trackn_shiftfrq,x
clc
adc trackn_effshift,x
clc
ldy trackn_effvibratoa,x
adc vib0,y
sta trackn_shiftfrq,x
lda vibtabnext,y
sta trackn_effvibratoa,x
jmp ei2
ei1
dec trackn_effdelay,x
ei2
ldy trackn_tableend,x
cpy #INSTRPAR+1
bcc ei3
lda trackn_tablespeeda,x
bpl ei2f
ei2c
tya
cmp trackn_tablea,x
bne ei2c2
lda trackn_tablelop,x
sta trackn_tablea,x
bne ei2a
ei2c2
inc trackn_tablea,x
ei2a
lda trackn_instrdb,x
sta nt
lda trackn_instrhb,x
sta nt+1
ldy trackn_tablea,x
lda (nt),y
sta trackn_tablenote,x
lda trackn_tabletypespeed,x
ei2f
sec
sbc #1
sta trackn_tablespeeda,x
ei3
lda trackn_instrreachend,x
bpl ei4
lda trackn_volume,x
beq ei4
tay
lda trackn_volumeslidevalue,x
clc
adc trackn_volumeslidedepth,x
sta trackn_volumeslidevalue,x
bcc ei4
tya
sbc #16
sta trackn_volume,x
ei4
lda reg2
sta trackn_command,x
and #$70
beq cmd0
cmd1
lda reg3
jmp cmd0c
cmd2
cmd3
cmd4
cmd5
cmd6
cmd7
cmd0
lda trackn_note,x
clc
adc reg3
cmd0a
clc
adc trackn_tablenote,x
cmp #61
bcc cmd0a1
lda #0
sta trackn_audc,x
lda #63
cmd0a1
tay
lda (nr),y
clc
adc trackn_shiftfrq,x
cmd0c
sta trackn_audf,x
pp9
ppnext
dex
bmi rmt_p4
jmp pp1
rmt_p4
lda trackn_audctl+0
ora trackn_audctl+1
ora trackn_audctl+2
ora trackn_audctl+3
tax
qq1
stx v_audctl
lda trackn_command+0
bpl qq2
lda trackn_audc+0
and #$0f
beq qq2
lda trackn_audf+0
clc
adc trackn_filter+0
sta trackn_audf+2
lda #0
sta trackn_audc+2
qq1a
txa
ora #4
tax
qq2
lda trackn_command+1
bpl qq3
lda trackn_audc+1
and #$0f
beq qq3
lda trackn_audf+1
clc
adc trackn_filter+1
sta trackn_audf+3
lda #0
sta trackn_audc+3
qq2a
txa
ora #2
tax
qq3
; cpx v_audctl
; bne qq5
;qq5
stx v_audctl
rmt_p5
; lda v_ainstrspeed
.IF TARGET = 800
ldx #$10 ; pseudo stereo
bne SetPokey_OffsetX ; pseudo stereo
.ELIF TARGET = 5200
rts
.ENDIF
SetPokey
ldx #0 ; POKEY registers offset (for stereo)
SetPokey_OffsetX
lda trackn_audf+0
sta AUDF1,x
lda trackn_audc+0
sta AUDC1,x
lda trackn_audf+1
sta AUDF2,x
lda trackn_audc+1
sta AUDC2,x
lda trackn_audf+2
sta AUDF3,x
lda trackn_audc+2
sta AUDC3,x
lda trackn_audf+3
sta AUDF4,x
lda trackn_audc+3
sta AUDC4,x
lda v_audctl
sta AUDCTL,x
rts
RMTPLAYEREND
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
00 - title
07 - death
0A - in game (old)
0F - count down
11 - count down (pim 1)
13 - count down (pim 2)
15 - high score
1A - in game (new)
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
00 - title
0D - death
10 - in game (old)
15 - count down
17 - high score
1C - in game (new)
0C - count down 1
0D - count down 2
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+5
View File
@@ -0,0 +1,5 @@
00 - title
0D - death
10 - count down
12 - high score
17 - in game
BIN
View File
Binary file not shown.