; input
;   Legge un carattere (SENZA ECO) dallo standard input (di solito la tastiera)
;   Parametri in ingresso: nessuno
;   Il carattere letto e' ritornato nel registro AL.
input proc
	mov	 ax,0C07h	; Function 0Ch = "FLUSH BUFFER AND READ STANDARD INPUT"
	int	 21h
    ret
input endp

; output
;   Invia un carattere sullo standard output (di solito il video)
;   Parametri in ingresso: AL   
output proc
	push ax
	push dx
	mov  ah, 2
	mov  dl, al
	int  21h
	pop  dx
	pop  ax
	Ret
output endp

; newline
;   Invia il carattere di newline sullo standard output
;   Nessun parametro in ingresso o in uscita.
newline proc
	push ax
    mov  al, 0Ah
    call output
    mov	 al, 0Dh
    call output
    pop  ax
    Ret
newline endp

; print
;  Stampa la stringa presente alla locazione di memoria DS:DX;
;  tale stringa deve terminare con il segno "$".
;  Parametri in ingresso: DS:DX
;  Nessun parametro in uscita.
print proc
	push ax
	mov  ah,9	; Function 09h in AH means "WRITE STRING TO STANDARD OUTPUT"	
	int  21h	; Call the DOS interrupt (DOS function call)
	pop  ax
	ret
print endp