工作

個人的に製作してきたものの紹介です。

電子的なものがほとんどですが、そうでないものも出来るだけ出していきたいと思っています。

回路図、ソースコードなどは出来ればすべて載せたいのですが、以下の理由で難しいものが多いです。

  • 回路図については無いものが多い
  • 残っていないのではなく、そもそも書かないことが多かったためです。

    • どうせ1台しか作らないのだから紙に線を引くのと、実際に配線する手間は大して違わない。
    • バス配線などは書かなくてもわかる(各デバイスのD0同士を接続するなど)。ずらすなど注意を要するところだけメモがあれば困らない。
    • 雑誌などの記事・データシート・アプリケーションノート等を参考にしたところはそれを見ながら配線すればよい。

    もちろん仕事ならば書きますが。

  • 著作権的に公開でない
  • 特に古いものでは雑誌など掲載のものをベースにしているものがあり、オリジナルと分離できないものは公開できません。

  • 古いメディアに入っている
  • 5インチや8インチのフロッピーだったり、PC-9801フォーマットだったりして読むのが難しいものがあります。

  • 本当に失われた

SBCZ80(ハードウェア編)

2020-08-23 16:29 — asano

テーマ

カテゴリー

書泉ブックマートで『ザイログZ80伝説』を買ったらCD-ROM・プリント基板付きの限定版が手に入りました。Z80のボードは既に何枚も作っていますが、せっかくなので組み立ててみます。

SBCZ80
これまでのSBCシリーズは8cm×10cmでしたが、これは10cm×10cmで密度も最大クラスでしょう。

面積をくっているのはRAMです。SRAMなら24~32ピンのDIP1つで済みますが、18ピンのDRAMが2つに制御用のロジックが4つ必要となっています。今となってはこの容量ならSRAM積んだ方が有利ですが、このボードはDRAMを動かしてみたいということで設計されたとのこと。

8031/8032ボード(ハードウェア編)

2020-08-08 22:51 — asano

テーマ

カテゴリー

またEMILY Board使って新たなプロセッサが動くようになりました。

8031/8032ボード
今回作ったのはIntelのMCS-51ファミリの8031/8032用のボードです。

このファミリはEA/Vppで内蔵ROMを切り離せるので8058とか8751なども使えると思いますが、8031/8032の入手性は悪くないのでわざわざROM内蔵品を使うことも無いでしょう。

8088ボード(ソフトウェア編)

2020-07-09 11:44 — asano
カテゴリー

8088ボードのソフトウェアについて書いてみます。

動かすのはいつものようにUniversal Monitorです。

8086系は8080に似ていますし、以前(30年ほど前です)書いていたこともあるので、あまり苦もなく書けますね。フラグ変化とか細部はもちろん憶えてはいないので資料確認しながらですし、アセンブルすると使えないレジスタ指定しててエラーになったりはありますが、書いているうちにすぐに慣れていきます。

まずはコンソールドライバ、EMILY Board用のものを6502から、8251用のものを8080から移植しました。ほぼ機械的な変換で済みますが8251の初期化部分にはNOPを追加(8251はまだ配線もしていないので動作未確認)しています。

8088ボード(ハードウェア編)

2020-06-28 23:16 — asano

テーマ

カテゴリー

HD1-6120ボードはちょっと置いておいて、また新たなCPUボード作ってみました。

8088ボード
今回もEMILY Board用です。

EMILY Boardは外付けパラレルROMで動かせる知っている限りのプロセッサを動かせるようにと計画したものなので、よほど変態的なプロセッサでない限り工夫すれば繋がるはずです。今回の8088は素直な部類ですね。

基板 表面
いつものように基板を見ていきます。

HD1-6120ボード(ソフトウェア編)

2020-06-06 22:25 — asano

テーマ

予告どおりソフトウェア編です。これまでの「ソフトウェア編」ではモニタ程度のものが動いていることが多かったと思いますが、今回はプログラムの実行ができているらしいとわかる程度です。

最も簡単なテストプログラムは実行開始番地で無限ループさせるものでしょう。

HD1-6120(IM6100も)は0FFFH番地から実行を始めますので、ここに0FFFH番地へのJMP命令を置きます。これを実行させておいてアドレスバスの状態を観察するとA0A11までがすべて"H"になっていて0FFFH番地を読み続けていることがわかります。

次に異なるアドレスでループさせてみます。

HD1-6120でダイレクトにJMPできる先は、同ページ(アドレスの上位5ビットが同じ)か0ページ(アドレスの上位5ビットがすべて0)だけです。それ以外へ飛びたいときは同ページか0ページにアドレスを書いておいて間接アドレッシングを使います。ここでは簡単に0ページで試してみます。

HD1-6120ボード(ハードウェア編)

2020-06-04 23:15 — asano

テーマ

カテゴリー

去年入手したHD1-6120、ボード作りかけのまま時間が経ってしまいましたがやっと動くところまでたどり着きました。

HD1-6120ボード
いつものようにEMILY Boardを利用します。HD1-6120は12ビットバスなのでEMILY Board +8が必須となります。

基板 表側
基板の表側、搭載部品を見ていきます。

もちろん40ピンの大きなのがご本尊HD1-6120-9です。

GAL動かしてみた 第2回:16V8でオープンドレイン

2020-05-16 23:14 — asano

テーマ

カテゴリー

前回は開発環境を準備したところまで書きました。あとは目的の論理を書くだけと言いたいところですが、ちょっと気になることがあるので先に試してみることにします。

それは以下のような箇所があることです。
回路図1
オープンドレインによる(負論理の)ワイヤードORです。上の2つは実際は独立したオープンドレインバッファではなくLSIの出力がオープンドレインになっています。

残念ながらGAL16V8にはオープンドレイン出力の機能はありません。探すとオープンドレイン対応のGAL16VP8というものが存在したようなのですが、今さら入手は難しいでしょう。念のためにAliExpressとeBayを見てみましたが発見できませんでした。

GAL動かしてみた 第1回:開発環境

2020-05-15 23:58 — asano

テーマ

カテゴリー

ちょっと訳あってGAL動かしてみました。

これまでにも勤め人時代にAltera(今はIntelになっています)のEPM7128とかLatticeのLC5256MVなんかは使ったことがありました。公式には私はソフトウェア担当だったのですが、いろいろあって回路やこのようなPLDの設計も何度かやる機会もあったのです。

個人的にはGALやXilinxのXC9500など必要になったら使えるようにデバイス調達したり書き込み環境準備したりしていたのですが、いつも汎用ロジックで何とかなってしまい実践する機会がありませんでした。

とはいえMUTIF09のように人さま設計のもの書き込んで使う機会は何度かあったのでまったくの無駄ではありませんでしたが...

そんな中、機会が到来しました。

SBC6800で6502を

2020-04-25 23:46 — asano

テーマ

カテゴリー

SBC6800MC6800のマイコンボードですが、ほうめいさんがちょっとした改造あるいはソケットの細工で6502を動作させています。

当初は6502ボードもあることだし静観していたのですが、WDCのW65C02(私の6502ボードではなぜか動いていない)の動作報告も出てきたので比較用に動かしてみることにしました。

TMS9995ボード (ソフトウェア編)

2020-04-21 20:53 — asano
カテゴリー

TMS9995ボードUniversal Monitorの基本部分(D,G,Sコマンド)の移植ができましたので、アセンブリ言語でプログラミングしてみて感じたことを書いてみようと思います。

  • 豊富なレジスタ
    16と数が多いだけではなく基本的に対等なのでやりくりに苦労することがあまりありません。まぁ実態はメモリの一部なので直接メモリアクセスするのに比べメリットは少ない(命令長が短くなる・一部レジスタ専用の命令がある)ですが。