
̌`

́A

wb_[ARgAiXgApxAiAA
o^\`CfbNX1(e[u)A
tϊCfbNX1(ǂ)AtϊCfbNX1()A
CfbNX2({)AtϊCfbNX2

ȂB

CfbNXɊւ́A̎ނɂđ݂肵Ȃ肷
邪A݂ȂƂ̂́AvO̒ł́A݂邪傫0
ĈĂB

	ǂ̌`̎ŁAǂ̃CfbNXpĂ邩B

					Œ	tϊ	o^

o^\`CfbNX1(e[u)			
tϊCfbNX1(ǂ)				
tϊCfbNX1()				
CfbNX2({)					
tϊCfbNX2					

wb_
wb_́A128oCg̑傫B́At@C̃wb_
ɑĒuBéA

syurui(Œ = 1Ao^ = 2Atϊ = 3)
maxcomment(Rg̒)
maxhinsi_list(iXg̑傫)
maxserial(VAԍ̍ől)
maxkanji(̒)
maxtable(o^\`CfbNX1̒ = struct uind1 ̌)
maxhontai(CfbNX2̒)
gosuu(̌ꐔ)
hpasswd(pxύX邽߂̃pX[h(WNN_PASSWD_LEN))
total(g[^px(gp))
maxri1[D_YOMI](tϊCfbNX1(ǂ)̒ = struct rind1 ̌)
maxri1[D_KANJI](tϊCfbNX1()̒ = struct rind1 ̌)
maxri2(tϊCfbNX2̒ = struct rind2 ̌)
56oCg gp̈(0)
  
wb_[܂߁ASẴ̕oCgI[_́ArbOECfBA
(68000n)łB

Rg
maxcomment ̑傫 w_char ̔z

iXg
maxhinsi ̑傫 w_char ̔zBۂhinsi_node ̍\́A
ǂݍގɍB

px
maxserial ̑傫 unsigned char ̔z

i
maxserial ̑傫 unsigned short ̔z


Aǂ݁AуRg̏B(̌`ɂA͈قȂB)
ϒ̃f[^B(maxkanji 傫\Ă)
éA[hEɍĂKvB
ǂ݂AVAԍAGg̊́AAĂ
Ă͂ȂȂB̂߁AႦ΁Aforward sȂAforward 
̑O̊ɑΉVAԍAȂ悤
KvB

̍̕\́AIɕύXɂȂ\B
(bug ĕύXύXłȂ)

ẽf[^`

(1oCg) unsigned char ł̊̑傫B
(Ȃ킿AAǂ݁ARg킹 256oCg̐B)

̊̏state(1oCg)
	0rbg(HAS_YOMI) : ǂ݂̏Ă邩ǂB
	1rbg(HAS_KANJI) : Rg̏Ă邩ǂB
	2rbg(FORWARDED) : tHA[hĂ邩ǂB
	3-7rbg : gp

ȉAstate ̏ԂɉāAc̃f[^̌`qׂB

state & FORWARDED  0 łȂ
	̌ɁAforward ꂽ̔ԒnÅ̐擪
΂̐ƂĒuB̐\̂ɁA4oCgpĂB
forward ́AɁÅ݂̈ʒułȂĂ͂ȂȂB
[hE̊֌WAforward̔Ԓn
擪 2 oCg2oCgA2oCg2oCgƂȂĂB
Ȃ킿Akptr ̐擪ւ unsigned char ̃|C^̎A
forward ̃AhX́A
	(*(w_char *)(kptr + 2)) << 16 | (*(w_char *)(kptr + 4))
œB
forward ́Acomment set ̂߂ɁA̓eɕύX󂯁A
݂̗̊̈ɏ؂ȂɁApB

state & FORWARDED  0 ŁAstate & HAS_YOMI  0 łȂƂB
	́Atϊ`̎̌`łBǂ݁AA
 UJIS ̕ƂĒuB܂Astate & HAS_COMMENT  0 łȂƂ
ɂ́AGg̃Rg UJIS ̕ƂĂ̌ɑB

state & FORWARDED  0 ŁAstate & HAS_YOMI  0 ̂ƂB
	́Ao^\`AŒ`̏ꍇłB
 UJIS ̕ƂĒuB܂Astate & HAS_COMMENT  0 łȂƂ
ɂ́AGg̃Rg UJIS ̕ƂĂ̌ɑB

ȂASĂ̓ UJIS ́̕Anull terminate ĂB

tϊ`̃CfbNXB
tϊ`̃CfbNX́A
tϊCfbNX1(ǂ)AtϊCfbNX1()A
tϊCfbNX2  3̕ȂB

tϊCfbNX1(ǂ)AtϊCfbNX1()́Astruct rind1 
zŁAꂼ maxri1[D_YOMI]Amaxri1[D_KANJI] ̑傫B
tϊCfbNX2 ́Astruct rind2 ̔zŁAmaxri2 ̑傫B

struct rind1 {
  int pter1;                    /* pointer to rind1 */
  int pter;                     /* pinter to rind2 */
};

struct rind2 {
  int next[2];                  /* pointer to rind2 */
  int kanjipter;
};

struct rind2 ́AeGg\ĂB
tϊCfbNX2 ̒ł struct rind2 ̃CfbNX́A
Gg̃VAԍ\ĂBnext[D_YOMI] 
ǂ݂ rind2 ̃CfbNXAnext[D_KANJI] 
 rind2 ̃CfbNXwĂB
CfbNX̍ṒARD_ENDPTR = 0xffffffff łB

tϊCfbNX1(ǂ)AtϊCfbNX1()
struct rind1 ́Aꂼꓯǂ݁ÃGg̏W
\ĂBpter ́Aꂼ struct rind1 ̕\ǂ݁A擪
rind2 ̃CfbNXłB܂Apter1 ́Arind1 ̕\ǂ݁A
̍Œ킷 rind1 ̃CfbNXłB
 rind1 ݂Ȃɂ́A pter1 ̒l RD_ENDPTR łB

rind1.pter1, rind1.pter, rind2.next[D_YOMI], rind2.next[D_KANJI]
́AS int ł邪Ǎꐔ 65535 ܂łɐȂ΁A
 unsigned short ł悢B̕ύXƁÃTCY
啝ɏȂB

