Commit graph pcem/src/mem.c
Author SHA1 Message Date
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
TomW
f8575b7b97 Fixed false detection of IBM XT ROMs. 2014-01-03 20:48:12 +00:00
TomW
409f9f42b3 IBM XT BIOS switched from 01/10/86 version to 11/08/82. 2014-01-03 15:26:54 +00:00
TomW
bd873de9ac New 'available' function in device API, to determine whether required ROMs are available. Currently used when building soundcard menu, to remove AWE32 when required ROM dump is not present. 2013-11-04 18:23:15 +00:00
TomW
2c054de1f6 Fixed DMA bug introduced with memory mapping changes - SB games should no longer crash. 2013-10-22 19:52:46 +01:00
TomW
7735e82085 Altered device memory mapping. 2013-10-19 17:06:55 +01:00
TomW
f195495f3a Initial SiS496/497 emulation.
Fixed ESP value on ENTER when page fault after first push.
Fixed execution time of IDE Set Idle command.
Fixed head number on FDC Read Sector ID command.
2013-07-15 18:23:26 +01:00
TomW
9312de19ac Now up to date with current dev version.
Changes since v0.7 :
- Major CPU reorganisation. This has possibly broken some stuff, though I fixed all the regressions I could find
- Lazy flags. This brought 10% speed improvement at one point, but that's probably been lost now
- 430 VX chipset emulation
- IDT Winchip emulation (currently sans MMX). Timing is probably wrong
- Fixed a few FPU bugs
- Timer reorganisation
- Sound reorganisation
- Other general reorganisation
- AdLib Gold emulation
- Windows Sound System emulation
- Pro Audio Spectrum 16 emulation. This currently works with most DOS stuff, but not in Windows
- Major improvements to GUS emulation. Has the downside that it now conflicts with SB emulation, so probably best to not enable both simultaneously
- New graphics cards :
  - ATI-18800 (VGA Edge-16)
  - ATI-28800 (VGA Charger)
  - ATI Mach64GX (Graphics Pro Turbo). Quite a few features missing, but Windows doesn't seem to use half the features of this card
  - Cirrus Logic CL-GD5429. Blitter is a bit broken
  - Oak OTI-067
  - S3 Trio64 (Number Nine 9FX)
  - S3 Virge. Only framebuffer stuff at the minute, Windows won't recognise the card
  - Trident TGUI-9440
  - VGA. Doesn't work yet
- Beginnings of 3DFX emulation, however this is in extremely early stages and doesn't do anything useful
- Fixed DMA bug stopping floppy drives working in Windows 3.x
- Fixed some other stuff probably
- Broke some other stuff probably as well
2013-05-27 17:46:42 +01:00