21 October, 2011
25 July, 2011
12 May, 2011
When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong.
The third law applies best to how most people perceive what I do for a living. I will try to dispel magic in lieu of science, and I will try to do so semi-chronologically.
In the early 1980s I had been given a number of Apple computers which were either on loan from or purloined from the law offices of my father; some he bought, outright, seeing my interest in computers. Nevertheless my very first command-line interpreter (CLI) was the built-in Apple BASIC interpreter that all Apples came with, on 5.25” floppy disks.
A typical program might look something like this:
10 REM THIS IS A PROGRAM
20 PRINT CHR$(7)
30 GOTO 10
This program would endlessly beep until you cancelled it with a control-C (I had not yet learned about trapping system control variables, but I soon would). Between the ages of about 5 to around 9 years old, the Apple, it's BASIC and some of it's MC6501/6502/65C021 assembly language.
Around the time I turned 10 I got a brand new Mac Plus, which boasted an entire 1MB of RAM. My precious command-line suddenly disappeared and was replaced with a visual interface (GUI – graphical user interface). I hated it.
This new technology wasn't magical to me, it was annoying. An annoying obstacle. So I researched it, learned what I could about it.
I learned that the filesystem kept files organized as pure data files and files that could be run, and the files that could be run had a “fork” called the resource fork. I learned that Mac System OS had a utility to manipulate that called ResEdit2. ResEdit opened up a whole new world in the Macintosh operating system to me, but that wasn't the end of my exploration.
Soon I discovered MACSBug3: a low-level debugger from Motorola, makers of the Macintosh CPU the 68k or MC68000 series of processors. The Mac Plus ran on an MC68000, the Mac SE also on the same 68k chip but with wider “motherboard bandwidth” (better access to the 1MB of RAM, or, 2MB), the Mac SE ran on the MC68010. The Mac LC ran on the MC68020, and unsurprisingly the LC-30 ran on the MC68030 (same as the Mac SE-30).
I think it was the Mac SE30 that we had which had this beast attached:
Pictured above is a Jasmine 20MB SCSI Hard Disk Drive. In 1988, this cost $700. Now, my network interface card probably has more on-board cache. A single gigabyte would run into the tens of thousands.
Exploring the Jasmine drive got me into quite a bit of trouble: for some reason, I thought it would be fun to put a “password” on the drive so I could keep my stuff private – not an unexpected impulse for a precocious 12 year old; but not good for a 40 lawyer with data on that drive. Worse, still, when I forgot the password.
And in that regard, my father was my first partner in hacking something of value: we engaged the makers of the equipment, they directed us to a piece of software called “SCSIEditor” which I continued to use for many years. The software allowed you to edit the boot blocks of a SCSI block device, erasing the password. This was my first experience with sector editing on a low-level block device, but it would not be my last.
1The Motorola chip in the Apple ][, ][e and ][c respectively.