Instructor Notes
February 18, 2008
quote
"The mind's essence is creativity and the ability to improvise -- this is what demarcates humans brains from computer software." (Garry Kasparov 2003)
Hello Sprite
- assignment: due Sunday March 2 midnight
- demonstration
- Interrupts
- Assembler commands
GameBoy video
Discussion of Hello GameBoy assignment
- due by Tues midnight...
- Clint: scrolling in both directions
- Korey Kemnitz: blink
- Tommy: altering ibmpc1.inc
August & Thinh: resubmit?
- Alec: good example of asking questions that the assignment brought up
- reminders:
- post should include your name in the title
both the binary and the source in 1 post
- a short description of what the program does
- dev tools install
GameBoy Architecture
get it all from gbspec.txt and gbhw.inc
Hello I/O
- gbspec lines 1016 to end of document
- I/O registers from $FF00 to $FF4B, and $FFFF (gbspec.txt lines 1016 to the end)
- timer, read joy pad, serial data, sound, video modes, window placement, etc.
Hello Video
see ECE238Spr08/tutorials/GameBoyVideo
Assembler commands
- help: asm.htm
- MACRO: asm/macro.htm
- SET, PRINT, RSSET, HOME, BSS, .labels (see line 101 in hello-world.asm for example),
- walkthrough of hello-sprite.inc:
LoByteVar sort of like declaring variables in c
- declaration of a structure
- show docs for rgbds
Interrupts
Z80 Interrupt vector not on the GameBoy
- interrupt addresses: gbspec.txt lines 156-180
- vblank
- timer (rTMA, rTAC (gbspec lines 1137 - 1155)
serial transfer (for connecting multiple GameBoys, for example)
for another class
- instruction types
- more on addressing modes (TRS-80 book page 41 chap 3)