妄想の話は、実際に動作確認した話ではないので、ご注意を
はじめに
MSXバスに8255を搭載したカートリッジが手に入ると、Lチカの実験ができます。
そのようなカートリッジとして、BEER202が知られています。
BEER202はIDEインターフェースを搭載しており、MSXからIDE接続の大容量メディアを利用可能です。
この記事では、MSX-BASICのプログラムで、BEER202のIDE端子に接続したLEDを点滅するための資料をまとめました。
MSX用のIDEインターフェースではなく、パラレルインターフェースとして使用するので、R8255のみを搭載します。
Copilotと回路図を読み解いた結果を掲載しています。
8255のポート構成
- Port A (PA0–PA7): ピン 4, 37–40, 1–3
- Port B (PB0–PB7): ピン 18–25
- Port C (PC0–PC7): ピン 10–17
- 制御レジスタ: CS, RD, WR, RESET 信号でアクセス
- データバス: D0–D7 (MSX側と共通)
- アドレスバス: A0, A1でポート選択
ポート割り当て
8255のCSがMSXバスのA2に接続されているので、以下のポート割り当てになります。
10 BASE=&H40 ' 8255のベースI/Oアドレス
20 CTRL=BASE+3 ' コントロールレジスタ
30 PORTA=BASE ' ポートA
40 OUT CTRL,&H80 ' モード0設定: 全ポート出力
50 FOR I=1 TO 10
60 OUT PORTA,&HFF ' LED全点灯
70 FOR T=1 TO 500:NEXT T
80 OUT PORTA,&H00 ' LED全消灯
90 FOR T=1 TO 500:NEXT T
100 NEXT I
最大24個のLEDを独立で点滅制御できるようです。
おわりに
MSXと8255を搭載したカートリッジを使うことで、パラレルインターフェースを介した信号のやり取りができる環境が整いました。
Lチカも成功しそうです。
アナログ値の検出、I2C接続やSPI接続したセンサ類を使うには、もう一工夫必要なようです。