Mündəricat:
- Təchizat
- Addım 1: Z80asmı Z80-mbc2-yə quraşdırın
- Addım 2: Mənbə Kodunu Z80-mbc2-ə kopyalayın
- Addım 3: Proqramı tərtib edin və işə salın
Video: Z80-mbc2 Z80 Kod Flaş İstifadəçi LED: 3 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bu, z80-mbc2 kompüteri üçün Z80 assembler-də yazılmış istifadəçi LED proqramının nümunəsidir.
Bunu mənim üçün bir sınaq və yoxlama məşqi etdim, bu, 35 ildən çoxdur ki, ilk Z80 proqramımdır.
Zövq alın
Təchizat
Z80-mbc2 kompüter
SLR Systems Rel -dən Z80ASM -in bir nüsxəsi. 1.32, bir çox cp/m arxivindən endirilə bilər
Redaktor, ZDE16-dan istifadə etdim, çünki o artıq z80-mbc2 üçün CP/M açılış şəklində idi.
Addım 1: Z80asmı Z80-mbc2-yə quraşdırın
Z80-MBC2 üçün istifadə etdiyiniz vasitələrlə, yəni istifadə etdiyiniz cpmtools versiyasından asılı olmayaraq bir az tanış olduğumu düşünürəm. Komanda satırı versiyalarını istifadə edərkən aşağıdakı addımları yerinə yetirin:
- Z80asm.com və z80asm.doc fayllarını (isteğe bağlı) ana kompüterinizdən bir yerdə bir qovluqda əldə edin
- SD kartınızı eyni kompüterə qoyun, aşağıda E sürücüsü olaraq göstərildiyini güman edirəm: aşağıda.
- Assambleyanı cp/m 2.2 üçün, DS0N00. DSK disk görüntüsü olacaq CP/M diskim A -ya qoydum.
- Komanda: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: z80asm.com faylını görüntüyə kopyalayacaq
- Cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: əmri sənədləri diskə kopyalayacaq (isteğe bağlı)
Z80-mbc-də cp/m 2.2 yüklədikdə, indi A sürücüsündə z80asm.com və z80asm.doc (isteğe bağlı) olmalıdır.
Addım 2: Mənbə Kodunu Z80-mbc2-ə kopyalayın
Terminal proqramınızı istifadə edərək z80-mbc-ə qoşulun
Mənbə kodunu saxlamaq üçün doldurulmamış bir disk istifadə etməyi təklif edirəm, məsələn f: bu sürücü növünü seçmək üçün:
F:
bir neçə saniyədən sonra F: əmrini görəcəksiniz.
boş bir faylı redaktə etmək üçün A sürücüsündəki zde16 proqramını istifadə edin:
a: zde16 myled.z80
Bu, F: diskində myled.z80 adlı bir fayl yaradacaq, qeyd edin: z80asmın işləməsi üçün.z80 adına ehtiyac var.
İndi kodu aşağıdan kopyalayın və yapışdırın, terminal sürətinizə və s. Asılı olaraq kiçik hissələrə kopyalayıb yapışdıra bilərsiniz. Ya da yazın! 1980 -ci illərin hisslərini geri qaytarın.
;
İstifadəçi LEDini və istifadəçi açarını sınayın; BDOS bərabərliyi 05h; cp/m BDOS giriş nöqtəsi USRLED bərabər 0; İstifadəçi LED nəzarət üçün opcode USRKEY bərabər 80h; İstifadəçi keçidinin idarə edilməsi üçün opcode DPORT bərabərliyi 0; DATA portu i/o CPORT bərabərliyi 1; Komanda portu çıxışı; org 0100h; ld (estack), sp; cp/m qayıtmaq üçün mövcud məlumatları saxlamaq ld sp, stack; ld hl, msg; salam mesaj zəngi _puts lp: ld a, 1; yandır = 1 zəng açılan zəng gecikməsi; gecikdirin və düymələri gözləyin jr nz, bitirin; sıfır olmayan xor a düyməsinə/açarına basıldığını bildirir; a = 0 zəngli zəng gecikməsi; gecikdirmək və ya açar/keçid üçün gözləmək jr z, lp; sıfır olarsa düymə/açar yoxdursa yenidən gedin; bitir: xor a; düymə və ya keçid basıldı, buna görə zəng edildi ld hl, bye; zəng edin _puts; mesajı göstər HL = ld sp, (estack); orijinal yığın ret; cp/m -ə qayıdın; led: push push; led dəyərini saxlamaq 0 və ya 1 ld a, USRLED out (CPORT), a; optcode göndərildi, af af (DPORT), a; data ret göndərildi;; Terminalda və ya istifadəçi düyməsinin gecikməsində basılan gecikmə döngəsi: ld bc, 00e00h; təxminən 1/2s 8mhz CPU, təmiz tahmin iş döngüsü2: dec bc; loop push bc saymaq; BDOS push de ld c çağırarkən qeydləri saxlamaq, 6; BDOS raw i/o düyməsinin basıldığını yoxlayın ld e, 0ffh BDOS pop de zəng edin; dəyərlərimizi stack pop bc və ya a -dan geri götürün; düymənin ret nz -də basıldığını yoxlayın; bəli qayıdın (eyni zamanda nz bayraq dəsti saxlayır) ld a, USRKEY; İndi istifadəçi açarını yoxlayın (CPORT), a; a, (DPORT) komanda portu; düyməni və a, 1 oxuyun; yalnız bit 0 ret nz ilə maraqlanır; istifadəçi düyməsinə ld a, b basıldığı təqdirdə qayıdın; və ya bc = 0 və ya c jr nz, loop2; sayma bitməyib, yenidən xor a gedin; z bayrağını 0 ret olaraq təyin edin; heç bir düyməyə basılmır, gecikmənin sonu; _puts: push bc; qeydlərimizi bdos zəngləri üçün hazır saxla push de nxt: ld a, (hl); char və ya a alın; 0 olub olmadığını yoxlayın, msg jr z -nin sonu tamamlandı; bəli belədir ld e, a; char ld c, 2 push hl çap etmək üçün BDOS -a zəng qurun; mətn göstəricisi zəngini BDOS -a yazın; çap edin hl inc hl; növbəti char jr nxt; davam edin: pop de; bitmiş regs pop bc ret; və geri qayıdın; msg db 'User LED test,' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0
ESC x istifadə edərək faylı qeyd edin. Daha çox məlumat üçün ZDE16 istifadə bələdçisinə baxın, Ctrl-K variantları fərqli olmaqla, əksər redaktələr üçün bir az ulduza bənzəyir.
Addım 3: Proqramı tərtib edin və işə salın
Mənbə kodunu maşına daxil etdikdən sonra.
Növ:
F>
F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86 SLR Systems Rel. 1.32 MYLED/Faylın Sonu Keçid 1 0 Xəta (lar) Algılandı. 406 Mütləq Bayt. 16 simvol aşkar edildi.
Bu myled.z80 faylını axtaracaq və ikili (.com) faylı istehsal edəcək, bu seçim /a -nın mənasını verir.
Daha çox məlumat üçün z80asm.doc faylına baxın.
Proqramı işə salmaq üçün yazın:
F> ağladı
İstifadəçi LED testi, F> Çıxışından çıxmaq üçün hər hansı bir düymə
Çıxmaq üçün istifadəçi düyməsini və ya terminaldakı bir düyməni basın.
Bitdi.
Tövsiyə:
RTC və İstifadəçi tərəfindən təyin olunan Pin Kodu ilə Elektron Təhlükəsizlik Sistemi: 7 addım
RTC və İstifadəçi ilə Elektron Təhlükəsizlik Sistemi Pin Kodu təyin edir: Salam uşaqlar! Bu, şəkil mikrokontrolöründən istifadə edərək real vaxt saatı olan və istifadəçinin pin kodu xüsusiyyətlərini təyin edən Elektron PIN Kodu Təhlükəsizlik Sistemini istifadə edərək hazırladığım bir layihədir, bu səhifədə özünüz etmək üçün bütün detallar var
YN160 Pro LED Video İşığı (AC) İstifadəçi: 8 addım
YN160 Pro LED Video İşığı を AC ア プ タ 対 方法 方法 方法: YN160 は 使 い い 電力 電力 で 電池 電池 電池 電池 、 、 、 、 、 本 、 本 本 換 換 本 本 換
WEB İstifadəçi Arayüzü ilə Arduino Batareya Test Cihazı .: 5 Addım
WEB İstifadəçi İnterfeysi ilə Arduino Batareya Test Cihazı .: Bu gün elektron avadanlıqlar, avadanlıq söndürüldükdə və ya təsadüfən avadanlıq söndürüldükdə əməliyyatın qaldığı vəziyyəti saxlamaq üçün ehtiyat batareyalardan istifadə edir. İstifadəçi açıldıqda qaldığı yerə qayıdır
Android istifadəçi interfeysi ilə məntiq analizatoru: 7 addım
Android İstifadəçi İnterfeysi ilə Məntiq Analizatoru: Dünya artıq bir çox məntiq analizatoru ilə doludur. Elektronika hobbimdə problemlərin həlli və ayıklama üçün birinə ehtiyacım var idi. İnternetdə axtardım amma axtardığımı tapa bilmirəm. Budur, mən təqdim edirəm … " HƏLƏ Başqa bir Lo
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü: 10 addım
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü: Bu təlimatda Google Təqvimlə inteqrasiya edilmiş ağıllı bir güzgü yaradacağıq. Bu layihəni ağıllı aynaların həqiqətən sərin olduğunu gördüyüm üçün hazırladım, səhərlər bir tanrıdır. Ancaq sıfırdan birini özüm etmək qərarına gəldim, çünki digərləri