home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
- #if __SC__ || __RCC__
- #pragma once
- #endif
-
- #ifndef __BIOS_H
- #define __BIOS_H 1
-
- #ifndef __NT__
- #if __cplusplus
- extern "C" {
- #endif
-
- #define _KEYBRD_READ 0
- #define _KEYBRD_READY 1
- #define _KEYBRD_SHIFTSTATUS 2
- #define _NKEYBRD_READ 0x10
- #define _NKEYBRD_READY 0x11
- #define _NKEYBRD_SHIFTSTATUS 0x12
-
- #ifndef _WINDOWS
- unsigned short __cdecl _bios_keybrd(unsigned);
- unsigned short __cdecl bioskey(int);
- #endif
-
- #if M_UNIX || M_XENIX
-
- void __cdecl _bios_keybrd_close(void);
- int __cdecl _bios_keybrd_open(void);
-
- #else /* M_UNIX || M_XENIX */
-
- #pragma pack(1)
- struct diskinfo_t {
- unsigned drive;
- unsigned head;
- unsigned track;
- unsigned sector;
- unsigned nsectors;
- void __far *buffer;
- };
- #define _diskinfo_t diskinfo_t
-
- #pragma pack()
-
- #define _COM_INIT 0
- #define _COM_SEND 1
- #define _COM_RECEIVE 2
- #define _COM_STATUS 3
- #define _COM_CHR7 2
- #define _COM_CHR8 3
- #define _COM_STOP1 0
- #define _COM_STOP2 4
- #define _COM_NOPARITY 0
- #define _COM_ODDPARITY 8
- #define _COM_EVENPARITY 24
- #define _COM_110 0
- #define _COM_150 32
- #define _COM_300 64
- #define _COM_600 96
- #define _COM_1200 128
- #define _COM_2400 160
- #define _COM_4800 192
- #define _COM_9600 224
- #define _DISK_RESET 0
- #define _DISK_STATUS 1
- #define _DISK_READ 2
- #define _DISK_WRITE 3
- #define _DISK_VERIFY 4
- #define _DISK_FORMAT 5
- #define _PRINTER_WRITE 0
- #define _PRINTER_INIT 1
- #define _PRINTER_STATUS 2
- #define _TIME_GETCLOCK 0
- #define _TIME_SETCLOCK 1
-
- unsigned __cdecl _bios_equiplist(void);
- unsigned __cdecl _bios_memsize(void);
- #ifndef _WINDOWS
- unsigned __cdecl _bios_printer(unsigned, unsigned, unsigned);
- #define biosprint(cmd,abyte,port) _bios_printer(cmd,port,abyte)
- unsigned __cdecl _bios_serialcom(unsigned, unsigned, unsigned);
- #define bioscom _bios_serialcom
- #endif
- unsigned __cdecl _bios_timeofday(unsigned, long *);
- long __cdecl biostime(int , long);
- #ifndef DOS386
- unsigned __cdecl _bios_disk(unsigned, struct diskinfo_t *);
- int __cdecl biosdisk(int, int, int, int, int, int, void *);
- #endif /* DOS386 */
-
- #define biosmemory() _bios_memsize()
- #define biosequip() _bios_equiplist()
- #endif /* M_UNIX || M_XENIX */
-
- #ifndef __REGS_DEFINED
- #define __REGS_DEFINED
- #ifndef __NT__
-
- #if __INTSIZE == 4
-
- #pragma pack(1)
- struct _DWORDREGS
- { unsigned eax,ebx,ecx,edx,esi,edi,cflag,flags;
- };
- #define DWORDREGS _DWORDREGS
-
- struct _WORDREGS
- { unsigned short ax,eaxmsw,bx,ebxmsw,cx,ecxmsw,dx,edxmsw,
- si,esimsw,di,edimsw;
- unsigned cflag,flags;
- };
- #define WORDREGS _WORDREGS
-
- struct _BYTEREGS
- { unsigned char al,ah,ax2,ax3,bl,bh,bx2,bx3,
- cl,ch,cx2,cx3,dl,dh,dx2,dx3;
- };
- #define BYTEREGS _BYTEREGS
-
- union _REGS { struct _DWORDREGS e; struct _WORDREGS x; struct _BYTEREGS h; };
- #define REGS _REGS
-
- struct _SREGS { unsigned short es,cs,ss,ds,fs,gs; };
- #define SREGS _SREGS
-
- #pragma pack()
- #else /* __INTSIZE == 4 */
-
- #pragma pack(1)
- struct WORDREGS { unsigned ax,bx,cx,dx,si,di,cflag,flags; };
- struct BYTEREGS {unsigned char al,ah,bl,bh,cl,ch,dl,dh; };
- union REGS { struct WORDREGS x; struct BYTEREGS h; };
- struct SREGS { unsigned es,cs,ss,ds; };
- #pragma pack()
- #define _REGS REGS
- #define _SREGS SREGS
- #define _WORDREGS WORDREGS
- #define _BYTEREGS BYTEREGS
-
- #endif /* __INTSIZE == 4 */
- #endif /* __NT__ */
- #endif /* __REGS_DEFINED */
-
- int __cdecl int86(int,union REGS *,union REGS *);
- int __cdecl int86x(int,union REGS *,union REGS *,struct SREGS *);
- #define _int86 int86
- #define _int86x int86x
-
- #if __cplusplus
- }
- #endif
-
- #endif /* __NT__ */
-
- #endif
-