Instructor Notes
February 25, 2008
Quote
“A computer would deserve to be called intelligent if it could deceive a human into believing that it was human.” - Alan Turing (Chris McKinstry, Push Singh)
Assignment Reminder
- Hello Sprite: due March 2 midnight
Status of programmer order
Review
Sprites
see GameBoy video tutorial
go over questions in email to list
memory map (from gbspec.txt lines 94 to 115:
Interrupt Enable Register --------------------------- FFFF Internal RAM --------------------------- FF80 Empty but unusable for I/O --------------------------- FF4C I/O ports --------------------------- FF00 Empty but unusable for I/O --------------------------- FEA0 Sprite Attrib Memory (OAM) --------------------------- FE00 Echo of 8kB Internal RAM --------------------------- E000 8kB Internal RAM --------------------------- C000 8kB switchable RAM bank --------------------------- A000 8kB Video RAM --------------------------- 8000 32kB Cartridge --------------------------- 0000
- sprite bug (gbspec.txt lines 770-790)
- use incdecss.inc and the inc/dev macros to prevent this
Assembler commands
- help: asm.htm
- MACRO: asm/macro.htm
- SET, PRINT, RSSET, HOME, BSS, .labels (see line 101 in hello-world.asm for example)
- _RS counter
- walkthrough of hello-sprite.inc:
LoByteVar sort of like declaring variables in c
- declaration of a structure
- show docs for rgbds
Hello Sprite No Interrupts
- walkthrough
Interrupts
- define Interrupt
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)
If time
No$GMB emulator
- breakpoint
- animate, trace
for another class
- instruction types
- more on addressing modes (TRS-80 book page 41 chap 3)