WO1996031819A2 - Data processing device and scrolling method - Google Patents

Data processing device and scrolling method Download PDF

Info

Publication number
WO1996031819A2
WO1996031819A2 PCT/JP1996/000910 JP9600910W WO9631819A2 WO 1996031819 A2 WO1996031819 A2 WO 1996031819A2 JP 9600910 W JP9600910 W JP 9600910W WO 9631819 A2 WO9631819 A2 WO 9631819A2
Authority
WO
WIPO (PCT)
Prior art keywords
image
data
scrolling
cursor
memory device
Prior art date
Application number
PCT/JP1996/000910
Other languages
French (fr)
Other versions
WO1996031819A3 (en
Inventor
Daisuke Tabuchi
Wataru Shoji
Ichiro Nakajima
Original Assignee
Sofmap Future Design Co., Ltd.
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 Sofmap Future Design Co., Ltd. filed Critical Sofmap Future Design Co., Ltd.
Publication of WO1996031819A2 publication Critical patent/WO1996031819A2/en
Publication of WO1996031819A3 publication Critical patent/WO1996031819A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning

Definitions

  • the present invention relates to a data processing device and a scrolling method which can scroll an image in an arbitrary direction at an arbitrary speed.
  • the present invention also relates to methods and apparatus for increasing the speed of scrolling images displayed on a computer monitor.
  • computers were very expensive. As a result, only large research institutions and corporations could afford to buy them. Consequently, computers were primarily being used to solve scientific problems (e.g., simulating the behavior of fluid) and support business operations of large corporations (e.g., processing accounting and customer records of insurance companies).
  • the software programs designed for these purposes communicate with users using numbers and text. The users of these software programs were technically trained, and were comfortable in such environment. Thus, there were little needs for these program to present information in graphic or image forms.
  • An essential tool in manipulating graphic images is scrolling.
  • the need for scrolling arises when the size of a window displaying a graphic image is smaller than the full size of the image.
  • the window can display a portion of the image only.
  • a user can "scroll" the image.
  • the user uses a cursor to indicate the direction of scrolling.
  • the position of the cursor is controlled by a mouse (or other pointing devices) held by the user.
  • the location of the cursor is delivered to the operating system and the application software (e.g., word processor program) controlling the graphic image.
  • the images on most display devices need to be refreshed (i.e., re-drawn) periodically, e.g., sixty times per second.
  • the refreshed images would show a series of shifted images depicting movements of the graphic file.
  • the operating system and the application software use the position of the cursor to determine how the series of images should be drawn. If the operating system and the application software cannot draw these images efficiently, it may take an intolerably long time for the series of images to appear (i.e., the scrolling is slow). The user may become impatient, and will be less incline to use the computer or software.
  • One method to speed up scrolling is to install a more powerful microprocessor in a computer.
  • Another method is to use specialized semiconductor chips (e.g., "graphic accelerator” chips) which are designed to optimize graphic computations. These methods increase the throughput of all graphic operations, and are not specifically designed to improve the speed of scrolling.
  • the speed of scrolling is an important factor limiting the performance of a computer system.
  • the above described prior art methods may not provide a cost effective solution to this problem.
  • the graphic file is large and the application is complex, even the most powerful microcomputer and the fastest graphic accelerator may not be able to provide acceptable performance without additional help.
  • the image can be scrolled only in the vertical direction or horizontal direction in accordance with an instructions of, for instance, cursor keys.
  • the image can not be scrolled in an arbitrary direction.
  • the scrolling speed is fixed, and the image can not be scrolled at an arbitrary speed.
  • the present invention was made in view of the situation, and its object is to provide a data processing device and a scrolling method which can scroll an image in an arbitrary direction at an arbitrary speed and a scrolling method which can scroll an image at a high speed.
  • a data processing device of a first aspect of the present invention comprises: means for displaying an image and a cursor; position control means for controlling a position of the cursor in response to external operations; determining means for determining a distance between a predetermined reference point and the cursor; and scrolling means for scrolling the image at a speed corresponding to the distance determined by the determining means.
  • a data processing device of a second aspect of the present invention comprises: means for displaying an image and a cursor; position control means for controlling a position of the cursor in 'esponse to external operations; determining means for determining a direction of the cursor with respect to the predetermined reference point, and scrolling means for scrolling the image in a direction corresponding to the direction determined by the determining means.
  • a data processing device of a third aspect of the present invention comprises: a display data memory for storing display data; display means for displaying the display data stored in the display data memory; input means for inputting data; cursor display means for displaying a cursor on the display means in response to an instruction indicating a starting of scroll input by the input means; position controlling means for controlling a position of the cursor in response to the instruction input by the input means; determining means for determining a distance between the a reference point and the cursor; and scrolling means for scrolling the image displayed on the display means, by shifting the display data stored in the display data memory at a speed corresponding to the distance determined by the determining means and developing new display data in a vacant area formed by the shifting of the display data.
  • a data processing device of a fourth aspect of the present invention comprises: a display data memory for storing display data; display means for displaying the display data stored in the display data memory; input means for inputting data; cursor display means for displaying a cursor on the display means in response to an instruction indicating a starting of scroll input by the input means; position controlling means for controlling a position of the cursor in response to the instruction input by the input means; determining means for determining a direction of the cursor with respect to the reference point; and scrolling means for scrolling the display image by shifting the display data in the display data memory to the direction determined by the determining means or its opposite direction, and developing a new display data in the vacant area.
  • the predetermined reference point may be a substantial center point of a window.
  • the device of the first and third aspects may include means for setting a scrolling speed for each distance determined by the determining means.
  • the data processing device according to the first to fourth aspects of this invention can include means for executing the specified processing on the display data shifted by the scrolling means.
  • a scrolling method of a fifth aspect of the present invention comprises: a step of forming a window on a image, and displaying a part of the image via the window; a step of displaying a cursor on the window; a step of instructing scrolling; a determining step of responding to the instruction step and determining the distance between the specified reference point and the cursor; and a scrolling step of scrolling the image in the window at a speed corresponding to the distance determined in the determining step.
  • a scrolling method of a sixth aspect of the present invention comprises: a step of forming a window on a image, and displaying a part of the image via the window; a step of displaying a cursor on the window; a step of instructing scrolling; a step of determining a direction of the cursor with respect to the specified reference point; and a step of scrolling the image to the direction corresponding to the direction determined by the determining step.
  • the scrolling step may include a step of executing a specified processing to the image which is being scrolled. Further, at the time of scrolling, an arbitrary processing such as drawing a line, and erasing and reversing of the image may be done.
  • the image can be scrolled at a desired speed or to a desired direction.
  • the reference point may be either of the center of the window or the center of the display screen.
  • a method for scrolling an image of a vector graphic file in response to positions of a cursor the image being generated from data loaded into an area of a semiconductor memory device related to a display device, the scrolling involving display a first image containing a first portion of the graphic file at a first time and a second image containing a second portion of the graphic file at a second time, the image comprising a plurality of shapes each associated with a vector command of the vector graphic file, which method comprises the steps of:
  • the step of performing scrolling operation can include the steps of: (i) finding a common portion of the graphic file which is common to the first portion and the second portion, the common portion being located in a first region of the area of the memory device at the first time; and
  • a method for scrolling an image of a graphic file in response to positions of a cursor the image being generated from data loaded into an area of a semiconductor memory device related to a display device, the scrolling involving display a first image containing a first portion of the graphic file at a first time and a second image containing a second portion of the graphic file at a second time, which method comprises the steps of:
  • the graphic file is stored in a hard disk and the semiconductor memory device includes a display memory.
  • the loading step can include the steps of: retrieving the new portion from the hard disk to system random access memory; and transferring the new portion from the system random access memory to the display memory.
  • the image may comprise a superposition of a bitmap image and a vector image
  • graphic file may contain a bitmap file and a vector file
  • the vector image may include a plurality of Shapes each associated with a vector command.
  • the method can further include the steps of:
  • a system for fast scrolling of an image of a graphic file in response to positions of a cursor the graphic file being stored in an external memory device, the image being generated from data loaded into an area of a semiconductor memory device related to a display device, the scrolling involving displaying a first image containing a first portion of the graphic file at a first time and a second image containing a second portion of the graphic file at a second time
  • the system comprising: a dual memory storage device comprising: a retrieval circuit for retrieving graphic data in the graphic file from the external storage device; - a first memory device; a second memory device; an interface circuit for allowing data stored in the first and the second memory devices to be output from the dual memory device; a first circuit for alternatively switching the retrieval circuit to the first memory device and the second memory device for allowing the graphic data to store in the first and the second memory devices, and for alternatively switching the interface circuit to the first memory device and the second memory device; a second circuit for
  • the first circuit can include: a first counter coupled to the first memory device for determining an amount of data stored in 1he first memory device; a second counter coupled to the second memory device for determining an amount of data stored in the second memory device; means for generating a first signal when the amount of data stored in the first memory device exceeds a first predetermined value; means for generating a second signal when the amount of data stored in the second memory device exceeds a second predetermined value; a third circuit for communicating data with the retrieval circuit; a fourth circuit for communicating data with the interface circuit; and a data switching circuit for alternatively coupling the first memory device to one of the third and the fourth circuits in response to the first signal and for alternatively coupling the second memory device to one of the first and the second circuits in response to the second signal.
  • the data to be scrolled is transferred from external memory device to one memory device while the data from another memory device is output to the internal memory.
  • the data can be transferred between the external memory device and the internal memory continuously.
  • FIG. 1 is a block diagram of the data processing device of the first embodiment of the present invention
  • Fig. 2 is a drawing for explaining a state in which the window is opened on the image
  • Fig. 3 is a drawing for explaining the scroll processing
  • Fig. 4 is a flowchart for explaining the scroll processing
  • Fig. 5 is a drawing showing a window located at an edge of the image
  • Fig. 6 shows the state of the window before and after shifting the window;
  • Fig. 7 is a drawing for explaining the method of shifting the image data in a display memory (image memory);
  • Figs. 8A and 8B are drawings for explaining the method of shifting the image data in the display memory;
  • Fig. 9 shows the generation of extra coordinates related to vector data of the present invention.
  • Fig. 10 shows an example of an Edit Bar for image processing
  • Fig. 11 is a drawing showing a state in which a straight line is drawn on an image
  • Fig. 12 is a drawing showing a state in which a continuous line is drawn on an image.
  • Fig. 13 is a drawing showing a state in which a polygon is drawn on an image.
  • Fig. 14 is a block diagram of a computer system of the present invention.
  • Fig. 15 is a schematic diagram of a software system of the present invention.
  • Fig. 16 is a block diagram of a data transfer device of the present invention.
  • Fig. 17 is a flow chart showing the operation of the data transfer device of the present invention .
  • Fig. 18 is a timing diagram showing the relative timing between SCSI cycles and internal memory cycles of the. data transfer device of Fig. 16.
  • Fig. 19 is a schematic diagram showing the relationship between graphic data in VRAM, system RAM, and a hard disk of the present invention.
  • Fig. 1 shows a structure of the data processing device of the first embodiment of the present invention.
  • the data processing device includes: a memory 11 , an MPU
  • Memory 11 stores a program related to data processing, in particular, it stores a program for displaying and scrolling an image.
  • MPU 12 operates in accordance with the program stored in memory 11. In particular, it processes image data and stored display data into VRAM 16.
  • I/O port 15 transfers the data input from mouse 13 and keyboard 14 to MPU 12.
  • VRAM 16 stores bitmap data which defines a display image.
  • CRT 17 displays the bitmap data stored in VRAM 16.
  • External storage device 18 may be a hard disk device, CD-ROM device and so on, and stores image files.
  • Bus 19 transfers data between the components. The operation of the data processing device will be described below,
  • MPU 12 forms a window 32 on a virtual large image 31 , and displays a part of image 31 via window 32.
  • Window 32 and image inside of window 32 are stored in VRAM 16 in the form of bitmap, and displayed on CRT 17.
  • Image 31 is an image held in the image file stored in, for instance, external storage device 18, and it may be either a raster image (bitmap image) or a vector image.
  • the size of window 32 may be equal to or smaller than the size of the display screen of CRT 17.
  • a plurality of windows may be opened at a time on the display screen of CRT 17.
  • mouse 13 The operation of mouse 13 is notified to MPU 12 via I/O port 15.
  • MPU 12 changes the cursor displayed in window 32 on CRT 17 from a normal arrow to the shape for scrolling shown in Fig. 3.
  • MPU 12 executes the process shown in Fig. 4.
  • MPU 12 moves cursor 33 inside of window 32 (Step S1 ).
  • MPU 12 obtains differences between the coordinates (X r , Y f ) of the center point (reference point) Pr of window 32, and coordinates (X,,,, Y m ) of cursor 33.
  • MPU 12 calculates the amounts of movement of window 32 in X and Y directions by one shift process. For instance, by dividing and Y s with the specified constant Q, for example, 10, and make that quotients the amounts ( ⁇ x, ⁇ y) of movement of window 32 (Step S2). Subsequently, from the position of window 32 on the image 31 and the amounts ( ⁇ x, ⁇ y) of movement obtained by Step S2, MPU 17 determines whether window 32 can be sifted or not (Step S3). For instance, as window 32B shown in Fig.
  • Step S4 when window 32 is located at the edge of image 31 , and the vector (X,., Y s ) indicates the edge direction, and window 32 can move neither in the horizontal nor the vertical direction, the control returns to the main routine. On the other hand, when window 32 can be moved, the control advances to Step S4.
  • Step S4 in accordance with the amounts of movement of X direction and Y direction of window 32 obtained in Step S2, MPU 17 moves the image on VRAM 16. Further, the position of window 32 on image 31 after the movement is stored in memory 11. This position will be referred to the next time in Step S3. For instance, if window 32 is moved from 32C to 32D as shown in Fig. 6, 5 the image of the hatched part 32E before the movement will be displayed even after the movement. Thus, as shown in Fig. 7, image data of each dot whose address is (X, Y) in VRAM 16 is shifted to a position whose address is (X - ⁇ x, Y - ⁇ y), thereby shifting window 32 from the state shown in Fig. 8A to the state shown in Fig. 8B (Step S4). When window 32 is close to edge of image 31 , and l o window 32 cannot move in X and/or Y directions fully, the shift is performed as much as possible.
  • Step S5 new image data is developed on the vacant area 32F of VRAM 16 after shifting the image data. If the image to be developed is a raster image (bitmap image), the image data is read from memory 11 or external
  • the read image data is developed in the vacant area 32F of VRAM 16.
  • the image to be developed is a vector image
  • the vector data is expanded or evaluated (i.e., generating shapes based on vector commands) prior to being displayed on CRT17.
  • only vector data corresponding to the vacant area 32F needs to be expanded during
  • vector data represents an image as a collection of lines or shapes (e.g., square, circle, etc.).
  • Vector data is typically presented in the form of
  • An example of a vector command is: OVAL x, y, r,, r 2 , [other parameters]; where x and y are the coordinates of the center of the oval and r, and r 2 are the major and minor radii of the oval.
  • the "other parameters" could include color, types of line (e.g., solid or dashed), etc.
  • One aspect of the present invention is to add parameters to the vector commands so as to indicate whether a command needs to be expanded when only a portion of an image generated from vector commands is displayed on a monitor.
  • Fig. 9 shows an oval 682 expanded from the above mentioned "OVAL" vector command.
  • Oval 682 is enclosed by an imaginary rectangle 684.
  • the position and dimension of the rectangle is completely defined by two points 686 and 687 having coordinates (P 1( Q and (P 2 , Q 2 ).
  • these extra coordinates are added to the list of parameters.
  • the above vector command would be changed to:
  • a square is preferably used to enclose a circle.
  • a polygon i.e., a shape bounded by a plurality of straight lines
  • the coordinates of the corners of the polygon can be added to the list of parameters.
  • a new image should be developed in the vacant area 32F and need to be added to the image in portion 32E in order to create the scrolled image.
  • the bits in VRAM 16 corresponding to portion 32E are moved to their new position. All the vector commands are examined to determine whether the enclosing polygon falls within vacant area formed by sifting the bits in the portion 32E. This step can be performed easily by determining whether at least a part of the enclosing polygon defined by the extra coordinates in the vector commands falls within vacant area 32F.
  • the bits developed in portion 32E are moved in VRAM16, and it is determined whether a part of a rectangle defined by coordinates (P 1f QJ and (P 2 , Q 2 ) falls within vacant area 32F. If the part of the rectangle falls within vacant area 32F, the "OVAL" vector command is evaluated, the bitmap image corresponding to vacant area 32F is generated as a part of the oval, and they are stored in vacant area 32F.
  • the scroll processing shown in Fig. 4 is performed every specified period in response to, for example, the interruption of software timer while the right button of mouse 13 is pressed.
  • the image displayed in window 32 will be scrolled continuously.
  • l o The amounts of movements ⁇ x and ⁇ y change depending on the distances between the center point Pr of window 31 and cursor 33.
  • the scroll speed changes by changing the distance between the center point Pr and cursor 33.
  • bitmap and vector data can be applied to the case where window 32 is used to simultaneously displaying a bitmap and a vector image, i.e., the same window contains an image generated 20 from bitmap data and an image generated from vector data).
  • a bitmap image is loaded into VRAM 16 and a vector image is then loaded into memory 16. Portions of the bitmap and the vector images may overlap. Thus, one image may appear to be located on top of the other image.
  • the direction of 25 the scrolling will change corresponding to the position of cursor 33.
  • the scroll speed changes in accordance with the distance (distances in x and y directions) between the center point Pr and cursor 33. Therefore, the display image can be easily scrolled at an arbitrary speed and toward a desired direction by operating mouse 13. Only those vector commands having at least a portion of their enclosing polygons fall within portion 32F need to be evaluated in order to create the scrolled image. As a result, the amount of computation for generating images is greatly reduced.
  • the scroll speed may be too slow or too fast.
  • the constant Q which is used for dividing the distance . and Y s in step S2
  • the constant Q may be changed arbitrarily through keyboard 14 by the user.
  • the constant Q By making the constant Q large, the scroll speed will become slow, and by making the constant Q small, the scroll speed will become fast.
  • a constant Q x of the X direction, and a constant Q y of the Y direction may be different from each other.
  • the scroll speed and the scroll direction are arbitrary changed in response to the distance and the direction from the reference point to cursor 33.
  • the scrolling direction may be fixed to, for example, only the vertical direction or the horizontal direction.
  • the scrolling speed may be fixed.
  • each cursor is arbitrary. Although the center of the window is used as the reference point, other arbitrary points such as the center of the display screen may be selected as the reference point. (Second Embodiment)
  • the display image was only scrolled. However, together with scrolling, it is possible to perform arbitrary processing on the image.
  • a button for designating the editing function is displayed at the upper right corner of window 32. By clicking at this button, a tool box shown in Fig. 10 is displayed. This tool box contains edit buttons 41 to 44 for designating functions such as drawing of straight lines, drawing of continuous lines, making of polygons, erasing of image from the left hand side.
  • edit button 41 in the tool box is clicked.
  • This clicking operation is notified to MPU 12 from I/O 15.
  • MPU 12 responds to this notification and a menu (not illustrated) for selecting the number of lines, thickness, color, etc. is selected. The user selects an arbitrary one from this menu. MPU 12 saves the information that has been selected.
  • the user moves the cursor to the ending point of the straight line.
  • image 31 is scrolled as required.
  • MPU 12 obtains the straight line that connects the starting point and the cursor (for example, in Step S4 of Fig. 4).
  • the part which is located in window 32 is written into VRAM 16 and displayed on CRT 17.
  • MPU 12 saves the coordinates (X E , Y E ) of the cursor.
  • this straight line is output based on the parameters (such as coordinates (Xp, Y p ) and (Xg, Y E ), thickness, color) together with image 31. In this way, as shown in Fig. 11, it is possible to draw a line into a range which exceeds window 32.
  • MPU 12 When drawing a continuous line on image 31, the edit button 42 in the 5 tool box is clicked. In response to the selection of edit button 42, MPU 12 will display a menu (not illustrated) for selecting the thickness of the line, and so forth. From this menu, the user selects an arbitrary thickness, color, etc. These information are saved.
  • image 31 is scrolled as required.
  • MPU 12 writes into VRAM 16 the 15 part which is located inside of window 32, and displays this (for example, in Step S4 of Fig. 4).
  • the position of the cursor when the left button is clicked is saved in MPU 12.
  • the cursor When the cursor reaches the final point of a continuous line, the user double clicks the left button of mouse 13.
  • the continuous 0 line is fixed, and information such as the coordinates of each point which defines the continuous line and the thickness of the lines are stored together with image 31.
  • edit button 43 in the tool box is clicked.
  • MPU 12 will display a menu (not illustrated) for selecting the type of borderlines for the polygon, color and texture inside and / or outside of the polygon. The user selects arbitrary ones from this menu.
  • edit button 44 of the tool box is clicked.
  • MPU 12 displays a menu (not illustrated) for selecting the mode of erasing. For instance, it is also possible to erase display data on the locus of the cursor. Moreover, it is also possible to draw an arbitrary polygon, and erase the image inside of the polygon. The user selects an arbitrary mode.
  • MPU 12 erases display data on the locus or inside or outside of the polygon on VRAM 16. Finally, a message to confirm the contents of erasure is displayed. If the user confirms it, corresponding erasure processing is also executed on the display data of image 31 stored in memory 11.
  • a mouse was given as an example of input device for scrolling as well as instructing its speed and direction, but it is possible to use arbitrary composition such as keyboard, joystick, track (control) ball, etc. Further, as for the display device, it need not be CRT, and an arbitrary composition such as LCD may be used. (Third Embodiment)
  • a graphic file is a very large file (many million bytes) which needs to be stored in a hard disk.
  • a novel data transfer device is used for effective scrolling in these cases, and will described below in detail.
  • Fig. 14 is a block diagram of a computer system of the present invention containing the data transfer device.
  • Fig. 15 is a schematic diagram of a software system 700 in a Microsoft MS Windows based environment executing on computer system 600 of Fig. 14.
  • computer system 600 is a IBM-compatible personal computer.
  • Software system 700 comprises MS Windows 702 running on top of an operating system 704 (in this case, Microsoft's MS-DOS working in combination with the computer's "basic input/output system," or BIOS).
  • Operating system 704 monitors and controls the resources of computer system 600.
  • MS Windows is a complicated software containing many program modules and layers of procedure calls, shown schematically in Fig. 3 as dashed lines 706-709.
  • Windows-based application programs 722 and 723 run on top of MS Windows 702.
  • Operating system 704 is a conventional software containing a conventional hard disk driver 726. The driver communicates with a conventional disk controller (not shown) and controls a conventional hard disk (not shown). It allows an application program to control and access the conventional hard disk.
  • the conventional hard disk is used to store operating system and application programs. Graphic data used in scrolling is stored in hard disk 638 of the present invention. Hard disk 638 and data transfer board 622 are controlled by a new data transfer driver 714 and scrolling is controlled by a new scrolling routine 716. Scrolling routine 716 uses the scrolling methods disclosed above.
  • a conventional hard disk driver is provided as a ROM based device service routine (DSR). This routine is part of the BIOS, which composes of an operating system, device drivers and shell.
  • the hard disk DSR is accessed by invoking an INT 13 function.
  • the DSR communicates with and controls an industrial standard hard disk controller. It allows an application program to perform many operations to the hard disk, including read, write, initialize, test, format, etc. It also returns status information (e.g., error codes) to the application program.
  • data transfer driver 714 on one hand and MS Windows 702 and operation system 704 on the other hand.
  • data transfer driver 714 and scrolling routine 716 should be written such that it can communicate with applications 722 and 723 through simple Windows messages. It is found that this arrangement improves execution speed because less overhead is required.
  • data transfer driver 714 and scrolling routine 716 are shown schematically to be positioned below only dashed line 706. Thus, applications 722 and 723 can communicate with data transfer driver 714 and scrolling routine 716 without going through a long chain of MS Windows modules.
  • data transfer driver 714 take advantages of a novel design in data transfer board 622 so that the retrieval of data from hard disk 638 can take place simultaneously with the scrolling operation of the present invention. As a result, there is no need to compete for CPU resources.
  • Fig. 16 shows a block diagram of a data transfer device 110 of the present invention.
  • device 110 is in the form of a peripheral board which could be used as data transfer board 622 of Fig. 14. However, device 110 could be fabricated on a single semiconductor chip and mounted on a mother board.
  • Device 110 contains leads 142 and 144 which can be coupled to peripheral bus 614 and hard disk 638, respectively, of Fig. 14. Lead 142 is connected to a bus interface 106 for matching electrical signals between data transfer device 110 and the rest of computer system 600 of Fig. 1.
  • Data transfer device 110 controls data transfer between hard disk 638 on one hand and system RAM 606 and/or VRAM 618 (referred to collectively as the "internal RAM”) on the other hand.
  • Device 110 contains a "small computer system interface” (SCSI) controller 122, which communicates data and control information with hard disk 638 in the standard SCSI protocol.
  • SCSI small computer system interface
  • the design of such a controller is well known in the art and will not be discussed here.
  • SCSI controller 122 is preferably in the form of a semiconductor chip.
  • SCSI controller 122 is connected to a SCSI processing circuit 124.
  • SCSI processing circuit 124 is connected to bus interface 106 and a timing adjustment circuit 130.
  • SCSI processing circuit 124 performs the following operations: (1) receives commands and status information from CPU 604 via bus interface 106; (2) controls hard disk 638 (through SCSI controller 122) in accordance with these commands and status information ;(3) in cooperation with timing adjustment circuit 130, transfers data to and from a RAM processing circuit 132 ; and (4) sends status information to CPU 604 via bus interface 106.
  • SCSI processing circuit 124 can activate and deactivate the transfer of data to and from hard disk 638.
  • the status signals generated by SCSI processing circuit 124 could be used by data transfer driver 714 which is designed to work with data transfer device 110.
  • hard disk 638 conforms to the SCSI standard.
  • the present invention is equally applicable to hard disks conforming to other standards, e.g., IDE (integrated drive electronics) or EIDE (enhanced integrated drive electronics).
  • data is not directed transferred between hard disk 638 and the internal RAM of computer system 600. Instead, data is temporarily stored in a pair of random access memory devices inside data transfer device 110 (shown as RAM A and RAM B). Data transfer by RAM A and RAM B is fast. On the other hand, data transfer by hard disk 638 is typically slow and not synchronous to the data transfer of RAM A and RAM B. Timing adjustment circuit 130 serves to coordinate and synchronize the hard disk 638 and RAM A/RAM B data transfer.
  • SCSI processing circuit 124 contains a status processing circuit 146 (for receiving, processing and generating status signals) and a data flow circuit 148 (for controlling the transfer of data to and from hard disk 638).
  • status processing circuit 146 for receiving, processing and generating status signals
  • data flow circuit 148 for controlling the transfer of data to and from hard disk 638.
  • Timing adjustment circuit 130 is connected to a RAM processing circuit 132.
  • This RAM processing circuit 132 is also connected, via bus interface 106, to CPU 604 and the internal RAM.
  • RAM processing circuit 132 is connected to RAM A and RAM B inside data transfer device 110.
  • RAM processing circuit 132 comprises a switch 134 for connecting RAM A and RAM B on one hand to timing adjustment circuit 130 and bus interface 106 on the other hand. Specifically, if it is desirable to transfer data between SCSI processing circuit 124 to either RAM A or RAM B, switch 134 causes timing adjustment circuit 130 to be connected to the appropriate memory. Similarly, if it is desirable to transfer data between internal RAM to either RAM A or RAM B, switch 134 causes bus interface 106 to be connected to the appropriate memory device in data transfer device 110. It should be note that RAM A may be connected to either timing adjustment circuit 130 or bus interface 106 at a given time, but cannot be simultaneously connected to both timing adjustment circuit 130 and bus interface 106.
  • RAM B may be connected to either timing adjustment circuit 130 or bus interface 106 at a given time, but cannot be simultaneously connected to both timing adjustment circuit 130 and bus interface 106. Also, data cannot be directly transferred between timing adjustment circuit 130 and bus interface 106. The detailed operation of switch 134 in connection with the transfer of data will be described below.
  • RAM processing circuit 132 contains two byte processing unit. Each unit contains a counter and means for matching the electrical signal between RAM A or RAM B 5 and RAM processing unit 132. These units will be referred to as counters 136 and 138.
  • RAM processing circuit 132 monitors the transfer of data from/to RAM A and RAM B and decrement/increment the value of counters 136 and 138, respectively. As a result, the values of counters 136 and 138 provide an indication of the amount of data stored in RAM A and RAM B, respectively.
  • l o Another function of RAM processing circuit 132 is to receive commands and status information from CPU 604 via bus interface 106. RAM processing circuit 132 then controls the transfer of data between internal RAM on one hand and RAM A and RAM B on another hand in accordance with the received commands and status information. RAM processing circuit 132 may also send
  • a status processing circuit 152 is included in RAM processing circuit 132 to perform these functions.
  • RAM A and RAM B static RAMs are preferably used.
  • RAMs such as
  • the transfer of data between internal RAM on one hand and RAM A and RAM a on the other hand can be handled by CPU 604 directly (e.g., by issuing data transfer instructions to the CPU) or via conventional direct memory access
  • DMA Dynamic Multiple Access
  • SCSI processing circuit 124, RAM processing circuit 132, timing adjustment circuit 130, and bus interface 106 are fabricated on a single semiconductor chip 140.
  • data transfer board 622, data transfer driver 714, and scrolling routine 716 act in a cooperative manner to achieve fast data transfer and scrolling.
  • an application software such as application 722 issues instructions to data transfer driver 714 to retrieve a certain amount of graphic data from hard disk 638 and load to the internal RAM. The newly loaded data will be used for scrolling by scrolling routine 716.
  • a flow chart 180 in Fig. 17 is used in connection with this example.
  • Data transfer driver 714 issues an initialization command to SCSI processing circuit 124 and RAM processing circuit 132 (step S182).
  • SCSI processing circuit 124 then initializes (through SCSI controller 122) hard disk 638 so that it is ready to retrieve and transfer data.
  • RAM processing circuit 132 sets the values of counters 136 and 138 to zero and sets switch 134 to connect timing adjustment circuit 130 to RAM A.
  • RAM processing circuit 132 retrieves data from SCSI processing circuit 124 (after processing by timing adjustment circuit 130) and transfers same to RAM A. As a result, data is read from hard disk 638 and loaded into RAM A (step S184).
  • CPU 604 is not involved. Thus, it can perform other functions, including executing scrolling routine 716.
  • RAM processing circuit 132 uses counter 136 to determine whether the amount of data in RAM A has reached a predetermined value (step S186). If this value is not reached (i.e., RAM A has room to accept additional data), data from SCSI processing circuit 124 (and hard disk 638) continues to flow to RAM A (step S188), after processing by timing adjustment circuit 130. When RAM A is not able to accept data, RAM processing circuit 132 causes switch 134 to connect timing adjustment circuit 130 to RAM B. As a result, data is read from hard disk 638 and loaded into RAM B (step S190). At this time, RAM processing circuit 132 sends a status signal (e.g., an interrupt) to data transfer driver 714 informing it that data in RAM A can be transferred to internal RAM (step S192).
  • a status signal e.g., an interrupt
  • step S194 data transfer driver 714 then determines whether CPU 604 is busy (i.e., not ready to transfer data). If CPU 604 is busy in performing other tasks (including executing scrolling routine 716), data transfer driver 714 will wait. If CPU 604 is available for processing data, data transfer driver 716 sends a command to RAM processing circuit 132, which causes switch 134 to connect bus interface 106 to RAM A (step S196). At this time, data can be transfer from RAM A to internal RAM (step S198). Note that the above described step S190 (i.e., transfer data from hard disk 638 to RAM B) can be performed simultaneously with steps S192 to S198. Typically, the time for performing step S 190 is longer than the time for performing steps S192-S198.
  • RAM processing circuit 132 can send a status signal to data transfer driver 714 when step S198 (i.e., from RAM A to internal RAM) is completed (step S200).
  • Data transfer driver 714 can issue a command to scrolling routine 716 to process the new data loaded into internal RAM (step S202).
  • RAM processing circuit 132 uses counter 138 to determine whether the amount of data in RAM B has reached a predetermined value (step S204). If this value is not reached (i.e., RAM B has room to accept data), data continues to be loaded into RAM B from hard disk 638 (step S206). When RAM B is not able to accept data, RAM processing circuit 132 causes switch 134 to connect timing adjustment circuit 130 to RAM A again. Flow chart 180 branches back to step S184 via path S208, and the above described steps regarding transferring of data to RAM A will be performed. At the same time, RAM processing circuit 132 sends a status signal to data transfer driver 714 informing it that data in RAM B can be transferred to internal RAM (step S210).
  • step S212 data transfer driver 714 then determines whether CPU 604 is busy (i.e., cannot transfer data out of RAM B). If CPU 604 is busy in performing other tasks (including executing scrolling routine 716), data transfer driver 714 will wait. If CPU 604 is available, data transfer driver 714 sends a command to RAM processing circuit 132, which causes switch 134 to connect bus interface 106 to RAM B (step S214). As a result, the data stored in RAM B can be transferred to internal RAM (step S216). As pointed out before, steps S210-S216 could occur simultaneously with the transferring of data from hard disk 638 to RAM A (i.e., step S184).
  • RAM processing circuit 132 can send a status signal to data transfer driver 714 (step S218), which then issues a command to scrolling routine 716 to process the new data loaded into internal RAM (step S220).
  • the application programs (through data transfer driver 714) determine the amount of data to be transferred from hard disk 638 to internal RAM. The above described cycles continue until all the required data is transferred to internal RAM.
  • RAM A and RAM B are always available for disk data transferring because the data stored therein should have already been transferred to internal RAM. If both RAM A and RAM B are not available for disk data transfer, data transfer driver 714 should delay disk transferring operation until one of them is available.
  • Fig. 18 shows the relative timing between SCSI cycles and internal memory cycles of data transfer device 110 in Fig. 16.
  • Timing diagram 280 shows the transfer of data between hard disk 638 and RAM A/RAM B.
  • reference numerals 282 and 283 correspond to time intervals for transferring data between hard disk 638 and RAM A while reference numerals 286 and 287 correspond to time intervals for transferring data between hard disk 638 and RAM B.
  • Time intervals for switching between RAM A and RAM B, designated 5 as reference numeral 285, are much shorter than the time intervals for transferring data. This is because the switching is performed electronically using semiconductor elements in RAM processing circuit 132.
  • Timing diagram 270 shows the transfer of data between internal RAM and RAM A RAM B.
  • reference numerals 272 and 273 correspond to l o time intervals for transferring data between internal RAM and RAM A while reference numerals 276 and 277 correspond to time intervals for transferring data between internal RAM and RAM B. Note that the time intervals 272, 273, 276, and 277 (for internal RAM transferring) are much shorter than time intervals 282, 283, 286 and 287 (for hard disk transferring). As pointed out
  • computer system 600 can perform other functions (e.g., scrolling and other operations) during time intervals 282, 283, 286 and 287 for hard disk transferring. In effect, the scrolling operation and transfer of data from hard disk 638 are performed in parallel. As a result, the throughput of computer system 600 is much higher than conventional systems.
  • functions e.g., scrolling and other operations
  • RAM A and RAM B are not cache memory. Thus, there is no need to include circuit for detecting hits and misses and for replacing a portion of the memory in accordance with the frequency of hits.
  • the circuit of the present invention is simple and fast.
  • the graphic data is stored in hard disk 638 and 5 needs to be loaded into VRAM 618 so that it can be displayed on monitor 630. If the graphic data is retrieved from hard disk 638 and loaded into VRAM 618 every time an image is updated as a result of scrolling, this could cause excessive amount of disk access.
  • a portion of system RAM 606 is used to temporarily store a portion of the 0 graphic data. If the size of the portion in system RAM 606 is larger than the size of VRAM 618, the new image could be constructed from the graphic data in system RAM 606 if the amount of scrolling is small. In this case, hard disk 638 does not have to be accessed.
  • Fig. 19 shows the relationship between the graphic data in VRAM 618, 5 system RAM 606 and the hard disk 638. Components that are the same in Figs. 14 and 19 are designated by the same reference numerals.
  • the size of VRAM 618 is about 1 megabyte.
  • a portion 682 of VRAM 618 is devoted to window 632.
  • portion 682 contains graphic data that is associated with the image displayed in window 632.
  • the recommended size of system RAM 606 for o computer capable of running Microsoft's Windows environment is more than 8 megabytes. Many computer users install more than 16 megabytes of RAM in their system. Even though part of system RAM 606 is used for other purposes, the size of system RAM 606 available for storing graphic data can be more than the size of portion 682.
  • a portion 684 of system RAM 606 is used to temporarily store the graphic data.
  • a portion 686 inside portion 684 contains graphic data corresponding to the graphic data contained in portion 682 of VRAM 18.
  • the graphic data for the complete image is shown in Fig. 19 as numeral 690. It is preferably stored as a file in hard disk 638. Hard disk 638 may contain many sets of graphic data, each corresponding to a different image. A portion 692 of graphic data inside data 690 corresponds to the graphic data contained in portion 684 in system RAM 606. Because portion 682 of VRAM 618 (and consequently portion 686 of system RAM 606) is much smaller than portion 684 of system RAM 606, it is possible to scroll in window 632 without accessing hard disk 638 if the graphic data corresponding to the new image is stored in portion 684.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A window (32) is formed on an image, and a part of the image is displayed through the window (32). A cursor (33) is displayed in the window (32), and a distance between a specified reference point (Pr) and a cursor (33), and a direction (34) of the cursor (33) with respect to the reference point (Pr) are determined. The image is scrolled at a speed corresponding to the determined distance, and in the determined direction.

Description

DESCRIPTION
DATA PROCESSING DEVICE AND SCROLLING METHOD
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates to a data processing device and a scrolling method which can scroll an image in an arbitrary direction at an arbitrary speed. The present invention also relates to methods and apparatus for increasing the speed of scrolling images displayed on a computer monitor.
Description of the Related Art When computers were first developed, they were very expensive. As a result, only large research institutions and corporations could afford to buy them. Consequently, computers were primarily being used to solve scientific problems (e.g., simulating the behavior of fluid) and support business operations of large corporations (e.g., processing accounting and customer records of insurance companies). The software programs designed for these purposes communicate with users using numbers and text. The users of these software programs were technically trained, and were comfortable in such environment. Thus, there were little needs for these program to present information in graphic or image forms.
During the past few years, the price of computers decreased drastically. Computers are now purchased by many homes and small businesses. The users are more comfortable in dealing with graphic images (such as bitmap images, vector images and video). As a result, computer environments involving graphic user interface (such as Microsoft Corporation's Windows and Macintosh computer's System 7 operating system) become popular. Consequently, most new computer programs are designed to operate in these environments. For example, many widely used word processor programs have been ported from their text-based environment (operating under Microsoft's MS-DOS) to the graphic-based Windows environment. One advantage of using word processor under this new environment is that the image of a page on a computer monitor has the same appearance as the page printed out of a printer. Thus, the user can see the appearance of a document (and make revisions if the appearance needs to be changed) prior to its printing.
An essential tool in manipulating graphic images is scrolling. The need for scrolling arises when the size of a window displaying a graphic image is smaller than the full size of the image. Thus, the window can display a portion of the image only. In order to display other portions of the image, a user can "scroll" the image. Typically, the user uses a cursor to indicate the direction of scrolling. The position of the cursor is controlled by a mouse (or other pointing devices) held by the user. The location of the cursor is delivered to the operating system and the application software (e.g., word processor program) controlling the graphic image. The images on most display devices need to be refreshed (i.e., re-drawn) periodically, e.g., sixty times per second. During scrolling, the refreshed images would show a series of shifted images depicting movements of the graphic file. The operating system and the application software use the position of the cursor to determine how the series of images should be drawn. If the operating system and the application software cannot draw these images efficiently, it may take an intolerably long time for the series of images to appear (i.e., the scrolling is slow). The user may become impatient, and will be less incline to use the computer or software.
One method to speed up scrolling is to install a more powerful microprocessor in a computer. Another method is to use specialized semiconductor chips (e.g., "graphic accelerator" chips) which are designed to optimize graphic computations. These methods increase the throughput of all graphic operations, and are not specifically designed to improve the speed of scrolling.
In some graphic applications, the speed of scrolling is an important factor limiting the performance of a computer system. The above described prior art methods may not provide a cost effective solution to this problem. Further, when the graphic file is large and the application is complex, even the most powerful microcomputer and the fastest graphic accelerator may not be able to provide acceptable performance without additional help. Thus, there is a need to have a method which is specifically designed to increase the speed of scrolling.
In the conventional image scrolling method, the image can be scrolled only in the vertical direction or horizontal direction in accordance with an instructions of, for instance, cursor keys. The image can not be scrolled in an arbitrary direction. In addition, the scrolling speed is fixed, and the image can not be scrolled at an arbitrary speed.
SUMMARY OF THE INVENTION
The present invention was made in view of the situation, and its object is to provide a data processing device and a scrolling method which can scroll an image in an arbitrary direction at an arbitrary speed and a scrolling method which can scroll an image at a high speed.
Another object of the present invention is to provide a data processing device and a scrolling method having good operability. In order to achieve the objects, a data processing device of a first aspect of the present invention comprises: means for displaying an image and a cursor; position control means for controlling a position of the cursor in response to external operations; determining means for determining a distance between a predetermined reference point and the cursor; and scrolling means for scrolling the image at a speed corresponding to the distance determined by the determining means.
A data processing device of a second aspect of the present invention comprises: means for displaying an image and a cursor; position control means for controlling a position of the cursor in 'esponse to external operations; determining means for determining a direction of the cursor with respect to the predetermined reference point, and scrolling means for scrolling the image in a direction corresponding to the direction determined by the determining means. A data processing device of a third aspect of the present invention comprises: a display data memory for storing display data; display means for displaying the display data stored in the display data memory; input means for inputting data; cursor display means for displaying a cursor on the display means in response to an instruction indicating a starting of scroll input by the input means; position controlling means for controlling a position of the cursor in response to the instruction input by the input means; determining means for determining a distance between the a reference point and the cursor; and scrolling means for scrolling the image displayed on the display means, by shifting the display data stored in the display data memory at a speed corresponding to the distance determined by the determining means and developing new display data in a vacant area formed by the shifting of the display data. A data processing device of a fourth aspect of the present invention comprises: a display data memory for storing display data; display means for displaying the display data stored in the display data memory; input means for inputting data; cursor display means for displaying a cursor on the display means in response to an instruction indicating a starting of scroll input by the input means; position controlling means for controlling a position of the cursor in response to the instruction input by the input means; determining means for determining a direction of the cursor with respect to the reference point; and scrolling means for scrolling the display image by shifting the display data in the display data memory to the direction determined by the determining means or its opposite direction, and developing a new display data in the vacant area.
The predetermined reference point may be a substantial center point of a window. The device of the first and third aspects may include means for setting a scrolling speed for each distance determined by the determining means. The data processing device according to the first to fourth aspects of this invention can include means for executing the specified processing on the display data shifted by the scrolling means.
A scrolling method of a fifth aspect of the present invention comprises: a step of forming a window on a image, and displaying a part of the image via the window; a step of displaying a cursor on the window; a step of instructing scrolling; a determining step of responding to the instruction step and determining the distance between the specified reference point and the cursor; and a scrolling step of scrolling the image in the window at a speed corresponding to the distance determined in the determining step.
A scrolling method of a sixth aspect of the present invention comprises: a step of forming a window on a image, and displaying a part of the image via the window; a step of displaying a cursor on the window; a step of instructing scrolling; a step of determining a direction of the cursor with respect to the specified reference point; and a step of scrolling the image to the direction corresponding to the direction determined by the determining step.
The scrolling step may include a step of executing a specified processing to the image which is being scrolled. Further, at the time of scrolling, an arbitrary processing such as drawing a line, and erasing and reversing of the image may be done.
According to the device and method, by controlling the position of the cursor, the image can be scrolled at a desired speed or to a desired direction.
The reference point may be either of the center of the window or the center of the display screen.
According to a seventh aspect of the present invention, there is provided a method for scrolling an image of a vector graphic file in response to positions of a cursor, the image being generated from data loaded into an area of a semiconductor memory device related to a display device, the scrolling involving display a first image containing a first portion of the graphic file at a first time and a second image containing a second portion of the graphic file at a second time, the image comprising a plurality of shapes each associated with a vector command of the vector graphic file, which method comprises the steps of:
(a) providing the vector graphic file with at least one vector command for one of the shapes, the vector command containing parameters obtained from the following steps:
(i) determining a set of coordinate data corresponding to a polygon enclosing the one shape; and
(ii) including the set of coordinate data in the at least one vector command; and
(b) performing scrolling operation using the set of coordinate data by performing the following steps: (i) determining a new portion of the graphic file which needs to be loaded to the area of the memory device in order to generate the second image, the new portion being a function of the positions of the cursor;
(ii) determining by using the set of coordinate data whether a portion of the polygon falls within the new portion of the graphic file; and (iii) expanding the at least one vector command only if the portion of the polygon falls with the new portion.
The step of performing scrolling operation can include the steps of: (i) finding a common portion of the graphic file which is common to the first portion and the second portion, the common portion being located in a first region of the area of the memory device at the first time; and
(ii) moving the common portion from the first region to a second region in the area of the semiconductor memory device, the location of the second region being determined by the cursor; and (iii) loading at least a portion of the one shape expanded from the at least one vector command into the area of semiconductor device; the finding, moving and loading steps being completed prior to the second time. With this structure, when the vector image is scrolled, the common portion before and after scrolling is moved in the memory device, and only the new portion is developed using the vector command. As a result, the amount of computation of evaluating the vector command is reduced, thus the speed of scrolling is improved.
According to an eighth aspect of the present invention, there is provided a method for scrolling an image of a graphic file in response to positions of a cursor, the image being generated from data loaded into an area of a semiconductor memory device related to a display device, the scrolling involving display a first image containing a first portion of the graphic file at a first time and a second image containing a second portion of the graphic file at a second time, which method comprises the steps of:
(a) determining a common portion of the graphic file which is common to the first portion and the second portion, the common portion being located in a first region within the area of the semiconductor memory device at the first time; (b) moving the common portion from the first region to a second region inside the area of the semiconductor memory device, the location of the second region being determined by the cursor;
(c) determining a new portion of the graphic file which is in the second portion but not in the first portion of the graphic file; and (d) loading the new portion to a third region of the semiconductor memory device such that the second and the third regions occupy the area of the semiconductor memory device; the steps (a), (b), (c) and (d) being executed prior to the second time. For example, the graphic file is stored in a hard disk and the semiconductor memory device includes a display memory.
The loading step can include the steps of: retrieving the new portion from the hard disk to system random access memory; and transferring the new portion from the system random access memory to the display memory.
With this structure, when the image is scrolled, the common portion before and after scrolling is moved in the memory device, and only the new portion is loaded. As a result, the amount of data needs to be loaded is reduced, thus the speed of scrolling is improved.
The image may comprise a superposition of a bitmap image and a vector image, and graphic file may contain a bitmap file and a vector file, and the vector image may include a plurality of Shapes each associated with a vector command.
The method can further include the steps of:
(a) providing the vector file with at least one vector command for one of the shapes, the vector command containing parameters obtained from the following steps: (i) determining a set of coordinate data corresponding to a polygon enclosing the one shape; and
(ii) including the set of coordinate data in the at least one vector command; and
(b) performing scrolling operation using the set of coordinate data by performing the following steps:
(i) determining a new portion of the vector file which needs to be loaded to the area of the memory device in order to generate the second image, the new portion being a function of the positions of the cursor; (ii) determining by using the set of coordinate data whether a portion of the polygon falls within the new portion of the vector file; and
(iii) expanding the at least one vector command only if the portion of the polygon falls within the new portion. With this structure, when the image is scrolled, only the bitmap data correspond to the new portion is loaded, and only the vector data correspond to the new portion is developed using the vector command. As a result, the amount of data needs to be loaded and the amount of computation of evaluating the vector command are reduced. Thus, the speed of scrolling is improved.
According to an ninth aspect of the present invention, there is provided a system for fast scrolling of an image of a graphic file in response to positions of a cursor, the graphic file being stored in an external memory device, the image being generated from data loaded into an area of a semiconductor memory device related to a display device, the scrolling involving displaying a first image containing a first portion of the graphic file at a first time and a second image containing a second portion of the graphic file at a second time, the system comprising: a dual memory storage device comprising: a retrieval circuit for retrieving graphic data in the graphic file from the external storage device; - a first memory device; a second memory device; an interface circuit for allowing data stored in the first and the second memory devices to be output from the dual memory device; a first circuit for alternatively switching the retrieval circuit to the first memory device and the second memory device for allowing the graphic data to store in the first and the second memory devices, and for alternatively switching the interface circuit to the first memory device and the second memory device; a second circuit for generating status signals upon the switching; and a software module comprising: means for determining a common portion of the graphic file which is common to the first portion and the second portion, the common portion being located in a first region of the semiconductor memory device at the first time; means for moving the common portion from the first region to a second region in the area of the semiconductor memory device, the location of the second region being determined by the cursor; means for determining a new portion of the graphic file which is in the second portion but not in the first portion of the graphic file; means for causing the dual memory storage device to retrieve the new portion from the external storage device; and means, responsible to the status signals for causing the retrieved new portion to be loaded into a third region of the semiconductor memory device prior to the second time, the second and the third regions occupying the area of the semiconductor memory device.
The first circuit can include: a first counter coupled to the first memory device for determining an amount of data stored in 1he first memory device; a second counter coupled to the second memory device for determining an amount of data stored in the second memory device; means for generating a first signal when the amount of data stored in the first memory device exceeds a first predetermined value; means for generating a second signal when the amount of data stored in the second memory device exceeds a second predetermined value; a third circuit for communicating data with the retrieval circuit; a fourth circuit for communicating data with the interface circuit; and a data switching circuit for alternatively coupling the first memory device to one of the third and the fourth circuits in response to the first signal and for alternatively coupling the second memory device to one of the first and the second circuits in response to the second signal.
With this structure, using the dual memory device, the data to be scrolled is transferred from external memory device to one memory device while the data from another memory device is output to the internal memory. Thus, the data can be transferred between the external memory device and the internal memory continuously.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of the data processing device of the first embodiment of the present invention; Fig. 2 is a drawing for explaining a state in which the window is opened on the image;
Fig. 3 is a drawing for explaining the scroll processing; Fig. 4 is a flowchart for explaining the scroll processing; Fig. 5 is a drawing showing a window located at an edge of the image; Fig. 6 shows the state of the window before and after shifting the window;
Fig. 7 is a drawing for explaining the method of shifting the image data in a display memory (image memory);
Figs. 8A and 8B are drawings for explaining the method of shifting the image data in the display memory; Fig. 9 shows the generation of extra coordinates related to vector data of the present invention.
Fig. 10 shows an example of an Edit Bar for image processing;
Fig. 11 is a drawing showing a state in which a straight line is drawn on an image;
Fig. 12 is a drawing showing a state in which a continuous line is drawn on an image; and
Fig. 13 is a drawing showing a state in which a polygon is drawn on an image.
Fig. 14 is a block diagram of a computer system of the present invention.
Fig. 15 is a schematic diagram of a software system of the present invention. Fig. 16 is a block diagram of a data transfer device of the present invention.
Fig. 17 is a flow chart showing the operation of the data transfer device of the present invention .
Fig. 18 is a timing diagram showing the relative timing between SCSI cycles and internal memory cycles of the. data transfer device of Fig. 16.
Fig. 19 is a schematic diagram showing the relationship between graphic data in VRAM, system RAM, and a hard disk of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Explanation of the data processing device and the scrolling method of the embodiments of the present invention will now be described. (First Embodiment)
Fig. 1 shows a structure of the data processing device of the first embodiment of the present invention. As shown the data processing device includes: a memory 11 , an MPU
(Micro Processor Unit) 12, a mouse 13, a keyboard 14, an I/O port 15, a VRAM (Video RAM; display data memory) 16, a CRT 17, an external storage device 18, and a bus 19. Memory 11 stores a program related to data processing, in particular, it stores a program for displaying and scrolling an image. MPU 12 operates in accordance with the program stored in memory 11. In particular, it processes image data and stored display data into VRAM 16. I/O port 15 transfers the data input from mouse 13 and keyboard 14 to MPU 12. VRAM 16 stores bitmap data which defines a display image. CRT 17 displays the bitmap data stored in VRAM 16. External storage device 18 may be a hard disk device, CD-ROM device and so on, and stores image files. Bus 19 transfers data between the components. The operation of the data processing device will be described below,
In accordance with the program stored in memory 11 , for instance, as shown in Fig. 2, MPU 12 forms a window 32 on a virtual large image 31 , and displays a part of image 31 via window 32. Window 32 and image inside of window 32 are stored in VRAM 16 in the form of bitmap, and displayed on CRT 17.
Image 31 is an image held in the image file stored in, for instance, external storage device 18, and it may be either a raster image (bitmap image) or a vector image.
The size of window 32 may be equal to or smaller than the size of the display screen of CRT 17. A plurality of windows may be opened at a time on the display screen of CRT 17.
In this embodiment, when a user wants to move window 32 on image 31 , i.e., to scroll the image displayed in window 32, the user moves a cursor into the inside of window 32 by mouse 13. Subsequently, while pressing the right button of mouse 13, the user instructs with the cursor(mouse-cursor) 33 a direction in which the user wants to move window 32. When the user wants to scroll window 32 at a low speed, the user operates mouse 13 so that cursor 33 is moved close to a center Pr of window 32, and when the user wants to scroll window 32 at a high speed, the user operates mouse 13 so that cursor 33 is moved far from center Pr of window 32.
The operation of mouse 13 is notified to MPU 12 via I/O port 15. In response to the notification, MPU 12 changes the cursor displayed in window 32 on CRT 17 from a normal arrow to the shape for scrolling shown in Fig. 3.
Further, during the right button being pressed, for instance, in response to the interruption of the software timer, for example, every 50 ms - 100 ms, MPU 12 executes the process shown in Fig. 4.
First, in accordance with the movement of mouse 13, MPU 12 moves cursor 33 inside of window 32 (Step S1 ).
Next, as shown in Fig. 3, MPU 12 obtains differences between the coordinates (Xr, Yf) of the center point (reference point) Pr of window 32, and coordinates (X,,,, Ym) of cursor 33. In other words, MPU 12 obtains a vector 34 [(Xs> γ s) = (Xm " Xr* γ m - Y r) ] from center point Pr of window 32 (reference point) to cursor 33.
Next, MPU 12 calculates the amounts of movement of window 32 in X and Y directions by one shift process. For instance, by dividing and Ys with the specified constant Q, for example, 10, and make that quotients the amounts (Δx, Δy) of movement of window 32 (Step S2). Subsequently, from the position of window 32 on the image 31 and the amounts (Δx, Δy) of movement obtained by Step S2, MPU 17 determines whether window 32 can be sifted or not (Step S3). For instance, as window 32B shown in Fig. 5, when window 32 is located at the edge of image 31 , and the vector (X,., Ys) indicates the edge direction, and window 32 can move neither in the horizontal nor the vertical direction, the control returns to the main routine. On the other hand, when window 32 can be moved, the control advances to Step S4.
In Step S4, in accordance with the amounts of movement of X direction and Y direction of window 32 obtained in Step S2, MPU 17 moves the image on VRAM 16. Further, the position of window 32 on image 31 after the movement is stored in memory 11. This position will be referred to the next time in Step S3. For instance, if window 32 is moved from 32C to 32D as shown in Fig. 6, 5 the image of the hatched part 32E before the movement will be displayed even after the movement. Thus, as shown in Fig. 7, image data of each dot whose address is (X, Y) in VRAM 16 is shifted to a position whose address is (X - Δx, Y - Δy), thereby shifting window 32 from the state shown in Fig. 8A to the state shown in Fig. 8B (Step S4). When window 32 is close to edge of image 31 , and l o window 32 cannot move in X and/or Y directions fully, the shift is performed as much as possible.
Then, new image data is developed on the vacant area 32F of VRAM 16 after shifting the image data (Step S5). If the image to be developed is a raster image (bitmap image), the image data is read from memory 11 or external
15 storage device 18, and the read image data is developed in the vacant area 32F of VRAM 16. If the image to be developed is a vector image, the vector data is expanded or evaluated (i.e., generating shapes based on vector commands) prior to being displayed on CRT17. In this invention, only vector data corresponding to the vacant area 32F needs to be expanded during
20 scrolling. The vector data corresponding to common portion 32E does not have to be expanded again.
The application of the present invention to vector data is now described. Conventional vector data represents an image as a collection of lines or shapes (e.g., square, circle, etc.). Vector data is typically presented in the form of
25 commands in ASCII characters. An example of a vector command is: OVAL x, y, r,, r2, [other parameters]; where x and y are the coordinates of the center of the oval and r, and r2 are the major and minor radii of the oval. The "other parameters" could include color, types of line (e.g., solid or dashed), etc.
One aspect of the present invention is to add parameters to the vector commands so as to indicate whether a command needs to be expanded when only a portion of an image generated from vector commands is displayed on a monitor. Fig. 9 shows an oval 682 expanded from the above mentioned "OVAL" vector command. Oval 682 is enclosed by an imaginary rectangle 684. The position and dimension of the rectangle is completely defined by two points 686 and 687 having coordinates (P1( Q and (P2, Q2). In the vector data of the present invention, these extra coordinates are added to the list of parameters. Thus, the above vector command would be changed to:
OVAL x, y, rv r2, P1t Qv P2, Q2, [other parameters].
Other imaginary shapes could be used to enclose the actual shapes of the image. For example, a square is preferably used to enclose a circle. In general, a polygon (i.e., a shape bounded by a plurality of straight lines) can be used. In this case, the coordinates of the corners of the polygon can be added to the list of parameters.
A new image should be developed in the vacant area 32F and need to be added to the image in portion 32E in order to create the scrolled image. The bits in VRAM 16 corresponding to portion 32E are moved to their new position. All the vector commands are examined to determine whether the enclosing polygon falls within vacant area formed by sifting the bits in the portion 32E. This step can be performed easily by determining whether at least a part of the enclosing polygon defined by the extra coordinates in the vector commands falls within vacant area 32F. For example, when the vector image developed from above mentioned "OVAL" vector command is scrolled, the bits developed in portion 32E are moved in VRAM16, and it is determined whether a part of a rectangle defined by coordinates (P1f QJ and (P2, Q2) falls within vacant area 32F. If the part of the rectangle falls within vacant area 32F, the "OVAL" vector command is evaluated, the bitmap image corresponding to vacant area 32F is generated as a part of the oval, and they are stored in vacant area 32F.
After completing the writing to vacant area 32F, the flow will return to 5 the main routine.
The scroll processing shown in Fig. 4 is performed every specified period in response to, for example, the interruption of software timer while the right button of mouse 13 is pressed. Thus, the image displayed in window 32 will be scrolled continuously. l o The amounts of movements Δx and Δy change depending on the distances between the center point Pr of window 31 and cursor 33. Thus, the scroll speed changes by changing the distance between the center point Pr and cursor 33.
When the right button of mouse 13 is released, the shape of cursor 33 15 will return to the normal arrow shape, the interruption process shown in Fig. 4 will no longer be executed, and the image will stop.
The above described methods to handle bitmap and vector data can be applied to the case where window 32 is used to simultaneously displaying a bitmap and a vector image, i.e., the same window contains an image generated 20 from bitmap data and an image generated from vector data). In simultaneously displaying, a bitmap image is loaded into VRAM 16 and a vector image is then loaded into memory 16. Portions of the bitmap and the vector images may overlap. Thus, one image may appear to be located on top of the other image.
As explained above, according to the first embodiment, the direction of 25 the scrolling will change corresponding to the position of cursor 33. Further, the scroll speed (scroll speeds in the x direction and y direction) changes in accordance with the distance (distances in x and y directions) between the center point Pr and cursor 33. Therefore, the display image can be easily scrolled at an arbitrary speed and toward a desired direction by operating mouse 13. Only those vector commands having at least a portion of their enclosing polygons fall within portion 32F need to be evaluated in order to create the scrolled image. As a result, the amount of computation for generating images is greatly reduced.
According to the first embodiment described above, depending on the processing speed of MPU 12, the scroll speed may be too slow or too fast. Thus, in accordance with the preference of the user, it is also possible to change the scroll speed. For instance, the constant Q which is used for dividing the distance . and Ys in step S2, may be changed arbitrarily through keyboard 14 by the user. By making the constant Q large, the scroll speed will become slow, and by making the constant Q small, the scroll speed will become fast. In addition, a constant Qx of the X direction, and a constant Qy of the Y direction may be different from each other. In the first embodiment, the scroll speed and the scroll direction are arbitrary changed in response to the distance and the direction from the reference point to cursor 33. However, the scrolling direction may be fixed to, for example, only the vertical direction or the horizontal direction. In addition, the scrolling speed may be fixed. Although window 32 is moved in the direction of cursor 33 to the reference point Pr, the displayed image may be scrolled towards the direction of cursor 33 to the reference point Pr. In this case, window 32 moves to a direction opposite to cursor 33 to the reference point Pr.
The shape of each cursor is arbitrary. Although the center of the window is used as the reference point, other arbitrary points such as the center of the display screen may be selected as the reference point. (Second Embodiment)
In the first embodiment, the display image was only scrolled. However, together with scrolling, it is possible to perform arbitrary processing on the image. Thus, the second embodiment which performs specific processing on the display image while scrolling the image is explained. In this embodiment, a button for designating the editing function is displayed at the upper right corner of window 32. By clicking at this button, a tool box shown in Fig. 10 is displayed. This tool box contains edit buttons 41 to 44 for designating functions such as drawing of straight lines, drawing of continuous lines, making of polygons, erasing of image from the left hand side.
First, using the case of drawing a straight line on image 31 as an example, the embodiment is explained.
In this case, edit button 41 in the tool box is clicked. This clicking operation is notified to MPU 12 from I/O 15. MPU 12 responds to this notification and a menu (not illustrated) for selecting the number of lines, thickness, color, etc. is selected. The user selects an arbitrary one from this menu. MPU 12 saves the information that has been selected.
Subsequently, the user moves the cursor to the starting point of the straight line, and clicks the left button of mouse 13. The position of the cursor (Xp, Yp) at this time is saved in the MPU 12.
Next, the user moves the cursor to the ending point of the straight line. At that time, by a similar method as the first embodiment, image 31 is scrolled as required. Each time window 32 is moved a unit amount on image 31 , MPU 12 obtains the straight line that connects the starting point and the cursor (for example, in Step S4 of Fig. 4). In addition, among the straight lines obtained, the part which is located in window 32 is written into VRAM 16 and displayed on CRT 17.
At the ending position of the straight line, the left button of the mouse 13 is clicked. In response to this operation, MPU 12 saves the coordinates (XE, YE) of the cursor. Hereafter, if MPU 12 outputs (display, printing, etc.) image 31 , this straight line is output based on the parameters (such as coordinates (Xp, Yp) and (Xg, YE), thickness, color) together with image 31. In this way, as shown in Fig. 11, it is possible to draw a line into a range which exceeds window 32.
When drawing a continuous line on image 31, the edit button 42 in the 5 tool box is clicked. In response to the selection of edit button 42, MPU 12 will display a menu (not illustrated) for selecting the thickness of the line, and so forth. From this menu, the user selects an arbitrary thickness, color, etc. These information are saved.
Subsequently, the user moves the cursor in sequence, and clicks the left l o button of mouse 13 at the starting point, each break point, and ending point. By the same procedure as the first embodiment, image 31 is scrolled as required. During this period, each time image 31 is scrolled a unit amount, among the straight lines which connect each continuous points and the straight line which connects the final break point and the cursor, MPU 12 writes into VRAM 16 the 15 part which is located inside of window 32, and displays this (for example, in Step S4 of Fig. 4).
In addition, the position of the cursor when the left button is clicked is saved in MPU 12. When the cursor reaches the final point of a continuous line, the user double clicks the left button of mouse 13. By doing so, the continuous 0 line is fixed, and information such as the coordinates of each point which defines the continuous line and the thickness of the lines are stored together with image 31.
Hereafter, when image 31 is output (display, printing, etc.), based on the parameters, MPU 12 will output this straight line together with image 31. 5 In this way, in an area which exceeds the range of window 32, it is possible to draw a continuous line as shown in Fig. 12.
In addition, when drawing polygons on image 31, edit button 43 in the tool box is clicked. In response to the selection of edit button 43, MPU 12 will display a menu (not illustrated) for selecting the type of borderlines for the polygon, color and texture inside and / or outside of the polygon. The user selects arbitrary ones from this menu.
Subsequently, by a similar method to that used for drawing a continuous line, the user specifies each point which defines the polygon. In this case also, among the straight lines which connect the specified points and the straight line that connects the final point and the cursor, MPU 12 writes into VRAM 16 the part which is located inside of window 32.
Finally, by moving the cursor to the starting point, and by double clicking the left button of the mouse, the defined polygon is set at the color selected at the beginning, and the polygon is completed. Each parameter which defines this polygon is stored together with the image 31. Hereafter, when MPU 12 outputs image 31 , based on these parameters, this polygon is output with image 31. In this way, in an area which exceeds the range of window 32, it is possible to draw an arbitrary polygon as shown in Fig. 13.
Further, if a part of image 31 is to be erased, edit button 44 of the tool box is clicked. In response to the selection of edit button 44, MPU 12 displays a menu (not illustrated) for selecting the mode of erasing. For instance, it is also possible to erase display data on the locus of the cursor. Moreover, it is also possible to draw an arbitrary polygon, and erase the image inside of the polygon. The user selects an arbitrary mode.
Subsequently, based on the method, the user draws a line or defines a polygon. MPU 12 erases display data on the locus or inside or outside of the polygon on VRAM 16. Finally, a message to confirm the contents of erasure is displayed. If the user confirms it, corresponding erasure processing is also executed on the display data of image 31 stored in memory 11.
In the above way, erasing can be done on images and display data which exceed the scope of window 32.
As explained above, according to the second embodiment, while scrolling the image, arbitrary processing such as drawing of lines, drawing of pictures and erasing of the image can be done. By a similar method, other processing such as reversal of images may also be performed.
In the embodiment, a mouse was given as an example of input device for scrolling as well as instructing its speed and direction, but it is possible to use arbitrary composition such as keyboard, joystick, track (control) ball, etc. Further, as for the display device, it need not be CRT, and an arbitrary composition such as LCD may be used. (Third Embodiment)
Typically, a graphic file is a very large file (many million bytes) which needs to be stored in a hard disk. As a result of scrolling, it may be necessary to transfer data from a disk drive to the computer. A novel data transfer device is used for effective scrolling in these cases, and will described below in detail. Fig. 14 is a block diagram of a computer system of the present invention containing the data transfer device. Fig. 15 is a schematic diagram of a software system 700 in a Microsoft MS Windows based environment executing on computer system 600 of Fig. 14. In this embodiment, computer system 600 is a IBM-compatible personal computer. Software system 700 comprises MS Windows 702 running on top of an operating system 704 (in this case, Microsoft's MS-DOS working in combination with the computer's "basic input/output system," or BIOS). Operating system 704 monitors and controls the resources of computer system 600. MS Windows is a complicated software containing many program modules and layers of procedure calls, shown schematically in Fig. 3 as dashed lines 706-709. Windows-based application programs 722 and 723 run on top of MS Windows 702. Operating system 704 is a conventional software containing a conventional hard disk driver 726. The driver communicates with a conventional disk controller (not shown) and controls a conventional hard disk (not shown). It allows an application program to control and access the conventional hard disk. In the present implementation, the conventional hard disk is used to store operating system and application programs. Graphic data used in scrolling is stored in hard disk 638 of the present invention. Hard disk 638 and data transfer board 622 are controlled by a new data transfer driver 714 and scrolling is controlled by a new scrolling routine 716. Scrolling routine 716 uses the scrolling methods disclosed above. In the IBM compatible personal computer, a conventional hard disk driver is provided as a ROM based device service routine (DSR). This routine is part of the BIOS, which composes of an operating system, device drivers and shell. The hard disk DSR is accessed by invoking an INT 13 function. The DSR communicates with and controls an industrial standard hard disk controller. It allows an application program to perform many operations to the hard disk, including read, write, initialize, test, format, etc. It also returns status information (e.g., error codes) to the application program.
Many software applications use INT 13 for transferring data between a conventional hard disk and system RAM. However, this method leads to very slow data transferring. One of the reasons is that the CPU needs to spend many cycles in executing MS Windows codes, thus cannot drive the conventional hard disk to its maximum capability. Thus, the hard disk has to pause and wait for available CPU cycles during data transfer. As a result, the data transfer rate is slow. Another reason is that INT 13 and conventional hard disk interface require many CPU cycles to handle the transferring of data, thereby using valuable CPU resources for basic input/output operations. Thus, the application programs have to compete with the conventional DSR for CPU resources. As a result, the application programs run slowly. In order to improve data transfer between hard disk and the system RAM (or VRAM), the data transfer device of the present invention can be advantageously used in this system.
In the present implementation, it is desirable to minimize the interaction between data transfer driver 714 on one hand and MS Windows 702 and operation system 704 on the other hand. This is because the layers of Windows software could impose significant overhead in communication between the driver and the application programs. Thus, data transfer driver 714 and scrolling routine 716 should be written such that it can communicate with applications 722 and 723 through simple Windows messages. It is found that this arrangement improves execution speed because less overhead is required. In Fig. 3, data transfer driver 714 and scrolling routine 716 are shown schematically to be positioned below only dashed line 706. Thus, applications 722 and 723 can communicate with data transfer driver 714 and scrolling routine 716 without going through a long chain of MS Windows modules. As explained in detail below, data transfer driver 714 take advantages of a novel design in data transfer board 622 so that the retrieval of data from hard disk 638 can take place simultaneously with the scrolling operation of the present invention. As a result, there is no need to compete for CPU resources.
Fig. 16 shows a block diagram of a data transfer device 110 of the present invention. In the present embodiment, device 110 is in the form of a peripheral board which could be used as data transfer board 622 of Fig. 14. However, device 110 could be fabricated on a single semiconductor chip and mounted on a mother board. Device 110 contains leads 142 and 144 which can be coupled to peripheral bus 614 and hard disk 638, respectively, of Fig. 14. Lead 142 is connected to a bus interface 106 for matching electrical signals between data transfer device 110 and the rest of computer system 600 of Fig. 1. Data transfer device 110 controls data transfer between hard disk 638 on one hand and system RAM 606 and/or VRAM 618 (referred to collectively as the "internal RAM") on the other hand.
Device 110 contains a "small computer system interface" (SCSI) controller 122, which communicates data and control information with hard disk 638 in the standard SCSI protocol. The design of such a controller is well known in the art and will not be discussed here.
SCSI controller 122 is preferably in the form of a semiconductor chip. SCSI controller 122 is connected to a SCSI processing circuit 124. SCSI processing circuit 124 is connected to bus interface 106 and a timing adjustment circuit 130. SCSI processing circuit 124 performs the following operations: (1) receives commands and status information from CPU 604 via bus interface 106; (2) controls hard disk 638 (through SCSI controller 122) in accordance with these commands and status information ;(3) in cooperation with timing adjustment circuit 130, transfers data to and from a RAM processing circuit 132 ; and (4) sends status information to CPU 604 via bus interface 106. For example, SCSI processing circuit 124 can activate and deactivate the transfer of data to and from hard disk 638. The status signals generated by SCSI processing circuit 124 could be used by data transfer driver 714 which is designed to work with data transfer device 110. In this embodiment of the present invention, hard disk 638 conforms to the SCSI standard. However, the present invention is equally applicable to hard disks conforming to other standards, e.g., IDE (integrated drive electronics) or EIDE (enhanced integrated drive electronics).
In the present invention, data is not directed transferred between hard disk 638 and the internal RAM of computer system 600. Instead, data is temporarily stored in a pair of random access memory devices inside data transfer device 110 (shown as RAM A and RAM B). Data transfer by RAM A and RAM B is fast. On the other hand, data transfer by hard disk 638 is typically slow and not synchronous to the data transfer of RAM A and RAM B. Timing adjustment circuit 130 serves to coordinate and synchronize the hard disk 638 and RAM A/RAM B data transfer.
In order to be able to achieve the above described functions, SCSI processing circuit 124 contains a status processing circuit 146 (for receiving, processing and generating status signals) and a data flow circuit 148 (for controlling the transfer of data to and from hard disk 638). The design of these circuits should be within the skill of persons skilled in circuit design art.
Timing adjustment circuit 130 is connected to a RAM processing circuit 132. This RAM processing circuit 132 is also connected, via bus interface 106, to CPU 604 and the internal RAM. In addition, RAM processing circuit 132 is connected to RAM A and RAM B inside data transfer device 110.
RAM processing circuit 132 comprises a switch 134 for connecting RAM A and RAM B on one hand to timing adjustment circuit 130 and bus interface 106 on the other hand. Specifically, if it is desirable to transfer data between SCSI processing circuit 124 to either RAM A or RAM B, switch 134 causes timing adjustment circuit 130 to be connected to the appropriate memory. Similarly, if it is desirable to transfer data between internal RAM to either RAM A or RAM B, switch 134 causes bus interface 106 to be connected to the appropriate memory device in data transfer device 110. It should be note that RAM A may be connected to either timing adjustment circuit 130 or bus interface 106 at a given time, but cannot be simultaneously connected to both timing adjustment circuit 130 and bus interface 106. Similarly, RAM B may be connected to either timing adjustment circuit 130 or bus interface 106 at a given time, but cannot be simultaneously connected to both timing adjustment circuit 130 and bus interface 106. Also, data cannot be directly transferred between timing adjustment circuit 130 and bus interface 106. The detailed operation of switch 134 in connection with the transfer of data will be described below.
In order to monitor the amount of data in RAM A and RAM B, RAM processing circuit 132 contains two byte processing unit. Each unit contains a counter and means for matching the electrical signal between RAM A or RAM B 5 and RAM processing unit 132. These units will be referred to as counters 136 and 138. RAM processing circuit 132 monitors the transfer of data from/to RAM A and RAM B and decrement/increment the value of counters 136 and 138, respectively. As a result, the values of counters 136 and 138 provide an indication of the amount of data stored in RAM A and RAM B, respectively. l o Another function of RAM processing circuit 132 is to receive commands and status information from CPU 604 via bus interface 106. RAM processing circuit 132 then controls the transfer of data between internal RAM on one hand and RAM A and RAM B on another hand in accordance with the received commands and status information. RAM processing circuit 132 may also send
15 status signals to CPU 604. These signals could be used by data transfer driver 714. A status processing circuit 152 is included in RAM processing circuit 132 to perform these functions.
Because it is desirable to optimize the access time of RAM A and RAM B, static RAMs are preferably used. However, other types of RAMs (such as
20 dynamic RAM) could be used, and the present invention is not limited to a specific type of RAM.
The transfer of data between internal RAM on one hand and RAM A and RAM a on the other hand can be handled by CPU 604 directly (e.g., by issuing data transfer instructions to the CPU) or via conventional direct memory access
25 (DMA). For processors which lack powerful data transfer instructions, such transfer is most efficiently handled by DMA. For processors which have powerful data transfer operations (e.g., burst mode transfer and string transfer instructions), such transfer is most efficiently handled by the CPU itself. ln one embodiment of the present invention, SCSI processing circuit 124, RAM processing circuit 132, timing adjustment circuit 130, and bus interface 106 are fabricated on a single semiconductor chip 140.
In the present invention, data transfer board 622, data transfer driver 714, and scrolling routine 716 act in a cooperative manner to achieve fast data transfer and scrolling. In a first example in accordance with the present invention, an application software, such as application 722, issues instructions to data transfer driver 714 to retrieve a certain amount of graphic data from hard disk 638 and load to the internal RAM. The newly loaded data will be used for scrolling by scrolling routine 716. A flow chart 180 in Fig. 17 is used in connection with this example. Data transfer driver 714 issues an initialization command to SCSI processing circuit 124 and RAM processing circuit 132 (step S182). SCSI processing circuit 124 then initializes (through SCSI controller 122) hard disk 638 so that it is ready to retrieve and transfer data. RAM processing circuit 132 sets the values of counters 136 and 138 to zero and sets switch 134 to connect timing adjustment circuit 130 to RAM A. RAM processing circuit 132 retrieves data from SCSI processing circuit 124 (after processing by timing adjustment circuit 130) and transfers same to RAM A. As a result, data is read from hard disk 638 and loaded into RAM A (step S184). During step S184, CPU 604 is not involved. Thus, it can perform other functions, including executing scrolling routine 716.
RAM processing circuit 132 uses counter 136 to determine whether the amount of data in RAM A has reached a predetermined value (step S186). If this value is not reached (i.e., RAM A has room to accept additional data), data from SCSI processing circuit 124 (and hard disk 638) continues to flow to RAM A (step S188), after processing by timing adjustment circuit 130. When RAM A is not able to accept data, RAM processing circuit 132 causes switch 134 to connect timing adjustment circuit 130 to RAM B. As a result, data is read from hard disk 638 and loaded into RAM B (step S190). At this time, RAM processing circuit 132 sends a status signal (e.g., an interrupt) to data transfer driver 714 informing it that data in RAM A can be transferred to internal RAM (step S192). In step S194, data transfer driver 714 then determines whether CPU 604 is busy (i.e., not ready to transfer data). If CPU 604 is busy in performing other tasks (including executing scrolling routine 716), data transfer driver 714 will wait. If CPU 604 is available for processing data, data transfer driver 716 sends a command to RAM processing circuit 132, which causes switch 134 to connect bus interface 106 to RAM A (step S196). At this time, data can be transfer from RAM A to internal RAM (step S198). Note that the above described step S190 (i.e., transfer data from hard disk 638 to RAM B) can be performed simultaneously with steps S192 to S198. Typically, the time for performing step S 190 is longer than the time for performing steps S192-S198. RAM processing circuit 132 can send a status signal to data transfer driver 714 when step S198 (i.e., from RAM A to internal RAM) is completed (step S200). Data transfer driver 714 can issue a command to scrolling routine 716 to process the new data loaded into internal RAM (step S202).
RAM processing circuit 132 uses counter 138 to determine whether the amount of data in RAM B has reached a predetermined value (step S204). If this value is not reached (i.e., RAM B has room to accept data), data continues to be loaded into RAM B from hard disk 638 (step S206). When RAM B is not able to accept data, RAM processing circuit 132 causes switch 134 to connect timing adjustment circuit 130 to RAM A again. Flow chart 180 branches back to step S184 via path S208, and the above described steps regarding transferring of data to RAM A will be performed. At the same time, RAM processing circuit 132 sends a status signal to data transfer driver 714 informing it that data in RAM B can be transferred to internal RAM (step S210). ln step S212, data transfer driver 714 then determines whether CPU 604 is busy (i.e., cannot transfer data out of RAM B). If CPU 604 is busy in performing other tasks (including executing scrolling routine 716), data transfer driver 714 will wait. If CPU 604 is available, data transfer driver 714 sends a command to RAM processing circuit 132, which causes switch 134 to connect bus interface 106 to RAM B (step S214). As a result, the data stored in RAM B can be transferred to internal RAM (step S216). As pointed out before, steps S210-S216 could occur simultaneously with the transferring of data from hard disk 638 to RAM A (i.e., step S184). Typically, the time for transferring data from hard disk 638 to RAM A is longer than the time for performing steps S210-S216. Upon completing step S216, RAM processing circuit 132 can send a status signal to data transfer driver 714 (step S218), which then issues a command to scrolling routine 716 to process the new data loaded into internal RAM (step S220). The application programs (through data transfer driver 714) determine the amount of data to be transferred from hard disk 638 to internal RAM. The above described cycles continue until all the required data is transferred to internal RAM.
Typically, the time to transfer data stored in RAM A and RAM B to internal RAM is very short when compared to the disk data transferring time. Thus, RAM A and RAM B are always available for disk data transferring because the data stored therein should have already been transferred to internal RAM. If both RAM A and RAM B are not available for disk data transfer, data transfer driver 714 should delay disk transferring operation until one of them is available.
Fig. 18 shows the relative timing between SCSI cycles and internal memory cycles of data transfer device 110 in Fig. 16. Timing diagram 280 shows the transfer of data between hard disk 638 and RAM A/RAM B. In Fig. 18, reference numerals 282 and 283 correspond to time intervals for transferring data between hard disk 638 and RAM A while reference numerals 286 and 287 correspond to time intervals for transferring data between hard disk 638 and RAM B. Time intervals for switching between RAM A and RAM B, designated 5 as reference numeral 285, are much shorter than the time intervals for transferring data. This is because the switching is performed electronically using semiconductor elements in RAM processing circuit 132.
Timing diagram 270 shows the transfer of data between internal RAM and RAM A RAM B. In Fig. 18, reference numerals 272 and 273 correspond to l o time intervals for transferring data between internal RAM and RAM A while reference numerals 276 and 277 correspond to time intervals for transferring data between internal RAM and RAM B. Note that the time intervals 272, 273, 276, and 277 (for internal RAM transferring) are much shorter than time intervals 282, 283, 286 and 287 (for hard disk transferring). As pointed out
15 above, computer system 600 can perform other functions (e.g., scrolling and other operations) during time intervals 282, 283, 286 and 287 for hard disk transferring. In effect, the scrolling operation and transfer of data from hard disk 638 are performed in parallel. As a result, the throughput of computer system 600 is much higher than conventional systems.
20 It should be noted that RAM A and RAM B are not cache memory. Thus, there is no need to include circuit for detecting hits and misses and for replacing a portion of the memory in accordance with the frequency of hits. The circuit of the present invention is simple and fast.
There are prior art systems which use buffers for the purpose of speeding
25 up disk transfer. For example, many hard disks use semiconductor memory as buffers to improve throughput. Some computer systems use a portion of their system memory as buffers. However, these systems do not use the RAM A/RAM B architecture and the coordination between software (data transfer driver 714 and scrolling routine 716) and hardware. Consequently, their performance is inferior to the performance of the system of the present invention.
As mentioned above, the graphic data is stored in hard disk 638 and 5 needs to be loaded into VRAM 618 so that it can be displayed on monitor 630. If the graphic data is retrieved from hard disk 638 and loaded into VRAM 618 every time an image is updated as a result of scrolling, this could cause excessive amount of disk access. In one embodiment of the present invention, a portion of system RAM 606 is used to temporarily store a portion of the 0 graphic data. If the size of the portion in system RAM 606 is larger than the size of VRAM 618, the new image could be constructed from the graphic data in system RAM 606 if the amount of scrolling is small. In this case, hard disk 638 does not have to be accessed.
Fig. 19 shows the relationship between the graphic data in VRAM 618, 5 system RAM 606 and the hard disk 638. Components that are the same in Figs. 14 and 19 are designated by the same reference numerals. The size of VRAM 618 is about 1 megabyte. A portion 682 of VRAM 618 is devoted to window 632. Thus, portion 682 contains graphic data that is associated with the image displayed in window 632. The recommended size of system RAM 606 for o computer capable of running Microsoft's Windows environment is more than 8 megabytes. Many computer users install more than 16 megabytes of RAM in their system. Even though part of system RAM 606 is used for other purposes, the size of system RAM 606 available for storing graphic data can be more than the size of portion 682. 5 In Fig. 19, a portion 684 of system RAM 606 is used to temporarily store the graphic data. A portion 686 inside portion 684 contains graphic data corresponding to the graphic data contained in portion 682 of VRAM 18.
The graphic data for the complete image is shown in Fig. 19 as numeral 690. It is preferably stored as a file in hard disk 638. Hard disk 638 may contain many sets of graphic data, each corresponding to a different image. A portion 692 of graphic data inside data 690 corresponds to the graphic data contained in portion 684 in system RAM 606. Because portion 682 of VRAM 618 (and consequently portion 686 of system RAM 606) is much smaller than portion 684 of system RAM 606, it is possible to scroll in window 632 without accessing hard disk 638 if the graphic data corresponding to the new image is stored in portion 684.
The transfer of graphic data between system RAM and VRAM is quite fast because the overhead in hardware and software for transferring data between VRAM and RAM is quite low. However, the transfer of data between a hard disk and system RAM is comparatively slow. Thus, it is possible to improve performance by using system RAM as an intermediary memory.

Claims

CLAIf
1. A data processing device comprising: means (12, 16, 17) for displaying an image and a cursor; position control means (12, 13, 15) for controlling a position of the cursor in response to external operations; determining means (12, 16) for determining a distance between a predetermined reference point and the cursor; and scrolling means (12, 16, 17) for scrolling the image at a speed corresponding to the distance determined by said determining means.
2. A data processing device comprising. means (12, 16, 17) for displaying an image and a cursor; position control means (12, 13, 15) for controlling a position of the cursor in response to external operations; determining means (12, 16) for determining a direction of the cursor with respect to the predetermined reference point, and scrolling means (12, 16, 17) for scrolling the image in a direction corresponding to the direction determined by said direction determining means.
3. A data processing device according to claim 1 or 2, further comprising means (11 , 12, 16, 17) for executing a specific processing on the image being scrolled by said scrolling means.
4. A data processing device comprising: a display data memory (16) for storing display data; display means (17) for displaying the display data stored in the display data memory; input means (13, 14, 15) for inputting data; cursor display means (12, 16) for displaying a cursor on said display means in response to an instruction indicating a starting of scroll input by said input means; position controlling means (13, 15) for controlling a position of the cursor in response to the instruction input by said input means; determining means (12, 16) for determining a distance between the a reference point and the cursor; and scrolling means (12) for scrolling the image displayed on said display means, by shifting the display data stored in the display data memory at a speed corresponding to the distance determined by said determining means and developing new display data in a vacant area formed by the shifting cf the display data.
5. A data processing device comprising: a display data memory (16) for storing display data; display means (17) for displaying the display data stored in the display data memory; input means (13, 15) for inputting data; cursor display means (12, 16) for displaying a cursor on said display means in response to an instruction indicating a starting of scroll input by said input means; position controlling means (12, 13, 15) for controlling a position of the cursor in response to the instruction input by said input means; determining means (12) for determining a direction of the cursor with respect to a reference point; and scrolling means (12) for scrolling the display image by shifting the display data in the display data memory to the direction determined by said determining means or its opposite direction, and developing a new display data in a vacant area.
6. A data processing device according to one of claims 1 through 5, wherein the reference point being substantially a center point (Pr) of a window (32).
7. A data processing device according to claim 1 or 4, further comprising means for setting a scrolling speed (11, 12, 14) for each distance determined by said determining means.
8. A data processing device according to one of claims 1 , 2, 4, and 5, further comprising means (11 , 12) for executing the specified processing on the display data shifted by said scrolling means.
9. A scrolling method comprising: a step of forming a window on a image, and displaying a part of the image via the window; a step of displaying a cursor on the window; a step of instructing scrolling; a determining step of responding to said instruction step and determining the distance between the specified reference point and the cursor; and a scrolling step of scrolling the image in the window at a speed corresponding to the distance determined in said determining step.
10. A scrolling method comprising: a step of forming a window on a image, and displaying a part of the image via the window; a step of displaying a cursor on the window; a step of instructing scrolling; a determining step of determining the direction of the cursor with respect to the specified reference point; and a scrolling step for scrolling the image to the direction corresponding to the direction determined by said determining step.
11. A scrolling method according to claim 9 or 10, wherein said scrolling step includes a step of executing a specified processing to the image which is being scrolled.
12. A method for scrolling an image of a vector graphic file in response to positions of a cursor, said image being generated from data loaded into an area of a semiconductor memory device related to a display device, said scrolling involving display a first image containing a first portion of said graphic file at a first time and a second image containing a second portion of said graphic file at a second time, said image comprising a plurality of shapes each associated with a vector command of said vector graphic file, said method comprising the steps of:
(a) providing said vector graphic file with at least one vector command for one of said shapes, said vector command containing parameters obtained from the following steps:
(i) determining a set of coordinate data corresponding to a polygon enclosing said one shape; and
(ii) including said set of coordinate data in said at least one vector command; and
(b) performing scrolling operation using said set of coordinate data by performing the following steps:
(i) determining a new portion of said graphic file which needs to be loaded to said area of said memory device in order to generate said second image, said new portion being a function of said positions of said cursor;
(ii) determining by using said set of coordinate data whether a portion of said polygon falls within said new portion of said graphic file; and
(iii) expanding said at least one vector command only if said portion of said polygon falls with said new portion.
13. The method of claim 12 wherein said step of performing scrolling operation further comprising the steps of:
(i) finding a common portion of said graphic file which is common to said first portion and said second portion, said common portion being located in a first region of said area of said memory device at said first time; and
(ii) moving said common portion from said first region to a second region in said area of said semiconductor memory device, the location of said second region being determined by said cursor; and (iii) loading at least a portion of said one shape expanded from said at least one vector command into said area of semiconductor device; said finding, moving and loading steps being completed prior to said second time.
14. A method for scrolling an image of a graphic file in response to positions of a cursor, said image being generated from data loaded into an area of a semiconductor memory device related to a display device, said scrolling involving display a first image containing a first portion of said graphic file at a first time and a second image containing a second portion of said graphic file at a second time, said method comprising the steps of:
(a) determining a common portion of said graphic file which is common to said first portion and said second portion, said common portion being located in a first region within said area of said semiconductor memory device at said first time;
(b) moving said common portion from said first region to a second region inside said area of said semiconductor memory device, the location of said second region being determined by said cursor;
(c) determining a. new portion of said graphic file which is in said second portion but not in said first portion of said graphic file; and
(d) loading said new portion to a third region of said semiconductor memory device such that said second and said third regions occupy said area of said semiconductor memory device; said steps (a), (b), (c) and (d) being executed prior to said second time.
15. The method of claim 14 wherein said graphic file is stored in a hard disk and said semiconductor memory device comprises a display memory, said loading step comprising the steps of: retrieving said new portion from said hard disk to system random access memory; and transferring said new portion from said system random access memory to said display memory.
16. The method of claim 14 wherein said image comprises a supeφosition of a bitmap image and a vector image, said graphic file contains a bitmap file and a vector file, said vector image comprising a plurality of shapes each associated with a vector command, said method further comprising the steps of: (a) providing said vector file with at least one vector command for one of said shapes, said vector command containing parameters obtained from the following steps:
(i) determining a set of coordinate data corresponding to a polygon enclosing said one shape; and (ii) including said set of coordinate data in said at least one vector command; and
(b) performing scrolling operation using said set of coordinate data by performing the following steps:
(i) determining a new portion of said vector file which needs to be loaded to said area of said memory device in order to generate said second image, said new portion being a function of said positions of said cursor;
(ii) determining by using said set of coordinate data whether a portion of said polygon falls within said new portion of said vector file; and
(iii) expanding said at least one vector command only if said portion of said polygon falls within said new portion.
17. A system for fast scrolling of an image of a graphic file in response to positions of a cursor, said graphic file being stored in an external memory device, said image being generated from data loaded into an area of a semiconductor memory device related to a display device, said scrolling involving displaying a first image containing a first portion of said graphic file at a first time and a second image containing a second portion of said graphic file at a second time, said system comprising: a dual memory storage device comprising: a retrieval circuit (124,146,148) for retrieving graphic data in said graphic file from said external storage device; a first memory device(F AM A); a second memory device(RAM B); an interface circuit (106) for allowing data stored in said first and said second memory devices to be output from said dual memory device; a first circuit (132) for alternatively switching said retrieval circuit to said first memory device and said second memory device for allowing said graphic data to store in said first and said second memory devices, and for alternatively switching said interface circuit to said first memory device and said second memory device; a second circuit (152) for generating status signals upon said switching; and a software module comprising: means for determining a common portion of said graphic file which is common to said first portion and said second portion, said common portion being located in a first region of said semiconductor memory device at said first time; means for moving said common portion from said first region to a second region in said area of the semiconductor memory device, the location of said second region being determined by said cursor; means for determining a new portion of said graphic file which is in said second portion but not in said first portion of said graphic file; means for causing said dual memory storage device to retrieve said new portion from said external storage device; and means, responsible to said status signals for causing said retrieved new portion to be loaded into a third region of said semiconductor memory device prior to said second time, said second and said third regions occupying said area of said semiconductor memory device.
18. The dual memory storage device of claim 17 wherein said first circuit comprising: a first counter (136) coupled to said first memory device for determining an amount of data stored in said first memory device; a second counter (138) coupled to said second memory device for determining an amount of data stored in said second memory device; means for generating a first signal when the amount of data stored in said first memory device exceeds a first predetermined value; means for generating a second signal when the amount of data stored in said second memory device exceeds a second predetermined value; a third (130) circuit for communicating data with said retrieval circuit; a fourth circuit (152) for communicating data with said interface circuit; and a data switching circuit (134) for alternatively coupling said first memory device to one of said first and said second circuits in response to said first signal and for alternatively coupling said second memory device to one of said third and said fourth circuits in response to said second signal.
PCT/JP1996/000910 1995-04-07 1996-04-02 Data processing device and scrolling method WO1996031819A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP10706795 1995-04-07
JP7/107067 1995-04-07
JP13938695 1995-06-06
JP7/139386 1995-06-06

Publications (2)

Publication Number Publication Date
WO1996031819A2 true WO1996031819A2 (en) 1996-10-10
WO1996031819A3 WO1996031819A3 (en) 1997-01-09

Family

ID=26447135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1996/000910 WO1996031819A2 (en) 1995-04-07 1996-04-02 Data processing device and scrolling method

Country Status (1)

Country Link
WO (1) WO1996031819A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0881563A2 (en) 1997-05-28 1998-12-02 Sony Corporation Digital map display scrolling method and device
EP0919907A1 (en) * 1997-11-25 1999-06-02 Sharp Kabushiki Kaisha Scroll controller
US7774718B2 (en) 2003-12-17 2010-08-10 Nokia Corporation Time handle in a media diary application for accessing media files
US8756516B2 (en) 2006-10-31 2014-06-17 Scenera Technologies, Llc Methods, systems, and computer program products for interacting simultaneously with multiple application programs
US11061551B1 (en) * 2019-10-25 2021-07-13 Amazon Technologies, Inc. Techniques for providing passive scroll hints

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0474234A2 (en) * 1990-09-07 1992-03-11 Kabushiki Kaisha Dainichi Scroll control system
EP0528631A2 (en) * 1991-08-13 1993-02-24 Xerox Corporation Electronic image generation
EP0550812A1 (en) * 1991-12-19 1993-07-14 International Business Machines Corporation Precision automatic scrolling for an image display system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0474234A2 (en) * 1990-09-07 1992-03-11 Kabushiki Kaisha Dainichi Scroll control system
EP0528631A2 (en) * 1991-08-13 1993-02-24 Xerox Corporation Electronic image generation
EP0550812A1 (en) * 1991-12-19 1993-07-14 International Business Machines Corporation Precision automatic scrolling for an image display system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DISPLAYS, TECHNOLOGY AND APPLICATIONS, APRIL 1987, UK, vol. 8, no. 2, ISSN 0141-9382, pages 87-97, XP000609715 BELCH F R: "Analysis of the raster-based 2D vector graphics system" *
IBD TECHNICAL DISCLOSURE BULLETIN, vol. 37, no. 12, 1 November 1994, pages 495-496, XP000487866 "scrolling function for multimedia" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0881563A2 (en) 1997-05-28 1998-12-02 Sony Corporation Digital map display scrolling method and device
EP0919907A1 (en) * 1997-11-25 1999-06-02 Sharp Kabushiki Kaisha Scroll controller
US6330009B1 (en) 1997-11-25 2001-12-11 Sharp Kabushiki Kaisha Scroll controller
US7774718B2 (en) 2003-12-17 2010-08-10 Nokia Corporation Time handle in a media diary application for accessing media files
US8756516B2 (en) 2006-10-31 2014-06-17 Scenera Technologies, Llc Methods, systems, and computer program products for interacting simultaneously with multiple application programs
US11061551B1 (en) * 2019-10-25 2021-07-13 Amazon Technologies, Inc. Techniques for providing passive scroll hints

Also Published As

Publication number Publication date
WO1996031819A3 (en) 1997-01-09

Similar Documents

Publication Publication Date Title
US5327157A (en) Display with enhanced scrolling capabilities
US6259432B1 (en) Information processing apparatus for improved intuitive scrolling utilizing an enhanced cursor
CN101231578B (en) Method and apparatus for display of windowing application programs on a terminal
US5917486A (en) System and method for client program control of a computer display cursor
KR900002950B1 (en) Multi window displaying device
US8250486B2 (en) Computer controlled user interactive display interface for accessing graphic tools with a minimum of display pointer movement
US5201033A (en) Method for controlling cursor movements on certain computer workstations
US5461716A (en) Method and apparatus for assisting in the presentation and removal of windows
US6141008A (en) Method and system for providing size adjustment for a maximized window in a computer system graphical user interface
US5757381A (en) Methods for fast scrolling of images
JPH06342416A (en) Method and equipment for distributed processing of display-screen information
EP0826171A1 (en) Interface circuit and data processing apparatus and method
JPH04238529A (en) Device and method of controlling picture in computer-system
US5129056A (en) Method for cursor control of scrolling movements on certain computer workstations
US5197124A (en) Method for constructing selection cursors on dependent workstations
WO1996031819A2 (en) Data processing device and scrolling method
JP3417451B2 (en) Window enhanced locator hit test method and data processing system
JPH05250129A (en) Display controller
JPH0954672A (en) Data processor and scrolling method
JPS60130795A (en) Data display
JPS62128328A (en) Picture switching control system in multitask
JP2586452B2 (en) Multi-window display device
JP2829051B2 (en) Character display method
JP2564799B2 (en) Multi-window display method and device
JPS60181790A (en) Cursor display control system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): BR CN KR MX PL RU

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): BR CN KR MX PL RU

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

122 Ep: pct application non-entry in european phase