' DOSINKEY$ returns a character just like INKEY$, or "" if no characters ' are waiting. The difference between DOSINKEY$ and INKEY$ is that DOSINKEY$ ' is redirectable. So what, you say? Why not just open KYBD: for input? ' Well, You can't POLL KYBD. You can only use INPUT$, which will wait ' forever until a character is there. EOF and LOF do not work, so INPUT$ ' us useless for DOS redirection of input. FUNCTION DOSINKEY$ i?=0 !MOV AX,&H600 !MOV DL,&HFF !INT &H21 !JZ NOCHAR !MOV i?,AL NOCHAR: IF i?=0 THEN DOSINKEY$="" ELSE DOSINKEY$=CHR$(i?) END FUNCTION