dillon@CORY.BERKELEY.EDU (Matt Dillon) (12/02/86)
Problem: I want to execute my modem program from my workbench startup program, but only if my modem is on. Answer: CHECKMODEM [cli-command] [-s ascii string to transmit] Preference serial parameters are used. The cli-command is sent and the ascii string transmited only if the program finds the modem connected. The program determines if the modem is connected by sending some characters over and waiting for them to be echo'd back. The program will wait for up to 3/50's of a second. As far as I know, any modem's local echo is quick enough. Most host-echo's (already connected to something) are not. Additionaly, the program returns an error code of 20 if it does not find a modem. Other: CHECKMODEM opens the serial device then closes it. If your modem is setup such that closing the serial device drops the carrier, the program will probably terminate the telephone connection if there is one active. However, the program has been designed more for placing in your boot script or .login (if you are using my SHELL), when the modem likely would not have an active connection. Source: NOTE: You need my library to get a working copy of the program from the source. If you are on the ARPAnet, simply ftp ucbvax.Berkeley.EDU name = anonymous, password = guest, and CD amiga. else mail me. Shell Examples: (V2.03) % checkmodem; mymodemprogram (mymodemprogram is only executed if CHECKMODEM does not return an error) % checkmodem -s atdt 5551234; mymodemprogram (same as above, but CHECKMODEM will send the string 'atdt 5551234' terminated by a CR before returning. Thus, it's busy dialing dialing while your amiga is loading your modem program) CLI Examples: 1> checkmodem mymodemprogram -s atdt 5551234 (From a CLI, it's usually better to have CHECKMODEM execute the program) 1> checkmodem run mymodemprogram -s atdt 5551234 (Here, we are RUNing it so the checkmodem program returns immediately) Algorithm Outline: - Open serial device (return error code 20 if can't open serial device) - Clear input queue - send <CR>AT<CR> - Delay(3) /* 3/50 second */ - check to see if any data present: - send optionaly specified string [-s string], add the CR - CLOSE serial device - Execute("commandline",0 ,0) if commandline specified. - exit(0) (no data present) - CLOSE serial device - exit(20) --------------------------------------------------------------- begin 600 checkmodem M```#\P`````````+``````````H```!Q````;@```(0````&````!@```!,` M``&I````!0```#D````4````2P```^D```!Q(\\````<(\`````D(\@````H M0KD````@+'D````$(\X````$D\E.KO[:*$!*K`"L9P``J&$``6P@;`"LT<C1 MR"!H`!#1R-'(2.<@,$7Y````K$?Y````+'0!<``0&";*8`(4V%'(__Q"&B`Y M````)"!Y````*!(84X!O'@P!`"!O]%*")LI@"A(84X`,`0`@;P04P6#R0AI@ MW$(:0IL@`DS?#`1(>0```"PO`$ZY`````"/`````$$ZY````$"/`````%"/` M````&$ZY`````'``+GD````<3G5A``#&80``L"/`````($*G+P`D0"`J`"1G M$"QY````""!`(B@``$ZN_X(B*@`@9R@D/````^U.KO_B(\`````0(\`````4 M(\`````89PKEB"!`*6@`"`"D3KD`````<`!@!"`O``0N>0```!PO`"QY```` M!"`Y````"&<"(D!.KOYB2KD````@9PY.KO]\(GD````@3J[^AB`?3G5(YP$& M+CP``X`'+'@`!$ZN_Y1,WV"`<&1@L$'L`%Q.KOZ`0>P`7$ZN_HQ.=4*Y```` M"$/Y```!K"`\````'DZN_=@CP`````AGMDYU``````/L````&@````$```&Z M```!J@```:0```%J```!7@```5````%"```!(@```1P```$6````]@```.0` M``#4````Q@```,````"T````I@```'(```!L````5````$X````@````%``` M``X````(`````@````(````&```!-````,P````"````"0```*X```"Z```` M`````_`````"97AI=#(```````%``````G!A<FU%>&ET````F@````)W86ET M;7-G`````9`````"9&]M86EN``````$R`````F1O8V]N<P`````!!`````1F M<F]M5V]R:V)E;F-H````````V@````-E>&ET5&]$3U,```````%R`````F9R M;VU#3$D`````-`````)?97AI=````````3P````";W!E;D1/4P````&B```` M`C8D-S4R````````E@````)S=&%R='5P```````````"-20W-3(```````"2 M`````C0D-S4R````````B`````(S)#<U,@```````'8````",B0W-3(````` M``!B`````C$D-S4X```````!6`````(Q)#<U,@```````&0````";F]$3U,` M``````%V`````````_(```/J````;@`!```````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M9&]S+FQI8G)A<GD````#\`````)697)2978````````````"7T1/4T)A<V4` M```(`````E]S=&1I;@``````$`````-D;W-#;61,96X````````D`````VEN M:71I86Q34````````!P````#9&]S0VUD0G5F````````*`````-A<F=V07)R M87D````````L`````E]E<G)N;P``````#`````)?4WES0F%S90````0````" M1$]33F%M90````&L`````V%R9W9"=69F97(``````*P````"7W-T9&]U=``` M```4`````E]S=&1E<G(`````&`````-R971U<FY-<V<````````@```````` M`_(```/K````A````_(```/I````!B!O``1*&&;\D>\`!)'\`````2`(3G4` M`````_(```/I````!B!O``0B;P`((`A*&&;\4X@0V6;\3G4``````_(```/J M````$RUS`"``#4%4#0`-`'-E<FEA;"YD979I8V4```!S97)I86PN9&5V:6-E M`'!A<F%L;&5L+F1E=FEC90!C;VYS;VQE+F1E=FEC90````````/R```#Z0`` M`:E.5O[X+7P`````_OQP`2U`_O@@+O[XL*X`"&QDY8`@;@`,T<!(>0`````O M$$ZY```&4%"/2H!F"BU\```!`/[\8#@@+O[XY8`@;@`,T<`O$"\N_OQ.N0`` M``!0CR`N_OA2@+"N``AL$DAY`````R\N_OQ.N0````!0CU*N_OA@DDZY```! M5$J`9P``Q"\\```!`$AN_P!.N0```?10CW`$+P!(>0````5.N0```L90CW`# M+P!.N0```"!8CR\\```!`$AN_P!.N0```?10CTJ`9VI*.0```0!G/'`R+P!. MN0```"!8CTAY```!`$ZY`````%B/+P!(>0```0!.N0```L90CW`!+P!(>0`` M``I.N0```L90CTZY```!N$HY`````&<J<``O`"\`2'D`````3KD````T3^\` M#&`23KD```&X<!0O`$ZY```!/%B/3EY.=0``3E;__$CG`0!*N0```@AF/G`` M+P`O/````+AP4B\`2'D```($2'D```(`<``O`"\`2'D````,3KD```/P3^\` M("/````""$J`9P1A``%H(#D```((3-\`@$Y>3G4@.0```@A.=4Y6__Q(YP$` M2KD```((9R1A``&"0KD```((<%(O`"\Y```"!"\Y```"`$ZY```%K$_O``Q, MWP"`3EY.=4Y6__1(YP<@2JX`#&<2+SD```(`3KD```#P6(]*@&8*<`!,WP3@ M3EY.=2\Y```"`$ZY```!!%B/(GD```(`(&D`*"1N``@4D'H!NJX`#&=T('D` M``(`,7P`"0`<+SD```(`3KD```#(6(\@>0```@`L*``@("X`#)"%O(!O`BP` M('D```(`,7P``@`<(&X`"-'%(`@B>0```@`C0``H(T8`)"\Y```"`$ZY```` MR%B/('D```(`("@`(`R``````&,"VH!A``!.(`5,WP3@3EY.=4Y6__Q(YP$` M('D```($,7P``P`<('D```($(6X`"``H('D```($(6X`#``D+SD```($3KD` M``#(6(],WP"`3EY.=4Y6__Q(YP$`('D```(`,7P``@`<('D```(`(7P```(, M`"AP`2!Y```"`"%``"0O.0```@!.N0```-Q8CTS?`(!.7DYU+SD```(`3KD` M``$86(\O.0```@!.N0```018CTYU``!.5O_\<``@;@`(,"@`'#%\``(`'"%N M``P`*"%N`!``)"\(+4#__$ZY````R%B/("[__"!N``@Q0``<("@`($Y>3G5. M5O_\<``@;@`(,"@`'#%\``,`'"%N``P`*"%N`!``)"\(+4#__$ZY````R%B/ M("[__"!N``@Q0``<("@`($Y>3G5.5O_LD<@O""\(+4C__"U(__@M2/_T+4C_ M\$ZY`````%"/+4#__$J`9P`!/"\\``$``2\N`!Q.N0````!0CRU`__1*@&<` M`2!*K@`89S1P`"\`+P!.N0````!0CRU`__A*@&<``0(O/``!``$O+@`<3KD` M````4(\M0/_P2H!G``#F2JX`(&=D2'D````<+RX`"&$``910CTJ`9PP@;O_T M("X`(!%``$](>0```"HO+@`(80`!=%"/2H!G#"!N__0@+@`@$4``-4AY```` M.B\N``AA``%44(]*@&<0(&[_]"%N`"``*"%N`"0`)"!N__0A;O_\``XO+@`0 M+P@O+@`,+RX`"$ZY````E$_O`!`M0/_L2H!F4$JN`!AG)B!N__0B;O_P<!\2 MV%'(__P@;O_P(6[_^``.,7P``P`<(FX`&"*((&[_]#%\``(`'")N`!0BB'`` M(&[__!`H``]R`>&A(`%.7DYU2J[__&<,+R[__$ZY````G%B/2J[_^&<,+R[_ M^$ZY````G%B/2J[_]&<0+RX`'"\N__1.N0```!A0CTJN__!G$"\N`!PO+O_P M3KD````84(]P`$Y>3G5.5@``2JX`"&<R+RX`"$ZY````M%B/(&X`"$JH``YG M#"\H``Y.N0```)Q8CR\N`!`O+@`(3KD````84(]*K@`,9R8@;@`,2J@`#F<, M+R@`#DZY````G%B/+RX`$"\N``Q.N0```!A0CTY>3G5.5@``2.<`#"IN``@H M;@`,$!42%+`!9A:``4H`9@IP`4S?,`!.7DYU4HU2C&#B<`!,WS``3EY.=4Y6 M``!(YP`,*FX`""AN``Q*%6<N2A1G*A`5$A2P`60*</],WS``3EY.=1`5$A2P M`6,*<`%,WS``3EY.=5*-4HQ@SA`5$A2P`6;.<`!,WS``3EY.=0```^P````! M`````````4@````F`````@```UP```-.```#.````RX```,D```#'@```Q(` M``+T```"Z````MP```+0```"I@```I@```**```"=@```F````)2```"1@`` M`BX```(@```"!````=X```'8```!S@```<(```&R```!I````98```%Z```! M=````5X```$L```!'@```/@```#H````U````#H````&`````0````,```#N M`````@````0```!T````5@````@````%```$N@``!)H```1Z```!A@```0H` M``"D````:@```"8````+````!@```>0```&,```!/@```1@```$0````_@`` M`*H```#(````F````((````N````!@````@```7^```%T@``!70```5B```$ M1@``!`P````#````"0```3(```#@````M@```!(````*```%O```!@X```7B M```%H```!8H```3V```$8@``!"@```/6```#E````U0```,^```"^@```IX` M``)8```#8@```B8```(*`````````_(```/I````!2!O``0@B%B00J@`!"%( M``A.=0`````#\`````)?3F5W3&ES=``````````````#\@```^D````Y2.<_ M("@O`"`6+P`G+SS_____3KD```!$*@`L!73_M(58CV8&<`!@``!N+SP``0`! M2'@`(DZY`````"1`SXI*A\^*4(]F#B\&3KD```!8<`!8CV!")40`"A5#``D5 M?``$``A"*@`.%48`#T*G3KD````P)4``$$J$6(]G#"\*3KD```!L6(]@#$AJ M`!1.N0````!8CR`*3-\$_$YU2.<@("1O``Q*J@`*9PHO"DZY````@%B/%7P` M_P`(=/\E0@`4=``4*@`/+P).N0```%A(>``B+PI.N0```!A/[P`,3-\$!$YU M```#[`````$````'````C@````@````*````-@```!0```!N````R@```$H` M``"`````K@```-8````````#\`````$N3#D`````#`````$N3#@`````*@`` M``$N3#<`````5`````$N3#8`````B`````$N3#4`````?`````$N3#0````` ME`````$N3#,`````1@````$N3#(`````)`````$N3#$`````E@````$N3#$W M````H`````$N3#$V````G`````$N3#$U````I`````$N3#$T````J@````$N M3#$S````M`````$N3#$R````W@````$N3#$Q````!`````$N3#$P```````` M``-?1&5L971E4&]R=`````"<`````U]#<F5A=&50;W)T```````````````# M\@```^D````4+PXL>0````A.KO_*+%].=2\.+'D````(3J[_Q"Q?3G4O#BQY M````""(O``A.KO\Z+%].=4CG,`(L>0````A,[P`.`!!.KO\B3-]`#$YU```` M``/L````!`````$````Z````)````!0````$`````````_`````"7T5X96-U M=&4````T`````E]$96QA>0``````(`````)?3W5T<'5T`````!`````"7TEN M<'5T`````````````````_(```/I````2R\.+'D````$3.\``P`(3J[_.BQ? M3G4``"\.+'D````$(F\`""`O``Q.KO\N+%].=2\.+'D````$(F\`"$ZN_MHL M7TYU+PXL>0````0@+P`(3J[^MBQ?3G4O#BQY````!"`O``A.KOZP+%].=2\. M+'D````$(F\`"$ZN_IXL7TYU+PXL>0````0B;P`(3J[^F"Q?3G4O#BQY```` M!"!O``A,[P(!``PB+P`43J[^1"Q?3G4``"\.+'D````$(F\`"$ZN_CXL7TYU M+PXL>0````0B;P`(3J[^."Q?3G4O#BQY````!")O``A.KOXR+%].=2\.+'D` M```$(F\`"$ZN_BPL7TYU+PXL>0````0B;P`(3J[^)BQ?3G4O#BQY````!")O M``A.KOX@+%].=0```^P````.`````0```1P```$(````]````.````#,```` MN````)@```"$````<````%P```!(````-````!P````$`````````_`````" M7T%B;W)T24\```$8`````E]786ET24\````!!`````)?0VAE8VM)3P```/`` M```"7U-E;F1)3P````#<`````E]$;TE/````````R`````-?0VQO<V5$979I M8V4```"T`````U]/<&5N1&5V:6-E`````)0````"7U)E;5!O<G0```"````` M`E]!9&10;W)T````;`````-?1G)E95-I9VYA;`````!8`````U]!;&QO8U-I M9VYA;````$0````#7T9I;F1487-K````````,`````)?1G)E94UE;0```!@` ;```#7T%L;&]C365M``````````````````/R ` end