SID Karte für den Atari 8 Bit ?
1,
2SID Karte für den Atari 8 Bit ?
von TePe » So 30. Jul 2006, 18:23
Hi !
Hätte jemand hier Bock auf ne SID Karte für seinen Atari ?
Die Hardware ist eigentlich nicht sehr schwer zu bauen, SIDs gibs auch genug aus EBay 64ern.
Das einzige was ein wenig doof ist das die 1,76 Mhz entweder zu schnell sind oder um 2 geteilt werden müssen was dann mit 0,88 leicht zu langsam ist für C64-SIDs, aber wäre ein Anfang und vieleicht ist 0,88 garnicht so schlimm je nach SID Tune.
Im Commodore Plus4 wird das wohl auch so in etwa gemacht weil auch dort
Was auch fehlt sind die 9 oder 12 Volt, ich würde einfach die Atari Buchse umlöten am Mainboard und ein Amiga 500 Netzteil nehmen das die 5 und 12 Volt bietet für den 6581 SID.
Eigentlich alles nix wildes.
Was MEGA fehlt ist ein Softwareplayer, der die SID Adressen des C64 auf etwas im Atari verwendbares umlegt. Der SID belegt etwa 32 Bytes im Adressraums des C64 ab $D400. So weit ich weis ist das im Atari belegt.
Sinnvoll wäre so ne SID Karte in meinen Augen nur wenn man einen HVSC Player hätte der darauf dann die im Internet rumliegenden SIDs abspielen täte.
Das Datenblatt für den SID habe ich mal auf meinen Webspace gelegt für euch.
http://tp.homepage.t-online.de/6581.pdf
Also jemand Interresse ?
Re: SID Karte für den Atari 8 Bit ?
von HiassofT » So 30. Jul 2006, 19:44
TePe hat geschrieben:Die Hardware ist eigentlich nicht sehr schwer zu bauen, SIDs gibs auch genug aus EBay 64ern.
Das einzige was ein wenig doof ist das die 1,76 Mhz entweder zu schnell sind oder um 2 geteilt werden müssen was dann mit 0,88 leicht zu langsam ist für C64-SIDs, aber wäre ein Anfang und vieleicht ist 0,88 garnicht so schlimm je nach SID Tune.
Das wird glaube ich doch deutlich komplizierter:
Laut Deinem Datenblatt verträgt der SID maximal 1MHz Takt. Mit den 1.77MHz vom Atari wird's wohl Probleme geben. Ein extra Takt-Generator mit der gleichen Frequenz wie beim C64 wird auch nicht so einfach klappen: Die Schreib/Lese-Zugriffe müssen synchron zum Takt sein und beim Schreiben ist eine minimale Puls-Dauer von 350ns (R/W=low) einzuhalten.
Mit einiger Logik könnte man die Schreib-Zugriffe noch halbwegs hinkriegen, aber Lesezugriffe werden recht kompliziert: Der SID darf sich bis zu 350ns Zeit lassen bis er die Daten auf den Bus legt, das ist wahrscheinlich zu lange für den Atari. Auch da müsste man zwischenspeichern und die Daten dann separat aus dem Buffer lesen.
Also: direkt an den CPU-Bus des Ataris einen SID zu hängen wird kaum möglich sein. Man müsste wohl eine PIA o.ä. zwischenschalten.
so long,
Hias
von CharlieChaplin » So 30. Jul 2006, 20:06
Nun,
dazu gibt es auch ein schönes topic bei atari-age:
"2 projects: C=Sid into Atari XL/XE"
Hier werden neben allg. infos auch zahlreiche Links auf poln. Seiten geliefert (ob die aber heute noch alle funkt. weiß ich nicht). Außerdem stellt dort analmux sein Hardware-Projekt vor, bestehend aus einem PBI-board mit 4 SID`s und jeder Menge anderer Kram (ZRAM,...) und ein paar Bilder und Beschreibungen dazu hat er auch parat...
Siehe hier:
http://www.atariage.com/forums/index.ph ... 511&hl=SID
Allerdings habe ich noch immer keinen Atarianer gesehen, der einen SID im/am Atari hat und mittels Software (fast) alle SID-tunes aus dem Internet abspielen kann. Aber vielleicht gibt es da draußen ja welche und sie haben nur noch nicht auf sich aufmerksam gemacht...
Last not least gibt es mittlerweile eine Art Atari Software-Emulator für den SID oder auch SID-Player für den Pokey-Chip von Swiety/Saint aus Polen... siehe u.a. bei
www.atariarea.histeria.pl im forum oder in den downloads...
-Andreas Magenheimer.
von Beetle » So 30. Jul 2006, 20:16
Also ich baue ja viel in meinem XL ein, aber wohl keinen SID. Ich mag den typischen Sound des Pokey sehr gern.
Gruss,
Stefan
von TePe » So 30. Jul 2006, 21:59
Achtung es soll hier wohlweisslich nicht um pro/contra SID/POKEY gehen !....
Bei 99% aller SID Tunes muss man nicht von dem SID lesen, das könnt man sich zur Not sparen.
Ich dachte mir man könnte einfach den Takt auf 0,88 Mhz teilen und wäre dann immer noch syncron mit dem CPU Takt. Bei einer Plus4 SID Karte wird das so glaub ich gemacht.
Commodore hat den SID übrigens auch bei 2 Mhz CBM Rechnern verbaut, schreiben klappt dann wohl noch nur das lesen geht nicht mehr vom SID aber das wird eh nur von einer handvoll Tunes ausgenutzt.
Eine Software Emulation ist der falsche Weg die 1,76 Mhz 6502 reichen niemals aus die Filter mit zu simulieren.
http://tp.homepage.t-online.de/p1.ogg
Hier könnt ihr mal hören was abseits irgendwelcher Demos möglich ist mit dem Teil. Hab leider ne Masseschleife drin - müsst ihr ignorieren.
TP
von Mathy » Mo 31. Jul 2006, 00:57
Hallo Leute
Ich habe mich mal eine Zeit mit dem C128 befasst, wegen dem Video Chip. Im C128 sein glaub' ich einige Chips, die noch aus dem C64 stammen, und die NICHT mit dem 2 MHZ Takt laufen. Wenn der C128 diese anspricht, wird der Takt runter gesetzt, damit der C128 immer noch mit diese Chips kommunizieren kann.
Tschüß
Mathy
von TePe » Mo 31. Jul 2006, 10:34
Ja das betrifft aber nur den VIC, im 80 Zeichenmodus wird der VDC benutzt der 2 Mhz ab kann.
Aber selbst wenn der SID 2 Mhz abkönnte würde sich die Frage nicht stellen weil dann C64 SID Tunes total daneben klingen würden da von den 2 Mhz die Tonfrequenzen abgeleitet werden durch Teilung.
Also nochmal die Frage wenn man die 1,76 Mhz einfach vor dem SID durch nen Teiler schickt würde es das Problem NICHT lösen ?
TP
von HiassofT » Mo 31. Jul 2006, 14:08
TePe hat geschrieben:JAlso nochmal die Frage wenn man die 1,76 Mhz einfach vor dem SID durch nen Teiler schickt würde es das Problem NICHT lösen ?
Nein, das hilft nicht viel. Die CPU im Atari würde immer noch mit 1.77MHz zugreifen, die Schreib/Lesezyklen wären einfach zu kurz (und in 50% der Fälle auch noch zeitlich falsch, der Zugriff muß dann erfolgen wenn das Takt-Signal auf High liegt).
Um dieses Problem zu umgehen braucht es also noch einiges an zusätzlicher Logik, da stellt sich die Frage ob sich das vom Aufwand her noch lohnt.
Die einzig sinnvolle Variante wäre meiner Meinung nach, den SID mit der exakt gleichen Frequenz wie im C64 zu betreiben, wenn alle Songs geändert werden müssen ist das nicht wirklich hilfreich. Ich kenne den SID nicht genau, aber eine unterschiedliche Taktfrequenz könnte evtl. auch die Filter etc. beeinflussen...
so long,
Hias
von TePe » Mo 31. Jul 2006, 23:39
Ne die Filter intressiert das nicht sonderlich, die sind völlig analog.
Die 1 Mhz wirken sich nur auf die Oszilatoren auf, statt 220 Hz hat man bei 1,76 dann 387 usw...
Ich hab mir das Datenblatt zum (6582) 8580 angesehen, der ist ja nach einem anderen Herstellungsverfahren gebaut.
http://tp.homepage.t-online.de/6582.pdf
Mir scheint der würde bis 3 Mhz funktionieren !!!
Welche Adresse könnte man statt $D400 eigentlich im Atari benutzen ?
TP
von HiassofT » Di 1. Aug 2006, 00:31
Hi!
TePe hat geschrieben:Ne die Filter intressiert das nicht sonderlich, die sind völlig analog.
Die 1 Mhz wirken sich nur auf die Oszilatoren auf, statt 220 Hz hat man bei 1,76 dann 387 usw...
Ah, OK. So wie ich das sehe, muß man dann also nur die Werte für die Oszillatoren und die Hüllkurvengeneratoren (ADSR) anpassen.
http://tp.homepage.t-online.de/6582.pdf
Mir scheint der würde bis 3 Mhz funktionieren !!!
Stimmt, das sieht deutlich besser aus :-)
Welche Adresse könnte man statt $D400 eigentlich im Atari benutzen ?
Einfachste Lösung: den 6582 auf eine Modul-Platine setzen und ein externes +9V Netzteil dazu. Am Modulschacht liegen schon alle Signale an (PHI2, R/W, A0..A7, D0..D7), die CCTL Leitung einfach mit /CS am SID verbinden. Der SID kann dann unter $D5xx angesprochen werden.
so long,
Hias
von Mathy » Di 1. Aug 2006, 02:40
Hallo Hias, Leute
HiassofT hat geschrieben:... die CCTL Leitung einfach mit /CS am SID verbinden. Der SID kann dann unter $D5xx angesprochen werden.
Und noch ein Modul das den ganzen $D5xx Bereich belegt. So ein Unsinn. Am besten man sucht sich im Netz die Adressen aus, die schon benutzt werden, und legt sein Modul auf einen Bereich, der nicht von anderen Modulen benutzt wird. Damit's dann auch mit den alten OSS Modulen funktioniert, gleich zwei mal die Anzahl der Adressen nehmen, die man eigentlich nur braucht. Den die OSS Module (Mac/65, Action!, Basic XL und Basic XE, etc.) codieren leider nur das untere Nibble (untere 4 Bits) aus und reagieren deswegen sonst zu schnell. Im Internet bitte suchen nach das File CARTCON.TXT von John Picken.
Tschüß
Mathy
von HiassofT » Di 1. Aug 2006, 08:13
Hallo Mathy!
Mathy hat geschrieben:Und noch ein Modul das den ganzen $D5xx Bereich belegt. So ein Unsinn. Am besten man sucht sich im Netz die Adressen aus, die schon benutzt werden, und legt sein Modul auf einen Bereich, der nicht von anderen Modulen benutzt wird.
Sobald es eine "richtige" Erweiterung wird gebe ich Dir völlig recht. Mich stört es auch, daß einige Module (alte MyIDE Cart, USB Cart, ...) den ganzen $D5xx Bereich belegen, obwohl sie nur 2-8 Adressen brauchen - sowas muß nicht sein.
Hier in der Diskussion geht's aber erst mal um ein "proof of concept", das kann man auch als quick-hack so mal schnell testen. Danach kann man sich entscheiden wie's genau aussehen soll.
Der $D5xx Bereich ist leider schon ziemlich voll, das habe ich auch bei der Entwicklung der CartEmu für den Turbo-Freezer gesehen.
$D50x ist von OSS belegt, $D5Ex von SpartaDosX. Die Freezer CartEmu verwendet dann noch $D540-$D57F als BankSelect und $D58x für die CartEmu config. Bei meinem 800XL ist dann auch noch $D5Fx vom internen DebugDisplay belegt.
Den SID könnte man zB nach $D520-$D53F oder $D5A0-$D5BF legen, das sollte halbwegs kompatibel sein.
Idealerweise sollte Software, die den SID verwendet, so weit konfigurierbar (oder einfach neu zu assemblieren) sein, daß auch andere Adressen möglich sind - wenn zB wer eine interne Erweiterung macht und den SID nach $D1xx oder sonst wo hin ($D280 o.ä.) legen will.
Über die am besten geeignete Adresse können wir gerne später noch diskutieren, wenn irgendwer wirklich mal eine Erweiterung gebaut hat :-)
so long,
Hias
von mega-hz » Mi 2. Aug 2006, 01:35
Hi,
ich denke, bevor es noch mehr Erweiterungen gibt,
sollte man erstmal die vorhandenen Chips richtig ausdekodieren!
Damit erreicht man etliches an freien Platz im Adressraum!
So wie ich es mit meiner PIA gemacht habe: Sie ist nur von D300-D303 sichtbar, wenn man es mit ner kleinen Platine und nem GAL für alle Chips so machen würde, hätte man Platz für div. Erweiterungen! Ich würde den Pokey-Bereich dekodieren, nochmal den gleichen Bereich dahinter für nen 2. Pokey und dann z.B. den SID und evt. DA-Wandler...
Es müsste eigentlich nur der 74138 ausgebaut und zu der DekoderPlatine geführt werden, dann hätte man alle Fliegen mit einer Klappe geschlagen!
Ein Programm, welches die SID-Sounds abspielt, müsste noch erstellt werden, bzw. eins, welches die Adressen umbiegt auf den neuen Bereich..
Gruß,
Wolfram
von guus » Mi 2. Aug 2006, 10:49
Hallo Leute,
@Wolfram, gute Idee.
Wenn mann aber so weit geht, dann kann der Decoder auch ein extra Eingang bekommen.
Es ist nicht sehr wahrscheinlich das ein SID zusammen mit andere erweiterungen benützt wird.
So könnte man dan die Addressräme verschieben, abhängig von diesen Eingang.
mfg.
Guus
von TePe » Mi 2. Aug 2006, 19:17
mega-hz hat geschrieben:Hi,
ich denke, bevor es noch mehr Erweiterungen gibt,
sollte man erstmal die vorhandenen Chips richtig ausdekodieren!
Damit erreicht man etliches an freien Platz im Adressraum!
So wie ich es mit meiner PIA gemacht habe: Sie ist nur von D300-D303 sichtbar, wenn man es mit ner kleinen Platine und nem GAL für alle Chips so machen würde, hätte man Platz für div. Erweiterungen! Ich würde den Pokey-Bereich dekodieren, nochmal den gleichen Bereich dahinter für nen 2. Pokey und dann z.B. den SID und evt. DA-Wandler...
Es müsste eigentlich nur der 74138 ausgebaut und zu der DekoderPlatine geführt werden, dann hätte man alle Fliegen mit einer Klappe geschlagen!
Ein Programm, welches die SID-Sounds abspielt, müsste noch erstellt werden, bzw. eins, welches die Adressen umbiegt auf den neuen Bereich..
Gruß,
Wolfram
Ich fürchte das Programm müsste auch die Frequenzen anpassen weil sonnst würde sich das wie hochgepitcht anhören haha.
Wäre sowas machbar, zumindest für zB soundmonitor tunes ?
Ich werd vieleicht mal die Tage den 8580 einfach so "dranklatschen" und aus dem C64 Handbuch die BASIC Demos in den Atari XE dann eingeben harhar...
TP
von mega-hz » Mi 2. Aug 2006, 19:50
@guus:
ich denke mal, es sind doch schon recht viele Leute, die (wenn sie den SID einbauen möchten) auch schon mehrere Erweiterungen haben!
Mit der Ausdekodierung ist eher ein eigenes Thema,
nen Eingang sollte man evt. für "Kompatiblität" machen,
falls es tatsächlich ein Programm gibt, welches die gespiegelten Adressen benutzt!
Man könnte auch ein kleines DIP-Schalter-Board machen und so sehr flexibel mit der Adressvergabe sein!
Gruß,
Wolfram.
von HiassofT » Mi 2. Aug 2006, 21:09
mega-hz hat geschrieben:nen Eingang sollte man evt. für "Kompatiblität" machen,
falls es tatsächlich ein Programm gibt, welches die gespiegelten Adressen benutzt!
Gute Idee, daran habe ich auch gerade eben gedacht. Wenn ich mich richtig erinnere (ist schon wieder knapp 20 Jahre her...) macht das Leader Board Golf. Zum Spielen muß an einem Joystick-Port ein Dongle stecken, für die Abfrage werden mehere (gespiegelte) PIA-Adressen benutzt. War damals eines der ersten Programme, die ich mit dem Freezer untersucht hatte.
Man könnte auch ein kleines DIP-Schalter-Board machen und so sehr flexibel mit der Adressvergabe sein!
Auch eine gute Idee!
Oder wir machen gleich eine per Software steuerbare Config mit Enumerator und Resourcenzuweisung so wie bei ISA PnP oder PCI :-)
so long,
Hias
Gruß,
Wolfram.[/quote]
von TePe » Do 3. Aug 2006, 14:34
ES LÄUFT !!!!!
http://tp.homepage.t-online.de/xl/gong.avi
Die SID Basisadresse ist statt bei D400 bei D500
Wie zu erwarten ist die Tonhöhe um 1,76 nach oben verschoben, sollte aber nicht so schlimm sein da der SID ja die Frequenz mit 16 Bit Genauigkeit für die 3 Kanäle steuern kann.
Leider ist wohl der Syntax bei Atari Basic etwas anders als bei Commodore Basic so das vieles 1 zu 1 nicht läuft und ich bin eher der Software Dau...
Gibt es eigentlich ne Möglichkeit ASCII Texte als Basic Programme zu importieren ? Würde ne Menge tipperei sparen.
TP
von cas » Do 3. Aug 2006, 14:57
TePe hat geschrieben:Gibt es eigentlich ne Möglichkeit ASCII Texte als Basic Programme zu importieren ? Würde ne Menge tipperei sparen.
Klar, wenn das Basic Programm als ATASCII Text vorliegt, kann es mittels 'ENTER "D:PROGRAM.TXT"' eingelesen werden. Das ist dann wie eintippen, nur schneller

Ciao
Carsten
von TePe » Do 3. Aug 2006, 15:25
Kann jemand das Programm hier mal auf Syntaxfehler abklopfen ?
http://tp.homepage.t-online.de/basic.txt
TP
1,
2