mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 19:51:51 +09:00
test read cluster via COM
This commit is contained in:
18
assets/disk0/tvdos/bin/defrag.js
Normal file
18
assets/disk0/tvdos/bin/defrag.js
Normal 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()
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user