紙テープ
1970年代から1980年代初めにかけて、紙テープはマスクROMや書き換え可能なEPROMにバイナリデータを転送するのによく使われた。その際の符号化方式は様々なものが考案された。先述のASCIIで16進を符号化する方式やROMライタごとに異なる様々な独自フォーマットが使われた。
BNPF (Begin-Negative-Positive-Finish) という符号化方式は、1バイト(8ビット)を10文字で表すという非常に冗長なフォーマットを採用している。まず1バイトの先頭を表す文字 "B" を置き、1バイト内の各ビットが 1 なら "P"、0 なら "N" を置き、最後に "F" を置く(それぞれASCIIコードで表す)。この10文字の列を空白文字を1つ以上挟んで並べていく。従って効率は9%以下となる。ASCIIの "N" と "P" は4つのビット位置のON/OFFが違っているため、鑽孔装置の誤りを訂正しやすい。ビットを "H" と "L" で表す方式や "0" と "1" で表す方式もあったが、それらの場合はASCIIコードのビットのON/OFFが1カ所しか違わないため、誤り訂正が難しい。
一方、紙テープには次のような利点がある。
寿命が長い。同時期の磁気テープは多くが経年劣化で強度が落ちて破損しており、その中のデータは取り出せなくなっている。しかし紙テープは、中性紙やマイラー(ポリエステルフィルム)を素材としていれば、数十年経っても問題なく読み取れる。ただし、材質によっては紙テープもすぐに劣化する。
目視で読み取り可能である。そのため、切れたテープも全ての位置に穴を開けたテープ断片を使えば、修復可能である。はさみと糊と穴あけ用器具を使えば、手作業で紙テープを編集することも可能である。
強い磁場に置かれても影響を受けない。機械加工の現場では強力な電動機をいくつも使用するので、CNCシステムでは磁気テープではなく紙テープでデータを供給していた。
廃棄が容易である。暗号の鍵として使用する場合、使用済みの紙テープはすぐに燃やしてしまうことができる。
紙テープはテレタイプ端末用のメッセージ格納手段として使われてきた。オペレータがタイプしたメッセージは紙テープに格納され、その紙テープを使って回線の最高速度でメッセージを送信する。そのためオペレータは「オフライン」で普通のタイピング速度でメッセージを準備でき、送信前に間違いを訂正することもできる。熟練したオペレータは短時間なら135WPM(ワード毎分)でタイピングできた。
通信速度は75WPMだったが、常にその速度を維持できた。紙テープを媒介させてタイピングと通信を分離することで、一定速度の通信を可能としていた。一般に1つの75WPMの回線に対して、3人かそれ以上のオペレータがオフラインで作業していた。また、受信局で受信したメッセージも紙テープに鑽孔されるので、それを使って別の局に中継することもできた。これにより、大規模なストアアンドフォワード型ネットワークが形成されていた。
コンピュータは最高で毎秒1000文字の速度で紙テープを読み取ることができた。
NCRは1970年ごろ、紙テープに記録するキャッシュレジスターを開発した。その紙テープをコンピュータに読み込ませて売り上げなどを計算した。
データは所定の位置に穴があるかないかで表される。最初は1列に5穴でデータを表していたが、後に6穴、7穴、8穴のものが登場した。初期の電気機械式計算機である Harvard Mark I では、1列24穴の紙テープを使っていた。データを表す穴のほかに、各列で必ず開けられている小さめの穴があり、スプロケットの歯で紙テープを送るのに使われていた。後に光学読取装置がタイミングパルスを生成するのにスプロケット用の穴を使うようになった。
文章(テキスト)の符号化にはいくつかの方法がある。最初期の文字コードはBaudotで、その起源は19世紀に遡る。Baudotは5穴に対応している。その後、6穴の文字コードとして Teletypesetter (TTS)、Fieldata、Friden Flexowriter の文字コード規格が登場し、広まった。1960年代に入ると、米国国家規格協会がデータ処理用汎用コードを策定するプロジェクトを開始し、ASCIIが生まれた。これを採用した7穴の紙テープを使ったテレタイプ端末をテレタイプ社などが生産した。テレックスなどではBaudotを使い続けた。