Commit graph pcjs/modules/shared/lib
Author SHA1 Message Date
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
d13e7a5faf The expression parser now allows spaces inside expressions (a relaxation for certain MACRO-10 typos; eg, "- 1" where "-1" was expected) 2017-03-28 12:01:06 -07:00
Jeff
b2a6a06908 Fixed parsing of expressions with spaces 2017-03-28 09:17:09 -07:00
Jeff
6ad35d2d17 Added the ^L MACRO-10 unary zero-bit-counting operator, and updated the last blog post with expression parser differences (eg, interpretation of numbers with a decimal point) 2017-03-21 17:40:37 -07:00
Jeff
127ddb88b4 Added the unary + operator, and cleaned up the display of values from the expression parser 2017-03-21 12:47:43 -07:00
Jeff
a42a261cca README fixes 2017-03-20 15:33:01 -07:00
Jeff
a6021441c3 Fixed the signed truncation of 36-bit values (so that "-34,359,738,368. - 1" correctly produces "34359738367. aka 0o377777777777"), added the proper the right-to-left parsing of unary operators (all two of them: negate and complement), changed the PDP-10 disassembler to honor the selected base when displaying opcodes, and updated all the number-to-string conversions to select an appropriate number of digits when rendering values without a specified number of digits. 2017-03-20 13:34:25 -07:00
Jeff
5d2a1ed16b Fixed limits on MACRO-10 ASCII and SIXBIT constants 2017-03-19 14:13:24 -07:00
Jeff
4cce2177f4 The recursive MACRO-10 test case (MACTEST1.MAC) found in the June 1972 MACRO-10 manual passes now 2017-03-19 14:03:49 -07:00
Jeff
fb83d1e503 More MACRO-10 parsing improvements 2017-03-19 12:03:45 -07:00
Jeff
1c3c9c9856 Added various MACRO-10 expression improvements 2017-03-18 17:12:54 -07:00
Jeff
abd17be706 Allow the debugger to switch to base 2 2017-03-17 11:20:26 -07:00
Jeff
9c96ec14ad Started executing basic PDP-10 instruction diagnostic #1 2017-03-17 00:01:49 -07:00
Jeff
01e9bcf0fe Fixed multiline ASCIZ MACRO-10 pseudo-op, and expressions with binary shift suffixes finally evaluate correctly in parseExpression() 2017-03-16 16:50:47 -07:00
Jeff
ab0dccd866 Added MACRO-10 work-arounds for numeric values with embedded binary shift counts 2017-03-16 12:45:19 -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
0e8e2ed4a2 Improved fixup handling for better MACRO-10 support 2017-03-16 00:32:30 -07:00
Jeff
3f8705ad98 Successfully assembled my first MACRO-10 source file (DAKAD.MAC) 2017-03-14 14:44:03 -07:00
Jeff
e1f37c8275 More MACRO-10 fixes 2017-03-13 17:44:01 -07:00
Jeff
9ac0ffe679 Perform the documented encoding of SIXBIT character data for MACRO-10 2017-03-12 11:56:15 -07:00
Jeff
05e09699dd Cleaned up expression evaluation for improved compatibility with MACRO-10 2017-03-12 11:44:38 -07:00
Jeff
e2e018af67 More MACRO-10 support 2017-03-11 23:30:06 -08: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
0dc6b7276b Added lots of PDP-10 compare/increment/decrement/skip/jump instructions 2017-03-09 12:30:51 -08:00
Jeff
70cd954974 Debuggers need to handle negative values a bit better 2017-03-08 16:48:25 -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
38a598d21e Added PDP-10 ADD operations 2017-03-06 23:36:48 -08:00
Jeff
1b4129d7ad Added some ASHC tests 2017-03-06 17:18:41 -08:00
Jeff
04ae721eb6 Updated the extended logical operations (LSHC and ROTC) to treat the result as a 71-bit result, and ASHC to treat it as a 70-bit result 2017-03-06 16:42:29 -08:00
Jeff
3d4795bbe4 Updated the Int36 class with support for both signed 71-bit values (my original double-length format) and 70-bit values consisting of two signed 35-bit values (DEC's double-length format) 2017-03-06 15:48:31 -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
61e64bf3fc Sync'ed some of the constants used in the pdp10 and int36 modules 2017-03-05 10:19:04 -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 Parsons
c4f7262e71 Cleaned up the integer base conversion code, and expanded the PDP-10 register dump 2017-02-27 19:18:19 -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
aecd943c52 Added support for PDP-10 RAM images 2017-02-26 20:37:16 -08:00
Jeff Parsons
ef70ed74b3 Added support for parsing of values (ie, integers) greater than 32 bits, and fixed PDP-10 Bus writes (parameter order differs from other emulators) 2017-02-24 13:07:38 -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 Parsons
c25ad00c41 Minimal infrastructure for instantiating a PDP-10 test machine 2017-02-23 11:34:19 -08:00
Jeff Parsons
ba7de38fbf Created PDP-10 skeleton 2017-02-19 15:22:58 -08:00
Jeff Parsons
b1d16c979a Removed obsolete version of Int36 (using signed integers internally); sticking with unsigned integers internally not only simplifies some of the existing logic, but will make it easier to add logical operations later (eg, AND, OR, XOR, etc) 2017-02-18 09:36:47 -08:00
Jeff Parsons
acdf89ec54 Make Int36 toDecimal() more paranoid (we want perfect output, or no output at all) 2017-02-18 09:28:43 -08:00
Jeff Parsons
c1ab8918bd Make Int36 toDecimal() more paranoid (we want perfect output, or no output at all) 2017-02-18 09:23:45 -08:00
Jeff Parsons
7770a6bffe Added an "early out" for Int36 division 2017-02-18 09:17:08 -08:00
Jeff Parsons
3f65a1b770 Simplify Int36 bit handling (only affects division) 2017-02-18 08:50:24 -08:00
Jeff Parsons
55bb0252b7 Be more specific about detected errors 2017-02-17 13:38:34 -08:00
Jeff Parsons
cff039f6a5 Added the reduce() function, to reduce 72-bit extended values to 36-bit values, magnitude permitting 2017-02-17 13:31:17 -08:00
Jeff Parsons
689adca2a7 Comment updates 2017-02-17 12:15:48 -08:00