From 41c2eef8538d02786d08c6e6946e0250f19b364b Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 5 Feb 2013 16:16:43 -0500 Subject: [PATCH] snes: finish commenting svmwgraph code --- tb1_snes/checksum.inc | 4 ++-- tb1_snes/svmwgraph.s | 39 +++++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/tb1_snes/checksum.inc b/tb1_snes/checksum.inc index 2662b5f..1600bc4 100644 --- a/tb1_snes/checksum.inc +++ b/tb1_snes/checksum.inc @@ -1,2 +1,2 @@ - .word $a3e ; Complement of checksum - .word $f5c1 ; Unsigned 16-bit sum of ROM + .word $9de ; Complement of checksum + .word $f621 ; Unsigned 16-bit sum of ROM diff --git a/tb1_snes/svmwgraph.s b/tb1_snes/svmwgraph.s index 172a5fa..5e0de34 100644 --- a/tb1_snes/svmwgraph.s +++ b/tb1_snes/svmwgraph.s @@ -381,33 +381,36 @@ activate_sprite: ; assumes high sprite table at $0400 ; sets carry if active ; clears carry if not -; sprite number in X +; sprite number in Y deactivate_sprite: - php - phx - phy + php ; save status on stack + phx ; save X + phy ; save Y - lda #$0 - xba + tyx ; copy Y to X - tyx + rep #$20 ; set A to 16-bit +.a16 ; address=$0400 + Y/4 - txa + tya ; copy Y to A + lsr ; divide by 4 lsr - lsr - tay + tay ; copy back to Y - txa - and #$3 + txa ; get low bits into X + and #$3 ; Mask tax - lda SPRITE_HIGH_LOOKUP,X + + sep #$20 ; set A to 8-bit +.a8 + lda SPRITE_HIGH_LOOKUP,X ; lookup bits in table ora $0400,Y ; sprite off screen when bit is 1 - sta $0400,Y + sta $0400,Y ; save value back out - ply - plx - plp - rts + ply ; restore Y + plx ; restore X + plp ; restore status + rts ; return