Note: This API call is for DOS personality only. Use Family API for portability.

2018/09/07 07:04 · prokushev

Int 21H, AH=06H


1 and higher



Family API


AH = 06h
DL = output character (except FFh)
DL = FFh - input character


On output:

AL = character output (despite official docs which state nothing is returned) (at least DOS 2.1-7.0)

On input:

ZF set if no character available
          AL = 00h
ZF clear if character available
          AL = character read


does not check ^C/^Break

writes to standard output, which is always the screen under DOS 1.x, but may be redirected under DOS 2+

if the returned character is 00h, the user pressed a key with an extended keycode, which will be returned by the next call of this function

this function reads from standard input, which is always the keyboard under DOS 1.x, but may be redirected under DOS 2+

although the return of AL=00h when no characters are available is not documented, some programs rely on this behavior

See also



Process manager INT 20H, INT 21H: 00H, 25H, 26H, 31H, 34H, 35H, 4CH, INT 22H, INT 27H, INT 28H
File manager INT 25H, INT 26H, INT 21H: 0DH, 0EH, 0FH, 10H, 11H, 12H, 13H, 14H, 15H, 16H, 17H, 19H, 1AH, 1BH, 1CH, 21H, 22H, 23H, 24H, 27H, 28H, 29H, 2EH, 2FH, 32H, 3305H, 36H, 39H, 3AH, 3BH
Character Device I/O INT 29H, INT 21H: 01H, 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H, 0AH, 0BH, 0AH, 0CH
Signals INT 23H, INT 24H, INT 21H: 3300H, 3301H, 3302H
Memory manager
Date and Time INT 21H: 2AH, 2BH, 2CH, 2DH
Misc INT 21H: 30H, 3306H, 3700H, 3701H, 3702H, 3703H
NLS INT 21H: 3303H, 3304H, 3800H, 3801H
2018/09/04 19:23 · prokushev

en/docs/dos/api/int21/06.txt · Last modified: 2020/12/07 07:24 by prokushev