mirror of
https://github.com/Pecusx/dino-game.git
synced 2026-05-20 22:33:23 +02:00
Finito!
This commit is contained in:
@@ -24,6 +24,7 @@ swap_table=$0600 ; table for swap bytes in left characters :)
|
|||||||
.zpvar JumpPhase .byte
|
.zpvar JumpPhase .byte
|
||||||
.zpvar Hit .byte
|
.zpvar Hit .byte
|
||||||
.zpvar Level .byte
|
.zpvar Level .byte
|
||||||
|
.zpvar play_flag .byte
|
||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
icl 'lib/ATARISYS.ASM'
|
icl 'lib/ATARISYS.ASM'
|
||||||
icl 'lib/MACRO.ASM'
|
icl 'lib/MACRO.ASM'
|
||||||
@@ -42,9 +43,9 @@ swap_table=$0600 ; table for swap bytes in left characters :)
|
|||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
org $2000
|
org $2000
|
||||||
PLAYER
|
PLAYER
|
||||||
ins 'music/pl_2000.bin',+6 ; MPT player $2000
|
icl 'music/playlzs16.asm' ; Music Player
|
||||||
|
|
||||||
org $2800
|
org $3000
|
||||||
PMgraph
|
PMgraph
|
||||||
org PMGraph+$800 ; P/M graphics for clouds
|
org PMGraph+$800 ; P/M graphics for clouds
|
||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
@@ -127,6 +128,7 @@ NewGame
|
|||||||
jsr PlayInGameMusic
|
jsr PlayInGameMusic
|
||||||
jsr GameR
|
jsr GameR
|
||||||
jsr GameOverR
|
jsr GameOverR
|
||||||
|
jsr PlayGameOverMusic
|
||||||
AnyKey
|
AnyKey
|
||||||
jsr FadeColorsOUT
|
jsr FadeColorsOUT
|
||||||
jsr HiScoreR
|
jsr HiScoreR
|
||||||
@@ -137,6 +139,7 @@ NewGame
|
|||||||
jsr PlayInGameMusic
|
jsr PlayInGameMusic
|
||||||
jsr GameL
|
jsr GameL
|
||||||
jsr GameOverL
|
jsr GameOverL
|
||||||
|
jsr PlayGameOverMusic
|
||||||
AnyKey
|
AnyKey
|
||||||
jsr FadeColorsOUT
|
jsr FadeColorsOUT
|
||||||
jsr HiScoreL
|
jsr HiScoreL
|
||||||
@@ -1304,29 +1307,35 @@ pressed
|
|||||||
.endp
|
.endp
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
.proc PrepareMusicPlayer
|
.proc PrepareMusicPlayer
|
||||||
;jsr StopMusic
|
jsr StopMusic
|
||||||
VMAIN VBLinterrupt,7 ; jsr SetVBL
|
VMAIN VBLinterrupt,7 ; jsr SetVBL
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
.proc PlayInGameMusic
|
.proc PlayInGameMusic
|
||||||
lda #$00
|
jsr StopMusic
|
||||||
ldy #<MUSIC1_DATA
|
mwa #MUSIC1_DATA song_start_ptr
|
||||||
ldx #>MUSIC1_DATA
|
mwa #MUSIC1_DATA_END song_end_ptr
|
||||||
jmp PLAYER ; rts
|
jsr init_song
|
||||||
|
mva #1 play_flag
|
||||||
|
rts
|
||||||
.endp
|
.endp
|
||||||
.proc PlayGameOverMusic
|
.proc PlayGameOverMusic
|
||||||
lda #$00
|
jsr StopMusic
|
||||||
ldy #<MUSIC2_DATA
|
mwa #MUSIC2_DATA song_start_ptr
|
||||||
ldx #>MUSIC2_DATA
|
mwa #MUSIC2_DATA_END song_end_ptr
|
||||||
jmp PLAYER ; rts
|
jsr init_song
|
||||||
|
mva #1 play_flag
|
||||||
|
rts
|
||||||
.endp
|
.endp
|
||||||
.proc StopMusic
|
.proc StopMusic
|
||||||
lda #$02
|
mva #0 play_flag
|
||||||
jmp PLAYER ; rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
.proc VBLinterrupt
|
.proc VBLinterrupt
|
||||||
jsr PLAYER+3
|
lda play_flag
|
||||||
pla
|
beq @+
|
||||||
|
jsr PLAYER
|
||||||
|
@ pla
|
||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
tax
|
tax
|
||||||
@@ -1365,10 +1374,12 @@ font4l
|
|||||||
; SCR_HEIGHT lines 256bytes each
|
; SCR_HEIGHT lines 256bytes each
|
||||||
screen
|
screen
|
||||||
.ds $100*SCR_HEIGHT
|
.ds $100*SCR_HEIGHT
|
||||||
org $6900 ; POZOR!!!
|
.align $100
|
||||||
MUSIC1_DATA
|
MUSIC1_DATA
|
||||||
ins 'music/ingame.mpt',+6 ; ingame music
|
ins 'music/InGame.lzss' ; ingame music
|
||||||
|
MUSIC1_DATA_END
|
||||||
|
.align $100
|
||||||
MUSIC2_DATA
|
MUSIC2_DATA
|
||||||
ins 'music/gameover.mpt',+6 ; game over music
|
ins 'music/GameOver.lzss' ; game over music
|
||||||
|
MUSIC2_DATA_END
|
||||||
run FirstSTART
|
run FirstSTART
|
||||||
|
|||||||
+35
-3
@@ -11,9 +11,14 @@
|
|||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
icl '../lib/ATARISYS.ASM'
|
icl '../lib/ATARISYS.ASM'
|
||||||
icl '../lib/MACRO.ASM'
|
icl '../lib/MACRO.ASM'
|
||||||
|
;---------------------------------------------------
|
||||||
|
org $2000
|
||||||
|
PLAYER
|
||||||
|
icl '../music/playlzs16.asm' ; Music Player
|
||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
; BASIC off
|
; BASIC off
|
||||||
ORG $2c00
|
ORG $2c00
|
||||||
|
start1
|
||||||
mva #$ff portb
|
mva #$ff portb
|
||||||
mwa #DL_pre dlptrs
|
mwa #DL_pre dlptrs
|
||||||
lda #@dmactl(narrow|dma) ; narrow screen width, DL on
|
lda #@dmactl(narrow|dma) ; narrow screen width, DL on
|
||||||
@@ -22,7 +27,7 @@
|
|||||||
sta COLBAK
|
sta COLBAK
|
||||||
mva #15 COLOR1
|
mva #15 COLOR1
|
||||||
jsr wait_for_releasing_keyz
|
jsr wait_for_releasing_keyz
|
||||||
|
jsr PlayMusic
|
||||||
leet_anim
|
leet_anim
|
||||||
; test for going further
|
; test for going further
|
||||||
lda CONSOL
|
lda CONSOL
|
||||||
@@ -72,6 +77,7 @@ next_letter
|
|||||||
jmp @-
|
jmp @-
|
||||||
|
|
||||||
leet_end
|
leet_end
|
||||||
|
jsr StopMusic
|
||||||
jsr wait_for_releasing_keyz
|
jsr wait_for_releasing_keyz
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@@ -135,8 +141,34 @@ leet_speeks_h
|
|||||||
.by >leet_speek4
|
.by >leet_speek4
|
||||||
leet_screen
|
leet_screen
|
||||||
.ds 32*9
|
.ds 32*9
|
||||||
leet_screen_end
|
leet_screen_end
|
||||||
ini $2000
|
;--------------------------------------------------
|
||||||
|
.proc PlayMusic
|
||||||
|
mwa #MUSIC_DATA song_start_ptr
|
||||||
|
mwa #MUSIC_DATA_END song_end_ptr
|
||||||
|
jsr init_song
|
||||||
|
VMAIN VBLinterrupt,7 ; jsr SetVBL
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
|
.proc StopMusic
|
||||||
|
VMAIN XITVBV,7 ; jsr SetVBL
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
|
.proc VBLinterrupt
|
||||||
|
jsr PLAYER
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
rti
|
||||||
|
.endp
|
||||||
|
.align $100
|
||||||
|
MUSIC_DATA
|
||||||
|
ins '../music/Title.lzss' ; title music
|
||||||
|
MUSIC_DATA_END
|
||||||
|
|
||||||
|
ini start1
|
||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
|
|
||||||
org $3000
|
org $3000
|
||||||
|
|||||||
+54
-25
@@ -1,4 +1,4 @@
|
|||||||
mads 2.1.7
|
mads 2.1.7 build 3 (13 Sep 23)
|
||||||
Label table:
|
Label table:
|
||||||
00 E400 EDITRV
|
00 E400 EDITRV
|
||||||
00 E410 SCRENV
|
00 E410 SCRENV
|
||||||
@@ -577,36 +577,65 @@ FFFD 0000 @KBCODE
|
|||||||
00 0082 TEMP_B
|
00 0082 TEMP_B
|
||||||
00 0083 TEMP_W2
|
00 0083 TEMP_W2
|
||||||
00 0085 TEMP_W3
|
00 0085 TEMP_W3
|
||||||
00 2C24 LEET_ANIM
|
00 2000 PLAYER
|
||||||
00 2C4D 0@
|
00 00E0 SONG_START_PTR
|
||||||
00 2C71 NEXT_LETTER
|
00 00E2 SONG_END_PTR
|
||||||
00 2C90 LEET_END
|
00 00E4 CHN_COPY
|
||||||
00 2C94 WAIT_FOR_RELEASING_KEYZ
|
00 00ED CHN_POS
|
||||||
00 2C94 WAIT_FOR_RELEASING_KEYZ.1@
|
00 00F6 BPTR
|
||||||
00 2C9B WAIT_FOR_RELEASING_KEYZ.2@
|
00 00F8 CUR_POS
|
||||||
00 2CA6 WAIT_FOR_RELEASING_KEYZ.3@
|
00 00F9 CHN_BITS
|
||||||
00 2CAC DL_PRE
|
00 00FA BIT_DATA
|
||||||
00 2CCC PRE_SCREEN
|
00 2003 INIT_SONG
|
||||||
00 2DEC PRE_SCREEN_END
|
00 2006 INIT_SONG.0@
|
||||||
00 2DEC LEET_SPEEK1
|
00 2040 INIT_SONG.CLEAR
|
||||||
00 2E06 LEET_SPEEK2
|
00 2048 INIT_SONG.CBUF
|
||||||
00 2E20 LEET_SPEEK3
|
00 2056 PLAY_FRAME
|
||||||
00 2E3A LEET_SPEEK4
|
00 2062 PLAY_FRAME.CHN_LOOP
|
||||||
00 2E54 LEET_SPEEKS_L
|
00 2074 PLAY_FRAME.GOT_BIT
|
||||||
00 2E58 LEET_SPEEKS_H
|
00 2080 PLAY_FRAME.DO_COPY_BYTE
|
||||||
00 2E5C LEET_SCREEN
|
00 2088 PLAY_FRAME.STORE
|
||||||
00 2F7C LEET_SCREEN_END
|
00 208F PLAY_FRAME.SKIP_CHN
|
||||||
|
00 2096 PLAY_FRAME.CHECK_END_SONG
|
||||||
|
00 20A8 GET_BYTE
|
||||||
|
00 20A9 SONG_PTR
|
||||||
|
00 2100 BUFFERS
|
||||||
|
00 2C00 START1
|
||||||
|
00 2C27 LEET_ANIM
|
||||||
|
00 2C50 1@
|
||||||
|
00 2C74 NEXT_LETTER
|
||||||
|
00 2C93 LEET_END
|
||||||
|
00 2C9A WAIT_FOR_RELEASING_KEYZ
|
||||||
|
00 2C9A WAIT_FOR_RELEASING_KEYZ.2@
|
||||||
|
00 2CA1 WAIT_FOR_RELEASING_KEYZ.3@
|
||||||
|
00 2CAC WAIT_FOR_RELEASING_KEYZ.4@
|
||||||
|
00 2CB2 DL_PRE
|
||||||
|
00 2CD2 PRE_SCREEN
|
||||||
|
00 2DF2 PRE_SCREEN_END
|
||||||
|
00 2DF2 LEET_SPEEK1
|
||||||
|
00 2E0C LEET_SPEEK2
|
||||||
|
00 2E26 LEET_SPEEK3
|
||||||
|
00 2E40 LEET_SPEEK4
|
||||||
|
00 2E5A LEET_SPEEKS_L
|
||||||
|
00 2E5E LEET_SPEEKS_H
|
||||||
|
00 2E62 LEET_SCREEN
|
||||||
|
00 2F82 LEET_SCREEN_END
|
||||||
|
00 2F82 PLAYMUSIC
|
||||||
|
00 2F9F STOPMUSIC
|
||||||
|
00 2FA9 VBLINTERRUPT
|
||||||
|
00 3000 MUSIC_DATA
|
||||||
|
00 357F MUSIC_DATA_END
|
||||||
00 3000 SCREEN
|
00 3000 SCREEN
|
||||||
00 3410 DL
|
00 3410 DL
|
||||||
00 343C START
|
00 343C START
|
||||||
00 3482 PLEASE_WAIT_LOOP
|
00 3482 PLEASE_WAIT_LOOP
|
||||||
00 3498 4@
|
00 3498 5@
|
||||||
00 3499 SAMPLE_LOAD
|
00 3499 SAMPLE_LOAD
|
||||||
00 34FA 5@
|
00 34FA 6@
|
||||||
00 3504 EXIT_TECH_DIFF
|
00 3504 EXIT_TECH_DIFF
|
||||||
00 3504 6@
|
00 3504 7@
|
||||||
00 350B 7@
|
00 350B 8@
|
||||||
00 3516 8@
|
00 3516 9@
|
||||||
00 352A SAMPLE1
|
00 352A SAMPLE1
|
||||||
00 4896 SAMPLE_END1
|
00 4896 SAMPLE_END1
|
||||||
00 4896 SAMPLE2
|
00 4896 SAMPLE2
|
||||||
|
|||||||
+530
-300
@@ -931,157 +931,387 @@ Source: MACRO.ASM
|
|||||||
186 mva #3 SKSTAT
|
186 mva #3 SKSTAT
|
||||||
187 .ENDM
|
187 .ENDM
|
||||||
14 ;---------------------------------------------------
|
14 ;---------------------------------------------------
|
||||||
15 ; BASIC off
|
15 org $2000
|
||||||
16 ORG $2700
|
16 PLAYER
|
||||||
17 FFFF> 2700-295B> A9 FF + mva #$ff portb
|
17 icl '../music/playlzs16.asm' ; Music Player
|
||||||
18 2705 A9 AC 8D 30 02 A9 + mwa #DL_pre dlptrs
|
Source: playlzs16.asm
|
||||||
19 270F A9 21 lda #@dmactl(narrow|dma) ; narrow screen width, DL on
|
1 ;
|
||||||
20 2711 8D 2F 02 sta dmactls
|
2 ; LZSS Compressed SAP player for 16 match bits
|
||||||
21 2714 A9 00 8D C6 02 mva #0 COLOR2
|
3 ; --------------------------------------------
|
||||||
22 2719 8D 1A D0 sta COLBAK
|
4 ;
|
||||||
23 271C A9 0F 8D C5 02 mva #15 COLOR1
|
5 ; (c) 2020 DMSC
|
||||||
24 2721 20 94 27 jsr wait_for_releasing_keyz
|
6 ; Code under MIT license, see LICENSE file.
|
||||||
25
|
7 ;
|
||||||
26 2724 leet_anim
|
8 ; This player uses:
|
||||||
27 ; test for going further
|
9 ; Match length: 8 bits (1 to 256)
|
||||||
28 2724 AD 1F D0 lda CONSOL
|
10 ; Match offset: 8 bits (1 to 256)
|
||||||
29 2727 C9 07 cmp #7
|
11 ; Min length: 2
|
||||||
30 2729 D0 65 bne leet_end
|
12 ; Total match bits: 16 bits
|
||||||
31 ; check keyboard
|
13 ;
|
||||||
32 272B AD 0F D2 lda SKSTAT
|
14 ; Compress using:
|
||||||
33 272E C9 F7 cmp #$f7 ; SHIFT
|
15 ; lzss -b 16 -o 8 -m 1 input.rsap test.lz12
|
||||||
34 2730 F0 5E beq leet_end
|
16 ;
|
||||||
35 2732 C9 FF cmp #$ff
|
17 ; Assemble this file with MADS assembler, the compressed song is expected in
|
||||||
36 2734 D0 5A bne leet_end
|
18 ; the `test.lz16` file at assembly time.
|
||||||
37 2736 AD 10 D0 lda TRIG0
|
19 ;
|
||||||
38 2739 F0 55 beq leet_end
|
20 ; The plater needs 256 bytes of buffer for each pokey register stored, for a
|
||||||
39
|
21 ; full SAP file this is 2304 bytes.
|
||||||
40
|
22 ;
|
||||||
41 273B A9 CC 85 80 A9 27 + mwa #pre_screen temp_w
|
23 org $e0
|
||||||
42 2743 A9 5C 85 85 A9 29 + mwa #leet_screen temp_w3
|
24
|
||||||
43 274B A0 00 ldy #0
|
25 = 00E0 song_start_ptr .ds 2
|
||||||
44 @
|
26 = 00E2 song_end_ptr .ds 2
|
||||||
45 274D B1 80 lda (temp_w),y
|
27 = 00E4 chn_copy .ds 9
|
||||||
46 274F F0 20 beq next_letter ; ignore zeroes
|
28 = 00ED chn_pos .ds 9
|
||||||
47 ;is the letter leetable?
|
29 = 00F6 bptr .ds 2
|
||||||
48 2751 C9 61 cmp #"a"
|
30 = 00F8 cur_pos .ds 1
|
||||||
49 2753 90 1C bcc next_letter
|
31 = 00F9 chn_bits .ds 1
|
||||||
50 2755 C9 7B cmp #"z"+1
|
32
|
||||||
51 2757 B0 18 bcs next_letter
|
33 = 00FA bit_data .ds 1
|
||||||
52 ;letter is leetable
|
34
|
||||||
53 2759 F0 16 beq next_letter
|
35
|
||||||
54 275B 38 sec
|
36
|
||||||
55 275C E9 61 sbc #"a"
|
37 ;POKEY = $D200
|
||||||
56 275E A8 tay ;save the letter
|
38
|
||||||
57 275F AD 0A D2 lda RANDOM
|
39 org $2000
|
||||||
58 2762 29 03 and #%00000011 ; 0-3
|
40
|
||||||
59 2764 AA tax
|
41
|
||||||
60 2765 BD 54 29 lda leet_speeks_l,x
|
42 ;player
|
||||||
61 2768 85 83 sta temp_w2
|
43 FFFF> 2000-20B3> 4C 56 + jmp play_frame
|
||||||
62 276A BD 58 29 lda leet_speeks_h,x
|
44 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
63 276D 85 84 sta temp_w2+1
|
45 ; Song Initialization - this runs in the first tick:
|
||||||
64 276F B1 83 lda (temp_w2),y
|
46 ;
|
||||||
65 2771 next_letter
|
47 2003 .proc init_song
|
||||||
66 2771 A0 00 ldy #0
|
48
|
||||||
67 2773 91 85 sta (temp_w3),y
|
49 ;clear buffers
|
||||||
68 2775 E6 80 D0 02 E6 81 inw temp_w
|
50 2003 A9 00 lda #0
|
||||||
69 277B E6 85 D0 02 E6 86 inw temp_w3
|
51 2005 AA tax
|
||||||
70 2781 A5 81 C9 28 D0 04 + cpw temp_w #pre_screen_end
|
52 @
|
||||||
71 278B F0 97 beq leet_anim
|
53 2006 9D 00 21 9D 00 22 + :9 sta buffers+#*$100,x
|
||||||
72 278D 4C 4D 27 jmp @-
|
54 2021 E8 inx
|
||||||
73
|
55 2022 D0 E2 bne @-
|
||||||
74 2790 leet_end
|
56
|
||||||
75 2790 20 94 27 jsr wait_for_releasing_keyz
|
57 2024 A9 01 85 FA mva #1 bit_data
|
||||||
76 2793 60 rts
|
58
|
||||||
77
|
59 ; here initializes song pointer:
|
||||||
78
|
60 2028 18 A5 E0 69 01 8D + adw song_start_ptr #1 song_ptr
|
||||||
79 2794 .proc wait_for_releasing_keyz
|
61
|
||||||
80 2794 AD 1F D0 @ lda CONSOL
|
62 2037 A9 21 8D 4A 20 mva #>(buffers+255) cbuf+2
|
||||||
81 2797 C9 07 cmp #7
|
63 ; Init all channels:
|
||||||
82 2799 D0 F9 bne @-
|
64 203C A2 08 ldx #8
|
||||||
83 ; check keyboard
|
65 203E A0 00 ldy #0
|
||||||
84 279B AD 0F D2 @ lda SKSTAT
|
66 2040 clear
|
||||||
85 279E C9 F7 cmp #$f7 ; SHIFT
|
67 ; Read just init value and store into buffer and POKEY
|
||||||
86 27A0 F0 F9 beq @-
|
68 2040 20 A8 20 jsr get_byte
|
||||||
87 27A2 C9 FF cmp #$ff
|
69 2043 9D 00 D2 sta POKEY, x
|
||||||
88 27A4 D0 F5 bne @-
|
70 2046 94 E4 sty chn_copy, x
|
||||||
89 27A6 AD 10 D0 @ lda TRIG0
|
71 2048 cbuf
|
||||||
90 27A9 F0 FB beq @-
|
72 2048 8D FF 21 sta buffers + 255
|
||||||
91 27AB 60 rts
|
73 204B EE 4A 20 inc cbuf + 2
|
||||||
92 .endp
|
74 204E CA dex
|
||||||
93
|
75 204F 10 EF bpl clear
|
||||||
94 27AC DL_pre
|
76
|
||||||
95 27AC 70 70 70 70 70 70 + :8 .by SKIP8
|
77 ; Initialize buffer pointer:
|
||||||
96 27B4 42 .by LMS+MODE2
|
78 2051 84 F6 sty bptr
|
||||||
97 27B5 5C 29 .wo leet_screen
|
79 2053 84 F8 sty cur_pos
|
||||||
98 27B7 00 02 .by SKIP1, MODE2
|
80 2055 60 rts
|
||||||
99 27B9 70 .by SKIP8
|
81 .endp
|
||||||
100 27BA 00 02 .by SKIP1, MODE2
|
82
|
||||||
101 27BC 70 .by SKIP8
|
83
|
||||||
102 27BD 00 02 00 02 00 02 + :6 .by SKIP1, MODE2
|
84 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
103 27C9 41 .by JVB
|
85 ; Play one frame of the song
|
||||||
104 27CA AC 27 .wo DL_pre
|
86 ;
|
||||||
105 27CC pre_screen
|
87 2056 .proc play_frame
|
||||||
106 ; 01234567890123456789012345678901"
|
88 2056 A9 21 lda #>buffers
|
||||||
107 27CC 74 68 69 73 00 6C + dta "this little game was created in "
|
89 2058 85 F7 sta bptr+1
|
||||||
108 27EC 00 66 6F 75 72 00 + dta " four evenings before SV2K24SE "
|
90
|
||||||
109 280C 73 6F 72 72 79 00 + dta "sorry for technical difficulties"
|
91 205A A0 00 ldy #0
|
||||||
110 282C 63 6F 64 65 1A 00 + dta "code: "
|
92 205C B1 E0 lda (song_start_ptr),y
|
||||||
111 284C 00 00 00 00 00 00 + dta " pecus & pirx "
|
93 205E 85 F9 sta chn_bits
|
||||||
112 286C 73 6F 75 6E 64 1A + dta "sound: "
|
94 2060 A2 08 ldx #8
|
||||||
113 288C 00 00 00 00 00 00 + dta " alex, jochen hippel "
|
95
|
||||||
114 28AC 67 66 78 1A 00 00 + dta "gfx: "
|
96 ; Loop through all "channels", one for each POKEY register
|
||||||
115 28CC 00 00 00 00 00 00 + dta " alphabet, inc. "
|
97 2062 chn_loop:
|
||||||
116 28EC pre_screen_end
|
98 2062 46 F9 lsr chn_bits
|
||||||
117 28EC leet_speek1
|
99 2064 B0 29 bcs skip_chn ; C=1 : skip this channel
|
||||||
118 28EC 61 62 63 64 65 66 + dta "abcdefghijklmnopqrstuvwxyz"
|
100
|
||||||
119 2906 leet_speek2
|
101 2066 B5 E4 lda chn_copy, x ; Get status of this stream
|
||||||
120 2906 21 22 23 24 25 26 + dta "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
102 2068 D0 16 bne do_copy_byte ; If > 0 we are copying bytes
|
||||||
121 2920 leet_speek3
|
103
|
||||||
122 2920 14 06 3B 09 65 26 + dta "4&[)eF9-|jk_mn0p@r57uvw*y2"
|
104 ; We are decoding a new match/literal
|
||||||
123 293A leet_speek4
|
105 206A 46 FA lsr bit_data ; Get next bit
|
||||||
124 293A 3E 62 08 1E 5B 41 + dta "^b(>",$5b,$41,"gh1",$4c+$80,"k",$4b+$80,"M\",$54,$49+$80,"q",$51,"5",$57,"uvwxy/"
|
106 206C D0 06 bne got_bit
|
||||||
125
|
107 206E 20 A8 20 jsr get_byte ; Not enough bits, refill!
|
||||||
126 2954 leet_speeks_l
|
108 2071 6A ror ; Extract a new bit and add a 1 at the high bit (from C set above)
|
||||||
127 2954 EC .by <leet_speek1
|
109 2072 85 FA sta bit_data ;
|
||||||
128 2955 06 .by <leet_speek2
|
110 2074 got_bit:
|
||||||
129 2956 20 .by <leet_speek3
|
111 2074 20 A8 20 jsr get_byte ; Always read a byte, it could mean "match size/offset" or "literal byte"
|
||||||
130 2957 3A .by <leet_speek4
|
112 2077 B0 0F bcs store ; Bit = 1 is "literal", bit = 0 is "match"
|
||||||
131 2958 leet_speeks_h
|
113
|
||||||
132 2958 28 .by >leet_speek1
|
114 2079 95 ED sta chn_pos, x ; Store in "copy pos"
|
||||||
133 2959 29 .by >leet_speek2
|
115
|
||||||
134 295A 29 .by >leet_speek3
|
116 207B 20 A8 20 jsr get_byte
|
||||||
135 295B 29 .by >leet_speek4
|
117 207E 95 E4 sta chn_copy, x ; Store in "copy length"
|
||||||
136 295C leet_screen
|
118
|
||||||
137 = 295C .ds 32*9
|
119 ; And start copying first byte
|
||||||
138 2A7C leet_screen_end
|
120 2080 do_copy_byte:
|
||||||
139 02E2-02E3> 00 20 ini $2000
|
121 2080 D6 E4 dec chn_copy, x ; Decrease match length, increase match position
|
||||||
140 ;---------------------------------------------------
|
122 2082 F6 ED inc chn_pos, x
|
||||||
|
123 2084 B4 ED ldy chn_pos, x
|
||||||
|
124
|
||||||
|
125 ; Now, read old data, jump to data store
|
||||||
|
126 2086 B1 F6 lda (bptr), y
|
||||||
|
127
|
||||||
|
128 2088 store:
|
||||||
|
129 2088 A4 F8 ldy cur_pos
|
||||||
|
130 208A 9D 00 D2 sta POKEY, x ; Store to output and buffer
|
||||||
|
131 208D 91 F6 sta (bptr), y
|
||||||
|
132
|
||||||
|
133 208F skip_chn:
|
||||||
|
134 ; Increment channel buffer pointer
|
||||||
|
135 208F E6 F7 inc bptr+1
|
||||||
|
136
|
||||||
|
137 2091 CA dex
|
||||||
|
138 2092 10 CE bpl chn_loop ; Next channel
|
||||||
|
139
|
||||||
|
140 2094 E6 F8 inc cur_pos
|
||||||
141
|
141
|
||||||
142 org $3000
|
142 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
143 3000 screen
|
143 ; Check for ending of song and jump to the next frame
|
||||||
144 3000-98F4> FF FE FF F0 + ins 'difficulties.bmp',+62
|
144 ;
|
||||||
145 3410 DL
|
145 2096 check_end_song
|
||||||
146 3410 70 70 70 70 70 70 + :13 .by SKIP8
|
146 2096 AD AA 20 C5 E3 D0 + cpw song_ptr song_end_ptr
|
||||||
147 341D 4F .by MODEF+LMS
|
147 20A2 90 03 20 03 20 scc:jsr init_song
|
||||||
148 341E 00 30 .wo screen
|
148 20A7 60 rts
|
||||||
149 3420 0F 0F 0F 0F 0F 0F + :25 .by MODEF
|
149 .endp
|
||||||
150 3439 41 .by JVB
|
150 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
151 343A 10 34 .wo DL
|
151 20A8 get_byte
|
||||||
152
|
152 20A8 AD FF FF lda song_ptr: $ffff ;song_data+1
|
||||||
153 343C start
|
153 20AB EE A9 20 D0 03 EE + inw song_ptr
|
||||||
154 343C A9 10 8D 30 02 A9 + mwa #DL dlptrs
|
154 20B3 60 rts
|
||||||
155 3446 A9 3E lda #@dmactl(standard|dma|players|missiles|lineX1) ; normal screen width, DL on, P/M on
|
155 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
156 3448 8D 2F 02 sta dmactls
|
156 /* start
|
||||||
157 344B A9 00 8D C6 02 mva #0 COLOR2
|
157 mwa #song_data song_start_ptr
|
||||||
158 3450 8D 1A D0 sta COLBAK
|
158 mwa #song_end song_end_ptr
|
||||||
159 3453 A9 0F 8D C5 02 mva #15 COLOR1
|
159 jsr init_song
|
||||||
160 3458 POKEY_INIT
|
160 @
|
||||||
|
161 lda:cmp:req 20
|
||||||
|
162 jsr player
|
||||||
|
163
|
||||||
|
164 lda $d01f ;consol
|
||||||
|
165 cmp #7
|
||||||
|
166 seq:jsr init_song
|
||||||
|
167
|
||||||
|
168 jmp @- */
|
||||||
|
168
|
||||||
|
169
|
||||||
|
170
|
||||||
|
171
|
||||||
|
172
|
||||||
|
173 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
174 20B4 .align $100
|
||||||
|
175 2100 buffers
|
||||||
|
176 = 2100 .ds 256 * 9
|
||||||
|
177
|
||||||
|
178 ;song_data
|
||||||
|
179 ; ins 'InGame.lzss'
|
||||||
|
180 ;song_end
|
||||||
|
181
|
||||||
|
182
|
||||||
|
183 ; run start
|
||||||
|
184
|
||||||
|
18 ;---------------------------------------------------
|
||||||
|
19 ; BASIC off
|
||||||
|
20 ORG $2c00
|
||||||
|
21 2C00 start1
|
||||||
|
22 2C00-2E61> A9 FF 8D 01 + mva #$ff portb
|
||||||
|
23 2C05 A9 B2 8D 30 02 A9 + mwa #DL_pre dlptrs
|
||||||
|
24 2C0F A9 21 lda #@dmactl(narrow|dma) ; narrow screen width, DL on
|
||||||
|
25 2C11 8D 2F 02 sta dmactls
|
||||||
|
26 2C14 A9 00 8D C6 02 mva #0 COLOR2
|
||||||
|
27 2C19 8D 1A D0 sta COLBAK
|
||||||
|
28 2C1C A9 0F 8D C5 02 mva #15 COLOR1
|
||||||
|
29 2C21 20 9A 2C jsr wait_for_releasing_keyz
|
||||||
|
30 2C24 20 82 2F jsr PlayMusic
|
||||||
|
31 2C27 leet_anim
|
||||||
|
32 ; test for going further
|
||||||
|
33 2C27 AD 1F D0 lda CONSOL
|
||||||
|
34 2C2A C9 07 cmp #7
|
||||||
|
35 2C2C D0 65 bne leet_end
|
||||||
|
36 ; check keyboard
|
||||||
|
37 2C2E AD 0F D2 lda SKSTAT
|
||||||
|
38 2C31 C9 F7 cmp #$f7 ; SHIFT
|
||||||
|
39 2C33 F0 5E beq leet_end
|
||||||
|
40 2C35 C9 FF cmp #$ff
|
||||||
|
41 2C37 D0 5A bne leet_end
|
||||||
|
42 2C39 AD 10 D0 lda TRIG0
|
||||||
|
43 2C3C F0 55 beq leet_end
|
||||||
|
44
|
||||||
|
45
|
||||||
|
46 2C3E A9 D2 85 80 A9 2C + mwa #pre_screen temp_w
|
||||||
|
47 2C46 A9 62 85 85 A9 2E + mwa #leet_screen temp_w3
|
||||||
|
48 2C4E A0 00 ldy #0
|
||||||
|
49 @
|
||||||
|
50 2C50 B1 80 lda (temp_w),y
|
||||||
|
51 2C52 F0 20 beq next_letter ; ignore zeroes
|
||||||
|
52 ;is the letter leetable?
|
||||||
|
53 2C54 C9 61 cmp #"a"
|
||||||
|
54 2C56 90 1C bcc next_letter
|
||||||
|
55 2C58 C9 7B cmp #"z"+1
|
||||||
|
56 2C5A B0 18 bcs next_letter
|
||||||
|
57 ;letter is leetable
|
||||||
|
58 2C5C F0 16 beq next_letter
|
||||||
|
59 2C5E 38 sec
|
||||||
|
60 2C5F E9 61 sbc #"a"
|
||||||
|
61 2C61 A8 tay ;save the letter
|
||||||
|
62 2C62 AD 0A D2 lda RANDOM
|
||||||
|
63 2C65 29 03 and #%00000011 ; 0-3
|
||||||
|
64 2C67 AA tax
|
||||||
|
65 2C68 BD 5A 2E lda leet_speeks_l,x
|
||||||
|
66 2C6B 85 83 sta temp_w2
|
||||||
|
67 2C6D BD 5E 2E lda leet_speeks_h,x
|
||||||
|
68 2C70 85 84 sta temp_w2+1
|
||||||
|
69 2C72 B1 83 lda (temp_w2),y
|
||||||
|
70 2C74 next_letter
|
||||||
|
71 2C74 A0 00 ldy #0
|
||||||
|
72 2C76 91 85 sta (temp_w3),y
|
||||||
|
73 2C78 E6 80 D0 02 E6 81 inw temp_w
|
||||||
|
74 2C7E E6 85 D0 02 E6 86 inw temp_w3
|
||||||
|
75 2C84 A5 81 C9 2D D0 04 + cpw temp_w #pre_screen_end
|
||||||
|
76 2C8E F0 97 beq leet_anim
|
||||||
|
77 2C90 4C 50 2C jmp @-
|
||||||
|
78
|
||||||
|
79 2C93 leet_end
|
||||||
|
80 2C93 20 9F 2F jsr StopMusic
|
||||||
|
81 2C96 20 9A 2C jsr wait_for_releasing_keyz
|
||||||
|
82 2C99 60 rts
|
||||||
|
83
|
||||||
|
84
|
||||||
|
85 2C9A .proc wait_for_releasing_keyz
|
||||||
|
86 2C9A AD 1F D0 @ lda CONSOL
|
||||||
|
87 2C9D C9 07 cmp #7
|
||||||
|
88 2C9F D0 F9 bne @-
|
||||||
|
89 ; check keyboard
|
||||||
|
90 2CA1 AD 0F D2 @ lda SKSTAT
|
||||||
|
91 2CA4 C9 F7 cmp #$f7 ; SHIFT
|
||||||
|
92 2CA6 F0 F9 beq @-
|
||||||
|
93 2CA8 C9 FF cmp #$ff
|
||||||
|
94 2CAA D0 F5 bne @-
|
||||||
|
95 2CAC AD 10 D0 @ lda TRIG0
|
||||||
|
96 2CAF F0 FB beq @-
|
||||||
|
97 2CB1 60 rts
|
||||||
|
98 .endp
|
||||||
|
99
|
||||||
|
100 2CB2 DL_pre
|
||||||
|
101 2CB2 70 70 70 70 70 70 + :8 .by SKIP8
|
||||||
|
102 2CBA 42 .by LMS+MODE2
|
||||||
|
103 2CBB 62 2E .wo leet_screen
|
||||||
|
104 2CBD 00 02 .by SKIP1, MODE2
|
||||||
|
105 2CBF 70 .by SKIP8
|
||||||
|
106 2CC0 00 02 .by SKIP1, MODE2
|
||||||
|
107 2CC2 70 .by SKIP8
|
||||||
|
108 2CC3 00 02 00 02 00 02 + :6 .by SKIP1, MODE2
|
||||||
|
109 2CCF 41 .by JVB
|
||||||
|
110 2CD0 B2 2C .wo DL_pre
|
||||||
|
111 2CD2 pre_screen
|
||||||
|
112 ; 01234567890123456789012345678901"
|
||||||
|
113 2CD2 74 68 69 73 00 6C + dta "this little game was created in "
|
||||||
|
114 2CF2 00 66 6F 75 72 00 + dta " four evenings before SV2K24SE "
|
||||||
|
115 2D12 73 6F 72 72 79 00 + dta "sorry for technical difficulties"
|
||||||
|
116 2D32 63 6F 64 65 1A 00 + dta "code: "
|
||||||
|
117 2D52 00 00 00 00 00 00 + dta " pecus & pirx "
|
||||||
|
118 2D72 73 6F 75 6E 64 1A + dta "sound: "
|
||||||
|
119 2D92 00 00 00 00 00 00 + dta " alex, jochen hippel "
|
||||||
|
120 2DB2 67 66 78 1A 00 00 + dta "gfx: "
|
||||||
|
121 2DD2 00 00 00 00 00 00 + dta " alphabet, inc. "
|
||||||
|
122 2DF2 pre_screen_end
|
||||||
|
123 2DF2 leet_speek1
|
||||||
|
124 2DF2 61 62 63 64 65 66 + dta "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
125 2E0C leet_speek2
|
||||||
|
126 2E0C 21 22 23 24 25 26 + dta "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
127 2E26 leet_speek3
|
||||||
|
128 2E26 14 18 3B 09 65 26 + dta "48[)eF9-|jk_mn0p@r57uvw*y2"
|
||||||
|
129 2E40 leet_speek4
|
||||||
|
130 2E40 3E 62 08 1E 5B 41 + dta "^b(>",$5b,$41,"gh1",$4c+$80,"k",$4b+$80,"M\",$54,$49+$80,"q",$51,"5",$57,"uvwxy/"
|
||||||
|
131
|
||||||
|
132 2E5A leet_speeks_l
|
||||||
|
133 2E5A F2 .by <leet_speek1
|
||||||
|
134 2E5B 0C .by <leet_speek2
|
||||||
|
135 2E5C 26 .by <leet_speek3
|
||||||
|
136 2E5D 40 .by <leet_speek4
|
||||||
|
137 2E5E leet_speeks_h
|
||||||
|
138 2E5E 2D .by >leet_speek1
|
||||||
|
139 2E5F 2E .by >leet_speek2
|
||||||
|
140 2E60 2E .by >leet_speek3
|
||||||
|
141 2E61 2E .by >leet_speek4
|
||||||
|
142 2E62 leet_screen
|
||||||
|
143 = 2E62 .ds 32*9
|
||||||
|
144 2F82 leet_screen_end
|
||||||
|
145 ;--------------------------------------------------
|
||||||
|
146 2F82 .proc PlayMusic
|
||||||
|
147 2F82-2FB1> A9 00 85 E0 + mwa #MUSIC_DATA song_start_ptr
|
||||||
|
148 2F8A A9 7F 85 E2 A9 35 + mwa #MUSIC_DATA_END song_end_ptr
|
||||||
|
149 2F92 20 03 20 jsr init_song
|
||||||
|
150 2F95 VMAIN VBLinterrupt,7 ; jsr SetVBL
|
||||||
|
Macro: VMAIN [Source: MACRO.ASM]
|
||||||
|
15 2F95 A0 A9 LDY # <VBLINTERRUPT
|
||||||
|
16 2F97 A2 2F LDX # >VBLINTERRUPT
|
||||||
|
17 2F99 A9 07 LDA #7
|
||||||
|
18 2F9B 20 5C E4 JSR SETVBV
|
||||||
|
Source: tech_diff.asm
|
||||||
|
151 2F9E 60 rts
|
||||||
|
152 .endp
|
||||||
|
153 2F9F .proc StopMusic
|
||||||
|
154 2F9F VMAIN XITVBV,7 ; jsr SetVBL
|
||||||
|
Macro: VMAIN [Source: MACRO.ASM]
|
||||||
|
15 2F9F A0 62 LDY # <XITVBV
|
||||||
|
16 2FA1 A2 E4 LDX # >XITVBV
|
||||||
|
17 2FA3 A9 07 LDA #7
|
||||||
|
18 2FA5 20 5C E4 JSR SETVBV
|
||||||
|
Source: tech_diff.asm
|
||||||
|
155 2FA8 60 rts
|
||||||
|
156 .endp
|
||||||
|
157 2FA9 .proc VBLinterrupt
|
||||||
|
158 2FA9 20 00 20 jsr PLAYER
|
||||||
|
159 2FAC 68 pla
|
||||||
|
160 2FAD A8 tay
|
||||||
|
161 2FAE 68 pla
|
||||||
|
162 2FAF AA tax
|
||||||
|
163 2FB0 68 pla
|
||||||
|
164 2FB1 40 rti
|
||||||
|
165 .endp
|
||||||
|
166 2FB2 .align $100
|
||||||
|
167 3000 MUSIC_DATA
|
||||||
|
168 3000-357E> 00 04 88 00 + ins '../music/Title.lzss' ; title music
|
||||||
|
169 357F MUSIC_DATA_END
|
||||||
|
170
|
||||||
|
171 02E2-02E3> 00 2C ini start1
|
||||||
|
172 ;---------------------------------------------------
|
||||||
|
173
|
||||||
|
174 org $3000
|
||||||
|
175 3000 screen
|
||||||
|
176 3000-98F4> FF FE FF F0 + ins 'difficulties.bmp',+62
|
||||||
|
177 3410 DL
|
||||||
|
178 3410 70 70 70 70 70 70 + :13 .by SKIP8
|
||||||
|
179 341D 4F .by MODEF+LMS
|
||||||
|
180 341E 00 30 .wo screen
|
||||||
|
181 3420 0F 0F 0F 0F 0F 0F + :25 .by MODEF
|
||||||
|
182 3439 41 .by JVB
|
||||||
|
183 343A 10 34 .wo DL
|
||||||
|
184
|
||||||
|
185 343C start
|
||||||
|
186 343C A9 10 8D 30 02 A9 + mwa #DL dlptrs
|
||||||
|
187 3446 A9 3E lda #@dmactl(standard|dma|players|missiles|lineX1) ; normal screen width, DL on, P/M on
|
||||||
|
188 3448 8D 2F 02 sta dmactls
|
||||||
|
189 344B A9 00 8D C6 02 mva #0 COLOR2
|
||||||
|
190 3450 8D 1A D0 sta COLBAK
|
||||||
|
191 3453 A9 0F 8D C5 02 mva #15 COLOR1
|
||||||
|
192 3458 POKEY_INIT
|
||||||
Macro: POKEY_INIT [Source: MACRO.ASM]
|
Macro: POKEY_INIT [Source: MACRO.ASM]
|
||||||
2 3458 A9 00 8D 08 D2 mva #0 AUDCTL
|
2 3458 A9 00 8D 08 D2 mva #0 AUDCTL
|
||||||
3 345D A9 03 8D 0F D2 mva #3 SKSTAT
|
3 345D A9 03 8D 0F D2 mva #3 SKSTAT
|
||||||
Source: tech_diff.asm
|
Source: tech_diff.asm
|
||||||
161 3462 pause 3
|
193 3462 pause 3
|
||||||
Macro: PAUSE [Source: MACRO.ASM]
|
Macro: PAUSE [Source: MACRO.ASM]
|
||||||
2 3462 A2 03 ldx #3
|
2 3462 A2 03 ldx #3
|
||||||
3 3464 ?PAUSELOOP
|
3 3464 ?PAUSELOOP
|
||||||
@@ -1097,157 +1327,157 @@ Source: tech_diff.asm
|
|||||||
5 3477 CA dex
|
5 3477 CA dex
|
||||||
6 3478 D0 EA bne ?PAUSELOOP
|
6 3478 D0 EA bne ?PAUSELOOP
|
||||||
Source: tech_diff.asm
|
Source: tech_diff.asm
|
||||||
162 347A A9 00 lda #0
|
194 347A A9 00 lda #0
|
||||||
163 347C 8D 0E D4 sta $d40e ; NMI OFF
|
195 347C 8D 0E D4 sta $d40e ; NMI OFF
|
||||||
164 347F 78 sei ; IRQ OFF
|
196 347F 78 sei ; IRQ OFF
|
||||||
165
|
197
|
||||||
166
|
198
|
||||||
167 ;-----playa-da-sampla-----
|
199 ;-----playa-da-sampla-----
|
||||||
168 3480 A2 00 ldx #0
|
200 3480 A2 00 ldx #0
|
||||||
169
|
201
|
||||||
170 3482 please_wait_loop
|
202 3482 please_wait_loop
|
||||||
171 3482 BD C9 98 lda samples_l,x
|
203 3482 BD C9 98 lda samples_l,x
|
||||||
172 3485 8D 99 34 sta sample_load
|
204 3485 8D 99 34 sta sample_load
|
||||||
173 3488 BD D4 98 lda samples_h,x
|
205 3488 BD D4 98 lda samples_h,x
|
||||||
174 348B 8D 9A 34 sta sample_load+1
|
206 348B 8D 9A 34 sta sample_load+1
|
||||||
175
|
207
|
||||||
176 348E BD DF 98 lda samples_end_l,x
|
208 348E BD DF 98 lda samples_end_l,x
|
||||||
177 3491 85 80 sta temp_w
|
209 3491 85 80 sta temp_w
|
||||||
178 3493 BD EA 98 lda samples_end_h,x
|
210 3493 BD EA 98 lda samples_end_h,x
|
||||||
179 3496 85 81 sta temp_w+1
|
211 3496 85 81 sta temp_w+1
|
||||||
180
|
212
|
||||||
181 @
|
213 @
|
||||||
182 3498 AD FF FF lda sample_load: $ffff
|
214 3498 AD FF FF lda sample_load: $ffff
|
||||||
183 349B A8 tay
|
215 349B A8 tay
|
||||||
184 349C 38 sec
|
216 349C 38 sec
|
||||||
185 349D 6A 6A 6A 6A :4 ror
|
217 349D 6A 6A 6A 6A :4 ror
|
||||||
186 34A1 8D 01 D2 sta AUDC1
|
218 34A1 8D 01 D2 sta AUDC1
|
||||||
187 34A4 8D 03 D2 sta AUDC2
|
219 34A4 8D 03 D2 sta AUDC2
|
||||||
188 34A7 8D 05 D2 sta AUDC3
|
220 34A7 8D 05 D2 sta AUDC3
|
||||||
189 ;sta AUDC4
|
221 ;sta AUDC4
|
||||||
190 34AA 8D 0A D4 sta wsync ;------------
|
222 34AA 8D 0A D4 sta wsync ;------------
|
||||||
191 ; test for going further
|
223 ; test for going further
|
||||||
192 34AD AD 1F D0 lda CONSOL
|
224 34AD AD 1F D0 lda CONSOL
|
||||||
193 34B0 C9 07 cmp #7
|
225 34B0 C9 07 cmp #7
|
||||||
194 34B2 D0 50 bne exit_tech_diff
|
226 34B2 D0 50 bne exit_tech_diff
|
||||||
195 ; check keyboard
|
227 ; check keyboard
|
||||||
196 34B4 AD 0F D2 lda SKSTAT
|
228 34B4 AD 0F D2 lda SKSTAT
|
||||||
197 34B7 C9 F7 cmp #$f7 ; SHIFT
|
229 34B7 C9 F7 cmp #$f7 ; SHIFT
|
||||||
198 34B9 F0 49 beq exit_tech_diff
|
230 34B9 F0 49 beq exit_tech_diff
|
||||||
199 34BB C9 FF cmp #$ff
|
231 34BB C9 FF cmp #$ff
|
||||||
200 34BD D0 45 bne exit_tech_diff
|
232 34BD D0 45 bne exit_tech_diff
|
||||||
201 34BF 8D 0A D4 sta wsync ;------------
|
233 34BF 8D 0A D4 sta wsync ;------------
|
||||||
202 34C2 AD 10 D0 lda TRIG0
|
234 34C2 AD 10 D0 lda TRIG0
|
||||||
203 34C5 F0 3D beq exit_tech_diff
|
235 34C5 F0 3D beq exit_tech_diff
|
||||||
204 34C7 8D 0A D4 sta wsync ;------------
|
236 34C7 8D 0A D4 sta wsync ;------------
|
||||||
205
|
237
|
||||||
206 34CA 98 tya
|
238 34CA 98 tya
|
||||||
207 34CB 29 0F and #$0F
|
239 34CB 29 0F and #$0F
|
||||||
208 34CD 09 10 ora #$10
|
240 34CD 09 10 ora #$10
|
||||||
209 34CF 8D 01 D2 sta AUDC1
|
241 34CF 8D 01 D2 sta AUDC1
|
||||||
210 34D2 8D 03 D2 sta AUDC2
|
242 34D2 8D 03 D2 sta AUDC2
|
||||||
211 34D5 8D 05 D2 sta AUDC3
|
243 34D5 8D 05 D2 sta AUDC3
|
||||||
212 ;sta AUDC4
|
244 ;sta AUDC4
|
||||||
213
|
245
|
||||||
214
|
246
|
||||||
215 34D8 EE 99 34 D0 03 EE + inw sample_load
|
247 34D8 EE 99 34 D0 03 EE + inw sample_load
|
||||||
216 34E0 8D 0A D4 sta wsync
|
248 34E0 8D 0A D4 sta wsync
|
||||||
217 34E3 AD 9A 34 C5 81 D0 + cpw sample_load temp_w
|
249 34E3 AD 9A 34 C5 81 D0 + cpw sample_load temp_w
|
||||||
218 34EF 8D 0A D4 sta wsync
|
250 34EF 8D 0A D4 sta wsync
|
||||||
219 34F2 F0 06 beq @+
|
251 34F2 F0 06 beq @+
|
||||||
220 34F4 8D 0A D4 sta wsync
|
252 34F4 8D 0A D4 sta wsync
|
||||||
221 34F7 4C 98 34 jmp @-
|
253 34F7 4C 98 34 jmp @-
|
||||||
222 @
|
254 @
|
||||||
223 34FA E8 inx
|
255 34FA E8 inx
|
||||||
224 34FB E0 0B cpx #11
|
256 34FB E0 0B cpx #11
|
||||||
225 34FD D0 02 A2 01 sne:ldx #1
|
257 34FD D0 02 A2 01 sne:ldx #1
|
||||||
226 3501 4C 82 34 jmp please_wait_loop
|
258 3501 4C 82 34 jmp please_wait_loop
|
||||||
227
|
259
|
||||||
228 3504 exit_tech_diff
|
260 3504 exit_tech_diff
|
||||||
229 ; wait for releasing keyz
|
261 ; wait for releasing keyz
|
||||||
230 3504 AD 1F D0 @ lda CONSOL
|
262 3504 AD 1F D0 @ lda CONSOL
|
||||||
231 3507 C9 07 cmp #7
|
263 3507 C9 07 cmp #7
|
||||||
232 3509 D0 F9 bne @-
|
264 3509 D0 F9 bne @-
|
||||||
233 ; check keyboard
|
265 ; check keyboard
|
||||||
234 350B AD 0F D2 @ lda SKSTAT
|
266 350B AD 0F D2 @ lda SKSTAT
|
||||||
235 350E C9 F7 cmp #$f7 ; SHIFT
|
267 350E C9 F7 cmp #$f7 ; SHIFT
|
||||||
236 3510 F0 F9 beq @-
|
268 3510 F0 F9 beq @-
|
||||||
237 3512 C9 FF cmp #$ff
|
269 3512 C9 FF cmp #$ff
|
||||||
238 3514 D0 F5 bne @-
|
270 3514 D0 F5 bne @-
|
||||||
239 3516 AD 10 D0 @ lda TRIG0
|
271 3516 AD 10 D0 @ lda TRIG0
|
||||||
240 3519 F0 FB beq @-
|
272 3519 F0 FB beq @-
|
||||||
241
|
273
|
||||||
242 ;
|
274 ;
|
||||||
243 351B A9 40 lda #$40
|
275 351B A9 40 lda #$40
|
||||||
244 351D 8D 0E D4 sta $d40e ; NMI On
|
276 351D 8D 0E D4 sta $d40e ; NMI On
|
||||||
245 3520 58 cli ; IRQ on
|
277 3520 58 cli ; IRQ on
|
||||||
246 3521 A9 00 8D 2F 02 mva #0 DMACTLS
|
278 3521 A9 00 8D 2F 02 mva #0 DMACTLS
|
||||||
247 3526 8D 00 D4 sta dmactl
|
279 3526 8D 00 D4 sta dmactl
|
||||||
248 3529 60 rts
|
280 3529 60 rts
|
||||||
249
|
281
|
||||||
250 352A sample1
|
282 352A sample1
|
||||||
251 352A 57 77 77 77 77 77 + ins 'wait1.wav.bin'
|
283 352A 57 77 77 77 77 77 + ins 'wait1.wav.bin'
|
||||||
252 4896 sample_end1
|
284 4896 sample_end1
|
||||||
253 4896 sample2
|
285 4896 sample2
|
||||||
254 4896 43 33 33 33 33 33 + ins 'wait2.wav.bin'
|
286 4896 43 33 33 33 33 33 + ins 'wait2.wav.bin'
|
||||||
255 6B7B sample_end2
|
287 6B7B sample_end2
|
||||||
256 6B7B sample3
|
288 6B7B sample3
|
||||||
257 6B7B 32 22 22 22 22 22 + ins 'wait3.wav.bin'
|
289 6B7B 32 22 22 22 22 22 + ins 'wait3.wav.bin'
|
||||||
258 6E15 sample_end3
|
290 6E15 sample_end3
|
||||||
259 6E15 sample4
|
291 6E15 sample4
|
||||||
260 6E15 56 66 66 66 66 66 + ins 'wait4.wav.bin'
|
292 6E15 56 66 66 66 66 66 + ins 'wait4.wav.bin'
|
||||||
261 70AF sample_end4
|
293 70AF sample_end4
|
||||||
262 70AF sample5
|
294 70AF sample5
|
||||||
263 70AF 57 67 67 67 67 67 + ins 'wait5.wav.bin'
|
295 70AF 57 67 67 67 67 67 + ins 'wait5.wav.bin'
|
||||||
264 98C9 sample_end5
|
296 98C9 sample_end5
|
||||||
265
|
297
|
||||||
266 98C9 samples_l
|
298 98C9 samples_l
|
||||||
267 98C9 2A .by <sample1
|
299 98C9 2A .by <sample1
|
||||||
268 98CA 96 .by <sample2
|
300 98CA 96 .by <sample2
|
||||||
269 98CB 7B .by <sample3
|
301 98CB 7B .by <sample3
|
||||||
270 98CC 96 .by <sample2
|
302 98CC 96 .by <sample2
|
||||||
271 98CD 15 .by <sample4
|
303 98CD 15 .by <sample4
|
||||||
272 98CE 96 .by <sample2
|
304 98CE 96 .by <sample2
|
||||||
273 98CF AF .by <sample5
|
305 98CF AF .by <sample5
|
||||||
274 98D0 96 .by <sample2
|
306 98D0 96 .by <sample2
|
||||||
275 98D1 7B .by <sample3
|
307 98D1 7B .by <sample3
|
||||||
276 98D2 96 .by <sample2
|
308 98D2 96 .by <sample2
|
||||||
277 98D3 15 .by <sample4
|
309 98D3 15 .by <sample4
|
||||||
278 98D4 samples_h
|
310 98D4 samples_h
|
||||||
279 98D4 35 .by >sample1
|
311 98D4 35 .by >sample1
|
||||||
280 98D5 48 .by >sample2
|
312 98D5 48 .by >sample2
|
||||||
281 98D6 6B .by >sample3
|
313 98D6 6B .by >sample3
|
||||||
282 98D7 48 .by >sample2
|
314 98D7 48 .by >sample2
|
||||||
283 98D8 6E .by >sample4
|
315 98D8 6E .by >sample4
|
||||||
284 98D9 48 .by >sample2
|
316 98D9 48 .by >sample2
|
||||||
285 98DA 70 .by >sample5
|
317 98DA 70 .by >sample5
|
||||||
286 98DB 48 .by >sample2
|
318 98DB 48 .by >sample2
|
||||||
287 98DC 6B .by >sample3
|
319 98DC 6B .by >sample3
|
||||||
288 98DD 48 .by >sample2
|
320 98DD 48 .by >sample2
|
||||||
289 98DE 6E .by >sample4
|
321 98DE 6E .by >sample4
|
||||||
290 98DF samples_end_l
|
322 98DF samples_end_l
|
||||||
291 98DF 96 .by <sample_end1
|
323 98DF 96 .by <sample_end1
|
||||||
292 98E0 7B .by <sample_end2
|
324 98E0 7B .by <sample_end2
|
||||||
293 98E1 15 .by <sample_end3
|
325 98E1 15 .by <sample_end3
|
||||||
294 98E2 7B .by <sample_end2
|
326 98E2 7B .by <sample_end2
|
||||||
295 98E3 AF .by <sample_end4
|
327 98E3 AF .by <sample_end4
|
||||||
296 98E4 7B .by <sample_end2
|
328 98E4 7B .by <sample_end2
|
||||||
297 98E5 C9 .by <sample_end5
|
329 98E5 C9 .by <sample_end5
|
||||||
298 98E6 7B .by <sample_end2
|
330 98E6 7B .by <sample_end2
|
||||||
299 98E7 15 .by <sample_end3
|
331 98E7 15 .by <sample_end3
|
||||||
300 98E8 7B .by <sample_end2
|
332 98E8 7B .by <sample_end2
|
||||||
301 98E9 AF .by <sample_end4
|
333 98E9 AF .by <sample_end4
|
||||||
302 98EA samples_end_h
|
334 98EA samples_end_h
|
||||||
303 98EA 48 .by >sample_end1
|
335 98EA 48 .by >sample_end1
|
||||||
304 98EB 6B .by >sample_end2
|
336 98EB 6B .by >sample_end2
|
||||||
305 98EC 6E .by >sample_end3
|
337 98EC 6E .by >sample_end3
|
||||||
306 98ED 6B .by >sample_end2
|
338 98ED 6B .by >sample_end2
|
||||||
307 98EE 70 .by >sample_end4
|
339 98EE 70 .by >sample_end4
|
||||||
308 98EF 6B .by >sample_end2
|
340 98EF 6B .by >sample_end2
|
||||||
309 98F0 98 .by >sample_end5
|
341 98F0 98 .by >sample_end5
|
||||||
310 98F1 6B .by >sample_end2
|
342 98F1 6B .by >sample_end2
|
||||||
311 98F2 6E .by >sample_end3
|
343 98F2 6E .by >sample_end3
|
||||||
312 98F3 6B .by >sample_end2
|
344 98F3 6B .by >sample_end2
|
||||||
313 98F4 70 .by >sample_end4
|
345 98F4 70 .by >sample_end4
|
||||||
314 98F5 finito
|
346 98F5 finito
|
||||||
315 02E2-02E3> 3C 34 ini start
|
347 02E2-02E3> 3C 34 ini start
|
||||||
|
|||||||
Binary file not shown.
+9
-9
@@ -34,19 +34,18 @@ bit_data .ds 1
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
POKEY = $D200
|
;POKEY = $D200
|
||||||
|
|
||||||
org $2000
|
org $2000
|
||||||
|
|
||||||
|
|
||||||
player
|
;player
|
||||||
jmp play_frame
|
jmp play_frame
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; Song Initialization - this runs in the first tick:
|
; Song Initialization - this runs in the first tick:
|
||||||
;
|
;
|
||||||
.proc init_song
|
.proc init_song
|
||||||
|
|
||||||
mva #>(buffers+255) cbuf+1
|
|
||||||
;clear buffers
|
;clear buffers
|
||||||
lda #0
|
lda #0
|
||||||
tax
|
tax
|
||||||
@@ -60,6 +59,7 @@ player
|
|||||||
; here initializes song pointer:
|
; here initializes song pointer:
|
||||||
adw song_start_ptr #1 song_ptr
|
adw song_start_ptr #1 song_ptr
|
||||||
|
|
||||||
|
mva #>(buffers+255) cbuf+2
|
||||||
; Init all channels:
|
; Init all channels:
|
||||||
ldx #8
|
ldx #8
|
||||||
ldy #0
|
ldy #0
|
||||||
@@ -153,7 +153,7 @@ get_byte
|
|||||||
inw song_ptr
|
inw song_ptr
|
||||||
rts
|
rts
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
start
|
/* start
|
||||||
mwa #song_data song_start_ptr
|
mwa #song_data song_start_ptr
|
||||||
mwa #song_end song_end_ptr
|
mwa #song_end song_end_ptr
|
||||||
jsr init_song
|
jsr init_song
|
||||||
@@ -165,7 +165,7 @@ start
|
|||||||
cmp #7
|
cmp #7
|
||||||
seq:jsr init_song
|
seq:jsr init_song
|
||||||
|
|
||||||
jmp @-
|
jmp @- */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -175,10 +175,10 @@ start
|
|||||||
buffers
|
buffers
|
||||||
.ds 256 * 9
|
.ds 256 * 9
|
||||||
|
|
||||||
song_data
|
;song_data
|
||||||
ins 'InGame.lzss'
|
; ins 'InGame.lzss'
|
||||||
song_end
|
;song_end
|
||||||
|
|
||||||
|
|
||||||
run start
|
; run start
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user