home *** CD-ROM | disk | FTP | other *** search
- {
- COMM.PAS een toolbox met RS232 communicatie functie's en procedure's
- geschreven door Joris Mulder, Oktober 1990.
- Versie 2, zomer 1991
- Bij deze unit hoort het bestand COMM.OBJ en COMM.TXT
-
- Zie ook COMM.TXT voor informatie over deze toolbox.
- }
-
- {$R-} { geen Range Check }
- {$S-} { geen Stack Check }
- {$A+} { gebruik minimaal words ! }
- {$D-} { geen Debug informatie }
-
- Unit Comm;
-
- INTERFACE
-
- Const COM1 = 1; { deze constanten kunnen worden }
- COM2 = 2; { in de OpenPoort procedure }
- B_300 = 1; {}
- B_600 = 2; {}
- B_1200 = 3; {}
- B_2400 = 4; { Alleen deze BaudRate's zijn }
- B_4800 = 5; { mogelijk }
- B_9600 = 6; {}
- B_19200 = 7; {}
- B_38400 = 8; {}
- NoParity = 0;
- EvenParity = 1;
- OddParity = 2;
-
- BaudRateTabel : Array[1..8] of word = (
- 300, 600, 1200, 2400, 4800, 9600, 19200, 38400);
-
- Function MaxCommPoort : byte; { resultaat is x in COMx }
- Function OpenPoort(COMpoort, { COM1 of COM2 }
- BaudRate, { 1=300, 2=600, zie boven }
- DataBits, { 7 of 8 databits }
- StopBits, { 1 of 2 stopbits }
- Pariteit : word) { 0 = geen, 1 = even, 2 = oneven }
- : byte; { resultaat : }
- { 0 : geen fout }
- { 1 : fout in COMpoort }
- { 2 : fout in BaudRate }
- { 3 : fout in DataBits }
- { 4 : fout in StopBits }
- { 5 : fout in Pariteit }
- { 6 : poort was al geinstalleerd }
- { 7 : geen hardware aanwezig }
- Function PoortOpen : boolean; { Is er al een poort geopend }
- Procedure SluitPoort; { reset de hardware en interrupts }
- Function BufferOmvang : word; { geeft de grootte van de buffer }
- Function BufferLeeg : boolean; { is de ontvangst-buffer leeg }
- Function BufferVol : boolean; { is de ontvangst-buffer vol }
- Procedure WisBuffer; { wist de complete buffer inhoud }
- Function NogInBuffer : word; { geeft aantal tekens nog te lezen }
- Function OntvangTeken : char; { lees een teken uit de buffer }
- { als de buffer leeg is, is het }
- { karakter #0. }
- Procedure ZendTeken(Teken : char); { stuur één teken naar de poort }
- Procedure ZendString(Tekst : String); { stuur een string naar de poort }
- Procedure ZendBlok(Blok : pointer; Grootte : word); { stuur een blok }
- Procedure DTR(Waarde : boolean); { Stuurt Data Terminal Ready lijn }
- Procedure RTS(Waarde : boolean); { Stuurt Request To Send lijn }
- Function CTS : boolean; { geeft de Clear To Send status }
- Function DSR : boolean; { geeft de Data Set Ready status }
- Function Ring : boolean; { geeft de Ring Indicator status }
- Function Carrier : boolean; { geeft de Carrier Detect status }
-
- IMPLEMENTATION
-
- {$L COMM.OBJ}
-
- Function MaxCommPoort : byte; External;
- Function BufferOmvang : word; External;
- Function BufferLeeg : boolean; External;
- Function BufferVol : boolean; External;
- Procedure WisBuffer; External;
- Function NogInBuffer : word; External;
- Procedure ZendTeken(Teken : char); External;
- Procedure ZendString(Tekst : String); External;
- Procedure ZendBlok(Blok : pointer; Grootte : word); External;
- Procedure DTR(Waarde : boolean); External;
- Procedure RTS(Waarde : boolean); External;
- Function CTS : boolean; External;
- Function DSR : boolean; External;
- Function Ring : boolean; External;
- Function Carrier : boolean; External;
- Function OntvangTeken : char; External;
- Function PoortOpen : boolean; External;
- Procedure SluitPoort; External;
- Function OpenPoort(COMpoort, BaudRate,
- DataBits, StopBits,
- Pariteit : word) : byte; External;
- end. { unit Comm }
-
-