我很高兴正式宣布MiniBASIC的发布,它是 1980 年代经典 BASIC 编程语言的干净、强大的新实现。
MiniBASIC 可在 itch.io 上在线使用,或下载用于 Windows、Mac 或 Linux。它也是完全开源的(托管在GitHub上)。

一种新的 Mini Micro 编程方式
MiniBASIC 在Mini Micro中运行,这是一个功能强大的新复古虚拟计算机。所以现在有两种语言可以用来编写 Mini Micro 程序,它的原生MiniScript语言,或者新的 MiniBASIC。
如果您已经了解 BASIC,并且想快速开发一款游戏或实用程序,那么这可能会很有趣。MiniBASIC 提供了一套很好的高分辨率绘图命令,适用于制作绘图、图形和图表。它还可以访问内置 /sys 磁盘上的所有数据,包括股票图像、声音和完整的英语单词列表!而且,由于完全跨平台,Mini Micro(以及 MiniBASIC)在任何桌面计算机(以及很快的移动设备)上运行相同。因此,如果 BASIC 已经在您的驾驶室中,MiniBASIC 提供了一种利用这些 Mini Micro 功能的好方法。

极其兼容的 BASIC
MiniBASIC 是重新获得——或第一次体验——使用世界上第一种广泛流行的编程语言进行编程的乐趣的完美方式。BASIC 是许多适合所有年龄段儿童的书籍的主题,例如这些精美的Usborne BASIC 编程书籍,或有影响力的BASIC Computer Games书籍。
MiniBASIC 经过精心设计,可以与这些资源广泛兼容。尽管 BASIC 从未完全标准化,但 MiniBASIC 在细节方面遵循了最常见的约定。这些经典书籍中的代码只需稍作改动或无需改动即可在 MiniBASIC 中使用。例如,银山之谜中的 500 行程序只需要在打开文件的行中进行两处小改动。(这个游戏现在是包含的演示之一)。
我们梦寐以求的 BASIC 平台
虽然与 1980 年代的 BASIC 非常兼容,但 MiniBASIC 使用起来比任何实际的 1980 年代计算机(无论是仿真还是现实)都要愉快得多。当时不存在的所有小细节都存在:打字时可以按住 Alt 键移动光标或删除整个单词;您可以按 control-A/E 移动到行的开头/结尾;您可以使用向上/向下箭头从历史缓冲区中调用以前的输入。
MiniBASIC 还包括一个 RENUMBER 命令,它允许您轻松地在程序中四处移动代码,从而消除了使用行号的大部分痛苦;和一个 EDIT 命令,它允许您编辑一行代码而无需重新键入。
动图

MiniBASIC 的功能集在其他方面也略高于 1980 年代最好的家用计算机。在图形方面,它具有全彩色、高分辨率的屏幕,带有一整套绘图基元,包括多边形和椭圆形,均使用可变大小的笔进行填充或勾勒轮廓。它甚至可以从磁盘中绘制 JPEG 或 PNG 图像。它支持复杂的声音合成器,类似于 Commodore 64,但具有无限声道。所有这一切使 MiniBASIC 成为一个令人愉快的强大 BASIC 环境,并使您乐于参与其中。

易于扩展
MiniBASIC 解释器是用 MiniScript 编写的,MiniScript 是一种干净、现代的高级语言。代码组织得井井有条,每个 BASIC 命令都有一个函数。例如,这里是 RECT 命令的底层代码:
Machine.cmd.RECT = function(tokens, startIdx, endIdx)
if startIdx+1 >= endIdx then return printErr("incomplete RECT statement")
args = getDrawingArgs(tokens, startIdx+1)
if args == null then return printErr("syntax error in RECT")
if args.len != 4 then return printErr("invalid arguments to RECT")
x = [args[0], args[2]]; x.sort
y = [args[1], args[3]]; y.sort
if machine.fill then
gfx.fillRect x[0], y[0], x[1] - x[0], y[1] - y[0]
else
gfx.drawRect x[0], y[0], x[1] - x[0], y[1] - y[0], gfx.color, machine.pen
end if
machine.plotPos = args[2:]
end function
这意味着如果您正在编写 BASIC 程序,并且发现需要做一些 MiniBASIC 还不能做的事情,您可以轻松地扩展 MiniBASIC 解释器以添加您自己的功能。您会发现使用 MiniScript 编程是一种乐趣,而且 Mini Micro 功能集功能强大且易于使用。

现在就试试!
为什么不试试呢?转到MiniBASIC,运行该项目,然后在提示符下>输入这个经典程序,您可能在当天发现在 K-Mart 的演示机器上运行过:
10 PRINT CHR$(47 + 45 *(RND(1) > 0.5)); : GOTO 10
然后,输入run让它去。(MiniBASIC 不区分大小写,因此您如何使用这些命令并不重要。)
这个经典的显示是一个无限循环,所以当你想停止它时按 Control-C。
请注意,网页版 MiniBASIC 不支持复制/粘贴;也不能将文件保存到磁盘。所以您可能希望下载 MiniBASIC 以在您的本地机器上运行。您会在网页底部找到下载链接。
MiniBASIC 是 100% 免费的。我这样做是因为我是伴随着 BASIC 长大的;我喜欢它,现在仍然喜欢它,尽管我现在的大部分编码都是用 MiniScript 或 C# 等现代语言编写的。那些古老的 BASIC 书籍仍然具有巨大的价值,我希望其他人有机会像我一样体验其中的乐趣。
所以,享受 MiniBASIC,并与您的朋友分享吧。我希望它能给你带来快乐!