Commit Graph

76 Commits

Author SHA1 Message Date
TC1995
6802c0593b Video, Storage and MCA changes/fixes.
1. Cirrus Logic GD54xx, Paradise/WD VGA now reset the interlace once a text mode is issued if not done automatically.
2. Paradise/WD's 15/16bpp modes using the 800x600 resolution now have the correct ma_latch, should fix most operating systems drivers using this combo.
3. More fixes (hopefully) to the accelerated pitch and rowoffset of the Trident TGUI cards (9440AGi and 96x0XGi), should fix issues with delayed displays mode changes under various operating systems (e.g.: Win3.1x).
4. Preliminary implementation of the Area Fill command of XGA, which is issued while using various painting and/or calc utilities on Win3.1x (IBM XGA updated drivers, e.g.: 2.12).
5. Preliminary (and incomplete) 4bpp XGA mode.
6. The XGA memory test for the 0xa5 using writes (used by various operating systems) no longer conflicts with DOS' XGAKIT's memory detection.
7. Small ROP fixes to both XGA and 8514/A.
8. Re-organized the mapping of the Mach32 chipset, especially when to enable the ATI mode or switching back to IBM mode, should fix LFB conflicts with various operating systems.
9. According to The OS/2 Museum, the Adaptec AHA-154xB series of SCSI cards fail the ASPI4DOS.SYS 3.36 signature check, so now make the changes accordingly.
10. Remove useless and crashy bios-less option of the Trantor T128.
11. The Image Manager 1024 card can also be used on a XT (although only if it has a V20/V30).
12. Re-organized the IBM PS/2 model 60 initialization as well as its right POS machine ID (though an update to sc.exe is still required for the POST memory amount to work normally).
2023-09-30 22:08:08 +02:00
Jasmine Iwanek
ee695e71f9 More sonarlint work 2023-07-25 17:59:22 -04:00
Jasmine Iwanek
6c1e4a8e2c Some code smell fixes from sonarlint 2023-05-15 19:25:56 -04:00
Miran Grča
801ec1916d Merge pull request #3290 from 86Box/tc1995
Re-added the IBM PS/2 model 70 type 4 (Softfloat is always used in this machine).
2023-05-01 19:46:13 +02:00
OBattler
8fca57aa79 Universalize the keyboard and mouse latches again, fixes #3280. 2023-05-01 01:35:16 +02:00
TC1995
ad44c454c9 Re-added the IBM PS/2 model 70 type 4 (Softfloat is always used in this machine). 2023-04-30 21:52:58 +02:00
OBattler
5d9de974ee More keyboard controller clean-ups and fixes to mem/mem.c and port_92.c - OS/2 1.3 now works on IBM PS/2 MCA machines. 2023-04-22 03:48:50 +02:00
OBattler
ef17003f1b Fixed the "minor bug fix" in the AT / PS/2 keyboard controller, reworked PS/2 keyboard controller IRQ latches, and correctly disabled memory top remaps if there's more than (16 MB - remap size) RAM (fixes segmentation faults on some machines with 16+ MB of RAM). 2023-04-11 23:21:52 +02:00
Jasmine Iwanek
a7236a9022 Make dual video card code use array 2023-02-06 07:29:18 -05:00
Jasmine Iwanek
1860700eab Fix some small issues 2023-01-07 17:02:23 -05:00
OBattler
368462f23f Fixed IBM PS/2 Model 55SX Planar ID. 2022-12-15 16:00:12 +01:00
TC1995
6a4d1bbfc4 IBM PS/2 model 60: Looks like the model 50 bios expects the 50 POS id, and given the 60 shares its stuff with 50, I believe the id is identical then. 2022-12-04 16:56:14 +01:00
OBattler
27ebb27db7 Makefile.mingw corrections and made the code pass much stricter checks (now mandated by Makefile.mignw) to ensure GCC 14 readiness. 2022-11-17 22:44:06 +01:00
Jasmine Iwanek
f49d3c7458 Correct many file headers to show 86box 2022-10-27 17:08:58 -04:00
Jasmine Iwanek
ff39a77afc clang-format in src/machine 2022-07-27 17:01:04 -04:00
Adrien Moulin
2aa5d8f5b2 PIT: add alternative faster PIT
This is enabled by default on 486+ CPUs and can be forced disabled/enabled with pit_mode=0/1
2022-07-23 13:38:10 +02:00
Jasmine Iwanek
6233027c9e Named initializers in machine table 2022-07-19 18:51:18 -04:00
OBattler
fb78071ce9 And machine/m_ps2_mca.c. 2022-07-19 23:41:09 +02:00
TC1995
df5c1a1a46 ISA PS/2: Clean-ups and converted into a typedef struct.
MCA PS/2: Added Model 60 (8-slot version of 50 with the same bios) and Model 65sx (essentially the same as 55sx but with a new bios and a secondary nvram a la 70-80 but limited to 2KB of size instead of 8KB).
MCA PS/2: Made the i486 cpu selection on only on Type 3 MCA models (70-80) and not Type 2 anymore, therefore the latter is limited to 386DX cpu's only.
2022-07-19 16:32:23 +02:00
Alexander Babikov
710d34db97 Remove unused variables and functions 2022-04-14 07:13:50 +05:00
Jasmine Iwanek
702f80e58a Backport several changes from M&K 2022-04-12 17:26:05 -04:00
Jasmine Iwanek
41f1c2facd More hardcoding fixes 2022-03-12 19:18:48 -05:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
Jasmine Iwanek
4287e44824 newlines at end of file 2022-02-18 21:38:51 -05:00
TC1995
3975957590 Added Kingston MC64 memory expansion card (adf 71d0) which allows up to 64MB of RAM in the MCA-based 386DX-based models as well as a IBM CPU planar upgrade which allows 486DX cpu's to be used on the 386DX-based 80 models.
Fixed missing part of the width in the Compaq CGA cards.
2021-12-23 17:38:58 +01:00
OBattler
bcf96bd913 Properly fixed the IBM PS/2 Model 55SX, required reverting some keyboard controller changes and changes to the implementation of the memory control POS registers. 2021-12-08 22:05:55 +01:00
OBattler
732399ed42 Properly fixed the IBM PS/2 Model 55SX. 2021-12-07 11:24:56 +01:00
OBattler
ba6a27b15a And a fix for the fix. 2021-12-06 22:36:42 +01:00
OBattler
00e00fa5c6 Attempted fix for PS/2 Model 55SX. 2021-12-06 22:33:52 +01:00
OBattler
01567e976f Some IBM PS/2 Model 55SX memory fixes. 2021-11-20 10:32:02 +01:00
OBattler
3bd2e199dd Added a missing call to flushmmucache_nopc(). 2021-11-19 23:13:46 +01:00
OBattler
47d742b65e Removed the last vestiges of IBM PS/2 model 70 type 4. 2021-11-15 23:58:12 +01:00
OBattler
4f6df76f10 Revert "Revert "Merge branch 'feature/machine_and_kb' into master""
This reverts commit f2cd3756dd.
2021-07-04 17:40:39 +02:00
Daniel Gurney
f2cd3756dd Revert "Merge branch 'feature/machine_and_kb' into master"
This reverts commit 6604a29d7e, reversing
changes made to 1d7fca0abd.
2021-07-04 18:22:52 +03:00
OBattler
fd4817a87b All the current WIP work (warning: the PIT is currently using some temporary test rewrite that is going to be undone). 2021-06-29 19:11:19 +02:00
TC1995
3c95cd4cd5 Added the PS/2 model 80 type 3 machine. 2021-06-15 17:38:31 +02:00
OBattler
1b3a870388 Forgotten changes to the MCA PS/2 machines. 2021-04-29 07:37:05 +02:00
David Hrdlička
dfbbe08a07 rewrite the emulator to use UTF-8 internally 2021-03-30 09:46:49 +02:00
Panagiotis
a0a7ee67cc FDC workaround
The Internal FDC is added when needed for AT machines too.
Some speculative "work" on the main FDC code
2021-02-07 17:27:14 +02:00
OBattler
808fa292f6 Fixed memory state for PS/2 split mapping on models 70 and 80 (broken by recent mem.c changes). 2020-07-02 00:21:46 +02:00
David Hrdlička
dfa28eb8e9 Revert "Machine path reorganisation"
This reverts commit 0a48dbcfcd.
2020-05-22 22:32:46 +02:00
tiseno100
0a48dbcfcd Machine path reorganisation
The machine roms have been reorganized according to class(8086 - 286), CPU model (286 - 486) & Socket(Socket 4 - PGA370). Few exceptions are some manufacturer ROMs
2020-05-22 17:41:42 +03:00
David Hrdlička
a505894a10 Move all include files to src/include
- 86Box's own headers go to /86box
- munt's public interface goes to /mt32emu
- all slirp headers go to /slirp (might want to consider using only its public inteface)
- single file headers from other projects go in include root
2020-03-29 19:53:29 +02:00
OBattler
7eb9faf24c Merge pull request #624 from 86Box/feature/azt_snd
Added the Aztech Sound Galaxy 16 cards.
2020-03-25 01:12:22 +01:00
TC1995
6f4ac0de35 Added the Aztech Sound Galaxy 16 cards.
Added the reset function of MCA from PCem.
Made the MCA devices use the reset parameter if available.
2020-03-25 00:49:25 +01:00
Daniel Gurney
0c509fd551 Remove version tree-wide 2020-03-25 00:46:02 +02:00
OBattler
490c04fcae Current WIP code. 2020-02-29 19:12:23 +01:00
OBattler
ccd0df5cff Fixed memory states set by some machines (including IBM PS/1's and MCA PS/2's). 2019-11-01 14:23:52 +01:00
OBattler
552a87ea3d Added the IBM 5161 ISA expansion for PC and XT;
Cleaned up the parallel port emulation, added IRQ support, and made enabling/disabling per port;
Added the Award 430NX and the Intel Classic/PCI (Alfredo, 420TX);
Finished the 586MC1;
Added 8087 emulation;
Moved Cyrix 6x86'es to the Dev branch;
Sanitized/cleaned up memregs.c/h and intel.c/h;
Split the chipsets from machines and sanitized Port 92 emulation;
Added support for the 15bpp mode to the Compaq ATI 28800;
Moved the MR 386DX and 486 machines to the Dev branch;
Ported the new dynamic recompiler from PCem, but it remains in Dev branch until after v2.00;
Ported the new timer code from PCem;
Cleaned up the CPU table of unused stuff and better optimized its structure;
Ported the Open-XT and Open-AT from VARCem, the Open-AT is in the Dev branch;
Ported the XT MFM controller rewrite and adding of more controllers (incl. two RLL ones), from VARCem;
Added the AHA-1540A and the BusTek BT-542B;
Moved the Sumo SCSI-AT to the Dev branch;
Minor IDE, FDC, and floppy drive code clean-ups;
Made NCR 5380/53C400-based cards' BIOS address configurable;
Got rid of the legacy romset variable;
Unified (video) buffer and buffer32 into one and make the unified buffer 32-bit;
Added the Amstead PPC512 per PCem patch by John Elliott;
Switched memory mapping granularity from 16k to 4k (less than 1k not possible due to internal pages);
Rewrote the CL-GD 54xx blitter, fixes Win-OS/2 on the 54x6 among other thing;
Added the Image Manager 1024 and Professional Graphics Controller per PCem patch by John Elliott and work done on VARCem;
Added Headland HT-216, GC-205 and Video 7 VGA 1024i emulation based on PCem commit;
Implemented the fuction keys for the Toshiba T1000/T1200/T3100 enhancement;
Amstrad MegaPC does now works correctly with non-internal graphics card;
The SLiRP code no longer casts a packed struct type to a non-packed struct type;
The Xi8088 and PB410a no longer hang on 86Box when PS/2 mouse is not present;
The S3 Virge on BeOS is no longer broken (was broken by build #1591);
OS/2 2.0 build 6.167 now sees key presses again;
Xi8088 now work on CGA again;
86F images converted from either the old or new variants of the HxC MFM format now work correctly;
Hardware interrupts with a vector of 0xFF are now handled correctly;
OPTi 495SX boards no longer incorrectly have 64 MB maximum RAM when 32 MB is correct;
Fixed VNC keyboard input bugs;
Fixed AT RTC periodic interrupt - Chicago 58s / 73f / 73g  / 81 MIDI play no longer hangs with the build's own VTD driver;
Fixed mouse polling with internal mice - Amstrad and Olivetti mice now work correctly;
Triones ATAPI DMA driver now correctly reads a file at the end of a CD image with a sectors number not divisible by 4;
Compaq Portable now works with all graphics cards;
Fixed various MDSI Genius bugs;
Added segment limit checks and improved page fault checks for several CPU instructions - Memphis 15xx WINSETUP and Chicago 58s WINDISK.CPL no longer issue a GPF, and some S3 drivers that used to have glitches, now work correctly;
Further improved the 808x emulation, also fixes the noticably choppy sound when using 808x CPU's, also fixes #355;
OS/2 installer no logner locks up on splash screen on PS/2 Model 70 and 80, fixes #400.
Fixed several Amstead bugs, GEM no longer crashes on the Amstrad 1640, fixes #391.
Ported John Elliott's Amstrad fixes and improvement from PCem, and fixed the default language so it's correctly Engliish, fixes #278, fixes #389.
Fixed a minor IDE timing bug, fixes #388.
Fixed Toshiba T1000 RAM issues, fixes #379.
Fixed EGA/(S)VGA overscan border handling, fixes #378;
Got rid of the now long useless IDE channel 2 auto-removal, fixes #370;
Fixed the BIOS files used by the AMSTRAD PC1512, fixes #366;
Ported the Unicode CD image file name fix from VARCem, fixes #365;
Fixed high density floppy disks on the Xi8088, fixes #359;
Fixed some bugs in the Hercules emulation, fixes #346, fixes #358;
Fixed the SCSI hard disk mode sense pages, fixes #356;
Removed the AMI Unknown 386SX because of impossibility to identify the chipset, closes #349;
Fixed bugs in the serial mouse emulation, fixes #344;
Compiled 86Box binaries now include all the required .DLL's, fixes #341;
Made some combo boxes in the Settings dialog slightly wider, fixes #276.
2019-09-20 14:02:30 +02:00
OBattler
46d0ed2baa Rewritten 808x CPU emulation core based on reenigne's XTCE, VisiOn, SnatchIt, and 8088 MPH now work correctly;
Fixed PC speaker sound volume in PIT mode 0;
A few CPU emulation clean-ups;
Hard disk controller changing redone in a less messy way;
Re-added the long-missing key send delay handling to the XT keyboard handler;
Fixed a bug that was causing SLiRP not to work when compiled with MingW/GCC 7.3.0-2 or newer;
Some serial mouse and port fixes;
A lot of changes to printer emulation, mostly based on DOSBox-X;
Printer PNG writer now uses statically linked libpng;
Added support for the HxC MFM floppy image format and upped 86F format version to 2.12;
Ported various things from PCem and some from VARCem;
Added the S3 86c801/805 emulation (patch from TheCollector1995);
Fixed and renamed the EGA monitor options;
Better synchronized the 808x to the PIT and the CGA;
Fixed the CGA wait state calculation;
Cleaned up some things in mem.c;
Fixed some things in the floppy emulation to make VisiOn get the correct errors from the copy protection disk;
Fixed several renderer-related bugs, including the SDL2 renderer's failure to take screenshots;
The Jenkins builds are now compiled with MingW/GCC 7.4.0-1 and include all the required DLL's.
2019-02-06 03:34:39 +01:00