Odd "endianness" [was Re: RE: Base 64 posts to the list]
Rich Alderson
RichA at livingcomputers.org
Fri Dec 9 13:47:27 CST 2016
From: Phil Budne
Sent: Friday, December 09, 2016 10:44 AM
> Rich Alderson wrote:
>> There are also Two-Word Global Byte Pointers (which I've never seen
>> abbreviated) which carry the standard "any size byte at any position"
> Maybe they were just Global Byte Pointers? OWG's were a late
> addition. I was a member of the FORTRAN-10/20 v10 project to make it
> generate/run code in extended addressing... It's tempting to look at
> the compiler and FOROTS to see what terms we used a the time...
Both One-Word and Two-Word Global Byte Pointers were added at the same
time as extended addressing, according to the HRM. Simple "Global Byte
Pointer" would have been inherently ambiguous.
OWGBPs were a way not to increase the memory footprint of a program when
moving it into a non-zero section,[1] at the expense of some microcode.
In theory, a binary could be patched for use in a non-zero section without
a recompile, as long as it was using 6-, 7-, 8-, 9-, or 18-bit bytes.
>> Neither of those is entirely accurate. 9-track tapes on the PDP-10 used
>> one of the following encodings:
> 8-bit characters became more important near the end of PDP-10 software
> development. ISTR TOPS-10 getting new 8-bit I/O modes, but I have a
> vague recollection that translation between 36-bit words and mag tape
> frames was handled by the "tape formatter" hardware, which means that
> writing two words with 8 bit bytes in way that was easily legible on
> 8-bit byte oriented hardware ("high density mode" was only "legible"
> for the even words).
Yes, all the translations are handled in the formatter, which is part of
the tape controller. To continue the example, in Industry-Compatible
format, where the ASCII characters have been moved into 8-bit bytes in
36-bt words, on 9-track tape we have "HELLOworld" as
_HHHHHHH
_EEEEEEE
_LLLLLLL
_LLLLLLL
_OOOOOOO
_wwwwwww
_ooooooo
_rrrrrrr
_lllllll
_ddddddd
In memory, this takes 3 words:
_HHHHHHH_EEEEEEE_LLLLLLL_LLLLLLL....
_OOOOOOO_wwwwwww_ooooooo_rrrrrrr....
_lllllll_ddddddd________________....
Rich
[1] For non-PDP10 programmers: The original architecture of the PDP-6 and
PDP-10 used an 18-bit (256KW) address space. The KI-10 processor added
a 22-bit pager and a concept of sections to the hardware. When the
address space was expanded to 30 bits (1MW) on the KL-10 processor (in
anticipation of the KC-10 a/k/a "Jupiter"), it was done by retaining
18-bit local addressing and adding a 12-bit section number to provide
global addresses. Section 0 is special, working like the older 256KW
memory space; non-zero sections can reference all of memory, with an
18-bit address in a non-zero section being section local and a 30-bit
address referencing anything except section 0.
Rich Alderson
Vintage Computing Sr. Systems Engineer
Living Computer Museum
2245 1st Avenue S
Seattle, WA 98134
mailto:RichA at LivingComputerMuseum.org
http://www.LivingComputerMuseum.org/
More information about the cctalk
mailing list