[comp.os.minix] New bootblok.s for PC-MINIX

ghelmer@dsuvax.uucp (Guy Helmer) (01/07/91)

Here's my new bootstrap loader for PC-Minix.  The old bootblok.s
did not support 720K boot disks on anything other than IBM PS/2's,
did not support 1.44M disks at all, and ground some disk drives
(possibly to death :-( when doing the check for a 720K disk.  This new
bootblok checks for 1.44M, 1.2M, 720K, and 360K disks and should
handle all four types on any IBM PC or PS/2 clone.  I also took the
liberty of making a change to the read error handling code - it now
waits for the user to press a key before it attempts to reboot the machine.

Unfortunately, I haven't had the opportunity to thoroughly test the
program on all four disk types.  I have tested it with 1.44M disks
and an earlier version worked o.k. with 720K disks.  So many people
seem to need this code to boot 1.44M disks that I thought I'd get it
posted and ask the help of people on the net to test it on other
size floppies.

Good luck!  Please report bugs to me.

Guy Helmer

---------------------------------------------------------------------
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 bootblok.s.Z
M'YV-?$!<05/&#0@Z!$% &0(BS1P0<-[<*2.G#!D0;]RP:$@'1,4P9!XB+ /"z
M3!HY<SJ*8?-FS)J2<MZT.9C0#$LX</(H"$C&X<LT;NB\ 0&23,4Y#V'@N3$$y
M!@RB;BZJJ=,&CLBA:>BX  &""AJ'(,2\>:.2I4L0;>JD!#$F(YTP0'?2)"F6x
M+,289^2$F0F4)EB3;,IL[9JP;D<X>/7.-(FR8ULX:<H\S#JG#!LS!]_(+7KTw
MH8P:-I: : $B1HT9-D"@$ KB3)F.E"UC?E.GXQO,(T'<"9,GQ6"O!3F"8 E2v
M9$*Y;^!0#$,'Z!D0<_*D++,XYLS<AD'TG+/F-1V20%FWH?Y&3IZ-8:+.-3BUu
MZE6T!>NXD,OD#4CG#1^ZL4M'3AH[:83!1EAEC!&&6B3EME!^(-3A1A@K)3C4t
M1Q>%<9!>9X6G64#CM5%>'D2-$1-21(%@ PVBB>4@&6&8M]$<0^46T1Q9I9$1s
M?K>!4(8=%.6!$'Y@B5BC@6S,%Q!P(+A!E1@4881996,(A5)FP]EW49!NP>6&r
M141UQ)ED#]4  PU.^O702BVM821A)-DA8!W@/01';7-5%!:(V-61!AL7(?9&q
M7GL19<9W<@B'1A@/;=<6CQ5=A(9$<HF1QG.Y);=<<VX\%]UT?,TQV$#!83<6p
M'6B^Y">@G98$E$,$741<3YFR(%=6(+1G54-1G50@'6S@&6-"IRJFVGA*IJ#;o
M5V.@01091H')X!G_!2<&G@3)Q0:B'=%QQU#;RA$2KG.%-6I89JD)PDYR34%5n
M&RV"F&-NW7X+!W/)<JEAN-FA>=:T8>G)IPYR75%>A1V)28,.((P W:[EO?=Jm
MP -W"8*8-B"L,!%3@. F&W"65!Y\2D+LK<1BXF"Q0@QMW+$9'Q-;A\@$3QP#l
M#"</D;'*)+%<J,OH'OG50XS2F%&9HMJE[TMIK<4D44A1%^%%=V3U*)V5S:O7k
M=R D 8()(! AUQSSCB$85SV#<$0=(")AV7B%DA;#"S:\D$,,  =D1!IX<,F:j
MG\K)T2L(AT856&DNT$!#$QO%X((,B(-P@PPP+(&>>JA%KIU/!^6AG*<**,#5i
MYY\S\400&!=Q! @]@*"44S8\!3KH 1%D9]%EI:G;G@.FU&)'KSKG^>M<"9'$h
M$U-,83KJJN,! U.N P]"[!0E6-BX1W-4V64,OFK1[\ +\<035!A_>NI*S6!$g
M$,T##[V=M$;-QH"/@1@;]BA\%EH+BM>P1 K<OX[Q$D((@O&0%P/(.>]U 2G@f
M4U)')A4D+P9%0!X<^D.E[9BJ17MY#47FT#F3/&A 7$F=P13@LB]\2X0PL $)e
MX_,%.(P!>25;H9*^,(:'B'!FG5. "\[ DI40Z S?P0,=-L*D,[#H+40LPQG$d
M@)2-%(0,01RBCJ)RQ# X,2I,?,CSF,:G))7!(L:13!ET&$4%%#&* '-!%<VHc
MQ"JF,8ML7")2TEA&N<1/7&2I'FL,4YDS] ]T'K+#Z\* !Q:,0'C$$]\?/Q?(b
MUX6$!81<)%?P\#'0T8@%-#K@YW@R!QUDDC3EF110!$2N-$D2+6\0).@(:4COa
M@4^1!VPDZ"0#23R<DI*% EU/6- 337(E()+102])LZ4[E-(EIY3EY\90R!'8z
M3Y,!49AN!O:>0(XQ 16!@P(2$,@[)."; ;DC2Y+3OVU^[2UR4,FX_"0V,M2Ay
M(MM40U72D #=I7,CK@R?Z1(0D,HXYCWY5*0"[$D'@'$SE8XL9 V3B5!=SH&7x
M>/#E%OVIG?<L]("X'&0A(QG+AGZ.EH24:#]?HZ/WP("AJOQ<$\D045^.M",Dw
M8DT-&^("P;SH+1DRR%?.H*RVP+.C*>4*V QI&M0<,""K:HZ TJ 'DH"-2COMv
M:7G&*!?$A*<U%7F-[PYJAP2PTIG@](@8.P(@,I1!,PD(3P*4@D.4:M20JX,<u
M#/@) D1FC$@#ZLN<'/-.&!6J+W6 7WFV)(=;5O)S8BAD8@V;R\^Q%**GO"KHt
MV'I2H+XNL8;,RQ?I<$J\@LZJ0>E<0)+@AAHMM:F7XPY$,#@>0CUT/7+I#X@4s
M9[@FI+8[=, :OV2+']90:&%1^E@,<"#:"X7!)332 ^ 01:#@)#5 ;&"JWH8Rr
M7(\5*B1H(,,,#B(9SG+5J\W$KG;I2@;:1 @Z:3 K&3825>T4A$9T -$,7% #q
M$:Q6#FW@8 +P6D\R:'.;N 1O+<-Z%)(:)5K;5"M;9U!<*,2DG>]TJG^'4X8Pp
M\.@ADEE8MH9R4CXD(,"LC*2' YD D-KRNU^-*PQB0-??0DE*&QG!BS^6NAALo
MD\28'<'J6C=78'8RL?TR@QDH<N-4[K>9JUNQ#.C:G^.^! 8O8EBAA@O@\B3@n
ML2P-ZX%YI#KV5O@B)TUK4-:*AQ@P. %J<(,8$L $&\NE"'*(B1RVDH2.[&8.m
M;CA!1VA[N*TX02(:;A <K$LXQA6YJTU&+E.)6@.ZF@:X4I)3DQ*]AD,+> 3Bl
M;31/S#LX&JF7O9-2EEG= %\0U6!Q];UO?K?)WSGXMW,?MG*(\4#@L6K'/SQ*k
M\)@7W. '6R3"T)EP8"R<X0Q3E#4=CK4<!"SB[YK8TBE6'N18'! 72SG&,RY4j
MC2V=XQT[A:[!!+(8ZB!D(G^7F7!5GE.,P&0,/3G*P9UR#:J\;"S3FKRX)@F4i
M ?=EU>F:#F0V<SS5S&8W'\D\CH-<BO!DGMY.J-^4!@$-%,>5RHGF4 ^AP5,Hh
M/8<=)-QR&)<+#F PF"=TL2UF;5!E+L(:V5+IMQ$_T4;N@"QE;2NP%\D+4%A>g
M+>B=A3:V>9),2+)ER1C)TAQ?] AR .WPNGJ\FZ[#>3UMD8V45^J#&W6I03#?f
M5%MMU?L5$!OZ^U]E,_O>U;9UT?\=< ;+Q<$M^;6=7#WH85^XI(%&]D[,/NN]e
MD_C9*$:RM%?<XGYG>R-*:@.3"I6C;$_F(3;^;K>5QV-P_SBBXRYW8<\M>!GDd
M@/ !B?C$X2VETM#[RH7,,KZCU65^@\3?8@8XK]%,\#87M\ZZ052>._(XRY5!c
M:A1YT5 H6H=!ZVPXV(+(&Y"2A@C)Q8*94XYJ+&ZL]#C*4L+IUAHXUW1#AH19b
MFM8.IYV:WJJ+'^M$?V]63(UJ^WY=OZU^]>EG76N*KCWV;>]<FP%&'RN%RU)7a
M@Q^;\AW5(1.WY1V"H0"O8E"M]AH5<09A17R#%@9HL!'HIATGAF.IYQ-00E= z
MECJ)MWAELB5"!&D?XUM?MDU%D0 YMF3DY1,(:()3UAIOD&',41JGD1HH( +9y
M9E\SP#_UA 9CEV,L1E=IP0;- 0=_DVU)LB1-PB\S( /;- ="R(+-5(0\D15"x
M,8552(1:IH5H185#>(5?F%MAV(5D^()F:&FTE%AAY5,D\24D A;A%E$H$#4(w
M$18113Y &&"8Y89T51EQ*!:YYE7,<F4<6" #%A A]1WO\Q"/8DSLX@8@XG@Ov
MEX)<M684:$@N&!#)@7(Y\S$4PG8+]H9B%RYV16@6,HIHMF84(6=A92L881 6u
M%(.O6![=9T$=.%+@@1D3011V4EY;4B7WD2FL5A4"YD$"HH9;V(H)\"JQ2!6#t
ME@:X(3MQ@DJS,Q0/TW_%^!S".#8@<#>E186"-A^6I4N"!P/F(P/J P)K@#OAs
MXB%2XE:KE(Y.,02G!'2=%5W<5DA)IP=&&!\Z@@?*$24/H3".]P(1UQ>+=8Z?r
MPTHE]"T(%&A]1"P=\8 .X5KTZ%@/%5(N=2S!43598P)$T#49$P*I8S,;R14Fq
M)E(8,1)R$#65,1<@TB+2XU099([.HTQ"U9$M!4W3Y"UA,B:C(3-/89.K10?Up
M<A'\,FY[0@:PUD=LH5_R!!D)  0EY$)T5954PC-R<0318A"Y$8)-\BX)08(=o
M 7UZ]' @876). 86*!-[=9-VE ?1%17!)X->UI90<1%DR7A/(F7O\5O,Q3+On
M(Q&=M!G*DCH(*9B7"!(>QQ8#DCI,. *1F2S(,P9V&9EDL)BN1P8>1P:3Z6_^m
M]( ZD "6=DG_2%<YD#@UL!'"A0,R*&F%0FF'!@("IHL%0E<A!8)E4(),B((@l
M<7KVIF5XH .]R74RT *2DI;_47Y1L4T]T54T\H5EY512EC!W8EQGD5S71&+Hk
M1DAON(?<^1*6B8'(PX0H  ,M$$K0X@9 J($0%58?*(--J'A-LI[MZ1_O&9]&j
MQDJZ.0:\29YH:9_""96&2 8"5IT#BCS7LA;!R987L0*F=V6[*9X-FCH/"E/9i
M>:#$F7IHAX'(29Y1R)RT,IW0B:#3F0"KF877B7P0FIV[Y6[HU53'" >:R 8Lh
M, 9C1U=@05"]1:.I\T1!ZF3Q5 ;U]!I86"O2V!"^^"B#\UM#$P-L89<[9VYSg
M('7UE ;S25=M416U01(L,1&%PH1MX2#>958"RJ#]E ;(TYCQ-I@I*!=#0!!Gf
MP1J"Z*1F(E:O)R++5QD/82$GDB*T$17MHAH%))N.YQOI4@>8B5</D30J$8=Ve
M\ ;E1P:_D1"IZ!IT$$8S<0<QD2GSX4]T$WB\])89ZD7 V:$2JH*'^%6=>%OVd
M2:5G4(.381!P:)]G1F*/A:$\0:"_R:'Q]I@(NH*/Q:;HF3H9@9W#RB1YD!$7c
M\41EPHIJBGK&Z:#)%Z%\BJ!B>&E+2H'(0W-I@)F#&A;I\1+EE6$NADY>XEW=b
M^E@CL*2=&:XU9R(H8JYN\!(LHZ[])JUQL5]5H8D5V)EA!:XHJ1W*,A[I\1"_a
MY:=-\Q#EJB*&:AY'FJ1T$*NR2(U),A02RR((Y[ KQX5RL&:B251:-IJ_*38Dz
MXJS0:J^$NB+M0F\D.[!H<*U#B@<J>R9E\*SJ$;&%ZK$Z44]:>DFJQXAD,!40y
MF@;2N9O(FDD@Z(2 .9O$VCG^) .G26*LA*S)^9=E8HD>:G;%25Z>21!\*9K(x
M<W^!-+,[VJ,\X9FVZ558=&45J&/*0VT(BSQDBZ!INU\5R*-OZ+8T^K54.+)\w
M:[)>ZIF:>9=FM7E[RZ,LL!)O.)I,R+7ZZ9Y  81 ,09KYK=>*KG92;DQL)^Bv
M!)\R>V4Z*IHG>[;Y=I\BN)Y 6!$ 5VMT\$X&@3.W2A2%Q!:YRU(YQ <M\+O u
M&[S".[S$"[PK(!<?%6<?PS6@=9% !Q09!CL[4;S46[W!>[P*<(MR # '-"?Dt
M^)"VY)!<D6-FL+B%=4">]3G-ZY+KFU]^%!!7 !<=<7P(4IM#\15>XHX[.W\;s
M=6(*5F8JY&$!AF[,M!.O6*I'N%9:9AF\L7?C! <E%F>1][\QP'2=T[P((U$:r
M_$MW<54IX1^9HAJ)Q3] E:,L@ (CG !'112"%11:\A#)TB)4LC3-NST']!TIq
M(08/J:.D])%*\CYL<2AR\ .GE&8D\5GI1*4NN1^G!+L;O,*6,9.P2[L*@!ATp
M0#>,E$HZ_)!S&P-D I1>+$$@[!A"'%EN\$*@ V0;C%1G7!$6"1W]@1\1$1Y$o
MUKUJH2R(]9,N.0?$IH<HM<7CJZ/QZI(ZHT0QL2)L\08LL7FXM&9B4(&/'%;Sn
MXAK^=D"2]3F4I<'A=(JI: 5)0 1%\ 1?,#RG%!&#EL9Z_)%'(25T$;[.PY5(m
M?,DK7* QC"&$4EQ3\!J)@CE6DT&$HGQT7"@HP"/#RE9%8"RL<1MF0%'0PB,&l
MT1<BUI<+<P9OW,S.18L<%!!,4&%W9VPDA6S2;%8?_ ;2X<=T9U!^J%@9:&1Mk
MN,Y=A5DA,85*5&+Z16+_$T#&4TOR#(&286GW+$!%L (R\+@G!KN=$Z ZX +Qj
M8GIV\S%=9U]%]Q"K41/EP2X=<09A4'<% 43*\GYH$6J3JANA>@9$5!NQ=2AVi
MEA%ZAA;,02@I ##B-0.GZ0+3\AUD%@1&L!%QM1&?P=,L,%PZ769"$-1&D-/)h
M4P,T0-0VD#@;05Q',GQ]##;'508S1Q(($BY\/![WY<L;1&C?IUU,4U'@)RMMg
M>L8WF0<G8"<\NGPD41"TP5-U(];:E= UC:1*001&O=,@T--[O1&MF3PR$ 1$f
MG==X@-1*S=0@0%Q?+=-R800?<VJ? ='YEIA?70,S7==DAM=!#0,#O=>OV=<@e
M\-=*$=B#'=1B<MBEL1$,EFF7[2-VC0>:G3R<S=.?/="F$=0Q,-3)4]2FG=2[d
MO=2IG=@=9+XSC2ACP%0@( )2T*_*.V=<$02U(1/,,:YB91@NP 5RP 5N( (*c
MH%FO4=QS<-S*)0+8+02C@A]-D 1.D 180#BGQA5#D!QYP)]HL&<Y\'D*41%!b
M,:YET )(('8;05IC<-W9O=T*\(\)O=##15=UFAZNP7+450.$ICB,@Q&%D@.$a
M9G'2W'M+4%Q$H-+S6QZ<2A,W&"]#22:D40,S XPY@SOV8A!-Z2^8RA5(\H"!z
KU2)V] 8I=RA,B8"%LA\7_<TH71(M,A\N4$9/A$8ZM$9/Y$8Z!$=/E$4  X"!y
 x
end
-- 
Guy Helmer                           helmer@sdnet.bitnet, uunet!dsuvax!ghelmer
work: DSU Computing Services, Business & Education Institute    (605) 256-5315
play: MidIX System Support Services                             (605) 256-2788
postnews: message content ambiguous; spurious information added as required

ghelmer@dsuvax.uucp (Guy Helmer) (04/07/91)

Here's a repost of the bootblok.s that I fixed up a while back.  This
version should work with all four common PC disk types - 5.25" 360K and
1.2M, and 3.5" 720K and 1.44M.  As an added bonus, it doesn't grind the
disk drives when booting.

I've heard back from a few people who have used this and say it works
just fine, but before Dr. Tanenbaum includes it in an official version
of MINIX, he wants it very thoroughly tested by lots of people on lots
of machines (probably has to do with not being able to boot MINIX at
all if bootblok doesn't work right :-)

So, please drop this little jewel into your tools/ directory, build a
new boot disk, and try it out; then send me an email telling me

1) what CPU and kind of disk drive
2) the format of the disk (360K, 720K, 1.2M, 1.44M)
3) if it worked

For example:
---------------------------------------
To: ghelmer%dsuvax.uucp@wunoc.wustl.edu
Subject: bootblok test

DTK 386sx, 1.44M 3.5" drive
720K disk
It works
---------------------------------------

Thanks for your support.

begin 644 bootblok.s.Z
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
KU2)V]`8I=RA,B8"%LA\7_<TH71(M,A\N4$9/A$8ZM$9/Y$8Z!$=/E$4`LX"!
`
end
-- 
Guy Helmer, Dakota State University Computing Services
helmer@sdnet.bitnet, dsuvax!ghelmer@wunoc.wustl.edu, wupost!dsuvax!ghelmer
"I'm a cowboy, on a keyboard I ride..."
                                        -- with apologies to Bon Jovi