forum speccy.pl

Komputery z Z80 => ZX81 => Wątek zaczęty przez: KWF w 2018.02.18, 23:45:31

Tytuł: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: jackfinch w 2018.02.19, 06:09:46
Jaki koszt takiego rozszerzenia? Montaż jest bezinwazyjny, czy trzeba coś ciąć na pcb?

Pozdrawiam
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: ZbyniuR w 2018.02.19, 14:27:16
Czy to prawda że aby przerobić ZX80 na ZX81 wystarczy wymienić w nim ROM ?
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 2018.02.22, 19:22:37
Czy znacie jakieś demo lub software korzystający z 32KB RAM?

Dobra znalazłem: Beamrider (http://problemkaputt.de/beamride.htm)
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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 (http://"https://oshpark.com/shared_projects/9v9FFtOZ"), a schemat tu (https://www.dropbox.com/s/iuowinum4qs11xb/ZX81%20Internal%2032KB_sch_0.1.pdf?dl=0)
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: jackfinch w 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
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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 (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.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: Ilyad w 2018.02.23, 09:47:16
Klaud:
Beamrider potrzebuje WRX-graphics. Działa na Twoim ZX81 ?
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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) (http://forum.tlienhard.com/TS1000/www.ts1000.us/cgi-bin/yabb/YaBB.pl-board=HARDWARE;action=display;num=1159658155.htm) na forum poświęconym TS1000. Powyższe informacje pochodzą z tego co tam napisał Wilf.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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ść.
Tytuł: Odp: ZX81 wewnętrzne 32KB RAM
Wiadomość wysłana przez: KWF w 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.

(http://www.fatla.eu/pub/ZX81/ZX81_Int32K_01.jpg)

(http://www.fatla.eu/pub/ZX81/ZX81_Int32K_02.jpg)

(http://www.fatla.eu/pub/ZX81/ZX81_Int32K_04.jpg)

(http://www.fatla.eu/pub/ZX81/ZX81_Int32K_05.jpg)

(http://www.fatla.eu/pub/ZX81/ZX81_Int32K_06.jpg)