Tabla de contenido:
- Suministros
- Paso 1: Instale Z80asm en su Z80-mbc2
- Paso 2: Copie el código fuente en su Z80-mbc2
- Paso 3: compile y ejecute el programa
Video: Z80-mbc2 Z80 Code Flash LED de usuario: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Este es un programa de LED de usuario de ejemplo escrito en el ensamblador Z80 para la computadora z80-mbc2.
Hice este ejercicio de prueba y revisión para mí, este es mi primer programa Z80 en más de 35 años.
Disfrutar
Suministros
Computadora Z80-mbc2
Una copia de Z80ASM de SLR Systems Rel. 1.32, descargable desde muchos archivos cp / m
Un editor, usé ZDE16, ya que estaba en la imagen de arranque CP / M para el z80-mbc2
Paso 1: Instale Z80asm en su Z80-mbc2
Supongo que está familiarizado con las herramientas que tiene para su Z80-MBC2, es decir, cualquier versión de cpmtools que utilice. Estos son los pasos si usa las versiones de línea de comando:
- Obtenga los archivos z80asm.com y z80asm.doc (opcional) en un directorio en algún lugar de su PC host
- Coloque su tarjeta SD en la misma PC, supongo que a continuación se muestra como unidad E: a continuación.
- Puse el ensamblador en mi disco CP / M A, para cp / m 2.2 que sería la imagen de disco DS0N00. DSK
- El comando: cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.com 0: copiará el archivo z80asm.com a la imagen
- El comando cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.doc 0: copiará la documentación al disco (opcional)
Cuando inicie cp / m 2.2 en su z80-mbc, ahora debería tener z80asm.com y z80asm.doc (opcional) en la unidad A
Paso 2: Copie el código fuente en su Z80-mbc2
Conéctese al z80-mbc usando su programa de terminal
Le sugiero que use un disco vacío para guardar el código fuente, por ejemplo, f: para elegir este tipo de unidad:
F:
después de unos segundos, verá el indicador F:.
ahora use el programa zde16 en la unidad A para editar un archivo en blanco:
a: zde16 myled.z80
Esto creará un archivo llamado myled.z80 en el disco F:, nota: se requiere el.z80 en el nombre para que z80asm funcione.
Ahora copie y pegue el código a continuación, dependiendo de la velocidad de su terminal, etc., es posible que tenga que copiar y pegar en secciones pequeñas. ¡O escríbalo! recupera esa sensación de los 80.
;
; Pruebe el LED de usuario y la clave de usuario; BDOS equ 05h; cp / m BDOS punto de entrada USRLED equ 0; código de operación para control de LED de usuario USRKEY equ 80h; código de operación para control de interruptor de usuario DPORT equ 0; puerto de datos i / o CPORT equ 1; salida de puerto de comando; org 0100h; ld (estack), sp; conserva la información existente para volver a cp / m ld sp, stack; ld hl, msg; hola mensaje llamada _puts lp: ld a, 1; encender = 1 led de llamada retardo de llamada; retardar y esperar la (s) tecla (s) jr nz, finalizar; distinto de cero significa tecla / interruptor pulsado xo a; a = 0 llamada led retardo de llamada; retrasar o esperar la llave / interruptor jr z, lp; si es cero, no hay llave / interruptor, volver a hacerlo; fin: xor a; se presionó la tecla o el interruptor, listo, llame al led ld hl, adiós; diga adiós, llame a _puts; muestre msg HL = ld sp, (estack); pila original ret; vuelva a cp / m; led: pulsar af; guardar valor led 0 o 1 ld a, USRLED out (CPORT), a; optcode enviado pop out (DPORT), a; datos enviados ret;; Retraso de bucle que verifica la tecla presionada en el terminal o retraso de la tecla de usuario: ld bc, 00e00h; aprox 1 / 2s 8mhz CPU, ciclo de trabajo de conjetura pura2: dec bc; cuenta el bucle push bc; guarda registros al llamar a BDOS push de ld c, 6; BDOS raw i / o comprueba si se presiona la tecla ld e, 0ffh llama a BDOS pop de; recupera nuestros valores de la pila pop bc o a; comprueba si la tecla presionada en el terminal ret nz; yes return (también mantiene la bandera nz activada) ld a, USRKEY; Ahora verifique la salida de la tecla de usuario (CPORT), a; puerto de comando en a, (DPORT); lea la clave y a, 1; solo interesado en el bit 0 ret nz; regrese si la tecla de usuario presionó ld a, b; o es bc = 0 o c jr nz, loop2; no ha terminado de contar, vuelva a xor a; establezca la bandera z en 0 ret; no devuelva ninguna tecla presionada, fin del retardo; _puts: push bc; guarda nuestros registros listos para llamadas bdos push de nxt: ld a, (hl); get char o a; prueba si es 0, fin de msg jr z, hecho; sí, hecho ld e, a; configurar la llamada a BDOS para imprimir una char ld c, 2 presionar hl; guardar el puntero de texto llamar a BDOS; imprimirlo pop hl inc hl; siguiente char jr nxt; continuar hecho: pop de; terminado de restaurar regs pop bc ret; y regresar; msg db 'Prueba de LED de usuario, cualquier tecla para salir' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0
Guarde el archivo usando ESC x. Consulte la guía de uso de ZDE16 para obtener más información, es un poco como wordstar para la mayoría de las ediciones, excepto que las opciones Ctrl-K son diferentes.
Paso 3: compile y ejecute el programa
Una vez que tenga su código fuente en la máquina.
Escribe:
F>
F> a: z80asm myled / a Z80ASM Copyright (C) 1983-86 de SLR Systems Rel. 1.32 MYLED / A Fin de archivo Aprobado 1 0 Error (s) detectado. 406 bytes absolutos. 16 símbolos detectados.
Esto buscará el archivo myled.z80 y producirá un archivo binario (.com), eso es lo que significa la opción / a.
Consulte el archivo z80asm.doc para obtener más información.
Para ejecutar el programa, escriba:
F> myled
Prueba de LED de usuario, cualquier tecla para salir Salir F>
Presione el botón de usuario o una tecla en el terminal para salir.
Hecho.
Recomendado:
Sistema de seguridad electrónico con RTC y código PIN definido por el usuario: 7 pasos
Sistema de seguridad electrónico con RTC y código PIN definido por el usuario: ¡Hola, chicos! Este es un proyecto que hice usando un microcontrolador pic, es un sistema de seguridad de código PIN electrónico con reloj en tiempo real y funciones de código pin definido por el usuario, esta página contiene todos los detalles para hacer uno usted mismo. ESTA FUNCIONANDO Y CONCEPTO: Bueno
Convertidor Boost basado en Esp8266 con una increíble interfaz de usuario Blynk con regulador de retroalimentación: 6 pasos
Convertidor Boost basado en Esp8266 con una increíble interfaz de usuario Blynk con regulador de retroalimentación: En este proyecto, le mostraré una forma eficiente y común de cómo aumentar los voltajes de CC. Te mostraré lo fácil que puede ser construir un convertidor boost con la ayuda de un Nodemcu. Vamos a construirlo. También incluye un voltímetro en pantalla y una retroalimentación
Probador de batería Arduino con interfaz de usuario WEB: 5 pasos
Probador de baterías Arduino con interfaz de usuario WEB .: Hoy en día, los equipos electrónicos utilizan baterías de respaldo para guardar el estado en el que se dejó la operación cuando se apagó el equipo o cuando, por accidente, se apagó el equipo. El usuario, al encender, vuelve al punto donde se quedó
Iterador (aplicación de interfaz gráfica de usuario de Python): 5 pasos
Iterator (Python GUI Application): Hola chicos, estoy de vuelta con otro instructable increíble. Esta vez aprendí Python, y pensé que después de aprender un lenguaje de programación es mejor desarrollar algún software. Así que tengo una idea de por qué no crear un software que pueda ayudar con la tediosa p
Analizador lógico con interfaz de usuario de Android: 7 pasos
Analizador lógico con interfaz de usuario de Android: el mundo ya está inundado de tantos analizadores lógicos. En mi afición por la electrónica, necesitaba uno para solucionar problemas y depurar. Busqué en Internet pero no encuentro el que estoy buscando. Así que aquí estoy, presentando … " TODAVÍA Otro Lo