home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / BAKNEW.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-23  |  44.4 KB  |  1,409 lines

  1. /*  ╕─╢»╦╡├≈(1992─Ω11╘┬):
  2. 1.╘┌í░▒α╝¡▒¿▒φ╕±╩╜í▒▓╦╡Ñ╣ª─▄╧┬╡─╫ε╧┬╠ß╩╛╨╨╬▐╤╒╔½íú╧╓╕─╒²ú¼╟╥┤φ╬≤╠ß╩╛╙╨┴╦╖ó╔∙
  3.   ▒¿╛»;
  4. 2.╘┌í░┤┼┼╠▓┘╫≈í▒╓╨╡─╕─▒Σ╣ñ╫≈┤┼┼╠╥╗╧εú¼╚τ╓▒╜╙╗╪│╡╘≥╘▌╩▒═╦│÷╧╡═│íú╧╓╕─╒²;
  5. 3.╫ε│⌡╚τ▓╗╢¿╥σ╕±╩╜╬─╝■ú¼╘≥▒α╝¡═Ω║≤┤µ┼╠╜½│÷┤φú¿┤µ▓╗╔╧┼╠ú⌐íú╧╓╕─╒²;
  6. 4.╘┌í░┤┼┼╠▓┘╫≈í▒═Ω║≤ú¼▒╪╨δ╧╚░┤ESC╝ⁿ▓┼─▄╜°╨╨╞Σ╦ⁿ▓╦╡Ñ╡─▓┘╫≈íú╧╓╕─│╔┐╔╓▒╜╙╙├
  7.   í√íóí·┴╜╝ⁿ╫¬╡╜╞Σ╦ⁿ▓╦╡Ñú¼╟╥╘┌╓≈▓╦╡Ñ╧┬╥▓┐╔╙├í²╣Γ▒Ω╝ⁿ╜°╨╨╤í╘±ú¿╧α╡▒╙┌╗╪│╡ú⌐;
  8. 5.╔·│╔╡─╘┤│╠╨≥▒¿▒φ╓╗─▄┤≥╙í╥╗╖▌íú╧╓╕─╒²;
  9. 6.╘┌í░╔·│╔▒¿▒φ│╠╨≥í▒╥╗╧ε╓╨╩Σ╚δ╬─╝■├√╩▒ú¼╚τ╓▒╜╙░┤╗╪│╡╗≥ESC╝ⁿ╘≥╞┴─╗╜½╗∞┬╥íú╧╓╕─╒²;
  10. 7.╢α┐Γ▓┘╫≈╩▒ú¼├┐╕÷┐Γ╡─├√╫╓╓╗─▄╙╨10╕÷╫╓╖√ú¼╢°╡▒╕├┐Γ╩╟╣▓╧φ┐Γ╩▒ú¼╞Σ┬╖╛╢╡─╫╓╖√│ñ
  11.   ╢╚═∙═∙│¼╣²10╕÷╫╓╖√íú╧╓╕─│╔├┐╕÷┐Γ├√╫╓╫ε│ñ30╕÷╫╓╖√;
  12. 8.╢α┐Γ┴¼╜╙▒φ┤∩╩╜╫ε│ñ╓╗╙╨30╕÷╫╓╖√íú╧╓╕─│╔╬¬45╕÷╫╓╖√;
  13. 9.╘┌╙╨╡─CCDOS╧╡═│╓╨ú¼╝ⁿ┼╠╙╥▒▀╡─╗╪│╡╝ⁿ▓╗─▄╙├íú╧╓╕─╒²íú
  14.  
  15. */
  16.  
  17. /*#include <stdlib.h>*/
  18. /*#include <dos.h>*/
  19. /*#include <dir.h>*/
  20. #include <stdio.h>
  21. #include <string.h>
  22.  
  23. #define white 7
  24. #define yellow 14
  25. #define blue_back 16
  26. #define black 0
  27. int  left_space,page_line;
  28. char main_biao[50];
  29. char main_biao1[50];
  30. char main_size;
  31. char assi_biao[50];
  32. char assi_biao1[50];
  33. char assi_size;
  34. char left_top[40];
  35. char right_top[40];
  36. char tail_size;
  37. char text_size;
  38. char tail_boot[40];
  39. char midd_int[4];
  40. char midd_int1[4];
  41. char midd_int2[2];
  42. char filename[9][30];
  43. char joinname[45];
  44. int  filectc;
  45. char filename1[15];
  46. char filename2[15];
  47. int x,y;
  48. char level[11][3];
  49. char scr[80][312];
  50. int curr,curc;
  51. int Ins;
  52. int width;
  53. int scrrow[100],scrcol[100];
  54. char scrval[100][200];
  55. int count4,count3;
  56. int real_width;
  57. FILE *fp,*stream;
  58.  
  59. /*-------------------------------main-------------------------------------*/
  60. main()
  61. {
  62.     int i,j,m,n,hanzi,cont,rval;
  63.     strcpy(level[0],"⌐ª");strcpy(level[1],"⌐ñ");strcpy(level[2],"⌐α");
  64.     strcpy(level[3],"⌐╨");strcpy(level[4],"⌐└");strcpy(level[5],"⌐╚");
  65.     strcpy(level[6],"⌐╪");strcpy(level[7],"⌐░");strcpy(level[8],"⌐┤");
  66.     strcpy(level[9],"⌐╕");strcpy(level[10],"⌐╝");
  67.     width=312;
  68.     count4=0;count3=0;
  69.     for (i=0;i<100;i++)
  70.        {
  71.        strcpy(scrval[i],NULL);
  72.        scrrow[i]=0;
  73.        scrcol[i]=0;
  74.        }
  75.     for (i=0;i<80;i++)
  76.        {
  77.        for (j=0;j<width;j++)
  78.       scr[i][j]='\n';
  79.        }
  80.     clear(); hanzi=0; curr=-1;curc=0;
  81.     main_menu(hanzi);
  82.     setcursor(4,10);
  83.     printf("\033[37;44;1m⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖");
  84.     setcursor(5,10);
  85.     printf("⌐º                                                    ⌐º");
  86.     setcursor(6,10);
  87.     printf("⌐º  ╬ó╗·╣▄└φ╚φ╝■╜≡╨┼  ú╬ú─ú┬ú┴ú╟ú│ú«ú░░µ╧╡┴╨▓·╞╖╓«╢■  ⌐º");
  88.     setcursor(7,10);
  89.     printf("⌐º                                                    ⌐º");
  90.     setcursor(8,10);
  91.     printf("⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧");
  92.     setcursor(9,10);
  93.     printf("⌐º                                                    ⌐º");
  94.     setcursor(10,10);
  95.     printf("⌐º      ╛▀╙╨═│╝╞╙δ╝╞╦π╣ª─▄╡─╚╬╥Γ╕±╩╜▒¿▒φ╔·│╔╞≈        ⌐º");
  96.     setcursor(11,10);
  97.     printf("⌐º          ú┴ú╬ú┘ú▀ú╥ú┼ú╨ú╧ú╥ú╘  ú╡ú«ú░░µ            ⌐º");
  98.     setcursor(12,10);
  99.     printf("⌐º                                                    ⌐º");
  100.     setcursor(13,10);
  101.     printf("⌐º         ╓╨ ╨┼ ╜≡ ╩⌠ ╣½ ╦╛ ╝╝ ╩⌡ ┐¬ ╖ó ▓┐           ⌐º");
  102.     setcursor(14,10);
  103.     printf("⌐º                                                    ⌐º");
  104.     setcursor(15,10);
  105.     printf("⌐º               ╥╗ ╛┼ ╛┼ ╢■ ─Ω ╩« ╥╗ ╘┬              ⌐º");
  106.     setcursor(16,10);
  107.     printf("⌐º                                                    ⌐º");
  108.     setcursor(17,10);
  109.     printf("⌐º                                                    ⌐º");
  110.     setcursor(18,10);
  111.     printf("⌐º                                                    ⌐º");
  112.     setcursor(19,10);
  113.     printf("⌐º                                                    ⌐º");
  114.     setcursor(20,10);
  115.     printf("⌐º         ░┤   ╚╬   ╥Γ   ╝ⁿ   ╝╠   ╨°   ...          ⌐º");    setcursor(21,10);
  116.     printf("⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐");
  117.  
  118.     getch();
  119.     clear_win(1,0,23,79,6,0);
  120.  
  121.     while ((cont=getchb())!=27) {
  122. operer:
  123.        switch(cont){
  124.        case   0:rval=disk_oper();
  125.         if (rval==-1) hanzi=(hanzi==0)?3:hanzi-1;
  126.         if (rval==1) hanzi=(hanzi==3)?0:hanzi+1;
  127.         break;
  128.        case   1:clear();
  129.                 setcursor(0,25);
  130.                 printf("╢¿ ╥σ ╗≥ ╨▐ ╕─ ▒¿ ▒φ ▓╬ ╩²");
  131.         pri_form(1,5,22,75);
  132.         paramet(); clear_win(1,0,23,79,6,0); break;
  133.        case   2:
  134.         biao_form();
  135.         clear_win(1,0,23,79,6,0);break;
  136.        case   3:for (i=0;i<80;i++) {
  137.             if (scr[i][0]=='\n') continue;
  138.             for (j=311;(j>=0)&&(scr[i][j]=='\n'||scr[i][j]==' ');j--)
  139.             scr[i][j]='\n';
  140.             }
  141.     reenter:gframe(2,57,4,77,1,white);
  142.                 setcursor(2,61);printf("╔·│╔╬─╝■├√");
  143.         setcursor(3,61);
  144.         oneline(4*100+61,8,8,filename2);
  145.         if (filename2[0]!=NULL)
  146.           {
  147.            if (strchr(filename2,'.')==NULL) strcat(filename2,".prg");
  148.            stream=fopen(filename2,"w");
  149.            if (stream==NULL) {printf("\007");goto reenter;}
  150.            generate();
  151.            setcursor(3,60);
  152.            printf("\007╔· │╔ ═Ω ▒╧ ...");
  153.            fclose(stream);
  154.            getchb();
  155.            }
  156.         clear_win(2,57,4,78,6,0);
  157.         break;
  158.        case 275:hanzi=(hanzi==0)?3:hanzi-1;
  159.         break;
  160.        case 277:hanzi=(hanzi==3)?0:hanzi+1;
  161.         break;
  162.        case 280:             /*Down Arrow*/
  163.        case 13 :cont=hanzi;
  164.         goto operer;
  165.        }
  166.        main_menu(hanzi);    }
  167. }
  168.  
  169. biao_form()
  170. {
  171.     int dow[2],dol[2];
  172.     int dcount1,dcount2;
  173.     int i,j,m,n,hanzi;
  174.     int srow[2],scol[2];
  175.     int logic;
  176.     char mid[80],c1,c2;
  177.     int charact;
  178. /*    strcpy(level[0],"⌐ª");strcpy(level[1],"⌐ñ");strcpy(level[2],"⌐α");
  179.     strcpy(level[3],"⌐╨");strcpy(level[4],"⌐└");strcpy(level[5],"⌐╚");
  180.     strcpy(level[6],"⌐╪");strcpy(level[7],"⌐░");strcpy(level[8],"⌐┤");
  181.     strcpy(level[9],"⌐╕");strcpy(level[10],"⌐╝");*/
  182.     dcount1=dcount2=0; clear();
  183.     x=1; y=0; setcursor(x,y);  curr=-1; curc=0;
  184.     for (x=1;x<24;x++) {
  185.     setcursor(x,0);
  186.     for (y=0;y<78;y++) {
  187.         if (scr[curr+x][y]!='\n') printf("%c",scr[curr+x][y]);
  188. /*        else printf(" ");*/
  189.         }
  190.     }
  191.     count3=0;
  192.     setcursor(1,0); display();
  193.     while ((charact=getchb())!=27){       switch (charact){
  194.        case 12:getcursor(&x,&y);
  195.            if ((curc+y)%2==0){
  196.       setcursor(24,0);
  197.       printf("\007╣Γ ▒Ω ┴╨ ╩² ▒╪ ╨δ ╬¬ ╞µ ╩²ú¼╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ");
  198.       getchb();setcursor(x,y);display();break;}
  199.       srow[count3]=x+curr;scol[count3++]=curc+y;
  200.       if (count3!=2) break;
  201.       if (srow[0]>srow[1])
  202.          {
  203.          m=srow[0]; srow[0]=srow[1]; srow[1]=m;
  204.          }
  205.       if (scol[0]>scol[1])
  206.          {
  207.          m=scol[0]; scol[0]=scol[1]; scol[1]=m;
  208.          }
  209.       for (m=srow[0];m<=srow[1];m++)
  210.           for (n=0;n<=scol[1]+1;n++)
  211.           if (scr[m][n]=='\n') scr[m][n]=' ';
  212.       if (srow[0]==srow[1]){
  213.          lline(srow[0],scol[0],scol[1]);count3=0;continue;}
  214.       if (scol[1]==scol[0]){
  215.          hline(scol[0],srow[0],srow[1]);count3=0;continue;}
  216.       lline(srow[0],scol[0],scol[1]);
  217.       hline(scol[1],srow[0],srow[1]);
  218.       hline(scol[0],srow[0],srow[1]);
  219.       lline(srow[1],scol[0],scol[1]);
  220.       count3=0;
  221.       display(); break;
  222.        case 38:getcursor(&x,&y);
  223.            for (i=curc+y;(i>=0)&&(scr[curr+x][i]=='\n');i--)
  224.            scr[curr+x][i]=' ';
  225.                putchar(charact);scr[curr+x][curc+y]='&';
  226.            value_exp();
  227.            for(i=0;i<count4;i++) {
  228.           if (scrrow[i]==x+curr&&scrcol[i]==y+curc){
  229. /*             setcursor(12,5);
  230.              printf("%s",scrval[i]);*/             oneline(1306,200,50,scrval[i]);
  231.              setcursor(x,y); display(); break;}
  232.           }
  233.            if (i<count4) {value_clear(); setcursor(x,y); break;}
  234.       scrrow[count4]=x+curr;scrcol[count4]=y+curc;
  235. /*      readfile(filename[0]);*/
  236.       oneline(1306,200,50,scrval[count4]);
  237.       value_clear();
  238.       count4++;
  239.       setcursor(x,y); display(); break;
  240.        case 20:getcursor(&x,&y);
  241.                if ((y+curc)%2==0){
  242.       setcursor(24,0);
  243.       printf("\007╣Γ ▒Ω ┴╨ ╩² ▒╪ ╨δ ╬¬ ╞µ ╩²ú¼ ╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ");
  244.       getchb();setcursor(x,y);display();break;}
  245.                dow[dcount2]=curr+x;dol[dcount2++]=curc+y;
  246.            if (((dcount2%2)==0)&&(dol[0]==dol[1])){
  247.       if (dow[0]>dow[1]){
  248.          i=dow[0];dow[0]=dow[1];dow[1]=i;}
  249.       for (i=dow[0];i<=dow[1];i++){
  250.          mid[0]=scr[i][dol[0]];mid[1]=scr[i][dol[0]+1];mid[2]='\0';
  251.          if (streq(mid,level[0])){
  252.         scr[i][dol[0]]=' ';scr[i][dol[0]+1]=' ';
  253.         continue;}
  254.          logic=0;
  255.          for (j=2;j<11;j++)
  256.              logic=logic||streq(mid,level[j]);
  257.          logic=logic||streq(mid,level[0]);
  258.          if (logic&&(i!=dow[0])&&(i!=dow[1])){        scr[i][dol[0]]=level[1][0];scr[i][dol[0]+1]=level[1][1];continue;}
  259.              if (i==dow[0]){
  260.             logic=streq(mid,level[3])||streq(mid,level[7])||streq(mid,level[8]);
  261.             if (logic){
  262.                scr[i][dol[0]]=level[1][0];scr[i][dol[0]+1]=level[1][1];continue;}
  263.                         if (streq(mid,level[2])){
  264.                scr[i][dol[0]]=level[6][0];scr[i][dol[0]+1]=level[6][1];continue;}
  265.             if (streq(mid,level[4])){
  266.                scr[i][dol[0]]=level[9][0];scr[i][dol[0]+1]=level[9][1];continue;}
  267.             if (streq(mid,level[5])){
  268.                scr[i][dol[0]]=level[10][0];scr[i][dol[0]+1]=level[10][1];continue;}
  269.             }
  270.          if (i==dow[1]){
  271.             logic=streq(mid,level[6])||streq(mid,level[9])||streq(mid,level[10]);
  272.             if (logic){
  273.                scr[i][dol[0]]=level[1][0];scr[i][dol[0]+1]=level[1][1];continue;}
  274.             if (streq(mid,level[2])){
  275.                scr[i][dol[0]]=level[3][0];scr[i][dol[0]+1]=level[3][1];continue;}
  276.             if (streq(mid,level[4])){
  277.                scr[i][dol[0]]=level[7][0];scr[i][dol[0]+1]=level[7][1];continue;}
  278.             if (streq(mid,level[5])){
  279.                scr[i][dol[0]]=level[8][0];scr[i][dol[0]+1]=level[8][1];continue;}
  280.             }
  281.                   }
  282.                if (dow[0]<curr){
  283.       for (i=curr;i<=dow[1];i++){
  284.          setcursor(i-curr,dol[0]-curc);
  285.          printf("%c%c",scr[i][dol[0]],scr[i][dol[0]+1]);}     }
  286.            if (dow[1]>curr+23){
  287.       for (i=dow[0];i<curr+24;i++){
  288.           setcursor(i-curr,dol[0]-curc);
  289.           printf("%c%c",scr[i][dol[0]],scr[i][dol[0]+1]);}
  290.       }
  291.            if (dow[0]>=curr&&dow[1]<=curr+23){
  292.       for (i=dow[0];i<=dow[1];i++){
  293.           setcursor(i-curr,dol[0]-curc);
  294.           printf("%c%c",scr[i][dol[0]],scr[i][dol[0]+1]);}
  295.       }
  296.                dcount2=0;}
  297.            if (dcount2%2==0&&dol[0]!=dol[1]) dcount2=0;
  298.                display();break;
  299.        case  4:getcursor(&x,&y);
  300.            if ((y+curc)%2==0){
  301.       setcursor(24,0);
  302.       printf("\007╣Γ ▒Ω ┴╨ ╩² ▒╪ ╨δ ╬¬ ╞µ ╩²ú¼╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ");
  303.       getchb();setcursor(x,y);display();break;}
  304.                dow[dcount1]=curr+x;dol[dcount1++]=curc+y;
  305.                if (((dcount1%2)==0)&&(dow[0]==dow[1])){
  306.      if (dol[0]>dol[1]){
  307.         i=dol[0];dol[0]=dol[1];dol[1]=i;}
  308.                  for (i=dol[0];i<=dol[1];i=i+2){
  309.       mid[0]=scr[dow[0]][i];mid[1]=scr[dow[1]][i+1];mid[2]='\0';
  310.       if (streq(mid,level[1])){
  311.          scr[dow[0]][i]=' ';scr[dow[0]][i+1]=' ';continue;}
  312.       logic=0;          for(j=2;j<11;j++)
  313.          logic=logic||streq(mid,level[j]);
  314.       if (logic&&(i!=dol[0])&&(i!=dol[1])){
  315.          scr[dow[0]][i]=level[0][0];scr[dow[0]][i+1]=level[0][1];continue;}
  316.       if (i==dol[0]){
  317.                      logic=streq(mid,level[4])||streq(mid,level[7])||streq(mid,level[9]);
  318.                      if (logic){
  319.             scr[dow[0]][i]=level[0][0];scr[dow[0]][i+1]=level[0][1];continue;}
  320.                      if (streq(mid,level[2])){
  321.             scr[dow[0]][i]=level[5][0];scr[dow[0]][i+1]=level[5][1];continue;}
  322.          if (streq(mid,level[3])){
  323.             scr[dow[0]][i]=level[8][0];scr[dow[0]][i+1]=level[8][1];continue;}
  324.          if (streq(mid,level[6])){
  325.             scr[dow[0]][i]=level[10][0];scr[dow[0]][i+1]=level[10][1];continue;}
  326.          }
  327.       if (i==dol[1]){
  328.          logic=streq(mid,level[5])||streq(mid,level[8])||streq(mid,level[10]);
  329.          if (logic){
  330.             scr[dow[0]][i]=level[0][0];scr[dow[0]][i+1]=level[0][1];continue;}
  331.          if (streq(mid,level[2])){
  332.             scr[dow[0]][i]=level[4][0];scr[dow[0]][i+1]=level[4][1];continue;}
  333.          if (streq(mid,level[6])){
  334.             scr[dow[0]][i]=level[9][0];scr[dow[0]][i+1]=level[9][1];continue;}
  335.          if (streq(mid,level[3])){
  336.             scr[dow[0]][i]=level[7][0];scr[dow[0]][i+1]=level[7][1];continue;}
  337.          }
  338.                }           if  (dol[0]<curc){
  339.        i=curc; setcursor(dow[0]-curr,i-curc);
  340.        while (i<=dol[1]+1){
  341.           printf("%c",scr[dow[0]][i++]);}
  342.        }
  343.                if  (dol[1]>curc+79){
  344.        setcursor(dow[0]-curr,dol[0]-curc);
  345.        for (i=dol[0];i<curc+80;i++)
  346.             printf("%c",scr[dow[0]][i]);
  347.        }
  348.                if ((dol[0]>=curc)&&(dol[1]<=curc+79)){
  349.        setcursor(dow[0]-curr,dol[0]-curc);
  350.        for (i=dol[0];i<=dol[1]+1;i++)
  351.           printf("%c",scr[dow[0]][i]);
  352.        }
  353.                dcount1=0;}
  354.                if ((dcount1%2==0)&&(dow[0]!=dow[1])) dcount1=0;
  355.            display(); break;
  356.     case  5:getcursor(&x,&y);
  357.                for (j=0;j<count4;j++)
  358.        if ((scrrow[j]==x+curr)&&(scrcol[j]==y+curc)){
  359.             scrval[j][0]=' ';scrval[j][1]='\0';
  360.             scr[curr+x][curc+y]=' ';break;}           setcursor(x,y);printf(" ");
  361.                display();  break;
  362.        case 259:help();
  363.         clear_win(1,0,24,79,6,0);
  364.         display_all();
  365.         break;
  366.        case 260:save_format(); break;
  367.        case 272:top_move(); break;
  368.        case 280:bottom_move(); break;
  369.        case 275:left_move(); break;
  370.        case 277:right_move(); break;
  371.        case 271:row_head(); break;
  372.        case 279:row_tail(); break;
  373.        case 273:last_page(); break;
  374.        case 281:next_page(); break;
  375.        case 282:Ins=(Ins==0)?1:0; break;
  376.        case   9:getcursor(&x,&y);
  377.         if (curc>=432) break;
  378.         if (y+10>75) {
  379.            curc=curc+39; display_all();
  380.            y=y-39;
  381.            }
  382.         y=y+10; setcursor(x,y); break;
  383.        case   1:getcursor(&x,&y);
  384.         if ((y-10<0)&&(curc==0)) {setcursor(x,0); break;}
  385.         if ((y-10<0)&&(curc!=0)) {
  386.            curc=curc-39; y=y+39;
  387.            display_all();
  388.            }        y=y-10; setcursor(x,y); break;
  389.        case   8:getcursor(&x,&y);
  390.         if ((y==0)&&(curc==0)) break;
  391.         if ((y==0)&&(curc!=0)) {
  392.            curc=curc-39; y=y+39;
  393.            display_all();
  394.            setcursor(x,y);
  395.            }
  396.         n=y+curc;
  397.         while (scr[curr+x][n]!='\n'){
  398.            if (scr[curr+x][n]=='&')
  399.               for (i=0;i<count4;i++)
  400.               if ((scrrow[i]==curr+x)&&(scrcol[i]==n))
  401.                  scrcol[i]=n-1;
  402.            scr[curr+x][n-1]=scr[curr+x][n];
  403.            n++;}
  404.         scr[curr+x][n-1]=scr[curr+x][n];
  405.         setcursor(x,0);
  406.         for (m=curc;(m<curc+78)&&(m<width);m++){
  407.             if (scr[curr+x][m]!='\n') printf("%c",scr[curr+x][m]);
  408.             else printf(" ");
  409.             }
  410. /*        display_row();*/
  411.         setcursor(x,y-1);
  412.         break;
  413.        case 283:getcursor(&x,&y); m=curc+y;
  414.         if (scr[curr+x][curc+y]=='\n') break;
  415.         while (scr[curr+x][m]!='\n'){
  416.            if (scr[curr+x][m]=='&')
  417.               for (i=0;i<count4;i++)
  418.               if ((scrrow[i]==curr+x)&&(scrcol[i]==m))
  419.                  scrcol[i]=scrcol[i]-1;
  420.            scr[curr+x][m]=scr[curr+x][m+1]; m++;}
  421.                 setcursor(x,0);
  422.         for (m=curc;(m<curc+78)&&(m<width);m++){
  423.             if (scr[curr+x][m]!='\n') printf("%c",scr[curr+x][m]);
  424.             else printf(" ");
  425.             }
  426. /*        display_row();*/
  427.         setcursor(x,y); break;
  428.        case  25:getcursor(&x,&y);
  429.         logic=0;        for (i=0;i<width;i++)
  430.             if (scr[curr+x][i]=='&') logic=1;
  431.         if (logic==1) break;
  432.         else{
  433.            for (i=0;i<count4;i++)
  434.               if (scrrow[i]>=curr+x) scrrow[i]=scrrow[i]-1;
  435.            }
  436.         for (m=curr+x;m<79;m++){
  437.            for (n=0;n<width;n++)
  438.                scr[m][n]=scr[m+1][n];}
  439.         setcursor(1,0);
  440.         display_all(); setcursor(x,0);
  441.         break;
  442.        case  14:getcursor(&x,&y);
  443.         for (i=0;i<count4;i++)
  444.             if (scrrow[i]>=curr+x) scrrow[i]=scrrow[i]+1;
  445.         for (m=78;m>=curr+x;m--)
  446.            for (n=0;n<width;n++)
  447.                scr[m+1][n]=scr[m][n];
  448.         for (n=0;n<width;n++)
  449.             scr[curr+x][n]='\n';
  450.         downmove(x,23,1); setcursor(x,0);
  451.         display_row();
  452.         setcursor(x,0);
  453.         display();        break;
  454.        case  13:getcursor(&x,&y);
  455.         if (scr[x+curr][y+curc]=='&') {
  456.            for (i=0;i<count4;i++)
  457.                if (scrrow[i]==x+curr&&scrcol[i]==y+curc) {
  458.               value_exp();
  459. /*              setcursor(12,5);
  460.               printf("%s",scrval[i]);*/
  461.               oneline(1306,200,50,scrval[i]);
  462.               value_clear();
  463.               }
  464.            setcursor(x,y);
  465.            break;
  466.            }
  467.         if (curc==0&&x<23) {setcursor(x+1,0); break;}
  468.         if (curc!=0) curc=0;
  469.         if (x==23) curr++;
  470.         else x++;
  471.         display_all(); setcursor(x,0);
  472.         break;
  473.        default: getcursor(&x,&y);
  474.         if (y+1>74){
  475.            curc=curc+40;
  476.            display_all(); y=y-40;
  477.            setcursor(x,y);
  478.            break;
  479.            }
  480.         if ((charact<=26)||(charact>255)) break;
  481.         n=y+curc;
  482.         putchar(charact);
  483.         if (scr[curr+x][n]=='\n'){
  484.            scr[curr+x][n]=charact;
  485.            n--;
  486.            while (scr[curr+x][n]=='\n') scr[curr+x][n--]=' ';
  487.            break;
  488.            }
  489.         switch(Ins){
  490.         case 1:while (scr[curr+x][n]!='\n') {
  491.               if (scr[curr+x][n]=='&') {
  492.                  for (i=0;i<count4;i++)
  493.                  if ((scrrow[i]==curr+x)&&(scrcol[i]==n))
  494.                     scrcol[i]=n+1;
  495.                  }              n++;
  496.               }
  497.                while (n>y+curc){
  498.               scr[curr+x][n]=scr[curr+x][n-1];
  499.               n--;}
  500.                scr[curr+x][y+curc]=charact; getcursor(&x,&y);
  501.                display_row(); setcursor(x,y);
  502.                break;
  503.         case 0:if (scr[curr+x][n]=='&') {
  504.               setcursor(x,y); putchar('&'); break;
  505.               }
  506.                scr[curr+x][n]=charact;
  507.                break;
  508.         }
  509.        }
  510.     display();
  511.     }
  512.     setcursor(23,0);printf("                                               ");
  513.     setcursor(23,0);printf("╩╟ ╖± ╜½ ╕± ╩╜ ╬─ ╝■ ┤µ ┼╠(Y/N)");
  514.     charact=getchb();
  515.     if ((charact=='y')||(charact=='Y')) save_format();
  516.     return(1);
  517. }
  518.  
  519. /*-------------------------------display_all-------------------------------*/
  520. display_all()
  521. {
  522.    int curbuf;
  523.    clear();   curbuf=x;
  524.    for (x=1;x<24;x++)
  525.        if (x+curr<80) {setcursor(x,0); display_row();}
  526.    x=curbuf;
  527. }
  528. /*-------------------------------right_move--------------------------------*/
  529. right_move()
  530. {
  531.    getcursor(&x,&y);
  532.    if (y+curc==width-2) return(0);
  533.    if (y+1<75)  setcursor(x,y+1);
  534.    else {
  535.       curc=curc+39;
  536.       display_all(); y=y-39; setcursor(x,y);
  537.       }
  538. }
  539. /*--------------------------------left_move--------------------------------*/
  540. left_move()
  541. {
  542.    getcursor(&x,&y);
  543.    if ((y==0)&&(curc==0)) return(0);
  544.    if ((y==0)&&(curc!=0)) {
  545.       curc=curc-39; y=y+39; display_all();
  546.       }
  547.    setcursor(x,y-1);
  548. }
  549. /*---------------------------------top_move-------------------------------*/
  550. top_move()
  551. {
  552.    int curbuf;
  553.    getcursor(&x,&y);
  554.    if (x>1) { setcursor(x-1,y); return(0);}
  555.    if (curr==-1) return(1);
  556.    curr--; downmove(1,23,1); setcursor(x,0);
  557.    display_row(); setcursor(x,y);
  558. }
  559. /*---------------------------------bottom_move-----------------------------*/
  560. bottom_move(){
  561.    int curbuf;
  562.    getcursor(&x,&y);
  563.    if (curr+x==79) return(0);
  564.    if (x<23) {setcursor(x+1,y); return(0);}
  565.    curr++; curbuf=x;
  566.    upmove(1,23,1); setcursor(x,0);
  567.    display_row();
  568.    setcursor(curbuf,y);
  569. }
  570. /*---------------------------------last_page-------------------------------*/
  571. last_page()
  572. {
  573.    getcursor(&x,&y);
  574.    curr = (curr - 20 < -1)?-1:curr-20;
  575.    clear_win(1,0,24,79,6,0);
  576.    display_all(); setcursor(x,y);
  577. }/*---------------------------------next_page-------------------------------*/
  578. next_page()
  579. {
  580.    getcursor(&x,&y);
  581.    curr = (curr + 20 > 79)?79:curr+20; x=1;
  582.    clear(1,0,24,79,6,0);
  583.    display_all(); setcursor(x,y);
  584. }
  585. /*---------------------------------row_head--------------------------------*/
  586. row_head()
  587. {
  588.    int curbuf;
  589.    getcursor(&x,&y); curbuf=x;
  590.    if (curc==0) {setcursor(x,0); return(0);}
  591.    curc=0;
  592.    display_all(); setcursor(curbuf,0);
  593. }
  594. /*----------------------------------row_tail-------------------------------*/
  595. row_tail()
  596. {
  597.    int curbuf,m;
  598.    getcursor(&x,&y); curbuf=x;
  599.    for (m=0;scr[x+curr][m]!='\n';m++);
  600.    curc=(m/39)*39; y=m%39;
  601.    display_all(); setcursor(curbuf,y);
  602. }
  603. /*----------------------------------display------------------------------*/
  604. display()
  605. {
  606.    getcursor(&x,&y);
  607.    x=x & 0x0ff;
  608.    setcursor(24,0);
  609.    if (Ins==1)
  610.       printf("\033[0;34;41m             ╣Γ  ▒Ω  ╨╨ ║┼:%2d   ┴╨ :%2d                            ▓σ ╚δ        ",curr+x+1,curc+y);
  611.    if (Ins==0)
  612.       printf("\033[0;34;41m             ╣Γ  ▒Ω  ╨╨ ║┼:%2d   ┴╨ :%2d                            ╕▓ ╕╟        ",curr+x+1,curc+y);
  613.    printf("\033[0;0;0m");
  614.    setcursor(x,y);
  615. }
  616. /*------------------------------parameter---------------------------------*/
  617. paramet(){
  618.    char judge;
  619.    int i,j;
  620.    setcursor(2,10);
  621.    left_space=atoi(midd_int);
  622.    printf("╫≤ ┐╒ ╕±  : %d",left_space);
  623.    setcursor(2,40);
  624.    page_line=atoi(midd_int1);
  625.    printf("├┐╥│╨╨╩²  : %d",page_line);
  626.    setcursor(3,10);
  627.    printf("╓≈ ▒Ω ╠Γ  : %s",main_biao);
  628.    setcursor(4,22);
  629.    printf("%s",main_biao1);
  630.    setcursor(5,10);
  631.    printf("╕▒ ▒Ω ╠Γ  : %s",assi_biao);
  632.    setcursor(6,22);
  633.    printf("%s",assi_biao1);
  634.    setcursor(7,20);
  635.    printf("╓≈▒Ω╠Γ╫╓╠σ: %c",main_size);
  636.    setcursor(7,50);
  637.    printf("╕▒▒Ω╠Γ╫╓╠σ: %c",assi_size);
  638.    setcursor(8,10);   printf("╫≤╔╧╜╟▒Ω╫ó: %s",left_top);
  639.    setcursor(9,10);
  640.    printf("╙╥╔╧╜╟▒Ω╫ó: %s",right_top);
  641.    setcursor(10,10);
  642.    printf("╒²╬─╫╓╠σ  : %c",text_size);
  643.    setcursor(11,10);
  644.    printf("╬▓▓┐▒Ω╫ó  : %s",tail_boot);
  645.    setcursor(12,10);
  646.    printf("╬▓╫ó╫╓╠σ  : %c",tail_size);
  647.    setcursor(13,20);
  648.    printf("╟δ ╩Σ ╚δ ┤≥ ╙í ┐Γ ├√ :");
  649.    for (i=0;i<filectc;i++) {
  650.       setcursor(14+i/2,7+35*(i%2));
  651.       printf("%d--%s",i+1,filename[i]);
  652.       }
  653. lefts:setcursor(2,22);
  654.       oneline(323,4,4,midd_int);
  655.       left_space=atoi(midd_int);
  656.       setcursor(2,22);
  657.       if (left_space>50) goto lefts;
  658.       printf("%d   ",left_space);
  659. L1:   setcursor(2,52);
  660.       oneline(353,4,4,midd_int1);
  661.       page_line=atoi(midd_int1);
  662.       if (page_line>200) {printf("\007");goto L1;}
  663.       setcursor(2,52);
  664.       printf("%d   ",page_line);
  665.       setcursor(3,22);
  666.       oneline(423,50,50,main_biao);
  667.       oneline(523,50,50,main_biao1);
  668.       oneline(623,50,50,assi_biao);
  669.       oneline(723,50,50,assi_biao1);
  670.       read_size(7,32,&main_size);
  671.       read_size(7,62,&assi_size);
  672.       oneline(923,40,40,left_top);
  673.       oneline(1023,40,40,right_top);
  674.       read_size(10,22,&text_size);
  675.       oneline(1223,40,40,tail_boot);
  676.       read_size(12,22,&tail_size);
  677.       for (i=0;i<filectc;i++)
  678.       oneline((15+i/2)*100+11+35*(i%2),30,30,filename[i]);
  679. name: if (filectc==9) goto epar;
  680.       setcursor(14+filectc/2,7+35*(filectc%2));
  681.       printf("%d--",filectc+1);
  682.       oneline((15+filectc/2)*100+11+35*(filectc%2),30,30,filename[filectc]);
  683.       if (filename[filectc][0]!='\0') {
  684.      filectc++; goto name;}
  685. epar: if (filectc>1) {
  686.      setcursor(19,10);
  687.      printf("╟δ╩Σ╚δ┴¼╜╙▒φ┤∩╩╜:  %s",joinname);
  688.      oneline((19+1)*100+30,45,45,joinname);
  689.      if (strcmp(joinname,NULL)==0) {
  690.         setcursor(23,0);
  691.         printf("\007 ╛» ╕µ : ├╗╙╨┴¼╜╙╫╓╢╬,▓╗─▄╜°╨╨┴¼▒φ┤≥╙í ...");
  692.         getchb();
  693.         }
  694.      }
  695.       setcursor(20,25);  /*18*/
  696.       printf("\007╚╖  ╢¿  ╒²  ╚╖  ╖± (Y/N):");
  697.       judge=getchb(); putchar(judge);
  698.       if ((judge=='n')||(judge=='N')) goto lefts;
  699.       setcursor(21,25);
  700.       printf("╩╟  ╖±  ┤µ  ┼╠     (Y/N):");
  701.       judge=getchb(); putchar(judge);
  702.       if ((judge=='y')||(judge=='Y')) save_format();
  703.       return(0);
  704. }
  705.  
  706.  
  707. read_str(row,col,string,len)int row,col,len;
  708. char *string;
  709. {
  710.    char midd[80];
  711.    int ctc,chac;
  712.    for (ctc=0;ctc<len;ctc++) midd[ctc]='\0';
  713.    for (ctc=0;ctc<len;ctc++) {
  714.       if (string[ctc]!='\n') midd[ctc]=string[ctc];
  715.       else break;
  716.       }
  717.    setcursor(row,col);
  718.    ctc=0;
  719.    while (ctc<len-1){
  720.       chac=getchb();
  721.       if (chac==277) {
  722.      if (midd[ctc]!='\0') {ctc++;setcursor(row,col+ctc);}
  723.      }
  724.       if (chac==275) {
  725.      if (ctc!=0) {ctc--; setcursor(row,col+ctc);}
  726.      }
  727.       if (chac==8) {
  728.      if (ctc>0) ctc--;
  729.      setcursor(row,col+ctc);
  730.      printf(" ");
  731.      setcursor(row,col+ctc);     }
  732.       if (chac==13) {midd[ctc]=13; break;}
  733.       if (chac>=30&&chac<=256) {
  734.      printf("%c",chac); midd[ctc++]=chac;
  735.      }
  736.       }
  737.    midd[ctc]=13;
  738. head:   if (midd[0]!=13) strcpy(string,midd);
  739.    setcursor(row,col);
  740.    printf("%s\n",string);
  741. }
  742.  
  743. read_size(row,col,string)
  744. int row,col;
  745. char *string;
  746. {
  747.    int letter=20;
  748.    while ((letter<'A')||(letter>'H')) {
  749.       setcursor(row,col);
  750.       letter=getchb();
  751.       if (letter==13) {letter=*string; break;}
  752.       }
  753.    *string=letter;
  754.    setcursor(row,col);
  755.    printf("%c  ",*string);
  756. }
  757.  
  758. fprstr(fp,len,string)
  759. char *string;
  760. FILE *fp;
  761. int len;
  762. {
  763.    int int_midd;
  764.    int_midd=0;
  765.    while (int_midd<len-1) {
  766.       if ((string[int_midd]!='\0')&&(string[int_midd]!='\n')&&(string[int_midd]!=13))
  767.      fprintf(fp,"%c",string[int_midd]);
  768.       else int_midd=len-1;
  769.       int_midd++;
  770.       }
  771. }
  772.  
  773. /*----------------------------generate-------------------------------------*/generate()
  774. {
  775.    int rowctc,i,j,count1,logic;
  776.    char c1,midd1[3],midd2[3];
  777.    int m,n,H_ctc,zong=0;
  778.    real_width=0;
  779.    count1=0;
  780.    for (m=0;m<80;m++) {
  781.       for (n=0;n<311;n++)
  782.       if (scr[m][n]=='\n') break;
  783.       real_width=(real_width<n)?n:real_width;
  784.       }
  785.    for (m=0;m<filectc;m++) {
  786.       fprintf(stream,"sele %d\n",m+1);
  787.       fprintf(stream,"use ");
  788.       fprstr(stream,30,filename[m]);
  789.       fprintf(stream,"\n");
  790.       }
  791.    fprintf(stream,"set talk off\nnumber=0\n");
  792.    fprintf(stream,"clear\nset talk on\n");
  793.    fprintf(stream,"@10,14 say '╟δ ╩Σ ╚δ ┤≥ ╙í ╖▌ ╩²(0-9999):'\n");
  794.    fprintf(stream,"@row(),col()+1 get number picture '9999'\n");
  795.    fprintf(stream,"read\nclear\n@10,15 say ' ╒² ╘┌ ┤≥ ╙í'\n");   fprintf(stream,"@row()+1,15 say '   ╟δ ╔╘ ║≥...'\n");
  796.    fprintf(stream,"set talk off\n");
  797.    fprintf(stream,"pageline=%d\n",page_line);
  798.    fprintf(stream,"p=1\ncc=0\n");
  799.    fprintf(stream,"do while cc<number\n");
  800.    fprintf(stream,"set device to print\n");
  801.    fprintf(stream,"sele 1\ngo top\n");
  802.    fprintf(stream,"do while .not.eof()\n");
  803.    fprintf(stream,"set print on\n");
  804.    fprintf(stream,"?chr(27)+'I%c'\n",main_size);
  805.    fprintf(stream,"set print off\nset device to print\n");
  806.    fprbaoti(main_biao,main_size,&count1);
  807.    fprbaoti(main_biao1,main_size,&count1);
  808.    fprintf(stream,"set print on\n");
  809.    fprintf(stream,"?chr(27)+'I%c'\n",assi_size);
  810.    fprintf(stream,"set print off\nset devi to print\n");
  811.    fprbaoti(assi_biao,assi_size,&count1);
  812.    fprbaoti(assi_biao1,assi_size,&count1);
  813.    fprintf(stream,"set print on\n");
  814.    fprintf(stream,"?chr(27)+'I%c'\n",text_size);
  815.    fprintf(stream,"set print off\nset devi to prin\n");
  816.    if (strcmp(left_top,NULL)!=0) {
  817.       fprintf(stream,"@prow()+1,%d say '",left_space+1);
  818.       fprstr(stream,40,left_top);
  819.       fprintf(stream,"'\n");
  820.       n++;
  821.       }
  822.    if (strcmp(right_top,NULL)!=0) {
  823.       fprintf(stream,"@prow(),%d say '",real_width-strlen(right_top)+left_space);
  824.       fprstr(stream,40,right_top);
  825.       fprintf(stream,"'\n");
  826.       n++;
  827.       }
  828.    fprintf(stream,"n=%d\nx=prow()\n",count1);
  829.    rowctc=0;
  830.    while ((scr[rowctc][0]!='H')&&(rowctc<80)) {
  831.      if (scr[rowctc][0]=='\n'){rowctc++;continue;}
  832.      for (n=0;n<3;n++){
  833.      fprintf(stream,"@x+%d,%d say '",rowctc+1,left_space+n*200+1);
  834.      for (i=n*200+1;i<(n+1)*200+1;i++){
  835.         if (scr[rowctc][i]!='\n') fprintf(stream,"%c",scr[rowctc][i]);
  836.         else {n=3; break;}
  837.         }
  838.          fprintf(stream,"'\n");
  839.      }
  840.      rowctc++;
  841.      }
  842.     if (rowctc==80) goto labe;
  843.     H_ctc=1;
  844.     fprintf(stream,"sele %d\n",H_ctc);
  845.     fprintf(stream,"do while .not.eof()\n");
  846.     fprintf(stream,"sele %d\n",H_ctc);
  847.     if (strcmp(joinname,NULL)!=0) {
  848.        fprintf(stream,"YsgCons=");
  849.        fprstr(stream,45,joinname);
  850.        fprintf(stream,"\n");
  851.        }
  852.     for (i=1;i<filectc;i++) {
  853.     fprintf(stream,"sele %d\n",i+1);
  854.     fprintf(stream,"go top\nloca for ");
  855.     fprstr(stream,45,joinname);
  856.     fprintf(stream,"=YsgCons\n");
  857.     }
  858. last_H:fprintf(stream,"x=prow()+1\n");
  859.     i=rowctc;
  860.     while ((scr[i][0]!='T')&&(i<80)){
  861.     j=1;
  862.     logic=(scr[i][0]=='\n');
  863.         if (logic==0){
  864. last1:     if (scr[i][j]!='&'){
  865.           fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
  866.           while (scr[i][j]!='&'){         c1='0';
  867.          if (scr[i][j]!='\n')
  868.             {
  869.             if (j==201||j==401)
  870.                {
  871.                fprintf(stream,"'\n");
  872.                fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
  873.                }
  874.             fprintf(stream,"%c",scr[i][j++]);
  875.             }
  876.          else j=width;
  877.                  if (j==width){
  878.         fprintf(stream,"'\n");goto next;}
  879.                  }
  880.           if (c1=='0') fprintf(stream,"'\n");
  881.               goto last2;}
  882.            else{
  883. last2:        c1='1';
  884.               for (count1=0;count1<count4;count1++)
  885.       if ((scrrow[count1]==i)&&(scrcol[count1]==j)&&!(streq(scrval[count1]," "))){
  886.              if ((scrval[count1][0]>='1')&&(scrval[count1][0]<filectc+49))
  887.             {fprintf(stream,"sele %c\n",scrval[count1][0]);
  888.              m=1;
  889.              }
  890.              else {fprintf(stream,"sele %d\n",H_ctc); m=0;}
  891.              fprintf(stream,"@x+%d,%d say ",i-rowctc,left_space+j);
  892.              while ((m<69)&&(scrval[count1][m]!=13)&&(scrval[count1][m]!=0))
  893.              {fprintf(stream,"%c",scrval[count1][m]);
  894.              m++;}
  895.              fprintf(stream," pict '@BZ'\n");
  896.              }
  897.               while (scr[i][++j]==' ')
  898.             {if (j==width-1) goto next;}
  899.               goto last1;
  900.               }
  901.            }
  902. next:i++;
  903.      }
  904.      fprintf(stream,"n=n+%d\n",i-rowctc+1);
  905.      fprintf(stream,"sele %d\n",H_ctc);
  906.      fprintf(stream,"skip\n");
  907.      fprintf(stream,"if n>=pageline-1\n");
  908.      fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+1);
  909.      for (j=1;j<312;j=j+2) {
  910.      if (j==201||j==401)
  911.         {
  912.         fprintf(stream,"'\n");
  913.         fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
  914.         }
  915.      midd1[0]=scr[i][j];midd1[1]=scr[i][j+1];midd1[2]='\0';
  916.      if (streq(midd1,level[4])) {
  917.         fprintf(stream,"%c%c",level[9][0],level[9][1]); continue;}
  918.      if (streq(midd1,level[5])) {
  919.         fprintf(stream,"%c%c",level[10][0],level[10][1]); continue;}
  920.      if (streq(midd1,level[3])) {
  921.         fprintf(stream,"%c%c",level[1][0],level[1][1]); continue;}
  922.      if (streq(midd1,level[2])) {
  923.         fprintf(stream,"%c%c",level[6][0],level[6][1]); continue;}
  924.      if (midd1[0]!='\n') fprintf(stream,"%c",midd1[0]);
  925.      else {fprintf(stream,"'\n"); break;}
  926.      if (midd1[1]!='\n') fprintf(stream,"%c",midd1[1]);
  927.      else {fprintf(stream,"'\n"); break;}
  928.      }
  929.      m=(real_width-9)/2+left_space;
  930.      fprintf(stream,"@x+%d,%d say '---'+str(p,3)+'---'\n",i-rowctc+2,m);
  931.      fprintf(stream,"eject\n");
  932.      fprintf(stream,"p=p+1\n");
  933.      fprintf(stream,"n=0\nexit\nendif\n");
  934.      fprintf(stream,"if .not.eof()\n");
  935.      fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+1);
  936.      for (j=1;j<312;j=j+2) {
  937.      if (j==201||j==401)
  938.         {
  939.         fprintf(stream,"'\n");
  940.         fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
  941.         }
  942.      midd1[0]=scr[i][j];midd1[1]=scr[i][j+1];midd1[2]='\0';
  943.      midd2[0]=scr[rowctc-1][j];midd2[1]=scr[rowctc-1][j+1];midd2[2]='\0';
  944.      if (streq(midd2,level[1])){
  945.         if (streq(midd1,level[6])||streq(midd1,level[2])){
  946.            fprintf(stream,"%c%c",level[6][0],level[6][1]); continue;}
  947.         else {
  948.            fprintf(stream,"%c%c",level[1][0],level[1][1]); continue;}
  949.         }
  950.      if (streq(midd1,level[1])){
  951.         if (streq(midd2,level[3])||streq(midd2,level[2])){
  952.            fprintf(stream,"%c%c",level[3][0],level[3][1]); continue;}
  953.         else {
  954.            fprintf(stream,"%c%c",level[1][0],level[1][1]); continue;}
  955.         }
  956.      if (streq(midd2,level[2]))
  957.         if (!streq(midd1,level[1])&&!streq(midd1,level[3])){
  958.            fprintf(stream,"%c%c",level[2][0],level[2][1]);continue;}
  959.         else {fprintf(stream,"%c%c",level[3][0],level[3][1]); continue;}
  960.      if (streq(midd1,level[2]))
  961.         if (!streq(midd2,level[1])&&!streq(midd2,level[6])){
  962.            fprintf(stream,"%c%c",level[2][0],level[2][1]); continue;}
  963.         else {fprintf(stream,"%c%c",level[6][0],level[6][1]); continue;}
  964.      if (streq(midd1,level[6])&&streq(midd2,level[3])){
  965.         fprintf(stream,"%c%c",level[2][0],level[2][1]); continue;}
  966.      if ((streq(midd1,level[9])||streq(midd1,level[4]))\
  967.      &&(streq(midd2,level[7])||streq(midd2,level[4]))){
  968.         fprintf(stream,"%c%c",level[4][0],level[4][1]); continue;}
  969.      if ((streq(midd1,level[10])||streq(midd1,level[5]))&&(streq(midd2,level[5])||streq(midd2,level[8])||streq(midd2,level[0]))){
  970.         fprintf(stream,"%c%c",level[5][0],level[5][1]); continue;}
  971.      if (scr[i][j]!='\n') fprintf(stream,"%c",scr[i][j]);
  972.      else {fprintf(stream,"'\n"); break;}
  973.      if (scr[i][j+1]!='\n') fprintf(stream,"%c",scr[i][j+1]);
  974.      else {fprintf(stream,"'\n"); break;}     }
  975.      fprintf(stream,"endif\n");
  976.      if (H_ctc==1) fprintf(stream,"enddo\n");
  977.      fprintf(stream,"enddo\nx=prow()+1\n");
  978.      rowctc=i;
  979.      while (i<80) {
  980.     j=1;
  981.     logic=(scr[i][0]=='\n');
  982.     if (scr[i][0]=='H')
  983.        {
  984.        H_ctc++;
  985.        for (m=0;m<filectc;m++)
  986.            fprintf(stream,"sele %d\ngo top\n",m+1);
  987.        fprintf(stream,"sele %d\ndo while .not.eof()\nsele %d\n",H_ctc,H_ctc);
  988.        if (strcmp(joinname,NULL)!=0) {
  989.           fprintf(stream,"YsgCons=");
  990.           fprstr(stream,45,joinname);
  991.           fprintf(stream,"\n");
  992.           }
  993.        for (m=0;m<filectc;m++){
  994.           if (H_ctc!=m+1){
  995.           fprintf(stream,"sele %d\n",m+1);
  996.           fprintf(stream,"go top\nloca for ");
  997.           fprstr(stream,45,joinname);
  998.           fprintf(stream,"=YsgCons\n");
  999.           }
  1000.           }
  1001.        rowctc=i;
  1002.        goto last_H;
  1003.        }
  1004.         if (logic==0){
  1005. last3:     if (scr[i][j]!='&'){
  1006.           fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
  1007.           while (scr[i][j]!='&'){         c1='0';
  1008.          if (scr[i][j]!='\n')
  1009.             {
  1010.              if (j==201||j==401)
  1011.                 {
  1012.                 fprintf(stream,"'\n");
  1013.                 fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
  1014.                 }
  1015.             fprintf(stream,"%c",scr[i][j++]);
  1016.             }
  1017.          else j=width;
  1018.                  if (j==width){
  1019.         fprintf(stream,"'\n");goto next1;}
  1020.                  }
  1021.           if (c1=='0') fprintf(stream,"'\n");
  1022.           goto last4;}
  1023.            else{
  1024. last4:        c1='1';
  1025.               for (count1=0;count1<count4;count1++)
  1026.       if ((scrrow[count1]==i)&&(scrcol[count1]==j)&&!(streq(scrval[count1]," "))){
  1027.          zong++;
  1028.              if ((scrval[count1][0]>='1')&&(scrval[count1][0]<filectc+49))
  1029.              m=1;
  1030.              else m=0;
  1031.              while ((m<69)&&(scrval[count1][m]!=13)&&(scrval[count1][m]!=0))
  1032.                    {fprintf(stream,"%c",scrval[count1][m]);
  1033.                    m++;}
  1034.              fprintf(stream," to value%d\n",zong);
  1035.              fprintf(stream,"@x+%d,%d say value%d pict '@BZ'\n",i-rowctc,left_space+j,zong);
  1036.              }
  1037.               while (scr[i][++j]==' ')
  1038.      if (j==width-1) goto next;
  1039.           goto last3;
  1040.           }
  1041.      }
  1042. next1:i++;
  1043.      }
  1044. labe:fprintf(stream,"set print on\n");
  1045.      fprintf(stream,"?chr(27)+'I%c'\n",tail_size);
  1046.      fprintf(stream,"set print off\nset devi to print\n");
  1047.      fprintf(stream,"x=prow()\n");
  1048.      fprintf(stream,"@x,%d say '",real_width-strlen(tail_boot));
  1049.      fprstr(stream,40,tail_boot);
  1050.      fprintf(stream,"'\n");
  1051.      fprintf(stream,"n=n+4\n");
  1052. /*     fprintf(stream,"if (n>pageline).or.(p<>1)\n");*/
  1053.      fprintf(stream,"set print on\n?chr(27)+'I%c'\n",text_size);
  1054.      fprintf(stream,"set print off\nset devi to print\n");
  1055.      m=(real_width-9)/2+left_space;
  1056.      fprintf(stream,"@prow()+2,%d say '---'+str(p,3)+'---'\n",m);
  1057.      fprintf(stream,"eject\n");
  1058.      fprintf(stream,"x=prow()+1\n@x,0 say chr(13)\n");
  1059.      fprintf(stream,"set device to screen\ncc=cc+1\nenddo\n");
  1060. }
  1061. fprbaoti(string,size,ctr)
  1062. char *string;
  1063. char size;
  1064. int *ctr;
  1065. {
  1066.    int m,n;
  1067.    if (strcmp(string,NULL)!=0) {
  1068.       m=strlen(string);
  1069.       if (size!='A'&&size!='C'&&size!='E'&&size!='G')
  1070.      if (text_size=='A'||text_size=='C'&&text_size=='E'&&text_size=='G')
  1071.         m=m/2;
  1072.       n=(real_width-m)/2;
  1073.       fprintf(stream,"@prow()+1,%d say '",n+left_space);
  1074.       fprstr(stream,50,string);
  1075.       fprintf(stream,"'\n");
  1076.       *ctr= *ctr+1;
  1077.       }
  1078. }
  1079.  
  1080. main_menu(roar)
  1081. int roar;
  1082. {
  1083.     char *menu[]={"┤┼┼╠▓┘╫≈",
  1084.           "▒α╝¡▒¿▒φ▓╬╩²",
  1085.           "▒α╝¡▒¿▒φ╕±╩╜",
  1086.           "╔·│╔▒¿▒φ│╠╨≥",
  1087.          };
  1088.     int i;
  1089.     setcursor(0,0);
  1090.     color_puts("     ┤┼┼╠▓┘╫≈          ▒α╝¡▒¿▒φ▓╬╩²      ▒α╝¡▒¿▒φ╕±╩╜      ╔·│╔▒¿▒φ│╠╨≥",white);
  1091.     setcursor(0,5+roar*18);
  1092.     color_puts(menu[roar],yellow | blue_back);
  1093. }
  1094.  
  1095. save_format()
  1096. {
  1097.    int i,j;
  1098.    do {
  1099.      fp=fopen(filename1,"w");
  1100.      if (fp==NULL)
  1101.        {setcursor(23,0);printf("                                               ");
  1102.     setcursor(23,0);printf("\007╬┤╢¿╥σ╕±╩╜╬─╝■├√ú¼╟δ╩Σ╚δ╬─╝■├√:");
  1103.     oneline(24*100+32,12,12,filename1);}
  1104.      }while (fp==NULL);
  1105.    fprintf(fp,"%d\n",left_space);
  1106.    fprintf(fp,"%d\n",page_line);
  1107.    fprstr(fp,50,main_biao);
  1108.    fprintf(fp,"\n");
  1109.    fprstr(fp,50,main_biao1);
  1110.    fprintf(fp,"\n");
  1111.    fprstr(fp,50,assi_biao);
  1112.    fprintf(fp,"\n");
  1113.    fprstr(fp,50,assi_biao1);
  1114.    fprintf(fp,"\n");
  1115.    fprstr(fp,40,left_top);
  1116.    fprintf(fp,"\n");
  1117.    fprstr(fp,40,right_top);
  1118.    fprintf(fp,"\n");
  1119.    fprstr(fp,40,tail_boot);
  1120.    fprintf(fp,"\n");
  1121.    fprintf(fp,"%c%c%c%c\n",main_size,assi_size,text_size,tail_size);
  1122.    fprintf(fp,"%d\n",filectc);
  1123.    for (i=0;i<filectc;i++) {
  1124.       fprstr(fp,31,filename[i]);
  1125.       fprintf(fp,"\n");
  1126.       }
  1127.    if (filectc!=1) {
  1128.       fprstr(fp,46,joinname);
  1129.       fprintf(fp,"\n");
  1130.       }
  1131.    for (i=0;i<80;i++){
  1132.       for (j=311;(j>=0)&&(scr[i][j]==' '||scr[i][j]=='\n'||scr[i][j]=='\0');j--)
  1133.       scr[i][j]='\n';
  1134.       if (scr[i][0]=='\n') continue;
  1135.       for (j=0;j<width;j++) {
  1136.       if (scr[i][j]!='\n')
  1137.          fprintf(fp,"%c",scr[i][j]);
  1138.       else break;
  1139.       }
  1140.       fprintf(fp,"\n");
  1141.       }
  1142.    fprintf(fp,"P\n"); i=0;
  1143.    while (i<count4){
  1144.       if (!streq(scrval[i]," "))
  1145.      fprintf(fp,"%d %d %s\n",scrrow[i],scrcol[i],scrval[i]);
  1146.       i++;
  1147.       }
  1148.     fclose(fp);
  1149. }
  1150.  
  1151. help()
  1152. {
  1153.    clear(1,0,24,79,6,0);
  1154.    setcursor(4,10);
  1155.    printf("⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖");
  1156.    setcursor(5,10);
  1157.    printf("⌐º                  ░ε  ╓·  ╬─  ╝■                        ⌐º");
  1158.    setcursor(6,10);
  1159.    printf("⌐º--------------------------------------------------------⌐º");
  1160.    setcursor(7,10);
  1161.    printf("⌐º    Home ╣Γ▒Ω╥╞╓┴╨╨╩╫               PgUp ╧≥╟░╖¡╥│       ⌐º");
  1162.    setcursor(8,10);
  1163.    printf("⌐º    End  ╣Γ▒Ω╥╞╓┴╨╨╬▓               PgDn ╧≥║≤╖¡╥│       ⌐º");
  1164.    setcursor(9,10);
  1165.    printf("⌐º    íⁿ   ╧≥╔╧╥╞╢»╣Γ▒Ω               í√   ╧≥╫≤╥╞╢»╣Γ▒Ω   ⌐º");
  1166.    setcursor(10,10);
  1167.    printf("⌐º    í·   ╧≥╙╥╥╞╢»╣Γ▒Ω               í²   ╧≥╧┬╥╞╢»╣Γ▒Ω   ⌐º");
  1168.    setcursor(11,10);
  1169.    printf("⌐º    Ctrl-L  ╗¡▒φ╕±╧▀╩▒,╣Γ▒Ω╢¿╬╗   Esc ═╦│÷╡▒╟░▒α╝¡      ⌐º");
  1170.    setcursor(12,10);
  1171.    printf("⌐º    Ctrl-A  ╧≥╫≤╥╞╢»╣Γ▒Ω10┴╨      Tab ╧≥╙╥╥╞╢»╣Γ▒Ω10┴╨  ⌐º");
  1172.    setcursor(13,10);
  1173.    printf("⌐º    Ctrl-D  ╔╛│²▒φ╕±║ß╧▀╩▒,╣Γ▒Ω╢¿╬╗                     ⌐º");
  1174.    setcursor(14,10);
  1175.    printf("⌐º    Ctrl-T  ╔╛│²▒φ╕±╩·╧▀╩▒,╣Γ▒Ω╢¿╬╗                     ⌐º");
  1176.    setcursor(15,10);
  1177.    printf("⌐º    &   ╘┌╡▒╟░╣Γ▒Ω┤ª┤≥╙í▒φ┤∩╩╜╓╡,╙├╗º╜½╩Σ╚δ▒φ┤∩╩╜       ⌐º");
  1178.    setcursor(16,10);
  1179.    printf("⌐º    Ctrl-E  ╔╛│²╡▒╟░'&'▒Ω╝╟╦∙╢╘╙ª╡─▒φ┤∩╩╜               ⌐º");
  1180.    setcursor(17,10);
  1181.    printf("⌐º    Backspace ╔╛│²╡▒╟░╣Γ▒Ω╟░├µ╥╗╫╓╖√                    ⌐º");
  1182.    setcursor(18,10);
  1183.    printf("⌐º    Ins   ▓σ╚δ/╕▓╕╟             Del  ╔╛│²╡▒╟░╫╓╖√       ⌐º");
  1184.    setcursor(19,10);
  1185.    printf("⌐º             ╝ⁿ  ╚╬  ╥Γ  ╝ⁿ  ╝╠  ╨°  ...                ⌐º");
  1186.    setcursor(20,10);
  1187.    printf("⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐");
  1188.    getchb();
  1189.    return(0);
  1190. }
  1191.  
  1192. value_exp()
  1193. {
  1194.    gframe(10,3,13,77,1,white);
  1195. /*   setcursor(10,10);
  1196.    printf("⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖");*/
  1197.    setcursor(11,5);
  1198.    printf("  ╟δ ╩Σ ╚δ ╜½ ┤≥ ╙í ╡─ ▒φ ┤∩ ╩╜ ú║                    ");
  1199. /*   setcursor(12,10);
  1200.    printf("⌐º                                                      ⌐º");
  1201.    setcursor(13,10);
  1202.    printf("⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐");*/
  1203. }
  1204.  
  1205. value_clear()
  1206. {
  1207.    int i,j;
  1208.    clear_win(10,3,13,78,6,0);
  1209.    for (i=10;i<14;i++) {
  1210.        setcursor(i,3);
  1211.        for (j=3;j<78;j++){
  1212.       if (scr[curr+i][curc+j]!='\n')
  1213.          printf("%c",scr[curr+i][curc+j]);
  1214.       else printf(" ");
  1215.       }
  1216.        }
  1217. }
  1218.  
  1219. pri_form(row1,col1,row2,col2)
  1220. int row1,col1;
  1221. int row2,col2;
  1222. {
  1223.     int i;
  1224.     setcursor(row1,col1);
  1225.     printf("⌐│");
  1226.     for (i=0;i<(col2-col1-2)/2;i++)
  1227.        printf("⌐Ñ");
  1228.     printf("⌐╖");
  1229.     for (i=row1+1;i<row2;i++) {
  1230.         setcursor(i,col1);
  1231.         printf("⌐º");
  1232.         setcursor(i,col2);
  1233.         printf("⌐º");
  1234.         }
  1235.     setcursor(row2,col1);
  1236.     printf("⌐╗");
  1237.     for (i=0;i<(col2-col1-2)/2;i++)
  1238.         printf("⌐Ñ");
  1239.     printf("⌐┐");
  1240.     return(0);
  1241. }
  1242. void read_file()
  1243. {
  1244.     int count1;
  1245. /*  int count2;  */
  1246.     int i,j,m,n,hanzi;
  1247.     int logic,cont;
  1248.     char  *helpinf[10];
  1249.     char mid[320],c1,c2;
  1250.     char charc1[200],charc2[200];
  1251.     charc1[0]='\0'; charc2[0]='\0';
  1252.     m=strlen(filename1);
  1253.     filename1[m]='\0';
  1254. /*    strcat(filename1,".s");*/
  1255.     curr=-1; curc=0;
  1256.     setcursor(0,0);
  1257.     for (i=0;i<100;i++)
  1258.        {
  1259.        strcpy(scrval[i],NULL);
  1260.        scrrow[i]=0;
  1261.        scrcol[i]=0;
  1262.        }
  1263.     for (i=0;i<80;i++)
  1264.        {
  1265.        for (j=0;j<width;j++)
  1266.       scr[i][j]='\n';
  1267.        }
  1268.     strcpy(main_biao,NULL); strcpy(assi_biao,NULL);
  1269.     strcpy(main_biao1,NULL); strcpy(assi_biao1,NULL);
  1270.     strcpy(left_top,NULL); strcpy(right_top,NULL);
  1271.     strcpy(tail_boot,NULL); main_size='A';
  1272.     assi_size='A'; tail_size='A'; text_size='A';
  1273.     left_space=0; page_line=45; strcpy(midd_int,"0");
  1274.     for (i=0;i<9;i++) filename[i][0]='\0';
  1275.     strcpy(joinname,NULL); filectc=0;
  1276.     strcpy(midd_int1,"45"); strcpy(midd_int2,NULL);
  1277.     count1=0;   /* count2= -1; */
  1278.     count4=0;
  1279.     if ((stream=fopen(filename1,"r"))!=NULL){
  1280.        fgets(midd_int,4,stream);
  1281.        fgets(midd_int1,4,stream);
  1282.        left_space=atoi(midd_int);
  1283.        page_line=atoi(midd_int1);
  1284.        fgets(main_biao,80,stream);
  1285.        fgets(main_biao1,80,stream);
  1286.        fgets(assi_biao,80,stream);
  1287.        fgets(assi_biao1,80,stream);
  1288.        fgets(left_top,80,stream);       fgets(right_top,80,stream);
  1289.        fgets(tail_boot,80,stream);
  1290.        main_size=fgetc(stream);
  1291.        assi_size=fgetc(stream);
  1292.        text_size=fgetc(stream);
  1293.        tail_size=fgetc(stream);
  1294.        fgetc(stream);
  1295.        fgets(midd_int2,4,stream);
  1296.        filectc=atoi(midd_int2);
  1297.        for (i=0;i<filectc;i++)      fgets(filename[i],31,stream);
  1298.        if (filectc>1) fgets(joinname,80,stream);
  1299. /*       while ((c2=fgetc(stream))!=EOF){
  1300.        if (c2=='P') {fgetc(stream); break;}
  1301.        if (c2!='\n')
  1302.               scr[count1][++count2]=c2;
  1303.        if (c2=='\n') {
  1304.          count1++;count2= -1;}
  1305.        }*/
  1306.        while (fgets(mid,320,stream)!=0){
  1307.        if (mid[0]=='P') break;
  1308.        i=0;
  1309.        while (mid[i]!='\0') scr[count1][i++]=mid[i];
  1310.        count1++;
  1311.        }
  1312.        while (fgets(mid,320,stream)!=NULL){
  1313. /*      i=0;
  1314.       while ((c2=fgetc(stream))!=EOF){
  1315.       if (c2!='\n') {mid[i++]=c2;continue;}
  1316.       else {mid[i]='\0';mid[i+1]='\n';i=0;}*/
  1317.       charc1[0]='\0'; charc2[0]='\0';
  1318. /*      printf("%s",mid); getchb();*/
  1319.       sscanf(mid,"%d %d %s %s %s\n",\
  1320.       &scrrow[count4],&scrcol[count4],scrval[count4],charc1,charc2);
  1321.       if (charc1[0]!=0) {
  1322.          strcat(scrval[count4]," "); strcat(scrval[count4],charc1);}
  1323.       if (charc2[0]!=0) {
  1324.          strcat(scrval[count4]," "); strcat(scrval[count4],charc2);}
  1325.       count4++;
  1326.       if (count4>99) break;
  1327.       }
  1328.     }
  1329.     fclose(stream);
  1330. }
  1331.  
  1332.  
  1333. disk_oper()
  1334. {
  1335.    char oper_type[3][13]={"╕─▒Σ╣ñ╫≈┤┼┼╠",
  1336.               "╕─▒Σ╣ñ╫≈─┐┬╝",
  1337.               "╡≈╚δ╕±╩╜╬─╝■",
  1338.              };
  1339.    int i,j,cont;
  1340.    char path[20],path1[22];
  1341.    gframe(1,5,5,19,1,white);
  1342.    for (i=0;i<3;i++)
  1343.        {
  1344.        setcursor(2+i,7);
  1345.        color_puts(oper_type[i],white);
  1346.        }
  1347.    i=0;
  1348.    setcursor(2,7);
  1349.    color_puts(oper_type[0],yellow | blue_back);
  1350.    cont=getchb();
  1351.    while ((cont!=27)&&(cont!=275)&&(cont!=277))
  1352.       {
  1353.       switch(cont)
  1354.      {
  1355.      case 272:
  1356.           i=(i==0)?2:i-1;
  1357.           break;
  1358.      case 280:
  1359.           i=(i==2)?0:i+1;
  1360.           break;
  1361.      case 13 : gframe(i+3,7,i+5,29,1,white);
  1362.            setcursor(i+3,13);
  1363.            color_puts(oper_type[i],white);
  1364.            setcursor(i+4,11);
  1365.            switch(i)
  1366.            {
  1367.            case 0:setcursor(i+4,11);
  1368.               strcpy(path,NULL);
  1369.               oneline((i+5)*100+12,3,3,path);
  1370.               if (path[0]!=NULL) system(path);
  1371.               break;
  1372.            case 1:strcpy(path1,"cd ");
  1373.               setcursor(i+4,9);
  1374.               strcpy(path,NULL);
  1375.               oneline((i+5)*100+10,20,20,path);
  1376.               strcat(path1,path);
  1377.               system(path1);
  1378.               break;
  1379.            case 2:
  1380.               setcursor(i+4,11);
  1381.               oneline((i+5)*100+10,20,20,filename1);
  1382.               read_file();
  1383.               break;
  1384.            }
  1385.            clear_win(1,0,20,79,6,0);
  1386.            gframe(1,5,5,19,1,white);
  1387.            for (j=0;j<3;j++)
  1388.                {
  1389.                setcursor(2+j,7);
  1390.                color_puts(oper_type[j],white);
  1391.                }
  1392.      }
  1393.       clear_win(1,0,20,79,6,0);
  1394.       gframe(1,5,5,19,1,white);
  1395.       for (j=0;j<3;j++)
  1396.       {
  1397.       setcursor(2+j,7);
  1398.       color_puts(oper_type[j],white);
  1399.       }
  1400.       setcursor(2+i,7);
  1401.       color_puts(oper_type[i],yellow | blue_back);
  1402.       cont=getchb();
  1403.       }
  1404.    clear_win(1,0,20,79,6,0);
  1405.    if (cont==275) return(-1);     /*Left Arrow*/
  1406.    if (cont==277) return(1);      /*Right Arrow*/
  1407.    return(0);
  1408. }
  1409.