From owner-FreeBSD-users-jp@jp.freebsd.org  Sun Apr  6 18:55:52 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id SAA10922
	Sun, 6 Apr 1997 18:55:52 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with ESMTP id SAA10917
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 6 Apr 1997 18:55:03 +0900 (JST)
Received: from zwei.network.or.jp (kum066.network.or.jp [202.231.249.66]) by metro40.network.or.jp (8.7.5+2.6W/3.4W2) with ESMTP id SAA10656 for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 6 Apr 1997 18:58:15 +0900 (JST)
Message-Id: <199704060958.SAA10656@metro40.network.or.jp>
From: "Naoko Hayashida" <gen@network.or.jp>
To: <FreeBSD-users-jp@jp.freebsd.org>
Date: Sun, 6 Apr 1997 18:56:05 +0900
X-MSMail-Priority: Normal
X-Priority: 3
X-Mailer: Microsoft Internet Mail 4.70.1157
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 8bit
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 11532
Subject: [FreeBSD-users-jp 11532] RE: about com3
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

> 
> $B2HDm$G(JFreeBSD2.1.0(98)$B$r;H$C$F$^$9!#(J
> $B%^%7%s$O!"(Jpc9821V10$B$G$9!#(J
> 
> iij-ppp$B$r;H$C$F!"%$%s%?!<%M%C%H@\B3$r$7$h$&$H(J
> $B9M$($?$N$G$9$,!"%b%G%`$rG'<1$G$-$^$;$s!#(J
> $B%b%G%`$O!"FbB"$N$b$N$G!"(JCom3$B$K$D$J$,$C$F$$$k(J
> $B$b$N$H;W$o$l$^$9!#(J

$B%U%)%m!<2<$5$C$?3'MM!"$"$j$,$H$&$4$6$$$^$7$?!*(J

$BEDF,$5$s!JB?<U!*!K$N%U%)%m!<$r$b$H$K!"0J2<$N;v$r(J
$B$d$j$^$7$?$i!"%b%G%`$rG'<1$5$;$k;v$,$G$-$^$7$?!#(J

$B!{(J $B%b%G%`%\!<%I$rH4$$$F!"(J
     $B%G%#%C%W%9%$%C%A#1$r(JON$B!J%W%i%0!u%W%l%$(JOFF$B!K$K$9$k!#(J

$B!{(J patch1$B$r(J    /usr/src/sys/pc98/pc98$B$G$"$F$k!#(J

$B!{%+!<%M%k$r(J

    device sio0 at nec? port "IO_COM1" tty irq 4 vector siointr
    device sio1 at nec? port 0x238 tty irq 5 vector siointr
    device sio2 at nec? port 0x8b0 tty irq 3 vector siointr
   $B$N$h$&$K$7$F!":F9=C[$9$k!#(J


$B$^$?!"B>$K$b=i?4<TE*<ALd$r$7$F$7$^$&$+$b$7$l$^$;$s$,!"(J
$B$h$m$7$/$*4j$$$7$^$9!#(J
$B$G$O!*(J

----------------patch1-------------


*** sio.c.orig	Sun Apr  6 13:48:03 1997
--- sio.c	Sun Apr  6 16:04:30 1997
***************
*** 524,529 ****
--- 524,534 ----
  	15600,	15600,
  	31200,	31200,
  	62400,	62400,
+ 	14400,	0x8c,
+ 	28800,	0x84,
+ 	38400,	0x83,
+ 	57600,	0x82,
+ 	115200,	0x81,
  	-1,	-1
  };
  #ifdef COM_IF_PIO9032B
***************
*** 975,981 ****
  	com->iobase = iobase;
  #if defined(PC98)
  	if(pc98_set_ioport(com, iobase) == -1)
! 		if((iobase & 0x0f0) == 0xd0) {
  			com->pc98_if_type = MC16550;
  			com->data_port = iobase + com_data;
  			com->int_id_port = iobase + com_iir;
--- 980,987 ----
  	com->iobase = iobase;
  #if defined(PC98)
  	if(pc98_set_ioport(com, iobase) == -1)
! 	/*	if((iobase & 0x0f0) == 0xd0) {*/
! 	if((iobase & 0xfff) == 0x238 || (iobase & 0xfff) ==0x8b0 ) {
  			com->pc98_if_type = MC16550;
  			com->data_port = iobase + com_data;
  			com->int_id_port = iobase + com_iir;
***************
*** 3558,3563 ****
--- 3564,3571 ----
  	    case COM_IF_INTERNAL:
  		/* for *1CLK asynchronous! mode		, TEFUTEFU */
  		effect_sp = ttspeedtab( speed, pc98speedtab );
+ 		if (( effect_sp > 0x80 ) && (effect_sp < 0x8f))
+ 			return effect_sp;
  		if ( effect_sp < 0 )
  			effect_sp = ttspeedtab( (speed-1), pc98speedtab );
  		if ( effect_sp <= 0 )
***************
*** 3617,3629 ****
--- 3625,3643 ----
  			return;
  		} else if ( count == 0 )
  			return;
+ 		if((count>0x80) && (count<0x8f)) {
+ 		 outb(0x13a,count & 0xff);		
+ 		}
+ 		else {
  		/* set i8253 */
  		s = splclock();
+ 		outb( 0x13a,0);
  		outb( 0x77, 0xb6 );
  		outb( 0x5f, 0);
  		outb( 0x75, count & 0xff );
  		outb( 0x5f, 0);
  		outb( 0x75, (count >> 8) & 0xff );
+ 		}
  		splx(s);
  		break;
  #if 0
***************
*** 3695,3704 ****
  			break;
  #endif
  	    default:
! 			if((iobase & 0x0f0) == 0xd0){
  				iod->if_type = MC16550;
  				return 0;
  			}
  			return -1;
  	}
  
--- 3709,3724 ----
  			break;
  #endif
  	    default:
! /*			if((iobase & 0x0f0) == 0xd0){*/
! 			if((iobase & 0xfff) == 0x238){
  				iod->if_type = MC16550;
  				return 0;
  			}
+ 			if((iobase & 0xfff) == 0x8b0){
+ 				iod->if_type = MC16550;
+ 				return 0;
+ 			}
+ 
  			return -1;
  	}
  
  
*** sioreg.h.orig	Sun Apr  6 13:48:03 1997
--- sioreg.h	Sun Apr  6 14:30:14 1997
***************
*** 37,43 ****
  
  /* 16 bit baud rate divisor (lower byte in dca_data, upper in dca_ier) */
  #if defined(PC98)
! #define	COMBRD(x)	(7372800 / (16*(x)))
  #else
  #define	COMBRD(x)	(1843200 / (16*(x)))
  #endif
--- 37,43 ----
  
  /* 16 bit baud rate divisor (lower byte in dca_data, upper in dca_ier) */
  #if defined(PC98)
! #define	COMBRD(x)	(7372800 / (64*(x)))
  #else
  #define	COMBRD(x)	(1843200 / (16*(x)))
  #endif
*** ic/ns16550.h.orig	Sun Apr  6 13:48:03 1997
--- ic/ns16550.h	Sun Apr  6 14:33:41 1997
***************
*** 41,54 ****
   * modified for MC16550II
   */
  
! #define	com_data	0x000	/* data register (R/W) */
! #define	com_dlbl	0x000	/* divisor latch low (W) */
! #define	com_dlbh	0x100	/* divisor latch high (W) */
! #define	com_ier		0x100	/* interrupt enable (W) */
! #define	com_iir		0x200	/* interrupt identification (R) */
! #define	com_fifo	0x200	/* FIFO control (W) */
! #define	com_lctl	0x300	/* line control register (R/W) */
! #define	com_cfcr	0x300	/* line control register (R/W) */
! #define	com_mcr		0x400	/* modem control register (R/W) */
! #define	com_lsr		0x500	/* line status register (R/W) */
! #define	com_msr		0x600	/* modem status register (R/W) */
--- 41,54 ----
   * modified for MC16550II
   */
  
! #define	com_data	0x0	/* data register (R/W) */
! #define	com_dlbl	0x0	/* divisor latch low (W) */
! #define	com_dlbh	0x1	/* divisor latch high (W) */
! #define	com_ier		0x1	/* interrupt enable (W) */
! #define	com_iir		0x2	/* interrupt identification (R) */
! #define	com_fifo	0x2	/* FIFO control (W) */
! #define	com_lctl	0x3	/* line control register (R/W) */
! #define	com_cfcr	0x3	/* line control register (R/W) */
! #define	com_mcr		0x4	/* modem control register (R/W) */
! #define	com_lsr		0x5	/* line status register (R/W) */
! #define	com_msr		0x6	/* modem status register (R/W) */


--------$B$3$3$^$G(J---------------

ps:     bsd$BB&$G%b%G%`$rG'$a$?!*$H;W$C$?$i!"(J
         win95$BB&$G!"%b%G%`$A$c$s$,!"$J$+$J$+!"(J
         $BG'$a$F$b$i$($:!"Fq57$G$7$?!#!#!#!#(J
         $B$U$%!<!#(J

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Naoko Hayashida     gen@network.or.jp
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
