Go Back   Orbiter-Forum > Orbiter Addons > Addon Support & Bugs > Addon Developer Forums > Project Apollo - NASSP
Register Blogs Orbinauts List Social Groups FAQ Projects Mark Forums Read

Project Apollo - NASSP Development, support and news for Project Apollo.

Thread Tools
Old 03-17-2019, 03:15 AM   #1
Default ACG Memory Addressing

I am currently studying "The Apollo Guidance Computer: Architecture and Operation" by Frank O'Brien, and I'm having some trouble with the section on memory addressing.

On page 61, under the heading "Fixed storage banking," it says the following:

"One value has already been mentioned: a binary 00 in bits 12 and 11 indicates that an erasable storage location is referenced. When the binary value 10 or 11 is in these two bits, the entire 12 bit address field is used to reference the "unswitched-fixed" storage, the region of fixed storage where the FBANK register is not used. Only when a binary 01 exists in bits 12 and 11 are the contents of the FBANK register appended to the lower ten bits of the address."

So in this section, it looks like:

00: Erasable storage

01: Switched-Fixed storage using FBANK

10: Unswitched-fixed storage

11: Unswitched-fixed storage

However, a couple of sentences later, it says:

"Where bits 12 and 11 are binary 10, indicating that the FBANK register is necessary, and the contents of FBANK are 00 or 01, the address overlaps with the unswitched-fixed storage area."

Here, it appears that:

00: Erasable storage (or perhaps unswitched-fixed?)

01: Unswitched-fixed storage

10: Switched-Fixed storage using FBANK

11: Not mentioned (presumably Unswitched-fixed)

Figure 18 has a different allocation to both of these, it says that:

00: Erasable storage

01: Unswitched-Fixed storage

10: Unswitched-Fixed storage

11: Switched-Fixed storage using FBANK

Then in Figure 19, bits 12 and 11 are 00, yet it's labelled as "Switched-Fixed Storage." Also in this figure, the 10th bit has changed from 0 to 1 when it was carried across to the Physical Address.

These various allocations seem inconsistent to me. Can someone help me understand which values of bits 11 and 12 will access which memory banks?

Many thanks,
msligo is offline   Reply With Quote
Old 03-17-2019, 07:24 AM   #2
thewonderidiot's Avatar

Hi! Unfortunately, the hardware sections of "Apollo Guidance Computer: Architecture and Operation" are somewhat lacking, and filled with little errors and inaccuracies like these. In general I wouldn't recommend studying it too closely, or trusting what it says, if you're really trying to learn how the thing worked. The later sections on software design and operation are much better.

The best original source for this sort of thing is the "Apollo Guidance Program Symbolic Listing Information for Block 2". We've jokingly referred to it as the "AGC Bible", because it goes over just about everything you'd want to know about using it; instructions, addressing, assembler directives, operating system routines, etc. Plus we've found very few errors in it. Section IIB, starting on pdf page 13, covers addressing; you might find its description more clear.

To answer your question, though, the first list you gave is correct. For {S12, S11}:
00: Erasable storage
01: Switched-Fixed storage using FBANK
10: Unswitched-fixed storage
11: Unswitched-fixed storage

This is reflected in the addresses used in assembly. A word with only bit 11 set is 02000, and a word with only bit 12 set is 04000. Keeping that in mind:

0000-1400: Unswitched Erasable (neither set)
1400-1777: Switched Erasable (neither set)
2000-3777: Switched Fixed (bit 11 set)
4000-7777: Unswitched Fixed (bit 12 set, bit 11 set for 6000-7777)

The banking scheme becomes much more intuitive when you think about how many bits it takes to represent a bank. I only just recently realized how cleanly the three superbank bits work; but there aren't any original diagrams for that and it'll take me a bit to draw them up. I can follow up with them, if you're interested.
thewonderidiot is offline   Reply With Quote

  Orbiter-Forum > Orbiter Addons > Addon Support & Bugs > Addon Developer Forums > Project Apollo - NASSP

Thread Tools

Posting Rules
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Jump

All times are GMT. The time now is 05:58 AM.

Quick Links Need Help?

About Us | Rules & Guidelines | TOS Policy | Privacy Policy

Orbiter-Forum is hosted at Orbithangar.com
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Copyright 2007 - 2017, Orbiter-Forum.com. All rights reserved.