Hmm çok zorlu bir soru, çünkü izleyecek yol çok.
başlangıç için bulduğun kitaplar iyi. ama önünde sonunda
http://www.z80.info/isimli sitedeki bilgileri hatim etmek durumunda kalacaksın.
Bir de ben opensource emulatörlerin z80 çekirdeğini incelemeyi seviyorum. böylece bir opcode'un ne iş yaptığını tam olarak çözebiliyorum. Eğer C biliyorsan Fuse'un kodunu, sadece basic biliyorsan VBspec'in kodunu incelemeni tavsiye ederim.
Eğer sıfır durumdaysan birinin sana bu kitapları bile belirli bir sırayla okuman konusunda yardımcı olması gerek, o biri elbetteki bizim ZX spectrumumuzun ta kendisi olacak.
http://www.worldofspectrum.org/infoseekid.cgi?id=0008031"the complete machine code tutor" isimli program, tüm opcode'ları, örneklerle öğretiyor. Hatta içindeki garip virtual machine ile makineyi crash etmeden kod denemeleri yapmak mümkün. Üstelik step by step debugger sana komutu açıklıyor:
LD (HL),L
> The location (HL) is loaded with the contents of the L register
gibi.
Bununla not tutup öğrenirken sana birkaç araç gerekecek. Bence başlangıç için en iyi araç ZX SPIN.
ftp.worldofspectrum.org/pub/sinclair/emulators/pc/windows/zxspin0.666.zip - Son versionu 0.666 (helloween edition).(bu forum acaip protokoller ekliyor URL'ye temizlemen gerek adresi)
ZX Spin ile elinde kolay kullanılabilen bir Debugger *ve* bir assembler sahibi olacaksın. Yazdığın kodu anında assemble edip çalıştırabileceksin, oldu da çakarsa PC'yi düzeltip normal çalışma durumuna getirebilirsin ya da reset atıp kodu düzeltip tekrar compile edebilirsin.
Bu arada el atında Specemu'nun son versionunu da bulundurmanı tavsiye ederim. Onun da kendine has özellikleri var. örneğin "Tool window 1" penceresinde ekran tamponunun yapısı rahatlıkla anlaşılabilir.
işi ilerletince crossplatform derlemeye geçebilirsin. Son zamanlarda ortamın tozunu attırıp tüm z80 toolchain'lerini arkada bırakan bir debugger&assembler kiti var, hemde eski "Design Design" firmasının ünlü coder'ı Simon Brattel'den.
http://www.desdes.com/products/oldfiles/index.htmburda zeuss'u bulabilirsin. Eski düzene alışıklar için ise basitçe PASMO kullanabilirsin. Ben pasmo ile direk olarak .tap dosyaları yarabildiğimiz için, kendime cross-compiler olarak pasmo'yu seçmiştim. Ama zeuss ile SZX yaratabiliyorsun ki bu da çok iyi bir durum.
Aslında z80 coder'ları olarak çok şanslıyız. Çünkü belkide ortamdaki en iyi emülatörler bizde, öğrenilecek en az komut seti bizde, ayrıca 8bit'lerin en hızlı işlemcisi bizde.
Ama şanssızlığımız da var: garip ekran dizilimi. Grafik çizmek için her pikseli basmak için ya bir table lookup yapmamız gerek, ya da byte adresi hesaplayıcı bir fonksiyon yazmak. Lineer bir ekran buffer'ı için neler vermezdim

Ben de z80 konusunda yetkin sayılmam. Eğer yaptıklarını paylaşırsan beraber öğrenebiliriz bu işi

Bu yıl (2009) ULA timing'lerini çözmeye çalışıyorum. Spectrumda 64x192 clash'li bir ekran oluşturmak için gerekli bu (normalde 32x24 attribute clash var).
Ayrıca, Z80 yerine alternatif programlama araçları da mevcut. Spectrum için 3-4 tane C kiti mevcut. Ayrıca sinclair basic için de güzel compiler'lar var. Başka assembler linkleri de mevcut.
bunları bir başka başlıkta anlatmıştım, okumaya değer:
http://www.commodore.gen.tr/forum/index.php?topic=182.0Son olarak değinmeden geçemeyeceğim,
20 yıl geç kalmadın, çünkü z80 işlemci zaten bugün kullandığımız pentium, core2duo vs. bunların bir klonu. PC için programlamaya geçmek için iyi bir temel olacaktır sana bu

Hatta daha açık söyleyeyim, Z80 komut seti, uyumluluk sağlaması için tam 78 adet 8088 komutu barındırıyor. Bu da işlemciler arasında kolay geçiş sağlıyor.
Son olarak, trivia:
z80= 2.5mhz, z80A=4mhz
153+78= 236 komut.
14 registe
8(4) 16 bit register pair
2 adet 16 bit register
en uzun zaman alan opcode 5.75 mikrosaniye
edit:bende