
/*------------------------------------*/
/*    Filename:  hp_constants.h       */
/*                                    */
/*    Define strings and constants    */
/*        used by routine hp.c        */
/*------------------------------------*/

#define   STARTX      52
                     
#define   BINARY       2
#define   OCTAL        8
#define   DECIMAL     10
#define   HEX         16
#define   FLOAT        0
#define   COMPLEX      1

#define   DEGREES      1
#define   RADIANS      2
#define   GRADIANS     3

#define   GREY         0
#define   TAN          1
#define   BLACK        2
#define   YELLOW       3
#define   BLUE         4
#define   SCREENCOLOR  5
#define   RED          6
#define   GREEN        7

#define   TRUNC_MARGIN  1.0E-9

char *opcode[]  = { " None", "  7  ", "  8  ", "  9  ", "  /  ", "  4  ",
                    "  5  ", "  6  ", "  x  ", "  1  ", "  2  ", "  3  ",
           "  -  ", "  A  ", "  B  ", "  C  ", "  D  ", "  E  ", "  F  ",
                    " BIN ", " OCT ", " DEC ", " HEX ", " FLT ", " CPX ",
                    " deg ", " rad ", " grd ", " Sin ", " Cos ", " Tan ",
                    " STO ", " RCL ", " 1/x ", " Asn ", " Acs ", " Atn ",
                    " x^2 ", " SqX ", " y^x ", " log ", " lg2 ", " ln  ",
                    "  pi ", " P-R ", " R-P ", " 10x ", " 2^x ", " e^x ",
                    "  0  ", "  .  ", "  +  ", "ENTER", " CHS ", " EEX ",
                    "Print", "RCLz ", "RCLt ", "LastX", " x<>y", " Drop",
                    " Red ", "Green", "Blue ", " LF  " };


  /*  The x-coordinate of the key labels for the operation modes  */
  int  x_field[] = { 276, 332,  52,   0,   0,   0,   0,    0, 108,
                       0, 164,   0,   0,   0,   0,   0,  220    };

  /*  The key labels  */
  char *x_text[] = { "FLT", "CPX", "BIN", " ", " ", " ", " ", " ", "OCT",
                       " ", "DEC", "   ", " ", " ", " ", " ", "HEX" };

  /*  The x-coordinate of the first display digit, per base  */
  int  start_display[] = { 240, 240, 192, 0, 0, 0, 0, 0, 276,
                             0, 280, 0, 0, 0, 0, 0, 288 };

  /*  The length of the display string for each base   */
  int  display_length[] = { 19, 19, 32, 0, 0, 0, 0, 0, 11,
                            0, 10, 0, 0, 0, 0, 0, 8 };


  char digit_table[] = { ' ', '7', '8', '9', ' ', '4',
                         '5', '6', ' ', '1', '2', '3',
                    ' ', 'A', 'B', 'C', 'D', 'E', 'F',
                         ' ', ' ', ' ', ' ', ' ', ' ',
                         ' ', ' ', ' ', ' ', ' ', ' ',
                         ' ', ' ', ' ', ' ', ' ', ' ',
                         ' ', ' ', ' ', ' ', ' ', ' ',
                         ' ', ' ', ' ', ' ', ' ', ' ',
                         '0', '.', ' ', ' ', ' ', ' ' };

  char hex_char[] = { '0', '1', '2', '3', '4', '5', '6', '7' ,
                      '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

  /*  Used by DisplayIntXY() to convert integer to ascii base n  */
  unsigned long bitmask[] = { 0, 0x0001, 0, 0x0007, 0x000f };

  char *errstring[] = { "12345678901234",
                        " Domain error ",
                        "  Singularity ",
                        "   Overflow   ",
                        "   Underflow  ",
                        "Loss of Digits",
                        "Loss of Digits" };

  char nullentry[]   = "                     ";
  char no_register[] = "     ";



