|
|
| version 1.1, 2003/10/16 17:57:57 | version 1.9, 2007/11/11 13:54:14 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "i286.h" | #include "commng.h" |
| #include "cpucore.h" | |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| COMMNG cm_prt; | |
| // ---- I/O | // ---- I/O |
| static BYTE IOINPCALL prt_i42(UINT port) { | static void IOOUTCALL prt_o40(UINT port, REG8 dat) { |
| COMMNG prt; | |
| prt = cm_prt; | |
| if (prt == NULL) { | |
| prt = commng_create(COMCREATE_PRINTER); | |
| cm_prt = prt; | |
| } | |
| prt->write(prt, (UINT8)dat); | |
| // TRACEOUT(("prt - %.2x", dat)); | |
| (void)port; | |
| } | |
| static REG8 IOINPCALL prt_i42(UINT port) { | |
| BYTE ret; | REG8 ret; |
| ret = 0x84; | ret = 0x84; |
| if (pc.cpumode & CPUMODE_8MHz) { | if (pccore.cpumode & CPUMODE_8MHZ) { |
| ret |= 0x20; | ret |= 0x20; |
| } | } |
| if (np2cfg.dipsw[0] & 4) { | if (pccore.dipsw[0] & 4) { |
| ret |= 0x10; | ret |= 0x10; |
| } | } |
| if (np2cfg.dipsw[0] & 0x80) { | if (pccore.dipsw[0] & 0x80) { |
| ret |= 0x08; | ret |= 0x08; |
| } | } |
| #ifndef EPSON_286 | if (!(pccore.model & PCMODEL_EPSON)) { |
| if (CPUTYPE & CPUTYPE_V30) { | if (CPU_TYPE & CPUTYPE_V30) { |
| ret |= 0x02; | ret |= 0x02; |
| } | } |
| #else | } |
| if (np2cfg.dipsw[2] & 0x80) { | else { |
| ret |= 0x02; | if (pccore.dipsw[2] & 0x80) { |
| ret |= 0x02; | |
| } | |
| } | } |
| #endif | |
| (void)port; | (void)port; |
| return(ret); | return(ret); |
| } | } |
| Line 36 static BYTE IOINPCALL prt_i42(UINT port) | Line 55 static BYTE IOINPCALL prt_i42(UINT port) |
| // ---- I/F | // ---- I/F |
| static const IOOUT prto40[4] = { | |
| prt_o40, NULL, NULL, NULL}; | |
| static const IOINP prti40[4] = { | static const IOINP prti40[4] = { |
| NULL, prt_i42, NULL, NULL}; | NULL, prt_i42, NULL, NULL}; |
| void printif_reset(void) { | void printif_reset(const NP2CFG *pConfig) { |
| commng_destroy(cm_prt); | |
| cm_prt = NULL; | |
| (void)pConfig; | |
| } | } |
| void printif_bind(void) { | void printif_bind(void) { |
| iocore_attachsysoutex(0x0040, 0x0cf1, prto40, 4); | |
| iocore_attachsysinpex(0x0040, 0x0cf1, prti40, 4); | iocore_attachsysinpex(0x0040, 0x0cf1, prti40, 4); |
| } | } |