forked from Hyperion/HyperionOS
restructure for spm
This commit is contained in:
127
Src/Hyperion-kernel/lib/modules/Hyperion/50_tty.kmod
Normal file
127
Src/Hyperion-kernel/lib/modules/Hyperion/50_tty.kmod
Normal file
@@ -0,0 +1,127 @@
|
||||
--:Minify:--
|
||||
local kernel=...
|
||||
kernel.tty={}
|
||||
kernel.tty.inst={}
|
||||
|
||||
function kernel.tty.register(tty, ttyo)
|
||||
kernel.tty.inst[tty]=ttyo
|
||||
end
|
||||
|
||||
function kernel.tty.print(text)
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
kernel.tty.inst[term].print(text)
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.printInline(text)
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
kernel.tty.inst[term].printInline(text)
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.size()
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].size()
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.setCursorPos(x,y)
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].setCursorPos(x,y)
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.getCursorPos()
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].getCursorPos()
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.clear()
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].clear()
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.setTextColor(color)
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].setTextColor(color)
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.setBackgroundColor(color)
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].setBackgroundColor(color)
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.scroll(n)
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] then
|
||||
return kernel.tty.inst[term].scroll(n)
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.getTextColor()
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] and kernel.tty.inst[term].getTextColor then
|
||||
return kernel.tty.inst[term].getTextColor()
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.getBackgroundColor()
|
||||
local term=kernel.currentTask.term
|
||||
if term and kernel.tty.inst[term] and kernel.tty.inst[term].getBackgroundColor then
|
||||
return kernel.tty.inst[term].getBackgroundColor()
|
||||
end
|
||||
end
|
||||
|
||||
function kernel.tty.bind(ttyid)
|
||||
if not ttyid then
|
||||
return false, "No TTY ID specified"
|
||||
end
|
||||
if not kernel.tty.inst[ttyid] then
|
||||
return false, "TTY "..tostring(ttyid).." not registered"
|
||||
end
|
||||
kernel.currentTask.term=ttyid
|
||||
return true
|
||||
end
|
||||
|
||||
function kernel.tty.unbind()
|
||||
kernel.currentTask.term=false
|
||||
end
|
||||
|
||||
function kernel.tty.isBound()
|
||||
return kernel.currentTask.term ~= nil
|
||||
end
|
||||
|
||||
function kernel.tty.getBoundTTY()
|
||||
return kernel.currentTask.term
|
||||
end
|
||||
|
||||
kernel.syscalls["TTY_print"]=kernel.tty.print
|
||||
kernel.syscalls["TTY_printInline"]=kernel.tty.printInline
|
||||
kernel.syscalls["TTY_size"]=kernel.tty.size
|
||||
kernel.syscalls["TTY_setCursorPos"]=kernel.tty.setCursorPos
|
||||
kernel.syscalls["TTY_getCursorPos"]=kernel.tty.getCursorPos
|
||||
kernel.syscalls["TTY_clear"]=kernel.tty.clear
|
||||
kernel.syscalls["TTY_setTextColor"]=kernel.tty.setTextColor
|
||||
kernel.syscalls["TTY_setBackgroundColor"]=kernel.tty.setBackgroundColor
|
||||
kernel.syscalls["TTY_scroll"]=kernel.tty.scroll
|
||||
kernel.syscalls["TTY_getTextColor"]=kernel.tty.getTextColor
|
||||
kernel.syscalls["TTY_getBackgroundColor"]=kernel.tty.getBackgroundColor
|
||||
kernel.syscalls["TTY_bind"]=kernel.tty.bind
|
||||
kernel.syscalls["TTY_unbind"]=kernel.tty.unbind
|
||||
kernel.syscalls["TTY_isBound"]=kernel.tty.isBound
|
||||
kernel.syscalls["TTY_getBoundTTY"]=kernel.tty.getBoundTTY
|
||||
|
||||
kernel.log("TTY module loaded attempting to register console tty")
|
||||
kernel.status="init"
|
||||
Reference in New Issue
Block a user