1

Witam,

dlaczego rownoczesne skasowanie bit0 i bit7 portb nie przynosi efektu?

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

2

Jakiego efektu oczekujesz?

Ceterum censeo Germaniam esse delendam.

3

bit7: zamapowania romu spod $d000-$d7ff na $5000-$57ff
bit0: wlaczenie RAM lezacej pod ROM

jednoczesnie

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

4 Ostatnio edytowany przez Simius (2012-04-05 21:00:05)

Bit 0 wyłącza wszelkie odwołania do OS ROM, więc jeśli bit 0 jest wyzerowany to niezależnie od stanu bitu 7 wszędzie poza $D000...$D7FF będzie RAM (jeśli oczywiście nic nie ma w obszarze BASIC-a i kartridży)

Ceterum censeo Germaniam esse delendam.

5 Ostatnio edytowany przez Marek Konopka (2012-04-05 20:59:06)

Kod Self Testu chyba korzysta z procedur w ROM'ie.
http://atariki.krap.pl/index.php/Rejestry_PIA

6

@Simius no wlasnie co sprawia ze po skasowaniu bit 0 skasowanie bit7 nie daje efektu (przelaczenie $d000->$5000)

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

7

xxl napisał/a:

bit7: zamapowania romu spod $d000-$d7ff na $5000-$57ff
bit0: wlaczenie RAM lezacej pod ROM
jednoczesnie

Chyba logiczne. Przerzucasz 2KB ROM w obszar $50-$57 i jednocześnie chcesz ROM wyłączyć.

SelfTest oraz QMEG mają procki porozrzucane w obydwu obszarach.

W MLM chcesz pobrać z extRAM (z jakiegoś Banku) dane do wyświetlenia z obszaru np. $5100.
A tu siedzi ROM.
Tylko przez skok do właściwego ROMu z wyłączeniem 2KB ROMu można dobrać się do takich danych.

8

@Pajero, nie; chce dowiedziec sie, ktory ?uklad? odpowiada za to, ze nie mozna tych dwoch bitow skasowac jednoczesnie i przynioslo to taki efekt:
>bit7: zamapowania romu spod $d000-$d7ff na $5000-$57ff
>bit0: wlaczenie RAM lezacej pod ROM

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

9

xxl napisał/a:

@Simius no wlasnie co sprawia ze po skasowaniu bit 0 skasowanie bit7 nie daje efektu (przelaczenie $d000->$5000)

I tu zasadniczo jedynie słuszną odpowiedzią jest "konstrukcja MMU". :)

Ceterum censeo Germaniam esse delendam.

10

xxl napisał/a:

@Pajero, nie; chce dowiedziec sie, ktory ?uklad? odpowiada za to, ze nie mozna tych dwoch bitow skasowac jednoczesnie i przynioslo to taki efekt:
>bit7: zamapowania romu spod $d000-$d7ff na $5000-$57ff
>bit0: wlaczenie RAM lezacej pod ROM

Ściśle rzecz biorąc, można te dwa bity skasować jednocześnie, bo żadna ustawa tego nie zabrania. Ale efektu równoczesnej dostępności ROMU-u pod $5000...$57FF i RAM-u pod OS-em uzyskać się nie da.
A własciwie po co to?

Ceterum censeo Germaniam esse delendam.

11

Dzieki, a czy ta "konstrukcja MMU" podysktowana jest czyms (czym) ze nie mozna uzyskac takiego efektu; drugie pytanie dysponujac kosmiczna technologia zmiana tego MMU jest mozliwa/niemozliwa w atari?

> A własciwie po co to?

uzywac ram pod rom ale od $5000

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

12

po odkryciu dwoch bajtow "pod" wektorem resetu czas na bit 7 i mmu
brawo ten pan

przechodze na tumiwisizm

13

Dysponując prostym programatorem układów GAL i jakimś oprogramowaniem, aby wygenerować potrzebny pattern, można zrobić sobie nawet taki MMU, żeby wywrócić całą architekturę ATARI do góry nogami.

Ceterum censeo Germaniam esse delendam.

14

Ta, ochrona pamięci i bankowanie strony zerowej. ;)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

15

bankowanie strony zerowej juz jest  :)

pomidor

16

xxl napisał/a:

uzywac ram pod rom ale od $5000

Zmapować RAM z obszaru $D000..$D7FF na $5000 przez zmianę MMU się nie da. Z prostego powodu - pamięć RAM adresowana jest wszystkimi 16 bitami adresu. Można więc ją przez MMU w dowolnym z 2kB obszarów włączyć bądź wyłączyć, ale przemapować jednego obszaru w inny nie da rady. Żeby to zrobić, trzeba manipulować bezpośrednio liniami adresowymi. Na podobnej zasadzie, jak to robi w 130XE układ C025953. Z OS ROM można to zrobić przez MMU na pewną liczbę sposobów, ponieważ do OS ROM doprowadzane jest tylko 14 (młodszych) linii adresowych, więc tylko MMU decyduje, jaki stan na najstarszych 2 liniach przyporządkować pamięci ROM. Można więc dowolny 2kB jej kawałek przerzucać o wielokrotność $4000 w dół lub w górę. Czyli np. obszar $D000...$D7FF przemapować na $5000...$57FF, ale także równie dobrze na $1000...$17FF czy $9000...$97FF.

Ceterum censeo Germaniam esse delendam.

17

> bankowanie strony zerowej juz jest

tak, ze stosem i kawalkiem pamieci bo rozwoj MEMAC w VBXE sie zatrzymal :p

@Simius:
nie wiem czy wlasciwie uzylem slowa "przemapowac". gdyby b0 i b7 PORTB byly skasowane i w adresach pojawil sie wzor ''11010xxx xxxxxxxx" to MMU czy cokolwiek nie mogloby zgasic najwyzszy bit zeby z adresow $D0 zrobic $50 ?

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

18

Bit 7 PORTB sterujący Self Testem wykorzystałem do obsługi sygnału STROBE w wewnętrznym 8-bitowym interfejsie Centronics, co prawda trzeba go było ręcznie (automatu zrobić nie umiem) przełączać po uruchomieniu komputera, ale działało całkiem dobrze. Bo ten bit w sumie się tylko marnował.
Nie zauważyłem wpływu na RAM - w sumie wtedy nawet o tym nie wiedziałem - jakieś przełączanie itp. Być może ten bit jest odłączany u mnie od reszty płyty, nie pamiętam. Czy na jakiś program może to mieć wpływ?
Schemat (prościutki) czeka na przerysowanie, a kod na przegranie z dyskietek na atr.

19

xxl napisał/a:

> bankowanie strony zerowej juz jest

tak, ze stosem i kawalkiem pamieci bo rozwoj MEMAC w VBXE sie zatrzymal :p

@Simius:
nie wiem czy wlasciwie uzylem slowa "przemapowac". gdyby b0 i b7 PORTB byly skasowane i w adresach pojawil sie wzor ''11010xxx xxxxxxxx" to MMU czy cokolwiek nie mogloby zgasic najwyzszy bit zeby z adresow $D0 zrobic $50 ?

Rozumiem, że cały czas jesteśmy przy pamięci RAM. Nie, MMU nie jest w stanie nic z tym zrobić, ponieważ nie ma żadnej kontroli nad linią A15 doprowadzoną do pamięci RAM. Nawet, gdyby mógł "zgasić", (czyli fizycznie zewrzeć do masy) ten bit (a nie może, bo akurat port, do którego w MMU doprowadzona jest linia A15 może być tylko wejściem) nie przydałoby się to na nic, bo skoro miałby to robić przy kombinacji ''11010xxx xxxxxxxx", to natychmiast jakby to zrobił, kombinacja zmieniłaby się na ''01010xxx xxxxxxxx", więc musiałby "gaszenia" zaniechać, co oczywiście z powrotem przywróciłoby stan ''11010xxx xxxxxxxx" i tak w kółko. Żeby tak zrobić, jak chcesz, trzeba by było wymienić MMU na GAL20V8, odłączyć A15 od FREDDIE-go i podłączyć go do dodatkowego wyjścia nowego MMU.

Ceterum censeo Germaniam esse delendam.

20

> Żeby tak zrobić, jak chcesz, trzeba by było wymienić MMU na GAL20V8, odłączyć A15 od FREDDIE-go i podłączyć go do dodatkowego wyjścia nowego MMU.

powtorze sie bo chce byc absolutnie pewny. chce zeby po skasowaniu b0 i b7 w PORTB pamiec RAM od $5000 do $57FF byla ta zakryta przez ROM w adresach $D000-D7FF. czyli jakiekolwiek odwolanie do adresu %01010xxx xxxxxxxx dalo wartosc pamieci RAM spod adresu %11010xxx xxxxxxxx. chodzi o sposob ktory nie wymaga instalacji w atari hardwaru z wlasna pamiecia. w ktorym atari 800xl,65xe,130xe,xegs bylo by to najlatwiej zainstalowac?

@Simius odbierz maila.

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

21

Jeśli wiesz, z której strony chwycić lutownicę, to najprędzej zmontujesz to sobie "na pająka" jak na rysunku. Linię A15 trzeba odciąć od FREDDIE-go (w 130XE od C025953) i w to miejsce podłączyć sygnał z wyjścia układu.
Tak Ci szkoda tych marnujących się 2kB?

Post's attachments

MAPRAM.JPG 33.85 kb, liczba pobrań: 3 (od 2012-04-06) 

Tylko zalogowani mogą pobierać załączniki.
Ceterum censeo Germaniam esse delendam.

22

> Tak Ci szkoda tych marnujących się 2kB?

tak. czyli teraz atari ma pelne 64kb a nie 62kb ram?

wlasnie naprawiles blad konstruktorow atari.

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

23

mam juz "zainstalowane" w atari. nie ma zadnej plytki czy pamieci. z tego co widze sa to przylutowane 3 kabelki.

PORTB wyglada tak (za atariki):

bit 7: RAM w obszarze $5000-$57FF (1) lub SELF TEST tamże (0)
bit 6: w XEGS gdy BASIC jest wyłączony (bit 1=1), ustawienie tutaj 0 włącza ROM wbudowanej gry Missile Command. W pozostałych modelach nieużywany.
bit 5: w obszarze $4000-$7FFF ANTIC widzi pamięć główną (1) lub dodatkową (0)
bit 4: w obszarze $4000-$7FFF CPU widzi pamięć główną (1) lub dodatkową (0)
bit 3: wybór banku pamięci dodatkowej 16k w obszarze $4000-$7FFF
bit 2: wybór banku pamięci dodatkowej 16k w obszarze $4000-$7FFF
bit 1: RAM w obszarze $A000-$BFFF (1) lub Atari BASIC tamże (0)
bit 0: ROM systemu operacyjnego w obszarze $C000-$CFFF i $D800-$FFFF (1) lub RAM tamże (0)
Wartością domyślną jest $FF.
Działanie bitu 7 jest uzależnione od stanu bitu 0: bit 7 włącza i wyłącza SELF TEST tylko wtedy, kiedy bit 0 jest ustawiony na 1. W przeciwnym razie zmiany stanu bitu 7 są ignorowane.

po modyfikacji:

Działanie bitu 7 jest uzależnione od stanu bitu 0: bit 7 włącza i wyłącza SELF TEST tylko wtedy, kiedy bit 0 jest ustawiony na 1. Jesli bit 0 jest zgaszony bit 7 wacza i wylacza MapRAM. Dla zachowania pelnej kompatybilnosci z rozszerzeniami pamieci xe (compy shop) MapRAM jest dostepny tylko gdy bity dostepu ANTICA i CPU do dodatkowej pamieci XE sa zapalone.

Czyli bez instalacji pamieci dostajemy 2kb RAM na zwyklej 65xe/800xl itd. oraz pewnosc, ze zaden program (nawet ten co zapisuje pod ROM) czy zimny RESET danych nam nie skasuje.

---
Na Grzybsoniadzie w rozmowach wyszlo pewne nieporozumienie - czesc czytelnikow uwazala, ze obszar rejestrow sprzetowych jest odlaczana - to nie jest prawda. rejestry sprzetowe sa normalnie dostepne. To w obszarze SELF-TESTU pojawia sie MapRAM ($5000-)

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

24

Ja sie podłącze....
Candle czy  mozna dodać to do ultimejta ?
Jak tak czy np. w opcji ze sie przelacza w "menu" z i bez.... ?
Tak tylko pytam z ciekawosci....

"wszystko się kiedyś kończy......."

25

ultimate juz wykozystuje ten obszar pamieci do swoich celow

przechodze na tumiwisizm