throbber
United States Patent [191
`Dunthorn
`
`[11]
`[45]
`
`Patent Number:
`Date of Patent:
`
`4,914,624
`Apr. 3, 1990
`
`[54]
`VIRTUAL BUTTON FOR TOUCH SCREEN
`[76] Inventor:
`David I. Dunthorn, 908 W. Outer Dr.,
`Oak Ridge, Tenn. 37830
`Appl. No: 191,227
`Filed:
`May 6, 1988
`
`[21]
`[22]
`[51]
`[52]
`
`[58]
`[56]
`
`Int. Cl.‘ .............................................. .. G06F 3/02
`US. Cl. ............................... .. 364/900; 364/927.2;
`364/927.“
`Field of Search ...................... .. 364/200, 300, 900
`References Cited
`U.S. PATENT DOCUMENTS
`
`Primary Examiner—-Raulfe B. Zache
`Attorney, Agent. or Firm—David B. Harrison
`[5 7]
`ABSTRACT
`Apparatus and methods for creating a virtual push but
`ton comprise a touch sensitive orthogonal data ?eld
`input device useably connected within a computing
`system in which a touch action at'the device generates
`a stream of data related to the location within the ?eld
`of the touch action. The orthogonal data ?eld input
`device includes circuitry for sensing the onset of a ?rst
`touch action and for monitoring the continuity thereof;
`and the computing system including a second condition
`sensor for sensing the occurrence of a second predeter
`mined condition; and, computing circuitry for generat
`ing the virtual push button upon the concurrence of
`touch action continuation and the occurrence of the
`second predetermined condition.
`
`22 Claims, 2 Drawing Sheets
`
`3,911,215 10/1975 Hurst et al. ......................... .. 178/18
`
`4,220,815 9/1980 Gibson et al. . . . .
`. . . . .. 173/18
`4,763,356 8/1988 Day, Jr. et al. ............... .. 364/900 X
`
`OTHER PUBLICATIONS
`Elographics, Prelim. IntelliTauch Systems Manual,
`3/19/88, pp. 1-10.
`
`CRT DISPLAY SCIIEEN 16
`
`J
`TEUBIIB SCREEN
`
`DISPLAY
`ADAPT ER _‘
`
`TOUCH SCREEN
`CONTROLLER g2
`
`cnMPuTER g
`
`E
`
`CIHPUTING
`SYSTEM ll]
`
`KEYBOARD 30
`
`Samsung USP 7,973,773
` Exhibit 1016 Page 1
`
`

`
`US. Patent Apr. 3, 1990
`
`Sheet 1 0f 2
`
`®'\26 WM
`
`29
`
`g
`28
`
`CRT DISPLAY SCREEN 16
`
`/
`J
`TUUCH SCREEN
`18
`
`j
`
`DISPLAY
`ADAPTER
`
`TUUCH SCREEN
`CDNTREILLER g1
`
`COMPUTER _1_2_
`
`TIMER
`13
`—
`
`CUMPUTING
`SYSTEM 10
`
`111 1 I
`III/II
`IIIIIII
`
`KEYBOARD 30
`
` Exhibit 1016 Page 2
`
`

`
`US. Patent Apr. 3, 1990
`
`Sheet 2 of 2
`
`4,914,624
`
`= _
`DY Y Yp-"V'WS
`
`66
`
`6B
`
`11x 2 + BY 3 >
`BUTTON THRESHOLD
`
`Y
`
`g7"
`
`I
`REPURT
`VIRTUAL BUTTUN
`(72
`SET UNTDUCH '
`DEACTIVATIUN TRUE
`
`REPURT UNTIJUCH
`
`SET BUTTONS TRUE
`SET NEV SEQUENCE TRUE
`SET UNTDUCH DEACTIVATIDN
`FALSE
`
`56;
`
`(-62
`
`x PREVIIIIUS=X ’
`Y PREVIUUS=Y
`
`76
`574
`' W
`SET NEV SEQUENCE FALSE
`
`SET BUTTDNS FALSE
`
`REPORT X,Y CUDRDINATES
`
`F IG.—2
`
` Exhibit 1016 Page 3
`
`

`
`1
`
`VIRTUAL BUTTON FOR TOUCH SCREEN
`
`5
`
`15
`
`4,914,624
`2
`desirable or necessary to
`shortcomings. Often it is very
`display the visual feedback following a user's ?nger
`around the screen while not forcing the user actually to
`make a selection upon the untouch action. To achieve
`this feedback using normal touch screen operations, it is
`necessary to completely divorce the untouch action
`from selection. An operation with visual feedback is
`?rst used to determine a position on the screen, but the
`untouch action does not cause a selection to be made. A
`second touch/untouch operation is then required on the
`screen (or via some other input device such as a key
`board) in order to perform the select operation.
`This prior requirement for two disparate actions to
`perform a single selection is not satisfactory. In order to
`accomodate the occasional time when an untouch ac
`tion will not lead to a selection, the user’s attention must
`be diverted for each such action. This inconvenience
`becomes intolerable when dealing with a sequence of
`operations as typically encountered in computer aided
`design (CAD) or even in simple word processing appli
`cations. One way of further illustration of this inconve
`nience is by drawing an analogy to a hypothetical type
`writer which would require the typist to strike a ribbon
`advance key a?er each symbol key was struck merely
`to advance the ribbon during typing, a function auto
`matically performed by conventional typewriters.
`This inconvenience in prior art touch screens and
`touch pads has not been experienced with other posi
`tion-reporting devices, such as computer "mice", “tab
`lets”, and "light pens" which usually have actual push
`buttons present on the mechanism manipulated by the
`user’s hand during operations. Thus, the user is able to
`manipulate a computer mouse to a desired orthogonal
`(x,y) position typically followed by a visual cursor on
`the display screen and then to actuate one of a plurality
`of switches on the mouse to initiate or discontinue a
`particular function.
`Thus, a hitherto unsolved need has arisen for the
`provision of a “virtual“ push button for use with touch
`screens or touch pads which functionally extends the
`capability thereof to match the capability of other posi
`tion reporting devices, such as computer “mice", “tab
`lets”, and “light pens”
`which usually have electrome
`chanical push-buttons present on the mechanism for
`manipulation by the user’s hand during positioning op
`erations thereof.
`
`30
`
`FIELD OF THE INVENTION
`The present invention relates to methods and appara
`tus for data input to computing systems. More particu
`larly, the present invention relates to methods and appa
`ratus for creating a virtual button for a touch screen or
`touch pad orthogonal ?eld data input device.
`BACKGROUND OF THE INVENTION
`Touch pads and touch screens responsive to localized
`depression pressure have been provided to create “but
`tons" for data input. A touch pad device is disclosed, for
`example, in U.S. Pat. No. 3,911,215; and, a transparent
`touch screen for overlayment and use with the display
`screen of a cathode ray tube is disclosed, for example, in
`U.S. Pat. No. 4,220,815, the disclosures of both of these
`patents being incorporated by reference herein.
`These previously patented devices rely upon resistive
`sheets in which uniform orthogonal electric ?elds are
`generated in two-phase sequences, for example, as
`shown in FIG. 1 of the referenced ‘215 patent. When a
`low resistance or ground connection is established at a
`particular location on the sheet, as by depressing an
`overlying, low resistance ground or signal return sheet
`into electrical contact with the resistive sheet, precise
`orthogonal ?eld (x,y) pinpointing of the location of
`depression may be provided. Thus, these prior devices
`have been utilized in conjunction with a computer sys
`tem to create “push-buttons”. When a particular push
`button (i.e. location on the resistive sheet) is depressed
`(“touch”), or released (“untouch”), the computer has
`sensed this occurrence and has responded operationally
`thereto.
`Other technologies have been applied to create touch
`screens and pads, including surface accoustic wave
`technology; and these screens and pads have also been
`used with computing systems to create push-buttons.
`The surface accoustic wave touch screen has the addi
`tional capability of reporting a z-coordinate indicative
`of the velocity or force with which the screen or pad is
`touched.
`Traditionally, touch screens or pads have accom
`plished push-button sensing either through a touch, i.e.
`when the operator's ?nger or a stylus ?rst touches the
`screen; or, an untouch, i.e. when the finger or stylus is
`released from the screen or pad. “Touch” is the most
`natural action for a novice user, because it represents
`activation on contact, just like the expected action of a
`conventional electromechanical push-button. For ex
`ample, with a touch screen implementation, a user
`touches a labelled, delineated area on the screen, and a
`resulting action and
`acknowledgement are then given
`e.g. by an appropriate display on the screen.
`For “untouc ”, the touch step (which of course must
`come ?rst) usually initiates some form of visual feed
`back, such as highlighting a screen area or option. The
`area or option is
`not actually selected to perform its
`action until the user “untouches” the screen. Thus, with
`“untouch" the slightly more experienced user can move
`?nger or stylus on the screen to be sure the proper area
`is highlighted and then untouch or remove ?nger or
`stylus in order to complete the selection process. This
`approach enables a far greater precision in selection of
`65
`desired areas on the screen.
`The “touch" and “untouch” procedures are satisfac
`tory for many applications, but they have signi?cant
`
`35
`
`45
`
`50
`
`55
`
`SUMMARY OF THE INVENTION WITH
`OBJECTS
`A general object of the present invention is to over
`come functional and operational drawbacks hitherto
`associated with touch screen and touch pad devices by
`enabling generation of virtual push-buttons as a func
`tion of activation of at least one actual push button
`location on the screen or pad.
`A speci?c object of the present invention is to extend
`the functionality of touch screen and touch pad orthog
`onal data input devices to match that achievable with
`computer mice, tablets, light pens and the like.
`In accordance with the principles of the present in
`vention, methods and apparatus are provided for creat
`ing a virtual push button at a touch sensitive orthogonal ’
`?eld data input device used in conjunction with a com
`puting system in which a touch action at the device
`generates a stream of data related to the location within
`the ?eld of the touch action. The methods and the appa
`ratus embodying the methods carry out the steps of:
`
` Exhibit 1016 Page 4
`
`

`
`4,914,624
`3
`sensing the onset of a ?rst touch action at the device
`and monitoring the continuity thereof,
`sensing the occurrence of a second predetermined
`condition,
`generating the virtual push button upon the concur
`rence of touch action continuation and the occurrence
`of the second predetermined condition.
`In one speci?c aspect
`of the present invention, the
`step of sensing the occurrence of the second predeter
`mined condition comprises the step of sensing the onset
`of a second touch action at the device.
`In a second speci?c aspect of the present invention,
`the step of sensing the onset of a second touch action at
`the device includes the step of determining the direction
`of the second touch action relative to the location of the
`?rst touch action and wherein the virtual push-button is
`generated as a function of the determined direction.
`In a third aspect of the present invention, the step of
`sensing the onset of a second touch action at the device
`includes the step of determining the distance of the
`second touch action from the location of the ?rst touch
`action and wherein the virtual push-button is generated
`as a function of the determined distance.
`In a fourth aspect of the present invention, the step of
`sensing the occurrence of a second predetermined con
`25
`dition comprises sensing an increase in applied pressure
`at the touch point.
`In a fifth aspect of the present invention, the step of
`sensing the occurrence of the second predetermined
`condition comprises the step of detecting elapse of
`a
`predetermined time interval and detecting an untouch
`action at the ?rst location after the predetermined time
`interval has elapsed.
`In a sixth aspect of the present invention, the step of
`sensing the occurrence of the second predetermined
`35
`condition comprises the steps of detecting elapse of
`predetermined time intervals and comprising the fur
`ther step of generating and displaying to the user a
`sequence of virtual push-buttons with a virtual push
`button being displayed during each time interval, the
`step of generating the virtual push button occurring
`upon detection of an untouch action at the ?rst location
`during display of a preferred one of the virtual push
`buttons.
`In a seventh aspect of the present invention, the step
`of sensing the occurrence of the second predetermined
`condition comprises the step of sensing an input at an
`other input device functionally connected to the com
`puting system.
`In an eighth aspect of the present invention, the step
`of sensing an input at another input device comprises
`the step of sensing actuation of a key of a keyboard
`device.
`These and other objects, advantages and features of
`the present invention will be more fully understood and
`55
`appreciated upon considering the following detailed
`description of preferred embodiments, presented in
`conjunction with the accompanying drawings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`In the Drawings:
`FIG. 1 is a somewhat diagrammatic block diagram of
`a computing system including a touch screen input/dis
`play device con?gured in accordance with the princi
`ples of the present invention.
`65
`FIG. 2 is a ?owchart of one preferred embodiment of
`the method of the present invention when used in con
`junction with the hardware depicted in FIG. 1.
`
`4
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`It has been discovered that when a resistive touch
`screen or pad of the type described in the referenced
`patents is touched in two places at
`the same time, the
`screen returns a single position which is located about
`half way between the two positions actually being
`touched. This untouched, single position is therefore
`available to serve as a virtual push-button.
`- Also, when the screen or pad is being touched at one
`point and is then touched at another point as well, there
`is a sudden large change or discontinuity in reported
`position which is more sudden and discontinuous than
`would be produced by a rapid motion of the ?nger or
`stylus across the screen or pad. Since there will have
`been no detected untouch action prior to this large,
`discontinuous change, its occurrence is distinct, and
`may therefore be distinguished as abnormal from other
`functional activities at the touch screen/touch pad.
`Therefore, the
`action of touching the screen/pad at a
`second touch point without ?rst releasing a still active
`?rst touch point thereby creates one form of virtual
`push-button.
`Although the present invention has been developed
`for use with a glass resistive touch screen, the present
`techniques may be effectively used with any touch
`screen or touch pad which, when touched at two differ
`ent points, will return a position signi?cantly different
`than for either point actually being touched.
`The activation of a virtual push-button not only indi
`cates that a sudden change in position has take place,
`but also reports the direction and amount of that
`change. Thus, it is easily possible to determine whether
`the second touch was above, below, to the right or to
`the le? of the original touch. Finer distinctions of angu
`lar direction are also easily implemented In particular,
`the implementation of four distinct virtual buttons, one
`for each of the cardinal directions, is both easy to imple
`ment and easy for an operator to remember. It is also
`possible to differentiate different virtual push-buttons in
`the same direction on the basis of the distance between
`the two simultaneous touch actions giving rise to the
`virtual push-button.
`In addition to enabling abortion of a normal touch
`untouch operation, virtual push-buttons have other
`very useful properties. On a touch screen or touch pad,
`actual or assigned push buttons are usually defined by
`establishment of a function (push-button) at a particular
`location. Usually, visual information is provided to
`identify each actual button’s position and function.
`Touch screens in particular are often implemented so
`that the visual information presented at the screen
`changes as required in order to match rede?ned button
`positions. However, within any given visual presenta
`tion, the location of each actual push button will be
`fixed.
`A virtual push-button, on the other hand, is not ?xed
`to any position on the screen, but is de?ned at a position
`related to the positions of two simultaneous touch ac
`tions giving rise to the virtual push-button. Thus, virtual
`push buttons may coexist with and even overlie actual
`push button locations without creating any interference
`with the functions normally assigned to those actual
`push button locations. This feature is particularly useful
`for buttons which are to retain common and useful
`functions regardless of the information presented on the
`screen; functions such as “cancel" and “con?rm".
`
`60
`
`30
`
`40
`
`45
`
` Exhibit 1016 Page 5
`
`

`
`20
`
`4,914,624
`6
`5
`?nger and thumb of a user. The touch screen 18 is con
`Since the virtual push button is by de?nition an ab
`nected electrically to a touch screen controller 20,
`normal or discontinuous action which readily lends
`which is in turn connected to the bus of the computer
`itself to "abort" or “cancel” operations, it is apparent
`12.
`that this principle may be extended to other characteris
`The touch screen controller 20 provides the drive
`tics and usages of the touch screen or touch pad. For
`voltages for the x and y axes of the screen 18, converts
`example, timing may be considered as a control factor
`the analog signals from the touch screen 18 into digital
`in the operation of touch screens and touch pads. Nor
`mally, once a selection has been accurately located by
`coordinates for x and y, and transmits these coordinates
`using visual feedback, the time interval until the accom
`to the host processor 12. Since the touch screen 18 has
`analog outputs, the coordinate (x,y) resolution is deter
`panying untouch selection action occurs is quite short.
`mined by the resolution of the analog to digital con
`It is therefore possible to de?ne an abnormally long
`time interval as another variety of virtual push-button.
`verter within the controller 20. With a twelve bit analog
`For example, if an abnormally long time interval
`to digital converter, the screen resolution may be up to
`4000 by 4000 points across the active surface of the
`elapses between the touch action and the untouch ac
`tion, this inordinate delay may be used to cancel the
`touch screen 18. The controller 20 may be polled or
`interrupt driven, and it generates coordinate pairs as
`selection function of the untouch action. If accompa
`nied by visual feedback, this timeout feature may be
`long as the touch screen 18 is being touched.
`Preferably, the touch screen 18 may be an Elograph
`come a powerful tool in its own right. For example, the
`ics ACCUTOUCH (tm) E274 or E270 Touch Screen,
`visual feedback may be made to cycle through a se
`quence of patterns representing different functional
`and the controller 20 may be an Elographics E271-l4l
`controller which is con?gured as a half slot expansion
`push-buttons whereby the user may select a particular
`function or activate a particular push-button by per
`card for insertion into a bus connector of the personal
`computer 12. In order to work with the software ap
`forming an untouch action while the desired visual
`pattern is currently being presented. In such an opera
`pearing at the end of this document, the E27l-l4l con
`troller may be switch-con?gured for 12 bit resolution,
`tion the patterns are not restricted to
`the touch point,
`25
`with streaming output to the host 12. Other con?gura
`but they may be visual signals displayed elsewhere on
`tions are easily implemented with minor changes in the
`the screen, off the screen, .or they may be other forms of
`signals such as aural or voice synthesized signals pres
`software. Other touch screens, such as the Elographics
`DURATOUCH (tm) resistive membrane touch screen
`ented to the user via appropriate transducer devices.
`Any signal capable of being perceived by the user may
`or the Elographics SAW (surface accoustic wave)
`Touch Screen and other Elographics controllers, in
`be employed with touch-untouch action time intervals
`cluding the E27l-l40 and E27l-60 work equally well
`in order to provide a successive series of virtual push
`with the present invention.
`buttons in accordance with the principles of the present
`As illustrated in FIG. 1, the user's fore?nger may
`invention;
`touch the screen 18 at a location 22. When this happens,
`Furthermore, with touch screens which sense the
`the touch screen controller derives orthogonal (x,y)
`level of touch pressure
`at, as well as the orthogonal
`coordinate information to fix the location 22 and sends
`coordinates of, the touch location, the amount of sensed
`an interrupt to the computer 12. The host processor
`touch pressure may be used in a manner analogous to
`time in the immediately preceding example, with an
`within the computer 12 then enters a series of service
`increase in pressure being considered an abnormal con
`routines. These routines sense the location 22 as an
`actual button and generate predetermined graphical
`dition producing a virtual push-button. Further in
`creases in pressure, especially if accompanied by feed
`information at the screen 16 in response to the touch
`action at the location 22. If the user’s fore?nger is re
`back to the user from the computing system, such as a
`moved from the location 22, then an untouch action is
`visual display, can be sensed as other distinct virtual
`push-buttons. Untouch action then provides selection of
`detected, and this action may be used to select the func
`45
`tion or operation called to the screen when the location
`‘ the virtual button de?ned and determined by the great
`22 was originally touched.
`est pressure sensed.
`Now, if before the fore?nger is removed from the
`Virtual push-buttons give touch screens and touch
`location 22,
`the user's thumb is brought into contact
`pads the same range of capabilities as other position
`reporting devices, such as computer "mice”, “tablets",
`with the screen 16 at a location 24, a virtual push button
`and “light pens” which usually have electromechanical
`at location 26 is thereby established, and this virtual
`push-button may operate e.g. to cancel the function
`push-buttons present on the mechanism which are avail
`able for manipulation by the user’s hand during posi
`originally called up by depressing the location 22 of the
`tioning operations.
`touch screen 18, or it may have some other preestab
`With reference to FIG. 1, a computing system 10
`lished function or consequence.
`Alternatively, the touch action of the fore?nger at
`includes a computer 12 such as an IBM Personal Com
`puter (tm). In addition to conventional CPU, memory,
`the location 22 may set a timer which, after a predeter
`mass storage and input/output interface elements con
`mined normal untouch period, causes a menu 28 to
`begin to cycle through program options or choices for
`nected by internal data and control buses, the computer
`example. When a particular option or choice of interest
`12 may include an internal timer established by software
`or hardwrre for marking predetermined time intervals.
`to the user becomes displayed in the menu area 28, an
`A display adaptor 14 is connected to
`the bus of the
`untouch action at the location 22 then causes that par
`ticular choice to be selected. In this way the virtual
`computer 12 and is also connected to drive a suitable
`push button is established in the temporal, as opposed to
`display device such as a CRT monitor having a display
`the spatial, domain.
`screen 16. A transparent touch screen 18, for example of 65
`the type described in the referenced US. Pat. No.
`Alternatively, the screen 16 may be of the surface
`4,220,815, overlies the display screen 16 and senses
`accoustic wave type, and increased pressure of the
`touch and untouch actions performed e.g. by the index
`touch action of the fore?nger at the location 22 may be
`
`35
`
`55
`
` Exhibit 1016 Page 6
`
`

`
`. 5
`
`20
`
`25
`
`30
`
`35
`
`4,914,624
`7
`sensed as a second predetermined condition, thereby
`establishing the presence of a virtual push-button.
`The computing system 10 may conventionally be
`provided with a keyboard 30 for text entry. One or
`more of the keys of the keyboard may be used in con
`junction with the touch screen 18 to provide a virtual
`push-button. For example, during continuation of the
`touch action at the location 22, a key of the keyboard 30
`may be depressed, resulting in the generation of a vir
`tual button which may produce a predetermined display
`upon the screen 16.
`FIG. 2 sets forth a flow chart illustrative of a single
`virtual push-button in accordance with the principles of
`the present invention. The virtual push-button is estab
`lished by detection of I'large" distance changes in but
`ton location. The FIG. 2 ?owchart also includes un
`touch detection. The ?ow sequence charted in FIG. 2
`may be activated either by an interrupt from the touch
`screen controller 20 or by a timer established within the
`computer 12. If a timer is used, the time interval for
`activation is set according to the response time desired
`and other requirements of the system.
`For example, typical touch controllers are capable of
`producing streaming data output of touch coordinates
`at a rate around I00 points per second. Individual de
`signs may easily vary from less than one fourth to over
`four times the 100 points per second rate. The routine
`described by the FIG. 2 ?owchart is typically activated
`by an interrupt each time a coordinate pair is generated.
`Thus, interrupts are continuous at the controller-deter
`mined rate during a touch operation, and cease com
`pletely when no touch is sensed. If the controller is not
`designed to detect and report the end of a touch opera
`tion (untouch action), it is helpful to activate the routine
`via a timer interrupt as well as the controller interrupt,
`in order to detect when the controller has ceased to
`generate interrupts. Timer interrupt frequency is se
`lected to enable reliable untouch detection, which typi
`cally requires about 50 milliseconds and may easily vary
`from less than one fourth to four times that interval,
`40
`depending upon the speci?c controller, screen and op
`erating environment.
`The FIG. 2 control program is entered at an entry
`point 40 and a logical node 42 determines whether a
`touch is
`in progress. Initially, the flag to “deactivate
`untouch" is false and the “new sequence” and "buttons”
`?ags are true. If a touch is not in progress, as tested at
`the node 42, a logical node 44 determines if the present
`sequence is a "new sequence” in order to check to see
`whether the associated untouch can be reported yet. If
`a new sequence is detected at the node 44, the program
`is exited at an exit point 46. If not, a logical node 48
`determines whether untouoh has been detected. If not,
`the program is exited at the exit point 46. If so, accord
`ing to the “deactivate untouch" flag as established at a
`logical node 50, the untouch is either reported at an
`output block 52 or discarded. In either case, a process
`block 54 sets the “deactivate untouch” flag to false, and
`the “buttons” and "new seuence" ?ags to true. Setting
`the “new sequence” ?ag true prevents the same un
`
`8
`touch from being reported more than once as well as
`insuring the proper initiation of the next sequence of
`touch reportings. The program is then exited at an exit
`point 56.
`If a touch is in progress as tested at the node 42, the
`x, y coordinate values are obtained from the touch
`screen controller 20 at a process block 58. A check is
`made at a logical node 60 to see if a “new sequence” is
`starting. If so, there is no check made for virtual button
`operation, since there is no reference position from
`which to measure changes in distance; and the program
`execution proceeds directly to a process block 62 in
`which the x value is stored in an x previous value regis
`ter and the y value is stored in a y-previous-value regis
`ter.
`If the present sequence is not a “new sequence" as
`determined at the logical node 60, then a "buttons" ?ag
`is checked at a logical node 64. If the “buttons” flag is
`not enabled, then program execution proceeds directly
`to the process block 62. If the “buttons” flag is set, then
`a process block 66 calculates a Delta x as equal to the
`present x value minus the previous x value, and a Delta
`y as equal to the present y value minus the previous y
`value. The process block 66 also calculates the sum of
`Delta x square and Delta y square.
`While the FIG. 2 program calculates circular dis
`tance (Dx2+Dy2), in some situations it may be prefera
`ble to use other values such as absolute distance |Dx|
`or |Dy| for the comparison made at the process block
`66.
`A logical node 68 determines whether the sum of
`Delta x square and Delta y square is larger than a prede
`termined virtual button threshold value. If not, the pro
`gram execution proceeds directly to the process block
`62. If so, then a virtual button is reported at a process
`block 70, and the “deactivate untouch” flag may be set
`true and the “buttons" ?ag (tested at node 64) is set false
`at a block 72. The “buttons” ?ag is set false at this block
`72 to prevent multiple activations of the same button.
`The “deactivate untouch” flag is usually set true at the
`block 72 since it is usually desirable to ignore untouch
`action when a virtual button is ?rst activated, but this ,
`decision is a matter of program convention and is not
`necessary.
`n
`In any case, when program execution leaves either
`the process block 62‘or the process block 72, the “new
`sequence” flag (tested at node 60) is set false and the x
`and y coordinates are reported at a process block 74,
`and the program is then exited at an exit node 76; to be
`repeated at the next interrupt or time out from the inter
`nal timer.
`_
`Here follows a program listing in Microsoft Macro
`Assembler language for the Intel 8086/8088 series mi
`croprocessors. In addition to the program ?ow charted
`in FIG. 2, the following program also implements un
`touch detection and the distinction of virtual buttions in
`the four cardinal directions. One of the buttons is inten
`tionally made more difficult to activate so that it cannot
`be pressed by accident.
`
`45
`
`50
`
`55
`
`60
`
`65
`
` Exhibit 1016 Page 7
`
`

`
`4,914,624
`
`10
`9
`TOUCH SCREEN INTBRHUPT HITH VIRTUAL BUTTON ANALYSIS
`Hritton in Microsoft Macro Assembler
`'
`for the Intel 8086/8088 series
`microprocessors
`
`This is on example 0!‘ e reduction to practice.
`The "Virtual Button" technique is directly applicable
`other computers, other languages, and may be used in
`places other then an interrupt routine.
`
`Screen is the interrupt service routine for the
`Biographies touch screen using a model 141 controller
`in en IBM-PC or similer computer. It responds to
`screen interrupts, reeds the data es required, and
`does "Virtual Button" lnelysis, since the interrupt
`is one place certain to see each successive reading.
`this routine requires 12-bit, streaming input from
`the model H41 controller.
`
`a.‘ - -e we ‘a nee .0 see -. - - -- ‘Q ‘I Q. ~- eee <.
`
`SEGMENT BYTE PUBLIC 'CODE'
`ASSUME CS: __TEXT, OS: NOTHING, SS: NOTHING, ES: NOTHING
`
`SCREEN
`
`PROC
`STI
`PUSH
`PUSH
`PUSH
`HOV
`HOV
`
`FAR
`
`DX
`AX
`DS
`AX,CS
`DSJX
`
`;Set up DS=C8 for easy memory eeceas
`
`HOV
`
`DX,ELOPORT ;l’crt address of NH
`
`IN
`TEST
`JZ
`SUB
`IN
`HOV
`INC
`:8:
`IN
`
`888
`883
`S118
`HOV
`HOV
`HOV
`JMP
`
`:Get statue from NH
`AL,DX
`ALH‘OH :‘i'eot X deta
`GE'LY
`:Get Y if‘ not
`01,2
`38:01: to first port
`AL,DX
`3Get X high byte, 12 bit mode
`AHJL
`DX
`
`:‘I‘iming units for very fast machines
`Hub! Had I low byte
`
`AX. 1
`Mt, 1
`:Shitt right 4 to normel word
`AX,1
`T£HPX,AX
`:Scve it for later
`AL,NTCOUNT
`?imer count
`USE_FLAG,AL
`;Reeet use {log
`SCREXIT :And exit the interrupt
`
`; The model 11H generates two interrupts, one for X, then
`; another for l'.
`The X_ only stores data in TERPX ‘above
`5 and resets timer and event flags .
`Y follows through
`; with the complete analysis.
`
`SUB
`IN
`nov
`INC
`NOP
`
`nx,2
`AL,DX
`AH,AL
`DX
`
`5Baok to port
`met I high byte
`
` Exhibit 1016 Page 8
`
`

`
`11
`
`4,9 14, 4
`62
`
`12
`
`:And ‘1 low byte
`
`NO?
`AL,DX
`IN
`AX, 1
`SHE
`ML, 1
`883
`AK, 1
`SEE
`gSnift right U , normal word
`AX, 1
`SHR
`;Save regs for temporary store
`BX
`PUSH
`____
`will
`PUSH
`Calculate t e change in ‘1 (delta 1) and the change
`in X (delta X) from the previous values
`
`HOV
`SUB
`HOV
`Nov
`HOV
`SUB
`HOV
`HOV
`CM?
`HOV
`HOV
`JNE
`CHP
`JNE
`
`BXJX
`BXJ-ASTY
`LASTLAX
`AX,TEHPX
`CLAX
`CLLASTX
`LAS'I‘X,AX
`AL,NTCOUNT
`UNHAI‘I‘, 1
`UNHAI‘I', 1
`USE_FLAG,AL
`SCRBXO
`UOANCEL,O
`SCREXO
`
`Button Analysis
`
`38X : delta ‘I
`;Save new 1!
`
`;CI : delta X
`;Get a. matching pair
`;<-----..----: Tiller count
`;<----------: ‘rest acting on stream
`:THESE ARE 1
`Baiting for untouch
`:TIBD‘
`Reset use flag
`}
`:<

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