This page is devoted to physical implementations of the Block I and Block II AGCs, and their peripherals such as DSKYs.  In other words, to physical devices that you could build and keep in your living room to impress friends and neighbors.  Be the first on your block to have one!

John Pultorak's Block I AGC Project

The Pultorak PDFs

John Pultorak and his AGCJohn Pultorak has constructed a physical (not virtual), working model of a Block I AGC out of 74LS-series low-power Schottky TTL devices.  The model works, and runs software which John has adapted from Colossus 249 software.  John's unit even has the same general appearance as the original Block I AGC prototype!  Of course, Colossus 249 software is targeted for the Block II AGC rather than the Block I AGC, but John did not then know of any existing Block I source code, and indeed, even the Colossus 249 software listing he had at the time was only a partial one rather than a complete program.

No manned mission ever flew with a Block I AGC.  It was originally intended that Apollo 1 and Apollo 2 would be Block I missions; but I'm sure you know what happened to Apollo 1, and Apollo 2 never took place.  The unmanned missions AS-202 (sometimes referred to as Apollo 3, though it took place before Apollo 1 would have), Apollo 4, and Apollo 6 did use Block I AGCs.

John has thoughtfully provided us at Virtual AGC with his schematic diagrams, with adapted Block II software, and with his cross-assembler, all of which are a bit tricky otherwise to get in machine-readable form.  He has also documented his project in what I'll refer to as the Pultorak PDFs, which you may find a lot of other places on the web, but which I provide here as well, since why not?  The following block quote is simply a duplicate of what was on the sort-of-but-not-quite-discontinued klabs website:

Block I Apollo Guidance Computer (AGC):
How to build one in your basement

Material developed and provided by John Pultorak, who is kind enough to put these files into the public domain with no restrictions on their use.


This report describes my successful project to build a working reproduction of the 1964 prototype for the Block I Apollo Guidance Computer. The AGC is the flight computer for the Apollo moon landings, with one unit in the command module and one in the LEM.

I built it in my basement. It took me 4 years.

If you like, you can build one too. It will take you less time, and yours will be better than mine.

I documented my project in 9 separate files:

Part 1 - Overview [8.1 MB]: Introduces the project.
Part 2 - CTL Module [9.9 MB]: Design and construction of the control module.
Part 3 - PROC Module [6.7 MB]: Design and construction of the processing (CPU) module.
Part 4 - MEM Module [6.8 MB]: Design and construction of the memory module.
Part 5 - IO Module [7.0 MB]: Design and construction of the diskplay/keyboard (DSKY) module.
Part 6 - Assembler [0.5 MB]: A cross-assembler for AGC software development.
Part 7 - C++ Simulator [5.2 MB]: A low-level simulator that runs assembled AGC code.
Part 8 - Flight Software [2.8 MB]: My translation of portions of the COLOSSUS 249 flight software.
Part 9 - Test & Checkout [0.9 MB]: A suite of test programs in AGC assembly language.

Why build an AGC?

Early computers are interesting. Because they're simple, you can (if you like) actually understand the entire computer, from hardware to software.

The AGC is the most interesting early computer because: it flew the first men to the moon and has interesting architectural features.

How is this Related to Virtual AGC?

It's not.  John's project is not an offshoot of the Virtual AGC project, or vice-versa, and neither project uses materials created by the other.  But John's project is at an end, and he doesn't want the hassle of maintaining a web presence for it, whereas Virtual AGC is an ongoing project.  (But see our Block 1 page.)  So as a courtesy, the Virtual AGC website is going to host supplemental materials for the Pultorak project that haven't worked their way into the other websites mentioned above.

I should mention, though, that it was John who acquired for us all of the documentation and source code that we presently have for the LM's abort computer.  (Of course, I had to write the assembler and simulator myself, so he didn't do everything for us!)  And, the existence of his software Block I simulation (see below), which he wrote in preparation for his hardware simulation, has been extremely helpful in the creation of our own Block I simulator.  So it would be hard to overestimate the value John has had for us a Virtual AGC.  Thanks, John!

The Supplemental Materials

Copyright and Licensing

The Pultorak PDFs do not address the question of copyright for the software or schematics, nor the conditions under which they may be used by others, though the webpages themselves are copyrighted by John.  Obviously, the quote from klabs.or earlier claims that John has put them into the public domain. John has told me that he wants everyone to be able to use the software and hardware freely.  Click here to see an email in which he explains this.  (And just in case you wonder about the context, click here to see email containing my copyright/licensing questions to which he is replying.)

AGC Source Code

AGC source code (flight software adapted for Block I and for John's cross-assembler, test & checkout software, and so forth) is provided in the Pultorak PDFs, but you have to have some means of extracting them to use them for anything.  Moreover, the PDFs often provide assembly listings—i.e., reports generated by the assembler—rather than pure source code.  An assembly listing isn't a legal assembly-language source-code file, so you can't conveniently change and reassemble it.  You can get a zipfile containing the source code and some supplemental files (such as hex files) by clicking here (1 MB). 

Unfortunately, the format accepted by John's cross-assembler isn't compatible with yaYUL (or vice-versa), so these source files cannot be assembled by yaYUL.  They must be assembled using John's cross-assembler.

Assembler and Simulator Source Code

The Visual C++ source code for John's PC-based cross-assembler and simulator do appear in the Pultorak PDFs, but rather than cutting-and-pasting you may find it more convenient to download a zipfile by clicking here (3.7 MB).  In addition to John's original code, there is work in progress on a corrected, cross-platform version of that code for gcc, and on an alternative cross-platform simulator with an unrelated source-code base.

Circuit Design

The Pultorak PDFs do provide schematic diagrams, but some readers have commented that it is difficult to make out some of the details in them.  You can download a zipfile containing the complete CAD files for the design by clicking here (1.7 MB).  The CAD files are in Circuitmaker format (*.ckt), but even if you don't have a copy of Circuitmaker, the zipfile may be worth downloading because it also contains:
At the time John created these materials and first sent them to me, Circuitmaker was available commercially, and if you couldn't afford the full version of the program you could either have downloaded the free but limited "student" version of the software, or else you could download a full but time-limited demo version of the program.  Since that time, however, the company which was selling Circuitmaker has apparently been acquired by Altium, and the Circuitmaker program has been discontinuedAccording to Altium's website, the substantially more expensive Altium Designer product is supposed to be able to import existing Circuitmaker schematics.  I have no idea whether this is true or not, though my past experiences in such situations leads me to be suspicious about it.  If anybody else has tried it (and cares to convert John's schematics for me), please let me know.

In order to run Circuitmaker, you have to use Options/LibraryLocation (full or demo version) or File/Preferences/DirectoriesAndFiles (student version) on the menu to set the location of the "user library" (USER.LIB) that comes in our zipfile.  (After doing so, you will probably also have to exit from Circuitmaker and then re-run it, because Circuitmaker will already have loaded the default USER.LIB into its internal cache, and it won't reload it until being restarted.)   Otherwise, when you load the schematics they will have wires but no electrical components on them.  Incidentally, although Circuitmaker2000 is a Windows program, both the student and demo versions run just fine under Linux with CrossOver Office.  They may run fine too under normal Wine, but I haven't tried it.

One thing you will likely want to do with Circuitmaker is to create a netlist.  Neither the student nor demo versions of Circuitmaker seem to want to admit the notion that a single IC can contain multiple gates, and will therefore likely display an error prompt asking if you want to "correct" this condition.  If you say "yes", Circuitmaker will arbitrarily relabel the components within the schematic, so that only one gate appears in each package.  My advice would be to say "no" (not to correct), as the only negative side-effect of doing so appears to be that the netlist file will have duplicate entries for the packages with multiple gates, but the wire-list will be correct.

Integrated Development Environment (IDE)

Donna Polehn has created an GUI IDE (I think, Windows only) based on the Pultorak Simulator and assembler, which you can find at  In order to build it, you need C++Builder 6.  I've not tried it, since I don't personally have C++Builder 6 and don't normally run Windows, but I expect it's interesting.

Donna tells us also that she has made a functional Block I using the Terasic DE0 FPGA development board, as well as a custom FPGA board.  Those are available at the link listed above.

Mike Stewart's Block II AGC Project

You can find all the data on Mike's project at these two GitHub sites:
You have to take what I say about Mike's project with a bit of a grain of salt, because Mike has used his Block II simulator as a weapon for justice, rather than treating it as a work of art, and so I have to give him very high marks just on that basis alone. 

No, wait, is that what I wanted to say?

I jest, of course, but it may not be so far off.  What Mike has done, in his quest to perfect his simulation, has been unique.  He has used his hardware simulator to do detailed comparisons against our own software AGC simulator, yaAGC, and to repair yaAGC when he has found it to be broken in some way, along the way becoming a top contributor to the Virtual AGC project.  The problems he has found have certainly been subtle, but real.  One benefit to Virtual AGC is that bugs preventing yaAGC's use for landing the NASSP/Orbiter LM on the Moon have been fixed, and I got a nice note a few weeks ago (say, in late August of 2016) saying that they had finally landed on the Moon with any program alarms or other problems!  But there has apparently been some help flowing in the opposite direction as well, since Mike tells me that Jim Lawton's AGC wire-lister from our own GitHub repository was essential to his work.  Go figure!  I didn't even know it was there.  Good job, Jim!

As part of this, Mike has also been instrumental in acquiring AURORA, a very early AGC LM program, because it was the last AGC program to contain a full suite of test-suite software, which should help him (and us!) to locate yet other subtle bugs in the simulations, if bugs there be.

Mike's project also stands out because he has used open-source tools, so if you have the time, the expertise, and the will, you can reuse the material from his project without having to acquire proprietary tools to do so.

So while I haven't any fancy exclusive-to-VirtualAGC graphics of Mike's work to present to you here, I can't help but recommend it highly to you!

Dimitris Vitoris's Block I and Block II AGC Project

The project of Dimitris ("Jim") Vitoris takes over where John Pultorak's project stops.  The project is still in its very first stages, so please don't take any statements made here as commitments!  But the basic idea of the project is to be able to create a physical implementation of a Block II AGC and DSKY, which (unlike John Pultorak's Block I AGC above) can be constructed by hobbyists, without requiring the immense skill needed to construct a Pultorak AGC.

Here is a very uncertain roadmap of the project.  It may be that all of these phases will be completed, or it may be that the project will stop where it is now.  Or perhaps some phases might be skipped.  There is no timetable.  But however it goes, thanks Dimitris!

Project Phase
Conversion of John Pultorak's Block I AGC design (schematics only!) to Eagle CAD, with corrections and small improvements.
Ready now!
A clean restructuring of the Block I design -- for example, with AGC, DSKY, and monitoring busses separated into independent assemblies rather than being a part of one large assembly.
Preliminary data available.  (See change log.)
Block II AGC design (schematics and printed-circuit board layout!) using 74xxx TTL logic.
Size reduction of Block II design, using surface-mount parts and FPGAs.
Further, final size reduction of the Block II design, with added Virtual AGC compatibility.  (This would mean, for example, that one of Dimitris's physical DSKY could be used with a PC running Virtual AGC.)

Download 20090927 snapshot now!

The download is a zipfile containing the complete set of materials that have been created by Dimitris so far.

Dimitris uses Eagle CAD for this project (  Eagle is a cross-platform program that is available for Linux, Windows, and Mac OS X.  While Eagle is a proprietary program that costs money to purchase, there is a free version that can be used with small designs.  I have verified that the free version does allow viewing of the phase A0 schematics on Linux.

Once phase B0 and beyond are reached, it would be valuable to have mechanical design and drawings of things such as DSKYs, enclosures, front panels, and so forth, so that complete physical units can be constructed.  Any mechanical engineers who are interested should contact me at the email address at the bottom of this page.  Mechanical design of a Block II DSKY in particular would be useful, regardless of the how far Dimitris cares to advance his project.

Dimitris has also sent some photos of the physical device he is constructing:

The physical faceplate, work in progress!

Cleaned-up stylized drawing
from which measurements can
be taken.  A CorelDraw file is also

Dimitris mentions that his best estimate of the faceplate dimensions is 18.9 cm (7.44 in.) wide and 21.8 cm. (8.58 in.) high, and points out that additional dimensions can be extract from the right-hand drawing above.

Incidentally, Dimitris owns various bits and pieces of Block I equipment, and here are some photos he was kind enough to send us.  (

Block I AGC logic module
Block I AGC logic module
Block I AGC Logic Module

Block I AGC rope-memory module
Block I AGC rope-memory module
Block I AGC rope-memory module
Block I AGC Rope Memory Module

Block I DSKY power
Block I DSKY power
Block I DSKY Power Supply

Philip Schmidt's Block I AGC Project

Philip Schmidt has also been kind enough to let us know about his Block I physical implementation.  You can see his write-up of what he's been doing at his own web-page.  Phil tells me that he will eventually provide all of the CAD files for his design (in Altium Designer format), but for right now it's all PDFs while it's a work in progress.

Who's Building Them?

Alessandro Cinquemani

Of course, the great thing about these projects is that you can start from them and build your own AGC or DSKY.  If you have done so, feel free to send me some photos and/or descriptions of what you've built.  Where is Heathkit when you need it?

Alessandro Cinquemani of Aviano, Italy, has sent in the very nifty photo (click to enlarge) seen below.

Click to enlarge.

As I understand it, here we're seeing the DSKY and CTL modules, which Alessandro built by following through on John Pultorak's documentation.  Alessandro is still working on the MEM and PROC modules, but when the AGC is fully operational is considering making actual circuit boards.  Great job, Alessandro!

Alessandro has sent us a whole gallery of photo updates, reluctantly down-sampled by me to save some space.  He tells us (2009-06-17) that he thinks he may be able to finish it up in 3-4 months.  Click'n'enjoy:

Bruno Muller

Bruno Muller has created a physical DSKY that interacts with yaAGC via the NASSP plug-in for the Orbiter spacecraft simulator.  He has made a video and sent me the following charming YouTube link:


My personal bias is that I'd prefer it if these materials were available for use with a free and open-source CAD system rather than proprietary systems such as Circuitmaker and Eagle.   The subsequent discontinuation of the Circuitmaker program (mentioned above) puts the problem in stark relief:  John Pultorak spent a lot of time creating these materials, and yet within just a few years nobody will be able even to open the CAD files he created.  This website deals with things that happened (as of this writing) 40 years ago, and I'd like the  information presented here to still be useful 40 years from now ... or 400.  But the CAD files have proven to have a shelf-life of less than 5!

Such absurd situations should come as no surprise to anybody with substantial experience in using electrical CAD systems.  Speaking from experience, every proprietary electrical CAD program is eventually discontinued either by virtue of acquisition of the manufacturer or else a strategic decision by the manufacturer, and the schematic format is then orphaned, usually even without any documentation.  Yet I've never encountered an electrical designer who had noticed this fact or believed it was a problem; instead, CAD software is invariably chosen on the basis of whatever features are most convenient to the designer at that moment in time.   Indeed, I've made such selections myself, based on whatever software has the fastest or best autorouter.  But the autorouter relates only to PCB layout, and has essentially no relation to schematic capture, which could be done by a separate program from the PCB layout program entirely. Schematic capture and PCB layout are interrelated only by exchange of netlists and back-annotation info, and the notion that the two must be integrated into one program is a fantasy promoted by CAD manufacturers and swallowed en masse by circuit designers.  I'd venture the advice that if you're going to use a proprietary CAD program, it's best to use one that supports the Orcad file format, and to archive your work in that format, since it's the closest thing to a de facto standard that exists at the present time.

It would be nice if an open-source CAD tools were used instead, so that the schematics, PCB layouts, etc., would be freely editable by everybody without purchasing a proprietary tool.  If anybody wants to convert the CAD files into a more open format, your help would be welcomed.  Among those who think the way I do, the open-source KiCad tool seems to have currently captured the most mind-share, and if all the cool kids are using it, you may as well too!  Of course, if you absolutely insisted, we'd be happy to have Orcad, or any other format as well!  I've so far not found an automated tool to perform the conversion of Circuitmaker or Eagle to any other format.  (If you wanted to write a program that converted Circuitmaker or Eagle files to  some open format, I'm sure that would be even more valuable than the conversion itself.)

Last modified by Ronald Burkey on 2016-09-22

Virtual AGC is hosted