【问题标题】:ENTER keyword in BasicBasic 中的 ENTER 关键字
【发布时间】:2021-11-16 14:50:09
【问题描述】:

我正在查看一些古老的 1975 年基本代码,并在该行中发现了一个看起来像关键字的内容: ENTER #P,B2,B1,C$
我知道B2B1C$ 都是变量,尽管P 也可能是变量。
有谁知道@ 是什么? 987654326@ 关键字是什么,这些参数指的是什么?

提前致谢。

【问题讨论】:

  • 我猜它正在从编号为P 的文件中读取三个变量。这是哪个版本?
  • 所有文件都说它写于 1975 年 4 月 27 日
  • BASIC 有很多很多的方言,但并没有很好的记录,尤其是在早期机器更有可能拥有自己的自制变体而不是后来的 Microsoft BASIC 的时代。 ENTER 不是常用关键字。这看起来像是其他 BASIC 称为 INPUT# 的应用程序,从文件中读取值(两个数字和一个字符串)。如果您能确定程序的目标架构/平台,那将有所帮助。
  • 可以想象,它也可能是 相反 操作,顺便说一下,写入 值到文件(其他 BASIC 会使用 PRINT# ),取决于“进入”被解释为什么方向。代码的上下文应该清楚。

标签: basic


【解决方案1】:

ENTER 语句非常晦涩;例如,它不会出现在 David Lien 的 BASIC 手册的 firstthird 版本中。

通过搜索“ENTER #P”,我找到了一个包含它的 BASIC 变体:HP 2000/Access BASIC。这本特定手册的日期为 1975 年 9 月,因此它与您正在查看的程序的日期大致相符。

在 HP 2000/Access BASIC(手册的第 2-15 页和第 11-33 页)中,ENTER 语句是 INPUT 的一种变体,它不提供提示,并且还存储有关如何以及在何处提供输入的更多信息.井号 (#) 的意义在于它将用户端口号分配给该变量。在您的情况下,“用户端口号”被分配给变量P

在你的例子中:

  1. P 将被分配用户端口号。
  2. B2 是用户必须响应的秒数。如果用户没有响应,返回的值为-256; -257 和 -258 是错误条件。
  3. B1 是用户实际响应的秒数。
  4. C$ 是一个变量,如果用户在适当的时间输入,它将被赋予用户输入的值。

手册中似乎没有定义“用户端口号”;但是,从上下文来看,它似乎是用户登录系统的端口。它可以是“0 到 31 范围内”的数字。端口号似乎主要或仅用于记录目的。我在手册中没有看到 BASIC 程序可以针对端口号的任何地方。

来自手册:

ENTER 语句为程序提供了对输入操作的更多控制。该语句可以限制允许响应数据的时间量,向程序提供响应的实际时间,指示数据是否可接受,并返回用户终端的端口号。端口号可以单独获取,完全不涉及用户,也可以与单个数据值一起获取。也可以在不询问端口号的情况下请求数据。如果数字符号 (#) 跟在关键字 ENTER 后面,那么它前面的变量将被分配用户端口号(0 到 31 范围内的整数)。否则(或在端口返回变量之后)第一个表达式被计算并舍入为一个整数(必须在 1 到 255 的范围内),指定允许用户响应的秒数。不打印提示,程序必须通知用户前面的 PRINT 语句中的消息需要输入。表达式后面的变量设置为用户响应的大致时间(以秒为单位)。如果常数不合法,则时间无效。如果分配的时间已经过去,则返回值 -256;值 -257 和 -258 表示发生了传输问题,应要求用户再次响应。列表中的最后一个变量被分配了预期用户输入的单个值。与 INPUT 语句不同,ENTER 不使用 换行符 响应 return(完成用户的回答)。

例子:

  • 10 ENTER #P
  • 20 ENTER 255,R,A
  • 30 ENTER #P,T1,R,A(I)

幸运的是,P 是本示例中用于端口号的变量,因为它在您的示例中;否则,搜索将找不到本手册。

【讨论】:

  • 这是我的猜测,但我没有像你那样做研究,做得很好。
猜你喜欢
  • 1970-01-01
  • 2011-12-24
  • 2013-05-19
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多