diff --git a/Asuro.iso b/Asuro.iso index c476cded..a62ac4dd 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index c8af5a5d..574a0562 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 c8af5a5d..574a0562 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index 12948156..80c919df 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index b0588ba1..411ac5f9 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index b21c0998..bb1bb018 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index e3cc6baa..84cd9397 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 2f032360..2a7cae3e 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/scheduler.ppu b/lib/scheduler.ppu index 6465bf31..417ab81a 100644 Binary files a/lib/scheduler.ppu and b/lib/scheduler.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index b2d1fe09..952ccb1f 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 3c92ddb0..e2a00044 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/src/kernel.pas b/src/kernel.pas index 427c4ab9..8257b191 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -60,6 +60,16 @@ begin console.writestringln('MB'); end; +procedure terminal_command_bsod(params : PParamList); +begin + if ParamCount(params) > 1 then begin + bsod(getparam(0, params), getparam(1, params)); + end else begin + console.writestringln('Invalid number of params.'); + console.writestringln('Usage: bsod '); + end; +end; + procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain']; var c : uint8; @@ -81,6 +91,7 @@ begin terminal.init(); terminal.registerCommand('MEMINFO', @terminal_command_meminfo, 'Print Simple Memory Information.'); + terminal.registerCommand('BSOD', @terminal_command_bsod, 'Force a Panic Screen.'); drivermanagement.init(); @@ -152,7 +163,7 @@ begin console.setdefaultattribute(console.combinecolors(White, Black)); console.writestringln(''); console.writestringln('Press any key to boot in to Asuro Terminal...'); - //BSOD('TOPKEK', 'Because why not?'); + keyboard.hook(@temphook); util.halt_and_dont_catch_fire; diff --git a/src/terminal.pas b/src/terminal.pas index a874bc48..71ef3579 100644 --- a/src/terminal.pas +++ b/src/terminal.pas @@ -48,6 +48,8 @@ procedure run; procedure init; procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar); function getParams(buf : TCommandBuffer) : PParamList; +function paramCount(params : PParamList) : uint32; +function getParam(index : uint32; params : PParamList) : pchar; implementation