Virtual AGC

A simulation of the Apollo Guidance Computer.
Download

Virtual AGC Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Ron Burkey
  • Publisher web site:
  • http://www.sandroid.org/imcross/

Virtual AGC Tags


Virtual AGC Description

A simulation of the Apollo Guidance Computer. Virtual AGC project is a simulation of the Apollo Guidance Computer (AGC) used in the Apollo Command Modules and Lunar Modules in 1968-1972, as well as the Abort Guidance System (AGS) used in the LM.The project includes an emulated CPU, an emulated display/keyboard (DSKY), the AGC's original executable binaries and machine-readable assembly-language source code (Luminary and Colossus), AGC source code for a CPU validation suite, an AGC assembler, scanned Apollo documentation, and other elements.The emulated CPU has been designed to be modular and portable, to facilitate incorporation into spacecraft simulations such as lunar-lander simulations. What's New in This Release: As far as the website itself is concerned, various people have sent me interesting and useful stuff which I've added. I won't detail those things here, except to say "Thank you!" to Dimitris Vitoris, Mirko Mattioli, and Onno Hommes. Some important corrections have been made to material on the the website itself, thanks to Fabrizio Bernardini: · We now know with a higher degree of certainty that Luminary 1E build 210 was flown in Apollo 17 (and probably Apollo 15-16), whereas before there was some dispute that it might have instead been Luminary 1D build 209. This is significant in the sense that we're aware of a listing for 1D (and may even get a copy of it someday), but we're not aware of the existence of a copy of 1E. As to what the differences between 1D and 1E are, that will await future revelations! Perhaps there are none. · We are now aware that AGS Flight Program 8 was used in Apollo 15-17, rather than in Apollo 14 as previously supposed. This is significant because we actually have a copy of Flight Program 8 included within the project, and it's good to know what we have! Software-wise, lots of bugs have been fixed and auxiliary changes associated with those fixes have been made, so that I'm not even sure I remember them all. Here are some of the ones that stand out in my mind as particularly significant: · There was an issue in sequencing key-releases with shifting of buffered keypad data in communications between yaDEDA/yaDEDA2 and yaAGS, which could basically break AGS communications, requiring a reboot of the simulation to fix it. The effect was fairly repeatable if the HOLD key was hit and then the READ OUT key was hit. I *hope* it's fixed now. A new --debug-deda switch in yaAGS helped me find this one. · The yaAGC and yaAGS --debug modes were crippled using the as-distributed symbol tables for Luminary and Colossus, because they embedded path names to the source-code files that were set at compile time ... in other words, for the symtabs I've been distributing, they pointed to source files in directories on my computer. · Moreover, the symbol tables used the natural endianness of the CPU, meaning that symbol tables generated on an Intel architecture would not work if I distributed them to a PowerPC architecture. · There was a bug in the yaAGC core-dump and --resume, in which half the time resuming from a core-dump would cause the DSKY to become non-responsive. My believe is that some state information (probably relating to interrupts) was not being saved in the core-dumps. · I think there was a bug in direction flags (displacement direction of the control stick from detent) sent to the AGC by yaACA when more than one axis was displaced. The bug carried over into yaACA3 (see below) as well, but I fixed it in both places. In terms of new features, again there are lots. Some of the more significant ones are: · VirtualAGC has also been given a capability not present in any software existing previously to the GUI, in that it can perform scripted Digital Uplinks to the AGC. · VirtualAGC integrates AGC/AEA compilation and source-code browsing, in addition to merely managing the simulation. · yaAGC and yaAGS have been modified so that when in --debug mode they no longer output status messages like socket connections or disconnections of peripherals, thus giving an "easier" to understand debugging experience. · While it is basically a feature-neutral change, the ACA emulation program yaACA has been superceded by yaACA3, principally to allow the use SDL rather than Allegro for providing the joystick interface. The initial motivation for this was that Paul Fjeld (thanks, Paul!) advised that SDL's joystick code was more stable than Allegro's on Mac OS X. However, having made this replacement, I find some other significant advantages, the two principal being that there is far less configuration burden (and what configuration there is I've integrated in a way that won't be painful for VirtualAGC), and that I find I hadn't noticed before that yaACA provides absolutely no console feedback on Windows, making debugging that much more painful. I've also taken the opportunity to use static linking for SDL, to avoid distributing Allegro's dll. So hopefully it's a win-win-win-win kind of dealio.


Virtual AGC Related Software