Hide 2024 change notes?
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?
2023-12-25
Mike has sent over some dumps of SUNSPOT rope-memory modules, courtesy of Dr. Nick Gessler.  You'll recall that SUNSPOT (thought to be version 247) was the Command Module's AGC software for Apollo 1, and it has long been near the top of my wish list.  Unfortunately, these modules were not from version 247, but rather from the initial release of SUNSPOT ... and we're not sure specifically what that version was, numerically, due to the lack of surviving documentation.  But it certainly significantly precedes 247.  Worse, only 5 of the 6 rope-memory modules were available, and those are in significantly worse condition than all of the other rope-memory modules Mike has worked with before.  (Not Nick's fault, since the modules were that way when he got them.  In case you're wondering how bad these are, visualize actual holes, through which wiring and components are visible!)  So not all of the data on those 5 modules will be recoverable.  But Mike will work his magic, and I fully expect we'll eventually get 3 or more modules worth of data from them.  It'll take quite a while, though, so don't put your life on hold waiting for it.  At any rate, you can follow Mike's ongoing log of the data-recovery effort, or read my pre-digested version of it in the Rope-Module Dump Library's notes.

To all of which you may say "so what?", to which Mike also gives us an answer:
Despite the missing module B23 and data loss from the other five, what we do have is fascinating and there's a lot to learn from it. For one, it has the same SXT-ON switch checking code as described in the memo "Programming Changes from AS-202 to AS-501", exactly like Corona:
image.png
This means that this version of Sunspot was meant for Block I Series 0 systems.... and this is possibly a major contributing factor for one of the later releases of Sunspot, which would have actually flown with a Series 100 system.

Sunspot also, like Corona, contains the mysterious Midcourse Navigation Game. Except in Sunspot, it's not broken dead code. Its issues have been fixed and it is now tied into four new extended verbs, V64 through V67.

There's also a lot of changes in PINBALL that mirror what we see in Colossus. Which means a lot of those things are not Block II changes, but rather were introduced in Block I for Sunspot and ported over. It's pretty remarkable seeing Block I implementations of these things.
I haven't updated the Colossus page with any of this info as of yet, given that we don't fully know what we have here, but hopefully that too will come, in the fullness of time.
2023-11-25
Okay, I think the problems mentioned in yesterday's "afterthought" have been fixed up now, so the mission-specific documents on the Shuttle Library page are starting to look pretty good to me.
2023-11-24
There has been a problem for some time on the Shuttle Library page in terms of the way it placed individual documents into the flight-specific sections.  For example, it may have placed documents not directly relevant to flight STS-26 into the STS-26 section on the library page.  While I knew about this, I wasn't motivated to try and fix it until I started getting complaints about it.  I noticed too that it wasn't printing the exact titles on the sections that I thought I had arranged for; for example, the title of the STS-26 section should have been "Flight STS-51-F (STS-26)" rather than the mere "Flight STS-26" that was actually being printed.  While the Shuttle Library page is still not perfect by any means, I think it has been improved a lot in these regards, and I hope my fixes will be enough of a bandaid for now ... though it's possible that the next few days might see some fixes for my fixes, and so on.  You can thank Bill Miller for refocusing my attention on the issue.  Bill also sent along the STS-79 Post-Mission Report, which has now been posted on the library page, and apparently completes our set of mission reports (sans the STS-51-L Challenger disaster, for which I'm told that a normal post-mission report wasn't produced).
Afterthought:  It's curious that I chose STS-26 as an example, since I see belatedly that it still mixes together documents from STS-26 proper vs STS-51-F due to miscategorization, as does STS-27.  Well, there's always tomorrow for fixing that!
2023-11-19
Removed the hyperlink from our Shuttle page that had pointed to Johnson Space Center's FOIA archive of flight data files, since that archive itself seems to have gone the way of the dodo.  As NASA's websites often do!  Perhaps the info previously on that page will reappear again someday, in the twinkling of an eye when you least expect it.  And then again, perhaps not.  Thanks to Bill Miller for pointing out that the archive had gone extinct.  My admittedly-fuzzy recollection is that it's no great loss; nevertheless, I wish I had downloaded its contents before it vanished.

Oh, and I removed the link to the SourceForge project called Space Shuttle Ultra (SSU), as it seems to have disappeared as well.  It was a Space Shuttle add-on for the Orbiter spaceflight simulation system.  It seems to have been announced a little over a year ago on the Orbiter forum that the SSU project was dead, so I guess I must have just been behind the times in posting a link to it.  Incidentally, there was a recommended alternative mentioned there, namely the SSV project, though as far as I can tell SSV lacks the small reference library of Shuttle documents sported by SSU.  Again, I wish I had downloaded its complete contents as well!  R.I.P., SSU.
2023-11-17
2023-11-15
6 new Apollo documents have been posted to the document library.  Mike's summaries:
  • Skylab Command Module Primary Guidance Navigation and Control System Student Study Guide - System Mechanization — This is re-release, with a decent bit of rewriting and updates, of the equivalent Apollo CM study guide I sent in a while back.
  • AGS Verification Testing for LM-4, Volume I - Test Plan — This is about testing for FP-4.
  • Abort Guidance System Flight Program 2 Customer Acceptance Readiness Review (CARR) — This memo contains as an attachment the entirety of "LM AGS Guidance Software Final Design Report, Flight Program No. 2 (Unmanned B Mission Only)". This attachment is much more interesting and useful than the CARR planning memo it's attached to, with lots of flowcharts of FP-2.
  • Minutes of Meeting, ASTP, CSM-111 Critical Design Review, DM-DS Preliminary Design Review — PDR/CDR material for ASTP, documenting all of the CM changes and requirements for the mission.
  • Apollo Navigational Star Chart — a cute brochure from Kollsman that shows all of their hardware contributions to the PGNCS, and has a star chart showing all of the stars used for navigation.
  • G34-909101, GSE Functional Integrated System Schematics, Spacecraft 101, ETR LC 34 — These schematics show all of the connections, down to the pin number, between the command module and LC 34. Lots of good details in here specifically about how ACE-S/C was hooked up to the spacecraft.

I've tweaked the description of AGS Flight Program versioning somewhat from seeing these documents.

2023-11-12
1 new Shuttle document and 7 new Apollo documents have been posted to the libraries.  Here are Mike's assessments of them:
  • VL70-730102 - Orbiter OV-102 Display and Control Panel Configuration. This is an engineering drawing from Rockwell showing the panel configuration for Columbia.
  • Saturn S-IVB-512 Stage Flight Evaluation Report
  • ND-1021037, Apollo Guidance & Navigation Equipment Familiarization Manual, Chapter 5, Computer Subsystem — a somewhat short but good introduction to the Block I Series 0 computer design
  • Skylab I & II Program Description — this is another one of the AC/Delco books that we have listed in our document library as "Apollo 15 Manual", "Apollo 16 Manual", etc. This one's all about Skylark. Apparently "Program Description" is the proper name for these things, because unlike the Apollo books, the Skylab/ASTP ones have their titles printed on the spine.
  • A set of LEM structural sketches, mostly for LM-4. These are excerpts from a big binder I found that also includes sketches for a bunch of Grumman aircraft.
  • Apollo Portable Life Support and Oxygen Purge Systems — this is another little booklet from Hamilton Standard, to go along with the LM Environmental Control Subsystem one I sent a scan of a bit back.
  • Apollo 10 Thermodynamic Analysis for LM Landing Radar Antenna Assembly
  • ACE-S/C Description Manual
2023-11-10
I've gotten a handful of materials related peripherally or directly to the HAL/S compiler development that I described in yesterday's post, and I've posted them to the Shuttle library page.
  • Slides and supplementary material for a course called "Basic HAL/S Programming".
  • Slides for a course called "AP-101S Assembly Language Introduction".
  • Slides for a course called "AP-101S Patch Fundamentals".
  • "HAL/S Compiler Test Results Report".

My personal experience with slide-show presentations is that seeing the slides outside the context of the presentation is often worthless, since the meat of the presentation is usually the words from the presenter's mouth rather than the eye candy on the slides.  However, that's not true of the first two courses mentioned above, and they're actually valuable stand-alone resources ... particularly the "Basic HAL/S Programming" course that's so relevant to what I'm working on now.  It's quite a substantial addition to our little collection of HAL/S programmer training materials, and should be either the first or second stop for anybody interested in learning about HAL/S.  (The other stop being Ryer's book, Programming in HAL/S, which incidentally I've been updating with comments of my own which I hope are helpful. I notice that my annotations don't show up in Chrome or Firefox, even if I turn enable the annotation settings.  I suppose that may be a blessing to some of you.   But if you want to actually view my annotations, you may have to download the document and experiment to find a PDF viewer that shows annotations.)

I mentioned some months back that I had again acquired a big backlog of documents for the Shuttle library.  I haven't forgotten them, but I haven't had any time to process them or even look at them yet, because they're not really relevant to HAL/S or its compiler.

2023-11-09
As I mentioned in my last post, which was a month ago but seems like a year, all of my personal effort recently has been devoted to getting the original compiler for Space Shuttle flight software into a form in which we can use it nowadays ourselves. 

You'll recall that the Shuttle's flight software (known as PASS and BFS) was written in a now-obsolete programming language called HAL/S — for which, as far as I know, there are no longer any surviving functioning compilers.  Or at least, none running on common types of computer systems available to common folk such as ourselves.  We do have the complete source code for that original compiler, which was called HAL/S-FC.  But that source code is primarily written in an even-more obsolete programming language called XPL, which also has no available functioning compilers, combined at some crucial points with IBM 360 assembly language (known as BAL).  And even worse, it was a mostly-undocumented "enhanced" form of XPL, so even if you somehow managed to get a standard XPL compiler, it still wouldn't compile the source code for HAL/S-FC.

My workaround for these little deficiencies has been to port the original HAL/S-FC's XPL source code to a modern programming language, namely Python 3, that anybody can run on any common computer system, such as Windows, Mac OS, or Linux.  I won't claim that this has been an easy task.  There have been, and continue to be, many hurdles along this path.  If I had known just how many, I might have elected not to attempt it at all.

But I'm pleased to say that a nice little milestone has been reached:  The ported HAL/S-FC can now compile without error every syntactically-correct HAL/S source-code file available to me.

You have to take that assessment with a grain of salt, since it merely means that there are no compile-time error messages.  That's not a guarantee that whatever object code the compiler generates is correct.  Nor should it be taken to imply that we can actually run any of that code after compilation.  Nor that we actually have much HAL/S source code to try it on; almost all HAL/S source code we have has been scraped from contemporary documentation rather than from actual flight software.  But first things first!  It's a step forward, and much much nicer than the hundreds of compiler errors I was getting even very recently.

The Shuttle page has been updated with explanations on this topic, including instructions for installing and using the ported HAL/S compiler.

Expect that there will be lots more to come on this topic in the future as I continue trying to overcome the hurdles.
2023-10-11
So ... I notice that it has been a couple of months since I posted anything here.  It's not that nothing has been happening — though I suppose the significance of whatever has been happening is subjective — rather that I've been so involved in it that there hasn't been much time for anything else.

But first things first!  Mike has sent over a wad of new LVDC-related documents, some of which are very important.  You can quickly find these new docs in the "Recent Additions" section of the library page, but here's the summary:
  • Those of you who follow the LVDC action will know that the "Equation Defining Document" (EDD) is the principal documentation for the LVDC's flight program, but that up to now we've had only Parts I and II of Revision A of the Saturn IB portion of the EDD.  We've now added Revisions C, D, and K, though unfortunately only the changed pages.  Most significant, though, is that we now also have complete Parts III and IV of Revision K.  Revision K, by the way, is for the Apollo-Soyuz Test Program (ASTP) mission.  Taken altogether, that's hopefully the complete Saturn IB EDD, more or less.  Alas, we still have no Saturn V version of the EDD.
  • We now have documentation of the LVDC Preflight Program, not to mention several revisions of the software-verification plan for it, though unfortunately no source code.  Given that up to now we've had only inferences about the Preflight Program, without any documentation or indeed any admission from any of the original developers that they even knew anything whatsoever about it, that's a huge leap forward.  This information is from the "Generalized Flight Program" (GFP) era, though, and there's reason to believe that the Preflight Program may have been simplified somewhat in that era, vs what it had been in the earlier period when each LVDC Flight Program was more customized.  Thus this Preflight Program documentation is useful in relation to our LVDC Flight Program software listings for AS-512 and AS-513, but less so — and perhaps considerably so — for the AS-206RAM Flight Program.
  • We have documentation for ASTEC and ACAPE programs ... which is significant, but which I admit requires some explanation.  "ASTEC" stands for "Aerospace System Test and Evaluation Complex", and essentially comprises the ground test equipment related to the LVDC.  The Programmable Test Controller (PTC) is one component of this collection of equipment.  I can't claim to have fully digested this new document, unless skimming it briefly so that I can meaninglessly parrot to acronyms qualifies as digesting it.  But if I understand correctly, the ASTEC or ACAPE program ran on the PTC, which was in turn attached to an LVDA and an LVDC running the Preflight Program.  ASTEC or ACAPE were each used to test or debug the simultaneously-running Preflight Program.  I don't know that my PTC simulator supports this configuration — actually, I sure it doesn't at the moment — but since we lack source code for ASTEC and ACAPE, that's not yet an urgent problem.  The new document has only flowcharts for ASTEC and ACAPE.

Another quick note about the new EDD documents mentioned above:  You may recall that about 3 months ago I was excited by the notion that LVDC Flight Program flowcharts could be regenerated by mysterious markings in the AS-512 and AS-513 source code, and that I had worked myself up the point of writing software to generate these flowcharts and to publish them. (See the 2023-07-27 entry below.)  Well, part of the reason I was motivated to do that is because we didn't have Part III of the EDD, because Part III does indeed contain flowcharts.  Now that we do have Part III, we have the exciting prospect of discovering how misguided or how prescient I was.  Well, perhaps "exciting" isn't exactly the word I'm looking for.  "Terrifying" is perhaps what I should be going for. 

I should clarify that I have not made a flowchart comparison before writing this, and am looking at it right now, in real time, as I'm writing this ... and the verdict is that the flowcharts don't look extremely similar.  On the other hand, there's some obvious resemblance.  Part of the problem, I'm sure, is that in comparing my Saturn V flowcharts to these Saturn IB flowcharts, we're not seeing apples-to-apples; even the names of the subroutines may differ.  In other words, maybe the flowcharts shouldn't match.  Well, who knows? Here's a cherry-picked result from the ACCELEROMETER READ subroutine that makes my flowcharts look especially good; but don't imagine this is a typical example.  An excerpt from my automated flowchart is on the left, and one from IBM's document is on the right.  It's heartening, I think, that where the text is comparable, it matches.

 

With the new LVDC documents out of the way, let me explain the delay in posting messages for the last couple of months.

To dredge up ancient history, you may recall (see the 2023-02-15 entry below) that I had been developing from scratch a compiler, interpreter, and emulator for the HAL/S computer language in which the Space Shuttle's primary flight software ("PFS" or "PASS") and backup flight software ("BFS") were written, and that I had been making good progress on it.  However, when we were flooded with new LVDC software listings for the AS-512 (Apollo 17) and AS-513 (Skylab 1) missions, there was so much work involved in transcribing these listings and in fixing up our LVDC assembler to assemble them, I had to put the new HAL/S compiler on hold for until a couple of months ago.  In other words, I switched over completely from Space Shuttle work to Apollo LVDC work.

In the meanwhile (see the 2023-04-16 entry below), we had received the complete source code for the original HAL/S compiler, of which before we had had only a part.  So when my work on the LVDC wound down, I rethought the idea of completing my own HAL/S compiler.  Or perhaps more accurately, decided to postpone it.  It seemed to me after the passage of several months that perhaps my compiler had grown to be too cumbersome and difficult to maintain and extend.  Perhaps, I thought, it might be better to port the original HAL/S compiler from the intractable language in which it was written, XPL, to a modern language like Python.  And indeed, that's what I've been doing ever since.  The progress is good, but it's slow-going and I'm not even close to running any of the code it compiles.  That's why I haven't been posting about it incessantly.  I'll let you know when there's more to know.

Our LVDC page has also been updated with a lot of this information.  As you can imagine, the "Flight Program Flowcharts" has been significantly modified.  Besides which, since the new Preflight Program documentation contains software flowcharts as well — had I mentioned that? — a new "Preflight Program Flowcharts" section has been added as well.

Incidentally, our Space Shuttle page has not been updated with anything about the port of the original HAL/S compiler as of yet, but perhaps it will be in the not-too-distant future.
2023-08-17
I did a lot of rewriting in the LVDC page's section "Saturn Interaction With the AGC".  It should be a lot clearer and more accurate now concerning the circumstances, specific missions, and extent to which the AGC could theoretically have been used to control the various stages of the Saturn launch vehicle.  This was in response to a theoretical notion about implementing the communication between the AGC and the LVDC in yaAGC and yaLVDC.  The short answer is:  There never was any such communication.  The long answer, in case you're wondering, is the same as the short answer.  But the question itself still resulted in improved commentary, I hope, so it was still worthwhile asking it.
2023-08-16
More updates to the LVDC page, having to do with telemetry and DCS.
2023-08-15
  • A new stash of ~150 Shuttle documents has arrived from Cooper, but I haven't even looked at them yet, let alone posted any.  The upshot is that my Shuttle-document backlog is glutted again, so presumably I'll be migrating the new backlog gradually into the Shuttle Library in the next few days or weeks.
  • James Pelster has fixed up some bugs in our Block I DSKY emulation, which he discovered while working on his own Block I AGC software emulation.  Thanks, James!  Emulations rock ... at least if you're going to use them to correct my software bugs for me. 
  • Mike has sent along a couple of AGC-related documents too, both of which are now in the main Document Library.  Here are Mike's own assessments:
  • Revision A of the LM-2 Apollo Operations Handbook, Volume II. We already have a scan of the basic revision; this revision changes no pages other than the table of contents, but it adds the entirety of section 9, which the basic revision totally omitted.
  • Revision B of the LM PGNCS Study Guide, Computer Utility Programs. We already have a very poor-quality, OCR-corrupted scan of the basic revision. There's no change log, but this revision B appears to be an almost complete rewrite; it is based off of a Sundance 202 program listing, while the original was based off of Sunburst 14. Notably, it gives us pretty good documentation for a lot of later software features, including what appears to be quite good coverage of the display interface routines, which is something we didn't have before.
  • Nik has pointed out a couple of documents that may be relevant to the LVDC Digital Command System (DCS) work I'm doing right now, at Colin Mackellar's tribute site devoted the Honeysuckle Creek Tracking Station in Australia, so those docs have been pulled into the main Document Library as well.  (Which reminds me that I need to go and rewatch The Dish.  It's nominally about Parkes rather than Honeysuckle Creek, though the Wikipedia article says it does appropriate some stuff that really happened at Honeysuckle Creek.  Highly recommended in any case.)
2023-08-14
LVDC telemetry display utility has been improved considerably, to the extent that it's probably now a lot more useful than the AGC telemetry display facility we've had for these many years ... not to mention being a lot more-easily portable across platforms.  It almost makes me want to go back and fix up the AGC telemetry displays.  Almost.  However, it still doesn't look like the actual displays available back in the day in mission control, and won't for a very long time, if ever.
2023-08-13
2023-08-12
Significant overhaul (not yet completed) of sections of the LVDC page that discuss various means of seeing the LVDC emulation in operation in spite of the LVDC being essentially a black box.
2023-08-10
I've finished up adding backlog of documents (~100) to the Shuttle Library, I think.  And even if I'm wrong about that, I really really want to be right about it, so I'm unlikely to discover on my own that I'm wrong.  Mission Accomplished!  Most of the newly-posted documents relate to Flight Readiness Reviews of one variety or another.

Which isn't to say that there aren't other Shuttle documents in play, just that of the ones I've been given so far, I've posted all of the ones I could convince myself were at least marginally relevant.
2023-08-08
Provided some clarification on the LVDC page about the presence of instructions in residual memory sectors, and about the relationship between the LVDC's EXM instruction to data-memory modules vs instruction-memory modules.
2023-08-06
Pepped up the LVDC page's "Doing Something With the LVDC" section a bit.  In particular, it now shows the results for the AS-513 Flight Program in addition to the results it already had for AS-512.
2023-08-05
Nik Beug had a nifty idea a while back, which we've finally been able to put into effect.  He pointed out that according to the contemporary LVDC documentation, the LVDC Flight Program — which he, alas, has not been able to see personally, due to potential ITAR restrictions! — had a sort of flight-simulation mode built into it.  In that flight-simulation mode, it was possible to detach the LVDC from the peripheral devices in the Saturn rocket but let it pretend it was still attached to them, by performing its own simulation of the physics.

For example, when you put the Flight Program into this flight-simulation mode, the LVDC could basically perform a complete simulation, all by itself, of the Saturn rocket blasting off and going into orbit, without the hassle of simulating any of the other associated hardware, such as the LVDA or the analog Flight Computer.  The original developers, I suppose, used this feature to test the Flight Program, but we can use it to test our LVDC CPU emulator.

Besides which, it's a nice demonstration that LVDC usage, which is otherwise difficult to demonstrate.  Remember that unlike (say) the AGC, the LVDC has no user interface ... it's just a black box, in all respects other than its actual color!  So seeing it do anything at all has so far generally been an exercise in patience and stubbornness.

But no longer!  Nik's simulation idea has now been made to work, and I've written up a preliminary discussion for you of how to do it.  The discussion is "preliminary", because it's very new at this point, and I don't necessarily have every detail correct just yet.  (In fact, I got a message to that effect in the very process of typing the preceding sentence!)  But it certainly does appear to work, and it's not all that difficult to do.
2023-08-04
Added 50+ more documents to the Shuttle Library.  There are around 120 left in the queue, but I simply can't bring myself to look at even one more of them at the moment.  So I'm afraid they'll have to remain in the queue for a while.  [Note to self for future reference: All uploaded, but just not added to the database. Still to do:  Presentations/ and most of FRR/ except FRR/Baseline/.]
2023-08-03
There were some updates to the LVDC page, clarifying (I hope) some of the relationship between the LVDC Flight Program and Preflight Program.

200+ additional documents were added to the Shuttle Library.  These again have range of topics, though the majority are mission reports for individual STS-xxx missions.  There are, however, some low-level documents related to the Shuttle's General Purpose Computer (GPC) and to historical matters related to the HAL/S and GOAL languages.
2023-08-02
Added ~50 more documents to the Shuttle Library.  They are mostly minutes of meetings from something called the "Ascent/Entry Flight Techniques Board".  Many of the digitizations of these meeting-minutes aren't great, though small in size and fortunately legible enough; some I've fixed, though many others will simply have to retain their non-greatness until I have more (or some) spare time and energy to deal with them.  The library itself has also been restructured a bit more, to introduce new sections where there are a lot of documents for them, and to combine some sections combined with other sections that are closely related, due to having few or no documents for them.  And don't take the new STS-xxx sections from yesterday too seriously just yet, because the categorization as to which documents are associated with which Shuttle flights isn't that great yet.
2023-08-01
Another 125 documents added to the Shuttle Library.  Many of these related to crew training, mission control, and reviews of various types.

The Shuttle Library page has also been refactored a little, so that there are now individual sections for each of the shuttle missions.  I think some additional refactoring to introduce new sections will also be in order, but I haven't looked into it as of yet.
2023-07-31
I've updated more of the Shuttle Library from the accumulated backlog sent in by Cooper Lushbaugh over the last 6 months or so.  That's an additional 450+ documents.  The topics of these documents and those added yesterday are wide-ranging, though I suppose it's fair to say that many of them are operational in nature, and none relate directly to the internals of the Shuttle's various computer systems or their software.  For example, there are lots of flight checklists and flight plans.  Their value insofar as elucidating the flight software is concerned is probably mostly related to understanding usage and version changes.  But if there's one thing I've learned throughout the course of the Virtual AGC Project, it's that documents you imagined had no relevance were disturbingly likely to provide essential information.

Meanwhile, Shuttle veteran Bill Miller has pointed out that while our library's previous 2-volume Space Shuttle Missions Summary was incomplete, stopping as it did at STS-131, the complete document (through STS-135) was in fact available elsewhere.  So the full document has now been added to the library. 

Bill has also pointed out that while my distinction on the Shuttle page between PASS (Primary Avionics System Software) and PFS (Primary Flight Software) may perhaps have been technically correct, it nevertheless ignored the common usage of those terms.  Namely, that the term PASS is generally used in preference to PFS even when PFS may be technically the correct choice.  Given that that has been my experience as well, I've adjusted the Shuttle page to accommodate the common usage and phased out most uses of PFS.
2023-07-30
Given that I've finished up the immediately-pending LVDC work I had been engaged in (i.e., transcription, assembler fixes, flowcharts, and syntax highlighting), I've now exited from LVDC work for the time being.  Instead, I'm now trying to knock down addition to the library of the vast backlog of Shuttle documents I've been given, but which have been languishing in my to-do list.  150+ documents have thus been added to the Shuttle Library just now, but that's only the tip of the iceberg.  After that particular iceberg has melted, hopefully I can go back to working on the Shuttle HAL/S compiler; but just now that still seems comfortably far off.

That's not to say that there's no LVDC work still in progress.  Via hardware simulation, Mike has discovered a number of bugs in my implementation of the LVDC CPU emulator and has been patiently fixing them, so you'll see updates to that in the software repository, if you follow such things.  And more may come.  The bugs have been primarily in the area of CPU startup, and the MPY, MPH, DIV, and EXM instructions.  Good thing Mike has my back on that one!  As you may recall, he fixed a number of bugs in the AGC emulator via the same technique.  But the difference in the AGC case was that we actually had a not-terrible (though not entirely complete either) set of AGC electrical schematics back then.  And now have essentially a complete set of AGC schematics for many different revisions of the hardware.  Whereas we have no such thing for the LVDC.  So in the absence of electrical schematics, how has Mike managed a usable hardware simulation capable of cross-checking the behavior of the software emulation? 

Well, our primary documentation about the LVDC is the "Laboratory Maintenance Instructions: Saturn V Launch Vehicle Digital Computer, Simplex Models" (vol 1 and vol 2), which in spite of the title can be used more like a theory-operation-document if you read it in the right spirit.  And as such, if you're diligent enough, from the description and the bits of circuitry pictured within, you can apparently cobble together enough of the LVDC circuitry to emulate its behavior.  Personally, I never would even have guessed it was possible to do that ... though given that for the AGC we have various supplemental theory-of-operation documents like ND-1021041 and ND-1021042 that would let us do that for the AGC if we didn't already have actual schematics, I don't suppose I should be too surprised.  Nevertheless I am.  Good job!
2023-07-27
Concerning LVDC flowcharts ....  I've mentioned these obliquely in the last couple of weeks, without giving any substantive detail before now.  Here's the story:  The AS-512 (Apollo 17) and AS-512 (Skylab 1) LVDC software listings — which for the upteenth time, may or may not be restricted by ITAR from being presented publicly here — have certain mysterious markings in column 71 of the punch-cards.  Column 71 happens to be the last column of the program-comments field of LVDC source-code lines.  These markings are undocumented, unsurprisingly, since we have essentially no documentation about LVDC assembly language, and so the markings' purpose and usage rules were not apparent to us.  After thinking about these markings for a couple of months, I formed the notion that they could be used to produce mid-level flowcharts of the LVDC source code.  To test this notion, I subsequently wrote flowchart-generator software to convert the AS-512 and AS-513 LVDC source code into flowcharts.  Whether or not the resulting flowcharts provide any meaningful representation of the software, or indeed whether they are useful in any sense at all, remains to be seen.

In calling these flowchart "mid-level", I mean that they expose the flow of control within the corresponding software, but they do not provide any calculational details that would let you go in the reverse direction to re-create the software from just the flowcharts.  If you want an analogy, instead of software source code, imagine the engineering design of an automobile, say a BMW X3.  These flowcharts, in automobile terms, tell you that the BMW X3 has an "engine" and a "battery" and a "carburetor", and so on, fitting together in certain ways.  All of which may or may not be true; but working backwards from that isn't enough to even create a working automobile, let alone a BMW X3 specifically, because it still doesn't tell you how you make an "engine" or any of the other component parts.

At any rate, partially on that basis, I conclude that whatever the ITAR status of the LVDC software source code, there's no reason whatever to suppose that these newly-generated flowcharts are subject to any export controls.  The LVDC page's new AS-512 and AS-513 Flowcharts section has thus been updated with all this info and with all of the new AS-512 and AS-513 flowcharts.  You can decide for yourself whether they're of any value or not, though of course if you want to decide on their accuracy you'll have to follow the instructions to get access to the LVDC flight program source code, and to perform the manual effort of comparing the flowcharts to the code. 

I'm sure there are lots and lots of errors in the flowcharts, but I don't personally have the time and inclination to pursue them at this time any more than I have already.  At least not sans feedback by you, my dear readers.
2023-07-26
Began fleshing out the Flowcharts section of the LVDC page.
2023-07-22
Our modern LVDC assembler now has the capability (like the AGC and AGS assemblers before it) to produce assembly listings in colorized, syntax-highlighted HTML, viewable in web browsers like Chrome, Firefox, or the other guys.  It's pretty swell, though as usual, unless you've asked me to qualify you as a "U.S. Person" for viewing ITAR-restricted material, I still am not in a position to be able to show you any LVDC flight software, syntax highlighted or not.  The PTC ADAPT Self-Test Program, however, as non-flight software, has been reassembled and thus has a nifty syntax-highlighted listing and I've updated the LVDC page accordingly.  Recall that the PTC (Programmable Test Controller) ground-support equipment contained a modified LVDC processor, and thus essentially ran LVDC programs ... albeit with some differences.

Speaking of the PTC, by the way, I recently had a conversation with one of the original LVDC developers who was lamenting the inadequate documentation they were presented with in trying to create new LVDC flight program versions by adapting the preceding versions.  He tells me that they often had to resort to running the legacy code on the PTC, single-stepping and setting breakpoints and what-not, just to figure out what the code was even doing.  Which I'm perfectly sympathetic to, given how difficult it sometimes is to figure out legacy code ... and pretty frightened by as well, if you think about the astronauts needing to ride a rocket programmed under those circumstances.  That's life on the bleeding edge for you!
2023-07-17
  • Added the Apollo 11 LM Systems Activation Checklist to the document library.
  • Added an incomplete rough draft of a tutorial on LVDC software flowcharts.  This is a notion I don't want to talk about just yet, but for which I have high hopes.
2023-07-13
Reconstructed AGC source code is now available for the Aurora 88 program, for which we've so far had only the octals dumped from physical memory modules.  Aurora 88, you may recall, was standard checkout/acceptance software for the LM Guidance & Navigation system.  But during the reconstruction of the software, Mike discovered several other novel features it has that are reflective not only of the flow of the software-development process back in the day, but also of LM equipment that didn't survive the selection process and thus wasn't used in flown missions.  I refer specifically to the LEM Optical Rendezvous System (LORS).  Check it out!

The Aurora 88 reconstruction also afforded Mike the opportunity to make a couple of minor corrections to the Sundial E AGC software reconstruction announced a couple of weeks ago.  The syntax-highlighted version of the source code has been accordingly updated.
2023-07-07
The LVDC assembler has been updated to reduce (but not fully eliminate) most of the decimal-rounding errors that I mentioned yesterday are encountered sometimes (but rarely) when assembling the AS-512 and AS-513 flight programs.  (The total number of rounding errors has been reduced from 30 to 6.)
2023-07-06
The LVDC page has now been updated, principally with respect to the manner in which "constants" are handled by the assembler.  This happens to mark a milestone, in that the LVDC assembler has also been updated, to the point that — if certain provisos are accepted as reasonable — the AS-513 LVDC flight program now assembles without error and without octal mismatches.  Given that AS-512, AS-206RAM, and PTC ADAPT SELF-TEST had already assembled without error or mismatch, this implies that the LVDC assembler is now fully working.  At least, until the next LVDC program is found and exhibits funky new features not supported by the assembler as-is when we try to assemble it.  Hopefully the probability of that happening is reduced, even if it can never be exactly zero.  And I should clarify that my present goal is just production of the correct object code when valid LVDC source code is input.  There are plenty of other respects in which the LVDC assembler isn't great, such as not being very robust when confronted with certain types of LVDC programming errors.  Given my disturbingly-finite capabilities, however, those other respects are also problems for some other day.

The provisos I mentioned above are either serious or negligible, depending on your point of view, and are two in number:
  • A few WORK directives need to be added to the LVDC source code to provide information to the assembler that I wish the assembler could deduce for itself.  WORK directives are my own invention, and don't exist in the original LVDC assembly language.  PTC ADAPT SELF-TEST and AS-206RAM need no such added directives, fortunately, but I was forced to add two of them to AS-512 and three of them to AS-513.  Most of them I actually know how to get rid of, I think, but so far the cost of the programming effort to do so just isn't worth it to me.
  • There is a mismatch between the way the original assembler and the modern assembler round decimal numbers, so that for a very small percentage of decimal constants, the original and modern assemblers disagree in the least significant bit in the octal object code.  I'm inclined to regard these discrepancies as due to bugs in the original assembler's arithmetic, but trying to offload blame from myself back onto 1960's and 1970's IBM FSD is pointless: The modern assembler is supposed to mimic the original, and as long as it can't mimic this rounding bug (if it is indeed a bug), the modern assembler cannot be fully complete.  There are 19 of these rounding errors in AS-512 and 11 in AS-513, out of 1000+ decimals, but there are none in AS-206RAM or PTC ADAPT SELF-TEST.  At the moment, the modern assembler simply has a command-line switch (--fuzzy) that avoids reporting these as errors, thus letting you ignore them.
Whether, how, or when these issues will be fixed remains nebulous.

What all of the negative blather above fails to celebrate is the positive news that the transcriptions of the AS-512 and AS-513 flight programs to source code and to octal listings can now be regarded as complete and debugged.  Obviously!  Or else there would be mismatches between the assembled code and the transcribed object code, and I just told you there aren't any.  Of course, the surety of correctness extends only to the data and code transformed to executable object code, and not to the program comments in those source-code files.  I'm sure that there are many errors in program comments still awaiting discovery!
2023-07-04
On the LVDC page, some "new" features of in the LVDC assembly language (namely, rare syntactical forms or behaviors of "=H'...", "IF", "ORG", and "DOG" found only in AS-513 source code) have been covered.
2023-07-01
As I mentioned a week or so ago, we're in the process of releasing reconstructed source code for various AGC programs that we've previously released only as octal dumps of their physical core-rope memory modules.  All of these program share characteristics of correct assembly, of not being quite as perfect as we'd like, and of nevertheless being good enough that we think they're useful as-is.  We'd hate for them to be lost through our own negligence in not making them available.  Not to mention the fact that the more eyeballs are on them, the greater the probability that they can be improved over time.  The lacunae, as usual, are sections that don't correspond closely enough to any other available assembly listing that we can guess symbolic labels, program comments, or certain other technical aspects of the code.  Those suspect sections are a bit hard to find.  As usual, we have Mike Stewart to thank for the reconstruction effort.

At any rate, today's release is the reconstructed AGC source code for Sundial E.  Recall that Sundial E was the acceptance/test program used for the guidance & navigation system, as well as the mission software for 2TV-1, a sequence of four crewed (but ground) missions for thermal/vacuum testing of the CSM.
2023-06-29
Four docs having to do with reentry or rendezvous for several Apollo missions were added to the library.  (Thanks, Cooper.)  Continuing on the theme of the last entry in this log, I guess that means there were re-doings a-transpiring.  (Ouch!  Sorry ... but not really.)
2023-06-22
Big doings a-transpiring today!  Well, that's a bit of a misstatement.  I guess it would be more accurate to day that like everybody involved in engineering design, we're often fighting a battle between what's too imperfect to release versus what's too significant not to release.  Or as it's sometimes said, not letting the perfect be the enemy of the good.  So I'm announcing several items today that fall somewhat under that rather vague umbrella of worthiness if not necessarily perfection.
  • As you may recall, a few months back Mike Stewart was able to get dumps of core-rope memory modules for the Block I AGC programs Sunrise 45 and Sunrise 69, which were system-test programs used (among other things) for acceptance tests of Block I guidance-system equipment.  Mike was able to fairly-quickly provide us with a reconstruction of Sunrise 45 source-code, although Sunrise 69 proved somewhat more challenging to a then-depleted Mike (I guess even he must have his limits) and thus has been languishing for quite a while.  But the time is now ripe, even if the Sunrise 69 source code itself may still be a bit green, and so it's finally being made available today.  There may be a few more ad hoc program labels in it that mightn't exactly match the original code than usual, but rest assured that the source code assembles correctly and is considerably better than nothing if you want to study the code!  The "new" source code is now in our software repository, and you can see our usual colorized, syntax-highlighted version of it by looking at the improved Sunrise 69 write-up on the Colossus page.
  • Similar comments can be made about the source code for Corona 261, which was the Block I flight software for the unmanned AS-202 mission, the very first Apollo mission flown with a working AGC.  Core-rope memory modules were dumped a while back, but a source-code reconstruction wasn't instantly at hand.  On the other hand, why should we have expected an instant reconstruction?  As it happens, part of the reason for the short delay is that the dump of the physical memory modules was a more-difficult affair than usual, and the uncertainty that the dump was exact was greater than usual, even though we thought it was very-likely correct.  So Mike felt he had to make renewed efforts to see if the dump needed correction.  Those efforts are now concluded, and we do indeed believe that the original dump was fine.  Reconstructed Corona source code is thus now available, and you can either download it from the software repository, or view the colorized version of it provided with the improved Corona 261 write-up on the Colossus page.
  • The initial transcription of the LVDC flight software for mission AS-512 (Apollo 17) was completed about a month ago, but in such cases there's always the suspicion that there may be typos in it ... bugs.  As it turns out, there were.  Lots of them!  There are a number of techniques for correcting such bugs, such as lots and lots of proof-reading.  Well, we didn't do that!  I'm sorry to say that for whatever reason — possibly the potential ITAR restrictions on "export" of this software — the pool of potential volunteers for such LVDC-related activities is far smaller than what I've experienced in the past for similar AGC-related activities.  In other words, the rate of progress is far slower because the workload rests on fewer shoulders.  That's my excuse.  As it happens, though, the best technique we have for debugging such source-code transcriptions is not proof-reading, but rather assembly of the source code and (automated) checking that the octal listing produced by the assembler is identical to the octal listing transcribed from the original printout.  That process is now complete, and so I regard the AS-512 transcription as debugged.  Any of you who have been given a link to the LVDC assembly listings by demonstrating you're legally qualified to view them can access that transcribed source code in the git repository at that link.  A handful of corrections were also made to the transcribed octal listing, so if attempts to run AS-512 code in the LVDC CPU emulator failed in the past, perhaps they might succeed now.  Of course, this particular debugging technique cannot detect errors in program comments, so those must either be tolerated or eventually corrected by other means.
  • The assembler-aided debugging for the AS-512 LVDC flight program was delayed for about a month because the LVDC assembler I wrote for processing the AS-206RAM flight program no longer fully worked as-is for AS-512.  For one thing, a number of new syntactic features had been added to the LVDC assembly language in the intervening years (1972 vs 1967), and those had to be supported in the assembler.  But that was the least of my concerns!  Unlike AGC or AGS assembly language, where what you see is what you get, the LVDC assembler performs a number of activities behind the scenes that are not explicitly tied to the source code.  The upshot of that is that there's a lot of object code and allocated memory after an LVDC assembly that was generated entirely by the assembler itself.  Since the aim of the the modern LVDC assembler system is to produce object code that agrees 100% with the original LVDC assembler, it's necessary not only to figure out what all of that extra stuff is, but to generate the extra stuff in exactly the same way.  And since there is no documentation available to us about LVDC assembly language or the original LVDC assembler, figuring all that out is not only tricky ... it may even be a fool's errand.  Today, though, I'm tentatively saying that the modern assembler has been updated and is working, subject to provisions discussed below.  At the very least, it can be used with AS-512 source code, AS-206RAM source code, and PTC ADAPT Self-Test Program source code.  Unlike LVDC flight software, the modern LVDC assembler is not regarded as potentially in thrall to ITAR, so you can get it in the software repository and see updated usage instructions on the LVDC page.

As I mentioned, there are certain provisos in saying that the modern LVDC assembler now "works".  In fact, there are three quirks that you have to live with if you want to assemble AS-512 source code.  They aren't terribly bad, but they're annoying and I hope to eliminate them.  At some point.  Two of the quirks are addressed inserting a WORK ROOF or WORK BLOCK directive, altogether one of each, into the source code; while those are too technical to discuss here, you can read about them on the LVDC page if you like.  The third quirk is that in AS-512 there's a handful of locations — well, 19 of them, so that's nearly two handfuls and two footfuls — at which the original assembler rounded floating-point or fixed-point decimal numbers in a way that I cannot understand, with the result that (from my perspective) they are wrong in the least-significant bit.  Understand that I'm referring to literally thousands of locations in AS-206RAM and AS-512 at which such rounding is occurring, so this rounding error rarely happened ... but it happened sometimes.  Personally, I think this was a (probably-undetected) bug in the original assembler, perhaps related to insufficient arithmetical precision in the computer running the assembler program.  But that's not really a mitigating factor:  The modern assembler needs to reproduce the bugs of the original, no questions asked, rather than stubbornly attempting to be "correct".  Thus in the end, saying that the modern assembler "works" depends on how much you're willing to discount these 2 workarounds and 19 rounding discrepancies!

2023-06-21
The LVDC transcription guidelines have been updated with respect to the way page titles will be handled in transcribing AS-513, and into how I intend to rework the existing AS-512 and AS-206RAM transcriptions.
2023-06-19
Updated the WORK ROOF directive to the description of LVDC assembly language in order to mimic some otherwise mysterious behavior (probably a bug, or at least an oversight) of the original LVDC assembler.
2023-06-18
Rejiggered the specification of the SYN pseudo-op in the LVDC assembly language
2023-06-17
  • Four documents added to the library.  (Thanks, Cooper.)
2023-06-16
  • Added a new document (thanks, Mike) to the library, related to the equipment for handling telemetry data.
  • Added the WORK directive to the description of LVDC assembly language.  That's my own invention, hopefully temporary, for instructing the assembler to take various actions for which I haven't yet worked out an appropriate theory of operation or algorithmic basis for letting the assembler decide for itself.  Here's an example:  The original LVDC assembler, it appears to me, did not always correctly round fractional decimal values in converting them to binary, so those values may not agree with ones assembled by the modern assembler; until I work out why, I can temporarily add WORK directives to the AS-512 or AS-513 source code to enforce the appropriate (or inappropriate from my point of view) rounding by the modern assembler.  After I eventually do figure it out, I can recode the modern assembler to act the same way as the original assembler, and remove the WORK directives.
2023-06-15
Updated the description of the TABLE directive in LVDC assembly language.  Also, added the hopefully-temporary WORK directive of my own invention.
2023-06-13
Added an NAA document called "Mechanical Document Interpretation" to the library.  While it's a general-purpose document (within the context of NAA's drawing system), it does cover a lot of specifics about NAA drawings for Apollo.

The LVDC page has been updated to include descriptions of the LIT and ENDLIT pseudo-ops.

Time sure flies!  I've been buried so deeply in reworking the LVDC assembler to handle the Apollo 17 (AS-512) and Skylab 1 (AS-513) LVDC source code, that I haven't noticed how long it's taking.  And it takes a lot, because not only were a number of new syntactic features added to the LVDC assembly language between AS-206RAM (for which I had designed the modern assembler) and AS-512/513, but also the assembler does various things differently under the surface.  And of course, my requirements for our assembler demand that it produce not merely assembled code that works, but precisely the same assembled code as the original assembler.  Meaning that I have to figure out these invisible differences in how the original assembler worked, using as clues only the assembly listings it produced.  Since there's no documentation available for the original assembler, that leaves me having to go about it scientifically:  observe a difference, hypothesize what the assembler thought it was doing at the time, implement a similar change ... and then try, try again if it doesn't work identically.  Tricky!  It's going well, but there are lots of mysteries left before I'm done and can go back the working on the Space Shuttle's HAL/S compiler system.

To give you an example of the kinds of difficulties I mean, consider the DEC pseudo-op, which in LVDC assembly language (and many other assembly languages like AGC) lets you give the assembler a decimal number that it converts to a binary representation and stores at the current location in memory.  For example, in LVDC (or AGC) assembly language,
MY2    DEC     2.0B27
means to store the machine's binary representation of the number 2.0 at the current memory location, which it also labels with the symbol MY2.  (Don't worry about the B27 if you don't know what it means but it relates to the fact that the LVDC uses a 26-bit representation for numbers.)  In AS-206RAM and AS-512, there are about 250 and 500 of these DEC statements altogether.  In four of those in AS-512, the original assembler produced what I and my assembler think was the wrong least significant bit.  In other words, there is a rounding error.  746 successes and 4 failures would sound pretty good in most situation ... except that in this situation it adds up to 100% failure!  And why is the rounding wrong anyway?  Is it me?  Was the original assembler buggy?  Dial me up next Tuesday, and perhaps I'll be able to tell you.  But this little rounding bugaboo is not the last of my problems with the LVDC assembler.
023-06-06
  • Five new documents added to the library:  A newer revision of the Apollo 14 Lunar Module Systems Handbook, an Apollo 13 Mission Techniques doc, and several Apollo Experience Reports.  (Thanks, Mike and Cooper!)
  • Some fixes on the LVDC page (changes to the D and P formats in the description of FORM).
2023-06-05
  • Both volumes of the LM-4 (Apollo 10) Operations Handbook has been added to the document library, though unfortunately one of the volumes has only changed pages.  Admittedly, the changes are perhaps 40% of the book.
  • Some fixes on the LVDC page (description of BLOCK).
2023-06-03
More of the same as yesterday.
2023-06-02
I've made various updates to descriptions of LVDC assembly-language, mainly relevant to macros and their expansions.
2023-05-31
  • A couple of early versions of the primary reference document about the S-IVB Instrumentation Unit were added to the library.
  • A link to the Vostok Supersite was added to the FAQ page.
2023-05-30
  • Updated the Gemini page, showing of the various computation modules evolved on a software version ("math flow") basis.  (Thanks, Amy Collins!)
  • Added a couple of documents to the document library.
  • And a couple of new documents for the Shuttle library as well.  But no, that doesn't mean I'm at the point of trying to clear up the backlog of Shuttle documents I'm sitting on or that I know about; it was just more convenient for me at this moment to add these particular documents to the library than to add them to the backlog.
2023-05-29
I've finished adding the document backlog to the document library.  Well ... virtually the entire backlog, as there's a handful of documents left over that I'm dubious about posting, and which for that reason I've held back for now.  Perhaps I'll still end up adding them sometime.  Or not.  But my point is that the document backlog is mostly taken care of for now.  I've also added the promised searchable-text layers to the recent documents that were lacking them.  Unfortunately, the large backlog of Shuttle documents is yet another matter.  Processing of those documents remains on hold, as all of my Shuttle-related activity does, pending resolution of my current LVDC-related workload.  Which is not imminent by any means.
2023-05-28
  • Added 16 more documents from my backlog to the library.  They're a real miscellany, without any overarching theme, from Gemini through Apollo through F-8 digital fly-by-wire, so I won't try to be more specific about them here.
  • Added dedicated Skylab 1 and RTCC sections to the document library.
2023-05-27
  • The document library now includes a volume of the ASTP Operational Data Book (thanks Mike!), as well as 19 additional files from my backlog.  All of the latter are RTCC requirements for various types of processing for specific missions and situations (such as Earth-orbit insertion for Apollo 10 and 11).
  • The "Official Virtual AGC GitHub repository" link on the FAQ page was pointing off into la-la land ... without winning me any Oscars in the process.  Fixed now.  It had been unchanged since I first put it there, years and years ago, and since it had never been reported until now, I guess that question hadn't been asked all that frequently.  (Thanks Chris Speidel!)
2023-05-26
  • Added 8 documents to the library from my backlog queue, generally having to do with RTCC, MCC, and MSFN.  There's a lot of info in some of these documents about the "universal command system" (UCS) digital data (and its formats) being passed around the network.  But admittedly, I've not really been aware of UCS until recently — i.e., I don't know much about it — so I don't guarantee that the info is new or unique.
  • Various updates to descriptions of LVDC assembly-language pseudo-ops, including REQ, BLOCK, new variants of ORG, and new variants of FORM and invocations of forms.  Some but not all of these have already been implemented in the assembler itself.
  • Eliminated some long-obsolete materials that had been unexpectedly lurking as unlinked-to phantoms on the web-server but which could still be accessed from a search engine like Google.  There's probably even more stuff like that, but ... well, the website is really big now, so they're really hard to find.  (Thanks to Matt McKrell!)
2023-05-24
Added 5 documents to the library.  These relate to interconnections and signals of the Saturn IVB stage's Instrumentation Unit (IU) (thanks Mike!), and to mission control (MCC), as well as yet another Operations Handbook, this time for the Skylab mission's CSM  (thanks Cooper!)
2023-05-23 Incidentally, some of the documents I've been adding to the document library in the last week or so could stand some improvements like decent page orientations, or (most importantly) searchable text layers.  I'll get around to that at some point, but I'll just have to owe it to you for now.

Meanwhile, Cooper (thanks!) has sent over yet another tranche of Apollo documents for the library, and this time I really (truly!) am going to take my time processing them.  However, a few caught my eye and so I've gone ahead and added them to the library immediately.  The ones that caught my eye are a pair of documents related to the mission control center (MCC) in Houston. 

The first is a general MCC familiarization guide from 1967, part of whose information we already had in abridged form.  It contains (among other things) a facility map, building-by-building floor-plans, descriptions plus pictures of the equipment therein for identification purposes, high-level block diagrams interrelating these things, schema of the data flow between them, and documentation trees of all the associated manuals for such equipment.  There are lots of documents listed in the documentation tree, and we have few (or perhaps none) of them.

More interesting from my standpoint is the MCC Operational Configuration for Apollo 15.  For want of a better explanation, it's primarily an explanation of what data is available at each of the 100+ consoles, in detailed enough form that you could make a reasonable simulation of the consoles as long as you didn't insist on correct coloring and overall scale.  Because who doesn't love a good simulation? 

To give you an example, Console no. 37 is "AGC/CMC Support", the image of which I've reproduced in a tiny form at the upper right, but which you can obviously see full size in the document itself.  I've highlighted one small area in green, which the document refers to as "LOC 3", and zoomed in on that area in the image at the lower right (unfortunately featuring my mouse cursor as well).  Later on in the document, the interpretations of each of the 36 indicators in LOC 3 (as well as every indicator in all of the other LOCs of the console I haven't zoomed in on, and for every other console as well) are listed, of which here are a few:
  • 01 Upper, color=amber: CH OVRIDE
  • 01 Lower, color=green: SCS CONT
  • 02 Upper, color=red: CMC WARN
  • ...
  • 18 Lower, color=red: P01 ENBL

Pretty nifty, no?  The only drawback is that the document doesn't tell us what slogans like "CH OVRIDE" may mean, nor what's displayed on the two CRT monitors (LOC 6 and LOC 7), so we need to look elsewhere ... oh well, too bad, so sad!  Some of that stuff is pretty obvious, though, and perhaps some of the remainder is in the many, many missing manuals of the documentation tree that I mentioned above.

A slightly-different scan (bigger grayscale vs the older, smaller B&W) of the Lunar Module Abort Guidance System Design Survey document has been added as well.  Perhaps it's better than the old one, perhaps not.

2023-05-20
Well, I decided to go ahead and finish up processing the document tranche I mentioned yesterday as something I had intended to take my time with, so 26 new documents (or alternate scans of existing docs) have been added to the Document Library.  It simply resulted in my pulling out less of my remaining hair than continuing to make the changes to the LVDC assembler needed to deal with the LVDC AS-512 flight program, which is what I had intended to spend my day on ... and will now have to return to since I no longer have an excuse to keep me away from it.
2023-05-19
Added seven docs to the Document Library, all sections or volumes or revisions of the Apollo Operations Handbook that we didn't have previously.  (Thanks, Cooper Lushbaugh!)  There are more documents in this tranche that I just don't have time to deal with right now, though not additional Apollo Operations Handbooks, that presumably I'll be posting over some undetermined time-frame in the near future.  From my standpoint, the most-notable additions today related to Apollo 1 and Apollo 7, but obviously tastes vary.
2023-05-18
Last year I gave a 15-minute video presentation about the Virtual AGC Project for Software Heritage's software-preservation-focused SWHAP Days conference.  Or at least that's what the talk was supposed to be about, but I had only a small fraction of the time I would have needed to cover the entire Virtual AGC Project, so the video's scope is actually considerably trimmed-down to make it as concise and interesting as I could manage in the time available.  Which is a good thing really, since it's difficult enough to sit through 15 minutes of my highly-scripted droning, let alone the several hours of winging it that I would likely have used up if not constrained.  At any rate, I notice that Software Heritage has now put the conference materials online, so you can watch the video yourself from the link above, if you're so-inclined, or else from the hyperlink I've added to the FAQ page.  Do select the 1080p resolution and full-screen display, if you know how to do that on YouTube.  And really, my droning isn't as bad as all that.  I hope!
2023-05-17
Added another version of the Command Module Operations Handbook to the document library.  Mike points out that:
It purports to be the first release of the document, and may be more applicable to early missions (especially Apollo 7) than the copies we currently have.
Which is welcome, considering that we continue to suffer from a severe Apollo 7 (and Apollo 1) deficiency.  Of course, software would be better. 
2023-05-16
Various documents were added to the document library:
  • A 1963 document called the "Apollo System Specification", which is just what it sounds like.  For example, section 4.4.5.3.4 tells that "[the LEM's] general purpose digital machine shall
    have the capability of performing all LEM guidance problem computations, vehicle sequencing, and timing trajectory, and shall conduct diagnostic tests of itself and checkout routines of
    other LEM subsystems".  (Thanks to Cooper Lushbaugh.)
  • Ten or so "Apollo Mission Techniques" documents.  (Thanks to Cooper Lushbaugh.)
  • A complete sample program in the MAC computer language (see below).  (Thanks to Mike Stewart.)
  • A bunch of Tindallgrams (see below).

MAC (MIT Algebraic Compiler) was a computer language somewhat like FORTRAN (though fancier in some ways) that theoretically would have been useful for scientific computing.  Apparently, MIL/IL tested out potential AGC algorithms by coding them and running them in MAC before coding them for the AGC.  I've often heard about it in the past, but basically haven't thought about it too much.  Lately, though, we've gotten a fair amount of very early code written in MAC (not yet posted here!), so in preparation for dealing with that MAC code I've been looking into it a little bit.  When my understanding is more complete, I'll probably write it up for the site in my typical wordy, overblown style, but I haven't done so yet; that's probably why this post is so long!  (The "sample MAC program" I'm posting today, by the way, isn't the incoming MAC code I mean, as it's not even from Apollo.)

At any rate, I was shocked to realize that for all I've heard about it, up to this point we (the Virtual AGC Project) haven't had any code in MAC or any documentation about MAC other than superficial references to it.  Moreover, I've found no available information online about MAC that's deeper than the "this computer language used to exist" variety.  Of course, googling for "mac", as you may imagine, does not produce incredibly helpful results; thanks a lot, Apple!  Fortunately, the language itself appears (at least superficially) to be quite easy to understand even without documentation, particularly now that I've been steeped in the HAL/S language used for the Space Shuttle flight software ... but I'd still prefer to have the documentation.  And it's not as if the MAC language is secret or proprietary. It's simply that nobody ever seemed to bother.  Which is a shame, considering that (as I say) we have incoming code actually written in it!

With that said, we have found some MAC documentation.  But the news about it isn't rosy:  Everything I've found so far is trapped in the MIT Library, and as near as I can tell, the MIT Library doesn't let anyone look at MIT Library materials except MIT staff, students, and faculty.  And sometimes, if you're really lucky, researchers from affiliated institutions.  What happens in the MIT Library stays in the MIT Library.  As one of the non-elite myself, I therefore have no means of accessing any of these materials.  Nor do I have any such elite folks on a string to go and fetch such material for me.  The Library does have a searchable database, though, so they can have a giggle while dangling a list of the materials I can't access over my outstretched arms.  For example, here are some of the juicy items you find:

  • "The MAC Algebraic Language System", by Hal Laning and James Miller (1970), 23 pages, MIT/IL report R-681.
  • "The MAC Primer", by Henry B. Brainerd (1966), 39 pages, MIT/IL doc E-2044.  It relates to using MAC on the Honeywell computer that MIT/IL used before switching over to IBM computers.
  • "The MAC-360 Primer", also by Brainerd (1969), 63 pages, MIT/IL doc E-2393.  It's the IBM-based document that superseded E-2044.
  • ... and others

But enough of that!  Regarding Tindallgrams, while I've mentioned them briefly somewhere on the site, I don't think I've posted any of them, or at least not many.  At any rate, a lot of folks consider them very useful sources of information.  ALSJ has posted a lot of them that apparently came from the UHCL archives, so there isn't too much need for reposting them here.  But I'm nothing if not compulsive (or is it obsessive?), and some of the UHCL/ALSJ files are lacking a searchable text layer, so now that this gap in the Tindallgram race has been pointed out to me, I naturally need to OCR where necessary and repost!  Apparently, Bill Tindall wrote around 1100 of these memos for Gemini and Apollo, and what I'm posting today is a half-dozen PDFs of a portion of them.  Not that anything is being intentionally excluded, you understand, but merely that only a portion of the memos seem to have survived.  There's now a dedicated "Tindallgrams" section in the document library.

Finally, the initial transcription of the AS-512 LVDC flight program has been completed.  Thank you to all participants!  However, neither has it been proof-read for typos nor has it been debugged via assembly (and comparison of the assembly to the separately-transcribed octal listing).  I expect — or perhaps more accurately, dread — that the assembler will itself require updates as the debugging process proceeds.  At any rate, that's next on my agenda, beginning tomorrow and continuing until who knows when?  My expectation is that the AS-513 LVDC flight program can be cut-and-pasted from the AS-512 LVDC flight program to a great extent, so I don't anticipate any work to begin on the AS-513 flight-program transcription until the AS-512 source code has been rendered as error-free as possible.

I do expect to make some improvements to the LVDC assembler along the way:  principally, giving it an option for producing color-coded, syntax-highlighted, hyperlinked, HTML assembly listings, much as the AGC and AGS assemblers have already been doing for many, many years now.  I skipped this feature the first time around, when the LVDC assembler was only used for the AS-206RAM flight program, because fear of ITAR prevented me from "exporting" the nifty HTML assembly listings online and thus it didn't seem to be worth the effort.  But someday I hope I can post the the LVDC software online, and even in the near term while I'm afraid to do so, souped-up assembly listings turn out to be such a very helpful study tool that I prefer not to do without them.  I've become addicted to the syntax highlighting ever since I saw the LVDC color-coding scheme Mike created for the vim text editor, even though I've not been using vim myself for my contributions to the transcribed source code.

2023-05-15
It was pointed out to me that the "Virtual AGC Software Landscape" diagram that appears at the very top of our home page hasn't been updated in a while, and that we now have additional binary and/or source-code versions of several items listed (or sometimes not even listed) in that diagram.  So I've updated it, at least in so far as the specific problems pointed out to me are concerned ... I think.  Unfortunately, there are various visual decorations in the diagram whose interpretations I didn't write down anywhere, and it's no longer clear exactly what I had in mind with many of them!  For example, why are some software versions accompanied by smiley faces and some not?  Why are some versions boldfaced and some not?  I don't know. The diagram may need to be rethought and revisited at some point, if even its creator can't grasp all of the nuances.  But at least for now, I'm calling it updated.
2023-05-13
Mike Stewart has sent along a new document for the library, for which his synopsis is as follows:
[A] new study guide ... — CM PGNCS System Mechanization. It is extremely good and I'm very excited about it. The last ~140 pages are focused on the AGC. Compared to ND-1021042 and ND-1021043, it has less schematics but it does a significantly better job of explaining how and why — so it is a great companion for those documents. It would have been suuuper useful to have during the AGC restoration or while I was building the rope reader.
But that's usually the way it is, isn't it?  By the time you fully understand anything significant, the knowledge is obsolete.  Though the fact that Apollo is not a moving target any longer is pretty useful for a project like Virtual AGC.  There's no new thing under the sun in so far as Apollo is concerned, and being lazy, that's the way I like it!
2023-05-11
  • The transcription effort for the AS-512 LVDC flight program has not yet finished, but the window for volunteering to assist has now closed.  Thanks to everyone who has assisted!
  • Nik Beug has made a terrific video of essentially an entire simulated AS-202 mission, using the newly-available Corona 261 software and the Orbiter spaceflight-simulation system with a special Block I branch of the NASSP add-on.  Watch it!
2023-05-10
Added a newer version, at least of Volume 2, of the Apollo 16/17 CSM Operations Handbook to the document library.
2023-05-04
Added a doc to the document library.
2023-05-03
  • Corrected some oversights in my Corona 261 descriptions added yesterday.
  • Corrected (I hope!) the misspelling in several places of Larry McGlynn's name.  Sorry about that, Larry!  My brain knew your name, but my fingers didn't.
  • On the Colossus page, rewrote the description of the Solarium 55 to indicate that it had been used for both Apollo 4 and Apollo 6.  We've known this for a long time, but the text on the Colossus page (and elsewhere on this site) had doggedly continued with our original erroneous assertion that Solarium 54 had been used for Apollo 4.  Hopefully this is now fixed everywhere; probably not, but hopefully.
2023-05-02
  • The LVDC transcription guidelines have continued to be updated, and the transcription effort for the LVDC AS-512 (Apollo 17) flight program has continued apace, though I've not bothered to report on it in this space.  If you happen to be interested in the progress, there's a spreadsheet that tracks the transcription.  The short answer is that it's proceeding well, without difficulty other than expenditure of time and effort.  After the transcription is completed, which isn't something very close to happening at the moment, I'm sure that there will be updates to the LVDC assembler required, at which point we'll be able to debug the transcribed source code and octal listing.  But that's probably thinking too far ahead.
  • Speaking of things that I haven't been reporting on, there's a huge backlog of Space Shuttle documentation sitting in my inbox that I haven't gotten around even to looking at because of the time being spent instead on the LVDC software.  I mention it only because one might wonder why there has been a transition from continual Shuttle-Library additions to the present dearth. 
  • Longtime readers may recall that we got flustered a few years back with the notion that the AGC software for the AS-202 mission might become available.  You may also recall that AS-202 was the first flown mission with an AGC — albeit Block I — and hence this software (Corona 261 by name) was the first ever flown AGC software.  Well, it has taken a while (seven years!), but we finally have it in hand.  Not the source code, mind you, but a dump of the executable from the physical memory modules.  Thanks to collector Jimmie Loocke, the owner of the modules, and to Mike Stewart, as usual, for dumping them.  It's great to finally get that particular monkey off of our back!  Of course, given the nature of this sad, old world, in which things seldom work out perfectly, there were more than the usual number of difficulties in performing this dump, so we're not yet entirely sure it's 100% accurate even though its memory-bank checksums are perfect.  On the other hand, there's every expectation both that the source code will be recoverable, and that the process of doing so will uncover errors in the dump.  So life's not all bad.  In the meantime, you can run Corona 261 as it is right now in either the VirtualAGC GUI or in Orbiter+NASSP, though I'm not in a position to explain the latter any farther than that.  At any rate, you can read more on our Colossus page.
2023-04-18
Some updates to the LVDC-transcription guidelines.
2023-04-16
The remaining source code for the original (Shuttle era) HAL/S compiler, known as HAL/S-FC, has now made itself available, and has been added to our source tree.  (See also the README at that link.)  Recall that the HAL/S compiler was written in the high-level language known as XPL, or at least a modified form of XPL, with some code in BAL (IBM Basic Assembly Language).

For anyone who has looked at the partial HAL/S-FC listing that was all we had previously, note that for technical reasons I won't bore you with I've changed its folder name from HAL-S-FC-REL32V0 to PASS.REL32V0.  The "new" code comprises passes 2, 3, and 4 of the compiler, whereas before we only had some significant portions (but apparently not all) of pass 1.  I'm not entirely sure what all the new passes do in detail, but I'm pretty sure that the portions we had before got no farther than syntactical parsing, whereas we now have code-generation and optimization.  Part of the problem in discussing it without having the opportunity to review the code in detail is that the documentation for the compiler system does not discuss it in terms of "passes" (1, 2, 3, and 4), but rather in terms of "phases" (1, 1.5, 2, and 3).  So your guess as to how these passes and phases correspond to each other is as good as mine at this point.  ... Though having said that, an email has just rolled in that sheds some light, so I may come back to this issue later with some more-enlightening comments.

Please inform me if you notice any oddities in these files.  Some semi-automated conversions were needed (at least, in my less-than-humble opinion) to massage them from the form in which they were provided to me into the form in which you see them, and I'd certainly like to know if I managed to mess up the conversion somehow.

Incidentally, if some industrious person wants to work out syntax highlighting for HAL/S (*.hal), XPL (*.xpl), and/or BAL (*.bal) source code for our GitHub repository, I certainly wouldn't look askance.  I'd love to have it, but I suspect we'll be waiting indefinitely for it if I have to work it out myself.  Yes, I know we have no flight software in HAL/S as the situation stands right now, but there's lots of other HAL/S source code there, geared at learning HAL/S, and learners can certainly benefit from syntax highlighting.

Actually, I could say much the same for LVDC syntax highlighting (see the transcription guidelines for vim-based LVDC syntax highlighting), but it would be depressing to do so when I can't actually post much LVDC source code to GitHub to benefit from such hypothetical syntax highlighting. 
2023-04-15
Anyone following the LVDC-related news on this site is aware that due to ongoing uncertainty about the status of LVDC software under the U.S. regulations known as ITAR, we are presently restricting access to such software to those who are interested enough (and able) to individually present us with credentials demonstrating that they legally qualify as "U.S. persons".  What that unfortunately means as well is that there are no links to the software on this site, and no updates in this change-log about whatever progress is being made on the internal processing we must do here with such software, to transcribe it into source-code form, assemble it, run it in emulation, etc.  But I figure it's important to have some way to communicate such progress to those who have not (or cannot) go through the demeaning process of proving they are "worthy" by accident of birth to look at the sacred software itself.  So I'm toying with the idea of writing about the progress here, but doing so in grayed-out blocks, like so:

Restricted-access LVDC-software news: 
  • Both the AS-512 and AS-513 flight-program "octals" (i.e., the executable machine code) have been transcribed and are available in the local git repository.  While they've been through one or two proofing passes each, they're still not regarded as error-free.  Both are estimated (by statistical methods) to still contain on the order of 3 undetected/uncorrected errors, and to need one additional proofing pass each to reach an estimated ~0.1 errors.  Of course, they may be error-free in spite of that right now, and in any case may be run in emulation to a certain extent right now.  Recall, though, that there are conditions under which these Flight Programs make calls to the so-called Preflight Program, which is not present, so even if error-free these programs could only be emulated to a certain extent before the absence of the Preflight Program became problematic.
  • Two of the 77 source-code files for AS-512 have been transcribed, namely SECOND OPPORTUNITY INITIALIZE and GFP EXECUTIVE CONTROL PROGRAM, and are present in the git repository.
  • None of the 70 source-code files for AS-513 have been transcribed.  It's possible that the two AS-512 files so-far transcribed are identical or substantially identical to their AS-513 namesakes, but I'm not aware of it one way or the other.
  • And just for completeness, though it hasn't been "news" for over three years, our original AS-206RAM flight program had its octals and all 23 of its source-code files transcribed into the git repository long ago.

Alas, all Space Shuttle work is on hold as long as I'm involved in this LVDC processing.

2023-04-14
The LVDC-transcription guidelines posted yesterday were updated in regard to demonstrating U.S. citizenship and the use of LibreOffice for transcribing.
2023-04-13
We are currently in the process of transcribing the LVDC flight-program source code for AS-512 and AS-513.  If you'd like to assist, read our guidelines to see what's involved and whether or not you're legally eligible to participate.
2023-04-05
The Apollo 14 (AS-509) Operational Trajectory document has been added to the library.  What's notable about this, in light of the recent activity in terms of acquiring LVDC source code, and particularly AS-512 source code, is that the document includes a table of all the LVDC software presets, referenced not only by variable name but by memory address.  Where this contrasts with preset-tables in launch-vehicle operational trajectories we presently have for other missions is that the other such documents don't include the memory addresses.  The presence of the addresses means that we can compare these Apollo 14 LVDC addresses to the Apollo 17 LVDC addresses in source code, and find that they are largely or even entirely identical.  (Admittedly, this has only been spot-checked so far.)  That gives us not only a measure of how the LVDC flight software was changing in the interval from Apollo 14 through 17, but more importantly, it means that many of the Apollo 14 LVDC presets can be directly applied to an Apollo 17 mission.  Of course, "true" LVDC is not yet integrated into (say) Orbiter NASSP, though as I understand it, the presettings may still be of current relevance to relevant spaceflight-simulation systems in spite of that.
2023-03-31
Big LVDC news:  Assembly listings for the LVDC Flight Programs of the Apollo 17 (AS-512) and Skylab 1 (AS-513) missions have suddenly become available!  Besides that, we've gotten a large printout of a Saturn IB test run for the Skylab 3 (AS-207) mission.  Read all about it here.

Well, when I say "suddenly" ... for you, perhaps; for me, it has been ongoing for the last 6 months, and has therefore seemed fraught with uncertainty and as slow as molasses.  Not that it's anything I've achieved personally, you understand; naturally, Mike Stewart has been deeply involved, and hopefully I'll be able to provide fuller credits later when some of the dust has settled.  But as they say, that makes no never mind now.  The LVDC page in general has thus been the recipient of substantial rewrites related to this sudden availability.

As you may recall, the only LVDC source code available until now has been that for the so-called PTC ground-test equipment, along with the uncompleted, undebugged code for the unflown AS-206RAM mission.  Whereas in contrast, the AS-512 and AS-513 Flight Programs are the final, actually-flown versions of the software!  This is all so new that the write-up doesn't include much technical detail about the new listings.  That'll have to wait for more-extensive analyses over time.  Nor have transcriptions to source code yet been made, so we can neither assemble this code yet nor run it in the LVDC CPU emulator.

Unfortunately, you'll also recall that there has been uncertainty under U.S. law as to whether the AS-206RAM source code could be "exported" — i.e., posted online — and that I've reluctantly needed to hold it back from public view until these issues are resolved.  That uncertainty obviously extends immediately to the AS-512 and AS-513 Flight Program source code as well.  I will release any or all of them to "U.S. persons" (i.e., U.S. citizens and some others who qualify) who apply to me directly, but alas that's little consolation to those of you who don't qualify.  I deeply sympathize, and hope the situation changes for the better at some time in the future.

Important note:  If I've granted you access to the AS-206RAM software listing in the past, I'll happily grant you access to the "new" AS-512 and AS-513 software listings as well, without you having to go through the rigamarole of proving to me again that you're a "U.S. person".  However, if you haven't received a notification of the new hyperlinks, you'll have to drop me a note reminding me to send them to you.  Sorry for the inconvenience!

The potential ITAR issue is particularly annoying insofar as it relates to integrating LVDC software into existing spaceflight simulation systems. That wasn't so important as long as the only surviving LVDC software was for AS-206RAM, but it's extremely irritating now that Apollo 17 LVDC software is available.  I have an unsatisfying but hopefully-feasible workaround for the problem.  As I've mentioned here several times recently, I've been creating a compiler for the computer language (HAL/S) in which Space Shuttle flight software was written.  Since the Shuttle flight software suffers (in my mind) from the same ITAR uncertainty afflicting LVDC code, I've been pursuing a strategy with the Shuttle compiler and emulator that might be applicable to the LVDC code as well.  The basic idea of this strategy is that instead of compiling Shuttle code to the machine language of the Shuttle's computer system (IBM model AP-101S), I instead compile it to a different form (which I call PALMAT), and provide a PALMAT emulator that can run the compiled PALMAT.  The significance is that even if flight-software source code or executable code for the AP-101S were restricted under ITAR, I see no reason in the world PALMAT code would be restricted; after all, one can neither recover the original source code nor produce usable AP-101S executable code starting from PALMAT.

Similarly, if we had an assembler for LVDC source code that assembled to some form (let's call it LALMAT) other than LVDC machine language, and if we had an emulator for LALMAT, there would be no reason we couldn't export the LALMAT code from the U.S., and no reason under ITAR that we couldn't integrate the LALMAT emulator into spacecraft-simulation software such as Orbiter.  Of course, LALMAT doesn't have to be something invented ... it could be something as simple as a translator from LVDC source code to (say) C source code.

There are several drawbacks to this scheme, other than the obvious one that I'm no legal beagle and my legal opinion is worth the paper it's digitized on.  Those drawbacks are:
  • So far, no spaceflight-simulation folks have shown the slightest interest in this notion, so there's no guarantee they would even bother to integrate a LALMAT emulator even if it existed.
  • We might end up finding out that it's perfectly okay with ITAR to export the actual LVDC source code anyway, in which case any development time spent on LALMAT would be wasted.
  • As long as the LVDC source code remains restricted under ITAR (if it even is restricted), many of those people who would otherwise be most-enthusiastic about working with it have little motivation for participating in LALMAT development.
  • But mainly, I'm personally completely swamped, and there's no possibility of developing LALMAT myself as long as I'm neck-deep in Space Shuttle stuff.  Developing LALMAT requires volunteers to do so.

I guess the executive summary is that if there are any "U.S. persons" keen to help transcribing the AS-512 and AS-513 listings into source code, and/or specifying LALMAT and coding an LVDC-to-LALMAT assembler and a high-performance LALMAT emulator, then you should make yourselves known!

2023-03-24
I've rescanned the Apollo 8 Flight Crew Log which was added to the document library about a week ago, so you'll now see it listed among the recent additions for today rather than for the 18th.  Not that there was anything particularly wrong with the previous scan ... well, there was one page that had turned out a little funky without my noticing it ... but the new scan is definitely nicer.  And bigger, alas!  Really, it just gave me the opportunity to try out a new scanner that I couldn't resist purchasing when I saw a good deal on it; but if you're going to digitize someone's precious keepsake for a permanent archive, you may as well do it in style.

By the way, I don't know if there's anybody engaged in producing an index for this document — I wish! — but if so, I can assure you that the new scan has the same number of images, in the same order, so all page numbering remains the same.  (Oh, I did notice that on the earlier scan there was one image in which the left-hand and right-hand pages on it were swapped, which is now fixed.  But I don't think that should affect any indexing.)
2023-03-20
Mike Stewart has sent over Volume II of the Apollo Operations Handbook for Lunar Module LM-2, which I've added to the library.  Recall that he also sent over Volume I about a month ago.

One question I'm often asked is this:  It's great and all that I can now run an AGC emulation, but what do I do with it?  Or more bluntly: How do I use an AGC?  To which my normal too-glib answer basically amounts to:  Train to be an astronaut!  Of course, this really is just a cover-up for the fact that I don't personally know how to use an AGC to do anything substantive.  (To be fair to myself, I also normally point out that I'm a poor person of whom to ask that question.)

Well ... call it stupidity, call it forgetfulness over the decades I've been involved in this, call it being overwhelmed, call it the sheer size and eclectic nature of these documents, along with the fact that we don't have just all that many of them — call it whatever you will — but for some reason I've been (or have become) blissfully unaware that one great charm of these Operations Handbooks for the AGC aficionado is that they contain detailed instructions for using the AGC, on a crew-member-by-crew-member and flight-phase-by-flight-phase basis.  Those instructions appear in Volume II in general; look for sections titled "G&C General Procedures" for the CSM or "Normal/Backup Procedures" for the LM.  The LM version of the handbook also integrates AGS operating instructions alongside the AGC operating instructions.  In the case of LM-2 (the volume added to the library today), look in section 8.6.

Live and learn, I guess!  Or perhaps "live and forget" might be a more-realistic appraisal, which is my excuse for dumping every little detail onto this site so that it hopefully cannot be forgotten as easily.
2023-03-18
Roger Wagner has sent me a physical copy (or at least a NASA-generated xerox of a physical copy) of the Apollo 8 Flight Crew Log, which I have duly digitized and added to the document library in both low-size PDF form and high-resolution archival form.  Superficially it may appear that we already had these documents in the library ... but what we had before were the blank forms for the log and/or partially-filled-out logs not from the actual mission.  Whereas these are the actual logs as filled out by the crew, insofar as I can see.  If you want to know what Frank Borman thought about his cream of chicken soup on Day 4, this is the place to look!  (I jest.  The only soup they got on Day 4 was pea soup.  Bill Anders ate all of his.  Frank Borman and Jim Lovell don't seem to have filled out their menu log on that day.  They did get cream of chicken soup on Day 3, for lunch, but Frank Borman didn't fill out his lunch log on that day either!  This may be a mystery that will never be solved.)
2023-03-07
Roger Wagner has also sent me a copy of the Apollo 17 EVA-1 checklist for the lunar surface, as well as high-resolution imagery for the same.  Obviously, lunar surface stuff is not our particular interest here at this site — quick, somebody inform the Apollo Lunar Surface Journal! — but a foolish consistency is the hobgoblin of little minds.  I was happy to accept it.  Even if you're primarily interested in the spaceflight tech rather than the moon per se, the photos are still amusing and worth a look.
2023-03-06
Added a copy of the "Apollo 13 LM Malfunction Procedures" to the document library.  It happens to have been digitized from Jim Lovell's original copy.  Thanks to Roger Wagner for scanning and donating it!
2023-03-03
Added a couple of documents to the Shuttle library related to the HAL/S programming language.
2023-02-23
The writeup for Sunrise 45 has now been augmented with a sweet list of instructions for some things you can actually do with Sunrise 45 ... a useful feature that (alas!) I all-to-often neglect to provide with AGC and other software.
2023-02-22
You may recall that about 4 months ago — only 4 months? It seems like an eternity! — Mike had managed to obtain dumps from physical core-rope memory modules of the Block I AGC programs Sunrise 45 and Sunrise 69.  Sunrise is one of a series of programs — the others being Sundial for the Block II AGC and Aurora for the LM AGC — whose principal claim to fame is that they were used for ground-acceptance and other testing of the Apollo spacecraft guidance-and-navigation systems.  Thus not only is Sunrise one of our very few surviving Block I AGC programs (the other being Solarium), and indeed the oldest non-trivial AGC program available, but it's also darned useful for anyone interested in building their own Block I system.  Because now you can test it!  Not that collision between reality and your expectations will necessarily bring you instant joy. 

At any rate, I digress.  The news today is that the AGC source code belonging to the physical dump of Sunrise 45 has now been reconstructed, and is available on our Colossus page, in our software repository, and so on.  Enjoy!
2023-02-20
Mike sent over a few new documents for the Apollo document library.  Here's his synopsis:
The first two are new (much better) scans of the Apollo Mission Simulator Instructor Handbook, volumes I and II, which are already in the library. Volume I is the same revision as the one in the library, while Volume II is a slightly later revision than the one we already have. The third is a nifty little booklet about the Lunar Module Environmental Control Subsystem by Hamilton Standard. It's filled with lots of technical details, sketches, and numbers, some of which we don't have from other sources.
Besides that, there is a Space Shuttle "document" that has been floating around for some time, but which I had resisted adding to the Shuttle library because I thought it was just a collection of pages from a another document in the library (namely IBM FSD document 85-C67-001, "Space Shuttle Model AP-101S Principles of Operation with Shuttle Instruction Set") for which somebody had been reviewing changes.  But has been pointed out to me (thanks Hartmuth Gutsche!) that it contains material — a lot of material — found neither in the afore-mentioned document, nor in any other source presently available to us.  This thing has no title, date, or author, so I can't even really tell if it's excerpted from a single document or from a variety of documents.  At any rate, I've assuaged my guilt a tad by adding a few niceties to the document, such as searchable text and correctly oriented pages, and have now posted it in the Shuttle library.
2023-02-15
  • New pages dedicated to my "modern" version of the Space Shuttle HAL/S compiler and (a new thing they didn't have back in the day) HAL/S interpreter have been added to the website.  The compiler/interpreter itself is undergoing frequent changes in our software repository, and it's nowhere near complete or debugged.  Development is pretty time-consuming, which is partially why I haven't been posting much lately.  But in spite of that the HAL/S interpreter is in a form that allows playing around with HAL/S ... if you're very, very tolerant of the kinds of problems you encounter using super-bleeding-edge works in progress.  I felt it was time to write up something more-definitive than the vague comments previously on our Shuttle page, particularly as I will likely want help at some point turning this preliminary version of the compiler, and the associated emulator built into the interpreter, into an advanced form that can produce efficient Shuttle code and run it fast.  That effort is actually something that could begin right now, if anybody was pounding on my door to help with it; or more helpful at this point, willing just to take it entirely under their own wing without interference from me!  Alas, I still have received no actual HAL/S flight-software source code whatsoever, so keep your fingers crossed on that.
  • Mike got the "Apollo Operations Handbook" (volume 1) for LM-2 somewhere and so I've added it to the document library.  Though predating our operations handbook for LM-3, it's apparently bigger, with lots more foldouts.  Go figure!
2023-01-16
Several documents added to the main document library and to the Shuttle library, most of which I've been sitting on for a while because I've begrudged any time I had to spend away from working on the Shuttle HAL/S compiler.    Mostly, these documents are supplementary in nature and don't directly relate to Apollo or Shuttle computer systems, which of course is our primary focus.
2023-01-03 Added just one document to the Shuttle Library.  It appears that we've finally had the Shuttle Library for long enough that some of the documents in it are no longer marked with the badge.  Yes, I know:  Who cares?  Well, I was eagerly awaiting the day when some Shuttle documents were no longer "new". 

Actually, the newly-added document for today, the STS-114 Flight Readiness Review (FRR) presentation, gives some interesting insights into the evolution of the Shuttle's onboard software that I at least hadn't seen before.  Since we don't actually have any of the Shuttle's flight-software source code yet, it's all too easy to get into the habit of just thinking or talking about the Shuttle software, rather than admitting that there were many versions of it and that there were significant changes to the software over time into which we (unfortunately) have little visibility.  However, this FRR gives a rough count of the pretty-substantial amount of code changed from STS-107 (OI-29) to STS-114 (OI-30), as well as a top-level summary of the nature of those change.  In brief:


PFS
BFS
MEDS
Thousands of Lines of Code
Added/Deleted/Modified
15.1
(3.3%)
3.2
(2.9%)
9.6
(11.3%)
Software Change Requests
(SCRs) Implemented
122
30
13

In looking through these notes, I see that I've neglected to mention what I personally have been working on lately.  Whilst awaiting the arrival of Shuttle flight-software source code on my doorstep — or more accurately, my inbox — and in lieu of a working version of the Shuttle-era HAL/S compiler, I've been writing a modern compiler and emulator for the HAL/S computer language.  Recall that HAL/S was the high-level language — and a pretty sophisticated one at that — in which the Shuttle's Primary Flight Software (PFS) and Backup Flight Software (BFS) were written.  Creating this compiler and emulator turns out to be quite a substantial effort, in which I'm increasingly thinking that I'll eventually want or need to enlist the help of other coders who are paying attention.

But in spite of my probable long-term need for help, I'm still making good progress on it by myself.  For my immediate engineering purposes, I'm actually combining the HAL/S compiler and emulator functionality in the form of a HAL/S interpreter, into which you can type HAL/S statements and immediately see the results from compiling and running that code.  Yesterday was a big milestone for that, in that it was the first time I was able to see it produce some output ... admittedly, on a very small but still important subset of the HAL/S language.

For illustrative purposes, here's a cut-and-paste of a short interactive session with the HAL/S interpreter:
HAL/S > DECLARE I INTEGER, X SCALAR, Y SCALAR;
HAL/S > X = 50.26;
HAL/S > Y = 100.92;
HAL/S > I = 3 X - Y;
HAL/S > WRITE(6) 'The result of 3 X - Y,', 3 X - Y, ', converted to an integer, is:', I;
        The result of 3 X - Y, 49.86 , converted to an integer, is: 50
HAL/S >
I suppose it's obvious to you, but "HAL/S > " is the user-prompt displayed by the interpreter, the stuff in red is output by the emulator, and the rest of the stuff was what I typed in myself as input to the interpreter.  As brief as this session is, you can still see various interesting features of HAL/S.  For example:  It is strongly typed, and hence all variables must be DECLARE'd before use; floating-point types (or in HAL/S lingo, SCALAR types) are automatically rounded when assigned to INTEGER variables; there is no multiplication operator, and multiplication is done just by sticking things next to each other, as in 3 X; and the WRITE(6) statement shows some clear inheritance from the FORTRAN language, even though HAL/S as a whole bears very little resemblance to FORTRAN.
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