*******************************************************************************
			PART 4 (3) GVRAM(16FOtBbN)

				Y.Yamanisi

					Ver 1.00 : 1997/12/10(Wed) 07:10:21
*******************************************************************************

f|uq`l

@PC98G-VRAM͏Â炢`ɂȂĂ܂A{IȌ`̂Pł
ŁAoĂƗǂł傤B

   v[(Plane)`

@ʏ̂PhbgPrbgɑΉ̂Adˍ킹鎖ɂĐF
w肷ŁÂPTv[ƌ܂B
@͂ŏƉÂ炢̂łA\_̍WŃv[d˂ォPr
bgEĂ̂\FɂȂ킯łB


   pbg(Palette)

@VRAMɏꂽf[^̂܂܂qfalɂȂ̂ł͖Apbgԍ\
ƂɂāAɏoF͏ȂĂIłF𑝂₵Ă낤Aƌ
̂łB

@ȒPȃvOpĐ܂B

<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>
/* pbg̒` */
struct	RGB
{
	UINT8	r,g,b;
};

	struct RGB	RGB98[16],		/*PC98 ł͂PUF*/
			DisprayColor;
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
	UINT16	x,y,pn;

	.
	.
	.

	pn = GetPaletteNumber( x, y );		/* (x,y)̃pbgԍ𓾂 */
	DisprayColor = RGB98[pn];		/* ʂɕ\qfal */

<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>/<_>

@낵ȒPȃvOł傤B̂悤ȍƂn[hEFAĂ
̂łBܘ_ARGB98̔zvf\tgEFAύX邱Ƃo܂B
@PC98ł́ARGB\̂̒ r,g,b ͂ꂼꉺSrbgӖ܂B
PC98̐FQ(S~R)恁SOXUFAPUFȂ̂łB
@ݒ@͂fcb̕ɏĂ̂ŁAĒƍKłB



   XWOtBbN

@v[`Ńpbg̗pĂ܂B
@v[͑SłSȂ̂œFPUFɂȂĂ܂AȎ
ƏoƂo܂B

v[̃AhX
	Plane0		A8000h
	Plane1		B0000h
	Plane2		B8000h
	Plane3		E0000h

ƁAȂĂ܂BPlane3Ă̂́Aŏ͂̃v[͖Aɕt
ꂽłB
@܂Ãv[͑Ɍ\,Aʂɕ\v[CPU
݂sv[ʂɐݒł܂BAv[O`RʁXɐݒo
ł͂ȂA܂Ƃ߂Ģ\AI܂B
@̑I/O߰Ăōs܂B

	A4h	OtBbN\ʂ̎w
	A6h	OtBbN`ʂ̎w

ǂ bit0 ɂĎwAO̎\ɤP̂ƂɂȂ܂B
@QTUF[hĂ@ł͓ǂݏo\łB


OtBbN\

@ASY͎ŏɍl邩AKȖ{QƂĉBł͐
܂B

@ʏԂł́Afcb͂uq`l̐擪Sv[ɃT[`ĉʕ\
Kvȃpbg𓾂Ă܂BŒӂKvȂ̂́Aʃrbgǂݍ
܂ƌƂŁAʂ̍ɍsقǒʂ̃AhXɂȂAAhXł
ʃrbgɂȂ̂łB

===============================================================================
uq`l̃C[W
===============================================================================

@OtBbNuq`l̃C[WɏĂ݂܂BÂ炢̂łق
ĉB܂Ał͉ʂ̉640DotƂĂ܂B


@PC̃C[W

Byte Address	  +0000	   +0001             +004E    +004F
		+--------+--------+--    --+--------+--------+
Bit Address	|76543210|76543210| ccc |76543210|76543210|
		+--------+--------+--    --+--------+--------+


@Pv[̃C[W
							    Cԍ
		+----+----+----+--    --+----+----+----+
Byte Address	|0000|0001|0002| ccc |004D|004E|004F|	 0
		+----+----+----+--    --+----+----+----+
		|    | F |    |	|    | F |    |
		       F		       F
		       F		       F
		|    | F |    |	|    | F |    |
		+----+----+----+--    --+----+----+----+
Byte Address	|7CB0|7CB1|7CB2| ccc |7CFD|7CFE|7CFF|	399
		+----+----+----+--    --+----+----+----+


@̂悤ȃC[WɂȂĂ̂łAsKȎPC98CPU8086nȂ͂
gGfBAȂ̂łBp^[Cӈʒuɕ\ۂ͂̂ƂƂĂd
vɂȂĂ܂̂ŁAɓĂĉB


_ł

@_ł菇AɋLĂ܂BTv[`͕t܂BKvł
ΎőgłBvZ640*400płBʃ[hقȂꍇ͕Kv
ĕςĂĉB

	@ItZbgAhX̌vZ

@Ƀf[^uΗǂ̂Ȃ΁A_łƓoȂɓ
ˁBł́AvZĂB

	OffsetAddress = x/8 +y*80

̎ŁAf[^ވׂfar|C^̐ݒ肪o܂ˁBoȂl̓AZ
uőgނƂlłˁB
@ƂAf[^ׂ݂̈̃ItZbgl擾ł܂B

	ArbgAhX̌vZ

@ev[͂PhbgPrbgőΉĂ邩Aǂ̃rbgm˂
ȂȂɋCtȂĺAv[`̐ǂݕԂĂB

	BitAddress = x%8

@̎ŁAǂ̃rbg𑀍삷Ηǂ܂܂B

	Bev[̃rbg

@̃rbgOn/Off邽߁AۂɃf[^ł܂B

	BitAccessData[0] = 01h
	BitAccessData[1] = 02h
	BitAccessData[2] = 04h
	BitAccessData[3] = 08h
	BitAccessData[4] = 10h
	BitAccessData[5] = 20h
	BitAccessData[6] = 40h
	BitAccessData[7] = 80h

̗lȔzpӂĂƁAȒPɃANZXrbgɑΉf[^쐬ł
ˁB
@āAs\Ȃ߁Aǂ̂悤Ƀf[^uΗǂ̂Ȃlo
Ăł傤BƕĂ˂΂ȂȂ悤B

@^ꂽpbgԍŁAǂ̂悤Ɋev[ɔzu邩

	   7      6      5      4      3      2      1      0
	+------+------+------+------+------+------+------+------+
	|  0   |  0   |  0   |  0   |plane3|plane2|plane1|plane0|
	+------+------+------+------+------+------+------+------+

	bit0: 1  plane0 ̏̃rbg 1 ɂ܂
	      0  plane0 ̏̃rbg 0 ɂ܂

	bit1: 1  plane1 ̏̃rbg 1 ɂ܂
	      0  plane1 ̏̃rbg 0 ɂ܂

	bit2: 1  plane2 ̏̃rbg 1 ɂ܂
	      0  plane2 ̏̃rbg 0 ɂ܂

	bit3: 1  plane3 ̏̃rbg 1 ɂ܂
	      0  plane3 ̏̃rbg 0 ɂ܂

	bit4`bit7	1 ɂȂ邱Ƃ͗L܂BSĂOɂȂĂ锤łB



o({ꕶ@ƂĊԈႢ)

@܂ŗɂ́ACӂ̈ʒuɔCӂ̐F(wł͈)œ_łƂo
܂ˁBoĉBAoI łȂΎ܂ŏӖL
܂Bǂ񂾂ɂ͂ƉĒB

