Language selection

Search

Patent 1244159 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 1244159
(21) Application Number: 487687
(54) English Title: DISPLAY METHOD AND APPARATUS EMPLOYING CURSOR PANNING
(54) French Title: METHODE ET APPAREIL D'AFFICHAGE A BALAYAGE PAR UN CURSEUR
Status: Expired
Bibliographic Data
(52) Canadian Patent Classification (CPC):
  • 375/11
(51) International Patent Classification (IPC):
  • G09G 1/00 (2006.01)
  • G09G 5/08 (2006.01)
  • G09G 5/14 (2006.01)
(72) Inventors :
  • WIRFS-BROCK, ALLEN (United States of America)
  • SCHNAREL, CHARLES B., JR. (United States of America)
(73) Owners :
  • TEKTRONIX, INC. (Not Available)
(71) Applicants :
(74) Agent: KIRBY EADES GALE BAKER
(74) Associate agent:
(45) Issued: 1988-11-01
(22) Filed Date: 1985-07-29
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
637,375 United States of America 1984-08-02

Abstracts

English Abstract



- 1 -
Abstract:
A method and apparatus for providing a movable
display relative to information stored in a pixel bit map
memory involves addressing a portion of the pixel bit map
memory to define a visible display wherein the portion
addressed represents a viewport into the bit map memory, the
pixel bit map memory storing a larger block of information
than is included within said viewport. The positioning of a
cursor is controlled and the position of the cursor relative
to the addresses for the bit map memory that represent the
viewport is detected in order to determine whether the cursor
falls within the viewport. The addresses as applied to the
bit map memory are then altered to move the viewport toward
the cursor so as to include the cursor within the visible
display when the current position of the cursor is detected
as falling outside the viewport. The result is an improved
manner of positioning a viewport relative to a large virtual
screen.


Claims

Note: Claims are shown in the official language in which they were submitted.



17
Claims
1. A method of providing a movable display
relative to information stored in a pixel bit map
memory, comprising:
addressing a portion of said pixel bit map
memory to define a visible display wherein the
portion addressed represents a viewport into the
bit map memory, said pixel bit map memory storing a
larger block of information than is included within
said viewport,
controlling the positioning of a cursor
relative to the display,
detecting the position of said cursor
relative to the addresses for the bit map memory
which represent said viewport in order to determine
whether the cursor falls within said viewport,
and altering said addresses as applied to
said bit map memory for moving said viewport toward
said cursor so as to include said cursor within the
visible display when the current position of said
cursor is detected as falling outside said
viewport.
2. A method of providing a movable display
relative to information stored in a pixel bit map
memory, comprising:
storing information in said bit map memory
in the form of display pixels,
addressing a portion of said bit map
memory to define a visible display wherein the
portion addressed represents a viewport in the bit
map memory, said bit map memory storing a larger
block of information than is included within said
viewport,
said addressing including counting from a
starting address representing the offset of said

18

viewport relative to said larger block of
information in said bit map memory,
controlling the positioning of a cursor
relative to the display,
detecting the current position of said
cursor relative to the addresses for the bit map
memory which represent said viewport in order to
determine whether the cursor falls within said
viewport,
and altering said addresses as applied to
said bit map memory by changing said starting
address when said cursor is detected as falling
outside said viewport for moving said viewport so
that said cursor is detected as falling inside said
viewport.
3. The method according to claim 2 wherein
said altering of said addresses is accomplished by
altering said starting address representing the
offset of said viewport.
4. The method according to claim 3 wherein
said starting address is altered to a value such
that the cursor falls proximate the beginning or
ending of a horizontal line in said viewport or
proximate the first or last horizontal line of said
viewport according to the closest edge of said
viewport relative to said cursor.
5. The method according to claim 2 wherein
said starting address is changed to the address of
the cursor as detected as falling outside said
viewport for the coordinate direction of the
displacement of said cursor outside said viewport.
6. The method according to claim 2 wherein
said counting continues for providing a horizontal
line of pixels for the display and is reinitiated
upon horizontal retrace in said display.


19

7. The method according to claim 6 wherein a
constant value is added to the count at the end of
each horizontal line of pixels and before
reinitiation of counting in order to address the
leading edge of the viewport.
8. The method according to claim 2 wherein
said counting from a starting address is
reinitiated upon each vertical retrace in said
display.
9. The method according to claim 2 wherein
said controlling the positioning of a cursor
includes physically moving an input device,
detecting the relative movement thereof as an
increment or decrement, and totaling increments
and decrements to provide a position for said
cursor relative to the bit map addresses.
10. Apparatus for providing a movable display
relative to stored information comprising:
a display means,
a pixel bit map memory for storing pixel
information for display on said display means,
means for scanning addresses in said pixel
bit map memory for accessing pixel data and
consecutively applying said data to said display
means, wherein said means for scanning scans less
than the total bit map memory whereby the display
of said display means is a partial representation
of information stored in said pixel bit map memory,
means for providing a cursor representa-
tion on said display means relative to pixel
information stored in said pixel bit map memory,
physically operable means for moving said
cursor representation with respect to said pixel
information,
means for detecting whether said cursor



representation falls within the said partial
representation of information,
and means for altering the scanning of
said addresses when said cursor representation
falls outside said partial representation of
information so as to include said cursor
representation within said partial representation
of information.
11. The apparatus according to claim 10
wherein said physically operable means comprises a
mouse.
12. The apparatus according to claim 10
wherein said scanning means comprises a counter for
counting through at least selected addresses of
said pixel bit map memory, and means for preloading
said counter with a value representing a starting
address in said memory where said partial
representation of information is stored.
13. The apparatus according to claim 12
wherein said means for altering the scanning of
said addresses when said cursor representation
falls outside said partial representation of
information comprises means for altering the
preloading of said counter by said preloading means
to select a new partial representation of
information including said cursor representation.

Description

Note: Descriptions are shown in the official language in which they were submitted.


3LZ~5~

D~SPLAY ~ETHOD AND APPARATUS EMPLOYING CURSOR PANNING

Background of the Invention
~ The present invention relate~ to a graphics
display me~hod and apparatus and particularly to
such method and apparatus wherein a viewport is
- panned within a lar~er virtual screen area
employing a movable cursor.
A known apparatus for providing a graphics
computer terminal di~play includes a cathode-ray-
tube portraying an image which is refreshed from a
pix 1 bit map memory wherein each of the elementary
bits of the image are stored. There iE not alway~
a one-to-one relationship between ~he in~ormation
represented on the cathode-ray-tube screen and the
size of the pixel bit map memory from which the
screen information is derived. Thus, the pixel bit
map memory may represent a larger virtual ~creen
while the cathode-ray-tube pre~en~ation represents
a window or viewport into the larger virtual
screen. That i~ the cathode-ray-tube image is a
visible vexsion of part o~ the virtual screen
tored in memory. In such ca~e, more than one
screen presentation may be ~imultaneously 6tored in
memory and the vi~ual pre&entation on the creen
can be ~witched between the blocks of stored
informat~on. Although some ~elect~on can be made
relative to the portion of the virtual screen which
is to be displayed, the prior art did not provide a
convenient way of ~panning~ the viewport window
with respect to the virtual screen ~tored in
memory.





S_mmary _f the_In_entio_
In accordance with an aspect of the invention
there is provided a method of providing a movable display
relative to information stored in a pixel bit map memory,
~ 5 comprising addressing a portion of said pixel bit map
memory to define a visible display wherein the portion
addressed represents a viewport into the bit map memory,
said pixel bit map memory storing a larger block of
information than is included within said viewport,
controlling the positioning of a cursor relative to the
display, detecting the position of said cursor relative to
the addresses for the bit map memory which represent said
viewport in order to determine whether the cursor falls
within said viewport, and altering said addresses as
lS applied to said bi~ map memory for moving said viewport
toward said cursor so as to include said cursor within the
visible display when the current position of said cursor
is detected as falling outside said viewport.
In accordance with another aspect of the invention
there is provided an apparatus for providing a movable
display relative to stored information comprising a display
means~ a pixel bit map memory for storing pixel information
for display on said display means, means for scanning
addresses in said pixel bit map memory for accessing pixel
data and consecutively applying said data to said display
means, wherein said means for scanning scans less than the
total bit map memory whereby the display of said display
means is a partial representation of information stored in
said pixel bit map memory, means for providing a cursor
representation on said display means relative to pixel
information stored in said pixel bit map memory, physically
operable means for moving said cursor representation with
respect to said pixel information, means for detecting
whether said cursor representation ~alls within the said
partial representation of information, and means for
altering the scanning of said addresses when said cursor
representation falls outside said partial representation
of information so as to include said cursor representation
within said partial representation of information.
.

5~
2a
In accordance with the present 1nvention in a
particular embodiment thereof, a graphics display
device is provided with a "mouse" or other
graphical input device wh$ch cooperates with means
for addressing the display device'~ bit map memory
so that a viewport into the bit map memory can be
panned in conjunction with a cursor controlled by
the mouse. In particular, 1f the mouse is operated
for moving the cursor within the viewport di~played
on the cathode-ray-tube screen until the edge of
the viewport i8 encountered, the addres~ins of the
bit map memory i8 changed whereby the whole
viewport appear~ to be moved by the cursor. Thus,
if a transition is Made in cursor movement from a
location "inside" the viewport to a location
Noutside" the viewport, the viewport i8 redefined
~uch that the cursor falls just within the
viewport, a~ long as the dimensions of the virtual
screen in the bit map memory are not exceeded. In
practice, for each incremental movement of tha
cursor, the viewport will move ln the fiame
direction by the same amount until the ed~e of the
virtual 6creen in memory is reached. The cursor
under the control of a mouse can be utilized for
pointing to and identifying any information in the
entire virtual screen~ with the viewport moving
along with the cursor whenever the edge of the
viewport is encountered by the cur~or.
It i~ accordingly an object of the pre~ent
invention to prov1de an improved method and
apparatus for positioning a viewport relative to a
larger vlrtual ~creen.
It i~ another object of the pre~ent invention
to provide an improved method and apparatus for



panning a graphicQ viewport relative to bit map
memory information under operator contr~l.
The subject ma~ter of the pre~ent inYention i~
particularly p~inted out and distinctly claimed in
the concluding portion of this specification.
However, both the organization and method of
operation, together with further advantages and
object~ thereof, may best be under~tood by
reference to the following description taken in
connect$on w$~h accompanying drawings wherein like
reference characters refer to like elements.
Drawin~s
Figs. la and lb depict the position of a view
port window relative to a larger virtual image
space,
Fig. 2 is a block diagram of a portion of
apparatus accord$ng to the present invention ~or
presenting a viewport on a cathode-ray-tube from
information stored in bit map memory,
Fig. 3 is a block diagram of circuitry for
positioning a display cursor under the control of a
mouse or the like and for changing the position of
the aforementioned viewport when the cursor makes a
tran~ition with respect to a viewpor~ edge, and
Fig. 4 is a flow chart depicting a proces~ for
moving the aforementioned viewpoxt in conjunction
with a cursor as the curzor makes a tran~ition
relative to the edge of the viewport.
Detailed Description
Referring to the drawings and particularly to
Pig~. la and 1~, the memory space within a pixel
bit map memory iB illustrated at 54 and a
~viewport" 56 i8 illustrated as a window within the
memory ~pace 54. Referring to Pig. 2, bit map
memory 58 is consecutively addressed by counter 60



; and read out to provide a di~play of ~he addres~ed
pixels on cathode-ray-tube 62. Returning to Fig.
lb, assume pixel~ depicting a cylinder 64 are
. stored in the b~t map ~emory, but the viewport S6
S ~ defined at the location illustrated in ~ig. lb.
- Therefore, only the portion of ~he cylinder 64
shown in full line will be di~played on the ~ace o~
the cathode-ray-tube, in exactly the same manner a~
~hown within viewport 56 i~ Fig. lb. In a ~ypical - -
instance, the bit map memory size i~ 1024 pixel
bits by 1024 p~xel bits, but the viewport comprises
a space 640 pixel bits in the horizontal direction
by 480 pixel bit~ in the vertical direction. The
origin or point having an addreRs (0,0) for the bit
map memory is indicated at 66, and the origin or
starting address of the viewport 56 i~ located at
68 in Fig~ lb. A cursor 70 iæ positlonable by a
mouÆe or other graphical input device anywhere
within the virtual image space 54.
In accordance with the present inven~ion, the
viewport 56 may be panned within the vir~ual image
space of the bit map memory 54 by moving the cur~or
70 against ~he edge of the viewport 56. For
example, if the cursor 70 ifi moved to make a
transition acro~s the left hand edge of the view-
port 56 in F~g. lb, the viewport 56 will follow the
cursor a~ long as ~he cursor goes no ~arther than
the left hand edge of the virtual image memory
space 54. In Fig. la, rectangle AB represent~ the
most extreme position that the viewport 56 can be
toward the origln 66, and rectangle CD repre~ents
the mo~t extreme posltion that viewport 56 ean be
away from the origin. The movement o$ the viewport
as defined by movement of it~ origin 68 i8
constrained to remain within rectangle AC. Of

: 5

cour~e, the partlcular size~ ~or the vir~ual image
memory space and the viewport are given by way of
e~xample and could be changed even during the
operation of a given apparatus.
Referring once more to Fig. 2 it will be
recalled that the bit map memory 58 i8
consecutively addres~e~ from counter 60, with
counter 60 cycling through addresse~ for the
viewport i~ is de ired to present on cathode-ray-
tube 62. Since only a portion of the addres6e~ inmemory 5B i~ to be accessed, counter 60 does not
count through all possible addresses, but only
through the desired addre~ses. In par~icular,
counter 60 is loaded at every vertical retrace time
lS with a value repre~enting the origin 68 in Fig. lb
of the desired viewport ~rom viewport reg$ster or
pan reg~ter 72. The counter 60 i6 then clocked to
count through Eucce~ive addresses in bit map
memory 58 representing a fir~t horizontal "line" of
pixels for display on CRT 62, the line compri6ing
640 consecutive addresses in the pre6en~ example,
and the counter then wa$t~ for the horizontal
retrace signal from the cat~ode-ray-tube circui~ry
(not shown). Thereupon, the counter 60 i8 clocked
again for acces~ing the pixel~ for the next l~ne,
etc Between lines, an offset value i8 added to
the output of counter 60 in adder 74, and the
previ OU8 value in counter 60 plus the off~et is
preloaded back into counter 60. The reason ~or
adding thi~ offset w$11 be appreciated from viewing
Fig. lb. If a horizon~al line of pixel~,
illustrated by dashed line 82 in Rig. lb, is traced
upon the cathode-ray-tube screen for portraying one
line of pixels within the viewport, lt will be
understood that after the conclusion of line 82 a



value must be added to the last address for line 82
in order to reach the fir t address for line 84.
The addition value compr~ es the number of pixel~
in line ~egment 86 between the right hand edge of
the viewport and the right hand edge of the bit map
plu~ the number of pixel~ in the line 6egment 88
between the le~t hand ~ide of the pixel bi~ map and
the left hand side of the viewport. In the present
example, the added value equals 1024 minus 640 or
384. This will differ for different embodlments.
A~ each vertical retrace ~ime, the counter 60
is reloaded from register 72 wi~h the off~et
representing the origin or start of the viewport.
The viewport i8 panned or moved relative to the bi~
map by changing the value in pan register 72. At
each next vertical retrace time, counter 60 can be
preloaded wi~h a different value and the viewport
will start at a new location.
It ~hould be noted that memory 58 i~ a linear
array at consecutive addresses and does not
necessarily correspond to X and Y location~ on a
cathode-ray-tube screen. In the Fig. 2 circuit,
horizontal or X addresse6 are input to register 76
and vertical or Y addresse6 are input to register
78. As hereinafter more fully de~cribed, these X
and Y addrese~ may be derived from the position~ng
of the mouse or other graphical input device
employed to position the cursor on the screen of
the cathode-ray-tub~. The X and Y addresse~ are
converted to a linear array addres~ for input to
register 72 in arithmetic unit 80 in a known
manner. In particular, arithmetic unit B0 convert~
the H and V values in registers 76 and 78 to a
desired output according to the formula:
(starting point) ~ V.~width between line~) + H



where the ~tarting point here represent6 the
address of origin 66 ~n Fig. lb.
Referring to Fig. 3, a mouse 40 or other
similar graphical input device is employed for
converting relative phy~ical movement into an
- electrical ~nput. In a particular emb~diment, the
mouse utilized was manufactured by ~awley Labs of
Berkeley, California. The mouse i8 movable
manually over a flat ~urface (not shown) and
supplie~ quadrature encoded output signals u~ed to
operate displacement counter~ 42 and 44 in a manner
for incrementlng or decrementing the displacement
counters depending upon the extent and direction of
move~ent of the mou~e in respective hoxizontal and
vertical component directionc. Periodically~ on a
clock cycle basis, the displacements ~rom counters
42 and 44 are added to cursor horizontal position
regi~ter 46 and cur60r vert~cal position 48
respectively, and the dl&placement counters 42 and
44 are reset to zero. The outputs of cursor
horizontal poæition regi~ter 46 and cur~or vertical
position regi~ter 48 are supplied to cur~or
positioning circuitry 50 which control~ the
position of the cursor on the cathode-ray-tube
screen in a conventional manner. In particular,
the output of the cur~or po~itioning circuitry
provides an input to the pixel bit map memory
whereby the previous cursor position as ~tored in
the pixel bit map memory i8 era~ed and the new
pixel po~ition i8 ~tored therein as~uming the
cursor has moved.
In accordance with the pre~ent invention, the
graphi~al input device or mouse i~ utilized for
moving the viewport ~ubstantlally simultaneou~ly
with the cur~or, in the in&tance where the cursor

g~ ~ ~%~

is moved by the mouse to encounter one of the edge6
of the viewport. A~ th~ mou~e i~ moved, the
viewport then appears to move along wi~h the cur~or
a the cursor ~pu~he~ the viewport in the
~direction of cursor movement. The viewer can thus
explore part~ of the pixel bit map that lie beyond
the viewport as previou~ly di~played.
The cursor horizontal position from regis~er
46 i~ provided to compara~ox 12 whlch compares ~he
horizontal position of the cursor from regi~ter 46
with the horizontal poæition of the viewport, YPX
(deriv~d from regi~ter 38). If the cur~or
horizontal po~ition is le~s than VPX, it will be
seen that the cur~or i8 to the left o~ the
viewport, and the updating of regi~ter 38 at the
next clock i8 enabled via OR gate 52 connected to
receive the output of the comparator. As~uming ~he
cursor has not moved entirely off the virtual
screen repre~ented by the bit map, then the cur~or
horizont~l position will be ~upplied to regi~ter 38
by way of the ~0" input of multiplexer 10 and ~0"
input o~ multiplexer 14. Register 38 i~ thus
updated to repre ent the horizontal po8ition 0~ the
cursor, and supplies the new VPX value for register
76 in Fig. 2. (Regi~ters 38 and 76 can be t~e same
register.) As will be seen, the pan regi~ter 72
will be correspondingly updated whereby the origin
or starting point 68 of the viewport will be
shifted ~o far a~ it~ X coordinate i~ concerned~
to coincide with the new po~ition of the cursor.
Consequently, it will appear a~ if the cursor ha~
~pushedW the viewpor~ in the direction and by the
displacement of the cur~or movement beyond the
previous viewport. A~ hereinbefore mentioned, the
contents of register 72 in Fig. 2 are u~ed to

g

update counter 60 at each v~rtical retrace time.
The most ~ignificant bit of the cursor
~horizontal position i8 employe~ as a ~elect input
of multiplexer 10. The most ~ignificant bit is
treated as a sign bit, with negative number~ being
typified by the most signi~icant bit being one. If
the cur~or has moved entirely to the left of the
virtual screen represented by the bit map, then
multiplexer 10 will then output a zero causing
register 38 to be reset to zero ~i~ce the viewport
is not deRirably moved any farther to ~he left then
the zero X coordinate.
The case will now be considered where the
cursor i8 moved to the right hand side of the
viewport. Comparator 20 compare~ the horizontal
cursor position from register 46 with (VPX -t
viewport width). Thus, a compari~on i5 made
between the horizontal cursor position and the
right hand side of the viewport. If the cursor
horizontal position is greater than the above-
mentioned sum, then the updating of register 38 is
again enabled by way of OR gate 52.
The output of comparator 20 will al~o operate
the select input of multiplexer 14 whereby the
output of multiplexer 16 is provided a the input
to register 38. If the cur~or i~ to the right of
the viewport, we choo e the minimum of the right
hand side of the bit map, or the cursor position if
the cursor has not moved beyond it. Comparator 18
determine~ whether ~map width - v~ewport width) is
less than (cursor horizontal position - Yiewport
width). If it is not, then multiplexer 16 select~
(cursor horizontal position - viewport width) a~
the new input for reg~ter 38. As will be seen,
this is the ca~e where the cursor has moved o~f the



right hand ~ide of the viewport, but has not
texceeded the bit map. The viewport width i~
.subtrac~d from the cursor position before updating --
register 38 ~ince regi~ter 38 i~ used in updating
-~he nrigi~ o~ the viewport and it will be seen ~uch
origin iæ the width of the viewport away from the
right hand ~ide of the v$ewport. In effect,
comparator 18 compare~ map width with cursor
horizontal position and if the cursor horizontal
position i8 le~s than map width, regi ter 38 i~
updated w~th the new cur60r position. If~ on the
other hand, map width i5 less than the new cursor
position, indirating a cur~or has moved off the
map, then the ~1" input of multiplexer 16 i8
selected and the quantity (map width - viewport
width) will be input to regi~ter 38. A~ will be
seen, this places the viewport against the right
hand side of the map.
Similarly, comparator 36 compare~ the cursor
vertical position with VPY or the current viewport
vertical position (~rom register 32~. If the
cursor position i5 les~ than VPY, indicati~g
movement of the cur~or off the top of the viewport,
~hen updat~ng of reqi~ter 32 at the next clock i8
enabled with OR gate 34. Assuming the cursor has
no~ moved entirely off the bit map, the cur~or
vertical position will be delivered to the view-
port vertical position register 32 thxough
multiplexers 28 and 30. Where the cur or vertical
pocition ha~ moved off the top of the viewport, the
vertical po6ition o~ ~he viewpox~ wlll thus be
moved to the vertical position o~ the ~ur~or.
Register 32 will update regi~ter 78 in F~g. 2 and
may compri~e the ~ame register. If the cursor h~s
moved entirely o~f the top o~ the bit map, then ~he


most significant bit of cur~or vertical po~ition
wlll be a one and multiplexer 28 will 6elect zer~
a~ the input for register 32 whereby the new
viewport will be po~tioned vertically against the
S ; top of the bit map.
Now con idering the Gase where the cur~or has
moved from the bottom of the viewport, comparator
24 determine~ whether the current vertlcal po~ition
of the cursor in regi~ter 48 is greater than (VPY +
viewpoxt height) and if it i8, then updating o~
regi~ter 32 i8 enabled via OR gate 34.
Comparator 22 determine~ whe~her tmap height -
viewport height) i~ les~ than (cursor vertical
position - viewport height). Map height minu~
lS viewport height i~ that po~ition for the viewport
where the viewport is against the bottom of the bit
map. If this i~ le~s than cursor vertical position
minu~ v~ewport height, then the cursor has moved
from the bottom o~ the bit map and the ~1~ input of
multiplexer 26 18 selected by comparator 22.
Consequently the aforementioned vertical position
for the viewport where it $~ against the bottom of
the bit map i~ ~elected ~or input to register 32 by
way of ~ultiplexers 26 and 30. If the cur~or i8
not off the bottom o~ the bit map, then the "O"
input of multiplexer 26 will be coupled to itR
output, and register 32 will receive (cur~or
vertical position - viewport height) as the new
vertical po~ition ~or moving the bottom edge of the
viewport to the new cursor po~ition.
Thu6 the register 72 is updated in accordance
with cursor movement under control of the ~ouse 50
tha~ the viewport ls moved along with the cursor
when the cursor encounters ~he edge o~ the
viewport, thereby providing ea~y panning of the

12 ~¦";2~ .,h~

viewport without requiring any additional control
beyond tha~ supplied ~or the cursor.
In a preferred embodiment of the pre~ent
invention, the operation between the mouse input
and the hardware acsoc~ated with the bit map
circuitry of Fig. 3 is carried out in a
microprocesEor system wherein the rel~tive mouse
movement are received and the cursor and viewport
are positioned in response thereto. Again, when
the cur~or makes a txansitlon ~rom inside the
viewport to outside the viewpor~, the viewport i8
moved accordingly. Reference i~ made to ~he
flowchart of Fig. 4 deccribing the overall process
as implemented on a Motorola 68000 microprocessor.
Mou~e movement as referenced by block 90
provides an indication of relative X and Y motion
in block 92. The cursor positlon repre~ented by
block 94 is updated in accordance with the relative
motions by an addition noted at 96, and the new
cursor position i~ ~tored. In accordance with the
new cursor position, the cursor i8 actually moved
to the new po~ition in the block 98 after which it
is determined in deci~ion block 100 whether the
cur or in its new posi~ion i~ inside or out6ide of
the viewport. If ~he cursor ~ 8 inside ~he
viewport, no action i8 taken. If the cursor i8
out~ide the viewport, the viewport po ition (the
XrY coordinates of point 68 in Fig. lbl is adjusted
so the cursor is ~ust vi~ible. The new vlewport
30 position, block 10~ availab~e for the test - ~~
described by decision block 10 .
The software for carrying out the Fig. 4
prccedure i8 more fully described as follow~.


5~
13

/* Get new mouse position */
if mousePosi~ionChanged then
~ewMousePoint - mou~ePoint~getMouseDelta8(1
newCursorPosition=new~ousePoint
if in viewport(cursorPosition) ~ no~ in_viewport(newCursorPosition)
then /*pan until new cursor in viewport or pan limit~ reached*/
if newCur~orPosition.x< ViewPort.x
then newViewPort.x - max(newCur orPosition.x,
minViewPortX)
else if newCursorPosition.x> ViewPort.x~viewPortWidth
then newViewPort.x ~
min(newCursorPosition.x-viewPortWidth,
maxViewPortX)
i~ newCur~orPosition.y< ViewPort.y
then newVi~wRort.y = max(newCursorPosition.y,
minViewPortY)
else if newCursorPosition.y> ViewPort.y~viewPortHeight
then newViewPort.y ~
min(newCur~orPosition.y-viewPortHeight,
maxView~ortY)
/~ if the cursor has moved and ~t had been visible, erase the old
cursor image */
if newCursorPosition ~> cursorPosition then
restore area under old cursor position
cursorVislble ~ fal6e
endif
~ change the pan regi~ter if the view port position has changed */
if newViewPortPoint <> viewPortPoint
then change the phy~cal view port posit~on
/* if the cursor i6 not di~play and should be then display it
i~ not cursorVisible
then cur~orPo~ition - newCursorPosition
display cursor at cursor~o~ition
cursorVi6ible=true

In the ~oregoing program and in particular in
~he fir t four lines thereof, a check ~8 ~ade to
see if the mouse po~ition has changedO The mouse
deltas corre~pond to the entry in counter~ 42 and
44 in Fig. 3. A ~ew mou~e point i8 then calculated
- which corresponds to the last position of mouse
plus the mouse deltas and the new cursor position
is immediately defined as the new mouse point in
the fourth line of the program. Therefore, the
cursor i8 ~r~cking the mouse.
In the fi~th through the twentieth lines of
the program (lines 6 through 21 of the
application3, a test is made to determine if the
new cursor position i8 out~ide the viewpor~ and if
this repre~ents a change from the previouQ cursor
position. The vlewport is then panned until the
new cur~or i8 within the viewport or ths pan limit
~i.e. the edge o~ the bit map) i8 reached.
A serie~ of compari~on~ are made to indicate
the boundary of the viewport that ha~ been cros~edt
i.e. top, bottom~ left, or right. The first
comparison determine~ whe~her the new cursor
position X coordina~e i~ ~maller than the present
viewport po~ition. If it is, the cursor has moved
to the left of the viewport, ~nd a DeW X coordinate
for the viewport i~ computed whose value is going
to be the maximum o~ either the new cur~or position
or the smallest po sible viewport value.
The next test check~ to see whether the X
value has exceeded the present viewport origin plu~
its wid~h (which indicates ~he cursor has moved off
the right side of the viewport). In that case the
new viewport's X origin i8 made the ~maller of the
cursor posit~on minus the width of the viewport or
the maximum value the viewport can be set to.



Similarly for the Y value, if ~he new position
o~ the cur~ox i smaller than ~e viewport Y
çoordinate, then the new viewpor~'~ Y will be made
the maximum of the new cursor position or the
minimum viewport Y. Considering movement off the
bottom of the viewpoxt, if the new cursor
position'~ Y i greater than the vlewport'~ Y plus
the viewport height, then a new Y value for ~he
viewport's origin is computed which i8 the smaller
of the cursor position's Y minus the viewport
height or the maximum viewport Y value. As a
result oE the aforementioned tests the new po~ition
has been determined for the viewport to occupy.
In the twenty-~irst through ~he twenty-
sixth line~ of the program (lines 22 through 27
of the application) the full cursor image i~ erased
in the bit map if the cursor has moved, as
determined in the fourth line of the program. If
the new cursor po ition iR les6 than or greater
than the previous cursor position then the bit map
area under the old cursor position i~ restored.
(The cursor i~ erased.)
In lines 27 through 29 in the program (l~nes
- 28-30 in the application)~ the pan register i~
changed if the viewport position has changed. If
the new computed po ition for the viewport is le~
than or greater than the previous viewport
position, then the value in the pan register i8
chanqed so that the viewport will exhibit a new
location. X and Y input~ are as provided to
registers 76 and 78 in Fig. 2. The computations
indicated for arithmetic unit 80 in Fig. 2 are
carried out.
~inally, in the last five lines o~ the
program, the cursor is made visible at the new

16

position. Thus, both the cursor and the viewport
have been moved in accordance with the change in
mouse po~ition, as~ming the cur~or has crossed a
viewport boundary.
While a preferred embodiment of the present
invention ha~ been shown and described, it will be
apparen~ to tho~e skilled in the art that m~ny
changes and modifications may be made without
departing from the invention in its broader
aspects. The appended claims are therefore
intended to cover all such changes and
modifications as ~all within the true spirit and
scope of the inYention.





Representative Drawing

Sorry, the representative drawing for patent document number 1244159 was not found.

Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 1988-11-01
(22) Filed 1985-07-29
(45) Issued 1988-11-01
Expired 2005-11-01

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $0.00 1985-07-29
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
TEKTRONIX, INC.
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Drawings 1993-10-18 3 78
Claims 1993-10-18 4 158
Abstract 1993-10-18 1 26
Cover Page 1993-10-18 1 15
Description 1993-10-18 17 752