工作

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

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

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

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

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

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

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

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

  • 本当に失われた

電卓を作ってみる(前編)

2019-05-12 00:00 — asano

テーマ

カテゴリー

先日、電卓用IC MC74007を入手したので早速電卓を作ってみました。

電卓
作ったといっても基本データシートの回路そのままです。

ボタンは全部で30付けられるのですが、製作が面倒なのと機能のわからないものがあるのでとりあえず23だけ付けています。マトリクスの線はコネクタに引き出してあるので後日機能を見てみるつもりです。

配列は次のようにしました。

不明な基板発見

2019-04-26 23:52 — asano

テーマ

カテゴリー

探し物をしていてこんなものも発見してしまいました。

表側
かなり古いものです。

2つの7セグメントLEDは東芝のTLR312、以前は入手しやすい定番のデバイスでした。

下にはデコーダがあります。右側のソケットは抜かれていますが、左に挿さっているのはFairchildのF9368です。これはZ80ボード 1号機(の形見)でも取り上げました。1号機ではデータバスの表示用に2つ使用していましたが、それがこのボードに流れてきていたのかもしれません。

隣には日立のHD14040BPがいます。12ステージのリプルカウンタ、これは74HC4040として74HCシリーズにも取り込まれています。

FDCボード (テスト編 その3)

2019-04-20 22:54 — asano

テーマ

カテゴリー

ちょっと間があいてしまいました。

前回CRCエラーが出ているとはいえ一応セクタが読めるようになりました。データ転送のオーバランも発生していません。

FDCの回路を作るのは今回が初めてですが、8ビット時代に製作記事はよく読んでいました。そこではデータ転送が間に合うかどうかが大きな課題として扱われることが多く、ソフトウェアでステータスを見ながらでは取りこぼすということでいろいろな工夫がありました。

  • 他の割り込みを禁止する
  • DMA(Direct Memory Access)を利用する。これは速度の余裕ができてからもほかの理由で使われ続けました。
  • ステータスをチェックしないでデータ転送する。そのままでは正常に転送できないので、ハードウェアでFDCへのアクセスを引き伸ばす。

それで当初は心配していたのですが、さすがに当時とはCPUの速度が一桁以上上がっているので余裕がありますね。

FDCボード (テスト編 その2)

2019-04-16 23:16 — asano

テーマ

カテゴリー

前回手動でコマンド発行するところまで書きました。

このままでは面倒ですし、何よりデータ転送を伴うコマンドが使えません。

メモリ上にコマンドとパラメータ列を書いておいて自動で送信、リザルトステータスの受信までを行えるようにします。

当初はステータスレジスタを参照しながら送信・受信を自動切換えさせようとしたのですが、なぜか不安定だったのでパラメータやリザルトのバイト数を指定するように変更しています。

FDCのマニュアルを読みながらだったので何かを見落としていた可能性が高いです。

これでFDCとのやりとりはできるようになったので、実際にディスクを読んでみることにします。

READ DATA を試してみた
これがREAD DATAを試してみたところです。

FDCボード (テスト編 その1)

2019-04-14 13:24 — asano

テーマ

カテゴリー

先日から製作中のFDCボード、ハードウェアができたらソフトウェアを書かなくてはなりません。FDC絡みのソフトウェア経験はほとんどないのでいろいろ試しながらになります。

ベースとしてROMエミュレータのソフトウェアを使いました。I/O経由でRAMにアクセスしていたところを内蔵RAMに書き換えればメモリのダンプとセット、それからHEXファイルでの入出力が可能になります。

ATmegaのヒューズ設定で若干てこずりましたが...

それにFDCレジスタへのアクセス機能(コマンド)を追加します。

FDCボード (続・ハードウェア編)

2019-04-12 21:06 — asano

テーマ

カテゴリー

昨日のハードウェア編の続きです。

50ピンのコネクタに刺さっていたジャンパーピンはREADYGNDに落とすためのもの、34ピンコネクタに接続していないからです。いずれDSKCHGと切り替えられるようにしたいですね。

基板 裏側
裏側、FDDコネクタのところ以外はほとんど一対一の接続なので配線作業は楽でした。

ATmega1284Pのポート割り当ては以下のようになっています。

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

2019-04-11 21:36 — asano

テーマ

カテゴリー

MC68kボード復活作戦(番外編)などで取り上げた大昔の環境は以前イメージ化してあったものですが、フロッピーディスクのままでイメージ化していないものがまだまだ存在します。読めなくなる前に(既に手遅れかもしれませんが)イメージ化しておきたいものです。

以前はまだPCに5.25インチのドライブが接続してあったのでそれを利用したのですが、今やろうとするといろいろ面倒なことになりそうです。

FDCボード
ということでこんなボードを作ってみました。

PCとはシリアル(USB変換ケーブル)で接続します。

Mass Storage Classを使うべきではという意見もあるかもしれませんが、次のような理由でこの形式を選択しました。

MC68kボード復活作戦(その3)

2019-03-21 18:42 — asano

テーマ

カテゴリー

前回ACIAを交換してみたところまで書きました。

レベルコンバータのMAX232も手持ちのSP3232と換えてみましたが、やはり駄目でした。チャージポンプのキャパシタが悪いのかもしれませんが、この基板はあまり弄りたくないので迷うところです。

SP3232Eのデータシートによるとチャージポンプ用キャパシタは0.1µFで十分と書かれていますが、上限については見当たりません。この基板では当時のMAX232の資料を元に22µFのケミコンを使っています。30年の間にドライアップなど劣化したのか、単純に容量が大きすぎるのか。

いろいろ試しているうちにレベルコンバータのICを抜いているとTxDataに信号が出ていることに気づきました。リセット直後に130回ほど変化しています。

これはオープニングメッセージかもしれません。

同じころソースコードから通信条件が 7ビット・偶数パリティ・ストップビット2 であることもわかりました。今ならこんな設定にはしませんが、元になったモニタの設定をそのまま流用したようです。

MC68kボード復活作戦(その2)

2019-03-20 14:22 — asano

テーマ

カテゴリー

ROMが用意できたのでいよいよハードウェアを動かしていきます。

まず電源とシリアルの線が失われてしまっているので何とかしなくてはいけません。このボードは思い出も多いのであまり弄くりたくないのと、本数も少ないので基板から直接リード線で引き出してACアダプタ用のDCジャックとD-Sub 9ピンのコネクタをつけました。MAX232付近に必要な信号がそろっているのでそこから引き出します。

電源の極性を十分確認してから電源を投入してみます。

HD468A50Pの送受信クロックは153.6kHzだったのでボーレートは9600bpsと思われます。ターミナルも準備してリセットを何度か押してみますが何も出てきません。

MC68kボード復活作戦(その1)

2019-03-18 23:10 — asano

テーマ

カテゴリー

今回から数回に分けてMC68kボードを動かしてみたくなっていろいろ試してみたことについて書いてみようと思います。

MC68010ボード
最初発掘したときの写真にはまだ電源のコードが付いていましたが、いつの間にか取れてしまっていました。

Z80ボードの時は発掘してすぐに動作確認していました。ところがMC68kボードの方は確認が難しかったのでそのまま放ってありました。