|
|
| version 1.3, 2003/12/12 01:04:39 | version 1.5, 2005/02/07 14:46:07 |
|---|---|
| Line 3 | Line 3 |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "bios.h" | #include "bios.h" |
| #include "biosmem.h" | |
| #define baseport 0x0090 | #define baseport 0x0090 |
| void bios0x13(void) { | void bios0x13(void) { |
| BYTE stat; | UINT8 stat; |
| BYTE result; | UINT8 result; |
| BYTE *p; | UINT8 *p; |
| BYTE drv; | UINT8 drv; |
| BYTE drvbit; | UINT8 drvbit; |
| // TRACE_("BIOS", 0x13); | // TRACE_("BIOS", 0x13); |
| iocore_out8(0x08, 0x20); | iocore_out8(0x08, 0x20); |
| Line 42 void bios0x13(void) { | Line 43 void bios0x13(void) { |
| drvbit = 1 << drv; | drvbit = 1 << drv; |
| #if 0 | #if 0 |
| if (result & FDCRLT_IC1) { | if (result & FDCRLT_IC1) { |
| if (mem[0x0055e] & drvbit) { | if (mem[MEMB_DISK_INTL] & drvbit) { |
| continue; | continue; |
| } | } |
| drvbit = 0; | drvbit = 0; |
| } | } |
| #endif | #endif |
| p = &mem[0x00564 + (drv * 8)]; | p = mem + MEMX_DISK_RESULT + (drv * 8); |
| while(1) { | while(1) { |
| *p++ = result; | *p++ = result; |
| stat = iocore_inp8(baseport); | stat = iocore_inp8(baseport); |
| Line 58 void bios0x13(void) { | Line 59 void bios0x13(void) { |
| } | } |
| result = iocore_inp8(baseport+2); | result = iocore_inp8(baseport+2); |
| } | } |
| mem[0x0055e] |= drvbit; | mem[MEMB_DISK_INTL] |= drvbit; |
| } | } |
| if (mem[0x00480] & 0x10) { | if (mem[MEMB_SYS_TYPE] & 0x10) { |
| if (mem[0x00485]) { | if (mem[0x00485]) { |
| if (!(--mem[0x00485])) { | if (!(--mem[0x00485])) { |
| mem[0x005a4] |= 0x0f; | mem[0x005a4] |= 0x0f; |