From bfd180f5ae2c1a1752dcf9b97b4f93636bce16dd Mon Sep 17 00:00:00 2001 From: ripsaw8080 Date: Sat, 14 Nov 2015 13:42:16 +0000 Subject: [PATCH] Change BIOS equipment list to indicate DMA not supported on PCjr machine type, which fixes PCjr detection in old versions of Ancient Art of War, although DMA hardware emulation is actually still present. Set PC speaker initial state in BIOS init, fixing beeps when the speaker is turned on and off without first programming the timer, such as in Koei's Ghengis Khan. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3954 --- src/ints/bios.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ints/bios.cpp b/src/ints/bios.cpp index 47f02987..c2b087ae 100644 --- a/src/ints/bios.cpp +++ b/src/ints/bios.cpp @@ -1248,10 +1248,16 @@ public: } // PS2 mouse config |= 0x04; + // DMA *not* supported - Ancient Art of War CGA uses this to identify PCjr + if (machine==MCH_PCJR) config |= 0x100; // Gameport config |= 0x1000; mem_writew(BIOS_CONFIGURATION,config); CMOS_SetRegister(0x14,(Bit8u)(config&0xff)); //Should be updated on changes + /* Setup PC speaker initial state - real BIOS does this for POST beeps */ + IO_Write(0x43,0xb6); // PIT 2 mode 3 + IO_Write(0x42,0x28); // counter 1320 + IO_Write(0x42,0x05); /* Setup extended memory size */ IO_Write(0x70,0x30); size_extended=IO_Read(0x71);