Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!bsu-cs!ibmbin From: madler@Hamlet.Caltech.Edu (Mark Adler) Newsgroups: comp.binaries.ibm.pc Subject: v01i181: kbuf_ma, increases keyboard buffer w/asm source Summary: kbuf_ma.arc, increases keyboard buffer w/asm source Message-ID: <6007@bsu-cs.UUCP> Date: 4 Mar 89 02:31:02 GMT Sender: ibmbin@bsu-cs.UUCP Followup-To: comp.binaries.ibm.pc.d Lines: 179 Approved: dhesi@bsu-cs.bsu.edu X-Submissions-to: ibmpc-binaries@bsu-cs.bsu.edu X-Questions-to: ibmpc-binaries-request@bsu-cs.bsu.edu Posting-number: Volume 01, Issue 181 Originally-from: madler@Hamlet.Caltech.Edu (Mark Adler) Submitted-by: madler@Hamlet.Caltech.Edu (Mark Adler) Archive-name: kbuf_ma/kbuf_ma.uue [ This program expands your microcomputer's keyboard buffer to nearly 150 bytes. An interesting feature is that loading this program multiple times will expand the buffer more and more. This is because rather than accessing the BIOS keyboard buffer directly it invokes the BIOS keyboard software interrupt to get characters and put them into its own buffer. Source in assembly language is included. To distinguish this program from others that sound like "keybuf" and "kbuf", I appended the author's initials to the archive name. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 4918 9056 this uuencoded posting checksum size (bytes) file 10617 6551 kbuf_ma.arc -- R.D. ] BEGIN--cut here--cut here begin 644 kbuf_ma.arc M&@A+0E5&+D%330!>7EY>LQ(``',1]V:=5^`J```,(.BDH<.F#(@E0JH8`=&B M!8@R>.B4<4,&Q)HR><2\"2.GHI@Z9LR4D=-`0;0>2,G#T.U/&'\W"O#!@BI=F,XA;H7 MA)$T6.GZ=/"55W9=N:XV%FC.IVZ3.GD@5,F#)KR'EF/W%Z5S9PW`<^7!$'7Z'+8W%VCX1AF MC$0Y(/@F$H!QC=7<&11AMU"/=&:S'0((-^_/EGTWP<&23@2*2E M11P(5)P'@AEOAQ?4&THON+2@:=""X4<8=)];AAG]N!03?EB-U M2>-.-J#14`MIM$9;I&+=EAL+2;HQ'Y!E1NG:&SLN!P(16/"ZF(^1,@0Q['HZRI>%"&2X`"V.DK0T$PAT@@J!&FS^. M1UH*[)588(%DY#H@2R?*D=*3S8VQ1HO`=@L9&L^&E:1%&,EE\$4O_FBB&08S M1U]KU%I[&GM/"%LZ*$S::$K1SB=R&?RJ]1)Q:NU0T@X@),%CV;&<@.Y MI=W4:FTI5EE?$XPG#//1Y2(-*N``,20/[$#%@R-%RZ67(FX)%1MA"-G5'721 M$;<<(HSZJ00%:9%A3=-ZE)U2]BPBOFU<:8@.;!HJ( M/HP#00V&@`:UI(@,=.@,X7!'!L0Y20$?;$D)E<>"Y4&B`3MX`ALJ(I"5`,A@ MCS+5BT2#HQB)Z(-S$"'GNE)"W0'Q>*CZ00M)!T,95F1)JNN(:HR%0X'H<%QD MZ.'U/K@&(9+0A(I#X0RILD(ENK"),Z08DU;7-3D4R6:-RJ%!L*A%3BV'C,DS M(^E,9S6+H&0H#2%#3D[0DM?$1EYA.(-S.+6&.(BEC*2#P`ZB<)K4W$0/!E%6 MG"1RO4:V!I*0D"0EKU6PG*"OD0`"I2@K:1!QR4%$C;Q=YW(G14@L8)*LA*4C M]?`0TT@'*I!HWB@MF09,1LL[19D9'(0FEIRP:X!H2Q\(IM`<.;0$22X8PA.: M<*P=.>1>;8"#JZ*E)JZLR2T7Y%T,8`"##BI`3=8$4W'L%4YR-H\F(P M`Q:<0"8+J4EB6F69GP1E*%]!BFR6XAG"2$4.5+$*5D[``GY6%&[S1!X(3K"5 MKB148CTT2X@H:M%U^E,+)VB!#6B03]XU<@6-G(,>5'`A2"1@!]3D2$OP-)&* M(&EIG/*>-*F0*3A`ATK$0DR5Q%!%!(FE!6&"D8Q6`I0`FN%_]9L4D%I$.@/L MP`A8U M3)!``-7F$(::C.4,99CA0#9>3868D1(0F0O:]?-M@EB M_`.L8*NS-#5&L2();,X%72/6-?RQ7/.D*U7S9S__\95]HJ5:#^O42J\EUB8O MHE(6A3).4T4$!&>H@UV4-8;]+&>U6!)G:"U+W/Q%5K8&H:U?&<;7[;KA#)NM MKF:I*T[*AE><0:CL3]10SQ3:02UL!5!/X0!-!:P!2E-:S%M+59ZL7#=^L[WK M5K^[5P'_=42!'6QA>XM8N=@$NI]]K&G.)\&LC)"6Y%4#8TG7`,:3D&W'E!,%W&5G<*_YUJ=@W,73Y_=\Z9G;-YR2OA M>2*F#'3@#7YU,M_ZWM=*XG3KGO@KUQ&]",![[BM>^ZSI`8,7P:,EK&%QU&#% M`JLL*E1@U]K&G-7*)0VDF\`..KJBV%7.2XNU,`@&G6''3@'#NM[P3]K`F5UC M@07T8R).$4WEYJSZ?*LE=F?RQP)>7UK/7<8MJ*DFR%2MJD_'I(V5ZTD;%OCJ M;K><0ADRV9HET8DUJU6#DE83$F4GH7UO.#6;ZNW,U7*R)>7>59#5S>ZQC"O> MO%R#N"I2NAW<6T$-4TY+4`0@=Z M>9K.1+V0B^7-$OK*?3RZ8@2YNC'&KG:S?GX$EC,=YVT*-Q.B76QJ6YO+M%5; M9*5=%2:P`"'"(]X1(LM><9J)46OHN4$@<8`=2`'1;7[L:M%NU3&3IPQ4P5-I M*0[VQ=ZW>O(<=K$IRX()F0'5%HE#5W<`A3=L:9Q`C>P8'A/KK^*H#,8,/8_% M"H=8-KSK+<'4YKMK=])\)_6M!5QAEK:FI)(D0E]=(T0R$.T,S=:(F MA0T>T]GVS9CIW1J'?,Y8`>DW^J)WF=(7W,HFRP MYW_C1']61GJ0(&M&<'JIETNB)U90MD<[4`1N4%HH,1JZ!VLQN`-5X`8&R^PDYW")!,S0&433P83!(DW_TUS2=\AYK4(#1M2S`MH<'R&7=I7V?ME[U M='?69!%Z-V8+QQ!CA7_P,1JEI2H"86)U4#,W8P9UP`8"N'`%R(''YH',!H*< MYWDC"!\EZ!HP*(,T:!"G>&60J(-$Y8C(Q6RR%X2E1VNHTG]Q-CMTEW"+V'!7 M('$@((D3I"`KX6E)@B/&IUN`IS+`LEMFQGP.EF;/5P;1AP4"J'=Z:'VQ!7_9 MYVESUGV$9FV'EFCKHRCBU&A0LSZOI5^3%E?^51R$UVEY!6;>]6GS036NE66, MV(X2"'7TD4:EE7^F@BHE2#5(,!!B06UT-@7`DEG`0GF/Y2Y40GWSQVQ6\FPL MD6ML)WWTLW9EYY#I!9*=L8`CV8W81EO[4WC;EB=[0A4K-HQE\3'Q42!HU6(F MV'85!8O7D7]ZHC#T`2U;)18WN5IXT%PNTC(L<$>DERO!91<22"S**(:7!6.2A`)3 M\""9Z#.V9CE:*897QD5`=DM#%AM%-G55LBB'6)1BJ`8)-S8Z\99\24H%4@;A M)![`0BPZH7>K)9B=T8$A\8&:5QBC^'GY)V5L=(H!018`=VSIU90T]W%#\!U= M(03BPH7S9"]>N`9NP%14$60/)W3(!1]9.6:P22-V45HY$2#1*1M"0G$&`66L MQ%4P8(>%T9''%E.\9%.X1$J7A)-[<65M0`>:%V1%$)OCV9>%(2/)(WW):4M^ M9YS1F%ZK99W8*4\?-EKW-T[L24H7=YNC)X028'I(R(H$^A-7EH,_QX,^B"SZ M22<<2H1&N(JWB9H6H9HZ^'!`,T%N""P%L6`3\X/_-S%[29P=B03FIFQ$T#F( M9A#4PJ.E)!S4\J,A:F&0.6.3:6.6N8N;LI4B2F1CU)E"1F12=V242)J54G6F M\J*%B`9X]Y?B!`E>=9@@:%5@IFWY6#5N4#:P M44QS1"7A*1ZM.3*=RE>4M1BD*#$DR$HLTRPVR57Y>4Q@M%A48P2Q^I!)``)P M@3XB.D.1E:-\R`);0%DJU06DJ^NM%J.2AR3JCWTM8XED8.52FGQ>&W8IZD9*$`C8D#0(GO'5%J(B24Q MD@94>4%4DS\OH*K-XJ[,(1:O>BVQZBQV`!NID7\7BJK%034E8R"!IP5DQFP\ M`QD^LS:5:#,Q`BPTBWDU*C1T"@*YRJN^.A"ZQW"RYJ]E(%`S&3`XPBK?N8%E MEP3&BJPRH*SVN8*NQ*J4,V[B!)'K"D-NZK6_)T&QH2JC(0?HMR+S2J[VNGQ@ M5+$AJ@;1`66%F3JQ8D*Q.MH/N M@2T[%#W=^E/0JDER`J[S@;<%.`;U!)&,VP(TH+4W5;:+EXF:2'?KV8,UI;=P M*;,J4X4C`1^H=IML%[I9BS^]FF!%$+G`8B6IU5L<8;;_<4%0)@,Z0#H=J@6S M6[.^US.<1#,\FVL!>[`]2+#U]8H)"X^8FI(.ZV?X^+(@\'?2MKH5"I`6VQH8 M.Y4%P;%=MJI\2[+/>BWN&[/(!P(T&U+/B[/1*R.6&"-J]EC'PAS.P3WB&S+0 M*GO`TCDS2;,%@GE34A')62"JTEQ3LG)HT:FZ.DV]^JM)RWO,AB-.:Q!0:Y=] MHH0P[?K(7KU]&LJW`)9V\*FF\`"&F\D7`9QT+I`!W&P MJQ-62+N(IJ$U;+7KVCQE*\,`PB)I&[AL:T%BJ"?;0ZZ2M()SB[Y/:K?'`\37 M.L10[+B;C3.;DI'+HVH+5]U[MEX2ZB$:W&9+GT^W)B')BW MBZRC^S^[*UA5``?!BZ\M`<47!(G(J[P[P+Q7J+\PP[\SX[_3"["(IA:O&*GK MV'J4NE_<.R+SN)+TV")A8D#KEGBQ9QW+I1-+`RR(67ON2UOPVZKR>ZHX";,Z M<;\_:[.M45JEF@?L8<>2FYPH0<#+(1;&U"3+HNS&PPO,BM.L,\ML0WG,/VN<.D-,RKA<7\*F,K2+$H,,MND`?P:2!J M`0VK-US7H@SG/<4]L(*'R"'_T$V;X\[T4 M#4!A-F9D(Q"A:DP%:5I3!J23]XF[&8J]N1>_68JZ;+N#.9^[1#KI,TQE(JV: M*58#6Z("NM(:_:D<_1C&A'Z)Q-*=4:AZ$62;44A#@R/,P0:O/)I84II_2I?+ M/!(_4E3'%%^7F34UL36O)(8&.I$GN1<**));USS-.DY6.H'E<9N`6#]J-YT; M"LGD1UA4F=7!=SQ#PU46_%TI*I]+R1S`E#Y3H*-[RBW=C,H3F0(-B$G4:&/9V(/4,XL]C;3-MTD`./'=F=`424#=R$ M6MN9?7FAV'^>S6R@_=IRQMO%ECFEC6>G_1Q4/5:K?4S"*46M$T%IO=6R;=P3 MN26VD\ZY71&[+=:2/4:5C=["+3K%;=W'/4;);=G+30>BT]P?B(ZDTW>??2IV MKO7N0T*%6\S=W_01+X+=W0)?^J&H`Z:2D1)`&3IQ7MH]#D;B9 M2M$/*V8M*1&Q`4&P$YSK)D[4HMI&=4PK,:=V$<$/X2`(SG;,`N`VV]!BE6!! M0&R2.$X788VW^7G3<3>F4P0Z'L`XDAS*TD-I,!KYRL_LHST&K!8]!7+6I!8: M`!H(2T)51BY#3TT`7EY>7IX!``!S$?AF!2'2`0``#.G*!&BP1$@5(R#LE)$S M)\T;-R!BN(@!`L20-W#RR$ES!@T=$"B&I(B8`P>.BDW"R%D#(@@9-@L;*`C" MA@V(C1WIS+E99LY"A61#"`C@Z``Q^^;,'BXI\++@"0*C7` MJ:H',`#0884J%&"TS-$V0/S^T1E!B!R=&_Z8T6F0MTZ.%=O<@KI` M8!V,77``Z$,7"L"^#UZV*!,`P,`51\,0`U@D;/$8Q[@`_*L3`,B7`^L4:%YL MQC$=>Y"W/&.$S!$V1\!@!3!D``T`0L#JM*`5@-,_#V0`T/F@N5!P!+@`A<4` M8`6PQ1Y<)Z`%P#AR`.NP&>L-`,`P?HW^Z(L&;M6B8:M6#>NWZ(^_'?M6W1DP M0/V./_S0,4`B]LVWR!W\['"'/W0LL,,\K>PWP!WZ)(+@,`;]4!@YL^)H0"`@"C8)6B""QZ`8`)QQBP(AP!F,"(`S"F2`*+8*5H`HMB MS%CCCX+DN..0*6+!8G(I:L%B:S0:X*0E2CH@Y3[H?/"/+F@(T,P)&@A+0E5& M+D1/0P!>7EY>[00``',1%&?EPMD'```,#10L$5+%"`@Q>4`T"2-G#8@@9-B4 MD0,"!)0P<\*0*>,F#`L00X)4C)$#!PX7`0,.+`BB#!XZ',G,`4$'31D0<]+H MN?G&#$V;(-:4R2/F#4,R(.+4*;,4A!DY;]J`B%&#YINI-&0$'3J'#E2A.94(9`SM-5]Q3DFC!L0:3<&_#XQ/'80*'*D^'B^;M'UH,EA M1QK620>>>&6A$(,-:.R7&5+]M;4:16WQ-=]T]2&('P[(5?3$>V'X=U=>$PU8 M('URV$?'1RL9=$89=,R47E=?E3%'0$]%95:,(+QQQWM*,57&1W[UIE&//N4H M57]")/'$%"?,%.12+G@((DUI3(BEA0J@J")_0#7Y9%)+-746?#;Q50929IB6 M64*,,;07=3-]YA=@YP5D6AIG^!4&&SB52.!-4-61W4WN(96&3^XEQ-!-;=:A M&9A#.<8="*BM:14(+489T)1#FN73>9>>"55458+PH6,B`MC>>_%YAV&*"%*J MIQQ\^@GH'*_"]\9&(!1ZJ%EH_2D1A%<)]H9U<\S47ZP/_L21M`&%451JCHW1 MUAOOM4DA4!).9&"&]YT)QT3>KD9&<@I0`92RA!EVFV*KS92:'`FQ,1<=<%GK M65G]H=@1&S/U)"T(8DX1J("#!B2L7S:FFL1[:\E1(6P,$5D6&6_8"((;;Y3E M1G?(!@7R'7'9=&E_>_8Y\*=E>C?'1VZ6D=I[:/@(`AO<`C87L1)W.Z?&Q`;V M1K-NP47'53QKQ!EL;<$!5UIPI.&QP2UN^F)9LGR[D0Q!1-!"0772&.C+(=?S;E;5!QS*&'Q*.JO#:*-J[( MJAF&CG;3O3EQBZ1R++7!)QH`AR$4JVFUT4:B.T,ZGA@FC0W<*B#R%1-`Q&&($&I>_EJ0"OB4/K M%PA$8%$T'(8RT%7Z`ZJ/N`T-?D'*'=#`EJ+]J7%D2(C:`H*"-+C`>A]Y#/M^ M=H>)W$0-GP%8'LY%A@Z!P%UG.A,9%F4&#T['*5"1BE[X`Z!M@$@C_HS M(Z^\87@-[$^.7F@P`L8L5:OB#AU&XX:/!($)/8#!A5;8'IC,I#;,FME#H!@# MZ5"1+1XS0QC2P`;;X0=DP7J#CO8'JKTI("!6F$CN<':6I>$+!"W@6PQ<`(.* M^%$&-E"(W*92$ASXL2)&2`-IR@)`RXT!!+@;GQL"LL