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