home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / asm / z8e-30.ark / MKSYM.C < prev    next >
Encoding:
C/C++ Source or Header  |  1988-11-17  |  1.5 KB  |  54 lines

  1. /*==========================================================================
  2.  
  3.                 m k s y m
  4.                 =========
  5.  
  6.     Reads a symbol file generated by the Hi-Tech C linker and
  7.     generates a symbol file compatible with the Z8E debugger.
  8.  
  9.     Default title for input file is L.SYM.  Output file has the
  10.     same name as the input file.  A different input (and output)
  11.     file name may be specified on the command line.
  12.  
  13.     mksym            reformats L.SYM
  14.     mksym abc.sym        reformats ABC.SYM
  15.  
  16. ==========================================================================*/
  17.  
  18. #include <stdio.h>
  19.  
  20. unsigned char sym[81];
  21. unsigned short int addr;
  22. unsigned char fName[20] = {"L.SYM"};
  23. unsigned char *fnp = fName;
  24.  
  25. FILE *fin, *fout;
  26.  
  27. main(argc,argv)
  28. short int argc;
  29. unsigned char *argv[];
  30. {
  31.    unsigned short int symbols = 0;
  32.    fprintf(stderr,"Convert Hi-Tech C symbol file for use with Z8E\n");
  33.    fprintf(stderr,"A public domain program by Jonathan Saxton\n\n");
  34.    if (argc > 1)
  35.       fnp = argv[1];
  36.    if (((fin=fopen(fnp,"r")) == NULL) ||
  37.        ((fout=fopen("L.$$$","w")) == NULL))
  38.       {
  39.      printf("Either could not find input file %s or\ncould not create temporary output file L.$$$.", fnp);
  40.      exit(1);
  41.       }
  42.    while(fscanf(fin,"%x %s",&addr,&sym[0]) == 2)
  43.       {
  44.          fprintf(fout,"%04x %s\n",addr,&sym[0]);
  45.      fprintf(stderr,"%04x %s\n",addr,&sym[0]);
  46.      ++symbols;
  47.       }
  48.    fclose(fin);
  49.    fclose(fout);
  50.    unlink(fnp);
  51.    rename("L.$$$",fnp);
  52.    fprintf(stderr,"\n%u symbols",symbols);
  53. }
  54.