Commit graph pcem/src/fdc.c
Author SHA1 Message Date
SarahW
50e7de5214 Merge from trunk 2019-04-18 20:46:38 +01:00
SarahW
1f5fc45c04 Amstrad changes :
- Add PPC512/640 emulation
- Add TV display type to Sinclair PC200
- Add font selection to PC1512
- Add disc change line to PC200
Patch from JohnElliott
2019-04-15 19:48:41 +01:00
SarahW
01e86135ab Tweak FDC command timing and add register access waitstates. Fixes floppy in Windows 98 with VA-503. 2019-02-13 22:12:53 +00:00
SarahW
1af0b660b3 First pass at sanitising CPU headers. 2019-02-07 21:30:53 +00:00
SarahW
a7d006b637 Rewrote timer code.
The new code is based on timestamps, rather than delays. This eliminates the
need to update every timer in timer_process(), which cost a non-trivial amount
of CPU time on low-end machines.

This involved changes to every user of the timer code, so this change almost
certainly introduces bugs.
2018-08-02 22:06:10 +01:00
SarahW
31dff3a509 Added Xi8088 emulation. Patch from EluanCM. 2018-02-24 18:08:36 +00:00
SarahW
966e787a25 FDC Sense Interrupt Status doesn't send track number when no interrupt pending. Fixes floppy drive on early Linux kernels. 2018-01-26 21:31:37 +00:00
pcem_emulator
7fe91626d6 Added new GUI based on wxWidgets. Patch from bit. 2017-05-29 15:38:48 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
9c1d8e5022 Add PS/2 Model 50 emulation.
This commit also adds basic MCA emulation.
This commit also adds emulation of the PS/2 Type 1 DMA controller.
2017-04-06 22:00:40 +01:00
SarahW
0935867771 Base drive selection for FDC Seek, Recalibrate and Sense Drive Status commands on FDC parameters rather than motor status. 2017-04-06 21:57:52 +01:00
SarahW
69edc3fc2d FDC errors now report last sector ID
FDC multitrack read/write now works properly
Fixes floppy issues in Windows 9x
2017-01-15 15:51:35 +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
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
TomW
eebdc165b2 FDC changes :
- Seperated disk and disk drive emulation
- Support more drive types - 5.25" dual RPM, 3.5" DD, 3.5" HD, 3.5" HD 3-Mode
- Support drive swapping (FDC37c665 only)
- Support FDC FIFO
- Support other FDC 'enhanced mode' behaviour
- Support IBM XDF format images
- Formatting now formats both tracks, and uses correct 'fill' byte
- Various other improvements

Many of these changes provided by Battler
2015-12-12 16:31:08 +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
d3c2d455b9 Improve FDC reset handling. Fixes floppy access in Windows 9x. 2015-11-15 14:08:39 +00:00
TomW
fba5891d95 Re-implemented FDC Read a Track command. King's Quest 1 booter works again. 2015-10-04 17:52:38 +01:00
TomW
5a1f5769e2 Cancel FDC ready state change reports from reset on submission of recalibrate command. Phoenix XT clone now boots from floppy. 2015-10-02 21:51:28 +01:00
TomW
99060248b2 First FDC Sense Interrupt Status command after post-reset ready state change results is now zero. Fixes Grey Cat Linux. 2015-09-19 19:01:32 +01:00
TomW
05d9cc34a8 FDC track number is incremented when hitting end of track when operation is not multi-track. Fixes BasicLinux. 2015-09-12 16:45:20 +01:00
TomW
5005e43b80 FDC sector number is always reset when hitting end of track, regardless of whether operation is multi-track or not. Fixes floppy disc on Windows 2000. 2015-08-26 20:32:39 +01:00
TomW
e6bd0093bd Masked off drive select. 2015-08-25 19:20:57 +01:00
TomW
9fe79c1827 Fixed drive select for disc poll function. 2015-08-24 20:47:48 +01:00
TomW
8056c314c5 Fixed disc_changed array overrun - fixes disc error in OS/2 v1.3. 2015-08-10 08:38:25 +01:00
TomW
e590bd9ca2 Added FDC37c655 SuperIO chip for Intel Premiere/PCI. 2015-07-12 14:22:47 +01:00
TomW
9f09e9c370 Added PS/1 model 2011 emulation. 2015-06-21 16:03:33 +01:00
TomW
de6369b82f Disc function pointers cleared when disc ejected.
Read address on an ejected disc now times out.
Write protect bit in ST3 now set correctly (Sense Drive Status command).
Fixes discs on Windows 95.
2015-06-21 14:51:58 +01:00
TomW
880bec1ea0 FDC now implements write protect error correctly. 2015-05-30 17:35:39 +01:00
TomW
a8159f8c09 Various changes to FDC emulation.
Support for multiple disc image formats.
Added preliminary FDI support.
2015-03-19 21:33:19 +00:00
TomW
32868c1ce0 Added missing support for 1.2MB discs. 2014-02-27 19:53:54 +00:00
TomW
f18f10574a Preliminary PCjr emulation.
Improvements to PIT and serial emulation.
2014-01-12 11:37:09 +00:00
TomW
a514d2fe4b Cleaned up DMA emulation. 2013-10-27 14:37:01 +00: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
TomW
3c253c2cf8 Add v0.7 source 2013-04-21 14:54:35 +01:00