初代ほどではないが、7のV-RAM配置もちょっと独特
アドレスは8000hからキャラクタ単位で配置されていて、80文字分右端まで行くと次の行に移る。
例えば画面の一番左上8x8ドットの場合、
8000h
8001h
8002h
8003h
8004h
8005h
8006h
8007h
の8バイトにデータを書き込むことになる
キャラクタ単位で処理する場合は便利だが。。。
V-RAMにアクセスするためには、3Chポートの2bitをONにする
7bit | 6bit | 5bit | 4bit | 3bit | 2bit | 1bit | 0bit |
(Reserved) | I/O Memory | V-RAM | RAM | BIOS |
アセンブラはこんなかんじ
パソピア7の場合、V-RAMはR・G・Bの3プレーンがあって、0Chポートで切り替える
LD A,4 OUT (3Ch),A
7bit | 6bit | 5bit | 4bit | 3bit | 2bit | 1bit | 0bit |
メモリープレーン | データプレーン | ||||||
(Reserved) | Green/Text | Red | Blue | (Reserved) | Green/Text | Red | Blue |
上位4~7bitはメモリプレーンの選択。各bitがONの場合、そのV-RAMへのCPUアクセスが有効に
このポートに書き込むデータは、上位・下位ビットをセットで指定し、
00h | 11h | 22h | 33h | 44h | 55h | 66h | 77h |
黒 | 青 | 赤 | 紫 | 緑 | 水色 | 黄 | 白 |
Text用のV-RAMはGreenと共用してて、書き込むデータがグラフィックのドットパターンなのかテキストなのかは、0Dhの3bitで指定
0がテキストで、1がグラフィック
ALPHOSとか、面倒そうなのによくこのVRAMに移植されましたよねー。
返信削除ほんとに森田さんすごいです。パソピア7版はウェイトが入ってて、どこかアドレスを書換えると更に高速化できたはず。。
削除ウェイト入ってたんですか!? PASOPIA7速いなぁ。
返信削除