home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / COMM / COMM.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-10-17  |  5.3 KB  |  98 lines

  1. {
  2.        COMM.PAS een toolbox met RS232 communicatie functie's en procedure's
  3.        geschreven door Joris Mulder, Oktober 1990.
  4.        Versie 2, zomer 1991
  5.        Bij deze unit hoort het bestand COMM.OBJ en COMM.TXT
  6.  
  7.        Zie ook COMM.TXT voor informatie over deze toolbox.
  8. }
  9.  
  10. {$R-}      { geen Range Check         }
  11. {$S-}      { geen Stack Check         }
  12. {$A+}      { gebruik minimaal words ! }
  13. {$D-}      { geen Debug informatie    }
  14.  
  15. Unit Comm;
  16.  
  17. INTERFACE
  18.  
  19. Const COM1       = 1;                     { deze constanten kunnen worden    }
  20.       COM2       = 2;                     { in de OpenPoort procedure        }
  21.       B_300      = 1;                     {}
  22.       B_600      = 2;                     {}
  23.       B_1200     = 3;                     {}
  24.       B_2400     = 4;                     {   Alleen deze BaudRate's zijn    }
  25.       B_4800     = 5;                     {   mogelijk                       }
  26.       B_9600     = 6;                     {}
  27.       B_19200    = 7;                     {}
  28.       B_38400    = 8;                     {}
  29.       NoParity   = 0;
  30.       EvenParity = 1;
  31.       OddParity  = 2;
  32.  
  33.       BaudRateTabel : Array[1..8] of word = (
  34.                       300, 600, 1200, 2400, 4800, 9600, 19200, 38400);
  35.  
  36. Function  MaxCommPoort : byte;            { resultaat is x in COMx           }
  37. Function  OpenPoort(COMpoort,             { COM1 of COM2                     }
  38.                     BaudRate,             { 1=300, 2=600, zie boven          }
  39.                     DataBits,             { 7 of 8 databits                  }
  40.                     StopBits,             { 1 of 2 stopbits                  }
  41.                     Pariteit : word)      { 0 = geen, 1 = even, 2 = oneven   }
  42.                      : byte;              { resultaat :                      }
  43.                                           {  0 : geen fout                   }
  44.                                           {  1 : fout in COMpoort            }
  45.                                           {  2 : fout in BaudRate            }
  46.                                           {  3 : fout in DataBits            }
  47.                                           {  4 : fout in StopBits            }
  48.                                           {  5 : fout in Pariteit            }
  49.                                           {  6 : poort was al geinstalleerd  }
  50.                                           {  7 : geen hardware aanwezig      }
  51. Function  PoortOpen : boolean;            { Is er al een poort geopend       }
  52. Procedure SluitPoort;                     { reset de hardware en interrupts  }
  53. Function  BufferOmvang : word;            { geeft de grootte van de buffer   }
  54. Function  BufferLeeg : boolean;           { is de ontvangst-buffer leeg      }
  55. Function  BufferVol : boolean;            { is de ontvangst-buffer vol       }
  56. Procedure WisBuffer;                      { wist de complete buffer inhoud   }
  57. Function  NogInBuffer : word;             { geeft aantal tekens nog te lezen }
  58. Function  OntvangTeken : char;            { lees een teken uit de buffer     }
  59.                                           { als de buffer leeg is, is het    }
  60.                                           { karakter #0.                     }
  61. Procedure ZendTeken(Teken : char);        { stuur één teken naar de poort    }
  62. Procedure ZendString(Tekst : String);     { stuur een string naar de poort   }
  63. Procedure ZendBlok(Blok : pointer; Grootte : word);     { stuur een blok     }
  64. Procedure DTR(Waarde : boolean);          { Stuurt Data Terminal Ready lijn  }
  65. Procedure RTS(Waarde : boolean);          { Stuurt Request To Send lijn      }
  66. Function  CTS : boolean;                  { geeft de Clear To Send status    }
  67. Function  DSR : boolean;                  { geeft de Data Set Ready status   }
  68. Function  Ring : boolean;                 { geeft de Ring Indicator status   }
  69. Function  Carrier : boolean;              { geeft de Carrier Detect status   }
  70.  
  71. IMPLEMENTATION
  72.  
  73. {$L COMM.OBJ}
  74.  
  75. Function  MaxCommPoort : byte;                          External;
  76. Function  BufferOmvang : word;                          External;
  77. Function  BufferLeeg : boolean;                         External;
  78. Function  BufferVol : boolean;                          External;
  79. Procedure WisBuffer;                                    External;
  80. Function  NogInBuffer : word;                           External;
  81. Procedure ZendTeken(Teken : char);                      External;
  82. Procedure ZendString(Tekst : String);                   External;
  83. Procedure ZendBlok(Blok : pointer; Grootte : word);     External;
  84. Procedure DTR(Waarde : boolean);                        External;
  85. Procedure RTS(Waarde : boolean);                        External;
  86. Function  CTS : boolean;                                External;
  87. Function  DSR : boolean;                                External;
  88. Function  Ring : boolean;                               External;
  89. Function  Carrier : boolean;                            External;
  90. Function  OntvangTeken : char;                          External;
  91. Function  PoortOpen : boolean;                          External;
  92. Procedure SluitPoort;                                   External;
  93. Function  OpenPoort(COMpoort, BaudRate,
  94.                     DataBits, StopBits,
  95.                     Pariteit : word)      : byte;       External;
  96. end.  { unit Comm }
  97.  
  98.