00001 #ifndef __ARCH_IBMPC_FLOPPY_H__
00002 #define __ARCH_IBMPC_FLOPPY_H__
00003
00008 #include "arch/ibmpc/ibmpc.h"
00009 #include "arch/ibmpc/dma.h"
00010
00011 #include <map>
00012 #include <deque>
00013
00014 namespace IBMPC
00015 {
00016
00017 #include "arch/ibmpc/fdc_8272A.h"
00018
00020 class VDD_Floppy : public Device
00021 {
00023 enum
00024 {
00025 PORT_CONTROL = 0x3f2,
00026 PORT_STATUS = 0x3f4,
00027 PORT_COMMAND = 0x3f5,
00028 };
00029
00030
00031 fdc_8272A m_fdc;
00032
00033 public:
00034
00036 VDD_Floppy();
00037
00039 ~VDD_Floppy();
00040
00041
00042 virtual void init();
00043 virtual void done();
00044 virtual uint8 mem_read8(unsigned int addr);
00045 virtual void mem_write8(unsigned int addr, uint8 value);
00046 virtual uint8 port_read8(unsigned int port_index);
00047 virtual void port_write8(unsigned int port_index, uint8 value);
00048 virtual void irq_ack();
00049 };
00050 };
00051
00052 #endif