GoGPT Best VPN GoSearch

OnWorks 网站图标

bwbasic - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 bwbasic

这是命令 bwbasic,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


bwbasic - Bywater BASIC 解释器/外壳

Bywater BASIC Interpreter/Shell,2.10 版
---------------------------------------------

版权所有 (c) 1993, Ted A. Campbell
bwBASIC 2.10 版,11 年 1993 月 XNUMX 日

内容:

1.说明
2. 使用条款
3. 命令和功能的快速参考列表
4. 一般使用说明
5. 命令和功能的扩展参考
6. 预定义变量
7. 未实现的命令和功能
和发展议程
8. BYWATER BASIC 的故事
9. 通讯

作者要向 David MacKenzie 先生表示感谢,
谁协助开发 Unix 安装和配置
对于这个版本。

1.说明

Bywater BASIC Interpreter (bwBASIC) 实现了一个大型的
ANSI 最小 BASIC 标准 (X3.60-1978) 的超集
以及完整 BASIC ANSI 标准的重要子集
(X3.113-1987) in C. 它还提供 shell 编程工具
作为 BASIC 的扩展。 bwBASIC 力求便携
尽可能。

bwBASIC 可以配置为模拟功能、命令和
不同类型的 BASIC 解释器上可用的功能;
有关更多安装信息,请参阅文件 INSTALL。

口译员相当慢。 每当面临选择
在概念清晰度和速度之间,我一直选择
前者。 解释器是可用的最简单的设计,
并且不使用中间代码系统,这会加快
大大提高了它的操作。 按原样,每一行都被解释
随着口译员重新开始。

bwBASIC 实现了以前 BASIC 中没有的一项功能
解释器:可以在
bwBASIC 提示符,解释器将在一个
命令外壳。 例如,命令“dir *.bas”可以是
输入 bwBASIC(在 DOS 下,或在 UNIX 下输入“ls -l *.bas”)和
它将从操作系统命令行执行。
Shell 命令也可以在 bwBASIC 中的编号行上给出
程序,使 bwBASIC 可以作为 shell 编程
语。 bwBASIC 对 RMDIR、CHDIR、MKDIR 的实现,
NAME、KILL、ENVIRON 和 ENVIRON$() 命令和函数
提供进一步的外壳处理能力。

2. 使用条款:

此版本的 Bywater BASIC 是根据以下条款发布的
GNU 通用公共许可证 (GPL),随此分发
文件“COPYING”中的软件。 GPL 规定了条款
用户可以复制和使用本发行版中的软件。

单独的许可证可用于商业分发,
有关您应该联系作者的信息。

3. 命令和功能的快速参考列表

请注意,这些命令和功能中的许多将不会
除非您在头文件中设置了某些标志,否则可用
(有关依赖项,请参阅下面的扩展参考部分)。

ABS(数量)
ASC( 字符串$ )
ATN(号码)
CALL 子程序名称
其他情况 | IF 部分表达式 | 持续的
CHAIN [MERGE] 文件名 [, 行号] [, ALL]
CHDIR 路径名
CHR$( 数字 )
CINT(数)
CLEAR
关闭 [[#] 文件编号]...
CLS
公共变量 [, 变量...]
COS(数)
CSNG(数量)
CVD(字符串$)
CVI(字符串$)
CVS(字符串$)
数据常量[,常量]...
日期$
DEF FNname(arg...)] = 表达式
DEFDBL 字母[-字母](, 字母[-字母])...
DEFINT 字母[-字母](, 字母[-字母])...
DEFSNG 字母[-字母](, 字母[-字母])...
DEFSTR 字母[-字母](, 字母[-字母])...
删除行[-行]
DIM 变量(元素...)[变量(元素...)]...
做 NUM|UNNUM
做 [WHILE 表达]
编辑
ELSE
艾尔赛夫
结束如果 | 功能 | 选择 | 子
ENVIRON 变量字符串 = 字符串
环境$(变量字符串)
EOF(设备号)
擦除变量[, 变量]...
广深港高速铁路
ERR
错误编号
经验(数量)
FIELD [#] 设备编号,编号 AS 字符串变量 [,编号 AS 字符串变量...]
文件文件规格$
功能
FOR 计数器 = 开始到结束 [STEP 增量]
GET [#] 设备编号 [, 记录编号]
GOSUB线| 标签
GOTO线| 标签
十六进制$(数字)
IF 表达式 THEN [语句 [ELSE 语句]]
输入键$
INPUT [# device-number]|[;]["提示字符串";]变量列表
INSTR( [起始位置,] 字符串搜索$, 字符串模式$ )
INT(数)
KILL 文件名
LEFT$(字符串$,空格数)
LEN( 字符串$ )
LET 变量 = 表达式
LINE INPUT [[#] device-number,]["prompt string";] string-variable$
列表行[-行]
加载文件名
LOC(设备号)
定位行、列
LOF(设备号)
日志(数字)
LOOP [直到表达式]
LSET 字符串变量$ = 表达式
合并文件名
MID$( string$, 字符串中的起始位置 [, 空格数 ] )
MKD$( 数字 )
MKDIR 路径名
MKI$( 数字 )
MKS$( 数字 )
NAME 旧文件名 AS 新文件名
新品
下一个【柜台】
OCT$( 数字 )
ON 变量 GOTO|GOSUB line[,line,line,...]
ON ERROR GOSUB 行
OPEN "O"|"I"|"R", [#] 设备编号, 文件名 [,记录长度]
文件名 FOR INPUT|OUTPUT|APPEND AS [#]device-number [LEN = 记录长度]
选项基数
POS材料
PRINT [# device-number,][USING format-string$;] 表达式...
PUT [#] 设备编号 [, 记录编号]
放弃
随机数
读取变量[, 变量]...
REM字符串
恢复线
返回
RIGHT$(字符串$,空格数)
RMDIR 路径名
RND(数)
RSET 字符串变量$ = 表达式
运行 [行][文件名]
保存文件名
SELECT CASE 表达式
SGN(数)
辛(数字)
空格$(数字)
SPC(数量)
SQR(数)
STOP
STR$( 数字 )
STRING$( 数字,ascii 值|字符串$ )
SUB 子程序名
交换变量,变量
系统
制表符(数字)
谭(数量)
时间$
计时器
特洛夫
创新福星
VAL(字符串$)
文德
WHILE 表达式
WIDTH [# device-number,] 数字
写入 [# 设备编号,] 元素 [, 元素 ]...

4. 一般使用说明:

4.a. 互动环境

如果标志 INTERACTIVE,则提供交互式环境
在 bwbasic.h 中被定义为 TRUE,这样一行
可以在 bwBASIC 提示符下输入行号,它将是
添加到内存中的程序。

行号不是严格要求的,但在以下情况下很有用
交互式环境用于编程。 更长时间
程序入口可能更喜欢使用 ASCII 文本编辑器,并且
在这种情况下,可以输入没有数字的行。 一个可以用
DO NUM 和 DO UNNUM 对行进行编号或取消编号。 另见
下面是伪命令 EDIT 的文档。

4.b. 命名约定

命令名和函数名不区分大小写,
所以“运行”和“运行”和“运行”是等价的,“abs()”
和“ABS()”和“Abs()”是等价的。 然而,变量
bwbASIC 中的名称区分大小写,因此“d$”和“D$”
是不同的变量。 这与一些 BASIC 不同
变量名不区分大小写的实现。

变量名可以使用任何字母字符,句号
和下划线字符和十进制数字(但不在
第一个位置)。 它们可以以“#”或“!”结尾到
允许 Microsoft 类型的名称,即使精度是
与 bwBASIC 无关。

4.c. 数值常数

数字常量可以以数字 0-9(十进制)开头,其中
“&H”或“&h”(十六进制)或“&o”或“&O”(八进制)。
十进制数字可能以“E”、“e”、“D”或“d”结尾
后跟一个指数数字来表示指数表示法。
十进制常量也可以以“#”或“!”结尾。
遵守 Microsoft 风格的精确终止符,尽管
指定的精度与 bwBASIC 无关。

4.d. 命令行执行

可以在命令行上指定文件名,并将
立即加载并运行,以便命令行

bwbasic程序.bas

将加载并执行“prog.bas”。

4.e. 程序存储

所有程序都存储为 ASCII 文本文件。

4.f. 真假

默认情况下,TRUE 定义为 -1,FALSE 定义为 0
bwBASIC 的分布。 这些定义可以通过以下方式更改
那些编译 bwBASIC(参见文件 BWBASIC.H)。

4.g. 作业

必须对变量进行赋值。 这不同于某些
BASIC 的实现,其中可以分配给一个
功能。 含义:“INSTR(3, x$, y$) = z$”不会
在 bwBASIC 下工作。

4小时运算符和优先级

bwBASIC 识别以下运算符,及其级别
给定的优先级(1 = 最高):

^ 1 取幂
* 2 乘法
/ 2师
3 整数除法
+ 5 加成
- 5 减法
= 6 相等或赋值
MOD 4 模(余数)算术
<> 7 不等式
< 8 小于
> 9 大于
<= 10 小于或等于
=< 10 小于或等于
>= 11 大于或等于
=> 11 大于或等于
不是 12 否定
AND 13 连词
OR 14 分离
XOR 15 异或
IMP 16 含义
EQV 17 等效

4小时数值精度 (NOT)

bwBASIC 只使用一级精度的数字。 如果
标志 NUMBER_DOUBLE 在 bwbasic.h 中被定义为 TRUE,
实现的精度将是 C“双”数据类型的精度;
否则(默认)精度将是 C“浮点数”的精度
类型。 在许多点有命令(或伪
命令)似乎可以识别 Microsoft 风格的精度
区别,但在大多数情况下,这些只是解决方法
允许运行 Microsoft 风格程序的别名。

5. 命令和功能的扩展参考

以下参考资料中列出的“依赖项”
指必须在 bwbasic.h 中设置为 TRUE 的标志
要执行的相关命令或功能。 这些标志
如下面所述:

任何实现中的(核心)命令和函数
bwBASIC; 这些是 ANSI Minimal BASIC 核心

支持交互式编程的 INTERACTIVE 命令
环境

COMMON_CMDS 超出 ANSI Minimal BASIC 的常见命令
到完整的 ANSI BASIC 和 Microsoft BASIC

COMMON_FUNCS 函数超出 ANSI Minimal BASIC 核心,但
ANSI Full BASIC 和 Microsoft 风格的共同点
基础品种

UNIX_CMDS 命令需要 Unix 风格的目录和
C 中未指定的环境例程

STRUCT_CMDS 结构化编程相关的命令; 全部
其中一些是完整的 ANSI BASIC 标准的一部分

ANSI_FUNCS ANSI Full BASIC 独有的函数

Microsoft BASIC 独有的 MS_CMDS 命令

Microsoft BASIC 独有的 MS_FUNCS 函数

------------------------------------------

功能:ABS(数字)

描述:ABS 返回参数“number”的绝对值。

依赖项:(核心)

------------------------------------------

函数:ASC(string$)

说明:ASC 返回第一个字母的 ASCII 码
参数字符串$。

依赖项:MS_FUNCS

------------------------------------------

功能: ATN(号码)

说明:ATN 返回参数 'number' 的反正切值
以弧度表示。

依赖项:(核心)

------------------------------------------

命令:CALL subroutine-name

描述:CALL 调用一个命名的子程序(参见 SUB 和 END SUB)。

依赖项:STRUCT_CMDS

------------------------------------------

命令:CASE ELSE | IF 部分表达式 | 持续的

描述:CASE 引入了 SELECT CASE 语句的一个元素
(见选择案例)。 CASE IF 引入了条件
SELECT CASE 元素,CASE ELSE 引入了一个
默认 SELECT CASE 元素。

依赖项:STRUCT_CMDS

------------------------------------------

命令:CHAIN [MERGE] file-name [, line-number] [, ALL]

描述:CHAIN 将控制权传递给另一个 BASIC 程序。
将传递声明为 COMMON (qv) 的变量
到新程序。

依赖项:COMMON_CMDS

------------------------------------------

命令:CHDIR 路径名$

说明:CHDIR 将当前目录更改为指示的目录
通过参数路径名$。

依赖项:UNIX_CMDS

------------------------------------------

函数:CHR$(数字)

说明:CHR$ 返回一个包含字符的单字符字符串
对应参数所指示的ASCII码
'数字'。

依赖项:COMMON_FUNCS

------------------------------------------

功能:CINT(数字)

描述:CINT 返回参数的截断整数
'数字'。

依赖项:MS_FUNCS

------------------------------------------

命令:清除

说明: CLEAR 将所有数值变量设置为 0,并且所有
字符串变量为空。

依赖项:COMMON_CMDS

------------------------------------------

命令:CLOSE [[#]file-number]...

说明: CLOSE 关闭由文件编号指示的文件
(见打开)。

依赖项:COMMON_CMDS

------------------------------------------

命令:CLS

说明:CLS 清除显示屏幕(IBM 和兼容机
仅从 2.10 版开始)。

依赖项:IMP_IQC 和 IMP_CMDLOC

------------------------------------------

命令:CMDS

说明:CMDS 是一个打印列表的调试命令
所有已实现的 bwBASIC 命令。

依赖项:调试

------------------------------------------

命令:COMMON 变量 [, 变量...]

说明:COMMON 指定要传递给 CHAINed 的变量
程序(见链)。

依赖项:COMMON_CMDS

------------------------------------------

功能:COS(号码)

描述:COS 返回参数 'number' 的余弦
以弧度表示。

依赖项:(核心)

------------------------------------------

功能:CSNG(数字)

说明:CSNG 是一个伪函数,在
bwBASIC。 它复制了 Microsoft 类型的命令
这会将“数字”转换为单精度。

依赖项:MS_FUNCS

------------------------------------------

功能: CVD(字符串$)

说明:CVD 将参数 string$ 转换为 bwBASIC
数字(精度在 bwBASIC 中无关紧要,因为
bwBASIC 数字只有一种精度)。

具体实施注意事项:

CVD()、CVI()、CVS()、MKI$()、MKD$()、MKS$():这些函数
已实现,但取决于 a) 整数的大小,
特定系统上的 float 和 double 值,以及 b) 如何
C 的特定版本存储这些数值。 这
这意味着使用这些函数创建的数据文件
在基于 DOS 的微型计算机上可能无法正确翻译
通过在基于 Unix 的计算机上运行的 bwBASIC。 同样,数据
由一个版本的 C 编译的 bwBASIC 创建的文件可能不是
由另一个版本的 C 编译的 bwBASIC 可读(即使在
相同的操作系统)。 所以要小心这些。

依赖项:MS_FUNCS

------------------------------------------

函数:CVI(string$)

描述:CVI 将参数 string$ 转换为 bwBASIC
数字(精度在 bwBASIC 中无关紧要,因为
bwBASIC 数字只有一种精度; 也可以看看
关于 CVD 的说明)。

依赖项:MS_FUNCS

------------------------------------------

功能: CVS( 字符串$ )

描述:CVI 将参数 string$ 转换为 bwBASIC
数字(精度在 bwBASIC 中无关紧要,因为
bwBASIC 数字只有一种精度; 也可以看看
关于 CVD 的说明)。

依赖项:MS_FUNCS

------------------------------------------

命令:数据常量[,常量]...

描述: DATA 存储数字和字符串常量
通过 READ (qv) 访问。

依赖项:(核心)

------------------------------------------

功能:日期$

描述:DATE$ 返回基于计算机的当前日期
内部时钟作为“YYYY-MM-DD”形式的字符串。
在 bwBASIC 下实现,DATE$ 不能用于
分配(即设置系统日期)。

注意:bwBASIC 目前 (v2.10) 不允许赋值
到一个函数。

依赖项:COMMON_FUNCS

------------------------------------------

命令:DEF FNname(arg...)] = 表达式

描述:DEF 定义了一个用户编写的函数。 这个功能
对应于微软类型的实现,虽然
在 bwBASIC DEF 中,DEF 相当于 FUNCTION。

依赖项:(核心)

------------------------------------------

命令:DEFDBL letter[-letter](, letter[-letter])...

描述:DEFDBL 用单字母名称声明变量
作为数值变量(精度与
bwBASIC)。

依赖项:MS_CMDS

------------------------------------------

命令:DEFINT letter[-letter](, letter[-letter])...

描述:DEFINT 用单字母名称声明变量
作为数值变量(精度与
bwBASIC)。

依赖项:MS_CMDS

------------------------------------------

命令:DEFSNG letter[-letter](, letter[-letter])...

描述:DEFSNG 用单字母名称声明变量
作为数值变量(精度与
bwBASIC)。

依赖项:MS_CMDS

------------------------------------------

命令:DEFSTR letter[-letter](, letter[-letter])...

描述:DEFSTR 用单字母名称声明变量
作为字符串变量。

依赖项:MS_CMDS

------------------------------------------

命令:删除行[-line]

说明: DELETE 删除由
参数。 如果您想将 DELETE 用于非
编号的程序,先用DO NUM,再用DELETE,
然后做 UNNUM。

依赖项:交互式

------------------------------------------

命令:DIM 变量(元素...)[变量(元素...)]...

说明:DIM 指定具有多个的变量
单维元素,即排列
变量。

注意:在 bwBASIC 下实现,DIM 只接受
括号作为变量字段的分隔符。
(一些 BASIC 允许使用方括号。)

依赖项:(核心)

------------------------------------------

命令:DO NUM|UNNUM

描述:DO NUM 对程序中的所有行进行编号。 首先
行被赋予数字 10,随后的行
以 10 的倍数连续编号。 做
UNNUM 从程序中删除所有行号。
请注意,这些功能对线路没有任何作用
数字,例如,跟在 GOSUB 或 GOTO 语句之后;
这些命令不能用作替代
RENUM(在某些系统中可用,但在 bwBASIC 中不可用)。
但是,通过这些命令,可以开发
通过输入带有数字的新行来取消编号的程序,
然后运行 ​​DO UNNUM 删除行号。
与 LOAD 和 SAVE (qv) 一起使用
bwBASIC 作为原始文本编辑器。

依赖项:交互式

------------------------------------------

命令:DO [WHILE 表达式]

描述:DO 实现了多种形式的程序循环。
DO...LOOP 只是循环; 唯一的出路是通过
出口; DO WHILE...LOOP 循环,而“表达式”是
true(这相当于旧的 WHILE-WEND
循环,也在 bwBASIC 中实现); 做...循环直到
循环直到 UNTIL 之后的表达式为真。

依赖项:STRUCT_CMDS

------------------------------------------

命令:编辑

描述:EDIT 是一个调用文本编辑器的伪命令
在变量 BWB.EDITOR$ 中指定以编辑
内存中的程序。 调用文本编辑器后,
(编辑过的)程序被重新加载到内存中。 用户
通常必须指定一个有效的路径和文件名
此命令之前的 BWB.EDITOR$ 将很有用。

依赖项:COMMON_CMDS

------------------------------------------

命令:ELSE

描述:ELSE 在多行 IF 中引入默认条件
语句。

依赖项:STRUCT_CMDS

------------------------------------------

命令:ELSEIF

描述:ELSEIF 在多重条件下引入了次要条件
行 IF 语句。

依赖项:STRUCT_CMDS

------------------------------------------

命令:END IF | 功能 | 选择 | 子

描述:END IF 结束一个多行 IF 语句。 结束函数
结束多行函数定义。 结束选择
结束 SELECT CASE 语句。 END SUB 结束一个多
行子程序定义。

依赖项:STRUCT_CMDS

------------------------------------------

命令:ENVIRON variable-string$ = string$

说明:ENVIRON 设置由标识的环境变量
变量字符串 $ 到字符串 $。

可能会注意到,这与实现不同
某些版本的 BASIC 中的 ENVIRON,但 bwBASIC 的 ENVIRON
允许在等号的任一侧使用 BASIC 变量
标志。 请注意,函数 ENVIRON$() 与
命令,并注意在某些操作系统中
程序中设置的环境变量不会被传递
到其父外壳。

依赖项:UNIX_CMDS

------------------------------------------

功能: ENVIRON$( 可变字符串$ )

描述:ENVIRON$ 返回关联的环境变量
名称变量字符串$。

依赖项:MS_FUNCS

------------------------------------------

功能:EOF(设备号)

说明:如果设备与 EOF 关联,则 EOF 返回 TRUE (-1)
设备号在文件末尾,否则它
返回 FALSE (0)。

依赖项:MS_FUNCS

------------------------------------------

命令:ERASE variable[, variable]...

描述:ERASE 从程序中删除数组变量。

依赖项:COMMON_CMDS

------------------------------------------

功能:ERL

说明:ERL 返回最近错误的行号。

依赖项:MS_FUNCS

------------------------------------------

功能:错误

说明:ERR 返回最近错误的错误编号。

注意,如果在 bwBASIC 时已经定义了 PROG_ERRORS
编译后,ERR 变量将无法正确设置
错误。 它仅在使用标准错误消息时有效。

依赖项:MS_FUNCS

------------------------------------------

命令:错误号

说明:ERROR模拟错误,即显示信息
适合那个错误。 这个命令很有帮助
编写可以识别的 ON ERROR GOSUB 例程
一些特殊处理的错误,然后是 ERROR ERR
(即,默认处理)为所有其他人。

依赖项:COMMON_CMDS

------------------------------------------

命令:EXIT [FOR]

描述: EXIT 本身退出 DO...LOOP 循环;
EXIT FOR 退出 FOR...NEXT 循环。

依赖项:STRUCT_CMDS

------------------------------------------

功能:EXP(数字)

描述:EXP 返回“数字”的指数值。

依赖项:(核心)

------------------------------------------

命令:FIELD [#] 设备编号,编号 AS 字符串变量$ [,编号 AS 字符串变量$...]

描述:FIELD 在随机文件缓冲区中为设备分配空间
由设备编号指示,分配“编号”字节
并将此位置的字节分配给变量
字符串变量$。

依赖项:COMMON_CMDS

------------------------------------------

命令:FILES filespec$

说明:FILES 是调用目录程序的伪命令
用参数在变量 BWB.FILES$ 中指定
文件规范$。 通常,用户必须设置这个变量
在可以使用 FILES 之前。 例如,对于 PC 型计算机,

BWB.FILES$ = "目录"

将工作,对于 Unix 机器,

BWB.FILES$ = "ls -l"

等等

依赖项:COMMON_CMDS

------------------------------------------

指挥部:FNCS

说明:CMDS 是一个打印列表的调试命令
所有预定义的 bwBASIC 函数。

依赖项:调试

------------------------------------------

命令:FUNCTION

说明:FUNCTION 引入了一个函数定义,通常
以 END FUNCTION 结尾。 在 bwBASIC 中,FUNCTION 和
DEF 是工作等价物,因此可以使用
使用单行函数定义或多
由 END FUNCTION 终止的行定义。

依赖项:STRUCT_CMDS

------------------------------------------

命令:FOR counter = start TO finish [STEP increment]

描述:FOR 使用变量启动 FOR-NEXT 循环
“计数器”最初设置为“开始”并递增
以“增量”步骤(默认为 1)直到“计数器”
等于“完成”。

依赖项:(核心)

------------------------------------------

命令:GET [#] 设备编号 [, 记录编号]

描述:GET 从随机访问文件中读取下一条记录
或设备放入与该文件关联的缓冲区。
如果指定了记录编号,则 GET 命令读取
指定记录。

依赖项:COMMON_CMDS

------------------------------------------

命令:GOSUB 行 | 标签

说明: GOSUB 对行(或标签)发起子程序调用
指定的。 子程序必须以 RETURN 结束。

依赖项:(核心),但用于标签的 STRUCT_CMDS

------------------------------------------

命令:GOTO 行 | 标签

描述:GOTO 分支程序执行到指定行
(或标签)。

依赖项:(核心),但用于标签的 STRUCT_CMDS

------------------------------------------

功能:HEX$(数字)

描述:HEX$ 返回一个给出十六进制(基数为 16)的字符串
“数字”的值。

依赖项:MS_FUNCS

------------------------------------------

命令:IF 表达式 THEN [语句 [ELSE 语句]]

描述:IF 计算“表达式”并执行 THEN
声明是否为真或(可选)
ELSE 语句,如果它是 FALSE。 如果 STRUCT_CMDS
设置为 TRUE,bwBASIC 允许多行 IF
带有 ELSE 和 ELSEIF 情况的语句,结束
用 END IF。

依赖项:(核心),用于多行 IF 语句的 STRUCT_CMDS

------------------------------------------

功能:INKEY$

说明:INKEY$ 读取键盘状态,单
按键,如果可用。 如果按键不可用,
然后 INKEY$ 立即返回一个空字符串 ("")。
目前 (v2.10) 仅在 bwx_iqc.c 中实现。

依赖项:IMP_IQC 和 IMP_CMDLOC

------------------------------------------

命令:INPUT [# device-number]|[;]["prompt string";]变量列表

说明:INPUT 允许来自终端或设备的输入
由设备编号指定。 如果是终端,“提示
string”是输出,输入被分配给
指定了适当的变量。

bwBASIC 不支持 INPUT 的可选特性
抑制最后的回车和换行
的输入。 这是因为 C 本身不提供任何
CR-LF 终止字符串以外的输入方式。

依赖项:(核心)

------------------------------------------

函数: INSTR( [start-position,] string-searched$, string-pattern$ )

说明:INSTR 返回 string-pattern$ 所在的位置
出现在 string-searched$ 中,从起始位置开始。
正如在 bwBASIC 中实现的那样,INSTR 不能用于
作业。

注意:bwBASIC 目前 (v2.10) 不允许赋值
到一个函数。

依赖项:MS_FUNCS

------------------------------------------

功能:INT(数字)

说明:INT 返回小于或等于的最大整数
参数“数字”。 请注意,这不是“截断的”
整数函数,参见 CINT。

依赖项:(核心)

------------------------------------------

命令:KILL file-name$

描述:KILL 删除由 file-name$ 指定的文件。

依赖项:UNIX_CMDS

------------------------------------------

功能: LEFT$( string$, number-of-spaces )

描述:LEFT$ 返回一个带有空格数的 string$ 子串
从字符串的左侧(开头))。 实施时
在 bwBASIC 下,它不能用于赋值。

依赖项:MS_FUNCS

------------------------------------------

函数:LEN(string$)

说明:LEN 返回 string$ 的长度(以字节为单位)。

依赖项:COMMON_FUNCS

------------------------------------------

命令:LET 变量 = 表达式

描述:LET 将“表达式”的值赋给变量。
按照目前的实现,bwBASIC 支持隐含的 LET
语句(例如,开头的“X = 4.5678”
一条线或线段,但不支持赋值
到多个变量(例如,“x, y, z = 3.141596”)。

依赖项:(核心)

------------------------------------------

命令:LINE INPUT [[#] device-number,]["prompt string";] string-variable$

描述:LINE INPUT 从键盘或文件读取整行
或设备到字符串变量$。 如果输入来自
键盘(标准输入),然后将打印“提示字符串”
第一的。 与 INPUT 不同,LINE INPUT 读取整行,
不会停止以逗号分隔的数据项。

依赖项:COMMON_CMDS

------------------------------------------

命令:LIST line[-line]

描述:LIST 列出其参数中指定的程序行。

依赖项:交互式

------------------------------------------

命令:加载文件名

描述: LOAD 将 ASCII BASIC 程序加载到内存中。

依赖项:交互式

------------------------------------------

功能:LOC(设备号)

说明:LOC 返回 GET 或 PUT 语句的下一条记录
将使用。

依赖项:MS_FUNCS

------------------------------------------

命令:LOCATE 行、列

描述:LOCATE 将当前地址定位到指定的行并
柱子。 目前 (v2.10) 仅在 bwx_iqc.c 中实现。

依赖项:IMP_IQC 和 IMP_CMDLOC

------------------------------------------

功能:LOF(设备号)

说明:LOF 返回文件的长度(由设备号指定)
以字节为单位。

依赖项:MS_FUNCS

------------------------------------------

功能:LOG(数字)

描述:LOG 返回参数“number”的自然对数。

依赖项:(核心)

------------------------------------------

命令:LOOP [UNTIL 表达式]

描述:LOOP 终止程序循环:见 DO。

依赖项:STRUCT_CMDS

------------------------------------------

命令:LSET 字符串变量$ = 表达式

描述:LSET 将数据从“表达式”传输到左侧
字符串变量或随机访问缓冲区字段的一侧。

依赖项:COMMON_CMDS

------------------------------------------

命令:MERGE 文件名

说明:MERGE 将“文件名”中的程序行添加到程序中
在记忆中。 与 LOAD 不同,它不清除程序
目前在内存中。

依赖项:COMMON_CMDS

------------------------------------------

函数:MID$( string$, start-position-in-string[, number-of-spaces ] )

描述:MID$ 返回 string$ 的一个子串,开始于
字符串中的开始位置并继续
空格数字节。

依赖项:MS_FUNCS

------------------------------------------

命令:MKDIR 路径名$

描述:MKDIR 创建一个由指定的新目录路径
路径名$。

依赖项:UNIX_CMDS

------------------------------------------

功能:MKD$(数字)

说明:MKD$、MKI$ 和 MKS$ 在 bwBASIC 中都是等价的。
他们将数值 'number' 转换为字符串
可以以更压缩的形式存储在文件中
(特别是对于随机文件访问)。 由于 bwBASIC 确实
无法识别精度差异,这些命令
是有效等效的。

依赖项:MS_FUNCS

------------------------------------------

函数: MKI$( 数字 )

说明:相当于 MKD$ (qv)

依赖项:MS_FUNCS

------------------------------------------

功能:MKS$(数字)

说明:相当于 MKD$ (qv)。

依赖项:MS_FUNCS

------------------------------------------

命令:NAME old-file-name AS new-file-name

描述:NAME 将现有文件(旧文件名)重命名为
新文件名。

依赖项:UNIX_CMDS

------------------------------------------

命令:新

描述:NEW 删除内存中的程序并清除所有
变量。

依赖项:交互式

------------------------------------------

命令:NEXT [计数器变量]

描述:NEXT 出现在 FOR-NEXT 循环的末尾; 见 FOR。

依赖项:(核心)

------------------------------------------

功能:OCT$(数字)

说明:OCT$ 返回一个字符串,给出八进制(基数为 8)
“数字”的表示。

依赖项:MS_FUNCS

------------------------------------------

命令:ON 变量 GOTO|GOSUB line[,line,line,...]

描述:ON 要么分支(GOTO)要么调用子程序
(GOSUB) 基于变量的舍入值;
如果是 1,则调用第一行,如果是 2,则调用第二行
线被称为等。

依赖项:(核心)

------------------------------------------

命令:ON ERROR GOSUB line|label

描述:ON ERROR 设置错误处理子程序。 看
还有错误。

依赖项:标签的 COMMON_CMDS、STRUCT_CMDS

------------------------------------------

命令:OPEN "O"|"I"|"R", [#] 设备编号, 文件名 [,记录长度]
文件名 FOR INPUT|OUTPUT|APPEND AS [#]device-number [LEN = 记录长度]

描述:OPEN 为访问磁盘分配随机存取内存
文件或其他设备。 请注意,两种完全不同的形式
支持 OPEN 语句。 在第一种形式中,
“O”(注意这些字母必须用引号括起来
标记)表示顺序输出,“I”表示顺序
输入,“R”表示随机访问输入和输出。
一旦打开,可以执行任意数量的操作
在设备上(参见 WRITE #、INPUT #、PRINT # 等)。

依赖项:COMMON_CMDS

------------------------------------------

命令:OPTION BASE 编号

说明:OPTION BASE 设置数组下标的最小值,
0 或 1。

依赖项:(核心)

------------------------------------------

功能:POS

说明:POS 返回当前光标在行中的位置。

依赖项:COMMON_FUNCS

------------------------------------------

命令:PRINT [# device-number,][USING format-string$;] 表达式...

描述:PRINT 将文本输出到屏幕或文件或设备
由设备编号指定。 在目前的实施中
bwBASIC 的,要打印的表达式必须用
逗号(选项卡式输出)、分号(立即
顺序输出)或加号(立即顺序输出)
通过字符串连接输出)。 表达式分隔
不支持空格或制表符。 如果指定了 USING,
格式中可能会出现许多格式标记
串:

! 打印字符串的第一个字符

\ 打印字符串的 2+x 个字符,其中 x =
反斜杠之间的空格数

& 变长字符串字段

# 表示输出格式中的一位数
一个号码

. 数字中的小数点

+ 数字的符号(将输出 + 或 -)

- 数字后的尾随减号

** 用星号填充前导空格

$$ 输出数字前面的美元符号

^^ 指数格式的输出数字

_ 逐字输出下一个字符

按照目前的实施,指数格式
将被 C 编译器使用。

依赖项:(核心),用于 USING 的 COMMON_FUNCS

------------------------------------------

命令:PUT [#] device-number [, record-number]

说明:PUT 输出下一条可用记录或记录
由记录号指定到文件或设备
由设备号表示。

依赖项:COMMON_CMDS

------------------------------------------

命令:退出

说明:QUIT 是 SYSTEM 的同义词; 与互动
环境,它退出程序到
操作系统(或调用程序)。

依赖项:交互式

------------------------------------------

命令:随机数

描述:RANDOMIZE 为随机数生成器提供种子(参见 RND)。
bwBASIC下可以使用TIMER函数(qv)
为随机数提供“数字”种子
发电机。

依赖项:(核心)

------------------------------------------

命令:读取变量[, 变量]...

描述:READ 从 DATA 语句中读取值并分配这些值
命名变量的值。 READ 中的变量类型
语句必须与 DATA 语句中的数据类型匹配
当它们发生时。 另请参阅数据和恢复。

依赖项:(核心)

------------------------------------------

命令:REM 字符串

描述:REM 允许在程序中包含注释。 作为
目前已实施,整行如下
REM 被解释器忽略(因此,即使
MULTISEG_LINES 设置,REM 线将无法
找到一个段分隔符(“:”),然后是另一个
带命令的线段。 bwBASIC 目前没有
实现微软风格的单引号使用
标记表示备注。

依赖项:(核心)

------------------------------------------

命令:RESTORE 行

描述:RESTORE 重置 DATA 的行和位置计数器
和 READ 语句到程序文件的顶部或
到指定行的开头。 (目前这
必须是行号。)

依赖项:(核心)

------------------------------------------

命令:返回

说明: RETURN 结束一个由 GOSUB 调用的子程序。

依赖项:(核心)

------------------------------------------

功能: RIGHT$( string$, number-of-spaces )

描述:RIGHT$ 返回一个带有空格数的子字符串 string$
从字符串的右侧(末端)开始)。 实施时
在 bwBASIC 下,它不能用于赋值。

依赖项:MS_FUNCS

------------------------------------------

命令:RMDIR 路径名

说明:RMDIR 删除路径名指示的目录路径。

依赖项:UNIX_CMDS

------------------------------------------

功能:RND(数字)

描述:RND 返回一个伪随机数。 “数字”值
如果提供, bwBASIC 会忽略。 随机
命令 (qv) 为随机数生成器重新设定种子。

依赖项:(核心)

------------------------------------------

命令:RSET 字符串变量$ = 表达式

说明:RSET 将数据从“表达式”传输到右侧
字符串变量或随机访问缓冲区字段的一侧。

依赖项:COMMON_CMDS

------------------------------------------

命令:RUN [行][文件名$]

说明: RUN 执行内存中的程序。 如果文件名$是
提供,然后指定的文件被加载到内存中
并被执行。 如果提供了行号,则执行
从那条线开始。

依赖项:交互式

------------------------------------------

命令:SAVE file-name$

说明: SAVE 将内存中的程序保存到文件名$。 基本
仅以 ASCII 格式保存文件。

依赖项:交互式

------------------------------------------

命令:SELECT CASE 表达式

说明:SELECT CASE 引入了多行条件选择
陈述。 作为 SELECT 的参数给出的表达式
CASE 将通过以下 CASE 语句进行评估。 这
SELECT CASE 语句以 END SELECT 结束
语句。

按照目前的实施,可以遵循 CASE 语句
通过字符串值,但在这种情况下只是简单的比较
(等于,不等于)可以执行。

依赖项:STRUCT_CMDS

------------------------------------------

功能:SGN(号码)

说明:SGN 返回参数“数字”的符号,+1
为正数,0 为 0,-1 为负数。

依赖项:(核心)

------------------------------------------

功能:SIN(数字)

描述:SIN 返回参数 'number' 的正弦值
以弧度表示。

依赖项:(核心)

------------------------------------------

功能:空格$(数字)

描述:SPACE$ 返回一串空格“数字”
字节长。

依赖项:MS_FUNCS

------------------------------------------

功能:SPC(数字)

描述:SPC 返回一串空格 'number'
字节长。

依赖项:MS_FUNCS

------------------------------------------

功能:SQR(数字)

描述:SQR 返回参数“number”的平方根。

依赖项:(核心)

------------------------------------------

命令:停止

说明:STOP 中断程序执行。 根据实施
bwBASIC,STOP 发出 SIGINT 信号。

依赖项:(核心)

------------------------------------------

功能:STR$(数字)

描述:STR$ 返回一个字符串,给出十进制(基数为 10)
参数“数字”的表示。

依赖项:COMMON_FUNCS

------------------------------------------

函数:STRING$(number, ascii-value|string$)

描述:STRING$ 返回一个字符串 'number' 字节长组成
string$ 的第一个字符或字符
回答 ASCII 值 ascii-value。

依赖项:MS_FUNCS

------------------------------------------

命令:SUB 子程序名称

描述:SUB 引入了一个命名的多行子程序。 这
子程序由 CALL 语句调用,并结束
带有 END SUB 语句。

依赖项:STRUCT_CMDS

------------------------------------------

命令:SWAP 变量,变量

描述:SWAP 交换两个变量的值。 两个变量
必须是相同的类型(数字或字符串)。

依赖项:COMMON_CMDS

------------------------------------------

命令:系统

说明:SYSTEM 从 bwBASIC 退出到调用程序或
(更常见的是)操作系统。

依赖项:交互式

------------------------------------------

功能:TAB(数字)

说明:TAB 输出空格,直到由
已达到“数量”。

依赖项:(核心)

------------------------------------------

功能:TAN(数字)

描述:TAN 返回参数“number”的正切值
以弧度表示。

依赖项:(核心)

------------------------------------------

功能:时间$

说明: TIME$ 返回基于计算机的当前时间
内部时钟作为“HH-MM-SS”形式的字符串。
在 bwBASIC 下实现,TIME$ 不能用于
分配(即设置系统时间)。

注意:bwBASIC 目前 (v2.10) 不允许赋值
到一个函数。

依赖项:COMMON_FUNCS

------------------------------------------

功能:定时器

说明: TIMER 以秒为单位返回系统时钟中的时间
从午夜过去了。

依赖项:MS_FUNCS

------------------------------------------

命令:TROFF

描述:跟踪工具的 TROFF 轮次; 见波场。

依赖项:COMMON_CMDS

------------------------------------------

命令:波场

描述:TRON 打开跟踪工具。 该设施将打印
方括号中的每个行号作为程序
执行。 这在调试程序时很有用
行号。 调试一个未编号的程序
TRON,先打DO NUM,但记得打DO UNNUM
在您稍后保存程序之前。

依赖项:COMMON_CMDS

------------------------------------------

函数:VAL(字符串$)

说明:VAL 返回字符串$ 的数值。

依赖项:COMMON_FUNCS

------------------------------------------

命令:VARS

描述:VARS 是一个调试命令,它打印一个列表
定义的所有具有全局作用域的变量。

依赖项:调试

------------------------------------------

命令:温德

描述:WEND 结束一个 WHILE-WEND 循环; 见WHILE。

依赖项:COMMON_CMDS

------------------------------------------

命令:WHILE 表达式

说明: WHILE 启动 WHILE-WEND 循环。 循环结束于
WEND,并且执行通过循环重复为
只要“表达式”为 TRUE (-1)。

依赖项:COMMON_CMDS

------------------------------------------

命令:WIDTH [# device-number,] number

说明:WIDTH 将屏幕或设备输出设置为“数字”
列。 device-number 指定设备
或输出文件。

依赖项:COMMON_CMDS

------------------------------------------

命令:WRITE [# device-number,] element [, element ]....

描述:WRITE 将变量输出到屏幕或文件
或设备编号指定的设备。 逗号
在表达式输出和字符串之间插入
用引号括起来。

依赖项:COMMON_CMDS

------------------------------------------

6. 预定义变量

BWB.编辑器$
BWB.FILES$
BWB.提示$
BWB.Implementation$

命令 EDIT 和 FILES 是启动的伪命令
在变量 BWB.EDITOR$ 和 BWB.FILES$ 中命名的 shell 程序,
分别。 这些变量的默认值可以
在 bwbasic.h(DEF_EDITOR 和 DEF_FILES)中更改,或者它们
可以由用户即时更改。 一个想法可能是
在“profile.bas”中为特定的变量初始化这些变量
实施; 例如, BWB.FILES$ 可能被定义为
Unix 系统上的“ls -l”或 DOS 系统上的“dir”。

可以使用预设变量 BWB.PROMPT$ 来设置提示
bwBASIC 的字符串。 再次,建议用户 -
选择提示可以在“profile.bas”中设置为
每次 bwBASIC 启动时初始化。 注意特别
字符可以添加到提示字符串中,例如,

BWB.PROMPT$ = "OK"+CHR$(10)

将给出“确定”提示,然后是换行符。

预设变量 BWB.IMPLEMENTATION$ 将返回“TTY”
bwx_tty 实现并将返回“IQC”
IBM PC 或 Compatibles with QuickC (bwx_iqc) 实现。
这可能有助于确定哪些命令和功能
(特别是 CLS、LOCATE 和 INKEY$)可能可用。

7. 未执行的命令和功能以及发展议程

有些项目已经很久没有实施了
标准 BASIC 的一部分,他们的缺席似乎令人惊讶。
但是,在每种情况下,它们的实现都需要操作
特定于系统的功能或特定于终端的功能
不能普遍提供。 一些具体的例子:

CLOAD 依赖于二进制文件的 CP/M 或 MSDOS 约定
可执行文件。

CONT 请参阅下面的 RESUME(程序员无知?)。

DEF USR 依赖于二进制文件的 CP/M 或 MSDOS 约定
可执行文件。

FRE() 报告可用内存量的能力
由于不同的模式,其余是系统特定的
内存分配和访问; 因此这
能力在 ANSI 或更早版本中不存在
的 C 和此功能在 bwBASIC 中不可用。

INPUT$() C 本身无法读取未回声的键盘
输入,并且只能在一个之后才能读取键盘输入
已输入回车。

INP 调用硬件端口,如机器语言
例程,是高度特定于系统的,不能
单独用 C 实现。

LLIST 请参阅下面的 LPRINT。

LPOS 请参阅下面的 LPRINT。

LPRINT 和 LLIST 等,需要访问打印机设备,
这因一个系统而异。 用户
可能会尝试自己打开打印机设备
操作系统(例如,Unix 系统上的“/dev/lp”,
或DOS下的“PRN”)看看能不能打印
从 bwBASIC 以这种方式。

NULL 在这种情况下,我确信 NULL 不再是
必要的,因为现在很少有打印机需要 NULL
在行尾。

OUT 请参见上面的 INP(调用硬件端口)。

PEEK() PEEK 和 POKE 使早期的 BASIC 能够寻址
特定的内存位置。 虽然 bwBASIC
可能会执行此命令 (POKE) 和
这个函数(PEEK()),限制是
受到不同系统的高度限制
不同系统中的内存访问。

戳见上面的 PEEK()。

RENUM 因为可以输入未编号的行并且
在 bwBASIC 下执行,它不会
可以实现 RENUM 例程。
相反,bwBASIC 使用 DO NUM 和 DO UNNUM。

RESUME 在 C 下这可能吗? 如果是这样,我
只是还没有弄清楚。
Mea culpa(但不是最大值)。

USR 参见上面的 CALL 和 DEF USR(机器语言
子程序)。

VARPTR 参见上面的 PEEK 和 POKE。

WAIT 请参见上面的 INP 和 OUT。

还有其他命令、函数和实现细节
我正在处理的,以及哪些在未来的议程清单上
bwBASIC 的版本。 这些议程包括:

PARACT 即执行并行操作的能力。 这个
ANSI BASIC 中有描述,虽然我没见过
之前实施。 它将提供一个粗糙的、非
范围内的抢占式多任务处理形式
一个 BASIC 程序。 程序员会注意以下几点
bwBASIC 中已经有 PARACT 的钩子。

XMEM PC 型计算机需要能够使用扩展
记忆。 如果我们可以为程序使用扩展内存
行、变量和函数定义,我们可以
编写更长的程序。 这将需要,
然而,程序的相当严重的重写
将内存句柄用于这些存储功能
而不是直接内存指针。

Windows 内存句柄除了
程序行的非抢占式执行(在一个
原始形式,已经存在)将使其成为可能
为 Windows 开发实现,也许
用于其他图形用户界面。 但是什么形式
这应该采取吗? 我现在想到的是 BASIC
会在后台运行,只出现
作为 GUI 空间中的图标,带有弹出式编辑器
和输出窗口。 因此,解释型语言
将服务于诸如“cron”之类的目的(一项任务
调度程序)在 Unix 系统下。 你可能有一些
在这方面对我有帮助的思考。

图形 在这里,我们面临着不同的相当关键的差异
图形的样式和实现,例如,之间
GWBASIC、ANSI BASIC、VisualBASIC 等。 但它是
图形命令和函数可能
添加。 这些都是特定于实现的。

完整 BASIC 的 ANSI 标准没有指定哪个特定的
命令或函数必须被执行,事实上标准
非常坚固。 也许 BASIC 的实现永远不会
包括所有项目,但一些 ANSI 命令和函数
未实现的有:

查看校区
角度
国家 / 地区
算术
ARRAY
ASK
BSTR
BVAL
中欧
细胞
CLIP
整理
建立联系
COSH
DATE
DEBUG
DECIMAL
宣布
DEGREES
支持装置
断开
显示屏玻璃制造
DOT

ERASE
EVENT
例外
图形
处理程序
图像
KEY
LCASE
线数
LOG10
LOG2

MIX
多点
欧丁
OUTPUT
帕拉特
图片
像素
情节
要点
RADIANS
接收
重新编号
改写
旋转
圆型行李箱
抢占
发送
SHIFT
SINH
正切
超时
跟踪
变换
截短
优邦
UCASE
视口
等待
视口
区域宽度

8. BYWATER BASIC 的故事

这个项目最初是由我的祖母,夫人在 1982 年开始的。
德克萨斯州博蒙特的 Verda 咒语。 她正在使用
Osborne I CP/M 计算机上的 ANSI C 编译器,尽管我的
祖父 (Lockwood Spell) 购买了一台 IBM PC,内存为 256k
RAM 我的祖母不会使用它,转述 George Herbert
大意是“64k 编程不行,512k 编程不行”。
她用过微软 BASIC,虽然她没有反对
她反复说她不明白为什么数字
研究并未针对 1.0 版“起诉微软的袜子”
MSDOS,所以我认为她希望削弱微软的
整个市场,并最终建立一个新的软件帝国
博蒙特的北端。 她的编程工作被削减了
当她从 Beaumont 被扔到 Port 时,她的身材很短
1986年夏天的亚瑟通勤列车。我找到了来源
在她编织的单密度 Osborne 软盘上编码到 bwBASIC
包并最终设法将其全部复制到 PC 上
软盘。 在此版本发布之前,我对其进行了略微修改。 你
不过,应该知道,我自己是历史学家,而不是程序员。

9. 通讯:

电子邮件: [email protected]

1993 年 10 月 11 日 BW基础版(1)

使用 onworks.net 服务在线使用 bwbasic


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。