Hide 2025 change notes?
2025-01-20
9 new documents for the library today — well, new and old —, a mixed bag this time.  Here are Mike's comments:
  • Two Skylab-3 checklists
  • Delco booklets for Apollo 15 and 17
  • Section 4.2 through the end of the OWS Design Data Document for Skylab (sadly the guy I got this from has no idea where everything before section 4.2 went, but he's pretty sure he never had them).
  • Apollo 10 Commentary, which is largely transcripts from the mission
  • Mission J1 G&N Error Analysis
  • Case History of the Apollo Guidance Computer - we already have a scan of this, but it's one of those that was ravaged by OCR text replacement
  • The final report on the assembly and test of five IRIGs with size R-4 ball bearings
2025-01-19
18 additional documents for the library today, all Apollo Soyuz Test Project (ASTP) related.  Here's Mike's categorization:
  • The CSM-111 + Docking Module Systems Handbook
  • A set of pages defining AGC erasable memory program ASTP-76
  • A bunch of checklists and revisions thereof
2025-01-18
And eight documents again today!  Here's Mike's summary of them, as very lightly edited:
  • A Yul System Program Sheet, onto which AGC developers would write out code changes before they were punched onto cards
  • A small set of reference cards meant for use with Sundial D
  • A later Apollo JDC Index than the one we currently have in the library
  • A collection of Systems Support Training reference cards from Raytheon (from the same group as this earlier document we had), including:
    • A booklet showing all of the AGC control pulses
    • A booklet showing standard circuits of the AGC Buffer Box and Program Analyzer Console
    • Two versions of a reference card showing how AGC banks are mapped into rope strand select signals
    • A pair of cards showing the punch tape format for the KSTART and Computer Test Set
SUNDIAL, you may recall, was Block II AGC software used in Command Module system tests.  We unfortunately do not have a copy of SUNDIAL D, but we do have a copy of the next-later release, SUNDIAL E.  Among the interesting information included in the SUNDIAL D "reference cards" mentioned above is SUNDIAL D's downlink list.

I've been forced to be somewhat creative in inventing titles and dates for these documents, since only one of them is dated and most of them have no titles.  And in one case, I've claimed that the "author" of the document was really just the guy who likely assembled the bits and pieces of it into one place.  Well, too bad!   It is what it is.  Or course, if anybody has greater insight than I do — which perhaps would not be that difficult —, send me whatever corrections seem appropriate.

2025-01-17
Mike has sent eight new documents for inclusion in the library, consisting of 3 Instrumentation Lab documents and 5 sets of reference cards. 
2025-01-13
  • I realize belatedly that I've been handling fixes to Virtual AGC stupidly.  There's a problem-reporting system associated with our GitHub repository, but if someone has directly reported a problem to me I've just tried to handle it directly with them, and if that's successful there's never any problem report generated.  Why that's dumb is that since there's no paper trail on it, there's no good way for anyone to know what problems have been fixed in what revisions of Virtual AGC, or even if they've been fixed at all, and hence no way for them to know if it's worth updating their Virtual AGC installation.  Even I don't know, half of the time.  D'oh!  Please create problem reports, even if you're going to communicate with me directly.  If you don't, then I'll have to do it for you, and I'm really lazy so I don't want to!  For myself, I'll try to make a better effort on this, until it loses its urgency and I forget all about it.
  • I realized this while dealing with problems reported directly to me that the LM_Simulator component of Virtual AGC doesn't work in the latest version of Tcl/Tk, and that Tcl/Tk doesn't work at all in any recent version of Mac OS.  While researching the fixes that had to be made, I realized I had no way to backtrack through earlier versions of Tcl/Tk to see if my fixes would break LM_Simulator in them or not.  It's not the same thing as the problem-reporting issue in Virtual AGC, of course, but it pointed a big "j'excuse!" finger directly at me anyway.  Speaking of which, issues #1234 and #1235 (the Tcl/Tk/Mac OS problems just mentioned) have been dealt with, and you should check them out if you've experienced either problem.  Not only that, but it turns out that up to now the installation instructions for Windows haven't mentioned that Tcl/Tk needs to be installed (issue #1237).  So that's fixed too.
  • Some corrections were made (issue #1238) in the drawing-tree drilldown for AGC model 1003565 and to the guidance-system drilldowns containing it (principally, mission AS-202).
  • Okay, enough of the meae culpae!  Mike Stewart has sent over a few new documents for the library, all of them Pratt&Whitney reports on Apollo CSM fuel cells.

Aside:  I don't know if that's correct Latin or not, since I've forgotten all the Latin I learned 50 years ago, but it's more fun than "mea culpas" as most google hits recommend.  See here.  I think "mea culpas" actually makes the most sense, though, on the notion that "mea culpa", in spite of its appearance and history, to English speakers is nowadays a single English word rather than two Latin words.    As for the French, I have even less excuse for "j'excuse!" since I don't recollect ever learning any French at all.  But I digress.

Don't worry, these change-logs probably won't be packed with issues corrected in the software the way today's post is.  After all, if you're interested you can look at the issue-tracking system yourself.  I'm just excited about the notion right now, so I can't help it.
2025-01-12
The tic-tac-toe game mentioned yesterday has now been integrated into the VirtualAGC GUI program, and is one of the choices of available mission.  A write-up has also been included in the "Quick Start" section in our website's introductory page where various things that can be done without a learning curve are covered.
2025-01-11
I got a terrific note just now from folks who have created their own apps for the AGC+DSKY.  If my heart hadn't hardened so much over the course of time, I'm sure it would bring a tear to my eye since it's one of the things I always hoped people might do with Virtual AGC.  It has taken a while, but now they have!  I'll just directly quote a portion of the email, lightly edited, rather than summarizing it:
... our little project is wrapping up successfully.  It has been an absolute joy to program on this computer.  We'll be presenting a talk about bare-metal programming of the AGC at next weekend's Vintage Computer Festival here in Switzerland.  I'll send you the video once they post it.



The tic-tac-toe game is fully functional and available here.  The + and - buttons switch between one or two player mode.  The reset button starts a new game. ...  There's also a random die (D6) application in the same directory that serves as a good demo of minimal DSKY I/O, alarm suppression, and random number generation.
I'm sure I'll be writing a lot more about this later, but I thought I'd post about it now just in case anybody is in a position to attend the festival and this might prompt them to do so.
2025-01-10
  • I've noticed that the description on our developer page about how to use the our library functions agc_xxxx() to create your own AGC emulator in place of yaAGC inaccurately describes how the critical function agc_engine() is supposed to be used.  If you actually used my instructions — and somebody was! —, it would have worked but the timing wouldn't have synchronized with real time very well.  That's fixed now.  You may wonder why you'd want to do such a thing anyway!  It's the kind of thing you'd want to do if, for example, you were making a model control panel which embedded an AGC emulation within it rather than as a separate program.
  • Mike has sent over 3 new documents for the library.
  • The page concerning Verilog-based digital simulation of the AGC electronics is undergoing substantial rework due to the issues I mentioned a couple of days ago.  I mention it not to call those changes to your attention — they're not ready yet! — but rather to point out that the page isn't currently fully reliable.  Alas, my workflow doesn't allow me to easily post the changes I mentioned above without posting the incomplete Verilog-page changes as well. 
2025-01-08
Two more documents for the library today from Mike, both interesting, and one them very exciting:
  • "Apollo Soyuz Test Project (ASTP) Manual".  This is one of the series of books in our library, published by Delco Electronics, seemingly one for each mission, that provide elaborate technical summaries of the flight software and hardware subsystems of the CM/LM guidance systems.
  • The LVDC Equation Defining Document (EDD) for AS-501 (i.e., Apollo 4).  What's so exciting about this is that it's the very first Saturn V EDD we've gotten, in contrast to the Saturn IB EDD already in our library.  Apollo 4 was the very first Saturn V mission, so I suppose we can expect that the EDD had a few teething difficulties.  For example, the memo that formally approved this EDD warns us not to take the EDD too literally, because "since [publication], 45 engineering change requests and 49 engineering change proposals have been processed in regard to the 501 flight program".  Still, I'm not going to turn up my nose at it!

There have also been various corrections to the main website page and the download page, thanks to Gavin Eadie.

2025-01-07 The new year is starting out with a flourish if not necessarily a bang.
  • Mike has sent over a few new docs for the main document library and the shuttle library.  Check them out!
  • Having had the chance to look at it in some detail after mostly ignoring it for a long time, I have come to realize that Virtual AGC's installation instructions and graphical-interface applications (such as the simulated DSKY and the telemetry monitor) had rotted somewhat over time.  While still mostly functional, they had nevertheless degraded from "acceptable" to "positively crummy".  This was partially due to neglect on my part.  But it was also partially due to the relentless march of time, over the course of which operating systems had evolved, and software libraries which I had depended upon had been obsoleted and replaced by other versions of those libraries that didn't work quite the same way.  Then too, there was the availability of 4K displays for desktop systems, with the consequence that software not prepared for 4K had acquired very, very tiny user interfaces.  The upshot of all this is that I have spent a fair amount of time revising all of the graphical user interface (GUI) code for Virtual AGC programs, so that these programs now look fine on all of the Linux/Mac/Windows systems to which I have access, with either "normal" or 4K displays.  To support the possibility of high-DPI displays, these programs now all rely upon a new environment variable (AGC_SCALE) which can be assigned a number such as 1.5 or 2.0, the default being 1.0, by which the sizes of all of the Virtual AGC user interfaces are new automatically scaled.  The same scale is applied to all Virtual AGC programs, but doesn't affect any non-Virtual-AGC programs.
  • Another thing is the transcriptions we've provided of AGC/DSKY electrical-schematic drawings into computer-aided design (CAD) files for use in the open-source KiCad EDA system.  When those transcriptions were done back in 2018 or 2019, KiCad v.5 was still a new thing, whereas nowadays KiCad v.8 is current and v.9 is in development ... but the format for the schematic files was 100% changed at v.6.  While the new versions of KiCad can still read my old v.5 transcriptions and convert them to the new format, as always with these things the conversion isn't guaranteed to be 100% perfect.  Mostly; but not quite.  So I've put in quite a bit of work — recall, or be informed, that there are about 140 transcribed drawings, most of them with multiple sheets — doing the manual adjustments to make sure those conversions are indeed exactly right after all!
  • And then there's our Verilog-based digital simulation of the AGC electronics, based on the CAD transcriptions I just mentioned.  Well, it turns out that the Python scripts used to process the schematics in order to produce the needed Verilog source-code files don't understand the new format of KiCad's schematic files!  So Verilog simulations will be on hold for a while until I fix up those Python scripts.  Hopefully that'll be in the not-too-distant future, but I haven't started on it yet.
  • And speaking of Python scripts, most of our Python scripts are written for Python 3, but a few older scripts based on Python 2 have persisted, since it has always been possible to install both Python 3 and Python 2 on your computer and have them coexist in harmony.  Or rather, it had been possible to do that until recently.  Some newer operating systems like Ubuntu 24 not only don't install Python 2 in their default configuration, but don't allow you to install Python 2 at all, not even as an option.  Or at least not without circumventing the steps they've taken to stop you from doing it, and thus taking the chance of breaking your system in the process.  Apparently, that lack of Python 2 bothers nobody but oddballs like me.  The bottom line is that all Python 2 scripts in Virtual AGC have to be converted to Python 3.  I've done some of them so far.  Others will take longer.
  • And yet one more thing!  Eight or nine years ago, tired of supporting all of these various computer platforms (Windows, Mac OS, FreeBSD, Solaris, ...) which I never use personally if I can help it, I got the bright idea of dropping direct support for them, but instead providing Virtual AGC as a virtual machine (VM) that could be downloaded and run in hypervisors such as VirtualBox on any of these platforms.  And the VM worked great, I think.  Unfortunately, after some point I stupidly forgot to continue providing updated versions of Virtual AGC for that VM.  Yikes!  So the VM had become very out-of-date.  Not only that, but I've also found that since it was now based on such an old operating system (32-bit Ubuntu 14.04), I no longer could update Virtual AGC for the VM even if I got my motivational ducks in a row.  Virtual AGC simply requires a more-modern environment than 10-year-old 32-bit Ubuntu in the old VM to build and run.  Solution?  A new VM!  I've replaced that old VM with a completely new feature-packed VM that not only has more capabilities, but also by design can be very-easily updated without my having had to prepare such updates for them in advance!  In other words, users of the new VM will be protected from my future indolence after this burst of energy on my part has dissipated.  The key is that the new VM doubles as a very stable build machine for Virtual AGC, a capability which the old VM did not have, due to having been pared down to its bare essentials.  All of this stuff is thoroughly written up on a completely-revised and simplified download page, which has thrown out almost all of the old, useless stuff that's no longer supported, while hopefully better illustrating the use of the new. 
  • An added bonus is that the download page now includes something lacking up to now, namely build-instructions for Virtual AGC on Mac OS Sequoia that will (probably) work with any other recent versions of Mac OS too.

Another way of looking at most of the mumbo-jumbo above is that I want the new VM to be as perfect as humanly possible, and to provide as much of the Virtual AGC functionality that I enjoy on my own computer as it possibly can, without any of the hassle on users' parts that I have to endure for myself.  And to do that, I had to make sure that everything in Virtual AGC that was no longer up to my standards (as minimal as you may think them) was perfected at the same time.  The extent to which I've succeeded is always debatable, I suppose, but I'm very pleased with the result.

Hide 2024 change notes?
2024-12-22
I'd now consider the build instructions for Virtual AGC on Windows as working again, subject to the constraint of being limited to Windows 11 (and probably Windows 10, but that's untested).  It's not just the instructions, of course, but the source code as well.  None of which will work on any earlier version of Windows.  Moreover, any previous Windows environment you may have set up in the past for building Virtual AGC on Windows is now completely obsolete and useless.  Sorry about that, but it's all upstream from me, and there's nothing I can do about it unless I have a lot more influence than I think I do.

There have also been changes related to the Mac OS build, but those are only tested on Mac OS Monterey, and known not to work as-is on (say) Mac OS Sequoia.  As for the in-between versions Ventura and Sonoma, who knows?  Hopefully we'll have Sequoia instructions in the not-too-distant future.

There have also been some unrelated improvements to the VirtualAGC GUI that runs the AGC/AGS simulations for most of us who haven't customized the experience or are using Orbiter/NASSP, but I don't suppose they're of such significance that anybody would be tempted to rebuild the entire system just to get those improvements!  The most-visible improvement is that the various visual components of the simulation (DSKY, DEDA, Telemetry, ...) are now spread across the desktop for maximum visibility rather than being piled atop each other so that you're necessarily forced to manually rearrange them.
2024-12-20
Mike Stewart has sent in 15 docs for the library; doing his end-of-year cleanup, I suppose!  They're all postflight reports of one kind or another for Apollo 9-15, mostly by the mission control Retrofire and Guidance officers (RETRO and GUIDO).  Mike comments, "The Apollo 12 GUIDO report is particularly interesting, in my opinion -- it has a lot of good detail on the lightning strike, and an interesting writeup at the end called "How to Break the Optics", which describes a rare Colossus/Comanche bug that we used to think was either a Virtual AGC or NASSP bug."  To which I note that it's good that there are some bugs I'm not personally responsible for!

On a separate issue, I accidentally discovered that Virtual AGC can no longer be built on Windows from the instructions on our Download page, because the Msys development environment I advise you to use apparently no longer exists.  Of course, anyone who still has Msys installed on their build system is still fine, I hope.  Msys has been superseded by the extremely similar Msys2 development environment.  But "extremely" similar is not quite similar enough to work correctly for a very complex system like Virtual AGC, because there's some breakage I don't yet know how to deal with.  Hopefully I'll be back with a solution for that soon.
2024-12-17
Three new documents added to the document library, for Skylab missions and ASTP.
2024-12-16
In some way no longer clear to me, the graphical interface for our usual DSKY simulator (yaDSKY2) has become nasty and smudgy over the years, which has probably contributed somewhat to people's desires to create their own DSKY simulators and bypass yaDSKY2 altogether.  I've reimported into yaDSKY2 the graphics from our original DSKY simulator (yaDSKY), with the result that the interface is sharp and clear again ... at least, relatively speaking!  Which isn't to say that an alternate DSKY mightn't be nice to have.  More on that in the future, I expect.

Speaking of inexplicably failing user interfaces, our VirtualAGC GUI interface that is optionally used to run an AGC simulation with the user's choice of peripheral devices has also deteriorated somewhat on some platforms in terms of the layout of the widgets in the interface, though it has remained functional and I haven't worried about it too much.  One problem on Mac OS which has annoyed me is that when Mac OS automatically enters its so-called "dark mode" at night, most of the text in the VirtualAGC GUI disappears!  This is apparently due to some lovely color-palette thing in which text that the programmer — me! — has explicitly specified as black is rendered instead as white.  White text on a white background, of course, is not extremely readable.  Thank you, whoever upstream from me is responsible for that gift!  In the latest version of the VirtualAGC GUI in our software repository, code has been added to exempt it from Mac OS's dark mode, thus restoring nighttime readability.  (This has no effect on similar dark modes in Windows or Linux.)

By the way, if you do use the new VirtualAGC GUI, you may also notice some new DSKY interface-style options ("Mac" and "Mac/2") that are grayed-out.  Ignore those for now.
2024-12-14
Rose Brown has sent in a new Apollo 17 document and five ASTP documents for posting in the library.  Check them out.  (Thanks, Rose!)
2024-11-02
Mike Stewart has sent over the Saturn V Flight Manual for SA 206 (Apollo 11), now posted to the document library.  Thanks, Mike!

Personally, I've been mostly occupied the last few months with the AP-101 assembler for the space shuttle flight software, as I mentioned in a previous posting.  There's light at the end of the tunnel on that now, though the assembler itself is not quite ready for prime time yet.

At some point, an AP-101 linker will have to be written to combine the object-code files produced by the HAL/S compiler and the AP-101 assembler into executable AP-101 load files.  Frankly, I have no enthusiasm nor relevant experience or knowledge for writing the linker myself.  I have documented the reverse engineering about AP-101 object files (here), since understanding that format is a necessary step not only for writing a linker, but for writing the assembler as well.  If there's anyone interesting in shouldering the burden of writing an AP-101 linker, drop me a line.
2024-10-09
Bill Miller has sent over one of the missing volumes of the "Shuttle Flight Operations Manual" (namely 8A, "Main Propulsion Systems"), so I've added it to the Shuttle Library.  Thanks, Bill!
2024-10-01
Mark Schulman has sent me a document called "Saturn V Step-by-Step", written by himself (thanks, Mark!), which I've posted to the document library.  It's based on the very interesting notion of a complete timeline — within the limits of reason — of the "life" of a Saturn V rocket, with the Apollo 11 mission as the baseline but with notable events from other missions described as well.  The first events on the timeline are the CM system tests, about 9 months prior to launch, while the final event is the S-IVB impact on the lunar surface.  But just saying that doesn't do much justice to the level of detail.  Some events I noticed, for example, include the specific programs running on the AGC and the time at which the LVDC is shut down.  There's about 70 pages of timeline overall.

The document isn't actually a great fit for the Virtual AGC library, simply because we only provide archival documents that are unchanging and can be preserved as-is for eternity.  Whereas Mark's document will presumably change over time, and our library isn't really set up for the possibility that documents are evolving on an ongoing basis.  Nevertheless, Mark wanted to provide it to the world, in a way that could allow him to get some expert feedback on it, and posting it seemed to be the most straightforward means at my disposal to help with that.  Alas, I cannot provide any useful feedback myself, since I'm not an expert on the Saturn rocket in any sense, but I know that some of you are.

The rest of you, enjoy!
2024-09-11
I don't really have any "news" to report today, but just want to blow off some steam about what I'm working on now.  Which is appropriate for an anniversary of 9/11, I guess.    And for the fact that in some ways this page is more of a blog than a change log. 

A couple of weeks ago I reported that the HAL/S compiler for the Space Shuttle's flight software had reached at least a preliminary level of usability.  But I also mentioned that to be really useful, you'd also need a linker for IBM AP-101S object files and an emulator for the AP-101S CPU.  (Recall that the Space Shuttle's "general purpose computers" were IBM model AP-101B at first, and then later on were model AP-101S.)  What I failed to mention is that in addition to source code in the HAL/S higher-level language, there's also a lot of Shuttle flight software written in AP-101 assembly language, and thus you'd also need an AP-101 assembler in addition to the HAL/S compiler.

Well, given that I've written assemblers for the Apollo AGC, AGC, and LVDC, I thought I could knock out an AP-101B/S assembler in short order.

Wrong!  Wrong, wrong, wrong, wrong!

While no documentation for the AP-101B/S assembler has survived (let alone its source code!), in so far as I'm aware, I came to the conclusion that the assembly language is based very closely on IBM's assembler for System/360 Basic Assembly Language (BAL).  Yes, the CPU instructions are somewhat different, but I'm referring to the language syntax, pseudo-operations, and so forth.  In fact, I suspect that the original AP-101 assembler was probably created by simply replacing the code-generation portions of the System/360 assembler, and leaving the scanning and parsing portions intact.  That's not immediately helpful to me, of course, since I don't have a copy of the System/360 assembler's source code, nor could I use it if I had it since it would be in copyright limbo.  Besides which, such an assembler would likely run only an IBM 360 or similar.  On the other hand, multiple versions of the documentation for the System/360 assembler are floating around online (copyright or not), and can essentially be used as-is, even if we cannot repost copyrighted documents here at Virtual AGC.  Beautiful!  The most up-to-date version I'm aware of is this 1972 version.

The problem is that this assembly language is monstrous.  Not the CPU instructions per se, but the fact that it's a macro language that has multiple characteristics that make it awful to parse.  In fact, I can't get my head around how to parse it, and every time I do seem to do so, I realize 5 minutes later that I'm just kidding myself because there's some special case I had forgotten about or didn't know about in the first place invalidates whatever approach I had concocted.

Normally, this wouldn't be terribly concerning, because macro features of an assembly language are often used only minimally, as an afterthought.  For example, the LVDC assembly language (for the Apollo Saturn rocket) is a macro language, but a nice, gentle one, with macros seldom appearing in LVDC flight software.  Not so for the Space Shuttle flight software!  Its coders must have been steeped in System/360 assembly language lore, and used every feature of that macro language, everywhere.  You'd be hard pressed to find a single flight-software assembly-language file that didn't depend intimately on its macros.  Macros have to be considered right up front in implementing an assembler, not as an afterthought.  More than half of the assembly-language manual is devoted just to macros.

I'm tempted to continue this rant, but I think you get the idea:  There might be some delays involved in creating this assembler, which by the way, I call ASM101S.  There's a surprisingly-well organized page describing it and what I'm doing it with, but who knows how long it will be before that page is anything other than "under construction" or the assembler itself is just a useless shadow of its final version?
2024-08-26
A couple of documents were added to the main library, and a couple more to the Shuttle library, all kindly sent to me by Gavin Eadie.  (Thanks, Gavin!)  All were different revisions of documents we already had — well, with a couple provisos I won't bore you with — so perhaps we've saturated the market on documents!  (  I jest:  We haven't.)  Gavin tells me that Draper Labs simply sent them to him on request.  Alas, that was a long time ago, and the times have changed so much that there's no chance whatever of that happening these days, or perhaps ever again.  So I guess that sometimes the Good Old Days really were better than today.  Not all that often, but sometimes, in some ways.
2024-08-21
For quite some time now I've been working compilers for the HAL/S computer language.  Indeed, for the last six months or so I've been working on no less than my third attempt, having abandoned the first two attempts when they were useful but still incomplete in one way or the other.  Recall that while HAL/S is basically a dead language now, it is the principal language in which the Space Shuttle flight software was written.  And while we have the source code for the original HAL/S compiler used for the Space Shuttle, that source code is written in an extended version of XPL, which itself is a dead computer language.  So in order to compile the HAL/S compiler, I first needed to step back and write an XPL compiler.  Or more accurately, a compiler for the extended but largely undocumented version of the XPL language in which the HAL/S compiler is written.

Today, I'm announcing the first release of that XPL compiler (which I call XCOM-I) and the HAL/S compiler (which I call HALSFC), both of which can be run on Linux, Mac OS, or Windows.  Their dedicated pages give installation and usage instructions, as well as my usual too-much-of-everything descriptions of what's going on:
The Shuttle page has been reworked somewhat as well, to accommodate this new situation.

Neither compiler is perfect, there are known bugs, and HALSFC is still missing a couple of compiler passes that deal with simulation data, but I'm quite pleased with both compilers nevertheless.

Don't get terribly excited about this — as if anyone would! — until you understand the limitations.  XCOM-I should be usable as a general XPL compiler, true; it's a Python program that's basically an XPL-to-C translator, so it can be used on any platform having Python and a reasonably-compatible C compiler.  However HALSFC, while also running on Linux/Mac/Windows, nevertheless faithfully duplicates the functionality of the original HAL/S compiler.  Which means that HALSFC outputs IBM AP-101S object-code files.  (Recall that the onboard computers of the Shuttle were model AP-101S.)  So unless you simply want to examine the object code created by the HAL/S compiler, you'd also need an AP-101S linker and emulator.  A compiler alone isn't enough.  But give us time!  Rome wasn't built in a day, or even a year.
2024-08-18
Still more docs for the library, from Mike again.  Quite a meaty selection.
  • Revisions A and B of the LM-1 Systems Handbook. We previously only had the change pages for revision C in the library; so with these additions we go from having one partial revision to three full revisions. Revision A pertains to the original manned configuration of LM-1, and revisions B and C correspond to the unmanned Apollo 5 configuration. The revision A scan was sent to us by dak4482 (thanks!).
  • Volumes 1 and 2 of the CSM-014 Apollo Operations Handbook. As far as I can tell this is our first complete volume 2 for a Block I spacecraft.
  • The CSM-103 (Apollo 8) Systems Handbook
  • A new scan of the LM-6 (Apollo 12) Apollo Operations Handbook. We've had a mediocre scan of this document in the library for a long time; this one should be much better.
  • Apollo 17 LM Console Handbook. This is the first LM Console Handbook we've gotten our hands on, and it's a very interesting document. Particularly relevant to VirtualAGC is the PGNS section starting on pdf page 113.
  • LSB Notes of Interest, dated June 1970. Not a handbook in itself, but these notes were included as a section in the LM Systems Handbook. Lots of interesting notes (go figure!) about the LM.
2024-08-14
Mike Stewart sent over a few new documents for our library page.  As usual, here's his excellent summary:
  • Engineering Analysis of the CSM-109 Apollo 13 Mission
  • Saturn IB/V - Instrument Unit Technical Manual - Navigation, Guidance, and Control System Description
  • CSM ECS Study Guide
  • Saturn Workshop Internal Configuration - this document shows all of the various panels and their locations in Skylab
  • CSM/LM Spacecraft Operational Data Book Volume VI: CSM Experiments Data Book for J-Missions
  • AS-201 Mission Rules

The 2nd item is really just a single volume of the multi-volume IU Technical Manual, but from my point of view it is far and away the most-import document in this latest stash.  While we've already had other volumes of the IU Technical Manual in our library, this is the first of them that contains significant information regarding the LVDC, its flight program, and its relationship to the launch vehicle.  There are flowcharts.  There are explanations of various items you find in the flight software.  See chapters V and VI in particular.  For any of you trying to wade through the LVDC flight program source code, this should be a real help.

2024-07-03
Having noticed the non-shocking fact that our GitHub software repository has so much stuff in it that no novice could navigate it, I've added a "brief" tour of it to the FAQ page.  Whether it's brief enough to actually be of assistance to anybody is questionable.
2024-07-01
  • Added 38 documents to the main library, all of them astrionics memos from 1965 through 1969, related to the Saturn launch vehicle, and of course its computing system.  I say that they're all "memos", but a few are really substantial (unnumbered) documents enclosed in memos.  Mike sent me these nearly 3 months ago, and I've just been so busy that I simply lost track of how much time had passed while I sat on them.  Sorry!
  • Added 3 documents I got (today!) to the Shuttle library.  These documents all relate largely or entirely to what are called Simulation Data Files (SDF).

Surprisingly, that's actually all tied together.  The reason I've been too busy to look at the Astrionics memos I mentioned is that I've been completely consumed by Shuttle-related work I've been doing.  As I've mentioned in other updates here, I've been working on a compiler (which I call XCOM-I) for the XPL programming language as it was extended in an undocumented fashion by a company called Intermetrics.  The reason is that Intermetrics wrote a compiler for a computer language called HAL/S in this extended form of XPL.  That HAL/S compiler, called HAL/S-FC, was needed to compile the flight software for the Space Shuttle, since that flight software was written in HAL/S.

And the reason I have time today for those memos is that just yesterday I reached a milestone on XCOM-I:  Not only can it now compile HAL/S-FC, but HAL/S-FC can itself compile HAL/S programs, and produce object code from them!  Or at least, it can compile the one HAL/S test program I throw at it.  The HAL/S test program I throw at it is called HELLO.hal, and I'll let you guess what it does.  Unfortunately, even though HAL/S-FC can compile HELLO.hal, what you get out of that process is (of course!) a program that runs only on one of the Space Shuttle's IBM AP-101S computers, not on your personal computer.  And lacking any way to run AP-101S programs at the moment, there's therefore no way yet to actually run the compiled HELLO program.  The same would be true, of course, if I compiled the Space Shuttle's flight software.  But progress is being made, one step at a time!  I'm hoping that Dan Weaver, who as I've mentioned before has written a very nice IBM 360 simulator, will be writing a (very similar) AP-101S simulator.  At that point, we could run the compiled HELLO or other compiled HAL/S program and really start cooking!

As to why any of that is relevant, as promised, to the SDF-related documentation added to the Shuttle library today ... well, that's another mouthful-and-a-half of explanation.  HAL/S-FC, the HAL/S compiler, actually consists of seven separate "passes" or "phases", each of which is a stand-alone program.  The seven stand-alone programs are run in succession to perform a complete compilation.  Of course, you the user don't really have to worry about all that nonsense if you're not interested in it, since you simply experience HAL/S as a single command, and that command worries about all of the details of fitting the separate passes together.

Nevertheless, when I say that XCOM-I can compile HAL/S-FC, I mean that it can compile each of the seven separate programs comprising HAL/S-FC.  The AP-101S object code is not spit out until the fifth pass, which is called PASS2.  (Go figure!)  That leaves two compiler passes (called PASS3 and PASS4) which I haven't run yet.  PASS3 and PASS4 are entirely devoted to production of Simulation Data Files (SDF).  SDFs were what were used as input to the digital simulation system that simulated running the Shuttle flight software.  They're quite fancy.  I'm told by the author of PASS3 and PASS4, Craig Schulenberg, that never has any other compiler of any kind produced such complete data in support of simulation.

My own desired next step in the compiler development is to run the compiler passes related to SDF generation.  Simultaneously the SDF documents appear in the Shuttle library.  Nifty!  Kismet!  Whether that's truly what I do next is TBD, but that's my whim at the moment.

By the way, this is all being written up on the XPL page of the website, basically in real time as I'm working on it.  Which means that it's a poorly-organized mess at the moment.  Still, it's there if anybody wants to read it.  I hope that it won't be too much longer before the compiler is debugged to the point where I can bless it as completely working, and proceed to put the documentation in order.  Of course, wishes don't always come true.  And anyone who's familiar with my writing style — just take a gander at this blog entry! — will realize that it still may not be very readable once I've reorganized it.  But at least it will be more readable than it is now.  I hope.

2024-05-24
I updated the Block I mini-tutorial to demo running the SOLARIUM (and SUNRISE) self-tests.
2024-05-21
Mike released the reconstruction of MANCHE72R3 today.  That's the software for the Command Module AGC flown on Apollo 13.  It inherits the same Cosmic Spoonerism — like that term? — suffered by the Comanche 72 reconstruction I mentioned a couple of days ago:  I.e., it has a couple of places where a couple of instructions can be swapped without damaging either the functionality or the memory-bank checksums, and without any guidance from other related software versions to tell us which order is more-likely to be the correct one.  Ultimately, the Cosmic Spoonerism isn't something to worry about, but resolving it requires somehow getting additional info which we don't have now.  At any rate, both versions are now written up on the Colossus page, and properly incorporated in the document library, as well as being supported in the VirtualAGC GUI.

Of less interest to anybody but me, I expect, I've just hit a nice little milestone with the XPL/I compiler — I call it XCOM-I — I've been working on.  You may recall that I'm doing that so that I can eventually use XCOM-I to compile the Intermetrics compiler (HAL/S-FC) for the HAL/S computer language in which Space Shuttle flight software was written, and then use HAL/S-FC to compile the flight software itself.  Not that I'm anywhere close to that!  But the milestone is that I'm now able to "bootstrap" one of the old XPL compilers from back in the day.  Not Intermetrics's XPL compiler, mind you, because the source code for that one has been lost.  Rather, for an XPL compiler I call XCOM45, last built (as far as I know) in 1976 at the State University of New York.  By "bootstrapping", I refer to a process used by programmers who write a compiler for a particular computer language in that same language, and want to use that compiler to build its own source code.  Obviously you can't do that on day one, since you can't build anything from literally nothing, so there's a series of intervening steps needed to build a more-and-more competent compiler that eventually can compile itself.  That's "bootstrapping".  In the case of my milestone, the bootstrapping steps look like this:
  1. Use XCOM-I (my XPL/I compiler) to compile the source code for XCOM45, giving me an executable version of XCOM45 that runs on my Linux computer.  Call that version XCOM45-linux.
  2. Use XCOM45-linux to again compile the source code for XCOM45.  Since the original XCOM45 ran on an IBM 360 computer, this gives us an IBM 360 version of XCOM45.  Call that version XCOM45-360.
  3. Use XCOM45-360, running in an IBM 360 simulator, to compile the source code for XCOM45 yet again.  This gives us yet another IBM 360 version of XCOM45.  Call that version XCOM45-360A.
  4. If all went well, XCOM45-360 and XCOM45-360A should be byte-for-byte identical ... and they are.  Voilà!  XCOM45 can compile itself, 100% accurately.  But more importantly for us, XCOM-I must have been working pretty well to make that happen.

If you have read that description closely — and who wouldn't have wanted to do that? — it barely mentions an important fact that I've neglected up to now in this blog, which is that our software repository now contains a very lightweight IBM 360 simulator called sim360.  This was not written by me, or anyone at Virtual AGC, but was instead written by Dan Weaver and barely mentioned on his own website.  (See if you can find sim360 on the website.  Give yourself a cookie as a reward if you can.)  There are several reasons it's significant for us:  A not inconsiderable advantage it has over full-scale IBM 360 simulators such as Hercules is that you don't have to know anything about operating an IBM 360 to use it.  Nor does it require any potentially-copyrighted software from (say) IBM that would prevent integrating it with open-source software.  But perhaps best of all, it's so lightweight that it probably technically can be incorporated into (say) Orbiter or the VirtualAGC GUI relatively easily, and can be adapted (if any adaptation is needed) to run IBM AP-101S code rather than IBM 360 code.  Admittedly I'm looking down the road a bit, but it seems to me as though sim360 provides a superior technical path to running Space Shuttle flight software in a spaceflight simulator.  As for the legality of that path (or any path) under ITAR, I make no claims.

2024-05-19
The reconstruction of the source code for Comanche 72 is now in the software repository.  It has a few more uncertainties than usual, in the sense that there are some alternate instruction sequences that have identical functionality while unfortunately also having identical memory-bank checksums.  That being the case, it's hard to say that one of the alternatives is more likely to be valid than the other.  The problem, as observed in the movies, is Choice.  While I don't think these alternatives are anything to worry about particularly, I'll give it a few more days of simmering in the background before writing up any extended description.  For now, I'll just say that this is not exactly the version which flew on Apollo 13 — that version was Comanche 72/3 — but it's definitely zeroing on the flown version.
2024-05-14
Well, that went freakishly fast!  Mike has sent over the reconstructed source code for Comanche 67, so it's also available to you now in our software repository.  And I've changed yesterday's write-up of Colossus 67 accordingly.
Aside:  Ego compelled me to at least roughly try to figure out how close my own reconstruction effort in advance of having dumps from physical memory modules had been.  Counting just the substantive changes — i.e., things which would have affected the core-rope image stored in the memory modules, vs things that would not have, like changes to program comments or global spelling changes for program labels — and counting only the number of source-code files containing differences between Mike's and mine, I find 68 files with no differences, 16 with differences, and 1 about which I'm undecided.  Of course, not all of these files are of comparable sizes or complexities.  Nor did I count how many of them were unchanged relative to Comanche 55 (Apollo 11).  In other words, I got 80% of the files right and 20% not-so-right.  Which means ... well, precisely zip.  I'll give myself a blue ribbon for participation.
Separately, Neil Fraser and Charles Chapman have sent in some corrections for the AGC Assembly Language and Colossus pages respectively, which I've now incorporated.  Thanks, guys!
2024-05-13
I've finished the write-up for Comanche 67 in its current (i.e., no-source-code) state, as well as providing support for it in the VirtualAGC GUI wrapper.
2024-05-12
I haven't gotten around yet to the document-library backlog I mentioned last time.  Sorry to everyone who has sent me stuff to take care of, but I assure you it hasn't been forgotten!  I've been so laser-focused on the XPL/I compiler I mentioned previously that it's been hard for me to even look to the right or the left.  I blink and whole days have vanished.

However ... Mike has sent me the core-rope dumps for Comanche 67, i.e., the command-module AGC software for Apollo 12, and there's no way I could reasonably put off taking note of it.  Long-time readers may recall that I had spent a considerable amount of effort myself on trying to reconstruct Comanche 67 — indeed, you can still see my now-obsoleted effort in the comanche067 branch of our software repository — before giving up on it as beyond my capacity, and indeed perhaps beyond anyone else's capacity either.  Still, I had made some not-insignificant progress before doing so, and it will turn out to be interesting (only to me, I suppose) to see how successful I had been with the changes I did make.

Speaking of which, having Comanche 67 is useful not merely in that it's one of the (few) remaining AGC flight-software versions that had still been missing, but also in that it's potentially a useful missing link in reconstructing Comanche 72 (Apollo 13), which is yet another of the missing versions.  Mind you, I'm not promising that; I'm just saying it's an interesting possibility, given the tremendous success Mike has had in reconstructing missing versions (yay!), even if I have not (boo!).

But that's leaping too far ahead.  For today, note that all I've done so far is to post the full Comanche 67 binary file, so that anyone who's sufficiently knowledgeable and energetic can run it in our AGC emulator immediately.  And I've added the dumps of the individual rope modules to our Rope-Module Dump Library, which admittedly is of only academic interest when you have the full, known-correct binary in hand.

There's still much to be done, though, such as writing up the details on the Colossus page, making Comanche 67 available in our VirtualAGC GUI wrapper for the AGC emulation, and of course, reconstructing the source code!  Ego would lead me to hope that the source code of my attempted reconstruction might help out there.  But I doubt that that would fit in with Mike's workflow anyway, and likely he'll do a better job without it unless he uses a little of it to salve my tortured-poet ego. 

But I digress.  This is a significant acquisition, and I wanted to get it out into your hands as quickly as I could!  Many congratulations to Mike Stewart and thanks to the anonymous collector who gave him access to the rope modules.
2024-04-28
I once again have a backlog of material people have sent me, which I haven't gotten around to posting in the library yet.  Real Soon Now, I hope.

I've been fully occupied with HAL/S compilation (for Space Shuttle flight software) the past couple of months, which partially explains the delay.  Anyone reading these postings with a view toward what I was doing (versus less-me-centered Virtual AGC developments) may have noticed that I've been concerned with HAL/S compilation for about the last 18 months.  It's a hard nut to crack, and I've been through several abortive but non-negligible attempts to crack it.  First I developed a HAL/S compiler that could be used also as an interactive HAL/S interpreter or emulator; it was quite useful, but never got to the point of supporting 100% of HAL/S's features before I stopped work on it for maintenance-difficulty reasons.  Then I decided to port the original HAL/S compiler (HAL/S-FC), which was written in the mysterious, obsolete language XPL/I, to Python, so that it could be run on modern computer systems; I succeeded, but only for the 1st pass (of the compiler's 7 passes), and stopped working on it because the effort for the first pass had been so great that I couldn't bear the thought of porting any more of the passes.

Now I'm working on yet a third approach, and I'm feeling quite good about it because I passed a major milestone on it this morning.  As I say, the original HAL/S compiler was written in the XPL/I language.  Actually, everybody (including Intermetrics, which wrote the software) says that it was written in XPL, but it's not really true.  There was indeed a computer language called XPL which was defined in a book called A Compiler Generator by McKeeman et al.; the book also contained the complete listing for its XPL compiler (XCOM).  But the truth is that Intermetrics had extended the language, so a standard XPL compiler couldn't compile it any longer, and in particular couldn't compile HAL/S-FC.  Intermetrics instead had their own separate compiler for it.  Intermetrics continued to call this extended language "XPL", but I insist on calling it "XPL/I" to make the distinction clear:  An XPL/I compiler can compile HAL/S-FC, but a mere XPL compiler cannot, and there are no surviving XPL/I compilers that anybody I've talked to is aware of.

What I've been working on lately is an XPL/I compiler, which I call XCOM-I.  It can still compile standard XPL, but the goal is to compile full XPL/I.  XCOM-I itself is written in Python and translates XPL/I to C, and hence is completely portable.  The milestone XCOM-I reached this morning was to compile the original XPL compiler (XCOM) listed in A Compiler Generator, and then to use that original XCOM to compile some other XPL programs (listed in A Compiler Generator also) into correct IBM System/360 object-code.  It was a hard-won milestone, and while it isn't as good as compiling HAL/S-FC itself would be, I'm still happy!

In celebration, I've updated the Shuttle page accordingly, and in particular have made visible a page about XCOM-I that I've been working on in the background for a while.

I would observe that HAL/S-FC can compile HAL/S to either IBM System/360 object code or else to IBM AP-101S (i.e., Shuttle GPC) object code, both of which are based on IBM Basic Assembly Language (BAL).  Therefore, it seems likely that the eventual technical path to emulating execution of the Shuttle flight software, and in particular to integrating it into spacecraft-simulator software, will be to emulate execution of IBM BAL.  A BAL-to-C translator would be even better, I think.  It would mean that Space Shuttle flight software could technically be integrated into spacecraft-simulation systems simply by incorporating its C code ... assuming, of course, that that weren't a regulatory issue vis-à-vis ITAR.  Though the fact that the C code couldn't possibly execute on an AP-101S, and could be completely obfuscated versus the relative clarity of BAL code, would speak in its favor ITAR-wise (I assume).
2024-03-22
Fixed several bad hyperlinks.  Thanks to Rob Schofield for pointing out the problem.
2024-03-06
Mike Stewart has finished reconstructing the AGC source code for the Skylark 48 program (missions Skylab 2, Skylab 3, Skylab 4, and Apollo-Soyuz Test Program ASTP) from the dumps of the physical Skylab 2 core-rope memory modules he had managed to acquire a bit over a month ago.  I've written it up accordingly on our Colossus page, but here's a direct link to the syntax-highlighted version of the source code.

Among other material used in the reconstruction — such as the Artemis 72 source code, the TRW "programmed guidance equations" document, and so on — is something I've added today to the document library as the "Skylark Erasable Memory Map", even though it actually has no title (or any other metadata) associated with it.
2024-03-05
I guess that being swamped with such a huge number of documents from the backlog I finished processing yesterday made me a bit more careless than usual.  For one thing, I failed to note that the COLOSSUS MEMO #48 added a few days ago was not part of the backlog, but had been sent separately by James Pelster.  Thanks, James!  As for the backlog itself, that had come from the large document caches accumulated by Cooper Lushbaugh and Don Schmidt, so thanks are due to them as well for creating these caches.  Of course, the fact that the documents were in these secondary caches means that I don't really know where most of the individual documents came in the first place, and thus cannot credit whoever preserved them and/or scanned them.  An exception is that Don mentions having gotten documents from the Tomayko collection at Wichita State University's library, and if you look at the recently-added documents you'll find that some of them have been stamped or watermarked as belonging to that collection.  James Tomayko, as you may recall, among many other things wrote the ubiquitous NASA history called Computers in Spaceflight, and apparently many of the reference materials he cited in that book ended up in the Wichita State archive.  Maddeningly, the one reference he cited (IR-60-7, "HAL/S-360 Compiler System Specification") that I really need didn't end up in the archive. 

But I digress!  Today, I've added a new document sent along indirectly by Ryan Callaway (thanks, Ryan!), namely the "Lunar Module Pilots Handbook", which despite its title, is a curious compilation of "procedures and notes ... which should be studied by Grumman personne1 to better acquaint themselves with the Lunar Module Spacecraft".
2024-03-04
I finished up incorporating the document backlogs to the Shuttle library and the lesser updates to the main document library.  I.e., the pending document-queue is at least temporarily empty now.  But in the process of doing that, I found out that the libraries had accumulated ~250 PDFs lacking a text-search layer.  So I've added those text-search layers to (hopefully) all of the PDFs on the site that had been lacking them.  Unfortunately, since those previously-unsearchable PDFs have all been modified, the "recent additions" section of the library pages now shows them as newly added to the libraries, even though many of them were in fact added some time ago.  Sorry about that, but there's nothing much I can do about it at this point.
2024-03-01
Continued reduction of the backlog of the Shuttle library.  Just one addition to the main document library, namely the formerly-missing COLOSSUS MEMO #48.
2024-02-28
Continued reduction of the backlog of the the Shuttle library and the main document library as described in the preceding entry.
2024-02-23
As part of the reduction in the document backlog I mentioned a couple of days ago, several new documents have been added to the Shuttle library and a smaller number to the main document library.  (Doesn't seem like much, I know, but I have to examine and reject about 20 documents for each document I add to one or the other of the libraries, and I have about 10K documents left in the queue.  In other words, it's a bit labor-intensive.  This process will continue for some time.)
2024-02-21
I've been directed (thanks, Don Schmidt!) to a large cache of mostly Shuttle-related documents.  I'm looking at processing these for our Shuttle Library, while at the same time resuming processing of the already-existing backlog of Shuttle documents that has been on hold for the last 9 months or so.  In addition to containing lots of documents that aren't particularly on-target for our goals here — after all, Virtual AGC is concerned basically with Shuttle flight software, rather than being comprehensive Space Shuttle site! — this new cache also has a lot of overlap with content already in the library.  Getting a workflow going on this that avoids cluttering the library with endless reams of duplicated documents is challenging, but I'm making progress.  Today I'm just posting the first 11 docs I've looked at
2024-02-12
I found out today that the email address (info@sandroid.org) given here on our website has been non-functional for over a month.  So if you have attempted to contact me/us and got no response ... well, I apologize for the inconvenience, but whatever email you sent me has vanished like the wind.  Please resend and try not to think bad thoughts about me.  Or just resend and keep thinking bad thoughts, whichever you prefer.
Aside:  Apparently, there's a newish policy, in which when you renew your domain every year, you have to validate the identity information given to the registrar.  As opposed to the last 20 years or so, when you didn't have to do any of that.  At least for my service, the validation process involves an exchange of emails to my personal email account, and the validation emails to my personal email address never arrive.  Which I had no way to even know about, since I didn't know I was supposed to get any validation emails anyway.  Not responding to the emails results in the domain being "locked" or "suspended", so that even though you've paid for the domain renewal, the domain simply doesn't work.  Hence no website for that domain, and no emails to it either.  Fun, huh?  And since my paycheck doesn't depend on any of this, I'm unlikely to discover the problem for quite a while; about 5 weeks of lost service in this case.
2024-01-29
The Skylark 48 ropes mentioned in my last post, I'm told, have now been flown in Orbiter/NASSP with both successful rendezvous (between the CM and the Soyuz) and successful reentry.  (Thanks, Nik Beug!)  Although you have to take that statement with a slight grain of salt, because it appears that the simulation had (past tense) a discrepancy in the timing of the landing radar interrupt, which had been apparent as only a minor issue in Artemis (Apollo 15-17) simulations, but had become a major issue in Skylark.  Fortunately (thanks Mike Stewart!), this was fixable in our AGC emulation.  But the upshot is that you only want to fly Skylark with the latest version of our AGC emulator code (yaAGC), now in the GitHub repository as of today, since earlier versions will experience major issues.  Similarly if you want to fly Artemis simulations, except that the only problem you'll experience in Artemis with the older code is apparently the occasional annoyance of an ignorable 1210 error.
Aside:  Here's a hint to anyone thinking about creating their own open-source project:  Maintenance is a bitch!  In my case, I rarely hear of issues until literally decades after I wrote the code having those issues in them, at which point I'm scarcely qualified to fix them.  (And that's putting it charitably.  After all that time, the code may as well have been written by a deranged stranger.)  My advice is to get a team like Mike and Nik your side, so that you won't have to hear about the problems until they're already fixed.  Good luck with that, by the way.  Just my 2¢.
2024-01-25
We now have core-rope memory dumps of the SKYLARK 48 program.  As you may recall, SKYLARK 48 was the AGC software used in the Skylab 2, Skylab 3, Skylab 4, and Apollo-Soyuz Test Program (ASTP) missions.  Pretty sweet!  It's getting to the point where there are very few missions for which we don't have the corresponding AGC software.  You can see the full write-up, including the credits, on our Colossus page.

As usual when we've gotten AGC software via physically dumping memory modules, we don't automatically get the software source code.  Rather, the source code needs to be recovered via a process that may or may not succeed, but that hopefully will in the near future.  In the meantime, what the dumps do give is executable code, so you can run SKYLARK 48 right now in our AGC emulator.  Presumably it will also be available at some point in the full Orbiter/NASSP simulator, but I suppose that will also take some time to unfold.
2024-01-14
Since I've posted nothing substantive about Space Shuttle flight software in a while, I suppose I should give you an update on the progress towards presenting it to you in some useful fashion.  There's good news and not-so-good news, though I think the good outweighs the not-so-good.  There are three somewhat-independent aspects:
  1. Actual original flight-software source code and/or object code.  I now have some of the source code and all of the GPC (IBM AP-101S) object code in hand, in some version which I don't care to specify at the moment.  Does that sound a bit weak and wishy-washy, given my normal tendency to bombard you with every detail and every speculation that crosses my fevered brain?  You're right, it is!  The problem is that I've received this material on condition that I preserve it and can personally access it for compiler development, but that I not show it to anybody else.  Or at least, not yet.  Nor do I have any timetable on when I will be able to make to do so.  Moreover, this confidentiality obligation is on top of whatever ITAR restrictions may limit distribution.  Besides which, I can't even get any legal action started on the ITAR front until I'm given permission to show the source code to the attorneys.  Why have I teasing you like this, given that I can't give you access to any of it?  I still think it's good news.  I have reason to believe that I will be able to make the material available at some point — at least if you're a "U.S. Person" for ITAR purposes — even if I don't know when that will be.  And I think that I would want to know about it if I were the one reading this update rather than writing it. 
  2. HAL/S compiler/emulator development for compiling/running the flight software source code.  Anyone who has been following my posts on the topic will recall that there have been two independent but somewhat-complementary lines of attack:  first, a completely-homegrown HAL/S compiler/interpreter/emulator; and second, a port of the original HAL/S compiler from its now completely-obsolete XPL language into the modern Python language.  Each of these approaches is partially working and partially unimplemented.  But both are on hold at the moment, due mainly to the fact that their development is very exhausting; I've simply burnt myself out on it.  Plus, the compilers aren't entirely useful without the missing portions of the flight-software source code I'm still awaiting.  So I'm taking a break from HAL/S compiler development right now.
  3. Distribution roadmap.  The question looming over all of this is how to distribute executable flight software in some manner that's useful for use in spacecraft simulators such as Orbiter, if there are ITAR restrictions?  Personally, I would argue that if object code is distributed in a form that cannot be executed on the original Space Shuttle software, and cannot be reverse engineered in such a way as to make it so-executable, then it should be fine.  For example, the original HAL/S compiler was able to compile flight software into object code either for an AP-101S target or for an IBM 360 target, and IBM 360 object code would seem to me to be ITAR compliant.  However, not everyone agrees with me.  It has occurred to me, though, that ultimately it's not my responsibility nor that of the Virtual AGC Project to distribute code that's executable on a spacecraft simulator anyway.  If/when I'm at liberty to distribute the flight-software source code to ITAR-qualified individuals who are involved in spacecraft simulation, they can use they can use their own judgement to produce object code they deem distributable without ITAR rish, or not.  In other words, it's largely Somebody Else's Problem.

On a different note, Mike has sent along a new stash of Apollo documents, which I've added to the main document library.  As usual, here's his summary:

  • LM-3 Apollo Operations Handbook, Volume II. This goes along with the Volume I that we've had a scan of for a while now. Interestingly, it appears to be written for an early-ish version of Sundance; it describes usage of program P05 to exit standby mode. The standby-exiting logic was made automatic before Sundance actually flew.
  • Apollo Operations Handbook, Block II Spacecraft, Volume I, from April 1970. This is a somewhat later revision than our current (mostly poor-quality) scans. This one should be much more readable. Even though it's only from mid-1970, it already has changes anticipated for the J-missions incorporated.
  • Apollo SCS Training Manual, Block II from Honeywell. This document goes into a lot of deep detail on the operation of the Block II Stabilization and Control System — more, I think, than any other that we currently know about.
  • Apollo Portable Life Support Systems booklet from Hamilton Standard. We already have scans of a very similar booklet whose title includes "... and Oxygen Purge Systems". Despite the shorter title, this booklet is actually a later revision that covers more of the system.
Hide 2023 change notes?
Hide 2022 change notes?
Hide 2021 change notes?
Hide 2020 change notes?
Hide 2019 change notes?
Hide 2018 change notes?
Hide 2017 change notes?
Hide 2016 change notes?
Hide 2015 change notes? (There aren't any!)
Hide 2014 change notes? (There aren't any!)
Hide 2013 change notes? (There aren't any!)
Hide 2012 change notes?
Hide 2011 change notes?
Hide 2010 change notes?
Hide 2009 change notes?
Hide 2008 change notes?
Hide 2007 change notes?
Hide 2006 change notes?
Hide 2005 change notes?
Hide 2004 change notes?
Hide 2003 change notes?


This page is available under the Creative Commons No Rights Reserved License

Virtual AGC is hosted
              by ibiblio.org