Clarus, the Dogcow : Moof Museum

A museum dedicated to Clarus, the Dogcow (Apple DTS mascot : she can flip, she can do precise alignment, and she moof!)

Collection : Clarus from Apple Inc. Labs (softwares)

Clarus was the mascott of the Apple DTS team and has inspired many developers inside (and outside) Apple.
In this section discover all softwares and source code related to Clarus from Apple Labs, many of this references are not real software but sample code for developpers.


We have a separate collection for software outside Apple and a special collection for Microsoft.

Traps.h

Author: unknow - date unknow (1990 ?)

One of the header file used for Macintosh development list Traps (physical address of routine in ROM), but a "miscelleanous section" has some strange traps :

#define _InitDogCow 0xA89F
#define _EnableDogCow 0xA89F
#define _DisableDogCow 0xA89F
#define _Moof 0xA89F

There is no such routines documented in MacOS and they cause a "unimplemented" if used.

in Develop issue #22, a reader has asked for this miscelleanous traps and a DTS technician answer it.

Q: Someone has to ask this: just what are the "Miscellaneous Traps" toward the end of Traps.h, and in particular _HFSPinaforeDispatch?
A:Those few defines in Traps.h are leftover baggage:

0xA89F is really _Unimplemented and 0xAA52 is really _HighLevelFSDispatch.
They were possibly left there to keep system builds working -- or perhaps to keep the build engineers amused.

We have no information about there first uses (we go back to 1990), but there were still presents in MacOS 9 dev kit.

KillDeadKey

Author: unknow - date unknow

This is a sample code written in assembler (rare). it was a patch to transform key on the fly.
Moof is envolved in comments, the technican wrote 'moof'em' instead of 'move'em'.

;set up destination ptr for blockmove
;set up source ptr for blockmove
;size up hpw many bytes to move
;and moof 'em

OffSample

Author: unknown - 1989

This sample code show how to used offscreen bitmap, of course Clarus is used to illustrate, with other pictures.
Here she's called "moof" (moof icon).

TechNote 252 : clarus was a small icon

Author: James Beninghaus & Dennis Hescox - 1989

James and Dennis uwes Clarus to illustrate their article about building small icon (sicn, 16x16 pixels).
We could find a hexadecimal definition of (small) Clarus :

" resource 'SICN' (1984, "clarus") {
{ /* array: 2 elements */

$"00 48 00 B4 00 84 40 52 C0 41 A0 81 9F 8E 8F 18"
$"40 18 40 18 47 88 48 48 48 48 44 44 3C 3C 00 00",

$"00 48 00 FC 00 FC 40 7E C0 7F E0 FF FF FE FF F8"
$"7F F8 7F F8 7F F8 78 78 78 78 7C 7C 3C 3C 00 00"
}
};"

The first part was the bitmap for Clarus, the second part the transparency mask.

TechNote 256 : clarus is the guest star

Author: Keith Rollin & Keithen Hayenga - 1989

Keith and Keithen answer a question from a developer about globals in stand-alone code (a hard task in those dark-time),
Clarus was envolved as the developer ask the question to Clarus.

"Dear Clarus,

I was attending a social gathering of PC and UNIX programmers the other day,
when some of my friends starting discussing modular code segments. We were speaking of tossing off routines in Pascal or C, linking, saving them off to disk, and then hammering out a shell application that would load and execute them at run-time. Generally, a good time was had by all. The hostess was particularly dazzling in her “Rude Dog” t-shirt.

[...]

–PC Weenie who’s seen the Light of the Macintosh

Dear PC,

The problem with accessing global variables from stand-alone code resources is a very ancient and time-honored one

[...]

(Clarus’ PUG-faced neighbor would like to point out that you could also just check to see if the A5Ref being passed to you is NIL or not to determine if you need to create an A5 world.)

[...]

Ah, Clarus sees understanding in your eyes. “So these are the magic routines,” you are thinking.
“They are the magic incantations that allow me to stop beating my head up against Inside Macintosh and let me get on with my work. Why didn’t Apple ever tell me about these before?” To tell the truth, Clarus isn’t too sure.

[...]

Clarus would like to remind the gentle reader that in the Macintosh application environment, A5 points to the top of the globals section.

[...]

The propeller-heads over in the HyperCard group would like Clarus to remind you of something else:

[...]

Fortunately, much in the same way you can pick up a rock and move it somewhere else (preferably to your neighbor’s yard), you can move these routines into your code segment. This is done by using the -sg option of the MPW linker. For instance, in the following example, Clarus simply moofed! the statement -sg Sorter, and everything was stuffed into the code resource named Sorter.

Clarus hopes this helps.

A Note From the Management

The management of this publication would like to thank Clarus for providing the preceding information. However, we felt it prudent to include the additional caveat, to wit, that the problems associated with multisegmented code are not directly addressed with these techniques. The routines for dealing with loading additional segments, ensuring that the resource map chain’s integrity is maintained, and allocating space for a jump table have not, at this time, been formulated. We, the management, hope to coerce Clarus into a caffeine-induced haze sufficient enough to cover this topic in the future."

Eenie (source code)

Author: unknown - 1991

Like many sample apps on Developper CD, Eenie define its application signature as 'MOOF'.

#define kSignature 'MOOF' // application signature

Pict Dialog

Author: Kent Sandvik - 1991

Clarus is used to illustrate how to display a picture (clarus) in a dialog box.
Moof is also envolved has it define the file type the sample is suppose to handle...

Sample Script

Author: Clarus T. DogCow - 1991

This sample used a Postscript file and the comments of this file explain that it has been written by "Clarus T. DogCow" for Apple Inc.

CDROMDriveCheck.c (source code)

Author: Mark Baumwell - 1992

Mark apologies itself in the comment of the code to "hard code the refnum" and invoke Clarus :

"Code notes:
As the Blue Öyster Cult says, I'm making a career of evil: the refnum is
hard-coded, which would cause Clarus to commence to bitin' on my kneecaps
(dogcows aren't very tall) were s/he to find out.
"

DTS_SCSI_Application (source code)

Author: Colleen Delgadillo, Dennis Hescox, Kent Sandvik, Bryan Stearns - 1992

This piece of software use Clarus (called Doggie) for the About Box.
Its design was hard-coded in hexadecimal into .r file (similar to TechNote 252) and include a DogCowCircle and a DogCowMessage.

Can't show you, we're enable to compile this piece of code.

CMSP Digest

Author: many - 1992-1993

CMSP Digest was a monthly digest for email exchange by developper on CMSP list.
Some message envolved Clarus, the Dogcow.

 

DTSCplus

Author: ?

This piece of code use Clarus for all it's folders (Library, Source, Tools and Documents)

 

MoofWars

MoofWar 1.02 (application)

Author: Timothy Carroll - 1996-1998

In this Game sample code, Clarus is the Star !
Timothy Carroll made this sample code to show a few techniques for fast drawing sprites using DrawSprocket library.
You drove Clarus as in "Clarus Goes VR".

MoofWar came along with MoofEncoder a tool to encoder graphics in order to use them as sprites.

MoofWar was adapt to Carbon in 1998, perhaps a bit more compatible with MacOS X (before 10.6).

Warning : This is only source code for MacOS Classic, it require old compiler (Metrowerks) to be compile and old computer to be run...

 

DiskCopy (animated cursor)

Author: Apple Inc. - 1994-1999

Animated cursor for the application DiskCopy 6, Clarus show her ability to flip while a disk image is loaded.

You can also see a video made by GreatGugliMugli showing live the Clarus flips in DiskCopy.