hej!
plik poszedł :D
pozdrawiam
Seban
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Rusza głosowanie w FujiCup! Wybierz najlepszą grę roku na 8-bitowe Atari i weź udział w corocznym plebiscycie FujiCup.
Atari800MacX 6.2.0 Popularny emulator Atari dla macOS doczekał się dużej aktualizacji z obsługą nowych kartridży.
Gearlynx 1.1.3 Nowa wersja emulatora konsoli Atari Lynx wprowadza binaria dla Linux ARM64 i ulepszony debugger
VQ Tracker Beta 2 Nowa wersja cross-platformowego trackera muzycznego dla Atari XL/XE z poprawkami błędów.
15. edycja BASIC 10 Liner Contest Ruszyła kolejna edycja konkursu na gry i programy napisane w zaledwie 10 liniach kodu.
atari.area forum » Posty przez seban
hej!
plik poszedł :D
pozdrawiam
Seban
jest już mirror Moonsoftowego "atari.cuprum.com.pl" u Azbesta :D
http://ftp.pigwa.net/stuff/mirror/www.a … um.com.pl/
pozdrawiam
Seban
Ok, tak zrobie. Po powrocie z kołchozu spakuje i zacznę upload na FTP azbesta.
UPDATE 3 ! :D
zrobiłem upload po raz drugi :) archiwum jest już u Azbesta na FTP.
Zainteresowani musza poczekac aż pliki znajdą się w odpowiednim katalogu :D
pozdrawiam
Seban
hej!
mam mirrora tej stronki... zrobionego zaraz po tym jak jej właściciel ogłosił iż może ona zniknąć z sieci.
Dajcie tylko znać gdzie wrzucić. Jak wróce do domu to moge zacząć uploadować :)
Seban
hej Konop!
Już poprawiłem :D to z pośpiechu :D
chcialem być lepszy od Magnusa ;) ( to żart oczywiście :) )
Seban
whoops! ;) sorki! :) się pospieszyłem :D
ale tak naprawdę... to chciałem sobie zażartować ;) dalsza droga chyba już nie ma sensu ;D
chociaż idac za słowami kogoś mądrego kto powiedział "...każdy program można zawsze skrócić o jeden bajt..."
możemy dojść do depacker'a o długości 1 bajtu :D
ba... idąc dalej za teoriami jakiegoś szalogego gościa z giełdy na "grzybowskiej" możemy zrobić kompresję do 1 bajtu :D
użwyając funkcji XOR :D pierwszy bajt xor'ujemy z drugim... wynik z trzecim bajtem... itd. ;-)
Seban
hej!
chyba popadamy w jakąś paranoję :D
ale jeszcze krócej o 3 bajty będzie tak:
src = $9D
dest = $24;
loop jsr $A293
beq stop
lsr @
tay
q0 jsr $A293
q1 sta (dest,x)
jsr $E6D1
dey
_bpl bmi loop
bcs q0
bcc q1
stop rtspytanie, kto napisze algorytm ktory stwierdziłby czy wyszedł nam chaos czy fotka :D
pewnie dałoby się przewidywać przyszłość... ponieważ wśród chaosu mogłoby się pojawić zdjęcie z Orneta 2K6 ;D
ale tak realnie podchodząc do sprawy... ilość możliwych kombinacji 640x680*RGB jest po prostu kolosalna... nie dało by się przechować takiej ilości informacji :D trzeba by było zaprzęc jakąś sieć neronową aby oceniała czy jest to fotka jakiegoś realistycznego obrazu czy tylko szum :D no i za parę milonów lat już mielybyśmy wyniki ;D
jak tak dalej pójdzie to zaraz zaczniemy rozważania o wymiarach równoległych i innych strasznych sprawach :D
Ehhh... jednak może zmień dealera :)
Seban ;)
heja!
może się źle wyraziłem... dokładnie chodziło mi o to iż tak czy tak musi być jakiś LDX # :D nawet w wersji maroka ;)
Seban
ha!
Marok byłeś pierwszy... ale miałem podobny pomysł pomysł :D
bez modyfikacji spakowanych danych wyszło mi tak:
org $80
loop clc
jsr get
bpl store
eor #$ff
beq stop
sec
store tay
q0 jsr get
q1 sta $dead
inc q1+1
bne *+4
inc q1+2
dey
bmi loop
bcc q0
bcs q1 ; (!) jump always ;)
get inx
bne *+4
inc adr+2
adr lda $beef
stop rtsczyli o ile dobrze licze wychodzi 43 bajty poza "zero page", a 40 na "zero page" :D
ale w porównaniu z 33 bajtami Maroka, mogę się schować :D
a i jeszcze jedno na początku wersji zaproponowanej przez Probe z inx,inc powinniśmy mieć wszyscy LDX #0 :) wiec dochodzą nam dwa bajty :(
Seban/SLIGHT
hej!
To może i ja swoje 3 grosze dorzucę :) Pierwsze założenie optymalizacyjne, odwracamy znak w przypadku ilości spakowanych danych, czyli w przypadku ustawionego 7 bitu, wartość $ff będzie oznaczała 1 powtórzenie, $fe - dwa powtórzenia $80 - 127 powtórzeń. Przez taki myk możemy wprowadzić co następuje:
jsr get
bpl store
xor #$ff
beq stop
...
taynie potrzebujemy już and #$7f ;) mamy już 48 bajtów
pierwszym moim pomysłem było zastosowanie nieco innych trybów adresowania i umieszczenie tego na stronie zerowej:
org $80
src dta a(src_address)
dst dta a(dst_address)
loop ldx #($100-(_bpl-q0+2))&$ff
jsr get
ora #$00
bpl store
xor #$ff
beq stop
ldx #($100-(_bpl-q1+2))&$ff
store tay
stx _bpl+1
q0 jsr get
q1 ldx #dst
sta ($00,x)
jsr inc
dey
_bpl bpl *
bvc loop
get ldx #src
lda ($00,x)
inc inc ($00,x)
bne *+2
inc ($01,x)
stop rtswychodzi 49 bajtów, co okazało się porażką ponieważ kod wygenerowany wcześniej przez magnusa ma 45 bajtów gdy umieścimy go na "zero page". no cóż pozostaje wiec pozostawienie wersji magnusa wraz z modyfikacją "xor" i mamy 43 bajty na zero page lub 48 bajtów w "normalnej" pamięci.
org $80
loop ldx #($100-(_bpl-q0+2))&$ff
jsr get
bpl store
xor #$ff
beq stop
ldx #($100-(_bpl-q1+2))&$ff
store tay
stx _bpl+1
q0 jsr get
q1 sta $dead
inc q1+1
bne *+2
inc q1+2
dey
_bpl bpl *
bvc loop
get inc adr+1
bne *+2
inc adr+2
adr lda $cafe
stop rtspozdrowionka
Seban/SLIGHT
Ejku!
Wielki Szacun!!! Po prostu rewelka!!!
Dzięki WIELKIE !!!!
Seban
hej!
niestety, dokładnie tak.
*.pozdr!
Seban/SLIGHT
witam!
W mojej Atarce (130XE) ten pin jest na stałe podpięty do +5V. Więc po włączeniu zasialania po prostu pojawia się tam +5V. RESET nic nie zmienia bo w przy takim podłączeniu nic zmieniać nie może :)
pozdrawiam
Seban/SLIGHT
Ok!
Już wszystko jasne ;)
Trochę posiedziałem z oscyloskopem i wszystko wyszło.
No cóź cała tajemnica sygnału ~REF polega na tym iż on tylko steruje MMU, tak aby przygotowano RAM do odświeżenia przez ANTIC. W momencie odświeżania ANTIC sam wystawia adresy na magistrale, a DRAM w momencie odświeżenia nie wystawia nic na magistrale danych. Do tego ANTIC jeszcze wystawia HALT troszkę wcześniej procesorowi aby ten też "odpioł" się od szyny.
I tu cały bajer :) generując fałszywy ~REF, generujemy dla MMU i FREDDIEGo cykl odswieżania pamięci, magistrala danych pozostaje nieużywana (DRAM w cyklu odświeżania pozostawia magistrale danych w stanie wysokiej impedancji) procesor pozpstaje podpięty po nie ma HALT'a :) teraz freezer podpina swoją pamięć (EPROM,ROM) w obszar $fffa,$fffb. Stan cały utrzymuje się do momentu wystąpienia najbliższego NMI :D
Wtedy procek skacze pod adres który obecnie się znajduje $fffa,$fffb. A w podanym obszarze znajduje się już nasza pamięć EPROM podpięta przez logikę freezera :)
Jedny problem jaki występuje w takiej sytuacji to aby nie wygenerować fałszywego REF'a w momecie gdy antic odświeża sobie RAM. Ale to można wyczaić po magistali adresowej. z tego co widzę to na schematcie aby uaktuwnić freezera linia A3 musi być w stanie "1".
Można domyślać się iż ANTIC podczas odświeżania generuje na szynie adresowej tylko adresy typu: $0000,$0100,$0200,$0300....$ff00 (adresowane są tylko wiersze, ROW).
Szacun dla Pana Bernarda :) Musiał mieć zacięcie i dużo wolnego czasu aby to wymyślić i opracować w tamtych czasach :)
Ktoś zainteresowany przeniesiemiem freezera na jakąś nowszą programowalną logikę? bo układ PLS105 to swego rodzaju zabytek :)
Jak już wiemy, ma być Turbo Freezer 2005 od ABBUCA, pytanie tylko czy będzie dostępny czy będzie trzeba za niego płacić chorą kasę. Tak myślę sobie że można się pokusić o stworzenie własnego... tylko pytanie czy ktoś jest zainteresowany? (oprócz mnie :) bo mój Freezer by Stecu/The Distals [jak to wymyślił Miker :D ] już prawie nie działa :(
pozdrawiam
Seban/SLIGHT
Hi!
Tak sobie patrze na schemat tego freezera (notebene podesłanego przez Xana) podłączanego do szyny PBI w serii XL. Ale nie mogę zrozumieć jak ten Freezer przejmuje kontrole nad ATARI. W przypadku Happy Freezera było wykorzystane przerwanie NMI. Partrze na te sygnały która są do niego podpięte i nie mogę zrozumieć jak ten freezer robi następujące rzeczy:
#1) w jaki sposób podmapowuje swojego eproma w obszar pamięci ATARI.
#2) w jaki sposób udaje mu się wymusić tak aby procek skoczył pod wskazany obszar po wciśnięciu przycisku
tak naprawdę to jedynym sygnałem którym może manipulować jest sygnał ~REF. Reszta sygnałów to wejścia do tego freezera.
Tak się właśnie głowie co daje temu freezerowi wystawienie dodatkowego "fałszywego" /REF'a? CPU się odpina od szyny, ale co dalej?
Ma ktoś jakieś pomysły jak to może działać?
Ma kawałek własnego RAMu, wiec tam sobie może zapiswyać informacje zapisywane do POKEYA, GTIA i ANTICA. Tu wszystko załatwia ten programowalny układ PLS105. Teraz ten zabytkowy układzik można zastąpić programowalną logiką ale najpierw trzeba by zrozumieć zasadę działania.
Może ktoś ma e-mail do autora tego projektu Pana Bernhard'a Engl'a?
Wydaje mi się to zbyt proste aby mogło działać. A jednak może to jest na tyle genialne w swojej prostocie że działa w jakiś sposób. Albo ja po prostu nie rozumiem idei działania tego wynalazku do końca ;)
Happy Freezer wymagał sporej ingerecj w sygnały między RAM'em a FREDDIE'im. Tu tego nie ma. taki Freezer może zostać po prostu podpięty pod PBI, czy nawet w XE do złącz CART i EXT i działa. Ale jak?
Jakieś pomysły?
chętenie posłucham waszych opini.
pozdrawiam
Seban/SLIGHT
Hej!
Masz gotowca... :D
Ale UWAGA!!! zero optymalizacji ;)
ehh... stare dobre czasy ;) kiedyś się pisało w BASIC'u ;)
pozdrawiam
Seban/SLIGHT
Witam!
tutaj znajdziesz odpowiedź:
http://atariarea.krap.pl/forum/viewtopic.php?t=2091
*.pozdr!
Seban/SLIGHT
Można też zastosować 18F452 - do "zadań dodatkowych" jest lepszy.
Dokładnie o takim samym myślałem ;)
A co do gammy to nie bardzo mają ochotę na sprzedawanie pojedyńczych sztuk. Mam ich pod domem, po drugiej stronie ulicy i znam się z nimi niejko poprzez poprzednią pracę. Gdzie utrzymywałem z nimi silne kontakty ze względu na dość znaczne zakupu PIC'ow ;) Na początku nie robią trudności jeżeli pojedyńcze sztuki kupuje firma i mają nadzieję na dalszą współpracę. Natomiast jak PICki kupują prywatne osoby to tak niechętnie do tego raczej podchodzą, aczkowliek sprzedadą pewnie.
A co do róźnicy w brzmieniach 6581 (stary) a 8580 (nowy) to ja słyszę wyraźną różnicę w brzmieniu fitrów. 6581 wydaje się nieco miększy i bardziej dynamiczny. 8580 ma dla mnie bardziej metaliczne i ostrzejsze brzmienie. Co ciekawe niektóre msx'y pisane na 6581 bardzo źle brzmią na 8580 i vice versa. Ale w 80% nie ma to znaczenia. Dopiero mistrowie SID'owego układu potrafili wykorzystać możliwości filtrów i sztuczki poszczególnych układów.
Co do sampli, to do końca nie wiem jak jest. Niektóre produkcje źle grają sample na nowych sidach (bardzo cicho). Z drugiej jednak strony nowsze produkcje źle odtwarzają sample na starym SID'ie. Wiec coś w tym jest. Do końca nie wiem na czym polegał trick z otwarzaniem sampli na sidzie, bo sprzętowo chyba nie ma takiej możliwości. Trzeba by było kod playera jakiegoś przeanalizować ;) Ale wszystko w swoim czasie ;)
Kiedyś w C&A był schemat układu poprawiającego jakość sampli w nowym sidzie ;) Z tego co pamiętam przeróbka polegała na zatrzasku podpiętym pod konkretny adres sida i przetoworniku C/A złożonym z drabinki R-2R. Wiec zapis do kokretnego rej. SID'a powodował po prostu wpis do tego prostego 4-bitowego C/A. Wyjście C/A było jakoś dopiete do Audio Out. I to była cała przeróbka.
Wiem że SoTe popełnił dwie konwersje digi-sampli z ATARI na C64 (chyba Crazy Cars i Ethnicolor produkcji HTT). Wiem że miał nowe C64 i znał/znalazł metodę na odtwarzanie sampli na SID8580.
pozdros
Seban/SLIGHT
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
eeee... 16f84 nie ma PSP (pararell slave port). Trzeba wybrać coś z PSP, co jest normalnie dostępne. Ja mogę mieć dostęp do wsztstkich ale nie o to chodzi. Chodzi o to jakie PIC'e z PSP można dostać w rozsądnej cenie w detalu.
A i pomysł zastosowania PIC'ka nie jest mój tylko Electrona. Chyba nawet Electron zaproponował jakiś schemat i do tego zaproponował wykorzystanie mocy szybkiego PIC'ka do wykonania dodatkowych zadań. Np. mnożenia, itp.
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
Pewnie masz racje... jak bym to udostępnił to pewnie już ktoś kto ma więcej czasu już by to dawno dokończył. Może i tak zrobie. Może ktoś z was mający więcej czasu się tym zajmie. w takim razie musze doprowadzić do porządku dokumentacje i postaram się opbulikować to co jest zrobione do tej pory.
pozdr
Seban/SLIGHT
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
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
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
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
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
atari.area forum » Posty przez seban
Wygenerowano w 0.102 sekund, wykonano 17 zapytań