Show the filenames of MOS saves log
This commit is contained in:
parent
e47730e131
commit
4884a8861f
|
@ -120,7 +120,10 @@ func (t *traceApplecorn) inspect() {
|
||||||
case 0xffda:
|
case 0xffda:
|
||||||
s = "OSARGS(?)"
|
s = "OSARGS(?)"
|
||||||
case 0xffdd:
|
case 0xffdd:
|
||||||
s = "OSFILE(?)"
|
controlBlock := uint16(regX) + uint16(regY)<<8
|
||||||
|
filenameAddress := t.a.mmu.peekWord(controlBlock)
|
||||||
|
filename := t.getTerminatedString(filenameAddress, 0x0d)
|
||||||
|
s = fmt.Sprintf("OSFILE(A=%02x,FILE=%s)", regA, filename)
|
||||||
case 0xffe0:
|
case 0xffe0:
|
||||||
s = fmt.Sprintf("OSRDCH()")
|
s = fmt.Sprintf("OSRDCH()")
|
||||||
skip = t.skipConsole
|
skip = t.skipConsole
|
||||||
|
@ -156,6 +159,11 @@ func (t *traceApplecorn) inspect() {
|
||||||
s = "OSCLI(?)"
|
s = "OSCLI(?)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s == "UNKNOWN" && t.skipConsole {
|
||||||
|
// Let's also skip not known calls
|
||||||
|
skip = true
|
||||||
|
}
|
||||||
|
|
||||||
t.call.api = pc
|
t.call.api = pc
|
||||||
t.call.a = regA
|
t.call.a = regA
|
||||||
t.call.x = regX
|
t.call.x = regX
|
||||||
|
@ -178,9 +186,6 @@ func (t *traceApplecorn) inspect() {
|
||||||
lineAddress := t.a.mmu.peekWord(cbAddress)
|
lineAddress := t.a.mmu.peekWord(cbAddress)
|
||||||
line := t.getString(lineAddress, regY)
|
line := t.getString(lineAddress, regY)
|
||||||
s = fmt.Sprintf(",line='%s'", line)
|
s = fmt.Sprintf(",line='%s'", line)
|
||||||
|
|
||||||
t.a.cpu.SetTrace(true)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,6 +204,19 @@ func (t *traceApplecorn) getString(address uint16, length uint8) string {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *traceApplecorn) getTerminatedString(address uint16, terminator uint8) string {
|
||||||
|
s := ""
|
||||||
|
for {
|
||||||
|
ch := t.a.mmu.Peek(address)
|
||||||
|
if ch == terminator {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
s += string(ch)
|
||||||
|
address++
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
func (t *traceApplecorn) vector(address uint16) uint16 {
|
func (t *traceApplecorn) vector(address uint16) uint16 {
|
||||||
return t.a.mmu.peekWord(address)
|
return t.a.mmu.peekWord(address)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue