home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / SUB0.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-18  |  14.5 KB  |  553 lines

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include <alloc.h>
  4. #include<dos.h>
  5. #define pr(x)  fprintf(fp,x)
  6. char *explain="***┤·┬δ╬¼╗ñ***";
  7. main(int argc,char *argv[])
  8. {
  9.   FILE *fp;
  10.   char p;
  11.   if(argc<2)
  12.     return;
  13. /*  if((fp=fopen("mcode.prg","r"))!=NULL)
  14.    {
  15.      system("cls");
  16.      color_puts(explain,14,2,2);
  17.      color_puts("┤╦ ─ú ┐Θ ╥╤ ┤µ ╘┌,╩╟ ╖± ╓╪ ╨┬ ╔· │╔(Y/N)? ",14,12,20);
  18.      cursor(13,35);
  19.      scanf("%c",&p);
  20.      fclose(fp);
  21.      if(p!='Y'&&p!='y')
  22.       {
  23.        fclose(fp);
  24.        return;
  25.       }
  26.   }
  27.   fclose(fp);*/
  28.   generate(argv[1]);
  29. }
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. generate(char *aarr)
  37. {
  38.   FILE *fp;
  39.   int j,k,row,col,l,lb;
  40.   char name[15]={"mcode.prg"}    ,
  41.        inname[15]={"c1i_.prg"}    ,
  42.        lookname[15]={"c1l_.prg"}    ;
  43.  
  44. /*  fp=fopen("mcode.prg","w");
  45.   pr("select 1\n");
  46.   pr("set talk off\ndo while .t.\n clear\n");
  47.   pr("@2,20 say '╟δ╤í╘±─·╥¬╜°╨╨┤·┬δ▓┘╫≈╡─┐Γ'\n");
  48.   pr("@3,20 say '~~~~~~~~~~~~~~~~~~~~~~~~~~'\n");
  49.   pr("name='code'\nset color to W+/B\n");
  50.   pr("do dbfmenu with name\n");
  51.   pr("if name='0'\n");
  52.   pr("return\n");
  53.   pr("endif\n");
  54.   fprintf(fp,"name='%s'+name+'c.dbf'\n",aarr);
  55.   fprintf(fp,"if .not. file('&name')\n",name);
  56.   pr("use code exclusive\n");
  57.   pr("copy stru to &name\n");
  58.   pr("endif\n");
  59.   pr("use &name\ exclusiven");
  60.   fprintf(fp,"do %s \n",name);
  61.   pr("return\n");
  62.   fclose(fp);*/
  63.  
  64.   fp=fopen(name,"w");
  65.   pr("clear\nset safe off\nsele 8\n");
  66.   pr("do while .t.\n");
  67.   pr("set color to /W\nclear\n")    ;
  68.   pr("set color to /N\n@6,22 clear to 15,51\n")    ;
  69.   pr("set color to W+/B\n@5,20 clear to 14,49\n")    ;
  70.   pr("set color to W+/B\n")    ;
  71.   pr("@6,24 say '─·┐╔╥╘╜°╨╨╧┬┴╨▓┘╫≈'\n");
  72.   pr("@7,20 say '~~~~~~~~~~~~~~~~~~~~~~~~~~~'\nset color to W+/B\n");
  73.   pr("@9,20 say '    1.╠φ╝╙        2.▓σ╚δ   '\n");
  74.   pr("@11,20 say '    3.╨▐╕─        4.╔╛│²  '\n");
  75.   pr("@13,20 say '    5.▓Θ╤»        0.═╦│÷  '\n");
  76.   pr("choice=SPACE(1)\nset color to W+/B\n");
  77.   pr("@22,20 say '     ╟δ╩Σ╚δ─·╡─╤í╘± 'get choice\n");
  78.   pr("read\nset color to W+/N\n");
  79.   pr("ap=0\n");
  80.   pr("do case\n");
  81.   pr("case choice='0'\n");
  82.   pr("return\n");
  83.   pr("case choice='1'\n");
  84.   pr("clear\n");
  85.   pr("tt=' '\n");
  86.   pr("@12,12 say '╩╟ ╖± ╥¬ ╩² ╛▌ ┤½ ╡▌?' get tt pict '!'\n");
  87.   pr("read\n");
  88.   pr("m=.t.\n");
  89.   pr("do while m\n");
  90.   pr("clear\n");
  91.   pr("if .NOT. tt='Y'\n");
  92.   pr("append blank\n");
  93.     pr("else\n");
  94.     pr("bb=reccount()\n");
  95.     pr("copy to qqqq for RECNO()=bb\n");
  96.     pr("appe from qqqq\n");
  97.     pr("run del qqqq.dbf\n");
  98.     pr("endif\n");
  99.     pr("w=.t.\n");
  100.     fprintf(fp,"do %s with w\n",inname);
  101.     pr("yy=' '\n");
  102.     pr("@24,0 say '─·╗╣╥¬╝╠╨°╠φ╝╙┬≡? ' get yy\n");
  103.     pr("read\n");
  104.     pr("if yy='y'.or. yy='Y'\n");
  105.     pr("m=.t.\n");
  106.     pr("else\nm=.f.\n");
  107.     pr("endif\n");
  108.     pr("@24,0 say SPACE(80)\nenddo\n");
  109.     pr("case choice='2'\n");
  110.     pr("clear\n");
  111.     pr("renu=SPACE(4)\n");
  112.     pr("@12,10 say '╟δ╩Σ╚δ╝╟┬╝║┼ '  get renu\n");
  113.     pr("read\n");
  114.     pr("renu=VAL(renu)\n");
  115.     pr("m=.t.\n");
  116.     pr("do while m\n");
  117.     pr("clear\n");
  118.     pr("if renu<reccount()\n");
  119.     pr("go renu\n");
  120.     pr("else\n");
  121.     pr("go bottom\n");
  122.     pr("endif\n");
  123.     pr("insert blank before\n");
  124.     pr("w=.t.\n");
  125.     fprintf(fp,"do %s with w\n",inname);
  126.     pr("yy=' '\n");
  127.     pr("@24,0 say '─·╗╣╥¬╝╠╨°▓σ╚δ┬≡? ' get yy\n");
  128.     pr("read\n");
  129.     pr("if yy='y'.or. yy='Y'\n");
  130.     pr("m=.t.\nrenu=renu+1\n");
  131.     pr("else\nm=.f.\n");
  132.     pr("endif\n");
  133.     pr("@24,0 say SPACE(80)\nenddo\n");
  134.     pr("case choice='3'\n");
  135.     pr("ww=.t.\n");
  136.     pr("do while ww\n");
  137.     pr("set color to /W\nclear\n")    ;
  138.     pr("set color to /N\n")    ;
  139.     pr("@6,25 clear to 17,49\n")    ;
  140.     pr("set color to W+/B\n");
  141.     pr("@5,23 clear to 16,47\n");
  142.     pr("@9,30 say '1.╕∙╛▌╝╟┬╝║┼'\n");
  143.     pr("@11,30 say '2.╕∙╛▌╓≈╝ⁿ╓╡'\n");
  144.     pr("@13,30 say '3.╢╘╚½▓┐╝╟┬╝'\n");
  145.     pr("@15,30 say '0.═╦│÷'\n");
  146.     pr("mm=' '\nset color to W+/B\n");
  147.     pr("@6,25 say '╟δ╩Σ╚δ─·╡─╨▐╕─╖╜╩╜ ' get mm\n");
  148.     pr("@7,25 say '~~~~~~~~~~~~~~~~~~~~~'\n");
  149.     pr("read\nset color to W+/N\n");
  150.     pr("do case\n");
  151.     pr("case mm='0'\n");
  152.     pr("ww=.f.\n");
  153.     pr("case mm='1'\n");
  154.     pr("ttop=SPACE(5)\n");
  155.     pr("bbottom=SPACE(5)\n");
  156.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
  157.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
  158.     pr("read\nset color to W+/N\n");
  159.     pr("renu1=VAL(ttop)\n");
  160.     pr("renu2=VAL(bbottom)\n");
  161.     pr("m=renu1\n");
  162.     pr("select 8\n");
  163.     pr("go top\n");
  164.     pr("if m>reccount()\n");
  165.     pr("m=renu2+1\n");
  166.     pr("endif\n");
  167.     pr("do while m<=renu2 .AND. .NOT. EOF()\n");
  168.     pr("clear\n");
  169.     pr("select 8\n");
  170.     pr("go m\n");
  171.     pr("w=.t.\n");
  172.     fprintf(fp,"do %s with w\n",inname);
  173.     pr("m=m+1\n");
  174.     pr("select 8\n");
  175.     pr("skip\n");
  176.     pr("enddo\n");
  177.     pr("case mm='2'\n");
  178.     pr("skeyword=SPACE(10)\n");
  179.     pr("@20,20 say '╟δ╩Σ╚δ╫╓╢╬├√' get skeyword\n");
  180.     pr("read\n");
  181.     pr("go top\n");
  182.     pr("clear\n");
  183.     pr("w=.t.\n");
  184.     fprintf(fp,"locate for FIELDNAME=skeyword\n");
  185.     pr("if EOF()\n");
  186.     pr("@22,10 say '┤╦╫╓╢╬├╗╙╨┤·┬δ'\n");
  187.     pr("wait\n");
  188.     pr("@23,0 clear\n");
  189.     pr("loop\n");
  190.     pr("endif\n");
  191.     pr("next=.t.\nlname=skeyword\n");
  192.     pr("locate for FIELDNAME=skeyword\n");
  193.     pr("do while next .AND. .NOT. EOF()\n");
  194.     fprintf(fp,"do %s with w\n",inname);
  195.     pr("skip\n");
  196.     pr("if .NOT. FIELDNAME = lname\n");
  197.     pr("next=.f.\n");
  198.     pr("endif\n");
  199.     pr("enddo\n");
  200.     pr("case mm='3'\n");
  201.     pr("clear\n");
  202.     pr("select 8\n");
  203.     pr("go top\n");
  204.     pr("m=.t.\n");
  205.     pr("do while .not. EOF() .and. m\n");
  206.     pr("w=.t.\n");
  207.     pr("kk=w\n");
  208.     fprintf(fp,"do %s with w\n",inname);
  209.     pr("if kk\n");
  210.     pr("yy=' '\n");
  211.     pr("@24,0 say '─·╗╣╥¬╝╠╨°╨▐╕─┬≡? ' get yy\n");
  212.     pr("read\n");
  213.     pr("@24,0 say SPACE(80)\n");
  214.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  215.     pr("m=.f.\n");
  216.     pr("endif\n");
  217.     pr("endif\n");
  218.     pr("select 8\n");
  219.     pr("skip\n");
  220.     pr("enddo\n");
  221.     pr("endcase\n");
  222.     pr("enddo\n");
  223.     pr("case choice='4'\n");
  224.     pr("ww=.t.\n");
  225.     pr("do while ww\n");
  226.     pr("set color to /W\nclear\n")    ;
  227.     pr("set color to /N\n")    ;
  228.     pr("@6,25 clear to 17,49\n")    ;
  229.     pr("set color to W+/B\n");
  230.     pr("@5,23 clear to 16,47\n");
  231.     pr("@9,30 say '1.╕∙╛▌╝╟┬╝║┼'\n");
  232.     pr("@11,30 say '2.╕∙╛▌╓≈╝ⁿ╓╡'\n");
  233.     pr("@13,30 say '3.╢╘╚½▓┐╝╟┬╝'\n");
  234.     pr("@15,30 say '0.═╦│÷'\n");
  235.     pr("mm=' '\nset color to W+/B\n");
  236.     pr("@6,25 say '╟δ╩Σ╚δ─·╡─╔╛│²╖╜╩╜ ' get mm\n");
  237.     pr("@7,25 say '~~~~~~~~~~~~~~~~~~~~'\n");
  238.     pr("read\nset color to W+/N\n");
  239.     pr("do case\n");
  240.     pr("case mm='0'\n");
  241.     pr("ww=.f.\n");
  242.     pr("case mm='1'\n");
  243.     pr("ttop=SPACE(5)\n");
  244.     pr("bbottom=SPACE(5)\n");
  245.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
  246.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
  247.     pr("read\nset color to W+/N\n");
  248.     pr("renu1=VAL(ttop)\n");
  249.     pr("renu2=VAL(bbottom)\n");
  250.     pr("m=renu1\n");
  251.     pr("select 8\n");
  252.     pr("go top\n");
  253.     pr("if m>reccount()\n");
  254.     pr("m=renu2+1\n");
  255.     pr("endif\n");
  256.     pr("do while m<=renu2 .AND. .NOT. EOF()\n");
  257.     pr("clear\n");
  258.     pr("select 8\n");
  259.     pr("go m\n");
  260.     pr("w=.t.\n");
  261.     pr("clear\n");
  262.     fprintf(fp,"do %s\n",lookname);
  263.     pr("yy=' '\n");
  264.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  265.     pr("if yy='y'.or. yy='Y'\n");
  266.     pr("delete\npack\n");
  267.     pr("endif\n");
  268.     pr("@24,0 say SPACE(80)\n");
  269.     pr("select 8\n");
  270.     pr("skip\n");
  271.     pr("m=m+1\n");
  272.     pr("enddo\n");
  273.     pr("case mm='2'\n");
  274.     pr("skeyword=SPACE(10)\n");
  275.     pr("@20,20 say '╟δ╩Σ╚δ╫╓╢╬├√' get skeyword\n");
  276.     pr("read\n");
  277.     pr("go top\n");
  278.     pr("clear\n");
  279.     pr("w=.t.\n");
  280.     fprintf(fp,"locate for FIELDNAME=skeyword\n");
  281.     pr("if EOF()\n");
  282.     pr("@22,10 say '┤╦╫╓╢╬├╗╙╨┤·┬δ'\n");
  283.     pr("wait\n");
  284.     pr("@23,0 clear\n");
  285.     pr("loop\n");
  286.     pr("endif\n");
  287.     pr("next=.t.\n");
  288.     pr("lname=skeyword\n");
  289.     pr("do while next\n");
  290.     fprintf(fp,"do %s \n",lookname);
  291.     pr("yy=' '\n");
  292.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  293.     pr("if yy='y'.or. yy='Y'\n");
  294.     pr("delete\npack\n");
  295.     pr("endif\n");
  296.     pr("@24,0 say SPACE(80)\n");
  297.     pr("if .not. EOF()\n");
  298.     pr("if .NOT. FIELDNAME = lname\n");
  299.     pr("next=.f.\n");
  300.     pr("endif\n");
  301.     pr("endif\n");
  302.     pr("enddo\n");
  303.     pr("case mm='3'\n");
  304.     pr("clear\n");
  305.     pr("select 8\n");
  306.     pr("go top\n");
  307.     pr("m=.t.\n");
  308.     pr("do while .not. EOF() .and. m\n");
  309.     pr("w=.t.\n");
  310.     pr("if w\n");
  311.     pr("clear\n");
  312.     fprintf(fp,"do %s\n",lookname);
  313.     pr("yy=' '\n");
  314.     pr("@24,0 say SPACE(80)\n");
  315.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  316.     pr("@24,0 say SPACE(80)\n");
  317.     pr("if yy='y'.or. yy='Y'\n");
  318.     pr("delete\npack\n");
  319.     pr("endif\n");
  320.     pr("endif\n");
  321.     pr("if w\n");
  322.     pr("yy=' '\n");
  323.     pr("@24,0 say '─·╗╣╥¬╝╠╨°╔╛│²┬≡? ' get yy\n");
  324.     pr("read\n");
  325.     pr("@24,0 say SPACE(80)\n");
  326.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  327.     pr("m=.f.\n");
  328.     pr("endif\n");
  329.     pr("endif\n");
  330.     pr("select 8\n");
  331.     pr("skip\n");
  332.     pr("enddo\n");
  333.     pr("endcase\n");
  334.     pr("enddo\n");
  335.     pr("case choice='5'\n");
  336.     pr("ww=.t.\n");
  337.     pr("do while ww\n");
  338.     pr("set color to /W\nclear\n")    ;
  339.     pr("set color to /N\n")    ;
  340.     pr("@6,25 clear to 17,49\n")    ;
  341.     pr("set color to W+/B\n");
  342.     pr("@5,23 clear to 16,47\n");
  343.     pr("@9,30 say '1.╕∙╛▌╝╟┬╝║┼'\n");
  344.     pr("@11,30 say '2.╕∙╛▌╓≈╝ⁿ╓╡'\n");
  345.     pr("@13,30 say '3.╢╘╚½▓┐╝╟┬╝'\n");
  346.     pr("@15,30 say '0.═╦│÷'\n");
  347.     pr("mm=' '\nset color to W+/B\n");
  348.     pr("@6,25 say '╟δ╩Σ╚δ─·╡─▓Θ╤»╖╜╩╜ ' get mm\n");
  349.     pr("@7,25 say '~~~~~~~~~~~~~~~~~~~~'\n");
  350.     pr("read\nset color to W+/N\n");
  351.     pr("do case\n");
  352.     pr("case mm='0'\n");
  353.     pr("ww=.f.\n");
  354.     pr("case mm='1'\n");
  355.     pr("ttop=SPACE(5)\n");
  356.     pr("bbottom=SPACE(5)\n");
  357.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
  358.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
  359.     pr("read\nset color to W+/N\n");
  360.     pr("renu1=VAL(ttop)\n");
  361.     pr("renu2=VAL(bbottom)\n");
  362.     pr("m=renu1\n");
  363.     pr("select 8\n");
  364.     pr("go top\n");
  365.     pr("if m>reccount()\n");
  366.     pr("m=renu2+1\n");
  367.     pr("endif\n");
  368.     pr("do while m<=renu2 .AND. .NOT. EOF()\n");
  369.     pr("clear\n");
  370.     pr("select 8\n");
  371.     pr("go m\n");
  372.     pr("w=.t.\n");
  373.     pr("clear\n");
  374.     fprintf(fp,"do %s\n",lookname);
  375.     pr("yy=' '\n");
  376.     pr("@24,0 say SPACE(80)\n");
  377.     pr("@24,0 say '─·╥¬╝╠╨°▓Θ╤»┬≡  (Y/N) ' get yy\n");
  378.     pr("read\n");
  379.     pr("@24,0 say SPACE(80)\n");
  380.     pr("if yy='y' .or. yy='Y'\n");
  381.     pr("m=m+1\n");
  382.     pr("skip\n");
  383.     pr("else\n m=renu2+1\n");
  384.     pr("endif\n");
  385.     pr("enddo\n");
  386.     pr("case mm='2'\n");
  387.     pr("skeyword=SPACE(10)\n");
  388.     pr("@20,20 say '╟δ╩Σ╚δ╫╓╢╬├√' get skeyword\n");
  389.     pr("read\n");
  390.     pr("go top\n");
  391.     pr("clear\n");
  392.     pr("w=.t.\n");
  393.     fprintf(fp,"locate for FIELDNAME=skeyword\n");
  394.     pr("if EOF()\n");
  395.     pr("@22,10 say '┤╦╫╓╢╬├╗╙╨┤·┬δ'\n");
  396.     pr("wait\n");
  397.     pr("@23,0 clear\n");
  398.     pr("loop\n");
  399.     pr("endif\n");
  400.     pr("next=.t.\n");
  401.     pr("lname=skeyword\n");
  402.     pr("do while next .AND. .NOT. EOF()\n");
  403.     fprintf(fp,"do %s \n",lookname);
  404.     pr("yy=' '\n");
  405.     pr("@24,0 say SPACE(80)\n");
  406.     pr("@24,0 say '─·╗╣╥¬╝╠╨°▓Θ╤»┬≡? ' get yy\n");
  407.     pr("read\n");
  408.     pr("@24,0 say SPACE(80)\n");
  409.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  410.     pr("next=.f.\n");
  411.     pr("endif\n");
  412.     pr("skip\n");
  413.     pr("if .NOT. FIELDNAME = lname\n");
  414.     pr("next=.f.\n");
  415.     pr("endif\n");
  416.     pr("enddo\n");
  417.     pr("case mm='3'\n");
  418.     pr("clear\n");
  419.     pr("select 8\n");
  420.     pr("go top\n");
  421.     pr("m=.t.\n");
  422.     pr("do while .not. EOF() .and. m\n");
  423.     pr("w=.t.\n");
  424.     pr("if w\n");
  425.     pr("clear\n");
  426.     fprintf(fp,"do %s\n",lookname);
  427.     pr("endif\n");
  428.     pr("if w\n");
  429.     pr("yy=' '\n");
  430.     pr("@24,0 say SPACE(80)\n");
  431.     pr("@24,0 say '─·╗╣╥¬╝╠╨°▓Θ╤»┬≡? ' get yy\n");
  432.     pr("read\n");
  433.     pr("@24,0 say SPACE(80)\n");
  434.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  435.     pr("m=.f.\n");
  436.     pr("endif\n");
  437.     pr("endif\n");
  438.     pr("select 8\n");
  439.     pr("skip\n");
  440.     pr("enddo\n");
  441.     pr("endcase\n");
  442.     pr("enddo\n");
  443.     pr("endcase\n");
  444.     pr("enddo\n");
  445.     pr("return\n");
  446.     fclose(fp);
  447.     idata(inname);
  448.     ldata(lookname);
  449. }
  450.  
  451.  
  452.  
  453. idata(inname)
  454. char *inname;
  455. {
  456.   FILE *fp;
  457.     fp=fopen(inname,"w");
  458.     pr("parameters w\n");
  459.     pr("do while w\n");
  460.     pr("clear\n");
  461.     pr("filedname=space(10)\n");
  462.     pr("fieldconte=space(254)\n");
  463.     pr("fieldcode=space(10)\n");
  464.     pr("@6,15 say '╫╓ ╢╬ ├√ :  ' get fieldname\n");
  465.     pr("@11,15 say '╫╓ ╢╬ ┤· ┬δ : ' get fieldcode\n");
  466.     pr("@19,15 say '╛▀ ╠σ ─┌ ╚▌ :  ' get fieldconte\n");
  467.     pr("read\n");
  468.     pr("yy=' '\n");
  469.     pr("@24,0 say SPACE(80)\n");
  470.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  471.     pr("@24,0 say SPACE(80)\n");
  472.     pr("if yy='y'.or. yy='Y'\n");
  473.     pr("w=.f.\n");
  474.     pr("endif\n");
  475.     pr("@24,0 say SPACE(80)\nenddo\n");
  476.     fclose(fp);
  477.  }
  478.  
  479.  
  480.  
  481.  
  482.  
  483. ldata(lookname)
  484. char *lookname;
  485. {
  486.    FILE *fp;
  487.        fp=fopen(lookname,"w");
  488.        pr("@6,15 say '╫╓  ╢╬  ├√  : '+fieldname\n");
  489.        pr("@11,15 say '╫╓ ╢╬ ┤· ┬δ : '+fieldcode\n");
  490.        pr("@16,15 say '╛▀ ╠σ ─┌ ╚▌ : '+fieldconte\n");
  491.        fclose(fp);
  492.   }
  493.  
  494.  
  495. now_cursor(x,y)
  496. int *x,*y;
  497. {  union REGS r;
  498.    r.h.ah=3;
  499.    r.h.bh=0;
  500.    int86(0x10,&r,&r);
  501.    *x = r.h.dh;
  502.    *y = r.h.dl;
  503.    return;
  504. }
  505.  
  506. cursor(int y, int x)
  507. {
  508.   _DH = (unsigned char)y    ;
  509.   _DL = (unsigned char)x    ;
  510.   _AH = (unsigned char)2    ;
  511.   _BH = (unsigned char)0    ;
  512.   geninterrupt(0x10)    ;
  513. }
  514.  
  515. color_puts(char *string, int  color, int row, int col)
  516. {
  517.   _SI = (unsigned int) string    ;
  518.   _DH = (unsigned char) row    ;
  519.   _DL = (unsigned char) col    ;
  520.   _CX = 1    ;
  521.   while(*(( char * ) _SI))
  522.    {
  523.      _AH = (unsigned char) 2    ;
  524.      _BH = (unsigned char) 0    ;
  525.      __int__(0x10)    ;
  526.      ++_DL    ;
  527.  
  528.      _AH = (unsigned char) 9    ;
  529.      _AL = *((char *)_SI)    ;
  530.      _SI++    ;
  531.      _BH = (unsigned char) 0    ;
  532.      _BL = (unsigned char) color    ;
  533.      __int__(0x10)    ;
  534.    }
  535. }
  536.  
  537.  
  538. clear_win(startrow,startcol,endrow,endcol,attribe)
  539. int startrow,startcol;
  540. int endrow,endcol;
  541. int attribe;
  542. {
  543.   _AH = (unsigned char) 6    ;
  544.   _AL = (unsigned char) 0    ;
  545.   _BH = (unsigned char) attribe    ;
  546.   _CH = (unsigned char) startrow    ;
  547.   _CL = (unsigned char) startcol    ;
  548.   _DH = (unsigned char) endrow    ;
  549.   _DL = (unsigned char) endcol    ;
  550.   geninterrupt(0x10)    ;
  551. }
  552.  
  553.