haas/spring2026/comporg/projects/mab1.md
... ...
@@ -0,0 +1,81 @@
1
+# CSCS2650 Computer Organization
2
+
3
+# PROJECT: MOVE A BLOCK (mab1)
4
+
5
+## OBJECTIVE
6
+
7
+This week we extend upon our simple block movement program, turning it
8
+into a fully functional one-player `PONG` game, hand-written in Vircon32
9
+Assembly Language.
10
+
11
+## GRABIT
12
+
13
+There is a GRABIT available, containing some skeleton code, an XML file,
14
+and a Makefile, that will facilitate building the cartridge.
15
+
16
+## TASK
17
+
18
+Implemented from scratch, in assembly:
19
+
20
+ * have texture(s), regions for a paddle and a ball
21
+ * have the ball rebound, continuing in one direction until it hits a bound
22
+ * bounds can be the top, bottom, or side of the screen (which it will reflect off of)
23
+ * bounds can also be the paddle (which it will also reflect off of)
24
+ * paddle bounds are the edges of the screen (prevent it from getting lost off the screen)
25
+ * if the paddle fails to deflect the ball and the ball moves beyond the screen, reset the ball and start again
26
+ * display the paddle and ball on the screen, allowing paddle control via the gamepad
27
+ * two gamepad directions will be necessary for moving the paddle
28
+ * implement a simple scoring system and display
29
+
30
+## SUBMISSION
31
+
32
+To be successful in this project, the following criteria (or their
33
+equivalent) must be met:
34
+
35
+ * Project must be submit on time, by the deadline.
36
+ * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline.
37
+ * Processing must be correct based on input given and output requested
38
+ * Output, if applicable, must be correct based on values input
39
+ * Code must be nicely and consistently indented and aligned
40
+ * Code must be consistently written, to strive for readability from having a consistent style throughout
41
+ * Code must be commented
42
+ * Sufficient comments explaining the point of provided logic **MUST** be present
43
+ * Track/version the source code in your private semester repository
44
+ * Submit a copy of your source code to me using the **submit** tool by the deadline.
45
+
46
+## SUBMIT TOOL USAGE
47
+
48
+Let's say you have completed work on the project, and are ready to
49
+submit, you would do the following (once on LAB46, with all your data
50
+present):
51
+
52
+```
53
+lab46:~/src/SEMESTER/DESIG/mab1$ make submit
54
+```
55
+
56
+You should get some sort of confirmation indicating successful submission
57
+if all went according to plan. If not, check for typos and or locational
58
+mismatches.
59
+
60
+### RUBRIC
61
+
62
+I'll be evaluating the project based on the following criteria:
63
+
64
+```
65
+104:mab1:final tally of results (104/104)
66
+*:mab1:code assembles cleanly, with no warnings [13/13]
67
+*:mab1:submit code, XML file, and v32 cartridge [13/13]
68
+*:mab1:paddle displays, position adjusted by gamepad [13/13]
69
+*:mab1:paddle is bounded by screen edges [13/13]
70
+*:mab1:paddle can deflect ball [13/13]
71
+*:mab1:ball moves automatically, resets if it goes off screen [13/13]
72
+*:mab1:ball deflects off screen edges [13/13]
73
+*:mab1:game keeps and displays score [13/13]
74
+```
75
+
76
+### ADDITIONALLY
77
+
78
+ * Solutions not abiding by spirit of project will be subject to a 50% overall deduction
79
+ * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
80
+ * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction
81
+ * Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction