Compare commits
380 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 439ec83422 | |||
| f82645ba91 | |||
| ffd3a1907a | |||
| 0a3db56251 | |||
| fd7e206007 | |||
| aee59f5257 | |||
| bc0e838d79 | |||
| e119f7a098 | |||
| dfd9110639 | |||
| 5f7f57f4f4 | |||
| 23471cf054 | |||
| a0aa1b0191 | |||
| dd9226eb5a | |||
| 7ba725e7a2 | |||
| 2c11d5144c | |||
| 72cb8c8f37 | |||
| 819f2e39d8 | |||
| 718cfce278 | |||
| fda415c090 | |||
| 1ad3641b8f | |||
| 65027d5dc9 | |||
| 9255541ddd | |||
| fa9acb2c9e | |||
| e3d86efa56 | |||
| 02b9faf604 | |||
| ba7c0ac5f7 | |||
| 5ef86f74fc | |||
| a140c6e9cd | |||
| 48523bdc66 | |||
| b7edd3fc0f | |||
| 861eaef67a | |||
| 53b393bb30 | |||
| 685200c7b5 | |||
| fe7aa28898 | |||
| c78f3e6005 | |||
| 9da560b2aa | |||
| 69d39ae92e | |||
| 2bf3823c51 | |||
| 50e2a5bd78 | |||
| 7fcc45b0fb | |||
| 159c33e225 | |||
| 870feadab2 | |||
| aa715e5b21 | |||
| f88e5f0bcb | |||
| 50ed25b8b2 | |||
| b3e94e1638 | |||
| 184d293ab2 | |||
| 3aeefe0096 | |||
| 388ffcca55 | |||
| 1b7236c67f | |||
| 75b8968b2e | |||
| 538d673084 | |||
| bf4f47c53c | |||
| 054abf342f | |||
| bed7e01c10 | |||
| ddf843ba72 | |||
| 5d5f76ae55 | |||
| f12dd38d9a | |||
| 4c2188f204 | |||
| b2b3eab4da | |||
| 7bdab87824 | |||
| fa56af26d7 | |||
| 993951526b | |||
| 3872927719 | |||
| 6cc285da00 | |||
| aae0fcbbdf | |||
| 0218e779f9 | |||
| 5f338827c0 | |||
| 2c0c8955ca | |||
| 77d1d427d1 | |||
| 099332d1a8 | |||
| 0479722c28 | |||
| 603cb6481a | |||
| e2f7577afe | |||
| 07d4b011f2 | |||
| eda9f58252 | |||
| 699be9a034 | |||
| d200304b35 | |||
| c2c7b73688 | |||
| 6b9ff174c4 | |||
| 62ddb15aaa | |||
| 979b067674 | |||
| cbda7e79fa | |||
| b876427a36 | |||
| f03774a692 | |||
| 1dbf64dec1 | |||
| 8648bb3de0 | |||
| 0e69f5631d | |||
| ad321ca622 | |||
| 492e8dfe1b | |||
| 440b3e2470 | |||
| 72f79573b9 | |||
| 0a86573141 | |||
| 4ab3953ead | |||
| e5d141ff04 | |||
| d79162d9cd | |||
| 9aa8274f26 | |||
| f055bbbbb0 | |||
| ee3231261d | |||
| c841e9318f | |||
| e8908d3733 | |||
| 32e4c78a81 | |||
| d27f40b35b | |||
| 92aa4c39a8 | |||
| 1c6d3d9ef0 | |||
| 758bb8c07a | |||
| 5faf6caf76 | |||
| a16060ce22 | |||
| cb40d6abcc | |||
| 0dfa59649c | |||
| 99bb242a0f | |||
| 7b23d411ce | |||
| f1028e86ad | |||
| 6cdc7dae74 | |||
| b66115f30b | |||
| ad96c47d8b | |||
| 65d6eb444a | |||
| 10d4f758c0 | |||
| 0baa5c288d | |||
| 64acce26a8 | |||
| 321791e925 | |||
| 1adeaa5081 | |||
| 08f78d7613 | |||
| 503a55f5c1 | |||
| 7a22c786a7 | |||
| 0bca56e1b5 | |||
| 509b659382 | |||
| 936b984fb7 | |||
| 3177c8e41a | |||
| 3766c833b5 | |||
| ca7cceb542 | |||
| a7c77bf97c | |||
| 37d6a837cc | |||
| 64f2fc2a98 | |||
| 06875ad826 | |||
| f2ad43f9d6 | |||
| 1ae8f33ea5 | |||
| 1cadb62618 | |||
| b82df8f012 | |||
| 725e70e955 | |||
| 48bc439eb4 | |||
| 76736093a0 | |||
| 3f91ea60e4 | |||
| ab55e2bfe2 | |||
| db43abc259 | |||
| fd1de1d507 | |||
| 387cda7965 | |||
| f48aefcc2e | |||
| 7e2e021362 | |||
| c240b69110 | |||
| 67a0140a86 | |||
| 8eb50af5e1 | |||
| bf0b18169a | |||
| ca04336d0c | |||
| f943cd4796 | |||
| e0ad27bf96 | |||
| 152749db4b | |||
| c90a02f729 | |||
| fd56c96f74 | |||
| 32d3de39be | |||
| c8a9ea73ef | |||
| d1c92ecc79 | |||
| 26a9fb8d30 | |||
| 0df09b9696 | |||
| dbc3645b9a | |||
| 294722fafe | |||
| 92b9c96693 | |||
| d65bc25792 | |||
| ef8a7e13f9 | |||
| 06bad2f194 | |||
| cfc39e7bf8 | |||
| 5a4fdabd2b | |||
| 1463075794 | |||
| 91483c2500 | |||
| 11e8262e2f | |||
| edf91b8b8c | |||
| 80b46a578b | |||
| 0d44fecba1 | |||
| 5bb4ddecf8 | |||
| ea6d54a69b | |||
| 37d6771212 | |||
| 11ee5a165b | |||
| 78f88d115f | |||
| 9e65c1b4ce | |||
| f67ce5261c | |||
| b914ed3efa | |||
| b5e0d7bca0 | |||
| 25ca24302c | |||
| 075ca4f1ec | |||
| 2b5dd58b3e | |||
| dc82c66a8d | |||
| 7838a2398c | |||
| 56dc32d93b | |||
| 1e70bdd109 | |||
| d43ea740f6 | |||
| 265b375e3b | |||
| e34c2198b3 | |||
| 702808419f | |||
| aaa58d36a6 | |||
| 315bd55ffb | |||
| b5e7514a05 | |||
| 6a58f9eeea | |||
| ab3cecaa72 | |||
| c9c5f2b7ac | |||
| b12c0416cd | |||
| 9b064c2d72 | |||
| d90f35cbb8 | |||
| 8da6d449ae | |||
| e8d7cc7220 | |||
| e58e2f556a | |||
| 0edb181e43 | |||
| ba6126fe12 | |||
| 571d6abdf1 | |||
| 72afeb8c6e | |||
| 828a42e01e | |||
| 65f4602427 | |||
| 7c97dfe5b0 | |||
| 6410d844f9 | |||
| 6a42a39be5 | |||
| 80d0a8968c | |||
| 2c93d570e5 | |||
| 9701deab3f | |||
| eddc43affe | |||
| d76eda7d46 | |||
| 20dd6c8348 | |||
| 02a6c2a8fe | |||
| 13e5b13d47 | |||
| ea7c40aa9b | |||
| 48a0d798ec | |||
| ef2b3920ed | |||
| b2efdbb7c8 | |||
| bb9b27fa81 | |||
| c547515518 | |||
| ac7f2660b7 | |||
| b805742d08 | |||
| 438a208541 | |||
| 20d82243d0 | |||
| 29d7eec664 | |||
| 276d7ccc16 | |||
| 92c92f7946 | |||
| 4c0b23084c | |||
| efd2b6ca22 | |||
| 59973a4d94 | |||
| b97eeadf21 | |||
| dc2838d207 | |||
| 50a1e75c51 | |||
| bb1746321f | |||
| e1b886c994 | |||
| 08f9a9f032 | |||
| 7621c7c516 | |||
| 5f88ad3183 | |||
| bdf2cf93ec | |||
| 602dd3cc9a | |||
| 8ac17cf845 | |||
| 5b23f0f057 | |||
| 831e435bca | |||
| bcd74740c2 | |||
| 94b168540b | |||
| 24fef28153 | |||
| 340b15f435 | |||
| 776b40b70a | |||
| 0829387fa2 | |||
| 148e0880c7 | |||
| 11bacb50b1 | |||
| 65fcf4e789 | |||
| ff7e0a9d76 | |||
| b1ae60236a | |||
| cc4db1d9b6 | |||
| 512835ba99 | |||
| 9bf6dd4f81 | |||
| d6cb7dc389 | |||
| 251f895ac4 | |||
| 9605810184 | |||
| 3c4b9bbeab | |||
| 6d8dc66edc | |||
| af957e3fd7 | |||
| 8d7c14cc5f | |||
| 2d0286e98c | |||
| d454504889 | |||
| 4bb751f29f | |||
| 08352fcf07 | |||
| be6100e320 | |||
| 457042ea0c | |||
| 24dca6ea2f | |||
| 1570e9b3c7 | |||
| d3b2cec93b | |||
| ceb15e9764 | |||
| a09c7b73ff | |||
| bc3261d64b | |||
| 9b3eba350e | |||
| 4b2f4cb24d | |||
| c9c0bc4f07 | |||
| 03af59f95a | |||
| 543ef94391 | |||
| da55f12511 | |||
| 9c97ad582f | |||
| b4cd6fea42 | |||
| eab88cf613 | |||
| 8c263da98b | |||
| 514a08eb39 | |||
| 9915509c01 | |||
| 3293ab5ce5 | |||
| 27ebffec05 | |||
| 1c89554f1f | |||
| 01fde9b5df | |||
| d716c2298d | |||
| ae61d3af7e | |||
| 6e590b57c3 | |||
| 366ac6aa51 | |||
| 0edeb56117 | |||
| fec5050946 | |||
| b021c1675e | |||
| 5d55663b66 | |||
| cdd238211f | |||
| bae3199e9d | |||
| 610167ae23 | |||
| 201b665a6d | |||
| 11ca2376e2 | |||
| f2e6291ae2 | |||
| 37bb913a96 | |||
| a7ffded387 | |||
| 57ba1fbc6c | |||
| 4d81674134 | |||
| 08858e060f | |||
| 06f33be179 | |||
| bd95992971 | |||
| e000856223 | |||
| a5f8970e66 | |||
| 813e571f96 | |||
| fc7c000d8b | |||
| 3f98a78940 | |||
| d9f8521606 | |||
| 355291bf8d | |||
| a2a15b23f2 | |||
| a94c8acaa7 | |||
| 23452aef78 | |||
| b0aadd6e1e | |||
| 4a2470b1c4 | |||
| 550e1af808 | |||
| 443369d3f0 | |||
| 2b8f80eb6c | |||
| 1d836b68d3 | |||
| 0aef84554c | |||
| bf5dc4d876 | |||
| 016b07a94e | |||
| d846df8bcb | |||
| f0946a7411 | |||
| 9f2b32740d | |||
| ba93097793 | |||
| 97896c73af | |||
| 2853a08ac5 | |||
| d5c7f01d1e | |||
| dc7579cf03 | |||
| c62ff52fc7 | |||
| faab3c07ea | |||
| 6644da4722 | |||
| bb2c6ffb39 | |||
| 28a313fe57 | |||
| 4a5d91d017 | |||
| b355edc8a6 | |||
| 10711880e6 | |||
| 8b15c4e205 | |||
| 7abe74a3ea | |||
| 15547e9f0e | |||
| 6f77f622c2 | |||
| 84f18d985a | |||
| 3db7732cc1 | |||
| e4d09c6d46 | |||
| 2a79e04076 | |||
| 20a2cafb4c | |||
| eb16fc7ffd | |||
| fdd4f8a87b | |||
| bed09fe33a | |||
| f05fbe5f66 | |||
| acba47c00f | |||
| d0e041745b | |||
| 3ba8d17c3f | |||
| 4cc73d4ab4 | |||
| a191c05cfd | |||
| f065547e89 |
@@ -0,0 +1,294 @@
|
||||
/***************************************/
|
||||
/* 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 2
|
||||
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
|
||||
|
||||
cpw cloc #500 ; timer 10s
|
||||
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
|
||||
|
||||
inw 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
|
||||
|
||||
@@ -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)
|
||||
@@ -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+
|
||||
@@ -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
|
||||
@@ -1,7 +1,7 @@
|
||||
;---------------------------------------------------
|
||||
; Animation sequence:
|
||||
; v1 - if no branches
|
||||
; v2 - if the branch under (due to change of sides) the lumberjack and none above
|
||||
; v2 - if the branch under (due to change of sides) the lumberjack and none above - (now v1)
|
||||
;
|
||||
; - (last position)
|
||||
; - phase 2 page 1
|
||||
@@ -12,7 +12,7 @@
|
||||
; - phase 2 page 4
|
||||
; - phase 1 page 1 (new position)
|
||||
;
|
||||
; v3 - if the branch opposite the lumberjack and no branch above
|
||||
; v3 - if the branch opposite the lumberjack and no branch above - (now v1)
|
||||
;
|
||||
; - (last position)
|
||||
; - phase 2 page 5
|
||||
@@ -24,7 +24,7 @@
|
||||
; - 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)
|
||||
; v5 - if the branch under (due to change of sides) the lumberjack and branch above (kill) - (now v4)
|
||||
;
|
||||
; - (last position)
|
||||
; - phase 2 page 1
|
||||
@@ -35,7 +35,7 @@
|
||||
; - phase 2 page 13
|
||||
; - phase 1 page 1 (new position) - killed
|
||||
;
|
||||
; v6 - if the branch opposite the lumberjack and branch above (kill)
|
||||
; v6 - if the branch opposite the lumberjack and branch above (kill) - (now v4)
|
||||
;
|
||||
; - (last position)
|
||||
; - phase 2 page 5
|
||||
@@ -47,7 +47,7 @@
|
||||
; - 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
|
||||
; 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
|
||||
@@ -58,7 +58,7 @@
|
||||
; - phase 2 page 9
|
||||
; - phase 1 page 2 (new position)
|
||||
;
|
||||
; v9 - if the branch opposite the lumberjack and branch above on the other side
|
||||
; v9 - if the branch opposite the lumberjack and branch above on the other side - (now v7)
|
||||
;
|
||||
; - (last position)
|
||||
; - phase 2 page 5
|
||||
@@ -74,67 +74,69 @@
|
||||
;--------------------------------------------------
|
||||
mva #>font_game_lower_right LowCharsetBase
|
||||
mwa #last_line_r lastline_addr
|
||||
mwa #gamescreen_r_ph2p1 animation_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_ph2p2 animation_addr
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph3p1 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMr2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph2p4 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_r_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMr1
|
||||
;WaitForSync
|
||||
mva #1 LumberjackDir ; right side
|
||||
rts
|
||||
.endp
|
||||
AnimationR2 = AnimationR1
|
||||
;AnimationR2 = AnimationR1
|
||||
;--------------------------------------------------
|
||||
.proc AnimationL1
|
||||
;--------------------------------------------------
|
||||
mva #>font_game_lower_left LowCharsetBase
|
||||
mwa #last_line_l lastline_addr
|
||||
mwa #gamescreen_l_ph2p1 animation_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_ph2p2 animation_addr
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph3p1 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMl2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph2p4 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_l_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMl1
|
||||
;WaitForSync
|
||||
mva #2 LumberjackDir ; left side
|
||||
rts
|
||||
.endp
|
||||
AnimationL2 = AnimationL1
|
||||
/* AnimationL2 = AnimationL1
|
||||
;--------------------------------------------------
|
||||
.proc AnimationR3
|
||||
;--------------------------------------------------
|
||||
@@ -148,22 +150,22 @@ AnimationL2 = AnimationL1
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph3p3 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMr2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph2p4 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_r_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMr1
|
||||
WaitForSync
|
||||
mva #1 LumberjackDir ; right side
|
||||
rts
|
||||
.endp
|
||||
@@ -180,91 +182,87 @@ AnimationL2 = AnimationL1
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph3p3 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMl2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph2p4 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_l_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMl1
|
||||
WaitForSync
|
||||
mva #2 LumberjackDir ; left side
|
||||
rts
|
||||
.endp
|
||||
.endp */
|
||||
;--------------------------------------------------
|
||||
.proc AnimationR4
|
||||
;--------------------------------------------------
|
||||
mva #>font_game_lower_right LowCharsetBase
|
||||
mwa #last_line_r lastline_addr
|
||||
mwa #gamescreen_r_ph2p1 animation_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_ph2p11 animation_addr
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph3p9 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMr2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph2p13 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_r_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMr1
|
||||
;WaitForSync
|
||||
mva #1 LumberjackDir ; right side (kill)
|
||||
rts
|
||||
.endp
|
||||
AnimationR5 = AnimationR4
|
||||
;AnimationR5 = AnimationR4
|
||||
;--------------------------------------------------
|
||||
.proc AnimationL4
|
||||
;--------------------------------------------------
|
||||
mva #>font_game_lower_left LowCharsetBase
|
||||
mwa #last_line_l lastline_addr
|
||||
mwa #gamescreen_l_ph2p1 animation_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_ph2p11 animation_addr
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph3p9 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMl2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph2p13 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_l_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMl1
|
||||
;WaitForSync
|
||||
mva #2 LumberjackDir ; left side (kill)
|
||||
rts
|
||||
.endp
|
||||
AnimationL5 = AnimationL4
|
||||
/* AnimationL5 = AnimationL4
|
||||
;--------------------------------------------------
|
||||
.proc AnimationR6
|
||||
;--------------------------------------------------
|
||||
@@ -278,22 +276,22 @@ AnimationL5 = AnimationL4
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph3p11 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMr2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph2p13 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_r_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMr1
|
||||
WaitForSync
|
||||
mva #1 LumberjackDir ; right side (kill)
|
||||
rts
|
||||
.endp
|
||||
@@ -310,91 +308,93 @@ AnimationL5 = AnimationL4
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph3p11 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMl2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph2p13 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_l_ph1p1 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMl1
|
||||
WaitForSync
|
||||
mva #2 LumberjackDir ; left side (kill)
|
||||
rts
|
||||
.endp
|
||||
.endp */
|
||||
;--------------------------------------------------
|
||||
.proc AnimationR7
|
||||
;--------------------------------------------------
|
||||
mva #>font_game_lower_right LowCharsetBase
|
||||
mwa #last_line_r lastline_addr
|
||||
mwa #gamescreen_r_ph2p1 animation_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_ph2p7 animation_addr
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph3p5 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMr2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph2p9 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_r_ph1p2 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMr1
|
||||
;WaitForSync
|
||||
mva #1 LumberjackDir ; right side
|
||||
rts
|
||||
.endp
|
||||
AnimationR8 = AnimationR7
|
||||
;AnimationR8 = AnimationR7
|
||||
;--------------------------------------------------
|
||||
.proc AnimationL7
|
||||
;--------------------------------------------------
|
||||
mva #>font_game_lower_left LowCharsetBase
|
||||
mwa #last_line_l lastline_addr
|
||||
mwa #gamescreen_l_ph2p1 animation_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_ph2p7 animation_addr
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph3p5 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMl2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph2p9 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_l_ph1p2 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMl1
|
||||
;WaitForSync
|
||||
mva #2 LumberjackDir ; left side
|
||||
rts
|
||||
.endp
|
||||
AnimationL8 = AnimationL7
|
||||
/* AnimationL8 = AnimationL7
|
||||
;--------------------------------------------------
|
||||
.proc AnimationR9
|
||||
;--------------------------------------------------
|
||||
@@ -408,22 +408,22 @@ AnimationL8 = AnimationL7
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph3p7 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMr2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_r_ph2p9 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_r_ph1p2 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMr1
|
||||
WaitForSync
|
||||
mva #1 LumberjackDir ; right side
|
||||
rts
|
||||
.endp
|
||||
@@ -440,23 +440,23 @@ AnimationL8 = AnimationL7
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph3p7 animation_addr
|
||||
WaitForSync
|
||||
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
|
||||
WaitForSync
|
||||
jsr SetPMl2
|
||||
WaitForSync
|
||||
jsr branches_go_down
|
||||
mwa #gamescreen_l_ph2p9 animation_addr
|
||||
WaitForSync
|
||||
mwa #gamescreen_l_ph1p2 animation_addr
|
||||
WaitForSync
|
||||
jsr SetPMl1
|
||||
WaitForSync
|
||||
mva #2 LumberjackDir ; left side
|
||||
rts
|
||||
.endp
|
||||
.endp */
|
||||
;--------------------------------------------------
|
||||
|
||||
@@ -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,$44,$45,$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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -47,8 +47,13 @@ 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')
|
||||
dta = load_atrview('rip.atrview')
|
||||
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)]))
|
||||
|
||||
@@ -81,13 +86,13 @@ 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_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_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)
|
||||
@@ -101,9 +106,9 @@ 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_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)
|
||||
@@ -117,9 +122,9 @@ 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_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)
|
||||
@@ -129,13 +134,13 @@ 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_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_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)
|
||||
@@ -145,13 +150,13 @@ 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_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_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)
|
||||
@@ -161,13 +166,13 @@ 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_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('gamescreen_r_ph3p12 ; phase 3 page 12')
|
||||
#dta = load_atrview('phase3r.atrview', page=12)
|
||||
#print_lines(dta, -9, -1)
|
||||
|
||||
print("""
|
||||
; left animation
|
||||
@@ -201,13 +206,13 @@ 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_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_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)
|
||||
@@ -221,9 +226,9 @@ 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_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)
|
||||
@@ -237,9 +242,9 @@ 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_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)
|
||||
@@ -249,13 +254,13 @@ 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_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_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)
|
||||
@@ -265,13 +270,13 @@ 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_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_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)
|
||||
@@ -281,13 +286,13 @@ 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_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('gamescreen_l_ph3p12 ; phase 3 page 12')
|
||||
#dta = load_atrview('phase3l.atrview', page=12)
|
||||
#print_lines(dta, -9, -1)
|
||||
|
||||
print("""
|
||||
; RIP screens
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
python ex.py
|
||||
python lumberjack_export.py >anim_exported.asm
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,4 @@
|
||||
[ViewState]
|
||||
Mode=
|
||||
Vid=
|
||||
FolderType=Generic
|
||||
@@ -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--------
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -0,0 +1,5 @@
|
||||
00 - title
|
||||
0D - death
|
||||
10 - count down
|
||||
12 - high score
|
||||
17 - in game
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 5.0 KiB |