2 # Copy ROM-mirror area to bank 0x00
4 if %EVAL(ROMM_CONFIG & 0x01) == 0x01
6 set variable ROMM_BANK = %EVAL(ROMM_CONFIG >> 4)
7 set variable ROMM_SIZE = %EVAL((ROMM_CONFIG >> 1) & 0x03)
9 print "\n\n>Set ROM-mirror memory map...\n"
13 set map /read H'00E000..H'00FFFF
17 move H'f0e000..H'F0FFFF,H'e000
19 elseif %ROMM_BANK == 0x01
21 move H'f1e000..H'F1FFFF,H'e000
23 elseif %ROMM_BANK == 0x02
25 move H'f2e000..H'F2FFFF,H'e000
27 elseif %ROMM_BANK == 0x03
29 move H'f3e000..H'F3FFFF,H'e000
31 elseif %ROMM_BANK == 0x04
33 move H'f4e000..H'F4FFFF,H'e000
35 elseif %ROMM_BANK == 0x05
37 move H'f5e000..H'F5FFFF,H'e000
39 elseif %ROMM_BANK == 0x06
41 move H'f6e000..H'F6FFFF,H'e000
43 elseif %ROMM_BANK == 0x07
45 move H'f7e000..H'F7FFFF,H'e000
47 elseif %ROMM_BANK == 0x08
49 move H'f8e000..H'F8FFFF,H'e000
51 elseif %ROMM_BANK == 0x09
53 move H'f9e000..H'F9FFFF,H'e000
55 elseif %ROMM_BANK == 0x0A
57 move H'fAe000..H'FAFFFF,H'e000
59 elseif %ROMM_BANK == 0x0B
61 move H'fBe000..H'FBFFFF,H'e000
63 elseif %ROMM_BANK == 0x0B
65 move H'fBe000..H'FBFFFF,H'e000
67 elseif %ROMM_BANK == 0x0C
69 move H'fCe000..H'FCFFFF,H'e000
71 elseif %ROMM_BANK == 0x0D
73 move H'fde000..H'FDFFFF,H'e000
75 elseif %ROMM_BANK == 0x0E
77 move H'fee000..H'FEFFFF,H'e000
79 elseif %ROMM_BANK == 0x0F
81 move H'ffe000..H'FFFFFF,H'e000
83 endif # ROMM_BANK selection
85 elseif %ROMM_SIZE == 1
86 set map /read H'00C000..H'00FFFF
90 move H'f0c000..H'F0FFFF,H'c000
92 elseif %ROMM_BANK == 0x01
94 move H'f1c000..H'F1FFFF,H'c000
96 elseif %ROMM_BANK == 0x02
98 move H'f2c000..H'F2FFFF,H'c000
100 elseif %ROMM_BANK == 0x03
102 move H'f3c000..H'F3FFFF,H'c000
104 elseif %ROMM_BANK == 0x04
106 move H'f4c000..H'F4FFFF,H'c000
108 elseif %ROMM_BANK == 0x05
110 move H'f5c000..H'F5FFFF,H'c000
112 elseif %ROMM_BANK == 0x06
114 move H'f6c000..H'F6FFFF,H'c000
116 elseif %ROMM_BANK == 0x07
118 move H'f7c000..H'F7FFFF,H'c000
120 elseif %ROMM_BANK == 0x08
122 move H'f8c000..H'F8FFFF,H'c000
124 elseif %ROMM_BANK == 0x09
126 move H'f9c000..H'F9FFFF,H'c000
128 elseif %ROMM_BANK == 0x0A
130 move H'fAc000..H'FAFFFF,H'c000
132 elseif %ROMM_BANK == 0x0B
134 move H'fBc000..H'FBFFFF,H'c000
136 elseif %ROMM_BANK == 0x0B
138 move H'fBc000..H'FBFFFF,H'c000
140 elseif %ROMM_BANK == 0x0C
142 move H'fCc000..H'FCFFFF,H'c000
144 elseif %ROMM_BANK == 0x0D
146 move H'fdc000..H'FDFFFF,H'c000
148 elseif %ROMM_BANK == 0x0E
150 move H'fec000..H'FEFFFF,H'c000
152 elseif %ROMM_BANK == 0x0F
154 move H'ffc000..H'FFFFFF,H'c000
156 endif # ROMM_BANK selection
158 elseif %ROMM_SIZE == 2
159 set map /read H'00A000..H'00FFFF
161 if %ROMM_BANK == 0x00
163 move H'f0a000..H'F0FFFF,H'a000
165 elseif %ROMM_BANK == 0x01
167 move H'f1a000..H'F1FFFF,H'a000
169 elseif %ROMM_BANK == 0x02
171 move H'f2a000..H'F2FFFF,H'a000
173 elseif %ROMM_BANK == 0x03
175 move H'f3a000..H'F3FFFF,H'a000
177 elseif %ROMM_BANK == 0x04
179 move H'f4a000..H'F4FFFF,H'a000
181 elseif %ROMM_BANK == 0x05
183 move H'f5a000..H'F5FFFF,H'a000
185 elseif %ROMM_BANK == 0x06
187 move H'f6a000..H'F6FFFF,H'a000
189 elseif %ROMM_BANK == 0x07
191 move H'f7a000..H'F7FFFF,H'a000
193 elseif %ROMM_BANK == 0x08
195 move H'f8a000..H'F8FFFF,H'a000
197 elseif %ROMM_BANK == 0x09
199 move H'f9a000..H'F9FFFF,H'a000
201 elseif %ROMM_BANK == 0x0A
203 move H'fAa000..H'FAFFFF,H'a000
205 elseif %ROMM_BANK == 0x0B
207 move H'fBa000..H'FBFFFF,H'a000
209 elseif %ROMM_BANK == 0x0B
211 move H'fBa000..H'FBFFFF,H'a000
213 elseif %ROMM_BANK == 0x0C
215 move H'fCa000..H'FCFFFF,H'a000
217 elseif %ROMM_BANK == 0x0D
219 move H'fda000..H'FDFFFF,H'a000
221 elseif %ROMM_BANK == 0x0E
223 move H'fea000..H'FEFFFF,H'a000
225 elseif %ROMM_BANK == 0x0F
227 move H'ffa000..H'FFFFFF,H'a000
229 endif # ROMM_BANK selection
231 elseif %ROMM_SIZE == 3
232 set map /read H'008000..H'00FFFF
234 if %ROMM_BANK == 0x00
236 move H'f08000..H'F0FFFF,H'8000
238 elseif %ROMM_BANK == 0x01
240 move H'f18000..H'F1FFFF,H'8000
242 elseif %ROMM_BANK == 0x02
244 move H'f28000..H'F2FFFF,H'8000
246 elseif %ROMM_BANK == 0x03
248 move H'f38000..H'F3FFFF,H'8000
250 elseif %ROMM_BANK == 0x04
252 move H'f48000..H'F4FFFF,H'8000
254 elseif %ROMM_BANK == 0x05
256 move H'f58000..H'F5FFFF,H'8000
258 elseif %ROMM_BANK == 0x06
260 move H'f68000..H'F6FFFF,H'8000
262 elseif %ROMM_BANK == 0x07
264 move H'f78000..H'F7FFFF,H'8000
266 elseif %ROMM_BANK == 0x08
268 move H'f88000..H'F8FFFF,H'8000
270 elseif %ROMM_BANK == 0x09
272 move H'f98000..H'F9FFFF,H'8000
274 elseif %ROMM_BANK == 0x0A
276 move H'fA8000..H'FAFFFF,H'8000
278 elseif %ROMM_BANK == 0x0B
280 move H'fB8000..H'FBFFFF,H'8000
282 elseif %ROMM_BANK == 0x0B
284 move H'fB8000..H'FBFFFF,H'8000
286 elseif %ROMM_BANK == 0x0C
288 move H'fC8000..H'FCFFFF,H'8000
290 elseif %ROMM_BANK == 0x0D
292 move H'fd8000..H'FDFFFF,H'8000
294 elseif %ROMM_BANK == 0x0E
296 move H'fe8000..H'FEFFFF,H'8000
298 elseif %ROMM_BANK == 0x0F
300 move H'ff8000..H'FFFFFF,H'8000
302 endif # ROMM_BANK selection
304 endif # ROMM_SIZE selection
306 print ">Copy ROMCONST for simulation..."
309 print "\n-----------------------------------------------------------"
310 print "\nUse command \"batch prc\\romconst.prc\" after each download"
311 print "\n-----------------------------------------------------------"
315 print "\n----------------------"
316 print "\nROM Mirror disabled!!!"
317 print "\n----------------------"
321 print "\n-------------------------------------------------------------------"
322 print "\nSetting CKMR to 0xF0 to allow for the Clock Wait in that start.asm."
323 print "\n-------------------------------------------------------------------"
325 set MEM /byte 0x0403 = 0xF0