Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!lll-lcc!qantel!ihnp4!inuxc!pur-ee!uiucdcs!uiucuxc!hamilton From: hamilton@uiucuxc.CSO.UIUC.EDU Newsgroups: net.micro.amiga Subject: KickBench Message-ID: <148600152@uiucuxc> Date: Tue, 30-Sep-86 17:48:00 EDT Article-I.D.: uiucuxc.148600152 Posted: Tue Sep 30 17:48:00 1986 Date-Received: Fri, 3-Oct-86 12:00:22 EDT Lines: 69 Nf-ID: #N:uiucuxc:148600152:000:3702 Nf-From: uiucuxc.CSO.UIUC.EDU!hamilton Sep 30 16:48:00 1986 if you've been wanting to kickstart and bootstrap from the SAME disk, or kick from df0: and boot from df1:, rejoice: a resourceful hacker (alonzo gariepy) has accomplished the feat and posted his technique. if there's no objection to a uuencoded .arc file in mod.amiga.binaries, i'll forward the file there. if you're in a hurry, you can get it from the commodore/amiga section on PeopleLink. it'll probably show up on other services and BBS's very soon. alonzo's distribution comes complete with a batch script that will do all the work for you to create a "kickbench" disk; you only have to finish the job by deciding what you want copied to it from your workbench. one caveat: you will need a copy of DiskEd from the developers' disks and probably "diskchange" from 1.2 beta. i presume it's improper to post DiskEd, even tho anyone who really wants it can get it. perhaps c-a could bless its distribution? here's how it works (as much as i've figured out). 1) diskcopy a kickstart disk to a new disk. 2) patch the "strap" code in the kickstart to jump around the test for 'DOS\0' at the beginning of sector 0. this is the test which leads to the pictorial prompt for a workbench disk -- ie, this is Exec, not AmigaDos. 3) place a modified dos bootstrap in sector 0. the change has the effect of writing 'DOS\0' into longword 0 of sector 0 before AmigaDos goes looking for it. this is delightfully easy to do. one of the address registers during boot points at the disk i/o request used to read the boot block(s). it suffices to modify the longword at *(io_Data), modify io_Command, and DoIO(). about 18 bytes of additional code. the original boot was only about 38 bytes to begin with. sector 1 remains the first block of kickstart, instead of being the continuation of the boot. 4) build an AmigaDos filesystem on the unused portion of the kickstart copy. tie up the blocks occupied by kickstart in a pseudofile so AmigaDos will not try to allocate them. 5) copy the contents of the major sys: directories (c, l, s, libs, devs, fonts, etc) according to taste. now, to make this disk kick'able, write 'KICK' into longword 0 of sector 0 (alonzo provides an executable that does this). cycle power and insert this disk. kickstart ram will load, and dos will boot as normal. once dos is up, your kickbench disk IS a workbench disk, and no longer capable of kick'ing. to "re-arm" it, 'KICK' must be re-written. you can do this right away (in startup-sequence, even), but if you should need to remove this disk (for a diskcopy, say), you must temporarily disarm, restoring the 'DOS\0' sentinel, or dos will not re-validate the disk when it is re-inserted (the same executable will do this too). as long as you rearm before shutting off (or losing) power, you're set. i have plenty of ram, so my startup-sequence copies and assign's the important directories to ram: and re-arms the kickbench disk, which i can remove until the next power-up. when i'm in frequent-crash mode, i use a conventional workbench disk for warm-starts. the kickstart code occupies 256Kb, which still leaves room for a reasonably complete AmigaDos sys:. if it's not enough for you, you can use the kickbench only long enough to transfer to a second, more complete, disk in your external drive. this is equivalent to kick'ing from df0: and booting from df1:. wayne hamilton U of Il and US Army Corps of Engineers CERL UUCP: {ihnp4,pur-ee,convex}!uiucdcs!uiucuxc!hamilton ARPA: hamilton%uiucuxc@a.cs.uiuc.edu USMail: Box 476, Urbana, IL 61801 CSNET: hamilton%uiucuxc@uiuc.csnet Phone: (217)333-8703 CIS: [73047,544] PLink: w hamilton