【问题标题】:How to wait x seconds in 6502 basic如何在 6502 基本中等待 x 秒
【发布时间】:2017-04-12 15:01:07
【问题描述】:

如何在基本 6502 中等待 x 时间?我在 VICE xpet 上,我想打印一个字符,稍等片刻,然后删除它,然后重复一段时间,作为一种状态指示器。唯一的问题是它删除得很快,所以指示器永远不会出现。我已经尝试在参考上寻找这样的命令,但是没有什么可以等待一点点。我知道,如果我制作一个巨大的 for 循环,我可能能够让机器减速到足以通过蛮力来完成它,但如果可能的话,我宁愿避免这种情况。没有更好的方法吗? 谢谢!

【问题讨论】:

  • 类似于 java 中的 Thread.sleep(x)。谢谢!
  • 基于@BillHileman 所写的内容——看看:c64-wiki.com/wiki/TIME——页面底部有一个延迟子程序。
  • @18AdrianoH:您在这里获得了关于 SO 的大量信息,但如果您不知道,还有 retrocomputing.stackexchange.com

标签: basic


【解决方案1】:

您可以参考系统变量 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

【讨论】:

  • 哇甚至不知道 TI 的存在;本来打算看看Jiffy Clock
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2018-11-16
    • 2011-12-02
    相关资源
    最近更新 更多