home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / MIDICOM.LZH / MC_DRIVE.R / DRIVER.MID / MC_DRIVE.H < prev   
C/C++ Source or Header  |  1993-10-21  |  2KB  |  67 lines

  1. /* Schnittstellen-Treiber für MIDI-COM */
  2. /***************************************/    
  3.  
  4. /* Über einen COOKIE-Eintrag <MCDR> werden MIDI_COM die folgenden    */
  5. /* vier Funktionen in der Struktur <io_port> zur Verfügung gestellt.*/
  6. /* damit sollte es nun möglich sein, MIDI_COM auch mit beliebigen    */
  7. /* Schnittstellen zu betreiben.                                     */
  8.  
  9. /* Fehler-Überprüfungen müssen nicht stattfinden, da MIDI-COM eine  */
  10. /* eigene CRC-Prüfsumme benutzt.                                     */
  11.  
  12. typedef struct 
  13. {
  14. /* SENDE schickt LEN+1 Bytes aus buff über die Schnittstelle */
  15. /* z.B.: SENDE(49,&FOO); sendet 50 Bytes (0..49)             */
  16.     void (*SENDE)(int LEN,char *buff);
  17.  
  18. /* LESE versucht <len> bytes aus dem Schnittstellenbuffer nach <buff>
  19.    zu kopieren. Diese Funktion darf nicht blokieren, falls <len> Bytes
  20.    nach einer gewissen Zeit nicht eingetroffen sind 
  21.    LESE == 0 wenn die angeforderte Anzahl von bytes gelesen werden 
  22.              konnten
  23.         != 0 Irgend ein Fehler ist aufgetreten  */
  24.    
  25.    long (*LESE)(int len,char *buff);
  26.  
  27. /* CLEAR_BUFF führt einen RESET auf dem Schnittstellenpuffer durch */    
  28.    void (*CLEAR_BUFF)(void);
  29.  
  30. /* STATUS == -1 wenn Zeichen im Schnittstellenpuffer vorhanden sind
  31.           ==  0 keine Zeichen verfügbar*/
  32.     int  (*STATUS)(void);
  33.  
  34. /* Fuell-STATUS == -1 zuwenig Zeichen im Schnittstellenpuffer vorhanden
  35.                 ==  0 genug Zeichen verfügbar*/
  36.     int  (*Fuellung)(void);
  37. }io_port;
  38.  
  39. static void MSEND(int LEN,char *buff);
  40. static long LESE(int len,char *buff);
  41. static void MIDEIN(void);
  42. static int mdstat(void);
  43. static int fil_request(void);
  44.  
  45. io_port    port={MSEND,LESE,MIDEIN,mdstat,fil_request};
  46.  
  47.  
  48. #ifndef _COOKIE_H
  49. #define _COOKIE_H
  50.  
  51. union clong {
  52.     char    aschar[4];
  53.     long    aslong;
  54. };
  55.  
  56. struct cookie {
  57.     union clong tag;
  58.     long value;
  59. };
  60.  
  61. typedef struct cookie COOKIE;
  62.  
  63. #define CJAR    ((COOKIE **) 0x5a0L)
  64.  
  65. #endif /* _COOKIE_H */
  66.  
  67.