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