- MOTOROLA MC6846
- ROM I/O TIMER
- MC6802ファミリー
MC6846はROMとI/Oポート、タイマーを集積し最小限のICでMC6802コンピュータを構成することができました。
MC6846の特徴を示すと
- 2K byteのマスクROMを搭載
- 8bit 入出力ポートを搭載
- 16bit プログラマブル タイマ/カウンタを搭載
MC6846はMC6802やその他のMC680xシリーズのCPUと組み合わせることで、最小限の構成で
コンピュータシステムが構築されました。このへんの考え方は INTEL社の 8085+8155+8755に似ていますね。
MC6846はマスクROMのため、ある程度数がまとまってからでないと注文できませんでした。
そういう意味で全くアマチュアには縁の無い石でしたが、Motorola社のROMに
モニタープログラム (MIK BUG 2.0)を入れたものが一時期出回り、I/O誌等で盛んに製作されたようです。
このページ先頭の写真の MC6846は MIKBUG 2.0が入った版です。
右のMC6846は TV BUGと呼ばれる モニタープログラムが
入った物です。
TVBUGについては良く判りません。
米国製の初期のバソコンで使用されていたようです。
MC6846に内蔵された MIKBUG 2.0は簡易デバッグ用モニタープログラムで シリアルポートを経由して
デバッグを行ないます。
MIKBUG 2.0の主なコマンドを紹介すると。
| コマンド名 | 解説 |
| D | メモリ内容の表示 |
| M | メモリ内容の変更 |
| R | CPUレジスタ内容の表示 |
| G | 指定番地からのプログラム実行 |
| T | プログラムのトレース |
| C | 現在の番地からのプログラムの再開 |
| N | 次の番地からのプログラムの再開 |
| V | ブレークポイントの設定 |
| U | ブレークポイントの削除 |
| B | ブレークポイントの表示 |
| D | すべてのブレークポイントの削除 |
| L | テープからメモリへ読みこみ |
| P | メモリ内容のテープへの書きこみ |
MIKBUG 2.0の最小システムを構成するためには、MC6802 (CPU) + MC6846 (ROM I/O TIMER)
+ MCM6810 (RAM) + MC6820/21 (PIA) + MC6850 (ACIA)が必要です。
この場合のメモリーマップは次のようになります。
| $FFF7 - $FFFF | 割込みベクタ |
| $E800 - $FFFF | 未使用 |
| $E000 - $E7FF | MIKBUG 2.0 (MC6846内蔵) |
| $A108 - $DFFF | 未使用 |
| $A100 - $A107 | MC6846 |
| $A080 - $A0FF | 未使用 |
| $A000 - $A07F | MCM6810 (スタック領域) |
| $800A - $9FFF | 未使用 |
| $8008 - $8009 | MC6850 |
| $8004 - $8007 | MC6820/21 |
| $4000 - $8003 | 未使用 |
| $0080 - $3FFF | 未使用(ユーザメモリ領域として予約) |
| $0020 - $007F | MC6802内蔵RAM |
| $0000 - $001F | MC6802内蔵RAM(バッテリバックアップ可) |
実際の利用には $0080からのユーザ領域にRAMを用意してシステムを構成しました。