Skip to main content
21 events
when toggle format what by license comment
Apr 24 at 16:37 history edited dirkt CC BY-SA 4.0
added 608 characters in body
Apr 24 at 10:20 comment added ninjalj See also github.com/larsbrinkhoff/vt52-simulator/tree/master/lst for some examples of VT50/VT52 assembly/disassembly.
Apr 24 at 10:13 comment added ninjalj The VT52 is similar to that PDP-8 operation: instructions are 8 bits, bits are named ABCDEFGH, if A=0, BCD select from 8 instruction groups, and each of E, F, G, H select an action, with an additional action for EFGH all zero. vt100.net/docs/vt52-mm/chapter4.html#S4.3.1.3
Apr 24, 2020 at 2:12 vote accept dave
Apr 24, 2020 at 2:11 comment added dave I'm not entirely convinced that the PDP-8 counts as weird. It's fairly conventional syntax except for the existence of the OPR instructions. But the CDC 6600's total confusion of operand and opcode makes up for it - now that is weird!
Apr 22, 2020 at 4:45 comment added dirkt @another-dave Yes.
Apr 21, 2020 at 23:06 comment added dave If I recall correctly, PAL-8 syntax is just to 'or' together expressions it finds on the same line.
Apr 21, 2020 at 4:20 comment added dirkt @Zeus You can write them in any order in assembly. The order of "execution" is always the same, and determined by the way the functional blocks are arranged in the hardware. So you can both write CLA IAC and IAC CLA, but the accumulator always gets cleared first, because that's just a pulldown/and gate where the signal exits the "old" accumulator.
Apr 21, 2020 at 2:08 comment added Zeus What determines the order of the combined operations in PDP-8? I.e. why 7201 is CLA IAC and not IAC CLA?
Apr 20, 2020 at 15:10 comment added Peter Smith The Harris RTX2000 (real time processor as it was called as I recall) was designed to directly implement FORTH. I remember going to a Harris seminar in the mid - late 80s where it was introduced. Interesting page at users.ece.cmu.edu/~koopman/stack_computers/sec4_5.html
Apr 19, 2020 at 4:07 comment added dirkt @another-dave Right. And not only is the 1 an operand designator, you can also have commands like SA1 A2 + B3 and SB1 A2 + B3 where A1 means register A1, and B1 register B1, just as X1 means register X1 in BX1; and S means "set to".
Apr 18, 2020 at 22:47 comment added dave OK, the CDC 6000 assembler (COMPASS) is authentically weird. In BX1 X2 * X3, there are multiple opcodes with the same BX1 mnemonic, the 1 is actual an operand designator, and the * is part of the opcode. Right?
Apr 18, 2020 at 20:30 history edited dirkt CC BY-SA 4.0
edited body
Apr 18, 2020 at 19:12 comment added Jens RAR appears twice with different opcodes. Typo?
Apr 18, 2020 at 15:16 comment added dirkt @another-dave Yes, it's a single instruction, like the other examples.
Apr 18, 2020 at 14:13 comment added dave For the CDC 6000 example, is BX1 X2 * X3 still a single machine instruction?
Apr 18, 2020 at 10:47 comment added Grabul Maybe SHARC DSPs assembly, using infix notation and showing parallel execution of load/store, ALU...
Apr 18, 2020 at 7:49 comment added matja I was going to mention Forth CPUs, the example I was thinking of was the GreenArrays GA144 - which will seem familiar to those who have played TIS-100 :) . Example MD5 implementation on a GA144 : greenarraychips.com/home/documents/greg/AN001-141023-MD5.pdf
Apr 18, 2020 at 6:47 comment added Michael Karcher Example 1 sounds quite similar to the HP 1000 series CPU. It's assembly language contained two "groups" called "alter / skip" and "shift / rotate", in which instructions could be combined by ORing them.
Apr 18, 2020 at 3:49 history edited dirkt CC BY-SA 4.0
added 260 characters in body
Apr 18, 2020 at 3:09 history answered dirkt CC BY-SA 4.0