summaryrefslogtreecommitdiffstats
path: root/software/pong3/pong3.c
diff options
context:
space:
mode:
Diffstat (limited to 'software/pong3/pong3.c')
-rw-r--r--software/pong3/pong3.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/software/pong3/pong3.c b/software/pong3/pong3.c
index 09240ff..4b9c229 100644
--- a/software/pong3/pong3.c
+++ b/software/pong3/pong3.c
@@ -24,6 +24,22 @@ gpu_write (unsigned int reg, unsigned int data)
IOWR (GPU_0_BASE, reg << 2, data);
}
+
+static void
+update_gpu (int x, int y, int bat0, int bat1)
+{
+ // set locations
+ gpu_write (GPU_REG_SPRITE_X, x + GPU_OFFSET);
+ gpu_write (GPU_REG_SPRITE_Y, y + GPU_OFFSET);
+ gpu_write (GPU_REG_BAT0_Y, bat0 + GPU_OFFSET);
+ gpu_write (GPU_REG_BAT1_Y, bat1 + GPU_OFFSET);
+
+
+ // enable video
+ gpu_write (GPU_REG_BLANK, 0);
+}
+
+
static void
show_score (int score)
{
@@ -242,13 +258,7 @@ main (void)
move_bat (&bat0, dbat0);
move_bat (&bat1, dbat1);
-
- gpu_write (1, x + GPU_OFFSET);
- gpu_write (2, y + GPU_OFFSET);
- gpu_write (3, bat0 + GPU_OFFSET);
- gpu_write (4, bat1 + GPU_OFFSET);
-
- gpu_write (0, 0);
+ update_gpu (x, y, bat0, bat1);
msleep (2);
}
@@ -272,14 +282,7 @@ main (void)
move_bat (&bat0, dbat0);
move_bat (&bat1, dbat1);
-
- gpu_write (1, x + GPU_OFFSET);
- gpu_write (2, y + GPU_OFFSET);
- gpu_write (3, bat0 + GPU_OFFSET);
- gpu_write (4, bat1 + GPU_OFFSET);
-
- gpu_write (0, 0);
-
+ update_gpu (x, y, bat0, bat1);
msleep (2);
}