mz-80K Display


V−RAM  ディスプレイコードとアスキーコード    左がディスレイコード、右がアスキーコード  ディスプレイコードの並び方が一見バラバラにみえますが  Aにはスペード、チ、Bには逆三角、コ...と000H−0BFHまで  通常、シフト、カナと040Hスライドしていきます  この方式は海外仕様の本体でもCGROMの変更だけで済みます        40×25の1000文字を0D000H−0D3E7HのV−RAMに割り当てられています。  ここにディスプレイコードを書込むとキャラクタ文字が出るわけです。  また、CPUメモリなのでプログラムを書いて実行もできますが  その部分は当然ディスプレイコードで表示されます。  領域は1KBなので0D3E8H−0D3FFHは未使用(空き)となります  またミラーとなるので0D400H、0D800H、0DC00Hは0D000Hと同じになります    VRAMに直接書き込むデータはディスプレイコードを書き込みますが  システムコールではアスキーコードで書き込む場合があります  ディスプレイコード040Hと080Hのスペースにはmz−700で新たにキャラクタが定義されています  ここをスペースとして使うとMZ−700以降では画面が化けます  したがって通常のスペースは000Hを使用する事が望ましい事になります。  
アクセス方法  VRAM領域にある0D000H−0D3FFHにディスプレイコードを書き込むだけなのですが  /VBLANK期間内(4ms)に書き込まないと一瞬画面にゴミのようなものが出てチラツキが発生します  そこでPPI /VBLANK PC7=1からPC=0になるまで監視する必要があります  この監視部分が、かなりの速度低下につながります。  なにしろ全VRAMをLDIRのブロック転送でチラツキ無しでは  3回ほど分けないといけません  またmz−80A/1200/700/1500では  CRTCによるサイクルスチールで監視する必要はなくなりました。(ただしWAITが入る様になります)    監視はPC=0のチェックだけでは、すぐに/VBLANKが切り換わってしまう場合(PC7=1)もあるので  PC7=1からPC=0のチェックになります。     LOOP0:LD A,(0E002H) ;Waiting /VBLANK=1         RLCA         JR NC,LOOP0     LOOP1:LD A,(0E002H) ;Waiting /VBLANK=0         RLCA         JR NC,LOOP1             |  
mz−80DU(未確認) CPU Z80A 4MHz ROM   2KB( 4KBまで拡張可) RAM  16KB(32KBまで拡張可) VRAM 18KB    8色       256×192ドット 42×24文字(6×8ドットマトリックス)  24色      128×192ドット  8色  、8階調 128×192ドット  モノクロ、4階調 256×192ドット    00000Hー007FFH:モニタROM  00800Hー00FFFH:拡張ROM  01000Hー012FFH:ワークエリア  01300Hー04E0FH:ディスプレイプログラム(SP−3001)  04E10Hー04FFFH:C・Sエリア  05000Hー08FFFH:拡張RAM  09000Hー0A7FFH:VRAM赤  0A800Hー0AFFFH:空き  0B000Hー0C7FFH:VRAM緑  0C800Hー0CFFFH:空き  0D000Hー0E7FFH:VRAM青  0E800Hー0FFFFH:空き   コマンド  M :色調、階調モードの指定  B :Mコマンドに合ったが画面全体の色、階調の指定  C :ドット、直線、円、文字の色をMコマンドに合った色で指定  P :指定座標に1ドット表示  L :指定座標に直線表示  LW:指定座標に指定幅、指定色の棒線を引く(BOX)  SR:画面上に文字(ASCII)表示  SF:指定座標に、指定角度で文字(ASCII)表示  W :スクロールのオン/オフ、表示する文字の行数、1行に表示する文字数の指定  CH:画面上の指定色をMコマンドに合った別の指定色に変更  CI:指定座標を中心に指定半径、指定角度の扇形、または円を描く  PI:指定座標を中心に指定半径、指定角度の扇形、または円を同一色でぬりつぶす  PO:指定座標に指定多角形を描き、多角形内を同一色でぬりつぶす  MD:指定座標に1ドットを表示、カーソルコードで移動、カーソルコードで任意の座標にセット  X :2個のX印で指定した座標間に直線、棒線、X印を中心に円、扇形、X印を基準にASCII文字を描く、X印はカーソルコードで移動可  CS:指定枠内の図形をスタディする。 枠のサイズ、位置は任意に指定できる  CP:CSコマンドで作成した図形を指定座標に表示する  TX:バッファ内に必要なテキスト作成      TL テキスト内のプログラムを画面上にリスト      GO 作成したテキストプログラムの実行      ER 画面上の背景以外の図形クリア      CR テキストバッファをクリア      ED ダイレクトコマンドに復帰、テキストプログラムは保持  CD:画面上の指定座標の色データを出力  TR:システムから送られるデータをユニットの指定メモリに転送  RQ:ウニットの指定範囲のデータを出力  J :プログラムの実行番地を移す  BK:プログラムリセット、コールドスタート  LT:使用するプログラムエリアの制限    ・−−−−−−−−−−−−−−−−−−−−−−−−−−−−・  |色コード|モード 0|モード 1|モード 2|モード 3|  |−−−−+−−−−−+−−−−−+−−−−−+−−−−−|  |  0 |  黒  |  黒  | 黒   |  黒  |  |  1 |  赤  |  赤2 | 赤1  |  灰1 |  |  2 |  緑  |  緑2 | 赤2  |  灰2 |  |  3 |  黄  |  黄2 | 赤3  |  灰3 |  |  4 |  青  |  青2 | 赤4  |  白  |  |  5 |マゼンダ |マゼンダ3| 赤5  |     |  |  6 | シアン | シアン2| 赤6  |     |  |  7 |  白  |  白  | 赤7  |     |  |  8 |     |  赤1 | 赤8  |     |  |  9 |     |  緑1 | 緑1  |     |  | 10 |     |  青1 | 緑2  |     |  | 11 |     |  黄1 | 緑3  |     |  | 12 |     |マゼンダ1| 緑4  |     |  | 13 |     | シアン1| 緑5  |     |  | 14 |     |  灰  | 緑6  |     |  | 15 |     |  緑3 | 緑7  |     |  | 16 |     |  青3 | 緑8  |     |  | 17 |     | シアン3| 青1  |     |  | 18 |     |  赤3 | 青2  |     |  | 19 |     |  青4 | 青3  |     |  | 20 |     |マゼンダ4| 青4  |     |  | 21 |     |マゼンダ2| 青5  |     |  | 22 |     |  緑4 | 青6  |     |  | 23 |     |  黄3 | 青7  |     |  | 24 |     |     | 青8  |     |  | 25 |     |     | 黄1  |     |  | 26 |     |     | 黄2  |     |  | 27 |     |     | 黄3  |     |  | 28 |     |     | 黄4  |     |  | 29 |     |     | 黄5  |     |  | 30 |     |     | 黄6  |     |  | 31 |     |     | 黄7  |     |  | 32 |     |     | 黄8  |     |  | 33 |     |     |マゼンダ1|     |  | 34 |     |     |マゼンダ2|     |  | 35 |     |     |マゼンダ3|     |  | 36 |     |     |マゼンダ4|     |  | 37 |     |     |マゼンダ5|     |  | 38 |     |     |マゼンダ6|     |  | 39 |     |     |マゼンダ7|     |  | 40 |     |     |マゼンダ8|     |  | 41 |     |     | シアン1|     |  | 42 |     |     | シアン2|     |  | 43 |     |     | シアン3|     |  | 44 |     |     | シアン4|     |  | 45 |     |     | シアン5|     |  | 46 |     |     | シアン6|     |  | 47 |     |     | シアン7|     |  | 48 |     |     | シアン8|     |  | 49 |     |     | 白1  |     |  | 50 |     |     | 白2  |     |  | 51 |     |     | 白3  |     |  | 52 |     |     | 白4  |     |  | 53 |     |     | 白5  |     |  | 54 |     |     | 白6  |     |  | 55 |     |     | 白7  |     |  | 56 |     |     | 白8  |     |  ・−−−−−−−−−−−−−−−−−−−−−−−−−−−−・  
mz−80Kのコーナへ Home へ戻る