🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.folklore.computers
7 messages
7 total messages Started by exs... P E Smee Tue, 02 Jan 1990 11:32
'Stuck' on one address?
#682
Author: exs... P E Smee
Date: Tue, 02 Jan 1990 11:32
39 lines
2581 bytes
The 'program that stumbled' chain reminds me of the PDP-9.  (If the
original in the chain *was* about the PDP-9, forgive me -- I've missed
a few weeks.)

The PDP-9 allowed multiple-level address indirection.  As was common
among machines of the time, the address part of the instruction word
was not long enough to reach all storage (and PDP-9's did not use base
registers) so your instruction could have the 'I'bit set to indicate
that the instruction's address part referred to a reachable word which
contained the actual address to be used.  However, a whole word had a
bit or two more than was needed to address the maximum storage, so one
of those was designed to be an indirect bit, saying in effect 'this is
still not the address, but is rather the address of a word containing
the address'.  This could be done with no designed in limit.  So, you
could loop indirects.  In the simplest case, say:

	 JMP * FOO
    FOO      * .

where the JMP instruction says to jump through the indirect location
labelled by FOO, and FOO contains an indirect reference to itself.
Problem was, the PDP-9 was uninterruptible, even by the STOP switch,
while it was performing address resolution.  If you did this, the only
way to get the machine back was to power it off.  (The fact that I use
JMP is irrelevant, ANY instruction could be used.)

Later machines avoided this by various means, and I suspect that
unpleasant experience with PDP-9's and similar machines led to them.
IBM 360/370 machines do not allow indirect addressing at all (Index,
Base, Displacement addressing is not the same thing).  GE (later
Honeywell) machines incorporated a high-priority unmaskable interrupt
which would be taken if any instruction did not complete within N
(configurable) machine cycles, and which would interrupt no matter what
the state of the machine.  Some others put limits on the number of
indirections allowed.

-- 
Paul Smee, Univ of Bristol Comp Centre, Bristol BS8 1TW, Tel +44 272 303132
 Sm...@bristol.ac.uk  :-)  (..!uunet!ukc!gdr.bath.ac.uk!exspes if you MUST)
Re: 'Stuck' on one address?
#683
Author: p... Per Lindberg
Date: Wed, 03 Jan 1990 17:36
16 lines
1171 bytes
In article <1990Jan2.1...@gdt.bath.ac.uk> exs...@gdr.bath.ac.uk
           (P E Smee) writes:
>The 'program that stumbled' chain reminds me of the PDP-9...
>The PDP-9 allowed multiple-level address indirection...
>This could be done with no designed in limit...
>Problem was, the PDP-9 was uninterruptible, even by the STOP switch,
>while it was performing address resolution.

Wasn't this also a problem with the first PDP-10 processors? 
I've head that DEC fixed it rather quickly, though.
(For obvious reasons...)

-- 
Per Lindberg (The Mad Programmer)  !      __!__
Front Capital Systems              !  _____(_)_____  Ceci n'est pas une Piper
Linneg 5, 11447 Stockholm, Sweden  !     !  !  !
Re: 'Stuck' on one address?
#684
Author: exs... P E Smee
Date: Thu, 04 Jan 1990 11:28
18 lines
1499 bytes
In article <9...@front.se> p...@front.se (Per Lindberg) writes:
>In article <1990Jan2.1...@gdt.bath.ac.uk> exs...@gdr.bath.ac.uk
>           (P E Smee) writes:
>>The 'program that stumbled' chain reminds me of the PDP-9...
>>The PDP-9 allowed multiple-level address indirection...
>>This could be done with no designed in limit...
>>Problem was, the PDP-9 was uninterruptible, even by the STOP switch,
>>while it was performing address resolution.
>
>Wasn't this also a problem with the first PDP-10 processors? 

Well, I may be one of the few people in the world who's never
(knowingly) used a PDP-10 or DecSystem 10, so couldn't say.  Wouldn't
surprise me, though.  I will guarantee you, from personal (though
accidental) experience, that it was true on the PDP-9's.
-- 
Paul Smee, Univ of Bristol Comp Centre, Bristol BS8 1TW, Tel +44 272 303132
 Sm...@bristol.ac.uk  :-)  (..!uunet!ukc!gdr.bath.ac.uk!exspes if you MUST)
Re: 'Stuck' on one address?
#685
Author: pe... Peter da Silva
Date: Thu, 04 Jan 1990 11:36
7 lines
956 bytes
The HP-1000 was like that, too. Memory was 32K words. A word was 16 bits.
So they had an extra bit which was used as an indirect bit. Early models
could indeed be wound around the axle...
-- 
Peter "Have you hugged your wolf today" da Silva <pe...@sugar.hackercorp.com>
`-_-'
 'U`  "I haven't lost my mind, it's backed up on tape somewhere"
Re: 'Stuck' on one address?
#686
Author: da... David Landis
Date: Thu, 04 Jan 1990 19:25
11 lines
1289 bytes
The IBM 1130 had 16 bit words, a 5 bit opcode with 3 modifier bits
filling out the first 8 bits, and an addressing scheme that wrapped
from the highest address back to zero.  It turned out that EBCDIC
blanks was a valid instruction, x'4040' == MDX *+64, a short branch
to the current address plus 64.  A short program to fill (clear) 
memory to 'spaces' would then loop forever, cycling through memory.
  
David E. Landis				University of Michigan
Sr. Research Programmer			3126 Argus I Building
Phone:  (313) 763-0592                  535 West William Street
Internet: da...@ifs.umich.edu		Ann Arbor, MI, 48103-4983
Re: 'Stuck' on one address?
#687
Author: meis... Michael Meissner
Date: Thu, 11 Jan 1990 15:29
29 lines
2084 bytes
In article <16...@cc.usu.edu> SL...@cc.usu.edu (Roger Ivie) writes:

| Need we mention the DG NOVA/ECLIPSEs that had a PSW bit that limited
| indirect accesses to 16 levels? This was programmable so that you could
| go forever if you *really* wanted to.

The original Nova did not have a bound on the number of indirections.
The bound came in when the MMU was added with the Eclipse (I don't
remember if the high end Nova's also had it, and it was ancient
history when I joined DG in 1979).  In the ten years that I worked for
DG supporting compilers, I never encountered a function or fragment of
code that ever used more than a single indirect intentionally, though
there were rumors that one program used it in one spot.

For those of you who don't know what I'm talking about, 16-bit word
(and later also 32-bit double word in the MV) load and store
instructions had an indirect bit, which said to load up the word
(double word) at the location pointed to by the instruction, and use
that as the address to load/store into the register.  The word pointer
format did not use the top bit, so if the instruction specified
indirection, the top bit would indicate whether to loop back, using
the remaining bits as the next address to load, or to stop and finish
the instruction.

--
Michael Meissner	email: meis...@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA

Catproof is an oxymoron, Childproof is nearly so
Re: 'Stuck' on one address?
#688
Author: a... Andrew MacRae
Date: Tue, 16 Jan 1990 01:31
18 lines
1724 bytes
In article <MEISSNER.90...@pmax27.osf.org> meis...@osf.org (Michael Meissner) writes:
>The original Nova did not have a bound on the number of indirections.
>The bound came in when the MMU was added with the Eclipse (I don't
>remember if the high end Nova's also had it, and it was ancient
>history when I joined DG in 1979).  In the ten years that I worked for
>DG supporting compilers, I never encountered a function or fragment of
>code that ever used more than a single indirect intentionally, though
>there were rumors that one program used it in one spot.

I beg your pardon, but I (and my fellow programmers) used it quite a
lot.  I remember a memory test program I wrote that kept relocating itself
around a half megabyte board (a big deal then).  That program made extensive
use of multiple indirections.

Of course the part about the Nova I *really* enjoyed :) were the auto-
increment and auto-decrement locations in memory.  Many a time a programmer
would stop by wondering why their data kept changing value every time they
looked at it.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads