AppleWin/source/Debugger/Debugger_DisassemblerData.h
mpohoreski 5f10818f04 2.7.0.0 Released with Applewin 1.19.1.x
.9 Fixed: Renamed ambigious command 'DL' to 'B' to list all bytes being treated as data
          Renamed command: 'B' to 'Z' as an alias to treat byte(s) as data
.8 Fixed: Define Code 'X' wasn't removing entries
.7 Fixed: DATA1 was using call win setup for code, not data.
.6 Cleanup of command table to have the proper internal command enum.
		D      // CMD_MEM_MINI_DUMP_HEX_1 moved to alias section
		M1     // CMD_MEM_MINI_DUMP_HEX_1 moved to alias section
		M2     // CMD_MEM_MINI_DUMP_HEX_2 moved to alias section
		TEXT81 // CMD_VIEW_TEXT81         <- CMD_VIEW_TEXT8X
		TEXT82 // CMD_VIEW_TEXT82         <- CMD_VIEW_TEXT8X
		W      // CMD_WATCH               <- CMD_WATCH_ADD
.5 Added: Internal consistency checking for commands and their internal command enum.
.4 Fixed: Added customer assembler type and debugger disassembly display uses variable
          instead of always being hard-coded to Merlin directives.
.5 Fixed: Data disassembler help -- was using wrong command help offset due to wrong order of commands.
.3 Fixed: Assembler now accepts lower-case mnemonics
2010-12-16 06:43:05 +00:00

61 lines
1.6 KiB
C

#ifndef DEBUGGER_DISASSEMBLERDATA_H
#define DEBUGGER_DISASSEMBLERDATA_H
enum NopcodeType_e
{
_NOP_REMOVED
,NOP_BYTE_1 // 1 bytes/line
,NOP_BYTE_2 // 2 bytes/line
,NOP_BYTE_4 // 4 bytes/line
,NOP_BYTE_8 // 8 bytes/line
,NOP_WORD_1 // 1 words/line
,NOP_WORD_2 // 2 words/line
,NOP_WORD_4 // 4 words/line
,NOP_ADDRESS// 1 word/line
,NOP_HEX
,NOP_CHAR
,NOP_STRING_ASCII // Low Ascii
,NOP_STRING_APPLE // High Ascii
,NOP_STRING_APPLESOFT // Mixed Low/High
,NOP_FAC
,NOP_SPRITE
,NUM_NOPCODE_TYPES
};
// Disassembler Data
// type symbol[start:end]
struct DisasmData_t
{
char sSymbol[ MAX_SYMBOLS_LEN+1 ];
char eElementType ; // NopcodeType_e
WORD iDirective ; // Assembler directive -> nopcode
WORD nStartAddress; // link to block [start,end)
WORD nEndAddress ;
WORD nArraySize ; // Total bytes
// WORD nBytePerRow ; // 1, 8
// with symbol lookup
char bSymbolLookup ;
WORD nTargetAddress;
WORD nSpriteW;
WORD nSpriteH;
};
Update_t _CmdDisasmDataDefByteX (int nArgs);
Update_t _CmdDisasmDataDefWordX (int nArgs);
// Data Disassembler ______________________________________________________________________________
int Disassembly_FindOpcode( WORD nAddress );
DisasmData_t* Disassembly_IsDataAddress( WORD nAddress );
void Disassembly_AddData( DisasmData_t tData);
void Disassembly_GetData ( WORD nBaseAddress, const DisasmData_t *pData_, DisasmLine_t & line_ );
void Disassembly_DelData( DisasmData_t tData);
DisasmData_t* Disassembly_Enumerate( DisasmData_t *pCurrent = NULL );
extern vector<DisasmData_t> g_aDisassemblerData;
#endif