1
0
Fork 0

New io handler functions

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1759
This commit is contained in:
Sjoerd van der Berg 2004-04-03 19:46:00 +00:00
parent 9cd769b878
commit 9d9a964dd0
2 changed files with 25 additions and 39 deletions

View file

@ -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");

View file

@ -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");