Talaan ng mga Nilalaman:

Z80-mbc2 Z80 Code Flash User LED: 3 Mga Hakbang
Z80-mbc2 Z80 Code Flash User LED: 3 Mga Hakbang

Video: Z80-mbc2 Z80 Code Flash User LED: 3 Mga Hakbang

Video: Z80-mbc2 Z80 Code Flash User LED: 3 Mga Hakbang
Video: Z80-MBC2 Flashing LED Clock 2024, Nobyembre
Anonim
Z80-mbc2 Z80 Code Flash User LED
Z80-mbc2 Z80 Code Flash User LED

Ito ay isang halimbawa ng programang LED ng gumagamit na nakasulat sa Z80 assembler para sa z80-mbc2 computer.

Ginawa ko ito para sa akin ng isang pagsubok at rebisyon na ehersisyo, ito ang aking unang programa ng Z80 sa loob ng higit sa 35 taon.

Tangkilikin

Mga gamit

Z80-mbc2 computer

Isang kopya ng Z80ASM mula sa SLR Systems Rel. 1.32, nada-download mula sa maraming mga archive ng cp / m

Isang editor, ginamit ko ang ZDE16, dahil nasa ang imahe ng boot na CP / M para sa z80-mbc2

Hakbang 1: I-install ang Z80asm sa Iyong Z80-mbc2

I-install ang Z80asm sa Iyong Z80-mbc2
I-install ang Z80asm sa Iyong Z80-mbc2

Ipinapalagay ko ang ilang pamilyar sa mga tool na mayroon ka para sa iyong Z80-MBC2, lalo na ang anumang bersyon ng cpmtools na iyong ginagamit. Narito ang mga hakbang kung gumagamit ng mga bersyon ng linya ng utos:

  1. Kunin ang mga file na z80asm.com at z80asm.doc (opsyonal) sa isang direktoryo ng ilang lugar sa iyong host PC
  2. Ilagay ang iyong SD card sa parehong PC, ipinapalagay ko sa ibaba na ito ay ipinapakita bilang drive E: sa ibaba.
  3. Inilagay ko ang assembler sa aking CP / M disk A, para sa cp / m 2.2 na magiging disk image DS0N00. DSK
  4. Ang utos: cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.com 0: kokopyahin ang file na z80asm.com sa imahe
  5. Ang utos cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.doc 0: kokopyahin ang dokumentasyon sa disk (opsyonal)

Kapag nag-boot ka ng cp / m 2.2 sa iyong z80-mbc, dapat mayroon ka na ngayong z80asm.com at z80asm.doc (opsyonal) sa drive A

Hakbang 2: Kopyahin ang Source Code sa Iyo Z80-mbc2

Kumonekta sa z80-mbc gamit ang iyong terminal program

Iminumungkahi kong gumamit ka ng isang hindi popular na disk upang mai-save ang source code, halimbawa f: upang piliin ang uri ng drive na ito:

F:

pagkatapos ng ilang segundo makikita mo ang F: prompt.

gamitin ngayon ang zde16 program sa drive A upang mai-edit ang isang blangko na file:

a: zde16 myled.z80

Lilikha ito ng isang file na tinatawag na myled.z80 sa disk F:, note: ang.z80 ay kinakailangan sa pangalan para gumana ang z80asm.

Ngayon kopyahin at i-paste ang code sa ibaba, depende sa bilis ng iyong terminal atbp maaaring kailangan mong kopyahin at i-paste sa maliliit na seksyon. O i-type ito! ibalik din ang pakiramdam ng 1980 na iyon.

;

; Subukan ang LED user at Key ng gumagamit; BDOS equ 05h; cp / m BDOS entry point USRLED equ 0; opcode para sa User LED control USRKEY equ 80h; opcode para sa User Switch control DPORT equ 0; DATA port i / o CPORT equ 1; Command port output; org 0100h; ld (estack), sp; panatilihin ang mayroon nang impormasyon para sa pagbalik sa cp / m ld sp, stack; ld hl, msg; hello message call _puts lp: ld a, 1; turn on = 1 call led call delay; antala at hintayin ang (mga) key jr nz, tapusin; non zero nangangahulugang key / switch na pinindot xor a; a = 0 call led call delay; antala o maghintay para sa key / switch jr z, lp; kung zero, walang key / switch, pumunta muli; tapusin: xor a; ang susi o switch ay pinindot, tapos na ang call led ld hl, bye; say bye call _puts; display msg HL = ld sp, (estack); orihinal na stack ret; bumalik sa cp / m; led: push af; save led value 0 or 1 ld a, USRLED out (CPORT), a; optcode sent pop af out (DPORT), a; data sent ret;; Ipa-antala ang loop na suriin ang susi na pinindot sa terminal o pagkaantala ng key ng gumagamit: ld bc, 00e00h; aprox 1 / 2s 8mhz CPU, puro hula work loop2: dec bc; count the loop push bc; save regs when calling BDOS push de ld c, 6; BDOS raw i / o suriin kung pinindot ang key ld e, 0ffh tumawag sa BDOS pop de; ibalik ang aming mga halaga mula sa stack pop bc o a; suriin kung ang key ay pinindot sa terminal ret nz; oo bumalik (pinapanatili din ang nz flag set) ld a, USRKEY; Ngayon suriin ang key ng gumagamit (CPORT), a; command port sa isang, (DPORT); basahin ang key at a, 1; interesado lamang sa bit 0 ret nz; bumalik kung pinindot ng userkey ld a, b; o ay bc = 0 o c jr nz, loop2; hindi natapos ang pagbibilang, pumunta muli xor a; itakda ang z flag sa 0 ret; ibalik walang pinindot na key, pagtatapos ng pagkaantala; _puts: push bc; i-save ang aming mga regs handa para sa mga tawag ng bdos na push de nxt: ld a, (hl); kumuha ng char o a; subukan kung ito ay 0, pagtatapos ng msg jr z, tapos na; oo kaya nagawa ld e, a; i-set up ang tawag sa BDOS upang mai-print ang isang char ld c, 2 push hl; i-save ang text pointer call na BDOS; i-print ito pop hl inc hl; susunod na char jr nxt; magpatuloy na gawin: pop de; tapos ibalik ang regs pop bc ret; at bumalik; msg db 'User LED test, anumang key upang lumabas' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0

I-save ang file gamit ang ESC x. Tingnan ang gabay sa paggamit ng ZDE16 para sa karagdagang impormasyon, medyo katulad ito ng wordstar para sa karamihan ng pag-edit, maliban sa mga pagpipilian sa Ctrl-K na magkakaiba.

Hakbang 3: Pagsamahin at Patakbuhin ang Programa

Kapag mayroon ka ng iyong source code sa makina.

Uri:

F>

F> a: z80asm myled / isang Z80ASM Copyright (C) 1983-86 ng SLR Systems Rel. 1.32 MYLED / A End of file Pass 1 0 (Mga) Error na Nakita. 406 Ganap na Bytes. 16 Mga Simbolo na Natukoy.

Hahanapin nito ang file na myled.z80 at makagawa ng isang binary (.com) na file, iyon ang pinaninindigan ng opsyon / a.

Tingnan ang z80asm.doc file para sa karagdagang impormasyon.

Upang patakbuhin ang programa, i-type ang:

F> myled

Pagsubok ng LED ng gumagamit, anumang susi upang lumabas sa Exit F>

Pindutin ang alinman sa pindutan ng gumagamit o isang susi sa terminal upang lumabas.

Tapos na.

Inirerekumendang: