Commit graph pcjs/modules/pc8080/lib
Author SHA1 Message Date
Jeff Parsons
66f82736c9 Added support for paste to the VT100, but browser idiosyncrasies (eg, Chrome) are proving irksome; for now, you'll have more luck with Firefox, or sticking to machines that use a textarea for their I/O instead the VT100 if you need to do a lot of pasting 2016-11-25 18:28:57 -08:00
Jeff Parsons
57d287f161 The VT100 is now smarter about detecting the host machine's physical CAPS LOCK state (and is also capable of displaying that state now) 2016-11-25 16:06:39 -08:00
Jeff Parsons
d4e0d8a422 Changed PC8080 auto-release timeout for key presses to use built-in setTimer() instead of the browser's setTimeout(), and reduced the timeout from 100ms to 50ms; let's see if the VT100 still experiences dropped keys when typing fast 2016-11-23 22:02:22 -08:00
Jeff Parsons
0d73a6b33f Fixed DELETE/BACKSPACE confusion in the VT100 KEYMAP (by of course mapping BACKSPACE to DELETE and DELETE to BACKSPACE; makes perfect sense) 2016-11-22 22:39:44 -08:00
Jeff Parsons
9ab8d5eb5f Trying to keep the focus code synced 2016-10-23 09:30:01 -07:00
Jeff Parsons
9ecb9e948f More tweaks to the on-going tension between giving machine elements focus (especially problematic when there are multiple machines) and preventing the page from being yanked around 2016-10-23 09:24:26 -07:00
Jeff Parsons
13a1dedbc7 Supoprt for tape images in the Absolute Loader format has been moved to the RAM component, so that those images can be preloaded into RAM in the same way that raw bootstrap images can; the RAM component now provides Absolute Loader image parsing as a service to other components that need it (specifically, the PC11 tape reader) 2016-10-19 11:10:38 -07:00
Jeff Parsons
5f3694133a Updated READMEs regarding RAM image support 2016-10-17 11:18:18 -07:00
Jeff Parsons
980c2ac5ab Updated PC8080 and PDPjs to support RAM images, eliminating the need for the old "writable ROM" kludge; RAM images can include their own load and exec addresses as part of the JSON file, but the RAM component can provide explicit overrides (if no load address is specified either way, the default load address is the starting RAM address) 2016-10-17 11:01:32 -07:00
Jeff Parsons
b1f8fca2d9 Re-enabled source maps, at least for the PDP-11 emulators (for now) 2016-10-14 09:30:17 -07:00
Jeff Parsons
8bb978d7a9 Resolved a problem with the original timer implementation, where a call to setTimer() made in the middle of a CPU burst would not properly account for cycles already executed as part of the current burst 2016-10-12 22:08:45 -07:00
Jeff
e24d507aa2 Removed useless version numbers and dates from .js file headers 2016-10-06 16:22:24 -07:00
Jeff
1a1614a648 Simplify the Bus and Memory interfaces slightly, by enabling WORDBUS, which treats all word accesses as aligned; the CPU is has sole responsibility for detecting unaligned word addresses and trapping appropriatelu 2016-10-06 14:17:29 -07:00
Jeff
9727a2d4df Across-the-board debugger fix 2016-09-27 09:34:56 -07:00
Jeff
b2294e2293 Use CPU timer functions (instead of browser timeout/interval functions) to control device interrupts/timeouts 2016-09-26 20:34:31 -07:00
Jeff
b28166f493 Updated Closure Compiler to v20160911, so now we have a version that supports ECMAScript 6, but I'm not going to go bonkers on ES6 features just yet; the first feature I'm going to use is support for octal and binary constants (of the form 0onnnn and 0bnnnn) 2016-09-24 16:03:57 -07:00
Jeff
dfe367f53d New improved I/O handler functions for the PDP-11 2016-09-21 12:44:25 -07:00
Jeff Parsons
614fc11aca Restored support for custom memory controllers in the PDP11 emulator (to be used for UNIBUS I/O) 2016-09-20 11:19:42 -07:00
Jeff Parsons
e865857c4b PC8080's Debugger8080 wasn't properly subclassing Debugger 2016-09-20 08:39:03 -07:00
Jeff Parsons
1265104e6d Added support for converting numbers to/from octal, along with improved support for binary numbers 2016-09-15 18:23:09 -07:00
Jeff Parsons
5f622303b4 Completed Keys factoring 2016-09-15 08:18:37 -07:00
Jeff Parsons
5398064ec4 Started Keys factoring 2016-09-15 07:59:12 -07:00
Jeff Parsons
e5c5a8e6be Some more Debugger factoring 2016-09-14 21:11:57 -07:00
Jeff Parsons
522563a72b Fixed Debugger type inspection problems following the previous refactoring 2016-09-14 15:52:55 -07:00
Jeff Parsons
a8bb0c7841 First stab at factoring some common Debugger functionality into a shared component 2016-09-14 15:36:38 -07:00
Jeff Parsons
3bd02c7e19 Bumped version to 1.30 in honor of the PDP11 module that's being integrated, along with my first attempt to use a newer version of the Closure Compiler (ie, the JavaScript version), as well as giving Gulp a try -- although Gulp leaves just as bad a taste in my mouth as Grunt did 2016-09-13 15:33:17 -07:00
Jeff Parsons
100779e30a First batch of pdp11.js code adapted but totally untested 2016-09-05 11:05:40 -07:00
Jeff Parsons
4b778b281d Groundwork for a PDP-11 emulator (starting with a gutted copy of PC8080) 2016-09-03 17:43:06 -07:00
Jeff Parsons
a08fcab276 Updated calcRemainingTime() to compensate for large time anomalies (usually caused by external debuggers) 2016-08-24 17:06:01 -07:00
Jeff Parsons
7dc4448f41 Fixed the PC8080 CPUState class name 2016-08-24 14:17:54 -07:00
Jeff Parsons
3ae0c3a263 Remove unused variable 2016-08-24 14:07:45 -07:00
Jeff Parsons
0a4fc6df1c Removed unneeded Video DEBUG code 2016-08-23 22:45:15 -07:00
Jeff Parsons
244f0dba32 Cleaned up the run loop, less complicated now, and video updates can drive themselves thanks to the new CPU timer functions 2016-08-23 22:41:45 -07:00
Jeff Parsons
97f8e87ca3 Added some iOS usability improvements (related to soft keys/buttons and annoying focus/zoom changes) 2016-08-23 16:08:48 -07:00
Jeff Parsons
2b24e710d2 Fixed the Computer updateFocus() interface to keep the page stable unless fScroll is explicitly set 2016-08-23 14:59:06 -07:00
Jeff Parsons
c1b34a87ed Immunized cursor blink rate from changes to CPU speed 2016-08-23 12:52:11 -07:00
Jeff Parsons
702b9d36c7 Optimized PC8080's innermost CPU execution loop 2016-08-22 17:17:14 -07:00
Jeff Parsons
bca19fd8ed Added proper clocking of VT100 keyboard UART, allowing us to restore the proper CPU speed (2.7Mhz) and maintain the correct cursor blink rate 2016-08-22 09:14:34 -07:00
Jeff Parsons
6410ae068c Updated information about VT100 factory defaults 2016-08-21 09:56:44 -07:00
Jeff Parsons
6a5e18d493 Working on next release (v1.24.1): first change is enabling smooth scrolling by default 2016-08-19 16:10:48 -07:00
Jeff Parsons
23e78b971c Picked up all the last-minute changes from the gh-pages branch (where I discovered a race condition between machines) 2016-08-19 13:03:30 -07:00
Jeff Parsons
ff46c1d240 Updated receiveData() to always return true in both PCx86 and PC8080, since both machines are buffering all the incoming data anyway (since we still don't have any flow-control interfaces yet) 2016-08-19 08:42:33 -07:00
Jeff Parsons
b52e794997 Added a (temporary) auto-XON hack to the VT100's SerialPort component to prevent ugly buffer overflows when a PC is shoveling the data in too fast (to be replaced later with real flow-control interfaces) 2016-08-18 18:49:01 -07:00
Jeff Parsons
5ed8f13840 A (PC8080) VT100 can now connect to a (PCx86) IBM PC AT; only problem seems to be flow control now.
Also, each PCjs debugger can now be independently accessed from an external debugger (eg, "pcx86('ver')" or "pc8080('ver')"); the global '$' symbol is no longer used for debugger access.
TODO: There are still many places where GLOBALVAR should be replaced with PCX86.GLOBALVAR or PC8080.GLOBALVAR as appropriate (which I've finally started doing in each debugger.js file).
2016-08-18 16:46:34 -07:00
Jeff Parsons
0e4ad76b94 Cross-machine serial port connections are only half-working (need to defer initConnection() until all machines on the page have initialized their bus) 2016-08-18 11:30:22 -07:00
Jeff Parsons
f0509bc5d1 Successfully running PCx86 and PC8080 machines on the same page now 2016-08-18 10:29:24 -07:00
Jeff Parsons
145ec9d125 Starting on v1.24.0; first change: support for encoding ESC characters in SerialPort test strings (support which perhaps should eventually be moved into getComponentParms() instead) 2016-08-17 19:09:23 -07:00
Jeff Parsons
9d289b54da Dual (connected) terminal configs should be working better, now that both transmitted and received data is clocked according to their respective baud rates 2016-08-17 15:42:02 -07:00
Jeff Parsons
140e1cf094 Adding clocking mechanism for serial data transmission 2016-08-17 14:09:02 -07:00
Jeff Parsons
99023617fd Fixed lost 8080 interrupts, and added new CPU-driven setTimer() functionality 2016-08-17 11:58:01 -07:00