aboutsummaryrefslogtreecommitdiffstats
path: root/japanese/kon2-16dot/files
diff options
context:
space:
mode:
authorasami <asami@FreeBSD.org>1995-06-24 17:25:17 +0800
committerasami <asami@FreeBSD.org>1995-06-24 17:25:17 +0800
commita9358087bd22058cd4aef877a8175447b7625ecb (patch)
tree1df61eb15abceb87e7ae6ddc6f41b25210698e20 /japanese/kon2-16dot/files
parentab26304d08a6865d4cd26f9cb49a044711bd0a9b (diff)
downloadfreebsd-ports-gnome-a9358087bd22058cd4aef877a8175447b7625ecb.tar.gz
freebsd-ports-gnome-a9358087bd22058cd4aef877a8175447b7625ecb.tar.zst
freebsd-ports-gnome-a9358087bd22058cd4aef877a8175447b7625ecb.zip
A Japanese console driver for VGA consoles.
Submitted by: Takashi Ogura <ogura@st.rim.or.jp>
Diffstat (limited to 'japanese/kon2-16dot/files')
-rw-r--r--japanese/kon2-16dot/files/dotconfig18
-rw-r--r--japanese/kon2-16dot/files/patch-aa1246
2 files changed, 1264 insertions, 0 deletions
diff --git a/japanese/kon2-16dot/files/dotconfig b/japanese/kon2-16dot/files/dotconfig
new file mode 100644
index 000000000000..99bfcc67f3bb
--- /dev/null
+++ b/japanese/kon2-16dot/files/dotconfig
@@ -0,0 +1,18 @@
+INCDIR = %%CURDIR%%/work/kon/include
+LIB = %%CURDIR%%/work/kon/lib/libgon.a
+
+TOPDIR = %%PREFIX%%
+BINDIR = $(TOPDIR)/bin
+LIBDIR = $(TOPDIR)/etc
+MANDIR = $(TOPDIR)/man/ja_JP.ujis/man1
+FONTDIR = $(TOPDIR)/fonts
+CONFIG_NAME = kon.cfg
+OPTS = -DCONFIG_NAME=\"$(LIBDIR)/$(CONFIG_NAME)\" -I$(INCDIR)
+CFLAGS = -O -Wall $(OPTS)
+LD = gcc $(CFLAGS)
+RM = rm -f
+INSTALL = install -c -s
+SUBDIRS = lib src font # tools
+
+HAS_VGA = HAS_VGA
+FLD_BDF = FLD_BDF
diff --git a/japanese/kon2-16dot/files/patch-aa b/japanese/kon2-16dot/files/patch-aa
new file mode 100644
index 000000000000..d755e03466db
--- /dev/null
+++ b/japanese/kon2-16dot/files/patch-aa
@@ -0,0 +1,1246 @@
+diff -c -r Makefile Makefile
+*** Makefile Mon Jan 24 15:09:55 1994
+--- Makefile Sat Jun 24 12:22:33 1995
+***************
+*** 1,6 ****
+ VERSION = 0.99
+
+! SUBDIRS = lib src font tools
+
+ ifeq (.config,$(wildcard .config))
+ include .config
+--- 1,6 ----
+ VERSION = 0.99
+
+! SUBDIRS = lib src font #tools
+
+ ifeq (.config,$(wildcard .config))
+ include .config
+***************
+*** 32,38 ****
+ do (cd $$i && echo cleaning all in $$i && $(MAKE) clean);\
+ done
+
+! install: makedir instbin
+ @if [ -f $(LIBDIR)/$(CONFIG_NAME) ]; then\
+ mv $(LIBDIR)/$(CONFIG_NAME) $(LIBDIR)/$(CONFIG_NAME)'.org';\
+ echo $(LIBDIR)/$(CONFIG_NAME)': file exists ... renamed !!';\
+--- 32,38 ----
+ do (cd $$i && echo cleaning all in $$i && $(MAKE) clean);\
+ done
+
+! install: makedir instbin instfont
+ @if [ -f $(LIBDIR)/$(CONFIG_NAME) ]; then\
+ mv $(LIBDIR)/$(CONFIG_NAME) $(LIBDIR)/$(CONFIG_NAME)'.org';\
+ echo $(LIBDIR)/$(CONFIG_NAME)': file exists ... renamed !!';\
+***************
+*** 44,51 ****
+--- 44,58 ----
+ @sh tools/makedir $(BINDIR)
+ @sh tools/makedir $(LIBDIR)
+ @sh tools/makedir $(MANDIR)
++ @sh tools/makedir $(FONTDIR)
+
+ instbin:
+ @for i in $(SUBDIRS);\
+ do (cd $$i && echo installing all in $$i && $(MAKE) install);\
++ done
++
++ instfont:
++ @for i in k14.bdf 7x14rk.bdf; do\
++ install -c /usr/ports/distfiles/$$i $(FONTDIR);\
++ gzip -f -9 $(FONTDIR)/$$i;\
+ done
+diff -c -r README.FreeBSD README.FreeBSD
+*** README.FreeBSD Sat Jun 24 12:41:42 1995
+--- README.FreeBSD Sat Jun 24 12:22:28 1995
+***************
+*** 0 ****
+--- 1,64 ----
++ KON for FreeBSD ver 0.1
++
++ 1995-06-04
++ 小倉 貴
++ <ogura@st.rim.or.jp>
++
++ はじめに kon for FreeBSD は、linux の日本語コンソールである kon-0.99.4e
++ と kon for NetBSD(NetBSD-0.9 がリリースされた当時に移植されたもの)をベース
++ に移植したものです。
++
++ 特徴として、シェアードメモリにフォントの情報を置くので多くの仮想コンソー
++ ル上で kon を起動してもメモリを多く使用しないことがあります。また、作者の
++ 手抜き、技術力の低さからオリジナルの kon-0.99.4e より多くの機能が削除され
++ ています。対応していない機能については選択できない用にしています。
++
++
++ インストールの仕方
++
++ 1.1 カーネルにシェアードメモリを設定する。/usr/src/sys/i386/conf/GENERIC
++ ファイルに"options SYSVSHM"の行を追加後、
++ config GENERIC;cd ../../compile/GENERIC
++ make depend;make all;cp kernel /
++ などを実行してリブートしてください。
++
++ 1.2 このディレクトリで make config を実行してください。VGA は必ず[y]に
++ してください。フォントの選択はどれか一つは必ず[y]にしてください。
++
++ 1.3 .config ファイルを実行モジュールをインストールするディレクトリや、
++ kon.cfg / man ファイルの格納先などを変更してください。デフォルトで
++ は以下の用になっています。
++ /usr/local/bin 実行モジュール格納先
++ /usr/local/etc kon.cfg ファイル格納先
++ /usr/local/man/ja_JP.ujis/man1 man ファイル格納先
++
++ 1.4 kon.cfg ファイルをフォントにあわせて変更してください。記述方法な
++ どは doc 以下のファイルを参考にしてください。使用するフォントは
++ デフォルトでは linux の日本語パッケージである JE の publicfont
++ の k14 と ank フォントを gzip 形式で /usr/share/fonts 以下に格納
++ するようになっています。
++
++ 1.5 make;make install を実行してください。
++
++
++ トラブルシューティング
++
++ kon がうまく起動しない時には、シェアードメモリが利用できるか確
++ 認してください。 また、画面が真っ暗でもほとんどの場合ハングはし
++ ていませんから"exit" や "CTRL+D"、"CTRL+C" などで kon を終了させ
++ "vidcontrol VGA_80x30"を実行して見てください。また、XFree86-3.1
++ とほぼ同じ方法でコンソール上に文字を表示しているのでXが利用でき
++ ることを確認してみてください。
++
++
++ 本ソフトウェア(kon for FreeBSD)はフリーソフトウェアであり、変更・配布は
++ 自由に行っていただいて結構です。ただ、バグや感想などを私宛にメールでもし
++ ていただければ幸いです。
++ また、kon for FreeBSD を使ってハードウェアや他のソフトウェアに問題が発生
++ しても責任をとることはできません。
++
++ 最後に、kon の作者である真鍋さん<manabe@papilio.tutics.tut.ac.jp>と
++ kon for NetBSD の作者である鵜飼さん<ukai@hplj.hpl.hp.com>、テストに協力し
++ てくださった皆様、ありがとうございました。
++
++ 小倉 貴<ogura@st.rim.or.jp>
+diff -c -r config.in config.in
+*** config.in Sun May 8 17:50:41 1994
+--- config.in Sat Jun 24 12:22:28 1995
+***************
+*** 1,14 ****
+ Support VGA driver
+ HAS_VGA y
+- Support J31SX driver
+- HAS_J31SX y
+- Support MOUSE driver
+- HAS_MOUSE y
+ Install Minix/V font loader
+ FLD_MINIX y
+- Install $fontx2 font loader
+- FLD_BDF y
+ Install .bdf font loader
+! FLD_FONTX2 y
+! Install J3100ROM font loader
+! FLD_J31ROM y
+--- 1,6 ----
+ Support VGA driver
+ HAS_VGA y
+ Install Minix/V font loader
+ FLD_MINIX y
+ Install .bdf font loader
+! FLD_BDF y
+diff -c -r font/Makefile font/Makefile
+*** font/Makefile Mon May 9 23:43:13 1994
+--- font/Makefile Sat Jun 24 12:22:28 1995
+***************
+*** 1,4 ****
+! OBJ = fld.o minix.o fontx2.o bdf.o j3100.o
+
+ ifeq (../.config,$(wildcard ../.config))
+ include ../.config
+--- 1,4 ----
+! OBJ = fld.o minix.o fontx2.o bdf.o # j3100.o
+
+ ifeq (../.config,$(wildcard ../.config))
+ include ../.config
+diff -c -r font/fld.c font/fld.c
+*** font/fld.c Wed May 11 14:29:35 1994
+--- font/fld.c Sat Jun 24 12:22:28 1995
+***************
+*** 37,43 ****
+--- 37,45 ----
+ u_char *FontLoadMinix();
+ u_char *FontLoadFontx();
+ u_char *FontLoadBdf();
++ #if defined(linux)
+ u_char *FontLoadJ3100();
++ #endif
+
+ static struct {
+ char *type;
+***************
+*** 56,62 ****
+--- 58,68 ----
+ int shmid;
+ struct shmid_ds shmseg;
+
++ #if defined(linux)
+ shmkey = ftok(CONFIG_NAME, fnum);
++ #elif defined(__FreeBSD__)
++ shmkey = 5000 + (fnum & 0x7F);
++ #endif
+ if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
+ return;
+ shmctl(shmid, IPC_STAT, &shmseg);
+***************
+*** 71,77 ****
+--- 77,87 ----
+ extern int forceLoad;
+
+ if (forceLoad) return(EOF);
++ #if defined(linux)
+ shmkey = ftok(SHMEM_NAME, fnum);
++ #elif defined(__FreeBSD__)
++ shmkey = 5000 + (fnum & 0x7F);
++ #endif
+ if (shmget(shmkey, 1, 0444) == EOF) return(EOF);
+ return(0);
+ }
+***************
+*** 82,89 ****
+ key_t shmkey;
+ int shmid;
+ u_char *shmbuff;
+!
+ shmkey = ftok(SHMEM_NAME, fi->type);
+ shmid = shmget(shmkey, fi->size+sizeof(struct fontInfo),
+ IPC_CREAT|0666);
+ shmbuff = shmat(shmid, 0, 0);
+--- 92,103 ----
+ key_t shmkey;
+ int shmid;
+ u_char *shmbuff;
+!
+! #if defined(linux)
+ shmkey = ftok(SHMEM_NAME, fi->type);
++ #elif defined(__FreeBSD__)
++ shmkey = 5000 + (fi->type & 0x0000007F);
++ #endif
+ shmid = shmget(shmkey, fi->size+sizeof(struct fontInfo),
+ IPC_CREAT|0666);
+ shmbuff = shmat(shmid, 0, 0);
+***************
+*** 120,126 ****
+--- 134,144 ----
+ int shmid;
+ struct fontInfo *fi;
+
++ #if defined(linux)
+ shmkey = ftok(CONFIG_NAME, fnum);
++ #elif defined(__FreeBSD__)
++ shmkey = 5000 + (fnum & 0x7F);
++ #endif
+ if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
+ return(0);
+ fi = (struct fontInfo*)shmat(shmid, 0, SHM_RDONLY);
+***************
+*** 223,232 ****
+ argv[0], type);
+ exit(EOF);
+ }
+ if (!fontLoaders[i].loader)
+ font = FontLoadJ3100(argc, argv);
+ else
+! font = fontLoaders[i].loader(fp);
+ if (font == NULL) {
+ fprintf(stderr, "%s> Can not load font.\n", argv[0]);
+ exit(EOF);
+--- 241,252 ----
+ argv[0], type);
+ exit(EOF);
+ }
++ #if defined(linux)
+ if (!fontLoaders[i].loader)
+ font = FontLoadJ3100(argc, argv);
+ else
+! #endif
+! font = fontLoaders[i].loader(fp);
+ if (font == NULL) {
+ fprintf(stderr, "%s> Can not load font.\n", argv[0]);
+ exit(EOF);
+diff -c -r include/config.h include/config.h
+*** include/config.h Sat Jun 24 12:41:57 1995
+--- include/config.h Sat Jun 24 12:34:57 1995
+***************
+*** 0 ****
+--- 1,39 ----
++
++ /*
++ KON - Kanji ON Linux Console -
++ Copyright (C) 1992, 1993
++ MAEDA Atusi (mad@math.keio.ac.jp)
++ Takashi MANABE (manabe@tut.ac.jp)
++
++ KON is free software; you can redistribute it and/or modify it
++ under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ KON is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ See the GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++ /*
++ NOTE: This is automatically generated config.
++ >>>>>>>>>>>>>> DO NOT EDIT !! <<<<<<<<<<<<<<
++ */
++
++ #ifndef CONFIG_H
++ #define CONFIG_H
++
++
++ /* Support VGA driver */
++ #define HAS_VGA
++
++ /* Install Minix/V font loader */
++
++ /* Install .bdf font loader */
++ #define FLD_BDF
++ #endif
+diff -c -r include/defs.h include/defs.h
+*** include/defs.h Tue Mar 9 00:29:44 1993
+--- include/defs.h Sat Jun 24 12:22:28 1995
+***************
+*** 22,27 ****
+--- 22,29 ----
+ #ifndef DEFS_H
+ #define DEFS_H
+
++ #undef FALSE
++ #undef TRUE
+ typedef enum {FALSE, TRUE} bool;
+
+ #define FAILURE (-1)
+diff -c -r include/version.h include/version.h
+*** include/version.h Thu Jul 7 23:19:16 1994
+--- include/version.h Sat Jun 24 12:22:28 1995
+***************
+*** 1 ****
+! #define VERSION "ver.0.99.4e (07/07)"
+--- 1 ----
+! #define VERSION "ver.0.1 (06/04)"
+diff -c -r include/vga.h include/vga.h
+*** include/vga.h Mon Jul 4 14:43:29 1994
+--- include/vga.h Sat Jun 24 12:22:29 1995
+***************
+*** 48,54 ****
+--- 48,58 ----
+ #define VGAATTR_CNT 21
+ #define EGAATTR_CNT 20
+
++ #if defined(linux)
+ #define GRAPH_BASE 0xA0000
++ #elif defined(__FreeBSD__)
++ #define GRAPH_BASE 0x0
++ #endif
+ #define FONT_SIZE 0x2000
+
+ #define VGA_FONT_SIZE 128
+diff -c -r kon.cfg kon.cfg
+*** kon.cfg Mon May 9 22:11:28 1994
+--- kon.cfg Sat Jun 24 12:37:32 1995
+***************
+*** 55,61 ****
+ VGA
+ 640 680 776 808 480 491 493 524
+ 1
+! 79 29
+
+ # Pels: Pallette value definition for VGA, VGAFM drivers
+
+--- 55,61 ----
+ VGA
+ 640 680 776 808 480 491 493 524
+ 1
+! 79 23
+
+ # Pels: Pallette value definition for VGA, VGAFM drivers
+
+***************
+*** 114,119 ****
+--- 114,122 ----
+ 63 63 63
+
+ # Startup command definition (usually font loading commands are specified)
++ bdf-zcat:Startup
++ gzip -cd /usr/local/fonts/k14.bdf.gz | /usr/local/bin/fld -t bdf -n
++ gzip -cd /usr/local/fonts/7x14rk.bdf.gz | /usr/local/bin/fld -t bdf -n
+ minix:
+ /usr/bin/fld.minix -n /usr/share/fonts/publicfont.ank
+ /usr/bin/fld.minix -n /usr/share/fonts/publicfont.k14
+***************
+*** 126,136 ****
+ fontx-zcat:
+ zcat /dos/lib/font/jpnhn16x.Z | /usr/bin/fld.fontx -n
+ zcat /dos/lib/font/jpnzn16x.Z | /usr/bin/fld.fontx -n
+! minix-gzip:Startup
+! /usr/bin/fld -t fontx -n /usr/share/fonts/vga.fnt
+! gzip -d < /usr/share/fonts/pubfont.k.gz | /usr/bin/fld -t minix -n
+! # gzip -d < /usr/share/fonts/vga.fnt.gz | /usr/bin/fld.fontx -n
+! # gzip -d < /usr/share/fonts/pubfont.a.gz | /usr/bin/fld.minix -n
+ fontx-gzip:
+ gzip -d < /dos/lib/font/jpnhn16x.z | /usr/bin/fld.fontx -n
+ gzip -d < /dos/lib/font/jpnzn16x.z | /usr/bin/fld.fontx -n
+--- 129,137 ----
+ fontx-zcat:
+ zcat /dos/lib/font/jpnhn16x.Z | /usr/bin/fld.fontx -n
+ zcat /dos/lib/font/jpnzn16x.Z | /usr/bin/fld.fontx -n
+! minix-gzip:
+! gzip -cd /usr/share/fonts/publicfont.k14.gz | /usr/local/bin/fld -t minix -n
+! gzip -cd /usr/share/fonts/publicfont.ank.gz | /usr/local/bin/fld -t minix -n
+ fontx-gzip:
+ gzip -d < /dos/lib/font/jpnhn16x.z | /usr/bin/fld.fontx -n
+ gzip -d < /dos/lib/font/jpnzn16x.z | /usr/bin/fld.fontx -n
+diff -c -r lib/Makefile lib/Makefile
+*** lib/Makefile Tue May 3 17:07:13 1994
+--- lib/Makefile Sat Jun 24 12:22:29 1995
+***************
+*** 8,14 ****
+ all: $(LIB)
+
+ $(LIB): $(OBJ)
+! $(AR) rcs $(LIB) $(OBJ)
+
+ depend .depend:
+ $(CC) $(CFLAGS) -M *.c > .depend
+--- 8,15 ----
+ all: $(LIB)
+
+ $(LIB): $(OBJ)
+! $(AR) rc $(LIB) $(OBJ)
+! ranlib $(LIB)
+
+ depend .depend:
+ $(CC) $(CFLAGS) -M *.c > .depend
+diff -c -r lib/font.c lib/font.c
+*** lib/font.c Wed May 11 14:30:09 1994
+--- lib/font.c Sat Jun 24 12:22:29 1995
+***************
+*** 36,42 ****
+--- 36,46 ----
+ int shmid;
+ struct shmid_ds shmseg;
+
++ #if defined(linux)
+ shmkey = ftok(CONFIG_NAME, fnum);
++ #elif defined(__FreeBSD__)
++ shmkey = 5000 + (fnum & 0x7F);
++ #endif
+ if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
+ return;
+ shmctl(shmid, IPC_STAT, &shmseg);
+***************
+*** 51,57 ****
+--- 55,65 ----
+ key_t shmkey;
+ int shmid;
+
++ #if defined(linux)
+ shmkey = ftok(CONFIG_NAME, fnum);
++ #elif defined(__FreeBSD__)
++ shmkey = 5000 + (fnum & 0x7F);
++ #endif
+ if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0) return(0);
+ return((u_char*)shmat(shmid, 0, SHM_RDONLY));
+ }
+diff -c -r lib/sockface.c lib/sockface.c
+*** lib/sockface.c Mon Mar 15 00:01:34 1993
+--- lib/sockface.c Sat Jun 24 12:22:29 1995
+***************
+*** 26,32 ****
+--- 26,34 ----
+ #include <sys/file.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
++ #ifdef linux
+ #include <sys/vt.h>
++ #endif
+ #include <sys/ioctl.h>
+
+ #include <interface.h>
+***************
+*** 43,49 ****
+ void SocketKill(int sfd)
+ {
+ close(sfd);
+! /* unlink(socketName);*/
+ }
+
+ int SocketRecCommand(int fd, struct messageHeader *mh)
+--- 45,51 ----
+ void SocketKill(int sfd)
+ {
+ close(sfd);
+! unlink("/tmp/.kon");
+ }
+
+ int SocketRecCommand(int fd, struct messageHeader *mh)
+***************
+*** 62,75 ****
+--- 64,83 ----
+
+ int SocketSearchName(struct sockaddr *sa, int fd)
+ {
++ #ifdef linux
+ struct vt_stat vs;
++ #endif
+
+ bzero(sa, sizeof(struct sockaddr));
+ sa->sa_family = AF_UNIX;
++ #if defined(linux)
+ if (ioctl(fd, VT_GETSTATE, &vs) < 0) {
+ return EOF;
+ }
+ sprintf(sa->sa_data, "%s%d", SOCKET_BASENAME, vs.v_active);
++ #elif defined(__FreeBSD__)
++ sprintf(sa->sa_data, "%s", SOCKET_BASENAME);
++ #endif
+ return(0);
+ }
+
+***************
+*** 83,89 ****
+--- 91,101 ----
+ SocketSearchName(&sa, fd);
+ s = socket(AF_UNIX, SOCK_STREAM, 0);
+
++ #if defined(linux)
+ len = sizeof(sa.sa_family) + strlen(sa.sa_data);
++ #elif defined(__FreeBSD__)
++ len = sizeof(sa.sa_family) + strlen(sa.sa_data) + 1;
++ #endif
+ if (connect(s, &sa, len) == -1) s = EOF;
+ return(s);
+ }
+diff -c -r src/Makefile src/Makefile
+*** src/Makefile Sat May 14 16:52:34 1994
+--- src/Makefile Sat Jun 24 12:22:29 1995
+***************
+*** 28,33 ****
+--- 28,36 ----
+
+ clean:
+ $(RM) -f *.o $(KON) *~ .depend
++ @for i in $(SUBDIRS);\
++ do (cd $$i && echo cleaning in $$i && $(MAKE) clean) || exit;\
++ done
+
+ install: $(KON)
+ $(INSTALL) -m 4755 $(KON) $(BINDIR)
+diff -c -r src/child.c src/child.c
+*** src/child.c Thu May 12 19:48:36 1994
+--- src/child.c Sat Jun 24 12:22:30 1995
+***************
+*** 20,25 ****
+--- 20,28 ----
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
++ #ifdef __FreeBSD__
++ #include <errno.h>
++ #endif
+
+ #include <getcap.h>
+
+***************
+*** 81,99 ****
+
+ RunStartupCmd();
+
+ sprintf(buff, "TERMCAP=:co#%d:li#%d:tc=console:",
+ dInfo.txmax + 1, dInfo.tymax + 1);
+ tcap = strdup(buff);
+ putenv(tcap);
+
+ if (startupMessage) {
+! printf("\rKON " VERSION ", Copyright (C) 1993, 1994 Takashi MANABE and MAEDA Atusi\r\n"
+ "KON comes with \x1b[4mABSOLUTELY NO WARRANTY\x1b[m.\r\n"
+ "KON is free software, and you are welcome to redistribute it\r\n"
+ "KON under certain conditions; show COPYING for details.\r\n");
+ }
+ printf("KON using VT number %c.\n\n",
+ *(ttyname(fileno(errfp))+8));
+ fflush(stdout);
+
+ if (execProg)
+--- 84,113 ----
+
+ RunStartupCmd();
+
++ #if defined(linux)
+ sprintf(buff, "TERMCAP=:co#%d:li#%d:tc=console:",
+ dInfo.txmax + 1, dInfo.tymax + 1);
++ #elif defined(__FreeBSD__)
++ sprintf(buff,"TERM=vt100");
++ #endif
+ tcap = strdup(buff);
+ putenv(tcap);
+
+ if (startupMessage) {
+! printf("\rKON for Linux 0.99.4e, Copyright (C) 1993, 1994 Takashi MANABE and MAEDA Atusi\r\n"
+ "KON comes with \x1b[4mABSOLUTELY NO WARRANTY\x1b[m.\r\n"
+ "KON is free software, and you are welcome to redistribute it\r\n"
+ "KON under certain conditions; show COPYING for details.\r\n");
++ #if defined(__FreeBSD__)
++ printf("\rKON for FreeBSD-2.x ver0.01 Takashi OGURA\r\n");
++ #endif
+ }
+ printf("KON using VT number %c.\n\n",
++ #if defined(linux)
+ *(ttyname(fileno(errfp))+8));
++ #elif defined(__FreeBSD__)
++ *(ttyname(fileno(errfp))+9));
++ #endif
+ fflush(stdout);
+
+ if (execProg)
+diff -c -r src/display/Makefile src/display/Makefile
+*** src/display/Makefile Mon Jul 4 14:46:12 1994
+--- src/display/Makefile Sat Jun 24 12:22:30 1995
+***************
+*** 18,24 ****
+ all: $(DISP)
+
+ $(DISP): $(OBJS)
+! $(AR) rcs $(DISP) $(OBJS)
+
+ depend .depend:
+ $(CC) $(CFLAGS) -M *.c > .depend
+--- 18,25 ----
+ all: $(DISP)
+
+ $(DISP): $(OBJS)
+! $(AR) rc $(DISP) $(OBJS)
+! ranlib $(DISP)
+
+ depend .depend:
+ $(CC) $(CFLAGS) -M *.c > .depend
+diff -c -r src/display/svga.c src/display/svga.c
+*** src/display/svga.c Mon Jul 4 14:39:28 1994
+--- src/display/svga.c Sat Jun 24 12:22:30 1995
+***************
+*** 33,40 ****
+--- 33,42 ----
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/mman.h>
++ #if defined(linux)
+ #include <linux/mm.h>
+ #include <sys/kd.h>
++ #endif
+ #undef free
+ #include <stdlib.h>
+
+diff -c -r src/display/vga.c src/display/vga.c
+*** src/display/vga.c Mon Jul 4 14:47:22 1994
+--- src/display/vga.c Sat Jun 24 12:22:30 1995
+***************
+*** 33,40 ****
+--- 33,47 ----
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/mman.h>
++ #if defined(linux)
+ #include <linux/mm.h>
+ #include <sys/kd.h>
++ #elif defined(__FreeBSD__)
++ #include <vm/vm_param.h>
++ #include <sys/ioctl.h>
++ #include <machine/console.h>
++ vm_size_t page_size;
++ #endif
+ #undef free
+ #include <stdlib.h>
+
+***************
+*** 567,572 ****
+--- 574,580 ----
+ {
+ int devMem;
+
++ #if defined(linux)
+ ioperm(VGAMISC_IN, 1, 1);
+ if (!(PortInb(VGAMISC_IN)&0x01)) { /* monochrome VGA */
+ vgaCrtAddr = 0x3B4;
+***************
+*** 594,599 ****
+--- 602,621 ----
+ Perror("/dev/mem");
+ return FAILURE;
+ }
++ #elif defined(__FreeBSD__)
++ if (ioctl(0, KDENABIO,0) < 0) {
++ Perror("ioctl CONSOLE_IO_ENABLE");
++ return FAILURE;
++ }
++ if (ioctl(0, KDSETMODE,KD_GRAPHICS) < 0) {
++ Perror("ioctl CONSOLE_IO_ENABLE");
++ return FAILURE;
++ }
++ if ((devMem = open("/dev/vga", O_RDWR|O_NDELAY) ) < 0) {
++ Perror("/dev/mem");
++ return FAILURE;
++ }
++ #endif
+ if ((gramMem = valloc(dInfo.gsize)) == NULL ||
+ (fontBuff1 = malloc(FONT_SIZE)) == NULL ||
+ (savePlane3 && (fontBuff2 = malloc(FONT_SIZE)) == NULL)) {
+***************
+*** 604,613 ****
+--- 626,642 ----
+ (caddr_t)gramMem,
+ dInfo.gsize,
+ PROT_READ|PROT_WRITE,
++ #if defined(linux)
+ MAP_SHARED|MAP_FIXED,
++ #elif defined(__FreeBSD__)
++ MAP_FILE|MAP_SHARED|MAP_FIXED,
++ #endif
+ devMem,
+ GRAPH_BASE
+ );
++ #if defined(__FreeBSD__)
++ ioctl(devMem, TIOCFLUSH);
++ #endif
+ close(devMem);
+ if ((long)gramMem < 0) {
+ Perror("mmap");
+***************
+*** 620,625 ****
+--- 649,655 ----
+ void VgaDetach(void)
+ {
+ gramHead = 0;
++ #if defined(linux)
+ ioperm(vgaCrtAddr, 1, 0);
+ ioperm(VGAATTR_A_O, 1, 0);
+ ioperm(VGAGRP_ADDR, 1, 0);
+***************
+*** 634,640 ****
+ ioperm(VGAMISC_OUT, 1, 0);
+ ioperm(vgaSt1Addr, 1, 0);
+ ioperm(VGAPAL_DATA, 1, 0);
+!
+ munmap(gramMem, dInfo.gsize);
+
+ SafeFree((void **)&gramMem);
+--- 664,671 ----
+ ioperm(VGAMISC_OUT, 1, 0);
+ ioperm(vgaSt1Addr, 1, 0);
+ ioperm(VGAPAL_DATA, 1, 0);
+! #endif
+!
+ munmap(gramMem, dInfo.gsize);
+
+ SafeFree((void **)&gramMem);
+diff -c -r src/main.c src/main.c
+*** src/main.c Sun May 15 23:21:17 1994
+--- src/main.c Sat Jun 24 12:22:30 1995
+***************
+*** 31,41 ****
+--- 31,46 ----
+ {
+ char *p;
+
++ #if defined(linux)
+ fprintf(stderr, "Kanji ON Linux console " VERSION "\n\n");
++ #elif defined(__FreeBSD__)
++ fprintf(stderr, "Kanji ON FreeBSD console " VERSION "\n\n");
++ #endif
+ if (geteuid() != 0) {
+ fprintf(stderr, "can not get I/O permissions.\n");
+ exit(EXIT_FAILURE);
+ }
++
+ ChangeNewConsole();
+ TermInit(argc - 1, argv + 1);
+ if (ReadConfig(CONFIG_NAME) < 0) {
+diff -c -r src/sock.c src/sock.c
+*** src/sock.c Thu May 12 13:35:44 1994
+--- src/sock.c Sat Jun 24 12:22:30 1995
+***************
+*** 68,81 ****
+ {
+ int len, sfd;
+ struct sockaddr sinfo;
+!
+ sprintf(sinfo.sa_data, "/tmp/.kon%s", tty);
+ unlink(sinfo.sa_data);
+ if ((sfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
+ PerrorExit(sinfo.sa_data);
+ }
+ sinfo.sa_family = AF_UNIX;
+ len = sizeof(sinfo.sa_family) + strlen(sinfo.sa_data);
+ if (bind(sfd, &sinfo, len) < 0) {
+ message("can't bind socket");
+ PerrorExit(sinfo.sa_data);
+--- 68,89 ----
+ {
+ int len, sfd;
+ struct sockaddr sinfo;
+!
+! #if defined(linux)
+ sprintf(sinfo.sa_data, "/tmp/.kon%s", tty);
++ #elif defined(__FreeBSD__)
++ sprintf(sinfo.sa_data, "/tmp/.kon");
++ #endif
+ unlink(sinfo.sa_data);
+ if ((sfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
+ PerrorExit(sinfo.sa_data);
+ }
+ sinfo.sa_family = AF_UNIX;
++ #if defined(linux)
+ len = sizeof(sinfo.sa_family) + strlen(sinfo.sa_data);
++ #elif defined(__FreeBSD__)
++ len = sizeof(sinfo.sa_family) + strlen(sinfo.sa_data) + 1;
++ #endif
+ if (bind(sfd, &sinfo, len) < 0) {
+ message("can't bind socket");
+ PerrorExit(sinfo.sa_data);
+diff -c -r src/term.c src/term.c
+*** src/term.c Tue May 17 19:39:31 1994
+--- src/term.c Sat Jun 24 12:22:30 1995
+***************
+*** 22,32 ****
+--- 22,40 ----
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++ #if defined(linux)
+ #include <termio.h>
++ #elif defined(__FreeBSD__)
++ #include <termios.h>
++ #include <machine/console.h>
++ #define termio termios
++ #endif
+ #include <signal.h>
+ #include <errno.h>
++ #if defined(linux)
+ #include <sys/vt.h>
+ #include <sys/kd.h>
++ #endif
+ #include <sys/time.h>
+ #include <sys/ioctl.h>
+ #include <sys/file.h>
+***************
+*** 46,51 ****
+--- 54,66 ----
+ #include <sock.h>
+ #include <mouse.h>
+
++ #ifdef __FreeBSD__
++ #define TCSETA TIOCSETA
++ #define TCGETA TIOCGETA
++ #define SIGCLD SIGCHLD
++ #define XCASE 0
++ #endif
++
+ int masterPty; /* master pseudo-tty file descriptor */
+
+ #define MAX_TTYNAME 10
+***************
+*** 92,98 ****
+ static void ExitPty(int signum)
+ {
+ int stat;
+!
+ if (wait3(&stat, WNOHANG, 0) != childPid) {
+ TextMode();
+ kill(0, SIGTSTP);
+--- 107,116 ----
+ static void ExitPty(int signum)
+ {
+ int stat;
+!
+! #if defined(__FreeBSD__)
+! signal(SIGCLD, SIG_DFL);
+! #endif
+ if (wait3(&stat, WNOHANG, 0) != childPid) {
+ TextMode();
+ kill(0, SIGTSTP);
+***************
+*** 322,328 ****
+--- 340,350 ----
+ }
+
+ chown("/dev/tty0", getuid(), getgid());
++ #if defined(linux)
+ sockFd = SocketInit(ttyname(0) + 8);
++ #elif defined(__FreeBSD__)
++ sockFd = SocketInit(ttyname(0) + 9);
++ #endif
+ init.socket = TRUE;
+
+ /* Get old tio of 0 */
+***************
+*** 353,360 ****
+--- 375,394 ----
+ newTio.c_oflag &= ~OPOST;
+ newTio.c_cc[VMIN] = 1;
+ newTio.c_cc[VTIME] = 0;
++ #if defined(__FreeBSD__)
++ newTio.c_cc[VDISCARD] = _POSIX_VDISABLE;
++ newTio.c_cc[VLNEXT] = _POSIX_VDISABLE;
++ newTio.c_cc[VSTART] = _POSIX_VDISABLE;
++ newTio.c_cc[VSTOP] = _POSIX_VDISABLE;
++ newTio.c_cc[VINTR] = _POSIX_VDISABLE;
++ newTio.c_cc[VSUSP] = _POSIX_VDISABLE;
++ newTio.c_cc[VDSUSP] = _POSIX_VDISABLE;
++ newTio.c_cc[VQUIT] = _POSIX_VDISABLE;
++ #endif
+ newTio.c_cflag |= CS8;
++ #ifdef linux
+ newTio.c_line = 0;
++ #endif
+ ioctl(0, TCSETA, &newTio);
+ /* VGA initialize */
+ VtStart();
+***************
+*** 371,376 ****
+--- 405,419 ----
+ /* I'm child */
+ /* Make me process leader */
+ setsid();
++ #if defined(__FreeBSD__)
++ {
++ int devtty;
++ if ((devtty = open("/dev/tty",O_RDWR|O_NDELAY)) >= 0) {
++ ioctl(devtty, TIOCNOTTY, (char *)0);
++ close(devtty);
++ }
++ }
++ #endif
+ /* Open TTY(slave) */
+ if ((slavePty = open(ptyName, O_RDWR)) < 0) {
+ PerrorExit(ptyName);
+***************
+*** 378,383 ****
+--- 421,429 ----
+ close(masterPty);
+ /* Set old tio to TTY */
+ ioctl(slavePty, TCSETA, &oldTio);
++ #ifdef __FreeBSD__
++ ioctl(slavePty, TIOCSCTTY, (char *)0);
++ #endif
+ /* Set std??? to pty */
+ dup2(slavePty, 0);
+ dup2(slavePty, 1);
+***************
+*** 390,396 ****
+--- 436,446 ----
+ {
+ int cfd;
+
++ #if defined(linux)
+ if ((cfd = open("/dev/console", 0)) < 0) {
++ #elif defined(__FreeBSD__)
++ if ((cfd = open("/dev/vga", 0)) < 0) {
++ #endif
+ PerrorExit("/dev/console");
+ }
+ ioctl(cfd, VT_ACTIVATE, orgVtNum);
+***************
+*** 399,417 ****
+--- 449,475 ----
+
+ void ChangeNewConsole()
+ {
++ #if defined(linux)
+ struct vt_stat vts;
++ #endif
+ int cfd, vfd, vtNum, child, parent, mode;
+ char vtty[MAX_TTYNAME + 1];
+
++ #if defined(linux)
+ if ((cfd = open("/dev/console", 0)) < 0)
++ #elif defined(__FreeBSD__)
++ if ((cfd = open("/dev/vga", 0)) < 0)
++ #endif
+ fatal("can't open /dev/console");
+ ioctl(cfd, KDGETMODE, &mode);
+ if (mode == KD_TEXT) {
+ close(cfd);
+ return;
+ }
++ #if defined(linux)
+ ioctl(cfd, VT_GETSTATE, &vts);
+ orgVtNum = vts.v_active;
++ #endif
+ ioctl(cfd, VT_OPENQRY, &vtNum);
+ if (vtNum < 0)
+ fatal("can't get free VC");
+***************
+*** 423,429 ****
+--- 481,491 ----
+ pause();
+ }
+ setsid();
++ #if defined(linux)
+ sprintf(vtty, "/dev/tty%d", vtNum);
++ #elif defined(__FreeBSD__)
++ sprintf(vtty, "/dev/ttyv%d", vtNum);
++ #endif
+ if ((vfd = open(vtty, O_RDWR)) < 0)
+ fatal("can't open %s", vtty);
+ if (ioctl(cfd, VT_ACTIVATE, vtNum) != 0)
+diff -c -r src/utmp.c src/utmp.c
+*** src/utmp.c Wed Sep 22 20:31:12 1993
+--- src/utmp.c Sat Jun 24 12:22:31 1995
+***************
+*** 38,43 ****
+--- 38,44 ----
+
+ void SetUtmp(char *tty)
+ {
++ #ifdef linux
+ struct utmp utmp;
+ struct passwd *pw;
+ struct group *ttygrp;
+***************
+*** 63,72 ****
+--- 64,75 ----
+ ttyGid = -1;
+ chmod(tty, 0622);
+ chown(tty, getuid(), ttyGid);
++ #endif
+ }
+
+ void ResetUtmp(char *tty)
+ {
++ #ifdef linux
+ struct utmp utmp, *utp;
+ char *tn;
+
+***************
+*** 84,87 ****
+--- 87,91 ----
+ endutent();
+ chmod(tty, 0600);
+ chown(tty, 0, ttyGid);
++ #endif
+ }
+diff -c -r src/vc.c src/vc.c
+*** src/vc.c Mon May 23 23:33:25 1994
+--- src/vc.c Sat Jun 24 12:22:31 1995
+***************
+*** 24,35 ****
+--- 24,44 ----
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
++ #if defined(linux)
+ #include <sys/vt.h>
++ #endif
+ #include <fcntl.h>
+ #include <signal.h>
++ #if defined(linux)
+ #include <termio.h>
++ #elif defined(__FreeBSD__)
++ #include <termios.h>
++ #include <machine/console.h>
++ #endif
+ #include <sys/ioctl.h>
++ #ifdef linux
+ #include <sys/kd.h>
++ #endif
+
+ #include <mem.h>
+ #include <getcap.h>
+***************
+*** 257,263 ****
+ vtm.relsig = 0;
+ vtm.acqsig = 0;
+ ioctl(0, VT_SETMODE, &vtm);
+!
+ con.text_mode = TRUE;
+ SetTextMode();
+ ioctl(masterPty, TIOCSWINSZ, &text_win);
+--- 266,274 ----
+ vtm.relsig = 0;
+ vtm.acqsig = 0;
+ ioctl(0, VT_SETMODE, &vtm);
+! #if defined(__FreeBSD__)
+! ioctl(0, VT_RELDISP, 1);
+! #endif
+ con.text_mode = TRUE;
+ SetTextMode();
+ ioctl(masterPty, TIOCSWINSZ, &text_win);
+***************
+*** 270,275 ****
+--- 281,289 ----
+
+ con.text_mode = FALSE;
+ ioctl(0, KDSETMODE, KD_GRAPHICS);
++ #if defined(__FreeBSD__)
++ ioctl(0, VT_RELDISP, VT_ACKACQ);
++ #endif
+ signal(SIGUSR1, LeaveVC);
+ signal(SIGUSR2, EnterVC);
+ vtm.mode = VT_PROCESS;
+***************
+*** 295,303 ****
+ static
+ void LeaveVC(int signum)
+ {
+ signal(SIGUSR1, LeaveVC); /* should use sigaction()? */
+ if (busy) {
+! release = TRUE;
+ return;
+ }
+ release = FALSE;
+--- 309,318 ----
+ static
+ void LeaveVC(int signum)
+ {
++
+ signal(SIGUSR1, LeaveVC); /* should use sigaction()? */
+ if (busy) {
+! release = TRUE;
+ return;
+ }
+ release = FALSE;
+***************
+*** 319,324 ****
+--- 334,340 ----
+ if (!con.active) {
+ con.active = TRUE;
+ GraphMode();
++ signal(SIGUSR2, EnterVC);
+ #ifdef HAS_MOUSE
+ if (mInfo.has_mouse) {
+ MouseStart();
+***************
+*** 794,809 ****
+--- 810,829 ----
+ static int ConfigBeep(const char *confstr)
+ {
+ beepCount = atoi(confstr) * 10000;
++ #if defined(linux)
+ ioperm(COUNTER_ADDR, 1, TRUE);
++ #endif
+ return SUCCESS;
+ }
+
+ void Beep(void)
+ {
+ if (!con.active) return;
++ #ifdef linux
+ PortOutb(PortInb(COUNTER_ADDR)|3, COUNTER_ADDR);
+ usleep(beepCount);
+ PortOutb(PortInb(COUNTER_ADDR)&0xFC, COUNTER_ADDR);
++ #endif
+ }
+
+ static int ConfigInterval(const char *confstr)
+***************
+*** 852,858 ****
+--- 872,880 ----
+ SafeFree((void **)&textBuff);
+ SafeFree((void **)&attrBuff);
+ SafeFree((void **)&flagBuff);
++ #ifdef linux
+ ioperm(COUNTER_ADDR, 1, FALSE);
++ #endif
+
+ SafeFree((void **)&videoName);
+ }
+diff -c -r src/vt.c src/vt.c
+*** src/vt.c Sat Jun 11 16:48:44 1994
+--- src/vt.c Sat Jun 24 12:22:31 1995
+***************
+*** 21,27 ****
+--- 21,31 ----
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <string.h>
++ #if defined(linux)
+ #include <termio.h>
++ #elif defined(__FreeBSD__)
++ #include <termios.h>
++ #endif
+ #include <malloc.h>
+ #include <sys/types.h>
+
+diff -c -r tools/Configure tools/Configure
+*** tools/Configure Sat Mar 26 19:10:24 1994
+--- tools/Configure Sat Jun 24 12:22:31 1995
+***************
+*** 50,70 ****
+
+ cat << 'END' >> $CONFIG_MK
+
+! TOPDIR =
+! BINDIR = $(TOPDIR)/usr/bin
+ LIBDIR = $(TOPDIR)/etc
+! MANDIR = $(TOPDIR)/usr/man/ja_JP.ujis/man1
+ CONFIG_NAME = kon.cfg
+ OPTS = -DCONFIG_NAME=\"$(LIBDIR)/$(CONFIG_NAME)\" -I$(INCDIR)
+ CFLAGS = -O -Wall $(OPTS)
+ LD = gcc $(CFLAGS)
+ RM = rm -f
+ INSTALL = install -c -s
+! SUBDIRS = lib src font tools
+
+ END
+
+! echo "KON Kanji ON Linux console"
+
+ while read mess
+ do
+--- 50,70 ----
+
+ cat << 'END' >> $CONFIG_MK
+
+! TOPDIR = /usr/local
+! BINDIR = $(TOPDIR)/bin
+ LIBDIR = $(TOPDIR)/etc
+! MANDIR = $(TOPDIR)/man/ja_JP.ujis/man1
+ CONFIG_NAME = kon.cfg
+ OPTS = -DCONFIG_NAME=\"$(LIBDIR)/$(CONFIG_NAME)\" -I$(INCDIR)
+ CFLAGS = -O -Wall $(OPTS)
+ LD = gcc $(CFLAGS)
+ RM = rm -f
+ INSTALL = install -c -s
+! SUBDIRS = lib src font # tools
+
+ END
+
+! echo "KON Kanji ON FreeBSD console"
+
+ while read mess
+ do
+diff -c -r tools/makedir tools/makedir
+*** tools/makedir Tue Mar 23 08:44:32 1993
+--- tools/makedir Sat Jun 24 12:36:23 1995
+***************
+*** 7,21 ****
+ echo 'ok'
+ else
+ echo ' not exist'
+- echo -n 'make' "'$1'" '? '
+- read yn
+- if [ "$yn" = "n" -o "$yn" = "N" ]
+- then
+- exit 1
+- fi
+ mkdir -p $1
+- if [ $? != 0 ]
+- then
+- exit 1
+- fi
+ fi
+--- 7,11 ----