[comp.os.minix] YOCS #1 - /dev/gscreen - graphical bitmap support for Minix ST

yocs@arrakis.nl.mugnet.org (Ye Olde Computer Shoppe) (04/28/91)

Ye Olde Computer Shoppe - YOCS #1 - /dev/gscreen for Minix ST

Hi gang!

  The recent posting of mini-x has undoubtebly stirred many Minix 68k
users. Previous patches to Minix ST to add graphic support added a
device to/from which one could copy a bitmap. I disliked it. Mini-x
adds a graphic driver to the kernel, including many primitives for
drawing things. I dislike that even more. I want to keep the kernel
as small as possible, and would prefer a solution where all graphic
support is loaded as a program later on.
  To support this, Minix ST users can (ab)use the feature that their
screen is a graphical bitmap _always_, and that the hardware can be
told to use virtually any piece of memory for it. So...
  Being in the position to do so, I made this idea into an assignment
for two students, and they managed to twiddle the kernel enough to
make it accept a pointer in a process' data segment. I extended the
code with ioctl calls to show and hide the bitmap, and added support
to make ALT-HELP provide manual intervention.

  The main problem is what to do with keyboard input. By making the
bitmap a kind of selectable overlay, as is done in this implementation,
we are allowed to ignore the problem. I want to solve it with a /dev/kbd
however as soon as possible.

  All patches are to Minix ST 1.5.10.3, and they are hardwired for
Monochrome. If you want - and can - add support for color, please send
me the patches.
  I am told 386 machines can fool their MMU's to do something similar.
I doubt if my patches will be of help, but please mail me if you have
something that works; It would be nice to standardize interfaces...

README in the shar file.

Greetings, Bert Laverman.


table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 gscreen.sh.Z
M'YV-9<:@>0,"#X@6(*04"4*D21$%<\J0 7'BA1<L+^:\V'@"A(^$"QL6 <&#z
M!\47)Q1@R5(&Q!,V9%H.>=,&3ATZ9>2 F#(0#IR6"+,\&3(%Q(@8!T&\B&GGy
MQ9DY8^24*>,&A)DW.IND<9/&X!0J*L-B 0&""IHT<T# "3-F39@S+<.0(9-Vx
M3AV?6.E8Q0I"3!HZ;<+XE CBC!S!9\>DI4-0*U>O5$#$<%'#10P8*E&LI2.0w
M31D[9=B F)'"!8@D>LFD,6,FYV*"9<+(89,GIUJV;N&F?6,&Q)PT;=*PD0UBv
M*TXW>K>JI(.FI1FV>IF'2:ZW3L3%S7=2.9$VC%\V?_. 8 PBS)S?9ZK:22.'u
M3ITP;&B7=R,>3IJ 953R3ABD2?FT?@$FF&FH@4#&&V6D]84;;]#Q16%I@ 9"t
M'F_449Z!GZ4Q1DMW_(4&"('15]AA<"0&GTIPR '<7Q$FR$)?-Q7GQAPXR55>s
M?&_<D1:%%I)W1HOC9;=&3FZ$=B$<;QAG&WEAH'C?AE;)0=.$%>I$QG1AM!#1r
M&6U0%1U!8K1D'6'F]?578'"89A9:(,8V8Y#3!9D?%H8AIB$(8PCFG7 L)EB>q
M5" ,"8=>8=P1AGAF2-F&G($2&=J+=R3V81)!;K5&<7.H%":-Q?7&(PB&(C<>p
M04.6 0>5=>CT1%%S!!:?:3NTD()*9%%!T)B5SO%B&&I)6>>B;5BGUQL_5<5<o
M2T7>@>%Z&^[JQD0_2OB7G"K)1894YX&PW[%F"GCJM&B4"1\;;^2)TT1;%4?'n
M;G=4=24=O&[9)7($TJ%2GL8VYRY!"-59HH9S=!A14I%.]YEMTX:ZKIK9(:FDm
M3ND>J]*0<A0I&KY]M215"^:A5R09+_(5T9<@.%$%$TR8%@2>XXZ*)[D#=QC?l
MC7.\H1*V9437<)+(Y63:%%M!.0;,' HG6I@LQT?8:B 4*1%A=[U151EX_,7"k
M<D(Z*AJ;\!F:QVLP@:HOHP[W#'%:9_!\ALM(;V4'?&F0X8)8M69GAG M)>'$j
M5T&@# +5< RW%78M#0YO?-.E(;6VO7&[5EMOE3'W6&79C7=A4$E%E0L'CO$Wi
M'H&',;C8<88+X%15"12&&W!-1)YC73E+ADH#*4M>8$."@.M^?TU.*PA!=*<6h
MSSCI=)7Q-Z4:UQAT1-CG'#LP6B0>>M%H*J87,J5A2WDJ/3M&3+VPAA@@BZWAg
MAS)?+)A[@+8\Y-=T2#ED6F2DNM7:JLT1NGC;-J>2OXGQ35109QHFF$<O8Z")f
MGY;RF1>TH4(1D9V<JG*',IP 4"-S&9+:HY+@<*4%>/ =%HZ@N>:Q3E<@$$).e
M]&) T,@A1&)I@0QG2,,:VO"&.+SA"G+(0QZJ) $L<0E,9$(3FQ1O)SWY20(2d
M0!80\(%*B@&"; ZS!K2XP UL<$&PTI,S%V#E#+\# >R\PALZ& I01#@8N> Pc
M+[T S0U0BD$.<H 4LCR1"J'1 0A6, .DU  &(+C!#&90 QS<0"4]3*0B=;C(b
M1?Y.!)3Z0OH>=*!<A4 $OLD.8\+6'#E$A V]N5M.-D0;TT"R/(M:G8QP$I\Ta
MP 4Y891+'=B@%X2DZ UB\(Y\#E857KTR#=9)RNHF0JGT@6!!#7H0T@[D08--z
M1 QYB&6; !48@6RE#)=D8A,10H0TK(Y75S"-$J3F(A"(P DV&B8(B*!*N50Ey
M"N]A31Y$H( 7*" @ RE(4O3&-Y1!A# 5N4A&-H(2CYQF;U3H&Q-(8I**I 0+x
M*HAH1($WL\T(Q$^RT9CDQ+B5KFA',I2Q# Q<,(,0A$ L9FG)4P9(E=M #B[8w
M.\RQ=-*J<4EPIF4X7DM^4Q//N,QPX](!W4 *@BJXX7&7XM8<PB6'N_D4!3PZv
M@81NF4LQR.= 18(3H=@@%;GDX46_@>.<FDB6J *JJZIA7:Y$2!89F&8F<! /u
MMYRJTLP1\$/D>8%UY/""H+&A#C$9Z@Q,(X4Z5,6B'UJ<7P$KN3&HIC?ITNL<t
M^+K8F(! ,].Y:%W.0 <ZY,$%:)@5Y6A 6,/>AC.)K4K0OC"'K[G L4R+[%[[s
M"L>_QB0C7[ML ML 6A"8 $]2N]L90"M:LE0F(:9%K+:J8H8YO/:Q,E+*;"<[r
MAA<T][+PLFIC?;NL[;VVN""P06D/F]G4-JIBH7EN;*LB6;Y25WQ:NVQ$7 @?q
MJ^!M#J+]W0T(6P8QU$$X$QGC9:4FG^O^EF(6:]I4)B*5W=H'/*S++^5P8)HFp
MA"%WW-+>AO0H@C:L@4$386!35JJYU$D&!#2@)Q9^EX/Q@NC"+5D<MYYB7\^\o
MYL6Y X\8GN*",$@P@7%5E\O:^P(=T^TR_!7#&QK$UAA,1HPP9A1.:,1AW*FTn
M/0FB@P@D* ?33HL\$2D<9/5R!ZRLP;DH#1<=N',CT5R%#6<^J3WQ21"#],NNm
MF^O</R<24(QHA",&)3$!.\?0DSS4"?UY".4$W5*$\"I :.HNE(['T<=H1RQ3l
MR((3G@"%*21A"K\;065;P@-&NP&T/ABJZG2B@J=\85SE0@$(4K"#H1H'<U\@k
M%E5D3>NAVB%)T)H#:W.&)EF?X46+ B]9;DV6,]2:<F19-0A4T(9G_^[7<</Uj
M4G-D[%F'<96%L3;EL!WL+YPE)MU6-KB=+18B%&$*0Y!"$J! A20\P0G?/@*>i
MJ\*;UGBR5V_XE?"\YC)< 1!@NGN6;03\%4AYJ$+VHARYY'(_1B'82!UBSGS^h
MQJ 70M W.6/<B.RDF%ZMJ'F@<>YI9E2C[Y%E/T8TX=I6UZ!.=BO2Z;JX:-YEg
MGL?%Y5D06H]:;REPD[?@=\%!N9_(4\F#=Z]2)P25A]3U(F[I?+GR*14<=H/%f
M:%).+AY$2_P2)Z$/Y\@S9( I[^@0O32X8*-?0,N#<'HA2 MF+SIQNJY^ITXVe
M?1E,+3'B<@588H:UY'V[]8L;$K>XOE&A!4@H A.@P+*J(&U,+G?9)P,R+"LEd
M*#2<9Y33"4] X#'A\55P A&> ()P/0O":V,3U8X3D\R3!UX8/DM:C$,0MB30c
ML'3X6=!:,F,2):8N+$V=*I$6YEYVYW=5!/I^WN#"X7RU47E0LFPF AWG>3:Fb
M.<V)5%Q'$&Y!YST72Y548$FY!,[H#9XA4"]!,)PCTHCB=6A#U74O]9DA[6YXa
M #5A-7.^\1-CX$VB\3[:)P>9IV$;%00S4S-F8$89!5S((25;@QU24@=GD%C%z
M@@(RD (O,C1O$!$@F +S@2[E0@=L<()L53)EH"P6%A5OP!U"13D]D(,ZN(,Yy
M^&U)4!5SP%F>U5N\DBP6>'^B<@3PIA!%X 38$Q-W\S&F801\T3UL<&.*PSPMx
M&(*_,U?P1RX=HE;NAX2$ B@QH2*@,1&),B5_<8-DD0!*^ 534 14T 1!  4)w
M@!!' "16%U^.0SQ+4G[987=I\D-Q. 5(\ 17L$0(085R "6CMV]LLU.U,SEPv
M. 5?@ 1)X&Z," *."(G&=R>22!Y(<VXQ<6K?EE*Z,S#[<8B)> 4I" )QJ(GNu
MUGIEPB!_PQJA)V/9L7G,HSC\UCC^0SDG, ;JYR4=L1[M@7Y'"'^2XX-586J]t
MY84X$H9K,X;P@AS=888!,1SCYX9-=(E?8(>=E@1:4 1YN!-IH <Q)HPM08B6s
M&(=]DP1'X 3I* 1_D4&4!C?IT48B1XCE,1?8@F98(([N9@5), 3HV(B7LWA=r
M(G(9EB$;,CEDI8I79TQ2H0:AUTX"F2!IL2A,@P*+\EORR 3TZ 0HR"8,HA?Lq
M*"4A(P>_PS0@F18KN7'6,I!:U7]N]F79@7/YPCWCDA-LQG,@QR5>PG= -Y,)p
M5P9QP(SD83(H\S,Y(W.,0HAL=I,>Z3)0N5#I\SOYHTO$EQV1F'R75281DQT=o
MU3SU=7\X(8*QF"=CTAUN$),]I2'3,HN;.!+=)S4OZ 0Q" (;:$() HX\6)@]n
M"&V5XQQ?F",5%YC7M(TM 877Q'T?R192$EW2B 8O61YO(QQ@^3MKN"@ZQF-Am
M (X)X&JP-@8HD +I*!7L\R:/=B:",8)8T6 L*![\*(4_Y&JZY@:KF8Y,^5]Ol
MXQFB0AXBT)NR%H<'F9!%\"* E (B8(FN-C+%=FQMP)H(44V726DBD(4L:&POk
M<HAT2([(-FO1N9O"MFUW@ )G@)TO1H-X9T[>V8*%$9Z8B(B*^");:9[2*6SGj
M5@;LZ9[:21#<.9_@*8N82(O-63(GLU#0*4))T 10P 1%X!!.D%#U=F^IF!VJi
MPSI+)X@M801%48'QXSSPH4<9%FG9Y5-L@EB$ 694D7F]^99$ YC!F65!LH$=h
MZ#)]B%YL($$'\@4D.##IXH"O%9-IX:+DIQ8QPBT>Q!<.V#3Y%R80\Y-M<AZ1g
M0Y%-9)'QU:&Z\2=E (YO2"/C(S=CD(YV@1?M$9^.!WF2!P42Y*(WUJ:IMWJVf
M^'KW8XDT8@?U\UKI:(2.F54 %#!_(1"KZ3+YLS]5*9N%6) T$AA;\5H(D98(e
MN(Z,%XR+ZBW#\S#<90;#P6,_U"4/) >?-08(X7ID 'LBUYLC2#0O\EOSF317d
MJ*5D,05A("'[.#74$Z.$L5O^F"ZBBA6ENBL555X8U3YS01@0EB!:"H',42$[c
M2BGA AIN< +1H2)+0P<O(A4/)'1K$Y%1V(X@< 5!<*%*&&]%T(0R\CM$-FH.b
MU%%X\ +N)UR]M6VS!"TA]RG<TG&N B+PVA>X(4)&D 04"FJ(V:ZUQ5@9(82?a
MA0;?AK!#H["9^;#A8VIB$0150 6)* 4&2Q8JM*8ME!,A\B)#(!O7! +C5((1z
M%(M((+*J]#95$02RL2Z;4T_W)!!UEA06-B1TM6<G(5!_5E ?L;,Y=3DE86@Jy
M,0)0QK.70VFCZ5R\\EN&,641-P))"P(DD 1DH$=$2U<L8 <@A11T] (P0 ,Ox
M( ,W  (R  ,Z,$@Z$ ,R $5I402@ P),4"X4HT<44G(DD+172P)W>P8ZD !=w
MBS=?B[57*P49\AN+,QEU-+9E>[9IJ[9LZ[9P6U;EDBE8H+0_R"+U)17KP;ASv
MN;D@X+>D"P4QPB/&<ZM5\A?<4T1XHQ.=%*8J,01#D  ]@">>TP)C8 ,XD+2Vu
MB[NZ>Q"]BP.:.P+!F[MG, 9GF@!*>P45$C;,P29E)@=K\ .G47G6.AZD*D["t
M(AE-( 8@$"L29I)"\ 1"H 3"BYHX,@9>A&N]Z45B\;0]-K@D@ +FB[Y*(%IYs
M^$('T1LD  0_1!R/"+8!C+7XFP3GF[X2-K59-KBGB64T\EK2-5FT%;&WE9D5r
MS%<Z5F1IL&-0^T/W:[LHV ($<< ./,&[RP9/(1:<^RS.4S_U15=#:2J\"D?Wq
MH;GL2R[N^P:#N\/E0L$3NV)T(FSQZ\.G:<3%(L3[!EHV2V?ZA!#-I5YFX+-]p
M-E" ]A%3#%N]<;0.I1(2I12  0<OP )20!1T<!DPL,8S8 ,)8*MZ$00IHK9Io
M&P,UH ,R8 ,Z4 ,S(!ES% .()$.2UEAO'"=RK!-H*QDST+9Z+$=^3$=@+%&2n
M/,D1%<DJ  (U0 ,L4 ,Y,&T2%<@(D<DL8 . 1$/L>LEKDJ12LB'U R@8<WD1m
M,1&1TE+Q8H (6&/(LF WAC1#*A&FH0+V1#G?%H5D\ 5,@0),T6M8L )-Q!1?l
MT"7GX0++J9 @D+M,\6QDA0(J0 9HL@6!H098T06<@R9"2C0I@ +P,@=K\*K.k
M#,WXA<T@T >_8\EB7!-E?,93D,9KS,9N#,? ,\>);,=MR[:7*T>0C 4S-!Y@j
MZ:=F82&'K+8UH+:++ ,QH ,T $@&#<@01<D<K0+T?!DUP ).AA22#,J2 0,Ai
M[601;<J4\P*7[!+%0E9-I+AR\0)7H"(XT41#4*,R71;F<2E**]-IQ"PMX8EXh
M\VUD04,]?1 YM$U*W=,W)-,VE-0)+=/ C-0@  ,OLM19O=5<W=5?#=9A[=)9g
M7<U-TR"K2!C3%LS,+&IF (4)0*[FNH3IBF_++-.]:<R?L=5R< =Z;0=>W42]f
M_-=;[1!-$-@R3=9(D;LBYD!EL"AKK1)M'1H1@=4,(J0VU41]3=@]?=E6&-B&e
MC=ADI=AFW=BB2A97?=<C$*.K@=5YS11\[=>PW=EO@-GQ$=A&P 2<!@59(-IDd
M';>,'3YO#4B1C9@O5RR<#9BRO=<]/=BS/:YZ,P21]Q5%( 5;3=9]'-P-A 9Dc
M0-RIW=.=E0>Y5BRQG=QDY=F9O:54T-M?3=8T4-KA$]Z =-5SAK-1+"-CP%JNb
MQ<56;!%^1E =\1&KU5K.Q<6%]L4;?<DO,,;WC,9J# ,R( ,S4,AQ#-!UC ,Za
M  .+_$>/K-$)O5N@E0 -_<^('-$2SLA['-$9;<D=7=()'DA:?0,1[>()?0,Qz
MWLDL318CD "2F55;^04'25833M9/ZGE$'9^-[0:S)!K?;10A*=WS5LVYJS=4y
M('G@M>,]WA)0\ 120 5 7@160%8TD !$OA50*I&*J1.-O4%ZD=J3?85STM:Kx
M ==R307GRH1VW=8\7K191==-^.5ACF)D?LE%/LCQ^15LUMBF5MR3#<-F,.CCw
M6JYV[N=.V.2K[>CS3#DCD.4@, 2Z/01+$-;;-.273()M\3(=4]QAO.#V;,8.v
MOL\1/N'^_- !C>$:OL<XT.$F/:^N%.(C3NLFOL@S< -O^]XKGN M_LDO;N,Lu
M(..>7,D(+<C,?@,X/D.GC"'A*CU3:AO[P503D3^7<BTMPG6H0E/P\]C%319Dt
MC0(=DW\5%[?BGG+R*C7Q\X4Y@8*6SNE.( 5 +F]6\&[:)!F0[EGV887B 4A\s
M0=)L7;IW3=9$0! 5!"JK4SUWP>9(7K'[AKTL,0<F%0(@H .RPNA&D>5Q+>EWr
M7M=+1-8ST0;^.+V[$2-,\RE8M;T*(V1NSO ZSMI5+,S"7-_Y9&?X;5N-]5C]q
M#;0 ;E"C1L4'CA+TS.ID[.KY_. 4W<^&;.&28>LR8-$VH.O1CA!!&-XA/NM6p
M'P.+#.%M&[?'GNR33,\XH,ET].P>33E] ,^AQNE60 15\ 6ZS1!&<&^1@0(Go
M8 0=<;0X(%H(0=9?48 !L1IW8NJ70B-UP!KICO,CS^=EP$1$X.E#L00) /A$n
M< (E4?B9KN,DG_E?( 5"T 13H,:=G_F?O@1\$ .&+\AMSP)OG^/Q3/>:;O=Xm
MK_=/P/=^?UF!/_@F(?H\S\R('QGZL_AWXSF.[QON(?GY;OF8K_F@WODG\/FAl
M#UYU3_VFC_JJS_HHX/J;'_NBI?8N'L8YX/:=3.."O/XB#0-IB_N;[OU#</H)k
M201O./[6#_LT<.6E[_Y=@=2W^M98Z^M_?,#XD3[[]P4&H.I;6S#@ +X^/I #j
M1 LSDVQ*X9(EON5W@)K?R/D7)4<203[IM_#J7[BZ1.BJ"2T1P'<$B!\(,'X7i
M4+61//%4A^Y0YSMY3<C\84 3>$W$$7Y:1#>0TO$!+B0#J1]>XD1!, 4Z 3Y h
M&C!@J-%YH\_))2S+P@-6QV] -4_,O@$]G4/%BMY_RV+GQ6(H/2_&]%Z<TVMPg
M46^?0;@<0.%('!V3#,2N!F2]&&#L_IA)*UR>(0$8 17A!O-85L-P<L2BU3$[f
MB.S4'CVC 3A@D_4Q]X<0$.$F>V^XCPL&!SQ@OU" _D)!)( -># QX+YX129\e
M 3%*?E&.!'"_F  1*&&[BU1H#2\2(^[7)<1:FE#'=$)8" J?A2A\0R/,"I0Pd
M*1 &TPO$P5H"[*XE /_5 GH#%X0X4?!1P8$0@L2480C17+@0!9 P!#8$<EL0c
M4$*H$/K5A&?8]!@<U--GL(X-BCU$5L?B8-:C 4CAV"6T,T N?!T:<&@ +=CAb
ML1S0MCI9VD-_T"Z,^:YF1]*474+;A]2.J<F0WS%[B 2X$0QPX)F]@9BP U+>a
M)3,"GRH^39$<@7W*@T\ #^8"&(&(A=@2FEQ!K!C@YBO$!#&P!,I 'FB(D(Y!z
MN(&61!"8AA;B&+2D!1@!@Q 3< +S( P><5>!1!K199C'>/ LK"5^U &?J *,y
MD1P04E(#>F1 $*",W$-]&4-XXA@AAZN"%O8'3EQX.W#.Y922-]>4( 8D:R2$x
MY""?PB/R/J)Z #;3QM40HF?#S,SBNA$VH>N#>0:V^#F*AVH1%;RI6$@$NGCIw
M'@NDJW,XL-)A14T'!<V@-\1GX'"-R0!Q6/7((1S<8Q-MZZE#01:LNM>9&H=Ov
MD.Q9-+95 P;A0<.'^7"B:+*U!??"R$MK(HUM#8BJ='1UFB(SJHQ>IXF<1G47u
M/@Y#&^A$4J _& BTL 9,8V(+'VPN':6!%T 0V%Q:0 '24!-1GAQT4*H<$T!!t
M!"8/*)NX)QL3DX% 0[8A31E'1O%FP%#%T34R!1@=1^M0<=Q9Y, [@4$OM($0s
M)*:H(VHC*VW@"Q"\HD96IME(:")00 H,A2^P[V3:$'@"J2<RX,=5D00RE!,"r
M'D1 "BB$*="QWF,C>9 0\D&J!(\W;9P(62 "GV8)G+Z08"&CE(6\)9[##>B$q
M)](7\L"4L2,OAS5DD"?B7WK#H!B1OI$/))(=@D-H)".ID3G$1MH0/A CUTF&p
M;(#RILIU2#2'(D%DTQB19 &:G$@+R3B:2\AAD9%/+<0/)Q(C9V2.O)(X,DO>o
M$!X);2[9$\&04T!#VILA0 46RA/QD"1RJ9%(JX*WTL(3L8W:0@ZLC339T[@Dn
MA;QD$3)/ZLD;$B/A31"@ E5.(1"!+V!OSB21_)"K[$A:2*G0E++,'*"3,NV)m
M* ZP]2*I9)<4B'LR4T9(W\CP$MIHG'_6[E*.MO"A&A\;:XPOKK&^P$9.B1IKl
M8QBXC>DH-_H'<,<J:6,#"8Z3BC@.C_9P')-CE&..5,[*81WIB $KY*AL(*8Fk
M'85%$#@64<=EL4-0S@F,!.;X)X. O(&.7<<T^D95%.^R8\7+"X1C+U2C[_@3j
MPF-2O"SD4:V81YAR/-(CB&"/VE)4DH7X.!][FGTD*_EQ/_9'LO(? R2^)) &i
MDBPP! 7Y;AIDA=24"!-"3D@G]]:V(F"D= NS0G[)'\EIU-60/'),4DU^-4A)h
M5CAF$^&2U5%&]A =64-()@TQF3,$9<H0E=D"N"0SDY@^,DQ^ <TWAR[F]D"1g
M7,UCXDR-F3.+I9>TDEK2AK#,H9E#7*91*(POTTO&3 VI$!@"BD23 "=$(LD2f
MN21)9+]9D3#"14Y)HRDQ@>:-_)I"$TMNR1X))C7D%0B2(\%08LPG8B1%))-4e
MDGZ"25[-)YDUI22,O)0BDX<0S:!9,L7FCB2;/W),EDF;"24R9IU,DCSLS"S*d
M5QDGY^3&C)@_<V3ZS;[)-T]FT>R30^!/!LHB,"@+I:%#E.5"4;[)&T4C'N7&c
M+ [4QVY:RNJ8,%NG(N&4+,X0OK@\Q@)F0/OSAX)LD&RR7(?[)E^H&37FA NBb
M 14CYZ9@2Q !8&]X_D[C21+"3KRR0B(2"VHZX,D#G.>\XRUH(-6H-NI)(Y*5a
M&9">Q1.#D9JO-X2R9Z:3<PWST3U,K[@]F6>I:6+F4[4A3<KGUJ 0"-AR70[0z
M=;]LM^].7W\H"J*N!J3$;:<3]H.L; 'UT@&E!4M'V>(<PZ1S)@]B%D'^R>]Dy
MY118(DVD!NS !KH_3U;_M*"B#L4\04PG/TEH#"0+^3$)6($_.1+694MP9RB1x
MR'FD\]@B_<WD2Z$K5$B6B*_Q!>!F6K"-N49%_ @WL 4^Z/_L @V1K&$%5Y(Nw
M]D-L$ C\85;R1M06S%"HOV.A:@$-\% ?"IA>Y1< #TFGB%;0(YI$+QD8G18&v
M5#>".[5@&PH=4_AEP0PTQKTPA@-B  O  5N/$9XTK789JMU Y'EOB*PY 8J8u
M)^0 J=(632H[5*\U8!I.0VJP8<^"W'$+8I% 8@(<_1T)@%"A%I'DD;2(?,P#t
M/P$%[8&LF#ZYXJ1CG\PLX+&,@5$VOT#%= )ZA*SH!&M6VY"3"7!GM$:FB8&Ns
ML@;HHBK-$ZST1]+,(A!+R<(L-1"UK9>A@%OJD7)I$]FEL:&7;E!']Q<CJ!*<r
M?+_4/+2$5MHTB<#@.J9!2E0M4US:$*'IA8%GV328RLRS62")Z3 T:^'TL8W3q
M9EI.>2DZ)2O M"7X24!9W3@GH7P"WQ2>UC8[P(#N !V8I^?A1<33ZQ0]S*DTp
M+83)CI[E !L0__HAM$MH3B8'B#1.ABF_C3R3>^?S@3I,:XKGOJ(*,$PH-:6Jo
MU)7*4ELJ#XI[23.$RE2R$J1FU$R]J5\-IJ(VE\I3>ZI/;:DW#X=BT5M34S]0n
M?'R1%M!&_0CKH1-<Z+0YJO&#+H[2AG?)AD!S.'6W2G0,A^\0'D2.HMLW"I4@m
MK*2SH%8H3<VQ#0I4Y!7+3G%9H*H<: $^X%XR1TH'Z$0I!DP (2DO4@6)@()<l
M4ZKP345 "%2!3*/,4JE>_1AF+0;01;+P45^FC7I-EG )%-9XY@2IZD^]K)CUk
MI^I48XE315V0ZF6=-;3*1I^964NK:4VI0?6*"DFBFDR)ADCZ D@5 TJ%I7I$j
MG"JU@:U1%0-.5>1753V#*KD+2@'CD26PDRY^R_BIBM:G&7F&L'K6IE=9Y0MGi
M]=_<O+4:DMPJ7)6KN8NN'B2[*@SS*EQ$"W*Q#'#7E[E$7$U<U"YF#0;XT@3 h
MIZQ#QC%41A$ISHC)F@ :*PA(8N-MKTZ$W*5>[ZI:9%1F;2LM5LIZUXQISOBKg
MD76RVM>^N!JJ:5?$<[ZSI9W4TTIA*:Q[G#9+9(DLU R+0<G*)8N=$?7%.1D^f
M:L=*8]>3#/LP!MP WADJR<+#NF1'(.2X42*IY-H E7I+5_524)HDM^0N*6**e
M4KG+NL95,,><Z"(IA: /MJY1U]Z S(CD7%6"=?6Q(MC RO<F*X-]=&1M?4+8d
MZ8J80E*4,@F A ^HS9OI W*7$55]??7 5@P4T(2P@+VA-9 NETR$&7ODFMRRc
M8;(.* ?]N.TJ9=>LD*67H+0E,$=NRB&Q%R#1(T*V7UXH9>9B(6J+^V@VP(ZJb
MV/F&.Q%"A!N-.*"/X3[$%W+6@FW,&:XA/I$3B)0=UJBL5#E-[ML0533'%[6Ba
M^B2I2K; X@FFDA:%S8ODBX6QT=)4)PLB<.M;';((22$9V>UI!A3.JTVR34C5z
MXEDB&0)REZR,LGYUS;;9-UM& =:<-7-&[F;>O-4&YY;L96FR1Z[91M$H:P)^y
M"[B]F>)6NX*Y%)!4AZ&:!:Q.P,T^ 3C+8<F:G/57'<?0<5G'ZF6=K+/M#U%Vx
MMQY-:IIE8:VZXK*RU(LNT2&Z!1Q0%S!K0G;+>1H#"<^,J1<]HW2@X:*YAQMDw
M?2U<E;@%TMXX(6:& LA%A.FU+Q*N*MK(<,F$P.N30^:H"%3</NN;GH!D';;Hv
M$\F>TI(J:_O WX!S($#@XE4F^UI3K@\ E%E@0T:!*O!N(L-O@0%X@#6L,10Du
M;@-CFH6L14!OK-#GZ$LU*10MNO$#KB)=I<MTOT*[W0.KM"700')T@U+IT&VKt
M'M<',(0$63"E'(-"&>/UOBX1[_H%SJMGR+L<MKUZ732  N+K&**O3*2\?M??s
M@%[YZWJMKW=5\?K: -N@UJO/;:!!-_+BUTJ9NVJL8 "[OS9?WK]]]R)0@#+Jr
MH28R0:0 (3MW%^04N!K"D,.:7O: >J<,"HI#Y,C3G"/$^W:1HZOAO/P5!8G9q
M;XL"C$,*^+U3DB1AHGE4CZAN\&VW&3;:5H4B\ 6$ $/X JW7\D;>_ZJIE)>Mp
MS:VQ5_HF6%\:;;0I@I)#KZCMZEV^"Y"8XU:ZNE/6^A(!(X!X0U((,*_@5;L o
MWO)J? 8O>Q(VA&@$I0KY^LXT+_YEO#XE=RG6R&M?EXCXM;GTM?P.C"-(3",On
M^P6P[K=!P5]I*W_I[WKENWY7O&;>V,M>ZX?_-;Q),0)+WA"<7K5O^'VWX_>Nm
MD@4H% 9F"1W0(^(WZSJ!K4M?[2MCG:9^L> B6\'X.S[JJCN,KRX<MD%:5P[Wl
M& W(</:0$":T6\(8PEYCS(QZ# ;H,3]X#_$A/5N,=G0QYM%*J[;H" M8C'[Tk
MZ%".+Y OJ< 36&]0H C(&G*#2!W$JBF]/'$H1@>@F(>)(AV  R_BUHP!UI0 j
M&.TQ:<-O. O$X3F,%MMK6L+#0M$GAK>@V!/;W!\FQ(48GK%A_>B&X; <9HJ-i
MV 2_5\TD7R+Q'A9O?=@2PP%,;&5=K2D-C!AP$[_A1+R(07&V&52CN/1*&Q5 h
MB#!Q)@;"K6T-(V)/+&MN37O]HF] +EP%Y%!Z;:M;]<6&^-H!F3S@NQCI HVCg
M$^4,?L,'MP:7\-B+@UFX#AZTA$:FR(>?PHP!38^YK<7(]>3H1PMII%&/VK$Sf
MC!3H'_ 4 <)3Q>@XZFD]05S\W,?NDWPV+.T9/H4>2>B>4$AZZEHI*#[-R?T1e
M2*!%'S-D@RP"[L\!"@,1&<0^VA<W V1 (APDBY ,=V2-2D@T;8N]KQ_U#4G?d
MF;M@7;&6C;7\ELG"![U0;H&+96&.4-<&A* 1G$I=F@R^9+Y(+^@=TM-2F 9 c
MRJJ>2;O\Y,&82D%P_OV[/%GO"MY17'@'\.%=KP<XO+;@NWIY@:[0[;W<-]*(b
MV_<;E3,L+BY4A!?7 "3>FY4;KV1PP:FT :_DM;I@=9Z#W;EU3:UV69E,2WS+a
M;ZFD@I:_XH%(RUT#J7MD(D 9]/A$FC-3F")[<(H7(RDZ(XW<T>C9(-%D,X &z
MQ"T]2D@P\PVHQR<9,5?1^SI;Q4YV-,4_$16C9A7PA\T:"GX3S&P!'S^1>FSQy
M<K+MKDRV+4/EKSR5T7)5/HI7>?LN7JWL>+GRSQT8 O?*8M*0U)J9HPF8Q*E8x
MC,[,>S,%N@!X62+-V;= 9U.\!6  $L6DO7F37N)66TI?\FV.R\!XYZGD=\N2w
MAYD,B1YD+8$8TM!#:;9"3# (O,<JT &KHNJR,1).@TH8'3?A&M#()*,4%F2/v
M2G2<FC/UZ^*A1$MQ ZT=@\:/=@/.\&8FPRKV#)OD/PJ0&W+UA%?SS@W0JW\\u
MD1E+\P31T%,.*.02307[,4T GRQZ?-(![[FB10WS% $@,B,#4D_$Y<B5%-!_t
MLK@3*^)/3(?3$HTHO>3&%_]B1UN99V<-",,$VL0F-!D@!\^P#=C0:MC#(D>3s
MNS940 J NF6KC:&@W"47JJT;+@IO0T6 )8KPS!X;8X #'<'.@@"$Y&Z> %SEr
M4U_ -BZ*W%5XF<HYLQ$^X",4OIE+IXN G?8!>-HV?@@^O6K^]$0(U"AVLA[9q
MD3J$UVI8OCMFMO):ZN'LEONKK#VLA*$XEU"B!U)WM$NKL*BZM,Y1_]SJ$",Wp
M7HS>V#&JV#U&[&! %!['")H.M-=S?(73<8:[8Q=-0GMA$5NA(YR4%F096L)Uo
MU.EYH_/Q\O30 KE&\V,4_:+C9T$VT3P (>>4%?VL*?)#OA8ZND-[:UT=-\K n
M&]#1[GC9V=$;,(8OJK23 7<T;N$^O(H<V*M@>" ,$=(IH&3,@**B)Q$9\"*Gm
M-3F?VQ1%EG3^CWOC.\_F^DFI;7.>L\43H=4 8$9%%YD-K@G!+P)4DP%<2W Ol
MF7DFPG?MVJ4R[,$KRL81N3T<2BK>IMVH/ZP/84B5D?G]^!0CE9A\X[[>/M>Qk
M1>@$IT$77(;9L1T03U*D9B$3+#A%3  /+@3[I(701"TNY<UF0!4&*YCKI-VCj
M$DS-Z!+- YHI&(EP8R".X+G:Q&?V, RT0)DY&MM;L7<TTQYKA( #:E\.0&G+i
MFJPTT'I[R6  7-5JD@&NVE&U!5<UV6B JR$-Q<#51 @"7(#AQJ9V *X:Q;20h
MNTQ XD;4MG$+H !6PQ3AJI*4 RB(Y'J.HR7[DD+AY2ZR3V'_X)!-;'4N++:Lg
MJ3IU^]3-.AM%:T\[RZC%==]4UJVZ:[=+#:I5P.4F)(C] =& _^W%:W47KT7=f
M:E)WPBAV&7I'2Y"E?=M$"O6A3M1QT]F^FTQ$CY# @'7>=[J8Z6FSIAFT* !.e
MO?CEYMP=2(T#KG=>>M[:^U4NZLNR0[^W[17?IP)2QP ;,& Q8%WNV!\[PJJ[d
M"6N[^S=*O; J(/"*8K3,8:U:%OQY22&%!9\QX 6QF- :$52+@I'!AT+6%'A2c
MH%K!%5E*HM$3I5);TEH-QI;^& >5P)8:'ZU5 ?@LV^0N$9"UMA8$SS*OY7 Yb
M+A  N<R6KR;0> PI[*VY5;?N5EO("7HK<V$M3/)LE#,1\\ECX9(!KH#SPR38a
M C]<?2N))X3%I1%G. V/ 63+AD^N^;W'MG =V>&TXI)U+K4D&D 7>)4:81SGz
M>7 B9J.A]8Q6'-*SC1OD;#VC=4P<YYX,ZXZ[S\RD/>_%"6^1,125Z9X3X'_"y
MTCL"L&N<#D,JWR1:T.ZM.3;%X46H 7%S9[]MBS1K0$PUS9HQG:GQ+J2C H?4x
M1X2<V*2IFAS:-0,IPCB8 5G3/<7/BQ !):M:;14>9C#@-Q=P YC$$),%JO$7w
M9 U2,,0IF:WZ7DRNQ';-)B<)68T0D[4G$-,Z^&A&N^522L@!62,"OFKRR>4Sv
MEY<?U!,#S&-2;DY/Q.;SUJ>ZB8+ K#*_9,'#8R!2G0"0R,.T,.5LU)!B!6H^u
MAVH@%,#FWT:;^_)9 \\^*FCB"\6W!1<'9'[1U&MQ6 $KX)S?SQ@!MD>$28PNt
MW (@R6E1-3)DC0FXY%L@#:@ '."=2V\: -T@P-#B@1H0T?0(U T#8< M<71^s
M[LTORW2J'>D&F<, 3$S6@@#044]"!F5S"*P0-N!Y-)_GYN0'XG/$I,^Y>3__r
M'7/ ,YB*?:[,6OK_'3;>XD#MIW*>S!UBIU,E$6]C= Q74A70Q!S 7CY=_ !Uq
M$5#/R1$*>+]#76Y7C6W^RX\ZY4CJ4P$.,'5XQG>IDSB'Y)><JL_TWP'-Q?HTp
M#^KCZ0ZE]292U-MZ$;8UWYRUP/3",&MD.DU'Y^>!JU><_:0:N(]JJ4L'J,T]o
M\W@NS>GY*\+F&9:LD87_!%8( DZ?%F]!0?M8M=[+C?IA?^M*7:Z[=B)6R9_Zn
M?XKIYCRT7S*Z%3CLDE[X3Y.OK\OSORX"%-1@W^5K?:Z_=K( UY?Z;*_M+YW;m
M,':]_MB!QTVO'>7A#"CHX,[9Q[I09^E$/;D_=P++W&.[<J?M\2F@*^"V@\RIl
M-/T^Z G=JD-$\T!6UX93N4+<W?0"&Q1$T7.&K&F1@=@^C:,[I'M'@BY/[VJ@k
M!ZA7-< #_LB"1^C='+;']?/^SW6">L]J[-TD7(:V ^&M^DXK08:\+T"8G@W/j
M*0T*4 ,"'<6;A(L6/=0 A,=J_7V;7_0H*;G5@ JX#"L@#:2 C=[1P=I*/_ Fi
M/L$O^ :_SW: BT_H;KV\3_C9_CN4Z71'B59]9-NKL%%)5 EPZ.V9O?64Z^)&h
M$,7[<X+RD"X*H87F$+&#F3_W>3GKSKR:]G6D8MG/^H(//)-+\(92!BNXL$E-g
M20$"T?*<5D-M Z611!(]F'WP8@O7($S$*>'.[X2G\/UJ3EJX'I'S8T"&6X8Kf
MGL4EEV3(>IRLV,DM$,#;[1;> N*;G@00\:15&%4"$J^02UQPX=?4%,,-6!I7e
M7'&Q<4UZ2A^Y$MFEWV/TD YB+L60QL?X+3/CHBN-AW%!O[FX9QW_8'J\(8N d
MS*1BQ,(NSN2\1B6@W=+,5&<M<5 !<H"2"_/)#7%34W+"1+DWYJZ DG22COE8c
MUL#?YICV:=G@I9$C"C L'D-928WVY%MTPA8@]_7(.G,7/X#O49*VE[Z Z=G(b
M,S1_WPYKFP<H_LV!!SCXM<0V-YVGX)?LL":%&:6<B*Q"<F$@O-"/<"R Z*T]a
MJUGT9HV%:ZU'7\P7M*076UB\UM>QLD?0TM8.Y_0]_-/+@2#.MT;]YBKU&($Zz
M*O' ]<-*?JM'7%(<UI_QJF#%:[BE5V09KN7O>F@HQKD"&;=1L7YT5<AAC_$#y
M\M=8<('6N<1/.8ZMS< 8F(K)GB(S>[&@$AYYR8_V6&"J&MC7I"T^T/FUC\X)x
MO _\FX7 [TSR<6)N_HH%K86OP2:XJ8_X\#,IM"RYX.>;%E^PYB4&,$&<Q\1=w
ML-'$8_IIW-%CCKNOF<#6##?Z 8WEX[I-W^E]>-X*]6E<C5O'[LB8U*5E*D%@v
M"MM-IM:3$VB7%"<+N)? Q]Q.]!O8D<CAV80!(*& C#,08D1N\D?Z@RV(U]!_u
M?IFO/4I' 4+D8*5L(1WT L^>1"" )1+_BA]LT=&?>I7B2JG8LAEVU%Z_M@GGt
M<MTZN:>.42Z\"9\'L(N"]QLZ,.+]H_MZ:D^=Z'A "4FT'[X504A4UH?XNYK;s
M#O_3D?S?*62I_A^3T$1)D.NA".-I?&33%0L$+T8'%6X063\^42/OJ%8"U6#2r
M_W>^??VF=)2::GENROV,2O^??4*,$&941")J83R,1WZ>G\0H/Q1_]51<UC^Nq
ME*_%R8)F7&.;7V[U>J?_ZZDX&I?B5)^-9_RM^ 6^0&!$ DF+Y'V!+Q 8D4#5p
MA]9Y/'ZZL!D([F7_.4H '7F?675\I*EJ?T<,9CRP2(@CXY\ P+0:A &L@0E\o
M\N8P, )$7>C]80-IS+=@Q@.+A$&R^.BHF@O7$B,"(!TZ>4C](S(1R37. XL$n
M?K7KX9\%7">\NH+H$R1?NW>H/(D6'E@D\*MZ"E!X=071)TCNBO+3W75028ODm
M[?]R':#PZ@JB3Y"< NNG!N5MB%B0IL6?^-G?^?;% CH?[T9!RBQ(T^)/;/;Sl
8JQM@ 9V/=Z.@IG[S._8Q^0*!$0E$-GL"k
 j
end
-------------------------------------------+-----------------------------
	Ye Olde Computer Shoppe		   | yocs@arrakis.nl.mugnet.org
   Minix Software Development Since 1991   | Tel: +31 50 733587
-------------------------------------------+----------------------------
  "I _will_ do this!" she told herself fiercely. "I am an intelligent
   adult - probably even a genius - and I will _not_ be dominated by
   a mere machine!"	    - Diana W. Jones, "Nad and Dan adn Quaffy"