// Analyze.bcpl // Needs GP, Template, SpruceMl (ML routine, included in package) get "streams.d" external [ Gets; Puts; keys; dsp;Wss; SetFilePos; Resets; Closes; Endofs; CreateDisplayStream; ShowDisplayStream; DoubleAdd; DoubleSub; Ws; MulFull; PutTemplate; OpenFile ] static [ outStream; blockCt; f ] structure [ left byte; right byte ] let Analyze(v, switches) be [ for i = 1 to 999 do [ switchon switches!i into [ case 0: break; default: endcase ] ] // let name=vec 256; let sw=vec 128; SetupReadParam(name, sw) f = OpenFile("Analee", ksTypeReadOnly, wordItem) //!! if f eq 0 then [ PutTemplate(outStream,"$S not found*N","Analee"); finish ] // measureTable address was put into location 721 let p = vec 1; p!0 = 1; p!1 = (#76721) lshift 1 SetFilePos(f, p); p!0 = 0; p!1 = (Gets(f)-#400) lshift 1; SetFilePos(f, p) outStream = OpenFile("Analyze.lst",ksTypeWriteOnly, charItem) Wss(outStream, "*N Analyze of February 26, 1979*N") // print entries let time0 = vec 1; time0!0 = 0; time0!1 = 0 while valof [ blockCt = Gets(f); resultis blockCt ] do [ let eventTime = vec 1 eventTime!0 = Gets(f); eventTime!1 = Gets(f) let band = Gets(f) if time0!0 eq 0 then [ time0!0 = eventTime!0; time0!1 = eventTime!1 ] DoubleSub(eventTime, time0) let t1, t2 = vec 1, vec 1 MulFull(((eventTime!1)Ṟ) rshift 2,38,t1) MulFull((eventTime!0)*38, 1024, t2) DoubleAdd(t1,t2) for i = 1 by 2 to blockCt-4 do [ let index, value = Gets(f), Gets(f) let s = selecton index into [ case 0: "malfunction" case 1: "proceedCode" case 2: "nonF" case 3: "coldStart" case 4: "consecutiveErrors" case 5: "page sync" case 6: "signalBand" case 7: "nVisibleBands" case #10: "Func" case #11: "nPagesPrinted" case #12: "ROS status wd. 0" case #13: "ROS status wd. 8" case #14: "Orbit Status" case #15: "ROSCommand table" case #16: "Shit" case #17: valof [ let chg = value<0 value = value𒿑 resultis chg? "Count-H starts changing", "Count-H stops changing" ] case #20: "FeedASheet state" case #21: "Reading bands" case #22: "Reading fonts" case #23: "Random Interesting Event" default: "[unused]" ] PutTemplate(outStream,"$10EUD$6D$8UO $S*N",t1,band,value,s) ] ] Closes(outStream) ] // DCS, February 26, 1979 6:03 PM, analyze Dover Printer measurement results // February 27, 1979 9:51 AM, ready to test table access // February 27, 1979 2:32 PM, simple presentation to dsp works // February 27, 1979 2:38 PM, output to file, reorg. presentation // March 5, 1979 7:29 AM, better use of space // March 5, 1979 5:06 PM, different count-H legend //