+8/1/2015
+
+[WINMAIN] support menu to modify write protected status of floppy disk image
+[WINMAIN] support menu to enable/disable DirectInput for keyboard
+[WIN32/INPUT] support to swap joystick buttons #1/#3/#5... and #2/#4/#6...
+
+[VM/DISK] fix not to inherit the write protected status of image file
+[VM/DISK] support to modify write protected status of floppy disk image
+[VM/DISK] add ugly patch for FM-7 Gambler Jiko Chuushin Ha
+[VM/MB8877] improve read/write commands to access the current track
+[VM/MB8877] improve seek commands (thanks Mr.Artane.)
+[VM/MB8877] suppot to set/get write protected status of floppy disk image
+[VM/MB8877] add ugly patch for FM-7 Gambler Jiko Chuushin Ha
+[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
+[VM/PC6031] suppot to set/get write protected status of floppy disk image
+[VM/PTF20] suppot to set/get write protected status of floppy disk image
+[VM/UPD765A] suppot to set/get write protected status of floppy disk image
+
+[FM77AV] import Mr.Artane.'s fixes
+
+
7/31/2015
[COMMON] fix all vcproj files to disable WholeProgramOptimization option
[COMMON] fix all vcproj files to enable SSE2 instructions
[CONFIG] support ignore crc options individually for each floppy drive
+[WINMAIN] support ignore crc options individually for each floppy drive
[VM/DISK] support ignore crc options individually for each floppy drive
[VM/MB8877] improve read/write commands (thanks Mr.Artane.)
--- /dev/null
+# Build Common Sourcecode Project, Qt.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of XM7/SDL, but license is apache 2.2,
+# this part was written only me.
+
+cmake_minimum_required (VERSION 2.8)
+cmake_policy(SET CMP0011 NEW)
+
+message("")
+message("** Start of configure CommonSourceProject,Babbage2nd, Qt **")
+message("")
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+
+project (emubabbage2nd)
+
+set(EXEC_TARGET emubabbage2nd)
+
+set(LOCAL_LIBS vm_babbage2nd
+ vm_vm
+ common_common
+ qt_babbage2nd
+ qt_gui
+ )
+
+set(VMFILES_BASE
+ z80.cpp
+ z80ctc.cpp
+ z80pio.cpp
+
+ io.cpp
+ memory.cpp
+
+ event.cpp
+)
+
+
+set(USE_OPENMP ON CACHE BOOL "Build using OpenMP")
+set(USE_OPENCL ON CACHE BOOL "Build using OpenCL")
+set(USE_OPENGL ON CACHE BOOL "Build using OpenGL")
+set(WITH_DEBUGGER OFF CACHE BOOL "Build with debugger.")
+
+include(detect_target_cpu)
+#include(windows-mingw-cross)
+# set entry
+set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE STRING "Set processor to build.")
+
+set(VMFILES ${VMFILES_BASE})
+add_definitions(-D_BABBAGE2ND)
+set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/babbage2nd.qrc)
+
+
+#include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/babbage2nd)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/babbage2nd)
+
+include(config_commonsource)
+
+if(USE_SSE2)
+# include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/fm7/vram/sse2)
+# add_subdirectory(../../src/vm/fm7/vram/sse2 vm/fm7/vram/sse2)
+endif()
+
+
+if(USE_SSE2)
+# include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/common/scaler/sse2)
+endif()
+
+add_subdirectory(../../src/vm/babbage2nd vm/babbage2nd)
+add_subdirectory(../../src/qt/babbage2nd qt/bababge2nd)
+
+add_subdirectory(../../src/qt/common qt/common)
// initial settings
memset(&config, 0, sizeof(config_t));
+#ifdef _WIN32
config.use_direct_input = true;
config.disable_dwm = false;
+#endif
+ config.swap_joy_buttons = false;
#if !(defined(USE_BITMAP) || defined(USE_LED))
+#ifdef _WIN32
config.use_d3d9 = true;
+#endif
config.stretch_type = 1; // Stretch (Aspect)
#endif
config.sound_frequency = 6; // 48KHz
for(int drv = 0; drv < MAX_FD; drv++) {
config.ignore_crc[drv] = false;
}
- for(i = 0; i <8; i++) config.fdd_hack_fast_transfer[i] = false;
+// for(i = 0; i <8; i++) config.fdd_hack_fast_transfer[i] = false;
#endif
#if defined(USE_SOUND_DEVICE_TYPE) && defined(SOUND_DEVICE_TYPE_DEFAULT)
config.sound_device_type = SOUND_DEVICE_TYPE_DEFAULT;
// control
- config.use_direct_input = GetPrivateProfileBool(_T("Control"), _T("UseDirectInput"), config.use_direct_input, config_path);
- config.disable_dwm = GetPrivateProfileBool(_T("Control"), _T("DisableDwm"), config.disable_dwm, config_path);
-
#ifdef USE_BOOT_MODE
config.boot_mode = GetPrivateProfileInt(_T("Control"), _T("BootMode"), config.boot_mode, config_path);
#endif
config.ignore_crc[drv] = GetPrivateProfileBool(_T("Control"), _tag, config.ignore_crc[drv], config_path);
}
}
- {
- _TCHAR _tag[128];
- for(drv = 0; drv < MAX_FD; drv++) {
- memset(_tag, 0x00, sizeof(_tag));
- _stprintf_s(_tag, 64, _T("FDDFastTransfer_%d"), drv + 1);
- config.fdd_hack_fast_transfer[drv] =
- (GetPrivateProfileBool(_T("Control"),
- _tag,
- config.fdd_hack_fast_transfer[drv] ? 1 : 0,
- config_path) != 0) ? true : false;
- }
- }
+// {
+// _TCHAR _tag[128];
+// for(drv = 0; drv < MAX_FD; drv++) {
+// memset(_tag, 0x00, sizeof(_tag));
+// _stprintf_s(_tag, 64, _T("FDDFastTransfer_%d"), drv + 1);
+// config.fdd_hack_fast_transfer[drv] =
+// (GetPrivateProfileBool(_T("Control"),
+// _tag,
+// config.fdd_hack_fast_transfer[drv] ? 1 : 0,
+// config_path) != 0) ? true : false;
+// }
+// }
#endif
#ifdef USE_TAPE
// screen
#if !(defined(USE_BITMAP) || defined(USE_LED))
config.window_mode = GetPrivateProfileInt(_T("Screen"), _T("WindowMode"), config.window_mode, config_path);
+#ifdef _WIN32
config.use_d3d9 = GetPrivateProfileBool(_T("Screen"), _T("UseD3D9"), config.use_d3d9, config_path);
config.wait_vsync = GetPrivateProfileBool(_T("Screen"), _T("WaitVSync"), config.wait_vsync, config_path);
+#endif
config.stretch_type = GetPrivateProfileInt(_T("Screen"), _T("StretchType"), config.stretch_type, config_path);
#else
config.window_mode = GetPrivateProfileInt(_T("Screen"), _T("WindowMode"), config.window_mode, config_path);
#ifdef USE_SOUND_DEVICE_TYPE
config.sound_device_type = GetPrivateProfileInt(_T("Sound"), _T("DeviceType"), config.sound_device_type, config_path);
#endif
+ GetPrivateProfileString(_T("Sound"), _T("FMGenDll"), _T("mamefm.dll"), config.fmgen_dll_path, _MAX_PATH, config_path);
+
+ // input
config.multiple_speakers = GetPrivateProfileBool(_T("Sound"), _T("MultipleSpeakers"),
config.multiple_speakers, config_path);
config.general_sound_level = GetPrivateProfileInt(_T("Sound"), _T("GeneralSoundLevel"),
}
}
#endif
+#ifdef _WIN32
+ config.use_direct_input = GetPrivateProfileBool(_T("Input"), _T("UseDirectInput"), config.use_direct_input, config_path);
+ config.disable_dwm = GetPrivateProfileBool(_T("Input"), _T("DisableDwm"), config.disable_dwm, config_path);
+#endif
+ config.swap_joy_buttons = GetPrivateProfileBool(_T("Input"), _T("SwapJoyButtons"), config.swap_joy_buttons, config_path);
#if defined(_USE_AGAR) || defined(_USE_QT)
config_path->Fclose();
delete config_path;
_stprintf_s(config_path, _MAX_PATH, _T("%s%s.ini"), app_path, _T(CONFIG_NAME));
#endif
// control
- WritePrivateProfileBool(_T("Control"), _T("UseDirectInput"), config.use_direct_input, config_path);
- WritePrivateProfileBool(_T("Control"), _T("DisableDwm"), config.disable_dwm, config_path);
-
# ifdef USE_BOOT_MODE
WritePrivateProfileInt(_T("Control"), _T("BootMode"), config.boot_mode, config_path);
#endif
WritePrivateProfileBool(_T("Control"), _tag, config.ignore_crc[drv], config_path);
}
}
- {
- _TCHAR _tag[128];
- for(drv = 0; drv < MAX_FD; drv++) {
- memset(_tag, 0x00, sizeof(_tag));
- _stprintf_s(_tag, 64, _T("FDDFastTransfer_%d"), drv + 1);
- WritePrivateProfileBool(_T("Control"),
- _tag,
- config.fdd_hack_fast_transfer[drv] ? 1 : 0,
- config_path);
- }
- }
+// {
+// _TCHAR _tag[128];
+// for(drv = 0; drv < MAX_FD; drv++) {
+// memset(_tag, 0x00, sizeof(_tag));
+// _stprintf_s(_tag, 64, _T("FDDFastTransfer_%d"), drv + 1);
+// WritePrivateProfileBool(_T("Control"),
+// _tag,
+// config.fdd_hack_fast_transfer[drv] ? 1 : 0,
+// config_path);
+// }
+// }
#endif
#ifdef USE_TAPE
// screen
#if !(defined(USE_BITMAP) || defined(USE_LED))
WritePrivateProfileInt(_T("Screen"), _T("WindowMode"), config.window_mode, config_path);
+#ifdef _WIN32
WritePrivateProfileBool(_T("Screen"), _T("UseD3D9"), config.use_d3d9, config_path);
WritePrivateProfileBool(_T("Screen"), _T("WaitVSync"), config.wait_vsync, config_path);
+#endif
WritePrivateProfileInt(_T("Screen"), _T("StretchType"), config.stretch_type, config_path);
#else
WritePrivateProfileInt(_T("Screen"), _T("WindowMode"), config.window_mode, config_path);
}
}
#endif
+ // input
+#ifdef _WIN32
+ WritePrivateProfileBool(_T("Input"), _T("UseDirectInput"), config.use_direct_input, config_path);
+ WritePrivateProfileBool(_T("Input"), _T("DisableDwm"), config.disable_dwm, config_path);
+#endif
+ WritePrivateProfileBool(_T("Input"), _T("SwapJoyButtons"), config.swap_joy_buttons, config_path);
#if defined(_USE_AGAR) || defined(_USE_QT)
config_path->Fclose();
delete config_path;
for(int drv = 0; drv < MAX_FD; drv++) {
state_fio->FputBool(config.ignore_crc[drv]);
}
- for(int drv = 0; drv < MAX_FD; drv++) {
- state_fio->FputBool(config.fdd_hack_fast_transfer[drv]);
- }
+// for(int drv = 0; drv < MAX_FD; drv++) {
+// state_fio->FputBool(config.fdd_hack_fast_transfer[drv]);
+// }
#endif
#ifdef USE_MONITOR_TYPE
state_fio->FputInt32(config.monitor_type);
#ifdef USE_SOUND_DEVICE_TYPE
state_fio->FputInt32(config.sound_device_type);
#endif
+
}
bool load_config_state(void *f)
for(int drv = 0; drv < MAX_FD; drv++) {
config.ignore_crc[drv] = state_fio->FgetBool();
}
- for(int drv = 0; drv < MAX_FD; drv++) {
- config.fdd_hack_fast_transfer[drv] = state_fio->FgetBool();
- }
+// for(int drv = 0; drv < MAX_FD; drv++) {
+// config.fdd_hack_fast_transfer[drv] = state_fio->FgetBool();
+// }
#endif
#ifdef USE_MONITOR_TYPE
config.monitor_type = state_fio->FgetInt32();
typedef struct {
// control
- bool use_direct_input;
- bool disable_dwm;
-
#ifdef USE_BOOT_MODE
int boot_mode;
#endif
#endif
#ifdef USE_FD1
bool ignore_crc[16];
- bool fdd_hack_fast_transfer[16];
+ //bool fdd_hack_fast_transfer[16];
#endif
#ifdef USE_TAPE
bool tape_sound;
// screen
int window_mode;
+#ifdef _WIN32
bool use_d3d9;
bool wait_vsync;
+#endif
int stretch_type;
#ifdef USE_MONITOR_TYPE
int monitor_type;
int sound_device_type;
#endif
_TCHAR fmgen_dll_path[_MAX_PATH];
+
+ // input
+#ifdef _WIN32
+ bool use_direct_input;
+ bool disable_dwm;
+#endif
+ bool swap_joy_buttons;
} config_t;
extern config_t config;
bool remove = (prn_fio->Ftell() < 2);
prn_fio->Fclose();
if(remove) {
- FILEIO::Remove(bios_path(prn_file_name));
+ FILEIO::RemoveFile(bios_path(prn_file_name));
}
}
}
#endif
}
-#if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
- defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
-
-
-void EMU::write_protect_fd(int drv, bool flag)
-{
-#if defined(USE_DISK_WRITE_PROTECT)
- vm->write_protect_fd(drv, flag);
-#endif
-}
-bool EMU::is_write_protected_fd(int drv)
-{
-#if defined(USE_DISK_WRITE_PROTECT)
- return vm->is_write_protect_fd(drv);
-#else
- return false;
-#endif
-}
-#endif
void EMU::update_media()
{
if(cart_status[drv].path[0] != _T('\0')) {
if(check_file_extension(cart_status[drv].path, _T(".hex")) && hex2bin(cart_status[drv].path, bios_path(_T("hex2bin.$$$")))) {
vm->open_cart(drv, bios_path(_T("hex2bin.$$$")));
- FILEIO::Remove(bios_path(_T("hex2bin.$$$")));
+ FILEIO::RemoveFile(bios_path(_T("hex2bin.$$$")));
} else {
vm->open_cart(drv, cart_status[drv].path);
}
if(drv < MAX_CART) {
if(check_file_extension(file_path, _T(".hex")) && hex2bin(file_path, bios_path(_T("hex2bin.$$$")))) {
vm->open_cart(drv, bios_path(_T("hex2bin.$$$")));
- FILEIO::Remove(bios_path(_T("hex2bin.$$$")));
+ FILEIO::RemoveFile(bios_path(_T("hex2bin.$$$")));
} else {
vm->open_cart(drv, file_path);
}
return false;
}
}
+
+void EMU::set_disk_protected(int drv, bool value)
+{
+ if(drv < MAX_FD) {
+ vm->set_disk_protected(drv, value);
+ }
+}
+
+bool EMU::get_disk_protected(int drv)
+{
+ if(drv < MAX_FD) {
+ return vm->get_disk_protected(drv);
+ } else {
+ return false;
+ }
+}
#endif
int EMU::get_access_lamp(void)
if(drv < MAX_BINARY) {
if(check_file_extension(file_path, _T(".hex")) && hex2bin(file_path, bios_path(_T("hex2bin.$$$")))) {
vm->load_binary(drv, bios_path(_T("hex2bin.$$$")));
- FILEIO::Remove(bios_path(_T("hex2bin.$$$")));
+ FILEIO::RemoveFile(bios_path(_T("hex2bin.$$$")));
} else {
vm->load_binary(drv, file_path);
}
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
- bool is_write_protected_fd(int drv);
- void write_protect_fd(int drv, bool flag);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
+ //bool is_write_protected_fd(int drv);
+ //void write_protect_fd(int drv, bool flag);
#endif
#ifdef USE_QD1
void open_quickdisk(int drv, _TCHAR* file_path);
#endif
}
-bool FILEIO::IsProtected(_TCHAR *filename)
+bool FILEIO::IsFileProtected(_TCHAR *filename)
{
#if defined(_USE_AGAR) || defined(_USE_SDL)
AG_FileInfo inf;
#endif
}
+void FILEIO::RemoveFile(_TCHAR *filename)
+{
+#if defined(_USE_QT)
+ QString fname = (char *)filename;
+ QFile tmpfp;
+ tmpfp.remove(fname);
+
+#else
+ DeleteFile(filename);
+#endif
+// DeleteFile(filename);
+// _tremove(filename); // not supported on wince
+
+}
+
bool FILEIO::Fopen(_TCHAR *filename, int mode)
{
Fclose();
return ftell(fp);
}
-void FILEIO::Remove(_TCHAR *filename)
-{
-#if defined(_USE_QT)
- QString fname = (char *)filename;
- QFile tmpfp;
- tmpfp.remove(fname);
-
-#else
- DeleteFile(filename);
-#endif
-// DeleteFile(filename);
-// _tremove(filename); // not supported on wince
-
-}
public:
FILEIO();
~FILEIO();
+
static bool IsFileExists(_TCHAR *filename);
- bool IsProtected(_TCHAR *filename);
+ static bool IsFileProtected(_TCHAR *filename);
+ static void RemoveFile(_TCHAR *filename);
+
bool Fopen(_TCHAR *filename, int mode);
void Fclose();
bool IsOpened() { return (fp != NULL); }
uint32 Fwrite(void* buffer, uint32 size, uint32 count);
uint32 Fseek(long offset, int origin);
uint32 Ftell();
- static void Remove(_TCHAR *filename);
};
#endif
if(now_rec_sound) {
if(rec_bytes == 0) {
rec->Fclose();
- rec->Remove(sound_file_name);
+ rec->RemoveFile(sound_file_name);
} else {
// update wave header
wavheader_t header;
void write_protect_fd(void);
void no_write_protect_fd(void);
void do_set_ignore_crc_error(bool flag);
- void do_set_fdd_hack_fast_transfer(bool flag);
+ //void do_set_fdd_hack_fast_transfer(bool flag);
void set_screen_aspect(void);
void set_screen_size(void);
class Action_Control *actionInsert_FD[8];
class Action_Control *actionEject_FD[8];
class Action_Control *actionIgnoreCRC[8];
- class Action_Control *actionFDDFastTransfer[8];
+ //class Action_Control *actionFDDFastTransfer[8];
class Action_Control *actionProtection_ON_FD[8];
class Action_Control *actionProtection_OFF_FD[8];
#endif
}
-void Object_Menu_Control::do_set_fdd_hack_fast_transfer(bool flag)
-{
-#ifdef USE_FD1
- config.fdd_hack_fast_transfer[drive] = flag;
-#endif
-}
+//void Object_Menu_Control::do_set_fdd_hack_fast_transfer(bool flag)
+//{
+//#ifdef USE_FD1
+// config.fdd_hack_fast_transfer[drive] = flag;
+//#endif
+//}
// Common Routine
menuFD[drv]->addAction(actionEject_FD[drv]);
menuFD[drv]->addSeparator();
menuFD[drv]->addAction(actionIgnoreCRC[drv]);
- menuFD[drv]->addAction(actionFDDFastTransfer[drv]);
+ //menuFD[drv]->addAction(actionFDDFastTransfer[drv]);
menuFD[drv]->addSeparator();
menuFD_Recent[drv] = new QMenu(menuFD[drv]);
menuFD_Recent[drv]->setObjectName(QString::fromUtf8("Recent_FD", -1) + QString::number(drv));
connect(actionIgnoreCRC[drv], SIGNAL(toggled(bool)),
actionIgnoreCRC[drv]->binds, SLOT(do_set_ignore_crc_error(bool)));
- actionFDDFastTransfer[drv] = new Action_Control(this);
- actionFDDFastTransfer[drv]->setCheckable(true);
- actionFDDFastTransfer[drv]->setVisible(true);
- actionFDDFastTransfer[drv]->binds->setDrive(drv);
- actionFDDFastTransfer[drv]->binds->setNumber(drv);
- if(config.fdd_hack_fast_transfer[drv] == false) {
- actionFDDFastTransfer[drv]->setChecked(false);
- } else {
- actionFDDFastTransfer[drv]->setChecked(true);
- }
- connect(actionFDDFastTransfer[drv], SIGNAL(toggled(bool)),
- actionFDDFastTransfer[drv]->binds, SLOT(do_set_fdd_hack_fast_transfer(bool)));
+ //actionFDDFastTransfer[drv] = new Action_Control(this);
+ //actionFDDFastTransfer[drv]->setCheckable(true);
+ //actionFDDFastTransfer[drv]->setVisible(true);
+ //actionFDDFastTransfer[drv]->binds->setDrive(drv);
+ //actionFDDFastTransfer[drv]->binds->setNumber(drv);
+ //if(config.fdd_hack_fast_transfer[drv] == false) {
+ // actionFDDFastTransfer[drv]->setChecked(false);
+ //} else {
+ // actionFDDFastTransfer[drv]->setChecked(true);
+ //}
+ //connect(actionFDDFastTransfer[drv], SIGNAL(toggled(bool)),
+ // actionFDDFastTransfer[drv]->binds, SLOT(do_set_fdd_hack_fast_transfer(bool)));
actionGroup_Opened_FD[drv] = new QActionGroup(this);
actionRecent_Opened_FD[drv] = new Action_Control(this);
actionInsert_FD[drv]->setText(QApplication::translate("MainWindow", "Insert", 0));
actionEject_FD[drv]->setText(QApplication::translate("MainWindow", "Eject", 0));
actionIgnoreCRC[drv]->setText(QApplication::translate("MainWindow", "Ignore CRC Errors", 0));
- actionFDDFastTransfer[drv]->setText(QApplication::translate("MainWindow", "Hack:Fast Transfer", 0));
+ //actionFDDFastTransfer[drv]->setText(QApplication::translate("MainWindow", "Hack:Fast Transfer", 0));
menuFD_Recent[drv]->setTitle(QApplication::translate("MainWindow", "Recent Opened", 0));
menuFD_D88[drv]->setTitle(QApplication::translate("MainWindow", "Select D88 Image", 0));
#ifdef USE_FD1
if((drv < 0) || (drv >= MAX_FD)) return -1;
if(emu) {
- emu->write_protect_fd(drv, flag);
+ emu->set_disk_protected(drv, flag);
}
#endif
return 0;
if(emu && emu->d88_file[drive].cur_bank != num) {
// emu->open_disk(drive, emu->d88_file[drive].path, emu->d88_file[drive].bank[num].offset);
emu->open_disk(drive, emu->d88_file[drive].path, num);
- if(emu->is_write_protected_fd(drive)) {
+ if(emu->get_disk_protected(drive)) {
actionProtection_ON_FD[drive]->setChecked(true);
} else {
actionProtection_OFF_FD[drive]->setChecked(true);
emu->UnlockVM();
# if defined(USE_DISK_WRITE_PROTECT)
emu->LockVM();
- if(emu->is_write_protected_fd(drv)) {
+ if(emu->get_disk_protected(drv)) {
actionProtection_ON_FD[drv]->setChecked(true);
} else {
actionProtection_OFF_FD[drv]->setChecked(true);
emu->UnlockVM();
# if defined(USE_DISK_WRITE_PROTECT)
emu->LockVM();
- if(emu->is_write_protected_fd(drv2)) {
+ if(emu->get_disk_protected(drv2)) {
actionProtection_ON_FD[drv2]->setChecked(true);
} else {
actionProtection_OFF_FD[drv2]->setChecked(true);
emu->UnlockVM();
# if defined(USE_DISK_WRITE_PROTECT)
emu->LockVM();
- if(emu->is_write_protected_fd(drv)) {
+ if(emu->get_disk_protected(drv)) {
actionProtection_ON_FD[drv]->setChecked(true);
} else {
actionProtection_OFF_FD[drv]->setChecked(true);
emu->UnlockVM();
# if defined(USE_DISK_WRITE_PROTECT)
emu->LockVM();
- if(emu->is_write_protected_fd(drv2)) {
+ if(emu->get_disk_protected(drv2)) {
actionProtection_ON_FD[drv2]->setChecked(true);
} else {
actionProtection_OFF_FD[drv2]->setChecked(true);
--- /dev/null
+message("* qt/mycomz80")
+
+set(s_qt_mycomz80_headers
+ menuclasses.h
+)
+
+if(USE_QT_5)
+ QT5_WRAP_CPP(s_qt_mycomz80_headers_MOC ${s_qt_mycomz80_headers})
+else()
+ QT4_WRAP_CPP(s_qt_mycomz80_headers_MOC ${s_qt_mycomz80_headers})
+endif()
+add_library(qt_mycomz80a
+ MainWindow.cpp
+ ${s_qt_mycomz80_headers_MOC}
+)
+
+
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
- MENUITEM "Hack:Fast Transfer", ID_FDD_FAST_TRANSFER1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
- MENUITEM "Hack:Fast Transfer", ID_FDD_FAST_TRANSFER2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "PSG+WHG+THG", ID_SOUND_DEVICE_TYPE6
MENUITEM "PSG+OPN+WHG+THG", ID_SOUND_DEVICE_TYPE7
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
- MENUITEM "Hack:Fast Transfer", ID_FDD_FAST_TRANSFER1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
- MENUITEM "Hack:Fast Transfer", ID_FDD_FAST_TRANSFER2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "PSG+WHG+THG", ID_SOUND_DEVICE_TYPE6
MENUITEM "PSG+OPN+WHG+THG", ID_SOUND_DEVICE_TYPE7
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
- MENUITEM "Hack:Fast Transfer", ID_FDD_FAST_TRANSFER1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
- MENUITEM "Hack:Fast Transfer", ID_FDD_FAST_TRANSFER2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "OPN+THG", ID_SOUND_DEVICE_TYPE5
MENUITEM "OPN+WHG+THG", ID_SOUND_DEVICE_TYPE7
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent" , ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "Insert", ID_OPEN_FD3\r
MENUITEM "Eject", ID_CLOSE_FD3\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD3\r
END\r
MENUITEM "Insert", ID_OPEN_FD4\r
MENUITEM "Eject", ID_CLOSE_FD4\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD4\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "Insert", ID_OPEN_FD3\r
MENUITEM "Eject", ID_CLOSE_FD3\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD3\r
END\r
MENUITEM "Insert", ID_OPEN_FD4\r
MENUITEM "Eject", ID_CLOSE_FD4\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD4\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "Insert", ID_OPEN_FD3\r
MENUITEM "Eject", ID_CLOSE_FD3\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD3\r
END\r
MENUITEM "Insert", ID_OPEN_FD4\r
MENUITEM "Eject", ID_CLOSE_FD4\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD4\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "Insert", ID_OPEN_FD3\r
MENUITEM "Eject", ID_CLOSE_FD3\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD3\r
END\r
MENUITEM "Insert", ID_OPEN_FD4\r
MENUITEM "Eject", ID_CLOSE_FD4\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD4\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "Insert", ID_OPEN_FD3\r
MENUITEM "Eject", ID_CLOSE_FD3\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD3\r
END\r
MENUITEM "Insert", ID_OPEN_FD4\r
MENUITEM "Eject", ID_CLOSE_FD4\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD4\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "Insert", ID_OPEN_FD3\r
MENUITEM "Eject", ID_CLOSE_FD3\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD3\r
END\r
MENUITEM "Insert", ID_OPEN_FD4\r
MENUITEM "Eject", ID_CLOSE_FD4\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD4\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "Insert", ID_OPEN_FD2\r
MENUITEM "Eject", ID_CLOSE_FD2\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD2\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1\r
MENUITEM "Eject", ID_CLOSE_FD1\r
MENUITEM SEPARATOR\r
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1\r
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1\r
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1\r
MENUITEM SEPARATOR\r
MENUITEM "Recent", ID_RECENT_FD1\r
END\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert" ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert" ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert" ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert" ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "OPN", ID_SOUND_DEVICE_TYPE1
MENUITEM "OPN+OPNA", ID_SOUND_DEVICE_TYPE2
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "Insert", ID_OPEN_FD5
MENUITEM "Eject", ID_CLOSE_FD5
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC5
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD5
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD5
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD5
END
MENUITEM "Insert", ID_OPEN_FD6
MENUITEM "Eject", ID_CLOSE_FD6
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC6
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD6
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD6
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD6
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "Insert", ID_OPEN_FD5
MENUITEM "Eject", ID_CLOSE_FD5
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC5
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD5
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD5
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD5
END
MENUITEM "Insert", ID_OPEN_FD6
MENUITEM "Eject", ID_CLOSE_FD6
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC6
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD6
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD6
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD6
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "Insert", ID_OPEN_FD3
MENUITEM "Eject", ID_CLOSE_FD3
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC3
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD3
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD3
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD3
END
MENUITEM "Insert", ID_OPEN_FD4
MENUITEM "Eject", ID_CLOSE_FD4
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC4
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD4
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD4
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD4
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
#define ID_OPEN_FD1 40101
#define ID_CLOSE_FD1 40102
-#define ID_IGNORE_CRC1 40103
-#define ID_FDD_FAST_TRANSFER1 40104
+#define ID_WRITE_PROTECT_FD1 40103
+#define ID_IGNORE_CRC_FD1 40104
#define ID_RECENT_FD1 40111 // 40111-40118
#define ID_D88_FILE_PATH1 40120
#define ID_SELECT_D88_BANK1 40121 // 40121-40200
#define ID_OPEN_FD2 40201
#define ID_CLOSE_FD2 40202
-#define ID_IGNORE_CRC2 40203
-#define ID_FDD_FAST_TRANSFER2 40204
+#define ID_WRITE_PROTECT_FD2 40203
+#define ID_IGNORE_CRC_FD2 40204
#define ID_RECENT_FD2 40211 // 40211-40218
#define ID_D88_FILE_PATH2 40220
#define ID_SELECT_D88_BANK2 40221 // 40221-40300
#define ID_OPEN_FD3 40301
#define ID_CLOSE_FD3 40302
-#define ID_IGNORE_CRC3 40303
-#define ID_FDD_FAST_TRANSFER3 40304
+#define ID_WRITE_PROTECT_FD3 40303
+#define ID_IGNORE_CRC_FD3 40304
#define ID_RECENT_FD3 40311 // 40311-40318
#define ID_D88_FILE_PATH3 40320
#define ID_SELECT_D88_BANK3 40321 // 40321-40400
#define ID_OPEN_FD4 40401
#define ID_CLOSE_FD4 40402
-#define ID_IGNORE_CRC4 40403
-#define ID_FDD_FAST_TRANSFER4 40404
+#define ID_WRITE_PROTECT_FD4 40403
+#define ID_IGNORE_CRC_FD4 40404
#define ID_RECENT_FD4 40411 // 40411-40418
#define ID_D88_FILE_PATH4 40420
#define ID_SELECT_D88_BANK4 40421 // 40421-40500
#define ID_OPEN_FD5 40501
#define ID_CLOSE_FD5 40502
-#define ID_IGNORE_CRC5 40503
-#define ID_FDD_FAST_TRANSFER5 40504
+#define ID_WRITE_PROTECT_FD5 40503
+#define ID_IGNORE_CRC_FD5 40504
#define ID_RECENT_FD5 40511 // 40511-40518
#define ID_D88_FILE_PATH5 40520
#define ID_SELECT_D88_BANK5 40521 // 40521-40600
#define ID_OPEN_FD6 40601
#define ID_CLOSE_FD6 40602
-#define ID_IGNORE_CRC6 40603
-#define ID_FDD_FAST_TRANSFER6 40604
+#define ID_WRITE_PROTECT_FD6 40603
+#define ID_IGNORE_CRC_FD6 40604
#define ID_RECENT_FD6 40611 // 40611-40618
#define ID_D88_FILE_PATH6 40620
#define ID_SELECT_D88_BANK6 40621 // 40621-40700
#define ID_OPEN_FD7 40701
#define ID_CLOSE_FD7 40702
-#define ID_IGNORE_CRC7 40703
-#define ID_FDD_FAST_TRANSFER7 40704
+#define ID_WRITE_PROTECT_FD7 40703
+#define ID_IGNORE_CRC_FD7 40704
#define ID_RECENT_FD7 40711 // 40711-40718
#define ID_D88_FILE_PATH7 40720
#define ID_SELECT_D88_BANK7 40721 // 40721-40800
#define ID_OPEN_FD8 40801
#define ID_CLOSE_FD8 40802
-#define ID_IGNORE_CRC8 40803
-#define ID_FDD_FAST_TRANSFER8 40804
+#define ID_WRITE_PROTECT_FD7 40803
+#define ID_IGNORE_CRC_FD7 40804
#define ID_RECENT_FD8 40811 // 40811-40818
#define ID_D88_FILE_PATH8 40820
#define ID_SELECT_D88_BANK8 40821 // 40821-40900
#define ID_CAPTURE_DEVICE7 41211
#define ID_CAPTURE_DEVICE8 41212
+#define ID_INPUT_USE_DINPUT 41301
+#define ID_INPUT_DISABLE_DWM 41302
+#define ID_INPUT_SWAP_JOY_BUTTONS 41303
+
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 107
-#define _APS_NEXT_COMMAND_VALUE 41213
+#define _APS_NEXT_COMMAND_VALUE 41304
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// FUJITSU FM-7
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// FUJITSU FM-77
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// FUJITSU FM-77AV
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// FUJITSU FM16pi
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// FUJITSU FMR-30
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// FUJITSU FMR-50
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// FUJITSU FMR-60
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// CASIO FP-200
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// CASIO FP-1100
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// SEGA GAME GEAR
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// EPSON HC-20
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// EPSON HC-40
#define MENU_POS_TAPE 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// EPSON HC-80
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// TOSHIBA J-3100GT
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// TOSHIBA J-3100SL
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// IBM Japan Ltd PC/JX
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// SORD m5
#define MENU_POS_TAPE 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// SEIKO MAP-1010
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SEGA MASTER SYSTEM
#define MENU_POS_CART1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// ASCII MSX1
#define MENU_POS_FD2 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// ASCII MSX2
#define MENU_POS_FD2 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// MITSUBISHI Elec. MULTI8
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// Japan Electronics College MYCOMZ-80A
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SHARP MZ-80A
#define MENU_POS_FD4 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// SHARP MZ-80B
#define MENU_POS_FD4 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// SHARP MZ-80K
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SHARP MZ-700
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SHARP MZ-800
#define MENU_POS_FD2 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP MZ-1200
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SHARP MZ-1500
#define MENU_POS_FD2 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP MZ-2200
#define MENU_POS_FD4 6
#define MENU_POS_SCREEN 7
#define MENU_POS_SOUND 8
+#define MENU_POS_INPUT 9
#endif
// SHARP MZ-2500
#define MENU_POS_TAPE 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// SHARP MZ-2800
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP MZ-3500
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP MZ-5500
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP MZ-6500
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP MZ-6550
#define MENU_POS_FD4 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// NEC N5200
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// TOSHIBA PASOPIA
#define MENU_POS_BINARY1 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// TOSHIBA PASOPIA7
#define MENU_POS_BINARY2 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// NEC PC-6001
#define MENU_POS_TAPE 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// NEC PC-6001mkII
#define MENU_POS_TAPE 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// NEC PC-6001mkIISR
#define MENU_POS_TAPE 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// NEC PC-6601
#define MENU_POS_TAPE 6
#define MENU_POS_SCREEN 7
#define MENU_POS_SOUND 8
+#define MENU_POS_INPUT 9
#endif
// NEC PC-6601SR
#define MENU_POS_TAPE 6
#define MENU_POS_SCREEN 7
#define MENU_POS_SOUND 8
+#define MENU_POS_INPUT 9
#endif
// NEC PC-8001mkIISR
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// NEC PC-8201
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// NEC PC-8201A
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// NEC PC-8801MA
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// NEC PC-9801
#define MENU_POS_TAPE 7
#define MENU_POS_SCREEN 8
#define MENU_POS_SOUND 9
+#define MENU_POS_INPUT 10
#endif
// NEC PC-9801E/F/M
#define MENU_POS_TAPE 7
#define MENU_POS_SCREEN 8
#define MENU_POS_SOUND 9
+#define MENU_POS_INPUT 10
#endif
// NEC PC-9801U
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// NEC PC-9801VF
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// NEC PC-9801VM
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// NEC PC-98DO
#define MENU_POS_TAPE 5
#define MENU_POS_SCREEN 6
#define MENU_POS_SOUND 7
+#define MENU_POS_INPUT 8
#endif
// NEC PC-98HA
#define MENU_POS_FD1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// NEC PC-98LT
#define MENU_POS_FD1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// NEC PC-100
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// NEC-HE PC Engine
#define MENU_POS_CART1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SANYO PHC-20
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SANYO PHC-25
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// CASIO PV-1000
#define MENU_POS_CART1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// CASIO PV-2000
#define MENU_POS_TAPE 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// PIONEER PX-7
#define MENU_POS_LASER_DISC 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// TOMY PYUTA
#define MENU_POS_TAPE 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// EPSON QC-10
#define MENU_POS_FD2 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// BANDAI RX-78
#define MENU_POS_TAPE 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// SEGA SC-3000
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// EPOCH Super Cassette Vision
#define MENU_POS_CART1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// NEC TK-80BS (COMPO BS/80)
#define MENU_POS_TAPE 2
#define MENU_POS_SCREEN 3
#define MENU_POS_SOUND 4
+#define MENU_POS_INPUT 5
#endif
// CANON X-07
#define MENU_POS_TAPE 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
// SHARP X1
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// SHARP X1twin
#define MENU_POS_CART1 4
#define MENU_POS_SCREEN 5
#define MENU_POS_SOUND 6
+#define MENU_POS_INPUT 7
#endif
// SHARP X1turbo
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// SHARP X1turboZ
#define MENU_POS_TAPE 3
#define MENU_POS_SCREEN 4
#define MENU_POS_SOUND 5
+#define MENU_POS_INPUT 6
#endif
// SHINKO SANGYO YS-6464A
#define MENU_POS_CART1 1
#define MENU_POS_SCREEN 2
#define MENU_POS_SOUND 3
+#define MENU_POS_INPUT 4
#endif
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "300msec", ID_SOUND_LATE3
MENUITEM "400msec", ID_SOUND_LATE4
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "CZ-8BS1 x1", ID_SOUND_DEVICE_TYPE1
MENUITEM "CZ-8BS1 x2", ID_SOUND_DEVICE_TYPE2
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "CZ-8BS1 x1", ID_SOUND_DEVICE_TYPE1
MENUITEM "CZ-8BS1 x2", ID_SOUND_DEVICE_TYPE2
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "CZ-8BS1 x1", ID_SOUND_DEVICE_TYPE1
MENUITEM "CZ-8BS1 x2", ID_SOUND_DEVICE_TYPE2
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
#endif // \89p\8cê (\95Ä\8d\91) resources
MENUITEM "Insert", ID_OPEN_FD1
MENUITEM "Eject", ID_CLOSE_FD1
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC1
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD1
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD1
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD1
END
MENUITEM "Insert", ID_OPEN_FD2
MENUITEM "Eject", ID_CLOSE_FD2
MENUITEM SEPARATOR
- MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC2
+ MENUITEM "Write Protected", ID_WRITE_PROTECT_FD2
+ MENUITEM "Ignore CRC Errors", ID_IGNORE_CRC_FD2
MENUITEM SEPARATOR
MENUITEM "Recent", ID_RECENT_FD2
END
MENUITEM "CZ-8BS1 x1", ID_SOUND_DEVICE_TYPE1
MENUITEM "CZ-8BS1 x2", ID_SOUND_DEVICE_TYPE2
END
+ POPUP "Input"
+ BEGIN
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS
+ END
END
MENUITEM "300msec", ID_SOUND_LATE3\r
MENUITEM "400msec", ID_SOUND_LATE4\r
END\r
+ POPUP "Input"\r
+ BEGIN\r
+ MENUITEM "Use DirectInput", ID_INPUT_USE_DINPUT\r
+ MENUITEM "Disable Windows 8 DWM", ID_INPUT_DISABLE_DWM\r
+ MENUITEM "Swap Joystick Buttons", ID_INPUT_SWAP_JOY_BUTTONS\r
+ END\r
END\r
\r
\r
_tcscpy_s(orig_path, _MAX_PATH, path);
_tcscpy_s(dest_path, _MAX_PATH, path);
_stprintf_s(temp_path, _MAX_PATH, _T("%s.$$$"), path);
- temporary = false;
- // check if file protected
- write_protected = fi->IsProtected(path);
+ temporary = false;
+ write_protected = false; //FILEIO::IsFileProtected(path);
// is this d88 format ?
if(check_file_extension(path, _T(".d88")) || check_file_extension(path, _T(".d77"))) {
fi->Fclose();
}
if(temporary) {
- FILEIO::Remove(temp_path);
+ FILEIO::RemoveFile(temp_path);
}
if(inserted) {
+ if(buffer[0x1a] != 0) {
+ buffer[0x1a] = 0x10;
+ write_protected = true;
+ }
#if 0
if(converted) {
// write image
#endif
crc32 = getcrc32(buffer, file_size.d);
}
- if(buffer[0x1a] != 0) {
- write_protected = true;
- }
if(media_type == MEDIA_TYPE_UNK) {
if((media_type = buffer[0x1b]) == MEDIA_TYPE_2HD) {
for(int trkside = 0; trkside < 164; trkside++) {
}
}
}
- // FIXME: ugly patch for X1turbo ALPHA and Batten Tanuki
is_special_disk = 0;
-#if defined(_X1) || defined(_X1TWIN) || defined(_X1TURBO) || defined(_X1TURBOZ)
+#if defined(_FM7) || defined(_FM8) || defined(_FM77_VARIANTS) || defined(_FM77AV_VARIANTS)
+ // FIXME: ugly patch for FM-7 Gambler Jiko Chuushin Ha
if(media_type == MEDIA_TYPE_2D) {
- // check first sector
+ // check first track
+ pair offset, sector_num, data_size;
+ offset.read_4bytes_le_from(buffer + 0x20);
+ if(IS_VALID_TRACK(offset.d)) {
+ // check the sector (c,h,r,n)=(0,0,7,1)
+ uint8* t = buffer + offset.d;
+ sector_num.read_2bytes_le_from(t + 4);
+ for(int i = 0; i < sector_num.sd; i++) {
+ data_size.read_2bytes_le_from(t + 14);
+ if(data_size.sd == 0x100 && t[0] == 0 && t[1] == 0 && t[2] == 7 && t[3] == 1) {
+ static const uint8 gambler[] = {0xb7, 0xde, 0xad, 0xdc, 0xdd, 0xcc, 0xde, 0xd7, 0xb1, 0x20, 0xbc, 0xde, 0xba, 0xc1, 0xad, 0xb3, 0xbc, 0xdd, 0xca};
+ if(memcmp((void *)(t + 0x30), gambler, sizeof(gambler)) == 0) {
+ is_special_disk = SPECIAL_DISK_FM7_GAMBLER;
+ }
+ break;
+ }
+ t += data_size.sd + 0x10;
+ }
+ }
+ }
+#elif defined(_X1) || defined(_X1TWIN) || defined(_X1TURBO) || defined(_X1TURBOZ)
+ // FIXME: ugly patch for X1turbo ALPHA and Batten Tanuki
+ if(media_type == MEDIA_TYPE_2D) {
+ // check first track
pair offset;
offset.read_4bytes_le_from(buffer + 0x20);
if(IS_VALID_TRACK(offset.d)) {
+ // check first sector
static const uint8 batten[] = {0xca, 0xde, 0xaf, 0xc3, 0xdd, 0x20, 0xc0, 0xc7, 0xb7};
uint8 *t = buffer + offset.d;
if(strncmp((char *)(t + 0x11), "turbo ALPHA", 11) == 0) {
trim_buffer();
trim_required = false;
}
- if(!write_protected && file_size.d && getcrc32(buffer, file_size.d) != crc32) {
+ buffer[0x1a] = write_protected ? 0x10 : 0; // mey be changed
+
+ if(/*!write_protected &&*/ file_size.d && getcrc32(buffer, file_size.d) != crc32) {
// write image
FILEIO* fio = new FILEIO();
int pre_size = 0, post_size = 0;
fio->Fclose();
}
}
- if(!fio->Fopen(dest_path, FILEIO_WRITE_BINARY)) {
+ if((FILEIO::IsFileExists(dest_path) && FILEIO::IsFileProtected(dest_path)) || !fio->Fopen(dest_path, FILEIO_WRITE_BINARY)) {
_TCHAR tmp_path[_MAX_PATH];
_stprintf_s(tmp_path, _MAX_PATH, _T("temporary_saved_floppy_disk_#%d.d88"), drive_num);
fio->Fopen(emu->bios_path(tmp_path), FILEIO_WRITE_BINARY);
#define DRIVE_TYPE_144 MEDIA_TYPE_144
#define DRIVE_TYPE_UNK MEDIA_TYPE_UNK
-#define SPECIAL_DISK_X1_ALPHA 1
-#define SPECIAL_DISK_X1_BATTEN 2
+// this value will be stored to the state file,
+// so don't change these definitions
+#define SPECIAL_DISK_X1_ALPHA 1
+#define SPECIAL_DISK_X1_BATTEN 2
+#define SPECIAL_DISK_FM7_GAMBLER 11
// d88 constant
#define DISK_BUFFER_SIZE 0x380000 // 3.5MB
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
--- /dev/null
+cmake_minimum_required (VERSION 2.6)
+
+message("* vm/fm7")
+
+add_library(vm_fm7
+ display.cpp
+ keyboard.cpp
+ sound.cpp
+ floppy.cpp
+ fm7_mainio.cpp
+ fm7_mainmem.cpp
+ kanjirom.cpp
+ fm7.cpp
+ mb61vh010.cpp
+)
\ No newline at end of file
--- /dev/null
+message("* vm/fm7/vram/generic")
+
+add_library(fm7_vram-generic api_vram256k.c
+ api_vram4096.c
+ api_vram8.c
+ api_vramvec.c
+)
\ No newline at end of file
--- /dev/null
+message("* vm/fm7/vram/sse2")
+
+#set(CMAKE_BUILD_SETTING_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -msse -mmmx")
+add_compile_options(-msse2 -msse -mmmx)
+add_library(fm7_vram-sse2 api_vram256k.c
+ api_vram4096.c
+ api_vram8.c
+ api_vramvec.c
+)
#ifdef USE_DEBUGGER
#include "../debugger.h"
#endif
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
#include "../dummydevice.h"
+#else
+#define SIG_DUMMYDEVICE_BIT0 0
+#define SIG_DUMMYDEVICE_BIT1 1
+#define SIG_DUMMYDEVICE_BIT2 2
+#endif
#include "../datarec.h"
#include "../disk.h"
display = new DISPLAY(this, emu);
mainmem = new FM7_MAINMEM(this, emu);
mainio = new FM7_MAINIO(this, emu);
+
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
led_terminate = new DUMMYDEVICE(this, emu);
-
+#else
+ led_terminate = new DEVICE(this, emu);
+#endif
maincpu = new MC6809(this, emu);
subcpu = new MC6809(this, emu);
#ifdef WITH_Z80
}
#endif // SUPPORT_DUMMY_DEVICE_LED
+
// ----------------------------------------------------------------------------
// debugger
// ----------------------------------------------------------------------------
return fdc->disk_inserted(drv);
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+void VM::set_disk_protected(int drv, bool value)
{
- fdc->write_protect_fd(drv, flag);
+ fdc->set_disk_protected(drv, value);
}
-bool VM::is_write_protect_fd(int drv)
+bool VM::get_disk_protected(int drv)
{
- return fdc->is_write_protect_fd(drv);
+ return fdc->get_disk_protected(drv);
}
-#endif
void VM::play_tape(_TCHAR* file_path)
{
class MB8877;
class MEMORY;
class DATAREC;
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
class DUMMYDEVICE;
+#endif
class DISPLAY;
#if defined(_FM77AV_VARIANTS)
MC6809* maincpu;
FM7_MAINMEM* mainmem;
FM7_MAINIO* mainio;
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
DUMMYDEVICE* led_terminate;
+#else
+ DEVICE* led_terminate;
+#endif
MB8877* fdc;
YM2203* opn[3];
YM2203* psg; // Is right? AY-3-8910 is right device.
void special_reset();
void run();
double frame_rate();
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
uint32 get_led_status();
+#endif
#ifdef USE_DEBUGGER
// debugger
void open_disk(int drv, _TCHAR* file_path, int offset);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
if(fio->Fopen(memcard_path[i], FILEIO_READ_BINARY)) {
fio->Fseek(0, FILEIO_SEEK_END);
memcard_blocks[i] = fio->Ftell() / BLOCK_SIZE;
- memcard_protected[i] = fio->IsProtected(memcard_path[i]);
+ memcard_protected[i] = FILEIO::IsFileProtected(memcard_path[i]);
fio->Fclose();
}
}
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
/// return fdc->disk_inserted(drv);
///}
+///void VM::set_disk_protected(int drv, bool value)
+///{
+/// fdc->set_disk_protected(drv, value);
+///}
+
+///bool VM::get_disk_protected(int drv)
+///{
+/// return fdc->get_disk_protected(drv);
+///}
+
///void VM::play_tape(_TCHAR* file_path)
///{
/// drec->play_tape(file_path);
/// void open_disk(int drv, _TCHAR* file_path, int bank);
/// void close_disk(int drv);
/// bool disk_inserted(int drv);
+/// void set_disk_protected(int drv, bool value);
+/// bool get_disk_protected(int drv);
/// void play_tape(_TCHAR* file_path);
/// void rec_tape(_TCHAR* file_path);
/// void close_tape();
return fdc_tf20->disk_inserted(drv);
}
-#if defined(USE_DISK_WRITE_PROTECT)
-bool VM::is_write_protect_fd(int drv)
+
+void VM::set_disk_protected(int drv, bool value)
{
- return fdc_tf20->is_write_protect_fd(drv);
+ fdc_tf20->set_disk_protected(drv, value);
}
-void VM::write_protect_fd(int drv, bool flag)
+bool VM::get_disk_protected(int drv)
{
- fdc_tf20->write_protect_fd(drv, flag);
+ return fdc_tf20->get_disk_protected(drv);
}
-#endif
void VM::play_tape(_TCHAR* file_path)
{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- bool is_write_protect_fd(int drv);
- void write_protect_fd(int drv, bool flag);
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return tf20->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ tf20->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return tf20->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return tf20->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ tf20->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return tf20->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
double usec = disk[drvreg]->get_usec_per_bytes(1) - passed_usec(prev_drq_clock); \
if(usec < 4) { \
usec = 4; \
- } else if(usec > 24 && disk[drvreg]->is_special_disk == SPECIAL_DISK_X1_ALPHA) { \
- usec = 24; \
- } else if(config.fdd_hack_fast_transfer[drvreg]) { \
+ } \
+ if(disk[drvreg]->is_special_disk == SPECIAL_DISK_X1_ALPHA) { \
+ if(usec > 24) { \
+ usec = 24; \
+ } \
+ } else if(disk[drvreg]->is_special_disk == SPECIAL_DISK_FM7_GAMBLER) { \
usec = 4; \
- }\
+ } \
if(register_id[EVENT_DRQ] != -1) { \
cancel_event(this, register_id[EVENT_DRQ]); \
register_id[EVENT_DRQ] = -1; \
status |= FDC_ST_LOSTDATA;
cmdtype = 0;
set_irq(true);
+#ifdef _FDC_DEBUG_LOG
+ emu->out_debug_log(_T("FDC\tEND OF ID FIELD\n"));
+#endif
} else {
REGISTER_DRQ_EVENT();
}
// get access status
uint32 stat = 0;
- switch(ch) {
-#if 0
- case SIG_MB8877_CMDPHASE:
- return (uint32)cmdtype;
- break;
- case SIG_MB8877_SIDEREG:
- return (uint32)sidereg;
- break;
- case SIG_MB8877_MOTOR:
- return motor_on ? 0xffffffff : 0;
- break;
- case SIG_MB8877_READ_DRIVE_REG:
- return (uint32)drvreg;
- break;
- case 0:
-#endif
- default:
- for(int i = 0; i < MAX_DRIVE; i++) {
- if(fdc[i].access) {
- stat |= 1 << i;
- }
- fdc[i].access = false;
- }
- if(now_search) {
- stat |= 1 << drvreg;
+ for(int i = 0; i < MAX_DRIVE; i++) {
+ if(fdc[i].access) {
+ stat |= 1 << i;
}
- return stat;
- break;
+ fdc[i].access = false;
+ }
+ if(now_search) {
+ stat |= 1 << drvreg;
}
+ return stat;
}
void MB8877::event_callback(int event_id, int err)
}
if(seektrk == fdc[drvreg].track) {
// auto update
- if((cmdreg & 0xf0) == 0) {
+ //if((cmdreg & 0xf0) == 0) {
datareg = seektrk;
- }
+ //}
status |= search_track();
now_seek = false;
set_irq(true);
if((cmdreg & 0x10) || ((cmdreg & 0xf0) == 0)) {
trkreg = fdc[drvreg].track;
}
- if((cmdreg & 0xf0) == 0) {
+ //if((cmdreg & 0xf0) == 0) {
datareg = seektrk;
- }
+ //}
status |= search_track();
now_seek = false;
CANCEL_EVENT(EVENT_SEEK);
seektrk = 0;
seekvct = true;
-#if 1
if(fdc[drvreg].track != seektrk) {
REGISTER_SEEK_EVENT();
} else {
REGISTER_EVENT(EVENT_SEEKEND, 300.0 * 1000.0);
}
-#else
- fdc[drvreg].track = seektrk;
- if((cmdreg & 0x10) || ((cmdreg & 0xf0) == 0)) {
- trkreg = fdc[drvreg].track;
- }
- if((cmdreg & 0xf0) == 0) {
- datareg = seektrk;
- }
- status |= search_track();
- now_seek = false;
- set_irq(true);
#ifdef _FDC_DEBUG_LOG
emu->out_debug_log(_T("FDC\tSEEKn"));
#endif
-#endif
}
void MB8877::cmd_seek()
seektrk = (seektrk > 83) ? 83 : (seektrk < 0) ? 0 : seektrk;
seekvct = !(datareg > trkreg);
-#if 1
if(fdc[drvreg].track != seektrk) {
REGISTER_SEEK_EVENT();
} else {
REGISTER_EVENT(EVENT_SEEKEND, 300.0 * 1000.0);
}
-#else
- fdc[drvreg].track = seektrk;
- if((cmdreg & 0x10) || ((cmdreg & 0xf0) == 0)) {
- trkreg = fdc[drvreg].track;
- }
- if((cmdreg & 0xf0) == 0) {
- datareg = seektrk;
- }
- status |= search_track();
- now_seek = false;
- set_irq(true);
#ifdef _FDC_DEBUG_LOG
emu->out_debug_log(_T("FDC\tSEEKn"));
#endif
-#endif
}
void MB8877::cmd_step()
seektrk = (fdc[drvreg].track < 83) ? fdc[drvreg].track + 1 : 83;
seekvct = false;
-#if 1
if(fdc[drvreg].track != seektrk) {
REGISTER_SEEK_EVENT();
} else {
REGISTER_EVENT(EVENT_SEEKEND, 300.0 * 1000.0);
}
-#else
- fdc[drvreg].track = seektrk;
- if((cmdreg & 0x10) || ((cmdreg & 0xf0) == 0)) {
- trkreg = fdc[drvreg].track;
- }
- if((cmdreg & 0xf0) == 0) {
- datareg = seektrk;
- }
- status |= search_track();
- now_seek = false;
- set_irq(true);
#ifdef _FDC_DEBUG_LOG
emu->out_debug_log(_T("FDC\tSEEKn"));
#endif
-#endif
- //REGISTER_SEEK_EVENT();
- //REGISTER_EVENT(EVENT_SEEKEND, 300);
}
void MB8877::cmd_stepout()
seektrk = (fdc[drvreg].track > 0) ? fdc[drvreg].track - 1 : 0;
seekvct = true;
-#if 1
if(fdc[drvreg].track != seektrk) {
REGISTER_SEEK_EVENT();
} else {
REGISTER_EVENT(EVENT_SEEKEND, 300.0 * 1000.0);
}
-#else
- fdc[drvreg].track = seektrk;
- if((cmdreg & 0x10) || ((cmdreg & 0xf0) == 0)) {
- trkreg = fdc[drvreg].track;
- }
- if((cmdreg & 0xf0) == 0) {
- datareg = seektrk;
- }
- status |= search_track();
- now_seek = false;
- set_irq(true);
#ifdef _FDC_DEBUG_LOG
emu->out_debug_log(_T("FDC\tSEEKn"));
#endif
-#endif
- //REGISTER_SEEK_EVENT();
- //REGISTER_EVENT(EVENT_SEEKEND, 300);
}
void MB8877::cmd_readdata()
cmdtype = (cmdreg & 0x10) ? FDC_CMD_RD_MSEC : FDC_CMD_RD_SEC;
int side = (cmdreg & 2) ? ((cmdreg & 8) ? 1 : 0) : sidereg;
status = FDC_ST_BUSY;
- status_tmp = search_sector(trkreg, side, secreg, ((cmdreg & 2) != 0));
+ //status_tmp = search_sector(trkreg, side, secreg, ((cmdreg & 2) != 0));
+ status_tmp = search_sector();
now_search = true;
double time;
{
// type-2 write data
cmdtype = (cmdreg & 0x10) ? FDC_CMD_WR_MSEC : FDC_CMD_WR_SEC;
- int side = (cmdreg & 2) ? ((cmdreg & 8) ? 1 : 0) : sidereg;
status = FDC_ST_BUSY;
- status_tmp = search_sector(trkreg, side, secreg, ((cmdreg & 2) != 0)) & ~FDC_ST_RECTYPE;
+ status_tmp = search_sector() & ~FDC_ST_RECTYPE;
now_search = true;
double time;
uint8 MB8877::search_track()
{
- int trk = fdc[drvreg].track;
- int trkside = trk * 2 + (sidereg & 1);
-
- if(!(disk[drvreg]->inserted && disk[drvreg]->check_media_type())) {
- return FDC_ST_SEEKERR;
- }
- if(!(0 <= trkside && trkside < 164)) {
+ // get track
+ if(!disk[drvreg]->get_track(fdc[drvreg].track, sidereg)){
return FDC_ST_SEEKERR;
}
// verify track number
- disk[drvreg]->get_track(trk, sidereg);
if(!(cmdreg & 4)) {
return 0;
}
for(int i = 0; i < disk[drvreg]->sector_num.sd; i++) {
- disk[drvreg]->get_sector(trk, sidereg, i);
+ disk[drvreg]->get_sector(-1, -1, i);
if(disk[drvreg]->id[0] == trkreg) {
return 0;
}
return FDC_ST_SEEKERR;
}
-uint8 MB8877::search_sector(int trk, int side, int sct, bool compare)
+uint8 MB8877::search_sector()
{
// get track
- if(!disk[drvreg]->get_track(trk, side)) {
+ if(!disk[drvreg]->get_track(fdc[drvreg].track, sidereg)) {
set_irq(true);
return FDC_ST_RECNFND;
}
for(int i = 0; i < sector_num; i++) {
// get sector
int index = (first_sector + i) % sector_num;
- disk[drvreg]->get_sector(trk, side, index);
+ disk[drvreg]->get_sector(-1, -1, index);
// check id
+// if(disk[drvreg]->id[0] != trkreg) {
+// continue;
+// }
if((cmdreg & 2) && (disk[drvreg]->id[1] & 1) != ((cmdreg >> 3) & 1)) {
continue;
}
- if(disk[drvreg]->id[2] != sct) {
+ if(disk[drvreg]->id[2] != secreg) {
continue;
}
uint8 MB8877::search_addr()
{
- int trk = fdc[drvreg].track;
-
// get track
- if(!disk[drvreg]->get_track(trk, sidereg)) {
+ if(!disk[drvreg]->get_track(fdc[drvreg].track, sidereg)) {
set_irq(true);
return FDC_ST_RECNFND;
}
}
// get sector
- if(disk[drvreg]->get_sector(trk, sidereg, first_sector)) {
+ if(disk[drvreg]->get_sector(-1, -1, first_sector)) {
fdc[drvreg].next_trans_position = disk[drvreg]->id_position[first_sector];
fdc[drvreg].next_sync_position = disk[drvreg]->sync_position[first_sector];
fdc[drvreg].index = 0;
return false;
}
+void MB8877::set_disk_protected(int drv, bool value)
+{
+ if(drv < MAX_DRIVE) {
+ disk[drv]->write_protected = value;
+ }
+}
+
+bool MB8877::get_disk_protected(int drv)
+{
+ if(drv < MAX_DRIVE) {
+ return disk[drv]->write_protected;
+ }
+ return false;
+}
+
void MB8877::set_drive_type(int drv, uint8 type)
{
if(drv < MAX_DRIVE) {
#define SIG_MB8877_DRIVEREG 0
#define SIG_MB8877_SIDEREG 1
#define SIG_MB8877_MOTOR 2
-#define SIG_MB8877_CMDPHASE 3
-#define SIG_MB8877_READ_DRIVE_REG 4
+//#define SIG_MB8877_CMDPHASE 3
+//#define SIG_MB8877_READ_DRIVE_REG 4
class DISK;
// image handler
uint8 search_track();
- uint8 search_sector(int trk, int side, int sct, bool compare);
+ uint8 search_sector();
uint8 search_addr();
// command
void open_disk(int drv, _TCHAR path[], int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void set_drive_type(int drv, uint8 type);
uint8 get_drive_type(int drv);
void set_drive_rpm(int drv, int rpm);
void set_drive_mfm(int drv, bool mfm);
uint8 fdc_status();
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drive, bool flag) {
- if((drive >= MAX_DRIVE) || (drive < 0)) return;
- disk[drive]->write_protected = flag;
- }
- bool is_write_protect_fd(int drive) {
- if((drive >= MAX_DRIVE) || (drive < 0)) return true; // Protected
- return disk[drive]->write_protected;
- }
-#endif
};
#endif
AF = 0x0801; // record not found
return true;
}
- if(disk[drv]->crc_error && !config.ignore_crc[drv]) {
+ if(disk[drv]->crc_error && !disk[drv]->ignore_crc()) {
AF = 0x0401; // data crc error
return true;
}
AF = 0x0801; // record not found
return true;
}
- if(disk[drv]->crc_error && !config.ignore_crc[drv]) {
+ if(disk[drv]->crc_error && !disk[drv]->ignore_crc()) {
AF = 0x0401; // data crc error
return true;
}
AF = 0x0c01; // other error
return true;
}
- if(disk[drv]->crc_error && !config.ignore_crc[drv]) {
+ if(disk[drv]->crc_error && !disk[drv]->ignore_crc()) {
AF = 0x0401; // data crc error
return true;
}
return false;
}
+void MEMORY::set_disk_protected(int drv, bool value)
+{
+ if(drv < MAX_DRIVE) {
+ disk[drv]->write_protected = value;
+ }
+}
+
+bool MEMORY::get_disk_protected(int drv)
+{
+ if(drv < MAX_DRIVE) {
+ return disk[drv]->write_protected;
+ }
+ return false;
+}
+
#endif
#define STATE_VERSION 1
void open_disk(int drv, _TCHAR path[], int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
#endif
};
return memory->disk_inserted(drv);
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+
+void VM::set_disk_protected(int drv, bool value)
{
- //fdc->write_protect_fd(drv, flag);
+ memory->set_disk_protected(drv, value);
}
- bool VM::is_write_protect_fd(int drv)
+
+bool VM::get_disk_protected(int drv)
{
- //return fdc->is_write_protect_fd(drv);
- return false;
+ return memory->get_disk_protected(drv);
}
-#endif
//int VM::access_lamp()
//{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
//int access_lamp();
#endif
bool now_skip();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
cmt->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
bool value = drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
#ifdef SUPPORT_QUICK_DISK
void VM::open_quickdisk(int drv, _TCHAR* file_path)
{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
#ifdef SUPPORT_QUICK_DISK
void open_quickdisk(int drv, _TCHAR* file_path);
void close_quickdisk(int drv);
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
}
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
-{
- fdc->write_protect_fd(drv, flag);
-}
-
-bool VM::is_write_protect_fd(int drv)
-{
- return fdc->is_write_protect_fd(drv);
-}
-#endif
-
void VM::open_disk(int drv, _TCHAR* file_path, int bank)
{
fdc->open_disk(drv, file_path, bank);
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
#endif
bool VM::now_skip()
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-# if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-# endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
#endif
bool now_skip();
}
}
set_insert(true);
- set_protect(fio->IsProtected(path));
+ set_protect(FILEIO::IsFileProtected(path));
set_home(true);
fio->Fclose();
{
return fdc->disk_inserted(drv);
}
-# if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
-{
- fdc->write_protect_fd(drv, flag);
-}
-
-bool VM::is_write_protect_fd(int drv)
-{
- return fdc->is_write_protect_fd(drv);
-}
-# endif
#endif
{
return drec->get_tape_ptr();
}
+
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
#endif
void VM::push_play()
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
- #if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
- #endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
#endif
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return false;
}
+void FLOPPY::set_disk_protected(int drv, bool value)
+{
+ if(drv < 2) {
+ disk[drv]->write_protected = value;
+ }
+}
+
+bool FLOPPY::get_disk_protected(int drv)
+{
+ if(drv < 2) {
+ return disk[drv]->write_protected;
+ }
+ return false;
+}
+
#define STATE_VERSION 1
void FLOPPY::save_state(FILEIO* state_fio)
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- bool is_write_protect_fd(int drv) {
- if(drv < 2) return disk[drv]->write_protected;
- return false;
- }
- void write_protect_fd(int drv, bool flag) {
- if(drv < 2) disk[drv]->write_protected = flag;
- }
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
};
#endif
}
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+void VM::set_disk_protected(int drv, bool value)
{
#if defined(_PC6601) || defined(_PC6601SR)
if(drv < 2) {
- return floppy->write_protect_fd(drv, flag);
+ floppy->set_disk_protected(drv, value);
+ return;
} else {
drv -= 2;
}
#endif
if(support_pc80s31k) {
- return fdc_pc80s31k->write_protect_fd(drv, flag);
+ fdc_pc80s31k->set_disk_protected(drv, value);
} else {
- return pc6031->write_protect_fd(drv, flag);
+ pc6031->set_disk_protected(drv, value);
}
}
-bool VM::is_write_protect_fd(int drv)
+bool VM::get_disk_protected(int drv)
{
#if defined(_PC6601) || defined(_PC6601SR)
if(drv < 2) {
- return floppy->is_write_protect_fd(drv);
+ return floppy->get_disk_protected(drv);
} else {
drv -= 2;
}
#endif
if(support_pc80s31k) {
- return fdc_pc80s31k->is_write_protect_fd(drv);
+ return fdc_pc80s31k->get_disk_protected(drv);
} else {
- return pc6031->is_write_protect_fd(drv);
+ return pc6031->get_disk_protected(drv);
}
- return false;
}
-#endif
void VM::play_tape(_TCHAR* file_path)
{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- bool is_write_protect_fd(int drv);
- void write_protect_fd(int drv, bool flag);
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return false;
}
+void PC6031::set_disk_protected(int drv, bool value)
+{
+ if(drv < 2) {
+ disk[drv]->write_protected = value;
+ }
+}
+
+bool PC6031::get_disk_protected(int drv)
+{
+ if(drv < 2) {
+ return disk[drv]->write_protected;
+ }
+ return false;
+}
+
#define STATE_VERSION 1
void PC6031::save_state(FILEIO* state_fio)
void close_disk(int drv);
bool disk_inserted(int drv);
bool disk_ejected(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- bool is_write_protect_fd(int drv) {
- if(drv < 2) return disk[drv]->write_protected;
- return false;
- }
- void write_protect_fd(int drv, bool flag) {
- if(drv < 2) disk[drv]->write_protected = flag;
- }
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
};
#endif
#define SIG_PC88_SB2_IRQ 2
#endif
#define SIG_PC88_USART_OUT 3
-#define SIG_PC88_DATAREC_MIX 3
-#define SIG_PC88_DATAREC_VOLUME 4
+#define SIG_PC88_DATAREC_MIX 4
+#define SIG_PC88_DATAREC_VOLUME 5
#if defined(_USE_AGAR) || defined(_USE_SDL)
#undef _MAX_PATH
return pc88fdc_sub->disk_inserted(drv);
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+void VM::set_disk_protected(int drv, bool value)
{
- pc88fdc_sub->write_protect_fd(drv, flag);
+ pc88fdc_sub->set_disk_protected(drv, value);
}
-bool VM::is_write_protect_fd(int drv)
+bool VM::get_disk_protected(int drv)
{
- return pc88fdc_sub->is_write_protect_fd(drv);
+ return pc88fdc_sub->get_disk_protected(drv);
}
-#endif
void VM::play_tape(_TCHAR* file_path)
{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
#if defined(USE_TAPE_PTR)
int get_tape_ptr();
#endif
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
// ----------------------------------------
// for each device
// ----------------------------------------
void event_callback(int event_id, int err);
void save_state(FILEIO* state_fio);
bool load_state(FILEIO* state_fio);
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
// unique functions
#if defined(SUPPORT_2HD_FDD_IF)
void set_context_fdc_2hd(UPD765A* device)
return false;
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+
+void VM::set_disk_protected(int drv, bool value)
{
- if(drv < 0) return;
#if defined(_PC9801) || defined(_PC9801E)
- if(drv < 2) {
- fdc_2hd->write_protect_fd(drv, flag);
- } else if(drv < 4) {
- fdc_2dd->write_protect_fd(drv - 2, flag);
- } else if(drv < 6) {
- fdc_sub->write_protect_fd(drv - 4, flag);
- }
+ if(drv == 0 || drv == 1) {
+ fdc_2hd->set_disk_protected(drv, value);
+ } else if(drv == 2 || drv == 3) {
+ fdc_2dd->set_disk_protected(drv - 2, value);
+ } else if(drv == 4 || drv == 5) {
+ fdc_sub->set_disk_protected(drv - 4, value);
+ }
#elif defined(_PC9801VF) || defined(_PC9801U)
- if(drv < 4) {
- fdc_2dd->write_protect_fd(drv, flag);
- }
+ if(drv == 0 || drv == 1) {
+ fdc_2dd->set_disk_protected(drv, value);
+ }
#elif defined(_PC98DO)
- if(drv < 2) {
- fdc->write_protect_fd(drv, flag);
- } else if(drv < 4) {
- pc88fdc_sub->write_protect_fd(drv - 2, flag);
- }
+ if(drv == 0 || drv == 1) {
+ fdc->set_disk_protected(drv, value);
+ } else if(drv == 2 || drv == 3) {
+ pc88fdc_sub->set_disk_protected(drv - 2, value);
+ }
#else
- if(drv < 4) {
- fdc->write_protect_fd(drv, flag);
- }
+ if(drv == 0 || drv == 1) {
+ fdc->set_disk_protected(drv, value);
+ }
#endif
-
}
-bool VM::is_write_protect_fd(int drv)
+bool VM::get_disk_protected(int drv)
{
- if(drv < 0) return false;
#if defined(_PC9801) || defined(_PC9801E)
- if(drv < 2) {
- return fdc_2hd->is_write_protect_fd(drv);
- } else if(drv < 4) {
- return fdc_2dd->is_write_protect_fd(drv - 2);
- } else if(drv < 6) {
- return fdc_sub->is_write_protect_fd(drv - 4);
- }
+ if(drv == 0 || drv == 1) {
+ return fdc_2hd->get_disk_protected(drv);
+ } else if(drv == 2 || drv == 3) {
+ return fdc_2dd->get_disk_protected(drv - 2);
+ } else if(drv == 4 || drv == 5) {
+ return fdc_sub->get_disk_protected(drv - 4);
+ }
#elif defined(_PC9801VF) || defined(_PC9801U)
- if(drv < 4) {
- return fdc_2dd->is_write_protect_fd(drv);
- }
+ if(drv == 0 || drv == 1) {
+ return fdc_2dd->get_disk_protected(drv);
+ }
#elif defined(_PC98DO)
- if(drv < 2) {
- return fdc->is_write_protect_fd(drv);
- } else if(drv < 4) {
- return pc88fdc_sub->is_write_protect_fd(drv - 2);
- }
+ if(drv == 0 || drv == 1) {
+ return fdc->get_disk_protected(drv);
+ } else if(drv == 2 || drv == 3) {
+ return pc88fdc_sub->get_disk_protected(drv - 2);
+ }
#else
- if(drv < 4) {
- return fdc->is_write_protect_fd(drv);
- }
+ if(drv == 0 || drv == 1) {
+ return fdc->get_disk_protected(drv);
+ }
#endif
- return false;
+ return false;
}
-#endif
#if defined(SUPPORT_CMT_IF) || defined(_PC98DO)
void VM::play_tape(_TCHAR* file_path)
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
#if defined(SUPPORT_CMT_IF) || defined(_PC98DO)
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
return fdc->disk_inserted(drv);
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+
+void VM::set_disk_protected(int drv, bool value)
{
- if(drv < 0) return;
- if(drv < 4) {
- fdc->write_protect_fd(drv, flag);
- }
+ fdc->set_disk_protected(drv, value);
}
-bool VM::is_write_protect_fd(int drv)
+bool VM::get_disk_protected(int drv)
{
- if(drv < 0) return false;
- if(drv < 2) {
- return fdc->is_write_protect_fd(drv);
- }
- return false;
+ return fdc->get_disk_protected(drv);
}
-#endif
bool VM::now_skip()
{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
void update_config();
void save_state(FILEIO* state_fio);
bool load_state(FILEIO* state_fio);
return false;
}
+void PTF20::set_disk_protected(int drv, bool value)
+{
+ if(drv < MAX_DRIVE) {
+ disk[drv]->write_protected = value;
+ }
+}
+
+bool PTF20::get_disk_protected(int drv)
+{
+ if(drv < MAX_DRIVE) {
+ return disk[drv]->write_protected;
+ }
+ return false;
+}
+
#define STATE_VERSION 1
void PTF20::save_state(FILEIO* state_fio)
void open_disk(int drv, _TCHAR path[], int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
};
#endif
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
bool VM::now_skip()
{
return event->now_skip();
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
bool now_skip();
void update_config();
return fdc->disk_inserted(drv);
}
+void VM::set_disk_protected(int drv, bool value)
+{
+ fdc->set_disk_protected(drv, value);
+}
+
+bool VM::get_disk_protected(int drv)
+{
+ return fdc->get_disk_protected(drv);
+}
+
void VM::play_tape(_TCHAR* file_path)
{
drec->play_tape(file_path);
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
return disk_ejected(drv);
}
+void UPD765A::set_disk_protected(int drv, bool value)
+{
+ if(drv < MAX_DRIVE) {
+ disk[drv]->write_protected = value;
+ }
+}
+
+bool UPD765A::get_disk_protected(int drv)
+{
+ if(drv < MAX_DRIVE) {
+ return disk[drv]->write_protected;
+ }
+ return false;
+}
+
uint8 UPD765A::media_type(int drv)
{
if(drv < MAX_DRIVE && disk[drv]->inserted) {
bool disk_inserted(); // current hdu
bool disk_ejected(int drv);
bool disk_ejected(); // current hdu
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
uint8 media_type(int drv);
void set_drive_type(int drv, uint8 type);
uint8 get_drive_type(int drv);
void set_drive_rpm(int drv, int rpm);
void set_drive_mfm(int drv, bool mfm);
bool raise_irq_when_media_changed;
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drive, bool flag) {
- if((drive >= 4) || (drive < 0)) return;
- disk[drive]->write_protected = flag;
- }
- bool is_write_protect_fd(int drive) {
- if((drive >= 4) || (drive < 0)) return true; // Protected
- return disk[drive]->write_protected;
- }
-#endif
};
#endif
return fdc->disk_inserted(drv);
}
-#if defined(USE_DISK_WRITE_PROTECT)
-void VM::write_protect_fd(int drv, bool flag)
+void VM::set_disk_protected(int drv, bool value)
{
- fdc->write_protect_fd(drv, flag);
+ fdc->set_disk_protected(drv, value);
}
- bool VM::is_write_protect_fd(int drv)
+
+bool VM::get_disk_protected(int drv)
{
- return fdc->is_write_protect_fd(drv);
+ return fdc->get_disk_protected(drv);
}
-#endif
void VM::play_tape(_TCHAR* file_path)
{
void open_disk(int drv, _TCHAR* file_path, int bank);
void close_disk(int drv);
bool disk_inserted(int drv);
-#if defined(USE_DISK_WRITE_PROTECT)
- void write_protect_fd(int drv, bool flag);
- bool is_write_protect_fd(int drv);
-#endif
+ void set_disk_protected(int drv, bool value);
+ bool get_disk_protected(int drv);
void play_tape(_TCHAR* file_path);
void rec_tape(_TCHAR* file_path);
void close_tape();
if(key_status[KEY_TO_JOY_BUTTON_4]) joy_status[0] |= 0x80;
#endif
#endif
+ // swap joystick buttons
+ if(config.swap_joy_buttons) {
+ for(int i = 0; i < joy_num && i < 2; i++) {
+ uint32 b0 = joy_status[i] & 0xaaaaaaa0;
+ uint32 b1 = joy_status[i] & 0x55555550;
+ joy_status[i] = (joy_status[i] & 0x0f) | (b0 >> 1) | (b1 << 1);
+ }
+ }
// update mouse status
memset(mouse_status, 0, sizeof(mouse_status));
if(now_rec_sound) {
if(rec_bytes == 0) {
rec->Fclose();
- FILEIO::Remove(sound_file_name);
+ FILEIO::RemoveFile(sound_file_name);
} else {
// update wave header
wav_header_t wav_header;
return interval;
}
+// os version
+
+OSVERSIONINFO osvi;
+
+#define VISTA_OR_LATER (osvi.dwMajorVersion > 6 || (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion >= 2))
+
// windows main
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int iCmdShow);
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int iCmdShow)
{
+ // get os version
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx((OSVERSIONINFO*)&osvi);
+
// load config
load_config();
switch(iMsg) {
case WM_CREATE:
// XXX: no gui to change config.disable_dwm, so we need to modify *.ini file manually
- if(config.disable_dwm) {
+ if(config.disable_dwm && VISTA_OR_LATER) {
// disable dwm
HMODULE hLibrary = LoadLibrary(_T("dwmapi.dll"));
if(hLibrary) {
CART_MENU_ITEMS(1, ID_OPEN_CART2, ID_CLOSE_CART2, ID_RECENT_CART2)
#endif
#ifdef USE_FD1
- #define FD_MENU_ITEMS(drv, ID_OPEN_FD, ID_CLOSE_FD, ID_IGNORE_CRC, ID_FDD_FAST_TRANSFER, ID_RECENT_FD, ID_SELECT_D88_BANK) \
+ #define FD_MENU_ITEMS(drv, ID_OPEN_FD, ID_CLOSE_FD, ID_WRITE_PROTECT_FD, ID_IGNORE_CRC_FD, ID_RECENT_FD, ID_SELECT_D88_BANK) \
case ID_OPEN_FD: \
if(emu) { \
open_disk_dialog(hWnd, drv); \
close_disk(drv); \
} \
break; \
- case ID_IGNORE_CRC: \
- config.ignore_crc[drv] = !config.ignore_crc[drv]; \
+ case ID_WRITE_PROTECT_FD: \
+ if(emu) { \
+ emu->set_disk_protected(drv, !emu->get_disk_protected(drv)); \
+ } \
break; \
- case ID_FDD_FAST_TRANSFER: \
- config.fdd_hack_fast_transfer[drv] = !config.fdd_hack_fast_transfer[drv]; \
+ case ID_IGNORE_CRC_FD: \
+ config.ignore_crc[drv] = !config.ignore_crc[drv]; \
break; \
case ID_RECENT_FD + 0: \
case ID_RECENT_FD + 1: \
emu->d88_file[drv].cur_bank = no; \
} \
break;
- FD_MENU_ITEMS(0, ID_OPEN_FD1, ID_CLOSE_FD1, ID_IGNORE_CRC1, ID_FDD_FAST_TRANSFER1, ID_RECENT_FD1, ID_SELECT_D88_BANK1)
+ FD_MENU_ITEMS(0, ID_OPEN_FD1, ID_CLOSE_FD1, ID_WRITE_PROTECT_FD1, ID_IGNORE_CRC_FD1, ID_RECENT_FD1, ID_SELECT_D88_BANK1)
#endif
#ifdef USE_FD2
- FD_MENU_ITEMS(1, ID_OPEN_FD2, ID_CLOSE_FD2, ID_IGNORE_CRC2, ID_FDD_FAST_TRANSFER2, ID_RECENT_FD2, ID_SELECT_D88_BANK2)
+ FD_MENU_ITEMS(1, ID_OPEN_FD2, ID_CLOSE_FD2, ID_WRITE_PROTECT_FD2, ID_IGNORE_CRC_FD2, ID_RECENT_FD2, ID_SELECT_D88_BANK2)
#endif
#ifdef USE_FD3
- FD_MENU_ITEMS(2, ID_OPEN_FD3, ID_CLOSE_FD3, ID_IGNORE_CRC3, ID_FDD_FAST_TRANSFER3, ID_RECENT_FD3, ID_SELECT_D88_BANK3)
+ FD_MENU_ITEMS(2, ID_OPEN_FD3, ID_CLOSE_FD3, ID_WRITE_PROTECT_FD3, ID_IGNORE_CRC_FD3, ID_RECENT_FD3, ID_SELECT_D88_BANK3)
#endif
#ifdef USE_FD4
- FD_MENU_ITEMS(3, ID_OPEN_FD4, ID_CLOSE_FD4, ID_IGNORE_CRC4, ID_FDD_FAST_TRANSFER4, ID_RECENT_FD4, ID_SELECT_D88_BANK4)
+ FD_MENU_ITEMS(3, ID_OPEN_FD4, ID_CLOSE_FD4, ID_WRITE_PROTECT_FD4, ID_IGNORE_CRC_FD4, ID_RECENT_FD4, ID_SELECT_D88_BANK4)
#endif
#ifdef USE_FD5
- FD_MENU_ITEMS(4, ID_OPEN_FD5, ID_CLOSE_FD5, ID_IGNORE_CRC5, ID_FDD_FAST_TRANSFER5, ID_RECENT_FD5, ID_SELECT_D88_BANK5)
+ FD_MENU_ITEMS(4, ID_OPEN_FD5, ID_CLOSE_FD5, ID_WRITE_PROTECT_FD5, ID_IGNORE_CRC_FD5, ID_RECENT_FD5, ID_SELECT_D88_BANK5)
#endif
#ifdef USE_FD6
- FD_MENU_ITEMS(5, ID_OPEN_FD6, ID_CLOSE_FD6, ID_IGNORE_CRC6, ID_FDD_FAST_TRANSFER6, ID_RECENT_FD6, ID_SELECT_D88_BANK6)
+ FD_MENU_ITEMS(5, ID_OPEN_FD6, ID_CLOSE_FD6, ID_WRITE_PROTECT_FD6, ID_IGNORE_CRC_FD6, ID_RECENT_FD6, ID_SELECT_D88_BANK6)
#endif
#ifdef USE_FD7
- FD_MENU_ITEMS(6, ID_OPEN_FD7, ID_CLOSE_FD7, ID_IGNORE_CRC7, ID_FDD_FAST_TRANSFER7, ID_RECENT_FD7, ID_SELECT_D88_BANK7)
+ FD_MENU_ITEMS(6, ID_OPEN_FD7, ID_CLOSE_FD7, ID_WRITE_PROTECT_FD7, ID_IGNORE_CRC_FD7, ID_RECENT_FD7, ID_SELECT_D88_BANK7)
#endif
#ifdef USE_FD8
- FD_MENU_ITEMS(7, ID_OPEN_FD8, ID_CLOSE_FD8, ID_IGNORE_CRC8, ID_FDD_FAST_TRANSFER8, ID_RECENT_FD8, ID_SELECT_D88_BANK8)
+ FD_MENU_ITEMS(7, ID_OPEN_FD8, ID_CLOSE_FD8, ID_WRITE_PROTECT_FD8, ID_IGNORE_CRC_FD8, ID_RECENT_FD8, ID_SELECT_D88_BANK8)
#endif
#ifdef USE_QD1
#define QD_MENU_ITEMS(drv, ID_OPEN_QD, ID_CLOSE_QD, ID_RECENT_QD) \
}
break;
#endif
+ case ID_INPUT_USE_DINPUT:
+ config.use_direct_input = !config.use_direct_input;
+ break;
+ case ID_INPUT_DISABLE_DWM:
+ config.disable_dwm = !config.disable_dwm;
+ break;
+ case ID_INPUT_SWAP_JOY_BUTTONS:
+ config.swap_joy_buttons = !config.swap_joy_buttons;
+ break;
#ifdef USE_BUTTON
case ID_BUTTON + 0:
case ID_BUTTON + 1:
#endif
#ifdef MENU_POS_FD1
else if(pos == MENU_POS_FD1) {
- #define UPDATE_MENU_FD(drv, ID_RECENT_FD, ID_D88_FILE_PATH, ID_SELECT_D88_BANK, ID_CLOSE_FD, ID_IGNORE_CRC, ID_FDD_FAST_TRANSFER) \
+ #define UPDATE_MENU_FD(drv, ID_RECENT_FD, ID_D88_FILE_PATH, ID_SELECT_D88_BANK, ID_CLOSE_FD, ID_WRITE_PROTECT_FD, ID_IGNORE_CRC_FD) \
bool flag = false; \
- while(DeleteMenu(hMenu, 5, MF_BYPOSITION) != 0) {} \
+ while(DeleteMenu(hMenu, 6, MF_BYPOSITION) != 0) {} \
if(emu->d88_file[drv].bank_num > 1) { \
AppendMenu(hMenu, MF_STRING | MF_DISABLED, ID_D88_FILE_PATH, emu->d88_file[drv].path); \
for(int i = 0; i < emu->d88_file[drv].bank_num; i++) { \
AppendMenu(hMenu, MF_GRAYED | MF_STRING, ID_RECENT_FD, _T("None")); \
} \
EnableMenuItem(hMenu, ID_CLOSE_FD, emu->disk_inserted(drv) ? MF_ENABLED : MF_GRAYED); \
- CheckMenuItem(hMenu, ID_IGNORE_CRC, config.ignore_crc[drv] ? MF_CHECKED : MF_UNCHECKED); \
- CheckMenuItem(hMenu, ID_FDD_FAST_TRANSFER, config.fdd_hack_fast_transfer[drv] ? MF_CHECKED : MF_UNCHECKED);
+ EnableMenuItem(hMenu, ID_WRITE_PROTECT_FD, emu->disk_inserted(drv) ? MF_ENABLED : MF_GRAYED); \
+ CheckMenuItem(hMenu, ID_WRITE_PROTECT_FD, emu->get_disk_protected(drv) ? MF_CHECKED : MF_UNCHECKED); \
+ CheckMenuItem(hMenu, ID_IGNORE_CRC_FD, config.ignore_crc[drv] ? MF_CHECKED : MF_UNCHECKED);
// floppy drive #1
- UPDATE_MENU_FD(0, ID_RECENT_FD1, ID_D88_FILE_PATH1, ID_SELECT_D88_BANK1, ID_CLOSE_FD1, ID_IGNORE_CRC1, ID_FDD_FAST_TRANSFER1)
+ UPDATE_MENU_FD(0, ID_RECENT_FD1, ID_D88_FILE_PATH1, ID_SELECT_D88_BANK1, ID_CLOSE_FD1, ID_WRITE_PROTECT_FD1, ID_IGNORE_CRC_FD1)
}
#endif
#ifdef MENU_POS_FD2
else if(pos == MENU_POS_FD2) {
// floppy drive #2
- UPDATE_MENU_FD(1, ID_RECENT_FD2, ID_D88_FILE_PATH2, ID_SELECT_D88_BANK2, ID_CLOSE_FD2, ID_IGNORE_CRC2, ID_FDD_FAST_TRANSFER2)
+ UPDATE_MENU_FD(1, ID_RECENT_FD2, ID_D88_FILE_PATH2, ID_SELECT_D88_BANK2, ID_CLOSE_FD2, ID_WRITE_PROTECT_FD2, ID_IGNORE_CRC_FD2)
}
#endif
#ifdef MENU_POS_FD3
else if(pos == MENU_POS_FD3) {
// floppy drive #3
- UPDATE_MENU_FD(2, ID_RECENT_FD3, ID_D88_FILE_PATH3, ID_SELECT_D88_BANK3, ID_CLOSE_FD3, ID_IGNORE_CRC3, ID_FDD_FAST_TRANSFER3)
+ UPDATE_MENU_FD(2, ID_RECENT_FD3, ID_D88_FILE_PATH3, ID_SELECT_D88_BANK3, ID_CLOSE_FD3, ID_WRITE_PROTECT_FD3, ID_IGNORE_CRC_FD3)
}
#endif
#ifdef MENU_POS_FD4
else if(pos == MENU_POS_FD4) {
// floppy drive #4
- UPDATE_MENU_FD(3, ID_RECENT_FD4, ID_D88_FILE_PATH4, ID_SELECT_D88_BANK4, ID_CLOSE_FD4, ID_IGNORE_CRC4, ID_FDD_FAST_TRANSFER4)
+ UPDATE_MENU_FD(3, ID_RECENT_FD4, ID_D88_FILE_PATH4, ID_SELECT_D88_BANK4, ID_CLOSE_FD4, ID_WRITE_PROTECT_FD4, ID_IGNORE_CRC_FD4)
}
#endif
#ifdef MENU_POS_FD5
else if(pos == MENU_POS_FD5) {
// floppy drive #5
- UPDATE_MENU_FD(4, ID_RECENT_FD5, ID_D88_FILE_PATH5, ID_SELECT_D88_BANK5, ID_CLOSE_FD5, ID_IGNORE_CRC5, ID_FDD_FAST_TRANSFER5)
+ UPDATE_MENU_FD(4, ID_RECENT_FD5, ID_D88_FILE_PATH5, ID_SELECT_D88_BANK5, ID_CLOSE_FD5, ID_WRITE_PROTECT_FD5, ID_IGNORE_CRC_FD5)
}
#endif
#ifdef MENU_POS_FD6
else if(pos == MENU_POS_FD6) {
// floppy drive #6
- UPDATE_MENU_FD(5, ID_RECENT_FD6, ID_D88_FILE_PATH6, ID_SELECT_D88_BANK6, ID_CLOSE_FD6, ID_IGNORE_CRC6, ID_FDD_FAST_TRANSFER6)
+ UPDATE_MENU_FD(5, ID_RECENT_FD6, ID_D88_FILE_PATH6, ID_SELECT_D88_BANK6, ID_CLOSE_FD6, ID_WRITE_PROTECT_FD6, ID_IGNORE_CRC_FD6)
}
#endif
#ifdef MENU_POS_FD7
else if(pos == MENU_POS_FD7) {
// floppy drive #7
- UPDATE_MENU_FD(6, ID_RECENT_FD7, ID_D88_FILE_PATH7, ID_SELECT_D88_BANK7, ID_CLOSE_FD7, ID_IGNORE_CRC7, ID_FDD_FAST_TRANSFER7)
+ UPDATE_MENU_FD(6, ID_RECENT_FD7, ID_D88_FILE_PATH7, ID_SELECT_D88_BANK7, ID_CLOSE_FD7, ID_WRITE_PROTECT_FD7, ID_IGNORE_CRC_FD7)
}
#endif
#ifdef MENU_POS_FD8
else if(pos == MENU_POS_FD8) {
// floppy drive #8
- UPDATE_MENU_FD(7, ID_RECENT_FD8, ID_D88_FILE_PATH8, ID_SELECT_D88_BANK8, ID_CLOSE_FD8, ID_IGNORE_CRC8, ID_FDD_FAST_TRANSFER8)
+ UPDATE_MENU_FD(7, ID_RECENT_FD8, ID_D88_FILE_PATH8, ID_SELECT_D88_BANK8, ID_CLOSE_FD8, ID_WRITE_PROTECT_FD8, ID_IGNORE_CRC_FD8)
}
#endif
#ifdef MENU_POS_QD1
EnableMenuItem(hMenu, ID_CAPTURE_CLOSE, (cur_index != -1) ? MF_ENABLED : MF_GRAYED);
}
#endif
+#ifdef MENU_POS_INPUT
+ else if(pos == MENU_POS_INPUT) {
+ // input menu
+ CheckMenuItem(hMenu, ID_INPUT_USE_DINPUT, config.use_direct_input ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(hMenu, ID_INPUT_DISABLE_DWM, config.disable_dwm ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(hMenu, ID_INPUT_SWAP_JOY_BUTTONS, config.swap_joy_buttons ? MF_CHECKED : MF_UNCHECKED);
+ EnableMenuItem(hMenu, ID_INPUT_DISABLE_DWM, VISTA_OR_LATER ? MF_ENABLED : MF_GRAYED);
+ }
+#endif
DrawMenuBar(hWnd);
}