summaryrefslogtreecommitdiff
path: root/libc/conio/conio.c
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>2002-01-12 20:42:42 +0100
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:48:46 +0200
commitd91fa39567f5659e3931cf61517d62fddcd87570 (patch)
tree20583acd4f345a4f5c9a7772870ef972cb8a3b14 /libc/conio/conio.c
parentbff547eabb6678ec8e71ffbcfbf9a4f05c94d949 (diff)
downloaddev86-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.c101
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