home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / OS2UTIL.ZIP / MES.C < prev    next >
Text File  |  1990-05-21  |  18KB  |  437 lines

  1. #define INCL_SUB        1
  2. #define INCL_DOSPROCESS 1
  3. #define INCL_DOSINFOSEG 1
  4. #define INCL_DOSDEVICES 1
  5.  
  6. #include <os2.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10. #include "vio_util.h"
  11.  
  12. #include "vio_util.c"
  13.  
  14.  
  15. #define FALSE    0
  16. #define TRUE     1
  17. #define SPACE   32
  18. #define BLOCK  219
  19.  
  20. typedef struct  {
  21.        unsigned long  first, second, third;
  22.        unsigned char fourth;
  23.        } character;
  24.  
  25. int main(int argc, char* *argv);
  26.  
  27. main(argc, argv)
  28. int argc;
  29. char *argv[];
  30. {
  31.      character symbol[95];
  32.      unsigned long bit[33];
  33.      int row, col, i, j, k, l, idx, ROW = 1;
  34.      VIOMODEINFO modedata;
  35.  
  36.      if (argc == 1) {
  37.         puts("format: mes <message>");
  38.         exit(1);
  39.      }
  40.  
  41.      cls();
  42.  
  43.      symbol[ 0].first = 0x00000000; symbol[ 0].second = 0x00000000; /* blank */
  44.      symbol[ 0].third = 0x00000000; symbol[ 0].fourth = 0x00;
  45.  
  46.      symbol[ 1].first = 0x1E0FC7FB; symbol[ 1].second = 0xFF7F8FC1; /* !     */
  47.      symbol[ 1].third = 0xE0001E07; symbol[ 1].fourth = 0x08;
  48.  
  49.      symbol[ 2].first = 0x330CC120; symbol[ 2].second = 0x00000000; /* "     */
  50.      symbol[ 2].third = 0x00000000; symbol[ 2].fourth = 0x00;
  51.  
  52.      symbol[ 3].first = 0x330CC333; symbol[ 3].second = 0xFF330CCF; /* #     */
  53.      symbol[ 3].third = 0xFCCC330C; symbol[ 3].fourth = 0x0C;
  54.  
  55.      symbol[ 4].first = 0x0C1FECCF; symbol[ 4].second = 0x307C0700; /* $     */
  56.      symbol[ 4].third = 0xFB377F83; symbol[ 4].fourth = 0x00;
  57.  
  58.      symbol[ 5].first = 0xF07C6030; symbol[ 5].second = 0x180C0603; /* %     */
  59.      symbol[ 5].third = 0x0180C3E0; symbol[ 5].fourth = 0x0F;
  60.  
  61.      symbol[ 6].first = 0x1E0CC610; symbol[ 6].second = 0xCC1E0F06; /* &     */
  62.      symbol[ 6].third = 0x6F8CE79F; symbol[ 6].fourth = 0x03;
  63.  
  64.      symbol[ 7].first = 0x0C030040; symbol[ 7].second = 0x20000000; /* '     */
  65.      symbol[ 7].third = 0x00000000; symbol[ 7].fourth = 0x00;
  66.  
  67.      symbol[ 8].first = 0x06030180; symbol[ 8].second = 0xC0300C03; /* (     */
  68.      symbol[ 8].third = 0x00600C01; symbol[ 8].fourth = 0x08;
  69.  
  70.      symbol[ 9].first = 0x18030060; symbol[ 9].second = 0x0C0300C0; /* )     */
  71.      symbol[ 9].third = 0x30180C06; symbol[ 9].fourth = 0x00;
  72.  
  73.      symbol[10].first = 0x00303618; symbol[10].second = 0xCC0C3FF0; /* *     */
  74.      symbol[10].third = 0xC0CC61B0; symbol[10].fourth = 0x03;
  75.  
  76.      symbol[11].first = 0x000000C0; symbol[11].second = 0x30FFFFF0; /* +     */
  77.      symbol[11].third = 0xC0300000; symbol[11].fourth = 0x00;
  78.  
  79.      symbol[12].first = 0x00000000; symbol[12].second = 0x00000000; /* ,     */
  80.      symbol[12].third = 0xC0300402; symbol[12].fourth = 0x00;
  81.  
  82.      symbol[13].first = 0x00000000; symbol[13].second = 0x00FFFFF0; /* -     */
  83.      symbol[13].third = 0x00000000; symbol[13].fourth = 0x00;
  84.  
  85.      symbol[14].first = 0x00000000; symbol[14].second = 0x00000000; /* .     */
  86.      symbol[14].third = 0x00001E07; symbol[14].fourth = 0x08;
  87.  
  88.      symbol[15].first = 0x00406030; symbol[15].second = 0x180C0603; /* /     */
  89.      symbol[15].third = 0x0180C020; symbol[15].fourth = 0x00;
  90.  
  91.      symbol[16].first = 0x7FBFFC1F; symbol[16].second = 0x0BC4F23D; /* 0     */
  92.      symbol[16].third = 0x0F83FFDF; symbol[16].fourth = 0x0E;
  93.  
  94.      symbol[17].first = 0x0C0F00C0; symbol[17].second = 0x300C0300; /* 1     */
  95.      symbol[17].third = 0xC0300C3F; symbol[17].fourth = 0x0F;
  96.  
  97.      symbol[18].first = 0x7FBFFC0C; symbol[18].second = 0x037FBF8C; /* 2     */
  98.      symbol[18].third = 0x0303FFFF; symbol[18].fourth = 0x0F;
  99.  
  100.      symbol[19].first = 0x7FBFFC1C; symbol[19].second = 0x031FC7F0; /* 3     */
  101.      symbol[19].third = 0x0F07FFDF; symbol[19].fourth = 0x0E;
  102.  
  103.      symbol[20].first = 0x0F07C331; symbol[20].second = 0x8CC33FF0; /* 4     */
  104.      symbol[20].third = 0x300C0300; symbol[20].fourth = 0x0C;
  105.  
  106.      symbol[21].first = 0xFFFFFC03; symbol[21].second = 0x00FF3FF0; /* 5     */
  107.      symbol[21].third = 0x0C03E0FF; symbol[21].fourth = 0x0E;
  108.  
  109.      symbol[22].first = 0xFF300C03; symbol[22].second = 0x00FE3FFC; /* 6     */
  110.      symbol[22].third = 0x0F03FFDF; symbol[22].fourth = 0x0E;
  111.  
  112.      symbol[23].first = 0xFFF03018; symbol[23].second = 0x0C060301; /* 7     */
  113.      symbol[23].third = 0x80C06030; symbol[23].fourth = 0x00;
  114.  
  115.      symbol[24].first = 0x3F387E1F; symbol[24].second = 0x877FB87E; /* 8     */
  116.      symbol[24].third = 0x1F87E1CF; symbol[24].fourth = 0x0C;
  117.  
  118.      symbol[25].first = 0xFFF03C0F; symbol[25].second = 0x03FFC030; /* 9     */
  119.      symbol[25].third = 0x0C03C0FF; symbol[25].fourth = 0x0F;
  120.  
  121.      symbol[26].first = 0x000000C0; symbol[26].second = 0x30000300; /* :     */
  122.      symbol[26].third = 0xC0000000; symbol[26].fourth = 0x00;
  123.  
  124.      symbol[27].first = 0x000000C0; symbol[27].second = 0x30000300; /* ;     */
  125.      symbol[27].third = 0xC0100800; symbol[27].fourth = 0x00;
  126.  
  127.      symbol[28].first = 0x00C0C0C0; symbol[28].second = 0xC0C03003; /* <     */
  128.      symbol[28].third = 0x00300300; symbol[28].fourth = 0x03;
  129.  
  130.      symbol[29].first = 0x00000FFF; symbol[29].second = 0xFF00000F; /* =     */
  131.      symbol[29].third = 0xFFFF0000; symbol[29].fourth = 0x00;
  132.  
  133.      symbol[30].first = 0xC00C00C0; symbol[30].second = 0x0C00C030; /* >     */
  134.      symbol[30].third = 0x30303030; symbol[30].fourth = 0x00;
  135.  
  136.      symbol[31].first = 0x7FA0180C; symbol[31].second = 0x03078300; /* ?     */
  137.      symbol[31].third = 0xC0300003; symbol[31].fourth = 0x00;
  138.  
  139.      symbol[32].first = 0x000007FA; symbol[32].second = 0x019E68DA; /* @     */
  140.      symbol[32].third = 0x367F805F; symbol[32].fourth = 0x0E;
  141.  
  142.      symbol[33].first = 0x0C078331; symbol[33].second = 0x86E1FFFC; /* A     */
  143.      symbol[33].third = 0x0F03C0F0; symbol[33].fourth = 0x03;
  144.  
  145.      symbol[34].first = 0xFF306C0F; symbol[34].second = 0x07FFBFCC; /* B     */
  146.      symbol[34].third = 0x1B03C0FF; symbol[34].fourth = 0x0E;
  147.  
  148.      symbol[35].first = 0xFFFFFC0F; symbol[35].second = 0x00C0300C; /* C     */
  149.      symbol[35].third = 0x0303FFFF; symbol[35].fourth = 0x0F;
  150.  
  151.      symbol[36].first = 0xFF3FFC1F; symbol[36].second = 0x03C0F03C; /* D     */
  152.      symbol[36].third = 0x0F07FFFF; symbol[36].fourth = 0x0C;
  153.  
  154.      symbol[37].first = 0xFFFFFC03; symbol[37].second = 0x00FFFFFC; /* E     */
  155.      symbol[37].third = 0x0300FFFF; symbol[37].fourth = 0x0F;
  156.  
  157.      symbol[38].first = 0xFFFFFC03; symbol[38].second = 0x00FFFFFC; /* F     */
  158.      symbol[38].third = 0x0300C030; symbol[38].fourth = 0x00;
  159.  
  160.      symbol[39].first = 0xFFF03C0F; symbol[39].second = 0x00C7F1FC; /* G     */
  161.      symbol[39].third = 0x0F03FFFF; symbol[39].fourth = 0x0F;
  162.  
  163.      symbol[40].first = 0xC0F03C0F; symbol[40].second = 0x03FFFFFC; /* H     */
  164.      symbol[40].third = 0x0F03C0F0; symbol[40].fourth = 0x03;
  165.  
  166.      symbol[41].first = 0xFFC300C0; symbol[41].second = 0x300C0300; /* I     */
  167.      symbol[41].third = 0xC0300C3F; symbol[41].fourth = 0x0F;
  168.  
  169.      symbol[42].first = 0x00C0300C; symbol[42].second = 0x0300C030; /* J     */
  170.      symbol[42].third = 0x0F03C0FF; symbol[42].fourth = 0x0F;
  171.  
  172.      symbol[43].first = 0xC0F06C33; symbol[43].second = 0x18F8360C; /* K     */
  173.      symbol[43].third = 0xC318C1B0; symbol[43].fourth = 0x03;
  174.  
  175.      symbol[44].first = 0xC0300C03; symbol[44].second = 0x00C0300C; /* L     */
  176.      symbol[44].third = 0x0300C03F; symbol[44].fourth = 0x0F;
  177.  
  178.      symbol[45].first = 0xC0F03E1F; symbol[45].second = 0xCFFFF7BC; /* M     */
  179.      symbol[45].third = 0xCF03C0F0; symbol[45].fourth = 0x03;
  180.  
  181.      symbol[46].first = 0xC0F83F0F; symbol[46].second = 0x63CCF1BC; /* N     */
  182.      symbol[46].third = 0x1F03C0F0; symbol[46].fourth = 0x03;
  183.  
  184.      symbol[47].first = 0xFFFFFC0F; symbol[47].second = 0x03C0F03C; /* O     */
  185.      symbol[47].third = 0x0F03FFFF; symbol[47].fourth = 0x0F;
  186.  
  187.      symbol[48].first = 0xFFF03C0F; symbol[48].second = 0x03C0FFFC; /* P     */
  188.      symbol[48].third = 0x0300C030; symbol[48].fourth = 0x00;
  189.  
  190.      symbol[49].first = 0x7FBFFE1F; symbol[49].second = 0x03C0F03C; /* Q     */
  191.      symbol[49].third = 0x2F86FF9F; symbol[49].fourth = 0x09;
  192.  
  193.      symbol[50].first = 0xFFF03C0F; symbol[50].second = 0x03FF30CC; /* R     */
  194.      symbol[50].third = 0x1B06C0F0; symbol[50].fourth = 0x03;
  195.  
  196.      symbol[51].first = 0x3F3FFC0F; symbol[51].second = 0x00700700; /* S     */
  197.      symbol[51].third = 0x3B07FFCF; symbol[51].fourth = 0x0C;
  198.  
  199.      symbol[52].first = 0xFFFFF0C0; symbol[52].second = 0x300C0300; /* T     */
  200.      symbol[52].third = 0xC0300C03; symbol[52].fourth = 0x00;
  201.  
  202.      symbol[53].first = 0xC0F03C0F; symbol[53].second = 0x03C0F03C; /* U     */
  203.      symbol[53].third = 0x0F03FFFF; symbol[53].fourth = 0x0F;
  204.  
  205.      symbol[54].first = 0xC0F03C0F; symbol[54].second = 0x03C0F03E; /* V     */
  206.      symbol[54].third = 0x1DCE1E03; symbol[54].fourth = 0x00;
  207.  
  208.      symbol[55].first = 0xC0F03C0F; symbol[55].second = 0x33DEFFFF; /* W     */
  209.      symbol[55].third = 0x3f87C0F0; symbol[55].fourth = 0x03;
  210.  
  211.      symbol[56].first = 0xC0D86330; symbol[56].second = 0x480C0301; /* X     */
  212.      symbol[56].third = 0x20CC61B0; symbol[56].fourth = 0x03;
  213.  
  214.      symbol[57].first = 0xC0F03C0F; symbol[57].second = 0x03618780; /* Y     */
  215.      symbol[57].third = 0xC0300C03; symbol[57].fourth = 0x00;
  216.  
  217.      symbol[58].first = 0xFFF03018; symbol[58].second = 0x0C060301; /* Z     */
  218.      symbol[58].third = 0x80C360FF; symbol[58].fourth = 0x0F;
  219.  
  220.      symbol[59].first = 0xFFFFFC03; symbol[59].second = 0x00C0300C; /* [     */
  221.      symbol[59].third = 0x0300FFFF; symbol[59].fourth = 0x0F;
  222.  
  223.      symbol[60].first = 0x80180300; symbol[60].second = 0x600C0180; /* \     */
  224.      symbol[60].third = 0x300600C0; symbol[60].fourth = 0x01;
  225.  
  226.      symbol[61].first = 0xFFFFF00C; symbol[61].second = 0x0300C030; /* ]     */
  227.      symbol[61].third = 0x0C03FFFF; symbol[61].fourth = 0x0F;
  228.  
  229.      symbol[62].first = 0x0C078331; symbol[62].second = 0x86C0C000; /* ^     */
  230.      symbol[62].third = 0x00000000; symbol[62].fourth = 0x00;
  231.  
  232.      symbol[63].first = 0x00000000; symbol[63].second = 0x00000000; /* _     */
  233.      symbol[63].third = 0x0000FFFF; symbol[63].fourth = 0x0F;
  234.  
  235.      symbol[64].first = 0x0C030040; symbol[64].second = 0x00000000; /* `     */
  236.      symbol[64].third = 0x00000000; symbol[64].fourth = 0x00;
  237.  
  238.      symbol[65].first = 0x00000000; symbol[65].second = 0x00003FF0; /* a     */
  239.      symbol[65].third = 0x1FFFC3FF; symbol[65].fourth = 0x0D;
  240.  
  241.      symbol[66].first = 0xC0300C03; symbol[66].second = 0x00C03FFC; /* b     */
  242.      symbol[66].third = 0x0F03C0FF; symbol[66].fourth = 0x0F;
  243.  
  244.      symbol[67].first = 0x00000000; symbol[67].second = 0x00003FFC; /* c     */
  245.      symbol[67].third = 0x0700C07F; symbol[67].fourth = 0x0F;
  246.  
  247.      symbol[68].first = 0x00C0300C; symbol[68].second = 0x0300FFFC; /* d     */
  248.      symbol[68].third = 0x0F03C0FF; symbol[68].fourth = 0x0F;
  249.  
  250.      symbol[69].first = 0x00000000; symbol[69].second = 0x00003FFC; /* e     */
  251.      symbol[69].third = 0x0FFFC03F; symbol[69].fourth = 0x0F;
  252.  
  253.      symbol[70].first = 0x0003F0CC; symbol[70].second = 0x300C1FE0; /* f     */
  254.      symbol[70].third = 0xC0300C03; symbol[70].fourth = 0x00;
  255.  
  256.      symbol[71].first = 0x00000000; symbol[71].second = 0x00000FF3; /* g     */
  257.      symbol[71].third = 0x0CFF80FF; symbol[71].fourth = 0x0F;
  258.  
  259.      symbol[72].first = 0xC0300C03; symbol[72].second = 0x00C03FFC; /* h     */
  260.      symbol[72].third = 0x0F03C0F0; symbol[72].fourth = 0x03;
  261.  
  262.      symbol[73].first = 0x00000000; symbol[73].second = 0x30000300; /* i     */
  263.      symbol[73].third = 0xC0300C03; symbol[73].fourth = 0x00;
  264.  
  265.      symbol[74].first = 0x00000000; symbol[74].second = 0x30000300; /* j     */
  266.      symbol[74].third = 0xC0308C3F; symbol[74].fourth = 0x00;
  267.  
  268.      symbol[75].first = 0xC0300C13; symbol[75].second = 0x08C4360E; /* k     */
  269.      symbol[75].third = 0xC30CC1B0; symbol[75].fourth = 0x03;
  270.  
  271.      symbol[76].first = 0x1C0300C0; symbol[76].second = 0x300C0300; /* l     */
  272.      symbol[76].third = 0xC0300C07; symbol[76].fourth = 0x08;
  273.  
  274.      symbol[77].first = 0x00000000; symbol[77].second = 0x0000303E; /* m     */
  275.      symbol[77].third = 0x1FFFDEF3; symbol[77].fourth = 0x03;
  276.  
  277.      symbol[78].first = 0x00000000; symbol[78].second = 0x00C03FFC; /* n     */
  278.      symbol[78].third = 0x0F03C0F0; symbol[78].fourth = 0x03;
  279.  
  280.      symbol[79].first = 0x00000000; symbol[79].second = 0x00003FFC; /* o     */
  281.      symbol[79].third = 0x0F03C0FF; symbol[79].fourth = 0x0F;
  282.  
  283.      symbol[80].first = 0x00000000; symbol[80].second = 0x00003FFE; /* p     */
  284.      symbol[80].third = 0x1FFFC030; symbol[80].fourth = 0x00;
  285.  
  286.      symbol[81].first = 0x00000000; symbol[81].second = 0x00003FFF; /* q     */
  287.      symbol[81].third = 0x1FFF00C0; symbol[81].fourth = 0x03;
  288.  
  289.      symbol[82].first = 0x00000000; symbol[82].second = 0x00C03FEC; /* r     */
  290.      symbol[82].third = 0x0B00C030; symbol[82].fourth = 0x00;
  291.  
  292.      symbol[83].first = 0x00000000; symbol[83].second = 0x00000FE7; /* s     */
  293.      symbol[83].third = 0x0438839F; symbol[83].fourth = 0x0C;
  294.  
  295.      symbol[84].first = 0x00000000; symbol[84].second = 0x000C1FE0; /* t     */
  296.      symbol[84].third = 0xC0300C03; symbol[84].fourth = 0x08;
  297.  
  298.      symbol[85].first = 0x00000000; symbol[85].second = 0x000030CC; /* u     */
  299.      symbol[85].third = 0x330CC33F; symbol[85].fourth = 0x0F;
  300.  
  301.      symbol[86].first = 0x00000000; symbol[86].second = 0x0000303C; /* v     */
  302.      symbol[86].third = 0x0F877387; symbol[86].fourth = 0x08;
  303.  
  304.      symbol[87].first = 0x00000000; symbol[87].second = 0x0000333C; /* w     */
  305.      symbol[87].third = 0xCF7BF3F0; symbol[87].fourth = 0x03;
  306.  
  307.      symbol[88].first = 0x00000000; symbol[88].second = 0x00002016; /* x     */
  308.      symbol[88].third = 0x187861A0; symbol[88].fourth = 0x01;
  309.  
  310.      symbol[89].first = 0x00000000; symbol[89].second = 0x00001836; /* y     */
  311.      symbol[89].third = 0x0DFF00FF; symbol[89].fourth = 0x0F;
  312.  
  313.      symbol[90].first = 0x00000000; symbol[90].second = 0x00003FF8; /* z     */
  314.      symbol[90].third = 0x1830607F; symbol[90].fourth = 0x0F;
  315.  
  316.      symbol[91].first = 0x0F040300; symbol[91].second = 0xC0802003; /* {     */
  317.      symbol[91].third = 0x00C01003; symbol[91].fourth = 0x0C;
  318.  
  319.      symbol[92].first = 0x0C0300C0; symbol[92].second = 0x300C0300; /* |     */
  320.      symbol[92].third = 0xC0300C03; symbol[92].fourth = 0x00;
  321.  
  322.      symbol[93].first = 0x3C008030; symbol[93].second = 0x0C004010; /* }     */
  323.      symbol[93].third = 0x300C020F; symbol[93].fourth = 0x00;
  324.  
  325.      symbol[94].first = 0x00000307; symbol[94].second = 0x33830000; /* ~     */
  326.      symbol[94].third = 0x00000000; symbol[94].fourth = 0x00;
  327.  
  328.      bit[01] = 0x00000001;          bit[02] = 0x00000002;
  329.      bit[03] = 0x00000004;          bit[04] = 0x00000008;
  330.      bit[05] = 0x00000010;          bit[06] = 0x00000020;
  331.      bit[07] = 0x00000040;          bit[ 8] = 0x00000080;
  332.      bit[ 9] = 0x00000100;          bit[10] = 0x00000200;
  333.      bit[11] = 0x00000400;          bit[12] = 0x00000800;
  334.      bit[13] = 0x00001000;          bit[14] = 0x00002000;
  335.      bit[15] = 0x00004000;          bit[16] = 0x00008000;
  336.      bit[17] = 0x00010000;          bit[18] = 0x00020000;
  337.      bit[19] = 0x00040000;          bit[20] = 0x00080000;
  338.      bit[21] = 0x00100000;          bit[22] = 0x00200000;
  339.      bit[23] = 0x00400000;          bit[24] = 0x00800000;
  340.      bit[25] = 0x01000000;          bit[26] = 0x02000000;
  341.      bit[27] = 0x04000000;          bit[28] = 0x08000000;
  342.      bit[29] = 0x10000000;          bit[30] = 0x20000000;
  343.      bit[31] = 0x40000000;          bit[32] = 0x80000000;
  344.  
  345.      row = col = 1;
  346.      for (i = 1; i < argc; i++) {     /* word loop */
  347.          j = strlen(argv[i]);
  348.  
  349.          for (k = 0; k < j; k++) {    /* character loop */
  350.              idx = argv[i][k] - ' ';
  351.  
  352.              curset(row, col);
  353.              for (l = 0; l < 32; l++) {
  354.                  if (symbol[idx].first & bit[32-l])
  355.                     wrtchr(BLOCK);
  356.                  else
  357.                     wrtchr(SPACE);
  358.                  if (l % 10 == 9)
  359.                     curset(++row, col);
  360.              }
  361.  
  362.              for (l = 0; l < 32; l++) {
  363.                  if (symbol[idx].second & bit[32-l])
  364.                     wrtchr(BLOCK);
  365.                  else
  366.                     wrtchr(SPACE);
  367.                  if (l % 10 == 7)
  368.                     curset(++row, col);
  369.              }
  370.  
  371.              for (l = 0; l < 32; l++) {
  372.                  if (symbol[idx].third & bit[32-l])
  373.                     wrtchr(BLOCK);
  374.                  else
  375.                     wrtchr(SPACE);
  376.                  if (l % 10 == 5)
  377.                     curset(++row, col);
  378.              }
  379.  
  380.              for (l = 0; l < 4; l++)
  381.                  if (symbol[idx].fourth & bit[4-l])
  382.                     wrtchr(BLOCK);
  383.                  else
  384.                     wrtchr(SPACE);
  385.  
  386.              col += 11;
  387.              if (col > 77) {
  388.                 ROW++;
  389.                 switch (ROW) {
  390.                        case 1: row = 1;
  391.                                break;
  392.                        case 2: row = 12;
  393.                                break;
  394.                        case 3: row = 23;
  395.                                break;
  396.                        default:row = 34;
  397.                                break;
  398.                        }
  399.                 col  =  1;
  400.              }
  401.              else
  402.                 switch (ROW) {
  403.                        case 1: row = 1;
  404.                                break;
  405.                        case 2: row = 12;
  406.                                break;
  407.                        case 3: row = 23;
  408.                                break;
  409.                        default:row = 34;
  410.                                break;
  411.                        }
  412.          }
  413.  
  414.          if (col != 1)
  415.             col +=11;
  416.          if (col > 77) {
  417.             ROW++;
  418.             switch (ROW) {
  419.                    case 1: row = 1;
  420.                            break;
  421.                    case 2: row = 12;
  422.                            break;
  423.                    case 3: row = 23;
  424.                            break;
  425.                    default:row = 34;
  426.                            break;
  427.             }
  428.             col  =  1;
  429.          }
  430.      }
  431.      modedata.cb = sizeof( modedata );
  432.      VioGetMode( &modedata, 0 );
  433.      return(curset(modedata.row-1, 80));
  434. }
  435.  
  436.  
  437.