NASA response to my FOIA request

I was pleasantly surprised today to receive email from NASA regarding my FOIA request. They sent me PDF files of recent editions (November 2005) of the manuals I requested on the HAL/S programming languages and compilers, which are used for the Space Shuttle software. Since these manuals are in the public domain, I have put them on a web page in case anyone else might be interested.

The next step will be to try to get the programming manual for the AP-101 computer, and perhaps the source and object code for the HAL/S compiler, which it might be possible to run on the Hercules mainframe simulator.

This entry was posted in History, Software, Space. Bookmark the permalink.

6 Responses to NASA response to my FOIA request

  1. Les Hildenbrandt says:

    Is that the AP-101 with magnetic core memory, or the AP-101S?
    It was amazing to me that in 1989 NASA was still using core memory.

  2. Eric says:

    I expect that any material I am able to obtain from NASA will more likely be for current flight hardware (including the AP-101S), rather than older hardware, just because they’re less likely to have manuals on the obsolete hardware such as the AP-101B readily available. However, I’d be happy to get information regarding either or both.

  3. Andy Johnson says:

    As far as I know the only difference between the AP-101B and the AP-101S is the speed of the processor and the amount of available memory. The limitations of the memory size were imposed by the linker, not by the HAL/S compiler.
    The HAL/S compiler was written in XPL, so you first need to port XPL from the IBM mainframe (360 and successors) to the desired target in order to run the compiler. Such ports have been done successfully for the Univac 1100 series and the IBM RS-6000/PowerPC running AIX. In addition to AP-101B target, there was a native IBM mainframe port (for algorithm development), a port to the ATAC-16M (used by JPL on the Galileo project), and a port to the Modcomp (used by JPL for the Deep Space Network). Also, a group at Nasa Langley translated the XPL compiler into Pascal to run the HAL/S compiler on CDC hardware.
    The AP-101B was based on the System-4pi architecture used in other space and military applications. However, unlike its predecessors, it used standard fixed point binary integer arithmetic (binary point to the right) instead of fractional arithmetic (binary point to the left), as was used on the earlier 4pi systems. It used the IBM mainframe floating point representation (scaled to 4 bit nybbles instead of 1-bit binary), so precision in single precision was an issue. However, double precision presented a problem, since the double precision divide took longer than the rate at which sensor data was arriving, so the instruction had to be replaced with a software divide algorithm. It is a 16-bit architecture (16-bit halfwords, not byte
    addressed) with limited direct addressing. The AP-101B (and the successor AP-101S) had to implement a “remote” addressing scheme to allow indirect addressibility beyond 16 bits. The AP-101S hardware just allowed for more usable bits in this scheme.
    The instruction set is highly non-orthoginal, and a lot of work went into the code generator in order to generate optimized code that also took up the minimum space, since both time and space were important on the AP-101B.
    I had a copy of the AP-101B manual, but recent flooding in our basement caused it to go into the dumpster. The “Principals of Operation” manual came from IBM FSD (Federal Systems Division) in Owego, NY. You might want to try them as a resource.

  4. Eric says:

    Thanks, Andy! I have the book on XPL and the source code, so unless Intermetrics or NASA made changes to XPL I should have that covered. However, I’d be perfectly happy to run the actual IBM mainframe XPL and HAL/S compilers, linker, etc. on the Hercules simulator. On the other hand, though, if I can get it ported to Linux that would be really cool!

    I wonder whether the actual PASS and BFS software can be obtained, or whether it is classified.

  5. Peter Flass says:

    (a bit late…)
    Dave Bodenstab has ported XPL for FreeBSD (http://www.bodenstab.org/), but he’s generating x86 code. If you want to run on Linux and generate 360 code, you could probably recompile the original XPL with his compiler. Although I have a reconstruction of the original SHARE tape here (http://www.cs.toronto.edu/XPL/xpl.zip), the actual SHARE version is now available.

  6. I was a software developer on Apollo (P12, P70-71, Servicer, etc.) while I was at the MIT Instrumentation Laboratory, a HAL/S compiler developer while I was with Intermetrices (Phase 3/4, Debugging system), and a tool developer that supported IBM/Loral/LockheedMartin/USA by constructing FSW development tools using XPL.

    I am in the process of trying to obtain access to the final HAL/S source code, tool code (HALSTAT, MAFGEN, etc.), and HAL/S Compiler code … with the aim of not only help to preserve it, but also to eventually try to port the HAL/S compiler to an x86 platform.

Leave a Reply