diff --git a/Asuro.iso b/Asuro.iso index f42a10dd..92defe25 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 8e47b3f0..b0715ad4 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 8e47b3f0..b0715ad4 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/ACE.ppu b/lib/ACE.ppu index 0bd8c818..26b42d78 100644 Binary files a/lib/ACE.ppu and b/lib/ACE.ppu differ diff --git a/lib/BPE.ppu b/lib/BPE.ppu index 5ab1f7bc..9863c99c 100644 Binary files a/lib/BPE.ppu and b/lib/BPE.ppu differ diff --git a/lib/BTSSE.ppu b/lib/BTSSE.ppu index 36316810..65ce1b2c 100644 Binary files a/lib/BTSSE.ppu and b/lib/BTSSE.ppu differ diff --git a/lib/CFE.ppu b/lib/CFE.ppu index c40ba6b7..6951376b 100644 Binary files a/lib/CFE.ppu and b/lib/CFE.ppu differ diff --git a/lib/CSOE.ppu b/lib/CSOE.ppu index 5baebecd..941e84f2 100644 Binary files a/lib/CSOE.ppu and b/lib/CSOE.ppu differ diff --git a/lib/DBGE.ppu b/lib/DBGE.ppu index 276faede..2b8a31a0 100644 Binary files a/lib/DBGE.ppu and b/lib/DBGE.ppu differ diff --git a/lib/DBZ.ppu b/lib/DBZ.ppu index 43a627a0..b3752269 100644 Binary files a/lib/DBZ.ppu and b/lib/DBZ.ppu differ diff --git a/lib/DFE.ppu b/lib/DFE.ppu index 47bf77fb..da75909f 100644 Binary files a/lib/DFE.ppu and b/lib/DFE.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 54728150..680da572 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/GPF.ppu b/lib/GPF.ppu index 0194c83c..76580ee1 100644 Binary files a/lib/GPF.ppu and b/lib/GPF.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index 2a1a5f2d..570d3341 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/IDOE.ppu b/lib/IDOE.ppu index d7260008..94f4b3c3 100644 Binary files a/lib/IDOE.ppu and b/lib/IDOE.ppu differ diff --git a/lib/IOPE.ppu b/lib/IOPE.ppu index 3da9f804..39ccb84b 100644 Binary files a/lib/IOPE.ppu and b/lib/IOPE.ppu differ diff --git a/lib/MCE.ppu b/lib/MCE.ppu index abc5df49..324f158c 100644 Binary files a/lib/MCE.ppu and b/lib/MCE.ppu differ diff --git a/lib/NCE.ppu b/lib/NCE.ppu index 0cd8676c..e518fe6b 100644 Binary files a/lib/NCE.ppu and b/lib/NCE.ppu differ diff --git a/lib/NMIE.ppu b/lib/NMIE.ppu index a490b2fe..fa05882c 100644 Binary files a/lib/NMIE.ppu and b/lib/NMIE.ppu differ diff --git a/lib/OOBE.ppu b/lib/OOBE.ppu index 32d025da..b27894a6 100644 Binary files a/lib/OOBE.ppu and b/lib/OOBE.ppu differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 977d2336..cb7d4215 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/PF.ppu b/lib/PF.ppu index 50ae20ff..f9ab75f5 100644 Binary files a/lib/PF.ppu and b/lib/PF.ppu differ diff --git a/lib/PS2_KEYBOARD_ISR.ppu b/lib/PS2_KEYBOARD_ISR.ppu index 324c7eef..de21e3ac 100644 Binary files a/lib/PS2_KEYBOARD_ISR.ppu and b/lib/PS2_KEYBOARD_ISR.ppu differ diff --git a/lib/RTC.ppu b/lib/RTC.ppu index 29077112..cebf96ab 100644 Binary files a/lib/RTC.ppu and b/lib/RTC.ppu differ diff --git a/lib/SFE.ppu b/lib/SFE.ppu index 3a4f183d..41b7c59b 100644 Binary files a/lib/SFE.ppu and b/lib/SFE.ppu differ diff --git a/lib/SNPE.ppu b/lib/SNPE.ppu index 40cb840c..cfad3caa 100644 Binary files a/lib/SNPE.ppu and b/lib/SNPE.ppu differ diff --git a/lib/TMR_0_ISR.ppu b/lib/TMR_0_ISR.ppu index 06b19667..4d99ab06 100644 Binary files a/lib/TMR_0_ISR.ppu and b/lib/TMR_0_ISR.ppu differ diff --git a/lib/UIE.ppu b/lib/UIE.ppu index 9a23c3f9..49538e8c 100644 Binary files a/lib/UIE.ppu and b/lib/UIE.ppu differ diff --git a/lib/USB.ppu b/lib/USB.ppu index fb8c7eb0..6ddf7f51 100644 Binary files a/lib/USB.ppu and b/lib/USB.ppu differ diff --git a/lib/arp.ppu b/lib/arp.ppu index d365b89b..ce880aec 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 1a4d4e4c..773319f0 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/console.ppu b/lib/console.ppu index 873c8f25..dce98f72 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index 740e134c..a53e4e1f 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/fat32.ppu b/lib/fat32.ppu index c9e4a62a..612ca43a 100644 Binary files a/lib/fat32.ppu and b/lib/fat32.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index be6e6b96..9d0f4174 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index 586c7d8e..6e94af3d 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 02f5f323..0a6e295f 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isrmanager.ppu b/lib/isrmanager.ppu index b0554949..2e406ad8 100644 Binary files a/lib/isrmanager.ppu and b/lib/isrmanager.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 310339b6..1b160be9 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 49c197bb..da09df7b 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 20ebd80d..cb94c33f 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 2476e3ea..9d631134 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 4ad41334..c31488e7 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index cd7757b4..1a4c12cd 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index 32e1275f..2785a763 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 5b137f5e..fd56597f 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/netutils.ppu b/lib/netutils.ppu index e04a4f39..8897b74b 100644 Binary files a/lib/netutils.ppu and b/lib/netutils.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index f0776905..c3092c9f 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/serial.ppu b/lib/serial.ppu index cfaff7ee..b342f294 100644 Binary files a/lib/serial.ppu and b/lib/serial.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index 8cb98fe2..53e35d2b 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/strings.ppu b/lib/strings.ppu index 1eaa4643..31289073 100644 Binary files a/lib/strings.ppu and b/lib/strings.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index e0027aca..51235a65 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/tracer.ppu b/lib/tracer.ppu index 59e82b00..e7ce3b20 100644 Binary files a/lib/tracer.ppu and b/lib/tracer.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 62525373..11d6a5f6 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index 8f4d0462..1bc29060 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/include/util.pas b/src/include/util.pas index ee1205ba..944c37c9 100644 --- a/src/include/util.pas +++ b/src/include/util.pas @@ -48,6 +48,8 @@ procedure sleep(seconds : uint32); function BCDToUint8(bcd : uint8) : uint8; +procedure resetSystem(); + var endptr : uint32; external name '__end'; stack : uint32; external name 'KERNEL_STACK'; @@ -325,6 +327,18 @@ begin BCDToUint8:= ((bcd SHR 4) * 10) + (bcd AND $0F); end; +procedure resetSystem(); +var + good : uint8; + +begin + CLI; + good:= $02; + while (good AND $02) > 0 do good:= inb($64); + outb($64, $FE); + halt_and_catch_fire; +end; + procedure BSOD(fault : pchar; info : pchar); var trace : pchar; diff --git a/src/prog/terminal.pas b/src/prog/terminal.pas index c0dbbe3f..e64ed064 100644 --- a/src/prog/terminal.pas +++ b/src/prog/terminal.pas @@ -394,6 +394,11 @@ begin end; end; +procedure Reboot(Params : PParamList); +begin + resetSystem; +end; + procedure init; begin console.writestringln('TERMINAL: INIT BEGIN.'); @@ -409,6 +414,7 @@ begin registerCommand('PATTERN', @cockwomble, 'Print an animated pattern to the screen.'); registerCommand('TIME', @printTime, 'Print the current time.'); registerCommand('SERIAL', @SendSerial, 'Send ''helloworld'' through COM1.'); + registerCommand('REBOOT', @Reboot, 'Reboot the system.'); console.writestringln('TERMINAL: INIT END.'); end;