Indholdsfortegnelse:

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

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

Video: Z80-mbc2 Z80 Code Flash User LED: 3 trin
Video: Ретро-компьютер Z80 своими руками №5: загрузка с карты CompactFlash 2024, December
Anonim
Z80-mbc2 Z80 Code Flash User LED
Z80-mbc2 Z80 Code Flash User LED

Dette er et eksempel bruger-LED-program skrevet i Z80 assembler til z80-mbc2 computeren.

Jeg lavede en test- og revisionsøvelse for mig, dette er mit første Z80 -program i over 35 år.

god fornøjelse

Forbrugsvarer

Z80-mbc2 computer

En kopi af Z80ASM fra SLR Systems Rel. 1.32, der kan downloades fra mange cp/m -arkiver

Som redaktør brugte jeg ZDE16, da det allerede var på CP/M-bootbilledet til z80-mbc2

Trin 1: Installer Z80asm på din Z80-mbc2

Installer Z80asm på din Z80-mbc2
Installer Z80asm på din Z80-mbc2

Jeg antager en vis fortrolighed med de værktøjer, du har til din Z80-MBC2, nemlig uanset hvilken version af cpmtools du bruger. Her er trinene, hvis du bruger kommandolinjeversionerne:

  1. Hent filerne z80asm.com og z80asm.doc (valgfrit) i et bibliotek et eller andet sted på din værts -pc
  2. Sæt dit SD -kort i den samme pc, jeg går ud fra, at det vises som drev E: herunder.
  3. Jeg satte assembler på min CP/M disk A, til cp/m 2.2, der ville være disk image DS0N00. DSK
  4. Kommandoen: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: kopierer filen z80asm.com til billedet
  5. Kommandoen cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: kopierer dokumentationen til disken (valgfrit)

Når du starter cp/m 2.2 på din z80-mbc, skal du nu have z80asm.com og z80asm.doc (valgfrit) på drev A

Trin 2: Kopier kildekoden til dig Z80-mbc2

Opret forbindelse til z80-mbc ved hjælp af dit terminalprogram

Jeg foreslår, at du bruger en upopuleret disk til at gemme kildekoden på f.eks. F: for at vælge denne drevtype:

F:

efter et par sekunder vil du se prompten F:.

brug nu zde16 -programmet på drev A til at redigere en tom fil:

a: zde16 myled.z80

Dette vil oprette en fil kaldet myled.z80 på disken F:, Bemærk:.z80 er påkrævet i navnet for at z80asm skal fungere.

Kopier og indsæt nu koden herunder, afhængigt af din terminalhastighed osv., Skal du muligvis kopiere og indsætte i små sektioner. Eller skriv det ind! få den følelse fra 1980'erne også tilbage.

;

Test brugerens LED og brugernøgle; 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 port i/o CPORT equ 1; Command port output; org 0100h; ld (estack), sp; behold eksisterende info for at vende tilbage til cp/m ld sp, stack; ld hl, msg; hej besked opkald _puts lp: ld a, 1; tænd = 1 opkald ledet opkaldsforsinkelse; forsink og vent på tast (er) jr nz, afslutte; ikke nul betyder tast/switch trykket xor a; a = 0 opkaldsforsinket opkaldsforsinkelse; forsink eller vent på tast/switch jr z, lp; hvis nul, ingen tast/switch, gå igen; afslut: xor a; tasten eller kontakten blev trykket, så færdig kaldet led ld hl, bye; sig bye opkald _puts; vis msg HL = ld sp, (estack); original stack ret; vende tilbage til cp/m; led: push af; gem led -værdi 0 eller 1 ld a, USRLED out (CPORT), a; optcode sendt pop af out (DPORT), a; data sendt ret;; Forsinkelse af sløjfe, der kontrollerer tasten, der er trykket på terminal eller forsinkelse af brugernøgle: ld bc, 00e00h; ca. 1/2s 8mhz CPU, ren gæt -arbejdsløjfe2: dec bc; tæl loop -push -bc; gem regs, når du ringer til BDOS push de ld c, 6; BDOS raw i/o tjek om tasten er trykket ld e, 0ffh ring BDOS pop de; få vores værdier tilbage fra stack pop bc eller a; kontroller om tasten er trykket på terminal ret nz; ja retur (holder også nz flag indstillet) ld a, USRKEY; Kontroller nu brugernøgle (CPORT), a; kommandoport i a, (DPORT); læs nøgle og a, 1; kun interesseret i bit 0 ret nz; returner, hvis brugernøgle trykker på ld a, b; eller er bc = 0 eller c jr nz, loop2; ikke færdig med at tælle, gå igen xor a; sæt z -flaget til 0 ret; returner ingen tast trykket, slut på forsinkelse; _puts: push bc; gem vores regs klar til bdos opkald push de nxt: ld a, (hl); få char eller a; test om det er 0, slut på msg jr z, gjort; ja så gjort ld e, a; konfigurer opkald til BDOS for at udskrive en char ld c, 2 push hl; gem tekstmarkør opkald BDOS; print det pop hl inc hl; næste char jr nxt; fortsæt med at gøre: pop de; færdig gendannelse regs pop bc ret; og returner; msg db 'Bruger LED -test, enhver tast for at afslutte' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0

Gem filen ved hjælp af ESC x. Se brugsvejledningen til ZDE16 for mere information, det ligner lidt wordstar til de fleste redigeringer, undtagen at Ctrl-K-indstillingerne er forskellige.

Trin 3: Kompilér og kør programmet

Når du har din kildekode på maskinen.

Type:

F>

F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86 af SLR Systems Rel. 1.32 MYLED/A Slut på filpas 1 0 Fejl registreret. 406 absolutte bytes. 16 opdagede symboler.

Dette vil lede efter filen myled.z80 og producere en binær (.com) fil, det er hvad optionen /a står for.

Se z80asm.doc -filen for mere information.

For at køre programmet skal du skrive:

F> myled

Bruger LED -test, enhver tast for at forlade Exit F>

Tryk på enten brugerknappen eller en tast på terminalen for at afslutte.

Færdig.

Anbefalede: