|
|
| version 1.2, 2003/10/21 11:22:05 | version 1.3, 2003/12/08 00:55:32 |
|---|---|
| Line 7 | Line 7 |
| // ---- I/O | // ---- I/O |
| static void IOOUTCALL upd4990_o20(UINT port, BYTE dat) { | static void IOOUTCALL upd4990_o20(UINT port, REG8 dat) { |
| BYTE mod; | REG8 mod; |
| BYTE cmd; | REG8 cmd; |
| mod = dat ^ uPD4990.last; | mod = dat ^ uPD4990.last; |
| uPD4990.last = dat; | uPD4990.last = (UINT8)dat; |
| if (dat & 0x08) { // STB | if (dat & 0x08) { // STB |
| if (mod & 0x08) { | if (mod & 0x08) { |
| Line 25 static void IOOUTCALL upd4990_o20(UINT p | Line 25 static void IOOUTCALL upd4990_o20(UINT p |
| case 0x00: // register hold | case 0x00: // register hold |
| uPD4990.regsft = 0; | uPD4990.regsft = 0; |
| break; | break; |
| case 0x01: // register shift | case 0x01: // register shift |
| uPD4990.regsft = 1; | uPD4990.regsft = 1; |
| uPD4990.pos = (UPD4990_REGLEN * 8) - 1; | uPD4990.pos = (UPD4990_REGLEN * 8) - 1; |
| break; | break; |
| case 0x02: // time set / counter hold | case 0x02: // time set / counter hold |
| uPD4990.regsft = 0; | uPD4990.regsft = 0; |
| break; | break; |
| case 0x03: // time read | case 0x03: // time read |
| uPD4990.regsft = 0; | uPD4990.regsft = 0; |
| ZeroMemory(uPD4990.reg, sizeof(uPD4990.reg)); | ZeroMemory(uPD4990.reg, sizeof(uPD4990.reg)); |