Vastly overhauled the UI, there's now a completely new Settings dialog as well as a status bar with disk activity icons and removable drive menus;

Thoroughly clean up the code to vastly reduce the number of compiler warnings and found and fixed several bugs in the process;
Applied all mainline PCem commits;
Added SCSI hard disk emulation;
Commented out all unfinished machines and graphics cards;
Added the AOpen AP53 and ASUS P/I-P55T2 machines as well as another Tyan 440FX machine, all three with AMI WinBIOS (patch from TheCollector1995);
Added the Diamond Stealth 3D 3000 (S3 ViRGE/VX) graphics card (patch from TheCollector1995);
Added the PS/2 XT IDE (AccuLogic) HDD Controller (patch from TheCollector1995);
Added Microsoft/Logitech Bus Mouse emulation (patch from waltje);
Overhauled the makefiles (patch from waltje);
Added the Adaptec AHA-1542CF SCSI controller (patch from waltje);
Added preliminary (but still unfinished) Adaptec AHA-154x SCSI controller BIOS support (patch from waltje);
Added an ISABugger debugging device (patch from waltje);
Added sanity checks to the Direct3D code.
This commit is contained in:
OBattler
2017-05-05 01:49:42 +02:00
parent d07d53962c
commit f6ef1f833c
346 changed files with 24292 additions and 18058 deletions

View File

@@ -21,6 +21,13 @@ C1
bits 7-6 = LPT1 mode : 11 = ECP/EPP, 01 = EPP, 10 = SPP
bit 3 = clear when LPT1 = 278
Added by OBattler based on more sources:
C2
bit 2 = I430FX: floppy drive swap (1 = swap, 0 = do not swap)
I430VX: DENSEL polarity
bits 3-6 = IR stuff
bits 3-4 = 00 = Normal, 01 = Infrared (HPSIR), 10 - Amplitude Shift Keyed IR (ASKIR), 11 - Reserved
C3
bits 7-6 = LPT1 DMA mode : 11 = ECP/EPP DMA1, 10 = ECP/EPP DMA3, 01 = EPP/SPP, 00 = ECP
bits 5-4 = LPT1 addr : 10 = 278/IRQ5, 01 = 3BC/IRQ7, 00 = 378/IRQ7
@@ -43,6 +50,7 @@ COM2 :
#include "disc.h"
#include "fdc.h"
#include "fdd.h"
#include "io.h"
#include "lpt.h"
#include "serial.h"
@@ -55,7 +63,6 @@ static uint8_t um8669f_regs[256];
void um8669f_write(uint16_t port, uint8_t val, void *priv)
{
int temp;
// pclog("um8669f_write : port=%04x reg %02X = %02X locked=%i\n", port, um8669f_curreg, val, um8669f_locked);
if (um8669f_locked)
{
if (port == 0x108 && val == 0xaa)
@@ -105,7 +112,20 @@ void um8669f_write(uint16_t port, uint8_t val, void *priv)
case 3: serial2_set(0x2e8, 3); break;
}
}
if (um8669f_curreg == 0xC2)
{
/* Make sure to invert this. */
if (romset == ROM_430VX)
{
fdc_update_densel_polarity(val & 4 ? 0 : 1);
}
else
{
fdd_setswap(val & 4 ? 1 : 0);
}
}
lpt1_remove();
lpt2_remove();
temp = (um8669f_regs[0xc3] >> 4) & 3;
@@ -121,7 +141,6 @@ void um8669f_write(uint16_t port, uint8_t val, void *priv)
uint8_t um8669f_read(uint16_t port, void *priv)
{
// pclog("um8669f_read : port=%04x reg %02X locked=%i\n", port, um8669f_curreg, um8669f_locked);
if (um8669f_locked)
return 0xff;