Discussion:
[Simh] Musings on potential SIMH candidate systems
Alan Frisbie
2015-04-11 22:20:18 UTC
Permalink
I am only just getting started with SIMH, so perhaps I'm getting
a bit ahead of myself, but here goes...

A classic graphics system of the early 1970s was the Imlac PDS-1.
The display was a vector-stroke type, driven by a display list in
memory and continuously refreshed. It had a CPU for
communicating with a host (typically a PDP-10) and local
calculations, and a GPU (Graphics Processing Unit) for executing
the elements of the graphics display list, both running out of
the same memory. Peripherals were generally limited to a serial
line, the light pen, and a single switch (often a foot switch).

The CPU looked very much like a 16-bit PDP-8, which should be
almost trivial to simulate. The GPU would be a bit trickier,
as it would have to draw lines on the host's display. The real
problem, as I see it, would be how to have *two* simulated
computers operating simultaneously from the same memory. I seem
to recall a discussion on this list about how that would be
difficult, but can't recall the details.

Does anyone have any ideas on how this might be done?

I would be interested in doing it, as I just happen to have an
Imlac PDS-1D here, and would like have a simulator before I sell
the actual unit. I also have a complete set of documentation
with all schematics, plus some software.


A second system of interest is the CDC 6600. Again, the problem
as I see it is combination of a CPU and multiple PPUs (Peripheral
Processing Units). It also used ones-complement arithmetic,
which might cause difficulties. Does anyone have any thoughts
on these matters?

Alan Frisbie
Christian Brunschen
2015-04-11 21:18:50 UTC
Permalink
You're aware there's an emulator of sorts already in progress?

http://rottedbits.blogspot.co.uk/2013/05/imlac-emulator-progress.html

// Christian
Post by Alan Frisbie
I am only just getting started with SIMH, so perhaps I'm getting
a bit ahead of myself, but here goes...
A classic graphics system of the early 1970s was the Imlac PDS-1.
The display was a vector-stroke type, driven by a display list in
memory and continuously refreshed. It had a CPU for
communicating with a host (typically a PDP-10) and local
calculations, and a GPU (Graphics Processing Unit) for executing
the elements of the graphics display list, both running out of
the same memory. Peripherals were generally limited to a serial
line, the light pen, and a single switch (often a foot switch).
The CPU looked very much like a 16-bit PDP-8, which should be
almost trivial to simulate. The GPU would be a bit trickier,
as it would have to draw lines on the host's display. The real
problem, as I see it, would be how to have *two* simulated
computers operating simultaneously from the same memory. I seem
to recall a discussion on this list about how that would be
difficult, but can't recall the details.
Does anyone have any ideas on how this might be done?
I would be interested in doing it, as I just happen to have an
Imlac PDS-1D here, and would like have a simulator before I sell
the actual unit. I also have a complete set of documentation
with all schematics, plus some software.
A second system of interest is the CDC 6600. Again, the problem
as I see it is combination of a CPU and multiple PPUs (Peripheral
Processing Units). It also used ones-complement arithmetic,
which might cause difficulties. Does anyone have any thoughts
on these matters?
Alan Frisbie
_______________________________________________
Simh mailing list
http://mailman.trailing-edge.com/mailman/listinfo/simh
Timothe Litt
2015-04-11 21:20:44 UTC
Permalink
Post by Alan Frisbie
The CPU looked very much like a 16-bit PDP-8, which should be
almost trivial to simulate. The GPU would be a bit trickier,
as it would have to draw lines on the host's display. The real
problem, as I see it, would be how to have *two* simulated
computers operating simultaneously from the same memory. I seem
to recall a discussion on this list about how that would be
difficult, but can't recall the details.
Does anyone have any ideas on how this might be done?
There are a couple of approaches.

a) shared memory. Run two instances of simh, attach each to shared
memory. Issue is portable shared memory doesn't quite exist. Recent
discussion on the list was about making an abstraction layer.

b) Implement the machine as a "device", compiling it with the host.
SimH is perfectly happy with devices that execute instructions, although
things like PC history and single-stepping tend to assume one CPU. The
bigger issue is that you have to compile it with each host.

c) do (a), but with a network connection. A unix socket or localhost
TCP connection has plenty of bandwidth for an old graphics device.

The drawback to (a) or (c) is that you need to manually coordinate
booting the two instances - which a shell script can do.

(c) is the quicker to implement and most portable. (a) is the more
scalable.

You could do (c) in an abstraction layer and move to (a) later.

See the serial networking devices (such as pdp11_dup) for examples of
devices that work over a TCP connection to other simulator instances.

Also note that at least one of the VAX graphics devices has been
emulated. You'll want to use the same libraries.

Depending on where you divide commands and graphics and what transport
you choose, you might want to consider compression;

One's complement math is a solved problem. See the PDP-1.

Have fun.
Nelson H. F. Beebe
2015-04-12 00:16:07 UTC
Permalink
A second system of interest is the CDC 6600. .... Does anyone have
any thoughts on these matters?
There already is a simulator for that machine: see its entry at

http://www.math.utah.edu/~beebe/vm.html

where there is a link to a paper on it. I don't know whether the code
is available.

The problem for both CDC 6x00/7x00 and Cray systems is that the
software that supplied the operating systems (Scope, Kronos, ...) and
compilers for Fortran and Pascal (and for later, Crays, C) is unlikely
to be available (at least, legally).

I worked on a 6400 under both Scope and Kronos, and have fond memories
of them, because I could leave punched cards behind forever.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: ***@math.utah.edu -
- 155 S 1400 E RM 233 ***@acm.org ***@computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------
Loading...