2012年3月17日土曜日

パソピア7のV-RAM

ついでに、パソピア7のV-RAMについても書いとく

初代ほどではないが、7のV-RAM配置もちょっと独特

アドレスは8000hからキャラクタ単位で配置されていて、80文字分右端まで行くと次の行に移る。
例えば画面の一番左上8x8ドットの場合、
8000h
8001h
8002h
8003h
8004h
8005h
8006h
8007h
の8バイトにデータを書き込むことになる
キャラクタ単位で処理する場合は便利だが。。。

V-RAMにアクセスするためには、3Chポートの2bitをONにする
7bit6bit5bit4bit3bit2bit1bit0bit
(Reserved)I/O MemoryV-RAMRAMBIOS

アセンブラはこんなかんじ
LD A,4
OUT (3Ch),A
パソピア7の場合、V-RAMはR・G・Bの3プレーンがあって、0Chポートで切り替える
7bit6bit5bit4bit3bit2bit1bit0bit
メモリープレーンデータプレーン
(Reserved)Green/TextRedBlue(Reserved)Green/TextRedBlue
下位0~3bitはデータプレーンの選択。各bitがONの場合、そのV-RAMデータバスとCPUデータバス間のデータ交換が有効に。
上位4~7bitはメモリプレーンの選択。各bitがONの場合、そのV-RAMへのCPUアクセスが有効に

このポートに書き込むデータは、上位・下位ビットをセットで指定し、
00h11h22h33h44h55h66h77h
水色

Text用のV-RAMはGreenと共用してて、書き込むデータがグラフィックのドットパターンなのかテキストなのかは、0Dhの3bitで指定
0がテキストで、1がグラフィック

3 件のコメント:

  1. ALPHOSとか、面倒そうなのによくこのVRAMに移植されましたよねー。

    返信削除
    返信
    1. ほんとに森田さんすごいです。パソピア7版はウェイトが入ってて、どこかアドレスを書換えると更に高速化できたはず。。

      削除
  2. ウェイト入ってたんですか!? PASOPIA7速いなぁ。

    返信削除