@declare_func("__kgetcs", "int", "()")@
@declare_func("__kgetds", "int", "()")@
@declare_func("__kgetss", "int", "()")@
@declare_func("__kgetes", "int", "()")@
@declare_func("__kgetfs", "int", "()")@
@declare_func("__kgetgs", "int", "()")@
@declare_func("__kgetcr0", "int", "()")@
@declare_func("__kgetcr2", "int", "()")@
@declare_func("__kgetcr3", "int", "()")@
@declare_func("__kgetcr4", "int", "()")@
@declare_func("__kgeteflags", "int", "()")@
@declare_func("__khalt", "void", "()")@
function(int errorcode, int addr, cstr type, cstr message) kpanic -> void does
kterm.update_hook=_update_framebuffer|TerminalUpdateHook
kterm:bsod()
kterm:printl("********************************************************************************")
kterm:printl(" THOUSANDER MEDITATION")
kterm:printl(type)
kterm:printl(message)
kterm:printl("********************************************************************************")
kterm:print("\nError Code: ")
kterm:dumpbin(errorcode)
kterm:print("\nIdentifier: ")
kterm:dumphexi(addr)
kterm:print("\n\nCS:")
kterm:dumphex(__kgetcs(), 2)
kterm:print(" DS:")
kterm:dumphex(__kgetds(), 2)
kterm:print(" SS:")
kterm:dumphex(__kgetss(), 2)
kterm:print(" ES:")
kterm:dumphex(__kgetes(), 2)
kterm:print(" FS:")
kterm:dumphex(__kgetfs(), 2)
kterm:print(" GS:")
kterm:dumphex(__kgetgs(), 2)
kterm:print("\nEFLAGS:")
kterm:dumpbin(__kgeteflags())
kterm:print("\nCR0:")
kterm:dumpbin(__kgetcr0())
kterm:print("\nCR2:")
kterm:dumphexi(__kgetcr2())
kterm:print(" CR3:")
kterm:dumphexi(__kgetcr3())
kterm:print("\nCR4:")
kterm:dumpbin(__kgetcr4())
kterm:print("\n")
orth::fail(type)
kterm:print("\n\nSystem halted")
__khalt()
return
function(cstr message, int num) ikpanici -> void does
kpanic(num, 0, message, "Internal Kernel Error :(")
return
function(cstr message) ikpanic -> void does
ikpanici(message, 0)
return