.model tiny
.code
org 100h
INF_CAR macro car,scan,z
mov ah,1
int 16h
ifnb <car>
mov car,al
endif
ifnb <scan>
mov scan,ah
endif
ifnb <z>
setnz z
endif
endm
; Bifurca a una etiqueta si hay un caracter
;
IF_CAR macro etq
INF_CAR
jnz etq
endm
esperar macro
mov ah,0
int 16h
endm
ratini macro
mov ax,0
int 33h
endm
ratshow macro
mov ax,1
int 33h
endm
rathide macro
mov ax,2
int 33h
endm
ratizqpush macro
mov bx,0
mov ax,5
int 33h
mov ratonx,cx
;getratxy
mov ratony,dx
endm
getratxy macro
mov ax,3
int 33h
mov ratonx,cx
shr ratonx,1; dividimos rx entre 2
mov ratony,dx
endm
SET_CUR macro fila,columna
mov dh,fila
mov dl,columna
xor bh,bh
mov ah,2
int 10h
endm
CLS macro limpiar pantalla(debe aver errores)
mov ax,08b00
mov es,ax
mov cx,80*40
xor si.si
loadsw es:si,0007h
rep
endm
inicio:
ratini
ratshow
next: ratizqpush
cmp bx,0
jz next
CLS ;limpiar pantalla
getratxy;coordenadas del mouse
mov ax,ratonx;;puede aver errores en coordenadas tipo txeto o tipo grafico
mov bx,ratony
SET_CUR al,bl ;;ubicacion del cursor(texto)
mov dx,offset cadena
mov ah,09h
int 21h
jmp next
fin: rathide
int 20h
ratonx dw 0
ratony dw 0
cadena db 'HOLA$'
end inicio