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.
- Piszemy program w Notatniku i zapisujemy z rozszerzeniem ASM. Załóżmy, że pod nazwą Example.ASM.
- Uruchamiamy DOSBox.
- Komendą w rodzaju
mount a c:\z80asm
w DOSBox-ie kojarzymy wirtualny dysk A z realnym katalogiemZ80Asm
. Przechodzimy na ten dysk wpisująca:
i Enter. - Asemblujemy program za pomocą SPASM-a, dwoma komendami
spasm example.asm
(co zamieni plik Example.ASM na Example.OBJ) islink example
(co zamieni plik Example.OBJ na uruchamialny Example.COM). - Opcjonalnie możemy usunąć plik z rozszerzeniem OBJ, bo nie będzie potrzebny. Służy do tego komenda
del example.obj
. - Teraz w DOSBox-ie uruchamiamy MyZ80 komendą
cpm
. Przechodzimy przez ekrany powitalne aż do ujrzenia znaku zachęty CP/MA>
. - 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. - Nareszcie uruchamiamy nasz program, pisząc jego nazwę - bez rozszerzenia, po prostu
example
. - Wychodzimy z MyZ80 poleceniem
quit
. - Możemy edytować nasz program w Notatniku, a następnie powtórzyć działania od kroku 4 w celu jego przetestowania.
- Wychodzimy z DOSBox poleceniem
exit
lub skrótem klawiaturowym Ctrl+F9.