Mercurial > hg-old > index.cgi
diff lwdisasm/lwdisasm.h @ 408:2a94b2e64621
Started creation of lwdisasm
author | lost@l-w.ca |
---|---|
date | Mon, 02 Aug 2010 13:24:07 -0600 |
parents | |
children | cba03436c720 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lwdisasm/lwdisasm.h Mon Aug 02 13:24:07 2010 -0600 @@ -0,0 +1,95 @@ +/* +lwdisasm.h + +Copyright © 2010 William Astle + +This file is part of LWTOOLS. + +LWTOOLS is free software: you can redistribute it and/or modify it under the +terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +more details. + +You should have received a copy of the GNU General Public License along with +this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef ____lwdisasm_h_seen____ +#define ____lwdisasm_h_seen____ + +#include <stdint.h> + +enum +{ + INPUT_RAW = 0, + INPUT_DECB, + INPUT_OBJ, + INPUT_OS9 +}; + +enum +{ + TARGET_6809 = 0, + TARGET_6309 +}; + +enum +{ + ADDR_DIR = 0, + ADDR_EXT, + ADDR_IND, + ADDR_IMM8, + ADDR_IMM16, + ADDR_IMM32, + ADDR_INH, + ADDR_RTOR, + ADDR_PSHPUL, + ADDR_IMM8DIR, + ADDR_IMM8IND, + ADDR_IMM8EXT, + ADDR_BITBIT, + ADDR_REL8, + ADDR_REL16, + ADDR_PAGE1, + ADDR_PAGE2, + ADDR_TFMPP, + ADDR_TFMMM, + ADDR_TFMPC, + ADDR_TFMCP +}; + +typedef struct disasmstate_s +{ + int input_type; + int debug_level; + char *output_file; + char *input_file; + int target; + uint8_t *filedata; // the file data + long filelen; // length of the file data + int base; // base address (raw) + int entry; // entry address +} disasmstate_t; + + + +typedef struct instab_s +{ + char *op; // mneumonic + int addrmode; // addressing mode +} instab_t; + +extern instab_t page0_6809[]; +extern instab_t page1_6809[]; +extern instab_t page2_6809[]; + +extern instab_t page0_6309[]; +extern instab_t page1_6309[]; +extern instab_t page2_6309[]; + +#endif // ____lwdisasm_h_seen____