

View the alarm codes

Because of some current bugs (07/19/04) in the way I initialize Colossus, there will be some program alarms at startup, and the PROG indicator will light to inform you of this. You can view the alarms by keying in V05N09E at the DSKY. (In normal AGC shorthand, 'V' is short for "VERB", 'N' is short for "NOUN", and 'E' is short for "ENTR". So "V05N09E" means to hit the keys VERB 0 5 NOUN 0 9 ENTR.)



Program alarms 1105 and 1106 happen to be "downlink too fast" and "uplink too fast". Uplinks or downlinks refer to exchange of telemetry information with ground equipment.



DSKY lamp test At the DSKY, key in V35E. This will light up all of the DSKY annunciators, flash the VERB/NOUN labels, and display 88 or +88888 in all of the numerical registers. After about 5 seconds, the test stops—you can tell, because the flashing stops, though the numbers remain—and you can continue.



When the accompanying screenshot was taken, I didn't yet know how the AGC controls the DSKY's STBY and RESTART indicators, so those weren't turned on by the test. Because of a bug in the simulator (as of 07/19/04), the PROG indicator doesn't re-light after the lamp-test completes. Therefore, you may or may not see the PROG indicator lit if you try the sample operations below.





Display memory-bank checksums The core-rope (read-only) memory is divided into 36 banks, numbered 00-43 (octal). A so-called "bugger word" has been stuck at the end of each bank—no comments on this terminology, please, since I didn't invent it; when I asked Don Eyles some question that involved them, he somewhat-laconically stated "we called them check sums"—which causes the checksum of the bank to come out to a known value. This known value is the same as the bank number when possible, and is the logical complement of the bank number otherwise. (For example, the checksum of Colossus bank 00007 is 00007, but the checksum of bank 00006 is 77771. Both are correct.) Colossus 's "show-banksum" program can be used to display the bank numbers, one by one. You can execute the show-banksum program by keying in V91E on the DSKY. After a few seconds, the statistics for bank 00 will be shown: R1 (the topmost 5-digit display) will contain the computed checksum; R2 will contain the bank number; and R3 will contain the bugger word. Each of the displays will be in octal, as indicated by the fact that the +/- sign is blank. To advance to the next bank, key in V33E. (Hitting the PRO key does the same thing.) If you have the patience to advance through each of the banks, the next V33E (or PRO) after bank 43 will wrap-around to bank 00 again. To terminate the show-banksum program, you can key in V34E.



By the way, the bank-6 bugger word shown (05143) is for Colossus 249. If you ran the Artemis 072 program, it would have been 04275, while if you ran the Luminary 131 program, it would have been 63402.





Monitor the current time If you key in V16N36E or V16N65E, it will cause the current time to be displayed. (Since we haven't set the time in any way, this will be the time since AGC power-up). R1 (the topmost 5-digit display) will be in hours, R2 will be in minutes, and R3 will be in 100ths of a second. This display is updated once per second.



In the accompanying screenshot, the time is 06:58:33.86.





Setting the current time If it annoys you to see the time since power-up, you can change the time (for example, to mission time) by keying in V25N36E. R1 will go blank, enabling you to key in the current hour. Make sure you start with a + sign (this is how the AGC knows you're using decimal rather than octal), and make sure you enter all five digits (including the leading zeroes). In case you make a mistake, you can clear R1 any time before pressing ENTR by using the CLR key. After you hit the ENTR key, R2 will clear and you can enter the current minutes. Finally, you can key in the number of seconds in R3. Don't forget that the number of seconds is actually in 100ths of seconds, so that if (for example) you want 30 seconds you'd key in +03000E.



In the accompanying screenshot, it just happened to be 06:55:25 am., so that's how I set the clock.





Examining the contents of the core-rope Key in V27N02E. This allows you to enter the address of a word in the core-rope into R3. This address will generally be in octal, and therefore should not be preceded by a + sign. Also, unlike entry of decimal data, in octal you can enter just as many digits as you need, and don't need to enter a full five digits. The addresses will be 00000-01777 for memory bank 00, 02000-03777 for memory bank 01, and so forth, up to 76000-77777 for memory bank 37. (I'm not sure how to examine banks 40-43.) The binary listing of the core rope is at the very back of the Colossus 249 assembly listing, which can be downloaded from MIT if you have some spare time and disk space. (See my links page.)



In the accompanying screenshot, we see that address 4000 (octal) of Luminary's core-rope contains the value 00004. This just happens to be the first instruction executed after power-up. It is an INHINT instruction, and disables interrupts. The contents of R2 (the middle 5-digit register) are not cleared, and thus are just whatever lingers from before.





Examining the contents of erasable memory Key in V01N02E. This allows you to enter the address of a word in erasable memory into R3. The addresses will be 00000-00377 for erasable bank E0, 00400-00777 for memory bank E1, and so forth, up to 03400-03777 for memory bank E7. Alternately, you can "monitor" a memory location (i.e., get updates for it once per second) by using VERB 11 rather than VERB 01. For example, V11N02E25E will monitor register 25, the "TIME1" register, which is an internal counter that increments every 10 ms. In general, of course, the numbers won't mean much unless you reference them to the Colossus 249 assembly listing.



In the accompanying screenshot, we actually do look at the TIME1 register, and discover that at that instant it contained the value 20245 (octal). Of course, you'll see something different. Display R2 is not changed, so it just contains whatever it contained before.





Altering the contents of erasable memory Key in V21N02E, and enter an octal address as above, and then enter a new value to be stored at that address. It goes without saying that you need to know what you're doing when you do this!



In the accompanying screenshot, I've chosen to reload the TIME1 register with the value 12345 (octal), which probably won't cause too many adverse effects. Display R2 is not changed, so it just contains whatever it contained before.



Fresh start Key in V36E. This apparently restarts the "pinball" program—i.e., the program that is responsible for accepting verbs and nouns and displaying stuff on the DSKY—and it's useful for clearing garbage from the DSKY's display, as the accompanying screenshot demonstrates.



In the accompanying screenshot, a side-effect of the fresh start is the thoughtful re-display of the PROG (program alarm) which the earlier DSKY lamp-test had wiped out.

