[General][BUILD] Use -D_UNICODE to build.
endif()
add_definitions(-D_USE_QT5)
+add_definitions(-D_UNICODE)
if(USE_QT5_4_APIS)
add_definitions(-D_USE_QT_5_4)
endif()
add_definitions(-D_USE_QT5)
+add_definitions(-D_UNICODE)
if(USE_QT5_4_APIS)
add_definitions(-D_USE_QT_5_4)
+3/30/2017
+
+[COMMON] add functions to convert char, wchar_t, and _TCHAR to each other
+[COMMON] add _fgetts, _ftprintf, my_ftprintf_s, and my_swprintf_s
+[COMMON/FILEIO] add Fgetts and Ftprintf for _TCHAR
+[COMMON/FILEIO] fix functions using ZLIB for _UNICODE case
+[EMU/DEBUGGER] fix for _UNICODE case
+[WINMAIN] improve to update status only when status is changed
+
+[VM/HUC6280] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
+[VM/I8080] improve disassembler to support symbols
+[VM/M6502] support debugger and disassembler (thanks MAME)
+[VM/MCS48] improve disassembler to support symbols
+[VM/TMS9995] fix disassembler for _UNICODE case
+[VM/UPD7810] improve disassembler to support symbols
+[VM/UPD7810] fix disassembler for _UNICODE case
+
+[BABBAGE2ND] support debugger and save/load state
+[FAMILYBASIC] support debugger
+[YS6464A] support debugger and save/load state
+
+
3/28/2017
[COMMON] add _tcscat and my_tcscat_s
return result;
}
+int DLL_PREFIX my_swprintf_s(wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ int result = vswprintf(buffer, format, ap);
+ va_end(ap);
+ return result;
+}
+
int DLL_PREFIX my_stprintf_s(_TCHAR *buffer, size_t sizeOfBuffer, const _TCHAR *format, ...)
{
va_list ap;
return path[output_index];
}
+const wchar_t *DLL_PREFIX char_to_wchar(const char *cs)
+{
+ // char to wchar_t
+ static wchar_t ws[4096];
+
+#ifdef _WIN32
+ mbstowcs(ws, cs, strlen(cs));
+#elif defined(_USE_QT)
+ mbstowcs(ws, cs, strlen(cs));
+#else
+ // write code for your environment
+#endif
+ return ws;
+}
+
+const char *DLL_PREFIX wchar_to_char(const wchar_t *ws)
+{
+ // wchar_t to char
+ static char cs[4096];
+
+#ifdef _WIN32
+ wcstombs(cs, ws, wcslen(ws));
+#elif defined(_USE_QT)
+ wcstombs(cs, ws, wcslen(ws));
+#else
+ // write code for your environment
+#endif
+ return cs;
+}
+
+const _TCHAR *DLL_PREFIX char_to_tchar(const char *cs)
+{
+#if defined(_UNICODE) && defined(SUPPORT_TCHAR_TYPE)
+ // char to wchar_t
+ return char_to_wchar(cs);
+#else
+ // char to char
+ return cs;
+#endif
+}
+
+const char *DLL_PREFIX tchar_to_char(const _TCHAR *ts)
+{
+#if defined(_UNICODE) && defined(SUPPORT_TCHAR_TYPE)
+ // wchar_t to char
+ return wchar_to_char(ts);
+#else
+ // char to char
+ return ts;
+#endif
+}
+
+const _TCHAR *DLL_PREFIX wchar_to_tchar(const wchar_t *ws)
+{
+#if defined(_UNICODE) && defined(SUPPORT_TCHAR_TYPE)
+ // wchar_t to wchar_t
+ return ws;
+#else
+ // wchar_t to char
+ return wchar_to_char(ws);
+#endif
+}
+
+const wchar_t *DLL_PREFIX tchar_to_wchar(const _TCHAR *ts)
+{
+#if defined(_UNICODE) && defined(SUPPORT_TCHAR_TYPE)
+ // wchar_t to wchar_t
+ return ts;
+#else
+ // char to wchar_t
+ return char_to_wchar(ts);
+#endif
+}
+
const _TCHAR *DLL_PREFIX create_string(const _TCHAR* format, ...)
{
static _TCHAR buffer[8][1024];
#endif
#ifndef SUPPORT_TCHAR_TYPE
+ #ifndef _fgetts
+ #define _fgetts fgets
+ #endif
+ #ifndef _ftprintf
+ #define _ftprintf printf
+ #endif
#ifndef _tfopen
#define _tfopen fopen
#endif
char * DLL_PREFIX my_strtok_s(char *strToken, const char *strDelimit, char **context);
_TCHAR * DLL_PREFIX my_tcstok_s(_TCHAR *strToken, const char *strDelimit, _TCHAR **context);
#define my_fprintf_s fprintf
+ #define my_ftprintf_s fprintf
int DLL_PREFIX my_sprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, ...);
+ int DLL_PREFIX my_swprintf_s(wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format, ...);
int DLL_PREFIX my_stprintf_s(_TCHAR *buffer, size_t sizeOfBuffer, const _TCHAR *format, ...);
int DLL_PREFIX my_vsprintf_s(char *buffer, size_t numberOfElements, const char *format, va_list argptr);
int DLL_PREFIX my_vstprintf_s(_TCHAR *buffer, size_t numberOfElements, const _TCHAR *format, va_list argptr);
#define my_strtok_s strtok_s
#define my_tcstok_s _tcstok_s
#define my_fprintf_s fprintf_s
+ #define my_ftprintf_s _ftprintf_s
#define my_sprintf_s sprintf_s
+ #define my_swprintf_s swprintf_s
#define my_stprintf_s _stprintf_s
#define my_vsprintf_s vsprintf_s
#define my_vstprintf_s _vstprintf_s
void get_long_full_path_name(const _TCHAR* src, _TCHAR* dst, size_t dst_len);
const _TCHAR* get_parent_dir(const _TCHAR* file);
+// string
+const _TCHAR *DLL_PREFIX create_string(const _TCHAR* format, ...);
+const wchar_t *DLL_PREFIX char_to_wchar(const char *cs);
+const char *DLL_PREFIX wchar_to_char(const wchar_t *ws);
+const _TCHAR *DLL_PREFIX char_to_tchar(const char *cs);
+const char *DLL_PREFIX tchar_to_char(const _TCHAR *ts);
+const _TCHAR *DLL_PREFIX wchar_to_tchar(const wchar_t *ws);
+const wchar_t *DLL_PREFIX tchar_to_wchar(const _TCHAR *ts);
+
// misc
-const _TCHAR * DLL_PREFIX create_string(const _TCHAR* format, ...);
uint32_t DLL_PREFIX get_crc32(uint8_t data[], int size);
uint16_t DLL_PREFIX jis_to_sjis(uint16_t jis);
#define TO_BCD_LO(v) ((v) % 10)
#define TO_BCD_HI(v) (int)(((v) % 100) / 10)
+// time
#define LEAP_YEAR(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
#define dll_cur_time_t DLL_PREFIX_I struct cur_time_s
void DLL_PREFIX get_host_time(cur_time_t* cur_time);
// symbol
-
typedef struct symbol_s {
uint32_t addr;
_TCHAR *name;
my_tcscpy_s(tmp, 1024, str);
for(symbol_t* symbol = first_symbol; symbol; symbol = symbol->next_symbol) {
- if(stricmp(symbol->name, str) == 0) {
+ if(_tcsicmp(symbol->name, str) == 0) {
return symbol->addr;
}
}
while(!p->request_terminate && !enter_done) {
if(cmdfile != NULL) {
- if(cmdfile->Fgets(command, array_length(command)) != NULL) {
+ if(cmdfile->Fgetts(command, array_length(command)) != NULL) {
while(_tcslen(command) > 0 && (command[_tcslen(command) - 1] == 0x0d || command[_tcslen(command) - 1] == 0x0a)) {
command[_tcslen(command) - 1] = _T('\0');
}
if(check_file_extension(debugger->file_path, _T(".sym"))) {
if(fio->Fopen(debugger->file_path, FILEIO_READ_ASCII)) {
debugger->release_symbols();
- char line[1024];
- while(fio->Fgets(line, sizeof(line)) != NULL) {
- char *next = NULL;
- char *addr = my_strtok_s(line, "\t #$*,;", &next);
+ _TCHAR line[1024];
+ while(fio->Fgetts(line, array_length(line)) != NULL) {
+ _TCHAR *next = NULL;
+ _TCHAR *addr = my_tcstok_s(line, _T("\t #$*,;"), &next);
while(addr != NULL) {
- if(strlen(addr) > 0) {
- char *name = my_strtok_s(NULL, "\t #$*,;", &next);
+ if(_tcslen(addr) > 0) {
+ _TCHAR *name = my_tcstok_s(NULL, _T("\t #$*,;"), &next);
while(name != NULL) {
- while(strlen(name) > 0 && (name[strlen(name) - 1] == 0x0d || name[strlen(name) - 1] == 0x0a)) {
- name[strlen(name) - 1] = _T('\0');
+ while(_tcslen(name) > 0 && (name[_tcslen(name) - 1] == 0x0d || name[_tcslen(name) - 1] == 0x0a)) {
+ name[_tcslen(name) - 1] = _T('\0');
}
- if(strlen(name) > 0) {
+ if(_tcslen(name) > 0) {
debugger->add_symbol(my_hexatoi(NULL, addr), name);
break;
}
- name = my_strtok_s(NULL, "\t #$*,;", &next);
+ name = my_tcstok_s(NULL, _T("\t #$*,;"), &next);
}
}
- addr = my_strtok_s(NULL, "\t #$*,;", &next);
+ addr = my_tcstok_s(NULL, _T("\t #$*,;"), &next);
}
}
fio->Fclose();
case FILEIO_READ_BINARY:
{
//memset(path, 0x00, _MAX_PATH);
- gz = gzopen(file_path, _T("rb"));
+ gz = gzopen(tchar_to_char(file_path), _T("rb"));
if(gz != NULL) {
my_tcscpy_s(path, _MAX_PATH, get_file_path_without_extensiton(file_path));
return true;
}
break;
// case FILEIO_WRITE_BINARY:
-// return ((gz = gzopen(file_path, _T("wb"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("wb"))) != NULL);
// case FILEIO_READ_WRITE_BINARY:
-// return ((gz = gzopen(file_path, _T("r+b"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("r+b"))) != NULL);
// case FILEIO_READ_WRITE_NEW_BINARY:
-// return ((gz = gzopen(file_path, _T("w+b"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("w+b"))) != NULL);
case FILEIO_READ_ASCII:
{
- gz = gzopen(file_path, _T("r"));
+ gz = gzopen(tchar_to_char(file_path), _T("r"));
if(gz != NULL) {
my_tcscpy_s(path, _MAX_PATH, get_file_path_without_extensiton(file_path));
return true;
}
break;
// case FILEIO_WRITE_ASCII:
-// return ((gz = gzopen(file_path, _T("w"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("w"))) != NULL);
// case FILEIO_WRITE_APPEND_ASCII:
-// return ((gz = gzopen(file_path, _T("a"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("a"))) != NULL);
// case FILEIO_READ_WRITE_ASCII:
-// return ((gz = gzopen(file_path, _T("r+"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("r+"))) != NULL);
// case FILEIO_READ_WRITE_NEW_ASCII:
-// return ((gz = gzopen(file_path, _T("w+"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("w+"))) != NULL);
// case FILEIO_READ_WRITE_APPEND_ASCII:
-// return ((gz = gzopen(file_path, _T("a+"))) != NULL);
+// return ((gz = gzopen(tchar_to_char(file_path), _T("a+"))) != NULL);
}
} else
#endif
}
}
+_TCHAR *FILEIO::Fgetts(_TCHAR *str, int n)
+{
+#ifdef USE_ZLIB
+ if(gz != NULL) {
+#if defined(_UNICODE) && defined(SUPPORT_TCHAR_TYPE)
+ char *str_mb = (char *)calloc(sizeof(char), n + 1);
+ gzgets(gz, str_mb, n);
+ my_swprintf_s(str, n, L"%s", char_to_wchar(str_mb));
+ free(str_mb);
+ return str;
+#else
+ return gzgets(gz, str, n);
+#endif
+ } else
+#endif
+ return _fgetts(str, n, fp);
+}
+
int FILEIO::Fprintf(const char* format, ...)
{
va_list ap;
}
}
+int FILEIO::Ftprintf(const _TCHAR* format, ...)
+{
+ va_list ap;
+ _TCHAR buffer[1024];
+
+ va_start(ap, format);
+ my_vstprintf_s(buffer, 1024, format, ap);
+ va_end(ap);
+
+#ifdef USE_ZLIB
+ if(gz != NULL) {
+ return gzprintf(gz, "%s", tchar_to_char(buffer));
+ } else
+#endif
+ return my_ftprintf_s(fp, _T("%s"), buffer);
+}
+
size_t FILEIO::Fread(void* buffer, size_t size, size_t count)
{
#ifdef USE_ZLIB
int Fgetc();
int Fputc(int c);
char *Fgets(char *str, int n);
+ _TCHAR *Fgetts(_TCHAR *str, int n);
int Fprintf(const char* format, ...);
+ int Ftprintf(const _TCHAR* format, ...);
size_t Fread(void* buffer, size_t size, size_t count);
size_t Fwrite(void* buffer, size_t size, size_t count);
)
set_target_properties(CSPemu_utils PROPERTIES
- SOVERSION 2.4.0
- VERSION 2.4.0
+ SOVERSION 2.4.1
+ VERSION 2.4.1
)
INSTALL(TARGETS CSPemu_utils DESTINATION ${LIBCSP_INSTALL_DIR})
endif()
MENUITEM "CPU x8", ID_CPU_POWER3
MENUITEM "CPU x16", ID_CPU_POWER4
MENUITEM SEPARATOR
+ MENUITEM "Save State", ID_SAVE_STATE
+ MENUITEM "Load State", ID_LOAD_STATE
+ MENUITEM SEPARATOR
+ MENUITEM "Debug Main CPU", ID_OPEN_DEBUGGER0
+ MENUITEM "Close Debugger", ID_CLOSE_DEBUGGER
+ MENUITEM SEPARATOR
MENUITEM "Exit", ID_EXIT
END
POPUP "RAM"
MENUITEM "Save State", ID_SAVE_STATE
MENUITEM "Load State", ID_LOAD_STATE
MENUITEM SEPARATOR
+ MENUITEM "Debug Main CPU", ID_OPEN_DEBUGGER0
+ MENUITEM "Close Debugger", ID_CLOSE_DEBUGGER
+ MENUITEM SEPARATOR
MENUITEM "Exit", ID_EXIT
END
POPUP "CMT"
MENUITEM "CPU x8", ID_CPU_POWER3
MENUITEM "CPU x16", ID_CPU_POWER4
MENUITEM SEPARATOR
+ MENUITEM "Save State", ID_SAVE_STATE
+ MENUITEM "Load State", ID_LOAD_STATE
+ MENUITEM SEPARATOR
+ MENUITEM "Debug Main CPU", ID_OPEN_DEBUGGER0
+ MENUITEM "Close Debugger", ID_CLOSE_DEBUGGER
+ MENUITEM SEPARATOR
MENUITEM "Exit", ID_EXIT
END
POPUP "RAM"
#include "../z80ctc.h"
#include "../z80pio.h"
+#ifdef USE_DEBUGGER
+#include "../debugger.h"
+#endif
+
#include "display.h"
#include "keyboard.h"
cpu->set_context_mem(memory);
cpu->set_context_io(io);
cpu->set_context_intr(ctc);
+#ifdef USE_DEBUGGER
+ cpu->set_context_debugger(new DEBUGGER(this, emu));
+#endif
// z80 family daisy chain
ctc->set_context_intr(cpu, 0);
}
// ----------------------------------------------------------------------------
+// debugger
+// ----------------------------------------------------------------------------
+
+#ifdef USE_DEBUGGER
+DEVICE *VM::get_cpu(int index)
+{
+ if(index == 0) {
+ return cpu;
+ }
+ return NULL;
+}
+#endif
+
+// ----------------------------------------------------------------------------
// draw screen
// ----------------------------------------------------------------------------
}
}
+#define STATE_VERSION 1
+
+void VM::save_state(FILEIO* state_fio)
+{
+ state_fio->FputUint32(STATE_VERSION);
+
+ for(DEVICE* device = first_device; device; device = device->next_device) {
+ device->save_state(state_fio);
+ }
+ state_fio->Fwrite(ram, sizeof(ram), 1);
+}
+
+bool VM::load_state(FILEIO* state_fio)
+{
+ if(state_fio->FgetUint32() != STATE_VERSION) {
+ return false;
+ }
+ for(DEVICE* device = first_device; device; device = device->next_device) {
+ if(!device->load_state(state_fio)) {
+ return false;
+ }
+ }
+ state_fio->Fread(ram, sizeof(ram), 1);
+ return true;
+}
+
#define MAX_DRAW_RANGES 14
#define USE_BINARY_FILE1
#define NOTIFY_KEY_DOWN
+#define USE_DEBUGGER
+#define USE_STATE
#include "../../common.h"
#include "../../fileio.h"
void reset();
void run();
+#ifdef USE_DEBUGGER
+ // debugger
+ DEVICE *get_cpu(int index);
+#endif
+
// draw screen
void draw_screen();
bool is_frame_skippable();
void update_config();
+ void save_state(FILEIO* state_fio);
+ bool load_state(FILEIO* state_fio);
// ----------------------------------------
// for each device
}
}
+#define STATE_VERSION 1
+
+void DISPLAY::save_state(FILEIO* state_fio)
+{
+ state_fio->FputUint32(STATE_VERSION);
+ state_fio->FputInt32(this_device_id);
+
+ state_fio->Fwrite(seg, sizeof(seg), 1);
+ state_fio->FputUint8(ls373);
+ state_fio->FputUint8(pio_7seg);
+ state_fio->FputUint8(pio_8bit);
+}
+
+bool DISPLAY::load_state(FILEIO* state_fio)
+{
+ if(state_fio->FgetUint32() != STATE_VERSION) {
+ return false;
+ }
+ if(state_fio->FgetInt32() != this_device_id) {
+ return false;
+ }
+ state_fio->Fread(seg, sizeof(seg), 1);
+ ls373 = state_fio->FgetUint8();
+ pio_7seg = state_fio->FgetUint8();
+ pio_8bit = state_fio->FgetUint8();
+ return true;
+}
+
void initialize();
void write_signal(int id, uint32_t data, uint32_t mask);
void event_vline(int v, int clock);
+ void save_state(FILEIO* state_fio);
+ bool load_state(FILEIO* state_fio);
// unique function
void draw_screen();
#include "../noise.h"
#include "../ym2413.h"
+#ifdef USE_DEBUGGER
+#include "../debugger.h"
+#endif
+
#include "memory.h"
#include "apu.h"
#include "ppu.h"
// cpu bus
cpu->set_context_mem(memory);
cpu->set_context_intr(dummy);
+#ifdef USE_DEBUGGER
+ cpu->set_context_debugger(new DEBUGGER(this, emu));
+#endif
// initialize all devices
for(DEVICE* device = first_device; device; device = device->next_device) {
}
// ----------------------------------------------------------------------------
+// debugger
+// ----------------------------------------------------------------------------
+
+#ifdef USE_DEBUGGER
+DEVICE *VM::get_cpu(int index)
+{
+ if(index == 0) {
+ return cpu;
+ }
+ return NULL;
+}
+#endif
+
+// ----------------------------------------------------------------------------
// draw screen
// ----------------------------------------------------------------------------
}
}
-#define STATE_VERSION 3
+#define STATE_VERSION 4
void VM::save_state(FILEIO* state_fio)
{
#define USE_SOUND_VOLUME 4
#define USE_JOYSTICK
#define USE_JOY_BUTTON_CAPTIONS
+#define USE_DEBUGGER
#define USE_STATE
#include "../../common.h"
void reset();
void run();
+#ifdef USE_DEBUGGER
+ // debugger
+ DEVICE *get_cpu(int index);
+#endif
+
// draw screen
void draw_screen();
{
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: DISPLAY : id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: DISPLAY : id=%d ver=%d\n"), this_device_id, STATE_VERSION);
{
int i;
if(this_device_id != state_fio->FgetInt32_BE()) {
return false;
}
- this->out_debug_log("Load State: DISPLAY : id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: DISPLAY : id=%d ver=%d\n"), this_device_id, version);
if(version >= 1) {
int addr;
{
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// Version 1
{
state_fio->FputUint32_BE(status);
{
uint32_t version;
version = state_fio->FgetUint32_BE();
- this->out_debug_log("Load State: id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: id=%d ver=%d\n"), this_device_id, version);
if(this_device_id != state_fio->FgetInt32_BE()) return false;
// Version 1
{
int addr;
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: MAINIO: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: MAINIO: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// Version 1
{
version = state_fio->FgetUint32_BE();
if(this_device_id != state_fio->FgetInt32_BE()) return false;
- this->out_debug_log("Load State: MAINIO: id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: MAINIO: id=%d ver=%d\n"), this_device_id, version);
if(version >= 1) {
for(addr = 0; addr < 0x100; addr++) io_w_latch[addr] = state_fio->FgetUint8();
{
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: MAINMEM: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: MAINMEM: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// V1
state_fio->FputBool(ioaccess_wait);
uint32_t version;
version = state_fio->FgetUint32_BE();
if(this_device_id != state_fio->FgetInt32_BE()) return false;
- this->out_debug_log("Load State: MAINMEM: id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: MAINMEM: id=%d ver=%d\n"), this_device_id, version);
if(version >= 1) {
// V1
ioaccess_wait = state_fio->FgetBool();
fio = new FILEIO;
if(fio == NULL) return;
memset(image_path, 0x00, _MAX_PATH * sizeof(_TCHAR));
- strncpy(image_path, file_path, _MAX_PATH);
+ _tcsncpy(image_path, file_path, _MAX_PATH);
if(fio->IsFileExisting(file_path)) {
fio->Fopen(file_path, FILEIO_READ_WRITE_BINARY);
int i, j;
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: BUBBLE: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: BUBBLE: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// Attributes
state_fio->FputUint32_BE(file_length);
int i, j;
if(state_fio->FgetUint32_BE() != STATE_VERSION) return false;
if(state_fio->FgetInt32_BE() != this_device_id) return false;
- this->out_debug_log("Load State: BUBBLE: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Load State: BUBBLE: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// Attributes
file_length = state_fio->FgetUint32_BE();
header_changed = false;
if(state_fio->Fread(image_path, _MAX_PATH * sizeof(_TCHAR), 1) != (_MAX_PATH * sizeof(_TCHAR))) return false;
- if(strlen(image_path) > 0) {
+ if(_tcslen(image_path) > 0) {
this->open(image_path, (int)media_num);
}
return true;
int i;
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: HD6844: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: HD6844: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
{ // V1
for(i = 0; i < 4; i++) {
state_fio->FputUint32_BE(addr_reg[i]);
int i;
version = state_fio->FgetUint32_BE();
if(this_device_id != state_fio->FgetInt32_BE()) return false;
- this->out_debug_log("Load State: HD6844: id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: HD6844: id=%d ver=%d\n"), this_device_id, version);
if(version >= 1) {
for(i = 0; i < 4; i++) {
addr_reg[i] = state_fio->FgetUint32_BE();
int ch;
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: JOYSTICK: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: JOYSTICK: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// Version 1
for(ch = 0; ch < 2; ch++) {
#if !defined(_FM8)
int32_t devid = state_fio->FgetInt32_BE();
bool stat = false;
int ch;
- this->out_debug_log("Load State: JOYSTICK: id=%d ver=%d\n", devid, version);
+ this->out_debug_log(_T("Load State: JOYSTICK: id=%d ver=%d\n"), devid, version);
if(devid != this_device_id) return stat;
if(version >= 1) {
for(ch = 0; ch < 2; ch++) {
{
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: KANJIROM: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: KANJIROM: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
state_fio->FputBool(class2);
state_fio->FputBool(read_ok);
uint32_t version;
version = state_fio->FgetUint32_BE();
if(this_device_id != state_fio->FgetInt32_BE()) return false;
- this->out_debug_log("Load State: KANJIROM: id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: KANJIROM: id=%d ver=%d\n"), this_device_id, version);
if(version >= 1) {
class2 = state_fio->FgetBool();
{
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
- this->out_debug_log("Save State: KEYBOARD: id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: KEYBOARD: id=%d ver=%d\n"), this_device_id, STATE_VERSION);
// Version 1
{
version = state_fio->FgetUint32_BE();
if(this_device_id != state_fio->FgetInt32_BE()) return false;
- this->out_debug_log("Load State: KEYBOARD: id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: KEYBOARD: id=%d ver=%d\n"), this_device_id, version);
if(version >= 1) {
keycode_7 = state_fio->FgetUint32_BE();
}
xcount = abs(ax);
ycount = abs(ay);
- //this->out_debug_log("LINE: (%d,%d)-(%d,%d) CMD=%02x STYLE=%04x, \n", x_begin, y_begin, x_end , y_end, command_reg, line_style.w.l);
+ //this->out_debug_log(_T("LINE: (%d,%d)-(%d,%d) CMD=%02x STYLE=%04x, \n"), x_begin, y_begin, x_end , y_end, command_reg, line_style.w.l);
if(ycount == 0) {
if((cpy_t < 0) || (cpy_t >= 512)) goto _finish;
if(xcount == 0) {
void MB61VH010::write_data8(uint32_t id, uint32_t data)
{
- //this->out_debug_log("ALU: ADDR=%02x DATA=%02x\n", id, data);
+ //this->out_debug_log(_T("ALU: ADDR=%02x DATA=%02x\n"), id, data);
if(id == ALU_CMDREG) {
command_reg = data;
return;
int i;
state_fio->FputUint32(STATE_VERSION);
state_fio->FputInt32(this_device_id);
- this->out_debug_log("Save State: MB61VH010 : id=%d ver=%d\n", this_device_id, STATE_VERSION);
+ this->out_debug_log(_T("Save State: MB61VH010 : id=%d ver=%d\n"), this_device_id, STATE_VERSION);
{ // V1
state_fio->FputUint8(command_reg);
{
uint32_t version = state_fio->FgetUint32();
int i;
- this->out_debug_log("Load State: MB61VH010 : id=%d ver=%d\n", this_device_id, version);
+ this->out_debug_log(_T("Load State: MB61VH010 : id=%d ver=%d\n"), this_device_id, version);
if(this_device_id != state_fio->FgetInt32()) return false;
if(version >= 1) {
command_reg = state_fio->FgetUint8();
for(int i = 0; i < 7; i++) {
if(FILEIO::IsFileExisting(create_local_path(_T("SCSI%d.DAT"), i))) {
scsi_hdd[i] = new SCSI_HDD(this, emu);
- scsi_hdd[i]->set_device_name("SCSI Hard Disk Drive #%d", i + 1);
+ scsi_hdd[i]->set_device_name(_T("SCSI Hard Disk Drive #%d"), i + 1);
scsi_hdd[i]->scsi_id = i;
scsi_hdd[i]->set_context_interface(scsi_host);
scsi_host->set_context_target(scsi_hdd[i]);
for(int i = 0; i < 7; i++) {
if(FILEIO::IsFileExisting(create_local_path(_T("SCSI%d.DAT"), i))) {
scsi_hdd[i] = new SCSI_HDD(this, emu);
- scsi_hdd[i]->set_device_name("SCSI Hard Disk Drive #%d", i + 1);
+ scsi_hdd[i]->set_device_name(_T("SCSI Hard Disk Drive #%d"), i + 1);
scsi_hdd[i]->scsi_id = i;
scsi_hdd[i]->set_context_interface(scsi_host);
scsi_host->set_context_target(scsi_hdd[i]);
#define CPU_EXECUTE_CALL(name) CPU_EXECUTE_NAME(name)(cpustate)
#define CPU_DISASSEMBLE_NAME(name) cpu_disassemble_##name
-#define CPU_DISASSEMBLE(name) int CPU_DISASSEMBLE_NAME(name)(_TCHAR *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram)
-#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(buffer, pc, oprom, oprom)
+#define CPU_DISASSEMBLE(name) int CPU_DISASSEMBLE_NAME(name)(_TCHAR *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, symbol_t *first_symbol)
+#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(buffer, pc, oprom, oprom, d_debugger->first_symbol)
#define READ8_HANDLER(name) UINT8 name(h6280_Regs *cpustate, offs_t offset)
#define WRITE8_HANDLER(name) void name(h6280_Regs *cpustate, offs_t offset, UINT8 data)
switch(ops[ptr++])
{
case 0x00: my_stprintf_s(buffer, buffer_len, _T("nop")); break;
- case 0x01: my_stprintf_s(buffer, buffer_len, _T("lxi b,$%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0x01: my_stprintf_s(buffer, buffer_len, _T("lxi b,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0x02: my_stprintf_s(buffer, buffer_len, _T("stax b")); break;
case 0x03: my_stprintf_s(buffer, buffer_len, _T("inx b")); break;
case 0x04: my_stprintf_s(buffer, buffer_len, _T("inr b")); break;
case 0x0e: my_stprintf_s(buffer, buffer_len, _T("mvi c,$%02x"), ops[ptr++]); break;
case 0x0f: my_stprintf_s(buffer, buffer_len, _T("rrc")); break;
case 0x10: my_stprintf_s(buffer, buffer_len, _T("asrh (*)")); break;
- case 0x11: my_stprintf_s(buffer, buffer_len, _T("lxi d,$%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0x11: my_stprintf_s(buffer, buffer_len, _T("lxi d,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0x12: my_stprintf_s(buffer, buffer_len, _T("stax d")); break;
case 0x13: my_stprintf_s(buffer, buffer_len, _T("inx d")); break;
case 0x14: my_stprintf_s(buffer, buffer_len, _T("inr d")); break;
case 0x1e: my_stprintf_s(buffer, buffer_len, _T("mvi e,$%02x"), ops[ptr++]); break;
case 0x1f: my_stprintf_s(buffer, buffer_len, _T("rar")); break;
case 0x20: my_stprintf_s(buffer, buffer_len, _T("rim")); break;
- case 0x21: my_stprintf_s(buffer, buffer_len, _T("lxi h,$%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0x22: my_stprintf_s(buffer, buffer_len, _T("shld $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0x21: my_stprintf_s(buffer, buffer_len, _T("lxi h,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0x22: my_stprintf_s(buffer, buffer_len, _T("shld %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0x23: my_stprintf_s(buffer, buffer_len, _T("inx h")); break;
case 0x24: my_stprintf_s(buffer, buffer_len, _T("inr h")); break;
case 0x25: my_stprintf_s(buffer, buffer_len, _T("dcr h")); break;
case 0x27: my_stprintf_s(buffer, buffer_len, _T("daa")); break;
case 0x28: my_stprintf_s(buffer, buffer_len, _T("ldeh $%02x (*)"), ops[ptr++]); break;
case 0x29: my_stprintf_s(buffer, buffer_len, _T("dad h")); break;
- case 0x2a: my_stprintf_s(buffer, buffer_len, _T("lhld $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0x2a: my_stprintf_s(buffer, buffer_len, _T("lhld %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0x2b: my_stprintf_s(buffer, buffer_len, _T("dcx h")); break;
case 0x2c: my_stprintf_s(buffer, buffer_len, _T("inr l")); break;
case 0x2d: my_stprintf_s(buffer, buffer_len, _T("dcr l")); break;
case 0x2e: my_stprintf_s(buffer, buffer_len, _T("mvi l,$%02x"), ops[ptr++]); break;
case 0x2f: my_stprintf_s(buffer, buffer_len, _T("cma")); break;
case 0x30: my_stprintf_s(buffer, buffer_len, _T("sim")); break;
- case 0x31: my_stprintf_s(buffer, buffer_len, _T("lxi sp,$%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0x32: my_stprintf_s(buffer, buffer_len, _T("stax $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0x31: my_stprintf_s(buffer, buffer_len, _T("lxi sp,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0x32: my_stprintf_s(buffer, buffer_len, _T("stax %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0x33: my_stprintf_s(buffer, buffer_len, _T("inx sp")); break;
case 0x34: my_stprintf_s(buffer, buffer_len, _T("inr m")); break;
case 0x35: my_stprintf_s(buffer, buffer_len, _T("dcr m")); break;
case 0x37: my_stprintf_s(buffer, buffer_len, _T("stc")); break;
case 0x38: my_stprintf_s(buffer, buffer_len, _T("ldes $%02x"), ops[ptr++]); break;
case 0x39: my_stprintf_s(buffer, buffer_len, _T("dad sp")); break;
- case 0x3a: my_stprintf_s(buffer, buffer_len, _T("ldax $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0x3a: my_stprintf_s(buffer, buffer_len, _T("ldax %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0x3b: my_stprintf_s(buffer, buffer_len, _T("dcx sp")); break;
case 0x3c: my_stprintf_s(buffer, buffer_len, _T("inr a")); break;
case 0x3d: my_stprintf_s(buffer, buffer_len, _T("dcr a")); break;
case 0xbf: my_stprintf_s(buffer, buffer_len, _T("cmp a")); break;
case 0xc0: my_stprintf_s(buffer, buffer_len, _T("rnz")); break;
case 0xc1: my_stprintf_s(buffer, buffer_len, _T("pop b")); break;
- case 0xc2: my_stprintf_s(buffer, buffer_len, _T("jnz $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0xc3: my_stprintf_s(buffer, buffer_len, _T("jmp $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0xc4: my_stprintf_s(buffer, buffer_len, _T("cnz $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xc2: my_stprintf_s(buffer, buffer_len, _T("jnz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0xc3: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0xc4: my_stprintf_s(buffer, buffer_len, _T("cnz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xc5: my_stprintf_s(buffer, buffer_len, _T("push b")); break;
case 0xc6: my_stprintf_s(buffer, buffer_len, _T("adi $%02x"), ops[ptr++]); break;
case 0xc7: my_stprintf_s(buffer, buffer_len, _T("rst 0")); break;
case 0xc8: my_stprintf_s(buffer, buffer_len, _T("rz")); break;
case 0xc9: my_stprintf_s(buffer, buffer_len, _T("ret")); break;
- case 0xca: my_stprintf_s(buffer, buffer_len, _T("jz $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xca: my_stprintf_s(buffer, buffer_len, _T("jz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xcb: my_stprintf_s(buffer, buffer_len, _T("rstv 8 (*)")); break;
- case 0xcc: my_stprintf_s(buffer, buffer_len, _T("cz $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0xcd: my_stprintf_s(buffer, buffer_len, _T("call $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xcc: my_stprintf_s(buffer, buffer_len, _T("cz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0xcd: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xce: my_stprintf_s(buffer, buffer_len, _T("aci $%02x"), ops[ptr++]); break;
case 0xcf: my_stprintf_s(buffer, buffer_len, _T("rst 1")); break;
case 0xd0: my_stprintf_s(buffer, buffer_len, _T("rnc")); break;
case 0xd1: my_stprintf_s(buffer, buffer_len, _T("pop d")); break;
- case 0xd2: my_stprintf_s(buffer, buffer_len, _T("jnc $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xd2: my_stprintf_s(buffer, buffer_len, _T("jnc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xd3: my_stprintf_s(buffer, buffer_len, _T("out $%02x"), ops[ptr++]); break;
- case 0xd4: my_stprintf_s(buffer, buffer_len, _T("cnc $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xd4: my_stprintf_s(buffer, buffer_len, _T("cnc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xd5: my_stprintf_s(buffer, buffer_len, _T("push d")); break;
case 0xd6: my_stprintf_s(buffer, buffer_len, _T("sui $%02x"), ops[ptr++]); break;
case 0xd7: my_stprintf_s(buffer, buffer_len, _T("rst 2")); break;
case 0xd8: my_stprintf_s(buffer, buffer_len, _T("rc")); break;
case 0xd9: my_stprintf_s(buffer, buffer_len, _T("shlx d (*)")); break;
- case 0xda: my_stprintf_s(buffer, buffer_len, _T("jc $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xda: my_stprintf_s(buffer, buffer_len, _T("jc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xdb: my_stprintf_s(buffer, buffer_len, _T("in $%02x"), ops[ptr++]); break;
- case 0xdc: my_stprintf_s(buffer, buffer_len, _T("cc $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0xdd: my_stprintf_s(buffer, buffer_len, _T("jnx $%04x (*)"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xdc: my_stprintf_s(buffer, buffer_len, _T("cc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0xdd: my_stprintf_s(buffer, buffer_len, _T("jnx %s (*)"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xde: my_stprintf_s(buffer, buffer_len, _T("sbi $%02x"), ops[ptr++]); break;
case 0xdf: my_stprintf_s(buffer, buffer_len, _T("rst 3")); break;
case 0xe0: my_stprintf_s(buffer, buffer_len, _T("rpo")); break;
case 0xe1: my_stprintf_s(buffer, buffer_len, _T("pop h")); break;
- case 0xe2: my_stprintf_s(buffer, buffer_len, _T("jpo $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xe2: my_stprintf_s(buffer, buffer_len, _T("jpo %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xe3: my_stprintf_s(buffer, buffer_len, _T("xthl")); break;
- case 0xe4: my_stprintf_s(buffer, buffer_len, _T("cpo $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xe4: my_stprintf_s(buffer, buffer_len, _T("cpo %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xe5: my_stprintf_s(buffer, buffer_len, _T("push h")); break;
case 0xe6: my_stprintf_s(buffer, buffer_len, _T("ani $%02x"), ops[ptr++]); break;
case 0xe7: my_stprintf_s(buffer, buffer_len, _T("rst 4")); break;
case 0xe8: my_stprintf_s(buffer, buffer_len, _T("rpe")); break;
case 0xe9: my_stprintf_s(buffer, buffer_len, _T("PChl")); break;
- case 0xea: my_stprintf_s(buffer, buffer_len, _T("jpe $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xea: my_stprintf_s(buffer, buffer_len, _T("jpe %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xeb: my_stprintf_s(buffer, buffer_len, _T("xchg")); break;
- case 0xec: my_stprintf_s(buffer, buffer_len, _T("cpe $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xec: my_stprintf_s(buffer, buffer_len, _T("cpe %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xed: my_stprintf_s(buffer, buffer_len, _T("lhlx d (*)")); break;
case 0xee: my_stprintf_s(buffer, buffer_len, _T("xri $%02x"), ops[ptr++]); break;
case 0xef: my_stprintf_s(buffer, buffer_len, _T("rst 5")); break;
case 0xf0: my_stprintf_s(buffer, buffer_len, _T("rp")); break;
case 0xf1: my_stprintf_s(buffer, buffer_len, _T("pop a")); break;
- case 0xf2: my_stprintf_s(buffer, buffer_len, _T("jp $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xf2: my_stprintf_s(buffer, buffer_len, _T("jp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xf3: my_stprintf_s(buffer, buffer_len, _T("di")); break;
- case 0xf4: my_stprintf_s(buffer, buffer_len, _T("cp $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xf4: my_stprintf_s(buffer, buffer_len, _T("cp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xf5: my_stprintf_s(buffer, buffer_len, _T("push a")); break;
case 0xf6: my_stprintf_s(buffer, buffer_len, _T("ori $%02x"), ops[ptr++]); break;
case 0xf7: my_stprintf_s(buffer, buffer_len, _T("rst 6")); break;
case 0xf8: my_stprintf_s(buffer, buffer_len, _T("rm")); break;
case 0xf9: my_stprintf_s(buffer, buffer_len, _T("sphl")); break;
- case 0xfa: my_stprintf_s(buffer, buffer_len, _T("jm $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xfa: my_stprintf_s(buffer, buffer_len, _T("jm %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xfb: my_stprintf_s(buffer, buffer_len, _T("ei")); break;
- case 0xfc: my_stprintf_s(buffer, buffer_len, _T("cm $%04x"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
- case 0xfd: my_stprintf_s(buffer, buffer_len, _T("jx $%04x (*)"), ops[ptr] | (ops[ptr + 1] << 8)); ptr += 2; break;
+ case 0xfc: my_stprintf_s(buffer, buffer_len, _T("cm %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
+ case 0xfd: my_stprintf_s(buffer, buffer_len, _T("jx %s (*)"), get_value_or_symbol(d_debugger->first_symbol, _T("$%04x"), ops[ptr] | (ops[ptr + 1] << 8))); ptr += 2; break;
case 0xfe: my_stprintf_s(buffer, buffer_len, _T("cpi $%02x"), ops[ptr++]); break;
case 0xff: my_stprintf_s(buffer, buffer_len, _T("rst 7")); break;
}
return base_icount - cpustate->icount;
}
+
+int MCS48::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len)
+{
+ mcs48_state *cpustate = (mcs48_state *)opaque;
+ uint32_t ptr = pc;
+
+ #define upi41 false
+#ifdef USE_DEBUGGER
+ switch (program_r(ptr++))
+ {
+ case 0x00: my_stprintf_s(buffer, buffer_len, _T("nop")); break;
+ case 0x02: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("out bus,a"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("out dbb,a")); break;
+ case 0x03: my_stprintf_s(buffer, buffer_len, _T("add a,#$%02X"), program_r(ptr++)); break;
+ case 0x04: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x000 | program_r(ptr++))); break;
+ case 0x05: my_stprintf_s(buffer, buffer_len, _T("en i")); break;
+ case 0x07: my_stprintf_s(buffer, buffer_len, _T("dec a")); break;
+ case 0x08: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("in a,bus"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x09: my_stprintf_s(buffer, buffer_len, _T("in a,p1")); break;
+ case 0x0a: my_stprintf_s(buffer, buffer_len, _T("in a,p2")); break;
+ case 0x0c: my_stprintf_s(buffer, buffer_len, _T("movd a,p4")); break;
+ case 0x0d: my_stprintf_s(buffer, buffer_len, _T("movd a,p5")); break;
+ case 0x0e: my_stprintf_s(buffer, buffer_len, _T("movd a,p6")); break;
+ case 0x0f: my_stprintf_s(buffer, buffer_len, _T("movd a,p7")); break;
+ case 0x10: my_stprintf_s(buffer, buffer_len, _T("inc @r0")); break;
+ case 0x11: my_stprintf_s(buffer, buffer_len, _T("inc @r1")); break;
+ case 0x12: my_stprintf_s(buffer, buffer_len, _T("jb0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x13: my_stprintf_s(buffer, buffer_len, _T("addc a,#$%02X"), program_r(ptr++)); break;
+ case 0x14: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x000 | program_r(ptr++))); break;
+ case 0x15: my_stprintf_s(buffer, buffer_len, _T("dis i")); break;
+ case 0x16: my_stprintf_s(buffer, buffer_len, _T("jtf %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x17: my_stprintf_s(buffer, buffer_len, _T("inc a")); break;
+ case 0x18: my_stprintf_s(buffer, buffer_len, _T("inc r0")); break;
+ case 0x19: my_stprintf_s(buffer, buffer_len, _T("inc r1")); break;
+ case 0x1a: my_stprintf_s(buffer, buffer_len, _T("inc r2")); break;
+ case 0x1b: my_stprintf_s(buffer, buffer_len, _T("inc r3")); break;
+ case 0x1c: my_stprintf_s(buffer, buffer_len, _T("inc r4")); break;
+ case 0x1d: my_stprintf_s(buffer, buffer_len, _T("inc r5")); break;
+ case 0x1e: my_stprintf_s(buffer, buffer_len, _T("inc r6")); break;
+ case 0x1f: my_stprintf_s(buffer, buffer_len, _T("inc r7")); break;
+ case 0x20: my_stprintf_s(buffer, buffer_len, _T("xch a,@r0")); break;
+ case 0x21: my_stprintf_s(buffer, buffer_len, _T("xch a,@r1")); break;
+ case 0x22: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("illegal"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("in a,dbb")); break;
+ case 0x23: my_stprintf_s(buffer, buffer_len, _T("mov a,#$%02X"), program_r(ptr++)); break;
+ case 0x24: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x100 | program_r(ptr++))); break;
+ case 0x25: my_stprintf_s(buffer, buffer_len, _T("en tcnti")); break;
+ case 0x26: my_stprintf_s(buffer, buffer_len, _T("jnt0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x27: my_stprintf_s(buffer, buffer_len, _T("clr a")); break;
+ case 0x28: my_stprintf_s(buffer, buffer_len, _T("xch a,r0")); break;
+ case 0x29: my_stprintf_s(buffer, buffer_len, _T("xch a,r1")); break;
+ case 0x2a: my_stprintf_s(buffer, buffer_len, _T("xch a,r2")); break;
+ case 0x2b: my_stprintf_s(buffer, buffer_len, _T("xch a,r3")); break;
+ case 0x2c: my_stprintf_s(buffer, buffer_len, _T("xch a,r4")); break;
+ case 0x2d: my_stprintf_s(buffer, buffer_len, _T("xch a,r5")); break;
+ case 0x2e: my_stprintf_s(buffer, buffer_len, _T("xch a,r6")); break;
+ case 0x2f: my_stprintf_s(buffer, buffer_len, _T("xch a,r7")); break;
+ case 0x30: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r0")); break;
+ case 0x31: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r1")); break;
+ case 0x32: my_stprintf_s(buffer, buffer_len, _T("jb1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x34: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x100 | program_r(ptr++))); break;
+ case 0x35: my_stprintf_s(buffer, buffer_len, _T("dis tcnti")); break;
+ case 0x36: my_stprintf_s(buffer, buffer_len, _T("jt0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x37: my_stprintf_s(buffer, buffer_len, _T("cpl a")); break;
+ case 0x39: my_stprintf_s(buffer, buffer_len, _T("outl p1,a")); break;
+ case 0x3a: my_stprintf_s(buffer, buffer_len, _T("outl p2,a")); break;
+ case 0x3c: my_stprintf_s(buffer, buffer_len, _T("movd p4,a")); break;
+ case 0x3d: my_stprintf_s(buffer, buffer_len, _T("movd p5,a")); break;
+ case 0x3e: my_stprintf_s(buffer, buffer_len, _T("movd p6,a")); break;
+ case 0x3f: my_stprintf_s(buffer, buffer_len, _T("movd p7,a")); break;
+ case 0x40: my_stprintf_s(buffer, buffer_len, _T("orl a,@r0")); break;
+ case 0x41: my_stprintf_s(buffer, buffer_len, _T("orl a,@r1")); break;
+ case 0x42: my_stprintf_s(buffer, buffer_len, _T("mov a,t")); break;
+ case 0x43: my_stprintf_s(buffer, buffer_len, _T("orl a,#$%02X"), program_r(ptr++)); break;
+ case 0x44: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x200 | program_r(ptr++))); break;
+ case 0x45: my_stprintf_s(buffer, buffer_len, _T("strt cnt")); break;
+ case 0x46: my_stprintf_s(buffer, buffer_len, _T("jnt1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x47: my_stprintf_s(buffer, buffer_len, _T("swap a")); break;
+ case 0x48: my_stprintf_s(buffer, buffer_len, _T("orl a,r0")); break;
+ case 0x49: my_stprintf_s(buffer, buffer_len, _T("orl a,r1")); break;
+ case 0x4a: my_stprintf_s(buffer, buffer_len, _T("orl a,r2")); break;
+ case 0x4b: my_stprintf_s(buffer, buffer_len, _T("orl a,r3")); break;
+ case 0x4c: my_stprintf_s(buffer, buffer_len, _T("orl a,r4")); break;
+ case 0x4d: my_stprintf_s(buffer, buffer_len, _T("orl a,r5")); break;
+ case 0x4e: my_stprintf_s(buffer, buffer_len, _T("orl a,r6")); break;
+ case 0x4f: my_stprintf_s(buffer, buffer_len, _T("orl a,r7")); break;
+ case 0x50: my_stprintf_s(buffer, buffer_len, _T("anl a,@r0")); break;
+ case 0x51: my_stprintf_s(buffer, buffer_len, _T("anl a,@r1")); break;
+ case 0x52: my_stprintf_s(buffer, buffer_len, _T("jb2 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x53: my_stprintf_s(buffer, buffer_len, _T("anl a,#$%02X"), program_r(ptr++)); break;
+ case 0x54: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x200 | program_r(ptr++))); break;
+ case 0x55: my_stprintf_s(buffer, buffer_len, _T("strt t")); break;
+ case 0x56: my_stprintf_s(buffer, buffer_len, _T("jt1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x57: my_stprintf_s(buffer, buffer_len, _T("da a")); break;
+ case 0x58: my_stprintf_s(buffer, buffer_len, _T("anl a,r0")); break;
+ case 0x59: my_stprintf_s(buffer, buffer_len, _T("anl a,r1")); break;
+ case 0x5a: my_stprintf_s(buffer, buffer_len, _T("anl a,r2")); break;
+ case 0x5b: my_stprintf_s(buffer, buffer_len, _T("anl a,r3")); break;
+ case 0x5c: my_stprintf_s(buffer, buffer_len, _T("anl a,r4")); break;
+ case 0x5d: my_stprintf_s(buffer, buffer_len, _T("anl a,r5")); break;
+ case 0x5e: my_stprintf_s(buffer, buffer_len, _T("anl a,r6")); break;
+ case 0x5f: my_stprintf_s(buffer, buffer_len, _T("anl a,r7")); break;
+ case 0x60: my_stprintf_s(buffer, buffer_len, _T("add a,@r0")); break;
+ case 0x61: my_stprintf_s(buffer, buffer_len, _T("add a,@r1")); break;
+ case 0x62: my_stprintf_s(buffer, buffer_len, _T("mov t,a")); break;
+ case 0x64: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x300 | program_r(ptr++))); break;
+ case 0x65: my_stprintf_s(buffer, buffer_len, _T("stop tcnt")); break;
+ case 0x67: my_stprintf_s(buffer, buffer_len, _T("rrc a")); break;
+ case 0x68: my_stprintf_s(buffer, buffer_len, _T("add a,r0")); break;
+ case 0x69: my_stprintf_s(buffer, buffer_len, _T("add a,r1")); break;
+ case 0x6a: my_stprintf_s(buffer, buffer_len, _T("add a,r2")); break;
+ case 0x6b: my_stprintf_s(buffer, buffer_len, _T("add a,r3")); break;
+ case 0x6c: my_stprintf_s(buffer, buffer_len, _T("add a,r4")); break;
+ case 0x6d: my_stprintf_s(buffer, buffer_len, _T("add a,r5")); break;
+ case 0x6e: my_stprintf_s(buffer, buffer_len, _T("add a,r6")); break;
+ case 0x6f: my_stprintf_s(buffer, buffer_len, _T("add a,r7")); break;
+ case 0x70: my_stprintf_s(buffer, buffer_len, _T("addc a,@r0")); break;
+ case 0x71: my_stprintf_s(buffer, buffer_len, _T("addc a,@r1")); break;
+ case 0x72: my_stprintf_s(buffer, buffer_len, _T("jb3 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x74: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x300 | program_r(ptr++))); break;
+ case 0x75: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("ent0 clk"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x76: my_stprintf_s(buffer, buffer_len, _T("jf1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x77: my_stprintf_s(buffer, buffer_len, _T("rr a")); break;
+ case 0x78: my_stprintf_s(buffer, buffer_len, _T("addc a,r0")); break;
+ case 0x79: my_stprintf_s(buffer, buffer_len, _T("addc a,r1")); break;
+ case 0x7a: my_stprintf_s(buffer, buffer_len, _T("addc a,r2")); break;
+ case 0x7b: my_stprintf_s(buffer, buffer_len, _T("addc a,r3")); break;
+ case 0x7c: my_stprintf_s(buffer, buffer_len, _T("addc a,r4")); break;
+ case 0x7d: my_stprintf_s(buffer, buffer_len, _T("addc a,r5")); break;
+ case 0x7e: my_stprintf_s(buffer, buffer_len, _T("addc a,r6")); break;
+ case 0x7f: my_stprintf_s(buffer, buffer_len, _T("addc a,r7")); break;
+ case 0x80: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("movx a,@r0"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x81: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("movx a,@r1"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x83: my_stprintf_s(buffer, buffer_len, _T("ret")); break;
+ case 0x84: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x400 | program_r(ptr++))); break;
+ case 0x85: my_stprintf_s(buffer, buffer_len, _T("clr f0")); break;
+ case 0x86: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("jni %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++)));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("jobf %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x88: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("orl bus,#$%02X"), program_r(ptr++));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x89: my_stprintf_s(buffer, buffer_len, _T("orl p1,#$%02X"), program_r(ptr++)); break;
+ case 0x8a: my_stprintf_s(buffer, buffer_len, _T("orl p2,#$%02X"), program_r(ptr++)); break;
+ case 0x8c: my_stprintf_s(buffer, buffer_len, _T("orld p4,a")); break;
+ case 0x8d: my_stprintf_s(buffer, buffer_len, _T("orld p5,a")); break;
+ case 0x8e: my_stprintf_s(buffer, buffer_len, _T("orld p6,a")); break;
+ case 0x8f: my_stprintf_s(buffer, buffer_len, _T("orld p7,a")); break;
+ case 0x90: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("movx @r0,a"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("mov sts,a")); break;
+ case 0x91: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("movx @r1,a"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x92: my_stprintf_s(buffer, buffer_len, _T("jb4 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x93: my_stprintf_s(buffer, buffer_len, _T("retr")); break;
+ case 0x94: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x400 | program_r(ptr++))); break;
+ case 0x95: my_stprintf_s(buffer, buffer_len, _T("cpl f0")); break;
+ case 0x96: my_stprintf_s(buffer, buffer_len, _T("jnz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x97: my_stprintf_s(buffer, buffer_len, _T("clr c")); break;
+ case 0x98: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("anl bus,#$%02X"), program_r(ptr++));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x99: my_stprintf_s(buffer, buffer_len, _T("anl p1,#$%02X"), program_r(ptr++)); break;
+ case 0x9a: my_stprintf_s(buffer, buffer_len, _T("anl p2,#$%02X"), program_r(ptr++)); break;
+ case 0x9c: my_stprintf_s(buffer, buffer_len, _T("anld p4,a")); break;
+ case 0x9d: my_stprintf_s(buffer, buffer_len, _T("anld p5,a")); break;
+ case 0x9e: my_stprintf_s(buffer, buffer_len, _T("anld p6,a")); break;
+ case 0x9f: my_stprintf_s(buffer, buffer_len, _T("anld p7,a")); break;
+ case 0xa0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,a")); break;
+ case 0xa1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,a")); break;
+ case 0xa3: my_stprintf_s(buffer, buffer_len, _T("movp a,@a")); break;
+ case 0xa4: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x500 | program_r(ptr++))); break;
+ case 0xa5: my_stprintf_s(buffer, buffer_len, _T("clr f1")); break;
+ case 0xa7: my_stprintf_s(buffer, buffer_len, _T("cpl c")); break;
+ case 0xa8: my_stprintf_s(buffer, buffer_len, _T("mov r0,a")); break;
+ case 0xa9: my_stprintf_s(buffer, buffer_len, _T("mov r1,a")); break;
+ case 0xaa: my_stprintf_s(buffer, buffer_len, _T("mov r2,a")); break;
+ case 0xab: my_stprintf_s(buffer, buffer_len, _T("mov r3,a")); break;
+ case 0xac: my_stprintf_s(buffer, buffer_len, _T("mov r4,a")); break;
+ case 0xad: my_stprintf_s(buffer, buffer_len, _T("mov r5,a")); break;
+ case 0xae: my_stprintf_s(buffer, buffer_len, _T("mov r6,a")); break;
+ case 0xaf: my_stprintf_s(buffer, buffer_len, _T("mov r7,a")); break;
+ case 0xb0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,#$%02X"), program_r(ptr++)); break;
+ case 0xb1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,#$%02X"), program_r(ptr++)); break;
+ case 0xb2: my_stprintf_s(buffer, buffer_len, _T("jb5 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xb3: my_stprintf_s(buffer, buffer_len, _T("jmpp @a")); break;
+ case 0xb4: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x500 | program_r(ptr++))); break;
+ case 0xb5: my_stprintf_s(buffer, buffer_len, _T("cpl f1")); break;
+ case 0xb6: my_stprintf_s(buffer, buffer_len, _T("jf0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xb8: my_stprintf_s(buffer, buffer_len, _T("mov r0,#$%02X"), program_r(ptr++)); break;
+ case 0xb9: my_stprintf_s(buffer, buffer_len, _T("mov r1,#$%02X"), program_r(ptr++)); break;
+ case 0xba: my_stprintf_s(buffer, buffer_len, _T("mov r2,#$%02X"), program_r(ptr++)); break;
+ case 0xbb: my_stprintf_s(buffer, buffer_len, _T("mov r3,#$%02X"), program_r(ptr++)); break;
+ case 0xbc: my_stprintf_s(buffer, buffer_len, _T("mov r4,#$%02X"), program_r(ptr++)); break;
+ case 0xbd: my_stprintf_s(buffer, buffer_len, _T("mov r5,#$%02X"), program_r(ptr++)); break;
+ case 0xbe: my_stprintf_s(buffer, buffer_len, _T("mov r6,#$%02X"), program_r(ptr++)); break;
+ case 0xbf: my_stprintf_s(buffer, buffer_len, _T("mov r7,#$%02X"), program_r(ptr++)); break;
+ case 0xc4: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x600 | program_r(ptr++))); break;
+ case 0xc5: my_stprintf_s(buffer, buffer_len, _T("sel rb0")); break;
+ case 0xc6: my_stprintf_s(buffer, buffer_len, _T("jz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov a,psw")); break;
+ case 0xc8: my_stprintf_s(buffer, buffer_len, _T("dec r0")); break;
+ case 0xc9: my_stprintf_s(buffer, buffer_len, _T("dec r1")); break;
+ case 0xca: my_stprintf_s(buffer, buffer_len, _T("dec r2")); break;
+ case 0xcb: my_stprintf_s(buffer, buffer_len, _T("dec r3")); break;
+ case 0xcc: my_stprintf_s(buffer, buffer_len, _T("dec r4")); break;
+ case 0xcd: my_stprintf_s(buffer, buffer_len, _T("dec r5")); break;
+ case 0xce: my_stprintf_s(buffer, buffer_len, _T("dec r6")); break;
+ case 0xcf: my_stprintf_s(buffer, buffer_len, _T("dec r7")); break;
+ case 0xd0: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r0")); break;
+ case 0xd1: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r1")); break;
+ case 0xd2: my_stprintf_s(buffer, buffer_len, _T("jb6 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xd3: my_stprintf_s(buffer, buffer_len, _T("xrl a,#$%02X"), program_r(ptr++)); break;
+ case 0xd4: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x600 | program_r(ptr++))); break;
+ case 0xd5: my_stprintf_s(buffer, buffer_len, _T("sel rb1")); break;
+ case 0xd6: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("illegal"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("jnibf %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xd7: my_stprintf_s(buffer, buffer_len, _T("mov psw,a")); break;
+ case 0xd8: my_stprintf_s(buffer, buffer_len, _T("xrl a,r0")); break;
+ case 0xd9: my_stprintf_s(buffer, buffer_len, _T("xrl a,r1")); break;
+ case 0xda: my_stprintf_s(buffer, buffer_len, _T("xrl a,r2")); break;
+ case 0xdb: my_stprintf_s(buffer, buffer_len, _T("xrl a,r3")); break;
+ case 0xdc: my_stprintf_s(buffer, buffer_len, _T("xrl a,r4")); break;
+ case 0xdd: my_stprintf_s(buffer, buffer_len, _T("xrl a,r5")); break;
+ case 0xde: my_stprintf_s(buffer, buffer_len, _T("xrl a,r6")); break;
+ case 0xdf: my_stprintf_s(buffer, buffer_len, _T("xrl a,r7")); break;
+ case 0xe3: my_stprintf_s(buffer, buffer_len, _T("movp3 a,@a")); break;
+ case 0xe4: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x700 | program_r(ptr++))); break;
+ case 0xe5: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("sel mb0"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("en dma")); break;
+ case 0xe6: my_stprintf_s(buffer, buffer_len, _T("jnc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xe7: my_stprintf_s(buffer, buffer_len, _T("rl a")); break;
+ case 0xe8: my_stprintf_s(buffer, buffer_len, _T("djnz r0,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xe9: my_stprintf_s(buffer, buffer_len, _T("djnz r1,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xea: my_stprintf_s(buffer, buffer_len, _T("djnz r2,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xeb: my_stprintf_s(buffer, buffer_len, _T("djnz r3,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xec: my_stprintf_s(buffer, buffer_len, _T("djnz r4,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xed: my_stprintf_s(buffer, buffer_len, _T("djnz r5,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xee: my_stprintf_s(buffer, buffer_len, _T("djnz r6,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xef: my_stprintf_s(buffer, buffer_len, _T("djnz r7,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xf0: my_stprintf_s(buffer, buffer_len, _T("mov a,@r0")); break;
+ case 0xf1: my_stprintf_s(buffer, buffer_len, _T("mov a,@r1")); break;
+ case 0xf2: my_stprintf_s(buffer, buffer_len, _T("jb7 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xf4: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x700 | program_r(ptr++))); break;
+ case 0xf5: if (!upi41)
+ my_stprintf_s(buffer, buffer_len, _T("sel mb1"));
+ else
+ my_stprintf_s(buffer, buffer_len, _T("en flags")); break;
+ case 0xf6: my_stprintf_s(buffer, buffer_len, _T("jc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xf7: my_stprintf_s(buffer, buffer_len, _T("rlc a")); break;
+ case 0xf8: my_stprintf_s(buffer, buffer_len, _T("mov a,r0")); break;
+ case 0xf9: my_stprintf_s(buffer, buffer_len, _T("mov a,r1")); break;
+ case 0xfa: my_stprintf_s(buffer, buffer_len, _T("mov a,r2")); break;
+ case 0xfb: my_stprintf_s(buffer, buffer_len, _T("mov a,r3")); break;
+ case 0xfc: my_stprintf_s(buffer, buffer_len, _T("mov a,r4")); break;
+ case 0xfd: my_stprintf_s(buffer, buffer_len, _T("mov a,r5")); break;
+ case 0xfe: my_stprintf_s(buffer, buffer_len, _T("mov a,r6")); break;
+ case 0xff: my_stprintf_s(buffer, buffer_len, _T("mov a,r7")); break;
+ default: my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+
+ }
+#else
+ my_stprintf_s(buffer, buffer_len, _T("**OP $%02x"), program_r(ptr++));
+#endif
+ return ptr - pc;
+}
+//#endif
+
return 0xff;
}
#endif
-
+ int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
// unique functions
#ifdef USE_DEBUGGER
void set_context_debugger(DEBUGGER* device)
uint32_t ptr = pc;
#define upi41 false
-
- switch (program_r(ptr++))
- {
- case 0x00: my_stprintf_s(buffer, buffer_len, _T("nop")); break;
- case 0x02: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("out bus,a"));
- else
- my_stprintf_s(buffer, buffer_len, _T("out dbb,a")); break;
- case 0x03: my_stprintf_s(buffer, buffer_len, _T("add a,#$%02X"), program_r(ptr++)); break;
- case 0x04: my_stprintf_s(buffer, buffer_len, _T("jmp $0%02X"), program_r(ptr++)); break;
- case 0x05: my_stprintf_s(buffer, buffer_len, _T("en i")); break;
- case 0x07: my_stprintf_s(buffer, buffer_len, _T("dec a")); break;
- case 0x08: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("in a,bus"));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x09: my_stprintf_s(buffer, buffer_len, _T("in a,p1")); break;
- case 0x0a: my_stprintf_s(buffer, buffer_len, _T("in a,p2")); break;
- case 0x0c: my_stprintf_s(buffer, buffer_len, _T("movd a,p4")); break;
- case 0x0d: my_stprintf_s(buffer, buffer_len, _T("movd a,p5")); break;
- case 0x0e: my_stprintf_s(buffer, buffer_len, _T("movd a,p6")); break;
- case 0x0f: my_stprintf_s(buffer, buffer_len, _T("movd a,p7")); break;
- case 0x10: my_stprintf_s(buffer, buffer_len, _T("inc @r0")); break;
- case 0x11: my_stprintf_s(buffer, buffer_len, _T("inc @r1")); break;
- case 0x12: my_stprintf_s(buffer, buffer_len, _T("jb0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x13: my_stprintf_s(buffer, buffer_len, _T("addc a,#$%02X"), program_r(ptr++)); break;
- case 0x14: my_stprintf_s(buffer, buffer_len, _T("call $0%02X"), program_r(ptr++)); break;
- case 0x15: my_stprintf_s(buffer, buffer_len, _T("dis i")); break;
- case 0x16: my_stprintf_s(buffer, buffer_len, _T("jtf $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x17: my_stprintf_s(buffer, buffer_len, _T("inc a")); break;
- case 0x18: my_stprintf_s(buffer, buffer_len, _T("inc r0")); break;
- case 0x19: my_stprintf_s(buffer, buffer_len, _T("inc r1")); break;
- case 0x1a: my_stprintf_s(buffer, buffer_len, _T("inc r2")); break;
- case 0x1b: my_stprintf_s(buffer, buffer_len, _T("inc r3")); break;
- case 0x1c: my_stprintf_s(buffer, buffer_len, _T("inc r4")); break;
- case 0x1d: my_stprintf_s(buffer, buffer_len, _T("inc r5")); break;
- case 0x1e: my_stprintf_s(buffer, buffer_len, _T("inc r6")); break;
- case 0x1f: my_stprintf_s(buffer, buffer_len, _T("inc r7")); break;
- case 0x20: my_stprintf_s(buffer, buffer_len, _T("xch a,@r0")); break;
- case 0x21: my_stprintf_s(buffer, buffer_len, _T("xch a,@r1")); break;
- case 0x22: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("illegal"));
- else
- my_stprintf_s(buffer, buffer_len, _T("in a,dbb")); break;
- case 0x23: my_stprintf_s(buffer, buffer_len, _T("mov a,#$%02X"), program_r(ptr++)); break;
- case 0x24: my_stprintf_s(buffer, buffer_len, _T("jmp $1%02X"), program_r(ptr++)); break;
- case 0x25: my_stprintf_s(buffer, buffer_len, _T("en tcnti")); break;
- case 0x26: my_stprintf_s(buffer, buffer_len, _T("jnt0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x27: my_stprintf_s(buffer, buffer_len, _T("clr a")); break;
- case 0x28: my_stprintf_s(buffer, buffer_len, _T("xch a,r0")); break;
- case 0x29: my_stprintf_s(buffer, buffer_len, _T("xch a,r1")); break;
- case 0x2a: my_stprintf_s(buffer, buffer_len, _T("xch a,r2")); break;
- case 0x2b: my_stprintf_s(buffer, buffer_len, _T("xch a,r3")); break;
- case 0x2c: my_stprintf_s(buffer, buffer_len, _T("xch a,r4")); break;
- case 0x2d: my_stprintf_s(buffer, buffer_len, _T("xch a,r5")); break;
- case 0x2e: my_stprintf_s(buffer, buffer_len, _T("xch a,r6")); break;
- case 0x2f: my_stprintf_s(buffer, buffer_len, _T("xch a,r7")); break;
- case 0x30: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r0")); break;
- case 0x31: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r1")); break;
- case 0x32: my_stprintf_s(buffer, buffer_len, _T("jb1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x34: my_stprintf_s(buffer, buffer_len, _T("call $1%02X"), program_r(ptr++)); break;
- case 0x35: my_stprintf_s(buffer, buffer_len, _T("dis tcnti")); break;
- case 0x36: my_stprintf_s(buffer, buffer_len, _T("jt0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x37: my_stprintf_s(buffer, buffer_len, _T("cpl a")); break;
- case 0x39: my_stprintf_s(buffer, buffer_len, _T("outl p1,a")); break;
- case 0x3a: my_stprintf_s(buffer, buffer_len, _T("outl p2,a")); break;
- case 0x3c: my_stprintf_s(buffer, buffer_len, _T("movd p4,a")); break;
- case 0x3d: my_stprintf_s(buffer, buffer_len, _T("movd p5,a")); break;
- case 0x3e: my_stprintf_s(buffer, buffer_len, _T("movd p6,a")); break;
- case 0x3f: my_stprintf_s(buffer, buffer_len, _T("movd p7,a")); break;
- case 0x40: my_stprintf_s(buffer, buffer_len, _T("orl a,@r0")); break;
- case 0x41: my_stprintf_s(buffer, buffer_len, _T("orl a,@r1")); break;
- case 0x42: my_stprintf_s(buffer, buffer_len, _T("mov a,t")); break;
- case 0x43: my_stprintf_s(buffer, buffer_len, _T("orl a,#$%02X"), program_r(ptr++)); break;
- case 0x44: my_stprintf_s(buffer, buffer_len, _T("jmp $2%02X"), program_r(ptr++)); break;
- case 0x45: my_stprintf_s(buffer, buffer_len, _T("strt cnt")); break;
- case 0x46: my_stprintf_s(buffer, buffer_len, _T("jnt1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x47: my_stprintf_s(buffer, buffer_len, _T("swap a")); break;
- case 0x48: my_stprintf_s(buffer, buffer_len, _T("orl a,r0")); break;
- case 0x49: my_stprintf_s(buffer, buffer_len, _T("orl a,r1")); break;
- case 0x4a: my_stprintf_s(buffer, buffer_len, _T("orl a,r2")); break;
- case 0x4b: my_stprintf_s(buffer, buffer_len, _T("orl a,r3")); break;
- case 0x4c: my_stprintf_s(buffer, buffer_len, _T("orl a,r4")); break;
- case 0x4d: my_stprintf_s(buffer, buffer_len, _T("orl a,r5")); break;
- case 0x4e: my_stprintf_s(buffer, buffer_len, _T("orl a,r6")); break;
- case 0x4f: my_stprintf_s(buffer, buffer_len, _T("orl a,r7")); break;
- case 0x50: my_stprintf_s(buffer, buffer_len, _T("anl a,@r0")); break;
- case 0x51: my_stprintf_s(buffer, buffer_len, _T("anl a,@r1")); break;
- case 0x52: my_stprintf_s(buffer, buffer_len, _T("jb2 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x53: my_stprintf_s(buffer, buffer_len, _T("anl a,#$%02X"), program_r(ptr++)); break;
- case 0x54: my_stprintf_s(buffer, buffer_len, _T("call $2%02X"), program_r(ptr++)); break;
- case 0x55: my_stprintf_s(buffer, buffer_len, _T("strt t")); break;
- case 0x56: my_stprintf_s(buffer, buffer_len, _T("jt1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x57: my_stprintf_s(buffer, buffer_len, _T("da a")); break;
- case 0x58: my_stprintf_s(buffer, buffer_len, _T("anl a,r0")); break;
- case 0x59: my_stprintf_s(buffer, buffer_len, _T("anl a,r1")); break;
- case 0x5a: my_stprintf_s(buffer, buffer_len, _T("anl a,r2")); break;
- case 0x5b: my_stprintf_s(buffer, buffer_len, _T("anl a,r3")); break;
- case 0x5c: my_stprintf_s(buffer, buffer_len, _T("anl a,r4")); break;
- case 0x5d: my_stprintf_s(buffer, buffer_len, _T("anl a,r5")); break;
- case 0x5e: my_stprintf_s(buffer, buffer_len, _T("anl a,r6")); break;
- case 0x5f: my_stprintf_s(buffer, buffer_len, _T("anl a,r7")); break;
- case 0x60: my_stprintf_s(buffer, buffer_len, _T("add a,@r0")); break;
- case 0x61: my_stprintf_s(buffer, buffer_len, _T("add a,@r1")); break;
- case 0x62: my_stprintf_s(buffer, buffer_len, _T("mov t,a")); break;
- case 0x64: my_stprintf_s(buffer, buffer_len, _T("jmp $3%02X"), program_r(ptr++)); break;
- case 0x65: my_stprintf_s(buffer, buffer_len, _T("stop tcnt")); break;
- case 0x67: my_stprintf_s(buffer, buffer_len, _T("rrc a")); break;
- case 0x68: my_stprintf_s(buffer, buffer_len, _T("add a,r0")); break;
- case 0x69: my_stprintf_s(buffer, buffer_len, _T("add a,r1")); break;
- case 0x6a: my_stprintf_s(buffer, buffer_len, _T("add a,r2")); break;
- case 0x6b: my_stprintf_s(buffer, buffer_len, _T("add a,r3")); break;
- case 0x6c: my_stprintf_s(buffer, buffer_len, _T("add a,r4")); break;
- case 0x6d: my_stprintf_s(buffer, buffer_len, _T("add a,r5")); break;
- case 0x6e: my_stprintf_s(buffer, buffer_len, _T("add a,r6")); break;
- case 0x6f: my_stprintf_s(buffer, buffer_len, _T("add a,r7")); break;
- case 0x70: my_stprintf_s(buffer, buffer_len, _T("addc a,@r0")); break;
- case 0x71: my_stprintf_s(buffer, buffer_len, _T("addc a,@r1")); break;
- case 0x72: my_stprintf_s(buffer, buffer_len, _T("jb3 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x74: my_stprintf_s(buffer, buffer_len, _T("call $3%02X"), program_r(ptr++)); break;
- case 0x75: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("ent0 clk"));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x76: my_stprintf_s(buffer, buffer_len, _T("jf1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x77: my_stprintf_s(buffer, buffer_len, _T("rr a")); break;
- case 0x78: my_stprintf_s(buffer, buffer_len, _T("addc a,r0")); break;
- case 0x79: my_stprintf_s(buffer, buffer_len, _T("addc a,r1")); break;
- case 0x7a: my_stprintf_s(buffer, buffer_len, _T("addc a,r2")); break;
- case 0x7b: my_stprintf_s(buffer, buffer_len, _T("addc a,r3")); break;
- case 0x7c: my_stprintf_s(buffer, buffer_len, _T("addc a,r4")); break;
- case 0x7d: my_stprintf_s(buffer, buffer_len, _T("addc a,r5")); break;
- case 0x7e: my_stprintf_s(buffer, buffer_len, _T("addc a,r6")); break;
- case 0x7f: my_stprintf_s(buffer, buffer_len, _T("addc a,r7")); break;
- case 0x80: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("movx a,@r0"));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x81: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("movx a,@r1"));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x83: my_stprintf_s(buffer, buffer_len, _T("ret")); break;
- case 0x84: my_stprintf_s(buffer, buffer_len, _T("jmp $4%02X"), program_r(ptr++)); break;
- case 0x85: my_stprintf_s(buffer, buffer_len, _T("clr f0")); break;
- case 0x86: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("jni $%03X"), (pc & 0xf00) | program_r(ptr++));
- else
- my_stprintf_s(buffer, buffer_len, _T("jobf $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x88: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("orl bus,#$%02X"), program_r(ptr++));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x89: my_stprintf_s(buffer, buffer_len, _T("orl p1,#$%02X"), program_r(ptr++)); break;
- case 0x8a: my_stprintf_s(buffer, buffer_len, _T("orl p2,#$%02X"), program_r(ptr++)); break;
- case 0x8c: my_stprintf_s(buffer, buffer_len, _T("orld p4,a")); break;
- case 0x8d: my_stprintf_s(buffer, buffer_len, _T("orld p5,a")); break;
- case 0x8e: my_stprintf_s(buffer, buffer_len, _T("orld p6,a")); break;
- case 0x8f: my_stprintf_s(buffer, buffer_len, _T("orld p7,a")); break;
- case 0x90: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("movx @r0,a"));
- else
- my_stprintf_s(buffer, buffer_len, _T("mov sts,a")); break;
- case 0x91: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("movx @r1,a"));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x92: my_stprintf_s(buffer, buffer_len, _T("jb4 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x93: my_stprintf_s(buffer, buffer_len, _T("retr")); break;
- case 0x94: my_stprintf_s(buffer, buffer_len, _T("call $4%02X"), program_r(ptr++)); break;
- case 0x95: my_stprintf_s(buffer, buffer_len, _T("cpl f0")); break;
- case 0x96: my_stprintf_s(buffer, buffer_len, _T("jnz $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x97: my_stprintf_s(buffer, buffer_len, _T("clr c")); break;
- case 0x98: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("anl bus,#$%02X"), program_r(ptr++));
- else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x99: my_stprintf_s(buffer, buffer_len, _T("anl p1,#$%02X"), program_r(ptr++)); break;
- case 0x9a: my_stprintf_s(buffer, buffer_len, _T("anl p2,#$%02X"), program_r(ptr++)); break;
- case 0x9c: my_stprintf_s(buffer, buffer_len, _T("anld p4,a")); break;
- case 0x9d: my_stprintf_s(buffer, buffer_len, _T("anld p5,a")); break;
- case 0x9e: my_stprintf_s(buffer, buffer_len, _T("anld p6,a")); break;
- case 0x9f: my_stprintf_s(buffer, buffer_len, _T("anld p7,a")); break;
- case 0xa0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,a")); break;
- case 0xa1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,a")); break;
- case 0xa3: my_stprintf_s(buffer, buffer_len, _T("movp a,@a")); break;
- case 0xa4: my_stprintf_s(buffer, buffer_len, _T("jmp $5%02X"), program_r(ptr++)); break;
- case 0xa5: my_stprintf_s(buffer, buffer_len, _T("clr f1")); break;
- case 0xa7: my_stprintf_s(buffer, buffer_len, _T("cpl c")); break;
- case 0xa8: my_stprintf_s(buffer, buffer_len, _T("mov r0,a")); break;
- case 0xa9: my_stprintf_s(buffer, buffer_len, _T("mov r1,a")); break;
- case 0xaa: my_stprintf_s(buffer, buffer_len, _T("mov r2,a")); break;
- case 0xab: my_stprintf_s(buffer, buffer_len, _T("mov r3,a")); break;
- case 0xac: my_stprintf_s(buffer, buffer_len, _T("mov r4,a")); break;
- case 0xad: my_stprintf_s(buffer, buffer_len, _T("mov r5,a")); break;
- case 0xae: my_stprintf_s(buffer, buffer_len, _T("mov r6,a")); break;
- case 0xaf: my_stprintf_s(buffer, buffer_len, _T("mov r7,a")); break;
- case 0xb0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,#$%02X"), program_r(ptr++)); break;
- case 0xb1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,#$%02X"), program_r(ptr++)); break;
- case 0xb2: my_stprintf_s(buffer, buffer_len, _T("jb5 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xb3: my_stprintf_s(buffer, buffer_len, _T("jmpp @a")); break;
- case 0xb4: my_stprintf_s(buffer, buffer_len, _T("call $5%02X"), program_r(ptr++)); break;
- case 0xb5: my_stprintf_s(buffer, buffer_len, _T("cpl f1")); break;
- case 0xb6: my_stprintf_s(buffer, buffer_len, _T("jf0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xb8: my_stprintf_s(buffer, buffer_len, _T("mov r0,#$%02X"), program_r(ptr++)); break;
- case 0xb9: my_stprintf_s(buffer, buffer_len, _T("mov r1,#$%02X"), program_r(ptr++)); break;
- case 0xba: my_stprintf_s(buffer, buffer_len, _T("mov r2,#$%02X"), program_r(ptr++)); break;
- case 0xbb: my_stprintf_s(buffer, buffer_len, _T("mov r3,#$%02X"), program_r(ptr++)); break;
- case 0xbc: my_stprintf_s(buffer, buffer_len, _T("mov r4,#$%02X"), program_r(ptr++)); break;
- case 0xbd: my_stprintf_s(buffer, buffer_len, _T("mov r5,#$%02X"), program_r(ptr++)); break;
- case 0xbe: my_stprintf_s(buffer, buffer_len, _T("mov r6,#$%02X"), program_r(ptr++)); break;
- case 0xbf: my_stprintf_s(buffer, buffer_len, _T("mov r7,#$%02X"), program_r(ptr++)); break;
- case 0xc4: my_stprintf_s(buffer, buffer_len, _T("jmp $6%02X"), program_r(ptr++)); break;
- case 0xc5: my_stprintf_s(buffer, buffer_len, _T("sel rb0")); break;
- case 0xc6: my_stprintf_s(buffer, buffer_len, _T("jz $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov a,psw")); break;
- case 0xc8: my_stprintf_s(buffer, buffer_len, _T("dec r0")); break;
- case 0xc9: my_stprintf_s(buffer, buffer_len, _T("dec r1")); break;
- case 0xca: my_stprintf_s(buffer, buffer_len, _T("dec r2")); break;
- case 0xcb: my_stprintf_s(buffer, buffer_len, _T("dec r3")); break;
- case 0xcc: my_stprintf_s(buffer, buffer_len, _T("dec r4")); break;
- case 0xcd: my_stprintf_s(buffer, buffer_len, _T("dec r5")); break;
- case 0xce: my_stprintf_s(buffer, buffer_len, _T("dec r6")); break;
- case 0xcf: my_stprintf_s(buffer, buffer_len, _T("dec r7")); break;
- case 0xd0: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r0")); break;
- case 0xd1: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r1")); break;
- case 0xd2: my_stprintf_s(buffer, buffer_len, _T("jb6 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xd3: my_stprintf_s(buffer, buffer_len, _T("xrl a,#$%02X"), program_r(ptr++)); break;
- case 0xd4: my_stprintf_s(buffer, buffer_len, _T("call $6%02X"), program_r(ptr++)); break;
- case 0xd5: my_stprintf_s(buffer, buffer_len, _T("sel rb1")); break;
- case 0xd6: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("illegal"));
- else
- my_stprintf_s(buffer, buffer_len, _T("jnibf $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xd7: my_stprintf_s(buffer, buffer_len, _T("mov psw,a")); break;
- case 0xd8: my_stprintf_s(buffer, buffer_len, _T("xrl a,r0")); break;
- case 0xd9: my_stprintf_s(buffer, buffer_len, _T("xrl a,r1")); break;
- case 0xda: my_stprintf_s(buffer, buffer_len, _T("xrl a,r2")); break;
- case 0xdb: my_stprintf_s(buffer, buffer_len, _T("xrl a,r3")); break;
- case 0xdc: my_stprintf_s(buffer, buffer_len, _T("xrl a,r4")); break;
- case 0xdd: my_stprintf_s(buffer, buffer_len, _T("xrl a,r5")); break;
- case 0xde: my_stprintf_s(buffer, buffer_len, _T("xrl a,r6")); break;
- case 0xdf: my_stprintf_s(buffer, buffer_len, _T("xrl a,r7")); break;
- case 0xe3: my_stprintf_s(buffer, buffer_len, _T("movp3 a,@a")); break;
- case 0xe4: my_stprintf_s(buffer, buffer_len, _T("jmp $7%02X"), program_r(ptr++)); break;
- case 0xe5: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("sel mb0"));
- else
- my_stprintf_s(buffer, buffer_len, _T("en dma")); break;
- case 0xe6: my_stprintf_s(buffer, buffer_len, _T("jnc $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xe7: my_stprintf_s(buffer, buffer_len, _T("rl a")); break;
- case 0xe8: my_stprintf_s(buffer, buffer_len, _T("djnz r0,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xe9: my_stprintf_s(buffer, buffer_len, _T("djnz r1,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xea: my_stprintf_s(buffer, buffer_len, _T("djnz r2,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xeb: my_stprintf_s(buffer, buffer_len, _T("djnz r3,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xec: my_stprintf_s(buffer, buffer_len, _T("djnz r4,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xed: my_stprintf_s(buffer, buffer_len, _T("djnz r5,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xee: my_stprintf_s(buffer, buffer_len, _T("djnz r6,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xef: my_stprintf_s(buffer, buffer_len, _T("djnz r7,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xf0: my_stprintf_s(buffer, buffer_len, _T("mov a,@r0")); break;
- case 0xf1: my_stprintf_s(buffer, buffer_len, _T("mov a,@r1")); break;
- case 0xf2: my_stprintf_s(buffer, buffer_len, _T("jb7 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xf4: my_stprintf_s(buffer, buffer_len, _T("call $7%02X"), program_r(ptr++)); break;
- case 0xf5: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("sel mb1"));
- else
- my_stprintf_s(buffer, buffer_len, _T("en flags")); break;
- case 0xf6: my_stprintf_s(buffer, buffer_len, _T("jc $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xf7: my_stprintf_s(buffer, buffer_len, _T("rlc a")); break;
- case 0xf8: my_stprintf_s(buffer, buffer_len, _T("mov a,r0")); break;
- case 0xf9: my_stprintf_s(buffer, buffer_len, _T("mov a,r1")); break;
- case 0xfa: my_stprintf_s(buffer, buffer_len, _T("mov a,r2")); break;
- case 0xfb: my_stprintf_s(buffer, buffer_len, _T("mov a,r3")); break;
- case 0xfc: my_stprintf_s(buffer, buffer_len, _T("mov a,r4")); break;
- case 0xfd: my_stprintf_s(buffer, buffer_len, _T("mov a,r5")); break;
- case 0xfe: my_stprintf_s(buffer, buffer_len, _T("mov a,r6")); break;
- case 0xff: my_stprintf_s(buffer, buffer_len, _T("mov a,r7")); break;
- default: my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- }
+ my_stprintf_s(buffer, buffer_len, _T("**OP $%02x"), program_r(ptr++));
return ptr - pc;
}
//#endif
uint32_t read_debug_io8(uint32_t addr);
bool write_debug_reg(const _TCHAR *reg, uint32_t data);
void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
- int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
+ virtual int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
void save_state(FILEIO* state_state_fio);
bool load_state(FILEIO* state_state_fio);
*/
#include "m6502.h"
+#ifdef USE_DEBUGGER
+#include "debugger.h"
+#endif
// vectors
#define NMI_VEC 0xfffa
{
A = X = Y = P = 0;
SPD = EAD = ZPD = PCD = 0;
+#ifdef USE_DEBUGGER
+ d_mem_stored = d_mem;
+ d_debugger->set_context_mem(d_mem);
+#endif
}
void M6502::reset()
} else {
// run only one opcode
icount = 0;
- run_one_opecode();
+#ifdef USE_DEBUGGER
+ bool now_debugging = d_debugger->now_debugging;
+ if(now_debugging) {
+ d_debugger->check_break_points(PCW);
+ if(d_debugger->now_suspended) {
+ emu->mute_sound();
+ while(d_debugger->now_debugging && d_debugger->now_suspended) {
+ emu->sleep(10);
+ }
+ }
+ if(d_debugger->now_debugging) {
+ d_mem = d_debugger;
+ } else {
+ now_debugging = false;
+ }
+
+ run_one_opecode();
+
+ if(now_debugging) {
+ if(!d_debugger->now_going) {
+ d_debugger->now_suspended = true;
+ }
+ d_mem = d_mem_stored;
+ }
+ } else {
+#endif
+ run_one_opecode();
+#ifdef USE_DEBUGGER
+ }
+#endif
return -icount;
}
} else {
// run cpu while given clocks
while(icount > 0 && !busreq) {
- run_one_opecode();
+#ifdef USE_DEBUGGER
+ bool now_debugging = d_debugger->now_debugging;
+ if(now_debugging) {
+ d_debugger->check_break_points(PCW);
+ if(d_debugger->now_suspended) {
+ emu->mute_sound();
+ while(d_debugger->now_debugging && d_debugger->now_suspended) {
+ emu->sleep(10);
+ }
+ }
+ if(d_debugger->now_debugging) {
+ d_mem = d_debugger;
+ } else {
+ now_debugging = false;
+ }
+
+ run_one_opecode();
+
+ if(now_debugging) {
+ if(!d_debugger->now_going) {
+ d_debugger->now_suspended = true;
+ }
+ d_mem = d_mem_stored;
+ }
+ } else {
+#endif
+ run_one_opecode();
+#ifdef USE_DEBUGGER
+ }
+#endif
}
// if busreq is raised, spin cpu while remained clock
if(icount > 0 && busreq) {
} else if(pending_irq) {
update_irq();
}
- prev_pc = pc.w.l;
+ prev_pc = PCW;
uint8_t code = RDOP();
OP(code);
}
}
+#ifdef USE_DEBUGGER
+void M6502::write_debug_data8(uint32_t addr, uint32_t data)
+{
+ int wait;
+ d_mem_stored->write_data8w(addr, data, &wait);
+}
+
+uint32_t M6502::read_debug_data8(uint32_t addr)
+{
+ int wait;
+ return d_mem_stored->read_data8w(addr, &wait);
+}
+
+bool M6502::write_debug_reg(const _TCHAR *reg, uint32_t data)
+{
+ if(_tcsicmp(reg, _T("PC")) == 0) {
+ PCW = data;
+ } else if(_tcsicmp(reg, _T("A")) == 0) {
+ A = data;
+ } else if(_tcsicmp(reg, _T("X")) == 0) {
+ X = data;
+ } else if(_tcsicmp(reg, _T("Y")) == 0) {
+ Y = data;
+ } else if(_tcsicmp(reg, _T("S")) == 0) {
+ S = data;
+ } else if(_tcsicmp(reg, _T("P")) == 0) {
+ P = data;
+ } else {
+ return false;
+ }
+ return true;
+}
+
+void M6502::get_debug_regs_info(_TCHAR *buffer, size_t buffer_len)
+{
+ my_stprintf_s(buffer, buffer_len,
+ _T("PC = %04X A = %02X X = %02X Y = %02X S = %02X P = %02X [%c%c%c%c%c%c%c%c]"),
+ PCW, A, X, Y, S, P,
+ (P & F_N) ? _T('N') : _T('-'), (P & F_V) ? _T('V') : _T('-'), (P & F_T) ? _T('T') : _T('-'), (P & F_B) ? _T('B') : _T('-'),
+ (P & F_D) ? _T('D') : _T('-'), (P & F_I) ? _T('I') : _T('-'), (P & F_Z) ? _T('Z') : _T('-'), (P & F_C) ? _T('C') : _T('-'));
+}
+
+// disassembler
+
+#define offs_t UINT16
+
+/*****************************************************************************/
+/* src/emu/devcpu.h */
+
+// CPU interface functions
+#define CPU_DISASSEMBLE_NAME(name) cpu_disassemble_##name
+#define CPU_DISASSEMBLE(name) int CPU_DISASSEMBLE_NAME(name)(_TCHAR *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, symbol_t *first_symbol)
+#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(buffer, pc, oprom, oprom, d_debugger->first_symbol)
+
+/*****************************************************************************/
+/* src/emu/didisasm.h */
+
+// Disassembler constants
+const UINT32 DASMFLAG_SUPPORTED = 0x80000000; // are disassembly flags supported?
+const UINT32 DASMFLAG_STEP_OUT = 0x40000000; // this instruction should be the end of a step out sequence
+const UINT32 DASMFLAG_STEP_OVER = 0x20000000; // this instruction should be stepped over by setting a breakpoint afterwards
+const UINT32 DASMFLAG_OVERINSTMASK = 0x18000000; // number of extra instructions to skip when stepping over
+const UINT32 DASMFLAG_OVERINSTSHIFT = 27; // bits to shift after masking to get the value
+const UINT32 DASMFLAG_LENGTHMASK = 0x0000ffff; // the low 16-bits contain the actual length
+
+#include "mame/emu/cpu/m6502/6502dasm.c"
+
+int M6502::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len)
+{
+ uint8_t oprom[4];
+ uint8_t *opram = oprom;
+
+ for(int i = 0; i < 4; i++) {
+ int wait;
+ oprom[i] = d_mem->read_data8w(pc + i, &wait);
+ }
+ return CPU_DISASSEMBLE_CALL(m6502) & DASMFLAG_LENGTHMASK;
+}
+#endif
+
#define STATE_VERSION 1
void M6502::save_state(FILEIO* state_fio)
#define SIG_M6502_OVERFLOW 0
+#ifdef USE_DEBUGGER
+class DEBUGGER;
+#endif
+
class M6502 : public DEVICE
{
private:
DEVICE *d_mem, *d_pic;
+#ifdef USE_DEBUGGER
+ DEBUGGER *d_debugger;
+ DEVICE *d_mem_stored;
+#endif
pair_t pc, sp, zp, ea;
uint16_t prev_pc;
{
return prev_pc;
}
+ uint32_t get_next_pc()
+ {
+ return pc.w.l;
+ }
+#ifdef USE_DEBUGGER
+ void *get_debugger()
+ {
+ return d_debugger;
+ }
+ uint32_t get_debug_prog_addr_mask()
+ {
+ return 0xffff;
+ }
+ uint32_t get_debug_data_addr_mask()
+ {
+ return 0xffff;
+ }
+ void write_debug_data8(uint32_t addr, uint32_t data);
+ uint32_t read_debug_data8(uint32_t addr);
+ bool write_debug_reg(const _TCHAR *reg, uint32_t data);
+ void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
+ int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
+#endif
void save_state(FILEIO* state_fio);
bool load_state(FILEIO* state_fio);
{
d_pic = device;
}
+#ifdef USE_DEBUGGER
+ void set_context_debugger(DEBUGGER* device)
+ {
+ d_debugger = device;
+ }
+#endif
};
#endif
PC++;
opc = op6280[OP];
- arg = op6280[OP+1];
+ arg = op6280[OP+1];
- if (opc == _jsr || opc == _bsr)
- flags = DASMFLAG_STEP_OVER;
- else if (opc == _rts)
- flags = DASMFLAG_STEP_OUT;
+ if (opc == _jsr || opc == _bsr)
+ flags = DASMFLAG_STEP_OVER;
+ else if (opc == _rts)
+ flags = DASMFLAG_STEP_OUT;
switch(arg)
{
_stprintf(buffer,_T("%s"), token[opc]);
break;
case _rel:
- _stprintf(buffer,_T("%-5s$%04X"), token[opc], (PC + 1 + (signed char)_RDBYTE(PC)) & 0xffff);
+ _stprintf(buffer,_T("%-5s%s"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), (PC + 1 + (signed char)_RDBYTE(PC)) & 0xffff));
PC+=1;
break;
case _imm:
break;
case _zpi:
_stprintf(buffer,_T("%-5s($%02X)"), token[opc], _RDBYTE(PC));
- PC+=1;
- break;
+ PC+=1;
+ break;
case _abs:
- _stprintf(buffer,_T("%-5s$%04X"), token[opc], _RDWORD(PC));
+ _stprintf(buffer,_T("%-5s%s"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC)));
PC+=2;
break;
case _abx:
- _stprintf(buffer,_T("%-5s$%04X,x"), token[opc], _RDWORD(PC));
+ _stprintf(buffer,_T("%-5s%s,x"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC)));
PC+=2;
break;
case _aby:
- _stprintf(buffer,_T("%-5s$%04X,y"), token[opc], _RDWORD(PC));
+ _stprintf(buffer,_T("%-5s%s,y"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC)));
PC+=2;
break;
case _ind:
- _stprintf(buffer,_T("%-5s($%04X)"), token[opc], _RDWORD(PC));
+ _stprintf(buffer,_T("%-5s(%s)"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC)));
PC+=2;
break;
case _iax:
- _stprintf(buffer,_T("%-5s($%04X),X"), token[opc], _RDWORD(PC));
+ _stprintf(buffer,_T("%-5s(%s),X"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC)));
PC+=2;
- break;
+ break;
case _blk:
- _stprintf(buffer,_T("%-5s$%04X $%04X $%04X"), token[opc], _RDWORD(PC), _RDWORD(PC+2), _RDWORD(PC+4));
+ _stprintf(buffer,_T("%-5s%s %s %s"), token[opc], get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC)), get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC+2)), get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC+4)));
PC+=6;
- break;
+ break;
case _zrl:
- _stprintf(buffer,_T("%-5s$%02X $%04X"), token[opc], _RDBYTE(PC), (PC + 2 + (signed char)_RDBYTE(PC+1)) & 0xffff);
+ _stprintf(buffer,_T("%-5s$%02X %s"), token[opc], _RDBYTE(PC), get_value_or_symbol(first_symbol, _T("$%04X"), (PC + 2 + (signed char)_RDBYTE(PC+1)) & 0xffff));
PC+=2;
break;
case _imz:
PC+=2;
break;
case _ima:
- _stprintf(buffer,_T("%-5s#$%02X $%04X"), token[opc], _RDBYTE(PC), _RDWORD(PC+1));
+ _stprintf(buffer,_T("%-5s#$%02X %s"), token[opc], _RDBYTE(PC), get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC+1)));
PC+=3;
break;
case _imx:
- _stprintf(buffer,_T("%-5s#$%02X $%04X,x"), token[opc], _RDBYTE(PC), _RDWORD(PC+1));
+ _stprintf(buffer,_T("%-5s#$%02X %s,x"), token[opc], _RDBYTE(PC), get_value_or_symbol(first_symbol, _T("$%04X"), _RDWORD(PC+1)));
PC+=3;
break;
--- /dev/null
+/*****************************************************************************
+ *
+ * 6502dasm.c
+ * 6502/65c02/6510 disassembler
+ *
+ * Copyright Juergen Buchmueller, all rights reserved.
+ *
+ * - This source code is released as freeware for non-commercial purposes.
+ * - You are free to use and redistribute this code in modified or
+ * unmodified form, provided you list me in the credits.
+ * - If you modify this source code, you must add a notice to each modified
+ * source file that it has been changed. If you're a nice person, you
+ * will clearly mark each change too. :)
+ * - If you wish to use this for commercial purposes, please contact me at
+ * pullmoll@t-online.de
+ * - The author of this copywritten work reserves the right to change the
+ * terms of its usage and license at any time, including retroactively
+ * - This entire notice must remain in the source code.
+ *
+ *****************************************************************************/
+/* 2. February 2000 PeT added support for 65sc02 subtype */
+/* 2. February 2000 PeT added support for 65ce02 variant */
+/* 3. February 2000 PeT bbr bbs displayment */
+/* 4. February 2000 PeT ply inw dew */
+/* 4. February 2000 PeT fixed relative word operand */
+/* 9. May 2000 PeT added m4510 */
+/* 18.April 2008 Roberto Fresca fixed bbr, bbs, rmb & smb displayment,
+ showing the correct bit to operate */
+
+//#include "emu.h"
+//#include "debugger.h"
+//#include "m6502.h"
+//#include "m65ce02.h"
+//#include "m6509.h"
+//#include "m4510.h"
+
+enum addr_mode {
+ non, /* no additional arguments */
+ imp, /* implicit */
+ acc, /* accumulator */
+ imm, /* immediate */
+ iw2, /* immediate word (65ce02) */
+ iw3, /* augment (65ce02) */
+ adr, /* absolute address (jmp,jsr) */
+ aba, /* absolute */
+ zpg, /* zero page */
+ zpx, /* zero page + X */
+ zpy, /* zero page + Y */
+ zpi, /* zero page indirect (65c02) */
+ zpb, /* zero page and branch (65c02 bbr,bbs) */
+ abx, /* absolute + X */
+ aby, /* absolute + Y */
+ rel, /* relative */
+ rw2, /* relative word (65cs02, 65ce02) */
+ idx, /* zero page pre indexed */
+ idy, /* zero page post indexed */
+ idz, /* zero page post indexed (65ce02) */
+ isy, /* zero page pre indexed sp and post indexed y (65ce02) */
+ ind, /* indirect (jmp) */
+ iax /* indirect + X (65c02 jmp) */
+};
+
+enum opcodes {
+ adc, and_,asl, bcc, bcs, beq, bit, bmi,
+ bne, bpl, m6502_brk, bvc, bvs, clc, cld, cli,
+ clv, cmp, cpx, cpy, dec, dex, dey, eor,
+ inc, inx, iny, jmp, jsr, lda, ldx, ldy,
+ lsr, nop, ora, pha, php, pla, plp, rol,
+ ror, rti, rts, sbc, sec, sed, sei, sta,
+ stx, sty, tax, tay, tsx, txa, txs, tya,
+ ill,
+/* 65c02 (only) mnemonics */
+ bbr, bbs, bra, rmb, smb, stz, trb, tsb,
+/* 65sc02 (only) mnemonics */
+ bsr,
+/* 6510 + 65c02 mnemonics */
+ anc, asr, ast, arr, asx, axa, dcp, dea,
+ dop, ina, isb, lax, phx, phy, plx, ply,
+ rla, rra, sax, slo, sre, sah, say, ssh,
+ sxh, syh, top, oal, kil,
+/* 65ce02 mnemonics */
+ cle, see, rtn, aug,
+ tab, tba, taz, tza, tys, tsy,
+ ldz, stz2/* real register store */,
+ dez, inz, cpz, phz, plz,
+ neg, asr2/* arithmetic shift right */,
+ asw, row, dew, inw, phw,
+/* 4510 mnemonics */
+ map,
+
+/* Deco CPU16 mnemonics */
+ vbl, u13, u8F, uAB, u87, u0B, uA3, u4B,
+ u3F, uBB, u23
+};
+
+
+static const _TCHAR *const token[]=
+{
+ _T("adc"), _T("and"), _T("asl"), _T("bcc"), _T("bcs"), _T("beq"), _T("bit"), _T("bmi"),
+ _T("bne"), _T("bpl"), _T("brk"), _T("bvc"), _T("bvs"), _T("clc"), _T("cld"), _T("cli"),
+ _T("clv"), _T("cmp"), _T("cpx"), _T("cpy"), _T("dec"), _T("dex"), _T("dey"), _T("eor"),
+ _T("inc"), _T("inx"), _T("iny"), _T("jmp"), _T("jsr"), _T("lda"), _T("ldx"), _T("ldy"),
+ _T("lsr"), _T("nop"), _T("ora"), _T("pha"), _T("php"), _T("pla"), _T("plp"), _T("rol"),
+ _T("ror"), _T("rti"), _T("rts"), _T("sbc"), _T("sec"), _T("sed"), _T("sei"), _T("sta"),
+ _T("stx"), _T("sty"), _T("tax"), _T("tay"), _T("tsx"), _T("txa"), _T("txs"), _T("tya"),
+ _T("ill"),
+/* 65c02 mnemonics */
+ _T("bbr"), _T("bbs"), _T("bra"), _T("rmb"), _T("smb"), _T("stz"), _T("trb"), _T("tsb"),
+/* 65sc02 mnemonics */
+ _T("bsr"),
+/* 6510 mnemonics */
+ _T("anc"), _T("asr"), _T("ast"), _T("arr"), _T("asx"), _T("axa"), _T("dcp"), _T("dea"),
+ _T("dop"), _T("ina"), _T("isb"), _T("lax"), _T("phx"), _T("phy"), _T("plx"), _T("ply"),
+ _T("rla"), _T("rra"), _T("sax"), _T("slo"), _T("sre"), _T("sah"), _T("say"), _T("ssh"),
+ _T("sxh"), _T("syh"), _T("top"), _T("oal"), _T("kil"),
+/* 65ce02 mnemonics */
+ _T("cle"), _T("see"), _T("rtn"), _T("aug"),
+ _T("tab"), _T("tba"), _T("taz"), _T("tza"), _T("tys"), _T("tsy"),
+ _T("ldz"), _T("stz"),
+ _T("dez"), _T("inz"), _T("cpz"), _T("phz"), _T("plz"),
+ _T("neg"), _T("asr"),
+ _T("asw"), _T("row"), _T("dew"), _T("inw"), _T("phw"),
+/* 4510 mnemonics */
+ _T("map"),
+
+/* Deco CPU16 mnemonics */
+ _T("VBL"), _T("u13"), _T("u8F"), _T("uAB"), _T("u87"), _T("u0B"), _T("uA3"), _T("u4B"),
+ _T("u3F"), _T("uBB"), _T("u23")
+};
+
+struct op6502_info
+{
+ UINT8 opc;
+ UINT8 arg;
+};
+
+static const struct op6502_info op6502[256] = {
+ {m6502_brk,imm},{ora,idx},{kil,non},{slo,idx},/* 00 */
+ {nop,zpg},{ora,zpg},{asl,zpg},{slo,zpg},
+ {php,imp},{ora,imm},{asl,acc},{anc,imm},
+ {nop,aba},{ora,aba},{asl,aba},{slo,aba},
+ {bpl,rel},{ora,idy},{kil,non},{slo,idy},/* 10 */
+ {nop,zpx},{ora,zpx},{asl,zpx},{slo,zpx},
+ {clc,imp},{ora,aby},{nop,imp},{slo,aby},
+ {nop,abx},{ora,abx},{asl,abx},{slo,abx},
+ {jsr,adr},{and_,idx},{kil,non},{rla,idx},/* 20 */
+ {bit,zpg},{and_,zpg},{rol,zpg},{rla,zpg},
+ {plp,imp},{and_,imm},{rol,acc},{anc,imm},
+ {bit,aba},{and_,aba},{rol,aba},{rla,aba},
+ {bmi,rel},{and_,idy},{kil,non},{rla,idy},/* 30 */
+ {nop,zpx},{and_,zpx},{rol,zpx},{rla,zpx},
+ {sec,imp},{and_,aby},{nop,imp},{rla,aby},
+ {nop,abx},{and_,abx},{rol,abx},{rla,abx},
+ {rti,imp},{eor,idx},{kil,non},{sre,idx},/* 40 */
+ {nop,zpg},{eor,zpg},{lsr,zpg},{sre,zpg},
+ {pha,imp},{eor,imm},{lsr,acc},{asr,imm},
+ {jmp,adr},{eor,aba},{lsr,aba},{sre,aba},
+ {bvc,rel},{eor,idy},{kil,non},{sre,idy},/* 50 */
+ {nop,zpx},{eor,zpx},{lsr,zpx},{sre,zpx},
+ {cli,imp},{eor,aby},{nop,imp},{sre,aby},
+ {nop,abx},{eor,abx},{lsr,abx},{sre,abx},
+ {rts,imp},{adc,idx},{kil,non},{rra,idx},/* 60 */
+ {nop,zpg},{adc,zpg},{ror,zpg},{rra,zpg},
+ {pla,imp},{adc,imm},{ror,acc},{arr,imm},
+ {jmp,ind},{adc,aba},{ror,aba},{rra,aba},
+ {bvs,rel},{adc,idy},{kil,non},{rra,idy},/* 70 */
+ {nop,zpx},{adc,zpx},{ror,zpx},{rra,zpx},
+ {sei,imp},{adc,aby},{nop,imp},{rra,aby},
+ {nop,abx},{adc,abx},{ror,abx},{rra,abx},
+ {nop,imm},{sta,idx},{nop,imm},{sax,idx},/* 80 */
+ {sty,zpg},{sta,zpg},{stx,zpg},{sax,zpg},
+ {dey,imp},{nop,imm},{txa,imp},{axa,imm},
+ {sty,aba},{sta,aba},{stx,aba},{sax,aba},
+ {bcc,rel},{sta,idy},{kil,non},{say,idy},/* 90 */
+ {sty,zpx},{sta,zpx},{stx,zpy},{sax,zpy},
+ {tya,imp},{sta,aby},{txs,imp},{ssh,aby},
+ {syh,abx},{sta,abx},{sxh,aby},{sah,aby},
+ {ldy,imm},{lda,idx},{ldx,imm},{lax,idx},/* a0 */
+ {ldy,zpg},{lda,zpg},{ldx,zpg},{lax,zpg},
+ {tay,imp},{lda,imm},{tax,imp},{oal,imm},
+ {ldy,aba},{lda,aba},{ldx,aba},{lax,aba},
+ {bcs,rel},{lda,idy},{kil,non},{lax,idy},/* b0 */
+ {ldy,zpx},{lda,zpx},{ldx,zpy},{lax,zpy},
+ {clv,imp},{lda,aby},{tsx,imp},{ast,aby},
+ {ldy,abx},{lda,abx},{ldx,aby},{lax,aby},
+ {cpy,imm},{cmp,idx},{nop,imm},{dcp,idx},/* c0 */
+ {cpy,zpg},{cmp,zpg},{dec,zpg},{dcp,zpg},
+ {iny,imp},{cmp,imm},{dex,imp},{asx,imm},
+ {cpy,aba},{cmp,aba},{dec,aba},{dcp,aba},
+ {bne,rel},{cmp,idy},{kil,non},{dcp,idy},/* d0 */
+ {nop,zpx},{cmp,zpx},{dec,zpx},{dcp,zpx},
+ {cld,imp},{cmp,aby},{nop,imp},{dcp,aby},
+ {nop,abx},{cmp,abx},{dec,abx},{dcp,abx},
+ {cpx,imm},{sbc,idx},{nop,imm},{isb,idx},/* e0 */
+ {cpx,zpg},{sbc,zpg},{inc,zpg},{isb,zpg},
+ {inx,imp},{sbc,imm},{nop,imp},{sbc,imm},
+ {cpx,aba},{sbc,aba},{inc,aba},{isb,aba},
+ {beq,rel},{sbc,idy},{kil,non},{isb,idy},/* f0 */
+ {nop,zpx},{sbc,zpx},{inc,zpx},{isb,zpx},
+ {sed,imp},{sbc,aby},{nop,imp},{isb,aby},
+ {nop,abx},{sbc,abx},{inc,abx},{isb,abx}
+};
+
+static const struct op6502_info op65c02[256] = {
+ {m6502_brk,imm},{ora,idx},{ill,non},{ill,non},/* 00 */
+ {tsb,zpg},{ora,zpg},{asl,zpg},{rmb,zpg},
+ {php,imp},{ora,imm},{asl,acc},{ill,non},
+ {tsb,aba},{ora,aba},{asl,aba},{bbr,zpb},
+ {bpl,rel},{ora,idy},{ora,zpi},{ill,non},/* 10 */
+ {trb,zpg},{ora,zpx},{asl,zpx},{rmb,zpg},
+ {clc,imp},{ora,aby},{ina,imp},{ill,non},
+ {trb,aba},{ora,abx},{asl,abx},{bbr,zpb},
+ {jsr,adr},{and_,idx},{ill,non},{ill,non},/* 20 */
+ {bit,zpg},{and_,zpg},{rol,zpg},{rmb,zpg},
+ {plp,imp},{and_,imm},{rol,acc},{ill,non},
+ {bit,aba},{and_,aba},{rol,aba},{bbr,zpb},
+ {bmi,rel},{and_,idy},{and_,zpi},{ill,non},/* 30 */
+ {bit,zpx},{and_,zpx},{rol,zpx},{rmb,zpg},
+ {sec,imp},{and_,aby},{dea,imp},{ill,non},
+ {bit,abx},{and_,abx},{rol,abx},{bbr,zpb},
+ {rti,imp},{eor,idx},{ill,non},{ill,non},/* 40 */
+ {ill,non},{eor,zpg},{lsr,zpg},{rmb,zpg},
+ {pha,imp},{eor,imm},{lsr,acc},{ill,non},
+ {jmp,adr},{eor,aba},{lsr,aba},{bbr,zpb},
+ {bvc,rel},{eor,idy},{eor,zpi},{ill,non},/* 50 */
+ {ill,non},{eor,zpx},{lsr,zpx},{rmb,zpg},
+ {cli,imp},{eor,aby},{phy,imp},{ill,non},
+ {ill,non},{eor,abx},{lsr,abx},{bbr,zpb},
+ {rts,imp},{adc,idx},{ill,non},{ill,non},/* 60 */
+ {stz,zpg},{adc,zpg},{ror,zpg},{rmb,zpg},
+ {pla,imp},{adc,imm},{ror,acc},{ill,non},
+ {jmp,ind},{adc,aba},{ror,aba},{bbr,zpb},
+ {bvs,rel},{adc,idy},{adc,zpi},{ill,non},/* 70 */
+ {stz,zpx},{adc,zpx},{ror,zpx},{rmb,zpg},
+ {sei,imp},{adc,aby},{ply,imp},{ill,non},
+ {jmp,iax},{adc,abx},{ror,abx},{bbr,zpb},
+ {bra,rel},{sta,idx},{ill,non},{ill,non},/* 80 */
+ {sty,zpg},{sta,zpg},{stx,zpg},{smb,zpg},
+ {dey,imp},{bit,imm},{txa,imp},{ill,non},
+ {sty,aba},{sta,aba},{stx,aba},{bbs,zpb},
+ {bcc,rel},{sta,idy},{sta,zpi},{ill,non},/* 90 */
+ {sty,zpx},{sta,zpx},{stx,zpy},{smb,zpg},
+ {tya,imp},{sta,aby},{txs,imp},{ill,non},
+ {stz,aba},{sta,abx},{stz,abx},{bbs,zpb},
+ {ldy,imm},{lda,idx},{ldx,imm},{ill,non},/* a0 */
+ {ldy,zpg},{lda,zpg},{ldx,zpg},{smb,zpg},
+ {tay,imp},{lda,imm},{tax,imp},{ill,non},
+ {ldy,aba},{lda,aba},{ldx,aba},{bbs,zpb},
+ {bcs,rel},{lda,idy},{lda,zpi},{ill,non},/* b0 */
+ {ldy,zpx},{lda,zpx},{ldx,zpy},{smb,zpg},
+ {clv,imp},{lda,aby},{tsx,imp},{ill,non},
+ {ldy,abx},{lda,abx},{ldx,aby},{bbs,zpb},
+ {cpy,imm},{cmp,idx},{ill,non},{ill,non},/* c0 */
+ {cpy,zpg},{cmp,zpg},{dec,zpg},{smb,zpg},
+ {iny,imp},{cmp,imm},{dex,imp},{ill,non},
+ {cpy,aba},{cmp,aba},{dec,aba},{bbs,zpb},
+ {bne,rel},{cmp,idy},{cmp,zpi},{ill,non},/* d0 */
+ {ill,non},{cmp,zpx},{dec,zpx},{smb,zpg},
+ {cld,imp},{cmp,aby},{phx,imp},{ill,non},
+ {ill,non},{cmp,abx},{dec,abx},{bbs,zpb},
+ {cpx,imm},{sbc,idx},{ill,non},{ill,non},/* e0 */
+ {cpx,zpg},{sbc,zpg},{inc,zpg},{smb,zpg},
+ {inx,imp},{sbc,imm},{nop,imp},{ill,non},
+ {cpx,aba},{sbc,aba},{inc,aba},{bbs,zpb},
+ {beq,rel},{sbc,idy},{sbc,zpi},{ill,non},/* f0 */
+ {ill,non},{sbc,zpx},{inc,zpx},{smb,zpg},
+ {sed,imp},{sbc,aby},{plx,imp},{ill,non},
+ {ill,non},{sbc,abx},{inc,abx},{bbs,zpb}
+};
+
+/* only bsr additional to 65c02 yet */
+static const struct op6502_info op65sc02[256] = {
+ {m6502_brk,imm},{ora,idx},{ill,non},{ill,non},/* 00 */
+ {tsb,zpg},{ora,zpg},{asl,zpg},{rmb,zpg},
+ {php,imp},{ora,imm},{asl,acc},{ill,non},
+ {tsb,aba},{ora,aba},{asl,aba},{bbr,zpb},
+ {bpl,rel},{ora,idy},{ora,zpi},{ill,non},/* 10 */
+ {trb,zpg},{ora,zpx},{asl,zpx},{rmb,zpg},
+ {clc,imp},{ora,aby},{ina,imp},{ill,non},
+ {trb,aba},{ora,abx},{asl,abx},{bbr,zpb},
+ {jsr,adr},{and_,idx},{ill,non},{ill,non},/* 20 */
+ {bit,zpg},{and_,zpg},{rol,zpg},{rmb,zpg},
+ {plp,imp},{and_,imm},{rol,acc},{ill,non},
+ {bit,aba},{and_,aba},{rol,aba},{bbr,zpb},
+ {bmi,rel},{and_,idy},{and_,zpi},{ill,non},/* 30 */
+ {bit,zpx},{and_,zpx},{rol,zpx},{rmb,zpg},
+ {sec,imp},{and_,aby},{dea,imp},{ill,non},
+ {bit,abx},{and_,abx},{rol,abx},{bbr,zpb},
+ {rti,imp},{eor,idx},{ill,non},{ill,non},/* 40 */
+ {ill,non},{eor,zpg},{lsr,zpg},{rmb,zpg},
+ {pha,imp},{eor,imm},{lsr,acc},{ill,non},
+ {jmp,adr},{eor,aba},{lsr,aba},{bbr,zpb},
+ {bvc,rel},{eor,idy},{eor,zpi},{ill,non},/* 50 */
+ {ill,non},{eor,zpx},{lsr,zpx},{rmb,zpg},
+ {cli,imp},{eor,aby},{phy,imp},{ill,non},
+ {ill,non},{eor,abx},{lsr,abx},{bbr,zpb},
+ {rts,imp},{adc,idx},{ill,non},{bsr,rw2},/* 60 */
+ {stz,zpg},{adc,zpg},{ror,zpg},{rmb,zpg},
+ {pla,imp},{adc,imm},{ror,acc},{ill,non},
+ {jmp,ind},{adc,aba},{ror,aba},{bbr,zpb},
+ {bvs,rel},{adc,idy},{adc,zpi},{ill,non},/* 70 */
+ {stz,zpx},{adc,zpx},{ror,zpx},{rmb,zpg},
+ {sei,imp},{adc,aby},{ply,imp},{ill,non},
+ {jmp,iax},{adc,abx},{ror,abx},{bbr,zpb},
+ {bra,rel},{sta,idx},{ill,non},{ill,non},/* 80 */
+ {sty,zpg},{sta,zpg},{stx,zpg},{smb,zpg},
+ {dey,imp},{bit,imm},{txa,imp},{ill,non},
+ {sty,aba},{sta,aba},{stx,aba},{bbs,zpb},
+ {bcc,rel},{sta,idy},{sta,zpi},{ill,non},/* 90 */
+ {sty,zpx},{sta,zpx},{stx,zpy},{smb,zpg},
+ {tya,imp},{sta,aby},{txs,imp},{ill,non},
+ {stz,aba},{sta,abx},{stz,abx},{bbs,zpb},
+ {ldy,imm},{lda,idx},{ldx,imm},{ill,non},/* a0 */
+ {ldy,zpg},{lda,zpg},{ldx,zpg},{smb,zpg},
+ {tay,imp},{lda,imm},{tax,imp},{ill,non},
+ {ldy,aba},{lda,aba},{ldx,aba},{bbs,zpb},
+ {bcs,rel},{lda,idy},{lda,zpi},{ill,non},/* b0 */
+ {ldy,zpx},{lda,zpx},{ldx,zpy},{smb,zpg},
+ {clv,imp},{lda,aby},{tsx,imp},{ill,non},
+ {ldy,abx},{lda,abx},{ldx,aby},{bbs,zpb},
+ {cpy,imm},{cmp,idx},{ill,non},{ill,non},/* c0 */
+ {cpy,zpg},{cmp,zpg},{dec,zpg},{smb,zpg},
+ {iny,imp},{cmp,imm},{dex,imp},{ill,non},
+ {cpy,aba},{cmp,aba},{dec,aba},{bbs,zpb},
+ {bne,rel},{cmp,idy},{cmp,zpi},{ill,non},/* d0 */
+ {ill,non},{cmp,zpx},{dec,zpx},{smb,zpg},
+ {cld,imp},{cmp,aby},{phx,imp},{ill,non},
+ {ill,non},{cmp,abx},{dec,abx},{bbs,zpb},
+ {cpx,imm},{sbc,idx},{ill,non},{ill,non},/* e0 */
+ {cpx,zpg},{sbc,zpg},{inc,zpg},{smb,zpg},
+ {inx,imp},{sbc,imm},{nop,imp},{ill,non},
+ {cpx,aba},{sbc,aba},{inc,aba},{bbs,zpb},
+ {beq,rel},{sbc,idy},{sbc,zpi},{ill,non},/* f0 */
+ {ill,non},{sbc,zpx},{inc,zpx},{smb,zpg},
+ {sed,imp},{sbc,aby},{plx,imp},{ill,non},
+ {ill,non},{sbc,abx},{inc,abx},{bbs,zpb}
+};
+
+static const struct op6502_info op65ce02[256] = {
+ {m6502_brk,imm},{ora,idx},{cle,imp},{see,imp},/* 00 */
+ {tsb,zpg},{ora,zpg},{asl,zpg},{rmb,zpg},
+ {php,imp},{ora,imm},{asl,acc},{tsy,imp},
+ {tsb,aba},{ora,aba},{asl,aba},{bbr,zpb},
+ {bpl,rel},{ora,idy},{ora,idz},{bpl,rw2},/* 10 */
+ {trb,zpg},{ora,zpx},{asl,zpx},{rmb,zpg},
+ {clc,imp},{ora,aby},{ina,imp},{inz,imp},
+ {trb,aba},{ora,abx},{asl,abx},{bbr,zpb},
+ {jsr,adr},{and_,idx},{jsr,ind},{jsr,iax},/* 20 */
+ {bit,zpg},{and_,zpg},{rol,zpg},{rmb,zpg},
+ {plp,imp},{and_,imm},{rol,acc},{tys,imp},
+ {bit,aba},{and_,aba},{rol,aba},{bbr,zpb},
+ {bmi,rel},{and_,idz},{and_,zpi},{bmi,rw2},/* 30 */
+ {bit,zpx},{and_,zpx},{rol,zpx},{rmb,zpg},
+ {sec,imp},{and_,aby},{dea,imp},{dez,imp},
+ {bit,abx},{and_,abx},{rol,abx},{bbr,zpb},
+ {rti,imp},{eor,idx},{neg,imp},{asr2,imp},/* 40 */
+ {asr2,zpg},{eor,zpg},{lsr,zpg},{rmb,zpg},
+ {pha,imp},{eor,imm},{lsr,acc},{taz,imp},
+ {jmp,adr},{eor,aba},{lsr,aba},{bbr,zpb},
+ {bvc,rel},{eor,idy},{eor,idz},{bvc,rw2},/* 50 */
+ {asr2,zpx},{eor,zpx},{lsr,zpx},{rmb,zpg},
+ {cli,imp},{eor,aby},{phy,imp},{tab,imp},
+ {aug,iw3},{eor,abx},{lsr,abx},{bbr,zpb},
+ {rts,imp},{adc,idx},{rtn,imm},{bsr,rw2},/* 60 */
+ {stz2,zpg},{adc,zpg},{ror,zpg},{rmb,zpg},
+ {pla,imp},{adc,imm},{ror,acc},{tza,imp},
+ {jmp,ind},{adc,aba},{ror,aba},{bbr,zpb},
+ {bvs,rel},{adc,idy},{adc,zpi},{bvs,rw2},/* 70 */
+ {stz2,zpx},{adc,zpx},{ror,zpx},{rmb,zpg},
+ {sei,imp},{adc,aby},{ply,imp},{tba,imp},
+ {jmp,iax},{adc,abx},{ror,abx},{bbr,zpb},
+ {bra,rel},{sta,idx},{sta,isy},{bra,rw2},/* 80 */
+ {sty,zpg},{sta,zpg},{stx,zpg},{smb,zpg},
+ {dey,imp},{bit,imm},{txa,imp},{sty,abx},
+ {sty,aba},{sta,aba},{stx,aba},{bbs,zpb},
+ {bcc,rel},{sta,idy},{sta,inz},{bcc,rw2},/* 90 */
+ {sty,zpx},{sta,zpx},{stx,zpy},{smb,zpg},
+ {tya,imp},{sta,aby},{txs,imp},{stx,aby},
+ {stz2,aba},{sta,abx},{stz2,abx},{bbs,zpb},
+ {ldy,imm},{lda,idx},{ldx,imm},{ldz,imm},/* a0 */
+ {ldy,zpg},{lda,zpg},{ldx,zpg},{smb,zpg},
+ {tay,imp},{lda,imm},{tax,imp},{ldz,aba},
+ {ldy,aba},{lda,aba},{ldx,aba},{bbs,zpb},
+ {bcs,rel},{lda,idy},{lda,inz},{bcs,rw2},/* b0 */
+ {ldy,zpx},{lda,zpx},{ldx,zpy},{smb,zpg},
+ {clv,imp},{lda,aby},{tsx,imp},{ldz,abx},
+ {ldy,abx},{lda,abx},{ldx,aby},{bbs,zpb},
+ {cpy,imm},{cmp,idx},{cpz,imm},{dew,zpg},/* c0 */
+ {cpy,zpg},{cmp,zpg},{dec,zpg},{smb,zpg},
+ {iny,imp},{cmp,imm},{dex,imp},{asw,aba},
+ {cpy,aba},{cmp,aba},{dec,aba},{bbs,zpb},
+ {bne,rel},{cmp,idy},{cmp,idz},{bne,rw2},/* d0 */
+ {cpz,zpg},{cmp,zpx},{dec,zpx},{smb,zpg},
+ {cld,imp},{cmp,aby},{phx,imp},{phz,imp},
+ {cpz,aba},{cmp,abx},{dec,abx},{bbs,zpb},
+ {cpx,imm},{sbc,idx},{lda,isy},{inw,zpg},/* e0 */
+ {cpx,zpg},{sbc,zpg},{inc,zpg},{smb,zpg},
+ {inx,imp},{sbc,imm},{nop,imp},{row,aba},
+ {cpx,aba},{sbc,aba},{inc,aba},{bbs,zpb},
+ {beq,rel},{sbc,idy},{sbc,idz},{beq,rw2},/* f0 */
+ {phw,iw2},{sbc,zpx},{inc,zpx},{smb,zpg},
+ {sed,imp},{sbc,aby},{plx,imp},{plz,imp},
+ {phw,aba},{sbc,abx},{inc,abx},{bbs,zpb}
+};
+
+// only map instead of aug and 20 bit memory management
+static const struct op6502_info op4510[256] = {
+ {m6502_brk,imm},{ora,idx},{cle,imp},{see,imp},/* 00 */
+ {tsb,zpg},{ora,zpg},{asl,zpg},{rmb,zpg},
+ {php,imp},{ora,imm},{asl,acc},{tsy,imp},
+ {tsb,aba},{ora,aba},{asl,aba},{bbr,zpb},
+ {bpl,rel},{ora,idy},{ora,idz},{bpl,rw2},/* 10 */
+ {trb,zpg},{ora,zpx},{asl,zpx},{rmb,zpg},
+ {clc,imp},{ora,aby},{ina,imp},{inz,imp},
+ {trb,aba},{ora,abx},{asl,abx},{bbr,zpb},
+ {jsr,adr},{and_,idx},{jsr,ind},{jsr,iax},/* 20 */
+ {bit,zpg},{and_,zpg},{rol,zpg},{rmb,zpg},
+ {plp,imp},{and_,imm},{rol,acc},{tys,imp},
+ {bit,aba},{and_,aba},{rol,aba},{bbr,zpb},
+ {bmi,rel},{and_,idz},{and_,zpi},{bmi,rw2},/* 30 */
+ {bit,zpx},{and_,zpx},{rol,zpx},{rmb,zpg},
+ {sec,imp},{and_,aby},{dea,imp},{dez,imp},
+ {bit,abx},{and_,abx},{rol,abx},{bbr,zpb},
+ {rti,imp},{eor,idx},{neg,imp},{asr2,imp},/* 40 */
+ {asr2,zpg},{eor,zpg},{lsr,zpg},{rmb,zpg},
+ {pha,imp},{eor,imm},{lsr,acc},{taz,imp},
+ {jmp,adr},{eor,aba},{lsr,aba},{bbr,zpb},
+ {bvc,rel},{eor,idy},{eor,idz},{bvc,rw2},/* 50 */
+ {asr2,zpx},{eor,zpx},{lsr,zpx},{rmb,zpg},
+ {cli,imp},{eor,aby},{phy,imp},{tab,imp},
+ {map,imp},{eor,abx},{lsr,abx},{bbr,zpb},
+ {rts,imp},{adc,idx},{rtn,imm},{bsr,rw2},/* 60 */
+ {stz2,zpg},{adc,zpg},{ror,zpg},{rmb,zpg},
+ {pla,imp},{adc,imm},{ror,acc},{tza,imp},
+ {jmp,ind},{adc,aba},{ror,aba},{bbr,zpb},
+ {bvs,rel},{adc,idy},{adc,zpi},{bvs,rw2},/* 70 */
+ {stz2,zpx},{adc,zpx},{ror,zpx},{rmb,zpg},
+ {sei,imp},{adc,aby},{ply,imp},{tba,imp},
+ {jmp,iax},{adc,abx},{ror,abx},{bbr,zpb},
+ {bra,rel},{sta,idx},{sta,isy},{bra,rw2},/* 80 */
+ {sty,zpg},{sta,zpg},{stx,zpg},{smb,zpg},
+ {dey,imp},{bit,imm},{txa,imp},{sty,abx},
+ {sty,aba},{sta,aba},{stx,aba},{bbs,zpb},
+ {bcc,rel},{sta,idy},{sta,inz},{bcc,rw2},/* 90 */
+ {sty,zpx},{sta,zpx},{stx,zpy},{smb,zpg},
+ {tya,imp},{sta,aby},{txs,imp},{stx,aby},
+ {stz2,aba},{sta,abx},{stz2,abx},{bbs,zpb},
+ {ldy,imm},{lda,idx},{ldx,imm},{ldz,imm},/* a0 */
+ {ldy,zpg},{lda,zpg},{ldx,zpg},{smb,zpg},
+ {tay,imp},{lda,imm},{tax,imp},{ldz,aba},
+ {ldy,aba},{lda,aba},{ldx,aba},{bbs,zpb},
+ {bcs,rel},{lda,idy},{lda,inz},{bcs,rw2},/* b0 */
+ {ldy,zpx},{lda,zpx},{ldx,zpy},{smb,zpg},
+ {clv,imp},{lda,aby},{tsx,imp},{ldz,abx},
+ {ldy,abx},{lda,abx},{ldx,aby},{bbs,zpb},
+ {cpy,imm},{cmp,idx},{cpz,imm},{dew,zpg},/* c0 */
+ {cpy,zpg},{cmp,zpg},{dec,zpg},{smb,zpg},
+ {iny,imp},{cmp,imm},{dex,imp},{asw,aba},
+ {cpy,aba},{cmp,aba},{dec,aba},{bbs,zpb},
+ {bne,rel},{cmp,idy},{cmp,idz},{bne,rw2},/* d0 */
+ {cpz,zpg},{cmp,zpx},{dec,zpx},{smb,zpg},
+ {cld,imp},{cmp,aby},{phx,imp},{phz,imp},
+ {cpz,aba},{cmp,abx},{dec,abx},{bbs,zpb},
+ {cpx,imm},{sbc,idx},{lda,isy},{inw,zpg},/* e0 */
+ {cpx,zpg},{sbc,zpg},{inc,zpg},{smb,zpg},
+ {inx,imp},{sbc,imm},{nop,imp},{row,aba},
+ {cpx,aba},{sbc,aba},{inc,aba},{bbs,zpb},
+ {beq,rel},{sbc,idy},{sbc,idz},{beq,rw2},/* f0 */
+ {phw,iw2},{sbc,zpx},{inc,zpx},{smb,zpg},
+ {sed,imp},{sbc,aby},{plx,imp},{plz,imp},
+ {phw,aba},{sbc,abx},{inc,abx},{bbs,zpb}
+};
+
+static const struct op6502_info opdeco16[256] =
+{
+ {m6502_brk,imp},{ora,idx},{ill,non},{ill,non},/* 00 */
+ {ill,non},{ora,zpg},{asl,zpg},{ill,non},
+ {php,imp},{ora,imm},{asl,acc},{u0B,zpg},
+ {ill,non},{ora,aba},{asl,aba},{ill,non},
+ {bpl,rel},{ora,idy},{ill,non},{u13,zpg},/* 10 */
+ {ill,non},{ora,zpx},{asl,zpx},{ill,non},
+ {clc,imp},{ora,aby},{ill,non},{ill,non},
+ {ill,non},{ora,abx},{asl,abx},{ill,non},
+ {jsr,adr},{and_,idx},{ill,non},{u23,zpg},/* 20 */
+ {bit,zpg},{and_,zpg},{rol,zpg},{ill,non},
+ {plp,imp},{and_,imm},{rol,acc},{ill,non},
+ {bit,aba},{and_,aba},{rol,aba},{ill,non},
+ {bmi,rel},{and_,idy},{ill,non},{ill,non},/* 30 */
+ {ill,non},{and_,zpx},{rol,zpx},{ill,non},
+ {sec,imp},{and_,aby},{ill,non},{ill,non},
+ {ill,non},{and_,abx},{rol,abx},{u3F,zpg},
+ {rti,imp},{eor,idx},{ill,non},{ill,non},/* 40 */
+ {ill,non},{eor,zpg},{lsr,zpg},{ill,non},
+ {pha,imp},{eor,imm},{lsr,acc},{u4B,zpg},
+ {jmp,adr},{eor,aba},{lsr,aba},{ill,non},
+ {bvc,rel},{eor,idy},{ill,non},{ill,non},/* 50 */
+ {ill,non},{eor,zpx},{lsr,zpx},{ill,non},
+ {cli,imp},{eor,aby},{ill,non},{ill,non},
+ {ill,non},{eor,abx},{lsr,abx},{ill,non},
+ {rts,imp},{adc,idx},{ill,non},{ill,non},/* 60 */
+ {ill,non},{adc,zpg},{ror,zpg},{vbl,zpg}, // MISH
+ {pla,imp},{adc,imm},{ror,acc},{ill,non},
+ {jmp,ind},{adc,aba},{ror,aba},{ill,non},
+ {bvs,rel},{adc,idy},{ill,non},{ill,non},/* 70 */
+ {ill,non},{adc,zpx},{ror,zpx},{ill,non},
+ {sei,imp},{adc,aby},{ill,non},{ill,non},
+ {ill,non},{adc,abx},{ror,abx},{ill,non},
+ {ill,non},{sta,idx},{ill,non},{ill,non},/* 80 */
+ {sty,zpg},{sta,zpg},{stx,zpg},{u87,zpg},
+ {dey,imp},{ill,non},{txa,imp},{ill,non},
+ {sty,aba},{sta,aba},{stx,aba},{u8F,zpg},
+ {bcc,rel},{sta,idy},{ill,non},{ill,non},/* 90 */
+ {sty,zpx},{sta,zpx},{stx,zpy},{ill,non},
+ {tya,imp},{sta,aby},{txs,imp},{ill,non},
+ {ill,non},{sta,abx},{ill,non},{ill,non},
+ {ldy,imm},{lda,idx},{ldx,imm},{uA3,zpg},/* a0 */
+ {ldy,zpg},{lda,zpg},{ldx,zpg},{ill,non},
+ {tay,imp},{lda,imm},{tax,imp},{uAB,zpg},
+ {ldy,aba},{lda,aba},{ldx,aba},{ill,non},
+ {bcs,rel},{lda,idy},{ill,non},{ill,non},/* b0 */
+ {ldy,zpx},{lda,zpx},{ldx,zpy},{ill,non},
+ {clv,imp},{lda,aby},{tsx,imp},{uBB,zpg},
+ {ldy,abx},{lda,abx},{ldx,aby},{ill,non},
+ {cpy,imm},{cmp,idx},{ill,non},{ill,non},/* c0 */
+ {cpy,zpg},{cmp,zpg},{dec,zpg},{ill,non},
+ {iny,imp},{cmp,imm},{dex,imp},{ill,non},
+ {cpy,aba},{cmp,aba},{dec,aba},{ill,non},
+ {bne,rel},{cmp,idy},{ill,non},{ill,non},/* d0 */
+ {ill,non},{cmp,zpx},{dec,zpx},{ill,non},
+ {cld,imp},{cmp,aby},{ill,non},{ill,non},
+ {ill,non},{cmp,abx},{dec,abx},{ill,non},
+ {cpx,imm},{sbc,idx},{ill,non},{ill,non},/* e0 */
+ {cpx,zpg},{sbc,zpg},{inc,zpg},{ill,non},
+ {inx,imp},{sbc,imm},{nop,imp},{ill,non},
+ {cpx,aba},{sbc,aba},{inc,aba},{ill,non},
+ {beq,rel},{sbc,idy},{ill,non},{ill,non},/* f0 */
+ {ill,non},{sbc,zpx},{inc,zpx},{ill,non},
+ {sed,imp},{sbc,aby},{ill,non},{ill,non},
+ {ill,non},{sbc,abx},{inc,abx},{ill,non}
+};
+
+/*****************************************************************************
+ * Disassemble a single opcode starting at pc
+ *****************************************************************************/
+static unsigned internal_m6502_dasm(const struct op6502_info *opinfo, _TCHAR *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, symbol_t *first_symbol)
+{
+ _TCHAR *dst = buffer;
+ INT8 offset;
+ INT16 offset16;
+ unsigned PC = pc;
+ UINT16 addr;
+ UINT8 op, opc, arg, value;
+ UINT32 flags;
+ int pos = 0;
+
+ op = oprom[pos++];
+ pc++;
+
+ opc = opinfo[op].opc;
+ arg = opinfo[op].arg;
+
+ /* determine dasmflags */
+ switch(opc)
+ {
+ case jsr:
+ case bsr:
+ flags = DASMFLAG_SUPPORTED | DASMFLAG_STEP_OVER;
+ break;
+
+ case rts:
+ case rti:
+ case rtn:
+ flags = DASMFLAG_SUPPORTED | DASMFLAG_STEP_OUT;
+ break;
+
+ default:
+ flags = DASMFLAG_SUPPORTED;
+ break;
+ }
+
+ dst += _stprintf(dst, _T("%-5s"), token[opc]);
+ if( opc == bbr || opc == bbs || opc == rmb || opc == smb )
+ dst += _stprintf(dst, _T("%d,"), (op >> 4) & 7);
+
+ switch(arg)
+ {
+ case imp:
+ break;
+
+ case acc:
+ dst += _stprintf(dst, _T("a"));
+ break;
+
+ case rel:
+ offset = (INT8) opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), (pc + offset) & 0xFFFF));
+ break;
+
+ case rw2:
+ offset16 = (opram[pos] | (opram[pos+1] << 8)) -1;
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), (pc + offset16) & 0xFFFF));
+ break;
+
+ case imm:
+ value = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("#$%02X"), value);
+ break;
+
+ case zpg:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("$%02X"), addr);
+ break;
+
+ case zpx:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("$%02X,x"), addr);
+ break;
+
+ case zpy:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("$%02X,y"), addr);
+ break;
+
+ case idx:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("($%02X,x)"), addr);
+ break;
+
+ case idy:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("($%02X),y"), addr);
+ break;
+
+ case zpi:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("($%02X)"), addr);
+ break;
+
+ case zpb:
+ addr = opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("$%02X"), addr);
+ offset = (INT8) opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T(",%s"), get_value_or_symbol(first_symbol, _T("$%04X"), pc + offset));
+ break;
+
+ case adr:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case aba:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case abx:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("%s,x"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case aby:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("%s,y"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case ind:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("(%s)"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case iax:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("(%s),X"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case iw2:
+ addr = (opram[pos] | (opram[pos+1] << 8));
+ pos += 2;
+ pc += 2;
+ dst += _stprintf(dst, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), addr));
+ break;
+
+ case iw3:
+ addr = (opram[pos] | (opram[pos+1] << 8) | (opram[pos+2] << 16));
+ pos += 3;
+ pc += 3;
+ dst += _stprintf(dst, _T("#%s"), get_value_or_symbol(first_symbol, _T("$%06X"), addr));
+ break;
+
+ case idz:
+ addr = (INT8) opram[pos++];
+ pc++;
+ dst += _stprintf(dst, _T("($%02X),z"), addr);
+ break;
+
+ case isy:
+ op = opram[pos++];
+ pc++;
+ addr = op;
+ dst += _stprintf(dst, _T("(s,$%02X),y"), addr);
+ break;
+
+ default:
+ dst += _stprintf(dst, _T("$%02X"), op);
+ break;
+ }
+ return (pc - PC) | flags;
+}
+
+CPU_DISASSEMBLE( m6502 )
+{
+ return internal_m6502_dasm(op6502, buffer, pc, oprom, opram, first_symbol);
+}
+
+CPU_DISASSEMBLE( m65sc02 )
+{
+ return internal_m6502_dasm(op65sc02, buffer, pc, oprom, opram, first_symbol);
+}
+
+CPU_DISASSEMBLE( m65c02 )
+{
+ return internal_m6502_dasm(op65c02, buffer, pc, oprom, opram, first_symbol);
+}
+
+CPU_DISASSEMBLE( m65ce02 )
+{
+ return internal_m6502_dasm(op65ce02, buffer, pc, oprom, opram, first_symbol);
+}
+
+CPU_DISASSEMBLE( m6510 )
+{
+ return internal_m6502_dasm(op6502, buffer, pc, oprom, opram, first_symbol);
+}
+
+CPU_DISASSEMBLE( deco16 )
+{
+ return internal_m6502_dasm(opdeco16, buffer, pc, oprom, opram, first_symbol);
+}
+
+CPU_DISASSEMBLE( m4510 )
+{
+ return internal_m6502_dasm(op4510, buffer, pc, oprom, opram, first_symbol);
+}
--- /dev/null
+Based on MAME 0.147.
struct description_t
{
- const char *mnemonic;
+ const _TCHAR *mnemonic;
format_t format;
int flags;
};
static const description_t descriptions[144+3+1] =
{
/* basic instruction set */
- { "a", format_1, ps_any }, { "ab", format_1, ps_any },
- { "c", format_1, ps_any }, { "cb", format_1, ps_any },
- { "s", format_1, ps_any }, { "sb", format_1, ps_any },
- { "soc", format_1, ps_any }, { "socb", format_1, ps_any },
- { "szc", format_1, ps_any }, { "szcb", format_1, ps_any },
- { "mov", format_1, ps_any }, { "movb", format_1, ps_any },
- { "coc", format_3_9, ps_any }, { "czc", format_3_9, ps_any },
- { "xor", format_3_9, ps_any }, { "mpy", format_3_9, ps_any },
- { "div", format_3_9, ps_any }, { "xop", format_9, ps_any },
- { "b", format_6, ps_any }, { "bl", format_6, ps_any },
- { "blwp", format_6, ps_any }, { "clr", format_6, ps_any },
- { "seto", format_6, ps_any }, { "inv", format_6, ps_any },
- { "neg", format_6, ps_any }, { "abs", format_6, ps_any },
- { "swpb", format_6, ps_any }, { "inc", format_6, ps_any },
- { "inct", format_6, ps_any }, { "dec", format_6, ps_any },
- { "dect", format_6, ps_any }, { "x", format_6, ps_any },
- { "ldcr", format_4, ps_any }, { "stcr", format_4, ps_any },
- { "sbo", format_2b, ps_any }, { "sbz", format_2b, ps_any },
- { "tb", format_2b, ps_any }, { "jeq", format_2a, ps_any },
- { "jgt", format_2a, ps_any }, { "jh", format_2a, ps_any },
- { "jhe", format_2a, ps_any }, { "jl", format_2a, ps_any },
- { "jle", format_2a, ps_any }, { "jlt", format_2a, ps_any },
- { "jmp", format_2a, ps_any }, { "jnc", format_2a, ps_any },
- { "jne", format_2a, ps_any }, { "jno", format_2a, ps_any },
- { "joc", format_2a, ps_any }, { "jop", format_2a, ps_any },
- { "sla", format_5, ps_any }, { "sra", format_5, ps_any },
- { "src", format_5, ps_any }, { "srl", format_5, ps_any },
- { "ai", format_8a, ps_any|sd_11 }, { "andi", format_8a, ps_any|sd_11 },
- { "ci", format_8a, ps_any|sd_11 }, { "li", format_8a, ps_any|sd_11 },
- { "ori", format_8a, ps_any|sd_11 }, { "lwpi", format_8b, ps_any|sd_11|sd_11_15 },
- { "limi", format_8b, ps_any|sd_11|sd_11_15 }, { "stst", format_18, ps_any|sd_11 },
- { "stwp", format_18, ps_any|sd_11 }, { "rtwp", format_7, ps_any|sd_11|sd_11_15 },
- { "idle", format_7, ps_any|sd_11|sd_11_15 }, { "rset", format_7, ps_any|sd_11|sd_11_15 },
- { "ckof", format_7, ps_any|sd_11|sd_11_15 }, { "ckon", format_7, ps_any|sd_11|sd_11_15 },
- { "lrex", format_7, ps_any|sd_11|sd_11_15 },
+ { _T("a"), format_1, ps_any }, { _T("ab"), format_1, ps_any },
+ { _T("c"), format_1, ps_any }, { _T("cb"), format_1, ps_any },
+ { _T("s"), format_1, ps_any }, { _T("sb"), format_1, ps_any },
+ { _T("soc"), format_1, ps_any }, { _T("socb"), format_1, ps_any },
+ { _T("szc"), format_1, ps_any }, { _T("szcb"), format_1, ps_any },
+ { _T("mov"), format_1, ps_any }, { _T("movb"), format_1, ps_any },
+ { _T("coc"), format_3_9, ps_any }, { _T("czc"), format_3_9, ps_any },
+ { _T("xor"), format_3_9, ps_any }, { _T("mpy"), format_3_9, ps_any },
+ { _T("div"), format_3_9, ps_any }, { _T("xop"), format_9, ps_any },
+ { _T("b"), format_6, ps_any }, { _T("bl"), format_6, ps_any },
+ { _T("blwp"), format_6, ps_any }, { _T("clr"), format_6, ps_any },
+ { _T("seto"), format_6, ps_any }, { _T("inv"), format_6, ps_any },
+ { _T("neg"), format_6, ps_any }, { _T("abs"), format_6, ps_any },
+ { _T("swpb"), format_6, ps_any }, { _T("inc"), format_6, ps_any },
+ { _T("inct"), format_6, ps_any }, { _T("dec"), format_6, ps_any },
+ { _T("dect"), format_6, ps_any }, { _T("x"), format_6, ps_any },
+ { _T("ldcr"), format_4, ps_any }, { _T("stcr"), format_4, ps_any },
+ { _T("sbo"), format_2b, ps_any }, { _T("sbz"), format_2b, ps_any },
+ { _T("tb"), format_2b, ps_any }, { _T("jeq"), format_2a, ps_any },
+ { _T("jgt"), format_2a, ps_any }, { _T("jh"), format_2a, ps_any },
+ { _T("jhe"), format_2a, ps_any }, { _T("jl"), format_2a, ps_any },
+ { _T("jle"), format_2a, ps_any }, { _T("jlt"), format_2a, ps_any },
+ { _T("jmp"), format_2a, ps_any }, { _T("jnc"), format_2a, ps_any },
+ { _T("jne"), format_2a, ps_any }, { _T("jno"), format_2a, ps_any },
+ { _T("joc"), format_2a, ps_any }, { _T("jop"), format_2a, ps_any },
+ { _T("sla"), format_5, ps_any }, { _T("sra"), format_5, ps_any },
+ { _T("src"), format_5, ps_any }, { _T("srl"), format_5, ps_any },
+ { _T("ai"), format_8a, ps_any|sd_11 }, { _T("andi"), format_8a, ps_any|sd_11 },
+ { _T("ci"), format_8a, ps_any|sd_11 }, { _T("li"), format_8a, ps_any|sd_11 },
+ { _T("ori"), format_8a, ps_any|sd_11 }, { _T("lwpi"), format_8b, ps_any|sd_11|sd_11_15 },
+ { _T("limi"), format_8b, ps_any|sd_11|sd_11_15 }, { _T("stst"), format_18, ps_any|sd_11 },
+ { _T("stwp"), format_18, ps_any|sd_11 }, { _T("rtwp"), format_7, ps_any|sd_11|sd_11_15 },
+ { _T("idle"), format_7, ps_any|sd_11|sd_11_15 }, { _T("rset"), format_7, ps_any|sd_11|sd_11_15 },
+ { _T("ckof"), format_7, ps_any|sd_11|sd_11_15 }, { _T("ckon"), format_7, ps_any|sd_11|sd_11_15 },
+ { _T("lrex"), format_7, ps_any|sd_11|sd_11_15 },
/* mapper instruction set */
- { "lds", format_6, ps_mapper }, { "ldd", format_6, ps_mapper },
- { "lmf", format_10, ps_mapper },
+ { _T("lds"), format_6, ps_mapper }, { _T("ldd"), format_6, ps_mapper },
+ { _T("lmf"), format_10, ps_mapper },
/* tms9995 instruction set */
- { "divs", format_6, ps_tms9995 }, { "mpys", format_6, ps_tms9995 },
- { "lst", format_18, ps_tms9995 }, { "lwp", format_18, ps_tms9995 },
+ { _T("divs"), format_6, ps_tms9995 }, { _T("mpys"), format_6, ps_tms9995 },
+ { _T("lst"), format_18, ps_tms9995 }, { _T("lwp"), format_18, ps_tms9995 },
/* tms99000 instruction set */
- { "bind", format_6, ps_tms99000 },
+ { _T("bind"), format_6, ps_tms99000 },
/* ti990/12 instruction set */
- { "sram", format_13, ps_ti990_12 }, { "slam", format_13, ps_ti990_12 },
- { "rto", format_11, ps_ti990_12 }, { "lto", format_11, ps_ti990_12 },
- { "cnto", format_11, ps_ti990_12 }, { "slsl", format_20, ps_ti990_12 },
- { "slsp", format_20, ps_ti990_12 }, { "bdc", format_11, ps_ti990_12 },
- { "dbc", format_11, ps_ti990_12 }, { "swpm", format_11, ps_ti990_12 },
- { "xorm", format_11, ps_ti990_12 }, { "orm", format_11, ps_ti990_12 },
- { "andm", format_11, ps_ti990_12 }, { "sm", format_11, ps_ti990_12 },
- { "am", format_11, ps_ti990_12 }, { "mova", format_19, ps_ti990_12 },
- { "emd", format_7, ps_ti990_12 }, { "eint", format_7, ps_ti990_12 },
- { "dint", format_7, ps_ti990_12 }, { "stpc", format_18, ps_ti990_12 },
- { "cs", format_12, ps_ti990_12 }, { "seqb", format_12, ps_ti990_12 },
- { "movs", format_12, ps_ti990_12 }, { "lim", format_18, ps_ti990_12 },
- { "lcs", format_18, ps_ti990_12 }, { "blsk", format_8a, ps_ti990_12 },
- { "mvsr", format_12, ps_ti990_12 }, { "mvsk", format_12, ps_ti990_12 },
- { "pops", format_12, ps_ti990_12 }, { "pshs", format_12, ps_ti990_12 },
- { "cri", format_7, ps_ti990_12 }, { "cdi", format_7, ps_ti990_12 },
- { "negr", format_7, ps_ti990_12 }, { "negd", format_7, ps_ti990_12 },
- { "cre", format_7, ps_ti990_12 }, { "cde", format_7, ps_ti990_12 },
- { "cer", format_7, ps_ti990_12 }, { "ced", format_7, ps_ti990_12 },
- { "nrm", format_11, ps_ti990_12 }, { "tmb", format_14, ps_ti990_12 },
- { "tcmb", format_14, ps_ti990_12 }, { "tsmb", format_14, ps_ti990_12 },
- { "srj", format_17, ps_ti990_12 }, { "arj", format_17, ps_ti990_12 },
- { "xit", format_7, ps_ti990_12 }, { "insf", format_16, ps_ti990_12 },
- { "xv", format_16, ps_ti990_12 }, { "xf", format_16, ps_ti990_12 },
- { "ar", format_6, ps_ti990_12 }, { "cir", format_6, ps_ti990_12 },
- { "sr", format_6, ps_ti990_12 }, { "mr", format_6, ps_ti990_12 },
- { "dr", format_6, ps_ti990_12 }, { "lr", format_6, ps_ti990_12 },
- { "str", format_6, ps_ti990_12 }, { "iof", format_15, ps_ti990_12 },
- { "sneb", format_12, ps_ti990_12 }, { "crc", format_12, ps_ti990_12 },
- { "ts", format_12, ps_ti990_12 }, { "ad", format_6, ps_ti990_12 },
- { "cid", format_6, ps_ti990_12 }, { "sd", format_6, ps_ti990_12 },
- { "md", format_6, ps_ti990_12 }, { "dd", format_6, ps_ti990_12 },
- { "ld", format_6, ps_ti990_12 }, { "std", format_6, ps_ti990_12 },
- { "ep", format_21, ps_ti990_12 },
+ { _T("sram"), format_13, ps_ti990_12 }, { _T("slam"), format_13, ps_ti990_12 },
+ { _T("rto"), format_11, ps_ti990_12 }, { _T("lto"), format_11, ps_ti990_12 },
+ { _T("cnto"), format_11, ps_ti990_12 }, { _T("slsl"), format_20, ps_ti990_12 },
+ { _T("slsp"), format_20, ps_ti990_12 }, { _T("bdc"), format_11, ps_ti990_12 },
+ { _T("dbc"), format_11, ps_ti990_12 }, { _T("swpm"), format_11, ps_ti990_12 },
+ { _T("xorm"), format_11, ps_ti990_12 }, { _T("orm"), format_11, ps_ti990_12 },
+ { _T("andm"), format_11, ps_ti990_12 }, { _T("sm"), format_11, ps_ti990_12 },
+ { _T("am"), format_11, ps_ti990_12 }, { _T("mova"), format_19, ps_ti990_12 },
+ { _T("emd"), format_7, ps_ti990_12 }, { _T("eint"), format_7, ps_ti990_12 },
+ { _T("dint"), format_7, ps_ti990_12 }, { _T("stpc"), format_18, ps_ti990_12 },
+ { _T("cs"), format_12, ps_ti990_12 }, { _T("seqb"), format_12, ps_ti990_12 },
+ { _T("movs"), format_12, ps_ti990_12 }, { _T("lim"), format_18, ps_ti990_12 },
+ { _T("lcs"), format_18, ps_ti990_12 }, { _T("blsk"), format_8a, ps_ti990_12 },
+ { _T("mvsr"), format_12, ps_ti990_12 }, { _T("mvsk"), format_12, ps_ti990_12 },
+ { _T("pops"), format_12, ps_ti990_12 }, { _T("pshs"), format_12, ps_ti990_12 },
+ { _T("cri"), format_7, ps_ti990_12 }, { _T("cdi"), format_7, ps_ti990_12 },
+ { _T("negr"), format_7, ps_ti990_12 }, { _T("negd"), format_7, ps_ti990_12 },
+ { _T("cre"), format_7, ps_ti990_12 }, { _T("cde"), format_7, ps_ti990_12 },
+ { _T("cer"), format_7, ps_ti990_12 }, { _T("ced"), format_7, ps_ti990_12 },
+ { _T("nrm"), format_11, ps_ti990_12 }, { _T("tmb"), format_14, ps_ti990_12 },
+ { _T("tcmb"), format_14, ps_ti990_12 }, { _T("tsmb"), format_14, ps_ti990_12 },
+ { _T("srj"), format_17, ps_ti990_12 }, { _T("arj"), format_17, ps_ti990_12 },
+ { _T("xit"), format_7, ps_ti990_12 }, { _T("insf"), format_16, ps_ti990_12 },
+ { _T("xv"), format_16, ps_ti990_12 }, { _T("xf"), format_16, ps_ti990_12 },
+ { _T("ar"), format_6, ps_ti990_12 }, { _T("cir"), format_6, ps_ti990_12 },
+ { _T("sr"), format_6, ps_ti990_12 }, { _T("mr"), format_6, ps_ti990_12 },
+ { _T("dr"), format_6, ps_ti990_12 }, { _T("lr"), format_6, ps_ti990_12 },
+ { _T("str"), format_6, ps_ti990_12 }, { _T("iof"), format_15, ps_ti990_12 },
+ { _T("sneb"), format_12, ps_ti990_12 }, { _T("crc"), format_12, ps_ti990_12 },
+ { _T("ts"), format_12, ps_ti990_12 }, { _T("ad"), format_6, ps_ti990_12 },
+ { _T("cid"), format_6, ps_ti990_12 }, { _T("sd"), format_6, ps_ti990_12 },
+ { _T("md"), format_6, ps_ti990_12 }, { _T("dd"), format_6, ps_ti990_12 },
+ { _T("ld"), format_6, ps_ti990_12 }, { _T("std"), format_6, ps_ti990_12 },
+ { _T("ep"), format_21, ps_ti990_12 },
/* tms9940-only instruction set */
/* these instructions are said to be format 9 (xop), but since the xop
level is interpreted as part of the opcode, dca and dcs should be handled
like format 6. liim looks like format 18, but slightly different,
therefore it is handled like a special format. */
- { "liim", format_liim,/*ps_tms9940*/0 }, { "dca", format_6, /*ps_tms9940*/0 },
- { "dcs", format_6, /*ps_tms9940*/0 },
+ { _T("liim"), format_liim,/*ps_tms9940*/0 }, { _T("dca"), format_6, /*ps_tms9940*/0 },
+ { _T("dcs"), format_6, /*ps_tms9940*/0 },
{ NULL, illegal, ps_any }
};
return result | opram[PC++ - pc];
}
-static int print_arg (char *dest, int mode, int arg, const UINT8 *opram, unsigned pc, symbol_t *first_symbol)
+static int print_arg (_TCHAR *dest, int mode, int arg, const UINT8 *opram, unsigned pc, symbol_t *first_symbol)
{
int base;
switch (mode)
{
case 0x0: /* workspace register */
- return sprintf (dest, "R%d", arg);
+ return _stprintf (dest, _T("R%d"), arg);
case 0x1: /* workspace register indirect */
- return sprintf (dest, "*R%d", arg);
+ return _stprintf (dest, _T("*R%d"), arg);
case 0x2: /* symbolic|indexed */
base = readop_arg(opram, pc);
if (arg) /* indexed */
- return sprintf (dest, "@>%s(R%d)", get_value_or_symbol(first_symbol, "%04x", base), arg);
+ return _stprintf (dest, _T("@>%s(R%d)"), get_value_or_symbol(first_symbol, _T("%04x"), base), arg);
else /* symbolic (direct) */
- return sprintf (dest, "@>%s", get_value_or_symbol(first_symbol, "%04x", base));
+ return _stprintf (dest, _T("@>%s"), get_value_or_symbol(first_symbol, _T("%04x"), base));
case 0x3: /* workspace register indirect auto increment */
- return sprintf (dest, "*R%d+", arg);
+ return _stprintf (dest, _T("*R%d+"), arg);
}
return 0;
/*****************************************************************************
* Disassemble a single command and return the number of bytes it uses.
*****************************************************************************/
-unsigned Dasm9900 (char *buffer, unsigned pc, int model_id, const UINT8 *oprom, const UINT8 *opram, symbol_t *first_symbol)
+unsigned Dasm9900 (_TCHAR *buffer, unsigned pc, int model_id, const UINT8 *oprom, const UINT8 *opram, symbol_t *first_symbol)
{
int OP, OP2, opc;
int sarg, darg, smode, dmode;
int bit_position, bit_width;
unsigned dasmflags = 0;
- const char *mnemonic;
+ const _TCHAR *mnemonic;
format_t format;
int flags;
format = descriptions[opc].format;
/* bl and blwp instructions are subroutines */
- if (mnemonic != NULL && mnemonic[0] == 'b' && mnemonic[1] == 'l')
+ if (mnemonic != NULL && mnemonic[0] == _T('b') && mnemonic[1] == _T('l'))
dasmflags = DASMFLAG_STEP_OVER;
/* b *r11 and rtwp are returns */
- else if (opc == 0x045b || (mnemonic != NULL && strcmp(mnemonic, "rtwp") == 0))
+ else if (opc == 0x045b || (mnemonic != NULL && _tcscmp(mnemonic, _T("rtwp")) == 0))
dasmflags = DASMFLAG_STEP_OUT;
switch (format)
dmode = BITS(OP,4,5);
darg = BITS(OP,6,9);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
break;
case format_2a: /* jump instructions */
displacement = (signed char)BITS(OP,8,15);
- sprintf (buffer, "%-4s >%s", mnemonic, get_value_or_symbol(first_symbol, "%04x", 0xffff & (PC + displacement * 2)));
+ _stprintf (buffer, _T("%-4s >%s"), mnemonic, get_value_or_symbol(first_symbol, _T("%04x"), 0xffff & (PC + displacement * 2)));
break;
case format_2b: /* bit I/O instructions */
displacement = (signed char)BITS(OP,8,15);
- sprintf (buffer, "%-4s >%04x", mnemonic, 0xffff & displacement);
+ _stprintf (buffer, _T("%-4s >%04x"), mnemonic, 0xffff & displacement);
break;
case format_3_9: /* logical, multiply, and divide instructions */
if (format == format_3_9)
{
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",R%d", darg);
+ buffer += _stprintf (buffer, _T(",R%d"), darg);
}
else
{
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",%d", darg);
+ buffer += _stprintf (buffer, _T(",%d"), darg);
}
break;
sarg = BITS(OP,12,15);
darg = BITS(OP,8,11);
- sprintf (buffer, darg ? "%-4s R%d,%d" : "%-4s R%d,R%d", mnemonic, sarg, darg);
+ _stprintf (buffer, darg ? _T("%-4s R%d,%d") : _T("%-4s R%d,R%d"), mnemonic, sarg, darg);
break;
case format_6: /* single address instructions */
smode = BITS(OP,10,11);
sarg = BITS(OP,12,15);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
break;
case format_7: /* instructions without operands */
- sprintf (buffer, "%s", mnemonic);
+ _stprintf (buffer, _T("%s"), mnemonic);
break;
case format_8a: /* immediate instructions (destination register) */
darg = BITS(OP,12,15);
sarg = readop_arg(opram, pc);
- sprintf (buffer, "%-4s R%d,>%s", mnemonic, darg, get_value_or_symbol(first_symbol, "%04x", sarg));
+ _stprintf (buffer, _T("%-4s R%d,>%s"), mnemonic, darg, get_value_or_symbol(first_symbol, _T("%04x"), sarg));
break;
case format_8b: /* immediate instructions (no destination register) */
sarg = readop_arg(opram, pc);
- sprintf (buffer, "%-4s >%s", mnemonic, get_value_or_symbol(first_symbol, "%04x", sarg));
+ _stprintf (buffer, _T("%-4s >%s"), mnemonic, get_value_or_symbol(first_symbol, _T("%04x"), sarg));
break;
case format_10: /* memory map file instruction */
sarg = BITS(OP,12,15);
darg = BITS(OP,11,11);
- sprintf (buffer, "%-4s R%d,%d", mnemonic, sarg, darg);
+ _stprintf (buffer, _T("%-4s R%d,%d"), mnemonic, sarg, darg);
break;
case format_11: /* multiple precision instructions */
darg = BITS(OP2,6,9);
byte_count = BITS(OP2,0,3);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
- buffer += sprintf (buffer, byte_count ? ",%d" : ",R%d", byte_count);
+ buffer += _stprintf (buffer, byte_count ? _T(",%d") : _T(",R%d"), byte_count);
break;
case format_12: /* string instructions */
byte_count = BITS(OP2,0,3);
checkpoint = BITS(OP,12,15);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
- buffer += sprintf (buffer, byte_count ? ",%d,R%d" : ",R%d,R%d", byte_count, checkpoint);
+ buffer += _stprintf (buffer, byte_count ? _T(",%d,R%d") : _T(",R%d,R%d"), byte_count, checkpoint);
break;
case format_13: /* multiple precision shift instructions */
darg = BITS(OP2,6,9);
byte_count = BITS(OP2,0,3);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, byte_count ? ",%d" : ",R%d", byte_count);
- buffer += sprintf (buffer, darg ? ",%d" : ",R%d", darg);
+ buffer += _stprintf (buffer, byte_count ? _T(",%d") : _T(",R%d"), byte_count);
+ buffer += _stprintf (buffer, darg ? _T(",%d") : _T(",R%d"), darg);
break;
case format_14: /* bit testing instructions */
sarg = BITS(OP2,12,15);
darg = BITS(OP2,0,9);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
if (darg == 0x3ff)
- buffer += sprintf (buffer, ",R0");
+ buffer += _stprintf (buffer, _T(",R0"));
else
- buffer += sprintf (buffer, ",%d", darg);
+ buffer += _stprintf (buffer, _T(",%d"), darg);
break;
case format_15: /* invert order of field instruction */
bit_position = BITS(OP2,0,3);
bit_width = BITS(OP,12,15);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, bit_position ? ",(%d," : ",(R%d,", bit_position);
- buffer += sprintf (buffer, bit_width ? "%d)" : "R%d)", bit_width);
+ buffer += _stprintf (buffer, bit_position ? _T(",(%d,") : _T(",(R%d,"), bit_position);
+ buffer += _stprintf (buffer, bit_width ? _T("%d)") : _T("R%d)"), bit_width);
break;
case format_16: /* field instructions */
bit_position = BITS(OP2,0,3);
bit_width = BITS(OP,12,15);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
- buffer += sprintf (buffer, bit_position ? ",(%d," : ",(%d,", bit_position);
- buffer += sprintf (buffer, bit_width ? "%d)" : "R%d)", bit_width);
+ buffer += _stprintf (buffer, bit_position ? _T(",(%d,") : _T(",(%d,"), bit_position);
+ buffer += _stprintf (buffer, bit_width ? _T("%d)") : _T("R%d)"), bit_width);
break;
case format_17: /* alter register and jump instructions */
sarg = BITS(OP2,4,7);
darg = BITS(OP2,0,3);
if (darg)
- sprintf (buffer, darg ? "%-4s >%s,%d,R%d" : "%-4s >%s,R%d,R%d",
- mnemonic, get_value_or_symbol(first_symbol, "%04x", 0xffff & (PC + displacement * 2)), sarg, darg);
+ _stprintf (buffer, darg ? _T("%-4s >%s,%d,R%d") : _T("%-4s >%s,R%d,R%d"),
+ mnemonic, get_value_or_symbol(first_symbol, _T("%04x"), 0xffff & (PC + displacement * 2)), sarg, darg);
break;
case format_18: /* single register operand instructions */
sarg = BITS(OP,12,15);
- sprintf (buffer, "%-4s R%d", mnemonic, sarg);
+ _stprintf (buffer, _T("%-4s R%d"), mnemonic, sarg);
break;
case format_liim: /* liim instruction */
sarg = BITS(OP,14,15);
- sprintf (buffer, "%-4s %d", mnemonic, sarg);
+ _stprintf (buffer, _T("%-4s %d"), mnemonic, sarg);
break;
case format_19: /* move address instruction */
dmode = BITS(OP2,4,5);
darg = BITS(OP2,6,9);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
break;
case format_20: /* list search instructions */
{
- const char *condition_code;
+ const _TCHAR *condition_code;
OP2 = readop_arg(opram, pc);
switch (BITS(OP2,0,3))
{
case 0:
- condition_code = "eq";
+ condition_code = _T("eq");
break;
case 1:
- condition_code = "ne";
+ condition_code = _T("ne");
break;
case 2:
- condition_code = "he";
+ condition_code = _T("he");
break;
case 3:
- condition_code = "l";
+ condition_code = _T("l");
break;
case 4:
- condition_code = "ge";
+ condition_code = _T("ge");
break;
case 5:
- condition_code = "lt";
+ condition_code = _T("lt");
break;
case 6:
- condition_code = "le";
+ condition_code = _T("le");
break;
case 7:
- condition_code = "h";
+ condition_code = _T("h");
break;
case 8:
- condition_code = "lte";
+ condition_code = _T("lte");
break;
case 9:
- condition_code = "gt";
+ condition_code = _T("gt");
break;
default:
- condition_code = "??";
+ condition_code = _T("??");
break;
}
- buffer += sprintf (buffer, "%-4s %s,", mnemonic, condition_code);
+ buffer += _stprintf (buffer, _T("%-4s %s,"), mnemonic, condition_code);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
break;
}
byte_count = BITS(OP2,0,3);
dest_byte_count = BITS(OP,12,15);
- buffer += sprintf (buffer, "%-4s ", mnemonic);
+ buffer += _stprintf (buffer, _T("%-4s "), mnemonic);
buffer += print_arg (buffer, smode, sarg, opram, pc, first_symbol);
- buffer += sprintf (buffer, ",");
+ buffer += _stprintf (buffer, _T(","));
buffer += print_arg (buffer, dmode, darg, opram, pc, first_symbol);
- buffer += sprintf (buffer, byte_count ? ",%d" : ",R%d", byte_count);
- buffer += sprintf (buffer, dest_byte_count ? ",%d" : ",R%d", dest_byte_count);
+ buffer += _stprintf (buffer, byte_count ? _T(",%d") : _T(",R%d"), byte_count);
+ buffer += _stprintf (buffer, dest_byte_count ? _T(",%d") : _T(",R%d"), dest_byte_count);
break;
}
default:
- logerror("debbugger internal error, file %s, line %d\n", __FILE__, __LINE__);
+ logerror(_T("debbugger internal error, file %s, line %d\n"), __FILE__, __LINE__);
case illegal:
- sprintf (buffer, "data >%04x", OP);
+ _stprintf (buffer, _T("data >%04x"), OP);
break;
}
{ _illegal, 0 }, { _DCR, "A" }, { _DCR, "B" }, { _DCR, "C" },
{ _JMP, "%w" }, { _OFFIW, "%a,%b" }, { _ACI, "A,%b" }, { _OFFI, "A,%b" },
- { _BIT, "0,%a" }, { _BIT, "1,%a" }, { _BIT," 2,%a" }, { _BIT, "3,%a" },
+ { _BIT, "0,%a" }, { _BIT, "1,%a" }, { _BIT, "2,%a" }, { _BIT, "3,%a" },
{ _BIT, "4,%a" }, { _BIT, "5,%a" }, { _BIT, "6,%a" }, { _BIT, "7,%a" },
{ 0, dasm60_7801 }, { _DAA, 0 }, { _RETI, 0 }, { _CALB, 0 },
"illegal", "TMM", "PT", "illegal"
};
-static offs_t Dasm( char *buffer, offs_t pc, const struct dasm_s *dasmXX, const UINT8 *oprom, const UINT8 *opram, int is_7810 )
+static offs_t Dasm( _TCHAR *buffer, offs_t pc, const struct dasm_s *dasmXX, const UINT8 *oprom, const UINT8 *opram, int is_7810, symbol_t *first_symbol )
{
int idx = 0;
UINT8 op = oprom[idx++], op2, t;
int offset;
UINT16 ea;
const char *a;
+ char c2t[2] = {0};
UINT32 flags = 0;
t = dasmXX[op].token;
a = (const char *)p_dasm[op2].args;
}
- buffer += sprintf(buffer, "%-8.8s", token[t]);
+ buffer += _stprintf(buffer, _T("%-8.8s"), char_to_tchar(token[t]));
if (t == _CALB || t == _CALF || t == _CALL || t == _CALT)
flags = DASMFLAG_STEP_OVER;
{
case 'a': /* address V * 256 + offset */
op2 = opram[idx++];
- buffer += sprintf(buffer, "VV:%02X", op2);
+ buffer += _stprintf(buffer, _T("VV:%02X"), op2);
break;
case 'b': /* immediate byte */
- buffer += sprintf(buffer, "$%02X", opram[idx++]);
+ buffer += _stprintf(buffer, _T("$%02X"), opram[idx++]);
break;
case 'w': /* immediate word */
ea = opram[idx++];
ea += opram[idx++] << 8;
- buffer += sprintf(buffer, "$%04X", ea);
+ buffer += _stprintf(buffer, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), ea));
break;
case 'd': /* JRE address */
op2 = oprom[idx++];
offset = (op & 1) ? -(256 - op2): + op2;
- buffer += sprintf(buffer, "$%04X", ( pc + idx + offset ) & 0xFFFF );
+ buffer += _stprintf(buffer, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), ( pc + idx + offset ) & 0xFFFF));
break;
case 't': /* CALT address */
ea = 0x80 + 2 * (op & (is_7810 ? 0x1f : 0x3f));
- buffer += sprintf(buffer, "($%04X)", ea);
+ buffer += _stprintf(buffer, _T("(%s)"), get_value_or_symbol(first_symbol, _T("$%04X"), ea));
break;
case 'f': /* CALF address */
op2 = oprom[idx++];
ea = 0x800 + 0x100 * (op & 0x07) + op2;
- buffer += sprintf(buffer, "$%04X", ea);
+ buffer += _stprintf(buffer, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), ea));
break;
case 'o': /* JR offset */
offset = ( ( op & 0x20 ) ? -0x20 : 0 ) + ( op & 0x1F );
- buffer += sprintf(buffer, "$%04X", ( pc + idx + offset ) & 0xFFFF );
+ buffer += _stprintf(buffer, _T("%s"), get_value_or_symbol(first_symbol, _T("$%04X"), ( pc + idx + offset ) & 0xFFFF));
break;
case 'i': /* bit manipulation */
op2 = oprom[idx++];
- buffer += sprintf(buffer, "%s,%d", regname[op2 & 0x1f], op2 >> 5);
+ buffer += _stprintf(buffer, _T("%s,%d"), char_to_tchar(regname[op2 & 0x1f]), op2 >> 5);
break;
default:
- *buffer++ = *a;
+// *buffer++ = *a;
+ c2t[0] = *a;
+ *buffer++ = char_to_tchar(c2t)[0];
}
}
else
- *buffer++ = *a;
+ {
+// *buffer++ = *a;
+ c2t[0] = *a;
+ *buffer++ = char_to_tchar(c2t)[0];
+ }
a++;
}
- *buffer = '\0';
+ *buffer = _T('\0');
return idx | flags | DASMFLAG_SUPPORTED;
}
CPU_DISASSEMBLE( upd7810 )
{
- return Dasm( buffer, pc, dasmXX_7810, oprom, opram, 1 );
+ return Dasm( buffer, pc, dasmXX_7810, oprom, opram, 1, first_symbol );
}
CPU_DISASSEMBLE( upd7807 )
{
- return Dasm( buffer, pc, dasmXX_7807, oprom, opram, 1 );
+ return Dasm( buffer, pc, dasmXX_7807, oprom, opram, 1, first_symbol );
}
CPU_DISASSEMBLE( upd7801 )
{
- return Dasm( buffer, pc, dasmXX_7801, oprom, opram, 0 );
+ return Dasm( buffer, pc, dasmXX_7801, oprom, opram, 0, first_symbol );
}
CPU_DISASSEMBLE( upd78c05 )
{
- return Dasm( buffer, pc, dasmXX_78c05, oprom, opram, 0 );
+ return Dasm( buffer, pc, dasmXX_78c05, oprom, opram, 0, first_symbol );
}
CPU_DISASSEMBLE( upd7907 )
{
- return Dasm( buffer, pc, dasmXX_7907, oprom, opram, 0 );
+ return Dasm( buffer, pc, dasmXX_7907, oprom, opram, 0, first_symbol );
}
switch (program_r(ptr++))
{
- case 0x00: my_stprintf_s(buffer, buffer_len, _T("nop")); break;
+ case 0x00: my_stprintf_s(buffer, buffer_len, _T("nop")); break;
case 0x02: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("out bus,a"));
else
- my_stprintf_s(buffer, buffer_len, _T("out dbb,a")); break;
- case 0x03: my_stprintf_s(buffer, buffer_len, _T("add a,#$%02X"), program_r(ptr++)); break;
- case 0x04: my_stprintf_s(buffer, buffer_len, _T("jmp $0%02X"), program_r(ptr++)); break;
- case 0x05: my_stprintf_s(buffer, buffer_len, _T("en i")); break;
- case 0x07: my_stprintf_s(buffer, buffer_len, _T("dec a")); break;
+ my_stprintf_s(buffer, buffer_len, _T("out dbb,a")); break;
+ case 0x03: my_stprintf_s(buffer, buffer_len, _T("add a,#$%02X"), program_r(ptr++)); break;
+ case 0x04: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x000 | program_r(ptr++))); break;
+ case 0x05: my_stprintf_s(buffer, buffer_len, _T("en i")); break;
+ case 0x07: my_stprintf_s(buffer, buffer_len, _T("dec a")); break;
case 0x08: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("in a,bus"));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x09: my_stprintf_s(buffer, buffer_len, _T("in a,p1")); break;
- case 0x0a: my_stprintf_s(buffer, buffer_len, _T("in a,p2")); break;
- case 0x0c: my_stprintf_s(buffer, buffer_len, _T("movd a,p4")); break;
- case 0x0d: my_stprintf_s(buffer, buffer_len, _T("movd a,p5")); break;
- case 0x0e: my_stprintf_s(buffer, buffer_len, _T("movd a,p6")); break;
- case 0x0f: my_stprintf_s(buffer, buffer_len, _T("movd a,p7")); break;
- case 0x10: my_stprintf_s(buffer, buffer_len, _T("inc @r0")); break;
- case 0x11: my_stprintf_s(buffer, buffer_len, _T("inc @r1")); break;
- case 0x12: my_stprintf_s(buffer, buffer_len, _T("jb0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x13: my_stprintf_s(buffer, buffer_len, _T("addc a,#$%02X"), program_r(ptr++)); break;
- case 0x14: my_stprintf_s(buffer, buffer_len, _T("call $0%02X"), program_r(ptr++)); break;
- case 0x15: my_stprintf_s(buffer, buffer_len, _T("dis i")); break;
- case 0x16: my_stprintf_s(buffer, buffer_len, _T("jtf $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x17: my_stprintf_s(buffer, buffer_len, _T("inc a")); break;
- case 0x18: my_stprintf_s(buffer, buffer_len, _T("inc r0")); break;
- case 0x19: my_stprintf_s(buffer, buffer_len, _T("inc r1")); break;
- case 0x1a: my_stprintf_s(buffer, buffer_len, _T("inc r2")); break;
- case 0x1b: my_stprintf_s(buffer, buffer_len, _T("inc r3")); break;
- case 0x1c: my_stprintf_s(buffer, buffer_len, _T("inc r4")); break;
- case 0x1d: my_stprintf_s(buffer, buffer_len, _T("inc r5")); break;
- case 0x1e: my_stprintf_s(buffer, buffer_len, _T("inc r6")); break;
- case 0x1f: my_stprintf_s(buffer, buffer_len, _T("inc r7")); break;
- case 0x20: my_stprintf_s(buffer, buffer_len, _T("xch a,@r0")); break;
- case 0x21: my_stprintf_s(buffer, buffer_len, _T("xch a,@r1")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x09: my_stprintf_s(buffer, buffer_len, _T("in a,p1")); break;
+ case 0x0a: my_stprintf_s(buffer, buffer_len, _T("in a,p2")); break;
+ case 0x0c: my_stprintf_s(buffer, buffer_len, _T("movd a,p4")); break;
+ case 0x0d: my_stprintf_s(buffer, buffer_len, _T("movd a,p5")); break;
+ case 0x0e: my_stprintf_s(buffer, buffer_len, _T("movd a,p6")); break;
+ case 0x0f: my_stprintf_s(buffer, buffer_len, _T("movd a,p7")); break;
+ case 0x10: my_stprintf_s(buffer, buffer_len, _T("inc @r0")); break;
+ case 0x11: my_stprintf_s(buffer, buffer_len, _T("inc @r1")); break;
+ case 0x12: my_stprintf_s(buffer, buffer_len, _T("jb0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x13: my_stprintf_s(buffer, buffer_len, _T("addc a,#$%02X"), program_r(ptr++)); break;
+ case 0x14: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x000 | program_r(ptr++))); break;
+ case 0x15: my_stprintf_s(buffer, buffer_len, _T("dis i")); break;
+ case 0x16: my_stprintf_s(buffer, buffer_len, _T("jtf %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x17: my_stprintf_s(buffer, buffer_len, _T("inc a")); break;
+ case 0x18: my_stprintf_s(buffer, buffer_len, _T("inc r0")); break;
+ case 0x19: my_stprintf_s(buffer, buffer_len, _T("inc r1")); break;
+ case 0x1a: my_stprintf_s(buffer, buffer_len, _T("inc r2")); break;
+ case 0x1b: my_stprintf_s(buffer, buffer_len, _T("inc r3")); break;
+ case 0x1c: my_stprintf_s(buffer, buffer_len, _T("inc r4")); break;
+ case 0x1d: my_stprintf_s(buffer, buffer_len, _T("inc r5")); break;
+ case 0x1e: my_stprintf_s(buffer, buffer_len, _T("inc r6")); break;
+ case 0x1f: my_stprintf_s(buffer, buffer_len, _T("inc r7")); break;
+ case 0x20: my_stprintf_s(buffer, buffer_len, _T("xch a,@r0")); break;
+ case 0x21: my_stprintf_s(buffer, buffer_len, _T("xch a,@r1")); break;
case 0x22: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("illegal"));
else
- my_stprintf_s(buffer, buffer_len, _T("in a,dbb")); break;
- case 0x23: my_stprintf_s(buffer, buffer_len, _T("mov a,#$%02X"), program_r(ptr++)); break;
- case 0x24: my_stprintf_s(buffer, buffer_len, _T("jmp $1%02X"), program_r(ptr++)); break;
- case 0x25: my_stprintf_s(buffer, buffer_len, _T("en tcnti")); break;
- case 0x26: my_stprintf_s(buffer, buffer_len, _T("jnt0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x27: my_stprintf_s(buffer, buffer_len, _T("clr a")); break;
- case 0x28: my_stprintf_s(buffer, buffer_len, _T("xch a,r0")); break;
- case 0x29: my_stprintf_s(buffer, buffer_len, _T("xch a,r1")); break;
- case 0x2a: my_stprintf_s(buffer, buffer_len, _T("xch a,r2")); break;
- case 0x2b: my_stprintf_s(buffer, buffer_len, _T("xch a,r3")); break;
- case 0x2c: my_stprintf_s(buffer, buffer_len, _T("xch a,r4")); break;
- case 0x2d: my_stprintf_s(buffer, buffer_len, _T("xch a,r5")); break;
- case 0x2e: my_stprintf_s(buffer, buffer_len, _T("xch a,r6")); break;
- case 0x2f: my_stprintf_s(buffer, buffer_len, _T("xch a,r7")); break;
- case 0x30: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r0")); break;
- case 0x31: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r1")); break;
- case 0x32: my_stprintf_s(buffer, buffer_len, _T("jb1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x34: my_stprintf_s(buffer, buffer_len, _T("call $1%02X"), program_r(ptr++)); break;
- case 0x35: my_stprintf_s(buffer, buffer_len, _T("dis tcnti")); break;
- case 0x36: my_stprintf_s(buffer, buffer_len, _T("jt0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x37: my_stprintf_s(buffer, buffer_len, _T("cpl a")); break;
- case 0x39: my_stprintf_s(buffer, buffer_len, _T("outl p1,a")); break;
- case 0x3a: my_stprintf_s(buffer, buffer_len, _T("outl p2,a")); break;
- case 0x3c: my_stprintf_s(buffer, buffer_len, _T("movd p4,a")); break;
- case 0x3d: my_stprintf_s(buffer, buffer_len, _T("movd p5,a")); break;
- case 0x3e: my_stprintf_s(buffer, buffer_len, _T("movd p6,a")); break;
- case 0x3f: my_stprintf_s(buffer, buffer_len, _T("movd p7,a")); break;
- case 0x40: my_stprintf_s(buffer, buffer_len, _T("orl a,@r0")); break;
- case 0x41: my_stprintf_s(buffer, buffer_len, _T("orl a,@r1")); break;
- case 0x42: my_stprintf_s(buffer, buffer_len, _T("mov a,t")); break;
- case 0x43: my_stprintf_s(buffer, buffer_len, _T("orl a,#$%02X"), program_r(ptr++)); break;
- case 0x44: my_stprintf_s(buffer, buffer_len, _T("jmp $2%02X"), program_r(ptr++)); break;
- case 0x45: my_stprintf_s(buffer, buffer_len, _T("strt cnt")); break;
- case 0x46: my_stprintf_s(buffer, buffer_len, _T("jnt1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x47: my_stprintf_s(buffer, buffer_len, _T("swap a")); break;
- case 0x48: my_stprintf_s(buffer, buffer_len, _T("orl a,r0")); break;
- case 0x49: my_stprintf_s(buffer, buffer_len, _T("orl a,r1")); break;
- case 0x4a: my_stprintf_s(buffer, buffer_len, _T("orl a,r2")); break;
- case 0x4b: my_stprintf_s(buffer, buffer_len, _T("orl a,r3")); break;
- case 0x4c: my_stprintf_s(buffer, buffer_len, _T("orl a,r4")); break;
- case 0x4d: my_stprintf_s(buffer, buffer_len, _T("orl a,r5")); break;
- case 0x4e: my_stprintf_s(buffer, buffer_len, _T("orl a,r6")); break;
- case 0x4f: my_stprintf_s(buffer, buffer_len, _T("orl a,r7")); break;
- case 0x50: my_stprintf_s(buffer, buffer_len, _T("anl a,@r0")); break;
- case 0x51: my_stprintf_s(buffer, buffer_len, _T("anl a,@r1")); break;
- case 0x52: my_stprintf_s(buffer, buffer_len, _T("jb2 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x53: my_stprintf_s(buffer, buffer_len, _T("anl a,#$%02X"), program_r(ptr++)); break;
- case 0x54: my_stprintf_s(buffer, buffer_len, _T("call $2%02X"), program_r(ptr++)); break;
- case 0x55: my_stprintf_s(buffer, buffer_len, _T("strt t")); break;
- case 0x56: my_stprintf_s(buffer, buffer_len, _T("jt1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x57: my_stprintf_s(buffer, buffer_len, _T("da a")); break;
- case 0x58: my_stprintf_s(buffer, buffer_len, _T("anl a,r0")); break;
- case 0x59: my_stprintf_s(buffer, buffer_len, _T("anl a,r1")); break;
- case 0x5a: my_stprintf_s(buffer, buffer_len, _T("anl a,r2")); break;
- case 0x5b: my_stprintf_s(buffer, buffer_len, _T("anl a,r3")); break;
- case 0x5c: my_stprintf_s(buffer, buffer_len, _T("anl a,r4")); break;
- case 0x5d: my_stprintf_s(buffer, buffer_len, _T("anl a,r5")); break;
- case 0x5e: my_stprintf_s(buffer, buffer_len, _T("anl a,r6")); break;
- case 0x5f: my_stprintf_s(buffer, buffer_len, _T("anl a,r7")); break;
- case 0x60: my_stprintf_s(buffer, buffer_len, _T("add a,@r0")); break;
- case 0x61: my_stprintf_s(buffer, buffer_len, _T("add a,@r1")); break;
- case 0x62: my_stprintf_s(buffer, buffer_len, _T("mov t,a")); break;
- case 0x64: my_stprintf_s(buffer, buffer_len, _T("jmp $3%02X"), program_r(ptr++)); break;
- case 0x65: my_stprintf_s(buffer, buffer_len, _T("stop tcnt")); break;
- case 0x67: my_stprintf_s(buffer, buffer_len, _T("rrc a")); break;
- case 0x68: my_stprintf_s(buffer, buffer_len, _T("add a,r0")); break;
- case 0x69: my_stprintf_s(buffer, buffer_len, _T("add a,r1")); break;
- case 0x6a: my_stprintf_s(buffer, buffer_len, _T("add a,r2")); break;
- case 0x6b: my_stprintf_s(buffer, buffer_len, _T("add a,r3")); break;
- case 0x6c: my_stprintf_s(buffer, buffer_len, _T("add a,r4")); break;
- case 0x6d: my_stprintf_s(buffer, buffer_len, _T("add a,r5")); break;
- case 0x6e: my_stprintf_s(buffer, buffer_len, _T("add a,r6")); break;
- case 0x6f: my_stprintf_s(buffer, buffer_len, _T("add a,r7")); break;
- case 0x70: my_stprintf_s(buffer, buffer_len, _T("addc a,@r0")); break;
- case 0x71: my_stprintf_s(buffer, buffer_len, _T("addc a,@r1")); break;
- case 0x72: my_stprintf_s(buffer, buffer_len, _T("jb3 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x74: my_stprintf_s(buffer, buffer_len, _T("call $3%02X"), program_r(ptr++)); break;
+ my_stprintf_s(buffer, buffer_len, _T("in a,dbb")); break;
+ case 0x23: my_stprintf_s(buffer, buffer_len, _T("mov a,#$%02X"), program_r(ptr++)); break;
+ case 0x24: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x100 | program_r(ptr++))); break;
+ case 0x25: my_stprintf_s(buffer, buffer_len, _T("en tcnti")); break;
+ case 0x26: my_stprintf_s(buffer, buffer_len, _T("jnt0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x27: my_stprintf_s(buffer, buffer_len, _T("clr a")); break;
+ case 0x28: my_stprintf_s(buffer, buffer_len, _T("xch a,r0")); break;
+ case 0x29: my_stprintf_s(buffer, buffer_len, _T("xch a,r1")); break;
+ case 0x2a: my_stprintf_s(buffer, buffer_len, _T("xch a,r2")); break;
+ case 0x2b: my_stprintf_s(buffer, buffer_len, _T("xch a,r3")); break;
+ case 0x2c: my_stprintf_s(buffer, buffer_len, _T("xch a,r4")); break;
+ case 0x2d: my_stprintf_s(buffer, buffer_len, _T("xch a,r5")); break;
+ case 0x2e: my_stprintf_s(buffer, buffer_len, _T("xch a,r6")); break;
+ case 0x2f: my_stprintf_s(buffer, buffer_len, _T("xch a,r7")); break;
+ case 0x30: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r0")); break;
+ case 0x31: my_stprintf_s(buffer, buffer_len, _T("xchd a,@r1")); break;
+ case 0x32: my_stprintf_s(buffer, buffer_len, _T("jb1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x34: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x100 | program_r(ptr++))); break;
+ case 0x35: my_stprintf_s(buffer, buffer_len, _T("dis tcnti")); break;
+ case 0x36: my_stprintf_s(buffer, buffer_len, _T("jt0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x37: my_stprintf_s(buffer, buffer_len, _T("cpl a")); break;
+ case 0x39: my_stprintf_s(buffer, buffer_len, _T("outl p1,a")); break;
+ case 0x3a: my_stprintf_s(buffer, buffer_len, _T("outl p2,a")); break;
+ case 0x3c: my_stprintf_s(buffer, buffer_len, _T("movd p4,a")); break;
+ case 0x3d: my_stprintf_s(buffer, buffer_len, _T("movd p5,a")); break;
+ case 0x3e: my_stprintf_s(buffer, buffer_len, _T("movd p6,a")); break;
+ case 0x3f: my_stprintf_s(buffer, buffer_len, _T("movd p7,a")); break;
+ case 0x40: my_stprintf_s(buffer, buffer_len, _T("orl a,@r0")); break;
+ case 0x41: my_stprintf_s(buffer, buffer_len, _T("orl a,@r1")); break;
+ case 0x42: my_stprintf_s(buffer, buffer_len, _T("mov a,t")); break;
+ case 0x43: my_stprintf_s(buffer, buffer_len, _T("orl a,#$%02X"), program_r(ptr++)); break;
+ case 0x44: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x200 | program_r(ptr++))); break;
+ case 0x45: my_stprintf_s(buffer, buffer_len, _T("strt cnt")); break;
+ case 0x46: my_stprintf_s(buffer, buffer_len, _T("jnt1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x47: my_stprintf_s(buffer, buffer_len, _T("swap a")); break;
+ case 0x48: my_stprintf_s(buffer, buffer_len, _T("orl a,r0")); break;
+ case 0x49: my_stprintf_s(buffer, buffer_len, _T("orl a,r1")); break;
+ case 0x4a: my_stprintf_s(buffer, buffer_len, _T("orl a,r2")); break;
+ case 0x4b: my_stprintf_s(buffer, buffer_len, _T("orl a,r3")); break;
+ case 0x4c: my_stprintf_s(buffer, buffer_len, _T("orl a,r4")); break;
+ case 0x4d: my_stprintf_s(buffer, buffer_len, _T("orl a,r5")); break;
+ case 0x4e: my_stprintf_s(buffer, buffer_len, _T("orl a,r6")); break;
+ case 0x4f: my_stprintf_s(buffer, buffer_len, _T("orl a,r7")); break;
+ case 0x50: my_stprintf_s(buffer, buffer_len, _T("anl a,@r0")); break;
+ case 0x51: my_stprintf_s(buffer, buffer_len, _T("anl a,@r1")); break;
+ case 0x52: my_stprintf_s(buffer, buffer_len, _T("jb2 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x53: my_stprintf_s(buffer, buffer_len, _T("anl a,#$%02X"), program_r(ptr++)); break;
+ case 0x54: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x200 | program_r(ptr++))); break;
+ case 0x55: my_stprintf_s(buffer, buffer_len, _T("strt t")); break;
+ case 0x56: my_stprintf_s(buffer, buffer_len, _T("jt1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x57: my_stprintf_s(buffer, buffer_len, _T("da a")); break;
+ case 0x58: my_stprintf_s(buffer, buffer_len, _T("anl a,r0")); break;
+ case 0x59: my_stprintf_s(buffer, buffer_len, _T("anl a,r1")); break;
+ case 0x5a: my_stprintf_s(buffer, buffer_len, _T("anl a,r2")); break;
+ case 0x5b: my_stprintf_s(buffer, buffer_len, _T("anl a,r3")); break;
+ case 0x5c: my_stprintf_s(buffer, buffer_len, _T("anl a,r4")); break;
+ case 0x5d: my_stprintf_s(buffer, buffer_len, _T("anl a,r5")); break;
+ case 0x5e: my_stprintf_s(buffer, buffer_len, _T("anl a,r6")); break;
+ case 0x5f: my_stprintf_s(buffer, buffer_len, _T("anl a,r7")); break;
+ case 0x60: my_stprintf_s(buffer, buffer_len, _T("add a,@r0")); break;
+ case 0x61: my_stprintf_s(buffer, buffer_len, _T("add a,@r1")); break;
+ case 0x62: my_stprintf_s(buffer, buffer_len, _T("mov t,a")); break;
+ case 0x64: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x300 | program_r(ptr++))); break;
+ case 0x65: my_stprintf_s(buffer, buffer_len, _T("stop tcnt")); break;
+ case 0x67: my_stprintf_s(buffer, buffer_len, _T("rrc a")); break;
+ case 0x68: my_stprintf_s(buffer, buffer_len, _T("add a,r0")); break;
+ case 0x69: my_stprintf_s(buffer, buffer_len, _T("add a,r1")); break;
+ case 0x6a: my_stprintf_s(buffer, buffer_len, _T("add a,r2")); break;
+ case 0x6b: my_stprintf_s(buffer, buffer_len, _T("add a,r3")); break;
+ case 0x6c: my_stprintf_s(buffer, buffer_len, _T("add a,r4")); break;
+ case 0x6d: my_stprintf_s(buffer, buffer_len, _T("add a,r5")); break;
+ case 0x6e: my_stprintf_s(buffer, buffer_len, _T("add a,r6")); break;
+ case 0x6f: my_stprintf_s(buffer, buffer_len, _T("add a,r7")); break;
+ case 0x70: my_stprintf_s(buffer, buffer_len, _T("addc a,@r0")); break;
+ case 0x71: my_stprintf_s(buffer, buffer_len, _T("addc a,@r1")); break;
+ case 0x72: my_stprintf_s(buffer, buffer_len, _T("jb3 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x74: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x300 | program_r(ptr++))); break;
case 0x75: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("ent0 clk"));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x76: my_stprintf_s(buffer, buffer_len, _T("jf1 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x77: my_stprintf_s(buffer, buffer_len, _T("rr a")); break;
- case 0x78: my_stprintf_s(buffer, buffer_len, _T("addc a,r0")); break;
- case 0x79: my_stprintf_s(buffer, buffer_len, _T("addc a,r1")); break;
- case 0x7a: my_stprintf_s(buffer, buffer_len, _T("addc a,r2")); break;
- case 0x7b: my_stprintf_s(buffer, buffer_len, _T("addc a,r3")); break;
- case 0x7c: my_stprintf_s(buffer, buffer_len, _T("addc a,r4")); break;
- case 0x7d: my_stprintf_s(buffer, buffer_len, _T("addc a,r5")); break;
- case 0x7e: my_stprintf_s(buffer, buffer_len, _T("addc a,r6")); break;
- case 0x7f: my_stprintf_s(buffer, buffer_len, _T("addc a,r7")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x76: my_stprintf_s(buffer, buffer_len, _T("jf1 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x77: my_stprintf_s(buffer, buffer_len, _T("rr a")); break;
+ case 0x78: my_stprintf_s(buffer, buffer_len, _T("addc a,r0")); break;
+ case 0x79: my_stprintf_s(buffer, buffer_len, _T("addc a,r1")); break;
+ case 0x7a: my_stprintf_s(buffer, buffer_len, _T("addc a,r2")); break;
+ case 0x7b: my_stprintf_s(buffer, buffer_len, _T("addc a,r3")); break;
+ case 0x7c: my_stprintf_s(buffer, buffer_len, _T("addc a,r4")); break;
+ case 0x7d: my_stprintf_s(buffer, buffer_len, _T("addc a,r5")); break;
+ case 0x7e: my_stprintf_s(buffer, buffer_len, _T("addc a,r6")); break;
+ case 0x7f: my_stprintf_s(buffer, buffer_len, _T("addc a,r7")); break;
case 0x80: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("movx a,@r0"));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
case 0x81: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("movx a,@r1"));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x83: my_stprintf_s(buffer, buffer_len, _T("ret")); break;
- case 0x84: my_stprintf_s(buffer, buffer_len, _T("jmp $4%02X"), program_r(ptr++)); break;
- case 0x85: my_stprintf_s(buffer, buffer_len, _T("clr f0")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x83: my_stprintf_s(buffer, buffer_len, _T("ret")); break;
+ case 0x84: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x400 | program_r(ptr++))); break;
+ case 0x85: my_stprintf_s(buffer, buffer_len, _T("clr f0")); break;
case 0x86: if (!upi41)
- my_stprintf_s(buffer, buffer_len, _T("jni $%03X"), (pc & 0xf00) | program_r(ptr++));
+ my_stprintf_s(buffer, buffer_len, _T("jni %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++)));
else
- my_stprintf_s(buffer, buffer_len, _T("jobf $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
+ my_stprintf_s(buffer, buffer_len, _T("jobf %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
case 0x88: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("orl bus,#$%02X"), program_r(ptr++));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x89: my_stprintf_s(buffer, buffer_len, _T("orl p1,#$%02X"), program_r(ptr++)); break;
- case 0x8a: my_stprintf_s(buffer, buffer_len, _T("orl p2,#$%02X"), program_r(ptr++)); break;
- case 0x8c: my_stprintf_s(buffer, buffer_len, _T("orld p4,a")); break;
- case 0x8d: my_stprintf_s(buffer, buffer_len, _T("orld p5,a")); break;
- case 0x8e: my_stprintf_s(buffer, buffer_len, _T("orld p6,a")); break;
- case 0x8f: my_stprintf_s(buffer, buffer_len, _T("orld p7,a")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x89: my_stprintf_s(buffer, buffer_len, _T("orl p1,#$%02X"), program_r(ptr++)); break;
+ case 0x8a: my_stprintf_s(buffer, buffer_len, _T("orl p2,#$%02X"), program_r(ptr++)); break;
+ case 0x8c: my_stprintf_s(buffer, buffer_len, _T("orld p4,a")); break;
+ case 0x8d: my_stprintf_s(buffer, buffer_len, _T("orld p5,a")); break;
+ case 0x8e: my_stprintf_s(buffer, buffer_len, _T("orld p6,a")); break;
+ case 0x8f: my_stprintf_s(buffer, buffer_len, _T("orld p7,a")); break;
case 0x90: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("movx @r0,a"));
else
- my_stprintf_s(buffer, buffer_len, _T("mov sts,a")); break;
+ my_stprintf_s(buffer, buffer_len, _T("mov sts,a")); break;
case 0x91: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("movx @r1,a"));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x92: my_stprintf_s(buffer, buffer_len, _T("jb4 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x93: my_stprintf_s(buffer, buffer_len, _T("retr")); break;
- case 0x94: my_stprintf_s(buffer, buffer_len, _T("call $4%02X"), program_r(ptr++)); break;
- case 0x95: my_stprintf_s(buffer, buffer_len, _T("cpl f0")); break;
- case 0x96: my_stprintf_s(buffer, buffer_len, _T("jnz $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0x97: my_stprintf_s(buffer, buffer_len, _T("clr c")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x92: my_stprintf_s(buffer, buffer_len, _T("jb4 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x93: my_stprintf_s(buffer, buffer_len, _T("retr")); break;
+ case 0x94: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x400 | program_r(ptr++))); break;
+ case 0x95: my_stprintf_s(buffer, buffer_len, _T("cpl f0")); break;
+ case 0x96: my_stprintf_s(buffer, buffer_len, _T("jnz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0x97: my_stprintf_s(buffer, buffer_len, _T("clr c")); break;
case 0x98: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("anl bus,#$%02X"), program_r(ptr++));
else
- my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
- case 0x99: my_stprintf_s(buffer, buffer_len, _T("anl p1,#$%02X"), program_r(ptr++)); break;
- case 0x9a: my_stprintf_s(buffer, buffer_len, _T("anl p2,#$%02X"), program_r(ptr++)); break;
- case 0x9c: my_stprintf_s(buffer, buffer_len, _T("anld p4,a")); break;
- case 0x9d: my_stprintf_s(buffer, buffer_len, _T("anld p5,a")); break;
- case 0x9e: my_stprintf_s(buffer, buffer_len, _T("anld p6,a")); break;
- case 0x9f: my_stprintf_s(buffer, buffer_len, _T("anld p7,a")); break;
- case 0xa0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,a")); break;
- case 0xa1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,a")); break;
- case 0xa3: my_stprintf_s(buffer, buffer_len, _T("movp a,@a")); break;
- case 0xa4: my_stprintf_s(buffer, buffer_len, _T("jmp $5%02X"), program_r(ptr++)); break;
- case 0xa5: my_stprintf_s(buffer, buffer_len, _T("clr f1")); break;
- case 0xa7: my_stprintf_s(buffer, buffer_len, _T("cpl c")); break;
- case 0xa8: my_stprintf_s(buffer, buffer_len, _T("mov r0,a")); break;
- case 0xa9: my_stprintf_s(buffer, buffer_len, _T("mov r1,a")); break;
- case 0xaa: my_stprintf_s(buffer, buffer_len, _T("mov r2,a")); break;
- case 0xab: my_stprintf_s(buffer, buffer_len, _T("mov r3,a")); break;
- case 0xac: my_stprintf_s(buffer, buffer_len, _T("mov r4,a")); break;
- case 0xad: my_stprintf_s(buffer, buffer_len, _T("mov r5,a")); break;
- case 0xae: my_stprintf_s(buffer, buffer_len, _T("mov r6,a")); break;
- case 0xaf: my_stprintf_s(buffer, buffer_len, _T("mov r7,a")); break;
- case 0xb0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,#$%02X"), program_r(ptr++)); break;
- case 0xb1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,#$%02X"), program_r(ptr++)); break;
- case 0xb2: my_stprintf_s(buffer, buffer_len, _T("jb5 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xb3: my_stprintf_s(buffer, buffer_len, _T("jmpp @a")); break;
- case 0xb4: my_stprintf_s(buffer, buffer_len, _T("call $5%02X"), program_r(ptr++)); break;
- case 0xb5: my_stprintf_s(buffer, buffer_len, _T("cpl f1")); break;
- case 0xb6: my_stprintf_s(buffer, buffer_len, _T("jf0 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xb8: my_stprintf_s(buffer, buffer_len, _T("mov r0,#$%02X"), program_r(ptr++)); break;
- case 0xb9: my_stprintf_s(buffer, buffer_len, _T("mov r1,#$%02X"), program_r(ptr++)); break;
- case 0xba: my_stprintf_s(buffer, buffer_len, _T("mov r2,#$%02X"), program_r(ptr++)); break;
- case 0xbb: my_stprintf_s(buffer, buffer_len, _T("mov r3,#$%02X"), program_r(ptr++)); break;
- case 0xbc: my_stprintf_s(buffer, buffer_len, _T("mov r4,#$%02X"), program_r(ptr++)); break;
- case 0xbd: my_stprintf_s(buffer, buffer_len, _T("mov r5,#$%02X"), program_r(ptr++)); break;
- case 0xbe: my_stprintf_s(buffer, buffer_len, _T("mov r6,#$%02X"), program_r(ptr++)); break;
- case 0xbf: my_stprintf_s(buffer, buffer_len, _T("mov r7,#$%02X"), program_r(ptr++)); break;
- case 0xc4: my_stprintf_s(buffer, buffer_len, _T("jmp $6%02X"), program_r(ptr++)); break;
- case 0xc5: my_stprintf_s(buffer, buffer_len, _T("sel rb0")); break;
- case 0xc6: my_stprintf_s(buffer, buffer_len, _T("jz $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov a,psw")); break;
- case 0xc8: my_stprintf_s(buffer, buffer_len, _T("dec r0")); break;
- case 0xc9: my_stprintf_s(buffer, buffer_len, _T("dec r1")); break;
- case 0xca: my_stprintf_s(buffer, buffer_len, _T("dec r2")); break;
- case 0xcb: my_stprintf_s(buffer, buffer_len, _T("dec r3")); break;
- case 0xcc: my_stprintf_s(buffer, buffer_len, _T("dec r4")); break;
- case 0xcd: my_stprintf_s(buffer, buffer_len, _T("dec r5")); break;
- case 0xce: my_stprintf_s(buffer, buffer_len, _T("dec r6")); break;
- case 0xcf: my_stprintf_s(buffer, buffer_len, _T("dec r7")); break;
- case 0xd0: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r0")); break;
- case 0xd1: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r1")); break;
- case 0xd2: my_stprintf_s(buffer, buffer_len, _T("jb6 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xd3: my_stprintf_s(buffer, buffer_len, _T("xrl a,#$%02X"), program_r(ptr++)); break;
- case 0xd4: my_stprintf_s(buffer, buffer_len, _T("call $6%02X"), program_r(ptr++)); break;
- case 0xd5: my_stprintf_s(buffer, buffer_len, _T("sel rb1")); break;
+ my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ case 0x99: my_stprintf_s(buffer, buffer_len, _T("anl p1,#$%02X"), program_r(ptr++)); break;
+ case 0x9a: my_stprintf_s(buffer, buffer_len, _T("anl p2,#$%02X"), program_r(ptr++)); break;
+ case 0x9c: my_stprintf_s(buffer, buffer_len, _T("anld p4,a")); break;
+ case 0x9d: my_stprintf_s(buffer, buffer_len, _T("anld p5,a")); break;
+ case 0x9e: my_stprintf_s(buffer, buffer_len, _T("anld p6,a")); break;
+ case 0x9f: my_stprintf_s(buffer, buffer_len, _T("anld p7,a")); break;
+ case 0xa0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,a")); break;
+ case 0xa1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,a")); break;
+ case 0xa3: my_stprintf_s(buffer, buffer_len, _T("movp a,@a")); break;
+ case 0xa4: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x500 | program_r(ptr++))); break;
+ case 0xa5: my_stprintf_s(buffer, buffer_len, _T("clr f1")); break;
+ case 0xa7: my_stprintf_s(buffer, buffer_len, _T("cpl c")); break;
+ case 0xa8: my_stprintf_s(buffer, buffer_len, _T("mov r0,a")); break;
+ case 0xa9: my_stprintf_s(buffer, buffer_len, _T("mov r1,a")); break;
+ case 0xaa: my_stprintf_s(buffer, buffer_len, _T("mov r2,a")); break;
+ case 0xab: my_stprintf_s(buffer, buffer_len, _T("mov r3,a")); break;
+ case 0xac: my_stprintf_s(buffer, buffer_len, _T("mov r4,a")); break;
+ case 0xad: my_stprintf_s(buffer, buffer_len, _T("mov r5,a")); break;
+ case 0xae: my_stprintf_s(buffer, buffer_len, _T("mov r6,a")); break;
+ case 0xaf: my_stprintf_s(buffer, buffer_len, _T("mov r7,a")); break;
+ case 0xb0: my_stprintf_s(buffer, buffer_len, _T("mov @r0,#$%02X"), program_r(ptr++)); break;
+ case 0xb1: my_stprintf_s(buffer, buffer_len, _T("mov @r1,#$%02X"), program_r(ptr++)); break;
+ case 0xb2: my_stprintf_s(buffer, buffer_len, _T("jb5 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xb3: my_stprintf_s(buffer, buffer_len, _T("jmpp @a")); break;
+ case 0xb4: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x500 | program_r(ptr++))); break;
+ case 0xb5: my_stprintf_s(buffer, buffer_len, _T("cpl f1")); break;
+ case 0xb6: my_stprintf_s(buffer, buffer_len, _T("jf0 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xb8: my_stprintf_s(buffer, buffer_len, _T("mov r0,#$%02X"), program_r(ptr++)); break;
+ case 0xb9: my_stprintf_s(buffer, buffer_len, _T("mov r1,#$%02X"), program_r(ptr++)); break;
+ case 0xba: my_stprintf_s(buffer, buffer_len, _T("mov r2,#$%02X"), program_r(ptr++)); break;
+ case 0xbb: my_stprintf_s(buffer, buffer_len, _T("mov r3,#$%02X"), program_r(ptr++)); break;
+ case 0xbc: my_stprintf_s(buffer, buffer_len, _T("mov r4,#$%02X"), program_r(ptr++)); break;
+ case 0xbd: my_stprintf_s(buffer, buffer_len, _T("mov r5,#$%02X"), program_r(ptr++)); break;
+ case 0xbe: my_stprintf_s(buffer, buffer_len, _T("mov r6,#$%02X"), program_r(ptr++)); break;
+ case 0xbf: my_stprintf_s(buffer, buffer_len, _T("mov r7,#$%02X"), program_r(ptr++)); break;
+ case 0xc4: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x600 | program_r(ptr++))); break;
+ case 0xc5: my_stprintf_s(buffer, buffer_len, _T("sel rb0")); break;
+ case 0xc6: my_stprintf_s(buffer, buffer_len, _T("jz %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov a,psw")); break;
+ case 0xc8: my_stprintf_s(buffer, buffer_len, _T("dec r0")); break;
+ case 0xc9: my_stprintf_s(buffer, buffer_len, _T("dec r1")); break;
+ case 0xca: my_stprintf_s(buffer, buffer_len, _T("dec r2")); break;
+ case 0xcb: my_stprintf_s(buffer, buffer_len, _T("dec r3")); break;
+ case 0xcc: my_stprintf_s(buffer, buffer_len, _T("dec r4")); break;
+ case 0xcd: my_stprintf_s(buffer, buffer_len, _T("dec r5")); break;
+ case 0xce: my_stprintf_s(buffer, buffer_len, _T("dec r6")); break;
+ case 0xcf: my_stprintf_s(buffer, buffer_len, _T("dec r7")); break;
+ case 0xd0: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r0")); break;
+ case 0xd1: my_stprintf_s(buffer, buffer_len, _T("xrl a,@r1")); break;
+ case 0xd2: my_stprintf_s(buffer, buffer_len, _T("jb6 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xd3: my_stprintf_s(buffer, buffer_len, _T("xrl a,#$%02X"), program_r(ptr++)); break;
+ case 0xd4: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x600 | program_r(ptr++))); break;
+ case 0xd5: my_stprintf_s(buffer, buffer_len, _T("sel rb1")); break;
case 0xd6: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("illegal"));
else
- my_stprintf_s(buffer, buffer_len, _T("jnibf $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xd7: my_stprintf_s(buffer, buffer_len, _T("mov psw,a")); break;
- case 0xd8: my_stprintf_s(buffer, buffer_len, _T("xrl a,r0")); break;
- case 0xd9: my_stprintf_s(buffer, buffer_len, _T("xrl a,r1")); break;
- case 0xda: my_stprintf_s(buffer, buffer_len, _T("xrl a,r2")); break;
- case 0xdb: my_stprintf_s(buffer, buffer_len, _T("xrl a,r3")); break;
- case 0xdc: my_stprintf_s(buffer, buffer_len, _T("xrl a,r4")); break;
- case 0xdd: my_stprintf_s(buffer, buffer_len, _T("xrl a,r5")); break;
- case 0xde: my_stprintf_s(buffer, buffer_len, _T("xrl a,r6")); break;
- case 0xdf: my_stprintf_s(buffer, buffer_len, _T("xrl a,r7")); break;
- case 0xe3: my_stprintf_s(buffer, buffer_len, _T("movp3 a,@a")); break;
- case 0xe4: my_stprintf_s(buffer, buffer_len, _T("jmp $7%02X"), program_r(ptr++)); break;
+ my_stprintf_s(buffer, buffer_len, _T("jnibf %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xd7: my_stprintf_s(buffer, buffer_len, _T("mov psw,a")); break;
+ case 0xd8: my_stprintf_s(buffer, buffer_len, _T("xrl a,r0")); break;
+ case 0xd9: my_stprintf_s(buffer, buffer_len, _T("xrl a,r1")); break;
+ case 0xda: my_stprintf_s(buffer, buffer_len, _T("xrl a,r2")); break;
+ case 0xdb: my_stprintf_s(buffer, buffer_len, _T("xrl a,r3")); break;
+ case 0xdc: my_stprintf_s(buffer, buffer_len, _T("xrl a,r4")); break;
+ case 0xdd: my_stprintf_s(buffer, buffer_len, _T("xrl a,r5")); break;
+ case 0xde: my_stprintf_s(buffer, buffer_len, _T("xrl a,r6")); break;
+ case 0xdf: my_stprintf_s(buffer, buffer_len, _T("xrl a,r7")); break;
+ case 0xe3: my_stprintf_s(buffer, buffer_len, _T("movp3 a,@a")); break;
+ case 0xe4: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x700 | program_r(ptr++))); break;
case 0xe5: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("sel mb0"));
else
- my_stprintf_s(buffer, buffer_len, _T("en dma")); break;
- case 0xe6: my_stprintf_s(buffer, buffer_len, _T("jnc $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xe7: my_stprintf_s(buffer, buffer_len, _T("rl a")); break;
- case 0xe8: my_stprintf_s(buffer, buffer_len, _T("djnz r0,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xe9: my_stprintf_s(buffer, buffer_len, _T("djnz r1,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xea: my_stprintf_s(buffer, buffer_len, _T("djnz r2,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xeb: my_stprintf_s(buffer, buffer_len, _T("djnz r3,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xec: my_stprintf_s(buffer, buffer_len, _T("djnz r4,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xed: my_stprintf_s(buffer, buffer_len, _T("djnz r5,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xee: my_stprintf_s(buffer, buffer_len, _T("djnz r6,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xef: my_stprintf_s(buffer, buffer_len, _T("djnz r7,$%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xf0: my_stprintf_s(buffer, buffer_len, _T("mov a,@r0")); break;
- case 0xf1: my_stprintf_s(buffer, buffer_len, _T("mov a,@r1")); break;
- case 0xf2: my_stprintf_s(buffer, buffer_len, _T("jb7 $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xf4: my_stprintf_s(buffer, buffer_len, _T("call $7%02X"), program_r(ptr++)); break;
+ my_stprintf_s(buffer, buffer_len, _T("en dma")); break;
+ case 0xe6: my_stprintf_s(buffer, buffer_len, _T("jnc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xe7: my_stprintf_s(buffer, buffer_len, _T("rl a")); break;
+ case 0xe8: my_stprintf_s(buffer, buffer_len, _T("djnz r0,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xe9: my_stprintf_s(buffer, buffer_len, _T("djnz r1,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xea: my_stprintf_s(buffer, buffer_len, _T("djnz r2,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xeb: my_stprintf_s(buffer, buffer_len, _T("djnz r3,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xec: my_stprintf_s(buffer, buffer_len, _T("djnz r4,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xed: my_stprintf_s(buffer, buffer_len, _T("djnz r5,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xee: my_stprintf_s(buffer, buffer_len, _T("djnz r6,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xef: my_stprintf_s(buffer, buffer_len, _T("djnz r7,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xf0: my_stprintf_s(buffer, buffer_len, _T("mov a,@r0")); break;
+ case 0xf1: my_stprintf_s(buffer, buffer_len, _T("mov a,@r1")); break;
+ case 0xf2: my_stprintf_s(buffer, buffer_len, _T("jb7 %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xf4: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), 0x700 | program_r(ptr++))); break;
case 0xf5: if (!upi41)
my_stprintf_s(buffer, buffer_len, _T("sel mb1"));
else
- my_stprintf_s(buffer, buffer_len, _T("en flags")); break;
- case 0xf6: my_stprintf_s(buffer, buffer_len, _T("jc $%03X"), (pc & 0xf00) | program_r(ptr++)); break;
- case 0xf7: my_stprintf_s(buffer, buffer_len, _T("rlc a")); break;
- case 0xf8: my_stprintf_s(buffer, buffer_len, _T("mov a,r0")); break;
- case 0xf9: my_stprintf_s(buffer, buffer_len, _T("mov a,r1")); break;
- case 0xfa: my_stprintf_s(buffer, buffer_len, _T("mov a,r2")); break;
- case 0xfb: my_stprintf_s(buffer, buffer_len, _T("mov a,r3")); break;
- case 0xfc: my_stprintf_s(buffer, buffer_len, _T("mov a,r4")); break;
- case 0xfd: my_stprintf_s(buffer, buffer_len, _T("mov a,r5")); break;
- case 0xfe: my_stprintf_s(buffer, buffer_len, _T("mov a,r6")); break;
- case 0xff: my_stprintf_s(buffer, buffer_len, _T("mov a,r7")); break;
- default: my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+ my_stprintf_s(buffer, buffer_len, _T("en flags")); break;
+ case 0xf6: my_stprintf_s(buffer, buffer_len, _T("jc %s"), get_value_or_symbol(d_debugger->first_symbol, _T("$%03X"), (pc & 0xf00) | program_r(ptr++))); break;
+ case 0xf7: my_stprintf_s(buffer, buffer_len, _T("rlc a")); break;
+ case 0xf8: my_stprintf_s(buffer, buffer_len, _T("mov a,r0")); break;
+ case 0xf9: my_stprintf_s(buffer, buffer_len, _T("mov a,r1")); break;
+ case 0xfa: my_stprintf_s(buffer, buffer_len, _T("mov a,r2")); break;
+ case 0xfb: my_stprintf_s(buffer, buffer_len, _T("mov a,r3")); break;
+ case 0xfc: my_stprintf_s(buffer, buffer_len, _T("mov a,r4")); break;
+ case 0xfd: my_stprintf_s(buffer, buffer_len, _T("mov a,r5")); break;
+ case 0xfe: my_stprintf_s(buffer, buffer_len, _T("mov a,r6")); break;
+ case 0xff: my_stprintf_s(buffer, buffer_len, _T("mov a,r7")); break;
+ default: my_stprintf_s(buffer, buffer_len, _T("illegal")); break;
+
}
return ptr - pc;
}
case 0x01: my_stprintf_s(buffer, buffer_len, _T("hlt")); break;
case 0x02: my_stprintf_s(buffer, buffer_len, _T("inx sp")); break;
case 0x03: my_stprintf_s(buffer, buffer_len, _T("dcx sp")); break;
- case 0x04: my_stprintf_s(buffer, buffer_len, _T("lxi sp, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x05: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("aniw v.%02xh, %02xh"), wa, getb()); break;
+ case 0x04: my_stprintf_s(buffer, buffer_len, _T("lxi sp,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x05: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("aniw v.%02xh,%02xh"), wa, getb()); break;
// case 0x06:
- case 0x07: my_stprintf_s(buffer, buffer_len, _T("ani a, %02xh"), getb()); break;
+ case 0x07: my_stprintf_s(buffer, buffer_len, _T("ani a,%02xh"), getb()); break;
case 0x08: my_stprintf_s(buffer, buffer_len, _T("ret")); break;
case 0x09: my_stprintf_s(buffer, buffer_len, _T("sio")); break;
- case 0x0a: my_stprintf_s(buffer, buffer_len, _T("mov a, b")); break;
- case 0x0b: my_stprintf_s(buffer, buffer_len, _T("mov a, c")); break;
- case 0x0c: my_stprintf_s(buffer, buffer_len, _T("mov a, d")); break;
- case 0x0d: my_stprintf_s(buffer, buffer_len, _T("mov a, e")); break;
- case 0x0e: my_stprintf_s(buffer, buffer_len, _T("mov a, h")); break;
- case 0x0f: my_stprintf_s(buffer, buffer_len, _T("mov a, l")); break;
+ case 0x0a: my_stprintf_s(buffer, buffer_len, _T("mov a,b")); break;
+ case 0x0b: my_stprintf_s(buffer, buffer_len, _T("mov a,c")); break;
+ case 0x0c: my_stprintf_s(buffer, buffer_len, _T("mov a,d")); break;
+ case 0x0d: my_stprintf_s(buffer, buffer_len, _T("mov a,e")); break;
+ case 0x0e: my_stprintf_s(buffer, buffer_len, _T("mov a,h")); break;
+ case 0x0f: my_stprintf_s(buffer, buffer_len, _T("mov a,l")); break;
case 0x10: my_stprintf_s(buffer, buffer_len, _T("ex")); break;
case 0x11: my_stprintf_s(buffer, buffer_len, _T("exx")); break;
case 0x12: my_stprintf_s(buffer, buffer_len, _T("inx b")); break;
case 0x13: my_stprintf_s(buffer, buffer_len, _T("dcx b")); break;
- case 0x14: my_stprintf_s(buffer, buffer_len, _T("lxi b, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x15: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("oriw v.%02xh, %02xh"), wa, getb()); break;
- case 0x16: my_stprintf_s(buffer, buffer_len, _T("xri a, %02xh"), getb()); break;
- case 0x17: my_stprintf_s(buffer, buffer_len, _T("ori a, %02xh"), getb()); break;
+ case 0x14: my_stprintf_s(buffer, buffer_len, _T("lxi b,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x15: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("oriw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x16: my_stprintf_s(buffer, buffer_len, _T("xri a,%02xh"), getb()); break;
+ case 0x17: my_stprintf_s(buffer, buffer_len, _T("ori a,%02xh"), getb()); break;
case 0x18: my_stprintf_s(buffer, buffer_len, _T("rets")); break;
case 0x19: my_stprintf_s(buffer, buffer_len, _T("stm")); break;
- case 0x1a: my_stprintf_s(buffer, buffer_len, _T("mov b, a")); break;
- case 0x1b: my_stprintf_s(buffer, buffer_len, _T("mov c, a")); break;
- case 0x1c: my_stprintf_s(buffer, buffer_len, _T("mov d, a")); break;
- case 0x1d: my_stprintf_s(buffer, buffer_len, _T("mov e, a")); break;
- case 0x1e: my_stprintf_s(buffer, buffer_len, _T("mov h, a")); break;
- case 0x1f: my_stprintf_s(buffer, buffer_len, _T("mov l, a")); break;
+ case 0x1a: my_stprintf_s(buffer, buffer_len, _T("mov b,a")); break;
+ case 0x1b: my_stprintf_s(buffer, buffer_len, _T("mov c,a")); break;
+ case 0x1c: my_stprintf_s(buffer, buffer_len, _T("mov d,a")); break;
+ case 0x1d: my_stprintf_s(buffer, buffer_len, _T("mov e,a")); break;
+ case 0x1e: my_stprintf_s(buffer, buffer_len, _T("mov h,a")); break;
+ case 0x1f: my_stprintf_s(buffer, buffer_len, _T("mov l,a")); break;
case 0x20: my_stprintf_s(buffer, buffer_len, _T("inrw v.%02xh"), getwa()); break;
case 0x21: my_stprintf_s(buffer, buffer_len, _T("table")); break;
case 0x22: my_stprintf_s(buffer, buffer_len, _T("inx d")); break;
case 0x23: my_stprintf_s(buffer, buffer_len, _T("dcx d")); break;
- case 0x24: my_stprintf_s(buffer, buffer_len, _T("lxi d, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x25: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("gtiw v.%02xh, %02xh"), wa, getb()); break;
- case 0x26: my_stprintf_s(buffer, buffer_len, _T("adinc a, %02xh"), getb()); break;
- case 0x27: my_stprintf_s(buffer, buffer_len, _T("gti a, %02xh"), getb()); break;
+ case 0x24: my_stprintf_s(buffer, buffer_len, _T("lxi d,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x25: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("gtiw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x26: my_stprintf_s(buffer, buffer_len, _T("adinc a,%02xh"), getb()); break;
+ case 0x27: my_stprintf_s(buffer, buffer_len, _T("gti a,%02xh"), getb()); break;
case 0x28: my_stprintf_s(buffer, buffer_len, _T("ldaw v.%02xh"), getwa()); break;
case 0x29: my_stprintf_s(buffer, buffer_len, _T("ldax b")); break;
case 0x2a: my_stprintf_s(buffer, buffer_len, _T("ldax d")); break;
case 0x31: my_stprintf_s(buffer, buffer_len, _T("block")); break;
case 0x32: my_stprintf_s(buffer, buffer_len, _T("inx h")); break;
case 0x33: my_stprintf_s(buffer, buffer_len, _T("dcx h")); break;
- case 0x34: my_stprintf_s(buffer, buffer_len, _T("lxi h, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x35: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("ltiw v.%02xh, %02xh"), wa, getb()); break;
- case 0x36: my_stprintf_s(buffer, buffer_len, _T("suinb a, %02xh"), getb()); break;
- case 0x37: my_stprintf_s(buffer, buffer_len, _T("lti a, %02xh"), getb()); break;
+ case 0x34: my_stprintf_s(buffer, buffer_len, _T("lxi h,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x35: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("ltiw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x36: my_stprintf_s(buffer, buffer_len, _T("suinb a,%02xh"), getb()); break;
+ case 0x37: my_stprintf_s(buffer, buffer_len, _T("lti a,%02xh"), getb()); break;
case 0x38: my_stprintf_s(buffer, buffer_len, _T("staw v.%02xh"), getwa()); break;
case 0x39: my_stprintf_s(buffer, buffer_len, _T("stax b")); break;
case 0x3a: my_stprintf_s(buffer, buffer_len, _T("stax d")); break;
case 0x42: my_stprintf_s(buffer, buffer_len, _T("inr b")); break;
case 0x43: my_stprintf_s(buffer, buffer_len, _T("inr c")); break;
case 0x44: my_stprintf_s(buffer, buffer_len, _T("call %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x45: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("oniw v.%02xh, %02xh"), wa, getb()); break;
- case 0x46: my_stprintf_s(buffer, buffer_len, _T("adi a, %02xh"), getb()); break;
- case 0x47: my_stprintf_s(buffer, buffer_len, _T("oni a, %02xh"), getb()); break;
+ case 0x45: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("oniw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x46: my_stprintf_s(buffer, buffer_len, _T("adi a,%02xh"), getb()); break;
+ case 0x47: my_stprintf_s(buffer, buffer_len, _T("oni a,%02xh"), getb()); break;
case 0x48:
switch(b = getb()) {
case 0x00: my_stprintf_s(buffer, buffer_len, _T("skit intf0")); break;
case 0x3c: my_stprintf_s(buffer, buffer_len, _T("per")); break;
case 0x3e: my_stprintf_s(buffer, buffer_len, _T("push h")); break;
case 0x3f: my_stprintf_s(buffer, buffer_len, _T("pop h")); break;
- default: my_stprintf_s(buffer, buffer_len, _T("db 48h, %02xh"), b);
+ default: my_stprintf_s(buffer, buffer_len, _T("db 48h,%02xh"), b);
}
break;
- case 0x49: my_stprintf_s(buffer, buffer_len, _T("mvix b, %02xh"), getb()); break;
- case 0x4a: my_stprintf_s(buffer, buffer_len, _T("mvix d, %02xh"), getb()); break;
- case 0x4b: my_stprintf_s(buffer, buffer_len, _T("mvix h, %02xh"), getb()); break;
+ case 0x49: my_stprintf_s(buffer, buffer_len, _T("mvix b,%02xh"), getb()); break;
+ case 0x4a: my_stprintf_s(buffer, buffer_len, _T("mvix d,%02xh"), getb()); break;
+ case 0x4b: my_stprintf_s(buffer, buffer_len, _T("mvix h,%02xh"), getb()); break;
case 0x4c:
switch(b = getb()) {
- case 0xc0: my_stprintf_s(buffer, buffer_len, _T("mov a, pa")); break;
- case 0xc1: my_stprintf_s(buffer, buffer_len, _T("mov a, pb")); break;
- case 0xc2: my_stprintf_s(buffer, buffer_len, _T("mov a, pc")); break;
- case 0xc3: my_stprintf_s(buffer, buffer_len, _T("mov a, mk")); break;
- case 0xc4: my_stprintf_s(buffer, buffer_len, _T("mov a, mb")); break; // \96¢\92è\8b`?
- case 0xc5: my_stprintf_s(buffer, buffer_len, _T("mov a, mc")); break; // \96¢\92è\8b`?
- case 0xc6: my_stprintf_s(buffer, buffer_len, _T("mov a, tm0")); break; // \96¢\92è\8b`?
- case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov a, tm1")); break; // \96¢\92è\8b`?
- case 0xc8: my_stprintf_s(buffer, buffer_len, _T("mov a, s")); break;
+ case 0xc0: my_stprintf_s(buffer, buffer_len, _T("mov a,pa")); break;
+ case 0xc1: my_stprintf_s(buffer, buffer_len, _T("mov a,pb")); break;
+ case 0xc2: my_stprintf_s(buffer, buffer_len, _T("mov a,pc")); break;
+ case 0xc3: my_stprintf_s(buffer, buffer_len, _T("mov a,mk")); break;
+ case 0xc4: my_stprintf_s(buffer, buffer_len, _T("mov a,mb")); break; // \96¢\92è\8b`?
+ case 0xc5: my_stprintf_s(buffer, buffer_len, _T("mov a,mc")); break; // \96¢\92è\8b`?
+ case 0xc6: my_stprintf_s(buffer, buffer_len, _T("mov a,tm0")); break; // \96¢\92è\8b`?
+ case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov a,tm1")); break; // \96¢\92è\8b`?
+ case 0xc8: my_stprintf_s(buffer, buffer_len, _T("mov a,s")); break;
default:
if(b < 0xc0) {
my_stprintf_s(buffer, buffer_len, _T("in %02xh"), getb()); break;
}
- my_stprintf_s(buffer, buffer_len, _T("db 4ch, %02xh"), b);
+ my_stprintf_s(buffer, buffer_len, _T("db 4ch,%02xh"), b);
}
break;
case 0x4d:
switch(b = getb()) {
- case 0xc0: my_stprintf_s(buffer, buffer_len, _T("mov pa, a")); break;
- case 0xc1: my_stprintf_s(buffer, buffer_len, _T("mov pb, a")); break;
- case 0xc2: my_stprintf_s(buffer, buffer_len, _T("mov pc, a")); break;
- case 0xc3: my_stprintf_s(buffer, buffer_len, _T("mov mk, a")); break;
- case 0xc4: my_stprintf_s(buffer, buffer_len, _T("mov mb, a")); break;
- case 0xc5: my_stprintf_s(buffer, buffer_len, _T("mov mc, a")); break;
- case 0xc6: my_stprintf_s(buffer, buffer_len, _T("mov tm0, a")); break;
- case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov tm1, a")); break;
- case 0xc8: my_stprintf_s(buffer, buffer_len, _T("mov s, a")); break;
+ case 0xc0: my_stprintf_s(buffer, buffer_len, _T("mov pa,a")); break;
+ case 0xc1: my_stprintf_s(buffer, buffer_len, _T("mov pb,a")); break;
+ case 0xc2: my_stprintf_s(buffer, buffer_len, _T("mov pc,a")); break;
+ case 0xc3: my_stprintf_s(buffer, buffer_len, _T("mov mk,a")); break;
+ case 0xc4: my_stprintf_s(buffer, buffer_len, _T("mov mb,a")); break;
+ case 0xc5: my_stprintf_s(buffer, buffer_len, _T("mov mc,a")); break;
+ case 0xc6: my_stprintf_s(buffer, buffer_len, _T("mov tm0,a")); break;
+ case 0xc7: my_stprintf_s(buffer, buffer_len, _T("mov tm1,a")); break;
+ case 0xc8: my_stprintf_s(buffer, buffer_len, _T("mov s,a")); break;
default:
if(b < 0xc0) {
my_stprintf_s(buffer, buffer_len, _T("out %02xh"), getb()); break;
}
- my_stprintf_s(buffer, buffer_len, _T("db 4dh, %02xh"), b);
+ my_stprintf_s(buffer, buffer_len, _T("db 4dh,%02xh"), b);
}
break;
case 0x4e: b = getb(); my_stprintf_s(buffer, buffer_len, _T("jre %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), pc + upd7801_dasm_ptr + b)); break;
case 0x52: my_stprintf_s(buffer, buffer_len, _T("dcr b")); break;
case 0x53: my_stprintf_s(buffer, buffer_len, _T("dcr c")); break;
case 0x54: my_stprintf_s(buffer, buffer_len, _T("jmp %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x55: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("offiw v.%02xh, %02xh"), wa, getb()); break;
- case 0x56: my_stprintf_s(buffer, buffer_len, _T("aci a, %02xh"), getb()); break;
- case 0x57: my_stprintf_s(buffer, buffer_len, _T("offi a, %02xh"), getb()); break;
- case 0x58: my_stprintf_s(buffer, buffer_len, _T("bit 0, v.%02xh"), getwa()); break;
- case 0x59: my_stprintf_s(buffer, buffer_len, _T("bit 1, v.%02xh"), getwa()); break;
- case 0x5a: my_stprintf_s(buffer, buffer_len, _T("bit 2, v.%02xh"), getwa()); break;
- case 0x5b: my_stprintf_s(buffer, buffer_len, _T("bit 3, v.%02xh"), getwa()); break;
- case 0x5c: my_stprintf_s(buffer, buffer_len, _T("bit 4, v.%02xh"), getwa()); break;
- case 0x5d: my_stprintf_s(buffer, buffer_len, _T("bit 5, v.%02xh"), getwa()); break;
- case 0x5e: my_stprintf_s(buffer, buffer_len, _T("bit 6, v.%02xh"), getwa()); break;
- case 0x5f: my_stprintf_s(buffer, buffer_len, _T("bit 7, v.%02xh"), getwa()); break;
+ case 0x55: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("offiw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x56: my_stprintf_s(buffer, buffer_len, _T("aci a,%02xh"), getb()); break;
+ case 0x57: my_stprintf_s(buffer, buffer_len, _T("offi a,%02xh"), getb()); break;
+ case 0x58: my_stprintf_s(buffer, buffer_len, _T("bit 0,v.%02xh"), getwa()); break;
+ case 0x59: my_stprintf_s(buffer, buffer_len, _T("bit 1,v.%02xh"), getwa()); break;
+ case 0x5a: my_stprintf_s(buffer, buffer_len, _T("bit 2,v.%02xh"), getwa()); break;
+ case 0x5b: my_stprintf_s(buffer, buffer_len, _T("bit 3,v.%02xh"), getwa()); break;
+ case 0x5c: my_stprintf_s(buffer, buffer_len, _T("bit 4,v.%02xh"), getwa()); break;
+ case 0x5d: my_stprintf_s(buffer, buffer_len, _T("bit 5,v.%02xh"), getwa()); break;
+ case 0x5e: my_stprintf_s(buffer, buffer_len, _T("bit 6,v.%02xh"), getwa()); break;
+ case 0x5f: my_stprintf_s(buffer, buffer_len, _T("bit 7,v.%02xh"), getwa()); break;
case 0x60:
switch(b = getb()) {
- case 0x08: my_stprintf_s(buffer, buffer_len, _T("ana v, a")); break;
- case 0x09: my_stprintf_s(buffer, buffer_len, _T("ana a, a")); break;
- case 0x0a: my_stprintf_s(buffer, buffer_len, _T("ana b, a")); break;
- case 0x0b: my_stprintf_s(buffer, buffer_len, _T("ana c, a")); break;
- case 0x0c: my_stprintf_s(buffer, buffer_len, _T("ana d, a")); break;
- case 0x0d: my_stprintf_s(buffer, buffer_len, _T("ana e, a")); break;
- case 0x0e: my_stprintf_s(buffer, buffer_len, _T("ana h, a")); break;
- case 0x0f: my_stprintf_s(buffer, buffer_len, _T("ana l, a")); break;
- case 0x10: my_stprintf_s(buffer, buffer_len, _T("xra v, a")); break;
- case 0x11: my_stprintf_s(buffer, buffer_len, _T("xra a, a")); break;
- case 0x12: my_stprintf_s(buffer, buffer_len, _T("xra b, a")); break;
- case 0x13: my_stprintf_s(buffer, buffer_len, _T("xra c, a")); break;
- case 0x14: my_stprintf_s(buffer, buffer_len, _T("xra d, a")); break;
- case 0x15: my_stprintf_s(buffer, buffer_len, _T("xra e, a")); break;
- case 0x16: my_stprintf_s(buffer, buffer_len, _T("xra h, a")); break;
- case 0x17: my_stprintf_s(buffer, buffer_len, _T("xra l, a")); break;
- case 0x18: my_stprintf_s(buffer, buffer_len, _T("ora v, a")); break;
- case 0x19: my_stprintf_s(buffer, buffer_len, _T("ora a, a")); break;
- case 0x1a: my_stprintf_s(buffer, buffer_len, _T("ora b, a")); break;
- case 0x1b: my_stprintf_s(buffer, buffer_len, _T("ora c, a")); break;
- case 0x1c: my_stprintf_s(buffer, buffer_len, _T("ora d, a")); break;
- case 0x1d: my_stprintf_s(buffer, buffer_len, _T("ora e, a")); break;
- case 0x1e: my_stprintf_s(buffer, buffer_len, _T("ora h, a")); break;
- case 0x1f: my_stprintf_s(buffer, buffer_len, _T("ora l, a")); break;
- case 0x20: my_stprintf_s(buffer, buffer_len, _T("addnc v, a")); break;
- case 0x21: my_stprintf_s(buffer, buffer_len, _T("addnc a, a")); break;
- case 0x22: my_stprintf_s(buffer, buffer_len, _T("addnc b, a")); break;
- case 0x23: my_stprintf_s(buffer, buffer_len, _T("addnc c, a")); break;
- case 0x24: my_stprintf_s(buffer, buffer_len, _T("addnc d, a")); break;
- case 0x25: my_stprintf_s(buffer, buffer_len, _T("addnc e, a")); break;
- case 0x26: my_stprintf_s(buffer, buffer_len, _T("addnc h, a")); break;
- case 0x27: my_stprintf_s(buffer, buffer_len, _T("addnc l, a")); break;
- case 0x28: my_stprintf_s(buffer, buffer_len, _T("gta v, a")); break;
- case 0x29: my_stprintf_s(buffer, buffer_len, _T("gta a, a")); break;
- case 0x2a: my_stprintf_s(buffer, buffer_len, _T("gta b, a")); break;
- case 0x2b: my_stprintf_s(buffer, buffer_len, _T("gta c, a")); break;
- case 0x2c: my_stprintf_s(buffer, buffer_len, _T("gta d, a")); break;
- case 0x2d: my_stprintf_s(buffer, buffer_len, _T("gta e, a")); break;
- case 0x2e: my_stprintf_s(buffer, buffer_len, _T("gta h, a")); break;
- case 0x2f: my_stprintf_s(buffer, buffer_len, _T("gta l, a")); break;
- case 0x30: my_stprintf_s(buffer, buffer_len, _T("subnb v, a")); break;
- case 0x31: my_stprintf_s(buffer, buffer_len, _T("subnb a, a")); break;
- case 0x32: my_stprintf_s(buffer, buffer_len, _T("subnb b, a")); break;
- case 0x33: my_stprintf_s(buffer, buffer_len, _T("subnb c, a")); break;
- case 0x34: my_stprintf_s(buffer, buffer_len, _T("subnb d, a")); break;
- case 0x35: my_stprintf_s(buffer, buffer_len, _T("subnb e, a")); break;
- case 0x36: my_stprintf_s(buffer, buffer_len, _T("subnb h, a")); break;
- case 0x37: my_stprintf_s(buffer, buffer_len, _T("subnb l, a")); break;
- case 0x38: my_stprintf_s(buffer, buffer_len, _T("lta v, a")); break;
- case 0x39: my_stprintf_s(buffer, buffer_len, _T("lta a, a")); break;
- case 0x3a: my_stprintf_s(buffer, buffer_len, _T("lta b, a")); break;
- case 0x3b: my_stprintf_s(buffer, buffer_len, _T("lta c, a")); break;
- case 0x3c: my_stprintf_s(buffer, buffer_len, _T("lta d, a")); break;
- case 0x3d: my_stprintf_s(buffer, buffer_len, _T("lta e, a")); break;
- case 0x3e: my_stprintf_s(buffer, buffer_len, _T("lta h, a")); break;
- case 0x3f: my_stprintf_s(buffer, buffer_len, _T("lta l, a")); break;
- case 0x40: my_stprintf_s(buffer, buffer_len, _T("add v, a")); break;
- case 0x41: my_stprintf_s(buffer, buffer_len, _T("add a, a")); break;
- case 0x42: my_stprintf_s(buffer, buffer_len, _T("add b, a")); break;
- case 0x43: my_stprintf_s(buffer, buffer_len, _T("add c, a")); break;
- case 0x44: my_stprintf_s(buffer, buffer_len, _T("add d, a")); break;
- case 0x45: my_stprintf_s(buffer, buffer_len, _T("add e, a")); break;
- case 0x46: my_stprintf_s(buffer, buffer_len, _T("add h, a")); break;
- case 0x47: my_stprintf_s(buffer, buffer_len, _T("add l, a")); break;
- case 0x50: my_stprintf_s(buffer, buffer_len, _T("adc v, a")); break;
- case 0x51: my_stprintf_s(buffer, buffer_len, _T("adc a, a")); break;
- case 0x52: my_stprintf_s(buffer, buffer_len, _T("adc b, a")); break;
- case 0x53: my_stprintf_s(buffer, buffer_len, _T("adc c, a")); break;
- case 0x54: my_stprintf_s(buffer, buffer_len, _T("adc d, a")); break;
- case 0x55: my_stprintf_s(buffer, buffer_len, _T("adc e, a")); break;
- case 0x56: my_stprintf_s(buffer, buffer_len, _T("adc h, a")); break;
- case 0x57: my_stprintf_s(buffer, buffer_len, _T("adc l, a")); break;
- case 0x60: my_stprintf_s(buffer, buffer_len, _T("sub v, a")); break;
- case 0x61: my_stprintf_s(buffer, buffer_len, _T("sub a, a")); break;
- case 0x62: my_stprintf_s(buffer, buffer_len, _T("sub b, a")); break;
- case 0x63: my_stprintf_s(buffer, buffer_len, _T("sub c, a")); break;
- case 0x64: my_stprintf_s(buffer, buffer_len, _T("sub d, a")); break;
- case 0x65: my_stprintf_s(buffer, buffer_len, _T("sub e, a")); break;
- case 0x66: my_stprintf_s(buffer, buffer_len, _T("sub h, a")); break;
- case 0x67: my_stprintf_s(buffer, buffer_len, _T("sub l, a")); break;
- case 0x68: my_stprintf_s(buffer, buffer_len, _T("nea v, a")); break;
- case 0x69: my_stprintf_s(buffer, buffer_len, _T("nea a, a")); break;
- case 0x6a: my_stprintf_s(buffer, buffer_len, _T("nea b, a")); break;
- case 0x6b: my_stprintf_s(buffer, buffer_len, _T("nea c, a")); break;
- case 0x6c: my_stprintf_s(buffer, buffer_len, _T("nea d, a")); break;
- case 0x6d: my_stprintf_s(buffer, buffer_len, _T("nea e, a")); break;
- case 0x6e: my_stprintf_s(buffer, buffer_len, _T("nea h, a")); break;
- case 0x6f: my_stprintf_s(buffer, buffer_len, _T("nea l, a")); break;
- case 0x70: my_stprintf_s(buffer, buffer_len, _T("sbb v, a")); break;
- case 0x71: my_stprintf_s(buffer, buffer_len, _T("sbb a, a")); break;
- case 0x72: my_stprintf_s(buffer, buffer_len, _T("sbb b, a")); break;
- case 0x73: my_stprintf_s(buffer, buffer_len, _T("sbb c, a")); break;
- case 0x74: my_stprintf_s(buffer, buffer_len, _T("sbb d, a")); break;
- case 0x75: my_stprintf_s(buffer, buffer_len, _T("sbb e, a")); break;
- case 0x76: my_stprintf_s(buffer, buffer_len, _T("sbb h, a")); break;
- case 0x77: my_stprintf_s(buffer, buffer_len, _T("sbb l, a")); break;
- case 0x78: my_stprintf_s(buffer, buffer_len, _T("eqa v, a")); break;
- case 0x79: my_stprintf_s(buffer, buffer_len, _T("eqa a, a")); break;
- case 0x7a: my_stprintf_s(buffer, buffer_len, _T("eqa b, a")); break;
- case 0x7b: my_stprintf_s(buffer, buffer_len, _T("eqa c, a")); break;
- case 0x7c: my_stprintf_s(buffer, buffer_len, _T("eqa d, a")); break;
- case 0x7d: my_stprintf_s(buffer, buffer_len, _T("eqa e, a")); break;
- case 0x7e: my_stprintf_s(buffer, buffer_len, _T("eqa h, a")); break;
- case 0x7f: my_stprintf_s(buffer, buffer_len, _T("eqa l, a")); break;
- case 0x88: my_stprintf_s(buffer, buffer_len, _T("ana a, v")); break;
- case 0x89: my_stprintf_s(buffer, buffer_len, _T("ana a, a")); break;
- case 0x8a: my_stprintf_s(buffer, buffer_len, _T("ana a, b")); break;
- case 0x8b: my_stprintf_s(buffer, buffer_len, _T("ana a, c")); break;
- case 0x8c: my_stprintf_s(buffer, buffer_len, _T("ana a, d")); break;
- case 0x8d: my_stprintf_s(buffer, buffer_len, _T("ana a, e")); break;
- case 0x8e: my_stprintf_s(buffer, buffer_len, _T("ana a, h")); break;
- case 0x8f: my_stprintf_s(buffer, buffer_len, _T("ana a, l")); break;
- case 0x90: my_stprintf_s(buffer, buffer_len, _T("xra a, v")); break;
- case 0x91: my_stprintf_s(buffer, buffer_len, _T("xra a, a")); break;
- case 0x92: my_stprintf_s(buffer, buffer_len, _T("xra a, b")); break;
- case 0x93: my_stprintf_s(buffer, buffer_len, _T("xra a, c")); break;
- case 0x94: my_stprintf_s(buffer, buffer_len, _T("xra a, d")); break;
- case 0x95: my_stprintf_s(buffer, buffer_len, _T("xra a, e")); break;
- case 0x96: my_stprintf_s(buffer, buffer_len, _T("xra a, h")); break;
- case 0x97: my_stprintf_s(buffer, buffer_len, _T("xra a, l")); break;
- case 0x98: my_stprintf_s(buffer, buffer_len, _T("ora a, v")); break;
- case 0x99: my_stprintf_s(buffer, buffer_len, _T("ora a, a")); break;
- case 0x9a: my_stprintf_s(buffer, buffer_len, _T("ora a, b")); break;
- case 0x9b: my_stprintf_s(buffer, buffer_len, _T("ora a, c")); break;
- case 0x9c: my_stprintf_s(buffer, buffer_len, _T("ora a, d")); break;
- case 0x9d: my_stprintf_s(buffer, buffer_len, _T("ora a, e")); break;
- case 0x9e: my_stprintf_s(buffer, buffer_len, _T("ora a, h")); break;
- case 0x9f: my_stprintf_s(buffer, buffer_len, _T("ora a, l")); break;
- case 0xa0: my_stprintf_s(buffer, buffer_len, _T("addnc a, v")); break;
- case 0xa1: my_stprintf_s(buffer, buffer_len, _T("addnc a, a")); break;
- case 0xa2: my_stprintf_s(buffer, buffer_len, _T("addnc a, b")); break;
- case 0xa3: my_stprintf_s(buffer, buffer_len, _T("addnc a, c")); break;
- case 0xa4: my_stprintf_s(buffer, buffer_len, _T("addnc a, d")); break;
- case 0xa5: my_stprintf_s(buffer, buffer_len, _T("addnc a, e")); break;
- case 0xa6: my_stprintf_s(buffer, buffer_len, _T("addnc a, h")); break;
- case 0xa7: my_stprintf_s(buffer, buffer_len, _T("addnc a, l")); break;
- case 0xa8: my_stprintf_s(buffer, buffer_len, _T("gta a, v")); break;
- case 0xa9: my_stprintf_s(buffer, buffer_len, _T("gta a, a")); break;
- case 0xaa: my_stprintf_s(buffer, buffer_len, _T("gta a, b")); break;
- case 0xab: my_stprintf_s(buffer, buffer_len, _T("gta a, c")); break;
- case 0xac: my_stprintf_s(buffer, buffer_len, _T("gta a, d")); break;
- case 0xad: my_stprintf_s(buffer, buffer_len, _T("gta a, e")); break;
- case 0xae: my_stprintf_s(buffer, buffer_len, _T("gta a, h")); break;
- case 0xaf: my_stprintf_s(buffer, buffer_len, _T("gta a, l")); break;
- case 0xb0: my_stprintf_s(buffer, buffer_len, _T("subnb a, v")); break;
- case 0xb1: my_stprintf_s(buffer, buffer_len, _T("subnb a, a")); break;
- case 0xb2: my_stprintf_s(buffer, buffer_len, _T("subnb a, b")); break;
- case 0xb3: my_stprintf_s(buffer, buffer_len, _T("subnb a, c")); break;
- case 0xb4: my_stprintf_s(buffer, buffer_len, _T("subnb a, d")); break;
- case 0xb5: my_stprintf_s(buffer, buffer_len, _T("subnb a, e")); break;
- case 0xb6: my_stprintf_s(buffer, buffer_len, _T("subnb a, h")); break;
- case 0xb7: my_stprintf_s(buffer, buffer_len, _T("subnb a, l")); break;
- case 0xb8: my_stprintf_s(buffer, buffer_len, _T("lta a, v")); break;
- case 0xb9: my_stprintf_s(buffer, buffer_len, _T("lta a, a")); break;
- case 0xba: my_stprintf_s(buffer, buffer_len, _T("lta a, b")); break;
- case 0xbb: my_stprintf_s(buffer, buffer_len, _T("lta a, c")); break;
- case 0xbc: my_stprintf_s(buffer, buffer_len, _T("lta a, d")); break;
- case 0xbd: my_stprintf_s(buffer, buffer_len, _T("lta a, e")); break;
- case 0xbe: my_stprintf_s(buffer, buffer_len, _T("lta a, h")); break;
- case 0xbf: my_stprintf_s(buffer, buffer_len, _T("lta a, l")); break;
- case 0xc0: my_stprintf_s(buffer, buffer_len, _T("add a, v")); break;
- case 0xc1: my_stprintf_s(buffer, buffer_len, _T("add a, a")); break;
- case 0xc2: my_stprintf_s(buffer, buffer_len, _T("add a, b")); break;
- case 0xc3: my_stprintf_s(buffer, buffer_len, _T("add a, c")); break;
- case 0xc4: my_stprintf_s(buffer, buffer_len, _T("add a, d")); break;
- case 0xc5: my_stprintf_s(buffer, buffer_len, _T("add a, e")); break;
- case 0xc6: my_stprintf_s(buffer, buffer_len, _T("add a, h")); break;
- case 0xc7: my_stprintf_s(buffer, buffer_len, _T("add a, l")); break;
- case 0xc8: my_stprintf_s(buffer, buffer_len, _T("ona a, v")); break;
- case 0xc9: my_stprintf_s(buffer, buffer_len, _T("ona a, a")); break;
- case 0xca: my_stprintf_s(buffer, buffer_len, _T("ona a, b")); break;
- case 0xcb: my_stprintf_s(buffer, buffer_len, _T("ona a, c")); break;
- case 0xcc: my_stprintf_s(buffer, buffer_len, _T("ona a, d")); break;
- case 0xcd: my_stprintf_s(buffer, buffer_len, _T("ona a, e")); break;
- case 0xce: my_stprintf_s(buffer, buffer_len, _T("ona a, h")); break;
- case 0xcf: my_stprintf_s(buffer, buffer_len, _T("ona a, l")); break;
- case 0xd0: my_stprintf_s(buffer, buffer_len, _T("adc a, v")); break;
- case 0xd1: my_stprintf_s(buffer, buffer_len, _T("adc a, a")); break;
- case 0xd2: my_stprintf_s(buffer, buffer_len, _T("adc a, b")); break;
- case 0xd3: my_stprintf_s(buffer, buffer_len, _T("adc a, c")); break;
- case 0xd4: my_stprintf_s(buffer, buffer_len, _T("adc a, d")); break;
- case 0xd5: my_stprintf_s(buffer, buffer_len, _T("adc a, e")); break;
- case 0xd6: my_stprintf_s(buffer, buffer_len, _T("adc a, h")); break;
- case 0xd7: my_stprintf_s(buffer, buffer_len, _T("adc a, l")); break;
- case 0xd8: my_stprintf_s(buffer, buffer_len, _T("offa a, v")); break;
- case 0xd9: my_stprintf_s(buffer, buffer_len, _T("offa a, a")); break;
- case 0xda: my_stprintf_s(buffer, buffer_len, _T("offa a, b")); break;
- case 0xdb: my_stprintf_s(buffer, buffer_len, _T("offa a, c")); break;
- case 0xdc: my_stprintf_s(buffer, buffer_len, _T("offa a, d")); break;
- case 0xdd: my_stprintf_s(buffer, buffer_len, _T("offa a, e")); break;
- case 0xde: my_stprintf_s(buffer, buffer_len, _T("offa a, h")); break;
- case 0xdf: my_stprintf_s(buffer, buffer_len, _T("offa a, l")); break;
- case 0xe0: my_stprintf_s(buffer, buffer_len, _T("sub a, v")); break;
- case 0xe1: my_stprintf_s(buffer, buffer_len, _T("sub a, a")); break;
- case 0xe2: my_stprintf_s(buffer, buffer_len, _T("sub a, b")); break;
- case 0xe3: my_stprintf_s(buffer, buffer_len, _T("sub a, c")); break;
- case 0xe4: my_stprintf_s(buffer, buffer_len, _T("sub a, d")); break;
- case 0xe5: my_stprintf_s(buffer, buffer_len, _T("sub a, e")); break;
- case 0xe6: my_stprintf_s(buffer, buffer_len, _T("sub a, h")); break;
- case 0xe7: my_stprintf_s(buffer, buffer_len, _T("sub a, l")); break;
- case 0xe8: my_stprintf_s(buffer, buffer_len, _T("nea a, v")); break;
- case 0xe9: my_stprintf_s(buffer, buffer_len, _T("nea a, a")); break;
- case 0xea: my_stprintf_s(buffer, buffer_len, _T("nea a, b")); break;
- case 0xeb: my_stprintf_s(buffer, buffer_len, _T("nea a, c")); break;
- case 0xec: my_stprintf_s(buffer, buffer_len, _T("nea a, d")); break;
- case 0xed: my_stprintf_s(buffer, buffer_len, _T("nea a, e")); break;
- case 0xee: my_stprintf_s(buffer, buffer_len, _T("nea a, h")); break;
- case 0xef: my_stprintf_s(buffer, buffer_len, _T("nea a, l")); break;
- case 0xf0: my_stprintf_s(buffer, buffer_len, _T("sbb a, v")); break;
- case 0xf1: my_stprintf_s(buffer, buffer_len, _T("sbb a, a")); break;
- case 0xf2: my_stprintf_s(buffer, buffer_len, _T("sbb a, b")); break;
- case 0xf3: my_stprintf_s(buffer, buffer_len, _T("sbb a, c")); break;
- case 0xf4: my_stprintf_s(buffer, buffer_len, _T("sbb a, d")); break;
- case 0xf5: my_stprintf_s(buffer, buffer_len, _T("sbb a, e")); break;
- case 0xf6: my_stprintf_s(buffer, buffer_len, _T("sbb a, h")); break;
- case 0xf7: my_stprintf_s(buffer, buffer_len, _T("sbb a, l")); break;
- case 0xf8: my_stprintf_s(buffer, buffer_len, _T("eqa a, v")); break;
- case 0xf9: my_stprintf_s(buffer, buffer_len, _T("eqa a, a")); break;
- case 0xfa: my_stprintf_s(buffer, buffer_len, _T("eqa a, b")); break;
- case 0xfb: my_stprintf_s(buffer, buffer_len, _T("eqa a, c")); break;
- case 0xfc: my_stprintf_s(buffer, buffer_len, _T("eqa a, d")); break;
- case 0xfd: my_stprintf_s(buffer, buffer_len, _T("eqa a, e")); break;
- case 0xfe: my_stprintf_s(buffer, buffer_len, _T("eqa a, h")); break;
- case 0xff: my_stprintf_s(buffer, buffer_len, _T("eqa a, l")); break;
- default: my_stprintf_s(buffer, buffer_len, _T("db 60h, %02xh"), b);
+ case 0x08: my_stprintf_s(buffer, buffer_len, _T("ana v,a")); break;
+ case 0x09: my_stprintf_s(buffer, buffer_len, _T("ana a,a")); break;
+ case 0x0a: my_stprintf_s(buffer, buffer_len, _T("ana b,a")); break;
+ case 0x0b: my_stprintf_s(buffer, buffer_len, _T("ana c,a")); break;
+ case 0x0c: my_stprintf_s(buffer, buffer_len, _T("ana d,a")); break;
+ case 0x0d: my_stprintf_s(buffer, buffer_len, _T("ana e,a")); break;
+ case 0x0e: my_stprintf_s(buffer, buffer_len, _T("ana h,a")); break;
+ case 0x0f: my_stprintf_s(buffer, buffer_len, _T("ana l,a")); break;
+ case 0x10: my_stprintf_s(buffer, buffer_len, _T("xra v,a")); break;
+ case 0x11: my_stprintf_s(buffer, buffer_len, _T("xra a,a")); break;
+ case 0x12: my_stprintf_s(buffer, buffer_len, _T("xra b,a")); break;
+ case 0x13: my_stprintf_s(buffer, buffer_len, _T("xra c,a")); break;
+ case 0x14: my_stprintf_s(buffer, buffer_len, _T("xra d,a")); break;
+ case 0x15: my_stprintf_s(buffer, buffer_len, _T("xra e,a")); break;
+ case 0x16: my_stprintf_s(buffer, buffer_len, _T("xra h,a")); break;
+ case 0x17: my_stprintf_s(buffer, buffer_len, _T("xra l,a")); break;
+ case 0x18: my_stprintf_s(buffer, buffer_len, _T("ora v,a")); break;
+ case 0x19: my_stprintf_s(buffer, buffer_len, _T("ora a,a")); break;
+ case 0x1a: my_stprintf_s(buffer, buffer_len, _T("ora b,a")); break;
+ case 0x1b: my_stprintf_s(buffer, buffer_len, _T("ora c,a")); break;
+ case 0x1c: my_stprintf_s(buffer, buffer_len, _T("ora d,a")); break;
+ case 0x1d: my_stprintf_s(buffer, buffer_len, _T("ora e,a")); break;
+ case 0x1e: my_stprintf_s(buffer, buffer_len, _T("ora h,a")); break;
+ case 0x1f: my_stprintf_s(buffer, buffer_len, _T("ora l,a")); break;
+ case 0x20: my_stprintf_s(buffer, buffer_len, _T("addnc v,a")); break;
+ case 0x21: my_stprintf_s(buffer, buffer_len, _T("addnc a,a")); break;
+ case 0x22: my_stprintf_s(buffer, buffer_len, _T("addnc b,a")); break;
+ case 0x23: my_stprintf_s(buffer, buffer_len, _T("addnc c,a")); break;
+ case 0x24: my_stprintf_s(buffer, buffer_len, _T("addnc d,a")); break;
+ case 0x25: my_stprintf_s(buffer, buffer_len, _T("addnc e,a")); break;
+ case 0x26: my_stprintf_s(buffer, buffer_len, _T("addnc h,a")); break;
+ case 0x27: my_stprintf_s(buffer, buffer_len, _T("addnc l,a")); break;
+ case 0x28: my_stprintf_s(buffer, buffer_len, _T("gta v,a")); break;
+ case 0x29: my_stprintf_s(buffer, buffer_len, _T("gta a,a")); break;
+ case 0x2a: my_stprintf_s(buffer, buffer_len, _T("gta b,a")); break;
+ case 0x2b: my_stprintf_s(buffer, buffer_len, _T("gta c,a")); break;
+ case 0x2c: my_stprintf_s(buffer, buffer_len, _T("gta d,a")); break;
+ case 0x2d: my_stprintf_s(buffer, buffer_len, _T("gta e,a")); break;
+ case 0x2e: my_stprintf_s(buffer, buffer_len, _T("gta h,a")); break;
+ case 0x2f: my_stprintf_s(buffer, buffer_len, _T("gta l,a")); break;
+ case 0x30: my_stprintf_s(buffer, buffer_len, _T("subnb v,a")); break;
+ case 0x31: my_stprintf_s(buffer, buffer_len, _T("subnb a,a")); break;
+ case 0x32: my_stprintf_s(buffer, buffer_len, _T("subnb b,a")); break;
+ case 0x33: my_stprintf_s(buffer, buffer_len, _T("subnb c,a")); break;
+ case 0x34: my_stprintf_s(buffer, buffer_len, _T("subnb d,a")); break;
+ case 0x35: my_stprintf_s(buffer, buffer_len, _T("subnb e,a")); break;
+ case 0x36: my_stprintf_s(buffer, buffer_len, _T("subnb h,a")); break;
+ case 0x37: my_stprintf_s(buffer, buffer_len, _T("subnb l,a")); break;
+ case 0x38: my_stprintf_s(buffer, buffer_len, _T("lta v,a")); break;
+ case 0x39: my_stprintf_s(buffer, buffer_len, _T("lta a,a")); break;
+ case 0x3a: my_stprintf_s(buffer, buffer_len, _T("lta b,a")); break;
+ case 0x3b: my_stprintf_s(buffer, buffer_len, _T("lta c,a")); break;
+ case 0x3c: my_stprintf_s(buffer, buffer_len, _T("lta d,a")); break;
+ case 0x3d: my_stprintf_s(buffer, buffer_len, _T("lta e,a")); break;
+ case 0x3e: my_stprintf_s(buffer, buffer_len, _T("lta h,a")); break;
+ case 0x3f: my_stprintf_s(buffer, buffer_len, _T("lta l,a")); break;
+ case 0x40: my_stprintf_s(buffer, buffer_len, _T("add v,a")); break;
+ case 0x41: my_stprintf_s(buffer, buffer_len, _T("add a,a")); break;
+ case 0x42: my_stprintf_s(buffer, buffer_len, _T("add b,a")); break;
+ case 0x43: my_stprintf_s(buffer, buffer_len, _T("add c,a")); break;
+ case 0x44: my_stprintf_s(buffer, buffer_len, _T("add d,a")); break;
+ case 0x45: my_stprintf_s(buffer, buffer_len, _T("add e,a")); break;
+ case 0x46: my_stprintf_s(buffer, buffer_len, _T("add h,a")); break;
+ case 0x47: my_stprintf_s(buffer, buffer_len, _T("add l,a")); break;
+ case 0x50: my_stprintf_s(buffer, buffer_len, _T("adc v,a")); break;
+ case 0x51: my_stprintf_s(buffer, buffer_len, _T("adc a,a")); break;
+ case 0x52: my_stprintf_s(buffer, buffer_len, _T("adc b,a")); break;
+ case 0x53: my_stprintf_s(buffer, buffer_len, _T("adc c,a")); break;
+ case 0x54: my_stprintf_s(buffer, buffer_len, _T("adc d,a")); break;
+ case 0x55: my_stprintf_s(buffer, buffer_len, _T("adc e,a")); break;
+ case 0x56: my_stprintf_s(buffer, buffer_len, _T("adc h,a")); break;
+ case 0x57: my_stprintf_s(buffer, buffer_len, _T("adc l,a")); break;
+ case 0x60: my_stprintf_s(buffer, buffer_len, _T("sub v,a")); break;
+ case 0x61: my_stprintf_s(buffer, buffer_len, _T("sub a,a")); break;
+ case 0x62: my_stprintf_s(buffer, buffer_len, _T("sub b,a")); break;
+ case 0x63: my_stprintf_s(buffer, buffer_len, _T("sub c,a")); break;
+ case 0x64: my_stprintf_s(buffer, buffer_len, _T("sub d,a")); break;
+ case 0x65: my_stprintf_s(buffer, buffer_len, _T("sub e,a")); break;
+ case 0x66: my_stprintf_s(buffer, buffer_len, _T("sub h,a")); break;
+ case 0x67: my_stprintf_s(buffer, buffer_len, _T("sub l,a")); break;
+ case 0x68: my_stprintf_s(buffer, buffer_len, _T("nea v,a")); break;
+ case 0x69: my_stprintf_s(buffer, buffer_len, _T("nea a,a")); break;
+ case 0x6a: my_stprintf_s(buffer, buffer_len, _T("nea b,a")); break;
+ case 0x6b: my_stprintf_s(buffer, buffer_len, _T("nea c,a")); break;
+ case 0x6c: my_stprintf_s(buffer, buffer_len, _T("nea d,a")); break;
+ case 0x6d: my_stprintf_s(buffer, buffer_len, _T("nea e,a")); break;
+ case 0x6e: my_stprintf_s(buffer, buffer_len, _T("nea h,a")); break;
+ case 0x6f: my_stprintf_s(buffer, buffer_len, _T("nea l,a")); break;
+ case 0x70: my_stprintf_s(buffer, buffer_len, _T("sbb v,a")); break;
+ case 0x71: my_stprintf_s(buffer, buffer_len, _T("sbb a,a")); break;
+ case 0x72: my_stprintf_s(buffer, buffer_len, _T("sbb b,a")); break;
+ case 0x73: my_stprintf_s(buffer, buffer_len, _T("sbb c,a")); break;
+ case 0x74: my_stprintf_s(buffer, buffer_len, _T("sbb d,a")); break;
+ case 0x75: my_stprintf_s(buffer, buffer_len, _T("sbb e,a")); break;
+ case 0x76: my_stprintf_s(buffer, buffer_len, _T("sbb h,a")); break;
+ case 0x77: my_stprintf_s(buffer, buffer_len, _T("sbb l,a")); break;
+ case 0x78: my_stprintf_s(buffer, buffer_len, _T("eqa v,a")); break;
+ case 0x79: my_stprintf_s(buffer, buffer_len, _T("eqa a,a")); break;
+ case 0x7a: my_stprintf_s(buffer, buffer_len, _T("eqa b,a")); break;
+ case 0x7b: my_stprintf_s(buffer, buffer_len, _T("eqa c,a")); break;
+ case 0x7c: my_stprintf_s(buffer, buffer_len, _T("eqa d,a")); break;
+ case 0x7d: my_stprintf_s(buffer, buffer_len, _T("eqa e,a")); break;
+ case 0x7e: my_stprintf_s(buffer, buffer_len, _T("eqa h,a")); break;
+ case 0x7f: my_stprintf_s(buffer, buffer_len, _T("eqa l,a")); break;
+ case 0x88: my_stprintf_s(buffer, buffer_len, _T("ana a,v")); break;
+ case 0x89: my_stprintf_s(buffer, buffer_len, _T("ana a,a")); break;
+ case 0x8a: my_stprintf_s(buffer, buffer_len, _T("ana a,b")); break;
+ case 0x8b: my_stprintf_s(buffer, buffer_len, _T("ana a,c")); break;
+ case 0x8c: my_stprintf_s(buffer, buffer_len, _T("ana a,d")); break;
+ case 0x8d: my_stprintf_s(buffer, buffer_len, _T("ana a,e")); break;
+ case 0x8e: my_stprintf_s(buffer, buffer_len, _T("ana a,h")); break;
+ case 0x8f: my_stprintf_s(buffer, buffer_len, _T("ana a,l")); break;
+ case 0x90: my_stprintf_s(buffer, buffer_len, _T("xra a,v")); break;
+ case 0x91: my_stprintf_s(buffer, buffer_len, _T("xra a,a")); break;
+ case 0x92: my_stprintf_s(buffer, buffer_len, _T("xra a,b")); break;
+ case 0x93: my_stprintf_s(buffer, buffer_len, _T("xra a,c")); break;
+ case 0x94: my_stprintf_s(buffer, buffer_len, _T("xra a,d")); break;
+ case 0x95: my_stprintf_s(buffer, buffer_len, _T("xra a,e")); break;
+ case 0x96: my_stprintf_s(buffer, buffer_len, _T("xra a,h")); break;
+ case 0x97: my_stprintf_s(buffer, buffer_len, _T("xra a,l")); break;
+ case 0x98: my_stprintf_s(buffer, buffer_len, _T("ora a,v")); break;
+ case 0x99: my_stprintf_s(buffer, buffer_len, _T("ora a,a")); break;
+ case 0x9a: my_stprintf_s(buffer, buffer_len, _T("ora a,b")); break;
+ case 0x9b: my_stprintf_s(buffer, buffer_len, _T("ora a,c")); break;
+ case 0x9c: my_stprintf_s(buffer, buffer_len, _T("ora a,d")); break;
+ case 0x9d: my_stprintf_s(buffer, buffer_len, _T("ora a,e")); break;
+ case 0x9e: my_stprintf_s(buffer, buffer_len, _T("ora a,h")); break;
+ case 0x9f: my_stprintf_s(buffer, buffer_len, _T("ora a,l")); break;
+ case 0xa0: my_stprintf_s(buffer, buffer_len, _T("addnc a,v")); break;
+ case 0xa1: my_stprintf_s(buffer, buffer_len, _T("addnc a,a")); break;
+ case 0xa2: my_stprintf_s(buffer, buffer_len, _T("addnc a,b")); break;
+ case 0xa3: my_stprintf_s(buffer, buffer_len, _T("addnc a,c")); break;
+ case 0xa4: my_stprintf_s(buffer, buffer_len, _T("addnc a,d")); break;
+ case 0xa5: my_stprintf_s(buffer, buffer_len, _T("addnc a,e")); break;
+ case 0xa6: my_stprintf_s(buffer, buffer_len, _T("addnc a,h")); break;
+ case 0xa7: my_stprintf_s(buffer, buffer_len, _T("addnc a,l")); break;
+ case 0xa8: my_stprintf_s(buffer, buffer_len, _T("gta a,v")); break;
+ case 0xa9: my_stprintf_s(buffer, buffer_len, _T("gta a,a")); break;
+ case 0xaa: my_stprintf_s(buffer, buffer_len, _T("gta a,b")); break;
+ case 0xab: my_stprintf_s(buffer, buffer_len, _T("gta a,c")); break;
+ case 0xac: my_stprintf_s(buffer, buffer_len, _T("gta a,d")); break;
+ case 0xad: my_stprintf_s(buffer, buffer_len, _T("gta a,e")); break;
+ case 0xae: my_stprintf_s(buffer, buffer_len, _T("gta a,h")); break;
+ case 0xaf: my_stprintf_s(buffer, buffer_len, _T("gta a,l")); break;
+ case 0xb0: my_stprintf_s(buffer, buffer_len, _T("subnb a,v")); break;
+ case 0xb1: my_stprintf_s(buffer, buffer_len, _T("subnb a,a")); break;
+ case 0xb2: my_stprintf_s(buffer, buffer_len, _T("subnb a,b")); break;
+ case 0xb3: my_stprintf_s(buffer, buffer_len, _T("subnb a,c")); break;
+ case 0xb4: my_stprintf_s(buffer, buffer_len, _T("subnb a,d")); break;
+ case 0xb5: my_stprintf_s(buffer, buffer_len, _T("subnb a,e")); break;
+ case 0xb6: my_stprintf_s(buffer, buffer_len, _T("subnb a,h")); break;
+ case 0xb7: my_stprintf_s(buffer, buffer_len, _T("subnb a,l")); break;
+ case 0xb8: my_stprintf_s(buffer, buffer_len, _T("lta a,v")); break;
+ case 0xb9: my_stprintf_s(buffer, buffer_len, _T("lta a,a")); break;
+ case 0xba: my_stprintf_s(buffer, buffer_len, _T("lta a,b")); break;
+ case 0xbb: my_stprintf_s(buffer, buffer_len, _T("lta a,c")); break;
+ case 0xbc: my_stprintf_s(buffer, buffer_len, _T("lta a,d")); break;
+ case 0xbd: my_stprintf_s(buffer, buffer_len, _T("lta a,e")); break;
+ case 0xbe: my_stprintf_s(buffer, buffer_len, _T("lta a,h")); break;
+ case 0xbf: my_stprintf_s(buffer, buffer_len, _T("lta a,l")); break;
+ case 0xc0: my_stprintf_s(buffer, buffer_len, _T("add a,v")); break;
+ case 0xc1: my_stprintf_s(buffer, buffer_len, _T("add a,a")); break;
+ case 0xc2: my_stprintf_s(buffer, buffer_len, _T("add a,b")); break;
+ case 0xc3: my_stprintf_s(buffer, buffer_len, _T("add a,c")); break;
+ case 0xc4: my_stprintf_s(buffer, buffer_len, _T("add a,d")); break;
+ case 0xc5: my_stprintf_s(buffer, buffer_len, _T("add a,e")); break;
+ case 0xc6: my_stprintf_s(buffer, buffer_len, _T("add a,h")); break;
+ case 0xc7: my_stprintf_s(buffer, buffer_len, _T("add a,l")); break;
+ case 0xc8: my_stprintf_s(buffer, buffer_len, _T("ona a,v")); break;
+ case 0xc9: my_stprintf_s(buffer, buffer_len, _T("ona a,a")); break;
+ case 0xca: my_stprintf_s(buffer, buffer_len, _T("ona a,b")); break;
+ case 0xcb: my_stprintf_s(buffer, buffer_len, _T("ona a,c")); break;
+ case 0xcc: my_stprintf_s(buffer, buffer_len, _T("ona a,d")); break;
+ case 0xcd: my_stprintf_s(buffer, buffer_len, _T("ona a,e")); break;
+ case 0xce: my_stprintf_s(buffer, buffer_len, _T("ona a,h")); break;
+ case 0xcf: my_stprintf_s(buffer, buffer_len, _T("ona a,l")); break;
+ case 0xd0: my_stprintf_s(buffer, buffer_len, _T("adc a,v")); break;
+ case 0xd1: my_stprintf_s(buffer, buffer_len, _T("adc a,a")); break;
+ case 0xd2: my_stprintf_s(buffer, buffer_len, _T("adc a,b")); break;
+ case 0xd3: my_stprintf_s(buffer, buffer_len, _T("adc a,c")); break;
+ case 0xd4: my_stprintf_s(buffer, buffer_len, _T("adc a,d")); break;
+ case 0xd5: my_stprintf_s(buffer, buffer_len, _T("adc a,e")); break;
+ case 0xd6: my_stprintf_s(buffer, buffer_len, _T("adc a,h")); break;
+ case 0xd7: my_stprintf_s(buffer, buffer_len, _T("adc a,l")); break;
+ case 0xd8: my_stprintf_s(buffer, buffer_len, _T("offa a,v")); break;
+ case 0xd9: my_stprintf_s(buffer, buffer_len, _T("offa a,a")); break;
+ case 0xda: my_stprintf_s(buffer, buffer_len, _T("offa a,b")); break;
+ case 0xdb: my_stprintf_s(buffer, buffer_len, _T("offa a,c")); break;
+ case 0xdc: my_stprintf_s(buffer, buffer_len, _T("offa a,d")); break;
+ case 0xdd: my_stprintf_s(buffer, buffer_len, _T("offa a,e")); break;
+ case 0xde: my_stprintf_s(buffer, buffer_len, _T("offa a,h")); break;
+ case 0xdf: my_stprintf_s(buffer, buffer_len, _T("offa a,l")); break;
+ case 0xe0: my_stprintf_s(buffer, buffer_len, _T("sub a,v")); break;
+ case 0xe1: my_stprintf_s(buffer, buffer_len, _T("sub a,a")); break;
+ case 0xe2: my_stprintf_s(buffer, buffer_len, _T("sub a,b")); break;
+ case 0xe3: my_stprintf_s(buffer, buffer_len, _T("sub a,c")); break;
+ case 0xe4: my_stprintf_s(buffer, buffer_len, _T("sub a,d")); break;
+ case 0xe5: my_stprintf_s(buffer, buffer_len, _T("sub a,e")); break;
+ case 0xe6: my_stprintf_s(buffer, buffer_len, _T("sub a,h")); break;
+ case 0xe7: my_stprintf_s(buffer, buffer_len, _T("sub a,l")); break;
+ case 0xe8: my_stprintf_s(buffer, buffer_len, _T("nea a,v")); break;
+ case 0xe9: my_stprintf_s(buffer, buffer_len, _T("nea a,a")); break;
+ case 0xea: my_stprintf_s(buffer, buffer_len, _T("nea a,b")); break;
+ case 0xeb: my_stprintf_s(buffer, buffer_len, _T("nea a,c")); break;
+ case 0xec: my_stprintf_s(buffer, buffer_len, _T("nea a,d")); break;
+ case 0xed: my_stprintf_s(buffer, buffer_len, _T("nea a,e")); break;
+ case 0xee: my_stprintf_s(buffer, buffer_len, _T("nea a,h")); break;
+ case 0xef: my_stprintf_s(buffer, buffer_len, _T("nea a,l")); break;
+ case 0xf0: my_stprintf_s(buffer, buffer_len, _T("sbb a,v")); break;
+ case 0xf1: my_stprintf_s(buffer, buffer_len, _T("sbb a,a")); break;
+ case 0xf2: my_stprintf_s(buffer, buffer_len, _T("sbb a,b")); break;
+ case 0xf3: my_stprintf_s(buffer, buffer_len, _T("sbb a,c")); break;
+ case 0xf4: my_stprintf_s(buffer, buffer_len, _T("sbb a,d")); break;
+ case 0xf5: my_stprintf_s(buffer, buffer_len, _T("sbb a,e")); break;
+ case 0xf6: my_stprintf_s(buffer, buffer_len, _T("sbb a,h")); break;
+ case 0xf7: my_stprintf_s(buffer, buffer_len, _T("sbb a,l")); break;
+ case 0xf8: my_stprintf_s(buffer, buffer_len, _T("eqa a,v")); break;
+ case 0xf9: my_stprintf_s(buffer, buffer_len, _T("eqa a,a")); break;
+ case 0xfa: my_stprintf_s(buffer, buffer_len, _T("eqa a,b")); break;
+ case 0xfb: my_stprintf_s(buffer, buffer_len, _T("eqa a,c")); break;
+ case 0xfc: my_stprintf_s(buffer, buffer_len, _T("eqa a,d")); break;
+ case 0xfd: my_stprintf_s(buffer, buffer_len, _T("eqa a,e")); break;
+ case 0xfe: my_stprintf_s(buffer, buffer_len, _T("eqa a,h")); break;
+ case 0xff: my_stprintf_s(buffer, buffer_len, _T("eqa a,l")); break;
+ default: my_stprintf_s(buffer, buffer_len, _T("db 60h,%02xh"), b);
}
break;
case 0x61: my_stprintf_s(buffer, buffer_len, _T("daa")); break;
case 0x63: my_stprintf_s(buffer, buffer_len, _T("calb")); break;
case 0x64:
switch(b = getb()) {
- case 0x08: my_stprintf_s(buffer, buffer_len, _T("ani v, %02xh"), getb()); break;
- case 0x09: my_stprintf_s(buffer, buffer_len, _T("ani a, %02xh"), getb()); break;
- case 0x0a: my_stprintf_s(buffer, buffer_len, _T("ani b, %02xh"), getb()); break;
- case 0x0b: my_stprintf_s(buffer, buffer_len, _T("ani c, %02xh"), getb()); break;
- case 0x0c: my_stprintf_s(buffer, buffer_len, _T("ani d, %02xh"), getb()); break;
- case 0x0d: my_stprintf_s(buffer, buffer_len, _T("ani e, %02xh"), getb()); break;
- case 0x0e: my_stprintf_s(buffer, buffer_len, _T("ani h, %02xh"), getb()); break;
- case 0x0f: my_stprintf_s(buffer, buffer_len, _T("ani l, %02xh"), getb()); break;
- case 0x10: my_stprintf_s(buffer, buffer_len, _T("xri v, %02xh"), getb()); break;
- case 0x11: my_stprintf_s(buffer, buffer_len, _T("xri a, %02xh"), getb()); break;
- case 0x12: my_stprintf_s(buffer, buffer_len, _T("xri b, %02xh"), getb()); break;
- case 0x13: my_stprintf_s(buffer, buffer_len, _T("xri c, %02xh"), getb()); break;
- case 0x14: my_stprintf_s(buffer, buffer_len, _T("xri d, %02xh"), getb()); break;
- case 0x15: my_stprintf_s(buffer, buffer_len, _T("xri e, %02xh"), getb()); break;
- case 0x16: my_stprintf_s(buffer, buffer_len, _T("xri h, %02xh"), getb()); break;
- case 0x17: my_stprintf_s(buffer, buffer_len, _T("xri l, %02xh"), getb()); break;
- case 0x18: my_stprintf_s(buffer, buffer_len, _T("ori v, %02xh"), getb()); break;
- case 0x19: my_stprintf_s(buffer, buffer_len, _T("ori a, %02xh"), getb()); break;
- case 0x1a: my_stprintf_s(buffer, buffer_len, _T("ori b, %02xh"), getb()); break;
- case 0x1b: my_stprintf_s(buffer, buffer_len, _T("ori c, %02xh"), getb()); break;
- case 0x1c: my_stprintf_s(buffer, buffer_len, _T("ori d, %02xh"), getb()); break;
- case 0x1d: my_stprintf_s(buffer, buffer_len, _T("ori e, %02xh"), getb()); break;
- case 0x1e: my_stprintf_s(buffer, buffer_len, _T("ori h, %02xh"), getb()); break;
- case 0x1f: my_stprintf_s(buffer, buffer_len, _T("ori l, %02xh"), getb()); break;
- case 0x20: my_stprintf_s(buffer, buffer_len, _T("adinc v, %02xh"), getb()); break;
- case 0x21: my_stprintf_s(buffer, buffer_len, _T("adinc a, %02xh"), getb()); break;
- case 0x22: my_stprintf_s(buffer, buffer_len, _T("adinc b, %02xh"), getb()); break;
- case 0x23: my_stprintf_s(buffer, buffer_len, _T("adinc c, %02xh"), getb()); break;
- case 0x24: my_stprintf_s(buffer, buffer_len, _T("adinc d, %02xh"), getb()); break;
- case 0x25: my_stprintf_s(buffer, buffer_len, _T("adinc e, %02xh"), getb()); break;
- case 0x26: my_stprintf_s(buffer, buffer_len, _T("adinc h, %02xh"), getb()); break;
- case 0x27: my_stprintf_s(buffer, buffer_len, _T("adinc l, %02xh"), getb()); break;
- case 0x28: my_stprintf_s(buffer, buffer_len, _T("gti v, %02xh"), getb()); break;
- case 0x29: my_stprintf_s(buffer, buffer_len, _T("gti a, %02xh"), getb()); break;
- case 0x2a: my_stprintf_s(buffer, buffer_len, _T("gti b, %02xh"), getb()); break;
- case 0x2b: my_stprintf_s(buffer, buffer_len, _T("gti c, %02xh"), getb()); break;
- case 0x2c: my_stprintf_s(buffer, buffer_len, _T("gti d, %02xh"), getb()); break;
- case 0x2d: my_stprintf_s(buffer, buffer_len, _T("gti e, %02xh"), getb()); break;
- case 0x2e: my_stprintf_s(buffer, buffer_len, _T("gti h, %02xh"), getb()); break;
- case 0x2f: my_stprintf_s(buffer, buffer_len, _T("gti l, %02xh"), getb()); break;
- case 0x30: my_stprintf_s(buffer, buffer_len, _T("suinb v, %02xh"), getb()); break;
- case 0x31: my_stprintf_s(buffer, buffer_len, _T("suinb a, %02xh"), getb()); break;
- case 0x32: my_stprintf_s(buffer, buffer_len, _T("suinb b, %02xh"), getb()); break;
- case 0x33: my_stprintf_s(buffer, buffer_len, _T("suinb c, %02xh"), getb()); break;
- case 0x34: my_stprintf_s(buffer, buffer_len, _T("suinb d, %02xh"), getb()); break;
- case 0x35: my_stprintf_s(buffer, buffer_len, _T("suinb e, %02xh"), getb()); break;
- case 0x36: my_stprintf_s(buffer, buffer_len, _T("suinb h, %02xh"), getb()); break;
- case 0x37: my_stprintf_s(buffer, buffer_len, _T("suinb l, %02xh"), getb()); break;
- case 0x38: my_stprintf_s(buffer, buffer_len, _T("lti v, %02xh"), getb()); break;
- case 0x39: my_stprintf_s(buffer, buffer_len, _T("lti a, %02xh"), getb()); break;
- case 0x3a: my_stprintf_s(buffer, buffer_len, _T("lti b, %02xh"), getb()); break;
- case 0x3b: my_stprintf_s(buffer, buffer_len, _T("lti c, %02xh"), getb()); break;
- case 0x3c: my_stprintf_s(buffer, buffer_len, _T("lti d, %02xh"), getb()); break;
- case 0x3d: my_stprintf_s(buffer, buffer_len, _T("lti e, %02xh"), getb()); break;
- case 0x3e: my_stprintf_s(buffer, buffer_len, _T("lti h, %02xh"), getb()); break;
- case 0x3f: my_stprintf_s(buffer, buffer_len, _T("lti l, %02xh"), getb()); break;
- case 0x40: my_stprintf_s(buffer, buffer_len, _T("adi v, %02xh"), getb()); break;
- case 0x41: my_stprintf_s(buffer, buffer_len, _T("adi a, %02xh"), getb()); break;
- case 0x42: my_stprintf_s(buffer, buffer_len, _T("adi b, %02xh"), getb()); break;
- case 0x43: my_stprintf_s(buffer, buffer_len, _T("adi c, %02xh"), getb()); break;
- case 0x44: my_stprintf_s(buffer, buffer_len, _T("adi d, %02xh"), getb()); break;
- case 0x45: my_stprintf_s(buffer, buffer_len, _T("adi e, %02xh"), getb()); break;
- case 0x46: my_stprintf_s(buffer, buffer_len, _T("adi h, %02xh"), getb()); break;
- case 0x47: my_stprintf_s(buffer, buffer_len, _T("adi l, %02xh"), getb()); break;
- case 0x48: my_stprintf_s(buffer, buffer_len, _T("oni v, %02xh"), getb()); break;
- case 0x49: my_stprintf_s(buffer, buffer_len, _T("oni a, %02xh"), getb()); break;
- case 0x4a: my_stprintf_s(buffer, buffer_len, _T("oni b, %02xh"), getb()); break;
- case 0x4b: my_stprintf_s(buffer, buffer_len, _T("oni c, %02xh"), getb()); break;
- case 0x4c: my_stprintf_s(buffer, buffer_len, _T("oni d, %02xh"), getb()); break;
- case 0x4d: my_stprintf_s(buffer, buffer_len, _T("oni e, %02xh"), getb()); break;
- case 0x4e: my_stprintf_s(buffer, buffer_len, _T("oni h, %02xh"), getb()); break;
- case 0x4f: my_stprintf_s(buffer, buffer_len, _T("oni l, %02xh"), getb()); break;
- case 0x50: my_stprintf_s(buffer, buffer_len, _T("aci v, %02xh"), getb()); break;
- case 0x51: my_stprintf_s(buffer, buffer_len, _T("aci a, %02xh"), getb()); break;
- case 0x52: my_stprintf_s(buffer, buffer_len, _T("aci b, %02xh"), getb()); break;
- case 0x53: my_stprintf_s(buffer, buffer_len, _T("aci c, %02xh"), getb()); break;
- case 0x54: my_stprintf_s(buffer, buffer_len, _T("aci d, %02xh"), getb()); break;
- case 0x55: my_stprintf_s(buffer, buffer_len, _T("aci e, %02xh"), getb()); break;
- case 0x56: my_stprintf_s(buffer, buffer_len, _T("aci h, %02xh"), getb()); break;
- case 0x57: my_stprintf_s(buffer, buffer_len, _T("aci l, %02xh"), getb()); break;
- case 0x58: my_stprintf_s(buffer, buffer_len, _T("offi v, %02xh"), getb()); break;
- case 0x59: my_stprintf_s(buffer, buffer_len, _T("offi a, %02xh"), getb()); break;
- case 0x5a: my_stprintf_s(buffer, buffer_len, _T("offi b, %02xh"), getb()); break;
- case 0x5b: my_stprintf_s(buffer, buffer_len, _T("offi c, %02xh"), getb()); break;
- case 0x5c: my_stprintf_s(buffer, buffer_len, _T("offi d, %02xh"), getb()); break;
- case 0x5d: my_stprintf_s(buffer, buffer_len, _T("offi e, %02xh"), getb()); break;
- case 0x5e: my_stprintf_s(buffer, buffer_len, _T("offi h, %02xh"), getb()); break;
- case 0x5f: my_stprintf_s(buffer, buffer_len, _T("offi l, %02xh"), getb()); break;
- case 0x60: my_stprintf_s(buffer, buffer_len, _T("sui v, %02xh"), getb()); break;
- case 0x61: my_stprintf_s(buffer, buffer_len, _T("sui a, %02xh"), getb()); break;
- case 0x62: my_stprintf_s(buffer, buffer_len, _T("sui b, %02xh"), getb()); break;
- case 0x63: my_stprintf_s(buffer, buffer_len, _T("sui c, %02xh"), getb()); break;
- case 0x64: my_stprintf_s(buffer, buffer_len, _T("sui d, %02xh"), getb()); break;
- case 0x65: my_stprintf_s(buffer, buffer_len, _T("sui e, %02xh"), getb()); break;
- case 0x66: my_stprintf_s(buffer, buffer_len, _T("sui h, %02xh"), getb()); break;
- case 0x67: my_stprintf_s(buffer, buffer_len, _T("sui l, %02xh"), getb()); break;
- case 0x68: my_stprintf_s(buffer, buffer_len, _T("nei v, %02xh"), getb()); break;
- case 0x69: my_stprintf_s(buffer, buffer_len, _T("nei a, %02xh"), getb()); break;
- case 0x6a: my_stprintf_s(buffer, buffer_len, _T("nei b, %02xh"), getb()); break;
- case 0x6b: my_stprintf_s(buffer, buffer_len, _T("nei c, %02xh"), getb()); break;
- case 0x6c: my_stprintf_s(buffer, buffer_len, _T("nei d, %02xh"), getb()); break;
- case 0x6d: my_stprintf_s(buffer, buffer_len, _T("nei e, %02xh"), getb()); break;
- case 0x6e: my_stprintf_s(buffer, buffer_len, _T("nei h, %02xh"), getb()); break;
- case 0x6f: my_stprintf_s(buffer, buffer_len, _T("nei l, %02xh"), getb()); break;
- case 0x70: my_stprintf_s(buffer, buffer_len, _T("sbi v, %02xh"), getb()); break;
- case 0x71: my_stprintf_s(buffer, buffer_len, _T("sbi a, %02xh"), getb()); break;
- case 0x72: my_stprintf_s(buffer, buffer_len, _T("sbi b, %02xh"), getb()); break;
- case 0x73: my_stprintf_s(buffer, buffer_len, _T("sbi c, %02xh"), getb()); break;
- case 0x74: my_stprintf_s(buffer, buffer_len, _T("sbi d, %02xh"), getb()); break;
- case 0x75: my_stprintf_s(buffer, buffer_len, _T("sbi e, %02xh"), getb()); break;
- case 0x76: my_stprintf_s(buffer, buffer_len, _T("sbi h, %02xh"), getb()); break;
- case 0x77: my_stprintf_s(buffer, buffer_len, _T("sbi l, %02xh"), getb()); break;
- case 0x78: my_stprintf_s(buffer, buffer_len, _T("eqi v, %02xh"), getb()); break;
- case 0x79: my_stprintf_s(buffer, buffer_len, _T("eqi a, %02xh"), getb()); break;
- case 0x7a: my_stprintf_s(buffer, buffer_len, _T("eqi b, %02xh"), getb()); break;
- case 0x7b: my_stprintf_s(buffer, buffer_len, _T("eqi c, %02xh"), getb()); break;
- case 0x7c: my_stprintf_s(buffer, buffer_len, _T("eqi d, %02xh"), getb()); break;
- case 0x7d: my_stprintf_s(buffer, buffer_len, _T("eqi e, %02xh"), getb()); break;
- case 0x7e: my_stprintf_s(buffer, buffer_len, _T("eqi h, %02xh"), getb()); break;
- case 0x7f: my_stprintf_s(buffer, buffer_len, _T("eqi l, %02xh"), getb()); break;
- case 0x88: my_stprintf_s(buffer, buffer_len, _T("ani pa, %02xh"), getb()); break;
- case 0x89: my_stprintf_s(buffer, buffer_len, _T("ani pb, %02xh"), getb()); break;
- case 0x8a: my_stprintf_s(buffer, buffer_len, _T("ani pc, %02xh"), getb()); break;
- case 0x8b: my_stprintf_s(buffer, buffer_len, _T("ani mk, %02xh"), getb()); break;
- case 0x90: my_stprintf_s(buffer, buffer_len, _T("xri pa, %02xh"), getb()); break;
- case 0x91: my_stprintf_s(buffer, buffer_len, _T("xri pb, %02xh"), getb()); break;
- case 0x92: my_stprintf_s(buffer, buffer_len, _T("xri pc, %02xh"), getb()); break;
- case 0x93: my_stprintf_s(buffer, buffer_len, _T("xri mk, %02xh"), getb()); break;
- case 0x98: my_stprintf_s(buffer, buffer_len, _T("ori pa, %02xh"), getb()); break;
- case 0x99: my_stprintf_s(buffer, buffer_len, _T("ori pb, %02xh"), getb()); break;
- case 0x9a: my_stprintf_s(buffer, buffer_len, _T("ori pc, %02xh"), getb()); break;
- case 0x9b: my_stprintf_s(buffer, buffer_len, _T("ori mk, %02xh"), getb()); break;
- case 0xa0: my_stprintf_s(buffer, buffer_len, _T("adinc pa, %02xh"), getb()); break;
- case 0xa1: my_stprintf_s(buffer, buffer_len, _T("adinc pb, %02xh"), getb()); break;
- case 0xa2: my_stprintf_s(buffer, buffer_len, _T("adinc pc, %02xh"), getb()); break;
- case 0xa3: my_stprintf_s(buffer, buffer_len, _T("adinc mk, %02xh"), getb()); break;
- case 0xa8: my_stprintf_s(buffer, buffer_len, _T("gti pa, %02xh"), getb()); break;
- case 0xa9: my_stprintf_s(buffer, buffer_len, _T("gti pb, %02xh"), getb()); break;
- case 0xaa: my_stprintf_s(buffer, buffer_len, _T("gti pc, %02xh"), getb()); break;
- case 0xab: my_stprintf_s(buffer, buffer_len, _T("gti mk, %02xh"), getb()); break;
- case 0xb0: my_stprintf_s(buffer, buffer_len, _T("suinb pa, %02xh"), getb()); break;
- case 0xb1: my_stprintf_s(buffer, buffer_len, _T("suinb pb, %02xh"), getb()); break;
- case 0xb2: my_stprintf_s(buffer, buffer_len, _T("suinb pc, %02xh"), getb()); break;
- case 0xb3: my_stprintf_s(buffer, buffer_len, _T("suinb mk, %02xh"), getb()); break;
- case 0xb8: my_stprintf_s(buffer, buffer_len, _T("lti pa, %02xh"), getb()); break;
- case 0xb9: my_stprintf_s(buffer, buffer_len, _T("lti pb, %02xh"), getb()); break;
- case 0xba: my_stprintf_s(buffer, buffer_len, _T("lti pc, %02xh"), getb()); break;
- case 0xbb: my_stprintf_s(buffer, buffer_len, _T("lti mk, %02xh"), getb()); break;
- case 0xc0: my_stprintf_s(buffer, buffer_len, _T("adi pa, %02xh"), getb()); break;
- case 0xc1: my_stprintf_s(buffer, buffer_len, _T("adi pb, %02xh"), getb()); break;
- case 0xc2: my_stprintf_s(buffer, buffer_len, _T("adi pc, %02xh"), getb()); break;
- case 0xc3: my_stprintf_s(buffer, buffer_len, _T("adi mk, %02xh"), getb()); break;
- case 0xc8: my_stprintf_s(buffer, buffer_len, _T("oni pa, %02xh"), getb()); break;
- case 0xc9: my_stprintf_s(buffer, buffer_len, _T("oni pb, %02xh"), getb()); break;
- case 0xca: my_stprintf_s(buffer, buffer_len, _T("oni pc, %02xh"), getb()); break;
- case 0xcb: my_stprintf_s(buffer, buffer_len, _T("oni mk, %02xh"), getb()); break;
- case 0xd0: my_stprintf_s(buffer, buffer_len, _T("aci pa, %02xh"), getb()); break;
- case 0xd1: my_stprintf_s(buffer, buffer_len, _T("aci pb, %02xh"), getb()); break;
- case 0xd2: my_stprintf_s(buffer, buffer_len, _T("aci pc, %02xh"), getb()); break;
- case 0xd3: my_stprintf_s(buffer, buffer_len, _T("aci mk, %02xh"), getb()); break;
- case 0xd8: my_stprintf_s(buffer, buffer_len, _T("offi pa, %02xh"), getb()); break;
- case 0xd9: my_stprintf_s(buffer, buffer_len, _T("offi pb, %02xh"), getb()); break;
- case 0xda: my_stprintf_s(buffer, buffer_len, _T("offi pc, %02xh"), getb()); break;
- case 0xdb: my_stprintf_s(buffer, buffer_len, _T("offi mk, %02xh"), getb()); break;
- case 0xe0: my_stprintf_s(buffer, buffer_len, _T("sui pa, %02xh"), getb()); break;
- case 0xe1: my_stprintf_s(buffer, buffer_len, _T("sui pb, %02xh"), getb()); break;
- case 0xe2: my_stprintf_s(buffer, buffer_len, _T("sui pc, %02xh"), getb()); break;
- case 0xe3: my_stprintf_s(buffer, buffer_len, _T("sui mk, %02xh"), getb()); break;
- case 0xe8: my_stprintf_s(buffer, buffer_len, _T("nei pa, %02xh"), getb()); break;
- case 0xe9: my_stprintf_s(buffer, buffer_len, _T("nei pb, %02xh"), getb()); break;
- case 0xea: my_stprintf_s(buffer, buffer_len, _T("nei pc, %02xh"), getb()); break;
- case 0xeb: my_stprintf_s(buffer, buffer_len, _T("nei mk, %02xh"), getb()); break;
- case 0xf0: my_stprintf_s(buffer, buffer_len, _T("sbi pa, %02xh"), getb()); break;
- case 0xf1: my_stprintf_s(buffer, buffer_len, _T("sbi pb, %02xh"), getb()); break;
- case 0xf2: my_stprintf_s(buffer, buffer_len, _T("sbi pc, %02xh"), getb()); break;
- case 0xf3: my_stprintf_s(buffer, buffer_len, _T("sbi mk, %02xh"), getb()); break;
- case 0xf8: my_stprintf_s(buffer, buffer_len, _T("eqi pa, %02xh"), getb()); break;
- case 0xf9: my_stprintf_s(buffer, buffer_len, _T("eqi pb, %02xh"), getb()); break;
- case 0xfa: my_stprintf_s(buffer, buffer_len, _T("eqi pc, %02xh"), getb()); break;
- case 0xfb: my_stprintf_s(buffer, buffer_len, _T("eqi mk, %02xh"), getb()); break;
- default: my_stprintf_s(buffer, buffer_len, _T("db 64h, %02xh"), b);
+ case 0x08: my_stprintf_s(buffer, buffer_len, _T("ani v,%02xh"), getb()); break;
+ case 0x09: my_stprintf_s(buffer, buffer_len, _T("ani a,%02xh"), getb()); break;
+ case 0x0a: my_stprintf_s(buffer, buffer_len, _T("ani b,%02xh"), getb()); break;
+ case 0x0b: my_stprintf_s(buffer, buffer_len, _T("ani c,%02xh"), getb()); break;
+ case 0x0c: my_stprintf_s(buffer, buffer_len, _T("ani d,%02xh"), getb()); break;
+ case 0x0d: my_stprintf_s(buffer, buffer_len, _T("ani e,%02xh"), getb()); break;
+ case 0x0e: my_stprintf_s(buffer, buffer_len, _T("ani h,%02xh"), getb()); break;
+ case 0x0f: my_stprintf_s(buffer, buffer_len, _T("ani l,%02xh"), getb()); break;
+ case 0x10: my_stprintf_s(buffer, buffer_len, _T("xri v,%02xh"), getb()); break;
+ case 0x11: my_stprintf_s(buffer, buffer_len, _T("xri a,%02xh"), getb()); break;
+ case 0x12: my_stprintf_s(buffer, buffer_len, _T("xri b,%02xh"), getb()); break;
+ case 0x13: my_stprintf_s(buffer, buffer_len, _T("xri c,%02xh"), getb()); break;
+ case 0x14: my_stprintf_s(buffer, buffer_len, _T("xri d,%02xh"), getb()); break;
+ case 0x15: my_stprintf_s(buffer, buffer_len, _T("xri e,%02xh"), getb()); break;
+ case 0x16: my_stprintf_s(buffer, buffer_len, _T("xri h,%02xh"), getb()); break;
+ case 0x17: my_stprintf_s(buffer, buffer_len, _T("xri l,%02xh"), getb()); break;
+ case 0x18: my_stprintf_s(buffer, buffer_len, _T("ori v,%02xh"), getb()); break;
+ case 0x19: my_stprintf_s(buffer, buffer_len, _T("ori a,%02xh"), getb()); break;
+ case 0x1a: my_stprintf_s(buffer, buffer_len, _T("ori b,%02xh"), getb()); break;
+ case 0x1b: my_stprintf_s(buffer, buffer_len, _T("ori c,%02xh"), getb()); break;
+ case 0x1c: my_stprintf_s(buffer, buffer_len, _T("ori d,%02xh"), getb()); break;
+ case 0x1d: my_stprintf_s(buffer, buffer_len, _T("ori e,%02xh"), getb()); break;
+ case 0x1e: my_stprintf_s(buffer, buffer_len, _T("ori h,%02xh"), getb()); break;
+ case 0x1f: my_stprintf_s(buffer, buffer_len, _T("ori l,%02xh"), getb()); break;
+ case 0x20: my_stprintf_s(buffer, buffer_len, _T("adinc v,%02xh"), getb()); break;
+ case 0x21: my_stprintf_s(buffer, buffer_len, _T("adinc a,%02xh"), getb()); break;
+ case 0x22: my_stprintf_s(buffer, buffer_len, _T("adinc b,%02xh"), getb()); break;
+ case 0x23: my_stprintf_s(buffer, buffer_len, _T("adinc c,%02xh"), getb()); break;
+ case 0x24: my_stprintf_s(buffer, buffer_len, _T("adinc d,%02xh"), getb()); break;
+ case 0x25: my_stprintf_s(buffer, buffer_len, _T("adinc e,%02xh"), getb()); break;
+ case 0x26: my_stprintf_s(buffer, buffer_len, _T("adinc h,%02xh"), getb()); break;
+ case 0x27: my_stprintf_s(buffer, buffer_len, _T("adinc l,%02xh"), getb()); break;
+ case 0x28: my_stprintf_s(buffer, buffer_len, _T("gti v,%02xh"), getb()); break;
+ case 0x29: my_stprintf_s(buffer, buffer_len, _T("gti a,%02xh"), getb()); break;
+ case 0x2a: my_stprintf_s(buffer, buffer_len, _T("gti b,%02xh"), getb()); break;
+ case 0x2b: my_stprintf_s(buffer, buffer_len, _T("gti c,%02xh"), getb()); break;
+ case 0x2c: my_stprintf_s(buffer, buffer_len, _T("gti d,%02xh"), getb()); break;
+ case 0x2d: my_stprintf_s(buffer, buffer_len, _T("gti e,%02xh"), getb()); break;
+ case 0x2e: my_stprintf_s(buffer, buffer_len, _T("gti h,%02xh"), getb()); break;
+ case 0x2f: my_stprintf_s(buffer, buffer_len, _T("gti l,%02xh"), getb()); break;
+ case 0x30: my_stprintf_s(buffer, buffer_len, _T("suinb v,%02xh"), getb()); break;
+ case 0x31: my_stprintf_s(buffer, buffer_len, _T("suinb a,%02xh"), getb()); break;
+ case 0x32: my_stprintf_s(buffer, buffer_len, _T("suinb b,%02xh"), getb()); break;
+ case 0x33: my_stprintf_s(buffer, buffer_len, _T("suinb c,%02xh"), getb()); break;
+ case 0x34: my_stprintf_s(buffer, buffer_len, _T("suinb d,%02xh"), getb()); break;
+ case 0x35: my_stprintf_s(buffer, buffer_len, _T("suinb e,%02xh"), getb()); break;
+ case 0x36: my_stprintf_s(buffer, buffer_len, _T("suinb h,%02xh"), getb()); break;
+ case 0x37: my_stprintf_s(buffer, buffer_len, _T("suinb l,%02xh"), getb()); break;
+ case 0x38: my_stprintf_s(buffer, buffer_len, _T("lti v,%02xh"), getb()); break;
+ case 0x39: my_stprintf_s(buffer, buffer_len, _T("lti a,%02xh"), getb()); break;
+ case 0x3a: my_stprintf_s(buffer, buffer_len, _T("lti b,%02xh"), getb()); break;
+ case 0x3b: my_stprintf_s(buffer, buffer_len, _T("lti c,%02xh"), getb()); break;
+ case 0x3c: my_stprintf_s(buffer, buffer_len, _T("lti d,%02xh"), getb()); break;
+ case 0x3d: my_stprintf_s(buffer, buffer_len, _T("lti e,%02xh"), getb()); break;
+ case 0x3e: my_stprintf_s(buffer, buffer_len, _T("lti h,%02xh"), getb()); break;
+ case 0x3f: my_stprintf_s(buffer, buffer_len, _T("lti l,%02xh"), getb()); break;
+ case 0x40: my_stprintf_s(buffer, buffer_len, _T("adi v,%02xh"), getb()); break;
+ case 0x41: my_stprintf_s(buffer, buffer_len, _T("adi a,%02xh"), getb()); break;
+ case 0x42: my_stprintf_s(buffer, buffer_len, _T("adi b,%02xh"), getb()); break;
+ case 0x43: my_stprintf_s(buffer, buffer_len, _T("adi c,%02xh"), getb()); break;
+ case 0x44: my_stprintf_s(buffer, buffer_len, _T("adi d,%02xh"), getb()); break;
+ case 0x45: my_stprintf_s(buffer, buffer_len, _T("adi e,%02xh"), getb()); break;
+ case 0x46: my_stprintf_s(buffer, buffer_len, _T("adi h,%02xh"), getb()); break;
+ case 0x47: my_stprintf_s(buffer, buffer_len, _T("adi l,%02xh"), getb()); break;
+ case 0x48: my_stprintf_s(buffer, buffer_len, _T("oni v,%02xh"), getb()); break;
+ case 0x49: my_stprintf_s(buffer, buffer_len, _T("oni a,%02xh"), getb()); break;
+ case 0x4a: my_stprintf_s(buffer, buffer_len, _T("oni b,%02xh"), getb()); break;
+ case 0x4b: my_stprintf_s(buffer, buffer_len, _T("oni c,%02xh"), getb()); break;
+ case 0x4c: my_stprintf_s(buffer, buffer_len, _T("oni d,%02xh"), getb()); break;
+ case 0x4d: my_stprintf_s(buffer, buffer_len, _T("oni e,%02xh"), getb()); break;
+ case 0x4e: my_stprintf_s(buffer, buffer_len, _T("oni h,%02xh"), getb()); break;
+ case 0x4f: my_stprintf_s(buffer, buffer_len, _T("oni l,%02xh"), getb()); break;
+ case 0x50: my_stprintf_s(buffer, buffer_len, _T("aci v,%02xh"), getb()); break;
+ case 0x51: my_stprintf_s(buffer, buffer_len, _T("aci a,%02xh"), getb()); break;
+ case 0x52: my_stprintf_s(buffer, buffer_len, _T("aci b,%02xh"), getb()); break;
+ case 0x53: my_stprintf_s(buffer, buffer_len, _T("aci c,%02xh"), getb()); break;
+ case 0x54: my_stprintf_s(buffer, buffer_len, _T("aci d,%02xh"), getb()); break;
+ case 0x55: my_stprintf_s(buffer, buffer_len, _T("aci e,%02xh"), getb()); break;
+ case 0x56: my_stprintf_s(buffer, buffer_len, _T("aci h,%02xh"), getb()); break;
+ case 0x57: my_stprintf_s(buffer, buffer_len, _T("aci l,%02xh"), getb()); break;
+ case 0x58: my_stprintf_s(buffer, buffer_len, _T("offi v,%02xh"), getb()); break;
+ case 0x59: my_stprintf_s(buffer, buffer_len, _T("offi a,%02xh"), getb()); break;
+ case 0x5a: my_stprintf_s(buffer, buffer_len, _T("offi b,%02xh"), getb()); break;
+ case 0x5b: my_stprintf_s(buffer, buffer_len, _T("offi c,%02xh"), getb()); break;
+ case 0x5c: my_stprintf_s(buffer, buffer_len, _T("offi d,%02xh"), getb()); break;
+ case 0x5d: my_stprintf_s(buffer, buffer_len, _T("offi e,%02xh"), getb()); break;
+ case 0x5e: my_stprintf_s(buffer, buffer_len, _T("offi h,%02xh"), getb()); break;
+ case 0x5f: my_stprintf_s(buffer, buffer_len, _T("offi l,%02xh"), getb()); break;
+ case 0x60: my_stprintf_s(buffer, buffer_len, _T("sui v,%02xh"), getb()); break;
+ case 0x61: my_stprintf_s(buffer, buffer_len, _T("sui a,%02xh"), getb()); break;
+ case 0x62: my_stprintf_s(buffer, buffer_len, _T("sui b,%02xh"), getb()); break;
+ case 0x63: my_stprintf_s(buffer, buffer_len, _T("sui c,%02xh"), getb()); break;
+ case 0x64: my_stprintf_s(buffer, buffer_len, _T("sui d,%02xh"), getb()); break;
+ case 0x65: my_stprintf_s(buffer, buffer_len, _T("sui e,%02xh"), getb()); break;
+ case 0x66: my_stprintf_s(buffer, buffer_len, _T("sui h,%02xh"), getb()); break;
+ case 0x67: my_stprintf_s(buffer, buffer_len, _T("sui l,%02xh"), getb()); break;
+ case 0x68: my_stprintf_s(buffer, buffer_len, _T("nei v,%02xh"), getb()); break;
+ case 0x69: my_stprintf_s(buffer, buffer_len, _T("nei a,%02xh"), getb()); break;
+ case 0x6a: my_stprintf_s(buffer, buffer_len, _T("nei b,%02xh"), getb()); break;
+ case 0x6b: my_stprintf_s(buffer, buffer_len, _T("nei c,%02xh"), getb()); break;
+ case 0x6c: my_stprintf_s(buffer, buffer_len, _T("nei d,%02xh"), getb()); break;
+ case 0x6d: my_stprintf_s(buffer, buffer_len, _T("nei e,%02xh"), getb()); break;
+ case 0x6e: my_stprintf_s(buffer, buffer_len, _T("nei h,%02xh"), getb()); break;
+ case 0x6f: my_stprintf_s(buffer, buffer_len, _T("nei l,%02xh"), getb()); break;
+ case 0x70: my_stprintf_s(buffer, buffer_len, _T("sbi v,%02xh"), getb()); break;
+ case 0x71: my_stprintf_s(buffer, buffer_len, _T("sbi a,%02xh"), getb()); break;
+ case 0x72: my_stprintf_s(buffer, buffer_len, _T("sbi b,%02xh"), getb()); break;
+ case 0x73: my_stprintf_s(buffer, buffer_len, _T("sbi c,%02xh"), getb()); break;
+ case 0x74: my_stprintf_s(buffer, buffer_len, _T("sbi d,%02xh"), getb()); break;
+ case 0x75: my_stprintf_s(buffer, buffer_len, _T("sbi e,%02xh"), getb()); break;
+ case 0x76: my_stprintf_s(buffer, buffer_len, _T("sbi h,%02xh"), getb()); break;
+ case 0x77: my_stprintf_s(buffer, buffer_len, _T("sbi l,%02xh"), getb()); break;
+ case 0x78: my_stprintf_s(buffer, buffer_len, _T("eqi v,%02xh"), getb()); break;
+ case 0x79: my_stprintf_s(buffer, buffer_len, _T("eqi a,%02xh"), getb()); break;
+ case 0x7a: my_stprintf_s(buffer, buffer_len, _T("eqi b,%02xh"), getb()); break;
+ case 0x7b: my_stprintf_s(buffer, buffer_len, _T("eqi c,%02xh"), getb()); break;
+ case 0x7c: my_stprintf_s(buffer, buffer_len, _T("eqi d,%02xh"), getb()); break;
+ case 0x7d: my_stprintf_s(buffer, buffer_len, _T("eqi e,%02xh"), getb()); break;
+ case 0x7e: my_stprintf_s(buffer, buffer_len, _T("eqi h,%02xh"), getb()); break;
+ case 0x7f: my_stprintf_s(buffer, buffer_len, _T("eqi l,%02xh"), getb()); break;
+ case 0x88: my_stprintf_s(buffer, buffer_len, _T("ani pa,%02xh"), getb()); break;
+ case 0x89: my_stprintf_s(buffer, buffer_len, _T("ani pb,%02xh"), getb()); break;
+ case 0x8a: my_stprintf_s(buffer, buffer_len, _T("ani pc,%02xh"), getb()); break;
+ case 0x8b: my_stprintf_s(buffer, buffer_len, _T("ani mk,%02xh"), getb()); break;
+ case 0x90: my_stprintf_s(buffer, buffer_len, _T("xri pa,%02xh"), getb()); break;
+ case 0x91: my_stprintf_s(buffer, buffer_len, _T("xri pb,%02xh"), getb()); break;
+ case 0x92: my_stprintf_s(buffer, buffer_len, _T("xri pc,%02xh"), getb()); break;
+ case 0x93: my_stprintf_s(buffer, buffer_len, _T("xri mk,%02xh"), getb()); break;
+ case 0x98: my_stprintf_s(buffer, buffer_len, _T("ori pa,%02xh"), getb()); break;
+ case 0x99: my_stprintf_s(buffer, buffer_len, _T("ori pb,%02xh"), getb()); break;
+ case 0x9a: my_stprintf_s(buffer, buffer_len, _T("ori pc,%02xh"), getb()); break;
+ case 0x9b: my_stprintf_s(buffer, buffer_len, _T("ori mk,%02xh"), getb()); break;
+ case 0xa0: my_stprintf_s(buffer, buffer_len, _T("adinc pa,%02xh"), getb()); break;
+ case 0xa1: my_stprintf_s(buffer, buffer_len, _T("adinc pb,%02xh"), getb()); break;
+ case 0xa2: my_stprintf_s(buffer, buffer_len, _T("adinc pc,%02xh"), getb()); break;
+ case 0xa3: my_stprintf_s(buffer, buffer_len, _T("adinc mk,%02xh"), getb()); break;
+ case 0xa8: my_stprintf_s(buffer, buffer_len, _T("gti pa,%02xh"), getb()); break;
+ case 0xa9: my_stprintf_s(buffer, buffer_len, _T("gti pb,%02xh"), getb()); break;
+ case 0xaa: my_stprintf_s(buffer, buffer_len, _T("gti pc,%02xh"), getb()); break;
+ case 0xab: my_stprintf_s(buffer, buffer_len, _T("gti mk,%02xh"), getb()); break;
+ case 0xb0: my_stprintf_s(buffer, buffer_len, _T("suinb pa,%02xh"), getb()); break;
+ case 0xb1: my_stprintf_s(buffer, buffer_len, _T("suinb pb,%02xh"), getb()); break;
+ case 0xb2: my_stprintf_s(buffer, buffer_len, _T("suinb pc,%02xh"), getb()); break;
+ case 0xb3: my_stprintf_s(buffer, buffer_len, _T("suinb mk,%02xh"), getb()); break;
+ case 0xb8: my_stprintf_s(buffer, buffer_len, _T("lti pa,%02xh"), getb()); break;
+ case 0xb9: my_stprintf_s(buffer, buffer_len, _T("lti pb,%02xh"), getb()); break;
+ case 0xba: my_stprintf_s(buffer, buffer_len, _T("lti pc,%02xh"), getb()); break;
+ case 0xbb: my_stprintf_s(buffer, buffer_len, _T("lti mk,%02xh"), getb()); break;
+ case 0xc0: my_stprintf_s(buffer, buffer_len, _T("adi pa,%02xh"), getb()); break;
+ case 0xc1: my_stprintf_s(buffer, buffer_len, _T("adi pb,%02xh"), getb()); break;
+ case 0xc2: my_stprintf_s(buffer, buffer_len, _T("adi pc,%02xh"), getb()); break;
+ case 0xc3: my_stprintf_s(buffer, buffer_len, _T("adi mk,%02xh"), getb()); break;
+ case 0xc8: my_stprintf_s(buffer, buffer_len, _T("oni pa,%02xh"), getb()); break;
+ case 0xc9: my_stprintf_s(buffer, buffer_len, _T("oni pb,%02xh"), getb()); break;
+ case 0xca: my_stprintf_s(buffer, buffer_len, _T("oni pc,%02xh"), getb()); break;
+ case 0xcb: my_stprintf_s(buffer, buffer_len, _T("oni mk,%02xh"), getb()); break;
+ case 0xd0: my_stprintf_s(buffer, buffer_len, _T("aci pa,%02xh"), getb()); break;
+ case 0xd1: my_stprintf_s(buffer, buffer_len, _T("aci pb,%02xh"), getb()); break;
+ case 0xd2: my_stprintf_s(buffer, buffer_len, _T("aci pc,%02xh"), getb()); break;
+ case 0xd3: my_stprintf_s(buffer, buffer_len, _T("aci mk,%02xh"), getb()); break;
+ case 0xd8: my_stprintf_s(buffer, buffer_len, _T("offi pa,%02xh"), getb()); break;
+ case 0xd9: my_stprintf_s(buffer, buffer_len, _T("offi pb,%02xh"), getb()); break;
+ case 0xda: my_stprintf_s(buffer, buffer_len, _T("offi pc,%02xh"), getb()); break;
+ case 0xdb: my_stprintf_s(buffer, buffer_len, _T("offi mk,%02xh"), getb()); break;
+ case 0xe0: my_stprintf_s(buffer, buffer_len, _T("sui pa,%02xh"), getb()); break;
+ case 0xe1: my_stprintf_s(buffer, buffer_len, _T("sui pb,%02xh"), getb()); break;
+ case 0xe2: my_stprintf_s(buffer, buffer_len, _T("sui pc,%02xh"), getb()); break;
+ case 0xe3: my_stprintf_s(buffer, buffer_len, _T("sui mk,%02xh"), getb()); break;
+ case 0xe8: my_stprintf_s(buffer, buffer_len, _T("nei pa,%02xh"), getb()); break;
+ case 0xe9: my_stprintf_s(buffer, buffer_len, _T("nei pb,%02xh"), getb()); break;
+ case 0xea: my_stprintf_s(buffer, buffer_len, _T("nei pc,%02xh"), getb()); break;
+ case 0xeb: my_stprintf_s(buffer, buffer_len, _T("nei mk,%02xh"), getb()); break;
+ case 0xf0: my_stprintf_s(buffer, buffer_len, _T("sbi pa,%02xh"), getb()); break;
+ case 0xf1: my_stprintf_s(buffer, buffer_len, _T("sbi pb,%02xh"), getb()); break;
+ case 0xf2: my_stprintf_s(buffer, buffer_len, _T("sbi pc,%02xh"), getb()); break;
+ case 0xf3: my_stprintf_s(buffer, buffer_len, _T("sbi mk,%02xh"), getb()); break;
+ case 0xf8: my_stprintf_s(buffer, buffer_len, _T("eqi pa,%02xh"), getb()); break;
+ case 0xf9: my_stprintf_s(buffer, buffer_len, _T("eqi pb,%02xh"), getb()); break;
+ case 0xfa: my_stprintf_s(buffer, buffer_len, _T("eqi pc,%02xh"), getb()); break;
+ case 0xfb: my_stprintf_s(buffer, buffer_len, _T("eqi mk,%02xh"), getb()); break;
+ default: my_stprintf_s(buffer, buffer_len, _T("db 64h,%02xh"), b);
}
break;
- case 0x65: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("neiw v.%02xh, %02xh"), wa, getb()); break;
- case 0x66: my_stprintf_s(buffer, buffer_len, _T("sui a, %02xh"), getb()); break;
- case 0x67: my_stprintf_s(buffer, buffer_len, _T("nei a, %02xh"), getb()); break;
- case 0x68: my_stprintf_s(buffer, buffer_len, _T("mvi v, %02xh"), getb()); break;
- case 0x69: my_stprintf_s(buffer, buffer_len, _T("mvi a, %02xh"), getb()); break;
- case 0x6a: my_stprintf_s(buffer, buffer_len, _T("mvi b, %02xh"), getb()); break;
- case 0x6b: my_stprintf_s(buffer, buffer_len, _T("mvi c, %02xh"), getb()); break;
- case 0x6c: my_stprintf_s(buffer, buffer_len, _T("mvi d, %02xh"), getb()); break;
- case 0x6d: my_stprintf_s(buffer, buffer_len, _T("mvi e, %02xh"), getb()); break;
- case 0x6e: my_stprintf_s(buffer, buffer_len, _T("mvi h, %02xh"), getb()); break;
- case 0x6f: my_stprintf_s(buffer, buffer_len, _T("mvi l, %02xh"), getb()); break;
+ case 0x65: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("neiw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x66: my_stprintf_s(buffer, buffer_len, _T("sui a,%02xh"), getb()); break;
+ case 0x67: my_stprintf_s(buffer, buffer_len, _T("nei a,%02xh"), getb()); break;
+ case 0x68: my_stprintf_s(buffer, buffer_len, _T("mvi v,%02xh"), getb()); break;
+ case 0x69: my_stprintf_s(buffer, buffer_len, _T("mvi a,%02xh"), getb()); break;
+ case 0x6a: my_stprintf_s(buffer, buffer_len, _T("mvi b,%02xh"), getb()); break;
+ case 0x6b: my_stprintf_s(buffer, buffer_len, _T("mvi c,%02xh"), getb()); break;
+ case 0x6c: my_stprintf_s(buffer, buffer_len, _T("mvi d,%02xh"), getb()); break;
+ case 0x6d: my_stprintf_s(buffer, buffer_len, _T("mvi e,%02xh"), getb()); break;
+ case 0x6e: my_stprintf_s(buffer, buffer_len, _T("mvi h,%02xh"), getb()); break;
+ case 0x6f: my_stprintf_s(buffer, buffer_len, _T("mvi l,%02xh"), getb()); break;
case 0x70:
switch(b = getb()) {
case 0x2f: my_stprintf_s(buffer, buffer_len, _T("lded %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
case 0x3e: my_stprintf_s(buffer, buffer_len, _T("shld %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
case 0x3f: my_stprintf_s(buffer, buffer_len, _T("lhld %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x68: my_stprintf_s(buffer, buffer_len, _T("mov v, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x69: my_stprintf_s(buffer, buffer_len, _T("mov a, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x6a: my_stprintf_s(buffer, buffer_len, _T("mov b, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x6b: my_stprintf_s(buffer, buffer_len, _T("mov c, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x6c: my_stprintf_s(buffer, buffer_len, _T("mov d, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x6d: my_stprintf_s(buffer, buffer_len, _T("mov e, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x6e: my_stprintf_s(buffer, buffer_len, _T("mov h, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x6f: my_stprintf_s(buffer, buffer_len, _T("mov l, %s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x78: my_stprintf_s(buffer, buffer_len, _T("mov %s, v"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x79: my_stprintf_s(buffer, buffer_len, _T("mov %s, a"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x7a: my_stprintf_s(buffer, buffer_len, _T("mov %s, b"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x7b: my_stprintf_s(buffer, buffer_len, _T("mov %s, c"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x7c: my_stprintf_s(buffer, buffer_len, _T("mov %s, d"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x7d: my_stprintf_s(buffer, buffer_len, _T("mov %s, e"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x7e: my_stprintf_s(buffer, buffer_len, _T("mov %s, h"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
- case 0x7f: my_stprintf_s(buffer, buffer_len, _T("mov %s, l"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x68: my_stprintf_s(buffer, buffer_len, _T("mov v,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x69: my_stprintf_s(buffer, buffer_len, _T("mov a,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x6a: my_stprintf_s(buffer, buffer_len, _T("mov b,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x6b: my_stprintf_s(buffer, buffer_len, _T("mov c,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x6c: my_stprintf_s(buffer, buffer_len, _T("mov d,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x6d: my_stprintf_s(buffer, buffer_len, _T("mov e,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x6e: my_stprintf_s(buffer, buffer_len, _T("mov h,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x6f: my_stprintf_s(buffer, buffer_len, _T("mov l,%s"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x78: my_stprintf_s(buffer, buffer_len, _T("mov %s,v"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x79: my_stprintf_s(buffer, buffer_len, _T("mov %s,a"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x7a: my_stprintf_s(buffer, buffer_len, _T("mov %s,b"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x7b: my_stprintf_s(buffer, buffer_len, _T("mov %s,c"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x7c: my_stprintf_s(buffer, buffer_len, _T("mov %s,d"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x7d: my_stprintf_s(buffer, buffer_len, _T("mov %s,e"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x7e: my_stprintf_s(buffer, buffer_len, _T("mov %s,h"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
+ case 0x7f: my_stprintf_s(buffer, buffer_len, _T("mov %s,l"), get_value_or_symbol(d_debugger->first_symbol, _T("%04xh"), getw())); break;
case 0x89: my_stprintf_s(buffer, buffer_len, _T("anax b")); break;
case 0x8a: my_stprintf_s(buffer, buffer_len, _T("anax d")); break;
case 0x8b: my_stprintf_s(buffer, buffer_len, _T("anax h")); break;
case 0xfd: my_stprintf_s(buffer, buffer_len, _T("eqax h+")); break;
case 0xfe: my_stprintf_s(buffer, buffer_len, _T("eqax d-")); break;
case 0xff: my_stprintf_s(buffer, buffer_len, _T("eqax h-")); break;
- default: my_stprintf_s(buffer, buffer_len, _T("db 70h, %02xh"), b);
+ default: my_stprintf_s(buffer, buffer_len, _T("db 70h,%02xh"), b);
}
break;
- case 0x71: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("mviw v.%02xh, %02xh"), wa, getb()); break;
+ case 0x71: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("mviw v.%02xh,%02xh"), wa, getb()); break;
case 0x72: my_stprintf_s(buffer, buffer_len, _T("softi")); break;
case 0x73: my_stprintf_s(buffer, buffer_len, _T("jb")); break;
case 0x74:
case 0xe8: my_stprintf_s(buffer, buffer_len, _T("neaw v.%02xh"), getwa()); break;
case 0xf0: my_stprintf_s(buffer, buffer_len, _T("sbbw v.%02xh"), getwa()); break;
case 0xf8: my_stprintf_s(buffer, buffer_len, _T("eqaw v.%02xh"), getwa()); break;
- default: my_stprintf_s(buffer, buffer_len, _T("db 74h, %02xh"), b);
+ default: my_stprintf_s(buffer, buffer_len, _T("db 74h,%02xh"), b);
}
break;
- case 0x75: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("eqiw v.%02xh, %02xh"), wa, getb()); break;
- case 0x76: my_stprintf_s(buffer, buffer_len, _T("sbi a, %02xh"), getb()); break;
- case 0x77: my_stprintf_s(buffer, buffer_len, _T("eqi a, %02xh"), getb()); break;
+ case 0x75: wa = getwa(); my_stprintf_s(buffer, buffer_len, _T("eqiw v.%02xh,%02xh"), wa, getb()); break;
+ case 0x76: my_stprintf_s(buffer, buffer_len, _T("sbi a,%02xh"), getb()); break;
+ case 0x77: my_stprintf_s(buffer, buffer_len, _T("eqi a,%02xh"), getb()); break;
case 0x78: case 0x79: case 0x7a: case 0x7b: case 0x7c: case 0x7d: case 0x7e: case 0x7f:
my_stprintf_s(buffer, buffer_len, _T("calf %3x"), 0x800 | ((b & 7) << 8) | getb()); break;
#define CPU_EXECUTE_CALL(name) CPU_EXECUTE_NAME(name)(cpustate)
#define CPU_DISASSEMBLE_NAME(name) cpu_disassemble_##name
-#define CPU_DISASSEMBLE(name) int CPU_DISASSEMBLE_NAME(name)(_TCHAR *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram)
-#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(buffer, pc, oprom, oprom)
+#define CPU_DISASSEMBLE(name) int CPU_DISASSEMBLE_NAME(name)(_TCHAR *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, symbol_t *first_symbol)
+#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(buffer, pc, oprom, oprom, d_debugger->first_symbol)
/*****************************************************************************/
/* src/emu/didisasm.h */
}
}
+#define STATE_VERSION 1
+
+void DISPLAY::save_state(FILEIO* state_fio)
+{
+ state_fio->FputUint32(STATE_VERSION);
+ state_fio->FputInt32(this_device_id);
+
+ state_fio->Fwrite(seg, sizeof(seg), 1);
+ state_fio->FputUint8(pb);
+ state_fio->FputUint8(pc);
+}
+
+bool DISPLAY::load_state(FILEIO* state_fio)
+{
+ if(state_fio->FgetUint32() != STATE_VERSION) {
+ return false;
+ }
+ if(state_fio->FgetInt32() != this_device_id) {
+ return false;
+ }
+ state_fio->Fread(seg, sizeof(seg), 1);
+ pb = state_fio->FgetUint8();
+ pc = state_fio->FgetUint8();
+ return true;
+}
+
void initialize();
void write_signal(int id, uint32_t data, uint32_t mask);
void event_vline(int v, int clock);
+ void save_state(FILEIO* state_fio);
+ bool load_state(FILEIO* state_fio);
// unique function
void draw_screen();
#include "../pcm1bit.h"
#include "../z80.h"
+#ifdef USE_DEBUGGER
+#include "../debugger.h"
+#endif
+
#include "display.h"
#include "keyboard.h"
cpu->set_context_mem(memory);
cpu->set_context_io(io);
cpu->set_context_intr(dummy);
+#ifdef USE_DEBUGGER
+ cpu->set_context_debugger(new DEBUGGER(this, emu));
+#endif
// memory bus
memset(ram, 0, sizeof(ram));
}
// ----------------------------------------------------------------------------
+// debugger
+// ----------------------------------------------------------------------------
+
+#ifdef USE_DEBUGGER
+DEVICE *VM::get_cpu(int index)
+{
+ if(index == 0) {
+ return cpu;
+ }
+ return NULL;
+}
+#endif
+
+// ----------------------------------------------------------------------------
// draw screen
// ----------------------------------------------------------------------------
}
}
+#define STATE_VERSION 1
+
+void VM::save_state(FILEIO* state_fio)
+{
+ state_fio->FputUint32(STATE_VERSION);
+
+ for(DEVICE* device = first_device; device; device = device->next_device) {
+ device->save_state(state_fio);
+ }
+ state_fio->Fwrite(ram, sizeof(ram), 1);
+}
+
+bool VM::load_state(FILEIO* state_fio)
+{
+ if(state_fio->FgetUint32() != STATE_VERSION) {
+ return false;
+ }
+ for(DEVICE* device = first_device; device; device = device->next_device) {
+ if(!device->load_state(state_fio)) {
+ return false;
+ }
+ }
+ state_fio->Fread(ram, sizeof(ram), 1);
+ return true;
+}
+
#define MAX_BUTTONS 21
#define MAX_DRAW_RANGES 6
#define USE_BINARY_FILE1
+#define USE_DEBUGGER
+#define USE_STATE
#include "../../common.h"
#include "../../fileio.h"
void reset();
void run();
+#ifdef USE_DEBUGGER
+ // debugger
+ DEVICE *get_cpu(int index);
+#endif
+
// draw screen
void draw_screen();
bool is_frame_skippable();
void update_config();
+ void save_state(FILEIO* state_fio);
+ bool load_state(FILEIO* state_fio);
// ----------------------------------------
// for each device
#define DIRECT3D_VERSION 0x900
// XXX: if your DirectX 9.0 SDK is newer and does not contain dinput.lib,
// please change the definition of DIRECTINPUT_VERSION from 0x500 to 0x800
-#define DIRECTINPUT_VERSION 0x500
-//#define DIRECTINPUT_VERSION 0x800
+//#define DIRECTINPUT_VERSION 0x500
+#define DIRECTINPUT_VERSION 0x800
#include <windows.h>
#include <windowsx.h>
HWND hStatus = NULL;
bool status_bar_visible = false;
+#ifdef USE_FD1
+uint32_t fd_status = 0x80000000;
+#endif
+#ifdef USE_QD1
+uint32_t qd_status = 0x80000000;
+#endif
+#ifdef USE_HARD_DISK
+uint32_t hd_status = 0x80000000;
+#endif
+#ifdef USE_COMPACT_DISC
+uint32_t cd_status = 0x80000000;
+#endif
+#ifdef USE_LASER_DISC
+uint32_t ld_status = 0x80000000;
+#endif
+#if defined(USE_TAPE1) && !defined(TAPE_BINARY_ONLY)
+_TCHAR tape_status[1024] = _T("uninitialized");
+#endif
+
void show_status_bar(HWND hWnd);
void hide_status_bar(HWND hWnd);
int get_status_bar_height();
+bool get_status_bar_updated();
void update_status_bar(HINSTANCE hInstance, LPDRAWITEMSTRUCT lpDrawItem);
// file
// update status bar
if(update_status_bar_time <= current_time) {
if(hStatus != NULL && status_bar_visible) {
- SendMessage(hStatus, SB_SETTEXT, (WPARAM)0 | SBT_OWNERDRAW, (LPARAM)NULL);
-// InvalidateRect(hStatus, NULL, FALSE);
+ if(get_status_bar_updated()) {
+ SendMessage(hStatus, SB_SETTEXT, (WPARAM)0 | SBT_OWNERDRAW, (LPARAM)NULL);
+// InvalidateRect(hStatus, NULL, FALSE);
+ }
}
- update_status_bar_time = current_time + 500;
+ update_status_bar_time = current_time + 200;
}
// disable screen saver
return 0;
}
+bool get_status_bar_updated()
+{
+ bool updated = false;
+
+#ifdef USE_FD1
+ uint32_t new_fd_status = emu->is_floppy_disk_accessed();
+ if(fd_status != new_fd_status) {
+ updated = true;
+ fd_status = new_fd_status;
+ }
+#endif
+#ifdef USE_QD1
+ uint32_t new_qd_status = emu->is_quick_disk_accessed();
+ if(qd_status != new_qd_status) {
+ updated = true;
+ qd_status = new_qd_status;
+ }
+#endif
+#ifdef USE_HARD_DISK
+ uint32_t new_hd_status = emu->is_hard_disk_accessed();
+ if(hd_status != new_hd_status) {
+ updated = true;
+ hd_status = new_hd_status;
+ }
+#endif
+#ifdef USE_COMPACT_DISC
+ uint32_t new_cd_status = emu->is_compact_disc_accessed();
+ if(cd_status != new_cd_status) {
+ updated = true;
+ cd_status = new_cd_status;
+ }
+#endif
+#ifdef USE_LASER_DISC
+ uint32_t new_ld_status = emu->is_laser_disc_accessed();
+ if(ld_status != new_ld_status) {
+ updated = true;
+ ld_status = new_ld_status;
+ }
+#endif
+#if defined(USE_TAPE1) && !defined(TAPE_BINARY_ONLY)
+ _TCHAR new_tape_status[array_length(tape_status)] = {0};
+ for(int drv = 0; drv < MAX_TAPE; drv++) {
+ const _TCHAR* message = emu->get_tape_message(drv);
+ if(message != NULL) {
+ my_tcscpy_s(new_tape_status, array_length(new_tape_status), message);
+ break;
+ }
+ }
+ if(_tcsicmp(tape_status, new_tape_status) != 0) {
+ updated = true;
+ my_tcscpy_s(tape_status, array_length(tape_status), new_tape_status);
+ }
+#endif
+ return updated;
+}
+
void update_status_bar(HINSTANCE hInstance, LPDRAWITEMSTRUCT lpDrawItem)
{
TEXTMETRIC tm;
GetTextExtentPoint32(lpDrawItem->hDC, _T("FD:"), 3, &size);
draw_left += size.cx + 4;
- uint32_t fd_status = emu->is_floppy_disk_accessed();
for(int i = 0; i < MAX_FD; i++) {
int idx = (fd_status >> i) & 1;
SelectObject(hdcMem, hBitmap[idx]);
GetTextExtentPoint32(lpDrawItem->hDC, _T("QD:"), 3, &size);
draw_left += size.cx + 4;
- uint32_t qd_status = emu->is_quick_disk_accessed();
for(int i = 0; i < MAX_QD; i++) {
int idx = (qd_status >> i) & 1;
SelectObject(hdcMem, hBitmap[idx]);
GetTextExtentPoint32(lpDrawItem->hDC, _T("HD:"), 3, &size);
draw_left += size.cx + 4;
- uint32_t hd_status = emu->is_hard_disk_accessed();
for (int i = 0; i < USE_HARD_DISK; i++) {
int idx = (hd_status >> i) & 1;
SelectObject(hdcMem, hBitmap[idx]);
GetTextExtentPoint32(lpDrawItem->hDC, _T("CD:"), 3, &size);
draw_left += size.cx + 4;
- uint32_t cd_status = emu->is_compact_disc_accessed();
for (int i = 0; i < 1; i++) {
int idx = (cd_status >> i) & 1;
SelectObject(hdcMem, hBitmap[idx]);
GetTextExtentPoint32(lpDrawItem->hDC, _T("LD:"), 3, &size);
draw_left += size.cx + 4;
- uint32_t ld_status = emu->is_laser_disc_accessed();
for (int i = 0; i < 1; i++) {
int idx = (ld_status >> i) & 1;
SelectObject(hdcMem, hBitmap[idx]);
#endif
#if defined(USE_TAPE1) && !defined(TAPE_BINARY_ONLY)
{
- for(int drv = 0; drv < MAX_TAPE; drv++) {
- const _TCHAR* message = emu->get_tape_message(drv);
- SIZE size;
-
- if(message != NULL) {
- TextOut(lpDrawItem->hDC, draw_left, text_top, _T("CMT:"), 4);
- GetTextExtentPoint32(lpDrawItem->hDC, _T("CMT:"), 4, &size);
- draw_left += size.cx + 4;
- TextOut(lpDrawItem->hDC, draw_left, text_top, message, _tcslen(message));
- break;
- }
- }
+ SIZE size;
+
+ TextOut(lpDrawItem->hDC, draw_left, text_top, _T("CMT:"), 4);
+ GetTextExtentPoint32(lpDrawItem->hDC, _T("CMT:"), 4, &size);
+ draw_left += size.cx + 4;
+ TextOut(lpDrawItem->hDC, draw_left, text_top, tape_status, _tcslen(tape_status));
}
#endif
}
Filter="h"
>
<File
+ RelativePath="..\src\vm\debugger.h"
+ >
+ </File>
+ <File
RelativePath="..\src\vm\device.h"
>
</File>
>
</File>
<File
+ RelativePath="..\src\vm\debugger.h"
+ >
+ </File>
+ <File
RelativePath="..\src\vm\device.h"
>
</File>
Filter="h"
>
<File
+ RelativePath="..\src\vm\debugger.h"
+ >
+ </File>
+ <File
RelativePath="..\src\vm\device.h"
>
</File>
<ClInclude Include="..\src\fileio.h" />
<ClInclude Include="..\src\emu.h" />
<ClInclude Include="..\src\win32\osd.h" />
+ <ClInclude Include="..\src\vm\debugger.h" />
<ClInclude Include="..\src\vm\device.h" />
<ClInclude Include="..\src\vm\event.h" />
<ClInclude Include="..\src\vm\io.h" />
<ClInclude Include="..\src\win32\osd.h">
<Filter>Header Files\OSD Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\src\vm\debugger.h">
+ <Filter>Header Files\VM Common Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\src\vm\device.h">
<Filter>Header Files\VM Common Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\emu.h" />
<ClInclude Include="..\src\win32\osd.h" />
<ClInclude Include="..\src\vm\datarec.h" />
+ <ClInclude Include="..\src\vm\debugger.h" />
<ClInclude Include="..\src\vm\device.h" />
<ClInclude Include="..\src\vm\event.h" />
<ClInclude Include="..\src\vm\m6502.h" />
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E189B8CC-341D-4715-9266-08610C61015A}</ProjectGuid>
+ <RootNamespace>pc2001</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>.\Debug\</OutDir>
+ <IntDir>.\Debug\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(DXSDK_DIR)Include</IncludePath>
+ <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(DXSDK_DIR)Lib\x86</LibraryPath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>.\Release\</OutDir>
+ <IntDir>.\Release\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(DXSDK_DIR)Include</IncludePath>
+ <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(DXSDK_DIR)Lib\x86</LibraryPath>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Debug/pc2001.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_PC2001;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>.\Debug/pc2001.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+ <ObjectFileName>.\Debug/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0411</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>odbc32.lib;odbccp32.lib;winmm.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\Debug/pc2001.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>.\Debug/pc2001.pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ <IgnoreSpecificDefaultLibraries>Libcmtd.lib</IgnoreSpecificDefaultLibraries>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\Debug/pc2001.bsc</OutputFile>
+ </Bscmake>
+ <Manifest>
+ <AdditionalManifestFiles>..\src\res\vista.manifest</AdditionalManifestFiles>
+ </Manifest>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Release/pc2001.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_PC2001;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <PrecompiledHeaderOutputFile>.\Release/pc2001.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+ <ObjectFileName>.\Release/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>odbc32.lib;odbccp32.lib;winmm.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\Release/pc2001.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ProgramDatabaseFile>.\Release/pc2001.pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\Release/pc2001.bsc</OutputFile>
+ </Bscmake>
+ <Manifest>
+ <AdditionalManifestFiles>..\src\res\vista.manifest</AdditionalManifestFiles>
+ </Manifest>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\common.cpp" />
+ <ClCompile Include="..\src\config.cpp" />
+ <ClCompile Include="..\src\fifo.cpp" />
+ <ClCompile Include="..\src\fileio.cpp" />
+ <ClCompile Include="..\src\debugger.cpp" />
+ <ClCompile Include="..\src\emu.cpp" />
+ <ClCompile Include="..\src\win32\osd.cpp" />
+ <ClCompile Include="..\src\win32\osd_console.cpp" />
+ <ClCompile Include="..\src\win32\osd_input.cpp" />
+ <ClCompile Include="..\src\win32\osd_screen.cpp" />
+ <ClCompile Include="..\src\win32\osd_sound.cpp" />
+ <ClCompile Include="..\src\win32\winmain.cpp" />
+ <ClCompile Include="..\src\vm\datarec.cpp" />
+ <ClCompile Include="..\src\vm\event.cpp" />
+ <ClCompile Include="..\src\vm\memory.cpp" />
+ <ClCompile Include="..\src\vm\noise.cpp" />
+ <ClCompile Include="..\src\vm\pcm1bit.cpp" />
+ <ClCompile Include="..\src\vm\upd16434.cpp" />
+ <ClCompile Include="..\src\vm\upd1990a.cpp" />
+ <ClCompile Include="..\src\vm\upd7810.cpp" />
+ <ClCompile Include="..\src\vm\pc2001\io.cpp" />
+ <ClCompile Include="..\src\vm\pc2001\pc2001.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\src\common.h" />
+ <ClInclude Include="..\src\config.h" />
+ <ClInclude Include="..\src\fifo.h" />
+ <ClInclude Include="..\src\fileio.h" />
+ <ClInclude Include="..\src\emu.h" />
+ <ClInclude Include="..\src\win32\osd.h" />
+ <ClInclude Include="..\src\vm\atarec.h" />
+ <ClInclude Include="..\src\vm\debugger.h" />
+ <ClInclude Include="..\src\vm\device.h" />
+ <ClInclude Include="..\src\vm\event.h" />
+ <ClInclude Include="..\src\vm\memory.h" />
+ <ClInclude Include="..\src\vm\noise.h" />
+ <ClInclude Include="..\src\vm\pcm1bit.h" />
+ <ClInclude Include="..\src\vm\vm.h" />
+ <ClInclude Include="..\src\vm\upd16434.h" />
+ <ClInclude Include="..\src\vm\upd1990a.h" />
+ <ClInclude Include="..\src\vm\upd7810.h" />
+ <ClInclude Include="..\src\vm\pc2001\io.h" />
+ <ClInclude Include="..\src\vm\pc2001\pc2001.h" />
+ <ClInclude Include="..\src\res\resource.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <Image Include="..\src\res\pc2001.ico" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\src\res\pc2001.rc">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\src\res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
<ClInclude Include="..\src\fileio.h" />
<ClInclude Include="..\src\emu.h" />
<ClInclude Include="..\src\win32\osd.h" />
+ <ClInclude Include="..\src\vm\debugger.h" />
<ClInclude Include="..\src\vm\device.h" />
<ClInclude Include="..\src\vm\event.h" />
<ClInclude Include="..\src\vm\i8255.h" />
<ClInclude Include="..\src\win32\osd.h">
<Filter>Header Files\OSD Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\src\vm\debugger.h">
+ <Filter>Header Files\VM Common Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\src\vm\device.h">
<Filter>Header Files\VM Common Header Files</Filter>
</ClInclude>