mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 11:51:49 +09:00
wippie
This commit is contained in:
@@ -1 +1,16 @@
|
||||
let p=_BIOS.FIRST_BOOTABLE_PORT;com.sendMessage(p[0],"DEVRST\x17");com.sendMessage(p[0],'OPENR"WORKBENCH",'+p[1]);let r=com.getStatusCode(p[0]);if(0==r)if(com.sendMessage(p[0],"READ"),r=com.getStatusCode(p[0]),0==r){let g=com.pullMessage(p[0]);eval(g)}else println("I/O Error");else println("WORKBENCH not found");println("Shutting down...");println("It is now safe to turn off the power");
|
||||
let p=_BIOS.FIRST_BOOTABLE_PORT;
|
||||
com.sendMessage(p[0],"DEVRST\x17");
|
||||
com.sendMessage(p[0],'OPENR"DESKTOP",'+p[1]);
|
||||
let r=com.getStatusCode(p[0]);
|
||||
if(0==r)
|
||||
if(com.sendMessage(p[0],"READ"),r=com.getStatusCode(p[0]),0==r){
|
||||
let g=com.pullMessage(p[0]);
|
||||
eval(g)
|
||||
}
|
||||
else
|
||||
println("I/O Error");
|
||||
else {
|
||||
println("DESKTOP not found");
|
||||
}
|
||||
|
||||
println("CPU halted");
|
||||
|
||||
65
assets/disk1/DESKTOP
Normal file
65
assets/disk1/DESKTOP
Normal file
@@ -0,0 +1,65 @@
|
||||
con.move(2,1)
|
||||
|
||||
|
||||
|
||||
let prog1 = "let k=3;while(1){print(k);sys.sleep(600);}"
|
||||
let prog2 = "let k=4;while(1){print(k);sys.sleep(500);}"
|
||||
let progIllegal = "parallel.spawnNewContext()"
|
||||
|
||||
let context1 = parallel.spawnNewContext()
|
||||
let context2 = parallel.spawnNewContext()
|
||||
let contextIllegal = parallel.spawnNewContext()
|
||||
|
||||
let runner1 = parallel.attachProgram("Program1", context1, prog1)
|
||||
let runner2 = parallel.attachProgram("Program2", context2, prog2)
|
||||
let runnerIllegal = parallel.attachProgram("ProgramIllegal", contextIllegal, progIllegal)
|
||||
|
||||
con.move(2,1)
|
||||
parallel.launch(runner1)
|
||||
parallel.launch(runner2)
|
||||
|
||||
|
||||
|
||||
|
||||
function showTaskmgr() {
|
||||
let contexts = parallel.getThreadPool()
|
||||
con.clear()
|
||||
contexts.forEach(it=>{
|
||||
println("> "+it.getName())
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
let exit = false
|
||||
|
||||
while (!exit) {
|
||||
|
||||
parallel.suspend(runner1)
|
||||
parallel.suspend(runner2)
|
||||
let [y,x] = con.getyx()
|
||||
con.move(1,2)
|
||||
print(`Used mem: ${sys.getUsedMem()} ; ${Math.random()} `)
|
||||
con.move(y,x)
|
||||
parallel.resume(runner1)
|
||||
parallel.resume(runner2)
|
||||
|
||||
sys.spin()
|
||||
|
||||
if (sys.getSysrq()) exit = true
|
||||
}
|
||||
|
||||
parallel.launch(runnerIllegal) // will throw TypeError with Unknown identifier
|
||||
|
||||
sys.unsetSysrq()
|
||||
|
||||
parallel.suspend(runner1)
|
||||
parallel.suspend(runner2)
|
||||
|
||||
showTaskmgr() // will show three programs
|
||||
|
||||
parallel.kill(runner1)
|
||||
parallel.kill(runner2)
|
||||
parallel.kill(runnerIllegal)
|
||||
//showTaskmgr() // will show nothing
|
||||
|
||||
println("Threads killed")
|
||||
@@ -1,33 +0,0 @@
|
||||
con.move(2,1)
|
||||
|
||||
|
||||
|
||||
let prog1 = "while(1){print(1);sys.sleep(600);}"
|
||||
let prog2 = "while(1){print(2);sys.sleep(500);}"
|
||||
|
||||
let context1 = parallel.spawnNewContext()
|
||||
let context2 = parallel.spawnNewContext()
|
||||
|
||||
let runner1 = parallel.attachProgram(context1, prog1)
|
||||
let runner2 = parallel.attachProgram(context2, prog2)
|
||||
|
||||
con.move(2,1)
|
||||
parallel.launch(runner1)
|
||||
parallel.launch(runner2)
|
||||
|
||||
|
||||
let exit = false
|
||||
|
||||
while (!exit) {
|
||||
|
||||
parallel.suspend(runner1)
|
||||
parallel.suspend(runner2)
|
||||
let [y,x] = con.getyx()
|
||||
con.move(1,2)
|
||||
print(`Used mem: ${sys.getUsedMem()} ; ${Math.random()} `)
|
||||
con.move(y,x)
|
||||
parallel.resume(runner1)
|
||||
parallel.resume(runner2)
|
||||
|
||||
sys.spin()
|
||||
}
|
||||
Reference in New Issue
Block a user