|
|
| version 1.1, 2003/10/16 17:57:57 | version 1.3, 2003/10/25 20:51:53 |
|---|---|
| Line 149 void itimer_setflag(int ch, BYTE value) | Line 149 void itimer_setflag(int ch, BYTE value) |
| pit.mode[ch] = value; | pit.mode[ch] = value; |
| } | } |
| else { // latch | else { // latch |
| pit.mode[ch] &= ~0x30; | |
| pit.latch[ch].w = itimer_latch(ch); | pit.latch[ch].w = itimer_latch(ch); |
| } | } |
| } | } |
| Line 217 BYTE itimer_getcount(int ch) { | Line 218 BYTE itimer_getcount(int ch) { |
| // system timer | // system timer |
| static void IOOUTCALL pit_o71(UINT port, BYTE dat) { | static void IOOUTCALL pit_o71(UINT port, BYTE dat) { |
| // TRACEOUT(("pic71: %d", dat)); | |
| if (itimer_setcount(0, dat)) { | if (itimer_setcount(0, dat)) { |
| return; | return; |
| } | } |
| Line 257 static void IOOUTCALL pit_o77(UINT port, | Line 259 static void IOOUTCALL pit_o77(UINT port, |
| int ch; | int ch; |
| // TRACEOUT(("pic77: %x", dat)); | |
| ch = (dat >> 6) & 3; | ch = (dat >> 6) & 3; |
| if (ch != 3) { | if (ch != 3) { |
| itimer_setflag(ch, dat); | itimer_setflag(ch, dat); |
| if (ch == 0) { // 書込みで itimerのirrがリセットされる… | if (ch == 0) { // 書込みで itimerのirrがリセットされる… |
| pic.pi[0].irr &= (~1); | pic.pi[0].irr &= (~1); |
| setsystimerevent(NEVENT_ABSOLUTE); | |
| } | } |
| if (ch == 1) { | if (ch == 1) { |
| beep_modeset(); | beep_modeset(); |