PDA

View Full Version : Stack error from EM/32 in Windows 2000


BSeith
04-20-2004, 01:07 PM
We have several users throughout our company that have legacy programs written and compiled with the F77L3 EM/32 compiler. These program are now generating a stack error when run in Windows 2000 after installing the security patch identified as Windows 2000 Hotfix - KB835732. One solution of course is to port everything to the Fortran 95 compiler; but, there's a lot of legacy code out there - does anyone know of any other options?

Peter Bartle
04-30-2004, 07:35 AM
We found the easiest way to get things working again quickly was
to uninstall KB835732 from Control Panel - Add/Remove Programs

But this is not seen as a permanent fix!

We don't have a Fortran 95 compiler, but we do have LF90.
In the past could never see any real advantage in porting all the
old F77L EM/32 to LF90, so we still have lots of old F77 programs

However -- am trying to do the porting now, but
haven't been able to get LF90 to link any programs.

With the -c -fix options the old programs compile OK (with a few warnings).
But every time, right after the LF90 Linker lists the linking options, we
get the following two lines:

Abnormal program termination: Memory protection fault
CS:EIP = 01A7h:00000013h


SO
First question is... If we *do* get these F77 programs to compile using
LF90, will we be able to re-apply the KB835732 hotfix?


Secondly...
What is stopping the linker from operating correctly?

System is: Pentium 3.2GHz, win2k [5.00.2194, SP4], 1GB RAM
Trying to do the compiling in a DOS shell, or in the nice friendly
Norton Commander shell.

Any help you can give would be greatly appreciated

- Peter
Peter.Bartle@eng.monash.edu.au

mmasuda
05-05-2004, 10:01 PM
I don't have any suggestions to solve your problem but thought I would relay some of my experiences.

I just started to port some of my F77L EM/32 programs to LF90. LF90 complained that my programs were in free-format (.F), but after I converted the programs to standard format (.FOR), the programs compiled mostly warning free. I'm not using any compiler options: just plain LF90 <program>.for. I'm not getting the memory protection fault error and KB835732 is installed on my machine. I also have Windows 2000 and am compiling in a DOS shell. I'm puzzled why you're getting the protection fault errors.

mmasuda

Peter Bartle
05-06-2004, 03:40 AM
I don't have any suggestions to solve your problem but thought I would relay some of my experiences.
...
I'm not getting the memory protection fault error and KB835732 is installed on my machine. I also have Windows 2000 and am compiling in a DOS shell. I'm puzzled why you're getting the protection fault errors.

mmasuda


I still can't get the linker to work on windows 2000

Found that I could compile and link using LF90 a win98 computer, and the
programs would then run on windows 2000 with KB835732 installed.

mmasuda, perhaps we have different versions of LF90? -- I'm using
version 2.01i -- but it would be nice to know what your CONFIG.NT and
AUTOEXEC.NT look like [ie. what you're using for himem, emm, dosx, etc...]
...not that I've changed any of the default settings

- Peter

mmasuda
05-06-2004, 05:45 PM
Peter,

Here's some of the information:

Microsoft Windows 2000
5.00.2195
Service Pack 4

LF90 4.50i (different version than yours)

config.nt:
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40

ntcmdprompt

autoexec.nt:
@echo off

REM AUTOEXEC.BAT is not used to initialize the MS-DOS environment.
REM AUTOEXEC.NT is used to initialize the MS-DOS environment unless a
REM different startup file is specified in an application's PIF.

REM Install CD ROM extensions
lh %SystemRoot%\system32\mscdexnt.exe

REM Install network redirector (load before dosx.exe)
lh %SystemRoot%\system32\redir

REM Install DPMI support
lh %SystemRoot%\system32\dosx

I don't recall changing the settings on my system. Let me know if you need more information.

mmasuda

Peter Bartle
10-28-2004, 06:52 AM
Have found an easy solution

Where F77L/EM32 doesn't work, instead of trying
to get LF90 to work (which it didn't for me) have found
that compiling and running using plain old F77L works