如何用普通磁带存储数据?

可以的,就用磁带录音机就行。我这里正好可以展示一个例子,如何在现代PC上使用普通的音频磁带界面来交换数据。最近在给CASIO PB-700的外设FA-10绘图仪制作可替换的笔头。不可避免的要传输一些较长的代码来测试绘图仪,正好研究了一下这部分是怎么玩的。
这种80年代日本厂商生产的小电脑是Apple II、Commodore 64这种8bit机器的逻辑上的掌上简化版本,ROM里面烧写了BASIC解释器、BASIC代码直接保存在内存里。机器本身只有4K内存,通过扩展卡最多也只是拓展到16K。
所以使用磁带机外设外设来存取数据非常必要。可以使用FA-10上本来就有的迷你磁带界面,或者通过3.5mm的音频线连接外置的磁带机,如「图1」。编码协议已经完全被逆向出来了,参考casutil的源码可以知道:FA-10采用KCS编码,波特率为 300bps;数据段按照256字节一段分块打包。每个字节编码成:1个起始位、8个数据位、一个偶校验位(8数据位的XOR)、两个停止位。其中比特0是1200hz(4周期), 比特1是频率2400hz(8周期)。

这样就把文本转换成了声音,就可以录制在磁带上了。搞清了这一点之后,也就没必要再借用磁带这个介质了。直接依样画葫芦把casutil编码的逻辑用typescript重写,这样直接就能把整个流程做在浏览器里了。把iPad的3.5mm接口连上FA-10的3.5mm输入(音量开到90%以上,确保信号电平足以触发)。在机器上执行 'LOAD ,A'命令(从磁带界面读取ASCII格式)就能把代码传输到机器上了。
DEMO:我写的Paint700小工具,可以绘图转BASIC代码,编码成音频直接传输到PB700https://www.zhihu.com/video/2028988676940608968再放几个其他用来做测试的DEMO,都是在PC上编写好之后用磁带界面传输的:


容量的话算下来一盘60分钟的磁带其实也就存几十KB。不过好处是磁带便宜的多,可以存一大堆。
(最后感谢一下casutil的开发者们无私开放源代码,让我一个对信号处理一窍不通的人也能做出来这样好玩的应用)