現在地

思い出・昔話

MC68kボード復活作戦(番外編)

MC68kボード復活作戦のために当時の開発環境を引っ張り出しました。今回はそれについて書いてみたいと思います。

まずは使用したアセンブラです。

CP/M-68Kが動いてからは付属のアセンブラ・Cコンパイラを使用しましたが、それまではPC-8001mk2上でクロスアセンブラを使用していました。『I/O』1986年2月号掲載のクロスアセンブラです。

これはN BASIC上で動作するもので、ソースは次のようにBASICのエディタを流用して入力します。

10 "loop: bra loop

BASICの文法的には間違っているので「run」すれば当然エラーになりますが、文字列の形式になっているのでそのままメモリに格納されます。アセンブラはそれを読んでアセンブルするというわけです。

これはディスク無しで動作するものなのでアセンブラ本体・ソース・オブジェクト・シンボルテーブルなどすべてがRAM上になければなりません。ソースとオブジェクトはオーバラップさせることもできますが、一度アセンブルするとソースが破壊されます。

MC68000系のメモリ事情(その3:MC68020以降)

カテゴリー:

MC68020で外部バスがデータ・アドレスともに32ビットとなってメモリは当初計画のフルスペックの4GBとなりました。とはいえ登場した頃はまだ4GBのメモリを必要とする応用など無かったのでアドレスデコードが面倒くさいだけと思った人も多いでしょう。

ここまできてもメモリ管理ユニット(MMU)は内蔵されていません。メモリ空間の拡張のためにもMMUを必要とした80286などと異なり、必要性がそれほど無かったからかもしれません。
それでも仮想記憶には必要なので外付けとして用意されました。一つはMC68000,MC68010用のMC68451を拡張したらしいMC68461ですが、残念ながら詳しい資料が見当たりません。もう一つはMC68851、こちらは一部のパソコンなどにオプションで搭載できましたからそれなりに知られていました。いずれも論理メモリ空間・物理メモリ空間はともに4GBです。

命令フェッチのみですが256バイトのキャッシュも内蔵されました。

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

カテゴリー:

MC68010の前にMC68008について書いておきましょう。

Intelの8088に対抗して小規模向けに作られたのがMC68008です。データバスが8ビット、アドレスバスが20ビットに縮小されています。メモリ空間は1MBとなります。

アドレスは内部32ビットのうち必要な分を外部に引き出しているだけなのでメモリ空間のサイズが変わってもソフトウェアでの扱いは変わりません。

これで不足するなら素直にMC68000を使えということです。

それでは本題のMC68010を見ていきましょう。

ハードウェア的にはMC68000と互換でそのまま挿し換えもできます。当然バス幅にも変更はなく、メモリ空間も16MBのままです。ソフトウェア的にはさまざまな改良点がありますが、メモリに関するものには次のようなものがあります。

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台を使い続けたので特に困ることはありませんでした。

水道管の思い出

カテゴリー:

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

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

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

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

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

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

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

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

ページ