New io handler functions
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1759
This commit is contained in:
parent
9cd769b878
commit
9d9a964dd0
2 changed files with 25 additions and 39 deletions
|
@ -769,17 +769,7 @@ static void ExecuteGlobRegister(void) {
|
|||
}
|
||||
|
||||
|
||||
static Bit16u read_gus16(Bit32u port) {
|
||||
return ExecuteReadRegister();
|
||||
}
|
||||
|
||||
static void write_gus16(Bit32u port,Bit16u val) {
|
||||
myGUS.gRegData = val;
|
||||
ExecuteGlobRegister();
|
||||
}
|
||||
|
||||
|
||||
static Bit8u read_gus(Bit32u port) {
|
||||
static Bitu read_gus(Bitu port,Bitu iolen) {
|
||||
|
||||
switch(port - GUS_BASE) {
|
||||
case 0x206:
|
||||
|
@ -828,7 +818,7 @@ static Bit8u read_gus(Bit32u port) {
|
|||
}
|
||||
|
||||
|
||||
static void write_gus(Bit32u port,Bit8u val) {
|
||||
static void write_gus(Bitu port,Bitu val,Bitu iolen) {
|
||||
switch(port - GUS_BASE) {
|
||||
case 0x200:
|
||||
myGUS.mixControl = val;
|
||||
|
@ -1048,36 +1038,33 @@ void GUS_Init(Section* sec) {
|
|||
|
||||
// GF1 Synthesizer
|
||||
|
||||
IO_RegisterWriteHandler(0x302 + GUS_BASE,write_gus,"GF1 Page Register");
|
||||
IO_RegisterReadHandler(0x302 + GUS_BASE,read_gus,"GF1 Page Register");
|
||||
IO_RegisterWriteHandler(0x302 + GUS_BASE,write_gus,IO_MB);
|
||||
IO_RegisterReadHandler(0x302 + GUS_BASE,read_gus,IO_MB);
|
||||
|
||||
IO_RegisterWriteHandler(0x303 + GUS_BASE,write_gus,"GF1 Global Register Select");
|
||||
IO_RegisterReadHandler(0x303 + GUS_BASE,read_gus,"GF1 Global Register Select");
|
||||
IO_RegisterWriteHandler(0x303 + GUS_BASE,write_gus,IO_MB);
|
||||
IO_RegisterReadHandler(0x303 + GUS_BASE,read_gus,IO_MB);
|
||||
|
||||
IO_RegisterWriteHandler(0x304 + GUS_BASE,write_gus,"GF1 Global Data Low Byte");
|
||||
IO_RegisterReadHandler(0x304 + GUS_BASE,read_gus,"GF1 Global Data Low Byte");
|
||||
IO_RegisterWriteHandler(0x304 + GUS_BASE,write_gus,IO_MB|IO_MW);
|
||||
IO_RegisterReadHandler(0x304 + GUS_BASE,read_gus,IO_MB|IO_MW);
|
||||
|
||||
IO_RegisterWriteWHandler(0x304 + GUS_BASE,write_gus16);
|
||||
IO_RegisterReadWHandler(0x304 + GUS_BASE,read_gus16);
|
||||
IO_RegisterWriteHandler(0x305 + GUS_BASE,write_gus,IO_MB);
|
||||
IO_RegisterReadHandler(0x305 + GUS_BASE,read_gus,IO_MB);
|
||||
|
||||
IO_RegisterWriteHandler(0x305 + GUS_BASE,write_gus,"GF1 Global Data High Byte");
|
||||
IO_RegisterReadHandler(0x305 + GUS_BASE,read_gus,"GF1 Global Data High Byte");
|
||||
IO_RegisterReadHandler(0x206 + GUS_BASE,read_gus,IO_MB);
|
||||
|
||||
IO_RegisterReadHandler(0x206 + GUS_BASE,read_gus,"GF1 IRQ Status Register");
|
||||
IO_RegisterWriteHandler(0x208 + GUS_BASE,write_gus,IO_MB);
|
||||
IO_RegisterReadHandler(0x208 + GUS_BASE,read_gus,IO_MB);
|
||||
|
||||
IO_RegisterWriteHandler(0x208 + GUS_BASE,write_gus,"Timer Control Reg");
|
||||
IO_RegisterReadHandler(0x208 + GUS_BASE,read_gus,"Timer Control Reg");
|
||||
IO_RegisterWriteHandler(0x209 + GUS_BASE,write_gus,IO_MB);
|
||||
|
||||
IO_RegisterWriteHandler(0x209 + GUS_BASE,write_gus,"Timer Data IO");
|
||||
|
||||
IO_RegisterWriteHandler(0x307 + GUS_BASE,write_gus,"DRAM IO");
|
||||
IO_RegisterReadHandler(0x307 + GUS_BASE,read_gus,"DRAM IO");
|
||||
IO_RegisterWriteHandler(0x307 + GUS_BASE,write_gus,IO_MB);
|
||||
IO_RegisterReadHandler(0x307 + GUS_BASE,read_gus,IO_MB);
|
||||
|
||||
// Board Only
|
||||
|
||||
IO_RegisterWriteHandler(0x200 + GUS_BASE,write_gus,"Mix Control Register");
|
||||
IO_RegisterReadHandler(0x20A + GUS_BASE,read_gus,"GUS Undocumented");
|
||||
IO_RegisterWriteHandler(0x20B + GUS_BASE,write_gus,"IRQ/DMA Control Register");
|
||||
IO_RegisterWriteHandler(0x200 + GUS_BASE,write_gus,IO_MB);
|
||||
IO_RegisterReadHandler(0x20A + GUS_BASE,read_gus,IO_MB);
|
||||
IO_RegisterWriteHandler(0x20B + GUS_BASE,write_gus,IO_MB);
|
||||
|
||||
PIC_RegisterIRQ(myGUS.irq1,0,"GUS");
|
||||
PIC_RegisterIRQ(myGUS.irq2,0,"GUS");
|
||||
|
|
|
@ -70,7 +70,7 @@ void CSerial::lowerint(INT_TYPES type){
|
|||
}
|
||||
|
||||
|
||||
void CSerial::write_port(Bit32u port, Bit8u val) {
|
||||
void CSerial::write_port(Bitu port, Bitu val) {
|
||||
|
||||
port-=base;
|
||||
// LOG_UART("Serial write %X val %x %c",port,val,val);
|
||||
|
@ -152,7 +152,7 @@ void CSerial::write_port(Bit32u port, Bit8u val) {
|
|||
}
|
||||
}
|
||||
|
||||
void CSerial::write_serial(Bit32u port, Bit8u val) {
|
||||
void CSerial::write_serial(Bitu port, Bitu val,Bitu iolen) {
|
||||
int i;
|
||||
|
||||
for(i=0;i<SERIALPORT_COUNT;i++){
|
||||
|
@ -162,7 +162,7 @@ void CSerial::write_serial(Bit32u port, Bit8u val) {
|
|||
}
|
||||
}
|
||||
|
||||
Bit8u CSerial::read_port(Bit32u port) {
|
||||
Bitu CSerial::read_port(Bitu port) {
|
||||
Bit8u outval = 0;
|
||||
|
||||
port-=base;
|
||||
|
@ -248,7 +248,7 @@ skipreset:
|
|||
|
||||
}
|
||||
|
||||
Bit8u CSerial::read_serial(Bit32u port)
|
||||
Bitu CSerial::read_serial(Bitu port,Bitu iolen)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<SERIALPORT_COUNT;i++){
|
||||
|
@ -407,9 +407,8 @@ CSerial::CSerial (Bit16u initbase, Bit8u initirq, Bit32u initbps) {
|
|||
setdivisor(initdiv >> 8, initdiv & 0x0f);
|
||||
|
||||
for (i=8;i<=0xf;i++) {
|
||||
|
||||
IO_RegisterWriteHandler(initbase+i,write_serial,"Serial Port");
|
||||
IO_RegisterReadHandler(initbase+i,read_serial,"Serial Port");
|
||||
IO_RegisterWriteHandler(initbase+i,write_serial,IO_MB);
|
||||
IO_RegisterReadHandler(initbase+i,read_serial,IO_MB);
|
||||
}
|
||||
|
||||
PIC_RegisterIRQ(irq,0,"SERIAL");
|
||||
|
|
Loading…
Add table
Reference in a new issue