INHOUDSOPGAWE:

Z80-mbc2 Z80 Code Flash User LED: 3 stappe
Z80-mbc2 Z80 Code Flash User LED: 3 stappe

Video: Z80-mbc2 Z80 Code Flash User LED: 3 stappe

Video: Z80-mbc2 Z80 Code Flash User LED: 3 stappe
Video: Build an 8-bit retro computer powered by a Z80 ! [Zeal 8-bit] 2024, November
Anonim
Z80-mbc2 Z80 Code Flash User LED
Z80-mbc2 Z80 Code Flash User LED

Dit is 'n voorbeeld van 'n gebruiker-LED-program wat in die Z80-samesteller vir die z80-mbc2-rekenaar geskryf is.

Ek het vir my 'n toets- en hersieningsoefening gedoen, dit is my eerste Z80 -program vir meer as 35 jaar.

Geniet dit

Voorrade

Z80-mbc2 rekenaar

'N Afskrif van Z80ASM van SLR Systems Rel. 1.32, kan afgelaai word uit baie cp/m -argiewe

Ek was 'n redakteur, ek het ZDE16 gebruik, aangesien dit reeds op die CP/M-opstartprent was vir die z80-mbc2

Stap 1: Installeer Z80asm op u Z80-mbc2

Installeer Z80asm op u Z80-mbc2
Installeer Z80asm op u Z80-mbc2

Ek neem kennis van die gereedskap wat u vir u Z80-MBC2 het, naamlik watter weergawe van cpmtools u ook al gebruik. Hier is die stappe as u die opdragreëlweergawes gebruik:

  1. Kry die lêers z80asm.com en z80asm.doc (opsioneel) in 'n gids op 'n plek op u gasheer -rekenaar
  2. Plaas u SD -kaart in dieselfde rekenaar, ek neem aan dat dit as skyf E: hieronder verskyn.
  3. Ek sit die samesteller op my CP/M skyf A, vir cp/m 2.2, wat die skyfbeeld DS0N00. DSK sou wees
  4. Die opdrag: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: sal die lêer z80asm.com na die prent kopieer
  5. Die opdrag cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: sal die dokumentasie na die skyf kopieer (opsioneel)

As u cp/m 2.2 op u z80-mbc begin, behoort u nou z80asm.com en z80asm.doc (opsioneel) op skyf A te hê

Stap 2: Kopieer die bronkode na u Z80-mbc2

Koppel aan die z80-mbc met u terminale program

Ek stel voor dat u 'n onbevolkte skyf gebruik om die bronkode op te slaan, byvoorbeeld f: om hierdie tipe skyf te kies:

F:

na 'n paar sekondes sien u die F: prompt.

gebruik nou die zde16 -program op ry A om 'n leë lêer te wysig:

a: zde16 myled.z80

Dit skep 'n lêer met die naam myled.z80 op die skyf F:, let op: die.z80 word in die naam benodig om z80asm te laat werk.

Kopieer en plak nou die onderstaande kode, afhangende van u terminale snelheid, ens, moet u moontlik in klein afdelings kopieer en plak. Of tik dit in! kry ook die gevoel van die 1980's terug.

;

; Toets die gebruikers -LED en gebruikersleutel; BDOS equ 05h; cp/m BDOS entry point USRLED equ 0; opcode for User LED control USRKEY equ 80h; opcode for User Switch control DPORT equ 0; DATA poort i/o CPORT equ 1; Command port output; org 0100h; ld (estack), sp; hou bestaande inligting vir terugkeer na cp/m ld sp, stack; ld hl, msg; hallo boodskap oproep _uitsette lp: ld a, 1; skakel aan = 1 oproep geleide oproep vertraging; vertraag en wag vir sleutel (s) jr nz, klaar; nie nul beteken sleutel/skakelaar gedruk xor a; a = 0 oproep gelei oproep vertraging; vertraag of wag vir sleutel/skakelaar jr z, lp; as nul, geen sleutel/skakelaar, gaan weer; afwerking: xor a; sleutel of skakelaar is ingedruk, so gedoen oproep gelei ld hl, totsiens; sê totsiens oproepe; vertoon boodskap HL = ld sp, (estack); oorspronklike stapel ret; terug na cp/m; led: push af; save led value 0 or 1 ld a, USRLED out (CPORT), a; optcode gestuur pop af out (DPORT), a; data gestuur ret;; Vertragingslus waarmee die toets op die terminale of die gebruikersleutelvertraging ingedruk word: ld bc, 00e00h; ongeveer 1/2s 8mhz SVE, pure raai werklus2: dec bc; tel die lus push bc; bespaar regs wanneer u BDOS push de ld c bel, 6; BDOS rou i/o kyk of die toets ingedruk word ld e, 0ffh bel BDOS pop; kry ons waardes terug van stapel pop bc of a; kyk of die toets ingedruk word op terminale ret nz; ja terug (hou ook nz vlag gestel) ld a, USRKEY; Kontroleer nou die gebruikerssleutel (CPORT), a; opdragpoort in a, (DPORT); lees sleutel en a, 1; stel slegs belang in bit 0 ret nz; keer terug as gebruikersleutel op ld a, b; of is bc = 0 of c jr nz, lus2; nie klaar met tel nie, gaan weer xor a; stel die z -vlag op 0 ret; gee geen sleutel terug nie, einde van vertraging; _puts: druk bc; stoor ons regs gereed vir bdos -oproepe push de nxt: ld a, (hl); kry char of a; toets of dit 0 is, einde van msg jr z, klaar; ja so gedaan ld e, a; skakel 'n oproep na BDOS om 'n char ld c, 2 push hl; druk teks wyser call BDOS; druk dit pop hl inc hl; volgende char jr nxt; gaan voort: pop de; klaar herstel regs pop bc ret; en stuur terug; msg db 'Gebruikers LED -toets, enige sleutel om' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0

Stoor die lêer met behulp van ESC x. Sien die ZDE16-gebruikersgids vir meer inligting; dit is 'n bietjie soos wordstar vir die meeste redigering, behalwe dat die Ctrl-K-opsies anders is.

Stap 3: Stel die program saam en voer dit uit

Sodra u u bronkode op die masjien het.

Tipe:

F>

F> a: z80asm myled/a Z80ASM Kopiereg (C) 1983-86 deur SLR Systems Rel. 1.32 MYLED/A Einde lêer Slaag 1 0 Fout (e) opgespoor. 406 Absolute Bytes. 16 Simbole opgespoor.

Dit sal na die lêer myled.z80 soek en 'n binêre (.com) lêer produseer, dit is waarvoor die opsie /a staan.

Sien die z80asm.doc -lêer vir meer inligting.

Om die program uit te voer, tik:

F> myled

Gebruikers -LED -toets, enige sleutel om afrit F> te verlaat

Druk op die gebruikersknoppie of op 'n sleutel op die terminale om te verlaat.

Klaar.

Aanbeveel: