現在地

思い出・昔話

専用基板と万能基板(前編)

カテゴリー:

このところSBC6809, SBC6800と買ったままになっていたものを組み立てていましたが、勢いで SBC8080 も組んでしまいました。

SBC8080+SUB8080
特にハマることもなく動作した SBC8080 + SUB8080 です。それぞれのボードについては近日中に書くつもりですが、今日は基板について思いつくまま書こうかなと思います。

こういう(人様の設計した)専用基板のキットを作ってはいても、本当は自分で設計していろいろと作りたいわけです。実際作りかけて中断しているものをいくつか取り上げてきましたし、未公表の作りかけも多数あります。構想段階のものまで含めればさらに増えます。

テープ時代のメモ

カテゴリー:

こんなものが残っていました。カセットテープ時代に使っていたメモです。20枚(テープ20本分)ほど出てきた内からいくつかお見せしましょう。

テープメモ No.1 A面
これはデモテープのものですね。

「No.1」はテープにも書いていた管理番号、「(A)」はもちろんA面のことです。テープ1本についてルーズリーフ1枚使って表裏にA面/B面を書いていました。

006, 039, 076 は使っていたテープレコーダでのカウンタ値です。これはレコーダの機種で異なるのでレコーダを変えたらまた調べなおさなくてはなりません。幸い私はこの1台を使い続けたので特に困ることはありませんでした。

水道管の思い出

カテゴリー:

水道管に思い出なんてできるものなの? と思われるかもしれませんが、できるんです。自在水栓について書いていていろいろと思い出してきました。

小学生のころ水道管をおもちゃにしていた時期がありました。

発端は今回のような廃材をもらったことだったのではないかと思います。親戚で化学系をやっていた人がいて樹脂製の水栓をもらったような記憶もあります。

その後、パイプの切れ端や継手なんかも増えていきました。

施工するときには接着するものなので両端を切り落としてしまえばいいパイプはともかく、(パイプを挿して遊べる)未使用の継手は手に入るはずがないのですが...
興味を伸ばすためにか親がどこからか手に入れてくれたみたいです。今みたいにホームセンターとかで買えるわけではないので、事情を話して工務店なんかから分けてもらったのではないかな。

とにかくそれを庭に並べて、仮設の「水道」を作って遊んでいました。

そうすると当然水を出してみたくなります。

水撒き用のホースをつないで水を通してみると、水圧に負けて挿し込んであるだけの接続がどこか外れてしまいます。接着されていないのですから当然です。

ISHからbase64へ

カテゴリー:

誰もがお世話になっているメールへのファイル添付、簡単な操作で可能になっていますが昔は結構面倒なものでした。

メール本文に添付ファイルのデータを単純に結合するだけだといろいろな問題が発生します。

  1. バイナリファイルにはメール本文に使用できないコード(制御文字やビット7が立っている文字等)や改行文字のように変換される可能性のあるコードが含まれている
  2. どこからどこまでが添付ファイルのデータかわからなくなる
  3. ファイル名等のメタデータをどうするのか
  4. 通信エラー等にどう対処するのか

そこで添付したいファイルを専用のソフトウェアでテキスト形式に変換(エンコード)し、これをメール本文(の末尾など)に挿入して送信します。

受信側では添付データ(のテキスト化された)部分を切り出して専用ソフトウェアで元に戻す(デコード)ことになります。

ファイルが大きすぎる(時代によりますが、私が始めた頃は50kBくらいでしょうか)場合には分割・結合の作業も必要でした。

この変換にはいくつかの方式が使われましたが、今ではほぼbase64に収束しています。

パーソナルなコンピュータの数値演算事情 (第5回:32ビット・そして…)

カテゴリー:

32ビットの時代になると32ビットの四則演算が一命令で実行できるのは当然になり、浮動小数点演算についても一般的になってきます。

Intel 80386ではレジスタが32ビットに拡張され、80486では浮動小数点演算機能も内蔵されます。廉価版として浮動小数点演算を省いた486SXというものありましたが主流にはなっていません。

MotorolaはMC68020で外部バスも32ビットになりましたが、このシリーズは最初から32ビット演算命令は持っていました。それよりもMC68020から外部の浮動小数点演算プロセッサであるMC68881に対応したことの方が大きいでしょう。

パーソナルなコンピュータの数値演算事情 (第4回:16ビット)

カテゴリー:

8086, MC68000, Z8000といった16ビットプロセッサになると加減乗除の命令を持っているのが一般的になります。もちろん1命令で16ビット幅の演算が可能で、MC68000などは32ビットまで可能でした。

まだ浮動小数点演算命令は持っていないのが一般的でしたが、NEC V60やPanafacom MN1613のように浮動小数点の加減乗除の命令を持っているものもありました。

また内蔵していないまでも外部に浮動小数点演算プロセッサを接続できるようになっているものもありました。前回取り上げた MM57109, Am9511, Am9512 はI/Oデバイスとして接続するものでしたが、プロセッサの命令を拡張する(浮動小数点演算命令が追加される)タイプが登場します。

Intelの8087は 8086, 8088 に追加することで浮動小数点演算命令が使えるようになります。

パーソナルなコンピュータの数値演算事情 (第3回:8ビット後期)

カテゴリー:

8ビットマイコンでも集積度が上がってくると乗算や除算命令を持つものが出てきます。

日立のHD64180はZ80の拡張ですが、8ビット×8ビットの乗算命令が追加されています。

MotorolaのMC6809にも8ビット×8ビットの乗算命令が含まれています。

Zilog Z8の上位のSuper8シリーズは乗算に加えて16ビット÷8ビットの除算命令も持っています。

プロセッサに内蔵せずともCDP1855のような外付けの乗除算ユニット等もありました。これはRCA CDP1802ファミリの乗除算ユニットで、単独で8ビット×8ビットの乗算・16ビット÷8ビットの除算が可能です。最大4段まで接続でき32ビット×32ビットの乗算・64ビット÷32ビットの除算まで拡張することもできました。

浮動小数点演算については8ビットプロセッサで内蔵したものは見たことがありません。当然ソフトウェアで処理することになりますが、(少なくとも当時は)複雑な処理だったのでライブラリとして提供されたり、書籍や雑誌記事にもよく書かれていました。

パーソナルなコンピュータの数値演算事情 (第2回:8ビット前期)

カテゴリー:

今回からパーソナルということでマイコンの事情について見ていきましょう。

8080, MC6800, 6502といった初期の8ビットマイコンの直接扱える数値はもちろん8ビットの整数です。16ビットのレジスタを持ったものもありますが主にアドレス指定のためのもので使える演算が限られていたり自由度の低いものでした。

この頃になると数値のビット表現は2進で負数は2の補数に収束しています。ただ10進演算の需要自体は残っているため、8ビットを2つに分けて10進2桁として使用するための補正命令を持っているものもありました。通常の加算命令と組み合わせることで10進の加算ができるというものです。

演算は2項演算としては加算・減算・比較・AND・OR・XORあたり、単項演算では符号反転・ビット反転・シフト・ローテートくらいを持っているのが一般的でした。中には符号反転+加算で代用できるからと減算命令を持たないものがあったり、各社の考え方や想定している用途等で微妙に異なってはいます。

乗算や除算命令は無いのが普通で、必要とあらばソフトウェアで処理をします。

パーソナルなコンピュータの数値演算事情 (第1回:パーソナル以前)

カテゴリー:

今は汎用の(組み込みではない)コンピュータでは最低でも32ビットの整数が扱え浮動小数点演算もハードウェアでサポートされるのが当たり前になっています。

今回はこのあたりの事情について何回かに分けて書いていきたいと思っています。

第1回は個人で使えるようになる以前の話です。

まずは黎明期の有名なコンピュータをいくつか挙げてみましょう。

マイナーなZ80周辺LSI

カテゴリー:

昔のプロセッサ誌を調べていたらZ80の面白い周辺LSIの紹介記事「Z80 GLU と Z80 SPCT」を見つけましたので、今回はこれについて書きたいと思います。現物を持っていないので写真は無しです。

まずはZ84C80, Z84C81 Z80 GLU(General Logic Unit)です。

これはよく使われる以下の機能をまとめたものです。

  • クロック発振器
  • DRAMコントローラ(アドレスのマルチプレクサも含む)
  • ROM用のアドレスデコーダ
  • メモリあるいはI/O用のアドレスデコーダ
  • リセット回路・ウォッチドッグタイマ
  • WAIT挿入回路
  • Z8500系デバイスとのインターフェイス(Z84C80のみ)
  • パワーダウンモードへの移行(Z84C80のみ)
  • GPIO

一部のピンは共有になっているので同時に全てが使えるわけではありません。

ページ