Posty

Wyświetlam posty z etykietą Kurs asemblera Z80

Praca krokowa z Z180.

Obraz
  Okazało się, że Z180 jest bardziej skomplikowany, niż myślałem - zmiany wprowadzone w zeszłym tygodniu nie wystarczyły. W dokumentacji znalazłem jeszcze kilka rejestrów, które mogą mieć znaczenie.

Dostosowanie monitora CA80 do procesora Z180.

Obraz
  CA80 z podmienionym procesorem będzie działał poprawnie, jednak czasem wystąpią małe kłopoty. Pierwszy polega na różnicy taktowania, ponieważ zastosowałem pewne uproszczenie schematu, w celu umożliwienia współpracy z generatorem podłączonym do złącza systemowego.

Etykiety.

Obraz
  Kolejne mnemoniki w czasie asemblacji zostają przetłumaczone na kody rozkazów, które składają się z różnej liczby bajtów (1 do 4) i przypisywane kolejnym adresom w pamięci. W czasie pisania programu nie musimy o tym myśleć. Rozkazy takie jak skoki czy odwołania do zmiennych w pamięci zawierają szesnastobitowy adres, który zostanie wyliczony w czasie asemblacji. Wymusza to użycie etykiet - nazw zmiennych lub adresów podprogramów. Dobrze dobrane nazwy ułatwiają zrozumienie programu i poprawiają jego czytelność.

Czym jest asembler.

Obraz
  Mówi się, że asembler jest językiem niskiego poziomu. Jest w tym dużo prawdy, bo każda linia programu jest tłumaczona na jeden rozkaz procesora (pomijając komentarze).

Jak uczyć się asemblera.

Obraz
  Do nauki programowania w asemblerze potrzebujemy komputer z procesorem, który chcemy poznać. Producenci od początku prześcigali się w wymyślaniu mnemoników (nazw rozkazów), więc nie ma jednego asemblera dla wszystkich procesorów. Różnice są nie tylko w nazwach, procesory różnią się w wielu aspektach. Nie będziemy tu zajmować się różnicami i oceniać zalety i wady różnych rozwiązań, bo ten blog skupia się na CA80 CA80 i stąd jedyny możliwy wybór: Z80.

Z80 SIO - dokończenie testów.

Obraz
  W module MIK1 przetestowałem przesyłanie plików do szybkości 19200 bodów. I8251A radził sobie z odbieraniem dużych plików z jednoczesnym wyświetlaniem ich zawartości. Sprawdźmy, jak poradzi sobie Z80 SIO na dwa razy większej.

Pełna wersja iLoad z buforem kołowym.

Obraz
  Przesyłanie plików zostało wstępnie opanowane, jednak pozostał niedosyt z powodu uproszczenia kodu. Mam rozwiązanie - zapraszam.

Przesył plików. Ciąg dalszy.

Obraz
  Pierwsze próby przesyłania plików Intel Hex były udane, jednak pełna wersja programu iLoad zgłaszała błąd na początku czwartego rekordu. Postanowiłem to zbadać.

Przesyłanie plików z PC do CA80.

Obraz
  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.

Port szeregowy dla CA80? To proste!

Obraz
  Platforma RCbus daje nam wiele nowych możliwości. Nie musimy projektować nowych modułów sami, bo wiele osób robi to za nas. Wystarczy odszukać projekt, który spełni nasze założenia. Gotową płytkę udostępnił mi kolega @tapy .

Nauka asemblera. Część czwarta.

Obraz
  Mamy już algorytm, więc czas na program.

Nauka asemblera. Część trzecia.

Obraz
  Dobre efekty w nauce programowania daje analiza programów innych autorów. Warto zacząć od krótkich przykładów opisanych w podręczniku, np. w MIK06.

Nauka asemblera. Część druga.

Obraz
  Każdy program, nawet najprostszy, należy uruchomić i przetestować. Już w trakcie "kompilacji" zauważyłem, że program "kuleje".

Nauka asemblera. Część pierwsza.

Obraz
  Naukę rozpoczniemy, wykorzystując dokumentację CA80 oraz analogie z mikrokontrolerami, bo CA80 jest w rzeczywistości ich odpowiednikiem. Wyobraźmy sobie, że jest rok 1985, nie ma jeszcze Internetu, a w księgarniach i bibliotekach pojawiają się pierwsze książki o mikrokomputerach. Są one zwykle bardzo ogólne i trudno jest znaleźć coś, od czego można zacząć naukę. Nauczyciele mają ten sam problem - brak źródeł, na podstawie których mogliby opracować lekcje. Wtedy właśnie pojawia się CA80 z jego dokumentacją. Oprócz braku źródeł, powszechny był też brak pieniędzy, więc trzeba było wybierać. Moją przygodę z Z80 rozpocząłem jeszcze wcześniej, dzięki nauczycielowi automatyki w technikum. To on udostępnił mi materiały niezbędne do nauki oraz komputer SA-80, który w mojej szkole wykorzystywany był w pracach dyplomowych. Ponieważ nie mamy Internetu, musimy zadowolić się tym, co mamy na papierze. Komputera PC, ani nawet ZX Spectrum też nie mamy, więc z pomocą przyjdzie nam znowu papi...

Nauka asemblera.

Obraz
  Dzisiaj młodzi ludzie mogą programować w C bez znajomości języka maszynowego. Kiedyś było inaczej - nauka programowania była ściśle związana ze znajomością sprzętu, bo nie było bibliotek obsługujących każde urządzenie. 

Czy można wyświetlić napis za pomocą jednego rozkazu procesora?

Obraz
  Mamy już działający komputer, więc najwyższy czas napisać dla niego jakiś program...