Term Project
Under category "project," post to the blog the culmination of all of your work for the term project as text and accompanying zip file
you are encouraged to comment on other people's work.
- Post is due May 11, midnight
Assignment Details
- post title should include your full name and the name of your project
- post text should include:
- what is your project? Give a description of at least one paragraph.
- how does a user interact with your project?
- what is the command line needed to assemble your project?
- besides including this text in your post, put it in a file called 00-README.TXT within your zip file
post attachment should include all files necessary for assembly, including source code libraries and data even if unmodified from class resources (such as sprite.inc, bigsprite.asm, memory.asm and ibmpc1.inc) and should also include the resulting gb binary.
source code include in the post attachment should be cleaned up and completely documented so anybody with your level of knowledge can easily understand the code
source code cleanup and documentation
This assignment serves as a record for your work in the class and will be the most likely resource used by future members of the class and the intergalactic GameBoy programming community at large. I will go over each of these assignments carefully to evaluate your level of understanding and the quality of your work for this class. Therefore, it is very important that you clean up and document your source code so others can understand it easily:
- As much as possible, make your source code self-documenting and easily modifiable.
For example, if you are setting a flag, it is better to write code such as:
MYFLAGSET EQU 1 MYFLAGRESET EQU 0 <....> ld a,MYFLAGSET ld [myFlagVar],a
than the equivalent code, which is not self-documenting:
ld a,1 ld [myFlagVar],a
- choose good variable names. There should be an obvious correlation between a variable's name and its function.
if a function is more than a few lines and isn't completely obvious, you should provide header information to the function right before the source code of the function itself. Look at my source code libraries, such as bigsprite.asm for good examples of this. In general, a good template is:
;*************************************************************************** ;* <put name of function here> ;* <put description of function here. Take as many lines as you need> ;* input: ;* <describe here what registers or parameters the function takes as input> ;* <use a new line for each register or parameter> ;* output: ;* <describe here what registers or parameters the function takes as output> ;* <use a new line for each register or parameter> ;* destroys: ;* <list here any registers (other than the output register(s)) whose values are destroyed in the function> ;*************************************************************************** <function code goes here>
- at the top of each source code file in your zip file which you have created or modified, make sure you give
- your name
- version and date of completion of your code
- description of purpose of source code file
Term project grading
The term project represents 40% of your overall grade. The term project grade will be determined by:
% of grade |
name |
description |
40% |
MindScapes presentation |
you showed up to MindScapes from 7 to 9pm and showed a complete functional application to youth during that time |
30% |
Project functionality |
Your project shows good functionality and demonstrates proficiency in GameBoy assembly language |
30% |
Project documentation |
You describe both what your project is and how it works in your final blog post and in your 00-README.TXT file. Your code is well-documented and easy to understand. |