SA44%liverpool.ac.uk@nsfnet-relay.ac.uk (Kevin Maguire) (05/10/90)
Here are my patches to the ST minix 1.5.5. kernel for hardware scrolling Untar the file in your kernel directory. Apply the diffs. Define HARD_SCROLL in the kernel makefile to get it. Then re-make your kernel as usual. Simple as that. It's only a minor mod. It does use up an extra 32K for the extra screen RAM though. So 1M owner may not like it ;-( It's a very simple mod. Just gets 64K for the screen RAM on startup (in stmain.c) instead of the usual 32K. The hardware video base register is set to the start of this 64K. When a line is to be scrolled the video base register is moved on by the size of a screen line. 1280 bytes Sorry this only works in 25line modes (both colour and mono though:-() After 26 lines srolled this way we have have run out of screen RAM so the contents of the screen RAM is moved back by a fast 68K routine and the video base is reset. This way we are moving 26 times less memory The 68K routine is also much faster than the old version. A rough estimate is the scrolling is about 100 to 200 times faster than before ;-) NB Contrary to popular belief no sychronisation with the vbl is required to alter the screen base address. The ST has two hardware registers; the video base and the current video RAM position (which is read only). The video base is loaded into the 'current register' just before the VBL During the actual screen scan the 'current' register is used to get the picture from the RAM. Thus changing the video base only takes effect on the next screen refresh. (I know this from writing triple buffered game sprite routines in the past :-) Sorry this is where I also get my speed fanjo tendancies *8>) "Save two cycles there, and another there I hope you like the speed improvement. Frans can you include this in the ST 1.5.10 kernel patches ??????? NB if you just want the fast 68K routine then just make the kernel as normal. If you want the standard slow scroll the define SLOW_SCROLL, simple as that. Try "cat /usr/man/man1" for a test. So we have: SLOW_SCROLL Standard sllllooowwwwww scrolling. no define Normal scrolling with the fast 68K routine. HARD_SCROLL Full hardware scolling Nsfnet : sa44%ibm.liv.ac.uk@nsfnet-relay.ac.uk Uucp : ...!mcvax!ukc!liv-ib!sa44 ===============================cut=here================================= table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 hardscrl.tar.Z M'YV-3<*L*6,F#9LR !(J7,BPH<.'$"-*G$@1 (R+-BZ"L'BQX\:.'CF"A#$Cz M1HP9(�L"$CAHV,-6R@A&'RI(R/%7/JW,FS)X Z<^B$D:-0SILW='P^-(I4y MJ=.G4*-*G4HUYX@I;^3(R0."#IHT<T"(24,'!%@0<(;223.F#INA7=^ :,-Ux MS!LW!<_4D1-F[5T0*. <##.GC-DS;K*62:%@Q @09 BF<6-X2A4H4H)\@1)$w M"A6S9D#D>;,7!)JA9""#76,V;%HY:_U23AUFC%TY9":?B=L539G&CZ?4@<,7v MQ)PQOMN4<='8,N8@('J :$'$>>;-G:D MPZ]AX+&D"53!C&$R9,A2Z: %DW:u M=!@[AL. &,/FS1C6?T>7/HU;]1S6=KE!AU%L'"2' N6=EUX"TE&7('I3-/;@t M@MZ!%UE!XPWQ1!.<?99&:/J!<$<8 K)7VD!YB/$&:KR)85@,+L0PWQMMI+66s M& >!5YAA=K6A7(F3&4?'&F*0X<(8$F[8(8/3$:$AAT%H]^22%3YVX62&(=$9r M$5],,8043S#!Q'HACE@B?V2,*(=AQQ'(AFX*:"D%$4Q2)R>77H(I9F-W,OC=q M$$,P:9L"04PAZ!C3(=J"'4T&@9X"3- IW0M R?'"FV)<2@:"5C!)Z1R68OK"p M&'8HP(:GE5Z:AA@*H($JJ"],1E\=D;W0QF1IX/&G$4P$<82A#3[1*'H@D(#"o MA%.D4.RQ2D:IK+'</8O"G8PI\(002C 95(UXN"#7MF%,YBU:1HTQ[AQY!%5&n M&^?2,<=I9+QQQ[A<*) "%W1D<>X]-FWQKC*M9'5OM_2048;8;1K1GUPP$&Pm MD'?@2J^]^ 858+M$&EFP'634H;" [1(W&1WCRC&'##/(,#$(]W85!H[+%7PPl M'/R^X; -./PKUZW'C2LD&?_1I_//0;.QQAP3(T&$%$R2@,:H813HAAPNH%'Lk MTSU6??6H=P6EM=,OS'$&'?I^_;2^<"QG=;TM!^BUU6?4IS5Q]FE-]KY6HZTVj M" /)01D;6K-=L5!CI)&PU4&%00895"-N,,):!V4&&>8ZC@;ED=/1AADTKTVQi MD'RQZ_@<I+EAI.-VI!'9&UJCB'#GA(K)9-]_NW"KK@I$S88."1@;A)C5C@''h M?#7RKOMW])5!H@[VRM'&=*'Y#ORRURI1+>UE 'X[[\96_RP;JHIAKGPD@%^&g MZ=[::VRDRK8@%_: DU96]]A^'_[XQ9J/_AOJ'VN%LO#S5AWF!X3F/:\%H0F@f M_+ZC0.ZAP'OYNY\+R*<_C?6/?=.1PW3D0@(@4*]^$<04_LKW@O-94 $!1%<;e M' A!$HIP@A$T8?H2\*E0K4I3+J#,'398+ _2SWHA7-4(*S@N&?C@!9&QPPO<d MX!8V(,]F><"9SGAGEYOES 5SZ!^@VH<H8PV!5[Y*UHRL^*\L;@L.W7H#[\[8c MK2SV[EA#X.*ROMBK7RF+C5A40%" M@:A(4V-"=ACT8Z6QS=N,5%S!*,=B=9'b MHR$MBPKX80H<J#0I,&8,Q4O \120O.49$'K+^AT3I.4]!I;!;]FS7:Y8"$(7a M"A&&))0A_]Z(0??Q[92UD]\'@>A*\<&2B+/TXO]NB<KX#;"'GT0@,7,Y0%,6z MTUNLY"7X7DC!$N[O@D1HGP9MV<%=VH^:,;PF"G&92A5&\YNOK*8L[57#\.%0y MASSLIB2#Z$MU[@\$1D1B&93(Q (]D8S03$ 5HWA%-WHQCHCTHB+%.% IYA&/x M@,2C0>$H1X7648QX;&A!CY0;,U3EHU/IB UH0(./C,2D($$I2&1R@QND9"4Mw ML4$-;E"#&< @)3%H20Q*:A&0^O2G"P&*4(B2$*8D92I&!:I2E\K4IH)4!5 %v M@0M<\(( QJ &-> :0.>0@"GT!01!( X^<0""&.! !S"H@0YHX-(8Y" ',%! u M"^8Z1H*6L:M?#8@&95!2EZ#5!CJX:EG?&E>H&O:PB%6! @R+SQRP8 8E/:Q<t MZ2H#Q\Z@!M.9:PL4@*\0X L$?:6!"V!P Q?@( <@6%@:X$ ?MAR-!7HXI7W>s M=)\YL&"@K:TM"!07F=1\]K? Q5=FF,!9$'@67YB]ZFA+>]K4$J8L P6!40:(r MI=1F92YEF,,<PG"&[.YV<65(#1WD @<TI.L+T?WL<(M[7!#8("4S&"T.3(M:q M^E"-#2#@@?)\,)_3N*&[XMW9&^#C OR. 8LT&\8^(L"Z0@,/G$ @;* N]X5p M&/>S+I6!RF"@,K@Z-RC&&<.:SA=B-YTR 2AN&;Z:, 4HL)>]B8VQC&=,XQK;o M^,;%7>R-%<M8DK* !JB5K&9!6P,6U$!&FMUL<)?L@C+@@0ZXQ-<78ELNVAZMn MN$O^;9.?'&40H!>*N;UREH&[92C[3<KE/>] %6!A%9>YRU]HTQL*%&<1YQA?m M,-ZQGO?,9QSK6<<J ,$,9H"#Q]( )9(=\V_%\)7@UL=F+E%T<(^+ C*(H3C^l M)<-!PG(7-G#E#EE)C5WJ(*!3SH$QDL;7@Y>#7WR1(08L($-<4RV6X@#7A#%0k M@&='8,(/Z1H$O#:=KST[V18(F@8(1O9-DHQE13,Z#8X^"APB3>O.XJO2EY9/j MIC<-@DY_.M0S(K693]WL,:^ZP)]]=:QGG>IL!Q?7O_ZU9^5,YS:5X7SR%@M9i M0.#D ;V'NR0JRVE2]]^N@%JZ\L-26.[P%>3L=DT@@,]6C).&6[U%#BP02S,]h MZ]E];Q<^89&/&<JPPS'D(7EA0<$/&$/L>8-*> /ZK712@@<:_'H.D0D*'&*.g MKYG# \XN+D;Q) '*(?ELS[' Y):[F5ZLZ'.<F!>>\T]8%9_5KMR@+D<4!"&f M&Z2 !6&XZ9(]:^'Z*,XXI,FZ8>#PAI&=\M>2/G>KC9-S.NQ\ZUW_>AAD-&D0e ME'U%J:G[9/J2AK^PW>T'8GK<J\ZN5I-!!BT@PPU>$ ;(A\$&+&@!U[T.W'F_d MQS!K.D-8S'#=53\/*+]1O*(Q2;,=?G8$.<4!@N<P]*)G=P4DW?R$.QZ6?<M'c M!I@UR@[M?;X?P-W9XP%NF[Y0 [%7N^.A:7ZM282<>'.</%#<;8GO[0:S=+\,b M9/&-!I5C).EFUP7='O]=Y )\$+QI/ *+C/53+??7NP0&+8"UK&GM63,\MZYEa ME1$J0 ,X,(#1(6BD)0,W171&=W,B]FAPH .?97KH!AAAEP(K$&LQ$'F35WDMz M<'F=!X $*!:VET53EV44Z'@;*'F49WF8QW4QP'+TQW@5R'4P@($:R($M^('Oy M]5N>%5TCR(#9=7Q4!Q^-YVHKV($N^&,X (,RN'A&6(,7F(&OIH,>"((^*()Dx M)80F.(-1J()6N(0Y8 -.2(0H2(.M9H,X6(4L>(4]^%D_F'U!6()FN&0IB(1Aw MR(,LL%,T4(8GN&2#$5QN)0-."':Y]H?!96FVEFZS]X#25H?5!@*0"%QW:(%>v M1X60UX8N&()K$A2*87ZB9UWJ9X0@@'J3^%NPT87Y-@39)Q_$UWU!(C") 0+2u M]WZ&$7^I)XGS)F+,!P,2.(%55X' YA(SD'_KQG\?!EW91XP#6( E)1TE45DVt MX(!RT'QL$(' ^(77-H4YJ(D\&() N(5TB(B4B(9XZ(V7QP)^Z(7K(H4W2(5)s MN(-8"(=:2((-2(Z_58ELJ(1Z2(#K"(7MF(;<N(_R^(;6%H[V.(3XF(T!>8[\r MF(YC^(^*5HEJ"(]Y.(\'*8?B>(_L>(20$8]NN(>YMW=/J&B!"%R#6(A[=XKIq MYFZ_)6LLT";6" ?S!Y >69'KQH&2%H<.(V@WP84LJ6KF"!GX)WGJ2))!.1=#p MB9.RII.*QI-<D3()V84V68%-:90I(Y&1N)5CYEGC)13X545I$%X'6!(SD!$Uo M.9%+F7>8>)'3N)#XDHKS%VP=14.!YBA+ (J\ *_1I<?8I?D@01) 71(1U-n M@#,>L9=LUHT/:9 7AI! "9=*J8T?Z98BV8=(*9DG^5LI29*&F)2**!\OV8C5m M" /7F)9%V) 6^(XY*7D["8!2&9D=:95%>0-'&8-)28'@(B[F,@8=Y53 ^1 Bl M15(JI1$B$1(CT1$WP%8OQ1(N,5-'=E,TH8!8A1/!>9TZ(51#411'<512D538k M&9[B.9X^Q5A3557D!#A7E56[Z09'@E=E$59[159NM59G%0-M15C%)B0(PYOPj M"59B)0/TF0,Z$!-HA1)N!5> 9F. AD\KP0+ )R-"1ED/"GPEQ6S %6A)4!9Gi MP1]ML&FC5WJ?B(MGAB[JT@9(4VZ*^5MG)QTJ@ (H4!\%IP(I\',J(0-%D ([h M )A4\ 3J80=#83@P P(GD&:>" <GH)=\:6$C\"$7 @)WTB5?$B;$96'X<G8Mg M(!T_)WL7P00["IAHHB:IX72Z 0*4$5YA00<']XIAH9A,VFMFT&Q8JJ5 UQ%>f MBF(O$&ASD :QU6VA805)0 1%("P!,S!*VFPO&J-WL1LT:J.'9@/*(AV*LZ-Ye M"@(]^J-!^C('0:1?$##CA:2'^EN *JA/T (^P#%?$#K/(QTH@!Q#D0)<EQH^d MP%\XH*,*<)LEF9KL$A0<XS&]^9OD"9S#R5/)69PW=9PBM9PWH1+.^1(<=EDXc MA9\R\%X]%:S6FA#:250 )[?V9W7^JW@&JX,P5CM]'*V@BMX\ )7A0/H^4SKb M&39TT*OOZ57Q&: #:I^!E9\*.F2\VC'O>05D&1!< 0*H=1&!%0,Z( /Z6E@[a MUJ V]5COE6C =B64D0!&\ 1.0 5-@&(N 9CM9XMA(8MR@0+715:DIT&UJ'#*z MLJ*2B"^8D016$"5% #IU, 9ET:N307H@L >_)E#\D0 J8 >A\Z65*@:$81AOy M$!JILSK2%0;/P[(^.Q1 VQ8F0[2!1K6DHT%LMZ>RX7T1ISIE(!>9T02ARC(Cx MDP#O-P96^[5,"[)>ZZH:!+5G.S7RLK9PBW!WP&G=]XJ'.F0/.P.HA:$3*QYEw M8+$8J[$<:P,>BUEN*[* 4;*B2(LW!;(KRY=XYK)2 +,R2[,V&W$=D[-RP;.[v MYJ0$ :5;(J5Z0ER>%;5R +3Q.K1X&FB?ZJ=L&[9-VP8[T!N&41 F4Q9\.[N*u MN6MPVK-P"[1"Z[1VNQ=K4B)&6QBTN[2V&SIER[I3NQ=SD+PF<UU;2Q:%!XO=t M![UB&P1D*[<"@K:RLK;@ZWX*][;\,;US*WQVV[["I[?;1V**^6>,U1*%IF$1s M:UC[J6&P!GPH(;CX,@9'BU,S((&5:@6?P;(%?, T00,*'&A&8 3N&QHH8 >Fr M*F+R4I@19ZITNT/&%H,[RV; 1KJA,07F<06H2Z7%A6(G"QC0IJ6Y"VT\\,$^q M$,+Y5\,KL *HQC(H)CQY8(LH &T6!FMF8:OX$L1L( =$G :V^J9L4!@FW*23p M4[I1FB<NW&8)\"& H:C_!:L:?*JA$ZFL*J-G(,:F^KI.BX'3R@0OBL9J[ ,,o M* <IH"P\R\6!Q,'U)F(P*L<@8 )C?+QML 5C7,==D'%@G,8XS,9MP (FG&(Hn MA@+ODA5TH"R'7'1VO .1C&)CC+73<<:+.L>$G *:)\<9O,:ES,EZ/,C2*QUCm M[,BL#,0"U<1$_,G"%\6T/*J#:JJHJJH'V*K\H2Q_/,JI3,9M# *S"@(X,$JSl MG&*\7*JG2@:IZK16PZIP2\R+3,IEK,S\Y1+.W,E]P&]3;!AY3,NN[+1^)\IAk M?,QUK*,@4*F*HP9"5;_=U[R&X:;HO,'6N\Z @<J9/"#P7*E8J[UOP+7=>ZAZj M;%^WO,&Y_,PH%LV^3,W C,W#_,4 [<O=O,S-K,O0'*B]/,W5W ;7#!C9C-'&i MG,YMH"S+#,X>G0!]4,790\5<['105\QA',@J;<BFBLB*#,@J#<EZG "4C :6h MC,D]K<GPW,D,C27'S,%WH,M^&1J5FL53*B8*#6QP&L^!IL)/P,):C-50.\XSg M_1M+G "K-EY/+7Q^5U89]\EVP09*S#)K0@=[X0:<C+]150,M860"JI?^BXIEf M< 9@86;NMZAZ"31TP,F"3=CJHD%IP-BZ>'59%\QH3*."K-%.NP5R(*$XC,B<e MW%Z*;=F+BMD[+0<W$6@!+0==(-GX,L.?K<G>#%J4&FB1QH5H<4IF86:$]Q<.d M+")?L:DH,%?0Y@-:BL<OK **W<,'J (OU\.</&0U0(!&5@-D1<"@6-BZC<:)c M'12NG=V/;1:2?7PO1]HSF@*9C<R%W-EZ&=L#TMK'-]KLS*CH?=JI[=ZL'=HGb M; :F4[I>S<)60 15<'Q&^F4.0\E9EW&*_=.CC-^V*KSEW&RPO=JS30.U'8!3a MF=N0S=M=^]L,9Q"&,=PM4-S'7<)+K-Q!P=PN^MPKD-<-RU@UA6 UA5D3:FPQz M(>,OD5ESE=S+;6$KGG70S>,I[N-ZR>+?'=-O*FQQBB\Q?;E<O: UUJ W@ ,Ty MP )3'F3^.V0X<%4L@ ,HH^-*QM4],.9D7N9F?N9HGN9JON9LKN:*]5DJ(,DXx MZP9D(<D9BF4JT.9ZON=\WN=FKL\F?+>\&Q1?@"ME(1U4( 554 2S7%Q04 5"w MP 1), 01UW:I,>=D@0(_S+.-K=T:%!1R4+,W^[EX\0;&>X""3.JDY^)^%E6Rv M5^5;'EE93E<X0&A=GA%@_L(2+=)R< 9BL 4QT 4'* 5'( 1?< 6"206,#I@Gu M.]C393K3N^N_[.M; /"+AW$;NR1CI<7;K3W<0;/GAJ_C>3[_:16G;HF_-H8t M/.AT4.AT?LDEW&;X$LN$',QW2Z,HT,E$O<TH(.T4;<V!3',5K"P\<,,NK>]\s MH.\XG<;]#M+2_,M.^SPF(/!&0/ WW-&=#%P>/>^:O:J-3,C/C"_L[N[[)AU&r M\#M3P.CI#@+DSFL1_ELJ;>_MB^\OO.^H[.\C;343_W,#GU\&;P.C5/,)?]8+q M#ZLX#\P[CP<]7_#,'/1+K/&S/-7-EM9O@ ((EA(Z&KN3R2/6>UWC58H-L]T$p MH8RH%+>6^UGV-13*8_49=_5CK,-([ 0:P@3Y-]?SWC$%O74QN+:&KKOST?5Fo M_QU,BL*F.R<MO"=6NAZ4'*\= P<@,P?BNE3#:JR4CZP7L5/XV9PQE1&DY5(Tn M<54L89V1CYW9RIU-@53>.OJJO_I.-6^,[ZNY2QC;U08PH[7A(B":GEJD9K/=m M^VL#)0=I< 9H4!:5]0(T\ (>1G0@T 0N, 4N 7RDCU.Y%EIXSQ@L:=_ >X!l M1Y9?OV985 8VFP N &5/I@#?'_XN8!1M8/Z%@?YDT!=AP/[@3P?B+P;:)?_Hk M3_YT8/[]%F5?$"]?("V,#/,7-8*?&T@ ,D !_+\W$ !O'QU@'G(G ?2A.0 'j M] X,2 ">)>P<H$_6SW(7W^(MG2B+K)H$T(0HX-=Y-1CP(QT@1!%<<A?<J@V&i MS2[('Q)!!A+ @<$#-\ ,:"!3H3P2P!<@/0+")7RF*78J1D"5>S6Y8W$D '6Sh M=U",9WDU(L(@X!<707$0 [_A,OTMP/@D?>,N%,"Y$0-$C21E(#64 H^"S0@+g M$H<KN($P4 >$G[Z8$9$!!.B %L 8OF 8C$$92/:0P0RH7>J <@A9ZR?C?"R%f MDW'Z0LS14EXP&(%!)Y2![H\:2H0$9A&*00B%;!ZA'62$CT4!64)%> =Q$+*!e M 9LP$G;"#$2 0.$%@H3+01+B02.3$4)A*AR%+&"DF,(;A I=@"K$03= $Y["d M2S@)N90KM(6P$ ?HP5W("3'A&)J%=; 83L(8H!*082V\A8TPISA#7K@*I:$Sc ME$M8Q@7R!QBHVV3@;Z"!-O#GY, =.!A\(!"D T)P)1%!&W@$<PUO68*PI@FFb M0"@8,0J$6& 3!O *0IDLR!MB$UD0@<IP%>[!;B-MT. I48-LT W6A3<0!^=@a M,A2%F' 8WJ 4*/O\H'<168*0<1'"W4(V- @BI(8XR!$20XBX=UB?23R)*#$Ez 3JL25R!);HDM\B3 Q)LK$F0A4 !'"y x end