aboutsummaryrefslogtreecommitdiff
path: root/src/ubox/ubox_set_sprite_pat16_flip.z80
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2020-12-30 19:07:31 +0000
committerJuan J. Martinez <jjm@usebox.net>2020-12-30 19:23:41 +0000
commit2682bc5d1d864341aaeb42a449db73c3ecd16d70 (patch)
tree9116764364b4ee0ce7f6037305077807b57776de /src/ubox/ubox_set_sprite_pat16_flip.z80
downloadubox-msx-lib-2682bc5d1d864341aaeb42a449db73c3ecd16d70.tar.gz
ubox-msx-lib-2682bc5d1d864341aaeb42a449db73c3ecd16d70.zip
Initial import1.0
Diffstat (limited to 'src/ubox/ubox_set_sprite_pat16_flip.z80')
-rw-r--r--src/ubox/ubox_set_sprite_pat16_flip.z8063
1 files changed, 63 insertions, 0 deletions
diff --git a/src/ubox/ubox_set_sprite_pat16_flip.z80 b/src/ubox/ubox_set_sprite_pat16_flip.z80
new file mode 100644
index 0000000..bb960f8
--- /dev/null
+++ b/src/ubox/ubox_set_sprite_pat16_flip.z80
@@ -0,0 +1,63 @@
+.globl _ubox_set_sprite_pat16_flip
+
+WRTVRM = 0x004d
+
+_ubox_set_sprite_pat16_flip::
+ ld hl, #2
+ add hl, sp
+
+ ld e, (hl)
+ inc hl
+ ld d, (hl)
+ inc hl
+
+ ld l, (hl)
+ ld h, #0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, #0x3800
+ add hl, bc
+
+ push de
+ ld bc, #16
+ ex de, hl
+ add hl, bc
+ ex de, hl
+ call flip
+
+ pop de
+ call flip
+
+ ret
+
+flip:
+ ld b, #16
+flip0:
+ call flip_and_copy
+ inc hl
+ inc de
+ djnz flip0
+ ret
+
+flip_and_copy:
+ ld a, (de)
+ ld c, a
+ rlca
+ rlca
+ xor c
+ and #0xaa
+ xor c
+ ld c, a
+ rlca
+ rlca
+ rlca
+ rrc c
+ xor c
+ and #0x66
+ xor c
+
+ jp WRTVRM
+