The Amdrum is an 8bit D/A converter (hardware) with drumkit (software), made by the British company Cheetah.
Quality of the playback was nice, considering the time and price. The samples were read from the suplied tapes. There were serveral tapes with different themes. Along with the Amdrum came a sequencing program. It was possible to copy the samples to disc, but the sequencing program had to be patched! Amdrum was probably Cheetahs version of the SpecDrum (As revealed on the PCB "AMSTRAD SPECDRUM"). Aside of Cheetahs own sequencer you can use some commands of the RSX ROM for LambdaSpeak III to use the Amdrum.
Now, thanks to Jose Leandro, the hardware specialist of the spectrum, with his famous page:
We can know more about this hardware.
- Uses I/O Port FFxxh (Write only), ie. only /IORQ, /WR, A15-A8 are decoded. A7..A0 are not decoded, and /RD isn't used, too.
- Port usage: Write 8bit unsigned sample data to Port FFxxh. The D/A converter is mono and has only one channel (mixing multiple channels is to be done by software).
- After booting, the Amdrum software first sets port [FF80h]=80h. Emulators can use that feature to detect Amdrum software - and, after [FF80h]=80h was detected, map the whole range of ports FF00h..FFFFh to the Amdrum.
- During operation, the Amdrum software uses port FFxxh. Where "xx" is garbage coming from the Amdrums keyboard scanning routine (see disassembly below).
The five chips on the single-sided PCB are:
|74LS30N||Single 8-input NAND||Port decoding, /ADDR_MATCH=LOW when A8..A15 all HIGH|
|74LS32N||Quad 2-input OR||Port decoding, /DAC_WRITE when /ADDR_MATCH, /IORQ, /WR all LOW|
|SN74LS04N||Hex Inverters||Charge pump circuit, used to create negative voltage rail for the op amp|
|TL064CDP||Quad Operational Amplifier||Buffer and low pass filter|
|Ferranti ZN428E-8||8bit DAC||mono one-channel 8bit D/A converter (unsigned samples)|
Partial dissassembly of player
exx ld a,(bc) ;get channel 1 add a,(hl) ;add channel 2 ex de,hl add a,(hl) ;add channel 3 inc hl ex de,hl inc bc add a,80h ;add bias (signed to unsigned) inc hl exx out (c),a ;out [FFxxh] with C=whatever ld b,0f6h in a,(c) ld c,a ;C=PIO Port C (keyb row, tape, psg control) xor 05h ;five ??? out (c),a ld a,0f4h in a,(66h) ld (404eh),a out (c),c ... ;something missing here? ld b,0ffh nop nop nop exx ld a,(bc) ;get channel 1 add a,(hl) ;add channel 2 ex de,hl add a,(hl) ;add channel 3 inc hl ex de,hl inc bc add a,80h ;add bias (signed to unsigned) inc hl exx out (c),a ;out [FFxxh] with xx=garbage (above PIO Port C value)
Reviews / Commercials
Review of the Amdrum in Amstrad Computer User
|Title||Front Covertape||Back Covertape||Tape Side A||Tape Side B|
Other playback devices
AmDrum on Amstrad CPC (emulated with JavaCPC)
A presentation(from around 1985) of the ZX Spectrum version of the Amdrum(Specdrum), also mention of the upcomming Amstrad CPC version
- Amdrum.zip (CDT for Emulators)
- Amdrum Afro Kit.zip (CDT for Emulators)
- Amdrum Electro Kit.zip (CDT for Emulators)
- Amdrum Latin Kit.zip (CDT for Emulators)
- Amdrum (Eagle).zip (Amdrum files for Eagle)