From 22c651265e5e25e30247ee86cef23b378587c5a8 Mon Sep 17 00:00:00 2001 From: Will Scullin Date: Tue, 26 Jul 2022 18:46:39 -0700 Subject: [PATCH] Fix numbers --- js/intbasic/decompiler.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/js/intbasic/decompiler.ts b/js/intbasic/decompiler.ts index b24c0a5..ee53f2e 100644 --- a/js/intbasic/decompiler.ts +++ b/js/intbasic/decompiler.ts @@ -158,6 +158,7 @@ export default class IntBasicDump { do { let inRem = false; let inQuote = false; + let isAlphaNum = false; /* const length = */ this.readByte(addr++); const lineno = this.readWord(addr); addr += 2; @@ -167,7 +168,7 @@ export default class IntBasicDump { let val = 0; do { val = this.readByte(addr++); - if (!inRem && !inQuote && val >= 0xB0 && val <= 0xB9) { + if (!inRem && !inQuote && !isAlphaNum && val >= 0xB0 && val <= 0xB9) { str += this.readWord(addr); addr += 2; } else if (val < 0x80 && val > 0x01) { @@ -178,7 +179,12 @@ export default class IntBasicDump { if (val === 0x28) { inQuote = true; } if (val === 0x29) { inQuote = false; } if (val === 0x5d) { inRem = true; } - } else if (val > 0x80) { str += LETTERS[val - 0x80]; } + isAlphaNum = false; + } else if (val > 0x80) { + const char = LETTERS[val - 0x80]; + str += char; + isAlphaNum = /[A-Z0-9]/.test(char); + } } while (val !== 0x01); str += '\n'; } while (addr < himem);