function _screenBaseViewUpdate()
{
    if (_configBaseGet("_screenBaseViewDirty")) {
        $viewx = 0;
        $viewy = 0;
        $viewwidth = _configBaseGet("screenwidth") - 2;
        $viewheight = _configBaseGet("screenheight") - 2;
        //_logBaseWrite("$viewwidth  $viewheight");
        system("tput setab 0");
        system("tput cup 1 1");
        for ($j = 0; $j < $viewheight; $j++) {
            $line = '';
            for ($i = 0; $i < $viewwidth; $i++) {
                $gridvalue = _gridBaseGet($i, $j);
                $char = 32;
                if ($gridvalue != -1) {
                    $char = $gridvalue & 255;
                }
                $line .= chr($char);
            }
            print $line . "\n";
            system("tput cuf 1");
            //_logBaseWrite($line);
        }
        _cursorBasePosition();
        _configBaseSet("_screenBaseViewDirty", false);
    }
}
function _cursorBaseDown()
{
    system("tput setab 0");
    $ch = _gridBaseGetChar(_configBaseGet("cursorx") - 1, _configBaseGet("cursory") - 1);
    print $ch;
    _configBaseSet("cursory", _screenBaseGoDown(_cursorBaseGetY()));
    _cursorBasePosition();
}