- changed VGA register offset and bits

Committed on the Free edition of March Hare Software CVSNT Server.
Upgrade to CVS Suite for more features and support:
http://march-hare.com/cvsnt/


git-svn-id: http://moon:8086/svn/vhdl/trunk@614 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2009-11-05 17:15:28 +00:00
parent c9ba66b646
commit d8517c136e
2 changed files with 46 additions and 14 deletions
+25 -6
View File
@@ -242,18 +242,37 @@ void _ser_putchar(char c)
void cg_writechar(char c)
{
volatile UINT32 *pCG_data = (UINT32*)sys_vga_data;
volatile UINT32 *pCG_ctrl = (UINT32*)sys_vga_ctrl;
volatile UINT32 *pCG_ascii = (UINT32*)sys_vga_ascii;
while (!(*pCG_data & 1));
*pCG_data = (UINT32)c;
while (!(*pCG_ctrl & sys_vga_bit_cgrdy));
*pCG_ascii = (UINT32)c;
}
void cg_clr_line(void)
{
volatile UINT32 *pCG_clrline = (UINT32*)sys_vga_clrline;
volatile UINT32 *pCG_ctrl = (UINT32*)sys_vga_ctrl;
while (!(*pCG_ctrl & sys_vga_bit_cgrdy));
*pCG_ctrl |= sys_vga_bit_clrline;
}
void cg_clr_screen(void)
{
volatile UINT32 *pCG_ctrl = (UINT32*)sys_vga_ctrl;
volatile UINT32 *pCG_x = (UINT32*)sys_vga_posx;
volatile UINT32 *pCG_y = (UINT32*)sys_vga_posy;
while (!(*pCG_ctrl & sys_vga_bit_cgrdy));
*pCG_ctrl |= sys_vga_bit_clrscr;
// Cursor home
while (!(*pCG_ctrl & sys_vga_bit_cgrdy));
*pCG_x = 0;
while (!(*pCG_ctrl & sys_vga_bit_cgrdy));
*pCG_y = 0;
while (!(*pCG_clrline & 1));
*pCG_clrline = 1;
}
void _cg_putchar(char c)
+21 -8
View File
@@ -58,14 +58,19 @@
#define sys_usb_mbx 0xA0020004
#define sys_usb_addr 0xA0020008
#define sys_usb_status 0xA002000C
#define sys_vga_data 0xA0030004
#define sys_vga_posx 0xA0030008
#define sys_vga_posy 0xA0030010
#define sys_vga_clrscr 0xA0030020
#define sys_vga_clrline 0xA0030040
#define sys_vga_cgcol 0xA0030080
#define sys_vga_mctrl 0xA0030100
#define sys_vga_moffs 0xA0030200
#define sys_vga_ctrl 0xA0030000 // R/W
#define sys_vga_bit_cgrdy 0x00000001 // RO
#define sys_vga_bit_msten 0x00000002 // R/W
#define sys_vga_bit_clrscr 0x00000010 // WO
#define sys_vga_bit_clrline 0x00000020 // WO
#define sys_vga_ascii 0xA0030004 // R/W
#define sys_vga_posx 0xA0030008 // R/W
#define sys_vga_posy 0xA003000C // R/W
#define sys_vga_cgcol 0xA0030010 // R/W
#define sys_vga_moffs 0xA0030014 // R/W
#define sys_vga_resx 0xA0030018 // RO
#define sys_vga_resy 0xA003001C // RO
#define sys_vga_fps 0xA0030020 // RO
#define sys_ac97_stat 0xA0040000
#define sys_ac97_ctrl 0xA0040000
#define sys_ac97_acstat 0xA0040400
@@ -130,5 +135,13 @@ void sleep(unsigned ms);
void PrintBuffer8(UINT8 *pBuf, int nbpr, int len);
void memdump(UINT8 *pBuf, int print_offset_only, int num_bytes_per_row, int len);
// ------------------------------------
// Character Generator functions
// ------------------------------------
void cg_writechar(char c);
void cg_clr_line(void);
void cg_clr_screen(void);
void _cg_putchar(char c);
#endif // LIBSYS_H