Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Installer Z80asm på din Z80-mbc2
- Trin 2: Kopier kildekoden til dig Z80-mbc2
- Trin 3: Kompilér og kør programmet
Video: Z80-mbc2 Z80 Code Flash User LED: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
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
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:
- Hent filerne z80asm.com og z80asm.doc (valgfrit) i et bibliotek et eller andet sted på din værts -pc
- Sæt dit SD -kort i den samme pc, jeg går ud fra, at det vises som drev E: herunder.
- Jeg satte assembler på min CP/M disk A, til cp/m 2.2, der ville være disk image DS0N00. DSK
- Kommandoen: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: kopierer filen z80asm.com til billedet
- 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:
Mash Up Arduino Code Samples: 6 trin (med billeder)
Mash Up Arduino Code Samples: Denne vejledning gennemgår processen med at kombinere Arduino -prøveskitser til at lave en fungerende projektprototype. At udvikle koden til dit projekt kan være den mest skræmmende del, især hvis du ikke allerede har gjort det tusind gange. Hvis
Castle Planter (med Tinkercad Code Blocks): 25 trin (med billeder)
Castle Planter (med Tinkercad Code Blocks): Dette design her tog mig ret lang tid at opnå, og da mine kodningsevner mindst sagt er begrænsede, håber jeg, at det blev ok :) Ved at bruge vejledningen, skal du kunne genskab alle aspekter af dette design helt uden
Morse Code Station: 3 trin
Morse Code Station: Dit-dit-dah-dah! Lær Morse -kode med dette lette Arduino Uno -projekt.Dette lette Arduino -projekt er en Morse Code -station. Morsekode er en kommunikationsmetode, der koder tegn som en række prikker og bindestreger. Dette kredsløb bruger en piezo -summer til
LabDroid: Morse Code Encoder/Decoder: 4 trin
LabDroid: Morse Code Encoder/Decoder: Bemærk: Denne instruktion kan ikke realiseres 1: 1 i den nyeste version af LabDroid. Jeg opdaterer det snart. Dette projekt viser dig, hvad du kan gøre med LabDroid. Da en Hello World normalt er lavet baseret på tekst, lys eller lyd, tænkte jeg på LabDr
Arduino Morse Code Writer: 7 trin (med billeder)
Arduino Morse Code Writer: Jeg lavede en robot, der kan konvertere enhver given tekst til Morse -kode og derefter skrive den ned !! Det er lavet af pap og Lego, og til elektronikken brugte jeg Arduino og kun to motorer