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 <j.j.vanderheijden@student.utwente.nl Author: J.J. van der Heijden <j.j.vanderheijden@student.utwente.nl> 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 <j.j.vanderheijden@student.utwente.nl> 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.htm... '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 <insert_your_function_here> 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 <unistd.h unsigned int sleep(unsigned int seconds) -------------------------------------------------------- --------------------------------------------------------- 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 & 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 <brennan@mack.rt66.com> 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 <dpmi.h> unction prototypes of <dpmi.h>: 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 <gpc@hut.fi> as if it were a person he list address <gpc@hut.fi> 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 <gpc-request@hut.fi> (NOT <gpc@hut.fi> !) 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 <gpc-request@hut.fi> To leave the mailing list, send a message to <gpc-request@hut.fi>. 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 <gpc-request@hut.fi>. 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 <gpc-request@hut.fi>. 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 <j.j.vanderheijden@student.utwente.nl j.j.vanderheijden@student.utwente.nl> 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