Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

Apple Copland: Difference between revisions

From Higher Intellect Vintage Wiki
Line 141: Line 141:
* [[Inside Macintosh: Microkernel and Core System Services]]
* [[Inside Macintosh: Microkernel and Core System Services]]
* [[Inside Macintosh: Modular I/O]]
* [[Inside Macintosh: Modular I/O]]
* [[Inside Macintosh: Open Transport]]


=Components=
=Components=

Revision as of 14:34, 17 October 2020

Copland is an unfinished operating system by Apple Computer which was scrapped in favour of the NeXT merger. This was intended to become Mac OS 8 but instead the traditional system core continued up until version 9.2.2, though some elements of the Copland system were incorporated into the old system.

What exists of the operating system is known for being a disaster and the result of poor project management. The story seems to include independent teams given different ideas to try incorporating into the new system, then having everything shoved into one big mess. The leaked betas of the Copland operating system are horribly unstable and will often crash even when sitting idle. Upper management at Apple Computer gave up and instead triggered the NeXT merger and the eventual porting of OPENSTEP to the PowerPC.

While Copland was a massive project failure, numerous components from the OS have made it into later system software over the years. It is believed that the Macintosh interface for the Apple Rhapsody project is based on recycled Copland code.

Versions[edit]

This only covers the known versions which were either leaked or distributed outside of Apple.

Version OS Name Code Name Date Notes
D7E1 Copland Sun N Fun 1995 Is also referred to as "Maxwell" in some places.
D9 Copland Space Aliens October 1995 "Tools Edition" and similar to D7E1 in that it uses separate Copland volume
D11E4 Mac OS 8 Spaz June 1996 "Compatibility Edition" and installs onto same HD as the initial 7.5 boot system

Compatibility[edit]

The Copland developer releases will run on the early NuBus PowerPC systems including the Power Macintosh 6100, Power Macintosh 7100 and Power Macintosh 8100. D7E1 is almost certainly restricted to these models. We believe some users have also installed the Copland system within Macintosh emulators, but you would need access to a dump of an old world Macintosh ROM among other things (this is unconfirmed and quite likely still doesn't work as of 2019)

The most recent leaked version, D11E4 (referred to as "Compatibility Edition"), should also run on some earlier models of the Power Macintosh 7200, Power Macintosh 7500, Power Macintosh 8500 and Power Macintosh 9500. Per some notes later in this article, you need to keep in mind that there are known issues when systems had too much system memory. Copland will only run on PowerPC 601 and PowerPC 604 systems. No support for the 603/603e/604e was offered.

If you're running this on a Power Macintosh 6100 with a DOS card, the card must be removed or the boot will apparently halt (D11E4).

DDK 0.4[edit]

This information is part of the Copland D11E4 release.

This version of the DDK is preliminary and its content is oriented towards supporting ADB, Block Storage, Graphics, Input Device, Open Transport and SCSI driver developers. Please note that documentation is in draft format. There were late changes to the OS that are not reflected in the documentation. For example, the Keyboard and Pointing Device Families were merged into one User Input Device Family and the documentation does not yet reflect this change.

If you’re new to developing drivers on Macintosh, we encourage you to begin by reading the “MacOS” documentation in the “Documentation” folder before attempting to code. This should give you an understanding of the architecture in which you’ll create and run your driver. Next, try building the sample code that’s in the “Samples/Driver Samples” folder on the DDK to get a perspective on the process and code that is required to develop your own driver.

If you’ve already written drivers on the Macintosh, you would do well to review the documentation relating to your product area. Since developing drivers for Mac OS 8 is different from those developed for previous versions of the MacOS, it would be prudent to familiarize yourself with those differences. It is also wise to scan the sample code (and build it if it would be helpful) to identify key sections which you will need in your own driver.

In addition to providing insight into creating drivers under Mac OS 8, the sample code could also be used as a starting point for your own driver. Simply duplicate the appropriate project, globally replace its symbolics with names more meaningful to your own product and you’ll be off to a good start.

Driver Development Issues[edit]

For all users, we wish to emphasize some key issues common to all who are creating drivers under Mac OS 8:

  • Most developers will be creating drivers for products that are supported by one of Mac OS 8’s many families. As a result, it is important that each developer understand the family specific requirements that exist for their driver. MOST DRIVERS WILL NO LONGER INTERFACE WITH THE DEVICE MANAGER.
  • For those developers creating products that don’t belong to a predefined family, the Mac OS 8 Device Manager can be used to install and interact with your driver. However, we emphasize the point that the vast majority of drivers do have a family. So, before using the Mac OS 8 device manager, make certain that your product is one of the rare exceptions. You may consider contacting technical support to double check.
  • Applications reside in a different address space than drivers do. They CAN NOT interact with hardware directly. By “can not”, we do not mean that Apple strongly discourages it (which we do, but that’s besides the point). We mean, no matter how you try, all applications are denied the ability to directly communicate with hardware. So, if you have an existing application that does talk directly with hardware, it MUST be rewritten to interface with a driver.
  • You are to keep all interrupt activity to an absolute minimum when handling a “hardware interrupt”. Remember, PowerPC machines have only one interrupt line; unlike 680x0 machines that had seven. So, when you are handling a “hardware interrupt”, no one else's “hardware interrupt routine” can executed. For detailed information, read the documentation provided for the MacOS Kernel.

Install/Usage Notes[edit]

General[edit]

  • If you're base install of System 7.5.3 has the "System Update 2.0" system file, you won't be able to properly launch the Copland boot system using the caps-lock key. Drag that file out of the system folder first.
  • Drive Setup 2.0d5c2 can be found inside the D11E4 archive and should be used to initialize the disk used for Copland, but Drive Setup versions above 1.0.4 should be fine (may only detect Apple drives though). This newer Drive Setup does have an "Update for Mac OS 8" menu option which may need to be run in order to boot Copland if your drive was initialized in another application.
  • If the initial Copland booting fails to mount your volume and your debugger log says the volume needs major repair, boot your system off a 7.5.x CD and run Disk First Aid repair on your hard drive.

Debugger[edit]

  • The Power Macintosh debugger software found within some of the Copland archives does not require a PowerPC to run. The software was tested by us on a Macintosh PowerBook 520c running System 7.5. Your serial cable should connect to the modem port on the Copland computer and to the modem/printer combo port on the PowerBook (select modem port in the debugger and set to be remote).
  • When the debugger comes up, it asks you "Open which symbolics file?" You can hit cancel at this point and load .xSYM files later. If you don't have access to .xSYM files, you can still do assembly language debugging. To keep this dialog from appearing, choose "General Preferences..." from the Edit menu and deselect "Show open dialog at startup" in the "Other" section.
  • If you aren't interested in DebugStrs, you can keep the debugger from stopping for each DebugStr by choosing "Show Process Browser" from the Views menu. For each process where you want to disable DebugStrs, click to deselect the "Stop on DebugStr()" and "Stop on Debugger()" checkboxes. To keep the debugger from ever stopping on DebugStrs for any process, go to General Preferences under the Edit Menu. Click to deselect the "Set stop on Debugger()/DebugStr() default" checkbox under the "Process Control" heading.
  • To enter the Power Mac debugger during startup, hold down the option key on the Mac OS 8 machine while it starts up.
  • To enter the Power Mac debugger while running Mac OS 8, type command-shift-6 on the Mac OS 8 machine.
  • To enter MacsBug, type command-shift-7 on the Mac OS 8 machine (Note: MacsBug can be found in Bleeding Edge folder, D11E1:D11E1 MacsBug).
  • To force an NMI (non-maskable interrupt) into the Kernel, type command-<Power Key> on the Mac OS 8 machine.

D11E4[edit]

  • Before installation, place a text file called "No Mac OS 8 Mount" on any drives that you don't want to have mounted while in Mac OS 8.
  • If the Copland installer locks up or causes a Finder bomb message, this may either be from an incorrectly installed System 7.5 copy or your boot volume isn't created with a new enough version of Drive Setup.

Instructions:

  1. Initialize a 250MB or larger drive using Drive Setup (use the D11E4 archive version - single HFS partition), or another utility. We'll call this freshly initialized drive the "Mac OS 8 volume"
  2. Install (do not copy) a fresh System 7.5.x onto the Mac OS 8 volume. If you use 7.5.3 or similar, remember to remove the "System 7.5 Update" file from the System Folder or it'll potentially cause problems.
  3. Run the Mac OS 8 Installer script "Install Mac OS"; install onto the Mac OS 8 volume
  4. Set your startup disk to be the Mac OS 8 volume (this step probably only required if your Mac has multiple hard drives with system folders).
  5. Restart and hold down the caps-lock key. After the happy Mac icon, it should produce the Copland boot animation.

D9[edit]

  • Requires 16MB RAM to run with the debugger stuff.
  • Only runs on the 6100/7100/8100 models, excluding the 8100/110.
  • Place a text file named "No Copland Mount" in the root of the hard drive partition holding your System 7.5 boot files.
  • May have compatibility issues with Apple Extended Keyboard II (unconfirmed).
  • Seems to be fine at resolutions above 640x480.

Instructions:

  1. Split your hard drive into two Macintosh HFS partitions. Any version of Drive Setup should work fine but you can also use the copy from D11E4 which installs a Copland specific driver.
  2. Perform a proper installation of System 7.5.x onto the first partition. Remove any "system 7.5 update" files from the System Folder. Create an empty text file named "No Copland Mount" and place it in the root of this partition.
  3. In the D9 developer CD, go into the Copland software folder. There will be a folder for the non-Copland volume and another for the Copland volume.
    1. The non-Copland volume folder will include a replacement System file for your 7.5 boot volume. Copy that to your boot volume overwriting the previous one. Also copy the "ModernOS" folder and loader file into your System Folder (do NOT let it place them in the Extensions folder).
    2. The Copland volume folder will include the Copland system folder and all necessary files. This is split into debug and non-debug versions. Go into the debug version folder and copy all contents to your Copland partition (the second HFS partition).
  4. Launch your external debugger system and reboot your Copland Mac. The caps lock must be enabled until you see the Copland boot loader.

D7E1[edit]

  • This version appears to only run with an external debugger system connected. This version may also only run on the very first PowerPC models such as the 6100/7100/8100.
    • You need to use PowerMac Debugger 2.0f1 or a very close version. The later 2.1 debugger does not appear to work.
  • If you get a message like 'core resources: assertion failed,' replace your finder due to its corrupted resource fork.
  • Copy your scarecrow disk image to another volume, the scarecrow volume will get corrupted over the course of a few test runs.
  • Place a text file named "No Scarecrow Mount" in the root of the hard drive partition holding your System 7.1.2/7.5 boot files.
  • Make Disk First Aid a startup item, and repair it every time you boot into the conventional system.
  • May have compatibility issues with Apple Extended Keyboard II (unconfirmed).
  • Must have monitor resolution at 640x480 or screen will likely go blank during the Copland boot process.
    • It is also not compatible with certain VGA adapters if the mode is set to VGA.

Documentation[edit]

Inside Macintosh[edit]

Components[edit]

Troubleshooting[edit]

Kernel: Dispatcher: No kernel stacks available![edit]

This message seems to indicate your computer has too much RAM for it to deal with. Dropping your system memory to 32MB or below seems to solve this.

Failed to load main GDevice.[edit]

This message may come up if you're attempting to use the unsupported AV card in your 6100/7100/8100 Macintosh, or if you're using a Macintosh that isn't part of the supported list at all. Use the onboard video port instead of the AV card, and you may also need to use 640x480 resolution.

Machine exception 512 / Machine exception in CFM accept function[edit]

These errors are not displayed on the Copland console but instead on the secondary Macintosh running the debugger software. This seems to indicate the presence of hardware it won't work with. In our case, it was the DOS card in our 6100 which needed to be removed.

kVolumeMount:Disk 0 failed / File system needs major repairs[edit]

If the Copland boot console cannot mount the primary volume, use the debugger to see what the actual relevant error is. In this case, even on a fresh install, the file system was slightly damaged and needed to be repaired. Solution is to boot off a system disk with a copy of Disk First Aid and run a repair on it.

(D7E1) Boot hangs at "Welcome to NuKernel..."[edit]

We're encountering this problem on a base Power Macintosh 6100/60, and there's at least one other reported case of this exact issue. We have a theory that this particular version will only run on a Power Macintosh 7100 or Power Macintosh 8100. Currently unable to test further.

UPDATE: D7E1 appears to be incompatible with the PowerMac Debugger 2.1, so you need to use 2.0f1 as this is confirmed to work.

Videos[edit]

Featured[edit]

Visit Pauls Old Crap for more content like this.

More Videos[edit]

Gallery[edit]

Downloads[edit]

See Also[edit]

  • Mac OS X Server - the first production release of the port of OPENSTEP to PowerPC, using the Copland appearance
  • Apple Rhapsody - code name for the OPENSTEP PowerPC port
  • Mac OS 8 - the actual operating system release under the "8" name, though only included a few elements from Copland