The following text is a construction article for building your own MIDI
interface for the Commodore 64 or Commodore 128 cartridge port.  If you are
used to building digital electronic projects, you should be able to put one
together in a few days for about $25 worth of parts.  However, this is not
a project for the inexperienced - wiring this circuitry onto a board small
enough to fit into a cartridge case requires a good eye, a steady hand, and
a lot of patience.

If you don't even know what a MIDI interface is, it means Musical Instrument
Digital Interface, and is used to communicate with MIDI capable musical
instruments.  MIDI is an electronic music industry standard.  The C64 was
one of the first computers to be used extensively for MIDI applications.

Don't even think of downloading this file to your C64, there is absolutely
no reason to do so, since it is just a text file that you can print on your
local host, and besides it contains lots of characters that aren't even on
some Commodore compatible printers.  When you print this out, make sure you
allow a full 66 lines per printer page in order to fit the schematic on one
page by itself.

Following the construction article is a PostScript program which you can send
to an Apple Laser Writer (or any PostScript compatible printer) to get a really
high quality printout of the construction schematic.  But don't fret if you
don't have access to one of these - the ASCII version of the schematic below
is quite servicable.

If you do build this MIDI interface, or simply buy one, be sure to look for
my package "The MIDI-SID CONNECTION", to be uploaded to the UXMAZE server soon.
I will also entertain the idea of uploading other public domain MIDI software
if there is enough interest.  Just let me know.

Sincerely,
Frank Prindle
Prindle@NADC.navy.mil


----------------------------------cut here-------------------------------------
               ____ COMMODORE 64 TRI-STANDARD MIDI INTERFACE              
              |xtal|                                       .----------.
   *----------|-||-|----------*         *------------------|11      14|----<+5V
   |      2Mhz|____|          |         |                  |  74LS293 |
   |                          |         |               *--|4   12   7|----*   
   *--\/\/\--*      *--\/\/\--*         |               |  '----------'    |
   |    2.2K |      |    2.2K |         |    15    1    |        |         |
   |  |\     |      |  |\     |  |\     *-----@    @    @        *---------*
   |  | \    |  ||  |  | \    |  | \    |          |   16                  |
   *--|  >o--*--||--*--|  >o--*--|  >o--*     *----*                       V
      | /  500pf||     | /       | /          |    |     *---<+5V         GND
      |/               |/        |/         Rx|  Tx|     |
                                           CLK| CLK|  Vcc|
                +5V>-----*----\/\/\---*     .--------------.
                         |     270    |     | 3    4    12 | ___    ___
MIDI-IN DIN Jack     .-------.        |     |             7|-IRQ--->IRQ (Pin 4)
 5<>--------------*--|2  6   |        |     |              |
                  |  |      4|--------*--Rx-|2           10|-CS1------------@14
 2<>--N/C   diode V  |  PC-  |          DATA|              |
                 --- |  900  |              |            11|-RS---->A0  (Pin Y)
            220   |  |      5|------*       |              |   _
 4<>-------\/\/\--*--|1      |      |       |            13|-R/W------------@12
                     '-------'      V       |     6850     |
                                   GND      |     ACIA   14|-E----->02  (Pin E)
                      /|       /|           |              |
MIDI-OUT DIN Jack    / |      / |           |            15|-D7---->D7 (Pin 14)
 5<>----\/\/\------o<  |----o<  |--------Tx-|6           16|-D6---->D6 (Pin 15)
         220         \ |      \ |       DATA|            17|-D5---->D5 (Pin 16)
 2<>---*              \|       \|           |            18|-D4---->D4 (Pin 17)
       |                                    |            19|-D3---->D3 (Pin 18)
       V                                    |            20|-D2---->D2 (Pin 19)
      GND   220                 |\          |            21|-D1---->D1 (Pin 20)
 4<>-------\/\/\---<+5V         | \         |            22|-D0---->D0 (Pin 21)
                            *---|  >o-*-CS0-|8             |
                            |   | /   |     | 9   5 1 23 24|
        |\                  |   |/    |     '--------------'
        | \             |   |         @       |   | | |  |
A6 <----|  >o-----------|2  |         4   @---*   *-*-*--*-------*
(Pin S) | /             |   |            11  ___  _   _ ___      |
        |/   |\         |   |                CS2  R V D CTS      V
             | \        |   |                     T s C         GND
A5 <---------|  >o------|1  |                     S s D    
(Pin T)      | /        |   |       
        |\   |/         |   *-----*   
        | \             |--_      |                       6@------->A1 (Pin X)
A4 <----|  >o-----------|3  \     |                                            
(Pin U) | /             | 74 \  8 |                       2@------->A2 (Pin W)
        |/   |\         |LS30 |o--*                                            
             | \        |    /                            3@------->A3 (Pin V) 
 @-----------|  >o------|12 /                                         _        
13           | /        |---                              5@------->R/W (Pin 5)
        |\   |/         |                                                      
___     | \             |                    
IO1<----|  >o-----------|11            NOTES:
(Pin 7) | /             |              1. All inverter/buffers are (1/6)74LS366
        |/  +5V         |                 with pins 1, 8, and 15 grounded; pin
             ^      *---|4                16 supplied with +5V. 2 chips needed.
             |      |   |              2. A .01 uf bypass capacitor from Vcc to
+5V<---------*------*---|5                GND at each chip is not a bad idea.
(Pin 2)             |   |              3. The PC900 optoisolator available from
                    *---|6                MIX Bookshelf, 6400 Hollis St. #12,
        7   GND     |   |                 Emeryville, CA 94608; price $3.00 PP.
        @    ^      *---|14(Vcc)       4. All (Pin #) numbers refer to the C64
        |    |          |                 cartridge port connector CN6.
GND<----*----*----------|7 (GND)       5. All @ symbol numbers refer to pins on
(Pin 1)                 |                 a 16-pin personality select socket.


This interface must be configured for a particular standard by plugging
jumpers (or a jumpered DIP header) into the personality socket.  The jumpers
required for each standard are as follows:

    Passport Standard        Sequential Standard        Siel/JMS Standard
    -----------------        -------------------        -----------------
         1 - 16                    1 - 16                     1 - 15
         3 - 14                    4 - 14                     2 - 14
         2 - 13                    3 - 13                     3 - 13
         5 - 12                    6 - 12                     6 - 12
         6 - 11                    2 - 11                     7 - 11


To add a MIDI-THRU output jack, it will be necessary to add another 74LS366
chip, since two more inverters are required.  Simply connect the output from
pin 4 of the PC900 optoisolator to the following circuit in addition to pin
2 of the 6850:
                                                    
                      /|       /|    
MIDI-THRU DIN Jack   / |      / |    
 5<>----\/\/\------o<  |----o<  |--------- from pin 4 of PC900
         220         \ |      \ |
 2<>---*              \|       \|
       |
       V
      GND   220
 4<>-------\/\/\---<+5V


A 6N138 optoisolator is the only acceptable substitute for the PC900.  It is
available from retail parts distributors such as Active Electronics.  Its pin-
out is different:
                      PC900 Pin         Corresponding 6N138 Pin
                         1                         2
                         2                         3
                         4                         6
                         5                         5
                         6                         8

Radio-Shack optoisolators are not an acceptible substitute!

Resist the temptation to ground the outer shell contact of any DIN jack, or
pin 2 of the MIDI-IN DIN jack.  Doing so violates the MIDI standard and can
cause all sorts of ground-loop problems depending on the cables used.  The
MIDI interface sold by DATEL has this flaw.

Please consult the Motorola MC6850 Data Sheets for details on programming the
6850.  As you can see, all three interface standards are very similar.  The
differences are in the frequency of the 6850 clock and the addressing of the
6850 registers.  These differences are summarized in the following table:

                                 Siel/JMS      Passport     Sequential
 Control Register Address          DE04          DE08          DE00
 Transmit Data Register Address    DE05          DE09          DE01
 Status Register Address           DE06          DE08          DE02
 Receive Data Register Address     DE07          DE09          DE03
 Master Chip Reset Command          03            03            03
 Enable Xmit/Rcv Command            16            15            15
 Enable Xmit/Rcv + Rcv Interrupt    96            95            95
 Enable Xmit/Rcv + Xmit Interrupt   36            35            35
 Enable Xmit/Rcv + Both Interrupts  B6            B5            B5


One final note: any software package which uses the "smart" features of a
specific interface (i.e. it's on-board clock(s), tape/drum sync, foot switch
interfaces, etc.) will probably not work unmodified with this simple MIDI
(UART only) interface.  However, a vast majority of public-domain S/W will
work fine as long as the standard supported is one of the 3 above and the
hardware and software standards match.  Also beware that the Siel/JMS
standard (also DATEL) is the LEAST likely to be supported by software in
the U.S. (Passport is perhaps the MOST supported, with Sequential running a
close second).

Sincerely,
Frank Prindle
Prindle@NADC.arpa

--------------------- Cut Here - PostScript document follows ------------------
%!PS-Adobe-1.0
%%Title: minterface3
%%Creator: f2ps-sun3
%%CreationDate: Thu Aug 31 16:12:08 1989
%%For: prindle@tweety (Frank Prindle,703,x2537)
%%Pages: 1
%%BoundingBox: 47 49 565 743
%%EndComments
/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
 /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def
 end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog
$F2psBegin
29.000000 760.000000 translate 0.900 -0.900 scale
1.066666667 setlinewidth
newpath 174.000 599.000 60.000 -90.000 90.000 arc stroke
% Ellipse
newpath 364 119 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 364 119 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 324 119 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 324 119 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 284 119 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 284 119 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 181 119 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 241 119 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 91 119 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 177 339 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 227 339 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 489 239 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 489 239 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 489 279 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 489 279 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 291 419 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 289 469 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 469 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 289 559 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 559 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 289 579 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 289 579 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 599 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 599 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 289 619 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 289 619 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 639 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 639 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 69 599 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 69 599 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 121 639 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 146 599 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 121 559 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 146 519 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 121 479 3 3 0 360 DrawEllipse stroke
% Ellipse
newpath 239 599 5 5 0 360 DrawEllipse stroke
% Ellipse
newpath 289 519 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 289 519 2 2 0 360 DrawEllipse stroke
% Ellipse
newpath 44 785 4 4 0 360 DrawEllipse stroke
% Ellipse
newpath 44 785 2 2 0 360 DrawEllipse stroke
% Polyline
newpath 451 439 moveto 457 439 lineto stroke
% Polyline
newpath 451 424 moveto 456 424 lineto stroke
% Polyline
newpath 451 409 moveto 457 409 lineto stroke
% Polyline
newpath 451 394 moveto 457 394 lineto stroke
% Polyline
newpath 451 379 moveto 457 379 lineto stroke
% Polyline
newpath 451 364 moveto 457 364 lineto stroke
% Polyline
newpath 451 349 moveto 456 349 lineto stroke
% Polyline
newpath 451 334 moveto 457 334 lineto stroke
% Polyline
newpath 454 409 moveto 494 409 lineto stroke
% Polyline
newpath 505 293 moveto 501 306 lineto stroke
% Polyline
newpath 442 299 moveto 445 299 lineto stroke
% Polyline
newpath 457 239 moveto 459 239 lineto stroke
% Polyline
newpath 451 259 moveto 454 259 lineto stroke
% Polyline
newpath 439 99 moveto 439 119 lineto 464 119 lineto stroke
% Polyline
newpath 214 679 moveto 214 645 lineto stroke
% Polyline
newpath 214 510 moveto 214 553 lineto stroke
% Polyline
newpath 254 429 moveto 254 434 lineto stroke
% Polyline
newpath 254 434 moveto 254 599 lineto 244 599 lineto stroke
% Polyline
newpath 84 249 moveto 94 249 lineto stroke
% Polyline
newpath 349 503 moveto 356 503 lineto stroke
% Polyline
newpath 389 503 moveto 396 503 lineto stroke
% Polyline
newpath 369 503 moveto 375 503 lineto stroke
% Polyline
newpath 305 487 moveto 326 487 lineto stroke
% Polyline
newpath 294 519 moveto 304 519 lineto stroke
% Polyline
newpath 304 419 moveto 304 469 lineto 294 469 lineto stroke
% Polyline
newpath 329 479 moveto 329 519 lineto 304 519 lineto stroke
% Polyline
newpath 394 479 moveto 394 499 lineto stroke
% Polyline
newpath 374 479 moveto 374 499 lineto stroke
% Polyline
newpath 354 479 moveto 354 499 lineto 454 499 lineto 454 499 lineto stroke
% Polyline
newpath 414 459 moveto 454 459 lineto 454 519 lineto stroke
% Polyline
newpath 294 419 moveto 314 419 lineto stroke
% Polyline
newpath 254 429 moveto 254 419 lineto 264 419 lineto stroke
% Polyline
newpath 459 279 moveto 484 279 lineto stroke
% Polyline
newpath 459 239 moveto 484 239 lineto stroke
% Polyline
newpath 449 273 moveto 457 273 lineto stroke
% Polyline
newpath 435 212 moveto 456 212 lineto stroke
% Polyline
newpath 489 434 moveto 494 439 lineto 489 444 lineto stroke
% Polyline
newpath 489 419 moveto 494 424 lineto 489 429 lineto stroke
% Polyline
newpath 489 404 moveto 494 409 lineto 489 414 lineto stroke
% Polyline
newpath 489 389 moveto 494 394 lineto 489 399 lineto stroke
% Polyline
newpath 489 374 moveto 494 379 lineto 489 384 lineto stroke
% Polyline
newpath 489 359 moveto 494 364 lineto 489 369 lineto stroke
% Polyline
newpath 489 344 moveto 494 349 lineto 489 354 lineto stroke
% Polyline
newpath 489 329 moveto 494 334 lineto 489 339 lineto stroke
% Polyline
newpath 489 294 moveto 494 299 lineto 489 304 lineto stroke
% Polyline
newpath 489 254 moveto 494 259 lineto 489 264 lineto stroke
% Polyline
newpath 454 439 moveto 494 439 lineto stroke
% Polyline
newpath 454 424 moveto 494 424 lineto stroke
% Polyline
newpath 454 394 moveto 494 394 lineto stroke
% Polyline
newpath 454 379 moveto 494 379 lineto stroke
% Polyline
newpath 454 364 moveto 494 364 lineto stroke
% Polyline
newpath 454 349 moveto 494 349 lineto stroke
% Polyline
newpath 454 334 moveto 494 334 lineto stroke
% Polyline
newpath 444 299 moveto 494 299 lineto stroke
% Polyline
newpath 454 259 moveto 494 259 lineto stroke
% Polyline
newpath 489 214 moveto 494 219 lineto 489 224 lineto stroke
% Polyline
newpath 459 219 moveto 494 219 lineto stroke
% Polyline
newpath 414 439 moveto 434 439 lineto stroke
% Polyline
newpath 414 334 moveto 434 334 lineto stroke
% Polyline
newpath 414 349 moveto 434 349 lineto stroke
% Polyline
newpath 414 364 moveto 434 364 lineto stroke
% Polyline
newpath 414 379 moveto 434 379 lineto stroke
% Polyline
newpath 414 394 moveto 434 394 lineto stroke
% Polyline
newpath 414 409 moveto 434 409 lineto stroke
% Polyline
newpath 414 424 moveto 434 424 lineto stroke
% Polyline
newpath 414 299 moveto 434 299 lineto stroke
% Polyline
newpath 414 279 moveto 434 279 lineto stroke
% Polyline
newpath 414 259 moveto 434 259 lineto stroke
% Polyline
newpath 414 239 moveto 434 239 lineto stroke
% Polyline
newpath 414 219 moveto 434 219 lineto stroke
% Polyline
newpath 179 394 moveto 174 399 lineto 179 404 lineto stroke
% Polyline
newpath 79 394 moveto 74 399 lineto 79 404 lineto stroke
% Polyline
newpath 79 364 moveto 74 369 lineto 79 374 lineto stroke
% Polyline
newpath 79 334 moveto 74 339 lineto 79 344 lineto stroke
% Polyline
newpath 79 394 moveto 84 399 lineto 79 404 lineto stroke
% Polyline
newpath 79 364 moveto 84 369 lineto 79 374 lineto stroke
% Polyline
newpath 79 334 moveto 84 339 lineto 79 344 lineto stroke
% Polyline
newpath 84 369 moveto 114 369 lineto 114 379 lineto stroke
% Polyline
newpath 159 399 moveto 174 399 lineto stroke
% Polyline
newpath 84 399 moveto 124 399 lineto stroke
% Polyline
newpath 84 339 moveto 124 339 lineto stroke
% Polyline
newpath 159 339 moveto 174 339 lineto stroke
% Polyline
newpath 254 339 moveto 314 339 lineto stroke
% Polyline
newpath 204 339 moveto 224 339 lineto stroke
% Polyline
newpath 84 279 moveto 94 279 lineto stroke
% Polyline
newpath 84 219 moveto 94 219 lineto stroke
% Polyline
newpath 79 274 moveto 74 279 lineto 79 284 lineto stroke
% Polyline
newpath 79 274 moveto 84 279 lineto 79 284 lineto stroke
% Polyline
newpath 79 244 moveto 74 249 lineto 79 254 lineto stroke
% Polyline
newpath 79 244 moveto 84 249 lineto 79 254 lineto stroke
% Polyline
newpath 79 214 moveto 74 219 lineto 79 224 lineto stroke
% Polyline
newpath 79 214 moveto 84 219 lineto 79 224 lineto stroke
% Polyline
newpath 164 254 moveto 184 254 lineto stroke
% Polyline
newpath 179 244 moveto 174 254 lineto 169 244 lineto stroke
% Polyline
newpath 169 244 moveto 179 244 lineto stroke
% Polyline
newpath 174 219 moveto 174 244 lineto stroke
% Polyline
newpath 174 254 moveto 174 279 lineto stroke
% Polyline
newpath 169 254 moveto 179 254 lineto stroke
% Polyline
newpath 119 279 moveto 94 279 lineto stroke
% Polyline
newpath 194 279 moveto 154 279 lineto stroke
% Polyline
newpath 194 219 moveto 94 219 lineto stroke
% Polyline
newpath 254 279 moveto 284 279 lineto 284 299 lineto stroke
% Polyline
newpath 169 174 moveto 174 179 lineto 169 184 lineto stroke
% Polyline
newpath 224 179 moveto 174 179 lineto stroke
% Polyline
newpath 274 179 moveto 284 179 lineto 284 219 lineto stroke
% Polyline
newpath 224 199 moveto 224 179 lineto 234 179 lineto stroke
% Polyline
newpath 254 219 moveto 314 219 lineto stroke
% Polyline
newpath 194 199 moveto 254 199 lineto 254 299 lineto 194 299 lineto 194 199 lineto stroke
% Polyline
newpath 459 154 moveto 454 159 lineto 459 164 lineto stroke
% Polyline
newpath 404 179 moveto 404 159 lineto 454 159 lineto stroke
% Polyline
newpath 364 179 moveto 364 144 lineto 324 144 lineto stroke
% Polyline
newpath 314 479 moveto 314 179 lineto stroke
% Polyline
newpath 414 479 moveto 314 479 lineto stroke
% Polyline
newpath 414 474 moveto 414 474 lineto stroke
% Polyline
newpath 414 179 moveto 414 479 lineto stroke
% Polyline
newpath 314 179 moveto 414 179 lineto stroke
% Polyline
newpath 324 124 moveto 324 179 lineto stroke
% Polyline
newpath 534 139 moveto 554 139 lineto stroke
% Polyline
newpath 538 143 moveto 550 143 lineto stroke
% Polyline
newpath 542 147 moveto 547 147 lineto stroke
% Polyline
newpath 259 119 moveto 279 119 lineto stroke
% Polyline
newpath 259 119 moveto 259 59 lineto stroke
% Polyline
newpath 44 79 moveto 59 79 lineto stroke
% Polyline
newpath 64 119 moveto 44 119 lineto 44 39 lineto 109 39 lineto stroke
% Polyline
newpath 244 119 moveto 259 119 lineto stroke
% Polyline
newpath 189 79 moveto 199 79 lineto stroke
% Polyline
newpath 199 119 moveto 199 39 lineto 129 39 lineto stroke
% Polyline
newpath 209 119 moveto 214 119 lineto stroke
% Polyline
newpath 114 29 moveto 114 49 lineto stroke
% Polyline
newpath 109 39 moveto 114 39 lineto stroke
% Polyline
newpath 124 29 moveto 124 49 lineto 119 49 lineto 119 29 lineto 124 29 lineto stroke
% Polyline
newpath 129 29 moveto 129 49 lineto stroke
% Polyline
newpath 139 119 moveto 139 79 lineto 154 79 lineto stroke
% Polyline
newpath 104 119 moveto 104 79 lineto 94 79 lineto stroke
% Polyline
newpath 184 119 moveto 209 119 lineto stroke
% Polyline
newpath 124 109 moveto 124 129 lineto stroke
% Polyline
newpath 119 109 moveto 119 129 lineto stroke
% Polyline
newpath 124 119 moveto 154 119 lineto stroke
% Polyline
newpath 94 119 moveto 119 119 lineto stroke
% Polyline
newpath 179 119 moveto 154 94 lineto 154 144 lineto 179 119 lineto stroke
% Polyline
newpath 149 79 moveto 154 79 lineto 157 74 lineto 162 84 lineto 167 74 lineto 172 84 lineto 177 74 lineto 182 84 lineto 184 79 lineto 189 79 lineto stroke
% Polyline
newpath 239 119 moveto 214 94 lineto 214 144 lineto 239 119 lineto stroke
% Polyline
newpath 54 79 moveto 59 79 lineto 62 74 lineto 67 84 lineto 72 74 lineto 77 84 lineto 82 74 lineto 87 84 lineto 89 79 lineto 94 79 lineto stroke
% Polyline
newpath 89 119 moveto 64 94 lineto 64 144 lineto 89 119 lineto stroke
% Polyline
newpath 259 59 moveto 384 59 lineto stroke
% Polyline
newpath 384 59 moveto 384 29 lineto 504 29 lineto 504 99 lineto 384 99 lineto 384 59 lineto stroke
% Polyline
newpath 504 59 moveto 544 59 lineto stroke
% Polyline
newpath 464 99 moveto 464 119 lineto 544 119 lineto 544 139 lineto stroke
% Polyline
newpath 369 119 moveto 404 119 lineto 404 99 lineto stroke
% Polyline
newpath 489 99 moveto 489 119 lineto stroke
% Polyline
newpath 549 54 moveto 544 59 lineto 549 64 lineto stroke
% Polyline
newpath 234 179 moveto 239 179 lineto 242 174 lineto 247 184 lineto 252 174 lineto 257 184 lineto 262 174 lineto 267 184 lineto 269 179 lineto 274 179 lineto stroke
% Polyline
newpath 282 307 moveto 287 307 lineto stroke
% Polyline
newpath 278 303 moveto 290 303 lineto stroke
% Polyline
newpath 274 299 moveto 294 299 lineto stroke
% Polyline
newpath 119 279 moveto 124 279 lineto 127 274 lineto 132 284 lineto 137 274 lineto 142 284 lineto 147 274 lineto 152 284 lineto 154 279 lineto 159 279 lineto stroke
% Polyline
newpath 179 339 moveto 204 364 lineto 204 314 lineto 179 339 lineto stroke
% Polyline
newpath 229 339 moveto 254 364 lineto 254 314 lineto 229 339 lineto stroke
% Polyline
newpath 119 339 moveto 124 339 lineto 127 334 lineto 132 344 lineto 137 334 lineto 142 344 lineto 147 334 lineto 152 344 lineto 154 339 lineto 159 339 lineto stroke
% Polyline
newpath 119 399 moveto 124 399 lineto 127 394 lineto 132 404 lineto 137 394 lineto 142 404 lineto 147 394 lineto 152 404 lineto 154 399 lineto 159 399 lineto stroke
% Polyline
newpath 112 387 moveto 117 387 lineto stroke
% Polyline
newpath 108 383 moveto 120 383 lineto stroke
% Polyline
newpath 104 379 moveto 124 379 lineto stroke
% Polyline
newpath 500 212 moveto 521 212 lineto stroke
% Polyline
newpath 289 419 moveto 264 394 lineto 264 444 lineto 289 419 lineto stroke
% Polyline
newpath 452 527 moveto 457 527 lineto stroke
% Polyline
newpath 448 523 moveto 460 523 lineto stroke
% Polyline
newpath 444 519 moveto 464 519 lineto stroke
% Polyline
newpath 294 639 moveto 434 639 lineto stroke
% Polyline
newpath 515 613 moveto 522 613 lineto stroke
% Polyline
newpath 489 634 moveto 494 639 lineto 489 644 lineto stroke
% Polyline
newpath 489 614 moveto 494 619 lineto 489 624 lineto stroke
% Polyline
newpath 489 594 moveto 494 599 lineto 489 604 lineto stroke
% Polyline
newpath 489 574 moveto 494 579 lineto 489 584 lineto stroke
% Polyline
newpath 489 554 moveto 494 559 lineto 489 564 lineto stroke
% Polyline
newpath 494 639 moveto 434 639 lineto 434 659 lineto stroke
% Polyline
newpath 294 619 moveto 494 619 lineto stroke
% Polyline
newpath 294 599 moveto 494 599 lineto stroke
% Polyline
newpath 294 579 moveto 494 579 lineto stroke
% Polyline
newpath 294 559 moveto 494 559 lineto stroke
% Polyline
newpath 432 667 moveto 437 667 lineto stroke
% Polyline
newpath 428 663 moveto 440 663 lineto stroke
% Polyline
newpath 424 659 moveto 444 659 lineto stroke
% Polyline
newpath 204 679 moveto 224 679 lineto stroke
% Polyline
newpath 208 683 moveto 220 683 lineto stroke
% Polyline
newpath 212 687 moveto 217 687 lineto stroke
% Polyline
newpath 119 639 moveto 94 614 lineto 94 664 lineto 119 639 lineto stroke
% Polyline
newpath 144 599 moveto 119 574 lineto 119 624 lineto 144 599 lineto stroke
% Polyline
newpath 119 559 moveto 94 534 lineto 94 584 lineto 119 559 lineto stroke
% Polyline
newpath 144 519 moveto 119 494 lineto 119 544 lineto 144 519 lineto stroke
% Polyline
newpath 119 479 moveto 94 454 lineto 94 504 lineto 119 479 lineto stroke
% Polyline
newpath 124 479 moveto 174 479 lineto stroke
% Polyline
newpath 149 519 moveto 174 519 lineto stroke
% Polyline
newpath 124 559 moveto 174 559 lineto stroke
% Polyline
newpath 149 599 moveto 174 599 lineto stroke
% Polyline
newpath 124 639 moveto 174 639 lineto stroke
% Polyline
newpath 64 479 moveto 94 479 lineto stroke
% Polyline
newpath 64 519 moveto 119 519 lineto stroke
% Polyline
newpath 64 559 moveto 94 559 lineto stroke
% Polyline
newpath 64 639 moveto 94 639 lineto stroke
% Polyline
newpath 69 474 moveto 64 479 lineto 69 484 lineto stroke
% Polyline
newpath 69 514 moveto 64 519 lineto 69 524 lineto stroke
% Polyline
newpath 69 554 moveto 64 559 lineto 69 564 lineto stroke
% Polyline
newpath 69 634 moveto 64 639 lineto 69 644 lineto stroke
% Polyline
newpath 74 599 moveto 119 599 lineto stroke
% Polyline
newpath 34 632 moveto 56 632 lineto stroke
% Polyline
newpath 219 504 moveto 214 509 lineto 209 504 lineto stroke
% Polyline
newpath 134 679 moveto 134 719 lineto 174 719 lineto stroke
% Polyline
newpath 134 699 moveto 174 699 lineto stroke
% Polyline
newpath 134 679 moveto 174 679 lineto stroke
% Polyline
newpath 64 719 moveto 134 719 lineto stroke
% Polyline
newpath 69 714 moveto 64 719 lineto 69 724 lineto stroke
% Polyline
newpath 94 719 moveto 94 694 lineto stroke
% Polyline
newpath 94 694 moveto 99 689 lineto stroke
% Polyline
newpath 94 694 moveto 89 689 lineto stroke
% Polyline
newpath 174 469 moveto 174 729 lineto stroke
% Polyline
newpath 564 764 moveto 584 764 lineto stroke
% Polyline
newpath 568 768 moveto 580 768 lineto stroke
% Polyline
newpath 572 772 moveto 577 772 lineto stroke
% Polyline
newpath 479 704 moveto 479 744 lineto stroke
% Polyline
newpath 479 744 moveto 579 744 lineto 579 704 lineto 479 704 lineto stroke
% Polyline
newpath 489 704 moveto 489 689 lineto stroke
% Polyline
newpath 494 684 moveto 489 689 lineto 484 684 lineto stroke
% Polyline
newpath 369 744 moveto 369 754 lineto 574 754 lineto 574 744 lineto stroke
% Polyline
newpath 429 744 moveto 429 754 lineto stroke
% Polyline
newpath 454 744 moveto 454 754 lineto stroke
% Polyline
newpath 489 744 moveto 489 754 lineto stroke
% Polyline
newpath 549 744 moveto 549 754 lineto stroke
% Polyline
newpath 574 754 moveto 574 764 lineto stroke
% Polyline
newpath 359 704 moveto 359 744 lineto 459 744 lineto 459 704 lineto 364 704 lineto stroke
% Polyline
newpath 359 704 moveto 374 704 lineto stroke
% Polyline
newpath 369 704 moveto 369 689 lineto stroke
% Polyline
newpath 369 689 moveto 374 684 lineto stroke
% Polyline
newpath 369 689 moveto 364 684 lineto stroke
/Courier-Bold findfont 13.333333 scalefont setfont
499 304 moveto 1 -1 scale (O2 \(Pin E\)) show 1 -1 scale
420 471 moveto 1 -1 scale (Vss) show 1 -1 scale
19 499 moveto 1 -1 scale (\(Pin S\)) show 1 -1 scale
99 254 moveto 1 -1 scale (N/C) show 1 -1 scale
104 144 moveto 1 -1 scale (560pf) show 1 -1 scale
434 94 moveto 1 -1 scale (13) show 1 -1 scale
204 644 moveto 1 -1 scale (7) show 1 -1 scale
59 789 moveto 1 -1 scale (indicates a pin on the 16-pin personality select DIP socket.) show 1 -1 scale
34 279 moveto 1 -1 scale (Jack) show 1 -1 scale
34 264 moveto 1 -1 scale (DIN) show 1 -1 scale
34 249 moveto 1 -1 scale (IN) show 1 -1 scale
224 734 moveto 1 -1 scale (\(1/6\)74LS366) show 1 -1 scale
209 719 moveto 1 -1 scale (All inverters are) show 1 -1 scale
289 414 moveto 1 -1 scale (CS0) show 1 -1 scale
34 399 moveto 1 -1 scale (Jack) show 1 -1 scale
34 384 moveto 1 -1 scale (DIN) show 1 -1 scale
34 369 moveto 1 -1 scale (OUT) show 1 -1 scale
399 224 moveto 1 -1 scale (7) show 1 -1 scale
389 544 moveto 1 -1 scale (S) show 1 -1 scale
389 529 moveto 1 -1 scale (T) show 1 -1 scale
389 514 moveto 1 -1 scale (C) show 1 -1 scale
369 544 moveto 1 -1 scale (D) show 1 -1 scale
369 529 moveto 1 -1 scale (C) show 1 -1 scale
369 514 moveto 1 -1 scale (D) show 1 -1 scale
349 544 moveto 1 -1 scale (S) show 1 -1 scale
349 529 moveto 1 -1 scale (T) show 1 -1 scale
349 514 moveto 1 -1 scale (R) show 1 -1 scale
279 369 moveto 1 -1 scale (DATA) show 1 -1 scale
289 354 moveto 1 -1 scale (Tx) show 1 -1 scale
279 249 moveto 1 -1 scale (DATA) show 1 -1 scale
289 234 moveto 1 -1 scale (Rx) show 1 -1 scale
304 499 moveto 1 -1 scale (CS2) show 1 -1 scale
269 524 moveto 1 -1 scale (11) show 1 -1 scale
274 474 moveto 1 -1 scale (4) show 1 -1 scale
324 474 moveto 1 -1 scale (9) show 1 -1 scale
349 474 moveto 1 -1 scale (5) show 1 -1 scale
364 474 moveto 1 -1 scale (23) show 1 -1 scale
384 474 moveto 1 -1 scale (24) show 1 -1 scale
404 464 moveto 1 -1 scale (1) show 1 -1 scale
349 319 moveto 1 -1 scale (ACIA) show 1 -1 scale
349 304 moveto 1 -1 scale (6850) show 1 -1 scale
379 174 moveto 1 -1 scale (Vcc) show 1 -1 scale
319 424 moveto 1 -1 scale (8) show 1 -1 scale
499 284 moveto 1 -1 scale (12) show 1 -1 scale
499 244 moveto 1 -1 scale (14) show 1 -1 scale
499 264 moveto 1 -1 scale (A0 \(Pin Y\)) show 1 -1 scale
499 224 moveto 1 -1 scale (IRQ \(Pin 4\)) show 1 -1 scale
434 444 moveto 1 -1 scale (D0) show 1 -1 scale
434 429 moveto 1 -1 scale (D1) show 1 -1 scale
434 414 moveto 1 -1 scale (D2) show 1 -1 scale
434 399 moveto 1 -1 scale (D3) show 1 -1 scale
434 384 moveto 1 -1 scale (D4) show 1 -1 scale
434 369 moveto 1 -1 scale (D5) show 1 -1 scale
434 354 moveto 1 -1 scale (D6) show 1 -1 scale
434 339 moveto 1 -1 scale (D7) show 1 -1 scale
434 304 moveto 1 -1 scale (E) show 1 -1 scale
434 284 moveto 1 -1 scale (R/W) show 1 -1 scale
434 264 moveto 1 -1 scale (RS) show 1 -1 scale
434 244 moveto 1 -1 scale (CS1) show 1 -1 scale
434 224 moveto 1 -1 scale (IRQ) show 1 -1 scale
394 304 moveto 1 -1 scale (14) show 1 -1 scale
394 284 moveto 1 -1 scale (13) show 1 -1 scale
394 264 moveto 1 -1 scale (11) show 1 -1 scale
394 244 moveto 1 -1 scale (10) show 1 -1 scale
394 444 moveto 1 -1 scale (22) show 1 -1 scale
394 429 moveto 1 -1 scale (21) show 1 -1 scale
394 414 moveto 1 -1 scale (20) show 1 -1 scale
394 399 moveto 1 -1 scale (19) show 1 -1 scale
394 384 moveto 1 -1 scale (18) show 1 -1 scale
394 369 moveto 1 -1 scale (17) show 1 -1 scale
394 354 moveto 1 -1 scale (16) show 1 -1 scale
394 339 moveto 1 -1 scale (15) show 1 -1 scale
319 344 moveto 1 -1 scale (6) show 1 -1 scale
184 404 moveto 1 -1 scale (+5V) show 1 -1 scale
129 239 moveto 1 -1 scale (diode) show 1 -1 scale
129 299 moveto 1 -1 scale (220) show 1 -1 scale
129 419 moveto 1 -1 scale (220) show 1 -1 scale
129 329 moveto 1 -1 scale (220) show 1 -1 scale
84 394 moveto 1 -1 scale (4) show 1 -1 scale
84 364 moveto 1 -1 scale (2) show 1 -1 scale
84 334 moveto 1 -1 scale (5) show 1 -1 scale
34 354 moveto 1 -1 scale (MIDI-) show 1 -1 scale
199 284 moveto 1 -1 scale (1) show 1 -1 scale
199 224 moveto 1 -1 scale (2) show 1 -1 scale
84 274 moveto 1 -1 scale (4) show 1 -1 scale
84 244 moveto 1 -1 scale (2) show 1 -1 scale
84 214 moveto 1 -1 scale (5) show 1 -1 scale
34 234 moveto 1 -1 scale (MIDI-) show 1 -1 scale
244 284 moveto 1 -1 scale (5) show 1 -1 scale
244 224 moveto 1 -1 scale (4) show 1 -1 scale
219 214 moveto 1 -1 scale (6) show 1 -1 scale
144 184 moveto 1 -1 scale (+5V) show 1 -1 scale
244 169 moveto 1 -1 scale (270) show 1 -1 scale
204 254 moveto 1 -1 scale (PC900) show 1 -1 scale
319 224 moveto 1 -1 scale (2) show 1 -1 scale
464 164 moveto 1 -1 scale (+5V) show 1 -1 scale
394 194 moveto 1 -1 scale (12) show 1 -1 scale
359 194 moveto 1 -1 scale (4) show 1 -1 scale
319 194 moveto 1 -1 scale (3) show 1 -1 scale
339 174 moveto 1 -1 scale (CLK) show 1 -1 scale
344 159 moveto 1 -1 scale (Tx) show 1 -1 scale
299 174 moveto 1 -1 scale (CLK) show 1 -1 scale
304 159 moveto 1 -1 scale (Rx) show 1 -1 scale
354 109 moveto 1 -1 scale (16) show 1 -1 scale
319 109 moveto 1 -1 scale (1) show 1 -1 scale
274 109 moveto 1 -1 scale (15) show 1 -1 scale
59 69 moveto 1 -1 scale (2.2K) show 1 -1 scale
134 34 moveto 1 -1 scale (2Mhz.) show 1 -1 scale
154 69 moveto 1 -1 scale (2.2K) show 1 -1 scale
389 64 moveto 1 -1 scale (11) show 1 -1 scale
484 64 moveto 1 -1 scale (14) show 1 -1 scale
399 94 moveto 1 -1 scale (4) show 1 -1 scale
459 94 moveto 1 -1 scale (12) show 1 -1 scale
484 94 moveto 1 -1 scale (7) show 1 -1 scale
414 49 moveto 1 -1 scale (74LS293) show 1 -1 scale
554 64 moveto 1 -1 scale (+5V) show 1 -1 scale
499 339 moveto 1 -1 scale (D7 \(Pin 14\)) show 1 -1 scale
499 354 moveto 1 -1 scale (D6 \(Pin 15\)) show 1 -1 scale
499 369 moveto 1 -1 scale (D5 \(Pin 16\)) show 1 -1 scale
499 384 moveto 1 -1 scale (D4 \(Pin 17\)) show 1 -1 scale
499 399 moveto 1 -1 scale (D3 \(Pin 18\)) show 1 -1 scale
499 414 moveto 1 -1 scale (D2 \(Pin 19\)) show 1 -1 scale
499 429 moveto 1 -1 scale (D1 \(Pin 20\)) show 1 -1 scale
499 444 moveto 1 -1 scale (D0 \(Pin 21\)) show 1 -1 scale
274 644 moveto 1 -1 scale (7) show 1 -1 scale
274 624 moveto 1 -1 scale (5) show 1 -1 scale
274 604 moveto 1 -1 scale (3) show 1 -1 scale
274 584 moveto 1 -1 scale (2) show 1 -1 scale
499 644 moveto 1 -1 scale (GND \(Pin 1\)) show 1 -1 scale
499 624 moveto 1 -1 scale (R/W \(Pin 5\)) show 1 -1 scale
499 604 moveto 1 -1 scale (A3 \(Pin V\)) show 1 -1 scale
499 584 moveto 1 -1 scale (A2 \(Pin W\)) show 1 -1 scale
499 564 moveto 1 -1 scale (A1 \(Pin X\)) show 1 -1 scale
274 564 moveto 1 -1 scale (6) show 1 -1 scale
39 484 moveto 1 -1 scale (A6) show 1 -1 scale
39 524 moveto 1 -1 scale (A5) show 1 -1 scale
19 539 moveto 1 -1 scale (\(Pin T\)) show 1 -1 scale
39 564 moveto 1 -1 scale (A4) show 1 -1 scale
19 579 moveto 1 -1 scale (\(Pin U\)) show 1 -1 scale
44 604 moveto 1 -1 scale (13) show 1 -1 scale
34 644 moveto 1 -1 scale (IO1) show 1 -1 scale
19 659 moveto 1 -1 scale (\(Pin 7\)) show 1 -1 scale
179 564 moveto 1 -1 scale (3) show 1 -1 scale
179 604 moveto 1 -1 scale (12) show 1 -1 scale
179 644 moveto 1 -1 scale (11) show 1 -1 scale
224 604 moveto 1 -1 scale (8) show 1 -1 scale
179 484 moveto 1 -1 scale (2) show 1 -1 scale
179 524 moveto 1 -1 scale (1) show 1 -1 scale
199 499 moveto 1 -1 scale (+5V) show 1 -1 scale
34 724 moveto 1 -1 scale (+5V) show 1 -1 scale
19 739 moveto 1 -1 scale (\(Pin 2\)) show 1 -1 scale
79 684 moveto 1 -1 scale (+5V) show 1 -1 scale
179 684 moveto 1 -1 scale (4) show 1 -1 scale
179 704 moveto 1 -1 scale (5) show 1 -1 scale
179 724 moveto 1 -1 scale (6) show 1 -1 scale
179 584 moveto 1 -1 scale (74LS30) show 1 -1 scale
199 564 moveto 1 -1 scale (14) show 1 -1 scale
354 679 moveto 1 -1 scale (+5V) show 1 -1 scale
474 679 moveto 1 -1 scale (+5V) show 1 -1 scale
364 719 moveto 1 -1 scale (16) show 1 -1 scale
484 719 moveto 1 -1 scale (16) show 1 -1 scale
364 739 moveto 1 -1 scale (1) show 1 -1 scale
484 739 moveto 1 -1 scale (1) show 1 -1 scale
449 739 moveto 1 -1 scale (8) show 1 -1 scale
419 739 moveto 1 -1 scale (15) show 1 -1 scale
539 739 moveto 1 -1 scale (15) show 1 -1 scale
569 739 moveto 1 -1 scale (8) show 1 -1 scale
389 724 moveto 1 -1 scale (74LS366) show 1 -1 scale
509 724 moveto 1 -1 scale (74LS366) show 1 -1 scale
showpage
$F2psEnd

Due to the overwhelming response I received when I mentioned that I had
once built a MIDI interface for a Commodore 64, I thought it would be best
if I posted this information:

The May 1986 issue of Electronic Musician magazine has a how-to article on
how to build a MIDI interface for the C64. (I built mine before this article
was published, and haven't tried it.)  The interface uses a Vector Electronics 
37695-1DP Plugboard proto board, modified to fit into the expansion slot of the
C64.  A 7474 D flipflop is used to divide  the C64's 1 MHz "phase two"
clock down to 500 MHz, which is fed to the RX and TX clock inputs of a 
6850 ACIA, which provides the UART functions.  The unbuffered phase two clock
is fed to the phase two input of the UART.  The rest of the circuit is
pretty much out of the MIDI spec.  Here are the expansion slot pin assignments:
(* = NOT)
pin#	name on 6850:	name on C64:
4	*IRQ		*IRQ
7	*CS2		*I/O 1
X	R/W		A1
Y	RS		A0
14	D7		D7
15	D6		D6
16	D5		D5
17	D4		D4
18	D3		D3
19	D2		D2
20	D1		D1
21	D0		D0
2			+5V
3			+5V (paralleled with pin 2)
22			Gnd
A			Gnd (paralleled)

There are basically two de-facto standards for MIDI interfaces on the C64.
The original was by Seqential Circuits.  I have no information on that.
The later one was by Passport Designs.  That interface used a
6850 ACIA chip, with its registers at addresses: 56840 (control)
and 56841 (data), decimal.  There was also a 6840 programmable timer
onboard, and here are its addresses:
56832	control register 1
56833	control register 2
56834	High byte timer 1
56835	Low byte timer 1
56836	High byte timer 2
56837	Low byte timer 2
56838 	High byte timer 3 (RESERVED)
56839	Low byte timer 3 (RESERVED)

There was also a drum sync circuit, which I know very little about.  I guess
it was a set-reset latch:
56880	Drum sync SET
56888	Drum sync CLEAR

For more information on these chips, look at their datasheets.

Now, don't start writing me for a lot of more specific information about the
MIDI interface.  I suggest that anyone attempting to build their own C64
interface get a copy of the "Commodore 64 programmer's reference guide,"
which is what I worked out of (I no longer have this book, having sold it
along with my C64 years ago).  It contains address maps, schematics, and other
information you'll find handy for the C64.  In addition, get a copy of the 
MIDI 1.0 Specification.  It has schematics for the interface side of the
UART, plus the information you'll need to write MIDI software.  It can be
purchased from the International Midi Association.  The last address I had
for them is probably out of date (anybody know a newer address?), but, for
what it's worth, it's:

The International MIDI Association
8426 Vine Valley Drive
Sun Valley, CA 91352
(213)768-7448


This should be enough background information for a technical type to be able
to build a Passport-compatible C64 MIDI interface.  (By the way, mine wasn't
compatible with anything, since, when I built it, I had no idea what parts
had been used by Passport or Sequential.  Oh well...)

Good luck!
                 - Jim Smith  smithj@hpsad.sad.hp.com
            Yupatupata da yupadupa chickida, Icktang icktang, 
            Ickitack tangdow, Rickitickatar ticka chingtar da.
