宣布TERC 基本知识增强功能

肖恩·诺兰(Sean Nolan)

今年圣诞节是六月。 TERC 基本知识增强功能(Applesoft增强功能包)已被转储(请原谅,我是指发布)到公共领域。 TERC 基本知识增强功能向Applesoft添加了50多个其他BASIC命令,这些命令允许:

•在屏幕上的任意位置混合文本和图形。
•带参数传递和局部变量的带标签的子例程。改进的INPUT命令,简化了用户错误的捕获。
•如果我再没有其他。
•高分辨率SCRN和XPLOT命令。
•非破坏性弹出菜单和窗口。
•调试和诊断命令。
•可选‘compiler’(与明显不准确的术语一起使用),使您可以在文字处理器上编写BASIC程序。
•与大多数“与”号或USR库没有冲突。
•机器语言程序员的可扩展性和记录的入口点。

TERC 基本知识增强功能由Steve Beardslee,Steve Hunt和Steve Bannasch亲自编写,供马萨诸塞州剑桥的技术教育研究中心(TERC)内部使用。 TERC将增强功能发布到公共领域,仅供非商业用途。可以通过A.P.P.L.E订购增强功能。合作(带有文档在磁盘上)或通过我自己(带有印刷文档)。增强功能基于ProDOS,因此需要64K RAM。目前,它们与Lasar 128或任何其他Apple克隆不兼容。增强功能的核心使用6K内存($ 800- $ IFFF)。某些命令,例如自动MENU例程和弹出窗口,需要更多的内存。

基本知识增强功能不使用“&”号,而是使用单引号(‘)。所有增强功能命令均以该字符开头。通过避免使用“与”号,增强功能可以向Applesoft添加新过程和新功能(“ Ampersand”允许您创建过程,但不能创建函数)。过程是要在BASIC语句的开头执行的命令,例如Applesoft命令HPLOT,HOME,PRINT及其类似命令。在数字或字符串表达式中调用函数,然后将一些值返回给BASIC。 苹果软件的功能示例包括SCRN,PDL,RND,SIN,COS和PEEK(有关所有增强命令,请参阅快速参考表清单)。它也可以作为50页手册的索引。

标准品

增强命令可以大致分为四组。首先是标准的好东西,任何自重的Applesoft扩展程序都应该具有的命令。接下来,是不寻常的命令,这些命令使TERC增强功能变得独一无二。第三,晦涩的技术命令。然后是一些命令,这些命令没有向BASIC添加任何附加功能,但使其更具可读性。

标准的功能包括与IF和THEN一起使用的ELSE,用于格式化数字打印(打哈欠)的基本PRINT USING命令以及改进的INPUT any例程。‘XPLOT在背景补全中绘制高分辨率线条。添加了高分辨率图形SCRN功能,使您可以读取是否打开或关闭任何高分辨率像素。位置字符串功能可让您判断是否在第二个字符串中找到任何字符或字符串。三个附加的数学函数使您可以对数字进行真正的按位“与”,“或”和“异或”运算。

但是,两个最重要的标准功能是使用带标签的子例程和Hi-Res字符生成器。带标签的子例程增强功能使您可以按名称而不是按行号引用子例程。代替:

100GOSUB 8045

可能会说,“帮助提示”子例程,您可以编写

100‘GOSUB HELP

如果要将特定的提示字符串传递给HELP子例程,可以使用

要么

100‘GOSUB HELP [ A$ ] 100‘GOSUB HELP [ “放回磁盘,然后按一个键。” ]

这正式称为参数传递。与使用局部变量(增强功能支持)一起,这使您可以编写结构化代码并使用递归。后者通过增强磁盘上的示例程序进行了说明。称为‘HILBERT,它绘制了一个递归曲线。我直接从Pascal原著(在Call中–A.P.L.E 1984年7月的文章“希尔伯特和鳄鱼”),而不必更改程序的递归结构。由于可以通过名称而不是通过行号引用子例程,因此您现在可以完全不使用行号来编写BASIC。在TERC,我们使用文字处理器编写程序。增强功能附带一个实用程序,可将文字处理器文本文件转换为可运行的BASIC程序。如果愿意,可以不使用它,而以常规方式编写BASIC程序。

混合文字和图形

增强功能包含完整的高分辨率角色生成器。这使您可以将文本字符放在高分辨率显示屏幕上的任何位置。与其他许多高分辨率字符生成器(是的,其中有很多)不同,我们的不允许您在“高分辨率”页面上滚动文本。但是有一些补偿功能:借助增强功能,您可以在喜欢的任何像素位置绘制字符,如下所示:

‘VTAB 11.5 : ‘HTAB 31.2: PRINT A$

大多数字符生成器将字符限制为刚性的40 x 24矩阵。我们的字符生成器还支持下划线,可变字符和行距,以及将字符与其背景组合在一起的三种方式。增强功能’提供类似Mac的下拉菜单,但有其他选择。可以将包含文本或菜单的弹出窗口放置在屏幕上的任何位置。以后可以将其删除,而不会损坏背景。一项增强功能‘MENU,导致在弹出窗口中显示菜单,解释用户的按键操作,并返回一个数字,指示选择了哪个菜单选项。您甚至可以将BASIC子例程定义为‘MENU. As ‘MENU等待按键,背景子程序将被反复调用。这使您的BASIC程序同时执行两项操作。

我们的虚拟内存替代品

现在我们’ve进入了第二组命令,这些命令使TERC 基本知识增强功能独特。弹出窗口,高分辨率显示器,图形缓冲区和增强功能一共占用了大量内存。幸运的是,ProDOS添加了一个CHAIN命令,可以将BASIC程序分解为多个部分。增强功能进一步提高了‘DISK GOSUB命令。这会将磁盘上的BASIC程序视为子程序。例如,程序A可能包含以下语句:

‘DISK GOSUB “SUBPROGRAM”

这将运行程序SUBPROGRAM。当SUBPROGRAM结束时,程序A将自动重新加入地址,并在‘DISK GOSUB语句。 基本知识变量毫发无损地渡过了艰难的旅程。如果你’如果您有一台128K的计算机,则可以在没有明显延迟的情况下从RAMdisk运行所有部件。

调试命令

增强功能包含内置的十六进制到十进制以及十进制到十六进制转换器。您可以在BASIC提示符下或在程序中使用它们。这样一来,您可以在任意位置使用十六进制(以16为基数)而不是10。例如:HIMEM:‘$9200 要么 Q = PEEK (‘$ COOO)您累了吗?郁闷?您的整数数组是否被覆盖?利用‘停下来找出答案。‘当单步执行BASIC程序时(以低于冰点的速度),请停止操作,然后连续进行测试以查看是否已废弃,擦除了某个特定变量,或者发生了什么。例如:

10 ‘当(W = 7)20 FORW = OT010 30停止时打印40下一个

上面的程序将崩溃并显示以下消息“BREAK IN 40”在通过FOR-NEXT循环的第七次行程之后。‘通过增强功能可以从Applesoft获得控制,可以在STOP WHEN时停止:’我们修补了CHRGET。 CHRGET是一个小的机器语言子例程,位于第0页。每当需要查看BASIC程序中的下一个字符时,BASIC解释器就会调用它(有关CHRGET的完整说明,请参见Call -A.P.P.L.E 1982年3月)。修补的CHRGET的行为与原始CHRGET的行为完全相同,只是它在解析单引号(将控制权转移到Enhancements命令解析器)或零(表示已到达BASIC行的末尾)时提供“增强”控制。 。

输入陷阱

错误陷阱和防炸弹程序通常需要与编写程序的实质一样多的注意。增强功能通过两种方式使错误捕获更容易 –具有改进的INPUT和GET命令以及其他错误捕获命令。增强的INPUT例程使您可以提前指定字符串的最大长度,允许包含所有可打印字符,并且仅包括可打印字符(这允许使用逗号,但不能包含控制字符),并通过按RETURN来告诉用户是否完成操作或按ESCAPE键。新的GET命令采用字符串参数。它等待用户按下字符串中的键之一,然后返回匹配字符在字符串中的字符位置。例如:

A =‘GET FN (“QWERTY”)

将等待一个“Q”, “W”, “E”, “R”, “T”, 要么 “Y” to be pressed. If “Q”按下时,A将设置为I。”W”按下,A将设置为2,依此类推。除以下以外的任何按键“Q”, “W”, “E”, “R”, “T”, 要么 “Y” will be ignored.

苹果软件错误陷阱通过三种方式得到了改进。首先,增强功能具有可选的Control-C陷阱–无需编写ONERR GOTO例程即可捕获这些。 ONERR例程(如果使用)可以通过标签而不是行号来引用,并且可以嵌套。这允许错误捕获例程监视另一个错误捕获例程中的错误– something I’在捕获迷宫式磁盘访问错误的可能性时,实际上需要使用它们。增强功能还提供了通向ONERR启发的第三条途径。通常,发生错误时会发生以下两种情况之一:您的程序停止运行或跳至错误捕获例程。如果愿意,可以使错误被忽略。此功能在将文件保存到磁盘的程序中很有用。如果文件已经存在,传统的做法是安装错误捕获例程,然后尝试验证文件。使用第三条路径,您只需执行“验证”,然后再检查它是否成功。

打开滥用之门

现在我们来介绍技术增强命令。其中大多数使您可以更好地控制BASIC变量。有一个函数可以返回变量的地址,您可以在其上戳或保存它。您可以创建指向内存中任何位置的字符串,甚至可以指向软开关。您可以取消数组的维数。增强功能使您可以做很多愚蠢或危险的事情。

愚蠢地使用,或者恶意使用,它们可能会扰乱您的苹果’的记忆。技术命令包括一些晦涩的琐事。不管您信不信,有一个命令可以检索到最后执行的ProDOS CHAIN时最后一个随机数种子的一半。为什么?因为我们在TERC需要它来解决特定问题。这些增强功能是为内部使用而开发的,因此仅包含我们需要的那些命令。如果将增强功能写为要出售的商业产品,则它们将不那么特质。取而代之的是诸如绘制旧的随机数种子的一半之类的荒谬做法,而是使用一个命令绘制高分辨率圆。碰巧我们没有’不需要任何圈子。所以你不’t get circles … life is cruel.

最后一组增强命令使BASIC更具可读性,同时不增加任何功能。 ‘例如,DBL POKE将一个16位字存储到内存中。您可以使用两个常规POKE语句来完成此任务,而无需增强功能。‘PI取代了3.14159。‘BELL替换PRINT CHR $(7),依此类推。我需要继续吗?

如何获得增强

I’我们介绍了主要的增强功能命令。我没有的任何命令’讨论的内容不言自明或很少使用。作为增强功能程序员之一,我不能保持公正。但是,我觉得4美元或15美元的增强功能(随您选择)是无与伦比的便宜货。可从A.P.P.L.E.获得增强功能。四美元,这是两盘公共领域软件的通常价格。它以ProDOS文本文件的形式随附在磁盘上。增强功能也可以从您那里真正获得(68 Roseland St.,Sommerville Mass。02143),价格为15美元,包括一本50页的印刷手册和一个免费的升级磁盘(稍后将发送给您,或者永远不会发送给您)– how’保证吗?)。将来的升级可能包括Double-HiRes图形支持或Lasar 128兼容性。

快速参考

请关注并喜欢我们:

关于作者

比尔·马滕斯

苹果。董事会主席兼俱乐部主席-Bill为创始人Val J.Golding和A.P.P.L.E.工作从1981年到1982年。1999年,他开始对A.P.P.L.E.分发和出售的材料进行存档。 Bill曾在东京从事金融行业,并以他的名字从事过20多个大型办公基础设施项目。 2001年3月,他退休,写书,花更多时间追求个人兴趣。作为用户小组的主席,Bill负责Call-A.P.P.L.E。的分发。杂志以及本网站的组织。比尔目前居住在日本东京和华盛顿州谢尔顿,两地之间的时间不一样。