FAQ v0.2
Thu, 24 Oct 96 15:48:48 CST
Ok folks, I updated my first attempt at a FAQ a bit, and did some very
crude Texification, so a html version exists too, which I sent to Peter for
the homepages at agnes.dida.physik.uni-essen.de
Let me know if you find any errors or sections that need clarification.
JanJaap
This is Info file FAQ, produced by Makeinfo-1.64 from the input fil
faq.texi
aq.texi.
fo file FAQ, produced by Makeinfo-1.64 from the input file
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Revision 0.2 of 24 October 199
Revision 0.2 of 24 October 1996
Makeinfo-1.64 from the input file
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Author: J.J. van der Heijden
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
What is GNU Pascal
******************
******************
der Heijden
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The purpose of the GNU Pascal project is to produce a Pascal compile
(called GNU Pascal or GPC) whic
called GNU Pascal or GPC) which
project is to produce a Pascal compiler
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* combines the clarity of Pascal with powerful tools suitable fo
real·life programming
real·life programming,
Pascal with powerful tools suitable for
ler
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* supports both the Pascal standard and the Extended Pascal standar
as defined by ISO, ANSI and IEEE. (ISO 7185:1990, ISO/IE
10206:1991, ANSI/IEEE 770X3.160-1989
10206:1991, ANSI/IEEE 770X3.160-1989)
7185:1990, ISO/IEC
standard
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* supports other Pascal standards (UCSD Pascal, Borland Pascal
Pascal-SC) in so far as this serves the goal of clarity an
usability
usability,
in so far as this serves the goal of clarity and
,
dard
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* may be distributed under GNU license condition
* may be distributed under GNU license conditions
clarity and
,
dard
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* can generate code and run on any computer for which the GNU
compiler can generate code and run
compiler can generate code and run.
puter for which the GNU C
dard
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Pascal was originally designed for teaching. GNU Pascal provides
smooth way to proceed to challenging programming tasks without learnin
a completely different language
completely different language.
ing programming tasks without learning
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
What is the current version of GNU Pascal
=========================================
=========================================
mming tasks without learning
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The last official release is GPC 1.1, based on GCC version 2.6.3
GPC version 1.2, based on GCC 2.7.2 is currently in beta testing
PC version 1.2, based on GCC 2.7.2 is currently in beta testing.
3.
ng
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Where is the GNU Pascal FTP site? WWW
=====================================
=====================================
currently in beta testing.
3.
ng
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The master FTP site for GNU Pascal is kampi.hu.fi GNU Pascal relate
files can be found in
iles can be found in:
for GNU Pascal is kampi.hu.fi GNU Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
ftp://ftp.kampi.hut.fi/jtv/gnu-pascal
ftp://ftp.kampi.hut.fi/jtv/gnu-pascal/
pi.hu.fi GNU Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This site is mirrored on
This site is mirrored on:
tv/gnu-pascal/
pi.hu.fi GNU Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
ftp://sunsite.doc.ic.ac.uk/gnu/pascal
ftp://sunsite.doc.ic.ac.uk/gnu/pascal/
pi.hu.fi GNU Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The latest developer releases can be downloaded from
The latest developer releases can be downloaded from:
Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
ftp://agnes.dida.physik.uni-essen.de
ftp://agnes.dida.physik.uni-essen.de/
nloaded from:
Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Also, we have a homepage on the web
Also, we have a homepage on the web:
e/
nloaded from:
Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://agnes.dida.physik.uni-essen.de/~gnu-pascal
http://agnes.dida.physik.uni-essen.de/~gnu-pascal/
Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Is it compatible with Turbo Pascal (R)
=======================================
=======================================
e/~gnu-pascal/
Pascal related
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GPC is currently *not* a drop-in replacement for Borland's Turb
Pascal (R). It supports a number, but not all of the Borlan
extensions to the Pascal language. There is no replacement for most o
the Borland runtime library functions. GNU Pascal is part of the GN
project, so portability is one of its primary goals. For this reason
non-portable features of Borland Pascal will probably not be include
into GNU Pascal. More information can be found in the section "Borlan
Pascal" of the GPC manual
ascal" of the GPC manual.
mation can be found in the section "Borland
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Installation related question
*****************************
*****************************
on can be found in the section "Borland
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This section discusses some common problems with the installation o
GNU Pascal
NU Pascal.
ion discusses some common problems with the installation of
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Which platforms are supported by GNU Pascal
===========================================
===========================================
s with the installation of
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GPC uses the GCC backend, so it should run on any system that i
supported by GNU CC. This includes a large variety of Unix systems
MS-DOS, OS/2 and Win32. A full list of platforms supported by GCC ca
be found in the file "INSTALL" of the GCC distribution. Not all o
these have actually been tested, but the gpc-1.2 pre-release is know t
run on these platforms
un on these platforms:
tested, but the gpc-1.2 pre-release is know to
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
i486-linux (Linux 2.x, ELF
i486-linuxaou
i486-linuxoldl
i486-freebsd2.
i386-cygwin32 (Windows95/Windows NT
i386-djgppv2 (MS-DOS
i386-emx (OS/2, MS-DOS
mips-sgi-irix5.
mips-sgi-irix5.3
(OS/2, MS-DOS)
ows NT)
-release is know to
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
>>> Ok people - send us your success stories, with canonical machin
name! <<
ame! <<<
people - send us your success stories, with canonical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Which components do I need to compile Pascal source code
========================================================
========================================================
nical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
A complete Pascal compiler system should at least have
A complete Pascal compiler system should at least have:
ical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* The actual compiler, GPC
* The actual compiler, GPC.
ystem should at least have:
ical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* Assembler, linker, librarian and friends
* Assembler, linker, librarian and friends.
least have:
ical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* A C library
* A C library.
nker, librarian and friends.
least have:
ical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* A debugger, if you want to debug your programs
* A debugger, if you want to debug your programs.
have:
ical machine
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
You don't need a C compiler to compile your Pascal programs, but yo
do need it to build the GNU Pascal compiler itself. GNU Pascal versio
1.1 is based on GCC 2.6.3, GPC v1.2 is based on GCC v2.7.2 Any attemp
to build GPC with the wrong version of GCC is bound to fail
o build GPC with the wrong version of GCC is bound to fail.
y attempt
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
For most people, the GNU binutils and GNU debugger (gdb) are a goo
choice, although some may prefer to use vendor specific tools
hoice, although some may prefer to use vendor specific tools.
a good
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Help! linking gpc1 fails: _emit_string_move undefined (and more
===============================================================
===============================================================
good
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
If linking `gpc1' bombs out with an error message that looks lik
this
his:
linking `gpc1' bombs out with an error message that looks like
d
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
ld: Undefined symbo
_emit_string_mov
_emit_string_pa
_maybe_find_function_dat
_dbxout_set_type_statu
_version_fla
*** Error code
make: Fatal error: Command failed for target `gpc1
make: Fatal error: Command failed for target `gpc1'
ks like
d
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
you probably suffer from a VPATH make problem. A few GPC sourc
files have counterparts with identical name in the GCC sourc
directory. When you have built GCC in the GCC source directory and yo
are not using a recent version of GNU make this problem may occur
There are three solutions
here are three solutions:
ion of GNU make this problem may occur.
you
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* Get a recent version of GNU make. Version 3.74 or better is know
to work
to work.
ent version of GNU make. Version 3.74 or better is known
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* Build GCC in a seperate directory instead of using the GCC sourc
directory
directory.
n a seperate directory instead of using the GCC source
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* Manually delete these files from the GCC object directory
* Manually delete these files from the GCC object directory:
source
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
`stor-layout.o dbxout.o expr.o fold-const.o optabs.o convert.o
`function.o setop.o toplev.o
`function.o setop.o toplev.o'
fold-const.o optabs.o convert.o'
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
then resume `make'
then resume `make'.
toplev.o'
fold-const.o optabs.o convert.o'
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
When I build libgpc.a, rts-rt0.c says: SIGXCPU undefined (and more
==================================================================
==================================================================
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Compilation of the runtime system may fail in rts-rt0.c with
message simular to this
essage simular to this:
time system may fail in rts-rt0.c with a
=
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
rts-rt0.c: `SIGXCPU' undeclared (first use this function
or
rts-rt0.c: storage size of `sv' isn't know
rts-rt0.c: storage size of `osv' isn't know
rts-rt0.c: storage size of `osv' isn't known
is function)
a
=
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
If this happens to you, you have to edit the rts/rts-config.h fil
and comment out the last line to
nd comment out the last line to:
e to edit the rts/rts-config.h file
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
/* #undef HAVE_SIGSYS *
/* #undef HAVE_SIGSYS */
to:
e to edit the rts/rts-config.h file
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This will be fixed in a future release
This will be fixed in a future release.
the rts/rts-config.h file
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I'm using unix, and all my Pascal programs have linking problems
================================================================
================================================================
ile
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
A number of unix configurations use their system's linker instead o
GNU ld. Usually, GPC and GCC need a program called `collect2' befor
calling the system's `ld'. `collect2' is installed by GCC, and if yo
only install GPC, it will not find collect2, and use the system linke
directly, which will result in various linker errors. The solution i
to copy `collect2' by hand from the GCC directory to the location wher
`gpc1' lives
gpc1' lives.
ct2' by hand from the GCC directory to the location where
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I do I debug my Pascal programs
===============================
===============================
he GCC directory to the location where
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
To debug your programs, (a) GNU Pascal must be able to generat
executables with debug info for your platform, and (b) you must have
debugger which understands this
ebugger which understands this.
our platform, and (b) you must have a
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* If `gpc -g -o hello hello.p' says: "gpc: -g not supported for thi
platform", then GPC is unable to generate debug info. Usually
installing GAS instead of your system's assembler can overcom
this. When you configure the GCC used for GPC, specif
"-with-gnu-as", and possibly "-with-gnu-ld" and/or "-with-stabs"
More information can be found in "INSTALL" file in the GNU C
source directory
source directory.
an be found in "INSTALL" file in the GNU CC
s".
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* Your system's debugger may not understand the debug info generate
by GNU tools. In this case, installing GDB may help
by GNU tools. In this case, installing GDB may help.
nfo generated
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The bottom line: if you can debug GCC compiled programs, you shoul
be able to do this with GPC too
e able to do this with GPC too.
bug GCC compiled programs, you should
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The GNU debugger (GDB) currently does not have a "Pascal" mode, s
it is unable to display certain Pascal structures etc. When debugging
please note that the Initial Letter In Each Identifier Is In Upper Cas
And The Rest Are In Lower Case. If you want to display variable 'foo
in the debugger, type `show Foo' or `display Foo' instead
n the debugger, type `show Foo' or `display Foo' instead.
able 'foo'
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Can you recommend an IDE
========================
========================
w Foo' or `display Foo' instead.
able 'foo'
e
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Users of Borland Pascal may wonder if there's a replacement for th
IDE (Integrated Development Environment). Here's a few suggestions
DE (Integrated Development Environment). Here's a few suggestions:
he
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* *(X)Emacs*. Some people think it's the answer to the question o
Life, the Universe and Everything, others decide it's uGNUsable
Available from your friendly GNU mirror
Available from your friendly GNU mirror.
decide it's uGNUsable.
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* *XWPE* is an immitation of the Borland IDE, so users of Borlan
Pascal may find it a good alternative
Pascal may find it a good alternative.
IDE, so users of Borland
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Although GDB is an excellent debugger, it's user interface is no
very attractive. Refer to the comp.windows.x FAQ: "Where can I get a
X-based debugger?" at
-based debugger?" at:
to the comp.windows.x FAQ: "Where can I get an
OF Z tY 'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://www.cis.ohio-state.edu/hypertext/faq/usenet/x-faq/part6/faq-doc-2.htm
http://www.cis.ohio-state.edu/hypertext/faq/usenet/x-faq/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Some useful frontends include: XXGDB, tGDB and XWPE. see
Some useful frontends include: XXGDB, tGDB and XWPE. see:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://www.ee.ryerson.ca:8080/~elf/xapps/Q-IV.htm
http://www.ee.ryerson.ca:8080/~elf/xapps/Q-IV.html
see:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Very nice, but resource consuming is the Motif based DDD
Very nice, but resource consuming is the Motif based DDD:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://sol.ibr.cs.tu-bs.de/softech/ddd
http://sol.ibr.cs.tu-bs.de/softech/ddd/
otif based DDD:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Do we have a binary for you
===========================
===========================
de/softech/ddd/
otif based DDD:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Currently, we have binaries for these platforms
Currently, we have binaries for these platforms:
sed DDD:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
i486-linux (ELF
i486-linuxaou
i486-linuxoldl
djgpp V2 (msdos
emx 0.9B (OS/2, msdos
cygwin32 beta16 (Windows95, Windows NT
mips-sgi-irix5.
mips-sgi-irix5.3
(Windows95, Windows NT)
ms:
sed DDD:
/part6/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
New binaries may have been added after the release of this FAQ
New binaries may have been added after the release of this FAQ.
/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GNU Pascal and your system librarie
***********************************
***********************************
fter the release of this FAQ.
/faq-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This section discusses common problems people have when they try t
access their system's libraries
ccess their system's libraries.
problems people have when they try to
-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
How do I use from the C library
===========================================================
===========================================================
ey try to
-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GNU Pascal can use every function of your C library, but it may b
up to you to write declaration of an external function, before you ca
use it. Consider the function `sleep'. man(3) sleep reveals
se it. Consider the function `sleep'. man(3) sleep reveals:
you can
-doc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
NAM
sleep - Sleep for the specified number of second
SYNOPSI
#include 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This small demo program shows how to use `sleep' in a Pascal program
This small demo program shows how to use `sleep' in a Pascal program:
oc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
program SleepDemo
typ
word = __unsigned__ integer
function sleep(seconds: word): word; C
va
result : word
begi
result := sleep(10)
end
--------------------------------------------------------
---------------------------------------------------------
program:
oc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
What's this confusion about Pascal and C style strings
======================================================
======================================================
------
program:
oc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
It is important not to confuse Pascal and C string types
It is important not to confuse Pascal and C string types.
-
program:
oc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* The Pascal string schema, as defined in section 6.4.3.3.3 of th
ISO-10206:1990 Extended Pascal standard, is a record
ISO-10206:1990 Extended Pascal standard, is a record:
3.3 of the
m:
oc-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
type string = recor
Capacity : integer
length : integer
string : packed array [ 1..Capacity ] of char
end
end;
ing : packed array [ 1..Capacity ] of char;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
'string' is not 'string(256)', unlike Turbo Pascal. The capacict
must be declared
must be declared:
ing(256)', unlike Turbo Pascal. The capacicty
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
typ
MyString = string(256)
MyString = string(256);
unlike Turbo Pascal. The capacicty
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
before it can be used, i.e.
before it can be used, i.e.:
;
unlike Turbo Pascal. The capacicty
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
function MyFunction: MyString
function MyFunction: MyString;
Turbo Pascal. The capacicty
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
* A C string ( "char *" ) is an array of char, terminated with
NULL char
NULL char.
( "char *" ) is an array of char, terminated with a
ty
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
C library functions require C, not Pascal style string arguments
Consider this code snippet to convert Pascal style strings to C styl
and vice versa
nd vice versa:
de snippet to convert Pascal style strings to C style
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
typ
word = __unsigned__ integer
TString = string(256); { Pascal string schema
CString = __cstring__; { C style string
{ Convert a "C" string to a "Pascal" string
function StrPas(Src: CString): TString
va
S : TString
begi
S := ''
if (Src <> NIL
then while ( (Src^ <> chr(0)) AND (length(S) < S.capacity)) d
begi
S := S + Src^
inc(Word(Src))
end
StrPas := S
end
{ Convert a "Pascal" string to a "C" string
function StrPCopy(Dest: CString; Src: String): CString
va
c: integer
p : CString
begi
p := Dest
for c:=1 to length(Src) d
begi
p^ := Src[c]
inc(word(p))
end
p^ := chr(0)
StrPCopy := Dest
end
--------------------------------------------------------
---------------------------------------------------------
y)) do
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Then this small example will print the PATH
Then this small example will print the PATH:
--------------
y)) do
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
Program EnvDemo
{ include the above StrPas() and StrPCopy() snippet here
{ C library function prototype: char *getenv(const char *name);
function GetEnv(name : CString): CString; C
va
pName: CString
begi
getmem(pName, 256)
pName := StrPCopy(pName, 'PATH')
writeln('Your PATH is: ', StrPas(GetEnv(pName)))
freemem(pName, 256)
end
--------------------------------------------------------
---------------------------------------------------------
ame); }
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
And this is how you access the 'system()' call in you C library
And this is how you access the 'system()' call in you C library:
}
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
program SysCall
{ include the above StrPas() and StrPCopy() snippet here
function system(name : CString): integer; C
va
pName: CString
result : integer
begi
getmem(pName, 256)
pName := StrPCopy(pName, 'ls -l')
result := system(pName)
writeln('system() call returned : ', result)
freemem(pName, 256)
end
--------------------------------------------------------
---------------------------------------------------------
ry:
}
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
There may be other ways to do the same thing; you could declare
type PChar instead of CString
ype PChar instead of CString:
o the same thing; you could declare a
}
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
type PChar = ^char
type PChar = ^char;
ring:
o the same thing; you could declare a
}
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
and replace all references to `CString' with `PChar'. Do NOT pass
"C" style string as a var-argument if the C prototype says "const cha
*" or you will get a coredump
" or you will get a coredump.
ent if the C prototype says "const char
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
You are right if you think this stuff belongs in a library, to b
distributed with GPC. Have patience, or start coding
istributed with GPC. Have patience, or start coding!
library, to be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Are GNU Pascal objects compatible with GNU C++ classes
=======================================================
=======================================================
rary, to be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
No. (This may change in a future version
No. (This may change in a future version)
===========
rary, to be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Where are the Turbo Pascal (R) replacement units
================================================
================================================
======
rary, to be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
They don't exist (yet). Most of their fuctionality can easily b
implemented, some things are very x86/msdos dependant and would b
meaningless on any other platform
eaningless on any other platform.
86/msdos dependant and would be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
How do I build/use a shared library
===================================
===================================
/msdos dependant and would be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
(topic under construction
(topic under construction)
======
/msdos dependant and would be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GNU Pascal on the djgpp (MS-DOS) platfor
****************************************
****************************************
s dependant and would be
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This chapter discusses some potential problems with GNU Pascal o
MS-DOS, using djgpp
S-DOS, using djgpp.
sses some potential problems with GNU Pascal on
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
If you need more informatio
===========================
===========================
e potential problems with GNU Pascal on
r
ar;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GPC/djgpp is a djgpp V2 application, and most of the djgp
documentation applies for GPC too. A great source of information is th
djgpp FAQ
jgpp FAQ:
on applies for GPC too. A great source of information is the
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://www.delorie.com/djgpp/v2faq/faq202b.zi
http://www.delorie.com/djgpp/v2faq/faq202b.zip
information is the
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Another place to look for DJGPP documentation is the DJGPP Knowledg
Base, at this URL
ase, at this URL:
look for DJGPP documentation is the DJGPP Knowledge
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://www.delorie.com/djgpp/doc/kb
http://www.delorie.com/djgpp/doc/kb/
tation is the DJGPP Knowledge
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
What do I download
==================
==================
rie.com/djgpp/doc/kb/
tation is the DJGPP Knowledge
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
As discussed in section 2.2, other than GPC itself, you need a
assembler, linker and friends, a C library and possibly a debugger
>From your local djgpp mirror, you can get these as
rom your local djgpp mirror, you can get these as:
bly a debugger.
dge
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
v2/djdev200.zip (C library
v2gnu/bnu252b.zip (assembler, ....
v2gnu/gdb412b.zip (debugger
v2gnu/gdb412b.zip (debugger)
....)
as:
bly a debugger.
dge
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The rest is up to you; 'make' (v2gnu/mak372b.zip) can be useful
RHIDE (an IDE with Borland-look) is nice, but still under development
Future releases of RHIDE may have better GPC support
uture releases of RHIDE may have better GPC support.
der development.
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
How do I install the compiler
=============================
=============================
ve better GPC support.
der development.
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
If you don't have djgpp installed on your harddisk, create
directory for GNU pascal ("c:\gpc"), and unzip the archives. Make sur
you preserve the directory structure (use "pkunzip -d"). Now, add th
directory where gpc.exe lives ("c:\gpc\bin") to your path and set th
DJGPP environment variable to point to your djgpp.env file
JGPP environment variable to point to your djgpp.env file:
d set the
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
set DJGPP=c:\gpc\djgpp.en
set DJGPP=c:\gpc\djgpp.env
int to your djgpp.env file:
d set the
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Then, add this to your djgpp.env file
Then, add this to your djgpp.env file:
r djgpp.env file:
d set the
r;
-2.html
'J& pY L& < 'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
[gpc-cpp
C_INCLUDE_PATH=%/>;C_INCLUDE_PATH%%DJDIR%/lang/pascal;%DJDIR%/include;%DJDIR%/contrib/grx20/includ
[gpc
COMPILER_PATH=%/>;COMPILER_PATH%%DJDIR%/bi
LIBRARY_PATH=%/>;LIBRARY_PATH%%DJDIR%/lib;%DJDIR%/contrib/grx20/li
--------------------------------------------------------
---------------------------------------------------------
grx20/lib
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The binary distribution should come with a `djgpp.env' which i
already modified, so you may not have to do this
lready modified, so you may not have to do this.
pp.env' which is
0/lib
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Specific information for low-memory conditions and more can be foun
in the djgpp FAQ and documentation
n the djgpp FAQ and documentation.
ry conditions and more can be found
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
GPC says: no DPM
================
================
nd documentation.
ry conditions and more can be found
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
You don't have a DPMI server installed, and DJGPP v2 requires it t
run. You can either use one of the commercial DPMI servers (e.g., ru
`gpc' in a DOS box under Windows) or download and install CWSDPM
(`csdpmi3b.zip') which is a free DPMI server written for DJGPP
`csdpmi3b.zip') which is a free DPMI server written for DJGPP.
I
run
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I cannot read the info pages
============================
============================
ee DPMI server written for DJGPP.
I
run
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
To read the info pages, you need the `info' program from txi360b.zip
At least for some of the pre-releases of gpc-1.2, the gpc.info file i
invalid: it refers to the "gpc.i*" sections as "gpc.info-*". This can b
fixed by loading gpc.inf in an editor and replacing "gpc.info-*" wit
"gpc.i*
gpc.i*"
loading gpc.inf in an editor and replacing "gpc.info-*" with
be
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I have troubles with assembly cod
=================================
=================================
or and replacing "gpc.info-*" with
be
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
The GNU Assembler (`as.exe'), or `gas', called by GCC accepts "AT&T
syntax which is different from "Intel" syntax. Differences ar
discussed in section 17.1 of the djgpp FAQ
iscussed in section 17.1 of the djgpp FAQ.
x. Differences are
s "AT&T"
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
A guide is available which was written by Brennan Mr. Wacko Underwoo
and describes how to use inline assembl
programming with DJGPP, at this URL
rogramming with DJGPP, at this URL:
how to use inline assembly
derwood
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
http://www.rt66.com/~brennan/djgpp/djgpp_asm.htm
http://www.rt66.com/~brennan/djgpp/djgpp_asm.html
assembly
derwood
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Section 17.3 of the djgpp FAQ discusses some methods to conver
"Intel" syntax to "AT&T"
Intel" syntax to "AT&T".
pp FAQ discusses some methods to convert
rwood
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Tell me how to do DPMI, BIOS and other DOS related things
=========================================================
=========================================================
convert
rwood
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
DPMI, BIOS and other functions are no different than other syste
functions. Refer to section 3.1 how to access your system's C-library
This small example shows how to use DPMI, copying some structures an
function prototypes of
unction prototypes of :
se DPMI, copying some structures and
d
e;%DJDIR%/contrib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
--------------------------------------------------------
program dpmitest
{$X+
typ
word = __unsigned__ integer
short = __short__ integer
byte = __byte__ integer
typ
PDpmiVersionRet = ^TDpmiVersionRet
TDpmiVersionRet = recor
major : byte
minor : byte
flags : short
cpu : byte
master_pic : byte
slave_pic : byte
end
typ
PDpmiFreeMemInfo = ^TDpmiFreeMemInfo
TDpmiFreeMemInfo = recor
largest_available_free_block_in_bytes : word
maximum_unlocked_page_allocation_in_pages : word
maximum_locked_page_allocation_in_pages : word
linear_address_space_size_in_pages : word
total_number_of_unlocked_pages : word
total_number_of_free_pages : word
total_number_of_physical_pages : word
free_linear_address_space_in_pages : word
size_of_paging_file_partition_in_pages : word
reserved1 : byte
reserved2 : byte
reserved3 : byte
end
function DpmiGetVersion(ret: PDpmiVersionRet): integer
asmname '__dpmi_get_version'
function DpmiGetFreeMemoryInformation(info: PDpmiFreeMemInfo): integer
asmname '__dpmi_get_free_memory_information'
va
version: TDpmiVersionRet
meminfo: TDpmiFreeMemInfo
begi
DpmiGetVersion(@version)
writeln('CPU type : ', version.cpu, '86')
writeln('DPMI major : ', version.major)
writeln('DPMI minor : ', version.minor)
DpmiGetFreeMemoryInformation(@meminfo)
writeln('Free DPMI memory : ', meminfo.total_number_of_free_pages, ' pages.')
end
--------------------------------------------------------
---------------------------------------------------------
ree_pages, ' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I'm accessing an "array[1..4000000] of byte" and I got an exception
===================================================================
===================================================================
ges, ' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Per default, the maximum stack size of a djgpp application is 256K
If you need more, you have to adjust it with the stubedit program, i.e.
f you need more, you have to adjust it with the stubedit program, i.e.:
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
stubedit your_app.exe minstack=5000
stubedit your_app.exe minstack=5000K
th the stubedit program, i.e.:
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Still, it might be a good idea to use pointers for this kind o
structures, and allocate the memory at runtime
tructures, and allocate the memory at runtime.
s for this kind of
i.e.:
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Getting Hel
***********
***********
nd allocate the memory at runtime.
s for this kind of
i.e.:
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This section discusses ways to get help with GNU Pascal. Please rea
the documentation (info files, readme's) that come with GPC, plus othe
docs that might help (the djgpp FAQ if you use djgpp etc.) before yo
send email to the maintainers or mailing list
end email to the maintainers or mailing list.
djgpp etc.) before you
r
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Help! the compiler crashed
==========================
==========================
s or mailing list.
djgpp etc.) before you
r
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
If the compiler crashes, you have discovered a bug. A reliabl
compiler never crashes. To help the maintainers fix this bug, it i
important that you send us a problem report
mportant that you send us a problem report.
rs fix this bug, it is
u
r
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I think I found a bug - now what
================================
================================
em report.
rs fix this bug, it is
u
r
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Bugs are best reported to the GPC mailinglist, gpc@hut.fi. Tha
way, they always reach the maintainers. Try to give as much informatio
as possible, plus a short code snippet that triggers the compiler bug
If you're on unix, you can find out where the compiler crashed if yo
enable coredumps, then load the compiler (gpc1) plus the core file i
the debugger ("gdb /your_path_here/gpc1 core"), then type `backtrace
to get a stacktrace. Include this stacktrace in your bug report
o get a stacktrace. Include this stacktrace in your bug report.
ace'
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Which newsgroup(s) are suited for GPC related problems
======================================================
======================================================
report.
ace'
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
There are several Pascal related newsgroups, but none is dedicate
just to GNU Pascal. This one may be useful
ust to GNU Pascal. This one may be useful:
ps, but none is dedicated
' pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
comp.lang.pascal.misc Pascal in general and ungrouped Pascals
comp.lang.pascal.misc Pascal in general and ungrouped Pascals.
pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Pascal syntax related questions may be appropriate in
Pascal syntax related questions may be appropriate in:
ngrouped Pascals.
pages.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
comp.lang.pascal.ansi-iso Pascal according to ANSI and ISO standards
comp.lang.pascal.borland Borland Pascal questions
comp.lang.pascal.borland Borland Pascal questions.
nd ISO standards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
How to post to the mailing lis
==============================
==============================
Borland Pascal questions.
nd ISO standards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
You can send a message to the GPC mailing list by sending email t
the list address as if it were a person
he list address as if it were a person.
ending email to
andards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
How to become a subscriber to the mailing lis
=============================================
=============================================
erson.
ending email to
andards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
You can join the mailing list by sending a message t
(NOT !) with your request to be adde
to the list. Maintenance is done by hand, so some delay is possible
o the list. Maintenance is done by hand, so some delay is possible.
ed
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
How to unsubscribe from the mailing lis
=======================================
=======================================
so some delay is possible.
ed
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
To leave the mailing list, send a message to
To leave the mailing list, send a message to .
d
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Miscellaneou
************
************
e mailing list, send a message to .
d
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
I want to contribute; where do I start
======================================
======================================
sage to .
d
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
A list of jobs which should be done for GNU-Pascal can be found i
the section "How to contribute of the Texinfo deocumentation. In case
where somebody is already working on a topic, the name of that perso
is written behind the job's description
s written behind the job's description.
pic, the name of that person
s
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This does not mean that you shouldn't do that but just that yo
should get in contact with that person if you would like to contribut
to that field
o that field.
ontact with that person if you would like to contribute
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
About this FAQ
==============
==============
ntact with that person if you would like to contribute
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Maintainer: J.J. van der Heijde
if you would like to contribute
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
This is the first incarnation of the GNU Pascal FAQ list. Comment
about, suggestions for, or corrections to this FAQ list are welcome
bout, suggestions for, or corrections to this FAQ list are welcome.
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Please make sure to include in your mail the version number of th
document to which your comments apply (you can find the version at th
beginning of this FAQ list)
eginning of this FAQ list).
ts apply (you can find the version at the
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
Much of the info in this FAQ list was taken from the gpc mailin
list traffic, so you may have (unbeknownst to you) contributed to thi
list
ist.
raffic, so you may have (unbeknownst to you) contributed to this
dards.
es.');
trib/grx20/include
'J& pYd' : 'J&J& > 'J& (J&
3 ' :8 *J& (J&J& WriteString &4 : 'J& pY ' :8 'J& p p p p p p p p p p p p p p p p p p p p &
---
"Nothing shocks me, I'm a scientist", Indiana Jones
J.J. van der Heijden (j.j.vanderheijden@student.utwente.nl)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es