1

Poczytalem manuale ale nie moge sie doszukac kilku szczegolowych informacji na temat bydowy cartow do Atari XL/XE:

1) Czy cartridge (w sensie 8kB bloki pamieci) mozna dolacac/odlaczac dynamicznie w czasie dzialania komputera przez podanie/zdjecie sygnalow R4/R5? Znaczy, wyczytalem, ze mozna odlaczyc carta ale czy mozna go ponownie przylaczyc?
Chce zrobic taki scenariusz: program inicjalizuje carta po czym bootuje sie normalnie z dyskietki i cart sie odlacza (zdejmuje sygnaly R4,R5). Program moze swobodnie korzystac z obszaru $A000-$BFFF. W pewnym momencie wysyla zapis do obszaru $D5 co jest sygnalem do carta zeby sie znow stal widoczny. Cart ustawia stan wysoki na R4/R5. Program siega do carta po dane po czym go wylacza (znow przez odpowiedni sygnal do strony $D5) itd...
Przy czym takie wlaczanie/odlaczanie nie powoduje przerwania pracy programu (ktory oczywiscie jest poza przelaczanymi obszarami). Inicjalizacja carta wykonuje sie tylko przy resecie.
Czy to sie da zrobic? Jesli tak, to ile cykli trwa podpiecie pamieci carta tak zeby byla widoczna zamiast pamieci komputera?

2) Opis wejsc R4/R5 mowi ze sygnal wysoki podnienia odpowiedni 8kB obszar pamieci. I np cart LOGO ma zwyczajnie zwarte te wejscia z sygnalem +5V (jest to wogole najprostszy cart jaki widzialem). Dlczego wiec w opisie "Cartridge do Atari" w Serious 6 jest dodany przerzutnik na bramkach? Wydaje sie on zbedny, skoro zwykle zwarcie z +5V tez zadziala...

3) Czy jest jakas mozliwosc zeby komputer odczytal cos z carta pobierajac dane ze strony $D5? Wg tego co zrozumialem to nie - ten obszar sluzy tylko do zapisu, np do sterowania cartem. Czy tak jest rzeczywiscie?

Dzieki za pomoc.

2

Ad.1 - na pewno jest taka możliwość, co wykorzystuje kilka DOSów (np. Sparta Dos X i bodajże DOS 2.4 - funkcje car on i car off (lub car +/-)). Co do innych - nie wiem, nie znam się...

Sikor umarł...

3

nosty, Sikor ma rację, w punkcie pierwszym opisujesz działanie carta SpartaDOS X.

KMK
? HEX$(6670358)

4 Ostatnio edytowany przez macgyver (2005-08-16 15:48:11)

punkt 2 - zwarcie z +5V jest równoznaczne z podaniem logicznej "jedynki" - a że jest to rozwiązanie mało eleganckie, to inna sprawa - ja np. zawsze sotosowałem zasadę: "0" logiczne - zwarcie z masą, "1" logiczne - podanie +5V przez rezystor 1-10 kOhm... podanie przez bramki jest również "bardziej eleganckie".

punkt 3 - ponieważ linia oznaczająca odwołania do strony $d5 jest linią wyjściową z układu 74138, który w zależności od stanu linii adresowych wybiera strony od $D0 do $D7 jest możliwe adresowanie całej strony $D500-$D5FF przez cartridge, a ponieważ linia R/W nie ma wpływu na ten sygnał możliwy jest zarówno odczyt z tego obszaru jak i zapis.

5

macgyver - dzieki,

punkt 3 - nie kumam
Przeciez dla strony $D5 nie ma sygnalu sterujacego przepieciem tego obszaru pamieci pod carta! Znaczy: R4/R5 wymuszaja na kompie podmiane odpowiednich 8kB blkow pamieci na carta, a jaki sygnal wymusza to samo dla obszaru strony $D5?
Ja zrozumialem, ze sygnal 0 na CCTL po prostu informuje carta ze program dokonuje zapisu do strony $D5 (odpowiednie sygnalu danych i adresowe beda ustawione poprawnie na szynie carta).
Mozna to wykorzystac do wysylania informacji komputer --> cart, czyli np do sterowania. Ale nie odwrotnie.
Bo sam ZAPIS bedzie wykonany w pamieci wewnetrznej komputera. Odczyt tez.

6

nosty: nie, obszar od $D000 do $D7FF nie jest mapowany w pamięci komputera. Jak w obszarze $D500-$D5FF umieścisz kawałek pamięci to właśnie tam będzie odwoływał się procesor. I będzie to działało w obie strony - zarówno procesor będzie mógł stamtąd odczytywać wartości jak i zapisywać i nic nie trzeba wymuszać - jak nic nie podepniesz pod ten obszar, to procesor będzie odczytywał to co jest na szynie danych "w powietrzu" - ZTCP (mogę się mylić) będą to zera (nie pamiętam jaka jest "defaultowa" polaryzacja).

7

Defaultowo w obszarze $D000-$D7FF siedzą $FF.

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

8 Ostatnio edytowany przez nosty (2005-08-17 09:16:46)

Czyli jak nie ma carta to w Atari jest 2k (8 stron) pamieci mniej do wykorzystania, choc przeciez ta pamiec fizycznie jest ? 8-0
Podsumowujac: Zalozmy, ze podepne do zlacza carta mikrokontroler zamiast pamieci. Jak stwierdzi on, ze na CCTL jest zero i na RW jest sygnal odczytu, to jak wystawi (odpowiednio szybko) na nogach D0-D7 jakis bajt to Atari odczyta dokladnie ten bajt. Super. Tego mi bylo trzeba.
Z punktu widzenia programowania tego mikrokontrolera interesujace sa jeszcze timingi (czyli jak szybko po stwierdzeniu CCTL trzeba wystawic poprawne dane na D0-D7) ale to juz sobie dokombinuje na podstawie tego jak 6502 adresuje i pobiera dane... No chyba ze ktos wie? ;)

I kolejne pytanie praktyczne do praktykow w tym temacie - chce zorbic sobie taka przedluzke do zlacza carta do developingu :) Czy przy szybkosciach taktowania wystepujacych w Atari przewody adresowe, danych i specjalne (RW, R4,R5...) musza miec ograniczona dlugosc albo byc specjalnie prowadzone bo moga byc klopoty? Tego typu problemy sa zawsze cholernie trudne do zdiagnozowania...

9

co do dlugosci tasmy/przedlozki... dyski ide na tasmie 40 zylowej pracuja przy wiekszej czestotliwosci przesylu danych
zdaje mi sie ze powinno ci bez wiekszych problemow dzialac i na 40cm tasmie

jakby co to ja sie nie znam ;) mam papiery na tytul elektronika, ale skoro dawali ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

10

Niby niecale 2MHz Atari to nic, szczegolnie przy uzyciu tasmy. Moze rzeczywiscie dmucham na zimne... Kiedys przez pare tygodni diagnozowalismy problemy z prototypem, ktory mial problemy z powodu zlego poprowadzenia sygnalow i masy na plytce przy szybkosciach okolo 33Mhz. Kur...cy mozna bylo dostac.