Commit graph pcjs/modules/pdp10/lib/cpuops.js
Author SHA1 Message Date
Jeff
f8bf346eab Renamed flags to be more consistent with DEC's names, and updated JSR and JSP to clear the BIS flag 2017-03-28 16:27:18 -07:00
Jeff
d5c48df9bc Added support for MACRO-10 literal collapsing; it's not super-aggressive, but it's more than adequate for what DEC's diagnostics require 2017-03-28 15:22:17 -07:00
Jeff
ae30a5e93c PDPjs passes the first four PDP-10 Basic Instruction Diagnostics (finally) 2017-03-27 19:00:10 -07:00
Jeff
2a8c2a74d2 Fixed a couple of PDP-10 opcode emulation bugs (AOBJN, AOBJP, and CMP), and rounded out the set of DEC's basic instruction diagnostics 2017-03-27 11:44:42 -07:00
Jeff
9c96ec14ad Started executing basic PDP-10 instruction diagnostic #1 2017-03-17 00:01:49 -07:00
Jeff
6e0e489bee Cleaned up the expression parser, fixed some PDP-10 evaluation errors, and added support unary minus 2017-03-16 10:30:56 -07:00
Jeff
9ac0ffe679 Perform the documented encoding of SIXBIT character data for MACRO-10 2017-03-12 11:56:15 -07:00
Jeff
fcee8a2838 Added support for future PDP-10 MACRO-10 assembler 2017-03-10 10:28:32 -08:00
Jeff
3a9cd5cf04 Code cleanup 2017-03-09 17:49:54 -08:00
Jeff
a7b4321f53 Added all the PDP-10 logical testing/modification instructions 2017-03-09 15:37:26 -08:00
Jeff
0dc6b7276b Added lots of PDP-10 compare/increment/decrement/skip/jump instructions 2017-03-09 12:30:51 -08:00
Jeff
e9d2b0ec25 Rounded out the rest of the MUL and DIV instructions 2017-03-08 15:52:33 -08:00
Jeff
b3982328ed Added a couple of doDIV() improvements 2017-03-08 14:41:55 -08:00
Jeff
93e35dfa17 Ported the Int36 72-bit division code to the PDP-10 component 2017-03-08 11:38:54 -08:00
Jeff
48792873de Eliminate PDP-10 dependencies on the Int36 class (which is now used only for prototyping and command-line testing) 2017-03-07 17:21:59 -08:00
Jeff
65eb821710 Well, apparently the PDP-10 MUL instruction really DOES store the high-order word first, and it only stores the low-order word if the destination is an accumulator (weird) 2017-03-07 14:09:24 -08:00
Jeff
7e207db2a1 Added PDP-10 JSP and JFCL operations (which seem to be the simplest means of getting and setting the processor flags) 2017-03-07 13:44:43 -08:00
Jeff
0e18448423 Added PDP-10 SUB and MUL operations 2017-03-07 10:21:17 -08:00
Jeff
38a598d21e Added PDP-10 ADD operations 2017-03-06 23:36:48 -08:00
Jeff
6b68525f24 Fixed minor ASHC bug 2017-03-05 16:19:25 -08:00
Jeff
286a122b05 Implemented (but have not yet tested) ASHC opcode for PDP-10 2017-03-05 14:14:14 -08:00
Jeff
234e8871ba Added "lsh" and "rot" commands to the Int36 command-line tool to mimic the PDP-10 opcodes and test their logic 2017-03-05 10:04:18 -08:00
Jeff
ffb7fa1221 New improved PDP-10 processor flag handling 2017-03-04 21:07:56 -08:00
Jeff
87e17a695c Fixed opIO() dispatch 2017-03-04 16:52:44 -08:00
Jeff
1ac769431f Added initial logic for decoding PDP-10 input-output instructions 2017-03-04 16:47:56 -08:00
Jeff
e04bec1af4 Typo 2017-03-04 14:46:26 -08:00
Jeff
5d48383363 Added logic (untested) for ASH 2017-03-04 14:43:21 -08:00
Jeff
20c24053b9 Simplified ROT and ROTC, converting all right (negative) rotations into left (positive) rotations 2017-03-04 11:22:57 -08:00
Jeff
88f66f9590 Added ROT and ROTC (albeit untested) 2017-03-03 21:09:45 -08:00
Jeff
a08c8c30bf Added LSH and LSHC (albeit untested) 2017-03-03 17:44:27 -08:00
Jeff
b8a38c8ac6 Finished PDP-10 logical operations 2017-03-03 15:58:15 -08:00
Jeff
616f9d4cda Started work on PDP-10 logical operations 2017-03-03 11:30:34 -08:00
Jeff
796a23ce6c Added some "special considerations" to PDP-10 byte pointer processing 2017-03-03 09:01:49 -08:00
Jeff
25aa95cec8 First cut at PDP-10 byte instructions 2017-03-02 23:10:24 -08:00
Jeff
affaa1075c Finished the PDP-10 Move Magnitude opcodes, along with the Push Down and Pop Up opcodes (uncovering some SIMH weirdness along the way) 2017-03-02 16:38:00 -08:00
Jeff
84f8cece67 All PDP-10 MOVN (Move Negative) opcodes implemented 2017-03-02 10:19:37 -08:00
Jeff
202374dd09 Added the PDP-10's four arithmetic flags along with a negate() function -- the first of our functions that actually needs to set those flags 2017-03-01 17:23:54 -08:00
Jeff
e870fd6eec Fixed the accumulator update logic in all the PDP-10 half-word self-mode instructions, and started work on EXCH, BLT, and MOVE instructions (the BLT is a real odd-ball, and SIMH does some very strange things with the accumulator used by BLT, which we do NOT attempt to replicate; the strangeness is most noticeable when the accumulator is part of the range being transferred) 2017-03-01 16:00:48 -08:00
Jeff
3508b1050e Started work on v1.34.2: More PDP-10 opcode handlers 2017-03-01 12:26:57 -08:00
Jeff Parsons
cafd7c493c Finished writing all the half-word move permutations, now it's time to test them all (ugh) 2017-02-28 11:02:15 -08:00
Jeff Parsons
d7b8122a40 All HLL and HRL permutations implemented now (up next: HRR and HLR) 2017-02-28 10:24:29 -08:00
Jeff Parsons
17e807ecb6 Tested a couple half-word instructions (so far, so good) 2017-02-27 12:25:13 -08:00
Jeff Parsons
0255b7b891 Implemented all four primary half-word moves (HLL, HLR, HRL, HRR) but none of the flavors (Z, O, E); need to test the primary instructions first 2017-02-27 09:50:28 -08:00
Jeff Parsons
6cf141baf9 getOpcode() can now handle infinite indirections without starving the emulator 2017-02-26 12:17:21 -08:00
Jeff Parsons
ed4c031035 Implemented my first 4 PDP-10 opcodes (HLL, HLLI, HLLM, HLLS) 2017-02-26 10:51:49 -08:00
Jeff Parsons
0451774bc6 Added preliminary PDP-10 opcode decoding 2017-02-26 09:25:44 -08:00
Jeff Parsons
e3ab5b1ed5 Added preliminary PDP-10 opcode decoding 2017-02-26 09:13:16 -08:00
Jeff Parsons
3e30bde786 Some PDP-10 disassembler clean-up 2017-02-25 21:19:41 -08:00
Jeff Parsons
cb4d054ead Added preliminary first-order opcode dispatch table 2017-02-25 16:21:21 -08:00
Jeff Parsons
b628219f5c Used the new PDP-10 disassembler in test mode to help generate the cpuops.js skeleton 2017-02-25 13:28:47 -08:00