[net.micro.mac] Macintosh Plus Overview

chuq@sun.uucp (Chuq Von Rospach) (01/19/86)

One of the things I got when I bought the new Inside Mac at MacExpo (I'll
report on it separately) was Apple Technical Note #57 -- the Macintosh Plus
Overview. it's 20 pages, and (theoretically) everything that is different
about the new machine and ROM from the final published version of IM. It 
is twenty pages long, so I won't type it all in, but I thought an overview
of the overview would be of interest:

---
Macintosh Technical Notes #57: Macintosh Plus Overview
Written by: Scott Knaster, January 8, 1986

This document gives an overview of the Macintosh Plus from a software
developers point of view.

The Mac+ differs from a mac 512K computer in these features:
o enhanced 128K ROM
o includes an internal 800K 3.5 inch disk drive, and an optional 800K external
o 1 Meg ram standard
o built in SCSI connector
o expanded keyboard with arrow keays and numeric pad
o serial ports are 8 pin DIN

128K ROM

Mac+ is designed to be compatible with most existing Mac software. No change
which would cause a significant number of existing applications to fail was
implemented [editorial comment -- as long as the application follows the rules
set down in IM, of course (chuq)]. the 128K ROM had three basic design goals:

o maintain compatibility
o enhance performance
o bug fixes

BE SURE TO VERIFY THAT THE NEW ROMS ARE INSTALLED BEFORE ATTEMPTING TO USE THE
NEW FEATURES.

Resource manager

Speeded up, compacting resources files is smarter and much faster. new
supercharging facility that allows specially formatted applications to  start
MUCH faster due to mass reads. new caching to minimize disk access [yay!]

ROM now contains several commonly used resources

Quickdraw

performance enhancements:

measured ratios of old drawing speed to new drawing speed:

paragraph of text (1.5)
copybits aligned (1.35)
copybits (rgn->rect) (2.3)
copybits, stretching, general (1.3)
copybits, stretching, selected ratios (3.4)
fillrect (1.44)
invertrect (1.32)
slanted lines (2.29)
vertical lines (region -> rect) (4.98)
paintoval (2.19)
frameoval (2.14)
paintrrect (1.71)
framerrect (1.58)

bug fixes:

rectinrgn used to sometimes return true when the rect was in the region's
bounding box but not in the region

sectrgn, diffrgn, unionrgn, xorrgn, and framrgn used to cause stack overflow
for regions with more than 25 rectangles in one scanline.

pttoangle didn't work when angle = 90 and aspect ration was a power of two

copybits sometimes clobbered source bitmap in overlapped copies

copybits and colormap used to die if thePort was odd or Nil

Drawtext did not work corectly with pictures if the char count was > 255

New capabilities:

Fractional spacing for text 
All 8 transfer modes (not just srcOr, srcBic and srcXor) for text.
colorbit changed so that a negative value turn off all color mapping.
pictures can now have a size that's a long word (over 4 Gbytes)

Font Manager:

Many new feature, fractional character widths, new font numbering scheme,
performance ehnahcements. Features implemented in new resource type FOND,
which specifies a font family.

Window manager:

new variant of the standard window definition procedure which allows you to
implement window zooming out to full-screen size and zooming back in to
pre-zoomed area. Also new support in the window manager to implement this.

Textedit:

Textedit now has horizontal and vertial autoscrolling in the default clikloop.
There is no way to update a scroll bar from within this clickloop, so the
feature is useful mainly for dialogs with ediable text items.

Desk Manager:

now passes evens 0-11 to DA's instead of 0-8

Scrap Manager

Now writes scrap to the boot disk (system folder on an HFS volume) rather than
the default volume.

Package manager:

new calls Pack[8-16], all reserved for use by Apple.

Standard File Package:

Looks very different visually, but has retained the same external programming
interface. new user features - supports arrow keys.

Segment loader:

The LoadSeg routine has been revised to add a capability that should
dramatically reduce fragmentation. if a code segment is not marked as locked
in the resource file, the segment loader will automatically move the segment
up in memory before locking the segment. current development environments
autmatically mark the code as locked, so use ResEdit to unlock it. CODE1
segments should remain locked.

File Manager (HFS)

Note: In general, you should avoid these calls and use the MFS calls. This
will allow your code to work with both File systems. Most applications will
rarely, if ever, have to use HFS calls. 

A global variable called FSFCBLen at $3F6 can be used to determine if HFS is
installed. If not, this location (a word) will contain $FFFF. If it is, this
location will contain a positive signed integer which gives the length of a
file control block (currently $5E).

Misc. notes:

Caching - the file system now has a general caching mechanism. the size of the
cache is set by the control panel.

INIT mechanism - when the system starts up, it looks for tiles with type INIT
and creator ZSYS in the system folder. If it finds any, it looks for resource
type INIT in these files, and executes them.

New Chooser - the Choose Printer DA has been replaced by a more powerful and
general Chooser. It is used to select among devices on a network and to assign
a user name as well as selecting devices on ports

New Control Panel - Now controls Appletalk and size of the system cache.

New keycaps - now detects which keybaord is installed and displays
appropriately. Also adds a new font menu.

New installer - program is a general resource installation utility.

global flag for new ROMS - location $2BE will be $7FFF for new ROMS, $FFFF for
old ROMS.

HFS info:

When HFS is installed, volumes with 800 blocks (400K or fewer) will be
initialized as MFS volums, larger will get HFS directories. An HFS volume may
have a special folder which contains system files. This folder must contain
files named System and Finder. These are the rules:

	o a newly formatted volume has no blessed folder
	o if the user copies System and Finder into a folder, that folder
	will be used for booting
	o That folder stays blessed even if new copies of system and finder
	are copied into other folders on the volume.
	o if either finder or system is removed, the folder is unblessed.
	o if both are moved to a new folder, the old folder is unblessed and
	the new folder is blessed.
	o the root level can be blessed if it follows these rules.

	an HFS volume must have this folder for the volume to be bootable

----
I've left out a lot of material (new calls and other definitions). All typos
are my problem, not apple's. In general, I'm impressed, although I wonder
if people are going to bitch about the requirement to have a Finder in the
boot folder (will an empty file do if the startup program is set differently?)

chuq
-- 
:From catacombs of Castle Tarot:        Chuq Von Rospach 
sun!chuq@decwrl.DEC.COM                 {hplabs,ihnp4,nsc,pyramid}!sun!chuq

It's not looking, it's heat seeking.