|
|
|
|
|
by sho_hn
971 days ago
|
|
The main CCS computers are a custom 18-bit (not all registers are 18 bit) design from General Electric, used on both the Viking and Voyager missions. The onboard software is mostly in assembly. There's two of them. They send software updates fairly regularly (including a nearly full rewrite in 1990) and this is a common question. You can find some statements in older reporting on other updates.. It's in some sense not very exciting. Basically, it's an interrupt-driven system and you can, by radio command, invoke handlers that will rewrite some memory holding the program with new contents and hand control back to other routines. Of course with the expected error handling and failover protections in place. NASA got quite good at it during the Mariner missions, which saw the first remote updates for their programmable sequencers, and by the time of Viking and the CCS, it was a routine part of the requirements. There's tooling written in Fortran (and later partially ported with C) that supports the Earth-based team in preparing the updates. The patches discussed in the article are actually for a different type of computer in the system, the AACS (Attitude and Articulation Control Subsystem). But it's similar there: There's redundancy (there's two) and you patch memory contents, do a memory read-out to double check and kick things into gear. |
|
Well, neither is the Doom source code for most people, but for others it could be pretty cool to read, especially that the moon lander's source code is already public.