	.model	tiny ; Модель памяти, используемая для COM
	.code        ; Начало сегмента кода
	org	100h ; Начальное значение счетчика - 100h

begin:	
        .model	tiny
	.code
	org	100h

begin:
       mov AX,12h
       int 10h

       MOV AH,0CH
       MOV AL,3
;===================================
       mov  CX, 100
       mov  DX, 100
label_1f:
        inc  cx
        int  10h
        cmp  cx, 200
jle  label_1f
;--------------------
        mov  CX, 100
        mov  DX, 100

label_2f:
        inc  dx
        int  10h
        cmp  dx, 200
jle  label_2f
;--------------------
        mov  CX, 100
        mov  DX, 202

label_3f:
        inc  cx
        int  10h
        cmp  cx, 200
jle  label_3f
;--------------------
        mov  CX, 202
        mov  DX, 100
label_4f:
        inc dx
        int 10h
        cmp dx, 200
jle label_4f

key_loop:
    mov ah,7
    int 21h

    cmp  al,27
    je   quit
    test al,al
    jnz key_loop
    int 21h

    cmp al,50h
    je key_down

    cmp al,48h
    je key_up

    cmp al,4Bh
    je key_left

    cmp al,4Dh
    je key_right

    cmp al,47h
    je key_home

    cmp al,49h
    je key_pgap

    cmp al,4Fh
    je key_end

    cmp al,51h
    jmp key_pgdn
    
quit:
    ret

draw:
        mov  CX, 100
        mov  DX, 100
label_1:
        inc  cx
        int  10h
        cmp  cx, 200
jle  label_1
;--------------------
        mov  CX, 100
        mov  DX, 100

label_2:
        inc  dx
        int  10h
        cmp  dx, 200
jle  label_2
;--------------------
        mov  CX, 100
        mov  DX, 202

label_3:
        inc  cx
        int  10h
        cmp  cx, 200
jle  label_3
;--------------------
        mov  CX, 202
        mov  DX, 100
label_4:
        inc dx
        int 10h
        cmp dx, 200
jle label_4

jmp key_loop
;=================================
key_down:
    ;MOV AH,0CH
    ;MOV AL,0
    ;int 10h
    inc dx
    jmp draw
;=================================
key_up:
    ;MOV AH,0CH
    ;MOV AL,0
    ;int 10h
    dec dx
    jmp draw
;=================================
key_left:
    ;MOV AH,0CH
    ;MOV AL,0
    ;int 10h
    dec cx
    jmp draw
;=================================
key_right:
    ;MOV AH,0CH
    ;MOV AL,0
    ;int 10h
    inc cx
    jmp draw
;=================================
key_home:
    ;MOV AH,0CH
    ;MOV AL,0
    ;int 10h
    dec dx
    dec cx
    jmp draw
;=================================
key_pgap:
     ;MOV AH,0CH
     ;MOV AL,0
     ;int 10h
     dec dx
     inc cx
     jmp draw
;=================================
key_end:
     ;MOV AH,0CH
     ;MOV AL,0
     ;int 10h
     inc dx
     dec cx
     jmp draw
;=================================
key_pgdn:
     ;MOV AH,0CH
     ;MOV AL,0
     ;int 10h
     inc dx
     inc cx
     jmp draw
;=================================
end begin
 RET ; завершение COM-программы
end	begin
