Solo per fissare le idee:
La funzione 0AH dell'INT 21H ("Ingresso dati bufferizzato") consente l'acquisizione di una stringa di caratteri da tastiera, la cui lunghezza massima è memorizzata nel primo byte di un BUFFER appositamente riservato; tali caratteri (compreso il <CR>=0DH=<INVIO>, con cui l'utente conferma la fine della stringa digitata sulla tastiera) sono collocati nel BUFFER a partire dal terzo byte , mentre è il DOS medesimo a provvedere a scrivere nel secondo byte il numero di caratteri effettivamente introdotti; i caratteri immessi nel buffer sono proposti contemporaneamente a video.
La struttura del Buffer deve dunque essere questa:
codice:
BUFFER LABEL BYTE ;La Direttiva LABEL associa all'etichetta BUFFER
;l'indirizzo corrente nell'area destinata alla
;acquisizione di stringhe da tastiera assicura-
;ta dalla funzione 0AH dell'INT 21H; tale indi-
;rizzo coincide con quello di MAX_LEN
MAX_LEN DB Quanti-1 ;BUFFER+00H - Numero massimo di caratteri pre-
;visto per la stringa in ingresso da tastiera:
;la procedura di acquisizione consente perci• di
;acquisire [Quanti-1] (cioŠ [Quanti] caratteri
;effettivi pi— il <CR> con cui l'utente conferma
;la fine della stringa digitata sulla tastiera,
;aggiunto "d'ufficio" alla stringa dalla funzio-
;stessa
STR_LEN DB 00H ;BUFFER+01H - Numero di caratteri effettivamen-
;te introdotti da tastiera (il carattere <CR>
;0DH, pur presente nel BUFFER, non viene inclu-
;so nel conteggio dei caratteri che il DOS re-
;stituisce in questo byte)
STRINGA DB STR_LEN-2 DUP (' ');BUFFER+02H - In questa zona viene collocata la
;stringa digitata dall'utente sulla tastiera
;(compreso, come detto, il <CR> (0DH) con cui la
;stringa viene introdotta)
DB 0DH ;Se la stringa digitata dall'utente ha la lun-
;ghezza massima prevista [Quanti] l'<ENTER> con
;cui l'utente la conferma produce la scrittura
;di un <CR> (0DH) in questa posizione; nel caso
;di stringa di dimensione inferiore esso viene
;comunque preparato nella posizione adatta a
;chiudere correttamente la stringa
DB 0AH ;Al contenuto del RECORD viene aggiunto anche il
;carattere <LF>; ci• consente di analizzare e
;riutilizzare ("vedere") la stringa creata da
;questa funzione