• Please review our updated Terms and Rules here

SIMH/os8diskserver/PDP-8

Can I have some of your luck please Mike?!

Youv'e got the assembly of the 5-boards - they will only go together one way round with the overhead connectors.

Check out here http://www.vandermark.ch/pdp8/uploads/PDP8/PDP8.Hardware/slot-modules.jpg. Note that there is an error on the website though - he has got two off M8310's instead of one M8310 followed by one M8300 labelled.

I have also found the source code for OS/8 here http://www.ibiblio.org/pub/academic/computer-science/history/pdp-8/os8/os8.v3d/ (plus a load of other stuff). The FORTRAN IV compiler and run-time source is also here - so I am just debating building the whole lot from sources and seeing what happens. I have found the bit of code where it tests for the FPP and EAE hardware being present. I also found a document containing patches to force the runtimes to not use the FPP and/or EAE hardware if it was present.

Nice work Mike.

Dave
 
Dave, send my your address and I put a little in an envelope and mail you some. Sometimes you hit the ball with meat of the bat.

There sure is a lot of interesting stuff on that Ibiblio site. Thanks Mike
 
But.... the real prize came at the bottom of the box. A set of M8340/41 EAE cards. The M8340 has a stamped AUG 13 1974 on one side and a circle sticker OCT 75 OEM on the other. The M8341 has a stamped DEC 30 1974 on one side and a the same sticker on the other.

The CPU and EAE cards are very sensitive to revision levels. Hopefully the EAE cards that you have match the revision levels of your CPU boards.

I need to cut a trace and add a wire on one of my EAE cards because they changed an over-the-top finger from a ground to a signal.
 
Is there any way of telling which boards work with which, or do I just plug them in and hope for the best? I'm hoping that since all these boards came from the same place, that they were meant to be used together. Sounds like you had some experience with this? I was looking through my copies of schematics and I don't have any for the M8340/8341. More to look for. Mike
 
Info on the EAE is here - http://bitsavers.trailing-edge.com/...anual_Volume_2_Internal_Bus_Options_Jan74.pdf . Engineering Change Orders (ECOs) for the 8/E are here - http://bitsavers.trailing-edge.com/pdf/dec/pdp8/pdp8e/PDP-8E_ECO_LOG_Dec74.pdf. Plenty of meat there!

A large part of restoring these beasts is learning your way around the documentation! Bitsavers is a tremendous resource but, as noted, there's a lot more spread around the web. Lots more available now than there was in the "good old days".

Jack
 
Mike,

I have sent you a PM with my address so you can put some of that luck in an envelope for me :)!

Not a reference to cricket there?

To answer your question from earlier - all the connectors linking the EAE boards to each other, the timing generator and the major register cards should be all the same and it shouldn't matter which way round they go. If you look at the PCB tracking on the back you should find that pin A is wired to pin A, pin B to pin B and so on.

Dave
 
Today I was trying to write some Fortran IV code with double precision numbers USING SIMH. Each time I compiled it, I was told "CAUTION -- NO DP". My question is, do I have to SET something in SIMH to make DP work or doesn't DP work with SIMH? So far can not find any information on this in the documents. Thanks Mike
 
Today I was trying to write some Fortran IV code with double precision numbers USING SIMH. Each time I compiled it, I was told "CAUTION -- NO DP". My question is, do I have to SET something in SIMH to make DP work or doesn't DP work with SIMH? So far can not find any information on this in the documents. Thanks Mike

Try adding 'set fpp enable' in your SIMH .ini file, this will enable the FPP8A emulation in SIMH. Assuming that is the FPP you are looking for.

Don

Code:
PDP-8 simulator V4.0-0 Beta        git commit id: 488e7478
sim>
sim> sho cpu
CPU     idle disabled
        32KW, EAE
sim> help fpp
FPP help

FPP device SET commands:

set FPP ENABLE                  Enables device FPP
set FPP DISABLE                 Disables device FPP

The FPP device implements these registers:

      FPACE      12
      FPAC0      12
      FPAC1      12
      FPAC2      12
      FPAC3      12
      FPAC4      12
  FPP CMD        12
  FPP STA        12
      APTA       15
      APTSVF      3
      FPC        15
      BRA        15
      XRA        15
      OPA        15
      SSF        12
      LASTLOCK   12
      FLAG        1
sim> ex fpac0
Invalid argument
sim> set fpp enable
sim> ex fpac0
FPAC0:  0000
sim>
 
The OS/8 Language manual at http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/dec/pdp8/os8/AA-H609A-TA_os8lang_mar79.pdf on page 1-27 of the FORTRAN IV section identifies the caution message and what it relates to (it is produced by the FORTRAN RUN-TIME SYSTEM looking for the FPP-12 hardware with the double precision option that it can't find).

As Don has pointed out - you can add FPP support to SIMH - but you will need at least V3.9 of SIMH (if memory serves me correctly) to do this - FPP support was only added recently I think.

You can identify in the OS/8 languages manual which FORTRAN functions require the FPP-12 - as they have a double asterix (**) next to them (see CSIN - Complex Sine Function - on page 13-13 as an example).

Can I just point out the obvious here though - you will be able to write and run software using the double precision (and COMPLEX) data types on SIMH - but not on your real PDP-8/e (as you don't have the FPP-12 hardware).

Dave
 
Thanks for the information on SIMH, I'll try it a little later. IS there a user's manual for SIMH? I have a PDP8_doc.pdf and sim_doc.pdf, but do not remember seeing anything about SET FPP ENABLE. Gee.. I just noticed that you use a HELP FPP (a show?), interesting I'll have to try that also. To date my PDP8.ini file is very sparse.

Code:
SET CPU EAE
SET CPU 32K
SET CPU IDLE

ATTACH RK0 ./rk0.dsk
ATTACH RK1 ./rk1.dsk

BOOT RK0

Looks like I have SIMH version 39-0. I'll find that OS8 Language book you refer to.

What is the FPP-12 hardware, exactly? Over the last few days, I have replaced the electrolytic capacitors on my new found M8340/41 cards and installed them in my PDP8# as instructed. After energizing, there was no smoke or fire, so I proceeded to load OS8 and it worked as before. Next I thought to redo all the MAINDEC routines to see if those still worked. I successfully ran (for at least an hour each),

D0CC Adder Tests
D0DB AND test
D0EB TAD test
D0FC ISZ test
D0GC DCA test
D0HC JMP test
D0IC JMS test
D0JC JMS test
D0LB EAE test1
D0MB EAE test2
DHKEA EAE extended
DHKMA Extended memory & checkerboard test
DHMCA Extended memory (did not run time share)

I figured that the M8340/41 cards were the ones I needed to use this extra Floating point hardware, so I thought I'd write some FP routines in SIMH first and then test them on the PDP8E. Am I thinking correctly? Mike
 
More or less.

The EAE is a simple arithmetic unit which speeds up straightforward fixed-point multiply/divides as a peripheral to the pdp-8 processor. In doing this it extends the pdp-8 instruction set a little. Fortran IV should run a little faster using it (not a whole lot faster on average since there are generally lots of non-multiply/divide operations, but a bit) but with the same capabilities. The FPP is a different beast entirely. It is really a completely separate processor which shares memory with the pdp-8 and runs in parallel with it and once it is enabled it executes its own arithmetically-orientated instruction set. (It has a range of housekeeping instructions as well as arithmetic). Fortran IV is targeted to it and if there isn't one it runs an FPP emulator on the pdp-processor. There's no real reason that DEC couldn't have emulated the whole range of FIV capabilities but they chose not to, so some functions as per Dave's comments are only available on true FPP hardware and depending on the instruction mix everything runs considerably faster.

As a by-the-way, once the pdp-8 has offloaded a job to the FPP it can go off and do something else (slower because of shared memory) until the FPP calls for attention. So the pdp-8 then becomes more like an I/O processor handling the terminal, peripherals and file I/O and passing the number-crunching to the FPP.
 
Last edited:
As with all good software - the documentation tends to lag behind the code. The SIMH release notes are the things to look through.

Just type HELP at the SIMH prompt and you should get a list of commands with the release are running.

The M8340/M8341 cards are the EAE (Extended Arithmetic Extension) add-on. They are NOT the cards you will need to use the double precision and complex data types within FORTRAN. For this you need to add the dedicated floating point hardware with double precision - which seems to be the FPP-12 card set.

The hardware cards that you have (EAE) will run the same software as without the EAE cards - just a bit faster. On startup the FORTRAN IV run-time system (FRTS) checks for the presence of the physical EAE card and will switch to using a different set of libraries than if the physical card isn't present. This gives the speed improvement - it is doing in hardware part (or all) of what would be done in software.

The same is not true of the double precision and complex FORTRAN data types which appear to check for the presence of the FPP-12 hardware cards and (if not present) give you a message but will carry on and give you silly results. Why they didn't put these software libraries in (possibly as an overlay) is left to the software archaeologists to determine.

The above is how I read the documentation anyhow.

You just beat me to it bobaboba...

Dave
 
OK, Getting a little smarter with each post. So, the EAE is sort of a early math co processor? and the FPP-12 CPU is another set of cards, what are they labeled as? Maybe I should be on the look out for some of those? You mentioned that FRTS looks for a different library, other than FORLIB? Do I need to have another library on the system disk? Or is it just a different part of FORLIB? Sorry for the 20 questions format. Mike
 
As Dave and Bob have discussed, the EAE is really just an extension to the PDP-8 instruction set. It just adds a few functions by extending the same ALU that the PDP-8 would normally use. I guess you could think of it as an early math coprocessor, but it's very much embedded in the same PDP-8 CPU board set, as you can tell from the over-the-top connectors.

FPP-12 is a huge rack full of cards for the PDP-12. FPP-8A is a two-board set, as I recall, for the 8/A. Both are extremely hard to come by. I can almost guarantee someone (maybe me someday?) will emulate one with a new board before I could get my hands on one, but maybe you'll get lucky!
 
As others have said, the FPP-12 was a whole rack of boards. It was originally made for the PDP-12, but could be attached to a PDP-8/I, PDP-8/L, PDP-8/e, LINC-8, or classic PDP-8.
 
OK, I was sort of looking forward to doing some complex math stuff on this machine. Maybe I can do it decoupled. Anyway. I think my PDP8E is in pretty good shape. I'm going to write a few programs to check my own and the machine programming prowess. I am also going through my spare cards, all of which need some trouble shooting and repair, probably will spend some time on those, so as to have some backup stuff, to address any pending trouble. Then I also found a M863, which looks like a parallel I/O card. I suppose, the machine tool was connected via this, to the PDP8. I'd like to get this card working. I have a few ECM motors that I'd like to have under program control. Maybe the next project. Thanks to everyone that helped out with the project, I'm going to have some fun with it and I'll keep you up on what becomes of the PDP8E, Thanks a million, Mike
 
Back
Top