test read cluster via COM

This commit is contained in:
minjaesong
2023-06-29 02:19:49 +09:00
parent a46db3f206
commit afc9eb9e74
2 changed files with 27 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
let drive = _G.shell.getCurrentDrive()
let port = _TVDOS.DRV.FS.SERIAL._toPorts(drive)
com.sendMessage(port[0], "CLOSE")
for (let i = 0; i < 20; i++) {
com.sendMessage(port[0], "READCLUST"+i)
let response = com.getStatusCode(port[0])
if (response < 0 || response >= 128) {
throw Error(`Reading cluster #${i} failed with `+response)
}
let bytes = com.pullMessage(port[0])
print(`#${i}\t`)
for (let k = 0; k < 16; k++) {
print(bytes.charCodeAt(k).toString(16).padStart(2, '0'))
print(' ')
}
println()
}

View File

@@ -339,6 +339,15 @@ class TevdDiskDrive(private val vm: VM, private val driveNum: Int, theTevdPath:
fileOpenMode = -1
statusCode.set(STATE_CODE_STANDBY)
}
else if (inputString.startsWith("READCLUST")) {
if (fileOpen) {
statusCode.set(STATE_CODE_FILE_ALREADY_OPENED)
return
}
val clustnum = inputString.substring(9 until inputString.length).toInt()
resetBuf()
messageComposeBuffer.write(DOM.getRawCluster(clustnum))
}
else if (inputString.startsWith("READ")) {
//readModeLength = inputString.substring(4 until inputString.length).toInt()