ZX频谱-RS232问题(串行端口)

问题描述 投票:0回答:1

我最近掌握了ZX Spectrum +3,并正在尝试使RS232与该频谱配合使用。我已经在电缆的针脚(Spectrum 128 RS232数据电缆)here上建立了电缆(“ BT”型连接器 DB9串行)。电缆的另一端使用USB串行适配器连接到PC。我在Linux上使用Moserial与Spectrum通信。

电缆工作正常,我可以使用LLIST通过串行端口打印BASIC程序,但是即使在Moserial中启用了硬件握手(DTR / CTS),我也无法可靠地从串行端口读取频谱。

我用+3 BASIC编写了一个简单的程序,将接收到的字符打印到屏幕上。似乎第一个字符已收到,但其余字符被删除或损坏。

这是频谱尝试以300波特发送“ zx频谱”时输出的示例:

z[dot/box character]. VAL$ [box character]MOVE VAL$ VAL$ ?)

([VAL$MOVE$在Spectrum的ROM中似乎都是单个字符)

截屏:“

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

10  FORMAT LINE 300
20  FORMAT LPRINT "r"
30  FORMAT LPRINT "e"
40  OPEN #4,"p"
50  PRINT INKEY$#4;
60  GO TO 50

我发现,如果我从PC发出字符,并且它们之间有足够长的延迟,那么我可以从Spectrum获得更可靠的输出。我以不同的延迟对此进行了测试,而80ms的效果最佳。我真的不想使用这种方法作为解决方案-它的运行速度非常慢,有时会删除某些字符。

这可能是Spectrum本身的问题吗?还是我的设置中缺少某些内容?似乎有些不对劲,我知道有一个用于串行频谱的程序加载器-因此,可以肯定的是,该频谱必须能够接受串行输入,每个字符的延迟不超过80ms?]

serial-port spectrum z80 zxspectrum sinclair
1个回答
0
投票
也许你一定要che一下。

在具有接口1的48k上格式“ b”; 9600然后,频谱以9600波特的速率在8位数据中工作。

在您的代码中,我看不到它将如何工作。

我最诚挚的问候。

© www.soinside.com 2019 - 2024. All rights reserved.