Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Final(?) update of the mini-FAQ to V2.0

5 views
Skip to first unread message

Robert AH Prins

unread,
Oct 31, 2009, 7:19:28 AM10/31/09
to
Hi all,

I am willing to make one final major update of the mini-FAQ to version
2.0, but to do so I want input on any of the following:

- use of TP/BP under Vista
- broken links
- new versions of compilers

If you posted anything in the past few months, please do so again, make
sure the subject contains "[CLPB V2.0]" and post it to "clpb (a) prino
(d) net"

Robert
--
Robert AH Prins
robert dot ah dot prins on gmail


Marco van de Voort

unread,
Oct 31, 2009, 7:43:21 AM10/31/09
to
On 2009-10-31, Robert AH Prins <spam...@prino.org> wrote:
> I am willing to make one final major update of the mini-FAQ to version
> 2.0, but to do so I want input on any of the following:

(also mailed)


I've no idea what I posted over the years, but here is a quick update on the
foreign compilers. FPC is more alive than ever, the others are a lot quieter than
they used to be. (with VP being close to death)

- FPC Pascal
Free Pascal, now (2009-10-31) at version 2.4.0rc1, is a selfhosting
compiler
for 32/64-bit CPU architectures like x86,Sparc,PPC and Arm as well
as their 64-bit variants. MIPS is missing as of yet.

The language is compatible to Turbo Pascal, Delphi (a mix of d6..d2009),
and partly Metrowerks Pascal. Efforts to interface Objective C with a
Objective Pascal dialect are being done, but are not in releases yet.

The project supports many operating systems: Dos, Linux,
Windows (32-bit/64-bit/ce), OS/2, FreeBSD, Novell Netware and Mac OS X.
(there are more OSes supported in older versions

The FPC distribution 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 2000 pages of
documentation.

A Delphi-like RAD (GUI) development environment is provided by
the sister project Lazarus.

The compiler and Lazarus IDE is licensed under the GNU General Public
License. The Run-Time code and other libraries 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/
http://lazarus.freepascal.org

- Virtual Pascal

The vpascal.com domain is dead, the topica links still work.

Allan has made clear that the source won't be opened, and only minor
fixes will be made. About an half year ago, there was talk about reissuing
the last release with accumulated fixes, but that seems to have stalled.

There is a forum at http://vpascal.ning.com and Allan also monitors it.

- GNU Pascal

The GNU Pascal paragraph is so general it is still up to date. The last
GPC "release" is from 2005, but sometimes new snapshots are uploaded,
and when I look at the gcc versions they are not that old. The maillist
is a lot quieter though.

- TMT pascal

has been renamed to Framework Pascal and is available from:

http://www.frameworkpascal.com/

I'm not in contact with them, and don't know exact status. The most recent
release is of februari 2008, and the whole site has a (c) 2008 and at least
one dead link.

- Delphi

Delphi versions of D2009 and higher switched to Unicode. The main risk of
this for TP migration purposes is that the type "CHAR" is now 2byte, and one
needs to substitute "char" with "ansichar" everywhere.

Rugxulo

unread,
Dec 23, 2009, 12:19:56 AM12/23/09
to
Hi,
Not sure if what I have to say is too useful (esp. since I don't
grok Pascal), but it's not like there's tons of traffic anyways,
so ....

On Oct 31, 5:43 am, Marco van de Voort <mar...@stack.nl> wrote:


> On 2009-10-31, Robert AH Prins <spamt...@prino.org> wrote:
>
> > I am willing to make one final major update of the mini-FAQ to version
> > 2.0, but to do so I want input on any of the following:
>

> - FPC Pascal
>   Free Pascal, now (2009-10-31) at version 2.4.0rc1 supports many operating systems:


> Dos, Linux, Windows (32-bit/64-bit/ce), OS/2, FreeBSD, Novell Netware and Mac OS X.
>   (there are more OSes supported in older versions

From what I've heard, DOS support is much better (2.2.0 regressed a
bit). It uses its own runtime lib using "GO32", and the IDE (even
supported on DOS) has part of the compiler built in. However, the OS/2
port no longer is based much (if at all) on EMX (1.0.10), hence it
won't run in DOS anymore. Doesn't need GCC, but it does use GNU AS and
LD.

> - Virtual Pascal

Veit Kannegieser released at least two versions of his DPMI / DOS add-
on support for this. The best (only?) example is Necromancer's DOS
Navigator (which has links to the runtime and some updated tools, e.g.
PE2LE/PE/ELF) maintained by Stefan Weber (et al). Japheth's HX can
allegedly run VPC (except debugger) in DOS if you set your "FILES="
high enough.

http://ndn.muxe.com

> - GNU Pascal

Last "official" release I know of was based upon (and needs part of)
GCC 3.4.4. It's written in C, and I think it uses the default C
library (unlike FPC).

> - TMT pascal

Doesn't seem abandoned but not necessarily updated either (MMX and
3dnow! is not exactly everything anymore). Also, the lite version
seems no longer freely available.

> - Delphi
>

Ever since the Borland compiler / IDE junk got spun off and bought out
by Embarcadero from Code Gear, it seems the 2006 freeware versions of
their Turbo products disappeared. (They didn't install on Vista for
me, at least TC++ 2006, anyways.)

Speaking of Vista, it's not quite obsolete, but Win7 has displaced it
as the "new toy". But even that (NT 6.1) is based upon Vista (NT 6.0).

The only obvious things you may want to know about DOS, Vista (et al):

* no full-screen or gfx DOS support in Vista (except maybe
unofficially with XP drivers, which disables Aero)
* DPMI bugs (esp. default limit, only can be manually fixed in Vista
SP1; 2k3 can't be fixed at all)
* LFNs mostly work in 2k, XP, Vista (with some bugs); NT 4.0 needs
NTLFN (TSR / DLL); DOS needs DOSLFN
* no VCPI, EMS, or XMS 3.0 (only very limited XMS 2.0 support), but
see EMSmagic (DOS TSR)
* no NTVDM at all on x86-64 (which probably all Windows will become
eventually)
* DOSBox will run DOS gfx and sound but no LFNs and is technically
"only for games"
* DOSBox is too slow to run any compilers under (esp. GCC), needs a
fast cpu just to emulate a 486
* DOSBox can run Win3.1, though, as can DOSEMU (except not with
FreeDOS ??)
* DOSBox can take screenshots, slow down emulation (for timing bugs),
capture sound or video, etc.
* VirtualBox (based upon QEMU) is good / fast, but it has wimpy /
buggy DOS support (and no SB emulation)
* DOSEMU + FreeDOS runs fast and well (with its own DPMI host) even on
x86-64
* QEMU is fairly slow (although KQEMU helps), somewhat better than
VirtualBox in DOS compatibility
* WinXP is pretty much obsolete in MS' eyes, and you can't even
upgrade to Win7 without a clean install
* all Windows only support DPMI 0.9, which means no mixing of 16-bit
and 32-bit DPMI apps at the same time
* almost all DJGPP-based apps (except graphical, e.g. RHIDE) seem to
run fine in Vista, though

Hope this helps a little! (Sorry I'm late!) :-)

Rugxulo

unread,
Dec 23, 2009, 1:10:19 AM12/23/09
to
Hi again,

On Dec 22, 11:19 pm, Rugxulo <rugx...@gmail.com> wrote:
>
> Speaking of Vista, it's not quite obsolete, but Win7 has displaced it
> as the "new toy". But even that (NT 6.1) is based upon Vista (NT 6.0).
>
> The only obvious things you may want to know about DOS, Vista (et al):
>

Forgot some other things:

* SB 2.0 emulation was added for XP, but it was buggy, hence lots of
people used VDMsound (alpha also exists for Win98), but since it
doesn't work on Vista, it was discontinued (but DOSBox uses some of
its code)
* the DOS clipboard API hasn't worked since Win9x, but if you use the
freeware / open source NTOLDAPP TSR/DLL combo, you can get it working
again

There's of course lots more to say regarding DOS compatibility, but I
guess that shouldn't be here. ;-)

Marco van de Voort

unread,
Dec 23, 2009, 9:13:58 AM12/23/09
to
On 2009-12-23, Rugxulo <rug...@gmail.com> wrote:
>> - FPC Pascal
>> � Free Pascal, now (2009-10-31) at version 2.4.0rc1 supports many operating systems:
>> Dos, Linux, Windows (32-bit/64-bit/ce), OS/2, FreeBSD, Novell Netware and Mac OS X.
>> � (there are more OSes supported in older versions
>
> From what I've heard, DOS support is much better (2.2.0 regressed a
> bit).

Yes, bitrot in the period that 2.* was branched but most dos users kept
using 1.0.x.

> It uses its own runtime lib using "GO32", and the IDE (even
> supported on DOS) has part of the compiler built in.

go32v2 is the dosextendeder. The whole compiler yes. Only linker is
external (LD). IIRC AS is built in.

> However, the OS/2 port no longer is based much (if at all) on EMX
> (1.0.10), hence it won't run in DOS anymore. Doesn't need GCC, but it does
> use GNU AS and LD.

Yes, but progress there is glacial.

>> - Virtual Pascal
>
> Veit Kannegieser released at least two versions of his DPMI / DOS add-
> on support for this. The best (only?) example is Necromancer's DOS
> Navigator (which has links to the runtime and some updated tools, e.g.
> PE2LE/PE/ELF) maintained by Stefan Weber (et al). Japheth's HX can
> allegedly run VPC (except debugger) in DOS if you set your "FILES="
> high enough.
>
> http://ndn.muxe.com
>
>> - GNU Pascal
>
> Last "official" release I know of was based upon (and needs part of)
> GCC 3.4.4. It's written in C, and I think it uses the default C
> library (unlike FPC).

Afaik not. They use glibc on windows, while the default is msvcrt.

>> - Delphi
>
> Ever since the Borland compiler / IDE junk got spun off and bought out
> by Embarcadero from Code Gear, it seems the 2006 freeware versions of
> their Turbo products disappeared.

Yes. Moreover end of this year the window that pre 2005 (D6/D7) can be
upgraded closes, and D7 people will have to buy full price for a new version
(though maybe they'll run a D7 promotion offer from time to time)

> (They didn't install on Vista for
> me, at least TC++ 2006, anyways.)

TD 2006 does install fine. Even D7 installs.

> Speaking of Vista, it's not quite obsolete, but Win7 has displaced it
> as the "new toy". But even that (NT 6.1) is based upon Vista (NT 6.0).

Yup. And I'm not entirely happy with W7 yet. Lots of little problems (that
will undoubtedly be fixed in sp1 and by a second wave of W7 drivers), but
currently I still like Vista better.

> The only obvious things you may want to know about DOS, Vista (et al):

(I don't have any dos programs in daily use anymore, so I don't need
emulators except for a handful of games. For one game I need real HW
due to a monster-I card)

> * no full-screen or gfx DOS support in Vista (except maybe
> unofficially with XP drivers, which disables Aero)
> * DPMI bugs (esp. default limit, only can be manually fixed in Vista
> SP1; 2k3 can't be fixed at all)

(32-bit DPMI memory limit in Vista/W7 : 32MB, XP : 64MB?
This hurts for FPC dos developmnent. FPC/go32v2(dos) could be built on
XP but not Vista)


> * WinXP is pretty much obsolete in MS' eyes, and you can't even
> upgrade to Win7 without a clean install

(to end-customers. To companies with support contracts it is still
available, and will be for quite some time)

Another thing I remember:

* default no write permission in the c:\ root.

Rugxulo

unread,
Dec 23, 2009, 11:27:59 AM12/23/09
to
Hi, :-)

On Dec 23, 8:13 am, Marco van de Voort <mar...@stack.nl> wrote:


> On 2009-12-23, Rugxulo <rugx...@gmail.com> wrote:
>
> >> - FPC Pascal
> >>   Free Pascal, now (2009-10-31) at version 2.4.0rc1 supports many operating systems:
> >>  Dos, Linux, Windows (32-bit/64-bit/ce), OS/2, FreeBSD, Novell Netware and Mac OS X.
> >>   (there are more OSes supported in older versions
>
> > From what I've heard, DOS support is much better (2.2.0 regressed a
> > bit).
>
> Yes, bitrot in the period that 2.* was branched but most dos users kept
> using 1.0.x.

I hope you don't think I'm picking on you guys. As far as I'm
concerned, the issue never happened. Just mentioning it anyways in
case somebody still didn't know "it's fixed".

> > It uses its own runtime lib using "GO32", and the IDE (even
> > supported on DOS) has part of the compiler built in.
>
> go32v2 is the dosextendeder.  The whole compiler yes. Only linker is
> external (LD). IIRC AS is built in.

In DJGPPv2, the so-called "extender" is built into the library, so it
runs exclusively on DPMI. I blindly assume FPC is the same way
(despite their including go32-v2.exe, which I don't technically think
is needed at all, and it doesn't replace CWSDPMI anyways).

Right, FPC has its own internal assembler now, right?

> > However, the OS/2 port no longer is based much (if at all) on EMX
> > (1.0.10), hence it won't run in DOS anymore. Doesn't need GCC, but it does
> > use GNU AS and LD.
>
> Yes, but progress there is glacial.

It's not that big a deal, but it's kinda sad since the combined DOS +
OS/2 compatibility was a cool thing. I really only mention it because
somebody (rarely) may want to use 1.0.10 for that reason. Also, I
think the readme for latest versions still mentions EMX as if it's
still supported, which AFAICT it's not.

> >> - GNU Pascal
>
> > Last "official" release I know of was based upon (and needs part of)
> > GCC 3.4.4. It's written in C, and I think it uses the default C
> > library (unlike FPC).
>
> Afaik not. They use glibc on windows, while the default is msvcrt.

I don't know. I was mainly referring to the DOS port, which I think??
uses DJGPP's libc (similar to FreeBASIC). I don't have GPC/DOS
installed here (or can't find it, heh, too many DJGPP dirs!!).
Anyways, the Cygwin build of GPC doesn't use MSVCRT, I think. (MinGW
and TCC use MSVCRT, which isn't wise, IMHO. OpenWatcom and CC386
thankfully do not.) AFAICT, MSVCRT is not freely redistributable (even
with VC Express editions, eh??), and many projects expect you to find
it yourself due to that.

> > Speaking of Vista, it's not quite obsolete, but Win7 has displaced it
> > as the "new toy". But even that (NT 6.1) is based upon Vista (NT 6.0).
>
> Yup. And I'm not entirely happy with W7 yet. Lots of little problems (that
> will undoubtedly be fixed in sp1 and by a second wave of W7 drivers), but
> currently I still like Vista better.

I swear it's Mojave experiment come to life: new GUI and everyone
thinks it's "better", but it's all a placebo (Win 7 is just Vista
tweaked). While I use Vista and it works fairly well, I don't pretend
it doesn't have various issues. (Not that you do, just saying ....)

> > The only obvious things you may want to know about DOS, Vista (et al):
>
> (I don't have any dos programs in daily use anymore, so I don't need
> emulators except for a handful of games. For one game I need real HW
> due to a monster-I card)

DOSBox is pretty darn good, but it's still quite slow comparatively.
For most simple games this isn't a problem, but for more complex
stuff, it's a little awkward. I'm almost embarrassed to mention that I
still occasionally use a P166, but then again, it's faster than
DOSBox, so I'm not *that* crazy!! ;-)

> > * DPMI bugs (esp. default limit, only can be manually fixed in Vista
> > SP1; 2k3 can't be fixed at all)
>
>  (32-bit DPMI memory limit in Vista/W7 : 32MB, XP : 64MB?
>   This hurts for FPC dos developmnent. FPC/go32v2(dos) could be built on
>   XP but not Vista)

XP has no limits (well, beyond normal, e.g. half of total RAM reserved
by kernel???). It's just a bug / regression introduced in 2k3. But
they haven't fixed it in 2k3 and won't issue any more service packs,
so that OS is out of luck. However, at least Vista SP1 can work if you
create a registry entry.

In short, I can easily use several hundred MBs of RAM in XP or Vista
with DJGPP apps. 32 MB is really painfully low only because certain
tools need it (e.g. modern GCC).

http://www.trnicely.net/misc/vista.html

http://groups.google.com/group/comp.os.msdos.djgpp/browse_frm/thread/4bb57fc24a4c9007/dd9ddd03d119625b?lnk=gst&q=%22--param%22#dd9ddd03d119625b

The most useful tips for lowering memory usage of GCC et al. are
these:

a). --param ggc-min-expand=10 --param ggc-min-heapsize=8192
b). -Wa,--reduce-memory-overheads -Wl,--reduce-memory-overheads

> > * WinXP is pretty much obsolete in MS' eyes, and you can't even
> > upgrade to Win7 without a clean install
>
> (to end-customers. To companies with support contracts it is still
> available, and will be for quite some time)

I hope they don't really expect anybody to upgrade to Vista just to
upgrade in-place to 7. That would be insane, IMHO.

> Another thing I remember:
>
> * default no write permission in the c:\ root.

Right, I forgot about that. MSVCRT's tmpfile() expects that writable,
too (as do old MS C DOS compiles). I think Gnulib has a tmpfile()
replacement, but I never tried using it, so I don't know if that would
work around the issue or not.

P.S. We forgot to mention UAC: it flags on any name such as
"install.exe" or "patch.exe" or "update.exe" or similar. I ended up
creating DJGPP symlinks (stubify -g blah.exe) such as "djpatc.exe" and
"djupdat.exe" to skirt the issue. Both this (and the C:\ writable
problem) can be fixed by running as Admin, but I don't really
recommend that for everyday use. (Then again, by default real DOS
isn't exactly "safe" either, heh.)

Rugxulo

unread,
Dec 31, 2009, 2:27:04 PM12/31/09
to
Hi,

On Dec 23, 10:27 am, Rugxulo <rugx...@gmail.com> wrote:
>
> P.S. We forgot to mention UAC:   it flags on any name such as
> "install.exe" or "patch.exe" or "update.exe" or similar. I ended up
> creating DJGPP symlinks (stubify -g blah.exe) such as "djpatc.exe" and
> "djupdat.exe" to skirt the issue. Both this (and the C:\ writable
> problem) can be fixed by running as Admin, but I don't really
> recommend that for everyday use.

I wonder if I'm the only one who is interested in this stuff. Oh
well ....

Anyways, forgot to mention, UAC only flags stuff (such as above) when
run manually on cmdline or in a .BAT. If you use something else (e.g.
makefile) it won't trigger. Just something to keep in mind.

Hope some of these tips helped, Mr. Prins.

Marco van de Voort

unread,
Jan 1, 2010, 10:38:55 AM1/1/10
to
On 2009-12-31, Rugxulo <rug...@gmail.com> wrote:
> I wonder if I'm the only one who is interested in this stuff. Oh
> well ....
>
> Anyways, forgot to mention, UAC only flags stuff (such as above) when
> run manually on cmdline or in a .BAT. If you use something else (e.g.
> makefile) it won't trigger. Just something to keep in mind.

That's odd. It does from win32 (mingw) make. (ginstall) untill we got a
manifest for that.

Rugxulo

unread,
Jan 1, 2010, 11:33:11 AM1/1/10
to
Hi,

On Jan 1, 9:38 am, Marco van de Voort <mar...@stack.nl> wrote:


> On 2009-12-31, Rugxulo <rugx...@gmail.com> wrote:
>
> > Anyways, forgot to mention, UAC only flags stuff (such as above) when
> > run manually on cmdline or in a .BAT. If you use something else (e.g.
> > makefile) it won't trigger. Just something to keep in mind.
>
> That's odd. It does from win32 (mingw) make. (ginstall) untill we got a
> manifest for that.

Not for DJGPP make. However, from my best efforts (months ago, long
since given up), I don't think DOS apps can use a manifest file
anyways. At least nothing I tried seemed to work, but perhaps I did it
incorrectly.

0 new messages