⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapperfds.h

📁 著名的任天堂FC游戏机模拟器VirtuaNes 085版的源码!
💻 H
字号:
//////////////////////////////////////////////////////////////////////////
// Mapper020  Nintendo Disk System(FDS)                                 //
//////////////////////////////////////////////////////////////////////////
class	Mapper020 : public Mapper
{
public:
	Mapper020( NES* parent ) : Mapper(parent) {}

	void	Reset();

	BYTE	ExRead ( WORD addr );
	void	ExWrite( WORD addr, BYTE data );

	void	WriteLow( WORD addr, BYTE data );

	void	Write(WORD addr, BYTE data);

	void	Clock( INT cycles );
	void	HSync( INT scanline );
	void	VSync();

	BYTE	ExCmdRead ( EXCMDRD cmd );
	void	ExCmdWrite( EXCMDWR cmd, BYTE data );

	// For state save
	BOOL	IsStateSave() { return TRUE; }
	void	SaveState( LPBYTE p );
	void	LoadState( LPBYTE p );

protected:
	enum	{
		BLOCK_READY = 0,
		BLOCK_VOLUME_LABEL,
		BLOCK_FILE_AMOUNT,
		BLOCK_FILE_HEADER,
		BLOCK_FILE_DATA,
	};
	enum	{
		SIZE_VOLUME_LABEL = 56,
		SIZE_FILE_AMOUNT = 2,
		SIZE_FILE_HEADER = 16,
	};
	enum	{
		OFFSET_VOLUME_LABEL = 0,
		OFFSET_FILE_AMOUNT = 56,
		OFFSET_FILE_HEADER = 58,
		OFFSET_FILE_DATA = 74,
	};

	enum	{
		MECHANICAL_SOUND_BOOT = 0,
		MECHANICAL_SOUND_SEEKEND,
		MECHANICAL_SOUND_MOTOR_ON,
		MECHANICAL_SOUND_MOTOR_OFF,
		MECHANICAL_SOUND_ALLSTOP,
	};

	BOOL	bDiskThrottle;
	INT	DiskThrottleTime;

	LPBYTE	disk;
	LPBYTE	disk_w;

	INT	irq_counter, irq_latch;	// $4020-$4021
	BYTE	irq_enable, irq_repeat;	// $4022
	BYTE	irq_occur;		// IRQ敪惗帪偵0埲奜偵側傞
	BYTE	irq_transfer;		// 妱傝崬傒揮憲僼儔僌

	BYTE	disk_enable;		// Disk I/O enable
	BYTE	sound_enable;		// Sound I/O enable
	BYTE	RW_start;		// 撉傒彂偒壜擻偵側偭偨傜IRQ敪惗
	BYTE	RW_mode;		// 撉傒彂偒儌乕僪
	BYTE	disk_motor_mode;	// 僨傿僗僋儌乕僞乕
	BYTE	disk_eject;		// 僨傿僗僋僇乕僪偺憓擖/旕憓擖
	BYTE	drive_ready;		// 撉傒彂偒拞偐偳偆偐
	BYTE	drive_reset;		// 僪儔僀僽儕僙僢僩忬懺

	INT	block_point;
	INT	block_mode;
	INT	size_file_data;
	INT	file_amount;
	INT	point;
	BYTE	first_access;

	BYTE	disk_side;
	BYTE	disk_mount_count;

	BYTE	irq_type;

	// For mechanical sound
	BYTE	sound_startup_flag;
	INT	sound_startup_timer;
	INT	sound_seekend_timer;

	void	MechanicalSound( INT type );

private:
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -