mirror of
https://github.com/ShadowKatStudios/OC-Minitel.git
synced 2024-11-23 02:28:05 +11:00
push some old embedded-related work
This commit is contained in:
parent
a85e2b01c2
commit
57606424ca
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
*-mini.lua
|
*-mini.lua
|
||||||
*.swp
|
*.swp
|
||||||
mini-*.lua
|
mini-*.lua
|
||||||
|
nminiprompt.lua
|
||||||
|
82
Embedded/command.lua
Normal file
82
Embedded/command.lua
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
do
|
||||||
|
pwd = "/boot"
|
||||||
|
local shenv = {}
|
||||||
|
setmetatable(shenv,{__index=_G})
|
||||||
|
|
||||||
|
local function simplify(path)
|
||||||
|
local npath, rstr = {}, ""
|
||||||
|
for k,v in ipairs(fs.segments(path)) do
|
||||||
|
if v == ".." then
|
||||||
|
npath[#npath] = nil
|
||||||
|
elseif v ~= "." then
|
||||||
|
npath[#npath+1] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for k,v in pairs(npath) do
|
||||||
|
rstr = rstr .. "/" .. v
|
||||||
|
end
|
||||||
|
return rstr
|
||||||
|
end
|
||||||
|
local function lpath(path)
|
||||||
|
if not path then return end
|
||||||
|
if path:sub(1,1) == "/" then -- absolute path
|
||||||
|
return simplify(path)
|
||||||
|
else
|
||||||
|
return simplify(pwd.."/"..path)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function shenv.ls(path)
|
||||||
|
path = lpath(path) or pwd
|
||||||
|
return table.unpack(fs.list(path))
|
||||||
|
end
|
||||||
|
function shenv.mkdir(path)
|
||||||
|
path = lpath(path) or pwd
|
||||||
|
return fs.makeDirectory(path)
|
||||||
|
end
|
||||||
|
function shenv.rm(path)
|
||||||
|
path = lpath(path) or pwd
|
||||||
|
return fs.remove(path)
|
||||||
|
end
|
||||||
|
function cd(path)
|
||||||
|
path = path or "."
|
||||||
|
pwd = lpath(path)
|
||||||
|
end
|
||||||
|
shenv.shutdown = computer.shutdown
|
||||||
|
|
||||||
|
while true do
|
||||||
|
write(pwd.."> ")
|
||||||
|
local inp, tWords = read(), {}
|
||||||
|
for word in inp:gmatch("%S+") do
|
||||||
|
tWords[#tWords+1] = word
|
||||||
|
end
|
||||||
|
if tWords[1] then
|
||||||
|
if type(shenv[tWords[1]]) == "function" then
|
||||||
|
local fname = table.remove(tWords,1)
|
||||||
|
local tres = {pcall(shenv[fname],table.unpack(tWords))}
|
||||||
|
if tres[1] == true then
|
||||||
|
table.remove(tres,1)
|
||||||
|
end
|
||||||
|
for k,v in pairs(tres) do print(v) end
|
||||||
|
elseif fs.exists(lpath(tWords[1])) or fs.exists(tostring(lpath(tWords[1]))..".lua") then
|
||||||
|
local fname = table.remove(tWords,1)
|
||||||
|
local fobj = fs.open(lpath(fname),"rb") or fs.open(tostring(lpath(fname))..".lua","rb")
|
||||||
|
if fobj then
|
||||||
|
local fcontent = fobj:read("*a")
|
||||||
|
fobj:close()
|
||||||
|
local tres = {pcall(load(fcontent),table.unpack(tWords))}
|
||||||
|
if tres[1] == true then
|
||||||
|
table.remove(tres,1)
|
||||||
|
end
|
||||||
|
print(table.unpack(tres))
|
||||||
|
else
|
||||||
|
print("error opening file")
|
||||||
|
end
|
||||||
|
elseif load(inp) then
|
||||||
|
print(pcall(load(inp,"input","t",shenv)))
|
||||||
|
elseif #tWords > 0 then
|
||||||
|
print("error: file or builtin function not found")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
27
Embedded/common-termsetup.lua
Normal file
27
Embedded/common-termsetup.lua
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
local ga,sa = component.list("gpu")(),component.list("screen")()
|
||||||
|
GPU = component.proxy(ga)
|
||||||
|
GPU.bind(sa)
|
||||||
|
|
||||||
|
write = vt100emu(GPU)
|
||||||
|
function print(...)
|
||||||
|
for k,v in pairs({...}) do
|
||||||
|
write(tostring(v).."\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function read()
|
||||||
|
local sBuffer = ""
|
||||||
|
repeat
|
||||||
|
local tSignal = {computer.pullSignal()}
|
||||||
|
if tSignal[1] == "key_down" then
|
||||||
|
if tSignal[3] > 31 and tSignal[3] < 127 then
|
||||||
|
write(string.char(tSignal[3]))
|
||||||
|
sBuffer = sBuffer .. string.char(tSignal[3])
|
||||||
|
elseif tSignal[3] == 8 and tSignal[4] == 14 and sBuffer:len() > 0 then
|
||||||
|
write("\8 \8")
|
||||||
|
sBuffer = sBuffer:sub(1,-2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
until tSignal[1] == "key_down" and tSignal[3] == 13 and tSignal[4] == 28
|
||||||
|
write("\n")
|
||||||
|
return sBuffer
|
||||||
|
end
|
6
Embedded/ufs.lua.min
Normal file
6
Embedded/ufs.lua.min
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
{"segments","S"},
|
||||||
|
{"path","P"},
|
||||||
|
{"fsi","F"},
|
||||||
|
{"length","L"},
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user