MapRAM - dodatkowa pamięć w Atari by Xeen 2012-07-11 22:26:57

Znany doskonale społeczności atarowej Krzysztof "XXL" Dudek opisał sposób na uzyskanie dodatkowej pamięci do potencjalnego wykorzystania w małym Atari. MapRAM, bo o tym mowa, to rozszerzenie MMU, które udostępnia dodatkowe 2KB RAM bez instalacji rozszerzenia pamięci. Zapraszam do lektury:

W Atari „pod” ROM-em znajduje się pamięć RAM, można ją włączyć wpisując odpowiednią wartość do rejestru PORTB. Operacja ta umożliwia dostęp do 62KB RAM. Ale przecież Atari ma 64KB RAM, gdzie podziały się 2KB? W miejscu gdzie są umieszczone rejestry sprzętowe $D000-$D7FF znajduje się 2KB ROM w którym zapisany jest SELF TEST – zapis do rejestru PORTB pozwala „widzieć” ROM z SELF TEST od adresu $5000, natomiast 2KB RAM leżące „pod” SELF TEST nie jest wykorzystywany.

Nie jest możliwe włączenie tej pamięci ponieważ MMU Atari ignoruje kombinację bitów w rejestrze PORTB umożliwiającą taką konfigurację. Simius przeprogramował MMU Atari i teraz 2KB RAM, które normalnie znajduje się pod rejestrami sprzętowymi można włączyć w obszar SELF TESTu czyli od $5000-$57FF.


$D000-$D7FF - Atari HW
$D000-$D7FF - SELF TEST ROM
$D000-$D7FF - niedostępny RAM

PORTB
bit 7: podstawowy RAM $5000-$57FF (1); SELF TEST $5000-$57FF (0)
bit 5: $4000-$7FFF ANTIC podstawowy RAM (1); rozszerzenie RAM (0)
bit 4: $4000-$7FFF CPU podstawowy RAM (1); rozszerzenie RAM (0)
bit 0: ROM $C000-$CFFF & $D800-$FFFF (1); RAM $C000-$CFFF & $D800-$FFFF (0)

Standardowo można ustawić:
0xxxxxx1 - ROM z adresów $D000-$D7FF (z SELF TEST) mapuj do $5000-$57FF
1xxxxxx0 - wyłącz ROM - czyli w adresach $C000-$CFFF i $D800-$FFFF mamy RAM
i dodatkowo MapRAM:
0x11xxx0 - włącz RAM w adresach $C000-$CFFF i $D800-$FFFF a RAM spod rejestrów sprzętowych $D000-$D7FF mapuj do $5000-$57FF.
Bity odpowiedzialne za dostęp CPU i ANTICa do pamięci muszą być ustawione co oznacza wykorzystywanie podstawowej pamięci RAM przy włączonym MapRAM i 100% zgodności z rozszerzeniami pamięci. MapRAM nie zmienia sposobu działania żadnych rozszerzeń pamięci i może być użyte łącznie z nimi, czyli można mieć dowolne rozszerzenie pamięci oraz MapRAM bez kolizji.

Za Atariki: "w serii XL/XE wszelkie przeróbki pamięci wymagają wymiany bądź przeprogramowania MMU"; więc jeśli instalujesz w Atari rozszerzenie pamięci może warto pomyśleć też o MapRAM? Jaka jest zaleta MapRAM: bez konieczności instalacji dodatkowej pamięci mamy w Atari ekstra 2KB nigdy wcześniej nie używanego RAM, która nie koliduje z rozszerzeniami pamięci, nie jest kasowana po RESET i co najważniejsze - żaden program ani gra nie włączy i nie nadpisze danych w tym obszarze. Dla tych, którzy nie mają Atari, nie są zainteresowani instalacją MapRAM lub rozszerzenia pamięci z MapRAM rozwiązaniem jest emulator Altirra, w którym można już włączyć to rozszerzenie.


Kto ma pomysł na wykorzystanie tej pamięci? Wkrótce przedstawimy jedną z możliwości! :smile:
larek 2012-07-11 23:05:49

"i co najważniejsze - żaden program ani gra nie włączy i nie nadpisze danych w tym obszarze."

Do czasu!
Być może dotychczasowe programy i gry nic tam nie zapiszą, ale przecież chodzi o to, żeby udostępnić ten obszar dla programistów, więc, jak każdy zacznie wykorzystywać te 2KB, to powyższe założenie straci sens.

xeen 2012-07-11 23:11:39

kontekst jest taki, że chodziło właśnie o dotychczasowe programy - przynajmniej ja tak to rozumiem :)

xxl 2012-07-11 23:52:56

autorem rozszerzenia jest Simius. http://atariki.krap.pl/index.php/MapRAM

jhusak 2012-07-12 00:24:00

Dla mnie bomba, można tam umieszczać jakieś monitory i freezery softwareowe, ew prosty system dyskowy.

nosty 2012-07-12 08:10:43

Jesli zmiana jest tak prosta, to faktycznie nowopowstale rozszerzenia, ktore wymagaja kawalka pamieci dla siebie powinny dokladac to "w pakiecie". I tworcy tych urzadzen (a nie ma ich duzo) mogliby sie podzielic tym "tortem" zeby nie wchodzic sobie w parade.
Ae z reakcji jakie widzialem na AA to pomysl XXL'a raczej nie przypadl publice do gustu. Malo kto sie ucieszyl z dodatkowych wolnych 2kB.
A za granicą ludzie są wogole duzo mniej sklonni do jakichkolwiek ingerencji, cieszą sie Atari takim jakie bylo 30 lat temu.
Takze te 2kB bedzie to raczej ciekawostką niz standardem.

xxl 2012-07-12 09:25:14

standard? standard jest ustalony od okolo 30 lat i sie nie zmieni. cuda, ktore sie przez te lata pokazaly to rozszerzenia; do standardu nigdy nie wejda

Pecus 2012-07-12 09:29:43

Ech xxlu więc to "cudo" które zaproponowałeś też ze standardem nie ma nic wspólnego.

xxl 2012-07-12 09:41:47

to jest rozszerzenie. absolutny "mast" tego lata. dostepny w kolorze zblizonym do koloru oryginalnego MMU.

adv 2012-07-12 10:18:41

Dwa kb za free. Wystarczy przeprogramować MMU.

adv 2012-07-12 10:19:19

Nie bądźmy gorsi od c64! xD

mono 2012-07-12 10:44:26

Czy wystarczy tylko przeprogramowanie mmu, czy trzeba jeszcze coś lutować? Nawet jeden kabelek?

electron 2012-07-12 11:33:18

W imię tych dwóch kilobajtów dla użytkownika rozwalamy inne urządzenia, które je wykorzystują do własnych celów - smutek i żal.
Taka beztroska, dziecinna zabawa "oj, znalazłem dwa kilobajty, ajajaj super". Pa.

xxl 2012-07-12 12:37:11

@mono: zestaw to podstawka i MMU, podstawka ma polaczone niektore nozki, od podstawki wychodzi tez jeden kabelek ok. 5 cm polaczony z jakims dzyndzlem na plycie glownej ;-) techniczne pytanie lub o schemat kierowac najlepiej do Simiusa.

@electron: nowe urzadzenia wykorzystuja inny obszar $D800-$DFFF http://atariki.krap.pl/index.php/Nowe_urz%C4%85dzenia

jell 2012-07-12 14:32:54

xxl: z nowych urzadzen ktore wykorzystuja to miejsce masz karinke, side, ultimate i chyba ide+ czy idea - czyli generalnie tam, gdzie trzeba miec bufor na sektor, bo to po prostu kawalek ramu dostepny dla urzadzen, a defaultowo nie dostepny dla proca.

no ale skoro nie masz zadnego z tych urzadzen to i ci zwisa z nimi konfliktowosc...

ps. uczenie przez Ciebie electrona co wykoszystuja a czego nie nowe urzadzenia - jest po prostu zabawne...

xxl 2012-07-12 14:49:04

mylisz sie jell, ale to czesty blad. nowe urzadzenia podmieniaja swoja pamiec w obszar $d800-$dfff. nie koliduja z MapRAM.

0xF 2012-07-12 15:15:03

Przynajmniej w przypadku Karin Maxi muszę przyznać rację xxlowi, że korzysta z własnego ROMu $D800-$DFFF, a nie standardowego RAMu $D000-$D7FF, jak twierdzi jell.

candle 2012-07-12 15:26:42

0xF: napewno? aktualna wersja również? zauważ, że nie posiada własnego ramu, a bufor by się jej bardzo przydał
map ram koliduje z ultimate, freezerami, incognito i side pracujacym w trybie pbi - ono również nie posiada wlasnego ramu na bufor/zmienne i kożysta z ramu pod IO

xxl 2012-07-12 15:39:36

tak, aktualna wersja rowniez. nowe urzadzenia nie moga ingerowac w ta pamiec. chyba ze cos im pomoze - moze ultimate ;-)
1. freezer koliduje ze wszystkim rowniez z ultimate i incognito.
2. incognito nie jest urzadzeniem do atari serii xl/xe
3. side nie jest nowym urzadzeniem tylko cardridge a jako taki nie ma mozliwosci ingerencji w MMU - nie moze kolidowac :-)
4. problem moze byc z ultimate. z ktorym modulem ultimate? z modulem rozszerzenia pamieci nie, z modulem zegara nie z modulem sparty tez nie...

jell 2012-07-12 16:02:18

0xF: pisalem o nowej wersji karinki ktora powstaje - tj. to o czym pisal candle...

xxl: raz jeszcze moze poloze nacisk na to co Ci umknelo w tym co candle pisal - urzadzenia pbi (side dopiero dzieki ultimate to potrafi) potrzebujace bufor na sektor, a nie majace wlasnego ramu.

domyslam sie ze skoro "ustaliles nowy standard" te urzadzenia powinny byc przeprojektowane, bo gryza sie z "ustalonym standardem".

jhusak 2012-07-12 16:12:30

A ja nie rozumiem. Przecież w Atari wszystko ze wszystkim koliduje. Zawsze można wywalić dos nadpisując go, można pisać z własnego programu po SIDE i innych urządzeniach. Kolizje rozwiązuje się "na gębę". To dlaczego by tu nie ustalić "na gębę"?

xxl 2012-07-12 16:36:59

@jell: trudno dyskutowac z kim, kto (jak w poprzednim poscie) w jednym zdaniu umiesci 8 bzdur. a w tym teraz:
1. karin jest nowym urzadzeniem (w nowej wersji tez) i nie moze kolidowac z MapRAM.
2. side nie jest nowym urzadzeniem tylko cartem i tez nie moze kolidoewac z mapram.
wspominasz o ultimate wiec byc moze to ultimate koliduje ale nie modul rozszerzenia pamieci ultimate, nie zegar ultimate i nie sparta ultimate.

0xF 2012-07-12 16:43:59

Jak napisał jhusak. Wystarczy opracować tabelkę, które rozszerzenie koliduje z którym.

jhusak 2012-07-12 16:46:51

A czy jest prosta możliwość wyłączenia tej funkcjonalności bez przełączania przełącznikiem 18 nóżek (gdy są 2 mmu na barana)

xxl 2012-07-12 17:19:23

swietny pomysl z ta tabelka kolizji. moja propozycja ponizej. prosze skorygowac jesli jest gdzies blad - zwlaszcza z freezerem.
po korekcie poprosimy o dodanie do artka.

1.Cartridge (rowniez SpartaDOS X)
2.Clock
3.Freezer
4.IDE+/IDEA
5.KARIN MAXI
6.MapRAM
7.Memory Upgrade (dowolne)
8.SIDE
9.Ultimate1M

-|1|2|3|4|5|6|7|8|9|
1|-|.|?|.|.|.|.|.|-|
2|.|-|?|.|.|.|.|.|-|
3|?|?|-|?|?|x|?|?|x|
4|.|.|?|-|.|.|.|.|.|
5|.|.|?|.|-|.|.|.|.|
6|.|.|x|.|.|-|.|.|x|
7|.|.|?|.|.|.|-|.|-|
8|.|.|?|.|.|.|.|-|.|
9|-|-|x|.|.|x|-|.|-|

? - nie wiem
. - brak kolizji
- - nie dotyczy
x - kolizja

Pecus 2012-07-12 17:36:14

Główna kolizja będzie z każdym Freezerem. Wszystkie znane mi Freezery (raptem dwa rodzaje) stosują trick działający tak, że zapisy do rejestrów We/Wy powodują równolegle zapis do RAM pod tymi rejestrami. Dzięki temu po zatrzymaniu programu freezer przemapowuje sobie ten RAM w inne miejsce i można odczytać to co było ostatnio zapisywane do rejestrów tylko do zapisu, czyli tych, które w odczycie zwracają stan innego wewnętrznego rejestru danego układu.

xxl 2012-07-12 17:44:28

zgadza sie. kolizja Freezera z Ultimate1M i z MapRAM zaznaczona.

B3ar_ 2012-07-12 19:09:45

Jell to głupek. Jego cała wiedza pochodzi z tak znanych periodyków, jak "Reader's Digest", "Fakty i Mity", "pudelek.pl" i podobne "czołowe" pozycje oraz z forów, na których wyłącznie troluje i powtarza zasłyszane teorie, jako swoje własne. Najlepiej jest olać gostka i robić swoje. A MapRAM chętnie sobie zainstaluję w atarce, jak tylko znajdę jakaś działającą... W końcu jest to komputer do gier, nie? ;)))

Amun-Ra 2012-07-12 19:26:33

Kawał porządnej, nikomu nie potrzebnej roboty.

pasjonat 2012-07-12 19:30:29

@B3ar: święta prawda, gościu nie wie o czym mówi a udaje mądrego.

jell 2012-07-12 19:59:39

xxl: side dzieki ultimate dziala jako new device

xeen 2012-07-12 21:18:44

@Amun-Ra - to się jeszcze okaże, przeczytaj ostatnie zdanie:)

pin 2012-07-12 21:26:15

... wykorzystać te 2kB na obsługę nowych, lub modzonych starych rozszerzeń! - niezwykle bezkolizyjne rozwiązanie pod warunkiem ustalenia normalnego standardu. Jest ku temu okazja.

Bluki 2012-07-12 21:29:21

Jedyne zastosowanie, jakie ja widzę, to miejsce na krótkie programy narzędziowe dal koderów. I chyba tylko takie.

nosty 2012-07-12 21:39:42

Przypomnialo mi sie slynne zdanie Kisielewskiego ze "socjalizm bohatersko rozwiązuje problemy nieznane w żadnym innym ustroju" :) Wy podoobnie :P

Jakie Ultimate, jaka paralela?! Co to wogóle jest...?! Przecież każdy wie, ze Atari to taki komputer, ktory wlacza sie trzymając rozciapiżone palce prawej ręki, potem robi BUUUU... i juz :)
Pokażcie mi jeden taki wątek jak ten na forach C64 albo ZX.

No, ale pewnie wszycy dwaj posiadacze freezera do Atari śledzą Waszą dyskusje z wypiekami na twarzy...
Idzie Wy pisac gry albo w ostatecznosci dema! Glucholazy coraz blizej.

jury 2012-07-12 22:51:47

@nosty.
Zostaw ich w spokoju! ;) To dla nich ważne!!! :]]]

xxl 2012-07-12 23:08:39

@Bluki: neeee, programy pisze sie na pc, krosskompiluje, szybciej, latwiej, wygodniej...

Kaz 2012-07-12 23:27:02

Wrrr... B2ar - prosze mi tu nie rzucac obelgami, bo sie pozegnasz z komentowaniem.

jhusak 2012-07-13 07:16:48

A mnie ciekawość zżera, jaka to jedna z możliwości zastosowania dodatkowego RAM.

larek 2012-07-13 08:40:14

Hi-score

xxl 2012-07-13 09:30:42

zgadza sie, opisywany pomysl z 2008 dojrzal i doczekal sie realizacji :-)

a teraz tab. uaktualniona o Qmeg

1.Cartridge (rowniez SpartaDOS X)
2.Zegar
3.Freezer
4.IDE+/IDEA
5.KARIN MAXI
6.MapRAM
7.Rozszerzenie pamieci (dowolne)
8.SIDE
9.Ultimate1M
0.QMEG

-|1|2|3|4|5|6|7|8|9|0|
1|-|.|?|.|.|.|.|.|-|?|
2|.|-|?|.|.|.|.|.|-|.|
3|?|?|-|?|?|x|?|?|x|?|
4|.|.|?|-|.|.|.|.|.|.|
5|.|.|?|.|-|.|.|.|.|.|
6|.|.|x|.|.|-|.|.|x|.|
7|.|.|?|.|.|.|-|.|-|.|
8|.|.|?|.|.|.|.|-|.|.|
9|-|-|x|.|.|x|-|.|-|?|
0|?|.|?|.|.|.|.|.|?|-|

? - brak danych
. - dziala
- - nie dotyczy
x - kolizja

ktos od QMEGA moglby sie wypowiedziec na temat kompatybilnosci tego rozszerzenia ze Sparta i Ultimate1M?

larek 2012-07-13 10:22:22

SDX działa z QMEG, choć przy uruchamianiu systemu potrzebny jest program (nie pamiętam nazwy), który pobudzi SDX do życia.

xxl 2012-07-13 10:35:01

ok. ale to kwestia programowa. chodzi mi glownie o kompatybilnosc na poziomie sprzetu np. jesli ktores rozszerzenie do wspolpracy z innym potrzebuje wylaczyc jakas swoj modul.

the fender 2012-07-13 11:24:21

Ufff, jakoś przebrnąłem przez te komentarze (wiem, nikt mi nie kazał ale lubię) i moja refleksja jest taka:

@nosty +5

... niemniej cieszy każdy nowy ruch w sektorze Atari :)

xxl 2012-07-14 18:39:52

Emulatory atari w ktorych mozna przetestowac dzialanie MapRAM:

Altirra: http://www.virtualdub.org/beta/Altirra-2.10-test32.zip

Atari800: http://atarionline.pl/forum/comments.php?DiscussionID=2037&page=1#Item_1

Amun-Ra 2012-07-17 11:52:33

@xeen: ok, poczekam (choć ja np. sensu istnienia VBXE nie widzę). :)