Path: utzoo!utgpu!attcan!uunet!mcvax!hp4nl!botter!star.cs.vu.nl!ast From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: 1.3c bootblok.s broken +FIX (was Re: 1.3c upgrade results[LONG]) Keywords: Minix, 1.3c, bugs, bootblok Message-ID: <1498@ast.cs.vu.nl> Date: 10 Oct 88 10:29:43 GMT References: <1429@ast.cs.vu.nl> <14243@comp.vuw.ac.nz> <1454@ast.cs.vu.nl> <14265@comp.vuw.ac.nz> Reply-To: ast@cs.vu.nl (Andy Tanenbaum) Organization: VU Informatica, Amsterdam Lines: 61 In article <14265@comp.vuw.ac.nz> jonathan@comp.vuw.ac.nz (Jonathan) writes: >A Minix kernel built from bootblok.s as posted in 1.3c will *never* >boot off a 360k floppy. A context diff fixing this is included. >I've tested it result on both 1.2M and 360k. I have tried this fix also, and it seems to work. It looks like ax was not 0 at the time of the call to the BIOS to reset, so it didn't reset. I hope bootblok.s now works everywhere. Feedback is definitely welcome. I have to open the box full of styrofoam now, so let's see if I can get it right this time. Many thanks to Jonathan for the excellent detective work. Sometimes we are all so used to USENET technology that we forget how amazing it really is. Try this on your mother some time: "A guy in Holland wrote some software that I use on my computer, and he found a bug in it. He announced this on a computer network, and two days later another guy in New Zealand found it and told me and 10,000 other interested people how to fix it. Of the 100,000 lines in the software, there was one line missing." I tried to describe USENET to my father once, and his reaction was: "What century am I living in?" In case anyone missed Jonathan's fix, it is listed below. Andy Tanenbaum (ast@cs.vu.nl) : This is a shar archive. Extract with sh, not csh. : This archive ends with exit, so do not worry about trailing junk. : --------------------------- cut here -------------------------- PATH=/bin:/usr/bin:/usr/ucb echo Extracting 'bootblok.cdif' sed 's/^X//' > 'bootblok.cdif' << '+ END-OF-FILE ''bootblok.cdif' X*** bootblok.old Mon Oct 10 11:17:14 1988 X--- bootblok.s Mon Oct 10 11:07:16 1988 X*************** X*** 136,142 **** X mov DSKBASE,ax X seg es X mov DSKBASE+2,dx X! int 0x13 | diskette reset X X L1: X X--- 136,143 ---- X mov DSKBASE,ax X seg es X mov DSKBASE+2,dx X! xor ax,ax | diskette reset X! int 0x13 X X L1: X + END-OF-FILE bootblok.cdif chmod 'u=rw,g=r,o=r' 'bootblok.cdif' set `wc -c 'bootblok.cdif'` count=$1 case $count in 325) :;; *) echo 'Bad character count in ''bootblok.cdif' >&2 echo 'Count should be 325' >&2 esac exit 0