Pamięć masowa czyli magnetofon.
Kilka lat temu opracowałem przystawkę zastępującą magnetofon. Pierwsza wersja była podłączana do gniazda pamięci U9 za pomocą wtyku emulacyjnego lub wstawiana bezpośrednio do podstawki. Rozwiązanie to pasowało do obu oryginalnych wersji CA80 oraz do klonów np. "CA80-mini".
Jedna z pierwszych wersji "magnetofonu".
Wersja dla RCBus musiała zostać zmodyfikowana z powodu ograniczonego rozmiaru standardowego modułu. Standard dopuszcza większe płytki, jednak postanowiłem, że wszystkie moduły będą tej samej wysokości. Ze schematu usunąłem EPROM z oprogramowaniem. Moduł CA80-boot umożliwia łatwe załadowanie do RAM dowolnych programów, więc ta modyfikacja w niczym nie przeszkadza.
Różne wersje CA80-flash RCBus.
Moduł rozruchowy z mikrokontrolerem jest bardzo wygodny, ale nie wszystkim się podoba. AVR pomimo obudowy DIP40 jest ciałem obcym w kultowym CA80. Dlatego opracowałem nową wersję MIK89 z generatorem i dzielnikiem wykorzystującym Z80 CTC do tworzenia sygnału NMI. Utrata możliwości ładowania programów do RAM w czasie rozruchu komputera uniemożliwiła wykorzystanie CAFL...
Nowy MIK89 na RCBus.
Okazało się, że bez żadnych sprzętowych poprawek można to zmienić. Flash jest trudny do zapisania, ale jego odczyt jest zwyczajny, więc bez trudu możemy przepisać zawartość dowolnego sektora do RAM. Bez zastanowienia poświęciłem sektor "00" i wgrałem do niego cztery kilobajty (4000H - 4FFFH), w których rezyduje CAFL. Po przemyśleniu, chciałem zmodyfikować procedurę FLASH_FORMAT, ale okazało się, że nie ma takiej potrzeby.
Procedura kasująca (nie)wszystkie sektory.
Zlecenie *2 z parametrem FF kasuje wszystkie niezapisane i niesformatowane sektory... oprócz zerowego! 😎 Przez niedopatrzenie program zapisany w sektorze "00" jest bezpieczny. Oczywiście użycie [2][0][=] wykasuje ten sektor, ale trzeba zrobić to świadomie. FLASH_FORMAT nie skasuje również sektorów, których pierwszy bajt ma wartość 0FFH lub 0FDH. Niesformatowana kość może przypadkiem zawierać takie sektory, więc czasem trzeba użyć *2 z numerem sektora.
Po włączeniu komputera należy zleceniem *D (CA80) wybrać sektor zerowy [D] [5FFD][0][=], a następnie przepisać program do RAM [B][6000][6FFF][4000][=]. Od tej pory CAFL włączamy przez [80]. Dobrej zabawy!
Komentarze
Prześlij komentarz