最終更新: keigox68000 2015年03月05日(木) 11:09:01履歴
■元記事
2011-03-15
2011-03-15
;ランク値表示入口 org $11EE jmp $7fBB0.l ;バージョン表示入口 org $2582 jmp $7fcfa.l ;メモリチェックエラー分岐潰し org $15A08 nop ;ランク値表示ルーチン org $7FBB0 movem.l D0-D7/A0-A7,-(A7) ;2P START読み込み move.b $21c029,d0 andi.b #$40,d0 beq push2p ;2P連射防止フラグ cmpi.w #1,$503ff2 beq skip0 move.w #1,$503ff2 ;ランク値表示状態判定(トグル) cmpi.w #1,$503ff0 beq disp_off move.w #1,$503ff0 bra skip0 disp_off move.w #0,$503ff0 bra skip0 push2p ;2PS押されてない move.w #0,$503ff2 skip0 cmpi.w #0,$503ff0 beq skip3 ;ランク値取得 lea $10c9d2.l,a0 lea $500046.l,a1 move.w #$03,d2 ;ランク値表示色設定 move.w #$d000,d3 cmpi.l #$a00000,(a0) bcs loop move.w #$c800,d3 cmpi.l #$c00000,(a0) bcs loop move.w #$d400,d3 cmpi.l #$d00000,(a0) bcs loop move.w #$cc00,d3 cmpi.l #$e00000,(a0) bcs loop move.w #$c400,d3 loop ;ランク値→16進数表示文字コード変換 move.b (a0)+,d0 move.b d0,d1 ror #4,d0 andi.w #$000f,d0 andi.w #$000f,d1 addi.w #$0030,d0 addi.w #$0030,d1 cmpi.w #$003a,d0 bcs skip1 addi.w #7,d0 skip1 cmpi.w #$003a,d1 bcs skip2 addi.w #7,d1 skip2 ;ランク値表示 VRAM書き込み add.w d3,d0 add.w d3,d1 move.w d0,(a1)+ lea $7E(a1),a1 move.w d1,(a1)+ lea $7E(a1),a1 dbra d2,loop bra skip4 skip3 ;ランク値表示消去 lea $500046.l,a1 clr.w (a1) lea $80(a1),a1 clr.w (a1) lea $80(a1),a1 clr.w (a1) lea $80(a1),a1 clr.w (a1) lea $80(a1),a1 clr.w (a1) lea $80(a1),a1 clr.w (a1) lea $80(a1),a1 clr.w (a1) lea $80(a1),a1 ;デモ画面の小タイトル欠け防止 cmpi.w #$d1c7,$5003c4 bne skip5 move.w #$d1b5,$5003c6 bra skip4 skip5 clr.w (a1) skip4 movem.l (a7)+,d0-d7/a0-a7 lea $500000.l,a5 jmp $11f4.l ;バージョン表示 movem.l D0-D7/A0-A7,-(A7) ;画面に「CO.,LTD」の「C」表示、小タイトル表示検出 ;(デモ画面かどうかの判定) move.l a1,d0 cmpi.l #$00500a86,d0 bne skip2_0 cmpi.w #$c043,d3 bne skip2_0 lea $5008ba,a2 cmpi.w #$d22b,(a2) beq skip2_1 lea $500b30,a2 cmpi.w #$cc56,(a2) beq skip2_0 bra skip2_2 skip2_1 lea $5008b8,a2 cmpi.w #$cc56,(a2) beq skip2_0 skip2_2 ;バージョン文字列 VRAM書き込み lea let,a3 move.w #6,d0 loop2_0 move.w (a3)+,(a2) lea $80(a2),a2 dbra d0,loop2_0 skip2_0 ;VBlank待ち(本来のルーチンへ帰る前に待ちますよ) move.w $21c03c.l,d7 bmi skip3_0 move.w $21c03c.l,d7 skip3_0 cmpi.b #$f1,d7 bcs skip2_0 cmpi.b #$fc,d7 bcc skip2_0 movem.l (a7)+,d0-d7/a0-a7 ;本来の処理 lea $80(a1),a1 jmp $257a.l let ;バージョン文字列 .dc.w $cc56 .dc.w $cc65 .dc.w $cc72 .dc.w $cc2e .dc.w $cc4b .dc.w $cc30 .dc.w $cc31 .end
コメントをかく