#include	"compiler.h"
#include	"iocore.h"
#include	"advpsg.h"
#include	"makescrn.h"
enum {
	JOY_LEFT_BIT	= 0x04,
	JOY_RIGHT_BIT	= 0x08,
	JOY_UP_BIT		= 0x01,
	JOY_DOWN_BIT	= 0x02,
	JOY_BTN1_BIT	= 0x40,
	JOY_BTN2_BIT	= 0x20,
	JOY_BTN3_BIT	= 0x80,
	JOY_BTN4_BIT	= 0x10
};
static UINT		lastbtn;
void joymng_setflags(void) {
	REG16	flg;
	REG8	joy;
	flg = *REG_KEYINPUT;
	joy = 0xff;
	if (!(flg & ADVKEY_L)) {
		UINT modify;
		modify = lastbtn & (~flg);
		lastbtn = flg;
		if (modify & ADVKEY_RIGHT) {
			if (scrnpos.x < 80) scrnpos.x++;
		}
		if (modify & ADVKEY_LEFT) {
			if (scrnpos.x) scrnpos.x--;
		}
		if (modify & ADVKEY_UP) {
			if (scrnpos.y) scrnpos.y--;
		}
		if (modify & ADVKEY_DOWN) {
			if (scrnpos.y < 25) scrnpos.y++;
		}
		if (modify & (ADVKEY_RIGHT | ADVKEY_LEFT | ADVKEY_UP | ADVKEY_DOWN)) {
			crtc.e.scrnallflash = 1;
		}
		return;
	}
	lastbtn = 0;
	if (!(flg & ADVKEY_A)) {
		joy ^= JOY_BTN1_BIT;
	}
	if (!(flg & ADVKEY_B)) {
		joy ^= JOY_BTN2_BIT;
	}
	if (!(flg & ADVKEY_RIGHT)) {
		joy ^= JOY_RIGHT_BIT;
	}
	if (!(flg & ADVKEY_LEFT)) {
		joy	^= JOY_LEFT_BIT;
	}
	if (!(flg & ADVKEY_UP)) {
		joy ^= JOY_UP_BIT;
	}
	if (!(flg & ADVKEY_DOWN)) {
		joy ^= JOY_DOWN_BIT;
	}
	// こっちからセットしてやる
	advpsg.reg.io1 = joy;
}
RetroPC.NET-CVS <cvs@retropc.net>