问题标签 [zxspectrum]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
keyboard - Teensy 3.2 上的键盘映射 Sinclair Spectrum ZX +2
我正在将Sinclair Spectrum 128 ZX +2转换为Raspberry Pi供电的计算机,并且我正在使用Teensy 3.2 USB 开发板将原始键盘与原始薄膜映射并获得普通的 USB 键盘。我不打算保留原始键映射,可能我会买一些贴纸,然后将其转换为英国键盘。
我以这种方式重复使用了原来的带状连接器:
- 5 行 > 小针 1 到 5
- 8 列 > 小针脚 6 至 13
我在网上找到了一个类似的代码(感谢 Chad Boughton),并且我尝试将其改编为 Sinclair,第一次尝试是简单地检查所有键是否都正常工作。
这里的代码:https ://gist.github.com/federicocappelli/7f61d6bc2095cbc278df12519b721435
简而言之,我创建了一个假键矩阵:
但结果不是我所期望的,例如,按下
- 键盘打印的空格键
12345678
- u键盘打印
5cs
- 绘制键盘打印图
6d4b
我希望一个按键有 1 个字符。我做错了什么?
serial-port - ZX Spectrum - RS232(串行端口)问题
我最近得到了一个 ZX Spectrum +3 并试图让 RS232 与该频谱一起工作。我在此处的电缆(Spectrum 128 RS232 数据电缆)的引脚之后构建了一根电缆('BT' 型连接器 <-> DB9 串行) 。电缆的另一端使用 USB 串行适配器连接到 PC。我在 Linux 上使用 Moserial 与 Spectrum 进行通信。
电缆工作正常,我可以用来LLIST
通过串行端口打印 BASIC 程序,但我无法让 Spectrum 可靠地从串行端口读取 - 即使在 Moserial 中启用硬件握手 (DTR/CTS) 时也是如此。
我用 +3 BASIC 编写了一个简单的程序,将接收到的字符打印到屏幕上。似乎第一个字符接收正常,但其余字符被丢弃或损坏。
以下是尝试以 300 波特发送“zx 频谱”时频谱输出的示例:
z[dot/box character]. VAL$ [box character]MOVE VAL$ VAL$ ?)
(看起来VAL$
并且MOVE$
每个都是 Spectrum ROM 中的单个字符)
截屏:
以及打开串口并将接收到的字符打印到屏幕上的 BASIC 程序:
我发现,如果我从 PC 一个接一个地发送字符,并且它们之间有足够长的延迟,我可以从 Spectrum 获得更可靠的输出。我用不同的延迟对此进行了测试,80ms 效果最好。我真的不想使用这种方法作为解决方案 - 它非常慢,偶尔会丢失一些字符。
这可能是频谱本身的问题吗?还是我在设置中遗漏了什么?有些事情似乎不对,我知道有一个用于串行频谱的程序加载器 - 所以频谱肯定能够接受串行输入而每个字符没有 80 毫秒的延迟?
c - sccz80:"../lib/main.c" L:16 警告:#14:Expected ',' sccz80:"../lib/main.c" L:16 错误:#28:分段错误
我在编译以下代码时收到以下错误:
关于可能是什么问题的任何建议?我正在使用 z88dk 创建一个测试 ZX Spectrum 程序。不幸的是,我没有足够高的分数来添加“z88dk”标签。对此表示歉意。
assembly - Z80 Assembler + BASIC 在模拟器上的快速屏幕绘图
按照 Darryl Sloan 的 Z80 汇编语言的第一步的第 10 章的说明: 首先,我们用随机颜色的“hello”消息的 BASIC 程序填充屏幕。据我了解,汇编程序代码能够复制该屏幕数据并在屏幕清除后将其打印回来。
但是,我只是得到一个黑屏,而不是随机收集的彩色 hello。
这是asm
和基本
我理解概念和代码,但与作者不同的是,我没有使用带有内置汇编程序的模拟器。- 这就是我可能出错的地方。
- 在记事本中编写汇编代码。
- 转换 asm 代码以点击
- 加载tap文件
- 将模拟器中的两行 BASIC 键入现有代码
- 在模拟器中运行程序
- 随机分配 50000 美元
源文件免费提供,可在此处找到
assembly - 在 Z80 组件中绘制两个字符精灵
继Z80 汇编语言的第一步之后,我试图在汇编程序中移动两个高字符精灵。
Manic Miner sprite 绘制正常。然而,当按下“x”向右移动时,只有上半部分移动。这要么意味着未绘制不起作用,要么底部字符没有增加。我对汇编程序很陌生,并试图找出我出错的地方。我怀疑这是明确告诉 DEFB 在 144 和 145 上的地方,但撤消仅在 144 上。然而,这应该由 LD BC, EOPLAYR-PLAYER 涵盖。使困惑。