trub page about Atari

SRAMCharger

[English version]

Producent stacji Indus GT, krótko przed zakończeniem działalności oferował kartę rozszerzającą Indus RamCharger oraz system CP/M, pracujący z procesorem Z80, w jaki stacja dysków była wyposażona. Zdjęcia istniejących egzemplarzy karty RamCharger pozwalają stwierdzić, że posiadała ona m.in. 64kB pamięci RAM (dynamicznej) oraz układ typu PAL sterujący rozszerzeniem. Skopiowanie karty byłoby więc zadaniem trudnym. Na szczęście zachowały się (częściowo uszkodzone) obrazy dyskietek systemu CP/M przystosowanego do Indus GT oraz schematy elektroniczne stacji. Na podstawie ich analizy okazało się, że sposób zarządzania pamięcią przez oprogramowanie oraz rozwiązania sprzętowe istniejące w zwykłej, nierozszerzonej stacji umożliwiają dołączenie dodatkowej, wymaganej przez CP/M pamięci w stosunkowo prosty sposób.

Stacja Indus GT z zamontowaną kartą RamCharger

Stacji Indus GT w Polsce jest niewiele. Okazuje się jednak, że popularna "czarna" stacja LDW Super 2000 jest, nie tylko wizualnie, klonem Indusa. Różnice sprowadzają się do innego układu zasilającego oraz obsługi napędu Roctec (zamiast oryginalnego Tandon). Choć płytka elektroniki jest przeprojektowana, pozostawiono na niej elementy niezbędne dla naszego rozszerzenia. Prawdopodobnie w firmie LDW (czy Karen) nie zdecydowano się ich wyrzucić (choć pewnie nie wiadomo było po co one są ;). Dzięki temu budowa karty pamięci jest dość prosta, tym bardziej, że użyjemy pamięci statycznej, zamiast dynamicznej (stąd SRAMCharger ;)). Trochę więcej pracy jest w stacji CA-2001, powstałej na podstawie LDW, ale tutaj również nie ma poważniejszych utrudnień. Przeróbki płyty głównej stacji nie zmieniają jej funkcjonalności (jeżeli zdecydujemy się zbudować rozszerzenie w formie odłączanej karty). Dzięki rozszerzonej pamięci w stacjach z dodatkową pamięcią możliwe jest także buforowanie ścieżek.

Uwaga! W stacji powinien być pozostawiony oryginalny firmware (a nie np. TOMS Turbo). Dla Indus GT i LDW Super 2000 firmware powinien być w wersji "1.20", a dla CA-2001 "2.01". Jeżeli tak nie jest, zobacz niżej.
Skąd wziąć gotowe rozszerzenie ?
Użytkownik AtariAge TF_HH robi gotowe, kompaktowych rozmiarów płytki rozszerzenia SRAMCharger, więcej informacji tutaj. Płytki działają w Indus GT, LDW Super 2000, CA2001. W przypadku dwóch ostatnich stacji należy użyć rozszerzenie ze złączem prostym (a nie kątowym) oraz przygotować płytę stacji jak opisano poniżej.


SRAMCharger od TF_HH zamontowany w stacji CA-2001


Inny SRAMCharger od tregare w LDW Super 2000

Jak zbudować własny SRAMCHARGER ?
Działanie rozszerzonej pamięci

Dodatkowe 64kB pamięci statycznej powinno być zarządzane następująco:

  • 32kB (górne) mapowane w obszar $8000-$FFFF

  • 32kB (dolne) bankowane sygnałem /BANK w obszar $0000-$7FFF, w miejsce zwykłych układów stacji.

Odłączanie układów stacji dla aktywnej dolnej połówki pamięci jest już zasadniczo przygotowane na płycie stacji, trzeba jeszcze tylko odłączyć ROM sygnałem /ROMDIS.

Nazwy sygnałów /BANK, /ROMDIS pochodzą ze schematu stacji Indus. Wszystkie sygnały potrzebne do rozszerzenia są dostępne na złączu J3, stąd możliwość zbudowania rozszerzenia jako zewnętrznego modułu wpinanego w to złącze.

Uwaga ! Na oryginalnym schemacie Indus GT jest drobny błąd przy opisie złącza J3, tzn. A2 jest na pinie 4. Zobacz poprawiony schemat.
SRAMCharger z dwoma układami 62256

Rozszerzenie pamięci można zrealizować na kilka sposobów. Ta wersja wykorzystuje następujące elementy:

  • 2 kości pamięci SRAM typu 62256
  • 74LS139 (lub podobny).

Układ należy zmontować według poniższego schematu:


Schemat rozszerzenia z dwoma układami 62256

SRAMCharger z układem 628128

Rozszerzenie można również zrealizować w oparciu o jeden układ pamięci 128kB. W tym przypadku wymagane są:

  • 1 kość pamięci SRAM typu 628128 (lub podobna 128x8)
  • 74LS139 lub 74LS155 (74155).

Z doświadczeń wynika, że pamięci z czasem dostępu 70ns i wolniejszym działają dobrze. Jednak mogą wystąpić problemy z szybszymi układami (np. 55ns).

Poniżej przedstawiono schematy rozszerzenia. W drugim układ 74LS155 należy przy tym podłączyć do +5V (pin 16) i GND (pin 8).

Schemat rozszerzenia z układem 628128 i 74LS139 (thanks TF_HH!)

Schemat rozszerzenia z układem 628128 i 74LS155

Montaż w stacji dysków
Stacja Indus GT

Sprawdź, czy twój Indus jest wyposażony w wersję oprogramowania 1.20 (najczęściej). W tym celu możesz użyć mojego CP/M TOOL. Jeśli nie, i tak powinieneś je zaktualizować.

Indus GT Service Manual (pt. 4.14): If the EPROM in the drive you are working on has a version number of 1.00 or 1.10, then it should be replaced immediately with the latest version of the device. The latest version to date is 1.20.

Układ w formie dołączanej do złącza J3 karty jest gotowy do użycia w stacji Indus GT. Jednak w niektórych napędach brakuje złącza J3 (choć jest to bardzo rzadkie). Jeśli tak jest w Twoim przypadku, musisz wlutować brakujące złącze. Pozostałe stacje wymagają jeszcze drobnych przeróbek na płycie, które opisano niżej.

Stacja LDW Super 2000

Jak wspomniano, schemat tej stacji jest w znacznym stopniu zgodny z Indusem. Odpowiednia logika dla bankowania jest już gotowa. Ponieważ jednak w LDW sygnał /ROMDIS jest standardowo odłączony, należy go przywrócić, wstawiając brakujące rezystory R57 10k i R48 4k7 (jest dla nich miejsce na płycie) i odpowiednio założyć/przeciąć zwory J2, J3).

Fragment schematu LDW - przywrócenie sygnału /ROMDIS (w niektórych płytach R57 i R48 dochodzą do pinów 13 i 12 układu U12, a nie 1 i 2)

Płyta LDW z zaznaczonymi zmianami

Stacja LDW posiada wyprowadzenia dla złącza J3, dlatego jeżeli rozszerzenie przygotowujemy w formie dodatkowej karty, należy wlutować w to miejsce odpowiednie złącze kątowe. Ja zastosowałem dwurzędową, kątową listwę goldpinów, zaś na płytce rozszerzenia odpowiednie gniazdo żeńskie. Dzięki temu rozszerzenie mieści się pod obudową z prawej strony stacji (jak oryginalny RamCharger).

Prototyp SRAMChargera w stacji LDW

Stacja CA-2001

W tym przypadku jest trochę więcej pracy. Sytuację komplikuje dodatkowo fakt, że istnieją różne wersje płyty stacji.
W CA-2001 należy przede wszystkim dokonać podobnych przeróbek jak w przypadku LDW. Tu także jest zworka umożliwiająca przywrócenie sygnału /ROMDIS, należy także wlutować brakujące rezystory 10k i 4k7.

Fragment schematu CA-2001 - przywrócenie sygnału /ROMDIS

Płyta CA z zaznaczonymi zmianami dla sygnału /ROMDIS

Płyta CA-2000-D: W Indus/LDW pin 4 układu 74LS138 (U9) jest podłączony do A15, ale w CA jest podłączony poprzez zworkę z masą, co blokuje bankowanie pamięci. Zworka ta znajduje się w pobliżu złącza P7 (odpowiednika J3), lutowana od strony elementów i połączona z pinem 36 tego złącza. Zworkę trzeba przeciąć, zaś pin 36 połączyć z pinem 13 (gdzie mamy sygnał A15) od strony druku.

Fragment schematu CA-2001 - przywrócenie bankowania pamięci

Płyta CA-2000-D z zaznaczonymi zmianami dla bankowania

Płyta CA-2000-B: W tym przypadku fabrycznie połączono zworą punkty 1 i 4 złącza P7, a ścieżka odchodząca od punktu 4 jest przecięta. Powoduje to, że do pinu 8 układu U6 74244 doprowadzony jest sygnał A0, lecz na złączu P7 nie występuje sygnał A2 i rozszerzenie nie będzie funkcjonować. Należy wylutować zworę ze złącza P7 i ponownie połączyć przeciętą ścieżkę z punktem 4 złącza, co spowoduje przywrócenie sygnału A2. Do pinu 8 układu U6 74244 doprowadzony będzie jednak sygnał A2, a powinien być A0. Należy zatem odciąć połączenie sygnału A2 od pinu 8 układu U6 i doprowadzić tam sygnał A0, łącząc go z pinem 30 procesora.

Uwaga! Stacja CA-2001 nie jest kompatybilna z programem INIT umieszczonym na dyskietce Indus CP/M i służącym do tworzenia dyskietek systemowych. W zastępstwie należy użyć INITCA, specjalnie dostosowanej wersji tego programu.

Testowanie rozszerzenia

Do przetestowania wykonanego rozszerzenia można użyć mojego programu Indus CP/M Tool. Opcja RAMCharger check wyświetla numer wersji oprogramowania systemowego (firmware) stacji oraz testuje rozszerzenie pamięci: sprawdzana jest jego obecność, poprawność przełączania banków. Na wyświetlaczu stacji pojawia się numer sprawdzanej strony pamięci. Jeżeli wynik testu jest pozytywny, program wyświetla komunikat "RAMCharger: OK". Można wtedy przystąpić do uruchamiania systemu Indus CP/M. W przypadku problemów program podaje kod błędu jak niżej. Opis CP/M Tool z objaśnieniem kodów po polsku znajduje się w Atariki.

Error code Description
1 no upper extended RAM at $8000 (line A15 does not turn upper 32k RAM on)
2 extended RAM error at $8001 (data copy failed)
3 no lower extended RAM at $0000 (/BANK does not enable lower 32k RAM)
4 cannot restore ROM back at $0000 if /BANK not set
5 lower and upper 32k are the same
6 extended RAM found at $7800-$7FFF instead of drive's internal 2k RAM
7 lower 32k RAM test failed (memory error)
8 upper 32k RAM test failed (memory error)

Podziękowania dla jada, jera (Jerzego Soboli), Zenona/Dial oraz sup8pdct za pomoc przy realizacji projektu.

 

( c ) 2024 trub/DLT. All Rights Reserved.