home *** CD-ROM | disk | FTP | other *** search
- (********************************************************************)
- (* THIS FUNCTION WILL RETURN TRUE IF SPACE IS AVAILABLE IN TRANSMIT *)
- (* BUFFER OF SELECTED SERIAL CHANNEL FOR ANOTHER CHAR *)
- (* INPUT : SERIAL CHAN *)
- (* INPUT/OUTPUT : NONE *)
- (* OUTPUT : BOOLEAN *)
- (* USES : DIAG VARS FOR SERIAL CHANNELS *)
- (* CALLS : INTR *)
- (* ERRORS : NONE REPORTED TO CALLER *)
- (* GLOBAL VARS : NONE *)
- (* SUBJECT : SERIAL COMM, SPACE AVIALABLE IN OUTPUT BUFFER *)
- (* DOMAIN : ARNO A. KARNER LEVEL : 001 *)
- (********************************************************************)
-
- FUNCTION Space_Available ( Ser_Chan : INTEGER )
- : BOOLEAN ;
-
- VAR
- Regs : Reg ;
-
- BEGIN (* FUNC *)
- Regs.AH := 3 ;
- Regs.DX := Ser_Chan ;
- INTR ( $14 , Regs ) ;
- IF ( Regs.AH AND $20 ) <> 0 THEN Space_Available := TRUE
- ELSE Space_Available := FALSE ;
- IF Glb_Diag
- THEN BEGIN (* DIAG MODE *)
- CSF [ Ser_Chan ] := CSF [ Ser_Chan ] AND $9E0F;
- CSF [ Ser_Chan ] := CSF [ Ser_Chan ] OR Regs.AX ;
- IF ( Regs.AH AND $9E ) = 0 THEN CS [ Ser_Chan ] := TRUE
- ELSE CS [ Ser_Chan ] := FALSE ;
- END; (* DIAG MODE *)
- END ; (* FUNC *)