--- np2/bios/bios1c.c 2003/12/08 00:55:30 1.3 +++ np2/bios/bios1c.c 2004/03/19 00:30:00 1.9 @@ -2,7 +2,6 @@ #include "parts.h" #include "timemng.h" #include "cpucore.h" -#include "memory.h" #include "pccore.h" #include "iocore.h" #include "calendar.h" @@ -10,18 +9,6 @@ #include "biosmem.h" -void bios0x1c_03(void) { - - iocore_out8(0x71, 0x00); - if (pc.cpumode & CPUMODE_8MHz) { - iocore_out8(0x71, 0x4e); // 4MHz - } - else { - iocore_out8(0x71, 0x60); // 5MHz - } - pic.pi[0].imr &= ~(PIC_SYSTEMTIMER); -} - void bios0x1c(void) { BYTE buf[6]; @@ -29,12 +16,12 @@ void bios0x1c(void) { switch(CPU_AH) { case 0x00: // get system timer calendar_get(buf); - i286_memstr_write(CPU_ES, CPU_BX, buf, 6); + MEML_WRITESTR(CPU_ES, CPU_BX, buf, 6); break; case 0x01: // put system timer - i286_memstr_read(CPU_ES, CPU_BX, buf, 6); - mem[MEMB_MSW8] = buf[0]; // ver0.29 + MEML_READSTR(CPU_ES, CPU_BX, buf, 6); + mem[MEMB_MSW8] = buf[0]; calendar_set(buf); break; @@ -43,11 +30,17 @@ void bios0x1c(void) { SETBIOSMEM16(0x0001e, CPU_ES); SETBIOSMEM16(0x0058a, CPU_CX); iocore_out8(0x77, 0x36); - bios0x1c_03(); - break; + /* through */ case 0x03: // continue interval timer - bios0x1c_03(); + iocore_out8(0x71, 0x00); + if (pccore.cpumode & CPUMODE_8MHZ) { + iocore_out8(0x71, 0x4e); // 4MHz + } + else { + iocore_out8(0x71, 0x60); // 5MHz + } + pic.pi[0].imr &= ~(PIC_SYSTEMTIMER); break; } }