#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 g_aDisassemblerData; #endif