ZX Spectrum > PROGRAMOWANIE

Programowanie kart MMC

(1/1)

Thompson:
Cześć,

Próbuję zgłębić zasady komunikacji z kartami MMC dla Spectrum. Chodzi mi o dosyć niski poziom, w szczególności protokół SPI wykorzystany w tych projektach.
Dokumentację protokołu SPI mam, dokumentację kart SD mam, niby wszystko jasne, ale... jak to zostało zrealizowane w ZX, domyślam się że było wiele rozwiązań, ale zapewne któreś stało się standardem (?). No i pytanie, jak tam zostało od strony programowej rozwiązane?

KWF:
Standardem stało się DivMMC opracowane prze Mario Prato. Na githubie jest źródło „międzymordzia” między szyną ZX Spectrum a ŚPI na CPLD. Zobacz pod ten adres: https://github.com/mprato/DivMMC

A potem to just z górki, esxDOS.

steev:

--- Cytat: Thompson w 2022.12.24, 18:45:07 --- No i pytanie, jak tam zostało od strony programowej rozwiązane?

--- Koniec cytatu ---
Nie ma zbyt wielu możliwości.
Dogadujesz się z kartą, przełączasz ją w wybrany tryb i odczytujesz/zapisujesz sektory które potrzebujesz. A co zrobisz z odczytanymi danymi to już inny problem ;)
Lektura obowiązkowa

Thompson:
Dzięki za odpowiedzi.

Wiem, że Prato to obecnie standard dla rozwiązań symulacji (?) divMMC via FPGA/CPLD. Niestety, choć bukwy są znajome, to VHDL jest dla mnie cokolwiek nieczytelny i trudno coś z tego dla prostego wyrobnika w Z80 wydobyć. ExDos to już niemal pełny system operacyjny, a przynajmniej file system a la POSIX, a to mnie nie interesuje. Również szczebel niżej, to jest FAT16/32, jest świetnie udokumentowane, więc nie zawracam gitary o takie błahostki
.
Ciekawe zaczyna się niżej - sam protokół SPI (dzięki @Steev, tego nie znałem) i jeszcze niżej, timinigi wysyłki i odbioru komend sterujących SD. Część rozwiązań, które wygrzebałem bazowała na kilku portach, inne oparte tylko na dwóch (wybór urządzenia SPI i drugi port do odbioru i wysyłki). Potrzebne mi to do reverse engineerengu Spectrum Next i uzupełnienia dokumentacji technicznej tego komputerka. Tam w procesie komunikacji ze SPI uczestniczą porty E7h i EBh - pierwszy dokonuje selekcji urządzenia, drugi to generalna bramka in/out - wydaje mi się, że podobne rozwiązanie zaproponowali bracia Czesi, bo w jakieś dokumentacji ktoś się odwoływał do owych portów właśnie w kontekście MMC (niestety, bez istotnych szczegółów). Podaje adresy portów w nadziei, że komuś coś się przypomni, gdy sam coś kiedyś kodził.
Nie przypuszczam by twórcy ZX Next wymyślili od zera ten kawałek HW (bo znalazłem kilka rozwiązań dla eksperymentalnych homebrew komputerków opartych na Z80 (ale nie Speccy), ale raczej jako ProofOfConcept), choćby dla kompatybilności, co najwyżej dostosowali SW.  Niestety, ta część Neksta nie jest open source, a twórcy nie odpowiadają na pytania (co przy closed source nie dziwi), więc pozostaje szukanie po omacku i analizowanie potencjalnych źródeł.

VELESOFT:
Some info about sector access:
https://www.facebook.com/groups/792769811081418/posts/1708780019480388

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej