<HTML>
<HEAD>
<TITLE> Display Switch </TITLE>
</HEAD>
<BODY BGCOLOR="#F0FFF0">

<H1>$B%-!<%\!<%I(B/$B%^%&%9@ZBX$(4o(B ($B%=%U%HJT(B)</H1>

<P>
AKI-H8 $B$r;H$C$?(B $B%-!<%\!<%I(B/$B%^%&%9@ZBX$(4o(B $B$r:n$C$F$$$^$9!#(B
$B%O!<%I$O$[$\40@.$7$?$b$N$N!"%=%U%H$OL$$@40@.$7$F$$$^$;$s!#(B
$B?JD=$O!"%G%P%$%9%3%s%H%m!<%k$N$?$a$N%i%$%V%i%j$,$[$\B7$C$?$H$3$m!#(B
$B$3$l$+$i!"K\BN$N%W%m%0%i%`$r:n@.$7$J$1$l$P$$$1$^$;$s!#(B

<P>
<HR>
<H2>$B5!G=(B</H2>
<P>$B$$$A$*$&9=A[$@$1>R2p$7$F$*$-$^$9!#(B

$B%-!<%\!<%I@ZBX$(4o$,;H$&%-!<(B Fn $B$r#1$D7h$a$^$9!#(B
$B$3$N%-!<$,2!$5$l$F$$$k4V$N%-!<F~NO$O$9$Y$F!"%3%s%H%m!<%i$X$N%3%^%s%I(B
$B$H$7$F!"2#<h$j$7$^$9!#(B( $B$b$A$m$s(B Fn $B%-!<$OAw=P$5$l$J$$(B )

$B%3%^%s%I$O!"<!$N$h$&$K$7$h$&$H;W$C$F$$$^$9!#(B
<PRE>

F1 - F4    PC $BA*Br(B
F5 - F8	   $B%G%#%9%W%l%$#1(B $BA*Br(B
F9 - F12   $B%G%#%9%W%l%$#2(B $BA*Br(B

$B$^$?$O!"(B

1-9 PC $BA*Br(B
QWER $B%G%#%9%W%l%$#1(B $BA*Br(B
ASDF $B%G%#%9%W%l%$#2(B $BA*Br(B

$B$"$H!"(B

Z    $B%3%s%H%m!<%i$H$NBPOC%b!<%I(B
</PRE>

<P>
$B%3%s%H%m!<%i$H$NBPOC%b!<%I$G$O!"%-!<F~NO$O$9$Y$F%3%s%H%m!<%i$NF~NO$K$7$^$9!#(B
$B%3%^%s%I$rF~NO$9$k$3$H$K$h$j!"(B

<PRE>
$B5!G=(B1 Fn $B%-!<(B $B$N@_Dj!#(B
	$B%G%U%)%k%H$O!"1&(B ctrl $B$H$+(B $B$I$N%-!<%\!<%I$K$b$"$k$d$D$K$7$J$$$H(B...
	$B6b8K$NCf$N80$K$J$C$A$c$$$^$9$M!#(B
$B5!G=(B2 PC$B$NHV9f$H(B $B%]!<%H$NHV9f(B( PS/2 $B$H(B $B%7%j%"%k(B) $B$N%^%C%T%s%0$r@_Dj!#(B
        $B<B$O;d$N%^%7%s$K$O!"(BPS/2 $B%^%&%9$O$D$J$,$i$J$$$N$G$9!#%^%&%9$r%7%j%"%k(B
        $B$K$9$k@_Dj$O!"I,?\!*(B
$B5!G=(B3 $B3F(BPC$B$KBP$7!"%-!<%\!<%I$N%^%C%T%s%0$N@_Dj!#(B
        ctrl <-> caps $B$NF~$l49$($O(B $B0l1~$G$-$J$$$H!#(B
$B5!G=(B4 $B@_Dj$r(BEEPROM $B$K%;!<%V(B
        $B@_Dj$rJQ$($J$1$l$P!"(BEEPROM $B$bI,MW$J$$$N$G$9$,(B...
</PRE>
$B$H$$$C$?$3$H$,$G$-$k$h$&$K$7$?$$$H;W$C$F$$$^$9!#(B


<HR>
<P>
<H2>$B%"!<%+%$%V(B</H2>

<P>
<A HREF="h8comm-suz.tgz"> AKI-H8 $B=q$-9~$_%W%m%0%i%`(B (FreeBSD $BMQ(B)</A> 
<BR>
$B$3$l$O!"(B<A HREF="http://tsl.pe.u-tokyo.ac.jp/~iwata/tips/H83048.html">
Programming H8/3048F by Linux</A> $B$N%Z!<%8$K$"$k(B h8comm $B$r$A$g$C$H$@$1(B
$B2~NI$7$?$b$N$G$9!#(B

<P>
<A HREF="h8cdk.tgz"> AKI-H8 $BMQ(B gcc (FreeBSD $BMQ(B) </A> 
<BR>
$B$3$l$O!">e$N%Z!<%8$r;29M$K!"%$%s%9%H!<%k$7$?(B gcc($B3+H/4D6-(B)$B$N%P%$%J%j!#(B
3341735 $B%P%$%H$"$j$^$9!#(B


<P>
<A HREF="kmsw-990114.tgz">$B@ZBX$(4o(B $B%W%m%0%i%`(B 99/1/14 $BHG(B </A>
<BR>
$B%^%&%9$NDL?.$O$^$@40A4$G$O$"$j$^$;$s$,!"%-!<%\!<%I$H%G%#%9%W%l%$ItJ,(B
$B$NF0:n$,3NG'$G$-$F$$$^$9!#(B
( $B$H$j$"$($:;2>HMQ$H$$$&$3$H$G!"%W%m%0%i%`$N:FG[I[$O$7$J$$$G2<$5$$!#(B)


<HR>
<P>
<H2>$B;29M;qNA(B</H2>

<P>
1. <A HREF="http://www.brl.ntt.co.jp/people/yamazaki/keyboard/index.html">
$B%-!<%\!<%I%^%K%"(B(?)$B$N%Z!<%8(B</A>
<BR>
$B$3$N%Z!<%8$N$*$+$2$G!"(BPS/2 $B$NCN<1$r;EF~$l$k$3$H$,$G$-$^$7$?!#(B

<P>
2. <A HREF="http://tsl.pe.u-tokyo.ac.jp/~iwata/tips/H83048.html">
Programming H8/3048F by Linux</A>
<BR>
$B$3$N%Z!<%8$,$J$1$l$P!"Hs8zN($J(B Windows $B3+H/4D6-$G(B $B%=%U%H$r:n$m$&$H$7$F!"(B
$B:C@^$7$F$$$?$3$H$G$7$g$&!#(B


<P>
3. $B%H%i5;(B 1998/10,11 PS/2 - ADB $B%3%s%P!<%?$N@=:n5-;v(B
<BR>
PS/2 $B$H(B $B%7%j%"%k%^%&%9$NCN<1$r$3$N5-;v$GF@$k$3$H$,$G$-$^$7$?!#(B
ADB $B%$%s%?!<%U%'%$%9$N:n@.$K$b%H%i%$$7$F$_$?$$$H;W$$$^$9!#(B


<P>
<HR>
<P>
<H2>$B%W%m%0%i%`$N@bL@(B</H2>
<P>
$BDc%l%Y%k$N%I%i%$%P$+$i:n$C$F$$$^$9!#$I$s$J46$8$+35MW$r@bL@$7$F$*$-$^$9!#(B

<H3>$B%7%9%F%`%?%$%^(B</H3>
$B%$%s%?!<%P%k%?%$%^(B0 $B$r;H$C$F(B 1ms $BKh$K3d$j9~$_$,Mh$k$h$&$K$7$F$$$^$9!#(B
$B3d$j9~$_=hM}$G$O!"(Blong systicks $B$H$$$&JQ?t$r(B $B%$%s%/%j%a%s%H$7$F$$$^$9!#(B
$B$3$N(B systicks $B$r%a%$%s%k!<%W$G%A%'%C%/$7$F!"%?%$%`%"%&%H$J$I$N=hM}$r(B
$B$9$k$o$1$G$9!#(B

<P>
$B4JC1$JNc$H$7$F!"(Bn $B%_%jBT$A9g$o$;$k4X?t(B sleep() $B$r>R2p$7$^$9!#(B


<PRE>
sleep(n) int n; {
	extern volatile long systicks;
        long cur_time;
        cur_time = systicks;
        while (systicks - cur_time &lt; n+1) {
                ;
        }
}
</PRE>

<P>
$B$"$H!"(Bn $B%^%$%/%mICBT$D(B delay() $B$H$$$&4X?t$b:n$C$F$$$^$9!#(B
$B$3$l$O!"%$%s%?!<%P%k%?%$%^(B0 $B$rD>@\A`:n$7$F$$$^$9!#(B

<H3>$B%7%j%"%k(B</H3>
$BC1$K=i4|2=$9$k$H(B 9600 bps,8bit,parity-none,stop 1 $B$K=i4|2=$7$^$9!#(B
$B%7%j%"%k%^%&%9$N=PNO$,$G$-$k$h$&$K!"%b!<%I$O:F@_Dj$G$-$k$h$&$K$7$F$$$^$9!#(B

$BAw$i$l$FMh$?%G!<%?$O!"3d$j9~$_=hM}$G<u$1<h$j!"(B
6 $B%P%$%H$N%P%C%U%!$KF~$l$F$$$^$9!#(B

<H3>$B%-!<%\!<%I(B,$B%^%&%9(B</H3>

$B%I%i%$%P!<$O$$$^$N$H$3$m6&DL$G$9!#(B

$BK\Mh$O(B $B%*!<%W%s%3%l%/%?$N2sO)$K$J$C$F$$$^$9$,!"<!$N$h$&$K$7$F%I%i%$%V$7$F(B
$B$$$^$9!#0l1~(B I/O $B$K$O!"(BLED $B6nF02DG=$H$$$&$N$rA*$s$G$$$^$9!#(B
( Mac $B$N(B ADB $B$b$3$N$d$jJ}$G$$$1$k$H;W$C$F$$$^$9$,!"$^$@<j$r$D$1$F$$$^$;$s!#(B)
<PRE>
H $B%l%Y%k$rAw=P(B      I/O $B%T%s$rF~NO$K$9$k!#(B($B%W%k%"%C%W$5$l$F$$$k$N$G(B H $B$K$J$k(B)
H $B$K$J$C$?$+$N3NG'(B  Input $B$r(B $B%A%'%C%/!#(B
L $B%l%Y%k$rAw=P(B      I/O $B%T%s$r=PNO$K$9$k!#(B($B%G%U%)%k%H$G(B output $B%l%8%9%?(B $B$O(B L)
</PRE>


$B<!$N$h$&$J%m%8%C%/$G%-!<%\!<%I$+$i$N%G!<%?$r<u$1<h$j!"(B
6 $B%P%C%U%!$KF~$l$F$$$^$9!#(B
<P>
<PRE>
1. CLK $B"-(B $B$G(B $B3d$j9~$_$,5/$-$k$h$&$K$7$F$*$/!#(B
2. $B$=$N3d$j9~$_=hM}$G(B 1 $B%S%C%H$N%G!<%?$r<u$1<h$k!#(B
3. 11 bit $B<u$1<h$C$?$i!"%P%C%U%!$KE>Aw!#(B
</PRE>
<P>
$B%-!<%\!<%I$K%G!<%?$rAw$k$H$-$b(B CLK $B$O%G%P%$%9B&$+$iMh$k$N$G3d$j9~$_%Y!<%9$G$9!#(B

<P>
<PRE>
$B>e$N3d$j9~$_=hM}$NCf$G!"%-!<%\!<%I$KAw$k%G!<%?$,$"$k>l9g$O!"(B
1 $B%S%C%H=PNO$9$k!#(B
</PRE>
<P>
$B$3$l$G$O$"$^$jJ,$+$i$J$$$H;W$$$^$9$N$G!"%W%m%0%i%`$r:\$;$F$*$-$^$9!#(B
kbd_send_cnt $B$H$$$&$N$,!"Aw$m$&$H$9$k%G!<%?$N;D$j%S%C%H?t!#(B
kbd_send_data $B$H$$$&$N$,!"Aw$m$&$H$9$k%G!<%?$G$9!#%Q%j%F%#$d(B
$B%9%H%C%W%S%C%HEy%U%)!<%^%C%H$,$"$j$^$9$,!"$=$l$O%G!<%?$rAw$m$&$H$9$k(B
$B$H$3$m$G@5$7$/@_Dj$7$^$9!#(B<BR>
$BF1MM$K(B kbd_recv_cnt,kbd_recv_data $B$,<u$1<h$C$?%G!<%?$G$9!#(B
$B%(%i!<$,5/$-$?8e$N%G!<%?$r=&$o$J$$$h$&$K!"(B1ms $B0J>eA0$N%G!<%?$OL58z$K$9$k(B
$B=hM}$,F~$C$F$$$^$9!#(B


<PRE>
#pragma interrupt
kbd_intr() {
        kbd_intr_cnt++;
        if (kbd_send_cnt) {
                kbd_send_cnt--;
                if (kbd_sending & 1) {
                        kbd_ddr &= ~(1&lt;&lt;KBD_DATA_BIT);
                } else {
                        kbd_ddr |= (1&lt;&lt;KBD_DATA_BIT);
                }
                outb(KBD_DDR,kbd_ddr);
                kbd_sending &gt;&gt;= 1;
        } else {
                if ((systicks - last_kbd_modified ) &gt; 1 ) {
                        // 1m $BIC(B $B0J>e4V$,6u$$$?%G!<%?$O!"<N$F$k!#(B
                        kbd_to_cnt++;
                        kbd_recv_diff = systicks - last_kbd_modified;
                        kbd_recv_cnt = kbd_recving = 0;
                } else {
                        kbd_recving &gt;&gt;= 1;
                }
                kbd_recv_cnt++;
                if (inb(KBD_PORT) & (1&lt;&lt;KBD_DATA_BIT)) {
                        kbd_recving |= (1&lt;&lt;10);
                }
                if (kbd_recv_cnt == 11) {
                        if (kbd_data_cnt &lt; 6) {
                                kbd_data[kbd_data_cnt++] = kbd_recving;
                        } else {
                                kbd_ov_cnt++;
                        }
                        kbd_recv_cnt = kbd_recving = 0;
                }
                last_kbd_modified = systicks;
        }
}
</PRE>

</BODY>
</HTML>

