Typing Intrigue combines the practicality of learning to touch-type with the allure of a good murder bathtub-theft mystery.
Anti-Piracy#
Demo Mode#
Copy the game by hand using the Finder, and the copy will present itself as a "demo disk" limited to 20 minutes per session. (If that seems generous, the catch is that you can't save progress between sessions, so you'll never reach the later clues and determine who stole that gold bathtub.)
Quitting the demo gives you the publisher's mailing address...
...and letting the 20 minutes run out gives you the same spiel, prefaced with "Time's up!"
What distinguishes a hand-copied disk from an original is an invisible 512-byte file called ™™™2057™™™, so let's look at that.
Invisible File#
A computer running this game in 1984 contained Bryan Stearns' signature hidden 33 times over. As a member of the original Macintosh team, his autograph was among those molded into the case interior, and as the author of Forethought's Mac copy protection, his name spelled backwards 32 times—!snraetS nayrB —made up the contents of the invisible file. (That's also how he had his name spelled in the white pages, until the phone company put its foot down.)
Surprisingly, the contents of said file don't factor into the disk check at all. The only things it verifies are that (a) there is a file named ™™™2057™™™, (b) it is 512 bytes or larger, and (c) it is invisible. You can copy the disk's visible items, add any file that meets those three criteria, and play unrestricted.
Developer Credit#
The game's own author gets a hidden credit too, in the owner resource:
Typing, by Mary Chan Version 1.0 Sept 3, 1984
Later OSes would make this text visible in the Finder's Get Info box, but at the time of release, the average user had no way of seeing it.
Source Code#
Sector 02DB, directly after the invisible file, contains a chunk of 68K assembly.
ADD (SP)+,A1 ; POINT TO NEW ITEM
LEA BUTTONITEM,A0 ; SOURCE
MOVE #BUTTONEND-BUTTONITEM,D0 ;SIZE
_BLOCKMOVE
; A1 IS ADDRESS OF ITEM
MOVE.L (SP)+,(A1) ; CONTROL HANDLE
; AND RETURN
MOVE #-1,D0
MOVE.L (SP)+,D1 ; DIALOG
MOVE.L (SP)+,A0 ; RETLOC
BRA DLGRET
BUTTONITEM:
DC.L 0 ; HANDLE TO CONTROL
BUTTONRECT:
DC.W $3C,$98,$4E,$E8 ; RECT
DC.B $4 ; TYPE = BUTTON CONTROL
DC.B 6,'BUTTON' ;