Updated glk driver:
* Removed all reference to lcd.* ; replaced with glk->* Field testing is required.
This commit is contained in:
+24
-24
@@ -242,9 +242,9 @@ int glk_init(struct lcd_logical_driver *driver, char *args)
|
|||||||
|
|
||||||
void glk_close()
|
void glk_close()
|
||||||
{
|
{
|
||||||
if(lcd.framebuf != NULL) free(lcd.framebuf);
|
if(glk->framebuf != NULL) free(glk->framebuf);
|
||||||
|
|
||||||
lcd.framebuf = NULL;
|
glk->framebuf = NULL;
|
||||||
|
|
||||||
glkclose( PortFD ) ;
|
glkclose( PortFD ) ;
|
||||||
}
|
}
|
||||||
@@ -259,12 +259,12 @@ void glk_clear_forced()
|
|||||||
// puts( "REALLY CLEARING the display" );
|
// puts( "REALLY CLEARING the display" );
|
||||||
clearcount = CLEARCOUNT ;
|
clearcount = CLEARCOUNT ;
|
||||||
glkputl( PortFD, GLKCommand, 0x58, EOF );
|
glkputl( PortFD, GLKCommand, 0x58, EOF );
|
||||||
memset(screen_contents, ' ', lcd.wid*lcd.hgt);
|
memset(screen_contents, ' ', glk->wid*glk->hgt);
|
||||||
}
|
}
|
||||||
void glk_clear()
|
void glk_clear()
|
||||||
{
|
{
|
||||||
// puts( "glk_clear( )" );
|
// puts( "glk_clear( )" );
|
||||||
memset(lcd.framebuf, ' ', lcd.wid*lcd.hgt);
|
memset(glk->framebuf, ' ', glk->wid*glk->hgt);
|
||||||
if( --clearcount < 0 ) {
|
if( --clearcount < 0 ) {
|
||||||
glk_clear_forced( );
|
glk_clear_forced( );
|
||||||
};
|
};
|
||||||
@@ -277,7 +277,7 @@ void glk_clear()
|
|||||||
void glk_flush()
|
void glk_flush()
|
||||||
{
|
{
|
||||||
// puts( "glk_flush( )" );
|
// puts( "glk_flush( )" );
|
||||||
lcd.draw_frame(lcd.framebuf);
|
glk->draw_frame(glk->framebuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -291,11 +291,11 @@ void glk_string(int x, int y, char string[])
|
|||||||
|
|
||||||
// printf( "glk_string( %d, %d, \"%s\" )\n", x, y, string );
|
// printf( "glk_string( %d, %d, \"%s\" )\n", x, y, string );
|
||||||
|
|
||||||
if( x > lcd.wid || y > lcd.hgt ) {
|
if( x > glk->wid || y > glk->hgt ) {
|
||||||
return ;
|
return ;
|
||||||
};
|
};
|
||||||
|
|
||||||
for( p = string ; *p && x <= lcd.wid ; ++x, ++p ) {
|
for( p = string ; *p && x <= glk->wid ; ++x, ++p ) {
|
||||||
glk_chr( x, y, *p );
|
glk_chr( x, y, *p );
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -336,7 +336,7 @@ void glk_chr(int x, int y, char c)
|
|||||||
myc = 133 ;
|
myc = 133 ;
|
||||||
};
|
};
|
||||||
|
|
||||||
lcd.framebuf[(y*lcd.wid) + x] = myc;
|
glk->framebuf[(y*glk->wid) + x] = myc;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -431,7 +431,7 @@ void glk_init_num()
|
|||||||
void glk_num(int x, int num)
|
void glk_num(int x, int num)
|
||||||
{
|
{
|
||||||
// printf("BigNum(%i, %i)\n", x, num);
|
// printf("BigNum(%i, %i)\n", x, num);
|
||||||
lcd.framebuf[x-1] = num + '0' ;
|
glk->framebuf[x-1] = num + '0' ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
@@ -447,13 +447,13 @@ void glk_set_char(int n, char *dat)
|
|||||||
//
|
//
|
||||||
void glk_vbar(int x, int len)
|
void glk_vbar(int x, int len)
|
||||||
{
|
{
|
||||||
int y = lcd.hgt ;
|
int y = glk->hgt ;
|
||||||
|
|
||||||
// printf( "glk_vbar( %d, %d )\n", x, len );
|
// printf( "glk_vbar( %d, %d )\n", x, len );
|
||||||
while( len > lcd.cellhgt ) {
|
while( len > glk->cellhgt ) {
|
||||||
glk_chr( x, y, 255 );
|
glk_chr( x, y, 255 );
|
||||||
--y ;
|
--y ;
|
||||||
len -= lcd.cellhgt ;
|
len -= glk->cellhgt ;
|
||||||
};
|
};
|
||||||
|
|
||||||
if( y >= 0 ) {
|
if( y >= 0 ) {
|
||||||
@@ -478,13 +478,13 @@ void glk_vbar(int x, int len)
|
|||||||
void glk_hbar(int x, int y, int len)
|
void glk_hbar(int x, int y, int len)
|
||||||
{
|
{
|
||||||
// printf( "glk_hbar( %d, %d, %d )\n", x, y, len );
|
// printf( "glk_hbar( %d, %d, %d )\n", x, y, len );
|
||||||
while( len > lcd.cellwid ) {
|
while( len > glk->cellwid ) {
|
||||||
glk_chr( x, y, 255 );
|
glk_chr( x, y, 255 );
|
||||||
++x ;
|
++x ;
|
||||||
len -= lcd.cellwid ;
|
len -= glk->cellwid ;
|
||||||
};
|
};
|
||||||
|
|
||||||
if( x <= lcd.wid ) {
|
if( x <= glk->wid ) {
|
||||||
int lastc ;
|
int lastc ;
|
||||||
switch( len ) {
|
switch( len ) {
|
||||||
case 0 : lastc = ' ' ; break ;
|
case 0 : lastc = ' ' ; break ;
|
||||||
@@ -529,11 +529,11 @@ void glk_icon(int which, char dest)
|
|||||||
|
|
||||||
old = CGRAM[(int)dest] ;
|
old = CGRAM[(int)dest] ;
|
||||||
CGRAM[(int)dest] = new ;
|
CGRAM[(int)dest] = new ;
|
||||||
p = lcd.framebuf ;
|
p = glk->framebuf ;
|
||||||
q = screen_contents ;
|
q = screen_contents ;
|
||||||
|
|
||||||
/* Replace all old icons with new icon in new frame */
|
/* Replace all old icons with new icon in new frame */
|
||||||
for( count = lcd.wid * lcd.hgt ; count ; --count ) {
|
for( count = glk->wid * glk->hgt ; count ; --count ) {
|
||||||
if( *q == old ) {
|
if( *q == old ) {
|
||||||
// printf( "icon %d to %d at %d\n", old, new, q - screen_contents );
|
// printf( "icon %d to %d at %d\n", old, new, q - screen_contents );
|
||||||
*p = new ;
|
*p = new ;
|
||||||
@@ -570,14 +570,14 @@ void glk_draw_frame(char *dat)
|
|||||||
int xs ;
|
int xs ;
|
||||||
char * ps = NULL ;
|
char * ps = NULL ;
|
||||||
|
|
||||||
// printf( "glk_draw_frame( %p ) lcd.framebuf = %p\n", dat, lcd.framebuf );
|
// printf( "glk_draw_frame( %p ) glk->framebuf = %p\n", dat, glk->framebuf );
|
||||||
|
|
||||||
p = lcd.framebuf ;
|
p = glk->framebuf ;
|
||||||
q = screen_contents ;
|
q = screen_contents ;
|
||||||
|
|
||||||
for( y = 0 ; y < lcd.hgt ; ++y ) {
|
for( y = 0 ; y < glk->hgt ; ++y ) {
|
||||||
xs = -1 ; /* XStart not set */
|
xs = -1 ; /* XStart not set */
|
||||||
for( x = 0 ; x < lcd.wid ; ++x ) {
|
for( x = 0 ; x < glk->wid ; ++x ) {
|
||||||
if( *q == *p && xs >= 0 ) {
|
if( *q == *p && xs >= 0 ) {
|
||||||
/* Write accumulated string */
|
/* Write accumulated string */
|
||||||
glkputl( PortFD, GLKCommand, 0x79, xs*6+1, y*8, EOF );
|
glkputl( PortFD, GLKCommand, 0x79, xs*6+1, y*8, EOF );
|
||||||
@@ -589,13 +589,13 @@ void glk_draw_frame(char *dat)
|
|||||||
ps = p ;
|
ps = p ;
|
||||||
xs = x ;
|
xs = x ;
|
||||||
};
|
};
|
||||||
*q++ = *p++ ; /* Update screen_contents from lcd.framebuf */
|
*q++ = *p++ ; /* Update screen_contents from glk->framebuf */
|
||||||
};
|
};
|
||||||
if( xs >= 0 ) {
|
if( xs >= 0 ) {
|
||||||
/* Write accumulated line */
|
/* Write accumulated line */
|
||||||
glkputl( PortFD, GLKCommand, 0x79, xs*6+1, y*8, EOF );
|
glkputl( PortFD, GLKCommand, 0x79, xs*6+1, y*8, EOF );
|
||||||
glkputa( PortFD, lcd.wid - xs, ps );
|
glkputa( PortFD, glk->wid - xs, ps );
|
||||||
// printf( "draw_frame: Writing at (%d,%d) for %d\n", xs, y, lcd.wid-xs );
|
// printf( "draw_frame: Writing at (%d,%d) for %d\n", xs, y, glk->wid-xs );
|
||||||
};
|
};
|
||||||
|
|
||||||
}; /* For y */
|
}; /* For y */
|
||||||
|
|||||||
Reference in New Issue
Block a user