--- nono/vm/device.h 2026/04/29 17:04:44 1.1.1.7 +++ nono/vm/device.h 2026/04/29 17:04:52 1.1.1.9 @@ -85,21 +85,11 @@ class Device : public Object virtual bool PowerOn(); virtual bool PowerOff(); - // ResetHard() は本体リセットスイッチによるリセット。 - // ResetSoft() は MPU の RESET 命令によるリセット。 - // - // X680x0 では、 - // o PowerOn でリセット : VIPS, VideoCtlr, OSCIAN2 - // o ResetHard でリセット: YUKI, MPU, FPU および ResetSoft の全員 - // o ResetSoft でリセット: PPI, PEDEC, SPC, ADPCM, FDC, MFP, SAKI, - // CYNTHIA, DMAC らしい - // o いずれでもリセットされないもの: CACHY, YM2151, RTC - // o 分からないけどたぶん ResetHard でリセット: SCC - // - // LUNA では、詳細分からないので全員 ResetHard にしとくか。 + // ResetHard() はこのデバイスのリセット。 + // このデバイスがどのタイミングでリセットされるかは VM による。 + // X68030 なら vm_x68k.cpp 内のコメント参照。 + // LUNA は詳細不明。 virtual void ResetHard(); - virtual void ResetSoft(); - }; class IODevice : public Device @@ -161,34 +151,26 @@ class NullDevice : public IODevice public: uint64 Read8(uint32 addr) override; + uint64 Read16(uint32 addr) override; + uint64 Read32(uint32 addr) override; uint64 Write8(uint32 addr, uint32 data) override; + uint64 Write16(uint32 addr, uint32 data) override; + uint64 Write32(uint32 addr, uint32 data) override; uint64 Peek8(uint32 addr) override; }; // 前方参照 class BitmapDevice; -class CRTC2Device; class DMACDevice; -class FuseROMDevice; class Human68k; class InterruptDevice; class IODevice; -class LanceDevice; class MK48T02Device; class MPUDevice; -class PIO0Device; -class PIO1Device; -class PROMDevice; -class RAMDevice; class SCSIDevice; class SCSIHD; -class SCSIHostDevice; class SCSITarget; -class SIODevice; -class SPCDevice; -class SysClkDevice; -class VM; -class XIOSpaceDevice; -class ZRAMDevice; extern std::vector gDevices; +extern std::unique_ptr gBusErr; +extern std::unique_ptr gNull;