ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

第27回
*今回は、BG(背景)座標とVRAMアドレスの算出
  任意の位置にパターンを表示するにはX、Y座標を基に
  表示位置を計算する必要がある。


『VRAMとアドレス』

*計算式は $2000+32*y+x になります。
*Vram_add という2byteの領域を確保し
   $2000(Vram先頭アドレス)を格納しておく。

 

  lda cur_y ;Y座標
  sta count1      ;カウンターをセット
lp:
  lda Vram_add+1  ;アドレス下位
  clc            ;キャリーフラグリセット
  adc #$20       ;VRAMの横幅(32)を加算する。
  sta Vram_add+1
  lda Vram_add    ;アドレス上位
  adc #$0         ;繰り上がり分を加算する。
  sta Vram_add
  dec count1
  bne lp
  lda Vram_add+1
  clc            ;キャリーフラグリセット
  adc  cur_x      ;x座標
  sta Vram_add+1

 

*上記のコードは、X座標・Y座標で示すVRAMアドレスを計算するプログラムです。
   まだ変数ついて解説してなかったので次回は、プログラムの説明と

【変数とゼロページ】 について解説します。

f:id:chien1956:20200115095804p:plain