annotate upd78k2_dis.h @ 2717:04007ac9ee3b

Add upd78k2 disassembler
author Michael Pavone <pavone@retrodev.com>
date Wed, 16 Jul 2025 07:36:01 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2717
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #ifndef UPD78K2_DIS_H_
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #define UPD78K2_DIS_H_
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 #include <stdint.h>
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 #include "disasm.h"
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 enum {
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 UPD_REF_NONE,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 UPD_REF_OP,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 UPD_REF_2OP,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 UPD_REF_BRANCH,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 UPD_REF_COND_BRANCH,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 UPD_REF_OP_BRANCH,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 UPD_REF_CALL,
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 UPD_REF_CALL_TABLE
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 };
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 typedef struct {
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 uint16_t address;
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 uint16_t address2;
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 uint8_t ref_type;
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 } upd_address_ref;
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 typedef uint8_t (*upd_fetch_fun)(uint16_t address, void *data);
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 uint16_t upd78k2_disasm(char *dst, upd_address_ref *ref, uint16_t address, upd_fetch_fun fetch, void *data, disasm_context *context);
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27
04007ac9ee3b Add upd78k2 disassembler
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 #endif //UPD78K2_DIS_H_