Przesyłanie plików z PC do CA80.

  Mamy już UART, więc sprawdźmy jego użyteczność. Najłatwiej jest wykorzystać sprawdzone narzędzia. Do wysyłania plików z PC można użyć TeraTerm, a do ich odbierania np. iLoad znany z Z80-MBC2, w którym wystarczy podmienić procedury związane z transmisją (putc, getc) i dodać SIO_INIT.

Transfer files to CA80
Pierwsze próby przesłania pliku Intel HEX.


Niestety pierwsza próba nie przyniosła sukcesu, bo CA80 nie nadążał odbierać znaków. Zmodyfikowałem więc program, wyrzucając nadmiarowe procedury, takie jak wysyłanie echa czy zamianę małych liter na duże. 

Some changes.
Kilka zmian w kodzie.


Druga też nie była idealna, ale coś zostało przesłane. Porównanie stanu RAM z zawartością wysyłanego pliku wykazało, że nadal gubione są znaki, ale kilka bajtów z początku pierwszego rekordu było OK. Zmieniłem więc taktowanie procesora z 4 na 8 MHz. 

CA80 with Z80 SIO
Zamiana rozkazów na szybsze.


Tym razem prawie cały rekord był poprawny. Potrzebna była optymalizacja kodu. Zastosowałem rozkaz EXX zamiast PUSH i POP i kilka drobnych modyfikacji, co wystarczyło do poprawnej pracy. 


Clone CA80 with UART.
Po kolejnych zmianach cały plik został przesłany bez błędów.

 

"Prawdziwy" CA80 pracuje z CLK = 4 MHz, więc należy zmniejszyć "baud rate" z 115200 na 57600 albo jeszcze mniejszą. Może przy 9600 baud uda się przywrócić wszystkie funkcje iLoad?

CA80 with TeraTerm
Ostatnie poprawki - wyświetlenie adresu początku programu.

 

Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.