現在地
工作
工作
個人的に製作してきたものの紹介です。
電子的なものがほとんどですが、そうでないものも出来るだけ出していきたいと思っています。
回路図、ソースコードなどは出来ればすべて載せたいのですが、以下の理由で難しいものが多いです。
- 回路図については無いものが多い
- どうせ1台しか作らないのだから紙に線を引くのと、実際に配線する手間は大して違わない。
- バス配線などは書かなくてもわかる(各デバイスのD0同士を接続するなど)。ずらすなど注意を要するところだけメモがあれば困らない。
- 雑誌などの記事・データシート・アプリケーションノート等を参考にしたところはそれを見ながら配線すればよい。
- 著作権的に公開でない
- 古いメディアに入っている
- 本当に失われた
残っていないのではなく、そもそも書かないことが多かったためです。
もちろん仕事ならば書きますが。
特に古いものでは雑誌など掲載のものをベースにしているものがあり、オリジナルと分離できないものは公開できません。
5インチや8インチのフロッピーだったり、PC-9801フォーマットだったりして読むのが難しいものがあります。
EMILY BoardのEEPROM対応
カテゴリー:
TLCS-90ボード, SC/MPボードにはEEPROM用のソケットを用意したと書きましたが、使えるようになりました。
また未搭載だった6502ボードにも追加しました。
このEEPROMはEMILY BoardのAVRマイコンに接続されていて、設定情報とターゲット用ソフトウェアを保存できます。これで毎回ソフトウェアをPCから転送しなくてすみます。
EMILY Board +8 (ソフトウェア編)
前回、EMILY Boardの16ビットバス化のハードウェアに書きました。今回はソフトウェアについてです。
4k×8bitのメモリ空間2つがターゲットCPUにどう見えるかはCPUボードのハードウェアによって決まります。
それではEMILY Boardのコンソールから各種コマンドでアクセスする場合にはどう見えるのが良いのでしょうか?
ターゲットからの見え方に合わせないと不便ですが、あまり自由度を高くすると設定が難しくなります。とりあえず必要最小限ということで以下のモードを用意しました。
EMILY Board +8 (ハードウェア編)
カテゴリー:
EMILY Boardの16ビットバスへの拡張ボード「EMILY Board +8」を製作しました。
8ビット分のメモリを持ったボードでEMILY Boardと組み合わせて使用します。
基板面積がもったいない気もしますが、スタックする都合とコネクタの配置からサイズは変更できません。
SC/MPボード(ソフトウェア編)
SC/MPボードへのモニタの移植が一段落つきました。新しいプロセッサへの移植は毎回似たような流れで行なっていますので、その流れを書いてみたいと思います。
- いつもループ確認の後はいきなりモニタを書き始めているのですが、今回のSC/MPはサブルーチンコールなど基本的な命令が不足しているので使いそうなマクロをまず用意しました。
- なるべく似たプロセッサ(今回はMC6800, 6502)を参考にしながら先頭から実装していきます。最初の目標はオープニングメッセージの表示で、いわゆる"Hello, world!"に相当します。
- サブルーチン類は必要になったものから実装していきます。ラベルや配置順は可能な限り共通にして、他プロセッサ向けとの対応が取りやすいようにします。
- メッセージが表示できるようになったら次は行入力ルーチンです。
- 続いてコマンドを実装していきます。どれから始めてもよいですが私はD(ump)からですね。パラメータを16進文字列からバイナリへ変換、16進表示などを順に確認しながら実装していきます。
SC/MPボード(ハードウェア編)
カテゴリー:
6502ボードとTLCS-90ボードがあっさり動作したので、調子に乗って3枚目を作ってみました。
これがそれ、SC/MPボードです。正確にはSC/MP(ISP-8A/500)ではなくSC/MP II(INS8060N)ですが、ソフトウェア的には両者は一緒です。
上の方に写っているのはEMILY Board、16ビット対応用のコネクタが追加されています(配線はまだ途中です)。
TLCS-90ボード
カテゴリー:
EMILY Boardで動かした2番目のCPUは東芝 TLCS-90の一員TMP90P802APです。
TMP90P802APを動作させるために新たに作ったのはこの基板だけです。
EMILY Board
6502ボード(ソフトウェア編)
ハードウェア編に続いて今回はソフトウェア編です。
最初のテストはJMP
でループを作ってみます。これは3バイト命令なのできりの良いアドレスに配置すればA0, A1が変化しA2以降のアドレスは変化しません。
これでメモリ基板から読んで実行できていることがわかります。メモリ基板のターゲット側ポートはこれまで未確認だったのですが、ここで確認が取れました。
この後はメモリへの書き込みなど一つずつ確認していくのが堅実だとは思いますが、一気にUniversal Monitorの移植に進むことにしました。
実はこの時点ではR65C51 ACIAは未搭載だったのでメモリ基板のコンソール機能を利用します。この機能も未確認なのでまずはオープニングメッセージを表示するところまで移植してみます。
6502のアセンブリ言語を書くのは初めてです。
6502ボード(ハードウェア編)
カテゴリー:
メモリ基板: 現状と今後の予定で製作中と書いた6502ボードが動き出しました。今回はハードウェア編です。
メモリボードに接続することを前提にしているので6502以外には6551 ACIAを積んでいるだけです。
メモリボードの共有メモリ経由でコンソールが使えればACIAは無くても困らないのですが、6551を使ってみたいという気持ちもあって搭載してみました。