1

Temat: Dyskusja na temat 65816

Chciałbym rozpocząć dyskusję na temat perspektyw i odczuć wobec zastosowania w komputerze Atari XE procesora 65816. Wydaje mi się, że w ten sposób stworzymy jego pełniejszy obraz i  będziemy w stanie dotrzeć do większego grona osób. Zgodnie zresztą z ideą samego forum.

Zacznijmy może od wątpliwości, jakie się pojawiają, kiedy zastanawiamy się, czy takie przedsięwzięcie wogóle ma sens. Czy zastosowanie nowego procesora nie pociągnie za sobą skutków w postaci niekompatybilności dotychczasowego oprogramowania, czyli że programy użytkowe i demonstracyjne nie przestaną wogóle, czy też prawidłowo, działać. Mamy tutaj do czynienia z dwojakim problemem, dotyczącym zarówno innego repertuaru instrukcji nowego procesora, jak i jego szybszego działania. Nowe instrukcje zajmują pozycje nielegalnych instrukcji procesora 6502, które, na szczęście, nie znalazły praktycznego zastosowania. Niemniej programy, które je stosowały, z pewnościa po wymianie procesora przestaną działać zgodnie z założeniami autorów, co oznacza, że w większości przypadków programy te nie będą się nadawać do użytku. Jednak, chciałbym zapytać na ile ten problem jest poważny. Skłonny jestem wierzyc, że podobnych programów jest na prawdę niewiele. Poza tym programy te można przywrócić do użytku nawet z tym nowym procesorem, odpowiednio mdyfikując jego kod, co nie jest wcale rzeczą nie do wykonania, jakby mogło się niekiedy wydawać. Ale o szczegółach może kiedy indziej... Na koniec tego wątku, posłużę się pewnym mocnym argumentem. Istnieje emulator Atari XE, który emuluje atari z procesorem 65816 i z moich obserwacji jego działania, wynika, że programy napisane pod 6502 wykonują się dobrze.
Przy tej okazji oczywiście bardzo wszystkich zachęcam do odwiedzienia strony z tym emulatorem. http://www.magelair.com/atari_8bit_stuff.htm
Po skonfigurowaniu emulatora, mamy możliwość włączenia "turba" (lewy alt - T), co w jakimś stopniu pozwola nam na wyobrażenie sobie, jak programy z szybszym procesorem mogłyby działać. Należy się jednak w tym miejscu uwaga, że owe turbo nie odpowiada rzeczywistości pod względem dopasowania do częstotliwości pracy nowego procesora, a jedynie przyspiesza emulację atari do granic możliwości sprzetu emulującego - PC.
W ten sposób docieramy do poważniejszego problemu zastosowania procesora 65816 w atari, mianowicie do tego, w jaki sposób szybszy procesor wpływa na nieprawidłowe działanie programów, szczególnie tych wykorzystujących zależności czasowe zachodzące między procesorem 6502 a innymi układami, w tym szczególnie z Antic'iem. Jest to bardzo poważny problem, bez którego rozwiązania, wydaje się, nie będzie zgody na wprowadzenie nawet gotowych rozwiązań w życie. Oczywiście ten aspekt sprawy starają się rozwiązać Ci, którzy nad tym projektem pracują - wiem, że są takie osoby! Słyszałem, że w przeszłości rozważano możłiwość przełączania częstotliwości pracy procesora 65816 właśnie w celu zapewnienia maksymalnej wierności przy wykonywaniu programów napisanych specjalnie dla 6502. Słyszałem, że wówczas rozważano przełaczanie trybu szybkości pracy w zależności od stanu znacznika procesora określającego tryb pracy procesora 65816 - emulacja czy natywny. Byłoby to chyba rozwiązanie dobre i wygodne, ale nie jestem pewien czy na pewno najlepsze i  wogóle osiągalne, bo czy stan znacznika procesora można wogóle w prosty sposób określić? Znacznie może efektywniejszą formą przełączania szybkości pracy procesora byłby specjalny przełącznik, bo pozwalałby też na pracę z tymi programami, w trybie emulacji, które by nie wymagały zmniejszenia częstotliwości zegara głównego procesora, aby prawidłowo działąć.
Oczywiście rozważania te wyglądają na czysto teoretyczne i pewnie nie wzbudzają większych nadziei, ale w tym miejscu chciałbym poruszyć pewnien ciekawy wątek. Mianowicie, o czym chyba niewielu wie, na C64 istnieje rozwiązanie pozwalające przystosować tamten komputer do pracy z procesorem 65816 (uwaga przy zegarze nie nawet 14 ale 20Mhz!), przy zachowaniu wszystkich tych zastrzeżeń, o których pisałem wyżej, a więc możłiwość przełączania częstotliwości pracy procesora 65816 między oryginalną w C64 a 20Mhz. Żeby nie przedłużać ponad granice przyzwoitości podam tylko strony skąd można dowiedzieć się wiele na temat tego jak działa to urządzenie. Może powiem jeszcze tylko o tym, że jest to rozwiązane w sposób zewnętrznego modułu dołączanego do portu komputera i istnieje możliwość wyłączenia procesora 65816 na rzecz umożliwienia pracy temu staremu wciąż obecnemu w komputerze.
http://www.privat.kkf.net/~milo.mundt  http://www.cmdweb.de/scpu.htm

2

Odp: Dyskusja na temat 65816

Sprawa włożenia do Ataryny procka 65816 pracującego z normalną prędkością zegara jest sprawą w miarę prostą. Należy uwzględnić tylko brak takiej końcówki jak -HALT, dzięki której Antic przejmuje magistralę systemową. Do jej zasumylowania potrzebne jest kilka zwykłych układów, które można dostać w praktycznie każdym sklepie elektronicznym (koszt poniżej 15zł). Inną sprawą jest, gdy chcemy podkręcić procesor i  nie tyczy się to tylko 65816 (nie można zrobić tego przecież zmieniając mnożnik w biosie  ;) ).
Generalnie można pójść dwoma drogami: zrobić, by procesor prawie cały czas działał na wyższych obrotach, lub tylko w pewnych sytuacjach. Jeśli chodzi o to pierwsze: podkręcony procesor chce mieć szybszy dostęp do pamięci. Powoduje to, że należałoby przeprojektować cały układ sterowania pamięcią dynamiczną (Freddiego trzeba by zastąpić jakimś innym układem generującym podstawowe sygnały). Oczywiście można zastosować pamięć statyczną, co uprościło by wiekszość problemów, ale jest ona droga i nie zapomnijmy przecież o rozszerzeniach dodatkowej pamięci, która robiona była (jest) na pamięci dynamicznej. Jest to do zrobienia... Dlaczego jednak procesor miałby pracować prawie cały czas z większą prędkością? Niezapomnijmy o tym, że magistrala systemowa  musi działać dalej ze starą prędkością. Taktowanie układów grafiki (Antica i GTIA) POKEYA i PIA musi pozostać bez zmian. Zatem, jeśli procesor chce coś wpisać do rejestrów tych układów, jego zegar musi się zsynchronizować z sygnałem podstawowym. A jak to zrobić? Najprościej jeśli sam by zwolił...  I to jest problem nad którym siedzę pół roku...
Drugi sposób podkręcenia zegara, to ten, jaki został zastosowany w karcie Turbo816. Dotyczy on tylko procka 65818, który nabiera prędkości tylko wtedy, gdy adresuje pamięć powyżej podstawowej, czyli od adresu $10000. Sposób jest dobry - unika się wymiany Freddiego - ale ma jedną wadę: wszystkie programy pisane do tej pory (poza paroma wyjątkami) nigdy nie przyspieszą, bo przecież nie wykorzystują pamieci powyżej adresu $ffff. Podobno powstał specjalny OS dedykowany karcie Turbo816, który umożliwia przekierowywanie wszelkich programów z pamięci podstawowej do dodatkowej, jednak gdzie go zdobyć to inny problem.
Pozostaje kwestia dodatkowych instrukcji i rozkazów nielegalnych. Udało mi się (nie chwaląc się  ;) ) podpiąć do Atarki procek 65c02 (dzięki Zenek). Ku mojemu wielkiemu zdziwieniu, żeby nie powiedzieć zaskoczeniu, połowa dem albo się nie odapala albo kisi się w połowie. Widocznie koderzy lubują się w używaniu nielegalnych instrukcji a takowych procesor 65c02 nie posiada. Dla pewności zapuściłem te dema na procku MOS 6502 (wyciągniętym ze starej komodorowskiej stacji) i okazało się, że na nim chodzą bez żadnych problemów. Wynika stąd, że zakładając sobie pod maskę 65816 będziemy zmuszeni do zrezygnowania z oglądania niektórych dem, lub do zakupu drugiej Ataryny.

I tak na koniec... Tak tu się rozwodzimy nad 65816, a czy ktoś może wie, gdzie można go kupić?

I jeszcze PS. Opis adaptera do podłaczenia 65c02 lub MOS 6502 powinien ukazać się w najnowszym Seriousie (jeśli oczywiście Jager go nie zgubił lub nie zapomniał, a znając jego sklerozę...), ale o tym sza. Niech to będzie niespodziewajka (oczywiście jak i inne artykuły)  :D .

3

Odp: Dyskusja na temat 65816

Cieszy mnie bardzo, że w dyskusję w sprawie procesora 65816 włączył się Pasiu. Myślę, że uwagi i problemy przedstawione w treści jego wypowiedzi, pozwalają nam lepiej zdać sobie sprawę z niewątpliwego trudu i ogromu problemów pozostających wciąż do rozwiązania. Jednak nie z każdym stwierdzeniem zawarym w wypowiedzi Pasia, mogę się zgodzić.
Chciałbym poddać w wątpliwość sugestię, że programiści 8-bitowego Atari używali instrukcji nielegalnych procesora 6502. Po raz kolejny jako argumentu przeciwko takiemu przekonaniu, użyję przykładu emulatora Atari z procesorem 65816. Wyraźnie na jego przykładzie widać, że zdecydowana większość programów wykonuje się prawidłowo. Może warto byłoby zapytać poszczególnych koderów, czy rzeczywiście wykorzystywali nielegalne instrukcje przy pisaniu programów. Proponowałbym też sporządzić listę tych spośród programów Atari, które z nich korzystają. Wtedy mielibyśmy w tym wzgłędzie wystarczającą jasność.
System operacyjny dla karty Turbo-816 jest na stronie z emulatorem! Oprócz tego jest tam jeszcze inny rom, rozwinięty przez samego autora emulatora. Niestety, nie wiem, czy romy te są w pełni użyteczne - czy nie zawierają dyskwalifikujących je błędów. Nie wiem też, czy oferują "przekierowanie adresów", o których wspominał Pasiu. Niewątpliwym jednak faktem jest to, że prace nad zaadaptowaniem procesora 65816 do Atari, trwają i, co ważne, są dość zaawansowane. Skąd to mogę wiedzieć? Choćby stąd: http://www.myatari.net/issues/jun2001/8_16.htm. Może więc warto w te działania się jakoś włączyć?

Na temat programowania na Atari wyposażonego w procesor 65816, w bardzo szczegółowy i interesujący sposób, wypowiedział się autor następującego dokumentu: http://cerebro.xu.edu/~ryanr/atari/65816.html. Dokument ten pomoże także tym z nas, którzy chcieliby zapoznać się z działaniem nowych instrukcji procesora i sprawnie przyswoić sobie tą wiedzę. Wydaje mi się, że godny on jest największego zainteresowania.

Ostatnia kwestia. Czy procesor można na pewno zdobyć? Tak. Warunki nabycia układu nie są jednak mi znane. Możemy się chyba raczej spodziewać stosunkowo wysokiej ceny, stąd pomysł zorganizowania się w liczną grupę i próba negocjacji ceny. Producent układu:http://www.westerndesigncenter.com/

4

Odp: Dyskusja na temat 65816

ja nigdy nie uzwyalem illegalow ani komend 6502C w sofcie, ktory oficjalnie wyszedl :>

5

Odp: Dyskusja na temat 65816

Ja tez 8)