LeapSecond.com
A Look Inside the Z3801A EEPROM

24-Feb-2005

Introduction

Most modern microprocessor-based instruments contain EPROM's. ROM, EPROM, or EEPROM storage usually contains text (CPU instructions) and data (binary and text strings). Displaying the contents of the EEPROM often gives insight into the internals of the operating system or programs running on the CPU. If nothing else one can see the origin and context of all the messages that are externally displayed by the instrument.

With modern instruments it is also quite common to see remnants of revision control (RCS headers) and debug statements (casual printf format strings) left in the compiled image. This is true for operating system kernels, application programs of all sizes, and embedded programming. Although these don't have any effect on the released product, they do sometimes give appreciation and insight into the architecture and orderly design of the instrument

Observations

While most of the 512 KB EEPROM contains garbage-looking binary instructions and data, ASCII strings do stand out from the noise. A quick look at strings in the EEPROM show a large and complex embedded program. For example:

Low-level CPU support:

: PC = %#8x, SR = %#04x
, address = %#8x
RESET to recover.
bus error
address error
illegal instruction
divide by zero

Evidence of a real-time operating system:

PSOS-68033
@(#)$Header: psos.S,v 1.4 95/01/11 15:27:21 jacob Exp $

Interfaces with the time interval counter FPGA and interpolator:

setup fpga
ERROR: FPGA done line went high early
ERROR: FPGA programming failed
FPGA programmed

Result uncomputable
Measurement aborted
Interpolator calibration failure

Exhaustive lists of errors:

No error
Command error
Invalid character
Syntax error
Invalid separator
Data type error
GET not allowed
Parameter not allowed
Missing parameter
Command header error
Header separator error
Program mnemonic too long

Humorous debug comments:

Oooh! That tickles. I don't know that vector.

Raw strings for the famous SYST:STAT? message:

UTC CORR   %-19s                LEAP SEC  %-12s
1PPS OFFS  %9d ns   POS FIX THR %3d
CABLE DLY     %6d ns   DIF OUT THR %3d s
AVG LAT  %+3.6f = %s
AVG LON  %+3.6f = %s
AVG HGT  %+3.6f
N %11d

Various copyright notices:

Copyright Hewlett-Packard Co. 1993. All Rights Reserved.

Complete lists of instrument status:

No holdover cause
Holdover due to hardware failure
Holdover due to manual
Holdover due to GPS
Holdover due to TI error
Holdover due to TI limit exceeded
Holdover due to temporary mode
Holdover due to 1PPS selection

Long lists of SCPI command fragments:

CALC
ULATE
ACC
UMULATED
LEAP
SECOND
IMM
EDIATE
SYNC
HRONIZATION

And many more interesting strings. Those of you who are programmers will immediately recognize tables of error strings, production and debug printf format strings, interrupt vectors, SCPI parsing tables, and the like.

Someday, long after the copyrights have expired, someone might want to donate the Z3801A source code to the museum so this piece of history isn't lost forever. The same goes for the PIC sources.

SCPI Commands

A check shows no long list of new SCPI commands; thus the documentation for the Z3801A and related GPS receivers (e.g., 58503A, 59551A) appears complete. Recall that most SCPI words can be given as either a 4-character abbreviation or the full spelling. Here's a dump of all SCPI commands in a slightly different format:

        WAI..STB..SRE..RST..OPC..IDN..ESR..ESE..CLS..RVST..RTSA.
.RMHO..FMHO..RSST..RPHS..RSPR..IPSU..RTCM..REQU..CEQU..CALA..RAS
T..RSSU..WAT3..RAT3..WAT2..RAT2..WAT1..RAT1..WEAL..REAL..WFOU..R
FOU..WACD..RACD..W1PO..R1PO..WLOC..RLOC..WTZO..RTZO..RTAD..RWHO.
.TKN..ROB.IN.KEN.NETH.GARY..DOUG.LAS.DANA..DARRAY3..DARR3..DARRA
Y2..DARR2..DARRAY1..DARR1..DARRAY..DARR..DOUB.LE.FARRAY3..FARR3.
.FARRAY2..FARR2..FARRAY1..FARR1..FARRAY..FARR..FLO.AT.IMUL.TIPLE
.IARRAY4..IARR4..IARRAY3..IARR3..IARRAY2..IARR2..IARRAY1..IARR1.
.IARRAY..IARR..TARRAY3..TARR3..TARRAY2..TARR2..TARRAY1..TARR1..T
ARRAY..TARR..TOGG.LE.BARRAY2..BARR2..BARRAY1..BARR1..BARRAY..BAR
R..BOOL.EAN.ACT.ION.SAMP.LE.LENG.TH.PRIN.T.LANG.UAGE.SBIT.S.TYPE
..PAR.ITY.PACE..BITS..BAUD..TRAN.SMIT.REC.EIVE.PROM.PT.FDUP.LEX.
ADDR.ESS.COMM.UNICATE.PRES.ET.QUES.TIONABLE.ENAB.LE.COND.ITION.E
VEN.T.OPER.ATION.PRES.ENT.TUNC.ERTAINTY.AUTO..REC.OVERY.INIT.IAT
E.HYST.ERESIS.EXC.EEDED.ALAR3..ALARM3..ALAR1..ALARM1..MEAS.UREME
NT.STAR.T.PER.IOD.CONT.INUOUS.PULS.E.TZON.E.STR.ING.TFOM.ERIT.TC
OD.E.PPS..GPST.IME.CALC.ULATE.ACC.UMULATED.LEAP.SECOND.IMM.EDIAT
E.SYNC.HRONIZATION.FFOM.ERIT.PRED.ICTED.VIS.IBLE.INCL.UDE.TRAC.K
ING.SAT.ELLITE.VAL.ID.REF.ERENCE.PROG.RESS.DUR.ATION.ACT.UAL.INI
T.IAL.EMAN.GLE.ADEL.AY.SOUR.CE.EDGE..TSTAMP4..TST4..TSTAMP3..TST
3..TSTAMP2..TST2..TSTAMP1..TST1..TSTAMP..TST..TST.AMP.POIN.TS.SA
VE..OVER.FLOW.SENS.E.FREQ.UENCY.ALIG.NMENT.PINS..PIN7..PIN2..PIN
8..PIN3..PIN6..PIN1..OUTP.UT.TMHV.ALID.HOLD.OVER.GPSL.OCK.ENAB.L
ED.USER..MIN.OR.MAJ.OR.ALAR.M.ACT.IVE.LED..DATA..FORM.AT.TOFF.SE
T.RES.ULT.TEST..TEMP.ERATURE.PST.ARTUP.DOUT.PUT.SYST.EM.HAPP.ENI
NG.STAT.US.SLOG..EGR.ESPONSE.REST.RICTED.SERIAL2..SERIAL1..SERIA
L..SER..TCO.EFFICIENT.ABS.OLUTE.REL.ATIVE.EFC.ONTROL.CURR.ENT.RO
SC.ILLATOR.RESP.ONSE.QUER.Y.TINT.ERVAL.PTIM.E.STAC.K.PROC.ESS.ME
M.ORY.OS..ME..WRIT.E.READ..LOG..COUN.T.LIF.ETIME.SER.IAL.MOD.EL.
DEF.AULT.IDEN.TIFICATION.UTC..DEGR.EES.MSEC.ONDS.THR.ESHOLD.STAT
.E.RAIM..POS.ITION.GPS.YSTEM.DIAG.NOSTIC.XON..ONE..ODD..EVEN..NO
NE..ERR.OR.LIM.IT.HARD.WARE.FALL.ING.RIS.ING.NEG.ATIVE.POS.ITIVE
.SER2..SER1..FIRS.T.OTH.ER.LOCK.ED.REC.OVERING.WAIT.ING.HOLD.ING
.POW.ERUP.INT.EGER.ASC.II.QMRC..IMRC..POW.ER.GPS..IREF.ERENCE.IN
T.ERPOLATOR.FPGA..QSPI..UART..EEPR.OM.RAM..PROC.ESSOR.DISP.LAY.F
2..F1..ALL..LEAP..DEL.AY.HOLD..HPOS.ITION.IGN.ORE.MANG.LE.HEIG.H
T.LONG.ITUTDE.DATE..GCOR.RECTION.TIME..CLE.AR.SET..NTR.ANSITION.
PTR.ANSITION.ONCE..LONG.ITUDE.LAT.ITUDE.W..E..SURV.EY.LAST..S..N
..INF.INITY.MIN.IMUM.MAX.IMUM.T1..T0

There are a few surprises, though. See if you can find the names: ROB KENNETH GARY DOUGLAS DANA.

Z3801A EEPROM

While most of the 512 KB EEPROM contains garbage-looking binary instructions and data, ASCII strings do stand out from the noise. Below are all the visible strings in the Z3801A.

DUART
Boot: %s
: PC = %#8x, SR = %#04x
, address = %#8x
RESET to recover.
bus error
address error
illegal instruction
divide by zero
CHK trap
TRAPcc
privilege violation
trace
line 1010 emulation
line 1111 emulation
hardware breakpoint
co-processor protocol violation
format error
uninitialized interrupt
***RESERVED***
spurious interrupt
level 1 interrupt
level 2 interrupt
level 3 interrupt
level 4 interrupt
level 5 interrupt
level 6 interrupt
level 7 interrupt (NMI)
trap 00
trap 01
trap 02
trap 03
trap 04
trap 05
trap 06
trap 07
trap 08
trap 09
trap 10
trap 11
trap 12
trap 13
trap 14
trap 15
FPCP branch or set error
FPCP inexact result
FPCP divide by zero
FPCP underflow
FPCP operand error
FPCP overflow
FPCP signaling NAN
PMMU configuration
PMMU illegal operation
PMMU access violation
Oooh! That tickles. I don't know that vector.
Copyright Hewlett-Packard Co. 1993. All Rights Reserved.
fp unknown exception:
fp all precision lost:
fp inexact result:
fp divide by zero:
fp underflow:
fp overflow:
fp operand error:
fp signaling NaN:
?????   ftoi()  ftod()  dtof()  dtoi() cmp32() cmp64() add32() add64()
sub32() sub64() mul32() mul64() div32() div64()  itof() dtoui() ftoui()
uitod() uitof()  ?????
acos() acosf()  asin() asinf()  atan() atanf() atan2() atan2f() ceil()
ceilf()   cos()  cosf()  cosh() coshf()   exp()  expf()  fabs() fabsf()
floor()floorf()  fmod() fmodf() frexp()frexpf() ldexp()ldexpf()   log()
logf() log10()log10f()  modf() modff()   pow()  powf()   sin()  sinf()
sinh() sinhf()  sqrt() sqrtf()   tan()  tanf()  tanh() tanhf()  frem()
fremf()  ?????
Prog end, returned
@(#)$Header: psos.S,v 1.4 95/01/11 15:27:21 jacob Exp $
@(#)$Header: psos_indep.h,v 1.5 95/03/24 15:24:19 jacob Exp $
..PSOS-6803
V4.1 COPYRIGHT 1983, 1984, 1985, 1986 SOFTWARE COMPONENTS GROUP, INC. A
sysd
ROOTB
IDLEB
wait_v SIG_SOQ error in _drtb_puts
wait_v SIG_SIQ error in getc
drtR
Unable to create drtR: %X
Unable to initialize drtR: %X
drtW
Unable to create drtW: %X
Unable to initialize drtW: %X
DUARTB isr signaling SIGINTR
DUARTB isr signaling SIG_SIQ
DUARTB isr signaling SIG_SOQ
spoo
Spool_go error %#04x
, %08X
No error
Command error
Invalid character
Syntax error
Invalid separator
Data type error
GET not allowed
Parameter not allowed
Missing parameter
Command header error
Header separator error
Program mnemonic too long
Undefined header
Header suffix out of range
Numeric data error
Invalid character in number
Exponent too large
Too many digits
Numeric data not allowed
Suffix error
Invalid suffix
Suffix too long
Suffix not allowed
Character data error
Invalid character data
Character data too long
Character data not allowed
String data error
Invalid string data
String data not allowed
Block data error
Invalid block data
Block data not allowed
Expression error
Invalid expression
Expression data not allowed
Macro error
Invalid outside macro definition
Invalid inside macro definition
Macro parameter error
Execution error
Invalid while in local
Settings lost due to rtl
Trigger error
Trigger ignored
Arm ignored
Init ignored
Trigger deadlock
Arm deadlock
Parameter error
Settings conflict
Data out of range
Too much data
Illegal parameter value
Data corrupt or stale
Data questionable
Hardware error
Hardware missing
Mass storage error
Missing mass storage
Missing media
Corrupt media
Media full
Directory full
File name not found
File name error
Media protected
Math error in expression
Macro syntax error
Macro execution error
Illegal macro label
Macro definition too long
Macro recursion error
Macro redefinition not allowed
Macro header not found
Program error
Cannot create program
Illegal program name
Illegal variable name
Program currently running
Program syntax error
Program runtime error
Device-specific error
System error
Memory error
PUD memory error
Calibration memory lost
Save/recall memory lost
Configuration memory lost
Out of memory
Self-test failed
Queue overflow
Query error
Query INTERRUPTED
Query UNTERMINATED
Query DEADLOCKED
Query UNTERMINATED after indefinite response
E%+04d>
scpi >
scpi
scpi: alloc_seg error %#0x
scpi: error opening stream
No error
Communication error
Parity error in program message
Framing error in program message
Input buffer overrun
HEWLETT-PACKARD,%s,%s,%s-%c
PRIMARY
INSTALL
58000A
Unknown
$@(#)$Header: dev_tab.S,v 1.8 95/01/11 15:27:20 jacob Exp $
IDN
CLS
LANG
UAGE
ERR
SYST
TEST
ERAS
DOWN
LOAD
DIAG
NOSTIC
MIN
IMUM
MAX
IMUM
!$'+.158;?BEILO
00000000000000000000
0123456789ABCDEF
0123456789abcdef
Clk_do: error %#04x
Clk_do: out of event buffers
Sem_open of clk_msg failed
No clock entries
at: %02d/%02d/%04d %2d:%2d:%2d
period: %02d/%02d/%04d %2d:%2d:%2d
function address: %8X
event class: %d
klok
Pps_init error %#04x
Clk_go error %#04x
%s: %s
: PC = %#8x, SR = %#04x
, address = %#8x
RESET to recover.
bus error
address error
illegal instruction
divide by zero
CHK trap
TRAPcc
privilege violation
trace
line 1010 emulation
line 1111 emulation
hardware breakpoint
co-processor protocol violation
format error
uninitialized interrupt
***RESERVED***
spurious interrupt
level 1 interrupt
level 2 interrupt
level 3 interrupt
level 4 interrupt
level 5 interrupt
level 6 interrupt
level 7 interrupt (NMI)
trap 00
trap 01
trap 02
trap 03
trap 04
trap 05
trap 06
trap 07
trap 08
trap 09
trap 10
trap 11
trap 12
trap 13
trap 14
trap 15
FPCP branch or set error
FPCP inexact result
FPCP divide by zero
FPCP underflow
FPCP operand error
FPCP overflow
FPCP signaling NAN
PMMU configuration
PMMU illegal operation
PMMU access violation
Oooh! That tickles. I don't know that vector.
Copyright Hewlett-Packard Co. 1993. All Rights Reserved.
ps
mem_rep
s_rep
gpsx
plla
pllc
gpsm
hmon
pllp
curv
User: %5u of %5u b   Supv: %5u of %5u b
T1#H%08X%01d%01d%1c%1c%1c
%02X
rtcm? %u,T2%04d%02d%02d%02d%02d%02d%01d%01d%1c%1c%1c
T2%04d%02d%02d%02d%02d%02d%01d%01d%1c%1c%1c
fp unknown exception:
fp all precision lost:
fp inexact result:
fp divide by zero:
fp underflow:
fp overflow:
fp operand error:
fp signaling NaN:
?????   ftoi()  ftod()  dtof()  dtoi() cmp32() cmp64() add32() add64()
sub32() sub64() mul32() mul64() div32() div64()  itof() dtoui() ftoui()
uitod() uitof()  ?????
acos() acosf()  asin() asinf()  atan() atanf() atan2()atan2f()  ceil()
ceilf()   cos()  cosf()  cosh() coshf()   exp()  expf()  fabs() fabsf()
floor()floorf()  fmod() fmodf() frexp()frexpf() ldexp()ldexpf()   log()
logf() log10()log10f()  modf() modff()   pow()  powf()   sin()  sinf()
sinh() sinhf()  sqrt() sqrtf()   tan()  tanf()  tanh() tanhf()  frem()
fremf()  ?????
Prog end, returned
@(#)$Header: psos.S,v 1.4 95/01/11 15:27:21 jacob Exp $
@(#)$Header: psos_indep.h,v 1.5 95/03/24 15:24:19 jacob Exp $
..PSOS-6803
V4.1 COPYRIGHT 1983, 1984, 1985, 1986 SOFTWARE COMPONENTS GROUP, INC. A
sysd
ROOTB
IDLEB
Interpolator: A, MRC mode
Internal reference:
%s %s
System RAM: D15-D0:
System RAM: adr line A18-A1:
CPU:
EEPROM:
QSPI: ADC
QSPI: Hex DAC
QSPI: FPGA
QSPI: EFC
FPGA: counters not preset
UART: register read/write
UART: counter
UART: channel A data
UART: channel A timeout
UART: channel B data
UART: channel B timeout
GPS: Channel 1 Correlation
GPS: Channel 2 Correlation
GPS: Channel 3 Correlation
GPS: Channel 4 Correlation
GPS: Channel 5 Correlation
GPS: Channel 6 Correlation
GPS: 1 KHz Presence
GPS: ROM LSByte
GPS: ROM MSByte
GPS: RAM LSByte
GPS: RAM MSByte
GPS: EEPROM
GPS: DCXO SPI Comm
GPS: RTC Comm & Time
GPS: SW problem
GPS: Engine timeout
POWER: 5V
POWER: 15V
POWER: -15V
%s %s
FAIL
%s
UDISP
PROC
RAM
EEPROM
UART
QSPI
FPGA
INTERP
INT_REF
GPS
POWER
FAIL:
%s, error code: %02X
!iodev
pForth $Revision: 1.2 $
ERROR: "
" is only valid inside a definition.
?Stack empty
: not found
ERROR: Mismatched
"do" or "?do"
"loop" or "+loop"
"if"
"else"
"then" or "endif"
"begin"
"while"
"repeat"
"again"
"until"
(divide by zero
( empty )
is fenced
pSOS error
from function
pSOS version ID:
I/O error
Device:
Function:
over
abs
max
min
negate
here
fill
pick
rot
-rot
allot
2dup
2swap
abort
halt
false
true
and
not
xor
?dup
cmove
cmove>
2drop
drop
swap
dup
depth
else
then
endif
begin
while
repeat
again
until
?do
loop
+loop
leave
variable
create
constant
literal
mod
/mod
*/mod
sin
cos
emit
space
spaces
(.")
u.x
decimal
hex
base
state
[']
forget
words
startup
interpret
expect
type
word
count
tib
pad
does
recurse
immediate
fence
unfence
number
execute
watch
root
my_pid
spawn
ver
delete
suspend
resume
priority
jam_x
create_x
delete_x
send_x
request_x
signal_v
wait_v
get_v
pause
mode
ident
dev_init
dev_open
dev_close
dev_read
dev_write
dev_ctrl
!iodev
user
p4th
Temperature: %f
5V reading: %f
+15V reading: %f
-15V reading: %f
Oven: %f
Double oven: %f
Antenna current: %f
Temperature: %.2f
5V: %.2f
+15V: %.2f
-15V: %.2f
Oven: %.2f
Double oven: %.2f
Oven current: %.2f
No holdover cause
Holdover due to hardware failure
Holdover due to manual
Holdover due to GPS
Holdover due to TI error
Holdover due to TI limit exceeded
Holdover due to temporary mode
Holdover due to 1PPS selection
start ptr = %d    stop_ptr = %d
max loop time = %d
ffom = %1d
tfom = %.1e secs
last efc average = %.1f
current drift = %.1e / day
%f %.1f %d
%02d/%02d/%04d %02d:%02d:%02d, %1d, valid: %1d
set_timedate error: %2X
efc = %5f
Gen GPS state:
start
init ack
UTC corr send
UTC corr ack
mask angle send
mask angle ack
antenna delay send
antenna delay ack
pos location send
pos location ack
disable pos hold send
disable pos hold ack
sat ignore send
sat ignore ack
survey
set_survey location send
set_survey location ack
done
unknown
%s
Leap chk state:
leap start
leap pending send
leap pending ack
leap wait
: fine start
: fine sync meas
: fine sync 1
: fine sync 2
: fine meas 1
: fine meas delay
: fine meas 2
: fine slew
: fine slew meas
: fine fine slew
: fine unknown
PLL state:
invalid
powerup
: start
: internal oven warmup
: external oven warmup
: warmed up, waiting for GPS
: coarse
: fine
: waiting
: calculating leapseconds
: unknown
powerup recovery
holdover
holdover recovery
: checking time
startup pll
normal pll
diag
: reset send
: gps reset ack
: test send
: gps test ack
: stop meas
: test
idle
fatal error
Log test message %d
curr= %d efc= %.1f, sec remaining= %d
now do a least square line fit to data...
tempco = %f
Force crash from pforth
%.1f * %.1f = %.1f
cal
adc_read
adc_temp
adc_5v
adc_p15v
adc_m15v
adc_oven
adc_doven
adc_ant_curr
pr_adc_avg
efc_write
hdac_write
hdac_all
doven
dmessage
dmes_gpsm
dmes_hmon
dmes_klok
dmes_pllp
dmes_root
dmes_scpi
dmes_spoo
dmes_curv
dmes_all
wr_eeprom
clear_nv
debug_psos
clk_synch
get_time
set_time
abr_stat
print_stat
stat_rate
vis_stat_rate
print_vis
ext_msg_rate
dop_stat_rate
print_ext_msg
print_bc
gps_time
gps_date
gps_php
gps_ph
gps_cable_dly
force_1pps
efc_wr
pr_efc
pll_restart
pll_debug
lock
phase_off
pr_pll
log_send
print_clk_list
crash
leapsec
eman
q_eman
q_gps_php
q_gps_cable_dly
avg
clr_avg
init_gps
gps_query_all
quiet_status
master_reset
pr_gps_debug
clr_gps_debug
pr_gps_cmds
pr_avg
pr_gps_istate
pr_gps_id
pr_1pps
pr_time_raim
disable_gps_cmds
pstat
gps_change
gps_query
pr_hold_cause
loop_time
pll_rep
efc_rep
sync_imm
es_ascii
Dfp_u
wait_v SIG_SOQ error in _drtb_puts
wait_v SIG_SIQ error in getc
DRTB receiver error
drtR
Unable to create drtR: %X
Unable to initialize drtR: %X
drtW
Unable to create drtW: %X
Unable to initialize drtW: %X
wait_v SIG_SOQA error in drta_send_message
DRTA receiver overrun ocurred
wait_v SIG_SIQ error in drta_get_byte
DUART test string
DUARTA isr signaling SIG_SIQ
DUARTB isr signaling SIGINTR
DUARTB isr signaling SIG_SIQ
DUARTB isr signaling SIG_SOQ
DUART
, %08X
dmessage
%s: %s
%s: %s
FATAL ERROR:
%s
RESET to recover.
SPI isr signaling SPI owner
wait_v SIG_QSPI
SPI: mode failure
SPI: halted
spoo
Spool_go error %#04x
%s
setup fpga
ERROR: FPGA done line went high early
ERROR: FPGA programming failed
FPGA programmed
ERROR: FPGA INIT did not go high
ERROR: FPGA INIT did not go low
first: inv read: %02hX config: %02hX mask: %02hX
first: inv read: %04hX config: %02hX mask: %02hX
first: config_ptr: %08X mask_ptr: %08X
odd: inv read: %04hX config: %02hX mask: %02hX
odd: inv read: %02hX config: %02hX mask: %02hX
odd: config_ptr: %08X mask_ptr: %08X
even: inv read: %02hX config: %02hX mask: %02hX
even: inv read: %04hX config: %02hX mask: %02hX
even: config_ptr: %08X mask_ptr: %08X
chip: %1d frame: %d
chip %1d failed compare
5V is out of tolerance, value: %.2f
5V is out of tolerance, value: %.2f
5V is now within tolerance
Secondary oven voltage is out of tolerance, value: %.2f
Secondary oven voltage is out of tolerance, value: %.2f
Secondary oven voltage is now within tolerance
15V is out of tolerance, value: %.2f
15V is out of tolerance, value: %.2f
15V is now within tolerance
-15V is out of tolerance, value: %.2f
-15V is out of tolerance, value: %.2f
-15V is now within tolerance
EFC near end of range
watchdog: clock: %4d gps: %4d pll: %4d mon: %4d spool %4d
Exception: %s, vector %04X, PC = %08X, SR = %04X, addr = %08X
Exception: %s, vector %04X, PC = %08X, SR = %04X
Watchdog timeout: clk %1d gps %4d mon %4d pll %1d spl %1d
GPS 1pps signal is dead
short gate, count %d
GPS 1pps signal frequency is incorrect
long gate, count %d
GPS 1pps signal is ok
Internal 1pps signal is dead
count %d
Internal 1pps signal is ok
!"#$%&'
()*+,-./01
23456789:;
<=>?@ABCDE
FGHIJKLMNO
PQRSTUVWXY
Z[\]^_`abc
!"#$%&'()0123456789@ABCDEFGHIPQRSTUVWXY`abcdefghipqrstuvwxy
0001020304050607080910111213141516171819202122232425262728293031
3233343536373839404142434445464748495051525354555657585960616263
6465666768697071727374757677787980818283848586878889909192939495
96979899"o
ON
OFF
No error
Command error
Invalid character
Syntax error
Invalid separator
Data type error
GET not allowed
Parameter not allowed
Missing parameter
Command header error
Header separator error
Program mnemonic too long
Undefined header
Header suffix out of range
Numeric data error
Invalid character in number
Exponent too large
Too many digits
Numeric data not allowed
Suffix error
Invalid suffix
Suffix too long
Suffix not allowed
Character data error
Invalid character data
Character data too long
Character data not allowed
String data error
Invalid string data
String data not allowed
Block data error
Invalid block data
Block data not allowed
Expression error
Invalid expression
Expression data not allowed
Macro error
Invalid outside macro definition
Invalid inside macro definition
Macro parameter error
Execution error
Invalid while in local
Settings lost due to rtl
Trigger error
Trigger ignored
Arm ignored
Init ignored
Trigger deadlock
Arm deadlock
Parameter error
Settings conflict
Data out of range
Too much data
Illegal parameter value
Data corrupt or stale
Data questionable
Hardware error
Hardware missing
Mass storage error
Missing mass storage
Missing media
Corrupt media
Media full
Directory full
File name not found
File name error
Media protected
Math error in expression
Macro syntax error
Macro execution error
Illegal macro label
Macro definition too long
Macro recursion error
Macro redefinition not allowed
Macro header not found
Program error
Cannot create program
Illegal program name
Illegal variable name
Program currently running
Program syntax error
Program runtime error
Device-specific error
System error
Memory error
PUD memory error
Calibration memory lost
Save/recall memory lost
Configuration memory lost
Out of memory
Self-test failed
Queue overflow
Query error
Query INTERRUPTED
Query UNTERMINATED
Query DEADLOCKED
Query UNTERMINATED after indefinite response
E%+04d>
scpi >
scpi
scpi: alloc_seg error %#0x
scpi: error opening stream
HEWLETT-PACKARD,%s,%s,%s-%c
Log status: Full
Log status: Error
Log status: Empty
Log status: One entry
Log status: %-3d entries
%s
%s:  %s
diag entry %d
No error
Parameter not allowed
Missing parameter
Undefined header
Invalid suffix
Invalid string data
Execution error
Parameter error
Settings conflict
Data out of range
Too much data
Illegal parameter value
Data corrupt or stale
Hardware missing
Device-specific error
System error
Memory error
Configuration memory lost
Self-test failed
Communication error
Parity error in program message
Framing error in program message
Input buffer overrun
TST
#H%08X
TSTAMP
XNON:
:XNON:
XNONE:
:XNONE:
PFORTH
INSTALL
PRIMARY
Error in deleting old lifetime event
eepx
Unable to create eepx: %X
Unable to initialize eepx: %X
Unable to acquire eepx token: %X
eepx semaphore has been corrupted
Unable to release eepx token: %X
eepx semaphore count is < 0
eepx_close and not owner
First satellite tracked at H%08X
Log cleared
logr
Log %03d:H%08X
Unused
Log %03d:H00000000
Power on
Re-boot
Survey mode started
Position hold mode started
EXT lock started
GPS lock started
Holdover started, manual
Holdover started, not tracking GPS
Holdover started, GPS RAIM alarm
Holdover started, GPS alarm
Holdover started, GPS
Holdover started, invalid GPS 1PPS
Holdover started, EXT
Holdover started, invalid EXT 1PPS
Holdover started, HW error
Holdover started, TI error
Holdover started, TI limit exceeded
Holdover started, temporary
Holdover started, selecting 1PPS
Holdover started
Output specifications exceeded
Hardware failure
Self-test failed
EEPROM save failed
Clk_do: out of event buffers
System preset
Value too large, set to max limit
Value too small, set to min limit
Warning: Entire nv register is being used
Z3801A
Log cleared
Log %03d:%04d%02d%02d.%02d:%02d:%02d
Unused
Log %03d:00000000.00:00:00
#2
#2
$v
2;#
2;#
First-time interp test.
old_addr, fconf_regs[1] = %x %x
Gate failure
Result uncomputable
Measurement aborted
Interpolator calibration failure
e_avg= %.1f time= %f weight= %d log= %.2f tfom= %.1e
e_avg= %.1f time= %f weight= %d log= %.2f  tfom= %.1e
pts= %d a= %.1f b= %.1f c= %.1f rms= %.1f
HQ= %.1e mode= %d
failed line fit
pll_scpi: toggle_change() -- new value > max value
pll_scpi: validate_num() -- too many in multiple
pll_scpi: validate_num() -- multiple cmd/desc disagree
pll_scpi: validate_or_doaction() -- unknown structure type
pll_scpi: validate_or_doaction() -- setup index > max index
pll_scpi: finish_scpi_cmd() -- unknown structure type
pll_scpi: get_setup_vars() -- unknown structure type
sample action 1
sample action 2
sample action 3
holdover - Error with measurement
%d/%d/%d %02d:%02d:%02d efc= %d ti= %.1f hold= 0 curr= %.2f
holdover recovery - Error with measurement
%d/%d/%d %02d:%02d:%02d TI result: %.1fns
startup_pll - Error with measurement
%d/%d/%d %02d:%02d:%02d efc= %d ti= %.1f loop= %d curr= %.2f
pll_normal - Error with measurement
Peforming sync
coarse - Error with measurement 1
d = %f, efc =  %d
coarse - Error with measurement 2
fine-sync - Error with measurement
i= %d, ti= %.1f, y0= %.2e, x0= %.2e
fine - Error with measurement 1
Bad TI in frequency measurement
fine - ti too far off
fine - frequency too far off
y0 = %f, efc =  %d
fine - Error with measurement 2
fine-slew - Error with measurement
Error in deleting old leapsecond event
Error in creating leapsecond event
gps init ack failure: %02X
utc corr ack failure: %02X
mask angle ack failure: %02X
ant delay ack failure: %02X
sat ign ack failure: %02X
pos location ack failure: %02X
disable pos hold ack failure: %02X
set survey location ack failure: %02X
leap pending ack failure: %02X
Error in leapsecond ack
Error in DIAG GPS RST ack
Error in DIAG GPS TST ack
PLL powerup
Went into powerup recovery
Went into holdover
Went into holdover recovery
Went into PLL startup
Went into PLL normal
Went into Diag
Went into Idle
Went into fatal error
GPS command completed
GPS acknowledgment timed out
---
Sun
Mon
Tue
Wed
Thu
Fri
Sat
pnum
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Locked to
Recovery
Holdover
Power-up
Self Test
Int Pwr
Oven Pwr
OCXO
EFC
GPS Rcv
%c%4d:%02d:%06.3f
0:00:00.000
%c%4d:%02d:%06.7f
%02d:%02d:%04.1f [%s]
xDOP TYPE: %1d  VALID COMBOS: %1d  BEST-4 or N-IN-VIEW: %1d
xDOP VALUE      SAT COMBO IDs
%4.1f
%2d
GDOP: %6.1f  PDOP: %6.1f  HDOP: %6.1f VDOP: %6.1f TDOP: %6.1f
MAG VAR: %4d VEL: n %5d e %5d u %5d AGE: %5d
ECEF POSITION: x %11d y %11d z %11d
URA PER CHANNEL: 1= %2d  2= %2d  3= %2d  4= %2d  5= %2d  6= %2d
Least Squares Sym Matrix elements
%2d  %2d  %2d  %2d
X  %2d  %2d  %2d
X   X  %2d  %2d
X   X   X  %2d
RECEIVER CLOCK BIAS: %6d  RECEIVER OSC OFFSET: %5d
--------------------- Time RAIM Status ----------------------
MODE       %-3s
Off
Inactive
Alarm Detected
Alarm
%17sAssessment: %-14s
%31s# Alarms:   %d   (%d detected)
Time Solution _____________________   1PPS Pulse ____________
** ALARM **
Unknown
STATUS     %-24s   STATUS    %s
Detection/Isolation
Detection Only
Unavailable
Always Off
Always On
When Tracking
When Time RAIM OK
RAIM MODE  %-24s   OUTPUT    %s
UTC
GPS
Epoch
%d ns
ALARM LIM  %-24s   TIME REF  %s
SIGMA EST  %-24s   SAWT ERR  %+d ns
Fractional Time Estimates ___________________________________
Ch    PRN    Time (ns)
----------------------
%d     %2d%s   %9d
* tracking/used in time solution
Time RAIM capability is not installed.
Pseudorange Correction Status ________________
GPS TIME    %8.1f / %s
----------------------------------------------
Ch     PRN    Range (m)     Rate (m/s)   Eph #
%d      %2d    %9.2f       %6.3f      %3d
Derived Statistics ___________________________
AVG  %.2f m    STD DEV  %.2f m
Disabled
Enabled
------------------------- Instrument State Settings --------------------------
TIME   %02d:%02d:%02d    GMT CORR  %c%02dh:%02dm%24s
DATE   %02d/%02d/%04d
Air
Handheld
Land
Marine
Static
POS HOLD   %-8s%42sAPPL   %s
Best 4 satellites
N-in-view
Idle
Pos Fix
FIX ALG    %-17s%33sOPER   %s
Hold Position _____________________________
Initial Position _______________
LAT        %s  = %+10d ms   %s  = %+10d ms
LON        %s  = %+10d ms   %s  = %+10d ms
%+8d cm
GPS HGT           %11s%24s%+8d cm
MSL HGT           %11s%24s%+8d cm
Satellite Options _________________________
PRNs Ignored ___________________
%2d,
(none ignored)
ELEV MASK  %-2d%33s%s
Automatic
Manual
Highest-in-sky
SELECTION  %-14s%21s%s
GDOP
PDOP
HDOP
VDOP
TDOP
DOP TYPE   %-4s           DOP HYST     %4.1f   %s
ION CORR   %-8s       DOP 3D/2D    %4.1f   %s
Correction Factors and Thresholds _________
General Status _________________
(GPS time)
None pending
+1 pending
-1 pending
UTC CORR   %-19s                LEAP SEC  %-12s
1PPS OFFS  %9d ns   POS FIX THR %3d
CABLE DLY     %6d ns   DIF OUT THR %3d s
AVG LAT  %+3.6f = %s
AVG LON  %+3.6f = %s
AVG HGT  %+3.6f
N %11d
Averaging: ON
Averaging: OFF
Sats with bit 7: %2d
Visible Sats: %2d
PN Code ID    Doppler    Elevation     Azimuth    Health
%2d          %5d         %2d          %3d        %02X
TIME %2d:%02d:%02d.%09d DATE  %2d/%02d/%04d
LAT  %s
LON  %s  VIS SATS   %d
HGT (msl)%18.2f TRACK SATS   %d
HGT (gps)%18.2f RX STATUS   %02X
PDOP%23.1f
HDOP%23.1f
CHN      SVID      MODE       SS      STATUS
%2d%10d%10d%10d        %02X
gs: %02d:%02d:%02d.%09d,%2d/%02d/%04d,
%s,%4.2f
gs: %d,%d,%02X,
%s%2.1f
gs:
%02d,%1d,%03d,%02X,
GPS Receiver Identification
-----------------------------------------------------
Model Number:       %s
Serial Number:      %s
Manufacture Date:   %s
Installed Options:  %s
Hardware P/N:       %s
Software P/N:       %s
Software Version:   %s
Software Revision:  %s
Software Date:      %s
Copyright Notice:   %s
%2d
%3d
%2d %3d
-- ---
Ignore
Not OK
Acq
Acq .
Acq ..
HGT
%+9.2f m  (MSL)
%-15s%s
%3d%c %02d%c
1000+ hr
Invalid: GPS rcvr err
Absent or freq error
Invalid: not tracking
Invalid: inacc position
Invalid: Time RAIM error
Assessing stability
Assessing stability .
Assessing stability ..
Assessing stability ...
Synchronized to UTC
Synchronized to GPS Time
%02d:%02d:%02d
--:--:--
%02d %s %04d
-- --- ----
LOCL GPS
LOCAL
%-9.9s%8s %3s %11s
[?]
ANT DLY  %s
Position ________________________
MODE
Navigation
Survey:
0
<0.1
>99.9
%5.1f
% complete
Hold
no track data
track <4 sats
poor geometry
%9sSuspended: %13.13s
LAT
%-8s %s
LON
TFOM     %d%13sFFOM    %2s
relative to GPS
rel to GPS
rel GPS
--
1PPS TI %s
Off
HOLD THR %s
Holdover Uncertainty ____________
: OCXO warm-up
: GPS acquisition
: coarse freq adj
: coarse frequency adjustment
: fine freq adj
: fine frequency adjustment
: phase alignment
: leap second determination
[TI %9.9s]
%-18.18s%14s
INIT
AVG
%c%c%c%c%c%c%c
------------------------------- Receiver Status -------------------------------
SYNCHRONIZATION ............................
............... [ Outputs Invalid ]
................. [ Outputs Valid ]
[ Outputs Valid/Reduced Accuracy ]
%s
SmartClock Mode ___________________________   Reference Outputs _______________
>>
Ext
: stabilizing frequency
: manually initiated
: GPS 1PPS CLK invalid
: EXT 1PPS CLK invalid
: 1PPS TI exceeds hold threshold
: internal hardware problem
%-46.46s
/initial 24 hrs
%43s   Predict  %s
Holdover Duration:
Present
%43s   %s  %s
ACQUISITION ..........................................
.. [ GPS 1PPS CLK Valid ]
[ GPS 1PPS CLK Invalid ]
.. [ EXT 1PPS CLK Valid ]
[ EXT 1PPS CLK Invalid ]
_______________________
+1 leap second pending
-1 leap second pending
Satellite Status __________________________
Time _____%s
Tracking: %d        Not Tracking: %-2d%11s
PRN  El  Az   SS
PRN  El  Az
%-16.16s   %-11.11s  %-11.11s%3s
1PPS CLK
GPS 1PPS
%s %s
%3.3s  %6.6s  %3.3s   %3.3s  %6.6s  %3.3s  %6.6s%3s%s
*attempting to track
ELEV MASK %2d deg%3s%-25.25s%2s
Err
%s: %-3s%s
HEALTH MONITOR ......................................................
[ ERROR ]
... [ OK ]
// command not supported //
// query form not supported //
SCPI1
PLL
GPSc
GPSs
%-5s %02d  %-2s %-2s [%s]   %11s  %8s %s
GPS Receiver Command Log __________
[last %2d]
Task  ID  Command     Date and Time Issued
---------------------------------------------
(no commands were issued since last read)
(no GPS receiver errors were logged)
________ State: Task Idle
_____ State: Send Command
State: Wait for Response
________________ State: ?
GPS Process Monitor _________________%s
Process Messages   Net:   %+6d              Rcvr Messages
--------------------------------
----------------
%-9s  %5d   %6s  %5d%14s%-9s  %5d
Msgs Rcvd
Errors
Resp Read
Msgs Sent
Cmds Sent
%-9s  %5d   %6s  %5d%16s%-7s  %5d
Msgs Jam
E Retry
%48s%-7s  %5d
T Retry
Execution Status:                             Response Errors:
%-9s  %5d
Success
%-9s  %5d   %-6s  %5d%14s%-9s  %5d
Reject
? Cmd
? Resp
Timeout
? Sndr
Frame
Busy
No Cmd
Cksum
%-9s  %5d   %-6s  %5d
Abort
No Qry
Last Valid pSOS Msg:
change/execute
query setting
? action
Sender: %-5s Cmd #: %-2d (%s)
(none received)
Last Rcvr Prgm Msg:
(none issued)
Response Buffer:
%hx
** GPS receiver commands are blocked **
Fail
__ OK
GPS Receiver Health _____________________________________%s
disabled
standby
query
query-ack
? state
Command Monitor    %-9s   %-7s          %5d failures
Fail
recovery
Status Monitor     %-9s   %-7s          %5d failures
%+.1f
OPTIONS LIST
%hx
%s%s<cr><lf>
RUN
RDY
spwn
mblk
xblk
vblk
paus
susp
??
fifo
prio
inf
grp
any
yes
none
=================================================================
Free CPU cycles: count 0x%08X, approx %2d%%
0x%07x  %4s  %4s %4s  %3s    %d
%4s 0x%08x %7d   0x%08x  0x%08x  0x%08x 0x%04x
$%08X %4s  %6s  %3d %2d  %2s %5d %4dkB %2d%% %2d%%
%2d
>> RESOURCES:
>> EVENTS: W(0x%04x) S(0x%04x)
%d Process(s) (%d avail); Total time: %-d ticks.
xid   XNAME  TYPE  ACC  maxQ  Qlen BLOCKED
%d Exchange(s) (%d avail).
%d Msg buffer(s) (%d avail).
pid   PNAME  STAT/M PRI GID POS  TIX MEMORY STK CPU
Region strt       end  min     max    pend   USED  cnt  AVAIL cnt
%1d 0x%08x 0x%08x %4d %8d %8d %4dkB %4d %4dkB %3d
>> BLOCKED:
%s %d(%d)
Process  Memseg size(bytes)     next        last    neighbor   key
>> Free memory - region: %d
****
no system stack found
pid   name     USP   size            SSP   size
$%08X %4s $%08X $%-5X %3u%% $%08X $%-5X %3u%%
$%08X (TOS)       $%08X (TOS)
>> pSOS system supervisor stack:
pSOS
$@(#)$Header: dev_tab.S,v 1.8 95/01/11 15:27:20 jacob Exp $
WAI
STB
SRE
RST
OPC
IDN
ESR
ESE
CLS
RVST
RTSA
RMHO
FMHO
RSST
RPHS
RSPR
IPSU
RTCM
REQU
CEQU
CALA
RAST
RSSU
WAT3
RAT3
WAT2
RAT2
WAT1
RAT1
WEAL
REAL
WFOU
RFOU
WACD
RACD
W1PO
R1PO
WLOC
RLOC
WTZO
RTZO
RTAD
RWHO
TKN
ROB
KEN
NETH
GARY
DOUG
LAS
DANA
DARRAY3
DARR3
DARRAY2
DARR2
DARRAY1
DARR1
DARRAY
DARR
DOUB
FARRAY3
FARR3
FARRAY2
FARR2
FARRAY1
FARR1
FARRAY
FARR
FLO
IMUL
TIPLE
IARRAY4
IARR4
IARRAY3
IARR3
IARRAY2
IARR2
IARRAY1
IARR1
IARRAY
IARR
TARRAY3
TARR3
TARRAY2
TARR2
TARRAY1
TARR1
TARRAY
TARR
TOGG
BARRAY2
BARR2
BARRAY1
BARR1
BARRAY
BARR
BOOL
EAN
ACT
ION
SAMP
LENG
PRIN
LANG
UAGE
SBIT
TYPE
PAR
ITY
PACE
BITS
BAUD
TRAN
SMIT
REC
EIVE
PROM
FDUP
LEX
ADDR
ESS
COMM
UNICATE
PRES
QUES
TIONABLE
ENAB
COND
ITION
EVEN
OPER
ATION
PRES
ENT
TUNC
ERTAINTY
AUTO
REC
OVERY
INIT
IATE
HYST
ERESIS
EXC
EEDED
ALAR3
ALARM3
ALAR1
ALARM1
MEAS
UREMENT
STAR
PER
IOD
CONT
INUOUS
PULS
TZON
STR
ING
TFOM
ERIT
TCOD
PPS
GPST
IME
CALC
ULATE
ACC
UMULATED
LEAP
SECOND
IMM
EDIATE
SYNC
HRONIZATION
FFOM
ERIT
PRED
ICTED
VIS
IBLE
INCL
UDE
TRAC
KING
SAT
ELLITE
VAL
REF
ERENCE
PROG
RESS
DUR
ATION
ACT
UAL
INIT
IAL
EMAN
GLE
ADEL
SOUR
EDGE
TSTAMP4
TST4
TSTAMP3
TST3
TSTAMP2
TST2
TSTAMP1
TST1
TSTAMP
TST
TST
AMP
POIN
SAVE
OVER
FLOW
SENS
FREQ
UENCY
ALIG
NMENT
PINS
PIN7
PIN2
PIN8
PIN3
PIN6
PIN1
OUTP
TMHV
ALID
HOLD
OVER
GPSL
OCK
ENAB
LED
USER
MIN
MAJ
ALAR
ACT
IVE
LED
DATA
FORM
TOFF
SET
RES
ULT
TEST
TEMP
ERATURE
PST
ARTUP
DOUT
PUT
SYST
HAPP
ENING
STAT
SLOG
EGR
ESPONSE
REST
RICTED
SERIAL2
SERIAL1
SERIAL
SER
TCO
EFFICIENT
ABS
OLUTE
REL
ATIVE
EFC
ONTROL
CURR
ENT
ROSC
ILLATOR
RESP
ONSE
QUER
TINT
ERVAL
PTIM
STAC
PROC
ESS
MEM
ORY
WRIT
READ
LOG
COUN
LIF
ETIME
SER
IAL
MOD
DEF
AULT
IDEN
TIFICATION
UTC
DEGR
EES
MSEC
ONDS
THR
ESHOLD
STAT
RAIM
POS
ITION
GPS
YSTEM
DIAG
NOSTIC
XON
ONE
ODD
EVEN
NONE
ERR
LIM
HARD
WARE
FALL
ING
RIS
ING
NEG
ATIVE
POS
ITIVE
SER2
SER1
FIRS
OTH
LOCK
REC
OVERING
WAIT
ING
HOLD
ING
POW
ERUP
INT
EGER
ASC
QMRC
IMRC
POW
GPS
IREF
ERENCE
INT
ERPOLATOR
FPGA
QSPI
UART
EEPR
RAM
PROC
ESSOR
DISP
LAY
ALL
LEAP
DEL
HOLD
HPOS
ITION
IGN
ORE
MANG
HEIG
LONG
ITUTDE
DATE
GCOR
RECTION
TIME
CLE
SET
NTR
ANSITION
PTR
ANSITION
ONCE
LONG
ITUDE
LAT
ITUDE
SURV
LAST
INF
INITY
MIN
IMUM
MAX
IMUM
ZHM
GED

00000000000000000000
0123456789ABCDEF
0123456789abcdef

Here, in file form, is the raw 512 KB Z3801A binary image and the above Z3801A string dump. Contact me if you have observations about the dumps.


Return to LeapSecond.com home page.
Comments/questions to tvb.