home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / OS2 / BEAV132X.ZIP / FORMAT.C < prev    next >
C/C++ Source or Header  |  1991-11-22  |  9KB  |  328 lines

  1. /*
  2. * The module devines the format of the screen display.
  3. */
  4.  
  5. #include    "def.h"
  6.  
  7.  
  8. extern    char    hex_str[];
  9. extern    char    hex_l_str[];
  10. extern    char    octal_str[];
  11. extern    char    octal_l_str[];
  12. extern    char    decimal_str[];
  13. extern    char    decimal_l_str[];
  14. extern    char    char_str[];
  15.  
  16.  
  17. /* These structures contain the format for the displayed line */
  18.  
  19.  
  20. #define FC 13
  21. #define FS 0
  22.  
  23. uchar    ascii_s_posn[] =
  24. {
  25.     FS+0, FS+1, FS+2, FS+3, FS+4, FS+5, FS+6, FS+7, FS+8, FS+9,
  26.         FS+10, FS+11, FS+12, FS+13, FS+14, FS+15, FS+16, FS+17, FS+18, FS+19,
  27.         FS+20, FS+21, FS+22, FS+23, FS+24, FS+25, FS+26, FS+27, FS+28, FS+29,
  28.         FS+30, FS+31, FS+32, FS+33, FS+34, FS+35, FS+36, FS+37, FS+38, FS+39,
  29.         FS+40, FS+41, FS+42, FS+43, FS+44, FS+45, FS+46, FS+47, FS+48, FS+49,
  30.         FS+50, FS+51, FS+52, FS+53, FS+54, FS+55, FS+56, FS+57, FS+58, FS+59,
  31.         FS+60, FS+61, FS+62, FS+63, FS+64, FS+65, FS+66, FS+67, FS+68, FS+69,
  32.         FS+70, FS+71, FS+72, FS+73, FS+74, FS+75, FS+76, FS+77, FS+78, FS+79,
  33. };
  34.  
  35. ROW_FMT text_fmt =
  36. {
  37.     TEXT, BYTES, 128, 128, 128, 1, 1, FALSE, char_str, hex_l_str, hex_str,
  38.         ascii_s_posn, 0};
  39.  
  40. ROW_FMT ascii_fmt =
  41. {
  42.     ASCII, BYTES, 64, 64, 64, 1, 1, FALSE, char_str, hex_l_str, hex_str,
  43.         &ascii_s_posn[FC], 0};
  44.  
  45. ROW_FMT ascii_s_fmt =
  46. {
  47.     ASCII, BYTES, 32, 32, 1, 1, 1, FALSE,  char_str, hex_l_str, hex_str,
  48.         ascii_s_posn, 0};
  49.  
  50. ROW_FMT ebcdic_fmt =
  51. {
  52.     EBCDIC, BYTES, 64, 64, 64, 1, 1, FALSE, char_str, hex_l_str, hex_str,
  53.         &ascii_s_posn[FC], 0};
  54.  
  55. ROW_FMT ebcdic_s_fmt =
  56. {
  57.     EBCDIC, BYTES, 32, 32, 1, 1, 1, FALSE, char_str, hex_l_str, hex_str,
  58.         ascii_s_posn, 0};
  59.  
  60. uchar    octal_8_posn[] =
  61. {
  62.     FC, FC + 4, FC + 8, FC + 12, FC + 16, FC + 20,
  63.         FC + 24, FC + 28, FC + 33, FC + 37, FC + 41,
  64.         FC + 45, FC + 49, FC + 53, FC + 57, FC + 61
  65. };
  66.  
  67. ROW_FMT octal_8_fmt =
  68. {
  69.     OCTAL, BYTES, 16, 16, 16, 1, 3, TRUE, octal_str, octal_l_str, octal_str,
  70.         octal_8_posn, 0};
  71.  
  72. uchar    octal_s_8_posn[] =
  73. {
  74.     FS, FS + 4, FS + 8, FS + 12, FS + 16, FS + 20,
  75.         FS + 24, FS + 28, FS + 32, FS + 36, FS + 40,
  76.         FS + 44, FS + 48, FS + 52, FS + 56, FS + 60,
  77.         FS + 64, FS + 68, FS + 72, FS + 76, FS + 80
  78. };
  79. ROW_FMT octal_s_8_fmt =
  80. {
  81.     OCTAL, BYTES, 8, 8, 1, 1, 3, TRUE, octal_str, octal_l_str, octal_str,
  82.         octal_s_8_posn, 0};
  83.  
  84. uchar    octal_16_posn[] =
  85. {
  86.     FC, FC + 7, FC + 14, FC + 21, FC + 29, FC + 36, FC + 43, FC + 50
  87. };
  88.  
  89. ROW_FMT octal_16_fmt =
  90. {
  91.     OCTAL, WORDS, 8, 16, 16, 2, 6, TRUE, octal_str, octal_l_str, octal_str,
  92.         octal_16_posn, 0};
  93.  
  94. uchar    octal_s_16_posn[] =
  95. {
  96.     FS, FS + 7, FS + 14, FS + 21, FS + 28, FS + 35,
  97.         FS + 42, FS + 49, FS + 56, FS + 63, FS + 70, FS + 77
  98. };
  99. ROW_FMT octal_s_16_fmt =
  100. {
  101.     OCTAL, WORDS, 4, 8, 2, 2, 6, TRUE, octal_str, octal_l_str, octal_str,
  102.         octal_s_16_posn, 0};
  103.  
  104. uchar    octal_32_posn[] =
  105. {
  106.     FC, FC + 12, FC + 25, FC + 37
  107. };
  108.  
  109. ROW_FMT octal_32_fmt =
  110. {
  111.     OCTAL, DWORDS, 4, 16, 16, 4, 11, TRUE, octal_l_str, octal_l_str, octal_str,
  112.         octal_32_posn, 0};
  113.  
  114. uchar    octal_s_32_posn[] =
  115. {
  116.     FS, FS + 12, FS + 24, FS + 36, FS + 48, FS + 60, FS + 72
  117. };
  118. ROW_FMT octal_s_32_fmt =
  119. {
  120.     OCTAL, DWORDS, 2, 8, 4, 4, 11, TRUE, octal_l_str, octal_l_str, octal_str,
  121.         octal_s_32_posn, };
  122.  
  123. ROW_FMT decimal_8_fmt =
  124. {
  125.     DECIMAL, BYTES, 16, 16, 16, 1, 3, TRUE, decimal_str, decimal_l_str, decimal_str,
  126.         octal_8_posn, 0};
  127.  
  128. ROW_FMT decimal_s_8_fmt =
  129. {
  130.     DECIMAL, BYTES, 8, 8, 1, 1, 3, TRUE, decimal_str, decimal_l_str, decimal_str,
  131.         octal_s_8_posn, 0};
  132.  
  133. uchar    decimal_16_posn[] =
  134. {
  135.     FC, FC + 6, FC + 12, FC + 18, FC + 25,
  136.         FC + 31, FC + 37, FC + 43
  137. };
  138.  
  139. ROW_FMT decimal_16_fmt =
  140. {
  141.     DECIMAL, WORDS, 8, 16, 16, 2, 5, TRUE, decimal_str, decimal_l_str, decimal_str,
  142.         decimal_16_posn, 0};
  143.  
  144. uchar    decimal_s_16_posn[] =
  145. {
  146.     FS, FS + 6, FS + 12, FS + 18, FS + 24,
  147.         FS + 30, FS + 36, FS + 42, FS + 48,
  148.         FS + 54, FS + 60, FS + 66, FS + 72, FS + 78
  149. };
  150. ROW_FMT decimal_s_16_fmt =
  151. {
  152.     DECIMAL, WORDS, 4, 8, 2, 2, 5, TRUE, decimal_str, decimal_l_str, decimal_str,
  153.         decimal_s_16_posn, 0};
  154.  
  155. uchar    decimal_32_posn[] =
  156. {
  157.     FC, FC + 11, FC + 23, FC + 34
  158. };
  159.  
  160. ROW_FMT decimal_32_fmt =
  161. {
  162.     DECIMAL, DWORDS, 4, 16, 16, 4, 10, TRUE, decimal_l_str, decimal_l_str, decimal_str,
  163.         decimal_32_posn, 0};
  164.  
  165. uchar    decimal_s_32_posn[] =
  166. {
  167.     FS, FS + 11, FS + 22, FS + 33, FS + 44, FS + 55, FS + 66, FS + 77
  168. };
  169. ROW_FMT decimal_s_32_fmt =
  170. {
  171.     DECIMAL, DWORDS, 4, 16, 4, 4, 10, TRUE, decimal_l_str, decimal_l_str, decimal_str,
  172.         decimal_s_32_posn, 0};
  173.  
  174. uchar    hex_8_posn[] =
  175. {
  176.     FC, FC + 3, FC + 6, FC + 9, FC + 12, FC + 15,
  177.         FC + 18, FC + 21, FC + 25, FC + 28, FC + 31,
  178.         FC + 34, FC + 37, FC + 40, FC + 43, FC + 46,
  179.         FC + 50, FC + 51, FC + 52, FC + 53, FC + 54,
  180.         FC + 55, FC + 56, FC + 57, FC + 58, FC + 59,
  181.         FC + 60, FC + 61, FC + 62, FC + 63, FC + 64,
  182.         FC + 65
  183. };
  184.  
  185. ROW_FMT hex_8_fmt =
  186. {
  187.     HEX, BYTES, 16, 16, 16, 1, 2, TRUE, hex_str, hex_l_str, hex_str,
  188.         hex_8_posn, 0};
  189.  
  190.  
  191. uchar    hex_s_8_posn[] =
  192. {
  193.     FS, FS + 3, FS + 6, FS + 9, FS + 12, FS + 15,
  194.         FS + 18, FS + 21, FS + 24, FS + 27, FS + 30,
  195.         FS + 33, FS + 36, FS + 39, FS + 42, FS + 45,
  196.         FS + 48, FS + 51, FS + 54, FS + 57, FS + 60,
  197.         FS + 63, FS + 66, FS + 69, FS + 72, FS + 75,
  198.         FS + 78, FS + 80, FS + 80, FS + 80, FS + 80,
  199.         FS + 80
  200. };
  201. ROW_FMT hex_s_8_fmt =
  202. {
  203.     HEX, BYTES, 8, 8, 1, 1, 2, TRUE, hex_str, hex_l_str, hex_str,
  204.         hex_s_8_posn, 0};
  205.  
  206. uchar    hex_16_posn[] =
  207. {
  208.     FC, FC + 5, FC + 10, FC + 15, FC + 21, FC + 26, FC + 31, FC + 36
  209. };
  210.  
  211. ROW_FMT hex_16_fmt =
  212. {
  213.     HEX, WORDS, 8, 16, 16, 2, 4, TRUE, hex_str, hex_l_str, hex_str,
  214.         hex_16_posn, 0};
  215.  
  216. uchar    hex_s_16_posn[] =
  217. {
  218.     FS, FS + 5, FS + 10, FS + 15, FS + 20, FS + 25,
  219.         FS + 30, FS + 35, FS + 40, FS + 45, FS + 50,
  220.         FS + 55, FS + 60, FS + 65, FS + 70, FS + 75
  221. };
  222. ROW_FMT hex_s_16_fmt =
  223. {
  224.     HEX, WORDS, 8, 16, 2, 2, 4, TRUE, hex_str, hex_l_str, hex_str,
  225.         hex_s_16_posn, 0};
  226.  
  227. uchar    hex_32_posn[] =
  228. {
  229.     FC, FC + 9, FC + 19, FC + 28
  230. };
  231.  
  232. ROW_FMT hex_32_fmt =
  233. {
  234.     HEX, DWORDS, 4, 16, 16, 4, 8, TRUE, hex_l_str, hex_l_str, hex_str,
  235.         hex_32_posn, 0};
  236.  
  237. uchar    hex_s_32_posn[] =
  238. {
  239.     FS, FS + 9, FS + 18, FS + 27, FS + 36, FS + 45, FS + 54, FS + 63, FS + 72
  240. };
  241. ROW_FMT hex_s_32_fmt =
  242. {
  243.     HEX, DWORDS, 4, 16, 4, 4, 8, TRUE, hex_l_str, hex_l_str, hex_str,
  244.         hex_s_32_posn, 0};
  245.  
  246. ROW_FMT binary_8_fmt =
  247. {
  248.     BINARY, BYTES, 4, 4, 4, 1, 8, FALSE, hex_str, hex_l_str, hex_str,
  249.         hex_32_posn, 0};  /* use the hex position array */
  250.  
  251. ROW_FMT binary_s_8_fmt =
  252. {
  253.     BINARY, BYTES, 4, 4, 1, 1, 8, FALSE, hex_str, hex_l_str, hex_str,
  254.         hex_s_32_posn, 0};  /* use the hex position array */
  255.  
  256. uchar    binary_16_posn[] =
  257. {
  258.     FC, FC + 17, FC + 34, FC + 51
  259. };
  260.  
  261. ROW_FMT binary_16_fmt =
  262. {
  263.     BINARY, WORDS, 4, 8, 8, 2, 16, FALSE, hex_str, hex_l_str, hex_str,
  264.         binary_16_posn, 0};
  265.  
  266. uchar    binary_s_16_posn[] =
  267. {
  268.     FS, FS + 17, FS + 34, FS + 51, FS + 68
  269. };
  270. ROW_FMT binary_s_16_fmt =
  271. {
  272.     BINARY, WORDS, 2, 4, 2, 2, 16, FALSE, hex_str, hex_l_str, hex_str,
  273.         binary_s_16_posn, 0};
  274.  
  275. uchar    binary_32_posn[] =
  276. {
  277.     FC, FC + 33
  278. };
  279.  
  280. ROW_FMT binary_32_fmt =
  281. {
  282.     BINARY, DWORDS, 2, 8, 8, 4, 32, FALSE, hex_l_str, hex_l_str, hex_str,
  283.         binary_32_posn, 0};
  284.  
  285. uchar    binary_s_32_posn[] =
  286. {
  287.     FS, FS + 33
  288. };
  289. ROW_FMT binary_s_32_fmt =
  290. {
  291.     BINARY, DWORDS, 1, 4, 4, 4, 32, FALSE, hex_l_str, hex_l_str, hex_str,
  292.         binary_s_32_posn, 0};
  293.  
  294. /* I must do this because C does not allow forward initialization of
  295.     structures */
  296. void    init_fmt()
  297. {
  298.     text_fmt.r_srch_fmt = &text_fmt;
  299.     ascii_fmt.r_srch_fmt = &ascii_s_fmt;
  300.     ascii_s_fmt.r_srch_fmt = &ascii_fmt;
  301.     ebcdic_fmt.r_srch_fmt = &ebcdic_s_fmt;
  302.     ebcdic_s_fmt.r_srch_fmt = &ebcdic_fmt;
  303.     octal_8_fmt.r_srch_fmt = &octal_s_8_fmt;
  304.     octal_s_8_fmt.r_srch_fmt = &octal_8_fmt;
  305.     octal_16_fmt.r_srch_fmt = &octal_s_16_fmt;
  306.     octal_s_16_fmt.r_srch_fmt = &octal_16_fmt;
  307.     octal_32_fmt.r_srch_fmt = &octal_s_32_fmt;
  308.     octal_s_32_fmt.r_srch_fmt = &octal_32_fmt;
  309.     decimal_8_fmt.r_srch_fmt = &decimal_s_8_fmt;
  310.     decimal_s_8_fmt.r_srch_fmt = &decimal_8_fmt;
  311.     decimal_16_fmt.r_srch_fmt = &decimal_s_16_fmt;
  312.     decimal_s_16_fmt.r_srch_fmt = &decimal_16_fmt;
  313.     decimal_32_fmt.r_srch_fmt = &decimal_s_32_fmt;
  314.     decimal_s_32_fmt.r_srch_fmt = &decimal_32_fmt;
  315.     hex_8_fmt.r_srch_fmt = &hex_s_8_fmt;
  316.     hex_s_8_fmt.r_srch_fmt = &hex_8_fmt;
  317.     hex_16_fmt.r_srch_fmt = &hex_s_16_fmt;
  318.     hex_s_16_fmt.r_srch_fmt = &hex_16_fmt;
  319.     hex_32_fmt.r_srch_fmt = &hex_s_32_fmt;
  320.     hex_s_32_fmt.r_srch_fmt = &hex_32_fmt;
  321.     binary_8_fmt.r_srch_fmt = &binary_s_8_fmt;
  322.     binary_s_8_fmt.r_srch_fmt = &binary_8_fmt;
  323.     binary_16_fmt.r_srch_fmt = &binary_s_16_fmt;
  324.     binary_s_16_fmt.r_srch_fmt = &binary_16_fmt;
  325.     binary_32_fmt.r_srch_fmt = &binary_s_32_fmt;
  326.     binary_s_32_fmt.r_srch_fmt = &binary_32_fmt;
  327. }
  328.