diff --git a/assets/disk0/tvdos/bin/less.js b/assets/disk0/tvdos/bin/less.js index 6375288..e92e04d 100644 --- a/assets/disk0/tvdos/bin/less.js +++ b/assets/disk0/tvdos/bin/less.js @@ -79,8 +79,9 @@ let repaint = function() { if (cy <= termH) { if (cx >= 0 && cx < termW) { con.move(cy, cx); - if (char != 10 && char != 13) + if (char != 10 && char != 13) { con.addch(char);con.curs_right(); + } } cx += 1; } diff --git a/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt b/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt index a557472..0aa4310 100644 --- a/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt +++ b/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt @@ -155,7 +155,7 @@ class TevdDiskDrive(private val vm: VM, private val driveNum: Int, theTevdPath: file.pwrite(writeBuffer, 0, writeBuffer.size, filesize) } else if (writeMode) - file.writeBytes(writeBuffer) + file.overwrite(writeBuffer) writeMode = false appendMode = false @@ -167,9 +167,10 @@ class TevdDiskDrive(private val vm: VM, private val driveNum: Int, theTevdPath: val inputData = if (inputData.size != BLOCK_SIZE) ByteArray(BLOCK_SIZE) { if (it < inputData.size) inputData[it] else 0 } else inputData - file.writeBytes(inputData) + DOM.writeBoot(inputData) fileOpenMode = -1 + fileOpen = false } else { val inputString = inputData.trimNull().toString(VM.CHARSET) diff --git a/tsvm_executable/src/net/torvald/tsvm/TevdMenu.kt b/tsvm_executable/src/net/torvald/tsvm/TevdMenu.kt index 13d33d0..344ccf9 100644 --- a/tsvm_executable/src/net/torvald/tsvm/TevdMenu.kt +++ b/tsvm_executable/src/net/torvald/tsvm/TevdMenu.kt @@ -7,6 +7,7 @@ import net.torvald.reflection.forceInvoke import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.DiskSkimmer.Companion.read import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.archivers.ClusteredFormatDOM import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.archivers.seekToCluster +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toHex import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toUint import net.torvald.tsvm.VMEmuExecutableWrapper.Companion.FONT import net.torvald.tsvm.peripheral.TevdDiskDrive @@ -24,6 +25,15 @@ class TevdMenu(parent: VMEmuExecutable, x: Int, y: Int, w: Int, h: Int) : EmuMen } override fun hide() { + + val dev = parent.currentlyPersistentVM?.vm?.getIO()?.blockTransferPorts?.getOrNull(cardIndex ?: -1)?.recipient + if (dev?.javaClass?.simpleName == "TevdDiskDrive") { + val dev = dev as TevdDiskDrive + val DOM = dev.extortField("DOM")!! + + DOM.forceInvoke("bbbb", arrayOf("false")) + } + } override fun update() { @@ -57,6 +67,8 @@ class TevdMenu(parent: VMEmuExecutable, x: Int, y: Int, w: Int, h: Int) : EmuMen val DOM = dev.extortField("DOM")!! val ARCHIVE = DOM.extortField("ARCHIVE")!! + DOM.forceInvoke("bbbb", arrayOf("true")) + setupHook(dev, batch) batch.inUse {