Commit graph pcjs/modules/pcjs/lib/x86func.js
Author SHA1 Message Date
Jeff Parsons
deeac4902d v1.19.6: Improved restartability of stack-related instructions 2015-09-14 16:53:57 -07:00
Jeff Parsons
b00b524e01 v1.19.5 update (fixes a CALLF bug and a VGA ATC bug, and adds improved WDEB386-style load notifications) 2015-09-12 02:05:05 -07:00
Jeff Parsons
cb9e330cfa Fixed a stack-size bug uncovered by a PUSH SS/POP SS sequence in Windows 95 kernel 2015-09-11 15:13:08 -07:00
Jeff Parsons
e207cabc0a v1.19.5: Finally bit the bullet and throw JavaScript exceptions for improved CPU exception handling 2015-09-10 17:59:46 -07:00
Jeff Parsons
09295a1a27 v1.19.5 checkpoint (includes a fix to the "pop mem" instruction) 2015-09-10 15:18:20 -07:00
Jeff Parsons
40709af7f5 Fixed problems with SHRD, SHLD (need to use unsigned shifts) and BT* instructions that use signed bit offsets 2015-09-05 16:03:49 -07:00
Jeff Parsons
8d83504d9a Added support for "call breaks", and fixed BTC, BTR and BTS (hopefully correctly this time), 2015-09-04 14:13:09 -07:00
Jeff Parsons
3f52d18182 Corrected frame size for 32-bit INT gates, fixed BT/BTC/BTR/BTS instructions for bit indexes > 31, and disabled the Debugger's IF clear warning when IOPL < CPL 2015-09-03 18:47:40 -07:00
Jeff Parsons
ee2f5ff761 Revamped dump extensions to accept argument arrays, added probeDesc() for Debugger-safe segment descriptor loading 2015-09-03 09:07:40 -07:00
Jeff Parsons
1a67c7acbd v1.19.3: More Windows 95-related updates 2015-09-01 16:19:20 -07:00
Jeff Parsons
63121a1768 Fixed save/restore (hopefully) when A20 is off, as well as when HDC I/O is in progress (although the latter needs more testing) 2015-08-29 15:22:36 -07:00
Jeff Parsons
f5cd98a7e6 Made DEBUG-only code, um, DEBUG-only 2015-08-27 17:13:27 -07:00
Jeff Parsons
f56815c11b Added WDEB386 service simulation (INT 0x41) 2015-08-27 16:23:12 -07:00
Jeff Parsons
8c945bac17 Fixed ECX corruption in LOOP instructions 2015-08-26 14:54:59 -07:00
Jeff Parsons
95f7db7c94 Reorged interrupt info, added MS-DOS 3.21 images, and increased memory size of OS/2 1.0 machine to 2Mb 2015-08-26 13:25:34 -07:00
Jeff Parsons
c18fd50ffc Don't halt on any GP_FAULT by default 2015-08-24 19:00:04 -07:00
Jeff Parsons
927a71d681 v1.19.2: Added support for timer Read-Back command, segment probes, and improved instruction restartability 2015-08-24 17:27:34 -07:00
Jeff Parsons
5b64488286 Made RETF restartable when the target segment is not present 2015-08-21 15:19:16 -07:00
Jeff Parsons
b52f27f35f Cleaned up fCall handling a bit 2015-08-16 09:38:05 -07:00
Jeff Parsons
a3f1df0ba7 Removed fSuppress hack from general-purpose segment register operations 2015-08-16 08:41:13 -07:00
Jeff Parsons
8fef77f067 Added support for user-defined Debugger variables (see 'let' and 'print' commands) 2015-08-12 14:25:45 -07:00
Jeff Parsons
2fd9f6cfe5 Lots o' Debugger changes, including support for breakpoint commands and logical expressions
A new "if" command for use within breakpoint commands makes it possible to conditionally halt execution now
2015-08-11 16:50:39 -07:00
Jeff Parsons
c2d9d6b25f Halt (for now) on any 80386 GP fault, and prevent SPACE from scrolling the page 2015-08-07 00:15:29 -07:00
Jeff Parsons
7255ab59a5 Fixed Debug exceptions that occur during REPeated instructions 2015-08-04 07:59:49 -07:00
Jeff Parsons
cffa72205a More Debug register tweaks 2015-08-03 17:13:43 -07:00
Jeff Parsons
9fa2941394 Limited Debug register support 2015-08-02 21:11:19 -07:00
Jeff Parsons
6003e948b6 First v1.18.8 change: preliminary support for 80386 debug registers 2015-07-31 18:25:37 -07:00
Jeff Parsons
812c0af6b6 Standard-mode Windows 3.0 finally runs properly 2015-07-30 12:50:44 -07:00
Jeff Parsons
2150744668 Added support for DRn and TRn instructions (although they're effectively NOPs for now) 2015-07-27 11:29:57 -07:00
Jeff Parsons
4bb34eb81d CPU caches CPL now (independent of segCS.cpl) 2015-07-26 12:14:30 -07:00
Jeff Parsons
fc9a2a903f Added separate dumpers for physical and linear address space, added more information to the TSS dump, fixed breakpoint updates when the address(es) are not yet valid, fixed recursion error when an UNPAGED block is accessed, made string instructions restartable after a fault, and enabled port-trapping in V86-mode. 2015-07-25 16:42:39 -07:00
Jeff Parsons
afcdd055e1 Assorted V86-mode fixes and IOPM support 2015-07-24 16:53:39 -07:00
Jeff Parsons
f8d7c5d518 Updated reset to reset page tables, fixed RET[F]n instructions, and added some Debugger improvements 2015-07-23 16:58:01 -07:00
Jeff Parsons
4102ef0514 Added support for both 80286 and 80386 gates and TSS segments 2015-07-22 16:03:21 -07:00
Jeff Parsons
545c290785 Begin differentiating 286 and 386 descriptors 2015-07-21 09:39:26 -07:00
Jeff Parsons
c2187e1e1b Assorted Debugger fixes 2015-07-20 13:11:46 -07:00
Jeff Parsons
ad9585b346 Speed up uncompiled code by "IFDEF'ing" disabled code, rare asserts, etc. 2015-07-18 14:21:09 -07:00
Jeff Parsons
b6e8eb8877 Fixed handling of redundant address/data override prefixes 2015-07-17 10:14:17 -07:00
Jeff Parsons
31e316d636 Fixed 32-bit INC, DEC, NEG, NOT, TEST, MOVSB and MOVSW
(several things that slipped through the cracks during 32-bit development)
2015-07-16 13:14:34 -07:00
Jeff Parsons
d45f3174f6 Make sure real-mode CS:IP changes never signal a stack switch 2015-07-15 18:53:56 -07:00
Jeff Parsons
6295c112fe Improved DOS message output (use "m dos on" Debugger command) 2015-07-15 09:09:28 -07:00
Jeff Parsons
74bb240255 Fix opcode 0x6A (PUSH imm8) 2015-07-09 18:28:22 -07:00
Jeff Parsons
ef3873da6e Black Book demo L23-1 works now 2015-06-19 11:01:51 -07:00
Jeff Parsons
cfd02bb4ae Improvements to code and stack limit checks (still not perfect, but better) 2015-05-21 15:45:26 -07:00
Jeff Parsons
a28fa95d25 More 80286 testing 2015-05-15 09:08:42 -07:00
Jeff Parsons
c431e5dde8 Future-proof ADDR_INVALID checks by using strict [in]equality 2015-05-14 13:11:46 -07:00
Jeff Parsons
07530c7e58 Fix 32-bit segment-register MOVs (they write 32 bits to a register, but only 16 bits to memory) 2015-05-08 13:36:02 -07:00
Jeff Parsons
ab0399064e Changed Debugger and diagnostic functions to call probeAddr() to safely probe linear addresses 2015-05-08 12:22:12 -07:00
Jeff Parsons
3a1d05d541 BOUND fixes 2015-05-07 20:57:49 -07:00
Jeff Parsons
cfa4e0207f Fixed LGDT and LIDT, fixed read-only memory, and fixed mode transition tests 2015-05-06 16:24:28 -07:00