Ram-Cart

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 10:20, 3 maj 2023
Mono (Dyskusja | wkład)
(Programowanie - mapowanie bitów rejestrów)
← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(1 MB)
Linia 39: Linia 39:
Cartridge powstały na bazie wersji 128KB. Cartridge powstały na bazie wersji 128KB.
-Z obudowy zniknęły przyciski P1 i P2, za to pojawiły się przyciski A, B i C pozwalające na wybór 1 z 8 modułów 128K.+W początkowej wersji od pana Zenona rejestr sterujący BANKCTL ma znaczenie identyczne, jak w wersji 128KB (bity 6 i 7 są nieużywane), oraz dodany został rejestr MODSEL za pomocą którego dokonuje się wyboru modułu 128K.
-W firmowej wersji cartridge-a bity 2, 6 i 7 służą do odczytu stanu przycisków A, B i C. Po rozkręceniu obudowy można zalutować zworki dzięki czemu przyciski A, B i C tracą swoją funkcję, a bity te służą do wybierania banków w pełnym obszarze 1MB. +W późniejszej wersji Galtrona z obudowy zniknęły przyciski P1 i P2, za to pojawiły się przyciski A, B i C pozwalające na wybór 1 z 8 modułów 128K i wszystko obsługuje się rejestrem BANKCTL (zniknął MODSEL).
 + 
 +W firmowej wersji cartridge-a bity 2, 6 i 7 służą do odczytu stanu przycisków A, B i C. Po rozkręceniu obudowy można zalutować zworki dzięki czemu przyciski A, B i C tracą swoją funkcję, a bity te służą do wybierania banków w pełnym obszarze 1MB.
== 2 MB == == 2 MB ==
Linia 69: Linia 71:
* bit 4: przełącza bank pamięci we wszystkich rodzajach cartridge-y * bit 4: przełącza bank pamięci we wszystkich rodzajach cartridge-y
* bit 5: przełącza bank pamięci w cartridge-u 128/256K i 1/2/4/8/16/32M * bit 5: przełącza bank pamięci w cartridge-u 128/256K i 1/2/4/8/16/32M
-* bit 6: przełącza bank pamięci w cartridge-u 8/16/32M oraz zmodyfikowanym 1/2/4M, w fabrycznym zwraca stan przycisku B+* bit 6: przełącza bank pamięci w cartridge-u 8/16/32M oraz zmodyfikowanym 1/2/4M, w fabrycznym zwraca stan przycisku B, w wersji 1M pana Zenona niewykorzystany
-* bit 7: przełącza bank pamięci w cartridge-u 8/16/32M oraz zmodyfikowanym 1/2/4M, w fabrycznym zwraca stan przycisku C+* bit 7: przełącza bank pamięci w cartridge-u 8/16/32M oraz zmodyfikowanym 1/2/4M, w fabrycznym zwraca stan przycisku C, w wersji 1M pana Zenona niewykorzystany
-W cartridge-ach 64K i 128K rejestr był przeznaczony tylko do zapisu. W pierwszych wersjach Double Ram-Cart 2x128/256K i Ram-Cart 1M od Zenona początkowo również tak było, choć w późniejszych egzemplarzach został udostępniony również do odczytu, a dodatkowo Zenon zmodyfikował konstrukcję i wykorzystał pełny dekoder adresów (rejestr sterujący dostępny jest wtedy tylko pod adresem $D500).+W cartridge-ach 64K i 128K rejestr był przeznaczony tylko do zapisu. W pierwszych wersjach Double Ram-Cart 2x128/256K i Ram-Cart 1M od Zenona początkowo również tak było, choć w późniejszych egzemplarzach został udostępniony również do odczytu (co pozwala zorientować się w aktualnym położeniu przełączników RW oraz A, B i C), a dodatkowo Zenon zmodyfikował konstrukcję i wykorzystał pełny dekoder adresów (rejestr sterujący dostępny jest wtedy tylko pod adresem $D500).
-W cartridge-ach 8M, 16M i 32M pod adresem $D501 wprowadzono dodatkowy rejestr MODSEL służący do wyboru modułu 1M:+W cartridge-ach 8M, 16M i 32M (oraz wersji 1M pana Zenona) pod adresem $D501 wprowadzono dodatkowy rejestr MODSEL służący do wyboru modułu 1M:
-* bit 0: przełącza moduł pamięci w cartridge-ach 8/16/32M+* bit 0: przełącza moduł pamięci w cartridge-ach 8/16/32M i 1M od Zenona
-* bit 1: przełącza moduł pamięci w cartridge-ach 8/16/32M+* bit 1: przełącza moduł pamięci w cartridge-ach 8/16/32M i 1M od Zenona
-* bit 2: przełącza moduł pamięci w cartridge-ach 8/16/32M+* bit 2: przełącza moduł pamięci w cartridge-ach 8/16/32M i 1M od Zenona
* bit 3: przełącza moduł pamięci w cartridge-ach 16/32M * bit 3: przełącza moduł pamięci w cartridge-ach 16/32M
* bit 4: przełącza moduł pamięci w cartridge-ach 32M * bit 4: przełącza moduł pamięci w cartridge-ach 32M
Linia 91: Linia 93:
---::::: ::++++-- 256 KB ---::::: ::++++-- 256 KB
---::::: ++++++-- 1 MB ---::::: ++++++-- 1 MB
- ---::::+ ++++++-- 2 MB+ ---::::* ++++++-- 2 MB
- ---:::++ ++++++-- 4 MB+ ---:::** ++++++-- 4 MB
---::+++ ++++++-- 8 MB ---::+++ ++++++-- 8 MB
---:++++ ++++++-- 16 MB ---:++++ ++++++-- 16 MB
---+++++ ++++++-- 32 MB ---+++++ ++++++-- 32 MB
:: ::: przycisk :: ::: przycisk
- :: ::+----- P2 w 2x128K/256K 
:: ::+----- A w 1M/2M/4M :: ::+----- A w 1M/2M/4M
:: :+------ B w 1M/2M/4M :: :+------ B w 1M/2M/4M
Linia 104: Linia 105:
:+--------- D w 4M :+--------- D w 4M
+---------- 2/4 w 4M +---------- 2/4 w 4M
 +
 +a w wersji 1M Zenona:
 + MODSEL BANKCTL
 + $D501 $D500
 +
 + -----210 --543--- bit
 + ::: :::
 + -----+++ --+++--- 1 MB
== Oprogramowanie == == Oprogramowanie ==

Aktualna wersja

Grafika:Ramcart.jpg

Rozszerzenie pamięci RAM do Atari XL/XE występujące w formie cartridge'a, produkowane przez łódzki zakład Unerring Masters a dokładnie Piotra Janiszowskiego, który był twórcą i początkowym wykonawcą (wersje do 1MB). W późniejszym czasie dołączył Przemysław "GALTRON" Galanciak, który zajmował się projektowaniem płytek, wykonaniem ich wraz z montażem elementów. W projekcie pomagał Zenon "DIAL" Rakoczy który tworzył schematy, brał udział w testowaniu.

Pamięć jest podtrzymywana bateryjnie.

Pierwowzorem układu był SiDiCar.

Obecnie układ można też spotkać w wersji z przyciskiem RESET oraz w formie Double Ram-Cart, który różni się od zwykłej wersji tym, że ma podwojoną liczbę układów pamięci - co daje już przyzwoitą pojemność - 256KB, a nawet (przy drobnych modyfikacjach) do 1MB.

Spis treści

64 KB

RAM-CART 64k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E), stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki logiczne 7403 typu otwarty kolektor (OC).

Płytka przygotowana była dla wersji 64k i 128k. W zależności od modelu dokonywano na niej modyfikacji. Model 64k - tylko dwie pamięci SRAM, tylko dwa oporniki 10k, brak zwory łączącej pin 12 układu 74174 i pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Te cztery piny połączone są zworą do +5V.

128 KB

Model 128k - nalutowane dwie dodatkowe pamięci SRAM, wlutowane dwa dodatkowe oporniki 10k, wlutowana zwora łączące pin 12 układu 74174 z pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Wejścia /CS dodatkowych pamięci połączone są odpowiednio z pinami 3, 6 układu 7403 (patrz schemat RAM-CART 128k wersja 2)

RAM-CART 128k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E), stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki logiczne 7403 typu otwarty kolektor (OC).

Double Ram-Cart 2x128 KB / 256 KB

Dodatkowy przycisk P1 pozwala na wybór jednego z dwóch trybów pracy:

  • 2x128K - wtedy cartridge zachowuje się jak dwa oddzielne moduły 128K
  • 256K - cartridge zawiera 256K pamięci a bit 2 w rejestrze konfiguracyjnym służy do wyboru numeru banku

Dodatkowy przycisk P2 pozwala przełączać się między modułami 128KB w obydwu trybach pracy (!).

Grafika:Ramcart32mb.jpg

1 MB

Cartridge powstały na bazie wersji 128KB.

W początkowej wersji od pana Zenona rejestr sterujący BANKCTL ma znaczenie identyczne, jak w wersji 128KB (bity 6 i 7 są nieużywane), oraz dodany został rejestr MODSEL za pomocą którego dokonuje się wyboru modułu 128K.

W późniejszej wersji Galtrona z obudowy zniknęły przyciski P1 i P2, za to pojawiły się przyciski A, B i C pozwalające na wybór 1 z 8 modułów 128K i wszystko obsługuje się rejestrem BANKCTL (zniknął MODSEL).

W firmowej wersji cartridge-a bity 2, 6 i 7 służą do odczytu stanu przycisków A, B i C. Po rozkręceniu obudowy można zalutować zworki dzięki czemu przyciski A, B i C tracą swoją funkcję, a bity te służą do wybierania banków w pełnym obszarze 1MB.

2 MB

Rozszerzenie cartridge-a 1MB o dodatkowy 1MB.

Dodatkowy przycisk 1/2M na obudowie w kooperacji z A, B i C pozwala wybrać 1 z 16 modułów 128K (1 z 2 modułów 1M po przelutowaniu zworek ABC).

4 MB

Rozszerzenie cartridge-a 1MB o dodatkowe 3MB.

Dodatkowe przyciski D i 2/4M na obudowie w kooperacji z A, B i C pozwalają na wybór 1 z 32 modułów 128K (1 z 4 modułów 1M po przelutowaniu zworek ABC).

8, 16 i 32 MB

Rozszerzenie cartridge-a w wersji 1MB do 8, 16 i 32MB pamięci.

Zrezygnowano z przycisków A, B, C, D, 2/4M na rzecz wprowadzenia dodatkowego rejestru wybierającego bank pamięci (faktycznie wybierany jest bank 1MB) co pozwala na całkowicie programową konfigurację banków.

Programowanie

Bank pamięci cartridge-a liczy sobie 16KB i jest konfigurowany za pomocą rejestru sterującego BANKCTL znajdującego się pod adresem $D500 (aczkolwiek ze względu na uproszczony dekoder adresów jest on powtórzony na całej stronie $D5):

  • bit 0: włącza górne 8KB banku pamięci cartridge-a w obszarze $A000 - $BFFF; w trybie RO (odczytu): 0 - włączony, 1 - wyłączony, a w trybie RW (zapisu) przeciwnie: 1 - włączony, 0 - wyłączony
  • bit 1: włącza dolne 8KB banku pamięci cartridge-a w obszarze $8000 - $9FFF; w obydwu trybach: 1 - włączony, 0 - wyłączony
  • bit 2: ustawiony blokuje rejestr do momentu wyłączenia komputera (w module 64/128K/2x128K), przełącza bank pamięci w module 256K oraz 8/16/32M, a także w zmodyfikowanych 1/2/4M, w fabrycznych wersjach zwraca stan przycisku A
  • bit 3: przełącza bank pamięci we wszystkich rodzajach cartridge-y
  • bit 4: przełącza bank pamięci we wszystkich rodzajach cartridge-y
  • bit 5: przełącza bank pamięci w cartridge-u 128/256K i 1/2/4/8/16/32M
  • bit 6: przełącza bank pamięci w cartridge-u 8/16/32M oraz zmodyfikowanym 1/2/4M, w fabrycznym zwraca stan przycisku B, w wersji 1M pana Zenona niewykorzystany
  • bit 7: przełącza bank pamięci w cartridge-u 8/16/32M oraz zmodyfikowanym 1/2/4M, w fabrycznym zwraca stan przycisku C, w wersji 1M pana Zenona niewykorzystany

W cartridge-ach 64K i 128K rejestr był przeznaczony tylko do zapisu. W pierwszych wersjach Double Ram-Cart 2x128/256K i Ram-Cart 1M od Zenona początkowo również tak było, choć w późniejszych egzemplarzach został udostępniony również do odczytu (co pozwala zorientować się w aktualnym położeniu przełączników RW oraz A, B i C), a dodatkowo Zenon zmodyfikował konstrukcję i wykorzystał pełny dekoder adresów (rejestr sterujący dostępny jest wtedy tylko pod adresem $D500).

W cartridge-ach 8M, 16M i 32M (oraz wersji 1M pana Zenona) pod adresem $D501 wprowadzono dodatkowy rejestr MODSEL służący do wyboru modułu 1M:

  • bit 0: przełącza moduł pamięci w cartridge-ach 8/16/32M i 1M od Zenona
  • bit 1: przełącza moduł pamięci w cartridge-ach 8/16/32M i 1M od Zenona
  • bit 2: przełącza moduł pamięci w cartridge-ach 8/16/32M i 1M od Zenona
  • bit 3: przełącza moduł pamięci w cartridge-ach 16/32M
  • bit 4: przełącza moduł pamięci w cartridge-ach 32M
  • bit 5-7: zarezerwowane dla większych pojemności

Można w uproszczeniu przyjąć, że za numer banku pamięci odpowiadają następujące bity rejestrów:

MODSEL   BANKCTL
$D501    $D500

---43210 762543-- bit
   ::::: ::::::   model
---::::: ::::++--  64 KB
---::::: :::+++-- 128 KB
---::::: ::++++-- 256 KB
---::::: ++++++--   1 MB
---::::* ++++++--   2 MB
---:::** ++++++--   4 MB
---::+++ ++++++--   8 MB
---:++++ ++++++--  16 MB
---+++++ ++++++--  32 MB
      :: :::      przycisk
      :: ::+----- A   w 1M/2M/4M
      :: :+------ B   w 1M/2M/4M
      :: +------- C   w 1M/2M/4M
      :+--------- 1/2 w    2M
      :+--------- D   w       4M
      +---------- 2/4 w       4M

a w wersji 1M Zenona:

MODSEL   BANKCTL
$D501    $D500

-----210 --543--- bit
     :::   :::
-----+++ --+++---   1 MB

Oprogramowanie

Wszystkie potrzebne pliki do obsługi RAM CART-ów, które zostały opisane w instrukcjach są dostępne poniżej.

Plik z oprogramowaniem w formacie ATR

Bibliografia

Schematy

Odnośniki zewnętrzne

Zobacz też

Personal tools