[rec.music.synth] How fast is a parallel port ?

jkm@astro.as.utexas.edu (James McCarthy) (03/09/91)

In [comp.periphs.printers] article <1991Feb28.10505>, Mike Murphey writes ...
> ...
> Back in the days when you could actually buy a Centronics 101, Centronics
> had a specification for the interface.  Now that nobody remembers what a
> Centronics 101 looks like, people don't pay as much attention to the spec as
> they might.  The original spec (correct me if I'm wrong) was for 250KByte/sec,
> i.e., 4us/byte transfer rate.  The 101 would accept data at 4us/byte until the
> line buffer filled, then go busy until the line printed (as in about 1/60 sec
> busy whilst waiting for the mechanical stuff to move).  This is really bursty
> behavior.  So, drivers for printers on parallel ports would do something like
> the following in an interrupt routine:
>  
>  A: if done with user buffer, print request complete and exit interrupt
>     if printer busy, then exit interrupt routine
>     get a character from the user buffer
>     print the character
>     go back to A
> 
> The 4us was short enough so that the time between "print the character"
> and "if printer busy" in the loop meant that the printer wasn't busy except
> when the mechanical stuff had to move (or the paper jammed or something broke)
> ....
>---
> Mike Murphy  mrm@Sceard.COM  ucsd!sceard!mrm  +1 619 598 5874

This discussion in comp.periphs.printers regarding the Centronics printer inter-
face prompts me to wonder about the feasibility of a PARALLEL interface to MIDI
(Musical Instrument Digital Interface -- serial current loop at 31.25Kbaud, 5mA
on/off signal in a typical serial protocol of 1 start bit followed by eight data
bits and one stop bit -- serial MIDI interfaces using 9600 [or even 19.2K] baud
aren't really fast enough).  An article in _Computer_Music_Journal_, vol. 10,
no. 3 (Fall 1986), pp.79-82 discusses "A MIDI Output Interface to a [Centronics]
Parallel Printer Port" and gives a schematic and timing diagrams.  BUT, it is
only a one-way interface (computer ---> musical instrument); today's MIDI key-
boards transmit event codes thru a separate "MIDI OUT" port, and ideally the
parallel I/O interface should accept these data as well with a "MIDI IN" port.

[ Sorry if this is too basic for you, but (i) I'm still fairly new to MIDI and
 (ii) I'm cross-posting this to several non-MIDI groups since I'm really after
  computer hardware information ... but I'm getting ahead of myself .... ]

Indeed from the ref_manual of my computer/dinosaur it appears both are possible:
my UCSD Pascal p-machine uses an ``8255A Programmable Peripheral Interface'' IC
chip behind its 37-pin parallel port, and by default the p-system configures the
parallel port to provide 8-bit parallel _input_ and _output_ capability through
this port.  The manual, however, doesn't say much more about _input_ but only
goes on to discuss the parallel-port-to-Centronics-cable-wiring necessary for
the proper _output_ handshakes ... using a small subset of the 37-pins on the
computer's parallel port.

Has anyone out there in net-land ever heard of this 8255A parallel I/O chip ?
Can you point me towards some [old??] documentation ???  Do typical "parallel
[printer] ports" on most of today's computers also have provision for 8-bit
parallel *input* as well as output ?  (it seems to me the best modern-day MIDI
interfaces are cards for expansion slots [with direct access to the bus], but
they're therefore very computer-specific [which won't help me w/ my dinosaur];
the other approach these days is to drive the MIDI interface from the serial
port, but again this isn't really fast enough, and/or requires buffering the
MIDI computer input).   Followup please to rec.music.synth, or e-mail to me.

                                        Thanks in advance,

                                              -- Jim McCarthy
                                                 7201 Wood Hollow Dr. #326
                                                 Austin, TX  78731
                                                 (512) 346-7892
                                                 jkm@astro.as.utexas.edu

--------------
     Assuming I get this interface built someday, I'd also like to hear from
  folks writing their own [UCSD?] Pascal software for MIDI applications.  I'm
  the new owner of a used Ensoniq Mirage digital sampling keyboard ....
     At the risk of embarrassing myself further (and causing laughter among
  the comp.* readers of this post :-), my `dinosaur' computer is a Western
  Digital "Pascal Microengine" [WD/90 or ME/1600] UCSD P-system w/ 128K RAM
  -- technology circa 1979 but still running !!
______________
  Disclaimer:
     It goes without saying this has nothing at all to do with astronomy....
------------------------------------------------------------------------------