X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fsio.c;h=b3732d298ba623ad296c9a640931354e30c8b53a;hp=ab6baa12aae4be62ae3e67d9cb961505dea22869;hb=HEAD;hpb=2db412ade2b09ca04da81d91b75bbf6475dbde5a diff --git a/libpcsxcore/sio.c b/libpcsxcore/sio.c index ab6baa12..0bc763ca 100644 --- a/libpcsxcore/sio.c +++ b/libpcsxcore/sio.c @@ -21,6 +21,9 @@ * SIO functions. */ +#include "misc.h" +#include "psxcounters.h" +#include "psxevents.h" #include "sio.h" #include @@ -71,13 +74,6 @@ static unsigned int padst; char Mcd1Data[MCD_SIZE], Mcd2Data[MCD_SIZE]; char McdDisable[2]; -#define SIO_INT(eCycle) { \ - psxRegs.interrupt |= (1 << PSXINT_SIO); \ - psxRegs.intCycle[PSXINT_SIO].cycle = eCycle; \ - psxRegs.intCycle[PSXINT_SIO].sCycle = psxRegs.cycle; \ - new_dyna_set_event(PSXINT_SIO, eCycle); \ -} - // clk cycle byte // 4us * 8bits = (PSXCLK / 1000000) * 32; (linuzappz) // TODO: add SioModePrescaler and BaudReg @@ -105,7 +101,7 @@ void sioWrite8(unsigned char value) { if (more_data) { bufcount = parp + 1; - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); } } else padst = 0; @@ -119,14 +115,14 @@ void sioWrite8(unsigned char value) { if (more_data) { bufcount = parp + 1; - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); } return; } switch (mcdst) { case 1: - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); if (rdwr) { parp++; return; } parp = 1; switch (value) { @@ -136,7 +132,7 @@ void sioWrite8(unsigned char value) { } return; case 2: // address H - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); adrH = value; *buf = 0; parp = 0; @@ -144,7 +140,7 @@ void sioWrite8(unsigned char value) { mcdst = 3; return; case 3: // address L - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); adrL = value; *buf = adrH; parp = 0; @@ -152,7 +148,7 @@ void sioWrite8(unsigned char value) { mcdst = 4; return; case 4: - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); parp = 0; switch (rdwr) { case 1: // read @@ -202,7 +198,7 @@ void sioWrite8(unsigned char value) { if (rdwr == 2) { if (parp < 128) buf[parp + 1] = value; } - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); return; } @@ -217,7 +213,7 @@ void sioWrite8(unsigned char value) { bufcount = 1; parp = 0; padst = 1; - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); return; case 0x81: // start memcard if (CtrlReg & 0x2000) @@ -237,7 +233,7 @@ void sioWrite8(unsigned char value) { bufcount = 3; mcdst = 1; rdwr = 0; - SIO_INT(SIO_CYCLES); + set_event(PSXINT_SIO, SIO_CYCLES); return; default: no_device: @@ -325,16 +321,6 @@ unsigned short sioReadBaud16() { return BaudReg; } -void netError() { - ClosePlugins(); - SysMessage(_("Connection closed!\n")); - - CdromId[0] = '\0'; - CdromLabel[0] = '\0'; - - SysRunGui(); -} - void sioInterrupt() { #ifdef PAD_LOG PAD_LOG("Sio Interrupt (CP0.Status = %x)\n", psxRegs.CP0.n.Status);