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

@@ -9,6 +9,7 @@
#include "mem.h"
#include "nmi.h"
#include "pic.h"
#include "pit.h"
#include "sound.h"
#include "sound_sn76489.h"
#include "sound_speaker.h"
@@ -52,7 +53,6 @@ void keyboard_pcjr_poll()
int p = 0;
uint8_t key = key_queue[key_queue_start];
// pclog("Reading %02X from the key queue at %i\n", key, key_queue_start);
key_queue_start = (key_queue_start + 1) & 0xf;
keyboard_pcjr.latched = 1;
@@ -102,25 +102,18 @@ void keyboard_pcjr_poll()
keyboard_pcjr.serial_pos++;
if (keyboard_pcjr.serial_pos == 42+1)
keyboard_pcjr.serial_pos = 0;
// pclog("Keyboard poll %i %i\n", keyboard_pcjr.data, keyboard_pcjr.serial_pos);
}
}
void keyboard_pcjr_adddata(uint8_t val)
{
key_queue[key_queue_end] = val;
// pclog("keyboard_pcjr : %02X added to key queue at %i\n", val, key_queue_end);
key_queue_end = (key_queue_end + 1) & 0xf;
return;
}
void keyboard_pcjr_write(uint16_t port, uint8_t val, void *priv)
{
// pclog("keyboard_pcjr : write %04X %02X %02X\n", port, val, keyboard_pcjr.pb);
/* if (ram[8] == 0xc3)
{
output = 3;
}*/
switch (port)
{
case 0x60:
@@ -138,7 +131,7 @@ void keyboard_pcjr_write(uint16_t port, uint8_t val, void *priv)
speaker_enable = val & 2;
if (speaker_enable)
was_speaker_enable = 1;
pit_set_gate(2, val & 1);
pit_set_gate(&pit, 2, val & 1);
sn76489_mute = speaker_mute = 1;
switch (val & 0x60)
{
@@ -153,7 +146,7 @@ void keyboard_pcjr_write(uint16_t port, uint8_t val, void *priv)
case 0xa0:
nmi_mask = val & 0x80;
pit_set_using_timer(1, !(val & 0x20));
pit_set_using_timer(&pit, 1, !(val & 0x20));
break;
}
}
@@ -161,7 +154,6 @@ void keyboard_pcjr_write(uint16_t port, uint8_t val, void *priv)
uint8_t keyboard_pcjr_read(uint16_t port, void *priv)
{
uint8_t temp;
// pclog("keyboard_pcjr : read %04X ", port);
switch (port)
{
case 0x60:
@@ -178,21 +170,19 @@ uint8_t keyboard_pcjr_read(uint16_t port, void *priv)
temp |= (ppispeakon ? 0x10 : 0);
temp |= (ppispeakon ? 0x20 : 0);
temp |= (keyboard_pcjr.data ? 0x40: 0);
// temp |= 0x04;
if (keyboard_pcjr.data)
temp |= 0x40;
break;
case 0xa0:
keyboard_pcjr.latched = 0;
temp = 0;
break;
default:
pclog("\nBad XT keyboard read %04X\n", port);
//dumpregs();
//exit(-1);
temp = 0xff;
}
// pclog("%02X\n", temp);
return temp;
}
@@ -202,7 +192,6 @@ void keyboard_pcjr_reset()
void keyboard_pcjr_init()
{
//return;
io_sethandler(0x0060, 0x0004, keyboard_pcjr_read, NULL, NULL, keyboard_pcjr_write, NULL, NULL, NULL);
io_sethandler(0x00a0, 0x0008, keyboard_pcjr_read, NULL, NULL, keyboard_pcjr_write, NULL, NULL, NULL);
keyboard_pcjr_reset();