Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Коммуникация    >>    bfcom
   
 
 BFCom - Send a Modem Command from Command Line  Brian Leiter 07.12.95

Утилита для управления модемом. Посылает в модем HAYES-команды. Позволяет из командной строки набрать номер или "положить" трубку.



1k 
 

{> Cut here. FileName= BFCOM.MSG } {BFCOM (C) 1995 Brian Leiter, All Rights Reserved} {12-07-95} {No Error Checking} Program BFCOM; Uses CRT,Cursor2; Var CH : Char; L,I : Integer; Param,Num : String; Const Version='v1.2'; Procedure Error; Begin Textcolor(7);Textbackground(0); Clrscr; Writeln('BFCOM ',Version,' (C) 1995 Brian Leiter,', ' All Rights Reserved'); Writeln(''); Writeln('Usage: BFCOM [Comport] [ON or OFF]'); Writeln(''); Writeln('Example: BFCOM 2 OFF <-- Takes modem off-hook'); Writeln(' BFCOM 2 ON <-- Puts modem on-hook'); Writeln(''); Writeln(' BFCOM 2 OFF /S <-- Silent Mode, No BELLS'); CursorSmall; Halt(0); Exit; End; Function Dial(NB:String; ComPort:Byte):Char; Const DialCmd = 'AT'; OnHook = 'ATH'; CR = #13; Status = 5; Var UserKey : Char; PortAdr : Word; Procedure Com_Write(S: String); Var I : Byte; Function OutputOk : Boolean; Begin OutPutOk:=(Port[PortAdr+Status] and $20) > 0; End; Procedure ComWriteCh(Var CH: Char); Begin Repeat Until OutPutOk; Port[PortAdr]:=Byte(CH); End; Begin For I:=1 To Length(S) Do ComWriteCh(S[I]); End; Procedure Com_Writeln(S: String); Begin Com_Write(S+CR) End; {DIAL} Begin If (ComPort<1) or (ComPort>4) Then Error; PortAdr:=MemW[$40:(ComPort-1)*2]; If PortAdr=0 Then Error; Com_Writeln(OnHook); Delay(500); Com_Write(DialCmd); Com_Writeln(NB); End; Begin {THE PROGRAM} ClrScr; CursorOff; If (ParamStr(1)>'4') or (ParamStr(1)<'1') Then Error; Param:=Paramstr(2); L:=Length(Param); For I:=1 To L Do Param[I]:=Upcase(Param[I]); If Param='OFF' Then Begin Num:='H1M0'; Clrscr; Gotoxy(20,8); Textcolor(9);Textbackground(1); Write('ђјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјђ'); Textcolor(1);Textbackground(0);Writeln('ѓ'); Gotoxy(20,9); Textcolor(9);Textbackground(1);Write('ђ '); Textcolor(14);Textbackground(0); Write(' BFCOM - (C) 1995 Brian Leiter '); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Writeln('ђ '); Gotoxy(20,10); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Write('ђ '); Textcolor(9);Textbackground(0); Write(' ђ'); Textcolor(1);Textbackground(0);Writeln('ђ '); Gotoxy(20,11); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Write('ђ '); Textcolor(15);Textbackground(0); Write('Taking Modem Off-Hook: '); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Writeln('ђ'); Gotoxy(20,12); Textcolor(9);Textbackground(0);Write('ј'); Textcolor(9);Textbackground(1); Write('јјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјј'); Textcolor(1);Textbackground(0);Writeln('ђ'); End; If Param='ON' Then Begin Num:='H0M1'; Clrscr; Gotoxy(20,8); Textcolor(9);Textbackground(1); Write('ђјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјђ'); Textcolor(1);Textbackground(0);Writeln('ѓ'); Gotoxy(20,9); Textcolor(9);Textbackground(1);Write('ђ '); Textcolor(14);Textbackground(0); Write(' BFCOM - (C) 1995 Brian Leiter '); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Writeln('ђ '); Gotoxy(20,10); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Write('ђ '); Textcolor(9);Textbackground(0); Write(' ђ'); Textcolor(1);Textbackground(0);Writeln('ђ '); Gotoxy(20,11); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Write('ђ '); Textcolor(15);Textbackground(0); Write('Putting Modem On-Hook: '); Textcolor(9);Textbackground(0);Write('ђ'); Textcolor(1);Textbackground(0);Writeln('ђ'); Gotoxy(20,12); Textcolor(9);Textbackground(0);Write('ј'); Textcolor(9);Textbackground(1); Write('јјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјјј'); Textcolor(1);Textbackground(0);Writeln('ђ'); End; {ACTUAL PROGRAM} If ParamStr(1)='1' Then CH:=Dial(Num,1); If ParamStr(1)='2' Then CH:=Dial(Num,2); If ParamStr(1)='3' Then CH:=Dial(Num,3); If ParamStr(1)='4' Then CH:=Dial(Num,4); Delay(2000); If (ParamStr(3)<>'/S') and (ParamStr(3)<>'/s') Then Begin Sound(900);Delay(150); Sound(700);Delay(50); Sound(900);Delay(150); Sound(700);Delay(50); Sound(900);Delay(150); Sound(700);Delay(50); NoSound; End; If Param='OFF' Then Textcolor(12); If Param='ON' Then Textcolor(10); Gotoxy(48,11); Writeln('DONE'); Delay(1500); CursorSmall; Clrscr; End.