修改了 C64 PRG 基本标头



我最近买了一个c64 mini,并一直在尝试使用Turbo Macro Pro v1.2编写一些汇编代码。

在开发hello world程序时,我发现了一个教程,其中使用了自动运行的BASIC标头。

我还尝试包括一个打印CHR$(147)来清除屏幕,但是我遇到了内存不足错误。

原始 BASIC 标头是:

*=$0801
.byte $0c, $08, $0a, $00, $9e, $20
.byte $34, $30, $39, $36, $00, $00
.byte $00

我将其修改为:

*=$0801
.byte $0e, $08, $0a, $00, $99, $20
.byte $c7, $28, $31, $34, $37, $29
.byte $00, 
.byte $19, $08, $14, $00, $9e, $20
.byte $34, $30, $39, $36, $00, $00
.byte $00

当我从 TMP 组装并运行然后键入 LIST 时,我得到,

10 PRINT CHR$(147)
20 SYS 4096

但是当运行时,我在第 10 行出现内存不足错误。

我做错了什么吗?还是这个指令真的不记得了?

TMP 仍在后台加载到内存中。 我目前正在 VICE 中运行它。

我猜TMP为查找表,中间代码等分配了所有内存。它最不想要的就是BASIC把事情搞砸,所以它会把BASIC内存的顶部指向安全的地方。 可分配的 BASIC 内存可以在指针 43-44 和 55-56 中找到,指示 BASIC 内存的开始/结束。通常,它们是 0801 美元到 $A 000 美元,但我猜 TMP 会以其他方式设置它们。

最新更新