diff --git a/assets/disk0/!BOOTSEC b/assets/disk0/!BOOTSEC
index 5e24980..cc49c78 100644
--- a/assets/disk0/!BOOTSEC
+++ b/assets/disk0/!BOOTSEC
@@ -1 +1 @@
-let p=_BIOS.FIRST_BOOTABLE_PORT;com.sendMessage(p[0],"DEVRST\x17");com.sendMessage(p[0],'OPENR"tvdos/hyve.SYS",'+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("TVDOS.SYS not found");println("Shutting down...");println("It is now safe to turn off the power")
\ No newline at end of file
+let p=_BIOS.FIRST_BOOTABLE_PORT;com.sendMessage(p[0],"DEVRST\x17");com.sendMessage(p[0],'OPENR"tvdos/TVDOS.SYS",'+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("TVDOS.SYS not found");println("Shutting down...");println("It is now safe to turn off the power")
\ No newline at end of file
diff --git a/assets/disk0/tvdos/TVDOS.SYS b/assets/disk0/tvdos/TVDOS.SYS
index 3796c70..11c4e18 100644
--- a/assets/disk0/tvdos/TVDOS.SYS
+++ b/assets/disk0/tvdos/TVDOS.SYS
@@ -1406,9 +1406,6 @@ let requireFromMemory = (ptr) => {
}*/
-var GL = require("A:/tvdos/include/gl.mjs")
-
-
// @param cmdsrc JS source code
// @param args arguments for the program, must be Array, and args[0] is always the name of the program, e.g.
// for command line 'echo foo bar', args[0] must be 'echo'
@@ -1421,7 +1418,7 @@ var execApp = (cmdsrc, args, appname) => {
`var ${appname}=function(exec_args){${injectIntChk(cmdsrc, intchkFunName)}\n};` +
`${appname}`); // making 'exec_args' a app-level global
- execAppPrg(args);
+ return execAppPrg(args);
}
diff --git a/assets/disk0/tvdos/bin/command.js b/assets/disk0/tvdos/bin/command.js
index 23479d8..11b1457 100644
--- a/assets/disk0/tvdos/bin/command.js
+++ b/assets/disk0/tvdos/bin/command.js
@@ -686,7 +686,7 @@ require = function(path) {
}
}
-shell.execute = function(line) {
+shell.execute = function(line, nameOverride) {
if (0 == line.size) return
let parsedTokens = shell.parse(line) // echo, "hai", |, less
let statements = [] // [[echo, "hai"], [less]]
@@ -835,7 +835,7 @@ shell.execute = function(line) {
// replace $0
newLine = newLine.replaceAll('$0', tokens.slice(1).join(' '))
- shell.execute(newLine)
+ shell.execute(newLine, cmd)
})
}
else if ("APP" == extension) {
@@ -852,6 +852,10 @@ shell.execute = function(line) {
errorlevel = 0 // reset the number
if (_G.shellProgramTitles === undefined) _G.shellProgramTitles = []
+ if (nameOverride !== undefined) {
+ tokens[0] = (''+nameOverride)
+ cmd = tokens[0]
+ }
_G.shellProgramTitles.push(cmd.toUpperCase())
sendLcdMsg(_G.shellProgramTitles[_G.shellProgramTitles.length - 1])
//serial.println(_G.shellProgramTitles)
diff --git a/assets/disk0/tvdos/bin/taut_helpmsg.js b/assets/disk0/tvdos/bin/taut_helpmsg.js
index 4a87dcc..403ad3f 100644
--- a/assets/disk0/tvdos/bin/taut_helpmsg.js
+++ b/assets/disk0/tvdos/bin/taut_helpmsg.js
@@ -116,7 +116,8 @@ Timeline has two distinct modes: view and edit mode. Two modes are toggled using
GLOBAL EDIT
\u00B7${'\u00B8'.repeat(11)}\u00B9
-&bul;Q : retune current song into different tuning
+&bul;Q : retune current song into different tuning and strategy
+ In general, nearest-note works best for macrotonals, nearest-harmonic and nearest-delta works best for highly microtonals (31+); 17- and 19-TET takes nearest-harmonic pretty well, while 22-TET seem to only benefit from the nearest-note
`
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/assets/disk0/tvdos/bin/zfm.js b/assets/disk0/tvdos/bin/zfm.js
index 71d70ab..2188486 100644
--- a/assets/disk0/tvdos/bin/zfm.js
+++ b/assets/disk0/tvdos/bin/zfm.js
@@ -66,7 +66,7 @@ const EXEC_FUNS = {
"txt": (f) => _G.shell.execute(`less "${f}"`),
"md": (f) => _G.shell.execute(`less "${f}"`),
"log": (f) => _G.shell.execute(`less "${f}"`),
- "taud": (f) => _G.shell.execute(`taut "${f}"`),
+ "taud": (f) => _G.shell.execute(`microtone "${f}"`),
}
let windowMode = 0 // 0 == left, 1 == right
diff --git a/tsvm_core/src/net/torvald/tsvm/peripheral/TestDiskDrive.kt b/tsvm_core/src/net/torvald/tsvm/peripheral/TestDiskDrive.kt
index bf8fc91..69ddb1b 100644
--- a/tsvm_core/src/net/torvald/tsvm/peripheral/TestDiskDrive.kt
+++ b/tsvm_core/src/net/torvald/tsvm/peripheral/TestDiskDrive.kt
@@ -561,7 +561,10 @@ class TestDiskDrive(private val vm: VM, private val driveNum: Int, theRootPath:
statusCode.set(STATE_CODE_STANDBY)
}
else if (inputString.startsWith("USAGE")) {
- recipient?.writeout(composePositiveAns("USED123456/TOTAL654321"))
+ val used = rootPath.walkTopDown().filter { it.isFile }.map { it.length() }.sum()
+ .coerceIn(0L, Int.MAX_VALUE.toLong())
+ val total = rootPath.totalSpace.coerceIn(0L, Int.MAX_VALUE.toLong())
+ recipient?.writeout(composePositiveAns("USED$used/TOTAL$total"))
statusCode.set(STATE_CODE_STANDBY)
}
else