用Raspberry Pi模拟ZX Spectrum
  • 作者:装机大师
  • 时间:2020-11-02 09:55:01

克莱夫·辛克莱爵士(Clive Sinclair)先生,生于1940年,是许多人都知道的企业家和发明家。您可能会因为他以Sinclair C5电池为动力的“ velomobile”这个奇特的东西而认识他,该电池旨在于1985年解决通勤者的问题。但是,许多人会以他的名字命名的一系列电子产品认识他。Sinclair Radionics成立于1961年,它生产具有成本效益的电子产品,例如袖珍计算器和便携式电视。

用Raspberry Pi模拟ZX Spectrum

但是,在1980年,辛克莱尔的公司以99.95英镑的价格发布了ZX80计算机,并被推销为“第一款价格低于100英镑的个人计算机”。ZX80被证明是购买第一台计算机并学习编码的一种经济有效的方式,但是它确实有一些怪癖,著名的是在按下每个键时导致屏幕闪烁。ZX81于1981年发布,零售价为ZX80的一半,解决了此问题和其他问题,同时为渴望编码的学习者提供了坚实的基础。与Timex达成的协议将ZX81命名为Timex Sinclair 1000,并在美国通过Microdigital Eletronica在巴西发布了未经授权的克隆TK85。

ZX81取得了成功,从最初的成功开始,发布了更多具有更好图形和臭名昭著的橡胶键的“ ZX”机器。1982年发布的第一个ZX频谱介绍了标志性经典计算机的橡皮键和小巧的尺寸。在这里,我们开始模拟ZX Spectrum机器的旅程,主要是48K和128K(又称“ Toastrack”)。模拟可以给我们同样的怀旧气息,我们可以创建BASIC代码项目吗?模拟ZX Spectrum的最佳方法是什么?下面,我们向您展示两种方法:一种将Raspberry Pi变成Spectrum,另一种为您提供一个简单的模拟器,该模拟器应可在Ubuntu和其他类型的Linux中使用。

用Raspberry Pi模拟频谱

我们不需要太多的计算能力来模拟Spectrum,因此,即使您最老的Linux机器也应能胜任。从2000年代后期开始,就有适用于Windows,macOS,智能手机甚至诺基亚的Linux Internet Tablets的模拟器。

安装ZXBaremulator

用Raspberry Pi模拟ZX Spectrum

ZXBaremulator是直接在Raspberry Pi上运行的裸机模拟器。它与除Raspberry Pi 4之外的所有Pi型号兼容,这使ZXBaremulator成为重用旧Raspberry Pi的理想选择。裸机仿真直接在Pi硬件上运行,并提供Z80处理器的精确仿真。借助Raspberry Pi GPIO,它也可以与实际硬件一起使用。这意味着我们可以将Pi嵌入损坏的“ Speccy”外壳中,并重新使用原始键盘。

要安装ZXBaremulator,您将需要备用的micro SD卡。使用了128MB卡。

将SD卡格式化为FAT设备。

从网站下载所需的所有文件存档。

将下载内容提取到SD卡中。

弹出SD卡并将其插入Raspberry Pi中。

连接您的Pi配件并打开电源。

用Raspberry Pi模拟ZX Spectrum

在短短的几秒钟内,我们将看到ZXBaremulator启动到Spectrum 48K。如果要模拟128K,请按ALT + F3,频谱+ 2A是ALT + F4,然后通过ALT + F2返回到48K Speccy 。

编写几行BASIC

BASIC(初学者通用符号指令代码)语言是1980年代的Python。它通常预先安装为ROM芯片,可以直接从计算机启动。编写BASIC是相对容易的,因为它是一种人类可读的语言。最经典,最简单的BASIC项目是“ Hello World”,它看起来像这样。

10 PRINT “Hello World”

20 GO TO 10

RUN

第10行将“ Hello World”写入屏幕,第20行指示代码无限循环返回第10行。输入RUN将启动代码。

用Raspberry Pi模拟ZX Spectrum

为自己编写此代码,我们需要记住,Spectrum的键盘与我们现在使用的键盘有很大不同。Spectrum的键有多种用途,很容易混淆。按ALT + K将打开键盘帮助菜单,其中显示Spectrum键盘布局和颜色编码的关键字。

按SHIFT + P插入PRINT。

按CTRL + P插入“,然后键入您的消息,在这种情况下为“ Hello World”。不要忘了在消息末尾添加另一个“。

按Enter换行。类型20

要插入GO TO,请按SHIFT +G。

要键入RUN,请按R字样。

按Enter键运行代码。

该代码会将消息打印到屏幕上,并且当文本填满屏幕时,系统会询问我们是否要滚动文本。如果合适,请按Y或N。

在任何Linux计算机上模拟频谱

用Raspberry Pi模拟ZX Spectrum

我们在Ubuntu 18.04上安装了Fuse(免费Unix Spectrum模拟器)。保险丝被认为是Sinclair机器的事实仿真器。打开终端,然后键入以下内容以安装Fuse应用程序和Spectrum机器ROM。

$ sudo apt update

$ sudo apt-get install fuse-emulator-gtk

$ sudo apt install spectrum-roms

安装后,通过键入此命令启动应用程序。

$ fuse

掌握BASIC和保险丝

当Fuse启动时,我们将看到48K BASIC解释器。因此,让我们启动一些BASIC代码并了解其一些怪癖。首先,它与所有Sinclair机器具有相同的按键布局。因此,编写简单的Hello World脚本。

该项目的BASIC代码比以前复杂一些。该代码将循环五次,每次都要求输入一个数字。这些数字加在一起以在末尾产生总和。它演示了如何创建一个for循环,以及如何在BASIC中创建变量。

1.键入10以开始该行,然后按SHIFT + L插入LET。这用于创建变量total并存储零的整数值。

2.键入20,然后按SHIFT + F插入FOR,然后键入c = 1并按CTRL + F插入TO。输入整数5。这将创建一个for循环,该循环将迭代5次。

3.键入30,然后按SHIFT + I插入INPUT关键字,这将捕获用户的数字并将其保存到名为“ a”的变量中。INPUT关键字带有一个额外的参数,该参数使提示提示问题/向用户提供指示。

4.键入40,并使用另一个LET(SHIFT + L),我们更新存储在total变量中的值,将下一个整数加到总和上。

5.键入50,然后按SHIFT + N插入NEXT,然后添加变量c。这将更新存储在c中的值,该值用于控制我们的FOR循环。

6.键入60,然后插入PRINT(SHIFT + P)以打印存储在total变量中的值。

按R触发RUN出现在屏幕上。按Enter键并提供五个数字。该代码会将每个数字加在一起,一旦输入所有五个数字,它将显示最终金额。

完整的代码清单

10 LET total=0

20 FOR c=1 TO 5

30 INPUT “Number”,a

40 LET total=total+a

50 NEXT c

60 PRINT total

如果要向代码中添加一个总计,请添加新行45,每次for循环迭代时,该行都会显示总计。

45 PRINT total

品牌推荐
安装教程