File:  [Isaki's NoNo m68k/m88k emulator] / nono / vm / romimg.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed Apr 29 17:04:32 2026 UTC (2 months, 3 weeks ago) by root
Branches: MAIN, Isaki
CVS tags: v003, HEAD
nono 0.0.3

//
// nono
// Copyright (C) 2018 [email protected]
//

#pragma once

#include "device.h"

class ROMDevice
	: public IODevice
{
	typedef IODevice inherited;
 public:
	ROMDevice();
	virtual ~ROMDevice();

	virtual uint64 Read8(uint32 addr);
	virtual uint64 Read16(uint32 addr);
	virtual uint64 Read32(uint32 addr);
	virtual uint64 Write8(uint32 addr, uint32 data);
	virtual uint64 Write16(uint32 addr, uint32 data);
	virtual uint64 Write32(uint32 addr, uint32 data);
	virtual uint64 Peek8(uint32 addr);

 protected:
	bool LoadROM(const char *name, int size);

	// アドレスマスク
	uint32 mask = 0;

	// オープンしているファイルのパスとディスクリプタ
	std::string filename {};
	int fd = 0;

	// mmap される領域とサイズ
	uint8 *file = NULL;
	size_t filesize = 0;

	// メモリ領域をさすポインタ。
	// 通常は ROM イメージファイルを読み込むだけなので mem = file となる。
	// ROM イメージを自分で用意したい場合はこれを適当なところにむけてどうぞ。
	uint8 *mem = NULL;
};

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.