Home : Zerro Below

All opinions on this site are those of the author alone.
No warranty of any kind is provided.
All information herein is provided as is without any warranty of any kind.

ASM
FUN
HOME
WORK
CODE
Macintosh:

WIP : Work In Progress

The Macintosh was the USA computer that did very well among true computer geeks. Being very well designed, easy to program for, and very well documented the Macintosh was the ideal system for us.

once the Amiga and ST lost popularity in the United States the Macintosh came up to replace what we lost. With the Macintosh II and later having chunky graphics of 256 or more colors on screen, 16-bit stereo sound, and still based on the 680x0 CPU at the time. There was no better computer that was well known in this country to take the place of the Amiga and Atari ST series computers.

Even those of us that were lucky enough to have Archimedes and RiscPC systems eventually began using Macintosh Computers.

With the changes made in the transition to the PowerPC it took most of us a few to make the transition. Though for those that were familiar with other MIPS like RISC CPU's (including ARM) already it was fairly easy to transition to the PowerPC and its unique assembly language. There are of course other geeks that do not spend as much time coding, though are graphics or aural artists, they made the transition a little faster. The API for native mode changed from using a Pascal calling convention (as the 68K Macintosh) to a C calling convention in the PowerPC, this still worked well, as most of us already knew and used C.

Some of the areas where the Macintosh System Software is better than the others include:

  • Extremely well Documented: With Inside Macintosh being available from the start.
  • Simple System Call Arch: Directing all system calls through a vector by using the "Line-A Instruction Emulator" vector to make system calls made a very robust system. Om the Power PC using a direct library call standard.
  • Good Memory Managnemet: At least on a per application bases. Unfortunately the management of multiple application memory became a trouble later (though solvable).
  • QuickDraw: An extremely well written Graphics library with a very well thought out device known as regions. QuickDraw did a very good job at tuning for speed the way things are drawn overall.
  • Regions: A scan line area definition system that can be non-continous. This can be used for direct drawing, as well as for clipping. It is much more efficient than earlier scan line oriented clipping and shape definition systems do to the way it only defines the scan lines that are different from the preceding (makes fast algorithms easy to implement, reducing memory accesses).
  • Resource Manager: A resource manager that uses secondary file forks to store resource data, and allows overriding resources in a logical manner.
  • Long File Names: With support for 31 character file names from day one they were long enough for any file name, while being short enough to discourage the bad practice of including a big description in the filename.
  • Colon Directory Separator: Many file system Software Implementations use '/' slash, '\' backslash, or '.' period as the directory separator, these choices cause some headache in file naming and management. Macintosh System Software chose to use the ':' colon character instead, and this does not cause the headaches of the other choices.
  • FileTypes: The use of four character (actually 32-bit usually in the form of four characters) filetypes and application association types makes for a very intuitive system without the limits of many others.

These are still among the most productive systems to work with to this day. This is a view that has been echoed by even young people that were born after these systems were no longer available from the stores, they use these good systems and still find them better than the 'Modern' Systems.

This is just a quick introduction to why the Classic Macintosh OS / System Software is a huge focus on this site, and of mine personally. Other pages will focus more on each area of usefulness of this great system.

To make a statement I feel to be true, though will not be popular: I think PowerPC assembly language is reasonable and fairly easy to work with once learned. Now I am sure it helps that I knew both M680x0 assembly language and ARM assembly language before using the PowerPC, though it is not a bad ISA at all.

On the Down Side:

There are a few places where the Macintosh System Software has significant limits. Some of these are do to the original version being single tasking, some just the effect of being an early comer to the Windowing System scene on Single User Desktop Computers, and some simply to design decisions that were a little short sighted. From my view the notable negatives are:

  • Blocking Menus: Menu operations are blocking, to the point of preventing multitasking when a menu is open. Later third parties solved this one, though still a notable issue never solved by Apple Computer.
  • Short range Time Stamps: Time Stamps do not go past the year 2040, this is extremely short sighted. Was solved in Macintosh System Software 9.1 (AKA Mac OS 9.1) for new applications in a way that is not backwards compatible.
  • Blocking Dialog Boxes: Many Dialog Boxes block all tasks, even when there is no good reason for this. This is likely because the early versions were single tasking, though can be solved in most cases (Apple never did solve it).
  • 32x32 Icons: This one I do not understand, Apple chose to use fixed size File Icons (32x32 normal, 16x16 small) despite there not being a good reason for this. Macintosh System Software is one of only 3 common GUI's that I am aware of with this limit, even GS/OS also by Apple allowed for any size of File Icons.
  • Single State Icons: Unfortunately many followed Apples lead on this one, only a single state for the Icon image with an inversion effect to represent selection.
  • Mixed Low Mem Globals: While maybe good for a single tasking system, the choice of what variables should be global makes multitasking a bit more difficult in Macintosh System Software than it needed to be. Many of these would be better in the A5 Globals so that they can remain per application separate to ease multitasking.
  • Standard File Package: This is a poor means of specifying where to save files. Perhaps it was a decent solution for single tasking, though once multitasking came to be on the System software they should have went to using the Finder navigation windows as targets to specify where to save to. Unfortunately this blunder is still part of most Windowing Systems today despite the known better way (a good thing demonstrated by RISC OS).
  • Single Mouse Button: Requiring Mouse plus KB combinations is not efficient. Using multiple mouse buttons would have been more intuitive.
  • Menu Bar: The Menu bar has always been a point of contention for all systems that use it. It does not matter where it is located (though top of screen is more efficient than near top of window (do to infinite effective size)) a menu bar is less efficient than pop up application menus. There is a reason that Magic Menu is very popular on the Amiga, and a reason that the menus are so easy to use in RISC OS.

On Software:

It is the software that is only available for the Macintosh that sets the bar high. Software that was never ported to or from another system, and took advantage of the System Software and HW on which it ran to good effect. There will be more on this in the sections below as the pages get written.

There are many good applications especially in creativity. A few categories where software is very strong for Macintosh System Software include:

  • Paint Programs: An area for which the system is very well known.
  • 3D Rendering & RayTracing: Including animation. This is an extremely strong point for programs for Macintosh System Software, likely even more so than with Amiga.
  • Video Editing: It is interesting how much good quality software is available in this area. This includes Video Capture (HW provided), video streaming, frame editing, integrating animation into footage, and much much more.
  • 3D Modeling: There are a good number of high quality 3D modelers of all kinds available to run on the Macintosh System Software.
  • Chemistry: It is surprising how much software relating to chemistry there is available for this platform.
  • Physics: Another surprising large library of software.
  • Toys: Scene Demos, little cute thingies, etc. Many many toy programs are available.
  • Unique Games: From before it was released the Macintosh has had a great library of unique game titles available. This trend continued through the 1990s, and through the Marathon series of games.
  • Programming Tools: There are many simple IDE type programs and related languages that have never been matched on other platforms.
  • Much Much More: ... ... ...


Bits about the Macintosh System:

Here is an index to pages about some of the things about the Macintosh System :

  • System Calls Overview : Playing with the A-Line Handler is how Macintosh System Software does it.
  • QuickDraw : The Graphics Library of the Macintosh, with some useful tricks.
  • Memory Management : An innovative design that helps keep each applications heap clean.
  • Resource Manager : A system of such diverse usefulness that we can only scratch the surface here.
  • Inits and Extensions : Modifying and extending the OS in unplanned ways.
  • Sound : Simple though very useful.
  • Some More on Regions : Regions are used with there operations to simplify windowing in the Macintosh System Software.
  • Window Management : Done different, and unique. Can be very good indeed.
  • Menus : A weak point and a strong point in one, that can be worked with.
  • ---
  • Programming, some thoughts : A quick dive into programming on the 68K Macintosh.
  • QuickBASIC : Just having fun, playing with algorithms.
  • Pascal : The canonical language for writing HLL Macintosh Software.
  • 68K Macintosh Assembly : Keeping Things Easy and Simple.
  • ---
  • Toys, Screensavers, and SceneDemos : Having fun, for the sake of having fun.
  • Gaming : Let us play, with a unique selection.
  • Productivity Software : When we need to do the mundane work.
  • Creating in Pixels : Paint and Draw till the end.
  • To 3D Scenes and Animation : A higher level of creativity.
  • Sound, Music and Speech : Having fun with waves pushed into the air, Aural Creativity.
  • HyperCard : Hypermedia, though not as we see it today. There is no way to categorize HyperCard accurately other than it is HyperCard.
  • Into Math : For the joy of calculation.
  • Design for Designs Sake : Flowcharting, hierarchy charting, etc.
  • CAD/CAM : From the mind to physical object, creativity gone physical.



Some Project Ideas:

Ideas for future projects, if you are able to and interested feel free to do one of them, or maybe draw inspiration from here.

  • New TCP/IP Stack : Yes we already have IPv6 support with updates to Open Transport, though it is still dated and a lot of useful insight has been gains in the years after the last Open Transport update.
  • 68K Open Source ROM : Starting from the code of Executor, create an Open Source ROM that can boot Macintosh System Software. Mostly useful for Emulators.
  • Open Source System Software : With a starting point of many Classic Macintosh API recreation projects, and the documentation we have create a clone the on disk part of the System Software that boots in Emulators and on real Classic Macintosh HW.
  • Utilities : Writing new utilities, or updating old ones, will always help to keep our system going.
  • Port NetSurf : Netsurf is a good modern Web Browser that is small and fast enough to be practical for the 68K Macintosh.
  • MORE TO COME ... : .. Stay Tuned.



This site hosted by NEOCITIES
THIS SITE BEST VIEWED IN ANY BROWSER
© 2022 David Cagle