|
|||
Each character is displayed as 12x6 pixels, (which takes 24x13 pixels on the screen), but the upper three (six on the screen) and the rightmost one (three on screen) pixels are used only for frame pseudographic characters, so all ASCII characters are displayed as 9x5 pixels. Most of them do not use the two lower rows, so the basic character resolution is 7x5 pixels for all uppercase and most lowercase and special characters. There are the total of 256 characters. Codes 0x00-0x1F are used for the special frame pseudographics characters, codes 0x20-0x7F is the standard ASCII set and codes 0x80-0xFF are from Windows Codepage 1252, used for HTML pages. You can see all characters if you press Print Screen key in demo mode. This part of the screen is represented on the picture at the end of this page. |
|||
|
|||
The part of the screenshot at the right shows how pixels are arranged in character generator, with "ones" represented by white background. It is located in the file TABLES.INC, under the symbol name CHARGEN:. The practical problem with this lookup table is that bytes are arranged in the Program memory so that they are somehow unfamiliar and not so easy to modify. The reason for this is that character code, which addresses the character generator, must be input to the video routine as the whole (low) byte, and the arrangement in the character generator is such that the uppermost pixel rows for all 256 characters are located at page 0, the next row at page 1 and so on (all pages are aligned to 0x100). As it would be very hard to modify a single character, a large number of macro calls is used to "rearrange" those positions in the program space, so they are arranged more user-friendly in the buffer file. If the macros were not used, the bytes for each character would be located far away one from another1. You will probably want to modify or replace some characters, especially codes 128-255. Be careful not to use the upper row or the rightmost pixel, unless you want to make the character which stretches to the top of the 24x13 area on the screen. The same applies to the rightmost pixel (bit 0). |
![]() |
||
|
|||