Inhoudsopgave:
- Benodigdheden
- Stap 1: Installeer Z80asm op uw Z80-mbc2
- Stap 2: Kopieer de broncode naar u Z80-mbc2
- Stap 3: Compileer en voer het programma uit
Video: Z80-mbc2 Z80 Code Flash gebruikers-LED - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dit is een voorbeeld van een gebruikers-LED-programma geschreven in Z80 assembler voor de z80-mbc2-computer.
Ik deed dit een test- en revisieoefening voor mij, dit is mijn eerste Z80-programma in meer dan 35 jaar.
Genieten van
Benodigdheden
Z80-mbc2-computer
Een kopie van Z80ASM van SLR Systems Rel. 1.32, te downloaden uit vele cp/m-archieven
Een editor, ik gebruikte ZDE16, omdat het al op de CP/M-opstartimage stond voor de z80-mbc2
Stap 1: Installeer Z80asm op uw Z80-mbc2
Ik neem aan dat je bekend bent met de tools die je hebt voor je Z80-MBC2, namelijk welke versie van cpmtools je ook gebruikt. Dit zijn de stappen bij het gebruik van de opdrachtregelversies:
- Haal de bestanden z80asm.com en z80asm.doc (optioneel) in een map ergens op uw host-pc
- Plaats uw SD-kaart in dezelfde pc, ik neem aan dat deze wordt weergegeven als station E: hieronder.
- Ik heb de assembler op mijn CP/M schijf A gezet, voor cp/m 2.2 zou dat schijfkopie DS0N00. DSK zijn
- De opdracht: cpmcp -f z80mbc2-d0 e:DS0N00. DSK z80asm.com 0: kopieert het bestand z80asm.com naar de afbeelding
- Het commando cpmcp -f z80mbc2-d0 e:DS0N00. DSK z80asm.doc 0: kopieert de documentatie naar de schijf (optioneel)
Wanneer u cp/m 2.2 opstart op uw z80-mbc, zou u nu z80asm.com en z80asm.doc (optioneel) op station A moeten hebben
Stap 2: Kopieer de broncode naar u Z80-mbc2
Maak verbinding met de z80-mbc met uw terminalprogramma
Ik raad je aan een niet-bevolkte schijf te gebruiken om de broncode op te slaan, bijvoorbeeld f: om dit schijftype te kiezen:
F:
na een paar seconden ziet u de F: prompt.
gebruik nu het programma zde16 op station A om een leeg bestand te bewerken:
a:zde16 myled.z80
Dit zal een bestand maken met de naam myled.z80 op de schijf F:, let op: de.z80 is vereist in de naam om z80asm te laten werken.
Kopieer en plak nu de onderstaande code, afhankelijk van uw terminalsnelheid enz. moet u mogelijk in kleine secties kopiëren en plakken. Of typ het in! krijg ook dat jaren 80-gevoel terug.
;
;Test de gebruikers-LED en gebruikerssleutel; BDOS equ 05h;cp/m BDOS ingangspunt USRLED equ 0;opcode voor gebruikers-LED-bediening USRKEY equ 80h;opcode voor gebruikersschakelaar-bediening DPORT equ 0;DATA-poort i/o CPORT equ 1;Command-poortuitgang; org 0100h; ld (estack), sp;bewaar bestaande info om terug te keren naar cp/m ld sp, stack; ld hl, msg;hallo berichtoproep _puts lp: ld a, 1;aanzetten = 1 oproep led oproepvertraging;vertraging en wachten op toets(en) jr nz, klaar;niet nul betekent toets/schakelaar ingedrukt xor a;a= 0 oproep led oproepvertraging;vertraging of wacht op toets/schakelaar jr z, lp;indien nul, geen toets/schakelaar, ga opnieuw; finish: xof een;toets of schakelaar is ingedrukt, dus klaar bel led ld hl, doei;say bye call _puts;display bericht HL= ld sp, (estack);originele stapel ret;terug naar cp/m; led: push af;save led-waarde 0 of 1 ld a, USRLED out (CPORT), a;optcode verzonden pop af out (DPORT), a;data verzonden ret;;Vertraging lus die controletoets indrukt op terminal of gebruikerstoets vertraging: ld bc, 00e00h;ongeveer 1/2s 8mhz CPU, puur giswerk loop2: dec bc;tel de lus push bc;bewaar regs bij het aanroepen van BDOS push de ld c, 6;BDOS raw i/o controleer of toets ingedrukt is ld e, 0ffh bel BDOS pop de;haal onze waarden terug van stack pop bc of a;controleer of toets ingedrukt is op terminal ret nz;yes return (houdt ook nz vlag in) ld a, USRKEY;Controleer nu gebruikerssleutel uit (CPORT), a;opdrachtpoort in a, (DPORT);lees sleutel en a, 1;alleen geïnteresseerd in bit 0 ret nz;retour als gebruikerstoets ld a, b indrukt;of is bc=0 of c jr nz, loop2;niet klaar met tellen, ga opnieuw xof a;zet de z-vlag op 0 ret;retour geen toets ingedrukt, einde van vertraging; _puts: push bc;save onze regs klaar voor bdos-oproepen push de nxt: ld a, (hl);get char of a;test if it's 0, end of msg jr z, done;yes so done ld e, a; aanroep naar BDOS instellen om een char ld c af te drukken, 2 push hl;save text pointer call BDOS;print it pop hl inc hl;next char jr nxt;ga verder gedaan: pop de;complete restore regs pop bc ret;and return; 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
Sla het bestand op met ESC x. Zie de ZDE16-gebruiksgids voor meer informatie, het lijkt een beetje op wordstar voor de meeste bewerkingen, behalve dat de Ctrl-K-opties anders zijn.
Stap 3: Compileer en voer het programma uit
Zodra u uw broncode op de machine hebt.
Type:
F>
F>a:z80asm myled/a Z80ASM Copyright (C) 1983-86 door SLR Systems Rel. 1.32 MYLED/A Einde bestand Pass 1 0 Fout(en) gedetecteerd. 406 absolute bytes. 16 symbolen gedetecteerd.
Dit zal naar het bestand myled.z80 zoeken en een binair (.com) bestand produceren, dat is waar de optie /a voor staat.
Zie het bestand z80asm.doc voor meer informatie.
Om het programma uit te voeren, typt u:
F>myled
Gebruikers-LED-test, elke toets om af te sluiten Afsluiten F>
Druk op de gebruikersknop of op een toets op de terminal om af te sluiten.
Gedaan.
Aanbevolen:
Verbeterde 'Simon Says'-code: 3 stappen
Verbeterde 'Simon Says'-code: een bijgewerkt 'Simple Simon'-project. Met name gemakkelijker om te werken met software-implementatie
DIY slimme deurbel: code, installatie en HA-integratie: 7 stappen (met afbeeldingen)
DIY Smart Doorbell: Code, Setup en HA Integration: In dit project laat ik je zien hoe je je normale deurbel kunt transformeren in een slimme deurbel zonder de huidige functionaliteiten te veranderen of draden door te knippen. Ik gebruik een ESP8266-bord genaamd Wemos D1 mini. Nieuw bij ESP8266? Bekijk mijn introductie
Beheer 100 apparaten in Ubidots-apps, organisaties, rollen en gebruikers: 11 stappen
Beheer 100 apparaten in Ubidots-apps, organisaties, rollen en gebruikers: bij deze gelegenheid heb ik besloten om de bruikbaarheid van het IoT-platform Ubidots voor gebruikersbeheer te testen in het geval dat het veel apparaten heeft voor verschillende organisaties of bedrijven onder hetzelfde Ubidots-platform. Burgemeester informatie: u
Wifi Ducky (*build voor Mac-gebruikers): 6 stappen
Wifi Ducky (*build voor Mac-gebruikers): bestuur een computer door dit apparaat op de usb-poort aan te sluiten. Onderdelenlijst: Arduino Pro Micro D1 Mini NodeMCU Arduino IDE *Optioneel Micro USB Male naar USB Female OTG Adapter Converter ✔ WireDeze tutorial is gericht op Mac-gebruikers. Er zijn genoeg
Hoe weet u of Yahoo! Gebruikers zijn aangemeld als onzichtbare modus: 6 stappen
Hoe weet u of Yahoo! Gebruikers zijn aangemeld als onzichtbare modus: dit laat u zien hoe u kunt weten of Yahoo-gebruikers zijn aangemeld als onzichtbare modus en het werkt echt voor Yahoo Messenger 8, maar ik heb het niet geprobeerd tot 9 (bèta)…. hoe het werkt: doodle zal starten als je vriend in de onzichtbare modus is zoals deze:::"JOHN" verschijnt uit