Board index » delphi » TP Pgm hangs called from Pdox 4 DOS under Windows NT 4.0

TP Pgm hangs called from Pdox 4 DOS under Windows NT 4.0

Moving from DOS/WIN 3.x to WIN NT 4.0 I run into the following
problem with Paradox 4 (DOS) and Pascal Programs (TP 6 / BP 7.0)
using the CRT unit. Only if called from within paradox (runtime
and development system) the TP pgm hangs in the initialisation
code of the CRT unit. When running the TP pgm separately it works
fine!

RTL source code is available. Debugging shows that code hangs in a
loop waiting for the BIOS Timer tick to change. The interrupts are
disabled (IF=0, at pgm start IF=1, state changes to 0 in the call
to video bios with reg AH=0Fh). Reenabling the interrupts with STI
didn't help.

The problem was tested with the folling equipment:
  pentium 233 MMX, 64 MB RAM, adaptec 2940 UW, 9 GB HD, NIC 3C900,
  Windows NT 4 with SP3, Paradox 4 (DOS), Turbo Pascal 6 and
  Borland Pascal 7.0
        and
  pII 400, 256 MB RAM, adaptec 2940 UW, 9 GB HD, without NIC,
  Windows NT 4 with SP1 or SP3, Paradox 4 (DOS), Turbo Pascal 6
  and Borland Pascal 7.0

I would be very appreciated if someone could supply a solution or
have hints. :)

Thanks
Matthias Brueckner

P.S. The problem has NOTHING to do with the "runtime error 200" on
fast machines. The problem does NOT exist under Windows 95.

 

Re:TP Pgm hangs called from Pdox 4 DOS under Windows NT 4.0


Quote
Matthias Brueckner wrote:
> Moving from DOS/WIN 3.x to WIN NT 4.0 I run into the following
> problem with Paradox 4 (DOS) and Pascal Programs (TP 6 / BP 7.0)
> using the CRT unit. Only if called from within paradox (runtime
> and development system) the TP pgm hangs in the initialisation
> code of the CRT unit. When running the TP pgm separately it works
> fine!

on an NT workstation, you can't reliably "shell to dos" from another dos
app.. that isn't a "dos prompt" you're shelling out to, it's an NT .cmd
prompt.. dos apps will usually run in their own right under NT, but
"shell to dos" actions usually won't work.. I don't allow my dos apps to
be run on NT workstation machines..

--
Steve Green
Corel CTech - Paradox
Diamond Software Group, Inc.
Waldorf, Maryland  USA

http://www.diamondsg.com
Gre...@DiamondSG.com

Re:TP Pgm hangs called from Pdox 4 DOS under Windows NT 4.0


JRS:  In article <37E881D2.72CE7...@mail.lvr.de> of Wed, 22 Sep 1999
09:14:26 in news:comp.lang.pascal.borland, Matthias Brueckner

Quote
<M.Brueck...@mail.lvr.de> wrote:
>Moving from DOS/WIN 3.x to WIN NT 4.0 I run into the following
>problem with Paradox 4 (DOS) and Pascal Programs (TP 6 / BP 7.0)
>using the CRT unit. Only if called from within paradox (runtime
>and development system) the TP pgm hangs in the initialisation
>code of the CRT unit. When running the TP pgm separately it works
>fine!
> ...
>P.S. The problem has NOTHING to do with the "runtime error 200" on
>fast machines. The problem does NOT exist under Windows 95.

ISTM that it might be useful if those who produce "debugged" Crt units
were also to offer a version with Delay and its initialisation removed;
and those with EXE patchers a version which fixes the delay scaler at a
"300MHz" value.

These would be safer for those not using Delay or not needing it to be
accurate.  In the first case, one can always write one's own in Pascal.

--
 ? John Stockton, Surrey, UK.  j...@merlyn.demon.co.uk   Turnpike v4.00   MIME. ?
  <URL: http://www.merlyn.demon.co.uk/> TP/BP/Delphi/&c. FAQqish topics, links.
  Timo's TurboPascal <A HREF="ftp://garbo.uwasa.fi/pc/link/tsfaqp.zip">FAQ</A>.
  <A HREF="http://www.merlyn.demon.co.uk/clpb-faq.txt">Mini-FAQ</A> of c.l.p.b.

Re:TP Pgm hangs called from Pdox 4 DOS under Windows NT 4.0


I have had this trouble as well. Although this is not a definitive
answer, this is how I got around the problem.

1) Use BP7 and compile the program for protected mode (DPMI).
2) Do *not* use the NOSHELL option with the Paradox RUN command.

This works on Compaq 450mhz workstation, 128mb ram, NT4 sp3, Paradox 4.5
runtime, BP7 with crt path (I think I used Frank Heckenbach's patch).

I got the same results whether I ran pdoxrun under command.com or
cmd.exe. Using DPMI mode seems to offer some relief for pure DOS
problems under NT. Strangely, I don't have any trouble running Nimbus
report writer, a real mode program, but it was compiled with MS c6.0.

Cheers!

Ken

Quote
Matthias Brueckner wrote:
> Moving from DOS/WIN 3.x to WIN NT 4.0 I run into the following
> problem with Paradox 4 (DOS) and Pascal Programs (TP 6 / BP 7.0)
> using the CRT unit. Only if called from within paradox (runtime
> and development system) the TP pgm hangs in the initialisation
> code of the CRT unit. When running the TP pgm separately it works
> fine!

> RTL source code is available. Debugging shows that code hangs in a
> loop waiting for the BIOS Timer tick to change. The interrupts are
> disabled (IF=0, at pgm start IF=1, state changes to 0 in the call
> to video bios with reg AH=0Fh). Reenabling the interrupts with STI
> didn't help.

> The problem was tested with the folling equipment:
>   pentium 233 MMX, 64 MB RAM, adaptec 2940 UW, 9 GB HD, NIC 3C900,
>   Windows NT 4 with SP3, Paradox 4 (DOS), Turbo Pascal 6 and
>   Borland Pascal 7.0
>         and
>   pII 400, 256 MB RAM, adaptec 2940 UW, 9 GB HD, without NIC,
>   Windows NT 4 with SP1 or SP3, Paradox 4 (DOS), Turbo Pascal 6
>   and Borland Pascal 7.0

> I would be very appreciated if someone could supply a solution or
> have hints. :)

> Thanks
> Matthias Brueckner

> P.S. The problem has NOTHING to do with the "runtime error 200" on
> fast machines. The problem does NOT exist under Windows 95.

Other Threads