diff --git a/Asuro.iso b/Asuro.iso index 880b98fa..5d06dad3 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/IMAGE.img b/IMAGE.img new file mode 100644 index 00000000..3788190f Binary files /dev/null and b/IMAGE.img differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 1258688e..808f4108 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/checksums.md5 b/checksums.md5 index f639aead..dec6d2dc 100644 --- a/checksums.md5 +++ b/checksums.md5 @@ -8,7 +8,7 @@ fedbc69eb42fb2bd685aa3c98732dd24 src//gdt.pas 1e96141f52b3249777c4c561f74486b2 src//idt.pas ff963c65c48984566b201003eec8ce47 src//irq.pas ab3f144c41b5e718b4575eb4ef51aa1b src//isr.pas -c2440677eafe5f9fbfaf74ca56b86d49 src//kernel.pas +042229fed0d637a745fd10d2b658e678 src//kernel.pas 375a0beff3986ead4e9275b2dfa0ec7d src//lmemorymanager.pas dce0fec2a2bb8dde7dced3598a613318 src//pmemorymanager.pas 2517817ea68f5797b5c10926dfaf497e src//processloader.pas diff --git a/compile.sh b/compile.sh index 69f067a3..d060781e 100755 --- a/compile.sh +++ b/compile.sh @@ -107,5 +107,6 @@ cp Asuro.iso release/Asuro.iso checksum=$(md5sum release/Asuro.iso | awk '{print $1}') wget -q https://img.shields.io/badge/checksum-$checksum-important.svg -O release/checksum.svg cd release +touch * svn commit -m "Versioning Auto-Commit" cd .. diff --git a/compile.sh~ b/compile.sh~ new file mode 100755 index 00000000..69f067a3 --- /dev/null +++ b/compile.sh~ @@ -0,0 +1,111 @@ +#!/bin/sh +ERRCOUNT=0 +echo " " +echo "=======================" +echo "== ASURO COMPILATION ==" +echo "=======================" +echo " " +echo "Checking out latest VM Source..." +echo " " +./updatevm.sh +echo " " +echo "Compiling ASM Stub..." +echo " " +rm lib/* + +nasm -f elf src/stub/stub.asm -o lib/stub.o +if [ $? -ne 0 ] +then + echo "Failed to compile stub!" + ERRCOUNT=$((ERRCOUNT+1)) +else + echo "Success." +fi + +echo " " +echo "=======================" +echo " " + +./versioning.sh + +if [ "$1" = "-d" ] +then + echo "Compiling Debug FPC Sources..." + echo " " + fpc -Aelf -gw -n -va -O3 -Op3 -Si -Sc -Sg -Xd -CX -XXs -CfSSE -CfSSE2 -Rintel -Pi386 -Tlinux -FElib/ -Fusrc/* -Fusrc/driver/* src/kernel.pas +else + echo "Compiling FPC Sources..." + echo " " + fpc -Aelf -gw -n -va -O3 -Op3 -Si -Sc -Sg -Xd -CX -XXs -CfSSE -CfSSE2 -Rintel -Pi386 -Tlinux -FElib/ -Fusrc/* -Fusrc/driver/* -Fusrc/driver/net/* src/kernel.pas +fi + +if [ $? -ne 0 ] +then + echo "Failed to compile FPC Sources!" + ERRCOUNT=$((ERRCOUNT+1)) +else + echo "Success." +fi + +echo " " +echo "=======================" +echo " " +echo "Linking..." +echo " " +objstring=""; +for object in `find lib/ -name "*.o"`; do + if [ "$object" != "lib/stub.o" ] + then + objstring=$objstring$object" "; + fi +done; +objstring=lib/stub.o" "$objstring +echo "Object Files: "$objstring +echo " " +ld -m elf_i386 -s --gc-sections -Tlinker.script -o bin/kernel.bin $objstring +if [ $? -ne 0 ] +then + echo "Failed linking!" + ERRCOUNT=$((ERRCOUNT+1)) +else + echo "Success." +fi + +echo " " +echo "=======================" +echo " " +echo "Creating ISO..." +echo " " +cp bin/kernel.bin iso/boot/asuro.bin +grub-mkrescue -o Asuro.iso iso +if [ $? -ne 0 ] +then + echo "Failed to create ISO!" + ERRCOUNT=$((ERRCOUNT+1)) +else + echo "Success." +fi + +echo " " +echo "=======================" +echo " " +if [ "$ERRCOUNT" -ne "0" ] +then + echo "$ERRCOUNT Errors Occurred, please review." + wget -q https://img.shields.io/badge/build-failed-red.svg -O release/build.svg +else + echo "No errors." + wget -q https://img.shields.io/badge/build-succeeded-green.svg -O release/build.svg +fi +echo " " +echo "=======================" +echo " " + +cp Asuro.iso ~/host/Asuro.iso +cp Asuro.iso release/Asuro.iso + +checksum=$(md5sum release/Asuro.iso | awk '{print $1}') +wget -q https://img.shields.io/badge/checksum-$checksum-important.svg -O release/checksum.svg +cd release +svn commit -m "Versioning Auto-Commit" +cd .. diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 1258688e..808f4108 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 36f1989d..d0a3a7cf 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index aa579459..3a10d0ab 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 8bffd398..8ce922ce 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 26a41310..b2b9389e 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 6413f5b5..15a56f7c 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/shell.ppu b/lib/shell.ppu index 78d161e3..fc788728 100644 Binary files a/lib/shell.ppu and b/lib/shell.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index db04de3e..a6e432f6 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/src/kernel.pas b/src/kernel.pas index 46bc67d3..0ac5bc58 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -114,7 +114,8 @@ begin terminal.registerCommand('BSOD', @terminal_command_bsod, 'Force a Panic Screen.'); console.writestringln('Booting Asuro...'); - + + console.writestringln('Checking for Multiboot Compliance'); { Check for Multiboot } if (multibootmagic <> MULTIBOOT_BOOTLOADER_MAGIC) then begin console.setdefaultattribute(console.combinecolors($F800, $0000)); diff --git a/versioning.sh b/versioning.sh index b242f0ee..94645dd9 100755 --- a/versioning.sh +++ b/versioning.sh @@ -46,7 +46,7 @@ echo "end." >> $outfile echo "Generating release info..." wget -q https://img.shields.io/badge/version-$major.$minor.$sub--$revision$release-blue.svg -O release/version.svg wget -q https://img.shields.io/badge/revision-$revision-blue.svg -O release/revision.svg -wget -q https://img.shields.io/badge/release-$release-blue.svg -O release/version.svg +wget -q https://img.shields.io/badge/release-$release-blue.svg -O release/release.svg wget -q https://img.shields.io/badge/lines-$linecount-blueviolet.svg -O release/lines.svg wget -q https://img.shields.io/badge/files-$sourcecount-blueviolet.svg -O release/files.svg wget -q https://img.shields.io/badge/drivers-$drivercount-blueviolet.svg -O release/drivers.svg @@ -55,4 +55,4 @@ wget -q https://img.shields.io/badge/NASM_version-$nasmversion-lightgrey.svg -O wget -q https://img.shields.io/badge/MAKE_version-$makeversion-lightgrey.svg -O release/makeversion.svg wget -q https://img.shields.io/badge/release_date-$compiledate-lightgrey.svg -O release/date.svg wget -q https://img.shields.io/badge/fingerprint-$checksum-important.svg -O release/fingerprint.svg -echo "Done versioning." \ No newline at end of file +echo "Done versioning." diff --git a/versioning.sh~ b/versioning.sh~ new file mode 100755 index 00000000..b242f0ee --- /dev/null +++ b/versioning.sh~ @@ -0,0 +1,58 @@ +#!/bin/bash +echo "Generating Versioning Info..." +./checksum.sh +outfile="src/include/asuro.pas" +file="version" +while IFS=: read -r line;do + major=$(echo $line | awk '{print $1}') + minor=$(echo $line | awk '{print $2}') + sub=$(echo $line | awk '{print $3}') + release=$(echo $line | awk '{print $4}') +done <"$file" +linecount=$(./loc.sh | awk '{print $1}') +sourcecount=$(find src -type f | wc -l) +drivercount=$(find src/driver -type f | wc -l) +revision=$(svn info | grep Revision | awk '{print $2}') +fpcversion=$(fpc -h | grep -m 1 version | awk '{print $5}') +makeversion=$(make -v | grep GNU | awk '{print $3}') +nasmversion=$(nasm -v | awk '{print $3'}) +compiledate=$(date +"%d/%m/%y") +compiletime=$(date +"%T") +checksum=$(md5sum checksums.md5 | awk '{print $1}') +echo "unit asuro;" > $outfile +echo " " >> $outfile +echo "interface" >> $outfile +echo " " >> $outfile +echo "const" >> $outfile +echo " VERSION = '$major.$minor.$sub-$revision$release';" >> $outfile +echo " VERSION_MAJOR = '$major';" >> $outfile +echo " VERSION_MINOR = '$minor';" >> $outfile +echo " VERSION_SUB = '$sub';" >> $outfile +echo " REVISION = '$revision';" >> $outfile +echo " RELEASE = '$release';" >> $outfile +echo " LINE_COUNT = $linecount;" >> $outfile +echo " FILE_COUNT = $sourcecount;" >> $outfile +echo " DRIVER_COUNT = $drivercount;" >> $outfile +echo " FPC_VERSION = '$fpcversion';" >> $outfile +echo " NASM_VERSION = '$nasmversion';" >> $outfile +echo " MAKE_VERSION = '$makeversion';" >> $outfile +echo " COMPILE_DATE = '$compiledate';" >> $outfile +echo " COMPILE_TIME = '$compiletime';" >> $outfile +echo " CHECKSUM = '$checksum';" >> $outfile +echo " " >> $outfile +echo "implementation" >> $outfile +echo " " >> $outfile +echo "end." >> $outfile +echo "Generating release info..." +wget -q https://img.shields.io/badge/version-$major.$minor.$sub--$revision$release-blue.svg -O release/version.svg +wget -q https://img.shields.io/badge/revision-$revision-blue.svg -O release/revision.svg +wget -q https://img.shields.io/badge/release-$release-blue.svg -O release/version.svg +wget -q https://img.shields.io/badge/lines-$linecount-blueviolet.svg -O release/lines.svg +wget -q https://img.shields.io/badge/files-$sourcecount-blueviolet.svg -O release/files.svg +wget -q https://img.shields.io/badge/drivers-$drivercount-blueviolet.svg -O release/drivers.svg +wget -q https://img.shields.io/badge/FPC_version-$fpcversion-lightgrey.svg -O release/fpcversion.svg +wget -q https://img.shields.io/badge/NASM_version-$nasmversion-lightgrey.svg -O release/nasmversion.svg +wget -q https://img.shields.io/badge/MAKE_version-$makeversion-lightgrey.svg -O release/makeversion.svg +wget -q https://img.shields.io/badge/release_date-$compiledate-lightgrey.svg -O release/date.svg +wget -q https://img.shields.io/badge/fingerprint-$checksum-important.svg -O release/fingerprint.svg +echo "Done versioning." \ No newline at end of file