中华学习机原理和应用(15)——XMF—BASIC

🏠 首页 《无线电》杂志 1989年 🔗 第3期 🔗 第29页 分类:技术市场 🔗 张世英 🔗

§1.概述

中华学习机“小蜜蜂—Ⅰ”是APPLE Ⅱ的兼容机,其RAM为以64KB,配置扩展箱后,可接5 1/4英寸软磁盘机,且具有扩充槽口。因此,任何可以在APPLE机上运行的系统(如DOS3.3、UCSD、CP/M等操作系统以及它们所支持的BASIC、PASCAL、FORTRAN、COBOL等高级语言,和LOGO语言,各种6502汇编语言,以及VISICALC、dBASE等多种应用软件),均可在“小蜜蜂—Ⅰ”型机上运行。

类似于APPLE Ⅱ,在“小蜜蜂—Ⅰ”内固化了一个BASIC语言,称为XMF—BASIC,它与APPLE Ⅱ BASIC完全兼容,且有较大的扩充与修改,给使用者带来诸多的方便。

XMF—BASIC可以在操作系统DOS3.3(以及由它派生出来的各类快DOS,如DAVID—DOS等)支持下工作,也可以在没有操作系统的状态下独立运行。

本文拟就XMF—BASIC给出简要而概括的介绍。有关XMF—BASIC的使用说明,已收入《中华学习机小蜜蜂—Ⅰ使用说明与技术参考手册》(清华大学出版社即将出版)中,也可参阅本人编著的《苹果Ⅱ—BASIC程序设计》(北京师范大学出版社出版)一书。

§2.键盘与显示屏幕

键盘和显示器是计算机最基本的输入、输出设备,也是人—机对话的主要工具。通过键盘可以输入各种命令,用来控制计算机的工作;而显示器则随时可以知道计算机的工作状态和执行结果。

一、键盘

大写英文字母和数字,敲击标有相应字符的键即可输入;当一个键上标有上下两个字符时,只有先压住SHIFT键,再敲击字符键,相应键的上部字符方可输入。

先压下CAP键,再敲击字母键时,将输入相应的小写字母。

空白长条又称空格键,每压一次,输入—个空格。

压一次←键,光标(即将输入字符的显示位置)左移一格;压一次→键,光标右移一格。

每压一次RETURN键,表明当前输入结束,产生一次回车换行动作(在以后的叙述中,以〈CR〉表示此键)。

压下REPT键,刚刚输入(或随接敲击)的字符被重复接收,直至释放REPT键为止。

CTRL称为控制键。先压下控制键再敲击字母键,将输入相应的控制字符。这类字符不会被显示。系统定义某些控制字符有一定的功能。如:

CTRL—C,中止程序之运行;CTRL—S,暂停输出显示;CTRL—G,发出“嘟”的声音;CTRL—X,刚刚输入的内容作废;CTRL—M,相当于敲击RETURN键;CTRL—U,相当于→键;CTRL—H,相当于←键;CTRL—RESET,强迫停止机器的工作,返回XMF—BASIC状态,等待用户的输入。

ESC键,用于屏幕的行编辑:

ESC A,使光标右移一格:ESC B,使光标左移一格;ESC C,使光标下移一行;ESC D,使光标上移一行;ESC E,从光标处开始清除屏幕至本行尾;ESC F,从光标处开始清除至屏幕底;ESC@,清除整幅屏幕,光标移至左上角;ESC I,使光标上移一行;ESC J,使光标左移一格;ESC K,使光标右移一格;CSC M,使光标下移一行。

上列最后4个命令,每压一次ESC,可连续压I、J、K或M中的任何键使光标移动,直至敲入别的键后才放弃ESC 的功能;而其余的任何ESC命令,每个ESC只与后续敲入键一次有效。

以上各类键的使用方法,与APPLE Ⅱ无异。在“小蜜蜂—Ⅰ”型机上,还增加了如下一些复合命令键:

CTRL—SHIFT—1,相当于输入CATALOG DI〈CR〉,CTRL—SHIFT—2,相当于输入CATALOG;CTRL—SHIFT—3,相当于输入BRUN;CTRL—SHIFT—4,相当于输入LOAD;CTRL—SHIFT—5,相当于输入SAVE;CTRL—SHIFT—6,相当于输入PR#6;CTRL—SHIFT—7,相当于输入TEXT;CTRL—SHIFT—;,相当于输入ESC D;CTRL—SHIFT—,,相当于输入ESC B;CTRL—SHIFT——,相当于输入CALL—151〈CR〉;CTRL—SHIFT—·,相当于输入ESC A;CTRL—SHIFT—/,相当于输入ESC C;CTRL—SHIFT—B,相当于输入3D3G〈CR〉;CTRL—SHIFT—C,相当于输入3DOG〈CR〉; CTRL—SHIFT—R,相当于输入RUN;CTRL—SHIFT—T,相当于输入LIST〈CR〉;CTRL—SHIFT—Y,相当于输入BRUN。

二、显示器

“小蜜蜂—Ⅰ”型机所用的显示器,可以是彩色或黑白电视机,也可以是彩色或黑白监视器。均采用PAL—D制式。

有3种基本的屏幕方式:

(一)文本方式

通常,各种字符均以此种方式显示。整幅屏幕,上下分为24行,每行可显示40个字符。每个字符以5×7个点阵构成。显示字符时,又可有正常的(黑底白字)、反相的(白底黑字)和闪烁的(以上两种交替)3种显示方式。

(二)低分辨率图形方式

整幅屏幕分成上下48行、左右40列共1092个方块,每个方块可选用16种颜色中的任一种。

(三)高分辨率图形方式

整幅屏幕分成上下192行、左右280列的53760个点,每个点可选用6种颜色中的任一种。

除上述3种屏幕方式外,尚可构成文本—图形混合方式。这时,底部留出4个文本行用以显示字符,其余均用来显示图形(色块或色点)。

至于汉字屏幕,则是借用了高分辨率图形方式实现的。

§3.BASIC基础

一、BASIC程序的构成规则

程序的每行为一个程序行。每个程序行左端的数字,称为行号,以表明程序运行的顺序。行号后面的词(如LET、PRINT、END)称为关键字(或保留字),指明要干什么事。其余称为语句体(如A=42等),指明要怎么做。关键字和语句体合称为语句(或称为命令)。

构成BASIC的主要规则是:

1.行号必须是无符号整数,其选用范围为0~63999。相邻两个行号的间隔不限;

2.关键字是系统规定的,未经特殊手段不得自造,且不得使用英文小写字母;

3.一个程序行通常只有一个语句。多于一个语句时,得用语句分隔符“:”予以分隔;

4.一个语句必须在同一语句行内写完,不得拆开写在两个程序行内。

二、程序的输入和执行

(一)程序的输入

在BASIC提示符“]”显示于屏幕之后,即可依程序中字符排列的顺序逐个由键盘敲入。每输入完一个程序行,敲击一次〈CR〉键。

输入过程中如果敲错了键,可敲击←键将光标移至出错处重新敲入正确内容,也可敲击CTRL—X键使刚输入的部分作废,重新敲入这个程序行。

同一个行号下敲入不同语句时,以最后一次输入为准;只输入行号而不输入语句时,该程序行无效。

(二)程序的执行

程序输入后,必须敲入RUN命令方可执行。执行结束后,程序原封不动保留在内存中。这种执行方式称为程序执行方式(或延迟执行方式)。

输入不带行号的语句后,只要再敲CR键,这个(或这些)语句将立即执行。执行结束后,所执行的语句将不会从内存中找到。这是另一种执行方式,称为命令执行方式(或称立即执行方式)。

三、数据类型与值域

XMF—BASIC有三种数据类型:

整数型,其值域为|整数|≤32767;

实数型,其值域为|实效|≤10\(^{38}\);

字符串型,只要不含CTRL—X、CTRL—M、CTRL—H和RETURN等字符,且字符总个数不多于255个即可。

整型数和实型数,合称为算术型量,可以根据程序需要相互转换。因此它们是相容的数据类型。而它们和字符串型数据是不相容的数据类型。

对于实数,当其绝对值<3×10\(^{-39}\)时,作为0处理。输出一个实数时,有效位取9位。超出9位时自动转换成科学计数法,其格式是:

SX.××……×ESTT

其中S表示正负号,×表示0~9的某一数字,TT为指数值,E则表示10的幂。

四、常量与变量

常量指程序运行中不被改变的量。程序运行时需要用户输入的量和程序运行中输出的量,均采用常量的形式。

XMF—BASIC 比之 APPLE Ⅱ BASIC的一个重要扩展是:在任何使用算术常数的地方(无论是写在程序中,还是经由键盘输入),均可使用由$导入的十六进制常数,只要不超过65535(即$FFFF)即可。

字符串常量通常由双引号将这些字符序列括住。但输出时其前后双引号被略去。

变量是程序运行中可以改变的量,它实际上是常量的代号,程序运行的任何时刻,任何一个变量总是唯一地对应着一个确定的常量。

构成变量名的规则是:

1.必须以英文大写字母开头,其后的字符可以是英文大写字母,也可以是数字;

2.变量名可以长达238个字符,但总是以开头两个字符作为有效变量名;

3.变量名中不得含有关键字。

为了区别变量的数据类型,应在变量名之后带上不同的尾符。带有尾符%者,为整变量名;带有尾符$者,为(字符)串变量名;不带尾符者,为实变量名。

以上变量名均称简单变量名。如果在尾符之后带一个小括号对,括号内有一个或若干个算术型量(每两个算术型量之间用逗号“,”分隔开),则称为下标变量。如A(1,2),相当于数学上的A\(_{12}\)。这时,同一下标变量名的全部下标变量,称作一个数组,下标变量的名字又称作数组名,小括号中算术型量的个数称为数组的维数,其数值称为最大下标值。

五、运算符与表达式

算术运算符有+(加)、-(减)、*(乘)、/(除)和乘方)。

字符串运算符有+(串联接)。

逻辑运算符有NOT(非)、OR(或)、AND(和)、=(相等)、<>(或><,不等)、>(大于)、<(小于)、>=(或=>,大于等于)、<=(或=<,小于等于)。

逻辑运算符中,除前3个外,又称作关系运算符(或比较运算符)。

某类数据或由该类运算符连接相应类型的数据,构成该类型表达式。逻辑表达式具有真假两个逻辑值:真用1表示,假用0表示。因此,逻辑表达式可视作算术表达式的特例。而算术表达式当作逻辑表达式使用时,其值为0表示假;其值非0表示真。

在一个表达式中,除可出现上述运算符外,还可以出现小括号对、正负号(同NOT合称单边运算符)和函数。它们的优先顺序是:();单边运算符NOT、+、-;*、/;+、-;<、<=、=、>、>=、<>;AND;OR。

其中排在同一行上的运算符,以出现在表达式中的先后为序。

BASIC表达式中,乘号必须是*,除号必须用/。小括号不得用方括号或花括号代替。

§4.程序编辑命令

一、NEW和HOME

格式:NEW

HOME

功能:NEW,清除内存中当前的BASIC程序及其产生的各类数据;HOME,清除文本屏幕,将光标置于文本窗口左上角。

二、AUTO

格式:AUTO〔起始行号〕〔,行号间隔〕

功能:这是XMF—BASIC增加的命令,在APPLEⅡ BASIC中不存在。其功能是在输入一个BASIC程序时,自动生成各行号。起始行号省缺时,以10作为首行号;行号间隔省缺时,生成的行号以10递增。

某一行号的内容输入有错时,可用←键退回修改,也可用CTRL—X使之作废,重新输入。

当一个程序行输入结束后,应敲〈CR〉键。这时会产生一个新行号,等待用户输入下一个程序行。

全部程序输入结束后,敲入CTRL—C命令,便会退出AUTO状态。

三、LIST

格式:LIST〔行号1〕〔,行号2〕

或LIST〔行号1〕〔—行号2〕

功能:将程序中从行号1至行号2的程序行列示出来。省缺行号1时,从首行号开始列示;省缺行号2时,列至最后一个程序行。单独一个LIST命令(不限行号)列示全部程序;LIST后仅跟一个行号,则只列示该行程序。

APPLE Ⅱ BASIC一个小小的失误是,如果有行号为0的程序行,不能予以单独列示,LIST0相当于LIST。而XMF—BASIC对此作了修正。

四、DEL

格式:DEL 行号1,行号2

功能:删除从行号1至行号2之间的全部程序行。

五、EDIT

格式:EDIT行号

功能:这是XMF—BASIC增加的命令,在APPLEⅡ BASIC中是没有的。其功能是编辑指定的程序行。

执行此命令时,屏幕左上角为EDIT:据示,从第二行起列示指定的程序行,光标置于该程序行之首。通过敲入→键或←键可移动编辑位置。

删除:敲入D键,可删去光标所在位置的字符,并使后续字符逐个向左推移一个字符位置。连续删除多个字符,可连续敲击D键相应次数。

插入:敲I键进入插入状态,再由键盘输入字符,将其插入光标所在位置之左侧,并将光标所在位置及其后部的全部字符逐个右推一个字符位置。连续插入时可连续敲击相应字符键。退出插入状态用ESC键。

修改:敲C键进入修改状态,再由键盘输入的字符替代光标处的字符。每修改一个字符,光标右移一个字符位置,因此,连续修改多个字符时可依次连续输入。退出修改状态用ESC键。

尾加:敲X键进入尾加状态,这时从键盘敲入的字符将依次接续在程序尾部。退出尾加状态也用ESC键。

当这行程序编辑结束后,破入〈CR〉键即可(无论光标在何处)。(未完待续)(张世英)