annotate menu.s68 @ 987:1f09994e92c5

Initial stab at implementing address error exceptions. Need to fill in the value of IR, undefined bits of last stack frame word and properly deal with address errors that occur during exception processing.
author Michael Pavone <pavone@retrodev.com>
date Tue, 26 Apr 2016 23:13:37 -0700
parents fbd783ccbadb
children 4360cb5960c8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 dc.l $0, start
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 ;$10
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 ;$20
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 ;$30
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 ;$40
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 ;$50
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 ;$60
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 ;$70
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 dc.l int_4
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 dc.l int_6
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 ;$80
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 ;$90
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 ;$A0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 ;$B0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 ;$C0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 ;$D0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 ;$E0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 ;$F0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 dc.l empty_handler
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 dc.l empty_handler
790
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
79 dc.b "SEGA GENESIS "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
80 dc.b "(c) 2015.JULY "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
81 dc.b "Menu "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
82 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
83 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
84 dc.b "Menu "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
85 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
86 dc.b " "
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
87 dc.b "MP BlstMenu-00", 0, 0
790
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
88 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
89 dc.l $0, rom_end-1, $FF0000, $FFFFFF
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
90 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
91 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
92 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
93 dc.b " "
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
94 dc.b "JUE "
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
95
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
96 ;register addresses
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
97 VDP_DATA equ $C00000
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
98 VDP_CTRL equ $C00004
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
99 VDP_HV equ $C00008
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
100 Z80_RAM equ $A00000
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
101 IO_AREA equ $A10000
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
102 PAD1_DATA equ (IO_AREA + 3)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
103 PAD2_DATA equ (IO_AREA + 5)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
104 EXT_DATA equ (IO_AREA + 7)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
105 PAD1_CTRL equ (IO_AREA + 9)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
106 PAD2_CTRL equ (IO_AREA + 11)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
107 EXT_CTRL equ (IO_AREA + 13)
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
108
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
109 MODE_1 equ 0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
110 MODE_2 equ 1
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
111 SCROLL_A equ 2
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
112 WINDOW equ 3
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
113 SCROLL_B equ 4
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
114 SAT equ 5
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
115 BG_COLOR equ 7
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
116 HINT equ $A
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
117 MODE_3 equ $B
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
118 MODE_4 equ $C
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
119 HSCROLL equ $D
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
120 AUTOINC equ $F
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
121 SCROLL EQU $10
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
122 WINDOW_H equ $11
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
123 WINDOW_V equ $12
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
124 DMALEN_L equ $13
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
125 DMALEN_H equ $14
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
126 DMASRC_L equ $15
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
127 DMASRC_M equ $16
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
128 DMASRC_H equ $17
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
129
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
130 VDP_VRAM_WRITE equ $40000000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
131 VDP_CRAM_WRITE equ $C0000000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
132 VDP_VSRAM_WRITE equ $40000010
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
133 VDP_DMA_FLAG equ $80
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
134
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
135 vdpregset macro
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
136 move.w #(((\1) << 8) | $8000 | (\2)), (a1)
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
137 endm
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
138
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
139 vdpreg macro
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
140 dc.w (((\1) << 8) | $8000 | (\2))
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
141 endm
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
142
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
143 ;Writes a normal VDP command to the control port
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
144 ;\1 - VDP address
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
145 ;\2 - Access type
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
146 vdpaccess macro
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
147 ifeq NARG-2
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
148 move.l #((\2) | (\1) << 16 & $3FFF0000 | (\1) >> 14 & 3), (a1)
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
149 else
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
150 move.l #((\2) | (\1) << 16 & $3FFF0000 | (\1) >> 14 & 3), \3
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
151 endif
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
152 endm
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
153
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
154 ;Writes a DMA command to the control port
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
155 ;\1 - Destination address
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
156 ;\2 - Destination type
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
157 startdma macro
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
158 move.l #(\2 | VDP_DMA_FLAG | (\1 << 16) & $3FFF0000 | (\1 >> 14) & 3), (a1)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
159 endm
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
160
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
161 DMA_SRC_68K equ 0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
162 DMA_SRC_VRAM equ $C0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
163 DMA_SRC_FILL equ $80
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
164
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
165 dmasrc macro
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
166 move.l #($95009600 + (\1) << 15 & $FF0000 + (\1) >> 9 & $FF), (a1)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
167 move.w #($9700 + (\1) >> 17 & $7F | (\2)), (a1)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
168 endm
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
169
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
170 dir_buffer equ $100000
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
171 menu_port equ $180000
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
172
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
173 MAX_DISPLAY equ 24
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
174
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
175 rsset $FFFF8000
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
176 x_pos rs.w 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
177 base_cmd rs.l 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
178 sprite_list rs.l 160
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
179 page_index rs.l MAX_DISPLAY+1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
180 page_stack rs.l 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
181 page_pointers rs.l 1024
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
182 mouse_sprite rs.l 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
183 menu_functions rs.l 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
184 mouse_x rs.w 1
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
185 selection_top rs.w 1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
186 selection_bot rs.w 1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
187 selection_mask rs.w 1
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
188 num_sprites rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
189 last_pad1 rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
190 last_pad2 rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
191 selected rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
192 more_pages rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
193 mouse_buf rs.b 3
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
194 mouse_shown rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
195 last_mbuttons rs.b 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
196 num_menu rs.b 1
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
197 num_slots rs.b 1
961
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
198 port_off rs.b 1
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
199
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
200
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
201 int_6:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
202 dmasrc sprite_list, DMA_SRC_68K
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
203 ;set DMA length
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
204 move.l #$94009300, d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
205 moveq #0, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
206 move.b num_sprites.w, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
207 add.w d1, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
208 add.w d1, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
209 move.b d1, d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
210 swap d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
211 lsr.w #8, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
212 move.b d1, d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
213 move.l d0, (a1)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
214 startdma $C000, VDP_VRAM_WRITE
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
215
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
216 ;read gamepad/mouse in port 1
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
217 lea PAD1_DATA, a2
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
218
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
219 bsr io_read
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
220
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
221 cmp.b #3, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
222 beq .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
223
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
224 move.b last_pad1.w, d1
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
225 eor.b d0, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
226 and.b d0, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
227 move.b d0, last_pad1.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
228
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
229 bsr handle_pad_buttons
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
230
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
231 bra pad2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
232 .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
233 bsr handle_mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
234
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
235 pad2:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
236 ;read gamepad/mouse in port 2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
237 lea PAD2_DATA, a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
238
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
239 bsr io_read
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
240
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
241 cmp.b #3, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
242 beq .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
243
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
244 move.b last_pad2.w, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
245 eor.b d0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
246 and.b d0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
247 move.b d0, last_pad2.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
248
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
249 bsr handle_pad_buttons
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
250 rte
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
251 .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
252 bsr handle_mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
253 rte
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
254
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
255
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
256 ;d0 = SACBRLUD
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
257 ;d1 = newly pressed buttons
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
258 handle_pad_buttons:
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
259 tst.b num_menu.w
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
260 bne handle_buttons_menu
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
261 tst.b num_slots.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
262 bne handle_buttons_save
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
263 moveq #16, d2
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
264
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
265
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
266 btst #3, d1
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
267 bne right
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
268 btst #2, d1
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
269 bne left
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
270 buttons_no_leftright
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
271 btst #1, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
272 bne down
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
273 btst #0, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
274 bne up
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
275 btst #7, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
276 bne select_entry
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
277 btst #5, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
278 bne select_entry
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
279 handle_done:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
280 rts
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
281 handle_buttons_menu
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
282 moveq #48, d2
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
283 bra buttons_no_leftright
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
284 handle_buttons_save
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
285 moveq #32, d2
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
286 bra buttons_no_leftright
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
287
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
288 down:
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
289
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
290 ;check if we are already at the bottom of the page
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
291 moveq #1, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
292 add.b (selected).w, d0
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
293 tst.b num_menu.w
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
294 bne .menu
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
295 tst.b num_slots.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
296 bne .slots
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
297 move.w d0, d1
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
298 add.w d1, d1
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
299 add.w d1, d1
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
300 lea page_index.w, a2
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
301 tst.l (0, a2, d1.w)
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
302 beq handle_done
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
303 .do_move
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
304 move.b d0, (selected).w
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
305
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
306 add.w d2, (sprite_list).w
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
307 add.w d2, (sprite_list+8).w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
308 rts
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
309 .menu:
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
310 cmp.b num_menu.w, d0
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
311 beq handle_done
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
312 bra .do_move
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
313 .slots:
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
314 cmp.b num_slots.w, d0
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
315 beq handle_done
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
316 bra .do_move
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
317
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
318 up:
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
319 ;check if we are already at the top of the page
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
320 move.b (selected).w, d0
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
321 beq handle_done
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
322 subq #1, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
323 move.b d0, (selected).w
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
324
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
325 sub.w d2, (sprite_list).w
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
326 sub.w d2, (sprite_list+8).w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
327 rts
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
328
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
329 right:
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
330 ;check that we have another page to go to
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
331 tst.b more_pages.w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
332 beq handle_done
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
333 ;switch to the next page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
334 move.l page_stack.w, a6
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
335 move.l (-4, a6), a6
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
336
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
337 addq #6, a7
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
338 bra render_page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
339
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
340 left:
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
341 move.l page_stack.w, a5
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
342 ;check if we're already on the first page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
343 cmp.l #(page_pointers+8), a5
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
344 beq handle_done
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
345 ;switch to previous page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
346 lea (-12, a5), a5
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
347 move.l (a5)+, a6
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
348 move.l a5, page_stack.w
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
349
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
350 addq #6, a7
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
351 bra render_page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
352
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
353 select_entry:
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
354 moveq #0, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
355 move.b (selected).w, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
356 add.w d0, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
357 add.w d0, d0
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
358 tst.b num_menu.w
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
359 bne .select_menu_button
961
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
360 tst.b num_slots.w
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
361 bne .select_save_slot
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
362 lea page_index.w, a2
869
4298db923cf8 Fix detection of directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 868
diff changeset
363 move.l (0, a2, d0.w), a2
4298db923cf8 Fix detection of directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 868
diff changeset
364 tst.b (-1, a2)
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
365 bne enter_dir
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
366 ;regular file
872
7022ba865cfd Initial work for allowing loading a ROM from menu
Michael Pavone <pavone@retrodev.com>
parents: 871
diff changeset
367 lea menu_port+8, a3
7022ba865cfd Initial work for allowing loading a ROM from menu
Michael Pavone <pavone@retrodev.com>
parents: 871
diff changeset
368 move.l a2, (a3)
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
369
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
370 addq #6, a7
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
371 bra show_pause_menu
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
372 .select_menu_button:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
373 movea.l menu_functions.w, a2
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
374 move.l (0, a2, d0.w), a2
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
375 addq #6, a7
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
376 jmp (a2)
961
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
377 .select_save_slot:
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
378 lea menu_port, a3
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
379 moveq #0, d0
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
380 move.b port_off.w, d0
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
381 add.w d0, a3
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
382 move.b selected.w, d0
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
383 move.l d0, (a3)
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
384 addq #6, a7
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
385 jmp show_pause_menu
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
386
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
387 enter_dir:
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
388 lea menu_port+4, a3
869
4298db923cf8 Fix detection of directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 868
diff changeset
389 move.l a2, (a3)
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
390 .wait_complete
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
391 tst.w (a3)
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
392 bne .wait_complete
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
393 addq #6, a7
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
394 bra menu_start
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
395
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
396 handle_mouse:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
397 move.b last_mbuttons.w, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
398 eor.b d3, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
399 and.b d3, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
400 move.b d3, last_mbuttons.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
401
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
402 move.b d0, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
403 or.b d1, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
404 beq .no_mouse_move
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
405
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
406
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
407 tst.b mouse_shown.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
408 bne .skip_show_check
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
409
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
410 moveq #0, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
411 move.b num_sprites.w, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
412 move.w d2, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
413 lsl.w #3, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
414 lea sprite_list.w, a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
415 move.b d2, (-5, a2, d4.w)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
416 lea (0, a2, d4.w), a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
417 move.l a2, mouse_sprite.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
418 move.l #$01000500, (a2)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
419 move.w #$8083, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
420 move.w #$100, mouse_x.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
421 addq #1, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
422 move.b d2, num_sprites.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
423
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
424 move.b #1, mouse_shown.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
425
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
426 .skip_show_check
910
c030e4af32b7 Mouse X and Y are 9-bit 2's complement not 8-bit magnitude + sign bit like I thought. Fixed mouse Y direction.
Michael Pavone <pavone@retrodev.com>
parents: 909
diff changeset
427 neg.w d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
428 move.l mouse_sprite.w, a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
429 add.w d1, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
430 add.w d0, mouse_x.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
431 move.w mouse_x.w, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
432 asr.w #1, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
433 move.w d0, (6, a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
434 move.w (a2), d1
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
435 cmp.w selection_top.w, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
436 blo .done
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
437 cmp.w selection_bot.w, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
438 bhi .done
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
439 tst.b num_menu.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
440 bne .handle_menu
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
441 tst.b num_slots.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
442 bne .handle_slots
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
443 and.w #$FFF0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
444 subq #8, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
445 move.w d1, (sprite_list).w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
446 move.w d1, (sprite_list+8).w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
447
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
448 sub.w #264, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
449 lsr.w #4, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
450 move.b d1, selected.w
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
451 bra .no_mouse_move
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
452 .handle_menu
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
453 ;TODO: FIXME
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
454 and.w #$FFF0, d1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
455 moveq #0, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
456 move.w d1, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
457 sub.w selection_top.w, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
458 divu.w #48, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
459 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
460 tst.w d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
461 beq .no_adjust
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
462
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
463 cmp.w #16, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
464 bne .round_up
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
465 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
466 sub.w #16, d1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
467 bra .set_cursor_pos
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
468
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
469 .round_up
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
470 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
471 addq #1, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
472 add.w #16, d1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
473 bra .set_cursor_pos
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
474
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
475 .no_adjust
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
476 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
477 .set_cursor_pos
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
478 move.w d1, (sprite_list).w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
479 move.w d1, (sprite_list+8).w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
480
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
481 move.b d0, selected.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
482
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
483 bra .no_mouse_move
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
484 .handle_slots
973
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
485 and.w #$FFE0, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
486 subq #8, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
487 move.w d1, (sprite_list).w
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
488 move.w d1, (sprite_list+8).w
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
489
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
490 sub.w #264, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
491 lsr.w #5, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
492 move.b d1, selected.w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
493 .no_mouse_move
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
494 btst #0, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
495 bne select_entry
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
496 .done
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
497 rts
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
498 int_4:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
499 empty_handler:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
500 rte
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
501
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
502 id_lookup:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
503 dc.b $0, $1, $4, $5
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
504 dc.b $2, $3, $6, $7
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
505 dc.b $8, $9, $C, $D
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
506 dc.b $A, $B, $E, $F
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
507
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
508 io_read:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
509 ;read TH=1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
510 move.b (a2), d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
511 ;read TH=0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
512 move.b #0, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
513 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
514 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
515 move.b (a2), d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
516 ;reset TH to 1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
517 move.b #$40, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
518
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
519 moveq #0, d2 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
520
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
521 ;calculate Mega Drive peripheral ID
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
522 move.b d1, d2 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
523 lsr.b #1, d2 ;8, 12
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
524 or.b d1, d2 ;4, 16
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
525 and.b #5, d2 ;8, 24
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
526
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
527 move.b d0, d3 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
528 add.b d3, d3 ;4, 8
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
529 or.b d0, d3 ;4, 12
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
530 and.b #$A, d3 ;8, 20
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
531
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
532 or.b d3, d2 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
533 move.b (id_lookup, pc, d2.w), d2 ;14
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
534
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
535
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
536 cmp.b #$3, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
537 beq .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
538
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
539 cmp.b #$D, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
540 bne .not_pad
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
541
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
542 and.b #$3F, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
543 and.b #$30, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
544 add.b d1, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
545 add.b d1, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
546 or.b d1, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
547 not.b d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
548 rts
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
549 .not_pad:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
550 moveq #0, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
551 rts
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
552
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
553 .mouse:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
554
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
555 move.b #$60, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
556 move.b #$60, (PAD1_CTRL-PAD1_DATA, a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
557 move.b #$60, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
558
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
559 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
560 wait_hi_init:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
561 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
562 beq wait_hi_init
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
563 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
564 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
565 move.b #$20, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
566 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
567 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
568 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
569 move.b #0, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
570 .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
571 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
572 bne .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
573 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
574 move.b #$20, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
575 .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
576 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
577 beq .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
578
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
579 lea mouse_buf.w, a3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
580 move.l a3, a4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
581 moveq #2, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
582 moveq #0, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
583 loop:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
584 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
585 move.b #0, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
586 .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
587 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
588 bne .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
589 move.b (a2), d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
590 lsl.b #4, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
591 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
592 move.b #$20, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
593 .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
594 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
595 beq .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
596 move.b (a2), d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
597 and.b #$f, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
598 or.b d1, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
599 move.b d0, (a3)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
600
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
601 dbra d3, loop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
602
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
603 ;end request
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
604 move.b #$60, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
605
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
606
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
607 ;massage data
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
608 moveq #0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
609 move.b d0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
610 move.b (a4)+, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
611 move.b (a4), d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
612
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
613 btst #4, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
614 beq xpos
910
c030e4af32b7 Mouse X and Y are 9-bit 2's complement not 8-bit magnitude + sign bit like I thought. Fixed mouse Y direction.
Michael Pavone <pavone@retrodev.com>
parents: 909
diff changeset
615 or.w #$FF00, d0
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
616 xpos
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
617 btst #5, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
618 beq ypos
910
c030e4af32b7 Mouse X and Y are 9-bit 2's complement not 8-bit magnitude + sign bit like I thought. Fixed mouse Y direction.
Michael Pavone <pavone@retrodev.com>
parents: 909
diff changeset
619 or.w #$FF00, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
620 ypos
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
621 ;set port config back to normal controller mode
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
622 move.b #$40, (PAD1_CTRL-PAD1_DATA, a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
623 rts
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
624
925
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
625 topcorner equ (button-font)/64 + 32
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
626 topmiddle equ topcorner+1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
627 botcorner equ topmiddle+1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
628 botmiddle equ botcorner+1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
629 horiz_flip equ $800
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
630 vert_flip equ $1000
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
631
925
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
632 ; draws a button
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
633 ; d0.w - x in cells
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
634 ; d1.w - y in cells
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
635 ; d2.w - width in cells
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
636 ;
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
637 ; clobbers a6
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
638 draw_button:
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
639 ;multiply x by 2
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
640 add.w d0, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
641 ;multiply y by 128
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
642 lsl.w #7, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
643 add.w d1, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
644 add.w #$A000, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
645 move.w d0, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
646 and.w #$3FFF, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
647 rol.w #2, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
648 and.w #3, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
649 ori.w #(VDP_VRAM_WRITE >> 16), d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
650 swap d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
651 move.w d1, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
652 move.l d0, (a1)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
653 move.w d2, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
654 ;top left corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
655 move.w #topcorner, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
656 subq #3, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
657 bmi .notopmiddle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
658 .toploop:
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
659 ;top middle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
660 move.w #topmiddle, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
661 dbra d1, .toploop
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
662 .notopmiddle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
663 ;top right corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
664 move.w #(topcorner | horiz_flip), (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
665 ;go to next row in name table
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
666 add.l #((2*64) << 16), d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
667 move.l d0, (a1)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
668 ;bottom left corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
669 move.w #botcorner, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
670 subq #3, d2
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
671 bmi .nomiddlebot
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
672 .botloop:
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
673 ;bottom middle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
674 move.w #botmiddle, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
675 dbra d2, .botloop
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
676 .nomiddlebot
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
677 ;bottom right corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
678 move.w #(botcorner | horiz_flip), (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
679 rts
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
680
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
681 ;a5 - menu pointer
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
682 ;d6 - initial Y position of menu
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
683 draw_menu:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
684 moveq #0, d7
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
685 moveq #0, d5
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
686 ;select first item
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
687 move.b d7, selected.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
688 ;save menu pointer for second pass
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
689 movea.l a5, a4
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
690 ;adjust arrow mask
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
691 move.w #$FFE0, selection_mask.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
692 .lenloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
693 tst.b (a5)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
694 beq .lendone
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
695 addq #1, d5
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
696 movea.l a5, a6
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
697 bsr strlen
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
698 cmp.w d7, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
699 blo .nochange
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
700 move.w d0, d7
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
701 .nochange
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
702 lea (1, a5, d0.w), a5
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
703 bra .lenloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
704 .lendone
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
705
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
706 addq #2, d7
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
707 move.b d5, num_menu.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
708
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
709 ;calculate X position
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
710 move.w d7, d4
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
711 lsr.w #1, d4
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
712 moveq #20, d5
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
713 sub.w d4, d5
943
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
714 ;calculate left arrow X
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
715 move.w d5, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
716 lsl.w #3, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
717 add.w #(128-24), d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
718 move.w d4, (sprite_list+6).w
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
719 ;calculate right arrow x
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
720 move.w d7, d3
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
721 lsl.w #3, d3
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
722 add.w d3, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
723 add.w #32, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
724 move.w d4, (sprite_list+6+8).w
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
725 ;update left arrow Y
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
726 move.w d6, d4
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
727 lsl.w #4, d4
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
728 add.w #256, d4
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
729 move.w d4, (sprite_list).w
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
730 move.w d4, (sprite_list+8).w
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
731 ;update mouse top limit
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
732 move.w d4, selection_top.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
733 ;restore menu pointer
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
734 movea.l a4, a5
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
735 .drawloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
736 tst.b (a5)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
737 beq .done
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
738 ;x pos
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
739 move.w d5, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
740 ;y pos
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
741 move.w d6, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
742 ;width
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
743 move.w d7, d2
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
744 bsr draw_button
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
745
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
746 movea.l a5, a6
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
747 bsr strlen
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
748 movea.l a5, a6
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
749 lea (1, a5, d0.w), a5
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
750 ;x pos
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
751 move.w d7, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
752 lsr.w #1, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
753 add.w d5, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
754 lsr.w #1, d0
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
755 sub.w d0, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
756 ;y pos
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
757 move.w d6, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
758 ;base attribute
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
759 move.w #$206B, d0
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
760 bsr print_string_fixed
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
761
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
762 addq #3, d6
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
763 bra .drawloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
764 .done
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
765 ;update mouse bottom limit
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
766 lsl.w #4, d6
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
767 add.w #224, d6
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
768 move.w d6, selection_bot.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
769 rts
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
770
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
771 clear_screen:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
772 ;clear name tables
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
773 vdpaccess $8000, VDP_VRAM_WRITE
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
774 moveq #32, d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
775 swap d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
776 move.b #32, d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
777 move.w #(64*64-1), d1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
778 ploop:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
779 move.l d0, (a0)
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
780 dbra d1, ploop
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
781 rts
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
782
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
783 initial_regs:
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
784 vdpreg MODE_2, $4 ;Mode 5, everything turned off
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
785 vdpreg MODE_1, $4
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
786 vdpreg SCROLL_A, $20 ;Scroll a table $8000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
787 vdpreg SCROLL_B, $05 ;Scroll b table $A000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
788 vdpreg SAT, $60 ;SAT table $C000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
789 vdpreg BG_COLOR, 0
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
790 vdpreg HINT, $FF
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
791 vdpreg MODE_3, 0 ;full screen scroll
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
792 vdpreg MODE_4, $87 ;40 cell mode, double-res interlace
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
793 vdpreg HSCROLL, 0
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
794 vdpreg AUTOINC, 2
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
795 vdpreg SCROLL, 1 ;64x32 scroll size
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
796 end_initial_regs
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
797
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
798 start:
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
799 lea $FF0000, a0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
800 moveq #0, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
801 move.w #($10000/8 - 1), d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
802 .clearloop:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
803 move.l d0, (a0)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
804 move.l d0, (a0)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
805 dbra d1, .clearloop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
806
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
807 lea $C00000, a0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
808 lea $C00004, a1
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
809
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
810 moveq #(end_initial_regs-initial_regs-1), d0
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
811 lea initial_regs.w, a2
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
812 .regloop
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
813 move.w (a2)+, (a1)
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
814 dbra d0, .regloop
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
815
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
816 vdpaccess $0, VDP_CRAM_WRITE
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
817 move.w #$020, (a0)
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
818 move.w #$EEE, (a0)
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
819 move.w #$222, (a0)
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
820
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
821 ;init scroll table
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
822 vdpaccess $0, VDP_VRAM_WRITE
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
823 move.w #0, (a0)
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
824 move.w #0, (a0)
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
825
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
826
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
827 ;load tiles
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
828 vdpaccess $800, VDP_VRAM_WRITE
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
829 lea font(pc), a2
925
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
830 move.w #((buttonend-font)/4 - 1), d0
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
831 tloop:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
832 move.l (a2)+, (a0)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
833 dbra d0, tloop
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
834 move.w #((fontfixedend-fontfixed)/4 - 1), d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
835 dtloop:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
836 move.l (a2)+, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
837 move.l d1, (a0)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
838 move.l d1, (a0)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
839 dbra d0, dtloop
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
840
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
841
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
842 ;setup SAT
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
843 ;;vdpaccess $C000, VDP_VRAM_WRITE
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
844
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
845 lea sprite_list.w, a2
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
846 ;left arrow
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
847 move.l #$01080501, (a2)+
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
848 move.l #$807F0086, (a2)+
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
849
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
850 ;right arrow
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
851 move.l #$01080500, (a2)+
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
852 move.l #$887F01AA, (a2)+
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
853 move.b #2, num_sprites.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
854
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
855 show_main_menu:
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
856 bsr clear_screen
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
857 ;init vertical scroll RAM
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
858 vdpaccess $0, VDP_VSRAM_WRITE
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
859 move.w #-4, (a0)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
860 move.w #0, (a0)
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
861
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
862 moveq #8, d6
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
863 move.l #main_menu_func, menu_functions.w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
864 lea main_menu(pc), a5
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
865 bsr draw_menu
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
866 bra gamepad_setup
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
867
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
868 show_pause_menu:
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
869 bsr clear_screen
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
870 ;init vertical scroll RAM
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
871 vdpaccess $0, VDP_VSRAM_WRITE
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
872 move.w #-4, (a0)
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
873 move.w #0, (a0)
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
874 moveq #8, d6
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
875 move.l #pause_menu_func, menu_functions.w
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
876 lea pause_menu(pc), a5
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
877 bsr draw_menu
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
878 bra gamepad_setup
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
879
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
880 menu_start:
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
881 ;init vertical scroll RAM
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
882 vdpaccess $0, VDP_VSRAM_WRITE
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
883 move.w #0, (a0)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
884 move.w #0, (a0)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
885
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
886 ;reset arrow position
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
887 move.w #$0108, sprite_list.w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
888 move.w #$0108, (sprite_list + 8).w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
889 move.w #$0086, (sprite_list + 6).w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
890 move.w #$01AA, (sprite_list + 6 + 8).w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
891
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
892 ;reset selection
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
893 move.b #0, selected.w
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
894
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
895
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
896 lea page_pointers.w, a5
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
897 lea dir_buffer, a6
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
898 move.l a6, (a5)+
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
899 move.l a5, page_stack.w
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
900 lea menu_port, a2
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
901 move.l a6, (a2)
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
902
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
903 wait_complete:
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
904 tst.w (a2)
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
905 bne wait_complete
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
906
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
907 render_page:
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
908 bsr clear_screen
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
909
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
910 ;clear menu state
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
911 move.b #0, num_menu.w
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
912 move.w #272, selection_top.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
913 move.w #655, selection_bot.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
914 move.w #$FFF0, selection_mask.w
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
915
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
916 ;init scroll table
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
917 vdpaccess $0, VDP_VRAM_WRITE
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
918 move.w #0, (a0)
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
919 move.w #4, (a0)
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
920
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
921 move.l #$40860002, d3
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
922 move.l d3, (a1)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
923 move.l d3, base_cmd.w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
924
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
925
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
926 move.b #0, more_pages.w
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
927 lea page_index.w, a3
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
928 moveq #MAX_DISPLAY-1, d7
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
929 file_loop:
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
930 tst.b (a6)+
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
931 beq done_files
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
932 addq #1, a6 ;TODO: Do something with directory flag
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
933
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
934 ;skip over entries starting with a dot except ..
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
935 cmp.b #$2E, (a6)
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
936 bne normal
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
937 cmp.b #$2E, (1, a6)
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
938 beq normal
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
939 addq #1, a6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
940 .skip_loop:
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
941 tst.b (a6)+
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
942 bne .skip_loop
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
943 addq #1, d7
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
944 move.l a6, d6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
945 bra skip
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
946 normal:
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
947 ;save entry pointer to page index
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
948 move.l a6, (a3)+
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
949 ;print name on screen
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
950 moveq #0, d0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
951 bsr print_string
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
952 move.l a6, d6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
953
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
954 lea Newline(pc), a6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
955 bsr print_string
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
956
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
957 skip:
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
958 ;word align pointer
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
959 addq #1, d6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
960 and.w #$FFFE, d6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
961 move.l d6, a6
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
962
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
963 dbra d7, file_loop
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
964 tst.b (a6)
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
965 beq done_files
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
966 move.b #1, more_pages.w
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
967 done_files:
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
968 move.l page_stack.w, a5
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
969 move.l a6, (a5)+
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
970 move.l a5, page_stack.w
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
971
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
972 ;null terminate page_index
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
973 moveq #0, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
974 move.l d0, (a3)
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
975
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
976 gamepad_setup:
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
977 ;setup gamepads
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
978 move.b #$40, PAD1_CTRL
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
979 move.b #$40, PAD2_CTRL
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
980
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
981 move.w #$8174, (a1) ;enable display, vertical interrupts, DMA
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
982
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
983
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
984 wait_forever
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
985 stop #2500
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
986 bra wait_forever
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
987
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
988 show_about:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
989 bsr clear_screen
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
990 moveq #1, d7
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
991 lea about_text(pc), a6
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
992 ;base attribute
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
993 move.w #$006B, d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
994 .loop
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
995 tst.b (a6)
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
996 beq .done
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
997 ;x pos
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
998 moveq #1, d1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
999 ;y pos
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1000 move.w d7, d2
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1001 bsr print_string_fixed
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1002 addq #1, d7
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1003 bra .loop
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1004 .done
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1005 moveq #8, d6
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1006 move.l #about_menu_func, menu_functions.w
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1007 lea about_menu(pc), a5
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1008 bsr draw_menu
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1009 .wait
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1010 stop #$2500
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1011 bra .wait
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1012
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1013 exit:
954
cbc5b39e5518 Implement "Resume" button in pause menu
Michael Pavone <pavone@retrodev.com>
parents: 950
diff changeset
1014 move.l #1, menu_port+12
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1015 bra exit
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1016
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1017 resume:
954
cbc5b39e5518 Implement "Resume" button in pause menu
Michael Pavone <pavone@retrodev.com>
parents: 950
diff changeset
1018 move.l #2, menu_port+12
cbc5b39e5518 Implement "Resume" button in pause menu
Michael Pavone <pavone@retrodev.com>
parents: 950
diff changeset
1019 bra show_pause_menu
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1020
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1021 show_save_slots:
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1022 move.w #(256+26), sprite_list.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1023 move.w #(256+26), (sprite_list+8).w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1024 move.w #(128+8), (sprite_list+6).w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1025 move.w #(128+320-24), (sprite_list+6+8).w
973
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1026 move.w #(256+32), selection_top.w
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1027 move.b #0, selected.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1028 move.b #0, num_menu.w
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1029 lea dir_buffer, a6
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1030 lea menu_port+16, a3
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1031 move.l a6, (a3)
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1032 .waitdone:
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1033 tst.w (a3)
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1034 bne .waitdone
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1035 bsr clear_screen
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1036 moveq #0, d0
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1037
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1038 moveq #0, d6
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1039 moveq #2, d7
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1040 .slotloop
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1041 tst.b (a6)
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1042 beq .done
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1043 addq #1, d6
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1044 moveq #4, d1
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1045 move.w d7, d2
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1046 bsr print_string_fixed
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1047 addq #2, d7
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1048 bra .slotloop
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1049 .done
973
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1050 lsl.w #4, d7
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1051 add.w #248, d7
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1052 move.w d7, selection_bot.w
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1053 move.b d6, num_slots.w
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1054 rts
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1055
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1056 save_state:
961
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
1057 move.b #(5*4), port_off.w
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1058 bsr show_save_slots
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1059 .wait
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1060 stop #$2500
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1061 bra .wait
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1062
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1063 load_state:
961
750995b587a0 Save State menu option is now fully functional. Load state sort of works, but is mostly broken.
Michael Pavone <pavone@retrodev.com>
parents: 960
diff changeset
1064 move.b #(6*4), port_off.w
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1065 bsr show_save_slots
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1066 .wait
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1067 stop #$2500
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1068 bra .wait
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1069
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1070 about_text:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1071 dc.b "BlastEm v0.4.0", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1072 dc.b "Copyright 2011-2016 Michael Pavone", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1073 dc.b " ", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1074 dc.b "BlastEm is a high performance, open", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1075 dc.b "source (GPLv3) Genesis/Megadrive", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1076 dc.b "emulator.",0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1077 dc.b 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1078
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1079
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
1080 Newline:
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
1081 dc.b $A, 0
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1082
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1083 align 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1084
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1085 ;Prints a null terminated string
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1086 ;a6 - pointer to string
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1087 ;a0 - VDP data port
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1088 ;d0 - base tile attribute
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1089 ;
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1090 ;Clobbers: d1.w, d2.w, d3.l
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1091 print_string:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1092 lea widths(pc), a5
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1093 move.w x_pos.w, d2
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1094 move.l base_cmd.w, d3
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1095 .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1096 moveq #0, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1097 move.b (a6)+, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1098 beq .end
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1099 cmp.b #$A, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1100 beq .newline
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1101 tst.b (-32, a5, d1.w)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1102 beq .narrow
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1103 add.w d0, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1104 move.w d1, (a0)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1105 addq #2, d2
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1106 bra .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1107 .narrow
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1108 add.w d0, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1109 move.w d1, (a0)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1110 addq #1, d2
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1111 move.l d2, d1
791
60686f8d5e48 Add a couple of comments to menu.s68
Michael Pavone <pavone@retrodev.com>
parents: 790
diff changeset
1112 ;switch to other plane
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1113 and.w #$FFFE, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1114 swap d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1115 eor.l #$20000000, d3
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1116 add.l d3, d1
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1117 move.l d1, (a1)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1118 bra .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1119 .newline
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1120 moveq #0, d2
791
60686f8d5e48 Add a couple of comments to menu.s68
Michael Pavone <pavone@retrodev.com>
parents: 790
diff changeset
1121 ;switch back to plane A
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1122 and.l #$DFFFFFFF, d3
791
60686f8d5e48 Add a couple of comments to menu.s68
Michael Pavone <pavone@retrodev.com>
parents: 790
diff changeset
1123 ;skip to next row
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1124 add.l #$00800000, d3
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1125 move.l d3, (a1)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1126 bra .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1127 .end
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1128 move.w d2, x_pos.w
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1129 move.l d3, base_cmd.w
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1130 rts
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1131
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1132 ;Prints a null-terminated string with a fixed width font
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1133 ;a6 - pointer to string
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1134 ;a0 - VDP data port
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1135 ;d0 - base tile attribute
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1136 ;d1 - x col
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1137 ;d2 - y col
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1138 ;
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1139 print_string_fixed:
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1140 ;multiply x by 2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1141 add.w d1, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1142 ;multiply y by 128
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1143 lsl.w #7, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1144 add.w d2, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1145 add.w #$8000, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1146 move.w d1, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1147 and.w #$3FFF, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1148 rol.w #2, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1149 and.w #3, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1150 ori.w #(VDP_VRAM_WRITE >> 16), d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1151 swap d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1152 move.w d2, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1153 move.l d1, (a1)
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1154 .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1155 moveq #0, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1156 move.b (a6)+, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1157 beq .end
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1158 add.w d0, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1159 move.w d1, (a0)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1160 bra .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1161 .end
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1162 rts
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1163
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1164 ;Returns string length in d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1165 ;a6 - pointer to string
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1166 strlen:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1167 moveq #-1, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1168 .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1169 addq #1, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1170 tst.b (a6)+
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1171 bne .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1172 rts
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1173
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1174 align 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1175 font:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1176 incbin font_interlace_variable.tiles
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1177 fontend
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1178 arrow:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1179 incbin arrow.tiles
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1180 arrowend:
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1181 cursor:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1182 incbin cursor.tiles
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1183 cursorend:
917
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 910
diff changeset
1184 button:
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 910
diff changeset
1185 incbin button.tiles
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 910
diff changeset
1186 buttonend:
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1187 fontfixed:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1188 incbin font.tiles
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1189 fontfixedend:
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1190
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1191 widths:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1192 dc.b 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1193 dc.b 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1194 dc.b 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1195 dc.b 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1196 dc.b 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1197
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1198 main_menu:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1199 dc.b "Load ROM", 0
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1200 dc.b "About", 0
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1201 dc.b "Exit", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1202 dc.b 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1203
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1204 align 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1205 main_menu_func:
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
1206 dc.l menu_start
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1207 dc.l show_about
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1208 dc.l exit
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1209
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1210 about_menu:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1211 dc.b "Return", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1212 dc.b 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1213
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1214 align 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1215 about_menu_func:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1216 dc.l show_main_menu
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1217
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1218 pause_menu:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1219 dc.b "Resume", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1220 dc.b "Load ROM", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1221 dc.b "Save State", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1222 dc.b "Load State", 0
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1223 dc.b "Exit", 0
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1224 dc.b 0
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1225
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1226 align 1
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1227 pause_menu_func
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1228 dc.l resume
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1229 dc.l menu_start
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1230 dc.l save_state
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1231 dc.l load_state
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1232 dc.l exit
866
69a6ec208111 Menu ROM now pulls real file names from the OS rather than using a fake list
Michael Pavone <pavone@retrodev.com>
parents: 827
diff changeset
1233
790
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
1234 rom_end: