Xi Development Systems
by Maxwell Sayles (Fysx)
fysx@spartan.pei.edu

This is a small RAW/XMS/DPMI 32-bit protected mode DOS extender.  It has
routines for file i/o, memory management, and protected mode interrupt
setting and getting.  See XIDS\XIDS.INC for a list of available
functions and variables.  You may perform a conditional compile, for a
smaller kernel, by commenting out the three EQU's (FILEIO, TEXTOUTPUT,
EXCEPTIONS) at the top of XIDS\XIDS.INC.

You can compile the kernel by running M.BAT while in the XIDS directory.
You can compile the Watcom C shell by running A.BAT while in the WSHELL
directory.  You will need a copy of TASM for the kernel and WLIB for the
Watcom C shell.

Example assembler code for the kernel is in the EXAMPLES directory.  Use
A.BAT with the file you want to compile on the command line (excluding
extension).
Example:   A EX1
You will require TASM and TLINK.

Example C code for the Watcom C shell is in the WTEST directory.  You
can compile the example with A.BAT.  You will require WCC386 and TLINK
(you can use WLINK with osname=DOS).

Items to note about the Watcom C support are:
You may not use any watcom libraries.
Your program runs in low memory, so allocating memory under 1Mb is as
simple as:  u8  DMA_Buffer[SIZE_OF_DMA_BUFFER*2];
You may use the FPU.  Although no math libs are provided so it will be
necessary to write your own routines for functions like fsqrt(), etc.

The resulting executables run in low memory and are standard MZ style
DOS executables.  You may use PKLITE (or similar) to compress.  All
memory references are made relative to the Code32 SEGMENT, so accessing
linear addresses require run-time relocation.  Example (writting to the
video screen at 000A0000h):
mov edi,000A0000h           ; location of frame buffer
sub edi,m Code32Addr        ; relocate pointer relative to base of DS
mov [edi],al                ; put pixel

Please look at the example sources and XIDS\XIDS.INC.  Most everything
should be self-explanatory.

This is rather old as you can tell from the revisions file, so I decided to
release it as it is.  If it gets used, I will continue to revise it according
to the feedback I receive.

Contact me at fysx@spartan.pei.edu
