CSCS2650 Computer Organization

PROJECT: MOVE A BLOCK (mab0)

OBJECTIVE

This week we turn our attention to starting to write (from scratch) code in Vircon32 assembly language.

We will start with the most basic of ingredients: render a block on the screen, and allow it to move via the gamepad.

GRABIT

There is a GRABIT available, containing some skeleton code, an XML file, and a Makefile, that will facilitate building the cartridge.

Or: check the class repo under the projects/ directory.

TASK

Implemented from scratch, in assembly:

  • select the loaded texture
  • select 4 objects (regions) to display
  • display the object on the screen, allowing for its control via the gamepads
    • each gamepad direction should display a different object
  • implement bounds checks on the screen edges, preventing the object from moving off the screen (or performing a wraparound, as desired)

SUBMISSION

To be successful in this project, the following criteria (or their equivalent) must be met:

  • Project must be submit on time, by the deadline.
    • Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline.
  • Processing must be correct based on input given and output requested
  • Output, if applicable, must be correct based on values input
  • Code must be nicely and consistently indented and aligned
  • Code must be consistently written, to strive for readability from having a consistent style throughout
  • Code must be commented
    • Sufficient comments explaining the point of provided logic MUST be present
  • Track/version the source code in your private semester repository

SUBMITTING

To submit, please place your project files under the comporg/mab0/ folder at the base of your private semester repository. I will look there for your submission.

RUBRIC

I'll be evaluating the project based on the following criteria:

78:mab0:final tally of results (78/78)
*:mab0:code written from scratch in Vircon32 assembly [13/13]
*:mab0:code assembles cleanly, with no warnings [13/13]
*:mab0:submit code, XML file, and any needed assets [13/13]
*:mab0:program displays one of four regions based on direction [13/13]
*:mab0:program reads the gamepad to adjust position of region [13/13]
*:mab0:region when encountering screen edge will stop or wrap [13/13]

ADDITIONALLY

  • Solutions not abiding by spirit of project will be subject to a 50% overall deduction
  • Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
  • 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
  • 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