Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Installer Z80asm på din Z80-mbc2
- Trinn 2: Kopier kildekoden til deg Z80-mbc2
- Trinn 3: Kompiler og kjør programmet
Video: Z80-mbc2 Z80 Code Flash User LED: 3 Trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Dette er et eksempel bruker-LED-program skrevet i Z80 assembler for z80-mbc2 datamaskinen.
Jeg gjorde en test- og revisjonsøvelse for meg, dette er mitt første Z80 -program på over 35 år.
Nyt
Rekvisita
Z80-mbc2 datamaskin
En kopi av Z80ASM fra SLR Systems Rel. 1.32, nedlastbar fra mange cp/m -arkiver
En redaktør, jeg brukte ZDE16, siden det allerede var på CP/M-oppstartsbildet for z80-mbc2
Trinn 1: Installer Z80asm på din Z80-mbc2
Jeg antar litt kjent med verktøyene du har for din Z80-MBC2, nemlig hvilken versjon av cpmtools du bruker. Her er trinnene hvis du bruker kommandolinjeversjonene:
- Få filene z80asm.com og z80asm.doc (valgfritt) i en katalog et sted på verts -PC -en
- Sett SD -kortet i samme PC, jeg antar at det vises som stasjon E: nedenfor.
- Jeg satte assembler på min CP/M disk A, for cp/m 2.2 som ville være disk image DS0N00. DSK
- Kommandoen: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: kopierer filen z80asm.com til bildet
- Kommandoen cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: kopierer dokumentasjonen til disken (valgfritt)
Når du starter cp/m 2.2 på z80-mbc, bør du nå ha z80asm.com og z80asm.doc (valgfritt) på stasjon A
Trinn 2: Kopier kildekoden til deg Z80-mbc2
Koble til z80-mbc ved hjelp av terminalprogrammet
Jeg foreslår at du bruker en upopulert disk til å lagre kildekoden på, for eksempel f: for å velge denne stasjonen:
F:
etter noen sekunder vil du se F: ledeteksten.
bruk nå zde16 -programmet på stasjon A for å redigere en tom fil:
a: zde16 myled.z80
Dette vil opprette en fil som heter myled.z80 på disken F:, merk:.z80 kreves i navnet for at z80asm skal fungere.
Kopier og lim inn koden nedenfor, avhengig av terminalhastigheten osv. Må du kanskje kopiere og lime inn i små deler. Eller skriv det inn! få følelsen tilbake på 1980 -tallet også.
;
Test brukerens LED og brukernøkkel; 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 informasjon for retur til cp/m ld sp, stack; ld hl, msg; hei meldingsanrop _inngang lp: ld a, 1; slå på = 1 samtale ledet samtale forsinkelse; forsink og vent på tast (er) jr nz, fullfør; ikke null betyr tast/bryter trykket xor a; a = 0 samtale ledd samtale forsinkelse; forsink eller vent på tast/bryter jr z, lp; hvis null, ingen nøkkel/bryter, gå igjen; fullfør: xor a; tasten eller bryteren ble trykket, så ferdig samtale led ld hl, bye; si bye samtale _puts; vis msg HL = ld sp, (estack); original stack ret; return to cp/m; led: push af; lagre led -verdi 0 eller 1 ld a, USRLED out (CPORT), a; optcode sendt pop af out (DPORT), a; data sendt ret;; Forsinkelsessløyfe som kontrolltast trykkes på terminal eller brukernøkkelforsinkelse: ld bc, 00e00h; ca. 1/2s 8mhz CPU, ren gjetningssløyfe2: des bc; telle sløyfe push bc; lagre regs når du ringer til BDOS push de ld c, 6; BDOS raw i/o sjekk om tasten er trykket ld e, 0ffh ring BDOS pop de; få våre verdier tilbake fra stack pop bc eller a; sjekk om tasten er trykket på terminal ret nz; ja retur (holder også nz flagg satt) ld a, USRKEY; Sjekk nå brukernøkkel ut (CPORT), a; kommandoport i a, (DPORT); lesetast og a, 1; bare interessert i bit 0 ret nz; retur hvis brukerknappen trykker på ld a, b; eller er bc = 0 eller c jr nz, loop2; ikke ferdig med å telle, gå igjen xor a; sett z -flagget til 0 ret; returner ingen tast trykket, slutten av forsinkelsen; _puts: push bc; lagre regsene våre klare for bdos -samtaler push de nxt: ld a, (hl); få char eller a; test om det er 0, slutten av msg jr z, ferdig; ja så ferdig ld e, a; sette opp anrop til BDOS for å skrive ut en char ld c, 2 push hl; lagre tekstpeker samtale BDOS; skrive den ut pop hl inc hl; neste char jr nxt; fortsett å gjøre: pop de; ferdig gjenopprette regs pop bc ret; og gå tilbake; msg db 'User LED test, any key to exit' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0
Lagre filen med ESC x. Se bruksveiledningen for ZDE16 for mer informasjon, det er litt som wordstar for de fleste redigeringer, bortsett fra at Ctrl-K-alternativene er forskjellige.
Trinn 3: Kompiler og kjør programmet
Når du har kildekoden på maskinen.
Type:
F>
F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86 av SLR Systems Rel. 1.32 MYLED/A Slutt på filpass 1 0 Feil (er) oppdaget. 406 Absolutte bytes. 16 Symboler oppdaget.
Dette vil lete etter filen myled.z80 og produsere en binær (.com) fil, det er det alternativet /a står for.
Se z80asm.doc -filen for mer informasjon.
For å kjøre programmet, skriver du inn:
F> myled
Bruker -LED -test, hvilken som helst tast for å gå ut av Avslutt F>
Trykk på enten brukerknappen eller en tast på terminalen for å avslutte.
Ferdig.
Anbefalt:
Castle Planter (med Tinkercad Code Blocks): 25 trinn (med bilder)
Castle Planter (med Tinkercad Code Blocks): Dette designet her tok meg lang tid å oppnå, og siden kodingskunnskapene mine er begrenset for å si det mildt, håper jeg det ble ok :) Ved å bruke instruksjonene som følger med, bør du kunne gjenskape alle aspekter av dette designet helt uten
Morse Code Station: 3 trinn
Morse Code Station: Dit-dit-dah-dah! Lær Morse Code med dette enkle Arduino Uno -prosjektet. Dette enkle Arduino -prosjektet er en Morse Code -stasjon. Morsekode er en kommunikasjonsmetode som koder tegn som en serie prikker og bindestreker. Denne kretsen bruker en piezo -summer til
Multi User Smart Mirror With Google Calendar: 10 trinn
Flerbruker smart speil med Google Kalender: I denne instruksen skal vi lage et smart speil integrert med Google Kalender. Jeg laget dette prosjektet fordi jeg synes smarte speil er veldig kule, de er en gave fra morgenen. Men jeg bestemte meg for å lage en selv fra null fordi alle de andre
ARDUINO MENY DESIGN With OLED-UI (USER INTERFACE): 4 trinn
ARDUINO MENY DESIGN With OLED-UI (USER INTERFACE): Hei alle! I denne opplæringen vil jeg prøve å forklare hvordan du lager ARDUINO MENY DESIGN ved å bruke i2c OLED Screen. Det er også kjent som UI (User Interface). Det har vært i bruk for mange prosjekter, men det må være kjent med deg fra 3d -skrivere :) Her også video
HC-08 Bluetooth UART Communication Module V2.4 User Guide: 9 Steps
HC-08 Bluetooth UART Communication Module V2.4 User Guide: Product Introduction Bluetooth Modem-Minimum Pass-through Module HC08 er en ny generasjons dataoverføringsmodul basert på Bluetooth Specification V4.0 BLE-protokoll. Det trådløse arbeidsfrekvensbåndet er 2,4 GHz ISM med GFSK -moduleringsmetode. Det