home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sonderh1 / dfmasch1.inc < prev    next >
Text File  |  1987-06-10  |  3KB  |  80 lines

  1. (*---------------------------------------------------------------------------*)
  2. (*                           DFMASCH1.INC                                    *)
  3. (*        (serielle Schnittstelle mit CP/M BDOS-Funktionen bedienen)         *)
  4.  
  5. (* Es folgen die Funktionen InpStatus(Boolean) und InpSIO(Byte),
  6.    InpStatus ist TRUE, wenn ein Zeichen an der seriellen Schnitt-
  7.    stelle vorliegt, InpSIO liefert ein Zeichen von der SIO.           *)
  8.  
  9.  
  10. FUNCTION InpSIO : CHAR;
  11.  
  12. BEGIN
  13.   InpSIO := CHAR(bdos(3))
  14. END;
  15.  
  16.  
  17.  
  18. FUNCTION InpStatus : BOOLEAN;
  19.  
  20. (* Die auskommentierte Version gilt fuer CP/M 2.2. Da das Byte mit der       *)
  21. (* Adresse 3 in CP/M 3.0 reserviert ist, folgt darunter die CP/M 3.0 Version.*)
  22. (*                                                                           *)
  23. (* var iobite    : byte absolute 3;                                          *)
  24. (*     altbite   : byte;                                                     *)
  25. (*                                                                           *)
  26. (* begin                                                                     *)
  27. (*   altbite:=iobite;                                                        *)
  28. (*   iobite:=(iobite and $FC) or 2;                                          *)
  29. (*   InpStatus := (bdos(11) <> 0);                                           *)
  30. (*   iobite:=altbite;                                                        *)
  31. (* end;                                                                      *)
  32.  
  33. BEGIN
  34.   InpStatus := (bdos(7) <> 0);
  35. END;
  36.  
  37.  
  38.  
  39. (* Die Funktionen OutStautus(Boolean) und die Prozedur OutSIO(Char) liefern
  40.    den Status des SIO-Outkanals und senden ein Zeichen (siehe auch oben).    *)
  41.  
  42. FUNCTION OutStatus : BOOLEAN;
  43.  
  44. BEGIN
  45.   OutStatus := TRUE
  46. END;
  47.  
  48.  
  49.  
  50. PROCEDURE OutSIO(Zeichen : CHAR);
  51.  
  52. BEGIN
  53.      bdos(4,Ord(Zeichen));
  54. END;
  55.  
  56.  
  57.  
  58. (* Die Prozedur Parameter fragt die zu setzenden Parameter ab,
  59.   Setze_Parameter stellt dann die SIO ein.                            *)
  60.  
  61. PROCEDURE Setze_Parameter;
  62.    (* In dieser Version stark abgemagert.                  *)
  63.    (* Z.B. laesst sich die Baudrate nicht inititalisieren. *)
  64.    (* Laesst sich unter CP/M leider nicht ueber das        *)
  65.    (* Betriebssystem machen. Dafuer gibt es in der Regel   *)
  66.    (* ein Dienstprogramm SETSIO.COM .                      *)
  67.  
  68. BEGIN
  69.   VollDuplex := (Param[5] = 1);
  70.   LineFeed := (Param[6] = 2);
  71.   CASE Param[7] OF
  72.     1 : Zeit := 0;
  73.     2 : Zeit := 10;
  74.     3 : Zeit := 100
  75.   END
  76. END;
  77.  
  78.  
  79. (*                          Ende DFMASCH1.INC                                *)
  80. (*---------------------------------------------------------------------------*)