home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / programming / msdos / xa214f.lzh / xa214f / misc / mkrom.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1997-01-03  |  2KB  |  93 lines

  1. #!/BIN/BASH
  2. #
  3. #    XA65 - 6502 CROSS ASSEMBLER AND UTILITY SUITE
  4. #    MKROM.SH - ASSEMBLE SEVERAL 'ROMABLE' FILES INTO ONE BINARY
  5. #    cOPYRIGHT (c) 1997 aNDR{$e9} fACHAT (A.FACHAT@PHYSIK.TU-CHEMNITZ.DE)
  6. #
  7. #    tHIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
  8. #    IT UNDER THE TERMS OF THE gnu gENERAL pUBLIC lICENSE AS PUBLISHED BY
  9. #    THE fREE sOFTWARE fOUNDATION; EITHER VERSION 2 OF THE lICENSE, OR
  10. #    (AT YOUR OPTION) ANY LATER VERSION.
  11. #
  12. #    tHIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
  13. #    BUT without any warranty; WITHOUT EVEN THE IMPLIED WARRANTY OF
  14. #    merchantability OR fitness for a particular purpose.  sEE THE
  15. #    gnu gENERAL pUBLIC lICENSE FOR MORE DETAILS.
  16. #
  17. #    yOU SHOULD HAVE RECEIVED A COPY OF THE gnu gENERAL pUBLIC lICENSE
  18. #    ALONG WITH THIS PROGRAM; IF NOT, WRITE TO THE fREE sOFTWARE
  19. #    fOUNDATION, iNC., 675 mASS aVE, cAMBRIDGE, ma 02139, usa.
  20. #
  21.  
  22. xa="../XA"
  23. file=../FILE65
  24.  
  25. START=32768
  26. ENDE=65536
  27. ROMFILE=ROM65
  28.  
  29. NEXT=$[ START + 2 ];
  30. PARS="-a $NEXT"
  31.  
  32. UMASK 077
  33.  
  34. TMP1=/TMP/MKROM65.SH.$$.A
  35. TMP2=/TMP/MKROM65.SH.$$.B
  36. TMP3=/TMP/MKROM65.SH.$$.C
  37.  
  38. ECHO -E "#INCLUDE <STDIO.H>\NVOID MAIN(INT ARGC, CHAR *ARGV[]) {$7b} PRINTF(\"%C%C\",ATOI(ARGV[1])&255,(ATOI(ARGV[1])/256)&255);{$7d}"  \
  39. > $TMP3;
  40. CC $TMP3 -O $TMP2
  41.  
  42. WHILE [ $# -NE 0 ]; DO 
  43.   CASE $1 IN
  44.   -a)# GET START ADDRESS
  45. START=$[ $2 ];
  46. SHIFT
  47. ;;
  48.   -e)# GET END ADDRESS
  49. ENDE=$[ $2 ];
  50. SHIFT
  51. ;;
  52.   -r)   # GET rom FILENAME
  53. ROMFILE=$2;
  54. SHIFT
  55. ;;
  56.   -o)# XA OPTIONS
  57. xa="$xa $2";
  58. SHIFT
  59. ;;
  60.   -s)   # SEGMENT ADDRESSES - IN XA OPTION FORMAT
  61. PARS="$PARS $2";
  62. SHIFT
  63. ;;
  64.   *)
  65. BREAK;
  66. ;;
  67.   ESAC;
  68.   SHIFT
  69. DONE
  70.  
  71. #GET FILE LIST 
  72. LIST="$*"
  73.  
  74.  
  75. ECHO -N > $ROMFILE
  76.  
  77. FOR I IN $LIST; DO 
  78.   #ECHO "NEXT=$NEXT, START=$START, PARS=$PARS"
  79.   #ECHO "CMD= ${$7b}xa{$7d} -r $PARS -O $TMP1 $I"
  80.   $xa -r $PARS -O $TMP1 $I
  81.   PARS={$60}$file -A 2 -p $TMP1{$60};
  82.   NEXT={$60}$file -a 0 $TMP1{$60};
  83.  
  84.   $TMP2 $NEXT >> $ROMFILE
  85.   CAT $TMP1 >> $ROMFILE;
  86.  
  87. DONE;
  88.  
  89. $TMP2 65535 >> $ROMFILE
  90.  
  91. RM -F $TMP1 $TMP2 $TMP3
  92.  
  93.