PiDP-8/I Software

Changes To PDP-8 Memory Addressing
Log In

Changes to "PDP-8 Memory Addressing" between 2019-02-17 03:22:35 and 2019-02-17 03:23:29

25
26
27
28
29
30
31
32

33
34
35
36
37
38
39
25
26
27
28
29
30
31

32
33
34
35
36
37
38
39







-
+








Don't believe me? Consider this sentence found in the FORTRAN IV chapter in the [OS/8 Language Reference Manual][lrm]:

> A real constant occupies three words (i.e., six bytes) of storage.

Since [words are 12 bits in the PDP-8](#words), that can only be interpreted as referring to 6-bit "bytes."

Since the PDP-8 uses a 12-bit native word size, 6-bit bytes are quite common in the PDP-8 world, often used for some kind of "packed [ASCII](https://en.wikipedia.org/wiki/ASCII)" representation. [One common scheme](http://homepage.cs.uiowa.edu/~jones/pdp8/faqs/#charsets) gets rid of most of the 32 control characters defined in 7-bit ASCII, all of the lowercase letters, and a whole bunch of the punctuation in order to pack two characters into a 12-bit PDP-8 word. There are actually a few different 6-bit packed ASCII representations for the PDP-8, so you have to know which scheme you're looking at before you can turn the data back into 7-bit ASCII.
6-bit bytes are quite common in the PDP-8 world, often used for some kind of "packed [ASCII](https://en.wikipedia.org/wiki/ASCII)" representation. [One common scheme](http://homepage.cs.uiowa.edu/~jones/pdp8/faqs/#charsets) gets rid of most of the 32 control characters defined in 7-bit ASCII, all of the lowercase letters, and a whole bunch of the punctuation in order to pack two characters into a 12-bit PDP-8 word. There are actually a few different 6-bit packed ASCII representations for the PDP-8, so you have to know which scheme you're looking at before you can turn the data back into 7-bit ASCII.

The PDP-8 was being designed at about the same time as the first versions of ASCII,³ as well as around the same time as the first wildly popular ASCII terminal, the [Teletype Model 33](https://en.wikipedia.org/wiki/Teletype_Model_33).⁴

When dealing with such terminals and the included paper tape reader, PDP-8s generally deal in either 7-bit or 8-bit bytes. When we're talking about 8-bit bytes, we aren't talking about the "[high-ASCII](https://en.wikipedia.org/wiki/Extended_ASCII)" stuff that infested the PC world in the late 1970s and 1980s before [Unicode](https://en.wikipedia.org/wiki/Unicode) was invented.

Much existing PDP-8 software that reads in plain ASCII text from a terminal as 8-bit bytes treats the eighth bit on standard DEC format paper tapes as a [mark parity bit](https://en.wikipedia.org/wiki/Parity_bit), rather than as an error-detecting parity bit or as a data bit.

142
143
144
145
146
147
148
149

150
151
142
143
144
145
146
147
148

149
150
151







-
+



6. The IF register doesn't actually change until the processor encounters a `JMP` or `JMS` instruction. Then the address being jumped to is computed based on the new IF value, transferring execution out of the current field.

-----------------

## License

Copyright © 2017 by Warren Young. This document is licensed under the terms of [the SIMH license][sl].
Copyright © 2017-2019 by Warren Young. This document is licensed under the terms of [the SIMH license][sl].

[sl]:   https://tangentsoft.com/pidp8i/doc/trunk/SIMH-LICENSE.md