-- File: PtControl.mesa, Last Edit: HGM November 8, 1979 11:08 PM DIRECTORY DisplayDefs: FROM "DisplayDefs" USING [SetSystemDisplaySize], ImageDefs: FROM "ImageDefs" USING [MakeImage, StopMesa], IODefs: FROM "IODefs" USING [WriteLine, WriteOctal, WriteString], StatsDefs: FROM "StatsDefs" USING [ StatNew, StatStart, StatCounterIndex, StatsGetText], PupDefs: FROM "PupDefs" USING [ PupPackageMake, DataWordsPerPupBuffer, GetDoStats], PupTypes: FROM "PupTypes" USING [bspTestSoc], PtDefs: FROM "PtDefs" USING [ PtCommand, PtMisc, PtBSP, PtEcho, PtOC, PtPkt, PtSocket, PtPrint, PtVector, PtStatsOn, PtEchoOn, PtFixHostAndNet, PupTestMainLoop, statRawPacketsEarly, statRawPacketsLate, statRawPacketsMissed, statRawPacketsRecv, statRawPacketsSent, statRawPacketsTurnedBack, statRawPacketsUnexpected]; PtControl: PROGRAM IMPORTS DisplayDefs, ImageDefs, IODefs, StatsDefs, PupDefs, PtDefs = BEGIN OPEN StatsDefs, PupDefs, PtDefs; ptVector: PtVector _ [ socNum: PupTypes.bspTestSoc, pullMe: [,,PupTypes.bspTestSoc], pullHim: [,,[0,0]], pushMe: [,,[0,0]], pushHim: [,,PupTypes.bspTestSoc], stopFlag: FALSE, -- else listeners go away instantly length: long, -- init for max bandwidth packetLength: , data: ignore, streamData: , mode: block, doStats: GetDoStats[], dataWordsPerPup: DataWordsPerPupBuffer[], displaying: TRUE, info: TRUE, spying: FALSE, ticking: TRUE, localOnly: FALSE, myHost: , myNet: , whyText: ]; -- compiler doesn't like me ptVector.whyText _ [ "localClose", "remoteClose", "noRouteToNetwork", "transmissionTimeout", "remoteReject" ]; START PtCommand[@ptVector]; START PtBSP[@ptVector]; START PtEcho[@ptVector]; START PtOC[@ptVector]; START PtSocket[@ptVector]; START PtPkt[@ptVector]; START PtMisc[@ptVector]; START PtPrint[@ptVector]; -- ok, now go to it BEGIN OPEN StatsDefs; statText: POINTER TO ARRAY StatCounterIndex OF STRING = StatsGetText[]; statText[statRawPacketsSent] _ "Raw Packets sent"; statText[statRawPacketsRecv] _ "Raw Packets received"; statText[statRawPacketsEarly] _ "Raw Packets received early"; statText[statRawPacketsMissed] _ "Raw Packets missed"; statText[statRawPacketsLate] _ "Raw Packets received late"; statText[statRawPacketsTurnedBack] _ "Raw Packets turned back"; statText[statRawPacketsUnexpected] _ "unexpected Raw Packets"; END; StatNew[]; SELECT TRUE FROM FALSE => BEGIN IODefs.WriteLine["Saving self on PupTest.image..."]; ImageDefs.MakeImage["PupTest.image"]; END; TRUE => DisplayDefs.SetSystemDisplaySize[35,50]; ENDCASE; -- run time initialization StatStart["Mesa PupTest"]; PupPackageMake[]; PtStatsOn[]; PtEchoOn[]; BEGIN OPEN IODefs; PtFixHostAndNet[]; WriteString["We are host "]; WriteOctal[ptVector.myHost]; WriteString[" on Net "]; WriteOctal[ptVector.myNet]; WriteLine[""]; END; BEGIN OPEN ptVector; pullMe.host _ pushMe.host _ pullHim.host _ pushHim.host _ myHost; pullMe.net _ pushMe.net _ pullHim.net _ pushHim.net _ myNet; END; PupTestMainLoop[]; ImageDefs.StopMesa[]; END. -- of PtControl(2048)