nfs@notecnirp.Princeton.EDU (Norbert Schlenker) (03/13/90)
I need a large variety of testers for the enclosed routines, so I'm
posting them here. The routines identify the type of Intel CPU and
math coprocessor in use by a program. My intention is to modify
/usr/lib/crtso.s to execute equivalent code at program startup, so
that programs can take advantage of the expanded instruction set in
80186+ processors. This would be particularly useful in the library.
Andy Tanenbaum has expressed interest in this, but he insists that
the code work on every 80x86. I have tested this on quite a number
of machines, and Bruce Evans has helped me out with some machines to
which he has access. There are still gaps in the test coverage.
To run these routines, you must:
- Pull the posting apart (uud, compress -d, unshar). There will be
three files: test.c, cpuid.s, and fpuid.s.
- Edit the constants at the top of test.c to reflect (approximately)
your machine and your patience. They are currently set up for
30 second tests for (each of) the CPU and FPU on my Toshiba 5100,
which is about the limit of my patience. :-)
- Compile with: cc -o test test.c cpuid.s fpuid.s
- Run test.
Send me the results, please, by email. I am particularly interested
in reports of failures, but would also like confirmation that the
successful tests that Bruce and I have run are not flukes. When
sending a result, please describe your system (CPU/FPU) and whether
the result was seen in real mode or protected mode. If the test
fails, either because it misdetected the type of chip(s) you run or
because the test program detected an inconsistency, please describe
the failure.
Thanks for your help.
Norbert
---------------------------------------------------------------------------
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 id.shar.Z
M'YV-9<:@>0,"#X@6(.B4F4/'Q1@%<\J0 7'BA1<L+^:\V'@"A(^$"QN. <&#z
M!\47)Q1@5 &""IHR(,R\8</FS9TT;LZ &//&#<,P;NC, 3%G8!TV$\7 #$-&y
M31V&$HD2I(,F#!T084#(*1-F3L\P8MB440F"I9LZ;93* ?'&#$B&0\-LU5K'x
M#0L08NI<]9JPZE6J,.'(>3-FX= T<]R<N%I7J5RP;/*095DSIPL0()*X8>L&w
M9AN<>LO<S1K#!H@F2/2 P %C!@[3-VG2W0SVC=[5(#[33-,3Q! H52:_%;H#v
M*XC2IU.O;HWC!HC8;&9C%6/[:@P7IG6SX;W9"/#A<UQ,?J%2Y0@R9<S@A/F[u
MRA<J1:90F8*9!HS["1*\,(M6+5NW"L$% @HX]67;'$"1,4<*99&'Q7GIK0>"t
M=^[!)Q]]R\&0WWX@G)56&6NU!=Z !5)U8((+-EC>@SB-P48=Z)'$$!F\N8"&s
M#RN6@8="<FQFQQMI3#0&''4$B4(*.ZBD(X^;"207"%]\,60=26*Q)(@^ CF1r
M&40:B:22.V*Y4U5K1<DEE2O^1$<:(SFYE@I3;M$%"#V L$<"(E3AQAINV-0Dq
M&FG (0(+*N6'IV8*1<?::R_@,&BA^8G@1!%#@&"%##"\8,4,,#R*A:$B(%J&p
MHC#$P*BCA'X:J:BDRO":IZ"RNIQK-L"Z:E"C+D?#JY!BYFL?5:JD)IMC/JG"o
MF7+2:2>>3A#$DV"$&?:&'+8>BBNIS54;ZK7+N7J#MK*RYMJWJ8)Z11EI*+0&n
M"#^T^X,(O?H* K KXG15&V'@=*1*>Y %@KTQI2$'0U(2625F *LW,!U?G'GPm
MOT'M5(<<6P55,)I8(!SQ&!-7S+##_@*L8[I?J/F4LC \O-49B/$(\55IW*5&l
ML!GOU"491SZL,,%3*AOEE \+9J\9*(C0G@X@E# 4"F' 8=<900560J#VES'k
M%CLS/&477]9LAADO%H7"C-5UC9E,:Q&H;'OOQ3=?<2VTD(9'=:8, H/]UGSVj
MM .JH6P,]]D=M]\^U%T<WO[*.Z67#\N;AELH_$PD""'4F?7%B'\J=%!$5YW7i
M57W> 4)-;ZPQU'9K++69T@/6@48+;Z 10@J7R6N[O+;&*7D=7%>9P,@,FSQ4h
MG3'X+L968:S1^*^)S^MO'R%#/K=),*10Z.9T=,Z%'$<G/=3MMW/A1M5Q7KZUg
MV3&!_10:8]-!1MDTGWUSSOY>?J;/#1OL+_:=4X@TZTQS&M2DE@>JW059]B-2f
M[^JG/K&132_H0QN)E$6AMET(;G*C&PCLECEY21 %?B->X#!(.,/=S4[-DU^1e
M<(8^QT'.3).K7, 6EK\Z9"X!_"O:73[7(9N,[@VE.UT:4H>5U2W-=;"3'>W d
M!SY;(0N&O.O:[_! ,N']S7C(4UX*G:<W+F(&>C5[W 2I9SW-R6%H1=N>_[S'c
M1-N)KVH(%!C!SK1 KS60?0^D0]?\!3P4 *]D=+#*4[H&/?($9" %.8C5@N2"b
M.4 D*A6Y2$8V@A*/+)(,C22)22J2$BSPX9*-5 D?$G"%,])!(9N)00YR (,6a
ME*H%G,)+'D#0+#FHY2I3$(A8]@0B\7A2E GX49 NB0)ADJ%KHW03E"Y6)3X z
M\PEZ(1(==) #=6%3WX"9@)BD )+LH&C8(!#G"@31ETDV^7RM2F8*#-&9QSy
M+:PQ%3CC.4YMTN"=W7J--FN 3W'ITY/YL4$_8; K@:* AX#9R@F&TJ>=O"%&x
M+YF+!*F"F#*.TE ).&A PO 4F"0!!.]3S%6P*;J!B(X.!'G?O_2H34.AX"8Fw
MN@T=SN@TG.C$*VV B;U )(<ZP.$J=Q,E,(D0DL'D80Y($P,>[C*&I8(4#ROZv
MI!3*0(>)^2@,+UJ(2JK@A"4XX0E7<$("ZJ:2)'QSK,<I:SK1*H.RTE.@=9J!u
M6V'@*KB"@ 9SI15::S#7@J+5!E'-#*YZA%6'^B2007$D%I"0A",@00A)H +*t
M\,":^ZS(!>A13V>@M#@RW"5*%U,)9JT2!I6 =DK4=($8\J"0:HI6(3LR;6=Us
M$%@CR/$O@,K)4+)6N_8L% 1<D<-V0-07H/0%)JRI*PBJ8@>8 &:Y:3@#&F)Br
MF[6((5V*_:2(C,"$(!R!/C?9RD0 )=W:N02Y='U-$2?B3],P%R;7M4X-GB.Pq
MJ-3D#K[$X?K,<+TWP"$!9(#JIP)$!P O=02,=2QDJ5 H-;A!#[^32V2D!"@Xp
M!#8(FTFN>L=@7*6 M&4V+5)1HF*&P;2AB+-2[VJ/"UWIRE(A1$&I>&4I2A1/o
MX0A$D"Q.&-+3,:RI)^9]23Y-PY!I+>0X>,%N<9[;7I"^82$B;=T<ZH#5J?GRn
MDRY!S$Z,:X9\14>"66FN'&9)WNFB9PYCH*F,.8/B]N:W#6^P@Q@2@%46J,"Lm
MZ17H)^\ D_=BY2IBZ<I5C*MAP'X*SG9(@%)9, <+?VK*<VZTG06:@$]N)2)Rl
M:"Y1GE88ZJX%QY*% Y &6RC5LK8,U<0##,S ABH.@:MQ@,-;A#K+H/@DW,Xk
M QFNT@(;'!0/9:0S&<B0 $FKX)Z5_C":Y;*EVR;D#@2!MAP4U-__!C@_EJ;Jj
M&<N@Z3(_9UID*-08V@"'.9,!#79V]=<:C&K@%0K1<SXMD>R,9UH5:BMTJ*V)i
MEPLBF/3D+GS&RERDO0:;TI<JQA%(H(I[%0Z[H4]7\3!.:@PMA?@X*G!&3^W.h
MM>7-)#0]1G8R5M@ 9X84D;6YU4G 45<&7P9WP@J' VVQ4&,,+T>>C<I-5TQ'g
M%$"9H>&V26Q"IB+D^[)EVL2=;WS#\^XXS[G.=WYKTQ,=8!:,0-U?X^^AG9X f
M%Z5;UMS\)$_: &<W1&:#>)!!#!3I%)/?(5]7D: -:)#DJ[0G!(4J"AL,S (7e
M%6I:? ]P@Q\\Q71=.,/BG"=]9=/E-$1'C,;=*<5\>A7"<&Q@SP&46+12!CAPd
M94TY,0Z/;5IC_X+(*MPY^'2S$I$SY#1B<>9ID%J.&11H)B9A\/%=^ *=D4='c
M5C'/+@B$QC>4LMC-# )!$"R%J1?$\GU07LQRPZ!IB@X%6F$I0QOR2Z2B%#L-b
MU]MOWM=DJ$]&;<ISH8I5G@,3A^-%IX/MZ4\E,O6N'QCKZ_[45AQ=[#*<X7>*a
ME0 U009B4&U:AT/^]7U3]W1L0&_I]'=R8']])V )H 80YFY;)V=TUH!1EWA@z
MDBXSEP#PE@#R5@<L@%7W1E4*8$@"01 &@1!GPDB.%!$3$4D8H1$<84DQB$E#y
M41(GT4F?M(.A!%"EE"ZH=!RKU$JO%$LK5DNW! *YA :[E#IR<&7 9$PQ,3_&x
MA$Q=1R;+!#*_!%#01 ?21$T:TE#/,AB%,0=>(0?:Q$W>)$XW4$X#Y2WM-%#Cw
M8D_X="[I4@9KD%$(%5%E\%MH^%!]UF^>UA<5U5+YH5$<UE&9X6111E++Y4/&v
MIU+I8E%#551O<%1)Y515!UQ!45\Q9A7^YA9 ,4NR0B&^5&-3554] @)V@%5Uu
MH%58\%63@E;LA 5XUAQH%0-SY2ULE5>^&%=E=05%$%E%L 1HA5<TYTF"Q22%t
MQ1.'!11"H1)0, 2ZJ&KNE&R"$1"(D7K4.%,S459%L(WWP1K))GGR=Q51 QF>s
ML7-UIQ)?105?D 3G6#=X\#4W8 ;)Y@?X>%F9)2$U%"2?!46B10:D95I0E%JKr
MU5J[Z *PE6]84)!D$(*05FQP8&?FE&R=$16#\08G)D$48ECD&!W2-A&]\5P_q
M,09K4'^+UF@7YE#0LH9MV''O!U)4%1 *D12S)$V@=U,B"1-<,0>S-';XX@8*p
MPF;/E1?"9WP1 1-W\!()=5QD1GVJ,TOI808\N7%P!S$\5@<^QAUQ43'25V4Vo
M07_06!=K$AT] 1,D%1<TJ8;2LA9:1GU>!H^[%VU+@86 <6)VD :LEP;D)A8Un
MMB:?$7KHP09A<%171DM/ !](<UX)09@&MYB-.12"B!5.$UQ@60=?PR9I$#5Qm
MQS>$QASSQ!QS"%!C=UUN@'J]@0*>MQ9-"41KD ([=!M-XWE/8GP$%S";52""l
MD7MK4ABMF($,:&>X6 2E]I"HYFI$( 2Q5@3N%(0X87B?@@> 5W6"EX& "&PLk
M<&W)I@<@XBP]<9+?-FT0DQO:-RV2\2FF!I%X0 0Y$&LS8 3)9@8,,0:B\VO!j
MUB?\!Z"%(J"?0J )8* &BFA\YY_B1F[FAFXJD(V#UVY41)$UAWC-@9,>1B,,i
M$6*(\1))L5&0F"[3)Y<9]SB"F7TOPU.45V/OJ*+X,@=K$&2(J&4-Q8Z4)XKPh
MJ',RRI1"IF'.D2 I=@/'26=*R7<C4(_W>(YB%VAV&7\Y^J*;%Z,OZ9W^&9X4g
M^';8F0#Q^9SS69^N)@/X&81(P9\#HE3!IJ44R:7.F6K1.9UA%Q,<"GZ?HJ;-f
M>6IN"J9X<)_YN9_]B:8+N('TMBBKF0!VZIU5YY_8QGDS-9J:-HZ#@9+@5B@$e
MAJ3XN*ABA(\E^GY10Q14-71(=E"S9 9SBIN#=X$5NJB887W_$A<8NIH7FD_.d
MX7X;"F(Y(6(@^GZ/&!$K-129Q5%L #-NH%GI,DL9IU-#07&#H08\F0;-=1<0c
MAQ6AV1FU,P5\Z5#D!C4L-HM9-10BL@(X0:QT,$L)4F-R,ZS7.:Y(\R]N409Qb
M0&4-R'[3IVFGZ2W%(480!W!]AI5MIIJ/68]%,)D_FEY!JI1#BA>@R96T^1("a
M Y8S)98_YA/%\1)N4!@ !W? M&,/.Y8]498PT1DV*1>SU!-G-Y6=:I05BP:#z
MX09IH <&!U/3]5SM4:1=ZJ;2Z6K4F9_I>J?R29_3B0/YB13 ")]M"IUZ6@1,y
M&A-(H0<\ZZ5$4 2Q9@0YD)\TDF@)P -Q X/3<F+@BJXL.ZY-FZ>Q-@0:0J83x
MP1!A:[336;8Q(1!SD!]8&S>>=F+G*J[OR:9X"IU0:[3Y.79.<[59BZU/DWY"w
M1@?0EK;S203V.:8Q 1=_"FR%<J@B&&=TME2*FFQG\*EI&"ULR#=6E))Y%P9Hv
MX(^+6F1S08TT$K%U=QB; 39A< 8!.()0AV=V^"D66'@%MHYN$:[I.II#X:[Pu
M>A>L>I>(5[N3JX&SZT\WH+L]1 ?""RB'X:I#^H'3%*B@=28GR :%PA3$9FP=t
0:9T&X5,LUI)5F@#XMH(* +L]s
r
endnfs@notecnirp.Princeton.EDU (Norbert Schlenker) (03/19/90)
In article <24855@princeton.Princeton.EDU> nfs@notecnirp.UUCP (me) writes: >I need a large variety of testers for the enclosed routines, so I'm >posting them here. The routines identify the type of Intel CPU and >math coprocessor in use by a program... What an uncommunicative bunch! Are you all too busy upgrading to 1.5.x, or doesn't anyone run Minix on Intel CPU's any more? My plea for testers garnered exactly 4 (!) replies. Let's try this once more. The current list of CPU/FPU combinations for which the detection routines work looks like this, but I sure would like more Y's and fewer ?'s. CPU FPU Real Protected ----- ----- ---- --------- 8088 None Y N/A 8088 8087 Y N/A 8086 None Y N/A 8086 8087 ? N/A V20 None ? N/A V20 8087 ? N/A V30 None Y N/A V30 8087 ? N/A 80188 None ? N/A 80186 None ? N/A 80286 None Y Y 80286 80287 Y ? 80386 None Y Y 80386 80287 ? ? 80386 80387 Y Y I would particularly like to fill in the holes for 8086/8087, V20/none, and 80286/80287 (protected mode). Somebody on the net has to be running these combinations, surely (nudge nudge). Thanks for any help you can give me. Norbert