SEGA MARK III


VDP(315−5124)へ PSG(SN76489)へ   SK−1100(キーボード) へ FM−70(FM音源ユニット)へ   HPD200(パドルコントローラ)へ MK III Reader、RAMカートリッジへ Home へ戻る   SEGA MARK III のスペック
CPU D780C-1(Z80A) 3.579MHz
VDP 315-5124
PSG SN76489(コンパチでVDPに内蔵)
ROM スロットにより供給
RAM 8KB(拡張可)
V-RAM 16KB
SG−1000/IIの上位機種 VDPを汎用から専用チップにしてハードウェアスクロールや 画面のマスク等リアルタイムゲームに必要なものはそろっている 特定の画面を固定しながらハードウェアスクロールはかなり面白い機能 拡張I/Oポートは用意されているが、フルデコードされておらずそれほど拡張性が無いのが残念 またスプライトに反転機能が無いのもおしい所、そのかわりBG画面の機能が高い 調べれば調べるほどマスターシステムのプロトタイプに思えてくる(ソレで困る訳でも無いですが)     CPU:μPD780−1   NECのPD780−1を使用 クロックは10.7386MHzを3分周して約3.579MHz 割り込みはモード1でNMIはPAUSEボタンを押せばかかり INTはVDP(V−SYNCとH−SYNC)に割り当てられている。     VDP:315−5124   315−5124はヤマハ製でアドレスデコード、PSG等もこのチップが担当、 ハードウェアスクロール、画面のマスク、BG64色32パレット、スプライト64色32パレット 前の機種に使用されているTMS−9918を大幅に画面のモードを拡張する。 TMS−9918とほぼ同じ機能も持つが発色が若干ちがう     PSG:315−5124に内蔵   SG−1000シリーズに使われたSN76489とコンパチでVDPのチップに内蔵 クロックは3.579MHz     ROM   ROMは本体には内蔵されておらず、 カートリッジ又はカードで供給する形となります メガROMはカートリッジのチップで制御されるため 本体単体ではバンク切り替え等の機能はありません。 バンク切り換えの方法は基本は統一(非ライセンスソフト除く)されいます     RAM   RAMは本体に8KBが内蔵されていますが カートリッジから本体内蔵のRAMを使用禁止にする(B3を1にする)事が出来ます 新たにS−RAMを本体内RAMの代わりとして使用出来るように設計されています また、/EXT1が08000Hの/CSとなります アドレスは0C000H〜0DFFFHに配置しています     ゲームギアではSMS/GGモードの切り換えは カードリッジ内のジャンパで切り換えます その時に通信のポートも使用も切り換わりSMSモードでは使用出来なくなり 通信ポートのデータの保持が出来なくなります それを利用してゲームギアのIPLでは SMSモードかGGモードの判断を行います     割り込み   MARK IIIにはモード1で2つの割り込みがあります。  1:VDPから発生する       /INT  2:PAUSEボタンを押すと発生する/NMI     /INTはVDP R#00とR#01のEI0、EI1の組み合わせで V−SYNC、H−SYNC、両方、割り込みを発生させない4通りがあります /INTなので発生すると00038Hに飛びます そこでV−SYNCかH−SYNCかの判断をして各割り込みルーチンに飛ぶのですが 判断方法はVDPのステータスレジスタのd7を見る必要があります  1ならV−SYNC(VBLANK)割り込み  0ならH−SYNC(H−LINE)割り込み   /NMIは00066Hへ飛びます。     ウェイト   MARK IIIは通常の使用ではノーウェイトなのですが PSGのポートを書き込んだ場合約32クロック分のウェイトがかかります(未確認)     マスターシステムとの違い   カートリッジとカードと本体RAMの切り換えを回路のみで切り換えているのがMARK III IC 315−5297でポートで切り換えるのがマスターシステムになります 315−5297の制御用ポート03EH、03FHが追加されて JOY端子等の制御も行います それに伴いポート0DCH〜0DFHも若干変更がされています   3Dシステムの制御に関してはMARK IIIはB2端子をオープンにして 3Dアダプタのカード端子を起動出来るようにして マスターシステムは315−5297で制御しています   VDPは起動までに少し時間がかかります MARK IIIでは最初にウェイト(2秒待つ)をかけてからVDPをアクセス(初期化)します ウェイトをかけずにVDPをアクセスしますと画面には何も表示されないままになります マスターシステムはIPLが起動してウェイトをかけてから 外部ソフトが起動するので必要ありません     端子図 A0〜A14:アドレス バス D0〜D7 :データ  バス /CARD :CARDスロットの使用 1=使用不可、0=使用可 /DSRAM:本体内のRAMの使用  1=使用不可、0=使用可 /EXM1 :08000HのCS(負倫理) /EXM2 :00000HのCS(負倫理) CON   :拡張コネクタの18ピンと直結   B2(/CARD)は通常のゲームのときは VCCとショートされていて3Dグラス使用可能ソフトでN.C.となっています その為3Dグラス対応のゲームとカードのゲームを刺しながらだと バス競争する恐れがあります /CARDはMARK III専用の端子です(機種ごとに違いがあります)     拡張端子図 FM音源ユニットやキーボードSK−1100の接続端子です /JOYSELはジョイスティク周りと連動しており /JOYSEL、/KBSEL、/RDの3つが0ならJOY端子が使用可能になります B11はSK−1100だとPB4、本体だとカセット端子のB11に繋がっており ポートの0DDHのd4で状態が覗くことが出来ます。     メモリ マップ ROMエリアはカード、カードリッジによって容量が変ります 08000HにはRAMやROMを載せることができます。 本体内のRAMはB3端子を1にする事によって使用禁止に出来ます(マスターシステムは更にソフトで切り換え可) マスターシステムには3つのスロット(カートリッジ、カード、拡張端子)によってメモリを載せる事が出来ます スロットの切り換えはポート03EHを使用していますがMARK IIIではポートを覗いても0FFHになります マスターシステムではIPL起動、スロットチェック、切り換えで使用したポート03EHの内容が 0C000Hに出力、利用します(マスターシステムのみ)   メガROMはメモリマッパをカートリッジ内に持ち本体内にはバンク切り換えの機能はありません また幾つかのメモリマッパがありますが制御の方法はどのカートリッジもほぼ同じで バンク切り替え方式でメモリマップ・ド・I/Oによって制御されます アドレスは0FFFCH〜0FFFFHまで使用しており、16KBごと切り替わります   3Dアダプタは0FFF8H〜0FFFBHの範囲で ソフトでは0FFFBHを使用しています(他のアドレスはミラー) フルデコードはされていないので本体内のワークRAMの0DFFCH〜0DFFFHは 使用出来ません(マッパのミラーになっています)    0FFF8H〜0FFFBH:3Dシステムで使用 通常0FFFBHのみ使用(d0で左、右の切り替え?)  0FFFCH       :主にバックアップRAMの切り換え  0FFFDH       :本体の00000H〜03FFFHにバンクを選択  0FFFEH       :本体の04000H〜07FFFHにバンクを選択  0FFFFH       :本体の08000H〜0BFFFHにバンクを選択     I/Oポート   VDP内でポート制御を行っており 使用アドレスバスはA15,A14、A7、A6、A0しか繋がっておらず A15、A14は/EXM1、2用で、A7、A6、A0がポート用になります したがってポートは040Hごと区切られます 拡張コネクタには/KBSELとA0〜A2があるので ポート0C0H以降のポートは下位4ビットは0〜7まで制御できます。  000H〜03FH:コントロール(未使用)  040H〜07FH:PSG/VDP  080H〜0BFH:VDP  0C0H〜0FFH:JOY端子/拡張コネクタ(FM−70、SK−1100)   03EH:MARK IIIでは未使用  MARK IIIではカートリッジとカードの併用、本体内RAMと拡張RAM(0C000H以降)の使用を  回路で禁止を決めていますがマスターシステム以降ではこのポートを使用して  カートリッジや本体内RAMの切り換え等を行います  ポート03EHとポート03FHがMARK IIIとマスターシステムの大きな違いになり  ハードよりなのがMARK III、ソフトよりでポート03EHとポート03FHを使用するのがマスターシステムといえます。  MARK IIIでは未使用なのでデータ保持されていないのですが読むたびにデータが変化します  マスターシステムでは使用していますが書き込み用ポートなので読むと0FFHになります  その為にマスターシステム起動のスロットチェックでポート03EHがワーク0C000Hの内容になり  FM音源を使用する場合にこの0C000Hを読んでポート03EH(JOY端子禁止)にする事で  アクセスする事になります   03FH:MARK IIIでは未使用      マスターシステムではメモリ、JOY端子/FMユニットの制御を行います   07EH:現在のVカウンター(入力) 07FH:現在のHカウンター(入力)/PSG(出力)   0BEH〜0BFH:VDP   ポート0C0H〜0C1H:JOY端子(ミラー)  デコードされていないのでポート0DCH〜0DDHのミラーになります(拡張端子に何も繋げない場合)  不思議なお城ピットポットではポート0C0H〜0C1Hを使用しています  ただしFMユニットを付けている場合は動作がおかしくなってしまうので使用しない方が良いです   0DCH:JOY端子(入力)  d7:JOY2 2ピン(DOWN ) 1=オフ、0=オン  d6:JOY2 1ピン(UP   ) 1=オフ、0=オン  d5:JOY1 9ピン(2ボタン ) 1=オフ、0=オン  d4:JOY1 6ピン(1ボタン ) 1=オフ、0=オン  d3:JOY1 4ピン(RIGHT) 1=オフ、0=オン  d2:JOY1 3ピン(LEFT ) 1=オフ、0=オン  d1:JOY1 2ピン(DOWN ) 1=オフ、0=オン  d0:JOY1 1ピン(UP   ) 1=オフ、0=オン   0DDH:JOY端子+CON端子(入力)  d7:IC9 74LS257の13ピン 1で固定(未使用)  d6:IC9 74LS257の10ピン 1で固定(未使用)  d5:IC9 74LS257の6ピン 1で固定(未使用)  d4:CON端子           1=オフ、0=オン  d3:JOY2 9ピン(2ボタン ) 1=オフ、0=オン  d2:JOY2 6ピン(1ボタン ) 1=オフ、0=オン  d1:JOY2 4ピン(RIGHT) 1=オフ、0=オン  d0:JOY2 3ピン(LEFT ) 1=オフ、0=オン    *ポート0DDHをみて日本のハードか海外のハードが判断出来ます   ポート03FHに0F5Hを出力してポート0DDHを見る   ポート03FHに055Hを出力してポート0DDHを見る事で判断出来ます。    MARK IIIの場合     ポート03FHは使用していないので     ポート0DDHのd7〜6は11で固定      日本のマスターシステムの場合     ポート03FHのd3〜1の内容は0なので     ポート0DDHのd7〜6は2回とも00      海外のマスターシステムの場合     JOY端子の7ピンの設定の値が入るので     ポート0DDHのd7−6は11と00      11から11ならMARK III    00から00なら日本のマスターシステム    11から00に変化するなら海外のマスターシステムになります   0DCH〜0DFH:SK−1100(オプションのキーボード)  8255を使用しており、0DCH〜0DFHが使用範囲  I/OポートがフルデーコードされていないのでJOY端子と重複しています  その為通常SK−1100をアクセスする場合は  本体内のJOY端子を禁止するようになっています。  キーセレクト番号07を選択したときに  キーボードが使用禁止になりJOY端子を使用するようになります    MARK III単体だとポートデータの保持(ラッチ)はされないので  まずポート0DFH(8255CW)に092Hを書きこみ入出力の設定してから  0DEH(8255PC)に000Hを書きこんで、ポート0DEHを読む   0FFHならMARK IIIのみ、   000HならMARK III+SK−1100となります    本体のみだとデータは保持されないので000Hを書き込んでも0FFHになってしまいますが  SK−1100接続では8255によって000Hの書き込みが正常に行われるのを利用して判断します   0F0H〜0F2H:FM−70(オプションのFM音源ユニットYM2143を使用)  JOY端子やSK−1100と重複しています(SK−1100と共用不可)  ポート0F0H、0F1HはJOY端子と重なるのですが  JOY端子は入力のみでFMユニットは基本出力になります  0F2Hが入力になるので0DCHと重なりますがFMユニットの回路でJOY端子は使用禁止になります  日本のマスターシステムではポート03EHのd2を1にしてJOY端子を禁止にして  接続チェックを行います(2種類の接続チェックが必要)  
機種の判断   MARKIIIと前の機種(いわゆる全機種)との判断方法はメモリのミラーの違いを利用して判断します  SG−1000  1KBモデル 0C000H〜0C3FFH(以降はミラー)  SC−3000等 2KBモデル 0C000H〜0C7FFH(以降はミラー)  MARK III等  8KBモデル 0C000H〜0DFFFH(以降はミラー)   0C000Hと0D000Hの両方に000Hを書き込んでおきます 0C000Hにデータ(例えば055H)を書き込み0D000Hのデータを読みます 全機種、マルチビジョンだとミラーになっているので0C000Hと0D000Hは同じ値になります MARK III以降だと違うデータになります    
メモリマッパ 315−5208   一番古いメモリマッパですが、このマッパが基準となります マッパ内蔵ROMの使用基板TYPE−Nも同様のアクセスになります 使用ポートはメモリマップ・ド・I/Oを採用して 範囲は0FFFDH〜0FFFFHになりバンクは0〜7までです(最大1MBit) 注意するのは本体内蔵RAMは0C000H〜0DFFFHなのですが 0E000H−0FFFFHがミラーになっています その為スタックポインタの指定を0DFFFHにすると0DFFFHからスタックのデータが 入るのと同時に0FFFFHのマッパにもデータが入る為、誤動作を起こします そこでスタックポインタの指定は0DFF0H辺りに指定して誤動作を防ぐ必要があります 更にマスターシステムでは07FF0H−07FFFHのライトも禁止になります    0FFFDH:エリア0(00000H〜03FFFH)のバンク指定   d7:0   d6:0   d5:0   d4:0   d3:0   d2:バンク D2   d1:バンク D1   d0:バンク D0    0FFFEH:エリア1(04000H〜07FFFH)のバンク指定   d7:0   d6:0   d5:0   d4:0   d3:0   d2:バンク D2   d1:バンク D1   d0:バンク D0  0FFFFH:エリア2(08000H〜0BFFFH)のバンク指定   d7:0   d6:0   d5:0   d4:0   d3:0   d2:バンク D2   d1:バンク D1   d0:バンク D0     1Mbitカートリッジ 171-5363(TYPE−F)の回路図  
メモリマッパ 315−5235   315−5208を拡張してバックアップRAM、バンク数を拡張したマッパになります。 出力ポートはメモリマップ・ド・I/Oを採用して 使用範囲は0FFFCH〜0FFFFHになりバンクは0〜31までです(最大4MBit?) バックアップRAMにも制御が出来ます 旧マッパ(315−5208)同様にスタックポインタの指定に注意して下さい。   0FFFCH:メモリコントロール  d7:ライトプロテクト(開発用)          1=リード/ライト、0=リードのみ  d6:0  d5:0  d4:エリア4(0C000H〜0DFFFH)の選択 1=外部RAMnn、0=本体RAM  d3:エリア2(08000H〜0BFFFH)の選択 1=外部RAMnn、0=ROM  d2:外部RAMのバンク              1=外部RAM02、0=外部RAM01  d1:バンク シフト (通常は0)  d0:バンク シフト (通常は0)     *バンクシフトはメガROM自体の総容量を16Kごとに区切ったバンクNo.の指定をずらします。    バンクシフト00 000H,001H,002H...    バンクシフト01 018H,019H,01AH...    バンクシフト10 010H,011H,012H...    バンクシフト11 008H,009H,00AH...     バンクNo.は000H〜01FHでバンクシフトでずれた場合は1FHの次は000Hになります。     外部RAM(バックアップRAM)は最大32KBまで搭載可   これを2つのバンクにして切り替わる事が可能?(未確認)   0FFFDH:エリア0(00000H〜03FFFH)のバンク指定  d7:0  d6:0  d5:0  d4:バンク D4  d3:バンク D3  d2:バンク D2  d1:バンク D1  d0:バンク D0 (注)エリア0の00000H〜03FFFHはバンク#00:00000H〜03FFFH固定になり    どのバンクを指定しても00000H〜03FFFHは変化しません    バンクシフトが00以外の時は不明です。   0FFFEH:エリア1(04000H〜07FFFH)のバンク指定  d7:0  d6:0  d5:0  d4:バンク D4  d3:バンク D3  d2:バンク D2  d1:バンク D1  d0:バンク D0   0FFFFH:エリア2(08000H〜0BFFFH)のバンク指定  d7:0  d6:0  d5:0  d4:バンク D4  d3:バンク D3  d2:バンク D2  d1:バンク D1  d0:バンク D0   2Mbitカートリッジ スペースハリアー 171−5439(1M*2バージョン)の回路図 スペースハリアーやアウトランで使用されています。 さらに大容量のROMもサポートできるようになり、マッパーのアクセスも少し拡張されています。 ただし、基本的なアクセス方法は同じで、海外のマスターシステムのROMチェックの都合で 同じ方法でないとチェックできない為だと思われます。   2Mbitカートリッジ スペースハリアー 171−5440(2M*1バージョン)の回路図 同じくスペースハリアーの2MBitROM*1バージョンです。(後期バージョン?) 同じメモリマッパーを使用しているようなのですが、若干配線が違っています ここで違う箇所はマッパーの315−5325の25ピンの入力と/CE0、/CE1の出力部分です 残りの空白部分は恐らく、バンク切り換えの/CEと、その出力のタイプの選択に使われると思われます ROMの名称MPR−1041がスペースハリーアを指して、残りの1ケタがROMの種類? マッパーに繋がるデータバスはd7とd4〜0なのでd7がRAMのイネーブル、 d4〜0がバンクnn(000H〜01FH)になると思われます また、搭載可能のメモリは1MBit、2MBit、4MBitで最大メモリは4MBitのようです。     2Mbitカートリッジ 熱球甲子園 171−5441(2MROM 32ピンバージョン)の回路図  32ピンのマスクROMを使用しています。   4Mbitカートリッジ アフターバーナー 171−5589D(2M*2)の回路図   4Mbitカートリッジ ファンタシースター 171−5583(4M+64KBitS−RAM)の回路図     カートリッジ内の基板の種類 171−5362   :TYPE−N マッパー内蔵1MBit ROM 171−5363−01:TYPE−F 315−5208+1MBit ROM 171−5439   :315−5235+1MBit ROM*2 171−5440   :315−5235+2MBit ROM 171−5500   :315−5235+1MBit ROM+64KSRAM+MB3771 171−5506   :マッパー内蔵2MBit ROM 171−5518   :マッパー内蔵1MBit ROM 171−5177   :SG−1000用の基板をジャンパー線を使いTYPE−Nと同様にしたもの 171−5564   :マッパー内蔵2MBit ROM 171−5589D  :315−5235+2MBit ROM*2 171−5583   :315−5235+4MBit ROM+64KSRAM+T529F  
VDP周りの回路図   V−RAM周りの回路図     JOY端子周りの回路図   連射ユニット(RF−150)の回路図
3Dアダプタの回路図
サンプル ダウンロード プログラムは全てフリーで、ソースは"The Macroassembler AS"で作成できます。 そしてあくまで参考です。  グレートアイスホッケー用スポーツパッドのメイン回路図  BG TESTプログラム (MARKIII、マスターシステム、エミュレータでの動作可)  I/Oポート Peepingプログラム (MARKIII、マスターシステム、エミュレータでの動作可)  VDP R#03 テストプログラム (MARKIII、マスターシステムでの動作可、エミュレータでの動作不可)  
Home へ戻る