Nie wiem co sie dzieje z projektem SIDa do Atari ale jesli jest sens to robic  to podsune kilka schematow

schemat blokowy  http://www.djlarry.webpark.pl/sid_port_1.jpgi schemat ideowy
a jesli nie ma sensu montowac SIDa no to moze tak by dolozyc analogowy filtr na zewnątrz sterowany napięciowo  tak jak to wymyslili do duzego ATARI http://dropdabomb.org/stu/ymixer/
Osobiscie jestem za tą opcją by dodac analogowego filingu :) dzwiekom z POKEYów lub  tym bardziej z "covox'ów"

http://www.djlarry.webpark.pl/atari_vcf.jpg
Envelope Folover  - czyli detektor obwiedni , zdejmuje z dzwięku Atari obwiednie glosnosci i nia steruje częstotliwoscią filtra VCF
która dodatkowo mozna modulowac poprzez LFO czyli generator przebiegów wolnozmiennych Sama obwiednia tez moze byc zmodyfikowana czyli czasy jej narastania , opadania , podtrzymania i wybrzmiewania .
PS: cale to rozwiązanie dopiero ma sens przy ATARYnce rozbudowanej do 2 POKEYow i np covoxa gdzie tylko jedno wyjscie sie kieruje na filtr np symulując bas TB 303

2

jezeli dobrze licze to w tym przypadku kilka znaczy jeden?  ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

3

jellonek ja jeszcze nie skonczylem edytowac posta:)

4

wow, nowy elektronik nam sie narodzil, radujcie sie bo oto nadchodzi :)

albo teoretyk ;) , teraz tylko przekuc to w czyn

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

5

:]
jest drobny problem
sid chodzi z zawrotna predkoscia 1mhz, atari troche szybciej

przechodze na tumiwisizm

6

no wlasnie... schemat jest z c64 (1mhz)

http://atari.pl/hsc/ad.php?i=1.

7

pewien kolega od gumi jagod chwalil sie ze podpial sid do katarynki i to ladnych pare lat temu
chwalil sie tez ze przeskoczyl najwiekszy z problemow - taktowanie, choc ciut ciezko mi
uwierzyc puki schematow nie zobacze

no wlasniem - moze ktos zna jakis skuteczniejszy sposob nekania, moje na niego nie dzialajom :rolleyes:


ja jeszcze nie skonczylem edytowac posta:)

znaczy sie zostales przylapany na goracym uczynku  :mrgreen:

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

8

:]
jest drobny problem
sid chodzi z zawrotna predkoscia 1mhz, atari troche szybciej

a czy nie by mozna sida taktowac 1/2 czestotliwosci procka?

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

9

JELON: słuchaj ..większość z nas słyszała tego sida na własne uszy na Quaście .... ile jeszcze razy chłopie będziesz mówił o tym że Gumi podpiął SIDa.

Oczywiście, że podpiął, bo słyszałem to jeszcze mieszkając w Lublinie.

A najlepiej to sobie w sygnaturze wstaw ten teks o SIDzie Gumiego.

No offence.

All I hear is the sound of me falling on the ground

10

tatqoo: luzik, przyjedz na piwo bo cos nerwowy sie robisz :)

11

a czy nie by mozna sida taktowac 1/2 czestotliwosci procka?

Tu nie do konca o to chodzi. Oczywiscie to wydaje sie najbajdziej rozsadnym rozwiazaniem, ale jest tu pewnien szczegół ;) Przy taktowaniu SID'a inna czestotliwoscia zmienia sie rowniez czestotliwosc jego generatorów. Wszystkie SID'y dostepne w sieci nalezalo by przerobic poprwiajac tablice czestotliwosci w playerach lub dodac 12-bitowe tablice konwersji czestotliwosci :) Ale nie o to nam przecież chodzi ;)

Pierwsza wersja slight-sida którą miałem podpiętą do ATARI była własnie tak zrealizowana. Ale przerabianie tysięcy gotowych SID'ow byłoby bezsensowne.

Wiec sprawę trzeba zrobić tak aby SID był taktowany swoją częstotliwością 1MHz aby zachować tą samą czestotliwość pracy SID'a. Niestety magistrala SID'a również wtedy pracuje na częstotliwości 1MHz i zapisy przez ATARI dokonywane z czestotliwością 1.773447 będą zupełnie nie trafione :)

Można zrealizowac to na dwa sposoby.

#1) łatwiejszy w realizacji ale trudniejszy dla wykonania przez normalnych użytkowników/pasjonatów ATARI. Mówię o wykorzystaniu jakiegoś mikrokontrolera z jednej strony podpiętego pod szynę ATARI, natomiast z drugiej strony będzie miał podpiętego SID'a. Całość będzie taktowana np. wielokrotnością 1MHz. SID będzie pracował sobie np. 1MHz, a mikrokontroler np. 10MHz. Będzie przechwytywał zapisy z ATARI, buforował chwile ;) a potem zapisywał do SID'a. Można wykorztać funkcję  PSP z MCU Microchip, nadaje się idealnie do tego. (zresztą tak jak zaproponował Electron). Do zaimplementowania w parę dni.

#2) sposób trudniejszy w realizacji projektowej, ale łatwiejszy do zmontowania dla szarego użytkownika. Nie wykorzystujemy żadnej logiki programowalnej (CPLD, procków, itd.). Opieramy się tylko na standardownych ukłdach (TTL, CMOS). I własnie tak jest zrealizowany SLIGHT SID. Bazuje on na tym iż ATARI i tak nie zapisze częściej niż dwa razy w ciągu 1MHz ;) Mam dwa 1 bajtowe zatrzaski. jeden buforuje adres, drugi dane z szyny atari. W momencie gdy przychodzi opadająca zbocze 1MHz zegara taktującego SID'a owe dane zostają do niego wpisane.

pozdrawiam
Seban/SLIGHT

12

a czy nie by mozna sida taktowac 1/2 czestotliwosci procka?

Tu nie do konca o to chodzi. Oczywiscie to wydaje sie najbajdziej rozsadnym rozwiazaniem, ale jest tu pewnien szczegół ;) Przy taktowaniu SID'a inna czestotliwoscia zmienia sie rowniez czestotliwosc jego generatorów. Wszystkie SID'y dostepne w sieci nalezalo by przerobic poprwiajac tablice czestotliwosci w playerach lub dodac 12-bitowe tablice konwersji czestotliwosci :) Ale nie o to nam przecież chodzi ;)

zalozylem ze sluchaczowi nie bedzie przeszkadzal dzwiek SID'a obnizony o pol tonu :)

...

#2) sposób trudniejszy w realizacji projektowej, ale łatwiejszy do zmontowania dla szarego użytkownika. Nie wykorzystujemy żadnej logiki programowalnej (CPLD, procków, itd.). Opieramy się tylko na standardownych ukłdach (TTL, CMOS). I własnie tak jest zrealizowany SLIGHT SID. Bazuje on na tym iż ATARI i tak nie zapisze częściej niż dwa razy w ciągu 1MHz ;) Mam dwa 1 bajtowe zatrzaski. jeden buforuje adres, drugi dane z szyny atari. W momencie gdy przychodzi opadająca zbocze 1MHz zegara taktującego SID'a owe dane zostają do niego wpisane.
...

czyli taki jednobajtowy FIFO :)

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

13

I własnie tak jest zrealizowany SLIGHT SID. Bazuje on na tym iż ATARI i tak nie zapisze częściej niż dwa razy w ciągu 1MHz ;) Mam dwa 1 bajtowe zatrzaski. jeden buforuje adres, drugi dane z szyny atari. W momencie gdy przychodzi opadająca zbocze 1MHz zegara taktującego SID'a owe dane zostają do niego wpisane.

Fajnie. Czy SLIGHT moze udostepnic schemat SLIGHT SID ?

http://atari.pl/hsc/ad.php?i=1.

14

zalozylem ze sluchaczowi nie bedzie przeszkadzal dzwiek SID'a obnizony o pol tonu :).

A jednak :) to słychać :)

A tak btw, zawsze się zastanawiałem jak to jest w ATARI ST, tam procek ma 8MHz, a AY jest taktowany chyba 2MHz, jak wyglądają zapisy do układu AY z punktu widzenia procesora ;) Przecież moge zrobić parę zapisów do jego rejestrów i on nawet ich nie zobaczy ;) Czy może procek jest wstrzymywany na czas zapisu do AY???


czyli taki jednobajtowy FIFO :)

Dokładnie tak, tyle że jeszcze trzeba zapanować na ChipSelectem ;) i odpowiedniej chwili go wygnerować dla SID'a. A ponieważ nie wolno dopuścić wieloktornego zapisu tej samej wartości do SID'a... i już mówię dlaczego, np. wpis do danego rejestru startuje gen. obwiedni, a ponowny wpis powoduje jego restart. W momencie dwukrotnego zapisu tej samej wartości may kiszkę. Prote playery działają jednak te bardziej zakręcone już się syfią :(

pozdrawiam
Seban/SLIGHT

15

A tak btw, zawsze się zastanawiałem jak to jest w ATARI ST, tam procek ma 8MHz, a AY jest taktowany chyba 2MHz, jak wyglądają zapisy do układu AY z punktu widzenia procesora ;) Przecież moge zrobić parę zapisów do jego rejestrów i on nawet ich nie zobaczy ;) Czy może procek jest wstrzymywany na czas zapisu do AY???

szczegolow nie znam ale poprzez zmiane glosnosci kanalow mozna odtwarzac sample z max  czestotliwoscia 60kHz

i jeszcze jedno

prawdopodobnie istnieje jakis bufor pomiedzy YM a CPU albo YM sam buforuje dane poniewaz korzystajac z SHADOW REGISTERS YM mozna jednym rozkazem MOVEP.L zapisac dwie porcje danych

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

16

Fajnie. Czy SLIGHT moze udostepnic schemat SLIGHT SID ?

Chciałem to zrobić, jak wszytsko dogram na 100%. W chwili obecnej nie mam zbyt dużo wolnego czasu... przez co zaraz zginę śmiercią tragiczną posterzelony z jakiejś dubeltuwy przez STRYKER'a ;) Bo on już się strasznie niecierpliwi ;)

Mam jeszcze jeden problem do rozwiązania, jest jedna sytuacja w której zapis do SID'a mi się "wali". Chodzi o moment gdy ATARI zapisze mi tuż przed opadającym zboczem zegera 1MHz. Wtedy wartość która powinna być wpisana do SID'a idzie sobie w kosmos :( czego efetem jest najczęściej słyszalne "pyknięcie". Nie miałem zbyt wiele czasu na poprawki. Nie chciałbym udostępniać schematu bubla... bo inaczej tego nazwać nie mogę. Najgorsze jest to że zrobiłem sobie do tego płytki. Bo myślałem iż efekt pyknięcia jest spowodowany przekłamaniami na magistrali danych. Winą wtedy obarczyłem niechlujnie zmontowany prototyp na płytce uniwersalnej (długie przewody od magistali, itp.)

Także jak tylko zrobię poprawki i wykonam nowe PCB i sprawdzę że wszystko działa na 100% to bez problemu to udostępniam.

pozdrawiam
Seban/SLIGHT

17

seban: rw masz buforowany czy ma opoznione zbocze dodatnie?
jelonek: wbij sobie do lba ze gumi nie jest ci nic winien, a juz napewno niczego nie musi ci udowadniac - najpierw dorosnij do czyjegos poziomu, pozniej bedziesz z nim polemizowal

przechodze na tumiwisizm

18

zawsze się zastanawiałem jak to jest w ATARI ST, tam procek ma 8MHz, a AY jest taktowany chyba 2MHz, jak wyglądają zapisy do układu AY z punktu widzenia procesora

Motorola 68000 ma asynchroniczną magistralę. Cytuję:

"Bus control signals indicate the beginning of the (bus) cycle, the address space, the size of the transfer, and the type of the cycle. The selected device then controls the length of the cycle with the signal(s) used to terminate the cycle. Strobe signals, one for the address bus and another for the data bus indicate the validity of the address and provide timing information for the data."

KMK
? HEX$(6670358)

19

seban: rw masz buforowany czy ma opoznione zbocze dodatnie?
jelonek: wbij sobie do lba ze gumi nie jest ci nic winien, a juz napewno niczego nie musi ci udowadniac - najpierw dorosnij do czyjegos poziomu, pozniej bedziesz z nim polemizowal

Hej!

O jakim R/~W mówimy? o tym z ATARI czy o tym dla SID'a?
Bo jezeli mówimy od R/~W dla SID'a to poszedłem na łatwiznę ;)
W Slight SID'ie nie ma możliwości czytania z SID'a. Jest tylko zapis.

Zresztą w sidzie są tylko 3 rejestry do odczutu. Dwa z nich to wartości z przetworników A/C wykorzytywanych do pomiaru rezystacji w "paddles". A trrzeci z nich to wartość z generatora obwiedni/szumu.

R/~W jest u mnie podpięte na stałe do GND. (zresztą jak się okazało tak samo jest w pierwszej wesji HardSid'a :D ). Zresztą wersje z odczytem robiłbym już na bardziej specjalizowanych układach. Nie mam pomysłu jak miałby wyglądac odczyt z SID'a przy różnych zegarach i na magistralach i jednej instrukcji LDA $d5xx. Musiałoby to wyglądać inaczej. Np. w dwóch krokach. pierwszym LDA $d5xx sygnalizujemy chęć odczytu a drugim lda $d5xx dostajemy poprawną wartość odczytaną z SID'a. Ja mam dwa niezależnie niesynchronizowane ze sobą generatory (jeden to atarowski FI2, a drugi to 1MHz zegar dla SID'a).

Zasadą którą sie kierowałem to uproszczenie projektu do bulu. Tak jak wspominalem podpisnając jakiś MCU, bardziej zaawansowane CPLD lub FPGA robi się to bez problemu. Tylko teraz skąd normalny użytkownik ma wźciąć sobie takie CPLD, czy inne mikrokontrolery i jeszcze programatory dla nich.

Co prawda mam dostęp do narzęci Microchip'owych i mógłbym zrobić to na PIC'u z PSP. Tylko jak inni by sobie poradzili z programowaniem tego i zdobywaniem piców? Jacyś chętni na wersje SID'ową na PIC'u?

gretz
Seban/SLIGHT

20

pewnie, podepnij pod inne rejestry niz na stronie $d5, uruchom produkcje i niech wszystko stanie sie blue

http://atari.pl/hsc/ad.php?i=1.

21

pewien kolega od gumi jagod chwalil sie ze podpial sid do katarynki i to ladnych pare lat temu
chwalil sie tez ze przeskoczyl najwiekszy z problemow - taktowanie, choc ciut ciezko mi
uwierzyc puki schematow nie zobacze

"...błogosławieni Ci co nie widzieli a uwierzyli..."

JA WIDZIAŁEM I SŁYSZAŁEM ! QuaST Party - Orneta 1.VIII.1996, na 1 piętrze (pomieszczenie do którego wchodzi się przez taras nad główną salą).   Pamiętam, że pytałem o szczegóły (np. dowiedziałem się, że Gumi pociągnął +12 V ze stacji) i że Gumi odpalał przede wszystkim muzyczki, które były konwertowane przez Hardów (oczywiście Gumi puszczał je w wersji oryginalnej) - aha, i nie dam sobie ręki uciąć, ale wydaje mi się (tego nie jestem pewien) ale Gumi chyba zrobił dzielenie częstotliwości zegara atarki /2 - ale jak zaznaczam, TEGO NIE JESTEM pewien... to było prawie 9 lat temu ;)

22

wersja na mikrokontrolerze PIC bylaby calkiem na miejscu .Szczegolnie jesli opracowales na latwo dostępnym i tanim 16f84 a nie 16f877 jak w midiSIDbox'ie .Zaprogramowanie jego to pryszcz .
Jestem za rozwiązaniem z wlasnym rezonatorem kwarcowym 1MHz
Seban jesli nie masz czasu to i tak warto bys udostępnil schamaty w tej postaci w jakiej sa Po tych 9 latach :D
Niech inni nad tym tez pracują równolegle
Wkoncu  moc tkwi w równoleglym przetwarzaniu:D

23

tia co dwie glowy to nie jedna

Patchboy bedzie robil a Seban bedzie tylko mowil co ma robic :)

[ Dodano: Wto Kwi 26, 2005 5:21 pm ]
p.s.

a jak wyglada sprawa obciazenie CPU Atari podczas odtwarzanie SID'ow ?

tak jak np. z MPT ? bo jak tak to luzik :)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

24

a jak wyglada sprawa obciazenie CPU Atari podczas odtwarzanie SID'ow ? tak jak np. z MPT ? bo jak tak to luzik :)

i tu właśnie jest ciekawostka ;) Myślałem że C64 jest sporo wolniejsze od atari :) wiec myślałem iż Player z C64 będzie się wykonywał nieco szybciej na ATARI niż na C64. Jakież było moje zdziwienie jak zobaczyłem iż player z C64 wykonuje się prawie tyle samo na ATARI co na C64 (no może minimalnie szybciej). Badanie przeprowadzałem przy standardowym ekranie z C64, playera odpalałem w momecie zaczęcie rysowania przez VIC'a pierwszej lini tekstowej. Podobnie na atari (standarowy ekran ATARI w trybie ANTIC $02).

Próbowałem poszukiwać wyjaśnienia całej sytuacji. Pytałem znających się trochę bardziej ode mnie na C64 jak to jest że ekran praktycznie nie spowalnia C64. I co się okazało... otóż podobno VIC z C64 to bardzo sprytny układ ;) Nie haltuje on CPU tak jak ANTIC. Pobieranie danych z pamięci i odświeżanie tejże wykonuje w przeciwfazie do CPU. CPU z C64 pobiera dane z pamięci na narastającym zboczu sygnału zegarowego a VIC na opadającym. Także nie ma możliwości aby CPU i VIC zarządały danych w tym samym momencie z RAMu. Tak wiec pobieranie danych z pamięci przez VIC'a nie spowalnia CPU.

Tak do końca nie wiem czy to prawda bo nie miał mi kto potwierdzić tych informacji. Jednak zakładam iż jeżeli player z C64 odpalony na ATARI wykonuje się podobną ilość czasu to oznacza to tylko jedno... VIC nie wstrzymuje 6510, albo nie spowalnia go w takim stopniu jak ANTIC spowalnia 6502.

Ale wracając do czasu wykonaia się player'a. Z założenia Playery z C64 powinny się wykonywać o wiele krócej. SID ma własny generator obwiedni wiec Player zupełnie się tym nie powinien zajmować. A jednak playery z C64 mają porównywalne czasy wykoania z playerami z ATARI. Są i player y które zajmują dwie linie ekranowe, jednak są i takie rozrośnięte kobyły co potrafią zabrać z 70 lini rastrowych ;).

Zaczołem się przyglądać playerom z C64 i dwie rzeczy rzuciły się od razu w oczy. Po pierwsze 12-bitowa precyzja SID'a wymusza trochę innego rodzaju kod. Po drugie część świetnych muzyków z C64 sama pisze/pisała playery i jeżeli ktoś jest dobrym muzykiem nie oznaczało iż był także rewelacyjnym koderem. Cześć playerów po prostu jest napisana tak aby spełniała swoje "zadanie brzmieniowe". One nia muszą być szybkie, ważne  żeby fajnie brzmiały. Cześć muzyków nie przywiązywała po prostu wagi co do jakości kodu playera. Inni nie potrafili sobie napisać szybkiego playera. 

Analizowałem kilka playerów i tak jak mówiłem są takie które wykonują się 2 linie i są prawdziwe kobyły ;) Jednak średni jest to około 32-48 lini rastrowych (przy wyłączonym ekranie na ATARI). Zresztą możecie zobaczyć to w SidPlay'u świetego. Tam jest pokazany czas wykoania Player'a z C64 ;).

Moim zdaniem średnio wchodzi nieco krócej niż MPT. Ale jest innna wada niektórych playerów. Średni czas wykoania jest bardzo krótki, ale w momecie gdy taki player musi pobrać dane dla kolejnych patternów zaczyna długo się wykonywać.

Zresztą specyfika muzyki SID'owej jest zupełnie inna niż POKEY'owej. SID'owcy mają zupełnie inne efekty. Często playery potrafią robić płynne przejścia z jednej nuty do drugiej. To wymusza też nieco inny styl pisania playera.

eehhhh... co ja zresztą bredzę... już chyba wystrarczająco dużo natrułem ;)

pozdrawiam
Seban/SLIGHT

25

seban: cykl odczytu mozna rozciagnac w 6502 bez literki c, a pytalem o rw bo mi to nie dzialalo gdy mialem podpiete je na stale do masy
no ale do rzeczy - skoro problem wystepuje przy zbyt bliskim zboczu 02 w stosunku do reszty to pytanie jak wyglada u ciebie zatrzaskiwanie adresu?
jesli bylo by zatrzasniete na stale i zdefiniowane do nastepnego zapisu wartosci do sid'a to zapis zalapalby sie na nastepny cykl zegarowy
ale cos mi sie widzi ze tak nie jest, wiec jak wyglada u ciebie zatrzaskiwanie adresu?
co do odczytu w 01 to sprawdz po prostu czy taki sygnal jest do vic'a podlaczony
w atarce nie jest podlaczony praktycznie nigdzie

przechodze na tumiwisizm