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.
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.
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.
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.
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?
Ostatnie poprawki - wyświetlenie adresu początku programu.
Komentarze
Prześlij komentarz