applix@runxtsa.runx.oz.au (Andrew Morton) (04/08/90)
Last week I mentioned a small change I have made to MGR which enables the user to directly click on a word on the display and have that word sent down stdin as if it had been typed, rather than going through the steps of selecting 'cut' from the system menu, sweeping out text and selecting 'paste'. It has been suggested that I distribute the mods, so here they are! Problem with this addition is there needs to be a way of distinguishing this usage of one of the mouse buttons (I picked the system button) from the normal usage. My version of MGR runs on an Applix 1616 68000 system (the Australian Applix, not the US one), running an OS written by myself. This system provides a mechanism by which a process can poll the state of the keyboard shift and ALT keys. I used this to distiguish between the old and the new use of the mouse button, so the new point & click feature is invoked by holding down the shift or ALT key while clicking. I'll leave it up to someone else to work out what to do about this on other systems: the function shift_or_alt_pressed() should somehow return true when this new feature is being used. I ported MGR to the 1616 about 8 months ago. It was a big job: my OS is not Unix and the hardware ain't got Sun written on it. The dreaded select() system call took some thinking about: the first pass used pipes for the IPC stuff. That went OK but I now use installable character device drivers for performance reasons. The 1616 video is 960x512x1 and the video memory addressing scheme is not linear. I ended up rewriting the bitblit code from scratch in assembler. I put a complete TVI950 -> MGR escape code translator into the front of MGR so that existing 1616 applications work correctly. I discovered a few bugs in MGR during the development and I will include here the bug list I sent to Stephen Uhler at the time, as it may interest others who worked from the original comp.sources.unix distribution. It was instructive putting an MGR interface in the 1616 word processor: pull down file & command menus, mouse cursor positioning, sweeping blocks, vertical scroll bar, resize events, all remarkably simple to add. A bouquet for sau@bellcore.com: a great piece of code, many appreciative users! To keep the size down I have compressed and uuencoded the patches and bug reports. -------------- begin 0 mgrcut.Z M'YV0"D (%)@$1)@V!LW("9.&#(B":,+8*0/BSALY:\HXI(.&XI@W9"C2>?,& M1)LZ8]" ,',1!)DT9LR : DG#)V4"D:"$$/QC<R3*4'4F5.&!8@Y)>&P*1.& M* @X=>@(A5,Q#4<0'"FR9,/FS9TT;LZ B.B&S!V)8,_H4!!P( @C:>3,H6,T M*P@W9>Z &!,518JC=.K$7*L@B1N7;[Z(B3K2C5\0*,@D7DRGL8LQ*0A+*:,T MS)@R:]V*!O%"!6*#)LNXJ;.RI9N27\MZ-=K2,YTT$ZO*UJOB1=O1 F%"C@VB M1P^#8V[GYL-'=_'C**XD<4+DR140*O["2/$;^)[NP-T*1V$;-T43)IP;1ZZ\ M#/?PWME>L8HF-/S2I\.D7MU:SEW88$EV!VW^E9=;; )BYQM^02P!11,Z@.!$ M7GM%!9A@,O4&GFCC$;>>@>>E-P<:,-'QQ45?A,&&B7#(4<8<1)'AUWOP[>$6 M?E/D,5<9"%'6F%$CECB3?T$P0<53+L*HD8(;PL<7'2C$D,(.30[41Y4"E<&& M4QV"]1Q[YH' G'K024>===AI1V-XW\$WVG@@@H >F6!.M*:; GU7V&&2*892 M1GE<9E]X+G;VV4YO7/7&&'S)X:(;G\TQDTQ//O;5595NQY9A%4+Y%PI/7L:= M @E0T5%%:+RQU$IU0'K;&X=MU=4=<Q"&WQQWE,'93!:&45:G6)6!AU0:,N@@ MA" (UP9(%*T'@U&OR=&&BL!JJ !8="A0Z;(A<?== BZ>D<:._F&;K%%J4 EN M&>*2"X*9U5VG@H=UEK%# O@AZ!56)3T9[+ KR?$&0AHF8.Y'K=)Q+[ZFC3#I M46Z$(8<92Z8DL:0%FUN&HQ=)>AP,"^.W6AL\^>>32>,2A;%O!KLAU4=;%@=" M#$8)3*O,(#,,@LV2^NH0S)+BRAFQ+!^L:LU>A6S:7!+?%M9>JAKTJ\U,MBS5 MM'C K#0(#I\,=+*'49VQRR#@850>6XMAU5-OS&%5&K""O9-5TU(UME1H?!32 MUA&-"'5(59OK(ZQI,Q:W0@.;],9$7RP[%$5WSP2S46R I:5JZEKLWQ@+ZSSM M31W]')%_!6N.'1PNR[%UHX^^/+K<E>-5M>DJQ&YO CHO%M/&_.Y<QF=ATB$L MT:2:?D89)GZ>DE]&J3 M5XOZE?GK*HST!1UAB#$'\]B9D08>MDO/ELXN!B;' M86FTT89&:=BD91[)RJ2O7N/^)]4<$4]L1O:K6FNP3"@( 7'&%!T4F($-83C# M'/Z2GBM\80I."((4C! $(3"A"%_:#G=P5[XZG \%VZ$2J? #EK>I* UZ\,C M:B*'<<4M7.,2GERJAA]3U:]^L.J)3.RR& 7*[2)I$%?$V+ 7%\S!!:QYR5Q: M2!FX'49#(X!)6<H@DP8]2 A5. *IR& 3_4"G56X[ UX<TI6G9>=Y71D#"IH0 M!"Q(P3I3P,Y14%@&GZ! !5S$7@JFM,4NRD!F* !C$,<(@C**Y8PJ2N,:V_C& M*\1Q:72T(Q[]N$<JC4 U+S'#^,[ ACS 027'49N)$AF]&<C *$:80A*T4 04 MD.@,:$B!4?(8!J-(:7J_6X/,1)DBZ*G1E*A4)2M=&<18SM*/MN1C G@IALI! M*26Y-,JS0#!-8+Y%F*U\I3%!((0D4.$+0V""%(SBA"HP@0E?($(0J! $:4J3 MCR,TS6+2P :']$TEV&LFY'Q#JO&@()^K.LX5# @K.J2@!3X J'N^5,YS;O [ M431#2&1"A")@48NX(T.+L&4&% SA4W,)B:.,(H)YUC,MP%(H%]P@ CY>LBPP M(54"%"JS@;+$90=-*/^:)=,$H&")*)&*:N@@!_BI(#LF(:4:W99".P(U.2 8 M:E'_8AHD/'"515#F,E,HL'_N%$B1[.A3A9JZ/% 5!%;%)CQQQQ+_H" -,DLE M5G^*/3D8= ?) @$/KCE7IMGU+RO@ZS 1AE.\IF$%*]A@ KZ%N_'8M* YY:0G MT;"%-'1!3NF!JP^.<P(0G$"QB^UI O+&+)D=ST3W+.!-#8I0R7ZRLEUP)S6# M.=>O=(NVP]2F+*FI5=P-=6.NU%M1DM7;*^'.N%>*YTH"!"P8QBUC P!M]Q# M*L9.H0A4:,(3JG#=) SA"4Y @0D<1Y0O/$FK@SO,<9;%./*6X:=C<)%JC.)> MHXSW#8\SFYS<FX=WJBL!U\WN=KO[W?#>]W$IXM@=M K7XYSV>L.#KWS=0%_\ M$J7"^<4P4?HK)Z"QH*<FX)E18F.4(CSP"E0H A:H0 5E&E=+1*FN3 5G%/VB M;7P)D$Q/Q2 S]W[AM"BHKYST:P*S_O<.)%H5"G@<@H^AUW#JY6856 S>!V9A M"O_E&<X61JKD_@\R#7:RC#,Z&2B#4*L=/!]D0MCE\>''>[\:WE ?YB_G/I&? M"8 9(-V+!Q"T #(#Q<-V0!#8*52A"5\0 A&D0.AW_7-X+L##'O_R L&VTK;N M41?6]%RF1P_+!9C^RP\<+;Q/AQH$$>KF-Z53T0+.;]*DL30*0BU"<.T+.OSU M,Z!1D(=!%_K0B5YTHP=::CJXP*Q[C+5<<UO,M?K3I@A4( /?]< (3I )TRG" M%!B8'NDRZZ&XTQG^)"83VTD*5IUD4D0G"H**7E2F&FVARSKZ4<B$=&-R(.D0 M&(-2<\_$#9U<:4LMB<F8XH[3U/SOU]8;AJRI2EW)73<5VVW1+&YQH_/V*$CI M(-)\@T $^Y;*&1(%@A*0@04F%TC*^VQR@1ME<CN;#=2VA#1:N;3@FE1N5]Z@ MRSI017.VV=C*2(4ZHLK,=CU6*@ILMY0H1ZG13P_LIE5U5A1H.;!2JJ3G&LXV M&*5!G]4J&@"G^U"9TNX-1?>X"OQ*A[37.@%I)_1QF*Z:%\C@OVA/G<S<+E/X M"=33QC9KH\4F:]W^%T=,D4-0Q."9-9Q%#F08.EM;\M8M@\"P+6B!8AF;@#[_ MO=B1!BQD]!S8-)QUV9=N2*9[.@;3(J]Q-EG>0%]=X[/A-O6W+7RS>SN>UCL+ MM)Q/ $G@L+W>+M-%85C#?Q-@W,8"<%QW -4>12L&Y"N_IRI 0>;3_I?C<*ZG MXXD[#^9N.= >GRG7/ZY,$2^QH+3U\9&OVI>ECSO\.('D^+[(J L6VG"S/>[' MP7?A!H S(8"3YU8--C-X)7Z0@72!17>'\6>WE"R(!7RBY7FD!FF2!G6D1UQR MA'JSIGK&YWL@\&#*@P:N%B!>L5LV=GLAF'L@J%O&UWL99'[!)WQH5WS+ASO5 MAWX[V'S.!V:X(GWF=W[)MX,JD':()3/?%V[-UWR]MWG81X @HP#X 05-(3S) M(A5>PG\)< <M)#PH$ 1#0 5)8 6M9#T2M5LB\'')M'Q@:!7O189FB(;_E!AK M""1UU7:I8Q1Q]V?_ESJ]I1"ZLG3EMWSC-C& 1#LI4(7JQWRD F,4@2M6$116 MYQ4+-&9CT!04 0,Z4'^F$0,QQQLLDP!^EX&?)GB!17@QV&S_U5:0@8'$IH&B MIV>F 8*A9A0)"#)YM5= LX,&@U@U)G>R%FI2&&XD:(*QAX*SIX(+5GL@P&&X M*((N*(/+EX2ILX3>!P*CUGH1@@+Y)Q?"" )#\ 5.\ 1#@ 02I%50"$ =N' , MYW!$-">^QUF>!5H$Z#W@8SF&B!=^*(C_U8-'6#R<.#.?J#-_I&7\=XJSF(JB MQXK81$RPI%6PB *R"'BAUVBV6(S4F%<?8UAZE53RN(.'M0+#N +',8W=<HP' MYWK)LXPIN!LL:'L<"8,1:8U3F(V!M8W=B&J0$8YS,([E>([IN([_U7SY^#WA M8SO_2%1K98K$V(H3^8J4=Y&@)VFZ:'EPY8M1$UB_2($F6391&9'&*%.<EXRO M=X(Q*2 S&8TNF(NZ-Y&]A8U$I8U[P8UW^8U *93FB([J* 7L.&/NV)4SYS'Q MJ&?T^"6=]5D]E93[B!?].%S<%Y#65VL3%09UL"('B1\^ ()B8GRQY 8J8JC M^($WZ8HR59%628L:&36W2)8=N8L@N5=3QP; 6)(GF9*PN9)FR7HN"7N@LY8K M"(W2N)ON48V[=XU*N)-WV9-ZR3'B&)9#Z9=&*5-(J7?'H8]+:3E-*0=/69%J M8'GAN5=:)H%XI085V)OA!C\H&9>QM'RJ65,8B94>F7"]*)): Y:Y69/N88'A MEF>_J9;-*)/$^98=*96Q9'QT*0=VV7K.^9/0&932V9=%"9C+!X2.N9W^^!0 M:9TXQIZZ.5>&EYI5*9]7N5NR>9_OJ"IS8%CCV&?MJ9+]J9XMZ6!I"9,#RI8% MRI^[A:"5E)-UR9P.FI<0*C#1:1336:&!&82@0ICPB)]1DYCKL9CXB)W+]9CO MQ90<ZI1O)Y#I9UR\%!)+] 9Y "H=,09KH$QA^B)$1:8HX%KOV4_1179CE@ + M*C,GP 4P< *UAA]0(17%!C8ZD8@RH3L40SJE2%A2$8!Z]V>V8TDPP6[N9G$9 MA7%T0&\;UW$D1:A+DG*:,P=&D7) Z7)0DS!& 91:%6\<I7'VQG'XMJGY0S$. ML04E, ==0*JV<W,PE7-,&@*J%6T+)"?4!D$29 1_203<%E41"@*="0-BTAQ_ M9!I R:REBE,TBH/$)S[(B%]D\Y$>ZEM;4@;7ZE@&!*S3YD#$.D'L) 3;)EK6 MDT_; W-:FJMO-W^$BED[ 64AB454Y@16UJ[AM@>@:!!DL!']8B&&RCM>F&?4 M0P=M0!4,YTMT)0=-]U.Q*GI+5+&YVFBWA&,'QZU2T9X9JQH62V[&MT1C =E MZK!P "07NX,H:Q/_]+"4<XBB18CO1:C&A[.1>;*Q*C,L>Z$])8GQ8V\7VU," M2SZ<@4"'XB\)BZ@W*U\E.S$^2VY'9SE"&VZ2&&XB0R%.BR$*6XJX<Z_DAQ?U M>BN8!#%66P83X3*2\E8RX2N"YX4-T3@O,@<)U"R.!@<-,8B41R\@@E?$T62 M-AWQDB;V22\#A1?#,GW_V2=L.U0H4 1HZ 3?E*Y&4 1$,&)@46)?P$;3L:1> MAA\_L'\LTR?I=6;JDF:'T:0)PT?)!7W2IP#?PKJCIYB>]:QW.:5<( >=-2;U MZ%DK];O-$;QY2@>?127)I0"F0A$]5"L*8!S2.[UL,07"\TF^\F$; A$201%_ MRB^GU1$%4D@Q]# <T384T01'P&C/^P)S4 =G<#QSX422@F1I$!1Y@%\*\!5< ML5Q3<SEVX"O&]A!CT;WV8Q)_LB02PZT.<2DJD4EFX(?+>*HW$2%(@'94E)F= ME!/B2Q'U\[XQ<;]I,&=@T5:?XT1CL3%:T1+YRQHZX4((I(5V013)0;]TQBS[ M2R)!41 'X3N'*F]B,1(NP!:C\02'H1_'@Q<+042O(3Q&P;VYD3XMLCA+8A=P ML#$F["N'<C)VH2H.$0,VT *BM!/.I "$Q66\[8%\3A2,Q/U-#-A/,9M<+\" M,\61@A1R$ (IX (/<1@L=!M\@4#^ <6@,3ZFL1EQ6!FJ@16G A9*_!1-<VX_ MP2-?4,=RTQ1$03+IAD!A40=Y>S8C?%)AH0!(L3Y'<<5+(L4",Q'KX[;00G)Q M4 =R>!0>1!&IHA= @09#;*?O$H;"<\1W02%S$%^JLA3^H1.%PK0B<2IBD ?" MTP(G)$9+LC]S\07#+#!<P<?-JP!XH1<Y=!3$S!62XG,@$ 34@1AW0&%2XQ"/ M(RFF),9K8T@6 7GU2Q^%1$52D1XM!$O9,BUSL :@>A0ET3?_81"5(T:M+!5) M0E3W^RIN<$0@, 7A'#MB<<43<Q'3 BD>_+"KS",D/ <*P!.*?,QDX9DZ$ .[ M;!I7X,N+K!\3452G_#LP<;]S%!:K8CK-M#9G[#048;]!(1DOH@#>DQLMX39] M)CQS ;T)P"E_^@7S(R@]!4/NHFIL! 78@10>="C'41W@])>J!5DO]Y3S)UJ^ M"FT)%*P-] 5T>(99]:RB54!SD0=+\1>$JVH/) 7UQARBE013\$!#( 5%4 3A MA=6*MU!Z_9\AP-=^#=B"#7A_<=CA9D!,E1>J1ZU@_-A\\-:!]A>=66P(A6FZ M9@:3?6J0C3L%)'B=/3P(I5L]Y9_(F$@@ 53UM42U%- *(E(*UJ;V+]M #_= MO!>OD],*C5\\;=OC8P07$1@1(SSIECW$#0(YD ,E0&>C$W0SM#_T9-!$Q,4= MX11(30<!C12,+*[4[#H20\8Z3=R6DRSC_+Z)!#^[O11DP,=)(!5 +2FOL1>5 M P=\^S0^4\"2DLL*L!0P4A$7H4LZ(1GTS=%4G-!R8]%9K-'L;1!G_"LR<-)# M7"5/0"GX)1<40<@%K7KZ<<M)Y0;P<\5HMRH20Q%#@5)9X13"'7-HC!<@W10& M<08,\=" >BI\BP<N E654WT2PV'(,P;T;3_W.XD#0Q$S( 2B6 5N\#VQ/00S MD<Y"5Q$J# (*H$1\X75/H[Y2$"$180<H-<7ZU ;U?!5$L13)(3VQO10%N117 M0Q%K\!KT(Q,MS,A@L0;7PH7UF]QH8+^K HNFK!-C .>'0<Z]C=[#/>,OLLY) ME1'CC1 2P1 (I$\9'AY!@#XNH\+S^S048Q.U/.$<81/C#3]#%1?O8^ 8,2EQ M>\2.$@9YH G,R+)C1TG4+\ZK!)P\ ;FHA,SO(<$2P9)(LE1Y1DJ0>8A41+# M["ODZX^D7!)K<]\'C,EU4.@1\3(%%41U8&$[DX57ON)0XS+<[NU>DA4*$ 8% M6^Q)U;*H<K\J,2WPPQ,/P\9>4LJV+#%FL>(A,#Y"P"Y>\KR$<50$7_ &?_ ( MKP)[,C<.&P8MPA3S/0:#TL<,7S>)_%Z9H0!'12J4"#J0<4 )5'9Y5I!.4 0. M) 1(L&AK@3LNT/(M3Y!.\01,0 2)EO)A+E,N__)!4+#CW1K0$QMJH0 ^D&-4 MA)F:*?0<A#P>=!B.>"4;GP#S<;X6PA'C(L%>+A;ZP7@.$<!L4 <K[!\G /)G MT%E)DIG@+3>Y3D?>LQ0Q< (A708HU2HE=!LG%"-&\=\?\=!E$,M#E6X!/!<N M,2ZZ=/%OJP<D@1 OL1$DLD 9GO".__@;SRFA(O&DPBD!W$([Y1*_(\@VX41K ML?&;82CBR@,)($C23$:P(A:TM 5LY$9PU 7W@A]C3$O]48*=]$E,0OJF3TB& MY!)^Q/J,]/JQ+T_3WD6UGRCB:_N3Q20.C/2[OR2]/TG8TSRT='<:K_!+?1B5 MDO%/3ZYBC];#:FT49$$8]'LR9;NJZV:F,??M4SDI!#4/*S$N%#8 3RY#M_.* MO\(_GQ9(3_M?]-"#!/JEOC2!1J)'ZVLDCV2.-)6.(OW"P(\:>M4/D#P_U&=& M4D !5",'$([(D<DF2:K?CR(5<&J76(5>HDBLB8\Z)M-O9B@3:(*F1. HD5@F M\#1-)!08!DZ)"J023\^&2(KZ(1ED!T_81&SL!-"2SO+?A* ?(8(N(F#H"H<0 M\$:@F&I392KCK0VBP",D!?)!"A$#[.B$,;?,7@1%N( G0"/4#)N0_$K=86 : M@*SQ0;XUR 8+WL*S5% M^R$);/$%LE7&4P"A3YDI@+TB$%C7DL$0>,E0^224 MI;+^8$Q@ 2*@= D%-U#GO,)A*%TMA8\TO\[4!Y7>!U$!@G#4",((00C+E*%" MA(JP533"=,:-?D DK#4Z<,+]0,SD%$Z H>HL]4,_Z*,EH3UZ1JSC,.+MN_&_ MM5$_UH>O2 L$[HBPA39(#-?@IBA@N4'.3!&' .9ZQ_OB;[=.!M0 &P#<)(;[ M\ ^K!:2A &E( WS'>[M[DF*&T9'EHB68X&&P"ZLEA:D[H7,MS@W @1_Z07/L MEEQX*F2%5T I%B,L/+I<X2*XV1+4"(2!J44%I^:,XB"GF!;$3//!F;<!*Z 7 MZ%M:GF'T)8 1,%'6&U>K4 3%9; S "N, >-&T9D;7X #BU!<9 %^ .DW B M5D39<1&]VFK9B'_!(PX]GQ(2(\OMHRR!! ">OA1@$KE##DP*+J)M206\@./: M RW3'O$E#< !IW$&,MP;'(A/C?)=/YG2\2Q1ZS$!'P,/W SP)(VD5/0-D/@ M$^$'\W$8XL:+V$173'$ #B]DUJ2-F! H7P L!@$H4 26ST YB^8%IVR9J9@ M\F!$I"9:47[8,QB !V+"D# (>,"#&9MAB/U*0S%\C&V05&"'!'!_I 6U #K) M@1TF ":Q18J>V5MY": JJ@10(2>.PU;LB@4)+(I%TT 6_TU4:79I<;K('ZA7 MKL[:8X.+<I$NXD#LYQ</!=63%(1Q*QHTI. 4.<7[TAX&\1PNA(?F%SZ?PNN- MXFHS"KKW0H+6#F(Q <&1*X* []#\I&.2H8XRPSHFENTX%:\?9#R/;E @FHBH MN/(XQ0S['0[MA@&.<W<J1",IPQ["P\'Y-)5 %L@ @0,!)B8($ $B@&U*WHC) M=Q.!+WI%BA @!V2!+ *K<=BAAM^&=/C/>% !=W&8.:[^P_)<WK=* +@-=W"> MG+=C1J!P SRR!0DD@2. !$+;9-,F1F'5)(&*\F'^DVBC(S#2T3 >-'4&*AP9 MV"T-!9VH$W8B6]C,(\HQ.02Q4"8?Q!=3(3-Q)KWCT"6>GD<AUUL[7(1XX8X- MN:IP%>R"#< !," &.*N7YC;BAD\@91/M,KR['680$$*+"PO@< M-N![HP=P MFL1F;, OJ$'TR">?XGHLB&.@\IW#^@@?49C7*"W[L8"5A?]H8H9 %8 "^RO? MD8&!I_"" P#Q/,=!"&"7*Q#8PDL+H!EE(T9^ 5:#0?[,C4PAIP8]= >_DRDW M9:?4/J"2PWP3%<DBIT]AT'.,4,\%C521F1P"3R!B1<LB?0E-204X96/[E-!( M1E84%TE'4J4)6)7#TE4>RU@I*FEEBS25+W+WE$<^R2T)WL(;$0ZO#"3'HQ 1 MKEASE ^2<N6-ASG09_:*IAA;&*@*%8;[H2O07"%Y ^)BM_4.=3<IY92]@1_N M4K',@5,D+[MEM_R6Y5)<4CXY""[-Y1V\ NG27\Z:D(0"# VB432,)K"L-3NT M6G)*1U!WH*:RF88F,!V^ !;@6)A-,@X$E;!7*B:PP9B-9F.VDHZYVB">"] F M<H1D^JLL@#(5"_K[E/#$S"T%A.# ="6IRW;J<+Z!MO_V,><;SA1W$[ :RH4/ M\]_L I)1%11!6#P\KQ,WZ@='& I(8F DBBI6$B8@D"@)=N&[(89'U\3VUX$K M6B?@#G26EG "T$!G&3G!K"B:ASCI-4_%@N22*L'9V83\N!1[A^A+=[HA01 W MMP$XK!@:T!'WBUHHD<X /UY"*RN3#XV/04? .3XZ!,7$%BG 95Y,8:,QRQ!; MJXDU$V2"MI%9,D\FUDF9FW%E?DZ<(CJ#3<8L9Z:38T*6U.DTBTG.+)D\\W7Z M3$O8NH"F"#&8!],X)LQQV3 Q'F& F 6L7R8 F;ED+H)(Z3X,S[P@'S%TS72% M.F.70(+##(BQ$#0%QIE+84GPAA2J$1A?F((6PFXQ@SSL0/O6$%R"U^L=_,LA MQ$TB6!9> -VTFV\/"#H%[C:) B 9> %14VCR"(,@!JC87\@*P"S*$9%>ARUX M!RS2#T]0 5"UN0@8Y$!0F7"1RV5X,JYPXC 9V4P-;:"2H9T1L^L W")L*\K- M?6B+AKCWO)Y&<X<F 7Z,CGWG(OJ= A@"9.%X\ O",'_&4.YL)0T4\FP,[,E+ MVJ?[D##>$TCHEX$Y8HQ"@AJ6WL0<F1,F,#Q;XZ<\GL@3>2Z\B7)$Z@-;:%Y) M)2'"(F)I+)U ,-,(DH*%#)7N-BXZ'ZR($/GP>+ %TD<1J<AZ8Z.OLI:8#3&0 M GR*I.$!Y"$%_( PH -0@$5* 3Y@R2A2,: #)$U.> -(KX_"&8H 2!N;(&4! MA)0F'M)$ND@;Z2.-I(3T!U!223,J?B.2"*'"PR%\LV;B%5H .2,/4@'.S04] M]N"@(J!$%5DN'IZIP=<4%,"T !P7]# TRD=Y%&JH:C@4/ &E+,[*-L/:YR*S MG*H!<PK#,"I&.457.'LG(R0LBY[Q*^Q"&^B1(" CG \M(2=C(8RX=AJ!@YFZ M.6"I.HKNN'MR0($8!9?W%WP'6904]W1-JH1QP<U(CEWXFX0.?OP4G]/K8D2Z M,6>JY"]\A(=%3S;&D7M?\8M-*8 \IR)DB-&$1;W.KF0/>F(5 H5YY*9]LB#, MPOSG66H +.03GG%%?('5<C.- F4PFO6CB1D$!= CW2=R(!&1*Z$-,91Z,(&H MKIB: 2-Q.+L@,!3<1AGH=P 2$F@#)0$!4M:I1=09XPJWZ?J(J !O8<:S *Q)T&.HET13,55Q3< end
cs132074@cs.brown.edu (Wildebeest) (04/09/90)
In article <879@runxtsa.runx.oz.au> applix@runxtsa.runx.oz.au (Andrew Morton) writes: >My version of MGR runs on an Applix 1616 68000 system . . . >I ended up rewriting the bitblit code from scratch in assembler. Uh-huh. Do you think you could get around to posting this little tidbit? The Unix-PC is a 68010 machine... ----------------------------------------------------------------------------- Curtis Yarvin |\ | / "That is not dead which can eternal lie, | cs132074@cs.brown.edu | \|/ And with strange aeons even Death may die." | Shave the Fuzzies! | /|\ -Abdul Alhazred, _Necronomicon_ ----------- Don't read this fnord |/ | \ The Humongous Fungus is Among Us! | ------------------------------------------------------------------|
applix@runxtsa.runx.oz.au (Andrew Morton) (04/11/90)
In article <35720@brunix.UUCP>, cs132074@cs.brown.edu (Wildebeest) writes: > In article <879@runxtsa.runx.oz.au> applix@runxtsa.runx.oz.au (Andrew Morton) writes: > >My version of MGR runs on an Applix 1616 68000 system > . > . > . > >I ended up rewriting the bitblit code from scratch in assembler. > > Uh-huh. Do you think you could get around to posting this little > tidbit? The Unix-PC is a 68010 machine... I was afraid this would happen :-) My new bitblit code gives about a 2:1 performance increase over the original (oblit/*) code on simple character output and a similar increase in scrolling performance. The inner loop of the scroll code consists of: move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ . . etc, which I reckon is about as quick as it will get. I blushingly admit to having used self-modifying code to implement the 16 different pixel processing modes, but this can be simply avoided. Converting it to run on the Unix PC will take some effort, so I think the best approach will be for someone who is familiar with the Unix PC version of MGR to mail me and we can privately get the new stuff up and running, then distribute it.