1

wymyslam problem do rozwiazania dla ubiegajacego sie o prace elektronika :D w tym temacie mam (bardzo) wolna reke i ... tu pytanie:

czy podlaczenie sida do atari przez 'interface' na atmega jest interesujacym rozwiazaniem?

gosc bedzie mial na to ok 3 tygodnie. nie oczekuje dzialajacego w 100% rozwiazania, ale po tym okresie kto wie, moze facio pociagnie 'projekt'.

czy to ma sens? jesli tak to wytyczne prosze jak najszybciej bo czas ucieka ;-)

1. rejestry sida od adresu $d220 (powyzej 2xpokey)

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

2

Hej!

Ja wiem że już nie wierzycie iż kiedykolwiek skończę tego Slight SID-a... ale pokażę wam coś:

http://seban.slight.pl/aa/slt_sid_proto_v0.1.jpg

To fotka drugiego montowanego prototypu, pierwszy mam kompletny

Co działa na dziś:

Komunikacja Microchip<->ATARI
Przetwornica StepUP (możliwość ustawienia 9V lub 12V
Komunikacja SID-> MCU Microchip właściwie również zrobiona

pozostaje doszlifowanie softu dla microchipa. Miałem duże plany, np. wykorzystanie tego szybkiego microchipa jako koprocesora który by mógł różne rzeczy liczyć... ale przyznaję się bez bicia... straciłem chęci... ostatnio zajmuję się pierdołami zamiast kończyć ten projekt więc może go puszczę tak jak jest tylko z zaimplementowanym "ring buffer" buforującym dane nadsyłane przez ATARI i wysyłającym co trzeba do SID-a w odpowiednim dla niego czasie.

Ale niech ten gość może ciągnie swoją wersję SID-a na AT-Mega :) Pewnie uda mu się to zrobić wcześniej ode mnie :)

Ja bym w takim razie postulował następujące założenia:

2) asynchroniczna praca SID-a i ATARI, tzn SID chodzi na swoim zegarze, ATARI na swoim :) (to po to aby zachować wysokość granych dźwięków)
3) możliwość zmiany napięć zasilających +9V +12V, oraz przełączenia kondensatorów filtrów (to po to aby można było użyć zarówno starego 6581 jak i nowego 8580)
4) opcjonalna możliwość zamontowania dwóch SIDów :) (stereo power)

pozdrawiam
Seban

3

Cze!

Panowie ale odpowiedzcie dlaczego pchacie między szynę ATARI a SIDa  PICe i Atmele ?

Z projektu SID playera zrobionego przez komodziarzy zza Odry właśnie na atmelu wynika jasno że  wystarczy dekoder adresów + załatwienie odcięcia SIDa od szyny ATARI dla sygnału HALT i właśnie dodatkowe napięcie +9->12V.  Procedury odgrywające muzykę i tak są napisane w kodzie dla 6510/6502 nawet w playerach zrobionych atmelach ? po prostu nasmarowali emulator 6510 ? kod bardzo sympatyczny ale oni po prostu nie mieli do dyspozycji albo nie chcieli używać 6510/6502 jak sami twierdzili.

Generalnie pomysł fajny  i ma sens ? będzie można kanibalizować C64 i zrobić z nich coś przydatnego :)

Pomyśl od razu o 2xSID

Sensowny projekt podłączający Atmela bezpośrednio do szyny ATARI byłby bardziej przydatny ? oczywiście zapis i odczyt z jakiegoś rejestru z $Dxxx.

Przy okazji Seban szacunek :)

4 Ostatnio edytowany przez seban (2008-02-06 12:22:19)

Hej!

Co do pchania MCU... kiedyś o tym pisałem. Głownie chodzi o problemy przy asynchronicznych zegarach SID/ATARI. Nie byłoby to jakimś strasznym problemem ale chciałem zachować możliwość prostego "STA SID_REGISTER", zmieniając tylko odwołania w PLAYER-ach z C64 z $D400 na $D500 bez żadnych poważnych modyfikacji player-ów w miejscach gdzie następowałby zapis do rej. SID-a.

Mam właściwie dwie wersje SlightSID-a:

1) Simple SlightSID - zbudowana przy pomocy paru zatrzasków HCT574 i paru bramek, waliło mi się to okrutnie ze względu na asynchroniczność (to moje założenie iż SID chodzi ze swoim ~0.98MHz a szyna ATARI ze swoim 1,773447MHz. Nie miałem możliwości sprzętowych w tamtych czasach aby to debugować porządnie więc odpuściłem na długi czas....

2) MCU SlightSID - na ideę tego wpadłem jak chciałem zrobić dopalacz Floating Pointów do ATARI. Wziąłem jakiegoś PIC-a serii 18 i podpoiłem przez PSP do szyny ATARI. Zadziałało bez zarzutu wiec postanowiłem dołożyć SID-a... ale potem zmienił mi się stan cywilny, pojawiła się żona... potem dzieciak... i czasu mało... Stryker mnie poganiał, interesował się, dopytywał a ja nie miałem czasu potem chęci aby dociągnąć to do końca.

Ale wracając do SIDów... do ATARI da się go podpiąć bardzo prosto praktycznie z wykorzystaniem naprawdę kilku scalaków, wtedy jest on taktowany synchronicznie do szyny Atari lecz z niższą częstotliwością (około 0,88MHz), co wymaga zmian w Playerach aby zmienić częstotliwości na właściwe. Takie rozwiązanie miał chyba GUMI/TIGHT ale nie do końca wiem bo tylko słyszałem to przez chwilę na jakiejś Ornecie chyba.

Na dzień dzisiejszy wiem jaki błąd robiłem podłączając asynchronicznie Simple SID-a i dało by się go podpiąć bez angażowania MCU. Ale skoro jest już prototyp z MCU to nie chciało mi się do idei SimpleSID wracać :)

pozdrawiam
Seban

5 Ostatnio edytowany przez macgyver (2008-02-06 12:23:05)

xxl: jeżeli mogę coś zasugerować - jak już wrzucać SID-a(SID-y) to od $d280 - z elektronicznego punktu widzenia prościej, a przy okazji zostanie jeszcze trochę przestrzeni adresowej na dodatkowe POKEY-e, tym bardziej, że przymiarki do "czterech POKEY-ów" są już czynione, więc warto pomyśleć o tym, aby rozszerzenia "nie gryzły się".

6

MacGyver: RACJA :) $D280 to dobra IDEA :)

7

Jest jakaś szansa na schemat / opis podłączenia MCU? mam niestety tylko jedną atarynkę i nie mam ochoty puścić jej z dymem - ze względów sentymentalnych :) oczywiście wersja BOX :) kupiona jeszcze w pewexie.

Interesuje mnie możliwość prawidłowej reakcji właśnie na antica i halt ? chce mieć możliwość bezpośredniego dostępu do RAM malucha z zatrzymaniem CPU i prawidłową obsługą obrazu przez ANTICA.

8

phnx: nie do końca rozumiem o co Ci chodzi co ma Antic i HALT wspólnego z podłączaniem MCU do szyny ATARI. Bo w przypadku SID-a to MCU czy logika czekają na zapis danych przez 6502 i w odpowiednim dla SID-a czasie ładują do niego dane zapisane przez ATARI, ATARI nie jest w żaden sposób wstrzymywane w tym momencie, dane są po prostu buforowane przez układ  Z tego co się domyślam ty chyba chcesz aby zewnętrzny MCU miał możliwość zatrzymania 6502 i grzebania po RAM-ie Atari.... tylko w jakim celu? Co chcesz osiągnąć?

pozdrawiam
Seban

9

phnx napisał/a:

Interesuje mnie możliwość prawidłowej reakcji właśnie na antica i halt ? chce mieć możliwość bezpośredniego dostępu do RAM malucha z zatrzymaniem CPU i prawidłową obsługą obrazu przez ANTICA.

tak dobrze to chyba nie ma. nie wiem - nie znam sie, ale gdyby tak bylo mozna sobie zaprojektowac karte procesorowa (dowolny procesor) po czym bootujemy atarke i przekazujemy sterowanie do nowej karty - od tego momentu mamy bebechy atari z nowym procesorem :)

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

10 Ostatnio edytowany przez seban (2008-02-06 13:34:58)

XXL: wydaje mi się to możliwe i to do zrealizowania i to co najmniej na dwa sposoby :)

sposób nr 1) ładujesz w cart nowe CPU + RAM + FLASH dla niego np. do tego ładujesz mu kawałek (np. 8KB) statycznego RAM-u dual-port. Ten CPU w carcie działa sobie 6502 działa niezależnie, np. w obszarze $A000-$BFFF masz tzw. "shared memory" z tym dodatkowym CPU. Nowe CPU może liczyć co chce i przekazywać policzone dane w obszar swój "shared memory" który będzie widoczny przez 6502 w $A000-$BFFF. Ten sposób jest dość prosty do zrealizowania nawet, i jakiś czas już mi chodzi coś takiego po głowie :) Jedyna wada to to iż pamięci statyczne dual port jakie widziałem są drogie :(

sposób 2) można sie pokusić o halt-owanie 6502, tak jak robi to ANTIC (tylko trzeba by sprawdzać kiedy ANTIC haltuje 6502). I podpiąć inny CPU bezpośrednio do szyny danych ATARI (nota bene ten inny CPU również będzie musiał dopuszczać możliwość halt-owania go przez ANTIC). Poza tym chyba 6502 nie może być cały czas halt-owany (nie jest konstrukcją przewidzianą do pracy statycznej), ale tu nie mam zupełnie doświadczenia i trzeba by z Electron-em pogadać bo on już chyba z tym walczył przy okazji VBXE i rozszerzenia RAM-u które zrobił przy okazji VBXE :)

pozdrawiam
Seban

Ja tylko tak wtrącę: czy jest/będzie możliwość wykrycia SlightSIDa przez oprogramowanie?

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

12

Adam Klobukowski napisał/a:

Ja tylko tak wtrącę: czy jest/będzie możliwość wykrycia SlightSIDa przez oprogramowanie?

W przypadku MCU SlightSID tak... w przypadku SimpleSID nie przewidywałem takiej możliwości.

pozdrawiam
Seban

13

@Seban, ale chyba ten nowy procek (w 1 przypadku) nie mialby dostepu do wszystkiego... tylko do tego swojego 'okienka' a000-bfff ? a w drugim przypadku moze haltowac 6502 caly czas tylko problem by byl gdyby sie chcialo go przywrocic do zycia - tylko reset by pomogl?

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

14

XXL: drugi CPU miałby własny niezależny RAM od ATARI (np. dodatkowe 512K) , a do tego 8K shared memory które byłoby widoczne jako okno w przestrzeni $A000-$BFFF przez 6502 w Atari. Zarówno 6502 jak i nowy CPU (dla przykładu np. EZ80 @ 50MHz lub 65816 @ 16MHz) mogły by pisać i czytać niezależnie do obszaru $A000-$BFFF.

Co do przypadku nr 2 to ja nie wiem co się dzieje z 6502 jakby go haltować tak aby nigdy nie miał dostępu do szyny :) Myślę iż Electron może wiedzieć bo zapewne spotkał się z takim problemem przy pracach nad VBXE i okolicach :) On by musiał podpowiedzieć czy takie rozwiązane jest realne :)

15

Antic generuje HALT  dla CPU w trakcie DMA. 6502C ma wejście HALT zatrzymujące go w trakcie gdy inne układy ->ANTIC mają dostęp do szyny. Interesuje mnie układ który ma wejście HALT dla sygnału z ANTICA które go potrafi zatrzymać i ODCIĄĆ OD SZYNY na czas DMA z ANTICA i wyjście HALT dla CPU na czas kiedy sam walczy z szyną ATARKI

W tym rozwiązaniu układ miałby się znaleźć ?pomiędzy? ANTICEM i 6502. wszelkie ?odblokowywania? załatwia układ obsługujący taki dodatkowy ?procesor?.

Całość oczywiście pracowałaby synchronicznie z zegarem ATARI.

Nie chodzi o zatrzymywanie 6502 całkowicie ? generalnie tylko na czas dostępu do kawałka ramu ? np. bloku ze zmiennymi, jakiegoś bufora dzielonego między procesory etc.
Dodatkowy RAM podpięty po ?drugiej stronie? takiego układu oczywiście może sobie pracować jak najbardziej niezależnie.

Co do realności takiego rozwiązania -> jeśli działa MCU  SlightSID podłączone do szyny to rozwiązanie jest realne ? kwestia tylko jak upierdliwe

Seban ? jeśli to miała być ramka w obszarze cartridge dla takiego EZ80 to zobacz jak jest zrobione ZX Spectrum ? zwróć uwagę na rządek rezystorów między ULA, CPU i ramem ? najprościej można chyba tak.

16 Ostatnio edytowany przez seban (2008-02-06 23:26:20)

Hej!

Obawiam się iż ANTIC-a nie da się haltować i to z kilku powodów. Nie tylko DMA robi aby czytać dane potrzebne do tworzenia obrazu, odświeża on także pamięci DRAM. O ile mógłbyś go odpiąć od szyny danych i adresowej poprzez jakieś trój-stanowe bufory... (pomijam aspekt sieczki zamiast obrazu) to szlag by trafił zawartość pamięci DRAM. Z tego co pamiętam to ANTIC chyba 9 razy w ciągu jednej linii   ekranowej robi cykl odświeżania DRAM-ów... i tak cały czas linia w linę :)

Seban

17

Seban Ja nie chce haltować ANTICA ja chce żeby ANTIC mógł haltować ?rozszerzenie?  właśnie ze względu na odświeżanie szyny, DMA można wyłączyć więc i tak nie stanowi problemu.

phnx napisał/a:

Antic generuje HALT dla CPU (...) 6502C ma wejście HALT (...) Interesuje mnie układ który ma wejście HALT dla sygnału z ANTICA (...) i wyjście HALT dla CPU na czas kiedy sam walczy z szyną ATARKI

w atarce to ANTIC jest panem i władcą szyny, ja chcę mieć możliwość zablokowania CPU ?  puścić sygnał HALT z ANTICA do rozszerzenia a z rozszerzenia do CPU. Efekt: rozszerzenie może zablokować CPU a samo jest blokowane przez ANTIC.

Potrzebne będą 3 dwukierunkowe bufory 3 stanowe 8bit to jak mawia nasz omnipotentny klasyk Jaroslavus Maximus Napoleon Piłsudski ?oczywista oczywistość?:) mnie interesuje układ sterujący do nich.

Coś takiego pozwoliło by na robienie ?inteligentnych? kart w jednym standardzie ? mieli byśmy do dyspozycji ?rasowe? i przede wszystkim ?bezpieczne? rozszerzenie szyny dla dowolnych projektów w stylu simple SID. Można by kaskadowo wsadzić kilka takich ?rozszerzeń?

Złącze PBI /CART jest tylko jedno ?

Oczywiście wiem że cykl CPU nie jest z gumy ale 2..4 takich kart dało by się obsłużyć np katę z 65816 i takiego SIDA stereo