From 5f2c6c46c88435624e1ebdfd61a2866eb5db917d Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 10 Sep 2026 11:30:25 +0300 Subject: [PATCH] Track body_syms.inc zc_sd_driver.asm INCLUDEs it directly; without it the repo isn't buildable from a fresh clone. Generated from zc_sd_driver_body.asm's own --sym dump (DATA/CONF stripped, see _sd/README.md's build steps). --- _sd/body_syms.inc | 436 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 436 insertions(+) create mode 100644 _sd/body_syms.inc diff --git a/_sd/body_syms.inc b/_sd/body_syms.inc new file mode 100644 index 0000000..2ac3446 --- /dev/null +++ b/_sd/body_syms.inc @@ -0,0 +1,436 @@ +body_end: EQU 0x00002002 +mkdir_sec_lo: EQU 0x00001FF2 +mkdir_sec_hi: EQU 0x00001FF0 +cmkf_open_stream: EQU 0x00001FC9 +cmkf_final: EQU 0x00001FB3 +cmkf_buildlfn: EQU 0x00001F97 +cmkf_entry: EQU 0x00001F55 +cmkf_havecl: EQU 0x00001F27 +cmkf_alloc: EQU 0x00001F11 +cmkf_havelen: EQU 0x00001EF8 +cmkf_lendone: EQU 0x00001EEF +cmkf_lenloop: EQU 0x00001EE2 +core_mkfile: EQU 0x00001EC7 +cmkf_len_lo: EQU 0x00001EC5 +cmkf_len_hi: EQU 0x00001EC3 +cmkd_final: EQU 0x00001EAE +cmkd_buildlfn: EQU 0x00001E92 +cmkd_ownentry: EQU 0x00001E5F +dotdot_name: EQU 0x00001FE5 +cmkd_dot_ok: EQU 0x00001E13 +dot_name: EQU 0x00001FDA +clear_dir_entry: EQU 0x00001FF4 +cmkd_dots: EQU 0x00001DBF +cmkd_zf: EQU 0x00001DA9 +cmkd_have_cl: EQU 0x00001D7B +cmkd_alloc: EQU 0x00001D65 +cmkd_toolong: EQU 0x00001D44 +cmkd_lendone: EQU 0x00001D48 +core_mkdir: EQU 0x00001D37 +cmk_sec_lo: EQU 0x00001D35 +cmk_sec_hi: EQU 0x00001D33 +cmk_cluster_lo: EQU 0x00001D31 +cmk_cluster_hi: EQU 0x00001D2F +cmk_name_ptr: EQU 0x00001D2D +sv512_nowrap: EQU 0x00001D29 +lv512_nowrap: EQU 0x00001CFC +lv512_advance: EQU 0x00001CE6 +lv512_eoc: EQU 0x00001D09 +lv512_done: EQU 0x00001D00 +lv512_loop: EQU 0x00001CC5 +core_load512: EQU 0x00001CBA +lv512_count: EQU 0x00001CB9 +lv512_off: EQU 0x00001CB7 +lv512_page: EQU 0x00001CB6 +sv512_advance: EQU 0x00001D13 +sv512_eoc: EQU 0x00001CAC +sv512_done: EQU 0x00001CA3 +sv512_loop: EQU 0x00001C82 +core_save512: EQU 0x00001C77 +sv512_count: EQU 0x00001C76 +page1_port: EQU 0x000011AF +core_fentry: EQU 0x00001C62 +core_setdir: EQU 0x00001C55 +core_setroot: EQU 0x00001C48 +active_dir_lo: EQU 0x00001C46 +active_dir_hi: EQU 0x00001C44 +fbn_tm_yes: EQU 0x00001C06 +fbn_tm_short: EQU 0x00001BF4 +fbn_acc_null: EQU 0x00001BC6 +fbn_acc_pad: EQU 0x00001BD1 +fbn_acc_charloop: EQU 0x00001B9A +fbn_acc_mul: EQU 0x00001B8A +fbn_acc_mul_done: EQU 0x00001B90 +fbn_matched_setrun: EQU 0x00001B5B +fbn_matched_norun: EQU 0x00001B58 +fbn_accumulate_lfn: EQU 0x00001B61 +fbn_lfn_cont: EQU 0x00001B22 +fbn_next: EQU 0x00001B2D +fbn_matched: EQU 0x00001B46 +fbn_try_match: EQU 0x00001BD4 +fbn_is_lfn: EQU 0x00001B14 +fbn_deleted: EQU 0x00001B27 +fbn_notfound_pop: EQU 0x00001B43 +fbn_entloop: EQU 0x00001AF3 +fbn_notfound: EQU 0x00001B44 +fbn_sector_loop: EQU 0x00001AD3 +find_by_name: EQU 0x00001AC3 +fbn_match_run_start_lo: EQU 0x00001AC1 +fbn_match_index_lo: EQU 0x00001ABF +fbn_run_start_lo: EQU 0x00001ABD +fbn_cur_index_lo: EQU 0x00001ABB +fbn_render_buf: EQU 0x00001AAE +fbn_attr: EQU 0x00001AAD +fbn_size_lo: EQU 0x00001AAB +fbn_size_hi: EQU 0x00001AA9 +fbn_cluster_hi: EQU 0x00001AA5 +fbn_acc_dest: EQU 0x00001AA3 +fbn_lfn_seen: EQU 0x00001AA2 +fbn_lfn_checksum: EQU 0x00001AA1 +fbn_lfn_buf: EQU 0x00001A38 +fbn_name_ptr: EQU 0x00001A36 +rsn_ext: EQU 0x00001A28 +rsn_done: EQU 0x00001A32 +rsn_ext_prep: EQU 0x00001A1D +rsn_base_skip: EQU 0x00001A1A +rsn_base: EQU 0x00001A0E +render_shortname: EQU 0x00001A0B +seci_eq: EQU 0x00001A09 +seci_ne: EQU 0x00001A06 +str_eq_ci: EQU 0x000019F3 +to_upper: EQU 0x000019EA +wne_w_skip_write: EQU 0x000019E1 +wne_w_notinrange: EQU 0x000019B3 +wne_w_entloop: EQU 0x0000197D +wne_w_fail: EQU 0x000019E7 +wne_w_continue: EQU 0x00001948 +wne_w_done: EQU 0x00001946 +wne_w_sector_loop: EQU 0x00001931 +write_name_entries: EQU 0x00001928 +wne_w_this_sec_lo: EQU 0x00001926 +wne_w_this_sec_hi: EQU 0x00001924 +wne_w_dirty: EQU 0x00001923 +wne_w_entcount: EQU 0x00001922 +wne_w_entptr: EQU 0x00001920 +ffr_no_hi_carry: EQU 0x000018A0 +ffr_free_cont: EQU 0x00001869 +ffr_advance_index: EQU 0x0000188A +ffr_free: EQU 0x00001853 +ffr_entloop: EQU 0x00001844 +ffr_fail: EQU 0x000018AD +ffr_grow_dir: EQU 0x000018B0 +ffr_have_sector: EQU 0x0000182C +ffr_sector_loop: EQU 0x0000181D +find_free_run: EQU 0x0000180D +wne_free_index_lo: EQU 0x0000180B +wne_free_index_hi: EQU 0x00001809 +cmkd_lenloop: EQU 0x00001D3C +wne_cur_index_lo: EQU 0x00001807 +wne_cur_index_hi: EQU 0x00001805 +wne_run_start_lo: EQU 0x00001803 +wne_run_start_hi: EQU 0x00001801 +wne_run_len: EQU 0x00001800 +ble_char_nextk: EQU 0x000017CD +ble_char_hi0: EQU 0x000017CB +ble_char_have: EQU 0x000017B1 +ble_char_isreal: EQU 0x000017A7 +ble_char_isnull: EQU 0x000017B0 +ble_lfn_next: EQU 0x000017D0 +ble_charloop: EQU 0x00001788 +ble_mul13done: EQU 0x00001783 +ble_mul13: EQU 0x00001778 +ble_seqset: EQU 0x0000175A +ble_notlast: EQU 0x00001759 +ble_lfn_done: EQU 0x000017D7 +ble_lfn_loop: EQU 0x00001722 +ble_divdone: EQU 0x0000170B +ble_divloop: EQU 0x00001700 +ble_multi: EQU 0x000016F7 +build_lfn_entries: EQU 0x000016D2 +ble_entry_ptr: EQU 0x000016D0 +ble_charpos: EQU 0x000016CE +ble_j: EQU 0x000016CD +ble_checksum: EQU 0x000016CC +ble_lfn_count: EQU 0x000016CB +ble_name_ptr: EQU 0x000016C9 +lfn_char_dest: EQU 0x000016BC +wne_slot_count: EQU 0x000016BB +wne_entries_buf: EQU 0x0000159B +wne_max_lfn: EQU 0x00000008 +btd_done: EQU 0x0000158F +btd_loop: EQU 0x00001586 +gus_have_candidate: EQU 0x00001565 +bin_to_2dig: EQU 0x00001584 +gus_try_1digit: EQU 0x0000154D +gus_try: EQU 0x00001528 +gus_ok: EQU 0x00001582 +gus_needs_suffix: EQU 0x00001523 +generate_unique_shortname: EQU 0x00001504 +gus_suffix: EQU 0x00001503 +fn83_ext_full: EQU 0x000014F5 +fn83_ext_bad: EQU 0x000014FC +fn83_ext_loop: EQU 0x000014D7 +fn83_ext_go: EQU 0x000014C0 +fn83_base_full: EQU 0x000014A5 +fn83_base_bad: EQU 0x000014AC +fn83_ext: EQU 0x000014B3 +fn83_base_loop: EQU 0x00001486 +fn83_have_baselen: EQU 0x0000147B +fn83_scan_next: EQU 0x00001439 +fn83_scandone: EQU 0x0000143D +fn83_scan: EQU 0x0000142D +filter_name_to_83: EQU 0x00001422 +fn83_charbuf: EQU 0x00001421 +sn_base_len: EQU 0x0000141F +sn_dot_pos: EQU 0x0000141D +sn_name_len: EQU 0x0000141B +sn_needs_lfn: EQU 0x0000141A +sn_ext: EQU 0x00001417 +sn_base: EQU 0x0000140F +cc_symyes: EQU 0x0000140A +cc_no: EQU 0x0000140D +cc_symloop: EQU 0x00001400 +cc_sym: EQU 0x000013FC +cc_yes: EQU 0x0000140B +cc_dig: EQU 0x000013F4 +cc_up: EQU 0x000013EC +classify_char: EQU 0x000013E2 +cc_symbols: EQU 0x000013D1 +lfnck_loop: EQU 0x000013CB +lfn_checksum: EQU 0x000013C8 +stamp_dir_entry_datetime: EQU 0x000011B1 +rtc_to_fat_datetime: EQU 0x00001135 +rtc_cached: EQU 0x00001134 +fat_time: EQU 0x00001132 +fat_date: EQU 0x00001130 +bcd_to_bin: EQU 0x0000111B +rtc_field_to_bin: EQU 0x0000110F +rtc_dm: EQU 0x0000110E +rtc_year: EQU 0x0000109D +rtc_month: EQU 0x0000109C +rtc_date: EQU 0x0000109B +rtc_hour: EQU 0x0000109A +rtc_min: EQU 0x00001099 +rtc_sec: EQU 0x00001098 +sv512_off: EQU 0x00001C74 +sv512_page: EQU 0x00001C73 +strm_write_have2: EQU 0x00001083 +stream_write_sector_from: EQU 0x0000101F +read_rtc_datetime: EQU 0x0000109E +strm_write_have: EQU 0x0000100A +stream_write_sector: EQU 0x00000F9C +stream_read_sector_to: EQU 0x00000D81 +stream_data_save: EQU 0x00000D9C +strm_read_eoc: EQU 0x00000D7E +stream_read_sector: EQU 0x00000D4B +strm_adv_same: EQU 0x00000D45 +strm_adv_cross: EQU 0x00000D1E +strm_adv_test_z: EQU 0x00000D16 +strm_advance: EQU 0x00000D09 +strm_calc_sector: EQU 0x00000CE1 +strm_open_nz: EQU 0x00000CCD +stream_open: EQU 0x00000CB3 +strm_sector_lo: EQU 0x00000CB1 +strm_sector_hi: EQU 0x00000CAF +stream_eoc: EQU 0x00000CAE +stream_sec_in_cluster: EQU 0x00000CAD +stream_cluster_lo: EQU 0x00000CAB +stream_cluster_hi: EQU 0x00000CA9 +wde_next: EQU 0x00000C78 +wde_slot: EQU 0x00000C89 +wde_entloop: EQU 0x00000C58 +wde_fail: EQU 0x00000CA6 +wde_sec_loop: EQU 0x00000C43 +wde_cluster: EQU 0x00000C2E +write_dir_entry: EQU 0x00000C2E +wde_slotptr: EQU 0x00000C2C +wde_sector_lo: EQU 0x00000C2A +wde_sector_hi: EQU 0x00000C28 +wde_remaining: EQU 0x00000C27 +dir_entry_buf: EQU 0x00000C07 +zfc_loop: EQU 0x00000BF5 +zfc_fail: EQU 0x00000C04 +zero_fill_cluster: EQU 0x00000BCF +zfc_remaining: EQU 0x00000BCE +ffc_nowrap: EQU 0x00000BBF +ffc_nsv2: EQU 0x00000B99 +ffc_nsv: EQU 0x00000B93 +ffc_entnext: EQU 0x00000BA3 +ffc_entloop: EQU 0x00000B5C +ffc_fail: EQU 0x00000BCB +ffc_from2: EQU 0x00000B12 +ffc_scan: EQU 0x00000B21 +ffc_use_hint: EQU 0x00000AF8 +find_free_cluster: EQU 0x00000ADD +next_search_valid: EQU 0x00000AD8 +ffc_sectors_read: EQU 0x00000AD6 +ffc_count: EQU 0x00000AD5 +ffc_ptr: EQU 0x00000AD3 +free_cluster_lo: EQU 0x00000AD1 +free_cluster_hi: EQU 0x00000ACF +next_search_hi: EQU 0x00000AD9 +next_search_lo: EQU 0x00000ADB +wfi_skip_count: EQU 0x00000AB3 +write_fsinfo_hint: EQU 0x00000A78 +read_fsinfo_hint: EQU 0x00000A19 +fsinfo_valid: EQU 0x00000A18 +fsinfo_hint_lo: EQU 0x00000A16 +fsinfo_hint_hi: EQU 0x00000A14 +wfe_loop: EQU 0x000009DD +wfe_fail: EQU 0x00000A0F +write_fat_entry: EQU 0x0000098E +wfe_sector_lo: EQU 0x0000098C +wfe_sector_hi: EQU 0x0000098A +wfe_remaining: EQU 0x00000989 +new_val_lo: EQU 0x00000987 +new_val_hi: EQU 0x00000985 +gnc_have_next: EQU 0x00000974 +gnc_end: EQU 0x0000096E +nxt_hi: EQU 0x00000927 +nxt_lo: EQU 0x00000925 +ctf_bad: EQU 0x00000921 +ctf_shr: EQU 0x000008D2 +cluster_to_fatpos: EQU 0x000008C4 +gnc_inoff: EQU 0x000008C3 +gnc_fatsec_lo: EQU 0x000008C1 +gnc_fatsec_hi: EQU 0x000008BF +gnc_lo: EQU 0x000008BD +gnc_hi: EQU 0x000008BB +c2s_loop: EQU 0x00000881 +c2s_done: EQU 0x0000089A +cur_cluster_hi: EQU 0x000008B7 +cur_cluster_lo: EQU 0x000008B9 +c2s_prod_hi: EQU 0x00000854 +c2s_prod_lo: EQU 0x00000852 +c2s_hi: EQU 0x00000850 +c2s_lo: EQU 0x0000084E +chain_ended: EQU 0x00000924 +get_next_cluster: EQU 0x00000929 +fza_next: EQU 0x00000838 +fza_inc_loop: EQU 0x00000830 +fza_done: EQU 0x0000084B +fza_stop: EQU 0x00000849 +fza_loop: EQU 0x0000081A +fza_sector_lo: EQU 0x00000856 +fza_sector_hi: EQU 0x00000858 +cluster_to_sector: EQU 0x0000085A +fza_cluster: EQU 0x00000807 +find_zifi_all: EQU 0x00000807 +fza_remaining: EQU 0x00000806 +fz_found: EQU 0x000007D1 +fz_cmpfail: EQU 0x000007C4 +fz_cmp: EQU 0x000007B8 +fz_skip: EQU 0x000007C6 +fz_end: EQU 0x000007CE +fz_loop: EQU 0x000007A9 +find_zifi: EQU 0x000007A4 +target_name: EQU 0x00000799 +zifi_size: EQU 0x00000797 +fbn_acc_nocs: EQU 0x00001B75 +zifi_size_hi: EQU 0x00000795 +zifi_cluster: EQU 0x00000793 +zifi_cluster_hi: EQU 0x00000791 +root_dir_hi: EQU 0x0000078F +root_dir_lo: EQU 0x0000078D +mul2_loop: EQU 0x0000070E +mul2_done: EQU 0x00000727 +prod2_hi: EQU 0x0000078B +prod2_lo: EQU 0x00000789 +rc2_hi: EQU 0x00000787 +rc2_lo: EQU 0x00000785 +data_start_hi: EQU 0x00000783 +data_start_lo: EQU 0x00000781 +mul1_loop: EQU 0x000006AF +mul1_done: EQU 0x000006C8 +prod_hi: EQU 0x0000077F +prod_lo: EQU 0x0000077D +root_cluster_lo: EQU 0x00000779 +root_cluster_hi: EQU 0x0000077B +fatsz32_lo: EQU 0x00000775 +fatsz32_hi: EQU 0x00000777 +sectors_per_cluster: EQU 0x00000774 +num_fats: EQU 0x00000773 +fsinfo_sector: EQU 0x00000A12 +reserved_sectors: EQU 0x00000771 +total_sectors_hi: EQU 0x0000076B +total_sectors_lo: EQU 0x00000769 +parse_bpb: EQU 0x00000635 +diag_buf: EQU 0x00000621 +vf_ok: EQU 0x0000061C +vf_bad: EQU 0x0000061E +verify_fat32: EQU 0x000005DC +dp_fallback: EQU 0x000005C0 +dp_found: EQU 0x00000591 +dp_entry: EQU 0x000005DA +dp_loop: EQU 0x00000577 +dp_none: EQU 0x0000058F +detect_partition: EQU 0x0000054C +sec0_copy: EQU 0x0000034C +add_addtop: EQU 0x0000033C +addtop_lo: EQU 0x0000033A +addtop_hi: EQU 0x00000338 +cmdx: EQU 0x00000305 +do_cmd55: EQU 0x000002DF +cmdo: EQU 0x000002FF +send_frame: EQU 0x000002E7 +cmd16: EQU 0x000002BF +cmd08: EQU 0x000002B9 +cmd00: EQU 0x000002B3 +sdwrite_lba_from: EQU 0x0000022E +sdwrite_lba: EQU 0x0000022B +sdwrite_multi_stop: EQU 0x00000216 +sdwrite_multi_block_from: EQU 0x000001F1 +sdwrite_multi_block: EQU 0x000001EE +csl: EQU 0x00000252 +wait: EQU 0x00000267 +sdwrite_multi_start: EQU 0x000001A9 +wtdo: EQU 0x0000027C +sdread_fail: EQU 0x000001A0 +resp: EQU 0x00000292 +sdread_common: EQU 0x00000187 +sdread_lba_oob: EQU 0x000001A6 +send_cmd_lba: EQU 0x000001C1 +cmdlba_op: EQU 0x000001C0 +sdread_lba_to: EQU 0x0000017C +sdread_lba: EQU 0x00000179 +dma_send_ext: EQU 0x00000159 +dma_wait: EQU 0x00000173 +dma_recv_ext: EQU 0x0000013D +dma_set_addr_ext: EQU 0x00000127 +sdbuf: EQU 0x000011C8 +set_dma_sdbuf: EQU 0x0000011B +dma_xfer_page: EQU 0x0000011A +dma_xfer_off: EQU 0x00000118 +dma_ctr: EQU 0x000027AF +dma_num: EQU 0x000028AF +dma_len: EQU 0x000026AF +dma_saddrx: EQU 0x00001CAF +dma_saddrh: EQU 0x00001BAF +dma_saddrl: EQU 0x00001AAF +dma_daddrx: EQU 0x00001FAF +dma_daddrh: EQU 0x00001EAF +dma_daddrl: EQU 0x00001DAF +own_page: EQU 0x0000000F +cca_shift: EQU 0x000000EE +compute_card_arg: EQU 0x000000DC +card_arg: EQU 0x000000D8 +sd_lba_max_hi: EQU 0x0000076F +sd_lba_max_lo: EQU 0x0000076D +lba_guard_check: EQU 0x000000B9 +lba_arg: EQU 0x000000B5 +set_lba32: EQU 0x000000A4 +sd_block_addressed: EQU 0x000000D7 +sd_v2_ocr_rest: EQU 0x00000093 +sdinit_ok: EQU 0x00000099 +do_cmd16: EQU 0x000002D1 +do_cmd1: EQU 0x000002D7 +sd_fbs: EQU 0x0000005D +do_acmd41: EQU 0x00000318 +sd_v2: EQU 0x00000067 +do_cmd8: EQU 0x000002CB +do_cmd0: EQU 0x000002C5 +sdinit_fail: EQU 0x0000009E +cycl: EQU 0x000002A6 +csh: EQU 0x0000023F +sdinit: EQU 0x00000000 +fbn_cluster_lo: EQU 0x00001AA7