Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä on esimerkki käyttäjän LED-ohjelmasta, joka on kirjoitettu Z80-kokoonpanossa z80-mbc2-tietokoneelle.
Tein tämän testi- ja tarkistusharjoituksen minulle, tämä on ensimmäinen Z80 -ohjelmani yli 35 vuoteen.
Nauttia
Tarvikkeet
Z80-mbc2 tietokone
Kopio Z80ASM: stä SLR Systems Rel. 1.32, ladattavissa monista cp/m -arkistoista
Toimittaja, käytin ZDE16: ta, koska se oli jo CP/M-käynnistyskuvassa z80-mbc2: lle
Vaihe 1: Asenna Z80asm Z80-mbc2 -laitteeseen
Oletan, että tiedät jonkin verran Z80-MBC2-laitteesi työkaluista, eli käyttämästäsi cpmtools-versiosta. Jos käytät komentoriviversioita, toimi seuraavasti:
- Hae tiedostot z80asm.com ja z80asm.doc (valinnainen) hakemistoon jossain paikassa isäntäkoneellasi
- Aseta SD -korttisi samaan tietokoneeseen, oletan, että se näkyy alla asemana E: alla.
- Laitoin kokoonpanijan CP/M -levylle A, cp/m 2.2, joka olisi levykuva DS0N00. DSK
- Komento: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: kopioi tiedoston z80asm.com kuvaan
- Komento cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: kopioi asiakirjat levylle (valinnainen)
Kun käynnistät cp/m 2.2 -laitteen z80-mbc-tietokoneellasi, asemalla A pitäisi nyt olla z80asm.com ja z80asm.doc (valinnainen).
Vaihe 2: Kopioi lähdekoodi Z80-mbc2
Yhdistä z80-mbc pääteohjelmalla
Suosittelen käyttämään asuttamatonta levyä lähdekoodin tallentamiseen, esimerkiksi f: tämän asematyypin valitsemiseksi:
F:
muutaman sekunnin kuluttua näet F: -kehotteen.
muokkaa nyt tyhjää tiedostoa aseman A zde16 -ohjelmalla:
a: zde16 myled.z80
Tämä luo tiedoston nimeltä myled.z80 levylle F:, Huomaa:.z80 vaaditaan nimessä, jotta z80asm toimii.
Kopioi ja liitä alla oleva koodi, riippuen päätelaitteen nopeudesta jne. Sinun on ehkä kopioitava ja liitettävä pieniin osiin. Tai kirjoita se! saat myös sen 1980 -luvun tunteen takaisin.
;
; Testaa käyttäjän LED ja käyttäjän avain; BDOS equ 05h; cp/m BDOS -tulopiste USRLED equ 0; opcode käyttäjän LED -ohjaukselle USRKEY equ 80h; opcode User Switch -ohjaukselle DPORT equ 0; DATA -portti i/o CPORT equ 1; Komentoportin lähtö; org 0100h; ld (estack), sp; säilytä olemassa olevat tiedot palataksesi cp/m ld sp, pino; ld hl, msg; hello message call _putes lp: ld a, 1; turn on = 1 call led call delay; delay and wait for key (s) jr nz, finish; non zero tarkoittaa näppäintä/kytkintä painettuna xor a; a = 0 puhelun johtaman puhelun viive; viive tai odota avainta/kytkintä jr z, lp; jos nolla, ei avainta/kytkintä, mene uudelleen; viimeistely: x tai a; näppäintä tai kytkintä painettiin, joten puhelu johti ld hl, heippa; sano hyvästi puhelu _putket; näytä viesti HL = ld sp, (estack); alkuperäinen pino ret; palaa cp/m; led: push af; tallenna led -arvo 0 tai 1 ld a, USRLED out (CPORT), a; optkoodi lähetetty pop af out (DPORT), a; tiedot lähetetty ret;; Viivästyssilmukka, joka tarkistaa päätelaitteen painetun näppäimen tai käyttäjäavaimen viiveen: ld bc, 00e00h; noin 1/2s 8mhz CPU, puhdas arvaussilmukka2: dec bc; laske silmukan push bc; tallenna regs kutsuttaessa BDOS push de ld c, 6; BDOS -raaka i/o -tarkistus, painetaanko näppäintä ld e, 0ffh kutsuu BDOS pop de; hae arvomme takaisin pino pop bc tai a; tarkista, onko näppäintä painettu terminaalissa ret nz; kyllä paluu (pitää myös nz -lipun asetettuna) ld a, USRKEY; Tarkista nyt käyttäjäavain (CPORT), a; komentoportti a, (DPORT); lukunäppäin ja a, 1; kiinnostunut vain bitistä 0 ret nz; palaa, jos käyttäjäavain on painanut ld a, b; tai on bc = 0 tai c jr nz, silmukka2; laskeminen ei ole päättynyt, mene uudelleen xor a; aseta z -lippu arvoon 0 ret; palauta painamatta näppäintä, viiveen loppu; _puts: push bc; tallenna rekisterimme valmiiksi bdos -puheluihin push de nxt: ld a, (hl); hae char tai a; testaa, onko se 0, viestin loppu jr z, valmis; kyllä niin tehty ld e, a; määritä puhelu BDOS: lle tulostaaksesi char ld c, 2 push hl; tallenna tekstin osoitinsoitto BDOS; tulosta se pop hl inc hl; next char jr nxt; jatka tekemistä: pop de; valmis palautusrekisterit pop bc ret; ja palaa; msg db 'Käyttäjän LED -testi, mikä tahansa näppäin poistumiseen' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256-2 pino: dw 0
Tallenna tiedosto ESC x: llä. Katso lisätietoja ZDE16-käyttöoppaasta, se on vähän kuin wordstar useimmille muokkauksille, paitsi että Ctrl-K-vaihtoehdot ovat erilaisia.
Vaihe 3: Käännä ja suorita ohjelma
Kun olet saanut lähdekoodin koneeseen.
Tyyppi:
F>
F> a: z80asm myled/a Z80ASM Tekijänoikeus (C) 1983-86, SLR Systems Rel. 1.32 MYLED/A Tiedoston loppu Hyväksytty 1 0 Virheitä havaittu. 406 absoluuttista tavua. 16 Symbolit havaittu.
Tämä etsii tiedostoa myled.z80 ja tuottaa binaaritiedoston (.com), sitä vaihtoehto /a tarkoittaa.
Katso lisätietoja z80asm.doc -tiedostosta.
Suorita ohjelma kirjoittamalla:
F> myled
Käyttäjän LED -testi, mikä tahansa näppäin poistuaksesi Ex> F>
Poistu painamalla käyttäjäpainiketta tai päätelaitteen näppäintä.
Tehty.