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
Jump to: navigation, search
(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>")
 
(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

by User:Akaginite

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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