mirror of
https://github.com/Pecusx/Young-lumberjack.git
synced 2026-05-21 14:49:43 +02:00
812 lines
26 KiB
NASM
812 lines
26 KiB
NASM
;Young lumberjack closure
|
|
;---------------------------------------------------
|
|
.IFNDEF TARGET
|
|
.def TARGET = 800 ; 5200
|
|
.ENDIF
|
|
;---------------------------------------------------
|
|
|
|
OPT r+ ; saves 10 bytes, and probably works :) https://github.com/tebe6502/Mad-Assembler/issues/10
|
|
|
|
;---------------------------------------------------
|
|
.macro build
|
|
dta d"0.00" ; number of this build (4 bytes)
|
|
.endm
|
|
|
|
.macro RMTSong
|
|
lda #:1
|
|
jsr RMTSongSelect
|
|
.endm
|
|
|
|
;---------------------------------------------------
|
|
icl 'lib/ATARISYS.ASM'
|
|
icl 'lib/MACRO.ASM'
|
|
|
|
display = $a000
|
|
.zpvar temp .word = $80
|
|
.zpvar displayposition .word
|
|
.zpvar DLI_A DLI_X dliCount .byte
|
|
.zpvar RMT_blocked noSfx SFX_EFFECT .byte
|
|
.zpvar AutoPlay .byte ; Auto Play flag ($80 - auto)
|
|
RMT_zpvars = AutoPlay+1 ; POZOR!!! RMT vars go here
|
|
;---------------------------------------------------
|
|
org $2000
|
|
MODUL
|
|
;ins 'art/muzyka_stripped.rmt',+5 ; my RMT 1.28 on WINE is apparently broken. I lost some hair here (5, not 6)
|
|
;.align $100
|
|
;icl 'art/rmtplayr.a65'
|
|
;---------------------------------------------------
|
|
.align $400
|
|
font_game_upper
|
|
ins 'art/tu.fnt' ;
|
|
font_game_lower
|
|
ins 'art/tl.fnt' ;
|
|
dl_level
|
|
.by $10
|
|
.by $44
|
|
.wo gamescreen_upper
|
|
:17 .by $04
|
|
.by $84 ; first DLI
|
|
.by $44
|
|
animation_addr
|
|
.wo gamescreen_lower1r
|
|
:5 .by $04
|
|
.by $84 ; second DLI
|
|
:2 .by $04
|
|
.by $41
|
|
.wo dl_level
|
|
;---------------------------------------------------
|
|
.align $2000
|
|
;---------------------------------------------------
|
|
gamescreen_upper
|
|
l1
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l2
|
|
.by $01, $04, $01, $36, $37, $38, $39, $04, $3B, $3C, $3D, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l3
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $3E, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l4
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $2F, $20, $2C
|
|
.by $22, $34, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l5
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l6
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $3F, $04, $41, $42, $43, $44, $45, $46, $01, $05, $05
|
|
l7
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $2E, $23, $24, $25, $26, $47, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l8
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $10, $10
|
|
.by $10, $10, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l9
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $30
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l10
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $31, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l11
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1A, $1B, $1C
|
|
.by $1B, $1A, $24, $11, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l12
|
|
.by $01, $04, $01, $36, $37, $38, $39, $04, $3B, $3C, $3D, $1D, $1E, $1F, $20, $2D
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l13
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $3E, $1D, $1E, $1F, $20, $21
|
|
.by $33, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l14
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $22, $2D, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l15
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l16
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $3F, $04, $41, $42, $43, $44, $45, $46, $01, $05, $05
|
|
l17
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $1E, $32, $20, $21
|
|
.by $32, $2C, $24, $25, $26, $47, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l18
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $2E, $1F, $20, $21
|
|
.by $22, $23, $32, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l19
|
|
.by $01, $04, $01, $01, $01, $01, $01, $04, $01, $01, $01, $1D, $32, $1F, $20, $21
|
|
.by $22, $23, $24, $25, $26, $01, $04, $01, $01, $01, $01, $01, $01, $01, $05, $05
|
|
l20
|
|
gamescreen_lower1r ; phase 1 page 1
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$07,$88,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$5A,$5B,$09,$8A,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$5E,$5F,$5D,$5C,$64,$01,$01
|
|
dta $01,$01,$01,$01,$03,$01,$01,$01
|
|
dta $82,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$03,$01,$E0
|
|
dta $E1,$62,$63,$E6,$67,$65,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$03
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$ED
|
|
dta $E8,$69,$6A,$EB,$6C,$64,$01,$01
|
|
dta $01,$01,$82,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$ED
|
|
dta $EE,$EF,$70,$71,$72,$65,$01,$01
|
|
dta $03,$01,$01,$01,$01,$03,$01,$01
|
|
dta $02,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower2r ; phase 2 page 1
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$06,$0B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $04,$0C,$0D,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$01,$03,$01,$01,$01
|
|
dta $82,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$03,$01,$8E
|
|
dta $8F,$10,$11,$92,$93,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$03
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$94
|
|
dta $95,$96,$97,$98,$99,$1A,$1B,$01
|
|
dta $01,$01,$82,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$D0
|
|
dta $1C,$2C,$2D,$2E,$AF,$30,$31,$01
|
|
dta $03,$01,$01,$01,$01,$03,$01,$01
|
|
dta $02,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower3r ; phase 2 page 2
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$06,$0B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $04,$0C,$0D,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$01,$03,$01,$01,$01
|
|
dta $82,$1D,$1E,$1F,$20,$21,$21,$23
|
|
dta $24,$25,$26,$01,$01,$03,$01,$8E
|
|
dta $8F,$10,$11,$92,$93,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$03
|
|
dta $01,$1D,$1E,$1F,$20,$21,$21,$23
|
|
dta $24,$25,$26,$01,$01,$01,$01,$94
|
|
dta $95,$96,$97,$98,$99,$1A,$1B,$01
|
|
dta $01,$01,$82,$01,$01,$01,$01,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$21,$23
|
|
dta $24,$25,$26,$02,$01,$01,$01,$D0
|
|
dta $1C,$2C,$2D,$2E,$AF,$30,$31,$01
|
|
dta $03,$01,$01,$01,$01,$03,$01,$01
|
|
dta $02,$1D,$1E,$1F,$20,$21,$21,$23
|
|
dta $24,$25,$26,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$21,$23
|
|
dta $24,$25,$26,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower4r ; phase 2 page 3
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$06,$0B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $04,$0C,$0D,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$01,$03,$01,$01,$1D
|
|
dta $1E,$1F,$20,$21,$21,$23,$24,$25
|
|
dta $26,$01,$01,$01,$01,$03,$01,$8E
|
|
dta $8F,$10,$11,$92,$93,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$1D
|
|
dta $1E,$1F,$20,$21,$21,$23,$24,$25
|
|
dta $26,$01,$01,$01,$01,$01,$01,$94
|
|
dta $95,$96,$97,$98,$99,$1A,$1B,$01
|
|
dta $01,$01,$82,$01,$01,$01,$01,$1D
|
|
dta $1E,$1F,$20,$21,$21,$23,$24,$25
|
|
dta $26,$01,$01,$02,$01,$01,$01,$D0
|
|
dta $1C,$2C,$2D,$2E,$AF,$30,$31,$01
|
|
dta $03,$01,$01,$01,$01,$03,$01,$1D
|
|
dta $1E,$1F,$20,$21,$21,$23,$24,$25
|
|
dta $26,$01,$01,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$1D
|
|
dta $1E,$1F,$20,$21,$21,$23,$24,$25
|
|
dta $26,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower5r ; phase 2 page 4
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$06,$0B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $04,$0C,$0D,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$01,$03,$1D,$1E,$1F
|
|
dta $20,$21,$21,$23,$24,$25,$26,$01
|
|
dta $01,$01,$01,$01,$01,$03,$01,$8E
|
|
dta $8F,$10,$11,$92,$93,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$1D,$1E,$1F
|
|
dta $20,$21,$21,$23,$24,$25,$26,$01
|
|
dta $82,$01,$01,$01,$01,$01,$01,$94
|
|
dta $95,$96,$97,$98,$99,$1A,$1B,$01
|
|
dta $01,$01,$82,$01,$01,$1D,$1E,$1F
|
|
dta $20,$21,$21,$23,$24,$25,$26,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$D0
|
|
dta $1C,$2C,$2D,$2E,$AF,$30,$31,$01
|
|
dta $03,$01,$01,$01,$01,$1D,$1E,$1F
|
|
dta $20,$21,$21,$23,$24,$25,$26,$01
|
|
dta $03,$01,$01,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$01,$01,$01,$01,$1D,$1E,$1F
|
|
dta $20,$21,$21,$23,$24,$25,$26,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower6r ; phase 3 page 1
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$5A,$5B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$5E,$5F,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$22
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$03,$01,$E0
|
|
dta $E1,$62,$63,$E6,$B2,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$22
|
|
dta $22,$23,$24,$25,$26,$03,$01,$01
|
|
dta $82,$01,$01,$33,$34,$36,$37,$B8
|
|
dta $B9,$3A,$3B,$BC,$BD,$01,$01,$01
|
|
dta $01,$01,$82,$1D,$1E,$1F,$20,$22
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$3E,$3F,$41,$42,$C3
|
|
dta $44,$45,$46,$CE,$CF,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$22
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $03,$01,$01,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$22
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower7r ; phase 3 page 2
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$5A,$5B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$5E,$5F,$01,$01,$01,$01,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$22,$23
|
|
dta $24,$25,$26,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$03,$01,$E0
|
|
dta $E1,$62,$63,$E6,$B2,$01,$01,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$22,$23
|
|
dta $24,$25,$26,$01,$01,$03,$01,$01
|
|
dta $01,$01,$01,$33,$34,$36,$37,$B8
|
|
dta $B9,$3A,$3B,$BC,$BD,$01,$01,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$22,$23
|
|
dta $24,$25,$26,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$3E,$3F,$41,$42,$C3
|
|
dta $44,$45,$46,$CE,$CF,$01,$01,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$22,$23
|
|
dta $24,$25,$26,$01,$01,$01,$01,$01
|
|
dta $03,$01,$01,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $01,$1D,$1E,$1F,$20,$21,$22,$23
|
|
dta $24,$25,$26,$82,$01,$01,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower8r ; phase 3 page 3
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$5A,$5B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$5E,$5F,$01,$01,$01,$01,$01
|
|
dta $1E,$1F,$20,$22,$22,$23,$24,$25
|
|
dta $26,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$03,$01,$E0
|
|
dta $E1,$62,$63,$E6,$B2,$01,$01,$01
|
|
dta $1E,$1F,$20,$22,$22,$23,$24,$25
|
|
dta $26,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$36,$37,$B8
|
|
dta $B9,$3A,$3B,$BC,$BD,$01,$01,$01
|
|
dta $1E,$1F,$20,$22,$22,$23,$24,$25
|
|
dta $26,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$3E,$3F,$41,$42,$C3
|
|
dta $44,$45,$46,$CE,$CF,$01,$01,$01
|
|
dta $1E,$1F,$20,$22,$22,$23,$24,$25
|
|
dta $26,$01,$01,$01,$01,$01,$01,$01
|
|
dta $03,$01,$01,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $1E,$1F,$20,$22,$22,$23,$24,$25
|
|
dta $26,$01,$01,$82,$01,$01,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower9r ; phase 3 page 4
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$5A,$5B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$5E,$5F,$01,$01,$01,$01,$01
|
|
dta $22,$22,$20,$24,$25,$26,$01,$01
|
|
dta $82,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$03,$01,$E0
|
|
dta $E1,$62,$63,$E6,$B2,$01,$01,$01
|
|
dta $22,$22,$20,$24,$25,$26,$01,$03
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$36,$37,$B8
|
|
dta $B9,$3A,$3B,$BC,$BD,$01,$01,$01
|
|
dta $22,$22,$20,$24,$25,$26,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$41,$42,$C3
|
|
dta $44,$45,$46,$CE,$CF,$01,$01,$01
|
|
dta $22,$22,$20,$24,$25,$26,$01,$01
|
|
dta $02,$01,$01,$01,$01,$01,$01,$01
|
|
dta $03,$01,$01,$01,$01,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $22,$22,$20,$24,$25,$26,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
gamescreen_lower10r ; phase 3 page 5
|
|
dta $03,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$02,$01,$01,$01,$01
|
|
dta $03,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$02,$01,$01
|
|
dta $01,$5A,$5B,$01,$01,$02,$01,$01
|
|
dta $01,$03,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$01
|
|
dta $01,$5E,$5F,$01,$01,$01,$01,$01
|
|
dta $22,$22,$20,$01,$03,$01,$01,$01
|
|
dta $82,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$03,$01,$E0
|
|
dta $E1,$62,$63,$E6,$B2,$01,$01,$01
|
|
dta $22,$22,$20,$01,$01,$01,$01,$03
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$36,$37,$B8
|
|
dta $B9,$3A,$3B,$BC,$BD,$01,$01,$01
|
|
dta $22,$22,$20,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$41,$42,$C3
|
|
dta $44,$45,$46,$CE,$CF,$01,$01,$01
|
|
dta $22,$22,$20,$01,$01,$03,$01,$01
|
|
dta $02,$01,$01,$1D,$1E,$1F,$20,$21
|
|
dta $22,$23,$24,$25,$26,$01,$01,$F3
|
|
dta $F4,$F4,$F4,$F4,$F5,$01,$82,$01
|
|
dta $22,$22,$20,$01,$01,$01,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$01
|
|
dta $01,$01,$01,$82,$01,$01,$01,$76
|
|
dta $77,$78,$79,$7A,$7B,$01,$01,$01
|
|
dta $01,$01,$01,$01,$01,$01,$01,$01
|
|
dta $01,$01,$27,$28,$28,$28,$28,$28
|
|
dta $28,$28,$28,$28,$28,$29,$01,$7C
|
|
dta $7D,$01,$01,$7E,$7F,$01,$01,$01
|
|
; Animation sequence:
|
|
; - phase 1 page 1 (standard position)
|
|
; - phase 2 page 1
|
|
; - phase 2 page 2
|
|
; - phase 2 page 3
|
|
; - phase 2 page 4
|
|
; - phase 3 page 1
|
|
; - phase 3 page 2
|
|
; - phase 3 page 3
|
|
; - phase 3 page 4
|
|
; - phase 3 page 5
|
|
; - phase 2 page 1
|
|
; - phase 2 page 1
|
|
; - phase 2 page 1
|
|
; - phase 1 page 1 (standard position)
|
|
|
|
;--------------------------------------------------
|
|
;icl 'lib/fileio.asm'
|
|
;--------------------------------------------------
|
|
|
|
;--------------------------------------------------
|
|
.proc vint
|
|
;--------------------------------------------------
|
|
|
|
mva #0 dliCount
|
|
; mva #13 VSCROL ; FOX gfx mode only
|
|
|
|
/*
|
|
bit RMT_blocked
|
|
bmi SkipRMTVBL
|
|
; ------- RMT -------
|
|
lda sfx_effect
|
|
bmi lab2
|
|
asl @ ; * 2
|
|
tay ;Y = 2,4,..,16 instrument number * 2 (0,2,4,..,126)
|
|
ldx #0 ;X = 0 channel (0..3 or 0..7 for stereo module)
|
|
lda #0 ;A = 0 note (0..60)
|
|
bit noSfx
|
|
smi:jsr RASTERMUSICTRACKER+15 ;RMT_SFX start tone (It works only if FEAT_SFX is enabled !!!)
|
|
|
|
lda #$ff
|
|
sta sfx_effect ;reinit value
|
|
lab2
|
|
jsr RASTERMUSICTRACKER+3 ;1 play
|
|
; ------- RMT -------
|
|
SkipRMTVBL
|
|
|
|
*/
|
|
/* ;sfx
|
|
lda sfx_effect
|
|
bmi lab2
|
|
asl ; * 2
|
|
tay ;Y = 2,4,..,16 instrument number * 2 (0,2,4,..,126)
|
|
ldx #3 ;X = 3 channel (0..3 or 0..7 for stereo module)
|
|
lda #12 ;A = 12 note (0..60)
|
|
jsr RASTERMUSICTRACKER+15 ;RMT_SFX start tone (It works only if FEAT_SFX is enabled !!!)
|
|
;
|
|
lda #$ff
|
|
sta sfx_effect ;reinit value
|
|
;
|
|
lab2
|
|
jsr RASTERMUSICTRACKER+3
|
|
skipSoundFrame */
|
|
|
|
jmp XITVBV
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc IngameDLI1
|
|
;--------------------------------------------------
|
|
pha
|
|
lda dliCount
|
|
bne secondDLI
|
|
mva #>font_game_lower CHBASE
|
|
mva #$0c COLPF2
|
|
mva #$c6 COLPF0
|
|
inc dliCount
|
|
pla
|
|
rti
|
|
secondDLI
|
|
sta WSYNC
|
|
sta WSYNC
|
|
sta WSYNC
|
|
sta WSYNC
|
|
mva #$86 COLPF2
|
|
pla
|
|
rti
|
|
.endp
|
|
;--------------------------------------------------
|
|
main
|
|
;--------------------------------------------------
|
|
jsr wait_for_depress
|
|
jsr MakeDarkScreen
|
|
jsr initialize
|
|
RMTsong song_main_menu
|
|
jsr StartScreen
|
|
RMTSong song_ingame
|
|
gameloop
|
|
jsr MakeDarkScreen
|
|
jsr LevelScreen
|
|
jsr PlayLevel
|
|
jsr MakeDarkScreen
|
|
;jsr NextLevel
|
|
; RMTSong song_ingame
|
|
jsr AudioInit ; after I/O
|
|
jmp gameloop
|
|
EndOfLife
|
|
;dec Lives ; decrease Lives
|
|
;lda Lives
|
|
;cmp #"0"
|
|
;beq gameOver ; if no lives - game over
|
|
;jsr NextLife
|
|
jmp gameloop
|
|
gameOver
|
|
;game over
|
|
;RMTSong song_game_over
|
|
;jsr HiScoreCheckWrite
|
|
jsr GameOverScreen
|
|
@ lda CONSOL
|
|
and #@consol(start) ; START
|
|
beq main
|
|
lda TRIG0 ; fire
|
|
jeq main
|
|
jmp @-
|
|
|
|
;--------------------------------------------------
|
|
.proc StartScreen
|
|
;--------------------------------------------------
|
|
/* jsr MakeDarkScreen
|
|
mwa #dl_start dlptrs
|
|
lda #$0 ;+GTIACTLBITS
|
|
sta GPRIOR
|
|
sta COLBAKS
|
|
lda #@dmactl(standard|dma) ; normal screen width, DL on, P/M off
|
|
sta dmactls
|
|
pause 1
|
|
StartLoop
|
|
;jmp StartLoop
|
|
EndOfStartScreen */
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc LevelScreen
|
|
;--------------------------------------------------
|
|
jsr MakeDarkScreen
|
|
ldx #2
|
|
mwa #dl_level dlptrs
|
|
lda #@dmactl(narrow|dma) ; narrow screen width, DL on, P/M off
|
|
sta dmactls
|
|
mva #>font_game_upper CHBAS
|
|
pause 5
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc GameOverScreen
|
|
;--------------------------------------------------
|
|
/* jsr MakeDarkScreen
|
|
ldx #5
|
|
mwa #dl_over dlptrs
|
|
lda #%00110010 ; normal screen width, DL on, P/M off
|
|
sta dmactls
|
|
pause 20 */
|
|
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc MakeDarkScreen
|
|
;--------------------------------------------------
|
|
mva #0 dmactls ; dark screen
|
|
; and wait one frame :)
|
|
pause 1
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc PlayLevel
|
|
;--------------------------------------------------
|
|
loop
|
|
|
|
; PUT GAME HERE
|
|
jsr wait_for_press
|
|
jsr wait_for_depress
|
|
; mwa #gamescreen_lower1r animation_addr
|
|
; waitRTC
|
|
mwa #gamescreen_lower2r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower3r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower4r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower5r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower6r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower7r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower8r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower9r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower10r animation_addr
|
|
waitRTC
|
|
mwa #gamescreen_lower2r animation_addr
|
|
waitRTC
|
|
waitRTC
|
|
waitRTC
|
|
mwa #gamescreen_lower1r animation_addr
|
|
|
|
NoAuto
|
|
jmp loop
|
|
LevelOver
|
|
; level over
|
|
jsr wait_for_depress
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc AudioInit
|
|
;--------------------------------------------------
|
|
; pokeys init
|
|
lda #3
|
|
sta skctl ; put Pokey into Init
|
|
sta skctl+$10
|
|
ldx #8
|
|
lda #0
|
|
@
|
|
sta $D200,x ; clear all voices, set AUDCTL to 00
|
|
sta $D210,x ; clear all voices, set AUDCTL to 00
|
|
dex
|
|
bpl @-
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc initialize
|
|
;--------------------------------------------------
|
|
|
|
mva #>font_game_upper CHBAS
|
|
mva #$00 PCOLR0 ; = $02C0 ;- - rejestr-cień COLPM0
|
|
|
|
mva #$00 COLBAKS
|
|
mva #$88 COLOR0
|
|
mva #$f4 COLOR1
|
|
mva #$0c COLOR2
|
|
mva #$f6 COLOR3
|
|
;mva #$ff COLOR4
|
|
|
|
mva #0 dliCount
|
|
sta RMT_blocked
|
|
|
|
lda #$ff
|
|
sta sfx_effect
|
|
|
|
JSR AudioInit
|
|
|
|
/* ;RMT INIT
|
|
ldx #<MODUL ;low byte of RMT module to X reg
|
|
ldy #>MODUL ;hi byte of RMT module to Y reg
|
|
lda #0 ;starting song line 0-255 to A reg
|
|
jsr RASTERMUSICTRACKER ;Init
|
|
*/
|
|
mwa #gamescreen_lower1r animation_addr
|
|
lda #@dmactl(standard|dma)
|
|
sta dmactls
|
|
mwa #dl_level dlptrs
|
|
vdli IngameDLI1
|
|
|
|
|
|
;VBI
|
|
|
|
vmain vint,7
|
|
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc RmtSongSelect
|
|
; starting song line 0-255 to A reg
|
|
;--------------------------------------------------
|
|
/*
|
|
cmp #song_main_menu
|
|
beq noingame ; noMusic blocks only ingame songs
|
|
bit noMusic
|
|
spl:lda #song_silencio
|
|
noingame
|
|
*/
|
|
/* mvx #$ff RMT_blocked
|
|
ldx #<MODUL ; low byte of RMT module to X reg
|
|
ldy #>MODUL ; hi byte of RMT module to Y reg
|
|
jsr RASTERMUSICTRACKER ; Init
|
|
mva #0 RMT_blocked
|
|
*/ rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc wait_for_press ; ion
|
|
;--------------------------------------------------
|
|
lda TRIG0
|
|
beq press_ok
|
|
lda CONSOL
|
|
and:cmp #%00000111
|
|
beq wait_for_press
|
|
press_ok
|
|
rts
|
|
.endp
|
|
;--------------------------------------------------
|
|
.proc wait_for_depress ; ion
|
|
;--------------------------------------------------
|
|
lda CONSOL
|
|
and:cmp #%00000111
|
|
bne wait_for_depress
|
|
lda TRIG0
|
|
beq wait_for_depress
|
|
rts
|
|
.endp
|
|
;--------------------------------
|
|
; names of RMT instruments (sfx)
|
|
;--------------------------------
|
|
sfx_ping = $07
|
|
sfx_pong = $08
|
|
;--------------------------------
|
|
; RMT songs (lines)
|
|
;--------------------------------
|
|
song_main_menu = $00
|
|
song_ingame = $07
|
|
song_game_over = $12
|
|
|
|
|
|
RUN main
|