home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_18_1987_Transactor_Publishing.d64 / seq_usr.c < prev    next >
Text File  |  2023-02-26  |  4KB  |  192 lines

  1. /*program to convert Super c         */
  2. /*files to/from SEQ files            */
  3. /*converting filetypes               */
  4. /*and control codes                  */
  5.  
  6. /*#define POWER*/
  7. #ifdef POWER
  8. #include "stdio.h"
  9. #define CLR '\223'
  10. #else
  11. #include "h:stdio.h"
  12. #endif
  13.  
  14. char inname[25];
  15. char outname[25];
  16. int drivin;
  17. int drivout;
  18. #ifdef POWER
  19.    FILE inchan;
  20.    FILE outchan;
  21. #else
  22. file inchan;
  23. file outchan;
  24. #endif
  25.  
  26. main()
  27. {SHIFT-+}
  28.    void fast();
  29.    int menu();
  30.  
  31.    int choice;
  32.    int status=0;
  33.    char inbuff[255];
  34.    char outbuff[255];
  35.  
  36.    while((choice=menu())!='0')
  37.    {SHIFT-+}
  38.        choice=(choice=='1')?1:2;
  39.        putchar(CLR);
  40. #ifdef POWER
  41.            getchar();
  42. #endif
  43.        namefile("Source ",inname);
  44.        drivin=drive("Source ");
  45.        namefile("Destination ",outname);
  46.        drivout=drive("Destination ");
  47.        modnames( choice );
  48. #ifdef POWER
  49.             inchan=fopen(inname,"r");
  50.             outchan=fopen(outname,"w");
  51. #else
  52.             inchan=open(drivin,2,inname);
  53.             outchan=open(drivout,3,outname);
  54. #endif
  55. putchar(CLR);
  56. printf("\n\n\11\11\11\11WORKING!");
  57. status=0;
  58.  
  59.        while(!status) /* read a line and convert it */
  60.        {SHIFT-+}
  61.            fgets(inbuff, 254, inchan);
  62. #ifdef POWER
  63.                status=feof(inchan);
  64. #else
  65.                status=EOF;
  66. #endif
  67.            convert(choice,inbuff,outbuff);
  68.            fputs(outbuff,outchan);
  69.        {SHIFT--}
  70.  
  71.        close(inchan);
  72.        close(outchan);
  73.    {SHIFT--}
  74. {SHIFT--}
  75.  
  76. modnames( choice ) /* modify filename for */
  77. int choice;        /*read/write usr/seq   */
  78. {SHIFT-+}
  79.    switch (choice)
  80.    {SHIFT-+}
  81.        case 1 :
  82.            strcat(inname, ",u,r");
  83.            strcat(outname, ",s,w");
  84.            break;
  85.        case 2 :
  86.            strcat(inname, ",s,r");
  87.            strcat(outname, ",u,w");
  88.            break;
  89.    {SHIFT--}
  90. {SHIFT--}
  91.  
  92. namefile(filetype,name)         /* input filename          */
  93. char *filetype;
  94. char *name;                     /*pass pointer to filename */
  95. {SHIFT-+}
  96.    printf("\n%sfile name: ",filetype);
  97.    gets(name,16);
  98.                                 /* Super C gets() fix*/
  99.    if (*(name+(strlen(name)-1))=='\n')
  100.      *(name+(strlen(name)-1))='\0';
  101. {SHIFT--}
  102.  
  103. int drive(direction)             /*input/output drive  */
  104. char *direction;
  105. {SHIFT-+}
  106.    char key;
  107.    do
  108.    {SHIFT-+}
  109.       printf("\n%sdrive a, b, or h? ",direction);
  110.       key=getchar();
  111.       putchar (key);
  112.    {SHIFT--}
  113.    while((key!='a')&&(key!='b')&&(key!='h'));
  114.  
  115.    return(key=='a')?8:(key=='b')?9:15;
  116. {SHIFT--}
  117.  
  118. int menu()
  119. {SHIFT-+}
  120.    int choice;
  121.    do
  122.    {SHIFT-+}
  123.        printf("%c\n",CLR);
  124.        printf(" 1. Super C to SEQuential\n");
  125.        printf(" 2. SEQuential to Super C\n\n");
  126.        printf(" 0. EXIT");
  127.        choice=getchar();
  128.    {SHIFT--}
  129.    while((choice!='0')&&(choice!='1')&&(choice!='2'));
  130.    return choice;
  131. {SHIFT--}
  132.  
  133. convert(choice, inbuff, outbuff)
  134. int choice;
  135. char inbuff[];
  136. char outbuff[];
  137. {SHIFT-+}
  138.  
  139.    static int linenum=0;
  140.    int inndex=0;
  141.    int outndex=0;
  142.  
  143.    if(linenum==0)
  144.        switch(choice)
  145.        {SHIFT-+}
  146.            case 1:
  147.                inndex+=3;
  148.                linenum=1;
  149.                copybuff(inbuff, outbuff,inndex, outndex);
  150.                break;
  151.  
  152.            case 2:
  153.                outbuff[0]=133;
  154.                outbuff[1]=129;
  155.                outbuff[2]=5;
  156.                outndex+=3;
  157.                linenum=1;
  158.                copybuff( inbuff, outbuff, inndex, outndex );
  159.                break;
  160.        {SHIFT--}
  161.    else
  162.        switch(choice)
  163.        {SHIFT-+}
  164.            case 1:
  165.                inndex++;
  166.                copybuff(inbuff, outbuff, inndex, outndex);
  167.                break;
  168.  
  169.            case 2:
  170.                outbuff[0]=5;
  171.                outndex++;
  172.                copybuff(inbuff, outbuff, inndex, outndex);
  173.                break;
  174.        {SHIFT--}
  175. {SHIFT--}
  176.  
  177. copybuff(inbuff, outbuff, inndex, outndex )
  178. char inbuff[];
  179. char outbuff[];
  180. int inndex;
  181. int outndex;
  182. {SHIFT-+}
  183.    do
  184.    {SHIFT-+}
  185.        outbuff[   outndex ]=inbuff[  inndex ];
  186.        inndex++;
  187.        outndex++;
  188.    {SHIFT--}
  189.    while(inndex<=strlen(inbuff));
  190. {SHIFT--}
  191.  
  192.  
  193.