Przyszło mi do głowy - już dość dawno temu zresztą - że można byłoby spróbować w atarynce, oprócz szybkiej pamięci powyżej pierwszych 64k, dać też 64k RAM-u taktowanego 7 albo 14 MHz i mirrorującego pierwsze 64k na następującej zasadzie:

1) z obszaru $0000-$C000, wszystkie zapisy do normalnego RAM-u z prędkością 1,79 MHz, oraz do mirrora.
2) z tegoż obszaru wszystkie odczyty tylko z mirrora z prędkością 7 albo 14 MHz;
3) a obszar $C000-$FFFF tradycyjnie, bez mirroringu, albo w zależności od stanu PORTB (w przypadku BASIC-a to niezbędne), albo coś... tu jest największa zagwozdka.

Innymi słowy, chodzi o 48k szybkiego cache'u wstawionego pomiędzy CPU a pamięć. Zapisy generowane przez CPU byłyby wolne i szłyby "na wskroś" (write-through) przez cache do głównej pamięci, odczyty natomiast byłyby szybkie i szłyby tylko z cache'u.

Ponieważ procesor więcej czyta niż zapisuje, więc nawet stare programy dostałyby wymiernego kopa. Przy czym cache "na wskroś" jest odporny na numery typu samomodyfikującego się kodu, kompatybilność byłaby więc wysoka. Oczywiście, jak zwykle potrzebny byłby pstryczek wyłączający to ustrojstwo do puszczania programów wycyklowanych (dem, gier).

Pytanie, czy to jest w ogóle wykonalne?

KMK
? HEX$(6670358)

2

no ale po co takie cos? wydaje mi sie ze tylko r/w w obszarze rejestrow sprzetowych musi odbywac sie na 1.79 a reszta niech hula na maxa lub w zaleznosci od stanu jakiegos rejestru np. pierwsze 64k slow lub fast

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

3

Po to że taki cache - mym zdaniem - uwalnia od problemów z chipsetem wymagającym 1,79 MHz. Stare układy pracują dalej jak pracowały, a CPU działa szybciej.

KMK
? HEX$(6670358)

4

wydaje mi sie ze tylko r/w w obszarze rejestrow sprzetowych musi odbywac sie na 1.79 a reszta niech hula na maxa

Antic musi mieć dostęp do pamięci z zegarem 1,79 MHz, czyli dorzuć do tego jeszcze pamięć obrazu i DL w dowolnym miejscu przestrzeni 64 kB.

[ Dodano: 04.12.2004 01:18:23 ]
A tak się ma +1 do statsów na AA i Mistrza offtopicu. :mrgreen:

Zawsze mam rację, tylko nikt mnie nie słucha.

5

racja...

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

6

Draco, czyżbyś czytał dokumentacje HyperSpeeda? W nim właśnie tak jest i jest to jak najbardziej możliwe. Prawdę mówiąc to właśnie będę ten tryb teraz implementował i uruchamiał w projektowanej karcie...

7

E... nie, nie czytałem dokumentacji do HyperSpeeda, cokolwiek to jest.  8O Po prostu wymyśliłem, że tak może być dobrze.  8)

KMK
? HEX$(6670358)

8

Więc polecam: http://www.digital-force.net/projects/hyperspeed/

9

Hmm, no ładnie.

Tylko mnie jedno ciekawi: wywnioskowałem z tego doca, że gość przygotował jakiś specjalny ROM, ale żadnego opisu nie ma. Czy do tej karty jest OS i czy coś wiadomo na jego temat (wektory, featury itd.)?

KMK
? HEX$(6670358)

10

Tzn. rom takowy miał powstać, ale prace nad nim (oraz nad rozwojem karty) zostały zarzucone chyba z powodu małego zainteresowania. Szkoda, bo byśmy dzisiaj cieszyli się niezłym dopałem przewyższającym możliwościami commodorowski supercpu... A tak trzeba jeszcze czekac :).

11

No tak. A czy ty wiesz, co taki ROM specjalnego powinien umieć? Coś tam było o przechwytywaniu odwołań do hardware Atari, czyli pewnie trzeba napisać handler przerwania abort... no i inne takie rzeczy, jeśli mają być, też chciałbym wiedzieć. Czy na przykład wszystkie znajdujące się w ROM-ie odwołania do rejestrów sprzętowych mają być robione przez 24-bitowe adresy, czy lepiej zostawić 16-bitowe ...

KMK
? HEX$(6670358)

12

No tak, jakis handler od ABORT by sie przydal. Jeszcze nie wiem czy HPU będzie w takiej wersji jak w HyperSpeed czy nieco bardziej rozbudowany... Co do reszty trudno mi jest cokolwiek powiedzieć oprócz jednego: karta będzie mieę możliwość sterowania pracą 6502C na płycie atarki (poprzez sygnały RDY i Halt) więc jakieę procedury do obsługi tego też by były potrzebne.

Na razie potrzebuje jednego małego programiku, umożliwiającego wpisanie czegoś do dowolnej komórki z zakresu 16MB...

13

LPOKE? Napisałbym, ale ja nie mam łączności z netem. Może Lizard?

Co do sterowania drugim procesorem, to jak sobie tę obsługę wyobrażasz? Czy procesor ma być automatycznie haltowany przez OS w jakichś warunkach? W jakich?

KMK
? HEX$(6670358)

14

LPOKE - taka nazwa mi się podoba :)

Może to będzie w taki sposób odpalane: po włączeniu zasilania zatrzymywany jest 6502 (od razu - zatem stoi na wektorach od resetu), 816 odpala się z romu na karcie przy okazji ładując jakiś pseudo oes do pamięci pod oryginalnym romem, po chwili 816 uruchamia 6502.
6502 będzie głównie służył do odpalania starych progów (gier itp.) pod kontrolą 816...

Naprawdę trudno mi jest cokolwiek więcej napisać o softwerowym sterowaniu czegoś, czego jeszcze chyba w ośmiobitowcach nie zrobiono...

15

LPOKE? Napisałbym, ale ja nie mam łączności z netem. Może Lizard?

Siem pisze. :) Jeszcze dziś w nocy wrzucę na forum.

[ Dodano: 06.12.2004 23:31:34 ]
A tak się ma +1 do statsów na AA i Mistrza offtopicu. :mrgreen:

Zawsze mam rację, tylko nikt mnie nie słucha.

16

I jak idą pracę?  :D  Prog by mi się naprawdę przydał...

W międzyczasie próbowałem odpalić podobny tryb pracy jaki opisał Draco w pierszym poście. I co mi wyszło - może pokolei.

Procesor 65c816 taktowany trochę ponad 14MHz.

Pierwszy zrzut z sysinfo (si3.png) pokazuje prace karty w trybie normalnym, z włączonym DMA; operacje na podstawowym ramie. Niewielkie przyspieszenie w stosunku do 6502 (normalnie overall=336) spowodowane jest tym, że wewnętrzne operacje procesor wykonuje z pełną szybkością. Na inne (czytaj/zapisz) musi czekać (dopasować się do magistrali 6502).

Drugi zrzut (si1.png) to tryb ze zmapowaną pamięcią podstawową z włączonym DMA Antica. Zapis odbywa się do szybkiej pamięci ram oraz poprzez tzw. databridge do pamięci podstawowej Atari. Odczyt następuje tylko z szybkiego ramu. W mapowaniu nie uczestniczy rom systemu oraz rejestry sprzętowe, tylko ram (pod romem też) zatem operacje na systemie dalej są wolne. Pomimo tego wyniki każdy widzi jakie są.

Trzeci zrzut (si2.png) tryb taki sam jak poprzednio tylko z wyłączonym DMA.  :D

Przy okazji posprawdzałem niektóre demka 16k (w kompie testowym nie mam rozszerzonej pamięci) i no cóż... przez dwa dni je ciągle oglądałem, bo nie mogłem wyjść z podziwu jaka moc drzemie w 65c816@14.

17

Ja chce taki akcelerator w mojej 800XL !!!

What can be asserted without proof can be dismissed without proof.

18

O w mordę ... zabrakło skali. Będę musiał przeskalować słupki w SysInfo.  8O

Ja to chcę mieć w moim kompie!!!  8)

Poza tym 3,1 MIPS-a to prawie moc Falcona 030. Portujemy MiNT-a?  8)

KMK
? HEX$(6670358)

19

Robiłem też próby z zegarem 16MHz. Zamiast 3.1 wskaznik pokazał 3.8 MIPSa, ale komp pracował trochę niestabilnie. Ciekawe co pokaże gdy uda się podkręcić procka do 20MHz (tyle nieoficjalnie wyciąga 816).

20

chyba trzeba będzie zamówic troche 816-tek bo chętnych bedzie sporo.Ja tez pragne sie dołaczyc do grona posiadaczy takiej karty w przyszłosci.

gep/lamers^dial

21

Pasiu, potrzebujesz jeszcze to LPOKE? Bo mam LPOKE/LPEEK. Ale na forum będę mógł wrzucić w piątek najwcześniej. No i bazuje to na Lizarda biblioteczce GETPAR, więc będzie działać tylko ze Spartą albo DOS DwaPluzDe (chodzi o linie komend).

Wytłumacz mi jeszcze, jak to w dopałce mają działać dwa procesory? Bo przecież jak będzie działał jeden, to drugi będzie musiał być zahaltowany, a więc sterowanie jednym przez drugi odpada: jak się procesorowi 6502 pozwoli ruszyć z pozycji początkowej, to jak go potem zahaltować z powrotem?

No i jak będą szły przerwania? Wszystkie do tego CPU, który akurat działa?

KMK
? HEX$(6670358)

22

Oczywiście że potrzebuję. Nie jest to pilne, ale gdy będę uruchamiał następną część karty taki prog będzie bardzo przydatny. Jeżeli chodzi o dosa to korzystam właśnie z 'DwaPluzDe', więc nie będzie problemu.

Odpowiedzi (lub próby odpowiedzi) na pozostałe pytania masz na skrzynce imejlowej...

23

mozna na forum? to ciekawy temat.

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

24

8O  8O  8O  8O  8O  8O  8O  8O  8O  8O  8O  8O  8O

napisałbym coś,  lecz ze względu, iż muszę zejść piętro niżej po swoją szczęke, bede już kończył.

Pasiu: Masz możliwość zgrania np. do AVI'ka (np. przez kartę TV w grzybie , etc.) jakiegoś fajowego Demka w trybie nativ '816@14 i zapodanie tego na serwer Azbesta. Żeby forumowicze - tj. na chwilę obecną hieny, żądne tekiej karty... obaczyły i mogły się więcej ślinić???

FAQ: Cegła waży kilogram i pół cegły. Ile ważą dwie cegły ? :D

JIL 4EVER!

25

spac nie bede mogl :) zajefajna dopała :)

ciekawe czy bedzie mozna dokonywac wiekszej liczby zmian w rastrze z takim CPU ?

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