问题标签 [sinclair]

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.

0 投票
14 回答
13333 浏览

z80 - 您最喜欢的 ZX Spectrum 开发工具是什么?

你最喜欢的旧ZX Spectrum的汇编器、编译器、环境和解释器是什么?

0 投票
3 回答
604 浏览

xna - 在 XNA Game Studio 中播放 ZX Spectrum AY-3-8912

是否有任何库、代码片段或类似的东西可以让我在我的 XNA Game Studio 游戏中播放ZX Spectrum .ay 文件?

0 投票
3 回答
2242 浏览

emulation - ZX Spin 仿真器,内置汇编错误

我在理解如何使用内置汇编程序让汇编文件在ZX Spin仿真器中运行时遇到问题。我能够组装我的程序,但每次我尝试运行组装的目标代码时它似乎都会崩溃。

我找不到任何关于如何设置运行的文档。

我收到的版本消息是 v0.7:

模块“ZXSpin.exe”中地址 0060470C 的访问冲突。写入地址 05603622"

使用最简单的汇编文件进行此工作的任何帮助都会很棒。

0 投票
5 回答
781 浏览

z80 - 正在寻找包含 Sinclair ZX80 PC 程序的录音带/盒式磁带上的程序?

好吧,回到冰河时代之前,我记得有一台 Sinclair ZX80 PC(电视作为显示器,盒式磁带播放器作为存储设备)。

显然,盒式磁带上的节目在播放磁带时发出了非常明显的声音(呃……噪音)……我想知道是否有人还有那些磁带?

原因(以及这个 Q 与编程相关的原因)是 IIRC 不同的语言发出了一些不同的音调,但我想运行磁带并听自己确认是否真的如此......

0 投票
1 回答
643 浏览

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 个字符。我做错了什么?

这里是辛克莱服务手册和键盘膜的解释

键盘作为参考: 在此处输入图像描述

0 投票
4 回答
957 浏览

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 中的单个字符)

截屏: https://i.stack.imgur.com/D0TMW.jpg

以及打开串口并将接收到的字符打印到屏幕上的 BASIC 程序:

我发现,如果我从 PC 一个接一个地发送字符,并且它们之间有足够长的延迟,我可以从 Spectrum 获得更可靠的输出。我用不同的延迟对此进行了测试,80ms 效果最好。我真的不想使用这种方法作为解决方案 - 它非常慢,偶尔会丢失一些字符。

这可能是频谱本身的问题吗?还是我在设置中遗漏了什么?有些事情似乎不对,我知道有一个用于串行频谱的程序加载器 - 所以频谱肯定能够接受串行输入而每个字符没有 80 毫秒的延迟?

0 投票
0 回答
53 浏览

linker - SDCC Z80:避免地址

我可以在 SDCC 的代码段中排除某些地址吗?例如,如果我的代码段跨越 addr。0x0000 到 0x4000,我能以某种方式告诉链接器/编译器避免添加地址吗?从 0x2000 到 0x2100 并且不在那里放置任何代码?

两个实际案例是:

  1. 用新的(完全不同的!)版本替换 ROM,并希望保持与旧 ROM 的二进制兼容性。旧ROM中的某些绝对地址被现有软件调用,我想提供“兼容模式”,确保至少最常见的跳转仍然有效。
  2. 如果我“触摸”某些地址,则内存映射硬件会对 ROM 造成不利影响(例如禁用它!)。所以我想确保那里没有放置任何代码。

我可以创建多个段并手动为它们分配函数直到“满”,但我想知道我是否可以从编译器/链接器那里获得任何帮助?因为代码经常更改,我不想调整每个错误修复进入哪个段,这会增加几个字节的函数大小......