Una descrizione dettagliata di cosa succede realmente all'interno di un comune PC al momento della pressione di un tasto richiede diverse dozzine di pagine, anche restando ad un livello puramente software/firmware e limitandoci alla più ordinaria delle connessioni fisiche. Tra controller della tastiera, BIOS e relativa area dati, interrupt, RAM, CPU, sistema operativo, librerie e software applicativo vario i codici coinvolti (inizialmente scancode e release code, poi il codice ASCII o altra codifica adottata...) compiono un vero e proprio viaggio prima di essere messi a disposizione del programmatore e/o dell'utente, tipicamente sotto forma di pixel a video in quest'ultimo caso.
Pur nella impossibilità di elencare qui i vari passaggi, si tenga presente che il file speciale denominato stdin è ovviamente parte di codesta complessa catena (che è descritta in numerosi testi specifici e che qualsiasi programmatore dovrebbe conoscere, almeno per sommi capi), ma ne è una parte terminale, a monte della quale vi sono numerosi passaggi.
Sui sistemi DOS (ancor oggi, ad esempio su PC industriali e sistemi PC-104 con SO DOS compatibili) era prassi assolutamente comune intercettare lo stato dei tasti speciali, dei LED e degli switch a livello di BIOS data area e intervenire direttamente sulla codifica "al volo" dei tasti a livello di interrupt, con un compatto TSR, ad esempio per filtrare le lettere accentate sostituendole con digrafi (es. à->a') come richiesto dai mailer FIDOnet e da quasi ogni programma di comunicazione basato su ASCII-7, e più in generale per avere il massimo controllo sull'input nei programmi CLI e SAA/CUA.
Le implementazioni di libreria della funzione non standard getch(), che proprio in quegli anni si è affermata come standard de facto nel mondo dei PC DOS grazie alle prime implementazioni proprietarie dovute a Borland, lavorano normalmente ad un livello più basso e meno "portabile" rispetto alla generica ma limitatagetchar().