Graphic image display apparatus with high speed inversion of graphic image

Abstract: In a graphic image display apparatus including a CPU (1), a line buffer (2) for temporarily storing graphic data for display, and a display control circuit (3) connected between the CPU and the line buffer, the display control circuit is formed by a graphic ROM (36) for storing source data for graphics to be displayed and designed to output graphic data for display in response to an interface signal of said CPU, and an output circuit (37) having at least one of a data dot selecting circuit (372, 374, 375) for changing a dot order of the graphic data for display and a line buffer address changing circuit (373', 376, 377; 372, 378) for changing a line buffer address representing a storage address of the graphic data for display to be supplied to the line buffer.

Description: BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to a graphic image display apparatus and, more particularly, a graphic image display apparatus suitably used in game machines adapted to carrying out a high speed up/down and/or right/left inversion of a specific graphic image and displaying the inverted image. Description of the Related Art Recently, as game machines adapted to highly sophisticated games are developed, graphic image display apparatuses of the type under consideration are required to have various special functions for effective presentation of images to players. Such special functions may include the function of laterally inverting (right/left inversion) the image of a character of the game and displaying it with the original image of the character simultaneously on the screen. In a first prior art graphic image display apparatus, data for a graphic to be displayed and data for an inverted graphic thereof on a graphic read-only memory (ROM) are mapped as independent sets of data. This will be explained later in detail. As a result, the volume of data to be stored in the graphic ROM increases proportionally relative to the desired number of inverted graphics which consequently requires a large circuit. In addition, as the storage capacity of the graphic ROM increases, the power consumption of the graphic image display apparatus also increases. In a second prior art graphic image display apparatus (see JP-A-62-192793), graphic data for display is temporarily stored in a shift register, a normal graphic display and a right/left inverted graphic display are carried out by storing them in a line buffer in a descending order or in an ascending order. In the second prior art graphic image display apparatus, however; since the original graphic can be inverted only right/left, it is impossible to invert or replace selected dots in the original graphic nor is it possible to display only selected dots of the original graphic. SUMMARY OF THE INVENTION It is an object of the present invention to provide a modified graphic image display apparatus capable of a high speed inversion of graphic images. The invention is set out in the appended apparatus claim. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be more clearly understood from the description as set forth below, as compared with the prior art, with reference to the accompanying drawings, wherein: Fig. 1 is a diagram illustrating an example of graphic data; Fig. 2 is a block circuit diagram illustrating a first prior art graphic image display apparatus; Fig. 3 is an illustration of graphics that can be displayed by the apparatus of Fig. 2; Fig. 4 is an illustration of mapping the allocation of the graphic ROM of Fig. 2; Fig. 5 is a flowchart for explaining the operation of the CPU of Fig. 2; Fig. 6 is a flowchart for explaining the operation of the timing generating circuit of Fig. 2; Figs. 7 and 8 are timing diagrams for explaining the operation of the apparatus of Fig. 2; Figs. 9A and 9B are diagrams for showing the principle of the operation of the apparatus of Fig. 2; Fig. 10 is a block circuit diagram illustrating a second prior art graphic image display apparatus; Fig. 11 is a diagram for showing the principle of the operation of the apparatus of Fig. 10; Fig. 12 is an illustration of graphics that can be displayed by the apparatus of Fig. 10; Fig. 13 is an illustration of mapping the allocation of the graphic ROM of Fig. 10; Fig. 14 is a timing diagram for explaining the operation of the apparatus of Fig. 10; Fig. 15 is a block circuit diagram illustrating a first embodiment of the art graphic image display apparatus according to the present invention; Fig. 16 is a detailed circuit diagram of the converter of Fig. 15. Fig. 17 is a diagram for showing the principle of the operation of the apparatus of Fig. 15; Fig. 18 is a timing diagram for explaining the operation of the apparatus of Fig. 15; Fig. 19 is a block circuit diagram illustrating a second embodiment of the art graphic image display apparatus according to the present invention; Fig. 20 is a detailed circuit diagram of the converter of Fig. 19; Fig. 21 is a diagram for showing the principle of the operation of the apparatus of Fig. 19; Fig. 22 is a timing diagram for explaining the operation of the apparatus of Fig. 19; Fig. 23 is a block circuit diagram illustrating a third embodiment of the art graphic image display apparatus according to the present invention; Fig. 24 is a detailed circuit diagram of the line buffer adress converter of Fig. 23; Fig. 25 is a timing diagram for explaining the operation of the apparatus of Fig. 23; Fig. 26 is a block circuit diagram illustrating a fourth embodiment of the art graphic image display apparatus according to the present invention; Fig. 27 is a detailed circuit diagram of the converter of Fig. 26; Fig. 28 is a diagram for showing the principle of the operation of the apparatus of Fig. 26; Fig. 29 is an illustration of graphics that can be displayed by the apparatus of Fig. 26; and Fig. 30 is a timing diagram for explaining the operation of the apparatus of Fig. 26. DESCRIPTION OF THE PREFERRED EMBODIMENTS Before the description of the preferred embodiments, prior art graphic image display apparatuses will be explained with reference to Figs. 1 through 8, 9A, 9B, and 10 through 14. In Fig. 1, which illustrates an example of a graphic image, this graphic image is displayed by 16 (vertical) × 16 (horizontal) dots. In this case, an address provided along an X direction is referred to as a dot address, and an address provided along a Y direction is referred to as a graphic address. Also, the top leftmost dot is referred to as an origin of data of this graphic image. In Fig. 2, which is a block diagram illustrating a first prior art graphic image display apparatus, reference numeral 1 designates a central processing unit (CPU) for controlling the entire apparatus, and 2 designates a line buffer for temporarily storing graphic data of a scan line of the apparatus for display. A display control circuit 3 is connected between the CPU 1 and the line buffer 2, to carry out a display processing operation in response to the output signal of the CPU 1 to produce graphic data for display. A vertical synchronization signal VSYNC and a horizontal synchronization signal HSYNC are supplied to the CPU 1 and the display control circuit 3. The display control circuit 3 is formed by a data interface 31 which is connected to a parameter random access memory (RAM) 32 and a first-in first-out (FIFO) 33. The FIFO 33 stores addresses PA for the parameter RAM 32. The parameter RAM 32 stores graphic data for one frame. For example, as shown in Fig. 3, if the parameter RAM 32 stores two graphic images G1 and G2, the parameter RAM 32 stores an origin coordinate (X0, Y0) = (40, F6) for the graphic image G1 designated by a ROM address ADD0 = 0(h) and an origin coordinate (X0, Y0) = (80, F0) for the graphic image G2 designated by a ROM address ADD0 = 10(h). The ROM address ADD0 will be explained later. When the FIFO 33 receives a request signal RQ from a timing generating circuit 34, the FIFO 33 generates an address PA and transmits it to the parameter RAM 32. After that, the FIFO 33 generates an empty signal EMP and transmits it to the timing generating circuit 34. Also, the display control circuit 3 includes a ROM address calculating circuit 35 and a graphic ROM 36. The ROM address calculating circuit 35 calculates a ROM address ADD by ADD = ADD0 + Y - Y0 where Y is a scan line address supplied from the timing generating circuit 34. Graphic display data DA generated from the graphic ROM 36 is transmitted via an output circuit 37 clocked by a clock signal CLK to the line buffer 2. In more detail, the output circuit 37 is formed by a shift register 371 for transmitting the graphic display data DA to the line buffer 2, a counter 372 for receiving a . display start signal ST from the timing generating circuit 34 to generate an enable signal EN, and a line buffer address counter 373 for receiving the X origin coordinate X0 of the graphic image and the display start signal ST to generate a line buffer address X. In more detail, when the counter 372 receives the display start signal ST, the counter 372 activates the enable signal EN (EN = "0") for a predetermined time period. Also, the X origin coordinate X0 is preset in the line buffer address counter 373 by receiving the display start signal ST, and thereafter, the content of the line buffer 2 is counted up by receiving the clock signal CLK. Therefore, the content of the line buffer address counter 373 is changed as shown below: X0 → X0 + 1 → X0 + 2 → ··· Note that the enable signal EN continues for the predetermined time period. Therefore, when this predetermined time period has passed, the operations of the shift register 371 and the line buffer address counter 373 are both stopped. For this purpose, the counter 372 can be constructed by a 5-bit counter, and in this case, the 5 output bits are reset by receiving the display start signal ST to generate the enable signal EN by using the most significant bit (MSB). Then, upon receipt of 16 pulses of the clock signal CLK, the MSB is set so that the enable signal EN is deactivated by the MSB. In Fig. 4, which shows an example of the content of the graphic ROM 36 of Fig. 2, three graphic images G1, G2 and G3 are stored in advance. In this case, the graphic image G2 is obtained by left/right inverting the graphic image G1, and the graphic image G3 is obtained by up/down inverting the graphic image G1. The operation of the apparatus of Fig. 2 is explained next with reference to Figs. 5, 6, 7 and 8. Here, Fig. 5 is a flowchart for showing the operation of the CPU 1, and Fig. 6 is a flowchart for showing the operation of the timing generating circuit 34. Also, Fig. 7 is a timing diagram for showing the vertical synchronization signal VSYNC and the horizontal synchronization signal HSYNC of Fig. 2 for one frame of display data, and Fig. 8 is a timing diagram of the signal of the apparatus for one scan line. In Fig. 5, referring to step 501, it is determined whether or not the vertical synchronization signal VSYNC is active, and in step 502, it is determined whether or not the horizontal synchronization signal HSYNC is active. As a result, only when the vertical synchronization signal VSYNC is active, does the control proceed to step 503 which sets parameters in the parameter RAM 32 via the interface 31 (see time t1 of Fig. 7), so that all graphic data for one' frame is set in the parameter RAM 32. For example, in order to obtain an image as shown in Fig. 3, (X0, Y0, ADD0) = (40(h), F6(h), 0(h)) for PA = 5(h) (X0, Y0, ADD0) = (80(h), F0(h), 10(h)) for PA = 9(h) Also, only when the horizontal synchronization signal HSYNC is active, does the control proceed to step 504 which sets graphic display data in the FIFO 13 for one scan line (see times t2, t3, t4, ··· of Fig. 7), so that all graphic data for one scan line is set in the FIFO 33. For example, in Fig. 3, if Y = FD(h), 5(h) and 9(h) are sequentially set in the FIFO 33. Otherwise, the control proceeds directly to step 505. - In Fig. 6, referring to step 601, it is determined whether or not the vertical synchronization signal VSYNC is active, and in step 602, it is determined whether or not the horizontal synchronization signal HSYNC is active. As a result, only when the vertical synchronization signal VSYNC is active, does the control proceed to step 603 which clears the scan line address Y (see time t1 of Fig. 7). Also, only when the horizontal synchronization signal HSYNC is active, does the control proceed to step 604. Otherwise, the control proceeds directly to step 609. At step 604, it is determined whether or not the empty signal EMP is generated, i.e., graphic display data is present in the FIFO 33. As a result, only when graphic display data is present in the FIFO 33, does the control proceed to steps 605 through 608. Otherwise, the control proceeds directly to step 608. At step 605, the timing generating circuit 34 generates an output request signal RQ and transmits it to the FIFO 33. As a result, the FIFO 33 generates a parameter address PA and transmits it to the parameter RAM 32. For example, as shown in Fig. 8, if the parameter address 5(h) is transmitted to the parameter RAM 32, (X0, Y0, ADD0) = (40(h), F6(h), 0(h)) is generated from the parameter RAM 32. As a result, the ROM address calculating circuit 35 calculates a ROM address ADD by ADD = 0(h) + FD(h) - F6(h) = 7(h) Therefore, for graphic image G1 and Y = FD(h) shown in fig. 3, display data DA = CFE0(h) = (0000011111110011) is transmitted from the graphic ROM 36 to the shift register 371. Similarly, if the parameter address 9(h) is transmitted to the parameter RAM 32, (X0, Y0, ADD0) = (80(h), F0(h), 10(h)) is generated from the parameter RAM 32. As a result, the ROM address calculating circuit 35 calculates a ROM address ADD by ADD = 10(h) + FD(h) - F0(h) = 1D(h) Therefore, for graphic image G2 and Y = FD(h) shown in fig. 3, display data DA = 0C1R(h) = (0111100000110000) is transmitted from the graphic ROM 36 to the shift register 371. Next, at step 606, a delay process by an idle step is carried out. Then, at step 607, the timing generating circuit 34 generates a display start signal ST and transmits it to the shift register 371, the counter 372 and the line buffer address counter 373. As a result, as shown in Fig. 8, if the X origin coordinate X0 is 40, the dot address X changed by the line buffer address counter 373 is 40, 41, ···, 4F. Similarly, if the X origin coordinate X0 is 80(h), the dot address X changed by the line buffer address counter 373 is 80, 81, ···, 8F. Thus, the display data DA (0000011111110011) is transmitted to the line buffer 2 in synchronization with the dot address X (40, 41, ..., 4F), and the display data DA (0111100000110000) is transmitted to the line buffer 2 in synchronization with the dot address X (80, 81,···, 8F). In this case, the display data DA and the dot address X are both masked by the enable signal EN. Next, at step 608, the scan line address Y is counted up by +1, i.e., Y = Y + 1 (see times t2, t3, ··· of Fig. 7). Then, the routine of Fig. 6 is completed by step 609. The algorithm of the graphic image display apparatus of Fig. 2 is so designed that, for displaying a graphic image and a graphic image obtained by left/right inverting the original graphic image, two separate regions are provided for the respective graphic images in the graphic ROM 36, which is then separately allocated to store respective graphic data for display by the algorithm of the apparatus. Referring to Fig. 9A, graphic ROM data 0, 1, 2, ···, n are allocated respectively to dot addresses 0, 1, 2, ···, n for ordinary display, whereas, as shown in Fig. 9B, graphic ROM data n, ···, 2, 1, 0 are inversely allocated to respective dot addresses 0, 1, 2, ··· , n for inverted display. In the graphic image display apparatus of Fig. 2, however, since data for a graphic to be displayed and data for an inverted graphic thereof on the graphic ROM 36 are mapped as independent sets of data, the volume of data to be stored in the graphic ROM 36 increases proportionally relative to the desired number of inverted graphics which consequently requires a large circuit. For example, when a graphic for display is inverted left/right to show the original graphic and the inverted graphic, they require the graphic ROM 36 to have a storage capacity twice as large as the capacity necessary for storing the graphic data for the original praphic. In addition, as the storage capacity of the graphic ROM 36 increases, the power consumption of the graphic image display apparatus also increases. In Fig. 10, which is a block diagram illustrating a second prior art graphic image display apparatus (see JP-A-62-192793), the parameter RAM 32 of Fig. 2 is modified into a parameter RAM 32' which further stores a bit RL for showing whether a graphic to be displayed is a normal graphic display or a right/left inverted graphic display. Also, the shift register 371 of Fig. 2 is modified into a bidirectional shift register 371' for storing display data in the line buffer 2 in a descending order or in an ascending order. That is, the graphic for display ROM data is temporarily stored in the shift register 371' and then stored in the line buffer 2 in a descending order from upper bits to lower bits or in an ascending order from lower bits to upper bits in order to invert a graphic for display left/right. That is, as shown in Fig. 11, the shift register 371' carries out a leftward shift to output graphic ROM data 0, 1, 2, ···, n for dot addresses 0, 1, 2, ···, n for normal display. On the other hand, the shift register 371' carries out a rightward shift to output inverted graphic ROM data n, ··· , 2, 1, 0 for dot addresses 0, 1, 2, ···, n. The parameter RAM 32' also stores graphic data for one frame. For example, as shown in Fig. 12, if the parameter RAM 32' stores a graphic image G1 and a graphic image G1' which is obtained by right/left inverting the graphic image, the parameter RAM 32' stores an origin coordinate (X0, Y0) = (40, F6) for the graphic image G1 designated by'a ROM address ADD0 = 0(h) and an origin coordinate (X0, Y0) = (80, F0) for the graphic image. G1' designated by a ROM address ADD0 = 0(h). In this case, the parameter RAM 32' further stores the bit RL (="0") for the graphic image G1 and the bit RL (="1") for the graphic image G1'. The bit RL generated from the parameter RAM 32' is transmitted to the bidirectional shift register 371'. In Fig. 13, which shows an example of the content of the graphic ROM 36 of Fig. 10, two graphic images G1 and G3 are stored in advance. In this case, it is unnecessary to store the graphic image G1' obtained by left/right inverting the graphic image G1, which can reduce the parameter RAM 36 in size. The operation of the apparatus of Fig. 10 is also shown in Figs. 5, 6 and 7. However, the timing diagram of Fig. 8 is replaced by a timing diagram as shown in Fig. 14. Note that, at step 503, the CPU 1 also sets a bit RL for each graphic image in the parameter RAM 32'. For example, in order to obtain an image as shown in Fig. 12, (X0, Y0, ADD0, RL) = (40(h), F6(h), 0(h), 0(h)) for PA = 5(h) (X0, Y0, ADD0, PL) = (80(h), F0(h), 0(h), 1(h)) for PA = 9(h). Also, at step 605 of Fig. 6, the timing generating circuit 34 generates an output request signal RR and transmits it to the FIFO 33. As a result, the FIFO 33 generates a parameter address PA and transmits it to the parameter RAM 32'. For example, as shown in Fig. 14, if the parameter address 5(h) is transmitted to the parameter RAM 32', (X0, Y0, ADD0, RL) = (40(h), F6(h), 0(h), 0(h)) is generated from the parameter RAM 32'. As a result, the ROM address calculating circuit 35 calculates a ROM address ADD by ADD = 0(h) + FD(h) - F6(h) = 7(h) Therefore, for graphic image G1 and Y = FD(h) shown in fig. 12, display data DA = CFE0(h) = (0000011111110011) is transmitted from the graphic ROM 36 to the bidirectional shift register 371'. Similarly, if the parameter address 9(h) is transmitted to the parameter BAM 32, (X0, Y0, ADD0, KL) = (80(h), F0(h), 0(h), 1(h)) is generated from the parameter RAM 32'. As a result, the ROM address calculating circuit 35 calculates a ROM address ADD by ADD = 0(h) + FD(h) - F0(h) = D(h) Therefore, for graphic image G1' and Y = FD(h) shown in fig. 12, display data DA = 7830(h) = (0000110000011110) is transmitted from the graphic ROM 36 to the shift register 371'. Further, at step 607 of Fig. 6, the timing generating circuit 34 generates a display start signal ST and transmits it to the bidirectional shift register 371', the counter 372 and the line buffer address counter 373. As a result, as shown in Fig. 14, if the X origin coordinate X0 is 40, the dot address X changed by the line buffer address counter 373 is 40, 41, ···, 4F. In this case, since the bit RL is "0", the birectional shift register 371' outputs the graphic data stored therein in the order of from lower to upper dots (0000011111110011). Thus, the display data DA (0000011111110011) is transmitted to the line buffer 2 in synchronization with the dot address X (40, 41, ···, 4F). Similarly, if the origin coordinate X0 is 80, the dot address X changed by the line buffer address counter 373 is 80, 81, ···, 8F. In this case, since the bit RL is "1", the bidirectional shift register 371' outputs the graphic data stored therein in the order of from upper to lower dots (0111100000110000). Thus, the inverted display data DA (0111100000110000) is transmitted to the line buffer 2 in synchronization with the dot address X (80, 81, ···, 8F). In the graphic image display apparatus of Fig. 10, however, since use is made of the bidirectional shift register 371', the circuit configuration is complex. In Fig. 15, which illustrates a first embodiment of the present invention, the output circuit 37 includes a dot selector 374 and a converter 375 instead of the bidirectional shift register 371' of Fig. 10. The dot selector 374 receives 16-bit outputs from the graphic ROM 36 in parallel, and outputs them serially in an ascending order or in a descending order in accordance with the output of the converter 375. The counter 372 also generates a 4-bit count output C1 which is cleared by the display start signal ST and is counted up by receiving the clock signal CLK. The 4-bit count output C1 is supplied to the converter 375 which, in turn, converts the 4-bit count output C1 into a 4-bit count output C2 in accordance with the bit RL. As illustrated in Fig. 16, the converter 375 is formed by four exclusive OR circuits 3750, 3751, 3752 and 3753 controlled by the bit RL. For example, if RL = "0", C2 = C1. That is, when the 4-bit count output C1 is 0, 1, ···, F(h), the 4-bit count output C2 is also 0, 1, ···, F(h). Contrary to this, if RL = "1", C2 is an inverted value of C1. That is, when the 4-bit count output C1 is 0, 1, ···, F(h), the 4-bit count output C2 is F, E, ···, 0(h). The algorithm of the apparatus of Fig. 15 is shown in Fig. 17. That is, dot addresses of the graphic for display to be stored in the line buffer 2 are rearranged into an ordinary dot order to alter the order of storing data so that the original graphic may be displayed in an ordinary dot order or in an inverted dot order be displayed in terms of horizontal direction. That is, the dot selector 374 outputs ROM data 0, 1, 2, ···, n corresponding to dot addresses 0, 1, 2, ···, n without alteration for normal display. On the other hand, the dot selector 374 inversely outputs graphic ROM data n, ···, 2, 1, 0 in correspondence to dot addresses 0, 1, 2, ···, n as a result of selecting desired dots. The operation of the apparatus of Fig. 15 is essentially the same as that of the apparatus of Fig. 10. That is, the operation of the apparatus of Fig. 15 is also shown in Pigs. 5, 6 and 7. However, the timing diagram of Fig. 14 is replaced by a timing diagram as shown in Fig. 18. Note that, at step 607 of Fig. 6, the timing generating circuit 34 generates a display start signal ST and transmits it to the counter 372 and the line buffer address counter 373. As a result, as shown in Fig. 18, if the X origin coordinate X0 is 40, the dot address X changed by the line buffer address counter 373 is 40, 41, ···, 4F. In this case, since the bit RL is "0", the output C2 of the converter 375 is the same as the output C1 of the counter 372, so that the output C2 is 0, 1, ···, F(h). Therefore, for the graphic image G1 and Y = FD(h) shown in fig. 12, the dot selector 374 outputs the graphic data stored therein in the order of from lower to upper dots (0000011111110011). Thus, the display data DA (0000011111110011) is transmitted to the line buffer 2 in synchronization with the dot address X (40, 41, ···, 4F). Similarly, if the origin coordinate X0 is 80, the dot address X changed by the line buffer address counter 373 is 80, 81, ···, 8F. In this case, since the bit RL is "1", the output C2 of the converter 375 is opposite to the output C1 of the counter 372, so that the output C2 is F, G, ···, 0(h). Therefore, for the graphic image G1' and Y = FD(h) shown in fig. 12, the dot selector 374 outputs the graphic data stored therein in the order of from upper to lower dots (0111100000110000). Thus, the inverted display data DA (0111100000110000) is transmitted to the line buffer 2 in synchronization with the dot address X (80, 81, ···, 8F). In Fig. 19, which illustrates a second embodiment of the present invention, the output circuit 37 includes a converter 376 and a selector 377 instead of the converter 375 of Fig. 15. That is, the count output C1 of the counter 372 is supplied without modification to the dot selector 374, so that the dot selector 374 receives 16-bit outputs from the graphic ROM 36 in parallel, and outputs them serially in an ascending order in accordance with the count output C1 of the counter 372. Also, the converter 376 converts the X origin coordinate X0 into an X origin coordinate X0' showing a right end represented by X0' = X0 + F(h) As illustrated in Fig. 20, the converter 376 is formed by four exclusive OR circuits 3760, 3761, 3762 and 3763 controlled by the bit RL. That is, only the four lower bits of the X origin coordinate X0 are supplied to the exclusive OR circuits 3760, 3761, 3762 and 3763. For example, if RL = "0", X0' = X0. That is, when X0 is 80, 81, ···, 8F(h), X0' is also 80, 81, ···, 8F(h). Contrary to this, if RL = "1", the four lower bits of X0 are inverted to form X0'. That is, when X0 is 80, 81, ···, 8F(h), X0' is 8F, 8G, ···, 80(h). Also, in Fig. 19, the line buffer address counter 373 of Fig. 15 is modified into an up/down type line buffer address counter 373' which is controlled by the bit RL. That is, if RL = "0", the line buffer address counter 373' is an up counter, while, if RL = "1", the line buffer 373' is a down counter. The algorithm of the apparatus of Fig. 19 is shown in Fig. 21. That is, the mode of supplying addresses to the line buffer 2 is inverted to alter the data storing order to make it conform to an inverse dot order to consequently display a graphic produced by realizing a horizontal inverse dot order for the original graphic. The operation of the apparatus of Fig. 19 is about the same as that of the apparatus of Fig. 10. That is, the operation of the apparatus of Fig. 19 is also shown in Figs. 5, 6 and 7. However, the timing diagram of Fig. 14 is replaced by a timing diagram as shown in Fig. 22. Note that, at step 607 of Fig. 6, the timing generating circuit 34 generates a display start signal ST and transmits it to the counter 372 and the line buffer address counter 373. As a result, as shown in Fig. 22, if the X origin coordinate X0 is 40, since RL = "0", the selector 377 selects X0 and the line buffer address counter 373' is an up counter. Therefore, the dot address X changed by the line buffer address counter 373' is 40, 41, ···, 4F. In this case, for the graphic image G1 and Y = FD(h) shown in fig. 12, the dot selector 374 outputs the graphic data stored therein in the order of from lower to upper dots (0000011111110011). Thus, the display data DA (0000011111110011) is transmitted to the line buffer 2 in synchronization with the dot address X (40, 41, ···, 4F). Similarly, if the origin coordinate X0 is 80, since RL = "1", the selector 377 selects X0' and the line buffer address counter 373' is a down counter. Therefore, the dot address X changed by the line buffer address counter 373' is 8F, 8G, ---, 80. In this case, for the graphic image G1' and Y = FD(h) shown in fig. 12, the dot selector 374 also outputs the graphic data stored therein in the order of from lower to upper dots (0000110000011110). Thus, the display data DA (0000110000011110) is transmitted to the line buffer 2 in synchronization with the dot address X (8F, 8G, ···, 80). In Fig. 23, which illustrates a third embodiment of the present invention, the output circuit 37 includes a line buffer address calculating circuit 378 instead of the converter 376, the selector 377 and the line buffer address counter 373' of Fig. 19. As illustrated in Fig. 24, the line buffer address calculating circuit 378 is formed by four exclusive OR circuits 3780, 3781, 3782 and 3783 controlled by the bit RL, and an adder 3784 for adding the 4-bit output of the exclusive OR circuits 3780, 3781, 3782 and 3783 to the 4 lower bits of the X origin coordinate X0. That is, if RL = "0", the 4-bit output C1 of the counter 372 is supplied without modification to the adder 3784, while, if RL = "1", the 4-bit output C1 of the counter 372 is inverted and then supplied to the adder 3784. Note that the 4-bit output C1 of the counter 372 is counted up after the generation of the display start signal ST: C1 = 0 → 1 → ··· → F(h) Therefore, if RL = "0", the line buffer address X is changed by X0 → X0 + 1 → X0 + 2 → ··· → X0 + F(h). On the other hand, if RL = "1", the line buffer address X is changed by X0 + F(h) → X0 + E(h) → X0 + D(h) → ··· → X0. The algorithm of the apparatus of Fig. 23 is also shown in Fig. 21. That is, the mode of supplying addresses to the line buffer 2 is inverted to alter the data storing order to make it conform to an inverse dot order to consequently display a graphic produced by realizing a horizontal inverse dot order for the original graphic. The operation of the apparatus of Fig. 23 is about the same as that of the apparatus of Fig. 19. That is, the operation of the apparatus of Fig. 23 is also shown in Figs. 5, 6 and 7. However, the timing diagram of Fig. 22 is replaced by a timing diagram as shown in Fig. 25. Note that, at step 607 of Fig. 6, the timing generating circuit 34 generates a display start signal ST and transmits it to the counter 372. As a result, as shown in Fig. 25, if the X origin coordinate X0 is 40, since RL = "0", the outputs of the exclusive OR circuits 3780, 3781, 3782 and 3783 are the same as the output C1 of the counter 372, and therefore are changed from 0 via 1, 2, ···, E(h) to F(h). Therefore, the line buffer (dot) address X changed by the adder 3784 is 40, 41, ··· 4F. In this case, for graphic image G1 and Y = FD(h) shown in fig. 12, the dot selector 374 outputs the graphic data stored therein in the order of from lower to upper dots (000001111111001 1). Thus, the display data DA (0000011111110011) is transmitted to the line buffer 2 in synchronization with the dot address X (40, 41, ···, 4F). Similarly, if the X origin coordinate X0 is 80, since RL = "1", the outputs of the exclusive OR circuits 3780, 3781, 3782 and 3783 are obtained by inverting the output C1 of the counter 372, and therefore are changed from F(h) via E(h), D(h), ... to 0. Therefore, the line buffer (dot) address X changed by the adder 3784 is 8F, 8G, ···, 80. In this case, the dot selector 374 also outputs the graphic data stored therein in the order of from lower to upper dots (0000110000011110). Thus, the display data DA (0000110000011110) is transmitted to the line buffer 2 in synchronization with the dot address X (8F, 8G, ···, 80). In Fig. 26, which illustrates a fourth embodiment of the present invention, the parameter RAM 32' of Fig. 15 is modified into a parameter RAM 32" which further stores a bit UD for showing whether a graphic to be displayed is a normal graphic display or an up/down inverted graphic display. Also, a converter 38 for up/down inverting a graphic image is inserted between the ROM address calculating circuit 35 and the graphic ROM 36 of Fig. 15. As illustrated in Fig. 27, the converter 386 is formed by four exclusive OR circuits 380, 381, 382 and 383 controlled by the bit UD. That is, only the four lower bits of the scan line address are supplied tb the exclusive OR circuits 380, 381, 382 and 383. For example, if UD = "0", ADD' = ADD. Contrary to this, if UD = "1", the four lower bits of ADD are inverted to form ADD'. The algorithm of the apparatus of Fig. 26 is shown in Fig. 28. That is, dot addresses of the graphic for display to be stored in the line buffer 2 are rearranged into an ordinary dot order to alter the order of storing data so that the original graphic may be displayed in an ordinary dot order, in an inverted dot order to be displayed in terms of horizontal direction (G3 → G4), in an inverted order to be displayed in terms of vertical direction (G3 → G5), or in an inverted order to be displayed in terms of both horizontal and vertical directions (G3 → G6). The operation of the apparatus of Fig. 26 is essentially the same as that of the apparatus of Fig. 15. That is, the operation of the apparatus of Fig. 26 is also shown in Figs. 5, 6 and 7. However, the timing diagram of Fig. 18 is replaced by a timing diagram as shown in Fig. 30. Note that, at step 503, the CPU 1 also sets a bit UD for each graphic image in the parameter RAM 32". For example, in order to obtain an image as shown in Fig. 29, (X0, Y0, ADD0, RL, UD) = (15(h), 70(h), 20(h), 0(h), 0(h)) for PA = 4(h) (X0, Y0, ADD0, RL, UD) = (46(h), 73(h), 20(h), 1(h), 1(h)) for PA = 6(h). Also, at step 605, the timing generating circuit 34 generates an output request signal RQ and transmits it to the FIFO 33. As a result, the FIFO 33 generates a parameter address PA and transmits it to the parameter RAM 32. For example, as shown in Fig. 26, if the parameter address 4(h) is transmitted to the parameter RAM 32", (X0, Y0, ADD0, RL, UD) = (15(h), 70(h), 20(h), 0(h), 0(h)) is generated from the parameter RAM 32". As a result, the ROM address calculating circuit 35 calculates a ROM address ADD by ADD = 20(h) + 78(h) - 70(h) = 28(h) Also, since UD = "0", ADD' = ADD = 28(h). In addition, since the bit RL is "0", the output C2 of the converter 375 is the same as the output C1 of the counter 372, so that the output C2 is 0, 1, ···, F(h). Therefore, for graphic image G4 and Y = 78(h) shown in fig.29, the dot selector 374 outputs the graphic data stored therein in the order of from lower to upper dots (1000111011100110). In this case, since the X origin coordinate X0 is 15, the dot address X changed by the line buffer address counter 373 is 15, 16, ···, 24. Thus, the display data DA (1000111011100110) is transmitted to the line buffer 2 in synchronization with the dot address X (15, 16, ···, 24). Similarly, if the parameter address 6(h) is transmitted to the parameter RAM 32", (X0, Y0, ADD0, RL, UD) = (46(h), 73(h), 20(h), 1(h), 1(h)) is generated from the parameter RAM 32". As a result, the ROM address calculating circuit 35 calculates a ROM address ADD by ADD = 20(h) + 78(h) - 73(h) = 25(h) Also, since UD = "1", ADD' = 2A(h). In addition, since the bit RL is "1", the output C2 of the converter 375 is opposite to the output C1 of the counter 372, so that the output C2 is F, E, ···, 0(h). Therefore, for graphic image G4 and Y = 78(h) shown in fig. 29, the dot selector 374 outputs the graphic data stored therein in the order of from upper to lower dots (0011111101000001). In this case, since the X origin coordinate X0 is 46, the dot address X changed by the line buffer address counter 373 is 46, 47, ···, 55. Thus, the display data DA (0011111101000001) is transmitted to the line buffer 2 in synchronization with the dot address X (46, 47, ..., 55). Note that the converter 38 of Fig. 26 can be introduced into the apparatuses of Figs. 19 and 23 simultaneously with the replacement of the parameter RAM 32' with the parameter RAM 32" of Fig. 26. As explained hereinabove, according to the present invention, since use is made of either or both of a data alteration means for altering the output order of pixel dots of read graphic image data or line buffer address alteration means, the data for a graphic to be displayed and the data for an inverted graphic thereof do not need to be mapped on a graphic ROM as independent sets of data so that the necessary capacity of the graphic ROM can be greatly reduced. Meanwhile, as data are handled on a dot by dot basis, it is now possible to invert or replace selected dots in the original graphic and display only selected dots of the original graphic.

Claims: A graphic image display apparatus comprising a CPU (1) ; a line buffer (2) for temporarily storing graphic data for display; and a display control circuit (3) connected between said CPU and said line buffer comprising a data interface (31) connected to said CPU; a parameter RAM (32'), connected to said data interface, for storing an X origin coordinate (X0) and a Y origin coordinate (Y0) of said graphic data for display, an origin ROM address (ADD0) of said graphic ROM for showing said source data, and right/left inverting data (RL); a FIFO (33), connected between said interface and said parameter RAM, for inputting addresses of said parameter from said CPU and outputting said addresses of said parameter RAM to said parameter RAM in response to a request signal (RQ); a timing generating circuit (34), connected to said FIFO, for counting horizontal synchronization signals (HSYNC) upon receipt of a vertical synchronization signal (VSYNC) to generate a scan line count signal (Y) while generating said request signal and a display start signal (ST); and a ROM address calculating circuit (35), connected to said parameter RAM and said timing generating circuit, for calculating an address of said graphic ROM in accordance with said origin ROM address, said scan line count signal and said Y origin coordinate, said graphic ROM (36) being connected to said ROM address calculating circuit and generating said graphic data accessed by said address of said graphic ROM for said output circuit, characterized in that said display control circuit comprises: an output circuit (37) connected to said graphic ROM and having data dot selecting circuit (372, 374, 375) for changing a dot order of said graphic data for display and a line buffer address counter means (373, 373', 372, 378) for generating a line buffer address representing a storage address of said graphic data for display to be supplied to said line buffer. The apparatus as set forth in claim 1, wherein said data dot selecting circuit comprises: a counter (372) for generating an ordinary order of dot addresses; a converter (375), connected to said counter, for inverting said ordinary order of dot addresses to generate an inverted order of dot addresses in response to a right/left inverting signal (RL); and a dot selector (374), connected to said graphic ROM and said converter, for selecting dots of said graphic data for display in accordance with one of said ordinary order and said inverted order. The apparatus as set forth in claim 1, wherein said line buffer address counter means comprises: a converter (376) for converting an X origin coordinate (X0) of said graphic data for display into a right end (X0') of said graphic data for display; a selector (377), connected to said converter, for selecting one of said X origin coordinate and said right end of said graphic data for display; and an up/down counter (373'), connected to said selector, for incrementing said line buffer address from said X origin coordinate in response to a first state of a right/left inverting signal (RL) and decrementing said line buffer address from said right end in response to a second state of said right/left inverting signal. The apparatus as set forth in claim 1, wherein said line buffer address counter means comprises: a counter (372) for generating an ordinary order of dot addresses; a converter (3780 ∼ 3783) connected to said counter, for inverting said ordinary order of dot addresses to generate an inverted order of dot addresses in response to a right/left inverting signal (RL); and an adder (3784), connected to said converter, for incrementing said line buffer address from said X origin coordinate by adding said ordinary order of dot addresses to said X origin coordinate in response to a first state of a right/left inverting signal (RL) and decrementing said line buffer address from said X origin coordinate plus a maximum value of said inverted order of dot addresses by adding said inverted order of dot addresses to said X origin coordinate. The apparatus as set forth in claim 1, wherein said display control circuit further comprises a converter (38), connected to said graphic ROM, for inverting a part of an address of said ROM. The apparatus as set forth in claim 1, wherein said parameter RAM (32') further stores said up/down inverting data and, said display control circuit further comprising: a converter (38) for receiving a ROM address (ADD) to invert a part of said ROM address in response to said up/down inverting data (UD).

Inventors: MIZUTANI KENICHI, MIZUTANI, KENICHI, Mizutani, Kenichi NEC IC Microcomputer Systems Ltd
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1997
Main classification: G06T3
IPC codes: G09G5, G06F3, G06T3