Macintosh System Software 6.0 Changes (part 3 of 4)


System File, Continued
----------------------

New and Changed Resources

ptch id = 0 TextEdit, no longer in all three PTCH files.
ptch id = 1 Menu Manager, no longer in Plus & SE PTCH files.
ptch id = 2 Notification Manager, new (see separate note).
ptch id = 3 Sound Manager, new and improved.
PTCH id = -1 Checks for missing patch resources at startup.
MBDF id = 0 The id has been changed (was MBDF id=8).
vers id = -2 New 'version' resource for files; see explanation below.
vers id = -102 New 'version' resource for products; see explanation.


Removed Resources

PACK id = 4 SANE, floating point package (now in all ROMs).
PACK id = 5 SANE, elementary math functions (now in all ROMs).
PACK id = 7 SANE, various conversion routines (now in all ROMs).
WDEF id = 0 Window definition procedure (now in all ROMs).
DRVR id = 9 AppleTalk, protocol package handler (now in all ROMs).
DRVR id = 10 AppleTalk, transaction protocol handler (now in all ROMs).
NBPC 1 & 2 Now obsolete.


Version Resource

To avoid confusion, all system files are now version 6.0, with the exception
of the Finder, which is 6.1. With System Software 7.0, ALL files wil have the
same version number. Other files in the System Software Update now contain
"System Software Update 6.0" in the "Get Info" window as well as their
logical version number.

The Finder now displays version information according to a file's 'vers'
resources.


Fonts

New York 20, 24 and Geneva 20, 24 have been removed from the System on the
Utility 1 disk to resolve space problems.


The Chooser

- The bug of not closing device files (except, of course, the current
printer) has been fixed.

- Chooser now remembers the window position.

- Chooser now uses the Palette Manager.

- Chooser can now list sounds in the Suitcase files (below the System file).

- The scramble bug, if a cdev (Color) called _DrawDialog, was fixed.


Other Desk Accessories

- The Alarm Clock now remembers the window position. You can now set hours
greater than 12 by typing if Alarm Clock was opened in 12-hour mode and
then 24-hour mode was set (using the Control panel).

- The Calculator now remembers the window position.

- Find File now remembers the window position.

- Scrapbook now remembers the window position.


Installer Scripts and Resources

PTCH id = -1 is a new patch resource that checks if the machine you are
starting up on has the proper PTCH resource(s) in the system file. If the
proper patch code is not present, the user can't boot (a message will
appear). This was a designed specifically for use with MiniScripts (see
below), so this patch is installed during MiniScript installation.

The bug of not deleting owned resources unless the owner was in the src
file has been fixed.

Empty System files are now created on MFS disks too for installing on blank
MFS disks.

The Installer now looks for a AppleShare server before blessed folder.


Font/DA Mover

Support for NFNTs and styled fonts has been added.

A confirmation alert was added for the Remove process.


Finder File
-----------

Disk Copy: when copying an entire 800K disk to another, the Finder now uses
an "image" copy to create an exact duplicate of the original.

The name of the Print Catalog command has been changed to Print Directory.

The maximum number of windows can be set by changing the last word in the
LAYO resource.


MultiFinder File
----------------
New Features

MultiFinder now copies the WDs of an application that calls _Launch and
includes them in the AppParmHandle.

PrintMonitor is broken down into 5 segments, to allow it to perform in 72K
instead of 78K.

Print Monitor now gives visual notification when printing has been stopped
via the PrintMonitor window.


MultiFinder Fixes

Double-clicking on a document, when the application is already open, now
opens the document. The user no longer sees "The application is already
open." Including the resources 'mstr' #102 and 'mstr' #103 in an
application allows you to override the default "File" and "Open..." strings
respectively when MultiFinder searches for the open menu item. Resources
'mst#' #102 and #103 can be used instead, if necessary (for multiple
languages). The Standard File package was patched to implement this.

Background notification support is added. See the section on Notification
Manager.

There is a new bit (bit 9) in the SIZE resource, to allow an application
to get mouse clicks in its front window during layer switches.

MultiFinder 6.0 does not work with pre System 4.2 files (notified through
an alert box). This was done to save 3K on the System Disk.

Developers should be even more careful about fooling around with the enable
flag for the Apple menu. In particular, applications are making assumptions
that the second item is a dashed line, and then disabling it (often directly
and not by calling _DisableItem) on the fly. The suggested way to do this
is to set the flags correctly in the "Menu" resource for the Apple menu at
compile time.

The menu bar Icon no longer inverts during shutdown.

The bug where an application in the foreground should not call
WaitNextEvent with a sleep value > 50 is fixed.

The bug that would cause an application to crash when selecting a menu
key for a pop-up menu has been fixed.

Mouse clicks no longer get lost.

Files opened by an application will be closed, even if the application
crashes (MultiFinder monitors the files opened by each application and
closes remaining files itself).

MultiFinder no longer crashes with applications that have no Apple menu,
but do use hierarchical menus.

String list resources ('mst#',100) and ('mst#', 101) can be used instead of
the old 'mstr' strings to override the names used when MultiFinder looks
for the "Quit" menu item.

The old _Launch call, which applications still use (for example, in
Transfer... menu items), now just switch to an application that is already
running. As a consequence, trying to close the working directory of the
launched application's resource file returns an error.

Applications no longer have to pass fake (de)activate events to DAs in
their layers when they receive suspend/resume events.

Applications that have the MultiLaunch bit set will no longer lose their
SIZE resource attributes if switch-launched from an application other than
the Finder.

The "Out of Memory" alert no longer appears if a DA could not be found; a
more appropriate message appears.

The clipboard is no longer lost when the user chooses Cut in the Edit menu.
It turns out that this never worked!

Before, running two applications with the same name trashed the icon, in
the Apple menu, of the launched application when quitting the other. This
problem has been fixed.

Resource manager code that was causing crashes because of a bug in the MPW
grow zone procedure has been fixed. The problem was that MPW was calling
_CloseResFile inside the grow zone Proc, which was getting called from
_GetResource. This caused a reentrancy problem for the MultiFinder resource
Manager patches.

Synthesized fonts are no longer being put in the application heap.

MultiFinder's temporary memory requests should be located higher in memory,
and are thus less likely to pin down the system heap.

The icon in the menu bar is now exactly the same color as the text in the
menu bar.

Background applications that crash before the first call to _GetNextEvent
no longer crash the system.

DrawMenuBar will not do anything when called from an application that is in
the process of being switched out. This significantly cuts down on menu bar
flicker.

Drivers that are part of an application now get SystemTask time if the
application gets background time.

MacroMaker no longer crashes with Print Monitor.

Applications that call _Launch on themselves no longer crash.

Mouse-moved events now show up more often. Is is still arguable as to
whether they work correctly.

MultiFinder now handles the case where a background application has called
_InitWindows, but has not yet called _GetNextEvent. In the past, it would
quit or crash. Previously, _ExitToShell would return to the caller.

MultiFinder now calls _Sound Dead when an application quits. This fixes
the bug where system beep stopped working.

The bug where despooling would never occur when background printing from a
HyperCard script has been fixed.

The bug where booting on a Macintosh II with >1 bit depth and a large number
of INITs would crash MultiFinder on startup has been fixed.


Continued
---------
This article continued in "Macintosh System Software 6.0 Changes (part
4 of 4)".


Published Date: Feb 18, 2012