Получение ввода с клавиатуры без эха в DOS

Я делаю игру «Подключи четверых».

Игроки должны ввести число от 1 до 4, чтобы диск попал в одну из колонок. В настоящее время я работаю над первым столбцом. Проблема в том, что вы можете ввести любой символ, и он будет работать (он должен работать только когда вы нажимаете '1'), и я не могу понять, как это исправить.

Кроме того, номер появляется в левой части экрана.Как сделать так, чтобы при вводе номера он не отображался на экране?

PlayerOneTurn:
    cmp [Player1Turn], 255
    je Player1Pressed1

Player1Pressed1:
    mov ah, 1
    int 21h
    cmp al, 31h
    je Player1Check1

Player1Check1:
    cmp [FirstColumnArray], 0
    inc [FirstColumnArray]
    je DrawPlayer1Disc
    cmp [FirstColumnArray + 1], 0
    inc [FirstColumnArray]
    je DrawPlayer1Disc
    cmp [FirstColumnArray + 2], 0
    inc [FirstColumnArray]
    je DrawPlayer1Disc
    cmp [FirstColumnArray + 3], 0
    inc [FirstColumnArray]
    je DrawPlayer1Loop

DrawPlayer1Loop:
    mov bh,0h
    mov cx,[Player1Draw1x]
    mov dx,[Player1Draw1y]
    mov al,[player1disccolor]
    mov ah,0ch
    int 10h
    inc [Player1Draw1x]
    cmp cx, 38h
    jl DrawPlayer1Loop

DrawPlayer1Disc: 
    mov bh, 0h
    inc [Player1Draw1y]
    mov [Player1Draw1x], 25h
    cmp dx, 09Bh
    jl DrawPlayer1Loop

При запуске мой проект выглядит так:

Ответы на вопрос(1)

Ваш ответ на вопрос