blogs.nasa.gov
"Unable to repair the chip, the team decided to place the affected code elsewhere"
pibbuR who wonders if the code is C (developed before launching Voyager). Probably not. Then he wonders if there are watchers knowing Voyager assembly
.
It's assembly and an intepreter (like Apollo), on new custom processors.
I looked a little into it.
NASA tells us there were several custom processors on the Voyager 1:
- Computer Command System (CCS) - 18-bit word, interrupt type processors (2) with 4096 words each of plated wire, non-volatile memory.
- Flight Data System (FDS) - 16-bit word machine (2) with modular memories and 8198 words each
- Attitude and Articulation Control System (AACS) - 18-bit word machines (2) with 4096 words each.
(Don't be mislead by the erroneous information on several websites stating the processor is an RCA 1802.)
Computers in Spaceflight: The NASA Experience (1988, from a NASA contractor) gives more details on the FDS processors on pp. 185-190, with more insight on the computer architecture on p. 189. BTW, it's a hell of a good document if you want to dig into the subject. It hints at an assembler, which is confirmed in
Voyager Interstellar Mission: Challenges of Flying a Very Old Spacecraft on a Very Long Mission (2016, from Jet Propulsion Lab itself) explaining all the challenges of long space missions and listing the interventions on Voyager 1 & 2, and in which we can read on p. 6:
Both the AACS and FDS use assembly language. The CCS uses assembly language and Voyager-unique pseudo code (interpreter). As a result, it is difficult to attract younger programmers to join the project.
Wikipedia and other websites have erroneously stated it was FORTRAN, then C, but this is the software used
on Earth to process the received data, not
on the probes (
according to this Wired article, which might be a leap of faith). I see this error on Wikipedia has been
recently corrected.
PS: The
Computers in Spaceflight document above mentions that the first high-level language was used for Galileo (p. 194). It's all relative, since they talk about FORTH, HAL, and macros (and FORTRAN for prototyping).