2372 lines
139 KiB
Plaintext
2372 lines
139 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 _draw_progress_bar
|
|
15 .globl _xm_draw_stats_labels
|
|
16 .globl _put_time
|
|
17 .globl _put_dec3
|
|
18 .globl _put_hex2
|
|
19 .globl _xm_set_status_attr
|
|
20 .globl _xm_draw_static_labels
|
|
21 .globl _copy_file_name
|
|
22 .globl _error_playback
|
|
23 .globl _error_oom
|
|
24 .globl _stop_on_error
|
|
25 .globl _error_esp
|
|
26 .globl _wait_for_manual_exit
|
|
27 .globl _leave_playing_and_exit
|
|
28 .globl _unload_and_exit
|
|
29 .globl _about
|
|
30 .globl _wait_frames
|
|
31 .globl _wait_esc_key
|
|
32 .globl _play_xm
|
|
33 .globl _esp_init
|
|
34 .globl _esp_create_obj
|
|
35 .globl _esp_wait_status
|
|
36 .globl _esp_rd_end
|
|
37 .globl _esp_send_dma
|
|
38 .globl _esp_wr_end
|
|
39 .globl _esp_wr_reg32
|
|
40 .globl _esp_wr_reg8
|
|
41 .globl _esp_rd_regs
|
|
42 .globl _esp_rd_reg32
|
|
43 .globl _esp_rd_reg8
|
|
44 .globl _esp_cmd
|
|
45 .globl _wc_exit
|
|
46 .globl _wc_prm_pl
|
|
47 .globl _wc_gadrw
|
|
48 .globl _wc_prsrw_attr
|
|
49 .globl _wc_prsrw
|
|
50 .globl _wc_key_space
|
|
51 .globl _wc_key_pgdn
|
|
52 .globl _wc_key_pgup
|
|
53 .globl _wc_key_esc
|
|
54 .globl _wc_load512
|
|
55 .globl _wc_rresb
|
|
56 .globl _wc_prwow
|
|
57 .globl _strlen
|
|
58 .globl _state_esp
|
|
59 .globl _bar_attr_ofs
|
|
60 .globl _last_track_status
|
|
61 .globl _xm_handle
|
|
62 .globl _total_samples
|
|
63 .globl _file_name
|
|
64 .globl _p_file_name
|
|
65 .globl _last_esp_status
|
|
66 .globl _call_type
|
|
67 .globl _file_ext
|
|
68 .globl _filesize
|
|
69 .globl _ret_sp
|
|
70 .globl _fs_buf
|
|
71 .globl _win_about
|
|
72 .globl _win_xm
|
|
73 .globl _esp_wait_busy
|
|
74 .globl _xm_set_status
|
|
75 .globl _xm_set_status_code
|
|
76 ;--------------------------------------------------------
|
|
77 ; special function registers
|
|
78 ;--------------------------------------------------------
|
|
00000057 79 _SPI_DATA = 0x0057
|
|
00000077 80 _SPI_CTRL = 0x0077
|
|
000000FE 81 _BORDER = 0x00fe
|
|
000000AF 82 _TS_VCONFIG = 0x00af
|
|
000000AF 83 _TS_STATUS = 0x00af
|
|
000001AF 84 _TS_VPAGE = 0x01af
|
|
000002AF 85 _TS_GXOFFSL = 0x02af
|
|
000003AF 86 _TS_GXOFFSH = 0x03af
|
|
000004AF 87 _TS_GYOFFSL = 0x04af
|
|
000005AF 88 _TS_GYOFFSH = 0x05af
|
|
000006AF 89 _TS_TSCONFIG = 0x06af
|
|
000007AF 90 _TS_PALSEL = 0x07af
|
|
00000FAF 91 _TS_BORDER = 0x0faf
|
|
000010AF 92 _TS_PAGE0 = 0x10af
|
|
000011AF 93 _TS_PAGE1 = 0x11af
|
|
000012AF 94 _TS_PAGE2 = 0x12af
|
|
000013AF 95 _TS_PAGE3 = 0x13af
|
|
000015AF 96 _TS_FMADDR = 0x15af
|
|
000016AF 97 _TS_TMPAGE = 0x16af
|
|
000017AF 98 _TS_T0GPAGE = 0x17af
|
|
000018AF 99 _TS_T1GPAGE = 0x18af
|
|
000019AF 100 _TS_SGPAGE = 0x19af
|
|
00001AAF 101 _TS_DMASADDRL = 0x1aaf
|
|
00001BAF 102 _TS_DMASADDRH = 0x1baf
|
|
00001CAF 103 _TS_DMASADDRX = 0x1caf
|
|
00001DAF 104 _TS_DMADADDRL = 0x1daf
|
|
00001EAF 105 _TS_DMADADDRH = 0x1eaf
|
|
00001FAF 106 _TS_DMADADDRX = 0x1faf
|
|
000020AF 107 _TS_SYSCONFIG = 0x20af
|
|
000021AF 108 _TS_MEMCONFIG = 0x21af
|
|
000022AF 109 _TS_HSINT = 0x22af
|
|
000023AF 110 _TS_VSINTL = 0x23af
|
|
000024AF 111 _TS_VSINTH = 0x24af
|
|
000025AF 112 _TS_DMAWPD = 0x25af
|
|
000026AF 113 _TS_DMALEN = 0x26af
|
|
000027AF 114 _TS_DMACTR = 0x27af
|
|
000027AF 115 _TS_DMASTATUS = 0x27af
|
|
000028AF 116 _TS_DMANUM = 0x28af
|
|
000029AF 117 _TS_FDDVIRT = 0x29af
|
|
00002AAF 118 _TS_INTMASK = 0x2aaf
|
|
00002BAF 119 _TS_CACHECONF = 0x2baf
|
|
00002CAF 120 _TS_DMANUMH = 0x2caf
|
|
00002DAF 121 _TS_DMAWPA = 0x2daf
|
|
000040AF 122 _TS_T0XOFFSL = 0x40af
|
|
000041AF 123 _TS_T0XOFFSH = 0x41af
|
|
000042AF 124 _TS_T0YOFFSL = 0x42af
|
|
000043AF 125 _TS_T0YOFFSH = 0x43af
|
|
000044AF 126 _TS_T1XOFFSL = 0x44af
|
|
000045AF 127 _TS_T1XOFFSH = 0x45af
|
|
000046AF 128 _TS_T1YOFFSL = 0x46af
|
|
000047AF 129 _TS_T1YOFFSH = 0x47af
|
|
130 ;--------------------------------------------------------
|
|
131 ; ram data
|
|
132 ;--------------------------------------------------------
|
|
133 .area _DATA
|
|
00000000 134 _fs_buf::
|
|
00000000 135 .ds 4096
|
|
00001000 136 _ret_sp::
|
|
00001000 137 .ds 2
|
|
00001002 138 _filesize::
|
|
00001002 139 .ds 4
|
|
00001006 140 _file_ext::
|
|
00001006 141 .ds 1
|
|
00001007 142 _call_type::
|
|
00001007 143 .ds 1
|
|
00001008 144 _last_esp_status::
|
|
00001008 145 .ds 1
|
|
00001009 146 _p_file_name::
|
|
00001009 147 .ds 2
|
|
0000100B 148 _file_name::
|
|
0000100B 149 .ds 33
|
|
0000102C 150 _total_samples::
|
|
0000102C 151 .ds 4
|
|
00001030 152 _xm_handle::
|
|
00001030 153 .ds 1
|
|
00001031 154 _last_track_status::
|
|
00001031 155 .ds 1
|
|
00001032 156 _status_buf:
|
|
00001032 157 .ds 24
|
|
0000104A 158 _status_code_buf:
|
|
0000104A 159 .ds 24
|
|
00001062 160 _hexbuf:
|
|
00001062 161 .ds 2
|
|
00001064 162 _decbuf:
|
|
00001064 163 .ds 3
|
|
00001067 164 _timebuf:
|
|
00001067 165 .ds 5
|
|
0000106C 166 _barbuf:
|
|
0000106C 167 .ds 32
|
|
0000108C 168 _bar_attr_ofs::
|
|
0000108C 169 .ds 2
|
|
170 ;--------------------------------------------------------
|
|
171 ; ram data
|
|
172 ;--------------------------------------------------------
|
|
173 .area _INITIALIZED
|
|
00000000 174 _state_esp::
|
|
00000000 175 .ds 1
|
|
176 ;--------------------------------------------------------
|
|
177 ; absolute ram data
|
|
178 ;--------------------------------------------------------
|
|
179 .area _DABS (ABS)
|
|
180 .area _DABS (ABS)
|
|
181 ;--------------------------------------------------------
|
|
182 ; global & static initialisations
|
|
183 ;--------------------------------------------------------
|
|
184 .area _HOME
|
|
185 .area _GSINIT
|
|
186 .area _GSFINAL
|
|
187 .area _GSINIT
|
|
188 ;--------------------------------------------------------
|
|
189 ; Home
|
|
190 ;--------------------------------------------------------
|
|
191 .area _HOME
|
|
192 .area _HOME
|
|
193 ;--------------------------------------------------------
|
|
194 ; code
|
|
195 ;--------------------------------------------------------
|
|
196 .area _CODE
|
|
197 ;src/wc_api.c:47: void wc_exit(u8 rc) __naked
|
|
198 ; ---------------------------------
|
|
199 ; Function wc_exit
|
|
200 ; ---------------------------------
|
|
00000000 201 _wc_exit::
|
|
202 ;src/wc_api.c:53: __endasm;
|
|
00000000 ED 7Br00r10 [20] 203 ld sp, (_ret_sp)
|
|
00000004 C9 [10] 204 ret
|
|
205 ;src/wc_api.c:54: }
|
|
206 ;src/esp32.c:18: void esp_cmd(u8 cmd)
|
|
207 ; ---------------------------------
|
|
208 ; Function esp_cmd
|
|
209 ; ---------------------------------
|
|
00000005 210 _esp_cmd::
|
|
00000005 4F [ 4] 211 ld c, a
|
|
212 ;src/esp32.c:20: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000006 3E 13 [ 7] 213 ld a, #0x13
|
|
00000008 D3 77 [11] 214 out (_SPI_CTRL), a
|
|
215 ;src/esp32.c:21: SPI_DATA = ESP_SPI_CMD_WR_REGS;
|
|
0000000A 3E 01 [ 7] 216 ld a, #0x01
|
|
0000000C D3 57 [11] 217 out (_SPI_DATA), a
|
|
218 ;src/esp32.c:22: SPI_DATA = ESP_REG_COMMAND;
|
|
0000000E AF [ 4] 219 xor a, a
|
|
0000000F D3 57 [11] 220 out (_SPI_DATA), a
|
|
221 ;src/esp32.c:23: SPI_DATA; // dummy
|
|
00000011 DB 57 [11] 222 in a, (_SPI_DATA)
|
|
223 ;src/esp32.c:24: SPI_DATA = cmd; // Command
|
|
00000013 79 [ 4] 224 ld a, c
|
|
00000014 D3 57 [11] 225 out (_SPI_DATA), a
|
|
226 ;src/esp32.c:25: SPI_DATA = ESP_ST_IDLE; // Reset status
|
|
00000016 AF [ 4] 227 xor a, a
|
|
00000017 D3 57 [11] 228 out (_SPI_DATA), a
|
|
229 ;src/esp32.c:26: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000019 3E 03 [ 7] 230 ld a, #0x03
|
|
0000001B D3 77 [11] 231 out (_SPI_CTRL), a
|
|
232 ;src/esp32.c:27: }
|
|
0000001D C9 [10] 233 ret
|
|
234 ;src/esp32.c:29: u8 esp_rd_reg8(u8 reg)
|
|
235 ; ---------------------------------
|
|
236 ; Function esp_rd_reg8
|
|
237 ; ---------------------------------
|
|
0000001E 238 _esp_rd_reg8::
|
|
0000001E 4F [ 4] 239 ld c, a
|
|
240 ;src/esp32.c:31: SPI_CTRL = SPI_ESP_CS_ON;
|
|
0000001F 3E 13 [ 7] 241 ld a, #0x13
|
|
00000021 D3 77 [11] 242 out (_SPI_CTRL), a
|
|
243 ;src/esp32.c:32: SPI_DATA = ESP_SPI_CMD_RD_REGS;
|
|
00000023 3E 02 [ 7] 244 ld a, #0x02
|
|
00000025 D3 57 [11] 245 out (_SPI_DATA), a
|
|
246 ;src/esp32.c:33: SPI_DATA = reg;
|
|
00000027 79 [ 4] 247 ld a, c
|
|
00000028 D3 57 [11] 248 out (_SPI_DATA), a
|
|
249 ;src/esp32.c:34: SPI_DATA; // dummy
|
|
0000002A DB 57 [11] 250 in a, (_SPI_DATA)
|
|
251 ;src/esp32.c:35: SPI_DATA; // dummy
|
|
0000002C DB 57 [11] 252 in a, (_SPI_DATA)
|
|
253 ;src/esp32.c:36: u8 rc = SPI_DATA;
|
|
0000002E DB 57 [11] 254 in a, (_SPI_DATA)
|
|
00000030 4F [ 4] 255 ld c, a
|
|
256 ;src/esp32.c:37: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000031 3E 03 [ 7] 257 ld a, #0x03
|
|
00000033 D3 77 [11] 258 out (_SPI_CTRL), a
|
|
259 ;src/esp32.c:39: return rc;
|
|
00000035 79 [ 4] 260 ld a, c
|
|
261 ;src/esp32.c:40: }
|
|
00000036 C9 [10] 262 ret
|
|
263 ;src/esp32.c:42: u32 esp_rd_reg32(u8 reg)
|
|
264 ; ---------------------------------
|
|
265 ; Function esp_rd_reg32
|
|
266 ; ---------------------------------
|
|
00000037 267 _esp_rd_reg32::
|
|
00000037 DD E5 [15] 268 push ix
|
|
00000039 DD 21 00 00 [14] 269 ld ix, #0
|
|
0000003D DD 39 [15] 270 add ix, sp
|
|
0000003F F5 [11] 271 push af
|
|
00000040 F5 [11] 272 push af
|
|
00000041 4F [ 4] 273 ld c, a
|
|
274 ;src/esp32.c:44: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000042 3E 13 [ 7] 275 ld a, #0x13
|
|
00000044 D3 77 [11] 276 out (_SPI_CTRL), a
|
|
277 ;src/esp32.c:45: SPI_DATA = ESP_SPI_CMD_RD_REGS;
|
|
00000046 3E 02 [ 7] 278 ld a, #0x02
|
|
00000048 D3 57 [11] 279 out (_SPI_DATA), a
|
|
280 ;src/esp32.c:46: SPI_DATA = reg;
|
|
0000004A 79 [ 4] 281 ld a, c
|
|
0000004B D3 57 [11] 282 out (_SPI_DATA), a
|
|
283 ;src/esp32.c:47: SPI_DATA; // dummy
|
|
0000004D DB 57 [11] 284 in a, (_SPI_DATA)
|
|
285 ;src/esp32.c:48: SPI_DATA; // dummy
|
|
0000004F DB 57 [11] 286 in a, (_SPI_DATA)
|
|
287 ;src/esp32.c:49: u32 rc = SPI_DATA;
|
|
00000051 DB 57 [11] 288 in a, (_SPI_DATA)
|
|
00000053 4F [ 4] 289 ld c, a
|
|
290 ;src/esp32.c:50: rc |= (u32)SPI_DATA << 8;
|
|
00000054 DB 57 [11] 291 in a, (_SPI_DATA)
|
|
00000056 57 [ 4] 292 ld d, a
|
|
00000057 59 [ 4] 293 ld e, c
|
|
294 ;src/esp32.c:51: rc |= (u32)SPI_DATA << 16;
|
|
00000058 DB 57 [11] 295 in a, (_SPI_DATA)
|
|
0000005A DD 77 FC [19] 296 ld -4 (ix), a
|
|
0000005D AF [ 4] 297 xor a, a
|
|
0000005E DD 77 FD [19] 298 ld -3 (ix), a
|
|
00000061 DD 77 FE [19] 299 ld -2 (ix), a
|
|
00000064 DD 77 FF [19] 300 ld -1 (ix), a
|
|
00000067 DD 7E FC [19] 301 ld a, -4 (ix)
|
|
0000006A DD 77 FE [19] 302 ld -2 (ix), a
|
|
0000006D AF [ 4] 303 xor a, a
|
|
0000006E DD 77 FF [19] 304 ld -1 (ix), a
|
|
00000071 DD 77 FC [19] 305 ld -4 (ix), a
|
|
00000074 DD 77 FD [19] 306 ld -3 (ix), a
|
|
00000077 DD 6E FE [19] 307 ld l, -2 (ix)
|
|
308 ;src/esp32.c:52: rc |= (u32)SPI_DATA << 24;
|
|
0000007A DB 57 [11] 309 in a, (_SPI_DATA)
|
|
0000007C DD 77 FC [19] 310 ld -4 (ix), a
|
|
0000007F AF [ 4] 311 xor a, a
|
|
00000080 DD 77 FD [19] 312 ld -3 (ix), a
|
|
00000083 DD 77 FE [19] 313 ld -2 (ix), a
|
|
00000086 DD 77 FF [19] 314 ld -1 (ix), a
|
|
00000089 DD 7E FC [19] 315 ld a, -4 (ix)
|
|
0000008C DD 77 FF [19] 316 ld -1 (ix), a
|
|
0000008F AF [ 4] 317 xor a, a
|
|
00000090 DD 77 FC [19] 318 ld -4 (ix), a
|
|
00000093 DD 77 FD [19] 319 ld -3 (ix), a
|
|
00000096 DD 77 FE [19] 320 ld -2 (ix), a
|
|
00000099 DD 66 FF [19] 321 ld h, -1 (ix)
|
|
322 ;src/esp32.c:53: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
0000009C 3E 03 [ 7] 323 ld a, #0x03
|
|
0000009E D3 77 [11] 324 out (_SPI_CTRL), a
|
|
325 ;src/esp32.c:55: return rc;
|
|
326 ;src/esp32.c:56: }
|
|
000000A0 DD F9 [10] 327 ld sp, ix
|
|
000000A2 DD E1 [14] 328 pop ix
|
|
000000A4 C9 [10] 329 ret
|
|
330 ;src/esp32.c:58: void esp_rd_regs(u8 reg, void *data, u8 size)
|
|
331 ; ---------------------------------
|
|
332 ; Function esp_rd_regs
|
|
333 ; ---------------------------------
|
|
000000A5 334 _esp_rd_regs::
|
|
000000A5 4F [ 4] 335 ld c, a
|
|
336 ;src/esp32.c:60: u8 *d = (u8*)data;
|
|
337 ;src/esp32.c:62: SPI_CTRL = SPI_ESP_CS_ON;
|
|
000000A6 3E 13 [ 7] 338 ld a, #0x13
|
|
000000A8 D3 77 [11] 339 out (_SPI_CTRL), a
|
|
340 ;src/esp32.c:63: SPI_DATA = ESP_SPI_CMD_RD_REGS;
|
|
000000AA 3E 02 [ 7] 341 ld a, #0x02
|
|
000000AC D3 57 [11] 342 out (_SPI_DATA), a
|
|
343 ;src/esp32.c:64: SPI_DATA = reg;
|
|
000000AE 79 [ 4] 344 ld a, c
|
|
000000AF D3 57 [11] 345 out (_SPI_DATA), a
|
|
346 ;src/esp32.c:65: SPI_DATA; // dummy
|
|
000000B1 DB 57 [11] 347 in a, (_SPI_DATA)
|
|
348 ;src/esp32.c:66: SPI_DATA; // dummy
|
|
000000B3 DB 57 [11] 349 in a, (_SPI_DATA)
|
|
350 ;src/esp32.c:67: while (size--) *d++ = SPI_DATA;
|
|
000000B5 FD 21 02 00 [14] 351 ld iy, #2
|
|
000000B9 FD 39 [15] 352 add iy, sp
|
|
000000BB FD 4E 00 [19] 353 ld c, 0 (iy)
|
|
000000BE 354 00101$:
|
|
000000BE 79 [ 4] 355 ld a, c
|
|
000000BF 0D [ 4] 356 dec c
|
|
000000C0 B7 [ 4] 357 or a, a
|
|
000000C1 28 07 [12] 358 jr z, 00103$
|
|
000000C3 DB 57 [11] 359 in a, (_SPI_DATA)
|
|
000000C5 12 [ 7] 360 ld (de), a
|
|
000000C6 13 [ 6] 361 inc de
|
|
000000C7 C3rBEr00 [10] 362 jp 00101$
|
|
000000CA 363 00103$:
|
|
364 ;src/esp32.c:68: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
000000CA 3E 03 [ 7] 365 ld a, #0x03
|
|
000000CC D3 77 [11] 366 out (_SPI_CTRL), a
|
|
367 ;src/esp32.c:69: }
|
|
000000CE E1 [10] 368 pop hl
|
|
000000CF 33 [ 6] 369 inc sp
|
|
000000D0 E9 [ 4] 370 jp (hl)
|
|
371 ;src/esp32.c:71: void esp_wr_reg8(u8 reg, u8 data)
|
|
372 ; ---------------------------------
|
|
373 ; Function esp_wr_reg8
|
|
374 ; ---------------------------------
|
|
000000D1 375 _esp_wr_reg8::
|
|
000000D1 47 [ 4] 376 ld b, a
|
|
000000D2 4D [ 4] 377 ld c, l
|
|
378 ;src/esp32.c:73: SPI_CTRL = SPI_ESP_CS_ON;
|
|
000000D3 3E 13 [ 7] 379 ld a, #0x13
|
|
000000D5 D3 77 [11] 380 out (_SPI_CTRL), a
|
|
381 ;src/esp32.c:74: SPI_DATA = ESP_SPI_CMD_WR_REGS;
|
|
000000D7 3E 01 [ 7] 382 ld a, #0x01
|
|
000000D9 D3 57 [11] 383 out (_SPI_DATA), a
|
|
384 ;src/esp32.c:75: SPI_DATA = reg;
|
|
000000DB 78 [ 4] 385 ld a, b
|
|
000000DC D3 57 [11] 386 out (_SPI_DATA), a
|
|
387 ;src/esp32.c:76: SPI_DATA; // dummy
|
|
000000DE DB 57 [11] 388 in a, (_SPI_DATA)
|
|
389 ;src/esp32.c:77: SPI_DATA = data;
|
|
000000E0 79 [ 4] 390 ld a, c
|
|
000000E1 D3 57 [11] 391 out (_SPI_DATA), a
|
|
392 ;src/esp32.c:78: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
000000E3 3E 03 [ 7] 393 ld a, #0x03
|
|
000000E5 D3 77 [11] 394 out (_SPI_CTRL), a
|
|
395 ;src/esp32.c:79: }
|
|
000000E7 C9 [10] 396 ret
|
|
397 ;src/esp32.c:81: void esp_wr_reg32(u8 reg, u32 data)
|
|
398 ; ---------------------------------
|
|
399 ; Function esp_wr_reg32
|
|
400 ; ---------------------------------
|
|
000000E8 401 _esp_wr_reg32::
|
|
000000E8 4F [ 4] 402 ld c, a
|
|
403 ;src/esp32.c:83: SPI_CTRL = SPI_ESP_CS_ON;
|
|
000000E9 3E 13 [ 7] 404 ld a, #0x13
|
|
000000EB D3 77 [11] 405 out (_SPI_CTRL), a
|
|
406 ;src/esp32.c:84: SPI_DATA = ESP_SPI_CMD_WR_REGS;
|
|
000000ED 3E 01 [ 7] 407 ld a, #0x01
|
|
000000EF D3 57 [11] 408 out (_SPI_DATA), a
|
|
409 ;src/esp32.c:85: SPI_DATA = reg;
|
|
000000F1 79 [ 4] 410 ld a, c
|
|
000000F2 D3 57 [11] 411 out (_SPI_DATA), a
|
|
412 ;src/esp32.c:86: SPI_DATA; // dummy
|
|
000000F4 DB 57 [11] 413 in a, (_SPI_DATA)
|
|
414 ;src/esp32.c:87: SPI_DATA = (u8)data;
|
|
000000F6 FD 21 02 00 [14] 415 ld iy, #2
|
|
000000FA FD 39 [15] 416 add iy, sp
|
|
000000FC FD 7E 00 [19] 417 ld a, 0 (iy)
|
|
000000FF D3 57 [11] 418 out (_SPI_DATA), a
|
|
419 ;src/esp32.c:88: SPI_DATA = (u8)(data >> 8);
|
|
00000101 FD 7E 01 [19] 420 ld a, 1 (iy)
|
|
00000104 D3 57 [11] 421 out (_SPI_DATA), a
|
|
422 ;src/esp32.c:89: SPI_DATA = (u8)(data >> 16);
|
|
00000106 FD 7E 02 [19] 423 ld a, 2 (iy)
|
|
00000109 D3 57 [11] 424 out (_SPI_DATA), a
|
|
425 ;src/esp32.c:90: SPI_DATA = (u8)(data >> 24);
|
|
0000010B FD 7E 03 [19] 426 ld a, 3 (iy)
|
|
0000010E D3 57 [11] 427 out (_SPI_DATA), a
|
|
428 ;src/esp32.c:91: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000110 3E 03 [ 7] 429 ld a, #0x03
|
|
00000112 D3 77 [11] 430 out (_SPI_CTRL), a
|
|
431 ;src/esp32.c:92: }
|
|
00000114 E1 [10] 432 pop hl
|
|
00000115 F1 [10] 433 pop af
|
|
00000116 F1 [10] 434 pop af
|
|
00000117 E9 [ 4] 435 jp (hl)
|
|
436 ;src/esp32.c:94: void esp_wr_end()
|
|
437 ; ---------------------------------
|
|
438 ; Function esp_wr_end
|
|
439 ; ---------------------------------
|
|
00000118 440 _esp_wr_end::
|
|
441 ;src/esp32.c:96: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000118 3E 13 [ 7] 442 ld a, #0x13
|
|
0000011A D3 77 [11] 443 out (_SPI_CTRL), a
|
|
444 ;src/esp32.c:97: SPI_DATA = ESP_SPI_CMD_W_END;
|
|
0000011C 3E 07 [ 7] 445 ld a, #0x07
|
|
0000011E D3 57 [11] 446 out (_SPI_DATA), a
|
|
447 ;src/esp32.c:98: SPI_DATA; // dummy
|
|
00000120 DB 57 [11] 448 in a, (_SPI_DATA)
|
|
449 ;src/esp32.c:99: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000122 3E 03 [ 7] 450 ld a, #0x03
|
|
00000124 D3 77 [11] 451 out (_SPI_CTRL), a
|
|
452 ;src/esp32.c:100: }
|
|
00000126 C9 [10] 453 ret
|
|
454 ;src/esp32.c:102: void esp_send_dma(u16 a, u8 p, u16 l, u16 n)
|
|
455 ; ---------------------------------
|
|
456 ; Function esp_send_dma
|
|
457 ; ---------------------------------
|
|
00000127 458 _esp_send_dma::
|
|
00000127 7D [ 4] 459 ld a, l
|
|
460 ;src/esp32.c:105: TS_DMASADDRL = (u8)a;
|
|
00000128 01 AF 1A [10] 461 ld bc, #_TS_DMASADDRL
|
|
0000012B ED 79 [12] 462 out (c), a
|
|
463 ;src/esp32.c:106: TS_DMASADDRH = (u8)((u16)a >> 8);
|
|
0000012D 7C [ 4] 464 ld a, h
|
|
0000012E 01 AF 1B [10] 465 ld bc, #_TS_DMASADDRH
|
|
00000131 ED 79 [12] 466 out (c), a
|
|
467 ;src/esp32.c:107: TS_DMASADDRX = p;
|
|
00000133 FD 21 02 00 [14] 468 ld iy, #2
|
|
00000137 FD 39 [15] 469 add iy, sp
|
|
00000139 FD 7E 00 [19] 470 ld a, 0 (iy)
|
|
0000013C 01 AF 1C [10] 471 ld bc, #_TS_DMASADDRX
|
|
0000013F ED 79 [12] 472 out (c), a
|
|
473 ;src/esp32.c:108: TS_DMALEN = (u8)((l >> 1) - 1);
|
|
00000141 FD 7E 01 [19] 474 ld a, 1 (iy)
|
|
00000144 FD 4E 02 [19] 475 ld c, 2 (iy)
|
|
00000147 FD 23 [10] 476 inc iy
|
|
00000149 CB 39 [ 8] 477 srl c
|
|
0000014B CB 1F [ 8] 478 rr a
|
|
0000014D 3D [ 4] 479 dec a
|
|
0000014E 01 AF 26 [10] 480 ld bc, #_TS_DMALEN
|
|
00000151 ED 79 [12] 481 out (c), a
|
|
482 ;src/esp32.c:109: TS_DMANUM = (u8)(n - 1);
|
|
00000153 FD 7E 02 [19] 483 ld a, 2 (iy)
|
|
00000156 3D [ 4] 484 dec a
|
|
00000157 01 AF 28 [10] 485 ld bc, #_TS_DMANUM
|
|
0000015A ED 79 [12] 486 out (c), a
|
|
487 ;src/esp32.c:111: SPI_CTRL = SPI_ESP_CS_ON;
|
|
0000015C 3E 13 [ 7] 488 ld a, #0x13
|
|
0000015E D3 77 [11] 489 out (_SPI_CTRL), a
|
|
490 ;src/esp32.c:112: SPI_DATA = ESP_SPI_CMD_WR_DATA;
|
|
00000160 3E 03 [ 7] 491 ld a, #0x03
|
|
00000162 D3 57 [11] 492 out (_SPI_DATA), a
|
|
493 ;src/esp32.c:113: SPI_DATA; // dummy
|
|
00000164 DB 57 [11] 494 in a, (_SPI_DATA)
|
|
495 ;src/esp32.c:114: SPI_DATA; // dummy
|
|
00000166 DB 57 [11] 496 in a, (_SPI_DATA)
|
|
497 ;src/esp32.c:115: TS_DMACTR = TS_DMA_RAM_SPI;
|
|
00000168 3E 82 [ 7] 498 ld a, #0x82
|
|
0000016A 01 AF 27 [10] 499 ld bc, #_TS_DMACTR
|
|
0000016D ED 79 [12] 500 out (c), a
|
|
501 ;src/esp32.c:116: while (TS_DMASTATUS & 0x80);
|
|
0000016F 502 00101$:
|
|
0000016F 3E 27 [ 7] 503 ld a, #>(_TS_DMASTATUS)
|
|
00000171 DB AF [11] 504 in a, (#<(_TS_DMASTATUS))
|
|
00000173 07 [ 4] 505 rlca
|
|
00000174 38 F9 [12] 506 jr c, 00101$
|
|
507 ;src/esp32.c:117: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000176 3E 03 [ 7] 508 ld a, #0x03
|
|
00000178 D3 77 [11] 509 out (_SPI_CTRL), a
|
|
510 ;src/esp32.c:119: esp_wr_end();
|
|
0000017A CDr18r01 [17] 511 call _esp_wr_end
|
|
512 ;src/esp32.c:120: esp_wait_busy(100); // 2s - esp32 consuming one DMA'd chunk should be near-instant
|
|
0000017D 21 64 00 [10] 513 ld hl, #0x0064
|
|
00000180 CDrE5r01 [17] 514 call _esp_wait_busy
|
|
515 ;src/esp32.c:121: }
|
|
00000183 E1 [10] 516 pop hl
|
|
00000184 F1 [10] 517 pop af
|
|
00000185 F1 [10] 518 pop af
|
|
00000186 33 [ 6] 519 inc sp
|
|
00000187 E9 [ 4] 520 jp (hl)
|
|
521 ;src/esp32.c:123: void esp_rd_end()
|
|
522 ; ---------------------------------
|
|
523 ; Function esp_rd_end
|
|
524 ; ---------------------------------
|
|
00000188 525 _esp_rd_end::
|
|
526 ;src/esp32.c:125: SPI_CTRL = SPI_ESP_CS_ON;
|
|
00000188 3E 13 [ 7] 527 ld a, #0x13
|
|
0000018A D3 77 [11] 528 out (_SPI_CTRL), a
|
|
529 ;src/esp32.c:126: SPI_DATA = ESP_SPI_CMD_R_END;
|
|
0000018C 3E 08 [ 7] 530 ld a, #0x08
|
|
0000018E D3 57 [11] 531 out (_SPI_DATA), a
|
|
532 ;src/esp32.c:127: SPI_DATA; // dummy
|
|
00000190 DB 57 [11] 533 in a, (_SPI_DATA)
|
|
534 ;src/esp32.c:128: SPI_CTRL = SPI_ESP_CS_OFF;
|
|
00000192 3E 03 [ 7] 535 ld a, #0x03
|
|
00000194 D3 77 [11] 536 out (_SPI_CTRL), a
|
|
537 ;src/esp32.c:129: }
|
|
00000196 C9 [10] 538 ret
|
|
539 ;src/esp32.c:139: u8 esp_wait_status(u8 status, u16 max_frames)
|
|
540 ; ---------------------------------
|
|
541 ; Function esp_wait_status
|
|
542 ; ---------------------------------
|
|
00000197 543 _esp_wait_status::
|
|
00000197 DD E5 [15] 544 push ix
|
|
00000199 DD 21 00 00 [14] 545 ld ix, #0
|
|
0000019D DD 39 [15] 546 add ix, sp
|
|
0000019F 21 FB FF [10] 547 ld hl, #-5
|
|
000001A2 39 [11] 548 add hl, sp
|
|
000001A3 F9 [ 6] 549 ld sp, hl
|
|
000001A4 DD 77 FF [19] 550 ld -1 (ix), a
|
|
000001A7 DD 73 FD [19] 551 ld -3 (ix), e
|
|
000001AA DD 72 FE [19] 552 ld -2 (ix), d
|
|
553 ;src/esp32.c:141: u16 start = *(u16*)_TMN;
|
|
000001AD 21 09 60 [10] 554 ld hl, #0x6009
|
|
000001B0 7E [ 7] 555 ld a, (hl)
|
|
000001B1 DD 77 FB [19] 556 ld -5 (ix), a
|
|
000001B4 23 [ 6] 557 inc hl
|
|
000001B5 7E [ 7] 558 ld a, (hl)
|
|
000001B6 DD 77 FC [19] 559 ld -4 (ix), a
|
|
560 ;src/esp32.c:143: while ((u16)(*(u16*)_TMN - start) < max_frames)
|
|
000001B9 561 00103$:
|
|
000001B9 2A 09 60 [16] 562 ld hl, (#0x6009)
|
|
000001BC 7D [ 4] 563 ld a, l
|
|
000001BD DD 96 FB [19] 564 sub a, -5 (ix)
|
|
000001C0 4F [ 4] 565 ld c, a
|
|
000001C1 7C [ 4] 566 ld a, h
|
|
000001C2 DD 9E FC [19] 567 sbc a, -4 (ix)
|
|
000001C5 47 [ 4] 568 ld b, a
|
|
000001C6 79 [ 4] 569 ld a, c
|
|
000001C7 DD 96 FD [19] 570 sub a, -3 (ix)
|
|
000001CA 78 [ 4] 571 ld a, b
|
|
000001CB DD 9E FE [19] 572 sbc a, -2 (ix)
|
|
000001CE 30 0F [12] 573 jr nc, 00105$
|
|
574 ;src/esp32.c:145: if (esp_rd_reg8(ESP_REG_STATUS) == status)
|
|
000001D0 3E 01 [ 7] 575 ld a, #0x01
|
|
000001D2 CDr1Er00 [17] 576 call _esp_rd_reg8
|
|
000001D5 DD 96 FF [19] 577 sub a, -1 (ix)
|
|
000001D8 20 DF [12] 578 jr nz, 00103$
|
|
579 ;src/esp32.c:146: return 1;
|
|
000001DA 3E 01 [ 7] 580 ld a, #0x01
|
|
000001DC C3rE0r01 [10] 581 jp 00106$
|
|
000001DF 582 00105$:
|
|
583 ;src/esp32.c:149: return 0;
|
|
000001DF AF [ 4] 584 xor a, a
|
|
000001E0 585 00106$:
|
|
586 ;src/esp32.c:150: }
|
|
000001E0 DD F9 [10] 587 ld sp, ix
|
|
000001E2 DD E1 [14] 588 pop ix
|
|
000001E4 C9 [10] 589 ret
|
|
590 ;src/esp32.c:152: u8 esp_wait_busy(u16 max_frames)
|
|
591 ; ---------------------------------
|
|
592 ; Function esp_wait_busy
|
|
593 ; ---------------------------------
|
|
000001E5 594 _esp_wait_busy::
|
|
000001E5 DD E5 [15] 595 push ix
|
|
000001E7 DD 21 00 00 [14] 596 ld ix, #0
|
|
000001EB DD 39 [15] 597 add ix, sp
|
|
000001ED F5 [11] 598 push af
|
|
000001EE F5 [11] 599 push af
|
|
000001EF DD 75 FE [19] 600 ld -2 (ix), l
|
|
000001F2 DD 74 FF [19] 601 ld -1 (ix), h
|
|
602 ;src/esp32.c:154: u16 start = *(u16*)_TMN;
|
|
000001F5 21 09 60 [10] 603 ld hl, #0x6009
|
|
000001F8 7E [ 7] 604 ld a, (hl)
|
|
000001F9 DD 77 FC [19] 605 ld -4 (ix), a
|
|
000001FC 23 [ 6] 606 inc hl
|
|
000001FD 7E [ 7] 607 ld a, (hl)
|
|
000001FE DD 77 FD [19] 608 ld -3 (ix), a
|
|
609 ;src/esp32.c:156: while ((u16)(*(u16*)_TMN - start) < max_frames)
|
|
00000201 610 00103$:
|
|
00000201 2A 09 60 [16] 611 ld hl, (#0x6009)
|
|
00000204 7D [ 4] 612 ld a, l
|
|
00000205 DD 96 FC [19] 613 sub a, -4 (ix)
|
|
00000208 4F [ 4] 614 ld c, a
|
|
00000209 7C [ 4] 615 ld a, h
|
|
0000020A DD 9E FD [19] 616 sbc a, -3 (ix)
|
|
0000020D 47 [ 4] 617 ld b, a
|
|
0000020E 79 [ 4] 618 ld a, c
|
|
0000020F DD 96 FE [19] 619 sub a, -2 (ix)
|
|
00000212 78 [ 4] 620 ld a, b
|
|
00000213 DD 9E FF [19] 621 sbc a, -1 (ix)
|
|
00000216 30 0E [12] 622 jr nc, 00105$
|
|
623 ;src/esp32.c:158: if (esp_rd_reg8(ESP_REG_STATUS) != ESP_ST_BUSY)
|
|
00000218 3E 01 [ 7] 624 ld a, #0x01
|
|
0000021A CDr1Er00 [17] 625 call _esp_rd_reg8
|
|
0000021D FE 02 [ 7] 626 cp a, #0x02
|
|
0000021F 28 E0 [12] 627 jr z, 00103$
|
|
628 ;src/esp32.c:159: return 1;
|
|
00000221 3E 01 [ 7] 629 ld a, #0x01
|
|
00000223 C3r27r02 [10] 630 jp 00106$
|
|
00000226 631 00105$:
|
|
632 ;src/esp32.c:162: return 0;
|
|
00000226 AF [ 4] 633 xor a, a
|
|
00000227 634 00106$:
|
|
635 ;src/esp32.c:163: }
|
|
00000227 DD F9 [10] 636 ld sp, ix
|
|
00000229 DD E1 [14] 637 pop ix
|
|
0000022B C9 [10] 638 ret
|
|
639 ;src/esp32.c:165: int esp_create_obj(u32 size, u8 type)
|
|
640 ; ---------------------------------
|
|
641 ; Function esp_create_obj
|
|
642 ; ---------------------------------
|
|
0000022C 643 _esp_create_obj::
|
|
644 ;src/esp32.c:167: esp_wr_reg32(ESP_REG_DATA_SIZE, size);
|
|
0000022C E5 [11] 645 push hl
|
|
0000022D D5 [11] 646 push de
|
|
0000022E 3E 03 [ 7] 647 ld a, #0x03
|
|
00000230 CDrE8r00 [17] 648 call _esp_wr_reg32
|
|
649 ;src/esp32.c:168: esp_wr_reg8(ESP_REG_OBJ_TYPE, type);
|
|
00000233 FD 21 02 00 [14] 650 ld iy, #2
|
|
00000237 FD 39 [15] 651 add iy, sp
|
|
00000239 FD 6E 00 [19] 652 ld l, 0 (iy)
|
|
0000023C 3E 02 [ 7] 653 ld a, #0x02
|
|
0000023E CDrD1r00 [17] 654 call _esp_wr_reg8
|
|
655 ;src/esp32.c:169: esp_cmd(ESP_CMD_MAKE_OBJECT);
|
|
00000241 3E E0 [ 7] 656 ld a, #0xe0
|
|
00000243 CDr05r00 [17] 657 call _esp_cmd
|
|
658 ;src/esp32.c:170: esp_wait_busy(100); // 2s - object allocation should be near-instant
|
|
00000246 21 64 00 [10] 659 ld hl, #0x0064
|
|
00000249 CDrE5r01 [17] 660 call _esp_wait_busy
|
|
661 ;src/esp32.c:173: return esp_rd_reg8(ESP_REG_OBJ_HANDLE);
|
|
0000024C 3E 0B [ 7] 662 ld a, #0x0b
|
|
0000024E CDr1Er00 [17] 663 call _esp_rd_reg8
|
|
00000251 5F [ 4] 664 ld e, a
|
|
00000252 16 00 [ 7] 665 ld d, #0x00
|
|
666 ;src/esp32.c:174: }
|
|
00000254 E1 [10] 667 pop hl
|
|
00000255 33 [ 6] 668 inc sp
|
|
00000256 E9 [ 4] 669 jp (hl)
|
|
670 ;src/main.c:101: bool esp_init()
|
|
671 ; ---------------------------------
|
|
672 ; Function esp_init
|
|
673 ; ---------------------------------
|
|
00000257 674 _esp_init::
|
|
675 ;src/main.c:103: esp_cmd(ESP_CMD_NOP);
|
|
00000257 AF [ 4] 676 xor a, a
|
|
00000258 CDr05r00 [17] 677 call _esp_cmd
|
|
678 ;src/main.c:104: esp_rd_end();
|
|
0000025B CDr88r01 [17] 679 call _esp_rd_end
|
|
680 ;src/main.c:105: esp_wr_end();
|
|
0000025E CDr18r01 [17] 681 call _esp_wr_end
|
|
682 ;src/main.c:109: return true;
|
|
00000261 3E 01 [ 7] 683 ld a, #0x01
|
|
684 ;src/main.c:110: }
|
|
00000263 C9 [10] 685 ret
|
|
00000264 686 _win_xm:
|
|
00000264 81 687 .db #0x81 ; 129
|
|
00000265 00 688 .db #0x00 ; 0
|
|
00000266 19 689 .db #0x19 ; 25
|
|
00000267 0A 690 .db #0x0a ; 10
|
|
00000268 28 691 .db #0x28 ; 40
|
|
00000269 0C 692 .db #0x0c ; 12
|
|
0000026A 70 693 .db #0x70 ; 112 'p'
|
|
0000026B 00 694 .db #0x00 ; 0
|
|
0000026C 00 00 695 .dw #0x0000
|
|
0000026E 00 696 .db #0x00 ; 0
|
|
0000026F 00 697 .db #0x00 ; 0
|
|
00000270r88r02 698 .dw __str_0
|
|
00000272rA2r02 699 .dw __str_1
|
|
00000274rA2r02 700 .dw __str_1
|
|
00000276 701 _win_about:
|
|
00000276 01 702 .db #0x01 ; 1
|
|
00000277 00 703 .db #0x00 ; 0
|
|
00000278 16 704 .db #0x16 ; 22
|
|
00000279 0A 705 .db #0x0a ; 10
|
|
0000027A 24 706 .db #0x24 ; 36
|
|
0000027B 05 707 .db #0x05 ; 5
|
|
0000027C 4F 708 .db #0x4f ; 79 'O'
|
|
0000027D 00 709 .db #0x00 ; 0
|
|
0000027E 00 00 710 .dw #0x0000
|
|
00000280 00 711 .db #0x00 ; 0
|
|
00000281 00 712 .db #0x00 ; 0
|
|
00000282rA3r02 713 .dw __str_2
|
|
00000284rA2r02 714 .dw __str_1
|
|
00000286rACr02 715 .dw __str_3
|
|
00000288 716 __str_0:
|
|
00000288 0E 717 .db 0x0e
|
|
00000289 20 58 4D 2F 58 4D 5A 718 .ascii " XM/XMZ/S3M Player v0.1 "
|
|
2F 53 33 4D 20 50 6C
|
|
61 79 65 72 20 76 30
|
|
2E 31 20
|
|
000002A1 00 719 .db 0x00
|
|
000002A2 720 __str_1:
|
|
000002A2 00 721 .db 0x00
|
|
000002A3 722 __str_2:
|
|
000002A3 0E 723 .db 0x0e
|
|
000002A4 20 41 62 6F 75 74 20 724 .ascii " About "
|
|
000002AB 00 725 .db 0x00
|
|
000002AC 726 __str_3:
|
|
000002AC 0E 727 .db 0x0e
|
|
000002AD 0C 728 .db 0x0c
|
|
000002AE 01 729 .db 0x01
|
|
000002AF 58 4D 20 50 6C 61 79 730 .ascii "XM Player v0.1"
|
|
65 72 20 76 30 2E 31
|
|
000002BD 00 731 .db 0x00
|
|
732 ;src/main.c:114: bool play_xm()
|
|
733 ; ---------------------------------
|
|
734 ; Function play_xm
|
|
735 ; ---------------------------------
|
|
000002BE 736 _play_xm::
|
|
000002BE DD E5 [15] 737 push ix
|
|
000002C0 DD 21 00 00 [14] 738 ld ix, #0
|
|
000002C4 DD 39 [15] 739 add ix, sp
|
|
000002C6 21 EC FF [10] 740 ld hl, #-20
|
|
000002C9 39 [11] 741 add hl, sp
|
|
000002CA F9 [ 6] 742 ld sp, hl
|
|
743 ;src/main.c:116: esp_cmd(ESP_CMD_TRACK_STOP);
|
|
000002CB 3E A2 [ 7] 744 ld a, #0xa2
|
|
000002CD CDr05r00 [17] 745 call _esp_cmd
|
|
746 ;src/main.c:117: esp_wait_busy(100); // 2s - both should be near-instant
|
|
000002D0 21 64 00 [10] 747 ld hl, #0x0064
|
|
000002D3 CDrE5r01 [17] 748 call _esp_wait_busy
|
|
749 ;src/main.c:118: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
000002D6 3E E4 [ 7] 750 ld a, #0xe4
|
|
000002D8 CDr05r00 [17] 751 call _esp_cmd
|
|
752 ;src/main.c:119: esp_wait_busy(100);
|
|
000002DB 21 64 00 [10] 753 ld hl, #0x0064
|
|
000002DE CDrE5r01 [17] 754 call _esp_wait_busy
|
|
755 ;src/main.c:122: switch (file_ext)
|
|
000002E1 3Ar06r10 [13] 756 ld a, (_file_ext)
|
|
000002E4 3D [ 4] 757 dec a
|
|
000002E5 28 0A [12] 758 jr z, 00101$
|
|
000002E7 3Ar06r10 [13] 759 ld a, (_file_ext)
|
|
000002EA D6 02 [ 7] 760 sub a, #0x02
|
|
000002EC 28 08 [12] 761 jr z, 00102$
|
|
000002EE C3rFBr02 [10] 762 jp 00103$
|
|
763 ;src/main.c:124: case EXT_XMZ: obj_type = OBJ_TYPE_ZIP; break;
|
|
000002F1 764 00101$:
|
|
000002F1 3E 08 [ 7] 765 ld a, #0x08
|
|
000002F3 C3rFDr02 [10] 766 jp 00104$
|
|
767 ;src/main.c:125: case EXT_S3M: obj_type = OBJ_TYPE_S3M; break;
|
|
000002F6 768 00102$:
|
|
000002F6 3E 0C [ 7] 769 ld a, #0x0c
|
|
000002F8 C3rFDr02 [10] 770 jp 00104$
|
|
771 ;src/main.c:126: default: obj_type = OBJ_TYPE_XM; break;
|
|
000002FB 772 00103$:
|
|
000002FB 3E 05 [ 7] 773 ld a, #0x05
|
|
774 ;src/main.c:127: }
|
|
000002FD 775 00104$:
|
|
776 ;src/main.c:129: xm_handle = esp_create_obj(filesize, obj_type);
|
|
000002FD F5 [11] 777 push af
|
|
000002FE 33 [ 6] 778 inc sp
|
|
000002FF ED 5Br02r10 [20] 779 ld de, (_filesize)
|
|
00000303 2Ar04r10 [16] 780 ld hl, (_filesize + 2)
|
|
00000306 CDr2Cr02 [17] 781 call _esp_create_obj
|
|
00000309 21r30r10 [10] 782 ld hl, #_xm_handle
|
|
0000030C 73 [ 7] 783 ld (hl), e
|
|
784 ;src/main.c:130: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
0000030D 3E 01 [ 7] 785 ld a, #0x01
|
|
0000030F CDr1Er00 [17] 786 call _esp_rd_reg8
|
|
00000312 32r08r10 [13] 787 ld (#_last_esp_status), a
|
|
788 ;src/main.c:131: if (last_esp_status != ESP_ST_READY)
|
|
00000315 3Ar08r10 [13] 789 ld a, (_last_esp_status)
|
|
00000318 3D [ 4] 790 dec a
|
|
00000319 28 04 [12] 791 jr z, 00106$
|
|
792 ;src/main.c:132: return false;
|
|
0000031B AF [ 4] 793 xor a, a
|
|
0000031C C3rE5r04 [10] 794 jp 00118$
|
|
0000031F 795 00106$:
|
|
796 ;src/main.c:134: u32 sz = filesize;
|
|
0000031F 21 0C 00 [10] 797 ld hl, #12
|
|
00000322 39 [11] 798 add hl, sp
|
|
00000323 EB [ 4] 799 ex de, hl
|
|
00000324 21r02r10 [10] 800 ld hl, #_filesize
|
|
00000327 01 04 00 [10] 801 ld bc, #4
|
|
0000032A ED B0 [21] 802 ldir
|
|
803 ;src/main.c:135: u32 offs = 0;
|
|
0000032C AF [ 4] 804 xor a, a
|
|
0000032D DD 77 FC [19] 805 ld -4 (ix), a
|
|
00000330 DD 77 FD [19] 806 ld -3 (ix), a
|
|
00000333 DD 77 FE [19] 807 ld -2 (ix), a
|
|
00000336 DD 77 FF [19] 808 ld -1 (ix), a
|
|
809 ;src/main.c:137: while (sz)
|
|
00000339 810 00107$:
|
|
00000339 DD 7E FB [19] 811 ld a, -5 (ix)
|
|
0000033C DD B6 FA [19] 812 or a, -6 (ix)
|
|
0000033F DD B6 F9 [19] 813 or a, -7 (ix)
|
|
00000342 DD B6 F8 [19] 814 or a, -8 (ix)
|
|
00000345 CAr4Er04 [10] 815 jp z, 00109$
|
|
816 ;src/main.c:139: u32 s = min(sz, FS_BUF_SIZE);
|
|
00000348 DD 7E F9 [19] 817 ld a, -7 (ix)
|
|
0000034B D6 10 [ 7] 818 sub a, #0x10
|
|
0000034D DD 7E FA [19] 819 ld a, -6 (ix)
|
|
00000350 DE 00 [ 7] 820 sbc a, #0x00
|
|
00000352 DD 7E FB [19] 821 ld a, -5 (ix)
|
|
00000355 DE 00 [ 7] 822 sbc a, #0x00
|
|
00000357 30 11 [12] 823 jr nc, 00120$
|
|
00000359 21 00 00 [10] 824 ld hl, #0
|
|
0000035C 39 [11] 825 add hl, sp
|
|
0000035D EB [ 4] 826 ex de, hl
|
|
0000035E 21 0C 00 [10] 827 ld hl, #12
|
|
00000361 39 [11] 828 add hl, sp
|
|
00000362 01 04 00 [10] 829 ld bc, #4
|
|
00000365 ED B0 [21] 830 ldir
|
|
00000367 C3r79r03 [10] 831 jp 00121$
|
|
0000036A 832 00120$:
|
|
0000036A DD 36 EC 00 [19] 833 ld -20 (ix), #0x00
|
|
0000036E DD 36 ED 10 [19] 834 ld -19 (ix), #0x10
|
|
00000372 AF [ 4] 835 xor a, a
|
|
00000373 DD 77 EE [19] 836 ld -18 (ix), a
|
|
00000376 DD 77 EF [19] 837 ld -17 (ix), a
|
|
00000379 838 00121$:
|
|
00000379 21 05 00 [10] 839 ld hl, #5
|
|
0000037C 39 [11] 840 add hl, sp
|
|
0000037D EB [ 4] 841 ex de, hl
|
|
0000037E 21 00 00 [10] 842 ld hl, #0
|
|
00000381 39 [11] 843 add hl, sp
|
|
00000382 01 04 00 [10] 844 ld bc, #4
|
|
00000385 ED B0 [21] 845 ldir
|
|
846 ;src/main.c:140: u8 sec = (s + 511) >> 9;
|
|
00000387 DD 7E F1 [19] 847 ld a, -15 (ix)
|
|
0000038A C6 FF [ 7] 848 add a, #0xff
|
|
0000038C DD 7E F2 [19] 849 ld a, -14 (ix)
|
|
0000038F CE 01 [ 7] 850 adc a, #0x01
|
|
00000391 47 [ 4] 851 ld b, a
|
|
00000392 3E 00 [ 7] 852 ld a, #0x00
|
|
00000394 CE 00 [ 7] 853 adc a, #0x00
|
|
00000396 5F [ 4] 854 ld e, a
|
|
00000397 3E 00 [ 7] 855 ld a, #0x00
|
|
00000399 CE 00 [ 7] 856 adc a, #0x00
|
|
0000039B 57 [ 4] 857 ld d, a
|
|
0000039C 48 [ 4] 858 ld c, b
|
|
0000039D 43 [ 4] 859 ld b, e
|
|
0000039E 5A [ 4] 860 ld e, d
|
|
0000039F CB 3B [ 8] 861 srl e
|
|
000003A1 CB 18 [ 8] 862 rr b
|
|
000003A3 CB 19 [ 8] 863 rr c
|
|
864 ;src/main.c:142: wc_load512((u16)fs_buf, sec);
|
|
000003A5 DD 71 F7 [19] 865 ld -9 (ix), c
|
|
000003A8 79 [ 4] 866 ld a, c
|
|
000003A9 F5 [11] 867 push af
|
|
000003AA 33 [ 6] 868 inc sp
|
|
000003AB 21r00r00 [10] 869 ld hl, #_fs_buf
|
|
000003AE CDr00r00 [17] 870 call _wc_load512
|
|
871 ;src/main.c:144: esp_wr_reg32(ESP_REG_DATA_SIZE, s);
|
|
000003B1 21 00 00 [10] 872 ld hl, #0x0
|
|
000003B4 E5 [11] 873 push hl
|
|
000003B5 DD 6E F1 [19] 874 ld l, -15 (ix)
|
|
000003B8 DD 66 F2 [19] 875 ld h, -14 (ix)
|
|
000003BB E5 [11] 876 push hl
|
|
000003BC 3E 03 [ 7] 877 ld a, #0x03
|
|
000003BE CDrE8r00 [17] 878 call _esp_wr_reg32
|
|
879 ;src/main.c:145: esp_wr_reg32(ESP_REG_DATA_OFFSET, offs);
|
|
000003C1 DD 6E FE [19] 880 ld l, -2 (ix)
|
|
000003C4 DD 66 FF [19] 881 ld h, -1 (ix)
|
|
000003C7 E5 [11] 882 push hl
|
|
000003C8 DD 6E FC [19] 883 ld l, -4 (ix)
|
|
000003CB DD 66 FD [19] 884 ld h, -3 (ix)
|
|
000003CE E5 [11] 885 push hl
|
|
000003CF 3E 07 [ 7] 886 ld a, #0x07
|
|
000003D1 CDrE8r00 [17] 887 call _esp_wr_reg32
|
|
888 ;src/main.c:146: esp_cmd(ESP_CMD_WRITE_OBJECT);
|
|
000003D4 3E E1 [ 7] 889 ld a, #0xe1
|
|
000003D6 CDr05r00 [17] 890 call _esp_cmd
|
|
891 ;src/main.c:147: esp_wait_status(ESP_ST_DATA_M2S, 100); // 2s - near-instant state transition
|
|
000003D9 11 64 00 [10] 892 ld de, #0x0064
|
|
000003DC 3E 03 [ 7] 893 ld a, #0x03
|
|
000003DE CDr97r01 [17] 894 call _esp_wait_status
|
|
895 ;src/main.c:148: esp_send_dma((u16)fs_buf, *(u8*)_PAGE2, 512, sec);
|
|
000003E1 DD 7E F7 [19] 896 ld a, -9 (ix)
|
|
000003E4 DD 77 F5 [19] 897 ld -11 (ix), a
|
|
000003E7 DD 36 F6 00 [19] 898 ld -10 (ix), #0x00
|
|
000003EB 3A 02 60 [13] 899 ld a, (#0x6002)
|
|
000003EE DD 77 F7 [19] 900 ld -9 (ix), a
|
|
000003F1 DD 6E F5 [19] 901 ld l, -11 (ix)
|
|
000003F4 26 00 [ 7] 902 ld h, #0x00
|
|
000003F6 E5 [11] 903 push hl
|
|
000003F7 21 00 02 [10] 904 ld hl, #0x0200
|
|
000003FA E5 [11] 905 push hl
|
|
000003FB DD 7E F7 [19] 906 ld a, -9 (ix)
|
|
000003FE F5 [11] 907 push af
|
|
000003FF 33 [ 6] 908 inc sp
|
|
00000400 21r00r00 [10] 909 ld hl, #_fs_buf
|
|
00000403 CDr27r01 [17] 910 call _esp_send_dma
|
|
911 ;src/main.c:150: offs += s;
|
|
00000406 DD 5E F1 [19] 912 ld e, -15 (ix)
|
|
00000409 DD 56 F2 [19] 913 ld d, -14 (ix)
|
|
0000040C DD 6E FC [19] 914 ld l, -4 (ix)
|
|
0000040F DD 66 FD [19] 915 ld h, -3 (ix)
|
|
00000412 19 [11] 916 add hl, de
|
|
00000413 DD 75 FC [19] 917 ld -4 (ix), l
|
|
00000416 DD 74 FD [19] 918 ld -3 (ix), h
|
|
00000419 DD 7E FE [19] 919 ld a, -2 (ix)
|
|
0000041C DD 8E F3 [19] 920 adc a, -13 (ix)
|
|
0000041F DD 77 FE [19] 921 ld -2 (ix), a
|
|
00000422 30 03 [12] 922 jr nc, 00207$
|
|
00000424 DD 34 FF [23] 923 inc -1 (ix)
|
|
00000427 924 00207$:
|
|
925 ;src/main.c:151: sz -= s;
|
|
00000427 DD 7E F8 [19] 926 ld a, -8 (ix)
|
|
0000042A DD 96 F1 [19] 927 sub a, -15 (ix)
|
|
0000042D DD 77 F8 [19] 928 ld -8 (ix), a
|
|
00000430 DD 7E F9 [19] 929 ld a, -7 (ix)
|
|
00000433 DD 9E F2 [19] 930 sbc a, -14 (ix)
|
|
00000436 DD 77 F9 [19] 931 ld -7 (ix), a
|
|
00000439 DD 7E FA [19] 932 ld a, -6 (ix)
|
|
0000043C DD 9E F3 [19] 933 sbc a, -13 (ix)
|
|
0000043F DD 77 FA [19] 934 ld -6 (ix), a
|
|
00000442 DD 7E FB [19] 935 ld a, -5 (ix)
|
|
00000445 DD 9E F4 [19] 936 sbc a, -12 (ix)
|
|
00000448 DD 77 FB [19] 937 ld -5 (ix), a
|
|
0000044B C3r39r03 [10] 938 jp 00107$
|
|
0000044E 939 00109$:
|
|
940 ;src/main.c:154: if (file_ext == EXT_XMZ)
|
|
0000044E 3Ar06r10 [13] 941 ld a, (_file_ext)
|
|
00000451 3D [ 4] 942 dec a
|
|
00000452 20 3A [12] 943 jr nz, 00113$
|
|
944 ;src/main.c:159: esp_wr_reg8(ESP_REG_OBJ_HANDLE, xm_handle);
|
|
00000454 3Ar30r10 [13] 945 ld a, (_xm_handle)
|
|
00000457 6F [ 4] 946 ld l, a
|
|
00000458 3E 0B [ 7] 947 ld a, #0x0b
|
|
0000045A CDrD1r00 [17] 948 call _esp_wr_reg8
|
|
949 ;src/main.c:160: esp_wr_reg8(ESP_REG_OBJ_TYPE, OBJ_TYPE_XM);
|
|
0000045D 2E 05 [ 7] 950 ld l, #0x05
|
|
0000045F 3E 02 [ 7] 951 ld a, #0x02
|
|
00000461 CDrD1r00 [17] 952 call _esp_wr_reg8
|
|
953 ;src/main.c:161: esp_wr_reg32(ESP_REG_DATA_SIZE, filesize);
|
|
00000464 2Ar04r10 [16] 954 ld hl, (_filesize + 2)
|
|
00000467 E5 [11] 955 push hl
|
|
00000468 2Ar02r10 [16] 956 ld hl, (_filesize)
|
|
0000046B E5 [11] 957 push hl
|
|
0000046C 3E 03 [ 7] 958 ld a, #0x03
|
|
0000046E CDrE8r00 [17] 959 call _esp_wr_reg32
|
|
960 ;src/main.c:162: esp_cmd(ESP_CMD_UNZIP);
|
|
00000471 3E F2 [ 7] 961 ld a, #0xf2
|
|
00000473 CDr05r00 [17] 962 call _esp_cmd
|
|
963 ;src/main.c:163: esp_wait_busy(250); // 5s - decompression time scales with file size
|
|
00000476 21 FA 00 [10] 964 ld hl, #0x00fa
|
|
00000479 CDrE5r01 [17] 965 call _esp_wait_busy
|
|
966 ;src/main.c:165: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
0000047C 3E 01 [ 7] 967 ld a, #0x01
|
|
0000047E CDr1Er00 [17] 968 call _esp_rd_reg8
|
|
00000481 32r08r10 [13] 969 ld (#_last_esp_status), a
|
|
970 ;src/main.c:166: if (last_esp_status != ESP_ST_READY)
|
|
00000484 3Ar08r10 [13] 971 ld a, (_last_esp_status)
|
|
00000487 3D [ 4] 972 dec a
|
|
00000488 28 04 [12] 973 jr z, 00113$
|
|
974 ;src/main.c:167: return false;
|
|
0000048A AF [ 4] 975 xor a, a
|
|
0000048B C3rE5r04 [10] 976 jp 00118$
|
|
0000048E 977 00113$:
|
|
978 ;src/main.c:170: esp_cmd(ESP_CMD_TRACK_INIT);
|
|
0000048E 3E A0 [ 7] 979 ld a, #0xa0
|
|
00000490 CDr05r00 [17] 980 call _esp_cmd
|
|
981 ;src/main.c:176: esp_wait_busy(400);
|
|
00000493 21 90 01 [10] 982 ld hl, #0x0190
|
|
00000496 CDrE5r01 [17] 983 call _esp_wait_busy
|
|
984 ;src/main.c:178: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
00000499 3E 01 [ 7] 985 ld a, #0x01
|
|
0000049B CDr1Er00 [17] 986 call _esp_rd_reg8
|
|
0000049E 32r08r10 [13] 987 ld (#_last_esp_status), a
|
|
988 ;src/main.c:179: if (last_esp_status != ESP_ST_READY)
|
|
000004A1 3Ar08r10 [13] 989 ld a, (_last_esp_status)
|
|
000004A4 3D [ 4] 990 dec a
|
|
000004A5 28 04 [12] 991 jr z, 00115$
|
|
992 ;src/main.c:180: return false;
|
|
000004A7 AF [ 4] 993 xor a, a
|
|
000004A8 C3rE5r04 [10] 994 jp 00118$
|
|
000004AB 995 00115$:
|
|
996 ;src/main.c:185: esp_wr_reg8(ESP_REG_OBJ_HANDLE, xm_handle);
|
|
000004AB 3Ar30r10 [13] 997 ld a, (_xm_handle)
|
|
000004AE 6F [ 4] 998 ld l, a
|
|
000004AF 3E 0B [ 7] 999 ld a, #0x0b
|
|
000004B1 CDrD1r00 [17] 1000 call _esp_wr_reg8
|
|
1001 ;src/main.c:186: esp_wr_reg8(ESP_REG_TRACK_MAX_LOOP_COUNT, 1);
|
|
000004B4 2E 01 [ 7] 1002 ld l, #0x01
|
|
000004B6 3E 3A [ 7] 1003 ld a, #0x3a
|
|
000004B8 CDrD1r00 [17] 1004 call _esp_wr_reg8
|
|
1005 ;src/main.c:187: esp_cmd(ESP_CMD_TRACK_SET_PARAMS);
|
|
000004BB 3E A6 [ 7] 1006 ld a, #0xa6
|
|
000004BD CDr05r00 [17] 1007 call _esp_cmd
|
|
1008 ;src/main.c:188: esp_wait_busy(100); // 2s - both should be near-instant
|
|
000004C0 21 64 00 [10] 1009 ld hl, #0x0064
|
|
000004C3 CDrE5r01 [17] 1010 call _esp_wait_busy
|
|
1011 ;src/main.c:190: esp_cmd(ESP_CMD_TRACK_PLAY);
|
|
000004C6 3E A1 [ 7] 1012 ld a, #0xa1
|
|
000004C8 CDr05r00 [17] 1013 call _esp_cmd
|
|
1014 ;src/main.c:191: esp_wait_busy(100);
|
|
000004CB 21 64 00 [10] 1015 ld hl, #0x0064
|
|
000004CE CDrE5r01 [17] 1016 call _esp_wait_busy
|
|
1017 ;src/main.c:193: last_esp_status = esp_rd_reg8(ESP_REG_STATUS);
|
|
000004D1 3E 01 [ 7] 1018 ld a, #0x01
|
|
000004D3 CDr1Er00 [17] 1019 call _esp_rd_reg8
|
|
000004D6 32r08r10 [13] 1020 ld (#_last_esp_status), a
|
|
1021 ;src/main.c:194: if (last_esp_status != ESP_ST_READY)
|
|
000004D9 3Ar08r10 [13] 1022 ld a, (_last_esp_status)
|
|
000004DC 3D [ 4] 1023 dec a
|
|
000004DD 28 04 [12] 1024 jr z, 00117$
|
|
1025 ;src/main.c:195: return false;
|
|
000004DF AF [ 4] 1026 xor a, a
|
|
000004E0 C3rE5r04 [10] 1027 jp 00118$
|
|
000004E3 1028 00117$:
|
|
1029 ;src/main.c:197: return true;
|
|
000004E3 3E 01 [ 7] 1030 ld a, #0x01
|
|
000004E5 1031 00118$:
|
|
1032 ;src/main.c:198: }
|
|
000004E5 DD F9 [10] 1033 ld sp, ix
|
|
000004E7 DD E1 [14] 1034 pop ix
|
|
000004E9 C9 [10] 1035 ret
|
|
1036 ;src/main.c:201: void wait_esc_key()
|
|
1037 ; ---------------------------------
|
|
1038 ; Function wait_esc_key
|
|
1039 ; ---------------------------------
|
|
000004EA 1040 _wait_esc_key::
|
|
1041 ;src/main.c:203: while (1)
|
|
000004EA 1042 00104$:
|
|
1043 ;src/main.c:207: __endasm;
|
|
000004EA 76 [ 4] 1044 halt
|
|
1045 ;src/main.c:209: if (wc_key_esc())
|
|
000004EB CDr00r00 [17] 1046 call _wc_key_esc
|
|
000004EE B7 [ 4] 1047 or a, a
|
|
000004EF 28 F9 [12] 1048 jr z, 00104$
|
|
1049 ;src/main.c:210: break;
|
|
1050 ;src/main.c:212: }
|
|
000004F1 C9 [10] 1051 ret
|
|
1052 ;src/main.c:214: void wait_frames(u8 n)
|
|
1053 ; ---------------------------------
|
|
1054 ; Function wait_frames
|
|
1055 ; ---------------------------------
|
|
000004F2 1056 _wait_frames::
|
|
000004F2 4F [ 4] 1057 ld c, a
|
|
1058 ;src/main.c:216: while (n--)
|
|
000004F3 1059 00101$:
|
|
000004F3 79 [ 4] 1060 ld a, c
|
|
000004F4 0D [ 4] 1061 dec c
|
|
000004F5 B7 [ 4] 1062 or a, a
|
|
000004F6 C8 [11] 1063 ret z
|
|
1064 ;src/main.c:220: __endasm;
|
|
000004F7 76 [ 4] 1065 halt
|
|
1066 ;src/main.c:222: }
|
|
000004F8 C3rF3r04 [10] 1067 jp 00101$
|
|
1068 ;src/main.c:224: void about()
|
|
1069 ; ---------------------------------
|
|
1070 ; Function about
|
|
1071 ; ---------------------------------
|
|
000004FB 1072 _about::
|
|
1073 ;src/main.c:226: wc_prwow(&win_about);
|
|
000004FB 21r76r02 [10] 1074 ld hl, #_win_about
|
|
000004FE CDr00r00 [17] 1075 call _wc_prwow
|
|
1076 ;src/main.c:227: wait_esc_key();
|
|
00000501 CDrEAr04 [17] 1077 call _wait_esc_key
|
|
1078 ;src/main.c:228: wc_rresb(&win_about);
|
|
00000504 21r76r02 [10] 1079 ld hl, #_win_about
|
|
00000507 CDr00r00 [17] 1080 call _wc_rresb
|
|
1081 ;src/main.c:229: wc_exit(WC_EXIT);
|
|
0000050A AF [ 4] 1082 xor a, a
|
|
1083 ;src/main.c:230: }
|
|
0000050B C3r00r00 [10] 1084 jp _wc_exit
|
|
1085 ;src/main.c:235: void unload_and_exit(WC_EXIT_SIGNAL sig)
|
|
1086 ; ---------------------------------
|
|
1087 ; Function unload_and_exit
|
|
1088 ; ---------------------------------
|
|
0000050E 1089 _unload_and_exit::
|
|
0000050E 3B [ 6] 1090 dec sp
|
|
0000050F FD 21 00 00 [14] 1091 ld iy, #0
|
|
00000513 FD 39 [15] 1092 add iy, sp
|
|
00000515 FD 77 00 [19] 1093 ld 0 (iy), a
|
|
1094 ;src/main.c:237: esp_cmd(ESP_CMD_TRACK_STOP);
|
|
00000518 3E A2 [ 7] 1095 ld a, #0xa2
|
|
0000051A CDr05r00 [17] 1096 call _esp_cmd
|
|
1097 ;src/main.c:238: esp_wait_busy(100); // 2s - both should be near-instant
|
|
0000051D 21 64 00 [10] 1098 ld hl, #0x0064
|
|
00000520 CDrE5r01 [17] 1099 call _esp_wait_busy
|
|
1100 ;src/main.c:239: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
00000523 3E E4 [ 7] 1101 ld a, #0xe4
|
|
00000525 CDr05r00 [17] 1102 call _esp_cmd
|
|
1103 ;src/main.c:240: esp_wait_busy(100);
|
|
00000528 21 64 00 [10] 1104 ld hl, #0x0064
|
|
0000052B CDrE5r01 [17] 1105 call _esp_wait_busy
|
|
1106 ;src/main.c:241: wc_rresb(&win_xm);
|
|
0000052E 21r64r02 [10] 1107 ld hl, #_win_xm
|
|
00000531 CDr00r00 [17] 1108 call _wc_rresb
|
|
1109 ;src/main.c:242: wc_exit(sig);
|
|
00000534 21 00 00 [10] 1110 ld hl, #0
|
|
00000537 39 [11] 1111 add hl, sp
|
|
00000538 7E [ 7] 1112 ld a, (hl)
|
|
00000539 33 [ 6] 1113 inc sp
|
|
0000053A C3r00r00 [10] 1114 jp _wc_exit
|
|
1115 ;src/main.c:243: }
|
|
0000053D 33 [ 6] 1116 inc sp
|
|
0000053E C9 [10] 1117 ret
|
|
1118 ;src/main.c:247: void leave_playing_and_exit()
|
|
1119 ; ---------------------------------
|
|
1120 ; Function leave_playing_and_exit
|
|
1121 ; ---------------------------------
|
|
0000053F 1122 _leave_playing_and_exit::
|
|
1123 ;src/main.c:249: wc_rresb(&win_xm);
|
|
0000053F 21r64r02 [10] 1124 ld hl, #_win_xm
|
|
00000542 CDr00r00 [17] 1125 call _wc_rresb
|
|
1126 ;src/main.c:250: wc_exit(WC_EXIT);
|
|
00000545 AF [ 4] 1127 xor a, a
|
|
1128 ;src/main.c:251: }
|
|
00000546 C3r00r00 [10] 1129 jp _wc_exit
|
|
1130 ;src/main.c:257: void wait_for_manual_exit()
|
|
1131 ; ---------------------------------
|
|
1132 ; Function wait_for_manual_exit
|
|
1133 ; ---------------------------------
|
|
00000549 1134 _wait_for_manual_exit::
|
|
1135 ;src/main.c:259: while (1)
|
|
00000549 1136 00108$:
|
|
1137 ;src/main.c:263: __endasm;
|
|
00000549 76 [ 4] 1138 halt
|
|
1139 ;src/main.c:265: if (wc_key_pgdn())
|
|
0000054A CDr00r00 [17] 1140 call _wc_key_pgdn
|
|
0000054D B7 [ 4] 1141 or a, a
|
|
0000054E 28 05 [12] 1142 jr z, 00102$
|
|
1143 ;src/main.c:266: unload_and_exit(WC_NEXT_FILE);
|
|
00000550 3E 02 [ 7] 1144 ld a, #0x02
|
|
00000552 CDr0Er05 [17] 1145 call _unload_and_exit
|
|
00000555 1146 00102$:
|
|
1147 ;src/main.c:268: if (wc_key_pgup())
|
|
00000555 CDr00r00 [17] 1148 call _wc_key_pgup
|
|
00000558 B7 [ 4] 1149 or a, a
|
|
00000559 28 05 [12] 1150 jr z, 00104$
|
|
1151 ;src/main.c:269: unload_and_exit(WC_PREV_FILE);
|
|
0000055B 3E 04 [ 7] 1152 ld a, #0x04
|
|
0000055D CDr0Er05 [17] 1153 call _unload_and_exit
|
|
00000560 1154 00104$:
|
|
1155 ;src/main.c:271: if (wc_key_esc())
|
|
00000560 CDr00r00 [17] 1156 call _wc_key_esc
|
|
00000563 B7 [ 4] 1157 or a, a
|
|
00000564 28 E3 [12] 1158 jr z, 00108$
|
|
1159 ;src/main.c:272: unload_and_exit(WC_EXIT);
|
|
00000566 AF [ 4] 1160 xor a, a
|
|
00000567 CDr0Er05 [17] 1161 call _unload_and_exit
|
|
1162 ;src/main.c:274: }
|
|
0000056A C3r49r05 [10] 1163 jp 00108$
|
|
1164 ;src/main.c:280: void error_esp()
|
|
1165 ; ---------------------------------
|
|
1166 ; Function error_esp
|
|
1167 ; ---------------------------------
|
|
0000056D 1168 _error_esp::
|
|
1169 ;src/main.c:285: xm_set_status_code("No ESP32 found", state_esp);
|
|
0000056D 3Ar00r00 [13] 1170 ld a, (_state_esp)
|
|
00000570 F5 [11] 1171 push af
|
|
00000571 33 [ 6] 1172 inc sp
|
|
00000572 21r85r05 [10] 1173 ld hl, #___str_4
|
|
00000575 CDr16r07 [17] 1174 call _xm_set_status_code
|
|
1175 ;src/main.c:286: wait_esc_key();
|
|
00000578 CDrEAr04 [17] 1176 call _wait_esc_key
|
|
1177 ;src/main.c:287: wc_rresb(&win_xm);
|
|
0000057B 21r64r02 [10] 1178 ld hl, #_win_xm
|
|
0000057E CDr00r00 [17] 1179 call _wc_rresb
|
|
1180 ;src/main.c:288: wc_exit(WC_EXIT);
|
|
00000581 AF [ 4] 1181 xor a, a
|
|
1182 ;src/main.c:289: }
|
|
00000582 C3r00r00 [10] 1183 jp _wc_exit
|
|
00000585 1184 ___str_4:
|
|
00000585 4E 6F 20 45 53 50 33 1185 .ascii "No ESP32 found"
|
|
32 20 66 6F 75 6E 64
|
|
00000593 00 1186 .db 0x00
|
|
1187 ;src/main.c:299: u8 stop_on_error()
|
|
1188 ; ---------------------------------
|
|
1189 ; Function stop_on_error
|
|
1190 ; ---------------------------------
|
|
00000594 1191 _stop_on_error::
|
|
1192 ;src/main.c:301: return wc_prm_pl(1) == 2;
|
|
00000594 3E 01 [ 7] 1193 ld a, #0x01
|
|
00000596 CDr00r00 [17] 1194 call _wc_prm_pl
|
|
00000599 FE 02 [ 7] 1195 cp a, #0x02
|
|
0000059B 3E 01 [ 7] 1196 ld a, #0x01
|
|
0000059D C8 [11] 1197 ret z
|
|
0000059E AF [ 4] 1198 xor a, a
|
|
1199 ;src/main.c:302: }
|
|
0000059F C9 [10] 1200 ret
|
|
1201 ;src/main.c:304: void error_oom()
|
|
1202 ; ---------------------------------
|
|
1203 ; Function error_oom
|
|
1204 ; ---------------------------------
|
|
000005A0 1205 _error_oom::
|
|
1206 ;src/main.c:306: xm_set_status_code("File too large", last_esp_status);
|
|
000005A0 3Ar08r10 [13] 1207 ld a, (_last_esp_status)
|
|
000005A3 F5 [11] 1208 push af
|
|
000005A4 33 [ 6] 1209 inc sp
|
|
000005A5 21rC4r05 [10] 1210 ld hl, #___str_5
|
|
000005A8 CDr16r07 [17] 1211 call _xm_set_status_code
|
|
1212 ;src/main.c:308: if (stop_on_error())
|
|
000005AB CDr94r05 [17] 1213 call _stop_on_error
|
|
000005AE B7 [ 4] 1214 or a, a
|
|
000005AF 28 03 [12] 1215 jr z, 00102$
|
|
1216 ;src/main.c:309: wait_for_manual_exit();
|
|
000005B1 CDr49r05 [17] 1217 call _wait_for_manual_exit
|
|
000005B4 1218 00102$:
|
|
1219 ;src/main.c:311: wait_frames(50); // show the error for ~1 second (50Hz), then auto-advance
|
|
000005B4 3E 32 [ 7] 1220 ld a, #0x32
|
|
000005B6 CDrF2r04 [17] 1221 call _wait_frames
|
|
1222 ;src/main.c:312: wc_rresb(&win_xm);
|
|
000005B9 21r64r02 [10] 1223 ld hl, #_win_xm
|
|
000005BC CDr00r00 [17] 1224 call _wc_rresb
|
|
1225 ;src/main.c:313: wc_exit(WC_NEXT_FILE);
|
|
000005BF 3E 02 [ 7] 1226 ld a, #0x02
|
|
1227 ;src/main.c:314: }
|
|
000005C1 C3r00r00 [10] 1228 jp _wc_exit
|
|
000005C4 1229 ___str_5:
|
|
000005C4 46 69 6C 65 20 74 6F 1230 .ascii "File too large"
|
|
6F 20 6C 61 72 67 65
|
|
000005D2 00 1231 .db 0x00
|
|
1232 ;src/main.c:316: void error_playback()
|
|
1233 ; ---------------------------------
|
|
1234 ; Function error_playback
|
|
1235 ; ---------------------------------
|
|
000005D3 1236 _error_playback::
|
|
1237 ;src/main.c:318: xm_set_status_code("Playback error", last_esp_status);
|
|
000005D3 3Ar08r10 [13] 1238 ld a, (_last_esp_status)
|
|
000005D6 F5 [11] 1239 push af
|
|
000005D7 33 [ 6] 1240 inc sp
|
|
000005D8 21rF7r05 [10] 1241 ld hl, #___str_6
|
|
000005DB CDr16r07 [17] 1242 call _xm_set_status_code
|
|
1243 ;src/main.c:320: if (stop_on_error())
|
|
000005DE CDr94r05 [17] 1244 call _stop_on_error
|
|
000005E1 B7 [ 4] 1245 or a, a
|
|
000005E2 28 03 [12] 1246 jr z, 00102$
|
|
1247 ;src/main.c:321: wait_for_manual_exit();
|
|
000005E4 CDr49r05 [17] 1248 call _wait_for_manual_exit
|
|
000005E7 1249 00102$:
|
|
1250 ;src/main.c:323: wait_frames(50); // show the error for ~1 second (50Hz), then auto-advance
|
|
000005E7 3E 32 [ 7] 1251 ld a, #0x32
|
|
000005E9 CDrF2r04 [17] 1252 call _wait_frames
|
|
1253 ;src/main.c:324: wc_rresb(&win_xm);
|
|
000005EC 21r64r02 [10] 1254 ld hl, #_win_xm
|
|
000005EF CDr00r00 [17] 1255 call _wc_rresb
|
|
1256 ;src/main.c:325: wc_exit(WC_NEXT_FILE);
|
|
000005F2 3E 02 [ 7] 1257 ld a, #0x02
|
|
1258 ;src/main.c:326: }
|
|
000005F4 C3r00r00 [10] 1259 jp _wc_exit
|
|
000005F7 1260 ___str_6:
|
|
000005F7 50 6C 61 79 62 61 63 1261 .ascii "Playback error"
|
|
6B 20 65 72 72 6F 72
|
|
00000605 00 1262 .db 0x00
|
|
1263 ;src/main.c:333: void copy_file_name()
|
|
1264 ; ---------------------------------
|
|
1265 ; Function copy_file_name
|
|
1266 ; ---------------------------------
|
|
00000606 1267 _copy_file_name::
|
|
1268 ;src/main.c:335: u8 *src = (u8*)p_file_name;
|
|
00000606 ED 4Br09r10 [20] 1269 ld bc, (_p_file_name)
|
|
1270 ;src/main.c:338: while (src[i] && i < sizeof(file_name) - 1)
|
|
0000060A 1E 00 [ 7] 1271 ld e, #0x00
|
|
0000060C 1272 00102$:
|
|
0000060C 6B [ 4] 1273 ld l, e
|
|
0000060D 26 00 [ 7] 1274 ld h, #0x00
|
|
0000060F 09 [11] 1275 add hl, bc
|
|
00000610 56 [ 7] 1276 ld d, (hl)
|
|
1277 ;src/main.c:340: file_name[i] = src[i];
|
|
00000611 3Er0B [ 7] 1278 ld a, #<(_file_name)
|
|
00000613 83 [ 4] 1279 add a, e
|
|
00000614 6F [ 4] 1280 ld l, a
|
|
00000615 3Es10 [ 7] 1281 ld a, #>(_file_name)
|
|
00000617 CE 00 [ 7] 1282 adc a, #0x00
|
|
00000619 67 [ 4] 1283 ld h, a
|
|
1284 ;src/main.c:338: while (src[i] && i < sizeof(file_name) - 1)
|
|
0000061A 7A [ 4] 1285 ld a, d
|
|
0000061B B7 [ 4] 1286 or a, a
|
|
0000061C 28 0A [12] 1287 jr z, 00104$
|
|
0000061E 7B [ 4] 1288 ld a, e
|
|
0000061F D6 20 [ 7] 1289 sub a, #0x20
|
|
00000621 30 05 [12] 1290 jr nc, 00104$
|
|
1291 ;src/main.c:340: file_name[i] = src[i];
|
|
00000623 72 [ 7] 1292 ld (hl), d
|
|
1293 ;src/main.c:341: i++;
|
|
00000624 1C [ 4] 1294 inc e
|
|
00000625 C3r0Cr06 [10] 1295 jp 00102$
|
|
00000628 1296 00104$:
|
|
1297 ;src/main.c:343: file_name[i] = 0;
|
|
00000628 36 00 [10] 1298 ld (hl), #0x00
|
|
1299 ;src/main.c:344: }
|
|
0000062A C9 [10] 1300 ret
|
|
1301 ;src/main.c:377: void xm_draw_static_labels()
|
|
1302 ; ---------------------------------
|
|
1303 ; Function xm_draw_static_labels
|
|
1304 ; ---------------------------------
|
|
0000062B 1305 _xm_draw_static_labels::
|
|
1306 ;src/main.c:379: wc_prsrw(&win_xm, "File:", ROW_FILE, 1, 5);
|
|
0000062B 21 05 00 [10] 1307 ld hl, #0x0005
|
|
0000062E E5 [11] 1308 push hl
|
|
0000062F 21 02 01 [10] 1309 ld hl, #0x102
|
|
00000632 E5 [11] 1310 push hl
|
|
00000633 11r77r06 [10] 1311 ld de, #___str_7
|
|
00000636 21r64r02 [10] 1312 ld hl, #_win_xm
|
|
00000639 CDr00r00 [17] 1313 call _wc_prsrw
|
|
1314 ;src/main.c:380: wc_prsrw_attr(&win_xm, file_name, ROW_FILE, 7, strlen(file_name), ATTR_VALUE);
|
|
0000063C 21r0Br10 [10] 1315 ld hl, #_file_name
|
|
0000063F CDr00r00 [17] 1316 call _strlen
|
|
00000642 3E 71 [ 7] 1317 ld a, #0x71
|
|
00000644 F5 [11] 1318 push af
|
|
00000645 33 [ 6] 1319 inc sp
|
|
00000646 D5 [11] 1320 push de
|
|
00000647 21 02 07 [10] 1321 ld hl, #0x702
|
|
0000064A E5 [11] 1322 push hl
|
|
0000064B 11r0Br10 [10] 1323 ld de, #_file_name
|
|
0000064E 21r64r02 [10] 1324 ld hl, #_win_xm
|
|
00000651 CDr00r00 [17] 1325 call _wc_prsrw_attr
|
|
1326 ;src/main.c:381: wc_prsrw(&win_xm, "Status:", ROW_STATUS, 1, 7);
|
|
00000654 21 07 00 [10] 1327 ld hl, #0x0007
|
|
00000657 E5 [11] 1328 push hl
|
|
00000658 21 03 01 [10] 1329 ld hl, #0x103
|
|
0000065B E5 [11] 1330 push hl
|
|
0000065C 11r7Dr06 [10] 1331 ld de, #___str_8
|
|
0000065F 21r64r02 [10] 1332 ld hl, #_win_xm
|
|
00000662 CDr00r00 [17] 1333 call _wc_prsrw
|
|
1334 ;src/main.c:384: wc_prsrw(&win_xm, HINT_TEXT, ROW_HINT, 2, sizeof(HINT_TEXT) - 1);
|
|
00000665 21 24 00 [10] 1335 ld hl, #0x0024
|
|
00000668 E5 [11] 1336 push hl
|
|
00000669 21 0A 02 [10] 1337 ld hl, #0x20a
|
|
0000066C E5 [11] 1338 push hl
|
|
0000066D 11r85r06 [10] 1339 ld de, #___str_9
|
|
00000670 21r64r02 [10] 1340 ld hl, #_win_xm
|
|
00000673 CDr00r00 [17] 1341 call _wc_prsrw
|
|
1342 ;src/main.c:385: }
|
|
00000676 C9 [10] 1343 ret
|
|
00000677 1344 ___str_7:
|
|
00000677 46 69 6C 65 3A 1345 .ascii "File:"
|
|
0000067C 00 1346 .db 0x00
|
|
0000067D 1347 ___str_8:
|
|
0000067D 53 74 61 74 75 73 3A 1348 .ascii "Status:"
|
|
00000684 00 1349 .db 0x00
|
|
00000685 1350 ___str_9:
|
|
00000685 50 67 55 70 2F 50 67 1351 .ascii "PgUp/PgDn:Track Esc:Stop Space:Leave"
|
|
44 6E 3A 54 72 61 63
|
|
6B 20 45 73 63 3A 53
|
|
74 6F 70 20 53 70 61
|
|
63 65 3A 4C 65 61 76
|
|
65
|
|
000006A9 00 1352 .db 0x00
|
|
1353 ;src/main.c:391: void xm_set_status_attr(const char *msg, u8 attr)
|
|
1354 ; ---------------------------------
|
|
1355 ; Function xm_set_status_attr
|
|
1356 ; ---------------------------------
|
|
000006AA 1357 _xm_set_status_attr::
|
|
000006AA DD E5 [15] 1358 push ix
|
|
000006AC DD 21 00 00 [14] 1359 ld ix, #0
|
|
000006B0 DD 39 [15] 1360 add ix, sp
|
|
000006B2 F5 [11] 1361 push af
|
|
1362 ;src/main.c:395: while (msg[i] && i < STATUS_VALUE_WIDTH)
|
|
000006B3 1E 00 [ 7] 1363 ld e, #0x00
|
|
000006B5 1364 00102$:
|
|
000006B5 7B [ 4] 1365 ld a, e
|
|
000006B6 85 [ 4] 1366 add a, l
|
|
000006B7 4F [ 4] 1367 ld c, a
|
|
000006B8 3E 00 [ 7] 1368 ld a, #0x00
|
|
000006BA 8C [ 4] 1369 adc a, h
|
|
000006BB 47 [ 4] 1370 ld b, a
|
|
000006BC 0A [ 7] 1371 ld a, (bc)
|
|
000006BD 4F [ 4] 1372 ld c, a
|
|
000006BE B7 [ 4] 1373 or a, a
|
|
000006BF 28 1F [12] 1374 jr z, 00119$
|
|
000006C1 7B [ 4] 1375 ld a, e
|
|
000006C2 D6 18 [ 7] 1376 sub a, #0x18
|
|
000006C4 30 1A [12] 1377 jr nc, 00119$
|
|
1378 ;src/main.c:397: status_buf[i] = msg[i];
|
|
000006C6 3Er32 [ 7] 1379 ld a, #<(_status_buf)
|
|
000006C8 83 [ 4] 1380 add a, e
|
|
000006C9 DD 77 FE [19] 1381 ld -2 (ix), a
|
|
000006CC 3Es10 [ 7] 1382 ld a, #>(_status_buf)
|
|
000006CE CE 00 [ 7] 1383 adc a, #0x00
|
|
000006D0 DD 77 FF [19] 1384 ld -1 (ix), a
|
|
000006D3 E5 [11] 1385 push hl
|
|
000006D4 DD 6E FE [19] 1386 ld l, -2 (ix)
|
|
000006D7 DD 66 FF [19] 1387 ld h, -1 (ix)
|
|
000006DA 71 [ 7] 1388 ld (hl), c
|
|
000006DB E1 [10] 1389 pop hl
|
|
1390 ;src/main.c:398: i++;
|
|
000006DC 1C [ 4] 1391 inc e
|
|
000006DD C3rB5r06 [10] 1392 jp 00102$
|
|
1393 ;src/main.c:400: while (i < STATUS_VALUE_WIDTH)
|
|
000006E0 1394 00119$:
|
|
000006E0 1395 00105$:
|
|
000006E0 7B [ 4] 1396 ld a, e
|
|
000006E1 D6 18 [ 7] 1397 sub a, #0x18
|
|
000006E3 30 0C [12] 1398 jr nc, 00107$
|
|
1399 ;src/main.c:401: status_buf[i++] = ' ';
|
|
000006E5 21r32r10 [10] 1400 ld hl, #_status_buf
|
|
000006E8 16 00 [ 7] 1401 ld d, #0x00
|
|
000006EA 19 [11] 1402 add hl, de
|
|
000006EB 1C [ 4] 1403 inc e
|
|
000006EC 36 20 [10] 1404 ld (hl), #0x20
|
|
000006EE C3rE0r06 [10] 1405 jp 00105$
|
|
000006F1 1406 00107$:
|
|
1407 ;src/main.c:403: wc_prsrw_attr(&win_xm, status_buf, ROW_STATUS, STATUS_VALUE_X, STATUS_VALUE_WIDTH, attr);
|
|
000006F1 21r64r02 [10] 1408 ld hl, #_win_xm
|
|
000006F4 DD 7E 04 [19] 1409 ld a, 4 (ix)
|
|
000006F7 F5 [11] 1410 push af
|
|
000006F8 33 [ 6] 1411 inc sp
|
|
000006F9 11 18 00 [10] 1412 ld de, #0x0018
|
|
000006FC D5 [11] 1413 push de
|
|
000006FD 11 03 09 [10] 1414 ld de, #0x903
|
|
00000700 D5 [11] 1415 push de
|
|
00000701 11r32r10 [10] 1416 ld de, #_status_buf
|
|
00000704 CDr00r00 [17] 1417 call _wc_prsrw_attr
|
|
1418 ;src/main.c:404: }
|
|
00000707 DD F9 [10] 1419 ld sp, ix
|
|
00000709 DD E1 [14] 1420 pop ix
|
|
0000070B E1 [10] 1421 pop hl
|
|
0000070C 33 [ 6] 1422 inc sp
|
|
0000070D E9 [ 4] 1423 jp (hl)
|
|
1424 ;src/main.c:406: void xm_set_status(const char *msg)
|
|
1425 ; ---------------------------------
|
|
1426 ; Function xm_set_status
|
|
1427 ; ---------------------------------
|
|
0000070E 1428 _xm_set_status::
|
|
1429 ;src/main.c:408: xm_set_status_attr(msg, ATTR_VALUE);
|
|
0000070E 3E 71 [ 7] 1430 ld a, #0x71
|
|
00000710 F5 [11] 1431 push af
|
|
00000711 33 [ 6] 1432 inc sp
|
|
00000712 CDrAAr06 [17] 1433 call _xm_set_status_attr
|
|
1434 ;src/main.c:409: }
|
|
00000715 C9 [10] 1435 ret
|
|
1436 ;src/main.c:416: void xm_set_status_code(const char *msg, u8 code)
|
|
1437 ; ---------------------------------
|
|
1438 ; Function xm_set_status_code
|
|
1439 ; ---------------------------------
|
|
00000716 1440 _xm_set_status_code::
|
|
00000716 DD E5 [15] 1441 push ix
|
|
00000718 DD 21 00 00 [14] 1442 ld ix, #0
|
|
0000071C DD 39 [15] 1443 add ix, sp
|
|
0000071E 3B [ 6] 1444 dec sp
|
|
0000071F EB [ 4] 1445 ex de, hl
|
|
1446 ;src/main.c:421: while (msg[i] && i < sizeof(status_code_buf) - 7)
|
|
00000720 0E 00 [ 7] 1447 ld c, #0x00
|
|
00000722 1448 00102$:
|
|
00000722 69 [ 4] 1449 ld l, c
|
|
00000723 26 00 [ 7] 1450 ld h, #0x00
|
|
00000725 19 [11] 1451 add hl, de
|
|
00000726 46 [ 7] 1452 ld b, (hl)
|
|
1453 ;src/main.c:423: status_code_buf[i] = msg[i];
|
|
00000727 3Er4A [ 7] 1454 ld a, #<(_status_code_buf)
|
|
00000729 81 [ 4] 1455 add a, c
|
|
0000072A 6F [ 4] 1456 ld l, a
|
|
0000072B 3Es10 [ 7] 1457 ld a, #>(_status_code_buf)
|
|
0000072D CE 00 [ 7] 1458 adc a, #0x00
|
|
0000072F 67 [ 4] 1459 ld h, a
|
|
1460 ;src/main.c:424: i++;
|
|
00000730 79 [ 4] 1461 ld a, c
|
|
00000731 3C [ 4] 1462 inc a
|
|
00000732 DD 77 FF [19] 1463 ld -1 (ix), a
|
|
1464 ;src/main.c:421: while (msg[i] && i < sizeof(status_code_buf) - 7)
|
|
00000735 78 [ 4] 1465 ld a, b
|
|
00000736 B7 [ 4] 1466 or a, a
|
|
00000737 28 0C [12] 1467 jr z, 00104$
|
|
00000739 79 [ 4] 1468 ld a, c
|
|
0000073A D6 11 [ 7] 1469 sub a, #0x11
|
|
0000073C 30 07 [12] 1470 jr nc, 00104$
|
|
1471 ;src/main.c:423: status_code_buf[i] = msg[i];
|
|
0000073E 70 [ 7] 1472 ld (hl), b
|
|
1473 ;src/main.c:424: i++;
|
|
0000073F DD 4E FF [19] 1474 ld c, -1 (ix)
|
|
00000742 C3r22r07 [10] 1475 jp 00102$
|
|
00000745 1476 00104$:
|
|
1477 ;src/main.c:427: status_code_buf[i++] = ' ';
|
|
00000745 DD 4E FF [19] 1478 ld c, -1 (ix)
|
|
00000748 36 20 [10] 1479 ld (hl), #0x20
|
|
1480 ;src/main.c:428: status_code_buf[i++] = '(';
|
|
0000074A 69 [ 4] 1481 ld l, c
|
|
0000074B 0C [ 4] 1482 inc c
|
|
0000074C 26 00 [ 7] 1483 ld h, #0x00
|
|
0000074E 11r4Ar10 [10] 1484 ld de, #_status_code_buf
|
|
00000751 19 [11] 1485 add hl, de
|
|
00000752 36 28 [10] 1486 ld (hl), #0x28
|
|
1487 ;src/main.c:429: status_code_buf[i++] = '0';
|
|
00000754 69 [ 4] 1488 ld l, c
|
|
00000755 0C [ 4] 1489 inc c
|
|
00000756 26 00 [ 7] 1490 ld h, #0x00
|
|
00000758 11r4Ar10 [10] 1491 ld de, #_status_code_buf
|
|
0000075B 19 [11] 1492 add hl, de
|
|
0000075C 36 30 [10] 1493 ld (hl), #0x30
|
|
1494 ;src/main.c:430: status_code_buf[i++] = 'x';
|
|
0000075E 69 [ 4] 1495 ld l, c
|
|
0000075F 0C [ 4] 1496 inc c
|
|
00000760 26 00 [ 7] 1497 ld h, #0x00
|
|
00000762 11r4Ar10 [10] 1498 ld de, #_status_code_buf
|
|
00000765 19 [11] 1499 add hl, de
|
|
00000766 36 78 [10] 1500 ld (hl), #0x78
|
|
1501 ;src/main.c:431: status_code_buf[i++] = hexch[(code >> 4) & 0xF];
|
|
00000768 69 [ 4] 1502 ld l, c
|
|
00000769 0C [ 4] 1503 inc c
|
|
0000076A 26 00 [ 7] 1504 ld h, #0x00
|
|
0000076C 11r4Ar10 [10] 1505 ld de, #_status_code_buf
|
|
0000076F 19 [11] 1506 add hl, de
|
|
00000770 DD 7E 04 [19] 1507 ld a, 4 (ix)
|
|
00000773 07 [ 4] 1508 rlca
|
|
00000774 07 [ 4] 1509 rlca
|
|
00000775 07 [ 4] 1510 rlca
|
|
00000776 07 [ 4] 1511 rlca
|
|
00000777 E6 0F [ 7] 1512 and a, #0xf
|
|
00000779 C6rBD [ 7] 1513 add a, #<(_xm_set_status_code_hexch_10000_129)
|
|
0000077B 5F [ 4] 1514 ld e, a
|
|
0000077C 3E 00 [ 7] 1515 ld a, #0x00
|
|
0000077E CEs07 [ 7] 1516 adc a, #>(_xm_set_status_code_hexch_10000_129)
|
|
00000780 57 [ 4] 1517 ld d, a
|
|
00000781 1A [ 7] 1518 ld a, (de)
|
|
00000782 77 [ 7] 1519 ld (hl), a
|
|
1520 ;src/main.c:432: status_code_buf[i++] = hexch[code & 0xF];
|
|
00000783 69 [ 4] 1521 ld l, c
|
|
00000784 0C [ 4] 1522 inc c
|
|
00000785 26 00 [ 7] 1523 ld h, #0x00
|
|
00000787 11r4Ar10 [10] 1524 ld de, #_status_code_buf
|
|
0000078A 19 [11] 1525 add hl, de
|
|
0000078B DD 7E 04 [19] 1526 ld a, 4 (ix)
|
|
0000078E E6 0F [ 7] 1527 and a, #0x0f
|
|
00000790 C6rBD [ 7] 1528 add a, #<(_xm_set_status_code_hexch_10000_129)
|
|
00000792 5F [ 4] 1529 ld e, a
|
|
00000793 3E 00 [ 7] 1530 ld a, #0x00
|
|
00000795 CEs07 [ 7] 1531 adc a, #>(_xm_set_status_code_hexch_10000_129)
|
|
00000797 57 [ 4] 1532 ld d, a
|
|
00000798 1A [ 7] 1533 ld a, (de)
|
|
00000799 77 [ 7] 1534 ld (hl), a
|
|
1535 ;src/main.c:433: status_code_buf[i++] = ')';
|
|
0000079A 69 [ 4] 1536 ld l, c
|
|
0000079B 0C [ 4] 1537 inc c
|
|
0000079C 26 00 [ 7] 1538 ld h, #0x00
|
|
0000079E 11r4Ar10 [10] 1539 ld de, #_status_code_buf
|
|
000007A1 19 [11] 1540 add hl, de
|
|
000007A2 36 29 [10] 1541 ld (hl), #0x29
|
|
1542 ;src/main.c:434: status_code_buf[i] = 0;
|
|
000007A4 69 [ 4] 1543 ld l, c
|
|
000007A5 26 00 [ 7] 1544 ld h, #0x00
|
|
000007A7 11r4Ar10 [10] 1545 ld de, #_status_code_buf
|
|
000007AA 19 [11] 1546 add hl, de
|
|
000007AB 36 00 [10] 1547 ld (hl), #0x00
|
|
1548 ;src/main.c:436: xm_set_status_attr(status_code_buf, ATTR_ERROR);
|
|
000007AD 3E 72 [ 7] 1549 ld a, #0x72
|
|
000007AF F5 [11] 1550 push af
|
|
000007B0 33 [ 6] 1551 inc sp
|
|
000007B1 21r4Ar10 [10] 1552 ld hl, #_status_code_buf
|
|
000007B4 CDrAAr06 [17] 1553 call _xm_set_status_attr
|
|
1554 ;src/main.c:437: }
|
|
000007B7 33 [ 6] 1555 inc sp
|
|
000007B8 DD E1 [14] 1556 pop ix
|
|
000007BA E1 [10] 1557 pop hl
|
|
000007BB 33 [ 6] 1558 inc sp
|
|
000007BC E9 [ 4] 1559 jp (hl)
|
|
000007BD 1560 _xm_set_status_code_hexch_10000_129:
|
|
000007BD 30 31 32 33 34 35 36 1561 .ascii "0123456789ABCDEF"
|
|
37 38 39 41 42 43 44
|
|
45 46
|
|
000007CD 00 1562 .db 0x00
|
|
1563 ;src/main.c:450: void put_hex2(char *dst, u8 val)
|
|
1564 ; ---------------------------------
|
|
1565 ; Function put_hex2
|
|
1566 ; ---------------------------------
|
|
000007CE 1567 _put_hex2::
|
|
000007CE DD E5 [15] 1568 push ix
|
|
000007D0 DD 21 00 00 [14] 1569 ld ix, #0
|
|
000007D4 DD 39 [15] 1570 add ix, sp
|
|
000007D6 EB [ 4] 1571 ex de, hl
|
|
1572 ;src/main.c:453: dst[0] = hexch[(val >> 4) & 0xF];
|
|
000007D7 01rFAr07 [10] 1573 ld bc, #_put_hex2_hexch_10000_132+0
|
|
000007DA DD 7E 04 [19] 1574 ld a, 4 (ix)
|
|
000007DD 07 [ 4] 1575 rlca
|
|
000007DE 07 [ 4] 1576 rlca
|
|
000007DF 07 [ 4] 1577 rlca
|
|
000007E0 07 [ 4] 1578 rlca
|
|
000007E1 E6 0F [ 7] 1579 and a, #0xf
|
|
000007E3 6F [ 4] 1580 ld l, a
|
|
000007E4 26 00 [ 7] 1581 ld h, #0x00
|
|
000007E6 09 [11] 1582 add hl, bc
|
|
000007E7 7E [ 7] 1583 ld a, (hl)
|
|
000007E8 12 [ 7] 1584 ld (de), a
|
|
1585 ;src/main.c:454: dst[1] = hexch[val & 0xF];
|
|
000007E9 13 [ 6] 1586 inc de
|
|
000007EA DD 7E 04 [19] 1587 ld a, 4 (ix)
|
|
000007ED E6 0F [ 7] 1588 and a, #0x0f
|
|
000007EF 6F [ 4] 1589 ld l, a
|
|
000007F0 26 00 [ 7] 1590 ld h, #0x00
|
|
000007F2 09 [11] 1591 add hl, bc
|
|
000007F3 7E [ 7] 1592 ld a, (hl)
|
|
000007F4 12 [ 7] 1593 ld (de), a
|
|
1594 ;src/main.c:455: }
|
|
000007F5 DD E1 [14] 1595 pop ix
|
|
000007F7 E1 [10] 1596 pop hl
|
|
000007F8 33 [ 6] 1597 inc sp
|
|
000007F9 E9 [ 4] 1598 jp (hl)
|
|
000007FA 1599 _put_hex2_hexch_10000_132:
|
|
000007FA 30 31 32 33 34 35 36 1600 .ascii "0123456789ABCDEF"
|
|
37 38 39 41 42 43 44
|
|
45 46
|
|
0000080A 00 1601 .db 0x00
|
|
1602 ;src/main.c:457: void put_dec3(char *dst, u16 val)
|
|
1603 ; ---------------------------------
|
|
1604 ; Function put_dec3
|
|
1605 ; ---------------------------------
|
|
0000080B 1606 _put_dec3::
|
|
0000080B DD E5 [15] 1607 push ix
|
|
0000080D DD 21 00 00 [14] 1608 ld ix, #0
|
|
00000811 DD 39 [15] 1609 add ix, sp
|
|
00000813 F5 [11] 1610 push af
|
|
00000814 4D [ 4] 1611 ld c, l
|
|
00000815 44 [ 4] 1612 ld b, h
|
|
1613 ;src/main.c:459: dst[0] = '0' + (val / 100) % 10;
|
|
00000816 E1 [10] 1614 pop hl
|
|
00000817 D5 [11] 1615 push de
|
|
00000818 C5 [11] 1616 push bc
|
|
00000819 11 64 00 [10] 1617 ld de, #0x0064
|
|
0000081C DD 6E FE [19] 1618 ld l, -2 (ix)
|
|
0000081F DD 66 FF [19] 1619 ld h, -1 (ix)
|
|
00000822 CDr00r00 [17] 1620 call __divuint
|
|
00000825 EB [ 4] 1621 ex de, hl
|
|
00000826 11 0A 00 [10] 1622 ld de, #0x000a
|
|
00000829 CDr00r00 [17] 1623 call __moduint
|
|
0000082C C1 [10] 1624 pop bc
|
|
0000082D 7B [ 4] 1625 ld a, e
|
|
0000082E C6 30 [ 7] 1626 add a, #0x30
|
|
00000830 02 [ 7] 1627 ld (bc), a
|
|
1628 ;src/main.c:460: dst[1] = '0' + (val / 10) % 10;
|
|
00000831 69 [ 4] 1629 ld l, c
|
|
00000832 60 [ 4] 1630 ld h, b
|
|
00000833 23 [ 6] 1631 inc hl
|
|
00000834 E5 [11] 1632 push hl
|
|
00000835 C5 [11] 1633 push bc
|
|
00000836 11 0A 00 [10] 1634 ld de, #0x000a
|
|
00000839 DD 6E FE [19] 1635 ld l, -2 (ix)
|
|
0000083C DD 66 FF [19] 1636 ld h, -1 (ix)
|
|
0000083F CDr00r00 [17] 1637 call __divuint
|
|
00000842 EB [ 4] 1638 ex de, hl
|
|
00000843 11 0A 00 [10] 1639 ld de, #0x000a
|
|
00000846 CDr00r00 [17] 1640 call __moduint
|
|
00000849 C1 [10] 1641 pop bc
|
|
0000084A E1 [10] 1642 pop hl
|
|
0000084B 7B [ 4] 1643 ld a, e
|
|
0000084C C6 30 [ 7] 1644 add a, #0x30
|
|
0000084E 77 [ 7] 1645 ld (hl), a
|
|
1646 ;src/main.c:461: dst[2] = '0' + val % 10;
|
|
0000084F 03 [ 6] 1647 inc bc
|
|
00000850 03 [ 6] 1648 inc bc
|
|
00000851 C5 [11] 1649 push bc
|
|
00000852 11 0A 00 [10] 1650 ld de, #0x000a
|
|
00000855 DD 6E FE [19] 1651 ld l, -2 (ix)
|
|
00000858 DD 66 FF [19] 1652 ld h, -1 (ix)
|
|
0000085B CDr00r00 [17] 1653 call __moduint
|
|
0000085E C1 [10] 1654 pop bc
|
|
0000085F 7B [ 4] 1655 ld a, e
|
|
00000860 C6 30 [ 7] 1656 add a, #0x30
|
|
00000862 02 [ 7] 1657 ld (bc), a
|
|
1658 ;src/main.c:462: }
|
|
00000863 DD F9 [10] 1659 ld sp, ix
|
|
00000865 DD E1 [14] 1660 pop ix
|
|
00000867 C9 [10] 1661 ret
|
|
1662 ;src/main.c:464: void put_time(char *dst, u32 sec)
|
|
1663 ; ---------------------------------
|
|
1664 ; Function put_time
|
|
1665 ; ---------------------------------
|
|
00000868 1666 _put_time::
|
|
00000868 DD E5 [15] 1667 push ix
|
|
0000086A DD 21 00 00 [14] 1668 ld ix, #0
|
|
0000086E DD 39 [15] 1669 add ix, sp
|
|
00000870 E5 [11] 1670 push hl
|
|
1671 ;src/main.c:466: u8 m = (sec / 60) % 100;
|
|
00000871 21 00 00 [10] 1672 ld hl, #0x0000
|
|
00000874 E5 [11] 1673 push hl
|
|
00000875 2E 3C [ 7] 1674 ld l, #0x3c
|
|
00000877 E5 [11] 1675 push hl
|
|
00000878 DD 5E 04 [19] 1676 ld e, 4 (ix)
|
|
0000087B DD 56 05 [19] 1677 ld d, 5 (ix)
|
|
0000087E DD 6E 06 [19] 1678 ld l, 6 (ix)
|
|
00000881 DD 66 07 [19] 1679 ld h, 7 (ix)
|
|
00000884 CDr00r00 [17] 1680 call __divulong
|
|
00000887 F1 [10] 1681 pop af
|
|
00000888 F1 [10] 1682 pop af
|
|
00000889 01 00 00 [10] 1683 ld bc, #0x0000
|
|
0000088C C5 [11] 1684 push bc
|
|
0000088D 0E 64 [ 7] 1685 ld c, #0x64
|
|
0000088F C5 [11] 1686 push bc
|
|
00000890 CDr00r00 [17] 1687 call __modulong
|
|
00000893 F1 [10] 1688 pop af
|
|
00000894 F1 [10] 1689 pop af
|
|
00000895 4B [ 4] 1690 ld c, e
|
|
1691 ;src/main.c:467: u8 s = sec % 60;
|
|
00000896 C5 [11] 1692 push bc
|
|
00000897 21 00 00 [10] 1693 ld hl, #0x0000
|
|
0000089A E5 [11] 1694 push hl
|
|
0000089B 2E 3C [ 7] 1695 ld l, #0x3c
|
|
0000089D E5 [11] 1696 push hl
|
|
0000089E DD 5E 04 [19] 1697 ld e, 4 (ix)
|
|
000008A1 DD 56 05 [19] 1698 ld d, 5 (ix)
|
|
000008A4 DD 6E 06 [19] 1699 ld l, 6 (ix)
|
|
000008A7 DD 66 07 [19] 1700 ld h, 7 (ix)
|
|
000008AA CDr00r00 [17] 1701 call __modulong
|
|
000008AD F1 [10] 1702 pop af
|
|
000008AE F1 [10] 1703 pop af
|
|
000008AF C1 [10] 1704 pop bc
|
|
1705 ;src/main.c:469: dst[0] = '0' + (m / 10) % 10;
|
|
000008B0 51 [ 4] 1706 ld d, c
|
|
000008B1 D5 [11] 1707 push de
|
|
000008B2 2E 0A [ 7] 1708 ld l, #0x0a
|
|
000008B4 7A [ 4] 1709 ld a, d
|
|
000008B5 CDr00r00 [17] 1710 call __divuchar
|
|
000008B8 7B [ 4] 1711 ld a, e
|
|
000008B9 2E 0A [ 7] 1712 ld l, #0x0a
|
|
000008BB CDr00r00 [17] 1713 call __moduchar
|
|
000008BE 7B [ 4] 1714 ld a, e
|
|
000008BF D1 [10] 1715 pop de
|
|
000008C0 C6 30 [ 7] 1716 add a, #0x30
|
|
000008C2 E1 [10] 1717 pop hl
|
|
000008C3 E5 [11] 1718 push hl
|
|
000008C4 77 [ 7] 1719 ld (hl), a
|
|
1720 ;src/main.c:470: dst[1] = '0' + m % 10;
|
|
000008C5 C1 [10] 1721 pop bc
|
|
000008C6 C5 [11] 1722 push bc
|
|
000008C7 03 [ 6] 1723 inc bc
|
|
000008C8 C5 [11] 1724 push bc
|
|
000008C9 D5 [11] 1725 push de
|
|
000008CA 2E 0A [ 7] 1726 ld l, #0x0a
|
|
000008CC 7A [ 4] 1727 ld a, d
|
|
000008CD CDr00r00 [17] 1728 call __moduchar
|
|
000008D0 7B [ 4] 1729 ld a, e
|
|
000008D1 D1 [10] 1730 pop de
|
|
000008D2 C1 [10] 1731 pop bc
|
|
000008D3 C6 30 [ 7] 1732 add a, #0x30
|
|
000008D5 02 [ 7] 1733 ld (bc), a
|
|
1734 ;src/main.c:471: dst[2] = ':';
|
|
000008D6 E1 [10] 1735 pop hl
|
|
000008D7 E5 [11] 1736 push hl
|
|
000008D8 23 [ 6] 1737 inc hl
|
|
000008D9 23 [ 6] 1738 inc hl
|
|
000008DA 36 3A [10] 1739 ld (hl), #0x3a
|
|
1740 ;src/main.c:472: dst[3] = '0' + (s / 10) % 10;
|
|
000008DC C1 [10] 1741 pop bc
|
|
000008DD C5 [11] 1742 push bc
|
|
000008DE 03 [ 6] 1743 inc bc
|
|
000008DF 03 [ 6] 1744 inc bc
|
|
000008E0 03 [ 6] 1745 inc bc
|
|
000008E1 C5 [11] 1746 push bc
|
|
000008E2 D5 [11] 1747 push de
|
|
000008E3 2E 0A [ 7] 1748 ld l, #0x0a
|
|
000008E5 7B [ 4] 1749 ld a, e
|
|
000008E6 CDr00r00 [17] 1750 call __divuchar
|
|
000008E9 7B [ 4] 1751 ld a, e
|
|
000008EA 2E 0A [ 7] 1752 ld l, #0x0a
|
|
000008EC CDr00r00 [17] 1753 call __moduchar
|
|
000008EF 7B [ 4] 1754 ld a, e
|
|
000008F0 D1 [10] 1755 pop de
|
|
000008F1 C1 [10] 1756 pop bc
|
|
000008F2 C6 30 [ 7] 1757 add a, #0x30
|
|
000008F4 02 [ 7] 1758 ld (bc), a
|
|
1759 ;src/main.c:473: dst[4] = '0' + s % 10;
|
|
000008F5 DD 7E FE [19] 1760 ld a, -2 (ix)
|
|
000008F8 C6 04 [ 7] 1761 add a, #0x04
|
|
000008FA 4F [ 4] 1762 ld c, a
|
|
000008FB DD 7E FF [19] 1763 ld a, -1 (ix)
|
|
000008FE CE 00 [ 7] 1764 adc a, #0x00
|
|
00000900 47 [ 4] 1765 ld b, a
|
|
00000901 C5 [11] 1766 push bc
|
|
00000902 2E 0A [ 7] 1767 ld l, #0x0a
|
|
00000904 7B [ 4] 1768 ld a, e
|
|
00000905 CDr00r00 [17] 1769 call __moduchar
|
|
00000908 7B [ 4] 1770 ld a, e
|
|
00000909 C1 [10] 1771 pop bc
|
|
0000090A C6 30 [ 7] 1772 add a, #0x30
|
|
0000090C 02 [ 7] 1773 ld (bc), a
|
|
1774 ;src/main.c:474: }
|
|
0000090D DD F9 [10] 1775 ld sp, ix
|
|
0000090F DD E1 [14] 1776 pop ix
|
|
00000911 E1 [10] 1777 pop hl
|
|
00000912 F1 [10] 1778 pop af
|
|
00000913 F1 [10] 1779 pop af
|
|
00000914 E9 [ 4] 1780 jp (hl)
|
|
1781 ;src/main.c:503: void xm_draw_stats_labels()
|
|
1782 ; ---------------------------------
|
|
1783 ; Function xm_draw_stats_labels
|
|
1784 ; ---------------------------------
|
|
00000915 1785 _xm_draw_stats_labels::
|
|
1786 ;src/main.c:507: wc_prsrw(&win_xm, "Pattern:#", ROW_STATS, 1, 9);
|
|
00000915 21 09 00 [10] 1787 ld hl, #0x0009
|
|
00000918 E5 [11] 1788 push hl
|
|
00000919 21 04 01 [10] 1789 ld hl, #0x104
|
|
0000091C E5 [11] 1790 push hl
|
|
0000091D 11rB4r09 [10] 1791 ld de, #___str_12
|
|
00000920 21r64r02 [10] 1792 ld hl, #_win_xm
|
|
00000923 CDr00r00 [17] 1793 call _wc_prsrw
|
|
1794 ;src/main.c:508: wc_prsrw(&win_xm, " Row:#", ROW_STATS, 12, 7);
|
|
00000926 21 07 00 [10] 1795 ld hl, #0x0007
|
|
00000929 E5 [11] 1796 push hl
|
|
0000092A 21 04 0C [10] 1797 ld hl, #0xc04
|
|
0000092D E5 [11] 1798 push hl
|
|
0000092E 11rBEr09 [10] 1799 ld de, #___str_13
|
|
00000931 21r64r02 [10] 1800 ld hl, #_win_xm
|
|
00000934 CDr00r00 [17] 1801 call _wc_prsrw
|
|
1802 ;src/main.c:509: wc_prsrw(&win_xm, " BPM:", ROW_STATS, 21, 6);
|
|
00000937 21 06 00 [10] 1803 ld hl, #0x0006
|
|
0000093A E5 [11] 1804 push hl
|
|
0000093B 21 04 15 [10] 1805 ld hl, #0x1504
|
|
0000093E E5 [11] 1806 push hl
|
|
0000093F 11rC6r09 [10] 1807 ld de, #___str_14
|
|
00000942 21r64r02 [10] 1808 ld hl, #_win_xm
|
|
00000945 CDr00r00 [17] 1809 call _wc_prsrw
|
|
1810 ;src/main.c:511: wc_prsrw(&win_xm, "Time:", ROW_TIME, 1, 5);
|
|
00000948 21 05 00 [10] 1811 ld hl, #0x0005
|
|
0000094B E5 [11] 1812 push hl
|
|
0000094C 21 06 01 [10] 1813 ld hl, #0x106
|
|
0000094F E5 [11] 1814 push hl
|
|
00000950 11rCDr09 [10] 1815 ld de, #___str_15
|
|
00000953 21r64r02 [10] 1816 ld hl, #_win_xm
|
|
00000956 CDr00r00 [17] 1817 call _wc_prsrw
|
|
1818 ;src/main.c:512: wc_prsrw(&win_xm, " / ", ROW_TIME, 12, 3);
|
|
00000959 21 03 00 [10] 1819 ld hl, #0x0003
|
|
0000095C E5 [11] 1820 push hl
|
|
0000095D 21 06 0C [10] 1821 ld hl, #0xc06
|
|
00000960 E5 [11] 1822 push hl
|
|
00000961 11rD3r09 [10] 1823 ld de, #___str_16
|
|
00000964 21r64r02 [10] 1824 ld hl, #_win_xm
|
|
00000967 CDr00r00 [17] 1825 call _wc_prsrw
|
|
1826 ;src/main.c:514: for (i = 0; i < BAR_WIDTH; i++)
|
|
0000096A 11r6Cr10 [10] 1827 ld de, #_barbuf+0
|
|
0000096D 0E 00 [ 7] 1828 ld c, #0x00
|
|
0000096F 1829 00103$:
|
|
1830 ;src/main.c:515: barbuf[i] = ' ';
|
|
0000096F 69 [ 4] 1831 ld l, c
|
|
00000970 26 00 [ 7] 1832 ld h, #0x00
|
|
00000972 19 [11] 1833 add hl, de
|
|
00000973 36 20 [10] 1834 ld (hl), #0x20
|
|
1835 ;src/main.c:514: for (i = 0; i < BAR_WIDTH; i++)
|
|
00000975 0C [ 4] 1836 inc c
|
|
00000976 79 [ 4] 1837 ld a, c
|
|
00000977 D6 20 [ 7] 1838 sub a, #0x20
|
|
00000979 38 F4 [12] 1839 jr c, 00103$
|
|
1840 ;src/main.c:516: wc_prsrw(&win_xm, barbuf, ROW_BAR, BAR_X, BAR_WIDTH);
|
|
1841 ;src/main.c:507: wc_prsrw(&win_xm, "Pattern:#", ROW_STATS, 1, 9);
|
|
1842 ;src/main.c:516: wc_prsrw(&win_xm, barbuf, ROW_BAR, BAR_X, BAR_WIDTH);
|
|
0000097B 21 20 00 [10] 1843 ld hl, #0x0020
|
|
0000097E E5 [11] 1844 push hl
|
|
0000097F 21 08 04 [10] 1845 ld hl, #0x408
|
|
00000982 E5 [11] 1846 push hl
|
|
00000983 21r64r02 [10] 1847 ld hl, #_win_xm
|
|
00000986 CDr00r00 [17] 1848 call _wc_prsrw
|
|
1849 ;src/main.c:518: bar_attr_ofs = (wc_gadrw(&win_xm, ROW_BAR, BAR_X) & 0x3FFF) | 0x0080;
|
|
00000989 21 08 04 [10] 1850 ld hl, #0x408
|
|
0000098C E5 [11] 1851 push hl
|
|
0000098D 21r64r02 [10] 1852 ld hl, #_win_xm
|
|
00000990 CDr00r00 [17] 1853 call _wc_gadrw
|
|
00000993 7A [ 4] 1854 ld a, d
|
|
00000994 E6 3F [ 7] 1855 and a, #0x3f
|
|
00000996 57 [ 4] 1856 ld d, a
|
|
00000997 CB FB [ 8] 1857 set 7, e
|
|
00000999 ED 53r8Cr10 [20] 1858 ld (_bar_attr_ofs), de
|
|
1859 ;src/main.c:520: for (i = 0; i < BAR_WIDTH; i++)
|
|
0000099D 0E 00 [ 7] 1860 ld c, #0x00
|
|
0000099F 1861 00105$:
|
|
1862 ;src/main.c:521: *(volatile u8*)(0xC000 + bar_attr_ofs + i) = ATTR_BAR_EMPTY;
|
|
0000099F 2Ar8Cr10 [16] 1863 ld hl, (_bar_attr_ofs)
|
|
000009A2 5D [ 4] 1864 ld e, l
|
|
000009A3 7C [ 4] 1865 ld a, h
|
|
000009A4 C6 C0 [ 7] 1866 add a, #0xc0
|
|
000009A6 57 [ 4] 1867 ld d, a
|
|
000009A7 69 [ 4] 1868 ld l, c
|
|
000009A8 26 00 [ 7] 1869 ld h, #0x00
|
|
000009AA 19 [11] 1870 add hl, de
|
|
000009AB 36 07 [10] 1871 ld (hl), #0x07
|
|
1872 ;src/main.c:520: for (i = 0; i < BAR_WIDTH; i++)
|
|
000009AD 0C [ 4] 1873 inc c
|
|
000009AE 79 [ 4] 1874 ld a, c
|
|
000009AF D6 20 [ 7] 1875 sub a, #0x20
|
|
000009B1 38 EC [12] 1876 jr c, 00105$
|
|
1877 ;src/main.c:522: }
|
|
000009B3 C9 [10] 1878 ret
|
|
000009B4 1879 ___str_12:
|
|
000009B4 50 61 74 74 65 72 6E 1880 .ascii "Pattern:#"
|
|
3A 23
|
|
000009BD 00 1881 .db 0x00
|
|
000009BE 1882 ___str_13:
|
|
000009BE 20 20 52 6F 77 3A 23 1883 .ascii " Row:#"
|
|
000009C5 00 1884 .db 0x00
|
|
000009C6 1885 ___str_14:
|
|
000009C6 20 20 42 50 4D 3A 1886 .ascii " BPM:"
|
|
000009CC 00 1887 .db 0x00
|
|
000009CD 1888 ___str_15:
|
|
000009CD 54 69 6D 65 3A 1889 .ascii "Time:"
|
|
000009D2 00 1890 .db 0x00
|
|
000009D3 1891 ___str_16:
|
|
000009D3 20 2F 20 1892 .ascii " / "
|
|
000009D6 00 1893 .db 0x00
|
|
1894 ;src/main.c:524: void draw_progress_bar(u32 samples, u32 total)
|
|
1895 ; ---------------------------------
|
|
1896 ; Function draw_progress_bar
|
|
1897 ; ---------------------------------
|
|
000009D7 1898 _draw_progress_bar::
|
|
000009D7 DD E5 [15] 1899 push ix
|
|
000009D9 DD 21 00 00 [14] 1900 ld ix, #0
|
|
000009DD DD 39 [15] 1901 add ix, sp
|
|
000009DF 4B [ 4] 1902 ld c, e
|
|
000009E0 42 [ 4] 1903 ld b, d
|
|
000009E1 EB [ 4] 1904 ex de, hl
|
|
1905 ;src/main.c:528: if (total)
|
|
000009E2 DD 7E 07 [19] 1906 ld a, 7 (ix)
|
|
000009E5 DD B6 06 [19] 1907 or a, 6 (ix)
|
|
000009E8 DD B6 05 [19] 1908 or a, 5 (ix)
|
|
000009EB DD B6 04 [19] 1909 or a, 4 (ix)
|
|
000009EE 28 30 [12] 1910 jr z, 00104$
|
|
1911 ;src/main.c:530: filled = (u16)(((u32)samples * BAR_WIDTH) / total);
|
|
000009F0 69 [ 4] 1912 ld l, c
|
|
000009F1 60 [ 4] 1913 ld h, b
|
|
000009F2 3E 05 [ 7] 1914 ld a, #0x05
|
|
000009F4 1915 00146$:
|
|
000009F4 29 [11] 1916 add hl, hl
|
|
000009F5 CB 13 [ 8] 1917 rl e
|
|
000009F7 CB 12 [ 8] 1918 rl d
|
|
000009F9 3D [ 4] 1919 dec a
|
|
000009FA 20 F8 [12] 1920 jr nz, 00146$
|
|
000009FC DD 4E 06 [19] 1921 ld c, 6 (ix)
|
|
000009FF DD 46 07 [19] 1922 ld b, 7 (ix)
|
|
00000A02 C5 [11] 1923 push bc
|
|
00000A03 DD 4E 04 [19] 1924 ld c, 4 (ix)
|
|
00000A06 DD 46 05 [19] 1925 ld b, 5 (ix)
|
|
00000A09 C5 [11] 1926 push bc
|
|
00000A0A EB [ 4] 1927 ex de, hl
|
|
00000A0B CDr00r00 [17] 1928 call __divulong
|
|
00000A0E F1 [10] 1929 pop af
|
|
00000A0F F1 [10] 1930 pop af
|
|
1931 ;src/main.c:531: if (filled > BAR_WIDTH)
|
|
00000A10 4B [ 4] 1932 ld c,e
|
|
00000A11 42 [ 4] 1933 ld b,d
|
|
00000A12 3E 20 [ 7] 1934 ld a, #0x20
|
|
00000A14 BB [ 4] 1935 cp a, e
|
|
00000A15 3E 00 [ 7] 1936 ld a, #0x00
|
|
00000A17 9A [ 4] 1937 sbc a, d
|
|
00000A18 30 09 [12] 1938 jr nc, 00120$
|
|
1939 ;src/main.c:532: filled = BAR_WIDTH;
|
|
00000A1A 01 20 00 [10] 1940 ld bc, #0x0020
|
|
00000A1D C3r23r0A [10] 1941 jp 00120$
|
|
00000A20 1942 00104$:
|
|
1943 ;src/main.c:535: filled = 0; // total length unknown (measurement timed out) - show empty
|
|
00000A20 01 00 00 [10] 1944 ld bc, #0x0000
|
|
1945 ;src/main.c:537: for (i = 0; i < BAR_WIDTH; i++)
|
|
00000A23 1946 00120$:
|
|
00000A23 11 00 00 [10] 1947 ld de, #0x0000
|
|
00000A26 1948 00107$:
|
|
1949 ;src/main.c:538: *(volatile u8*)(0xC000 + bar_attr_ofs + i) = (i < filled) ? ATTR_BAR_FILLED : ATTR_BAR_EMPTY;
|
|
00000A26 2Ar8Cr10 [16] 1950 ld hl, (_bar_attr_ofs)
|
|
00000A29 7C [ 4] 1951 ld a, h
|
|
00000A2A C6 C0 [ 7] 1952 add a, #0xc0
|
|
00000A2C 67 [ 4] 1953 ld h, a
|
|
00000A2D 19 [11] 1954 add hl, de
|
|
00000A2E 7B [ 4] 1955 ld a, e
|
|
00000A2F 91 [ 4] 1956 sub a, c
|
|
00000A30 7A [ 4] 1957 ld a, d
|
|
00000A31 98 [ 4] 1958 sbc a, b
|
|
00000A32 30 05 [12] 1959 jr nc, 00111$
|
|
00000A34 3E 40 [ 7] 1960 ld a, #0x40
|
|
00000A36 C3r3Br0A [10] 1961 jp 00112$
|
|
00000A39 1962 00111$:
|
|
00000A39 3E 07 [ 7] 1963 ld a, #0x07
|
|
00000A3B 1964 00112$:
|
|
00000A3B 77 [ 7] 1965 ld (hl), a
|
|
1966 ;src/main.c:537: for (i = 0; i < BAR_WIDTH; i++)
|
|
00000A3C 13 [ 6] 1967 inc de
|
|
00000A3D 6B [ 4] 1968 ld l, e
|
|
00000A3E 62 [ 4] 1969 ld h, d
|
|
00000A3F 7D [ 4] 1970 ld a, l
|
|
00000A40 D6 20 [ 7] 1971 sub a, #0x20
|
|
00000A42 7C [ 4] 1972 ld a, h
|
|
00000A43 DE 00 [ 7] 1973 sbc a, #0x00
|
|
00000A45 38 DF [12] 1974 jr c, 00107$
|
|
1975 ;src/main.c:539: }
|
|
00000A47 DD E1 [14] 1976 pop ix
|
|
00000A49 E1 [10] 1977 pop hl
|
|
00000A4A F1 [10] 1978 pop af
|
|
00000A4B F1 [10] 1979 pop af
|
|
00000A4C E9 [ 4] 1980 jp (hl)
|
|
1981 ;src/main.c:541: void xm_update_info()
|
|
1982 ; ---------------------------------
|
|
1983 ; Function xm_update_info
|
|
1984 ; ---------------------------------
|
|
00000A4D 1985 _xm_update_info::
|
|
00000A4D DD E5 [15] 1986 push ix
|
|
00000A4F DD 21 00 00 [14] 1987 ld ix, #0
|
|
00000A53 DD 39 [15] 1988 add ix, sp
|
|
00000A55 21 F8 FF [10] 1989 ld hl, #-8
|
|
00000A58 39 [11] 1990 add hl, sp
|
|
00000A59 F9 [ 6] 1991 ld sp, hl
|
|
1992 ;src/main.c:547: esp_wr_reg8(ESP_REG_OBJ_HANDLE, xm_handle);
|
|
00000A5A 3Ar30r10 [13] 1993 ld a, (_xm_handle)
|
|
00000A5D 6F [ 4] 1994 ld l, a
|
|
00000A5E 3E 0B [ 7] 1995 ld a, #0x0b
|
|
00000A60 CDrD1r00 [17] 1996 call _esp_wr_reg8
|
|
1997 ;src/main.c:548: esp_cmd(ESP_CMD_TRACK_GET_INFO);
|
|
00000A63 3E A8 [ 7] 1998 ld a, #0xa8
|
|
00000A65 CDr05r00 [17] 1999 call _esp_cmd
|
|
2000 ;src/main.c:549: esp_wait_busy(50); // 1s - a plain info read should be near-instant
|
|
00000A68 21 32 00 [10] 2001 ld hl, #0x0032
|
|
00000A6B CDrE5r01 [17] 2002 call _esp_wait_busy
|
|
2003 ;src/main.c:554: status = esp_rd_reg8(ESP_REG_TRACK_STATUS);
|
|
00000A6E 3E 28 [ 7] 2004 ld a, #0x28
|
|
00000A70 CDr1Er00 [17] 2005 call _esp_rd_reg8
|
|
00000A73 DD 77 FF [19] 2006 ld -1 (ix), a
|
|
2007 ;src/main.c:555: if (last_track_status == TRACK_OBJ_ST_PLAYING && status == TRACK_OBJ_ST_STOPPED)
|
|
00000A76 3Ar31r10 [13] 2008 ld a, (_last_track_status)
|
|
00000A79 D6 21 [ 7] 2009 sub a, #0x21
|
|
00000A7B 20 1D [12] 2010 jr nz, 00102$
|
|
00000A7D DD 7E FF [19] 2011 ld a, -1 (ix)
|
|
00000A80 D6 20 [ 7] 2012 sub a, #0x20
|
|
00000A82 20 16 [12] 2013 jr nz, 00102$
|
|
2014 ;src/main.c:557: esp_cmd(ESP_CMD_KILL_OBJECTS);
|
|
00000A84 3E E4 [ 7] 2015 ld a, #0xe4
|
|
00000A86 CDr05r00 [17] 2016 call _esp_cmd
|
|
2017 ;src/main.c:558: esp_wait_busy(100);
|
|
00000A89 21 64 00 [10] 2018 ld hl, #0x0064
|
|
00000A8C CDrE5r01 [17] 2019 call _esp_wait_busy
|
|
2020 ;src/main.c:559: wc_rresb(&win_xm);
|
|
00000A8F 21r64r02 [10] 2021 ld hl, #_win_xm
|
|
00000A92 CDr00r00 [17] 2022 call _wc_rresb
|
|
2023 ;src/main.c:560: wc_exit(WC_NEXT_FILE);
|
|
00000A95 3E 02 [ 7] 2024 ld a, #0x02
|
|
00000A97 CDr00r00 [17] 2025 call _wc_exit
|
|
00000A9A 2026 00102$:
|
|
2027 ;src/main.c:562: last_track_status = status;
|
|
00000A9A DD 7E FF [19] 2028 ld a, -1 (ix)
|
|
00000A9D 32r31r10 [13] 2029 ld (#_last_track_status), a
|
|
2030 ;src/main.c:564: pattern = esp_rd_reg8(ESP_REG_TRACK_PATTERN);
|
|
00000AA0 3E 2B [ 7] 2031 ld a, #0x2b
|
|
00000AA2 CDr1Er00 [17] 2032 call _esp_rd_reg8
|
|
00000AA5 DD 77 FA [19] 2033 ld -6 (ix), a
|
|
2034 ;src/main.c:565: row = esp_rd_reg8(ESP_REG_TRACK_ROW);
|
|
00000AA8 3E 2C [ 7] 2035 ld a, #0x2c
|
|
00000AAA CDr1Er00 [17] 2036 call _esp_rd_reg8
|
|
00000AAD DD 77 FB [19] 2037 ld -5 (ix), a
|
|
2038 ;src/main.c:566: esp_rd_regs(ESP_REG_TRACK_BPM, &bpm, 2);
|
|
00000AB0 3E 02 [ 7] 2039 ld a, #0x02
|
|
00000AB2 F5 [11] 2040 push af
|
|
00000AB3 33 [ 6] 2041 inc sp
|
|
00000AB4 21 01 00 [10] 2042 ld hl, #1
|
|
00000AB7 39 [11] 2043 add hl, sp
|
|
00000AB8 EB [ 4] 2044 ex de, hl
|
|
00000AB9 3E 31 [ 7] 2045 ld a, #0x31
|
|
00000ABB CDrA5r00 [17] 2046 call _esp_rd_regs
|
|
2047 ;src/main.c:567: samples = esp_rd_reg32(ESP_REG_TRACK_SAMPLES);
|
|
00000ABE 3E 2D [ 7] 2048 ld a, #0x2d
|
|
00000AC0 CDr37r00 [17] 2049 call _esp_rd_reg32
|
|
00000AC3 DD 73 FC [19] 2050 ld -4 (ix), e
|
|
00000AC6 DD 72 FD [19] 2051 ld -3 (ix), d
|
|
00000AC9 DD 75 FE [19] 2052 ld -2 (ix), l
|
|
00000ACC DD 74 FF [19] 2053 ld -1 (ix), h
|
|
2054 ;src/main.c:569: if (!total_samples)
|
|
00000ACF 3Ar2Fr10 [13] 2055 ld a, (_total_samples+3)
|
|
00000AD2 FD 21r2Cr10 [14] 2056 ld iy, #_total_samples
|
|
00000AD6 FD B6 02 [19] 2057 or a, 2 (iy)
|
|
00000AD9 FD B6 01 [19] 2058 or a, 1 (iy)
|
|
00000ADC FD B6 00 [19] 2059 or a, 0 (iy)
|
|
00000ADF 20 0C [12] 2060 jr nz, 00105$
|
|
2061 ;src/main.c:570: total_samples = esp_rd_reg32(ESP_REG_TRACK_TOTAL_SAMPLES);
|
|
00000AE1 3E 36 [ 7] 2062 ld a, #0x36
|
|
00000AE3 CDr37r00 [17] 2063 call _esp_rd_reg32
|
|
00000AE6 ED 53r2Cr10 [20] 2064 ld (_total_samples), de
|
|
00000AEA 22r2Er10 [16] 2065 ld (_total_samples + 2), hl
|
|
00000AED 2066 00105$:
|
|
2067 ;src/main.c:572: put_hex2(hexbuf, pattern);
|
|
00000AED DD 7E FA [19] 2068 ld a, -6 (ix)
|
|
00000AF0 F5 [11] 2069 push af
|
|
00000AF1 33 [ 6] 2070 inc sp
|
|
00000AF2 21r62r10 [10] 2071 ld hl, #_hexbuf
|
|
00000AF5 CDrCEr07 [17] 2072 call _put_hex2
|
|
2073 ;src/main.c:573: wc_prsrw_attr(&win_xm, hexbuf, ROW_STATS, 10, 2, ATTR_VALUE);
|
|
00000AF8 3E 71 [ 7] 2074 ld a, #0x71
|
|
00000AFA F5 [11] 2075 push af
|
|
00000AFB 33 [ 6] 2076 inc sp
|
|
00000AFC 21 02 00 [10] 2077 ld hl, #0x0002
|
|
00000AFF E5 [11] 2078 push hl
|
|
00000B00 21 04 0A [10] 2079 ld hl, #0xa04
|
|
00000B03 E5 [11] 2080 push hl
|
|
00000B04 11r62r10 [10] 2081 ld de, #_hexbuf
|
|
00000B07 21r64r02 [10] 2082 ld hl, #_win_xm
|
|
00000B0A CDr00r00 [17] 2083 call _wc_prsrw_attr
|
|
2084 ;src/main.c:575: put_hex2(hexbuf, row);
|
|
00000B0D DD 7E FB [19] 2085 ld a, -5 (ix)
|
|
00000B10 F5 [11] 2086 push af
|
|
00000B11 33 [ 6] 2087 inc sp
|
|
00000B12 21r62r10 [10] 2088 ld hl, #_hexbuf
|
|
00000B15 CDrCEr07 [17] 2089 call _put_hex2
|
|
2090 ;src/main.c:576: wc_prsrw_attr(&win_xm, hexbuf, ROW_STATS, 19, 2, ATTR_VALUE);
|
|
00000B18 3E 71 [ 7] 2091 ld a, #0x71
|
|
00000B1A F5 [11] 2092 push af
|
|
00000B1B 33 [ 6] 2093 inc sp
|
|
00000B1C 21 02 00 [10] 2094 ld hl, #0x0002
|
|
00000B1F E5 [11] 2095 push hl
|
|
00000B20 21 04 13 [10] 2096 ld hl, #0x1304
|
|
00000B23 E5 [11] 2097 push hl
|
|
00000B24 11r62r10 [10] 2098 ld de, #_hexbuf
|
|
00000B27 21r64r02 [10] 2099 ld hl, #_win_xm
|
|
00000B2A CDr00r00 [17] 2100 call _wc_prsrw_attr
|
|
2101 ;src/main.c:578: put_dec3(decbuf, bpm);
|
|
00000B2D D1 [10] 2102 pop de
|
|
00000B2E D5 [11] 2103 push de
|
|
00000B2F 21r64r10 [10] 2104 ld hl, #_decbuf
|
|
00000B32 CDr0Br08 [17] 2105 call _put_dec3
|
|
2106 ;src/main.c:579: wc_prsrw_attr(&win_xm, decbuf, ROW_STATS, 27, 3, ATTR_VALUE);
|
|
00000B35 3E 71 [ 7] 2107 ld a, #0x71
|
|
00000B37 F5 [11] 2108 push af
|
|
00000B38 33 [ 6] 2109 inc sp
|
|
00000B39 21 03 00 [10] 2110 ld hl, #0x0003
|
|
00000B3C E5 [11] 2111 push hl
|
|
00000B3D 21 04 1B [10] 2112 ld hl, #0x1b04
|
|
00000B40 E5 [11] 2113 push hl
|
|
00000B41 11r64r10 [10] 2114 ld de, #_decbuf
|
|
00000B44 21r64r02 [10] 2115 ld hl, #_win_xm
|
|
00000B47 CDr00r00 [17] 2116 call _wc_prsrw_attr
|
|
2117 ;src/main.c:581: put_time(timebuf, samples / 44100UL);
|
|
00000B4A 21 00 00 [10] 2118 ld hl, #0x0000
|
|
00000B4D E5 [11] 2119 push hl
|
|
00000B4E 21 44 AC [10] 2120 ld hl, #0xac44
|
|
00000B51 E5 [11] 2121 push hl
|
|
00000B52 DD 5E FC [19] 2122 ld e, -4 (ix)
|
|
00000B55 DD 56 FD [19] 2123 ld d, -3 (ix)
|
|
00000B58 DD 6E FE [19] 2124 ld l, -2 (ix)
|
|
00000B5B DD 66 FF [19] 2125 ld h, -1 (ix)
|
|
00000B5E CDr00r00 [17] 2126 call __divulong
|
|
00000B61 F1 [10] 2127 pop af
|
|
00000B62 E3 [19] 2128 ex (sp),hl
|
|
00000B63 D5 [11] 2129 push de
|
|
00000B64 21r67r10 [10] 2130 ld hl, #_timebuf
|
|
00000B67 CDr68r08 [17] 2131 call _put_time
|
|
2132 ;src/main.c:582: wc_prsrw_attr(&win_xm, timebuf, ROW_TIME, 7, 5, ATTR_VALUE);
|
|
00000B6A 3E 71 [ 7] 2133 ld a, #0x71
|
|
00000B6C F5 [11] 2134 push af
|
|
00000B6D 33 [ 6] 2135 inc sp
|
|
00000B6E 21 05 00 [10] 2136 ld hl, #0x0005
|
|
00000B71 E5 [11] 2137 push hl
|
|
00000B72 21 06 07 [10] 2138 ld hl, #0x706
|
|
00000B75 E5 [11] 2139 push hl
|
|
00000B76 11r67r10 [10] 2140 ld de, #_timebuf
|
|
00000B79 21r64r02 [10] 2141 ld hl, #_win_xm
|
|
00000B7C CDr00r00 [17] 2142 call _wc_prsrw_attr
|
|
2143 ;src/main.c:584: put_time(timebuf, total_samples / 44100UL);
|
|
00000B7F 21 00 00 [10] 2144 ld hl, #0x0000
|
|
00000B82 E5 [11] 2145 push hl
|
|
00000B83 21 44 AC [10] 2146 ld hl, #0xac44
|
|
00000B86 E5 [11] 2147 push hl
|
|
00000B87 ED 5Br2Cr10 [20] 2148 ld de, (_total_samples)
|
|
00000B8B 2Ar2Er10 [16] 2149 ld hl, (_total_samples + 2)
|
|
00000B8E CDr00r00 [17] 2150 call __divulong
|
|
00000B91 F1 [10] 2151 pop af
|
|
00000B92 E3 [19] 2152 ex (sp),hl
|
|
00000B93 D5 [11] 2153 push de
|
|
00000B94 21r67r10 [10] 2154 ld hl, #_timebuf
|
|
00000B97 CDr68r08 [17] 2155 call _put_time
|
|
2156 ;src/main.c:585: wc_prsrw_attr(&win_xm, timebuf, ROW_TIME, 15, 5, ATTR_VALUE);
|
|
00000B9A 3E 71 [ 7] 2157 ld a, #0x71
|
|
00000B9C F5 [11] 2158 push af
|
|
00000B9D 33 [ 6] 2159 inc sp
|
|
00000B9E 21 05 00 [10] 2160 ld hl, #0x0005
|
|
00000BA1 E5 [11] 2161 push hl
|
|
00000BA2 21 06 0F [10] 2162 ld hl, #0xf06
|
|
00000BA5 E5 [11] 2163 push hl
|
|
00000BA6 11r67r10 [10] 2164 ld de, #_timebuf
|
|
00000BA9 21r64r02 [10] 2165 ld hl, #_win_xm
|
|
00000BAC CDr00r00 [17] 2166 call _wc_prsrw_attr
|
|
2167 ;src/main.c:587: draw_progress_bar(samples, total_samples);
|
|
00000BAF 2Ar2Er10 [16] 2168 ld hl, (_total_samples + 2)
|
|
00000BB2 E5 [11] 2169 push hl
|
|
00000BB3 2Ar2Cr10 [16] 2170 ld hl, (_total_samples)
|
|
00000BB6 E5 [11] 2171 push hl
|
|
00000BB7 DD 5E FC [19] 2172 ld e, -4 (ix)
|
|
00000BBA DD 56 FD [19] 2173 ld d, -3 (ix)
|
|
00000BBD DD 6E FE [19] 2174 ld l, -2 (ix)
|
|
00000BC0 DD 66 FF [19] 2175 ld h, -1 (ix)
|
|
00000BC3 CDrD7r09 [17] 2176 call _draw_progress_bar
|
|
2177 ;src/main.c:589: }
|
|
00000BC6 DD F9 [10] 2178 ld sp, ix
|
|
00000BC8 DD E1 [14] 2179 pop ix
|
|
00000BCA C9 [10] 2180 ret
|
|
2181 ;src/main.c:591: void main_start()
|
|
2182 ; ---------------------------------
|
|
2183 ; Function main_start
|
|
2184 ; ---------------------------------
|
|
00000BCB 2185 _main_start::
|
|
00000BCB 3B [ 6] 2186 dec sp
|
|
2187 ;src/main.c:595: copy_file_name();
|
|
00000BCC CDr06r06 [17] 2188 call _copy_file_name
|
|
2189 ;src/main.c:607: wc_prwow(&win_xm);
|
|
00000BCF 21r64r02 [10] 2190 ld hl, #_win_xm
|
|
00000BD2 CDr00r00 [17] 2191 call _wc_prwow
|
|
2192 ;src/main.c:608: xm_draw_static_labels();
|
|
00000BD5 CDr2Br06 [17] 2193 call _xm_draw_static_labels
|
|
2194 ;src/main.c:609: xm_set_status("Loading, please wait...");
|
|
00000BD8 21r84r0C [10] 2195 ld hl, #___str_17
|
|
00000BDB CDr0Er07 [17] 2196 call _xm_set_status
|
|
2197 ;src/main.c:611: if (state_esp == 0xFF)
|
|
00000BDE 3Ar00r00 [13] 2198 ld a, (_state_esp)
|
|
00000BE1 3C [ 4] 2199 inc a
|
|
00000BE2 20 0D [12] 2200 jr nz, 00102$
|
|
2201 ;src/main.c:612: state_esp = esp_init() ? 1 : 2;
|
|
00000BE4 CDr57r02 [17] 2202 call _esp_init
|
|
00000BE7 B7 [ 4] 2203 or a, a
|
|
00000BE8 3E 01 [ 7] 2204 ld a, #0x01
|
|
00000BEA 20 02 [12] 2205 jr nz, 00126$
|
|
00000BEC 3E 02 [ 7] 2206 ld a, #0x02
|
|
00000BEE 2207 00126$:
|
|
00000BEE 32r00r00 [13] 2208 ld (#_state_esp), a
|
|
00000BF1 2209 00102$:
|
|
2210 ;src/main.c:614: if (state_esp != 1)
|
|
00000BF1 3Ar00r00 [13] 2211 ld a, (_state_esp)
|
|
00000BF4 3D [ 4] 2212 dec a
|
|
00000BF5 28 07 [12] 2213 jr z, 00104$
|
|
2214 ;src/main.c:616: error_esp();
|
|
00000BF7 33 [ 6] 2215 inc sp
|
|
00000BF8 C3r6Dr05 [10] 2216 jp _error_esp
|
|
2217 ;src/main.c:617: return;
|
|
00000BFB C3r82r0C [10] 2218 jp 00123$
|
|
00000BFE 2219 00104$:
|
|
2220 ;src/main.c:620: total_samples = 0;
|
|
00000BFE AF [ 4] 2221 xor a, a
|
|
00000BFF 32r2Cr10 [13] 2222 ld (_total_samples+0), a
|
|
00000C02 32r2Dr10 [13] 2223 ld (_total_samples+1), a
|
|
00000C05 32r2Er10 [13] 2224 ld (_total_samples+2), a
|
|
00000C08 32r2Fr10 [13] 2225 ld (_total_samples+3), a
|
|
2226 ;src/main.c:622: if (!play_xm())
|
|
00000C0B CDrBEr02 [17] 2227 call _play_xm
|
|
00000C0E B7 [ 4] 2228 or a, a
|
|
00000C0F 20 12 [12] 2229 jr nz, 00109$
|
|
2230 ;src/main.c:624: if (last_esp_status == ESP_ERR_OUT_OF_MEMORY)
|
|
00000C11 3Ar08r10 [13] 2231 ld a, (_last_esp_status)
|
|
00000C14 D6 99 [ 7] 2232 sub a, #0x99
|
|
00000C16 20 07 [12] 2233 jr nz, 00106$
|
|
2234 ;src/main.c:625: error_oom();
|
|
00000C18 33 [ 6] 2235 inc sp
|
|
00000C19 C3rA0r05 [10] 2236 jp _error_oom
|
|
00000C1C C3r82r0C [10] 2237 jp 00123$
|
|
00000C1F 2238 00106$:
|
|
2239 ;src/main.c:627: error_playback();
|
|
00000C1F 33 [ 6] 2240 inc sp
|
|
2241 ;src/main.c:628: return;
|
|
00000C20 C3rD3r05 [10] 2242 jp _error_playback
|
|
00000C23 2243 00109$:
|
|
2244 ;src/main.c:631: xm_set_status("Playing");
|
|
00000C23 21r9Cr0C [10] 2245 ld hl, #___str_18
|
|
00000C26 CDr0Er07 [17] 2246 call _xm_set_status
|
|
2247 ;src/main.c:632: xm_draw_stats_labels();
|
|
00000C29 CDr15r09 [17] 2248 call _xm_draw_stats_labels
|
|
2249 ;src/main.c:633: last_track_status = TRACK_OBJ_ST_PLAYING;
|
|
00000C2C 21r31r10 [10] 2250 ld hl, #_last_track_status
|
|
00000C2F 36 21 [10] 2251 ld (hl), #0x21
|
|
2252 ;src/main.c:634: xm_update_info();
|
|
00000C31 CDr4Dr0A [17] 2253 call _xm_update_info
|
|
2254 ;src/main.c:636: frame_ctr = 0;
|
|
00000C34 FD 21 00 00 [14] 2255 ld iy, #0
|
|
00000C38 FD 39 [15] 2256 add iy, sp
|
|
00000C3A FD 36 00 00 [19] 2257 ld 0 (iy), #0x00
|
|
2258 ;src/main.c:639: while (1)
|
|
00000C3E 2259 00121$:
|
|
2260 ;src/main.c:643: __endasm;
|
|
00000C3E 76 [ 4] 2261 halt
|
|
2262 ;src/main.c:645: if (++frame_ctr >= 10) // ~5 updates/sec at 50Hz
|
|
00000C3F FD 21 00 00 [14] 2263 ld iy, #0
|
|
00000C43 FD 39 [15] 2264 add iy, sp
|
|
00000C45 FD 34 00 [23] 2265 inc 0 (iy)
|
|
00000C48 FD 7E 00 [19] 2266 ld a, 0 (iy)
|
|
00000C4B D6 0A [ 7] 2267 sub a, #0x0a
|
|
00000C4D 38 07 [12] 2268 jr c, 00111$
|
|
2269 ;src/main.c:647: frame_ctr = 0;
|
|
00000C4F FD 36 00 00 [19] 2270 ld 0 (iy), #0x00
|
|
2271 ;src/main.c:648: xm_update_info();
|
|
00000C53 CDr4Dr0A [17] 2272 call _xm_update_info
|
|
00000C56 2273 00111$:
|
|
2274 ;src/main.c:651: if (wc_key_pgdn()) // PgDn - unload and go to next file
|
|
00000C56 CDr00r00 [17] 2275 call _wc_key_pgdn
|
|
00000C59 B7 [ 4] 2276 or a, a
|
|
00000C5A 28 05 [12] 2277 jr z, 00113$
|
|
2278 ;src/main.c:652: unload_and_exit(WC_NEXT_FILE);
|
|
00000C5C 3E 02 [ 7] 2279 ld a, #0x02
|
|
00000C5E CDr0Er05 [17] 2280 call _unload_and_exit
|
|
00000C61 2281 00113$:
|
|
2282 ;src/main.c:654: if (wc_key_pgup()) // PgUp - unload and go to previous file
|
|
00000C61 CDr00r00 [17] 2283 call _wc_key_pgup
|
|
00000C64 B7 [ 4] 2284 or a, a
|
|
00000C65 28 05 [12] 2285 jr z, 00115$
|
|
2286 ;src/main.c:655: unload_and_exit(WC_PREV_FILE);
|
|
00000C67 3E 04 [ 7] 2287 ld a, #0x04
|
|
00000C69 CDr0Er05 [17] 2288 call _unload_and_exit
|
|
00000C6C 2289 00115$:
|
|
2290 ;src/main.c:657: if (wc_key_esc()) // Esc - unload and exit
|
|
00000C6C CDr00r00 [17] 2291 call _wc_key_esc
|
|
00000C6F B7 [ 4] 2292 or a, a
|
|
00000C70 28 04 [12] 2293 jr z, 00117$
|
|
2294 ;src/main.c:658: unload_and_exit(WC_EXIT);
|
|
00000C72 AF [ 4] 2295 xor a, a
|
|
00000C73 CDr0Er05 [17] 2296 call _unload_and_exit
|
|
00000C76 2297 00117$:
|
|
2298 ;src/main.c:660: if (wc_key_space()) // Space - leave the track playing, just exit
|
|
00000C76 CDr00r00 [17] 2299 call _wc_key_space
|
|
00000C79 B7 [ 4] 2300 or a, a
|
|
00000C7A 28 C2 [12] 2301 jr z, 00121$
|
|
2302 ;src/main.c:661: leave_playing_and_exit();
|
|
00000C7C CDr3Fr05 [17] 2303 call _leave_playing_and_exit
|
|
00000C7F C3r3Er0C [10] 2304 jp 00121$
|
|
00000C82 2305 00123$:
|
|
2306 ;src/main.c:663: }
|
|
00000C82 33 [ 6] 2307 inc sp
|
|
00000C83 C9 [10] 2308 ret
|
|
00000C84 2309 ___str_17:
|
|
00000C84 4C 6F 61 64 69 6E 67 2310 .ascii "Loading, please wait..."
|
|
2C 20 70 6C 65 61 73
|
|
65 20 77 61 69 74 2E
|
|
2E 2E
|
|
00000C9B 00 2311 .db 0x00
|
|
00000C9C 2312 ___str_18:
|
|
00000C9C 50 6C 61 79 69 6E 67 2313 .ascii "Playing"
|
|
00000CA3 00 2314 .db 0x00
|
|
2315 ;src/main.c:666: void main()
|
|
2316 ; ---------------------------------
|
|
2317 ; Function main
|
|
2318 ; ---------------------------------
|
|
00000CA4 2319 _main::
|
|
2320 ;src/main.c:676: __endasm;
|
|
00000CA4 ED 73r00r10 [20] 2321 ld (_ret_sp), sp
|
|
00000CA8 32r07r10 [13] 2322 ld (_call_type), a
|
|
00000CAB ED 43r09r10 [20] 2323 ld (_p_file_name), bc
|
|
00000CAF 08 [ 4] 2324 ex af, af
|
|
00000CB0 32r06r10 [13] 2325 ld (_file_ext), a
|
|
00000CB3 22r02r10 [16] 2326 ld (_filesize), hl
|
|
00000CB6 ED 53r04r10 [20] 2327 ld (_filesize + 2), de
|
|
2328 ;src/main.c:678: switch (call_type)
|
|
00000CBA 3Ar07r10 [13] 2329 ld a, (_call_type+0)
|
|
00000CBD B7 [ 4] 2330 or a, a
|
|
00000CBE CArCBr0B [10] 2331 jp z, _main_start
|
|
00000CC1 3Ar07r10 [13] 2332 ld a, (_call_type)
|
|
00000CC4 D6 03 [ 7] 2333 sub a, #0x03
|
|
00000CC6 CArFBr04 [10] 2334 jp z, _about
|
|
2335 ;src/main.c:680: case WC_CALL_EXT:
|
|
2336 ;src/main.c:681: main_start();
|
|
2337 ;src/main.c:682: break;
|
|
2338 ;src/main.c:684: case WC_CALL_MENU:
|
|
2339 ;src/main.c:685: about();
|
|
2340 ;src/main.c:686: break;
|
|
2341 ;src/main.c:688: default:
|
|
2342 ;src/main.c:689: wc_exit(WC_EXIT);
|
|
00000CC9 AF [ 4] 2343 xor a, a
|
|
2344 ;src/main.c:690: }
|
|
2345 ;src/main.c:691: }
|
|
00000CCA C3r00r00 [10] 2346 jp _wc_exit
|
|
2347 .area _CODE
|
|
2348 .area _INITIALIZER
|
|
00000000 2349 __xinit__state_esp:
|
|
00000000 FF 2350 .db #0xff ; 255
|
|
2351 .area _CABS (ABS)
|