Path: utzoo!mnetor!uunet!mcvax!inria!rouaix From: rouaix@inria.UUCP (Francois Rouaix) Newsgroups: comp.sys.amiga Subject: Re: Boot-block contest ( ) Message-ID: <611@inria.UUCP> Date: 3 Feb 88 08:48:15 GMT References: <2442@crash.cts.com> <3100@watcgl.waterloo.edu> <150@laic.UUCP> Organization: INRIA, Rocquencourt. France Lines: 28 Summary: reading other stuff In article <150@laic.UUCP>, darin@laic.UUCP (Darin Johnson) writes: > forget about it when I think of how to create a boot block, generating > code that will work there (I assume Lattice/Manx won't work - assembler > perhaps..), and how to put enough code in the bootblock to actually > read stuff from the disk to load in the rest of the OS. > Why, of course assembler is what you need. You also need to compute the checksum (this was posted some weeks ago here). You should also know that at boot-time, system is almost completly setup. You may open graphics.library and do some graphics for example. As for reading stuff from disk, it is quite simple. When the strap code loads the boot-block and start executing (at offset #$0c), you have in A1 a pointer to an IOStd ( I mean the special one for trackdisk.device - I don't have the full name in mind). Just fill it with your parameters and call BeginIO(). As far as I know, Psygnosis uses this scheme in their games. But this is not what we want. The boot-block code should always return so that set-up of the system could be completed by the strap code. If the code does not return, there may be some problems. At the moment I suspect that you will lose the memory used by the "workbench hand" picture. (View+ViewPort+RastPort+320x200 plane...). Other disks won't be validated (I think). For good uses of the boot-block (apart of Viruses ;-) ;-)), we already have StealMemBoot (posted in comp.binaries.amiga weeks ago) that installs a path of AllocMem in the boot-block.