Merge branch 'feature/fpc-3.2.2' into feature/lvgl

# Conflicts:
#	.drone.yml
#	virtualbox-wrapper.ps1
This commit is contained in:
2026-02-26 15:51:37 +00:00
12 changed files with 1536 additions and 256 deletions
+16 -2
View File
@@ -24,7 +24,7 @@ steps:
- find . -type f -print0 | xargs -0 dos2unix
- chmod +x /drone/src/*.sh
- /drone/src/compile.sh
- name: upload-iso-artifact
image: alpine/git
depends_on:
@@ -49,4 +49,18 @@ steps:
-H "Authorization: token $GITEA_TOKEN" || echo "No previous latest version found."
- |
curl -X PUT https://gitea.spexeah.com/api/packages/Spexeah/generic/asuro-iso/latest/Asuro.iso \
-H "Authorization: token $GITEA_TOKEN" --upload-file "Asuro-$(git rev-parse --short HEAD).iso"
-H "Authorization: token $GITEA_TOKEN" --upload-file "Asuro-$(git rev-parse --short HEAD).iso"
- name: msg status
image: appleboy/drone-discord
failure: ignore
depends_on:
- compile
when:
status: [success, failure, changed]
settings:
webhook_id:
from_secret: discord_webhook_id
webhook_token:
from_secret: discord_webhook_secret
message: "**Asuro Build**\n\n{{#success build.status}}✅ Build successful!\n\n{{else}}❌ Build failed!\n\n{{/success}}Repository: `{{repo.namespace}}/{{repo.name}}`\nBranch: `{{commit.branch}}`\nCommit: `{{commit.sha}}`\nAuthor: `{{commit.author}} <{{commit.email}}>`\n\nGitea Diff: [Link](<{{commit.link}}>)\nDrone Build: [Link](<{{build.link}}>)\n\nMessage: {{commit.message}}"
+13
View File
@@ -0,0 +1,13 @@
# Map all Aaron identities to a single preferred identity
Aaron Hance <[email protected]> aaron <aaron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c>
Aaron Hance <[email protected]> aaronhance <[email protected]>
Aaron Hance <[email protected]> aaron hance <[email protected]>
Aaron Hance <[email protected]> Aaron <[email protected]>
# Map all Kieron identities to a single preferred identity
Kieron Morris <[email protected]> kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c>
Kieron Morris <[email protected]> Kieron <[email protected]>
Kieron Morris <[email protected]> t3hn3rd <[email protected]>
# Map goose's multiple identities
goose <goose@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c> goose <[email protected]>
+1 -1
View File
@@ -9,7 +9,7 @@ RUN apt-get update && apt-get install -y \
apt-get clean my room
SHELL ["/bin/bash", "-c"]
ARG FPC_VERSION=2.6.4
ARG FPC_VERSION=3.2.2
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
+1 -1
View File
@@ -4,4 +4,4 @@ echo "======================="
echo " "
echo "Compiling FPC Sources..."
echo " "
fpc -Aelf -gw -g -gl -n -vlewn -O3 -Op3 -Si -Sc -Sg -Xd -CX -XXs -CfSSE -CfSSE2 -Rintel -Pi386 -Tlinux -FElib/ -Fusrc/* -Fusrc/driver/* -Fusrc/driver/net/* src/kernel.pas
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
+10
View File
@@ -34,4 +34,14 @@ SECTIONS
}
end = .; _end = .; __end = .;
kernel_end = .;
/DISCARD/ : {
*(.init_array*)
*(.fini_array*)
*(.ctors)
*(.dtors)
*(.eh_frame*)
*(.gcc_except_table*)
*(.note.GNU-stack)
}
}
+4 -1
View File
@@ -58,16 +58,19 @@ begin
end;
function sinb(port : uint16) : uint8;
var
tmp : uint8;
begin
asm
PUSH EAX
PUSH EDX
MOV DX, port
IN AL, DX
MOV sinb, AL
MOV tmp, AL
POP EDX
POP EAX
end;
sinb := tmp;
io_wait;
end;
+14 -6
View File
@@ -491,22 +491,26 @@ begin
{ Create a new header to the use in our DHCP REQUEST packet }
SendHeader:= createHeader();
CopyIPv4(puint8(@Header^.Your_IP[0]), puint8(@SendHeader^.Client_IP[0]));
CopyIPv4(@getIPv4Config^.Address[0], puint8(@SendHeader^.Client_IP[0]));
CopyIPv4(puint8(@Header^.Server_IP[0]), puint8(@SendHeader^.Server_IP[0]));
processHeader(SendHeader);
{ Setup Options }
SendOptions:= newOptions();
{ Create a message type option and assign it the value REQUEST }
SendMsgType:= ord(TDHCPMessageType.REQUEST);
NewOption(SendOptions, TDHCPOpCode.DHCP_MESSAGE_TYPE, void(@SendMsgType), 1, false);
{ Create a Requested IP option and assign it the value from the OFFER packet header }
NewOption(SendOptions, TDHCPOpCode.REQUESTED_IP_ADDRESS, void(@SendHeader^.Client_IP[0]), 4, false);
NewOption(SendOptions, TDHCPOpCode.REQUESTED_IP_ADDRESS, void(@Header^.Your_IP[0]), 4, false);
{ Create a Server Identifier Option and assign it the value from the OFFER packet options }
Option:= getOptionByOpcode(Options, TDHCPOpCode.SERVER_IDENTIFIER);
if Option <> nil then begin
NewOption(SendOptions, TDHCPOpCode.SERVER_IDENTIFIER, void(@Option^.Value[0]), 4, false);
end;
{ Create a Parameter Request List, Request the following: Netmask, Gateway, DNS Name & DNS Server }
RequestParams[0]:= Ord(TDHCPOpCode.SUBNET_MASK);
RequestParams[1]:= Ord(TDHCPOpCode.ROUTER);
@@ -522,9 +526,13 @@ begin
MAC:= getMAC();
packetCtx:= PPacketContext(Kalloc(sizeof(TPacketContext)));
packetCtx^.TTL:= 128;
copyMAC(@BROADCAST_MAC[0], @packetCtx^.MAC.Destination[0]);
{ Copy over MAC - src: broadcast - dst: DHCP Server }
copyMAC(MAC, @packetCtx^.MAC.Source[0]);
copyIPv4(@NULL_IP[0], @packetCtx^.IP.Source[0]);
copyMAC(@BROADCAST_MAC[0], @packetCtx^.MAC.Destination[0]);
{ Copy over IP - src: NULL - dst: Broadcast }
CopyIPv4(@getIPv4Config^.Address[0], @packetCtx^.IP.Source[0]);
copyIPv4(@BROADCAST_IP[0], @packetCtx^.IP.Destination[0]);
{ Setup UDPContext (UDP) & copy in the correct details }
@@ -570,7 +578,7 @@ begin
{ Check the frame is for us and then process }
MAC:= getMAC;
if MACEqual(@context^.PacketContext^.MAC.Destination[0], MAC) then begin
if MACEqual(@context^.PacketContext^.MAC.Destination[0], MAC) or MACEqual(@context^.PacketContext^.MAC.Destination[0], BROADCAST_MAC) then begin
Outputln('DHCP','Frame is addressed to us.');
{ Check the message type is client specific }
If Header^.Message_Type = $02 then begin
@@ -655,7 +663,7 @@ begin
copyMAC(@BROADCAST_MAC[0], @packetCtx^.MAC.Destination[0]);
MAC:= getMAC;
copyMAC(MAC, @packetCtx^.MAC.Source[0]);
copyIPv4(@NULL_IP[0], @packetCtx^.IP.Source[0]);
CopyIPv4(@getIPv4Config^.Address[0], @packetCtx^.IP.Source[0]);
copyIPv4(@BROADCAST_IP[0], @packetCtx^.IP.Destination[0]);
{ Setup UDPContext (UDP) }
+1110 -238
View File
File diff suppressed because it is too large Load Diff
+348 -1
View File
File diff suppressed because it is too large Load Diff
+16 -4
View File
@@ -150,10 +150,13 @@ begin
end;
function getESP : uint32;
var
tmp: uint32;
begin
asm
MOV getESP, ESP
MOV tmp, ESP
end;
getESP := tmp;
end;
function HexCharToDecimal(hex : char) : uint8;
@@ -382,6 +385,8 @@ begin
end;
function inl(port : uint16) : uint32; [public, alias: 'util_inl'];
var
tmp : uint32;
begin
//serial.sendString('[inl]');
//serial.sendHex(port);
@@ -390,14 +395,17 @@ begin
PUSH EDX
MOV DX, port
IN EAX, DX
MOV inl, EAX
MOV tmp, EAX
POP EDX
POP EAX
end;
inl := tmp;
io_wait;
end;
function inw(port : uint16) : uint16; [public, alias: 'util_inw'];
var
tmp : uint16;
begin
//serial.sendString('[inw]');
//serial.sendHex(port);
@@ -406,14 +414,17 @@ begin
PUSH EDX
MOV DX, port
IN AX, DX
MOV inw, AX
MOV tmp, AX
POP EDX
POP EAX
end;
inw := tmp;
io_wait;
end;
function inb(port : uint16) : uint8; [public, alias: 'util_inb'];
var
tmp : uint8;
begin
//serial.sendString('[inb]');
//serial.sendHex(port);
@@ -422,10 +433,11 @@ begin
PUSH EDX
MOV DX, port
IN AL, DX
MOV inb, AL
MOV tmp, AL
POP EDX
POP EAX
end;
inb := tmp;
io_wait;
end;
+2 -2
View File
@@ -170,7 +170,7 @@ begin
klalloc:= Address;
end;
function kalloc(size : uint32) : void;
function kalloc(size : uint32) : void; [public, alias: 'kernel_kalloc'];
var
Heap_Entries : uint32;
i, j : uint32;
@@ -217,7 +217,7 @@ begin
//pop_trace;
end;
procedure kfree(area : void);
procedure kfree(area : void); [public, alias: 'kernel_kfree'];
var
hp : PHeapPage;
entry : uint32;
+1
View File
@@ -52,6 +52,7 @@ if ($Command -eq 'up') {
}
Receive-Job $MonitorJob
}
Get-Job | Stop-Job | Remove-Job -Force
} elseif ($Command -eq 'down') {
Write-Output "Stopping $MachineName"
VBoxManage.exe controlvm $MachineName poweroff