diff --git a/Asuro.iso b/Asuro.iso index 495096aa..5cced422 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 86672054..a5a08464 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 86672054..a5a08464 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 044fc94d..4b57f299 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index ec1e3d1b..04979d14 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index dd77ec68..8cc73836 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index e8fafb9a..f852badf 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 86b68b87..73b6c8e4 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 43b7dfd3..53087dba 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 65475f96..e2850a3b 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 1f70deb2..d912161f 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/scheduler.ppu b/lib/scheduler.ppu index 28d599c6..bce9f17a 100644 Binary files a/lib/scheduler.ppu and b/lib/scheduler.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index 363daeb4..aeb98496 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index 8cadd1c5..593e900b 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 06790fd2..74e8fb9a 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/src/terminal.pas b/src/terminal.pas index c0df32e0..9db8f751 100644 --- a/src/terminal.pas +++ b/src/terminal.pas @@ -44,6 +44,7 @@ var History : PHistory; bIndex : uint32 = 0; Commands : array[0..65534] of TCommand; + Working_Directory : PChar = '/'; procedure run; procedure init; @@ -51,9 +52,23 @@ procedure registerCommand(command : pchar; method : TCommandMethod; description function getParams(buf : TCommandBuffer) : PParamList; function paramCount(params : PParamList) : uint32; function getParam(index : uint32; params : PParamList) : pchar; +procedure setWorkingDirectory(str : pchar); +function getWorkingDirectory : pchar; implementation +function getWorkingDirectory : pchar; +begin + getWorkingDirectory:= Working_Directory; +end; + +procedure setWorkingDirectory(str : pchar); +begin + if str <> nil then begin + Working_Directory:= stringCopy(str); + end; +end; + function paramCount(params : PParamList) : uint32; var current : PParamList; @@ -257,7 +272,9 @@ begin end; { Reset the terminal ready for the next command } - console.writestring('Asuro#> '); + console.writestring('Asuro#'); + console.writestring(Working_Directory); + console.writestring('> '); bIndex:= 0; memset(uint32(@buffer[0]), 0, 1024); @@ -285,6 +302,13 @@ begin end; end; +procedure change_dir(Params : PParamList); +begin + if paramCount(Params) > 0 then begin + setWorkingDirectory(getParam(0, Params)); + end; +end; + procedure init; begin console.writestringln('TERMINAL: INIT BEGIN.'); @@ -296,6 +320,7 @@ begin registerCommand('ECHO', @echo, 'Echo''s text to the terminal.'); registerCommand('TESTPARAMS', @testParams, 'Tests param parsing.'); registerCommand('TEST', @test, 'Command for testing.'); + registerCommand('CD', @change_dir, 'Change Directory test'); console.writestringln('TERMINAL: INIT END.'); end; @@ -303,7 +328,9 @@ procedure run; begin keyboard.hook(@key_event); console.clear(); - console.writestring('Asuro#> '); + console.writestring('Asuro#'); + console.writestring(Working_Directory); + console.writestring('> '); end; end. \ No newline at end of file