home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / MIDICOM.LZH / MC_DRIVE.R / DRIVER.SER / MC_DRIVE.H < prev   
C/C++ Source or Header  |  1993-10-21  |  2KB  |  65 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. /* Fuell-STATUS ==   0 zuwenig Zeichen im Schnittstellenpuffer vorhanden
  34.                 ==  1 genug Zeichen verfügbar*/
  35.     int  (*Fuellung)(void);
  36. }io_port;
  37.  
  38. static void MSEND(int LEN,char *buff);
  39. static long LESE(int len,char *buff);
  40. static void MIDEIN(void);
  41. static int mdstat(void);
  42. static int fil_request(void);
  43.  
  44. io_port    port={MSEND,LESE,MIDEIN,mdstat,fil_request};
  45.  
  46. #ifndef _COOKIE_H
  47. #define _COOKIE_H
  48.  
  49. union clong {
  50.     char    aschar[4];
  51.     long    aslong;
  52. };
  53.  
  54. struct cookie {
  55.     union clong tag;
  56.     long value;
  57. };
  58.  
  59. typedef struct cookie COOKIE;
  60.  
  61. #define CJAR    ((COOKIE **) 0x5a0L)
  62.  
  63. #endif /* _COOKIE_H */
  64.  
  65.