domingo, 6 de diciembre de 2020

Dibujo cuadrado

rutina para dibujar unos sencillos cuadrados, incrementando x e y en 1 a cada paso

 ;;

;; ejemplo de dibujado simple de cuadrados


.module main.s


.include "cpctelera.h.s"

.area _DATA

.area _CODE

;;declaracion de globales

.globl cpct_disableFirmware_asm

.globl cpct_getScreenPtr_asm

.globl cpct_drawSolidBox_asm

.globl cpct_waitVSYNC_asm

;;declaracion de etiquetas,constantes

x: .db #20

y: .db #12

;;principal

_main::

   ;; Disable firmware to prevent it from interfering with string drawing

   call cpct_disableFirmware_asm

;;dibujado de cuadrados en pantalla, incrementando x e y a cada paso

loop:

ld de,#0xc000 ;;principio memoria video

ld hl,#x ;;carga en hl el valor de x

ld b,(hl) ;;pasa a b

inc (hl) ;;el valor de hl, HL=HL+1

inc HL ;;hl=hl+1

ld c,(hl) ;;pasa a c

inc (hl) ;;valor de hl +1

call cpct_getScreenPtr_asm ;;funcio9n para localizar x e y en pantalla

ex de,HL ;;intercambia de y hl


ld a,#0xff ;;color cuadrado

ld bc,#0x0804 ;;tamaño cuadrado

call cpct_drawSolidBox_asm ;;funcion dibujado cuadrado

    call cpct_waitVSYNC_asm ;;funcion espera a retrazado

    ;; Loop forever

jr    loop ;;salta a bucle loop

No hay comentarios:

Publicar un comentario