<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML ><HEAD ><TITLE >DOS and Windows</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="Linux Assembly HOWTO" HREF="index.html"><LINK REL="UP" TITLE="Calling conventions" HREF="conventions.html"><LINK REL="PREVIOUS" TITLE="Linux" HREF="linux.html"><LINK REL="NEXT" TITLE="Your own OS" HREF="ownos.html"></HEAD ><BODY CLASS="SECTION" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Linux Assembly HOWTO</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="linux.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 5. Calling conventions</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="ownos.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECTION" ><H1 CLASS="SECTION" ><A NAME="AEN798" ></A >5.2. DOS and Windows</H1 ><P >Most DOS extenders come with some interface to DOS services. Read their docs about that, but often, they just simulate <TT CLASS="FUNCTION" >int 0x21</TT > and such, so you do "as if" you are in real mode (I doubt they have more than stubs and extend things to work with 32-bit operands; they most likely will just reflect the interrupt into the real-mode or vm86 handler).</P ><P >Docs about DPMI (and much more) can be found on <A HREF="ftp://x2ftp.oulu.fi/pub/msdos/programming/" TARGET="_top" >ftp://x2ftp.oulu.fi/pub/msdos/programming/</A > (again, the original x2ftp site is closing (no more?), so use a <A HREF="ftp://ftp.lip6.fr/pub/pc/x2ftp/README.mirror_sites" TARGET="_top" >mirror site</A >).</P ><P >DJGPP comes with its own (limited) <SPAN CLASS="APPLICATION" >glibc</SPAN > derivative/subset/replacement, too.</P ><P >It is possible to cross-compile from Linux to DOS, see the <TT CLASS="FILENAME" >devel/msdos/</TT > directory of your local FTP mirror for metalab.unc.edu; Also see the MOSS DOS-extender from the <A HREF="http://www.cs.utah.edu/projects/flux/" TARGET="_top" >Flux project</A > from the university of Utah.</P ><P >Other documents and FAQs are more DOS-centered; we do not recommend DOS development.</P ><DIV CLASS="FORMALPARA" ><P ><B >Windows and Co. </B >This document is not about Windows programming, you can find lots of documents about it everywhere... The thing you should know is that there is the <A HREF="http://www.cygwin.com" TARGET="_top" >cygwin32.dll library</A >, for GNU programs to run on Win32 platform; thus, you can use GCC, GAS, all the GNU tools, and many other Unix applications.</P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="linux.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="ownos.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Linux</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="conventions.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Your own OS</TD ></TR ></TABLE ></DIV ></BODY ></HTML >