Z80 Assembly Rehberi: Amstrad CPC 464’ün Donanımına Hükmedin
Bu seride, BASIC dilinin sınırlarını aşarak Z80 işlemcisinin dilini (Machine Code) öğreneceğiz. Adım adım donanım kayıtçılarından, bellek yönetimine ve firmware çağrılarına kadar her detayı inceleyeceğiz.1. Bölüm: Z80 İşlemci Mimarisi ve Kayıtçılar (Registers)
Z80 Assembly yazarken verileri RAM'den işlemci içindeki "kutucuklara" yani kayıtçılara taşırsınız.- A (Akümülatör): Matematiksel ve mantıksal işlemlerin merkezidir.
- B, C, D, E, H, L: Genel amaçlı 8-bitlik kayıtçılardır.
- BC, DE, HL: Gerektiğinde 16-bitlik (çift) olarak kullanılırlar. HL, genellikle bellek adreslerini işaret etmek için tercih edilir.
- F (Flags): Yapılan işlemin sonucunu (sıfır, elde, negatiflik) saklayan durum kayıtçısıdır.
2. Bölüm: Temel Komut Seti (Mnemonics)
Z80 ile iletişim kurmak için kullanılan temel "kelimeler":- LD (Load): Veri kopyalama komutudur. Örn: LD A, 10 (A'ya 10 değerini yükle).
- INC / DEC: Değeri 1 artırır veya azaltır.
- ADD / SUB: Toplama ve çıkarma işlemleri.
- CALL / RET: Bir alt programı çağırır ve işi bitince geri döner.
- JP (Jump): Belirli bir bellek adresine doğrudan atlar.
3. Bölüm: Amstrad CPC 464 Firmware Çağrıları
İşinizi kolaylaştırmak için Amstrad'ın ROM'unda (firmware) yer alan hazır fonksiyonları kullanabiliriz:- &BB5A (TXT OUTPUT): A kayıtçısındaki karakteri o anki imleç konumuna yazar.
- &BB06 (KM WAIT CHAR): Kullanıcı bir tuşa basana kadar bekler.
- &BC06 (SCR SET MODE): Ekran modunu (0, 1, 2) değiştirir.
4. Bölüm: İlk Programımız "Merhaba"
Kodun RAM üzerinde nerede çalışacağını belirleyerek ilk adımımızı atıyoruz:
Kod:
ORG &4000 ; Program başlangıç adresi (16384)
LD A, 'H' ; A kayıtçısına 'H' karakterini al
CALL &BB5A ; Amstrad Firmware ile ekrana yaz
RET ; BASIC ortamına geri dön
5. Bölüm: Kullanılacak Araçlar (Windows 11 Uyumu)
Modern sistemlerde bu kodları yazmak ve test etmek için:- Winape: En gelişmiş Windows emülatörüdür; içinde dahili assembler (kod derleyici) barındırır.
- Maxam / DAMS: Doğrudan Amstrad üzerinde çalışan klasik assembler programlarıdır.