OSDN Git Service

[VM][UI][Qt] General : Merge upstream 2015-08-01.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Sat, 1 Aug 2015 06:57:30 +0000 (15:57 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Sat, 1 Aug 2015 06:57:30 +0000 (15:57 +0900)
183 files changed:
history.txt
source/build-cmake/babbage2nd/CMakeLists.txt [new file with mode: 0644]
source/src/config.cpp
source/src/config.h
source/src/emu.cpp
source/src/emu.h
source/src/fileio.cpp
source/src/fileio.h
source/src/qt/common/sdl_sound.cpp
source/src/qt/gui/commonclasses.h
source/src/qt/gui/mainwidget.h
source/src/qt/gui/menu_disk.cpp
source/src/qt/gui/util_fd.cpp
source/src/qt/mycomz80a/CMakeLists.txt [new file with mode: 0644]
source/src/res/familybasic.rc
source/src/res/fm16pi.rc
source/src/res/fm7.rc
source/src/res/fm77.rc
source/src/res/fm77av.rc
source/src/res/fmr30.rc
source/src/res/fmr50_i286.rc
source/src/res/fmr50_i386.rc
source/src/res/fmr50_i486.rc
source/src/res/fmr60.rc
source/src/res/fmr70.rc
source/src/res/fmr80.rc
source/src/res/fp1100.rc
source/src/res/fp200.rc
source/src/res/gamegear.rc
source/src/res/hc20.rc
source/src/res/hc40.rc
source/src/res/hc80.rc
source/src/res/j3100.rc
source/src/res/jx.rc
source/src/res/m5.rc
source/src/res/map1010.rc
source/src/res/mastersystem.rc
source/src/res/msx1.rc
source/src/res/msx2.rc
source/src/res/multi8.rc
source/src/res/mycomz80a.rc
source/src/res/mz1200.rc
source/src/res/mz1500.rc
source/src/res/mz2200.rc
source/src/res/mz2500.rc
source/src/res/mz2800.rc
source/src/res/mz3500.rc
source/src/res/mz5500.rc
source/src/res/mz6500.rc
source/src/res/mz6550.rc
source/src/res/mz700.rc
source/src/res/mz800.rc
source/src/res/mz80a.rc
source/src/res/mz80b.rc
source/src/res/mz80k.rc
source/src/res/n5200.rc
source/src/res/pasopia.rc
source/src/res/pasopia7.rc
source/src/res/pc100.rc
source/src/res/pc6001.rc
source/src/res/pc6001mk2.rc
source/src/res/pc6001mk2sr.rc
source/src/res/pc6601.rc
source/src/res/pc6601sr.rc
source/src/res/pc8001mk2sr.rc
source/src/res/pc8201.rc
source/src/res/pc8801ma.rc
source/src/res/pc9801.rc
source/src/res/pc9801e.rc
source/src/res/pc9801u.rc
source/src/res/pc9801vf.rc
source/src/res/pc9801vm.rc
source/src/res/pc98do.rc
source/src/res/pc98ha.rc
source/src/res/pc98lt.rc
source/src/res/pcengine.rc
source/src/res/phc20.rc
source/src/res/phc25.rc
source/src/res/pv1000.rc
source/src/res/pv2000.rc
source/src/res/px7.rc
source/src/res/pyuta.rc
source/src/res/qc10.rc
source/src/res/qc10cms.rc
source/src/res/resource.h
source/src/res/rx78.rc
source/src/res/sc3000.rc
source/src/res/scv.rc
source/src/res/tk80bs.rc
source/src/res/x07.rc
source/src/res/x1.rc
source/src/res/x1turbo.rc
source/src/res/x1turboz.rc
source/src/res/x1twin.rc
source/src/res/z80tvgame.rc
source/src/vm/disk.cpp
source/src/vm/disk.h
source/src/vm/fm16pi/fm16pi.cpp
source/src/vm/fm16pi/fm16pi.h
source/src/vm/fm7/20150429/CMakeLists.txt [new file with mode: 0644]
source/src/vm/fm7/20150429/vram/generic/CMakeLists.txt [new file with mode: 0644]
source/src/vm/fm7/20150429/vram/sse2/CMakeLists.txt [new file with mode: 0644]
source/src/vm/fm7/fm7.cpp
source/src/vm/fm7/fm7.h
source/src/vm/fmr30/fmr30.cpp
source/src/vm/fmr30/fmr30.h
source/src/vm/fmr50/bios.cpp
source/src/vm/fmr50/fmr50.cpp
source/src/vm/fmr50/fmr50.h
source/src/vm/fp1100/fp1100.cpp
source/src/vm/fp1100/fp1100.h
source/src/vm/gamegear/gamegear.cpp
source/src/vm/gamegear/gamegear.h
source/src/vm/gamegear/mastersystem.cpp
source/src/vm/gamegear/mastersystem.h
source/src/vm/hc20/hc20.cpp
source/src/vm/hc20/hc20.h
source/src/vm/hc40/hc40.cpp
source/src/vm/hc40/hc40.h
source/src/vm/hc80/hc80.cpp
source/src/vm/hc80/hc80.h
source/src/vm/j3100/j3100.cpp
source/src/vm/j3100/j3100.h
source/src/vm/jx/jx.cpp
source/src/vm/jx/jx.h
source/src/vm/mb8877.cpp
source/src/vm/mb8877.h
source/src/vm/msx/memory.cpp
source/src/vm/msx/memory.h
source/src/vm/msx/msx.cpp
source/src/vm/msx/msx.h
source/src/vm/multi8/multi8.cpp
source/src/vm/multi8/multi8.h
source/src/vm/mz2500/mz2500.cpp
source/src/vm/mz2500/mz2500.h
source/src/vm/mz2500/mz80b.cpp
source/src/vm/mz2500/mz80b.h
source/src/vm/mz2800/mz2800.cpp
source/src/vm/mz2800/mz2800.h
source/src/vm/mz3500/mz3500.cpp
source/src/vm/mz3500/mz3500.h
source/src/vm/mz5500/mz5500.cpp
source/src/vm/mz5500/mz5500.h
source/src/vm/mz700/mz700.cpp
source/src/vm/mz700/mz700.h
source/src/vm/mz700/quickdisk.cpp
source/src/vm/mz80k/mz80k.cpp
source/src/vm/mz80k/mz80k.h
source/src/vm/n5200/n5200.cpp
source/src/vm/n5200/n5200.h
source/src/vm/pasopia/pasopia.cpp
source/src/vm/pasopia/pasopia.h
source/src/vm/pasopia7/pasopia7.cpp
source/src/vm/pasopia7/pasopia7.h
source/src/vm/pc100/pc100.cpp
source/src/vm/pc100/pc100.h
source/src/vm/pc6001/floppy.cpp
source/src/vm/pc6001/floppy.h
source/src/vm/pc6001/pc6001.cpp
source/src/vm/pc6001/pc6001.h
source/src/vm/pc6031.cpp
source/src/vm/pc6031.h
source/src/vm/pc8801/pc88.h
source/src/vm/pc8801/pc8801.cpp
source/src/vm/pc8801/pc8801.h
source/src/vm/pc9801/floppy.h
source/src/vm/pc9801/pc9801.cpp
source/src/vm/pc9801/pc9801.h
source/src/vm/pc98ha/pc98ha.cpp
source/src/vm/pc98ha/pc98ha.h
source/src/vm/ptf20.cpp
source/src/vm/ptf20.h
source/src/vm/qc10/qc10.cpp
source/src/vm/qc10/qc10.h
source/src/vm/sc3000/sc3000.cpp
source/src/vm/sc3000/sc3000.h
source/src/vm/upd765a.cpp
source/src/vm/upd765a.h
source/src/vm/x1/x1.cpp
source/src/vm/x1/x1.h
source/src/win32_input.cpp
source/src/win32_sound.cpp
source/src/winmain.cpp

index 9929e92..0df1afd 100644 (file)
@@ -1,8 +1,30 @@
+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.)
diff --git a/source/build-cmake/babbage2nd/CMakeLists.txt b/source/build-cmake/babbage2nd/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8ac6a38
--- /dev/null
@@ -0,0 +1,74 @@
+# 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)
index 940e621..2997ab9 100644 (file)
@@ -194,11 +194,16 @@ void init_config()
        // 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
@@ -229,7 +234,7 @@ void init_config()
        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;
@@ -301,9 +306,6 @@ void load_config()
    
        
        // 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
@@ -328,18 +330,18 @@ void load_config()
                        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
@@ -411,8 +413,10 @@ void load_config()
        // 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);
@@ -448,6 +452,9 @@ void load_config()
 #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"),
@@ -463,6 +470,11 @@ void load_config()
                }
        }
 #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;
@@ -496,9 +508,6 @@ void save_config()
        _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
@@ -523,17 +532,17 @@ void save_config()
                        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
@@ -604,8 +613,10 @@ void save_config()
        // 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);
@@ -656,6 +667,12 @@ void save_config()
                }
        }
 #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;
@@ -692,9 +709,9 @@ void save_config_state(void *f)
        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);
@@ -702,6 +719,7 @@ void save_config_state(void *f)
 #ifdef USE_SOUND_DEVICE_TYPE
        state_fio->FputInt32(config.sound_device_type);
 #endif
+       
 }
 
 bool load_config_state(void *f)
@@ -730,9 +748,9 @@ 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();
index 9b92d21..1b97163 100644 (file)
@@ -108,9 +108,6 @@ bool load_config_state(void *f);
 
 typedef struct {
        // control
-       bool use_direct_input;
-       bool disable_dwm;
-       
 #ifdef USE_BOOT_MODE
        int boot_mode;
 #endif
@@ -129,7 +126,7 @@ typedef struct {
 #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;
@@ -169,8 +166,10 @@ typedef struct {
        
        // screen
        int window_mode;
+#ifdef _WIN32
        bool use_d3d9;
        bool wait_vsync;
+#endif
        int stretch_type;
 #ifdef USE_MONITOR_TYPE
        int monitor_type;
@@ -202,6 +201,13 @@ typedef struct {
        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;
index 74854f8..0b0fc28 100644 (file)
@@ -430,7 +430,7 @@ void EMU::close_printer_file()
                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));
                }
        }
 }
@@ -611,25 +611,6 @@ void EMU::initialize_media()
 #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()
 {
@@ -674,7 +655,7 @@ void EMU::restore_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);
                        }
@@ -717,7 +698,7 @@ void EMU::open_cart(int drv, _TCHAR* file_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);
                }
@@ -796,6 +777,22 @@ bool EMU::disk_inserted(int drv)
                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)
@@ -979,7 +976,7 @@ void EMU::load_binary(int drv, _TCHAR* file_path)
        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);
                }
index 346d93e..5208b08 100644 (file)
@@ -843,8 +843,10 @@ public:
        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);
index 7f2045c..99a5244 100644 (file)
@@ -41,7 +41,7 @@ bool FILEIO::IsFileExists(_TCHAR *filename)
 #endif
 }
 
-bool FILEIO::IsProtected(_TCHAR *filename)
+bool FILEIO::IsFileProtected(_TCHAR *filename)
 {
 #if defined(_USE_AGAR) || defined(_USE_SDL)
         AG_FileInfo inf;
@@ -62,6 +62,21 @@ bool FILEIO::IsProtected(_TCHAR *filename)
 #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();
@@ -548,17 +563,3 @@ uint32 FILEIO::Ftell()
        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
-
-}
index e8153fc..f422659 100644 (file)
@@ -41,8 +41,11 @@ private:
 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); }
@@ -103,7 +106,6 @@ public:
        uint32 Fwrite(void* buffer, uint32 size, uint32 count);
        uint32 Fseek(long offset, int origin);
        uint32 Ftell();
-       static void Remove(_TCHAR *filename);
 };
 
 #endif
index f2129ff..b7365b0 100644 (file)
@@ -383,7 +383,7 @@ void EMU::stop_rec_sound()
        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;
index 875c4ce..1e5866a 100644 (file)
@@ -126,7 +126,7 @@ public slots:
        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);
index ccc4f2e..9e13cc9 100644 (file)
@@ -177,7 +177,7 @@ class Ui_MainWindow : public QMainWindow
        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];
index ea9448b..976b2a1 100644 (file)
@@ -47,12 +47,12 @@ void Object_Menu_Control::do_set_ignore_crc_error(bool 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   
-}
+//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
@@ -113,7 +113,7 @@ void Ui_MainWindow::CreateFloppyPulldownMenu(int drv)
        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));
@@ -181,18 +181,18 @@ void Ui_MainWindow::ConfigFloppyMenuSub(int 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);
@@ -288,7 +288,7 @@ void Ui_MainWindow::retranslateFloppyMenu(int drv, int basedrv)
        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));
index 3a443ac..e95c9af 100644 (file)
@@ -19,7 +19,7 @@ int Ui_MainWindow::write_protect_fd(int drv, bool flag)
 #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;
@@ -32,7 +32,7 @@ int Ui_MainWindow::set_d88_slot(int drive, int num)
        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);
@@ -88,7 +88,7 @@ int Ui_MainWindow::set_recent_disk(int drv, int num)
                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);
@@ -122,7 +122,7 @@ int Ui_MainWindow::set_recent_disk(int drv, int num)
                                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);
@@ -182,7 +182,7 @@ void Ui_MainWindow::_open_disk(int drv, const QString fname)
                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);
@@ -217,7 +217,7 @@ void Ui_MainWindow::_open_disk(int drv, const QString fname)
                        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);
diff --git a/source/src/qt/mycomz80a/CMakeLists.txt b/source/src/qt/mycomz80a/CMakeLists.txt
new file mode 100644 (file)
index 0000000..140cbaa
--- /dev/null
@@ -0,0 +1,17 @@
+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}
+)
+
+
index cee4991..358f3ec 100644 (file)
@@ -186,6 +186,12 @@ BEGIN
         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
index 604e09d..7e0daf7 100644 (file)
@@ -103,7 +103,8 @@ BEGIN
         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
@@ -112,7 +113,8 @@ BEGIN
         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
@@ -192,6 +194,12 @@ BEGIN
         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
index 7f9b972..e6da006 100644 (file)
@@ -117,7 +117,8 @@ BEGIN
         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
@@ -126,8 +127,8 @@ BEGIN
         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
@@ -232,6 +233,12 @@ BEGIN
         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
 
 
index 3def7cb..f63ef5e 100644 (file)
@@ -119,8 +119,8 @@ BEGIN
         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
@@ -129,8 +129,8 @@ BEGIN
         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
@@ -235,6 +235,12 @@ BEGIN
         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
 
 
index 3678e58..f0f2565 100644 (file)
@@ -118,8 +118,8 @@ BEGIN
         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
@@ -128,8 +128,8 @@ BEGIN
         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
@@ -230,6 +230,12 @@ BEGIN
         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
 
 
index 3264698..0843407 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -193,6 +195,12 @@ BEGIN
         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
index a33ee89..bd4f4ab 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -125,7 +127,8 @@ BEGIN
         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
@@ -134,7 +137,8 @@ BEGIN
         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
@@ -216,6 +220,12 @@ BEGIN
         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
index 7a2e018..e7f763b 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -125,7 +127,8 @@ BEGIN
         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
@@ -134,7 +137,8 @@ BEGIN
         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
@@ -216,6 +220,12 @@ BEGIN
         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
index c425ab5..1093aec 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -125,7 +127,8 @@ BEGIN
         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
@@ -134,7 +137,8 @@ BEGIN
         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
@@ -216,6 +220,12 @@ BEGIN
         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
index 39580ad..68e3d3a 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -125,7 +127,8 @@ BEGIN
         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
@@ -134,7 +137,8 @@ BEGIN
         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
@@ -216,6 +220,12 @@ BEGIN
         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
index 3aa3795..957b9e9 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -125,7 +127,8 @@ BEGIN
         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
@@ -134,7 +137,8 @@ BEGIN
         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
@@ -216,6 +220,12 @@ BEGIN
         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
index 76c2b1c..af3cf91 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -125,7 +127,8 @@ BEGIN
         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
@@ -134,7 +137,8 @@ BEGIN
         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
@@ -216,6 +220,12 @@ BEGIN
         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
index 77b69dc..9173738 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -209,6 +211,12 @@ BEGIN
         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
index bfd62bf..92711ff 100644 (file)
@@ -188,6 +188,12 @@ BEGIN
         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
index ebddb32..33eef98 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -198,6 +199,12 @@ BEGIN
         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
index 5c80c36..8a10613 100644 (file)
@@ -109,7 +109,8 @@ BEGIN
         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
@@ -118,7 +119,8 @@ BEGIN
         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
@@ -206,6 +208,12 @@ BEGIN
         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
 
 
index 709560d..a17f25d 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -122,7 +124,8 @@ BEGIN
         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
@@ -131,7 +134,8 @@ BEGIN
         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
@@ -222,6 +226,12 @@ BEGIN
         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
 
 
index b4abd6b..e7de4df 100644 (file)
@@ -108,7 +108,8 @@ BEGIN
         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
@@ -117,7 +118,8 @@ BEGIN
         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
@@ -126,7 +128,8 @@ BEGIN
         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
@@ -135,7 +138,8 @@ BEGIN
         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
@@ -215,6 +219,12 @@ BEGIN
         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
 
 
index b197168..b43f726 100644 (file)
@@ -98,7 +98,8 @@ BEGIN
         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
@@ -107,7 +108,8 @@ BEGIN
         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
@@ -187,6 +189,12 @@ BEGIN
         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
 
 
index 554385a..20d8fcc 100644 (file)
@@ -100,7 +100,8 @@ BEGIN
         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
@@ -109,7 +110,8 @@ BEGIN
         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
@@ -192,6 +194,12 @@ BEGIN
         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
 
 
index 58576e2..638d692 100644 (file)
@@ -193,6 +193,12 @@ BEGIN
         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
index 8e8e82a..c46a708 100644 (file)
@@ -185,6 +185,12 @@ BEGIN
         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
index e3bb6cd..36eb92a 100644 (file)
@@ -176,6 +176,12 @@ BEGIN
         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
index 23a4d64..4c77132 100644 (file)
@@ -128,7 +128,8 @@ BEGIN
         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
@@ -137,7 +138,8 @@ BEGIN
         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
@@ -217,6 +219,12 @@ BEGIN
         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
 
 
index e94e5f9..24683ce 100644 (file)
@@ -128,7 +128,8 @@ BEGIN
         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
@@ -137,7 +138,8 @@ BEGIN
         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
@@ -217,6 +219,12 @@ BEGIN
         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
 
 
index b73f6fe..ddcf1bf 100644 (file)
@@ -103,7 +103,8 @@ BEGIN
         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
@@ -112,7 +113,8 @@ BEGIN
         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
@@ -203,6 +205,12 @@ BEGIN
         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
 
 
index 845f056..a10bc50 100644 (file)
@@ -188,6 +188,12 @@ BEGIN
         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
index 92ea0c4..98235a3 100644 (file)
@@ -188,6 +188,12 @@ BEGIN
         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
index 23009a3..f33ddc2 100644 (file)
@@ -124,7 +124,8 @@ BEGIN
         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
@@ -133,7 +134,8 @@ BEGIN
         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
@@ -217,6 +219,12 @@ BEGIN
         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
 
 
index 85781bb..404b3f3 100644 (file)
@@ -128,7 +128,8 @@ BEGIN
         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
@@ -137,7 +138,8 @@ BEGIN
         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
@@ -146,7 +148,8 @@ BEGIN
         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
@@ -155,7 +158,8 @@ BEGIN
         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
@@ -241,6 +245,12 @@ BEGIN
         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
 
 
index c38dbcc..33dd733 100644 (file)
@@ -105,7 +105,8 @@ BEGIN
         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
@@ -114,7 +115,8 @@ BEGIN
         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
@@ -123,7 +125,8 @@ BEGIN
         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
@@ -132,7 +135,8 @@ BEGIN
         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
@@ -231,6 +235,12 @@ BEGIN
         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
 
 
index 0117cd8..7a4c004 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -122,7 +124,8 @@ BEGIN
         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
@@ -131,7 +134,8 @@ BEGIN
         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
@@ -213,6 +217,12 @@ BEGIN
         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
 
 
index eb98db7..828781b 100644 (file)
@@ -102,7 +102,8 @@ BEGIN
         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
@@ -111,7 +112,8 @@ BEGIN
         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
@@ -120,7 +122,8 @@ BEGIN
         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
@@ -129,7 +132,8 @@ BEGIN
         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
@@ -211,6 +215,12 @@ BEGIN
         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
 
 
index 87e4a4c..692092d 100644 (file)
@@ -105,7 +105,8 @@ BEGIN
         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
@@ -114,7 +115,8 @@ BEGIN
         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
@@ -123,7 +125,8 @@ BEGIN
         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
@@ -132,7 +135,8 @@ BEGIN
         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
@@ -215,6 +219,12 @@ BEGIN
         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
 
 
index a8af814..6027fa5 100644 (file)
@@ -105,7 +105,8 @@ BEGIN
         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
@@ -114,7 +115,8 @@ BEGIN
         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
@@ -123,7 +125,8 @@ BEGIN
         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
@@ -132,7 +135,8 @@ BEGIN
         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
@@ -215,6 +219,12 @@ BEGIN
         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
 
 
index 2c09a2d..8f39e36 100644 (file)
@@ -105,7 +105,8 @@ BEGIN
         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
@@ -114,7 +115,8 @@ BEGIN
         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
@@ -123,7 +125,8 @@ BEGIN
         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
@@ -132,7 +135,8 @@ BEGIN
         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
@@ -215,6 +219,12 @@ BEGIN
         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
 
 
index 048a551..fb33455 100644 (file)
@@ -193,6 +193,12 @@ BEGIN
         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
index 9a2a413..78ba3bb 100644 (file)
@@ -127,7 +127,8 @@ BEGIN
         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
@@ -136,7 +137,8 @@ BEGIN
         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
@@ -222,6 +224,12 @@ BEGIN
         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
 
 
index cdf03ab..c440353 100644 (file)
@@ -117,7 +117,8 @@ BEGIN
         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
@@ -126,7 +127,8 @@ BEGIN
         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
@@ -135,7 +137,8 @@ BEGIN
         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
@@ -144,7 +147,8 @@ BEGIN
         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
@@ -224,6 +228,12 @@ BEGIN
         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
 
 
index 7de8b3a..cb0fd7f 100644 (file)
@@ -120,7 +120,8 @@ BEGIN
         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
@@ -129,7 +130,8 @@ BEGIN
         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
@@ -138,7 +140,8 @@ BEGIN
         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
@@ -147,7 +150,8 @@ BEGIN
         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
@@ -229,6 +233,12 @@ BEGIN
         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
 
 
index 753d8b8..e47c523 100644 (file)
@@ -188,6 +188,12 @@ BEGIN
         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
index 47d92cb..94f0c6d 100644 (file)
@@ -98,7 +98,8 @@ BEGIN
         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
@@ -107,7 +108,8 @@ BEGIN
         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
@@ -189,6 +191,12 @@ BEGIN
         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
 
 
index 3d0d36d..7f02ac4 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -222,6 +224,12 @@ BEGIN
         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
 
 
index b6fec13..6797c8f 100644 (file)
@@ -103,7 +103,8 @@ BEGIN
         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
@@ -112,7 +113,8 @@ BEGIN
         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
@@ -218,6 +220,12 @@ BEGIN
         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
 
 
index 25f9aca..a143166 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -199,6 +201,12 @@ BEGIN
         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
 
 
index 2c0f186..3ac5006 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -213,6 +215,12 @@ BEGIN
         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
 
 
index e803efc..19ac829 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -216,6 +218,12 @@ BEGIN
         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
 
 
index 824d3be..e3fe6c3 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -216,6 +218,12 @@ BEGIN
         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
 
 
index 25be9c7..455b646 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -131,7 +133,8 @@ BEGIN
         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
@@ -140,7 +143,8 @@ BEGIN
         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
@@ -234,6 +238,12 @@ BEGIN
         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
 
 
index 55402c4..e15b28d 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -131,7 +133,8 @@ BEGIN
         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
@@ -140,7 +143,8 @@ BEGIN
         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
@@ -234,6 +238,12 @@ BEGIN
         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
 
 
index 35a06bd..0bab3f3 100644 (file)
@@ -114,7 +114,8 @@ BEGIN
         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
@@ -123,7 +124,8 @@ BEGIN
         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
@@ -214,6 +216,12 @@ BEGIN
         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
 
 
index a18f9f3..1174a3c 100644 (file)
@@ -185,6 +185,12 @@ BEGIN
         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
index 84ff5b7..d9ec466 100644 (file)
@@ -119,7 +119,8 @@ BEGIN
         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
@@ -128,7 +129,8 @@ BEGIN
         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
@@ -226,6 +228,12 @@ BEGIN
         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
 
 
index 3cc4c5d..00603c7 100644 (file)
@@ -105,7 +105,8 @@ BEGIN
         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
@@ -114,7 +115,8 @@ BEGIN
         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
@@ -123,7 +125,8 @@ BEGIN
         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
@@ -132,7 +135,8 @@ BEGIN
         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
@@ -141,7 +145,8 @@ BEGIN
         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
@@ -150,7 +155,8 @@ BEGIN
         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
@@ -240,6 +246,12 @@ BEGIN
         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
 
 
index 16f6ca6..438f1e1 100644 (file)
@@ -108,7 +108,8 @@ BEGIN
         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
@@ -117,7 +118,8 @@ BEGIN
         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
@@ -126,7 +128,8 @@ BEGIN
         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
@@ -135,7 +138,8 @@ BEGIN
         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
@@ -144,7 +148,8 @@ BEGIN
         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
@@ -153,7 +158,8 @@ BEGIN
         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
@@ -243,6 +249,12 @@ BEGIN
         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
 
 
index c2098a2..c28326d 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -195,6 +197,12 @@ BEGIN
         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
 
 
index 1f9b99b..a6dbae7 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -113,7 +114,8 @@ BEGIN
         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
@@ -195,6 +197,12 @@ BEGIN
         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
 
 
index bb72722..ce5e1eb 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -198,6 +200,12 @@ BEGIN
         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
 
 
index 3425ae6..2c4fba5 100644 (file)
@@ -117,7 +117,8 @@ BEGIN
         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
@@ -126,7 +127,8 @@ BEGIN
         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
@@ -135,7 +137,8 @@ BEGIN
         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
@@ -144,7 +147,8 @@ BEGIN
         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
@@ -235,6 +239,12 @@ BEGIN
         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
 
 
index 2598444..f429385 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -184,6 +185,12 @@ BEGIN
         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
 
 
index 8bf9dc0..3ab7f53 100644 (file)
@@ -104,7 +104,8 @@ BEGIN
         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
@@ -184,6 +185,12 @@ BEGIN
         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
 
 
index 3fa3ab4..669663c 100644 (file)
@@ -175,6 +175,12 @@ BEGIN
         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
index bbc412e..89d0791 100644 (file)
@@ -185,6 +185,12 @@ BEGIN
         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
index 7e9c49d..9ae8e0b 100644 (file)
@@ -185,6 +185,12 @@ BEGIN
         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
index 93f8dee..8d38087 100644 (file)
@@ -178,6 +178,12 @@ BEGIN
         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
index 7512a8f..1ce5176 100644 (file)
@@ -189,6 +189,12 @@ BEGIN
         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
index 345f772..2ff39b8 100644 (file)
@@ -203,6 +203,12 @@ BEGIN
         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
index e043094..2bd48fb 100644 (file)
@@ -189,6 +189,12 @@ BEGIN
         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
index 1389054..b6b233e 100644 (file)
@@ -112,7 +112,8 @@ BEGIN
         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
@@ -121,7 +122,8 @@ BEGIN
         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
@@ -201,6 +203,12 @@ BEGIN
         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
 
 
index b8990b1..36d51d8 100644 (file)
@@ -112,7 +112,8 @@ BEGIN
         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
@@ -121,7 +122,8 @@ BEGIN
         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
@@ -203,6 +205,12 @@ BEGIN
         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
 
 
index e4f70e1..525e437 100644 (file)
 
 #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
 
index ae09cf5..15f557c 100644 (file)
@@ -192,6 +192,12 @@ BEGIN
         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
index 99908ab..ef68d9d 100644 (file)
@@ -110,7 +110,8 @@ BEGIN
         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
@@ -201,6 +202,12 @@ BEGIN
         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
 
 
index 77e422e..442bfb2 100644 (file)
@@ -178,6 +178,12 @@ BEGIN
         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
index 43291aa..803cab5 100644 (file)
@@ -189,6 +189,12 @@ BEGIN
         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
index ca5f98a..370b4a4 100644 (file)
@@ -182,6 +182,12 @@ BEGIN
         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
index ebbfc76..74021b1 100644 (file)
@@ -107,7 +107,8 @@ BEGIN
         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
@@ -116,7 +117,8 @@ BEGIN
         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
@@ -221,6 +223,12 @@ BEGIN
         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
 
 
index b1b75c3..e5adc02 100644 (file)
@@ -113,7 +113,8 @@ BEGIN
         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
@@ -122,7 +123,8 @@ BEGIN
         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
@@ -230,6 +232,12 @@ BEGIN
         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
 
 
index 8642904..3a76c03 100644 (file)
@@ -118,7 +118,8 @@ BEGIN
         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
@@ -127,7 +128,8 @@ BEGIN
         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
@@ -235,6 +237,12 @@ BEGIN
         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
index d6e8c4d..87c88a4 100644 (file)
@@ -108,7 +108,8 @@ BEGIN
         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
@@ -117,7 +118,8 @@ BEGIN
         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
@@ -229,6 +231,12 @@ BEGIN
         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
 
 
index f027428..73b692d 100644 (file)
@@ -178,6 +178,12 @@ BEGIN
         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
index 40dac54..ef1f064 100644 (file)
@@ -127,10 +127,9 @@ void DISK::open(_TCHAR path[], int bank)
                _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"))) {
@@ -244,9 +243,13 @@ file_loaded:
                        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
@@ -260,9 +263,6 @@ file_loaded:
 #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++) {
@@ -285,14 +285,38 @@ file_loaded:
                                }
                        }
                }
-               // 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) {
@@ -315,7 +339,9 @@ void DISK::close()
                        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;
@@ -345,7 +371,7 @@ void DISK::close()
                                        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);
index 161efe0..053d4f4 100644 (file)
 #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
index 74a2294..471c105 100644 (file)
@@ -359,6 +359,16 @@ bool VM::disk_inserted(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();
index ac42811..4450d2a 100644 (file)
@@ -127,6 +127,8 @@ public:
        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();
diff --git a/source/src/vm/fm7/20150429/CMakeLists.txt b/source/src/vm/fm7/20150429/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6103fb6
--- /dev/null
@@ -0,0 +1,15 @@
+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
diff --git a/source/src/vm/fm7/20150429/vram/generic/CMakeLists.txt b/source/src/vm/fm7/20150429/vram/generic/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f9b17f1
--- /dev/null
@@ -0,0 +1,7 @@
+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
diff --git a/source/src/vm/fm7/20150429/vram/sse2/CMakeLists.txt b/source/src/vm/fm7/20150429/vram/sse2/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e0e501c
--- /dev/null
@@ -0,0 +1,9 @@
+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
+)
index a62cf51..c2293bb 100644 (file)
 #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"
@@ -77,8 +83,12 @@ VM::VM(EMU* parent_emu): emu(parent_emu)
        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
@@ -431,6 +441,7 @@ uint32 VM::get_led_status()
 }
 #endif // SUPPORT_DUMMY_DEVICE_LED
 
+
 // ----------------------------------------------------------------------------
 // debugger
 // ----------------------------------------------------------------------------
@@ -529,17 +540,15 @@ bool VM::disk_inserted(int drv)
        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)
 {
index 673a39e..53a56a0 100644 (file)
@@ -267,7 +267,9 @@ class YM2203;
 class MB8877;
 class MEMORY;
 class DATAREC;
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
 class DUMMYDEVICE;
+#endif
 
 class DISPLAY;
 #if defined(_FM77AV_VARIANTS)
@@ -293,7 +295,11 @@ protected:
        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.
@@ -361,7 +367,9 @@ public:
        void special_reset();
        void run();
        double frame_rate();
+#if defined(SUPPORT_DUMMY_DEVICE_LED)
        uint32 get_led_status();
+#endif
        
 #ifdef USE_DEBUGGER
        // debugger
@@ -388,10 +396,8 @@ public:
        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);
index 05b6138..c37b3e6 100644 (file)
@@ -295,6 +295,16 @@ bool VM::disk_inserted(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();
index 11ca38f..efe3562 100644 (file)
@@ -138,6 +138,8 @@ public:
        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();
index ca6c11f..38d8c7d 100644 (file)
@@ -313,7 +313,7 @@ void BIOS::initialize()
                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();
                }
        }
index 471e9a8..d11b685 100644 (file)
@@ -411,6 +411,16 @@ bool VM::disk_inserted(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();
index 1fd2cf8..c868499 100644 (file)
@@ -195,6 +195,8 @@ public:
        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();
index d570d70..cfbb497 100644 (file)
@@ -248,6 +248,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        drec->play_tape(file_path);
index e01b1c9..bd484c4 100644 (file)
@@ -132,6 +132,8 @@ public:
        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();
index 2559192..36f580f 100644 (file)
@@ -258,6 +258,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        drec->play_tape(file_path);
index 910661e..67b3082 100644 (file)
@@ -123,6 +123,8 @@ public:
        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();
index 4d22148..efcae4d 100644 (file)
@@ -263,6 +263,16 @@ bool VM::cart_inserted(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);
+///}
+
 ///void VM::play_tape(_TCHAR* file_path)
 ///{
 ///    drec->play_tape(file_path);
index f2ade6c..85b2d4d 100644 (file)
@@ -124,6 +124,8 @@ public:
 ///    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();
index 6dd43be..643bed2 100644 (file)
@@ -268,17 +268,16 @@ bool VM::disk_inserted(int drv)
        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)
 {
index f3f2988..cb41a0b 100644 (file)
@@ -121,10 +121,8 @@ public:
        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();
index daa6054..b2ee11f 100644 (file)
@@ -203,6 +203,16 @@ bool VM::disk_inserted(int drv)
        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);
index 557c010..d168096 100644 (file)
@@ -109,6 +109,8 @@ public:
        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();
index 642c508..027397e 100644 (file)
@@ -201,6 +201,16 @@ bool VM::disk_inserted(int drv)
        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();
index 7deb9a8..9e1e8bf 100644 (file)
@@ -108,6 +108,8 @@ public:
        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();
index 63c6e5a..cc59517 100644 (file)
@@ -353,6 +353,16 @@ bool VM::disk_inserted(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();
index d75869f..627dda5 100644 (file)
@@ -154,6 +154,8 @@ public:
        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();
index 1779292..f9408ae 100644 (file)
@@ -303,6 +303,16 @@ bool VM::disk_inserted(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();
index 937c214..984eeed 100644 (file)
@@ -142,6 +142,8 @@ public:
        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();
index 11cbb78..61d84e6 100644 (file)
@@ -79,11 +79,14 @@ static const int seek_wait_lo[4] = {6000, 12000, 20000, 30000};
        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; \
@@ -463,6 +466,9 @@ uint32 MB8877::read_io8(uint32 addr)
                                        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();
                                }
@@ -513,35 +519,16 @@ uint32 MB8877::read_signal(int ch)
        // 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)
@@ -575,9 +562,9 @@ 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);
@@ -594,9 +581,9 @@ void MB8877::event_callback(int event_id, int err)
                        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);
@@ -756,27 +743,14 @@ void MB8877::cmd_restore()
        
        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()
@@ -789,27 +763,14 @@ 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()
@@ -831,29 +792,14 @@ void MB8877::cmd_stepin()
        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()
@@ -865,29 +811,14 @@ 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()
@@ -896,7 +827,8 @@ 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;
@@ -913,9 +845,8 @@ void MB8877::cmd_writedata()
 {
        // 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;
@@ -1045,23 +976,17 @@ void MB8877::cmd_forceint()
 
 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;
                }
@@ -1069,10 +994,10 @@ uint8 MB8877::search_track()
        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;
        }
@@ -1098,13 +1023,16 @@ uint8 MB8877::search_sector(int trk, int side, int sct, bool compare)
        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;
                }
                
@@ -1131,10 +1059,8 @@ uint8 MB8877::search_sector(int trk, int side, int sct, bool compare)
 
 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;
        }
@@ -1157,7 +1083,7 @@ uint8 MB8877::search_addr()
        }
        
        // 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;
@@ -1259,6 +1185,21 @@ bool MB8877::disk_inserted(int drv)
        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) {
index a97a532..ac6d84d 100644 (file)
@@ -18,8 +18,8 @@
 #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;
 
@@ -80,7 +80,7 @@ private:
        
        // image handler
        uint8 search_track();
-       uint8 search_sector(int trk, int side, int sct, bool compare);
+       uint8 search_sector();
        uint8 search_addr();
        
        // command
@@ -140,21 +140,13 @@ public:
        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
index 7b28729..0be618f 100644 (file)
@@ -734,7 +734,7 @@ bool MEMORY::bios_ret_z80(uint16 PC, pair* af, pair* bc, pair* de, pair* hl, pai
                                                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;
                                        }
@@ -755,7 +755,7 @@ bool MEMORY::bios_ret_z80(uint16 PC, pair* af, pair* bc, pair* de, pair* hl, pai
                                                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;
                                        }
@@ -796,7 +796,7 @@ bool MEMORY::bios_ret_z80(uint16 PC, pair* af, pair* bc, pair* de, pair* hl, pai
                                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;
                        }
@@ -925,6 +925,21 @@ bool MEMORY::disk_inserted(int drv)
        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
index 043f624..0efdf60 100644 (file)
@@ -236,6 +236,8 @@ public:
        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
 };
 
index 61fe2f3..5bd5671 100644 (file)
@@ -341,17 +341,16 @@ bool VM::disk_inserted(int drv)
        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()
 //{
index f074beb..1122fb1 100644 (file)
@@ -194,10 +194,8 @@ public:
        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();
index e69de1c..77a655c 100644 (file)
@@ -234,6 +234,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        cmt->play_tape(file_path);
index b079281..a0464d3 100644 (file)
@@ -129,6 +129,8 @@ public:
        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();
index 5559856..8e85cce 100644 (file)
@@ -356,6 +356,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        bool value = drec->play_tape(file_path);
index cae56b3..0019181 100644 (file)
@@ -175,6 +175,8 @@ public:
        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();
index c3c26cd..0fdddd0 100644 (file)
@@ -349,6 +349,16 @@ bool VM::disk_inserted(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);
+}
+
 #ifdef SUPPORT_QUICK_DISK
 void VM::open_quickdisk(int drv, _TCHAR* file_path)
 {
index 05a4329..fac9671 100644 (file)
@@ -183,6 +183,8 @@ public:
        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);
index f379aa7..562df71 100644 (file)
@@ -302,6 +302,16 @@ bool VM::disk_inserted(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();
index c0b987f..391b363 100644 (file)
@@ -139,6 +139,8 @@ public:
        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();
index a5c5209..a06158f 100644 (file)
@@ -298,6 +298,16 @@ bool VM::disk_inserted(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();
index 14d4dfa..e063f25 100644 (file)
@@ -125,6 +125,8 @@ public:
        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();
index 9cd0af4..0523048 100644 (file)
@@ -303,6 +303,16 @@ bool VM::disk_inserted(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();
index b533e82..88dd144 100644 (file)
@@ -156,6 +156,8 @@ public:
        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();
index cb03768..e5f5b28 100644 (file)
@@ -532,18 +532,6 @@ bool VM::quickdisk_inserted(int 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
-
 void VM::open_disk(int drv, _TCHAR* file_path, int bank)
 {
        fdc->open_disk(drv, file_path, bank);
@@ -559,6 +547,15 @@ bool VM::disk_inserted(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);
+}
 #endif
 
 bool VM::now_skip()
index 88edcac..c09a149 100644 (file)
@@ -223,10 +223,8 @@ public:
        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();
        
index 6036166..88ed754 100644 (file)
@@ -479,7 +479,7 @@ void QUICKDISK::open_disk(_TCHAR path[])
                        }
                }
                set_insert(true);
-               set_protect(fio->IsProtected(path));
+               set_protect(FILEIO::IsFileProtected(path));
                set_home(true);
                
                fio->Fclose();
index 1774bbd..a868253 100644 (file)
@@ -263,17 +263,6 @@ bool VM::disk_inserted(int drv)
 {
        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
 
@@ -305,6 +294,16 @@ int VM::get_tape_ptr()
 {
        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()
index dc4f23a..072b3bc 100644 (file)
@@ -158,10 +158,8 @@ public:
        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);
index ee71be0..7c6e441 100644 (file)
@@ -343,6 +343,16 @@ bool VM::disk_inserted(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();
index 4ab9eaf..6fd3313 100644 (file)
@@ -122,6 +122,8 @@ public:
        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();
index 66db852..9b8e5b5 100644 (file)
@@ -297,6 +297,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        drec->play_tape(file_path);
index 3ec95c3..98a5a0c 100644 (file)
@@ -160,6 +160,8 @@ public:
        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();
index 7fbff74..f760a01 100644 (file)
@@ -293,6 +293,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        drec->play_tape(file_path);
index f62c1d7..ec820c2 100644 (file)
@@ -155,6 +155,8 @@ public:
        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();
index 55d0448..3b46ad2 100644 (file)
@@ -274,6 +274,16 @@ bool VM::disk_inserted(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();
index 720c441..94a4a83 100644 (file)
@@ -135,6 +135,8 @@ public:
        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();
index a2bb69f..830681b 100644 (file)
@@ -544,6 +544,21 @@ bool FLOPPY::disk_inserted(int drv)
        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)
index 78d120f..830066e 100644 (file)
@@ -126,15 +126,8 @@ public:
        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
index 080213f..7aceed0 100644 (file)
@@ -445,40 +445,38 @@ bool VM::disk_inserted(int 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 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)
 {
index 1e6cd76..e554484 100644 (file)
@@ -215,10 +215,8 @@ public:
        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();
index 7c82751..143bc7d 100644 (file)
@@ -370,6 +370,21 @@ bool PC6031::disk_ejected(int drv)
        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)
index 8bc9bd2..8b456e3 100644 (file)
@@ -95,15 +95,8 @@ public:
        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
index b5aec2a..5ec632e 100644 (file)
@@ -22,8 +22,8 @@
 #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
index 1864fa5..94a0406 100644 (file)
@@ -351,17 +351,15 @@ bool VM::disk_inserted(int drv)
        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)
 {
index ac8e56f..8ceff07 100644 (file)
@@ -219,6 +219,8 @@ public:
        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();
@@ -231,10 +233,6 @@ public:
 #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
        // ----------------------------------------
index cb97d11..db13a37 100644 (file)
@@ -62,10 +62,6 @@ public:
        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)
index a4083dc..ef60fe4 100644 (file)
@@ -947,65 +947,61 @@ bool VM::disk_inserted(int drv)
        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)
index 388f69d..f2c890a 100644 (file)
@@ -360,10 +360,8 @@ public:
        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);
index 0751bc5..089cbcf 100644 (file)
@@ -315,24 +315,16 @@ bool VM::disk_inserted(int drv)
        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()
 {
index a6c0ba3..d297dc5 100644 (file)
@@ -152,11 +152,9 @@ public:
        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);
index fad1c93..a736c20 100644 (file)
@@ -455,6 +455,21 @@ bool PTF20::disk_inserted(int drv)
        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)
index 36aeca2..81db867 100644 (file)
@@ -53,6 +53,8 @@ public:
        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
index 191dc87..00c49ea 100644 (file)
@@ -293,6 +293,16 @@ bool VM::disk_inserted(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();
index 9171776..a46af9d 100644 (file)
@@ -146,6 +146,8 @@ public:
        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();
index 55f20e7..3e0d8c9 100644 (file)
@@ -232,6 +232,16 @@ bool VM::disk_inserted(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);
+}
+
 void VM::play_tape(_TCHAR* file_path)
 {
        drec->play_tape(file_path);
index f81b892..c026bd7 100644 (file)
@@ -112,6 +112,8 @@ public:
        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();
index edcb8c5..3447845 100644 (file)
@@ -1519,6 +1519,21 @@ bool UPD765A::disk_ejected()
        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) {
index 2c8048a..73774af 100644 (file)
@@ -182,22 +182,14 @@ public:
        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
index 4eb15ea..b362500 100644 (file)
@@ -588,16 +588,15 @@ bool VM::disk_inserted(int drv)
        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)
 {
index e35b593..c1592dd 100644 (file)
@@ -253,10 +253,8 @@ public:
        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();
index 38a2e59..ebf40d6 100644 (file)
@@ -339,6 +339,14 @@ void EMU::update_input()
        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));
index d40b624..1705719 100644 (file)
@@ -236,7 +236,7 @@ void EMU::stop_rec_sound()
        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;
index 4b87d57..f9b156b 100644 (file)
@@ -174,6 +174,12 @@ int get_interval()
        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);
@@ -183,6 +189,11 @@ LRESULT CALLBACK ButtonWndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lPara
 
 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();
        
@@ -416,7 +427,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
        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) {
@@ -829,7 +840,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
                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); \
@@ -840,11 +851,13 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
                                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: \
@@ -934,28 +947,28 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
                                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) \
@@ -1373,6 +1386,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
                        }
                        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:
@@ -1525,9 +1547,9 @@ void update_menu(HWND hWnd, HMENU hMenu, int pos)
 #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++) { \
@@ -1547,52 +1569,53 @@ void update_menu(HWND hWnd, HMENU hMenu, int pos)
                        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
@@ -1819,6 +1842,15 @@ void update_menu(HWND hWnd, HMENU hMenu, int pos)
                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);
 }