ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編
第36回
*今回は、ステータスの表示の準備の続編です。
①HP・MP・L:の表示
②fontの追加
③ウインドウ用FONTの追加
④記号の追加(* :)
;***************** DATA *********************************
.bank 2
.org $0000
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;
.db $3C,$42,$42,$42,$42,$42,$42,$3C,$00,$00,$00,$00,$00,$00,$00,$00 ;0
.db $10,$30,$10,$10,$10,$10,$10,$38,$00,$00,$00,$00,$00,$00,$00,$00 ;1
.db $3C,$42,$02,$04,$18,$20,$40,$7E,$00,$00,$00,$00,$00,$00,$00,$00 ;2
.db $7E,$02,$04,$18,$04,$02,$42,$3C,$00,$00,$00,$00,$00,$00,$00,$00 ;3
.db $0C,$14,$24,$44,$44,$7E,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00 ;4
.db $7E,$40,$40,$7C,$02,$02,$42,$3C,$00,$00,$00,$00,$00,$00,$00,$00 ;5
.db $1C,$20,$40,$7C,$42,$42,$42,$3C,$00,$00,$00,$00,$00,$00,$00,$00 ;6
.db $7E,$42,$42,$04,$08,$10,$10,$10,$00,$00,$00,$00,$00,$00,$00,$00 ;7
.db $3C,$42,$42,$3C,$42,$42,$42,$3C,$00,$00,$00,$00,$00,$00,$00,$00 ;8
.db $3C,$42,$42,$42,$3E,$02,$04,$18,$00,$00,$00,$00,$00,$00,$00,$00 ;9
.db $82,$82,$82,$FE,$82,$82,$82,$82,$00,$00,$00,$00,$00,$00,$00,$00 ;M
.db $82,$C6,$AA,$92,$92,$82,$82,$82,$00,$00,$00,$00,$00,$00,$00,$00 ;P
.db $FC,$82,$82,$82,$FC,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00 ;G
.db $00,$42,$42,$42,$7e,$42,$42,$42,$00,$00,$00,$00,$00,$00,$00,$00 ;H
.db $00,$7e,$40,$40,$7c,$40,$40,$7e,$00,$00,$00,$00,$00,$00,$00,$00 ;E
.db $00,$40,$40,$40,$40,$40,$42,$7e,$00,$00,$00,$00,$00,$00,$00,$00 ;L
.db $00,$3c,$42,$42,$42,$42,$42,$3c,$00,$00,$00,$00,$00,$00,$00,$00 ;O
.db $00,$42,$62,$52,$5a,$4a,$46,$42,$00,$00,$00,$00,$00,$00,$00,$00 ;N
.db $00,$3c,$42,$40,$3c,$02,$42,$3c,$00,$00,$00,$00,$00,$00,$00,$00 ;S
.db $00,$3F,$7F,$70,$60,$60,$60,$60,$00,$00,$00,$00,$00,$00,$00,$00 ;Win左上隅
.db $00,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;Win上
.db $00,$FC,$FE,$0E,$06,$06,$06,$06,$00,$00,$00,$00,$00,$00,$00,$00 ;Win右上隅
.db $60,$60,$60,$60,$60,$60,$60,$60,$00,$00,$00,$00,$00,$00,$00,$00 ;Win左端
.db $06,$06,$06,$06,$06,$06,$06,$06,$00,$00,$00,$00,$00,$00,$00,$00 ;Win右端
.db $60,$60,$60,$60,$70,$7F,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;Win左下隅
.db $00,$00,$00,$00,$00,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;Win下
.db $06,$06,$06,$06,$0E,$FE,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;Win右下隅
.db $00,$10,$92,$54,$38,$54,$92,$10,$00,$00,$00,$00,$00,$00,$00,$00 ;*
.db $00,$18,$18,$00,$00,$18,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00 ;:
*文字列DATAの追加変更。
str_data:
.db $14,$15,$15,$15,$15,$16,$ff
.db $17,$0e,$00,$02,$06,$18,$ff
.db $17,$00,$00,$00,$00,$18,$ff
.db $17,$0e,$00,$02,$06,$18,$ff
.db $17,$10,$1d,$03,$07,$18,$ff
.db $19,$1a,$1a,$1a,$1a,$1b,$ff
*ライブラリーの追加
string:
ldy #0
lp2:
lda str_data,x
sta str_buff,y
inx
iny
cmp #$ff
bne lp2
ldy #0
lp1:
lda str_buff,y
iny
cmp #$ff
beq exit
sta $2007
jmp lp1
exit:
jsr scroll_zero
*ウィンドウ表示のプログラム
lda #15
sta loc_x
lda #12
sta loc_y
jsr locate
ldx #0
jsr string
lda #15
sta loc_x
lda #13
sta loc_y
jsr locate
ldx #7
jsr string
lda #15
sta loc_x
lda #14
sta loc_y
jsr locate
ldx #14
jsr string
*実行の結果3行目までしか表示されなかった、
それは、メインループ内では、VBlankの時間制限を超えてるためで
分割して表示する必要があります、次回は、プログラムを改良する予定です。
【予定している画像】