laoo/ng napisał/a:ograniczenie przesuwania D tylko do zerowego banku jest wręcz frustrujące w momencie, gdy "pamięć wysoka" potrafi być 8 razy szybsza od banku zerowego.
Nie jest tak tragicznie. Co prawda na Warpie właśnie jest tak, jak piszesz, każde odwołanie do "niskiej" pamięci kosztuje nie dość, ze przełączenie zegara na 1,77 MHz, to jeszcze dodatkowo wiąże się to z nieznaną (przy 14 MHz, od zera do ośmiu) liczbą waitstate'ów, o ile dobrze rozumiem, jak to ustrojstwo działa. W takim układzie korzystanie ze strony zerowej nie opłaca się kompletnie, a rezygnacja z niej oznacza pożeganie ze sporą liczbą trybów adresowania (chyba z połową?).
Ale na karcie Pasia użycie strony zerowej i w ogóle banku zerowego nie jest takie bolesne. Primo, odczyty są szybkie (to znaczy - moga być, to zależy od konfiguracji karty, ale zakładamy, że defaultowo są).
Secundo, przełączenie zegara, nawet jeśli następuje, jest bez waitstate'ów (pozornie - synchronizacja jest szybkim zegarem, a nie wolnym jak w Warpie, a utrata jednego cyklu zegara 14 MHz nie boli tak, jak utrata do jednego cyklu zegara 1,77 MHz; ale może bredzę).
Tertio - zapisy też są szybkie, o ile, jak mi się wydaje, nie następują zbyt często. To znaczy, pojedynczy zapis do niskiej pamięci chyba kosztuje tyle samo co do fastu. Co prawda on nie dociera natychmiast do pamięci Atari, ale to nie szkodzi, bo procesor nie czeka aż zapis się wykona; gdyby ta dana była od razu potrzebna (np. przy PHA/PLA), odczyt leci z "cache'u" i jest szybki. Dopiero, wydaje mi się, kilka zapisów pod rząd może spowodować zahaltowanie procesora do momentu, aż wszystkie dane "wyjdą". Jeśli się tu gdzieś nie mylę, to łatwo tego uniknąć, po prostu trzeba robić zapisy do banku 0 nie częściej niż co np. 8 cykli :)