123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #!/bin/bash
- # script for compiling a C program for BDOS, and upload it to the FPGC over the network, whithout running it
- if [ "$1" == "" ]
- then
- echo "No program to compile given"
- exit 1
- fi
- # Default output filename is filename of first argument
- OUTFILE=$(basename $1)
- # Remove file extension
- OUTFILE=${OUTFILE%.*}
- if [ "$2" != "" ]
- then
- OUTFILE=$2
- fi
- echo "Processing: $1"
- # compile and upload
- echo "Compiling C code to B32P ASM"
- if (./bcc --bdos $1 ../Assembler/code.asm) # compile c code with BDOS flag and write compiled code to code.asm in Assembler folder
- then
- echo "C code successfully compiled"
- echo "Assembling B32P ASM code"
- if (cd ../Assembler && python3 Assembler.py bdos 0x400000 -O > ../Programmer/code.list) # assemble with offset for BDOS and write to code.list in Programmer folder
- then
- echo "B32P ASM code successfully assembled"
- # convert list to binary files and upload to FPGC
- (cd ../Programmer && bash compileROM.sh noPadding && cp code.bin $OUTFILE && echo "Uploading $OUTFILE to FPGC over Network" && python3 netUpload.py $OUTFILE && rm $OUTFILE)
- else # assemble failed, run again to show error
- echo "Failed to assemble B32P ASM code"
- cd ../Assembler && python3 Assembler.py bdos 0x400000 -O
- fi
- else # compile failed
- echo "Failed to compile C code"
- fi
|