Section Ensoniq

 
SQ|80 Memory Map
Trying to reach me?
The 6809 microprocessor offers an address space of 64kByte. Now, we all know that the SQ|80 uses more than this because the sequencer memory itself is already 64kByte. Therefore the address space is bankswitched to access all the memory. Some areas are layered in a way that multiple memory areas are accessed through the same address space. This mainly is achieved by using the output ports 3 to 1 of the DUART (MC2681). These pins are used as multiplexers for OSROM low (4kB pages) and SEQRAM (8kB pages).
You can reach me by one of the following ways:

buchty@in.tum.de (Office eMail)
rainer@buchty.net (home eMail)
4589601 (ICQ)
+49-89-289-25770 (Office Phone)
+49-89-289-28232 (Office Fax)

Keep CET time zone in mind when trying to contact me "real-time" 

 
Memory Map

 
Address 6809 Access
normal clock
6809 Access
E clock
DOC Access
(TSC=1)
$0000-$1fff OSRAM OSRAM -
$2000-$3fff Cartridge Cartridge Cartridge
$4000-$5fff DOSRAM
SEQRAM (8kB pages)
DOSRAM
SEQRAM (8kB pages)
DOSRAM
SEQRAM (8kB pages)
$6000-$63ff DOC
(226 registers)
- -
$6400-$67ff DUART
(16 registers)
- -
$6800-$6bff AD7524
(CV_MUX)
- -
$6c00-$5dff Mapper
(1 byte, D0 only)
- -
$6e00-$6fff - WD1772
(4 registers)
-
$7000-$7fff OSROM low
(4kB pages)
OSROM low
(4kB pages)
-
$8000-$ffff OSROM high OSROM high -
SQ80 Memory Map

The Mapper is a simple D-type flipflop which determines if DOSRAM or SEQRAM should be mapped to the area $4000 to $5ffff. Which of the two 32kB SEQRAM banks are banked in is then determined by output port 3 of the DUART, whereas ports 2 and 1 determine the 8kB section.

ROMLOW is banked into the memory map in quite the simple manner. Output ports 3 to 1 determine the 4kB page which should be shown at $7000 to $7fff.


 
D/A conversion & multiplexing of analogue voltages
Now for CV_MUX. This is quite a neat thing. As you can see the D/A converter is located between $6800 and $6bff. Quite a lot of space for something which needs only one address, but the Ensoniq engineers used a nice trick to simplify D/A conversion and routing of the converted analogue voltage in one step: The D/A converter has a base address where it can be reached without routing the analogue voltage to any destination, accessed by a (negative) offset the voltage is routed to one of the following destinations:
 
Address Offset Target
$68f8 $00 D/A converter
$68f0 -$08 Filter Frequency (FF)
$68e8 -$10 Filter Resonance (Q)
$68d8 -$20 Final DCA (ENV4)
$68b8 -$40 Panning (PAN)
$6878 -$80 Floppy (Motor/LED on)
D/A conversion & multiplexing

Looking at the sources it seems that the conversion time of the AD7524 was too slow to ensure routing a proper voltage so before each voltage change the data is first written to $68f8 and then again using the respective offset.

As sample&hold multiplexers Ensoniq decided to use SSM2300 which are pin-compatible to a standard 4051 CMOS IC.

What appears here also - although it hasn´t anything to do with D/A conversion - is the Floppy bit which spins up (or down) the floppy motor and lights the floppy LED. You might ask why since the WD1772 offers a motor-on signal and can be programmed for spin-up sequences. I don´t know what went wrong with these but fact is that almost every machine which used the WD1772 drives its very own motor-on signal instead of using the WD1772 native signal.