*******************************************************************************
		PART 4 (4) GRCG & EGC 

			M.Itadani

					Ver 1.00 : 1997/12/10(Wed) 16:52:45

*******************************************************************************

===============================================================================
 fqbf
===============================================================================

   fqbfƂ

	  fqbfiGraphic CharGerjƂ́AOtBbN̍̂߂̂k
	rhłBȓ

		Pj n[hEFAIɂSv[ANZX\
		Qj n[hEFAɂd˂킹\
		Rj n[hEFAɂF̈̒o\

	  fqbfnmɂƁAbotƂuq`l̊Ԃɂfqbf݂悤
	ɂȂ܂BĂbotuq`lɑ΂ď݂sƁAfqbf
	Ũf[^󂯎Af[^HĂőS̃v[ɓ
	݂s܂B

	TO}

	fqbfn̏ꍇ

		bot |||||||||||||| uq`l

	fqbfnɂꍇ

		bot |||  fqbf  ||| uq`l


   fqbf̂h^n|[g

	 h^nAhX	@\			f[^ D7`D0

		7Ch	  GRCGӰڼ޽̏		 P
		7Eh	  GRCGڼ޽̏	 <--- GRCGڼ޽ ---->

	Pj fqbf[hWX^̌`

		bit  F D7  D6  D5  D4  D3  D2  D1  D0
		data F CG RMW   0   0  P3  P2  P1  P0

	[U[w̉

	bf   F fqbf̂n^nw   i 0FnA  1Fnj
	qlv F fqbf̓샂[hw     i 0FݎscvӰ
						     ǂݍݎsbqӰ
						  1FݎqlvӰ
						     ǂݍ݂͕sj
	P0`P3 F v[Ov[Rւ
		  ݂̗L			i 0FLA  1Fj

	fqbf^CWX^

	  fqbf^CWX^ɂ͊ev[p̃^Cw肵܂B
	ŁAӂKvȂƂ́AŏɂVdɏ݂sf[^v
	[Op̃^CłAɏ񂾃f[^v[Pp̃^C
	Aȉv[R܂ŁAvSVdɏ݂sȂƁA
	Ẵv[Ƀ^C̐ݒ肪sȂƂƂłBev[
	Ɋe^Cݒ肷Kv̂łB


   fqbf̓샂[h

	 scv[h

	  bfPAqlvOɎw肷Ƃscv[hɂȂ܂B
	scv[hł̓^CWX^̒luq`lɏ܂܂Bb
	otyсAuq`l̃f[^͖܂B

	 qlv[h

	  bfPAqlvPɎw肷Ƃqlv[hɂȂ܂B
	qlv[hł͂bot珑񂾃f[^̃rbĝ鏊
	^CWX^̃f[^܂Arbg̖ꏊ͂uq`l
	̃f[^c܂B

	 sbq[h

	  bfPAqlvOɎw肷Ƃsbq[hɂȂ܂B
	sbq[hł͂botuq`lǂݍ݂sA^C
	WX^̕\pbgԍƂuq`lɂf[^\pbgԍ
	v镔̃rbgPAvȂƂOƂăf[^
	ݍ݂܂B


   fqbf̎gp@

	  fqbfgɂ͏L̐ݒƁAANZXv[̎wsA
	^CWX^ɑ΂^Cf[^݂܂Bfqbfgp
	čς񂾏ꍇ͕Kfqbfnɂ܂B


   fqbf̐

	  fqbfɂĂ̊{IȐ͈ȏłBɗ͖ʂȂƂ͏Ȃ
	܂fqbfpĎۂɍsƂ͉ʂ̏xł̂ŁA
	Lq͔܂BALN^GfB^낤ƂȂ
	΂fqbf̋@\͑ϗLłB

===============================================================================
 dfb
===============================================================================

   dfbƂ

	  dfbiEnhanced Graphic ChragerjƂ͂fqbf̋@\啝Ɋg
	OtBbN`[W[łBȋ@\

	Pj S̃v[Ƀn[hEFAIɓANZX\
	Qj X^Iy[Viqnoj@\i_Z@\j
	Rj rbgPʂ̃VtgEݗ̈w肪\
	Sj uq`l̔Cӗ̈̍ubN]@\
	Tj fcb̕`搧䂪\
	Uj fqbf݊[h


   h^nAhX

	 04A0h F ANZXv[̎w

	bit  F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	data F  1  1  1  1  1  1  1  1  1  1  1  1 P3 P2 P1 P0

	bit 15`4 F gpiɂPwj
	bit  3`0 F o  v[ɑ΂ANZX̗Li0 ŗLj


	 04A2h F p^[f[^yу[hv[̎w

	bit  F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	data F  0  <PC>  0  0  < RPN >  1  1  1  1  1  1  1  1

	bit 14     F ob    qnõp^[f[^Ɏgf[^̎w
			00 F p^[WX^
			01 F obNOEhJ[
			10 F tHAOEhJ[
			11 F ݒs

	bit 10`8  F qom  Pv[[h̃[hv[ԍ
			      ̎w


	 04A4h F [h^Cg[h̎w

	bit F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	dataF  0  0 RM  <WM> SD  <PS> R7 R6 R5 R4 R3 R2 R1 R0

	bit 13     Fql  uq`l[h̓샂[h̎w
			 0 F Pv[[h
			 1 F RyA[h

		RyA[hƂ͂botuq`l烊[hs
		AtHAOEhJ[ƓF̗̈̃rbĝ݂
		PɂȂf[^[h܂B܂ARyA[h
		sꍇ̓tHAOEhJ[̎wݒ肵Ȃ
		΂Ȃ܂B

	bit 1211  F vl  uq`lCg̓샂[h̎w
			00 F bot̃f[^̂܂܏
			10 F qnǒʂVt^oRŏ
			01 F p^[f[^Vt^oRŏ

	bit 10     F rc  qnõ\[Xf[^Ƃf[^̎w
			 0 F uq`l[hƂ̃[hf[^g
			 1 F bot̃f[^g

	bit  9 8  F or  p^[WX^̃Zbg@̎w
			00 F p^[WX^͕ωȂ
			01 F \[Xf[^ƓZbg
			10 F uq`lf[^ƓZbg

	bit 7`0   F q  qnỏZwR[h̎w
		qnosۂɂǂ̂悤Ș_Zsw肵܂

		\[Xf[^   F r		`mc F E
		uq`lf[^ F u		 nq  F {
		p^[f[^ F o		mns F P
                                      _        _          _ _
		D = R7SVP + R6SVP + R5SVP + R4SVP
		       _          _   _      _ _        _ _ _
		  + R3SVP + R2SVP + R1SVP + R0SVP
		 
		Z܂AǂȂƎv̂ŗ
		܂B
		
		ads`		0CF0h
		nq			0CFCh
		`mc			0CC0h
		] ads`		28F0h
		] dˍ킹		29BEh


	 04A6h F tHAOEhJ[̎w

	bit F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	dataF  0  0  0  0  0  0  0  0 <-------  FGC  ------->

	bit 7`0 F efb  tHAOEhJ[̎w i0`15j


	  04A8h F }XNWX^̐ݒ

	bit F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	dataF <------------------  MASK  ------------------->

	bit 15`0 F l`rj  }XNWX^̐ݒ܂


	  04AAh F obNOEhJ[̎w

	bit F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	dataF  0  0  0  0  0  0  0  0 <-------  BGC  ------->

	bit 7`0 F afb  obNOEhJ[̎w i0`15j


	  04ACh F rbgAhXyуubN]̎w

	bit F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	dataF  0  0  0  D  0  0  0  0 <---DAD---> <---SAD--->

	bit 12   F c  ubN]̎wiӖsj
			i 0FAhX̒Ⴂق]
			   1FAhX̍ق]j

	bit 7`4 F c`c  fXeBl[VrbgAhX̎w

	bit 3`0 F r`c  \[XrbgAhX̎w


	  04AEh F ݗ̈̃rbg̎w

	bit F 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
	dataF  0  0  0  0 <------------- BLN --------------->

	bit 11`0 F akm  ݃rbg - 1 ̎w


   ڂ

	 qnõp^[f[^Ɏgf[^̎w

	  Fł̕`ɂ̓tHAiobNjOEhJ[Ap^[
	̕`ʂɂ̓p^[WX^w肵܂B
	
	
	 uq`l[h̓샂[h̎w
	
	  botuq`l̃f[^[hsƂ̓w肵
	BPv[[hw肵ꍇA[hv[ԍ̎wi
	h^nAhX OS`QjŎw肵v[ԍ̃v[
	[h܂B
	  RyA[hw肳ꂽꍇ́AtHAOEhJ[Ɠ
	F̗̈̃rbĝ݂PɂȂf[^[h܂B̃R
	yA[hsꍇɂ͕KtHAOEhJ[̎wih^n
	AhX obFOS`Q  POjw肵܂B
	
	
	 uq`lCg̓샂[h̎w
	
	  botuq`lւ̃f[^CgsƂ̓w肵܂
	  vlOOƂꍇ͂qnoArbgVtgs킸ɒڂuq`
	lɏ݂܂B
	  vlOPƂꍇ͂qnoŌvZlArbgVtgs
	Ăuq`lɏ݂܂B
	  vlPOƂꍇ͂c`cŎw肳ꂽrbgrbgVt
	gĂuq`lɏ݂܂B
	
	
	 qnõ\[Xf[^Ƃf[^̎w
	
	  qnosۂɎgp\[Xf[^ɉgp邩ݒ肵
	B
	  rcOƂƒOɂuq`l[h̃[hf[^g
	܂B
	  rcPƂƂbot珑܂ꂽf[^g܂B
	
	
	 p^[WX^̃Zbg@̎w
	
	  p^[WX^̕ύX@w肵܂B
	  orOOƂƃp^[WX^̓e͕ω܂B
	  orOPƂƂrcÔƂuq`l[hɂuq`l
	̃[hf[^ZbgArcP̂Ƃuq`lCgɂbo
	t̃f[^Zbg܂B
	  orPOƂƂuq`lCgɂuq`lɌ炠f[
	^Zbg܂B
	  L̂̏ꍇAZbgp^[WX^͂h^nAh
	XOS`OŎw肵ėLɂv[ɑΉ镨݂̂łB
	
	
	 }XNWX^
	
	  }XNWX^ɐݒ肵l̃rbgO̕ɂ͏ɂuq`l
	炠f[^cAP̕ɂ̂ݏ݂s܂B
	
	
	 fXeBl[VrbgAhX
	
	  ]̃rbgAhXw肵܂Bqnǒʂp^[f[
	^݂̏̂ƂŎw肵rbgAhX͗LłB
	
	
	 \[XrbgAhX
	
	  ]̃rbgAhXw肵܂B
	
	
	 ݃rbg
	
	  ݂sۂɁAۂɏ܂̈̃rbĝƂł
	Ŏw肳ꂽrbgꂽɂ͏݂͍sꂸAu
	q`lɌ炠f[^c܂B̃f[^͂botf[^
	qnǒvZʁAp^[f[^݂̂̏ɑ΂ĂL
	łB

===============================================================================
 ۂ̎gp
===============================================================================

	  ۂ̎gpɂĂ̓TvvOQlɂĉB
	  TvvOł͂fqbfpĂ̏AdfbpĂ
	LN^̂os߂̎菇ڂLqĂ܂B
	  TvvOɂāAۂ̎gpɂĐsĂ
	܂B
	
	Pj OtBbN̏
		ŃOtBbN̏ɂĂ͍̐s܂B
		@ɂĂ͂fcb̃ZNVQlɂĂB
		
	Qj LN^̃[h
		f[^t@C̍\
         +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0A +0B +0C +0D +0E +0F
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
00000000| Number| R0| G0| B0| R1| G1| B1| R2| G2| B2| EEE
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
                                    E
                                    E
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
00000030| Gf| Bf| Mask L|Plane0L|Plane1L|Plane2L|Plane3L| Mask R|Plane0R|
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
00000040|Plane1R|Plane2R|Plane3R| Mask L|Plane0L| EEE ȉ
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
		
		Number	FLN^
		Rn	FԖڂ̐ԋPx
		Gn	FԖڂ̗΋Px
		Bn	FԖڂ̐Px
		Mask L	F̃}XNf[^
		Plane0L	F̃v[Õf[^
		Plane1L	F̃v[P̃f[^
		Plane2L	F̃v[Q̃f[^
		Plane3L	F̃v[R̃f[^
		Mask R	FẼ}XNf[^
		Plane0R	FẼv[Õf[^
		Plane1R	FẼv[P̃f[^
		Plane2R	FẼv[Q̃f[^
		Plane3R	FẼv[R̃f[^
		
		@ LN^ǂݍ
		A LN^i[pmۂ
		B pbgf[^ǂݍ
		C pbgZbg
		D LN^f[^[h
		
	Rj dfbnɂ
		@ 荞݂֎~
			dfbnɂ鎞ɂ͊荞݂֎~Ȃ
			sȂi炵j
		A g[hύXɂ		0x6A  <- 0x07
		B dfbg[hɂ		0x6A  <- 0x05
		C dfbnɂ			0x7C  <- 0x80
		D ANZXv[`kkɐݒ	0x4A0 <- 0xfff0
		E p^[f[^Ƀp^[WX^w
							0x4A2 <- 0x0000
		F tHAOEhJ[Oɂ	0x4A6 <- 0x00
		G }XNݒ			0x4A8 <- 0xffff
		H ݃rbg|PɂPTݒ	0x4AE <- 0xf
		I g[hύXs			0x6A  <- 0x06
		J 荞݂
		
		@`CAHAIݒŕK{Ƃł
		D`G܂ł͕KŐݒ肷Kv͂Ȃ
		Hݒ肷邽߂ɂ͇E̐ݒ肪K{Ƃ̂悤ł
		
		
	Sj LN^o
		@ v[ÕZOgAhXݒ肷
			seg = (UCHAR far *)0xa8000000 ;
			dfbnɂĂ̂łSv[͓ł
			̂ŃZOgAhX̓v[ÕAhX̂
			ŗǂ
		A \AhXvZ
			adr = y * 40 + (int)(x / 16) ;
		B f[^AhXvZ
			pat_adr = num * 320 ;
			LN^P̃oCgTCY͂RQOa
		C x^dˍ킹̔
			x^̏ꍇ
				x^w		0x4A4 <- 0xCF0
			dˍ킹̏ꍇ
				ANZXv[`kkɂ
				`mcw		0x4A4 <- 0xCC0
				}XNf[^Ƃuq`lł`mc
				nqw		0x4A4 <- 0xCFC
			ꉞs샂[ȟo
		D ANZXv[Oɐݒ		0x4A0 <- 0xfffe
		E v[Õf[^Őݒ肵@ŏ
		F ANZXv[Pɐݒ		0x4A0 <- 0xfffd
		G v[P̃f[^Őݒ肵@ŏ
		H ANZXv[Qɐݒ		0x4A0 <- 0xfffb
		I v[Q̃f[^Őݒ肵@ŏ
		J ANZXv[Rɐݒ		0x4A0 <- 0xfff7
		K v[R̃f[^Őݒ肵@ŏ
		
		PjLƃvO͎኱Ⴄ_L܂BvO
		      ͂̕PhbgPʂł̎w肪o܂AL͂PU
		      hbgPʂŎw肷@łBvO
		    
		       if (remainder != 0) {
		                 E
		                 E
		       }
		     
		     ̕Rgɂ΁AL̐ʂ̓
		     ܂BhbgPʂł̎w@͂܂młȂ
		     \[Xɂ͋Lq邪A͂ȂƂƂĒ
		     ܂B
		
		QjAhXvZ֌W̏ڂ͔܂BAhXl
		      ɂPQ𑫂Ă闝R͎ōlĂB
		
		
	Tj dfbnɂ
		@ 荞݂̋֎~
		A ANZXv[`kkݒ		0x4A0 <- 0xfff0
		B }XN				0x4A8 <- 0xffff
		C g[hύX			0x6A  <- 0x07
		D dfbnɐݒ			0x7C  <- 0x00
		E fqbf݊[hɂ		0x6A  <- 0x04
		F g[hύXs			0x6A  <- 0x06
		G 荞݂̋
		
		@AC`G͕K{
		AAB͕KłKv͖
		
		
	Uj OtBbN̏
		@ fqbfnɂ			0x7C  <- 0x80
		A ^CWX^ɂOw		0x7E  <- 0x00
			łS񃋁[v
			Sv[̃^C
			ݒ肷
		B v[OOŖ߂
		C fqbfnɂ		0x7C  <- 0x00
		
		
	Vj LN^i[pJ
	
	
	  ۂ͈̑ȏłBŎgpĂLN^t@
	C͓Ǝ̃tH[}bgȂ̂Ŏ̃tH[}bg쐬A
	ɑΉo[`ĂBTv\[X
	ɃoO͖Ǝv܂Aǂȕs邩܂B
	s͊e̐ӔCōsĂB܂̃vO͔ɒx
	łBPʂɂSQx\ł܂iȏ\
	ƃvO̎sxɎx𗈂ƂƁjB
	
	  dfb𗘗pvO쐬Oɒڂuq`lɏ
	Őɍ쓮vOgޕD܂łB҂̃v
	Og߂Ȃ悤ł͂dfb͈܂BTvvO
	͕킷΍邩܂񂪁Ał͂dfb𗝉Ă
	낤Ӗ܂Bew͂邱Ƃ҂܂B

