We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
Useful Code Snippets: Difference between revisions
From SnesLab
Vitor Vilela (talk | contribs) (Created page with "Useful code snippets for the 65c816 ASM and general SNES hardware. === Wait for H-Blank === <pre> - BIT $4212 BVS - - BIT $4212 BVC - </pre>") |
Vitor Vilela (talk | contribs) (Add akag's code, separate by architecture and processor.) |
||
Line 1: | Line 1: | ||
Useful code snippets for the 65c816 ASM and general SNES hardware. | Useful code snippets for the 65c816 ASM and general SNES hardware. | ||
== 65c816 S-CPU === | |||
=== Wait for H-Blank === | === Wait for H-Blank === | ||
Line 10: | Line 12: | ||
BIT $4212 | BIT $4212 | ||
BVC - | BVC - | ||
</pre> | |||
== 65c816 SA-1 CPU == | |||
=== Unsigned 16 bit x 16 bit = 32 bit multiplication === | |||
by [[User:Akaginite]] | |||
<pre> | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
; 16bit * 16bit Multiplication SA-1 version | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
; Argusment | |||
; $00-$01 : Multiplicand | |||
; $02-$03 : Multiplier | |||
; Return values | |||
; $04-$07 : Product | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
MathMul16_16: STZ $2250 | |||
REP #$20 | |||
LDA $00 | |||
STA $2251 | |||
ASL A | |||
LDA $02 | |||
STA $2253 | |||
BCS + | |||
LDA.w #$0000 | |||
+ BIT $02 | |||
BPL + | |||
CLC | |||
ADC $00 | |||
+ CLC | |||
ADC $2308 | |||
STA $06 | |||
LDA $2306 | |||
STA $04 | |||
SEP #$20 | |||
RTS | |||
</pre> | </pre> |
Revision as of 01:05, 26 July 2019
Useful code snippets for the 65c816 ASM and general SNES hardware.
65c816 S-CPU =
Wait for H-Blank
- BIT $4212 BVS - - BIT $4212 BVC -
65c816 SA-1 CPU
Unsigned 16 bit x 16 bit = 32 bit multiplication
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 16bit * 16bit Multiplication SA-1 version ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Argusment ; $00-$01 : Multiplicand ; $02-$03 : Multiplier ; Return values ; $04-$07 : Product ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MathMul16_16: STZ $2250 REP #$20 LDA $00 STA $2251 ASL A LDA $02 STA $2253 BCS + LDA.w #$0000 + BIT $02 BPL + CLC ADC $00 + CLC ADC $2308 STA $06 LDA $2306 STA $04 SEP #$20 RTS