Przygotowanie środowiska do programowania w asemblerze Zilog Z80 (pod CP/M)

Manna5

Omówię tutaj aspekty techniczne oraz przygotowanie środowiska do pisania programów dla procesora Zilog Z80 (w większości zgodnego z Intel 8080) i systemu operacyjnego CP/M-80, przy użyciu komputera z systemem Windows® NT. Warto zacząć od utworzenia katalogu przeznaczonego do tych celów, najlepiej w katalogu głównym dysku, np. C:\Z80Asm.

Zaczynamy od napisania naszego programu w edytorze Notatnik wbudowanym w Windows. Lista instrukcji (i ich kodów, które przy wykorzystaniu asemblera akurat nie będą potrzebne) znajduje się w witrynie ClassicCmp. Instrukcje są opisane po angielsku. Jako że programujemy pod CP/M na końcu programu musimy skoczyć pod adres zerowy (instrukcją JMP 0) wracając do powłoki systemowej.

Do asemblacji naszego programu (czyli zamiany go na kod maszynowy) użyjemy asemblera SPASM - kliknij, by pobrać. Wynikowy program uruchomimy na emulatorze Z80 i CP/M jakim jest MyZ80. Zarówno asembler jak i emulator Z80 działają na DOS-ie, podczas gdy korzystamy z Windows. Część wersji Windows - m. in. 32-bitowy XP - pozwala uruchamiać DOS-owe programy, ale jeżeli korzystasz z nowszej wersji systemu pozbawionej takiej możliwości, to pozostaje DOSBox, czyli emulator DOS-a na Windowsie. Tym sposobem dochodzimy do konfiguracji przedstawionej na poniższym schemacie.

             SCHEMAT EMULACJI

+-Windows(R) NT--------------------------------------+
|                                                    |
|            +-DOSBox------------------------------+ |
|            |                                     | |
|            |                  +-MyZ80----------+ | |
|            |                  |                | | |
| Edycja: =====> Asemblacja: =====> Uruchomienie | | |
| Notatnik   |  SPASM, SLINK    |                | | |
|            |                  +----------------+ | |
|            |                                     | |
|            +-------------------------------------+ |
|                                                    |
+----------------------------------------------------+

Oto zaś szczegółowa lista kroków.

  1. Piszemy program w Notatniku i zapisujemy z rozszerzeniem ASM. Załóżmy, że pod nazwą Example.ASM.
  2. Uruchamiamy DOSBox.
  3. Komendą w rodzaju mount a c:\z80asm w DOSBox-ie kojarzymy wirtualny dysk A z realnym katalogiem Z80Asm. Przechodzimy na ten dysk wpisując a: i Enter.
  4. Asemblujemy program za pomocą SPASM-a, dwoma komendami spasm example.asm (co zamieni plik Example.ASM na Example.OBJ) i slink example (co zamieni plik Example.OBJ na uruchamialny Example.COM).
  5. Opcjonalnie możemy usunąć plik z rozszerzeniem OBJ, bo nie będzie potrzebny. Służy do tego komenda del example.obj.
  6. Teraz w DOSBox-ie uruchamiamy MyZ80 komendą cpm. Przechodzimy przez ekrany powitalne aż do ujrzenia znaku zachęty CP/M A>.
  7. Używamy narzędzia import (wewnątrz MyZ80) by uzyskać dostęp do pliku z naszym programem: import example.com. Operujemy tu ścieżkami plików na poziomie DOSBox-a.
  8. Nareszcie uruchamiamy nasz program, pisząc jego nazwę - bez rozszerzenia, po prostu example.
  9. Wychodzimy z MyZ80 poleceniem quit.
  10. Możemy edytować nasz program w Notatniku, a następnie powtórzyć działania od kroku 4 w celu jego przetestowania.
  11. Wychodzimy z DOSBox poleceniem exit lub skrótem klawiaturowym Ctrl+F9.

0 komentarzy