atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Wyniki konkursu ABBUC 2024 z 2024-11-02 15:54 (15)
Konkurs na grafikę ATASCII 2024 - głosowanie z 2024-10-27 23:34 (14)
Nowszy RECOIL z 2024-10-27 16:05 (0)
W sobotę KWAS #35 w Krakowie z 2024-10-16 00:17 (7)
Giełda 80/90 w Gdańsku z 2024-10-15 13:45 (5)
Pędź Mietku, pędź! z 2024-10-10 12:44 (42)
ATASCII Compo - 4. edycja z 2024-10-06 19:12 (16)
Gra "Dangerous City" uwolniona! z 2024-10-03 15:49 (23)
Miniaturowe Atari #2 z 2024-09-30 19:15 (13)
Wkrótce "Bubble Bobble" na Atari z 2024-09-27 10:34 (52)
Pokłosie KWAS #34 - Projektowanie cartów Atari z 2024-09-26 20:28 (9)
Nocne Retro Granie w Poznaniu z 2024-09-24 20:35 (1)
O kodowaniu efektów dema na Atari STE z 2024-09-22 15:58 (27)
Co nowego dla Atari Portfolio? z 2024-09-19 19:43 (0)
Najmniejsze Atari cz. II z 2024-09-17 21:07 (4)
Nadlatuje polski sokół! z 2024-09-12 18:44 (16)
Atarowskie maleństwo po raz piąty! z 2024-09-09 18:58 (2)
Pamiętniczek dinozaurowych koderów z 2024-09-05 14:01 (12)
"Mafia" - od zera do supergangstera z 2024-09-03 23:55 (20)
Wkrótce spotkania z 2024-09-02 20:38 (5)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier (konwencja TOSEC)

Opisy gier
"Old Towers" (Atari ST) opisał Misza (19)
Submarine Commander opisał Kaz (35)
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (36)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (3)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (8)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (19)
Basil The Great Mouse Detective opisał Charlie Cherry (125)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
«« nowszestarsze »»

Katalog gier (konwencja Kaz)
Aktualizacja: 2024-10-27
Liczba katalogów: 8503, liczba plików: 37151
Zmian katalogów: 13, zmian plików: 23

0-9 A B C D
E F G H I
J K L M N
O P Q R S
T U V W X
Y Z inne
zipCałość 2934 MB


Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
Kartridż Sparta DOS X
I kolejny odcinek elektronicznych opowieści Zenona z grupy Dial. Niezmordowanie edukuje nas w technicznych zawiłościach naszych magnetofonów, stacji i innych urządzeń. Część poniższych informacji było już osobiście prezentowanych na KWAS-ie (filmik poniżej), ale Zenon przygotował też wersję "pisemną", dla tych, którzy wolą czytać niż słuchać/oglądać:







1. Kartridż Sparta DOS X

Sparta jaka jest, każdy widzi. Na zdjęciu poniżej model piracki, wykonany jako krosowany, z wbudowanym zegarem RTC. EPROM zawiera w sobie już oprogramowanie o rozszerzonych możliwościach. Oryginał wyglądał podobnie, tyle że brak w nim zegara, a scalaki inaczej porozkładane są na płytce. No i posiada profesjonalne ścieżki połączeniowe.



To kartridż, więc uruchamia się na prawach kartridża. Posiada gniazdo umożliwiające włożenie do niego drugiego kartridża, na przykład z językiem Action!, Basic XL, Basic XE czy z grą. Jest to zatem kartridż przelotowy. W podstawowej wersji zawiera w sobie pamięć EPROM o pojemności 64kB, w której umieszczono wszystko co trzeba. A właściwie... nie. Bo powstał model o rozszerzonej pojemności, do 128kB, a nawet 256kB, tyle że ten ostatni nie jest oprogramowany (przynajmniej nic mi o tym nie wiadomo). Jakby nie było, latka lecą, a takowe wykonałem już w 2008 roku. Potem zbudowałem moduł zawierający w sobie Sparta DOS X 256kB, RAM-Cart 1MB i zegar. To trochę pobocznie, na końcu wstawię fotki, a teraz wracamy do tematu zasadniczego.



2. Schemat Sparta DOS X

Schemat pochodzi z moich zbiorów (powiększona wersja schematu dostępna na forum tutaj). Na jego podstawie tworzone były takie lub inne modyfikacje, stąd naniesione poprawki. Był czas, że na giełdzie miałem możliwość zakupu takiego kartridża, ale brak pieniędzy i zdecydowania spowodował, że okazja przeszła koło nosa. Po latach, około roku 1998/99, poznałem gościa z Kędzierzyna-Koźla, który pozwolił mi ze swoją Spartą zrobić co zechcę, więc wyrysowałem schemat według połączeń na płytce, skopiowałem zawartość EPROM i… zbudowałem programator, by po raz pierwszy w życiu zaprogramować EPROM-kę. I Sparta, jako kopia, ożyła. Potem było trochę zabawy, innych zainteresowań, a teraz wracam do tego tematu. Rzut oka na schemat - wyróżnić w nim można kilka bloków, spełniających odpowiednie zadania, by to działało.





3. Dekoder adresowy

Zbudowany jest na układzie 74138. Jest to dekoder 1 z 8. Czyli na jednym z ośmiu wyjść pojawia się sygnał, w zależności od adresu podanego na jego wejścia adresowe A, B, C. Układ uaktywniany jest trzema sygnałami. Taka kreseczka „\” przy opisie sygnałów oznacza że aktywnym stanem sygnału jest zero logiczne.



1) podstawowy sygnał zegarowy ATARI różnie w literaturze oznaczany, tu F/2;
2) sygnał wyboru strony $D5, to ta przewidziana do obsługi kartridża, oznaczany CCTL\;
3) sygnał szyny adresowej A4.

Spełnienie warunku: F/2 =1; CCTL\=0; A4=0 powoduje, że na wyjściu dekodera pojawi się zero logiczne. Na którym? Stanowią o tym sygnały szyny adresowej A5, A6, A7. Jeżeli wszystkie są jedynką, adresowane jest wyjście 8 dekodera, oznaczone Y7\. Zatem dekoder wygeneruje zero logiczne na wyjściu według poniższej tabelki (x - sygnał dowolny):


CCTL\A7A6A5A4A3A2A1A0
$D51110xxxx


Stąd otrzymujemy adres, a właściwie adresy, pod którymi dostępny jest rejestr sprzętowy, zarządzający włączaniem, przełączaniem tego co trzeba (opis w dalszej części). Adresami tymi są $D5E0-$D5EF. Innymi słowy, dekoder adresowy Sparty wygeneruje na wyjściu impuls zera logicznego wtedy, i tylko wtedy, gdy na szynie adresowej pojawi się dowolny adres z przedziału $D5E0-$D5EF.

Aby wygenerować impuls zegarowy wpisujący daną do rejestru sprzętowego potrzebny jest jeszcze sygnał R/W\. Gdy jest jedynką logiczną, procesor żąda odczytu. Gdy jest zerem, żąda zapisu. Zrealizowane jest to na bramce NOR typu 7402. Do bramki doprowadzone są dwa sygnały, z wyjścia dekodera Y7\ i sygnał R/W\. Jeżeli obydwa są zerem logicznym, na wyjściu bramki pojawia się impuls dodatni i następuje wpis danej do rejestru sprzętowego. W wygenerowanym impulsie ważne jest zbocze narastające, dlatego że rejestr sprzętowy zbudowany jest z przerzutników typu „D”, wyzwalanych narastającym zboczem. To ważne. Z analizy schematu i budowy rejestru sprzętowego wynika, że jest to rejestr TYLKO DO ZAPISU. Nie można odczytać jego zawartości. Wykonanie rozkazu LDA $D5Ex… do niczego nie prowadzi, odczyt na pewno jest błędny, a właściwie nie odzwierciedla rzeczywistej zawartości rejestru. Oczywiście można ten rejestr rozbudować o możliwość jego odczytu, ale twórcy Sparty zaprojektowali tylko opcję zapisu.

Aby Sparta współpracowała prawidłowo z innymi kartridżami, spełniony musi być podstawowy warunek. Jeżeli dodatkowy kartridż ma w swojej strukturze również rejestr sprzętowy, jego adres musi być inny od tych przewidzianych, zastrzeżonych dla Sparty. Inaczej nastąpi konflikt i działać to będzie różnie. Ten warunek spełniają wyżej wymienione kartridże, ale na przykład nie spełnia go RAM-Cart, który ma rejestr sprzętowy umieszczony pod dowolnym adresem strony $D5 (wiele inych kartridży ma podobnie, stąd problemy). Skutek: wpis czegokolwiek do rejestru sprzętowego Sparty powoduje jednocześnie wpis czegoś tam do rejestru sprzętowego RAM-Cart-a. Całość nie eksploduje i nic się nie zepsuje, komputer najwyżej zawiesi się, a program, jak dobrze pójdzie, to pójdzie w maliny. Rada na to taka, by do RAM-Cart-a dobudować dekoder, reagujący tylko na adres jemu przypisany, na przykład $D500, i po kłopocie. Późniejsze wersje RAM-Cart-a wyposażałem w taki dekoder i powinno być dobrze.

Ciekawostka: literatura podaje, że wszelkie operacje ZAPIS - ODCZYT powinny odbywać się na zboczu opadającym sygnału zegarowego F/2. Analiza schematu Sparty prowadzi do wniosku że tak nie jest, a rysunek poglądowy pokazuje, że dla rejestru sprzętowego Sparty dzieje się to na narastającym zboczu sygnału zegarowego F/2. Na wykresie kolorem czerwonym zaznaczone jest zbocze narastające. Aby lepiej całość zobrazować, nie są prawidłowo zachowane przesunięcia czasowe poszczególnych sygnałów. Wykres ma tylko zobrazować, co i jak się tworzy.



Dlaczego tak jest. Proszę zwrócić uwagę, że dane do wpisu do rejestru sprzętowego pobierane są z szyny adresowej, konkretnie, ważne są sygnały A0, A1, A2, A3. Normalnie dane powinno się pobierać z szyny danych. Hmm... projektanci wiedzieli, co robią. Można tak i tak, literatura nie wszystko tłumaczy. Więc kiedy dane do wpisu pobiera się z szyny adresowej, zboczem wpisującym powinno być zbocze narastające sygnału zegarowego F/2. Nie będę tłumaczył dlaczego tak być musi, tu jest temat o Sparta DOS X. Ale takie sterowanie rejestrem sprzętowym ma jeszcze inne konsekwencje. Właściwie jest to zaleta. Bo, jeżeli do zapisu używa się szyny danych, należy wykonać następującą sekwencję rozkazów: LDA #DANA, i potem STA ADRES REJESTRU SPRZĘTOWEGO. A w Sparcie wykonuje się to tak: STA ADRES REJESTRU SPRZĘTOWEGO, z dowolną zawartością akumulatora. Oszczędza się bajty pamięci, bo nie jest potrzebne LDA #DANA, i przyspiesza wykonanie wpisu, bo od razu adresujemy rejestr. Niby nic, ale szybciej. Sam adres jest jednocześnie daną do wpisu (A0-A3). Tożsame rozwiązanie ma kartridż Basic XL, Basic XE czy inne. Oczywiście rejestry są pod innymi adresami niż te, które zajmuje Sparta.



4. Rejestr sprzętowy

Zbudowany jest na układzie 74175. Zawiera w sobie cztery przerzutniki typu „D” wyzwalane zboczem narastającym. Przerzutniki mają wspólne wejście zerujące i wyjścia proste Q i zanegowane Q\. Wejście zerujące połączone jest z układem R, C generującym krótki ujemny impuls w momencie włączenia zasilania. Przerzutniki zostają wyzerowane i rejestr odpowiednio adresuje pamięć EPROM, by mógł nastąpić start (BOOT) Sparty, według nagłówka, jaki stosuje się dla kartridży. Tu pominę jego opis, wspomnę tylko, że chodzi o sześć bajtów umieszczonych pod adresami $BFFA-$BFFF pamięci Atari, pod którymi między innymi ostatecznie znajdzie się włączony blok 8kB pamięci EPROM Sparty.



Dioda w członie R, C przyspiesza rozładowanie kondensatora po wyłączeniu zasilania, tym samym może szybciej nastąpić ponowny start Sparty po ponownym włączeniu zasilania. I tu... pstrykanie wyłącznikiem zasilania Atari nie służy jego zdrowiu. Zatem mała modyfikacja układu reset poprawia sytuację. Chodzi o dobudowanie przycisku RESET, którego normalnie kartridż nie posiada. Co to daje? Jak się coś zawiesi, nie potrzeba wyłączać komputera, wystarczy nacisnąć ten RESET, spowoduje to wyzerowanie rejestru sprzętowego. Teraz naciśnięcie RESET w Atari uruchamia Spartę. Oczywiście jeżeli po drodze nie nastąpiły jakieś nieprzewidziane zdarzenia we wnętrznościach Atari.

Do wejść „D” przerzutników doprowadzone są sygnały szyny adresowej A0, A1, A2, A3. Zatem możliwe jest zaadresowanie fizycznego rejestru (układu scalonego) i wpisanie do niego czegoś pod szesnastoma adresami, wspomnianymi wcześniej $D5E0-$D5EF. Rejestr sprzętowy Sparty możemy potraktować jako jeden rejestr, dostępny pod szesnastoma adresami, lub jako szesnaście rejestrów, każdy pod innym, sobie przypisanym, adresem, choć elektronicznie jest to JEDEN REJESTR. Przygotowana tabelka pokazuje, co się osiąga wpisując coś do rejestru (adresując go).



I tak, wydanie polecenia STA $D5E0 spowoduje, że wybrany zostanie bank numer 7 (BANK7), o wielkości 8kB, i włączony w przestrzeń adresową Atari $A000-$BFFF. A wydanie polecenia STA $D5E8, wyłączy Spartę, a w przestrzeń pamięci Atari włączona zostanie pamięć dodatkowego kartridża (jeżeli oczywiście jest włożony do gniazda przelotowego Sparty). O ile pamięć Sparty zawsze włączana jest jako bank 8kB, to dodatkowy kartridż może być włączany różnie. Tu do dyspozycji jest przestrzeń pamięci Atari od adresu $8000-$BFFF. O tym jak zostanie zagospodarowana, decyduje konstrukcja (elektronika) konkretnego kartridża.

Proszę zauważyć że pamięć EPROM Sparty dzielona jest na banki po 8kB. Jest ich osiem. Wybierane, adresowane są sygnałami A0, A1, A2 szyny adresowej gdy A3=0. W rzeczywistości banki adresowane są sygnałami pochodzącymi z wyjść zanegowanych Q\ rejestru sprzętowego. Stąd STA $D5E0 to adres najniższy, ale wybierany jest bank najwyższy. I tu tkwi tajemnica, dlaczego nagłówek kartridża Sparta DOS X znajduje się w sześciu najwyższych adresach pamięci EPROM. Bo właśnie, reset rejestru sprzętowego, przy załączeniu zasilania, ustawia go jako 0, 0, 0, 0, a sygnały do wyboru banku, jak wspomniałem, pobierane są z wyjść zanegowanych, czyli jako 1, 1, 1. Tym samym EPROM adresowana jest jako A13, A14, A15 = 1, 1, 1. Może to trudne do zrozumienia na podstawie opisu, więc schematycznie przedstawia się to tak:



BANK7, adresowany jako $D5E0, dostępny jest pod najwyższymi adresami pamięci EPROM, jako blok 8kB. Z kolei pod jego najwyższymi adresami umieszczony jest nagłówek kartridża. Czerwona pozioma kreska obrazuje gdzie. Dla porównania, rejestr RAM-Carta adresowany jest inaczej i inaczej adresowane są banki pamięci, stąd bankiem, w którym znajduje się nagłówek kartridża jest BANK0 (jeżeli RAM-Cart używany jest w tej roli). Dwie poziome czerwone linie obrazują gdzie należy go umieścić i szukać. I rzecz ważna dla Sparty: Sparta ZAWSZE umieszcza swoje banki, o pojemności 8kB, pod adresami $A000-$BFFF Atari. Nie ma możliwości włączenia banku w przestrzeń $8000-$9FFF. No chyba że przebuduje się elektronikę lub programowo to zrobi (przepisując zawartość spod $A000… pod $8000…). Sprzętowo ZAWSZE włącza się jak wyżej opisane. Wracamy do rejestru sprzętowego. Zapisywany jest impulsem (zboczem narastającym), co zostało już wytłumaczone, jak się dzieje.



5. Układ logiczny

Z rejestrem współpracuje układ logiczny, zbudowany na trzech bramkach typu NOR 7402. Układ logiczny generuje dwa sygnały, odpowiednio przełączające multiplekser 74257. Dzięki temu możliwe jest korzystanie ze Sparty, dodatkowego kartridża włożonego do gniazda przelotowego. No i całość można odłączyć od wnętrzności Atari, pomimo że umieszczone jest w gnieździe kartridża. Sygnał A/B wybiera, które sygnały z wejść multipleksera pojawią się na jego wyjściu (A/B=0 z wejść A, A/B=1 z wejść B), a sygnał E\ uaktywnia multiplekser lub wprowadza go w stan tak zwanej wysokiej impedancji (E/=0 uaktywniony, E/=1 zablokowany). Z tabelki powyżej wynika, że Sparta zajmuje szesnaście adresów na stronie $D5. Ale potrzebnych jest tylko dziesięć. Niektóre opcje dostępne są pod czterema adresami. I tak:

1) jeżeli A3=0, to sygnałami A2, A1, A0 wybiera się banki 0-7 po 8kB każdy;
2) jeżeli A3=1 i A2=0, to Sparta jest wyłączona, a uaktywnia się kartridż włożony do gniazda przelotowego (jeżeli jest włożony). Opcja ta dostępna jest pod czterema adresami $D5E8-$D5EB;
3) jeżeli A3=1 i A2=1, to zarówno Sparta jak i dodatkowy kartridż są odłączone od Atari. Jak wyżej, opcja dostępna jest pod czterema adresami $D5EC- $D5EF.

Ogólnie: sygnały A3, A2 rządzą włączaniem, A2, A1, A0 wyborem banku. Dlaczego tak to zrobione? Bo upraszcza się elektronika, a że strona $D5 oferuje 256 adresów, więc można poszaleć. O resztę pytać projektantów Sparta. I ważna uwaga. To, że Sparta jest wyłączona, wcale nie oznacza, że jest wyłączona, niedziałająca. Pisząc wyłączona, mam na myśli, że pamięć EPROM Sparty jest odłączona od wnętrzności Atari. Bo oczywistym jest, że procedury umieszczone w EPROM mogą i są przepisywane w inne obszary pamięci Atari, a gdy się to dokona, pamięć EPROM może zostać odłączona, a SPARTA działa sobie w najlepsze. Zwolni się zajmowany obszar, który normalnie przypisany jest dla Basica, i wszystko działa jak trzeba. A jak zagadnienie rozwiążą programiści używając Sparty, to osobny temat. Jest rzeczą niedopuszczalną, by w tej samej przestrzeni adresowej Atari włączona była pamięć EPROM Sparty i pamięć EPROM dodatkowego kartridża. Stąd opcje:

1) Sparta włączona, dodatkowy kartridż wyłączony;
2) Sparta wyłączona, dodatkowy kartridż włączony;
3) Sparta i dodatkowy kartridż wyłączone.

6. Multiplekser

Zbudowany jest na układzie 74257. Stanowi właściwy „przełącznik”, poprzez który do Atari podłączona jest Sparta lub dodatkowy kartridż. Aby nie zaciemniać schematu, nie narysowałem czterech oporników, które bezwzględnie są wymagane dla prawidłowej pracy całości, ustalają odpowiednie stany logiczne i nieco inaczej niż na zasadniczym schemacie, wyrysowane są doprowadzone do niego sygnały. Powyższy schemat jest tak narysowany, że sygnały z lewej strony to sygnały dostępne na gnieździe przelotowym, a te z prawej to sygnały gniazda kartridża w Atari.



Multiplekser sterowany jest dwoma sygnałami A/B i E\, generowanymi przez układ logiczny, na podstawie sygnałów pobieranych z wyjść rejestru sprzętowego. Gdy pojawił się adres $D5E0, rejestr zapisany jest jako 0, 0 ,0, 0, bo A3-A0 = 0000. Sygnały z wyjść zanegowanych Q2/, Q1/, Q0/ wybierają BANK7 pamięci EPROM. Sygnały Q2, Q2/, Q3/, przetworzone przez układ logiczny, pojawiają się na jego wyjściu jako A/B=1, E/=0. Multiplekser zostaje odblokowany i jego wejścia „B” połączone są z wyjściami. Obrazują to połączenia zaznaczone na czerwono. Zatem od strony Atari RD4=0, RD5=1 i w przestrzeń adresową $A000-$BFFF Atari włączony jest BANK7. System to wykryje i nastąpi BOOT z kartridża, tu ze Sparty. Sygnały S4/ i S5/ dodatkowego kartridża przyjmują stan jedynki logicznej, zatem jego pamięć nie może być uaktywniona. Natomiast pamięć EPROM Sparty uaktywniona jest sygnałem S5/ od strony Atari, co widać na schemacie zasadniczym. I wszystko działa. Kolejne sekwencje przełączeń zainteresowani mogą prześledzić według zamieszczonego powyżej, krótkiego opisu. I tak, gdy sygnał E/ przyjmie stan wysoki, to multiplekser jest zablokowany (stan wysokiej impedancji) i wszystko jest odłączone od Atari.



7. Pamięć EPROM

Połączona jest standardowo - doprowadzona do niej szyna danych i adresowa oraz sygnały z rejestru sprzętowego „siekają” ją na fragmenty (banki) po 8kB, włączane w przestrzeń adresową Atari $A000-$BFFF. Pinem CS/ steruje sygnał S5/, pobierany z gniazda kartridża, natomiast pinem OE/ wyjście Q rejestru sprzętowego, sterowanego sygnałem A3. Pin OE/ przyjmuje poziom zera logicznego wtedy i tylko wtedy, gdy Sparta jest włączona (A3=0), co pokazuje wyżej zamieszczona tabelka.

To tyle o podstawowej wesji Sparta DOS X. Mając ją, chce się jednak więcej. Po co? Ano w pamięci EPROM można umieścić dodatkowe procedury, realizujące zamysł programisty. Jest przeszkoda skutecznie blokująca takie zapędy. Po pierwsze, pamięć EPROM jest już wypełniona po brzegi i nie ma miejsca na nowe procedury. Po drugie, brak bitów do sterowania. Rozszerzyć pamięć nie problem, wstawi się kość 128kB zamiast 64kB i po kłopocie. Ale skąd wziąć bity do przełączania?



8. Rozszerzenie do 128kB

Patrzymy na dekoder adresowy 74138. Widać, że sygnałem uaktywniającym jest A4, który musi przyjąć wartość zero. Tu jest rozwiązanie! Sygnał A4 należy odłączyć od wejścia E/, wejście to na stałe połączyć do GND i działa. Zyskaliśmy wolny sygnał, bit A4, który wykorzystać można do sterowania pamięcią 128kB. Jeśli dobrze pamiętam, zrealizował to Pasiu. Schemat i opis jak to działa:



Potrzebny dodatkowy układ 74175, ten z prawej strony. Do jednego z wejść „D” podłączony jest sygnał A4, a z wyjścia Q/ przerzutnika sterowana jest pamięć EPROM 128kB. I tak, sygnał A4 adresuje jedną lub drugą połówkę (64kB) pamięci. Sygnał do sterowania wejściem adresowym A16 EPROM pobiera się z wyjścia zanegowanego Q/ dołożonego przerzutnika celowo, by nagłówek kartridża zamieszczony został pod najwyższymi adresami pamięci. Oczywiście wejście zegarowe i zerujące drugiego układu 74175 połączyć należy z odnośnymi sygnałami lewego rejestru. Co zyskaliśmy? Dodatkowe 64kB pamięci, do umieszczenia potrzebnych procedur. Co straciliśmy? Takie rozwiązanie powoduje, że teraz Sparta zajmuje nie szesnaście, a trzydzieści dwa adresy na stronie $D5. Coś za coś. Te dodatkowe adresy to $D5F0-$D5FF. I tu potrzebnych jest tylko dziesięć. Marnotrawstwo, to już dwanaście adresów „zagubionych”, wydaje się bezpowrotnie straconych.

Idąc tym tokiem rozumowania można dalej rozszerzać pamięć dla systemu Sparta. W podobny sposób użyć sygnału A5, potem A6 i w końcu A7. Tyle tylko, że za każdym razem podwaja się ilość zajmowanych adresów, którymi adresowany będzie rejestr sprzętowy. Rozwiązanie nie do przyjęcia. Chyba, że działać ma tylko Sparta, bez dodatkowych kartridży wpinanych w jej gniazdo przelotowe. A w tym miejscu warto wspomnieć że Spartę budować można jako WEWNĘTRZNĄ. Polega to na tym, że jej moduł wbudowuje się do środka, pod obudowę Atari. Zysk taki, że w wolne gniazdo kartridża włożyć można dodatkowy, nie powstanie strzelista kanapka. Wada zaś taka, że na płycie Atari trzeba ciąć ścieżki. Do zagadnienia powiększenia pamięci Sparty można podejść też z innej strony. Jak popatrzymy na tabelkę (tu jej fragment), to rozbudowując dekoder adresowy, można użyć powtarzających się adresów do sterowania dodatkową pojemnością pamięci by otrzymać 256kB.



To moment, gdy zarówno Sparta, jak i dodatkowy kartridż, są wyłączone. Adresy $D5EC i $D5ED zachowują dotychczasowe działanie, natomiast adresy $D5EE i $D5EF służą do włączenia/wyłączenia dodatkowej pamięci o pojemności 128kB. Zaleta: nie zwiększa się ilość potrzebnych adresów do sterowania, wykorzystuje się te które i tak są już „zajęte”, inne mają tylko teraz przypisanie i tyle. Potrzebne dodatkowe przerzutniki jako rozszerzenie rejestru sprzętowego to układy 7474. Jeden z nich pełni rolę, jaką w wersji 128kB przejął na siebie dodatkowy układ 74175, a że wejście zegarowe drugiego przerzutnika sterowane jest z wyjścia bramki 7420 nie może to być układ 74175. Schemat opracowałem, jakieś tam testy wykonałem, ale programiści muszą się wypowiedzieć, czy takie rozwiązanie ma sens i czy nie zawiera błędu. Poniżej całość. U…u…! Wkradł się błąd. Przy opisie dekodera 74138 powinno być Y7/ a nie Y0/. Przełączenia dodatkowej pamięci 128kB dokonuje się, gdy Sparta i dodatkowy kartridż są odłączone, zatem zrobić to musi „zewnętrzna” procedura umieszczona w pamięci Atari.

Dwie czterowejściowe bramki NAND 7420 wykrywają potrzebny adres, i tworzą impuls zegarowy dla przerzutnika, a sygnał A0 (0 lub 1) stanowi o tym, czy przerzutnik zostanie ustawiony czy wyzerowany, tym samym, czy sygnał adresowy A17 EPROM zaadresuje dolną czy górną połówkę pamięci.



EPROM, EPROM, EPROM… pamięć służyła i się wysłużyła. Pojawiły się pamięci zapisywalne FLASH i od razu pomysł, by takowe użyć. Zysk taki, że nie potrzeba kasować i programować EPROM (kto ma programator, ten szczęśliwy) i w dowolnej chwili wprogramować nowe, lepsze oprogramowanie. I zrobić to można w domu, u siebie na biurku. Taki model powstał, a ja otrzymałem zapytanie, czy normalny kartridż też da się tak przerobić. O tym modelu zbudowanym na GAL-u słyszałem, ale nie miałem zielonego pojęcia, jak jest zrobiony. Zabrałem się za główkowanie i wymyśliłem. Zapewne rozwiązanie jest tożsame z tym, które już działa. Nie wiem. Tu zamieszczam schemat jak to zrobić. I tu wkradł się błąd! Przy opisie dekodera 74138 zamiast Y0/ powinno być Y7/.



9. Sparta DOS X "fleszowana"

Potrzebna będzie dodatkowa bramka typu NAND, z dodanego układu 7400, i przełącznik oraz opornik. Już to gdzieś opisywałem, tu zamieszczam by było jako całość.



Na płytce Sparty dokonuje się dwóch cięć, w miejscach oznaczonych „x” na schemacie. Dobudowuje i łączy dodatkową bramkę NAND, co pokazują grube linie. Zamiast EPROM stosuje się oczywiście EEPROM i potrzebne oprogramowanie, które wprogramuje inny wsad do pamięci. Dzieje się to w momencie, gdy Sparta jest włączona i można wybierać banki. Bo programowanie odbywa się na raty, bankami, które trzeba podstawić pod adresy $A000-$BFFF w Atari. Użytkownik nie musi wiedzieć, co i kiedy się dzieje, wszystko robi oprogramowanie. A programowanie polega na ustawieniu przełącznika „P” w pozycję „A”, po uruchomieniu oprogramowania, należy przestawić przełącznik w pozycję „B” i gotowe. To taki PROTECT, by przypadkowo niczego nie wykasować z pamięci. Jaka wada takiego rozwiązania? Nie wszystkie pamięci EEPROM można tak zaprogramować. Winne są same pamięci EEPROM, dla których wymyślono różne algorytmy programowania. A oprogramowanie nie uwzględnia wszystkich przypadków. Więc trzymać należy się zaleceń, jakie pamięci stosować. Ja dla testów i prób w czasie uruchamiania stosowałem pamięć EEPROM AT29C010A, a Trub napisał procedury, których używałem, by testować powstające rozwiązanie.



10. Kartridż "Paulinka"

Ponieważ bawiłem się Spartą od strony elektronicznej, więc wymyśliłem sobie też taki model: Sparta DOS X 256kB, RAM-Cart 1MB i zegar RTC, wszystko w jednym urządzeniu. Model nazwałem "Paulinka" i w całym wszechświecie jest tylko jedno takie urządzenie, mam je ja. Nie wiem czy wszystko jest dobrze opracowane i rozpracowane, nie mam do niego oprogramowania. Testy wykonywałem posługując się Atari Basic-iem, między innymi instrukcjami POKE i PEEK. Niby działa, ale... Szczegółów nie opisuję, zamieszczę tylko zdjęcie. Początki powstawania schematu i budowa modelu to rok około 2005.



Wyjęte są z podstawek układy scalone, by było widać jak wszystko jest zrobione. I na tym koniec. Jak coś źle opisałem, coś pokręciłem i jest nie tak, można sprostować, poprawić, uzupełnić. Jeszcze informacja, że modele Sparty występować mogą jako normalne i tak zwane krosowane. Jaka jest różnica? Od strony oprogramowania żadna. Ale połączenia na płytce są inne. Dotyczy to połączenia pamięci do szyny danych i adresowej. Wersja normalna: łączy się sygnał A0 z A0, A1 z A1, itd. Dla wersji krosowanej jest A6 EPROM połączone z A0 gniazda, A7 z A1, itd, według schematu. Dlaczego takie dziwactwo? To nie dziwactwo. Dzięki temu łatwiej na płytce poprowadzić ścieżki, bo jest mniej zawijasów. Dwa - kto nie kumaty, nie wie jak się do tego dobrać, takie zabezpieczenie przed piraceniem. Więc proszę zwrócić uwagę na posiadany model i do niego dobrać wsad, który też występuje jako normalny i krosowany. Pomyłka skutkuje brakiem działania egzemplarza, pomimo tego, że u kolegi zadziała.

Zenon/DIAL, dnia 16 sierpnia 2020 roku.

2020-08-22 08:29 by Kaz
komentarzy: 5
Kaz @2020-08-22 10:37:44
Ciekawi mnie, czy ktoś w Polsce miał w starych czasach oryginalny Sparta DOS X (poza Wojtkiem Zientarą)?
pin @2020-08-22 15:46:27
Tak. Albo Lizard, albo Draco z czego pamiętam.
jurekw @2020-08-22 20:10:29
kolejny soczysty artykuł Zenona. brawo!
as... @2020-08-24 21:21:28
Ja miałem a nawet raczej mam, w tamtych czasach mając stację któŸa miała w romie toms navigator-a albo drugą z mydosem 4,5.

Sparta dos x nie uzywałem, próbowałem parę razy ale wygoda ala nc górowało.
Kartka kupiłem jak dobrze pamiętam w Karinie około 95/96 roku .
Lizard @2021-07-16 23:36:52
Draco miał oryginalną, wmontowaną w środek. Ja miałem pirata.
nickname
e-mail / website (opcjonalnie)
Aktualne tematy
ATARI BASIC: problem z wczytaniem... (3)
ostatni: 09-11-2024 18:42, Peri Noid
Zmiany / usprawnienia na AOL (317)
ostatni: 09-11-2024 18:07, jhusak
Silly Venture 2024WE - in tribute... (85)
ostatni: 09-11-2024 18:06, as...
Zewnętrzne 512 ram z gniazdem carta (20)
ostatni: 09-11-2024 17:07, starymarabut
RMT hacking (257)
ostatni: 09-11-2024 16:57, emkay
Nowe okładki gier - ZYBEX (452)
ostatni: 09-11-2024 12:15, lexx
IRQ i DLI (21)
ostatni: 09-11-2024 12:15, jhusak
Listopadowy sztab warszawski (7)
ostatni: 09-11-2024 04:26, as...
Zmiany w bazie gier, dem, użytków (965)
ostatni: 08-11-2024 23:46, CharlieChaplin
Lord of the Orb (68)
ostatni: 08-11-2024 23:26, XaVeR
Ciekawostki (5588)
ostatni: 08-11-2024 10:02, bruno_j
Ruf in Trouble (21)
ostatni: 07-11-2024 22:09, Mq
szukam programow do przetestowani... (6)
ostatni: 07-11-2024 19:26, gregor2
Natural Excess (4)
ostatni: 07-11-2024 17:08, jhusak
Atari vs Amiga vs Reszta świata (583)
ostatni: 07-11-2024 13:07, nogorg

Kategorie Forum Atarum

Użytkowników: 2843
Ostatnio zarejestrowany: kulfon
Postów ostatniej doby: 49

Spotkania i zloty / Meetings & Parties

Najbliższe imprezy
link do naszych spotkań online, zapraszamy do odwiedzenia kanału zoom również przez kod QR:

KWAS

Kalendarz AOL


Społeczność/Community


Rozmawiali
Wywiad z Mariuszem Jaroszem i Kaz (13)
Wywiad Dracona z Mr. Bacardim i Kaz (15)
Tomasz Dajczak i Kaz (22)
Lech Bąk i "Świat Młodych" i Kaz (26)
Michał "Mike" Jaskuła i Kaz (30)
F#READY i Dracon (22)
Daniel „Arctus” Kowalski i Dracon (25)
KATOD i TDC (15)
Mariusz Wojcieszek i "Adam" (17)
Romuald Bacza i Ramos (16)
Śledzenie Amentesa i Larek (9)
Leszek Łuciów i Charlie Cherry (17)
TO JUŻ ZA TOBĄ: rozmowa z Bobem Pape i cpt. Misumaru Tenchi (39)
Rob Jaeger i Emu (53)
Jacek "Tabu" Grad i Dracon (0)
Alexander "Koma" Schön i Kaz (0)
Maciej Ślifirczyk i Charlie Cherry (0)
Jarek "Odyniec1" Wyszyński i Kaz (0)
Marek Bojarski i Kaz (0)
Olgierd Niemyjski i Ramos (0)
«« nowszestarsze »»

Stragan
Nowe, pojemniejsze RAM-Carty oferuje Kaz (21)
"mouSTer" czyli myszka ST oferuje Kaz (30)
Atari USBJoy Adapter oferuje Jakub Husak (0)
Programy: Kolony 2106 oferuje Kaz (7)
Sprzęt: rozszerzenia oferuje Lotharek (111)
Gadżety: naklejki, pocztówki oferuje Sikor (11)
Sprzęt: cartridge RAM-CART oferuje Zenon (7)
Miejsce na drobne ogłoszenia kupna/sprzedaży oferuje Kaz (58)
Sprzęt: interfejs SIO2IDE oferuje Piguła (0)
Sprzęt: interfejs SIO2SD oferuje Piguła (55)

Użytki/Utils
Sprzęt/Hardware

Wynalazki
Atari i Bluetooth napisał Kaz (34)
SIO2PC-USB napisał Larek (45)
Nowe SIO2SD napisał Larek (0)
SIO2SD w CA12 napisał Urborg (12)
Ratowanie ATMEL-ów napisał Yoohaas (12)
Projektowanie cartów napisał Zenon (12)
Joystick do Atari napisał Larek (54)
Tygrys Turbo napisał Kaz (11)
Testowałem "Simple Stereo" napisał Zaxon (5)
Rozszerzenie 1MB napisał Asal (20)
Joystick trzyprzyciskowy napisał Sikor (18)
Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
Jak wykonać płytkę drukowaną? napisał Zaxon (26)
Rozszerzenie 576kB napisał Asal (36)
Soczyste kolory napisał scalak (29)
XEGS Box napisał Zaxon (13)
Atari w różnych rolach napisał Różyk (9)
SIO2IDE w pudełku napisał Kaz (5)
Atari steruje tokarką napisał Kaz (15)
DarkMouse napisał Kaz (7)
«« nowszestarsze »»