1837 lines
107 KiB
Plaintext
1837 lines
107 KiB
Plaintext
1 ;--------------------------------------------------------
|
|
2 ; File Created by SDCC : free open source ISO C Compiler
|
|
3 ; Version 4.6.0 #16555 (MINGW64)
|
|
4 ;--------------------------------------------------------
|
|
5 .module main
|
|
6
|
|
7 .optsdcc -mz80 sdcccall(1)
|
|
8 ;--------------------------------------------------------
|
|
9 ; Public variables in this module
|
|
10 ;--------------------------------------------------------
|
|
11 .globl _main
|
|
12 .globl _main_start
|
|
13 .globl _xm_update_info
|
|
14 .globl _xm_draw_stats_labels
|
|
15 .globl _put_time
|
|
16 .globl _put_dec3
|
|
17 .globl _put_hex2
|
|
18 .globl _xm_draw_static_labels
|
|
19 .globl _copy_file_name
|
|
20 .globl _error_playback
|
|
21 .globl _error_oom
|
|
22 .globl _error_esp
|
|
23 .globl _about
|
|
24 .globl _wait_frames
|
|
25 .globl _wait_esc_key
|
|
26 .globl _play_xm
|
|
27 .globl _esp_init
|
|
28 .globl _esp_create_obj
|
|
29 .globl _esp_wait_status
|
|
30 .globl _esp_rd_end
|
|
31 .globl _esp_send_dma
|
|
32 .globl _esp_wr_end
|
|
33 .globl _esp_wr_reg32
|
|
34 .globl _esp_wr_reg8
|
|
35 .globl _esp_rd_regs
|
|
36 .globl _esp_rd_reg32
|
|
37 .globl _esp_rd_reg8
|
|
38 .globl _esp_cmd
|
|
39 .globl _wc_exit
|
|
40 .globl _wc_prsrw_attr
|
|
41 .globl _wc_prsrw
|
|
42 .globl _wc_key_pgdn
|
|
43 .globl _wc_key_pgup
|
|
44 .globl _wc_key_esc
|
|
45 .globl _wc_load512
|
|
46 .globl _wc_rresb
|
|
47 .globl _wc_prwow
|
|
48 .globl _strlen
|
|
49 .globl _xm_handle
|
|
50 .globl _total_samples
|
|
51 .globl _file_name
|
|
52 .globl _p_file_name
|
|
53 .globl _last_esp_status
|
|
54 .globl _call_type
|
|
55 .globl _file_ext
|
|
56 .globl _filesize
|
|
57 .globl _ret_sp
|
|
58 .globl _fs_buf
|
|
59 .globl _state_esp
|
|
60 .globl _win_about
|
|
61 .globl _win_xm
|
|
62 .globl _err_playback
|
|
63 .globl _err_out_of_mem
|
|
64 .globl _err_no_esp
|
|
65 .globl _esp_wait_busy
|
|
66 ;--------------------------------------------------------
|
|
67 ; special function registers
|
|
68 ;--------------------------------------------------------
|
|
00000057 69 _SPI_DATA = 0x0057
|
|
00000077 70 _SPI_CTRL = 0x0077
|
|
000000FE 71 _BORDER = 0x00fe
|
|
000000AF 72 _TS_VCONFIG = 0x00af
|
|
000000AF 73 _TS_STATUS = 0x00af
|
|
000001AF 74 _TS_VPAGE = 0x01af
|
|
000002AF 75 _TS_GXOFFSL = 0x02af
|
|
000003AF 76 _TS_GXOFFSH = 0x03af
|
|
000004AF 77 _TS_GYOFFSL = 0x04af
|
|
000005AF 78 _TS_GYOFFSH = 0x05af
|
|
000006AF 79 _TS_TSCONFIG = 0x06af
|
|
000007AF 80 _TS_PALSEL = 0x07af
|
|
00000FAF 81 _TS_BORDER = 0x0faf
|
|
000010AF 82 _TS_PAGE0 = 0x10af
|
|
000011AF 83 _TS_PAGE1 = 0x11af
|
|
000012AF 84 _TS_PAGE2 = 0x12af
|
|
000013AF 85 _TS_PAGE3 = 0x13af
|
|
000015AF 86 _TS_FMADDR = 0x15af
|
|
000016AF 87 _TS_TMPAGE = 0x16af
|
|
000017AF 88 _TS_T0GPAGE = 0x17af
|
|
000018AF 89 _TS_T1GPAGE = 0x18af
|
|
000019AF 90 _TS_SGPAGE = 0x19af
|
|
00001AAF 91 _TS_DMASADDRL = 0x1aaf
|
|
00001BAF 92 _TS_DMASADDRH = 0x1baf
|
|
00001CAF 93 _TS_DMASADDRX = 0x1caf
|
|
00001DAF 94 _TS_DMADADDRL = 0x1daf
|
|
00001EAF 95 _TS_DMADADDRH = 0x1eaf
|
|
00001FAF 96 _TS_DMADADDRX = 0x1faf
|
|
000020AF 97 _TS_SYSCONFIG = 0x20af
|
|
000021AF 98 _TS_MEMCONFIG = 0x21af
|
|
000022AF 99 _TS_HSINT = 0x22af
|
|
000023AF 100 _TS_VSINTL = 0x23af
|
|
000024AF 101 _TS_VSINTH = 0x24af
|
|
000025AF 102 _TS_DMAWPD = 0x25af
|
|
000026AF 103 _TS_DMALEN = 0x26af
|
|
000027AF 104 _TS_DMACTR = 0x27af
|
|
000027AF 105 _TS_DMASTATUS = 0x27af
|
|
000028AF 106 _TS_DMANUM = 0x28af
|
|
000029AF 107 _TS_FDDVIRT = 0x29af
|
|
00002AAF 108 _TS_INTMASK = 0x2aaf
|
|
00002BAF 109 _TS_CACHECONF = 0x2baf
|
|
00002CAF 110 _TS_DMANUMH = 0x2caf
|
|
00002DAF 111 _TS_DMAWPA = 0x2daf
|
|
000040AF 112 _TS_T0XOFFSL = 0x40af
|
|
000041AF 113 _TS_T0XOFFSH = 0x41af
|
|
000042AF 114 _TS_T0YOFFSL = 0x42af
|
|
000043AF 115 _TS_T0YOFFSH = 0x43af
|
|
000044AF 116 _TS_T1XOFFSL = 0x44af
|
|
000045AF 117 _TS_T1XOFFSH = 0x45af
|
|
000046AF 118 _TS_T1YOFFSL = 0x46af
|
|
000047AF 119 _TS_T1YOFFSH = 0x47af
|
|
120 ;--------------------------------------------------------
|
|
121 ; ram data
|
|
122 ;--------------------------------------------------------
|
|
123 .area _DATA
|
|
00000000 124 _state_esp::
|
|
00000000 125 .ds 1
|
|
00000001 126 _fs_buf::
|
|
00000001 127 .ds 4096
|
|
00001001 128 _ret_sp::
|
|
00001001 129 .ds 2
|
|
00001003 130 _filesize::
|
|
00001003 131 .ds 4
|
|
00001007 132 _file_ext::
|
|
00001007 133 .ds 1
|
|
00001008 134 _call_type::
|
|
00001008 135 .ds 1
|
|
00001009 136 _last_esp_status::
|
|
00001009 137 .ds 1
|
|
0000100A 138 _p_file_name::
|
|
0000100A 139 .ds 2
|
|
0000100C 140 _file_name::
|
|
0000100C 141 .ds 33
|
|
0000102D 142 _total_samples::
|
|
0000102D 143 .ds 4
|
|
00001031 144 _xm_handle::
|
|
00001031 145 .ds 1
|
|
00001032 146 _hexbuf:
|
|
00001032 147 .ds 2
|
|
00001034 148 _decbuf:
|
|
00001034 149 .ds 3
|
|
00001037 150 _timebuf:
|
|
00001037 151 .ds 5
|
|
152 ;--------------------------------------------------------
|
|
153 ; ram data
|
|
154 ;--------------------------------------------------------
|
|
155 .area _INITIALIZED
|
|
156 ;--------------------------------------------------------
|
|
157 ; absolute ram data
|
|
158 ;--------------------------------------------------------
|
|
159 .area _DABS (ABS)
|
|
160 .area _DABS (ABS)
|
|
161 ;--------------------------------------------------------
|
|
162 ; global & static initialisations
|
|
163 ;--------------------------------------------------------
|
|
164 .area _HOME
|
|
165 .area _GSINIT
|
|
166 .area _GSFINAL
|
|
167 .area _GSINIT
|
|
168 ;--------------------------------------------------------
|
|
169 ; Home
|
|
170 ;--------------------------------------------------------
|
|
171 .area _HOME
|
|
172 .area _HOME
|
|
173 ;--------------------------------------------------------
|
|
174 ; code
|
|
175 ;--------------------------------------------------------
|
|
176 .area _CODE
|
|
177 ;src/wc_api.c:34: void wc_exit(u8 rc) __naked
|
|
178 ; ---------------------------------
|
|
179 ; Function wc_exit
|
|
180 ; ---------------------------------
|
|
00000000 181 _wc_exit::
|
|
182 ;src/wc_api.c:40: __endasm;
|
|
00000000 ED 7Br01r10 [20] 183 ld sp, (_ret_sp)
|
|
00000004 C9 [10] 184 ret
|
|
185 ;src/wc_api.c:41: }
|
|
186 ;src/esp32.c:18: void esp_cmd(u8 cmd)
|
|
187 ; ---------------------------------
|
|
188 ; Function esp_cmd
|
|
189 ; ---------------------------------
|
|
00000005 190 _esp_cmd::
|
|
00000005 4F [ 4] 191 ld c, a
|
|
192 ;src/esp32.c:20: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000006 3E 13 [ 7] 193 ld a, #0x13
|
|
00000008 D3 77 [11] 194 out (_SPI_CTRL), a
|
|
195 ;src/esp32.c:21: SPI_DATA = ESP_SPI_CMD_WR_REGS;
|
|
0000000A 3E 01 [ 7] 196 ld a, #0x01
|
|
0000000C D3 57 [11] 197 out (_SPI_DATA), a
|
|
198 ;src/esp32.c:22: SPI_DATA = ESP_REG_COMMAND;
|
|
0000000E AF [ 4] 199 xor a, a
|
|
0000000F D3 57 [11] 200 out (_SPI_DATA), a
|
|
201 ;src/esp32.c:23: SPI_DATA; // dummy
|
|
00000011 DB 57 [11] 202 in a, (_SPI_DATA)
|
|
203 ;src/esp32.c:24: SPI_DATA = cmd; // Command
|
|
00000013 79 [ 4] 204 ld a, c
|
|
00000014 D3 57 [11] 205 out (_SPI_DATA), a
|
|
206 ;src/esp32.c:25: SPI_DATA = ESP_ST_IDLE; // Reset status
|
|
00000016 AF [ 4] 207 xor a, a
|
|
00000017 D3 57 [11] 208 out (_SPI_DATA), a
|
|
209 ;src/esp32.c:26: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000019 3E 03 [ 7] 210 ld a, #0x03
|
|
0000001B D3 77 [11] 211 out (_SPI_CTRL), a
|
|
212 ;src/esp32.c:27: }
|
|
0000001D C9 [10] 213 ret
|
|
214 ;src/esp32.c:29: u8 esp_rd_reg8(u8 reg)
|
|
215 ; ---------------------------------
|
|
216 ; Function esp_rd_reg8
|
|
217 ; ---------------------------------
|
|
0000001E 218 _esp_rd_reg8::
|
|
0000001E 4F [ 4] 219 ld c, a
|
|
220 ;src/esp32.c:31: SPI_CTRL = SPI_ESP_CS_ON;
|
|
0000001F 3E 13 [ 7] 221 ld a, #0x13
|
|
00000021 D3 77 [11] 222 out (_SPI_CTRL), a
|
|
223 ;src/esp32.c:32: SPI_DATA = ESP_SPI_CMD_RD_REGS;
|
|
00000023 3E 02 [ 7] 224 ld a, #0x02
|
|
00000025 D3 57 [11] 225 out (_SPI_DATA), a
|
|
226 ;src/esp32.c:33: SPI_DATA = reg;
|
|
00000027 79 [ 4] 227 ld a, c
|
|
00000028 D3 57 [11] 228 out (_SPI_DATA), a
|
|
229 ;src/esp32.c:34: SPI_DATA; // dummy
|
|
0000002A DB 57 [11] 230 in a, (_SPI_DATA)
|
|
231 ;src/esp32.c:35: SPI_DATA; // dummy
|
|
0000002C DB 57 [11] 232 in a, (_SPI_DATA)
|
|
233 ;src/esp32.c:36: u8 rc = SPI_DATA;
|
|
0000002E DB 57 [11] 234 in a, (_SPI_DATA)
|
|
00000030 4F [ 4] 235 ld c, a
|
|
236 ;src/esp32.c:37: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000031 3E 03 [ 7] 237 ld a, #0x03
|
|
00000033 D3 77 [11] 238 out (_SPI_CTRL), a
|
|
239 ;src/esp32.c:39: return rc;
|
|
00000035 79 [ 4] 240 ld a, c
|
|
241 ;src/esp32.c:40: }
|
|
00000036 C9 [10] 242 ret
|
|
243 ;src/esp32.c:42: u32 esp_rd_reg32(u8 reg)
|
|
244 ; ---------------------------------
|
|
245 ; Function esp_rd_reg32
|
|
246 ; ---------------------------------
|
|
00000037 247 _esp_rd_reg32::
|
|
00000037 DD E5 [15] 248 push ix
|
|
00000039 DD 21 00 00 [14] 249 ld ix, #0
|
|
0000003D DD 39 [15] 250 add ix, sp
|
|
0000003F F5 [11] 251 push af
|
|
00000040 F5 [11] 252 push af
|
|
00000041 4F [ 4] 253 ld c, a
|
|
254 ;src/esp32.c:44: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000042 3E 13 [ 7] 255 ld a, #0x13
|
|
00000044 D3 77 [11] 256 out (_SPI_CTRL), a
|
|
257 ;src/esp32.c:45: SPI_DATA = ESP_SPI_CMD_RD_REGS;
|
|
00000046 3E 02 [ 7] 258 ld a, #0x02
|
|
00000048 D3 57 [11] 259 out (_SPI_DATA), a
|
|
260 ;src/esp32.c:46: SPI_DATA = reg;
|
|
0000004A 79 [ 4] 261 ld a, c
|
|
0000004B D3 57 [11] 262 out (_SPI_DATA), a
|
|
263 ;src/esp32.c:47: SPI_DATA; // dummy
|
|
0000004D DB 57 [11] 264 in a, (_SPI_DATA)
|
|
265 ;src/esp32.c:48: SPI_DATA; // dummy
|
|
0000004F DB 57 [11] 266 in a, (_SPI_DATA)
|
|
267 ;src/esp32.c:49: u32 rc = SPI_DATA;
|
|
00000051 DB 57 [11] 268 in a, (_SPI_DATA)
|
|
00000053 4F [ 4] 269 ld c, a
|
|
270 ;src/esp32.c:50: rc |= (u32)SPI_DATA << 8;
|
|
00000054 DB 57 [11] 271 in a, (_SPI_DATA)
|
|
00000056 57 [ 4] 272 ld d, a
|
|
00000057 59 [ 4] 273 ld e, c
|
|
274 ;src/esp32.c:51: rc |= (u32)SPI_DATA << 16;
|
|
00000058 DB 57 [11] 275 in a, (_SPI_DATA)
|
|
0000005A DD 77 FC [19] 276 ld -4 (ix), a
|
|
0000005D AF [ 4] 277 xor a, a
|
|
0000005E DD 77 FD [19] 278 ld -3 (ix), a
|
|
00000061 DD 77 FE [19] 279 ld -2 (ix), a
|
|
00000064 DD 77 FF [19] 280 ld -1 (ix), a
|
|
00000067 DD 7E FC [19] 281 ld a, -4 (ix)
|
|
0000006A DD 77 FE [19] 282 ld -2 (ix), a
|
|
0000006D AF [ 4] 283 xor a, a
|
|
0000006E DD 77 FF [19] 284 ld -1 (ix), a
|
|
00000071 DD 77 FC [19] 285 ld -4 (ix), a
|
|
00000074 DD 77 FD [19] 286 ld -3 (ix), a
|
|
00000077 DD 6E FE [19] 287 ld l, -2 (ix)
|
|
288 ;src/esp32.c:52: rc |= (u32)SPI_DATA << 24;
|
|
0000007A DB 57 [11] 289 in a, (_SPI_DATA)
|
|
0000007C DD 77 FC [19] 290 ld -4 (ix), a
|
|
0000007F AF [ 4] 291 xor a, a
|
|
00000080 DD 77 FD [19] 292 ld -3 (ix), a
|
|
00000083 DD 77 FE [19] 293 ld -2 (ix), a
|
|
00000086 DD 77 FF [19] 294 ld -1 (ix), a
|
|
00000089 DD 7E FC [19] 295 ld a, -4 (ix)
|
|
0000008C DD 77 FF [19] 296 ld -1 (ix), a
|
|
0000008F AF [ 4] 297 xor a, a
|
|
00000090 DD 77 FC [19] 298 ld -4 (ix), a
|
|
00000093 DD 77 FD [19] 299 ld -3 (ix), a
|
|
00000096 DD 77 FE [19] 300 ld -2 (ix), a
|
|
00000099 DD 66 FF [19] 301 ld h, -1 (ix)
|
|
302 ;src/esp32.c:53: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
0000009C 3E 03 [ 7] 303 ld a, #0x03
|
|
0000009E D3 77 [11] 304 out (_SPI_CTRL), a
|
|
305 ;src/esp32.c:55: return rc;
|
|
306 ;src/esp32.c:56: }
|
|
000000A0 DD F9 [10] 307 ld sp, ix
|
|
000000A2 DD E1 [14] 308 pop ix
|
|
000000A4 C9 [10] 309 ret
|
|
310 ;src/esp32.c:58: void esp_rd_regs(u8 reg, void *data, u8 size)
|
|
311 ; ---------------------------------
|
|
312 ; Function esp_rd_regs
|
|
313 ; ---------------------------------
|
|
000000A5 314 _esp_rd_regs::
|
|
000000A5 4F [ 4] 315 ld c, a
|
|
316 ;src/esp32.c:60: u8 *d = (u8*)data;
|
|
317 ;src/esp32.c:62: SPI_CTRL = SPI_ESP_CS_ON;
|
|
000000A6 3E 13 [ 7] 318 ld a, #0x13
|
|
000000A8 D3 77 [11] 319 out (_SPI_CTRL), a
|
|
320 ;src/esp32.c:63: SPI_DATA = ESP_SPI_CMD_RD_REGS;
|
|
000000AA 3E 02 [ 7] 321 ld a, #0x02
|
|
000000AC D3 57 [11] 322 out (_SPI_DATA), a
|
|
323 ;src/esp32.c:64: SPI_DATA = reg;
|
|
000000AE 79 [ 4] 324 ld a, c
|
|
000000AF D3 57 [11] 325 out (_SPI_DATA), a
|
|
326 ;src/esp32.c:65: SPI_DATA; // dummy
|
|
000000B1 DB 57 [11] 327 in a, (_SPI_DATA)
|
|
328 ;src/esp32.c:66: SPI_DATA; // dummy
|
|
000000B3 DB 57 [11] 329 in a, (_SPI_DATA)
|
|
330 ;src/esp32.c:67: while (size--) *d++ = SPI_DATA;
|
|
000000B5 FD 21 02 00 [14] 331 ld iy, #2
|
|
000000B9 FD 39 [15] 332 add iy, sp
|
|
000000BB FD 4E 00 [19] 333 ld c, 0 (iy)
|
|
000000BE 334 00101$:
|
|
000000BE 79 [ 4] 335 ld a, c
|
|
000000BF 0D [ 4] 336 dec c
|
|
000000C0 B7 [ 4] 337 or a, a
|
|
000000C1 28 07 [12] 338 jr z, 00103$
|
|
000000C3 DB 57 [11] 339 in a, (_SPI_DATA)
|
|
000000C5 12 [ 7] 340 ld (de), a
|
|
000000C6 13 [ 6] 341 inc de
|
|
000000C7 C3rBEr00 [10] 342 jp 00101$
|
|
000000CA 343 00103$:
|
|
344 ;src/esp32.c:68: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
000000CA 3E 03 [ 7] 345 ld a, #0x03
|
|
000000CC D3 77 [11] 346 out (_SPI_CTRL), a
|
|
347 ;src/esp32.c:69: }
|
|
000000CE E1 [10] 348 pop hl
|
|
000000CF 33 [ 6] 349 inc sp
|
|
000000D0 E9 [ 4] 350 jp (hl)
|
|
351 ;src/esp32.c:71: void esp_wr_reg8(u8 reg, u8 data)
|
|
352 ; ---------------------------------
|
|
353 ; Function esp_wr_reg8
|
|
354 ; ---------------------------------
|
|
000000D1 355 _esp_wr_reg8::
|
|
000000D1 47 [ 4] 356 ld b, a
|
|
000000D2 4D [ 4] 357 ld c, l
|
|
358 ;src/esp32.c:73: SPI_CTRL = SPI_ESP_CS_ON;
|
|
000000D3 3E 13 [ 7] 359 ld a, #0x13
|
|
000000D5 D3 77 [11] 360 out (_SPI_CTRL), a
|
|
361 ;src/esp32.c:74: SPI_DATA = ESP_SPI_CMD_WR_REGS;
|
|
000000D7 3E 01 [ 7] 362 ld a, #0x01
|
|
000000D9 D3 57 [11] 363 out (_SPI_DATA), a
|
|
364 ;src/esp32.c:75: SPI_DATA = reg;
|
|
000000DB 78 [ 4] 365 ld a, b
|
|
000000DC D3 57 [11] 366 out (_SPI_DATA), a
|
|
367 ;src/esp32.c:76: SPI_DATA; // dummy
|
|
000000DE DB 57 [11] 368 in a, (_SPI_DATA)
|
|
369 ;src/esp32.c:77: SPI_DATA = data;
|
|
000000E0 79 [ 4] 370 ld a, c
|
|
000000E1 D3 57 [11] 371 out (_SPI_DATA), a
|
|
372 ;src/esp32.c:78: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
000000E3 3E 03 [ 7] 373 ld a, #0x03
|
|
000000E5 D3 77 [11] 374 out (_SPI_CTRL), a
|
|
375 ;src/esp32.c:79: }
|
|
000000E7 C9 [10] 376 ret
|
|
377 ;src/esp32.c:81: void esp_wr_reg32(u8 reg, u32 data)
|
|
378 ; ---------------------------------
|
|
379 ; Function esp_wr_reg32
|
|
380 ; ---------------------------------
|
|
000000E8 381 _esp_wr_reg32::
|
|
000000E8 4F [ 4] 382 ld c, a
|
|
383 ;src/esp32.c:83: SPI_CTRL = SPI_ESP_CS_ON;
|
|
000000E9 3E 13 [ 7] 384 ld a, #0x13
|
|
000000EB D3 77 [11] 385 out (_SPI_CTRL), a
|
|
386 ;src/esp32.c:84: SPI_DATA = ESP_SPI_CMD_WR_REGS;
|
|
000000ED 3E 01 [ 7] 387 ld a, #0x01
|
|
000000EF D3 57 [11] 388 out (_SPI_DATA), a
|
|
389 ;src/esp32.c:85: SPI_DATA = reg;
|
|
000000F1 79 [ 4] 390 ld a, c
|
|
000000F2 D3 57 [11] 391 out (_SPI_DATA), a
|
|
392 ;src/esp32.c:86: SPI_DATA; // dummy
|
|
000000F4 DB 57 [11] 393 in a, (_SPI_DATA)
|
|
394 ;src/esp32.c:87: SPI_DATA = (u8)data;
|
|
000000F6 FD 21 02 00 [14] 395 ld iy, #2
|
|
000000FA FD 39 [15] 396 add iy, sp
|
|
000000FC FD 7E 00 [19] 397 ld a, 0 (iy)
|
|
000000FF D3 57 [11] 398 out (_SPI_DATA), a
|
|
399 ;src/esp32.c:88: SPI_DATA = (u8)(data >> 8);
|
|
00000101 FD 7E 01 [19] 400 ld a, 1 (iy)
|
|
00000104 D3 57 [11] 401 out (_SPI_DATA), a
|
|
402 ;src/esp32.c:89: SPI_DATA = (u8)(data >> 16);
|
|
00000106 FD 7E 02 [19] 403 ld a, 2 (iy)
|
|
00000109 D3 57 [11] 404 out (_SPI_DATA), a
|
|
405 ;src/esp32.c:90: SPI_DATA = (u8)(data >> 24);
|
|
0000010B FD 7E 03 [19] 406 ld a, 3 (iy)
|
|
0000010E D3 57 [11] 407 out (_SPI_DATA), a
|
|
408 ;src/esp32.c:91: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000110 3E 03 [ 7] 409 ld a, #0x03
|
|
00000112 D3 77 [11] 410 out (_SPI_CTRL), a
|
|
411 ;src/esp32.c:92: }
|
|
00000114 E1 [10] 412 pop hl
|
|
00000115 F1 [10] 413 pop af
|
|
00000116 F1 [10] 414 pop af
|
|
00000117 E9 [ 4] 415 jp (hl)
|
|
416 ;src/esp32.c:94: void esp_wr_end()
|
|
417 ; ---------------------------------
|
|
418 ; Function esp_wr_end
|
|
419 ; ---------------------------------
|
|
00000118 420 _esp_wr_end::
|
|
421 ;src/esp32.c:96: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000118 3E 13 [ 7] 422 ld a, #0x13
|
|
0000011A D3 77 [11] 423 out (_SPI_CTRL), a
|
|
424 ;src/esp32.c:97: SPI_DATA = ESP_SPI_CMD_W_END;
|
|
0000011C 3E 07 [ 7] 425 ld a, #0x07
|
|
0000011E D3 57 [11] 426 out (_SPI_DATA), a
|
|
427 ;src/esp32.c:98: SPI_DATA; // dummy
|
|
00000120 DB 57 [11] 428 in a, (_SPI_DATA)
|
|
429 ;src/esp32.c:99: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000122 3E 03 [ 7] 430 ld a, #0x03
|
|
00000124 D3 77 [11] 431 out (_SPI_CTRL), a
|
|
432 ;src/esp32.c:100: }
|
|
00000126 C9 [10] 433 ret
|
|
434 ;src/esp32.c:102: void esp_send_dma(u16 a, u8 p, u16 l, u16 n)
|
|
435 ; ---------------------------------
|
|
436 ; Function esp_send_dma
|
|
437 ; ---------------------------------
|
|
00000127 438 _esp_send_dma::
|
|
00000127 7D [ 4] 439 ld a, l
|
|
440 ;src/esp32.c:105: TS_DMASADDRL = (u8)a;
|
|
00000128 01 AF 1A [10] 441 ld bc, #_TS_DMASADDRL
|
|
0000012B ED 79 [12] 442 out (c), a
|
|
443 ;src/esp32.c:106: TS_DMASADDRH = (u8)((u16)a >> 8);
|
|
0000012D 7C [ 4] 444 ld a, h
|
|
0000012E 01 AF 1B [10] 445 ld bc, #_TS_DMASADDRH
|
|
00000131 ED 79 [12] 446 out (c), a
|
|
447 ;src/esp32.c:107: TS_DMASADDRX = p;
|
|
00000133 FD 21 02 00 [14] 448 ld iy, #2
|
|
00000137 FD 39 [15] 449 add iy, sp
|
|
00000139 FD 7E 00 [19] 450 ld a, 0 (iy)
|
|
0000013C 01 AF 1C [10] 451 ld bc, #_TS_DMASADDRX
|
|
0000013F ED 79 [12] 452 out (c), a
|
|
453 ;src/esp32.c:108: TS_DMALEN = (u8)((l >> 1) - 1);
|
|
00000141 FD 7E 01 [19] 454 ld a, 1 (iy)
|
|
00000144 FD 4E 02 [19] 455 ld c, 2 (iy)
|
|
00000147 FD 23 [10] 456 inc iy
|
|
00000149 CB 39 [ 8] 457 srl c
|
|
0000014B CB 1F [ 8] 458 rr a
|
|
0000014D 3D [ 4] 459 dec a
|
|
0000014E 01 AF 26 [10] 460 ld bc, #_TS_DMALEN
|
|
00000151 ED 79 [12] 461 out (c), a
|
|
462 ;src/esp32.c:109: TS_DMANUM = (u8)(n - 1);
|
|
00000153 FD 7E 02 [19] 463 ld a, 2 (iy)
|
|
00000156 3D [ 4] 464 dec a
|
|
00000157 01 AF 28 [10] 465 ld bc, #_TS_DMANUM
|
|
0000015A ED 79 [12] 466 out (c), a
|
|
467 ;src/esp32.c:111: SPI_CTRL = SPI_ESP_CS_ON;
|
|
0000015C 3E 13 [ 7] 468 ld a, #0x13
|
|
0000015E D3 77 [11] 469 out (_SPI_CTRL), a
|
|
470 ;src/esp32.c:112: SPI_DATA = ESP_SPI_CMD_WR_DATA;
|
|
00000160 3E 03 [ 7] 471 ld a, #0x03
|
|
00000162 D3 57 [11] 472 out (_SPI_DATA), a
|
|
473 ;src/esp32.c:113: SPI_DATA; // dummy
|
|
00000164 DB 57 [11] 474 in a, (_SPI_DATA)
|
|
475 ;src/esp32.c:114: SPI_DATA; // dummy
|
|
00000166 DB 57 [11] 476 in a, (_SPI_DATA)
|
|
477 ;src/esp32.c:115: TS_DMACTR = TS_DMA_RAM_SPI;
|
|
00000168 3E 82 [ 7] 478 ld a, #0x82
|
|
0000016A 01 AF 27 [10] 479 ld bc, #_TS_DMACTR
|
|
0000016D ED 79 [12] 480 out (c), a
|
|
481 ;src/esp32.c:116: while (TS_DMASTATUS & 0x80);
|
|
0000016F 482 00101$:
|
|
0000016F 3E 27 [ 7] 483 ld a, #>(_TS_DMASTATUS)
|
|
00000171 DB AF [11] 484 in a, (#<(_TS_DMASTATUS))
|
|
00000173 07 [ 4] 485 rlca
|
|
00000174 38 F9 [12] 486 jr c, 00101$
|
|
487 ;src/esp32.c:117: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000176 3E 03 [ 7] 488 ld a, #0x03
|
|
00000178 D3 77 [11] 489 out (_SPI_CTRL), a
|
|
490 ;src/esp32.c:119: esp_wr_end();
|
|
0000017A CDr18r01 [17] 491 call _esp_wr_end
|
|
492 ;src/esp32.c:120: esp_wait_busy(60000);
|
|
0000017D 11 60 EA [10] 493 ld de, #0xea60
|
|
00000180 21 00 00 [10] 494 ld hl, #0x0000
|
|
00000183 CDrD5r01 [17] 495 call _esp_wait_busy
|
|
496 ;src/esp32.c:121: }
|
|
00000186 E1 [10] 497 pop hl
|
|
00000187 F1 [10] 498 pop af
|
|
00000188 F1 [10] 499 pop af
|
|
00000189 33 [ 6] 500 inc sp
|
|
0000018A E9 [ 4] 501 jp (hl)
|
|
502 ;src/esp32.c:123: void esp_rd_end()
|
|
503 ; ---------------------------------
|
|
504 ; Function esp_rd_end
|
|
505 ; ---------------------------------
|
|
0000018B 506 _esp_rd_end::
|
|
507 ;src/esp32.c:125: SPI_CTRL = SPI_ESP_CS_ON;
|
|
0000018B 3E 13 [ 7] 508 ld a, #0x13
|
|
0000018D D3 77 [11] 509 out (_SPI_CTRL), a
|
|
510 ;src/esp32.c:126: SPI_DATA = ESP_SPI_CMD_R_END;
|
|
0000018F 3E 08 [ 7] 511 ld a, #0x08
|
|
00000191 D3 57 [11] 512 out (_SPI_DATA), a
|
|
513 ;src/esp32.c:127: SPI_DATA; // dummy
|
|
00000193 DB 57 [11] 514 in a, (_SPI_DATA)
|
|
515 ;src/esp32.c:128: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000195 3E 03 [ 7] 516 ld a, #0x03
|
|
00000197 D3 77 [11] 517 out (_SPI_CTRL), a
|
|
518 ;src/esp32.c:129: }
|
|
00000199 C9 [10] 519 ret
|
|
520 ;src/esp32.c:131: u32 esp_wait_status(u8 status, u32 timeout)
|
|
521 ; ---------------------------------
|
|
522 ; Function esp_wait_status
|
|
523 ; ---------------------------------
|
|
0000019A 524 _esp_wait_status::
|
|
0000019A DD E5 [15] 525 push ix
|
|
0000019C DD 21 00 00 [14] 526 ld ix, #0
|
|
000001A0 DD 39 [15] 527 add ix, sp
|
|
000001A2 4F [ 4] 528 ld c, a
|
|
529 ;src/esp32.c:133: while (--timeout) if (esp_rd_reg8(ESP_REG_STATUS) == status) break;
|
|
000001A3 DD 5E 04 [19] 530 ld e, 4 (ix)
|
|
000001A6 DD 56 05 [19] 531 ld d, 5 (ix)
|
|
000001A9 DD 6E 06 [19] 532 ld l, 6 (ix)
|
|
000001AC DD 66 07 [19] 533 ld h, 7 (ix)
|
|
000001AF 534 00103$:
|
|
000001AF 7B [ 4] 535 ld a, e
|
|
000001B0 C6 FF [ 7] 536 add a, #0xff
|
|
000001B2 5F [ 4] 537 ld e, a
|
|
000001B3 7A [ 4] 538 ld a, d
|
|
000001B4 CE FF [ 7] 539 adc a, #0xff
|
|
000001B6 57 [ 4] 540 ld d, a
|
|
000001B7 7D [ 4] 541 ld a, l
|
|
000001B8 CE FF [ 7] 542 adc a, #0xff
|
|
000001BA 6F [ 4] 543 ld l, a
|
|
000001BB 7C [ 4] 544 ld a, h
|
|
000001BC CE FF [ 7] 545 adc a, #0xff
|
|
000001BE 67 [ 4] 546 ld h, a
|
|
000001BF B5 [ 4] 547 or a, l
|
|
000001C0 B2 [ 4] 548 or a, d
|
|
000001C1 B3 [ 4] 549 or a, e
|
|
000001C2 28 0E [12] 550 jr z, 00105$
|
|
000001C4 E5 [11] 551 push hl
|
|
000001C5 C5 [11] 552 push bc
|
|
000001C6 D5 [11] 553 push de
|
|
000001C7 3E 01 [ 7] 554 ld a, #0x01
|
|
000001C9 CDr1Er00 [17] 555 call _esp_rd_reg8
|
|
000001CC D1 [10] 556 pop de
|
|
000001CD C1 [10] 557 pop bc
|
|
000001CE E1 [10] 558 pop hl
|
|
000001CF 91 [ 4] 559 sub a, c
|
|
000001D0 20 DD [12] 560 jr nz, 00103$
|
|
000001D2 561 00105$:
|
|
562 ;src/esp32.c:135: return timeout;
|
|
563 ;src/esp32.c:136: }
|
|
000001D2 DD E1 [14] 564 pop ix
|
|
000001D4 C9 [10] 565 ret
|
|
566 ;src/esp32.c:138: u32 esp_wait_busy(u32 timeout)
|
|
567 ; ---------------------------------
|
|
568 ; Function esp_wait_busy
|
|
569 ; ---------------------------------
|
|
000001D5 570 _esp_wait_busy::
|
|
571 ;src/esp32.c:140: while (--timeout) if (esp_rd_reg8(ESP_REG_STATUS) != ESP_ST_BUSY) break;
|
|
000001D5 572 00103$:
|
|
000001D5 7B [ 4] 573 ld a, e
|
|
000001D6 C6 FF [ 7] 574 add a, #0xff
|
|
000001D8 5F [ 4] 575 ld e, a
|
|
000001D9 7A [ 4] 576 ld a, d
|
|
000001DA CE FF [ 7] 577 adc a, #0xff
|
|
000001DC 57 [ 4] 578 ld d, a
|
|
000001DD 7D [ 4] 579 ld a, l
|
|
000001DE CE FF [ 7] 580 adc a, #0xff
|
|
000001E0 6F [ 4] 581 ld l, a
|
|
000001E1 7C [ 4] 582 ld a, h
|
|
000001E2 CE FF [ 7] 583 adc a, #0xff
|
|
000001E4 67 [ 4] 584 ld h, a
|
|
000001E5 B5 [ 4] 585 or a, l
|
|
000001E6 B2 [ 4] 586 or a, d
|
|
000001E7 B3 [ 4] 587 or a, e
|
|
000001E8 C8 [11] 588 ret z
|
|
000001E9 E5 [11] 589 push hl
|
|
000001EA D5 [11] 590 push de
|
|
000001EB 3E 01 [ 7] 591 ld a, #0x01
|
|
000001ED CDr1Er00 [17] 592 call _esp_rd_reg8
|
|
000001F0 D1 [10] 593 pop de
|
|
000001F1 E1 [10] 594 pop hl
|
|
000001F2 FE 02 [ 7] 595 cp a, #0x02
|
|
000001F4 28 DF [12] 596 jr z, 00103$
|
|
597 ;src/esp32.c:142: return timeout;
|
|
598 ;src/esp32.c:143: }
|
|
000001F6 C9 [10] 599 ret
|
|
600 ;src/esp32.c:145: int esp_create_obj(u32 size, u8 type)
|
|
601 ; ---------------------------------
|
|
602 ; Function esp_create_obj
|
|
603 ; ---------------------------------
|
|
000001F7 604 _esp_create_obj::
|
|
605 ;src/esp32.c:147: esp_wr_reg32(ESP_REG_DATA_SIZE, size);
|
|
000001F7 E5 [11] 606 push hl
|
|
000001F8 D5 [11] 607 push de
|
|
000001F9 3E 03 [ 7] 608 ld a, #0x03
|
|
000001FB CDrE8r00 [17] 609 call _esp_wr_reg32
|
|
610 ;src/esp32.c:148: esp_wr_reg8(ESP_REG_OBJ_TYPE, type);
|
|
000001FE FD 21 02 00 [14] 611 ld iy, #2
|
|
00000202 FD 39 [15] 612 add iy, sp
|
|
00000204 FD 6E 00 [19] 613 ld l, 0 (iy)
|
|
00000207 3E 02 [ 7] 614 ld a, #0x02
|
|
00000209 CDrD1r00 [17] 615 call _esp_wr_reg8
|
|
616 ;src/esp32.c:149: esp_cmd(ESP_CMD_MAKE_OBJECT);
|
|
0000020C 3E E0 [ 7] 617 ld a, #0xe0
|
|
0000020E CDr05r00 [17] 618 call _esp_cmd
|
|
619 ;src/esp32.c:150: esp_wait_busy(20000);
|
|
00000211 11 20 4E [10] 620 ld de, #0x4e20
|
|
00000214 21 00 00 [10] 621 ld hl, #0x0000
|
|
00000217 CDrD5r01 [17] 622 call _esp_wait_busy
|
|
623 ;src/esp32.c:153: return esp_rd_reg8(ESP_REG_OBJ_HANDLE);
|
|
0000021A 3E 0B [ 7] 624 ld a, #0x0b
|
|
0000021C CDr1Er00 [17] 625 call _esp_rd_reg8
|
|
0000021F 5F [ 4] 626 ld e, a
|
|
00000220 16 00 [ 7] 627 ld d, #0x00
|
|
628 ;src/esp32.c:154: }
|
|
00000222 E1 [10] 629 pop hl
|
|
00000223 33 [ 6] 630 inc sp
|
|
00000224 E9 [ 4] 631 jp (hl)
|
|
632 ;src/main.c:129: bool esp_init()
|
|
633 ; ---------------------------------
|
|
634 ; Function esp_init
|
|
635 ; ---------------------------------
|
|
00000225 636 _esp_init::
|
|
637 ;src/main.c:131: esp_cmd(ESP_CMD_NOP);
|
|
00000225 AF [ 4] 638 xor a, a
|
|
00000226 CDr05r00 [17] 639 call _esp_cmd
|
|
640 ;src/main.c:132: esp_rd_end();
|
|
00000229 CDr8Br01 [17] 641 call _esp_rd_end
|
|
642 ;src/main.c:133: esp_wr_end();
|
|
0000022C CDr18r01 [17] 643 call _esp_wr_end
|
|
644 ;src/main.c:137: return true;
|
|
0000022F 3E 01 [ 7] 645 ld a, #0x01
|
|
646 ;src/main.c:138: }
|
|
00000231 C9 [10] 647 ret
|
|
00000232 648 _err_no_esp:
|
|
00000232 01 649 .db #0x01 ; 1
|
|
00000233 00 650 .db #0x00 ; 0
|
|
00000234 18 651 .db #0x18 ; 24
|
|
00000235 0A 652 .db #0x0a ; 10
|
|
00000236 20 653 .db #0x20 ; 32
|
|
00000237 05 654 .db #0x05 ; 5
|
|
00000238 2F 655 .db #0x2f ; 47
|
|
00000239 00 656 .db #0x00 ; 0
|
|
0000023A 00 00 657 .dw #0x0000
|
|
0000023C 00 658 .db #0x00 ; 0
|
|
0000023D 00 659 .db #0x00 ; 0
|
|
0000023Er8Cr02 660 .dw __str_0
|
|
00000240r96r02 661 .dw __str_1
|
|
00000242r97r02 662 .dw __str_2
|
|
00000244 663 _err_out_of_mem:
|
|
00000244 01 664 .db #0x01 ; 1
|
|
00000245 00 665 .db #0x00 ; 0
|
|
00000246 FF 666 .db #0xff ; 255
|
|
00000247 FF 667 .db #0xff ; 255
|
|
00000248 20 668 .db #0x20 ; 32
|
|
00000249 05 669 .db #0x05 ; 5
|
|
0000024A 2F 670 .db #0x2f ; 47
|
|
0000024B 00 671 .db #0x00 ; 0
|
|
0000024C 00 00 672 .dw #0x0000
|
|
0000024E 00 673 .db #0x00 ; 0
|
|
0000024F 00 674 .db #0x00 ; 0
|
|
00000250r8Cr02 675 .dw __str_0
|
|
00000252r96r02 676 .dw __str_1
|
|
00000254rADr02 677 .dw __str_3
|
|
00000256 678 _err_playback:
|
|
00000256 01 679 .db #0x01 ; 1
|
|
00000257 00 680 .db #0x00 ; 0
|
|
00000258 FF 681 .db #0xff ; 255
|
|
00000259 FF 682 .db #0xff ; 255
|
|
0000025A 20 683 .db #0x20 ; 32
|
|
0000025B 05 684 .db #0x05 ; 5
|
|
0000025C 2F 685 .db #0x2f ; 47
|
|
0000025D 00 686 .db #0x00 ; 0
|
|
0000025E 00 00 687 .dw #0x0000
|
|
00000260 00 688 .db #0x00 ; 0
|
|
00000261 00 689 .db #0x00 ; 0
|
|
00000262r8Cr02 690 .dw __str_0
|
|
00000264r96r02 691 .dw __str_1
|
|
00000266rCDr02 692 .dw __str_4
|
|
00000268 693 _win_xm:
|
|
00000268 81 694 .db #0x81 ; 129
|
|
00000269 00 695 .db #0x00 ; 0
|
|
0000026A 19 696 .db #0x19 ; 25
|
|
0000026B 0A 697 .db #0x0a ; 10
|
|
0000026C 28 698 .db #0x28 ; 40
|
|
0000026D 0B 699 .db #0x0b ; 11
|
|
0000026E 4F 700 .db #0x4f ; 79 'O'
|
|
0000026F 00 701 .db #0x00 ; 0
|
|
00000270 00 00 702 .dw #0x0000
|
|
00000272 00 703 .db #0x00 ; 0
|
|
00000273 00 704 .db #0x00 ; 0
|
|
00000274rEBr02 705 .dw __str_5
|
|
00000276r96r02 706 .dw __str_1
|
|
00000278r00r03 707 .dw __str_6
|
|
0000027A 708 _win_about:
|
|
0000027A 01 709 .db #0x01 ; 1
|
|
0000027B 00 710 .db #0x00 ; 0
|
|
0000027C 16 711 .db #0x16 ; 22
|
|
0000027D 0A 712 .db #0x0a ; 10
|
|
0000027E 24 713 .db #0x24 ; 36
|
|
0000027F 05 714 .db #0x05 ; 5
|
|
00000280 4F 715 .db #0x4f ; 79 'O'
|
|
00000281 00 716 .db #0x00 ; 0
|
|
00000282 00 00 717 .dw #0x0000
|
|
00000284 00 718 .db #0x00 ; 0
|
|
00000285 00 719 .db #0x00 ; 0
|
|
00000286r0Er03 720 .dw __str_7
|
|
00000288r96r02 721 .dw __str_1
|
|
0000028Ar17r03 722 .dw __str_8
|
|
0000028C 723 __str_0:
|
|
0000028C 0E 724 .db 0x0e
|
|
0000028D 20 45 72 72 6F 72 21 725 .ascii " Error! "
|
|
20
|
|
00000295 00 726 .db 0x00
|
|
00000296 727 __str_1:
|
|
00000296 00 728 .db 0x00
|
|
00000297 729 __str_2:
|
|
00000297 0E 730 .db 0x0e
|
|
00000298 0C 731 .db 0x0c
|
|
00000299 01 732 .db 0x01
|
|
0000029A 4E 6F 20 45 53 50 33 733 .ascii "No ESP32 detected!"
|
|
32 20 64 65 74 65 63
|
|
74 65 64 21
|
|
000002AC 00 734 .db 0x00
|
|
000002AD 735 __str_3:
|
|
000002AD 0E 736 .db 0x0e
|
|
000002AE 0C 737 .db 0x0c
|
|
000002AF 01 738 .db 0x01
|
|
000002B0 4F 75 74 20 6F 66 20 739 .ascii "Out of memory (file too big)"
|
|
6D 65 6D 6F 72 79 20
|
|
28 66 69 6C 65 20 74
|
|
6F 6F 20 62 69 67 29
|
|
000002CC 00 740 .db 0x00
|
|
000002CD 741 __str_4:
|
|
000002CD 0E 742 .db 0x0e
|
|
000002CE 0C 743 .db 0x0c
|
|
000002CF 01 744 .db 0x01
|
|
000002D0 50 6C 61 79 62 61 63 745 .ascii "Playback error (bad file?)"
|
|
6B 20 65 72 72 6F 72
|
|
20 28 62 61 64 20 66
|
|
69 6C 65 3F 29
|
|
000002EA 00 746 .db 0x00
|
|
000002EB 747 __str_5:
|
|
000002EB 0E 748 .db 0x0e
|
|
000002EC 20 58 4D 2F 58 4D 5A 749 .ascii " XM/XMZ/S3M Player "
|
|
2F 53 33 4D 20 50 6C
|
|
61 79 65 72 20
|
|
000002FF 00 750 .db 0x00
|
|
00000300 751 __str_6:
|
|
00000300 0E 752 .db 0x0e
|
|
00000301 0C 753 .db 0x0c
|
|
00000302 01 754 .db 0x01
|
|
00000303 50 6C 61 79 69 6E 67 755 .ascii "Playing..."
|
|
2E 2E 2E
|
|
0000030D 00 756 .db 0x00
|
|
0000030E 757 __str_7:
|
|
0000030E 0E 758 .db 0x0e
|
|
0000030F 20 41 62 6F 75 74 20 759 .ascii " About "
|
|
00000316 00 760 .db 0x00
|
|
00000317 761 __str_8:
|
|
00000317 0E 762 .db 0x0e
|
|
00000318 0C 763 .db 0x0c
|
|
00000319 01 764 .db 0x01
|
|
0000031A 58 4D 20 50 6C 61 79 765 .ascii "XM Player v1.0"
|
|
65 72 20 76 31 2E 30
|
|
00000328 00 766 .db 0x00
|
|
767 ;src/main.c:142: bool play_xm()
|
|
768 ; ---------------------------------
|
|
769 ; Function play_xm
|
|
770 ; ---------------------------------
|
|
00000329 771 _play_xm::
|
|
00000329 DD E5 [15] 772 push ix
|
|
0000032B DD 21 00 00 [14] 773 ld ix, #0
|
|
0000032F DD 39 [15] 774 add ix, sp
|
|
00000331 21 EC FF [10] 775 ld hl, #-20
|
|
00000334 39 [11] 776 add hl, sp
|
|
00000335 F9 [ 6] 777 ld sp, hl
|
|
778 ;src/main.c:144: esp_cmd(ESP_CMD_TRACK_STOP);
|
|
00000336 3E A2 [ 7] 779 ld a, #0xa2
|
|
00000338 CDr05r00 [17] 780 call _esp_cmd
|
|
781 ;src/main.c:145: esp_wait_busy(10000);
|
|
0000033B 11 10 27 [10] 782 ld de, #0x2710
|
|
0000033E 21 00 00 [10] 783 ld hl, #0x0000
|
|
00000341 CDrD5r01 [17] 784 call _esp_wait_busy
|
|
785 ;src/main.c:146: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
00000344 3E E4 [ 7] 786 ld a, #0xe4
|
|
00000346 CDr05r00 [17] 787 call _esp_cmd
|
|
788 ;src/main.c:147: esp_wait_busy(10000);
|
|
00000349 11 10 27 [10] 789 ld de, #0x2710
|
|
0000034C 21 00 00 [10] 790 ld hl, #0x0000
|
|
0000034F CDrD5r01 [17] 791 call _esp_wait_busy
|
|
792 ;src/main.c:150: switch (file_ext)
|
|
00000352 3Ar07r10 [13] 793 ld a, (_file_ext)
|
|
00000355 3D [ 4] 794 dec a
|
|
00000356 28 0A [12] 795 jr z, 00101$
|
|
00000358 3Ar07r10 [13] 796 ld a, (_file_ext)
|
|
0000035B D6 02 [ 7] 797 sub a, #0x02
|
|
0000035D 28 08 [12] 798 jr z, 00102$
|
|
0000035F C3r6Cr03 [10] 799 jp 00103$
|
|
800 ;src/main.c:152: case EXT_XMZ: obj_type = OBJ_TYPE_ZIP; break;
|
|
00000362 801 00101$:
|
|
00000362 3E 08 [ 7] 802 ld a, #0x08
|
|
00000364 C3r6Er03 [10] 803 jp 00104$
|
|
804 ;src/main.c:153: case EXT_S3M: obj_type = OBJ_TYPE_S3M; break;
|
|
00000367 805 00102$:
|
|
00000367 3E 0C [ 7] 806 ld a, #0x0c
|
|
00000369 C3r6Er03 [10] 807 jp 00104$
|
|
808 ;src/main.c:154: default: obj_type = OBJ_TYPE_XM; break;
|
|
0000036C 809 00103$:
|
|
0000036C 3E 05 [ 7] 810 ld a, #0x05
|
|
811 ;src/main.c:155: }
|
|
0000036E 812 00104$:
|
|
813 ;src/main.c:157: xm_handle = esp_create_obj(filesize, obj_type);
|
|
0000036E F5 [11] 814 push af
|
|
0000036F 33 [ 6] 815 inc sp
|
|
00000370 ED 5Br03r10 [20] 816 ld de, (_filesize)
|
|
00000374 2Ar05r10 [16] 817 ld hl, (_filesize + 2)
|
|
00000377 CDrF7r01 [17] 818 call _esp_create_obj
|
|
0000037A 21r31r10 [10] 819 ld hl, #_xm_handle
|
|
0000037D 73 [ 7] 820 ld (hl), e
|
|
821 ;src/main.c:158: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
0000037E 3E 01 [ 7] 822 ld a, #0x01
|
|
00000380 CDr1Er00 [17] 823 call _esp_rd_reg8
|
|
00000383 32r09r10 [13] 824 ld (#_last_esp_status), a
|
|
825 ;src/main.c:159: if (last_esp_status != ESP_ST_READY)
|
|
00000386 3Ar09r10 [13] 826 ld a, (_last_esp_status)
|
|
00000389 3D [ 4] 827 dec a
|
|
0000038A 28 04 [12] 828 jr z, 00106$
|
|
829 ;src/main.c:160: return false;
|
|
0000038C AF [ 4] 830 xor a, a
|
|
0000038D C3r39r05 [10] 831 jp 00116$
|
|
00000390 832 00106$:
|
|
833 ;src/main.c:162: u32 sz = filesize;
|
|
00000390 21 0C 00 [10] 834 ld hl, #12
|
|
00000393 39 [11] 835 add hl, sp
|
|
00000394 EB [ 4] 836 ex de, hl
|
|
00000395 21r03r10 [10] 837 ld hl, #_filesize
|
|
00000398 01 04 00 [10] 838 ld bc, #4
|
|
0000039B ED B0 [21] 839 ldir
|
|
840 ;src/main.c:163: u32 offs = 0;
|
|
0000039D AF [ 4] 841 xor a, a
|
|
0000039E DD 77 FC [19] 842 ld -4 (ix), a
|
|
000003A1 DD 77 FD [19] 843 ld -3 (ix), a
|
|
000003A4 DD 77 FE [19] 844 ld -2 (ix), a
|
|
000003A7 DD 77 FF [19] 845 ld -1 (ix), a
|
|
846 ;src/main.c:165: while (sz)
|
|
000003AA 847 00107$:
|
|
000003AA DD 7E FB [19] 848 ld a, -5 (ix)
|
|
000003AD DD B6 FA [19] 849 or a, -6 (ix)
|
|
000003B0 DD B6 F9 [19] 850 or a, -7 (ix)
|
|
000003B3 DD B6 F8 [19] 851 or a, -8 (ix)
|
|
000003B6 CArC6r04 [10] 852 jp z, 00109$
|
|
853 ;src/main.c:167: u32 s = min(sz, FS_BUF_SIZE);
|
|
000003B9 DD 7E F9 [19] 854 ld a, -7 (ix)
|
|
000003BC D6 10 [ 7] 855 sub a, #0x10
|
|
000003BE DD 7E FA [19] 856 ld a, -6 (ix)
|
|
000003C1 DE 00 [ 7] 857 sbc a, #0x00
|
|
000003C3 DD 7E FB [19] 858 ld a, -5 (ix)
|
|
000003C6 DE 00 [ 7] 859 sbc a, #0x00
|
|
000003C8 30 11 [12] 860 jr nc, 00118$
|
|
000003CA 21 00 00 [10] 861 ld hl, #0
|
|
000003CD 39 [11] 862 add hl, sp
|
|
000003CE EB [ 4] 863 ex de, hl
|
|
000003CF 21 0C 00 [10] 864 ld hl, #12
|
|
000003D2 39 [11] 865 add hl, sp
|
|
000003D3 01 04 00 [10] 866 ld bc, #4
|
|
000003D6 ED B0 [21] 867 ldir
|
|
000003D8 C3rEAr03 [10] 868 jp 00119$
|
|
000003DB 869 00118$:
|
|
000003DB DD 36 EC 00 [19] 870 ld -20 (ix), #0x00
|
|
000003DF DD 36 ED 10 [19] 871 ld -19 (ix), #0x10
|
|
000003E3 AF [ 4] 872 xor a, a
|
|
000003E4 DD 77 EE [19] 873 ld -18 (ix), a
|
|
000003E7 DD 77 EF [19] 874 ld -17 (ix), a
|
|
000003EA 875 00119$:
|
|
000003EA 21 05 00 [10] 876 ld hl, #5
|
|
000003ED 39 [11] 877 add hl, sp
|
|
000003EE EB [ 4] 878 ex de, hl
|
|
000003EF 21 00 00 [10] 879 ld hl, #0
|
|
000003F2 39 [11] 880 add hl, sp
|
|
000003F3 01 04 00 [10] 881 ld bc, #4
|
|
000003F6 ED B0 [21] 882 ldir
|
|
883 ;src/main.c:168: u8 sec = (s + 511) >> 9;
|
|
000003F8 DD 7E F1 [19] 884 ld a, -15 (ix)
|
|
000003FB C6 FF [ 7] 885 add a, #0xff
|
|
000003FD DD 7E F2 [19] 886 ld a, -14 (ix)
|
|
00000400 CE 01 [ 7] 887 adc a, #0x01
|
|
00000402 47 [ 4] 888 ld b, a
|
|
00000403 3E 00 [ 7] 889 ld a, #0x00
|
|
00000405 CE 00 [ 7] 890 adc a, #0x00
|
|
00000407 5F [ 4] 891 ld e, a
|
|
00000408 3E 00 [ 7] 892 ld a, #0x00
|
|
0000040A CE 00 [ 7] 893 adc a, #0x00
|
|
0000040C 57 [ 4] 894 ld d, a
|
|
0000040D 48 [ 4] 895 ld c, b
|
|
0000040E 43 [ 4] 896 ld b, e
|
|
0000040F 5A [ 4] 897 ld e, d
|
|
00000410 CB 3B [ 8] 898 srl e
|
|
00000412 CB 18 [ 8] 899 rr b
|
|
00000414 CB 19 [ 8] 900 rr c
|
|
901 ;src/main.c:170: wc_load512((u16)fs_buf, sec);
|
|
00000416 DD 71 F7 [19] 902 ld -9 (ix), c
|
|
00000419 79 [ 4] 903 ld a, c
|
|
0000041A F5 [11] 904 push af
|
|
0000041B 33 [ 6] 905 inc sp
|
|
0000041C 21r01r00 [10] 906 ld hl, #_fs_buf
|
|
0000041F CDr00r00 [17] 907 call _wc_load512
|
|
908 ;src/main.c:172: esp_wr_reg32(ESP_REG_DATA_SIZE, s);
|
|
00000422 21 00 00 [10] 909 ld hl, #0x0
|
|
00000425 E5 [11] 910 push hl
|
|
00000426 DD 6E F1 [19] 911 ld l, -15 (ix)
|
|
00000429 DD 66 F2 [19] 912 ld h, -14 (ix)
|
|
0000042C E5 [11] 913 push hl
|
|
0000042D 3E 03 [ 7] 914 ld a, #0x03
|
|
0000042F CDrE8r00 [17] 915 call _esp_wr_reg32
|
|
916 ;src/main.c:173: esp_wr_reg32(ESP_REG_DATA_OFFSET, offs);
|
|
00000432 DD 6E FE [19] 917 ld l, -2 (ix)
|
|
00000435 DD 66 FF [19] 918 ld h, -1 (ix)
|
|
00000438 E5 [11] 919 push hl
|
|
00000439 DD 6E FC [19] 920 ld l, -4 (ix)
|
|
0000043C DD 66 FD [19] 921 ld h, -3 (ix)
|
|
0000043F E5 [11] 922 push hl
|
|
00000440 3E 07 [ 7] 923 ld a, #0x07
|
|
00000442 CDrE8r00 [17] 924 call _esp_wr_reg32
|
|
925 ;src/main.c:174: esp_cmd(ESP_CMD_WRITE_OBJECT);
|
|
00000445 3E E1 [ 7] 926 ld a, #0xe1
|
|
00000447 CDr05r00 [17] 927 call _esp_cmd
|
|
928 ;src/main.c:175: esp_wait_status(ESP_ST_DATA_M2S, 2000);
|
|
0000044A 21 00 00 [10] 929 ld hl, #0x0000
|
|
0000044D E5 [11] 930 push hl
|
|
0000044E 21 D0 07 [10] 931 ld hl, #0x07d0
|
|
00000451 E5 [11] 932 push hl
|
|
00000452 3E 03 [ 7] 933 ld a, #0x03
|
|
00000454 CDr9Ar01 [17] 934 call _esp_wait_status
|
|
00000457 F1 [10] 935 pop af
|
|
00000458 F1 [10] 936 pop af
|
|
937 ;src/main.c:176: esp_send_dma((u16)fs_buf, *(u8*)_PAGE2, 512, sec);
|
|
00000459 DD 7E F7 [19] 938 ld a, -9 (ix)
|
|
0000045C DD 77 F5 [19] 939 ld -11 (ix), a
|
|
0000045F DD 36 F6 00 [19] 940 ld -10 (ix), #0x00
|
|
00000463 3A 02 60 [13] 941 ld a, (#0x6002)
|
|
00000466 DD 77 F7 [19] 942 ld -9 (ix), a
|
|
00000469 DD 6E F5 [19] 943 ld l, -11 (ix)
|
|
0000046C 26 00 [ 7] 944 ld h, #0x00
|
|
0000046E E5 [11] 945 push hl
|
|
0000046F 21 00 02 [10] 946 ld hl, #0x0200
|
|
00000472 E5 [11] 947 push hl
|
|
00000473 DD 7E F7 [19] 948 ld a, -9 (ix)
|
|
00000476 F5 [11] 949 push af
|
|
00000477 33 [ 6] 950 inc sp
|
|
00000478 21r01r00 [10] 951 ld hl, #_fs_buf
|
|
0000047B CDr27r01 [17] 952 call _esp_send_dma
|
|
953 ;src/main.c:178: offs += s;
|
|
0000047E DD 5E F1 [19] 954 ld e, -15 (ix)
|
|
00000481 DD 56 F2 [19] 955 ld d, -14 (ix)
|
|
00000484 DD 6E FC [19] 956 ld l, -4 (ix)
|
|
00000487 DD 66 FD [19] 957 ld h, -3 (ix)
|
|
0000048A 19 [11] 958 add hl, de
|
|
0000048B DD 75 FC [19] 959 ld -4 (ix), l
|
|
0000048E DD 74 FD [19] 960 ld -3 (ix), h
|
|
00000491 DD 7E FE [19] 961 ld a, -2 (ix)
|
|
00000494 DD 8E F3 [19] 962 adc a, -13 (ix)
|
|
00000497 DD 77 FE [19] 963 ld -2 (ix), a
|
|
0000049A 30 03 [12] 964 jr nc, 00197$
|
|
0000049C DD 34 FF [23] 965 inc -1 (ix)
|
|
0000049F 966 00197$:
|
|
967 ;src/main.c:179: sz -= s;
|
|
0000049F DD 7E F8 [19] 968 ld a, -8 (ix)
|
|
000004A2 DD 96 F1 [19] 969 sub a, -15 (ix)
|
|
000004A5 DD 77 F8 [19] 970 ld -8 (ix), a
|
|
000004A8 DD 7E F9 [19] 971 ld a, -7 (ix)
|
|
000004AB DD 9E F2 [19] 972 sbc a, -14 (ix)
|
|
000004AE DD 77 F9 [19] 973 ld -7 (ix), a
|
|
000004B1 DD 7E FA [19] 974 ld a, -6 (ix)
|
|
000004B4 DD 9E F3 [19] 975 sbc a, -13 (ix)
|
|
000004B7 DD 77 FA [19] 976 ld -6 (ix), a
|
|
000004BA DD 7E FB [19] 977 ld a, -5 (ix)
|
|
000004BD DD 9E F4 [19] 978 sbc a, -12 (ix)
|
|
000004C0 DD 77 FB [19] 979 ld -5 (ix), a
|
|
000004C3 C3rAAr03 [10] 980 jp 00107$
|
|
000004C6 981 00109$:
|
|
982 ;src/main.c:182: if (file_ext == EXT_XMZ)
|
|
000004C6 3Ar07r10 [13] 983 ld a, (_file_ext)
|
|
000004C9 3D [ 4] 984 dec a
|
|
000004CA 20 3D [12] 985 jr nz, 00113$
|
|
986 ;src/main.c:187: esp_wr_reg8(ESP_REG_OBJ_HANDLE, xm_handle);
|
|
000004CC 3Ar31r10 [13] 987 ld a, (_xm_handle)
|
|
000004CF 6F [ 4] 988 ld l, a
|
|
000004D0 3E 0B [ 7] 989 ld a, #0x0b
|
|
000004D2 CDrD1r00 [17] 990 call _esp_wr_reg8
|
|
991 ;src/main.c:188: esp_wr_reg8(ESP_REG_OBJ_TYPE, OBJ_TYPE_XM);
|
|
000004D5 2E 05 [ 7] 992 ld l, #0x05
|
|
000004D7 3E 02 [ 7] 993 ld a, #0x02
|
|
000004D9 CDrD1r00 [17] 994 call _esp_wr_reg8
|
|
995 ;src/main.c:189: esp_wr_reg32(ESP_REG_DATA_SIZE, filesize);
|
|
000004DC 2Ar05r10 [16] 996 ld hl, (_filesize + 2)
|
|
000004DF E5 [11] 997 push hl
|
|
000004E0 2Ar03r10 [16] 998 ld hl, (_filesize)
|
|
000004E3 E5 [11] 999 push hl
|
|
000004E4 3E 03 [ 7] 1000 ld a, #0x03
|
|
000004E6 CDrE8r00 [17] 1001 call _esp_wr_reg32
|
|
1002 ;src/main.c:190: esp_cmd(ESP_CMD_UNZIP);
|
|
000004E9 3E F2 [ 7] 1003 ld a, #0xf2
|
|
000004EB CDr05r00 [17] 1004 call _esp_cmd
|
|
1005 ;src/main.c:191: esp_wait_busy(10000);
|
|
000004EE 11 10 27 [10] 1006 ld de, #0x2710
|
|
000004F1 21 00 00 [10] 1007 ld hl, #0x0000
|
|
000004F4 CDrD5r01 [17] 1008 call _esp_wait_busy
|
|
1009 ;src/main.c:193: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
000004F7 3E 01 [ 7] 1010 ld a, #0x01
|
|
000004F9 CDr1Er00 [17] 1011 call _esp_rd_reg8
|
|
000004FC 32r09r10 [13] 1012 ld (#_last_esp_status), a
|
|
1013 ;src/main.c:194: if (last_esp_status != ESP_ST_READY)
|
|
000004FF 3Ar09r10 [13] 1014 ld a, (_last_esp_status)
|
|
00000502 3D [ 4] 1015 dec a
|
|
00000503 28 04 [12] 1016 jr z, 00113$
|
|
1017 ;src/main.c:195: return false;
|
|
00000505 AF [ 4] 1018 xor a, a
|
|
00000506 C3r39r05 [10] 1019 jp 00116$
|
|
00000509 1020 00113$:
|
|
1021 ;src/main.c:198: esp_cmd(ESP_CMD_TRACK_INIT);
|
|
00000509 3E A0 [ 7] 1022 ld a, #0xa0
|
|
0000050B CDr05r00 [17] 1023 call _esp_cmd
|
|
1024 ;src/main.c:199: esp_wait_busy(10000);
|
|
0000050E 11 10 27 [10] 1025 ld de, #0x2710
|
|
00000511 21 00 00 [10] 1026 ld hl, #0x0000
|
|
00000514 CDrD5r01 [17] 1027 call _esp_wait_busy
|
|
1028 ;src/main.c:201: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
00000517 3E 01 [ 7] 1029 ld a, #0x01
|
|
00000519 CDr1Er00 [17] 1030 call _esp_rd_reg8
|
|
0000051C 32r09r10 [13] 1031 ld (#_last_esp_status), a
|
|
1032 ;src/main.c:202: if (last_esp_status != ESP_ST_READY)
|
|
0000051F 3Ar09r10 [13] 1033 ld a, (_last_esp_status)
|
|
00000522 3D [ 4] 1034 dec a
|
|
00000523 28 04 [12] 1035 jr z, 00115$
|
|
1036 ;src/main.c:203: return false;
|
|
00000525 AF [ 4] 1037 xor a, a
|
|
00000526 C3r39r05 [10] 1038 jp 00116$
|
|
00000529 1039 00115$:
|
|
1040 ;src/main.c:205: esp_cmd(ESP_CMD_TRACK_PLAY);
|
|
00000529 3E A1 [ 7] 1041 ld a, #0xa1
|
|
0000052B CDr05r00 [17] 1042 call _esp_cmd
|
|
1043 ;src/main.c:206: esp_wait_busy(10000);
|
|
0000052E 11 10 27 [10] 1044 ld de, #0x2710
|
|
00000531 21 00 00 [10] 1045 ld hl, #0x0000
|
|
00000534 CDrD5r01 [17] 1046 call _esp_wait_busy
|
|
1047 ;src/main.c:208: return true;
|
|
00000537 3E 01 [ 7] 1048 ld a, #0x01
|
|
00000539 1049 00116$:
|
|
1050 ;src/main.c:209: }
|
|
00000539 DD F9 [10] 1051 ld sp, ix
|
|
0000053B DD E1 [14] 1052 pop ix
|
|
0000053D C9 [10] 1053 ret
|
|
1054 ;src/main.c:212: void wait_esc_key()
|
|
1055 ; ---------------------------------
|
|
1056 ; Function wait_esc_key
|
|
1057 ; ---------------------------------
|
|
0000053E 1058 _wait_esc_key::
|
|
1059 ;src/main.c:214: while (1)
|
|
0000053E 1060 00104$:
|
|
1061 ;src/main.c:218: __endasm;
|
|
0000053E 76 [ 4] 1062 halt
|
|
1063 ;src/main.c:220: if (wc_key_esc())
|
|
0000053F CDr00r00 [17] 1064 call _wc_key_esc
|
|
00000542 B7 [ 4] 1065 or a, a
|
|
00000543 28 F9 [12] 1066 jr z, 00104$
|
|
1067 ;src/main.c:221: break;
|
|
1068 ;src/main.c:223: }
|
|
00000545 C9 [10] 1069 ret
|
|
1070 ;src/main.c:225: void wait_frames(u8 n)
|
|
1071 ; ---------------------------------
|
|
1072 ; Function wait_frames
|
|
1073 ; ---------------------------------
|
|
00000546 1074 _wait_frames::
|
|
00000546 4F [ 4] 1075 ld c, a
|
|
1076 ;src/main.c:227: while (n--)
|
|
00000547 1077 00101$:
|
|
00000547 79 [ 4] 1078 ld a, c
|
|
00000548 0D [ 4] 1079 dec c
|
|
00000549 B7 [ 4] 1080 or a, a
|
|
0000054A C8 [11] 1081 ret z
|
|
1082 ;src/main.c:231: __endasm;
|
|
0000054B 76 [ 4] 1083 halt
|
|
1084 ;src/main.c:233: }
|
|
0000054C C3r47r05 [10] 1085 jp 00101$
|
|
1086 ;src/main.c:235: void about()
|
|
1087 ; ---------------------------------
|
|
1088 ; Function about
|
|
1089 ; ---------------------------------
|
|
0000054F 1090 _about::
|
|
1091 ;src/main.c:237: wc_prwow(&win_about);
|
|
0000054F 21r7Ar02 [10] 1092 ld hl, #_win_about
|
|
00000552 CDr00r00 [17] 1093 call _wc_prwow
|
|
1094 ;src/main.c:238: wait_esc_key();
|
|
00000555 CDr3Er05 [17] 1095 call _wait_esc_key
|
|
1096 ;src/main.c:239: wc_rresb(&win_about);
|
|
00000558 21r7Ar02 [10] 1097 ld hl, #_win_about
|
|
0000055B CDr00r00 [17] 1098 call _wc_rresb
|
|
1099 ;src/main.c:240: wc_exit(WC_EXIT);
|
|
0000055E AF [ 4] 1100 xor a, a
|
|
1101 ;src/main.c:241: }
|
|
0000055F C3r00r00 [10] 1102 jp _wc_exit
|
|
1103 ;src/main.c:243: void error_esp()
|
|
1104 ; ---------------------------------
|
|
1105 ; Function error_esp
|
|
1106 ; ---------------------------------
|
|
00000562 1107 _error_esp::
|
|
1108 ;src/main.c:245: wc_prwow(&err_no_esp);
|
|
00000562 21r32r02 [10] 1109 ld hl, #_err_no_esp
|
|
00000565 CDr00r00 [17] 1110 call _wc_prwow
|
|
1111 ;src/main.c:246: wait_esc_key();
|
|
00000568 CDr3Er05 [17] 1112 call _wait_esc_key
|
|
1113 ;src/main.c:247: wc_rresb(&err_no_esp);
|
|
0000056B 21r32r02 [10] 1114 ld hl, #_err_no_esp
|
|
0000056E CDr00r00 [17] 1115 call _wc_rresb
|
|
1116 ;src/main.c:248: wc_exit(WC_EXIT);
|
|
00000571 AF [ 4] 1117 xor a, a
|
|
1118 ;src/main.c:249: }
|
|
00000572 C3r00r00 [10] 1119 jp _wc_exit
|
|
1120 ;src/main.c:251: void error_oom()
|
|
1121 ; ---------------------------------
|
|
1122 ; Function error_oom
|
|
1123 ; ---------------------------------
|
|
00000575 1124 _error_oom::
|
|
1125 ;src/main.c:253: wc_prwow(&err_out_of_mem);
|
|
00000575 21r44r02 [10] 1126 ld hl, #_err_out_of_mem
|
|
00000578 CDr00r00 [17] 1127 call _wc_prwow
|
|
1128 ;src/main.c:254: wait_frames(50); // show the error for ~1 second (50Hz), then auto-advance
|
|
0000057B 3E 32 [ 7] 1129 ld a, #0x32
|
|
0000057D CDr46r05 [17] 1130 call _wait_frames
|
|
1131 ;src/main.c:255: wc_rresb(&err_out_of_mem);
|
|
00000580 21r44r02 [10] 1132 ld hl, #_err_out_of_mem
|
|
00000583 CDr00r00 [17] 1133 call _wc_rresb
|
|
1134 ;src/main.c:256: wc_exit(WC_NEXT_FILE);
|
|
00000586 3E 02 [ 7] 1135 ld a, #0x02
|
|
1136 ;src/main.c:257: }
|
|
00000588 C3r00r00 [10] 1137 jp _wc_exit
|
|
1138 ;src/main.c:259: void error_playback()
|
|
1139 ; ---------------------------------
|
|
1140 ; Function error_playback
|
|
1141 ; ---------------------------------
|
|
0000058B 1142 _error_playback::
|
|
1143 ;src/main.c:261: wc_prwow(&err_playback);
|
|
0000058B 21r56r02 [10] 1144 ld hl, #_err_playback
|
|
0000058E CDr00r00 [17] 1145 call _wc_prwow
|
|
1146 ;src/main.c:262: wait_frames(50); // show the error for ~1 second (50Hz), then auto-advance
|
|
00000591 3E 32 [ 7] 1147 ld a, #0x32
|
|
00000593 CDr46r05 [17] 1148 call _wait_frames
|
|
1149 ;src/main.c:263: wc_rresb(&err_playback);
|
|
00000596 21r56r02 [10] 1150 ld hl, #_err_playback
|
|
00000599 CDr00r00 [17] 1151 call _wc_rresb
|
|
1152 ;src/main.c:264: wc_exit(WC_NEXT_FILE);
|
|
0000059C 3E 02 [ 7] 1153 ld a, #0x02
|
|
1154 ;src/main.c:265: }
|
|
0000059E C3r00r00 [10] 1155 jp _wc_exit
|
|
1156 ;src/main.c:272: void copy_file_name()
|
|
1157 ; ---------------------------------
|
|
1158 ; Function copy_file_name
|
|
1159 ; ---------------------------------
|
|
000005A1 1160 _copy_file_name::
|
|
1161 ;src/main.c:274: u8 *src = (u8*)p_file_name;
|
|
000005A1 ED 4Br0Ar10 [20] 1162 ld bc, (_p_file_name)
|
|
1163 ;src/main.c:277: while (src[i] && i < sizeof(file_name) - 1)
|
|
000005A5 1E 00 [ 7] 1164 ld e, #0x00
|
|
000005A7 1165 00102$:
|
|
000005A7 6B [ 4] 1166 ld l, e
|
|
000005A8 26 00 [ 7] 1167 ld h, #0x00
|
|
000005AA 09 [11] 1168 add hl, bc
|
|
000005AB 56 [ 7] 1169 ld d, (hl)
|
|
1170 ;src/main.c:279: file_name[i] = src[i];
|
|
000005AC 3Er0C [ 7] 1171 ld a, #<(_file_name)
|
|
000005AE 83 [ 4] 1172 add a, e
|
|
000005AF 6F [ 4] 1173 ld l, a
|
|
000005B0 3Es10 [ 7] 1174 ld a, #>(_file_name)
|
|
000005B2 CE 00 [ 7] 1175 adc a, #0x00
|
|
000005B4 67 [ 4] 1176 ld h, a
|
|
1177 ;src/main.c:277: while (src[i] && i < sizeof(file_name) - 1)
|
|
000005B5 7A [ 4] 1178 ld a, d
|
|
000005B6 B7 [ 4] 1179 or a, a
|
|
000005B7 28 0A [12] 1180 jr z, 00104$
|
|
000005B9 7B [ 4] 1181 ld a, e
|
|
000005BA D6 20 [ 7] 1182 sub a, #0x20
|
|
000005BC 30 05 [12] 1183 jr nc, 00104$
|
|
1184 ;src/main.c:279: file_name[i] = src[i];
|
|
000005BE 72 [ 7] 1185 ld (hl), d
|
|
1186 ;src/main.c:280: i++;
|
|
000005BF 1C [ 4] 1187 inc e
|
|
000005C0 C3rA7r05 [10] 1188 jp 00102$
|
|
000005C3 1189 00104$:
|
|
1190 ;src/main.c:282: file_name[i] = 0;
|
|
000005C3 36 00 [10] 1191 ld (hl), #0x00
|
|
1192 ;src/main.c:283: }
|
|
000005C5 C9 [10] 1193 ret
|
|
1194 ;src/main.c:291: void xm_draw_static_labels()
|
|
1195 ; ---------------------------------
|
|
1196 ; Function xm_draw_static_labels
|
|
1197 ; ---------------------------------
|
|
000005C6 1198 _xm_draw_static_labels::
|
|
1199 ;src/main.c:293: wc_prsrw_attr(&win_xm, "File:", ROW_FILE, 1, 5, ATTR_CAPTION);
|
|
000005C6 3E 45 [ 7] 1200 ld a, #0x45
|
|
000005C8 F5 [11] 1201 push af
|
|
000005C9 33 [ 6] 1202 inc sp
|
|
000005CA 21 05 00 [10] 1203 ld hl, #0x0005
|
|
000005CD E5 [11] 1204 push hl
|
|
000005CE 21 01 01 [10] 1205 ld hl, #0x101
|
|
000005D1 E5 [11] 1206 push hl
|
|
000005D2 11rF0r05 [10] 1207 ld de, #___str_9
|
|
000005D5 21r68r02 [10] 1208 ld hl, #_win_xm
|
|
000005D8 CDr00r00 [17] 1209 call _wc_prsrw_attr
|
|
1210 ;src/main.c:294: wc_prsrw(&win_xm, file_name, ROW_FILE, 7, strlen(file_name));
|
|
000005DB 21r0Cr10 [10] 1211 ld hl, #_file_name
|
|
000005DE CDr00r00 [17] 1212 call _strlen
|
|
000005E1 D5 [11] 1213 push de
|
|
000005E2 21 01 07 [10] 1214 ld hl, #0x701
|
|
000005E5 E5 [11] 1215 push hl
|
|
000005E6 11r0Cr10 [10] 1216 ld de, #_file_name
|
|
000005E9 21r68r02 [10] 1217 ld hl, #_win_xm
|
|
000005EC CDr00r00 [17] 1218 call _wc_prsrw
|
|
1219 ;src/main.c:295: }
|
|
000005EF C9 [10] 1220 ret
|
|
000005F0 1221 ___str_9:
|
|
000005F0 46 69 6C 65 3A 1222 .ascii "File:"
|
|
000005F5 00 1223 .db 0x00
|
|
1224 ;src/main.c:304: void put_hex2(char *dst, u8 val)
|
|
1225 ; ---------------------------------
|
|
1226 ; Function put_hex2
|
|
1227 ; ---------------------------------
|
|
000005F6 1228 _put_hex2::
|
|
000005F6 DD E5 [15] 1229 push ix
|
|
000005F8 DD 21 00 00 [14] 1230 ld ix, #0
|
|
000005FC DD 39 [15] 1231 add ix, sp
|
|
000005FE EB [ 4] 1232 ex de, hl
|
|
1233 ;src/main.c:307: dst[0] = hexch[(val >> 4) & 0xF];
|
|
000005FF 01r22r06 [10] 1234 ld bc, #_put_hex2_hexch_10000_105+0
|
|
00000602 DD 7E 04 [19] 1235 ld a, 4 (ix)
|
|
00000605 07 [ 4] 1236 rlca
|
|
00000606 07 [ 4] 1237 rlca
|
|
00000607 07 [ 4] 1238 rlca
|
|
00000608 07 [ 4] 1239 rlca
|
|
00000609 E6 0F [ 7] 1240 and a, #0xf
|
|
0000060B 6F [ 4] 1241 ld l, a
|
|
0000060C 26 00 [ 7] 1242 ld h, #0x00
|
|
0000060E 09 [11] 1243 add hl, bc
|
|
0000060F 7E [ 7] 1244 ld a, (hl)
|
|
00000610 12 [ 7] 1245 ld (de), a
|
|
1246 ;src/main.c:308: dst[1] = hexch[val & 0xF];
|
|
00000611 13 [ 6] 1247 inc de
|
|
00000612 DD 7E 04 [19] 1248 ld a, 4 (ix)
|
|
00000615 E6 0F [ 7] 1249 and a, #0x0f
|
|
00000617 6F [ 4] 1250 ld l, a
|
|
00000618 26 00 [ 7] 1251 ld h, #0x00
|
|
0000061A 09 [11] 1252 add hl, bc
|
|
0000061B 7E [ 7] 1253 ld a, (hl)
|
|
0000061C 12 [ 7] 1254 ld (de), a
|
|
1255 ;src/main.c:309: }
|
|
0000061D DD E1 [14] 1256 pop ix
|
|
0000061F E1 [10] 1257 pop hl
|
|
00000620 33 [ 6] 1258 inc sp
|
|
00000621 E9 [ 4] 1259 jp (hl)
|
|
00000622 1260 _put_hex2_hexch_10000_105:
|
|
00000622 30 31 32 33 34 35 36 1261 .ascii "0123456789ABCDEF"
|
|
37 38 39 41 42 43 44
|
|
45 46
|
|
00000632 00 1262 .db 0x00
|
|
1263 ;src/main.c:311: void put_dec3(char *dst, u16 val)
|
|
1264 ; ---------------------------------
|
|
1265 ; Function put_dec3
|
|
1266 ; ---------------------------------
|
|
00000633 1267 _put_dec3::
|
|
00000633 DD E5 [15] 1268 push ix
|
|
00000635 DD 21 00 00 [14] 1269 ld ix, #0
|
|
00000639 DD 39 [15] 1270 add ix, sp
|
|
0000063B F5 [11] 1271 push af
|
|
0000063C 4D [ 4] 1272 ld c, l
|
|
0000063D 44 [ 4] 1273 ld b, h
|
|
1274 ;src/main.c:313: dst[0] = '0' + (val / 100) % 10;
|
|
0000063E E1 [10] 1275 pop hl
|
|
0000063F D5 [11] 1276 push de
|
|
00000640 C5 [11] 1277 push bc
|
|
00000641 11 64 00 [10] 1278 ld de, #0x0064
|
|
00000644 DD 6E FE [19] 1279 ld l, -2 (ix)
|
|
00000647 DD 66 FF [19] 1280 ld h, -1 (ix)
|
|
0000064A CDr00r00 [17] 1281 call __divuint
|
|
0000064D EB [ 4] 1282 ex de, hl
|
|
0000064E 11 0A 00 [10] 1283 ld de, #0x000a
|
|
00000651 CDr00r00 [17] 1284 call __moduint
|
|
00000654 C1 [10] 1285 pop bc
|
|
00000655 7B [ 4] 1286 ld a, e
|
|
00000656 C6 30 [ 7] 1287 add a, #0x30
|
|
00000658 02 [ 7] 1288 ld (bc), a
|
|
1289 ;src/main.c:314: dst[1] = '0' + (val / 10) % 10;
|
|
00000659 69 [ 4] 1290 ld l, c
|
|
0000065A 60 [ 4] 1291 ld h, b
|
|
0000065B 23 [ 6] 1292 inc hl
|
|
0000065C E5 [11] 1293 push hl
|
|
0000065D C5 [11] 1294 push bc
|
|
0000065E 11 0A 00 [10] 1295 ld de, #0x000a
|
|
00000661 DD 6E FE [19] 1296 ld l, -2 (ix)
|
|
00000664 DD 66 FF [19] 1297 ld h, -1 (ix)
|
|
00000667 CDr00r00 [17] 1298 call __divuint
|
|
0000066A EB [ 4] 1299 ex de, hl
|
|
0000066B 11 0A 00 [10] 1300 ld de, #0x000a
|
|
0000066E CDr00r00 [17] 1301 call __moduint
|
|
00000671 C1 [10] 1302 pop bc
|
|
00000672 E1 [10] 1303 pop hl
|
|
00000673 7B [ 4] 1304 ld a, e
|
|
00000674 C6 30 [ 7] 1305 add a, #0x30
|
|
00000676 77 [ 7] 1306 ld (hl), a
|
|
1307 ;src/main.c:315: dst[2] = '0' + val % 10;
|
|
00000677 03 [ 6] 1308 inc bc
|
|
00000678 03 [ 6] 1309 inc bc
|
|
00000679 C5 [11] 1310 push bc
|
|
0000067A 11 0A 00 [10] 1311 ld de, #0x000a
|
|
0000067D DD 6E FE [19] 1312 ld l, -2 (ix)
|
|
00000680 DD 66 FF [19] 1313 ld h, -1 (ix)
|
|
00000683 CDr00r00 [17] 1314 call __moduint
|
|
00000686 C1 [10] 1315 pop bc
|
|
00000687 7B [ 4] 1316 ld a, e
|
|
00000688 C6 30 [ 7] 1317 add a, #0x30
|
|
0000068A 02 [ 7] 1318 ld (bc), a
|
|
1319 ;src/main.c:316: }
|
|
0000068B DD F9 [10] 1320 ld sp, ix
|
|
0000068D DD E1 [14] 1321 pop ix
|
|
0000068F C9 [10] 1322 ret
|
|
1323 ;src/main.c:318: void put_time(char *dst, u32 sec)
|
|
1324 ; ---------------------------------
|
|
1325 ; Function put_time
|
|
1326 ; ---------------------------------
|
|
00000690 1327 _put_time::
|
|
00000690 DD E5 [15] 1328 push ix
|
|
00000692 DD 21 00 00 [14] 1329 ld ix, #0
|
|
00000696 DD 39 [15] 1330 add ix, sp
|
|
00000698 E5 [11] 1331 push hl
|
|
1332 ;src/main.c:320: u8 m = (sec / 60) % 100;
|
|
00000699 21 00 00 [10] 1333 ld hl, #0x0000
|
|
0000069C E5 [11] 1334 push hl
|
|
0000069D 2E 3C [ 7] 1335 ld l, #0x3c
|
|
0000069F E5 [11] 1336 push hl
|
|
000006A0 DD 5E 04 [19] 1337 ld e, 4 (ix)
|
|
000006A3 DD 56 05 [19] 1338 ld d, 5 (ix)
|
|
000006A6 DD 6E 06 [19] 1339 ld l, 6 (ix)
|
|
000006A9 DD 66 07 [19] 1340 ld h, 7 (ix)
|
|
000006AC CDr00r00 [17] 1341 call __divulong
|
|
000006AF F1 [10] 1342 pop af
|
|
000006B0 F1 [10] 1343 pop af
|
|
000006B1 01 00 00 [10] 1344 ld bc, #0x0000
|
|
000006B4 C5 [11] 1345 push bc
|
|
000006B5 0E 64 [ 7] 1346 ld c, #0x64
|
|
000006B7 C5 [11] 1347 push bc
|
|
000006B8 CDr00r00 [17] 1348 call __modulong
|
|
000006BB F1 [10] 1349 pop af
|
|
000006BC F1 [10] 1350 pop af
|
|
000006BD 4B [ 4] 1351 ld c, e
|
|
1352 ;src/main.c:321: u8 s = sec % 60;
|
|
000006BE C5 [11] 1353 push bc
|
|
000006BF 21 00 00 [10] 1354 ld hl, #0x0000
|
|
000006C2 E5 [11] 1355 push hl
|
|
000006C3 2E 3C [ 7] 1356 ld l, #0x3c
|
|
000006C5 E5 [11] 1357 push hl
|
|
000006C6 DD 5E 04 [19] 1358 ld e, 4 (ix)
|
|
000006C9 DD 56 05 [19] 1359 ld d, 5 (ix)
|
|
000006CC DD 6E 06 [19] 1360 ld l, 6 (ix)
|
|
000006CF DD 66 07 [19] 1361 ld h, 7 (ix)
|
|
000006D2 CDr00r00 [17] 1362 call __modulong
|
|
000006D5 F1 [10] 1363 pop af
|
|
000006D6 F1 [10] 1364 pop af
|
|
000006D7 C1 [10] 1365 pop bc
|
|
1366 ;src/main.c:323: dst[0] = '0' + (m / 10) % 10;
|
|
000006D8 51 [ 4] 1367 ld d, c
|
|
000006D9 D5 [11] 1368 push de
|
|
000006DA 2E 0A [ 7] 1369 ld l, #0x0a
|
|
000006DC 7A [ 4] 1370 ld a, d
|
|
000006DD CDr00r00 [17] 1371 call __divuchar
|
|
000006E0 7B [ 4] 1372 ld a, e
|
|
000006E1 2E 0A [ 7] 1373 ld l, #0x0a
|
|
000006E3 CDr00r00 [17] 1374 call __moduchar
|
|
000006E6 7B [ 4] 1375 ld a, e
|
|
000006E7 D1 [10] 1376 pop de
|
|
000006E8 C6 30 [ 7] 1377 add a, #0x30
|
|
000006EA E1 [10] 1378 pop hl
|
|
000006EB E5 [11] 1379 push hl
|
|
000006EC 77 [ 7] 1380 ld (hl), a
|
|
1381 ;src/main.c:324: dst[1] = '0' + m % 10;
|
|
000006ED C1 [10] 1382 pop bc
|
|
000006EE C5 [11] 1383 push bc
|
|
000006EF 03 [ 6] 1384 inc bc
|
|
000006F0 C5 [11] 1385 push bc
|
|
000006F1 D5 [11] 1386 push de
|
|
000006F2 2E 0A [ 7] 1387 ld l, #0x0a
|
|
000006F4 7A [ 4] 1388 ld a, d
|
|
000006F5 CDr00r00 [17] 1389 call __moduchar
|
|
000006F8 7B [ 4] 1390 ld a, e
|
|
000006F9 D1 [10] 1391 pop de
|
|
000006FA C1 [10] 1392 pop bc
|
|
000006FB C6 30 [ 7] 1393 add a, #0x30
|
|
000006FD 02 [ 7] 1394 ld (bc), a
|
|
1395 ;src/main.c:325: dst[2] = ':';
|
|
000006FE E1 [10] 1396 pop hl
|
|
000006FF E5 [11] 1397 push hl
|
|
00000700 23 [ 6] 1398 inc hl
|
|
00000701 23 [ 6] 1399 inc hl
|
|
00000702 36 3A [10] 1400 ld (hl), #0x3a
|
|
1401 ;src/main.c:326: dst[3] = '0' + (s / 10) % 10;
|
|
00000704 C1 [10] 1402 pop bc
|
|
00000705 C5 [11] 1403 push bc
|
|
00000706 03 [ 6] 1404 inc bc
|
|
00000707 03 [ 6] 1405 inc bc
|
|
00000708 03 [ 6] 1406 inc bc
|
|
00000709 C5 [11] 1407 push bc
|
|
0000070A D5 [11] 1408 push de
|
|
0000070B 2E 0A [ 7] 1409 ld l, #0x0a
|
|
0000070D 7B [ 4] 1410 ld a, e
|
|
0000070E CDr00r00 [17] 1411 call __divuchar
|
|
00000711 7B [ 4] 1412 ld a, e
|
|
00000712 2E 0A [ 7] 1413 ld l, #0x0a
|
|
00000714 CDr00r00 [17] 1414 call __moduchar
|
|
00000717 7B [ 4] 1415 ld a, e
|
|
00000718 D1 [10] 1416 pop de
|
|
00000719 C1 [10] 1417 pop bc
|
|
0000071A C6 30 [ 7] 1418 add a, #0x30
|
|
0000071C 02 [ 7] 1419 ld (bc), a
|
|
1420 ;src/main.c:327: dst[4] = '0' + s % 10;
|
|
0000071D DD 7E FE [19] 1421 ld a, -2 (ix)
|
|
00000720 C6 04 [ 7] 1422 add a, #0x04
|
|
00000722 4F [ 4] 1423 ld c, a
|
|
00000723 DD 7E FF [19] 1424 ld a, -1 (ix)
|
|
00000726 CE 00 [ 7] 1425 adc a, #0x00
|
|
00000728 47 [ 4] 1426 ld b, a
|
|
00000729 C5 [11] 1427 push bc
|
|
0000072A 2E 0A [ 7] 1428 ld l, #0x0a
|
|
0000072C 7B [ 4] 1429 ld a, e
|
|
0000072D CDr00r00 [17] 1430 call __moduchar
|
|
00000730 7B [ 4] 1431 ld a, e
|
|
00000731 C1 [10] 1432 pop bc
|
|
00000732 C6 30 [ 7] 1433 add a, #0x30
|
|
00000734 02 [ 7] 1434 ld (bc), a
|
|
1435 ;src/main.c:328: }
|
|
00000735 DD F9 [10] 1436 ld sp, ix
|
|
00000737 DD E1 [14] 1437 pop ix
|
|
00000739 E1 [10] 1438 pop hl
|
|
0000073A F1 [10] 1439 pop af
|
|
0000073B F1 [10] 1440 pop af
|
|
0000073C E9 [ 4] 1441 jp (hl)
|
|
1442 ;src/main.c:330: void xm_draw_stats_labels()
|
|
1443 ; ---------------------------------
|
|
1444 ; Function xm_draw_stats_labels
|
|
1445 ; ---------------------------------
|
|
0000073D 1446 _xm_draw_stats_labels::
|
|
1447 ;src/main.c:332: wc_prsrw(&win_xm, "Pattern:#", ROW_STATS, 1, 9);
|
|
0000073D 21 09 00 [10] 1448 ld hl, #0x0009
|
|
00000740 E5 [11] 1449 push hl
|
|
00000741 21 03 01 [10] 1450 ld hl, #0x103
|
|
00000744 E5 [11] 1451 push hl
|
|
00000745 11r93r07 [10] 1452 ld de, #___str_11
|
|
00000748 21r68r02 [10] 1453 ld hl, #_win_xm
|
|
0000074B CDr00r00 [17] 1454 call _wc_prsrw
|
|
1455 ;src/main.c:333: wc_prsrw(&win_xm, " Row:#", ROW_STATS, 12, 7);
|
|
0000074E 21 07 00 [10] 1456 ld hl, #0x0007
|
|
00000751 E5 [11] 1457 push hl
|
|
00000752 21 03 0C [10] 1458 ld hl, #0xc03
|
|
00000755 E5 [11] 1459 push hl
|
|
00000756 11r9Dr07 [10] 1460 ld de, #___str_12
|
|
00000759 21r68r02 [10] 1461 ld hl, #_win_xm
|
|
0000075C CDr00r00 [17] 1462 call _wc_prsrw
|
|
1463 ;src/main.c:334: wc_prsrw(&win_xm, " BPM:", ROW_STATS, 21, 6);
|
|
0000075F 21 06 00 [10] 1464 ld hl, #0x0006
|
|
00000762 E5 [11] 1465 push hl
|
|
00000763 21 03 15 [10] 1466 ld hl, #0x1503
|
|
00000766 E5 [11] 1467 push hl
|
|
00000767 11rA5r07 [10] 1468 ld de, #___str_13
|
|
0000076A 21r68r02 [10] 1469 ld hl, #_win_xm
|
|
0000076D CDr00r00 [17] 1470 call _wc_prsrw
|
|
1471 ;src/main.c:336: wc_prsrw(&win_xm, "Time:", ROW_TIME, 1, 5);
|
|
00000770 21 05 00 [10] 1472 ld hl, #0x0005
|
|
00000773 E5 [11] 1473 push hl
|
|
00000774 21 05 01 [10] 1474 ld hl, #0x105
|
|
00000777 E5 [11] 1475 push hl
|
|
00000778 11rACr07 [10] 1476 ld de, #___str_14
|
|
0000077B 21r68r02 [10] 1477 ld hl, #_win_xm
|
|
0000077E CDr00r00 [17] 1478 call _wc_prsrw
|
|
1479 ;src/main.c:337: wc_prsrw(&win_xm, " / ", ROW_TIME, 12, 3);
|
|
00000781 21 03 00 [10] 1480 ld hl, #0x0003
|
|
00000784 E5 [11] 1481 push hl
|
|
00000785 21 05 0C [10] 1482 ld hl, #0xc05
|
|
00000788 E5 [11] 1483 push hl
|
|
00000789 11rB2r07 [10] 1484 ld de, #___str_15
|
|
0000078C 21r68r02 [10] 1485 ld hl, #_win_xm
|
|
0000078F CDr00r00 [17] 1486 call _wc_prsrw
|
|
1487 ;src/main.c:338: }
|
|
00000792 C9 [10] 1488 ret
|
|
00000793 1489 ___str_11:
|
|
00000793 50 61 74 74 65 72 6E 1490 .ascii "Pattern:#"
|
|
3A 23
|
|
0000079C 00 1491 .db 0x00
|
|
0000079D 1492 ___str_12:
|
|
0000079D 20 20 52 6F 77 3A 23 1493 .ascii " Row:#"
|
|
000007A4 00 1494 .db 0x00
|
|
000007A5 1495 ___str_13:
|
|
000007A5 20 20 42 50 4D 3A 1496 .ascii " BPM:"
|
|
000007AB 00 1497 .db 0x00
|
|
000007AC 1498 ___str_14:
|
|
000007AC 54 69 6D 65 3A 1499 .ascii "Time:"
|
|
000007B1 00 1500 .db 0x00
|
|
000007B2 1501 ___str_15:
|
|
000007B2 20 2F 20 1502 .ascii " / "
|
|
000007B5 00 1503 .db 0x00
|
|
1504 ;src/main.c:353: void xm_update_info()
|
|
1505 ; ---------------------------------
|
|
1506 ; Function xm_update_info
|
|
1507 ; ---------------------------------
|
|
000007B6 1508 _xm_update_info::
|
|
000007B6 DD E5 [15] 1509 push ix
|
|
000007B8 DD 21 00 00 [14] 1510 ld ix, #0
|
|
000007BC DD 39 [15] 1511 add ix, sp
|
|
000007BE 21 F8 FF [10] 1512 ld hl, #-8
|
|
000007C1 39 [11] 1513 add hl, sp
|
|
000007C2 F9 [ 6] 1514 ld sp, hl
|
|
1515 ;src/main.c:359: esp_wr_reg8(ESP_REG_OBJ_HANDLE, xm_handle);
|
|
000007C3 3Ar31r10 [13] 1516 ld a, (_xm_handle)
|
|
000007C6 6F [ 4] 1517 ld l, a
|
|
000007C7 3E 0B [ 7] 1518 ld a, #0x0b
|
|
000007C9 CDrD1r00 [17] 1519 call _esp_wr_reg8
|
|
1520 ;src/main.c:360: esp_cmd(ESP_CMD_TRACK_GET_INFO);
|
|
000007CC 3E A8 [ 7] 1521 ld a, #0xa8
|
|
000007CE CDr05r00 [17] 1522 call _esp_cmd
|
|
1523 ;src/main.c:361: esp_wait_busy(2000);
|
|
000007D1 11 D0 07 [10] 1524 ld de, #0x07d0
|
|
000007D4 21 00 00 [10] 1525 ld hl, #0x0000
|
|
000007D7 CDrD5r01 [17] 1526 call _esp_wait_busy
|
|
1527 ;src/main.c:363: pattern = esp_rd_reg8(ESP_REG_TRACK_PATTERN);
|
|
000007DA 3E 2B [ 7] 1528 ld a, #0x2b
|
|
000007DC CDr1Er00 [17] 1529 call _esp_rd_reg8
|
|
000007DF DD 77 FA [19] 1530 ld -6 (ix), a
|
|
1531 ;src/main.c:364: row = esp_rd_reg8(ESP_REG_TRACK_ROW);
|
|
000007E2 3E 2C [ 7] 1532 ld a, #0x2c
|
|
000007E4 CDr1Er00 [17] 1533 call _esp_rd_reg8
|
|
000007E7 DD 77 FB [19] 1534 ld -5 (ix), a
|
|
1535 ;src/main.c:365: esp_rd_regs(ESP_REG_TRACK_BPM, &bpm, 2);
|
|
000007EA 3E 02 [ 7] 1536 ld a, #0x02
|
|
000007EC F5 [11] 1537 push af
|
|
000007ED 33 [ 6] 1538 inc sp
|
|
000007EE 21 01 00 [10] 1539 ld hl, #1
|
|
000007F1 39 [11] 1540 add hl, sp
|
|
000007F2 EB [ 4] 1541 ex de, hl
|
|
000007F3 3E 31 [ 7] 1542 ld a, #0x31
|
|
000007F5 CDrA5r00 [17] 1543 call _esp_rd_regs
|
|
1544 ;src/main.c:366: samples = esp_rd_reg32(ESP_REG_TRACK_SAMPLES);
|
|
000007F8 3E 2D [ 7] 1545 ld a, #0x2d
|
|
000007FA CDr37r00 [17] 1546 call _esp_rd_reg32
|
|
000007FD DD 73 FC [19] 1547 ld -4 (ix), e
|
|
00000800 DD 72 FD [19] 1548 ld -3 (ix), d
|
|
00000803 DD 75 FE [19] 1549 ld -2 (ix), l
|
|
00000806 DD 74 FF [19] 1550 ld -1 (ix), h
|
|
1551 ;src/main.c:368: if (!total_samples)
|
|
00000809 3Ar30r10 [13] 1552 ld a, (_total_samples+3)
|
|
0000080C FD 21r2Dr10 [14] 1553 ld iy, #_total_samples
|
|
00000810 FD B6 02 [19] 1554 or a, 2 (iy)
|
|
00000813 FD B6 01 [19] 1555 or a, 1 (iy)
|
|
00000816 FD B6 00 [19] 1556 or a, 0 (iy)
|
|
00000819 20 0C [12] 1557 jr nz, 00102$
|
|
1558 ;src/main.c:369: total_samples = esp_rd_reg32(ESP_REG_TRACK_TOTAL_SAMPLES);
|
|
0000081B 3E 36 [ 7] 1559 ld a, #0x36
|
|
0000081D CDr37r00 [17] 1560 call _esp_rd_reg32
|
|
00000820 ED 53r2Dr10 [20] 1561 ld (_total_samples), de
|
|
00000824 22r2Fr10 [16] 1562 ld (_total_samples + 2), hl
|
|
00000827 1563 00102$:
|
|
1564 ;src/main.c:371: put_hex2(hexbuf, pattern);
|
|
00000827 DD 7E FA [19] 1565 ld a, -6 (ix)
|
|
0000082A F5 [11] 1566 push af
|
|
0000082B 33 [ 6] 1567 inc sp
|
|
0000082C 21r32r10 [10] 1568 ld hl, #_hexbuf
|
|
0000082F CDrF6r05 [17] 1569 call _put_hex2
|
|
1570 ;src/main.c:372: wc_prsrw(&win_xm, hexbuf, ROW_STATS, 10, 2);
|
|
00000832 21 02 00 [10] 1571 ld hl, #0x0002
|
|
00000835 E5 [11] 1572 push hl
|
|
00000836 21 03 0A [10] 1573 ld hl, #0xa03
|
|
00000839 E5 [11] 1574 push hl
|
|
0000083A 11r32r10 [10] 1575 ld de, #_hexbuf
|
|
0000083D 21r68r02 [10] 1576 ld hl, #_win_xm
|
|
00000840 CDr00r00 [17] 1577 call _wc_prsrw
|
|
1578 ;src/main.c:374: put_hex2(hexbuf, row);
|
|
00000843 DD 7E FB [19] 1579 ld a, -5 (ix)
|
|
00000846 F5 [11] 1580 push af
|
|
00000847 33 [ 6] 1581 inc sp
|
|
00000848 21r32r10 [10] 1582 ld hl, #_hexbuf
|
|
0000084B CDrF6r05 [17] 1583 call _put_hex2
|
|
1584 ;src/main.c:375: wc_prsrw(&win_xm, hexbuf, ROW_STATS, 19, 2);
|
|
0000084E 21 02 00 [10] 1585 ld hl, #0x0002
|
|
00000851 E5 [11] 1586 push hl
|
|
00000852 21 03 13 [10] 1587 ld hl, #0x1303
|
|
00000855 E5 [11] 1588 push hl
|
|
00000856 11r32r10 [10] 1589 ld de, #_hexbuf
|
|
00000859 21r68r02 [10] 1590 ld hl, #_win_xm
|
|
0000085C CDr00r00 [17] 1591 call _wc_prsrw
|
|
1592 ;src/main.c:377: put_dec3(decbuf, bpm);
|
|
0000085F D1 [10] 1593 pop de
|
|
00000860 D5 [11] 1594 push de
|
|
00000861 21r34r10 [10] 1595 ld hl, #_decbuf
|
|
00000864 CDr33r06 [17] 1596 call _put_dec3
|
|
1597 ;src/main.c:378: wc_prsrw(&win_xm, decbuf, ROW_STATS, 27, 3);
|
|
00000867 21 03 00 [10] 1598 ld hl, #0x0003
|
|
0000086A E5 [11] 1599 push hl
|
|
0000086B 21 03 1B [10] 1600 ld hl, #0x1b03
|
|
0000086E E5 [11] 1601 push hl
|
|
0000086F 11r34r10 [10] 1602 ld de, #_decbuf
|
|
00000872 21r68r02 [10] 1603 ld hl, #_win_xm
|
|
00000875 CDr00r00 [17] 1604 call _wc_prsrw
|
|
1605 ;src/main.c:380: put_time(timebuf, samples / 44100UL);
|
|
00000878 21 00 00 [10] 1606 ld hl, #0x0000
|
|
0000087B E5 [11] 1607 push hl
|
|
0000087C 21 44 AC [10] 1608 ld hl, #0xac44
|
|
0000087F E5 [11] 1609 push hl
|
|
00000880 DD 5E FC [19] 1610 ld e, -4 (ix)
|
|
00000883 DD 56 FD [19] 1611 ld d, -3 (ix)
|
|
00000886 DD 6E FE [19] 1612 ld l, -2 (ix)
|
|
00000889 DD 66 FF [19] 1613 ld h, -1 (ix)
|
|
0000088C CDr00r00 [17] 1614 call __divulong
|
|
0000088F F1 [10] 1615 pop af
|
|
00000890 E3 [19] 1616 ex (sp),hl
|
|
00000891 D5 [11] 1617 push de
|
|
00000892 21r37r10 [10] 1618 ld hl, #_timebuf
|
|
00000895 CDr90r06 [17] 1619 call _put_time
|
|
1620 ;src/main.c:381: wc_prsrw(&win_xm, timebuf, ROW_TIME, 7, 5);
|
|
00000898 21 05 00 [10] 1621 ld hl, #0x0005
|
|
0000089B E5 [11] 1622 push hl
|
|
0000089C 21 05 07 [10] 1623 ld hl, #0x705
|
|
0000089F E5 [11] 1624 push hl
|
|
000008A0 11r37r10 [10] 1625 ld de, #_timebuf
|
|
000008A3 21r68r02 [10] 1626 ld hl, #_win_xm
|
|
000008A6 CDr00r00 [17] 1627 call _wc_prsrw
|
|
1628 ;src/main.c:383: put_time(timebuf, total_samples / 44100UL);
|
|
000008A9 21 00 00 [10] 1629 ld hl, #0x0000
|
|
000008AC E5 [11] 1630 push hl
|
|
000008AD 21 44 AC [10] 1631 ld hl, #0xac44
|
|
000008B0 E5 [11] 1632 push hl
|
|
000008B1 ED 5Br2Dr10 [20] 1633 ld de, (_total_samples)
|
|
000008B5 2Ar2Fr10 [16] 1634 ld hl, (_total_samples + 2)
|
|
000008B8 CDr00r00 [17] 1635 call __divulong
|
|
000008BB F1 [10] 1636 pop af
|
|
000008BC E3 [19] 1637 ex (sp),hl
|
|
000008BD D5 [11] 1638 push de
|
|
000008BE 21r37r10 [10] 1639 ld hl, #_timebuf
|
|
000008C1 CDr90r06 [17] 1640 call _put_time
|
|
1641 ;src/main.c:384: wc_prsrw(&win_xm, timebuf, ROW_TIME, 15, 5);
|
|
000008C4 21 05 00 [10] 1642 ld hl, #0x0005
|
|
000008C7 E5 [11] 1643 push hl
|
|
000008C8 21 05 0F [10] 1644 ld hl, #0xf05
|
|
000008CB E5 [11] 1645 push hl
|
|
000008CC 11r37r10 [10] 1646 ld de, #_timebuf
|
|
000008CF 21r68r02 [10] 1647 ld hl, #_win_xm
|
|
000008D2 CDr00r00 [17] 1648 call _wc_prsrw
|
|
1649 ;src/main.c:388: }
|
|
000008D5 DD F9 [10] 1650 ld sp, ix
|
|
000008D7 DD E1 [14] 1651 pop ix
|
|
000008D9 C9 [10] 1652 ret
|
|
1653 ;src/main.c:390: void main_start()
|
|
1654 ; ---------------------------------
|
|
1655 ; Function main_start
|
|
1656 ; ---------------------------------
|
|
000008DA 1657 _main_start::
|
|
1658 ;src/main.c:394: copy_file_name();
|
|
000008DA CDrA1r05 [17] 1659 call _copy_file_name
|
|
1660 ;src/main.c:396: if (!state_esp)
|
|
000008DD 3Ar00r00 [13] 1661 ld a, (_state_esp+0)
|
|
000008E0 B7 [ 4] 1662 or a, a
|
|
000008E1 20 0D [12] 1663 jr nz, 00102$
|
|
1664 ;src/main.c:397: state_esp = esp_init() ? 1 : 2;
|
|
000008E3 CDr25r02 [17] 1665 call _esp_init
|
|
000008E6 B7 [ 4] 1666 or a, a
|
|
000008E7 3E 01 [ 7] 1667 ld a, #0x01
|
|
000008E9 20 02 [12] 1668 jr nz, 00122$
|
|
000008EB 3E 02 [ 7] 1669 ld a, #0x02
|
|
000008ED 1670 00122$:
|
|
000008ED 32r00r00 [13] 1671 ld (#_state_esp), a
|
|
000008F0 1672 00102$:
|
|
1673 ;src/main.c:399: if (state_esp != 1)
|
|
000008F0 3Ar00r00 [13] 1674 ld a, (_state_esp)
|
|
1675 ;src/main.c:401: error_esp();
|
|
1676 ;src/main.c:402: return;
|
|
1677 ;src/main.c:405: total_samples = 0;
|
|
000008F3 3D [ 4] 1678 dec a
|
|
000008F4 C2r62r05 [10] 1679 jp nz,_error_esp
|
|
000008F7 32r2Dr10 [13] 1680 ld (_total_samples+0), a
|
|
000008FA 32r2Er10 [13] 1681 ld (_total_samples+1), a
|
|
000008FD 32r2Fr10 [13] 1682 ld (_total_samples+2), a
|
|
00000900 32r30r10 [13] 1683 ld (_total_samples+3), a
|
|
1684 ;src/main.c:407: if (!play_xm())
|
|
00000903 CDr29r03 [17] 1685 call _play_xm
|
|
00000906 B7 [ 4] 1686 or a, a
|
|
00000907 20 0B [12] 1687 jr nz, 00109$
|
|
1688 ;src/main.c:409: if (last_esp_status == ESP_ERR_OUT_OF_MEMORY)
|
|
00000909 3Ar09r10 [13] 1689 ld a, (_last_esp_status)
|
|
0000090C D6 99 [ 7] 1690 sub a, #0x99
|
|
0000090E CAr75r05 [10] 1691 jp z, _error_oom
|
|
1692 ;src/main.c:410: error_oom();
|
|
1693 ;src/main.c:412: error_playback();
|
|
1694 ;src/main.c:413: return;
|
|
00000911 C3r8Br05 [10] 1695 jp _error_playback
|
|
00000914 1696 00109$:
|
|
1697 ;src/main.c:419: wc_prwow(&win_xm);
|
|
00000914 21r68r02 [10] 1698 ld hl, #_win_xm
|
|
00000917 CDr00r00 [17] 1699 call _wc_prwow
|
|
1700 ;src/main.c:420: xm_draw_static_labels();
|
|
0000091A CDrC6r05 [17] 1701 call _xm_draw_static_labels
|
|
1702 ;src/main.c:421: xm_draw_stats_labels();
|
|
0000091D CDr3Dr07 [17] 1703 call _xm_draw_stats_labels
|
|
1704 ;src/main.c:422: xm_update_info(); // single call for now - periodic re-calling is a separate step, once this is confirmed stable
|
|
00000920 CDrB6r07 [17] 1705 call _xm_update_info
|
|
1706 ;src/main.c:427: while (1)
|
|
00000923 1707 00117$:
|
|
1708 ;src/main.c:431: __endasm;
|
|
00000923 76 [ 4] 1709 halt
|
|
1710 ;src/main.c:442: if (wc_key_pgdn()) // PgDn - unload and go to next file
|
|
00000924 CDr00r00 [17] 1711 call _wc_key_pgdn
|
|
00000927 B7 [ 4] 1712 or a, a
|
|
00000928 28 27 [12] 1713 jr z, 00111$
|
|
1714 ;src/main.c:444: esp_cmd(ESP_CMD_TRACK_STOP);
|
|
0000092A 3E A2 [ 7] 1715 ld a, #0xa2
|
|
0000092C CDr05r00 [17] 1716 call _esp_cmd
|
|
1717 ;src/main.c:445: esp_wait_busy(10000);
|
|
0000092F 11 10 27 [10] 1718 ld de, #0x2710
|
|
00000932 21 00 00 [10] 1719 ld hl, #0x0000
|
|
00000935 CDrD5r01 [17] 1720 call _esp_wait_busy
|
|
1721 ;src/main.c:446: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
00000938 3E E4 [ 7] 1722 ld a, #0xe4
|
|
0000093A CDr05r00 [17] 1723 call _esp_cmd
|
|
1724 ;src/main.c:447: esp_wait_busy(10000);
|
|
0000093D 11 10 27 [10] 1725 ld de, #0x2710
|
|
00000940 21 00 00 [10] 1726 ld hl, #0x0000
|
|
00000943 CDrD5r01 [17] 1727 call _esp_wait_busy
|
|
1728 ;src/main.c:448: wc_rresb(&win_xm);
|
|
00000946 21r68r02 [10] 1729 ld hl, #_win_xm
|
|
00000949 CDr00r00 [17] 1730 call _wc_rresb
|
|
1731 ;src/main.c:449: wc_exit(WC_NEXT_FILE);
|
|
0000094C 3E 02 [ 7] 1732 ld a, #0x02
|
|
0000094E CDr00r00 [17] 1733 call _wc_exit
|
|
00000951 1734 00111$:
|
|
1735 ;src/main.c:452: if (wc_key_pgup()) // PgUp - unload and go to previous file
|
|
00000951 CDr00r00 [17] 1736 call _wc_key_pgup
|
|
00000954 B7 [ 4] 1737 or a, a
|
|
00000955 28 27 [12] 1738 jr z, 00113$
|
|
1739 ;src/main.c:454: esp_cmd(ESP_CMD_TRACK_STOP);
|
|
00000957 3E A2 [ 7] 1740 ld a, #0xa2
|
|
00000959 CDr05r00 [17] 1741 call _esp_cmd
|
|
1742 ;src/main.c:455: esp_wait_busy(10000);
|
|
0000095C 11 10 27 [10] 1743 ld de, #0x2710
|
|
0000095F 21 00 00 [10] 1744 ld hl, #0x0000
|
|
00000962 CDrD5r01 [17] 1745 call _esp_wait_busy
|
|
1746 ;src/main.c:456: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
00000965 3E E4 [ 7] 1747 ld a, #0xe4
|
|
00000967 CDr05r00 [17] 1748 call _esp_cmd
|
|
1749 ;src/main.c:457: esp_wait_busy(10000);
|
|
0000096A 11 10 27 [10] 1750 ld de, #0x2710
|
|
0000096D 21 00 00 [10] 1751 ld hl, #0x0000
|
|
00000970 CDrD5r01 [17] 1752 call _esp_wait_busy
|
|
1753 ;src/main.c:458: wc_rresb(&win_xm);
|
|
00000973 21r68r02 [10] 1754 ld hl, #_win_xm
|
|
00000976 CDr00r00 [17] 1755 call _wc_rresb
|
|
1756 ;src/main.c:459: wc_exit(WC_PREV_FILE);
|
|
00000979 3E 04 [ 7] 1757 ld a, #0x04
|
|
0000097B CDr00r00 [17] 1758 call _wc_exit
|
|
0000097E 1759 00113$:
|
|
1760 ;src/main.c:462: if (wc_key_esc()) // Esc - unload and exit
|
|
0000097E CDr00r00 [17] 1761 call _wc_key_esc
|
|
00000981 B7 [ 4] 1762 or a, a
|
|
00000982 28 9F [12] 1763 jr z, 00117$
|
|
1764 ;src/main.c:464: esp_cmd(ESP_CMD_TRACK_STOP);
|
|
00000984 3E A2 [ 7] 1765 ld a, #0xa2
|
|
00000986 CDr05r00 [17] 1766 call _esp_cmd
|
|
1767 ;src/main.c:465: esp_wait_busy(10000);
|
|
00000989 11 10 27 [10] 1768 ld de, #0x2710
|
|
0000098C 21 00 00 [10] 1769 ld hl, #0x0000
|
|
0000098F CDrD5r01 [17] 1770 call _esp_wait_busy
|
|
1771 ;src/main.c:466: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
00000992 3E E4 [ 7] 1772 ld a, #0xe4
|
|
00000994 CDr05r00 [17] 1773 call _esp_cmd
|
|
1774 ;src/main.c:467: esp_wait_busy(10000);
|
|
00000997 11 10 27 [10] 1775 ld de, #0x2710
|
|
0000099A 21 00 00 [10] 1776 ld hl, #0x0000
|
|
0000099D CDrD5r01 [17] 1777 call _esp_wait_busy
|
|
1778 ;src/main.c:468: wc_rresb(&win_xm);
|
|
000009A0 21r68r02 [10] 1779 ld hl, #_win_xm
|
|
000009A3 CDr00r00 [17] 1780 call _wc_rresb
|
|
1781 ;src/main.c:469: wc_exit(WC_EXIT);
|
|
000009A6 AF [ 4] 1782 xor a, a
|
|
000009A7 CDr00r00 [17] 1783 call _wc_exit
|
|
1784 ;src/main.c:472: }
|
|
000009AA C3r23r09 [10] 1785 jp 00117$
|
|
1786 ;src/main.c:475: void main()
|
|
1787 ; ---------------------------------
|
|
1788 ; Function main
|
|
1789 ; ---------------------------------
|
|
000009AD 1790 _main::
|
|
1791 ;src/main.c:485: __endasm;
|
|
000009AD ED 73r01r10 [20] 1792 ld (_ret_sp), sp
|
|
000009B1 32r08r10 [13] 1793 ld (_call_type), a
|
|
000009B4 ED 43r0Ar10 [20] 1794 ld (_p_file_name), bc
|
|
000009B8 08 [ 4] 1795 ex af, af
|
|
000009B9 32r07r10 [13] 1796 ld (_file_ext), a
|
|
000009BC 22r03r10 [16] 1797 ld (_filesize), hl
|
|
000009BF ED 53r05r10 [20] 1798 ld (_filesize + 2), de
|
|
1799 ;src/main.c:487: switch (call_type)
|
|
000009C3 3Ar08r10 [13] 1800 ld a, (_call_type+0)
|
|
000009C6 B7 [ 4] 1801 or a, a
|
|
000009C7 CArDAr08 [10] 1802 jp z, _main_start
|
|
000009CA 3Ar08r10 [13] 1803 ld a, (_call_type)
|
|
000009CD D6 03 [ 7] 1804 sub a, #0x03
|
|
000009CF CAr4Fr05 [10] 1805 jp z, _about
|
|
1806 ;src/main.c:489: case WC_CALL_EXT:
|
|
1807 ;src/main.c:490: main_start();
|
|
1808 ;src/main.c:491: break;
|
|
1809 ;src/main.c:493: case WC_CALL_MENU:
|
|
1810 ;src/main.c:494: about();
|
|
1811 ;src/main.c:495: break;
|
|
1812 ;src/main.c:497: default:
|
|
1813 ;src/main.c:498: wc_exit(WC_EXIT);
|
|
000009D2 AF [ 4] 1814 xor a, a
|
|
1815 ;src/main.c:499: }
|
|
1816 ;src/main.c:500: }
|
|
000009D3 C3r00r00 [10] 1817 jp _wc_exit
|
|
1818 .area _CODE
|
|
1819 .area _INITIALIZER
|
|
1820 .area _CABS (ABS)
|