ROM dla CA80.

  Ostatnio pisałem o uruchamianiu CA80-mini. W zasadzie dotyczy to wszystkich CA80, a nawet innych komputerów. Na początku dobrze jest sprawdzić najprostszą konfigurację, żeby było łatwiej wykryć ewentualne usterki.

28C64 burner
Z80-MBC2 jako programator.


        Dlatego warto mieć zaprogramowany EPROM lub EEPROM. Znacznie łatwiej jest wypalić ten drugi. Zbudowałem kiedyś programator takich kości wykorzystując płytkę i program Z80-MBC2. Program oczywiście dostosowałem do potrzeb. Wiele się przy okazji nauczyłem. Okazało się, że jest on napisany w bardzo prosty sposób i dobrze skomentowany. Było w nim wiele funkcji do poprawienia, bo działał bardzo wolno. Zbyt wolno, żeby użyć SDP (programowe zabezpieczenie danych). Jeżeli było aktywne - nie można było programować. Gdy pamięć była niezabezpieczona, nie dawało się jej zabezpieczyć. Pozamieniałem arduinowe komendy na operacje na rejestrach i udało się. Niestety moja kość zaczęła szwankować - na początku pojawiły się FF-y zamiast zer. Utrudniało to rozruch, bo działy się niekontrolowane błyski wyświetlacza. Kiedy udało się wystartować, sprawdziłem zleceniem *d i od razu trafiłem na te błędy, ale nie mogłem z klawiatury ich poprawić. Wyciągnąłem więc wyżej wspomniany programator i niestety nie działa... Próbowałem inny czip, ale bez skutku. W pudełku mam wiele egzemplarzy, ale niestety 28C256. Musiałbym zmienić połączenia w podstawce i program, a nie chciało mi się tego robić.

SC108 as burner.
Sklecony naprędce wynalazek.

 

Pomyślałem o RC2014. Można tam w łatwy sposób połączyć różne moduły i zrobić co przyjdzie do głowy. Przejrzałem płytki, które czekają na swoją kolej. Wybrałem SC108, bo jedną mam już zmontowaną, więc drugiej nie było szkoda trochę popsuć. Do kompletu wziąłem mój bootloader. Nie trzeba było wiele lutować, bo płytki pozostały prawie puste. Włożyłem moduły do płyty bazowej kolegi @tapy, bo do CA80 jest za mała i leżała bez zajęcia. Program z poprzedniego programatora znowu przerobiłem. Dodałem obsługę SD i trochę "bajerów", takich jak: licznik wypalonych bajtów czy pomiar czasu programowania. Wymyśliłem prosty sposób sprawdzania, czy rekord w pliku *.HEX jest na jednej stronie (64 bajty o tych samych wartościach A6...A14) i dodałem zapis całych rekordów. Jeżeli rekord nie spełnia powyższego warunku, to zapisuję po jednym bajcie. Trwa to znacznie dłużej.

 

Saleae logic.
Warto układ przetestować przed użyciem.

Burning 28C256.
Użyłem tej samej karty SD, którą zwykle ożywiam CA80.

        Przetestowałem program analizatorem i wypaliłem pierwszą kość. Oczywiście monitor CA80. :-) Zaraz włożyłem scalak do zestawu RC2014, który testowałem jako pierwszy. Kolega @tapy zrobił dobrą płytkę CPU ROM RAM, bo pasuje do EEPROM-ów (mają A14 na PIN1 a EPROMY na PIN27). CA wystartował, więc jest pełen sukces. Przejrzałem dokumentację 28C64 i okazało się, że adresy kodów blokujących i odblokowujących SDP są takie same (różnią się tylko A14 i A13, których tu nie ma), więc zaryzykowałem. Włożyłem tę z FF-ami na początku i odpaliłem nowy "wynalazek". Znowu sukces! Z radości nie chce mi się spać i piszę...

         Więcej na GitHub.

Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.