Monday, September 2, 2013

NASA Viking Computers

What's this blog ?

A page to collect information on the NASA Viking Lander and Orbiter computer and communication systems used. I've yet to locate the software for the Lander or Orbiter but it's out there. The aim would be to produce a GCSC and CCS simulator that could run the original software using SIMH or similar open source framework.

Any info regarding the code for the computers please email me  trevor.nunes@gmail.com

Viking Lander  Honeywell HDC 402 

Was the HDC-402 derived from the 316/516 series with just 24bit addressing? Appears to be a custom design if we note this comment:

One problem Lander software developers had was that no adequate assembler was ever written for the computer, perhaps because of the changing nature of the instruction set. Patches had to be hand-coded in octal, with many jumps to unused memory space because of the lack of an assembler with relocatable addressing. A programmer trying to trace a routine thus had to contend with having to go back and forth on the memory map to follow the logic.


  • Honeywell HDC 402 computer
  • 18kb 'plated wire' memory
  • Martin Marrietta 'Denver' division developed the software
  • Viking Controls Mock Up ( VCMP  ) emulator ran on micro programmable IC-7000
  • Fortran74 and Assembly for core routines, first use of high level programming language.
  • 8 interrupt levels
  • direct and indirect addressing  3 levels of indexing. 
  • 4.34us cycle time ( add 8.68us , multiply 81.6us, divide 128.5 us )
  • 2.304 MHz  master clock frequency
  • 24 bit word size
  • 47 instructions ( 316 has 72 instructions probably custom job )
  • Used a 'time sharing' executive for the 'OS' ( timer driven tasks )
  • 10ms interrupt timer,  A,B,C,D rate actions ( 20, 40, 200,1000 ms ) intervals for scheduling tasks.

H316 instruction set probably not related:  -> 70130072176C_316_CPU_Descr_Apr73.pdf 


Storage mechanism

  • The data storage devices DSM,TR comprised of 24 bit wire wrapped memory ...
  • DSM ( Data Storage Memory ) was 8192 word 24bit  plated wire memory.
  • TR ( Tape Recorder )  4 channel serial digital recorder 10 million bits per channel ~1.2MB.
  • DAPU unit ( Data Aquisition Processing Unit )  reads/writes to DSM 
  • DAPU <-> DSM <-> TR
  • Summary: 24bit persistent store,  24bit command codes  
  • 24 bits + 1 parity bit for storage so technically 25bit plated wire memory.

24 bits  (16777216 bits, 2097152 bytes, 2048kb or 2MB )  this would allow direct addressing of stored memory which is simpler than a banked/paged mechanism and faster than a 16bit addressing scheme. 


b
Barton Greer, R Wigley ,Jim Barton, F.X Carey  Jan 1975 showing HDC-402 units

Viking Orbiter

  • General Electric 18bit TTL
  • 6 bit op codes, 12 bit addressing
  • 64 instructions 4kb direct addressing
  • signed 2s compliment store  -131kb -> 131kb
  • 4kb plated wire mem  as 4 banks of 1kb  
  • first 2 banks configured as read only program code, last 2 as data 
  • 88 us cycle time for instructions
  • 18 bit accumulator
  • 12 bit program counter
  • no multiply/divide , coded in assembler
  • 32 interrupt levels.
  • 'TRAP' handlers - no OS to speak of ie simple state machine.
  • Communications: 2.3Ghz, 2.1Ghz uplink, 8.4Ghz download link

Links

http://simh.trailing-edge.com/  http://simh.trailing-edge.com/docs/simh.pdf
viking-lander-flight-capsule-3
 http://history.nasa.gov/computers/Ch5-6.html
http://bitsavers.trailing-edge.com/pdf/honeywell/series16/h316/
http://archive.org/details/nasa_techdocs/
http://nssdcftp.gsfc.nasa.gov/miscellaneous/planetary/viking/
http://nssdc.gsfc.nasa.gov/planetary/viking.html