相信看过变形金刚的小伙伴一定印象比较深刻,那么小伙伴们还记得上面这样一个情节吗?
电影中在第七区,美国国防部部长想要派空军轰炸威震天,就让其中一个黑客通过一台旧电脑联系空军发出信息。下面文章有些类似,而文章中要介绍的电脑是康懋达(Commodore)公司1977年生产的的一种个人电脑,PET是个人电子处理器的缩写。Commodore是与苹果公司同时期的个人电脑公司,曾风靡一时。
我已经拥有 Commodore PET* 8032电脑很多年了,我曾经在上面运行了很多不同的程序,正如你现在所看到的一样。而我一直都想把它连接到RS-232接口上,并把它做成一个终端机。我认为经典的造型以及屏幕可以被看做是一个完美的终端。
它虽然像是更受欢迎的接班人,但是却缺少RS-232 串口硬件支持,你现在需要一个调制解调器,同时意味着将使用IEEE-488总线来连接计算机(Commodore 8010),当然你还需要一个面包板,利用现有的RS-232端口进行通讯,Commodore VIC-20, C64以及C128电脑也可以由CPU来控制 RS-232端口。RS-232通讯接口采用电平方式传输,适用于点-点通讯,无须专门的收发使能控制。当然你也可以查看内核代码来了解更多信息。由于此电脑对于这一点完全空白,可以利用代码应用于RS-232用户端口转TTL信号传输上。
这里面一定要区分RS-232与TTL不同之处,TTL逻辑高电平==’1‘==Vcc==3.3V或5V、逻辑低电平==’0‘==0V==0V。而 RS-232逻辑高电平==’0‘==负电压== -3V~-25V==常为:-13V、逻辑低电平==’1‘==正电压== 3V~25V==常为:13V。如果使用错误的电压那么对你的电脑会造成损害。
首先需要注意的是Madison 电脑公司生产的McTerm,我拥有这家公司的McPen光笔系统(VIC-20 以及C64),但没想到的是差距这么大。它被分三个部分出售-储存在软盘中的软件、ROM芯片、以及可以连接到RS-232设备的线缆。我在网上已经看到前两个,但第三个没注意到,所以这将会是一个难点。
第一步利用EPROM烧录程序,在 PET 8032电脑(ROM映射)共需9000美元。程序(ROM)约2 Kbytes,但是EPROM空间却有4 Kbyte。剩余的空间可以利用0xFF来填补。 PET ROM(2532)输出,但是我选用的EPROM(2732)输出,很明显是不一样的。但可以通过装置修改三个引脚来达到目的。详情可以看这个网站。
下面就是软件了,当然软件可以很轻松的拷贝到1541软盘上,那么就可以通过 IEEE-488总线来连接1541单软盘驱动器,我将会使用“shift-run/stop”方法来运行第一个项目程序。
最后我需要弄清接线问题,并弄清哪些端口需要使用哪些程序,我研究了 VIC-20以及C64使用RS-232端口情况,后来我使用这两个;来接受信号,c那个利用 PA0 接口,b使用FLAG2 接口,同时我相信这是一个中断。这些都可以实现快速传输数据,该电脑B部分的CA1接口也是一个中断,我感觉这几者都是同一个工作模式。
RS-232用户端口转TTL信号传输,为了完成测试我就将b和c都连接到USB RS-232转TTL模块上。我是用了一个终端程序CoolTerm,设置好波特率并发送信息。这些都已经没关系了,我现在正在尝试一些没有测试的东西,我一直在尝试直到屏幕上出现提示信息。虽然这么做不对,但是它确实接收到了什么。
我在寻找发射信号(TX),但只发现一种信号。我再次测试时发现又出现了这种信号,但PET电脑没有辨认出这种信号也没有响应。下面我将会检测屏幕上字符显示错误的问题,首先做出了一个猜测难道错误的显示是由水平偶数同位或结束位出现错误了?于是我尝试了不同的组合数7n1、7e1、8e2等。我于是输入了“abcdef..”,但出现了相反的字母顺序,而里面还有其它的一些字符。
我决定仔细研究RS-232端口和PET电脑连接的信号范围,我决定以“0”点位开始,这一点主要是出于PETSCII以及ASCII码考虑的。请看下面的比较。
马上你就可以看到一个问题。Commodore PET电脑的低电位是假,高电位是真。而RS-232 TTL信号之间正反过来了,这就揭示了为什么我看到的是颠倒的,这个时候我就需要用到7404芯片来连接PET电脑转换信号。
暂时成功了,我可以在Commodore PET电脑上显示信息了。
PET电脑与USB RS-232 TTL 模块传输时发现了7处高频信号,当然要是相反的那就更好了。我在后来发现McTerm(1070)采用了反向 RS-232端口但没有逆变电路。
1070 sysa :rem ***** use a for regular modems, a+36 to invert
第二种方法在Transactor 杂志(第二章6页),它包含一个终端程序(Terminal v11)以及一个简单的端口说明。我相信是 Steve Punter设计的这个程序,他还设计了Commodore PET电脑上
的BBS程序。当然这不是一个全功能的McTerm,它可以做 PETSCII/ASCII码转换,而这只是早期版本,仅仅被设定在300波特率。
下一步是软件,我不回忆那个打字和做数据报表的时间。当然现在就有免费的OCR服务,可以从PDF的图像上分析每一行文字。而现在大部分OCR服务都会出现一些错误信息,到后来我发现用的两个程序出现了错误,后来我发现了这个终端(版本12)。
B和L为输入信号,C为发射信号,我在周围匹配的端口使用了线缆并进行连接,最终连接反相器,最后成功了。
现在我有RS-232端口线以及PET电脑软件,现在我们就开始利用它,把它连接SparkFun ESP8266,该开发板可以连接WiFi,同时存在一个Hayes AT指令集,可以设置固件配置信息。
有了这个,我们就可以上网了,通过分配好的IP地址访问网络吧。
当然你可以在这台计算机更好的利用RS-232端口,当然你也可以改进作者的方法,来做出更多的事情。
*参考来源:biosrhythm,FB小编亲爱的兔子编译,来自FreeBuf黑客与极客(FreeBuf.COM)