home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / FSGFX.ZIP / G_SETGPH.C < prev    next >
C/C++ Source or Header  |  1990-03-06  |  22KB  |  1,004 lines

  1. /* g_setgph.c */
  2. /* set graphics mode, initialize threads */
  3. /* this also contains external variables for other modules */
  4.  
  5.  
  6. #include <stdio.h>
  7. #include <malloc.h>
  8. #include <memory.h>
  9. #include "mygraph.h"
  10. #include "mymouse.h"
  11.  
  12. #define STK_SIZE 32768
  13. /* external variables, initialized bye g_setgph */
  14.  
  15.     int oldtextx = 0;
  16.     int oldtexty = 0;
  17.  
  18.     char *screenbuffer;
  19.     char *pchscreen;
  20.  
  21.     struct _VIOPHYSBUF    viopbBuf;    
  22.     struct _VIOMODEINFO    oldconfig;
  23.     struct _VIOMODEINFO    newconfig;
  24.     struct _VIOCONFIGINFO    vioconfig;
  25.  
  26.     int redrawmode = OR;
  27. /* and the font */
  28. unsigned char alphabet[128][8][8] =
  29.  
  30. /*        */    {
  31.  
  32.         {    { 0,0,0,0,0,0,0,0 },
  33.             { 0,0,0,0,0,0,0,0 },
  34.             { 0,0,0,0,0,0,0,0 },
  35.             { 0,0,0,0,0,0,0,0 },
  36.             { 0,0,0,0,0,0,0,0 },
  37.             { 0,0,0,0,0,0,0,0 },
  38.             { 0,0,0,0,0,0,0,0 },
  39.             { 0,0,0,0,0,0,0,0 }        },
  40.  
  41. /*    !    */    
  42.         {    { 0,0,0,1,1,0,0,0 },
  43.             { 0,0,0,1,1,0,0,0 },
  44.             { 0,0,0,1,1,0,0,0 },
  45.             { 0,0,0,1,1,0,0,0 },
  46.             { 0,0,0,1,1,0,0,0 },
  47.             { 0,0,0,0,0,0,0,0 },
  48.             { 0,0,0,1,1,0,0,0 },
  49.             { 0,0,0,1,1,0,0,0 }        },
  50. /*    "    */
  51.  
  52.         {    { 0,0,0,0,0,0,0,0 },
  53.             { 0,0,0,1,1,0,0,0 },
  54.             { 0,0,0,1,1,0,0,0 },
  55.             { 0,0,0,0,0,0,0,0 },
  56.             { 0,0,0,0,0,0,0,0 },
  57.             { 0,0,0,0,0,0,0,0 },
  58.             { 0,0,0,0,0,0,0,0 },
  59.             { 0,0,0,0,0,0,0,0 }        },
  60. /*    #    */
  61.  
  62.         {    { 0,0,1,0,0,1,0,0 },
  63.             { 0,0,1,0,0,1,0,0 },
  64.             { 1,1,1,1,1,1,1,1 },
  65.             { 0,0,1,0,0,1,0,0 },
  66.             { 0,0,1,0,0,1,0,0 },
  67.             { 1,1,1,1,1,1,1,1 },
  68.             { 0,0,1,0,0,1,0,0 },
  69.             { 0,0,1,0,0,1,0,0 }        },
  70. /*    $    */
  71.         {    { 0,0,0,1,1,0,0,0 },
  72.             { 0,0,1,1,1,1,0,0 },
  73.             { 0,1,0,0,0,0,0,0 },
  74.             { 0,0,1,1,1,0,0,0 },
  75.             { 0,0,0,0,0,1,0,0 },
  76.             { 0,1,0,0,0,0,1,0 },
  77.             { 0,0,1,1,1,1,0,0 },
  78.             { 0,0,0,1,1,0,0,0 }        },
  79.  
  80. /*    %    */
  81.  
  82.         {    { 1,1,0,0,0,0,0,1 },
  83.             { 1,1,0,0,0,0,1,0 },
  84.             { 0,0,0,0,0,1,0,0 },
  85.             { 0,0,0,0,1,0,0,0 },
  86.             { 0,0,0,1,0,0,0,0 },
  87.             { 0,0,1,0,0,0,0,0 },
  88.             { 0,1,0,0,0,0,1,1 },
  89.             { 1,0,0,0,0,0,1,1 }        },
  90. /*    &    */
  91.  
  92.         {    { 0,0,0,0,0,0,0,0 },
  93.             { 0,0,0,0,0,0,0,0 },
  94.             { 0,0,0,0,0,0,0,0 },
  95.             { 0,0,0,0,0,0,0,0 },
  96.             { 0,0,0,0,0,0,0,0 },
  97.             { 0,0,0,0,0,0,0,0 },
  98.             { 0,0,0,0,0,0,0,0 },
  99.             { 0,0,0,0,0,0,0,0 }        },
  100. /*    `    */
  101.  
  102.         {    { 0,0,0,0,0,0,0,0 },
  103.             { 0,0,0,0,0,0,0,0 },
  104.             { 0,0,1,0,0,0,0,0 },
  105.             { 0,0,1,0,0,0,0,0 },
  106.             { 0,0,0,1,0,0,0,0 },
  107.             { 0,0,0,0,0,0,0,0 },
  108.             { 0,0,0,0,0,0,0,0 },
  109.             { 0,0,0,0,0,0,0,0 }        },
  110. /*    (    */
  111.  
  112.         {    { 0,0,0,0,1,0,0,0 },
  113.             { 0,0,0,1,0,0,0,0 },
  114.             { 0,0,1,0,0,0,0,0 },
  115.             { 0,0,1,0,0,0,0,0 },
  116.             { 0,0,1,0,0,0,0,0 },
  117.             { 0,0,1,0,0,0,0,0 },
  118.             { 0,0,0,1,0,0,0,0 },
  119.             { 0,0,0,0,1,0,0,0 }        },
  120. /*    )    */
  121.  
  122.         {    { 0,0,0,1,0,0,0,0 },
  123.             { 0,0,0,0,1,0,0,0 },
  124.             { 0,0,0,0,0,1,0,0 },
  125.             { 0,0,0,0,0,1,0,0 },
  126.             { 0,0,0,0,0,1,0,0 },
  127.             { 0,0,0,0,0,1,0,0 },
  128.             { 0,0,0,0,1,0,0,0 },
  129.             { 0,0,0,1,0,0,0,0 }        },
  130. /*    *    */
  131.  
  132.         {    { 1,0,0,0,0,0,0,1 },
  133.             { 0,1,0,0,0,0,1,0 },
  134.             { 0,0,1,1,1,1,0,0 },
  135.             { 0,0,1,1,1,1,1,1 },
  136.             { 1,1,1,1,1,1,0,0 },
  137.             { 0,0,1,1,1,1,0,0 },
  138.             { 0,1,0,0,0,0,1,0 },
  139.             { 1,0,0,0,0,0,0,1 }        },
  140. /*    +    */
  141.  
  142.         {    { 0,0,0,0,0,0,0,0 },
  143.             { 0,0,0,0,0,0,0,0 },
  144.             { 0,0,0,1,0,0,0,0 },
  145.             { 0,0,0,1,0,0,0,0 },
  146.             { 0,1,1,1,1,1,0,0 },
  147.             { 0,0,0,1,0,0,0,0 },
  148.             { 0,0,0,1,0,0,0,0 },
  149.             { 0,0,0,0,0,0,0,0 }        },
  150. /* 0,0 */
  151.  
  152.         {    { 0,0,0,0,0,0,0,0 },
  153.             { 0,0,0,0,0,0,0,0 },
  154.             { 0,0,0,0,0,0,0,0 },
  155.             { 0,0,0,0,0,0,0,0 },
  156.             { 0,0,0,0,0,0,0,0 },
  157.             { 0,0,0,0,1,0,0,0 },
  158.             { 0,0,0,0,1,0,0,0 },
  159.             { 0,0,0,1,0,0,0,0 }        },
  160. /*    -    */
  161.  
  162.         {    { 0,0,0,0,0,0,0,0 },
  163.             { 0,0,0,0,0,0,0,0 },
  164.             { 0,0,0,0,0,0,0,0 },
  165.             { 1,1,1,1,1,1,1,1 },
  166.             { 0,0,0,0,0,0,0,0 },
  167.             { 0,0,0,0,0,0,0,0 },
  168.             { 0,0,0,0,0,0,0,0 },
  169.             { 0,0,0,0,0,0,0,0 }        },
  170. /*    .    */
  171.  
  172.         {    { 0,0,0,0,0,0,0,0 },
  173.             { 0,0,0,0,0,0,0,0 },
  174.             { 0,0,0,0,0,0,0,0 },
  175.             { 0,0,0,0,0,0,0,0 },
  176.             { 0,0,0,0,0,0,0,0 },
  177.             { 0,0,0,0,0,0,0,0 },
  178.             { 0,0,0,0,0,0,0,0 },
  179.             { 0,0,0,1,0,0,0,0 }        },
  180. /*    /    */
  181.  
  182.         {    { 0,0,0,0,0,0,0,1 },
  183.             { 0,0,0,0,0,0,1,0 },
  184.             { 0,0,0,0,0,1,0,0 },
  185.             { 0,0,0,0,1,0,0,0 },
  186.             { 0,0,0,1,0,0,0,0 },
  187.             { 0,0,1,0,0,0,0,0 },
  188.             { 0,1,0,0,0,0,0,0 },
  189.             { 1,0,0,0,0,0,0,0 }        },
  190. /*    0    */
  191.  
  192.         {    { 0,0,0,1,1,0,0,0 },
  193.             { 0,0,1,0,0,1,0,0 },
  194.             { 0,1,0,0,1,0,1,0 },
  195.             { 1,0,0,1,0,0,0,1 },
  196.             { 1,0,1,0,0,0,0,1 },
  197.             { 0,1,0,0,0,0,1,0 },
  198.             { 0,0,1,0,0,1,0,0 },
  199.             { 0,0,0,1,1,0,0,0 }        },
  200. /*    1    */
  201.  
  202.         {    { 0,0,0,1,1,0,0,0 },
  203.             { 0,0,1,0,1,0,0,0 },
  204.             { 0,0,0,0,1,0,0,0 },
  205.             { 0,0,0,0,1,0,0,0 },
  206.             { 0,0,0,0,1,0,0,0 },
  207.             { 0,0,0,0,1,0,0,0 },
  208.             { 0,0,0,0,1,0,0,0 },
  209.             { 0,0,1,1,1,1,1,0 }        },
  210. /*    2    */
  211.  
  212.         {    { 0,0,1,1,1,0,0,0 },
  213.             { 0,1,0,0,0,1,0,0 },
  214.             { 0,0,0,0,0,0,1,0 },
  215.             { 0,0,0,0,0,0,1,0 },
  216.             { 0,0,0,0,0,1,0,0 },
  217.             { 0,0,0,0,1,0,0,0 },
  218.             { 0,0,0,1,0,0,0,0 },
  219.             { 0,0,1,1,1,1,1,0 }        },
  220. /*    3    */
  221.  
  222.         {    { 0,0,1,1,1,0,0,0 },
  223.             { 0,1,0,0,0,1,0,0 },
  224.             { 1,0,0,0,0,0,1,0 },
  225.             { 0,0,0,0,0,1,0,0 },
  226.             { 0,0,0,1,1,1,0,0 },
  227.             { 1,0,0,0,0,1,1,0 },
  228.             { 0,1,0,0,0,1,0,0 },
  229.             { 0,0,1,1,1,0,0,0 }        },
  230. /*    4    */
  231.  
  232.         {    { 0,0,0,1,1,0,0,0 },
  233.             { 0,0,1,0,1,0,0,0 },
  234.             { 0,1,0,0,1,0,0,0 },
  235.             { 1,0,0,0,1,0,0,0 },
  236.             { 1,1,1,1,1,1,1,1 },
  237.             { 0,0,0,0,1,0,0,0 },
  238.             { 0,0,0,0,1,0,0,0 },
  239.             { 0,0,0,0,1,0,0,0 }        },
  240. /*    5    */
  241.  
  242.         {    { 0,1,1,1,1,1,1,0 },
  243.             { 0,1,0,0,0,0,0,0 },
  244.             { 0,1,0,0,0,0,0,0 },
  245.             { 0,1,1,1,1,0,0,0 },
  246.             { 0,0,0,0,0,1,0,0 },
  247.             { 0,0,0,0,0,0,1,0 },
  248.             { 0,0,0,0,0,0,1,0 },
  249.             { 0,1,1,1,1,1,0,0 }        },
  250. /*    6    */
  251.  
  252.         {    { 0,0,0,1,1,1,0,0 },
  253.             { 0,0,1,0,0,0,0,0 },
  254.             { 0,1,0,0,0,0,0,0 },
  255.             { 0,1,0,0,0,0,0,0 },
  256.             { 0,1,1,1,1,1,0,0 },
  257.             { 0,1,0,0,0,0,1,0 },
  258.             { 0,1,0,0,0,0,1,0 },
  259.             { 0,0,1,1,1,1,0,0 }        },
  260. /*    7    */
  261.  
  262.         {    { 0,1,1,1,1,1,1,0 },
  263.             { 0,0,0,0,0,0,1,0 },
  264.             { 0,0,0,0,0,0,1,0 },
  265.             { 0,0,0,0,0,1,0,0 },
  266.             { 0,0,0,0,1,0,0,0 },
  267.             { 0,0,0,1,0,0,0,0 },
  268.             { 0,0,1,0,0,0,0,0 },
  269.             { 0,1,0,0,0,0,0,0 }        },
  270. /*    8    */
  271.  
  272.         {    { 0,0,1,1,1,1,0,0 },
  273.             { 0,1,0,0,0,0,1,0 },
  274.             { 0,1,0,0,0,0,1,0 },
  275.             { 0,0,1,1,1,1,0,0 },
  276.             { 0,1,0,0,0,0,1,0 },
  277.             { 0,1,0,0,0,0,1,0 },
  278.             { 0,1,0,0,0,0,1,0 },
  279.             { 0,0,1,1,1,1,0,0 }        },
  280. /*    9    */
  281.  
  282.         {    { 0,0,1,1,1,1,0,0 },
  283.             { 0,1,0,0,0,0,1,0 },
  284.             { 0,1,0,0,0,0,1,0 },
  285.             { 0,0,1,1,1,1,1,0 },
  286.             { 0,0,0,0,0,1,0,0 },
  287.             { 0,0,0,0,1,0,0,0 },
  288.             { 0,0,0,1,0,0,0,0 },
  289.             { 0,1,1,0,0,0,0,0 }        },
  290. /*    :    */
  291.  
  292.         {    { 0,0,0,0,0,0,0,0 },
  293.             { 0,0,0,0,0,0,0,0 },
  294.             { 0,0,0,1,0,0,0,0 },
  295.             { 0,0,0,0,0,0,0,0 },
  296.             { 0,0,0,0,0,0,0,0 },
  297.             { 0,0,0,1,0,0,0,0 },
  298.             { 0,0,0,0,0,0,0,0 },
  299.             { 0,0,0,0,0,0,0,0 }        },
  300.  
  301. /*    ;    */
  302.  
  303.         {    { 0,0,0,0,0,0,0,0 },
  304.             { 0,0,0,0,0,0,0,0 },
  305.             { 0,0,0,1,0,0,0,0 },
  306.             { 0,0,0,0,0,0,0,0 },
  307.             { 0,0,0,0,0,0,0,0 },
  308.             { 0,0,0,1,0,0,0,0 },
  309.             { 0,0,0,0,0,0,0,0 },
  310.             { 0,0,0,0,0,0,0,0 }        },
  311. /*    <    */
  312.  
  313.         {    { 0,0,0,1,0,0,0,0 },
  314.             { 0,0,1,0,0,0,0,0 },
  315.             { 0,1,0,0,0,0,0,0 },
  316.             { 1,0,0,0,0,0,0,0 },
  317.             { 1,0,0,0,0,0,0,0 },
  318.             { 0,1,0,0,0,0,0,0 },
  319.             { 0,0,1,0,0,0,0,0 },
  320.             { 0,0,0,1,0,0,0,0 }        },
  321. /*    =    */
  322.  
  323.         {    { 0,0,0,0,0,0,0,0 },
  324.             { 0,0,0,0,0,0,0,0 },
  325.             { 0,1,1,1,1,1,1,0 },
  326.             { 0,0,0,0,0,0,0,0 },
  327.             { 0,0,0,0,0,0,0,0 },
  328.             { 0,1,1,1,1,1,1,0 },
  329.             { 0,0,0,0,0,0,0,0 },
  330.             { 0,0,0,0,0,0,0,0 }        },
  331. /*    >    */
  332.  
  333.         {    { 0,0,0,0,1,0,0,0 },
  334.             { 0,0,0,0,0,1,0,0 },
  335.             { 0,0,0,0,0,0,1,0 },
  336.             { 0,0,0,0,0,0,0,1 },
  337.             { 0,0,0,0,0,0,0,1 },
  338.             { 0,0,0,0,0,0,1,0 },
  339.             { 0,0,0,0,0,1,0,0 },
  340.             { 0,0,0,0,1,0,0,0 }        },
  341. /*    ?    */
  342.  
  343.         {    { 0,0,0,1,1,0,0,0 },
  344.             { 0,0,1,0,0,1,0,0 },
  345.             { 0,1,0,0,0,0,1,0 },
  346.             { 0,1,0,0,0,0,1,0 },
  347.             { 0,0,0,0,0,1,0,0 },
  348.             { 0,0,0,0,1,0,0,0 },
  349.             { 0,0,0,0,0,0,0,0 },
  350.             { 0,0,0,0,1,0,0,0 }        },
  351. /*    @    */
  352.  
  353.         {    { 0,0,0,0,0,0,0,0 },
  354.             { 0,0,0,0,0,0,0,0 },
  355.             { 0,0,0,0,0,0,0,0 },
  356.             { 0,0,0,0,0,0,0,0 },
  357.             { 0,0,0,0,0,0,0,0 },
  358.             { 0,0,0,0,0,0,0,0 },
  359.             { 0,0,0,0,0,0,0,0 },
  360.             { 0,0,0,0,0,0,0,0 }        },
  361.  
  362. /*    A    */
  363.  
  364.         {    { 0,0,0,1,1,0,0,0 },
  365.             { 0,0,1,0,0,1,0,0 },
  366.             { 0,1,0,0,0,0,1,0 },
  367.             { 0,1,0,0,0,0,1,0 },
  368.             { 0,1,1,1,1,1,1,0 },
  369.             { 0,1,0,0,0,0,1,0 },
  370.             { 0,1,0,0,0,0,1,0 },
  371.             { 0,1,0,0,0,0,1,0 }        },
  372.  
  373. /*    B    */
  374.  
  375.         {    { 0,1,1,1,1,1,0,0 },
  376.             { 0,1,0,0,0,0,1,0 },
  377.             { 0,1,0,0,0,0,1,0 },
  378.             { 0,1,1,1,1,1,0,0 },
  379.             { 0,1,0,0,0,1,0,0 },
  380.             { 0,1,0,0,0,0,1,0 },
  381.             { 0,1,0,0,0,0,1,0 },
  382.             { 0,1,1,1,1,1,0,0 }        },
  383.  
  384. /*    C    */
  385.         {    { 0,0,1,1,1,1,0,0 },
  386.             { 0,1,0,0,0,0,1,0 },
  387.             { 0,1,0,0,0,0,0,0 },
  388.             { 0,1,0,0,0,0,0,0 },
  389.             { 0,1,0,0,0,0,0,0 },
  390.             { 0,1,0,0,0,0,0,0 },
  391.             { 0,1,0,0,0,0,1,0 },
  392.             { 0,0,1,1,1,1,0,0 }        },
  393. /*    D    */
  394.  
  395.         {    { 0,1,1,1,1,1,0,0 },
  396.             { 0,1,0,0,0,0,1,0 },
  397.             { 0,1,0,0,0,0,1,0 },
  398.             { 0,1,0,0,0,0,1,0 },
  399.             { 0,1,0,0,0,0,1,0 },
  400.             { 0,1,0,0,0,0,1,0 },
  401.             { 0,1,0,0,0,0,1,0 },
  402.             { 0,1,1,1,1,1,0,0 }        },
  403. /*    E    */
  404.  
  405.         {    { 0,1,1,1,1,1,1,0 },
  406.             { 0,1,0,0,0,0,0,0 },
  407.             { 0,1,0,0,0,0,0,0 },
  408.             { 0,1,1,1,1,0,0,0 },
  409.             { 0,1,0,0,0,0,0,0 },
  410.             { 0,1,0,0,0,0,0,0 },
  411.             { 0,1,0,0,0,0,0,0 },
  412.             { 0,1,1,1,1,1,1,0 }        },
  413. /*    F    */
  414.  
  415.         {    { 0,1,1,1,1,1,1,0 },
  416.             { 0,1,0,0,0,0,0,0 },
  417.             { 0,1,0,0,0,0,0,0 },
  418.             { 0,1,1,1,1,0,0,0 },
  419.             { 0,1,0,0,0,0,0,0 },
  420.             { 0,1,0,0,0,0,0,0 },
  421.             { 0,1,0,0,0,0,0,0 },
  422.             { 0,1,0,0,0,0,0,0 }        },
  423. /*    G    */
  424.  
  425.         {    { 0,0,0,1,1,0,0,0 },
  426.             { 0,0,1,0,0,1,0,0 },
  427.             { 0,1,0,0,0,0,1,0 },
  428.             { 0,1,0,0,0,0,0,0 },
  429.             { 0,1,0,0,1,1,0,0 },
  430.             { 0,1,0,0,0,0,1,0 },
  431.             { 0,0,1,0,0,1,1,0 },
  432.             { 0,0,0,1,1,0,1,0 }        },
  433. /*    H    */
  434.  
  435.         {    { 0,1,0,0,0,0,1,0 },
  436.             { 0,1,0,0,0,0,1,0 },
  437.             { 0,1,0,0,0,0,1,0 },
  438.             { 0,1,1,1,1,1,1,0 },
  439.             { 0,1,0,0,0,0,1,0 },
  440.             { 0,1,0,0,0,0,1,0 },
  441.             { 0,1,0,0,0,0,1,0 },
  442.             { 0,1,0,0,0,0,1,0 }        },
  443. /*    I    */
  444.  
  445.         {    { 0,0,1,1,1,0,0,0 },
  446.             { 0,0,0,1,0,0,0,0 },
  447.             { 0,0,0,1,0,0,0,0 },
  448.             { 0,0,0,1,0,0,0,0 },
  449.             { 0,0,0,1,0,0,0,0 },
  450.             { 0,0,0,1,0,0,0,0 },
  451.             { 0,0,0,1,0,0,0,0 },
  452.             { 0,0,1,1,1,0,0,0 }        },
  453. /*    J    */
  454.  
  455.         {    { 0,0,0,0,1,1,1,0 },
  456.             { 0,0,0,0,0,1,0,0 },
  457.             { 0,0,0,0,0,1,0,0 },
  458.             { 0,0,0,0,0,1,0,0 },
  459.             { 0,0,0,0,0,1,0,0 },
  460.             { 0,1,0,0,0,1,0,0 },
  461.             { 0,1,0,0,0,1,0,0 },
  462.             { 0,0,1,1,1,0,0,0 }        },
  463. /*    K    */
  464.  
  465.         {    { 0,1,0,0,0,1,0,0 },
  466.             { 0,1,0,0,1,0,0,0 },
  467.             { 0,1,0,1,0,0,0,0 },
  468.             { 0,1,1,0,0,0,0,0 },
  469.             { 0,1,1,1,0,0,0,0 },
  470.             { 0,1,0,0,1,0,0,0 },
  471.             { 0,1,0,0,0,1,0,0 },
  472.             { 0,1,0,0,0,0,1,0 }        },
  473. /*    L    */
  474.  
  475.         {    { 0,1,0,0,0,0,0,0 },
  476.             { 0,1,0,0,0,0,0,0 },
  477.             { 0,1,0,0,0,0,0,0 },
  478.             { 0,1,0,0,0,0,0,0 },
  479.             { 0,1,0,0,0,0,0,0 },
  480.             { 0,1,0,0,0,0,0,0 },
  481.             { 0,1,0,0,0,0,0,0 },
  482.             { 0,1,1,1,1,1,1,0 }        },
  483. /*    M    */
  484.  
  485.         {    { 0,1,0,0,0,0,1,0 },
  486.             { 0,1,1,0,0,1,1,0 },
  487.             { 0,1,0,1,1,0,1,0 },
  488.             { 0,1,0,0,0,0,1,0 },
  489.             { 0,1,0,0,0,0,1,0 },
  490.             { 0,1,0,0,0,0,1,0 },
  491.             { 0,1,0,0,0,0,1,0 },
  492.             { 0,1,0,0,0,0,1,0 }        },
  493. /*    N    */
  494.  
  495.         {    { 0,1,0,0,0,0,1,0 },
  496.             { 0,1,1,0,0,0,1,0 },
  497.             { 0,1,1,0,0,0,1,0 },
  498.             { 0,1,0,1,0,0,1,0 },
  499.             { 0,1,0,0,1,0,1,0 },
  500.             { 0,1,0,0,0,1,1,0 },
  501.             { 0,1,0,0,0,1,1,0 },
  502.             { 0,1,0,0,0,0,1,0 }        },
  503. /*    O    */
  504.         {    { 0,0,0,1,1,0,0,0 },
  505.             { 0,0,1,0,0,1,0,0 },
  506.             { 0,1,0,0,0,0,1,0 },
  507.             { 1,0,0,0,0,0,0,1 },
  508.             { 1,0,0,0,0,0,0,1 },
  509.             { 0,1,0,0,0,0,1,0 },
  510.             { 0,0,1,0,0,1,0,0 },
  511.             { 0,0,0,1,1,0,0,0 }        },
  512. /*    P    */
  513.  
  514.         {    { 0,1,1,1,1,1,0,0 },
  515.             { 0,1,0,0,0,0,1,0 },
  516.             { 0,1,0,0,0,0,1,0 },
  517.             { 0,1,1,1,1,1,0,0 },
  518.             { 0,1,0,0,0,0,0,0 },
  519.             { 0,1,0,0,0,0,0,0 },
  520.             { 0,1,0,0,0,0,0,0 },
  521.             { 0,1,0,0,0,0,0,0 }        },
  522.  
  523. /*    Q    */
  524.         {    { 0,0,0,1,1,0,0,0 },
  525.             { 0,0,1,0,0,1,0,0 },
  526.             { 0,1,0,0,0,0,1,0 },
  527.             { 1,0,0,0,0,0,0,1 },
  528.             { 1,0,0,0,0,0,0,1 },
  529.             { 0,1,0,0,1,0,1,0 },
  530.             { 0,0,1,0,0,1,0,0 },
  531.             { 0,0,0,1,1,0,1,1 }        },
  532.  
  533. /*    R    */
  534.         {    { 0,1,1,1,1,1,0,0 },
  535.             { 0,1,0,0,0,0,1,0 },
  536.             { 0,1,0,0,0,0,1,0 },
  537.             { 0,1,1,1,1,1,0,0 },
  538.             { 0,1,0,0,0,1,0,0 },
  539.             { 0,1,0,0,0,0,1,0 },
  540.             { 0,1,0,0,0,0,1,0 },
  541.             { 0,1,0,0,0,0,1,0 }        },
  542.  
  543. /*    S    */
  544.  
  545.         {    { 0,0,1,1,1,1,0,0 },
  546.             { 0,1,0,0,0,0,1,0 },
  547.             { 0,1,0,0,0,0,0,0 },
  548.             { 0,0,1,1,1,1,0,0 },
  549.             { 0,0,0,0,0,0,1,0 },
  550.             { 0,0,0,0,0,0,1,0 },
  551.             { 0,1,0,0,0,0,1,0 },
  552.             { 0,0,1,1,1,1,0,0 }        },
  553.  
  554.  
  555. /*    T    */
  556.  
  557.         {    { 1,1,1,1,1,1,1,0 },
  558.             { 1,0,0,1,0,0,1,0 },
  559.             { 0,0,0,1,0,0,0,0 },
  560.             { 0,0,0,1,0,0,0,0 },
  561.             { 0,0,0,1,0,0,0,0 },
  562.             { 0,0,0,1,0,0,0,0 },
  563.             { 0,0,0,1,0,0,0,0 },
  564.             { 0,0,1,1,1,0,0,0 }        },
  565. /*    U    */
  566.  
  567.         {    { 0,1,0,0,0,0,1,0 },
  568.             { 0,1,0,0,0,0,1,0 },
  569.             { 0,1,0,0,0,0,1,0 },
  570.             { 0,1,0,0,0,0,1,0 },
  571.             { 0,1,0,0,0,0,1,0 },
  572.             { 0,1,0,0,0,0,1,0 },
  573.             { 0,1,0,0,0,0,1,0 },
  574.             { 0,0,1,1,1,1,0,0 }        },
  575. /*    V    */
  576.  
  577.         {    { 0,1,0,0,0,0,1,0 },
  578.             { 0,1,0,0,0,0,1,0 },
  579.             { 0,1,0,0,0,0,1,0 },
  580.             { 0,1,0,0,0,0,1,0 },
  581.             { 0,1,0,0,0,0,1,0 },
  582.             { 0,1,0,0,0,0,1,0 },
  583.             { 0,0,1,0,0,1,0,0 },
  584.             { 0,0,0,1,1,0,0,0 }        },
  585. /*    W    */
  586.  
  587.         {    { 0,1,0,0,0,0,0,1 },
  588.             { 0,1,0,0,0,0,0,1 },
  589.             { 0,1,0,0,0,0,0,1 },
  590.             { 0,1,0,0,0,0,0,1 },
  591.             { 0,1,0,0,0,0,0,1 },
  592.             { 0,1,0,0,1,0,0,1 },
  593.             { 0,1,0,1,0,1,0,1 },
  594.             { 0,0,1,0,0,0,1,0 }        },
  595. /*    X    */
  596.  
  597.         {    { 1,0,0,0,0,0,0,1 },
  598.             { 0,1,0,0,0,0,1,0 },
  599.             { 0,0,1,0,0,1,0,0 },
  600.             { 0,0,0,1,1,0,0,0 },
  601.             { 0,0,0,1,1,0,0,0 },
  602.             { 0,0,1,0,0,1,0,0 },
  603.             { 0,1,0,0,0,0,1,0 },
  604.             { 1,0,0,0,0,0,0,1 }        },
  605. /*    Y    */
  606.  
  607.         {    { 1,0,0,0,0,0,1,0 },
  608.             { 1,0,0,0,0,0,1,0 },
  609.             { 0,1,0,0,0,1,0,0 },
  610.             { 0,0,1,0,1,0,0,0 },
  611.             { 0,0,0,1,0,0,0,0 },
  612.             { 0,0,0,1,0,0,0,0 },
  613.             { 0,0,0,1,0,0,0,0 },
  614.             { 0,0,0,1,0,0,0,0 }        },
  615. /*    Z    */
  616.  
  617.         {    { 1,1,1,1,1,1,1,0 },
  618.             { 1,0,0,0,0,0,1,0 },
  619.             { 0,0,0,0,0,1,0,0 },
  620.             { 0,0,0,0,1,0,0,0 },
  621.             { 0,0,0,1,0,0,0,0 },
  622.             { 0,0,1,0,0,0,0,0 },
  623.             { 0,1,0,0,0,0,1,0 },
  624.             { 1,1,1,1,1,1,1,0 }        },
  625. /*    [    */
  626.  
  627.         {    { 1,1,1,1,0,0,0,0 },
  628.             { 1,0,0,0,0,0,0,0 },
  629.             { 1,0,0,0,0,0,0,0 },
  630.             { 1,0,0,0,0,0,0,0 },
  631.             { 1,0,0,0,0,0,0,0 },
  632.             { 1,0,0,0,0,0,0,0 },
  633.             { 1,0,0,0,0,0,0,0 },
  634.             { 1,1,1,1,0,0,0,0 }        },
  635. /*    \    */
  636.  
  637.         {    { 1,0,0,0,0,0,0,0 },
  638.             { 0,1,0,0,0,0,0,0 },
  639.             { 0,0,1,0,0,0,0,0 },
  640.             { 0,0,0,1,0,0,0,0 },
  641.             { 0,0,0,0,1,0,0,0 },
  642.             { 0,0,0,0,0,1,0,0 },
  643.             { 0,0,0,0,0,0,1,0 },
  644.             { 0,0,0,0,0,0,0,1 }        },
  645. /*    ]    */
  646.  
  647.         {    { 0,0,0,1,1,1,1,0 },
  648.             { 0,0,0,0,0,0,1,0 },
  649.             { 0,0,0,0,0,0,1,0 },
  650.             { 0,0,0,0,0,0,1,0 },
  651.             { 0,0,0,0,0,0,1,0 },
  652.             { 0,0,0,0,0,0,1,0 },
  653.             { 0,0,0,0,0,0,1,0 },
  654.             { 0,0,0,1,1,1,1,0 }        },
  655. /*    ^    */
  656.  
  657.         {    { 0,0,0,1,0,0,0,0 },
  658.             { 0,0,1,0,1,0,0,0 },
  659.             { 0,1,0,0,0,1,0,0 },
  660.             { 1,0,0,0,0,0,1,0 },
  661.             { 0,0,0,0,0,0,0,0 },
  662.             { 0,0,0,0,0,0,0,0 },
  663.             { 0,0,0,0,0,0,0,0 },
  664.             { 0,0,0,0,0,0,0,0 }        },
  665. /*    _    */
  666.  
  667.         {    { 0,0,0,0,0,0,0,0 },
  668.             { 0,0,0,0,0,0,0,0 },
  669.             { 0,0,0,0,0,0,0,0 },
  670.             { 0,0,0,0,0,0,0,0 },
  671.             { 0,0,0,0,0,0,0,0 },
  672.             { 0,0,0,0,0,0,0,0 },
  673.             { 0,0,0,0,0,0,0,0 },
  674.             { 1,1,1,1,1,1,1,1 }        },
  675. /*    `    */
  676.  
  677.         {    { 0,0,1,0,0,0,0,0 },
  678.             { 0,0,1,0,0,0,0,0 },
  679.             { 0,0,0,1,0,0,0,0 },
  680.             { 0,0,0,0,0,0,0,0 },
  681.             { 0,0,0,0,0,0,0,0 },
  682.             { 0,0,0,0,0,0,0,0 },
  683.             { 0,0,0,0,0,0,0,0 },
  684.             { 0,0,0,0,0,0,0,0 }        },
  685. /*    a    */
  686.  
  687.         {    { 0,0,0,0,0,0,0,0 },
  688.             { 0,1,1,1,1,0,0,0 },
  689.             { 0,0,0,0,0,1,0,0 },
  690.             { 0,0,0,0,0,0,1,0 },
  691.             { 0,1,1,1,1,1,1,0 },
  692.             { 1,0,0,0,0,0,1,0 },
  693.             { 1,0,0,0,0,1,1,0 },
  694.             { 0,1,1,1,1,0,1,0 }        },
  695. /*    b    */
  696.  
  697.         {    { 1,1,0,0,0,0,0,0 },
  698.             { 0,1,0,0,0,0,0,0 },
  699.             { 0,1,0,0,0,0,0,0 },
  700.             { 0,1,0,0,0,0,0,0 },
  701.             { 0,1,1,1,1,1,0,0 },
  702.             { 0,1,0,0,0,0,1,0 },
  703.             { 0,1,1,0,0,0,1,0 },
  704.             { 1,1,0,1,1,1,0,0 }        },
  705. /*    c    */
  706.  
  707.         {    { 0,0,0,0,0,0,0,0 },
  708.             { 0,0,0,0,0,0,0,0 },
  709.             { 0,0,1,1,1,1,0,0 },
  710.             { 0,1,0,0,0,0,1,0 },
  711.             { 1,0,0,0,0,0,0,0 },
  712.             { 1,0,0,0,0,0,0,0 },
  713.             { 0,1,0,0,0,0,1,0 },
  714.             { 0,0,1,1,1,1,0,0 }        },
  715. /*    d    */
  716.  
  717.         {    { 0,0,0,0,0,1,1,0 },
  718.             { 0,0,0,0,0,1,0,0 },
  719.             { 0,0,0,0,0,1,0,0 },
  720.             { 0,0,0,0,0,1,0,0 },
  721.             { 0,1,1,1,1,1,0,0 },
  722.             { 1,0,0,0,0,1,0,0 },
  723.             { 1,0,0,0,1,1,0,0 },
  724.             { 0,1,1,1,0,1,1,0 }        },
  725. /*    e    */
  726.  
  727.         {    { 0,0,0,0,0,0,0,0 },
  728.             { 0,0,0,0,0,0,0,0 },
  729.             { 0,0,1,1,1,0,0,0 },
  730.             { 0,1,0,0,0,1,0,0 },
  731.             { 1,1,1,1,1,1,1,0 },
  732.             { 1,0,0,0,0,0,0,0 },
  733.             { 1,0,0,0,0,0,1,0 },
  734.             { 0,1,1,1,1,1,0,0 }        },
  735. /*    f    */
  736.  
  737.         {    { 0,0,0,1,1,0,0,0 },
  738.             { 0,0,1,0,0,1,0,0 },
  739.             { 0,0,1,0,0,0,0,0 },
  740.             { 0,0,1,0,0,0,0,0 },
  741.             { 1,1,1,1,1,0,0,0 },
  742.             { 0,0,1,0,0,0,0,0 },
  743.             { 0,0,1,0,0,0,0,0 },
  744.             { 0,1,1,1,0,0,0,0 }        },
  745. /*    g    */
  746.  
  747.         {    { 0,0,0,0,0,0,0,0 },
  748.             { 0,0,1,1,1,0,0,0 },
  749.             { 0,1,0,0,0,1,1,0 },
  750.             { 0,1,0,0,0,1,0,0 },
  751.             { 0,0,1,1,1,1,0,0 },
  752.             { 0,0,0,0,0,1,0,0 },
  753.             { 0,1,0,0,0,1,0,0 },
  754.             { 0,0,1,1,1,0,0,0 }        },
  755. /*    h    */
  756.  
  757.         {    { 1,1,0,0,0,0,0,0 },
  758.             { 0,1,0,0,0,0,0,0 },
  759.             { 0,1,0,0,0,0,0,0 },
  760.             { 0,1,0,1,1,0,0,0 },
  761.             { 0,1,1,0,0,1,0,0 },
  762.             { 0,1,0,0,0,0,1,0 },
  763.             { 0,1,0,0,0,0,1,0 },
  764.             { 1,1,0,0,0,0,1,0 }        },
  765. /*    i    */
  766.  
  767.         {    { 0,0,0,0,0,0,0,0 },
  768.             { 0,0,0,1,0,0,0,0 },
  769.             { 0,0,0,0,0,0,0,0 },
  770.             { 0,0,1,1,0,0,0,0 },
  771.             { 0,0,0,1,0,0,0,0 },
  772.             { 0,0,0,1,0,0,0,0 },
  773.             { 0,0,0,1,0,0,0,0 },
  774.             { 0,0,1,1,1,0,0,0 }        },
  775. /*    j    */
  776.  
  777.         {    { 0,0,0,0,0,0,0,0 },
  778.             { 0,0,0,0,1,0,0,0 },
  779.             { 0,0,0,0,0,0,0,0 },
  780.             { 0,0,0,1,1,0,0,0 },
  781.             { 0,0,0,0,1,0,0,0 },
  782.             { 0,0,0,0,1,0,0,0 },
  783.             { 1,0,0,0,1,0,0,0 },
  784.             { 0,1,1,1,0,0,0,0 }        },
  785. /*    k    */
  786.  
  787.         {    { 1,1,0,0,0,0,0,0 },
  788.             { 0,1,0,0,0,0,0,0 },
  789.             { 0,1,0,0,0,0,0,0 },
  790.             { 0,1,0,1,0,0,0,0 },
  791.             { 0,1,1,0,0,0,0,0 },
  792.             { 0,1,1,0,0,0,0,0 },
  793.             { 0,1,0,1,0,0,0,0 },
  794.             { 1,1,0,0,1,0,0,0 }        },
  795. /*    l    */
  796.  
  797.         {    { 1,1,0,0,0,0,0,0 },
  798.             { 0,1,0,0,0,0,0,0 },
  799.             { 0,1,0,0,0,0,0,0 },
  800.             { 0,1,0,0,0,0,0,0 },
  801.             { 0,1,0,0,0,0,0,0 },
  802.             { 0,1,0,0,0,0,0,0 },
  803.             { 0,1,0,0,0,0,0,0 },
  804.             { 1,1,1,0,0,0,0,0 }        },
  805. /*    m    */
  806.  
  807.         {    { 0,0,0,0,0,0,0,0 },
  808.             { 0,0,0,0,0,0,0,0 },
  809.             { 0,0,0,0,0,0,0,0 },
  810.             { 1,0,1,0,0,1,0,0 },
  811.             { 1,1,0,1,1,0,1,0 },
  812.             { 1,0,0,1,0,0,1,0 },
  813.             { 1,0,0,1,0,0,1,0 },
  814.             { 1,0,0,1,0,0,1,0 }        },
  815. /*    n    */
  816.  
  817.         {    { 0,0,0,0,0,0,0,0 },
  818.             { 0,0,0,0,0,0,0,0 },
  819.             { 0,0,0,0,0,0,0,0 },
  820.             { 1,0,1,1,0,0,0,0 },
  821.             { 0,1,0,0,1,0,0,0 },
  822.             { 0,1,0,0,1,0,0,0 },
  823.             { 0,1,0,0,1,0,0,0 },
  824.             { 0,1,0,0,1,0,0,0 }        },
  825. /*    o    */
  826.  
  827.         {    { 0,0,0,0,0,0,0,0 },
  828.             { 0,0,0,0,0,0,0,0 },
  829.             { 0,0,1,1,1,0,0,0 },
  830.             { 0,1,0,0,0,1,0,0 },
  831.             { 1,0,0,0,0,0,1,0 },
  832.             { 1,0,0,0,0,0,1,0 },
  833.             { 0,1,0,0,0,1,0,0 },
  834.             { 0,0,1,1,1,0,0,0 }        },
  835. /*    p    */
  836.  
  837.         {    { 0,0,0,0,0,0,0,0 },
  838.             { 1,0,1,1,1,0,0,0 },
  839.             { 0,1,0,0,0,1,0,0 },
  840.             { 0,1,0,0,0,1,0,0 },
  841.             { 0,1,1,1,1,0,0,0 },
  842.             { 0,1,0,0,0,0,0,0 },
  843.             { 0,1,0,0,0,0,0,0 },
  844.             { 1,1,1,0,0,0,0,0 }        },
  845. /*    q    */
  846.  
  847.         {    { 0,0,0,0,0,0,0,0 },
  848.             { 0,1,1,1,0,1,0,0 },
  849.             { 1,0,0,0,1,0,0,0 },
  850.             { 1,0,0,0,1,0,0,0 },
  851.             { 0,1,1,1,1,0,0,0 },
  852.             { 0,0,0,0,1,0,0,0 },
  853.             { 0,0,0,0,1,0,0,0 },
  854.             { 0,0,0,1,1,1,0,0 }        },
  855. /*    r    */
  856.  
  857.         {    { 0,0,0,0,0,0,0,0 },
  858.             { 0,0,0,0,0,0,0,0 },
  859.             { 0,0,0,0,0,0,0,0 },
  860.             { 1,1,0,1,1,0,0,0 },
  861.             { 0,1,1,0,0,1,0,0 },
  862.             { 0,1,0,0,0,0,0,0 },
  863.             { 0,1,0,0,0,0,0,0 },
  864.             { 1,1,1,0,0,0,0,0 }        },
  865. /*    s    */
  866.  
  867.         {    { 0,0,0,0,0,0,0,0 },
  868.             { 0,1,1,1,0,0,0,0 },
  869.             { 1,0,0,0,1,0,0,0 },
  870.             { 1,0,0,0,0,0,0,0 },
  871.             { 0,1,1,1,0,0,0,0 },
  872.             { 0,0,0,0,1,0,0,0 },
  873.             { 1,0,0,0,1,0,0,0 },
  874.             { 0,1,1,1,0,0,0,0 }        },
  875.  
  876. /*    t    */
  877.  
  878.         {    { 0,0,0,0,0,0,0,0 },
  879.             { 0,0,0,0,0,0,0,0 },
  880.             { 0,0,1,0,0,0,0,0 },
  881.             { 1,1,1,1,1,0,0,0 },
  882.             { 0,0,1,0,0,0,0,0 },
  883.             { 0,0,1,0,0,0,0,0 },
  884.             { 0,0,1,0,0,1,0,0 },
  885.             { 0,0,0,1,1,0,0,0 }        },
  886. /*    u    */
  887.  
  888.         {    { 0,0,0,0,0,0,0,0 },
  889.             { 0,0,0,0,0,0,0,0 },
  890.             { 0,0,0,0,0,0,0,0 },
  891.             { 1,0,0,0,0,1,0,0 },
  892.             { 1,0,0,0,0,1,0,0 },
  893.             { 1,0,0,0,0,1,0,0 },
  894.             { 1,0,0,0,1,1,0,0 },
  895.             { 0,1,1,1,0,1,1,0 }        },
  896. /*    v    */
  897.  
  898.         {    { 0,0,0,0,0,0,0,0 },
  899.             { 0,0,0,0,0,0,0,0 },
  900.             { 0,0,0,0,0,0,0,0 },
  901.             { 1,0,0,0,0,0,1,0 },
  902.             { 1,0,0,0,0,0,1,0 },
  903.             { 0,1,0,0,0,1,0,0 },
  904.             { 0,0,1,0,1,0,0,0 },
  905.             { 0,0,0,1,0,0,0,0 }        },
  906. /*    w    */
  907.  
  908.         {    { 0,0,0,0,0,0,0,0 },
  909.             { 0,0,0,0,0,0,0,0 },
  910.             { 0,0,0,0,0,0,0,0 },
  911.             { 1,0,0,0,0,0,1,0 },
  912.             { 1,0,0,0,0,0,1,0 },
  913.             { 1,0,0,1,0,0,1,0 },
  914.             { 1,0,0,1,0,0,1,0 },
  915.             { 0,1,1,0,1,1,0,0 }        },
  916. /*    x    */
  917.  
  918.         {    { 0,0,0,0,0,0,0,0 },
  919.             { 0,0,0,0,0,0,0,0 },
  920.             { 0,0,0,0,0,0,0,0 },
  921.             { 1,0,0,0,1,0,0,0 },
  922.             { 0,1,0,1,0,0,0,0 },
  923.             { 0,0,1,0,0,0,0,0 },
  924.             { 0,1,0,1,0,0,0,0 },
  925.             { 1,0,0,0,1,0,0,0 }        },
  926. /*    y    */
  927.  
  928.         {    { 0,0,0,0,0,0,0,0 },
  929.             { 0,0,0,0,0,0,0,0 },
  930.             { 1,0,0,0,1,0,0,0 },
  931.             { 1,0,0,0,1,0,0,0 },
  932.             { 0,1,1,1,1,0,0,0 },
  933.             { 0,0,0,0,1,0,0,0 },
  934.             { 0,0,0,1,0,0,0,0 },
  935.             { 0,1,1,0,0,0,0,0 }        },
  936. /*    z    */
  937.  
  938.         {    { 0,0,0,0,0,0,0,0 },
  939.             { 0,0,0,0,0,0,0,0 },
  940.             { 1,1,1,1,1,1,0,0 },
  941.             { 1,0,0,0,1,0,0,0 },
  942.             { 0,0,0,1,0,0,0,0 },
  943.             { 0,0,1,0,0,0,0,0 },
  944.             { 0,1,0,0,0,1,0,0 },
  945.             { 1,1,1,1,1,1,0,0 }        }    };
  946.  
  947.  
  948.  
  949. /* end external variables */
  950.  
  951. static    int sorid;
  952. static    int restoremodeid;
  953.  
  954. int g_setgph(void)
  955. {
  956.     register int i,j;
  957.     char *sorstack;
  958.     char *restoremodestack;
  959.     int fstatus;
  960.     int hmou;
  961.     oldconfig.cb = 14;
  962.     g_doscall(VioGetMode(&oldconfig,0)); 
  963.     viopbBuf.pBuf = (char *) 0xA0000L;
  964.     viopbBuf.cb    = 0x10000L;
  965.     g_doscall(VioScrLock(LOCKIO_WAIT, (char *) &fstatus, 0));
  966.     g_doscall(VioGetPhysBuf(&viopbBuf,0));
  967.  
  968.     pchscreen = MAKEP(viopbBuf.asel[0],0);
  969.     msinitgraphics();
  970. /* this is for EGA full screen graphics */
  971.  
  972.  
  973.     newconfig.cb = 14;
  974.     newconfig.fbType = 0x03;
  975.     newconfig.color = 0x04;
  976.     newconfig.col = 80;
  977.     newconfig.row = 25;
  978.     newconfig.hres = 640;
  979.     newconfig.vres = 350;
  980.  
  981.     g_doscall(VioSetMode(&newconfig,0));    /* set graphics mode */
  982.  
  983.     screenbuffer = (char *) malloc(28000);
  984.     sorstack = (char *) malloc(STK_SIZE); /* allocate stack for thread */
  985.     if(sorstack == NULL || screenbuffer == NULL)
  986.     {
  987.         printf("allocation error, aborting sorstack");
  988.         exit(1);
  989.     }
  990.     restoremodestack = (char *) malloc(STK_SIZE); /* allocate stack for thread */
  991.     if(restoremodestack == NULL )
  992.     {
  993.         printf("allocation error, aborting restoremodestack");
  994.         exit(1);
  995.     }
  996.     g_doscall(DosCreateThread(g_rdrwth,&sorid,sorstack+STK_SIZE));
  997.     g_doscall(DosCreateThread(g_rmdth,&restoremodeid,
  998.         restoremodestack+STK_SIZE));
  999.  
  1000.     g_doscall(VioScrUnLock(0));
  1001.     g_clrscn();
  1002. }
  1003.  
  1004.