|
|
| version 1.2, 2003/11/12 20:02:54 | version 1.3, 2003/12/08 00:55:30 |
|---|---|
| Line 13 | Line 13 |
| // ---- 8253C-2 | // ---- 8253C-2 |
| static UINT16 pit3_latch(void) { | static UINT pit3_latch(void) { |
| SINT32 clock; | SINT32 clock; |
| Line 24 static UINT16 pit3_latch(void) { | Line 24 static UINT16 pit3_latch(void) { |
| if (pc.baseclock == PCBASECLOCK25) { | if (pc.baseclock == PCBASECLOCK25) { |
| clock = clock * 13 / 16; | clock = clock * 13 / 16; |
| } | } |
| return((UINT16)clock); | return(clock); |
| } | } |
| return(0); | return(0); |
| } | } |
| static void pit3_setflag(BYTE value) { | static void pit3_setflag(REG8 value) { |
| pit.flag[3] = 0; | pit.flag[3] = 0; |
| if (value & 0x30) { | if (value & 0x30) { |
| Line 41 static void pit3_setflag(BYTE value) { | Line 41 static void pit3_setflag(BYTE value) { |
| } | } |
| } | } |
| static BOOL pit3_setcount(BYTE value) { | static BOOL pit3_setcount(REG8 value) { |
| switch(pit.mode[3] & 0x30) { | switch(pit.mode[3] & 0x30) { |
| case 0x10: // access low | case 0x10: // access low |
| Line 67 static BOOL pit3_setcount(BYTE value) { | Line 67 static BOOL pit3_setcount(BYTE value) { |
| return(FALSE); | return(FALSE); |
| } | } |
| static BYTE pit3_getcount(void) { | static REG8 pit3_getcount(void) { |
| BYTE ret; | REG8 ret; |
| UINT16 w; | REG16 w; |
| if (!(pit.mode[3] & 0x30)) { | if (!(pit.mode[3] & 0x30)) { |
| w = pit.latch[3]; | w = pit.latch[3]; |
| Line 80 static BYTE pit3_getcount(void) { | Line 80 static BYTE pit3_getcount(void) { |
| } | } |
| switch(pit.mode[3] & 0x30) { | switch(pit.mode[3] & 0x30) { |
| case 0x10: // access low | case 0x10: // access low |
| return((BYTE)w); | return((UINT8)w); |
| case 0x20: // access high | case 0x20: // access high |
| return((BYTE)(w >> 8)); | return((UINT8)(w >> 8)); |
| } | } |
| // access word | // access word |
| if (!(pit.flag[3] & 1)) { | if (!(pit.flag[3] & 1)) { |
| ret = (BYTE)w; | ret = (UINT8)w; |
| } | } |
| else { | else { |
| ret = (BYTE)(w >> 8); | ret = (UINT8)(w >> 8); |
| } | } |
| pit.flag[3] ^= 1; | pit.flag[3] ^= 1; |
| return(ret); | return(ret); |
| Line 131 void musicgenint(NEVENTITEM item) { | Line 131 void musicgenint(NEVENTITEM item) { |
| // ---- I/O | // ---- I/O |
| static void IOOUTCALL musicgen_o088(UINT port, BYTE dat) { | static void IOOUTCALL musicgen_o088(UINT port, REG8 dat) { |
| musicgen.porta = dat; | musicgen.porta = dat; |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL musicgen_o08a(UINT port, BYTE dat) { | static void IOOUTCALL musicgen_o08a(UINT port, REG8 dat) { |
| musicgen.portb = dat; | musicgen.portb = dat; |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL musicgen_o08c(UINT port, BYTE dat) { | static void IOOUTCALL musicgen_o08c(UINT port, REG8 dat) { |
| if (dat & 0x80) { | if (dat & 0x80) { |
| if (!(musicgen.portc & 0x80)) { | if (!(musicgen.portc & 0x80)) { |
| Line 154 static void IOOUTCALL musicgen_o08c(UINT | Line 154 static void IOOUTCALL musicgen_o08c(UINT |
| musicgen.sync = 0; | musicgen.sync = 0; |
| sound_sync(); | sound_sync(); |
| musicgen.key[musicgen.ch] = dat; | musicgen.key[musicgen.ch] = dat; |
| tms3631_setkey(&tms3631, (BYTE)musicgen.ch, dat); | tms3631_setkey(&tms3631, (REG8)musicgen.ch, dat); |
| } | } |
| else if ((!(dat & 0x40)) && (musicgen.portc & 0x40)) { | else if ((!(dat & 0x40)) && (musicgen.portc & 0x40)) { |
| musicgen.sync = 1; | musicgen.sync = 1; |
| Line 165 static void IOOUTCALL musicgen_o08c(UINT | Line 165 static void IOOUTCALL musicgen_o08c(UINT |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL musicgen_o188(UINT port, BYTE dat) { | static void IOOUTCALL musicgen_o188(UINT port, REG8 dat) { |
| sound_sync(); | sound_sync(); |
| musicgen.mask = dat; | musicgen.mask = dat; |
| Line 173 static void IOOUTCALL musicgen_o188(UINT | Line 173 static void IOOUTCALL musicgen_o188(UINT |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL musicgen_o18c(UINT port, BYTE dat) { | static void IOOUTCALL musicgen_o18c(UINT port, REG8 dat) { |
| if (!pit3_setcount(dat)) { | if (!pit3_setcount(dat)) { |
| setmusicgenevent(NEVENT_ABSOLUTE); | setmusicgenevent(NEVENT_ABSOLUTE); |
| Line 181 static void IOOUTCALL musicgen_o18c(UINT | Line 181 static void IOOUTCALL musicgen_o18c(UINT |
| (void)port; | (void)port; |
| } | } |
| static void IOOUTCALL musicgen_o18e(UINT port, BYTE dat) { | static void IOOUTCALL musicgen_o18e(UINT port, REG8 dat) { |
| pit3_setflag(dat); | pit3_setflag(dat); |
| (void)port; | (void)port; |
| } | } |
| static BYTE IOINPCALL musicgen_i088(UINT port) { | static REG8 IOINPCALL musicgen_i088(UINT port) { |
| (void)port; | (void)port; |
| return(musicgen.porta); | return(musicgen.porta); |
| } | } |
| static BYTE IOINPCALL musicgen_i08a(UINT port) { | static REG8 IOINPCALL musicgen_i08a(UINT port) { |
| (void)port; | (void)port; |
| return(musicgen.portb); | return(musicgen.portb); |
| } | } |
| static BYTE IOINPCALL musicgen_i08c(UINT port) { | static REG8 IOINPCALL musicgen_i08c(UINT port) { |
| (void)port; | (void)port; |
| return(musicgen.portc); | return(musicgen.portc); |
| } | } |
| static BYTE IOINPCALL musicgen_i08e(UINT port) { | static REG8 IOINPCALL musicgen_i08e(UINT port) { |
| (void)port; | (void)port; |
| return(0x08); | return(0x08); |
| } | } |
| static BYTE IOINPCALL musicgen_i188(UINT port) { | static REG8 IOINPCALL musicgen_i188(UINT port) { |
| (void)port; | (void)port; |
| return(musicgen.mask); | return(musicgen.mask); |
| } | } |
| static BYTE IOINPCALL musicgen_i18c(UINT port) { | static REG8 IOINPCALL musicgen_i18c(UINT port) { |
| (void)port; | (void)port; |
| return(pit3_getcount()); | return(pit3_getcount()); |
| } | } |
| static BYTE IOINPCALL musicgen_i18e(UINT port) { | static REG8 IOINPCALL musicgen_i18e(UINT port) { |
| (void)port; | (void)port; |
| #if 1 | #if 1 |
| Line 264 void board14_bind(void) { | Line 264 void board14_bind(void) { |
| void board14_allkeymake(void) { | void board14_allkeymake(void) { |
| int i; | REG8 i; |
| for (i=0; i<8; i++) { | for (i=0; i<8; i++) { |
| tms3631_setkey(&tms3631, (BYTE)i, musicgen.key[i]); | tms3631_setkey(&tms3631, i, musicgen.key[i]); |
| } | } |
| } | } |