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: Re: MIDI interface for 8-bits: Source Code Keywords: MIDI, 8-bits Message-ID: <66114@eerie.acsu.Buffalo.EDU> Date: 18 Mar 91 22:24:12 GMT References: <1906@swrinde.nde.swri.edu> Sender: news@acsu.Buffalo.EDU Organization: SUNY Buffalo Lines: 293 Nntp-Posting-Host: autarch.acsu.buffalo.edu Below is the assembly source code for the homemade Atari 8 bit interface. I'm sorry I didn't post this sooner, but I've been working on a way to overlay tracks. My Spring Break is next week (3/25-4/1) so I will finally have time to write up the details on the complete system. In the meantime, the uuencoded source code below is the heart of the system (it was written using the Atari Assembler Cartridge). For those of you who know a little electronics, Midi pinouts, and the pinouts of the Atari Serial I/O connector, the basic interface consists of running the serial output through two ttl 7404 inverters to the Midi Input of your keyboard. The Midi Output from the synth is hooked to the base of an emitter-follower transistor with the emitter tied to the serial input of the Atari. I would recommend running the midi i/o through very fast optical isolators, especially if you are using a costly synthesizer. You might also want to use a three-state buffer instead of the 7404 so that you can turn off the interface when doing normal serial i/o. Anyway, BE CAREFUL. Next week I will post a complete schematic & a BASIC program that allows you to record, playback, AND overlay tracks (this part of the program still has a couple of bugs) as well as save and load songs to disk. ------------------------(cut here)--------------------------- begin 600 midi.asm M,3 @("Y4251,12 B071A6)A8VLZFS U-# @.R!)/5534B@S.30R-"Q!4T,H M(E B*2Q!1%(H020I+$%$4BA!)"DK3"PQ*9LP-34P(#LM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2V;,#4V," [('1O(')E8V]R9"!"('=H:6QE('!L M87EI;F<@03J;,#4W," [($D]55-2*#,Y-#(T+$%30R@B4B(I+$%$4BA")"DL M,2F;,#4X," [(%!/2T4@,C T+#$@.DD]55-2*#,Y-#(T+$%30R@B4"(I+$%$ M4BA!)"DL0412*$$D*2M,+#$I.E!/2T4@,C T+#";,#4Y," [+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TMFS V,# @.YLP-C$P(#L@(&5Q=6%T97.; M,#8R," [FS V,S @055$0U1,/21$,C X(#L@<&]K97D@;,#8W,"!0 M3$%90E5&(#T@)$-&(#L@<&]I;G1E2!P2!C:#0@.F)A=61H:9LP-SDP(%A-5$1/3CTD M,T$@(#L@=')A;G-M:70@9&]N92!F;&%GFS X,# @4U-+0U1,/20R,S(@.R!S M97)I86P@<&]R="!C;VYT;,3$S,"!315160E8@/2 D130U0R [('-E="!V8FQA;FN;,3$T,"!# M3TY33TP@/2 D1# Q1B [('5S960@9F]R(&ME>6)O87)D(&-L:6-KFS$Q-3 @ M.YLQ,38P(#N;,3$W," @*CT@)#E!,#";,3$X," [FS$Q.3 @.YLQ,C P(%-4 M05)4FS$R,3 @(%!,09LQ,C(P("!03$&;,3(S," @4$Q!(" @(" @(" @(&=E M="!C;VUM86YDFS$R-# @.YLQ,C4P("!#35 @(R=)FS$R-C @($).12!/4%0R MFS$R-S @($I-4"!3151(04Y$(" [('-E='5P($-)3R!H86YD;&5RFS$R.# @ M.YLQ,CDP($]05#(@0TU0(",G4ILQ,S P("!"3D4@3U!4,YLQ,S$P("!*35 @ M4D5#3U)$(" @.R!M:61I(')E8V]R9)LQ,S(P(#N;,3,S,"!/4%0S($--4" C M)U";,3,T," @0DY%($]05#2;,3,U," @2DU0(%!,05E"04-+(#L@;6ED:2!P M;&%Y8F%C:YLQ,S8P(#N;,3,W,"!/4%0T($--4" C)T.;,3,X," @0DY%($Y/ M3U!4FS$S.3 @($I-4"!215-%5" @.R!R97-E="!S97(@<&]R=)LQ-# P($Y/ M3U!4(%-%0R @(" @.R!E;,34U," @4T5#(" @ M(" @(" [('EEF%T:6]NFS$Y,# @.RTM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TMFS$Y,3 @5D-,3U-%FS$Y,C @5D]014X@ M3$1!(",PFS$Y,S @(%-402!-3T1%FS$Y-# @5DE.252;,3DU,"!215154DXQ M($Q$62 C,2 [(')E='5R;B!S=6-C97-SFS$Y-C @3D]&54Y#(%)44YLQ.3

; M,C$X," @3$19(",Q(" @(" @(" @(&5X:72;,C$Y," @4E13(" @(" @(" @ M(" @('=I=&@@2&;,C(W,"!#3TY4(%-402!34TM#5$P@.R!S M970@=&AE('-E6)O87)D(&EN M=&5R7!E2!R96=I;,CDP," @4U1!(%)%0U9$3ILR.3$P("!03$$@(" @ M65S M+BXNFS,Q,3 @(%-402 H0E5&041$*2Q9(#L@;6%R:R!B=69F97(FFS,Q,C @ M($E.0R!"549!1$0@(" @(#L@:6YC6)A8VL@ M8G5F9F5RFS,V-C @(%!,09LS-C65S M+BYR97-E="!I=)LS.3@P("!,1$$@0T@@(" @(" [(&YO+BZ;,SDY," @0TU0 M(",Q-#8@(" @.R!I9B!C;G1L+6,@=V%SFS0P,# @($)%42!84$Q90DX@(" @ M:&ET('1H96X@<75I=)LT,#$P("!,1$$@1$].19LT,#(P("!#35 @(S";-# S M," @0D51($1%3$%9(" @.R!N;RXN+FME97 @=V%I=&EN9YLT,#0P("!25%,@ M(" @(" @.R!Y97,N+F5X:72;-# U," [FS0P-C @.YLT,#