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 へ戻る