CA1244159A - Display method and apparatus employing cursor panning - Google Patents

Display method and apparatus employing cursor panning

Info

Publication number
CA1244159A
CA1244159A CA000487687A CA487687A CA1244159A CA 1244159 A CA1244159 A CA 1244159A CA 000487687 A CA000487687 A CA 000487687A CA 487687 A CA487687 A CA 487687A CA 1244159 A CA1244159 A CA 1244159A
Authority
CA
Canada
Prior art keywords
viewport
cursor
bit map
map memory
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000487687A
Other languages
French (fr)
Inventor
Allen Wirfs-Brock
Charles B. Schnarel, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tektronix Inc
Original Assignee
Tektronix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tektronix Inc filed Critical Tektronix Inc
Application granted granted Critical
Publication of CA1244159A publication Critical patent/CA1244159A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/08Cursor circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

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.

Description

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~

/* 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 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.

Claims (13)

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 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.
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.
CA000487687A 1984-08-02 1985-07-29 Display method and apparatus employing cursor panning Expired CA1244159A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63737584A 1984-08-02 1984-08-02
US637,375 1984-08-02

Publications (1)

Publication Number Publication Date
CA1244159A true CA1244159A (en) 1988-11-01

Family

ID=24555654

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000487687A Expired CA1244159A (en) 1984-08-02 1985-07-29 Display method and apparatus employing cursor panning

Country Status (3)

Country Link
EP (1) EP0172433A3 (en)
JP (1) JPS6142686A (en)
CA (1) CA1244159A (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62276673A (en) * 1986-05-26 1987-12-01 Toshiba Corp Multiwindow display device
DE3800770A1 (en) * 1988-01-13 1989-07-27 Siemens Ag ARRANGEMENT FOR MOVING A PICTURE AND POSITIONING A CURSOR ON THE SCREEN OF A VIEWING DEVICE
US5046001A (en) * 1988-06-30 1991-09-03 Ibm Corporation Method for accessing selected windows in a multi-tasking system
WO1990005972A1 (en) * 1988-11-14 1990-05-31 Wang Laboratories, Inc. Squeezable control device for computer display systems
US5187776A (en) * 1989-06-16 1993-02-16 International Business Machines Corp. Image editor zoom function
US5014222A (en) * 1989-06-30 1991-05-07 Bull Hn Information Systems Inc. Method of manipulating images larger than a viewport
JP2666538B2 (en) * 1990-08-10 1997-10-22 富士通株式会社 Panning control system
JP2957316B2 (en) * 1990-11-20 1999-10-04 インターナショナル・ビジネス・マシーンズ・コーポレイション Method and system for accessing multiple software applications
DE10117457A1 (en) 2001-04-06 2002-10-17 T Mobile Deutschland Gmbh Method for displaying standardized, large-format Internet pages with, for example, HTML protocol in one-hand-held devices with a mobile radio connection
JP4494002B2 (en) 2003-12-19 2010-06-30 富士通コンポーネント株式会社 Switching device and switching method of switching device
EP2184348B1 (en) 2006-03-23 2013-11-27 Ajinomoto Co., Inc. A method for producing an L-amino acid using bacterium of the Enterobacteriaceae family with attenuated expression of a gene coding for small RNA
RU2496519C2 (en) * 2007-08-28 2013-10-27 Бакстер Интернэшнл Инк. Method for producing preparation containing viral antigens and using preparation
JP2010286858A (en) * 2007-10-09 2010-12-24 Panasonic Corp Pointing device and pointing method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3903510A (en) * 1973-11-09 1975-09-02 Teletype Corp Scrolling circuit for a visual display apparatus
JPS59845B2 (en) * 1975-03-12 1984-01-09 株式会社日立製作所 display device
GB2070399B (en) * 1980-02-27 1983-10-05 Xtrak Corp Real time toroidal pan
JPS5778087A (en) * 1980-10-31 1982-05-15 Tokyo Shibaura Electric Co Video information storage retrieving device
JPS58192145A (en) * 1982-05-06 1983-11-09 Toshiba Corp Extended scroll system
US4555775B1 (en) * 1982-10-07 1995-12-05 Bell Telephone Labor Inc Dynamic generation and overlaying of graphic windows for multiple active program storage areas

Also Published As

Publication number Publication date
JPS6142686A (en) 1986-03-01
EP0172433A2 (en) 1986-02-26
EP0172433A3 (en) 1989-04-05

Similar Documents

Publication Publication Date Title
US4720703A (en) Display method and apparatus employing cursor panning
CA1244159A (en) Display method and apparatus employing cursor panning
US5388202A (en) Method and apparatus for generating window borders having pictorial frame elements
EP0396311B1 (en) Image processing apparatus and method
US4730261A (en) Solids modelling generator
US4716533A (en) Image translation system
US6559858B1 (en) Method for anti-aliasing of electronic ink
US4667306A (en) Method and apparatus for generating surface-fill vectors
US4747042A (en) Display control system
JP2619547B2 (en) How to display shapes
EP0532576A1 (en) Computer graphics
GB2235355A (en) Method and apparatus for detecting cursors
CN1430769B (en) Tiled graphics architecture
US6215507B1 (en) Display system with interleaved pixel address
CA2018649A1 (en) Display output rotation
JPH0562348B2 (en)
CA1190335A (en) Graphics display system and method
US5936635A (en) System and method of rendering polygons into a pixel grid
EP0229986B1 (en) Cursor circuit for a dual port memory
EP0151133A4 (en) Feedback vector generator.
JPS595905B2 (en) Surface brightness generation method in display devices
CA2140960C (en) Linear bitblt source type
US7015923B2 (en) Apparatus for painting figure
JP3327565B2 (en) Electronic device and control method thereof
JPH0648497B2 (en) Pattern control device

Legal Events

Date Code Title Description
MKEX Expiry