• Please review our updated Terms and Rules here

Floating Point Systems FPS-100 Found

cullyrichard

Experienced Member
Joined
Jun 11, 2024
Messages
132
Location
Massachusetts, USA
Hi all,

I think it's worth starting out with some background as this machine is quite complex. The FPS100 assembly language manual describes the FPS100 in this way: The Floating Point Systems, Inc., FPS-100 is a peripheral device that operates independently from but under the direction of a host processor. It contains its own internal memories and 38-bit floating-point arithmetic units which are interconnected with multiple data paths, allowing parallel internal data transfers. Its arithmetic units, the floating adder and floating multiplier, are designed as pipelines (operations are performed in independent stages permitting new operations to begin before old operations are complete). This parallel processing capability and pipeline arithmetic permit the FPS-100 to perform high speed array processing.

The Floating Point Systems family of machines, the AP120B and FPS100 are largely software compatible and found themselves in many of the same applications, The key difference is that the FPS100 is quite a bit more compact and slightly slower.

The FPS family of machines had some very significant applications, those sold with PDP11 interfaces often found themselves used for high performance compute tasks, often in classified environments where other machines were not practical. These machines were also heavily used for oil and gas exploration on a variety of hosts and in research environments. The Data General interfaced machines (both the AP120B and FPS100) were used frequently in medical applications. GE Healthcare's CT8800 and CT9800 machines used the AP120B and FPS100 as their primary reconstruction processor, employing a custom card called the Backprojection Image Reconstruction Processor or BIRP, do do the arctangent and other tasks associated with image reconstruction. the CT9800 was often upgraded with two FPS100s to accelerate the reconstruction process. Ohio Nuclear / Technicare CT machines used the AP120B on a PDP11/34 host, but little is known about these machines. We have spoken at length with the engineers from GE and the FPS100 project lead, and much of this information is thanks to their efforts and willingness to help.

There are presently 2 known FPS100 systems, one FPS100R, Serial number FA00721, a GE CT scanner secondary unit that lacks the BIRP, used by GE Healthcare as their development unit and an FPS5100 (the FPS5000 series was an FPS100 that supported a coprocessor) in germany. The FPS5100 is configured quite a bit differently and relies on some condensed boards to support the coprocessor. There are a few FPS AP120Bs around, two in China and one on ebay at an absolutely ludicrous price and an additional two in a museum. There may also be another attached to a Raytheon host. Efforts are underway to build a new backplane and chassis to support the PDP11 Interface as detailed on the Usagi Electric Youtube channel.

The story of how FA00721 ended up in my posession is wild. The machine was sold as surplus by GE in the 1980s as the CT9800 matured to the CT9800 Quick, the CT9800 Quick uses a custom reconstruction processor. This machine was purchased by one of the engineers at GE and found its way through several hands before finding its way to New York. We were able to identify the machine and contact it's present owner. We then worked out a deal and I drove several hours to pick it up. The machine includes the very special FPS Data General interface card, which was developed primarily for medical applications.

The next task is to attach it to my DG Eclipse S/140. If you have any software or are interested in helping us port the PDP11 software, I'd love to hear from you. We're also looking for more FPS machines to support the revival efforts. If you have any hardware or software you're interested in parting with. Please do get in touch.

Thanks!

Cully
 

Attachments

  • IMG_8511.jpeg
    IMG_8511.jpeg
    4.4 MB · Views: 66
  • IMG_8508.jpeg
    IMG_8508.jpeg
    4.7 MB · Views: 62
  • IMG_8529.jpeg
    IMG_8529.jpeg
    5.6 MB · Views: 59
  • IMG_8531.jpeg
    IMG_8531.jpeg
    6.9 MB · Views: 63
  • IMG_8536.jpeg
    IMG_8536.jpeg
    4.5 MB · Views: 65
I worked at the Medical College of Wisconsin and I supported a FPS-100 in the Physiology department in
the early 80s, which is how the software and some of the documentation was saved.

It got from Milwaukee to Saint Louis through me. I bought it from the GE engineer who had a company
developing third-party software for the GE CTs, along with an Eclipse in a rack. That rack went through
three more ccmp-ers before the AP ended up with the current owner.

It is also known that MIT had four or more FPS systems that were used in audio research.
 
If @Nakazoto doesn't yet have a plan to recreate a backplane, I sure would love to work out a way to complete my backplane tracer to facilitate recreating one by means of tracing yours, assuming you're amendable. I emailed David regarding his Data 620 and mentioned my first cut at a backplane tracer, thinking that might be the easiest way to generate the backplane netlist for that machine, but like many of my projects, it remains unfinished. Seems like building up a number of these boards and getting the firmware finished would kill at least two birds with one stone.

 
If @Nakazoto doesn't yet have a plan to recreate a backplane, I sure would love to work out a way to complete my backplane tracer to facilitate recreating one by means of tracing yours, assuming you're amendable. I emailed David regarding his Data 620 and mentioned my first cut at a backplane tracer, thinking that might be the easiest way to generate the backplane netlist for that machine, but like many of my projects, it remains unfinished. Seems like building up a number of these boards and getting the firmware finished would kill at least two birds with one stone.

We have, for the most part, a backplane schematic for this machine, however we're missing some key elements, there's a 4274 card that we have yet to identify that would be useful to sort out. I can get some card dimensions to you potentially as soon as this evening. These cards have either 200 and 240 pins
 
See Usagi's Youtube channel:


Pretty sure he'll be interesting in this.
:)
I’ve been actually working extensively with Usagi electric on this project! Unfortunately, due to this FPS100’s use in a CT scanner, there are many elements of the design and construction that we don’t fully understand, there are no existing schematics for S/N 721 (this machine).

it is impractical to convert the interface to PDP-11. Instead, building a new backplane is the best path forward unless another FPS100 appears intact. This machine will be used as a test platform with my Eclipse S/140 and we intend to use it to check cards with the FPS100 test program once we have a better understanding of the system.
 
I’ve been actually working extensively with Usagi electric on this project! Unfortunately, due to this FPS100’s use in a CT scanner, there are many elements of the design and construction that we don’t fully understand, there are no existing schematics for S/N 721 (this machine).

it is impractical to convert the interface to PDP-11. Instead, building a new backplane is the best path forward unless another FPS100 appears intact. This machine will be used as a test platform with my Eclipse S/140 and we intend to use it to check cards with the FPS100 test program once we have a better understanding of the system.
I can't wait to see this on his channel. Love watching his projects.
 
It has been some time since my last update on this machine. I am patiently waiting to take delivery of the host eclipse, which is expected to happen sometime next month. In the meantime, we have learned more about the CT machines that utilize the FPS100. We do not have software; however, we have a few maintenance manuals for the AP120B that define the host-array processor interface. To the Eclipse, the array processor looks something like this:
1758149081132.png1758149116681.png
We believe that the FPS100 follows a similar scheme. We should be able to test this theory and engineer debugging tools to load each register, read data back, and possibly execute code. We should then be able to verify that all of that is correct.

for the FPS100, AP0 is device code 54, AP1 is device 55, and AP2 is device 56. This differs significantly from the AP-120B. We are unsure why they chose to do this. Based on a schematic review, we suspect the interface works very similarly, if not the same.

Now all there is to it, is to learn some Eclipse assembly and write some debug tools!
 
The FPS100 schematics have been scanned and are available at bitsavers.org. This was covered in a different thread, apologies if you already knew :-). Let me know if I can help by possibly answering any questions.
 
As for actually running code on the AP, do you have any AP ucode, or the assembler?
As Al points out, we're missing the LNK100 and LOD100, the installer, for some reason, removes these fortran files from the tape. The tape damage certainly complicates matters further. A further complication is that this FPS100 is configured for DG hosts, as it is significant to the development of CT technology, I will not be converting it to any other host. As the RSX software doesn't do much good, we are slowly working on porting software and writing test routines for the DG Eclipse host. Looks like the host machine will be delivered in about two weeks and I'm hopeful I can do some more work then!
 
A full writeup on today's work:

First, I verified that the cables were properly attached by buzzing the connection between the FPS100 and the DG S/140 I/F, then I moved the DCH wires to the appropriate place below the I/F card. I then checked the address in the I/F card, started the machine (FPS100 and DG machine) and crossed my fingers.

Once things were verified and didn’t burn I wrote a small diag program that loads and reads internal registers in the FPS100 based on the AP120B manual (it should be the same, just a different device code). I seem to be able to read *something* however I can’t write.

I grabbed a spare 612-4448 AP I/F card and swapped it for the one in the FPS100, no change. The AP I/F is a reasonable thing to suspect because of the way that the interface works, no change was noted. So I suspect a line driver on the DG interface card has died

More work to follow, but I can’t figure out if it’s a me problem or there’s a real issue.

IMG_9464.jpeg
 
Last edited:
Tl; dr: we’ve made a lot of good progress on the FPS restoration projects. There is a fair amount left to do.

Here’s the overall roadmap the way I see it, I’m very open to tweaking this and adjusting if anyone has input!

What we have done:

Located a large number of spare parts and ordered them with the intention of building new backplanes

Spoke to several FPS alum who helpfully donated documentation and expertise.

Acquired one of two known FPS100s, verified power supply operation and did basic observations Standalone.

Attached it to a Data General Eclipse via a barely documented 4360 interface.

Decoded the 4360 interface in the eclipse via schematic review, testing and observation. large parts of the basic functionality are now understood.

Decoded parts of the 4448 Array processor interface in the FPS100, specifically the REGSEL logic.

Deposited and read back data from registers within the FPS100 and proved that communication is occurring on the backplane.

Sent commands to the FPS100 to get it to run. Verified that the FPS100 appropriately responded and ran.

Proved that register select operations were in fact selecting their intended registers.

What’s left to do by rough order of difficulty:

Finish mapping Programmed I/O and verify our existing work on the machine.

Figure out how to deposit things into the machine with programmed IO and do basic math to verify that the machine is indeed working.

Create old school bit position/definition diagrams for the registers in the 4360 and 4448 to make programming and decoding easier.

Figure out how DMA works and load words via DMA from the host machine.

Work on a Linux AP120B/FPS100 cross compiler for speed and ease of testing. Write some standalone management code to run the FPS100 from the eclipse via a modern Linux machine at first.

Run AP diags as described in the existing PDP11 code

Looking ahead, we have more to do:

Once we’re in a good position with the FPS100 project I’d like to get work done on the AP120B:

That roadmap software wise is a fair bit more straightforward. The AP120B interface on any machine is a pretty simple beast. Mechanically we have a lot to do on that machine

Replace power supply and front panel, the schematics and board plan exist.

Create a new chassis based on the existing AP120B machines

Recreate missing boards including 4280 interfaces, CB expan and others. Consider building other interfaces. (Modcomp, Raytheon, or Datacraft anyone?)

Build cabling to adapt the AP120B to any machine that has an external host interface.

Should any other machines come our way we will adapt accordingly!
 
Last edited:
I think it is once again time for an FPS100 update

WE RAN CODE ON THE FPS100

With the help of @venos ' brilliant Nova/Eclipse compiler, he wrote a monitor program that allowed us to easily modify the internal registers of the FPS100. From there, we wrote a simple program to add 16 to 1/3rd. The returned value was 16.33333.

Unfortunately, it appears as if a bit has been lost somewhere in the machine; it's unclear what or where, and more troubleshooting is required. One of the next major steps will be to build a set of extension cards to troubleshoot. Additionally, we discovered a stuck bit in one of the original RAM cards. I have also checked some more of the FPS100 spares.

The next steps will be to add more functionality and write an FPS100 assembler

We also found an HP interface to FPS machines (AP120B or FPS100), and we intend to figure out how that is intended to work and run some sort of machine on the HP1000F. This is a long-term project, and I intend to conduct it with the AP120B project.

The remaining steps will take some time to complete. I expect more developments soon.
 
Back
Top