terpin@acsu.buffalo.edu (christophe d terpin) (03/28/91)
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:-Q9<N7FW"LC4&#!H@B9\YHI -" MRILP9#;E6"NDCAF.;-ZP .'$1187,6G(B%%C$XR :S/*<>D&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""-&<X#@&PBRG9%D'CCFMAAV:(3A(0@5S3%&AQHUA5D1;OR81PB>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<O"^\ M ? ,G*9'K+'(*LOLP@T/ ?'3OZK[@=7H9CVG;T!9[:[:!;>-\-M3,"R"%! K M3,2Q09 0L=4"G[BH0B+1 .E \$XK!V$\;2E'16Z<X1E56"G** B5LS!2YG'! M 4+G?+\D.@PTK P"$R#T<&(112R!@D@UI+""##78H,+'O?\^E,2:827B"$J: MP60>&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 <Q[S(F8YRM+N<#B(HN/95\'WQFU_][D>__.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<R0SAFYT-=I,Q*:B'E$^$ 2-S M$K9Z'2@-9?.,#:A332\VLIKJ$6<1;? >*Z#3"4U$$PR"L$Q4RD%6<"",A\80 MEXTLJ9MC>PD<Z2!._[BS"%)X@A1H"0.5Y,2>^-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[$,H<VS M+=U(0-,,PNQM0<PI+6"(3FB@#J&'G MH@KT#6&VA!$.@:U*9*#15\F95R8Z422FY.9+QS;%S8VHL&\X$ JN(+$;7 >O 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:<EW0$B&?$,#J@SA)DU4C?\3?&&3U0%FM&T1V.1\77( M\S%D@@"IR\SPCCT&LA&U <@A?L\>+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@32<L T=2I#Z 0K&E7 MY<22!/H-8LB@M21Y%08YN(ZH@X [30N52:M4-1E8[4L01 ;1[Q$U$VKMR*M% M\=2Y]K6US@ B7SL5UOX1-JF+38.C(/N2ORE+Z)K]ZAQ<2,E6(&41T&=5#%MK MK0=*P@N>H-*) @G6.85UGV$=N2W-B@Z)O0-,Z 4C.<QA$Z"I2D!V,P0B4"$_ MCLXCFF10;N!D2"..7BF0 D)C@^<GTXY<^+$=WN_]2EP. )\86RQN!%<I?$W7 MY;=&7#57T05DMD6@@A6$$.X\CKL&#D6M/N<KEC6$W#_D<8)WB.W$SYRV94WY M\"YO]) !CH$-:6ASR'\5<A;E1PI+:"3Q3(UK;'.\@3V2@\\#(J0E2H$)(LU, MP]%LV!:, 02[#+G Z:@:@@CS.A&-UWJ!LVT?VSHI5"<'7SGA.!DN[^,7P0 MZ'XAQ8, $@H0S&#?\&0OZR:GNA$26YH A9J=( ETGQ(!G: 0CU'ATS$PTT"4 MP/GNQ)R\3H"D9%WK.B7OBT+^ GB:JI-ZZIA^OT-H_0A.( 7=7V?TI8<"%6:@ M^\*SOO/#)(\4(-E?G@E0]V!._85,C]3@=W[X4- ]BY / M/30/>:?[[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 M<WO]8A;XAWDS("090P6P1P0 *'I,0 194#,*UFF[%E._\5ZYQQ<4<SM0@ 2Q M=SM$0$_D)5KGQ0)9 '"U,Q+>QX/\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""<Z\P;2XQ#S509?R!?C-X *P01'B(8Y,2-LZ )55 :N$QE4 M9$A\H7D9HQ)RF!-J. =L: 9UP 8' HEE029\(7H?^'AS" ) ]%9W,"]HL(7W M-'$VQ'LZ)!!F6 5)F(/T-'SAAATGHP,BP(+P!7*<D8"AQ83E]80[^%=6HB O M 1SR15^<\89.$(61,A+*6#-6X(1,8 );]U?]I""KUFH 5P.)=XU@D8U3 (4Y MQEP?5X^-!X>/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.<!#?*23# M1 7@X02.EH.(Z&BZQ5MY!A.O,08>,0<G:10"L9N=61A3"7")QALC2*!\EP-^ M)Q-5(Q.&HBX<0*!I8V.NZ ;\!)T$2G4RP2)68&/XZ$6CQ$W=."'Z60=M\(H^ M,7$YH'GI.)[F@1TO-B\*XB ^ P*3F'<#484C0&(A03$C(89D2&(N>EVKV(D] MBEP+26*+" *<Z );,R#1U*/6B)%#VH]>)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<AH1LK.9^/IP!Q,B^UFH"W M" D-T(O-EI_[6:GX=T.0$*&;<9>; 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=]-7<G6X15Z@)<Z95"X8 ]008O$*,9T2 D,JNB<[([=+)IR2XG^R:<RUM! M2UF"%1)](4PS&7/0FW@+20)/ ;VCVQWTBA#+E"4&";U&FZ<#RZ?Z^KPGR[3T MU+-NFUTE"[VBA[&,I+$T1#Q?BX\]&Q+%.!!'2UU*2SQSF[GZB[AY6D=4<$?Z M6WCXZ*J,JK_6RY(CX"I+JC7QV&XEZ6_Z>R&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,<!<-4QW#H8L,,)R3;(06"LE!4D 6+QW"B=X3T=*HC>D5E MD$5P818R<)4=O 372#-(\3/,&SYTL!I#=,9J2T^T-9/MJQ,!HB! RR7:A9!G M',#=8<"S-!!RO+=SX(AT< </D:_"NAHAT98# :2W4P0QF9P#,0>/_(MW\H5G M7'CR::J;NXK9,J+VQ&!L$,D/3$_JX9528 6TILH2K*/[U;'[I09I\!AR.@>> M? -)N4<K88!3@ 0*13,[H'+QDB1QP2!S@ ;H*UZW6C.4=L8724\HD$B+9#]Q M&[B86S-7MP0AL9I*B(CU>YO\BY'7'$;9',(SAJ<[V,H(!<NX\Z9N/'GW9L8X M<'RA/ *?9K?O007"3,R"U\$(=4T[ "H#E,1N,%#A?(_HC,U$0 3:G,D5K,1E M"IXC(9# ^HVH5A>#:K?CE\5;S&=4B';A'+]*1$#J'-$A4:#=@9$0S4@6]A([ M409'<J]TT=)(6JHQO0*.QE\=_1M39$\MG8#RHQ(C4+^QQJHJK4@1[=,MS:PY MX!\)<<F(2K=&8$HZQTQV0 9XLKK>QM319TS_FP/C]TEIU<:!Q!.?6L0K.A*B MM8W\)<9DO$4R@*..QU\&BZ\D2B<G"L= DG]2F8+\U;AP>I\(0GDCBU(CR1\W M4</4N0DWX7<W434W\:"1?1-I8Q!-@%"%X47JT1XW074WD3<O$3:]]76ATR / ML0;_=A-_,[DX@A$<=Y"B@<J2#6M5$8!%F"[)*MFVNA))T-G%%X""3$=V)+8Q MR]9WH"";%#I?&(#'1\DSR-F+6(&=**L@(B)V( 9I -R#V)OIX02N+,_+9&^T M#3U &W:N#=R&*'SOV+$]@@<C<F_1798_2H#5/=Q+6H?\^A(.!MRD2LZXF!.^ M^R$,$M22K7I@&P18QZ?ODB%@U]H+7L??$M/:O.!S.Y\+KL]-NW4+KL /O=(2 MG9-0TW@+B9L)4)]/BMY;!#4C/-[E'<M0TV=0(WHI.Y [0-,\<=-M+=GY-Q#I M&-,0WG6IQE[9!>3(==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 M<KDKB0562.G;DG1>A3:$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%M<N8[ M=.;4 >W35^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<Q^+6_^N2H6P:YWL[Z_LK\;KM=^962G<_,WO1W M&8/&CM'P 4KLYWY"/.TW%8-J3M+K!RCNU_1=?'C)<K\\:_6)5.[+-'_E ^\@ M=S C >[)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*@>8P8<Q,14T(/N97^1F("_-W!1?V!<KC*G\;X'8T:3 CCY /Y6YJHIKZ *[ M2%#HLT/HXW?H4S7H$VR]6?=388\EC8H+8%(U?=-343PCP>1U/TI7.'^. >6+ MASXQ7O>0CSZR7_> /Q4=.1)?3D,T$,/XB_9A!-4T,$U500,JF:.MY_B WX^& M#[2)#-U380/3#<P5Z)6Q-Q4[6?WKB_9W3P,VD'A5Z/B03P-(^:/ 7(%>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(<F9OY5++Q2J,Q4+/_DW\/F^7!4T ,V3[_)/3P,S M+UG7&E/2SSFW/Q6K:5(D.Y+6"L3./<343@/F3/Q&OQT(I5!3X?23CP.@7*KL MRXCA2P,XP+)2X+(0QJ=\[;F@2QA#/Q54_]+KNRC%Y;.+K5WY-!7FR>C-E;13 MX?6.EXJ!Y3H=X=<HVD]3X9\#(7B@%^E546V0O0%3H:!8005D^[EN11A$$%?I M ?SY-!5Y3_Q\KVC&0E93,=7=_*U9#:L[T+ED^[EN15#5MKT,W*BG&U<)7VTD MO[Z+4ES@7&V:)[\U0P)&< .PN@/@J_/X]MW5IOOKNRC%!<XVQ-1("UU7@5SL M#@D+L ,4[!OR6*)MP!]7X:L&814BY]L1F@>,"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$;<Y(D5S,:;_"3RY(H3VC% ""=N'/E-'#I^@!AA M8X<()D^"5'1RQ(5[$9L"^E1_,'Y $$F,'.0AD J2(DZ \!%G,<2PUVU30)3$ M$P'6P$(-X8U77A).4(%"$BK(]T(-,N"0@GDEB+!#?!^!<%MN$JV0! M!K-9# M$BO$H,,13UB6&6<##O13$T%0*!& 57@$0W:L53&%%"@TP>(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!\)(0<T!5QDZ\ZS5VV-WG.RO= .(PJ(?BG!W'D'=/949+\$WIW9%1 0K M"Y0^<5P1/-V77TF5#I;YYI**0(7B_M%*XQ15"'&C:S3:."=/)7[>J>A(:#Y$ M$:5+@?I_ :[>NH";S5CC$P(&Q%._MH>.PNB[EP[%[ZH#/?R<L!^?/&<S;-R\ MI]#SWH,(4U ?O/6N>Z69\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<<T_H%@=O(9"S6* M,0UJ3*M:TDJ&,T8H#6,$8QC%B,^0!#*$5KU*!C(LD:QH-0(9L 'N=J5%> 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"GH<E SA=LB(),$^FM$1%0(9("&% M$C'8TA:WA.2Y'A@)24H* I.<Y+L4L(@(2$)<C%(@I!)MISC'28X,8F0#0PED MC>41@7$B J8EYB8+OE+5,25D'AM51B$1D4<YQO$.>9 C'>XX1S1A=H3*U8I% M0E(C-865RFU9RQG'B";3D&D>-+0-!&%P TG64 :E":F1ZP3*&T"@$I9$$VXG MPLQ'<(4N^5#.<K8*@D<*9)MQ$0]7.(I!B= TJR(L@3 PR-0*@*."CG[T(S:( MDWIR20)>_JI?O^Q.<C)JQ<J1DBS8TY%!H,&,8&1#&"]<!D\TLY>8!O,[$2*/ M>>" M#Q<C%CT% $RDF%";:U0&L]@1BN& =5U4N,9H"CA,Z AN1F.\95)6E*3 M1# ]6Z[T<"V-T2U9FH(5-&JH!M+.<(#I'>[!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=58<W%&+)*E;+& )C@?@FRRZ%&/9T$KVI<D9C&->8S55N.$U\86 M,-L52^UN"TNU.HFW=4(,<!$VW.)*N%]",$Z:+/16Q/TF-881 GIZ4.26MH"D M0?ZD6#:67.+D3SZK><(0A$!&'9SW50O:L@ZH.YXP"^%60=0N;<4"/RT+ 0LO M<G.&5',<C'P&!]U3D9NQL!KD)*0'>*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(2Q5B3<OE4$:$BV*IA@!7)$B05FQH)O M#3(&J[QE##X6"]SBFY$>W#>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!5G<OD'['5#3#[$2!B]@;%E,]]0IZ0 M#V+60"P?T@]]V')XH9HW.*B!#%G+%Y'?I :X2OD/==7SE_.F0$]'^M#[1?.1 M*]T&-U 6#%S^\W/A^5PUP&QJAKZQJH. -.<R2Q!C$'1E\2;GMB(044%N=!EX MA69:9[IF\GZN'/BP>UK'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<VRO(T-N @->!^=X<:W;=XP"=Y1F<V,R!V0%1Z MYY)XUE<@0G=[GT> MB(6RG(N!?A_"'AZ,3<DK&=T]O<166=W>$<#%UB!LA<# MV!<0.5)_!V@VEI<N)&@K28> G8>#,S>!/\@"O.$^UG=W-MA^.?1\=2>$:T># M"ZB!/#B$?Z5]-7=S]B>"^V<K!K*#_I=#YS=\O%& ?G<N-%AY1VB#.YA#]+=] MED>!.<=05'B!:M>!?S6 P]=VKU=\Z_<NW0=!:9=#$EAS=E=[4>=#-]!]*P=V M8MB$.?2!P\=T)ZAU27=W_)=VNI=#*SA\C\B!8)=T.K=_#(6"<C<YH$>"_Q=2 MUH<IG'A]>C@#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;<AS)TF28 B,(15*K8>0I%> 27>2>OAN"]F58/A_\+)__8>!<B=P('D3-_"" MT:=TL-ATJ'@N7_23,="96G=\-H"'C,>&;$D#2?A%2'D3-A"3BND@-IF&Z7*! MY1<0H!*9L#F"/8<:8-B#E7F C\F5NW@NC^B PJES-IB$R?<KYNB;9XEV-AD0 MK1F(EF<K-ODKCSF71\=0S1F<R_E^?(=V=O=%?KF,+AB4:MF49%F-:828VY>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
rlcollins@miavx1.acs.muohio.edu (Ryan 'Gozar' Collins) (03/29/91)
After seeing the diagram for the MIDI interface I was wondering. How hard
would it be to hook it up to an ST through the MIDI ports, and be abel to
transfer data back and for? (Or even to use the ST as a pseudo disk drive
for the Atari. I'd be willing to write the software for the ST, hopefully
writing it as a DA so you can be using both your ST and your 8-bit at the
same time.)
Any thoughts or ideas?
------------------------------------------------------------------------------
Ryan 'Gozar' Collins Question for IBM Users: rlcollins@miavx1.BITNET
|||| Power Without How DO you move/copy a rc1dsanu@miamiu.BITNET
/ || \ The Price!! Subdirectory? R.COLLINS1 on GEnie
------------------------------------------------------------------------------
terpin@acsu.buffalo.edu (christophe d terpin) (04/03/91)
In article <4484.27f222d7@miavx1.acs.muohio.edu> rlcollins@miavx1.acs.muohio.edu (Ryan 'Gozar' Collins) writes: >After seeing the diagram for the MIDI interface I was wondering. How hard >would it be to hook it up to an ST through the MIDI ports, and be abel to >transfer data back and for? (Or even to use the ST as a pseudo disk drive >for the Atari. I'd be willing to write the software for the ST, hopefully >writing it as a DA so you can be using both your ST and your 8-bit at the >same time.) > >Any thoughts or ideas? > >------------------------------------------------------------------------------ >Ryan 'Gozar' Collins Question for IBM Users: rlcollins@miavx1.BITNET > |||| Power Without How DO you move/copy a rc1dsanu@miamiu.BITNET > / || \ The Price!! Subdirectory? R.COLLINS1 on GEnie >------------------------------------------------------------------------------ It would probably be fairly easy. In fact, I originally used my interface as an RS232 link to my IBM-PC to transfer data at 19200 baud. The 8bit software for this Null modem was virtually identical to the MIDI source code. The only differences were that it didn't insert the VBI timing marks during input ("recording") and the values for AUDF3 and AUDF4 were different. (I've seen a formula that relates AUDF3,AUDF4 to baud rate-- I believe it's in the Operating System listing.) The V: handler I wrote for the MIDI interface will work fine for SENDING data TO the ST: i.e. here's a basic 8bit program to transfer a file from your 8bit to your ST through the interface: 5 REM make sure D:MIDI.OBJ has been loaded 10 DIM FILE$(20) 20 PRINT "Enter filename to send";:INPUT FILE$ 30 CLOSE #1: OPEN #1,4,0,FILE$ 40 I=USR(39158,ASC("I")) : REM initialize handler 50 CLOSE #2: OPEN #2,8,0,"V:" 60 TRAP 80 70 GET #1,A:PUT #2,A:GOTO 70 80 CLOSE #1:CLOSE #2 The ST program would dump its MIDI data to some buffer. Unfortunately, I don't own an ST (which is what motivated me to build a MIDI in the first place :) ), so I have no idea how to access the MIDI port through the ST. The V: handler as I have written it, however, doesn't work very well for input nor does it use the normal SIO protocol. The source code would have to be modified by disabling the VBI timer routine in the RECORD section of the source. Using the new object code, the 8bit receive program goes something like this: 5 REM make sure modified MIDI.OBJ is loaded in. 10 DIM DATA$(20000) :REM buffer for received data 20 DIM FILE$(20) 30 DATA$(1)=CHR$(0):DATA$(20000)=CHR$(0):DATA$(2)=DATA$ 40 I=USR(39158, ASC("I"): REM init V: handler 50 CLOSE #1:OPEN #1,4,0,"K:" 60 PRINT "Hit any key to start receiving":GET #1,K 65 REM ST starts transmission here. 70 I=USR(39158, ASC("R"), ADR(DATA$)): POKE 204,1 80 PRINT "Hit any key to stop receiving": GET #1,K:POKE 204,0 90 PRINT "Filename to save data to?":INPUT FILE$ 100 CLOSE #2:OPEN #2,8,0,FILE$ 110 ?#2;DATA$; 120 CLOSE #2 To load in the object code you can use one of 2 methods: 1) POKE 106,153:GR.0:DOS & load binary file MIDI.OBJ 2) POKE 106,153:GR.0:XIO 41,#1,0,0,"D:MIDI.OBJ" The POKE is necessary to move the HIMEM page value down so that the screen data and the program don't overlap. Hope this helps. Chris Terpin terpin@ubunix.acsu.buffalo.edu
wallmann@ipsi.UUCP (Georg Wallmann) (04/08/91)
In article <68434@eerie.acsu.Buffalo.EDU> terpin@acsu.buffalo.edu (christophe d terpin) writes: >In article <4484.27f222d7@miavx1.acs.muohio.edu> rlcollins@miavx1.acs.muohio.edu (Ryan 'Gozar' Collins) writes: >>After seeing the diagram for the MIDI interface I was wondering. How hard >>would it be to hook it up to an ST through the MIDI ports, and be abel to >>transfer data back and for? (Or even to use the ST as a pseudo disk drive >>for the Atari. I'd be willing to write the software for the ST, hopefully >>writing it as a DA so you can be using both your ST and your 8-bit at the >>same time.) >> >>Any thoughts or ideas? >> >It would probably be fairly easy. In fact, I originally used my interface as >an RS232 link to my IBM-PC to transfer data at 19200 baud. The 8bit >software for this Null modem was virtually identical to the MIDI source code. >The only differences were that it didn't insert the VBI timing marks during >input ("recording") and the values for AUDF3 and AUDF4 were different. > (I've seen a formula that relates AUDF3,AUDF4 to baud rate-- I believe it's in >the Operating System listing.) > But to get any kind of speed better use the parallel port on the ST and the (sadly overused) joystick ports and the serial port on the 8-bit. I have something like this working and the hardware is simplicity itself just a schmitt-trigger IC and two resistors (apart from the cables). Unfortunately on the software side the ST is single-tasking, which takes some of the fun away and my stab at making the ST multitask apparently fails with TOS 1.4, although I haven't investigated that yet. If I get my head out of this ocean of work to get some oxygen and maybe enough time to rewrite the server for Micro RTX or MiNT I will release this stuff. The server is unstable at the moment, meaning that you shouldn't try to run programs while using the server on the ST. Just to brag a little, this can be done: N: device handler 98% SpartaDOS eq. with SpartaDOS 2.X, you can do stuff like D1: N: # typed from memory, syntax maybe not 100% correct N: DIR N: CWD N:E:/FOOBLE>BAR\TMP N: COPY TMP/BIGFILE.DAT D8: N: COPY D8:BIGFILE.DAT N:TMP N: CREDIR LILO Transferring DEGELITE.PRG (approx 150K) takes not much more than 15 sec from RAMdisk to RAMdisk. If you don't mind occasional crashes, I could send interested parties the prototype server and device driver software (binaries only, sorry). Beats any Null modem transfer anytime, anyway! Email to : XBR1DE7B@DDATH21.BITNET Ah, yes and asking this for maybe the tenth time... "How does one write a device driver for the X cartridge ?" The interface BTW looks like this: ------- port a ------<<<>>>---------------- parallel port ST ---- ------- port b ------- IRQ Pin 13 SIO ---------<<<------- Strobe Centronics ---- ------- Motor Pin 7or8 SIO -->>>-- 1K --+-[IC]-- Busy Centronics - | 1K | Ground As you may be able to tell, this makes using the tape recorder impossible. TOO BAD! (har har) Nat! "If there's a new way, I'll be the first in line/But it better work this time" [Mustaine]
Ordania-DM@cup.portal.com (Charles K Hughes) (04/09/91)
George Wallman writes: >Ah, yes and asking this for maybe the tenth time... "How does one write >a device driver for the X cartridge ?" One doesn't. :) There is no documentation AT ALL for programming the SDX cart available to anyone other than what is given in the SDX manual. I've argued with ICD about this and they maintain that there is no info available. We all know that this is a crock of shit, but they are quite adamant about it. > > Charles_K_Hughes@cup.portal.com