home *** CD-ROM | disk | FTP | other *** search
- /* COPYRIGHT 1990 BY VICTOR SCHNEIDER. ALL RIGHTS RESERVED */
-
- /* THIS PROGRAM IS A DOS-SPECIFIC EXAMPLE. IT IS MEANT TO BE USED */
- /* BY INTERPETED PASCAL PROGRAMS LIKE `HOTKEY.PAS'; NOTE THE SEMI- */
- /* PORTABLE METHOD FOR PASSING A POINTER TO int86: */
-
- /* PASCAL DECLARATION TO CALL int86 AS AN EXTERNAL:
-
- PROCEDURE int86(interrupt : integer; var inregs : REGS; var outregs : REGS);
- EXTERNAL;
-
- */
-
- /* THIS C PROGRAM USES FAR POINTERS, AND SHOULD BE COMPILED IN far OR */
- /* huge MODEL TO CALL THE APPROPRIATE VERSION OF biosequip() FROM YOUR C */
- /* COMPILER'S LIBRARY: */
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <dos.h>
- #include <stdarg.h>
-
- #define CHR(x) ((unsigned char)(x))
- #define ORD(x) ((unsigned)(x))
-
- #define LToFar(x) ((void far *)((void huge *)(x)))
- #define FarToL(x) ((unsigned long)((void huge *)((void far *)(x))))
- #define BEGIN {
- #define END ;}
- #define IF if (
- #define THEN )
- #define ELSE else
- #define FOR for (
- #define AS ;(
- #define BY );
- #define DO )
- #define CASE switch (
- #define OF ){
- typedef enum {FALSE,TRUE} BOOLEAN;
- typedef double REAL;
- typedef char * ALPHA;
-
- void far main(int argc, char *argv[])
- BEGIN
- va_list ArgList;
- union REGS far *inregs, far *outregs;
- int service;
- sscanf(argv[1], "%Fp", &ArgList);
- service = va_arg(ArgList, int);
- inregs = va_arg(ArgList, union REGS far *);
- outregs = va_arg(ArgList, union REGS far *);
- int86(service, inregs, outregs)
- END
-