传递给 BASIC 的 POS 函数的伪参数的目的是什么?

What is the purpose of the dummy argument that's passed to BASIC's POS function?

不久前我读到 Commodore 64 的 BASIC 解释器包含一个 POS 函数,该函数 returns 光标的当前水平位置。从那时起,我就注意到了其他一些 BASIC 方言中的这种特质,包括 Microsoft QBASIC,甚至是 Roku 的 BrightScript,它是最近的。

我想知道的是,为什么会这样?如果不使用参数的值,为什么还需要它?我的猜测是 BASIC 可能真的很早就不支持不带参数的函数,并且出于某种原因它一直存在,可能是兼容性。但这并不能解释为什么它仍然是 必需的 参数。

值得一提的是 QBASIC 还包括 CSRLEN,其中 returns 光标的垂直位置,但它不 require/accept 任何参数。这支持了我的想法,即它来自 "ancient times"——POS 在最早的终端(电传打字机)上是一个定义明确的操作,但 CSRLEN 直到后来的硬件才有意义.

我似乎(非常模糊地)记得放置 pos 的查找 table 是所有函数都有一个参数的查找 sinfre).为此,pos 使用通用代码来确保它 一个参数,即使它被忽略了。

C64 中的 BASIC 解释器基于(相当有限的)6502 CPU 必须使用各种奇妙的技巧才能实现其所有功能。


现在请记住,这需要通过 30 多年的碎屑深入我的灰质。我怀疑您会在 retro-computing sister site.

得到更准确的(a) 答案

(a) 可能更完整,几乎是痛苦的程度:-)