#!/usr/bin/perl # # cu - quickie serial communications for the mac/osx modem # For some reason, OSX doesn't come with cu(1), so this # program gives some relief for dialup modem users ;) # # To stop this program, just kill it from another window. # Tested only on a Powerbook with built in modem running OSX. # # 1.00 12/20/01 erco@3dsite.com # # DEVICE $dev = "/dev/cu.modem"; $baud = 19200; $|=1; ### MAIN ### { # OPEN THE MODEM # Modem settings appropriate for modem communications # open(TTY, "+<$dev"); system("stty $baud raw clocal mdmbuf -hupcl -echo < $dev"); system("stty -a < $dev"); # RAW TTY I/O WITH USER system("stty raw"); vec($rtty, fileno(TTY), 1) = 1; vec($rstdin, fileno(STDIN), 1) = 1; vec($rin, fileno(TTY), 1) = 1; vec($rin, fileno(STDIN), 1) = 1; $timeout = 3.0; # I/O LOOP while ( 1 ) { $ret = select($rout=$rin, undef, undef, $timeout); # TTY DATA WAITING? PRINT TO STDOUT if ( unpack("%32C*", $rout) & unpack("%32C*", $rtty) ) { sysread(TTY, $c, 1); syswrite(STDOUT, $c, 1); } # STDIN DATA WAITING? WRITE TO TTY if ( unpack("%32C*", $rout) & unpack("%32C*", $rstdin) ) { sysread(STDIN, $c, 1); syswrite(TTY, $c, 1); } } }