home *** CD-ROM | disk | FTP | other *** search
- (********************************************************************)
- (* THIS FUNCTION WILL RETURN TRUE IF THERE IS DATA IN THE SERIAL *)
- (* CHANNEL INPUT BUFFER *)
- (* INPUT : Ser_Chan *)
- (* INPUT/OUTPUT : NONE *)
- (* OUTPUT : Data_Present *)
- (* USES : DIAG VARS FOR SERIAL CHANNELS *)
- (* CALLS : INTR *)
- (* ERRORS : ALL SERIAL POSIBLE RESULTS STORED IN GLB VARS *)
- (* GLOBAL VARS : GLB SERIAL VARS *)
- (* SUBJECT : SERIAL COMM, TEST FOR INCOMING DATA *)
- (* DOMAIN : ARNO A. KARNER LEVEL : 001 *)
- (********************************************************************)
-
- FUNCTION Data_Present ( Ser_Chan : INTEGER )
- : BOOLEAN ;
-
- VAR
- Regs : Reg ;
-
- BEGIN (* FUNC *)
- Regs.AH := 3 ;
- Regs.DX := Ser_Chan ;
- INTR ( $14 , Regs ) ; (* BIOS CALL TO GET SERIAL STATUS *)
- IF ( Regs.AH AND 1 ) = 1 THEN Data_Present := TRUE
- ELSE Data_Present := 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.AX AND $9E00 ) = 0 THEN CS [ Ser_Chan ] := TRUE
- ELSE CS [ Ser_Chan ] := FALSE ;
- END; (* DIAG MODE *)
- END ; (* FUNC *)