Commodore Basic作为Unix和Windows的脚本语言–现在开源

2021-02-28 12:29:42

该应用程序是原始Commodore 64二进制文件的重新编译版本–它不是重新实现,因此尽管它以几乎最大可能的速度运行,但仍100%兼容。存档中巨大的C文件是通过将原始6502代码输入到我的静态重新编译器中并使用LLVM对其进行优化而生成的。原始操作系统接口(字符I / O,LOAD,SAVE等)已在本机C中重新实现,因此Commodore BASIC与OS X / Windows / Unix的接口很好-您可以使用管道I / O,并且可以通过命令行上的BASIC程序的文件名。

是的,您也可以只运行标准的C64仿真器,但速度几乎不及这种速度,并且所有内容都可以在沙箱中运行;也无法将其连接到您的操作系统。

不久前,我发布了Apple I BASIC和Commodore BASIC作为Intel上Mac OS X 10.5的脚本语言。它不适用于任何其他操作系统或其他CPU类型。

今天,我们将Commodore BASIC作为脚本语言发布–它可以在Linux,Windows,Mac OS X 10.4 / 10.5(Intel和PowerPC)上运行,您甚至可以获取源代码,以便可以使其适应其他操作系统和CPU。

该档案文件随附Mac OS X和Windows的二进制文件。该源代码可在Linux,Windows和Mac OS X上编译。所有代码均已获得BSD许可。 Michael Steil的主要工作,James Abbatiello的速度优化,Linux和Windows修复。

BASIC解释器的核心位于文件cbmbasic.c中,该文件独立于平台,字节序和位。对于所有I / O,它都调用runtime.c,这样做是否能够通过仅更改runtime.c来使该项目适应任何OS。

核心解释器无法处理的所有函数调用最终都在runtime.c中的kernal_dispatch()中结束,在那里switch语句将其分配给C函数。对于Commodore BASIC,runtime.c必须支持多个Commodore KERNAL库例程。其中一些非常重要(CHRIN,CHROUT),而某些仅用于某些BASIC语句(LOAD,SAVE,OPEN,SETTIM)。 runtime.c尚未实现所有功能。

随意将cbmbasic移植到您选择的系统和体系结构中,并扩展runtime.c以支持更多功能。 如果您愿意,请将您的更改发送回给我们(mist64 at at mac.com,abbeyj at gmail.com),以便我们可以更新主项目并将您的更改提供给每个人。 我们也很感兴趣您使用不同的编译器和设置可以获得多快的速度。 请参阅我的旧文章,以获取更多信息以及有关如何完成操作的一些见解。