Commit graph pcjs/modules/pdp11/lib/cpu.js
Author SHA1 Message Date
Jeff
0aa88da301 Updated information on PDP timings 2017-02-23 09:02:48 -08:00
Jeff Parsons
ba7de38fbf Created PDP-10 skeleton 2017-02-19 15:22:58 -08:00
Jeff Parsons
822ab39cbe Unforked the shared modules -- ES6 is now the default 2017-01-31 13:50:55 -08:00
Jeff Parsons
5edbdcdce2 Factored PDP-11 drive controller logic into a device-independent superclass (drive.js) and a device-dependent subclass (rk11.js); the RL11 controller is ready to be factored next 2017-01-28 13:39:19 -08:00
Jeff Parsons
6f83ee8beb Fixed the autoStart state of the PDP-11 test machine used for resume testing 2017-01-25 20:59:27 -08:00
Jeff Parsons
bb24ccaca6 Added resume support for saving/restoring all active timers and IRQs, along with the run/stop state of the CPU 2017-01-25 20:31:05 -08:00
Jeff Parsons
94fd473b0a Tidied up some status messages 2017-01-25 14:18:19 -08:00
Jeff Parsons
67e1e66cb1 More Node-related module tidying (but still doesn't solve ES6 browser issues with uncompiled code) 2017-01-02 16:51:09 -08:00
Jeff Parsons
b5d6afd210 Protect all Node-specific code with NODE checks 2017-01-02 15:16:18 -08:00
Jeff Parsons
ee45dbd8cf Started working on save/restore support for the PDP-11; still a lot of state left to capture, but the basics seem to be working 2016-12-31 16:07:33 -08:00
Jeff Parsons
f87161f5d6 v1.32.0: The New Year Release 2016-12-30 15:56:01 -08:00
Jeff Parsons
4b345bb3d2 PDP-11 command-line (Node-based) operation is finally working 2016-12-30 14:51:32 -08:00
Jeff Parsons
5e2073f3ac Let's switch from import back to require, to simplify future Node support 2016-12-27 17:16:18 -08:00
Jeff Parsons
f4f6181923 v1.31.0 marks our first transition to ES6 classes, but only for PDPjs initially (which is why there must be both /lib and /es6 files in the shared folder for now) 2016-12-18 11:31:55 -08:00
Jeff Parsons
cb61219e22 Added support for virtual read/write breakpoints; physical read/write breakpoints are still used if the specified address is physical (preceded by %) or is outside the virtual 16-bit address range 2016-12-06 15:00:19 -08:00
Jeff Parsons
fa3be9eda9 Another minor autoStart tweak 2016-12-04 11:34:46 -08:00
Jeff Parsons
d8f0e64329 Merge the last set of changes from the gh-pages branch 2016-12-04 11:31:03 -08:00
Jeff Parsons
b54253acf9 Numerous changes to make paper tape configurations more consistent with disk configurations. This allows all devices to share the machine-wide "autoMount" configuration object, now that the PC11 has a proper device name ("PTR"), making its properties distinguishable from those for RK11 and RL11 drives (eg, "RK0", "RL0", etc). And all the tape/disk components now use "Load" functions to connect a tape or disk to a device ("Attach" is deprecated). And finally, all tape/disk components now support operations to deposit their media directly into memory -- although in this case, the names of the operations are necessarily different: "Read" for tape images, "Boot" for disk images. The difference is partly historical convention but also reflects the fact that a "Boot" operation is more limited: paper tapes were designed to be completely loaded into memory, whereas bootable disks are designed for only the first sector to be loaded and executed. Also, paper tape images are now flagged as non-auto-starting, because they often require some user action (eg, loading another tape, setting some switches, etc), whereas disk boot sectors are flagged as auto-starting (see the fStart parameter of the loadImage() interface in the RAM component). 2016-12-03 14:49:51 -08:00
Jeff Parsons
63348edabe Added some RK11 improvements, and a new Debugger command ("da") to dump information about a virtual address 2016-12-02 16:06:23 -08:00
Jeff Parsons
6bea7fd0e9 Added SerialPort interface to support the passing of flow control signals between machines (only PDP-11 and VT100 for now; PCx86 will come later, after I study how well, or not-so-well, this works with the VT100) 2016-12-01 11:15:27 -08:00
Jeff Parsons
47a65f043f Cleaned up IRQ handling, added support for DL11 overrun errors, and fixed buffered message output (although a better solution is needed longer term) 2016-11-26 11:38:03 -08:00
Jeff
77897275eb Limit CPU display updates to a reasonable number (ie, twice per second) 2016-11-14 20:10:18 -08:00
Jeff
eb6bf8a5a5 Fixed ASRB and RORB instructions, added a new dump command ("ds"), and fixed timer function initialization 2016-11-10 06:10:54 -08:00
Jeff
f43d1c1745 Revert back to propagating R0 to the Front Panel data path on a WAIT instruction (per PDP-11 lore) 2016-11-08 14:21:07 -08:00
Jeff
a7a44a8288 Cleaned up the PDP-11 updateDisplay(s) code, and removed the update hack inside the WAIT instruction; display updates now occur in sync with the machine's 60Hz clock 2016-11-04 13:35:20 -07:00
Jeff
57bceb4da9 Fixed the LED (lamp) test, fixed Front Panel update on a machine RESET, and cleaned up the status update code a bit 2016-11-03 10:28:54 -07:00
Jeff
d5c7bf0b5d More Front Panel improvements 2016-11-02 13:35:50 -07:00
Jeff
caf0a728f8 More PDP-11 front panel functionality 2016-11-01 19:02:06 -07:00
Jeff Parsons
de916981f3 It is now possible to re-attach or re-load the current paper tape; re-attaching means repositioning it at the beginning, and re-loading means loading it into RAM again. Note that whenever you reload a tape, it's HIGHLY recommended that you reset the machine first, too. 2016-10-23 13:44:31 -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
22e24697fe Fixed read/write breakpoints for instructions that snapshot the cycle count, and improved the disassembly of PC-relative operands 2016-10-21 13:45:01 -07:00
Jeff Parsons
3db1439b40 Improved Debugger focus handling, added a new zeroMemory() Bus interface, and updated the RAM component's reset() function to re-zero RAM and then restore any predefined contents 2016-10-21 12:15:02 -07:00
Jeff Parsons
3a7b769fa3 Added support to FileDump for generating binary dumps from MACRO11 listing (.lst) files, since I wasn't having much success with dumpobj or obj2hex.pl; note that this assumes a listing file produced by the macro11 cross-assembler written by Richard Krehbiel in 2001, updated in 2009, and maintained here: https://github.com/shattered/macro11. There are other versions of macro11 floating around, like the one in the simtools project that accompanies simh, and the one built for the Windows-based PDP11GUI app. 2016-10-15 11:05:38 -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
686396d726 Switched interrupt management to a new set of Trigger functions and static Trigger objects, eliminating the old InterruptQueue of constantly created/destroyed InterruptEvents 2016-10-13 10:20:11 -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 Parsons
47767416a1 Added preliminary LED support 2016-10-11 10:20:39 -07:00
Jeff Parsons
05626a33cb Version number update 2016-10-10 18:19:17 -07:00
Jeff Parsons
6514836098 Cleaned up how memory and IOPAGE traps are triggered, how ODD byte-level IOPAGE accesses are handled, and how memory is dumped by the Debugger 2016-10-10 17:09:29 -07:00
Jeff Parsons
ae4fbeb489 Improved IOPAGE management 2016-10-08 11:09:14 -07:00
Jeff
e24d507aa2 Removed useless version numbers and dates from .js file headers 2016-10-06 16:22:24 -07:00
Jeff
a731313215 Updated default PDP-11 speed 2016-09-29 22:43:55 -07:00
Jeff
1d395b7bd5 Added some comments on cycle times 2016-09-29 15:36:34 -07:00
Jeff
98d3700fa4 Cleaned up OPFLAG handling 2016-09-29 14:02:37 -07:00
Jeff
b3ba03d0a5 Got rid of runState, implemented a solution for WAIT 2016-09-29 11:04:33 -07:00
Jeff
c7dbfc02be Fixed CPU start/stop control; runCPU is now strictly a worker function, not a control interface (PDP-11 only; other CPUs still need to be updated to match) 2016-09-28 22:21:52 -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
3497466113 Cleaned up interrupt handling, register initialization, MMU initialization, etc 2016-09-26 16:53:37 -07:00
Jeff
f82d6f1bfa Assorted improvements to new opcode decoders 2016-09-24 15:12:02 -07:00
Jeff
7f0b6a091d Started work on new decoding functions 2016-09-22 18:47:32 -07:00