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.
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. 😉
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)
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.
Tak włączamy odbiór w terminalu.
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ę.
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
Zlecenie Z9 działa tak samo jak odczyt z magnetofonu.
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.😎
Tak wybieramy plik do wysłania przez UART.
Komentarze
Prześlij komentarz