Commit graph pcjs/modules/pdp11/lib/cpustate.js
Author SHA1 Message Date
Jeff
3a9cd5cf04 Code cleanup 2017-03-09 17:49:54 -08:00
Jeff
1ac769431f Added initial logic for decoding PDP-10 input-output instructions 2017-03-04 16:47:56 -08:00
Jeff Parsons
e3ab5b1ed5 Added preliminary PDP-10 opcode decoding 2017-02-26 09:13:16 -08:00
Jeff Parsons
c0de732f76 Changed toStrBase() to accept a number of bits rather than a number of bytes, because bytes aren't always 8 bits (see PDP-10) 2017-02-24 10:58:56 -08:00
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
d816497336 Updated PDP-11/70 machines, and fixed a regression with MMR2 updates 2017-02-09 09:07:53 -08:00
Jeff Parsons
cd5dbd5c14 Added RL11 bootstrap info 2017-02-06 15:32:09 -08:00
Jeff Parsons
112c0e88c6 Scriptable machine improvements (including support for sleep) 2017-02-06 12:03:20 -08:00
Jeff Parsons
9e517701d1 Fix another bogus inspection 2017-02-04 15:53:32 -08:00
Jeff Parsons
4be8640af8 Changed the RESET button to *not* autoStart a machine when a Debugger is present, so that the Debugger can "cleanly" load bootstrap sequences and boot without side-effects (eg, unexpected interrupts) 2017-02-04 12:22:50 -08:00
Jeff Parsons
039c6c8ef1 Update boot code to pass boot unit # through to R0 2017-02-03 10:17:49 -08:00
Jeff Parsons
822ab39cbe Unforked the shared modules -- ES6 is now the default 2017-01-31 13:50:55 -08:00
Jeff Parsons
6854c4c8ba Avoid spurious calls to start/stop the CPU (eg, when the RAM component calls setReset()) if the CPU isn't actually powered yet 2017-01-28 17:50:22 -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
367d466fe1 Save/restore of PDP-11 diagnostic works even when the MMU is enabled 2017-01-26 15:09:08 -08:00
Jeff Parsons
284c2cd76b Fixed Panel update on a reset 2017-01-26 11:28:59 -08:00
Jeff Parsons
d182c7eced Improved PDP-11 save/restore support (added to Device, Panel, RK11, and Serial) 2017-01-26 10:04:44 -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
b5d6afd210 Protect all Node-specific code with NODE checks 2017-01-02 15:16:18 -08:00
Jeff Parsons
06ad209576 11/70 clarification 2016-12-31 16:24:35 -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
dd628148ef Some corrections as to what features are available on the 11/40 vs. 11/45 2016-12-31 11:23:25 -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
415cc9a810 More documentation 2016-12-22 09:51:32 -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
ba8771adf1 Added some RK11 fixes for the 11/70 CPU EXERCISER, and some Debugger improvements for dumping address info ("da") 2016-12-08 17:05:03 -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
66ffe17659 Fixed some breakpoint issues, and honored the RK11 IBA bit 2016-12-06 10:47:36 -08:00
Jeff Parsons
1e1db7b78e Cleaned up management of unused PSW bits 2016-12-04 16:23:37 -08:00
Jeff Parsons
2b8ea8ddee Fixed conditions required for RSTS/E boot code to work 2016-12-03 16:12:25 -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
a248b177fd Eliminated the NO_FLAGS hack, which was doubly-annoying because its sole purpose was to prevent writes to ONE address -- the PSW -- from modifying any flags; the proper solution is to simply ensure that all flag updates occur before the destination is written 2016-12-01 21:12:18 -08:00
Jeff Parsons
02b1b8a34a Handle double-RED abort conditions by stopping the CPU and reporting a PANIC 2016-12-01 20:07:33 -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
a06a4c9324 Fixed RL11 disk memory access (addresses are always mapped, apparently) 2016-11-29 17:10:37 -08:00
Jeff Parsons
cacff66983 Lots of memory interface cleanup; still can't boot RSTS/E though.... 2016-11-29 14:48:26 -08:00
Jeff Parsons
375146f6bb Hacked the Bus component to permit devices to access the actual memory map (better solution will be maintain two separate maps: one for the CPU and a separate map for device access) 2016-11-28 13:27:06 -08:00
Jeff Parsons
559a7eb8fa All but one attempted diagnostic test (EKBBF0 TEST 63) passes now 2016-11-26 13:25:15 -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 Parsons
7f48221bca Fixed TEST 40 in diagnostic EKBBF0 by including address 177776 in the RED stack overflow range 2016-11-24 09:14:01 -08:00
Jeff Parsons
708869815d Fixed DL11 for RT-11, and added more message capabilities 2016-11-22 16:54:45 -08:00
Jeff Parsons
f70f1f3d97 Isolated some PDP-11/20-specific behavior to that model 2016-11-21 09:42:20 -08:00
Jeff Parsons
48047c4a60 Fixed the evaluation of register operands for the XOR opcode (this slipped through the cracks, since it doesn't use readSrcWord()) 2016-11-20 13:45:08 -08:00
Jeff Parsons
b98a31c7b8 Converted previous notes to a TODO 2016-11-19 17:13:04 -08:00
Jeff Parsons
a6689e1458 Added notes on the question of whether addressing mode 5 (auto-decrement deferred) can trigger a stack overflow on any PDP-11 model 2016-11-19 17:08:43 -08:00