home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 471 / rccl183 < prev    next >
Text File  |  1987-03-02  |  946b  |  51 lines

  1. /*
  2.  *      mkabs - make abs loader file "a.lda" from "a.out"
  3.  *
  4.  *     Jul 19 1982 modified Hayward : mkabs <inputfile >outputfile
  5.  *     can know run on a VAX
  6.  */
  7.  
  8. #include <stdio.h>
  9.  
  10. unsigned short header[8];
  11.  
  12. struct {
  13.     unsigned short start,
  14.                count,
  15.                addr;
  16.     char           data[512];
  17.     char           check;
  18. } al = { 1 };
  19.  
  20. struct {
  21.     unsigned short start,
  22.                count,
  23.                addr;
  24.     char           check;
  25. } go = { 1, 6, 02000, 0 } ;
  26.  
  27. main()
  28. {
  29.     register char *cp;
  30.     register short i,n,bc;
  31.  
  32.     read(0,header,sizeof(header));
  33.     if(header[0] != 0407 || !header[7]) {
  34.         fprintf(stderr,"mkabs : bad input\n");
  35.         exit(1);
  36.     }
  37.     al.addr = 0;
  38.     while((bc = read(0,al.data,sizeof(al.data))) > 0) {
  39.         al.count = bc + 6;
  40.         n = al.count;
  41.         cp =(char*) &al;  i = 0;
  42.         while(n--)
  43.               i += *cp++;
  44.         *cp = -i;
  45.         write(1,&al,al.count+1);
  46.         al.addr += bc;
  47.     }
  48.     write(1,&go,sizeof(go));
  49.     exit(0);
  50. }
  51.