Compare commits
32
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
837d69a44b | ||
|
|
f0d5eb21f1 | ||
|
|
07e9095582 | ||
|
|
72769fbef7 | ||
|
|
95599c0e7c | ||
|
|
fcaafa0d12 | ||
|
|
e490b95f1d | ||
|
|
b601080960 | ||
|
|
27177979a2 | ||
|
|
f88a282893 | ||
|
|
ff4c597ff3 | ||
|
|
24c371cab1 | ||
|
|
7588a4c9cb | ||
|
|
5cb415c76b | ||
|
|
118d8b0c03 | ||
|
|
28caca3bcc | ||
|
|
6476a774dc | ||
|
|
e791edb02a | ||
|
|
da36f6fabb | ||
|
|
97e1a18253 | ||
|
|
88a850e8fc | ||
|
|
10c9194c5f | ||
|
|
346dc4e4c9 | ||
|
|
b2eee58df4 | ||
|
|
170b93dd69 | ||
|
|
34d6873a6a | ||
|
|
e69d06ea4f | ||
|
|
2939afa729 | ||
|
|
ad8e80913a | ||
|
|
4d25ceef77 | ||
|
|
94b477d8f7 | ||
|
|
ba38f4fd19 |
+1
-2
@@ -10,5 +10,4 @@
|
||||
/*.sh~
|
||||
/*.img
|
||||
src/include/asuro.pas
|
||||
.vscode/launch.json
|
||||
.vscode
|
||||
localenv.json
|
||||
|
||||
+29
-55
@@ -1,25 +1,23 @@
|
||||
stages:
|
||||
- Generate Stub and Versions
|
||||
- Generate Version Files
|
||||
- Compile Versions
|
||||
- Compile Sources
|
||||
- Link
|
||||
- Generate ISO
|
||||
- Generate Sources List
|
||||
- Generate Documentation
|
||||
- Deploy
|
||||
|
||||
compile_stub:
|
||||
stage: Generate Stub and Versions
|
||||
script:
|
||||
- chmod +x ./compile_stub.sh
|
||||
- ./compile_stub.sh
|
||||
artifacts:
|
||||
cache:
|
||||
- key: ${CI_COMMIT_REF_SLUG}
|
||||
paths:
|
||||
- lib/stub.o
|
||||
- lib/*.o
|
||||
- bin/kernel.bin
|
||||
- doc
|
||||
|
||||
vergen:
|
||||
stage: Generate Stub and Versions
|
||||
script:
|
||||
- chmod +x ./compile_vergen.sh
|
||||
before_script:
|
||||
- chmod +x *.sh
|
||||
|
||||
versions:
|
||||
stage: Compile Versions
|
||||
script:
|
||||
- ./compile_vergen.sh
|
||||
artifacts:
|
||||
paths:
|
||||
@@ -29,71 +27,47 @@ vergen:
|
||||
compile_sources:
|
||||
stage: Compile Sources
|
||||
script:
|
||||
- chmod +x ./compile_sources.sh
|
||||
- rm -f lib/*.so
|
||||
- ./compile_sources.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- lib/*.o
|
||||
dependencies:
|
||||
- compile_stub
|
||||
- vergen
|
||||
needs:
|
||||
- vergen
|
||||
- compile_stub
|
||||
- versions
|
||||
|
||||
link:
|
||||
stage: Link
|
||||
script:
|
||||
- chmod +x ./compile_link.sh
|
||||
- ./compile_stub.sh
|
||||
- ./compile_link.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- bin/kernel.bin
|
||||
dependencies:
|
||||
- compile_sources
|
||||
needs:
|
||||
- versions
|
||||
- compile_sources
|
||||
|
||||
isogen:
|
||||
stage: Generate ISO
|
||||
stage: Deploy
|
||||
script:
|
||||
- chmod +x ./compile_isogen.sh
|
||||
- ./compile_isogen.sh
|
||||
- chmod +x ./compile_sumgen.sh
|
||||
- ./compile_sumgen.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- ./Asuro.iso
|
||||
- ./release/checksum.svg
|
||||
dependencies:
|
||||
- link
|
||||
needs:
|
||||
- link
|
||||
|
||||
sourcelist:
|
||||
stage: Generate Sources List
|
||||
script:
|
||||
- chmod +x ./compile_sourcelist.sh
|
||||
- ./compile_sourcelist.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- ./sources.list
|
||||
dependencies:
|
||||
- vergen
|
||||
needs:
|
||||
- vergen
|
||||
|
||||
docgen:
|
||||
stage: Generate Documentation
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
script:
|
||||
- chmod +x ./compile_docs.sh
|
||||
- ./compile_sourcelist.sh
|
||||
- ./compile_docs.sh
|
||||
# Remove comments when we want to use gitlab pages.
|
||||
#- cp doc public
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
paths:
|
||||
- ./doc/*
|
||||
dependencies:
|
||||
- vergen
|
||||
- sourcelist
|
||||
- doc
|
||||
#- public/*
|
||||
#- ./sources.list
|
||||
needs:
|
||||
- vergen
|
||||
- sourcelist
|
||||
- versions
|
||||
|
||||
Vendored
+3
-10
@@ -3,18 +3,11 @@
|
||||
{
|
||||
"name":"Run",
|
||||
"request": "launch",
|
||||
"type": "coreclr",
|
||||
"type": "PowerShell",
|
||||
"preLaunchTask": "Build",
|
||||
"program": "VBoxSDL",
|
||||
"args": [
|
||||
"--comment",
|
||||
"Asuro",
|
||||
"--startvm",
|
||||
"7d395c96-891c-4139-b77d-9b6b144b0b93"
|
||||
],
|
||||
"script": "${workspaceFolder}/virtualbox-wrapper.ps1",
|
||||
"args": ["-Command", "up"],
|
||||
"cwd": "${workspaceFolder}",
|
||||
"console": "internalConsole",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+24
-2
@@ -9,14 +9,18 @@
|
||||
"command": "docker-compose",
|
||||
"args": [
|
||||
"run",
|
||||
"builder"
|
||||
"builder",
|
||||
],
|
||||
"type": "shell",
|
||||
"problemMatcher": [],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
},
|
||||
"dependsOn": [
|
||||
"Close VirtualBox",
|
||||
"Clean"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Build (Builder)",
|
||||
@@ -26,6 +30,24 @@
|
||||
"builder"
|
||||
],
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"label": "Clean",
|
||||
"command": "docker-compose",
|
||||
"args": [
|
||||
"down",
|
||||
"--remove-orphans"
|
||||
],
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"label": "Close VirtualBox",
|
||||
"command": "./virtualbox-wrapper.ps1",
|
||||
"args": [
|
||||
"-Command",
|
||||
"down"
|
||||
],
|
||||
"type": "shell"
|
||||
}
|
||||
]
|
||||
}
|
||||
+13
-9
@@ -2,18 +2,22 @@ FROM ubuntu:latest
|
||||
|
||||
VOLUME ["/code"]
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN dpkg --add-architecture i386
|
||||
RUN apt-get update
|
||||
RUN apt-get install nasm curl make:i386 binutils:i386 xorriso grub-pc-bin dos2unix -y
|
||||
RUN apt-get clean
|
||||
RUN curl https://sourceforge.net/projects/freepascal/files/Linux/2.6.4/fpc-2.6.4.i386-linux.tar/download --output fpc.tar -L && \
|
||||
tar -xf fpc.tar
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl dos2unix wget git make nasm binutils:i386 xorriso grub-pc-bin && \
|
||||
apt-get clean my room
|
||||
|
||||
WORKDIR ./fpc-2.6.4.i386-linux
|
||||
RUN ./install.sh
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
ARG FPC_VERSION=2.6.4
|
||||
RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSION/fpc-$FPC_VERSION.i386-linux.tar/download | tar -xf - && \
|
||||
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
||||
rm -rf fpc-$FPC_VERSION.i386-linux
|
||||
|
||||
COPY compile.sh /compile.sh
|
||||
RUN mkdir /code
|
||||
ADD https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver /usr/bin/semver
|
||||
RUN mkdir /code && chmod +x /usr/bin/semver
|
||||
WORKDIR /code
|
||||
RUN find . -type f -print0 | xargs -0 dos2unix
|
||||
ENTRYPOINT ["/bin/bash", "/compile.sh"]
|
||||
ENTRYPOINT ["/bin/bash", "-c"]
|
||||
CMD ["/compile.sh"]
|
||||
+20
-37
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
ERRCOUNT=0
|
||||
echo " "
|
||||
echo "======================="
|
||||
@@ -7,49 +7,32 @@ echo "Asuro Compilation"
|
||||
echo " "
|
||||
|
||||
#Compile Stub.asm
|
||||
./compile_stub.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed to compile stub!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo "Success."
|
||||
fi
|
||||
rm lib/*
|
||||
|
||||
runOrFail() {
|
||||
local binary=$1
|
||||
local errorText=$2
|
||||
if $binary; then
|
||||
echo "Success."
|
||||
else
|
||||
echo "$errorText"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
fi
|
||||
}
|
||||
|
||||
runOrFail $(pwd)/compile_stub.sh "Failed to compile stub!"
|
||||
|
||||
#Generate .pas with versioning headers.
|
||||
./compile_vergen.sh
|
||||
runOrFail $(pwd)/compile_vergen.sh "Versions failed to compile"
|
||||
|
||||
#Compile all .pas sources
|
||||
./compile_sources.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo " "
|
||||
echo "Failed to compile FPC Sources!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo " "
|
||||
echo "Success."
|
||||
fi
|
||||
runOrFail $(pwd)/compile_sources.sh "Failed to compile FPC Sources!"
|
||||
|
||||
#Link into a binary.
|
||||
./compile_link.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed linking!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo "Success."
|
||||
fi
|
||||
runOrFail $(pwd)/compile_link.sh "Failed linking!"
|
||||
|
||||
#Generate an ISO with GRUB as the Bootloader.
|
||||
./compile_isogen.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed to create ISO!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo "Success."
|
||||
fi
|
||||
runOrFail ./compile_isogen.sh "Failed to create ISO!"
|
||||
|
||||
#Call generate final artifacts based on failure or success of the above.
|
||||
if [ "$ERRCOUNT" -ne "0" ]
|
||||
@@ -59,4 +42,4 @@ else
|
||||
./compile_finish.sh "success"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
cd ..
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo > checksums.md5
|
||||
for directory in $(find src/ -maxdepth 10 -type d); do
|
||||
for filename in $directory/*.pas; do
|
||||
|
||||
+2
-3
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
@@ -14,5 +14,4 @@ echo "Removing old docs"
|
||||
rm -rf ./doc/*
|
||||
echo "Generating Docs..."
|
||||
./pasdoc/bin/pasdoc -N "Asuro" -T "Asuro OS Documentation" -O "html" -E ./doc/ -S sources.list --use-tipue-search
|
||||
echo "Docgen finished."
|
||||
exit 0
|
||||
echo "Docgen finished."
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
#/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
if [ "$1" == "failed" ]
|
||||
if [[ "$1" == "failed" ]]
|
||||
then
|
||||
echo "Errors Occurred, please review."
|
||||
wget -q https://img.shields.io/badge/build-failed-red.svg -O release/build.svg 2>/dev/null
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
echo "Compiling Stub..."
|
||||
echo " "
|
||||
rm lib/*
|
||||
nasm -f elf src/stub/stub.asm -o lib/stub.o
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
||||
+55
-47
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
@@ -8,60 +9,67 @@ chmod +x ./compile_checksum.sh
|
||||
./compile_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"
|
||||
{
|
||||
# this script requires semver tool
|
||||
wget -q https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver -O bin/semver && chmod +x bin/semver
|
||||
export PATH="$(pwd)/bin:$PATH"
|
||||
}
|
||||
tagref=$(git describe --tags)
|
||||
revision=$(git rev-parse --short=8 HEAD)
|
||||
major=$(semver get major $tagref)
|
||||
minor=$(semver get minor $tagref)
|
||||
sub=$(semver get patch $tagref)
|
||||
version=$(semver get release $tagref)
|
||||
release=$(semver get prerel $tagref)
|
||||
build=$(semver get build $tagref)
|
||||
linecount=$(./loc.sh | awk '{print $1}')
|
||||
sourcecount=$(find src -type f | wc -l)
|
||||
drivercount=$(find src/driver -type f | wc -l)
|
||||
revision=$(git rev-list --all --count)
|
||||
fpcversion=$(fpc -h | grep -m 1 version | awk '{print $5}')
|
||||
makeversion=$(make -v | grep GNU | awk '{print $3}' | grep -v GNU)
|
||||
nasmversion=$(nasm -v | awk '{print $3'})
|
||||
compiledate=$(date +"%d/%m/%y")
|
||||
compiletime=$(date +"%T")
|
||||
checksum=$(md5sum checksums.md5 | awk '{print $1}')
|
||||
echo "{" > $outfile
|
||||
echo " Include->Asuro - Constants generated during pipeline/compilation for use at runtime." >> $outfile
|
||||
echo " @author(Autogenerated)" >> $outfile
|
||||
echo "}" >> $outfile
|
||||
echo "unit asuro;" >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "interface" >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "const" >> $outfile
|
||||
echo " VERSION = '$major.$minor.$sub-$revision$release'; //The current full version as a string." >> $outfile
|
||||
echo " VERSION_MAJOR = '$major'; // Current major version as a string." >> $outfile
|
||||
echo " VERSION_MINOR = '$minor'; // Current minor version as a string." >> $outfile
|
||||
echo " VERSION_SUB = '$sub'; // Current sub version as a string." >> $outfile
|
||||
echo " REVISION = '$revision'; // Current revision as a string." >> $outfile
|
||||
echo " RELEASE = '$release'; // Current release as a string." >> $outfile
|
||||
echo " LINE_COUNT = $linecount; // Project line count as compiled as a string." >> $outfile
|
||||
echo " FILE_COUNT = $sourcecount; // Project line count as compiled as a string." >> $outfile
|
||||
echo " DRIVER_COUNT = $drivercount; // Number of baked drivers in the current binary." >> $outfile
|
||||
echo " FPC_VERSION = '$fpcversion'; // Version of the FreePascal Compiler used to compile the current binary." >> $outfile
|
||||
echo " NASM_VERSION = '$nasmversion'; // Version of the Netwide Assembler used to compile the multiboot stub." >> $outfile
|
||||
echo " MAKE_VERSION = '$makeversion'; // Version of MAKE used to link the current binary." >> $outfile
|
||||
echo " COMPILE_DATE = '$compiledate'; // Date in which the current binary was compiled." >> $outfile
|
||||
echo " COMPILE_TIME = '$compiletime'; // Time in which the current binary was compiled." >> $outfile
|
||||
echo " CHECKSUM = '$checksum'; // MD5 pseduo-checksum of all of the sourcefiles together." >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "implementation" >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "end." >> $outfile
|
||||
|
||||
[[ -n "$release" ]] && version="$version-$release"
|
||||
cat > $outfile <<EOF
|
||||
unit asuro;
|
||||
|
||||
interface
|
||||
|
||||
const
|
||||
VERSION = '$version';
|
||||
VERSION_MAJOR = '$major';
|
||||
VERSION_MINOR = '$minor';
|
||||
VERSION_SUB = '$sub';
|
||||
REVISION = '$revision';
|
||||
RELEASE = '$release';
|
||||
LINE_COUNT = $linecount;
|
||||
FILE_COUNT = $sourcecount;
|
||||
DRIVER_COUNT = $drivercount;
|
||||
FPC_VERSION = '$fpcversion';
|
||||
NASM_VERSION = '$nasmversion';
|
||||
MAKE_VERSION = '$makeversion';
|
||||
COMPILE_DATE = '$compiledate';
|
||||
COMPILE_TIME = '$compiletime';
|
||||
CHECKSUM = '$checksum';
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
EOF
|
||||
echo "Generating release info..."
|
||||
wget -q https://img.shields.io/badge/version-$major.$minor.$sub--$revision$release-blue.svg -O release/version.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/revision-$revision-blue.svg -O release/revision.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/release-$release-blue.svg -O release/release.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/lines-$linecount-blueviolet.svg -O release/lines.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/files-$sourcecount-blueviolet.svg -O release/files.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/drivers-$drivercount-blueviolet.svg -O release/drivers.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/FPC_version-$fpcversion-lightgrey.svg -O release/fpcversion.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/NASM_version-$nasmversion-lightgrey.svg -O release/nasmversion.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/MAKE_version-$makeversion-lightgrey.svg -O release/makeversion.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/release_date-$compiledate-lightgrey.svg -O release/date.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/fingerprint-$checksum-important.svg -O release/fingerprint.svg 2>/dev/null
|
||||
set +e # These can fail on branches and such, for now
|
||||
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/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
|
||||
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."
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#Flat filesystem
|
||||
|
||||
A super simple filesystem for asuro. Folders are emulated in filenames.
|
||||
|
||||
Starts with disk info sector, sector 0 of volume
|
||||
|
||||
---
|
||||
#### disk info
|
||||
|
||||
jmp2boot : ubit24;
|
||||
OEMName : array[0..7] of char;
|
||||
version : uint16 // numerical version of filesystem
|
||||
sectorCount : uint16;
|
||||
fileCount : uint16
|
||||
signature : uint32 = 0x0B00B1E5
|
||||
|
||||
|
||||
the Rest of the sector is reserved
|
||||
|
||||
---
|
||||
|
||||
Starting from sector 1 is the file table. Table size is determined by entry size (64) * fileCount
|
||||
|
||||
---
|
||||
####File entry
|
||||
|
||||
name : array[0..59] of char //file name max 60 chars
|
||||
fileStart : 16bit // start sector of data
|
||||
fileSize : 16bit // data size in sectors
|
||||
|
||||
---
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
builder:
|
||||
build: .
|
||||
|
||||
@@ -13,8 +13,8 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f
|
||||
I don't think this needs an explaination.
|
||||
* [VSCode (Optional, but highly recommended)](https://code.visualstudio.com/)
|
||||
Visual Studio code is our IDE of choice, and we have a number of recommended plugins.
|
||||
* [C# Plugin by Microsoft](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)
|
||||
This plugin gives you the ability to use the 'coreclr' task type, allowing the automatic launching of virtualbox with the resulting image generated during compilation of Asuro.
|
||||
* [PowerShell Plugin by Microsoft](https://marketplace.visualstudio.com/items?itemName=ms-vscode.powershell)
|
||||
This plugin gives you the ability to use the 'PowerShell' task type, allowing the automatic launching of virtualbox with the resulting image generated during compilation of Asuro.
|
||||
* [VirtualBox](https://www.virtualbox.org/)
|
||||
Virtualbox is our Virtualisation environment of choice, don't ask why, it just is.
|
||||
|
||||
@@ -27,15 +27,15 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f
|
||||
3. Install Docker for Windows.
|
||||
4. Install Git for Windows.
|
||||
5. Install VSCode & the listed plugins.
|
||||
6. Install VirtualBox.
|
||||
6. Install VirtualBox (v7+).
|
||||
7. Clone this repository.
|
||||
8. Run the following command in the root of the repo to build the docker image:
|
||||
```powershell
|
||||
docker-compose build builder
|
||||
docker compose build builder
|
||||
```
|
||||
9. Run the following command to compile Asuro:
|
||||
```powershell
|
||||
docker-compose run builder
|
||||
docker compose run builder
|
||||
```
|
||||
10. Create a new virtual machine in Virtualbox and mount the `Asuro.iso` generated in step 9 as a boot image.
|
||||
11. Add the virtualbox installation directory to your `%PATH%` environment variable, usually:
|
||||
@@ -50,32 +50,29 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f
|
||||
```xml
|
||||
<Machine uuid="{7d395c96-891c-4139-b77d-9b6b144b0b93}" name="Asuro" OSType="Linux" snapshotFolder="Snapshots" lastStateChange="2021-06-20T20:33:07Z">
|
||||
```
|
||||
Copy the uuid, in our case `7d395c96-891c-4139-b77d-9b6b144b0b93` and replace the uuid found in `.vscode\launch.json` under `args`, so that it looks something like this:
|
||||
Copy the uuid, in our case `7d395c96-891c-4139-b77d-9b6b144b0b93` & create a `localenv.json` file in the project root with the following content:
|
||||
```json
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name":"Run",
|
||||
"request": "launch",
|
||||
"type": "coreclr",
|
||||
"preLaunchTask": "Build",
|
||||
"program": "VBoxSDL",
|
||||
"args": [
|
||||
"--comment",
|
||||
"Asuro",
|
||||
"--startvm",
|
||||
"<YOUR UUID HERE>"
|
||||
],
|
||||
"cwd": "${workspaceFolder}",
|
||||
"console": "internalConsole",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
}
|
||||
]
|
||||
"VirtualBox":{
|
||||
"MachineName":"<YOUR_UUID_OR_MACHINE_NAME>"
|
||||
}
|
||||
}
|
||||
```
|
||||
This will allow VSCode to automatically launch VirtualBox once Asuro has been compiled.
|
||||
|
||||
You can also enable the serial adapter "COM1" in mode "Raw File", give it a path, and provide this path in the `localenv.json` as follows:
|
||||
```json
|
||||
{
|
||||
"VirtualBox" : {
|
||||
"MachineName": "<YOUR_UUID_OR_MACHINE_NAME>",
|
||||
"LogLocation": "Fully\\Qualified\\Path\\To\\Your\\Log\\File"
|
||||
}
|
||||
}
|
||||
```
|
||||
This will allow you to see the console output from Asuro in your host terminal.
|
||||
13. Open your project folder in VSCode, use CTRL+SHIFT+B to build & F5 to build + run in VBox.
|
||||
14. Congratulations! You can now play with Asuro!
|
||||
|
||||
### Gotchas
|
||||
- It was noted that Windows builds above `20H2` seem to have issues installing WSL2. We may have to wait for a patch from Microsoft to fix this. Our devs are currently using build `20H2`.
|
||||
### Notes & Gotchas
|
||||
- The above process has been updated to be compatible with VirtualBox 7+, in which VBoxSDL was removed and vboxmanage should be used in its place. A small wrapper powershell script is used to achieve this.
|
||||
- It was noted that Windows builds above `20H2` seem to have issues installing WSL2. We may have to wait for a patch from Microsoft to fix this. Our devs are currently using build `20H2`.
|
||||
|
||||
+295
-388
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user