中华学习机原理和应用(19)磁盘操作系统DOS

🏠 首页 《无线电》杂志 1989年 🔗 第7期 🔗 第26页 分类:无线电技术自学经验交流 🔗 张世英 🔗

§1.概述

“小蜜蜂-Ⅰ”主机加配扩展箱之后,就可以和磁盘机交换信息。

同APPLEⅡ一样,适于在“小蜜蜂-Ⅰ”型机上运行的各类操作系统,均载于各种软磁盘上,经由磁盘机可以装入主机内。能够支持BASIC的操作系统,以DOS3.3较为普遍,以它为母本还开发出来一批快DOS,其中以DAVID-DOS较为典型。本文主要介绍DOS3.3,文末将简单指出DAVID-DOS与它的不同。

DOS3.3既可支持浮点BASIC(包括APPLE Ⅱ BASIC和XMF-BASIC),也可支持整数BASIC(INTBASIC)。整数BASIC解释程序在DOS3.3主盘上,载入16K扩展RAM中方可使用。

DOS3.3装入内存后,会和XMF-BASIC使用的第4页高分辨率图形区重叠。因此,“小蜜蜂-Ⅰ”型机允许使用命令CALL$77A(或CALL$7FA)把DOS3.3(或DAVID-DOS)重定位后移至扩展的16KRAM中,除INIT命令外,DOS3.3的其它命令照常使用。

将DOS装入内存的方法主要有以下两种:

1.冷启动(开机启动):将载有DOS的磁盘插入1号磁盘机中,打开扩展箱的电源,机器会自动装入DOS。

2.热启动(命令启动):使用命令PR#6,或IN#6,或CALL$C600,或在监控中用命令6CTRL-P,或C600G等。

DOS装入内存后,还会自动装入该盘上第一个BASIC程序(通常为HELLO),并运行之。

DOS命令可分作五大类。命令格式基本上是由命令和参数两部分组成。命令由规定的大写字母序列组成。参数不尽一致,较多的具有如下格式:

文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

文件名不得多于30个字符,必须以英文字母为首字符,文件名中不得有逗号和<CR>等特殊字符。

V选项,在大写字母V之后跟一个数字,指明一张磁盘的卷号。省缺时以V=254处理。

S选项,在大写字母S之后跟一个数字,指明磁盘所占的槽口号。在“小蜜蜂-Ⅰ”型机上如果不再插入磁盘驱动卡另接盘机,此选项可省缺。

D选项,在大写D之后跟一个数字1或2,指明用1号盘机或2号盘机。此项省缺时取以前使用过的d值。

§2.内务命令

一、 INIT

格式:INIT文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:将一张磁盘格式化,并将内在中的DOS和BASIC程序写入该盘片。

将DOS移入扩展的16KRAM后,INIT命令将不能使用,但出现一个新的命令PADD(它不带参数)。用来显示刚刚和磁盘进行信息交换时信息在内存中的首地址和长度。

二、 CATALOG

格式:CATALOG[,S\(_{s}\)][,Dd]

功能: 显示当前磁盘上的文件目录。显示时分左中右3部分。

最左边一个字母,以表明该文件的类型:

A—浮点BASIC程序

I—整数BASIC程序

B—二进制文件

T—文本文件

中间一项(紧跟在表示类型的字母之后)是数字,表明该文件占用的扇区数(内存中每256个字节在入磁盘后占一个扇区)。

最右一部分是该文件的名字。

有时在表示类型字母的前面还有一个*号,表明该文件已有写保护(防止被修改)。

三、 SAVE

格式:SAVE文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:将内存中的BASIC程序,以指定的文件名存入磁盘。

四、 LOAD

格式:LOAD文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能: 从磁盘上将指定名字的BASIC程序读入内存。

五、RUN

格式:RUN文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:它相当于先执行一次上述的LOAD命令,再执行一次BASIC中的RUN命令。即将指定名字的BASIC程序从磁盘上装入内存中,并接着运行它。

六、RENAME

格式:RENAME文件名1,文件名2[,V\(_{v}\)][,Ss] [,D\(_{d}\)]

功能:将文件名1改名为文件名2(只改名字,不改内 容)。

七、 DELETE

格式:DELETE文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:将指定的文件从磁盘上删除掉。

八、LOCK

格式:LOCK文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能: 使指定的文件加锁保护。保护后的文件删除不掉,改写不了。列示目录时前面缀有*号。

这是一种软保护,只保护指定的文件。还有一种硬保护是将盘片边缘上的小方缺口贴住,这时整个磁盘的内容都改动不了。

九、UNLOCK

格式:UNLOCK文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:对指定的文件解锁(取消写保护)。

十、VERIFY

格式:VERIFY文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:用来检查指定文件是否正确。有错误时将给出I/OERROR的提示。

十一、 MON

格式:MON[C] [,I][,O]

功能:所有DOS命令,所有内存与磁盘之间交换的信息,通常都是不显示的,此命令可使之有选择地显示出来。

选用C项时,显示DOS命令;

选用I项时,显示输入至计算机的信息;

选用O项时,显示输出至磁盘的信息。

3个选项至少选1个。多于1个时,两两用逗号分开。3个选项的顺序可任意排列。

十二、 NOMON

格式:NOMON[C][,I][,O]

功能:撤销MON的相应显示功能。

十三、MAXFILES

格式: MAXFILES n

功能:其中n为1~16之间的整数。该命令用来设定同时打开文件的个数,以便在内存中留出足够的空间供它们使用。系统建立时自动设定n为3。

§3.二进制文件命令

一、 BSAVE

格式:BSAVE文件名,A\(_{a}\),Ll[,V\(_{v}\)],[, Ss][,D\(_{d}\)]

功能:将内存中从指定地址开始的二进制文件(如机器语言子程序、图形信息或数据)按指定长度存入磁盘,其名字为指定的文件名。

大写A之后的小写a,指明一个起始地址,大写L之后的小写l,指明存入长度(字节数),它们均可用十进制数给出,也可用由$导入的十六进制数给出。

二、 BLOAD

格式:BLOAD文件名[, A\(_{a}\)],[, Vv][,S\(_{s}\)][,Dd]

功能:从磁盘上将给定的二进制文件读入内存中。A选项指明读至内存的首址,该项省缺时,读至该文件存入磁盘前所在的空间。

三、BRUN

格式:BRUN文件名[, A\(_{a}\)][,Vv][,S\(_{s}\)][,Dd]

功能:将指定的二进制文件(在此必须是机器语言程序)读至由A选项指定的内存空间,并从头运行它。A选项省缺时,读至该文件存入磁盘前所在的空间。

§4.访问命令

一、 FP

格式:FP

功能:转入浮点BASIC系统,清除现有的BASIC程序及其产生的数据。 二、INT

格式:INT

功能:进入整数BASIC状态(这必须在建立DOS时将 INTBASIC装入16K扩展RAM中才可),并清除当前的 BASIC程序及其生成的数据。

三、IN#

格式:IN#n

功能:启动n号槽口上的输入设备。

四、PR#

格式:PR#n

功能:启动n号槽口上的输出设备。

注意:上述二命令中的n,只能取0~7之间的值,且该号槽口必须有相应的设备,否则系统会被“挂起来”。

五、 CHAIN

格式:CHAIN文件名[,V\(_{v}\)][,Ss][,D\(_{d}\)]

功能:这一命令仅支持整数BASIC。它通常写在一个程序的尾部,它会自动从磁盘上载入指定的程序并投入运行,而上一个程序所生成的数据被传递给这个新载入的程序,供它继续使用。

六、CTRL-D

说明:前面介绍的全部DOS命令,均可用于立即执行方式。如果想把它们用于延迟执行方式(即带行号的BASIC程序行)中,则需经过特殊手段。

所谓特殊手段,就是CTRL-D命令。它的实质就是:通过PRINT语句输出一个控制字符CTRL-D,这个PRINT接着输出的内容,就被认作是DOS命令了。

由于CTRL-D是不可显示的,写在程序中,只能看到该字将前后的双引号对,这时,往往加一个REM语句,注明它是CTRL-D。或者用函数CHR$(4)来代替CTRL-D(CHR$(4)的值就是CTRL-D的ASCⅡ码值)。

比如程序行:

符号PRINT“”;“RUN HELLO”:REM CTRL-D或程序行:

行号 PRINT CHR$(4);“RUN HELLO”

它们的功能是一样的:在输出一个CTRL-D之后,接下去的RUN HELLO不再当作输出显示(或打印)的内容,而是当作DOS命令,从而从磁盘上载入BASIC程序HELLO,并运行之。

如果在第一个程序尾部加上程序行:

行号 PRINT CHR$(4);“RUN第二个程序的名字”而在第二个程序的尾部加上程序行;

行号 PRINT CHR$(4);“RUN第三个程序的名字”…

这样,只要第一个程序运行后,会自动接着运行第二个、第三个程序。从而可以实现若干个BASIC程序的自动联接运行。

DOS中的CHAIN命令虽不适合浮点BASIC(APPLE IIBASIC或XMF-BASIC),但系统盘上有一个名为CHAIN的二进制文件,只要把它复制到工作盘上,那么,浮点BA-SIC程序之间的数据传递也是可以实现的。

其方法是:在第一个程序的尾部加入如下两个程序行:

行号 PRINT CHR$(4);“BLOAD CHAIN, A520”

行号 CALL 520“第二个程序的名字”

这样,第一个程序运行后,执行上述两个程序行,会自动从盘上装入并运行第二个程序,而第一个程序生成的数据传入第二个程序,并供它继续使用。(未完待续) (张世英)