mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-09 06:34:04 +09:00
system control on sbin
This commit is contained in:
54
assets/disk0/tvdos/sbin/sysctl.js
Normal file
54
assets/disk0/tvdos/sbin/sysctl.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// synopsis: sysctl {reset|...} target
|
||||
|
||||
|
||||
const verbs = {
|
||||
"reset": ["Reset", "Resetting"]
|
||||
}
|
||||
const actions = {
|
||||
"reset": {
|
||||
"mmu": ()=>{
|
||||
for (let k = 0; k < sys.maxmem(); k += 64) {
|
||||
try {
|
||||
sys.free(k)
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
},
|
||||
"graphics": ()=>{
|
||||
graphics.resetPalette()
|
||||
con.reset_graphics()
|
||||
graphics.clearPixels(255)
|
||||
graphics.clearPixels2(240)
|
||||
graphics.setGraphicsMode(0)
|
||||
graphics.setBackground(34,51,68)
|
||||
sys.poke(-1299460, 20)
|
||||
sys.poke(-1299460, 21)
|
||||
}
|
||||
"audio": ()=>{
|
||||
for (let k = 0; k < 4; k++) {
|
||||
audio.stop(k)
|
||||
audio.purgeQueue(k)
|
||||
audio.resetParams(k)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const verb = exec_args[1]
|
||||
const target = exec_args[2]
|
||||
|
||||
if (verb && !target) {
|
||||
println(`sysctl: no target specified for ${verbs[verb][1]}`)
|
||||
return 1
|
||||
}
|
||||
if (!verb) {
|
||||
println("Usage: sysctl {reset|...} target")
|
||||
return 10
|
||||
}
|
||||
|
||||
let actionfun = actions[verb][target]
|
||||
if (actionfun) actionfun()
|
||||
else {
|
||||
printerrln(`sysctl: unknown target ${target}`)
|
||||
return 1
|
||||
}
|
||||
Reference in New Issue
Block a user