-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprg3.asm
122 lines (97 loc) · 2.71 KB
/
prg3.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
; [ *************************************** PRG 3 ($E000 - $FFFF) *************************************** ]
Reset:
lda #%01000110 ; set prg $C000 - $DFFF to bank 1
sta $8000
lda #1
sta $8001
lda #%01000111 ; set prg $A000 - $BFFF to bank 0
sta $8000
lda #0
sta $8001
lda #%10000000 ; cart ram, enable, allow writes
sta $a001
jmp Main
; ****************************************************
; state structures
; ****************************************************
states:
.dw s0, s1, s2, s3, s4, s5, s6
s0:
.dw bg_palettes000 ; background palettes
.dw bg_palettes000 ; sprite palettes
.dw SPLASH_TEXT_BUF ; nametable
.db 0, 2, 4, 5, 6, 7 ; char bank
.db 0, 1 ; prg bank
.dw S0InitHandler ; init
.dw h_Null ; proc
.dw h_Null ; update
.dw actions0 ; actions
actions0: .dw a_sleep, a_cs
s1:
.dw bg_palettes000 ; background palettes
.dw bg_palettes000 ; sprite palettes
.dw SPLASH_TEXT_BUF ; nametable
.db 0, 2, 4, 5, 6, 7 ; char bank
.db 0, 1 ; prg bank
.dw S1InitHandler ; init
.dw h_Null ; proc
.dw h_Null ; update
.dw actions1 ; actions
actions1: .dw a_sleep, a_cs
s2:
.dw bg_palettes000 ; background palettes
.dw bg_palettes000 ; sprite palettes
.dw nametable000 ; nametable
.db 0, 2, 4, 5, 6, 7 ; char bank
.db 0, 1 ; prg bank
.dw S2InitHandler ; init
.dw h_Null ; proc
.dw h_Null ; update
.dw actions2 ; actions
actions2: .dw a_sx, a_2_menu, a_cs, a_2_pass
s3:
s4:
.dw bg_palettes001 ; background palettes
.dw bg_palettes001 ; sprite palettes
.dw SPLASH_TEXT_BUF ; nametable
.db 8, 10, 12, 13, 14, 15 ; chr bank
.db 0, 1 ; prg bank
.dw S4InitHandler ; init
.dw h_Null ; proc
.dw h_Null ; update
.dw actions4 ; actions
actions4: .dw a_sleep, a_text, a_cs
s5:
.dw bg_palettes000 ; background palettes
.dw bg_palettes000 ; sprite palettes
.dw SPLASH_TEXT_BUF ; nametable
.db 0, 2, 4, 5, 6, 7 ; char bank
.db 0, 1 ; prg bank
.dw S5InitHandler ; init
.dw h_Null ; proc
.dw h_Null ; update
.dw actions5 ; actions
actions5: .dw a_sleep, a_cs
s6:
.dw bg_palettes001
.dw sp_palettes001
.dw nametable001
.db 8, 10, 12, 13, 14, 15 ; chr bank
.db 0, 1 ; prg bank
.dw S6InitHandler ; init
.dw h_Null ; proc
.dw h_Null ; update
.dw actions6
actions6: .dw a_6_openspace_i, a_text
; ****************************************************
; passwords
; ****************************************************
pass001:
.db $ed, $de, $ec, $ed, $d1, $d2, $d3, $d4, $00 ; "test1234"
; ****************************************************
; int vector
; ****************************************************
.org $FFFA
.dw NMI ; NMI
.dw Reset ; reset
.dw 0 ; IRQ