Satura rādītājs:

Z80-mbc2 Z80 koda zibspuldze Lietotāja LED: 3 soļi
Z80-mbc2 Z80 koda zibspuldze Lietotāja LED: 3 soļi

Video: Z80-mbc2 Z80 koda zibspuldze Lietotāja LED: 3 soļi

Video: Z80-mbc2 Z80 koda zibspuldze Lietotāja LED: 3 soļi
Video: Балуемся ассемблером Z80 2024, Novembris
Anonim
Z80-mbc2 Z80 koda zibspuldzes lietotāja LED
Z80-mbc2 Z80 koda zibspuldzes lietotāja LED

Šis ir lietotāja LED programmas piemērs, kas rakstīts Z80 montētājā datoram z80-mbc2.

Es veicu šo pārbaudes un pārskatīšanas uzdevumu man, šī ir mana pirmā Z80 programma vairāk nekā 35 gadus.

Izbaudi

Piegādes

Dators Z80-mbc2

Z80ASM kopija no SLR Systems Rel. 1.32, lejupielādējams no daudziem cp/m arhīviem

Redaktors, es izmantoju ZDE16, jo tas jau bija z80-mbc2 CP/M sāknēšanas attēlā

1. darbība: instalējiet Z80asm savā Z80-mbc2

Instalējiet Z80asm savā Z80-mbc2
Instalējiet Z80asm savā Z80-mbc2

Es pieņemu, ka ir zināmas jūsu Z80-MBC2 rīki, proti, jebkura izmantotās cpmtools versija. Ja izmantojat komandrindas versijas, veiciet tālāk norādītās darbības.

  1. Iegūstiet failus z80asm.com un z80asm.doc (pēc izvēles) direktorijā, kas atrodas jūsu saimniekdatora vietā
  2. Ievietojiet savu SD karti vienā datorā, pieņemu, ka zemāk tā tiek parādīta kā disks E:
  3. Es ievietoju montētāju savā CP/M diskā A, cp/m 2.2, kas būtu diska attēls DS0N00. DSK
  4. Komanda: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: kopēs failu z80asm.com uz attēlu
  5. Komanda cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: kopēs dokumentāciju uz diska (pēc izvēles)

Kad z80-mbc sāknējat cp/m 2.2, tagad diskā A jābūt z80asm.com un z80asm.doc (pēc izvēles).

2. darbība. Kopējiet avota kodu uz Z80-mbc2

Izveidojiet savienojumu ar z80-mbc, izmantojot termināļa programmu

Lai saglabātu avota kodu, iesaku izmantot neapdzīvotu disku, piemēram, f: lai izvēlētos šo diska veidu:

F:

pēc dažām sekundēm jūs redzēsit uzvedni F:.

tagad izmantojiet zde16 programmu A diskā, lai rediģētu tukšu failu:

a: zde16 myled.z80

Tādējādi diskā F: tiks izveidots fails ar nosaukumu myled.z80, un ņemiet vērā: lai z80asm darbotos, nosaukumā ir nepieciešams.z80.

Tagad kopējiet un ielīmējiet zemāk esošo kodu, atkarībā no termināļa ātruma utt., Iespējams, jums būs jākopē un jāielīmē nelielās sadaļās. Vai arī ierakstiet to! atgūt arī to 1980. gadu sajūtu.

;

; Pārbaudiet lietotāja LED un lietotāja atslēgu; BDOS ekv. 05 h; cp/m BDOS ievades punkts USRLED equ 0; opkode lietotāja LED vadībai USRKEY equ 80h; opkode lietotāja slēdža vadībai DPORT equ 0; DATA ports i/o CPORT equ 1; Komandporta izeja; org 0100h; ld (estack), sp; saglabāt esošo informāciju, lai atgrieztos cp/m ld sp, stack; ld hl, ziņa; sveiciena zvans _ ievada lp: ld a, 1; ieslēgt = 1 zvana izraisīta zvana aizkave; aizkave un gaidiet atslēgu (-as) jr nz, pabeigt; bez nulles nozīmē taustiņu/slēdzi nospiestu x vai a; a = 0 zvana izraisīta zvana kavēšanās; aizkavēt vai gaidīt atslēgu/slēdzi jr z, lp; ja nulle, nav atslēgas/slēdža, dodieties vēlreiz; apdare: xor a; taustiņš vai slēdzis tika nospiests, tāpēc darīts zvans ld hl, bye; say bye call _puts; displeja ziņojums HL = ld sp, (estack); sākotnējā steka ret; atgriezties pie cp/m; led: push af; saglabājiet LED vērtību 0 vai 1 ld a, USRLED out (CPORT), a; optcode nosūtīts pop af out (DPORT), a; dati nosūtīti ret;; Kavēšanās cilpa, kas pārbauda taustiņu nospiestu terminālī vai lietotāja atslēgas aizkave: ld bc, 00e00h; aptuveni 1/2s 8mhz CPU, tīra minējuma darba cilpa2: dec bc; saskaitīt cilpas spiedienu bc; saglabāt regs, izsaucot BDOS push de ld c, 6; BDOS neapstrādāts i/o pārbaudiet, vai taustiņš ir nospiests ld e, 0ffh izsauc BDOS pop de; iegūstiet mūsu vērtības no kaudzes pop bc vai a; pārbaudiet, vai taustiņš ir nospiests uz termināļa ret nz; jā atgriežas (arī saglabā nz karodziņu) ld a, USRKEY; Tagad pārbaudiet lietotāja atslēgu (CPORT), a; komandu portu a, (DPORT); lasīšanas taustiņu un a, 1; interesē tikai bits 0 ret nz; atgriezties, ja lietotāja taustiņš nospiež ld a, b; vai bc = 0 vai c jr nz, cilpa2; nav pabeigta skaitīšana, ejiet vēlreiz xor a; iestatiet z karogu uz 0 ret; neatgrieziet nevienu taustiņu, aizkaves beigas; _puts: push bc; saglabājiet mūsu reģistrus gatavus bdos zvaniem push de nxt: ld a, (hl); iegūstiet char vai a; pārbaudiet, vai tas ir 0, ziņojuma beigas jr z, darīts; jā, tas ir izdarīts ld e, a; iestatiet zvanu uz BDOS, lai izdrukātu char ld c, 2 push hl; saglabājiet teksta rādītāja zvanu BDOS; izdrukājiet to pop hl inc hl; next char jr nxt; turpiniet darīt: pop de; pabeigts atjaunošanas režīms pop bc ret; un atgriezties; msg db 'Lietotāja LED tests, jebkura atslēga, lai izietu' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 steks: dw 0

Saglabājiet failu, izmantojot ESC x. Plašāku informāciju skatiet ZDE16 lietošanas rokasgrāmatā, tā ir nedaudz līdzīga Wordstar lielākajai daļai rediģēšanas, izņemot Ctrl-K opcijas.

3. darbība: apkopojiet un palaidiet programmu

Kad esat ieguvis avota kodu ierīcē.

Tips:

F>

F> a: z80asm myled/a Z80ASM Autortiesības (C) 1983-86 by SLR Systems Rel. 1.32 MYLED/A Faila beigas 1. pas. 0 Atrasta kļūda. 406 absolūti baiti. Atrasti 16 simboli.

Tas meklēs failu myled.z80 un izveidos bināro (.com) failu, tas ir tas, ko nozīmē opcija /a.

Plašāku informāciju skatiet failā z80asm.doc.

Lai palaistu programmu, ierakstiet:

F> myled

Lietotāja LED tests, jebkura atslēga, lai izietu no izejas F>

Lai izietu, nospiediet lietotāja pogu vai termināļa taustiņu.

Pabeigts

Ieteicams: