housen@ssc-vax.UUCP (Kevin Housen) (05/17/88)
I am having a problem writing an INIT in Lightspeed Pascal
(version 1.11) on a Mac II. After continual system bombs,
I tried making a really simple INIT - as follows:
unit MyInit;
interface
procedure Main;
implementation
procedure Main;
begin
SysBeep (1);
end;
end.
When I reboot, the INIT runs, beeps, then dies with a system
error (ID=1). Again, this is on a Mac II. It works fine on a Mac
Plus. The Think/Symantec support people seemed to recall a
problem with SysBeeps in INITs on Mac IIs. However, the actual
INIT that I am working on (which doesnt make any SysBeep calls)
behaves the same way - bombs on a Mac II but works fine on
a Plus. I am new to Pascal so I am probably doing something
fundamentally stupid. Can anyone help?
By the way, my project file contains:
DA Paslib
MacTraps
InitCode (the unit shown above)
Thanks heaps -
Kevin Housenhan@Apple.COM (Byron Han, fire fighter) (05/18/88)
In article <1930@ssc-vax.UUCP> housen@ssc-vax.UUCP (Kevin Housen) writes: > >I am having a problem writing an INIT in Lightspeed Pascal >(version 1.11) on a Mac II. After continual system bombs, >I tried making a really simple INIT - as follows: > Here is an interesting situation. Did you know that when INIT's are called, they are not locked in memory? So, SysBeep which can potentially cause a heap compaction may cause your INIT resource to be relocated. Solution? either set the locked bit in the INIT resource or put this at the start of your INIT. theHandle := RecoverHandle(@EntryPoint); HLock(theHandle); and voila your problems should go away. -- Byron Han, Licensed to Dream. "Macintosh - there is no substitute." Apple Computer, Inc. MS 27Y ------------------------------------- ATTnet:408-973-6450 applelink:HAN1 domain:han@apple.COM MacNET:HAN GENIE:BYRONHAN COMPUSERVE:72167,1664 UUCP:{sun,voder,nsc,decwrl}!apple!han