Tabla de contenido:

Z80-mbc2 Z80 Code Flash LED de usuario: 3 pasos
Z80-mbc2 Z80 Code Flash LED de usuario: 3 pasos

Video: Z80-mbc2 Z80 Code Flash LED de usuario: 3 pasos

Video: Z80-mbc2 Z80 Code Flash LED de usuario: 3 pasos
Video: UCSD Pascal и карта P-Code для TI-99/4A: поместите мощность P-системы в свой PEB 2024, Noviembre
Anonim
LED de usuario de flash de código Z80-mbc2 Z80
LED de usuario de flash de código Z80-mbc2 Z80

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

Instale Z80asm en su Z80-mbc2
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:

  1. Obtenga los archivos z80asm.com y z80asm.doc (opcional) en un directorio en algún lugar de su PC host
  2. Coloque su tarjeta SD en la misma PC, supongo que a continuación se muestra como unidad E: a continuación.
  3. Puse el ensamblador en mi disco CP / M A, para cp / m 2.2 que sería la imagen de disco DS0N00. DSK
  4. El comando: cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.com 0: copiará el archivo z80asm.com a la imagen
  5. 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: