﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
240	start_cpu$start_cpu uses incorrect sizes and offsets to read the PROM data.	canthony	Eric Swenson	"""58009997-040 MULTICS Differences Manual DPS 8 70/M"" pages 32 to 33 describes the layout of the PROM, with a column heading ""Byte Location (Octal)"" 

Specifically:
   0-13  CPU Model Number
  13-25  CPU Serial Number
  26-33  Date-Ship Code (YYMMDD)

(I believe 0-13 to be a typo; it should read 0-12; the usage in start_cpu agrees with this interpretation.)

In start_cpu:

    cpu_model      char (13) aligned,  /* storage for cpu model number (from ID PROM) */
    cpu_serial     char (13) aligned,  /* storage for cpu serial number (from ID PROM) */
    cpu_ship_date  char (8) aligned;   /* storage for cpu ship date (from ID PROM) */

and

    call privileged_mode_ut$read_id_prom (cpu_model, 0);
                        /* get cpu model from ID PROM */
    call privileged_mode_ut$read_id_prom (cpu_serial, 13);
                        /* get cpu serial # from ID PROM */
    call privileged_mode_ut$read_id_prom (cpu_ship_date, 26);
                        /* get ship date from ID PROM */

Note that the offsets and derived lengths are based on interpreting the offsets as decimal.
"	defect	closed	major	MR12.8	Answering Service	MR12.7	fixed		
