森浩貴氏 による ZTools の FreeBSD 用パッチです。 -------------------------------------------------------------------------- *** Makefile Tue Mar 5 01:20:45 1996 --- Makefile Thu Nov 12 08:19:43 1998 *************** *** 11,23 **** #EXE = .x ############################# ### SunOS4 ! CC = cc ! LK = cc ! CFLAGS = -O -DUNIX=1 -DSUN_OS4=1 -DDEFAULT_DEVICE=\"/dev/ttya\" ! SYSLIB = ! SYSOBJ = emu_fio.o emu_str.o ! KTOOL = kanjisrc ! EXE = ############################# ### NEWS-OS4 #CC = cc --- 11,23 ---- #EXE = .x ############################# ### SunOS4 ! #CC = cc ! #LK = cc ! #CFLAGS = -O -DUNIX=1 -DSUN_OS4=1 -DDEFAULT_DEVICE=\"/dev/ttya\" ! #SYSLIB = ! #SYSOBJ = emu_fio.o emu_str.o ! #KTOOL = kanjisrc ! #EXE = ############################# ### NEWS-OS4 #CC = cc *************** *** 36,41 **** --- 36,50 ---- #SYSOBJ = emu_fio.o emu_str.o #KTOOL = kanjisrc #EXE = + ############################# + ### FreeBSD + CC = gcc + LK = gcc + CFLAGS = -O -DUNIX=1 -DFREEBSD=1 -DDEFAULT_DEVICE=\"/dev/cuaa0\" + SYSLIB = + SYSOBJ = emu_fio.o emu_str.o + KTOOL = kanjisrc + EXE = ############################# ZLIB = zproto.o oproto.o iofunc.o $(SYSOBJ) PROG = zaddin$(EXE) zlink$(EXE) zfile$(EXE) zreset$(EXE) \ *** iofunc.c Mon Dec 4 20:49:08 1995 --- iofunc.c Thu Nov 12 08:31:42 1998 *************** *** 115,121 **** --- 115,125 ---- # endif #endif #ifndef SPEED_19200 + # if FREEBSD + # define SPD_19200 EXTA + # else # define SPD_19200 B19200 + # endif #endif #ifndef TERM_IOS # define TERM_IOS 1 *************** *** 211,216 **** --- 215,232 ---- SysExit( 1 ); } { + #if FREEBSD + struct termios rstio; + + tcgetattr(rsfn, &ottyarg); + tcgetattr(rsfn, &rstio); + rstio.c_cflag |= (PARODD | PARENB); + rstio.c_ispeed = rstio.c_ospeed = B9600; + tcsetattr(rsfn, TCSADRAIN, &rstio); + if( speed == 2 ){ + OpticalMode = 1; + } + #else #if TERM_IOS struct termios ttyarg; ioctl( rsfn, TCGETS, &ottyarg ); *************** *** 252,257 **** --- 268,274 ---- ioctl( rsfn, TIOCKSET, &local ); # endif #endif /* TERM_IOS */ + #endif /* FREEBSD */ } } *************** *** 260,281 **** --- 277,306 ---- #endif RsClear() { + #if FREEBSD + tcflush(rsfn, TCIFLUSH); + #else #if TERM_IOS && !NEWS_OS4 ioctl( rsfn, TCFLSH, TCIFLUSH ); #else int flag= FREAD; ioctl( rsfn, TIOCFLUSH, &flag ); #endif + #endif } RsQuit() { + #if FREEBSD + tcsetattr(rsfn, TCSADRAIN, &ottyarg); + #else #if TERM_IOS ioctl( rsfn, TCSETSW, &ottyarg ); #else ioctl( rsfn, TIOCSETP, &ottyarg ); ioctl( rsfn, TIOCLSET, &oldlocal ); #endif + #endif close( rsfn ); } *************** *** 322,327 **** --- 347,355 ---- return TIMEOUT; } }while( !FD_ISSET( rsfn, &fdbuf ) ); + #if FREEBSD + usleep(10000); + #endif write( rsfn, &ch, 1 ); return 0; } --------------------------------------------------------------------------