SK-1100


使用I/Oポート AD8255−2を使用しキースキャン、カセット、プリンターの制御をします   0DCH:ポートA キーマトリクス データ  d7:KEY PA7 (入力)  d6:KEY PA6 (入力)  d5:KEY PA5 (入力)  d4:KEY PA4 (入力)  d3:KEY PA3 (入力)  d2:KEY PA2 (入力)  d1:KEY PA1 (入力)  d0:KEY PA0 (入力)   0DDH:ポートB プリンター、テープ等、キーマトリクスデータ  d7 CMT LOAD  (入力)  d6 SPR BUSY  (入力)  d5 SPR /FAULT(入力)  d4 EXT /CONT (入力)  d3 KEY PB3   (入力)  d2 KEY PB2   (入力)  d1 KEY PB1   (入力)  d0 KEY PB0   (入力)   0DE:ポートC 下位4ビットキーセレクト、プリンター、テープ  d7:SPR /FEED (出力)  d6:SPR /RESET(出力)  d5:SPR DATA  (出力)  d4:CMT SAVE  (出力)  d3:CMT MOTOR (出力)1=オン、0=オフ(未実装)  d2:KEY SEL P2(出力)  d1:KEY SEL P1(出力)  d0: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を読みます    本体のみでは未使用のポートなので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のd4で知ることが出来ます  
MARKIIIのコーナへ Home へ戻る