Jim Butterfield著作中C64 BASIC结束标记描述是否存在错误?
关于《Machine Language for Commodore Machines》中BASIC结束标记的疑问
Jim Butterfield所著《Machine Language for Commodore Machines》一书第92页“BASIC Memory Layout”章节提到:
3. BASIC结束(End-of-BASIC)由SOB(Start-of-BASIC)之后的三个零字节标记。在BASIC中执行NEW命令后,这三个字节就位于BASIC起始位置[...]。
通过VICE C64模拟器及真实C64C设备测试验证,SOB之后标记BASIC结束的只有两个零字节,而非书中所说的三个。
验证细节:
- 确认SOB地址:查看内存地址
$2B/$2C的字节值为$01 $08,对应十进制2049,与书中表述一致。 - 在BASIC提示符下执行以下命令验证:
NEW PRINT PEEK(2049);PEEK(2050);PEEK(2051)
执行后可见,PEEK(2049)与PEEK(2050)返回0,而PEEK(2051)并非0,说明SOB之后仅存在两个零字节作为BASIC结束标记。
结论:
该书此处描述存在错误,实际C64的BASIC在执行NEW命令后,SOB起始位置仅用两个零字节标记BASIC结束。
内容的提问来源于stack exchange,提问作者Mr.C64
相关产品推荐
相关产品推荐

