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

第23回
☆パレットの設定ルーチンのサブルーチン化

『JSR命令とRTS命令』
*JSR命令は、サブルーチンの呼び出しで
  RTS命令は、サブルーチンからの復帰する命令です。

『サブルーチン化の実例』

  ldx #%00001000        ;BG.SPRITEの表示OFF
  sta $2000
  ldx #%00000000
  sta $2001
  jsr VB0                     ;VBlank待ちループ

  lda #$3f
  sta $2006
  lda #$00
  sta $2006
pal_loop:
  lda pall,x
  sta $2007
  inx
  cpx #32
  bne pal_loop
loop000:
  jmp loop000

⁂上のコード赤色の部分を切り取り,無限ループの下にコピーします、

 サブルーチンの名前をつけラベルをはり、最下行にRTS命令を付けます。

  サブルーチンを呼び出すとこにJSR命令をかきます。

 

『サブルーチン化したコード』

  ldx #%00001000
  sta $2000
  ldx #%00000000
  sta $2001
  jsr VB0

  jsr palette

loop000:
  jmp loop000

;*************************************

palette:
      lda #$3f
      sta $2006
      lda #$00
      sta $2006
pal_loop:
     lda pall,x
     sta $2007
     inx
     cpx #32
     bne pal_loop
     rts