传递给 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 是所有函数都有一个参数的查找 sin
或 fre
).为此,pos
使用通用代码来确保它 有 一个参数,即使它被忽略了。
C64 中的 BASIC 解释器基于(相当有限的)6502 CPU 必须使用各种奇妙的技巧才能实现其所有功能。
现在请记住,这需要通过 30 多年的碎屑深入我的灰质。我怀疑您会在 retro-computing sister site.
得到更准确的(a) 答案
(a) 可能更完整,几乎是痛苦的程度:-)
不久前我读到 Commodore 64 的 BASIC 解释器包含一个 POS
函数,该函数 returns 光标的当前水平位置。从那时起,我就注意到了其他一些 BASIC 方言中的这种特质,包括 Microsoft QBASIC,甚至是 Roku 的 BrightScript,它是最近的。
我想知道的是,为什么会这样?如果不使用参数的值,为什么还需要它?我的猜测是 BASIC 可能真的很早就不支持不带参数的函数,并且出于某种原因它一直存在,可能是兼容性。但这并不能解释为什么它仍然是 必需的 参数。
值得一提的是 QBASIC 还包括 CSRLEN
,其中 returns 光标的垂直位置,但它不 require/accept 任何参数。这支持了我的想法,即它来自 "ancient times"——POS
在最早的终端(电传打字机)上是一个定义明确的操作,但 CSRLEN
直到后来的硬件才有意义.
我似乎(非常模糊地)记得放置 pos
的查找 table 是所有函数都有一个参数的查找 sin
或 fre
).为此,pos
使用通用代码来确保它 有 一个参数,即使它被忽略了。
C64 中的 BASIC 解释器基于(相当有限的)6502 CPU 必须使用各种奇妙的技巧才能实现其所有功能。
现在请记住,这需要通过 30 多年的碎屑深入我的灰质。我怀疑您会在 retro-computing sister site.
得到更准确的(a) 答案(a) 可能更完整,几乎是痛苦的程度:-)