* Re: Streams in Ada
2001-04-02 15:10 ` Florian Weimer
@ 2001-04-02 15:49 ` Ted Dennison
2001-04-02 16:57 ` Marin David Condic
2001-04-02 17:41 ` Florian Weimer
2001-04-02 16:42 ` Marin David Condic
2001-04-13 5:00 ` David Thompson
2 siblings, 2 replies; 48+ messages in thread
From: Ted Dennison @ 2001-04-02 15:49 UTC (permalink / raw)
In article <tgofufwd4x.fsf@mercury.rus.uni-stuttgart.de>, Florian Weimer says...
>
>"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
>
>> But wouldn't that posit that there *was* an Ada95 implementation on a PDP-10
>> and that a Stream_Element was 36 bits?
>
>Well, the poster specifically mentioned portability, and his code does
>not work on such an architecture. IMHO, portable code hasn't just to
>run on all platforms which exist (this could be called 'practically
>portable code'), but on all Ada implementations.
I think you meant, "all possible Ada implementations", which I would disagree
with. On the other hand, if we were to interpret this to say "on all likely
implementations", I could agree with you. I'll leave it up to others how likely
a conforming Ada95 PDP-10 implementation is.
However, this wouldn't actually have been a problem anyway, because the code I
wrote assumes that the user also has something close to the following
declarations:
type User_Element is mod 256; -- Could be any multiple of this
for User_Element'size use 8; -- Could be any matching multiple of this
type Byte_Array is array (<> Natural) of Byte;
And then the hard-coded 8's and 7's in the code I posted before would *really*
be "User_Element'size" and "(User_Element'size - 1)". I just used the hard-coded
8 as a short-cut for implying the above. On platforms with different byte sizes,
it is the user's "mod" and "'size" declarations that would be changed. (Are they
buying it? :-) )
Out of curiosity, what exactly constituted a "byte" on a PDP-10?
---
T.E.D. homepage - http://www.telepath.com/dennison/Ted/TED.html
home email - mailto:dennison@telepath.com
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 15:49 ` Ted Dennison
@ 2001-04-02 16:57 ` Marin David Condic
2001-04-02 17:43 ` PDP-10, was " tmoran
2001-04-02 17:49 ` Robert A Duff
2001-04-02 17:41 ` Florian Weimer
1 sibling, 2 replies; 48+ messages in thread
From: Marin David Condic @ 2001-04-02 16:57 UTC (permalink / raw)
The PDP-10 was more closely oriented to "Sixbit" characters. (Or
"Half-ASCII" - basically ASCII with the lower case & some other stuff gone.)
IIRC, the Tops-10 OS had the 6x3 file name restrictions basically because it
would make filenames fit with Sixbit & into even multiples of machine words.
Why DEC chose Sixbit & 36 bit words in the first place, I do not know - but
one must remember that this was back in the time when Pangeia was still a
united country. (Or was it Ganwanaland?) There weren't a lot of existing
conventions for much of anything in computer technology, so 36 was just as
beautiful a number as 32.
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Ted Dennison" <dennison@telepath.com> wrote in message
news:zc1y6.352$UK4.34815@www.newsranger.com...
>
> Out of curiosity, what exactly constituted a "byte" on a PDP-10?
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* PDP-10, was Re: Streams in Ada
2001-04-02 16:57 ` Marin David Condic
@ 2001-04-02 17:43 ` tmoran
2001-04-02 17:49 ` Robert A Duff
1 sibling, 0 replies; 48+ messages in thread
From: tmoran @ 2001-04-02 17:43 UTC (permalink / raw)
>Why DEC chose Sixbit & 36 bit words in the first place, I do not know
IBM 7090?
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 16:57 ` Marin David Condic
2001-04-02 17:43 ` PDP-10, was " tmoran
@ 2001-04-02 17:49 ` Robert A Duff
2001-04-02 22:09 ` 6-bit characters (was: Re: Streams in Ada) Jeffrey Carter
2001-04-03 1:57 ` Streams in Ada Larry Kilgallen
1 sibling, 2 replies; 48+ messages in thread
From: Robert A Duff @ 2001-04-02 17:49 UTC (permalink / raw)
"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
> The PDP-10 was more closely oriented to "Sixbit" characters. (Or
> "Half-ASCII" - basically ASCII with the lower case & some other stuff gone.)
> IIRC, the Tops-10 OS had the 6x3 file name restrictions basically because it
> would make filenames fit with Sixbit & into even multiples of machine words.
This is more a property of Tops-10 than the PDP-10 hardware.
The hardware supported "bytes", which could be from 1 to 36 bits each --
there's nothing special about 6-bit bytes. A byte could not cross a
(36-bit) word boundary. Tops-20 also ran on this hardware (and was far
superior to Tops-10). When I used it, we mainly used 7-bit ASCII for
character data. Each character is a 7-bit byte, packed 5 to a word,
with one bit left over. You could also use sixbit (6 6-bit bytes per
word) on Tops-20, presumably for backward compatibility. But you could
also use 1-bit bytes for arrays of Boolean, or any other convenient
sub-word size.
> Why DEC chose Sixbit & 36 bit words in the first place, I do not know - but
> one must remember that this was back in the time when Pangeia was still a
> united country. (Or was it Ganwanaland?) There weren't a lot of existing
> conventions for much of anything in computer technology, so 36 was just as
> beautiful a number as 32.
Well, I think it only makes sense to design hardware where the word size
is a power of 2 times the addressable unit (what Ada calls
System.Storage_Unit). So 36 only works if your addressable unit is 36,
18, or 9. (It was 36 on the PDP-10.) Ie, a machine with Storage_Unit = 6
and Word_Size = 36 wouldn't work very well.
Although it's probably true that nobody cares about Ada on a PDP-10
these days, there do exist machines with Storage_Unit /= 8, and there do
exist Ada compilers for such machines. So it might very well make
sense to program with portability to such weird machines in mind.
Besides, even if all machines had Storage_Unit = 8, it would *still*
make sense to declare meaningful constants, because it makes code more
readable if you know that it depends on such things.
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* 6-bit characters (was: Re: Streams in Ada)
2001-04-02 17:49 ` Robert A Duff
@ 2001-04-02 22:09 ` Jeffrey Carter
2001-04-02 23:29 ` Robert A Duff
2001-04-03 14:10 ` Marin David Condic
2001-04-03 1:57 ` Streams in Ada Larry Kilgallen
1 sibling, 2 replies; 48+ messages in thread
From: Jeffrey Carter @ 2001-04-02 22:09 UTC (permalink / raw)
I've never used the PDP-10, but ...
I learned to program in Fortran 66 (IV) on a CDC 6400 with 60-bit words.
It used a 6-bit character set, so 10H fit into one word. The next
machine I used was a DEC 10 with TOPS-10. It had 36-bit words, but I
never encountered 6-bit characters on it; 7-bit ASCII IIRC.
Jeffrey Carter
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-02 22:09 ` 6-bit characters (was: Re: Streams in Ada) Jeffrey Carter
@ 2001-04-02 23:29 ` Robert A Duff
2001-04-03 16:41 ` Jeffrey Carter
2001-04-03 14:10 ` Marin David Condic
1 sibling, 1 reply; 48+ messages in thread
From: Robert A Duff @ 2001-04-02 23:29 UTC (permalink / raw)
Jeffrey Carter <jeffrey.carter@boeing.com> writes:
> I've never used the PDP-10, but ...
>
> I learned to program in Fortran 66 (IV) on a CDC 6400 with 60-bit words.
> It used a 6-bit character set, so 10H fit into one word. The next
> machine I used was a DEC 10 with TOPS-10. It had 36-bit words, but I
> never encountered 6-bit characters on it; 7-bit ASCII IIRC.
The DEC 10 and the PDP-10 are the same machine.
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-02 23:29 ` Robert A Duff
@ 2001-04-03 16:41 ` Jeffrey Carter
2001-04-03 17:57 ` Florian Weimer
` (2 more replies)
0 siblings, 3 replies; 48+ messages in thread
From: Jeffrey Carter @ 2001-04-03 16:41 UTC (permalink / raw)
Robert A Duff wrote:
>
> Jeffrey Carter <jeffrey.carter@boeing.com> writes:
>
> > I've never used the PDP-10, but ...
> >
> > I learned to program in Fortran 66 (IV) on a CDC 6400 with 60-bit words.
> > It used a 6-bit character set, so 10H fit into one word. The next
> > machine I used was a DEC 10 with TOPS-10. It had 36-bit words, but I
> > never encountered 6-bit characters on it; 7-bit ASCII IIRC.
>
> The DEC 10 and the PDP-10 are the same machine.
How interesting. Since you and MDC both say this, I only need one more
person to tell me this for it to be a fact ("What I tell you 3 times is
true."). I was aware of the PDP-11, but no one ever mentioned that the
DEC 10 was the PDP-10.
The DEC 10 was supposed to be able to handle 100 users simultaneously.
Boy, was it slow.
BTW, I didn't use TECO on the DEC 10; I used SOS.
Jeffrey Carter
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-03 16:41 ` Jeffrey Carter
@ 2001-04-03 17:57 ` Florian Weimer
2001-04-03 18:19 ` Marin David Condic
2001-04-03 18:04 ` Marin David Condic
2001-04-06 22:40 ` Robert A Duff
2 siblings, 1 reply; 48+ messages in thread
From: Florian Weimer @ 2001-04-03 17:57 UTC (permalink / raw)
Jeffrey Carter <jeffrey.carter@boeing.com> writes:
> How interesting. Since you and MDC both say this, I only need one more
> person to tell me this for it to be a fact ("What I tell you 3 times is
> true."). I was aware of the PDP-11, but no one ever mentioned that the
> DEC 10 was the PDP-10.
This page
http://www.montagar.com/dfwcug/VMS_HTML/timeline/1971-2.htm
seems to imply that DECsystem-10 and PDP-10 are different beasts. The
following page
http://www.dsi.uminho.pt/museuv/framedec3.htm
states that the DECsystem-10 was initially called PDP-10. And here's
a quote from the Jargon file:
| PDP-20 n. The most famous computer that never was. {PDP-10}
| computers running the {{TOPS-10}} operating system were labeled
| `DECsystem-10' as a way of differentiating them from the PDP-11.
| Later on, those systems running {TOPS-20} were labeled `DECSYSTEM-20'
| (the block capitals being the result of a lawsuit brought against DEC by
| Singer, which once made a computer called `system-10'), but contrary to
| popular lore there was never a `PDP-20'; the only difference between
| a 10 and a 20 was the operating system and the color of the paint.
| Most (but not all) machines sold to run TOPS-10 were painted `Basil
| Blue', whereas most TOPS-20 machines were painted `Chinese Red' (often
| mistakenly called orange).
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-03 17:57 ` Florian Weimer
@ 2001-04-03 18:19 ` Marin David Condic
2001-04-05 18:37 ` Tucker Taft
0 siblings, 1 reply; 48+ messages in thread
From: Marin David Condic @ 2001-04-03 18:19 UTC (permalink / raw)
"Florian Weimer" <fw@deneb.enyo.de> wrote in message
news:87d7atkgrv.fsf@deneb.enyo.de...
> This page
>
> http://www.montagar.com/dfwcug/VMS_HTML/timeline/1971-2.htm
>
Ooooooooohhhhhhhhhh!!!!!! Front-pannel switches and blinking lights! I feel
so nostalgic.
> seems to imply that DECsystem-10 and PDP-10 are different beasts. The
> following page
>
I didn't get that impression. Just that "DECsystem-10" grew from "PDP-10" -
that it was mostly a naming issue & not one of any real fundamental
difference. There may be some technical distinction, but it seems of little
consequence. Same processor. Same instruction set. Maybe some evolutionary
differences, but that's true of all significant systems over time. (How long
have you been able to buy a "Ford Thunderbird"?)
> | PDP-20 n. The most famous computer that never was. {PDP-10}
> | computers running the {{TOPS-10}} operating system were labeled
> | `DECsystem-10' as a way of differentiating them from the PDP-11.
> | Later on, those systems running {TOPS-20} were labeled `DECSYSTEM-20'
> | (the block capitals being the result of a lawsuit brought against DEC
by
> | Singer, which once made a computer called `system-10'), but contrary to
> | popular lore there was never a `PDP-20'; the only difference between
> | a 10 and a 20 was the operating system and the color of the paint.
> | Most (but not all) machines sold to run TOPS-10 were painted `Basil
> | Blue', whereas most TOPS-20 machines were painted `Chinese Red' (often
> | mistakenly called orange).
As I recall, the University of Chicago had a DECSYSTEM-20 - but I never
actually got to touch it. What I saw of the data on it tended to indicate
that it used the same KL-10 processor as the DECsystem-10. (KA, KI & KL were
the iterations of the processor I remember.)
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-03 18:19 ` Marin David Condic
@ 2001-04-05 18:37 ` Tucker Taft
0 siblings, 0 replies; 48+ messages in thread
From: Tucker Taft @ 2001-04-05 18:37 UTC (permalink / raw)
Marin David Condic wrote:
> ...
> I didn't get that impression. Just that "DECsystem-10" grew from "PDP-10" -
> that it was mostly a naming issue & not one of any real fundamental
> difference. There may be some technical distinction, but it seems of little
> consequence. Same processor. Same instruction set. Maybe some evolutionary
> differences, but that's true of all significant systems over time. (How long
> have you been able to buy a "Ford Thunderbird"?)
>
> > | PDP-20 n. The most famous computer that never was. {PDP-10}
> > | computers running the {{TOPS-10}} operating system were labeled
> > | `DECsystem-10' as a way of differentiating them from the PDP-11.
> > | Later on, those systems running {TOPS-20} were labeled `DECSYSTEM-20'
> > | (the block capitals being the result of a lawsuit brought against DEC
> by
> > | Singer, which once made a computer called `system-10'), but contrary to
> > | popular lore there was never a `PDP-20'; the only difference between
> > | a 10 and a 20 was the operating system and the color of the paint.
> > | Most (but not all) machines sold to run TOPS-10 were painted `Basil
> > | Blue', whereas most TOPS-20 machines were painted `Chinese Red' (often
> > | mistakenly called orange).
>
> As I recall, the University of Chicago had a DECSYSTEM-20 - but I never
> actually got to touch it. What I saw of the data on it tended to indicate
> that it used the same KL-10 processor as the DECsystem-10. (KA, KI & KL were
> the iterations of the processor I remember.)
The major difference between the DECSystem-20
and the DECSystem-10 had to do with memory management.
The DECSystem-20 had a better virtual memory
capability than the '10. Tops-20, the operating system
for the '20, was based on the "Tenex" operating system
developed by BBN, which also pioneered the fancier
virtual memory hardware for the '10/'20 line. TOPS-10
was the inspiration for the original CP/M-80 which grew
up (?) into MS-DOS and then Windows. Tenex/Tops-20 was
the inspiration for Vax/VMS, and might be called the "CISC"
of the operating system world, where Unix/Linux is the "RISC."
It is interesting that the Tenex-Vax/VMS thread joined the
Tops10-MS-DOS thread in Windows-NT (the worst of RISC
and CISC all wrapped up in one baroque mess ;-).
>
> MDC
> --
> Marin David Condic
> Senior Software Engineer
> Pace Micro Technology Americas www.pacemicro.com
> Enabling the digital revolution
> e-Mail: marin.condic@pacemicro.com
> Web: http://www.mcondic.com/
--
-Tucker Taft stt@avercom.net http://www.averstar.com/~stt/
Chief Technology Officer, AverCom Corporation (A Titan Company)
Burlington, MA USA (AverCom was formerly the Commercial Division of AverStar:
http://www.averstar.com/services/ebusiness_applications.html)
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-03 16:41 ` Jeffrey Carter
2001-04-03 17:57 ` Florian Weimer
@ 2001-04-03 18:04 ` Marin David Condic
2001-04-06 22:40 ` Robert A Duff
2 siblings, 0 replies; 48+ messages in thread
From: Marin David Condic @ 2001-04-03 18:04 UTC (permalink / raw)
Well, I don't know that I can speak for (ex)Digital Equipment Corp as to how
they went about naming things, but IIRC, the "DECSystem-10" referred to the
whole ball of wax, (processors, disks, etc.) whereas the PDP-10 designated
the processor. (PDP = Programmable Data Processor?) They had at one time a
tripple-processor configuration (Western Michigan University was the first
to get one!) so the distinction between DEC-10 and PDP-10 had some reality.
Still, it was essentially talking about the same thing.
As for SOS - I used that one too - much moreso than TECO. But the one thing
you couldn't do with SOS was edit a file on a magnetic tape drive. :-)
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Jeffrey Carter" <jeffrey.carter@boeing.com> wrote in message
news:3AC9FD54.47CF0136@boeing.com...
> How interesting. Since you and MDC both say this, I only need one more
> person to tell me this for it to be a fact ("What I tell you 3 times is
> true."). I was aware of the PDP-11, but no one ever mentioned that the
> DEC 10 was the PDP-10.
>
> The DEC 10 was supposed to be able to handle 100 users simultaneously.
> Boy, was it slow.
>
> BTW, I didn't use TECO on the DEC 10; I used SOS.
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-03 16:41 ` Jeffrey Carter
2001-04-03 17:57 ` Florian Weimer
2001-04-03 18:04 ` Marin David Condic
@ 2001-04-06 22:40 ` Robert A Duff
2 siblings, 0 replies; 48+ messages in thread
From: Robert A Duff @ 2001-04-06 22:40 UTC (permalink / raw)
Jeffrey Carter <jeffrey.carter@boeing.com> writes:
> The DEC 10 was supposed to be able to handle 100 users simultaneously.
> Boy, was it slow.
The Simula-67 compiler on that machine could compile something like
70,000 lines per minute, which rivals some modern-day compilers on
modern machines. Sigh.
> BTW, I didn't use TECO on the DEC 10; I used SOS.
I used SOS, too, until I learned about Emacs, which was written in TECO!
(at that time)
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: 6-bit characters (was: Re: Streams in Ada)
2001-04-02 22:09 ` 6-bit characters (was: Re: Streams in Ada) Jeffrey Carter
2001-04-02 23:29 ` Robert A Duff
@ 2001-04-03 14:10 ` Marin David Condic
1 sibling, 0 replies; 48+ messages in thread
From: Marin David Condic @ 2001-04-03 14:10 UTC (permalink / raw)
The DEC-10 is the PDP-10. The Sixbit stuff was sort of a throwback to an
earlier age by the time I started using it. Most stuff rather quickly
migrated to 7-bit ASCII, but there were still lots of things that had their
history in Sixbit. Not so much that Sixbit got used regularly - just that at
one time it did, so lots of aspects of the machine and its software were
colored by it.
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Jeffrey Carter" <jeffrey.carter@boeing.com> wrote in message
news:3AC8F892.87B56B74@boeing.com...
> I've never used the PDP-10, but ...
>
> I learned to program in Fortran 66 (IV) on a CDC 6400 with 60-bit words.
> It used a 6-bit character set, so 10H fit into one word. The next
> machine I used was a DEC 10 with TOPS-10. It had 36-bit words, but I
> never encountered 6-bit characters on it; 7-bit ASCII IIRC.
>
> Jeffrey Carter
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 17:49 ` Robert A Duff
2001-04-02 22:09 ` 6-bit characters (was: Re: Streams in Ada) Jeffrey Carter
@ 2001-04-03 1:57 ` Larry Kilgallen
2001-04-03 14:13 ` Marin David Condic
2001-04-13 23:21 ` Robert A Duff
1 sibling, 2 replies; 48+ messages in thread
From: Larry Kilgallen @ 2001-04-03 1:57 UTC (permalink / raw)
In article <wccg0frw5se.fsf@world.std.com>, Robert A Duff <bobduff@world.std.com> writes:
> "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
>
>> The PDP-10 was more closely oriented to "Sixbit" characters. (Or
>> "Half-ASCII" - basically ASCII with the lower case & some other stuff gone.)
>> IIRC, the Tops-10 OS had the 6x3 file name restrictions basically because it
>> would make filenames fit with Sixbit & into even multiples of machine words.
>
> This is more a property of Tops-10 than the PDP-10 hardware.
>
> The hardware supported "bytes", which could be from 1 to 36 bits each --
> there's nothing special about 6-bit bytes.
6-bit bytes were adequate to meet the needs of the time.
As I recall, ITS (Incompatible Timesharing System), which
predated Tops-10, used 6x6 filenames.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-03 1:57 ` Streams in Ada Larry Kilgallen
@ 2001-04-03 14:13 ` Marin David Condic
2001-04-13 23:21 ` Robert A Duff
1 sibling, 0 replies; 48+ messages in thread
From: Marin David Condic @ 2001-04-03 14:13 UTC (permalink / raw)
If we don't watch it, we're going to start those "Old Guys" stories. :-)
Like finding out what typing your name as a command string to TECO would do.
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Larry Kilgallen" <Kilgallen@eisner.decus.org.nospam> wrote in message
news:5FW3+dkM46AZ@eisner.encompasserve.org...
> In article <wccg0frw5se.fsf@world.std.com>, Robert A Duff
<bobduff@world.std.com> writes:
> > "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
> >
> >> The PDP-10 was more closely oriented to "Sixbit" characters. (Or
> >> "Half-ASCII" - basically ASCII with the lower case & some other stuff
gone.)
> >> IIRC, the Tops-10 OS had the 6x3 file name restrictions basically
because it
> >> would make filenames fit with Sixbit & into even multiples of machine
words.
> >
> > This is more a property of Tops-10 than the PDP-10 hardware.
> >
> > The hardware supported "bytes", which could be from 1 to 36 bits each --
> > there's nothing special about 6-bit bytes.
>
> 6-bit bytes were adequate to meet the needs of the time.
> As I recall, ITS (Incompatible Timesharing System), which
> predated Tops-10, used 6x6 filenames.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-03 1:57 ` Streams in Ada Larry Kilgallen
2001-04-03 14:13 ` Marin David Condic
@ 2001-04-13 23:21 ` Robert A Duff
1 sibling, 0 replies; 48+ messages in thread
From: Robert A Duff @ 2001-04-13 23:21 UTC (permalink / raw)
Kilgallen@eisner.decus.org.nospam (Larry Kilgallen) writes:
> In article <wccg0frw5se.fsf@world.std.com>, Robert A Duff <bobduff@world.std.com> writes:
> > "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
> >
> >> The PDP-10 was more closely oriented to "Sixbit" characters. (Or
> >> "Half-ASCII" - basically ASCII with the lower case & some other stuff gone.)
> >> IIRC, the Tops-10 OS had the 6x3 file name restrictions basically because it
> >> would make filenames fit with Sixbit & into even multiples of machine words.
> >
> > This is more a property of Tops-10 than the PDP-10 hardware.
> >
> > The hardware supported "bytes", which could be from 1 to 36 bits each --
> > there's nothing special about 6-bit bytes.
>
> 6-bit bytes were adequate to meet the needs of the time.
> As I recall, ITS (Incompatible Timesharing System), which
> predated Tops-10, used 6x6 filenames.
You seem to be implying that "bytes" are always used to represent
"characters". On the PDP-10, 6-bit bytes were used to represent 6-bit
characters, and 7-bit bytes were used to represent 7-bit ASCII, and
1-bit bytes were used to represent booleans, and 3-bit bytes were used
to represent enumeration types with 8 values, and so on.
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 15:49 ` Ted Dennison
2001-04-02 16:57 ` Marin David Condic
@ 2001-04-02 17:41 ` Florian Weimer
2001-04-02 18:17 ` Robert A Duff
1 sibling, 1 reply; 48+ messages in thread
From: Florian Weimer @ 2001-04-02 17:41 UTC (permalink / raw)
Ted Dennison<dennison@telepath.com> writes:
> I think you meant, "all possible Ada implementations", which I would
> disagree with.
Do impossible Ada implementations exist? ;-)
> On the other hand, if we were to interpret this to say "on all
> likely implementations", I could agree with you. I'll leave it up to
> others how likely a conforming Ada95 PDP-10 implementation is.
I think if you're after practical portability, the PDP-10 doesn't
matter to you.
> Out of curiosity, what exactly constituted a "byte" on a PDP-10?
According to http://www.inwap.com/pdp10/hbaker/pdp-10/Byte.html, the
smallest individually addressable storage unit is a bit, so with a
common definition of a byte, it consists of a single bit. ;-)
If I were writing an Ada compiler for the PDP-10, I would probably
choose Storage_Element'Size = 9. IIRC, the GCC porters are doing a
similar thing (CHAR_BITS == 8).
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 17:41 ` Florian Weimer
@ 2001-04-02 18:17 ` Robert A Duff
2001-04-02 19:36 ` Marin David Condic
2001-04-02 21:13 ` Florian Weimer
0 siblings, 2 replies; 48+ messages in thread
From: Robert A Duff @ 2001-04-02 18:17 UTC (permalink / raw)
Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE> writes:
> Ted Dennison<dennison@telepath.com> writes:
>
> > I think you meant, "all possible Ada implementations", which I would
> > disagree with.
>
> Do impossible Ada implementations exist? ;-)
No, but some possible Ada implementations don't exist. ;-)
> > On the other hand, if we were to interpret this to say "on all
> > likely implementations", I could agree with you. I'll leave it up to
> > others how likely a conforming Ada95 PDP-10 implementation is.
>
> I think if you're after practical portability, the PDP-10 doesn't
> matter to you.
True, but the principle of writing byte-size-independent code is still
often a good idea. It's just as easy to be portable to the PDP-10 as to
any other machine that has "unusual" Storage_Units.
> > Out of curiosity, what exactly constituted a "byte" on a PDP-10?
>
> According to http://www.inwap.com/pdp10/hbaker/pdp-10/Byte.html, the
> smallest individually addressable storage unit is a bit, so with a
> common definition of a byte, it consists of a single bit. ;-)
Well, sort of. You could address a single bit with a "byte pointer".
But a normal machine address addressed a 36-bit word. I believe machine
addresses are more efficient.
> If I were writing an Ada compiler for the PDP-10, I would probably
> choose Storage_Element'Size = 9.
Sounds like a bad idea to me. Storage_Element'Size should be 36 on the
PDP-10. I believe anything else would be unnecessarily inefficient.
>...IIRC, the GCC porters are doing a
> similar thing (CHAR_BITS == 8).
That's because of various problems with the C language, which don't
exist in Ada. C has no packed arrays, for example. Plus the fact that
C culture has grown up in such a way that there's a huge amount of code
that implicitly assumes that char is 8 bits.
In another newsgroup, I recently read a nice quote from G B Shaw that
seems apropos: "He is a barbarian who thinks the customs of his tribe
are natural laws."
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 18:17 ` Robert A Duff
@ 2001-04-02 19:36 ` Marin David Condic
2001-04-02 20:54 ` Robert A Duff
2001-04-03 10:10 ` Florian Weimer
2001-04-02 21:13 ` Florian Weimer
1 sibling, 2 replies; 48+ messages in thread
From: Marin David Condic @ 2001-04-02 19:36 UTC (permalink / raw)
As I understand the notion of Storage_Element, they rather intended for this
to correspond to whatever the hardware would normally reference with a
machine address and pull off the bus. The fact that there may be
instructions that let you pick apart that chunk of stuff you pulled from the
bus wouldn't be a consideration because you'd be looking for the machine's
most efficient means of referencing data. Hence, even though the PDP-10
could easily disect the 36 bit words, you'd still want Storage_Element to be
36 bits because that was the smallest chunk of data you could extract from
main memory. (IIRC, it was an 18 bit address, right? And I *do* remember
using 7 bit ASCII with one bit left over! :-)
So this hypothetical Ada95 compiler would use 36 bits to store a character
or array of characters? You'd have to use packing or other representation
clauses to get the characters into a single word? Hmmmmmmm....... That would
probably provide all sorts of ammunition for the Anti-Ada-Zealots.
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Robert A Duff" <bobduff@world.std.com> wrote in message
news:wccae5zw4hm.fsf@world.std.com...
>
> Sounds like a bad idea to me. Storage_Element'Size should be 36 on the
> PDP-10. I believe anything else would be unnecessarily inefficient.
>
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 19:36 ` Marin David Condic
@ 2001-04-02 20:54 ` Robert A Duff
2001-04-03 10:10 ` Florian Weimer
1 sibling, 0 replies; 48+ messages in thread
From: Robert A Duff @ 2001-04-02 20:54 UTC (permalink / raw)
"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
>...(IIRC, it was an 18 bit address, right? ...
Right. Later models had some sort of segmentation mechanism to increase
the address space (was it called "extended addressing", maybe?).
> So this hypothetical Ada95 compiler would use 36 bits to store a character
> or array of characters?
By default, yes. I think that's what you want: default behavior is fast
array indexing, and if you want tighter packing, say pragma Pack.
This is what we do on one of our targets that happens to have 32-bit
storage units.
It's no different than an array of Booleans on a more typical machine --
you have to say pragma Pack if you want 1 bit per component.
>... You'd have to use packing or other representation
> clauses to get the characters into a single word? Hmmmmmmm....... That would
> probably provide all sorts of ammunition for the Anti-Ada-Zealots.
Shrug. The programmer gets the choice. And there's no pragma
Dont_Pack, so it's pretty clear what the default ought to be.
And would these Anti-Ada-Zealots perhaps prefer a language such as C,
where there *is* no such choice?
Note that the predefined String type has pragma Pack, so you would get 4
characters per word, with 4 bits per word wasted.
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 19:36 ` Marin David Condic
2001-04-02 20:54 ` Robert A Duff
@ 2001-04-03 10:10 ` Florian Weimer
2001-04-03 14:21 ` Marin David Condic
1 sibling, 1 reply; 48+ messages in thread
From: Florian Weimer @ 2001-04-03 10:10 UTC (permalink / raw)
"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
> As I understand the notion of Storage_Element, they rather intended for this
> to correspond to whatever the hardware would normally reference with a
> machine address and pull off the bus.
According to this definition, Storage_Element'Size would have to be
256. :-/
> The fact that there may be instructions that let you pick apart that
> chunk of stuff you pulled from the bus wouldn't be a consideration
> because you'd be looking for the machine's most efficient means of
> referencing data. Hence, even though the PDP-10 could easily disect
> the 36 bit words, you'd still want Storage_Element to be 36 bits
> because that was the smallest chunk of data you could extract from
> main memory.
This would imply that Storage_Element'Size should equal 64 with
generic Alpha targets. I don't think many vendors implement this.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-03 10:10 ` Florian Weimer
@ 2001-04-03 14:21 ` Marin David Condic
2001-04-03 18:15 ` Florian Weimer
0 siblings, 1 reply; 48+ messages in thread
From: Marin David Condic @ 2001-04-03 14:21 UTC (permalink / raw)
I suppose that may be what it would be if you thought of the *LARGEST*
addressable unit - but going the other direction is I think what was
intended. AFAIK, Alphas will address a single byte - even if it isn't the
most optimal use of the bus. Whereas, the PDP-10 would only address a 36 bit
word as the smallest element it would extract from memory. The rest of the
operations for smaller sized units would disect the word after it was
fetched.
I doubt we'd have to consider various possible hardware schemes as part of
the issue. Only the instruction set.
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
"Florian Weimer" <fw@deneb.enyo.de> wrote in message
news:87g0fqpa4b.fsf@deneb.enyo.de...
> "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
>
> > As I understand the notion of Storage_Element, they rather intended for
this
> > to correspond to whatever the hardware would normally reference with a
> > machine address and pull off the bus.
>
> According to this definition, Storage_Element'Size would have to be
> 256. :-/
>
> > The fact that there may be instructions that let you pick apart that
> > chunk of stuff you pulled from the bus wouldn't be a consideration
> > because you'd be looking for the machine's most efficient means of
> > referencing data. Hence, even though the PDP-10 could easily disect
> > the 36 bit words, you'd still want Storage_Element to be 36 bits
> > because that was the smallest chunk of data you could extract from
> > main memory.
>
> This would imply that Storage_Element'Size should equal 64 with
> generic Alpha targets. I don't think many vendors implement this.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-03 14:21 ` Marin David Condic
@ 2001-04-03 18:15 ` Florian Weimer
2001-04-03 23:21 ` Robert A Duff
0 siblings, 1 reply; 48+ messages in thread
From: Florian Weimer @ 2001-04-03 18:15 UTC (permalink / raw)
"Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
> I suppose that may be what it would be if you thought of the *LARGEST*
> addressable unit - but going the other direction is I think what was
> intended.
No, the smallest unit which ordinarily hits the memory bus on the
message I'm typing is 32 octets -- a cache line. ;-)
> AFAIK, Alphas will address a single byte
In standardeese, you're correct (a byte is commonly defined as the
smallest addressable storage unit), but if you mean a single octet,
I don't think so, AFAIK, the original Alpha CPU doesn't have this
feature. (Modern CPUs which also can operate in a PC-like environment
probably have octet) Can anyone shed some light on this issue?
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-03 18:15 ` Florian Weimer
@ 2001-04-03 23:21 ` Robert A Duff
0 siblings, 0 replies; 48+ messages in thread
From: Robert A Duff @ 2001-04-03 23:21 UTC (permalink / raw)
Florian Weimer <fw@deneb.enyo.de> writes:
> "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
>
> > I suppose that may be what it would be if you thought of the *LARGEST*
> > addressable unit - but going the other direction is I think what was
> > intended.
>
> No, the smallest unit which ordinarily hits the memory bus on the
> message I'm typing is 32 octets -- a cache line. ;-)
>
> > AFAIK, Alphas will address a single byte
>
> In standardeese, you're correct (a byte is commonly defined as the
> smallest addressable storage unit),
Perhaps nowadays, but in the old days, that wasn't true. People talked
about "byte addressable", meaning you can address bytes (whatever that
means -- 8 bits? something smaller than a word?).
>... but if you mean a single octet,
> I don't think so, AFAIK, the original Alpha CPU doesn't have this
> feature. (Modern CPUs which also can operate in a PC-like environment
> probably have octet) Can anyone shed some light on this issue?
An address on the Alpha points to a single octet (8-bit byte). The
original Alpha had no instructions for loading a byte, but I would still
call it an "addressable unit". So on Alpha, an Ada compiler ought to
define:
Storage_Unit = 8
Word_Size = 64
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 18:17 ` Robert A Duff
2001-04-02 19:36 ` Marin David Condic
@ 2001-04-02 21:13 ` Florian Weimer
2001-04-02 21:22 ` Robert A Duff
1 sibling, 1 reply; 48+ messages in thread
From: Florian Weimer @ 2001-04-02 21:13 UTC (permalink / raw)
Robert A Duff <bobduff@world.std.com> writes:
> > If I were writing an Ada compiler for the PDP-10, I would probably
> > choose Storage_Element'Size = 9.
>
> Sounds like a bad idea to me. Storage_Element'Size should be 36 on the
> PDP-10. I believe anything else would be unnecessarily inefficient.
Are you sure? There are quite a few Ada compilers out there which use
Storage_Element'Size = 8 even though it's inefficient on that
particular platform. I think the size of a storage element is pretty
irrelevant for efficiency concerns.
> >...IIRC, the GCC porters are doing a
> > similar thing (CHAR_BITS == 8).
Oops, CHAR_BITS == 9 of course.
> That's because of various problems with the C language, which don't
> exist in Ada. C has no packed arrays, for example. Plus the fact that
> C culture has grown up in such a way that there's a huge amount of code
> that implicitly assumes that char is 8 bits.
An 8 bit char on a PDP-10 doesn't work. Only values which are
divisors of 36 are acceptable.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 21:13 ` Florian Weimer
@ 2001-04-02 21:22 ` Robert A Duff
2001-04-03 10:02 ` Florian Weimer
0 siblings, 1 reply; 48+ messages in thread
From: Robert A Duff @ 2001-04-02 21:22 UTC (permalink / raw)
Florian Weimer <fw@deneb.enyo.de> writes:
> Robert A Duff <bobduff@world.std.com> writes:
>
> > > If I were writing an Ada compiler for the PDP-10, I would probably
> > > choose Storage_Element'Size = 9.
> >
> > Sounds like a bad idea to me. Storage_Element'Size should be 36 on the
> > PDP-10. I believe anything else would be unnecessarily inefficient.
>
> Are you sure?
No.
>... There are quite a few Ada compilers out there which use
> Storage_Element'Size = 8 even though it's inefficient on that
> particular platform.
Which machines? I've never heard of such a thing.
>...I think the size of a storage element is pretty
> irrelevant for efficiency concerns.
Well, maybe I misunderstood. I was presuming that if
Storage_Element'Size = 8, then the compiler behaves accordingly (eg,
for laying out arrays). *That's* what would affect efficiency.
I guess it's true that Storage_Element'Size in and of itself is
irrelevent unless you're using 'Address and related stuff.
> > >...IIRC, the GCC porters are doing a
> > > similar thing (CHAR_BITS == 8).
>
> Oops, CHAR_BITS == 9 of course.
>
> > That's because of various problems with the C language, which don't
> > exist in Ada. C has no packed arrays, for example. Plus the fact that
> > C culture has grown up in such a way that there's a huge amount of code
> > that implicitly assumes that char is 8 bits.
>
> An 8 bit char on a PDP-10 doesn't work. Only values which are
> divisors of 36 are acceptable.
I don't see why. The PDP-10 hardware can deal with 8-bit bytes just
fine (although you waste approx 1/9 of the bits). Is there some
subtlety of C I'm missing?
Or do I have to say you waste 1.0/9.0 of the bits? ;-)
- Bob
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 21:22 ` Robert A Duff
@ 2001-04-03 10:02 ` Florian Weimer
0 siblings, 0 replies; 48+ messages in thread
From: Florian Weimer @ 2001-04-03 10:02 UTC (permalink / raw)
Robert A Duff <bobduff@world.std.com> writes:
> >... There are quite a few Ada compilers out there which use
> > Storage_Element'Size = 8 even though it's inefficient on that
> > particular platform.
>
> Which machines? I've never heard of such a thing.
IIRC, in the AI dealing with 13.13.2(17), some vendor(s) claimed that
the current IA is inappropriate because it results in inefficient code
if a character is written to a stream because it has to be represented
in 8 bits.
With Storage_Element'Size, this isn't such a big concern, I think,
because usually, you can add all kinds of padding to make the
in-memory representation efficient.
> > An 8 bit char on a PDP-10 doesn't work. Only values which are
> > divisors of 36 are acceptable.
>
> I don't see why. The PDP-10 hardware can deal with 8-bit bytes just
> fine (although you waste approx 1/9 of the bits). Is there some
> subtlety of C I'm missing?
In C, each object must be representable as a sequence of bytes (i.e.
char values). If you use 8-bit chars, words can only consist of 32
bits, not 36 bits. So you have to run the PDP-10 in some kind of
32-bit mode. As a result, you probably can't write system code in C.
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 15:10 ` Florian Weimer
2001-04-02 15:49 ` Ted Dennison
@ 2001-04-02 16:42 ` Marin David Condic
2001-04-13 5:00 ` David Thompson
2 siblings, 0 replies; 48+ messages in thread
From: Marin David Condic @ 2001-04-02 16:42 UTC (permalink / raw)
"Florian Weimer" <Florian.Weimer@RUS.Uni-Stuttgart.DE> wrote in message
news:tgofufwd4x.fsf@mercury.rus.uni-stuttgart.de...
> "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com> writes:
>
> > But wouldn't that posit that there *was* an Ada95 implementation on a
PDP-10
> > and that a Stream_Element was 36 bits?
>
> Well, the poster specifically mentioned portability, and his code does
> not work on such an architecture. IMHO, portable code hasn't just to
> run on all platforms which exist (this could be called 'practically
> portable code'), but on all Ada implementations.
>
O.K. That's a valid point. But the instant one delves into the theoretically
possible machines, one can spend an enormous amount of energy making code
that is portable to all possible machines, when maybe it is sufficient to
make code that is portable to most machines that are in practical existence.
While there are machines that don't have an 8 bit byte as the logical
storage unit for a Stream_Element (the 1750a comes to mind...:-) and there
are machines that don't even have a storage unit evenly divisible by 8 (the
PDP-10 is a prime example) code that was dependent on an 8 bit storage unit
& Stream_Element is probably going to port to well over 90% of all the
places that are likely to come up or be at all important. Of course, if all
you have to do is a little simple static math in your declarations to keep
things totally portable, its probably worth the effort.
> > Someone mentioned here a few days ago about the existence of PDP-10
> > look-alikes, but I don't think anyone has any evidence of a validated
Ada95
> > compiler for one of them.
>
> GCC is currently being ported to it.
This has *got* to be a labor of love! I find it hard to imagine that there
are thousands (or even hundreds) of PDP-10 sites out there, much less
thousands (or even hundreds) of PDP-10 sites with a burning need for Ada
compilers. (Wouldn't they mostly be in use to maintain legacy systems
written in Fortran, Cobol, or even Bliss?) Either it is a real specialty
need (with the government picking up the tab?) or it is an idle, Quixotic,
excentric programmer with too much time & money on his hands - or a twisted
sense of humor. (Ahhhh.... To be an idle Quixotic excentric programmer with
too much time & money & a twisted sense of humor and a government contract
to pick up the tab! But I digress....) If someone is doing this, I'd be very
curious to find out where & what for.
MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas www.pacemicro.com
Enabling the digital revolution
e-Mail: marin.condic@pacemicro.com
Web: http://www.mcondic.com/
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: Streams in Ada
2001-04-02 15:10 ` Florian Weimer
2001-04-02 15:49 ` Ted Dennison
2001-04-02 16:42 ` Marin David Condic
@ 2001-04-13 5:00 ` David Thompson
2 siblings, 0 replies; 48+ messages in thread
From: David Thompson @ 2001-04-13 5:00 UTC (permalink / raw)
Marin David Condic <marin.condic.auntie.spam@pacemicro.com> wrote :
> Someone mentioned here a few days ago about the existence of PDP-10
> look-alikes, but I don't think anyone has any evidence of a validated Ada95
> compiler for one of them. It would sure make me nostalgic to have access to
> a PDP-10 for a while & write some programs for it again. (Hmmmmmmm.......
> Maybe I'll get started writing a simulator for it, just for fun & to use up
> all that spare time I have..... :-)
There are two active efforts to write -10 simulators that
have been discussed (extensively) on alt.sys.pdp10
over the past few months, one by Bob Supnik and
one by Timothy Stark, which seem to "nearly" work --
i.e. at this point much of the discussion is along the lines
of "I can boot TOPS-10 and create a filesystem but
running a system utility program XX faults at YY --
was this a bug in the actual program (even on a real -10)
or am I running it wrong (and discussants try to remember
amazingly arcane details of how to use TOPS-10 features,
or those of the KL10 front-end or diagnostic programs)
or is it a very narrow bug in the simulator".
There are also a couple of folks who pop up from time to time
apparently working on an FPGA hardware implementation
(AIR in VHDL) but have not announced any real results.
Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE> wrote :
> GCC is currently being ported to it.
By Lars Brinkhoff sponsored by XKL, makers of one workalike.
So it may eventually be possible to compile and run a -10 emulator
(both now written AIUI in Unix-flavored C) on an emulated -10!
--
- David.Thompson 1 now at worldnet.att.net
^ permalink raw reply [flat|nested] 48+ messages in thread