git-svn-id: https://spexeah.com:8443/svn/Asuro@598 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron 2018-04-29 18:04:40 +00:00
parent c2d3825b8f
commit a12957e069
17 changed files with 24 additions and 22 deletions

BIN
Asuro.iso

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

4
run.sh
View File

@ -8,11 +8,11 @@ echo " "
echo "Running Asaro..." echo "Running Asaro..."
if [ "$1" = "-d" ] if [ "$1" = "-d" ]
then then
qemu-system-i386 -s -S -cdrom Asuro.iso& qemu-system-i386 -serial pty -s -S -cdrom Asuro.iso&
sleep 1 sleep 1
gdb -ex "target remote localhost:1234" gdb -ex "target remote localhost:1234"
else else
qemu-system-i386 -monitor stdio -cdrom Asuro.iso qemu-system-i386 -serial pty -monitor stdio -cdrom Asuro.iso
fi fi
if [ $? -ne 0 ] if [ $? -ne 0 ]

View File

@ -20,9 +20,9 @@ implementation
uses uses
console; console;
procedure hook(); procedure IRQ_Hook();
begin begin
console.writestringln('SERIAL ISR FIRED!');
end; end;
procedure initPort(PORT : uint16); procedure initPort(PORT : uint16);
@ -42,8 +42,6 @@ begin
initPort(COM2); initPort(COM2);
initPort(COM3); initPort(COM3);
initPort(COM4); initPort(COM4);
isrmanager.registerISR(32 + 3, @Hook);
isrmanager.registerISR(32 + 4, @Hook);
end; end;
function serial_received(PORT : uint16) : uint32; function serial_received(PORT : uint16) : uint32;
@ -63,7 +61,9 @@ var
begin begin
receive:= 0; receive:= 0;
_timeout:= timeout; _timeout:= timeout;
while (serial_received(PORT) = 0) do begin end; while (serial_received(PORT) = 0) AND (_timeout > 0) do begin
dec(_timeout);
end;
if _timeout <> 0 then begin if _timeout <> 0 then begin
receive:= inb(PORT); receive:= inb(PORT);
end; end;
@ -76,7 +76,9 @@ var
begin begin
send:= false; send:= false;
_timeout:= timeout; _timeout:= timeout;
while (is_transmit_empty(PORT) = 0) do begin end; while (is_transmit_empty(PORT) = 0) and (_timeout > 0) do begin
dec(_timeout);
end;
if _timeout <> 0 then begin if _timeout <> 0 then begin
outb(PORT, data); outb(PORT, data);
send:= true; send:= true;

View File

@ -3,11 +3,11 @@ unit asuro;
interface interface
const const
VERSION = '1.0.0-594a'; VERSION = '1.0.0-596a';
VERSION_MAJOR = '1'; VERSION_MAJOR = '1';
VERSION_MINOR = '0'; VERSION_MINOR = '0';
VERSION_SUB = '0'; VERSION_SUB = '0';
REVISION = '594'; REVISION = '596';
RELEASE = 'a'; RELEASE = 'a';
implementation implementation

View File

@ -154,7 +154,7 @@ begin
{ Console Init } { Console Init }
console.init(); console.init();
serial.init(); //serial.init();
{ Call Tracer } { Call Tracer }
tracer.init(); tracer.init();

View File

@ -377,16 +377,16 @@ var
begin begin
success:= true; success:= true;
success:= success AND Serial.Send(uint8('H'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('H'), 100000);
success:= success AND Serial.Send(uint8('E'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('E'), 100000);
success:= success AND Serial.Send(uint8('L'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('L'), 100000);
success:= success AND Serial.Send(uint8('L'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('L'), 100000);
success:= success AND Serial.Send(uint8('O'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('O'), 100000);
success:= success AND Serial.Send(uint8('W'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('W'), 100000);
success:= success AND Serial.Send(uint8('O'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('O'), 100000);
success:= success AND Serial.Send(uint8('R'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('R'), 100000);
success:= success AND Serial.Send(uint8('L'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('L'), 100000);
success:= success AND Serial.Send(uint8('D'), COM1, 100000); success:= success AND Serial.Send(COM1, uint8('D'), 100000);
if success then begin if success then begin
console.writestringlnWND('Send Success!', TERMINAL_HWND); console.writestringlnWND('Send Success!', TERMINAL_HWND);
end else begin end else begin