Being a compendium of revised and
new features of interest to software developers in release
8.5 of the Mac OS.
This Technote
discusses changes and corrections in the next generation of
Mac OS: Mac OS 8.5. This system follows Mac
OS 8.1 and contains several new and revised features
including:
- more PowerPC code
- consolidated control panels
- faster system startup time
- improved AppleScript performance
- new Unicode text drawing facilities
- new HTML-based help facilities
Updated: [Oct 26 1998]
Hardware Requirements
Mac OS 8.5 can be installed on any Macintosh
that originally shipped with a PowerPC processor that has
at least 16 megabytes of physical RAM and a minimum of 24
megabytes of logical RAM. Also, Mac OS 8.5 can be
installed in the Mac OS X Server DR2 Blue Box by way of standard
install.
Mac OS 8.5 is tested and qualified by Apple to run on
Apple PowerPC-based Mac OS computers. (Mac OS 8.5 is not
tested or qualified by Apple for use on clone Mac
OS-based systems.)
Back to top
Installation
|
Install Mac OS
8.5
|
This is an improved version of the "Install Mac
OS" application provided with Mac OS 8.0 and 8.1. This
new "Install Mac OS" application offers an improved user
experience by allowing the user to customize components
before any installation begins and not requiring further
user intervention until the installation is complete.
The "Install Mac OS" application program requires
System 7.0 or later to run. Typically, users will boot
from the installation CD.
The "Install Mac OS" application will update a System
Folder whose version is 7.1 or later. The installer will
perform a "clean" installation onto volumes that contain
earlier versions of the system software (or no system
software at all).
New and improved features include:
- File & Target Lists -- a more compact way of
storing file copy commands to get around Resource
Manager limitations.
- Alias Atom -- an atom for creating aliases during
installations.
- Enhancements to the Installer Engine AE
suite.
Related Materials:
Back to top
|
Finder 8.5
|
Finder 8.5 offers improved window redraw
performance, faster file copies, and several other new,
improved, or extended user interface elements. Specific
additions include:
- A new dialog allows users to repair broken
aliases.
- Using contextual menus, an alias of any Finder
object can be added to the "Favorites" folder.
- Using contextual menus, AppleScript scripts
triggered by various Finder actions can be attached to
any folder.
- Sounds now play in response to many user
actions.
- Finder's resource fork is now read-only. In many
cases, this will prevent accidental corruption of
Finder.
- The system stability warning dialog box is now
displayed when Finder is re-launched after a system
error.
- It is now once again possible for an application
to specify
'alis' as a file type in its
bundle resources to indicate that unresolved alias
files should be sent to its "open documents" Apple
event handler.
- Developers can designate certain files as "busy"
files. Busy files are files that are in the process of
being created or copied, regardless of whether File
Manager has them open. The Finder will treat any file
whose type is set to zero or to a type within the
range
'bzy ' , 'bzy!' , ...,
'bzy?' as a busy file and will not
attempt to change its type or creator. The range
'bzy ' , 'bzy!' , ...,
'bzy?' is provided for developers wishing
to animate a file's icon during its creation.
Compatibility Note:
Archive developers should store the entire
contents of both the FInfo and
FXinfo records and the DInfo
and DXInfo records when archiving files
and directories. All fields in these records should be
preserved, including flags and fields marked as
reserved (with the exception of the "inited" bit for
files containing desktop database information).
|
Compatibility Note:
Although frFlags and
fdFlags are located at the same offset in
catalog records, some of the flags now have different
meanings when the catalog record refers to a file
versus when the catalog record refers to a directory.
Developers should not assume flags that are only
defined for files are unused when the catalog record
refers to a directory. See the flag descriptions in
<Finder.h> for more information
about individual flags.
|
Back to top
Autorouting and Extended
Routing
typedef struct
{
OSType creator; // set to zero
OSType fileType; // set to zero
OSType targetFolder; // set to 'macs'
OSType destinationFolder; // the folder to route into
OSType reserved; // set to zero
}
RoutingResourceEntry;
|
The creator , fileType ,
and reserved fields should be set to zero.
When the file is dropped into a folder of the type
specified in targetFolder , it will be routed
to the folder specified in
destinationFolder . Currently, only the
System Folder is supported for the
targetFolder field, so this field should be
set to the System Folder's FindFolder ID
('macs' ). Example: if the file should be
routed to the "Preferences" folder, the
destinationFolder field should contain
'pref' .
Before the Finder will look for the
'rout' resource in a file, the routing
information flag in the
ioFlXFndrInfo.fdXFlags must be turned on.
Developers can access this flag using the
kExtendedFlagHasRoutingInfo mask defined in
<Finder.h> .
Compatibility Note:
Some of the fields documented in
FInfo , DInfo ,
FXInfo , and DXInfo no longer
accurately reflect how these fields are actually used
by the system. Now, the accurate definition is
provided by the FileInfo ,
FolderInfo ,
ExtendedFileInfo , and
ExtendedFolderInfo data structures,
respectively. In particular, they contain the
definition of where to find the routing bit.
|
Back to top
New Finder display facilities
- The Get Info window can now display multiple panels
of information.
- Finder preferences are now consolidated into a single
multiple panel window.
- A new control has been added to the View Options
window, allowing users to revert the current view to a
standard view.
- List view columns are now resizable.
- The new Finder can display badged icons.
- Support for proportional scroll bars has been
added.
- Proxy icons are displayed in window title bars.
- View font and size is now set in the Appearance
control panel.
- To override the default message displayed by the
Finder when a file cannot be opened, developers may
include a
'STR ' ID = -16397 resource in any
file's resource fork. This message text will be displayed
when the user attempts to open a file that cannot be
opened, overriding the Finder's default message.
- In previous versions of the Finder, files with their
custom icon bit set that did not contain a suite of
custom icons were not handled correctly. The Finder
now resets the custom icon bit and uses the default icon
for these files.
Compatibility Note:
Starting with Finder 8.5, the invisible
"Icon<cr>" file placed in directories may
contain resource-based information used by the Finder
other than an icon suite. It should only be deleted
if it contains no resources at all.
|
- The Finder now uses the new
gestaltVMInfoType Gestalt selector to
determine how information about virtual memory will be
displayed in the "About This Computer" window. Developers
wishing to control how the Finder displays virtual memory
information may redefine this selector to return any of
the values shown in Table 1. Table 1 describes the
various virtual memory information display modes
available in this version of the Finder.
Table 1. Finder virtual memory display
modes determined by the value of the
gestaltVMInfoType
('vmin' ) selector.
Selector Name
|
Value
|
VM Information
Displayed
|
gestaltVMInfoSizeStorageType
|
0
|
Display either the string "virtual
memory on" or the string "virtual
memory off", the size of the backing
store, and the name of the volume where
the store is located (the
default).
|
gestaltVMInfoSizeType
|
1
|
Display either the string "virtual
memory on" and the size of the backing
store or the string "virtual memory
off".
|
gestaltVMSimpleType
|
2
|
Display either the string "virtual
memory on" or the string "virtual
memory off".
|
gestaltVMNoneType
|
3
|
No virtual memory information will
be displayed, even when virtual memory
is turned on.
|
Back to top
Internet Location Files and
Clipping Files
- Finder supports enhanced text clipping naming. Text
clipping file names are now generated using the first few
characters in the text supplied as the text clipping
(truncated using the ellipse character as appropriate).
Previous Finders would name text clippings as 'text
clipping', 'text clipping 1', and so on. For example,
the new Finder may name a text clipping generated using
this sentence as "For example, the...". This new facility
supplements the clipping file naming facilities
introduced with MacOS 8.0 (see the "Controlling
Clipping File Names" section of Technote TN1102,
"Mac OS 8" for more information).
- Both Internet location files and clipping files are
created by the Finder when it receives a Drag-and-Drop
command. The type of file created depends on the contents
of the drag as described below.
- Clipping files created by the Finder will have one of
the types listed in Table 2. All clipping files have a
creator type of
kClippingCreator
('drag' ).
Table 2. Clipping file types created by
Finder.
Constant Name
|
OSType
|
Description
|
kClippingPictureType
|
'clpp'
|
a QuickDraw picture
('PICT' )
|
kClippingTextType
|
'clpt'
|
contains ASCII text
('TEXT' )
|
kClippingSoundType
|
'clps'
|
contains a sound resource of type
'snd '
|
kClippingUnknownType
|
'clpu'
|
unknown data
|
Finder will create an Internet location document
when it receives a drag containing an Universal Resource
Locator (URL). A drag containing an URL will be noticed
by the Finder in one of two ways:
- If the drag contains data of flavor type
'url ' , then the data will be treated as
an URL.
- If the drag contains data of flavor type
'TEXT' , then Finder will examine the text
data attached to the flavor and determine if it is an
URL.
When it finds URL information, Finder will create an
Internet location file assigning the file type according
to the URL type. Table 3 lists the file types the Finder
will assign to Internet location files. Internet location
files created by the Finder will have a creator type of
kInternetLocationCreator
('drag' ).
Table 3. Internet location file types assigned by the Finder.
Constant Name
|
OSType
|
Description
|
kInternetLocationHTTP
|
'ilht'
|
an http address
|
kInternetLocationFTP
|
'ilft'
|
a ftp server address
|
kInternetLocationFile
|
'ilfi'
|
a file on disk
|
kInternetLocationMail
|
'ilma'
|
an email address
|
kInternetLocationNNTP
|
'ilnw'
|
news group or article
|
kInternetLocationAFP
|
'ilaf'
|
Apple Filing Protocol address
|
kInternetLocationAppleTalk
|
'ilat'
|
an AppleTalk address
|
kInternetLocationGeneric
|
'ilge'
|
some other resource
|
Compatibility Note:
Specific file formats and contents of both
clipping files and Internet location files are
undocumented and subject to change without
notice.
|
Back to top
AppleScript Support
- Additions to Finder's AppleScript support
include:
- terminology for new features
- new view options
- attach and remove actions from folders
- list actions attached to a folder
- execute a handler when a folder is opened,
closed, added to, has items removed from it, or has
its window moved or resized
- new support for scripting existing features
- query and change information about any file or
folder
- open, close, and reposition windows and
icons
- query information about running processes
- query or set sharing privileges
- move files to the Trash
- eject disks
- restart or shut down the machine
- create folders or alias files
Related Materials:
Back to top
|
Apple Help
|
Apple Help provides system-wide instructional
help services for virtually all aspects of Mac OS. The
Apple Help technology has two main components: Help
Viewer and Apple Guide.
Apple Guide 2.3
In Mac OS 8.5, Apple Guide is used to coach users
through sequences of commands required to perform a task.
Apple Guide 2.3 provides the following features:
- supports calling a specific Apple Guide sequence
by name from AppleScript
- backwards compatibility with older guide files
- integrated with Help Viewer
Help
Viewer 1.0
Help Viewer is a lightweight HTML-rendering
application that allows users to conveniently browse
online help materials. Help Viewer provides the following
facilities:
- Uses the Apple Information Access Toolkit (AIAT)
with the installed help files. The results are
displayed in a dynamically generated HTML page.
- AppleScript support allows callers to search for
any topic or string and display the results.
- URL links can be used to run AppleScript
scripts.
- URL links can be used to open Apple Guide
sequences.
Apple recognizes many developers are interested in
more information, but no further developer-level
information is available at this time.
Related Materials:
Back to top
|
Inside the System File
|
The System file contains code and resources for
running the computer. This section describes new
features, changes, and bug fixes in the System file. The
functionality provided by the System file is always
present under Mac OS 8.5, even when the shift key is held
down at system startup.
General
- In Mac OS 8.5, the emulated 68K processor runs in
user mode even when VM is off. All 68K interrupt code
runs in supervisor mode. As a result, all 68K interrupt
code utilizes the interrupt stack pointer instead of the
user stack pointer (the stack used by non-interrupt
code). This change reduces the chance of the stack
overrunning the application's heap zone during interrupt
processing.
WARNING:
Developers should not assume the emulated 68K
processor is running in supervisor mode when Virtual
Memory is OFF.
|
Developers who require access to supervisor mode
68K instructions can use the
_EnterSupervisorMode trap to switch the
processor mode. The assembler code shown in Listing 1
illustrates the correct way to call the
_EnterSupervisorMode trap and enter
supervisor mode. Here, the result returned by
DebuggerGetMax is examined to determine if
_EnterSupervisorMode (selector 8) is
available. If it is available,
_EnterSupervisorMode is called.
Listing 1. The correct way to ensure the
68K processor is in supervisor mode.
; Is _DebugUtil available?
; Code running on a IIci or later can skip this step.
move.w #_Unimplemented,d0
_GetToolTrapAddress
move.l a0,-(sp)
move.l #$A08D,d0 ; get _DebugUtil
_GetToolTrapAddress
cmpa.l (sp)+,a0 ; was this previously
; unimplemented?
beq.s @noEnterSupervisorMode
; Is the _EnterSupervisorMode selector available?
_DebuggerGetMax ; check how many _DebugUtil
; selectors are implemented
cmpi.l #8,d0 ; is selector 8 available?
blt.s @noEnterSupervisorMode ; EnterSupervisorMode isn't
; available
_EnterSupervisorMode ; switch to supervisor mode
; (switches stacks)
move.w d0,-(sp) ; and save the previous SR contents
; on the stack
bra.s @inSupervisorMode
; If _EnterSupervisorMode wasn't available, then put
; sr on the stack
@noEnterSupervisorMode
move sr,-(sp) ; save the current SR
@inSupervisorMode
; ...
; do stuff in supervisor mode
; remember that the stack has been swapped if we switched
; from user mode to supervisor mode.
; ...
move (sp)+,sr ; restore the SR
|
Compatibility Note:
DebuggerGetMax is available on all
machines supported by Mac OS 8.5. On other systems,
developers must test for the _DebugUtil
trap before calling
DebuggerGetMax .Testing for VM to
determine if the _EnterSupervisorMode
trap should be used is considered a programming error:
developers should use the above method instead.
|
- Various managers, in particular Font Manager, are
considerably less memory-hungry, both on a per-process
and system-wide basis.
- Several of the managers are now entirely implemented
in PowerPC code.
- The dialog informing the user that an improper
shutdown occurred has been redesigned. It now includes an
option to run Disk First Aid before continuing the
startup process and will time out after two minutes.
Related Materials:
Alias Manager
The Alias Manager is the part of the operating
system that communicates with the File Manager to
maintain alias records used to store references to file
and folder locations. The Alias Manager does not create
Finder alias files: the Finder creates these files and
stores alias records created by the Alias Manager in
them.
- The Alias Manager's search methods have been
broadened to include cases where the simple search for an
existing file on a mounted volume fails, yet the absolute
path stored in the alias record resolves to an existing
file. In these cases, the Alias Manager will return a
reference to the file found using the absolute path.
- The Alias Manager API now provides the following new
routines:
IsAliasFile
OSErr IsAliasFile(const FSSpec *fileFSSpec,
Boolean *aliasFileFlag,
Boolean *folderFlag);
|
fileFSSpec is a pointer to a file
specification record referring to a file.
aliasFileFlag is a pointer to a Boolean
variable set to true if the file is an alias file
created by the Finder.
folderFlag is a pointer to a Boolean
variable set to true if the alias refers
to folder.
The function IsAliasFile sets
*aliasFileFlag to true if the file
referred to by the fileFSSpec parameter is an alias
file created by the Finder.
ResolveAliasWithMountFlags
OSErr ResolveAliasWithMountFlags(const FSSpec *fromFile,
AliasHandle alias,
FSSpec *target,
Boolean *wasChanged,
unsigned long mountFlags);
|
fromFile , if not NULL , is
used to resolve relative aliases.
alias is the AliasHandle to
resolve.
target contains a pointer to an
FSSpec record that will refer to the file or
directory referred to by the alias when the function
completes successfully.
wasChanged refers to a
Boolean variable that will be set to true
if the alias record has been modified by
ResolveAliasWithMountFlags .
mountFlags can be set to
kResolveAliasFileNoUI to prevent any user
interaction, including disk switch alerts, while the
alias is being resolved.
The routine ResolveAliasWithMountFlags is
identical to ResolveAlias with the exception
that it provides the mountFlags parameter,
allowing callers to suppress disk switch alerts.
ResolveAliasFileWithMountFlags
OSErr ResolveAliasFileWithMountFlags(FSSpec *theSpec,
Boolean resolveAliasChains,
Boolean *targetIsFolder,
Boolean *wasAliased,
unsigned long mountFlags);
|
theSpec on input refers to a
FSSpec record that refers to an alias file.
If the function completes successfully, it will refer to
the file or the directory that was referred to by the
alias file.
resolveAliasChains turns on or off
resolution of chains of alias files (for example, an
alias file that refers to an alias file that finally
refers to the target file).
targetIsFolder points to a
Boolean variable that will be set to true
if the target referenced by the alias file was found to be a
folder.
wasAliased returns true if
theSpec referred to an alias file.
mountFlags can be set to
kResolveAliasFileNoUI to prevent any user
interaction, including disk switch alerts, while the
alias is being resolved.
The routine
ResolveAliasFileWithMountFlags is identical
to ResolveAliasFile with the exception that
it provides the mountFlags parameter,
allowing callers to suppress disk switch alerts.
Compatibility Note:
Before calling IsAliasFile ,
ResolveAliasWithMountFlags , or
ResolveAliasFileWithMountFlags ,
developers must determine if these routines are
available by testing the Alias Manager gestalt
value's gestaltAliasMgrResolveAliasFileWithMountOptions
bit. Also, see the InterfaceLib section for important
information about linking with the new
InterfaceLib.
|
- The routines
NewAliasMinimal or
NewAlias could cause heap corruption if an
invalid FSSpec record with the length of the
name field greater than 63 bytes was provided as a
parameter. These routines now return a
paramErr error when they receive an invalid
FSSpec record.
Related Materials:
Back to top
Appearance Manager 1.1
The Appearance Manager provides facilities for
providing a consistent appearance for graphical user
interface elements. The Appearance Manager is not to be
confused with the Appearance extension, which is
compatible only with previous versions of Mac OS, and
provides updates to Control Manager, Dialog Manager, Menu
Manager, and Window Manager, as well as providing the
1.0.X versions of Appearance Manager. Appearance Manager
1.1 is delivered as part of the Mac OS 8.5 System File
and includes the following new features:
- Switchable visual appearances.
- Support for data-driven appearances (though no
appearance files are included with Mac OS 8.5).
- Many new theme brushes and text colors.
- Drawing primitives for most interface elements.
- Support for saving and restoring the
GrafPort state regardless of whether the
current appearance draws using a color or pattern.
- Several different styles of scroll bars and check
boxes.
- Appearance and font change notifications are provided
by way of Apple Events. Each event uses
kAppearanceEventClass as its class and one
of the constants listed in Table 4 as its ID. There are
no parameters to any of the events, and these events are
sent only to those processes that have called
RegisterAppearanceClient to register as an
Appearance Manager client. Table 4 lists the new Apple
Events sent to Appearance Manager clients.
Table 4. Appearance and font change Apple Events.
These events use the Apple Event class
kAppearanceEventClass ('appr' ).
Constant Name
|
OSType
|
Description
|
kAEAppearanceChanged
|
'thme'
|
appearance changed
|
kAESystemFontChanged
|
'sysf'
|
system font changed
|
kAESmallSystemFontChanged
|
'ssfn'
|
small system font changed
|
kAEViewsFontChanged
|
'vfnt'
|
views font changed
|
- Animated cursor support.
- Support for sound during various user
interactions.
- An Appearance folder has been added to the System
Folder. The Appearance folder is used as a common
location to store Appearance-related data files, and it
is also the location of the Theme Files, Sound Sets, and
Desktop Pictures folders. Appearance files are autorouted
to their appropriate folders when dropped into the System
Folder. Table 5 lists the new Appearance folders present
in Mac OS 8.5.
Table 5. New folders for Appearance and their
FindFolder selectors.
Folder Name
|
OSType
|
Description
|
Appearance
|
'appr'
|
Appearance-related materials
|
Theme Files
|
'thme'
|
location for theme files
|
Sound Sets
|
'snds'
|
location for appearance-related sound
sets
|
Desktop Pictures
|
'dtp'
|
location for desktop picture files. Files of
type 'JPEG' are auto-routed into
this folder when dropped into the System
Folder.
|
- The file
<Folders.h> contains the
constants listed in Table 5 along with their symbolic
names (kAppearanceFolderType ,
kThemesFolderType ,
kSoundSetsFolderType , and
kDesktopPicturesFolderType ) for use in calls
to FindFolder .
Related Materials:
Back to top
ATSUI (Apple Type Services for
Unicode Imaging)
Unicode is a character set which encodes the
characters of many languages in a flat 16-bit number
space. ATSUI extends the QuickDraw API and makes it
possible for Mac OS applications to draw Unicode text.
ATSUI provides both low-level services for drawing
Unicode text as well as much of the high-end
typographical control previously provided by QuickDraw
GX.
- Provides text imaging services for 16-bit Unicode
(UTF-16).
- ATSUI fully conforms to The Unicode Standard, Version
2.1.
- ATSUI fully supports the Unicode bidirectional
algorithm, including the bidirectional ordering
codes.
- ATSUI text-drawing can be integrated within a
QuickDraw-only application (unlike QuickDraw GX, ATSUI
does not require developers to adopt a non-QuickDraw API
for all text drawing).
- For fonts which lack a Unicode
'cmap'
table, ATSUI will automatically generate one "on the
fly". The font file is not modified, but the conversion
makes certain assumptions about character encodings. For
best results, it is recommend that Japanese fonts include
a Unicode 'cmap' .
Related Materials:
Back to top
Code Fragment Manager
The Code Fragment Manager (CFM) is responsible
for loading and preparing PowerPC executables. Almost all
of the PowerPC Mac OS and all PowerPC applications depend
on the services of the CFM in some way.
- Code Fragment Manager calls to
ResolveAliasFile at system startup would
attempt to put up the "Please Insert The Disk" alert
before any drawing environment was established. CFM now
calls ResolveAliasWithMountFlags to disable
the disk switch alerts.
- The Virtual Memory Manager's file mapping code in Mac
OS 8.1 makes large chunks of file-mapped memory resident
that are certain or very likely to be used in the near
future. In Mac OS 8.5, that functionality has been moved
into the Code Fragment Manager. Application launch
performance should be approximately the same in most
cases. However, files that have multiple code fragments
(for example, fat CFM 68K/PowerPC applications) may
benefit from this refinement.
- CFM provides an optional facility where an
application can specify a special folder to be searched
for shared libraries. A field in the
'cfrg' resource
provides the resource ID of an 'alis'
resource. If this field is non-zero, CFM attempts to read
the resource from the application's resource file and
resolve it. (The assumption is that this is a relative
alias to a subfolder of the application folder -- for
example, a repository for plug-ins.) The Code Fragment
Manager now calls the new Alias Manager routine
ResolveAliasWithMountFlags to resolve
aliases referenced by the 'cfrg' resource to
prevent any user interaction while libraries are being
loaded.
- The Application Support folder is now part of the CFM
search path.
- CFM defines a new bit in the
'cfrg'
resource which forces the fragment's code into the
application heap. See the constant
kCFragLibUsageMapPrivatelyMask in
<CodeFragments.h> for more info.
[Radar 2205428]
Related Materials:
Back to top
Control Manager
The Control Manager provides facilities for
drawing and processing user interaction with controls.
New features for the Control Manager include:
- The Control Manager is now implemented in PowerPC
code.
- There is a new edit text control variant supporting
inline input.
- The edit text control now supports locking (disabling
of user input).
- The static text control now supports text
truncation.
- The icon control's icon can now be changed
dynamically.
- Check boxes and radio buttons now support automatic
toggling.
- Proportional scrolling is now available.
- Support for 32-bit control values has been added.
- Facilities for associating tagged data with controls
(properties) have been added.
- A scrolling text box control (read-only text) has
been added.
- A control region API has been added.
- A control validation API has been added.
- Control Manager now validates
ControlHandle parameters and returns an
error if they are invalid.
- Fonts used by controls can now be specified as a
standard system font plus modifications.
- The clock control now returns more part codes.
- The edit text control now supports a validation
callback procedure.
Related Materials:
Back to top
Device Manager
The Device Manager provides a programming
interface for communications between applications and
device drivers (typically code that communicates with
particular hardware devices, although some device drivers
do not actually drive devices).
- There are three new Driver Gestalt selectors allowing
developers to return, among other things, color icons for
their disk drives. Table 6 describes the new
selectors.
Table 6. Driver Gestalt selectors
introduced in Mac OS 8.5.
Selector Name
|
Value
|
Information Returned
|
kdgPhysDriveIconSuite
|
'dics'
|
A pointer to a IconFamily
('icns' ) data structure
that can be used to represent the disk
driver's physical drive (formerly in
csCode 22) in
driverGestaltResponse .
|
kdgMediaIconSuite
|
'mics'
|
A pointer to a IconFamily
('icns' ) data structure
for representing the disk driver's
media (formerly in csCode
21) in
driverGestaltResponse .
|
kdgMediaName
|
'mnam'
|
A pointer to a Pascal string
describing the disk driver (formerly in
csCode 21) in
driverGestaltResponse .
|
Related Materials:
Back to top
Dialog Manager
The Dialog Manager manages user interactions
with dialogs. New features in the Dialog Manager include:
- The Dialog Manager is now implemented in PowerPC
code.
- The Dialog Manager now allows you to specify dialog
timeouts (automatic dismissal after an idle time).
- It is now possible for developers to specify the
event mask used inside of
ModalDialog .
Related Materials:
Back to top
Display Manager
The Display Manager manages changes in both the
display settings and the arrangement of monitors attached
to the computer.
- With some display cards, resolutions that were marked
as non-preset resolutions by the display card were not
showing up in the recommended list of resolutions in the
Monitors & Sound control panel. The Monitors &
Sound control panel was checking the non-preset bit, while
the Display Manager was not. The Display Manager would
strip the lower timing and Monitors & Sound would
strip the higher (not preset) timing so neither would
appear in the timing list used to build the recommended
list. The Display Manager now correctly observes the
non-preset bit and the recommended list is built
correctly.
- In some cases, an unreadable character was appended
to the end of some names returned by the Display Manager.
This has been corrected.
- A problem in the Display Manager and Monitors &
Sound control panel that could cause a crash when a
multiscan monitor was attached to a PowerBook has been
corrected. This problem would occur upon waking a
PowerBook when the monitor was disconnected during sleep
if the PowerBook was put to sleep with the Monitors
& Sound control panel open.
- A problem on some machines where the display enabler
would not load at startup if a smart display was plugged
into the built-in monitor connector has been corrected.
Related Materials:
Back to top
Disk Initialization
Package
The Disk Initialization Package supports the formatting of disks.
DILoad was loading foreign file system
resources into the current heap zone (usually, the
current application's heap) that could cause a crash if
the application quit before the resources were unloaded.
These resources are now loaded into the system heap.
- File System Manager-based file systems that support
bad block sparing are now called to spare blocks when a
disk driver verify request fails. This feature was
unavailable in Mac OS 8.0 and Mac OS 8.1.
- The initial value of the Format popup menu in the
disk initialization dialog now indicates the current
format of the disk.
Related Materials:
Back to top
Drag Manager
The Drag Manager supports Drag-and-Drop
operations between windows and applications. New features
for the Drag Manager include:
ShowDragHilite now uses the highlight
color chosen by the user in the Appearance control
panel.
- A potential crashing problem that could occur with
translucent drags has been corrected in this version of
the Drag Manager. In previous versions of the Drag
Manager, a pointer to an unlocked relocatable block (a
handle's master pointer) was being used in
SetDragImage .
Related Materials:
- Technote TN1043,
"On Drag Manager Additions (Release 1.1)"
- Technote TN1085,
"Using the Drag Manager to Interact with and
Manipulate File System Entitles"
- Q&A TB28,
"Drag Manager and windowKind 20"
- The Drag
Manager SDK
Back to top
Driver Services
Library
DriverServicesLib provides utility routines
for native drivers ('ndrv' s). The following
improvements in virtual memory support have been added to
the DriverServicesLib :
PrepareMemoryForIO now uses
LockMemoryForOutput instead of
LockMemory when the
IOPreparationOptions are
kIOIsOutput , but not
kIOIsInput .
- With Mac OS 8.5,
GetPageInformation
returns the kPageIsLockedResident
(kPageIsLocked )
PageStateInformation bit correctly. When
Virtual Memory is on, kPageIsLockedResident
indicates that a page has been locked with
LockMemory , or
LockMemoryForOutput . Before Mac OS 8.5,
resident pages with the kPageIsInMemory
(kPageIsResident )
PageStateInformation bit set always had the
kPageIsLockedResident bit set even when they
were not locked.
- With Mac OS 8.5,
GetPageInformation
returns a new PageStateInformation bit,
kPageIsHeldResident . When Virtual Memory is
on, kPageIsHeldResident indicates that a
page is held in physical memory (but not necessarily
locked) with HoldMemory ,
LockMemory or
LockMemoryForOutput .
Related Materials:
Back to top
Event Manager
The Event Manager manages the delivery of events
to applications. Changes in the Event Manager include:
- Parts of the Event Manager are now PowerPC-native.
- Formerly, the event queue was limited to 20 events,
and keystrokes from faster typists could be lost. The
size of the event queue has been increased to 48
elements.
Related Materials:
Back to top
File Manager
The File Manager provides services for storing
and retrieving disk-based information. New features for
the File Manager include:
PBXGetVolInfo was returning an incorrect
value in ioVNmFls when
ioVRefNum contained either a working
directory id or volume number zero (the default
directory) when the call referred to a FSM-based file
system volume. As described in the File System Manager
section, this has been corrected so the File Manager now
passes the working directory id or zero through to FSM-based
file systems, rather than converting the value to a
real volume reference number first.
- Under some circumstances, the hard disk on some
PowerBook models would not spin down when it was
instructed to do so by the Control Strip module. This has
been corrected.
UnmountVol would sometimes return
fBsyErr (File busy) errors when called for
some server-mounted volumes because the File Manager was
leaving some working directories open. This has been
corrected.
- The
pleaseCacheBit (bit 4) in the
ioPosMode field is now supported by the disk
cache. Read/Write requests to HFS/HFS Plus volumes can now
set the pleaseCacheBit in
ioPosMode to request caching for larger
blocks of data. File System Manager clients can also set
this bit in the cacheOptions parameter to
UTCacheReadIP , UTCacheWriteIP ,
UTVolCacheReadIP , and
UTVolCacheWriteIP requests. Setting this bit
does not guarantee a request will be cached; however, it
does increase the probability of a request being
cached.
PBGetFPos now clears all 16 bits of
ioPosMode .
- The routines
PBAllocate and
PBAllocContig have been modified so they set
the value of ioActCount before they return
even if an error occurs during their execution.
- The minimum size for the disk cache is now 128K.
- Previously, the colons occurring in file names were
returned as-is, making such files unreachable using the
Pascal string-based APIs. Colons are now converted to
question marks (as are other non-representable
characters) and the File ID is inserted in the name.
- Calls to
PBCatMove on HFS Plus-formatted
volumes were creating oversized catalog file thread
records, leaking space in the catalog file. This has been
corrected.
- A problem where
PBGetCatSearchSync could
return inconsistent results when searching HFS Plus
volumes has been corrected.
- When the HFS Plus code was saving the Volume Header
information, it was sign-extending the attributes field,
causing the upper bits to be set when the software lock
bit (bit 15) was set. This sign extension no longer
occurs.
PBCatSearch has been modified so it does
not return catChangedErr as often as it did
in previous system releases.
- Placing a file ID in the directory ID field of a
CInfoPBRec and calling
PBGetCatInfo now correctly returns
dirNFErr . Under Mac OS 8.1, this would
incorrectly produce information about a file as if it
were a directory. Before 8.1, it would return
fnfErr .
- Added a new call,
PBHTrashVolumeCaches , that
flushes a volume and invalidates that volume's caches in the File
Manager and disk cache. Bit 2 of the
vMAttrib field returned by
GetVolParams is set if a volume supports
this call.
- HFS Plus volumes store all dates in UTC. In Mac OS
8.1, those dates were converted to/from local time using
the current time zone and daylight savings time settings,
which would cause the dates to appear to change by one
hour when switching to/from daylight savings time. In Mac
OS 8.5, the dates are converted using the daylight
savings time setting that would have been in effect as of
the date being converted.
- In Mac OS 8.1, when a HFS or HFS Plus volume was
extremely fragmented and an operation required the
extents B-tree to grow beyond its maximum number of
extents, the File Manager would return error -127 and
leave extra bits set in the volume bitmap. (Disk First Aid
would report this as a minor problem in the volume's
allocation bitmap.) The File Manager has been corrected
so that under these circumstances it will return a
dskFulErr and it will not leave extra bits
set in the volume bitmap.
- A problem where a crash could occur when saving a log
in MacsBug has been corrected. The File Manager was
attempting to jump to location zero.
- The File Manager was not properly invalidating some
caches when a volume was unmounted. The most common
symptoms were missing items in Finder windows when
mounting/unmounting a series of floppies or disk images
(such as installing software from floppies), or a disk
switch dialog appearing asking for a disk with a garbage
or blank name. The File Manager now correctly invalidates
a volume's caches when it is unmounted.
- A problem that could occur when mounting a CD-ROM has
been corrected. In these cases, mounting a CD-ROM would
sometimes lead to a dialog stating the volume needed to
be repaired. Under certain conditions after a crash
this could cause corruption of writable volumes when they
were mounted.
- A
PBAllocContig call requesting more
space than was available contiguously would return the
correct error but still allocate a smaller amount of
space. PBAllocContig has been changed so
that under these conditions it no longer allocates any
space.
- The File Manager no longer writes to the first sector
of a resource fork every time it is closed. Formerly, the
first sector of a resource fork contained a copy of the
112-byte MFS directory entry intended for use by the
Finder and disk repair utilities in older versions of Mac
OS. No current disk repair utilities rely on this
information, nor does the Finder. Removal of this extra
read/write cycle speeds up Finder copies for files
containing resource forks.
- A problem that could occur when booting from a HFS
volume has been corrected. If aliases to shared library
files located on a Mac OS Extended volume were present in
the Extensions folder, then these aliases would be
modified in such a way that they would fail to resolve
every time the system was rebooted. In Mac OS 8.5, such
aliases resolve correctly.
- A problem where
PBDelete could return
-127 and corrupt the volume bitmap when trying to delete
a file on a HFS Plus volume has been corrected. This
problem would occur when a filename was originally
converted to Unicode using the wrong text encoding (e.g.,
an application creating a file using a Japanese
filename without the language kit installed, but later
attempting to delete the file with the language kit
installed).
- Fixed a problem where foreign (external) file systems
could sometimes be called with asynchronous requests
while interrupts were partially disabled. While this
rarely occurred, when it did, it caused problems for some
foreign file systems (such as AppleShare) that use Open
Transport to communicate with file servers. All
asynchronous requests to foreign file systems now start
at deferred task time or at system task time, with
interrupts fully enabled.
WARNING:
Copying files near the 2 GB HFS file size limit to
an HFS volume will fail when the destination file's
physical size goes beyond the 2 GB size limit due to
larger allocation block sizes being used on the
destination volume.
|
Related Materials:
Back to top
File System Manager
The File System Manager provides a general means
by which foreign file systems can be installed,
identified, and interfaced to the operating system.
XGetVolInfo requests (like
GetVolInfo requests) to a FSM-based file
system are now passed a working directory number or the
default volume number (the value zero) in
ioVRefNum if the File Manager caller used a
working directory number or the default volume number.
Under Mac OS 8.1, ioVRefNum would always
contain the real volume reference number when passed to a
FSM-based file system. This change lets the FSM-based
file system determine what to return in
ioVNmFls correctly.
UTTrashBlocks now correctly returns an
OSErr result (either noErr ,
rfNumErr , or fnOpnErr ). Before
Mac OS 8.5, UTTrashBlocks returned the file
reference number passed in as the fileRefNum
parameter.
- The File Manager's disk cache now range-checks the
buffer parameter passed to
UTReleaseBlock
and UTMarkDirty . If the buffer parameter is
bad, those calls will no longer crash the system.
Related Materials:
Back to top
Folder Manager
The Folder Manager provides facilities for
locating "special" folders (for example, the
Extensions folder) without relying on the names of those
folders. This aids developers in application
localization.
- Folder Manager defines new auto-routings for
preferences files of type
'pref' (the
Preferences folder), shared libraries (the Extensions
folder), data fork fonts (the Fonts folder), Open Font
Architecture plug-ins (the Extensions folder), and
AppleTalk extensions (the Extensions folder).
FindFolder now returns the actual
location of the Printer Descriptions folder.
- Auto-routing has been added for files of type
'issp' (to Internet Search Sites).
- Files of type
'JPEG' are now auto-routed
to the Desktop Pictures folder.
- As in pre-Mac OS 8.0 versions of the system software,
the
FindFolder folder cache now detects
volume changes and keeps the cache up to date. In Mac OS
8.0 and Mac OS 8.1, it was possible for
FindFolder to return stale data.
- Several new folders have been defined for Mac OS 8.5.
Table 7 lists these new folders and their types.
Table 7. New folders for Mac OS 8.5.
Folder Name
|
OSType
|
Description
|
Launcher Items
|
'laun'
|
Items appearing in the Launcher
control panel. Items included in
folders with names beginning with a
bullet (option-8) character will appear
as a separate panel in the Launcher
window.
|
Internet Search Sites
|
'issf'
|
Internet search site specification
files used by the Find application when
it accesses Internet search sites.
Files of type 'issp' are
auto-routed to this folder.
|
TheFindByContent Folder
|
'fbcf'
|
An invisible folder located in a
volume's root directory. This folder is
used to store files created by 'Find by
Content'.
|
Find
|
'fnds'
|
Contains files used by the Find
facilities in Mac OS 8.5. This folder
is located in the Extensions
folder.
|
Installer Logs
|
'ilgf'
|
A location for saving installer log
files.
|
ColorSync Profiles
|
'prof'
|
A location for storing ColorSync
profiles.
|
Appearance
|
'appr'
|
Appearance-related materials
|
Theme Files
|
'thme'
|
The location for storing theme
files
|
Sound Sets
|
'snds'
|
The location for storing appearance-related
sound sets
|
Desktop Pictures
|
'dtp '
|
The location for storing desktop
picture files. Files of type
'JPEG' are auto-routed
into this folder when dropped into the
System Folder.
|
Favorites
|
'favs'
|
The location for storing Internet
location files, aliases, and aliases to
other frequently used items. Facilities
for adding items into this folder are
found in Contextual Menus, the Finder,
and Navigation Services, et al.
|
Scripts
|
'scr '
|
A location for saving AppleScript
scripts.
|
Recent Applications
|
'rapp'
|
Apple Menu Items saves aliases to
recent applications here.
|
Recent Documents
|
'rdoc'
|
Apple Menu Items saves aliases to
recently opened documents here.
|
Recent Servers
|
'rsvr'
|
Apple Menu Items saves aliases to
recently mounted servers here.
|
Speakable Items
|
'spki'
|
A location for scripts and items
recognized by speech recognition.
|
Internet
|
'int '
|
A location for saving Internet-related
applications, resources, and
tools.
|
Location Manager Modules
|
'walk'
|
Location manager modules are stored
here.
|
Location Manager Prefs
|
'trip'
|
Location manager preferences files
are saved here.
|
Locations
|
'fall'
|
Files containing configuration
information for different locations are
stored here.
|
Related Materials:
Back to top
Font Manager
The Font Manager provides system-wide services
for the retrieval of glyphs for display of textual
information.
- The Font Manager is now PowerPC-native.
- A problem where an italic bitmap font would
incorrectly override a TrueType font of the same size
displaying letters with the wrong style has been
corrected. Now, the TrueType font will be displayed
unless the style of the bitmap font matches exactly.
- Font Manager no longer allocates or de-allocates
caches on a per-processes basis. A system-wide font cache
is allocated at system startup in the system heap. All
processes share this same cache.
- The Font Manager does more parameter checking than in
previous versions.
- Font Manager now purges fonts from the font cache
more aggressively.
- All fonts shipping with Mac OS 8.5 (except VT102)
include the new Euro glyph.
- The US version of Mac OS 8.5 ships with the following
new fonts: Capitals, Gadget, Sand, Techno, and Textile.
Related Materials:
Back to top
Help Manager
The Help Manager is responsible for the drawing
and display of Help Balloons and the Help menu.
- The Help Viewer application can now be accessed
directly from the Help Menu.
Related Materials:
Back to top
Icon Services
New for Mac OS 8.5, Icon Services provides fast
and efficient facilities for retrieval of appropriate
icon information used to represent files, directories, or
other commonly used icons (for example, the
caution alert icon, the note alert icon, and the help
icon).
- Icon Utilities is now implemented in PowerPC code.
(Icon Services is also native.)
- Icon Services is Appearance Manager-aware, and will
return information consistent with the active appearance
as appropriate. (If your program retrieves icons from the
System file via Icon Utilities or other means, these
icons will not differ according to appearance.)
- To avoid duplication of data and for better
performance, Icon Services maintains a system-wide icon
cache shared by all applications. Icon data returned is
common to all applications, so it is possible for two
different applications to obtain an icon reference that
refers to the same icon data. A reference count is
maintained for icons loaded into the cache, and icons are
removed from the cache only if the reference count falls
to zero.
- The new
'icns' resource contains data
for 4 icon sizes (mini, small, large, huge) at 4 color
depths (1-bit, 4-bit, 8-bit, and 32-bit) and two kind of
masks (1-bit masks and 8-bit masks). Deep (8 bit) masks
allow for the specification of transparent drawing
effects. Each pixel in a deep mask indicates the level of
transparency desired for drawing a particular pixel.
Transparency levels range from 0 (transparent) through
255 (opaque).
- Prior to Mac OS 8.5, Icon Utilities allowed only 34
arbitrary colors to highlight properly (they were known
as the Apple icon colors). This limitation has been
removed.
- Drivers can now provide color icons by implementing
the
kdgMediaIconSuite Driver Gestalt
selector as described in the Device
Manager section.
Related Materials:
Back to top
InterfaceLib
InterfaceLib provides a Code Fragment Manager
interface to many of the Mac OS routines on PowerPC-based
computers. The following additions and changes are
present in this most recent version of the InterfaceLib.
- The low-memory accessor
LMGetABusVars is
now deprecated and should not be used, as it behaves
differently on 68K and PowerPC computers. The new
accessor LMGetABusGlobals that retrieves the
long at 0x02D8 should be used in its place.
LMGetABusVars will continue to return the
value 0x02D8 . The following new accessors were added:
LMGetABusGlobals ,
LMSetABusGlobals , LMGetABusDCE , and
LMSetABusDCE .
- The following low-memory accessors have been added.
They are useful for determining how long it has been
since any user activity has occurred.
LMGetKeyTime -- the value returned by
TickCount when the last keystroke was
received.
LMGetMBTicks -- the value returned by
TickCount when the mouse button was last
pressed.
Formerly, these values could be accessed using the
routines shown in Listing 2.
Listing 2. Low-memory accessors for
KeyTime and MBTicks .
long LMGetMBTicks (void) {
return (*(long *)0x016E);
}
long LMGetKeyTime (void) {
return (*(long *)0x0186);
}
|
Also, routines for setting these values have also been
added: LMSetKeyTime and
LMSetMBTicks .
AddDrive
There was a problem in the parameter handling of the
PowerPC AddDrive glue code in InterfaceLib
that would mangle the drive number before it was called through
to the 68K code. This problem has been corrected.
- New Alias
Manager routines
IsAliasFile ,
ResolveAliasWithMountFlags , and
ResolveAliasFileWithMountFlags are now
included in InterfaceLib.
- New routines added to InterfaceLib that were
previously only available from 68K code:
DriverInstall ,
DriverInstallReserveMem ,
DIXFormat , DIXZero ,
DIReformat , PBUnmountVolImmed ,
ReallocateHandleSys ,
LockMemoryForOutput ,
MakeMemoryResident ,
ReleaseMemoryData ,
MakeMemoryNonResident ,
FlushMemory ,
InstallExtensionNotificationProc ,
RemoveExtensionNotificationProc ,
InstallExtensionTableHandlerProc ,
RemoveExtensionTableHandlerProc ,
FlushCodeCacheRange ,
NewCServiceWindow ,
UCTextServiceEvent , and
ataManager
- The rest of the
PurgeSpace calls that
were previously only available from 68K code have been
added to InterfaceLib:
PurgeSpaceTotal ,
PurgeSpaceContiguous ,
PurgeSpaceSysTotal , and
PurgeSpaceSysContiguous
- All the File System Manager calls have been added to
InterfaceLib:
UTAllocateFCB , UTReleaseFCB ,
UTLocateFCB , UTLocateNextFCB ,
UTIndexFCB , UTResolveFCB ,
UTAllocateVCB , UTAddNewVCB ,
UTDisposeVCB ,
UTLocateVCBByRefNum ,
UTLocateVCBByName ,
UTLocateNextVCB ,
UTAllocateWDCB , UTReleaseWDCB ,
UTResolveWDCB , UTFindDrive ,
UTAdjustEOF , UTSetDefaultVol ,
UTGetDefaultVol , UTEjectVol ,
UTCheckWDRefNum ,
UTCheckFileRefNum ,
UTCheckVolRefNum ,
UTCheckPermission ,
UTCheckVolOffline ,
UTCheckVolModifiable ,
UTCheckFileModifiable ,
UTCheckDirBusy ,
UTParsePathname ,
UTGetPathComponentName ,
UTDetermineVol , UTGetBlock ,
UTReleaseBlock , UTFlushCache ,
UTMarkDirty , UTTrashVolBlocks ,
UTTrashFileBlocks ,
UTTrashBlocks , UTCacheReadIP ,
UTCacheWriteIP ,
UTBlockInFQHashP ,
UTVolCacheReadIP ,
UTVolCacheWriteIP , InstallFS ,
RemoveFS , SetFSInfo ,
GetFSInfo , InformFSM , and
InformFFS
- The following DriverServicesLib
calls have been added to InterfaceLib:
BlockZero ,
BlockZeroUncached ,
IncrementAtomic ,
DecrementAtomic , AddAtomic ,
BitAndAtomic , BitOrAtomic ,
BitXorAtomic , CompareAndSwap ,
IncrementAtomic8 ,
DecrementAtomic8 , AddAtomic8 ,
BitAndAtomic8 , BitOrAtomic8 ,
BitXorAtomic8 ,
IncrementAtomic16 ,
DecrementAtomic16 , AddAtomic16 ,
BitAndAtomic16 , BitOrAtomic16 ,
BitXorAtomic16 , TestAndSet , and
TestAndClear .
Previously these routines were documented as only
available to native drivers ('ndrv' s). The
InterfaceLib versions of these routines can be called by
other types of code.
Compatibility Note:
Developers linking against newer versions of
InterfaceLib who would like to have their products run
with previous versions of the system software should
weak-link against the new symbols. Unless this is
done, the Code Fragment Manager will refuse to launch
applications using the new symbols when an older
version of InterfaceLib is being used. Developers weak-linking
against any of the new symbols in InterfaceLib
should check to ensure that the routines they weak-link against
are defined before calling them.
|
Related Materials:
Back to top
List Manager
The List Manager provides a standard user
interface for drawing and managing user interaction with
lists of items.
- The List Manager is now implemented in PowerPC
code.
- Support for live scroll bar indicator dragging has
been added.
- The proportional scroll bar indicator is now
supported.
- When deleting or adding cells to a list while drawing
is turned off -- by calls to
LSetDrawingMode
(a.k.a. LDoDraw ) -- in certain cases it was
possible for the ListHandle 's bounds to
become slightly scrambled and draw incorrectly when
drawing was turned back on. This problem has been present
in the List Manager since its introduction, and it has
been corrected in Mac OS 8.5.
- List click loops can now be written in PowerPC-native
code using the Mixed Mode glue available in
"Lists.h".
WARNING:
Writing list click loops in PowerPC-native code is
not backward-compatible with system releases prior to
Mac OS 8.5. For compatibility with all systems prior
to Mac OS 8.5, you must still write click loops using
68K assembly or a 68K assembly stub.
|
Related Materials:
Back to top
MathLib
MathLib provides a software implementation of
floating point support routines for PowerPC computers.
All PowerPC processors contain built-in floating point
processing capabilities. The routines provided in MathLib
supplement those facilities.
- MathLib is now present in the System file's data fork,
and as such it is eligible for paging.
Related Materials:
Back to top
Memory Manager
The Memory Manager is the part of the operating
system responsible for managing memory allocation
requests.
- Under some circumstances, the RAM Disk could not be
turned off. This has been corrected.
- The Memory Manager is now present in the System
file's data fork, and as such it is eligible for paging.
Related Materials:
Back to top
Menu Manager
The Menu Manager is the part of the operating
system responsible for both drawing the menu bar, and
drawing menus and pop-up menus on the screen while the
mouse is being held down.
- Most of the Menu Manager is now implemented in
PowerPC code.
- Support for associating tagged data with menus and
menu items (properties) has been added.
- Menu contents for menus that use the system
'MDEF' are now cached even when is VM
on.
- It is now possible to remove the current
application's name from the application menu.
- Support for disabling icons appearing in menus has
been added.
- The menu bar is now drawn in condensed-style text, and
long menu titles are truncated if the screen is too
narrow to display the entire menu bar contents.
- Support for excluding the menu mark column has been
added.
- Support for more than 255 submenus has been added.
SetMenuItemHierarchialID can be used to set
the full range of menu IDs (-32767 to 32767).
- Support for enabling and disabling menu items at
indexes greater than 31 has been added.
- Sorting in
AppendResMenu was not working
as expected in non-English languages.
RelString was being called instead of
CompareString . AppendResMenu
now uses CompareString so sorting now works
as expected with non-English languages.
- Support for showing and hiding the menu bar has been
added.
- New append/insert APIs without meta-character
interpretation have been added.
- The system
'MDEF' now supports all
keyboard modifiers and glyphs.
- Support for setting the font used to draw a menu has
been added. Developers should use this new API rather
than setting the low-memory globals
SysFontFam and SysFontSize .
Compatibility Note:
In Mac OS 8.5, the Menu Manager does not attempt to
modify the behavior of third-party
'MDEF' s for correct colorization.
Application vendors including custom
'MDEF' s with their products must revise
their products to support Appearance.
|
Compatibility Note:
The Menu Manager does not modify the behavior of
the Event Manager to force Button to
return true while tracking sticky menus.
'MDEF' authors who depend on
Button returning false values must
modify their products.
|
Related Materials:
Back to top
Navigation Services
1.1
Navigation Services provides new Open and Save
dialogs, allowing users to locate and select files and
other resources. Navigation Services 1.0 is delivered as
a separate shared library in the Navigation Services SDK.
In Mac OS 8.5, Navigation Services 1.1 is built in to the
System file.
- Event procedures now receive appropriate
mouseDown events before they are processed
by Navigation Services.
- Event procedures now receive a slightly different
parameter block (which is backward-compatible with 1.0
callers) that allows them to see the dialog item index
of an item that has been selected by the user.
Compatibility Note:
Navigation Services effectively obsoletes the
Standard File package. Developers interested in future
Mac OS compatibility are encouraged to replace their
calls to Standard File with calls to Navigation
Services.
|
Related Materials:
Back to top
Notification Manager
The Notification Manager provides a mechanism
for programs which are not the frontmost application to
notify the user of specific events.
- The Notification Manager was calling
GetResource when the interrupt level mask
was set to 7 (even though it wasn't executing at
interrupt time). This has been corrected.
Related Materials:
Back to top
PC Card Manager
The PC Card Manager handles software issues
related to PC Cards.
- If a PC Card was ejected during sleep (using the pin
hole method) and replaced with a different card, the new
card would not be recognized after sleep and the old card
icon would remain on the desktop. The PC Card Manager now
registers the new card correctly when a card is replaced
in this way.
- The PC Card Manager has been changed to accommodate
PC Cards that do not contain a CIS (Card Information
Structure -- information normally stored on a card which
describes the card). Prior to this change, such a card
would simply be ejected. Now, the PC Card Manager uses
other data, such as the PCI configuration registers, to
establish information about such cards.
Related Materials:
Back to top
PPC Toolbox
The Program to Program Communications Toolbox
provides process-to-process communications facilities
both for processes running on the same machine and for
processes running on different computers connected by an
AppleTalk network.
- The PPC Browser now handles low memory situations
without crashing.
- In previous versions of the PPC Browser, the NBP
lookup for the list of computers was using too short of a
delay. As a result, the list of computers would flicker
over slower network connections. The NBP lookup now uses
a longer delay so the list is drawn with less
flicker.
- The PPC Browser now performs extensive internal error
checking.
Related Materials:
Back to top
Process Manager
The Process Manager shares the processor among
multiple applications. Mac OS 8.5 includes the following
new features in the Process Manager:
- Under some circumstances, the cursor would not change
to the cross hairs as expected for small area screen
captures. This has been corrected.
LaunchApplication now honors alias
files.
- Process Manager is slightly more strict about when it
will call
jGNEFilter for "fake"
keyDown events created by the Text Services
Manager, eliminating some duplicate events.
- During application switches, the Process Manager now
checks if a
mousedown was pending in the event
queue for the foreground application, or any floating
windows in the Text Services Manager layer. This correction
eliminates the possibility of a mouse click in one of the
foreground application's windows sneaking through to the
application being switched in.
- The Process Manager will no longer launch invisible
'appe' files.
- If a process unmounted a volume that was the default
volume for one or more other processes, the default
volume was not correctly updated for those other
processes when they were switched in. This could result
in a File Manager disk switch dialog appearing asking for
a disk with a garbage or blank volume name. The Process
Manager now ensures that the File Manager's default
volume is valid when switching processes.
Related Materials:
Back to top
QuickDraw
QuickDraw is the part of the Mac OS used for
drawing and displaying graphical information on the
screen and other raster devices.
- Most of QuickDraw is now PowerPC-native (with the
exception of the Palette Manager and the Picture
Utilities).
- Previously, QuickDraw pictures containing invalid
0x9A (direct 24-bit images) opcodes recorded on 68K
machines would not play back correctly on PowerPC
machines. This has been corrected.
- A problem where the 16-bit encoding routines for
QuickDraw pictures would sometimes produce invalid data
has been corrected.
- A problem where larger font sizes would not draw has
been corrected. Fonts are now drawn at their largest
possible size if a size larger than the maximum font
display size is requested.
- The Roman Script Utilities
(
DrawJustified , CharToPixel ,
etc.) have been moved into QuickDraw Text.
'sbit' support, currently available only
via a WorldScript II patch, has been rolled into the
standard system. This allows systems using two-byte
characters to be booted with extensions turned off.
- All
CopyDeepMask transfer modes now work
correctly.
- QuickDraw now performs extensive parameter checking.
For parameter errors,
QDError will return
the paramErr result code. In many cases,
QDError returns errors where it did not
before.
- A problem where passing
bkPixPat
either to FillCRgn or FillCRect
would corrupt the current graphics port has been
corrected. It is now possible to provide the current
background pixpat as a parameter to either the
FillCRgn or the FillCRect
routine.
WARNING:
Calling either
FillCRect(&myRectangle, ((CGrafPtr)
qd.thePort)->bkPixPat);
...or...
FillCRgn(myRegion, ((CGrafPtr) qd.thePort)->bkPixPat);
...or...
...in any version of color QuickDraw prior Mac
OS 8.5 will destroy the current
bkPixPat in the
GrafPort .
|
- When recording pictures, QuickDraw would read frame
buffers for raster images one byte at a time. This
produced some compatibility problems when reading frame
buffer data from some non-Apple devices. For greater
compatibility, frame buffers are now read in pixel size
chunks that are buffered internally before being passed
to the RLE encoding routines.
- Nearly all of QuickDraw is now present in the system
file's data fork, and as such it is eligible for paging.
The cursor management parts of QuickDraw are not eligible
for paging and remain in memory at all times.
Compatibility Note:
The new QuickDraw does more parameter checking
than all previous versions of QuickDraw. As a result,
developers will find the new QuickDraw will facilitate
their debugging efforts by bringing to light problems
that may not have been so obvious before. It is
strongly suggested that developers verify their
products against the new QuickDraw to ensure they are
calling QuickDraw correctly.
|
Back to top
QuickDraw Text
QuickDraw Text is the part of the MacOS used for
drawing and displaying textual information on the screen
and other raster devices.
- A new
Gestalt selector,
gestaltQDTextVersion ('qdtx' ),
has been defined in this release of QuickDraw Text. With
this release of QuickDraw Text, the value returned is
gestaltAllegroQDText .
Compatibility Note:
The new QuickDraw Text routines described in this
section are available only if the result returned by a
call to Gestalt with the selector
gestaltQDTextVersion is greater than or
equal to the constant
gestaltAllegroQDText .
|
- Support for anti-aliased text has been added to
QuickDraw Text. Anti-aliased text drawing will occur if
it is enabled, the destination device pixel depth is
greater than or equal to 8 bits, there is sufficient
memory available, the requested font size for drawing is
larger than the minimum size for anti-aliased drawing,
and the font being drawn is an outline font. Two new
routines for accessing the state of anti-aliased text
drawing can be called from PowerPC applications linking
against the shared library
FontManager
included in the System file. The routines are defined as
follows:
IsAntiAliasedTextEnabled
Boolean IsAntiAliasedTextEnabled(SInt16* outMinFontSize);
|
outMinFontSize is an optional parameter
and may be set to NULL . If
outMinFontSize is not NULL ,
then the sixteen bit integer at that address will be set
to the current lower size limit for antialiasing text (as
set in the Appearance Control Panel).
The function IsAntiAliasedTextEnabled
returns true if anti-aliased text display is enabled.
SetAntiAliasedTextEnabled
OSStatus SetAntiAliasedTextEnabled(Boolean inEnable,
SInt16 inMinFontSize);
|
inEnable indicates the desired state of
the anti-aliased text drawing. If inEnable
is true , then both anti-aliased text drawing will be
turned on and the QuickDraw Text global variable
outlinePreferred will be turned on.
inMinFontSize defines the smallest size
font that should be drawn as anti-aliased text. This
value must be in the range 1 through 128. If the
inMinFontSize parameter is outside of
this range, then the default value 12 is used.
SetAntiAliasedTextEnabled always returns
noErr .
NOTE: For fonts which have both bitmaps
('NFNT' s) and outlines
('sfnt' s), the implicit change in
outlinePreferred may change the metrics for
the bitmap font sizes.
WARNING:
Calls to SetAntiAliasedTextEnabled
should only be made under special circumstances when
greater control over text display during particular
operations is desired. Developers changing the state
of anti-aliased text drawing must restore its original
state before returning control to the system. Failure
to do so may result in other parts of the system, most
notably the Appearance control panel, becoming out of
sync with the actual state of anti-aliased text
drawing.
|
- Two new routines for retrieving the pixel dimensions
of text that will be drawn on the screen have been added
to QuickDraw Text. These routines can be called from
PowerPC applications linking against the shared library
FontManager in the System file. The new
routines are defined as follows:
QDTextBounds
void QDTextBounds(short byteCount,
const void* textAddr,
Rect* bounds);
|
byteCount is the number of bytes of text
contained in the buffer located at the address contained
in the value textAddr .
textAddr points to byteCount
bytes of textual data.
bounds is a pointer to a
Rect structure whose coordinates will be
calculated by QDTextBounds . On return,
bounds will contain the bounding coordinates for the
entire image (including parts of the image that may
extend beyond the first and last pen positions after the
text has been drawn) that will be drawn for the text
(given the font settings in the current
GrafPort ). Note that the coordinates
returned are relative to the current pen position (as if
the pen were located at the origin). For example, in
Listing 3, we use QDTextBounds to draw a
rectangle around the text's image. Notice how in this
example the bounds returned by QDTextBounds
are offset using the current pen position, so that the
text drawing and the rectangle drawing occur using the
same coordinate system.
Listing 3. Using QDTextBounds to
discover where text will be drawn.
Rect bounds;
char *text = "sample text";
Point where;
SetPt(&where, 100, 100);
MoveTo(where.h, where.v);
PenSize(1,1);
QDTextBounds(text, strlen(text), &bounds);
OffsetRect(&bounds, where.h, where.v);
InsetRect(&bounds, -1, -1);
FrameRect(&bounds);
DrawText(text, 0, strlen(text));
|
The leftmost edge of the text's image can either be
to the right or the left of the pen position, and the
rightmost edge of the text's image may be to the left or
the right of the final pen position.
FetchFontInfo
OSErr FetchFontInfo(SInt16 fontID,
SInt16 fontSize,
SInt16 fontStyle,
FontInfo* info);
|
fontID is the font ID number for a
font.
fontSize is the font size in pixels.
fontStyle contains the font style flags
for the font.
info is a pointer to a font information
record where the result will be stored.
FetchFontInfo returns the same
information as GetFontInfo, except, rather
than gathering information about the font settings from
the current GrafPort, this information is
provided as parameters to the routine. If
FetchFontInfo returns an error, the fields
in the FontInfo record will be set to zero.
(The error code returned is the value returned by
FMSwapFont .)
Related Materials:
Back to top
Script Manager
The Script Manager provides functions for
controlling, modifying, and accessing the features of
both Roman and non-Roman script systems.
- Simple scripts (scripts not requiring the Worldscript
extension) were not being loaded when the system was
booted with extensions turned off. This has been changed;
now, simple scripts are loaded when extensions are turned
off.
- The keyboard menu bar icon was being drawn twice
whenever a new keyboard layout was selected. This has
been fixed.
- WorldScript Power Adapter is not loaded if it is
installed by a language kit or other installer, since Mac
OS 8.5 has this functionality built into the System
file. WorldScript II is no longer loaded differently than
other extensions.
- Support for Unicode scripts and Unicode keyboard
layouts has been added.
- Font and keyboard synchronization can now be turned
off. This can be done either in the Keyboard control
panel or by setting the
smfDisableKeyScriptSync flag in the
smGenFlags Script Manager variable. Calls to
KeyScript check this flag to determine if
the current keyboard script should be synchronized with
the current script. To force keyboard script
synchronization for individual calls to
KeyScript while keyboard script
synchronization is turned off, developers can set bit 7
(smKeyForceKeyScriptBit ) in the code
argument passed to KeyScript . Calls to
KeyScript will not synchronize the current
keyboard script if the
smfDisableKeyScriptSync flag in the Script
Manager variable smGenFlags is set, unless
the smKeyForceKeyScriptBit bit is set in the
KeyScript call's code parameter.
Related Materials:
Back to top
Serial Driver
The Serial Driver provides software support for
serial communications hardware using the Device Manager
API. The Mac OS 8.5 Serial Driver includes the following
change:
- A problem where some machines would not reboot
without the "Serial (Built-in)" extension in the
Extensions folder has been corrected.
Related Materials:
Back to top
Sound Manager
The Sound Manager provides facilities for
playback and recording of digitized sounds.
- The
siActiveChannels
SPBSetDeviceInfo call was not being accepted
on 6100, 7100, or 8100 PowerMacs. This has been
corrected.
- It is now possible to change recording quality while
recording.
- Chained calls to
SPBRecord now work when
the recording buffer size is smaller than the hardware
interrupt buffer size.
- Sound input source settings made in Monitors &
Sound are now remembered across boots on 6100, 7100, and
8100 machines.
siRecordingQuality now works as
expected.
- The Power Mac 4400/200 always reported that the
microphone is not connected regardless of whether it
actually was. This problem has been corrected.
Related Materials:
Back to top
Standard File
Standard File provides a consistent user
interface for accessing files by way of the Open and Save
As dialog boxes.
- The number of file types that can be specified for
Standard File's
SFGetFile ,SFPGetFile ,
StandardGetFile , and
CustomGetFile routines has been increased
from 32 types to 256 types.
- A problem where the arrow navigation keys were not
working as expected on some PowerBook models has been
corrected.
- Aliases to special folders (for example, the Fonts
folder) no longer show up in Standard File as
applications.
Compatibility Note:
Navigation Services effectively obsoletes the
Standard File package. Developers interested in future
Mac OS compatibility are encouraged to replace their
calls to Standard File with calls to Navigation
Services.
|
Related Materials:
Back to top
Text Services Manager
1.5
The Text Services Manager provides facilities
for applications to communicate with various text
processing utilities that provide services such as
special text input methods, spell checking, hyphenation,
etc.
- The Text Services Manager (TSM) has removed the
restriction of input methods and text services to
Japanese, Korean, and Chinese (Traditional and
Simplified) scripts, and now supports input methods in all
scripts such as Roman, Indic, and Thai.
- Keyboards and input methods can now generate Unicode
directly. Applications that support TSM and create
Unicode TSM Documents with the new interface type
kUnicodeDocument can receive all input as
arbitrary-length Unicode text directly via Apple events.
Unicode text in TSM Apple events is always contained in a
descriptor with AEKeyword
keyAETheData , DescType
typeUnicodeText . Apple events with
AEEventID
kUpdateActiveInputArea continue to be used
for input processed by an Input Method. The new
AEEventID
kUnicodeNotFromInputMethod is used for any
other type of input, such as when the input source is a
keyboard layout (Unicode or otherwise) or when an input
method does not handle a key event. This Apple event also
contains the original low-level key event record as
AEKeyword keyAETSMEventRecord
and DescType
typeLowLevelEventRecord , so that most key
event processing formerly done in an application's event
loop can now be performed in the application's Apple
event handlers.
- For compatibility, text is converted between Unicode
and Mac OS encodings as necessary. Text from Unicode
input sources is automatically converted to Mac encodings
for delivery to applications that don't use Unicode TSM
Documents; text from Mac OS encoding input sources is
converted to Unicode for delivery to applications using
Unicode TSM Documents. Similarly, application text
requested by an input method (with the
kGetSelectedText Apple event) is converted
as necessary.
- TSM calls the new Input Method API
UCTextServiceEvent instead of
TextServiceEvent when sending input
text to a Unicode input method.
- TSM has absorbed functionality previously available
as TSM trap patches, and itself no longer installs
patches.
- TSM has been modified to support optional font and
keyboard synchronization. If the
smfDisableKeyScriptSync flag is set in the
smGenFlags Script Manager variable, calls to
ActivateTSMDocument will not synchronize the
current keyboard script with the internal keyboard script
state of the TSMDocument . The
ActivateTSMDocument call is the only TSM
call that calls through to KeyScript . For
more information about optional font and keyboard
synchronization, see the Script
Manager section.
Related Materials:
Back to top
Time Manager
The Time Manager provides millisecond and
microsecond timing facilities for Mac OS-based computers.
- The Time Manager will now return an error if
PrimeTime is called after
RmvTime was called.
Compatibility Note:
The current C and Pascal Time Manager APIs do not
return the result from InsTime ,
InsXTime , PrimeTime , and
RmvTime . The result from Time Manager
functions is returned in the 68K register
D0 . Simple 68K inline or PowerPC Mixed
Mode glue code can be used to call those Time Manager
functions and get their results.
|
Back to top
Translation Manager
The Translation Manager provides file and scrap
translation to allow data to be used by applications
other than those that originally created the data. The
following changes have been made in the Translation
Manager:
- The Translation Manager implementation has been moved
to the System file, and the user interface has been moved
from the now-obsolete Mac OS Easy Open control panel to
the File Exchange control panel's "File Translation"
panel.
- The Translation manager is now implemented in PowerPC
code.
- The available translator lists are now rebuilt
dynamically. If a translation extension component is
registered sometime after startup, the Translation
Manager will recognize it immediately.
- Contents of the "Translated Documents" folder are now
removed at system startup time. The Translation Manager
places automatically translated documents into this
folder before passing them on to applications.
- With both QuickTime and MacLinkPlus for Easy Open
installed, there are more than 64 possible translation
configurations for Desktop Translators, but Desktop
Translators could only be configured to use one of the
first 64 translations available. This limitation for
Desktop Translators has been removed.
- Applications which open files of a given type may do
so without translation. Prior to File Exchange 3.0, if an
application claimed (through its bundle and/or
'open' resource) that it could open files of
a given type, documents of that type with a different
creator type than the application's creator type would be
translated rather than opened directly. Now, such
documents are opened directly without translation. To see
an example of this behavior, under Mac OS 8.1 drop a
MoviePlayer movie onto SimpleText. It will open as a
picture rather than a movie (as it will be translated by
the QuickTime translator first). Now, the movie will open
as expected.
- Translation Manager no longer creates a temporary
heap zone for translation extension components. Instead,
translation extension components are loaded into the
system heap. This means that translation extensions are
no longer allowed to "leak" memory, as their calls to
NewPtr and NewHandle now
operate in the system heap. Contrary to what is stated in
Inside
Macintosh: More Macintosh Toolbox, the
Translation Manager now disposes of the translation
advertisement when tearing down the translation progress
dialog (since the translation advertisement is now
allocated in the system heap rather than a temporary
heap).
Compatibility Note:
Developers of PowerPC translation extensions are
advised to package them as specified in Technote TN1004, rather than as is done in the Mac OS Easy Open
SDK.
|
Related Materials:
Back to top
Virtual Memory Manager
The Virtual Memory Manager provides virtual
memory services for the Mac OS. The following changes
have been made in the Virtual Memory Manager:
- All code needed to run VM on 68040 processors has
been removed.
GetPageState now correctly returns the
state of pages in file-mapped space. Before Mac OS 8.5,
GetPageState returned
kPageOnDisk for unmapped pages. With Mac OS
8.5, GetPageState returns
kNotPaged for unmapped pages (as it does for
all other memory not controlled by the Virtual
Memory).
DeferUserFn previously returned a
garbage result if the user function was called
immediately. It now returns noErr .
Related Materials:
Back to top
Window Manager
The Window Manager provides facilities for
drawing and maintaining windows on the screen.
- The Window Manager is now implemented in PowerPC
code.
- An extensible, collection-based window resource
format (
'wind' ) has been added.
- Floating window support has been added with the
routines
CreateNewWindow ,
GetWindowClass ,
ShowFloatingWindows ,
HideFloatingWindows , and
AreFloatingWindowsVisible .
- Extensive error and parameter checking has been added
to all routines.
- New, advanced window positioning support routines
have been added, including
SetWindowBounds ,
GetWindowBounds ,
MoveWindowStructure ,
ZoomWindowIdeal , and
IsWindowInStandardState .
- Support for associating tagged data with windows
(properties) has been added.
GetWindowRegion is a new call that
always returns the visible state of the specified region,
even for invisible windows.
- Update events will no longer occur in foreground
application windows when overlapping windows in
background applications become visible.
- A window's background can now be set to a specific
color or pattern without the use of a
'wctb'
resource.
- Routines for modifying a window's update region
without changing the current port have been added
(
InvalWindowRgn/Rect ,
ValidWindowRgn/Rect ).
- Support for window title popup menus has been
added.
- The
TransitionWindow routine has been
added for attaching animation and sound to a window for
different on-screen actions such as showing or hiding a
window.
- Under some circumstances, parts of the desktop were
not being redrawn correctly. This has been corrected.
- Support for window proxies has been added.
- Window titles are now drawn using condensed and
truncated text if the window's title is too large to be
displayed in the title bar.
WARNING:
Applications using the undocumented and
unsupported Layer Manager interface for floating
windows will not work with Mac OS 8.5.
|
WARNING:
Applications writing directly to the low-memory
window list global, either by direct access or by
LMSetWindowList , may have problems in Mac
OS 8.5. It is strongly recommended that developers
interested in future compatibility treat the window
list as read-only.
|
WARNING:
Applications writing directly to the
GrayRgn may cause problems in Mac OS 8.5,
and may cease to work properly in future versions of
Mac OS. Developers interested in future compatibility
should use the new
ShowMenuBar /HideMenuBar
routines instead.
|
Related Materials:
Back to top
|
Control
Panels
|
Control Panels provide user interface facilities
for custom configuration of the system.
In Mac OS 8.5, several related control panels have
been consolidated into individual control panels.
Back to top
|
Appearance
1.1
|
The Appearance control panel provides a user
interface for configuring the appearance of graphical
user interface elements.
- The new Appearance control panel provides several new
panels for creating and modifying themes.
- Options previously available through the Desktop
Pictures control panel are now provided by the Appearance
control panel.
- AppleScript support includes:
- Query and set every Appearance option (theme,
color, sound effects, desktop pictures and patterns,
fonts, etc.)
Related Materials:
Back to top
|
Apple Menu Options
1.1.4
|
The Apple Menu Options control panel provides
user interface configuration facilities for the
appearance and behavior of the Apple Menu. There are some
corrections present in this implementation of the Apple
Menu Options control panel.
- A problem occurred where the Apple Menu was not being
drawn correctly when the system font was changed to a
font of a different size. This has been corrected.
- Balloons no longer appear when the Apple Menu Options
control panel is frontmost and the mouse is not over its
window.
- A problem where Apple Menu Options' patch to
UnmountVol could cause a big disk thrash has
been corrected. This would happen if the volume passed to
UnmountVol is not identified by a volume
reference number.
- AppleScript support includes:
- Query and set all Control Panel settings,
including count of recently opened items to
remember.
Back to top
|
ColorSync 2.5
|
ColorSync provides system-level color management
that enables publishing software to achieve repeatable,
reliable, and consistent color on-screen, in print, and
for electronic delivery.
- Multiprocessing capabilities have been added.
- AppleScript support for the following has been
added:
- Embedding a ColorSync profile in an image
file.
- Match or proof an image to an output device.
- Query or set the default profile.
Related Materials:
Back to top
|
Control Strip
2.0
|
Control Strip is a control panel providing
configuration facilities for the control strip.
- Control Strip 2.0 is now an application
(
'APPC' ) and contains fewer trap
patches.
- Control Strip 2.0 corrects a number of problems with
the previous version and adds several features that
expand the user experience.
- Version 2.0 adds module drag-and-drop install
capability. Control strip modules can now be installed by
dragging and dropping the module into the control strip.
Related Materials:
Back to top
|
Date & Time
8.1
|
The Date and Time control panel provides a user
interface for setting the system clock and configuring
the display format for both dates and times.
- Internet time synchronization by way of Network Time
Protocol (NTP) and automatic daylight savings time
support have been added.
- Location information is now set in the Date &
Time control panel.
- Added Regina, Saskatchewan, Canada to the list of
time zone locations.
- Fixed incorrect spelling of the city name "Tientsin"
to "Tianjin".
Related Materials:
Back to top
|
File Exchange
3.0
|
File Exchange allows users to set mappings from
filename extensions (ex.: ".TXT") to Mac OS file types
(ex.: 'TEXT'), to mount DOS SCSI disks and drive
containers, and to set File Translation preferences. The
following changes have been made in File Exchange:
- File Exchange Features
- PowerPC-native.
- Consolidated interface for PC Exchange and File
Translation (formerly Mac OS Easy Open).
- Supports AppleScript.
- Integrated editing of Internet Config extension
mappings.
- PC Foreign File System Features
- PowerPC-native.
- Mounts all available PC volumes at startup.
- Can also mount all available PC volumes "on the
fly".
- Supports multiple SCSI busses.
- Uses HDI driver (from DiskCopy) to mount PC disk
images.
- Improved read/write/cache code path.
- Internet Config integration.
- Desktop Database support.
- Permits File Sharing of PC volumes and disk
images.
- AppleScript support includes:
- Query and create translation and extension
mappings.
- Query or change control panel settings.
- Corrected a problem where a particular data file
format saved to PC disk was unreadable. The error
returned by
SetFPos was not being handled
correctly when an attempt to set the mark past EOF was
being made.
- Two-byte characters in traditional DOS FAT "8.3"
format file names weren't being displayed in Get Info.
This has been corrected.
- Determines disk type (FAT12, FAT16, FAT32) using disk
geometry; this fixes problems with low-capacity
FAT16-formatted PC cards.
- The PC foreign file system's "mimicry" of HFS has
been improved. Now, under as many circumstances as
possible, the PC foreign file system behaves the same as
HFS.
- Allows use of PC disks with allocation block size of
32K or larger (for example, 2 GB disks).
Related Materials:
Back to top
|
File Sharing
8.0
|
The File Sharing control panel allows for
user configuration of file sharing services on the
computer.
- AppleScript support includes:
- Query or change control panel settings.
- Disconnect a user.
Related Materials:
Back to top
|
Internet
1.0.1
|
A new control panel application
('APPC' ) which provides user interface for
creating and editing Internet
Config preferences, including support for switchable
preference sets for handling multiple locations or users.
Provides AppleScript support utilizing some of this
configuration information, including the following
commands:
Back to top
|
Keyboard 8.1
|
The Keyboard control panel provides a user
interface for configuring connected keyboards.
- A control for turning on or off font and keyboard
synchronization has been added.
- The Keyboard menu now correctly displays balloon help
for items beyond the seventh.
- Balloon help messages for the keyboard menu items
have been reworded in some cases.
- The keyboard menu now has a "Customize..." menu item
as the last menu item. Choosing it will open the Keyboard
control panel.
Related Materials:
Back to top
|
Location Manager
2.0
|
Apple Location Manager is an extension that
allows mobile users to save and restore sets of
configurations ("locations") under a single name. For
example, a user can define a group of printers, network
settings, and extension sets for different computing
environments.
- The maximum number of locations has been
increased.
- A problem where the system startup screen was not
being redrawn correctly after the Location Manager
extension window was dismissed has been corrected.
- AppleScript support includes:
- Query or change the current location.
Related Materials:
Back to top
|
Memory 8.0
|
The Memory control panel provides a user
interface for the configuration of virtual memory, RAM
disk storage, and the size of the disk cache.
- The Memory control panel is now an
'APPC' .
- Fully supports the Appearance Manager.
- By default, the disk cache size is now automatically
calculated. Users can still customize the disk cache size
setting, or they can allow the system to calculate a
default setting for them.
Related Materials:
Back to top
|
Monitors & Sound
1.4.2
|
The Monitors & Sound control panel provides
a user interface for configuring and adjusting various
settings for AppleVision monitors attached to the
computer, along with services formerly provided by the
Monitors control panel and by the Sound control panel.
- The Monitors and Sound control panel has been updated
to support new hardware.
Back to top
|
Remote Access
3.1
|
The new Remote Access control panel provides
user interface facilities for configuring PPP and ARA
connections.
- ARA 3.1 includes support for both TCP/IP and
AppleTalk (ATCP) over a PPP link.
- Apple Remote Access 2.1 and OT/PPP 1.0.1 have been
replaced by ARA 3.1; version 3.1 will now be the default,
consolidating remote client software supporting both PPP
and ARAP protocols.
- The Remote Access and PPP control panels have been
consolidated into the Remote Access control panel.
- ARA 3.1 contains a few feature enhancements and many
bug fixes since ARA 3.0, ARA 2.1, and OT/PPP 1.0.1.
- The PPP client now supports MS-CHAP and includes
other improvements for better Windows NT
compatibility.
- This release includes the latest modem scripts for
Apple and popular third-party modems.
Related Materials:
Back to top
|
TCP/IP 2.0.1
|
The TCP/IP control panel provides a user
interface for configuring TCP/IP protocols.
- To cut down the amount of typing required to manually
configure TCP/IP, the "IP Address" field now allows
addresses to be entered in "address/mask" notation. For
example, if the address "12.34.56.78/24" is entered, the
24-contiguous-ones mask value (255.255.255.0) is
automatically entered in the "Subnet mask" field, and the
"Router address" field, if empty, is automatically
initialized to the first valid address on that subnet
(12.34.56.1 in this example). The "Subnet mask" and
"Router address" fields remain editable should the user
wish to change the automatically entered values.
- A new field has been added allowing users to enter
their DHCP "client id".
Related Materials:
Back to top
|
Users and Groups
8.0.1
|
This control panel allows the user to designate
which people are allowed to establish network connections
with the computer.
AppleScript support includes:
- Query or set privileges of users and groups.
- Create and delete users and groups.
Back to top
|
Web Sharing
1.5.1
|
Web Sharing allows users to configure and set up
the "Web Sharing" folder on their computer to act as a
World Wide Web site. Web Sharing runs as an HTTP server,
allowing users to access files stored in the Web Sharing
folder using any web browser program available on any
computer platform. New features for Web Sharing include:
- Added human interfaces for configuring MIME
types.
- Connection logging facilities have been added.
Related Materials:
Back to top
|
System
Extensions
|
System extensions are located in the Extensions
folder inside the System Folder. For a system extension
to be active, it must be located in the Extensions folder
when the system starts up. Extensions are not loaded if
the shift key is held down while the system is starting
up.
The "Extensions Disabled" message has been replaced
with the text "Extensions Off" for consistency with
documentation and terminology.
Back to top
|
Apple CD/DVD Driver
1.0.1
|
The Apple CD-ROM driver contains some
enhancements for support of new Apple products and
corrects some problems found in previous versions of the
driver.
- Apple CD-ROM and Apple DVD-ROM drivers have been
combined into a single file called Apple CD/DVD
Driver.
Compatibility Note:
Non-Apple CD drives are not supported by the Apple
CD-ROM driver.
|
Related Materials:
- Technote DV18,
"CD-ROM Notes (Most Excellent)"
- Technote DV22,
"CD-ROM Driver Calls"
- Technote DV505,
"CD-ROM QAs"
- Technote FL36,
"Apple Extensions to ISO 9660"
- Q&A DV18,
"Detecting a CD-ROM"
- Q&A OPS05,
"Disconnected aliases on CD-ROM and Alias
Manager"
Back to top
|
Apple Enet
2.0
|
The Apple Ethernet driver provides support for
Apple's built-in Ethernet and cards on newer machines.
Features include:
- Improved performance.
- Obsoletes a number of older drivers and consolidates
their functionality into one file.
Related Materials:
Back to top
|
AppleScript
1.3.2
|
AppleScript is a component of the operating
system that provides a scripting interface for users to
automate actions that would normally require use of the
menus and keyboard. Even more importantly, it allows
users to access functionality of applications which would
be difficult or impossible to access by hand.
- AppleScript is now PowerPC-native. Raw AppleScript
execution is up to five times faster as compared to the
same script run under Mac OS 8.1.
- Unit Types and Coercions
(built-in)
This version introduces the concept of units of
measurement and some basic units. Applications or
scripting additions can extend these easily. The types
defined include:
- length
- area
- volume (liquid and solid)
- temperature
A complete list of specific types can be found in the
Help Center in the AppleScript section. (Note: the Help
Center claims AppleScript has support for quarts; this is
not the case.) Constants can be found in
<ASRegistry.h> .
The basic manner of use in AppleScript scripts is by
coercion, e.g. "5 as inches". A value of one class can be
coerced into another similar class, such as "5 as feet as
inches", so long as both classes share a common unit type
(in this case, length, whose base unit is meters).
To compile the displayed results of a command that
returns a unit-type value, a global Get Data handler
has been added to resolve the unit type object specifier and
coerce it to a value.
- Unicode Types and Coercions
(built-in)
This version introduces the type Unicode
text . Its basic structure is a stream of Unicode
text. It can be coerced to and from the normal
typeText , typeStyledText , and
typeIntlText .
- Consolidated Scripting
Additions
The following scripting additions, which previously
were delivered as separate files in previous versions of
Mac OS, have been consolidated into the "Standard
Additions" scripting addition:
- AGStart
- Beep
- Choose Application
- Choose File
- Current Date
- Display Dialog (now allows you to specify a
timeout)
- File Commands
- Load Script
- Numerics
- String Commands
- Read/Write Commands
- Run Script
- Store Script
- Time To GMT
Compatibility Note:
The interface and functionality of the
consolidated scripting additions listed above is
unchanged from AppleScript 1.1.2.
|
Back to top
|
AppleShare Workstation Client 3.8
|
AppleShare Workstation Client provides file
sharing services for computers networked with file
servers.
Compatibility Note:
AppleShare Workstation Client 3.8 can be used with
Mac OS 7.5.3 and later.
|
- A new UAM (User Authentication Module) API has been
added that allows UAMs to use TCP/IP.
Related Materials:
Back to top
|
Application Switcher
1.0
|
The Application Switcher is a new user interface
element that appears as a floating window, providing a
clickable list of active processes running on the
computer.
Compatibility Note:
Application Switcher uses command-tab as a
keyboard shortcut for switching between open
applications. It is possible to disable or change the
keyboard shortcut for switching between open
applications using the AppleScript script on the
Application Switcher Help page.
|
AppleScript support for the application window
includes:
- Query and set location, size, and properties of
the Application Window
Back to top
|
Desktop Printing
2.2.1
|
Desktop Printing provides easy access to
printers by locating them on the desktop. Users can
access information about their print jobs by opening
these icons, and they can print documents by dropping
them into the printer icon.
Back to top
|
Find By Content
2.0
|
Provides system-wide search facilities for
finding related files based on their content.
- A CFM-based interface is available for developers
wanting to access the Find By Content services to search
files on disks from within their applications.
Related Materials:
Back to top
|
Internet Config
2.0.2
|
Internet Config provides a centralized
storehouse of information for various settings utilized
by Internet applications. It provides methods for
applications to both retrieve and store configuration
information.
- Support for switchable sets of preferences has been
added for handling multiple locations or users.
- A new API for interrupt-safe file extension mapping
designed for file system developers has been added.
- Additional file types have been added to the file
extension mapping database.
- Internet Config clients can now link against a CFM
library.
Related Materials:
Back to top
|
LaserWriter 8 version
8.6
|
LaserWriter 8 provides the ability to print to
PostScript printers. The new LaserWriter 8 software
provides many enhancements and new features of interest
to developers including the following:
- LaserWriter driver supports Unicode and the Euro
character.
- Support for printing Unicode text.
- Better support for Desktop Printing.
- Support for the Appearance Manager.
- Support for ColorSync 2.5.
- Improved facilities for printing of PS, EPS,
JIFF/JPEG, and PICT file formats.
- Support for printing over a variety of communication
links including IrDA, PAP, LPR, and developer-defined
communication channels ("custom hoses").
- LaserWriter 8 now uses the
'ppdf'
FindFolder selector to locate printer description
files.
- Desktop Printer files can now be conveniently shared
among users on different computers.
- Support for partial TrueType font downloading has
been added. This feature is dependent on ATSUI and
supersedes the TrueType Booster Extension found in some
systems using 2-byte characters.
Related Materials:
Back to top
|
Mac OS Runtime for Java
2.0
|
Mac OS Runtime for Java (MRJ) is Apple's
implementation of the Java runtime environment. MRJ
allows Java functionality to be embedded in Mac OS
applications, and applications using MRJ's JManager API
are able to run Java applets and applications.
Back to top
|
Network Setup Extension
1.0
|
The Network Setup Extension provides for
programmatic configuration of the AppleTalk, TCP/IP,
Infrared, and Remote Access settings.
- The Network Setup Extension provides both AppleScript
and CFM-based APIs for configuration of network
settings.
Back to top
|
Open Transport
2.0.1
|
Open Transport is the networking technology for
Mac OS 8.5. Open Transport 2.0.1 contains SNMP and OT
SNMP Admin, DHCP enhancements for improved compatibility
with Windows NT, including Client ID, new APIs for
manipulating configurations, scriptability for AppleTalk,
TCP, Modem, Remote Access, Infrared control panels, and
bug fixes.
- The Dynamic Host Configuration Protocol (DHCP)
implementation now supports a number of much-requested
features, including Client Identification, retention of
the lease on a given IP address across boots, better user
feedback in the event that the DHCP server is
unavailable, and better support of RFC 2131. Many of
these changes address customer concerns about OT's DHCP
compatibility with Windows NT DHCP servers.
- Support for the Simple Network Management Protocol
(SNMP) is available for Open Transport. Support for the
version 2 Management Information Base (MIB II),
instrumentation for AppleTalk and TCP/IP protocols and
transports, administrative tools, and system agent
support for the PCI bus will be provided.
- Minor changes to Open Transport support for Apple
Remote Access to allow feature requests such as support
for MS-CHAP Authentication support and RFC 1877 to
automatically negotiate DNS address with a server. These
changes address customer concerns about OT's
compatibility with Windows NT PPP servers.
- If Open Transport TCP/IP is configured to use DHCP
and it receives no response from any DHCP server within
30 seconds, it will dynamically assign a temporary
address in the local non-routable self-assignment range
(169.254.x.x) and operate using this address until a DHCP
server becomes available. This allows hosts on the same
Ethernet to communicate with each other using IP (for
example, to allow high-performance TCP/IP access to an
AppleShare IP server) even if no connection to the
Internet is available.
Related Materials:
Back to top
|
PlainTalk
1.5.3
|
PlainTalk provides both speech recognition
services and services for the translation of text into
audible speech. Mac OS 8.5 installation ships with
English Text to Speech 1.5.3, Speech Recognition, and
Mexican Spanish Text to Speech. English Text to Speech is
installed as part of the default Mac OS 8.5 installation.
Speech Recognition can be installed as a custom install
option.
- Speech is now available via the Say scripting
addition -- part of the standard AppleScript
additions.
- The new "Read Me" file contains information on how to
place emphasis on certain words that are spoken.
- Three new high-quality voices have been added that
were previously available as a separate download from the
speech web pages.
- Talking alerts are now turned on in the default
install (with a 10-second delay).
Related Materials:
Back to top
|
QuickTime 3.0
|
QuickTime provides various multimedia services
for the Mac OS, including the ability to display movies,
and facilities for the translation and display of various
audio and visual data file formats.
Back to top
|
QuickDraw 3D
1.5.4
|
QuickDraw 3D provides 3D drawing services for
the Mac OS.
Related Materials:
- QuickDraw 3D Online Documentation
- Thompson, N. Easy
3D With the QuickDraw 3D Viewer. Develop
29
- Schneider, P. New
QuickDraw 3D Geometries. Develop
28
- McBride, P. Game
Controls for QuickDraw 3D. Develop
27
- Falco, P. & McBride, P. Generating
QuickTime VR Movies from QuickDraw 3D. Develop
25
- Thompson, N. & Fernicola, P. Graphical
Truffles: Making the Most of QuickDraw 3D.
Develop
24
- Thompson, N. & Fernicola, P. The
Basics of QuickDraw 3D Geometries. Develop
23
- Fernicola, P. & Thompson, N. QuickDraw
3D: A New Dimension for Macintosh Graphics.
Develop
22
Back to top
|
Apple Menu
Items
|
Items in the Apple Menu Items folder appear in
the Apple Menu. Files of type 'APPD' are
auto-routed to the Apple Menu Items folder when they are
dropped on the System Folder's icon.
Back to top
|
Apple System Profiler
2.1.1
|
The Apple System Profiler provides a simple way
to obtain information regarding the current system
configuration. Information provided by the Profiler is
useful for customer support representatives in assisting
users.
- AppleScript support includes:
- Query or set which data options to gather in a
system profile report.
- Create a system profile report (document).
- Save a report to disk.
- Print a report.
- Added a close box to Quit the application.
- The Apple System Profiler now searches and reports
more hardware and software configuration information than
did previous versions.
Back to top
|
Key Caps 8.1
|
Key Caps provides a user interface for
displaying and viewing the characters produced by various
key combinations.
- Key Caps will work with System 7.5.3 and later
versions of the Mac OS.
- Key Caps is now an
'APPD' -type
application.
- Key Caps provides Unicode support for
'uchr' system resources.
- For better display of multiple Unicode characters
that map to a single key, as in the Indic and Unicode
keyboard layouts, the Key Caps window can now be zoomed
to a larger size. When the cursor is on a key that
displays multiple Unicode characters, a yellow floating
popup window showing all the characters will appear below
the key.
- Dead keys are outlined using a gray color instead of
a gray pattern.
- Support for inline text entry has been added.
- KeyCaps supports 'fn' and 'num-lock' mode display on
PowerBook G3 computers.
- To allow for better character visibility, Key Caps
now draws small keys with a smaller font and less 3D
styling than other square keys. For example, the arrow
keys on the PowerBook G3 are drawn in this way.
- Any new keys with either the standard 21-pixel width
or 21-pixel height (defined in
'KCAP'
resources) will be correctly drawn without requiring any
new supporting 'kbit' or 'kpdr'
resource in Key Caps.
- The Key Caps Preferences file in the Preferences
folder now contains the version of the last instance of
Key Caps that wrote into the Preferences file.
- A problem where a crash could occur when pasting a
large amount of text into the text box has been
corrected.
Related Materials:
Back to top
|
Network Browser
1.0
|
- The Network Browser application allows for convenient
access to file servers available on AppleTalk
networks.
Back to top
|
Sherlock
2.0.1
|
Sherlock provides search facilities for Mac OS
computers. In addition to the traditional capabilities of
the Find application, Sherlock supports searching by
content and Internet searches.
- Sherlock passes additional information to
applications along with
'odoc' events, allowing
applications to display information about how a file was
found.
- Sherlock utilizes search plug-in files describing
Internet search sites. Specifications are available for
search site administrators to create their own search
plug-in files, thereby making their search sites
available to the Sherlock application.
- Sherlock provides AppleScript support for searching
by content, indexing volumes, searching the Internet, and
searching for files by name.
Related Materials:
Back to top
Apple Extras
|
Apple Video Player
1.7.1
|
The Apple Video Player provides facilities for
live video playback.
- AppleScript support includes:
- Play video from any source.
- Capture video to QuickTime movie or PICT.
- Capture Teletext or Closed Caption data.
- Navigate Teletext screens.
- Change channel, volume, Teletext page,
bass/treble, brightness/sharpness, etc.
Back to top
|
SNMP Administrator
1.0
|
Open Transport now supports SNMP (Simple Network
Management Protocol). SNMP Administrator provides a user
interface for configuring SNMP.
- AppleScript support includes the ability to address
and send e-mail.
Related Materials:
- Technote NW19,
"How the Simple Network Management Protocol (SNMP)
Manager Finds Network Cards"
- Technote NW22,
"SNMP Transports"
- The MacSNMP
1.1.1 SDK
Back to top
Utilities
|
Disk Copy
6.3.1
|
Disk Copy allows for disk image creation,
mounting, and writing.
- AppleScript support includes:
- Query and set all application preferences.
- Mount a Disk Copy image as a disk volume.
- Unmount Disk Copy volumes.
- Check and verify Disk Copy images and
checksums.
- Make a floppy from a Disk Copy document.
Back to top
|
Disk First Aid
8.5.1
|
Disk First Aid is an application program that
provides disk diagnostic and repair services. It is
normally located in the Utilities directory in the
startup disk's root directory.
Back to top
|
Drive Setup
1.6
|
Drive Setup provides drive initialization
services for Apple hard drives.
- Drive Setup can now reinitialize a drive maintaining
the former partition scheme and formats.
- Drive Setup warns before updating a driver.
- Contains bug fixes.
Back to top
Apple Developer
Utilities
Mac OS 8.5 requires updated copies of the
following Apple Developer Utilities:
|
MacsBug
6.5.4a6
|
MacsBug is Apple's low-level debugger, providing
a user interface for the disassembly and perusal of
machine-level instructions.
Compatibility Note:
Mac OS 8.5 will not load versions of MacsBug
earlier than 6.5.4a5. If Mac OS 8.5 finds an
unsupported version of MacsBug in the System Folder,
it will attempt to rename the MacsBug file to "MacsBug
Obsolete" (where " Obsolete" is a localized
string).
|
Compatibility Note:
In Mac OS 8.5, the Font Manager has its own
private heap zone. This heap has no free blocks. As a
result, Macsbug 6.5.4 reports the heap is corrupt.
This is a harmless condition, not a real corrupt heap;
Macsbug is reporting the wrong thing.
|
Related Materials:
- MacsBug Reference and Debugging Guide
- Download MacsBug
|
Macintosh Programmer's Workshop (MPW)
|
Some versions of MPW Shell and StdCLib can cause problems
under Mac OS 8.5. Developers should use MPW 3.5 or later when using
Mac OS 8.5 or later. Information about retrieving the most recent
version of MPW can be found at the address:
http://developer.apple.com/tools/mpw-tools/
Back to top
Items No Longer
Supported
Appearance Extension
The Appearance Extension is no longer in the
Extensions folder. Its functionality has been
incorporated into the System file.
Apple Remote Access Client
Apple Remote Access Client has been integrated
into Remote Access 3.1.
Cyberdog
Cyberdog is no longer included with Mac OS.
Desktop Pictures control panel
The Desktop Pictures control panel is no longer
installed. Its functionality has been incorporated into
the Appearance control panel.
Mac OS Easy Open
The Mac OS Easy Open control panel is no longer
installed. Its interface has been incorporated
into the File Exchange
control panel, and its functionality has been
moved to the System file.
Map control panel
The Map control panel is no longer supported.
Its functionality has been incorporated into the Date
& Time control panel. For backwards compatibility, it
is provided in the Apple Extras folder.
OpenDoc
OpenDoc is no longer included with the Mac OS.
AppleShare IP 6.1 will require and include OpenDoc
when it ships, and will be supported on Mac OS 8.5 in
that configuration.
Open Transport/PPP 1.0.1
Open Transport/PPP has been integrated into
Remote Access 3.1.
WorldScript Power
Adapter
The World Script Power Adapter has been
obsoleted by changes to Script Manager, the Font Manager,
et al.
Back to top
Downloadables
|
Acrobat version of this Note (400K).
|
Download
|
Back to top
|