Commit graph pcjs/modules/pcx86/lib
Author SHA1 Message Date
Jeff Parsons
30df38738c Added support for automatic scripts (ie, autoScript) 2017-07-25 12:52:36 -07:00
Jeff Parsons
1b987df6e2 Added more scripting support to PCx86 (eg, for loading disks, typing keys, and waiting for both to finish) 2017-07-25 10:30:29 -07:00
Jeff
fe74e12e40 Added the *scaleMouse* property so that host mouse coordinates can undergo an optional scaling transformation (default is 1.0) 2017-07-24 18:47:10 -07:00
Jeff
6a3f7f4a5d Added support for segment wrap-around in 8086/8088 real-mode (all stack operations, instruction fetches, and operand accesses should wrap now); real-mode wrap-around on newer processors should trigger a GP fault instead 2017-07-23 14:59:26 -07:00
Jeff
a85662632c Fixed serial port transmitter interrupts, and added a new blog post (RetroReview: SPEEDUP) 2017-07-22 23:08:46 -07:00
Jeff
b7e424a46c Found a fix for the unwanted blinking caret in Internet Explorer browsers (IE9 through IE11, the last version of IE) 2017-07-21 11:34:25 -07:00
Jeff
d8f98fb263 Tidied up some Bus and Disk messages 2017-07-20 21:25:54 -07:00
Jeff
d8cdebae3b Fixed full-screen support (it was broken in the commit that enabled flicker support), and more tweaks to the stack limit checks in the pushWord() and popWord() functions 2017-07-20 20:00:31 -07:00
Jeff
fb493d09ac Handle wrap-around for 16-bit real-mode POPs as well 2017-07-20 12:13:08 -07:00
Jeff
a0951aeea9 Replaced the previous temporary PUSH fix with a permanent fix, along with 8086/8088 support for 16-bit pushes that wrap around 64K boundaries (must be done with two discrete byte operations) 2017-07-20 11:25:58 -07:00
Jeff Parsons
308bd75af4 Added a temporary fix to PUSH operations to ensure that 16-bit pushes wrap around 64K boundaries (TODO: a 16-bit PUSH at offset 0x0001 or a POP at offset 0xFFFF must either wrap or fault as appropriate) 2017-07-19 23:24:18 -07:00
Jeff Parsons
6c6f28c1ef Fixed PCx86 to recover from situations where a page entered an "unloaded" state but wasn't actually unloaded. 2017-07-19 14:57:19 -07:00
Jeff Parsons
88ab0cd106 Added new blog post: Flickery Fakery 2017-07-15 10:48:06 -07:00
Jeff Parsons
1760ae4ff9 Fixed a regression in EGA/VGA video page calculations (introduced by the other recent paging-related fixes) 2017-07-14 17:47:03 -07:00
Jeff Parsons
aa93903c1a Screen buffer wrap-around support (and some retrace tweaks) for the FlickerFree utility 2017-07-14 11:57:39 -07:00
Jeff Parsons
ec438be5c9 Fixed old, longstanding, and surprisingly bad bug in cleanMemory() for all machine implementations 2017-07-12 21:02:30 -07:00
Jeff Parsons
9e149dda6a Added support for a new "flicker" PCx86 Video property that simulates good old-fashioned CGA flicker -- don't leave home without it! 2017-07-12 16:22:26 -07:00
Jeff Parsons
9cb68b77fd Updated the PC Magazine Disks page with a new improved way of quickly loading disks into a demo machine 2017-07-12 10:14:01 -07:00
Jeff Parsons
773ed2db37 Remove the hard disk "Save" feature from mobile devices 2017-07-11 22:48:57 -07:00
Jeff Parsons
c9053b1d47 Updated the CP/M-86 disk page, and added a new Debugger dump command ("da") that's useful for dumping the ASCII contents of a PCx86 text video buffer 2017-07-06 08:41:25 -07:00
Jeff Parsons
e33adffbf4 Switched from mouse event clientX and clientY to screenX and screenY (will it make any difference on high DPI screens? I don't know...) 2017-07-05 23:01:50 -07:00
Jeff Parsons
35a3006000 Added some Modula-2 and PCTJ disks 2017-07-02 15:55:25 -07:00
Jeff Parsons
131e5eac69 Added another old Infocom game 2017-07-02 11:14:25 -07:00
Jeff Parsons
7c3d20f534 Added another old Infocom game 2017-07-02 11:14:04 -07:00
Jeff Parsons
97ee1cf73d Accommodate operations like PC-DOS 1.10 reformatting a single-sided 160Kb disk image as a double-sided 320kb disk image 2017-07-01 11:39:28 -07:00
Jeff Parsons
3abd13e8ca Updated COMPAQ MS-DOS READMEs, along with a few PCx86 debugger improvements 2017-06-30 12:03:35 -07:00
Jeff Parsons
65421dad68 Updated COMPAQ MS-DOS READMEs 2017-06-29 17:37:37 -07:00
Jeff Parsons
85b3aade36 Updated some DOS READMEs and made the onReset handler honor the running state of the CPU 2017-06-29 15:27:22 -07:00
Jeff Parsons
51f8440e9b More diagnostic output improvements 2017-06-28 17:51:15 -07:00
Jeff Parsons
ea82dfec93 A machine's screen can now be used to display initialization (diagnostic) messages, up until the Computer component is ready to power/start the CPU, at which point control of the screen reverts to the Video component 2017-06-28 16:24:33 -07:00
Jeff Parsons
d4d3448fd5 Cleaned up how components print messages and how the Computer component overrides their notice/print/println methods (in preparation for new Computer overrides) 2017-06-28 10:53:44 -07:00
Jeff Parsons
6f9bfa1950 Trying to do a better job of properly typing DOM objects 2017-06-28 09:41:01 -07:00
Jeff Parsons
743511d5db Fixed recent problems introduced with my switch to addEventListener 2017-06-27 17:39:20 -07:00
Jeff Parsons
2cb0be42f0 Setting the stage for a resource status update mechanism 2017-06-27 16:01:00 -07:00
Jeff Parsons
754a4a4027 Machine states now save/restore the CPU's running state 2017-06-27 14:08:16 -07:00
Jeff Parsons
60aaeaa3bf More attempts to clean-up and reduce spurious alerts 2017-06-27 10:39:21 -07:00
Jeff Parsons
c20fe69872 More attempts to clean-up and reduce spurious alerts 2017-06-27 10:32:30 -07:00
Jeff Parsons
7aa689c745 Let's try to tone down the alerts when 'resume' is set to AUTO (1) 2017-06-27 09:54:59 -07:00
Jeff Parsons
7ca8fa18a1 Changed the onclick handlers for Keyboard CLICKCODES to let updateFocus() scroll the canvas into view as needed, because (at least on iOS) the code that tries prevent the page from scrolling has an annoying "jerking" side-effect; also fixed the old Node web server code that would install onclick handlers for disk images, triggering automatic conversion of JSON to IMG files 2017-06-26 11:05:01 -07:00
Jeff Parsons
ed75397b83 Fixed an old annoying bug where a restored video card wouldn't properly display a blinking cursor; originally, I assumed it was a CRTC register restoration bug, but actually, some supporting variables (eg, cBlinks) were not getting initialized in both the reset() and restore() code paths. This is also a good time to remember that when an uninitialized array from some hardware state gets serialized and deserialized to/from JSON, the array is restored as a series of "null" values, not as "undefined" values, so it's best for any code checking for undefined values to use "== null" rather than "=== undefined". 2017-06-26 08:56:17 -07:00
Jeff Parsons
8d5c618b78 Updated page on COMPAQ DOS 1.11 2017-06-26 07:33:03 -07:00
Jeff Parsons
22a577e3ec Fixed KEYGRID support, so Rogue should be much more playable now on an iPad using the touchscreen 2017-06-25 10:18:08 -07:00
Jeff Parsons
a9b6feb377 Added more demo links on the home page, switched nearly all machines over to the complete diskette library (instead of just a few samples), added the ability to autoMount disketttes by name OR by path, and updated the Dual Display IBM PC with a newer version of DOS along with details on toggling the active display 2017-06-24 10:39:26 -07:00
Jeff Parsons
0b803b23f1 The computer's 'resume' property can now be passed in as a machine property, allowing pages to set and/or override it 2017-06-23 14:21:03 -07:00
Jeff Parsons
503cda40f7 Fixed machine array demos, by permitting machine IDs with hyphenated numeric suffixes to use a machine state file created with an unhyphenated machine ID, and added a demo of Windows 1.0 (the "Premiere Edition") 2017-06-23 14:00:27 -07:00
Jeff Parsons
113201fdb4 Added a cleaner solution for string replacement woes (ie, use Str.replace() instead of applying replace(/\$/g, "$$$$") to replacement strings) 2017-06-23 11:56:14 -07:00
Jeff Parsons
9ad03d66b3 parseAutoType() now leaves unrecognized $-sequences alone, instead of complaining about them 2017-06-23 10:23:07 -07:00
Jeff Parsons
5a22c9c59b Added more documentation regarding a REALLY annoying feature of JavaScript's string replace() method 2017-06-23 10:03:27 -07:00
Jeff Parsons
991e924d01 Added support for special autoType sequences (eg, $date and $time, which generate current date and time strings accepted by the PC-DOS date and time prompts) 2017-06-23 09:39:40 -07:00
Jeff Parsons
0bd1be0df9 When a 'state' file is passed as a URL parameter, that's supposed to override a machine's 'resume' setting, but if a 'state' file is passed as EITHER a computer parameter (the original XML-based method) OR as a machine parameter (a newer method that allows a web page to override certain XML settings), that is NOT supposed to override the 'resume' setting. This restores the ability of the DONKEY.BAS demo to BOTH define a state file AND allow the machine to be suspended and resumed. Additionally, a new-ish Video card property (offStartAddr), which was originally added for the EGA/VGA, was not properly initialized for other cards, so when we restored the display of a suspended machine with a CGA, nothing would be displayed, due to lots of NaN buffer address calculations. 2017-06-22 17:45:36 -07:00