Transmisja danych z CA80 przez UART.

  Odbiór plików Intel HEX mamy już opanowany, ale MIK1 można użyć też odwrotnie. Do tej pory wysyłaliśmy tylko komunikaty o przebiegu transmisji.

CAFL
Nowe zlecenia do transmisji danych.


Żeby wysyłanie danych miało sens, powinny być one odpowiednio sformatowane. W tym celu powstały standardy np. Intel HEX. Dane podzielone są tam na rekordy zawierające między innymi adres i sumę kontrolną. Podobnie jest z danymi zapisywanymi na taśmie magnetofonowej przez CA80! Zamiast pisać nowy program, wykorzystam stary wypróbowany i idealnie dopasowany do naszego komputera. 😎 Program działa również bez przystawki CAFL, ale w obszarze 4000H - 5FFFH musi być RAM. Do wprowadzenia programu można użyć CA80-boot albo ręcznie wpisać którąś z wersji iLoad (dla MIK1) i wczytać plik CAFL3.HEX. Ręczne wpisywanie tak długiego programu nie ma sensu, zwłaszcza że i tak będziemy używać UART. 😉

Wysyłanie pliku z CA80
Rekordy wysłane zleceniem Z8.


Kiedy wpadłem na pomysł zrobienia "magnetofonu" wykorzystałem oryginalne procedury z monitora CA80. Oczywiście zmieniłem sposób zapisu i odczytu z nowego nośnika (flash), ale rekordy zakodowałem identycznie. Żeby nie tracić czasu, znowu ich użyję. Nowe zlecenia przypnę do Z8 i Z9. Sposób użycia jest taki sam, jak magnetofonu czyli:


- Z3 [3][NR_SEKTORA][=]                                 ustawiamy taśmę

- Z4 [4][ADR_POCZ][.][ADR_KONCA][.][NAZWA][=] zapisujemy blok danych (można kilka)

- Z5 [5][ADR_START][.][NAZWA][=]                         i rekord EOF (NAZWA musi się zgadzać z NR_SEKTORA)

Sektor CAFL
Program zakodowany w buforze.


W buforze jest teraz gotowy do wysłania plik, ale najpierw musimy przygotować PC na jego odbiór. Zapytałem AI, jakie są możliwości i wybrałem Tera Term. Na początek ustawiłem 2400 bodów. Odbierany plik może mieć dowolną nazwę, jednak dobrze jest zawrzeć w niej szesnastkową nazwę CA80, bo procedura odbierająca działa tak samo, jak pierwowzór - kiedy nazwy są zgodne, miga znak "=" i dane są zapisywane. W przeciwnym wypadku na wyświetlaczu zobaczymy tylko adresy i nazwę, przychodzące w kolejnych rekordach. Do prób użyłem program "To nie Arduino!", więc przyjąłem nazwę "nie-ardu-7D.CAT". Rozszerzenie .CAT utworzyłem ze słów "CA80" i "Tape", ale może być tam cokolwiek, np. .TXT.

Ustawianie nasłuchu w terminalu
Tak włączamy odbiór w terminalu.

Dodajemy nazwę pliku.
Tutaj wpisujemy nazwę zapisywanego programu.


Kiedy terminal jest gotowy do odbioru, włączamy zapis:


- Z8 [8][=] record (nazwy nie podajemy, bo jest już w rekordach)


Po zakończeniu transmisji należy zakończyć sesję.

Koniec funkcji LOG
Kiedy transmisja się zakończy, kończymy LOG.


W ten sposób możemy zapisywać dowolne fragmenty pamięci CA80, które później możemy łatwo przesłać z powrotem, albo komuś przekazać np. mailem, albo zarchiwizować w repozytorium. Do przesłania pliku do CA80 dodałem zlecenie Z9. Działa ono tak samo, jak odczyt z magnetofonu, więc musimy podać właściwą nazwę.


- Z9 [9][NAZWA][=] włączamy w CA80 nasłuch

CAFL zlecenie Z9
Zlecenie Z9 działa tak samo jak odczyt z magnetofonu.

Opóźnienie po każdym bajcie
Spowalniamy proces, żeby migał "=".


Teraz w terminalu należy wysłać plik. Żeby niczego nie zgubić, w parametrach transmisji (serial) ustawiamy opóźnienie 1 ms po każdym znaku. Dzięki temu odczyt danych będzie wyglądał tak samo jak dawniej, kiedy używaliśmy prawdziwych magnetofonów.😎

Plik wysyłamy tak samo jak HEX
Tak wybieramy plik do wysłania przez UART.


Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.