武将データ抽出ルーチン 1F836h~
武将データの抽出を行う
おそらくこのゲームで一番利用されているルーチン
- 準備:レジスタaに武将ID、レジスタyにオフセット値(0=状態、1=体力、2=知力、3=武力など)
- 結果:レジスタaに武将データ
F826 : 85 01 sta $01 ;武将IDM$01にストア
F828 : 98 tya ;yをaに
F829 : 48 pha ;スタックにaをPUSH
F82A : A5 01 lda $01 ;M$01からaにロード
F82C : A0 00 ldy #$00 ;yに00をロード
F82E : 84 01 sty $01 ;yをM$01にストア
F830 : 0A asl a ;aをシフト(2倍)※以下武将IDを8倍する操作
F831 : 26 01 rol $01 ;M$01を循環シフト(上記の溢れ(Cフラグ)を拾う)
F833 : 0A asl a ;aをシフト(2倍)
F834 : 26 01 rol $01 ;M$01を循環シフト(上記の溢れ(Cフラグ)を拾う)
F836 : 0A asl a ;aをシフト(2倍)
F837 : 26 01 rol $01 ;M$01を循環シフト(上記の溢れ(Cフラグ)を拾う)
F839 : 18 clc ;
F83A : 69 38 adc #$38 ;$6438(武将の能力値の開始アドレス)の下位桁$38にaを足す
F83C : 85 00 sta $00 ;M$00に格納
F83E : A5 01 lda $01 ;aにM$01をロード
F840 : 69 64 adc #$64 ;$6438(武将の能力値の開始アドレス)の上位桁$64にaを足す
F842 : 85 01 sta $01 ;M$01に格納
F844 : 68 pla ;スタックからaにPULL
F845 : A8 tay ;aをyに格納
F846 : B1 00 lda ($00),y ;M$00から16ビット(M$01+M$00のアドレス)+yからaにロード
F848 : 60 rts ;
最終更新:2012年06月09日 17:57