*** x48_x11.c.ORIG 2006-03-24 18:20:15.010446640 -0700 --- x48_x11.c 2006-03-24 18:59:34.786706120 -0700 *************** *** 159,164 **** --- 159,167 ---- # define DEBUG_SHM 1 #endif + #define HACKWIDTH 640 + #define HACKHEIGHT 425 + typedef struct keypad_t { unsigned int width; unsigned int height; *************** *** 181,187 **** { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "but_bot", 76, 65, 65, 0, 69, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "lcd_col", 202, 221, 92, 255, 205, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "pix_col", 0, 0, 128, 0, 20, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, --- 184,190 ---- { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "but_bot", 76, 65, 65, 0, 69, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "lcd_col", 120, 130, 100, 252, 255, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "pix_col", 0, 0, 128, 0, 20, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, *************** *** 215,223 **** color_t colors_gx[] = { { "white", 255, 255, 255, 255, 255, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "left", 255, 186, 255, 255, 220, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "right", 0, 255, 204, 255, 169, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "but_top", 104, 104, 104, 0, 104, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, --- 218,226 ---- color_t colors_gx[] = { { "white", 255, 255, 255, 255, 255, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "left", 220, 88, 235, 255, 220, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "right", 106, 206, 191, 255, 169, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "but_top", 104, 104, 104, 0, 104, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, *************** *** 225,231 **** { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "but_bot", 74, 74, 74, 0, 74, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "lcd_col", 202, 221, 92, 255, 205, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "pix_col", 0, 0, 128, 0, 20, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, --- 228,234 ---- { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "but_bot", 74, 74, 74, 0, 74, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, ! { "lcd_col", 120, 130, 100, 252, 255, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, { "pix_col", 0, 0, 128, 0, 20, { 0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0 } }, *************** *** 347,480 **** button_t *buttons; button_t buttons_sx[] = { ! { "A", 0, 0, 0x14, 0, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "A", 0, 0, 0, 0, 0 }, ! { "B", 0, 0, 0x84, 50, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "B", 0, 0, 0, 0, 0 }, ! { "C", 0, 0, 0x83, 100, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "C", 0, 0, 0, 0, 0 }, ! { "D", 0, 0, 0x82, 150, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "D", 0, 0, 0, 0, 0 }, ! { "E", 0, 0, 0x81, 200, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "E", 0, 0, 0, 0, 0 }, ! { "F", 0, 0, 0x80, 250, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "F", 0, 0, 0, 0, 0 }, ! { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "PRINT", 1, 0, 0, 0 }, ! { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", "I/O", 1, 0, 0, 0 }, ! { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", "MODES", 1, 0, 0, 0 }, ! { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", "MEMORY", 1, 0, 0, 0 }, ! { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bits, "K", "LIBRARY", 1, 0, 0, 0 }, ! { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, 0, 0, 0 }, ! { "COLON", 0, 0, 0x04, 0, 100, 36, 26, WHITE, 0, 0, colon_width, colon_height, colon_bits, "M", "UP", 0, "HOME", 0, 0 }, ! { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0 }, ! { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aQ", 0, "aNUM", 0, 0 }, ! { "LEFT", 0, 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bits, "P", "GRAPH", 0, 0, 0, 0 }, ! { "DOWN", 0, 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bits, "Q", "REVIEW", 0, 0, 0, 0 }, ! { "RIGHT", 0, 0, 0x60, 250, 100, 36, 26, WHITE, 0, 0, right_width, right_height, right_bits, "R", "SWAP", 0, 0, 0, 0 }, ! { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0 }, ! { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0 }, ! { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0 }, ! { "SQRT", 0, 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bits, "V", "e", 0, "f", 0, 0 }, ! { "POWER", 0, 0, 0x51, 200, 150, 36, 26, WHITE, 0, 0, power_width, power_height, power_bits, "W", "g", 0, "LOG", 0, 0 }, ! { "INV", 0, 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bits, "X", "h", 0, "LN", 0, 0 }, ! { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0 }, ! { "NEG", 0, 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bits, "Y", "EDIT", 0, "VISIT", 0, 0 }, ! { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "2D", 0, "3D", 0, 0 }, ! { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "PURGE", 0, 0, 0, 0 }, ! { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bits, 0, "DROP", 0, "CLR", 0, 0 }, ! { "ALPHA", 0, 0, 0x35, 0, 250, 36, 26, WHITE, 0, 0, alpha_width, alpha_height, alpha_bits, 0, "USR", 0, "ENTRY", 0, 0 }, ! { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, "SOLVE", 1, 0, 0, 0 }, ! { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, "PLOT", 1, 0, 0, 0 }, ! { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, "ALGEBRA", 1, 0, 0, 0 }, ! { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bits, 0, "( )", 0, "#", 0, 0 }, ! { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bits, 0, 0, 0, 0, 0, 0 }, ! { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, "TIME", 1, 0, 0, 0 }, ! { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, "STAT", 1, 0, 0, 0 }, ! { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, "UNITS", 1, 0, 0, 0 }, ! { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bits, 0, "[ ]", 0, "_", 0, 0 }, ! { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bits, 0, 0, 0, 0, 0, 0 }, ! { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, "RAD", 0, "POLAR", 0, 0 }, ! { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, "STACK", 0, "ARG", 0, 0 }, ! { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, "CMD", 0, "MENU", 0, 0 }, ! { "MINUS", 0, 0, 0x10, 240, 350, 46, 26, WHITE, 0, 0, minus_width, minus_height, minus_bits, 0, "i", 0, "j", 0, 0 }, ! { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "ATTN", 0 }, ! { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "= ", 0, " a", 0, 0 }, ! { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, ", ", 0, " k", 0, 0 }, ! { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "l ", 0, " m", 0, 0 }, ! { "PLUS", 0, 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bits, 0, "{ }", 0, ": :", 0, 0 }, --- 350,488 ---- button_t *buttons; + #define HACKXO 317 + #define LHACKXO -3 + #define HACKYO -305 + #define LHACKYO 30 + button_t buttons_sx[] = { ! { "A", 0, 0, 0x14, 0+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "A", 0, 0, 0, 0, 0 }, ! { "B", 0, 0, 0x84, 50+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "B", 0, 0, 0, 0, 0 }, ! { "C", 0, 0, 0x83, 100+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "C", 0, 0, 0, 0, 0 }, ! { "D", 0, 0, 0x82, 150+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "D", 0, 0, 0, 0, 0 }, ! { "E", 0, 0, 0x81, 200+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "E", 0, 0, 0, 0, 0 }, ! { "F", 0, 0, 0x80, 250+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "F", 0, 0, 0, 0, 0 }, ! { "MTH", 0, 0, 0x24, 0+HACKXO, 50+HACKYO, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "PRINT", 1, 0, 0, 0 }, ! { "PRG", 0, 0, 0x74, 50+HACKXO, 50+HACKYO, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", "I/O", 1, 0, 0, 0 }, ! { "CST", 0, 0, 0x73, 100+HACKXO, 50+HACKYO, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", "MODES", 1, 0, 0, 0 }, ! { "VAR", 0, 0, 0x72, 150+HACKXO, 50+HACKYO, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", "MEMORY", 1, 0, 0, 0 }, ! { "UP", 0, 0, 0x71, 200+HACKXO, 50+HACKYO, 36, 26, WHITE, 0, 0, up_width, up_height, up_bits, "K", "LIBRARY", 1, 0, 0, 0 }, ! { "NXT", 0, 0, 0x70, 250+HACKXO, 50+HACKYO, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, 0, 0, 0 }, ! { "COLON", 0, 0, 0x04, 0+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, colon_width, colon_height, colon_bits, "M", "UP", 0, "HOME", 0, 0 }, ! { "STO", 0, 0, 0x64, 50+HACKXO, 100+HACKYO, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0 }, ! { "EVAL", 0, 0, 0x63, 100+HACKXO, 100+HACKYO, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aQ", 0, "aNUM", 0, 0 }, ! { "LEFT", 0, 0, 0x62, 150+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, left_width, left_height, left_bits, "P", "GRAPH", 0, 0, 0, 0 }, ! { "DOWN", 0, 0, 0x61, 200+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, down_width, down_height, down_bits, "Q", "REVIEW", 0, 0, 0, 0 }, ! { "RIGHT", 0, 0, 0x60, 250+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, right_width, right_height, right_bits, "R", "SWAP", 0, 0, 0, 0 }, ! { "SIN", 0, 0, 0x34, 0+HACKXO, 150+HACKYO, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0 }, ! { "COS", 0, 0, 0x54, 50+HACKXO, 150+HACKYO, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0 }, ! { "TAN", 0, 0, 0x53, 100+HACKXO, 150+HACKYO, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0 }, ! { "SQRT", 0, 0, 0x52, 150+HACKXO, 150+HACKYO, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bits, "V", "e", 0, "f", 0, 0 }, ! { "POWER", 0, 0, 0x51, 200+HACKXO, 150+HACKYO, 36, 26, WHITE, 0, 0, power_width, power_height, power_bits, "W", "g", 0, "LOG", 0, 0 }, ! { "INV", 0, 0, 0x50, 250+HACKXO, 150+HACKYO, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bits, "X", "h", 0, "LN", 0, 0 }, ! { "ENTER", 0, 0, 0x44, 0+HACKXO, 200+HACKYO, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0 }, ! { "NEG", 0, 0, 0x43, 100+HACKXO, 200+HACKYO, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bits, "Y", "EDIT", 0, "VISIT", 0, 0 }, ! { "EEX", 0, 0, 0x42, 150+HACKXO, 200+HACKYO, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "2D", 0, "3D", 0, 0 }, ! { "DEL", 0, 0, 0x41, 200+HACKXO, 200+HACKYO, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "PURGE", 0, 0, 0, 0 }, ! { "BS", 0, 0, 0x40, 250+HACKXO, 200+HACKYO, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bits, 0, "DROP", 0, "CLR", 0, 0 }, ! { "ALPHA", 0, 0, 0x35, 0+HACKXO, 250+HACKYO, 36, 26, WHITE, 0, 0, alpha_width, alpha_height, alpha_bits, 0, "USR", 0, "ENTRY", 0, 0 }, ! { "7", 0, 0, 0x33, 60+HACKXO, 250+HACKYO, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, "SOLVE", 1, 0, 0, 0 }, ! { "8", 0, 0, 0x32, 120+HACKXO, 250+HACKYO, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, "PLOT", 1, 0, 0, 0 }, ! { "9", 0, 0, 0x31, 180+HACKXO, 250+HACKYO, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, "ALGEBRA", 1, 0, 0, 0 }, ! { "DIV", 0, 0, 0x30, 240+HACKXO, 250+HACKYO, 46, 26, WHITE, 0, 0, div_width, div_height, div_bits, 0, "( )", 0, "#", 0, 0 }, ! { "SHL", 0, 0, 0x25, 0+HACKXO, 300+HACKYO, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bits, 0, 0, 0, 0, 0, 0 }, ! { "4", 0, 0, 0x23, 60+HACKXO, 300+HACKYO, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, "TIME", 1, 0, 0, 0 }, ! { "5", 0, 0, 0x22, 120+HACKXO, 300+HACKYO, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, "STAT", 1, 0, 0, 0 }, ! { "6", 0, 0, 0x21, 180+HACKXO, 300+HACKYO, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, "UNITS", 1, 0, 0, 0 }, ! { "MUL", 0, 0, 0x20, 240+HACKXO, 300+HACKYO, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bits, 0, "[ ]", 0, "_", 0, 0 }, ! { "SHR", 0, 0, 0x15, 0+HACKXO, 350+HACKYO, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bits, 0, 0, 0, 0, 0, 0 }, ! { "1", 0, 0, 0x13, 60+HACKXO, 350+HACKYO, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, "RAD", 0, "POLAR", 0, 0 }, ! { "2", 0, 0, 0x12, 120+HACKXO, 350+HACKYO, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, "STACK", 0, "ARG", 0, 0 }, ! { "3", 0, 0, 0x11, 180+HACKXO, 350+HACKYO, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, "CMD", 0, "MENU", 0, 0 }, ! { "MINUS", 0, 0, 0x10, 240+HACKXO, 350+HACKYO, 46, 26, WHITE, 0, 0, minus_width, minus_height, minus_bits, 0, "i", 0, "j", 0, 0 }, ! { "ON", 0, 0, 0x8000, 0+HACKXO, 400+HACKYO, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "ATTN", 0 }, ! { "0", 0, 0, 0x03, 60+HACKXO, 400+HACKYO, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "= ", 0, " a", 0, 0 }, ! { "PERIOD", 0, 0, 0x02, 120+HACKXO, 400+HACKYO, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, ", ", 0, " k", 0, 0 }, ! { "SPC", 0, 0, 0x01, 180+HACKXO, 400+HACKYO, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "l ", 0, " m", 0, 0 }, ! { "PLUS", 0, 0, 0x00, 240+HACKXO, 400+HACKYO, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bits, 0, "{ }", 0, ": :", 0, 0 }, *************** *** 482,614 **** }; button_t buttons_gx[] = { ! { "A", 0, 0, 0x14, 0, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "A", 0, 0, 0, 0, 0 }, ! { "B", 0, 0, 0x84, 50, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "B", 0, 0, 0, 0, 0 }, ! { "C", 0, 0, 0x83, 100, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "C", 0, 0, 0, 0, 0 }, ! { "D", 0, 0, 0x82, 150, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "D", 0, 0, 0, 0, 0 }, ! { "E", 0, 0, 0x81, 200, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "E", 0, 0, 0, 0, 0 }, ! { "F", 0, 0, 0x80, 250, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "F", 0, 0, 0, 0, 0 }, ! { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "RAD", 0, "POLAR", 0, 0 }, ! { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", 0, 0, "CHARS", 0, 0 }, ! { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", 0, 0, "MODES", 0, 0 }, ! { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", 0, 0, "MEMORY", 0, 0 }, ! { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bits, "K", 0, 0, "STACK", 0, 0 }, ! { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, "MENU", 0, 0 }, ! { "COLON", 0, 0, 0x04, 0, 100, 36, 26, WHITE, 0, 0, colon_width, colon_height, colon_bits, "M", "UP", 0, "HOME", 0, 0 }, ! { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0 }, ! { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aNUM", 0, "UNDO", 0, 0 }, ! { "LEFT", 0, 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bits, "P", "PICTURE", 0, 0, 0, 0 }, ! { "DOWN", 0, 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bits, "Q", "VIEW", 0, 0, 0, 0 }, ! { "RIGHT", 0, 0, 0x60, 250, 100, 36, 26, WHITE, 0, 0, right_width, right_height, right_bits, "R", "SWAP", 0, 0, 0, 0 }, ! { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0 }, ! { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0 }, ! { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0 }, ! { "SQRT", 0, 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bits, "V", "n", 0, "o", 0, 0 }, ! { "POWER", 0, 0, 0x51, 200, 150, 36, 26, WHITE, 0, 0, power_width, power_height, power_bits, "W", "p", 0, "LOG", 0, 0 }, ! { "INV", 0, 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bits, "X", "q", 0, "LN", 0, 0 }, ! { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0 }, ! { "NEG", 0, 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bits, "Y", "EDIT", 0, "CMD", 0, 0 }, ! { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "PURG", 0, "ARG", 0, 0 }, ! { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "CLEAR", 0, 0, 0, 0 }, ! { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bits, 0, "DROP", 0, 0, 0, 0 }, ! { "ALPHA", 0, 0, 0x35, 0, 250, 36, 26, WHITE, 0, 0, alpha_width, alpha_height, alpha_bits, 0, "USER", 0, "ENTRY", 0, 0 }, ! { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, 0, 1, "SOLVE", 0, 0 }, ! { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, 0, 1, "PLOT", 0, 0 }, ! { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, 0, 1, "SYMBOLIC", 0, 0 }, ! { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bits, 0, "r ", 0, "s", 0, 0 }, ! { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bits, 0, 0, 0, 0, 0, 0 }, ! { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, 0, 1, "TIME", 0, 0 }, ! { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, 0, 1, "STAT", 0, 0 }, ! { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, 0, 1, "UNITS", 0, 0 }, ! { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bits, 0, "t ", 0, "u", 0, 0 }, ! { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bits, 0, 0, 1, " ", 0, 0 }, ! { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, 0, 1, "I/O", 0, 0 }, ! { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, 0, 1, "LIBRARY", 0, 0 }, ! { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, 0, 1, "EQ LIB", 0, 0 }, ! { "MINUS", 0, 0, 0x10, 240, 350, 46, 26, WHITE, 0, 0, minus_width, minus_height, minus_bits, 0, "v ", 0, "w", 0, 0 }, ! { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "CANCEL", 0 }, ! { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "\004 ", 0, "\003", 0, 0 }, ! { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, "\002 ", 0, "\001", 0, 0 }, ! { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "\005 ", 0, "z", 0, 0 }, ! { "PLUS", 0, 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bits, 0, "x ", 0, "y", 0, 0 }, --- 490,622 ---- }; button_t buttons_gx[] = { ! { "A", 0, 0, 0x14, 0+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "A", 0, 0, 0, 0, 0 }, ! { "B", 0, 0, 0x84, 50+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "B", 0, 0, 0, 0, 0 }, ! { "C", 0, 0, 0x83, 100+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "C", 0, 0, 0, 0, 0 }, ! { "D", 0, 0, 0x82, 150+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "D", 0, 0, 0, 0, 0 }, ! { "E", 0, 0, 0x81, 200+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "E", 0, 0, 0, 0, 0 }, ! { "F", 0, 0, 0x80, 250+LHACKXO, 0+LHACKYO, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bits, "F", 0, 0, 0, 0, 0 }, ! { "MTH", 0, 0, 0x24, 0+HACKXO, 50+HACKYO, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "RAD", 0, "POLAR", 0, 0 }, ! { "PRG", 0, 0, 0x74, 50+HACKXO, 50+HACKYO, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", 0, 0, "CHARS", 0, 0 }, ! { "CST", 0, 0, 0x73, 100+HACKXO, 50+HACKYO, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", 0, 0, "MODES", 0, 0 }, ! { "VAR", 0, 0, 0x72, 150+HACKXO, 50+HACKYO, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", 0, 0, "MEMORY", 0, 0 }, ! { "UP", 0, 0, 0x71, 200+HACKXO, 50+HACKYO, 36, 26, WHITE, 0, 0, up_width, up_height, up_bits, "K", 0, 0, "STACK", 0, 0 }, ! { "NXT", 0, 0, 0x70, 250+HACKXO, 50+HACKYO, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, "MENU", 0, 0 }, ! { "COLON", 0, 0, 0x04, 0+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, colon_width, colon_height, colon_bits, "M", "UP", 0, "HOME", 0, 0 }, ! { "STO", 0, 0, 0x64, 50+HACKXO, 100+HACKYO, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0 }, ! { "EVAL", 0, 0, 0x63, 100+HACKXO, 100+HACKYO, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aNUM", 0, "UNDO", 0, 0 }, ! { "LEFT", 0, 0, 0x62, 150+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, left_width, left_height, left_bits, "P", "PICTURE", 0, 0, 0, 0 }, ! { "DOWN", 0, 0, 0x61, 200+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, down_width, down_height, down_bits, "Q", "VIEW", 0, 0, 0, 0 }, ! { "RIGHT", 0, 0, 0x60, 250+HACKXO, 100+HACKYO, 36, 26, WHITE, 0, 0, right_width, right_height, right_bits, "R", "SWAP", 0, 0, 0, 0 }, ! { "SIN", 0, 0, 0x34, 0+HACKXO, 150+HACKYO, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0 }, ! { "COS", 0, 0, 0x54, 50+HACKXO, 150+HACKYO, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0 }, ! { "TAN", 0, 0, 0x53, 100+HACKXO, 150+HACKYO, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0 }, ! { "SQRT", 0, 0, 0x52, 150+HACKXO, 150+HACKYO, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bits, "V", "n", 0, "o", 0, 0 }, ! { "POWER", 0, 0, 0x51, 200+HACKXO, 150+HACKYO, 36, 26, WHITE, 0, 0, power_width, power_height, power_bits, "W", "p", 0, "LOG", 0, 0 }, ! { "INV", 0, 0, 0x50, 250+HACKXO, 150+HACKYO, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bits, "X", "q", 0, "LN", 0, 0 }, ! { "ENTER", 0, 0, 0x44, 0+HACKXO, 200+HACKYO, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0 }, ! { "NEG", 0, 0, 0x43, 100+HACKXO, 200+HACKYO, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bits, "Y", "EDIT", 0, "CMD", 0, 0 }, ! { "EEX", 0, 0, 0x42, 150+HACKXO, 200+HACKYO, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "PURG", 0, "ARG", 0, 0 }, ! { "DEL", 0, 0, 0x41, 200+HACKXO, 200+HACKYO, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "CLEAR", 0, 0, 0, 0 }, ! { "BS", 0, 0, 0x40, 250+HACKXO, 200+HACKYO, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bits, 0, "DROP", 0, 0, 0, 0 }, ! { "ALPHA", 0, 0, 0x35, 0+HACKXO, 250+HACKYO, 36, 26, WHITE, 0, 0, alpha_width, alpha_height, alpha_bits, 0, "USER", 0, "ENTRY", 0, 0 }, ! { "7", 0, 0, 0x33, 60+HACKXO, 250+HACKYO, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, 0, 1, "SOLVE", 0, 0 }, ! { "8", 0, 0, 0x32, 120+HACKXO, 250+HACKYO, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, 0, 1, "PLOT", 0, 0 }, ! { "9", 0, 0, 0x31, 180+HACKXO, 250+HACKYO, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, 0, 1, "SYMBOLIC", 0, 0 }, ! { "DIV", 0, 0, 0x30, 240+HACKXO, 250+HACKYO, 46, 26, WHITE, 0, 0, div_width, div_height, div_bits, 0, "r ", 0, "s", 0, 0 }, ! { "SHL", 0, 0, 0x25, 0+HACKXO, 300+HACKYO, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bits, 0, 0, 0, 0, 0, 0 }, ! { "4", 0, 0, 0x23, 60+HACKXO, 300+HACKYO, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, 0, 1, "TIME", 0, 0 }, ! { "5", 0, 0, 0x22, 120+HACKXO, 300+HACKYO, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, 0, 1, "STAT", 0, 0 }, ! { "6", 0, 0, 0x21, 180+HACKXO, 300+HACKYO, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, 0, 1, "UNITS", 0, 0 }, ! { "MUL", 0, 0, 0x20, 240+HACKXO, 300+HACKYO, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bits, 0, "t ", 0, "u", 0, 0 }, ! { "SHR", 0, 0, 0x15, 0+HACKXO, 350+HACKYO, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bits, 0, 0, 1, " ", 0, 0 }, ! { "1", 0, 0, 0x13, 60+HACKXO, 350+HACKYO, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, 0, 1, "I/O", 0, 0 }, ! { "2", 0, 0, 0x12, 120+HACKXO, 350+HACKYO, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, 0, 1, "LIBRARY", 0, 0 }, ! { "3", 0, 0, 0x11, 180+HACKXO, 350+HACKYO, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, 0, 1, "EQ LIB", 0, 0 }, ! { "MINUS", 0, 0, 0x10, 240+HACKXO, 350+HACKYO, 46, 26, WHITE, 0, 0, minus_width, minus_height, minus_bits, 0, "v ", 0, "w", 0, 0 }, ! { "ON", 0, 0, 0x8000, 0+HACKXO, 400+HACKYO, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "CANCEL", 0 }, ! { "0", 0, 0, 0x03, 60+HACKXO, 400+HACKYO, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "\004 ", 0, "\003", 0, 0 }, ! { "PERIOD", 0, 0, 0x02, 120+HACKXO, 400+HACKYO, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, "\002 ", 0, "\001", 0, 0 }, ! { "SPC", 0, 0, 0x01, 180+HACKXO, 400+HACKYO, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "\005 ", 0, "z", 0, 0 }, ! { "PLUS", 0, 0, 0x00, 240+HACKXO, 400+HACKYO, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bits, 0, "x ", 0, "y", 0, 0 }, *************** *** 666,673 **** #define DISPLAY_WIDTH (264 + 8) #define DISPLAY_HEIGHT (128 + 16 + 8) ! #define DISPLAY_OFFSET_X (SIDE_SKIP+(KEYBOARD_WIDTH-DISPLAY_WIDTH)/2) ! #define DISPLAY_OFFSET_Y TOP_SKIP #define DISP_FRAME 8 --- 674,682 ---- #define DISPLAY_WIDTH (264 + 8) #define DISPLAY_HEIGHT (128 + 16 + 8) ! //#define DISPLAY_OFFSET_X (SIDE_SKIP+(KEYBOARD_WIDTH-DISPLAY_WIDTH)/2) ! #define DISPLAY_OFFSET_X SIDE_SKIP + 4 ! #define DISPLAY_OFFSET_Y TOP_SKIP + 30 #define DISP_FRAME 8 *************** *** 1687,1693 **** cut = KEYBOARD_OFFSET_Y + buttons[BUTTON_MTH].y - 19; ! XFillRectangle(dpy, keypad.pixmap, gc, 0, 0, w, (unsigned int)cut); /* * draw the character labels --- 1696,1704 ---- cut = KEYBOARD_OFFSET_Y + buttons[BUTTON_MTH].y - 19; ! #define HACKLW 320 ! // XFillRectangle(dpy, keypad.pixmap, gc, 0, 0, w, (unsigned int)cut); ! XFillRectangle(dpy, keypad.pixmap, gc, 0, 0, HACKLW, h); /* * draw the character labels *************** *** 2091,2192 **** (int)(DISPLAY_OFFSET_X + DISPLAY_WIDTH), (int)(DISPLAY_OFFSET_Y + DISPLAY_HEIGHT - 2)); ! /* ! * lower the whole thing ! */ XSetForeground(dpy, gc, COLOR(PAD_TOP)); ! /* bottom lines */ XDrawLine(dpy, keypad.pixmap, gc, 1, (int)(keypad.height - 1), ! (int)(keypad.width - 1), (int)(keypad.height - 1)); XDrawLine(dpy, keypad.pixmap, gc, 2, (int)(keypad.height - 2), ! (int)(keypad.width - 2), (int)(keypad.height - 2)); ! ! /* right lines */ ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 1), ! (int)(keypad.height - 1), (int)(keypad.width - 1), cut); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 2), ! (int)(keypad.height - 2), (int)(keypad.width - 2), cut); XSetForeground(dpy, gc, COLOR(DISP_PAD_TOP)); ! /* right lines */ ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 1), ! cut - 1, (int)(keypad.width - 1), 1); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 2), ! cut - 1, (int)(keypad.width - 2), 2); XSetForeground(dpy, gc, COLOR(DISP_PAD_BOT)); ! /* top lines */ ! XDrawLine(dpy, keypad.pixmap, gc, 0, 0, (int)(keypad.width - 2), 0); ! XDrawLine(dpy, keypad.pixmap, gc, 1, 1, (int)(keypad.width - 3), 1); ! /* left lines */ XDrawLine(dpy, keypad.pixmap, gc, 0, cut - 1, 0, 0); XDrawLine(dpy, keypad.pixmap, gc, 1, cut - 1, 1, 1); XSetForeground(dpy, gc, COLOR(PAD_BOT)); ! /* left lines */ XDrawLine(dpy, keypad.pixmap, gc, 0, (int)(keypad.height - 2), 0, cut); XDrawLine(dpy, keypad.pixmap, gc, 1, (int)(keypad.height - 3), 1, cut); ! /* ! * lower the menu buttons ! */ XSetForeground(dpy, gc, COLOR(PAD_TOP)); ! /* bottom lines */ XDrawLine(dpy, keypad.pixmap, gc, 3, (int)(keypad.height - 3), ! (int)(keypad.width - 3), (int)(keypad.height - 3)); XDrawLine(dpy, keypad.pixmap, gc, 4, (int)(keypad.height - 4), ! (int)(keypad.width - 4), (int)(keypad.height - 4)); ! /* right lines */ ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 3), ! (int)(keypad.height - 3), (int)(keypad.width - 3), cut); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 4), ! (int)(keypad.height - 4), (int)(keypad.width - 4), cut); XSetForeground(dpy, gc, COLOR(DISP_PAD_TOP)); ! /* right lines */ ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 3), ! cut - 1, (int)(keypad.width - 3), KEYBOARD_OFFSET_Y - 24); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 4), ! cut - 1, (int)(keypad.width - 4), KEYBOARD_OFFSET_Y - 23); XSetForeground(dpy, gc, COLOR(DISP_PAD_BOT)); ! /* top lines */ ! XDrawLine(dpy, keypad.pixmap, gc, 2, KEYBOARD_OFFSET_Y - 25, ! (int)(keypad.width - 4), KEYBOARD_OFFSET_Y - 25); ! XDrawLine(dpy, keypad.pixmap, gc, 3, KEYBOARD_OFFSET_Y - 24, ! (int)(keypad.width - 5), KEYBOARD_OFFSET_Y - 24); ! ! /* left lines */ ! XDrawLine(dpy, keypad.pixmap, gc, 2, cut - 1, 2, KEYBOARD_OFFSET_Y - 24); ! XDrawLine(dpy, keypad.pixmap, gc, 3, cut - 1, 3, KEYBOARD_OFFSET_Y - 23); XSetForeground(dpy, gc, COLOR(PAD_BOT)); ! /* left lines */ XDrawLine(dpy, keypad.pixmap, gc, 2, (int)(keypad.height - 4), 2, cut); XDrawLine(dpy, keypad.pixmap, gc, 3, (int)(keypad.height - 5), 3, cut); ! /* ! * lower the keyboard ! */ XSetForeground(dpy, gc, COLOR(PAD_TOP)); ! /* bottom lines */ XDrawLine(dpy, keypad.pixmap, gc, 5, (int)(keypad.height - 5), ! (int)(keypad.width - 3), (int)(keypad.height - 5)); XDrawLine(dpy, keypad.pixmap, gc, 6, (int)(keypad.height - 6), ! (int)(keypad.width - 4), (int)(keypad.height - 6)); ! ! /* right lines */ XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 5), (int)(keypad.height - 5), (int)(keypad.width - 5), cut + 1); XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 6), --- 2102,2200 ---- (int)(DISPLAY_OFFSET_X + DISPLAY_WIDTH), (int)(DISPLAY_OFFSET_Y + DISPLAY_HEIGHT - 2)); ! ! // lower the whole thing XSetForeground(dpy, gc, COLOR(PAD_TOP)); ! cut = HACKHEIGHT; ! ! // bottom lines XDrawLine(dpy, keypad.pixmap, gc, 1, (int)(keypad.height - 1), ! (int)(HACKLW - 1), (int)(keypad.height - 1)); XDrawLine(dpy, keypad.pixmap, gc, 2, (int)(keypad.height - 2), ! (int)(HACKLW - 2), (int)(keypad.height - 2)); + // right lines + XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 1), + (int)(keypad.height - 1), (int)(HACKLW - 1), cut); + XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 2), + (int)(keypad.height - 2), (int)(HACKLW - 2), cut); XSetForeground(dpy, gc, COLOR(DISP_PAD_TOP)); ! // right lines ! XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 1), ! cut - 1, (int)(HACKLW - 1), 1); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 2), ! cut - 1, (int)(HACKLW - 2), 2); XSetForeground(dpy, gc, COLOR(DISP_PAD_BOT)); ! // top lines ! XDrawLine(dpy, keypad.pixmap, gc, 0, 0, (int)(HACKLW - 2), 0); ! XDrawLine(dpy, keypad.pixmap, gc, 1, 1, (int)(HACKLW - 3), 1); ! // left lines XDrawLine(dpy, keypad.pixmap, gc, 0, cut - 1, 0, 0); XDrawLine(dpy, keypad.pixmap, gc, 1, cut - 1, 1, 1); XSetForeground(dpy, gc, COLOR(PAD_BOT)); ! // left lines XDrawLine(dpy, keypad.pixmap, gc, 0, (int)(keypad.height - 2), 0, cut); XDrawLine(dpy, keypad.pixmap, gc, 1, (int)(keypad.height - 3), 1, cut); ! //lower the menu buttons XSetForeground(dpy, gc, COLOR(PAD_TOP)); ! // bottom lines XDrawLine(dpy, keypad.pixmap, gc, 3, (int)(keypad.height - 3), ! (int)(HACKLW - 3), (int)(keypad.height - 3)); XDrawLine(dpy, keypad.pixmap, gc, 4, (int)(keypad.height - 4), ! (int)(HACKLW - 4), (int)(keypad.height - 4)); ! // right lines ! XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 3), ! (int)(keypad.height - 3), (int)(HACKLW - 3), cut); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 4), ! (int)(keypad.height - 4), (int)(HACKLW - 4), cut); XSetForeground(dpy, gc, COLOR(DISP_PAD_TOP)); ! // right lines ! XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 3), ! cut - 1, (int)(HACKLW - 3), KEYBOARD_OFFSET_Y - 24 + LHACKYO); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(HACKLW - 4), ! cut - 1, (int)(HACKLW - 4), KEYBOARD_OFFSET_Y - 23 + LHACKYO); XSetForeground(dpy, gc, COLOR(DISP_PAD_BOT)); ! // top lines ! XDrawLine(dpy, keypad.pixmap, gc, 2, KEYBOARD_OFFSET_Y - 25 + LHACKYO, ! (int)(HACKLW - 4), KEYBOARD_OFFSET_Y - 25 + LHACKYO); ! XDrawLine(dpy, keypad.pixmap, gc, 3, KEYBOARD_OFFSET_Y - 24 + LHACKYO, ! (int)(HACKLW - 5), KEYBOARD_OFFSET_Y - 24 + LHACKYO); ! ! // left lines ! XDrawLine(dpy, keypad.pixmap, gc, 2, cut - 1, 2, KEYBOARD_OFFSET_Y - 24 + LHACKYO); ! XDrawLine(dpy, keypad.pixmap, gc, 3, cut - 1, 3, KEYBOARD_OFFSET_Y - 23 + LHACKYO); XSetForeground(dpy, gc, COLOR(PAD_BOT)); ! // left lines XDrawLine(dpy, keypad.pixmap, gc, 2, (int)(keypad.height - 4), 2, cut); XDrawLine(dpy, keypad.pixmap, gc, 3, (int)(keypad.height - 5), 3, cut); ! /* ! // lower the keyboard XSetForeground(dpy, gc, COLOR(PAD_TOP)); ! // bottom lines XDrawLine(dpy, keypad.pixmap, gc, 5, (int)(keypad.height - 5), ! (int)(HACKLW - 3), (int)(keypad.height - 5)); XDrawLine(dpy, keypad.pixmap, gc, 6, (int)(keypad.height - 6), ! (int)(HACKLW - 4), (int)(keypad.height - 6)); ! /* ! // right lines XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 5), (int)(keypad.height - 5), (int)(keypad.width - 5), cut + 1); XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 6), *************** *** 2194,2200 **** XSetForeground(dpy, gc, COLOR(DISP_PAD_BOT)); ! /* top lines */ XDrawLine(dpy, keypad.pixmap, gc, 4, cut, (int)(keypad.width - 6), cut); XDrawLine(dpy, keypad.pixmap, gc, 5, cut + 1, --- 2202,2208 ---- XSetForeground(dpy, gc, COLOR(DISP_PAD_BOT)); ! // top lines XDrawLine(dpy, keypad.pixmap, gc, 4, cut, (int)(keypad.width - 6), cut); XDrawLine(dpy, keypad.pixmap, gc, 5, cut + 1, *************** *** 2202,2214 **** XSetForeground(dpy, gc, COLOR(PAD_BOT)); ! /* left lines */ XDrawLine(dpy, keypad.pixmap, gc, 4, (int)(keypad.height - 6), 4, cut + 1); XDrawLine(dpy, keypad.pixmap, gc, 5, (int)(keypad.height - 7), 5, cut + 2); ! /* ! * round off the bottom edge ! */ XSetForeground(dpy, gc, COLOR(PAD_TOP)); XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 7), --- 2210,2220 ---- XSetForeground(dpy, gc, COLOR(PAD_BOT)); ! // left lines XDrawLine(dpy, keypad.pixmap, gc, 4, (int)(keypad.height - 6), 4, cut + 1); XDrawLine(dpy, keypad.pixmap, gc, 5, (int)(keypad.height - 7), 5, cut + 2); ! // round off the bottom edge XSetForeground(dpy, gc, COLOR(PAD_TOP)); XDrawLine(dpy, keypad.pixmap, gc, (int)(keypad.width - 7), *************** *** 2235,2241 **** (int)(keypad.height - 14)); XDrawLine(dpy, keypad.pixmap, gc, 7, (int)(keypad.height - 9), 7, (int)(keypad.height - 11)); ! /* * insert the HP Logo */ --- 2241,2247 ---- (int)(keypad.height - 14)); XDrawLine(dpy, keypad.pixmap, gc, 7, (int)(keypad.height - 9), 7, (int)(keypad.height - 11)); ! */ /* * insert the HP Logo */ *************** *** 2252,2258 **** x = DISPLAY_OFFSET_X; XCopyPlane(dpy, pix, keypad.pixmap, gc, 0, 0, hp_width, hp_height, ! x, 10, 1); XFreePixmap(dpy, pix); --- 2258,2264 ---- x = DISPLAY_OFFSET_X; XCopyPlane(dpy, pix, keypad.pixmap, gc, 0, 0, hp_width, hp_height, ! x, 10 + LHACKYO, 1); XFreePixmap(dpy, pix); *************** *** 2260,2273 **** { XSetForeground(dpy, gc, COLOR(FRAME)); ! XDrawLine(dpy, keypad.pixmap, gc, (int)DISPLAY_OFFSET_X, 9, ! (int)(DISPLAY_OFFSET_X + hp_width - 1), 9); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(DISPLAY_OFFSET_X - 1), 10, ! (int)(DISPLAY_OFFSET_X - 1), 10 + hp_height - 1); ! XDrawLine(dpy, keypad.pixmap, gc, (int)DISPLAY_OFFSET_X, 10 + hp_height, ! (int)(DISPLAY_OFFSET_X + hp_width - 1), 10 + hp_height); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(DISPLAY_OFFSET_X + hp_width), 10, ! (int)(DISPLAY_OFFSET_X + hp_width), 10 + hp_height - 1); } /* --- 2266,2279 ---- { XSetForeground(dpy, gc, COLOR(FRAME)); ! XDrawLine(dpy, keypad.pixmap, gc, (int)DISPLAY_OFFSET_X, 9 + LHACKYO, ! (int)(DISPLAY_OFFSET_X + hp_width - 1), 9 + LHACKYO); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(DISPLAY_OFFSET_X - 1), 10 + LHACKYO, ! (int)(DISPLAY_OFFSET_X - 1), 10 + hp_height - 1 + LHACKYO); ! XDrawLine(dpy, keypad.pixmap, gc, (int)DISPLAY_OFFSET_X, 10 + hp_height + LHACKYO, ! (int)(DISPLAY_OFFSET_X + hp_width - 1), 10 + hp_height + LHACKYO); ! XDrawLine(dpy, keypad.pixmap, gc, (int)(DISPLAY_OFFSET_X + hp_width), 10 + LHACKYO, ! (int)(DISPLAY_OFFSET_X + hp_width), 10 + hp_height - 1 + LHACKYO); } /* *************** *** 2278,2286 **** --- 2284,2295 ---- if (opt_gx) { + x = DISPLAY_OFFSET_X + DISPLAY_WIDTH - gx_128K_ram_width + gx_128K_ram_x_hot + 2; y = 10 + gx_128K_ram_y_hot; + //eff + y += LHACKYO; pix = XCreateBitmapFromData(dpy, keypad.pixmap, (char *)gx_128K_ram_bits, gx_128K_ram_width, gx_128K_ram_height); XCopyPlane(dpy, pix, keypad.pixmap, gc, 0, 0, gx_128K_ram_width, *************** *** 2290,2295 **** --- 2299,2305 ---- XSetForeground(dpy, gc, COLOR(LOGO)); x = DISPLAY_OFFSET_X + hp_width; y = hp_height + 8 - hp48gx_height; + y += LHACKYO; pix = XCreateBitmapFromData(dpy, keypad.pixmap, (char *)hp48gx_bits, hp48gx_width, hp48gx_height); XCopyPlane(dpy, pix, keypad.pixmap, gc, 0, 0, hp48gx_width, *************** *** 2300,2305 **** --- 2310,2316 ---- x = DISPLAY_OFFSET_X + DISPLAY_WIDTH - gx_128K_ram_width + gx_silver_x_hot + 2; y = 10 + gx_silver_y_hot; + y += LHACKYO; pix = XCreateBitmapFromData(dpy, keypad.pixmap, (char *)gx_silver_bits, gx_silver_width, gx_silver_height); XSetStipple(dpy, gc, pix); *************** *** 2312,2317 **** --- 2323,2329 ---- x = DISPLAY_OFFSET_X + DISPLAY_WIDTH - gx_128K_ram_width + gx_green_x_hot + 2; y = 10 + gx_green_y_hot; + y += LHACKYO; pix = XCreateBitmapFromData(dpy, keypad.pixmap, (char *)gx_green_bits, gx_green_width, gx_green_height); XSetStipple(dpy, gc, pix); *************** *** 2327,2332 **** --- 2339,2345 ---- { x = DISPLAY_OFFSET_X; y = TOP_SKIP - DISP_FRAME - hp48sx_height - 3; + y += LHACKYO; pix = XCreateBitmapFromData(dpy, keypad.pixmap, (char *)hp48sx_bits, hp48sx_width, hp48sx_height); *************** *** 2338,2343 **** --- 2351,2357 ---- x = DISPLAY_OFFSET_X + DISPLAY_WIDTH - 1 - science_width; y = TOP_SKIP - DISP_FRAME - science_height - 4; + y += LHACKYO; pix = XCreateBitmapFromData(dpy, keypad.pixmap, (char *)science_bits, science_width, science_height); *************** *** 2844,2852 **** /* * create the window */ ! width = KEYBOARD_WIDTH + 2 * SIDE_SKIP; ! height = DISPLAY_OFFSET_Y + DISPLAY_HEIGHT + DISP_KBD_SKIP + ! KEYBOARD_HEIGHT + BOTTOM_SKIP; mainW = XCreateWindow(dpy, RootWindow(dpy, screen), 0, 0, width, height, --- 2858,2870 ---- /* * create the window */ ! //eff ! // width = KEYBOARD_WIDTH + 2 * SIDE_SKIP; ! // width = DISPLAY_WIDTH + KEYBOARD_WIDTH + 2 * SIDE_SKIP; ! width = HACKWIDTH; ! // height = DISPLAY_OFFSET_Y + DISPLAY_HEIGHT + DISP_KBD_SKIP + ! // KEYBOARD_HEIGHT + BOTTOM_SKIP; ! height = HACKHEIGHT; mainW = XCreateWindow(dpy, RootWindow(dpy, screen), 0, 0, width, height,