この記事の題名が①となっているからと言って、②があるかはわかりません(汗
まあいいや。ここでは、最近のパソコンでやれば簡単なのに・・・というようなことを、あえてポケコンのアセンブラでやってみます。
まずは、タイトルの通り、VRAMをいじってみます。
ちなみに、ポケコンといえども、たくさんあるので、一応型番は書いておきます。SHARPのPC-1450です。たぶん、RAMの番地を変えれば、1245などでも動きます。
まず、VRAMをいじるとはいっても、VRAMに格納されている数が変わるだけでは、つまらないですよね。そこで、VRAMの数をディスプレイに反映するための準備をします。
これは、ただ単に、LCDをONにすればいいだけです。要するに、OUTC1をします。
ここでのアセンブラコードは、
LIA 5F
ORIM 01
OUTC
RTN
です。
これで、ディスプレイの準備はできました。
ここまでくれば、もう簡単。BASICのPOKE命令を使って、VRAMに値を代入するだけです。
ポケコンによって、VRAMの番地配置が違うので、そこにだけ、注意が必要です。
たとえば、田んぼの田を表示したいときは、
10 POKE &5100,&12,&5F,&61,&01,&DF,37 (上のプログラムのアセンブルしたもの。)
20 CALL &5100
30 POKE &7000,127,73,127,73,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
40 CALL &11E0
50 FOR I=1 TO 100:NEXT I
という感じです。
この、ゼロばっかりのところは、画面の初期化をしているだけです。なので、打ち間違いではありません。
また、最後のFOR文は、プログラムが一瞬で終わるのを防ぐものです。
・・・という感じで、また、②で。