home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / SUPRCSEQ.ARC / SUPRCSEQ.C
Encoding:
C/C++ Source or Header  |  2019-04-13  |  3.0 KB  |  169 lines

  1. /* SUPERC-SEQ.C
  2.  * PROGRAM TO CONVERT ╙UPER ├
  3.  * FILES TO/FROM ╙┼╤ FILES
  4.  * CONVERTING FILETYPES
  5.  * AND CONTROL CODES
  6.  *
  7.  * ┴DAM ╚ERST
  8.  * ╘╚┼ ╘╥┴╬╙┴├╘╧╥ ═AR 87:╓OL 7,#05
  9.  */
  10.  
  11. #DEFINE ╨╧╫┼╥ /* UNCOMMENT FOR ├ ╨OWER ├ */
  12. #IFDEF ╨╧╫┼╥
  13. #INCLUDE "STDIO.H"
  14. #DEFINE ├╠╥ '\223'
  15. #ELSE
  16. #INCLUDE "H:STDIO.H"
  17. #ENDIF
  18.  
  19. CHAR INNAME[25];
  20. CHAR OUTNAME[25];
  21.  
  22. #IFDEF ╨╧╫┼╥
  23. ╞╔╠┼ INCHAN;
  24. ╞╔╠┼ OUTCHAN;
  25. #ELSE
  26. FILE INCHAN;
  27. FILE OUTCHAN;
  28. #ENDIF
  29.  
  30. MAIN()
  31.  INT MENU();
  32.  
  33.  INT CHOICE;
  34.  INT STATUS = 0;
  35.  CHAR INBUFF[255];
  36.  CHAR OUTBUFF[255];
  37.  
  38.  WHILE((CHOICE = MENU()) != '0')
  39.  █
  40.   CHOICE = (CHOICE == '1') ? 1 : 2;
  41.   PUTCHAR(├╠╥);
  42. #IFDEF ╨╧╫┼╥
  43.   GETCHAR();
  44. #ENDIF
  45.   NAMEFILE("╙OURCE ",INNAME);
  46.   NAMEFILE("─ESTINATION ",OUTNAME);
  47.   MODNAMES(CHOICE);
  48. #IFDEF ╨╧╫┼╥
  49.   INCHAN = FOPEN(INNAME,"R");
  50.   OUTCHAN = FOPEN(OUTNAME,"W");
  51. #ELSE
  52.   INCHAN = OPEN(8,2,INNAME);
  53.   OUTCHAN = OPEN(8,3,OUTNAME);
  54. #ENDIF
  55. STATUS = 0;
  56.   WHILE(!STATUS) /* READ A LINE AND CONVERT IT */
  57.   █
  58.    FGETS(INBUFF,254,INCHAN);
  59. #IFDEF ╨╧╫┼╥
  60.    STATUS = FEOF(INCHAN);
  61. #ELSE
  62.    STATUS = ┼╧╞;
  63. #ENDIF
  64.    CONVERT(CHOICE,INBUFF,OUTBUFF);
  65.    FPUTS(OUTBUFF,OUTCHAN);
  66.    PRINTF("\N%S",OUTBUFF);
  67.   ▌
  68.   CLOSE(INCHAN);
  69.   CLOSE(OUTCHAN);
  70.  ▌
  71.  
  72. MODNAMES(CHOICE)  /* MODIFY FILENAME FOR */
  73. INT CHOICE;       /* READ/WRITE USR/SEQ */
  74.  SWITCH(CHOICE)
  75.  █
  76.   CASE 1:
  77.    STRCAT(INNAME,",U,R");
  78.    STRCAT(OUTNAME,",S,W");
  79.    BREAK;
  80.   CASE 2:
  81.    STRCAT(INNAME,",S,R");
  82.    STRCAT(OUTNAME,",U,W");
  83.    BREAK;
  84.  ▌
  85.  
  86. NAMEFILE(FILETYPE,NAME)  /* INPUT FILENAME */
  87. CHAR *FILETYPE;
  88. CHAR *NAME;    /* PASS POINTER TO FILENAME */
  89.  PRINTF("\N%SFILE NAME: ",FILETYPE);
  90.  GETS(NAME,16);
  91.  /* ╙UPER ├ GETS() FIX */
  92.  IF(*(NAME + (STRLEN(NAME) - 1)) == '\N')
  93.   *(NAME + (STRLEN(NAME) - 1)) = '\0';
  94.  
  95. MENU()
  96.  INT CHOICE;
  97.  DO
  98.  █
  99.   PRINTF("%C\N",├╠╥);
  100.   PRINTF(" 1. ╙UPER ├ TO ╙EQUENTIAL\N");
  101.   PRINTF(" 2. ╙EQUENTIAL TO ╙UPER ├\N\N") P╔╠|0. ┼╪╔╘ ");
  102.   CHOICE = GETCHAR();
  103.  ▌ WHILE((CHOICE != '0') && (CHOICE != '1') && (CHOICE != '2'));
  104.  RETURN CHOICE;
  105.  
  106. CONVERT(CHOICE,INBUFF,OUTBUFF)
  107. INT CHOICE;
  108. CHAR INBUFF[];
  109. CHAR OUTBUFF[];
  110.  STATIC INT LINENUM = 0;
  111.  INT INNDEX = 0;
  112.  INT OUTNDEX = 0;
  113.  
  114.  IF(LINENUM == 0)
  115.   SWITCH(CHOICE)
  116.   █
  117.    CASE 1:
  118.     INNDEX += 3;
  119.     LINENUM = 1;
  120.     COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
  121.     BREAK;
  122.    CASE 2:
  123.     OUTBUFF[0] = 133;
  124.     OUTBUFF[1] = 129;
  125.     OUTBUFF[2] = 5;
  126.     OUTNDEX += 3;
  127.     LINENUM = 1;
  128.     COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
  129.     BREAK;
  130.   ▌
  131.  ELSE
  132.   SWITCH(CHOICE)
  133.   █
  134.    CASE 1:
  135.     INNDEX++;
  136.     COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
  137.     BREAK;
  138.    CASE 2:
  139.     OUTBUFF[0] = 5;
  140.     OUTNDEX++;
  141.     COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
  142.     BREAK;
  143.   ▌
  144.  
  145. COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX)
  146. CHAR INBUFF[];
  147. CHAR OUTBUFF[];
  148. INT INNDEX;
  149. INT OUTNDEX;
  150.  DO
  151.  █
  152.   OUTBUFF[OUTNDEX] = INBUFF[INNDEX];
  153.   INNDEX++;
  154.   OUTNDEX++;
  155.  ▌ WHILE(INNDEX <= STRLEN(INBUFF));
  156.  
  157.