Sommario:
- Forniture
- Passaggio 1: installa Z80asm sul tuo Z80-mbc2
- Passaggio 2: copia il codice sorgente su di te Z80-mbc2
- Passaggio 3: compila ed esegui il programma
Video: Z80-mbc2 LED utente flash codice Z80: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Questo è un esempio di programma LED utente scritto nell'assemblatore Z80 per il computer z80-mbc2.
Ho fatto questo esercizio di prova e revisione per me, questo è il mio primo programma Z80 da oltre 35 anni.
Godere
Forniture
Computer Z80-mbc2
Una copia di Z80ASM da SLR Systems Rel. 1.32, scaricabile da molti archivi cp/m
Un editor, ho usato ZDE16, poiché era già sull'immagine di avvio CP/M per z80-mbc2
Passaggio 1: installa Z80asm sul tuo Z80-mbc2
Presumo che abbia una certa familiarità con gli strumenti che hai per il tuo Z80-MBC2, ovvero qualunque versione di cpmtools utilizzi. Ecco i passaggi se si utilizzano le versioni della riga di comando:
- Ottieni i file z80asm.com e z80asm.doc (opzionale) in una directory da qualche parte sul tuo PC host
- Metti la tua scheda SD nello stesso PC, presumo che sotto venga mostrata come unità E: sotto.
- Ho messo l'assemblatore sul mio disco CP/M A, per cp/m 2.2 sarebbe l'immagine del disco DS0N00. DSK
- Il comando: cpmcp -f z80mbc2-d0 e:DS0N00. DSK z80asm.com 0: copierà il file z80asm.com nell'immagine
- Il comando cpmcp -f z80mbc2-d0 e:DS0N00. DSK z80asm.doc 0: copierà la documentazione sul disco (opzionale)
Quando avvii cp/m 2.2 sul tuo z80-mbc, ora dovresti avere z80asm.com e z80asm.doc (opzionale) sull'unità A
Passaggio 2: copia il codice sorgente su di te Z80-mbc2
Connettiti a z80-mbc usando il tuo programma terminale
Ti suggerisco di utilizzare un disco non popolato su cui salvare il codice sorgente, ad esempio f: per scegliere questo tipo di unità:
F:
dopo pochi secondi vedrai il prompt F:.
ora usa il programma zde16 sull'unità A per modificare un file vuoto:
a:zde16 myled.z80
Questo creerà un file chiamato myled.z80 sul disco F:, nota:.z80 è richiesto nel nome per far funzionare z80asm.
Ora copia e incolla il codice qui sotto, a seconda della velocità del tuo terminale, ecc. Potrebbe essere necessario copiare e incollare in piccole sezioni. Oppure digitalo! recupera anche quella sensazione degli anni '80.
;
; Testare il LED utente e la chiave utente; BDOS equ 05h;cp/m BDOS entry point USRLED equ 0;opcode per controllo User LED USRKEY equ 80h;opcode per controllo User Switch DPORT equ 0;DATA port i/o CPORT equ 1;Command port output; org 0100h; ld (estack), sp;mantiene le informazioni esistenti per tornare a cp/m ld sp, stack; ld hl, msg;hello message call _puts lp: ld a, 1;turn on = 1 call led call delay;ritardo e attesa tasto/i jr nz, finish;non zero significa tasto/interruttore premuto xor a;a= 0 chiamata led ritardo chiamata;ritardo o attesa chiave/commutatore jr z, lp;se zero, nessun tasto/commutatore, riparte; finish: xor è stato premuto un;tasto o interruttore, quindi fatto call led ld hl, bye;say bye call _puts;display msg HL= ld sp, (estack);stack originale ret;return to cp/m; led: push af;salva valore led 0 o 1 ld a, USRLED out (CPORT), a;optcode inviato pop af out (DPORT), a;data inviati ret;;Ritardo loop che controlla il tasto premuto sul terminale o ritardo del tasto utente: ld bc, 00e00h;approx 1/2s 8mhz CPU, pure guess work loop2: dec bc;conta il loop push bc;salva i reg quando si chiama BDOS push de ld c, 6;BDOS raw i/o controlla se il tasto è stato premuto ld e, 0ffh chiama BDOS pop de;recupera i nostri valori dallo stack pop bc o a;controlla se il tasto è premuto sul terminale ret nz;yes return (mantiene anche impostato il flag nz) ld a, USRKEY;Ora controlla user key out (CPORT), a;command port in a, (DPORT);read key and a, 1;interessa solo al bit 0 ret nz;return se userkey premuto ld a, b;or is bc=0 o c jr nz, loop2;non finito di contare, ricomincia xor a;porta il flag z a 0 ret;return nessun tasto premuto, fine del ritardo; _puts: push bc;salva i nostri reg pronti per le chiamate bdos push de nxt: ld a, (hl);get char o a;test se è 0, end of msg jr z, done;yes così done ld e, a; imposta la chiamata a BDOS per stampare un char ld c, 2 push hl;salva il puntatore di testo chiama BDOS;stampalo pop hl inc hl;next char jr nxt;continua a fare: pop de;finito restore regs pop bc ret;and return; msg db 'Test LED utente, qualsiasi tasto per uscire' db 0ah, 0dh, 0 bye db 'Esci' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0
Salva il file usando ESC x. Vedi la guida all'uso di ZDE16 per maggiori informazioni, è un po' come wordstar per la maggior parte delle modifiche, tranne che le opzioni Ctrl-K sono diverse.
Passaggio 3: compila ed esegui il programma
Una volta che hai il tuo codice sorgente sulla macchina.
Tipo:
F>
F>a:z80asm myled/a Z80ASM Copyright (C) 1983-86 di SLR Systems Rel. 1.32 MYLED/A Fine del file Superato 1 0 Errori rilevati. 406 byte assoluti. 16 simboli rilevati.
Questo cercherà il file myled.z80 e produrrà un file binario (.com), ecco cosa rappresenta l'opzione /a.
Vedere il file z80asm.doc per maggiori informazioni.
Per eseguire il programma, digitare:
F>myled
Test LED utente, qualsiasi tasto per uscire Esci F>
Premere il pulsante utente o un tasto sul terminale per uscire.
Fatto.
Consigliato:
Sistema di sicurezza elettronico con RTC e codice PIN definito dall'utente: 7 passaggi
Sistema di sicurezza elettronico con RTC e codice PIN definito dall'utente: Ciao ragazzi! Questo è un progetto che ho realizzato utilizzando il microcontrollore pic, è un sistema di sicurezza con codice PIN elettronico con orologio in tempo reale e funzioni del codice pin definite dall'utente, questa pagina contiene tutti i dettagli per crearne uno da soli. FUNZIONA E CONCETTO: Bene
Convertitore boost basato su Esp8266 con un'incredibile interfaccia utente Blynk con regolatore di feedback: 6 passaggi
Convertitore boost basato su Esp8266 con un'incredibile interfaccia utente Blynk con regolatore di feedback: in questo progetto ti mostrerò un modo efficiente e comune come aumentare le tensioni CC. Ti mostrerò quanto può essere facile costruire un convertitore boost con l'aiuto di un Nodemcu. Costruiamolo. Include anche un voltmetro su schermo e un feedback
Tester batteria Arduino con interfaccia utente WEB.: 5 passaggi
Arduino Battery Tester Con Interfaccia Utente WEB.: Oggi le apparecchiature elettroniche utilizzano batterie di backup per salvare lo stato in cui si era interrotta l'operazione quando l'apparecchiatura è stata spenta o quando, accidentalmente, l'apparecchiatura è stata spenta. L'utente, all'accensione, torna al punto in cui è rimasto
Analizzatore logico con interfaccia utente Android: 7 passaggi
Analizzatore logico con interfaccia utente Android: il mondo è già invaso da così tanti analizzatori logici. Nel mio hobby di elettronica, ne avevo bisogno per la risoluzione dei problemi e il debug. Ho cercato su internet ma non riesco a trovare quello che cerco. Quindi eccomi qui, presentando…"YET Another Lo
Inglese/Portoghese: S4A Como Instalar E Usar / S4A Come installare e utente: 7 passaggi
Inglese/Portoghese: S4A Como Instalar E Usar / S4A Come installare e utente: O S4A (ou Scratch per Arduino) é um sistema que baseado no Scratch que permite interagir direttamente con um Arduino.É uma forma muito didática de ensinar programação e verificar em tempo real a interaç&atild