haas/spring2026/comporg/projects/dap0.md
... ...
@@ -0,0 +1,105 @@
1
+# CSCS2650 Computer Organization
2
+
3
+# PROJECT: DEBUG AND POLISH (dap0)
4
+
5
+## OBJECTIVE
6
+
7
+Create a simple debugging output routine to help investigate issues in
8
+program logic.
9
+
10
+## GRABIT
11
+
12
+There is a GRABIT available, containing some skeleton code, an XML file,
13
+and a Makefile, that will facilitate building the cartridge.
14
+
15
+## TASK
16
+
17
+Implement a Vircon32 assembly subroutines that displays the 32-bit
18
+hexadecimal value of an indicated item to the display at a provided set
19
+of coordinates (supplied via the stack).
20
+
21
+Specifically, you want to call the subroutine **`_debug`**, and place it
22
+in a file called **`debug.s`** so that you can **`%include`** it as
23
+needed in your debugging efforts.
24
+
25
+It is written entirely in Vircon32 assembly language, using no
26
+compiler-generated routines from the Vircon32 API (no **print**, no
27
+**itoa**)- you want to create whatever supporting routines are needed.
28
+
29
+Pass 3 parameters via the stack:
30
+
31
+ * value to display (first added)
32
+ * X coordinate (second added)
33
+ * Y coordinate (third added)
34
+
35
+Be sure to preserve all register and important system states (ie whatever
36
+was going on before the call to debug must be preserved: save and
37
+restore)
38
+
39
+Make use of the stack instructions **PUSH** and **POP**, although all
40
+stack access does not have to exclusively be via **PUSH** and **POP**.
41
+
42
+Utilize bitwise logic in the process to convert each nibble of data into
43
+the value/region you will display
44
+
45
+Try it out on some existing code, posting a screenshot (with context) to
46
+the class discord.
47
+
48
+Provide usage instructions (what needs to be added to existing code to
49
+use your debug subroutine)
50
+
51
+## SUBMISSION
52
+
53
+To be successful in this project, the following criteria (or their
54
+equivalent) must be met:
55
+
56
+ * Project must be submit on time, by the deadline.
57
+ * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline.
58
+ * Processing must be correct based on input given and output requested
59
+ * Output, if applicable, must be correct based on values input
60
+ * Code must be nicely and consistently indented and aligned
61
+ * Code must be consistently written, to strive for readability from having a consistent style throughout
62
+ * Code must be commented
63
+ * Sufficient comments explaining the point of provided logic **MUST** be present
64
+ * Track/version the source code in your private semester repository
65
+ * Submit a copy of your source code to me using the **submit** tool by the deadline.
66
+
67
+## SUBMIT TOOL USAGE
68
+
69
+Let's say you have completed work on the project, and are ready to
70
+submit, you would do the following (once on LAB46, with all your data
71
+present):
72
+
73
+```
74
+lab46:~/src/SEMESTER/comporg/dap0$ make submit
75
+```
76
+
77
+You should get some sort of confirmation indicating successful submission
78
+if all went according to plan. If not, check for typos and or locational
79
+mismatches.
80
+
81
+### RUBRIC
82
+
83
+I'll be evaluating the project based on the following criteria:
84
+
85
+```
86
+182:dap0:final tally of results (182/182)
87
+*:dap0:submitted file called debug.s or debug.asm [13/13]
88
+*:dap0:subroutine is called _debug or __debug [13/13]
89
+*:dap0:code assembles with no warnings or errors [13/13]
90
+*:dap0:parameters obtained via the stack [26/26]
91
+*:dap0:register states preserved across call [13/13]
92
+*:dap0:debug subroutine uses the stack [26/26]
93
+*:dap0:process utilizes bitwise logic [26/26]
94
+*:dap0:screenshot of subroutine in action to discord [13/13]
95
+*:dap0:code contains usage instructions in comments [13/13]
96
+*:dap0:output contains display of contents at coordinates [13/13]
97
+*:dap0:functionality is correct and to specifications [13/13]
98
+```
99
+
100
+### ADDITIONALLY
101
+
102
+ * Solutions not abiding by spirit of project will be subject to a 50% overall deduction
103
+ * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
104
+ * 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
105
+ * 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