home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_01
/
MIDICOM.LZH
/
MC_DRIVE.R
/
DRIVER.MID
/
MC_DRIVE.H
< prev
Wrap
C/C++ Source or Header
|
1993-10-21
|
2KB
|
67 lines
/* Schnittstellen-Treiber für MIDI-COM */
/***************************************/
/* Über einen COOKIE-Eintrag <MCDR> werden MIDI_COM die folgenden */
/* vier Funktionen in der Struktur <io_port> zur Verfügung gestellt.*/
/* damit sollte es nun möglich sein, MIDI_COM auch mit beliebigen */
/* Schnittstellen zu betreiben. */
/* Fehler-Überprüfungen müssen nicht stattfinden, da MIDI-COM eine */
/* eigene CRC-Prüfsumme benutzt. */
typedef struct
{
/* SENDE schickt LEN+1 Bytes aus buff über die Schnittstelle */
/* z.B.: SENDE(49,&FOO); sendet 50 Bytes (0..49) */
void (*SENDE)(int LEN,char *buff);
/* LESE versucht <len> bytes aus dem Schnittstellenbuffer nach <buff>
zu kopieren. Diese Funktion darf nicht blokieren, falls <len> Bytes
nach einer gewissen Zeit nicht eingetroffen sind
LESE == 0 wenn die angeforderte Anzahl von bytes gelesen werden
konnten
!= 0 Irgend ein Fehler ist aufgetreten */
long (*LESE)(int len,char *buff);
/* CLEAR_BUFF führt einen RESET auf dem Schnittstellenpuffer durch */
void (*CLEAR_BUFF)(void);
/* STATUS == -1 wenn Zeichen im Schnittstellenpuffer vorhanden sind
== 0 keine Zeichen verfügbar*/
int (*STATUS)(void);
/* Fuell-STATUS == -1 zuwenig Zeichen im Schnittstellenpuffer vorhanden
== 0 genug Zeichen verfügbar*/
int (*Fuellung)(void);
}io_port;
static void MSEND(int LEN,char *buff);
static long LESE(int len,char *buff);
static void MIDEIN(void);
static int mdstat(void);
static int fil_request(void);
io_port port={MSEND,LESE,MIDEIN,mdstat,fil_request};
#ifndef _COOKIE_H
#define _COOKIE_H
union clong {
char aschar[4];
long aslong;
};
struct cookie {
union clong tag;
long value;
};
typedef struct cookie COOKIE;
#define CJAR ((COOKIE **) 0x5a0L)
#endif /* _COOKIE_H */