OSDN Git Service

[VM][MZ2200][QD] Fix FTBFS.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 28 Sep 2015 17:20:22 +0000 (02:20 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 28 Sep 2015 17:20:22 +0000 (02:20 +0900)
[VM][Qt] Add MZ-2000 .

source/build-cmake/cmake/config_mz2500.cmake
source/build-cmake/mz2000/CMakeLists.txt [new file with mode: 0644]
source/src/vm/mz2500/CMakeLists.txt
source/src/vm/mz2500/quickdisk.cpp [deleted file]
source/src/vm/mz2500/quickdisk.h [deleted file]
source/src/vm/vm.h

index 639423e..02cb37f 100644 (file)
@@ -55,6 +55,7 @@ set(VMFILES_BASE
                   )
 set(VMFILES_QD
                   z80sio.cpp
+                  mz700/quickdisk.cpp
                   )
 
 set(VMFILES_16BIT
@@ -126,20 +127,15 @@ endif()
 
 #include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/mz2500)
-if(NUILD_MZ2500)
+if(BUILD_MZ2200)
+  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/mz700)
+elseif(BUILD_MZ2000)
+  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/mz700)
+endif()
+if(BUILD_MZ2500)
   include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/fmgen)
 endif()
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/mz2500)
 
 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()
-
diff --git a/source/build-cmake/mz2000/CMakeLists.txt b/source/build-cmake/mz2000/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0faac5b
--- /dev/null
@@ -0,0 +1,27 @@
+# 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,MZ2200, Qt **")
+message("")
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+project (emumz2000)
+
+set(BUILD_MZ2000 ON CACHE BOOL "Build EMU-MZ2000")
+include(config_mz2500)
+
+add_subdirectory(../../src/vm/mz2500 vm/mz2500)
+if(BUILD_MZ2500)
+  add_subdirectory(../../src/vm/fmgen vm/fmgen)
+endif()  
+add_subdirectory(../../src/qt/mz2500 qt/mz2500)
+
+     
+add_subdirectory(../../src/qt/common qt/common)
index 0d0a93b..c2cec94 100644 (file)
@@ -43,9 +43,9 @@ elseif(BUILD_MZ80B)
 add_library(vm_mz2500 ${MZ80B_SRCS})
 
 elseif(BUILD_MZ2000)
-add_library(vm_mz2500 ${MZ80B_SRCS} quickdisk.cpp mz1m01.cpp)
+add_library(vm_mz2500 ${MZ80B_SRCS}  mz1m01.cpp)
 
 elseif(BUILD_MZ2200)
-add_library(vm_mz2500 ${MZ80B_SRCS}  mz1m01.cpp quickdisk.cpp)
+add_library(vm_mz2500 ${MZ80B_SRCS}  mz1m01.cpp)
 
 endif()
diff --git a/source/src/vm/mz2500/quickdisk.cpp b/source/src/vm/mz2500/quickdisk.cpp
deleted file mode 100644 (file)
index c5518a4..0000000
+++ /dev/null
@@ -1,614 +0,0 @@
-/*
-       SHARP MZ-800 Emulator 'EmuZ-800'
-       SHARP MZ-1500 Emulator 'EmuZ-1500'
-       SHARP MZ-2200 Emulator 'EmuZ-2200'
-
-       Author : Takeda.Toshiya
-       Date   : 2011.02.17-
-
-       [ quick disk ]
-*/
-
-#include "quickdisk.h"
-#include "../z80sio.h"
-
-#define MZT_HEADER_SIZE        128
-#define HEADER_SIZE    64
-
-#define EVENT_RESTORE  0
-#define EVENT_END      1
-
-// 100usec
-#define PERIOD_RESTORE 100
-// 1sec
-#define PERIOD_END     1000000
-
-#define DATA_SYNC      0x16
-#define DATA_MARK      0xa5
-#define DATA_CRC       0xff
-#define DATA_BREAK     0x100
-#define DATA_EMPTY     0x101
-
-#define HEADER_BLOCK_ID        0
-#define DATA_BLOCK_ID  1
-
-void QUICKDISK::initialize()
-{
-       insert = protect = false;
-       home = true;
-       first_data = send_break = true;
-}
-
-void QUICKDISK::release()
-{
-       release_disk();
-}
-
-void QUICKDISK::reset()
-{
-       wrga = mton = true;
-       sync = false;
-       motor_on = false;
-       accessed = false;
-       restore_id = end_id = -1;
-       
-       set_insert(insert);
-       set_protect(protect);
-       set_home(true);
-}
-
-/*
-       PROTECT -> CTSA
-               H: write protected
-       INSERT -> DCDA
-               L: inserted
-       HOME -> DCDB
-               L: reach to head position
-               H: reset, reach to end of disk, DTRB is L->H
-
-       RTSA -> WRGA
-               L: write disk / stop motor at the end of disk
-               H: read disk
-       DTRB -> MTON
-               H->L: start motor
-               H: stop motor at the end of disk
-*/
-
-#define REGISTER_RESTORE_EVENT() { \
-       if(restore_id == -1) { \
-               register_event(this, EVENT_RESTORE, PERIOD_RESTORE, false, &restore_id); \
-       } \
-}
-
-#define CANCEL_RESTORE_EVENT() { \
-       if(restore_id != -1) { \
-               cancel_event(this, restore_id); \
-               restore_id = -1; \
-       } \
-}
-
-#define REGISTER_END_EVENT() { \
-       if(end_id != -1) { \
-               cancel_event(this, end_id); \
-       } \
-       register_event(this, EVENT_END, PERIOD_END, false, &end_id); \
-}
-
-#define CANCEL_END_EVENT() { \
-       if(end_id != -1) { \
-               cancel_event(this, end_id); \
-               end_id = -1; \
-       } \
-}
-
-#define WRITE_BUFFER(v) { \
-       if(buffer_ptr < QUICKDISK_BUFFER_SIZE) { \
-               if(buffer[buffer_ptr] != v) { \
-                       buffer[buffer_ptr] = v; \
-                       modified = true; \
-               } \
-               buffer_ptr++; \
-       } \
-}
-
-void QUICKDISK::write_signal(int id, uint32 data, uint32 mask)
-{
-       bool next = ((data & mask) != 0);
-       
-       if(id == QUICKDISK_SIO_RTSA) {
-               if(wrga && !next) {
-                       // start to write
-                       first_data = true;
-                       write_ptr = 0;
-               } else if(!wrga && next) {
-                       // end to write
-                       write_crc();
-               }
-               wrga = next;
-       } else if(id == QUICKDISK_SIO_DTRB) {
-               if(mton && !next) {
-                       // H->L: start motor
-                       if(motor_on && wrga) {
-                               // restart to send
-                               send_data();
-                               REGISTER_END_EVENT();
-                       } else {
-                               // start motor and restore to home position
-                               motor_on = true;
-                               REGISTER_RESTORE_EVENT();
-                               CANCEL_END_EVENT();
-                       }
-               } else if(!mton && next) {
-                       // L->H: home signal is high
-                       set_home(true);
-               }
-               mton = next;
-       } else if(id == QUICKDISK_SIO_SYNC) {
-               // enter hunt/sync phase
-               sync = next;
-               if(sync) {
-                       // hack: start to send for verify
-                       if(!wrga) {
-                               write_crc();
-                               wrga = true;
-                       }
-                       send_data();
-               }
-       } else if(id == QUICKDISK_SIO_RXDONE) {
-               // send next data
-               send_data();
-       } else if(id == QUICKDISK_SIO_DATA || id == QUICKDISK_SIO_BREAK) {
-               // write data
-               if(!(motor_on && !wrga)) {
-                       return;
-               }
-               if(id == QUICKDISK_SIO_DATA) {
-                       if(first_data) {
-                               // write sync chars at the top of message
-                               WRITE_BUFFER(DATA_SYNC);
-                               WRITE_BUFFER(DATA_SYNC);
-                               first_data = false;
-                       }
-                       WRITE_BUFFER(data);
-                       write_ptr = buffer_ptr;
-               } else if(id == QUICKDISK_SIO_BREAK) {
-                       write_crc();
-                       WRITE_BUFFER(DATA_BREAK);
-                       first_data = true;
-                       write_ptr = 0;
-               }
-               accessed = true;
-               
-               if(buffer_ptr < QUICKDISK_BUFFER_SIZE) {
-                       REGISTER_END_EVENT();
-               } else {
-                       CANCEL_END_EVENT();
-                       end_of_disk();
-               }
-       }
-}
-
-uint32 QUICKDISK::read_signal(int ch)
-{
-       // access lamp signal
-       if(accessed) {
-               accessed = false;
-               return 1;
-       }
-       return 0;
-}
-
-void QUICKDISK::event_callback(int event_id, int err)
-{
-       if(event_id == EVENT_RESTORE) {
-               // reached to home position
-               restore_id = -1;
-               restore();
-       } else if(event_id == EVENT_END) {
-               // reached to end of disk
-               end_id = -1;
-               end_of_disk();
-       }
-}
-
-void QUICKDISK::restore()
-{
-       // reached to home position
-       set_home(false);
-       buffer_ptr = 0;
-       first_data = send_break = true;
-       
-       // start to send
-       send_data();
-}
-
-void QUICKDISK::send_data()
-{
-       if(!(motor_on && wrga) || restore_id != -1) {
-               return;
-       }
-retry:
-       if(buffer_ptr < QUICKDISK_BUFFER_SIZE && buffer[buffer_ptr] != DATA_EMPTY) {
-               if(buffer[buffer_ptr] == DATA_BREAK) {
-                       // send break signal
-                       if(send_break) {
-                               d_sio->write_signal(SIG_Z80SIO_BREAK_CH0, 1, 1);
-                               send_break = false;
-                       }
-                       // wait until sio enters hunt/sync phase
-                       if(!sync) {
-                               return;
-                       }
-                       buffer_ptr++;
-                       goto retry;
-               }
-               // send data
-               d_sio->write_signal(SIG_Z80SIO_RECV_CH0, buffer[buffer_ptr++], 0xff);
-               send_break = true;
-               accessed = true;
-               REGISTER_END_EVENT();
-       } else {
-               // reached to end of disk
-               CANCEL_END_EVENT();
-               end_of_disk();
-       }
-}
-
-void QUICKDISK::write_crc()
-{
-       if(!wrga && write_ptr != 0) {
-               buffer_ptr = write_ptr;
-               
-               WRITE_BUFFER(DATA_CRC);
-               WRITE_BUFFER(DATA_CRC);
-               WRITE_BUFFER(DATA_SYNC);
-               WRITE_BUFFER(DATA_SYNC);
-               // don't increment pointer !!!
-               WRITE_BUFFER(DATA_BREAK);
-               buffer_ptr--;
-       }
-       write_ptr = 0;
-}
-
-void QUICKDISK::end_of_disk()
-{
-       // write crc
-       write_crc();
-       
-       // reached to end of disk
-       if(mton || !wrga) {
-               motor_on = false;
-       } else {
-               REGISTER_RESTORE_EVENT();
-       }
-       set_home(true);
-}
-
-void QUICKDISK::set_insert(bool val)
-{
-       // L=inserted
-       d_sio->write_signal(SIG_Z80SIO_DCD_CH0, val ? 0 : 1, 1);
-       insert = val;
-}
-
-void QUICKDISK::set_protect(bool val)
-{
-       // H=protected
-       d_sio->write_signal(SIG_Z80SIO_CTS_CH0, val ? 1 : 0, 1);
-       protect = val;
-}
-
-void QUICKDISK::set_home(bool val)
-{
-       if(home != val) {
-               d_sio->write_signal(SIG_Z80SIO_DCD_CH1, val ? 1 : 0, 1);
-               home = val;
-       }
-}
-
-void QUICKDISK::open_disk(_TCHAR path[])
-{
-       // check current disk image
-       if(insert) {
-               if(_tcsicmp(file_path, path) == 0) {
-                       return;
-               }
-               // close current disk
-               close_disk();
-       }
-       memset(buffer, 0, sizeof(buffer));
-       
-       // load disk image
-       FILEIO* fio = new FILEIO();
-       if(fio->Fopen(path, FILEIO_READ_BINARY)) {
-               _tcscpy_s(file_path, _MAX_PATH, path);
-               
-               // clear buffer
-               for(int i = 0; i < QUICKDISK_BUFFER_SIZE; i++) {
-                       buffer[i] = DATA_EMPTY;
-               }
-               buffer_ptr = 0;
-               modified = false;
-               
-               // check extension
-               if(check_file_extension(file_path, _T(".mzt")) || check_file_extension(file_path, _T(".q20"))) {
-                       // load mzt file
-                       fio->Fseek(0, FILEIO_SEEK_END);
-                       int remain = fio->Ftell();
-                       fio->Fseek(0, FILEIO_SEEK_SET);
-                       
-                       int num_block = 0;
-                       int block_num_ptr = 0;
-                       
-                       // create block file
-                       buffer[buffer_ptr++] = DATA_BREAK;
-                       buffer[buffer_ptr++] = DATA_SYNC;
-                       buffer[buffer_ptr++] = DATA_SYNC;
-                       buffer[buffer_ptr++] = DATA_MARK;
-                       block_num_ptr = buffer_ptr;
-                       buffer[buffer_ptr++] = 0; // block number
-                       buffer[buffer_ptr++] = DATA_CRC;
-                       buffer[buffer_ptr++] = DATA_CRC;
-                       buffer[buffer_ptr++] = DATA_SYNC;
-                       buffer[buffer_ptr++] = DATA_SYNC;
-                       buffer[buffer_ptr++] = DATA_BREAK;
-                       
-                       while(remain >= MZT_HEADER_SIZE) {
-                               // load header
-                               uint8 header[MZT_HEADER_SIZE], ram[0x20000];
-                               fio->Fread(header, MZT_HEADER_SIZE, 1);
-                               remain -= MZT_HEADER_SIZE;
-                               
-                               // load data
-                               int size = header[0x12] | (header[0x13] << 8);
-                               int offs = header[0x14] | (header[0x15] << 8);
-                               memset(ram, 0, sizeof(ram));
-                               fio->Fread(ram + offs, size, 1);
-                               remain -= size;
-#if 0
-                               // apply mz700win patch
-                               if(header[0x40] == 'P' && header[0x41] == 'A' && header[0x42] == 'T' && header[0x43] == ':') {
-                                       int patch_ofs = 0x44;
-                                       for(; patch_ofs < 0x80; ) {
-                                               uint16 patch_addr = header[patch_ofs] | (header[patch_ofs + 1] << 8);
-                                               patch_ofs += 2;
-                                               if(patch_addr == 0xffff) {
-                                                       break;
-                                               }
-                                               int patch_len = header[patch_ofs++];
-                                               for(int i = 0; i < patch_len; i++) {
-                                                       ram[patch_addr + i] = header[patch_ofs++];
-                                               }
-                                       }
-                                       // clear patch data
-                                       for(int i = 0x40; i < patch_ofs; i++) {
-                                               header[i] = 0;
-                                       }
-                               }
-#endif
-                               // copy header
-                               buffer[block_num_ptr] = ++num_block;
-                               
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_MARK;
-                               buffer[buffer_ptr++] = HEADER_BLOCK_ID;
-                               buffer[buffer_ptr++] = HEADER_SIZE;
-                               buffer[buffer_ptr++] = 0;
-                               buffer[buffer_ptr++] = header[0];       // attribute
-                               for(int i = 0; i < 17; i++) {
-                                       buffer[buffer_ptr++] = header[i + 1]; // file name
-                               }
-                               buffer[buffer_ptr++] = header[0x3e];    // lock
-                               buffer[buffer_ptr++] = header[0x3f];    // secret
-                               buffer[buffer_ptr++] = header[0x12];    // file size
-                               buffer[buffer_ptr++] = header[0x13];
-                               buffer[buffer_ptr++] = header[0x14];    // load addr
-                               buffer[buffer_ptr++] = header[0x15];
-                               buffer[buffer_ptr++] = header[0x16];    // exec addr
-                               buffer[buffer_ptr++] = header[0x17];
-                               for(int i = 26; i < HEADER_SIZE; i++) {
-                                       buffer[buffer_ptr++] = 0;       // comment
-                               }
-                               buffer[buffer_ptr++] = DATA_CRC;
-                               buffer[buffer_ptr++] = DATA_CRC;
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_BREAK;
-                               
-                               // copy data
-                               buffer[block_num_ptr] = ++num_block;
-                               
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_MARK;
-                               buffer[buffer_ptr++] = DATA_BLOCK_ID;
-                               buffer[buffer_ptr++] = (uint8)(size & 0xff);
-                               buffer[buffer_ptr++] = (uint8)(size >> 8);
-                               for(int i = 0; i < size; i++) {
-                                       buffer[buffer_ptr++] = ram[offs + i];
-                               }
-                               buffer[buffer_ptr++] = DATA_CRC;
-                               buffer[buffer_ptr++] = DATA_CRC;
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_SYNC;
-                               buffer[buffer_ptr++] = DATA_BREAK;
-                       }
-               } else {
-                       // check header
-                       uint8 header[16];
-                       fio->Fread(header, sizeof(header), 1);
-                       if(memcmp(header, "-QD format-", 11) != 0) {
-                               fio->Fseek(0, FILEIO_SEEK_SET);
-                       }
-                       
-                       // load raw file
-                       bool in_gap = true;
-                       int sync_top_ptr = 0, sync_num = 0, sync_num_prev = 0, data;
-                       
-                       buffer[buffer_ptr++] = DATA_BREAK;
-                       
-                       while((data = fio->Fgetc()) != EOF) {
-                               if(data == DATA_SYNC) {
-                                       if(sync_num == 0) {
-                                               sync_top_ptr = buffer_ptr;
-                                       }
-                                       sync_num++;
-                               } else {
-                                       sync_num_prev = sync_num;
-                                       sync_num = 0;
-                               }
-                               if(in_gap) {
-                                       if(sync_num_prev >= 4 && sync_num == 0) {
-                                               buffer[buffer_ptr++] = DATA_SYNC;
-                                               buffer[buffer_ptr++] = DATA_SYNC;
-                                               buffer[buffer_ptr++] = data;
-                                               in_gap = false;
-                                       }
-                               } else {
-                                       if(sync_num_prev >= 4 && sync_num == 0 && data == 0x00) {
-                                               buffer_ptr = sync_top_ptr;
-                                               buffer[buffer_ptr++] = DATA_SYNC;
-                                               buffer[buffer_ptr++] = DATA_SYNC;
-                                               buffer[buffer_ptr++] = DATA_BREAK;
-                                               in_gap = true;
-                                       } else {
-                                               buffer[buffer_ptr++] = data;
-                                       }
-                               }
-                       }
-               }
-               set_insert(true);
-               set_protect(fio->IsFileProtected(path));
-               set_home(true);
-               
-               fio->Fclose();
-       }
-       delete fio;
-}
-
-void QUICKDISK::close_disk()
-{
-       release_disk();
-       set_insert(false);
-       set_protect(false);
-       set_home(true);
-       
-       // cancel all events
-       CANCEL_RESTORE_EVENT();
-       CANCEL_END_EVENT();
-}
-
-void QUICKDISK::release_disk()
-{
-       if(insert && !protect && modified) {
-               // check extension
-               _TCHAR file_path_tmp[_MAX_PATH];
-               if(check_file_extension(file_path, _T(".mzt")) || check_file_extension(file_path, _T(".q20"))) {
-                       _tcscpy_s(file_path_tmp, _MAX_PATH, file_path);
-               } else {
-                       _stprintf_s(file_path_tmp, _MAX_PATH, _T("%s.mzt"), get_file_path_without_extensiton(file_path));
-               }
-               // save blocks as mzt file
-               FILEIO* fio = new FILEIO();
-               if(!fio->Fopen(file_path_tmp, FILEIO_WRITE_BINARY)) {
-                       fio->Fopen(emu->bios_path(_T("temporary_saved_quick_disk.mzt")), FILEIO_WRITE_BINARY);
-               }
-               if(fio->IsOpened()) {
-                       int block_num = buffer[4];
-                       buffer_ptr = 10;
-                       
-                       for(int i = 0; i < block_num; i++) {
-                               if(buffer[buffer_ptr] == DATA_EMPTY) {
-                                       break;
-                               }
-                               int id = buffer[buffer_ptr + 3] & 3;
-                               int size = buffer[buffer_ptr + 4] | (buffer[buffer_ptr + 5] << 8);
-                               buffer_ptr += 6;
-                               
-                               if(id == HEADER_BLOCK_ID) {
-                                       // create mzt header
-                                       uint8 header[MZT_HEADER_SIZE];
-                                       memset(header, 0, sizeof(header));
-                                       
-                                       header[0x00] = (uint8)buffer[buffer_ptr + 0];   // attribute
-                                       for(int i = 1; i <= 17; i++) {
-                                               header[i] = (uint8)buffer[buffer_ptr + i];      // file name
-                                       }
-                                       header[0x3e] = (uint8)buffer[buffer_ptr + 18];  // lock
-                                       header[0x3f] = (uint8)buffer[buffer_ptr + 19];  // lock
-                                       header[0x12] = (uint8)buffer[buffer_ptr + 20];  // file size
-                                       header[0x13] = (uint8)buffer[buffer_ptr + 21];
-                                       header[0x14] = (uint8)buffer[buffer_ptr + 22];  // load addr
-                                       header[0x15] = (uint8)buffer[buffer_ptr + 23];
-                                       header[0x16] = (uint8)buffer[buffer_ptr + 24];  // exec addr
-                                       header[0x17] = (uint8)buffer[buffer_ptr + 25];
-                                       fio->Fwrite(header, MZT_HEADER_SIZE, 1);
-                               } else {
-                                       // data
-                                       for(int i = 0; i < size; i++) {
-                                               fio->Fputc(buffer[buffer_ptr + i]);
-                                       }
-                               }
-                               buffer_ptr += size + 5;
-                       }
-                       fio->Fclose();
-               }
-               delete fio;
-       }
-}
-
-#define STATE_VERSION  1
-
-void QUICKDISK::save_state(FILEIO* state_fio)
-{
-       state_fio->FputUint32(STATE_VERSION);
-       state_fio->FputInt32(this_device_id);
-       
-       state_fio->Fwrite(file_path, sizeof(file_path), 1);
-       state_fio->FputBool(insert);
-       state_fio->FputBool(protect);
-       state_fio->FputBool(home);
-       state_fio->FputBool(modified);
-       state_fio->FputBool(accessed);
-       state_fio->Fwrite(buffer, sizeof(buffer), 1);
-       state_fio->FputInt32(buffer_ptr);
-       state_fio->FputInt32(write_ptr);
-       state_fio->FputBool(first_data);
-       state_fio->FputBool(send_break);
-       state_fio->FputBool(wrga);
-       state_fio->FputBool(mton);
-       state_fio->FputBool(sync);
-       state_fio->FputBool(motor_on);
-       state_fio->FputInt32(restore_id);
-       state_fio->FputInt32(end_id);
-}
-
-bool QUICKDISK::load_state(FILEIO* state_fio)
-{
-       if(state_fio->FgetUint32() != STATE_VERSION) {
-               return false;
-       }
-       if(state_fio->FgetInt32() != this_device_id) {
-               return false;
-       }
-       state_fio->Fread(file_path, sizeof(file_path), 1);
-       insert = state_fio->FgetBool();
-       protect = state_fio->FgetBool();
-       home = state_fio->FgetBool();
-       modified = state_fio->FgetBool();
-       accessed = state_fio->FgetBool();
-       state_fio->Fread(buffer, sizeof(buffer), 1);
-       buffer_ptr = state_fio->FgetInt32();
-       write_ptr = state_fio->FgetInt32();
-       first_data = state_fio->FgetBool();
-       send_break = state_fio->FgetBool();
-       wrga = state_fio->FgetBool();
-       mton = state_fio->FgetBool();
-       sync = state_fio->FgetBool();
-       motor_on = state_fio->FgetBool();
-       restore_id = state_fio->FgetInt32();
-       end_id = state_fio->FgetInt32();
-       return true;
-}
-
diff --git a/source/src/vm/mz2500/quickdisk.h b/source/src/vm/mz2500/quickdisk.h
deleted file mode 100644 (file)
index e41fe23..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-       SHARP MZ-800 Emulator 'EmuZ-800'
-       SHARP MZ-1500 Emulator 'EmuZ-1500'
-       SHARP MZ-2200 Emulator 'EmuZ-2200'
-
-       Author : Takeda.Toshiya
-       Date   : 2011.02.17-
-
-       [ quick disk ]
-*/
-
-#ifndef _QUICKDISK_H_
-#define _QUICKDISK_H_
-
-#include "../vm.h"
-#include "../../emu.h"
-#include "../device.h"
-
-#define QUICKDISK_SIO_RTSA     0
-#define QUICKDISK_SIO_DTRB     1
-#define QUICKDISK_SIO_SYNC     2
-#define QUICKDISK_SIO_RXDONE   3
-#define QUICKDISK_SIO_DATA     4
-#define QUICKDISK_SIO_BREAK    5
-
-#define QUICKDISK_BUFFER_SIZE  65536
-
-class QUICKDISK : public DEVICE
-{
-private:
-       DEVICE *d_sio;
-       
-       _TCHAR file_path[_MAX_PATH];
-       bool insert, protect, home;
-       bool modified;
-       bool accessed;
-       
-       uint16 buffer[QUICKDISK_BUFFER_SIZE];
-       int buffer_ptr, write_ptr;
-       bool first_data;
-       bool send_break;
-       
-       bool wrga, mton, sync;
-       bool motor_on;
-       int restore_id, end_id;
-       
-       void restore();
-       void send_data();
-       void write_crc();
-       void end_of_disk();
-       void set_insert(bool val);
-       void set_protect(bool val);
-       void set_home(bool val);
-       void release_disk();
-       
-public:
-       QUICKDISK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
-       ~QUICKDISK() {}
-       
-       // common functions
-       void initialize();
-       void release();
-       void reset();
-       void write_signal(int id, uint32 data, uint32 mask);
-       uint32 read_signal(int ch);
-       void event_callback(int event_id, int err);
-       void save_state(FILEIO* state_fio);
-       bool load_state(FILEIO* state_fio);
-       
-       // unique functions
-       void set_context_sio(DEVICE* device)
-       {
-               d_sio = device;
-       }
-       void open_disk(_TCHAR path[]);
-       void close_disk();
-       bool disk_inserted()
-       {
-               return insert;
-       }
-};
-
-#endif
-
index 8114fd2..9adbaac 100644 (file)
 #endif
 
 // SHARP MZ-2200
+#ifdef _MZ2000
+#include "mz2500/mz80b.h"
+#endif
+
+// SHARP MZ-2200
 #ifdef _MZ2200
 #include "mz2500/mz80b.h"
 #endif