パーソナルなコンピュータの入力装置事情 (第2回: キーボード)

カテゴリー:

マイコンキットのモニタや簡易アセンブラ程度なら専用キーボードでもなんとかいけましたが、BASICなどの言語を使用するならフルキーボードが必要になります。

16進テンキーのマイコンでもオプションでフルキーボードが用意されたものもありました。メモリとディスプレイ回路を追加してBASICを実行するためのものです。

基板むき出しではなく完成品のパソコンになるとフルキーボード搭載が一般的になります。

キーボードの形態としては一体型と分離型がありました。

当初はキーボードは本体と一体になっているのが普通でした。現在のキーボードを分厚く(10cm程度)して中に本体機能を収めたようなものです。

ノートパソコンからディスプレイを取り除いて厚くしたような構造です。

厚さを増すと操作しづらくなるのでキーボードの下に基板を1枚配置し、拡張スロットや電源などは奥に配置するのが普通です。

奥行きを伸ばしてディスプレイを上に乗せるようにしたものもあります。日立のベーシックマスターレベル3などがこの形式です。

上位機種の多くは次に述べる分離型に移行していきましたが、低価格機を中心に一体型もしばらくは残りました。

パーソナルなコンピュータの入力装置事情 (第1回: マイコン時代)

カテゴリー:

久しぶりのこのシリーズ、ハードウェア関連はネタが無くなってきたのでOS・プログラム言語などソフトウェア関連を書こうと準備していたのですが、そういえば入力装置について書いていないことを思い出したので数回にわたって取り上げてみます。

個人で初めてのコンピュータを自作するとしたらスイッチパネルしかないでしょう。

「初めてのコンピュータ」というのは「初めて作る」ではなく「初めて持つ」ものを作るという意味、つまり開発用のコンピュータも無い状況です。

トグルスイッチ(他のスイッチでも構いませんがすばやく簡単に操作できないと後悔するでしょう)がたくさん並んだパネルです。プロセッサを一時的に止めておき、このスイッチでバスに直接アクセスします。スイッチでアドレスとデータを1バイトずつメモリ(RAM)に書き込んでいくのです。

プロセッサの動作中は邪魔をしないように切り離しておきますが、ソフトウェアからスイッチの状態を読めるようにすることもできます。

これは使い勝手はとても悪いのですが、ソフトウェア無しで使えるという他にないメリットがあります。

不明な基板発見

テーマ:

カテゴリー:

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

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

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

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

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

MSM62X42B

テーマ:

カテゴリー:

FDCボード(テスト編)の途中ですが、部品探しているときにこんなの発見したので先に取り上げようかと。

MSM62X42B
沖のMSM62X42B、RTC(Real Time Clock)のICです。

DIPの18ピン、CPUバスに接続するデバイスとしてはピン数が少ないですね。PC-8001やPC-9801シリーズに使われたNECのμPD1990,μPD4990などはシリアル接続ですが、これは普通にパラレルバス(ただし4ビットバス)接続です。10進の1桁ごとのアクセスなのでそれで十分です。

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

テーマ:

カテゴリー:

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

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

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

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

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

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

テーマ:

カテゴリー:

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

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

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

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

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

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

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

テーマ:

カテゴリー:

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

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

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

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

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

テーマ:

カテゴリー:

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

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

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

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

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

テーマ:

カテゴリー:

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

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

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

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

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

ページ