On Tue, 21 Jun 2005 "Jerome H. Fine" <jhfinexgs2 at compsys.to> wrote:
Johnny
Billquist wrote:
Sellam asked if anyone would be able to tell that
Magica (a real PDP-11)
have been replaced by MIM (an emulated PDP-11).
The answer is yes, and no.
The only telling thing is the speed. It is much faster than a real
PDP-11/93, which it emulates. But apart from that, I can't see how you
could tell.
Jerome Fine replies:
It also depends on how much of E11 you decide to use.
Um, no. If you setup E11 to emulate an 11/93, it will emulate an 11/93,
and you won't be able to tell the difference apart from the speed.
(a) It is possible to define and implement unused
PDP-11
instruction codes that NO real PDP-11 ever uses! My first
preference would be 32 / 64 Bit Integer Add / Subtract
Instructions.
That would probably be very low on my list, for several reasons.
1) Doing arbitrary length add/sub with the existing instruction set is so
easy it's silly, and with plenty of speed, there is nothing to bother
about from that view either.
2) You already have 32-bit integer add/sub in the FPP.
3) Since available opcodes are restricted, you'd have to either implement
a prefix opcode, or have severly restricted arguments for such
instructions.
Mentec implemented one additional instruction that really is useful, and
which atleast RSX will use, if it finds it, and that is a block copy
instruction. I don't even know if it has a mnemonic. Moving large chunks
of memory is something the systems does a lot in I/O, so that really helps
if it can be done faster.
(b) John Wilson has a DLL which allows a PDP-11 user
to
directly access the PC RAM: via a "register" in the I/O
page. The file is EMEM.DLL (Emulated Memory). Eventually
I intend to replace the uses of the "hardware MMU" in the
software with the EMEM.DLL so that I don't waste the whole
8,192 bytes of the PAR devoted to the use of the MMU. It
will also be much faster and can be as large as the user
wants - as much memory (100s of MBytes from PC RAM:) as
the PC has available for E11 to use. This would be for
VIRTUAL A(100000000) in FORTRAN, something impossible
with a real PDP-11.
I don't really understand how this is related to the MMU, but anyway,
we're just talking of a device here, which interfaces to a larger storage.
No different than a number of other devices.
The MMU is a different deal, and handles virtual to physical address
translations.
(c) The MTPS instruction could be modified to have a
value
that would specify E11 in addition to any other PDP-11.
Sure.
At present, only (b) is actually available - although
this
could be done in hardware for a real PDP-11 so it would not
really say it is not a PDP-11/93. But (a) and (c) could
also be done very easily. Does anyone else have any other
requests that they consider important?
Anything can be done (obviously), but not much makes much sense. The block
copy instruction is among them.
Personally, I'd like to see the full stuff of the 11/74 implemented.
I'd even be willing to do some work for it, just to see RSX running in MP.
Johnny
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at update.uu.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol