| version 1.1, 2003/10/16 17:58:19 | version 1.7, 2003/11/28 08:01:32 | 
| Line 6 | Line 6 | 
 | #include        "iocore.h" | #include        "iocore.h" | 
 | #include        "bios.h" | #include        "bios.h" | 
 | #include        "biosmem.h" | #include        "biosmem.h" | 
| #include        "keytable.res" | #include        "sound.h" | 
| #include        "itfrom.res" | #include        "fmboard.h" | 
 | #include        "lio.h" | #include        "lio.h" | 
 | #include        "fdfmt.h" |  | 
 | #include        "fddfile.h" | #include        "fddfile.h" | 
 | #include        "fdd_mtr.h" | #include        "fdd_mtr.h" | 
 |  | #include        "fdfmt.h" | 
 |  | #include        "keytable.res" | 
 |  | #include        "itfrom.res" | 
 |  |  | 
 |  |  | 
 | BOOL    biosrom = FALSE; | BOOL    biosrom = FALSE; | 
| Line 94  static void bios_reinitbyswitch(void) { | Line 96  static void bios_reinitbyswitch(void) { | 
 | gdc.display |= 4; | gdc.display |= 4; | 
 | } | } | 
 | gdcs.textdisp |= GDCSCRN_EXT; | gdcs.textdisp |= GDCSCRN_EXT; | 
 |  |  | 
 |  | if ((pc.model >= PCMODEL_VX) && (usesound & 0x7e)) { | 
 |  | iocore_out8(0x188, 0x27); | 
 |  | iocore_out8(0x18a, 0x3f); | 
 |  | } | 
 | } | } | 
 |  |  | 
 | static void bios_vectorset(void) {                                                                      // ver0.30 | static void bios_vectorset(void) {                                                                      // ver0.30 | 
| Line 231  static void bios_boot(void) { | Line 238  static void bios_boot(void) { | 
 | I286_AL = 0x10; | I286_AL = 0x10; | 
 | mem[0x004f8] = 0xee;            // out  dx, al | mem[0x004f8] = 0xee;            // out  dx, al | 
 | mem[0x004f9] = 0xea;            // call far | mem[0x004f9] = 0xea;            // call far | 
| SETBIOSMEM32(0x004fa, 0xffff0000); | SETBIOSMEM16(0x004fa, 0x0000); | 
|  | SETBIOSMEM16(0x004fc, 0xffff); | 
 | } | } | 
 | else { | else { | 
 | I286_SP = GETBIOSMEM16(0x00404); | I286_SP = GETBIOSMEM16(0x00404); | 
| Line 246  UINT MEMCALL biosfunc(UINT32 adrs) { | Line 254  UINT MEMCALL biosfunc(UINT32 adrs) { | 
 |  |  | 
 | if ((itf.bank) && (adrs >= 0xf8000) && (adrs < 0x100000)) { | if ((itf.bank) && (adrs >= 0xf8000) && (adrs < 0x100000)) { | 
 | I286_IP--; | I286_IP--; | 
| nevent.remainclock = -1; | I286_REMCLOCK = -1; | 
 | return(1); | return(1); | 
 | } | } | 
 |  |  | 
 | switch(adrs) {                                                                                                  // ver0.30 | switch(adrs) {                                                                                                  // ver0.30 | 
 | case BIOS_BASE + BIOSOFST_EOIM: | case BIOS_BASE + BIOSOFST_EOIM: | 
| nevent.remainclock -= 300; | I286_REMCLOCK -= 300; | 
 | iocore_out8(0x00, 0x20); | iocore_out8(0x00, 0x20); | 
 | return(0); | return(0); | 
 |  |  | 
| Line 264  UINT MEMCALL biosfunc(UINT32 adrs) { | Line 272  UINT MEMCALL biosfunc(UINT32 adrs) { | 
 | return(0); | return(0); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_02: | case BIOS_BASE + BIOSOFST_02: | 
| nevent.remainclock -= 300; | I286_REMCLOCK -= 300; | 
 | bios0x02(); | bios0x02(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_08: | case BIOS_BASE + BIOSOFST_08: | 
| nevent.remainclock -= 300; | I286_REMCLOCK -= 300; | 
 | bios0x08(); | bios0x08(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_09: | case BIOS_BASE + BIOSOFST_09: | 
| nevent.remainclock -= 300; | I286_REMCLOCK -= 300; | 
 | bios0x09(); | bios0x09(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_0c: | case BIOS_BASE + BIOSOFST_0c: | 
| nevent.remainclock -= 500; | I286_REMCLOCK -= 500; | 
 | bios0x0c(); | bios0x0c(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_12: | case BIOS_BASE + BIOSOFST_12: | 
| nevent.remainclock -= 500; | I286_REMCLOCK -= 500; | 
 | bios0x12(); | bios0x12(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_13: | case BIOS_BASE + BIOSOFST_13: | 
| nevent.remainclock -= 500; | I286_REMCLOCK -= 500; | 
 | bios0x13(); | bios0x13(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_18: | case BIOS_BASE + BIOSOFST_18: | 
| nevent.remainclock -= 200; | I286_REMCLOCK -= 200; | 
 | bios0x18(); | bios0x18(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_19: | case BIOS_BASE + BIOSOFST_19: | 
| nevent.remainclock -= 200; | I286_REMCLOCK -= 200; | 
 | bios0x19(); | bios0x19(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_1a: | case BIOS_BASE + BIOSOFST_1a: | 
| nevent.remainclock -= 200; | I286_REMCLOCK -= 200; | 
 | bios0x1a(); | bios0x1a(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_1b: | case BIOS_BASE + BIOSOFST_1b: | 
| nevent.remainclock -= 200; | I286_REMCLOCK -= 200; | 
 | bios0x1b(); | bios0x1b(); | 
 | return(1); | return(1); | 
 |  |  | 
 | case BIOS_BASE + BIOSOFST_1c: | case BIOS_BASE + BIOSOFST_1c: | 
| nevent.remainclock -= 200; | I286_REMCLOCK -= 200; | 
 | bios0x1c(); | bios0x1c(); | 
 | return(1); | return(1); | 
 |  |  | 
| Line 322  UINT MEMCALL biosfunc(UINT32 adrs) { | Line 330  UINT MEMCALL biosfunc(UINT32 adrs) { | 
 | I286_STI; | I286_STI; | 
 | if (fddmtr_biosbusy) {                                          // ver0.26 | if (fddmtr_biosbusy) {                                          // ver0.26 | 
 | I286_IP--; | I286_IP--; | 
| nevent.remainclock = -1; | I286_REMCLOCK = -1; | 
 | } | } | 
 | else { | else { | 
 | switch(CTRL_FDMEDIA) { | switch(CTRL_FDMEDIA) { | 
 | case DISKTYPE_2HD: | case DISKTYPE_2HD: | 
 | if (pic.pi[1].isr & PIC_INT42) { | if (pic.pi[1].isr & PIC_INT42) { | 
 | I286_IP--; | I286_IP--; | 
| nevent.remainclock -= 1000; | I286_REMCLOCK -= 1000; | 
 | } | } | 
 | break; | break; | 
 | case DISKTYPE_2DD: | case DISKTYPE_2DD: | 
 | if (pic.pi[1].isr & PIC_INT41) { | if (pic.pi[1].isr & PIC_INT41) { | 
 | I286_IP--; | I286_IP--; | 
| nevent.remainclock -= 1000; | I286_REMCLOCK -= 1000; | 
 | } | } | 
 | break; | break; | 
 | } | } | 
| Line 363  UINT MEMCALL biosfunc(UINT32 adrs) { | Line 371  UINT MEMCALL biosfunc(UINT32 adrs) { | 
 | return(1); | return(1); | 
 |  |  | 
 | case 0xfffe8:                                   // ブートストラップロード | case 0xfffe8:                                   // ブートストラップロード | 
| nevent.remainclock -= 2000; | I286_REMCLOCK -= 2000; | 
 | bootseg = bootstrapload(); | bootseg = bootstrapload(); | 
 | if (bootseg) { | if (bootseg) { | 
 | I286_STI; | I286_STI; | 
| Line 376  UINT MEMCALL biosfunc(UINT32 adrs) { | Line 384  UINT MEMCALL biosfunc(UINT32 adrs) { | 
 | return(0); | return(0); | 
 |  |  | 
 | case 0xfffec: | case 0xfffec: | 
| nevent.remainclock -= 2000; | I286_REMCLOCK -= 2000; | 
 | bootstrapload(); | bootstrapload(); | 
 | return(0); | return(0); | 
 | } | } | 
| Line 392  UINT MEMCALL biosfunc(UINT32 adrs) { | Line 400  UINT MEMCALL biosfunc(UINT32 adrs) { | 
 | return(0); | return(0); | 
 | } | } | 
 | I286_IP--; | I286_IP--; | 
| nevent.remainclock = -1; | I286_REMCLOCK = -1; | 
 | return(1); | return(1); | 
 | } | } | 
 |  |  |