esp32.c: two-phase esp_wait_busy() so a stale non-BUSY status right after esp_cmd() isn't mistaken for completion (fixed a real TRACK_PLAY/0x88 race on heavier XM files); added single-phase esp_wait_not_busy() for esp_send_dma()'s per-chunk wait, which never actually sets BUSY and was timing out on every chunk under the two-phase version. vgm_wc_api.lib renamed to wc_api.lib (build.bat updated to match). Keyboard: tried replacing wc_key_esc/pgup/pgdn/space with a raw PS/2-FIFO reader (matching how VGMPLAY.WMF's own player reads keys) so Enter could also advance to the next file. Reverted after two confirmed hardware regressions (esp32 transfers failing with ESP_ERR_INV_XM, and the keyboard going unresponsive once WC's own PS/2 scanning was disabled to stop it competing with the raw reads) - VGMPLAY's approach relies on a full custom interrupt handler xmplay has no equivalent need for. Back to the simple wc_key_*() wrappers, plus wc_key_enter() so Enter now advances too, and wc_key_wait_release() (called after wc_gedpl()) to debounce the Enter/F3 that launched the plugin itself. Also: About window now centers dynamically for all three WC text modes (90x36/80x25/80x30) instead of a fixed position, and matches the main window's color scheme. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
112 lines
2.5 KiB
Plaintext
112 lines
2.5 KiB
Plaintext
DEF .__.ABS. 0x0
|
|
DEF l__BSEG 0x0
|
|
DEF l__BSS 0x0
|
|
DEF l__CABS 0x0
|
|
DEF l__DABS 0x0
|
|
DEF l__GSFINAL 0x0
|
|
DEF l__GSINIT 0x0
|
|
DEF l__HEADER 0x0
|
|
DEF l__HEAP 0x0
|
|
DEF s__CABS 0x0
|
|
DEF s__DABS 0x0
|
|
DEF s__HEADER 0x0
|
|
DEF s__HEADER0 0x0
|
|
DEF l__INITIALIZED 0x1
|
|
DEF l__INITIALIZER 0x1
|
|
DEF l__HEADER0 0x3
|
|
DEF l__HOME 0x10A
|
|
DEF l__CODE 0xF31
|
|
DEF l__DATA 0x10B2
|
|
DEF s__CODE 0x8003
|
|
DEF s__DATA 0xA800
|
|
DEF s__INITIALIZED 0xB8B2
|
|
DEF s__HOME 0xB8B3
|
|
DEF s__GSFINAL 0xB9BD
|
|
DEF s__GSINIT 0xB9BD
|
|
DEF s__INITIALIZER 0xB9BD
|
|
DEF s__BSEG 0xB9BE
|
|
DEF s__BSS 0xB9BE
|
|
DEF s__HEAP 0xB9BE
|
|
DEF _wc_exit 0x8003
|
|
DEF _esp_cmd 0x8008
|
|
DEF _esp_rd_reg8 0x8021
|
|
DEF _esp_rd_reg32 0x803A
|
|
DEF _esp_rd_regs 0x80A8
|
|
DEF _esp_wr_reg8 0x80D4
|
|
DEF _esp_wr_reg32 0x80EB
|
|
DEF _esp_wr_end 0x811B
|
|
DEF _esp_wait_not_busy 0x812A
|
|
DEF _esp_send_dma 0x8171
|
|
DEF _esp_rd_end 0x81D2
|
|
DEF _esp_wait_status 0x81E1
|
|
DEF _esp_wait_busy 0x822F
|
|
DEF _esp_create_obj 0x826B
|
|
DEF _esp_init 0x8296
|
|
DEF _win_xm_tpl 0x82A3
|
|
DEF _win_about_tpl 0x82B5
|
|
DEF _play_xm 0x8312
|
|
DEF _wait_esc_key 0x853E
|
|
DEF _wait_frames 0x8546
|
|
DEF _wc_screen_width 0x854F
|
|
DEF _wc_center 0x855C
|
|
DEF _about 0x8592
|
|
DEF _unload_and_exit 0x85CC
|
|
DEF _leave_playing_and_exit 0x85FD
|
|
DEF _wait_for_manual_exit 0x8607
|
|
DEF _error_esp 0x8631
|
|
DEF _stop_on_error 0x8658
|
|
DEF _error_oom 0x8664
|
|
DEF _error_playback 0x8697
|
|
DEF _copy_file_name 0x86CA
|
|
DEF _xm_draw_static_labels 0x86EF
|
|
DEF _xm_set_status_attr 0x876E
|
|
DEF _xm_set_status 0x87D2
|
|
DEF _xm_set_status_code 0x87DA
|
|
DEF _put_hex2 0x8892
|
|
DEF _put_dec3 0x88CF
|
|
DEF _put_time 0x892C
|
|
DEF _xm_draw_stats_labels 0x89D9
|
|
DEF _draw_progress_bar 0x8A9B
|
|
DEF _xm_update_info 0x8B11
|
|
DEF _main_start 0x8C8F
|
|
DEF _main 0x8D99
|
|
DEF __divuchar 0x8DC2
|
|
DEF __divu8 0x8DC4
|
|
DEF __divu16 0x8DC7
|
|
DEF __divuint 0x8DC7
|
|
DEF _wc_key_space 0x8DF6
|
|
DEF _wc_load512 0x8E00
|
|
DEF __moduchar 0x8E15
|
|
DEF __moduint 0x8E1C
|
|
DEF _wc_prsrw 0x8E21
|
|
DEF _wc_prwow 0x8E57
|
|
DEF _wc_key_enter 0x8E64
|
|
DEF _wc_prm_pl 0x8E6E
|
|
DEF _wc_gedpl 0x8E7D
|
|
DEF _wc_key_pgdn 0x8E87
|
|
DEF _wc_gadrw 0x8E91
|
|
DEF _wc_prsrw_attr 0x8EB6
|
|
DEF _wc_key_wait_release 0x8EFD
|
|
DEF _wc_rresb 0x8F07
|
|
DEF _strlen 0x8F14
|
|
DEF _wc_key_esc 0x8F20
|
|
DEF _wc_key_pgup 0x8F2A
|
|
DEF _fs_buf 0xA800
|
|
DEF _ret_sp 0xB800
|
|
DEF _filesize 0xB802
|
|
DEF _file_ext 0xB806
|
|
DEF _call_type 0xB807
|
|
DEF _last_esp_status 0xB808
|
|
DEF _p_file_name 0xB809
|
|
DEF _file_name 0xB80B
|
|
DEF _total_samples 0xB82C
|
|
DEF _xm_handle 0xB830
|
|
DEF _last_track_status 0xB831
|
|
DEF _win_xm 0xB832
|
|
DEF _win_about 0xB844
|
|
DEF _bar_attr_ofs 0xB8B0
|
|
DEF _state_esp 0xB8B2
|
|
DEF __modulong 0xB8B3
|
|
DEF __divulong 0xB93A
|
|
LOAD obj/out.ihx
|