Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
465107e904 | ||
|
|
3198d31027 |
No files matched your search
+2
-2
@@ -22,8 +22,8 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
- find . -type f -print0 | xargs -0 dos2unix
|
- find . -type f -print0 | xargs -0 dos2unix
|
||||||
- chmod +x /drone/src/toolchain/*.sh
|
- chmod +x /drone/src/*.sh
|
||||||
- /drone/src/toolchain/compile.sh
|
- /drone/src/compile.sh
|
||||||
|
|
||||||
- name: upload-iso-artifact
|
- name: upload-iso-artifact
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
|
|||||||
@@ -1,8 +1 @@
|
|||||||
* text=auto eol=lf
|
* text=auto eol=lf
|
||||||
lvglh/** linguist-vendored
|
|
||||||
lvgl/** linguist-vendored
|
|
||||||
.vscode/* linguist-vendored
|
|
||||||
lib/* linguist-generated
|
|
||||||
release/* linguist-generated
|
|
||||||
iso/* linguist-generated
|
|
||||||
*.asm linguist-detectable
|
|
||||||
+2
-7
@@ -11,11 +11,6 @@
|
|||||||
/*.img
|
/*.img
|
||||||
src/include/asuro.pas
|
src/include/asuro.pas
|
||||||
localenv.json
|
localenv.json
|
||||||
/lvgl/
|
|
||||||
dockerout.txt
|
|
||||||
AGENTS.md
|
AGENTS.md
|
||||||
lessons_learnt.md
|
build.log
|
||||||
*.log
|
dockerout.txt
|
||||||
/doc/*.md
|
|
||||||
wasuro
|
|
||||||
src/core/core.version.pas
|
|
||||||
+3
-2
@@ -5,7 +5,7 @@ VOLUME ["/code"]
|
|||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN dpkg --add-architecture i386
|
RUN dpkg --add-architecture i386
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
curl dos2unix wget git make nasm binutils xorriso grub-pc-bin gcc gcc-multilib && \
|
curl dos2unix wget git make nasm binutils:i386 xorriso grub-pc-bin && \
|
||||||
apt-get clean my room
|
apt-get clean my room
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-c"]
|
SHELL ["/bin/bash", "-c"]
|
||||||
@@ -14,9 +14,10 @@ RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSIO
|
|||||||
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
||||||
rm -rf fpc-$FPC_VERSION.i386-linux
|
rm -rf fpc-$FPC_VERSION.i386-linux
|
||||||
|
|
||||||
|
COPY compile.sh /compile.sh
|
||||||
ADD https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver /usr/bin/semver
|
ADD https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver /usr/bin/semver
|
||||||
RUN chmod +x /usr/bin/semver
|
RUN chmod +x /usr/bin/semver
|
||||||
WORKDIR /code
|
WORKDIR /code
|
||||||
RUN find . -type f -print0 | xargs -0 dos2unix
|
RUN find . -type f -print0 | xargs -0 dos2unix
|
||||||
ENTRYPOINT ["/bin/bash", "-c"]
|
ENTRYPOINT ["/bin/bash", "-c"]
|
||||||
CMD ["find toolchain -name '*.sh' -exec dos2unix {} + 2>/dev/null; find toolchain -name '*.sh' -exec chmod +x {} +; bash toolchain/compile.sh"]
|
CMD ["/compile.sh"]
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
{ Compatibility shim: wasuro references the old unit name 'lmemorymanager'.
|
|
||||||
Since wasuro/ cannot be modified, this unit re-exports the public API of
|
|
||||||
memory.heap so that 'uses lmemorymanager' continues to compile. }
|
|
||||||
unit lmemorymanager;
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
memory.heap;
|
|
||||||
|
|
||||||
const
|
|
||||||
ALLOC_UNIT = memory.heap.ALLOC_UNIT;
|
|
||||||
DATA_OFFSET = memory.heap.DATA_OFFSET;
|
|
||||||
PAGE_SIZE_LMM = memory.heap.PAGE_SIZE_LMM;
|
|
||||||
TOTAL_UNITS = memory.heap.TOTAL_UNITS;
|
|
||||||
BITMAP_DWORDS = memory.heap.BITMAP_DWORDS;
|
|
||||||
SIZE_PREFIX = memory.heap.SIZE_PREFIX;
|
|
||||||
LARGE_ALLOC_MAGIC = memory.heap.LARGE_ALLOC_MAGIC;
|
|
||||||
|
|
||||||
type
|
|
||||||
PHeapPageHeader = memory.heap.PHeapPageHeader;
|
|
||||||
THeapPageHeader = memory.heap.THeapPageHeader;
|
|
||||||
|
|
||||||
procedure init;
|
|
||||||
function kalloc(size : uint32) : void;
|
|
||||||
function klalloc(size : uint32) : void;
|
|
||||||
procedure klfree(address : uint32);
|
|
||||||
function kpalloc(address : uint32) : void;
|
|
||||||
procedure kfree(area : void);
|
|
||||||
function lmm_total_free : uint32;
|
|
||||||
function lmm_page_count : uint32;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
procedure init;
|
|
||||||
begin
|
|
||||||
memory.heap.init;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function kalloc(size : uint32) : void; inline;
|
|
||||||
begin
|
|
||||||
kalloc := memory.heap.kalloc(size);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function klalloc(size : uint32) : void; inline;
|
|
||||||
begin
|
|
||||||
klalloc := memory.heap.klalloc(size);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure klfree(address : uint32); inline;
|
|
||||||
begin
|
|
||||||
memory.heap.klfree(address);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function kpalloc(address : uint32) : void; inline;
|
|
||||||
begin
|
|
||||||
kpalloc := memory.heap.kpalloc(address);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure kfree(area : void); inline;
|
|
||||||
begin
|
|
||||||
memory.heap.kfree(area);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function lmm_total_free : uint32; inline;
|
|
||||||
begin
|
|
||||||
lmm_total_free := memory.heap.lmm_total_free;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function lmm_page_count : uint32; inline;
|
|
||||||
begin
|
|
||||||
lmm_page_count := memory.heap.lmm_page_count;
|
|
||||||
end;
|
|
||||||
|
|
||||||
end.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
unit types;
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
end.
|
|
||||||
Regular → Executable
+4
-8
@@ -7,7 +7,7 @@ echo "Asuro Compilation"
|
|||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
#Compile Stub.asm
|
#Compile Stub.asm
|
||||||
rm -f lib/*
|
rm lib/*
|
||||||
|
|
||||||
runOrFail() {
|
runOrFail() {
|
||||||
local binary=$1
|
local binary=$1
|
||||||
@@ -20,13 +20,9 @@ runOrFail() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
TOOLCHAIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
|
|
||||||
declare -a run_steps=(
|
declare -a run_steps=(
|
||||||
"compile_stub.sh" "Failed to compile stub!"
|
"compile_stub.sh" "Failed to compile stub!"
|
||||||
"compile_vergen.sh" "Versions failed to compile"
|
"compile_vergen.sh" "Versions failed to compile"
|
||||||
"compile_lvgl.sh" "Failed to compile LVGL!"
|
|
||||||
"compile_wasuro.sh" "Failed to pull Wasuro!"
|
|
||||||
"compile_sources.sh" "Failed to compile FPC Sources!"
|
"compile_sources.sh" "Failed to compile FPC Sources!"
|
||||||
"compile_link.sh" "Failed linking!"
|
"compile_link.sh" "Failed linking!"
|
||||||
"compile_isogen.sh" "Failed to create ISO!"
|
"compile_isogen.sh" "Failed to create ISO!"
|
||||||
@@ -36,7 +32,7 @@ for ((i=0; i<${#run_steps[@]}; i+=2))
|
|||||||
do
|
do
|
||||||
if [ "$ERRCOUNT" -eq "0" ]
|
if [ "$ERRCOUNT" -eq "0" ]
|
||||||
then
|
then
|
||||||
script="${TOOLCHAIN_DIR}/${run_steps[$i]}"
|
script=$(pwd)/"${run_steps[$i]}"
|
||||||
message="${run_steps[$i+1]}"
|
message="${run_steps[$i+1]}"
|
||||||
runOrFail "$script" "$message"
|
runOrFail "$script" "$message"
|
||||||
fi
|
fi
|
||||||
@@ -45,9 +41,9 @@ done
|
|||||||
#Call generate final artifacts based on failure or success of the above.
|
#Call generate final artifacts based on failure or success of the above.
|
||||||
if [ "$ERRCOUNT" -ne "0" ]
|
if [ "$ERRCOUNT" -ne "0" ]
|
||||||
then
|
then
|
||||||
. "${TOOLCHAIN_DIR}/compile_finish.sh" "failed"
|
. ./compile_finish.sh "failed"
|
||||||
else
|
else
|
||||||
. "${TOOLCHAIN_DIR}/compile_finish.sh" "success"
|
. ./compile_finish.sh "success"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -14,9 +14,4 @@ done;
|
|||||||
objstring=lib/stub.o" "$objstring
|
objstring=lib/stub.o" "$objstring
|
||||||
echo "Object Files: "$objstring
|
echo "Object Files: "$objstring
|
||||||
echo " "
|
echo " "
|
||||||
|
ld -m elf_i386 -s --gc-sections -Tlinker.script -o bin/kernel.bin $objstring
|
||||||
# Find libgcc for i386 (needed by LVGL compiled with gcc)
|
|
||||||
LIBGCC=$(gcc -m32 -print-libgcc-file-name)
|
|
||||||
echo "libgcc: ${LIBGCC}"
|
|
||||||
|
|
||||||
ld -m elf_i386 -s --gc-sections -Ttoolchain/linker.script -o bin/kernel.bin $objstring --start-group lib/liblvgl.a ${LIBGCC} --end-group
|
|
||||||
File renamed without changes.
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
echo " "
|
||||||
|
echo "======================="
|
||||||
|
echo " "
|
||||||
|
echo "Compiling FPC Sources..."
|
||||||
|
echo " "
|
||||||
|
fpc -Aelf -gw -g -gl -n -vlewn -O3 -OpPENTIUM3 -Si -Sc -Sg -Xd -CX -XXs -CfSSE -CfSSE2 -Rintel -Pi386 -Tlinux -FElib/ -Fusrc/* -Fusrc/driver/* -Fusrc/driver/net/* src/kernel.pas
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
echo " "
|
||||||
|
echo "======================="
|
||||||
|
echo " "
|
||||||
|
echo "Compiling Stub..."
|
||||||
|
echo " "
|
||||||
|
nasm -f elf src/stub/stub.asm -o lib/stub.o
|
||||||
File renamed without changes.
@@ -1,15 +1,14 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
TOOLCHAIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
echo " "
|
echo " "
|
||||||
echo "======================="
|
echo "======================="
|
||||||
echo " "
|
echo " "
|
||||||
echo "Generating Versioning Info..."
|
echo "Generating Versioning Info..."
|
||||||
echo " "
|
echo " "
|
||||||
chmod +x "${TOOLCHAIN_DIR}/compile_checksum.sh"
|
chmod +x ./compile_checksum.sh
|
||||||
"${TOOLCHAIN_DIR}/compile_checksum.sh"
|
./compile_checksum.sh
|
||||||
outfile="src/core/core.version.pas"
|
outfile="src/include/asuro.pas"
|
||||||
file="toolchain/version"
|
file="version"
|
||||||
{
|
{
|
||||||
# this script requires semver tool
|
# this script requires semver tool
|
||||||
wget -q https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver -O bin/semver && chmod +x bin/semver
|
wget -q https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver -O bin/semver && chmod +x bin/semver
|
||||||
@@ -23,7 +22,7 @@ sub=$(semver get patch $tagref)
|
|||||||
version=$(semver get release $tagref)
|
version=$(semver get release $tagref)
|
||||||
release=$(semver get prerel $tagref)
|
release=$(semver get prerel $tagref)
|
||||||
build=$(semver get build $tagref)
|
build=$(semver get build $tagref)
|
||||||
linecount=$("${TOOLCHAIN_DIR}/loc.sh" | awk '{print $1}')
|
linecount=$(./loc.sh | awk '{print $1}')
|
||||||
sourcecount=$(find src -type f | wc -l)
|
sourcecount=$(find src -type f | wc -l)
|
||||||
drivercount=$(find src/driver -type f | wc -l)
|
drivercount=$(find src/driver -type f | wc -l)
|
||||||
fpcversion=$(fpc -h | grep -m 1 version | awk '{print $5}')
|
fpcversion=$(fpc -h | grep -m 1 version | awk '{print $5}')
|
||||||
@@ -35,7 +34,7 @@ checksum=$(md5sum checksums.md5 | awk '{print $1}')
|
|||||||
|
|
||||||
[[ -n "$release" ]] && version="$version-$release"
|
[[ -n "$release" ]] && version="$version-$release"
|
||||||
cat > $outfile <<EOF
|
cat > $outfile <<EOF
|
||||||
unit core.version;
|
unit asuro;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
Whitespace-only changes.
@@ -1,32 +0,0 @@
|
|||||||
#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
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
File diff suppressed because it is too large.
Load diff
Loaded 20 of 250 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user