Board」と名付けました。略というのはもちろん後からのこじつけで、二式大型飛行艇の連合国側コードネームからの命名です。現存する機体のはずです。これだけではなんなのでこれまで書かなかった資料編をお送りします。配置まずは基板上部のCPUボードへのコネクタです。asanoテーマ:工作カテゴリー:ソフトウェアマイコンハードウェア編に続いて今回はソフトウェア編です。最初のテストはJMPでループを作ってみます。A1が変化しA2以降のアドレスは変化しません。これでメモリ基板から読んで実行できていることがわかります。メモリ基板のターゲット側ポートはこれまで未確認だったのですが、ここで確認が取れました。Monitorの移植に進むことにしました。ACIAは未搭載だったのでメモリ基板のコンソール機能を利用します。この機能も未確認なのでまずはオープニングメッセージを表示するところまで移植してみます。6502のアセンブリ言語を書くのは初めてです。asanoテーマ:出土品カテゴリー:ソフトウェア昔使っていたXサーバのマニュアルも出てきました。Systemを使用するのが一般的です。XFree86ももちろんオープンソースです。XFree86を使用していました。これ(正確にはその中のXサーバ)はグラフィックスハードウェアに依存したソフトウェアです。最初のころはPCのグラフィックスハードウェアの仕様は公開されていたので問題はありませんでした。Monitorですが、まだまだ対応プロセッサは増やすつもりでいます。完成したボードがあって動かせるMC68000、SBC8088ボード購入済みであとは組み立てるだけの8086/8088、6502/65C816あたりが次の候補ですね。これだけの多プロセッサ展開を前提としているのになぜC言語を使わないのか不思議に思われるかもしれません。そこで今回は何故オールアセンブリ言語なのか書いてみようと思います。asanoテーマ:プログラミングノウハウ・テクニックカテゴリー:ソフトウェアマイコン68編に引き続き80編をお送りします。8080系8080系とZ80系の区別は『I/O』誌の記事を参考にしました。i8085の判別法は一般的なものがあれば利用するつもりでしたが、見当たらなかったのでデータシートを元に独自に書いたものです。asanoテーマ:プログラミングノウハウ・テクニックカテゴリー:ソフトウェアマイコン現在のCPUではその種類や対応する命令の範囲などを取得する命令(例えばx86系のCPUID命令)がありますが、以前は微妙な挙動の違いなどから判別していました。Monitorのソースコードを例に解説してみます。MC6800系まずは昨日目処が立ったと書いたMC6800系からです。この系統はあまり情報が無く(旬な時期にあまりかかわらなかったのも理由です)手持ちのデバイスで試しながら書いたものです。該当部分のソースは次のようになっています。Z8の基本機能が現在対応している全プロセッサで使用可能になりました。前回はコマンドの概要のみを書きましたが、今回はコマンドラインの形式も書いておきます。コマンドは原則1文字ですが、PIなどのように2文字のものも一部あります。<addr>,<offset>といった数値パラメータは16進表記で必要以上の桁数を入力した場合は末尾が使用されます。英字の大文字小文字は区別されません。コマンドとパラメータの間・パラメータとカンマの間には空白を入れても構いません。行入力バッファは短いので注意してください。asanoテーマ:思い出・昔話カテゴリー:ソフトウェアZ8用モニタについて書きましたが、それ以前にもモニタは何度となく書いています。Z80ボード3号機用これはオリジナルではなく『トランジスタ技術』1984年6月号掲載のものをベースに移植・拡張したものです。Z80のアセンブリ言語で記述されています。他の多くがシリアルポート経由で操作するのに対し、16進テンキーと8桁7セグメントLEDを使用します。MC68kボード用これもオリジナルではありません。『トランジスタ技術』1985年4月号掲載のものを移植拡張しました。MC68000のアセンブリ言語で記述されています。後にMC68010用に変更しています。asanoテーマ:工作カテゴリー:ソフトウェア前回「つづく」とか書いておきながら気づくと一月以上経ってしまいました。その間、電卓やらROMエミュレータとそれを使ってZ8モニタやらと寄り道をしていたわけですが、このFDCボードについても少しずつですが進めていました。asanoテーマ:工作カテゴリー:ソフトウェア先日のROMエミュレータを2732には去年作ったZ8613ボードにモニタを移植するのが目的でした。基本的な機能が動くようになりましたので、試しているスクリーンショットを載せておきます。0FFF8H~0FFFFH,0000H~0077Hまでのメモリダンプ、次のHコマンドでCが表示されているのでこれはプログラム(コード)メモリ空間です。