;
; Input con Eco di N caratteri.
;
.MODEL	small
.stack	100h

.data 
    msg1  db "Inserire il numero dei caratteri che vuoi inserire [0-9]: $"
    msg2  db 13,10,"Inserire $"
    msg3  db " caratteri: $"
    N	  db 1
.code

include ..\include\stdio.inc
include ..\include\utils.inc

; Legge un carattere da tastiera senza fare l'eco.
; Il carattere letto e' restituito in AL.

get1DigitNumber proc
inKey:
	call input
	cmp al, '0'
	jb	inKey
	cmp al, '9'
	ja	inKey
	ret
get1DigitNumber endp

start:
	call	init

    ; Chiede il numero dei caratteri da inserire
	mov		dx,offset msg1
	call	print
	call	get1DigitNumber
	call	output
	push	ax
	sub		al, '0'
	mov		N, al
	
	; Stampa °Immettere N caratteri :"
	mov		dx,offset msg2
	call	print
	pop		ax
	call 	output
	mov		dx,offset msg3
	call	print

	mov		cl, N
ciclo:
	call	input
	call	output
	dec		cl
	jnz		ciclo
	
	; Fine del programma
	call	pressKeyAndExit
end start
