6502 BASIC 删除一个字符

6502 BASIC removing a character

如何在6502 basic中删除一个字符?比如反向打印... 有没有办法将 del 键代码导入程序?我试过查看参考资料,但那里没有任何命令。

正如 OldBoyCoder 所建议的那样,这是可以做到的 - 但角色取决于平台。

10 PRINT "AB";
20 PRINT "C"

Commodore PET 或 Apple II 上的输出:

ABC

对于 Commodore PET 添加:

15 PRINT CHR$(20);

输出:

AC

在 Apple II 上,您需要使用 8 而不是 20,因为 I/O 固件不同。

也可以使用字符串操作命令,例如LEFT$RIGHT$MID$,这是一个未经测试的内存示例(针对Commodore PET和其他Commodore 8-位机,可能也适用于 BASIC 的其他变体):

 0 A$="ABC"
 1 PRINT LEFT$(A$,2): REM PRINTS AB
 2 PRINT RIGHT$(A$,2): REM PRINTS BC
 3 PRINT MID$(A$,2,1): REM PRINTS B

否则,您可以覆盖字符,只要您知道它们在屏幕上的位置即可。

 0 D$=CHR$(17): REM CURSOR DOWN
 1 U$=CHR$(145): REM CURSOR UP
 2 R$=CHR$(29): REM CURSOR RIGHT
 3 L$=CHR$(157): REM CURSOR LEFT
 4 PRINT "ABC";L$;" "

为了清楚起见,我在这里使用 CHR$ 代码。如果你用双引号打开一个字符串,你可以按 UP/DOWN 和 LEFT/RIGHT 键,这将显示反字符。打印这些反转的字符与使用光标键移动光标的效果相同。