diff --git a/assets/DOSBOOT.tevd b/assets/DOSBOOT.tevd index 93eb572..ee152ab 100644 Binary files a/assets/DOSBOOT.tevd and b/assets/DOSBOOT.tevd differ diff --git a/assets/DOSBOOT.tevd.original b/assets/DOSBOOT.tevd.original index 93eb572..7259863 100644 Binary files a/assets/DOSBOOT.tevd.original and b/assets/DOSBOOT.tevd.original differ diff --git a/assets/disk0/tvdos/bin/commandko.js b/assets/disk0/home/commandko.js similarity index 100% rename from assets/disk0/tvdos/bin/commandko.js rename to assets/disk0/home/commandko.js diff --git a/assets/disk0/tvdos/bin/fsh.js b/assets/disk0/home/fsh.js similarity index 99% rename from assets/disk0/tvdos/bin/fsh.js rename to assets/disk0/home/fsh.js index 45d4e07..5acc322 100644 --- a/assets/disk0/tvdos/bin/fsh.js +++ b/assets/disk0/home/fsh.js @@ -262,7 +262,7 @@ _fsh.drawTitlebar() // TEST con.move(2,1); -print("Hit backspace to exit") +print("fSh is very much in-dev! Hit backspace to exit") // TODO update for events: key down (updates some widgets), timer (updates clock and calendar widgets) while (true) { diff --git a/assets/disk0/tvdos/bin/gfont.gz b/assets/disk0/home/gfont.gz similarity index 100% rename from assets/disk0/tvdos/bin/gfont.gz rename to assets/disk0/home/gfont.gz diff --git a/assets/disk0/tvdos/bin/graphicstest.js b/assets/disk0/home/graphicstest.js similarity index 100% rename from assets/disk0/tvdos/bin/graphicstest.js rename to assets/disk0/home/graphicstest.js diff --git a/assets/disk0/tvdos/bin/gterm.js b/assets/disk0/home/gterm.js similarity index 100% rename from assets/disk0/tvdos/bin/gterm.js rename to assets/disk0/home/gterm.js diff --git a/assets/disk0/tvdos/wall.bytes b/assets/disk0/home/wall.bytes similarity index 100% rename from assets/disk0/tvdos/wall.bytes rename to assets/disk0/home/wall.bytes diff --git a/assets/disk0/tvdos/wall.png b/assets/disk0/home/wall.png similarity index 100% rename from assets/disk0/tvdos/wall.png rename to assets/disk0/home/wall.png diff --git a/assets/disk0/root.bootable/!BOOTSEC b/assets/disk0/root.bootable/!BOOTSEC new file mode 100644 index 0000000..faca567 --- /dev/null +++ b/assets/disk0/root.bootable/!BOOTSEC @@ -0,0 +1 @@ +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/root.bootable/AUTOEXEC.BAT b/assets/disk0/root.bootable/AUTOEXEC.BAT new file mode 100644 index 0000000..7f37bc8 --- /dev/null +++ b/assets/disk0/root.bootable/AUTOEXEC.BAT @@ -0,0 +1,8 @@ +echo "Starting TVDOS..." + +rem put set-xxx commands here: +rem e.g. set PATH=\home\my-cool-project;$PATH +set KEYBOARD=us_qwerty + +rem this line specifies which shell to be presented after the boot precess: +command /fancy diff --git a/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt b/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt new file mode 100644 index 0000000..d19ae71 --- /dev/null +++ b/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt @@ -0,0 +1,44 @@ +package net.torvald.tsvm + +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil +import net.torvald.tsvm.VM +import java.io.File + +/** + * Created by minjaesong on 2022-12-21. + */ +fun main(args: Array) { + if (args.size != 1) + println("Usage: java -jar BuildTvdosBootable.jar outfile") + + val disk = VDUtil.createNewDisk(720L shl 10, "TVDOS", VM.CHARSET) + + val tvdosDir = VDUtil.addDir(disk, 0, "tvdos".toByteArray(VM.CHARSET)) + val homeDir = VDUtil.addDir(disk, 0, "home".toByteArray(VM.CHARSET)) + + //tvdos/bin/* + VDUtil.importDirRecurse(disk, File("assets/disk0/tvdos/bin"), tvdosDir, VM.CHARSET) + + //tvdos/* + listOf( + VDUtil.importFile(File("assets/disk0/tvdos/gl.js"), disk.generateUniqueID(), VM.CHARSET), + VDUtil.importFile(File("assets/disk0/tvdos/TVDOS.SYS"), disk.generateUniqueID(), VM.CHARSET), + VDUtil.importFile(File("assets/disk0/tvdos/us_colemak.key"), disk.generateUniqueID(), VM.CHARSET), + VDUtil.importFile(File("assets/disk0/tvdos/us_qwerty.key"), disk.generateUniqueID(), VM.CHARSET), +// VDUtil.importFile(File("assets/disk0/tvdos/wall.bytes"), disk.generateUniqueID(), VM.CHARSET), +// VDUtil.importFile(File("assets/disk0/tvdos/wall.png"), disk.generateUniqueID(), VM.CHARSET), + ).forEach { + VDUtil.addFile(disk, tvdosDir, it) + } + + // bare file in root dir + listOf( + VDUtil.importFile(File("assets/disk0/root.bootable/!BOOTSEC"), disk.generateUniqueID(), VM.CHARSET), + VDUtil.importFile(File("assets/disk0/root.bootable/AUTOEXEC.BAT"), disk.generateUniqueID(), VM.CHARSET), + ).forEach { + VDUtil.addFile(disk, 0, it) + } + + + VDUtil.dumpToRealMachine(disk, File(args[0])) +}