aboutsummaryrefslogtreecommitdiff
path: root/bunny.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'bunny.gbasm')
-rw-r--r--bunny.gbasm66
1 files changed, 66 insertions, 0 deletions
diff --git a/bunny.gbasm b/bunny.gbasm
new file mode 100644
index 0000000..b2e6ca3
--- /dev/null
+++ b/bunny.gbasm
@@ -0,0 +1,66 @@
+Initialize_Bunny:
+ LD A, $20
+ LD ($80), A
+ LD A, $20
+ LD ($81), A
+ RET
+
+Move_Bunny:
+ LD A, ($82)
+ CP $00
+ JR Z, =Display_Bunny
+
+ Move_Bunny.check_direction:
+ DEC A
+ LD B, $01
+ BIT 0, A
+ JR NZ, =Move_Bunny.check_direction_end
+ LD B, $FF
+
+ Move_Bunny.check_direction_end:
+
+ BIT 1, A
+ JR NZ, =Move_Bunny.vertical_move
+
+ Move_Bunny.horizontal_move:
+ LD A, ($81)
+ ADD B
+ LD ($81), A
+ JP =Move_Bunny.end
+
+ Move_Bunny.vertical_move:
+ LD A, ($80)
+ ADD B
+ LD ($80), A
+
+ Move_Bunny.end:
+ RET
+
+Display_Bunny: ; X position in B, Y position in C
+ LD A, ($81)
+ LD B, A
+ LD A, ($80)
+ LD C, A
+
+ ; First OBJ (left)
+ LD HL, $FE00
+ LD A, C
+ LD (HL+), A
+ LD A, B
+ LD (HL+), A
+ LD A, $01
+ LD (HL+), A
+ INC HL
+
+ ; Second OBJ
+ LD A, B
+ ADD $08
+ LD B, A
+
+ LD A, C
+ LD (HL+), A
+ LD A, B
+ LD (HL+), A
+ LD A, $03
+ LD (HL+), A
+ RET