自作コンピュータ用GAL 22V10のプログラミング方法
目次
- 導入
- BSXのアドレスデコーディング
- GALでの論理実装
- GALasmによるコーディング
- GALasmを使用したGALの生成
- EPROMプログラマーを使用したGALのプログラミング
- GALの検証
- BSXへの統合
- テストと結果
- まとめ
導入
BSX(Breadboard System eXpansion)は、RAMおよびROMのアドレスデコーディングを行う74C139ロジックチップを使用しています。この記事では、BSXのアドレスデコーディングに関する情報と、GAL(Generic Array Logic)チップを使用してこのロジックを実装する方法について説明します。
BSXのアドレスデコーディング
BSXのアドレスデコーディングには、メモリリクエスト(MREQ)とA15の2つの入力が使用されます。MREQが低いかつA15が低い場合、ROMチップセレクトは低くなり、RAMチップセレクトは高くなります。一方、MREQが低いかつA15が高い場合、ROMチップセレクトは高くなり、RAMチップセレクトは低くなります。このアドレスデコーディングの条件をGALで実装する方法について詳しく説明します。
GALでの論理実装
GAL(Generic Array Logic)は、GALasmと呼ばれる低レベルの言語でプログラムすることができます。GALasmは、人間が理解できるテキストをGALプログラマーが理解できる形式に変換するユーティリティです。GAL22V10という特定のデバイスを使用していることを宣言し、GALasmを使用して論理テーブルを実装します。プログラムの生成結果は、.chp、.Pin、.fus、および.jedの4つのASCIIファイルであり、それぞれのファイルはGALのドキュメント化や論理マトリックスの状態を示すために使用されます。
GALのプログラミング
GALプログラマー(例:TL866II+ EPROMプログラマー)を使用してGALをプログラムします。各ピンにラベルを付けた後、.jedファイルを使用してGALをプログラムします。プログラムの検証も行い、必要に応じてファームウェアのアップデートを行います。プログラムが正しく実行できることを確認するために、ブランクチェックやメモリの内容の表示などのテストを行います。
BSXへの統合
プログラムが正常に動作するかどうかを確認するために、GALをBSXのブレッドボードに組み込みます。アドレスバスと制御信号を適切に接続し、電源を供給します。プログラムの再設定やテストを行い、BSXが正常に動作するかどうかを確認します。
テストと結果
BSXの動作をテストし、アドレスデコーディングが正しく行われているかどうかを確認します。メモリダンプやディスアセンブラの使用により、プログラムが正常に実行されていることを確認します。また、BASICプログラムを実行し、その動作を確認します。
まとめ
この記事では、BSXのアドレスデコーディングに関する情報やGALの実装方法について説明しました。GALを使用することで、アドレスデコーディングを簡単に実現することができます。BSXへの統合およびテストにより、プログラムが正常に動作することが確認されました。
【参考リソース】