mirror of
https://github.com/tjboldt/ProDOS-Utilities.git
synced 2024-06-09 12:29:28 +00:00
Refactor basic conversion
This commit is contained in:
parent
65d90bfdb6
commit
e828fcc99a
|
@ -5,45 +5,7 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
func ConvertBasicToText(basic []byte) string {
|
||||
var builder strings.Builder
|
||||
|
||||
i := 0
|
||||
|
||||
for {
|
||||
lo := basic[i]
|
||||
i++
|
||||
hi := basic[i]
|
||||
i++
|
||||
|
||||
if lo == 0 && hi == 0 {
|
||||
builder.WriteString("\n")
|
||||
return builder.String()
|
||||
}
|
||||
|
||||
line := int(basic[i]) + int(basic[i+1])*256
|
||||
i += 2
|
||||
|
||||
fmt.Fprintf(&builder, "\n %d ", line)
|
||||
|
||||
for {
|
||||
t := basic[i]
|
||||
if t == 0 {
|
||||
i++
|
||||
break
|
||||
}
|
||||
if t > 127 {
|
||||
builder.WriteString(getToken(t))
|
||||
} else {
|
||||
builder.WriteString(string(t))
|
||||
}
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func getToken(token byte) string {
|
||||
tokens := map[byte]string{
|
||||
var tokens = map[byte]string{
|
||||
0x80: "END",
|
||||
0x81: "FOR",
|
||||
0x82: "NEXT",
|
||||
|
@ -153,5 +115,41 @@ func getToken(token byte) string {
|
|||
0xEA: "MID$",
|
||||
}
|
||||
|
||||
return tokens[token]
|
||||
func ConvertBasicToText(basic []byte) string {
|
||||
var builder strings.Builder
|
||||
|
||||
i := 0
|
||||
|
||||
for {
|
||||
lo := basic[i]
|
||||
i++
|
||||
hi := basic[i]
|
||||
i++
|
||||
|
||||
if lo == 0 && hi == 0 {
|
||||
return builder.String()
|
||||
}
|
||||
|
||||
line := int(basic[i]) + int(basic[i+1])*256
|
||||
i += 2
|
||||
|
||||
fmt.Fprintf(&builder, "%d ", line)
|
||||
|
||||
for {
|
||||
t := basic[i]
|
||||
if t == 0 {
|
||||
builder.WriteString("\n")
|
||||
i++
|
||||
break
|
||||
}
|
||||
if t > 127 {
|
||||
builder.WriteString(" ")
|
||||
builder.WriteString(tokens[t])
|
||||
builder.WriteString(" ")
|
||||
} else {
|
||||
builder.WriteString(string(t))
|
||||
}
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user