Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
builderpages:plasmo:vgarc1:vgarc1home [2023/02/09 18:16]
plasmo
builderpages:plasmo:vgarc1:vgarc1home [2023/02/10 23:08] (current)
plasmo
Line 33: Line 33:
 The video display is 64 columns and 48 row of monochrome texts organized as follow: the 1st video RAM location corresponds to character at the upper leftmost corner of the display, i.e. first character of the first line; next location is 2nd character of the first line; 64th video RAM location is the last character of the first line; 65th video RAM location is first character of the 2nd line; and 3072th location is the last character of the 48th line. Video memory can be written anytime without snowing, flicking or other undesirable display artifacts. Font lookup tables start from dual port RAM location 3073-4096 such that locations 3073 to 3080 is the font table for character value 0x0; and locations 4089-4096 is the font table for character value 0x7F. Each byte of the 8-byte font table represents 8 pixels of a 8×8 pixel character graphic such that first font byte is the top 8 pixels and 8th font byte is the bottom 8 pixels of a character graphic; most significant bit is leftmost pixel while least significant bit is rightmost pixel. To make the text more readable, the VGA controller generates 2 blank pixel lines between each row of characters. This way the font table graphic can be as large as 7 pixel wide, 8 pixel tall and not merge with the characters above or below the current line. Font table can be updated anytime. The video display is 64 columns and 48 row of monochrome texts organized as follow: the 1st video RAM location corresponds to character at the upper leftmost corner of the display, i.e. first character of the first line; next location is 2nd character of the first line; 64th video RAM location is the last character of the first line; 65th video RAM location is first character of the 2nd line; and 3072th location is the last character of the 48th line. Video memory can be written anytime without snowing, flicking or other undesirable display artifacts. Font lookup tables start from dual port RAM location 3073-4096 such that locations 3073 to 3080 is the font table for character value 0x0; and locations 4089-4096 is the font table for character value 0x7F. Each byte of the 8-byte font table represents 8 pixels of a 8×8 pixel character graphic such that first font byte is the top 8 pixels and 8th font byte is the bottom 8 pixels of a character graphic; most significant bit is leftmost pixel while least significant bit is rightmost pixel. To make the text more readable, the VGA controller generates 2 blank pixel lines between each row of characters. This way the font table graphic can be as large as 7 pixel wide, 8 pixel tall and not merge with the characters above or below the current line. Font table can be updated anytime.
  
-Two recently added functions are hardware cursor and hardware scrolling. Hardware cursor is a 8-pixel long, 2-pixel wide underscore activated by setting bit 8 of a text. (Text is 7-bit mapped to 128 fonts, the 8th bit was not used previously.) The second added functions is hardware scrolling that is accomplished by writing values 1 to 47 to a register to scroll up screen text by 1 to 47 rows. The rows scrolled off the top of screen are roll around to to the bottom of the screen. For a typical console application, the top row is blanked out and screen scrolled by one row, so the rolled over top row shows up as a blank line at the bottom of screen. Scrolling does not change the video RAM mapping; it changes how the RAM contents are display on the screen; so software needs to keep track of how many rows have scrolled in order to display new contents on the desired location on the screen. For an example, a stationary status bar at the bottom-most row of the screen needs to know how many rows were scrolled in order to write the updated status information at the same bottom-most row of the screen.+Two recently added functions are inverse video font and hardware scrolling. inverse video font is the inverse of standard 128 fonts. Inverse video font is activated by setting bit 8 of a text. (Text is 7-bit mapped to 128 fonts, the 8th bit was not used previously.) The second added functions is hardware scrolling that is accomplished by writing values 1 to 47 to a register to scroll up screen text by 1 to 47 rows. The rows scrolled off the top of screen are roll around to to the bottom of the screen. For a typical console application, the top row is blanked out and screen scrolled by one row, so the rolled over top row shows up as a blank line at the bottom of screen. Scrolling does not change the video RAM mapping; it changes how the RAM contents are display on the screen; so software needs to keep track of how many rows have scrolled in order to display new contents on the desired location on the screen. For an example, a stationary status bar at the bottom-most row of the screen needs to know how many rows were scrolled in order to write the updated status information at the same bottom-most row of the screen.
  
 ===== Design Information ===== ===== Design Information =====
Line 41: Line 41:
 {{:builderpages:plasmo:vgarc1:vgarc_r1_gerber.zip|Gerber photoplots}} {{:builderpages:plasmo:vgarc1:vgarc_r1_gerber.zip|Gerber photoplots}}
  
-{{:builderpages:plasmo:vgarc1:vgarc_rev1_cpld_hardware_scroll_cursor_0x0base.zip|CPLD design files}}, hardware scroll, base address 0x0, improved PS2 interface+{{:builderpages:plasmo:vgarc1:release_hardware_scroll_bit7inverse_better_ps2.zip|CPLD design files}}, hardware scroll, base address 0x0, improved PS2 interface
  
 ==== Software ==== ==== Software ====
  
-cpmvgarc.com for ZED is a CP/M program designed to run in RomWBW CP/M2.2 for RC2014 ZED.  cpmvgarc initializes the font table and install BIOS that works with PS2 keyboard and text-based video.  It needs CCP.DAT to warm boot correctly.+{{:builderpages:plasmo:vgarc1:banner_cpm_executable.zip|banner.com}}  is a CP/M program that displays a brief discription of VGARC on the VGA monitor
  
-{{:builderpages:plasmo:vgarc1:cpmvgarc_zrc_v0_3.zip|cpmvgarc.com for ZRC}}  is a CP/M program designed to run in RomWBW CP/M2.2 for ZRC.  cpmvgarc initializes the font table and install BIOS that works with PS2 keyboard and text-based video.  It needs CCP.DAT to warm boot correctly.+{{:builderpages:plasmo:vgarc1:chkfont_standard_font_cpm_executable.zip|chkfont.com}}  is a CP/M program that displays the standard text font on the VGA monitor 
 + 
 +[[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=ca2ff7&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/vgarc1/dsc_72010209.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/vgarc1/dsc_72010209.jpg?direct&400x68|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_vgarc1_dsc_72010209.jpg}}]] 
 + 
 +{{:builderpages:plasmo:vgarc1:cpmvgarc_zed_v0_1_cpm_executable.zip|cpmvgarc.com for ZED}}  is a CP/M program designed to run in RomWBW CP/M2.2 for RC2014 ZED. cpmvgarc initializes the font table and install BIOS that works with PS2 keyboard and text-based video. It needs {{:builderpages:plasmo:vgarc1:ccp_dat_warmboot_for_cpmvgarc.zip|CCP.DAT}}  to warm boot correctly. 
 + 
 +{{:builderpages:plasmo:vgarc1:cpmvgarc_zrc_v0_3_cpm_executable.zip|cpmvgarc.com for ZRC}}  is a CP/M program designed to run in RomWBW CP/M2.2 for ZRC. cpmvgarc initializes the font table and install BIOS that works with PS2 keyboard and text-based video. It needs {{:builderpages:plasmo:vgarc1:ccp_dat_warmboot_for_cpmvgarc.zip|CCP.DAT}}  to warm boot correctly. 
 + 
 +{{:builderpages:plasmo:vgarc1:blkfont_2x4_block_font_cpm_executable.zip|blkfont.com}}  is a CP/M program that displays all 256 permutation of 4×2 block. This font is used to display graphic to resolution of 256×96 
 + 
 +[[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=d6ce34&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/vgarc1/4x2_block_font.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/vgarc1/4x2_block_font.jpg?direct&400x72|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_vgarc1_4x2_block_font.jpg}}]] 
 + 
 +{{:builderpages:plasmo:vgarc1:vase_256x96_blk_font_cpm_executable.zip|Vase 256x96}}  resolution displayed via 4×2 block fonts. 
 + 
 +[[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=bc9e04&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/vgarc1/dsc_71980209.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/vgarc1/dsc_71980209.jpg?direct&300x191|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_vgarc1_dsc_71980209.jpg}}]]
  
  
builderpages/plasmo/vgarc1/vgarc1home.1675984581.txt.gz · Last modified: 2023/02/09 18:16 by plasmo
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0