Dec 052017
 
aetsk101.zip - full pseudo-tasking support for djgpp.
File AETSK101.ZIP from The Programmer’s Corner in
Category C Source Code
aetsk101.zip – full pseudo-tasking support for djgpp.
File Name File Size Zip Size Zip Type
AETSK101.MFT 3697 1297 deflated
CONTRIB 0 0 stored
TASKS 0 0 stored
INC 0 0 stored
AEDEF.H 1934 678 deflated
KEYBDTSK.H 874 308 deflated
LIBAE.H 1269 404 deflated
SYSQTMPL.H 5567 1323 deflated
SYSQVFNC.H 1911 725 deflated
TASK.H 16375 4957 deflated
LIB 0 0 stored
LIBTASK.A 48216 8812 deflated
MAKEFILE 501 280 deflated
OBJS 0 0 stored
KEYBDTSK.O 4563 1608 deflated
MAILBOX.O 3182 1167 deflated
PIPES.O 3463 1208 deflated
SEMAS.O 3300 1204 deflated
SYSQVFNC.O 1711 954 deflated
TASK.O 5692 2465 deflated
TASKMAIN.O 2964 1049 deflated
TSKFATAL.O 3217 1189 deflated
SRC 0 0 stored
KEYBDTSK.CC 1200 455 deflated
MAILBOX.CC 1951 639 deflated
MEMLEAK.CC 1454 565 deflated
PIPES.CC 738 289 deflated
SEMAS.CC 1792 598 deflated
SYSQVFNC.CC 3739 1046 deflated
TASK.CC 14874 4192 deflated
TASKMAIN.CC 884 325 deflated
TSKFATAL.CC 1447 553 deflated
TEST 0 0 stored
MAKEFILE 132 91 deflated
TEST 31963 10947 deflated
TEST.CC 4245 1475 deflated
TEST.O 8776 3150 deflated
DOCS 0 0 stored
COPYING 12737 4815 deflated
COPYING.DJ 2648 1083 deflated
FAQ 7502 3211 deflated
README 16049 6185 deflated
README.1ST 3698 1834 deflated

Download File AETSK101.ZIP Here

Contents of the README file



This is the README file for DJ's GCC port to DOS ("djgpp")

Contents:
* Overview
* What's available
* How to install
* Deviations and Caveats
* Copyright information

Disclaimer: This software is distributed WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

DJ Delorie
USmail: 24 Kirsten Ave, Rochester, NH 03867-2954, USA
email: [email protected]

mailing list: [email protected] ([email protected])




Overview:

This package contains a 32-bit 80386 DOS extender with symbolic
debugger, a C/C++ compiler with utilities, development libraries, and
source code. It generates full 32-bit programs and supports full
virtual memory with paging to disk.

Requirements:

A 80386-based IBM compatible PC or PS/2, approximately 4-5Mb of hard
drive space, and 512K RAM. Available extended (or expanded under VCPI)
memory is strongly recommended.

Supported Wares:

* Up to 128M of extended memory (expanded under VCPI)
* Up to 128M of disk space used for swapping
* SuperVGA 256-color mode up to 1024x768
* 80387
* XMS & VDISK memory allocation strategies
* VCPI programs, such as QEMM, DESQview, and 386MAX

Unsupported:

* DPMI
* Microsoft Windows
* Multiprocessing (fork())




File location:

host: barnacle.erc.clarkson.edu
login: ftp
password: send your e-mail address
directory: ~ftp/pub/msdos/djgpp

Many thanks to the sysops at Clarkson for providing a home to djgpp!

As a convenience to non-FTP users, djgpp is also stored on Clarkson's
archive server. To access the archive server, do this:

% mail [email protected]
Subject:
help
index msdos/djgpp
^D

NOTE: In accordance with FSF CopyLeft, you are not allowed to upload
this program to a distribution site unless that site also makes the FSF
sources for these programs available. Please read the file COPYING for
more details. FSF sources are available on prep.ai.mit.edu, and on
barnacle.erc.clarkson.edu

NOTE: If your application links in object modules that were written
by FSF, your application counts as a "derived work" and must obey
the provisions of the FSF Copyrights. See the file COPYING for
details. Specifically, the C++ classes in libc.a and obstacks are
FSF works that are covered by the GNU GPL. The mere act of compiling
does not affect the copyright status of your program.









INSTALLING:

To install, you must do the following:

* Create a "temp" directory, like c:\tmp.

* Create a directory to install in, like c:\djgpp.

* Un-zip the appropriate zipfiles in the install directory.
C:\DJGPP> pkunzip -d -o djdev109.zip
C:\DJGPP> pkunzip -d -o djgas138.zip
C:\DJGPP> pkunzip -d -o djgcc222.zip

* Add the following lines to C:\CONFIG.SYS file (or edit existing
files= and shell= lines as appropriate). The files= line prevents "too many
open files" errors when compiling, and the shell= line prevents "Out of
environment space" errors when setting lots of environment variables.

files=15
shell=c:\command.com c:\ /e:600 /p

The values 15 and 600 are close to minimal. You may want to increase them
to provide a little more margin.


* Add the following lines to C:\AUTOEXEC.BAT:
set COMPILER_PATH=c:/djgpp/bin
set C_INCLUDE_PATH=c:/djgpp/include
set CPLUS_INCLUDE_PATH=c:/djgpp/cplusinc;c:/djgpp/include
^^^ only needed if you are compiling c++ programs
set OBJC_INCLUDE_PATH=c:/djgpp/include
^^^ only needed if you are compiling objective-C programs
set OBJCPLUS_INCLUDE_PATH=c:/djgpp/include
^^^ only needed if you are compiling objective-C++ programs
set LIBRARY_PATH=c:/djgpp/lib
set TMPDIR=c:/tmp
^^^ this is where gcc's temp files go
set GO32TMP=c:/tmp
^^^ this is where your paging file goes - if not set, the
variables TMP and TEMP are checked in that order
set GO32=ansi driver c:/djgpp/drivers/SOMETHING.grd gw 1024 gh 768
^^^ whatever driver works with your VGA (optional)
set BISON_SIMPLE=c:/djgpp/lib/bison.simple
^^^ only needed if you use bison
set BISON_HAIRY=c:/djgpp/lib/bison.hairy
^^^ only needed if you use bison
set FLEX_SKELETON=c:/djgpp/lib/flex.skeleton
^^^ only needed if you use flex

Remember that unless you manually type these at the command line,
they won't take effect until you reboot. Don't include the "ansi"
keyword in the "go32" variable if you don't have an ANSI.SYS driver
or equivalent.

* Add your binaries directory to your PATH in C:\AUTOEXEC.BAT
SET PATH= . . . ;C:\DJGPP\BIN

That's it! djgpp is now installed on your system.





The GO32 environment variable:


This variable controls the options available in go32 or debug32. The
syntax of this variable is:

SET GO32=[parm [value]] [parm [value]] . . .

Parameters:

ansi Use ANSI commands to control the color in debug32
mono Use the Monochrome monitor for debugging - useful when
debugging graphics applications
1rm Redirect stdout (file #1) to the monochrome monitor
2rm Redirect stderr (file #2) to the monochrome monitor
1r2 Redirect stdout (file #1) to stderr (file #2)
2r1 Redirect stderr (file #2) to stdout (file #1)

glob enable globbing (default)
noglob disable globbing

emu [path] Use the specified file as the 80387 emulator

driver [path] Use the specified file as the graphics driver
gw [width] Default graphics width
gh [height] Default graphics height
tw [width] Default text width
th [height] Default text height
nc [colors] Number of colors (for new-style drivers only - see cbgrx*.zip)


These parameters may occur in any order.

Note that "1rm" and "2rm" are done before "1r2" and "2r1", so "1rm 2r1" sends
stdout to the mono monitor and stderr to any redirection used.

Examples:

C:\> set GO32=mono driver c:\djgpp\drivers\tseng4k.grd gw 1024 gh 768 tw 132 th 43 nc 256
C:\> set GO32=ansi
C:\> set GO32=driver c:\djgpp\drivers\tseng4k.grd ansi
C:\> set GO32=mono 1rm 2rm










Deviations and Caveats:

GCC/G++ deviates from the U**x version in a number of ways, mostly to
accomodate deficiencies in the MS-DOS environment, and my own laziness.

* An 80387 is required to do floating point. An emulator is provided.
cc1 and cc1plus shouldn't use the 387 unless compiling floating point
code. The environment variable "387" can override the auto-detection
routine:
SET 387=YES to force 387 handlers to be enabled
SET 387=NO to force 387 accesses to fault
SET 387=QUERY to get a message showing the results of the auto-detection
If no 80387 is present and the program attempts to use it, a message
indicating where the instruction is will be displayed. To use the
387 emulator, add "emu c:\djgpp\emu387\emu387" to the GO32 environment
variable. Specifying use of the emulator overrides the "387"
environment variable and autodetection code.

* The VDISK method of allocating extended memory is supported. The
INT 15h method is also. When the extender runs out of conventional and
extended memory, it uses a paging file named $(GO32TMP)/pgXXXXXX.386, where
XXXX is an unspecified hex value. This file is normally removed on exit.

* Up to 128 MB of physical memory and 128 MB of disk swap space are allowed.
A 512K machine is sufficient, but very slow due to paging.

* The utilies support the MS-DOS standard response file method for giving
more than 128 bytes of command line. Example: "gcc -o foo @foo.lnk" where
foo.lnk contains a list of .o files. Wildcard expansion (globbing) is
performed on the parameters, unless they are surrounded by single quotes.
Double quotes can be used to prevent spaces from separating arguments.
Also supported is the GNUish-DOS method of passing arguments in
environment variables.

* Since MS-DOS does not distinguish case in file names, some .h files
used for C++ have had underscores prepended to them to avoid conflict
(ie: String.h conflicts with string.h, so it became _String.h).

* When using ar to create archives, be warned that the ar version
supplied cannot update an archive that's been sequenced (ar s foo.a),
and cannot sequence a file that's been sequenced. Also, ld cannot
use an archive that's not sequenced. The following method is suggested:
ar rv mylib.a $(OBJS)
cp mylib.a mylib2.a
ar rvs mylib2.a
(and then link with mylib2.a)

* The extender can be added to any gcc-compiled program by copying go32.exe
to be .exe, where is the 32-bit program. For example,
if "hello" is a gcc-compiled a.out file, and "hello.exe" is a copy of
go32.exe, then when "hello.exe" runs, it loads the file called "hello"

in the same directory, and executes it if present. Otherwise,
the first parameter is the executable (ie: go32 cc1plus foo.cc).

* The extender can be merged to create one .exe file that is the extender
and the executable in one file, by using the stub.exe program:
copy /b stub.exe+myprog myprog.exe
-or-
aout2exe myprog
This will only work if go32.exe is in your search path, because stub.exe
runs it. Alternatively, you can prepend go32.exe itself to an a.out file
to get a single executable (stub.exe is much smaller). Note that if
you re-compile go32 or stub, you must strip off the symbol table first.

* The extender runs programs at logical address 0. A copy of the first
1 MB of physical memory (including the AT channel) is mapped to
0xE0000000 in the program's address space. The stack grows down from
0x7FFFFFFC in the program's address space. Data usually starts at
0x00400000.

* The paging mechanism understands how SuperVGA's map their memory onto
the AT bus and automatically swaps pages as the program tries to
access them. The program sees a linear range from 0xD0000000 to
0xD0100000 that corresponds to each pixel in the 256-color modes
of SuperVGAs. To use this feature, you'll have to set the GO32
environment variable like this:
C>set go32=driver c:\djgpp\drivers\tseng4k.grd gw 640 gh 480 tw 132 th 43
These parameter pairs can be omitted or rearranged as needed. They are
the "driver" name, default graphics width and height, and default
text width and height. Libgr.a doesn't have to be recompiled, nor
do graphics programs, when a different graphics mode is selected
(the extender handles it). It is strongly recommended that the program
use the GR_default_graphics and GR_default_text modes to switch to
graphics or text. These modes use the parameters specified by the
GO32 environment variable, allowing the user to select a favorite
graphics and text mode.

* Symbols are stored in virtual memory, so you won't run out of symbol
space until both extended memory and the disk are all used up. For
large programs, you might notice a slight delay while it looks up
symbols. Programs with a lot of lines in a given module may run out
of memory as the line number table is built in real memory and transferred
to virtual memory.

* Signals are not reported to the program. However, interrupts do continue
to get serviced while in protected mode (ie: keypress, timer, etc).
CTRL-C will get you back to the debugger in debug32, and you can continue
from where you stopped. All signals (ie: exceptions) cause debugging
traps in debug32, or general faults in go32.



Copyright Information:

* Source code for the GNU utilities is copyright (c) Free Software Foundation.
For more information on the FSF copyright, see their source code or write
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

A copy of their file "COPYING" is included in the docs directory. Some of
the FSF source code has been modified to operate properly in the MS-DOS
environment.

* Source code for most of libc.a are copyright (c) Regents of the University
of California. These files include copyright information in them. The
utilities are compiled against these libraries, and thus contain software
developed by the University of California, Berkeley, and its contributors.
Some of the BSD source code has been modified to operate properly in the
MS-DOS environment.

* Any sources not falling under the copyrights of FSF or UCB (as above) are
Copyright (c) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954.
To contact me via E-Mail, sent to "[email protected]". Cabletron Systems Inc
is in no way involved with this project; I just happen to work for them
during the day.

Terms and Conditions:

* Source code copyright FSF is distributed under the terms of the GNU
Public General License. See the file "COPYING" in doc.arc for more
information. If your program links in object modules (in libc.a) that
are compiled from GNU sources, then your entire program must be
distributed under the terms of the GNU GPL as a "derived work". These
modules are the C++ class library (including the streams classes) and
obstacks. The sources in libsrc have the copyright notices in them
for the various modules.

* Source code copyright UCB is distributed under the terms listed in the
UCB source code itself.

* Source code copyright DJ Delorie is distributed under the terms of the
GNU General Public Licence, with the following exceptions:
("go32.exe" refers to go32.exe and debug32.exe)

* There are no conditions on distributing copies of stub.exe or emu387
as they are originally distributed in this software package.

* If a user creates an application, prepends a copy of go32.exe onto
the beginning of it, and distributes it free of charge, then the
user is under no obligations to distribute source or pay royalties.
Note that the copyright terms of the FSF and/or UCB must be
obeyed regardless of this.

* If a user creates an application, prepends a copy of go32.exe onto
the beginning of it, and charges a fee for the software, then a
royalty of $5 or 5% of the selling price per copy sold must be paid
to DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954. Note that
shareware programs are not considered "sold" until payment is rendered
for them.

* For all other cases, source code for go32.exe must be distributed
with any distributed copies of go32.exe, or made available as per
the terms of the GNU GPL. In these cases, no royalties are due,
and all freedoms provided by the GPL apply.

* Software that requires go32.exe to run, but is not distributed with
a copy of go32.exe, incurs no obligations with regards to the
above sections.

* Contact me for special terms if none of the above are suitable.

* Donations are always appreciated.

The intent of this copyright is this: If you make money by using the
programs I wrote, I get some of it. If you use your sources to
teach others how to write programs, I'll support you.

Changes to source code copyright BSD or FSF are copyright DJ Delorie, but
fall under the terms of the original copyright.





Donations may be made to any of the following:

DJ Delorie
24 Kirsten Ave
Rochester, NH 03867-2954
USA

Free Software Foundation
675 Mass Ave
Cambridge, MA 02139
USA

Computer Systems Research Group
Computer Science Division, EECS
University of California
Berkeley, California 94720
USA


Contents of the README.1ST file



This is the README file for DJ's GCC port to DOS ("djgpp")

Contents:
* Overview
* What's available
* How to install
* Deviations and Caveats
* Copyright information

Disclaimer: This software is distributed WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

DJ Delorie
USmail: 24 Kirsten Ave, Rochester, NH 03867-2954, USA
email: [email protected]

mailing list: [email protected] ([email protected])




Overview:

This package contains a 32-bit 80386 DOS extender with symbolic
debugger, a C/C++ compiler with utilities, development libraries, and
source code. It generates full 32-bit programs and supports full
virtual memory with paging to disk.

Requirements:

A 80386-based IBM compatible PC or PS/2, approximately 4-5Mb of hard
drive space, and 512K RAM. Available extended (or expanded under VCPI)
memory is strongly recommended.

Supported Wares:

* Up to 128M of extended memory (expanded under VCPI)
* Up to 128M of disk space used for swapping
* SuperVGA 256-color mode up to 1024x768
* 80387
* XMS & VDISK memory allocation strategies
* VCPI programs, such as QEMM, DESQview, and 386MAX

Unsupported:

* DPMI
* Microsoft Windows
* Multiprocessing (fork())




File location:

host: barnacle.erc.clarkson.edu
login: ftp
password: send your e-mail address
directory: ~ftp/pub/msdos/djgpp

Many thanks to the sysops at Clarkson for providing a home to djgpp!

As a convenience to non-FTP users, djgpp is also stored on Clarkson's
archive server. To access the archive server, do this:

% mail [email protected]
Subject:
help
index msdos/djgpp
^D

NOTE: In accordance with FSF CopyLeft, you are not allowed to upload
this program to a distribution site unless that site also makes the FSF
sources for these programs available. Please read the file COPYING for
more details. FSF sources are available on prep.ai.mit.edu, and on
barnacle.erc.clarkson.edu

NOTE: If your application links in object modules that were written
by FSF, your application counts as a "derived work" and must obey
the provisions of the FSF Copyrights. See the file COPYING for
details. Specifically, the C++ classes in libc.a and obstacks are
FSF works that are covered by the GNU GPL. The mere act of compiling
does not affect the copyright status of your program.









INSTALLING:

To install, you must do the following:

* Create a "temp" directory, like c:\tmp.

* Create a directory to install in, like c:\djgpp.

* Un-zip the appropriate zipfiles in the install directory.
C:\DJGPP> pkunzip -d -o djdev109.zip
C:\DJGPP> pkunzip -d -o djgas138.zip
C:\DJGPP> pkunzip -d -o djgcc222.zip

* Add the following lines to C:\CONFIG.SYS file (or edit existing
files= and shell= lines as appropriate). The files= line prevents "too many
open files" errors when compiling, and the shell= line prevents "Out of
environment space" errors when setting lots of environment variables.

files=15
shell=c:\command.com c:\ /e:600 /p

The values 15 and 600 are close to minimal. You may want to increase them
to provide a little more margin.


* Add the following lines to C:\AUTOEXEC.BAT:
set COMPILER_PATH=c:/djgpp/bin
set C_INCLUDE_PATH=c:/djgpp/include
set CPLUS_INCLUDE_PATH=c:/djgpp/cplusinc;c:/djgpp/include
^^^ only needed if you are compiling c++ programs
set OBJC_INCLUDE_PATH=c:/djgpp/include
^^^ only needed if you are compiling objective-C programs
set OBJCPLUS_INCLUDE_PATH=c:/djgpp/include
^^^ only needed if you are compiling objective-C++ programs
set LIBRARY_PATH=c:/djgpp/lib
set TMPDIR=c:/tmp
^^^ this is where gcc's temp files go
set GO32TMP=c:/tmp
^^^ this is where your paging file goes - if not set, the
variables TMP and TEMP are checked in that order
set GO32=ansi driver c:/djgpp/drivers/SOMETHING.grd gw 1024 gh 768
^^^ whatever driver works with your VGA (optional)
set BISON_SIMPLE=c:/djgpp/lib/bison.simple
^^^ only needed if you use bison
set BISON_HAIRY=c:/djgpp/lib/bison.hairy
^^^ only needed if you use bison
set FLEX_SKELETON=c:/djgpp/lib/flex.skeleton
^^^ only needed if you use flex

Remember that unless you manually type these at the command line,
they won't take effect until you reboot. Don't include the "ansi"
keyword in the "go32" variable if you don't have an ANSI.SYS driver
or equivalent.

* Add your binaries directory to your PATH in C:\AUTOEXEC.BAT
SET PATH= . . . ;C:\DJGPP\BIN

That's it! djgpp is now installed on your system.





The GO32 environment variable:


This variable controls the options available in go32 or debug32. The
syntax of this variable is:

SET GO32=[parm [value]] [parm [value]] . . .

Parameters:

ansi Use ANSI commands to control the color in debug32
mono Use the Monochrome monitor for debugging - useful when
debugging graphics applications
1rm Redirect stdout (file #1) to the monochrome monitor
2rm Redirect stderr (file #2) to the monochrome monitor
1r2 Redirect stdout (file #1) to stderr (file #2)
2r1 Redirect stderr (file #2) to stdout (file #1)

glob enable globbing (default)
noglob disable globbing

emu [path] Use the specified file as the 80387 emulator

driver [path] Use the specified file as the graphics driver
gw [width] Default graphics width
gh [height] Default graphics height
tw [width] Default text width
th [height] Default text height
nc [colors] Number of colors (for new-style drivers only - see cbgrx*.zip)


These parameters may occur in any order.

Note that "1rm" and "2rm" are done before "1r2" and "2r1", so "1rm 2r1" sends
stdout to the mono monitor and stderr to any redirection used.

Examples:

C:\> set GO32=mono driver c:\djgpp\drivers\tseng4k.grd gw 1024 gh 768 tw 132 th 43 nc 256
C:\> set GO32=ansi
C:\> set GO32=driver c:\djgpp\drivers\tseng4k.grd ansi
C:\> set GO32=mono 1rm 2rm










Deviations and Caveats:

GCC/G++ deviates from the U**x version in a number of ways, mostly to
accomodate deficiencies in the MS-DOS environment, and my own laziness.

* An 80387 is required to do floating point. An emulator is provided.
cc1 and cc1plus shouldn't use the 387 unless compiling floating point
code. The environment variable "387" can override the auto-detection
routine:
SET 387=YES to force 387 handlers to be enabled
SET 387=NO to force 387 accesses to fault
SET 387=QUERY to get a message showing the results of the auto-detection
If no 80387 is present and the program attempts to use it, a message
indicating where the instruction is will be displayed. To use the
387 emulator, add "emu c:\djgpp\emu387\emu387" to the GO32 environment
variable. Specifying use of the emulator overrides the "387"
environment variable and autodetection code.

* The VDISK method of allocating extended memory is supported. The
INT 15h method is also. When the extender runs out of conventional and
extended memory, it uses a paging file named $(GO32TMP)/pgXXXXXX.386, where
XXXX is an unspecified hex value. This file is normally removed on exit.

* Up to 128 MB of physical memory and 128 MB of disk swap space are allowed.
A 512K machine is sufficient, but very slow due to paging.

* The utilies support the MS-DOS standard response file method for giving
more than 128 bytes of command line. Example: "gcc -o foo @foo.lnk" where
foo.lnk contains a list of .o files. Wildcard expansion (globbing) is
performed on the parameters, unless they are surrounded by single quotes.
Double quotes can be used to prevent spaces from separating arguments.
Also supported is the GNUish-DOS method of passing arguments in
environment variables.

* Since MS-DOS does not distinguish case in file names, some .h files
used for C++ have had underscores prepended to them to avoid conflict
(ie: String.h conflicts with string.h, so it became _String.h).

* When using ar to create archives, be warned that the ar version
supplied cannot update an archive that's been sequenced (ar s foo.a),
and cannot sequence a file that's been sequenced. Also, ld cannot
use an archive that's not sequenced. The following method is suggested:
ar rv mylib.a $(OBJS)
cp mylib.a mylib2.a
ar rvs mylib2.a
(and then link with mylib2.a)

* The extender can be added to any gcc-compiled program by copying go32.exe
to be .exe, where is the 32-bit program. For example,
if "hello" is a gcc-compiled a.out file, and "hello.exe" is a copy of
go32.exe, then when "hello.exe" runs, it loads the file called "hello"

in the same directory, and executes it if present. Otherwise,
the first parameter is the executable (ie: go32 cc1plus foo.cc).

* The extender can be merged to create one .exe file that is the extender
and the executable in one file, by using the stub.exe program:
copy /b stub.exe+myprog myprog.exe
-or-
aout2exe myprog
This will only work if go32.exe is in your search path, because stub.exe
runs it. Alternatively, you can prepend go32.exe itself to an a.out file
to get a single executable (stub.exe is much smaller). Note that if
you re-compile go32 or stub, you must strip off the symbol table first.

* The extender runs programs at logical address 0. A copy of the first
1 MB of physical memory (including the AT channel) is mapped to
0xE0000000 in the program's address space. The stack grows down from
0x7FFFFFFC in the program's address space. Data usually starts at
0x00400000.

* The paging mechanism understands how SuperVGA's map their memory onto
the AT bus and automatically swaps pages as the program tries to
access them. The program sees a linear range from 0xD0000000 to
0xD0100000 that corresponds to each pixel in the 256-color modes
of SuperVGAs. To use this feature, you'll have to set the GO32
environment variable like this:
C>set go32=driver c:\djgpp\drivers\tseng4k.grd gw 640 gh 480 tw 132 th 43
These parameter pairs can be omitted or rearranged as needed. They are
the "driver" name, default graphics width and height, and default
text width and height. Libgr.a doesn't have to be recompiled, nor
do graphics programs, when a different graphics mode is selected
(the extender handles it). It is strongly recommended that the program
use the GR_default_graphics and GR_default_text modes to switch to
graphics or text. These modes use the parameters specified by the
GO32 environment variable, allowing the user to select a favorite
graphics and text mode.

* Symbols are stored in virtual memory, so you won't run out of symbol
space until both extended memory and the disk are all used up. For
large programs, you might notice a slight delay while it looks up
symbols. Programs with a lot of lines in a given module may run out
of memory as the line number table is built in real memory and transferred
to virtual memory.

* Signals are not reported to the program. However, interrupts do continue
to get serviced while in protected mode (ie: keypress, timer, etc).
CTRL-C will get you back to the debugger in debug32, and you can continue
from where you stopped. All signals (ie: exceptions) cause debugging
traps in debug32, or general faults in go32.



Copyright Information:

* Source code for the GNU utilities is copyright (c) Free Software Foundation.
For more information on the FSF copyright, see their source code or write
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

A copy of their file "COPYING" is included in the docs directory. Some of
the FSF source code has been modified to operate properly in the MS-DOS
environment.

* Source code for most of libc.a are copyright (c) Regents of the University
of California. These files include copyright information in them. The
utilities are compiled against these libraries, and thus contain software
developed by the University of California, Berkeley, and its contributors.
Some of the BSD source code has been modified to operate properly in the
MS-DOS environment.

* Any sources not falling under the copyrights of FSF or UCB (as above) are
Copyright (c) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954.
To contact me via E-Mail, sent to "[email protected]". Cabletron Systems Inc
is in no way involved with this project; I just happen to work for them
during the day.

Terms and Conditions:

* Source code copyright FSF is distributed under the terms of the GNU
Public General License. See the file "COPYING" in doc.arc for more
information. If your program links in object modules (in libc.a) that
are compiled from GNU sources, then your entire program must be
distributed under the terms of the GNU GPL as a "derived work". These
modules are the C++ class library (including the streams classes) and
obstacks. The sources in libsrc have the copyright notices in them
for the various modules.

* Source code copyright UCB is distributed under the terms listed in the
UCB source code itself.

* Source code copyright DJ Delorie is distributed under the terms of the
GNU General Public Licence, with the following exceptions:
("go32.exe" refers to go32.exe and debug32.exe)

* There are no conditions on distributing copies of stub.exe or emu387
as they are originally distributed in this software package.

* If a user creates an application, prepends a copy of go32.exe onto
the beginning of it, and distributes it free of charge, then the
user is under no obligations to distribute source or pay royalties.
Note that the copyright terms of the FSF and/or UCB must be
obeyed regardless of this.

* If a user creates an application, prepends a copy of go32.exe onto
the beginning of it, and charges a fee for the software, then a
royalty of $5 or 5% of the selling price per copy sold must be paid
to DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954. Note that
shareware programs are not considered "sold" until payment is rendered
for them.

* For all other cases, source code for go32.exe must be distributed
with any distributed copies of go32.exe, or made available as per
the terms of the GNU GPL. In these cases, no royalties are due,
and all freedoms provided by the GPL apply.

* Software that requires go32.exe to run, but is not distributed with
a copy of go32.exe, incurs no obligations with regards to the
above sections.

* Contact me for special terms if none of the above are suitable.

* Donations are always appreciated.

The intent of this copyright is this: If you make money by using the
programs I wrote, I get some of it. If you use your sources to
teach others how to write programs, I'll support you.

Changes to source code copyright BSD or FSF are copyright DJ Delorie, but
fall under the terms of the original copyright.





Donations may be made to any of the following:

DJ Delorie
24 Kirsten Ave
Rochester, NH 03867-2954
USA

Free Software Foundation
675 Mass Ave
Cambridge, MA 02139
USA

Computer Systems Research Group
Computer Science Division, EECS
University of California
Berkeley, California 94720
USA
This is README.1ST, which you should have read before any other. Please
read this COMPLETELY before going any further.

WARNING: This software comes with ABSOLUTELY NO WARRANTEE. I can't even
guarantee that this software won't wipe out your entire hard drive (it's
happened to a few people before). USE AT YOUR OWN RISK! It's always a
good idea to make regular backups of your hard drives anyway.

If you are using PKUNZIP to extract your files, don't forget the -d or
you'll get them all in the same directory! All djgpp modules are
designed to be unzipped from the same directory, so that they install
themselves properly.

djgpp is a complete 32-bit C and C++ development environment for DOS.
This product is intended for users who have experience using Unix, not
DOS users who expect djgpp to act like any other DOS compiler. This is
NOT the software you want if you want to learn programming.

Supported: 80386, 80387, 80486, XMS, himem.sys, VCPI, QEMM, 386MAX,
DesqView.

Unsupported: XTs, 80286, Windows (because Microsoft won't support DPMI
1.0), OS/2, multitasking, signals.

Features: 80387 emulator, 32-bit unix-ish environment, flat memory
model, debugger, SVGA graphics.

==================== Reporting bugs ====================

ALL changes to the source code should be submitted in "diff -c2" format.
If you just send replacement files, I'll reject them, since I don't know
which parts you've changed and my sources keep changing anyway. Diffs
will also be rejected for use of bcc features in go32 sources (like //
comments), or more than one feature or bugfix per diff. Please use the
same programming style as the existing style when making changes to my
sources.

Note that new features are not bugs. If you would like to work on
adding features to djgpp, please send me e-mail at [email protected]
beforehand, in case it's being worked on already and to coordinate it's
integration. If you want to request a new feature but not work on it,
send to the mailing list.

If the problem is in one of the FSF utilities, please don't expect me to
fix it. Problems with FSF code should be reported to the FSF; I only
compile the code and distribute it. My best suggestion is to post to
the appropriate newsgroup or mailing list, but if you can't find one,
try [email protected]

If the problem is in anything else, and you have e-mail access, I strongly
recommend joining the djgpp mailing list. To do so, send mail to
[email protected]:

$ mail [email protected]
Subject:
help
add djgpp
^D

Any mail sent to [email protected] will get automatically
forwarded to all the subscribers on the list, and someone may have an
answer to your query. Note that I (DJ) am of course a subscriber, so I
will get it also.

If all else fails, you may contact me directly at [email protected]
(preferred) or at home:

DJ Delorie
24 Kirsten Ave
Rochester, NH 03867-2954
USA

==================== Redistribution ====================

The utilities built from FSF code may NOT be made available through any
means not prepared to also distribute the source for those utilities.
This isn't just a good idea, it's the LAW. Read the file "copying" for
more details on FSF copyright terms. Since djgpp includes such
binaries, it requires the same terms.

Programs that link in FSF code must comply with the GNU Library Licence,
or the GNU public license.

I strongly recommend prepending stub.exe (use aout2exe) for any programs
you intend to distribute. This avoids me requiring a royalty, and aids
upgrading go32, since stub.exe doesn't change.



 December 5, 2017  Add comments

Leave a Reply