
vi CONTENTS
4.5 IDE ................................ 19
4.6 DRAM............................... 19
5 Memory Map and Registers 23
6 Timing 27
6.1 TimingTargets .......................... 27
6.1.1 SRAM........................... 27
6.1.2 ROM............................ 34
6.1.3 DRAM........................... 38
6.1.4 IDE ............................ 45
6.1.5 DAC (via SCI) . . . . . . . . . . . . . . . . . . . . . . 49
6.1.6 MP3 Decoder (via SCI) . . . . . . . . . . . . . . . . . 53
6.1.7 LCDDisplay ....................... 57
6.2 Timing Simulation (CPLD) . . . . . . . . . . . . . . . . . . . 57
7 Schematics 59
7.1 Prototyping Board/CPU . . . . . . . . . . . . . . . . . . . . . 59
7.2 CPLD ............................... 61
7.3 MP3 Decoder Daughterboard . . . . . . . . . . . . . . . . . . 63
7.4 DAC/AnalogOut......................... 65
7.5 Display/Keypad.......................... 67
7.6 IDEInterface ........................... 69
7.7 DRAM & Address Multiplexing . . . . . . . . . . . . . . . . . 71
8 Annotated Code 73
8.1 CPLDCode............................ 73
8.2 Bootup Code (crt0.asm) . . . . . . . . . . . . . . . . . . . . . 87
8.3 Queues (queues.asm) . . . . . . . . . . . . . . . . . . . . . . . 95
8.4 Display (display.inc, display.asm) . . . . . . . . . . . . . . . . 105
8.5 Keypad (keyfunc.inc, keyfunc.asm) . . . . . . . . . . . . . . . 124
8.6 IDEInterface ...........................133
8.7 Sound (DAC & MP3 Decoder) . . . . . . . . . . . . . . . . . . 141
8.8 Timing...............................186
8.9 Interrupts .............................192
8.10UserInterface...........................202
8.11Miscellaneous ...........................222