如何在 6502 basic 中等待 x 秒

How to wait x seconds in 6502 basic

如何在基本 6502 中等待 x 时间?我在 VICE xpet 上,我想打印一个角色,稍等片刻,然后删除它,并重复一段时间,作为一种状态指示器。唯一的问题是它删除得很快,所以指示器永远不会出现。我试过在参考资料中寻找这样的命令,但没有什么可以等一下。我知道,如果我做一个巨大的 for 循环,我可能会减慢机器的速度,以便通过蛮力来完成它,但如果可能的话,我宁愿避免这样做。有没有更好的办法? 谢谢!

自从我在 6502 上编程已经有几十年了 (C-64/VIC-20),但我很确定即使他们的 BASIC 版本也有关键字 TIMER。如果没记错的话,它会计算毫秒数,但我可能是错的。你可能不得不玩它。设置一个等于 TIMER 的变量,做一个 for/next 循环占用一些时间,然后再次检查它的值。一旦你弄清楚一秒钟内发生了多少滴答声,你就可以使它成为一个常量,然后循环直到变量 = 计时器开始加上每秒常量滴答声(当然,首先在循环之前将变量设置为计时器)。

您可以参考系统变量TI来计时。变量的值在 1/60 秒内自动递增。它不会是完美的,但它确实有效。

以下示例将每秒打印 TI 的当前值:

10 PRINT "START " TI
20 T0=T1
30 IF TI-T0>=60 THEN PRINT TI;TI-T0 : GOTO 20
40 GOTO 30