OSDN Git Service

[VM][FM16BETA] Remove main.cpp and main.h they are unneeded.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 12 Dec 2022 03:37:54 +0000 (12:37 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 12 Dec 2022 03:37:54 +0000 (12:37 +0900)
source/src/vm/fm16beta/main.cpp [deleted file]
source/src/vm/fm16beta/main.h [deleted file]
source/src/vm/fm16beta/mainbus.cpp

diff --git a/source/src/vm/fm16beta/main.cpp b/source/src/vm/fm16beta/main.cpp
deleted file mode 100644 (file)
index b928a8a..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-/*\r
-       FUJITSU FM16beta Emulator 'eFM16beta'\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2017.12.28-\r
-\r
-       [ main system ]\r
-*/\r
-\r
-#include "main.h"\r
-#include "sub.h"\r
-#include "keyboard.h"\r
-#include "../disk.h"\r
-#include "../i8237.h"\r
-#include "../i8259.h"\r
-#ifdef HAS_I286\r
-#include "../i286.h"\r
-#endif\r
-#include "../mb8877.h"\r
-#include "../msm58321.h"\r
-#include "../pcm1bit.h"\r
-\r
-void MAIN::initialize()\r
-{\r
-       MEMORY::initialize();\r
-       \r
-       memset(ram, 0x00, sizeof(ram));\r
-       memset(rom, 0xff, sizeof(rom));\r
-       direct = 0;\r
-       \r
-       read_bios(_T("IPL.ROM"), rom, sizeof(rom));\r
-       \r
-       set_memory_rw(0x00000, 0xfbfff, ram);\r
-       set_memory_r(0xfc000, 0xfffff, rom);\r
-       \r
-       // main-sub\r
-//     sub_busy = false;\r
-       \r
-       // 1mb fdd\r
-       sidereg_2hd = 0;        // side 0\r
-       drvreg_2hd = 0;         // drive #0, motor on\r
-       drq_2hd = false;\r
-       d_fdc_2hd->write_signal(SIG_MB8877_MOTOR, 1, 1);\r
-       d_fdc_2hd->write_signal(SIG_MB8877_DRIVEREG, 0, 3);\r
-       \r
-       // 320kb fdd\r
-       sidereg_2d = 0;         // side 0\r
-       drvreg_2d = 0x80;       // drive #0, motor on\r
-       drq_2d = false;\r
-       d_fdc_2d->write_signal(SIG_MB8877_MOTOR, 1, 1);\r
-       d_fdc_2d->write_signal(SIG_MB8877_DRIVEREG, 0, 3);\r
-       \r
-       // rtc\r
-       rtc_data = 0;\r
-       \r
-       // irq\r
-       irq_enb = ext_irq_enb = 0;\r
-       irq0_tx = irq0_rx = irq0_syn = irq1 = irq2 = irq3 = irq4 = irq5 = irq6 = irq7 = irq8 = irq9 = false;\r
-       firq0 = firq1 = firq2 = firq3 = false;\r
-       int0 = int1 = int2 = int3 = int4 = int5 = int6 = int7 = false;\r
-}\r
-\r
-void MAIN::release()\r
-{\r
-       MEMORY::release();\r
-}\r
-\r
-void MAIN::reset()\r
-{\r
-       MEMORY::reset();\r
-       \r
-#ifdef HAS_I286\r
-       d_dma->set_address_mask(0x000fffff);\r
-       d_cpu->set_address_mask(0x000fffff);\r
-       rst = 0x00;\r
-#endif\r
-       \r
-       \r
-       d_pcm->write_signal(SIG_PCM1BIT_ON, 0, 0);\r
-}\r
-\r
-void MAIN::write_io8(uint32_t addr, uint32_t data)\r
-{\r
-       uint8_t change;\r
-       \r
-       switch(addr) {\r
-       case 0x0020:\r
-               d_dma->write_signal(SIG_I8237_BANK0, data, 0xff);\r
-               break;\r
-       case 0x0021:\r
-               d_dma->write_signal(SIG_I8237_BANK1, data, 0xff);\r
-               break;\r
-       case 0x0022:\r
-               d_dma->write_signal(SIG_I8237_BANK2, data, 0xff);\r
-               break;\r
-       case 0x0023:\r
-               d_dma->write_signal(SIG_I8237_BANK3, data, 0xff);\r
-               break;\r
-\r
-\r
-#ifdef HAS_I286\r
-       case 0x0060:\r
-               if((data & 0xc0) == 0x40) {\r
-                       d_cpu->reset();\r
-                       rst |= 0x01;\r
-               }\r
-               if(data & 0x01) {\r
-                       d_dma->set_address_mask(0x00ffffff);\r
-                       d_cpu->set_address_mask(0x00ffffff);\r
-               } else {\r
-                       d_dma->set_address_mask(0x000fffff);\r
-                       d_cpu->set_address_mask(0x000fffff);\r
-               }\r
-               break;\r
-#endif\r
-       case 0xfd02:\r
-               change = irq_enb ^ data;\r
-               irq_enb = data;\r
-               if(change & 0x01) update_int7();        // Printer\r
-               if(change & 0x0e) update_int4();        // RS-232C\r
-               if(change & 0x10) update_int0();        // PTM\r
-               if(change & 0x20) update_int6();        // 320KB FDD\r
-               if(change & 0x80) update_int1();        // Keyboard\r
-               break;\r
-       case 0xfd03:\r
-               d_pcm->write_signal(SIG_PCM1BIT_ON, data, 0x80);\r
-               break;\r
-\r
-       case 0xfd04:\r
-               d_sub->write_signal(SIG_SUB_MAINACK, 1, 1);\r
-               break;\r
-\r
-       case 0xfd05:\r
-               d_sub->write_signal(SIG_SUB_HALT, data, 0x80);\r
-               d_sub->write_signal(SIG_SUB_CANCEL, data, 0x40);\r
-               break;\r
-\r
-       case 0xfd0f:\r
-               change = direct ^ data;\r
-               direct = data;\r
-               if(change & 0x80) {\r
-                       if(direct & 0x80) {\r
-                               set_memory_mapped_io_rw(0xc0000, 0xcffff, d_sub);\r
-                       } else {\r
-                               set_memory_rw(0xc0000, 0xcffff, ram + 0xc0000);\r
-                       }\r
-               }\r
-               d_keyboard->write_signal(SIG_KEYBOARD_INSLED, data, 0x02);\r
-               break;\r
-       case 0xfd10:\r
-               d_rtc->write_signal(SIG_MSM58321_DATA, data, 0x0f);\r
-               break;\r
-       case 0xfd11:\r
-               d_rtc->write_signal(SIG_MSM58321_CS, data, 0x80);\r
-               d_rtc->write_signal(SIG_MSM58321_READ, data, 0x04);\r
-               d_rtc->write_signal(SIG_MSM58321_WRITE, data, 0x02);\r
-               d_rtc->write_signal(SIG_MSM58321_ADDR_WRITE, data, 0x01);\r
-               break;\r
-\r
-       case 0xfd1c:\r
-               d_fdc_2d->write_signal(SIG_MB8877_SIDEREG, data, 0x01);\r
-               sidereg_2d = data;\r
-               break;\r
-       case 0xfd1d:\r
-               d_fdc_2d->write_signal(SIG_MB8877_MOTOR, data, 0x80);\r
-               d_fdc_2d->write_signal(SIG_MB8877_DRIVEREG, data, 0x03);\r
-               drvreg_2d = data;\r
-               break;\r
-\r
-\r
-       case 0xfd2c:\r
-               change = ext_irq_enb ^ data;\r
-               ext_irq_enb = data;\r
-               if(change & 0x08) update_int2();        // 1MB FDD\r
-               break;\r
-\r
-       case 0xfd34:\r
-               d_fdc_2hd->write_signal(SIG_MB8877_SIDEREG, data, 0x01);\r
-               sidereg_2hd = data;\r
-               break;\r
-       case 0xfd35:\r
-               d_fdc_2hd->write_signal(SIG_MB8877_MOTOR, ~data, 0x80);\r
-               d_fdc_2hd->write_signal(SIG_MB8877_DRIVEREG, data, 0x03);\r
-               drvreg_2hd = data;\r
-               break;\r
-\r
-       }\r
-}\r
-\r
-uint32_t MAIN::read_io8(uint32_t addr)\r
-{\r
-       switch(addr) {\r
-#ifdef HAS_I286\r
-       case 0x0060:\r
-               {\r
-                       uint8_t val = rst | (d_cpu->get_shutdown_flag() << 1);\r
-                       rst = 0;\r
-                       d_cpu->set_shutdown_flag(0);\r
-                       return val;\r
-               }\r
-#endif\r
-       case 0xfd03:\r
-               return (irq8 ? 0x01 : 0) | (irq7 ? 0x02 : 0) | (irq4 ? 0x08 : 0) | (irq3 ? 0x10 : 0) | (irq2 ? 0x20 : 0) | (irq1 ? 0x40 : 0) | (irq0_tx || irq0_rx || irq0_syn ? 0x80 : 0);\r
-\r
-\r
-       case 0xfd04:\r
-               return (firq0 ? 0x01 : 0) | (firq1 ? 0x02 : 0) | (firq2 ? 0x80 : 0);\r
-\r
-       case 0xfd05:\r
-               return (sub_busy ? 0x80 : 0);\r
-\r
-       case 0xfd0f:\r
-               return direct;\r
-\r
-       case 0xfd10:\r
-               return rtc_data;\r
-\r
-       case 0xfd1c:\r
-               return sidereg_2d;\r
-       case 0xfd1d:\r
-               return drvreg_2d;\r
-       case 0xfd1f:\r
-               return (irq4 ? 0x40 : 0) | (drq_2d ? 0x80 : 0);\r
-\r
-       case 0xfd2c:\r
-               return (irq6 ? 0x04 : 0) | (irq5 ? 0x40 : 0);\r
-\r
-       case 0xfd34:\r
-               return sidereg_2hd;\r
-       case 0xfd35:\r
-               return drvreg_2hd;\r
-       case 0xfd36:\r
-               {\r
-                       uint8_t val = 0x40; // DSNS=1\r
-                       if(d_fdc_2hd->read_signal(SIG_MB8877_MOTOR)) {\r
-                               for(int i = 0; i < 4; i++) {\r
-                                       if(d_fdc_2hd->is_disk_inserted(i)) {\r
-                                               val |= 1 << i;\r
-                                       }\r
-                               }\r
-                       }\r
-                       DISK *disk = d_fdc_2hd->get_disk_handler(drvreg_2hd & 3);\r
-                       if(disk->get_rpm() == 300) {\r
-                               val |= 0x20;\r
-                       }\r
-                       if(disk->inserted && disk->two_side) {\r
-                               val |= 0x80;\r
-                       }\r
-                       return val;\r
-               }\r
-       case 0xfd37:\r
-               return (irq5 ? 0x40 : 0) | (drq_2hd ? 0x80 : 0);\r
-\r
-//     case 0xfda0:\r
-\r
-       }\r
-       return 0xff;\r
-}\r
-\r
-void MAIN::write_signal(int id, uint32_t data, uint32_t mask)\r
-{\r
-       if(id == SIG_MAIN_IRQ0_TX) {\r
-               irq0_tx = ((data & mask) != 0);\r
-               update_int4();\r
-       } else if(id == SIG_MAIN_IRQ0_RX) {\r
-               irq0_rx = ((data & mask) != 0);\r
-               update_int4();\r
-       } else if(id == SIG_MAIN_IRQ0_SYN) {\r
-               irq0_syn = ((data & mask) != 0);\r
-               update_int4();\r
-       } else if(id == SIG_MAIN_IRQ1) {\r
-               if(!(irq_enb & 0x80)) {\r
-                       d_sub->write_signal(SIG_SUB_KEY, data, mask);\r
-               }\r
-               irq1 = ((data & mask) != 0);\r
-               update_int1();\r
-       } else if(id == SIG_MAIN_IRQ2) {\r
-               irq2 = ((data & mask) != 0);\r
-               update_int5();\r
-       } else if(id == SIG_MAIN_IRQ3) {\r
-               irq3 = ((data & mask) != 0); // dma\r
-//             update_int*();\r
-       } else if(id == SIG_MAIN_IRQ4) {\r
-               irq4 = ((data & mask) != 0);\r
-               update_int6();\r
-       } else if(id == SIG_MAIN_IRQ5) {\r
-               irq5 = ((data & mask) != 0);\r
-               update_int2();\r
-       } else if(id == SIG_MAIN_IRQ6) {\r
-               irq6 = ((data & mask) != 0);\r
-               update_int2();\r
-       } else if(id == SIG_MAIN_IRQ7) {\r
-               irq7 = ((data & mask) != 0);\r
-               update_int6();\r
-       } else if(id == SIG_MAIN_IRQ8) {\r
-               irq8 = ((data & mask) != 0);\r
-               update_int0();\r
-       } else if(id == SIG_MAIN_IRQ9) {\r
-               irq9 = ((data & mask) != 0);\r
-               update_int5();\r
-       } else if(id == SIG_MAIN_FIRQ0) {\r
-               firq0 = ((data & mask) != 0);\r
-               update_int3();\r
-       } else if(id == SIG_MAIN_FIRQ1) {\r
-               firq1 = ((data & mask) != 0);\r
-               update_int1();\r
-       } else if(id == SIG_MAIN_FIRQ2) {\r
-               firq2 = ((data & mask) != 0);\r
-               update_int3();\r
-       } else if(id == SIG_MAIN_FIRQ3) {\r
-               firq3 = ((data & mask) != 0);\r
-               update_int3();\r
-       } else if(id == SIG_MAIN_SUB_BUSY) {\r
-               sub_busy = ((data & mask) != 0);\r
-\r
-this->out_debug_log(_T("SUB -> MAIN: SUB BUSY = %d\n"), sub_busy);\r
-\r
-       } else if(id == SIG_MAIN_DRQ_2HD) {\r
-               drq_2hd = ((data & mask) != 0);\r
-       } else if(id == SIG_MAIN_DRQ_2D) {\r
-               drq_2d = ((data & mask) != 0);\r
-       } else if(id == SIG_MAIN_RTC_DATA) {\r
-               rtc_data = (data & mask) | (rtc_data & ~mask);\r
-       } else if(id == SIG_MAIN_RTC_BUSY) {\r
-               rtc_data = (data & mask) | (rtc_data & ~mask);\r
-       }\r
-}\r
-\r
-/*\r
-IRQ8                   -> INT0\r
-       IRQ8: \83^\83C\83}\81[\r
-IRQ1 + FIRQ1           -> INT1\r
-       IRQ1: \83L\81[\83{\81[\83h\r
-       FIRQ1: BREAK\83L\81[\r
-IRQ5 + IRQ6            -> INT2\r
-       IRQ5: IMB\83t\83\8d\83b\83s\83B\83f\83B\83X\83N\r
-       IRQ6: \83n\81[\83h\83f\83B\83X\83N\r
-FIRQ0 + FIRQ2 + FIRQ3  -> INT3\r
-       FIRQ0: SUB\83A\83e\83\93\83V\83\87\83\93\r
-       FIRQ2: \8ag\92£\r
-       FIRQ3: \83\86\81[\83U\97p\r
-IRQ0                   -> INT4\r
-       IRQ0: RS-232C\r
-IRQ2 + IRQ9 + INTNDP   -> INT5\r
-       IRQ2: \8ag\92£\r
-       IRQ9: \83\86\81[\83U\97p\r
-IRQ4                   -> INT6\r
-       IRQ4: 320KB\83t\83\8d\83b\83s\83B\83f\83B\83X\83N\r
-IRQ7                   -> INT7\r
-       IRQ7: \83v\83\8a\83\93\83^\r
-*/\r
-\r
-void MAIN::update_int0()\r
-{\r
-//     bool prev = int0;\r
-       int0 = (irq8 && (irq_enb & 0x10));\r
-//     if(prev != int0) {\r
-               d_pic->write_signal(SIG_I8259_IR0, int0 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int1()\r
-{\r
-//     bool prev = int1;\r
-       int1 = (irq1 && (irq_enb & 0x80)) || firq1;\r
-//     if(prev != int1) {\r
-               d_pic->write_signal(SIG_I8259_IR1, int1 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int2()\r
-{\r
-//     bool prev = int2;\r
-       int2 = (irq5 && (ext_irq_enb & 0x08)) || irq6;\r
-//     if(prev != int2) {\r
-               d_pic->write_signal(SIG_I8259_IR2, int2 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int3()\r
-{\r
-//     bool prev = int3;\r
-       int3 = firq0 || firq2 || firq3;\r
-//     if(prev != int3) {\r
-               d_pic->write_signal(SIG_I8259_IR3, int3 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int4()\r
-{\r
-//     bool prev = int4;\r
-       int4 = (irq0_tx && (irq_enb & 0x02)) || (irq0_rx && (irq_enb & 0x04)) || (irq0_syn && (irq_enb & 0x08));\r
-//     if(prev != int4) {\r
-               d_pic->write_signal(SIG_I8259_IR4, int4 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int5()\r
-{\r
-//     bool prev = int5;\r
-       int5 = irq2 || irq9;\r
-//     if(prev != int5) {\r
-               d_pic->write_signal(SIG_I8259_IR5, int5 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int6()\r
-{\r
-//     bool prev = int6;\r
-       int6 = (irq6 && (irq_enb & 0x20));\r
-//     if(prev != int6) {\r
-               d_pic->write_signal(SIG_I8259_IR6, int6 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-void MAIN::update_int7()\r
-{\r
-//     bool prev = int7;\r
-       int7 = irq7 && (irq_enb & 0x01);\r
-//     if(prev != int7) {\r
-               d_pic->write_signal(SIG_I8259_IR7, int7 ? 1 : 0, 1);\r
-//     }\r
-}\r
-\r
-#define STATE_VERSION  1\r
-\r
-bool MAIN::process_state(FILEIO* state_fio, bool loading)\r
-{\r
-       if(!state_fio->StateCheckUint32(STATE_VERSION)) {\r
-               return false;\r
-       }\r
-       if(!state_fio->StateCheckInt32(this_device_id)) {\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
diff --git a/source/src/vm/fm16beta/main.h b/source/src/vm/fm16beta/main.h
deleted file mode 100644 (file)
index 6de8df0..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*\r
-       FUJITSU FM16beta Emulator 'eFM16beta'\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2017.12.28-\r
-\r
-       [ main system ]\r
-*/\r
-\r
-#ifndef _MAIN_H_\r
-#define _MAIN_H_\r
-\r
-#include "../memory.h"\r
-\r
-#define SIG_MAIN_IRQ0_TX       0       // RS-232C\r
-#define SIG_MAIN_IRQ0_RX       1       // RS-232C\r
-#define SIG_MAIN_IRQ0_SYN      2       // RS-232C\r
-#define SIG_MAIN_IRQ1          3       // Keyboard\r
-#define SIG_MAIN_IRQ2          4       // Expantion\r
-#define SIG_MAIN_IRQ3          5       // DMA Controller\r
-#define SIG_MAIN_IRQ4          6       // 320KB Floppy Disk\r
-#define SIG_MAIN_IRQ5          7       // 1MB Floppy Disk\r
-#define SIG_MAIN_IRQ6          8       // Hard Disk\r
-#define SIG_MAIN_IRQ7          9       // Printer\r
-#define SIG_MAIN_IRQ8          10      // PTM\r
-#define SIG_MAIN_IRQ9          11      // User\r
-#define SIG_MAIN_FIRQ0         12      // Sub system attention\r
-#define SIG_MAIN_FIRQ1         13      // Break\r
-#define SIG_MAIN_FIRQ2         14      // Expantion\r
-#define SIG_MAIN_FIRQ3         15      // User\r
-\r
-#define SIG_MAIN_SUB_BUSY      16\r
-\r
-#define SIG_MAIN_DRQ_2HD       17\r
-#define SIG_MAIN_DRQ_2D                18\r
-\r
-#define SIG_MAIN_RTC_DATA      19\r
-#define SIG_MAIN_RTC_BUSY      20\r
-\r
-#ifdef HAS_I286\r
-class I286;\r
-#endif\r
-class I8237;\r
-class MB8877;\r
-\r
-class MAIN : public MEMORY\r
-{\r
-private:\r
-#ifdef HAS_I286\r
-       I286 *d_cpu;\r
-       uint8_t rst;\r
-#endif\r
-       I8237 *d_dma;\r
-       DEVICE *d_pic;\r
-       DEVICE *d_pcm;\r
-       DEVICE *d_keyboard;\r
-\r
-       // memory\r
-       uint8_t ram[0xfc000];\r
-       uint8_t rom[0x04000];\r
-       uint8_t direct;\r
-       \r
-       // main-sub\r
-       DEVICE *d_sub;\r
-       bool sub_busy;\r
-       \r
-       // 1mb fdd\r
-       MB8877 *d_fdc_2hd;\r
-       uint8_t sidereg_2hd, drvreg_2hd;\r
-       bool drq_2hd;\r
-       \r
-       // 320kb fdd\r
-       MB8877 *d_fdc_2d;\r
-       uint8_t sidereg_2d, drvreg_2d;\r
-       bool drq_2d;\r
-       \r
-       // rtc\r
-       DEVICE *d_rtc;\r
-       uint8_t rtc_data;\r
-       \r
-       // irq\r
-       uint8_t irq_enb, ext_irq_enb;\r
-       bool irq0_tx, irq0_rx, irq0_syn, irq1, irq2, irq3, irq4, irq5, irq6, irq7, irq8, irq9;\r
-       bool firq0, firq1, firq2, firq3;\r
-       bool int0, int1, int2, int3, int4, int5, int6, int7;\r
-       \r
-       void update_int0();\r
-       void update_int1();\r
-       void update_int2();\r
-       void update_int3();\r
-       void update_int4();\r
-       void update_int5();\r
-       void update_int6();\r
-       void update_int7();\r
-       \r
-public:\r
-       MAIN(VM_TEMPLATE* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)\r
-       {\r
-               set_device_name(_T("Main System"));\r
-       }\r
-       ~MAIN() {}\r
-       \r
-       // common functions\r
-       void initialize();\r
-       void release();\r
-       void reset();\r
-       void write_io8(uint32_t addr, uint32_t data);\r
-       uint32_t read_io8(uint32_t addr);\r
-       void write_signal(int id, uint32_t data, uint32_t mask);\r
-       bool process_state(FILEIO* state_fio, bool loading);\r
-       \r
-       // unique functions\r
-#ifdef HAS_I286\r
-       void set_context_cpu(I286* device)\r
-       {\r
-               d_cpu = device;\r
-       }\r
-#endif\r
-       void set_context_dma(I8237* device)\r
-       {\r
-               d_dma = device;\r
-       }\r
-       void set_context_fdc_2hd(MB8877* device)\r
-       {\r
-               d_fdc_2hd = device;\r
-       }\r
-       void set_context_fdc_2d(MB8877* device)\r
-       {\r
-               d_fdc_2d = device;\r
-       }\r
-       void set_context_pic(DEVICE* device)\r
-       {\r
-               d_pic = device;\r
-       }\r
-       void set_context_pcm(DEVICE* device)\r
-       {\r
-               d_pcm = device;\r
-       }\r
-       void set_context_rtc(DEVICE* device)\r
-       {\r
-               d_rtc = device;\r
-       }\r
-       void set_context_sub(DEVICE* device)\r
-       {\r
-               d_sub = device;\r
-       }\r
-       void set_context_keyboard(DEVICE* device)\r
-       {\r
-               d_keyboard = device;\r
-       }\r
-};\r
-\r
-#endif\r
index 8d6b843..541b439 100644 (file)
 #include "../disk.h"
 #include "../i8237.h"
 #include "../i8259.h"
-#include "../mb8877.h"
-#include "../msm58321.h"
-#include "../pcm1bit.h"
 #ifdef HAS_I286
 #include "../i286.h"
 #endif
+#include "../mb8877.h"
+#include "../msm58321.h"
+#include "../pcm1bit.h"
 
 using ::MEMORY;