CODE SEGMENT
ASSUME DS:CODE,CS:CODE,ES:CODE,SS:CODE
.186
ORG 100h
START:
mov ah,9 ;テスト表示
mov dx,offset _COLOR_UNDER
int 21h
mov ax,0A05h
call _LOCATE
mov ah,9
mov dx,offset _TEST_DATA
int 21h
EXIT:
mov ax,4c00h
int 21h ;終了
;input ah = x
;input al = y
_LOCATE:
push ax ;レジスタ保管
push si;
push dx;
push ax
mov si, offset _LOCATE_DATA
mov ah, 0 ;y座標の計算
mov dl,10h
div dl
add [cs:si+2], al
add [cs:si+3], ah
pop ax ;x座標の計算
mov al,ah
mov ah, 0
div dl
add [cs:si+5], al
add [cs:si+6], ah
mov ah,9 ;表示
mov dx, si
int 21h
pop dx
pop si
pop ax
ret
_LOCATE_DATA db 1Bh, '[', 30h, 30h, ';', 30h, 30h, 'H$'
_COLOR_UNDER db 1Bh, "[4;36mabc", 1Bh, "[0m$";
_TEST_DATA db "123$"
ENDS
END START
; 一部のコンパイラでは、
;CODE ENDS
; END START
;と記述しなければいけないようです
|