`DEFINT A‘Y
`DEFSNG Z
`PRINT : PRINT 2 PRINT
`
`graph3.bas
`
`PRINT "4600/5010 Support Code 4/10/95"
`zcon = 180 / 3.1415926S4#
`zkl = .005: zk2 = .995'
`
`Energy averaging constants
`
`DIM s$(512), 5(512), c$(512), bit(512)
`DIM r(256)
`DIM xkindex(11), xkcor(11), kaindex(1l), kacor(11)
`DIM hotxkindex(11), hotkaag(11)
`DIM kaagCll), kamag(11)
`DIM 1ndex(16), magClB), cor(16)
`DIM rr(256, 10)
`
`DATA 1,2,4,8,&h10,&h20,&h40,&h80
`DATA %2§90,&h200,&h400,&h800,&h1000,&h2000,&h4000,&h8000
`DIM p
`
`FOR I = 0 TO 15: READ p(I): NEXT I
`aa$ = "## \
`\ \
`\"
`
`'
`
`1d 2 3
`DIM v(500)
`peaks = 10
`DIM nc(id, peaks), nm(1d, peaks)
`DIM 1c(1d, peaks)
`DIM 1m(1d, peaks)
`DIM y1(id), zx(1d), zy(1d)
`DIM 1p1(id), 1p2(1d)
`DIM r1x(id),
`r1y(id)
`DIM rCCpeaks)
`
`# of p1ots
`
`j$) = NOT (I — VAL(j$))
`DEF FNA (I,
`j) = VAL("&H" + CHR$(I) + CHR$(j))
`DEF fnb (I,
`DEF FNC (I, j, k, 1) = VAL("&H" + CHR$(I) + CHR$(j) + CHR$(k) + CHR$(1))
`DEF FND (I) = CSNGCI) / d256
`DEF fnx$ (I) = RIGHT$("OOOO" + HEX$(I), 4)
`DEF fnx (x) = zx(id) * X + x1
`DEF fny (Y) = (Y) * zyCid) + y1(id)
`DEF fnzz$ (z) = STR$(INT(z * 10!) / 10!)
`DEF fnq$ (21, 22) = ”{" + tnzz$(zl) + "," + fnzz$(22) + "}"
`DEF fnzz (I) = VAL(MID$(v$, 1))
`DEF fnz (I) = (fnzz(I) —
`(40!
`* INTCfnzz(I) / 100!))) / 60!
`1V1 = VARPTRCIV): in = 1V1 + 1
`
`* 69.1722
`
`' Constants
`'The foTTowing 2 eTements are doubTed in order to compensate for the
`'2 bytes storaged for each index in memory.
`mh216 = O
`mpy = 1:
`
`IF mhz16 THEN mpy = 2
`
`&H1000
`xkbase
`III
`KABASE — &H3000
`HOTXKBASE = &H5000
`
`stoTer = 90
`fuTTstick = 31
`tcTose = 20
`Teft = (33.3 — 16.2) * xcpts / 100'
`Page 1
`
`'
`
`find size of smart mute
`
`
`
`K40 Exhibit 1011, pg. 1
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 1
`IPR2013-00240
`
`
`
`'
`
`'
`
`graph3.bas
`rite = (66.6 — 16.2) * xcpts / 100'
`mSTze = l + (rite _ 1eft) / l6
`LastSpd = l
`
`GOSUB d1S
`
`regions.
`
`Start next transfer
`OPEN "R", #3, "Locked.LOC", 30
`FIELD #3, 10 AS d$, 8 AS t$, 4 AS 1at$, 4 AS 1ong$,
`2 AS peak1$, 2 AS Peak2$
`DIQ ZLOSKCZS, 2), LPeak1(25), LPeak2(25), Tdate$(25), TTime$C25)
`1X:
`FOR I = 1 TO 25
`l) = CVSC1at$): ZLOCkCI, 2) = CVSCTong$D
`GET #3, I: ZLOCk(I,
`LPealeI) = CVICpeak1$Dz LPeakZCI) = CVI(Peak2$)
`Tdate$(I) 2 d5: TT1me$(I) = t$
`IF ZLOCRCI, 1) THEN fidx
`I
`
`NEXT I
`
`OPEN "COMZ:9600,n,8,1,RBlOOOO,b1n,RS,opO,CdO,dSO" FOR RANDOM AS #2
`OPEN "COMl:19200,n,8,1,RBlOOOO,b1n,RS,opO,ch,dSO" FOR RANDOM AS #1
`OUT &H2FB, &HB
`IF dc THEN OPEN "RoadDataItxt” FOR APPEND AS #4
`'DO WHILE i <> l3
`'
`IF LOCCZ) THEN
`'
`i = Asc(INPUT$(1, #2))
`‘
`'LOOP
`'OPEN "vdat.txt" FOR OUTPUT As #4
`
`END IF
`
`Read a record from interface and extract the software version #
`
`CLS
`grec:
`
`PRINT #1, "A";
`
`'
`
`Skomod
`
`WHILE LOCCZ) > 128
`ON ERROR GOTO errorhand1er2
`LINE INPUT #2, v$
`Terminate the error support
`0N ERROR GOTO 0'
`"$GPGGA“) THEN
`IF INSTRCV$,
`z1at = fnzCZO): z1ong = —fnz(32): Sr$ = VS
`1ocked = 0
`FOR I = 1 TO fidx
`za : ZLOCk(I, 1)
`
`z1ong: zdist = SQRCza * za + 23 * 23)
`
`NEXT I
`
`END IF
`
`— z1at: ZB : ZLock(I, 2)
`
`—
`
`IF zdist < .25 THEN 1ocked = 1: Pindex = I
`
`fnzzCI + 2)
`
`END
`
`IF INSTRCv$,
`
`"$GPVTG") THEN I : INSTR(v$, "M"): zVe1ocity =
`
`WEND
`SELECT CASE INKEY$
`CASE CHR$(&HD): PRINT " Program Execution Ended”: CLOSE :
`
`CASE ”1": STOP
`CASE II
`II
`
`IF 1ocked = 0 AND ActiveTimer THEN
`fidx : fidx + 1:
`IF fidx > 25 THEN fidx
`ZLock(fidx, 1) = zTat: ZLock(fidx, 2) =
`z1ong: LSET 1at$ = MKS$(z1at): LSET 1ong$ = MKS$Cz1ong)
`LPeakl(fidx) = peakl: LPeakZCFde) = PeakZ:
`LSET peak1$ = MKI$Cpeak1): LSET Peak2$ = MKI$(Peak2)
`Tdate$(fidx) = DATE$: TTime$(f1dx) = TIME$:
`RSET d$ : Tdate$(fidx): RSET t$ = TTime$Cfidx)
`PUT #3, fidx: 1ocked = l
`Page 2
`
`O
`
`K40 Exhibit 1011, pg. 2
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 2
`IPR2013-00240
`
`
`
`graph3.bas
`END IF
`
`CASE "u"
`
`END SELECT
`GOSUB record
`IF flaga AND 15 THEN ActiveTimer = 4
`
`IF Tocked THEN ZLockCPindex,
`
`l) = 5
`
`IF ActiveTimer THEN
`IF ActiveTimer = 4 AND Tocked = 0 THEN SOUND 800, 2‘
`Ring be11 if un1ocked signa1 detected
`ActiveTimer = ActiveTimer — 1
`IF dc THEN PRINT #4, DATE$; ","; TIME$;_",";
`rCI); ",";
`: NEXT I: PRINT #4, Sr$, zVe1oc1ty
`words — 1: PRINT #4,
`END IF
`
`: FOR I = 0 TO
`
`'IF check <> 0 THEN PRINT "Fiber checksum error "; fnx$(check): GOTO grec
`'IF scheck <> 0 THEN PRINT "Seria1 Transfer error";
`fnx$CscheCk): GOTO grec
`
`GOSUB disp1ay
`skomod
`GOTO grec'
`IF timeout <> 0 THEN GOTO grec
`CLS
`
`_
`_
`PRINT : PRINT : PRINT : PRINT
`PRINT "software in target is ver510n "; HEX$Cver510n)
`
`CLOSE #2
`
`Illl'llllllllllllllll'lil'lllll Rea]
`q:
`dis:
`
`CLS 0
`
`timedisp‘lay llllllllllllllllllllll
`
`b1ack = O: b1ue = 1: green 2 2: cyan = 3
`red = 4: magenta = 5: BROWN = 6: white = 7
`gray = 8: 1b1ue = 9: 1green = 10: 1cyan : 11
`2 12: 1magenta = 13: ye11ow z 14: hiwhite : 15
`
`foreground = white
`background = b1ack
`border = b1ue
`
`SCREEN 12
`xchars = 80: ychars = 30
`yesize = 16: xcsize = 8
`Sizex = xchars * xcsize — l
`sizey = ychars * ycsize — 1
`VIEW (1, 1)—(sizex — 1, sizey — 1)‘, background', border
`WINDOW (1, 1)—(sizex — 1, sizey — 1)
`
`(sizex + l) \ 2
`xcenter
`(sizey + 1) \ 2
`ycenter
`xcharZ = xchars \ 2
`DEF Fnr (r) = xcsize * (r — 1)‘ FNR Maps char position to screen coor
`DEF fns (s) = ycsize * (ychars ~ s)'FNS Maps char position
`COLOR foreground', background
`
`fu11 = fanxcharZ — 1): zfu11 = fu11
`
`ipavg = —1
`bad = O
`sbad = 0
`tbad = 0
`textdone = 0
`p1otdone = O
`textc = 8
`
`Page 3
`
`K40 Exhibit 1011, pg. 3
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 3
`IPR2013-00240
`
`
`
`graph3.bas
`Horizonta1 character position
`
`textd = 13'
`1meter = —1
`x1ed = —1
`k1ed = —l
`ka1ed = —1
`1as1ed = —1
`
`Setup : r<Set10)
`
`LINE (xcenter, ycenter + 200)—(xcenter, sizey), 1magenta
`RETURN
`"' ' "l’r'ki'ir-Ir‘kirk’k’k’k
`disp1ay:
`'
`
`GOSUB record
`
`' Get next record of data
`
`'
`
`'
`
`IF D4600 THEN
`# points in x/k sweep
`xcpts = 2 * 2688 '
`# points in Ka sweep
`kacpts = xcpts '
`convert index to ms
`zf1t = 125 / xcpts'
`hotxkcpts = 2 * 1276 * ((29 + 62.5) / 62.5)
`ELSE
`xcpts = 2 * 2048
`kacpts : xcpts
`hotxkcpts = 1111
`END IF
`
`'IF check <> 0 THEN bad = (bad + 1) AND 255: GOTO disp1ay
`'IF scheck <> 0 THEN sbad = (shad + 1) AND 255: GOTO disp1ay
`
`a$ = INKEY$
`IF a$ — CHR$(27) THEN END
`H1
`IF a$
`"*” THEN dhistory = 1
`IF (a$ = " ") THEN pageZ = —1 ELSE pageZ = O
`
`IF xdetect THEN xdetect
`xdetect = f1aga AND 1:
`IF kdetect THEN kdetect
`kdetect = f1aga AND 2:
`kadetect = f1aga AND &Hc:
`IF kadetect THEN kade
`kaouter = f1aga AND 8
`kainner = f1aga AND 4
`
`—1
`—1: xdetect = 0
`tect = —1
`
`IF train THEN train = ~1
`train 2 1count AND 32:
`emergency 2 1count AND 64:
`IF emergency THEN emergency = —1
`roadhaz = 1count AND 128:
`IF roadhaz THEN roadhaz
`
`anydetect = xdetect OR kdetect OR kadetect OR hotkdetect 0R hotxdetect
`
`row = 3
`
`LOCATE row, 1
`row = row + 1
`IF $010 THEN PRINT "SO10":
`IF e4600 THEN PRINT "P 4600”:
`row = row + 1
`
`"Bad RAM"
`state$(1)
`1”
`state$(O) — "RAM ok "
`state 2 f1agb AND 1: 1state 2 ram
`GOSUB estate:
`ram = state:
`FOW = POW + 1
`state$(1) = ”City Mode
`”
`state$(0) = "Highway Mode"
`state = f1agil AND 8: Tstate = city
`GOSUB dstate: city 2 state:
`row 2 row + 1
`state$(1) = "Muted
`state$(0) = ”Not Muted "
`state = f1agil AND 2: 1state = muted
`GOSUB dstate: muted = state:
`POW = FOW + 1
`Page 4
`
`K40 Exhibit 1011, pg. 4
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 4
`IPR2013-00240
`
`
`
`n
`
`graph3.bas
`
`"Automute
`state$(1)
`state$(0) = "Not Automute ”
`state = f1ag 11 AND 32: 1State = amuted
`GOSUB dstate: amuted 2 state:
`row 2 row + 1
`stateSCO) : "Not Dark Mode"
`State$(1) = "Dark Mode
`"
`state = f1agil AND 4: Tstate = darken
`GOSUB dstate: darken = state:
`row = row + l
`State$(0) = "TranSTent
`”
`State$(1) : "Not Transient”
`state — f1agc AND 4: 1state = trans1entd
`GOSUB dstate transientd = state:
`row = row + 1
`state$(0)=
`State$(l)—— "Unpaired"
`state 2 TTagb AND 4: Tstate = unp
`GOSUB dstate: unp = State:
`row = row + 1
`LOCATE row, 1
`ELSE PRINT ”
`";
`IF xdetect THEN PRINT "X
`ELSE PRINT ”
`";
`IF kdetect THEN PRINT "K
`" ELSE PRINT ”
`IF kadetect THEN PRINT "Ka
`row = row + 1: LOCATE row,
`1
`IF train THEN PRINT "Train
`
`'2
`‘3
`
`"
`
`"
`
`IF emergency THEN PRINT "Emergency Veh1c1e:
`IF roadhaz THEN PRINT 'Road Hazzard
`IF NOT (train AND emergency AND roadhaz) THEN PRINT "
`
`"
`
`row = row + 1: LOCATE row, 1
`IF hotxdetect THEN PRINT "Hot x ";
`ELSE PRINT "
`IF hotkdetect THEN PRINT "Hot K " ELSE PRINT ”
`
`'H
`
`"
`
`row = row + 1
`LOCATE row, 1
`PRINT USING "In/Ot/Hot \\ \\ \\"; HEX$(swcnt1nner); HEX$(chntouter);
`A
`HEX$(swcnthotxk)
`row : row + 1
`PRINT USING "Fb/Sr/Tm \\ \\ \\"; HEX$(bad); HEX$Csbad); HEX$Ctbad)
`row = row + 1
`II
`n
`PRINT ”Smart "; HEX$(smartspec);
`row = row + 2
`IF Tocked = 0 THEN PRINT "Not Locked" ELSE PRINT USING "Locked DeTtI:###";
`(ABSCLPealePindex) + LPeakZCPindex)
`— peakl _ Peak2)) / 2
`row = row + 1: PRINT "At" + Fn q$(21at, z1ong):
`row = row + 1
`state$(0) 2 "Above Speed
`State$(l)~ "No A1ert be1ow Spd”
`IF zVeTocity < .2 THEN State = 1
`State = O: Tstate = LastSpd:
`GOSUB dstate: LastSpd = state:
`row = row + 1
`FOR I = 1 TO fidx
`PRINT USING "L#"; I;
`PRINT fnq$CZLock(I, 1), ZLOCk(Is 2))
`IF Zd'ist < 9 THEN PRINT USING "d:#.#"; zdist; ELSE PRINT
`
`Ild:‘~-"
`
`PRINT USING " Frq:#### ####"; LPealeI); LPeak2(I)
`row = row + 1
`
`NEXT I
`
`row = 1
`s$ = "x/k & Ka Outer Band Stick”: Tastx = 1xk1evn: Tastax = 1axk1evn
`max = 45:
`r = xk1evn: GOSUB tabar: 1xk1evn = X: 1axk1evn = ax
`row 2 row + 1
`s$ = "Ka Inner Band Stick": Tastx = 1ka1evn: Tastax = Taka1evn
`= ka1evn
`GOSUB tabar: 1ka1evn = X: 1aka1evn = ax
`
`Page 5
`
`K40 Exhibit 1011, pg. 5
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 5
`IPR2013-00240
`
`
`
`graph3.bas
`IllllllllllII‘IIIIIIIIllll'ledlsllllllllllllllllllllllllllllllll
`
`notx:
`
`xoff = 200
`yoff = ycsize
`ys = yoff + 14
`xs =
`xspace2= 30
`xdisp = 20
`IF textdone THEN GOTO notx
`LOCATE ychars — 1, 21: PRINT "Meter";
`LOCATE ychars — 1, 48: PRINT "x";
`LOCATE ychars — 1, 56: PRINT "K";
`LOCATE ychars ~ 1, 63: PRINT "Ka";
`LOCATE ychars — 1, 71: PRINT 'Laser";
`
`= disp1ay1
`ip = j AND &H1F
`
`IF 1meter = ip THEN GOTO notnew
`ii = 1
`FOR I = 0 TO 4
`iii = ii AND j
`GOSUB led
`ii 2 ii * 2
`
`NEXT I
`1meter = ip
`
`iii=0llllllllllllflllli< _____________ patch
`notnew:
`
`iii = &H20 AND disp1ayl'
`IF x1ed = iii THEN GOTO skipx
`I = 8
`GOSUB 1ed
`x1ed = iii
`
`'
`iii = &H40 AND dispTayl
`IF k1ed = iii THEN GOTO skipk
`I = 11
`GOSUB Ted
`k1ed = iii
`
`iii = &H80 AND disp1ayl'
`IF kaTed = iii THEN GOTO skipka
`I = 14
`GOSUB 1ed
`ka1ed = iii
`
`iii : 1 AND disp1ay2'
`IF 1as1ed = iii THEN GOTO skipkb
`= 17
`GOSUB 1ed
`1as1ed = iii
`
`skipx:
`
`Skipk:
`
`skipka:
`
`"'
`skipkb:
`
`x band indicator
`
`k band indicator
`
`Ka Band indicator
`
`Laser indicator
`
`‘
`
`Determine sweep type
`Xkdata: _lllIllllIIIlllllllllllllillllllllll
`""" xkdata = r(set4) AND 1:
`IF xkdata <> 0 THEN xkdata = —1
`
`# chars 1eft on bottom
`bchars = 1'
`vsize = ycsize * (ychars — bchars —
`row — 4 — 2) \ 3
`v = vsize — 7'
`Vertica1 size
`Page 6
`
`K40 Exhibit 1011, pg. 6
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 6
`IPR2013-00240
`
`
`
`x1 = 160'
`h = sizex — x1 - 35'
`iindex = 0'
`maxv 2 &H80'
`
`graph3.bas
`Horizonta1 offset
`Horizonta1 size
`Initia1 index
`max va1ue
`
`HandTe x/k & Ka Outer data disp1ay here
`‘4‘"“"”'
`i** i
`Fina1 index
`f1ndex — xcpts‘
`Ca1cu1ate indicies of xk band segment of sweep
`IF p4600 THEN
`aXTeft = CSNGCfindex) * CSNG((100 —
`axrite = CSNGCfindex) * CSNG((100 —
`
`(33.3 + 16.2 — 5)) / 100)
`(66.66 + 16.2 + 5)) / 100)
`
`ELSE
`
`ax1eft = CSNGCfindex) * CSNG((33.3 + 16.2 — 5) / 100)
`axrite = CSNGCfindex) * CSNG((66.66 + 16.2 + 5) / 100)
`
`END IF
`
`pl = 0: p2 = O
`a1ert = xdetect OR kdetect
`IF a1ert <> 0 THEN pl 2 peakl — xkbase: p2 = Peak2 — xkbase' horizonta] detect
`positions
`pc1ose = tc1ose
`id = 1: leid) = (bchars + 2) * ycsize'
`1abe1$ = "x/k"
`FOR I ~—0 TO 11
`indexCI) = xkindex(I)
`H
`magCI) = kaagCI)
`corCI)
`xkcor{I)
`NEXT I
`f1oor = O
`dthresh = xkthresh
`GOSUB tp1ot
`
`Vertica1 offset
`
`'****************************Hand1e ‘Ka Inner! data disp1ay here
`'
`xx = kapeak
`.
`_
`f1ndex : kacpts'
`F1na1 1ndex
`
`Ca1cu1ate indicies of Ka
`
`'fa1se region'
`
`IF p4600 THEN
`f1 2 findex * CSNGCC3.8) / 100): fr = CSNGCfindex) * CSNG((63.8) / 100)
`ELSE
`
`/ 100)
`
`= findex * CSNGCClOO — 3.8) / 100):
`END IF
`fi ~(fr - f1) \ 4
`
`f1 = CSNG(findex) * CSNG((1OO — 63.8)
`
`horizonta1 detect positions
`
`Vertica1 offset
`
`= 0: p2 = 0'
`p31ose = tc105e
`=
`1
`1(id) = (bchars + 4)* ycsize + v'
`abe1$ = HKa
`a1ert = kadetect
`IF kadetect <> 0 THEN p1=peak1 — KABASE: p2 = PeakZ — KABASE
`FOR I = 0 TO 11
`index(1)—— kaindexCI)
`mag(I) = kamagCI)
`corCI) = kacorCI)
`
`NEXT I
`"""f1oor 2 25
`dthresh = kathresh
`GOSUB tp1ot
`'****************************Hand1e 'Hot Xk' data disp1ay here
`""'IF (tstf1ag AND 64) = 0 THEN GOTO skiphot
`Page 7
`
`K40 Exhibit 1011, pg. 7
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 7
`IPR2013-00240
`
`
`
`graph3.bas
`
`horizontaT detect positions
`
`* ycsize + 2 * v'
`
`VerticaT offset
`
`IF 5010 THEN GOTO Sk1ph0t
`FinaT index
`findex = hotxkcpts'
`Ca1cu1ate indicies of hotxk 'usefuT region'
`f1 = findex * CSNGCZQ / (29 + 62.5)): fr = Findex
`fi = (fr — f1) \ 4
`pl = 0: p2 = 0'
`chose = tcTose
`id = 3: leid) = (bchars + 6)
`Tabe1$ = "Hot"
`aTert = kadetect
`IF hotxkdetect <> 0 THEN p1 : peakl — HOTXKBASE: p2 = PeakZ — HOTXKBASE
`FOR I = 0 TO 11
`indexCI) = hotxkindexCI)
`magCI) = hotkaagCI): corCI) = 0
`
`NEXT I
`"""fToor =25
`dthresh = hotxkthresh
`GOSUB tpTot
`
`textdone = —1
`skiphot: pTotdone = -1:
`skomod
`RETURN'
`GOTO dispTay
`' 'k'k‘k*‘k**%"k**‘k*‘k7‘:~k***f€5’:7‘:7‘:*:‘:*=’r**7‘:7’:~k=’:i:**‘k'k******'ki:*~k7‘:‘k‘k‘k‘k**ft*************z‘c7’:**
`END
`
`'
`Ted:
`
`DispTay LED's
`X = xoff + I * xdisp
`IF 111 THEN
`LINE (X, yoff)—(X + xs, ys),
`
`ELSE
`
`red, BF
`
`END IF
`
`RETURN
`
`LINE (X, yoff)—(X + x5, ys), background, BF
`LINE (X, yOTTD-(X + x5, ys),
`red, B
`
`t1ine:
`
`pdat:
`
`1
`
`ttTine:
`
`pzdat:
`
`DispTay DecimaT vaTue 'v' of string s$
`
`IF textdone THEN GOTO pdat
`LOCATE row, 1
`PRINT s$;
`textd + 1
`LOCATE row,
`PRINT USING "#####"; v;
`RETURN
`
`Same as tTine but with wider string
`
`IF textdone THEN GOTO pzdat
`LOCATE row, 1
`PRINT S5;
`textd + 1
`LOCATE row,
`IF V THEN
`PRINT USING "#####"; v;
`ELSE
`—";
`END IF
`
`PRINT "
`RETURN
`
`Two condition text dispTay
`
`dstate:
`
`IF textdone = 0 THEN GOTO odat
`IF state = Tstate THEN RETURN
`
`Page 8
`
`K40 Exhibit 1011, pg. 8
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 8
`IPR2013-00240
`
`
`
`odat:
`rest:
`
`IF state <> 0 THEN state 2 1
`LOCATE row, 1
`PRINT state$(state)
`RETURN
`
`graph3.bas
`
`Two condition text dispTay
`
`estate:
`
`qdat:
`
`IF textdone = 0 THEN GOTO qdat
`IF state = Tstate THEN RETURN
`IF state <> 0 THEN state 2 1
`PRINT stateSCstate)
`RETURN
`
`Two condition text dispTay
`
`pstate:
`
`podat:
`
`IF textdone = 0 THEN GOTO podat
`IF state = 1state THEN RETURN
`IF state <> 0 THEN state = 1
`LOCATE row,
`1
`PRINT state$(state);
`RETURN
`
`state4:
`
`Four condition text dispTay
`IF textdone = 0 THEN GOTO rest
`IF state 2 Tstate THEN RETURN
`GOTO rest
`
`DispTay Hex vaTue 'v' of string S$
`
`IF textdone THEN GOTO pdatl
`LOCATE row, 1
`PRINT s$
`textc + 2
`LOCATE row,
`PRINT HEX$CV);
`"
`"
`RETURN
`
`ScaTe bar graphs
`
`IXYL
`
`F textdone THEN RETURN
`2 zfuTT * ca1ibrate / max + xcenter
`= fnsCrow) + ycsize
`INE (xcenter, Y)—(X, Y), 1b1ue
`t1 = Y — 2:
`t2 = Y + hh
`red, BF
`t2),
`LINE (X — toTer,
`t1)—(X,
`LINE (xcenter + 1, Y)-(xcenter + 1, Y - 4), 1b1ue
`X = X / xcsize + 2
`LOCATE POW, X
`PRINT 1egend$;
`RETURN
`
`hTine:
`
`pdatl:
`
`scaTe:
`
`tbar:
`
`pbar:
`
`Rea1 time bar graph dispTay
`
`IF textdone THEN GOTO pbar
`X : xcharZ — LEN(5$)
`LOCATE row, x
`PRINT s$
`
`'PRINT TnXSCP): RETURN
`IF r < 1 THEN r = 1'
`IF r > max THEN r = max
`X = zfuTT * r / max
`
`' On first pass print associated
`string
`
`'
`
`' Print the bar here
`
`This improves appearance of bar
`
`Page 9
`
`K40 Exhibit 1011, pg. 9
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 9
`IPR2013-00240
`
`
`
`graph3.bas
`Y = fnsCrow) + 6: yy : Y + 3
`xx = xcenter + X + 1
`IF 1astx < X THEN
`LINE (xcenter + 1, Y)—(xx, yy), bcoior, BF
`
`ELSE
`
`LINE (xx, Y)—(xcenter + fu11 + 1, yy), background, BF
`
`END IF
`RETURN
`
`Rea1 time bar graph dispiay with averaged bar
`
`IF textdone THEN GOTO apbar
`X = xcharZ — LENCs$)
`LOCATE row, X
`PRINT s$
`
`'
`
`' On first pass print associated
`string
`
`' Print the bar here
`This improves appearance of bar
`
`IF r < 1 THEN r = 1'
`IF r > max THEN r = max
`X = zfuii
`* r / max
`Y = fns(row) + 8: yy : Y + 2
`xx = xcenter + X + 1
`IF 1aStX < X THEN
`LINE (xcenter + l, Y)—(xx, yy), Tbiue, BF
`
`ELSE
`
`tabar:
`
`apbar:
`
`END IF
`
`LINE (xx, Y)—(xcenter + fu11 + 1, yy), background, BF
`
`Dispiay averaged bar
`ax = CSNG(X) * .l + .9 * CSNGCiastax)
`Y = fns(row) + 4: yy = Y + 2
`xx = xcenter + ax + 1
`IF lastax < ax THEN
`LINE (xcenter + l, Y)—(xx, yy), ye110w, BF
`
`ELSE
`
`END IF
`RETURN
`'************************e***********ekaeae*eaeeaa***********************k***
`
`LINE (xx, Y)—(xcenter + fu11 + 1, yy), background, BF
`,
`
`'
`'
`'
`'
`'
`'
`‘
`'
`'
`'
`'
`'
`'
`'
`'
`:
`l
`
`.
`tp1ot:
`
`va1ues
`
`P10t 16 e1ement array with indicies index() and magnitudes mag()
`Assumes index vaiues are ordered
`RANDOMLY!
`
`id: verticai p1ot number
`pl,p2:
`indicies of stick enabie peaks
`aiert: true if active a1ert for this disp1ay
`v: vertica1 size
`h: Horizontai size
`leid): Vertica1 offset
`x1: Horizontai offset
`findex: Fina]
`index number
`iindex: Initai
`index number
`maxv: Max vaiue of data in piot
`fioor: X axis assigned this vaiue to reduce viewed noise
`1abe1$: Labei
`dthresh: dynamic thresho1d
`pair:
`pc1g§9i¢}1]gmjna’ce "eQIEQI‘fliEEintdose “185315111114.“ J.
`
`x2 = x1 + h: y2 = y1(id) + v
`szid) = h / (findex — iindex): zy(id) = v / maxv'
`
`find mapping
`
`Page 10
`
`K40 Exhibit 1011, pg. 10
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 10
`IPR2013-00240
`
`
`
`graph3.bas
`
`rTyCid) =
`rTXCid) =
`
`leTd)
`x1 + h
`
`+ v \ 2
`'
`
`'
`
`Location of right
`1abe1
`
`IF p10tdone THEN GOTO tupdate
`LOCATE ychars — r1y(id) \ ycsize,
`PRINT 1abe1$;
`LINE (x1 — 1, y1(id) —
`
`box in p1ot area
`
`r1x(id) \ xcsize + 2
`
`I)—(x2 + 1, y2 + 1), hiwhite, 3'
`
`draw
`
`yyl = fnyCO) + vsize — 16: yy2 = yy1 + 16
`IF (id = 2) 0R (id = 3) THEN
`SX
`SX II
`fnfoT): LINE (sx, yy1)—(sx, yy2), hiwhite
`anCfr): LINE (sx, yy1)—(sx, yyZ), hiwhite
`
`END IF
`IF (id = 1) THEN
`sx :
`fnxCaxTeft): LINE (5x, yy1)—(sx, yy2), hiwhite
`sx :
`fnxCaxrite): LINE (sx, yy1)—(sx, yy2), hiwhite
`
`END IF
`
`ncO = fnx(0)
`FOR I
`1c(id,
`NEXT I
`
`1 TO peaks
`I) =
`ncO: TmCid, I) = y1(id)' init previous set to O
`
`tupdate:
`
`threshCid) : fnyCO)‘
`
`Init position for dynamic threshon
`
`DispTay dynamic threshon
`Y = dthresh — f100r:
`IF Y < 0 THEN Y = 0
`Y = fnyCY)
`c01 2 background
`COT = red
`IF Y > threshCid) THEN
`LINE (x1 — 10,
`thresh(id))—(x1 — S, Y), coT, BF' growth
`thresh(id) = Y
`
`' Bubb1e Sort the peak tab1e
`FOR j = peaks ~ 2 TO 0 STEP —1
`
`FOR I = 0 Toj
`IF indexCI) < index(I + 1) THEN
`SWAP index(I),
`indexCI + 1)
`SWAP magCI), magCI + 1)
`
`END IF
`
`NEXT I
`
`NEXTj
`
`FOR I = 0 TO peaks ~ 1'
`r = indeRCI)
`IF r < Tindex THEN r =
`
`IF r > findex THEN r =
`ncCId,
`I + 1) = fnxCr)
`rc(I) = r
`r = mag(I)
`
`— f100r:
`
`Map peaks into disp1ay array
`
`iindex
`fingex
`— 11ndex
`
`IF r < 0 THEN r = 0
`IF r > maxv THEN r = maxv
`nmCId,
`I + 1) = FnyCr)
`
`NEXT I
`
`' Check
`
`to see if any mapped peaks have matched x—screen coordinates
`If 50,
`remove one of them or dispTay anom011es w111 occur
`
`FOR I = 1 To peaks — 1
`
`Page 11
`
`K40 Exhibit 1011, pg. 11
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 11
`IPR2013-00240
`
`
`
`graph3.bas
`IF ncCid, I) <> nc(id, I + 1) THEN GOTO rich
`IF nc(id, I) = ncO THEN GOTO rich
`'GOTO see
`ncCid, I + 1) = ncO
`
`rich:
`
`NEXT I
`
`Draw new peaks
`FOR I = 1 TO peaks'
`IF nc(1d, I) = ncO THEN GOTO edone
`
`Does this eiement match 01d e1ement?
`FOR j = 1 TO peaks'
`IF ncCTd, I) <> 1c(id,
`j) THEN GOTO nomatch
`
`Modify bar by either increasing or decreasing
`
`IF (nmCid, 1) > WmCid, j)) THEN
`LINE (nc(id, I), 1m(id,
`j))~(nc(id, I), nmCid,
`ELSE
`
`ID), ye110w' growth
`
`LINE (nc(id, I), TmCid,
`END IF
`j) = ncO'
`GOTO edone'
`
`1c(id,
`
`j))—(nc(id, I), nmCid, I)), background' deciine
`
`remove 01d index
`this eiement comp1eted
`
`NEXT j
`nomatch:
`If no e1ement matches, draw new eiement
`LINE (ncCid, I), y1(id))—(nc(id, I), nmCid, I)), ye11ow
`edone:
`NEXT I
`
`Remove 01d peaks
`FOR I = 1 TO peaks'
`IF 1c(id, I) <> ncO THEN
`LINE (1cCid, I),
`leid))—(1c(id, I), 1m(id, I)), background
`END IF
`1c(id, I) = nccid, I)
`1m(id, I) = nmCid, I)‘
`
`Update aged array
`
`NEXT I
`
`'********************piot comp1eted, now add supporting information
`****************%*******
`"
`
`'
`
`Show Average, Transient, & Phase Information
`tpr = 3
`' Bar height
`yyl = fnyCO) + vsize + 1: yy2 = yyl + tpr:
`jp = l
`yy3 = yyZ + 2: yy4 = yy3 + tpr
`ysl = FnyCO) + vsize + 1: ysZ = ysl + 8
`xxl = x1: xx2 2 X1 + h
`LINE (xxl, ysl)—(xx2, ysZ), background, BF
`FOR I = 0 TO 3'peaks — 1'
`Map peaks into dispiay array
`"""""""
`j = ncCid,
`i + l)‘ x~coordinate
`' = fnchor(I))
`IF j < x1 + 10 THEN GOTO drt
`""""'IF xkcorCi) THEN
`c = 1red
`""""" “ ""'IF rcCi) AND &H8000 THEN c = hiwhite
`LINE (j
`,
`~ jp yyl)~(j + jp, yyZ). c, BF
`lllllIlll::
`::IUIIIENDIF
`""'IF rc(i) AND &H2000 THEN LINE (j
`igreen, BF
`yy4),
`drt:
`NEXT I
`GOTO skiparound
`
`- jp, yy3)—(j + jp,
`
`‘
`
`Show_Automute Smartmute deactivated regions*************************
`IF id <> 1 THEN GOTO nosmute
`
`Page 12
`
`K40 Exhibit 1011, pg. 12
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 12
`IPR2013-00240
`
`
`
`ytl = ysl ~ 6: ytZ = ysl r 4
`IF ((r(set3)) AND 2) z 0 THEN ‘ Oniy c1ear background if no data
`LINE (xxl, ytlD—(XXZ, ytZ), background, BF' erase 01d stuff
`END IF
`
`graph3.bas
`
`FOR 1 = 0 TO 15
`vv = rCsmutexk) AND p(i)'
`IF vv THEN
`j = 1eft + i * msize'
`
`'
`
`Find index of disab1ed
`
`jmsize = fnmesize) ~ fnx(0)
`
`regionai bit vaiue
`
`‘
`
`'
`
`'
`
`‘
`
`'
`
`'
`
`'
`
`'
`
`regions
`
`'
`
`END IF
`
`x—coordinate
`'
`j = fnij)
`LINE (j, ytl)—(j + jmsize, ytZ), 1b1ue, BF
`
`‘
`'
`'NEXT 1
`=nosmute:
`skiparound:
`IF id <> 2 THEN GOTO fomp
`ny = yyl — 2:_¥y6 = ny — 3
`tspace = fnxCFi
`— fnxCO)
`ccut = 12'
`when timer<ccut, switch to dark green
`
`ic1 = background:
`green
`
`IF regtimCO) THEN ici : igreen:
`
`IF regtimCO) < ccut THEN ic1
`
`xx5 = fnx(f1): xx6 = xxS + fspace
`LINE (xxS, ny)—(xx6, yy6),
`ici, BF
`
`ici = background:
`green
`
`IF regtim(l) THEN ic1 = igreen:
`
`IF regtimCl) < ccut THEN ic1
`
`XXS = xx6: xx6 = xx6 + Fspace
`LINE (XXS, yy5)—(xx6, yy6),
`ic1, BF
`
`ic1 = background:
`green
`
`IF regtim(2) THEN ici = igreen:
`
`IF regtimCZ) < ccut THEN ic1
`
`xxS = xx6: xx6 = xx6 + Fspace
`LINE (xxS, yy5)—(xx6, yy6), ici, BF
`
`ici = background:
`green
`
`IF regtim(3) THEN ic] = 1green:
`
`IF regtimC3) < ccut THEN ic1
`
`fomp:
`
`'
`stickx:
`
`xxS = xx6: xx6 = xx6 + fspace
`LINE (xx5, yy5)—(xx6, yy6), it], BF
`
`Show stick enab1e regions
`
`— p1) < pc1ose THEN GOTO transit
`IF ABS(1p1(id)
`ppl = 0: ppZ = D
`SWAP pl, ppl: SWAP p2, pp2'
`GOSUB transit‘
`SWAP p1, ppl: SWAP p2, ppZ'
`
`If bars moved, shift off screen
`Draw the bar
`_
`& redisp1ay so they don't interract
`
`1|
`
`I!
`
`' Show aiert position indicators
`yyl = leid) — 8
`IF a1ert AND NOT (newwaiert) THEN
`PSET (fnxCpl), yyl), green: PSET (fnxCpZ), yyl), green
`END IF
`newwa1ert = aiert
`
`transit:
`"
`
`IF pl <= 10 THEN GOTO ignore
`bl = yl(id) — 6: b2 = yl(id) — 2'
`ul = pl — pciose: u2 = pl + pciose
`v1 = 1pl(id) — pciose: v2 = 1p1(id) + pc1ose
`GOSUB xbar
`
`Page 13
`
`verticai bar dimensions
`
`K40 Exhibit 1011, pg. 13
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 13
`IPR2013-00240
`
`
`
`ignore.
`"
`
`IF p2 <= 10 THEN GOTO capture
`ul 2
`2 — chose: u2 = p2 + pc105e
`v1 =
`pZCid)
`— chose: v2 = TpZCid) + pc105e
`GOSUB xbar
`capture: TplCid) = pl: 1p2(id) = p2
`RETURN
`
`graph3.bas
`
`'
`
`Subroutine for erasing bars
`
`eraseb:
`p1 = 0: p2 = O: GOTO stickx
`
`‘Subroutine for Drawing one of two stick region bars
`
`IF u2 <= v1 THEN
`
`' no overTap
`
`LINE (fnval), bl)-(fnx(v2), b2), background, BF
`IF ul < 0 THEN RETURN
`LINE (an(u1), b1)—(fnx(u2), b2), Tred, BF
`RETURN
`END IF
`
`IF (u2 > V1) AND (ul < V1) THEN
`LINE (fnxCuZ), bl)—(fnx(v2), b2), background, BF
`LINE CfnxCul), bl)v(fnx(v1), b2), Tred, BF
`RETURN
`END IF
`
`IF (ul = Vl) THEN RETURN
`
`IF (ul < v2) AND (u2 > v2) THEN
`LINE (fnval), b1)—(fnx(ul), b2), background, BF
`LINE (fnx(v2), b1)—(fnx(u2), b2), Tred, BF
`RETURN
`END IF
`
`IF ul >= v2 THEN GOTO noover
`STOP
`
`RETURN
`
`END
`
`‘ Request data from interface
`
`timeout = 0'
`GOTO findsync'
`
`transfer request is generated by
`setting para11e1 bit high,10w.
`This is prev10u51y done to improve throughput
`
`Xbar:
`
`noover:
`
`record:
`
`retry:
`
`Set para11e1 port bit high
`Set para11e1 port bit 10w
`
`skomod
`skomod
`
`tbad : 255 AND (tbad + l)
`timeout = O
`'LPRINT CHR$(1)‘
`'LPRINT CHR$(0)'
`WHILE LOC(l)
`I = ASC(INPUT$(1, #1))'
`
`WEND
`PRINT #1, ”A";
`
`‘
`
`skomod
`
`WHILE LOC(1) < 164
`
`IF INKEY$ = CHR$C13) THEN STOP
`Page 14
`
`c1ean out buffer
`
`K40 Exhibit 1011, pg. 14
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 14
`IPR2013-00240
`
`
`
`WEND
`
`graph3.bas
`
`"'
`"‘
`
`FOR q = 1 To 1000: NEXT q
`GOTO record
`
`findsync:
`
`'
`'
`
`Locate the sync
`IF (xdetect = 0) THEN STOP
`IF p1eve1 = 4 THEN STOP
`I = O: WHILE I <> &HAA
`GOSUB reads
`IF timeout THEN GOTO retry
`
`WEND
`GOSUB reads
`IF timeout THEN GOTO retry
`IF I <> &HAA THEN GOTO findsync
`'GOSUB readword: check = iv'
`Read checksum
`"""""""'IF check <> 0 THEN PRINT ”-—”; HEX$(check)
`IF timeout THEN GOTO retry
`'GOSUB readword: words = iv'
`Read # of words
`words = 162 / Z'Skomod
`
`which gives # bytes
`bytes = 2 * words'
`IF timeout THEN GOTO retry
`IF words > 256 THEN GOTO findsync
`
`Do checksum ca1cu1ation
`& fi11 the 'r(' array
`
`scheck = O: NN = O
`'CLS
`IF dhistory = 0 THEN
`FOR n = 0 T0 words — 1'
`GOSUB reads'
`scheck = scheck + I
`FCNN) = I: FF(NN, HISTORY) = I: NN = NN + 1
`IF timeout THEN GOTO retry
`GOSUB reads
`FCNN) = I: FFCNN, HISTORY) = I: NN = NN + 1
`PRINT HEX$(r(nn));
`" ”;
`IF timeout THEN GOTO retry
`
`""
`
`NEXT n
`'GOSUB readword
`scheck = (scheck AND 255)
`
`— (iv AND 255)
`
`IF user hit "*", p1ay back the Tast ten sweeps
`'
`LOCATE 1, 1
`INPUT BLAT
`:
`PRINT "history: "; HISTORY;
`IF BLAT <> 0 THEN HISTORY = BLAT
`FOR n = 0 TO words — l
`r(NN) = rrCNN, HISTORY): NN = NN + 1
`r(NN) = rrCNN, HISTORY): NN = NN + 1
`NEXT n
`.
`
`ELSE
`
`END IF
`
`IF HISTORY > 10 THEN HISTORY 2 0
`HISTORY = HISTORY + 1:
`lllllllillllllllIllIIllllllllllIlllllllllllllllllllllllll
`"'GOTO tindsync
`I
`l
`l
`........Mé9.Tb?.ITS..arre¥.iv¥9.Pregrér.vériéP1?%........
`p=0
`version = GC): p = p + 2
`IF version = 81 THEN 5010 = 1
`IF version = 70 THEN D4600 = 1
`LOCATE 18, 1
`ie = 0
`FOR I = 0 T0 11
`
`Page 15
`
`K40 Exhibit 1011, pg. 15
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 15
`IPR2013-00240
`
`
`
`graph3.bas
`kaagCI) = r(p + 3 * I)
`POKE 1V1, GC + 3 * I + 2)
`POKE 1v2, GC + 3 * I + 1)
`IF 1v < 0 THEN
`ELSE
`inndexCI) 2 iv ~ xkbase
`END IF
`
`NEXT I
`
`p = p + 36
`FOR I = 0 T0 3
`POKE 1v1, r(p + 2 * I + 1)
`POKE 1v2, GC + 2 * I)
`~ xkbase
`xkcor(I)= (1v AND &H7FFF)
`IF xkcorCI) < 0 THEN xkcorCI) =
`
`NEXT I
`FOR 1 = 0 TO 1
`IF xdetect OR kdetect THEN
`PRINT USING aa$; 1; HEX$(xkcor(1)); HEX$(xkcor(1))
`ELSE
`PRINT USING aa$; 1; HEX$CkaC0r(1)); HEX$Ckacor(1))
`END IF
`
`NEXT 1
`
`p=p+8
`FOR I = 0 To 11
`kamagCI) = GC + 3 * I)
`POKE 1v1, GC + 3 * I + 2)
`POKE 1v2, GC
`* I + l)
`ka1ndex(I) = (1V3AND &H7FFF)
`
`NEXT I
`
`~ KABASE
`
`p = p + 36
`FOR I = 0 TO 3
`POKE ivl, GC + 2 * I + 1)
`POKE 1v2,
`r(p + 2 * I)
`— KABASE
`kacorCI) = (1v AND &H7FFF)
`IF kacor(I) < 0 THEN kacorCI) 2
`
`NEXT I
`
`p=p+8
`FOR I = 0 T0 7
`hotkaag(I) = GC + 3 * I)
`POKE 1v1,
`r(p + 3 * I + 2)
`POKE 1v2, GC + 3 * I + 1)
`hOtxkindex(I) = (iv AND &H7FFF)
`
`NEXT I
`
`— HOTXKBASE
`
`p = p + 24
`
`smartspec = r(p): p = p + 3
`
`f1aga = GC): p = p + l
`f1agb = r(p): p = p + 1
`fTagc : FCp): p = p + 1
`
`FOR I = 0 TO 3
`regtimCI) = GC): p = p + 1
`
`NEXT I
`1count = r(p):
`‘IF p4600 THEN PRINT "Taser : "; 1count;
`'p=p+l
`
`"
`
`"
`
`POKE 1v1,r(p + l): POKE 1v2, GC)
`peakl = 1v: p = p + 2
`r(p)
`POKE 1v11_ Vr(p + 1):POKE 1v2,
`Peak2=
`p: p + 2
`IF peakl < Peak2 THEN SWAP peakl PeakZ
`Page 16
`
`K40 Exhibit 1011, pg. 16
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 16
`IPR2013-00240
`
`
`
`graph3.bas
`
`swcntouter = FCp): p = p + 1
`swcntinner = r(p): p = p + 1
`swcnthotxk = GC): p = p + 3
`
`xkthresh = r(p): p:Mp+ 1
`hotxkthresh = GC ): —p + 1
`kathresh: GC): p:
`+2
`
`(II}
`
`r(pT _p: p + 1
`kaevn
`O: }p+p1
`kaTevn
`r(pT
`+
`maxa e
`disp ay1= rC138T p = p + 1
`p1eve1 = r(p): p = p +
`
`Te :
`FOR I = 0 TO 5
`IF ie <= 4 THEN
`IF NOT (hotdetect) AND NOT (kainner) THEN ind = kandexCI): mag = kaagCI)
`IF hotdetect THEN ind = hotxkindexCI): mag = hotkaagCI)
`IF kainner THEN 1nd : kaindexCI): mag = kamagCI)
`IF ind > 16 THEN
`'PRINT USING aa$;
`ppCTe) = 1nd
`1e 2 1e + 1
`
`i; HEX$C1nd); HEX$(mag);
`
`END IF
`
`END IF
`NEXT I
`
`'
`
`'
`
`'
`
`FOR I = 0 TO 3
`IF kadetect THEN
`honCI) = kacor(I)
`
`END IF
`'PRINT USING aa$; i; HEX$Ckacor(i)); HEX$Ch01d(i))
`
`NEXT I
`
`- pp(0)) * zf1t)
`zt = ABSCCSNG(pp(l)
`PRINT USING "p—p DeTta ###.## ms”; Zt
`
`PRINT USING "k/pTeveT ##
`dispTayZ : GC): p = p + 1
`FOR I = 0 T0 3
`r(p + 1)
`POKE ivl, r(p): POKE ivz,
`center(I) = (TV AND &H7FFF)
`— xkbase:
`
`"; pTeveT
`
`NEXT I
`
`p = p + 2
`
`tsthag = r(p): p = p + 1: p = 150
`FTagil = GC): p = p + 1
`TTagiz = GC): p = p + 1
`
`'IF f1agTZ AND 8 THEN PRINT "Linearize
`f1agi3 = r(p): p = p + 1
`
`" ELSE PRINT "No Linearize"
`
`'LPRINT CHR$(I)'
`'LPRINT CHR$(O)'
`PRINT #1,
`"A";
`
`Set para11e1 port bit high
`Set para11e1 port bit 10w
`skomod
`
`skomod
`skomod
`
`RETURN
`
`' Read two bytes from seriaT interface & form word
`
`readword:
`I
`GOSUB reads: POKE ivl,
`IF timeout THEN RETURN
`GOSUB reads: POKE iv2,
`I
`RETURN
`
`Page 17
`
`K40 Exhibit 1011, pg. 17
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 17
`IPR2013-00240
`
`
`
`' Read byte via seria1 interface
`
`graph3.bas
`
`reads:
`
`Tout:
`
`time = 32000
`'ERR = 0: ON ERROR RESUME NEXT
`
`TIMER 0N
`timeout = 0
`ON TIMERCZ) GOSUB TimerTimeout
`WHILE LOCCl) = 0
`'time = time ~ 1:
`'IF time : 0 THEN
`'timeout = —1:
`""LOCATE 15, 0: PRINT "timeout # ”;
`IF timeout THEN
`RETURN
`END IF
`
`tbad; WORDS; N
`
`WEND
`
`RETURN
`
`TIMER OFF
`timeout = 0
`ON ERROR GOTO errorhand1er
`I 2 ASCCINPUT$(1, #1))
`ON ERROR GOTO 0'
`
`Terminate the error support
`
`TimerTimeout:
`timeout = —1
`RETURN
`errorhand1er:
`sbad = Sbad + 1
`timeout = —l
`RESUME Tout
`errorhand1er2:
`bad = bad + 1
`RESUME grec
`
`Page 18
`
`K40 Exhibit 1011, pg. 18
`|PR2013-00240
`
`K40 Exhibit 1011, pg. 18
`IPR2013-00240
`
`