SK-1100


使用I/Oポート  AD8255−2を使ってキースキャン、カセット、プリンターの制御をしています。  ポート0DCH:ポートA キーマトリクス データ   Bit7:KEY PA7 (入力)   Bit6:KEY PA6 (入力)   Bit5:KEY PA5 (入力)   Bit4:KEY PA4 (入力)   Bit3:KEY PA3 (入力)   Bit2:KEY PA2 (入力)   Bit1:KEY PA1 (入力)   Bit0:KEY PA0 (入力)    ポート0DDH:ポートB プリンター、テープ等、キーマトリクスデータ   Bit7 CMT LOAD   (入力)   Bit6 SP  BUSY   (入力)   Bit5 SP  /FAULT (入力)   Bit4 EXT /CONT  (入力)   Bit3 KEY PB3    (入力)   Bit2 KEY PB2    (入力)   Bit1 KEY PB1    (入力)   Bit0 KEY PB0    (入力)    0DE:ポートC 下位4ビットキーセレクト、プリンター、テープ   Bit7:SP  /FEED  (出力)   Bit6:SP  /RESET (出力)   Bit5:SP  DATA   (出力)   Bit4:CMT SAVE   (出力)   Bit3:CMT MOTOR  (出力)1=On、0=Off(未実装)   Bit2:KEY SEL P2 (出力)   Bit1:KEY SEL P1 (出力)   Bit0:KEY SEL P0 (出力)    0DFH:8255のCW    
初期化  リセットは本体の電源を入れるとSK−1100内でオートリセットを1回だけします。  そして、メインである8255のモードを設定する必要があります。  ポート0DFHに092Hを出力するだけです。  ここで注意することはCWをアクセスしてすぐVDPアクセスしようとすると画面にキャラクタが勝手にでるようです。  もっとも最初にモードを設定すれば必要ないので気にする事はありません。   SK−1100の接続の判断  8255のポートA−Cのラッチを利用して接続の判断をしています。  SK−1100ではモード設定をしてポートCが出力になっていますのでココを利用します。  簡単な方法としてポートCに000Hを出力して、ポートCを読みます。    MARK III・SG−1000の本体のみでは未使用のポートなので0FFH  SK−1100を接続していたらポートCのラッチで、書き込んだ値の000Hが保持されています。  
キースキャン  ポートCの下位3ビット(PC0-PC3)にキーセレクト番号を出力、NOP*2(ウェイト)をして  ポートAとポートBの下位3ビット(PB0−PB3)に対応するキーを読むことが出来ます。  キーセレクト番号は0−7になりますがキーセレクト7の場合はキーボードではなく、  本体のJOY端子を読むようになっています。  キーセレクト0−6ではSK−1100を使用、本体JOY端子禁止、  キーセレクト7ではSK−1100禁止、JOY端子使用するようにハードの回路で行っています。  またSK−1100が接続されていなければ、ポート0DCH−0DDHはジョイスティックポートだけになります。  キーマトリクスは下図の様になります。      メイン回路図 キーボードをアクセスすると本体のJOY端子が使用出来ないようになっています。 もっともポートの競合を防ぐ為で、ハードで切り換えているのでソフト側では気にする事はありません。  
CMT  モノラルピンでデータレコーダと接続するだけで制御するのはソフトで行います。  したがってテープフォーマットはソフトで決める事になります。      IN:ポートBのPB7(Load)     OUT:ポートCのPC4(Save)   MOTOR:ポートCのPC3 回路は無いのですがBASICのカセット関係のプログラムではアクセスしています。  
シリアルプリンター〈SP−400-J) BASICではシリアルプリンタにデータを転送する為の端子としても使用されています。 ゲームのF−16ファイティングファルコンでは通信対戦の為のケーブルを挿すインターフェイスとなります。  PB5(1ピン):/FAULT(入力)  PB6(2ピン):BUSY(入力)  PC5(3ピン):DATA(出力)  PC6(4ピン):/RESET(出力)  PC7(5ピン):/FEED(出力)  GND(6ピン):GND  N.C(7ピン):未使用です    初期化   SP−400を接続している場合に出来るだけ早く初期化したほうが良いと思われます。    1:PC6=0、PC7=1、PC5=0にする    2:ウェイトをかける    3:PC6=1にする    4:ウェイトをかける  
不明(外部コントロール?)(PB4) カセットのB11端子CONと繋がっており、その状態をI/Oポートの0DDHのビット4で知ることが出来ます。  
MARKIIIのコーナへ Home へ戻る