home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / AAKINT14.ZIP / SPACAVIL.FUN < prev   
Encoding:
Text File  |  1986-08-24  |  1.6 KB  |  35 lines

  1. (********************************************************************)
  2. (* THIS FUNCTION WILL RETURN TRUE IF SPACE IS AVAILABLE IN TRANSMIT *)
  3. (* BUFFER OF SELECTED SERIAL CHANNEL FOR ANOTHER CHAR               *)
  4. (* INPUT        : SERIAL CHAN                                       *)
  5. (* INPUT/OUTPUT : NONE                                              *)
  6. (* OUTPUT       : BOOLEAN                                           *)
  7. (* USES         : DIAG VARS FOR SERIAL CHANNELS                     *)
  8. (* CALLS        : INTR                                              *)
  9. (* ERRORS       : NONE REPORTED TO CALLER                           *)
  10. (* GLOBAL VARS  : NONE                                              *)
  11. (* SUBJECT      : SERIAL COMM, SPACE AVIALABLE IN OUTPUT BUFFER     *)
  12. (* DOMAIN       : ARNO A. KARNER                      LEVEL : 001   *)
  13. (********************************************************************)
  14.  
  15. FUNCTION Space_Available                        ( Ser_Chan : INTEGER )
  16.                                                 : BOOLEAN ;
  17.  
  18. VAR
  19.    Regs : Reg ;
  20.  
  21. BEGIN (* FUNC *)
  22.    Regs.AH := 3 ;
  23.    Regs.DX := Ser_Chan ;
  24.    INTR ( $14 , Regs ) ;
  25.    IF ( Regs.AH AND $20 ) <> 0  THEN Space_Available := TRUE
  26.    ELSE Space_Available := FALSE ;
  27.    IF Glb_Diag
  28.    THEN BEGIN (* DIAG MODE *)
  29.            CSF [ Ser_Chan ] := CSF [ Ser_Chan ] AND $9E0F;
  30.            CSF [ Ser_Chan ] := CSF [ Ser_Chan ] OR Regs.AX ;
  31.            IF ( Regs.AH AND $9E ) = 0 THEN CS [ Ser_Chan ] := TRUE
  32.            ELSE CS [ Ser_Chan ] := FALSE ;
  33.         END;  (* DIAG MODE *)
  34. END ; (* FUNC *)
  35.