Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!ub!acsu.buffalo.edu From: terpin@acsu.buffalo.edu (christophe d terpin) Newsgroups: comp.sys.atari.8bit Subject: Homemade MIDI Interface -- Part 2 of 2 Summary: Software for MIDI interface Keywords: MIDI, software Message-ID: <67656@eerie.acsu.Buffalo.EDU> Date: 28 Mar 91 03:06:32 GMT References: <67653@eerie.acsu.Buffalo.EDU> Sender: news@acsu.Buffalo.EDU Organization: SUNY Buffalo Lines: 229 Nntp-Posting-Host: lictor.acsu.buffalo.edu Below are the uuencoded, compressed files: MIDI.BAS - (Atari Basic listing) A simple MIDI recorder for use with the interface described in Part 1 of this article MIDI.ASM - Assembler source listing of machine language routines used in MIDI.BAS The assembler source code is an improved version of the source code I posted several weeks ago. Christopher Terpin terpin@autarch.acsu.buffalo.edu --------------------------(cut here)------------------------- begin 600 midi.arc M&@A-241)+D%330!>7EY>01@ 'H6B "F,P O ,,6" .&"2A(J3(J $!&$ M3A@Y:4 T24,F8A(W=,K(,1-F3!D1FV0() @ER!&%(H: H*(13AHW(&+DR!$# MY R!.T",D5,F3$8R.D# L/$"1XZ!/.VDF5,&*(P9+VANHH%S4PV<$BE&/&%% MQPD02,*X(<-&XR8;56]@!3$$#<0Y=-[ 0:-Q9D&2)@Z#N6,0>.B MXYPZ+L0XAOS&1=,ZGF,$!)'SC1P0HDD#J2/;31H\K<>\CCT[3&3;9'!_%LD[ M]TW>*Y$DF0)BRI,J4H8H'/*$B,+M()(XR5XD-U7L4*H(89)$)9$G38*H=Y'[ M*ORR83 %@AEEE,'&@#R5 =P;(+3Q1D5FY &"6(E]AA9V:;0!AQQOV*$@'6@L MI=.#96 & A0 ,I6;6MB515@;"J[AQAMW3"C&&ZA-Z(:$;82AAF^YZ86AAAQZ M""-&B505#)N= M*0-U.Y1Y74YEX%'&&*BE\09,9G#8!@@-/92&$$%,49\.9;ZW0PR80?'$$@H% M9 ,+G-&@PQ%2N "##O=-4:9_.\B 662(@4"$#DTD0402+CPAA!*;UL#;#)C) M40=,@ JJTA@/T0$1&8*5>>$.-&"61 ]53"$%"C/09 ,.+(S1!ADL; %7KI.5 M,587+,P!1X%DI ""DPI*(:!-*90)HL[M ")!V4*F5-<(+R4!AUI.)>&'@IV M!4*58Y4E!Z%H3IG3L,4>FVP,R[(0Z! HB)"$""F8^Q0,6 W!Q!-3*#1"##H\ M 441ZVW, K,PL"!"5R ]M5M.=0CXP\:]_18?%2!LO" (3(W5H%8CDE%&DBBD M81MF+\>P@PB0 ! $$"+L(/$,;*K+[E-O>C:#H3?SQ!1A,\K1XX%,0>1-\-M3,"R"%! K M3,2Q09 0L=4"G[BH0B+1 .E \$XK!V$\;2E'16Z&24)^^=-C?ZFU*-C#2\<;(21AQ@=K0$P#6D3S/;!"<,M A2)![$X"HVG MH#CCCJ_ !/-UKSMZWO"Z'AE ( 00W"%$90$!^,0G.SZ=[V_J,YC;%%:XAB'. M?O([EA __.U/!Q]$70AAX)FKX(1[ M,*C!RFK(IH&4(0YU\,G/:EBU'+XG"%4@PA 0T@,2$$$D., .'-ZPAC)(B"=G M6(IH:NB?[U!!"%4P0A.'4,"!Y&0U#^F(: :T)!S1 0ZHJ>&%IG"%@PP!";HC MP1!4@AT8]* '<)'+Z_;V.=G5D$5@-(+\B) [$.B1D5)\PTO6""_9/*8N9EB2 M V90R%!@0E!R$(B&ZE'(T1RDG6IY&PPN:0%CJ]\-9S2'4DI R/PL44!(DP5 M);2AGS&E0F@1B!2*, 0K$&$]>4R6&0?ID31*Z#3"4U$$PR"L$Q4RD%6<"",A\80 MEXTLJ9MC>PD^-3GG/K)QM\ ]$!N'.@@$9,' M<5[HH E521Y%HI"'8D0C$07!/BF:28MJQ)M*0HU&MZ0A%Y5!G.@2IY"02 0C MS*")V?1+3J:X2YV@808@T 'YZD"6-XAS2CPU @V *A(;1+*HJ_&+4D]#AA!Y M1BT"P4(3J' ?>))@!O3$CJ[$,HO M4Z!"$*A 51A$%F>3/5!E"3,M.K3L6U+H['OP.LPIY#&;],R)ULI AR2!5K14 M^*I_3-<$O#9Q-W]%+(VBEQXI1 %D7[U0$IP+LM*6-%XGO6<=\CE((/Z,H#"X M 8N0,-H@",&V9XU!;@-KSYOQBRRI#(,8RO)5(97J5'M%G0P&@AVW5H1)7'V= M$+\ZI?LF 0F-' EV[."<.@P1!GH1)B-UYQ=(&" G0TC"$X(B%VM5=*,5PL%N MKK!0W471PAC6,(>WA:+Y:Q&^]7QT&Q&,84\F,*R9A3,OX5=@?: M@HSFB+"ZRBR3(C.&-7S+3F,0@\1PD#>XR(J?=> )P'#@+AE/J3[D:0(IKW9E M)T/9,XL12'V"@(48#)H&ZST-'F* Z-TL&@O[328-"I@32H-*) @G6.85UGV$=N2W-B@Z)O0-,Z 4C.:?[[B11F$ M(60])_Z-B"O))_74SST&-Q&(^3?__1,, > S@%Q"0'J4\02F!X#4 0+J5ULQ MMTR[Q5IUL5H >!U.8(#*YWJWM$PH-7%7,Q*"IRGXQRGJT@$ *&8282I)L! H MQX/\949Y4B @<&YRD <_((4)* 1%$ 4@8 3? MD82\D0<_XP+\P1?'IQX[" D(L ,S,AESL 9IX#I()0;4,T1\47AP*(6)%XA\ MT7@UMH,C<#57""/QP#O$H[>Z ;U.'[I. +K:%Y,\ +OF!-"&%^16(^F*%KYZ(3[ M:(XU<'_!Q(U7 E';)5'\Y!O_AC!\-T[HJ(,UTQD(\UE!8 5%4$U*2$\@I1Y0 M"'#L-!+X. 4Q600R.00YB3")9Q[F: .-)P2?U!T_64TZB7G+XH%4 ((V<']@ MQ90R&90$(0190 4*43)@J3IB24,Q8%<"=P-1 PD: '">A17CDD4P86!@@7LN M> .&PI9I\W'@&(F$4I8?Q8X$<04*Q4A6P&1.T *45I8L @D'X *".7T@8 5: MEC&(R99"PIB..9@%: 3(. 2(^2V29RYE.268^9B$.3.5&0,1]GB-:9J;V9F? M"2X.X5IS()HB)A"EJ9D5R)E.X)F.!B[;,@;>9)L)J'Y6H!X'@2'&02_VH@<^ M82<(J9K; PDDJ)KM-)GMH9H&99@UR8, AP.-AX]-4![926<"<9Q.,0EVKV(D] MBEP+26*+" *)A+'IP3&XGH&P6ZS!P+;]6& 968$ M53E5 3P"(:3DV9T@&D;8P1.ZD@9E<"5\&&-5Q9,864X]=H5_92T#]%9N! (F MT*,L<@7Z03/I*%9D]03K84!A\%8M%2]R$ ?_!D4_.H8@8*C)*8?PDEC 01=I M '(B@8-+:(60!Q>S8:1I@J?TI*AE]7@&\(!02E; 6:;T3_*JII882T&B5IBDV[K5JM3,H,: MUITC0 *>A1VT=C%7D!Z"6GZ712?W=&YL,"8AH7I!1S,]B5=ZU:>$ 2(* EBK M=5EIQ@8L\*[(U9.-A3MR2"$XHUQW\*X)F([$A5=+*GF2&@<>UB-W^*['%P1) M^*U#8$HHQJ0,LG2'\3G8)1H15:DR4'@6\W]KDG@*M8QGI6!FY!R142,WTFQT MD ?;8K+AB9$-FW7\Y8C6"E,BF4\F.W[X.%W/Y03ORJ*E.@(&Q@3O*GKX&%5( M9D9/&H N4 -NME2)T5=%Z*T&AF#\)0="]&'@Y%1]%; 8&55^<87?^$%1V%<+ MV[0D( -1M*1/]P9M9E1():R_B"@WD --@ 1Z$!(S<'Q3FT3UNDPFX&LOX6:K M@53PDE6&RZQHLY++B)L7-DA/NE9NT%:\VE<[VZIC]:K\E5AN(%=1VE?C]X&& MVV=]-7R&U)7/=Z9-924PY23SC:Y/O%,(U MH'E&J;^BIY2XL\%6$!(?*:":PG K Z$P['<,5S4,AS5#"X%RH!0>\3IN]!(W MQ7!I$ZF )5 YPA,D5E MD$5P818R<)4=O 372#-(\3/,&SYTL!I#=,9J2T^T-9/MJQ,!HB! RR7:A9!G M',#=8<"S-!!RO+=SX(AT< /_(MW\H5G M7'CR::J;NXK9,J+VQ&!L$,D/3$_JX9528 6TILH2K*/[U;'[I09I\!AR.@>> M? -)N4YO\BY'7'$;9',(SAJ<[V,H(!#:K?CE\5;S&=4B';A'+]*1$#J'-$A4:#=@9$0S4@6]A([ M409'QM319TS_FP/C]TEIU<:!Q!.?6L0K.A*B MM8W\)<9DO$4R@*..QU\&BZ\D2BI\(0GDCBU(CR1\W M43(==0U4\LK/CW <0=.=;A32D\Q#>0>;N4D#M6'6WA,GM1 M[M!:[M1$P.4S0-HSD%.'*X,QQ]E 3JK+R-D(Y8[V2,^=F],=R-0%=W!!4,L' MH'*_\8]7L]-Q/MP(!9'%(]G-<\[TM.<7Q^75%LTVLTS:PBW.]BV.ALN/D0?F MA3:$WN2/]^1(5]N_\6EH4YQ;.H,SUXS]J#F$,2]D@C;' M]ZL$"5>IRX:270.8S2YH V9H0]HUH.8GC*PDB#:1$WV:R2%UDKJ2_9%MW35^W'A];5+N)COD@^';.[UFK14^V)A]8#^=QG8.1F<>;;>^5I?NI@ MGN95+N/Q3&L37,_UG>1I3L#T--;'U(^R:M'"*]EV.1):NE#[+6A+:NNLKO"K M7#-5?,5TWAEIOKTWN1XHMC5A>E$*KY!->_'3A>A6-68YTL.O?0/5')GOQ.7< MO'JQ'G/=FF/4&HG-^TT+'4[)DN]H+4IA)-E+/1!RGP/B_A>QE_8_/522E%TWXZ?,I>#)LNYD;]9, M#3)$D$A3(4_50159[IU4T?=EI1 =*ZLM%_E@1A4H7O+E) 49;Z]@"@>1'^,@ MI5"X.*8R%4=4H;X6/_HH/[:[VU%4(;48N?I24.XS[;XC.15UUR:U8^]53%:E M;_K;)?SYOOJHB "N_T:P?ZQ"+OJ"1P2USU\T!3Z\=5.UT_?.[_L&T,/"GW@- MSZ4:)OQ45SLY53M]5CMSUSS(RBZ:83MDZO93L28"4?<7XS'Y[^'DG/^@7*HH M4/>)--'8 ;$S$F.:D7@Z^LW]*")O%0:L+79?J!E)28#;(9?8T:3\H1DDCZL= M6Z1LR,B\JAFRCP)UGT@9KAFB%]>IGA-9T .:'B'*S"",S*LT$.3>2@(!,16\ MS>@C=W E-Q50\^F6?[C=',%3T8$T[_ Q-^N4GAKW^G"_T1DT<+F9>JC]WWGI MZ.@EAQW1\2RWT0; 3@-GGM\*H:D(88%3D>9500,_7_W+^&DT4/8TOU#J46-6 M7T\6ZO90_FG1V\VSQ)AG1!=[&ZEBP,0^UQ?(I:-F9])]$88$R/\6.!4TL.L# MVA=WV1?1-@5R>?X=NJ?]^ ;X*@>]*" Y\Z<$U1>AOXR4UA?C=_[J46-67T\6 M*@>8P81U/TI7.'^. >6+ MASXQ7O>0CSZR7_> /Q4=.1)?3D,T$,/XB_9A!-4T,$U500,JF:.MY_B WX^& M#[2)#-U380/3#B8;] MV*1380,DOXR.!@E/7J3 3@-1R>BBPJB:GP!/.O0)3P-5^9]/X)5)Z+HT<)7$ M;Y:3CY8"X?BCI/2X"Y93(C-E;13 MX?6.EXJ!Y3H=X=,"1H(34E$22Y"05, 7EY>7G4, M !Z%K<%(6B %@ ##%@@)!2I F((%2"2$D" H>0)%1 -$E"A"'!(4^D$"DB M99,,@00-BLD#8@@:.6GFT'D#!TT9.2"HO(23Q@V(&#ERQ-@T V1!$'1FU@02 MI@Z=,'+&H'$19LR<.B[$U#%C)@R;-R[*D*FSB89/@YMJ? 6QR<;8JV'(@*@) MH@T;$'+>&*U99LZF&V/OU@!1T:"1)$R*D$#Q,86.D"#,I&%3QDV8-F4VX? Y MA4K&(C=A:(8A>6^3'CE4>,UA8T5H&35LZ$C2 \;AGR1R:MZ40R"4)TLP![3! MHLD+U*J/2 D"!4F2(5- N$;(40Z @0A(BI& 8 M8A0J& 0326B!V1 +@H!$$$X0$5A''\D A,O5H@""D80A (,*;30DV92OF90 M@EJ"\(1^4S!X! A"5&&$$1P).0-?21@4Q&!,&+8H"C&DT,,02$@Q&&HU.,JH MI)1:2E@-F>KPJ R2+JH#FCC"0$-)Z$V!V0@R/@$%@./%P (-+,# @@A+P"?# M?>*)T(<(.B"H((.9L2!#A"($0TTPTB0#2C/)$".M-,4,\XPTQ!0CC:\%FH@; M9C=PR,).,I1H+!4+!A@0"S,P.U)))Z44DU VX:23KSV)FR"[R/*F6K FO?'& M'&6 \(8;";]A!E N)?8&&U?=4=,9.OCJE;_'NJLK>,&B0$T*=='15AIDI*&P M47 8Y:M8' /L,0LY,(N"-"2/\88<9+Q\X!/_MIML0#9#DP(;8>3A*UXQ"_UN M@39/DT(8=I3AZV1-(_OTLB$SD\(;:5W]<]!:ZQI#O"%'DT(=:=#A:VU9S_Q1 MA$R8!\)(0J>A(:#Y$ M$:5+@?I_ :[>NH";S5CC$P(&Q%._MH>.PNB[EP[%[ZH#/?RZ69\3;^RCW,W^.NN_CGF:\=^B"(M7[LR+O/$ZCXT<_M MGI<[THWO"?83GNO,LC_M^6\&9@D@Z,!7P.B-+PH)U!X#N< 3 MD'XA!@I,"$(6)O@$'K%K""!@TI4X%Y"-(099E *3$XK A)O($&9&R A^>@#! MF""/-#*,H'AZ:!Y( $!$ TQ"XH @(CN!P DUP@R#9,BT,$J!+U600@^R8R.B M;1$+$2%"(&6(M37*H(UOW$$<$Q=).^*1"GH41@7$B J8EYB8+OE+5,25D'AM51B$1D49 C'>XX1S1A=H3*U8I% M0E(C-865RFU9RQG'B";3D&D>-+0-!&%P TG64 :E":F1ZP3*&T"@$I9$$VXG MPLQ'<(4N^5#._JI?O^Q.8!O,[$2*/ M>>" M#Q[!H$0$&:442JF^L4PC&-:(H?I^ MAJ)R^9 S7@$6"(15QW4);08_9-84@O <'8 !$5P0U!@HAC&. 8R/IAL5_XJ M$ I!H0H1^4M@2+!:YKGR2&F5Y5J'$*4I_40.=2F#R>:0AC?4=B]4V"L(:""? MU6ZLAD![5;QV&* 18!:(NI*M8%8+LS7.8 >/LE6C1N25"$+75>.)5V!OVA6' MBH=9')%"1G20L1V8%%(YR%1[AP2"8-G39&$ 3^5-B-S7JY%ZQTL6?0W%F8\ M(QC$" M1Q=588S55N.$U\86 M,-L52^UN"TNU.HFW=4(,<(0A$!&'9SW50O:L@ZH.YXP"^%60=0N;<4"/RT+ 0LO M*Z!GK?,Y^,(X4J AN"@W]SG0R,AT3=8 M-!8D'$%#,P%-./"*I!O-A$=G.@:2EC#3$HJ?(=B9!3?8,(H,'00DL"#*JL8, MJYGP:O3$NM1*IK5K2&UI7=_:TJ[&E(2Q5B3W#>8"3$,1XO@T0MM^=)U)>FWSXT$7M; H9_CMA1X MX(.SV2 FP.OO9.5=7WZ7$Z+HY- I;:K@LFQ&IR"(1C6H:O!6HC66LQ0!CGEI M%G59U+&Y,GB_ $0$LH10($1 2! RPU!5GUK'P= C:':[^S U-'NZ#7+PPZBS_.U#9UKA]QZ#Q3<> M[(_W^8#2GH.A8\WL.,>\VWU>>5TYB.VGESL,X%9XT4]&]/9.N[)HD'4T!L2A M9M>5[H.X>_E@7H84+7K-?1_Z@&2]^%N'/0R.'W;@EPCTRQ<]S$_N>,ZOG;G MI[K1V>[#XJO=5F@_6\YOOG+@EWW[..A^V+5N*R#:_6/6%_SM809ZYGI=_9B= M0?=I@/^T.^@C,P!\A+=]]G!^=X<:W;=XP"=Y1F MB(6RG(N!?A_"'AZ,3$<#%UB!LA<# MV!<0.5)_!V@VEI G8>#,S>!/\@"O.$^UG=W-MA^.?1\=2>$:T># M"ZB!/#B$?Z5]-7=S]B>"^V!.<=05'B!:M>!?S6 P]=VKU=\Z_=#-]!]*P=V M8MB$.?2!P\=T)ZAU27=W_)=VNI=#*SA\C\B!8)=T.K=_#(6""_Q=2 MUHC@#18B(KFB#9A.&!L)0:N>(-Q> 102%B/@T--"*K6@VY@*#MZ=U MLZB%(R=^S.A_6O=TKDB'TRA#W4-W9LAXL B--7!\)E=Y%VAR-D #V!B'9MB* MF:@K,_"",W"!NHAT[(>-?&AUH!)X\,*#O=>#]VB#LWB(5G>+W_>*_5B,T5AY M6/B.VCAR9E. \9B)TO@1J3>+GVAU:IAS*-B*U.@@="A#ZB-\ :EXW,A0]M> M&RAU552+SUB2MO* 9I-VC\5Y'BF,%JE_-,-S':*!5721UUA%SDAR/"F1UM>0 M8/B0'EF&STB%66>3"3B*K\AV/^B1Z/B,3'>27%B4(ZA_'EF/-[&)H8=V9A.. M--AS5>21 'D38QE].]F$LW=Z\KB6-Z@JE&AU-'"*O,AX1#E[47>7'EF1 B*# M;0I%> 27>2>OAN"]F58/A_\+)__8>!&;$D#2?A%2'D3-A"3BND@-IF&Z7*! MY1<0H!*9L#F"/8<:8-B#E7F C\F5NW@NC^B PJES-IB$R?6 M[N>*=N>6),E0#ZB'-J"2Q..9_U>73FF#N(*"K9E&-"F9>NF48,E[&;<;IMF4 M;,AX,WAS3\>8:32;2KB3Y4B0IW>'8[@;4TF;M]*2M,>3KLF8;[@;RDF.N-(" (.\$$D$ #&@"8 end