📄 keyboard.asm
字号:
drawpoly proc near
setcursor 0,20d,20d
mov cx,200d ;set begin cursor position
mov dx,200d
mov count,2 ;saved point counter
mov bx,count
mov pointx[bx],cx
mov pointy[bx],dx ;save the begin point
mov ah,0ch
mov al,9
int 10h ;write the begin point
loopdraw:
mov ah,0bh ;test keyboard input
int 21h
inc al
jnz loopdraw ;test stack of key press
mov ah,07h
int 21h ;accept input
cmp al,1bh
je exitd ;Esc to exit
cmp al,48h ;up
je up
cmp al,50h ;down
je down
cmp al,4bh ;left
je left
cmp al,4dh
je right ;right
cmp al,0dh
je savepoint ;Enter to save point
jmp loopdraw
up:
dec dx ;row sub 1
jmp drawit
down:
inc dx ;row add 1
jmp drawit
left:
dec cx ;column sub 1
jmp drawit
right:
inc cx ;column add 1
jmp drawit
savepoint:
add count,2 ;if Enter then save the point
mov bx,count
mov pointx[bx],cx
mov pointy[bx],dx
jmp loopdraw
drawit:
mov ah,0ch
mov al,9 ;write the now point
int 10h
jmp loopdraw ;continue to draw
exitd:
mov x1,cx ;laster point
mov y1,dx
mov ax,200d ;begin beginning point
mov x2,ax
mov y2,200d
call drawline ;draw line between(x1,y1)(x2,y2)
ret
drawpoly endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -