Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			101 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Public Domain Curses */
 | 
						|
 | 
						|
#include "pdcdos.h"
 | 
						|
 | 
						|
RCSID("$Id: pdcgetsc.c,v 1.42 2008/07/13 16:08:17 wmcbrine Exp $")
 | 
						|
 | 
						|
#include <stdlib.h>
 | 
						|
 | 
						|
/* return width of screen/viewport */
 | 
						|
 | 
						|
int PDC_get_columns(void)
 | 
						|
{
 | 
						|
    PDCREGS regs;
 | 
						|
    int cols;
 | 
						|
    const char *env_cols;
 | 
						|
 | 
						|
    PDC_LOG(("PDC_get_columns() - called\n"));
 | 
						|
 | 
						|
    /* use the value from COLS environment variable, if set. MH 10-Jun-92 */
 | 
						|
    /* and use the minimum of COLS and return from int10h    MH 18-Jun-92 */
 | 
						|
 | 
						|
    regs.h.ah = 0x0f;
 | 
						|
    PDCINT(0x10, regs);
 | 
						|
    cols = (int)regs.h.ah;
 | 
						|
 | 
						|
    env_cols = getenv("COLS");
 | 
						|
 | 
						|
    if (env_cols)
 | 
						|
        cols = min(atoi(env_cols), cols);
 | 
						|
 | 
						|
    PDC_LOG(("PDC_get_columns() - returned: cols %d\n", cols));
 | 
						|
 | 
						|
    return cols;
 | 
						|
}
 | 
						|
 | 
						|
/* get the cursor size/shape */
 | 
						|
 | 
						|
int PDC_get_cursor_mode(void)
 | 
						|
{
 | 
						|
    PDC_LOG(("PDC_get_cursor_mode() - called\n"));
 | 
						|
 | 
						|
    return getdosmemword(0x460);
 | 
						|
}
 | 
						|
 | 
						|
/* return number of screen rows */
 | 
						|
 | 
						|
int PDC_get_rows(void)
 | 
						|
{
 | 
						|
    const char *env_rows;
 | 
						|
    int rows;
 | 
						|
 | 
						|
    PDC_LOG(("PDC_get_rows() - called\n"));
 | 
						|
 | 
						|
    /* use the value from LINES environment variable, if set. MH 10-Jun-92 */
 | 
						|
    /* and use the minimum of LINES and *ROWS.                MH 18-Jun-92 */
 | 
						|
 | 
						|
    rows = getdosmembyte(0x484) + 1;
 | 
						|
    env_rows = getenv("LINES");
 | 
						|
 | 
						|
    if (env_rows)
 | 
						|
        rows = min(atoi(env_rows), rows);
 | 
						|
 | 
						|
    if (rows == 1 && pdc_adapter == _MDS_GENIUS)
 | 
						|
        rows = 66;
 | 
						|
    if (rows == 1 && pdc_adapter == _MDA)
 | 
						|
        rows = 25;
 | 
						|
 | 
						|
    if (rows == 1)
 | 
						|
    {
 | 
						|
        rows = 25;
 | 
						|
        pdc_direct_video = FALSE;
 | 
						|
    }
 | 
						|
 | 
						|
    switch (pdc_adapter)
 | 
						|
    {
 | 
						|
    case _EGACOLOR:
 | 
						|
    case _EGAMONO:
 | 
						|
        switch (rows)
 | 
						|
        {
 | 
						|
        case 25:
 | 
						|
        case 43:
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            rows = 25;
 | 
						|
        }
 | 
						|
        break;
 | 
						|
 | 
						|
    case _VGACOLOR:
 | 
						|
    case _VGAMONO:
 | 
						|
        break;
 | 
						|
 | 
						|
    default:
 | 
						|
        rows = 25;
 | 
						|
        break;
 | 
						|
    }
 | 
						|
 | 
						|
    PDC_LOG(("PDC_get_rows() - returned: rows %d\n", rows));
 | 
						|
 | 
						|
    return rows;
 | 
						|
}
 |