CreatiVision (クリエイトビジョン)(注)回路図は参考程度にして下さい。


CreatiVisionのスペック
MPU 6502 2MHz
VDP TMS9918A
PSG SN76489
ROM 2KB(拡張可)
RAM 1KB(拡張可)
V-RAM 16KB
  6502を使ったゲームパソコン、キーボードが縦真中で2つに分かれ、 それがゲーム用パッドになる オプションのBASIC Ver1.0は 当時のクラスのマシン(SC−3000、ぴゅう太、M5等)に比較にならない 遅さと値段の高さを誇る (ついでに本体の基板のつくりの酷さもスゴイもののノイズ対策はしっかりしている) シールドがハンダづけで固定されているのでメンテナンス性はゼロ、 ところどころにパターンカットやジャンパがあり 多少の仕様変更があった模様 本体パッケージにはスクリーンスコア表示、幅広いバリエーション、鮮明で緻密なTV画面、 シュミレイションサウンド とよく分からない事が書かれているのも愛嬌(シュミレイション?) また、カタログのBASICはVer1−1になっているところをみると 2つのバージョンが存在する? ハード自体はシンプルで拡張もそれなりに用意されている     MPU周り MPUは6502 クロックは2MHz BIOSはカートリッジの端子をショートして使用許可しています。  /CS0=$0***  /CS1=$4***  /CS2=$8***  /CS3=$C***     メモリ 本体内には2KBのマスクROM(BIOS)と 1K*4BitのSRAMが2つ内蔵されています BIOSは切り離す事も可能です。 TMM334P:CRC=c3c590c6     PIA HD468B21 キーボード、PSG、拡張端子はPIAで制御されます PAでキーボード(コントローラ)、拡張端子の選択、 CBでPSGの選択、PBがデータの出力 拡張端子はCMTが繋がります  E−2 PA7 READ/WRITE  E−4 PA5 ???REMOTE  E−5 PA4 ???REMOTE   VDP TMS9918A 今回クロック回路は省いていますが10.738MHzです VSYNC割り込みはIRQになります     コネクタ カートリッジコネクタです A1が左上になりB18が右下になります 通常のゲームだとBIOSも使用する為 /CS3と/CS SROMがショートされます /CS 0が出ているので回路によっては メモリやI/Oポートととして使用可能です CK2OUTは2MHzです   ゲームカセット クレージチキンのROMカセットです 基板はもう一つROMが載せられる様に設計されています /CS3と/CS SROMがショートしているので 本体内のBIOSを使用しています BIOSはカートリッジの有無問わず $BFFCにジャンプします BIOSで$BF00〜$BFFFを使用     メモリ マップ 各トーン部分は各ミラーイメージになります BASICプログラムはVRAMに格納   $0000〜$0FFF:/CS0領域  本体内RAM  1KB($0000〜$03FF) $1000〜$1FFF:I/Oポート PIA HD468B21P $2000〜$2FFF:I/Oポート TMS9918Aリード $3000〜$3FFF:I/Oポート TMS9918Aライト $4000〜$7FFF:/CS1領域 $8000〜$BFFF:/CS2領域 カードリッジ $C000〜$FFFF:/CS3領域 本体内BIOS 2KB($F800〜$FFFF)     <拡張I/Oポート>  $E800      :拡張I/Oポート プリンタ データ $E801      :拡張I/Oポート プリンタ コントロール              d7 入力 ???READY                d3 出力 ???STROBE     <ROMカートリッジ>  $BFE8〜$BFE9:実行アドレス $BFEC      :HEXからCHR変換のベースCHRコード(アスキーコードの場合$30) $BFED      : $BFEE〜$BFEF:VRAMアドレス $BFF0〜$BFF7:初期化VDP R0〜R7用データ $BFF8〜$BFF9:メッセージ用データポインタ $BFFA〜$BFFB:VRAM Fill用データポインタ $BFFC〜$BFFD:※初期化実行アドレス 通常は$F808 $BFFE〜$BFFF:※IRQ/BRK     ※起動時$BFFC〜$BFFFは$0200〜$0203にストアされ    コールド/ホット スタートの判断を行います     <BIOS>   $FD82:ライトVDPデータ 入力:A=VDPデータ 使用:A    VDPライトポート$3000にデータを書き込みます     $FDC4:VRAM読み込みアドレスの指定 入力:$0004=VRAMアドレス下位    $0005=VRAMアドレス上位 使用:A    VRAMに書き込みを行うアドレス$0000〜$3FFFの指定を行います $FDC8:VRAM書み込みアドレスの指定 入力:$0004=VRAMアドレス下位    $0005=VRAMアドレス上位 使用:A    VRAMに書き込みを行うアドレス$0000〜$3FFFの指定を行います  アドレス上位d7とd6の設定は必要ありません     $FDD3:ライトVDPコマンド 入力:A=コマンドデータ 使用:A    VDPライトポート$3001にデータを書き込みます  レジスタ設定、アドレス設定に使用します     $FE0F:リードVRAMデータ 使用:A 出力:A=VRAMデータ    VRAMデータを読み込みます     $FE1F:VDP レジスタまたはアドレスの指定 入力:X=レジスタ   またはアドレス上位    A=レジスタデータまたはアドレス下位 使用:A、X    VDPレジスタ設定またはVRAMアドレスの指定を行います  レジスタ指定はそのままですが  読み込むアドレス上位指定の場合+$80  書き込むアドレス上位指定の場合+$C0    <例>VRAMアドレス$0000で書き込む場合   LDX #$C0   LDA #$00   JSR $FE1F     $FE2C:IRQ/BRK (VBLANK)  IRQ/BRKベクタで“JMP ($BFFE)”を実行  通常のカートリッジは$FF3Fにジャンプする     $FE2F:ゼロページクリア 使用:A、X    ゼロページ$0000〜$00FFを$00でクリアします     $FE38:キャラクタ定義 使用:A、X  $F800〜$F9FFのCGデータを  VRAM$0600〜$07FF(CHR $C0〜$EF)に転送します  $F800〜$F9FFはCGデータの他にプログラムが混合されているので  全て定義されている訳ではありません     $FE57:PSG全オフ 使用:A、X    $FE67をコール(PSGポート選択)して  PSGの音量を最小にします     $FE67:PSGポート選択 使用:A    PIAの接続されている  PSGアクセスで使用する為の設定を行います  PSGデータ書き込みする前にコールします     $FE77:PSGデータ書き込み 入力:A=PSGデータ 出力:A=PSGデータ    PSGにデータを書き込み、READYになるのまで待ちます  その後着込んだポートのデータを取得します(Aの値を元に戻す)      
Home へ戻る