--- np2/io/upd4990.c 2003/10/16 17:57:58 1.1 +++ np2/io/upd4990.c 2007/11/03 00:00:20 1.5 @@ -1,6 +1,5 @@ #include "compiler.h" #include "timemng.h" -#include "i286.h" #include "pccore.h" #include "iocore.h" #include "calendar.h" @@ -8,13 +7,13 @@ // ---- I/O -static void IOOUTCALL upd4990_o20(UINT port, BYTE dat) { +static void IOOUTCALL upd4990_o20(UINT port, REG8 dat) { - BYTE mod; - BYTE cmd; + REG8 mod; + REG8 cmd; mod = dat ^ uPD4990.last; - uPD4990.last = dat; + uPD4990.last = (UINT8)dat; if (dat & 0x08) { // STB if (mod & 0x08) { @@ -26,13 +25,17 @@ static void IOOUTCALL upd4990_o20(UINT p case 0x00: // register hold uPD4990.regsft = 0; break; + case 0x01: // register shift uPD4990.regsft = 1; uPD4990.pos = (UPD4990_REGLEN * 8) - 1; + uPD4990.cdat = uPD4990.reg[UPD4990_REGLEN - 1] & 1; break; + case 0x02: // time set / counter hold uPD4990.regsft = 0; break; + case 0x03: // time read uPD4990.regsft = 0; ZeroMemory(uPD4990.reg, sizeof(uPD4990.reg)); @@ -92,9 +95,11 @@ static void IOOUTCALL upd4990_o20(UINT p static const IOOUT updo20[1] = {upd4990_o20}; -void uPD4990_reset(void) { +void uPD4990_reset(const NP2CFG *pConfig) { ZeroMemory(&uPD4990, sizeof(uPD4990)); + + (void)pConfig; } void uPD4990_bind(void) {