/*	
 *	framgbs.h
 *
 *	P/ECE GBS Driver
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2004 Naoyuki Sawa
 *
 *	* Thu Jan 15 20:09:00 JST 2004 Naoyuki Sawa
 *	- 作成開始。
 */
#include "clip.h"

/****************************************************************************
 *	DMGエミュレーション用外部関数
 ****************************************************************************/

void
gbs_dmg_write(DMG* dmg, unsigned short addr, unsigned char data)
{
	GBSDRIVER* gbs = (GBSDRIVER*)dmg;

	switch(addr >> 12) {
	/*===== 2000-3fff: ROM Area1バンク制御 =====*/
	case 0x2:
	case 0x3:
		gbs_rom1_bank(gbs, data);
		return;
	/*===== a000-bfff: 8KBカートリッジRAM ====*/
	/*===== c000-dfff: 8KB内蔵RAM         ====*/
	case 0xa:
	case 0xb:
	case 0xc:
	case 0xd:
		gbs->mem[addr] = data;
		return;
	/*===== ff00-ff7f: I/O(後半は空き) ====*/
	/*===== ff80-fffe: スタック&ワークRAM ====*/
	/*===== ffff: 割り込み許可レジスタ =====*/
	case 0xf:
		if(addr >= 0xff00) gbs_dmg_out(dmg, (unsigned char)addr, data);
		return;
	}
}

