Geschichte
sDRUM
1997 begann die Entwicklung des modular aufgebauten „Sample-Drummers“.
In unglaublicher, mühseliger Kleinarbeit, unvorstellbarem Enthusiasmus und Erfinder-Reichtum wurde ein System entwickelt, welches zur Fertigung einer Kleinserie nötig war.
- Assembler (in Turbo Pascal, siehe am Ende der Beschreibung)
- EPROM-Simulator („RAM-Programmer“, am PC-LPT-Port)
- erste Testprogramme, - zuerst völlig abstrakt im Urlaub auf Papier gekritzelt, "wie es gehen könnte" -
- 8031 und 8051 Testplatinen
-
Spannrahmen für Siebdruck,
Hilfskonstruktionen zur Montage
- Layouts für Frontplatten, Gerätebeschriftung
- Designer „Typen-Schild“ aus CD's!
- Stromlaufpläne, Testschaltungen, Versuchsanordnungen
- Platinen-Layouts
- komfortable Sample-Transfer-Software für PC in DOS „TransX“ und für Windows "Wtrans"
EPROM-Simulator(en) und Test-Boards
Für die Programmier- ungebung war unbedingt ein EPROM-Simulator nötig. Dieser wurde in verschiedenen Versionen mit batteriegepufferten RAM's aufgebaut.
Die Transfer-Software vom PC zum RAM-Simulator wurde unter Pascal entwickelt. Einige Editor-Funktionen konnten hervorragend genutzt werden. "F9" startete im Hintergrund die Übersetzung und
Ausführung eines weiteren Pascal-Programmes, welches den zuvor gespeicherten Quelltext als Parameter an das Assemblerprogramm übergab und dieses aufruf. Der vom Assembler ausgegebene Binärcode
wurde dann über LPT auf den Eprom-Simulator gesendet. Über einen weiteren LPT-Port wurde der 8051 resettet und das Programm auf dem 8051 mit den zuvor im Eprom-Simulator erhaltenen Daten
gestartet.
Zu sehen: Registerplatine, Versuchs-Tastatur-Platine, RAM-Programmer, EPROM-Simulator, CPU-Testplatine.
8031-Testboard:
Die ersten Versuche liefen auf einer kleinen 8031-Testplatine. Kurz darauf wurde „der große Bruder“ 80535 bestellt und unter die Lupe genommen: Register, Interrupts, Ports, AD-Wandler - alles
optimal vorhanden. (Heute 2009 bedauere ich, dass es zu der Zeit weder USB noch ausreichend Speicher gab... Die eingesetzten 1 Megabit-sRAMs waren damals die größten Speicher, die im Handel
erschwinglich waren).
Die ersten Testprogramme:
- „Setze eine LED am Ausgang nach Reset“ ! Hurra! Geht! Dann:
- „lasse eine LED blinken“, danach:
- „Setze eine LED, wenn ein Eingang gesetzt wird“ ... bis hin zu
- „Starte das Abspielen eines Pattern bei Eintreffen eines MIDI-Start-Command per Interrupt“... krass.
Dazwischen lagen viele lange Nächte: AD-Wandlung, Aussteuerungsanzeige, Kommunikation über den LPT-Port, DIN-Sync-Interface... jeden Tag ein neues Ziel.
vom Allerersten Sdrum
bis zur Kleinserie, die
Unikate darstellen
Bestückung der Platinen:
In geduldiger Handarbeit wurden über 30.000 Anschlussdrähtchen abgekantet, geschnitten, eingefädelt, verlötet, gerade gebogen, kontrolliert....
Handbestückung: 80 Sample-Module, 80 Analog-Filter-Module
- Prozessor-Platine
- Grundplatine (Bus-Register und Analogteil)
- Netzteil
- Tatstatur-Platine
- Taktgenerator VCO - Platine
Bilder-Serie: Bestückung, Module, Aufbau, Tests
Prototyp
noch völlig handmade
Prototyp
mit handgefertigten, durchkontaktierten Platinen, per Spraydose und Abklebeband lackiertem Gehäuse...
danach die "Kleinserie" mit schwarz-matter Einbrenn-Lackierung, eloxierten Modulblechen, UV-Siebdruck-Beschriftung
Die ersten Platinen wurden manuell hergestellt – „Layout-Film“ mit Laser-Drucker gedruckt, belichtet, geätzt, gebohrt, Durchkontaktierungen per Hand gesetzt, bestückt, … korrigiert.
Für die Serien-Produktion wurden durchkontaktierte Platinen in Auftrag gegeben und per Hand bestückt. Die Platinen verfügten über keine Lötstopp-Maske und hatten überall versteckte Brücken durch
Zinnspritzer der Hot-Air-Verzinnung. Die Suche kostete viel Zeit und Mühe. Kurzschlüsse zwischen Daten- und Adressleitungen lassen sich schwer analysieren.
Die Frontplatten-Beschriftung erfolgte über ein abenteuerliches Siebdruck-Verfahren mit UV-härtender Farbe. Gerakelt wurde per Hand, gehärtet in einer CD-Siebdruckmaschine.
Die ersten 3 Geräte besaßen eloxierte Modulbleche, die folgenden Geräte tragen eine Mercedes-Benz-Metallic-Autolackierung.
(Fotos: Schablonen, Siebrahmen, Justagehilfen)
Ein besonderes HighLight sind die Typenschilder -
Diese dürften in ihrer Herstellung einmalig sein!
Auf jeden Fall ist jedes einzelne ein Unikat, herausgeschnitten aus einer CD. - aus einer Compact Disc, die während ihrer Fertigung in den Prozeßschritten manipuliert wurde.
Auf diese Weise entstanden bunt schillernde Schildchen, die ein zusätzlicher „Hingucker“ sind, jedes mit einer eigenen Seriennummer.
Rückwand mit Power, DIN-SYNC: 1xIN, 2x out, MIDI: IN/OUT/TRHU, Analog-In, Audio Out, LPT-Connector für PC
Ausschnitt Bedienfront
Ausschnitt
Keyboard
Tastatur-Platine
Infos zur Layout - Gestaltung und Frontplatten - Beschriftung
-
Siebdruckrahmen geschraubt, Justage-Vorrichtung zum Positionieren und Fixieren der Druckstücke gebaut
-
Hand-gerakelt, UV-Trocknung in Druckmaschine
-
Adapterrahmen für Tastatur - Platinenbefestigung mit
Laubsäge und Fräsmaschine gefertigt (Konturen fräsen in 5mm Plexigals) - Etiketten-Druck mit Laser HP4L für Sticker
(Gehäuse-Beschriftung an Rückwand) - mehrfach aufgetragene Fluoreszenz-Farbkennzeichnungen in den Kerben der Poti-Wellen!
- erste „blaue LED's“ ! die im Handel verfügbar waren - novum
Modulbank
Tastatur-Front
Register-Platine, Prozessor-Board, Netzteil:
im „Rohbau“
Bestückung PLC
TechDoc:
Schema Sample-Modul:
Tastatur-Belegung
Stromlaufpläne
-
Samplingmodul, Filtermodul, Prozessorplatine, Registerplatine,
Tastaturplatine, Netzteilplatine, VCF-Ergänzung, …
EPROMMer, RAM-Programmer, Testschaltungen(veröffentlichen?)
Layouts
-
Platinen, Fräskonturen, Gehäuseteile, Hilfskonstruktionen
Software
-
TRANSX, wtrans, ass13, ram_prg,
BeschreibungScreenshots
Download
Assembler:
-
eigener Kommandozeilen-Assembler
Der Assembler nutzte den Text-Editor der Turbo-Pascal-Oberfläche, in dem Prozessor-Befehl für Prozessor-Befehl per Hand definiert wurde
(absolute Speicher- und Laufzeit-Optimierung!)Er umfasste Variablen, Konstanten, Sprungbefehle, Fehler-Tests (Sprungweiten etc).
Mit Übersetzung des „Pascal-Textes“, der eigentlich der Assembler-Code war, wurde per F9 ein anderes Pascal-Programm im Hintergrund übersetzt und gestartet, welches eine Routine aufrief, die den fertigen Binärcode des Assembler-Ergebnisses über den Parallel-Port auf einen selbst entwickelten EPROM-Simulator schickte. Über eine extra-LPT-Leitung wurde ein Rest-Befehl am 8031/80535 ausgelöst und das neue Programm gestartet. Damit war eine perfekte Testumgebung gewährleistet: Programm schreiben, F2 speichern, mit F9 in den EPROM-Simulator schicken und das Programm im EMR starten! -
ASS13.EXE, (→ Beschreibung, download)
Auszug aus dem Listing siehe unten
Anwender
Die glücklichen Dresdner Musiker
u.a. AAA Placid Records
weitere Doku-Fotos:
Assembler-Beispiel:
Das ist etwa 1% des Gesamtprogrammes.
Hier habe ich damals jede Zeile im Kopf gehabt! … heute staune ich selber ;-)
Quelltext-Auszug für meinen selbst geschriebenen Assembler im Turbo-Pascal-Editor:
{ Clear-Taste #22 in Pattern-Mode löscht alle Steps
in Kombination mit ta015 }
{ PatternInhalt löschen }
PedClrS: lCall :ta015
jnz :PedS
ret
PedS: mov A Pn ; Patternnummer
anl a b11110000
orl a r2
mov r2 a
mov B #64 ; Umrechnungsfaktor für dph, dpl
mul AB
mov dpth b ; DataPointer-High
mov dptl a ; DP low (Patternanfang)
mov i #64
mov a #0
PCLSt: movx @dptr a
inc dptr
djnz i :PCLSt
{ PatternInfoTabelle rücksetzen }
mov a r2 ; Tastennummer (zu löschendes Pattern der akt. Grp)
mov b #4
mul AB
mov dpth #16 ; 0001.0000:0000.0000 = 4096
mov dptl a
movx a @dptr ; xStep = 16 Schritte
anl a b10000000 ; MacroEnable nicht ändern
orl a #15
movx @dptr a
inc dptr
mov a b00000010
movx @dptr a ; Shuffle-Stärke 0, Roll/Flam-Stärke 2
inc dptr
mov a #0 ; SclPointer auf 4/4
movx @dptr a
inc dptr
{ alte Werte nicht ändern! Sonst Problem bei Macro
mov a Pn ; eigene Patternnummer für First/LastMacPn speichern
anl a b00001111
mov r2 a
swap a
orl a r2
movx @dptr a}
ret