Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Apollo Guidance Computer
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Block II== A Block II version of the AGC was designed in 1966. It retained the basic Block I architecture, but increased erasable memory from 1 to 2 kilowords. Fixed memory was expanded from 24 to 36 kilowords. Instructions were expanded from 11 to 34 and I/O channels were implemented to replace the I/O registers on Block I. The Block II version is the one that actually flew to the moon. Block I was used during the uncrewed [[Apollo 4]] and [[Apollo 6|6]] flights, and was on board the ill-fated [[Apollo 1]]. The decision to expand the memory and instruction set for Block II, but to retain the Block I's restrictive three-bit op. code and 12-bit address had interesting design consequences. Various tricks were employed to squeeze in additional instructions, such as having special memory addresses which, when referenced, would implement a certain function. For instance, an <code>INDEX</code> to address 25 triggered the <code>RESUME</code> instruction to return from an interrupt. Likewise, <code>INDEX</code> 17 performed an <code>INHINT</code> instruction (inhibit interrupts), while <code>INDEX</code> 16 reenabled them (<code>RELINT</code>). Other instructions were implemented by preceding them with a special version of <code>TC</code> called <code>EXTEND</code>. The address spaces were extended by employing the Bank (fixed) and Ebank (erasable) registers, so the only memory of either type that could be addressed at any given time was the current bank, plus the small amount of fixed-fixed memory and the erasable memory. In addition, the bank register could address a maximum of 32 kilowords, so an Sbank (super-bank) register was required to access the last 4 kilowords. All across-bank subroutine calls had to be initiated from fixed-fixed memory through special functions to restore the original bank during the return: essentially a system of [[far pointer]]s. The Block II AGC also has the <CODE>EDRUPT</CODE> instruction (the name is a contraction of ''Ed's Interrupt'', after [[Ed Smally]], the programmer who requested it). This instruction does not generate an interrupt, rather it performs two actions that are common to interrupt processing. The first action, inhibits further interrupts (and requires a <CODE>RESUME</CODE> instruction to enable them again). In the second action, the <CODE>ZRUPT</CODE> register is loaded with the current value of the program counter (Z). It was only used once in the Apollo software, for setting up the DAP cycle termination sequence in the Digital Autopilot of the [[lunar module]].<ref>{{Cite book|last=O'Brien|first=Frank|url=https://books.google.com/books?id=3fKzL0HfJp4C&q=edrupt+instruction&pg=PA95|title=The Apollo Guidance Computer: Architecture and Operation|date=2010-06-25|publisher=Springer Science & Business Media|isbn=978-1-4419-0877-3|language=en}}</ref> It is believed to be responsible for problems emulating the LEM AGC [[Luminary software]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)