back to buchty.net
Section Ensoniq
back to Ensoniq heaven

 
SQ80 Memory Map
Trying to reach me?
The 6809 microprocessor offers an address space of 64kByte. Now, we all know that the SQ80 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). Sad but true... These days one really calls for spam when publishing an email address on a website. But what the heck.

rainer@buchty.net

If you expect an answer please send plain text emails. HTML-formatted mails will be dumped automatically.


 
Memory Map

 
Address 6809 Access
unrestricted
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-$6dff - 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.