// PupTest.decl - common stuff with PupControl
// Copyright Xerox Corporation 1979
// Last modified December 26, 1978  10:04 PM by Boggs

//----------------------------------------------------------------------------
manifest
//----------------------------------------------------------------------------
[
socketPupControl = 26b

typeCmmd = 200b
typeOK = 201b
typeKissOfDeath = 247b

stateStop = 0
stateBSP = 4
stateEFTP = 5

tryHard = 25
trySoft = 1

maxHosts = 24

colNetHost =	2b14 + 6b10 + 10
colPartner =	2b14 + 6b10 + 70
colDead =	1b14 + 1b10 + 130
colState =	1b14 + 6b10 + 140
colChksm =	3b14 + 5b10 + 200
colData =	3b14 + 5b10 + 250
colOvlp = 	3b14 + 5b10 + 300
colThruput =	0b14 + 7b10 + 400
colAThruput =	0b14 + 7b10 + 470

bfnDMT = 177776b
bfnPupTest = 177777b

mul = (alto? 61020b, 73301b)
div = (alto? 61021b, 73101b)
]

//----------------------------------------------------------------------------
structure Col: [ type bit 2; width bit 4; start bit 10 ]
//----------------------------------------------------------------------------

//----------------------------------------------------------------------------
structure StatFile:	//used by PupControl
//----------------------------------------------------------------------------
[
valid word
name: @String  //file name
]
manifest lenStatFile = size StatFile/16

//----------------------------------------------------------------------------
structure TP:		//Thruput - used only by PupTest
//----------------------------------------------------------------------------
[
timer word
bigCount word		//counts to 50
count word		//counts to 10K
thruput word
aveThruput word
]
manifest lenTP = size TP/16

//----------------------------------------------------------------------------
structure Stats:	//PupTest -> PupControl
//----------------------------------------------------------------------------
[
thruput word
avethruput word
state byte
flags byte = 
   [
   blank bit 5
   checksums bit 1
   data bit 1
   overlapDataWithAck bit 1
   ]
]
manifest lenStats = size Stats/16

//----------------------------------------------------------------------------
structure Cmmd:		//PupControl -> PupTest
//----------------------------------------------------------------------------
[
sendport: @Port
cmmd byte
flags byte = 
   [
   blank bit 5
   checksums bit 1
   data bit 1
   overlapDataWithAck bit 1
   ]
]
manifest lenCmmd = size Cmmd/16

manifest
[
chksFlag = 1b2
dataFlag = 1b1
ovlpFlag = 1b0
]

//----------------------------------------------------------------------------
structure HT:		//Host Table - used only by PupControl
//----------------------------------------------------------------------------
[
ds word
id word
yMax word
yMin word
selected word
dead word
soc: @PupSoc
cb: @Cmmd
stats: @Stats
] ↑1,maxHosts
manifest lenHT = size HT/16