Índice:
- Suprimentos
- Etapa 1: Instale o Z80asm em seu Z80-mbc2
- Etapa 2: Copie o código-fonte para você Z80-mbc2
- Etapa 3: compilar e executar o programa
Vídeo: LED do usuário do flash de código Z80-mbc2 Z80: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Este é um exemplo de programa de LED do usuário escrito em Z80 assembler para o computador z80-mbc2.
Fiz este exercício de teste e revisão para mim, este é meu primeiro programa Z80 em mais de 35 anos.
Aproveitar
Suprimentos
Computador Z80-mbc2
Uma cópia do Z80ASM da SLR Systems Rel. 1.32, para download de muitos arquivos cp / m
Um editor, usei ZDE16, pois já estava na imagem de boot do CP / M do z80-mbc2
Etapa 1: Instale o Z80asm em seu Z80-mbc2
Presumo alguma familiaridade com as ferramentas que você tem para o seu Z80-MBC2, ou seja, qualquer versão do cpmtools que você usa. Aqui estão as etapas se estiver usando as versões de linha de comando:
- Obtenha os arquivos z80asm.com e z80asm.doc (opcional) em um diretório em algum lugar do seu PC host
- Coloque seu cartão SD no mesmo PC, suponho abaixo que ele está aparecendo como drive E: abaixo.
- Coloquei o montador no meu CP / M disco A, para cp / m 2.2 que seria a imagem do disco DS0N00. DSK
- O comando: cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.com 0: irá copiar o arquivo z80asm.com para a imagem
- O comando cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.doc 0: irá copiar a documentação para o disco (opcional)
Ao inicializar cp / m 2.2 em seu z80-mbc, agora você deve ter z80asm.com e z80asm.doc (opcional) na unidade A
Etapa 2: Copie o código-fonte para você Z80-mbc2
Conecte-se ao z80-mbc usando seu programa de terminal
Eu sugiro que você use um disco não preenchido para salvar o código-fonte, por exemplo f: para escolher este tipo de unidade:
F:
após alguns segundos, você verá o prompt F:.
agora use o programa zde16 na unidade A para editar um arquivo em branco:
a: zde16 myled.z80
Isso criará um arquivo chamado myled.z80 no disco F:, observação: o.z80 é necessário no nome para que o z80asm funcione.
Agora copie e cole o código abaixo, dependendo da velocidade do seu terminal, etc, você pode ter que copiar e colar em pequenas seções. Ou digite! tenha aquela sensação dos anos 80 de volta também.
;
; Teste o LED do usuário e a chave do usuário; BDOS equ 05h; cp / m BDOS ponto de entrada USRLED equ 0; código de operação para controle de LED do usuário USRKEY equ 80h; código de operação para controle de troca de usuário DPORT equ 0; porta de dados i / o CPORT equ 1; saída de porta de comando; org 0100h; ld (estack), sp; manter as informações existentes para retornar a cp / m ld sp, pilha; ld hl, msg; hello mensagem chamada _puts lp: ld a, 1; ligar = 1 chamada led atraso de chamada; atrasar e esperar pela (s) tecla (s) jr nz, terminar; diferente de zero significa tecla / interruptor pressionado xor a; a = 0 atraso da chamada do led da chamada; atrasar ou aguardar a tecla / interruptor jr z, lp; se zero, nenhuma tecla / interruptor, vá novamente; terminar: xor a; a tecla ou interruptor foi pressionado, então chamada concluída led ld hl, tchau; dizer tchau chamada _puts; exibir msg HL = ld sp, (estack); pilha original ret; retornar para cp / m; led: push af; salvar valor do led 0 ou 1 ld a, USRLED out (CPORT), a; optcode enviado pop af out (DPORT), a; dados enviados ret;; Loop de atraso que verifica a tecla pressionada no terminal ou atraso da tecla do usuário: ld bc, 00e00h; CPU de aproximadamente 1 / 2s 8 mhz, suposição pura do loop 2: dec bc; conta o loop push bc; salva regs ao chamar BDOS push de ld c, 6; BDOS raw i / o verificar se a tecla foi pressionada ld e, 0ffh chamar BDOS pop de; obter nossos valores de volta da pilha pop bc ou a; verificar se a tecla foi pressionada no terminal ret nz; sim retornar (também mantém o sinalizador nz definido) ld a, USRKEY; Agora verifique a chave do usuário (CPORT), a; porta de comando em a, (DPORT); leia a chave e a, 1; apenas interessado no bit 0 ret nz; retorne se a tecla do usuário pressionou ld a, b; ou é bc = 0 ou c jr nz, loop2; não terminou a contagem, vá novamente xor a; defina o sinalizador z como 0 ret; não retorne nenhuma tecla pressionada, fim do atraso; _puts: push bc; salvar nossos regs prontos para chamadas bdos push de nxt: ld a, (hl); obter char ou a; testar se é 0, fim de msg jr z, concluído; sim, então concluído ld e, a; configurar chamada para BDOS para imprimir um char ld c, 2 push hl; salvar BDOS de chamada de ponteiro de texto; imprimi-lo pop hl inc hl; próximo char jr nxt; continuar feito: pop de; terminar restaurar regs pop bc ret; e retornar; msg db 'Teste de LED do usuário, qualquer tecla para sair' db 0ah, 0dh, 0 bye db 'Sair' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 pilha: dw 0
Salve o arquivo usando ESC x. Veja o guia de uso do ZDE16 para mais informações, é um pouco como o wordstar para a maioria das edições, exceto que as opções Ctrl-K são diferentes.
Etapa 3: compilar e executar o programa
Depois de ter seu código-fonte na máquina.
Modelo:
F>
F> a: z80asm myled / a Z80ASM Copyright (C) 1983-86 de SLR Systems Rel. 1.32 MYLED / A Fim do arquivo Aprovado 1 0 Erro (s) detectado (s). 406 Bytes absolutos. 16 símbolos detectados.
Isso irá procurar o arquivo myled.z80 e produzir um arquivo binário (.com), que é o que a opção / a significa.
Consulte o arquivo z80asm.doc para obter mais informações.
Para executar o programa, digite:
F> myled
Teste de LED do usuário, qualquer tecla para sair da Saída F>
Pressione o botão do usuário ou uma tecla no terminal para sair.
Feito.
Recomendado:
Sistema eletrônico de segurança com RTC e código PIN definido pelo usuário: 7 etapas
Sistema eletrônico de segurança com RTC e código PIN definido pelo usuário: Olá, pessoal! Este é um projeto que fiz usando microcontrolador pic é um Sistema de Segurança por Código PIN Eletrônico com relógio em tempo real e recursos de código PIN definido pelo usuário, esta página contém todos os detalhes para você mesmo fazer um. SEU TRABALHO E CONCEITO: Bem
Conversor de reforço baseado em Esp8266 com uma incrível interface de usuário Blynk com regulador de feedback: 6 etapas
Conversor de reforço baseado em Esp8266 com uma incrível interface do usuário Blynk com regulador de feedback: Neste projeto, vou mostrar uma maneira eficiente e comum de como aumentar as tensões CC. Vou mostrar como pode ser fácil construir um conversor boost com a ajuda de um Nodemcu. Vamos construir. Ele também inclui um voltímetro na tela e um feedback
Testador de bateria Arduino com interface de usuário WEB: 5 etapas
Arduino Battery Tester com WEB User Interface .: Hoje, equipamentos eletrônicos utilizam baterias de reserva para salvar o estado em que a operação foi deixada quando o equipamento foi desligado ou quando, por acidente, o equipamento foi desligado. O usuário, ao ligar, retorna ao ponto onde ficou
Logic Analyzer com interface de usuário Android: 7 etapas
Logic Analyzer com interface de usuário Android: O mundo já está inundado com muitos analisadores lógicos. Em meu hobby de eletrônica, eu precisava de um para solução de problemas e depuração. Pesquisei na Internet, mas não consigo encontrar o que procuro. Então aqui estou, apresentando … " AINDA, outro Lo
ARDUINO MENU DESIGN Com OLED-UI (INTERFACE DO USUÁRIO): 4 etapas
ARDUINO MENU DESIGN Com OLED-UI (INTERFACE DO USUÁRIO): Olá a todos! Neste tutorial, vou tentar explicar como fazer o ARDUINO MENU DESIGN usando o i2c OLED Screen. Também é conhecido como UI (User Interface). Tem sido usado por muitos projetos, mas deve ser familiar com você de impressoras 3D :) Aqui também o vídeo