Groups | Search | Server Info | Login | Register
| From | Johnny Billquist <bqt@softjar.se> |
|---|---|
| Newsgroups | alt.sys.pdp11, comp.sys.dec, comp.os.vms |
| Subject | Re: QBUS Prototyping |
| Date | 2011-04-19 09:47 -0700 |
| Organization | Update Computer Club |
| Message-ID | <iokeab$ja3$1@Iltempo.Update.UU.SE> (permalink) |
| References | (3 earlier) <WgK6B$GCJWnT@eisner.encompasserve.org> <iohk2q$kmg$2@Iltempo.Update.UU.SE> <iohs8j$ha6$1@pcls6.std.com> <ioivtk$4ss$1@Iltempo.Update.UU.SE> <ioka2m$bee$1@pcls6.std.com> |
Cross-posted to 3 groups.
On 2011-04-19 08:34, Michael Moroney wrote:
> Johnny Billquist<bqt@softjar.se> writes:
>
>> One rumour has it that it was developed in order to extend some patent
>> or something.
>
> I heard the same little birdie, and it certainly makes sense, to make the
> instruction set unique. Someone could probably find another processor or
> processors that essentially implement each of the other PDP-11
> instructions. Kind of like deliberate errors added to copyrighted maps.
Yeah.
>> Another would be that they were just crazy.
>
> That certainly would have helped!
:-)
>> I've not seen a single compiler use the subroutine linkage that
>> explicitly makes the MARK instruction meaningful, and besides. It is not
>> usable if you have split I/D space.
>
> I won't claim there is one, esp. if it doesn't work with split I/D space.
And it won't. The idea with the MARK instruction is that it is pushed on
the stack. At subroutine return, you are then supposed to jump to where
the stack pointer points, and execute there, which is on the stack. This
will clean up the stack, and restore PC.
So stack needs to be in I-space. But for all other purposes stack is in
D-space. So in short, stack needs to be in both I-space and D-space for
the MARK instruction to work.
So it can't be split. Pretty useless, if you ask me.
And all just for making the cleaning of the stack from arguments to the
function a little more streamlined. Having just an ADD #n,SP works just
as fine, and do work with split I/D-space. :-)
The difference being that the caller needs to clean the stack explicitly
after a call, while with MARK, the caller push the MARK before calling,
and the stack is cleaned as a part of the return.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Back to comp.sys.dec | Previous | Next — Previous in thread | Next in thread | Find similar
Re: QBUS Prototyping koehler@eisner.nospam.encompasserve.org (Bob Koehler) - 2011-04-18 07:56 -0500
Re: QBUS Prototyping Johnny Billquist <bqt@softjar.se> - 2011-04-18 08:07 -0700
Re: QBUS Prototyping moroney@world.std.spaamtrap.com (Michael Moroney) - 2011-04-18 17:26 +0000
Re: QBUS Prototyping koehler@eisner.nospam.encompasserve.org (Bob Koehler) - 2011-04-18 12:53 -0500
Re: QBUS Prototyping Johnny Billquist <bqt@softjar.se> - 2011-04-18 20:35 -0700
Re: QBUS Prototyping moroney@world.std.spaamtrap.com (Michael Moroney) - 2011-04-19 15:34 +0000
Re: QBUS Prototyping Johnny Billquist <bqt@softjar.se> - 2011-04-19 09:47 -0700
Re: QBUS Prototyping koehler@eisner.nospam.encompasserve.org (Bob Koehler) - 2011-04-18 12:49 -0500
Re: QBUS Prototyping Johnny Billquist <bqt@softjar.se> - 2011-04-18 20:36 -0700
csiph-web