;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;
;	D O R A D O   C o n t r o l   P r o g r a m
;
;		M i d a s - K n o w n   L o c a t i o n s
;
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

;	filed on DoradoMidasHooks.masm
;	E. McCreight
;	last modified August 20, 1981  10:14 AM

	.RDX	16

	.EXPORT	ZCodeVersion
	.EXPORT	ZPtr
	.EXPORT	ZPC,ZS,ZP,ZA,ZX,ZY
	.EXPORT	ZSubPC,ZSubS,ZSubP,ZSubA,ZSubX,ZSubY
	.EXPORT	ZSimBlk
	.EXPORT	Timer100ms,SupplyBadTime
	.EXPORT	PowerOutOfSpec
	.EXPORT	VoltageTable,CurrentTable,EnvironmentLen
	.EXPORT	VDD,VEE,VTT,VCC
	.EXPORT	IDD,IEE,ITT,ICC
	.EXPORT	Thermometers
	.EXPORT	BaseTemp,CBTemp,CATemp
	.EXPORT	ProcLTemp,ProcHTemp,IFUTemp
	.EXPORT	MemCTemp,MemXTemp,MemDTemp
	.EXPORT	CurEnvironment,FirstEnvironment
	.EXPORT	MinEnvironment,MaxEnvironment
	.EXPORT	BadSupplySpec,Problems
	.EXPORT	NormalWait,CouldntBootDorado,TransientPowerProblem
	.EXPORT	CurrentPowerProblem,OverTemp,ShutDown
	.EXPORT	CantGetCPControl,MeltDownTemp

;	State for Midas interface. Starts at location 0. 
;	Midas must know where this is!

	.LOC	MidasHooks

;	The microcomputer code version.

ZCodeVersion:
	.BLK	1


;	Information about power supplies and temperature.

PowerOutOfSpec:	.BLK	1	; for voltages and currents
;	from high to low order:
;		VDD,VCC,VTT,VEE,IDD,ICC,ITT,IEE

CurEnvironment:
VoltageTable:
	VDD:	.BLK	1	; .0619 volts/count	[+12v nom]
	VCC:	.BLK	1	; .0262 volts/count [+5v nom]
	VTT:	.BLK	1	; -.0101 volts/count [-2v nom]
	VEE:	.BLK	1	; -.0259 volts/count [-5.2v nom]

CurrentTable:
	IDD:	.BLK	1	; .971 amps/count
	ICC:	.BLK	1	; .971 amps/count
	ITT:	.BLK	1	; .971 amps/count
	IEE:	.BLK	1	; 4.29 amps/count

Thermometers:
	BaseTemp:	.BLK	1	; -1 means no board installed
	CBTemp:	.BLK	1	; 0 means board but no thermometer
	CATemp:	.BLK	1	; otherwise 1.96 deg K/count
	ProcLTemp:	.BLK	1
	ProcHTemp:	.BLK	1
	IFUTemp:	.BLK	1	; Temperatures cannot be read
	MemCTemp:	.BLK	1	;  unless the -5.2v supply is good
	MemXTemp:	.BLK	1
	MemDTemp:	.BLK	1
	DskEthTemp:	.BLK	1
	DisplayTemp:	.BLK	1
			.BLK	1

EnvironmentLen = .-CurEnvironment

FirstEnvironment:
FirstVoltageTable:
	FirstVDD:	.BLK	1
	FirstVCC:	.BLK	1
	FirstVTT:	.BLK	1
	FirstVEE:	.BLK	1

FirstCurrentTable:
	FirstIDD:	.BLK	1
	FirstICC:	.BLK	1
	FirstITT:	.BLK	1
	FirstIEE:	.BLK	1

FirstThermometers:
	FirstBaseTemp:	.BLK	1
	FirstCBTemp:	.BLK	1
	FirstCATemp:	.BLK	1
	FirstProcLTemp:	.BLK	1
	FirstProcHTemp:	.BLK	1
	FirstIFUTemp:	.BLK	1
	FirstMemCTemp:	.BLK	1
	FirstMemXTemp:	.BLK	1
	FirstMemDTemp:	.BLK	1
	FirstDskEthTemp:	.BLK	1
	FirstDisplayTemp:	.BLK	1
			.BLK	1

MinEnvironment:
MinVoltageTable:
	MinVDD:	.BLK	1
	MinVCC:	.BLK	1
	MinVTT:	.BLK	1
	MinVEE:	.BLK	1

MinCurrentTable:
	MinIDD:	.BLK	1
	MinICC:	.BLK	1
	MinITT:	.BLK	1
	MinIEE:	.BLK	1

MinThermometers:
	MinBaseTemp:	.BLK	1
	MinCBTemp:	.BLK	1
	MinCATemp:	.BLK	1
	MinProcLTemp:	.BLK	1
	MinProcHTemp:	.BLK	1
	MinIFUTemp:	.BLK	1
	MinMemCTemp:	.BLK	1
	MinMemXTemp:	.BLK	1
	MinMemDTemp:	.BLK	1
	MinDskEthTemp:	.BLK	1
	MinDisplayTemp:	.BLK	1
			.BLK	1

MaxEnvironment:
MaxVoltageTable:
	MaxVDD:	.BLK	1
	MaxVCC:	.BLK	1
	MaxVTT:	.BLK	1
	MaxVEE:	.BLK	1

MaxCurrentTable:
	MaxIDD:	.BLK	1
	MaxICC:	.BLK	1
	MaxITT:	.BLK	1
	MaxIEE:	.BLK	1

MaxThermometers:
	MaxBaseTemp:	.BLK	1
	MaxCBTemp:	.BLK	1
	MaxCATemp:	.BLK	1
	MaxProcLTemp:	.BLK	1
	MaxProcHTemp:	.BLK	1
	MaxIFUTemp:	.BLK	1
	MaxMemCTemp:	.BLK	1
	MaxMemXTemp:	.BLK	1
	MaxMemDTemp:	.BLK	1
	MaxDskEthTemp:	.BLK	1
	MaxDisplayTemp:	.BLK	1
			.BLK	1


;	Timer that gets incremented every 102.4 ms. Low-order byte
;	first. Initialized to 0 when microcomputer is reset.

Timer100ms:	.BLK	6


;	Copy of the 100 ms timer made the last time a power
;	supply was out of spec. The value of PowerOutOfSpec
;	at that time is recorded in BadSupplySpec.

SupplyBadTime:	.BLK	6


;	The pointer by means of which Midas accesses any
;	memory location

ZPtr:	.BLK	2	; pointer for memory reads and writes


;	The saved state when the Midas interrupt was taken

ZPC:	.BLK	2	; saved program counter, low-order byte first
ZS:	.BLK	1	; saved stack pointer
ZP:	.BLK	1	; saved processor state register
ZA:	.BLK	1	; saved accumulator
ZX:	.BLK	1	; saved X register
ZY:	.BLK	1	; saved Y register


;	A description of what supplies were measured bad, the last
;	time any supplies were out of tolerance.

BadSupplySpec:	.BLK	1	; same format as PowerOutOfSpec


;	A description of what the microcomputer thinks is wrong
;	with the machine.

Problems:	.BLK	1
	NormalWait = 80
	CouldntBootDorado = 40
	TransientPowerProblem = 20
	CurrentPowerProblem = 10
	ShutDown = 8
	OverTemp = 4
	CantGetCPControl = 2

;	State which Midas can set up for calling microcomputer
;	subroutines

ZSubPC:	.BLK	2	; subroutine program counter, low-order byte first
ZSubS:	.BLK	1	; subroutine stack pointer
ZSubP:	.BLK	1	; subroutine processor state register
ZSubA:	.BLK	1	; subroutine accumulator
ZSubX:	.BLK	1	; subroutine X register
ZSubY:	.BLK	1	; subroutine Y register
			.BLK	1

ZSimBlk:
	.BLK	10.	;	Block for simulated instruction execution, of the form

;	Sim Instr; Normal jump; Alternate jump

MeltDownTemp:
	.BLK	1	; threshold temp for meltdown: 1.96 deg K/count

	.END