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.