Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!elroy!brad From: brad@gobi.jpl.nasa.gov (Brad Pickering) Newsgroups: comp.sys.mac.programmer Subject: Re: System Startup Message-ID: Date: 16 Apr 91 21:25:28 GMT References: Sender: news@elroy.jpl.nasa.gov (Usenet) Distribution: comp Organization: Jet Propulsion Laboratory, Pasadena, CA Lines: 41 In-Reply-To: brad@gobi.jpl.nasa.gov's message of 9 Apr 91 15:21:03 Nntp-Posting-Host: ais-gw.jpl.nasa.gov I was trying to find out how to create a disk that contained what Apple calls dispatchable boot blocks. Inside Mac Vol V describes the fields of the boot blocks but not enough detail is there to use the fields correctly. Somebody (I'm sorry I've lost your name) pointed me at IM Vol IV and TN 134 (Boot Problems). IM Vol IV has less information than Vol V but TN 134 was a little more useful: it tells you what visual clues indicate what stage of the boot process has completed. It turned out that the best source of information about the boot blocks format is in the include file 'Private.a' that comes with the MPW Assembler. I only got something working, though, after I read the ROM code that loads the boot blocks. The results of what I learned are as follows: the first field 'bbID' should be $4c4b the second field 'bbEntry' should be a relative branch to the boot code the third field 'bbVersion' can be either $44 or $c0 The part that threw me off the most was this third field. The documentation says its a word long but doesn't tell you that only the first byte matters. Oh Well, here is the resulting code which can hang your machine at boot. (In THINK C) asm { dc.w 0x4c4b bra.w @skip dc.w 0x4400 @skip bra.s @skip } I hope this information helps others. -- -- Brad Pickering brad@gobi.jpl.nasa.gov --