Subj : [FAQ] mini-FAQ V2.03 - essential reading for those new to the newsgroup
To   : All
From : Robert AH Prins
Date : Fri May 04 2012 01:12 pm

From: Robert AH Prins <[email protected]>

Subject: CLPB Mini FAQ

Archive-name: pascal/borland-minifaq
Posting-Frequency: Every month
Last-modified: 2012-02-04
Version: 2.03

This document is (in general) posted every month as an aid to new
readers of these Newsgroups. It provides background knowledge of the
group, answers to the most frequently asked questions, a listing of
Pascal resources and netiquette in posting to the groups. Please do
take the time to read through this information.

Changes to the FAQ, giving a new version number will have a # in the
first column for the life of the version.

**********************************************************************

This is the comp.lang.pascal.borland Mini-FAQ, created by Tom Wheeley.
It was maintained by Chris Mathews until Feb 1998 and by Pedt Scragg
until February 2003. It's currently maintained by Robert AH Prins
<mailto:clpbfaq at prino dot net>.

You can avoid seeing this Mini-FAQ again by killfiling on
'[FAQ] mini-FAQ V' _and_
'- essential reading for those new to the newsgroup'

**********************************************************************

Contents:
   0  Dead links in the FAQ

   1  What is comp.lang.pascal.borland?
     1.1  History of the Group
     1.2  Posting Guidelines

   2  Where can I find {more?} Information - Pascal FAQ's?
     2.1  FTP sites
     2.2  Notable sources of information
     2.3  Uploading your masterpieces to an FTP site

   3  Very Frequently Asked Questions.
     3.1  Pointers to info for assorted questions
     3.2  Request for answers

   4  Compiler and unit downloads
     4.1  Borland compilers for download
     4.2  Replacement units for download
       4.2.1  Replacement SYSTEM units available for download
       4.2.2  Replacement CRT units available for download
       4.2.3  Replacement OVERLAY unit for download
       4.2.4  Emulator sources for download

   5  Using Borland compilers on modern Operating Systems
     5.1  Windows 64-bit
     5.2  Linux
     5.3  Virtual Machines

   APPENDIX A - FTP site mirrors
   APPENDIX B - Credits
**********************************************************************
0.  Dead links in the FAQ
**********************************************************************

  This FAQ contains a number of links that are dead. They are marked
  with (*W*) and by putting the URL into the search box on the
  Internet Archive website, http://www.archive.org/ , many of them can
  still be retrieved.

**********************************************************************
1.  What is comp.lang.pascal.borland?
**********************************************************************

  This is the Usenet newsgroup for discussion on Borland Pascal, Turbo
  Pascal and Turbo Pascal for Windows systems.  All users are welcome
  and this group is not moderated.  In order to keep Usenet confusion
  down, we request that you post only questions or discussions
  concerning Pascal on the Borland Pascal compilers.

  You might also be interested in "what are the differences between
  Borland/Delphi/Kylix languages and ISO 7185 standard Pascal", at:

  http://www.moorecad.com/standardpascal/pascalfaq.html

  Please note that Delphi does not belong in this group. There are
  many groups for Delphi discussion. Until the beginning of March
  2005, Prof. Timo Salmi used to post a weekly FAQ regarding the
  newsgroup reorganization of comp.lang.pascal.*. The contents of this
  FAQ can be found as the answer to Q 76 in

    ftp://garbo.uwasa.fi/pc/link/tsfaqp.zip

  Also there is the Turbovision group described as "Borland's text
  application libraries."  It is C-biased, but Pascal does get a
  look-in:

  comp.os.msdos.programmer.turbovision

  Please do not post to the obsolete groups:
    comp.lang.pascal
    comp.lang.pascal.delphi.components

**********************************************************************
1.1 History of the Group
**********************************************************************

  comp.lang.pascal.borland was created by popular vote on
  12 June 1995.
  Historical information on this and other Usenet Pascal newsgroups
  is available from:

    ftp://garbo.uwasa.fi/pc/doc-net/pasgroup.zip

**********************************************************************
1.2 Posting Guidelines
**********************************************************************

  a) "A problem well stated is a problem half solved"  Charles F.
     Kettering

  b) Put as much information as you can in the subject line.
     *Subjects like "help me" or "question about Pascal" are silly.*
     Also note that some newsreaders truncate the subject line early.

  c) If you have used one of the RTE200 patches. You are unlikely to
     get any useful help unless you tell us: whose patch; from where;
     BP/TP; Version Number; Real or Protected Mode; DOS/Win3/Win9x/?;
     and *exactly* what the symptoms were and what the output was.

  d) Usually, it will be sufficient to post to a single one of the
     Pascal groups.  But if you ever need to post to more than one
     group, be sure to use a single cross-posted article rather than
     multiple postings. For more guidelines, see

       http://en.wikipedia.org/wiki/Crosspost

  e) Please do not request the answer to your question solely via
     email! Someone else will be interested and it is only polite to
     the readers of this newsgroup. Remember also that public replies
     are subject to peer review in case corrections and/or additions
     are needed.

  f) A "Thank you" after an answer that solved your query is a lot
     nicer than a TIA. Do you ever give a TIA in real life?

  g) We will not do your homework for you! We will, however, give
     advice on specific topics and look at code that you have a
     problem with. Show us what you have done already and pointers and
     fixes will be forthcoming. Don't just post your assignment!

  h) Be aware of limits. Try to keep your posting text lines to 72
     characters or FEWER. If you use more, your posts may well look
     messy when quoted.

  i) Please ignore trolls who post or crosspost articles of an
     inflammatory nature deliberately to try and cause mischief for
     the group. Watch out for Follow-up: headers set to a different
     group - your reply then goes to the other group and not
     comp.lang.pascal.borland.

  j) *Binaries must NOT be posted to this group.*  Nor MIME
     Attachments. (Especially nasty are those mailers which convert '='
     to '=3D', a very bad thing to do to *any* Pascal source code.)

     If you are wondering *why* binaries are banned, read this:
       http://lipas.uwasa.fi/~ts/http/nobin.html

     The rest of that very useful FAQ is worth a read also. You can
     find it here:
       http://lipas.uwasa.fi/~ts/http/tsfaq.html

     If you want to distribute binaries or large source files then you
     could upload it to your own web site or to one of the FTP sites.
     See the section

      'Uploading your masterpieces to an FTP site'.

  k) Do not post material that is not already in the public domain,
     unless you have permission from the owner. If in doubt, quote
     part of it and provide a link to the original.

  l) Expressly forbidden is posting of any commercial material, for
     example Turbo Pascal 7, or even just GRAPH.TPU. *This is illegal*
     Do not even ask for these. Contact Borland if you have a problem.
     Borland have released TP V1, V3.02 and V.5.5 for download. See
     http://edn.embarcadero.com/museum/antiquesoftware - you may have
     to register.

  m) Please, when replying to an article, only quote *as much as
     needed* to show the context of your answer.

  n) Post your comments or answer *below* the previous poster's text
     as this is both basic Netiquette and a valuable aid to keep track
     of the thread.

  o) When posting problem code, please keep to the problem areas and
     their context *and* show Var and Type declarations that are
     involved.

  p) Please indent your code, it may make postings a fraction bigger,
     but it will increase the readability by an order of magnitude!

     One indenter can be found on John Stockton's site,
     http://www.merlyn.demon.co.uk/programs/clean-tp.pas

     John's program only changes indentation, nothing else!

     Other fuller featured pretty-printers are available on Garbo:
     ftp://garbo.uwasa.fi/pc/goldies/bp7sb101.zip
     ftp://garbo.uwasa.fi/pc/turbopas/bp7sb104.zip
     ftp://garbo.uwasa.fi/pc/turbopas/epb256.zip
     ftp://garbo.uwasa.fi/pc/turbopas/tpbeaut.zip

     For on-the-fly beautification of your Pascal programs and use of
     higher resolutions than those offered as standard (up to 132x60),
     you may want to have a look at Alexander Petrosyan's "Borland
     Pascal Autocorrector". It's here: http://paf.design.ru/bpr.html

  q) Do *NOT* post in HTML format. Make sure you post only plain text.

  r) Do *NOT* add source code using an attachment - merge your source
     into the text of the article you are posting.

  s) Please do not post source code that runs into many hundreds or
     thousands of lines of code, the place for such code is on the Web
     or at an FTP site.

  t) If you want to post a follow-up via groups.google.com, don't use
     the broken "Reply" link at the bottom of the article.  Click on
     "show options" at the top of the article, then click on the
     "Reply" at the bottom of the article headers." - Keith Thompson

**********************************************************************
2.  Where can I find more information?
**********************************************************************

  Pascal FAQs:
   - The infamous, ubiquitous, mandatory and downright useful Timo
     Salmi's 'Common Turbo Pascal Questions and Timo's answers' is
     available at ftp://garbo.uwasa.fi/pc/link/tsfaqp.zip
     Note that this runs to over 150 questions and answers and a list
     of Question Titles is posted monthly to comp.lang.pascal.borland
     Be aware that it was last updated way back in January 2000...

   - Jon Shemitz' original comp.lang.pascal FAQ
     http://www.midnightbeach.com/jon/pubs/clp-faq.htm

   - Pascal Turbo Vision FAQ
     http://www.zeta.org.au/~grove/pasfhome.html (*W*)
     A copy of this (not-updated-since-1995) FAQ can be found on the
     pages of Dr John Stockton
     http://www.merlyn.demon.co.uk/oldpfaqs/pastvfaq.txt

  Learning Pascal

   - If you are beginning Pascal, or want to learn some new
     techniques, you could do far worse than take a look at Glenn
     Grotzinger's TP Tutorial, in section 2.2

**********************************************************************
2.1   FTP sites: See Appendix A for *some* mirrors
**********************************************************************

'Garbo'   The primary Turbo Pascal source/unit site.
          ftp://garbo.uwasa.fi/pc/   {turbopa* directories}
          http://garbo.uwasa.fi/

'Oulu'    Lots of files related to game (and demo?) programming.
          ftp://x2ftp.oulu.fi/pub/msdos/programming/ (*DEAD?*)

'Simtel'  Enormous MS-DOS archive
          ftp://ftp.simtel.net/pub/simtelnet/
          http://www.simtel.net/

TV site   Turbovision source/applications ?
          The old Turbo Vision site is gone, try Google:
          http://www.google.com/search?q=%22turbo-vision%22

These may be referred to by the name in the left hand column, both in
this FAQ and on the newsgroup.  For Simtel and Garbo at least, the
contents of the primary site are mirrored in a number of locations
throughout the world. Please use a mirror site close to you if
possible both to save load on the primary site and to keep the
distance between you and the download site as short as possible. Info
on Garbo and Simtel mirrors is in Appendix A.

**********************************************************************
2.2   WWW sites
**********************************************************************

  If you have a Web site concentrating on Pascal (esp. Borland), then
  why not get it added to the list in the FAQ?  Just send the URL and
  a short description to me, <mailto:clpbfaq at prino dot net>.

----------------------------------------------------------------------
  Pascal Central

    http://pascal-central.com/

  The intent of Pascal Central is to provide the Pascal community one
  place to obtain Pascal technical information, Pascal source code and
  Pascal-related internet links. Mainly Pascal for the MAC.

----------------------------------------------------------------------
  Franz Glaser's TP Links

    http://www.geocities.com/SiliconValley/2926/tp.html (*W*)

  Franz Glaser had a very large number of resources available to Pascal
  programmers available from the links page listed. Included a full set
  of resources for the RunError 200 problem, which is a VFAQ in clpb.

  An alternative for GeoCities sites is to use www.reocities.com. It
  (seems to) work(s) for Franz Glaser's site.

----------------------------------------------------------------------
  * SWAG.
  Available from Garbo and Simtel directory turbopas/
  get swaga-c.zip...swags-z.zip + swag.zip.

  A free archive of Turbo Pascal code, produced by the 'Source Ware
  Archival Group'.  Note that the download is ~5Mb

  Many people would consider SWAG essential before posting here!

  The last SWAG Archive update SWAG9711.ZIP contains a new file:
  LASTSWAG.TXT. They've decided to cease the current distribution and
  move to a web-based library concentrating on Delphi.

  The whole archive is now available on-line in HTML format at
  http://www.bsdg.org/swag/index.html (*W*)
  http://www.kd5col.info/swag/index.html

----------------------------------------------------------------------
  Coders Knowledge Base

   http://www.netalive.org/forums/programming

  Aims to be the successor to SWAG but information quality is quite
  variable at the present time.

----------------------------------------------------------------------
  Ralf Brown's Interrupt List (Also known as RBIL)

  The man himself:
  http://www-2.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html

  ftp://garbo.uwasa.fi/pc/programming/inter61a.zip
  inter61a.zip x86/MS-DOS Interrupt List, 1/4, Ralf Brown, impressive

  ftp://garbo.uwasa.fi/pc/programming/inter61b.zip
  inter61b.zip x86/MS-DOS Interrupt List, 2/4, Ralf Brown, impressive

  ftp://garbo.uwasa.fi/pc/programming/inter61c.zip
  inter61c.zip x86/MS-DOS Interrupt List, 3/4, Ralf Brown, impressive

  ftp://garbo.uwasa.fi/pc/programming/inter61d.zip
  inter61d.zip x86/MS-DOS Interrupt List, 4/4, Ralf Brown, impressive

  ftp://garbo.uwasa.fi/pc/programming/inter61e.zip
  inter61e.zip Utility programs/source code for interrupt list, R.Brown

  ftp://garbo.uwasa.fi/pc/programming/inter61f.zip
  inter61f.zip WinHelp conversion programs for interrupt list, R.Brown

  An on-line fully-indexed HTML version can be found here:
  http://www.ctyme.com/rbrown.htm

  284031 Apr 15 1991 ftp://garbo.uwasa.fi/pc/programming/helppc21.zip
  helppc21.zip Advanced Programmer's Quick Reference Utility (good)

----------------------------------------------------------------------
  The PCGPE 'PC Games Programmers Encyclopaedia'

    http://www.filewatcher.com/_/?q=pcgpe10.zip

  Version 1 contains lots of information on interfacing with games
  related hardware - Mouse, joystick, Sound Cards, VGA specs.
  Useful software techniques include BSP trees, 3d algorithms, a
  starfield sim and fire effects.  gfx file formats included too.

  Includes Assembly and VGA tutorials by Asphyxia and VLA.

  Thankfully, the author is a Pascal aficionado and so most of the
  code is in Pascal or Pascal-style pseudocode.  It also focusses on
  techniques, rather than doling out code or units, aiding
  understanding.

----------------------------------------------------------------------
  Glenn Grotzinger's Turbo Pascal Tutor

    ftp://garbo.uwasa.fi/pc/turbopas/tptutr11.zip

  This tutor was written and posted to the comp.lang.pascal.borland
  newsgroup.  It contains tutorials, exercises and answers for all the
  major areas in Turbo Pascal and most of the niches too.

----------------------------------------------------------------------
  About.Com Pascal Programming Guide, Amit Chattopadhyay

    http://search.about.com/fullsearch.htm?terms=pascal&IAM=URL_pascal

  A fairly comprehensive portal site to popular Pascal source code,
  documents, tutorials and programming resources. Features weekly
  articles, chat area and discussion forum.

----------------------------------------------------------------------
  Pascal.Sources.Ru, Valery Votintsev

    http://pascal.sources.ru/

  A big _RUSSIAN_ language site with a very large amount of Pascal
  material, including a Russian version of SWAG, which contains a
  substantial number of snippets that are not in SWAG.

----------------------------------------------------------------------
  Bug Lists

  Believe it or not, your favourite Borland products are not 100%
  perfect.

  Turbo Pascal 6
  ftp://garbo.uwasa.fi/pc/turbopa6/tp6bugs7.zip

  Borland Pascal 7
  ftp://garbo.uwasa.fi/pc/turbspec/bp7bugs2.zip

  TurboVision (possibly newer versions of Brad Williams's TV bug list)
  ftp://garbo.uwasa.fi/pc/turbovis/tvbugs31.zip

**********************************************************************
2.3   Uploading your masterpieces to an FTP site
**********************************************************************

  If you upload your splendid TPU, program or source code, then it
  doesn't clutter up the newsgroup and will be publicly available for
  longer.

----------------------------------------------------------------------
  Garbo
  Make sure you get these files:
    ftp://garbo.uwasa.fi/pc/UPLOAD.TXT   (Info on uploading)
    ftp://garbo.uwasa.fi/pc/UPTEXT.TXT   (Questionnaire to fill in)
  And remember to send an e-mailed announcement!

  If you upload a unit, then you *must* also send a small
  demonstration source program which uses your unit.  You do not have
  to send the actual source to your unit if you do not wish to.

----------------------------------------------------------------------
  Simtel
  Can authors of ShareWare, FreeWare and Public Domain programs upload
  their programs to Simtel?

  Yes. For details send e-mail to [email protected] with this
  command in the body of the message: get upload.info

----------------------------------------------------------------------
  More could well follow.  There are {nearly!} always helpful pointers
  at other ftp sites saying what you should do.  If in doubt, there
  may be a .message in an incoming directory or you could politely
  mail the site.

**********************************************************************
3. Very Frequently Asked Questions.
**********************************************************************

  Why do fast CPUs (Celeron, Pentium II and >200MHz) give problems
  with Crt.Delay?

  A problem may occur with a PP-200 (or better) CPU in that Runtime
  Error 200 is generated in the start-up code of the CRT unit. This is
  caused by division of a large number by 55 whose result won't fit
  into a 16 bit register; the CPU generates an 'overflow' exception/
  interrupt which is interpreted by the system library as "divide by
  zero" exception/interrupt.

  See Timo Salmi's FAQ #124 for details.

  See Section 4.2 for replacement CRT units available for download.

  Frank Heckenbach's remedy, for TP/BP 7.00/7.01, is
  available at
    http://fjf.gnu.de/bp-progs.html#NewDelay (*W*)

  Or Roger Donais's remedy : Those without source, compiling DOS real
  mode programs may find RDELAY.ZIP useful
    ftp://ftp.uwasa.fi/pc/turbopas/rdelay10.zip

  It contains source for a Turbo 4.0 through 7.0 compatible unit
  designed to prevent the "Divide by 0" error encountered on fast
  machines.

  Osmo Ronkanen has produced a Loader program for those programs that
  cannot be patched. His newsgroup posting is available from
    ftp://garbo.uwasa.fi/pc/turbopa7/tfix.zip

  There was a related problem in earlier TP version when the
  initialisation code calibrated the delay to be too short without
  generating an error. Frank Heckenbach's page has a fix and also see
  Timo Salmi's FAQ, article #67. The replacement CRT units from Pedt
  Scragg and Robert Prins also address the problems with the
  incorrect delay on processors >200MHz for TP V5.0, V5.5 and V6.

  Franz Glaser had collected a large number of patches for this and
  they can be found via

    http://www.geocities.com/SiliconValley/2926/tp.html (*W*)
    http://www.reocities.com/SiliconValley/2926/tp.html

  Andreas Bauer has produced a patch for an executable program.
  Available from
    ftp://garbo.uwasa.fi/pc/turbopa7/tppatch.zip

  This program can be installed as a tool in the Pascal IDE:
    ~B~auer's TPPATCH / TPPATCH / $EXENAME

  You can check by compiling to disk and running a program using Alt-R
  R that uses a non-fixed CRT unit. After the RTE200, use Alt-T B then
  run the program again - the error will be fixed.

  Further discussions of timing and delays can be found in Prof.
  Salmi's TurboPascal FAQ, in Kris Heidenstrom's Timing FAQ,
  ftp://garbo.uwasa.fi/pc/programming/pctim003.zip
  in the newsgroup comp.lang.pascal.borland - *read previous posts
  first*, and at http://www.merlyn.demon.co.uk/pas-wait.htm

  There has been a tentative suggestion that >450MHz CPU's could give
  problems with *some* of the fixes available. This seems to be, at
  the time of writing, affecting the programs that have used c't
  magazine fix and related ones which patched the code to set the
  divisor to 126 instead of 55. C't have now released a new patch that
  will work above 450MHz. Obtainable from

    ftp://ftp.heise.de/pub/ct/ctsi/ctbppat.zip

  If you do use a fix for this error which does not work then please
  post *which* fix with the file datestamp and place obtained, your
  CPU / OS / Error Message returned.

  Frank Heckenbach's fix is provided with the French TP7.01 free
  download.

  The same problem occurs with the TurboPower OpCrt & TpCrt units. The
  patches that used to be available on their late ftp site have been
  put onto SourceForge. The URL is

    http://sourceforge.net/projects/tpopro/

  and you need to look for bug #955482. (At this moment it is the only
  bug report) The patches are in a (Win)RAR archive.

----------------------------------------------------------------------
  Can I use Long File Names in Turbo Pascal?

  Yes. There are units and source code available for dealing with long
  file names in Turbo Pascal when the program is running in a Win95/98
  DOS box. A full implementation is at

    ftp://garbo.uwasa.fi/pc/turbspec/dos70p20.zip

  Also look at the drop-in replacement by Andreas Killer at

    ftp://garbo.uwasa.fi/pc/turbopa7/lfn110.zip

  One caveat: be wary of mixing LFN files and 8.3 filename.ext - three
  files called "pascal source" "pascal file" and "pascal text" would
  be rendered as "pascal~1" "pascal~2" and "pascal~3". If you delete
  "pascal file/pascal~2" and then copy the directory then "pascal
  text" would have a new short name of "pascal~2" NOT "pascal~3" and
  you program may be referring to "pascal~3"

----------------------------------------------------------------------
  How do I make EXE files with Turbo Pascal?

  In Turbo Pascal, in the compile menu, make sure that the COMPILE TO
  option is set to COMPILE TO DISK. When you compile, make or build
  your program then you will create the file XXX.EXE, where XXX is the
  name of your .PAS file.

----------------------------------------------------------------------
  Will Delphi V2/3/4/5/6/7/.net/D2005 do DOS programs as well as
  Windows?

  Delphi V2 and later are for Windows 9x and Windows NT/XP. They are
  not DOS products. They can create 32-bit console mode apps, but
  they will not create DOS apps.

  If you want DOS apps from a Delphi Product then Delphi V1 can do
  them with some work on the RTL. See

    http://mx1.org.uk/usenet/

  DCC32 -cc program.pas
  is worth trying on some BP/TP programs mainly computational in
  nature.

  There is also wdosx, a winapi emulating dos-extender. Afaik this
  also works for 32-bits Delphi's. [MvdV]

----------------------------------------------------------------------
  Is there a Borland Pascal Mailing list?

  No, there is not.

  There is a mailing list for Virtual Pascal (see below) on Yahoo.
  Read access is here: http://tech.groups.yahoo.com/group/vpascal/
  The old Topica list is still readable at
  http://www.topica.com/lists/virtualpascal/read

----------------------------------------------------------------------
  Is it possible to 'decompile' Pascal EXEs or TPUs?

  No.  Too much information is lost in the compiling process.  For a
  more detailed explanation see Prof. Timo Salmi's FAQ.

  It is possible to get a *reasonable* disassembly to assembly
  language only

  - try http://www.hex-rays.com/idapro/

  The FLIRT technology that comes with IDA will identify most routines
  of the _original_ Borland RTLs. It will 'miss' interrupt routines,
  but due to its interactive nature, these can be added very easily.

----------------------------------------------------------------------
  What were the Borland Pascal Products?

  In essence, Borland Pascal was the 'professional' product, whilst
  the Turbo Pascals were 'hobbyist' products.

  Discontinued versions
    Turbo Pascal 7   (Dos)
    Turbo Pascal for Windows 1.5 (Win)
    Borland Pascal 7 (DOS, WIN 3.1, Pmode)

  Borland Pascal could do everything that both Turbo Pascals could
  do, plus:

  .  Compile for 16 bit DOS Protected mode (less memory constraints)
  .  Full Run Time Library Source code
  .  Lots of assorted debugging and programming tools

  There was an update to TP and BP to v7.01, but this is no longer
  available.  V7.01 still has VER70 defined. If you really want to
  pay big bucks for an old version, you might try here

    http://www.emsps.com/oldtools/borland.htm

  for the possibilities of obtaining a used copy of the various
  versions of the Pascal compilers produced by Borland. You may also
  find copies of BP7 for sale on Ebay at http://www.ebay.com/
  Needlessly to say, there are also other options...

----------------------------------------------------------------------
  Are there any freeware Pascal compilers?

- FPC Pascal
# Free Pascal, now (2012-01-01) at version 2.6.0, is a compiler for
  32-bit and 64-bit CPU architectures such as Intel x86, Amd64/x86_64,
  PowerPC, PowerPC64, Sparc, ARM. The discontinued 1.0 version also
  supports the Motorola 680x0. The following operating systems are
  supported: Linux, FreeBSD, Haiku, Mac OS X/Darwin, DOS, Win32, Win64,
  WinCE, OS/2, Netware (libc and classic) and MorphOS.

# Since August 2011, the compiler is also able to generate byte code
# for a Java Virtual Machine.

  It comes with a cross-platform Run-Time Library, many interfaces to
  existing libraries, and a large set of non-visual classes in the
  Free Component Library. Last but not least, a text-mode IDE exists
  on various platforms, and FPC comes with 1800 pages of documentation.

  The compiler is licensed under the GNU General Public License. The
  Run-Time code is licensed under a modified version of the Library
  General Public License, which allows to use it in a commercial
  application.

  Comes with full Pascal source and compiles itself.

    http://www.freepascal.org/

- GNU Pascal

  GNU Pascal is a portable 32/64 bit compiler system.  It supports the
  language of Borland Pascal V7 as well as ISO Standard Pascal, a
  large subset of ISO Extended Pascal and other extensions (see

    http://www.gnu-pascal.de/gpc/h-index.html

  GNU Pascal is part of the GNU family of compilers, runs on all
  platforms supported by GNU C, including DOS, OS/2 and MS-Windows
  9x/NT, Linux, *BSD and other Unix-compatible systems and can cross-
  compile between these platforms.

  Full C source and precompiled binaries for several platforms are
  available from:

    http://www.gnu-pascal.de/alpha/ (Sources)
    http://www.gnu-pascal.de/binary/  (Binaries)

  There is a GNU Pascal mailing list, [email protected].  To subscribe, write
  an email with the body "subscribe gpc [email protected]" to the
  list robot, [email protected].

  Framework Pascal (Formerly TMT Pascal)

  Framework Pascal, now at Version 6.1, is a 32-bit compiler with Turbo
  Pascal syntax and is quite compatible with Turbo Pascal.

  Framework Pascal is available from

    http://www.frameworkpascal.com/products.htm

- Virtual Pascal

  Virtual Pascal, now at Release V2.1 is free. It fully supports DOS
  and Delphi plus Turbo Vision has been ported to 32 bits. There is
  incomplete support for (x86 architecture only) Linux.

    http://vpascal.ning.com/

  On 22 August 2003 Allan Mertner made the modified-for-VP sources
  of TurboPower's Object Professional libraries available on the VP
  site. Legal uncertainties have led to their removal.

  On 24 August 2003 Allan Mertner announced that he is looking into
  Open Sourcing the compiler. More info and discussion about this
  can be found on the Virtual Pascal mailing list, which is archived
  on Topica, http://lists.topica.com/lists/virtualpascal/read
  A direct link to the post that kicked off the discussion is
  http://lists.topica.com/lists/virtualpascal/read?sort=d&start=2665

  On 3 April 2005, Allan Mertner announced the death of Virtual
  Pascal. He will continue to run vpascal.com for "a few more years",
  but development will cease - the main reason for doing so is the
  fact that the compiler is written in assembler and it cannot
  realistically be changed to add new features. Due to copyright
  restrictions, the source will not be made available. There is a
  small possibility that Allan might produce one more maintenance
  release.

  See Also Section 4 on Borland's release of TP compilers.

----------------------------------------------------------------------
  How should I unsubscribe from the INFO-PASCAL mailing list?

  Send the message "unsubscribe INFO-PASCAL" to

    mailto:[email protected]

  Please do not send such requests (or others) to [email protected]

----------------------------------------------------------------------
  How to use run-time checks?

  The Borland compilers can be set up to trap a substantial number of
  Run-time errors. In the early stages of program development it is
  advisable to enable _ALL_ error-checking options, i.e.

  - $I+ to detect I/O errors
  - $Q+ to detect overflows (BP/TP7 only)
  - $R+ to generate range-checking code
  - $S+ to detect stack overflows
  - $T+ to enable type-checked pointers
  - $V+ to enable strict checking of Var-strings

  The $T+ option is a _compile-time_ error-check. It does not carry
  any run-time overheads!

  Using all of them will in many cases enable you to find problems
  without having to resort to the newsgroup.

  Once a program runs correctly, even with input no sensible user
  would ever enter, you might want to disable all error-checking, with
  the possible exception of I/O checking. However, the high clock
  frequencies of todays CPUs might make the resulting reduction in
  execution time minimal. As an alternative, it might be advantageous
  to put fully debugged, well tested and frequently executed code into
  a separate unit that is compiled without any error-checking.

----------------------------------------------------------------------
  How to use Random/Randomize?

  The Randomize procedure is used to initialize the seed of the random
  number generator (RNG) with a value derived from the system time. It
  should only be called once, at the very start of a program. Calling
  it more frequently, especially in loops on fast CPUs, may result in
  it being re-seeded with the same seed on many iterations, which in
  turn results in the Random() function producing the same 'random'
  number over and over again!

**********************************************************************
3.1   Pointers to info for assorted questions
**********************************************************************

  This section attempts to provide pointers to help and resources for
  some of the other VFAQ's. Any assistance to compile a fuller list
  will be gratefully received.

  Cursor blink problem in Win95 after exiting BPW IDE
    http://www.filewatcher.com/_/?q=tdsvga.zip

  Standalone debugger and profiler do not work under Win95
   File above and use TDWINTH.DLL instead of TDWIN.DLL

  Can I use truetype or other BGI fonts with BP7
    http://www.freetype.org/

http://web.archive.org/web/20030811232215/www.xs4all.nl/~remcodek/fontpage.html

  Where can I find source code for ZIP files
    http://www.foyeh.org/

  Where can I find a replacement for BGI graphics
    http://www.crossfire-designs.de/?lang=en&what=sourcecode
    - see GrafX

  Where can I find a unit to play through a Soundblaster Card
    http://www.crossfire-designs.de/?lang=en&what=sourcecode
    - see SoundLib

  How can I link C code into my Turbo Pascal Program
    http://mx1.org.uk/usenet/c-in-tp.htm

  My computer has more than 64Mb of memory and BP7 will not work
    Add NOVCPI to the DEVICE=EMM386.EXE line in config.sys, config.dos
    and config.win files in the root directory of your boot drive.

  I'm still using Windows 3.1x and TDW has stopped working
    http://mx1.org.uk/usenet/ctl.zip

  My mouse does not work in the IDE under Windows 2000
    Windows 2000 has cut and paste for DOS boxes and this feature is
    enabled by default. Right click the top of your DOS Box, look for
    the 'Edit Options' and uncheck 'QuickEdit Mode' and 'Insert Mode'

  My protected mode Turbo Vision programs crash with Runtime Error 216
    Windows NT4, Windows 2000 and Windows XP programs have problems
    with 16 bit far callbacks for the mouse handler. Recompile
    drivers.pas to use polling instead of being interrupt driven. Copy
    of the fixed drivers.pas
    http://mx1.org.uk/usenet/drivers.zip

    The problem is also present in 32-bit land.

**********************************************************************
3.2  Request for answers
**********************************************************************

  - There seems to be reliable evidence that running BP on very fast
    P4 Windows XP systems causes problems (other than RTE 200). Can
    anyone give any clues as to the source of this problem.

**********************************************************************
4  Compiler and unit downloads
**********************************************************************
4.1  Borland compilers for download
**********************************************************************

  Borland has placed three older versions - V1.0, V3.02 and V5.5 of
  the Turbo Pascal compilers on the Internet for download at

    http://edn.embarcadero.com/museum/antiquesoftware

  As regards any licensing issues, Borland have stated
  "Since the software is old, you can do whatever you want with it.
  You can freely distribute the executable version of programs
  that you develop."

  Brief highlights of the compilers [V3.02 is bug fixed version of
  V3.0 and V7.01 is bug fixed version of V7.0]

  TP V1.0: produces .com files, 64K maximum for code, data and stack
  but you can use the heap for variables.

  TP V3.0: produces .com files, 64K each for code, data and stack.
  Heap can be used. Implements overlays but careful planning needed to
  avoid thrashing the disk. [Hint: Use a RAMdisk]

  Information about the internals of TP 3.01a and a program to generate
  a commented disassembly of that specific version (i.e. *not* the
  version at the Embarcadero site!) can be found at Pascal Dornier's
  site,

    http://www.pcengines.ch/tp3.htm

  TP V5.5: produces .exe files, 64K each for code, any unit, data and
  stack. Heap can be used. Implements decent overlay manager. First TP
  that can use OOP [Object Orientated Programming]. Users of this
  version who need the Delay procedure should read the notes about
  RTE200 in Section 3.

  TP V7.0: OOP plus Turbo Vision and inline assembly language
  available. Users of this version should read the notes about RTE200
  in Section 3.

  Igor Funa has written a TP7 compatible compiler. It comes in two
  versions, a 16-bit one that can be compiled with TP7, and a 32-bit
  version that can be compiled with Delphi 7. Both compilers generate
  only 16-bit code. Some source is avalaible on the site, but the full
  source will set you back USD 149.95. It can be found at

    http://turbopascal.org/

**********************************************************************
4.2  Replacement units for download
**********************************************************************

  Borland made the source of the Run-Time Library (RTL) of its later
  products available to the end user, either for an additional fee or,
  in the case of BP7, as a "bonus" disk.

  Using the source it was theoretically possible to write improved
  units.

**********************************************************************
4.2.1  Replacement SYSTEM units for download
**********************************************************************

   At the moment there are FIVE of them available on Garbo. They are:

  - for TP 5.5:
    ftp://garbo.uwasa.fi/pc/turbopa45/syst55c.zip by James LeMay

  - for TP6:
    ftp://garbo.uwasa.fi/pc/turbopa6/sys60a.zip by James LeMay
    ftp://garbo.uwasa.fi/pc/turbopa6/tpl60n19.zip by Norbert Juffa

  - for TP/BP7:
    ftp://garbo.uwasa.fi/pc/turbopa7/bpl70n16.zip by Norbert Juffa
    ftp://garbo.uwasa.fi/pc/turbopa7/bpl70v20.zip by Robert AH Prins

  The units by James LeMay are just faster, Norbert Juffa's units also
  have an increased smart-link granularity because he split up most of
  the original sources into several parts. However, most notable about
  the Norbert Juffa libraries is the greatly improved 6-byte real
  arithmetic, which is now as IEEE-754 compliant as possible within
  the restrictions of the format. Needlessly to say, Norbert's SYSTEM
  units are also substantially faster than Borlands original versions.

  The unit by Robert Prins is based upon Norbert Juffa's code, but it
  has been enhanced significantly. A few of the major changes are:

  - it is based on the BP 7.01 RTL
  - it requires a 32-bit CPU and a 387 class FPU if FPU datatypes are
    used
  - the code has been made Pentium+ friendlier by replacing most of
    the slower CICS type instructions by their RISC type equivalents
  - the code is even more smart-link friendly
  - both the real (TURBO.TPL) and DPMI (TPP.TPL) libraries include a
    non-RTE200 smartlink-friendly CRT unit
  - both contain a much more smartlink-friendly DOS unit (all original
    get/set routines have been broken in two)
  - the FPU based Trunc, Int and Round functions were made re-entrant

  There is an additional very small "SYSTEM" unit available for BP7,
  but it is stripped down to such an extent that, to quote the author

  "... you can't use all the features that the standard RTL has."

  The name of the archive is BPC-TRTL.ZIP and using Google you should
  have no trouble finding a copy.

  Here's an incomplete list of removed features:

  - All System unit procedures, such as WriteLn
  - All runtime error checks (you have to use {$R-,S-,Q-,I-} mode)
  - Return codes (ignore the runtime error messages that IDE shows)
  - Floating-point data types (you have to use {$N-,E-} mode)
  - Heap manager (allocate memory using DOS calls)
  - String handling routines (including the + operation)
  + Some of the LongInt operations: *, /, shr, shl (they still work
    with Integer)
  + Large variable assignments (that involved a procedure call)

  Also, note that you can't compile programs with debug information
  for standalone debugging. However, you can use the integrated
  debugger, or you can compile your program with the standard RTL for
  debugging (and use TinyRTL after the bugs are fixed). Don't forget
  to save your program before you compile it! The compiler crashes
  with an internal error if you occasionally use some of the removed
  features.

**********************************************************************
4.2.2  Replacement CRT units for download
**********************************************************************

  Following work on a replacement CRT unit to primarily fix the RTE200
  bug in T/BP7, two replacement CRT units are now completed. CRT units
  are included for TP V5, 5.5, 6.0 and 7.0x including protected mode
  units for BP7.0x. Pedt Scragg's ZIP file also includes precompiled
  units for Delphi 1. Robert Prins' unit contains all .OBJ files so
  that users of D1 can roll their own. This unit is included in
  BPL70V20.ZIP.

  The replacement CRT units also include code to allow use of extended
  keys such as F11 and F12 with ReadKey and, if using other than 40x25
  text mode or 80x25,43,50 text mode should not reset text screen to
  80x25.

  Be aware that the unit by Robert Prins (rpcrt100.zip) contains 386
  instructions. It will not run on 8086/88/286 systems, but does not
  test for such systems!

  Pedt Scragg's unit:

  Information at http://mx1.org.uk/crt/ including download links.

  Download directly from:

  ftp://garbo.uwasa.fi/pc/turbopas/crt.zip

  Robert Prins' unit:

  ftp://garbo.uwasa.fi/pc/turbopas/rpcrt100.zip

**********************************************************************
4.2.3  Replacement OVERLAY unit for download
**********************************************************************

  Available on Garbo is a replacement Overlay unit. The unit comes
  with the never-made-available by Borland reconstructed sources of
  the original unit. The file containing the replacement unit also
  contains an improved version of Wilbert van Leijen's OVERXMS.ASM
  source, but not the other files in WvL's original archive!
  Both units contain 386 instructions and both are included in
  BPL70V20.ZIP.

  Download from:
  ftp://garbo.uwasa.fi/pc/turbopa7/over-120.zip
  ftp://garbo.uwasa.fi/pc/turbopas/overxms.zip (WvL's original unit)

**********************************************************************
4.2.4  Emulator sources for download
**********************************************************************

  Borland never made the sources of the hard- and software emulator
  files available. Reconstructed sources, including those of the
  improved version of the hardware emulator by Norbert Juffa, with
  instructions on how to add them to the RTL are also available on
  Garbo:

  ftp://garbo.uwasa.fi/pc/turbspec/em8x-110.zip

  Newer, further optimized and far better commented, versions can be
  found in BPL70V20.ZIP.

**********************************************************************
5  Using Borland compilers on modern Operating Systems
**********************************************************************

  It is possible to use TP/BP and the programs they compile on 64-bit
  versions of Windows and both 32- and 64-bit versions of Linux, but
  it might be more advantageous to use either Delphi (for Windows) or
  FreePascal (for Windows and Linux) to do so.

**********************************************************************
5.1  Windows 64-bit
**********************************************************************

  64-bit versions of Windows XP/Vista/7 no longer support running the
  16-bit programs generated by the various versions of Borland and
  Turbo Pascal. It may be possible to run BP/TP non-Windows programs
  using DOXBox http://www.dosbox.com/ currently at version 0.73, with
  version 0.74 apparently just around the corner.

  Another option, for users of W7 Ultimate is to download the XP
  emulator.

**********************************************************************
5.2  Linux
**********************************************************************

  To run TP/BP and the programs they create on Linux you can use
  DOSEMU http://dosemu.sourceforge.net/

**********************************************************************
5.3 Virtual Machines
**********************************************************************

  A final option, usable for both 64-bit Windows and all versions of
  Linux, it to download a virtualisation program, such as

  - Oracle's VirtualBox http://www.virtualbox.org/
  - Bochs http://bochs.sourceforge.net/

  and run DOS or Windows in a virtual machine.

**********************************************************************
Appendix A - ftp Mirror sites (Choose the closest to you)
**********************************************************************
  Public, authorized Garbo mirror sites:

  From Timo Salmi, 2003-03-07:

  > Garbo's mirrors are hardly relevant in this day and age. The main
  > site is enough.
  > Anyway: http://lipas.uwasa.fi/~ts/garbinfo/garbmirr.html

  Simtel.Net

  Simtel.Net is a worldwide distribution network for Shareware,
  Freeware and Public Domain programs for MS-DOS, Windows 3.x and
  Windows 95/98.

  For a complete Simtel.Net list, send mail to [email protected]
  with body:
      get mirrors.info

  You can also get a list of mirror sites and directory descriptions
  from
      news:comp.archives.msdos.announce
      news:comp.archives.ms-windows.announce

      Look for the subjects
          List of Simtel.Net MS-DOS dirs w/descriptions
          List of Simtel.Net authorized mirror sites

  The Simtel mirrors should also be listed at
  ftp://ftp.funet.fi/pub/mirrors/simtel.net/pub/simtelnet/MIRRORS.TXT

**********************************************************************
  Appendix B - Credits
**********************************************************************
  Scott A. Moore     - Original posting guidelines
  Dr John Stockton   - WWW sites, many corrections/tips
  Prof. Timo Salmi   - Garbo mirrors, corrections
  Anthon Pang        - Beta testing WWW sites
  Keith Petersen     - Simtel.Net information
  Marco van de Voort - Additional FPC info
  Tom Wheeley        - Creator of this FAQ
  Chris Mathews      - Previous maintainer of this FAQ
  Pedt Scragg        - Previous maintainer of this FAQ

  Not forgetting those not mentioned whose contributions have also
  helped to keep the mFAQ up-to-date and useful.
**********************************************************************
  Thank you for reading the Mini-FAQ

  Copies available from
    - ftp://garbo.uwasa.fi/pc/doc-net/faqclpb.zip
    - http://www.merlyn.demon.co.uk/clpb-faq.txt

  Old versions from http://www.merlyn.demon.co.uk/oldpfaqs/

  Comments, additions, alterations and corrections to
  <mailto:clpbfaq at prino dot net>

  Please do not be backward about coming forward if you have additions
  to the mFAQ. All suggestions, broken or amended links, suggestions
  for altering the content of the mFAQ are warmly welcomed.

  This mini-FAQ is (C) Copyright Robert AH Prins 2002-2011 on behalf
  of the newsgroup comp.lang.pascal.borland. Upon change of
  maintainer, the copyright will automatically pass over to the new
  maintainer. Except for the name of the maintainer and dates, the new
  maintainer is not allowed to change any part of this copyright
  notice.

  Verbatim copying and redistribution of an up-to-date version of this
  mini-FAQ or any part of it is permitted and encouraged in any medium
  provided the copyright notice and this notice are preserved.


--- Internet Rex 2.31
* Origin: The gateway at Omicron Theta (1:261/20.999)