diff options
author | Robert de Bath <rdebath@poboxes.com> | 2002-01-12 20:42:42 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2013-10-23 23:48:46 +0200 |
commit | d91fa39567f5659e3931cf61517d62fddcd87570 (patch) | |
tree | 20583acd4f345a4f5c9a7772870ef972cb8a3b14 /libc/conio/conio.c | |
parent | bff547eabb6678ec8e71ffbcfbf9a4f05c94d949 (diff) | |
download | dev86-d91fa39567f5659e3931cf61517d62fddcd87570.tar.gz |
Import Dev86src-0.16.1.tar.gzv0.16.1
Diffstat (limited to 'libc/conio/conio.c')
-rw-r--r-- | libc/conio/conio.c | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/libc/conio/conio.c b/libc/conio/conio.c new file mode 100644 index 0000000..c0e9cbb --- /dev/null +++ b/libc/conio/conio.c @@ -0,0 +1,101 @@ +/* Copyright (C) 1999 Robert de Bath <rdebath@cix.compulink.co.uk> + * This file is part of the Linux-8086 C library and is distributed + * under the GNU Library General Public License. + */ + +#include <conio.h> + +/* + * I'm not sure if these should be BIOS or dos calls, so I'll assume they're + * BIOS calls but I may have to do something about Ctrl-C. + * + * These functions are also compiled for __STANDALONE__ so if ^C or DOS + * versions are made this will have to be addressed. + */ + +#ifdef L_getch +getch() +{ +#asm + xor ax,ax + int $16 +#endasm +} +#endif + +#ifdef L_getche +getche() +{ + int i = getch(); + if( i & 0xFF ) putch(i); + return i; +} +#endif + +#ifdef L_kbhit +kbhit() +{ +#asm + mov ah,#1 + int $16 + jz nokey + cmp ax,#0 + jnz dort + mov ax,#3 +dort: + ret +nokey: + xor ax,ax +#endasm +} +#endif + +#ifdef L_putch +putch() +{ +#asm +#if !__FIRST_ARG_IN_AX__ + mov bx,sp + mov ax,[bx+2] +#endif + cmp al,#$0A + jne not_nl + mov ax,#$0E0D + mov bx,#7 + int $10 + mov al,#$0A +not_nl: + mov ah,#$0E + mov bx,#7 + int $10 +#endasm +} +#endif + +#ifdef L_cputs +cputs(str) +char * str; +{ + while(*str) putch(*str++); +} +#endif + +#if 0 + +cgets() +{ +} + +cscanf() +{ +} + +getpass() +{ +} + +gotoxy() +{ +} + +#endif |