  README file for kanjidrill  v3.2 March 9, 1994
     (by Philip Brown)


NEW in 3.2:
 NUMBEROFCHOICES define in "defs.h" actually works now :-/ You can change
 the number of multiple choice buttons shown. It is now increased to
  _five_
  Note that if you change this, you will have to change the
  FULLWIDTH define in the same file, to make things appear pretty again.

Note to oldtimers below v3: A few things have changed reguarding usefiles
and dictionaries. The "usefile" name has changed.  Also, it's more
important than ever to actually look at the Imakefile now.


      KDRILL
    *********

  Here is a program to quiz folks on either english-to-kanji, or
kanji-to-english. It will quiz you on either the whole dictionary [around
6000 kanji?]  OR specific kanji, if you give the JIS-number in the
"usefile".
It can actually quiz you on kanji<-> kana readings, now, as well as be
selective about the "grade-level".


THIS REQUIRES Xwindows to run. Specifically, X11 R5 !! This is because I
mit X11R4's Athena Widgets do not handle 16-bit fonts properly. If
you happen to have a 16-bit capable libXaw, you should be okay anyway.

  I use the PD kanjidic file from monu6.cc.monash.edu.au: I do not include
it, as it is 700K. There is also a mirror at ftp.uwtc.washington.edu, but
they have not updated to the latest version as of this writing.
(look in either pub/nihongo, or pub/Japanese/JimBreen)

  For the usefile, one number per entry, in hex, at the beginning of the
line. NO TRAILING SPACE!! Anything after will be treated as a comment, so
you can notate the meaning of each kanji. A nifty useful usefile is
included.

The approximate format of any kanjidic file used should be:

kk 3333 .... Fxxx Gxxx .... nnnn  nnnn  nn {english} {english}

Where kk is the 16-bit kanji value seen as two 8-bit vals.(MSB,LSB)
'....' is any char any number of times, except for things starting with
"F" or "G"
Fxxx is a frequency of use rating.
Gxxx is a grade level rating.
nn is 16-bit kana interpretation with spaces between different ones.
There may be any number of {english} segments, also.
Note that the braces {} MUST be included there.

Unfortunately, "kanjidic" does not have english translations for some
entries, and does not have kana for others. Depending on whether the
program is in "showenglish" mode, or "showkana" mode, entries will be
skiped if they do not have the required information to display.
(When you change modes, however, the entries will again become valid, as
all entries in kanjidic have at LEAST one type)

TO CHANGE FONTS, startup files, etc, you can either edit the 'fallback'
resources in "init.c", or make up a resource file "KDrill", and stick it
in your local app-defaults file. (Or load them with xrdb)
Sample KDrill file included in the archive.



   The neat thing about programming this drill is that it uses the Kanji in
the kanji24 Xwindows font, so we don't have to store extra graphics.
Adding new entries to the usefile is fairly simple. grep through the
dictionary for potential numbers, then use "xfd -fn kanji24" to check out
what the characters actually look like. Note that you have to click "Next
Page" MANY times before getting to the actual kanji section.


CODING NOTES:

   Coding this was.. "fun".  Fairly educational. I started this program
almost a year ago, because there was nothing out there like it. I made
some stupid design errors, and didn't have a clue what Xrm stuff was for.
Then there was a long hiatus, while I went through a few more quarters of
school :-)

After finding some nice code ("tetris"), the "junk" I found in "xterm"
started to make more sense.  Coupled with perusing certain other
programs, both bad and good, made me more aware of how a "good" X program
should be written.
  I hope this program can be used as an example of a well-written
Xwindows program. I haven't got EVERYTHING in there.. but I do have most
of the things a "proper" Xwindows program should have.
[ I even have an icon now! tee-hee..]

 Philip Brown philb@soda.berkeley.edu {preferred address}
 [also for the next year or so, philb@cats.ucsc.edu]


