İçindekiler:
- Gereçler
- 1. Adım: Z80asm'i Z80-mbc2'nize yükleyin
- Adım 2: Kaynak Kodu Size Kopyalayın Z80-mbc2
- Adım 3: Programı Derleyin ve Çalıştırın
Video: Z80-mbc2 Z80 Kodu Flaş Kullanıcı LED'i: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Bu, z80-mbc2 bilgisayarı için Z80 assembler'da yazılmış örnek bir kullanıcı LED programıdır.
Bunu benim için bir test ve revizyon çalışması yaptım, bu benim 35 yılı aşkın süredir ilk Z80 programım.
Eğlence
Gereçler
Z80-mbc2 bilgisayar
SLR Systems Rel'den Z80ASM'nin bir kopyası. 1.32, birçok cp/m arşivinden indirilebilir
Bir editör, ZDE16 kullandım, çünkü zaten z80-mbc2 için CP/M önyükleme görüntüsündeydi
1. Adım: Z80asm'i Z80-mbc2'nize yükleyin
Kullandığınız cpmtools sürümü ne olursa olsun, Z80-MBC2'niz için sahip olduğunuz araçlara biraz aşina olduğunuzu varsayıyorum. Komut satırı sürümlerini kullanıyorsanız adımlar şunlardır:
- Ana bilgisayarınızdaki bir dizinde z80asm.com ve z80asm.doc (isteğe bağlı) dosyalarını alın
- SD kartınızı aynı PC'ye koyun, aşağıda E: sürücüsü olarak gösterildiğini varsayıyorum.
- Birleştiriciyi cp/m 2.2 için CP/M diskim A'ya koydum, bu disk görüntüsü DS0N00. DSK olacaktır.
- Komut: cpmcp -f z80mbc2-d0 e:DS0N00. DSK z80asm.com 0: z80asm.com dosyasını görüntüye kopyalar
- cpmcp -f z80mbc2-d0 e:DS0N00. DSK z80asm.doc 0: komutu, belgeleri diske kopyalayacaktır (isteğe bağlı)
z80-mbc'nizde cp/m 2.2'yi başlattığınızda, artık A sürücüsünde z80asm.com ve z80asm.doc (isteğe bağlı) olmalıdır.
Adım 2: Kaynak Kodu Size Kopyalayın Z80-mbc2
Terminal programınızı kullanarak z80-mbc'ye bağlanın
Kaynak kodunu kaydetmek için doldurulmamış bir disk kullanmanızı öneririm, örneğin bu sürücü türünü seçmek için f::
F:
birkaç saniye sonra F: istemini göreceksiniz.
şimdi boş bir dosyayı düzenlemek için A sürücüsündeki zde16 programını kullanın:
a:zde16 myled.z80
Bu, F: diskinde myled.z80 adlı bir dosya oluşturacaktır, not: z80asm'ın çalışması için adında.z80 gerekir.
Şimdi aşağıdaki kodu kopyalayıp yapıştırın, terminal hızınıza bağlı olarak küçük bölümler halinde kopyalayıp yapıştırmanız gerekebilir. Veya yazın! 1980'lerin hissini de geri alın.
;
;Kullanıcı LED'ini ve kullanıcı Anahtarını test edin; BDOS equ 05h;cp/m BDOS giriş noktası USRLED equ 0;Kullanıcı LED kontrolü için opcode USRKEY equ 80h;Kullanıcı Anahtarı kontrolü için opcode DPORT equ 0;DATA portu i/o CPORT equ 1;Komut portu çıkışı; kuruluş 0100h; ld (yığın), sp;cp/m'ye dönmek için mevcut bilgiyi sakla ld sp, stack; ld hl, msg;merhaba mesajı çağrı _puts lp: ld a, 1;açma = 1 çağrı led çağrı gecikmesi;geciktir ve tuş(lar)ı bekle jr nz, bitiş;sıfır olmayan tuşa/anahtara basılmış demektir xor a;a= 0 çağrı ledi çağrı gecikmesi;anahtar/anahtar jr z, lp için geciktirme veya bekleme;sıfır ise, anahtar/anahtar yok, tekrar gidin; bitiş: xor a;anahtar veya anahtara basıldı, bu yüzden çağrı led ld hl, güle güle;bay bay çağrı _puts;görüntüleme msj HL= ld sp, (yığın);orijinal yığın ret;cp/m'ye geri dön; led: it af; led değerini kaydet 0 veya 1 ld a, USRLED out (CPORT), a;optcode gönderilen pop af out (DPORT), a;veri gönderildi ret;;Terminalde veya kullanıcı anahtarında basılan tuşu kontrol eden gecikme döngüsü: ld bc, 00e00h; yaklaşık 1/2s 8mhz CPU, saf tahmin çalışma döngüsü2: dec bc;döngüyü say push bc;BDOS push de ld c'yi çağırırken kayıtları kaydet, 6;BDOS ham i/o tuşa basılıp basılmadığını kontrol edin ld e, 0ffh BDOS pop de çağır;değerlerimizi yığın pop bc veya a'dan geri alın;terminal ret nz'de tuşa basılıp basılmadığını kontrol edin;evet dönüş (nz bayrağını sette tutar) ld a, USRKEY;Şimdi kullanıcı anahtarı çıkışını (CPORT), a;a, (DPORT) komut bağlantı noktasını kontrol edin;key ve a, 1 oku;sadece bit 0 ret nz ile ilgilenir;kullanıcı anahtarı ld a, b'ye basarsa geri dön;veya bc=0 veya c jr nz, loop2;sayma bitmedi, tekrar gidin xor a;z bayrağını 0 ret'e ayarlayın;dönüş tuşuna basılmadı, gecikme sonu; _puts: push bc; kayıtlarımızı bdos çağrıları için hazır olarak kaydedin push de nxt: ld a, (hl); char veya a alın; 0 ise test edin, msg sonu jr z, bitti;evet öyle yapıldı ld e, a; bir char ld c yazdırmak için BDOS'a çağrıyı ayarlayın, 2 hl'ye basın;metin işaretçi çağrısını BDOS'a kaydedin; yazdır pop hl inc hl;sonraki char jr nxt;devam etmeye devam et: pop de;bitirilmiş geri yükleme kayıtları pop bc ret;ve geri dön; msg db 'Kullanıcı LED testi, çıkmak için herhangi bir tuş' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 yığını dw 0 ds 256 - 2 yığın: dw 0
Dosyayı ESC x kullanarak kaydedin. Daha fazla bilgi için ZDE16 kullanım kılavuzuna bakın, Ctrl-K seçeneklerinin farklı olması dışında çoğu düzenleme için biraz kelime yıldızı gibidir.
Adım 3: Programı Derleyin ve Çalıştırın
Kaynak kodunuz makinede olduğunda.
Tip:
F>
F>a:z80asm myled/a Z80ASM Telif hakkı (C) 1983-86 SLR Systems Rel. 1.32 MYLED/A Dosya Sonu Geçti 1 0 Hata(lar) Algılandı. 406 Mutlak Bayt. 16 Sembol Algılandı.
Bu, myled.z80 dosyasını arayacak ve bir ikili (.com) dosyası üretecektir, /a seçeneğinin anlamı budur.
Daha fazla bilgi için z80asm.doc dosyasına bakın.
Programı çalıştırmak için şunu yazın:
F>millet
Kullanıcı LED testi, Çıkış F'den çıkmak için herhangi bir tuş>
Çıkmak için kullanıcı düğmesine veya terminaldeki bir tuşa basın.
Tamamlandı.
Önerilen:
RTC ve Kullanıcı Tanımlı Pin Kodu ile Elektronik Güvenlik Sistemi: 7 Adım
RTC ve Kullanıcı Tanımlı Pin Kodu ile Elektronik Güvenlik Sistemi: Merhaba Arkadaşlar! pic mikrodenetleyici kullanarak yaptığım bir projedir, gerçek zamanlı saat ve kullanıcı tanımlı pin kodu özelliklerine sahip bir Elektronik PIN Kodu Güvenlik Sistemidir, bu sayfa kendiniz yapmak için tüm detayları içerir. ÇALIŞMASI VE KONSEPT: Peki
Esp8266 Tabanlı Boost Dönüştürücü, Geri Besleme Düzenleyicili İnanılmaz Blynk Kullanıcı Arayüzü ile: 6 Adım
Esp8266 Tabanlı Boost Dönüştürücü, Geri Besleme Düzenleyicili İnanılmaz Bir Blynk Kullanıcı Arayüzü ile: Bu projede size DC voltajlarını nasıl artırabileceğinizi verimli ve yaygın bir şekilde göstereceğim. Bir Nodemcu yardımıyla bir destek dönüştürücü oluşturmanın ne kadar kolay olabileceğini size göstereceğim. Hadi inşa edelim. Ayrıca bir ekran voltmetresi ve bir geri bildirim içerir
WEB Kullanıcı Arayüzü ile Arduino Pil Test Cihazı.: 5 Adım
WEB Kullanıcı Arayüzü ile Arduino Pil Test Cihazı: Günümüzde elektronik ekipman, ekipman kapatıldığında veya yanlışlıkla ekipman kapatıldığında işlemin kaldığı durumu kaydetmek için yedek piller kullanır. Kullanıcı açılırken kaldığı noktaya geri döner
Android Kullanıcı Arayüzü ile Mantık Analizörü: 7 Adım
Android Kullanıcı Arayüzü ile Mantık Analizörü: Dünya zaten çok sayıda mantık analizörü ile dolu. Elektronik hobimde sorun giderme ve hata ayıklama için birine ihtiyacım vardı. İnternette aradım ama aradığımı bulamıyorum. İşte buradayım, tanıtıyorum…"YET Başka Bir Lo
Bir Flaş Kamerayı Acil Durum Flaş Işığına Hackleyin: 7 Adım
Bir Flaş Kamerayı Acil Durum Flaş Işığına Hackleyin: Peki… Lehimlemeyi biliyorsanız ve elektronik hakkında biraz bilgi sahibiyseniz çok kolay. Bu talimatta size tek kullanımlık bir flaş kameradan nasıl acil durum flaş ışığı yapacağınızı göstereceğim. Eğer alırsanız ormandaki flaş ışığını kullanabilirsiniz