Tworzenie pliku Intel HEX z dowolnego obszaru pamięci.

  W poprzednim poście opisałem sposób zapisu programów lub danych w formacie stworzonym przez Pana Gardynika. Odbiór pliku działał tak samo jak odczyt z magnetofonu, co wymagało spowolnienia transmisji.

Creating Intel HEX file
Nowe zlecenie CAFL.


Pierwsze testy robiłem z szybkością 2400 bodów. Zwiększenie do 19200 nic nie zmieniło, program działa. Opóźnienie jest potrzebne, żeby wyświetlić nazwę i adres rekordu na wyświetlaczu CA80. Procedury LBYTE i LADDR trwają zbyt długo i transmisja bez sprzętowej synchronizacji gubi znaki. Odczyt plików *.HEX programem iLoad jest znacznie szybszy, więc napisałem program pozwalający utworzyć plik HEX. Nie musiałem wiele myśleć, bo znowu wykorzystałem procedurę z monitora CA80.

Verification new HEX file.
Plik wygenerowany przez sbasm i utworzony przez nowe zlecenie.


Dodałem ją do CAFL jako ZA (zamiast wcześniejszej wysyłającej sektor flash przez wyjście magnetofonowe). Podobnie jak w zapisie na taśmie, należy podać adresy początku i końca wysyłanego obszaru. Nazwę pominąłem, bo nie ma dla niej miejsca w rekordzie. Długość rekordu można ustawić poleceniem M7 (monitor CA80) i domyślnie ma ona wartość 10H czyli 16 bajtów, tak jak w standardowych plikach HEX. Przed zapisem należy terminal (Tera Term) przełączyć na LOG, tak jak ostatnio, i nadać tworzonemu plikowi "ludzką" nazwę z rozszerzeniem HEX. Dobrze wybrana nazwa ułatwi nam później znalezienie pliku w komputerze. Pliki możemy też użyć w CA80-boot i wgrywać je z karty SD w czasie rozruchu lub w czasie pracy z MSIDem.


Zapis wywołujemy z CAFL:


- ZA [A][ADR.POCZ][.][ADR.KON][=]

Komunikat w CA80
Rekordy powstają tak szybko, że segmenty nie gasną. 😉


Podczas pracy program wyświetla długość rekordu (zamiast nazwy) i adres pierwszego bajta, podobnie do zlecenia M4. Po przesłaniu wszystkich danych tworzony jest rekord EOF, który sygnalizuje zakończenie pliku. W terminalu zobaczymy wszystkie rekordy w czasie ich wysyłania. Oczywiście możemy wysłać więcej obszarów do tego samego pliku, ale po zakończeniu LOG w terminalu, w dowolnym edytorze (np. w Notatniku) musimy usunąć rekordy EOF między blokami. Jest to bardzo proste i nie wymaga modyfikacji sumy kontrolnej, bo jest ona obliczana dla każdego rekordu oddzielnie. Do istniejącego pliku możemy dopisać dodatkowe rekordy albo zleceniem ZA (i usunąć zbędny EOF), albo w Notatniku wstawić rekordy w dowolne miejsce (między rekordami). Kolejność rekordów nie ma znaczenia.

Zapis kilku sesji w jednym pliku
Dopisywanie do istniejącego pliku.


Na koniec dodam program iLoad do CAFL, jako ZB. Przemyślę jeszcze komunikaty, które przydadzą się w czasie użytkowania. Na razie udostępniam wersję CAFL3A.


Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.