Enhanced Apple Sound Chip (EASC)

Memory Map

All offsets from the base address of the chip

Starting offsetFunction
0x000FIFO A
0x400FIFO B
0x800Version (read-only) EASC returns 0xB0.
0x801Mode: 0 = disable (repeat last sample output infinitely), 1 = run
0x802Overflow flag: bit 7 set if engine overrun
0x803FIFO clear strobe (bit 7)
0x804FIFO interrupt status: bit 0 = A half full, bit 1 = A full/empty, bit 2 = B half full, bit 3 = B full/empty
0x806Volume control (top 3 bits only)
0x807Clock rate select on ASC: hardwired to return 0x03 here
0x80AChannel A play/record: bit 0 = 0 for play, 1 for record, bit 1 = 0 for 11 kHz record, 1 for 22 kHz record
0x80FTest logic control (bit 7)
0xF00A write pointer high
0xF01A write pointer low
0xF02A read pointer high
0xF03A read pointer low
0xF04A sample rate time increment high
0xF05A sample rate time increment low
0xF06A left volume
0xF07A right volume
0xF08A FIFO control (bit 7 = 1 to enable CD-XA decompression)
0xF09A interrupt control (bit 0 = 1 to enable buffer half-full IRQ)
0xF10-0xF17A CD-XA decompression filter constants
0xF20B write pointer high
0xF21B write pointer low
0xF22B read pointer high
0xF23B read pointer low
0xF24B sample rate time increment high
0xF25B sample rate time increment low
0xF26B left volume
0xF27B right volume
0xF28B FIFO control (bit 7 = 1 to enable CD-XA decompression)
0xF29B interrupt control (bit 0 = 1 to enable buffer half-full IRQ)
0xF30-0xF37B CD-XA decompression filter constants

Notes: - The filter constants for CD-XA mode are programmable. By default they are the values from the Yellow Book spec: 0x00, 0x00, 0x00, 0x3C, 0xCC, 0x73, 0xC9, 0x62. - The two FIFO spaces do not differentiate between addresses inside of them: a read or write anywhere in 000-0x3FF will read/write the next byte for FIFO A. On the original ASC this was true of normal sample playback mode but not wavetable mode. EASC does not support wavetable mode.