Commit graph pcem/src/mem.c
Author SHA1 Message Date
SarahW
2acbcece0e Added MDSI Genius emulation. Patch from John Elliott. 2017-03-23 19:36:59 +00:00
SarahW
9ddd1fc679 Added support for IBM AT Fixed Disk Adapter (MFM).
Added ability to configure hard drive controller.
Changed XTIDE to be generic device.
2017-03-14 21:15:28 +00:00
SarahW
76cdb63bc6 Fix missing check on PS/2 Model 30-286 ROM load - fixes crash when no ROMs present. Patch from AmatCoder. 2017-03-03 19:38:00 +00:00
SarahW
c2a6ce2bac Added IBM PS/2 Model 30-286 emulation. Patch from dns2k. 2017-02-22 20:18:41 +00:00
SarahW
3123f62629 Don't load XTIDE on Commodore PC 30 III, Phoenix 386 and DTK 386 models - all three have IDE support in the BIOS. 2017-02-18 18:16:27 +00:00
SarahW
da95fe4bcb Added Wyse WY-700 video card emulation. Patch from John Elliott 2016-12-17 21:52:27 +00:00
SarahW
f311c9e17f Removed dire cache 'emulation' 2016-12-13 20:59:23 +00:00
SarahW
bfc69a4bea Cleaned up ibm.h a bit 2016-11-28 20:06:17 +00:00
SarahW
a4f3b2013e Added AMI 386DX and MR 386DX models (both based on OPTi 495 chipset). AMI 386DX supports external cache, useful for with prefetch emulation.
Also commit a few fixes required :
- Set EDX correctly on soft reset
- LOCK NOP is now treated as an illegal instruction
- Tweaks to FDC sense interrupt handling following FDC reset
2016-11-27 21:53:13 +00:00
SarahW
273ef3847a Improvements to flash ROM emulation on Premiere/PCI, Advanced/EV and Award 430VX PCI modules. Patch from Battler. 2016-09-18 15:57:46 +01:00
SarahW
eb126fd822 Moved more variables into cpu_state structure. 2016-08-21 21:28:23 +01:00
SarahW
0724cfcae4 Add emulation of IBM PS/1 Model 2121.
As part of this :
- FDC Specify command now completes immediately
- Implemented keyboard system flag status
- Added ability to remap 384kb reserved memory to above extended memory
2016-05-02 20:06:49 +01:00
SarahW
c81a91fd72 Moved integer registers, PC and flags_* variables into new cpu_state structure. Reduces recompiled code size slightly, small speedup (1-3%). 2016-04-20 21:39:41 +01:00
SarahW
9329a997cc Added Award 286 (using SCAT chipset). Patch from Greatpsycho. 2016-04-14 21:15:00 +01:00
TomW
b0dceca71a Move memory files around: *.nvr, eeprom files -> nvr/ ; mda.rom -> roms/. Patch from cooprocks123e. 2016-03-29 20:11:43 +01:00
TomW
673d785743 Writing to a memory page with code present only causes code block flushes if the data changes, or if a block is currently being recompiled. 2016-02-03 21:09:05 +00:00
TomW
f7e4a0f32e Fixed crash on XT models when accessing unmapped areas 2016-02-01 20:57:18 +00:00
TomW
2bc2bbc939 Cached results of MMU lookup in get_phys(). 2016-01-27 21:05:28 +00:00
TomW
39c95ee0af Moved BIOS mapping initialisation - SiS 496/497 now boots again without requiring hard reset. 2016-01-17 20:57:30 +00:00
TomW
2ca86ba028 Added support for Tandy 1000 HX and SL/2. As part of this commit :
- FDC now selects drive number from DOR (0x3f2)
- FDC now fails seeks on drives > 1
- XT systems no longer have BIOS mapping at E0000-EFFFF
- SN76489 now distinguishes between SN76496 (PCjr and early Tandy 1000), NCR8496 (later Tandy 1000 - different noise handling) and PSSJ
- Removed redundant limits on memory configuration - allows selection of 768k for Tandy 1000 SL/2
2015-12-03 21:48:10 +00:00
TomW
7b7e9139aa Fixed Tandy memory configurations less than 640kb. 2015-11-22 21:11:31 +00:00
TomW
c47df21a82 XT models can now have less than 640kB RAM. 2015-11-18 20:28:57 +00:00
TomW
c45a33a97f Corrected size of Advanced/EV BIOS. Patch from ecksemmess. 2015-11-13 20:44:46 +00:00
TomW
15a1631ba0 Clear _mem_exec array on init/reset.
Do not add (junk) entries to _mem_exec if mapping is not executable.
Do not fatal() on attempting to execute from non-executable memory; return page of 0xff instead.
Fixes emulator crash in Premiere/PCI when leaving BIOS setup without a valid CMOS setup.
2015-10-31 17:55:40 +00:00
TomW
9d2dd22d6d Initialise A20 gate correctly at startup.
Keyboard controller self-test command enables A20.
HIMEM.SYS included with Windows/286 now works.
2015-10-12 13:42:09 +01:00
TomW
f339f00315 Interpreter and dynamic recompiler now present in a single binary. 2015-08-21 20:55:36 +01:00
TomW
6af87dbd47 Added Phoenix XT clone and Juko XT clone. Patch from te_lanus. 2015-08-19 20:17:04 +01:00
TomW
81987c0ac5 Added DTK 386SX clone and Phoenix 386 clone. Patch from nerd73. 2015-08-19 20:01:20 +01:00
TomW
34c0db9c10 Masked off the lower 12 bits of CR3. DESQview/X now works. 2015-08-08 11:25:16 +01:00
TomW
396306bc39 Added VTech Laser Turbo XT and Laser XT3. Patch from te_lanus. 2015-08-02 11:35:09 +01:00
TomW
6b7d387787 Added AMI XT clone. Patch from nerd73. 2015-07-25 18:33:38 +01:00
TomW
d79814692f Flush memory->codeblock list heads on CPU reset - fixes "block->next->pc=0" errors on reset on some machines. 2015-07-12 14:53:03 +01:00
TomW
80555e9d2a Added Compaq Deskpro 386 emulation. 2015-06-30 20:17:43 +01:00
TomW
3e1600ae9e XTIDE support added for PS/1. 2015-06-27 14:37:10 +01:00
TomW
9f09e9c370 Added PS/1 model 2011 emulation. 2015-06-21 16:03:33 +01:00
TomW
f3607c2308 Added code generation for :
- FCOM/FUCOM
- FSUBR/FSUBRP/FDIVR/FDIVRP
- FLDCW/FSTCW
- FILD/FIST/FISTP (16-bit, 32-bit and 64-bit variants)
- FLD/FST/FSTP double precision
- Integer and double precision variants of FADD/FSUB/FMUL/FDIV
Also added 64-bit readmemq/writememq functions.
2015-06-13 16:14:35 +01:00
TomW
cb2df9e3cf Flush memory lookup cache when mappings re-calculated - fixes soft reset on AMI 386 clone. 2015-05-30 20:25:59 +01:00
TomW
1b927d9f4b Writes to code pages now always marked as dirty even if data doesn't change - BeOS now works under recompiler. 2015-05-03 20:36:22 +01:00
TomW
80add6415c Added TLB miss penalties. 2015-03-09 20:31:17 +00:00
TomW
d6c177a3c0 DMA now causes page dirty mask to be updated. 2015-02-09 18:26:59 +00:00
TomW
7a7f586cd3 64-bit fixes. 2015-02-03 18:47:16 +00:00
TomW
b4592cdea3 Implemented new memory mapping to improve performance of self modifying code.
New scheme allows code blocks to cross pages.
Reduced code block size down to 2kB.
2015-01-28 21:58:02 +00:00
TomW
84ac04d2df Added Intel Premiere/PCI (Batman's Revenge) and Advanced/EV (Endeavor) motherboards.
Added emulation of i430LX and i430FX chipsets.
Added support for PCI configuration type 2, used by i430LX.
Added AT disable keyboard command, and fixed enable keyboard command.
Added emulation of Intel 28F001BXT flash ROM, used by Advanced/EV.
Fixed a bug in REP when using multiple 66/67 prefixes.
2014-11-23 20:27:41 +00:00
TomW
4676daade4 Initial commit of dynamic recompiler.
Various CPU changes to support dynamic recompiler.
2014-11-05 21:24:16 +00:00
TomW
56b455844e Initial port to Linux (using Allegro).
64-bit fixes.
Some changes to aid portability.
A few other tweaks.
2014-09-04 21:07:24 +01:00
TomW
c4860ab55c Switched IBM AT to more recent BIOS. Added 8 MHz option. Patch from SA1988. 2014-07-08 20:35:39 +01:00
TomW
9ba75bd910 Minor memory optimisations. 2014-06-07 15:57:57 +01:00
TomW
62eff69ab4 Marked RAM areas as 'internal only'. Fixed bugs in mem_mapping_recalc().
Should no longer cause problems when peripherals map over main memory (Trio64).
2014-03-26 21:52:53 +00:00
TomW
2ca4ead570 Implemented preliminary S3 ViRGE 2D blitter emulation.
Misc ViRGE fixes.
Changes to memory mapping.
Changes to PCI handling.
Disabled 'AMI WinBIOS 486 PCI' due to incomplete chipset emulation.
Invalid GUS register reads no longer kill the emulator.
2014-03-20 14:03:55 +00:00
TomW
f18f10574a Preliminary PCjr emulation.
Improvements to PIT and serial emulation.
2014-01-12 11:37:09 +00:00