Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ intdosx(DOS) — Xenix 2.3.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bdos(DOS)

intdos(DOS)

segread(DOS)

FP_SEG(DOS)

INTDOSX(DOS)



     INTDOSX(DOS)             XENIX System V              INTDOSX(DOS)



     Name
          intdosx - Invokes a DOS system call.

     Syntax
          #include <dos.h>

          int intdosx (inregs, outregs, segregs);
          union REGS *inregs;
          union REGS *outregs;
          struct SREGS *segregs;

     Description
          The intdosx function invokes the DOS system call specified
          by register values defined in inregs and returns the effect
          of the system call in outregs.  Unlike the intdos function,
          intdosx accepts segment register values in segregs, letting
          programs that use long model data segments or far pointers
          specify which segment or pointer should be used during the
          system call.  The inregs and outregs arguments are unions of
          type REGS.  The segregs argument is a structure of type
          SREGS.  These types are defined in the include file dos.h.

          To invoke a system call, intdosx executes an INT 21H
          instruction.  Before executing the instruction, the function
          copies the contents of inregs and segregs to the
          corresponding registers.  Only the DS and ES register values
          in segregs are used.  After the INT instruction returns,
          intdosx copies the current register values to outregs and
          restores DS.  It also copies the status of the system carry
          flag to the cflag field in outregs.  If this field is
          nonzero, the flag was set by the system call and indicates
          an error condition.

          intdosx is intended to be used to invoke DOS system calls
          that take an argument in the ES register, or that take a DS
          register value that is different from the default data
          segment.

     Return Value
          intdosx returns the value of the AX register after the
          system call has completed.  If the flag field in outregs is
          nonzero, an error has occurred and doserrno is also set to
          the corresponding error code.

     See Also
          bdos(DOS), intdos(DOS), segread(DOS), FP_SEG(DOS)









     Page 1                                           (printed 8/7/87)





     INTDOSX(DOS)             XENIX System V              INTDOSX(DOS)



     Example
          #include <dos.h>

          union REGS inregs, outregs; struct SREGS segregs; char far
          *dir = "/test/bin";

          /* The following statements change the current working **
          directory with dos function call 3b hex.  */

          inregs.h.ah = 0x3b;                 /* change directory */
          inregs.x.dx = FPOFF(dir);          /* file name offset */
          segregs.ds = FPSEG(dir);           /* file name segment */
          intdosx (&inregs,&outregs,&segregs); The above example must
          be compiled using the -Me flag.

     Notes
          Segment values for the segregs argument can be obtained by
          using either the segread function or the FP_SEG macro.

          This call must be compiled with the -dos flag.



































     Page 2                                           (printed 8/7/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026