Change 11816 by pudge@pudge-mobile on 2001/09/01 22:15:09 Misc. patches: fix tests script; add Mac::LowMem; quiet warnings in Config.pm with -W; increase default and minimum RAM; bump version number. Affected files ... ... //depot/maint-5.6/macperl/macos/MPVersion.r#3 edit ... //depot/maint-5.6/macperl/macos/MacPerlTests.cmd#4 edit ... //depot/maint-5.6/macperl/macos/Makefile.mk#6 edit ... //depot/maint-5.6/macperl/macos/configpm#2 edit ... //depot/maint-5.6/macperl/macos/lib/Mac/LowMem.pm#1 add ... //depot/maint-5.6/macperl/macos/macperl/MacPerl.r#2 edit Differences ... ==== //depot/maint-5.6/macperl/macos/MPVersion.r#3 (text) ==== Index: perl/macos/MPVersion.r --- perl/macos/MPVersion.r.~1~ Sat Sep 1 16:30:06 2001 +++ perl/macos/MPVersion.r Sat Sep 1 16:30:06 2001 @@ -5,6 +5,9 @@ * as specified in the README file. * * $Log: MPVersion.r,v $ + * Revision 1.5 2001/07/20 23:54:49 pudge + * Sync with perforce changes 11420,11424. + * * Revision 1.4 2001/07/08 05:07:14 pudge * Version update 5.6.1a3 * @@ -20,9 +23,9 @@ * */ -#define MPDate "2001-07-20" -#define MPVersionStr "5.6.1a4" +#define MPDate "2001-09-01" +#define MPVersionStr "5.6.1a5" #define MPRevision 0x05 #define MPVersion 0x61 -#define MPBuild 0x04 +#define MPBuild 0x05 #define MPState alpha ==== //depot/maint-5.6/macperl/macos/MacPerlTests.cmd#4 (text) ==== Index: perl/macos/MacPerlTests.cmd --- perl/macos/MacPerlTests.cmd.~1~ Sat Sep 1 16:30:06 2001 +++ perl/macos/MacPerlTests.cmd Sat Sep 1 16:30:06 2001 @@ -137,8 +137,8 @@ ::macos:perl -I::lib :lib:db-recno.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:dirhand.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:dirhand.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:dosglob.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:dosglob.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:dosglob.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:dosglob.t >> ::macos:MacPerlTests.out # echo "::macos:perl -I::lib :lib:dprof.t" >> ::macos:MacPerlTests.out # ::macos:perl -I::lib :lib:dprof.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:dumper-ovl.t" >> ::macos:MacPerlTests.out @@ -175,14 +175,14 @@ ::macos:perl -I::lib :lib:filespec.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:findbin.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:findbin.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:ftmp-mktemp.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:ftmp-mktemp.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:ftmp-posix.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:ftmp-posix.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:ftmp-security.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:ftmp-security.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :lib:ftmp-tempfile.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :lib:ftmp-tempfile.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:ftmp-mktemp.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:ftmp-mktemp.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:ftmp-posix.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:ftmp-posix.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:ftmp-security.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:ftmp-security.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :lib:ftmp-tempfile.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :lib:ftmp-tempfile.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:gdbm.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :lib:gdbm.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :lib:getopt.t" >> ::macos:MacPerlTests.out @@ -405,8 +405,8 @@ ::macos:perl -I::lib :op:local.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :op:lop.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :op:lop.t >> ::macos:MacPerlTests.out -# echo "::macos:perl -I::lib :op:magic.t" >> ::macos:MacPerlTests.out -# ::macos:perl -I::lib :op:magic.t >> ::macos:MacPerlTests.out +echo "::macos:perl -I::lib :op:magic.t" >> ::macos:MacPerlTests.out +::macos:perl -I::lib :op:magic.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :op:method.t" >> ::macos:MacPerlTests.out ::macos:perl -I::lib :op:method.t >> ::macos:MacPerlTests.out echo "::macos:perl -I::lib :op:misc.t" >> ::macos:MacPerlTests.out @@ -571,22 +571,13 @@ echo "These tests are known to fail. Run if you want to, but beware" echo "because crashes are possible." echo "" -echo "# DOS::Glob doesn't work ... do we care?" -echo "::macos:perl -I::lib :lib:dosglob.t >> ::macos:MacPerlTests.out" -echo "" echo "# Devel::DProf seems to work, but test needs major work :/" echo "::macos:perl -I::lib :lib:dprof.t >> ::macos:MacPerlTests.out" echo "" -echo "# I have no idea about these ..." -echo "::macos:perl -I::lib :lib:ftmp-mktemp.t >> ::macos:MacPerlTests.out" -echo "::macos:perl -I::lib :lib:ftmp-posix.t >> ::macos:MacPerlTests.out" -echo "::macos:perl -I::lib :lib:ftmp-security.t >> ::macos:MacPerlTests.out" -echo "::macos:perl -I::lib :lib:ftmp-tempfile.t >> ::macos:MacPerlTests.out" -echo "" -echo "# system() fails to return a good value" +echo "# fails all tests (system() fails to return a good value)" echo "::macos:perl -I::lib :op:die_exit.t >> ::macos:MacPerlTests.out" echo "" -echo "# I dunno here" +echo "# fails test 16 (system() fails to return a good value)" echo "::macos:perl -I::lib :op:magic.t >> ::macos:MacPerlTests.out" echo "" echo "# fails tests 129, 130, 142, 161 (known problem in sfio)" @@ -594,3 +585,7 @@ echo "" echo "# fails tests 329 (known problem in sysopen warning)" echo "::macos:perl -I::lib :pragma:warnings.t >> ::macos:MacPerlTests.out" +echo "" +echo "# :op:misc.t, :op:runlevel.t, :pragma:strict.t, :pragma:subs.t, and" +echo "# :pragma:warnings.t all produce a lot of errors because of error" +echo "# output format; not sure what to do about them" ==== //depot/maint-5.6/macperl/macos/Makefile.mk#6 (text) ==== Index: perl/macos/Makefile.mk --- perl/macos/Makefile.mk.~1~ Sat Sep 1 16:30:06 2001 +++ perl/macos/Makefile.mk Sat Sep 1 16:30:06 2001 @@ -128,7 +128,7 @@ Dynamic_Ext_Xtr = Static_Lib_Mac = \ ExtUtils:MM_MacOS ExtUtils:Miniperl Config Errno \ - Mac:Hooks Mac:Pane \ + Mac:Hooks Mac:Pane Mac::LowMem \ Mac:AppleEvents:Simple Mac:BuildTools Mac:Apps:Launch ######## ==== //depot/maint-5.6/macperl/macos/configpm#2 (text) ==== Index: perl/macos/configpm --- perl/macos/configpm.~1~ Sat Sep 1 16:30:06 2001 +++ perl/macos/configpm Sat Sep 1 16:30:06 2001 @@ -282,9 +282,9 @@ my %preconfig; { local $^W; - my $inst = $ENV{MACPERL} . "site_perl:"; - my $arch = $MacPerl::Architecture; - my $cc = $MacPerl::Compiler; + my $inst = ($ENV{MACPERL} || "") . "site_perl:"; + my $arch = $MacPerl::Architecture || ""; + my $cc = $MacPerl::Compiler || ""; %extra = ( installsitelib => $inst, ==== //depot/maint-5.6/macperl/macos/macperl/MacPerl.r#2 (text) ==== Index: perl/macos/macperl/MacPerl.r --- perl/macos/macperl/MacPerl.r.~1~ Sat Sep 1 16:30:06 2001 +++ perl/macos/macperl/MacPerl.r Sat Sep 1 16:30:06 2001 @@ -273,8 +273,10 @@ reserved, reserved, reserved, - 3840 * 1024, - 1536 * 1024 +/* 3840 * 1024, + 1536 * 1024 */ + 10 * 1024 * 1024, + 2 * 1024 * 1024 }; type 'MrPS' as 'SIZE'; ==== //depot/maint-5.6/macperl/macos/lib/Mac/LowMem.pm#1 (text) ==== Index: perl/macos/lib/Mac/LowMem.pm --- perl/macos/lib/Mac/LowMem.pm.~1~ Sat Sep 1 16:30:06 2001 +++ perl/macos/lib/Mac/LowMem.pm Sat Sep 1 16:30:06 2001 @@ -0,0 +1,1214 @@ +=head1 NAME + +MacOS Low Memory Globals. + +Provide the MacPerl interface to the low memory global variables. + +Access to Inside Macintosh is essential for proper use of these functions. +Explanations of terms, processes and procedures are provided there. +Any attempt to use these functions without guidance can cause severe errors in +your machine, including corruption of data. B<You have been warned.> + +=head1 SYNOPSIS + + use Mac::LowMem; + use Mac::QuickDraw; + + LMSetMBarHeight(55); + + $l = LMGetMouseLocation(); + + print $l, "\n", $l->h, " ", $l->v, "\n"; + +=head1 DESCRIPTION + +The following routines make it possible to get and set low memory variables. + +=cut + +use strict; + +package Mac::LowMem; + +BEGIN { + use Exporter (); + use Mac::Memory(); + use Carp; + + use vars qw(@ISA @EXPORT $AUTOLOAD); + + @ISA = qw(Exporter); + @EXPORT = qw( + LMGetScrVRes + LMGetScrHRes + LMGetMemTop + LMGetBufPtr + LMGetHeapEnd + LMGetTheZone + LMGetUTableBase + LMGetCPUFlag + LMGetApplLimit + LMGetSysEvtMask + LMGetRndSeed + LMGetSEvtEnb + LMGetTicks + LMGetKeyThresh + LMGetKeyRepThresh + LMGetVIA + LMGetSCCRd + LMGetSCCWr + LMGetSPValid + LMGetSPATalkA + LMGetSPATalkB + LMGetSPConfig + LMGetSPPortA + LMGetSPPortB + LMGetSPAlarm + LMGetSPFont + LMGetSPKbd + LMGetSPPrint + LMGetSPVolCtl + LMGetSPClikCaret + LMGetSPMisc2 + LMGetTime + LMGetBootDrive + LMGetSFSaveDisk + LMGetKbdLast + LMGetKbdType + LMGetMemErr + LMGetSdVolume + LMGetSoundPtr + LMGetSoundBase + LMGetSoundLevel + LMGetCurPitch + LMGetROM85 + LMGetPortBUse + LMGetSysZone + LMGetApplZone + LMGetROMBase + LMGetRAMBase + LMGetDSAlertTab + LMGetABusVars + LMGetABusDCE + LMGetDoubleTime + LMGetCaretTime + LMGetScrDmpEnb + LMGetBufTgFNum + LMGetBufTgFFlg + LMGetBufTgFBkNum + LMGetBufTgDate + LMGetLo3Bytes + LMGetMinStack + LMGetDefltStack + LMGetGZRootHnd + LMGetGZMoveHnd + LMGetFCBSPtr + LMGetDefVCBPtr + LMGetCurDirStore + LMGetFSFCBLen + LMGetScrnBase + LMGetMainDevice + LMGetDeviceList + LMGetQDColors + LMGetCrsrBusy + LMGetWidthListHand + LMGetJournalRef + LMGetCrsrThresh + LMGetCurApRefNum + LMGetCurrentA5 + LMGetCurStackBase + LMGetCurJTOffset + LMGetCurPageOption + LMGetHiliteMode + LMGetPrintErr + LMGetScrapSize + LMGetScrapHandle + LMGetScrapCount + LMGetScrapState + LMGetROMFont0 + LMGetApFontID + LMGetWindowList + LMGetSaveUpdate + LMGetPaintWhite + LMGetWMgrPort + LMGetGrayRgn + LMGetGhostWindow + LMGetAuxWinHead + LMGetCurActivate + LMGetCurDeactive + LMGetOldStructure + LMGetOldContent + LMGetSaveVisRgn + LMGetOneOne + LMGetMinusOne + LMGetTopMenuItem + LMGetAtMenuBottom + LMGetMenuList + LMGetMBarEnable + LMGetMenuFlash + LMGetTheMenu + LMGetTopMapHndl + LMGetSysMapHndl + LMGetSysMap + LMGetCurMap + LMGetResLoad + LMGetResErr + LMGetFScaleDisable + LMGetANumber + LMGetACount + LMGetTEScrpLength + LMGetTEScrpHandle + LMGetAppParmHandle + LMGetDSErrCode + LMGetDlgFont + LMGetWidthPtr + LMGetATalkHk2 + LMGetHWCfgFlags + LMGetWidthTabHandle + LMGetLastSPExtra + LMGetMenuDisable + LMGetROMMapInsert + LMGetTmpResLoad + LMGetIntlSpec + LMGetWordRedraw + LMGetSysFontFam + LMGetSysFontSize + LMGetMBarHeight + LMGetTESysJust + LMGetLastFOND + LMGetFractEnable + LMGetMMU32Bit + LMGetTheGDevice + LMGetDeskCPat + LMGetTimeDBRA + LMGetTimeSCCDB + LMGetSynListHandle + LMGetMenuCInfo + LMGetTimeSCSIDB + LMGetCursorNew + LMGetMouseButtonState + LMGetMouseTemp + LMGetRawMouseLocation + LMGetMouseLocation + LMGetHighHeapMark + LMGetStackLowPoint + LMGetROMMapHandle + LMGetUnitTableEntryCount + LMGetDiskFormatingHFSDefaults + LMGetPortAInfo + + LMSetScrVRes + LMSetScrHRes + LMSetMemTop + LMSetBufPtr + LMSetHeapEnd + LMSetTheZone + LMSetUTableBase + LMSetCPUFlag + LMSetApplLimit + LMSetSysEvtMask + LMSetRndSeed + LMSetSEvtEnb + LMSetTicks + LMSetKeyThresh + LMSetKeyRepThresh + LMSetVIA + LMSetSCCRd + LMSetSCCWr + LMSetSPValid + LMSetSPATalkA + LMSetSPATalkB + LMSetSPConfig + LMSetSPPortA + LMSetSPPortB + LMSetSPAlarm + LMSetSPFont + LMSetSPKbd + LMSetSPPrint + LMSetSPVolCtl + LMSetSPClikCaret + LMSetSPMisc2 + LMSetTime + LMSetBootDrive + LMSetSFSaveDisk + LMSetKbdLast + LMSetKbdType + LMSetMemErr + LMSetSdVolume + LMSetSoundPtr + LMSetSoundBase + LMSetSoundLevel + LMSetCurPitch + LMSetROM85 + LMSetPortBUse + LMSetSysZone + LMSetApplZone + LMSetROMBase + LMSetRAMBase + LMSetDSAlertTab + LMSetABusVars + LMSetABusDCE + LMSetDoubleTime + LMSetCaretTime + LMSetScrDmpEnb + LMSetBufTgFNum + LMSetBufTgFFlg + LMSetBufTgFBkNum + LMSetBufTgDate + LMSetLo3Bytes + LMSetMinStack + LMSetDefltStack + LMSetGZRootHnd + LMSetGZMoveHnd + LMSetFCBSPtr + LMSetDefVCBPtr + LMSetCurDirStore + LMSetFSFCBLen + LMSetScrnBase + LMSetMainDevice + LMSetDeviceList + LMSetQDColors + LMSetCrsrBusy + LMSetWidthListHand + LMSetJournalRef + LMSetCrsrThresh + LMSetCurApRefNum + LMSetCurrentA5 + LMSetCurStackBase + LMSetCurJTOffset + LMSetCurPageOption + LMSetHiliteMode + LMSetPrintErr + LMSetScrapSize + LMSetScrapHandle + LMSetScrapCount + LMSetScrapState + LMSetROMFont0 + LMSetApFontID + LMSetSaveUpdate + LMSetPaintWhite + LMSetWMgrPort + LMSetWindowList + LMSetGhostWindow + LMSetAuxWinHead + LMSetCurActivate + LMSetCurDeactive + LMSetOldStructure + LMSetOldContent + LMSetGrayRgn + LMSetSaveVisRgn + LMSetOneOne + LMSetMinusOne + LMSetTopMenuItem + LMSetAtMenuBottom + LMSetMenuList + LMSetMBarEnable + LMSetMenuFlash + LMSetTheMenu + LMSetTopMapHndl + LMSetSysMapHndl + LMSetSysMap + LMSetCurMap + LMSetResLoad + LMSetResErr + LMSetFScaleDisable + LMSetANumber + LMSetACount + LMSetTEScrpLength + LMSetTEScrpHandle + LMSetAppParmHandle + LMSetDSErrCode + LMSetDlgFont + LMSetWidthPtr + LMSetATalkHk2 + LMSetHWCfgFlags + LMSetWidthTabHandle + LMSetLastSPExtra + LMSetMenuDisable + LMSetROMMapInsert + LMSetTmpResLoad + LMSetIntlSpec + LMSetWordRedraw + LMSetSysFontFam + LMSetSysFontSize + LMSetMBarHeight + LMSetTESysJust + LMSetLastFOND + LMSetFractEnable + LMSetMMU32Bit + LMSetTheGDevice + LMSetDeskCPat + LMSetTimeDBRA + LMSetTimeSCCDB + LMSetSynListHandle + LMSetMenuCInfo + LMSetTimeSCSIDB + LMSetCursorNew + LMSetMouseButtonState + LMSetMouseTemp + LMSetRawMouseLocation + LMSetMouseLocation + LMSetHighHeapMark + LMSetStackLowPoint + LMSetROMMapHandle + LMSetUnitTableEntryCount + LMSetDiskFormatingHFSDefaults + LMSetPortAInfo + ); +} + +# The empty line below is needed to simplify the algorithm + +my $sGlobals = <<END_GLOBALS; + +ABusDCE 0x02DC 4 L +ABusVars 0x02D8 4 L +ACount 0x0A9A 2 s +ANumber 0x0A98 2 s +ATalkHk2 0x0B18 4 L +ApFontID 0x0984 2 s +AppParmHandle 0x0AEC 4 L Handle +ApplLimit 0x0130 4 L +ApplZone 0x02AA 4 L THz +AtMenuBottom 0x0A0C 2 s +AuxWinHead 0x0CD0 4 L AuxWinHandle +BootDrive 0x0210 2 s +BufPtr 0x010C 4 L +BufTgDate 0x0304 4 l +BufTgFBkNum 0x0302 2 s +BufTgFFlg 0x0300 2 s +BufTgFNum 0x02FC 4 l +CPUFlag 0x012F 1 C +CaretTime 0x02F4 4 L +CrsrBusy 0x08CD 1 C +CrsrThresh 0x08EC 2 s +CurActivate 0x0A64 4 L GrafPtr +CurApRefNum 0x0900 2 s +CurDeactive 0x0A68 4 L GrafPtr +CurDirStore 0x0398 4 l +CurJTOffset 0x0934 2 s +CurMap 0x0A5A 2 s +CurPageOption 0x0936 2 s +CurPitch 0x0280 2 s +CurStackBase 0x0908 4 L +CurrentA5 0x0904 4 L +CursorNew 0x08CE 1 c +DSAlertTab 0x02BA 4 L +DSErrCode 0x0AF0 2 s +DefVCBPtr 0x0352 4 L +DefltStack 0x0322 4 l +DeskCPat 0x0CD8 4 L PixPatHandle +DeviceList 0x08A8 4 L GDHandle +DiskFormatingHFSDefaults 0x039E 4 L +DlgFont 0x0AFA 2 s +DoubleTime 0x02F0 4 L +FCBSPtr 0x034E 4 L +FSFCBLen 0x03F6 2 s +FScaleDisable 0x0A63 1 C +FractEnable 0x0BF4 1 C +GZMoveHnd 0x0330 4 L Handle +GZRootHnd 0x0328 4 L Handle +GhostWindow 0x0A84 4 L GrafPtr +GrayRgn 0x09EE 4 L RgnHandle +HWCfgFlags 0x0B22 2 s +HeapEnd 0x0114 4 L +HighHeapMark 0x0BAE 4 L +HiliteMode 0x0938 1 C +IntlSpec 0x0BA0 4 L +JournalRef 0x08E8 2 s +KbdLast 0x0218 1 C +KbdType 0x021E 1 C +KeyRepThresh 0x0190 2 s +KeyThresh 0x018E 2 s +LastFOND 0x0BC2 4 L Handle +LastSPExtra 0x0B4C 4 l +Lo3Bytes 0x031A 4 l +MBarEnable 0x0A20 2 s +MBarHeight 0x0BAA 2 s +MMU32Bit 0x0CB2 1 C +MainDevice 0x08A4 4 L GDHandle +MemErr 0x0220 2 s +MemTop 0x0108 4 L +MenuCInfo 0x0D50 4 L MCTableHandle +MenuDisable 0x0B54 4 l +MenuFlash 0x0A24 2 s +MenuList 0x0A1C 4 L Handle +MinStack 0x031E 4 l +MinusOne 0x0A06 4 l +MouseButtonState 0x0172 1 C +MouseLocation 0x0830 8 - Point +MouseTemp 0x0828 8 - Point +OldContent 0x09EA 4 L RgnHandle +OldStructure 0x09E6 4 L RgnHandle +OneOne 0x0A02 4 l +PaintWhite 0x09DC 2 s +PortAInfo 0x0290 1 C +PortBUse 0x0291 1 C +PrintErr 0x0944 2 s +QDColors 0x08B0 4 L Handle +RAMBase 0x02B2 4 L +ROM85 0x028E 2 s +ROMBase 0x02AE 4 L +ROMFont0 0x0980 4 L Handle +ROMMapHandle 0x0B06 4 L Handle +ROMMapInsert 0x0B9E 1 C +RawMouseLocation 0x082C 8 - Point +ResErr 0x0A60 2 s +ResLoad 0x0A5E 1 C +RndSeed 0x0156 4 l +SCCRd 0x01D8 4 L +SCCWr 0x01DC 4 L +SEvtEnb 0x015C 1 C +SFSaveDisk 0x0214 2 s +SPATalkA 0x01F9 1 C +SPATalkB 0x01FA 1 C +SPAlarm 0x0200 4 l +SPClikCaret 0x0209 1 C +SPConfig 0x01FB 1 C +SPFont 0x0204 2 s +SPKbd 0x0206 1 C +SPMisc2 0x020B 1 C +SPPortA 0x01FC 2 s +SPPortB 0x01FE 2 s +SPPrint 0x0207 1 C +SPValid 0x01F8 1 C +SPVolCtl 0x0208 1 C +SaveUpdate 0x09DA 2 s +SaveVisRgn 0x09F2 4 L RgnHandle +ScrDmpEnb 0x02F8 1 C +ScrHRes 0x0104 2 s +ScrVRes 0x0102 2 s +ScrapCount 0x0968 2 s +ScrapHandle 0x0964 4 L Handle +ScrapSize 0x0960 4 l +ScrapState 0x096A 2 s +ScrnBase 0x0824 4 L +SdVolume 0x0260 1 C +SoundBase 0x0266 4 L +SoundLevel 0x027F 1 C +SoundPtr 0x0262 4 L +StackLowPoint 0x0110 4 L +SynListHandle 0x0D32 4 L Handle +SysEvtMask 0x0144 2 s +SysFontFam 0x0BA6 2 s +SysFontSize 0x0BA8 2 s +SysMap 0x0A58 2 s +SysMapHndl 0x0A54 4 L Handle +SysZone 0x02A6 4 L THz +TEScrpHandle 0x0AB4 4 L Handle +TEScrpLength 0x0AB0 2 S +TESysJust 0x0BAC 2 s +TheGDevice 0x0CC8 4 L GDHandle +TheMenu 0x0A26 2 s +TheZone 0x0118 4 L THz +Ticks 0x016A 4 L +Time 0x020C 4 l +TimeDBRA 0x0D00 2 s +TimeSCCDB 0x0D02 2 s +TimeSCSIDB 0x0B24 2 s +TmpResLoad 0x0B9F 1 C +TopMapHndl 0x0A50 4 L Handle +TopMenuItem 0x0A0A 2 s +UTableBase 0x011C 4 L +UnitTableEntryCount 0x01D2 2 s +VIA 0x01D4 4 L +WMgrPort 0x09DE 4 L GrafPtr +WidthListHand 0x08E4 4 L Handle +WidthPtr 0x0B10 4 L +WidthTabHandle 0x0B2A 4 L Handle +WindowList 0x09D6 4 L GrafPtr +WordRedraw 0x0BA5 1 C +END_GLOBALS + +sub _Getter { + my($addr, $size, $format, $package) = @_; + my ($data) = bless(\$addr, "Ptr")->get(0, $size); + $data = unpack($format, $data) unless $format eq "-"; + return $package ? bless(\$data, $package) : $data; +} + +sub _Setter { + my($addr, $format, $package, $data) = @_; + $data = $$data if $package; + $data = pack($format, $data) unless $format eq "-"; + bless(\$addr, "Ptr")->set(0, $data); +} + +AUTOLOAD { + { + my ($gs, $var) = ($AUTOLOAD =~ /LM([GS])et(\w+)/); + my ($start) = index($sGlobals, "\n$var"); + croak "$AUTOLOAD not defined" if ($start == -1); + ++$start; + my ($def) = + substr($sGlobals, $start, index($sGlobals, "\n", +$start)-$start); + my ($name, $addr, $size, $format, $package) = split(" ", $def); + if ($gs eq "G") { + eval<<END_GETTER; +sub $AUTOLOAD { + _Getter($addr, $size, "$format", "$package"); +} +END_GETTER + } else { + eval<<END_SETTER; +sub $AUTOLOAD { + _Setter($addr, "$format", "$package", \$_[0]); +} +END_SETTER + } + goto &$AUTOLOAD; + } +} + +__END__ + +=head2 Getting Variable Values + +=over 4 + +=item LMGetScrVRes + +=item LMGetScrHRes + +=item LMGetMemTop + +=item LMGetBufPtr + +=item LMGetHeapEnd + +=item LMGetTheZone + +=item LMGetUTableBase + +=item LMGetCPUFlag + +=item LMGetApplLimit + +=item LMGetSysEvtMask + +=item LMGetRndSeed + +=item LMGetSEvtEnb + +=item LMGetTicks + +=item LMGetKeyThresh + +=item LMGetKeyRepThresh + +=item LMGetVIA + +=item LMGetSCCRd + +=item LMGetSCCWr + +=item LMGetSPValid + +=item LMGetSPATalkA + +=item LMGetSPATalkB + +=item LMGetSPConfig + +=item LMGetSPPortA + +=item LMGetSPPortB + +=item LMGetSPAlarm + +=item LMGetSPFont + +=item LMGetSPKbd + +=item LMGetSPPrint + +=item LMGetSPVolCtl + +=item LMGetSPClikCaret + +=item LMGetSPMisc2 + +=item LMGetTime + +=item LMGetBootDrive + +=item LMGetSFSaveDisk + +=item LMGetKbdLast + +=item LMGetKbdType + +=item LMGetMemErr + +=item LMGetSdVolume + +=item LMGetSoundPtr + +=item LMGetSoundBase + +=item LMGetSoundLevel + +=item LMGetCurPitch + +=item LMGetROM85 + +=item LMGetPortBUse + +=item LMGetSysZone + +=item LMGetApplZone + +=item LMGetROMBase + +=item LMGetRAMBase + +=item LMGetDSAlertTab + +=item LMGetABusVars + +=item LMGetABusDCE + +=item LMGetDoubleTime + +=item LMGetCaretTime + +=item LMGetScrDmpEnb + +=item LMGetBufTgFNum + +=item LMGetBufTgFFlg + +=item LMGetBufTgFBkNum + +=item LMGetBufTgDate + +=item LMGetLo3Bytes + +=item LMGetMinStack + +=item LMGetDefltStack + +=item LMGetGZRootHnd + +=item LMGetGZMoveHnd + +=item LMGetFCBSPtr + +=item LMGetDefVCBPtr + +=item LMGetCurDirStore + +=item LMGetFSFCBLen + +=item LMGetScrnBase + +=item LMGetMainDevice + +=item LMGetDeviceList + +=item LMGetQDColors + +=item LMGetCrsrBusy + +=item LMGetWidthListHand + +=item LMGetJournalRef + +=item LMGetCrsrThresh + +=item LMGetCurApRefNum + +=item LMGetCurrentA5 + +=item LMGetCurStackBase + +=item LMGetCurJTOffset + +=item LMGetCurPageOption + +=item LMGetHiliteMode + +=item LMGetPrintErr + +=item LMGetScrapSize + +=item LMGetScrapHandle + +=item LMGetScrapCount + +=item LMGetScrapState + +=item LMGetROMFont0 + +=item LMGetApFontID + +=item LMGetWindowList + +=item LMGetSaveUpdate + +=item LMGetPaintWhite + +=item LMGetWMgrPort + +=item LMGetGrayRgn + +=item LMGetGhostWindow + +=item LMGetAuxWinHead + +=item LMGetCurActivate + +=item LMGetCurDeactive + +=item LMGetOldStructure + +=item LMGetOldContent + +=item LMGetSaveVisRgn + +=item LMGetOneOne + +=item LMGetMinusOne + +=item LMGetTopMenuItem + +=item LMGetAtMenuBottom + +=item LMGetMenuList + +=item LMGetMBarEnable + +=item LMGetMenuFlash + +=item LMGetTheMenu + +=item LMGetTopMapHndl + +=item LMGetSysMapHndl + +=item LMGetSysMap + +=item LMGetCurMap + +=item LMGetResLoad + +=item LMGetResErr + +=item LMGetFScaleDisable + +=item LMGetANumber + +=item LMGetACount + +=item LMGetTEScrpLength + +=item LMGetTEScrpHandle + +=item LMGetAppParmHandle + +=item LMGetDSErrCode + +=item LMGetDlgFont + +=item LMGetWidthPtr + +=item LMGetATalkHk2 + +=item LMGetHWCfgFlags + +=item LMGetWidthTabHandle + +=item LMGetLastSPExtra + +=item LMGetMenuDisable + +=item LMGetROMMapInsert + +=item LMGetTmpResLoad + +=item LMGetIntlSpec + +=item LMGetWordRedraw + +=item LMGetSysFontFam + +=item LMGetSysFontSize + +=item LMGetMBarHeight + +=item LMGetTESysJust + +=item LMGetLastFOND + +=item LMGetFractEnable + +=item LMGetMMU32Bit + +=item LMGetTheGDevice + +=item LMGetDeskCPat + +=item LMGetTimeDBRA + +=item LMGetTimeSCCDB + +=item LMGetSynListHandle + +=item LMGetMenuCInfo + +=item LMGetTimeSCSIDB + +=item LMGetCursorNew + +=item LMGetMouseButtonState + +=item LMGetMouseTemp + +=item LMGetRawMouseLocation + +=item LMGetMouseLocation + +=item LMGetHighHeapMark + +=item LMGetStackLowPoint + +=item LMGetROMMapHandle + +=item LMGetUnitTableEntryCount + +=item LMGetDiskFormatingHFSDefaults + +=item LMGetPortAInfo + +=back + +=head2 Changing Variable Values + +=over 4 + +=item LMSetScrVRes + +=item LMSetScrHRes + +=item LMSetMemTop + +=item LMSetBufPtr + +=item LMSetHeapEnd + +=item LMSetTheZone + +=item LMSetUTableBase + +=item LMSetCPUFlag + +=item LMSetApplLimit + +=item LMSetSysEvtMask + +=item LMSetRndSeed + +=item LMSetSEvtEnb + +=item LMSetTicks + +=item LMSetKeyThresh + +=item LMSetKeyRepThresh + +=item LMSetVIA + +=item LMSetSCCRd + +=item LMSetSCCWr + +=item LMSetSPValid + +=item LMSetSPATalkA + +=item LMSetSPATalkB + +=item LMSetSPConfig + +=item LMSetSPPortA + +=item LMSetSPPortB + +=item LMSetSPAlarm + +=item LMSetSPFont + +=item LMSetSPKbd + +=item LMSetSPPrint + +=item LMSetSPVolCtl + +=item LMSetSPClikCaret + +=item LMSetSPMisc2 + +=item LMSetTime + +=item LMSetBootDrive + +=item LMSetSFSaveDisk + +=item LMSetKbdLast + +=item LMSetKbdType + +=item LMSetMemErr + +=item LMSetSdVolume + +=item LMSetSoundPtr + +=item LMSetSoundBase + +=item LMSetSoundLevel + +=item LMSetCurPitch + +=item LMSetROM85 + +=item LMSetPortBUse + +=item LMSetSysZone + +=item LMSetApplZone + +=item LMSetROMBase + +=item LMSetRAMBase + +=item LMSetDSAlertTab + +=item LMSetABusVars + +=item LMSetABusDCE + +=item LMSetDoubleTime + +=item LMSetCaretTime + +=item LMSetScrDmpEnb + +=item LMSetBufTgFNum + +=item LMSetBufTgFFlg + +=item LMSetBufTgFBkNum + +=item LMSetBufTgDate + +=item LMSetLo3Bytes + +=item LMSetMinStack + +=item LMSetDefltStack + +=item LMSetGZRootHnd + +=item LMSetGZMoveHnd + +=item LMSetFCBSPtr + +=item LMSetDefVCBPtr + +=item LMSetCurDirStore + +=item LMSetFSFCBLen + +=item LMSetScrnBase + +=item LMSetMainDevice + +=item LMSetDeviceList + +=item LMSetQDColors + +=item LMSetCrsrBusy + +=item LMSetWidthListHand + +=item LMSetJournalRef + +=item LMSetCrsrThresh + +=item LMSetCurApRefNum + +=item LMSetCurrentA5 + +=item LMSetCurStackBase + +=item LMSetCurJTOffset + +=item LMSetCurPageOption + +=item LMSetHiliteMode + +=item LMSetPrintErr + +=item LMSetScrapSize + +=item LMSetScrapHandle + +=item LMSetScrapCount + +=item LMSetScrapState + +=item LMSetROMFont0 + +=item LMSetApFontID + +=item LMSetSaveUpdate + +=item LMSetPaintWhite + +=item LMSetWMgrPort + +=item LMSetWindowList + +=item LMSetGhostWindow + +=item LMSetAuxWinHead + +=item LMSetCurActivate + +=item LMSetCurDeactive + +=item LMSetOldStructure + +=item LMSetOldContent + +=item LMSetGrayRgn + +=item LMSetSaveVisRgn + +=item LMSetOneOne + +=item LMSetMinusOne + +=item LMSetTopMenuItem + +=item LMSetAtMenuBottom + +=item LMSetMenuList + +=item LMSetMBarEnable + +=item LMSetMenuFlash + +=item LMSetTheMenu + +=item LMSetTopMapHndl + +=item LMSetSysMapHndl + +=item LMSetSysMap + +=item LMSetCurMap + +=item LMSetResLoad + +=item LMSetResErr + +=item LMSetFScaleDisable + +=item LMSetANumber + +=item LMSetACount + +=item LMSetTEScrpLength + +=item LMSetTEScrpHandle + +=item LMSetAppParmHandle + +=item LMSetDSErrCode + +=item LMSetDlgFont + +=item LMSetWidthPtr + +=item LMSetATalkHk2 + +=item LMSetHWCfgFlags + +=item LMSetWidthTabHandle + +=item LMSetLastSPExtra + +=item LMSetMenuDisable + +=item LMSetROMMapInsert + +=item LMSetTmpResLoad + +=item LMSetIntlSpec + +=item LMSetWordRedraw + +=item LMSetSysFontFam + +=item LMSetSysFontSize + +=item LMSetMBarHeight + +=item LMSetTESysJust + +=item LMSetLastFOND + +=item LMSetFractEnable + +=item LMSetMMU32Bit + +=item LMSetTheGDevice + +=item LMSetDeskCPat + +=item LMSetTimeDBRA + +=item LMSetTimeSCCDB + +=item LMSetSynListHandle + +=item LMSetMenuCInfo + +=item LMSetTimeSCSIDB + +=item LMSetCursorNew + +=item LMSetMouseButtonState + +=item LMSetMouseTemp + +=item LMSetRawMouseLocation + +=item LMSetMouseLocation + +=item LMSetHighHeapMark + +=item LMSetStackLowPoint + +=item LMSetROMMapHandle + +=item LMSetUnitTableEntryCount + +=item LMSetDiskFormatingHFSDefaults + +=item LMSetPortAInfo + +=back + +=head1 BUGS/LIMITATIONS + +=head1 FILES + +=head1 AUTHOR(S) + +Matthias Ulrich Neeracher <[EMAIL PROTECTED]> + +=cut + End of Patch.