Board index » delphi » Portability Problem from Win 3.11 to Win 3.1

Portability Problem from Win 3.11 to Win 3.1

        I am having problems running an application which was created
on a 486DX-66 ( 16Mb ) and Windows 3.11 on an Olivetti PCS 286 with
4Mb of Memory and running Windows 3.1. It ports OK to other machines
but on this one I get 'Exception EInvalidOpCode' etc.
        Any hints or should I just forget it?
 

Re:Portability Problem from Win 3.11 to Win 3.1


In article <3vnqcn$...@budapest.ozonline.com.au> Jeffrey Ottery <jeffrey.ott...@yarra.vicnet.net.au> writes:

Quote
>        I am having problems running an application which was created
>on a 486DX-66 ( 16Mb ) and Windows 3.11 on an Olivetti PCS 286 with
>4Mb of Memory and running Windows 3.1. It ports OK to other machines
>but on this one I get 'Exception EInvalidOpCode' etc.

I think you'll have to forget it.  From the README.TXT file:

----
1. MINIMUM SYSTEM REQUIREMENTS                                          
------------------------------                                          
Delphi requires Windows 3.1 or a 100% compatible operating              
system, an 80386 or newer processor (486 recommended), and 6Mb of        
system memory (Delphi Client/Server requires 8Mb, 12Mb or more is        
recommended for Client/Server development). A minimum                    
installation requires approximately 30Mb of disk space (a full          
installation of Delphi Client/Server requires approximately              
80Mb).                                                                  
----

I can't find a statement anywhere about the minimum system requirements for
programs created in Delphi, but I would guess for those a 386+ is required as
well.  I'm not sure why; Delphi itself never generates 386 code, and as far
as know there's none in the library routines except when a switch on processor
type is present.  

One thing you might want to try is to set the Test8086 variable to 0 or 1;
this will stop the longint support routines from attempting to use 386
instructions.  This should be done in the initialization section of the very
first unit in the main program's Uses clause, so that it happens immediately
after the System unit is initialized.  You might want to write the old value
to a file first and look at it; if it's 2 or larger, then the cpu detection
code is getting fooled by your Olivetti somehow.

Duncan Murdoch

Other Threads