forum speccy.pl

Komputery z Z80 => JUPITER ACE => Wątek zaczęty przez: KWF w 2019.03.16, 11:04:58

Tytuł: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.03.16, 11:04:58
Taka mała zajawka: 32K RAM (https://www.dropbox.com/s/cek0eqmmf40o0bk/J_ACE_32K_MemTest.mov?dl=0) z dodatkami, dla spostrzegawczych. ;)
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.03.17, 00:39:00
... i trochę więcej: 32K+SD (https://www.dropbox.com/s/qlm4z22y56hd0qw/J_ACE_32K_SD_02.mov?dl=0)
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.04.10, 15:01:17
Prototyp 3-w-1 (32KB RAM, karta SD i AY) gra i buczy, czyta z karty SD, na karte zapisuje … prawie pelnia szczescia.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: Maryjan w 2019.04.10, 18:46:35
Gratulację :)
Fajny koncept z tym all-in-one.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.04.11, 09:42:38
Garść informacji o samym interfejsie SD do Jupitera (dla tych co nie byli na party i dla wszystkich zainteresowanych).

Oryginalna nazwa interfejsu to AVR1 (ACE ReVamped 1), króry opracował dr Alana Bleasby pod koniec 2018 r. W oryginale oprócz kart SDHC obsługiwał on także stacje dysków 3.5" i posiadał na pokładzie kontroler WD1770. Pamięć RAM dla użytkownika wypełniała cała pozostałą przestrzeń adresową Z80, czyli extra 40KB RAM.

Za łącznik pomiędzy światem Z80 a kartami SDHC (w formacie FAT32) służy PIC18F25K40. Całość chodzi na porcie 0x07. Pomiędzy adresami od 0xE000 do 0xFFFF umieszczony jest ROM, w którym zawarte są definicje słów w FORTH do obsługi kart. Aby całość działa prawidłowo, został taże zmieniony oryginalny ROM Jupitera.

W swojej wersji zmniejszyłem ilość dodatkowego RAMu do 32KB, aby uprościć dekoder pamięci i wykorzystać cały układ SRAM typu 62256. Dołożyłem także AYka na portach tych samych co w ZX Spectrum. Alan usunąl także część ROMu odpowiedzialną za obsługę dyskietek. Mapa pamięci pokazana na załączniku.

Lista nowych słów w FORTH jest następująca:
- operacje na plikach
    LD, SV, BLD, BSV, RM, LDADDR
    podobnie jak przy użyciu kasety: LD = LOAD, SV = SAVE, BLD = BLOAD, BSV = BSAVE
    RM - usuń plik

- operacje na folderach
    LS, MKDIR, RMDIR, CWD, HOME

- Inicjalizacja karty SD
    SDINIT - do zmiany karty w locie, bez wyłączania komputera.

Lista błędów i ich znaczenie:
10: Tape error & general SDHC error
32: Failure sending a command
33: Error transmitting header
35: Error transmitting code
36: File not found
37: Error receiving code
38: Not dictionary data
39: Error receiving dictionary entry
40: Directory already exists
41: Attempt to delete a populated directory

Obsługa z poziomu Jupitera jest banalnie prosta, ponieważ nie wymaga żadnych "czary-mary". Wywołanie słowa LS wyświetli na ekranie zawartość folderu (przy starcie jest to folder główny karty SD). Instrukcja LS nie jest najszybsza i nie sortuje folderów/plików alfabetycznie, ponieważ korzysta tylko z PADa, nie korzysta z pamięci użytkownika.

Wczytanie programu następuje przez wydanie komendy: LD plik; plik - nazwa pliku do wczytania w formacie, typowo 8 znaków nazwy i 3 znaki na rozszerzenie.

Interfejs działa tylko z kartami SDHC i nie obsługuje kart SD.

Format zapisu plików różni się od formatu .TAP i interfejs ich nie czyta na obecnym etapie.

Dodatkowo powstały dwa narzędzia. Jedno pod emulator (np. EightyOne), które pozwala zapis słów (programów) w formacie wymaganym przez interfejs. Drugie narzędzie jest pod PC, aby do plików binarnych dla Jupitera dokleić nagłówki, pozwalające na poprawny ich odczyt przez ten interfejs.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.05.07, 00:30:29
Ucywilizowana forma interfejsu.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: jackfinch w 2019.05.07, 01:32:15
Wygląda super. Obudowa to wydruk z drukarki 3D czy płytka dopasowana pod gotową obudowę?, a ten moduł sd card to chinczyk?

Pozdrawiam
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.05.07, 07:12:47
Obudowa standardowa typu Z19 firmy Kradex  (https://www.kradex.com.pl/product/obudowy_z_panelami_bocznymi/z19). Moduł karty SD jest łatwo dostępny pod nazwą "Catalex Micro SD Card Module" w każdym miejscu gdzie sprzedają Arduino. Prościej było zastosować gotowy moduł SD, niż bawić się w lutowanie gniazda, stabilizatora i układu 74LVC125 lub podobnego oraz całej drobnicy.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: damik w 2019.05.07, 10:43:50
Bardzo fajne i na pewno będzie bardzo przydatne dla użytkowników Jupiterka :)

Czy planujesz może udostępnić jakieś PCB i wsady do tego ?
Lub czy będą dostępne jakieś kity z PCB oraz zaprogramowanym prockiem + EPROMy ?

BTW
Właśnie kilka dni temu zkanibalizowałem taki identyczny adapter do kart SD, bo potrzebowałem gniazdo karty do ZX Spidera 128 ;)


Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.05.07, 10:51:07
Na razie wszystko w formie prototypu, a pewne sprawy programowe sa w dopracowaniu. Na te chwile nie jestem w stanie odpowiedziec na Twoje pytania.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.05.18, 18:43:25
Sobotnia dłubanina.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.05.22, 15:43:04
Będzie dodatkowe 40K lub 32K w zależności do zastosowanego układu SRAM (62256, 61512 lub 628128). Specyfikacja zamknięta i można zakończyć zabawę z „pomysłami na przyszłość”.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.12.03, 09:15:39
Ostatnie poprawki i do fabryki po 5szt.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: damik w 2019.12.03, 10:05:49
Trzeba przyznać że to zgrabny kawałek tzw międzymordzia ;)

Czy zastosowanie tego fejsa będzie wymagało też wymiany ROM'ów lub innych modyfikacji w samym Jupiter'ku ?
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.12.03, 10:21:17
Bedzie potrzeba wymienic ROM, ze wzgledu na to, w jaki sposob konstruktorzy Jupitera zrobili odczyt "slownika" z ROMu.  Innych modyfikacji nie potrzeba.

Oryginalny ROM jest dobrze upakowany i nie ma w nim wolnego miejsca na obsluge urzadzen zewnetrznych. Dodatkowy ROM jest ukolowany w ostatnich 8KB obszaru adresowego Z80. Takie podejscie bylo takze stosowane w innych interfejsach do Jupitera oraz zapewnia ciaglosc obszaru pamieci dostepnej dla uzytkownika (w tym przypadku 32K lub 40K, w zaleznosci od zastosowanego ukladu SRAM).
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: damik w 2019.12.03, 12:00:55
A jeszcze mam takie dodatkowe pytanie apropos wymaganej wymiany ROM'ów w Jupiterze pod to urządzenie.
Czy jeśli ROM'y będą wymienione na zmodyfikowane a ten fejs nie będzie podłączony to czy Jupiter będzie pracował normalnie czy się wysypie ?
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.12.03, 12:11:23
Wysypie sie bez interfejsu, bo tam sa skoki bezwzgledne pod konkretny adres.

Hehe, wiem do czego zmierzasz ;) DivMMC i podobne ;) ale one dzialaja na przerwaniach.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: damik w 2019.12.03, 12:34:05
Można by rozważyć taką "kanapkę" z podwójnym ROM'em wkładanym do Jupitera by automatycznie przełączało oryginalny i modyfikowany w momencie podłączenia tego fejsa.
Nie pamiętam teraz czy jest jeszcze jakiś wolny pin na złączu krawędziowym jaki można by tym fejsem zwierać np do masy (np najstarszy adres pamięci EPROM w "kanapce") by wymusić przełączenie ROM'u w samym Jupiterze na ten zmodyfikowany, a bez fejsa ten sygnał miałby podciąg rezystorem do 5V i adresował oryginalny obszar pamięci EPROM w "kanapce".

Co myślisz o takim rozwiązaniu, nie wymagałoby to żadnych dodatkowych przełączników i każdorazowego gmyrania w hardware a jedynie dorobienie jednej małej płytki i kawałka kynara ?
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.12.03, 12:49:33
Wolny pin na zlaczu jest, a nawet 3 sa. Dodatkowa "kanapka" musialaby pomieniac oba scalaki ROMu na jeden 16K, z dwoma bankami po 8K. W sumie plytke do ROMu z Basiciem moglbym latwo przerobic, ale bez gmerania we flaczkach Jupitera nie da sie i tak. Miejsce na dodatkowy rezystor na interfejsie zawsze znajdzie sie.
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: damik w 2019.12.03, 12:57:08
W zasadzie to jeden kynar z wolnego pada złącza krawędziowego do rezystora i najstarszego adresu EPROMa z modyfikowanym wsadem.
A w fejsie tylko jedna zworka wolnego pinu do masy, ot i cała operacja na otwartym Jupiterku ;)
Tytuł: Odp: Jupiter ACE - 32K & karta SD
Wiadomość wysłana przez: KWF w 2019.12.04, 09:31:58
Złącze krawędziowe w praktyce. Sygnał /ROMCS jest już na płytce repliki, tak samo jak to było w Jupiterze 4000. /ROMSW będzie na stale podciągnięty do GND w Jupiterze przez rezystor 1k0 (A13 układu 27C128) i zewnętrznie przełączany w stan wysoki, aby wybrać górną połówkę układ  do współpracy z tym interfejsem.