Commit graph pcjs/modules/pdp11/lib/cpuops.js
Author SHA1 Message Date
Jeff
3a9cd5cf04 Code cleanup 2017-03-09 17:49:54 -08:00
Jeff Parsons
ba7de38fbf Created PDP-10 skeleton 2017-02-19 15:22:58 -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
fac5c3c57d Added some PDP-11 documentation 2017-01-25 16:22:07 -08:00
Jeff Parsons
4611153625 Updated PDP-11 Debugger to include line breaks between steps 2017-01-24 14:36:15 -08:00
Jeff Parsons
b5d6afd210 Protect all Node-specific code with NODE checks 2017-01-02 15:16:18 -08:00
Jeff Parsons
7c7473f86e Documented the MTPS (11/34A), MFPS (11/34A), and MFPT (11/44+) instructions, even though our basic model support (11/20, 11/40, 11/45, and 11/70) doesn't use them 2017-01-02 12:21:04 -08:00
Jeff Parsons
138b2534e5 Fixed a few (spurious?) WebStorm inspection warnings, and added some band-aid code to netlib.js so that PDP-11 machines running in the Node environment can fetch all their resources, whether local or remote 2017-01-01 14:02:15 -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
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
1e1db7b78e Cleaned up management of unused PSW bits 2016-12-04 16:23:37 -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
cacff66983 Lots of memory interface cleanup; still can't boot RSTS/E though.... 2016-11-29 14:48:26 -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
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
5bc0c8cca9 Simplified the I/O registration function, added support for Panel debugger messages, and added some new Panel behavior on the RESET instruction 2016-11-15 10:05:25 -08:00
Jeff
365b24c684 Fixed the SXT and XOR opcodes (a couple of small oops) 2016-11-14 21:03:04 -08:00
Jeff
0370b81a69 Leave the DATA display register alone on the 11/70 (making it more diagnostic-friendly) 2016-11-14 15:27:55 -08:00
Jeff
ba0ca49854 Updated start address for the DEQKC 11/70 test 2016-11-14 10:44:24 -08:00
Jeff
0607d65b70 Fixed RTI on older PDP-11s (ie, 11/20); the old RTI behaves like the new RTT, which did not exist on older machines 2016-11-13 21:17:46 -08:00
Jeff
17816f6fcc Fixed bug in writeDstWord() that was updating flags with negative data (and sadly, none of DEC's basic tests caught it) 2016-11-13 11:34:59 -08:00
Jeff
2c1191ce6e DEC's "TRAP TEST" finally passes (and I learned a lot about PDP-11 opcode idiosyncrasies in the process) 2016-11-12 12:54:13 -08:00
Jeff
bdb06e458f Fixed TRAP TEST diagnostic that expected a stack overflow trap to be acknowledged immediately after a hardware interrupt was dispatched 2016-11-11 14:56:01 -08:00
Jeff
db63c30c1e Made some progress with DEC's "TRAP TEST", but looks like it still needs some work 2016-11-10 15:51:47 -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
595c40e446 Cleaned up the Front Panel address and data interfaces so that BOOTMON's "LIGHTS" test works as expected now 2016-11-09 12:46:03 -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
eb3b38a5ad Fixed XXDP disk boot (haven't tried any tests yet, but it's still good progress) 2016-11-07 17:20:53 -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
89dc2660f1 Added more PDP-11 paper tape resources 2016-10-22 21:57:45 -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
aa2a25c5ec Minor Debugger improvements, notes, etc, while debugging the PDP-11 BASIC 2016-10-20 22:56:29 -07:00
Jeff Parsons
16b8b59f12 PDP-11/20 test machine can load BASIC from paper tape, but still has some trouble running it 2016-10-18 15:44:26 -07:00
Jeff Parsons
2ce661e141 Refer to all 11/45+ instructions as 11/45, rather than 11/70, since the 11/70 doesn't appear to have added any instructions to the 11/45's set 2016-10-15 13:34:02 -07:00
Jeff Parsons
1e080e720e Debugger now actually prevents an undefined opcode from executing (until/unless you single-step it) 2016-10-15 11:59:48 -07:00
Jeff Parsons
c14f919f4f Debugger now stops on undefined opcodes, as well as on unknown I/O accesses 2016-10-15 11:32:51 -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
854b40c419 Cleaned up PDP-11/70 configs 2016-10-13 16:35:10 -07:00
Jeff Parsons
2a1be67727 In the spirit of the PCx86 Debugger, the PDP11 Debugger can now distinguish between virtual and physical addresses; physical addresses are specified with a leading '%'; this necessitated special CPU memory interfaces that mirror the Bus memory interfaces, which perform mapVirtualToPhysical() as needed, with traps disabled. 2016-10-13 13:11:11 -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
4c63c8a97f Quick change (perhaps temporary) to update LEDs on every WAIT transition (similar to the behavior of the original pdp11.js) 2016-10-11 10:47:09 -07:00