annotate menu.s68 @ 995:2bc27415565b

Fix some stuff with interrupt timing. The change in adjust_int_cycle gets Overdrive working again (vint was not being preferred over hint in some cases). One of the changes seems to have broken Fatal Rewind again, but no other regressions that I can see.
author Michael Pavone <pavone@retrodev.com>
date Sat, 30 Apr 2016 08:37:55 -0700
parents 4360cb5960c8
children edab85c29d4d
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
994
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
176 x_pos rs.w 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
177 base_cmd rs.l 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
178 sprite_list rs.l 160
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
179 page_index rs.l MAX_DISPLAY+1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
180 page_stack rs.l 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
181 page_pointers rs.l 1024
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
182 mouse_sprite rs.l 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
183 menu_functions rs.l 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
184 cursor_show_fun rs.l 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
185 mouse_x rs.w 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
186 selection_top rs.w 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
187 selection_bot rs.w 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
188 selection_mask rs.w 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
189 num_sprites rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
190 last_pad1 rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
191 last_pad2 rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
192 selected rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
193 more_pages rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
194 mouse_buf rs.b 3
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
195 mouse_shown rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
196 last_mbuttons rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
197 num_menu rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
198 num_slots rs.b 1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
199 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
200
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
201
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
202 int_6:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
203 dmasrc sprite_list, DMA_SRC_68K
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
204 ;set DMA length
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
205 move.l #$94009300, d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
206 moveq #0, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
207 move.b num_sprites.w, 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 add.w d1, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
210 move.b d1, d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
211 swap d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
212 lsr.w #8, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
213 move.b d1, d0
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
214 move.l d0, (a1)
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
215 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
216
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
217 ;read gamepad/mouse in port 1
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
218 lea PAD1_DATA, a2
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
219
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
220 bsr io_read
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
221
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
222 cmp.b #3, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
223 beq .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
224
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
225 move.b last_pad1.w, d1
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
226 eor.b d0, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
227 and.b d0, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
228 move.b d0, last_pad1.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
229
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
230 bsr handle_pad_buttons
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
231
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
232 bra pad2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
233 .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
234 bsr handle_mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
235
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
236 pad2:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
237 ;read gamepad/mouse in port 2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
238 lea PAD2_DATA, a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
239
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
240 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
241
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
242 cmp.b #3, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
243 beq .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
244
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
245 move.b last_pad2.w, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
246 eor.b d0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
247 and.b d0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
248 move.b d0, last_pad2.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
249
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
250 bsr handle_pad_buttons
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
251 rte
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
252 .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
253 bsr handle_mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
254 rte
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
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
257 ;d0 = SACBRLUD
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
258 ;d1 = newly pressed buttons
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
259 handle_pad_buttons:
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
260 tst.b num_menu.w
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
261 bne handle_buttons_menu
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
262 tst.b num_slots.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
263 bne handle_buttons_save
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
264 moveq #16, d2
944
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
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
267 btst #3, d1
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
268 bne right
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
269 btst #2, d1
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
270 bne left
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
271 buttons_no_leftright
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
272 btst #1, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
273 bne down
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
274 btst #0, d1
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
275 bne up
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
276 btst #7, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
277 bne select_entry
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
278 btst #5, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
279 bne select_entry
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
280 handle_done:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
281 rts
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
282 handle_buttons_menu
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
283 moveq #48, d2
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
284 bra buttons_no_leftright
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
285 handle_buttons_save
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
286 moveq #32, d2
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
287 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
288
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
289 down:
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
290
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
291 ;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
292 moveq #1, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
293 add.b (selected).w, d0
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
294 tst.b num_menu.w
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
295 bne .menu
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
296 tst.b num_slots.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
297 bne .slots
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
298 move.w d0, d1
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
299 add.w d1, d1
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
300 add.w d1, d1
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
301 lea page_index.w, a2
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
302 tst.l (0, a2, d1.w)
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
303 beq handle_done
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
304 .do_move
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
305 move.b d0, (selected).w
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
306
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
307 add.w d2, (sprite_list).w
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
308 add.w d2, (sprite_list+8).w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
309 rts
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
310 .menu:
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
311 cmp.b num_menu.w, d0
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
312 beq handle_done
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
313 bra .do_move
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
314 .slots:
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
315 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
316 beq handle_done
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
317 bra .do_move
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
318
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
319 up:
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
320 ;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
321 move.b (selected).w, d0
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
322 beq handle_done
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
323 subq #1, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
324 move.b d0, (selected).w
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
325
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
326 sub.w d2, (sprite_list).w
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
327 sub.w d2, (sprite_list+8).w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
328 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
329
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
330 right:
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
331 ;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
332 tst.b more_pages.w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
333 beq handle_done
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
334 ;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
335 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
336 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
337
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
338 addq #6, a7
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
339 bra render_page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
340
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
341 left:
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
342 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
343 ;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
344 cmp.l #(page_pointers+8), a5
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
345 beq handle_done
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
346 ;switch to previous page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
347 lea (-12, a5), a5
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
348 move.l (a5)+, a6
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
349 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
350
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
351 addq #6, a7
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
352 bra render_page
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
353
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
354 select_entry:
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
355 moveq #0, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
356 move.b (selected).w, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
357 add.w d0, d0
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
358 add.w d0, d0
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
359 tst.b num_menu.w
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
360 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
361 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
362 bne .select_save_slot
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
363 lea page_index.w, a2
869
4298db923cf8 Fix detection of directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 868
diff changeset
364 move.l (0, a2, d0.w), a2
4298db923cf8 Fix detection of directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 868
diff changeset
365 tst.b (-1, a2)
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
366 bne enter_dir
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
367 ;regular file
872
7022ba865cfd Initial work for allowing loading a ROM from menu
Michael Pavone <pavone@retrodev.com>
parents: 871
diff changeset
368 lea menu_port+8, a3
7022ba865cfd Initial work for allowing loading a ROM from menu
Michael Pavone <pavone@retrodev.com>
parents: 871
diff changeset
369 move.l a2, (a3)
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
370
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
371 addq #6, a7
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
372 bra show_pause_menu
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
373 .select_menu_button:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
374 movea.l menu_functions.w, a2
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
375 move.l (0, a2, d0.w), a2
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
376 addq #6, a7
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
377 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
378 .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
379 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
380 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
381 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
382 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
383 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
384 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
385 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
386 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
387
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
388 enter_dir:
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
389 lea menu_port+4, a3
869
4298db923cf8 Fix detection of directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 868
diff changeset
390 move.l a2, (a3)
868
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
391 .wait_complete
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
392 tst.w (a3)
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
393 bne .wait_complete
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
394 addq #6, a7
1bab7e01ae98 Allow directory navigation in menu. Sort directory entries
Michael Pavone <pavone@retrodev.com>
parents: 866
diff changeset
395 bra menu_start
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
396
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
397 handle_mouse:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
398 move.b last_mbuttons.w, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
399 eor.b d3, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
400 and.b d3, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
401 move.b d3, last_mbuttons.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
402
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
403 move.b d0, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
404 or.b d1, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
405 beq .no_mouse_move
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
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
408 tst.b mouse_shown.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
409 bne .skip_show_check
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
410
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
411 moveq #0, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
412 move.b num_sprites.w, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
413 move.w d2, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
414 lsl.w #3, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
415 lea sprite_list.w, a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
416 move.b d2, (-5, a2, d4.w)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
417 lea (0, a2, d4.w), a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
418 move.l a2, mouse_sprite.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
419 move.l #$01000500, (a2)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
420 move.w #$8083, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
421 move.w #$100, mouse_x.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
422 addq #1, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
423 move.b d2, num_sprites.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
424
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
425 move.b #1, mouse_shown.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
426
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
427 .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
428 neg.w d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
429 move.l mouse_sprite.w, a2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
430 add.w d1, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
431 add.w d0, mouse_x.w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
432 move.w mouse_x.w, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
433 asr.w #1, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
434 move.w d0, (6, a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
435 move.w (a2), d1
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
436 cmp.w selection_top.w, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
437 blo .done
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
438 cmp.w selection_bot.w, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
439 bhi .done
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
440 tst.b num_menu.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
441 bne .handle_menu
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
442 tst.b num_slots.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
443 bne .handle_slots
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
444 and.w #$FFF0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
445 subq #8, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
446 move.w d1, (sprite_list).w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
447 move.w d1, (sprite_list+8).w
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
448
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
449 sub.w #264, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
450 lsr.w #4, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
451 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
452 bra .no_mouse_move
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
453 .handle_menu
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
454 ;TODO: FIXME
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
455 and.w #$FFF0, d1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
456 moveq #0, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
457 move.w d1, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
458 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
459 divu.w #48, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
460 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
461 tst.w d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
462 beq .no_adjust
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
463
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
464 cmp.w #16, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
465 bne .round_up
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
466 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
467 sub.w #16, d1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
468 bra .set_cursor_pos
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
469
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
470 .round_up
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
471 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
472 addq #1, d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
473 add.w #16, d1
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
474 bra .set_cursor_pos
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
475
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
476 .no_adjust
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
477 swap d0
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
478 .set_cursor_pos
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).w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
480 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
481
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
482 move.b d0, selected.w
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
483
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
484 bra .no_mouse_move
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
485 .handle_slots
973
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
486 and.w #$FFE0, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
487 subq #8, d1
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).w
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
489 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
490
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
491 sub.w #264, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
492 lsr.w #5, d1
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
493 move.b d1, selected.w
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
494 .no_mouse_move
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
495 btst #0, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
496 bne select_entry
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
497 .done
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
498 rts
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
499 int_4:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
500 empty_handler:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
501 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
502
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
503 id_lookup:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
504 dc.b $0, $1, $4, $5
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
505 dc.b $2, $3, $6, $7
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
506 dc.b $8, $9, $C, $D
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
507 dc.b $A, $B, $E, $F
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
508
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
509 io_read:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
510 ;read TH=1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
511 move.b (a2), d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
512 ;read TH=0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
513 move.b #0, (a2)
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 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
516 move.b (a2), d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
517 ;reset TH to 1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
518 move.b #$40, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
519
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
520 moveq #0, d2 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
521
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
522 ;calculate Mega Drive peripheral ID
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
523 move.b d1, d2 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
524 lsr.b #1, d2 ;8, 12
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
525 or.b d1, d2 ;4, 16
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
526 and.b #5, d2 ;8, 24
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
527
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
528 move.b d0, d3 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
529 add.b d3, d3 ;4, 8
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
530 or.b d0, d3 ;4, 12
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
531 and.b #$A, d3 ;8, 20
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
532
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
533 or.b d3, d2 ;4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
534 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
535
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
536
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
537 cmp.b #$3, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
538 beq .mouse
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
539
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
540 cmp.b #$D, d2
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
541 bne .not_pad
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
542
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
543 and.b #$3F, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
544 and.b #$30, 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 add.b d1, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
547 or.b d1, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
548 not.b d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
549 rts
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
550 .not_pad:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
551 moveq #0, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
552 rts
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
553
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
554 .mouse:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
555
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
556 move.b #$60, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
557 move.b #$60, (PAD1_CTRL-PAD1_DATA, a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
558 move.b #$60, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
559
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
560 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
561 wait_hi_init:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
562 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
563 beq wait_hi_init
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 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
566 move.b #$20, (a2)
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 nop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
569 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
570 move.b #0, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
571 .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
572 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
573 bne .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
574 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
575 move.b #$20, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
576 .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
577 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
578 beq .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
579
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
580 lea mouse_buf.w, a3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
581 move.l a3, a4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
582 moveq #2, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
583 moveq #0, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
584 loop:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
585 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
586 move.b #0, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
587 .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
588 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
589 bne .wait_lo
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
590 move.b (a2), d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
591 lsl.b #4, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
592 moveq #$f, d4
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
593 move.b #$20, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
594 .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
595 btst #4, (a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
596 beq .wait_hi
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
597 move.b (a2), d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
598 and.b #$f, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
599 or.b d1, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
600 move.b d0, (a3)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
601
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
602 dbra d3, loop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
603
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
604 ;end request
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
605 move.b #$60, (a2)
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
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
608 ;massage data
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
609 moveq #0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
610 move.b d0, d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
611 move.b (a4)+, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
612 move.b (a4), d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
613
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
614 btst #4, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
615 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
616 or.w #$FF00, d0
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
617 xpos
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
618 btst #5, d3
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
619 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
620 or.w #$FF00, d1
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
621 ypos
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
622 ;set port config back to normal controller mode
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
623 move.b #$40, (PAD1_CTRL-PAD1_DATA, a2)
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
624 rts
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
625
925
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
626 topcorner equ (button-font)/64 + 32
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
627 topmiddle equ topcorner+1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
628 botcorner equ topmiddle+1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
629 botmiddle equ botcorner+1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
630 horiz_flip equ $800
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
631 vert_flip equ $1000
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
632
925
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
633 ; draws a button
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
634 ; d0.w - x in cells
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
635 ; d1.w - y in cells
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
636 ; d2.w - width in cells
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
637 ;
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
638 ; clobbers a6
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
639 draw_button:
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
640 ;multiply x by 2
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
641 add.w d0, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
642 ;multiply y by 128
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
643 lsl.w #7, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
644 add.w d1, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
645 add.w #$A000, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
646 move.w d0, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
647 and.w #$3FFF, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
648 rol.w #2, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
649 and.w #3, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
650 ori.w #(VDP_VRAM_WRITE >> 16), d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
651 swap d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
652 move.w d1, d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
653 move.l d0, (a1)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
654 move.w d2, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
655 ;top left corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
656 move.w #topcorner, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
657 subq #3, d1
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
658 bmi .notopmiddle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
659 .toploop:
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
660 ;top middle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
661 move.w #topmiddle, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
662 dbra d1, .toploop
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
663 .notopmiddle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
664 ;top right corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
665 move.w #(topcorner | horiz_flip), (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
666 ;go to next row in name table
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
667 add.l #((2*64) << 16), d0
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
668 move.l d0, (a1)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
669 ;bottom left corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
670 move.w #botcorner, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
671 subq #3, d2
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
672 bmi .nomiddlebot
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
673 .botloop:
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
674 ;bottom middle
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
675 move.w #botmiddle, (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
676 dbra d2, .botloop
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
677 .nomiddlebot
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
678 ;bottom right corner
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
679 move.w #(botcorner | horiz_flip), (a0)
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
680 rts
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
681
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
682 ;a5 - menu pointer
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
683 ;d6 - initial Y position of menu
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
684 draw_menu:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
685 moveq #0, d7
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
686 moveq #0, d5
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
687 ;select first item
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
688 move.b d7, selected.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
689 ;save menu pointer for second pass
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
690 movea.l a5, a4
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
691 ;adjust arrow mask
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
692 move.w #$FFE0, selection_mask.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
693 .lenloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
694 tst.b (a5)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
695 beq .lendone
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
696 addq #1, d5
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
697 movea.l a5, a6
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
698 bsr strlen
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
699 cmp.w d7, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
700 blo .nochange
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
701 move.w d0, d7
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
702 .nochange
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
703 lea (1, a5, d0.w), a5
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
704 bra .lenloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
705 .lendone
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
706
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
707 addq #2, d7
944
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
708 move.b d5, num_menu.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
709
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
710 ;calculate X position
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
711 move.w d7, d4
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
712 lsr.w #1, d4
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
713 moveq #20, d5
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
714 sub.w d4, d5
943
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
715 ;calculate left arrow X
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
716 move.w d5, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
717 lsl.w #3, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
718 add.w #(128-24), d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
719 move.w d4, (sprite_list+6).w
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
720 ;calculate right arrow x
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
721 move.w d7, d3
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
722 lsl.w #3, d3
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
723 add.w d3, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
724 add.w #32, d4
05229aa23b00 Adjust arrow X positions in menu
Michael Pavone <pavone@retrodev.com>
parents: 942
diff changeset
725 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
726 ;update left arrow Y
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
727 move.w d6, d4
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
728 lsl.w #4, d4
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
729 add.w #256, d4
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
730 move.w d4, (sprite_list).w
10dd8c04cbbc Handle up down buttons when in a menu
Michael Pavone <pavone@retrodev.com>
parents: 943
diff changeset
731 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
732 ;update mouse top limit
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
733 move.w d4, selection_top.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
734 ;restore menu pointer
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
735 movea.l a4, a5
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
736 .drawloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
737 tst.b (a5)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
738 beq .done
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
739 ;x pos
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
740 move.w d5, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
741 ;y pos
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
742 move.w d6, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
743 ;width
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
744 move.w d7, d2
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
745 bsr draw_button
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
746
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
747 movea.l a5, a6
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
748 bsr strlen
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
749 movea.l a5, a6
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
750 lea (1, a5, d0.w), a5
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
751 ;x pos
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
752 move.w d7, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
753 lsr.w #1, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
754 add.w d5, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
755 lsr.w #1, d0
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
756 sub.w d0, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
757 ;y pos
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
758 move.w d6, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
759 ;base attribute
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
760 move.w #$206B, d0
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
761 bsr print_string_fixed
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
762
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
763 addq #3, d6
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
764 bra .drawloop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
765 .done
970
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
766 ;update mouse bottom limit
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
767 lsl.w #4, d6
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
768 add.w #224, d6
e2d7067ea2d8 Got mouse working right in main and about menus
Michael Pavone <pavone@retrodev.com>
parents: 961
diff changeset
769 move.w d6, selection_bot.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
770 rts
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
771
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
772 clear_screen:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
773 ;clear name tables
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
774 vdpaccess $8000, VDP_VRAM_WRITE
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
775 moveq #32, d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
776 swap d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
777 move.b #32, d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
778 move.w #(64*64-1), d1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
779 ploop:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
780 move.l d0, (a0)
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
781 dbra d1, ploop
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
782 rts
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
783
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
784 initial_regs:
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
785 vdpreg MODE_2, $4 ;Mode 5, everything turned off
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
786 vdpreg MODE_1, $4
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
787 vdpreg SCROLL_A, $20 ;Scroll a table $8000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
788 vdpreg SCROLL_B, $05 ;Scroll b table $A000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
789 vdpreg SAT, $60 ;SAT table $C000
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
790 vdpreg BG_COLOR, 0
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
791 vdpreg HINT, $FF
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
792 vdpreg MODE_3, 0 ;full screen scroll
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
793 vdpreg MODE_4, $87 ;40 cell mode, double-res interlace
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
794 vdpreg HSCROLL, 0
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
795 vdpreg AUTOINC, 2
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
796 vdpreg SCROLL, 1 ;64x32 scroll size
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
797 end_initial_regs
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
798
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
799 start:
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
800 lea $FF0000, a0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
801 moveq #0, d0
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
802 move.w #($10000/8 - 1), d1
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
803 .clearloop:
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 move.l d0, (a0)+
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
806 dbra d1, .clearloop
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
807
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
808 lea $C00000, a0
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
809 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
810
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
811 moveq #(end_initial_regs-initial_regs-1), d0
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
812 lea initial_regs.w, a2
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
813 .regloop
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
814 move.w (a2)+, (a1)
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
815 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
816
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
817 vdpaccess $0, VDP_CRAM_WRITE
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
818 move.w #$020, (a0)
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
819 move.w #$EEE, (a0)
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
820 move.w #$222, (a0)
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
821
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
822 ;init scroll table
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
823 vdpaccess $0, VDP_VRAM_WRITE
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
824 move.w #0, (a0)
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
825 move.w #0, (a0)
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
826
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
827
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
828 ;load tiles
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
829 vdpaccess $800, VDP_VRAM_WRITE
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
830 lea font(pc), a2
925
a3b08915624b WIP menu button stuff
Michael Pavone <pavone@retrodev.com>
parents: 917
diff changeset
831 move.w #((buttonend-font)/4 - 1), d0
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
832 tloop:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
833 move.l (a2)+, (a0)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
834 dbra d0, tloop
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
835 move.w #((fontfixedend-fontfixed)/4 - 1), d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
836 dtloop:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
837 move.l (a2)+, d1
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 move.l d1, (a0)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
840 dbra d0, dtloop
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
841
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
842
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
843 ;setup SAT
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
844 ;;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
845
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
846 lea sprite_list.w, a2
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
847 ;left arrow
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
848 move.l #$01080501, (a2)+
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
849 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
850
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
851 ;right arrow
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
852 move.l #$01080500, (a2)+
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
853 move.l #$887F01AA, (a2)+
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
854 move.b #2, num_sprites.w
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
855
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
856 show_main_menu:
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
857 bsr clear_screen
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
858 ;init vertical scroll RAM
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
859 vdpaccess $0, VDP_VSRAM_WRITE
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
860 move.w #-4, (a0)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
861 move.w #0, (a0)
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
862
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
863 moveq #8, d6
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
864 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
865 lea main_menu(pc), a5
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
866 bsr draw_menu
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
867 bra gamepad_setup
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
868
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
869 show_pause_menu:
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
870 bsr clear_screen
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
871 ;init vertical scroll RAM
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
872 vdpaccess $0, VDP_VSRAM_WRITE
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
873 move.w #-4, (a0)
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
874 move.w #0, (a0)
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
875 moveq #8, d6
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
876 move.l #pause_menu_func, menu_functions.w
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
877 lea pause_menu(pc), a5
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
878 bsr draw_menu
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
879 bra gamepad_setup
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
880
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
881 menu_start:
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
882 ;init vertical scroll RAM
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
883 vdpaccess $0, VDP_VSRAM_WRITE
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 move.w #0, (a0)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
886
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
887 ;reset arrow position
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
888 move.w #$0108, sprite_list.w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
889 move.w #$0108, (sprite_list + 8).w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
890 move.w #$0086, (sprite_list + 6).w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
891 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
892
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
893 ;reset selection
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
894 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
895
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
896
871
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
897 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
898 lea dir_buffer, a6
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
899 move.l a6, (a5)+
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
900 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
901 lea menu_port, a2
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
902 move.l a6, (a2)
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
903
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
904 wait_complete:
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
905 tst.w (a2)
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
906 bne wait_complete
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
907
f364f4f22f8f Allow navigation between pages for long directories in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 869
diff changeset
908 render_page:
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
909 bsr clear_screen
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
910
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
911 ;clear menu state
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
912 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
913 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
914 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
915 move.w #$FFF0, selection_mask.w
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
916
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
917 ;init scroll table
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
918 vdpaccess $0, VDP_VRAM_WRITE
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
919 move.w #0, (a0)
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
920 move.w #4, (a0)
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
921
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
922 move.l #$40860002, d3
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
923 move.l d3, (a1)
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
924 move.l d3, base_cmd.w
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
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)
994
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
975
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
976 tst.b mouse_shown
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
977 beq .no_mouse
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
978
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
979 tst.b more_pages.w
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
980 beq .no_next_page
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
981
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
982 ;draw Next button
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
983 moveq #30, d0
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
984 moveq #26, d1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
985 moveq #6, d2
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
986 bsr draw_button
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
987
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
988 ;base attribute
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
989 move.w #$206B, d0
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
990 ;x pos
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
991 moveq #32, d1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
992 ;y pos
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
993 moveq #26, d2
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
994 lea next_str(pc), a6
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
995 bsr print_string_fixed
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
996
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
997 .no_next_page
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
998
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
999 cmp.l #(page_pointers+8), a5
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1000 beq .no_prev_page
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1001
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1002 ;draw Prev button
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1003 moveq #4, d0
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1004 moveq #26, d1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1005 moveq #6, d2
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1006 bsr draw_button
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1007
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1008 ;base attribute
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1009 move.w #$206B, d0
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1010 ;x pos
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1011 moveq #6, d1
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1012 ;y pos
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1013 moveq #26, d2
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1014 lea prev_str(pc), a6
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1015 bsr print_string_fixed
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1016
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1017 .no_prev_page
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1018
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1019 move.l #0, cursor_show_fun.w
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1020
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1021 bra .done_page_buttons
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1022 .no_mouse
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1023 ;TODO - setup cusrsor_show_fun
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1024 .done_page_buttons
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
1025
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1026 gamepad_setup:
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1027 ;setup gamepads
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1028 move.b #$40, PAD1_CTRL
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1029 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
1030
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1031 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
1032
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1033
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1034 wait_forever
814
109ac52ffecd Menu cleanup with macros
Michael Pavone <pavone@retrodev.com>
parents: 791
diff changeset
1035 stop #2500
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1036 bra wait_forever
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1037
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1038 show_about:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1039 bsr clear_screen
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1040 moveq #1, d7
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1041 lea about_text(pc), a6
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1042 ;base attribute
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1043 move.w #$006B, d0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1044 .loop
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1045 tst.b (a6)
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1046 beq .done
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1047 ;x pos
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1048 moveq #1, d1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1049 ;y pos
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1050 move.w d7, d2
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1051 bsr print_string_fixed
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1052 addq #1, d7
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1053 bra .loop
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1054 .done
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1055 moveq #8, d6
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1056 move.l #about_menu_func, menu_functions.w
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1057 lea about_menu(pc), a5
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1058 bsr draw_menu
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1059 .wait
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1060 stop #$2500
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1061 bra .wait
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1062
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1063 exit:
954
cbc5b39e5518 Implement "Resume" button in pause menu
Michael Pavone <pavone@retrodev.com>
parents: 950
diff changeset
1064 move.l #1, menu_port+12
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1065 bra exit
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1066
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1067 resume:
954
cbc5b39e5518 Implement "Resume" button in pause menu
Michael Pavone <pavone@retrodev.com>
parents: 950
diff changeset
1068 move.l #2, menu_port+12
cbc5b39e5518 Implement "Resume" button in pause menu
Michael Pavone <pavone@retrodev.com>
parents: 950
diff changeset
1069 bra show_pause_menu
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1070
958
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1071 show_save_slots:
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1072 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
1073 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
1074 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
1075 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
1076 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
1077 move.b #0, selected.w
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1078 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
1079 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
1080 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
1081 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
1082 .waitdone:
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1083 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
1084 bne .waitdone
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1085 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
1086 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
1087
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1088 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
1089 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
1090 .slotloop
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1091 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
1092 beq .done
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1093 addq #1, d6
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1094 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
1095 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
1096 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
1097 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
1098 bra .slotloop
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1099 .done
973
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1100 lsl.w #4, d7
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1101 add.w #248, d7
fbd783ccbadb Get mouse working in save state slot selection menu
Michael Pavone <pavone@retrodev.com>
parents: 970
diff changeset
1102 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
1103 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
1104 rts
83532f944e3b Get slot list displaying in "Save State" and "Load State" menu items
Michael Pavone <pavone@retrodev.com>
parents: 957
diff changeset
1105
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1106 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
1107 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
1108 bsr show_save_slots
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1109 .wait
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1110 stop #$2500
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1111 bra .wait
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1112
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1113 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
1114 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
1115 bsr show_save_slots
960
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1116 .wait
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1117 stop #$2500
0abfecaaf5c8 Get cursor behaving properly in save state slot list
Michael Pavone <pavone@retrodev.com>
parents: 958
diff changeset
1118 bra .wait
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1119
994
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1120 next_str:
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1121 dc.b "Next", 0
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1122 prev_str:
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1123 dc.b "Prev", 0
4360cb5960c8 Added code to display Next and Prev buttons on file listing screens to menu
Michael Pavone <pavone@retrodev.com>
parents: 973
diff changeset
1124
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1125 about_text:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1126 dc.b "BlastEm v0.4.0", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1127 dc.b "Copyright 2011-2016 Michael Pavone", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1128 dc.b " ", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1129 dc.b "BlastEm is a high performance, open", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1130 dc.b "source (GPLv3) Genesis/Megadrive", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1131 dc.b "emulator.",0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1132 dc.b 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1133
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1134
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
1135 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
1136 dc.b $A, 0
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1137
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1138 align 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1139
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1140 ;Prints a null terminated string
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1141 ;a6 - pointer to string
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1142 ;a0 - VDP data port
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1143 ;d0 - base tile attribute
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1144 ;
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1145 ;Clobbers: d1.w, d2.w, d3.l
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1146 print_string:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1147 lea widths(pc), a5
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1148 move.w x_pos.w, d2
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1149 move.l base_cmd.w, d3
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1150 .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1151 moveq #0, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1152 move.b (a6)+, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1153 beq .end
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1154 cmp.b #$A, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1155 beq .newline
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1156 tst.b (-32, a5, d1.w)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1157 beq .narrow
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1158 add.w d0, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1159 move.w d1, (a0)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1160 addq #2, d2
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1161 bra .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1162 .narrow
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1163 add.w d0, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1164 move.w d1, (a0)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1165 addq #1, d2
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1166 move.l d2, d1
791
60686f8d5e48 Add a couple of comments to menu.s68
Michael Pavone <pavone@retrodev.com>
parents: 790
diff changeset
1167 ;switch to other plane
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1168 and.w #$FFFE, d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1169 swap d1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1170 eor.l #$20000000, d3
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1171 add.l d3, d1
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1172 move.l d1, (a1)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1173 bra .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1174 .newline
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1175 moveq #0, d2
791
60686f8d5e48 Add a couple of comments to menu.s68
Michael Pavone <pavone@retrodev.com>
parents: 790
diff changeset
1176 ;switch back to plane A
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1177 and.l #$DFFFFFFF, d3
791
60686f8d5e48 Add a couple of comments to menu.s68
Michael Pavone <pavone@retrodev.com>
parents: 790
diff changeset
1178 ;skip to next row
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1179 add.l #$00800000, d3
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1180 move.l d3, (a1)
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1181 bra .loop
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1182 .end
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1183 move.w d2, x_pos.w
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1184 move.l d3, base_cmd.w
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1185 rts
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1186
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1187 ;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
1188 ;a6 - pointer to string
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1189 ;a0 - VDP data port
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1190 ;d0 - base tile attribute
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1191 ;d1 - x col
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1192 ;d2 - y col
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1193 ;
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1194 print_string_fixed:
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1195 ;multiply x by 2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1196 add.w d1, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1197 ;multiply y by 128
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1198 lsl.w #7, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1199 add.w d2, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1200 add.w #$8000, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1201 move.w d1, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1202 and.w #$3FFF, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1203 rol.w #2, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1204 and.w #3, d2
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1205 ori.w #(VDP_VRAM_WRITE >> 16), d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1206 swap d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1207 move.w d2, d1
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1208 move.l d1, (a1)
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1209 .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1210 moveq #0, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1211 move.b (a6)+, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1212 beq .end
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1213 add.w d0, d1
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1214 move.w d1, (a0)
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1215 bra .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1216 .end
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1217 rts
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1218
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1219 ;Returns string length in d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1220 ;a6 - pointer to string
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1221 strlen:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1222 moveq #-1, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1223 .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1224 addq #1, d0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1225 tst.b (a6)+
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1226 bne .loop
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1227 rts
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1228
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1229 align 1
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1230 font:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1231 incbin font_interlace_variable.tiles
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1232 fontend
827
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1233 arrow:
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1234 incbin arrow.tiles
35f5658d141f Add selection arrow to menu
Michael Pavone <pavone@retrodev.com>
parents: 814
diff changeset
1235 arrowend:
909
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1236 cursor:
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1237 incbin cursor.tiles
e60eb88d7b09 Added mouse support to menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 872
diff changeset
1238 cursorend:
917
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 910
diff changeset
1239 button:
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 910
diff changeset
1240 incbin button.tiles
f057975212e9 Added button graphic for menu
Michael Pavone <pavone@retrodev.com>
parents: 910
diff changeset
1241 buttonend:
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1242 fontfixed:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1243 incbin font.tiles
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1244 fontfixedend:
789
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1245
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1246 widths:
41e83b38bdc8 Initial work on silly Genesis based menu
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1247 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
1248 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
1249 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
1250 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
1251 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
1252
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1253 main_menu:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1254 dc.b "Load ROM", 0
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1255 dc.b "About", 0
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1256 dc.b "Exit", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1257 dc.b 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1258
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1259 align 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1260 main_menu_func:
946
6b90ec50daf3 Get "Load ROM" menu option working correctly
Michael Pavone <pavone@retrodev.com>
parents: 945
diff changeset
1261 dc.l menu_start
945
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1262 dc.l show_about
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1263 dc.l exit
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1264
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1265 about_menu:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1266 dc.b "Return", 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1267 dc.b 0
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1268
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1269 align 1
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1270 about_menu_func:
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1271 dc.l show_main_menu
67f738bda7e2 Working about menu
Michael Pavone <pavone@retrodev.com>
parents: 944
diff changeset
1272
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1273 pause_menu:
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1274 dc.b "Resume", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1275 dc.b "Load ROM", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1276 dc.b "Save State", 0
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1277 dc.b "Load State", 0
942
74bb286e6174 Draw button labels
Michael Pavone <pavone@retrodev.com>
parents: 941
diff changeset
1278 dc.b "Exit", 0
941
c96647630320 WIP buttons in menu ROM
Michael Pavone <pavone@retrodev.com>
parents: 932
diff changeset
1279 dc.b 0
950
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1280
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1281 align 1
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1282 pause_menu_func
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1283 dc.l resume
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1284 dc.l menu_start
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1285 dc.l save_state
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1286 dc.l load_state
938c72a2f7a9 Initial work on pause menu
Michael Pavone <pavone@retrodev.com>
parents: 949
diff changeset
1287 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
1288
790
e8b14d5a5b5a Add something resembling a proper header
Michael Pavone <pavone@retrodev.com>
parents: 789
diff changeset
1289 rom_end: