| Category | Points | Min | Max |
DrawPoly
- Reads X1,Y1,Y3,X2,Y2,Y4,Color as C-style arguments
- Written using logical, modular code w/multiple subroutines.
- Implements Bresenham's algorithm
- Works Completely for 'MP4 1'
- Properly Draws all 8 trianges in 4 polygons of 'MP4 2'
( -2.5 points / bad triangle in 'MP4 2' (8 total) )
| | 0 | 20 |
LoadPCX
- Writes data to segment specified by argument
(not necessarily video memory nor a hardcoded value)
- Reads data from filename specified by argument (not hardcoded)
- Loads VGA Palette registers with image colors
| | 0 | 10 |
MoveScreen
- Moves 320*200=64,000 pixels between segments
- Uses most efficient opcodes for routine.
(-2 for implementations that use bytes or words)
| | 0 | 5 |
AnimateScreen
- Transfers 320*200=64,000 pixels between segments
- Horizontally shifts image by specified amount
(-3 if image is vertically shifted by a line)
| | 0 | 5 |
InstKey/KeyInterrupt/DeInstallKey
- Replaces then restores keyboard ISR (Int 9)
- Updates variables cs:ExitFlag, cs:Xoffset, cs:Yoffset
- Interpretes keystrokes to allow movement to
all 9 regions in 'MP4 4'.
| | 0 | 10 |
| Functionality SubTotal
| | 0 | 50 |
Comments (* percentage of code written)
- Clear and precise line & procedure comments
(describes all major routines): -0
- Sports Announcer comments (line-by-line): -1
- Unclear comments: -1
- Sparse comments: -3
| | -5 | 0 |
Technique & Style (* percentage of code written)
- Compact and Efficient code: -0
Really bad code in DrawPoly: -3
- Contains repeated code (lacks loops): -3
- Makes poor use of registers and/or variables: -2
| | -5 | 0 |
I/O Specs & Modularity (* percentage of code written)
- Violates specifications for given subroutines: -5 (all points)
- Preserves valus of registers: -5 (all points)
| | -5 | 0 |
Penalty/Bonus
Before 5pm, Fri 11/14/97: +1 pt/weekday
After 5pm, Fri 11/14/97: -5 pts/weekday
| | -50 | 5 |
| Total | | 0 | 55 |