現在地

思い出・昔話

MC68000系のメモリ事情(その1:MC68000)

カテゴリー:

MAA-1の改造のデバッグ状況は逐一実況してもなんなので大きな進展があったときに書くことにしますね。

今回はパーソナルなコンピュータのメモリ事情 (第8回: 80386以降)で書くと予告してまだ書いていなかったMC68000系のメモリ事情について取り上げてみようと思います。

以前書いたようにIntelは8086で64kBから1MBにメモリ空間を拡張するに際してはアドレスのレジスタ長を8ビット時代の16ビットのままセグメントによって拡張する道を選びました。単独で64kBを超えるメモリを必要とするプログラムが少ないという当時の事情を考慮すれば悪くない選択だったのでしょう。不幸は拡張を繰り返して使われ続けたことです。

一方でMotorolaは大胆にレジスタ長をデータもアドレスも32ビットにするという選択をしました。Intelが必要に応じて少しずつ拡張していくことになったのに対し、最初に考えうる最大限を計画しておいてそのサブセットを実装していくという道です。

PC-8001 テープからのオートスタート

カテゴリー:

テープ時代のメモの記事でオートスタートに触れたのでその仕組みを書いてみます。

PC-8001でバイナリ(いわゆるマシン語)のプログラムをテープから読んで実行するには普通次のようにします。

mon
*L
*GD55B

ここで「*」はプロンプトなので入力はしません。

mon」コマンドでマシン語モニタに入り、「L」でテープからロードし、「G」で実行します。「D55B」は実行開始アドレスです。

mon」「L」は不変なので憶えられますが、実行開始アドレスはプログラム毎に異なるので面倒です。そこで市販ソフトウェアを中心にこのオートスタートのテクニックが使われました。

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

カテゴリー:

前回はスルーホールメッキの記事を読んだところまで書きました。

その後、大学に入ってから何人か趣味でマイコン回路を作っている方にも会いましたが、皆さん万能基板派でしたね。

大学の研究室でもあまり基板を起こす話は少なかったように思います。

就職後は私はソフトウェアがメインでしたが、何回か基板を作る機会に恵まれました。殆どは検討時に使用する治具基板でしたが、回路図の作成まで行なってパターン設計以降は外注というパターンです。部品のライブラリ作成も専門に行なう部署がありましたので、回路さえ書けば基板のことはあまり知らなくても何とかなります。その代わり費用は結構かかっていました。

実は勤め人時代に一度だけ仕事の回路を万能基板で作ったことがあります。

私の担当のところでは新規デバイスがいくつもあったのですが、他は大半が流用設計という状況でした。一種類の基板だけ先行で作るわけにもいかず、事前に検討したかったので手配線で作ったのです。手配線する人などほとんどいない状況でソフトウェア担当と思われていた私が作っていたのですから、通る人には不思議がられました。でも他の部分に大きく遅れることなく動かせたので役には立ちました。

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

カテゴリー:

このところ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ビットプロセッサで内蔵したものは見たことがありません。当然ソフトウェアで処理することになりますが、(少なくとも当時は)複雑な処理だったのでライブラリとして提供されたり、書籍や雑誌記事にもよく書かれていました。

ページ