PiDP-8/I Software

Changes To PDP-8 Memory Addressing
Log In

Changes to "PDP-8 Memory Addressing" between 2017-04-01 16:38:33 and 2017-04-01 17:18:50

63
64
65
66
67
68
69
70

71
72

73
74
75
76
77
78
79
63
64
65
66
67
68
69

70
71

72
73
74
75
76
77
78
79







-
+

-
+








Since all those links chew into the 4 to 32 kW core limit of any given PDP-8 machine, one of the common games PDP-8 masters play is reusing *instruction and data* words for target address values and operands to save a word or two.  

PDP-8 master Rick Murphy taught me one of these games. Instead of saying:

            JMP 7600

and taking a "link" penalty, you find a nearby CLA instruction, give it a label in the assembly code, and jump indirectly through that label:
and taking a "link" penalty, you find a nearby CLA instruction, change it from the [group 1](http://gunkies.org/wiki/PDP-8_architecture#Group_1_.22operate.22_instruction_operations) to the [group 2](http://gunkies.org/wiki/PDP-8_architecture#Group_2_.22operate.22_instruction_operations) form of the `OPR` instruction, give it a label in the assembly code, and jump indirectly through that label:

    OS8ENT, CLA          / CLA = 7600, the OS/8 entry point
    OS8ENT, 7600         / group 2 form of CLA, also the OS/8 entry point
            ...          / some number of other instructions, but less than a page worth
            JMP I OS8ENT / return control to OS/8

The `I` modifies the `JMP` instruction, telling the PDP-8 to load the value at the memory location referred to by the `OS8ENT` label, load up the value it finds there (7600₈) and jump to *that* address.

Barf bags are in the seat pocket ahead of you.