throbber
'tst4600i: change ax1eft &axright
`
`graph3.bas
`
`DEFINT A-Y
`DEFSNG Z
`PRINT : PRINT : PRINT
`
`PRINT "4600/S010 Support Code 4/10/95"
`zcon = 180 / 3.141S92654#
`zkl = .005: zk2 = .995‘
`
`Energy averaging constants
`
`DIM s$(512), s(512), c$(S12), bit(S12)
`DIM r(2S6)
`DIM xkindex(11), xkcor(11), kaindex(11), kacor(11)
`DIM hotxkindex(11), hotxkmag(11)
`DIM xkmag(11), kamag(11)
`DIM index(16), mag(16), cor(16)
`DIM rr(256, 10)
`
`DATA 1,2,4,8,&h10,&h20,&h40,&h8O
`DATA %h190,&h200,&h400,&h800,&h1000,&h2000,&h4000,&h8000
`DIM p 15
`
`FOR I = 0 TO 15: READ p(I): NEXT I
`aa$ = "## \
`\ \
`\"
`
`'
`
`id = 3
`DIM v(500)
`peaks = 10
`DIM nc(id, peaks), nm(id, peaks)
`DIM 1c(id, peaks)
`DIM 1m(id, peaks)
`DIM y1(id), zx(id), zy(id)
`DIM 1p1(id), Tp2(id)
`DIM rTx(id),
`rTy(id)
`DIM rc(peaks)
`
`# of p1ots
`
`_
`j$) = NOT (I — vAL(j$))
`DEF FNA (I,
`DEF fnb (I, 3) = vAL("&H" + CHR$(I) + cHR$(J))
`DEF FNC (I, j, k, 1) = vAL("&H” + CHR$(I) + cHR$(j) + cHR$(k) + cHR$(T))
`DEF FND (I) = CSNGCI) / dZ56
`DEF fnx$ (I) = RIGHT$("000O" + HEx$(I), 4)
`DEF fnx (X) = zx(id) * X + x1
`DEF fny (Y) = (Y) * zy(id) + y1(id)
`DEF Fnzz$ (z) = sTR$(INT(z * 10!) / 10!)
`DEF fnq$ (Z1, Z2) = "{" + fnzz$(z1) + ”," + fnzz$(z2) + "}"
`DEF Fnzz (I) = vAL(MID$(v$, 1))
`DEF fnz (I) = (fnzz(I) —
`(40!
`* INT(fnzz(I) / 100!))) / 60!
`ivl = vARPTR(iv):
`iv2 = ivl + 1
`
`* 69.1722
`
`‘ Constants
`‘The fo11owing 2 e1ements are doub1ed in order to compensate for the
`'2 bytes storaged for each index in memory.
`mhz16 = 0
`mpy = 1:
`
`IF mhz16 THEN mpy = 2
`
`xkbase = &H1000
`KABASE = &H3000
`HOTXKBASE = &H5000
`
`stoTer = 90
`fu1Tstick = 31
`tc1ose = 20
`Teft = (33.3 ~ 16.2) * xcpts / 100‘
`Page 1
`
`'
`
`I XIBIT I ‘
`
`find size of smart mute
`
`K40 Exhibit 1012, pg. 1
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 1
`IPR2013-00240
`
`

`
`'
`
`'
`
`graph3.bas
`rite = (66.6 — 16.2) * xcpts / 100'
`msize = 1 + (rite — 1eft) / 16
`Lastspd = 1
`
`GOSUB dis
`
`regions.
`
`Start next transfer
`OPEN "R", #3, "Locked Loc", 30
`FIELD #3, 10 AS d$, 8 As t$, 4 AS 1at$, 4 As Tong$.
`2 AS peak1$, 2 AS Peak2$
`OI? ZLO8k(25, 2), LPeak1(25), LPeak2(25), Tdate$(25), TTime$(25)
`1X=
`FOR I = 1 TO 25
`
`GET #3, I: ZLOck(I, 1) = cvs(1at$): zLock(I, 2) = cvs(1ong$)
`LPeak1(I)
`cvI(peak1$): LPeak2(I) = cvI(Peak2$)
`I!H
`Tdate$(I)
`d$: TTime$(I) = t$
`IF zLock(I, 1) THEN fidx = I
`
`NEXT I
`
`OPEN "cOM2:9600,n,8,1,RB10000,bin,Rs,opO,cd0,dsO" FOR RANDOM AS #2
`OPEN ”COM1:19200,n,8,1,RB1000O,bin,RS,opO,cd0,ds0" FOR RANDOM AS #1
`OUT &H2FB, &HB
`IF dc THEN OPEN "RoadData.txt” FOR APPEND AS #4
`'DO WHILE i <> 13
`A
`‘
`IF LOc(2) 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 LOC(2) > 128
`ON ERROR GOTO errorhand1er2
`LINE INPUT #2, v$
`Terminate the error support
`ON ERROR GOTO 0'
`"$GPGGA") THEN
`IF INsTR(v$,
`ziat = fnz(20): z1ong = —fnz(32): Sr$ = v$
`1ocked = 0
`FOR I = 1 TO fidx
`za = ZLOck(I, 1)
`
`— z1at:
`
`zB
`
`ll
`
`ZLock(I, 2)
`
`—
`
`z1ong: zdist = SQR(za * za + ZB * ZB)
`~
`
`NEXT I
`
`END IF
`
`IF zdist < .25 THEN Tocked = 1: Pindex = I
`
`fnzz(I + 2)
`
`END
`
`IF INsTR(v$,
`
`"$GPVTG") THEN I = INsTR(v$, "M"): zveiocity =
`
`WEND
`SELECT CASE INKEY$
`CASE cHR$(&HO): PRINT " Program Execution Ended": CLOSE :
`
`CASE "1": STOP
`H
`II
`
`IF 1ocked = 0 AND ActiveTimer THEN
`fidx = fidx + 1:
`IF fidx > 25 THEN fidx
`ZLock(fidx, 1) = z1at: ZLOck(fidx, 2) =
`z1ong: LSET 1at$ = MKS$(z1at): LSET 1ong$ = MKS$(z1Ong)
`LPeak1(fidx) = peaklz LPeak2(fidx) = Peak2:
`LSET peak1$ = MKI$(peak1): LSET Peak2$ = MKI$(Peak2)
`Tdate$(fidx) = OATE$: TTime$(fidx) = TIME$:
`RSET d$ = Tdate$(fidx): RSET t$ = TTime$(fidx)
`PUT #3, fidx: Wocked = 1
`Page 2
`
`H
`
`O
`
`K40 Exhibit 1012, pg. 2
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 2
`IPR2013-00240
`
`

`
`graph3.bas
`END IF
`
`CASE "U"
`
`END SELECT
`GOSUB record
`IF fiaga AND 15 THEN ActiveTimer = 4
`
`IF 1ocked THEN ZLock(Pindex, 1) = 5
`
`IF ActiveTimer THEN
`IF ACtiveTimer = 4 AND Tocked = 0 THEN SOUND 800, 2'
`Ring be11 if uniocked signa1 detected
`ActiveTimer = ActiveTimer — 1
`IF dc THEN PRINT #4, DATE$; ","; TIME$; ",";
`words — 1: PRINT #4, r(I); ",";
`: NEXT I: PRINT #4, Sr$, zVe1ocity
`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$(scheck): GOTO grec
`
`GOSUB dispiay
`skomod
`GOTO grec‘
`IF timeout <> 0 THEN GOTO grec
`
`CLS
`
`_
`_
`PRINT : PRINT : PRINT : PRINT
`PRINT "Software in target is version "; HEX$(version)
`
`CLOSE #2
`lllllllllllllllllllllllllllllll
`
`q:
`dis:
`
`Reai
`
`time dispiay
`
`Iillllllllllllllilllll
`
`CLS 0
`biack = 0: biue = 1: green = 2: cyan = 3
`red = 4: magenta = 5: BROWN = 6: white = 7
`ray = 8: 1b1ue = 9:
`igreen = 10:
`icyan = 11
`red = 12:
`imagenta = 13: ye11ow = 14: hiwhite = 15
`
`foreground = white
`background = b1ack
`border = b1ue
`
`SCREEN 12
`
`xchars = 80: ychars = 30
`ycsize = 16: xcsize — 8
`sizex = xchars * xcsize ~ 1
`sizey = ychars * ycsize — 1
`VIEW (1, 1)—(sizex — 1, sizey — 1)‘, background‘, border
`WINDOW (1, 1)—(sizex — 1, sizey — 1)
`
`(sizex + 1) \ 2
`xcenter
`i!!|
`(sizey + 1) \ 2
`ycenter
`xchar2 = xchars \ 2
`DEF fnr (r) = xcsize * Cr ~ 1)‘ FNR Maps char position to screen coor
`DEF Fns (5) = ycsize * (ychars — s)'FNS Maps char position
`COLOR foreground‘, background
`
`fu11 = fnr(xchar2 — 1): zfu11 = fu11
`
`ipavg = -1
`bad = O
`sbad = O
`tbad = 0
`textdone = O
`piotdone = O
`textc = 8
`
`Page 3
`
`K40 Exhibit 1012, pg. 3
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 3
`IPR2013-00240
`
`

`
`graph3.bas
`Horizonta1 character position
`
`textd = 13'
`1meter = -1
`x1ed = -1
`kied = -1
`ka1ed = -1
`1as1ed = -1
`
`LINE (xcenter, ycenter + 200)-(xcenter, sizey), 1magenta
`RETURN
`
`||"I****%******
`disp1ay:
`'
`
`GOSUB record
`
`Setup 2 r(Set10)
`
`' Get next record of data
`
`'
`
`‘
`
`IF p46OO 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 = (sbad + 1) AND 255: GOT0 disp1ay
`
`a$ = INKEY$
`IF a$ = CHR$(27) THEN END
`IF a$ = ”*" THEN dhistory = 1
`IF (a$ = " ") THEN page2 = -1 ELSE page2 = O
`
`IF xdetect THEN xdetect = -1
`f1aga AND 1:
`xdetect
`HH
`IF kdetect THEN kdetect = -1: xdetect = 0
`f1aga AND 2:
`kdetect
`kadetect = flaga AND &HC:
`IF kadetect THEN kadetect = -1
`kaouter = f1aga AND 8
`ka1nner = f1aga AND 4
`
`IF train THEN train = -1
`train = 1count AND 32:
`emergency = 1count AND 64:
`IF emergency THEN emergency = -1
`roadhaz = 1count AND 128:
`IF roadhaz THEN roadhaz = -1
`
`anydetect = xdetect OR kdetect OR kadetect OR hotkdetect OR hotxdetect
`
`row = 3
`
`LOCATE row, 1
`row = row + 1
`IF so1o THEN PRINT "S010":
`IF e460O THEN PRINT "P 4600":
`row = row + 1
`
`state$(1) = "Bad RAM"
`state$(0) = "RAM ok "
`state = f1agb AND 1: Tstate = ram
`GOSUB estate:
`ram = state:
`row = row + 1
`state$(1) = "City Mode
`"
`state$(0) = "Highway Mode"
`state = F1agi1 AND 8: Tstate = city
`H
`GOSUB dstate: city
`state:
`row = row + 1
`state$(1) = "Muted
`"
`state$(O) = "Not Muted "
`state = f1agi1 AND 2: 1state = muted
`GOSUB dstate: muted = state:
`row = row + 1
`Page 4
`
`K40 Exhibit 1012, pg. 4
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 4
`IPR2013-00240
`
`

`
`state$(1)
`state$(O)
`
`graph3.baS
`
`"
`”Automute
`III
`_ "Not Automute "
`state = f1agi1 AND 32: Tstate = amuted
`GOSUB dstate: amuted = state:
`row = row + 1
`state$(0) = "Not Dark Mode"
`State$(1) = "Dark Mode
`"
`State = f1agi1 AND 4: Tstate = darken
`GOSUB dstate: darken = state:
`row = row + 1
`State$(O) = "Transient
`"
`state$(1) = "Not Transient"
`state = f1agc AND 4: Tstate = transientd
`GOSUB dstate:
`transientd = state:
`row = row + 1
`State$(O) = "
`"

`State$(1) = "unpaired"
`state = fTagb 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
`IF emergency THEN PRINT "Emergency Vehic1e"
`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 "
`
`";
`
`”
`
`row = row + 1
`LOCATE row, 1
`PRINT USING "In/Ot/Hot \\ \\ \\"; HEx$(swcntinner); HEX$(swcntouter);
`HEX$(Swcnthotxk)
`row = row + 1
`
`PRINT USING "Fb/Sr/Tm \\ \\ \\"; HEX$(bad); HEx$(sbad); HEx$(tbad)
`row = row + 1
`
`PRINT "Smart "; HEX$(smartSpec);
`row = row + 2
`PRINT
`
`"
`
`"
`
`IF Tocked = 0 THEN PRINT "Not Locked" ELSE PRINT USING "Locked De1tI:###";
`(ABS(LPeak1(Pindex) + LPeak2(P1ndex)
`— peakl — Peak2)) / 2
`row = row + 1: PRINT "At" + fnq$(z1at, z1ong):
`row = row + 1
`State$(0) = "Above Speed
`"
`state$(1) = "No A1ert beTow Spd"
`IF zVe1ocity < .2 THEN state = 1
`state = 0: Tstate = Lastspd:
`GOSUB dstate: Lastspd = state:
`row = row + 1
`FOR I = 1 To fidx
`PRINT USING "L#"; I;
`PRINT fnq$(zLock(I, 1), zLock(I, 2))
`IF zdist < 9 THEN PRINT USING "d:#.#"; zdist; ELSE PRINT
`PRINT USING " Frq:#### ####"; LPeak1(I); LPeak2(I)
`row = row + 1
`
`Nd
`
`"
`
`NEXT I
`
`row = 1
`S$ = "x/k & Ka Outer Band Stick": Tastx = 1xk1evn: Tastax = 1axk1evn
`max = 45:
`r = xk1evn: GOSUB tabar: Txk1evn = X: 1axk1evn = ax
`row = row + 1
`s$ = "Ka Inner Band Stick": Tastx = 1ka1evn: Tastax = 1aka1evn
`r = kaTevn
`GOSUB tabar: 1ka1evn = X: 1aka1evn = ax
`
`Page 5
`
`K40 Exhibit 1012, pg. 5
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 5
`IPR2013-00240
`
`

`
`graph3.bas
`IIllIIlllllIIIIllllIIIllll1edlSlIlIIIllllilllllllllllllllllllll
`
`nOtx:
`
`200
`xoff
`IIN
`ycsize
`yoff
`ys = yoff + 14
`xs = 12
`30
`xspace
`xdisp = 20
`IF textdone THEN GOTO notx
`LOCATE ychars — 1, 21: PRINT "Meter";
`LOCATE ychars —
`, 48: PRINT "X";
`LOCATE ychars —
`, 56: PRINT "K";
`LOCATE ychars —
`, 63: PRINT ”Ka";
`LOCATE ychars ~
`, 71: PRINT "Laser";
`
`E-‘P-‘P-‘l—‘
`
`j = disp1ay1
`ip = j AND &HlF
`
`IF 1meter = ip THEN GOTO notnew
`ii = 1
`FOR I = 0 TO 4
`
`iii = ii AND j
`GOSUB Ted
`ii = ii * 2
`
`NEXT I
`
`Imeter ; ip
`
`iii = 0"""""""""< ——————————— ——patCh
`
`notnew:
`
`skipx:
`
`skipk:
`
`skipka:
`
`iii = &H20 AND disp1ay1'
`IF x1ed = iii THEN GOTO skipx
`I = 8
`GOSUB 1ed
`x1ed = iii
`
`iii = &H4O AND disp1ay1 '
`IF k1ed = iii THEN GOTO skipk
`I = 11
`GOSUB 1ed
`k1ed = iii
`
`iii = &H8O AND disp1ay1'
`IF ka1ed = iii THEN GOTO skipka
`I = 14
`GOSUB Ted
`kaied = iii
`
`iii = 1 AND disp1ay2'
`IF 1as1ed = 111 THEN GOTO Skipkb
`I = 17
`GOSUB 1ed
`1as1ed = iii
`
`x band indicator
`
`k band indicator
`
`Ka Band indicator
`
`Laser indicator
`
`"'
`skipkb:
`lllllllllllllllllllllllIIIIIIIIIIIIIIIIlllllillllllIIIIIIIIIIIIIIIIIIII
`
`Determine sweep type
`_1lIIIlllllllllllllllllllllilIIIIIII
`""" xkdata = r(set4) AND 1:
`IF xkdata <> 0 THEN xkdata = -1
`
`# Chars 1eft on bottom
`bchars = 1'
`vsize = ycsize * Cychars — bchars —
`row — 4 — 2) \ 3
`v = vsize — 7'
`VertiCa1 size
`Page 6
`
`K40 Exhibit 1012, pg. 6
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 6
`IPR2013-00240
`
`

`
`x1 = 160'
`h = sizex — x1 — 35'
`iindex = 0'
`maxv = &H80'
`
`graph3.bas
`Horizonta1 offset
`Horizonta1 size
`Initia1 index
`max va1ue
`
`'*%%*********%*%*k#***%***%***Hand1e Xlk & Ka Outer data disp1ay here
`Fina1 index
`findex = xcpts'
`Ca1cu1ate indicies of xk band
`segment of sweep
`IF p46OO THEN
`axleft = CSNG(findex) * CSNG((lO0 — (33.3 + 16.2 — 5)) / 100)
`axrite = CSNG(findex) * CSNG((lO0 — (66.66 + 16.2 + 5)) / 100)
`
`ELSE
`
`ax1eft = CSNG(findex) * CSNG((33.3 + 16.2 — 5) / 100)
`axrite = CSNG(findex) * CSNG((66.66 + 16.2 + 5) / 100)
`
`END IF
`
`pl = 0: p2 = O
`a1ert = xdetect OR kdetect
`IF a1ert <> 0 THEN pl = peakl — xkbase: p2 = Peak2 — xkbase' horizontai detect
`positions
`pc1ose = tciose
`id = 1: yl(id) = (bchars + 2) * ycsize‘
`1abe1$ = "x/k"
`FOR I = 0 TO 11
`index(I) = xkindex(I)
`mag(I) = xkmag(I)
`cor(I) = xkcor(I)
`NEXT I
`f1oor = O
`dthresh = xkthresh
`GOSUB tp1ot
`Immww¢¢¢¢¢¢¢¢¢¢¢+¢¢¢+¢+¢¢¢¢¢¢
`» n o « n n « n » « n » » » A n n n n n n n n n n » ««Han
`
`e
`
`'Ka Inner‘ data disp1ay here
`
`Vertical offset
`
`xx = kapeak
`findex = kacpts‘
`
`Fina1 index
`
`Ca1cu1ate indicies of Ka 'fa1se region‘
`
`IF p46OO THEN
`f1 = findex * CsNG((3.8) / 100): fr =
`ELSE
`
`CSNG(findex) *
`
`CSNG((63.8) / 100)
`
`fr = findex * CSNG((lOO — 3.8) / 100):
`
`f1 = CSNG(findex) * CSNG((100 — 63.8)
`
`END IF
`
`fi = (fr — fl) \ 4
`
`/ 100)
`
`horizonta1 detect positions
`
`vertica1 offset
`
`pl = 0: p2 = 0'
`pglose = tclose
`i
`= 2
`y1(id) = (bchars + 4) * ycsize + v'
`1abe1$ = "Ka"
`aiert = kadetect
`IF kadetect <> 0 THEN pl = peakl ~ KABASE: p2 = Peak2 — KABASE
`FOR I = 0 TO 11
`index(I) = kaindex(I)
`mag(I) = kamag(I)
`cor(I) = kacor(I)
`
`NEXT I
`"""f1oor = 25
`dthresh = kathresh
`GOSUB tp1ot
`'******%***%*******%*********Hand1e ‘Hot ¥k' data diSp1ay here
`""'IF (tstflag AND 64) = 0 THEN GOTO Sklphot
`Page 7
`
`K40 Exhibit 1012, pg. 7
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 7
`IPR2013-00240
`
`

`
`'
`
`graph3.bas
`
`IF 5010 THEN GOTO skiphot
`Fina1 index
`findex = hotxkcpts'
`Ca1cu1ate indicies of hotxk 'usefu1 region‘
`f1 = findex * CSNG(29 / (29 + 62.5)): fr = findex
`fi = (fr — f1) \ 4
`p1 = 0: p2 = 0'
`Fpc1ose = tciose
`id = 3: y1(id) = (bchars + 6) * ycsize + 2 * v'
`1abe1$ = "Hot"
`A—w————————————»
`a1ert = kadetect
`IF hotxkdetect <> 0 THEN pl = peakl ~ HOTXKBASE: p2 = Peak2 — HOTXKBASE
`FOR I = 0 TO 11
`index(I) = hotxkindex(I)
`mag(I) = hotxkmag(I): cor(I) = 0

`NEXT I
`"""f1oor =25
`dthresh = hotxkthresh
`GOSUB tp1ot
`
`horizonta1 detect positions
`
`Vertica1 offset
`
`skiphot: p1otdone = -1:
`RETURN‘
`GOTO dispTay
`‘ ‘k-2‘.‘"3‘:’k‘:‘.“!.“.':'!:*;‘:*!:'3.“.’:'2':'.’.'*."."3:*!:"k7":'k7‘:~!:‘!:*k1:9:*3:-I:'!:'3:‘2':*.":‘3‘::‘:*.':z‘.*‘!:‘!:-.':'3'.“k'!:'!r‘k‘k'3:*k=":7':‘k*k';':7'.‘"k‘k*k‘k*k*k7'.‘7‘<*k‘k7‘.“e’:*k‘k’k*}.“k='.‘i.‘€:
`
`textdone = -1
`skomod
`
`END
`
`Ted:
`
`DispTay LED's
`X = xoff + I * xdisp
`IF T11 THEN
`LINE (X, yoff)—(X + xs, ys),
`
`ELSE
`
`red, BF
`
`END IF
`
`RETURN
`
`LINE (X, yoff)—(X + xs, ys), background, BF
`LINE (X, yoFF)—(X + xs, ys),
`red, B
`
`Dispiay Decima1 va1ue 'v' of string s$
`
`t1ine:
`
`pdat:
`
`IF textdone THEN GOTO pdat
`LOCATE row, 1
`PRINT s$;
`textd + 1
`LOCATE row,
`PRINT USING "#####"; v;
`RETURN
`
`Same as t1ine but with wider string
`
`tt1ine:
`
`pzdat:
`
`IF textdone THEN GOTO pzdat
`LOCATE row, 1
`PRINT s$;
`textd + 1
`LOCATE row,
`IF v THEN
`
`PRINT USING ”#####"; v;
`ELSE
`—";
`END IF
`
`PRINT ”
`
`RETURN
`
`I
`
`Two condition text dispTay
`
`dstate:
`
`IF textdone = 0 THEN GOTO odat
`IF state = Tstate THEN RETURN
`
`Page 8
`
`K40 Exhibit 1012, pg. 8
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 8
`IPR2013-00240
`
`

`
`odat:
`rest:
`
`IF state <> 0 THEN state = 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 = 1
`PRINT state$(state)
`RETURN
`
`Two condition text disp1ay
`
`pstate:
`
`podat:
`
`IF textdone = 0 THEN GOTO podat
`IF state = Tstate 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 = Tstate THEN RETURN
`GOTO rest
`
`DispTay Hex vaTue 'v' of string s$
`
`hTine:
`
`pdat1:
`
`IF textdone THEN GOTO pdatl
`LOCATE row, 1
`PRINT s$
`textc + 2
`LOCATE row,
`PRINT HEx$(v);
`"
`"
`RETURN
`
`Sca1e bar graphs
`
`scaie:
`
`IF textdone THEN RETURN
`X = zfu11 * ca1ibrate / max + xcenter
`Y = fns(row) + ycsize
`LINE (xcenter, Y)—(X, Y), Tbiue
`t1 = Y — 2:
`t2 = Y + hh
`red, BF
`t2),
`LINE (X ~ to1er,
`t1)—(x,
`LINE (xcenter + 1, Y)—(xcenter + 1, Y — 4), Tb1ue
`X = X / xcsize + 2
`LOCATE POW, X
`PRINT Tegend$;
`RETURN
`
`‘
`
`ReaT time bar graph disp1ay
`
`tbar:
`
`pbar:
`
`IF textdone THEN GOTO pbar
`X = xchar2 — LEN(s$)
`LOCATE row, X
`PRINT s$
`
`'PRINT fnx$(r): RETURN
`IF r < 1 THEN r = 1'
`IF r > max THEN r = max
`X = zfu11 * r / max
`
`' On first pass print associated
`string
`
`'
`
`' Print the bar here
`
`This improves appearance of bar
`
`Page 9
`
`K40 Exhibit 1012, pg. 9
`|PR2013-00240
`
`K40 Exhibit 1012, pg. 9
`IPR2013-00240
`
`

`
`graph3.bas
`Y = fns(row) + 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 + fuii + 1, yy), background, BF
`
`END IF
`RETURN
`
`Reai
`
`time bar graph dispiay with averaged bar
`
`IF textdone THEN GOTO apbar
`X = xchar2 — LEN(s$)
`LOCATE row, X
`PRINT s$
`
`'
`
`' On first pass print associated
`string
`
`IF r < 1 THEN r = 1'
`IF r > max THEN r = max
`X = zfu11 * r / max
`Y = fns(row) + 8: yy = Y + 2
`xx = xcenter + X + 1
`IF iastx < X THEN
`
`' Print the bar here
`This improves appearance of bar
`
`ELSE
`
`END IF
`
`LINE (xcenter + 1, Y)~(xx, yy), 1b1ue, BF
`
`LINE (xx, Y)—(xcenter + fu11 + 1, yy), background, BF
`
`Dispiay averaged bar
`ax = CSNGCX) *
`.1 + .9 * CSNG(1astax)
`Y = fns(row) + 4: yy = Y + 2
`xx = xcenter + ax + 1
`IF iastax < ax THEN
`LINE (xcenter + 1, Y)—(xx, yy), ye11ow, BF
`
`ELSE
`
`LINE (xx, Y)m(xcenter + fu11 + 1, yy), background, BF
`
`END IF
`
`RETURN
`
`Piot 16 eiement array with indicies index() and magnitudes mag()
`Assumes index vaiues are ordered
`RANDOMLY!
`
`id: verticai p1ot number
`p1,p2:
`indicies of stick enabie peaks
`aiert: true if active aiert for this dispiay
`v: Verticai size
`h: Horizontai size
`y1(id): Verticai offset
`x1: Horizontai offset
`findex: Finai
`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 threshoid
`
`tabar:
`
`apbar:
`
`'
`
`I I II I II II II I I II II I II
`
`.
`.
`.
`.
`pair:
`pciosez Iiiuminate region within ciose of pair
`-2:‘!.‘*ki:~k'ki:~k:':7'.‘*.’:i.'*k*k*k*ki:'k‘.%%"ki:=‘:'!:=‘:1':**k*k***k7':*k**k*k*‘k:':=':%r*i.‘%'*k*1':2’:-.’:‘:‘:>’:*!:*k*.’:*.“:=‘:='::':*.‘::’:=‘%*k*.’:7'.‘:'::'€7‘»“k'!.'7‘.‘-!:'!r'!::'.“
`
`tpiotz
`
`vaiues
`
`x2 = x1 + h: y2 = y1(id) + v
`zx(id) = h / (findex — iindex): zy(id)
`
`II
`
`V / maxv'
`
`find mapping
`
`Page 10
`
`K40 Exhibit 1012, pg. 10
`|PR20130024O
`
`K40 Exhibit 1012, pg. 10
`IPR2013-00240
`
`

`
`graph3.bas
`
`rTy(id)
`r1x(id)
`
`HII y1(id) + v \ 2
`x1 + h '
`
`'
`
`Location of right
`TabeT
`
`I
`
`IF pTotdone THEN GOTO tupdate
`LOCATE ychars — r1y(id) \ ycsize,
`PRINT 1abe1$;
`LINE (X1 — 1, y1(id) — 1)—(x2 + 1, y2 + 1), hiwhite, B‘
`
`r1x(id) \ xcsize + 2
`
`draw
`
`box in p1ot area
`
`yyl = fny(0) + vsize — 16: yy2 = yyl + 16
`IF (id = 2) OR (id = 3) THEN
`sx
`fnx(f1): LINE (sx, yy1)—(sx, yy2), hiwhite
`sx
`fnx(fr): LINE (sx, yyl)-(sx, yy2), hiwhite
`
`HH
`
`END IF
`
`IF (id = 1) THEN
`5x = fnx(ax1eft): LINE (sx, yy1)~(sx, yy2), hiwhite
`sx = Fnx(axrite): LINE (sx, yy1)—(sx, yy2), hiwhite
`
`END IF
`
`nc0 = fnx(O)
`FOR I = 1 To peaks
`Tc(id, I) = ncO: Tm(id, I) = y1(id)' init previous set to 0
`NEXT I
`
`thresh(id) = fny(O)'
`
`Init position for dynamic thresho1d
`
`tupdate:
`
`'
`
`DispTay dynamic thresho1d
`Y = dthresh — fToor:
`IF Y < 0 THEN Y = 0
`Y = fny(Y)
`co1 = background
`IF Y > thresh(id) THEN co1 = red
`LINE (x1 — 10,
`thresh(id))—(x1 — 5, Y), C01, BF' growth
`thresh(id) = Y
`
`' Bubb1e Sort the peak tab1e
`FOR j = peaks ~ 2 TO 0 STEP -1
`
`FOR I = 0 To j
`IF index(I) < indeX(I + 1) THEN
`SWAP index(I),
`index(I + 1)
`SWAP mag(I), mag(I + 1)
`
`END IF
`
`NEXT I
`
`NEXT j
`
`FOR I = 0 TO peaks — 1'
`r = index(I)
`IF r < iindex THEN r = iindex
`IF r > findex THEN r = findex
`nc(id, I + 1) = fnx(r) — iindex
`rc(I) = r
`r = mag(I) — f1oor:
`
`Map peaks into disp1ay array
`
`NEXT I
`
`IF r < 0 THEN r = 0
`IF r > maxv THEN r = maxv
`nm(id, I + 1) = fny(r)
`
`Check to see if any mapped peaks have matched x—screen_coordinates
`If so,
`remove one of them or d1spTay anomoT1es wTTT occur
`
`FOR I = 1 TO peaks — 1
`
`Page 11
`
`K40 Exhibit 1012, pg. 11
`|PR20130024O
`
`K40 Exhibit 1012, pg. 11
`IPR2013-00240
`
`

`
`graph3.bas
`IF nc(id, I) <> nc(id,
`I + 1) THEN GOTO rich
`IF nc(id, I) = ncO THEN GOTO rich
`‘GOTO see
`II
`nc(id, I + 1)
`
`nc0
`
`rich:
`
`NEXT I
`
`Draw new peaks
`FOR I = 1 T0 peaks‘
`IF nc(id, I) ~ ncO THEN GOTO edone
`
`Does_this e1ement match 01d e1ement?
`FOR j = 1 TO peaks‘
`IF nc(1d, I) <> 1c(1d,
`j) THEN GOTO nomatch
`
`' Modify bar by either increasing or decreasing
`
`IF (nm(id, I) > Tm(id, j)) THEN
`LINE (nc(id, I), Tm(id, j))-(nc(id, I), nm(id, I)), ye11ow‘ growth
`ELSE
`
`LINE (nc(id, I), 1m(id, j))-(nc(id, I), nm(id, I)), background‘ dec1ine
`END IF
`
`Tc(id,
`
`j) 2 ncO'
`GOTO edone‘
`
`remove 01d index
`this eTement comp1eted
`
`nomatch:
`
`NEXT j
`
`If no e1ement matches, draw new eTement
`LINE (nc(id, I), y1(id))—(nc(id, I), nm(id, I)), ye11ow
`edone:
`NEXT I
`
`Remove 01d peaks
`FOR I = 1 TO peaks‘
`IF Tc(id, I) <> ncO THEN
`LINE (1c(id, I), y1(id))—(Tc(id, I), 1m(id, I)), background
`_
`END IF _
`1c(id, I) : nc(id, I)
`1m(id, I) = nm(1d, I)‘
`
`Update aged array
`
`NEXT I
`
`'********************pTot comp1eted, now add supporting information
`
`'
`
`Show Average, Transient, & Phase Information************************
`tpr = 3
`' Bar height
`yyl = fny(O) + vsize + 1: yy2 = yyl + tpr:
`jp = 1
`yy3 = yy2 + 2: yy4 = yy3 + tpr
`ysl = fny(O) + vsize + 1: ys2 = ysl + 8
`xx1 = X1: xx2 = X1 + h
`—
`LINE (xx1, ys1)—(xx2, ys2), background, BF
`FOR I = 0 TO 3'peaks — 1'
`Map peaks into dispTay array
`"""""""
`j = nc(id,
`i + 1)‘ x~coordinate
`j = fnx(cor(I))
`j < Xl + 10 THEN GOTO drt
`"""IF xkcor(i) THEN
`= Tred
`" """"""""'IF FCCT) AND &H8000 THEN C = hiwhite
`LINE (j
`- ip. yy1)—<j + jp, yy2), c, BF
`IIIIIIIIIIIIIIENDIF
`
`""""""""""'IF rc(i) AND &H2000 THEN LINE (j
`yy4), Tgreen, BF
`drt:
`NEXT I
`
`— jp, yy3)—(j + jp,
`
`GOTO skiparound
`
`'
`'
`
`Show_Automute Smartmute deactivated regions
`IF id <> 1 THEN GOTO nosmute
`
`Page 12
`
`*.':*.‘:'.’:'.':‘k9:-!::':i.**k'k*i.“k€.‘i.‘:'.“k7‘:*%’*~k‘.’:i.‘
`
`K40 Exhibit 1012, pg. 12
`|PR20130024O
`
`K40 Exhibit 1012, pg. 12
`IPR2013-00240
`
`

`
`'
`
`'
`
`'
`
`'
`
`ytl = ysl — 6: yt2 = ysl — 4
`IF ((r(set3)) AND 2) = 0 THEN ‘ only c1ear background if no data
`LINE (xxl, ytl)—(xx2, yt2), background, BF‘ erase old stuff
`END IF
`
`graph3.bas
`
`FOR i = 0 To 15
`vv = r(smutexk) AND p(i)'
`IF vv THEN
`3 = left + i
`
`jmsize = Fnx(msize) — fnx(O)
`
`regional bit value
`
`* msize‘
`
`Find index of disabled
`
`'
`
`‘
`
`'
`
`'
`
`'
`
`regions
`
`'
`
`x~coordinate
`'
`j = fnx(j)
`LINE (j, yt1)—(j + jmsize, yt2),
`lblue, BF
`
`'
`
`END IF
`
`'
`'NEXT 1
`‘nosmute:
`skiparound:
`IF id <> 2 THEN GOTO fomp
`yy5 = yyl - 2: yy6 = yy5 —
`fspace = fnx(fi) — fnx(O)
`ccut = 12'
`
`3
`
`when timer<ccut, switch to dark green
`
`ic1 = background:
`green
`
`IF regtim(O) THEN ic1 = 1green:
`
`IF regtim(O) < ccut THEN ic1
`
`xx5 = Fnx(f1): xx6 = xx5 + fspace
`LINE (xx5, yy5)—(xx6, yy6), icl, BF
`
`H
`
`ll
`
`icl = background:
`green
`
`IF regtim(1) THEN icl = Tgreen:
`
`IF regtim(l) < ccut THEN ic1
`
`xxS = XX6: XX6 = xx6 + fspace
`LINE (xxS, yyS)—(xx6, yy6),
`ic1, BF
`
`ic1 = background:
`green
`
`IF regtim(2) THEN icT = Tgreen:
`
`IF regtim(2) < ccut THEN ic1 =
`
`xxS = xx6: xx6 = xx6 + Fspace
`LINE (xx5, yy5)-(xx6, yy6), ici, BF
`
`ici = background:
`green
`
`IF regtim(3) THEN icl = Tgreen:
`
`IF regtim(3) < ccut THEN ic1
`
`H
`
`XXS = xx6: xx6 = xx6 + fspace
`LINE (xx5, yy5)-CXX6, yy6),
`ic1, BF
`
`fomp:
`
`'
`stickx:
`
`Show stick enable regions
`
`— pl) < pclose THEN GOTO transit
`IF ABS(1pl(id)
`ppl = 0: pp2 = 0
`SWAP pl, ppl: SWAP p2, pp2'
`GOSUB transit‘
`SwAP pl, ppl: SwAP p2, pp2'
`
`If bars moved, shift off screen
`Draw the bar
`& redisplay so they don't interract
`
`Show alert position indicators
`yyl = ylcid) — 8
`IF alert AND NOT Cnewwalert) THEN
`PSET (fnx(pl), yyl), green: PSET (fnx(p2), yyl), green
`END IF
`newwa1ert = a1ert
`
`transit:
`"
`
`IF pl <= 10 THEN GOTO ignore
`bl = yl(id) — 6: b2 = yl(id) — 2'
`ul = pl — pciose: u2 = pl + pclose
`v1 = 1p1(id) — pclose: v2 = 1p1(id) + pclose
`GOSUB xbar
`
`Page 13
`
`vertica1 bar dimensions
`
`K40 Exhibit 1012, pg. 13
`|PR20130024O
`
`K40 Exhibit 1012, pg. 13
`IPR2013-00240
`
`

`
`graph3.bas
`
`ignore:
`'
`
`IF p2 <= 10 THEN GOTO capture
`ul = p2 — pc1ose: u2 = p2 + pciose
`v1 = Tp2(id)
`— pc1ose: v2 = 1p2(id) + pc1ose
`GOSUB xbar
`capture: 1pl(id) = pl: 1p2(id) = p2
`RETURN
`
`'
`
`subroutine for erasing bars
`
`eraseb:
`pl = 0: p2 = O: GOTO stickx
`
`xbar:
`
`noover:
`
`record:
`
`retry:
`
`‘subroutine for Drawing one of two stick region bars
`
`IF u2 <= v1 THEN
`
`' no overTap
`
`LINE (fnx(v1), bl)—(fnx(v2), b2), background, BF
`IF U1 < 0 THEN RETURN
`LINE (fnx(u1), b1)~(fnx(u2), b2), Tred, BF
`RETURN
`END IF
`
`IF (u2 > V1) AND (u1 < V1) THEN
`LINE (fnx(u2), bl)-(fnx(v2), b2), background, BF
`LINE {Fnx(u1), b1)—(Fnx(v1), b2), Tred, BF
`RETURN
`END IF
`
`IF (U1 = V1) THEN RETURN
`
`IF Cul < V2) AND (u2 > V2) THEN
`LINE (fnx(vl), bl)—(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,1ow.
`This is previousTy done to improve throughput
`
`tbad = 255 AND (tbad + 1)
`timeout = O
`'LPRINT CHR$(l)'
`'LPRINT CHR$(0)'
`WHILE LOC(l)
`I = ASC(INPUT$(l, #1))‘
`
`WEND
`
`Set paraT1e1 port bit high
`Set para11e1 port bit Tow
`
`skomod
`skomod
`
`C1ean out buffer
`
`PRINT #1,
`
`"A";
`
`'
`
`skomod
`
`WHILE LOC(l) < 164
`
`IF INKEY$ = cHR$(13) THEN STOP
`Page 14
`
`K40 Exhibit 1012, pg. 14
`|PR20130024O
`
`K40 Exhibit 1012, pg. 14
`IPR2013-00240
`
`

`
`WEND
`
`graph3.bas
`
`"'
`"'
`
`FOR q = 1 To 1000: NEXT q
`GOTO record
`
`_
`f1ndsync:
`
`'
`'
`
`Locate the sync
`IF (xdetect = 0) THEN STOP
`IF p1eve1 = 4 THEN STOP
`I = 0: 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 / 2'skOmOd
`
`which gives # bytes
`bytes = 2 * words‘
`IF timeout THEN GOTO retry
`IF words > 256 THEN GOTO findsync
`
`DO checksum ca1cu1atiOn
`& FTTT the 'r(' array
`
`scheck = 0: NN = O
`'CLS
`IF dhistory = 0 THEN
`FOR n = 0 TO words — 1'
`GOSUB reads‘
`scheck z scheck + I
`r(NN) = I:
`rr(NN, HISTORY) = I: NN = NN + 1
`IF timeout THEN GOTO retry
`GOSUB reads
`rr(NN, HISTORY) = I: NN = NN + 1
`FCNN) = I:
`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 — 1
`r(NN) = rr(NN, HISTORY): NN = NN + 1
`FCNN) = rr(NN, HISTORY): NN = NN + 1
`NEXT n
`
`ELSE
`
`END IF
`
`IF HISTORY > 10 THEN HISTORY = O
`HISTORY = HISTORY + 1:
`IIIIIIllIIIIIlllllllllIllIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
`"'GOTO findsync
`
`llllllIIM§9lFW?l:fg:l?fF?¥IjvF?lPr?9f?mlY?rE??]?§llIlllll
`
`p=<_3
`version = r(p): p = p + 2
`IF version = 81 THEN so1o = 1
`IF version = 70 THEN p46OO = 1
`LOCATE 18, 1
`ie = 0
`FOR I = 0 TO 11
`
`Page 15
`
`K40 Exhibit 1012, pg. 15
`|PR20130024O
`
`K40 Exhibit 1012, pg. 15
`IPR2013-00240
`
`

`
`3
`graph3.bas
`xkmag(I) = r(p + 3 T I)
`POKE ivl,
`r(p + 3 *
`POKE iv2,
`r(p + 3
`‘
`IF iv < 0 THEN
`ELSE
`
`xkindex(I) = iv — xkbase
`END IF
`
`NEXT I
`
`,
`
`p = p + 36
`FOR I = 0 TO 3
`r(p + 2 * I + 1)
`POKE ivl,
`r(p + 2 * I)
`POKE iv2,
`~ xkbase
`xkcor(I) = (iv AND &H7FFF)
`IF xkcor(I) < 0 THEN xkcor(I) = 0
`
`NEXT I
`FOR i = 0 TO 1
`_
`_
`IF xdetect OR kdepect THEN
`PRINT USING aa$; 1; HEX$(xkcor(1)); HEX$(xkcor(1))
`ELSE
`
`PRINT USING aa$;
`END IF
`
`i; HEx$Ckacor(i)); HEx$Ckacor(i))
`
`NEXT 1
`
`p=p+8
`FOR I = 0 TO 11
`
`kamag(I) = r(p + 3 * I)
`POKE ivl,
`r(p + 3 * I + 2)
`POKE iv2,
`r(p + 3 * I + 1)
`kaindex(I) = (IV AND &H7FFF)
`
`- KABASE
`
`NEXT I
`
`p = p + 36
`FOR I = 0 TO 3
`r(p + 2 * I + 1)
`POKE ivl,
`r(p + 2 * I)
`POKE iv2,
`— KABASE
`kacor(I) = (iv AND &H7FFF)
`IF kacor(I) < 0 THEN kacor(I) = 0
`
`NEXT I
`
`p=p+8
`FOR I = 0 TO 7
`
`hotxkmag(I) = r(p + 3 * I)
`POKE ivl,
`r(p + 3 * I + 2)
`POKE iv2,
`r(p + 3 * I + 1)
`hotxkindex(I) = (TV AND &H7FFF)
`
`- HOTXKBASE
`
`NEXT I
`
`p = p + 24
`
`smartspec = r(p): p = p + 3
`
`f1aga = r(p): p = p + 1
`f1agb = r(p): p = p + 1
`fTagc = F(p): p = p + 1
`
`FOR I = 0 TO 3
`regtim(I) = r(p): p = p + 1
`
`NEXT I
`
`Tcount = r(p):
`‘IF p4600 THEN PRINT "1aser : "; Tcount;
`'p=p+1
`
`"
`
`"
`
`r(p + 1): POKE iv2, r(p)
`POKE ivl,
`peakl = iv: p = p + 2
`POKE ivl,
`r(p + 1): POKE iv2,
`Peak2 = iv: p - p + 2
`IF peakl < PeaR2 THEN SWAP peakl, Peak2
`Page 16
`
`r(p)
`
`K40 Exhibit 1012, pg. 16
`|PR20130024O
`
`K40 Exhibit 1012, pg. 16
`IPR2013-00240
`
`

`
`graph3.bas
`
`Swcntouter = r(p): p = p + 1
`Swcntinner = r(p): p = p + 1
`Swcnthotxk = r(p): p = p + 3
`
`D
`+ 1
`xkthresh = r(p): p =
`hotxkthresh = r(p): p = p + 1
`+ 2
`kathresh = r(p): p = p
`
`+
`
`xk1evn = r(p): p = p
`kaTevn = O: p = p + 1
`maxage = r(p): p = p + 1
`diSp1ay1 = r(138): p = p + 1
`p1eveT = r(p): p = p + 1
`
`1
`
`ie = 0
`FOR I = 0 TO 5
`IF ie <= 4 THEN
`
`IF NOT (hotdetect) AND NOT (kainner) THEN ind = xkindex(I): mag = xkmag(I)
`IF hotdetect THEN ind = hotxkindex(I): mag = hotxkmag(I)
`IF kainner THEN ind = kaindex(I): mag = kamag(I)
`IF ind > 16 THEN
`'PRINT USING aa$; 1; HEX$(ind); NEx$(mag);
`pp(ie) = ind
`ie = ie + 1
`
`END IF
`
`END IF
`NEXT I
`
`'
`
`'
`
`'
`
`FOR I = 0 TO 3
`IF kadetect THEN
`ho1d(I) = kacor(I)
`
`END IF
`
`NEXT I
`
`'PRINT USING aa$; i; HEX$(kacor(i)); HEx$(ho1d(i))
`
`— pp(O)) * zf1t)
`zt = ABS(CSNG(pp(1)
`PRINT USING "p—p De1ta ### ## ms"; zt
`
`PRINT USING ”k/p1eveT ##
`diSp1ay2 = r(p): p = p + 1
`FOR I 5 0 TO 3
`
`"; pTeveT
`
`r(p + 1)
`POKE ivl, r(p): POKE iv2,
`center(I) = (iv AND &H7FFF)
`— xkbase: p = p + 2
`
`NEXT I
`
`tstfiag = r(p): p = p + 1: p = 150
`f1agi1 = r(p): p = p + 1
`f1agi2 = r(p): p = p + 1
`
`'IF flagiz AND 8 THEN PRINT "Linearize
`f1agi3 = r(p): p = p + 1
`
`" ELSE PRINT "N0 Linearize"
`
`'LPRINT CHR$(1)'
`'LPRINT CHR$(0)'
`PRINT #1, "A";
`'
`
`Set para11eT port bit high
`Set para11e1 port bit Tow
`Skomod
`
`Skomod
`Skomod
`
`RETURN
`
`' Read two bytes from SeriaT interface & form word
`
`readword:
`GOSUB reads: POKE ivl, I
`IF timeout THEN RETURN
`GOSUB reads: POKE TV2, I
`RETURN
`
`Page 17
`
`K40 Exhibit 1012, pg. 17
`|PR20130024O
`
`K40 Exhibit 1012, pg. 17
`IPR2013-00240
`
`

`
`graph3.bas
`
`reads:
`
`Tout:
`
`Read byte via seria1 interface
`
`time = 32000
`‘ERR = 0: ON ERROR RESUME NEXT
`
`TIMER ON
`timeout = 0
`ON TIMER(2) GOSUB TimerTimeout
`WHILE LOC(l) = 0
`‘time = time — 1:
`0 THEN
`‘IF time
`HH
`-1:
`‘timeout
`""LOCATE 15, O: PRINT "timeout # ";
`IF timeout THEN
`RETURN
`END IF
`
`tbad; WORDS; N
`
`WEND
`
`RETURN
`
`TIMER OFF
`timeout = 0
`ON ERROR GOTO errorhand1er
`I = ASC(INPUT$(l, #1))
`ON ERROR GOTO 0'
`
`Terminate the error support
`
`N
`
`-1
`
`TimerTimeout:
`timeout
`RETURN
`errorhand1er:
`sbad = sbad + 1
`timeout = -1
`RESUME Tout
`errorhand1er2:
`bad = bad + 1
`RESUME grec
`
`Page 18
`
`K40 Exhibit 1012, pg. 18
`|PR20130024O
`
`K40 Exhibit 1012, pg. 18
`IPR2013-00240

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket