diff --git a/assets/DOSBOOT.tevd b/assets/DOSBOOT.tevd index e564ad3..147c1ec 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 e564ad3..147c1ec 100644 Binary files a/assets/DOSBOOT.tevd.original and b/assets/DOSBOOT.tevd.original differ diff --git a/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt b/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt index 03963a8..8a39d73 100644 --- a/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt +++ b/tsvm_core/src/net/torvald/tsvm/peripheral/TevdDiskDrive.kt @@ -1,8 +1,7 @@ package net.torvald.tsvm.peripheral -import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.EntryDirectory -import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil -import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toCanonicalString +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.* +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil.checkReadOnly import net.torvald.tsvm.VM import java.io.* import java.util.* @@ -127,7 +126,12 @@ class TevdDiskDrive(private val vm: VM, private val driveNum: Int, private val t val inputData = if (inputData.size != BLOCK_SIZE) ByteArray(BLOCK_SIZE) { if (it < inputData.size) inputData[it] else 0 } else inputData - file.writeBytes(inputData) + val creationTime = VDUtil.currentUnixtime + DOM.checkReadOnly() + val file = EntryFile(BLOCK_SIZE.toLong()) + file.getContent().appendBytes(inputData) + + DOM.entries[1] = DiskEntry(1, 1, "TEVDBOOT".toByteArray(VM.CHARSET), creationTime, creationTime, file) fileOpenMode = -1 diff --git a/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt b/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt index 3b68357..5c51fea 100644 --- a/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt +++ b/tsvm_executable/src/net/torvald/tsvm/BuildTvdosBootable.kt @@ -43,6 +43,8 @@ fun main(args: Array) { disk.checkReadOnly() // disk.checkCapacity(4096) + it.parentEntryID = 1 + (it.contents as EntryFile).let { file -> val bytes = file.getContent() bytes.appendBytes(ByteArray(4096 - bytes.size.toInt()))