193 lines
3.1 KiB
HTML
193 lines
3.1 KiB
HTML
<!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="AEN806"
|
|
></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
|
|
|
|
http://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface).
|
|
</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
|
|
Flux project
|
|
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
|
|
cygwin32.dll library,
|
|
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
|
|
> |