From: nemossan@uitec.ac.jp (Sakurao NEMOTO)
Newsgroups: comp.os.minix,fj.os.minix,fj.sources
Subject: minix-V OFFICIAL Update 	6/6 English-Document
Date: 23 Nov 92 21:26:10 GMT
Followup-To: comp.os.minix
Organization: Univ. Industrial Tech., Sagamihara, JAPAN

takamiti@mix  released  "minix-V-1.00",  which is the system  to display
2-byte coded Fonts,  such as Japanese KANJI,  in IBM-PC  and  its clones
under Minix.


Past posting of minix-V were done at Aug/12 1992, in two-packages
	minix-V package of version 0.9    and
	font-package

Then minor-fixes to version 0.9a is posted.


These versions  v0.9 and v0.9a are superseded  by this new version 1.00,
but font-package is not changed,  so please use the same font-package in
v.1.00, too.

"minix-V OFFICIAL Update" postings are in seven-articles,  from "0 of 6"
to "6 of 6", and "0/6" is original document for minix-V 1.00 written  by
takamiti@mix in Japanese Language,  and  posted only to "fj.sources" and
"fj.os.minix",  while from "1/6" to "6/6"  are posted to "comp.os.minix"
besides the NewsGroups mentioned above. Articles from "1/6" to "5/6" are
Sources and CDIFFs (to PH's 1.5),   those have been posted one-week ago,
and  the final  "6/6"  (which you are reading now) is  (broken)  English
translation  of  the document  by nemossan@mix == nemossan@uitec.ac.jp.


news:	takamiti@mix released "minix-V1.01a", which can display 100-col*
	40-lines  under SVGA 800*600/16-color mode,  and 80-col*32-lines
	under VGA 640*480 dots, but  redistribution of it is, currently,
	inhibited.				(Nov 23 1992  <nemossan)

------------------------------------------------------------------------

	Table of contents
	~~~~~~~~~~~~~~~~~
		 1	what is minix-V
		   1.1	features of minix-V
		   1.2	necessities of your Environments

		 2	Installation of sources
		   2.0	Files on this issue
		   2.1	Place where the files be put
		   2.2	Extraction of Files
		   2.3	Configuration of "minix/config.h"
		   2.4	use of "configsrc" script
		     2.4.a  when no  SCSI-driver is used
		     2.4.b  when use SCSI-drivers
		     2.4.c  confirmation from "configsrc"-script
		   2.5	modification of makefile-s
		   2.6	Compilation of kernel

		 3	On the Japanese key-board

		 4	CDIFFs for FDD drivers of ps55/note.

		 5	"ide_wini.c" usable for "ps55/note"

		 6	SCSI-drivers
		   6.1	AHA-SCSI-driver
		   6.2	mini-SCSI-driver
		   6.3	mtio.h and mtio.c

		 7	Installation of KANJI-fonts

		 8	system initialization by "/system/config" file
		   8.1	its rules
		   8.2	Keywords and parameters
		   8.3	Examples of "/system/config" file

		 9	Booting minix-V
		   9.1	Booting minix-V
		   9.2	Hot-keys:  PF-3
		     9.2.1  Shift      + PF-3	toggle Kanji-codes
		     9.2.2  ALT        + PF-3	toggle ANK-fonts
		     9.2.3  ALT + CTRL + PF-3	reinitialise the screen
		   9.3	Toggle KANJI-code by ioctl()
		   9.4	two-byte-coded languages other than Japanese

		10	to whom does not know MXboot
		  10.1	trial run of MXboot from floppy

		11	How to taste minix-V

		Acknowledgements
------------------------------------------------------------------------



1	What is minix-V?
    Minix-V  is  the Minix-kernel to display Japanese 2-byte-coded fonts
on IBM-ATs and its clones.   Here  we release the patches for  Minix-1.5
sold by Prentice Hall and newly written source-codes.

    IBM-ATs and its clones  have  no hardware  to  display  2-byte-coded
fonts, so displaying them should be done by software approach like DOS/V
from IBM-Japan.   The load of CPU may increase, but current hardware has
no problem for it.

    Minix-V supports  all of Japanese-fonts  including Hankaku-Katakana,
thus if you have Japanized application such as  "ari" (vi-like editor to
input/display/edit Japanese Language)  on  Minix,  you can make up  com-
fortable Japanese environment on Minix.



1.1  features of minix-V
    This is the release 1.00 of the minix-V, and its features are;

	1)  Displays  80-ascii  characters  (40 Zenkaku characters)  per
	    line and 30-lines per screen using 0x12-mode of VGA-display.

	2)  Internal-code of the kernel  has  two-types  Japanese Kanji-
	    code, Shift-JIS and EUC, both are widely used in Japan.

	3)  These Kanji-codes  can  be  toggled together  by ioctl()  or
	    hot-key.

	4)  Supports OADG-keyboard, from IBM-Japan(?). "OADG" stands for
	    "Open Architecture Developper's Group".

	5)  Supports graphics functions like Tektronix 4010.

	6)  Supports  SCSI-devices  interfaced by  Adaptec-154x or mini-
	    SCSI-IF.



1.2  Necessities of your Environments
    Minix-V requires IBM-ATs or its clones and  the following hardwares.
	1)  CPU should be 80286 or higher (8086/8088  is  not  supported
	    now).

	2)  Protect-memory more than 1-MB.

	3)  VGA-display or upper.

	4)  You should be able to  reconfigure/recompile original kernel
	    of Minix from PH.

	5)  You'll be  comfortable,  if you can boot-up Minix by MXboot.
	    Minix-V  is intended  to be used under MXboot.  Of course it
	    can be used by floppy-boot.

    Minix-V loads Kanji-fonts  into protected-memory,  thus the usage of
8086 or 8088, which do not support  protected-memory,   needs  a lots of
modification of sources.   In  Japan,  IBM-machines   were  minor,  thus
there are very few amount of IBM-PCs/XTs  and   almost all of IBM/clones
are  ATs or higher,  thus  restriction to  80286-CPU or higher  has  no-
problem in Japan.



2   Installation of sources
    Minix-V  is  based on  Minix-1.5  from PH,  thus  you should install
original source-code and be compilable them.  Compilation can be done by
both  original ACK-16-bits CC  or  BCC 32-bits  compiler.  If  you  have
already installed 32-bits environment,  you can install  minix-V  on it,
and also you can install on 16-bits environment  and  move  into 32-bits
in future.



2.0:  Files on this issue
    CDIFFs and newly provided source-codes for minix-V  are  archived by
TAR, according to its sub-directories. "configsrc" is a shell-script and
supports to setup environments and makefile-s, and  should  be placed in
the same directory as fs, kernel, mm or tools subdirectories (see next).

	configsrc	shell-script to configure
	minix.tar	CDIFFs for sources in /usr/include/minix subdirectory
	kernel.tar		"	      /usr/src/kernel		"
	mm.tar			"	      /usr/src/mm		"
	fs.tar			"	      /usr/src/fs		"
	tools.tar		"	      /usr/src/tools		"

    These are  the contents  of the "minix-V package",  and  you  may be
necessary to prepare files on "font package" which contains;

	7x14.bdf,	7x14.bit,	7x14rk.bdf,	7x14rk.bit,
	bdf2vfnt.c,	fonted.c,
	kh.kana
	header.k14,
	publicfont.ank,	publicfont.k14
	font_ed.doc

You  will  find   the detailed explanation  on them  in  "font package".
"publicfont.ank"  and  "publicfont.k14" are  the minimum necessities for
minix-V, and they are Alpha-Numeric-Kana and Kanji font files,  respect-
ively.



2.1:  Place where the files be put
    "configsrc"-script and *.tar files should be placed as follows;
	/usr/include/minix/minix.tar
	/usr/src/configsrc
		/fs/fs.tar
		/kernel/kernel.tar
		/mm/mm.tar
		/tools/tools.tar
		|
		+-- .....



2.2:  Extraction of Files
    Extraction  of  *.tar  files  in  every sub-directory  will give you
CRCLIST, and  makefile.cpp  besides  CDIFFs and  newly provided  source-
codes.

    "ahascsi.tar" extracted from "kernel.tar"  contains  aha_scsi.c, its
documents and header-file, "mtio.h".  If you do not use  any SCSI-inter-
faced  devices,  you  need not extract them,  but  if you use,  "mtio.h"
header file  from "ahascsi.tar" is necessary, and copy it to
/usr/include/sys.  "mkscsi" script  is  necessary  to make device-files.



2.3:   Configuration of /usr/include/minix/config.h
    This file contains  definitions to affect several subdirectories  on
configuation of kernel.  "config.h" file actually used  will be  derived
from "config.seed" in this packages by "configsrc"-script.  Additions of
definitions to minix-V are only two;

	DBCS_CONSOLE  and  LANGUAGE

"DBCS_CONSOLE" flag  is  for making up the console to be able to process
2-byte-coded characteres.  When and ONLY when  this flag is defined, the
LANGUAGE flag is valid. Current minix-V has only the function to display
Japanese language.  If  you  want  to make  Japanese-Language cosole  by
minix-V, remain these two definitions as is.

    The other definitions are;
	RS_DTR_CTRL:	adds  dis-connect of Modems  by  DTR's on/off or
			issue SIGHUP by CD (Carrier Detect) off.
	ENABLE_SCSI:	adds task  for aha-154x/mini-SCSI interfaces.
	AHA_SCSI:	adds driver-task for Adaptec's aha-154x SCSI/IF.
	MINI_SCSI:	adds driver-task for mini-SCSI/IF.

    "ENABLE_SCSI" compile switch should be one of the following three;
	NO_SCSI_IF:	in case not use any SCSI interface.
	AHA_154x_IF:	in case use Adaptec's AHA-154x.
	MINI_SCSI_IF:	in case use mini-SCSI interface.

    "AHA_SCSI" and "MINI_SCSI" flags show which SCSI-interfaces is used,
and defined by "ENABLE_SCSI" switch, so user need not to specify it.

    These  switches  (definitions)  are  valid  only if  not defined  in
command-line  so  you  may setup  by  OPTION  of   makefile,  but  these
infulence to plural subdirectories, so be careful not to mismatch.

    "config.seed" (will be changed to "config.h") derived from minix.tar
contains the following definitions;

		#define RS_DTR_CTRL	1
		#define ENABLE_SCSI	WHAT_SCSI_IF

here,  "WHAT_SCSI_IF" is undefined in the kernel-source code,  and  they
are defined by shell-script "configsrc" according to the user's specifi-
cations.  So, users are need not modify them by editor etc.



2.4:  use of "configsrc"-script
    Before running the "configsrc"-script,  you should do install all of
the sources (including header-files) to appropriate positions.



2.4.a:  when no SCSI-driver is used
    Move into the subdirectory where "configsrc" is, (/usr/src), and run
it  to setup  your environments  such as  "/usr/include/minix/config.h",
"kerne/wini.c",  "kernel/scsi.c"  and "makefile"s in any subdirectories.
"configsrc" script  takes ONE or THREE parameters,  meaning of them  are
as follows;


	1st param:	driver-name to be linked to "wini.c".
			    ide, at, xt, ps, esdi, no, bios [clean]
		This parameter  specifies  HD-driver source to be linked
		to "wini.c",  and it may be the one of [ide| at| xt| ps|
		esdi| no| bios].   Some  of them  (ex. esdi_wini.c ) are
		not  contained in  PH's original source code,  and   you
		need prepare by yourselves.
	1st param:	clean
		"clean" flag as the first parameter  is  also valid, and
		specifies to clean-up intermediate files.


2nd and 3rd parameters are valid ONLY in Minix-386 systems.

	2nd param:	type of CPU and usage of NPX
			    386, 386+387, 486
		This is  for 32-bits kernel and  means  whether Numeric-
		coprocesser is used or not.   Use  appropreate  one  ac-
		cording to your machines.

	3rd param:	environment to make Minix-386 (cross or self)
		To specify  making  kernel  under  16-bit-system  cross-
		compiling 32-bit kernel or under 32-bit-system compiling
		its own sytem by itself.

	Examples:
	    configsrc clean	# clean up every subdirectory
	    configsrc at	# makes 16-bit kernel using at_wini.c.
	    configsrc at 386 cross  # makes 32-bit kernel using at_wini.c
				    # under 16-bit environment.
	    configsrc at 486 self   # makes 32-bit kernel using at_wini.c
				    # under 32-bit environment and 80486-CPU.



2.4.b  another usage of "configsrc" script (when use SCSI-drives)
    To use SCSI-driver,  you are necessary to show which SCSI-driver  is
used (aha/mini).  This additional  parameter  should be placed after the
first-parameter at the item "2.4.a",  and  have the effect to setting up
"/usr/include/minix/config.h".   The  parameters for  Minix-386 (type of
CPU and its environment---cross/self)  should be followed,  thus maximum
number of the parameter  can be 4, and every parameter has the following
meaning;

	1st param:	driver-name to be linked with "wini.c"
			    ide, at, xt, ps, esdi, no  or  clean

	2nd param:	type of SCSI-interface
			    aha  or  mini

	3rd param:	type of CPU (and numerical coprocesser, NPX)
			    386,  386+387  or  486

	4th param:	environment to make Minix-386
			    cross  or  self

The third and fourth parameters are valid only in Minix-386, I mean, you
need not them in 16-bits kernel.


    Examples:
	configsrc at aha	# makes 16-bit kernel with at_wini
				# and aha-154x (SCSI-driver).

	configsrc at mini	# 16-bit kernel with at_wini and mini-SCSI
				# for SCSI-driver.

	configsrc no aha	# make "wini.c" as dummy-task.  This is for
				# Minix which use only SCSI-drives.

	configsrc at aha 386 cross # make 32-bit kernel by cross-compiling
				# with at_wini and aha-154x for SCSI-drivers.

	configsrc at aha 486 self # make 32-bit kernel by 32-bit environment
				# for at_wini and aha-154x for SCSI-drivers.



2.4.c  confirmation from "configsrc"-script
   Starting up by these parameters, "configsrc"-script shows its own re-
cognitions and prompts your confirmation.  If  OK, answer in "y" (small-
letter of Y),   otherwise  it  quits  running,  thus  neither  rewriting
/usr/include/minix/config.h  nor  making "makefile"s nor linking drivers
will be done.



2.5:  modification of "makefile"s
    The step-4 mentioned above, makes "makefile"s ready to go, but there
are some options in the makefile-s to be your kernel  more fittable  for
you, so lookup makefile-s  and  modifiy  the right of "OPTION=".  I have
prepared the following options in the makefile-s.


(note1:	At least, you have to see "tools/makefile"  to check.
	Original Document says "ready-to-go", but you have to
	edit the file, otherwise  you  will  see
	"Please edit me"     message.		< nemossan   )

(note2:	In "tools/makefile.cpp", the following is written,
		ROOT_DEV	= 	#
		    |
		all:  init built bootblok menu mxinstall mxboot
	if you have any hesitation to make  mxinstall/mxboot,
	you  may be  better  put   "#"   between  "menu"  and
	"mxinstall", or define "ROOT_DEV = /dev/null".
	Otherwise "make all"  does  "mxinstall" and "mxboot",
	but which is no-harm, I think.
						< nemossan   )


	kernel/makefile
		-DGRAPHICS:	to be active the graphic-routine
		-DNUM_LOCK:	to be active Num-Lock key at boot,
				if so,  Numerical 10-keys can be used as
				10-keys in 101-keyboard.
		-DSKK:		adds a function to use SKK (Japanese Language
				Front End Processer) in OADG-keyboard into
				keyboard.c. This patch is made by isibasi@mix.

	{	-DUSE_NPX:	This is for Numerical-coProcesser in 32-bits
				kernel, and will be provided by "configsrc"-
				script, so you need not specify.  This is
				originally in c386-patch.
	}


	mm/makefile
		-DGNU_AOUT_TOO:	This addes the function to load GNU's a.out
				format directly, this is valid only 32-bit
				kernel.

	fs/makefile
		There is no option here.

	tools/makefile
		There is no option here.



2.6:  Compilation of kernel
    After above processes, and modification of /usr/src/include/minix/config.h,
and makefile-s besides source-files, then go to fs-subdirectory and type
"make",  then  go to "mm" and make,....  finally  to  tools-dir.   After
"make all" type as "make image".   This makes  "/system/minix.sys" which
is bootable kernel under  MXboot or floppy.  See /usr/src/tools/makefile
for details.



3	On the Japanese key-board.
    Minix-V  contains  patches  for IBM-Japan's OADG-keyboard,  made  by
isibasi@mix.  OADG-keyboard  looks like  JIS-layout keyboard,  but it is
World-Standard keyboard,  thus  at the boot-up, scan-code of it and key-
tops of it does *not* concide in some key-switches.

    MXboot's  boot-up-routine  automatically  recognises  the  following
6-keyboards from IBM-Japan.
	5535-S		with and without numeric-key-pad
	5576-A01
	5576-001
	5576-002
	5576-003

This is senced by Keyboard-ID-value from BIOS, (may be) extended by IBM-
Japan.  Any other keyboards  from ones mentioned above table  are recog-
nised as  101-keyboard,  so if you are using  imported ATs (clones) with
OADG-keyboard made in Japan, the key-board is  not senced correctly.  In
such a case, you should write your keyboard type in /system/config file,
as shown later.  If the keyboard is recognized  as  one of the ps??-key-
board above, and it has no numeric-key-pad (ten-keys),  Num-Lock will be
OFF at boot-time, even if you have specified -DNUM_LOCK flag  in kernel/
makefile.  Such a keyboard-type  as 101-key, which has ten-keys, initial
condition of ten-keys are defined by compile-switch NUM_LOCK.

    If you boot-up from floppy,  press "="  key  as printed  on the key-
tops. Utilizing the differences between AT-101-keys and OADG-keys, table
used in /usr/src/kernel/keyboard.c will be changed.



4	CDIFFs for FDD drivers of ps55/note.
    This is also  made by  isibasi@mix.  CDIFFs for the FDD is the patch
for AUTO-CPU-speed switch, and  is placed  /usr/src/kernel/kernel.tar as
floppy55n.cdif.   Usual   desk-top-machines  can  be  used  by  original
floppy.c.



5	"ide_wini.c" usable for "ps55/note"
    "ide_wini.c" has  its base  on modification of  "at_wini.c"  made by
isibasi@mix.  It looks  HDC  to know the number of Hard-drives  or their
parameters  instead of using BIOS,  thus it gets correct parameters even
under IDE+SCSI environment.   This driver can work  for  IDE/IF recently
used in many clones.

    Basic part of ide_wini.c is the same with at_wini.c,  and it differs
at initialize routine.  In old machines or some IDE/IF,  it may fail, if
so use original at_wini.c.   If you use  "ide_wini.c"  with one of SCSI-
drivers, modify *_wini.c as shown later.



6	SCSI-drivers
6.1	AHA-SCSI-driver
    In minix-V,  you can use SCSI-drivers  posted by  jsd@cs.umd.edu  to
"comp.os.minix", which is for Adaptec's AHA-154x.   This driver supports
not only HDD, but also Tapes, and very useful.   To my regret, it may be
written in 32-bits, so it cannot be used under 16-bits-Minix and ACK-CC.
Source-files in Minix-V are modified  to be used  under both  16/32-bits
environments.

    Tests for Quarter-Inch-Tapes (QIC) are done by Archive's Viper 2150s
/2525s.  Between the two drives,  return values of  SCSI_LIMITS commands
differ,  thus  in case of  2525s,  original source-code  cannot be used.
So, "aha_scsi.c" in minix-V package sets up parameters after getting re-
source information and knowing which (2525s/2150s) is used.
    And I have added ERASE-function and RETENTION in tpioctl() and mt.c.
The tape-drives will return normal return-code at receiving the command,
but erasing-motion takes several (?) seconds, so before completion,  you
cannot access  tape-drive(s).  If you access it before completion, tape-
driver will respond you "I/O error".  It is the same for REWIND command.
I've set so because it  may decrease  the load  of  the CPU,  instead of
executing in back-ground. If you want to wait until READY, please define
IMMED_BIT 0 in aha_scsi.c as

	#define IMMED_BIT 0

(I don't know whether this is "vender unique" or not.  If so, it is only
for Archive's Viper-series.)


Maximum  number  treatable  by modified aha_scsi.c is five, but original
"mkscsi"  script  can make  upto  two device files.  If you  need  more,
please help yourselves :-)  Max-Num of tape drives are two, as original.


    Winchester driver to be used with aha_scsi is ONLY "ide_wini.c",now.
If you use at_wini.c/esdi_wini.c/ps_wini.c, you are necessary  to modify
their source code to get resource information from HDControler and init-
ialize, or modify "MAX_DRIVES" flag in *_wini.c according to your number
of drives like (but I didn't try.)


	#define MAX_DRIVES	2

		|
		|
		v

	#if AHA_SCSI			<-- this is defined by minix/config.h
	#define MAX_DRIVES	1	<-- your number of drives
	#else
	#define MAXDRIVES	2
	#endif



6.2  mini-SCSI driver
    This is the driver for mini-SCSI-I/F, made by mintk@mix.
    "mini-SCSI"  is the SCSI-interface to be connencted to printer port,
and enables the usage of SCSI-devices  even if  the machine has   no ex-
tention slots, as is the case in laptop machines.  This mini-SCSI driver
adds a task like aha-scsi, but it has no interrupt function, and it will
not be recognised  by Disk-BIOS  at the time of  booting, so differences
for sources are comparably small than in the case of AHA-154x.

    The functions of  mini-SCSI  is very good, I think,  and it supports
also  tape-drives.  Actually,  supporting  tpioctl() in "aha_scsi.c"  is
quoted  from the function of  mini-SCSI-driver.  It may be  suitable for
Japanese rabbit house  to adopt mini-SCSI, rather than  be  occupied  by
large machine(s) in small room  :-)

    At running "configsrc"-script,if you specify "mini" following to the
drive-name of "wini.c"  and  its number   on the  command parameters  of
configsrc, the source-code will be setup.  The device files supported by
"mini_scsi.c"  is  the same  with the one  of  aha_scsi.c, so de-archive
"ahascsi.tar" from "kernel.tar", and use "mkscsi"-script.   Don't forget
copy "mtio.h" to /usr/include/sys.



6.3  "mtio.h" and "mtio.c"
    This is the source-codes originally accompanied with "aha_scsi.c" by
jsd@cs.umd.edu,    and  it  can  be  used   both  in  "aha_scsi.c"   and
"mini_scsi.c".  "mintk@mix"  made several modification to be used in 16-
bit-Minix,  and added several functions  such as  erasing tapes,  or re-
tension.

    Operation of  "mt erase" differs between mini_scsi.c and aha_scsi.c.
In case of the kernel by  "mini_scsi.c",  erasing will be done after re-
winding the tape, while in case of "aha_scsi.c",  erasing is done at the
current point  of  the tape.  This is from the internal processes of the
both drivers.



7	Installation of KANJI-fonts.
    Minix-V  extracts  internal-font of VGA-drivers, so even you have no
KANJI-fonts, it works showing only Alpha-Numeric characters of VGA.  But
it has no-merits to install minix-V, then.    :-)

    Minix-V uses free-font  originally made by Mr.Tachibana, and donated
to Xconsortiam,  and expands it to cosole for displaying Japanese Fonts.
You will find the fonts in "core/mit/fonts/bdf/misc" directory as
"k14.bdf" and "7x14rk.bdf"  in ".bdf"  (Bitmap Distribution Format),  of
the distributed tape of "X11R5".  Of course,  you can use  another fonts
if you prepare by yourselves,  ex. extraction  from  NEC-PC9801/Toshiba-
J3100/dosV etc etc.

    Minix-V displays one-ZENKAKU-character on 16*16 dots of CRT.
    Minix-V expects the header (1-kB) of the font-files, and utilizes it
to expand fonts by console drivers;

------------------------------------------------------------------------
struct font_header {
	short font_size;	/* bytes number per one character pattern */
	short font_hight;	/* font height in dots */
	short font_width;	/* font width  in dots */
	unsigned short top_code;
	unsigned short end_code;
	char _unused[502];	/* empty */
	char memo[508];
	long sum;
};
#define FONT_HEAD_SIZE		sizeof(struct font_header)
------------------------------------------------------------------------


The  "font package for minix-V"  accompanied with this "minix-V package"
contains ready-to-use font Files, which contains those header,

	publicfont.ank
	publicfont.k14

so, copy them for install the fonts as

	# cp publicfont.ank /system/sysfont.ANK
	# cp publicfont.k14 /system/sysfont.STD


The bootup routine of minix-V knows

	/system/sysfont.ANK	font for Alpha-Numeric-Kana (1-byte-code)
	/system/sysfont.STD	font for Japanese Zenkaku-chars (2-byte).
					 JIS's level-1 and level-2.
	/system/sysfont.OPT	font for JIS's level-3 fonts.
					(currently not available)

The "minix-V font package" contains "header.k14" which is the header for
k14 font, if you use publicfont.* (which contains the header), it is not
necessary.

    "sysfont.ANK"  should be the same format  with VGA's ROM  font,  and
should  have  8*16 dots  including  KATAKANA-fonts.   If  you  will  use
another, ex. extracted by ROM-fonts/dosV-fonts,  prepare header files by
yourselves.  In such a case, please record its history  on memo-field of
the header,  and  don't distribute  the font-file(s) keeping  it as your
private fonts.

    We have made tools  to extract them from NEC-PC9801/Toshiba-J3100 or
dosV:IBM-Japan.  These tools  extract fonts  from (ROM)-fonts  and   add
header making font-file (these tools are not included in the packages).
    These tools  are  made  by different persons,  so they have slightly
different specifications.  Ex.,  tool for J3[13]00  extracts  all of the
255-fonts,  and for NEC-PC9801 extracts only KATAKANAs and adds to VGA's
fonts.  Font-extracter for dos/V supports both Hankaku and Zenkaku-fonts
from dos/V.
    Fonts thus extracted from your machines,  should NOT be distributed,
otherwise, it violates copyrights of fonts.



8	system intialization by "/system/config" file
8.1  its rules
    You can configure at bootup time by "/system/cofnig" file in minix-V
version 1.00.  This is normal text-file,  and you can make it  by  usual
editor like elle, elvis...  Every line of it should be written according
to the following rules

(1)	descriptions  after "#"  in every line  are  regarded as
	comment.  Null line is permitted.
(2)	Space-character (' ', '\t') at the top of a line or bet-
	ween keywords/parameters will be neglected.
(3)	Keywords are defined after '=' character.
(4)	Keywords are all in small-letter, and the followings are
	defined with the meaning as written.



8.2  Keywords and parameters
	ramsize
	    Specifies the size of RamDisk in KB.
	    If omitted, set by "DRAMSIZE" in "include/minix/boot.h".
		ex.	ramsize = 2048		# reserve 2MB of RamDisk


	rootdev
	    Specifies the device of root-file-system in  Minix's
	    device-name.  If omitted,"DROOTDEV" in
	    "include/minix/boot.h"  is its initial,  but  if  it
	    has been booted via MXboot,  booted drive and parti-
	    tion (from /dev/hd1 to /dev/hd9 except /dev/hd5)  is
	    set automatically (of course /dev/fd? is not set).

	    Setting of "rootdev" is  unnecessary when root-file-
	    system is on "/dev/hd?".  This is necessary when the
	    system is <IDE+SCSI> or <SCSI+SCSI> and booted  from
	    MXboot.
	    "setparam()" in "menu.c" assumes  that booted parti-
	    tion is controled by winchester-driver recognized by
	    BIOS. And if the drive is the first one, it sets the
	    device as /dev/hd[1-4] and  if  second /dev/hd[6-9].
	    If <IDE+SCSI> the second-drive,  and  if <SCSI+SCSI>
	    the both drives,  will conflict with the device-name
	    in Minix, and booting will fail.  So this is needed.

	    If  you  specify  whole device  like  "/dev/??0"  or
	    "/dev/??5",  adjusted partition number  reported  by
	    MXboot is set as root-device.

		ex.	rootdev = /dev/sd2
				# sets "/dev/sd2" as root-device
			rootdev = /dev/sd0
				# if you booted by MXboot and it
				# was  4-th partition  of  first
				# SCSI drive, /dev/sd4 is root.


	keyboard
	    Specifies  the keyboard type connected  from  one of
	    the followings;
		standard
		olivetti
		dutch-ext
		us-ext
		jpn-oadg
	    If omitted, minix-V assumes type of keyboard as  the
	    one written by "DSCANCODE" in include/minix/boot.h.
	    If  you  are using  55??-* type keyboard  from  IBM-
	    Japan,  this will be checked  before interpretion of
	    /system/config,so you need not write "jpn-oadg", and
	    if you write,  contents of this file  superseds  the
	    checking,  so some inconsistency  may occur ex. ten-
	    keys.   This "jpn-oadg"  should be written  when you
	    are using  imported machines with JIS-aligned (looks
	    like) OADG-keyboard.

		ex.	keyboard = jpn-oadg


	sbcfont
	dbcfont
	optionalfont
	    Specifies font-file names at booting. These are cor-
	    respond  to  "Single Byte"  for  Alpha-Numeric-Kana,
	    "Double Byte" for ZENKAKU, and Extended 2-byte fonts
	    such as JIS-level-3 fonts.
	    If omitted,  font-files  specified by "usr_font[][]"
	    in "tools/option.c" will be used.   If  the file  is
	    not found in /system directory  or  the header of it
	    is broken,  the file  will not be loaded,  but  this
	    check is very simple, so sometimes miss-check  occur
	    displaying invalid fonts.   Path for  font-files are
	    limited only to "/system" directory.   Currently op-
	    tional font is not prepared.

		ex.	sbcfont = bold.ank
			    # use "bold.ank" file to Single-Byte

			dbcfont = jisx9051.16
			    # use Kanji Font in JIS-X9051 font


	kanjicode
	    Specifies Kanji-code used as Shift-JIS or EUC.
	    ("Shift-JIS" is widely used in M?-DOS, and "Extended
	     Unix Code: EUC is in Unix-machines).
	    If omitted,  definition  by  "DEFAULT_DBCS_CODE"  in
	    "include/minix/font.h" is used (usually SJIS, if not
	    changed.)   "stty default"  will  set Kanji-code  as
	    defined in this compiler-flag.

		ex.	kanjicode = sjis	# sets Shift-JIS
			kanjicode = euc		# sets EUC



8.3  Examples of "/system/config" file
    If you have following environment,

	1.  Imported clone
	2.  OADG-keyboard (looks like JIS-arranged)
	3.  Both one IDE and one SCSI hard-drive
	4.  Minix is installed one of the SCSI-partition
	5.  root file device is "4." above

"/system/config" file may be
----------------------------------------------------------
#
# system configuration for minix-V
#

#ramsize = 2048
#kanjicode = euc
rootdev = /dev/sd0              # :-)
keyboard = jpn-oadg

# end of config-file
-----------------------------------------------------------



9	Booting minix-V
9.1  Booting minix-V
    By patched sources  and  newly made  makefile-s, and make-s in every
subdirectory, and "make image" at the /usr/src/tools,  you will  see new
kernel-image as "/system/minix.sys",  and  if  you have  installed font-
files and setting-up in"/system/confg" file,  you can boot-up minix-V by
MXboot.



9.2	Hot-keys -- PF-3
    Original Minix from PH uses PF-3 to toggle scroll-modes. In minix-V,
I have added three more functions in PF-3.  Functions (1) and (2)  below
toggles like single-PF-3.


	(1)  Shift + PF-3	toggle KANJI-codes
	    In minix-V, both  Shift-JIS-code (used in MS-DOS)  and  EUC-
	    code (Extended Unix Code, used in Unix) can be dislayed.  At
	    the time of booting,   Kanji-code  is set to one  written in
	    "/system/config" (if not specified, it obeys the  definition
	    of source-code in  kernel,  usually Shift-JIS), but  you can
	    toggle displaying from  S-JIS to EUC,  and  EUC to S-JIS, at
	    any instance by  <Shift>+<PF3>.  Switching Kanji-code can be
	    made even from application-software, as you will see later.


	(2) ALT + PF-3		switches ANK-character-tables
	    Minix-V  has  two sets of  one-byte-fonts, one is  VGA-fonts
	    and the other is user prepared ANK-fonts (i.e.
	    /system/sysfont.ANK).  If sysfont.ANK could be loaded at the
	    boot-up time,  it will be primarily used.  If  this font  is
	    broken or the operator wants to display  VGA's font,  he can
	    toggle by "ALT + PF-3",  if  the sysfont.ANK is successfully
	    loaded.  But if not loaded, he cannot toggle (only VGA-fonts
	    are used), of course.


	(3) ALT + CTRL + PF-3	force to re-initialize the screen
	    In  minix-V,  graphic functions  like Tektronix 4010 graphic
	    terminal is supported.
	    If some binary files are displayed on CRT,and if it contains
	    some sequences to enter graphic-mode,  the  screen will show
	    some  unpredictable  patterns.  Don't you have  such  an ex-
	    perience as

		$ dosread  B  minixv10.taz   minixV10.tar.Z

	    which  missing ">" redirection option?

	    In  such  a  case,   you  can  reinitialize  the screen   by
	    "ALT + CTRL + PF-3".  All of  the settings  except selection
	    of KANJI-code will be re-initialized by this hot-key.



9.3  toggle KANJI-code by ioctl()
    In  minix-V,   you  can  toggle  KANJI-code   not  only  by  hot-key
"Shift + PF-3" but also by ioctl.   Switching  by  ioctl will be made by
change parity-bit for console, ODD-parity for Shift-JIS, and EVEN-parity
for EUC.   The following script  can be used  to  know which  is  active
currently,  or  to set  specified KANJI-code,  this  is   an example  of
switching by ioctl.

------------
# kcode - show/set Kanji code for MINIX-V

Errmsg="`basename $0`: Illegal parameter."
case $# in
	0)	set `stty`
		case $4 in
			 "odd")	echo 'current KANJI code is SHIFT-JIS';;
			"even")	echo 'current KANJI code is EUC';;
			     *)	echo 'ANK only!';;
		esac
		;;
	1)	case $1 in
			"sjis")	stty odd;;
			 "euc")	stty even;;
			 "def")	stty default;;
			     *)	echo $Errmsg;;
		esac
		;;
	*)	echo $Errmsg;;
esac
----------



9.4  2-byte-coded languages other than Japanese
    The console driver  of minix-V  expands fonts on VGA-graphic-display
and  it  does not use  any special  hardwares  such as  KANJI-character-
generator,  so if you modify  some of the source-codes and prepare font-
files, you can display  2-byte-coded Languages  such as Kerean,  Chinese
etc etc, easily.

    I'll write  "inside.doc"  for minix-V  to show how to maintain fonts
or how to expand them,  refer it  for details.



10  to whom does not know MXboot.
    You have seen many times "MXboot", in this document. This is a local
tool in Nikkei-mix, commercial BBS system in Janan, and you may not know
it (but its newest version v2.01 has been posted twice to comp.os.minix,
so you may get from some archive-sites.)

    The newest version of MXboot is  v2.01,  and  it  supports not  only
V1-File-System used  in  Minix-1.5,  but it also  supports V2-FS  to  be
adopted in Minix-2.0.

    By this "MXboot" and "assistIPL" (contained here),  you can  boot-up
Minix  from  any-HDD-drives and any partitions.   And by  assistIPL  the
other OSs than Minix will be selectively booted up,  I'm sure it is very
useful for the persons who maintain several OSs in a HDD.



10.1  trial run of MXboot system from floppy
    If you don't know  MXboot,  you may  hesitate to use it, but minix-V
-kit contains MXboot-V2.01 kit as well as source-codes and CDIFFs. It is
put in tools.tar, so just try it on floppy.   To do so,  please  prepare
formatted blank-diskette, and go ahead. This trial run does not harm any
source-codes nor binary files you have already used/installed.

    De-tar  tools.tar of minix-V-kit at the /usr/src/tools subdirectory,
and prepare makefile (not "Makefile", original from PH) for trial-run of
MXboot as follows from "makefile.cpp" in this kit as;

    if 16-bit environment and ACK-CC
	/usr/lib/cpp -P -DACK makefile.cpp | uniq > makefile

    if 32-bit environment and BCC
	/usr/lib/cpp -P -DINTEL_32BITS -DSELF386 makefile.cpp | uniq > makefile

Then  specify  the device-name of  HD-partition which you want to use as
root-file-sytem in the newly made makefile, at the right-side of
"ROOTDEV =".

For example, if you want to use /dev/hd2 as root-file-system,

	ROOTDEV = /dev/hd2

Then the following precess is enough to make MXboot and install it.

	make mxinstall
	make mxboot

This makes "MXboot"  stay  on boot-block (reserved by mkfs) of specified
partition, and  waits to be awaken.  "assistIPL" will awake this MXboot,
and  usually  it is  replaced with master-IPL of the top of the HDD, but
this is a trial-run, so make an experience by a floppy.

To have  an experience of  assistIPL with floppy-diskette, use FDassist.
Insert the formatted blank-diskette into FDD#0, and

	make FDassist
	cp FDassist /dev/fd0
	sync

will install FDassist onto the floppy.  Then you need kernel-image to be
read by MXboot.  It may be the same from one of for floppy-disk, and  if
you have it in somewhere,  copy it  as /system/minix.sys.  If  you  have
only  boot-disk, extract  boot-image  as follows (boot-disk should be on
FDD#0);

	cc -o bi bi.c		# compilation of bi.c
				# "bi.c" is contained in tools.tar
	mkdir /system		# MXboot finds core-image here
	bi -v /dev/fd0 /system/minix.sys  # extracts core-image

    Thus the all preparations are made, "logout" and set the floppy-disk
(where FDassist is written)  on  FDD#0, and  reboot  the system.   While
rebooting,  don't forget  to  keep pressing  <shift>-key,  otherwise the
system will reboot  according to the  partition  where boot-flag is set.
Pressing shift-key while booting  forces  assistIPL (FDassist)  to enter
into  selection mode  of  partition,  and  you  will see "system-ID" and
partition-No. on the left-top corner of screen,  so  specify  partition-
No. (example mentioned above is /dev/hd2, thus here press "2") and press
<Enter>-key.

    Then  you will see the  usual menu-display, so set root-file-sysstem
(ex. /dev/hd2) and Minix will boot-up after "=".  If you have not set up
root-file-system correctly, it *NEVER* boots, of cource,  check /dev/hd2
and /dev/* /etc/* ...

    Normal MXboot will boot-up without displaying menu-screen (of course
you can set up to display menu) and  shows "login:" prompt  setting  the
partition  where boot-up  as  root-file-system.  And "assistIPL"  allows
boot-up  OSs from  non-active partition, and if limited to Minix, it can
be booted-up from even second-HDD-drives.

    If interested, try to get MXboot's document, which is available from
some archive-site,  there  you will see detailed installation manual  of
MXboot.

    MXboot is ported into Linux by iga@mix,  and  "IPLaid" for MS-DOS is
also avaiable, the latter is ready-to-use for ex. 386bsd.



11	How to taste minix-V
    The  developper  of  minix-V  uses MXboot  at its maximum limits, so
minix-V expects MXbooot.   To tel the truth, he has never booted minix-V
from floppy-disks.  So, my reccomendation process is as follows;

	1st:	install standard Minix which boots from floppy.
	2nd:	install MXboot.   If you have any  hesitation to install
		MXboot on  HDD  rewriting master-IPL of the drive,   try
		MXboot  using  FDassist.   In this  case  the  operation
		process is the same  as  one of normal FD-booted Minix.
	3rd:	install minix-V according to this document.

Then,  you can use Japanese Language on the machine made (originally) in
the USA  and  under the Operating-system  made in  Holland.



Acknowledgements:
    Minix-V  owes very much  to the Public-Domain Fonts,  k14 and 7x14*,
originally made by Mr.Tachibana  and donated by kagotani@cs.titech.ac.jp
and his group to  Xconsortiam.    I'd like to express  sincere thanks to
them.

    CDIFFs/Sources  for minix-V from PH's Minix-1.5  contain  raw source
codes for Minix-386 related portion, *386.x, this is from
evans@syd.dit.CSIRO.AU (Bruce.Evans),  who allowed us  to distribute his
raw source codes.  I'd like to express sincere thanks to Bruce.

    And also  I want to  express thanks to jsd@cs.umd.edu  who  released
SCSI-device-drivers for Adaptec AHA-154x,  this is  very  timely release
for these days expanding SCSI-IF's usage.

    I want  to express  thanks  all of the  participants  of Nikkei-mix,
who  checked  minix-V  and  provided  many patches  and  device-drivers,
including  k.h@mix,  isibasi@mix,  and  mintk@mix.

    The best thanks may be given to  Prof. Andy, who taught us the deli-
cious taste of  a cup of water,  when  we have  too  much  enough foods.
(This is the word from  gideon.n@mix, in the magazine "bit" published in
 Japan.)
------------------------------------------------------------------------
	Originally written by takamimti@mix in Japanese-language,
	slightly  modified and trially translated into English by
	nemossan@mix == nemossan@uitec.ac.jp.		(1992  Nov.  23)
Newsgroups: comp.os.minix
From: phil@plisgyn.demon.co.uk (Philip H Jones)