Autor Wątek: ZX81 wewnętrzne 32KB RAM  (Przeczytany 6701 razy)

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
ZX81 wewnętrzne 32KB RAM
« dnia: 2018.02.18, 23:45:31 »
Ostatnio więcej bawię się ZX81 niż Speccy. Rozszerzenie wewnętrznego RAMu do 16kB jest banalnie proste i wykorzystywane dość powszechnie. ALE tylko połowa układu 32KB jest w użyciu, a reszta leży odłogiem. Ciekawe rozwiązanie zaproponował Wilf Ridter, pamięć 32K z mapowaniem obszaru 8K-40K. W sumie dla mnie jest to jeden z etapów do dalszych poszukiwań i eksperymentów, więc zbudowałem sobie moduł rozszerzenia, a wygląda ono jak na zdjęciu poniżej.

Na razie poskładałem całość a na testy przyjdzie czas.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

jackfinch

  • ****
  • Wiadomości: 426
  • Miejsce pobytu:
    uk
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #1 dnia: 2018.02.19, 06:09:46 »
Jaki koszt takiego rozszerzenia? Montaż jest bezinwazyjny, czy trzeba coś ciąć na pcb?

Pozdrawiam

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #2 dnia: 2018.02.19, 07:53:29 »
Nie trzeba ciąć PCB. Taka była idea, żadnych zmian do PCB.

A co do kosztów, kilka funtów wliczając przesyłki. SRAM nie kosztuje dużo ok 2GBP za układ, 'HC251 to są grosze. Na razie najdroższa jest płytka, bo zamawiałem ją jednostkowo i wyszła prawie po 3 funty za sztukę.  Przy wrzuceniu na panel i zamówieniu 10 szt. można zejść z kosztami poniżej 1.50GBP.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #3 dnia: 2018.02.19, 14:27:16 »
Czy to prawda że aby przerobić ZX80 na ZX81 wystarczy wymienić w nim ROM ?
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #4 dnia: 2018.02.19, 15:33:52 »
Zmieniając ROM zmieniasz BASIC na tego z ZX81. Nie będziesz miał obsługi /NMI ani odświeżania ekranu przy wykonywaniu programu, bo tych rzeczy nie ma w ZX80. W ZX80 nie ma odpowiedzialnej za to logiki, więc nie ma "slow mode" z ZX81.

Aha, przy podmianie ROMu, warto wziąć ROM z ZX81 w wydaniu drugim.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #5 dnia: 2018.02.22, 19:22:37 »
Czy znacie jakieś demo lub software korzystający z 32KB RAM?

Dobra znalazłem: Beamrider
« Ostatnia zmiana: 2018.02.22, 20:43:08 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #6 dnia: 2018.02.23, 00:34:18 »
Prototyp odpalony, strat w ludziach i sprzęcie brak ;) Test Hi-Res innym razem, na dzisiaj dość.

Jakby ktoś chciał sobie zbudować te moduł, udostępniłem projekt PCB na OSHPark: ZX81 Internal 32KB, a schemat tu
« Ostatnia zmiana: 2018.02.23, 01:21:33 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

jackfinch

  • ****
  • Wiadomości: 426
  • Miejsce pobytu:
    uk
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #7 dnia: 2018.02.23, 08:14:24 »
Witam

Chyba  OSHPark ci się źle podlinkował. Projekt super. Mam dwa pytania:
1. Czy te schematy które widać w twoich postach drukujesz na drukarce A3?
2. Czy przewidujesz w przyszłości wersję 32kb RAM w wersji THT?

Pozdrawiam

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #8 dnia: 2018.02.23, 08:42:34 »
Nie, ponieważ płytka byłaby 2x większa. Moduł ma pasować do wersji 1 oraz 3 Zeddiego. Poza tym moduł z podstawka i układem pamięci w niej mógłby nie zmieścić się w budzie Zeddiego.

Poprawny link: https://oshpark.com/shared_projects/9v9FFtOZ

Schematy drukuje na różnie, czasem A3, czasem A4 a czasem interesujący mnie wycinek całości na A4. A3 jest wygodniejsze, ponieważ nie muszę używać lupy, aby odczytać wartości komponentów.

Jakby ktoś był zainteresowany proszę o PW. Ostała się jedna płytka.
« Ostatnia zmiana: 2018.02.23, 08:49:49 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

Ilyad

  • *****
  • Wiadomości: 580
  • Miejsce pobytu:
    Białystok, IV Rzesza Pospolita
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #9 dnia: 2018.02.23, 09:47:16 »
Klaud:
Beamrider potrzebuje WRX-graphics. Działa na Twoim ZX81 ?
ZX-81, ZX-Pand AY, 48k "gumiak", 48K+, 128K + "Toster", +2 "szarak" 1024k Profi, Masakrator FM, DivIDE 2K11, ZX Evolution rev. C, ZX-Uno, C64, C16 64K, Plus4 + 1541 Ultimate II + SD2IEC

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #10 dnia: 2018.02.23, 09:55:28 »
Wczoraj późno już było, więc żadnego Hi-Resa nie testowałem. Wyczytałem demo Tygrysa (Hello World), które było pod ręką ;) i test pamięci. Swoją drogą, aby odpalić Beamridera, potrzebuję przekonwertowac plik .81 do .p.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #11 dnia: 2018.02.26, 14:02:08 »
Chyba czas napisać, na jakiej zasadzie działa ten moduł. Schemat jego jest dość dobrze znany w świecie ZX81, a cała idea wykorzystania multiplexera 8:1 została stworzona przez Wilfa Rigtera pod nazwą: "Barebones Internal 32K RAM mapped 8K-40K".

Zacząć należałoby od organizacji pamięci w ZX81 oraz paru wyjaśnień:

0K-8K - obszar ROMu

8K-16K  - zakres ten może być wykorzystany przez programy w kodzie maszynowym i jest wykorzystywany przez programy z Hi-Res oparte o WRX. Ten obszar pamięci nie jest inicjowany i sprawdzany przez procedury ROMu po resecie czy włączeniu zasilania, a także przez wydaniu komendy "NEW"

16K-32K - typowy zakres adresów gdzie urzędują programy w BASICu, łącznie z tymi, które mają wstawki w kodzie maszynowym.  Programy Hi-Res mogą być wykonywane z tego obszaru o ile RAM jest dostępny podczas wykonywania RFSH.
 
32K-40K - zakres ten można wykorzystać jako obszar zmiennych w przypadku dużych programów (np. deklaracja zmiennych DIM). Programy w kodzie maszynowym mogą być przechowywane w tym obszarze pamięci, ale przed ich wykonaniem, należy przenieść je poniżej 32K. Ten zakres można też wykorzystać dla zmienionej zawartości ROMu, ale tablica znaków i semigrafiki zostaje niezmienna i będzie pobierana z oryginalnej zawartości ROMu w obszarze 0K-8K.

A teraz wracamy do dekodera. Układ 74HC251 posiada 8 wejść, które zostały wykorzystane do wyboru obszarów pamięci ZX81 w następujący sposób:

I0 = 00-08K =  Vcc = RAM wyłączony, ROM włączony
I1 = 08-16K = GND = RAM włączony, ROM wyłączony
I2 = 16-24K = GND = RAM włączony, ROM wyłączony
I3 = 24-32K = GND = RAM włączony, ROM wyłączony
I4 = 32-40K = GND = RAM włączony, ROM wyłączony
I5 = 40-48K =  Vcc = RAM wyłączony, ROM włączony 
I6 = 48-56K = M1 = jeżeli M1 = 0 -> echo obszaru RAM 16-24K
I7 = 56-64K = M1 = jeżeli M1 = 0 -> echo obszaru RAM 24-32K

Po zainstalowaniu modułu i wydaniu komendy:
PRINT PEEK 16388+256*PEEK 16389
Otrzymamy odpowiedź:
32768
Co jest oczekiwane, ponieważ jest to standardowa wartość dla RAMTOPu przy 16K pamięci RAM. Z zasady konstrukcji ZX81, BASIC korzysta z obszaru 16K-32K. A gdzie pozostałe 16K? Miało być przecież 32K? 8K jest w obszarze poza dostępem dla BASICa (8K-16K), a do drugiego 8K które jest pomiędzy 32K a 40K musimy dostać się. Należy podnieść RAMTOP:
POKE 16389,160
NEW

Sprawdzenie:
PRINT PEEK 16388+256*PEEK 16389
Na ekranie zobaczymy:
40960
No i mamy wiecej miejsca dla zmiennych BASICa czy linii programu. :)

Jeżeli ktoś szuka więcej na ten temat, polecam wątek Wilf's 64K rampack - (battery backup not working) na forum poświęconym TS1000. Powyższe informacje pochodzą z tego co tam napisał Wilf.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #12 dnia: 2018.03.03, 01:49:26 »
WRX działa. Pobawiłem się paroma gierkami z WRX i chodzi. :) Sprawdzę jeszcze na demach, ale też powinno pójść.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: ZX81 wewnętrzne 32KB RAM
« Odpowiedź #13 dnia: 2018.03.04, 21:16:11 »
WRX chodzi także z demami 16K. Wszystkie informacje wylądowały na wiki.

Dla mnie projekt jest zakończony i biorę się za następne rzeczy do mojej większej układanki.

Z kronikarskiego obowiązku parę lepszych zdjęć samego modułu i zamontowanego w Zeddim na fotkach poniżej.









« Ostatnia zmiana: 2018.03.04, 23:05:39 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76