
            TOPPERS/JSPJ[l [UY}jA 
    iWindows V~[VC^XN|XbhΉfj

            iRelease 1.4 ΉCŏIXV: 20-Dec-2003j

------------------------------------------------------------------------ 
 TOPPERS/JSP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Just Standard Profile Kernel

 Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
                             Toyohashi Univ. of Technology, JAPAN

 L쌠҂́Cȉ (1)`(4) ̏CFree Software Foundation 
 ɂČ\Ă GNU General Public License  Version 2 ɋL
 qĂ𖞂ꍇɌC{\tgEFAi{\tgEFA
 ς̂܂ށDȉjgpEEρEĔzziȉC
 pƌĂԁj邱Ƃ𖳏ŋD
 (1) {\tgEFA\[XR[ȟ`ŗpꍇɂ́CL̒
     \C̗pщL̖ۏ؋K肪Ĉ܂܂̌`Ń\[
     XR[hɊ܂܂Ă邱ƁD
 (2) {\tgEFACCu`ȂǁC̃\tgEFAJɎg
     pł`ōĔzzꍇɂ́CĔzzɔhLgip
     ҃}jAȂǁjɁCL̒쌠\C̗pщL
     ̖ۏ؋Kfڂ邱ƁD
 (3) {\tgEFAC@ɑgݍނȂǁC̃\tgEFAJɎg
     płȂ`ōĔzzꍇɂ́Ĉꂩ̏𖞂
     ƁD
   (a) ĔzzɔhLgip҃}jAȂǁjɁCL̒
       쌠\C̗pщL̖ۏ؋Kfڂ邱ƁD
   (b) Ĕzž`ԂCʂɒ߂@ɂāCTOPPERSvWFNg
       񍐂邱ƁD
 (4) {\tgEFA̗pɂ蒼ړI܂͊ԐړIɐ邢Ȃ鑹
     QCL쌠҂TOPPERSvWFNgƐӂ邱ƁD

 {\tgEFÁCۏ؂Œ񋟂Ă̂łDL쌠҂
 TOPPERSvWFNǵC{\tgEFAɊւāC̓Kp\
 ܂߂āCȂۏ؂sȂD܂C{\tgEFA̗pɂ蒼
 ړI܂͊ԐړIɐȂ鑹QɊւĂC̐ӔC𕉂ȂD

 @(#) $Id: windows.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $
------------------------------------------------------------------------

̃hLgł́CTOPPERS/JSP WindowsV~[Vɂ
ĉD

-------------------------------------------------------
PD WindowsV~[V ^[Qbgˑ̊Tv
-------------------------------------------------------

--------------------------------
1.1 ^[QbgVXeƊJ
--------------------------------

WindowsV~[V̎sƂẮĈ̂z肵ĂD

    EMicrosoft Windows 2000/XP Pro (x86)
        #Windows XP Home Editionł̌؂͍sĂȂ

܂JƂĎ̂̂z肵ĂD
    EMicrosoft Visual C++ 6.0
       #ꕔ̃R[hɃCCAZugpĂ邽߁A
       #MSVCȊȌnp邱Ƃ͂łȂ

܂tǉ@\𗘗p邽߂ɁÂ̂KvɂȂꍇD
    EMicrosoft VisualBASIC 6.0
    EActive Template Library 3.0 (Visual C++ 6.0Ɋ܂܂)
    EMicrosoft Foundation Class Library 6.0 (Visual C++ 6.0Ɋ܂܂)

⑫

TOPPERS/JSP WindowsV~[V̊J͎̊ōsĂD

   [OS]     EMicrosoft Windows XP Professional
                + Service Pack 1
   [n] EMicrosoft Visual Studio .NET Academic   (傽J)
                + .NET Framework ServicePack 1
            EMicrosoft Visual Studio .NET Enterprise Architect
                + .NET Framework ServicePack 1
            EMicrosoft Visual Studio 6.0 Enterprise
                + Microsoft Visual Studio 6.0 ServicePack5
                + Microsoft Visual C++ Processor Pack
            ERedHat cygwin (API:0.94, 1005.5.0.0)


--------------------------
1.2 T|[g@\̊Tv
--------------------------

WindowsV~[VɈˑ@\ƂāC݃}XN̕ύXEQ
(chg_ixx, get_ixx)Ɗ荞݂̋֎~E(dis_int, ena_int)T|[g
ĂD܂\]pVXeQƋ@\(vxget_tim)T|[gĂD

WindowsV~[V́Cg[XOo͋@\ĂD@\
́CP̋Nł̓t@Co͂̌`ŁCfoCXG~[V@\gp
ɂCOMʐM̌`Ŏgp邱ƂłD

-----------------------------------------------------
1.3 TOPPERS/JSP WindowsV~[V̐
-----------------------------------------------------

    EftHg̃^C}\100ms
        WindowsV~[Vł̓^C}eBbN100msƂȂĂD
        Pʂmŝ܂܂łC50msdly_tsk𔭍sꍇ 100msb
        s邱ƂɂȂD
        C\[ẌꕔύX邱ƂŁC_1msɂ܂ŕύXłD

    E^XNX^bNC^XNReLXgpX^bN͎
        eReLXgŕKvȃX^bNWindows邽߁CRtBM
        [^WŐX^bN͗pȂD܂X^bN̈悪s
        ꍇCWindowsIɗ̈Ċ蓖ĂD

------------------------------
1.4 o[WϑJɂύX_
------------------------------

ERelease 1.3  Release 1.4
	- Windows 9xnJ[lT|[gO
		# MicrosoftWindows98T|[gΏۊOƂ
	- [XbgŃfoCXG~[V@\p~
	- foCXG~[ṼbN͈͂I
	- vWFNgfBNg̈ړɔpXȂǂύX


---------------------------------------------
QDWindowsV~[VɈˑ@\
---------------------------------------------

̐߂ł́CJ[lуVXeT[rX̋@\̒ŁCWindowsV~
[Vˑ̕ɂĉD

------------
2.1 f[^^
------------

int^  unsigned int^̃TCY32rbgłD
 #IA-64Ȃ64rbg{Ƃ͍lĂȂ

----------------------------------
2.2 ݊Ǘ@\Ɗ݃nh
----------------------------------

WindowsV~[Vłm68k݂̊G~[VĂD
NMIT|[gȂ߁CSĂ̊荞݂̓J[l̊ǗŔD
CPUbNԂ⏉[`ł͊݃}XN7ݒ肳CSĂ̊荞
֎~D

ftHg̊ݗv7łC7őDxƂD荞ݗv̐
cpu_defs.h:15INT_NUMINTERRUPTSC邱ƂŔCӂɑ₷Ƃ\ł
 (Œኄݗvԍ1ɌŒ肳Ă)Dʏ^C}݂vԍ4
 𗘗pDȊO݂̊̓[Ů֐𗘗pĔCӂɔ邱
 ƂłD

    荞ݗv̔
        void HALInterruptRequest(unsigned int intno)
        荞ݗvԍintnoɊ荞ݗv𔭐

DEF_INHŎw肷銄݃nhԍ(inhno)́C68000ł̗OxN^ԍ
\C̃f[^^(INHNO)unsigned int^ɒ`ĂDDEF_INHŖ
ȗOxN^ԍw肵ꍇ͕̓ۏ؂ȂD

WindowsV~[Vˑ̋@\ƂāC݃}XN̒lύX
߂̃T[rXR[ chg_imsƁCQƂ邽߂̃T[rXR[ get_ims 
T|[gĂDȂC݃}XN̒l\f[^^unsigned intł
D


TOPPERS/JSP Windowsł͎̊֐T|[gĂD

BOOL def_int( unsigned int ims, void * rtn);    /* nh` */

ER  ena_int(unsigned int ims);          /*  */
ER  dis_int(unsigned int ims);          /* ֎~ */
ER  chg_ims(unsigned int ims);          /* ݃x̐ݒ */
ER  get_ims(unsigned int *p_ims);       /* ݃x̎擾 */

def_int : ݃nh`
    ݃nhrtnݗvԍimsɑΉÂ

ena_int : ݋
    ݗvD͖CSƂȂ

dis_int : ݋֎~
    ݗv֎~D͖CS֎~ƂȂ

chg_ims : ݃xݒ
    ݗv}XNxŐݒ肵lɐݒ肵C
    ȍ~}XNxȉ̊ݗv͋֎~ƂȂ

get_ims : ݃x̎擾
    ݗv}XNx擾CŎꂽꏊɊi[


------------------------------------
2.3 CPUOǗ@\CPUOnh
------------------------------------

WindowsV~[Vł́AWindows̗OCPUOɊ蓖ĂĂB

DEF_EXCŎw肷銄݃nhԍ(excno)Windows̗Ovԍ\C
̃f[^^(EXCNO)unsigned int^ɒ`ĂDDEF_EXC ŁCOxN^
ƂėLłȂlCCPUOɑΉȂԍw肵ꍇ͕̓ۏ؂
ȂD

WindowsŗOꍇCΉtꂽCPUOnhNC
WindowsOnh֏nDfobKȂǂNĂꍇ̓fobK
ɂănhO邽߁CĂ̏ꍇ̓G[ƂȂĂ̏Œ~
D

WindowsV~[Vł́C̈𔺂CPUOnhND

	void cpuexc_handler( EXCEPTION_POINTERS * exc, int * ctrl )
		exc  : Ȍڍ׏܂ލ\̂ւ̃|C^
		ctrl : O̓

ctrl͗OAOnhO[`̓肷B̒lɊi[
ĺAUnhandledExceptionFilterԂׂlłB
EXCEPTION_CONTINUE_SEARCHw肳ꂽꍇ͏ʂ̗OnhO[`
ڂAEXCEPTION_CONTINUE_EXECUTIONw肳ꂽꍇ͗Oꏊ
sĊJBAEXCEPTION_CONTINUE_EXECUTIONw肷ꍇɂ́A
ǑƂȂv菜Ȃ΁AēxO邱Ƃɒӂ
ꂽBڍׂMSDNCuȂǂQl̂ƁB

------------------
2.4 J[l^C}
------------------

WindowsV~[Vł́CJ[l^C}3ނ̃^C}̂
IłD

	EWindowsW^C}		: ᐸxᕉׁDŏeBbN10msD
	E}`fBA^C}	: xׁDŏeBbN1msD
	E^C}Ȃ			: OvOɂēƎɋꍇD

^C}ύXꍇ́Csys_defs.h:65-67̒`̂CeΉs̃Rg
C̍s(#define TIMER_Ŏn܂s)RgAEgD

^CeBbN100msɐݒ肳Ă邪Ahw_timer.h:59
TIMER_CLOCK_WINDOWSC邱ƂŕύXłBA
TIMER_WINDOWSTIMER10msȉœ삳邱Ƃ͂łA܂
TIMER_MULTIMEDIATIMER͑O҂d߁A܂ɂZݒ肵
ƃ^C}CPUԂg؂鋰ꂪB


-------------------------------------------
RDWindowsV~[VɌŗLȋ@\
-------------------------------------------

----------------------------
3.1 VAG~[V
----------------------------

TOPPERS/JSP WindowśCR\[͂VAG~[V@\
ĂD@\gpƁCʂɁuVAóvƖÂꂽE
BhE\CVAo͂ꂽe\D܂EBhEɑ
čsꂽL[͂VA͂ƂăAvP[VɒʒmD


----------------------
3.2 fobOR\[
----------------------

TOPPERS/JSP WindowsV~[Vł́CfobOo͂邽߂
pR\[񋟂ĂDfobOR\[ł͊ȒPȋLqŃfobO
o͂邱ƂłCʏ̃VA𗘗pȂƂʂŃt[̃fo
bOȂǂsD
 #ItIs/WinɓڂĂJ[l\͕ʃjbgƂȂ

fobOR\[Lɂɂsys_defs.h:56
 //#define DEBUG_ENABLE
̃Rg͂C錾Lɂ邱Ƃŗp\ƂȂD
ɂɂ͊Y̐錾폜܂̓RgAEg΂悢D

TOPPERS/JSP WindowsV~[Vł́C̃fobOp@\񋟂Ă
D

OnDebug : fobÔݗLƂȂsɂ錾
    s̓OnDebug邱ƂŁCDEBUG_ENABLEɂ̂ݗLƂȂsȒP
    邱ƂłD
    
    DEBUG_ENABLE   : #define OnDebug(x) x
    DEBUG_ENABLE : #define OnDebug(x)

    
        OnDebug(wsprintf(buffer,"i = %d",i));

unsigned int DebugOut(LPCSTR text) : fobOR\[ւ̏o
    DebugOut֐̓fobOR\[֕o͂D
    
    DEBUG_ENABLEɂ̓RgsɂȂD


------------------------------
3.3 ^XNgC (Notify Icon)
------------------------------

TOPPERS/JSP WindowsV~[Vł́CʏvO͌Ȃ݂
ē삷Dł̓vȌImFiȂȂĂ܂
댯𔺂D̂WindowsV~[Vł͉ʉẼ^XNgC
ɃACR\CvOݎsł邩ǂmFł悤
ɂȂĂD

܂̃gC̃ACRENbN邱ƂŁCvOI
Ƃ\łD

DEBUG_ENABLEɂTOPPERS/JSP WindowsV~[^̖{̂ƂȂEBhE
Iɕ\悤ɂȂĂD̏ꍇ͖{̂ƂȂEBhEI
ƂŃvOI邱ƂłD


----------------------------
3.4 foCXG~[V
----------------------------

TOPPERS/JSP WindowsV~[Vł́AVXeɐڑꂽfoC
X(LEDȂ)G~[g邽߂̋@\ĂDfoCXG~[
Vł͎̂悤ȂƂłD

    EJ[l̔ԒnANZXꍇAfoCXɒʒm
    EJ[lɑ΂Ċ荞݂𔭐
    EJ[l̋NяIfoCXɒʒm
        ꂼ̋@\͐p֐ʂėp

}bsOΏۂƂȂԂ͎Ƃ͈قȂԂł (IntelvZbT
I/O|[gz肵Ă)B̂߃}bsOꂽꂽԂ
̃ANZX͐p֐čsBfoCX͋ԂdȂΕN
邱Ƃ\łB܂J[lN邱Ƃ\ł邪Afo
CXG~[V@\𗘗płJ[l̓VXeŒPłB

foCXG~[V̓ftHgŖƂȂĂ邪Aconfig/windows
/sys_defs.h:58̃Rg邱ƂŗLɂłBɂɂ͊Y
sēxRgAEg΁A֘ASĂ̍ڂƂȂB

J[l痘płfoCXG~[V֘Å֐ɎB
܂SĂ̊֐̓foCXG~[Vɂ̓RgsƂĈB

--- ITRONfoCXhCoKChC݊C^tF[X ---

VB sil_reb_mem(VP mem), VH sil_reh_mem(VP mem), VW sil_rew_mem(VP mem),
void sil_rek_mem(VP mem, VP data, UINT len)
    w肳ꂽTCYŁAw肳ꂽAhXɃ}bsOĂfoCX
	烁[hsBqDeviceRead̃bpB

void sil_wrb_mem(VP mem, VB data), void sil_wrh_mem(VP mem, VH data)
void sil_wrw_mem(VP mem, VW data), void sil_wrk_mem(VP mem, VP data, UINT len)
    w肳ꂽTCYŁAw肳ꂽAhXɃ}bsOĂfoCX
	փ݂sBqDeviceWritẽbpB


--- ƎC^[tF[X ---
void InitializeComSupportModule(void)
    foCXG~[V֘ȀsB
    {IɃJ[lNɏs߁A[UĂԕKv͂ȂB

void FinalizeComSupportModule(void)
    foCXG~[V֘ȀIsB
    J[lEoɏIsĂ̂ŁA\IɌĂԕKv͂ȂB

int DeviceRead(unsigned long address, unsigned long size, void * storage)
    foCX̓Ǐo
        address : foCXʂ邽߂̃AhXlȂ
                   (ԂƂ͓Ɨ)
        size    : ǂݏo
        storage : i[ւ̃|C^
        ԋpl  : ǂݏoꂽf[^̃oCg ܂ -1(s)
    
    addressɃ}bsOꂽfoCXsizeoCg̃f[^ǏoA
    storageɊi[B}bsOꂽfoCXȂꍇA֐-1
    ԋpBs̃bNԂ́C^XN/VXeŜ̂ǂ炩I
	ł (ftHg̓VXeS)D

int DeviceWrite(unsigned long address, unsigned long size, void * storage)
    foCXւ̏
        address : foCXʂ邽߂̃AhXlȂ
                   (ԂƂ͓Ɨ)
        size    : ޒ
        storage : o̓f[^i[̈ւ̃|C^
        ԋpl  : ܂ꂽf[^̃oCg ܂ -1(s)

    addressɃ}bsOꂽfoCXstorageɊi[ꂽsizeoCg̃f
    [^ށAstorageɊi[B}bsOꂽfoCXȂꍇ
    A֐-1ԋpBs̃bNԂ̓^XN/VXeŜI
	\D
----------------------------

foCXG~[V@\́CsɃVXeŜbN邩s
^XN݂̂bN邩I邱ƂłDftHgł́C
sɂ̓VXeŜbNDbN͈͂^XN݂̂ɕύXꍇC
com_support.cpp:697-698̂悤ɏCD

---8<---
	typedef class Request DeviceRequest;
//	typedef class ExclusiveDeviceRequest DeviceRequest;
---8<---

foCX{̂уfoCX}l[WɊւĂ͌q5.1QƂ̂ƁB

-----------------------------------
3.5 J[lg[XO (s)
-----------------------------------

Windowsˑł́ATOPPERS/JSP rel 1.4J[l̃g[XO擾@\
ĂB{@\ITRONfobMOC^tF[XdlɏĎ
ĂBȉɖ{@\ėpł(Cxg)BJbR
͂ꂼ̃CxgŎ擾łڍ׏ (͊g@\)B

	EITRONfobMOC^tF[Xdl(1.00.00)ɂĒ`ꂽO
		- ݃nh̋N  I
				(ݔԍ)
		- ^XNfBXpb`̊Jn  I
				(^XNԍ, ReLXg)
		- nh̊Jn  I
				(nhID, g)
		- ^XN/CPUO̊Jn  I
				(^XNԍ, Op^ / Oԍ)
		- ^XNԕω
				# ITRON-DBIFłReadyRunʂȂ (fBXpb`Ogp)
		- T[rR[̋N  I
			[s] @\R[h, , ďoAhX()
			[I] @\R[h, G[R[h
				# T[rXR[Ip[^̓G[R[ĥ
				# ꕔˑ/`/Ǝ֐͑ΏۊO

J[lO𖳌ɂɂ́Aconfig/windows/sys_defs.h
EVENTLOG_ENABLERgAEgBJ[lO̓ftHgŗLƂ
Ă邪Aconfig/windows/sys_defs.h̓YRgAEg邱Ƃ
ɂłB

g[XO@\𗘗pɂ́ANCAg\tgEFAKvɂȂB
TOPPERS/JSP release 1.4ł́Ajsp/windev/cmdwatchɃR}hCœ삷
郍O\vOĂAvOsɃJ[lN
邱ƂŁAʂɃJ[l̃Oo͂邱ƂłB
 # cmdwatch̎sɂ́AfoCX}l[WKvƂȂB
 # foCX}l[WɊւẮAq5.1߂QƂꂽB

VisualBASIC烍Ogpꍇ́Ajsp/windev/watcherrhA
Rg[gpB

J[l̃g[XÓAJ[lƔ񓯊ɏo͂B̂߁AOo
͍ڂꍇAJ[l郁ʂ債AJ[l
ƃOevȂƂB܂J[lIɑSẴO
o͂邽߁AIƂB

o͂郍O}~ɂ́AJ[lŎ̖߂sB

E݊Jn/IO̗}~
		BOOL set_intlogmask( unsigned int ims, BOOL mask );
			ims  : ݗvԍ
			mask : Oo͂ (TRUE) / O}~ (TRUE)


------------------
SDJ̍\z
------------------

------------------
4.1 J̊Tv
------------------

J[lsɂ́CJSPJ[l̔zzLbgɊ܂܂ȊOɁCȉ
c[уCuKvłD

Microsoft Visual C ++ (6.0/.NET/.NET 2003ɂĊmF)
    P̂ɂē\

ȂATOPPERS/JSP release 1.3 (patchlevel=1)łcygwin+gccł̃RpC
͍sȂBTOPPERS/JSP release 1.4 pcygwinΉR[h́CTOPPERSv
WFNg̐ʕł͂Ȃ߁C[Xɂ͊܂߂ĂȂD

-----------------------------------------------
4.1.1 Microsoft Visual C++𗘗pꍇ ()
-----------------------------------------------

JsĂWindows Scripting Host̎sꍇAg
pĂ鏈nMicrosoft VisualC++ 6.0łꍇɌATOPPERS/JSP
ɎXNvgpłB
 # .NET / .NET2003ɂ͔Ή

) XNvǵAeTuXNvgN邽߂ɁAWindows 
Scripting Host̋@\łWScript.WshShell.Run\bh𗘗pĂB
̃ZLeB\tgEFA͏L\bhgpXNvgƔ
fAsubNꍇB

XNvǵA jsp/WINDOWS/configure.vbs ƂOŊi[
B̃XNvgsƁARtBM[^̐уfoCX
G~[^̐sAVisual C++NTvvWFNgJ
BقƂǂ̏ꍇł́Aݒ̂܂܃vWFNg̃rhs΁A
TOPPERS/JSP WindowsV~[V̎s`𓾂邱ƂłB

̃t@Cs邱ƂŁAX̕iƂɐ邱Ƃ\łB
	RtBM[^/\`FbJ : jsp/cfg/vc_project/make.vbs
	foCXG~[^			: jsp/windev/make.vbs

-----------------------------------------------
4.1.2 Microsoft Visual C++𗘗pꍇ (蓮)
-----------------------------------------------

܂RtBM[^𐶐DRtBM[^/cfg/VC_Project/
ɂMicrosoft Visual C++vWFNgt@CJƂɂCݒ
Ƃrh\ȏԂɂȂDWł́Ccfg.exejsp/cfg/cfg.exe
č쐬ĂD

̂ƂAɃJ[l`FbJBJ[l`FbJrh
ɂ́Aj[uvWFNgvuANeBuvWFNg̐ݒvu
checkervIArhj[rhIBJ[l`FbJ
 "Windows ImageHlp API"gpĂ邽߁Aɂ̓Cu
IMAGEHLP.LIBKvɂȂBTvvWFNgt@C̐ݒɂ́AvO
gp郉CuW[ƂIMAGEHLP.LIBǉĂB
ɃrhIƁAWł́Ast@Cjsp/cfg/chk.exeƂč
ĂB

TOPPERS/JSP WindowsV~[V̍\zMicrosoft Visual C++̃v
WFNg [NXy[X𗘗pD/config/WINDOWS/vc_projectɂ
vWFNgt@Cу[NXy[XJƂŁC\zɕKvȐݒ
SďIԂŋND

 #̃vWFNgł̓TvvO悤ɂȂĂ

t̃TvvOł͂łɐݒ肪Ă邪CTvȊÕR
tBM[Vt@C𗘗pꍇCRtBM[^kernel_id.
hkernel_cfg.c쐬KvDȉɐݒ@D
 (ł́CRtBM[^/jsp/cfg/cfg.exełƂĂ)

  (a) Visual C++ ɍs킹ꍇ
      1.  ΏۂƂȂcfgt@CICReLXgj[(ENbN)
          ݒID
      2.  ʂuɃJX^rhXebvgpvLɂ
      3.  JX^rh^uICR}hɎ̃R}hł
			---8<---  ---8<---
			cd $(InputDir)
			cl /E /I "../../kernel" /I "../../include" /I "../../config/windows" \
				$(InputName).cfg | ..\cfg\cfg.exe -s -c -v -obj -lj -cpu windows
			---8<--- ܂ ---8<---
           #s\̂s͍s\폜A㑱s𑱂ē͂

      4.  o͕Ɏ̃t@Cł
            kernel_cfg.c
            kernel_id.h
      5.  j[uvWFNgvuݒvIA_CAÕ^u
          urh̏vI
      6.  rh̏R}hƂāÃR}h͂B
			---8<---  ---8<---
			cd ..
			..\..\cfg\chk.exe -m toppers.exe -cs windows.chk -obj -v -lj
			---8<--- ܂ ---8<---

  (b) R}hC璼ڑłꍇ
      1. Visual C++CXg[ꏊBintH_ɂ
          VCVARS32.BATs
           
           #CXg[ɁuR}hCs邽߂
           #ob`ȂvƎw肷Ƃ̃t@C͂Ȃ
           
      2. RtBM[Vt@ĈfBNg
         ̃R}h͂
			---8<---  ---8<---
			cl /E /I "../../kernel" /I "../../include" /I "../../config/windows" \
				<t@C> | ..\..\cfg\cfg.exe -s -c -v -obj -lj -cpu windows
			---8<--- ܂ ---8<---
           #s\̂s͍s\폜A㑱s𑱂ē͂

kernel_id.hkernel_cfg.cꂽC̃t@CvWFNgɒ
CVisual C++rhs΃vOD

t̃vWFNgt@Cł́CꂼK؂ȃtH_Ƀt@Ci[
悤ɂȂĂD[UvOSource FilesHeader FilesɊi[DT
vȊÕvO𗘗pꍇC2̃tH_Ɋi[Ăt
@CvWFNg폜ĂCVvOǉKvD


--------------------------
TDȋ@\Ɋւ
--------------------------

----------------------------
5.1 foCXG~[V
----------------------------

----------------------------------------
5.1.1 foCXG~[V̍쐬
----------------------------------------

foCXG~[V@\3̃vOȂB
    EJ[l
        foCX𐧌䂷AvP[VڂꂽvOBT[r
        XΏۂƂȂJ[l̓VXeŒP (N邾Ȃ畡)B
    EfoCX}l[W
        J[l̗vɑ΂ēK؂ȃfoCXɗv񑗂vO
         (CxgfBXpb`)BJ[l܂̓foCXN
        COMɂĎIɋNBVXeŒPB
    EfoCX
        foCX̃G~[VsvOBJ[l甭s
        vɂďsB}bsOԂdȂΕ
        N\BVisualBASIC𗘗p邱ƂłB

J[l̃foCXG~[V@\̍쐬ɊւĂ 3.4foCXG~
[V QƂꂽB

foCX}l[WVisualBASICpfoCXRg[̍쐬ɂ͎
c[KvɂȂB
    EMicrosoft Visual C++ 6.0/.NET/.NET2003
    EMicrosoft VisualBASIC 6.0/.NET/.NET2003 
    ECOMs (Windows 2000/XP)
    EActive Template Library 3.0 (Visual C++ 6.0ȍ~Ɋ܂܂)

		 VisualBASIC6.0.NET̊ԂŌdl傫ωĂ邽߁C
		   .NETȍ~̏ꍇCq̍쐬͂̂܂܂ł͎gpłȂ

foCX}l[Ŵ͎悤ɂč쐬B
{IɁCrhsŃT[oo^уvLV/X^uo^sD

   (0. ANeBuȍ\̐ݒDebugɂ邩AO̐ݒς)
    1. Visual C++NAvWFNg[NXy[Xdevicemanager.dsw
        J
    2. rhs
    3. OLE ViewNAInterfaces̒IDeviceIKernel邱Ƃ
        mF (vLV/X^uDLL̃CXg[mF)

 vLV/X^uDLLȂꍇ́C̍ƂvD
    1. R}hvvgN
    2. Visual C++CXg[fBNgbin/VCVARS32.BATs
        ֘Ac[g悤ɂ
    3. vWFNĝfBNgֈړ
    4. ̃R}hs
        nmake devicemanagerps.mk
    5. ̃R}hs
        regsvr32 devicemanagerps.dll

 foCX}l[W̎svȌꏊړꍇɂ́A
 ̍ƂvD
    1. devicemanager.exeړ
    2. ړŁÃR}hs
        regsvr32 devicemanager.exe

foCX}l[Wړꍇɂ́A̍ƂvB

    1. R}hvvgNAst@Cړ
    2. ړAIvV "/RegServer" Ďs
        > devicemanager.exe /RegServer

foCX}l[W폜ꍇɂ́A̍ƂvB

    1. R}hvvgIvV "/UnregServer" Ďs
        > devicemanager.exe /UnregServer
    2. st@C폜


VisualBASICpfoCXRg[̍쐬ɂ́A̍ƂvB
{IɁCrhsŃT[oo^уvLV/X^uo^sD

    1. Visual C++NAvWFNg[NXy[Xdevice.dswJ
    2. rhs
    3. OLEViewNAInterfacesIDeviceControl邱Ƃ
        mF

VisualBASICpfoCXRg[̈ړɂ́A̍ƂvB

    1. device.dllړ
    2. R}hvvg玟̃R}h𔭍s
        regsvr32 (ړ)\device.dll

VisualBASICpfoCXRg[̍폜ɂ́A̍ƂvB

    1. R}hvvg玟̃R}h𔭍s
        regsvr32 /u (CXg[)\device.dll
    2. DLL폜

-----------------------------------------------
5.1.2 VisualBASICpfoCXRg[̎g
-----------------------------------------------

TOPPERS/JSP Windows ̃foCXG~[VŗpfoCX́AVi
sualBASIC𗘗pĂ쐬\łBVisualBASIC𗘗p邱ƂŁAZ
ŃG~[^쐬łB{łVisualBASICpfoCXRg[
TvƁAȒPȍ쐬菇B

TOPPERS/JSP on Windows Device ComponentŒ񋟂@\͎̒ʂ

IuWFNg DeviceControl

    \bh Public Sub Connect()
        foCX}l[WƂ̒ʐMmB
        mOConnectȊÕ\bhsƎsB
        sE_FAILԂB
    
    \bh Public Sub Close()
        foCX}l[WƂ̒ʐMIB
        sE_FAILԂB

    \bh Public Sub RaiseInterrupt(ByVal inhno as long)
        J[lvZXɃnhԍinhno݂̊𔭐B
        sE_FAILԂB0ȉ̒l͐ݒłȂB

    \bh Public Sub Map(ByVal address as long, ByVal size as long)
        ̃foCXAhXaddresssizeoCg̃TCYŃ}bsOB
        ȌAΏۗ̈ɃANZXƁACxgB
    
    \bh Public Sub Unmap(ByVal address as long)
        AhXaddress܂ނ悤ȃ}bvςݗ̈̃}bsOB
        ȌAΏۗ̈ɃANZXĂCxg͔ȂB
    
    vpeB Public Valid as BOOL [R]
        ̃foCXLłƂɂTrueƂȂB
    
    vpeB Public IsKernelStarted as BOOL [R]
        J[lNĂTrueƂȂB
    
    vpeB Public Offset as long [RW]
        Mf[^obt@̃ItZbgʒuw/擾B
        Pʂ̓oCgPʂłB
    
    vpeB Public AccessSize as short [RW]
        ANZXPʂw/擾B
        l1,2,4̂ꂩłB
    
    vpeB Public Value as long [RW]
        vpeBOffseẗʒuvpeBAccessSizeoCg
        gGfBAɏ]l\̂擾/ݒ肷B
        ANZXsOffset̒lAccessSizeB
        
        CxgOnReadɂǍ݂͖ƂȂB
        CxgOnWriteɂ鏑݂͖ƂȂB
    
    Cxg Private Sub OnRead(ByVal address as long, ByVal sz as long)
        J[laddressԒnɑ΂szoCg̓Ǎ݂Ƃ
        mBfoCX͂̕ԓƂȂli[Ȃ΂ȂȂB
        CxgɂOffset͏0ƂȂB
        OnReadCxgɂValueɑ΂Ǎ݂͂łȂB
        
    Cxg Private Sub OnWrite(ByVal address as long, ByVal sz as long)
        J[laddressԒnɑ΂szoCg݂̏Ƃ
        mBfoCX͂̒lK؂ȏsȂ΂ȂȂB
        CxgɂOffset͏0ƂȂB
        OnWriteCxgɂValueɑ΂鏑݂͂łȂB
    
    Cxg Private Sub OnKernelStart()
        J[lNƂʒmB
    
    Cxg Private Sub OnKernelExit()
        J[lIƂʒmB


foCXIuWFNg͑Mf[^ȒPɈ߂ɁAɃobt@@\
ĂB̃obt@@\̓vpeBAccessSize, Offset, Value3
𗘗pĎ擾/ݒ肷邱Ƃ\ƂȂB

ƂāAJ[l0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xefƂ
8oCg̃f[^ĂꍇAValueɊi[Ăf[^͂ꂼ
AccessSizeɏ]Ď̂悤Ɏ擾B܂ValueɃANZXƎ
IOffsetAccessSizeCNg邽߁AAĎ擾ƘA
f[^擾邱ƂɂȂB

        \: AccessSizeɂValue̒l̕ω
        +----+----------------------------+
        |    |          AccessSize        |
        |+------+--------+------------+
        |    |   1  |     2  |      4     |
        +----+------+--------+------------+
        +----+------+--------+------------+
        |  1 | 0x01 | 0x2301 | 0x67452301 |
        |  2 | 0x23 | 0x6745 | 0xefcdab89 |
        |  3 | 0x45 | 0xab89 |  -`-  |
        |  4 | 0x67 | 0xefcd |  -`-  |
        |  5 | 0x89 | ` |  -`-  |
        |  6 | 0xab | ` |  -`-  |
        |  7 | 0xcd | ` |  -`-  |
        |  8 | 0xef | ` |  -`-  |
        |  9 |`| ` |  -`-  |
        +----+------+--------+------------+


sample1.cāAݓĂ^XNԍ\悤ȃfoCX
쐬菇B̉VisualBASIC 6.0ł̋LqłDVB.NETȍ~
gpĂꍇCK؂Ȍ`ɏC邱ƁD

1. Visual C++ NAJ[l̃vWFNgJ

2. sample1.c #include "device.h" ǉ

3. sample1.c:387syslog̎OɎ̍s
    DeviceWrite(0x1234, 1, &tskno);
        #̖߂ɂă|[g0x1234Ԓn1oCg̃WX^
        #foCXɃf[^o͂ł

4. rh

5. VisualBASIC 6.0NAuWEXEvIAJ

6. j[uvWFNg -> R|[lgvI

7.Rg[̒
    uTOPPERS/JSP on Windows Device Component Type Libraryv`FbNāA
    OKB

8.c[{bNXDeviceControlIAtH[ɓ\(DeviceControl1)

9.xЂƂtH[ɓ\(Label1)

10.tH[_uNbNAForm_Load

    Private Sub Form_Load()
        DeviceControl1.connect       'foCX}l[WƐڑ
        DeviceControl1.Map &H1234, 1 '0x1234Ԓn1oCg̃WX^}bv
    End Sub

11.Form_Unload

    Private Sub Form_Unload(Cancel As Integer)
        DeviceControl1.Close    'foCX}l[WƂ̐ڑ
    End Sub

12.M̓Lq邽߂ɁADeviceControl1_OnWrite

    Private Sub DeviceControl1_OnWrite(ByVal address As Long, ByVal sz As Long)
        Label1 = Str(DeviceControl1.Value)
    End Sub

13.vOsAJ[lN
14.VAo͂'r'͂āA\鐔ωOKB

⑫
 foCXVisiblevpeBFalseɐݒ肷΁AsɊG\Ȃ

TvƂāAwindev/devicecontrol/sampleɂWINDOWS/sample2.cŗpł
foCX̃[UC^tF[XVisualBASICvOBsample2.c̃J[
lƂƂɎgp΁A݂̓Nw҂̏󋵂\ĂB

--------------------------------
5.1.3 foCX}l[W̑@
--------------------------------

TOPPERS/JSP 1.4ɕt̃foCX}l[WCgCACR\
悤ɂȂĂDgCACRENbN邱ƂŃj[\
ƂłD

j[ɂ́C݂̃J[l̓ԁCڑς݃foCXCtς݋
Cڑς݃EHb`\C܂foCXꗗƋI̍ڂ
D

foCX}l[ẂCJ[lѐڑfoCXѐڑEHb`
ƂȂȂĂ莞Ԃo߂ƎIɏIDCfoC
X}l[Wŝ߂ɏIȂꍇɂ́Cj[狭I
邱ƂłDɑSẴfoCXIĂj[̐ڑfoC
X0ɂȂȂꍇC܂J[lNĂȂ󋵂ɂւ炸j
[ɁuJ[lNvƕ\ꍇ́CI邱ƂŃfoCX
G~[V@\𐳏ɓł悤ɂȂD

---------------------------
5.1.4 ?Ǝv
---------------------------

EǂĂĂȂ
    - sys_defs.hDEVICE_ENABLE̍sLɂȂĂ܂H
    - WXgɎ̃L[邩ׂĂ݂ĂB
        51789667-9F20-40AF-AF7F-9856325DFB0B
      ̃L[ꍇ́ÃL[LocalServer32ɋLqꂽt@C
      Ƃ邩ǂׂĂ݂ĂB܂AJ[ls
      ̃t@CsĂ邩m߂ČĂB
    - VB̃foCXłDevice.ConnectƎsĂ邩ׂĂ݂
      D

E}bsOŎs
    łɃfoCX}l[WNĂA|[g܂Ă
    vł\܂BCtrl+Alt+DelA^XN}l[W
    gāCɏ풓ĂfoCX}l[WxIĂA
    ēxsĂ݂Ƃ܂s܂B


--------------------
5.2 g[XO@\
--------------------

----------------------------
5.2.1 g[XO̍쐬
----------------------------

g[XO@\́A3̃vO\ĂB
	EJ[l
		O擾̑ΏۂƂȂJ[lBT[rXΏۂƂȂJ[l
		VXeŒP (Aw莞ɂ͌x)B
	EfoCX}l[W
		J[lo͂OK؂ȃOEHb`ɉ񑗂v
		O (CxgfBXpb`)BJ[l ܂ EHb`
		NƁACOMɂĎNBVXeŒPB
	EOEHb` (EHb`)
		OpsvOBJ[lO
		ɉāAlXȏsBN\B

g[XO@\́AO߂̃foCXG~[V@\g`Œ
ĂB̍\z@ɊւẮA5.1.1QƂ̂ƁB

J[lO@\̈ꕔ́AfoCX}l[WɂĒ񋟂ĂBfo
CX}l[W̐Eo^E폜ɂẮAu5.1.1 foCXG~[V
̍쐬vQƂꂽB

VisualBASICpOEHb`Rg[(COM)̍쐬ɂ́A̍Ƃv
B{IɁCrhsŃT[oo^уvLV/X^uo^s
D

    1. Visual C++NAvWFNg[NXy[Xwatcher.dswJ
    2. rhs
    3. OLEViewNAInterfacesIKernelLogControl邱Ƃ
        mF

VisualBASICpOEHb`Rg[(COM)̈ړɂ́A̍ƂvB

    1. device.dllړ
    2. R}hvvg玟̃R}h𔭍s
        regsvr32 (ړ)\watcher.dll

VisualBASICpOEHb`Rg[(COM)̍폜ɂ́A̍ƂvB

    1. R}hvvg玟̃R}h𔭍s
        regsvr32 /u (CXg[)\watcher.dll
    2. DLL폜


-----------------------------------
5.2.2 R}hC OEHb`
-----------------------------------

R}hCOEHb`́AJ[lOʕ\ƓɁA
"kernel-log-[t]-[].log"Ƃt@C𐶐ăOۑBt
@C̓J[l̋NCxgɐ邽߁AR}hCOEH
b`͈xN΁AJ[l̋NɋNȂKv͖B

vO𐶐ɂ́AVisual C++ 6.0ȂǂMSnn
jsp/windev/cmdwatch/cmdwatch.dswJArhs΂悢B

R}hCOEHb`Ctrl-CCxgtbNĂ̂ŁAvO
IɂCtrl-C΂悢BCtrl-CΌݏo͂
郍Ot@CN[YAvO~B

{vO̓O@\gp邽߂̊񋟂ƓɁAOgp
vO쐬ۂ̃TvłB

Windows̓R\[AvP[V̕\xBJ[l̃O@\
̓OEHb`̑xɈˑ邽߁AR}hCOEHb`gp
ƃJ[l̑xቺBʕ\KvȂ̂ł΁AEBhE
ACRAcmdwatch.cppPrintf֐ŉʂ֏o͂Ă
RgAEgȂǂőx邱ƂłB

------------------------------------
5.2.3 VBpOEHb`Rg[
------------------------------------

VBpOEHb`Rg[́AJ[lo͂OVisual BASICA
vP[VŎgp邽߂̃Rg[łB{Rg[gp
邱ƂŁAMicrosoft ExcelȂǂgpēv̎ȂǂsB

ITRON-DBIFƋLڂ̂ɊւẮAITRONfobMOC^t
F[Xdl 1.00.00 QƂꂽB

	\bh Public  Sub Open()
		OEHb`}l[W֓o^B

	\bh Public  Sub Close()
		OEHb`o^B

	vpeB Public Type as Long [R]
		ŌɔO̎ʂ擾B

	vpeB Public Logtim as Long [R]
		ŌɔÕJ[l擾 (Pʂms)B

	vpeB Public isValid as Bool [R]
		OEHb`ɓ삵ĂƂTRUEԂB

	vpeB Public Param (index as Long) as Long [R]
		eOʖ̒ǉ擾B
		ڂɊւĂITRON-DBIFQƂꂽB

	Cxg Private Sub OnKernelStart()
		J[lNƂʒmB

	Cxg Private Sub OnkernelExit()
		J[lIƂʒmB

	Cxg Private Sub OnLogEvent( ByVal type as Long )
		Cxg̔ʒmB
			type : Cxg (ITRON-DBIF)
					0x1 : ݃nhJn		0x81 : I
					0x2 : ISRJn (T|[g)		0x82 : I (NOSPT)
					0x3 : nhJn			0x83 : I
					0x4 : CPUOJn				0x84 : I
					0x5 : ^XNOJn			0x85 : I
					0x6 : ^XNԕω
					0x7 : ^XN->fBXpb`	0x87 : ->^XN
					0x8 : SVCsJn				0x88 : SVCsI

------------------
5.2.4 t@Co
------------------

g[XO@\́AOq̃foCX}l[WăOo͂@
قɁAt@CɒڃO_v@B@Lɂ邽
߂ɂ́Acom_support.cpp:585-586ɂ`̂悤ɓւB

--- CO ---
//typedef class EventDumpRequest EventRequest;
  typedef class Request          EventRequest;
--- C ---
  typedef class EventDumpRequest EventRequest;
//typedef class Request          EventRequest;
--------------

  LCsƃfoCX}l[WɃOo͂Ȃ߁A
    EHb`ق邱ƂɗӂꂽB

EventDumpRequestt@ĆAITRONfobMOC^tF[Xd
l̕WO`ł͂ȂAdlŒ`ꂽO擾p\̂̃_vC
[WłBAt@C{/ҏWvO(winwatch)́A
TOPPERSvWFNg̐ʕł͂Ȃ߁A[Xɂ͊܂܂ȂB


----------
UD̑
----------

------------------------------
6.1 fBNgEt@C\
------------------------------

------------------------------------------
6.1.1 TOPPERS/JSP Windows-HAL \t@C
------------------------------------------

[jsp]
  +- [config]
  |   +- [windows]
  |       +- api.h              : APIK[hʉߗp`t@C
  |       +- com_support.cpp    : COM֘A@\
  |       +- com_support.h      : COM֘A@\`
  |       +- cpu_config.c       : vZbTˑW[
  |       +- cpu_config.h       : vZbTˑW[
  |       +- cpu_context.h      : ^XNReLXg샋[`
  |       +- cpu_defs.c         : m68k̊݃G~[^
  |       +- cpu_defs.h         : m68k̊݃G~[^
  |       +- cpu_rename.h       : V{Փˉwb_t@C
  |       +- cpu_rename.def     : ՓˉV{`t@C
  |       +- cpu_unrename.h     : V{Փˉwb_t@C
  |       +- debugout.c         : fobOR\[W[
  |       +- debugout.h         : fobOR\[`t@C
  |       +- device.h           : foCXG~[Vp`t@C
  |       +- eventlog.c         : g[XO@\ ⏕֐
  |       +- eventlog.h         ; g[XO@\ ⏕֐`
  |       +- hal_msg.h          : J[lV~[^ bZ[W`t@C
  |       +- hal_resource.rc    : TOPPERS/JSP Windows \[Xt@C
  |       +- hw_timer.h         : ^C}
  |       +- hw_serial.h        : VAG~[V wb_
  |       +- hw_serial.c        : VAG~[V 
  |       +- icon1.ico          : ACRt@C
  |       +- messages.h         : foCXG~[VbZ[W`
  |       +- primary_thread.c   : Gg
  |       +- resource.h         : \[XID`t@C
  |       +- sys_config.c       : VXeˑW[
  |       +- sys_config.h       : VXeˑW[
  |       +- sys_defs.h         : VXeˑ`t@C
  |       +- sys_rename.h       : V{Փˉwb_t@C
  |       +- sys_rename.def     : ՓˉV{`t@C
  |       +- sys_unrename.h     : V{Փˉwb_t@C
  |       +- vitron.h           : itron.hՓˉpwb_t@C
  |       +- vwindows.h         : windows.hՓˉpwb_t@C
  +- [tools/WINDOWS]
      +- configure.vbs          : XNvg
      +- kernel_cfg.c           : RtBM[^t@C
      +- kernel_id.h            : ID`t@C
      +- sample1.c              : TvvO
      +- sample1.h              : TvvO wb_[
      +- sample1.cfg            : TvvO J[l\t@C
      +- sample2.c              : TvvO2 NwҖ
      +- sample2.h              : TvvO2 wb_[
      +- sample2.cfg            : TvvO2 J[l\t@C
      +- windows.chk            : Windowsp`FbNXNvgt@C
      +- [vc_project]
          +- Toppers.dsp        : Visual C++ vWFNgt@C
          +- Toppers.dsw        : Visual C++ [NXy[X


---------------------------------------------------------
6.1.2 TOPPERS/JSP Windows T|[gW[ \t@C
---------------------------------------------------------

[windev]
  +- make.vbs                   : XNvg
  |
  +- [cmdwatch]                 : R}hCx[X OEHb`
  |   +- cmdwatch.cpp           : OEHb`{
  |   +- cmdwatch.dsw           : Visual C++ [NXy[Xt@C
  |   +- cmdwatch.dsp           : Visual C++ vWFNgt@C
  |
  +- [devicemanager]            : foCX}l[W(COM)
  |   +- device.cpp             : foCXIuWFNg
  |   +- device.h               : foCXIuWFNg`t@C
  |   +- device.rgs             : foCXIuWFNgo^t@C
  |   +- devicemanager.cpp      : CvO
  |   +- devicemanager.dsp      : Visual C++ vWFNgt@C
  |   +- devicemanager.dsw      : Visual C++ [NXy[X
  |   +- devicemanager.h        : IuWFNg`t@C
  |   +- devicemanager.idl      : MIDLIuWFNgLqt@C
  |   +- devicemanager.rc       : \[Xt@C
  |   +- devicemanager.rgs      : AppIDWXg[Vt@C
  |   +- devicemanagerCP.h      : RlNV|CgvLV
  |   +- devicemanager_?.c      : vLV/X^uR[h
  |   +- devicemanagerps.def    : vLV/X^u`
  |   +- devicemanagerps.mk     : vLV/X^u Makefile
  |   +- icon1.ico				: ^XNgCpACR
  |   +- informat.bin           : InformationIuWFNgo^t@C
  |   +- information.cpp        : 񋟃IuWFNg
  |   +- information.h          : 񋟃IuWFNg`t@C
  |   +- information.rgs        : InformationWXg[Vt@C
  |   +- kernel.cpp             : J[lIuWFNg
  |   +- kernel.h               : J[lIuWFNg`t@C
  |   +- kernel.rgs             : J[lo^t@C
  |   +- messages.h             : bZ[W`t@C (o[Wp)
  |   +- range.h                : W^`t@C
  |   +- resource.h             : \[X`t@C
  |   +- stdafx.cpp             : CIuWFNg
  |   +- stdafx.h               : vRpCΏۃwb_
  |
  +- [devicecontrol]            : VBpfoCXRg[(COM)
  |   +- bmp00001.bmp           : Rg[\pACR
  |   +- device.cpp             : DLL֘A
  |   +- device.def             : vO`t@C
  |   +- device.dsp             : Visual C++ vWFNg
  |   +- device.dsw             : Visual C++ [NXy[X
  |   +- device.h               : IuWFNg`t@C
  |   +- device.idl             : MIDLIuWFNg`t@C
  |   +- device.rc              : \[Xt@C
  |   +- deviceCP.h             : RlNV|CgvLV
  |   +- deviceco.bmp           : AvP[VACR
  |   +- devicecontrol.cpp      : foCXRg[
  |   +- devicecontrol.h        : foCXRg[`t@C
  |   +- deviceps.def           : vLV/X^u`
  |   +- resource.h             : \[X`t@C
  |   +- stdafx.h               : vRpCΏۃwb_
  |   +- stdafx.cpp             : (ɂȂ)
  |   +- [sample]               : foCX̃Tv
  |       +- form1.frm          : tH[ (eLXg)
  |       +- form1.frx          : tH[ (oCi)
  |       +- sample2_ui.vbp     : VisualBASICvWFNgt@C
  |       +- sample2_ui.vbw     : VisualBASIC[NXy[X
  |
  +- [watcher]                  : VBpOEHb`Rg[(COM)
      +- kernello.bmp           : OEHb`ACR
      +- kernellogcontrol.cpp   : J[lOEHb` {
      +- kernellogcontrol.h     : J[lOEHb` wb_t@C
      +- resource.h             : \[XID`t@C
      +- stdafx.h               : vRpCΏۃwb_t@C
      +- stdafx.cpp             : (ɂȂ)
      +- watcher.cpp            : Rg[䃋[`
      +- watcher.def            : vO`t@C
      +- watcher.dsp            : vWFNgt@C
      +- watcher.dsw            : [NXy[X
      +- watcher.rc             : \[Xt@C
      +- watcher_?.c            : vLV/X^uR[h
      +- watcherCP.h            : RlNV|Cg`t@C
      +- watcherps.def          : vLV/X^u`t@C

------------------
VDo[W
------------------

o[W3琬AJSP̃o[WԍƈvBo[WȊO
̂Ă̂́Azz/pr(vg^CvȂ)ӖB

	2003N1219  Release 1.4
		E[X
		EvWFNgfBNg̈ړɔC
			- hLg
			- vWFNgt@C

	2003N12 3  Release 1.4 - Prerelease 
		EfBXpb`֎~Ɋ݂ƃfBXpb`NoOC
		EfoCX}l[WgCɍڂăj[ǉ
		ECOMʐMNGXgExclusiveRequestǉ

	2003N1110  Release 1.4 - Prerelease 4 ()
		Eb蕦|bgƂ̒ȂĂ̂Œ/
			- foCX}l[W̃R[ḧꕔt@N^
			- ET2003̃fpɃOEHb`C
		EfoCX}l[W̃j[Ƀ}bvς݃foCXꗗǉ

	2003N 821  Release 1.4 - Prerelease 4 ()
		EcygwinŃRpCł悤Ɏ
		E}`vZbTpAffinityMaskݒ
		ER\[̏ŗpX

	2003N 617  Release 1.4 - Prerelease 4
		EVAhCo̍XVɍ킹Ă
		Eg[XOt@CɃ_v@\ǉ

	2003N 5 9  Release 1.4 - Prerelease 3
		ECOMʐM[`}
		EVXebN̓
		EfobOpϐ
		E}`fBA^C}gp

	2003N 2 1  Release 1.4 - Prerelease 2
		EDesignWave̕t^ɂ邽߂ɃRgȂǂC

	2003N 119  Release 1.4 - Prerelease 2
		Etoppers-staffɔzz (1.4 Release Candidate)
			- Release 1.4 ̏C
			- VAR\[^XNo[ɏȂ̂C
			- sys_putc̎

	2002N1220  Release 1.4 - Prerelease 1
		EvWFNgoɔzz
			- J[lO|Cg f
			- O擾@\ oOtBNX
			- O@\̎

	2002N 9 4  Release 1.4 - Technical Preview
		EO擾C^tF[X
			- J[lO|Cgߍ
			- foCX}l[WɃO񑗃[`
			- EHb`쐬

	2002N 7 7  Release 1.3.1()
		E^XNOǗXbhŎsĂ܂̂
			̏CɂMSVCł̃RpCK{
		E݃G~[^ena_int/dis_intς
		EƂǂɃRg
		EDebugOut֐

	2002N 630  Release 1.3.1
		ERelease 1.3̂ƂɒƎvĂVAhCõoOC
			- ǗXbhJSP̊֐gAѐoOC
		ERelease 1.3̌ɌoÕtBbNX
			- hLg̏C (foCX}l[W `[gA)
			- J[l̃foCXG~nhXbhDispatchMessage
				p[^|C^ɂȂĂȂ̂C
			- ShellNotifyIcon̍폜ɎgĂhWndo^ƈقȂĂ߂
				IACR폜ȂoOC
		EfoCX}l[W̏C
			- J[lKeepAlivemF݂ݒuAJ[lI
				foCX}l[WɐڑłȂȂoOC
			- dJ[lNɁAǂɐڑ邩mF悤ɏC

	2002N 4 6  Release 1.3
		ERelease 1.3Ɍ܂ܒ
			- WSHXNvg̓
			- VKRtBM[^ւ̑Ή
			- RtBM[V`FbJftHgŎgp悤C
			- ̃hLg̏C

	2001N1115  Release 1.2
		ERelease1.2[X
			- ƊÕo[W킹邽߁Arel 1.2XLbv

    2001N1112  Release 1.1.6
        ERelease1.2Ɍ܂܂Ȓ
            - Wrhp[NXy[X & vWFNg̕ύX
            - ҂pVbg_EXbh̓
            - ̃hLg̏C

    2001N11 1  Release 1.1.5
        Esample1.c̃rh
            - hLgsample1.c̃rh@ɂcfg.exẽpXԈĂ̂C
                # jsp/WINDOWS/cfg.exe -> jsp/cfg/cfg.exe
            - LCɔAsample1.cp̃vWFNg[NXy[XC

    2001N1024  Release 1.1.4
        EfoCXG~\΍
            - COMfoCXG~O̊ݗv󂯓ȂoOC

    2001N 913  Release 1.1.3
        Edl΍
            - sns_dpnCPUOFALSEƂȂoOC
            - ShellNotifyIconȂoOC
            - sample1.cCPUOANZXᔽA[U`O֏C (OA΍)

    2001N 729  Release 1.1.2
        EVAR\[ɂX^bNj̉
            - KeyEventTrapperCALLBACKw肪sĂ̂C

    2001N 324  Release 1.1.1
        EJ[l̃foCXI҂̉
            - foCXICxgSIGNALԂɂOɍ폜Ă܂A
               J[l҂ɊׂĂ܂oOC

    2001N 223  Release 1.1
        ETOPPERS/JSP release 1.1ɍ킹낢C
            - foCX}l[W̃t@CKɏ]C
            - foCXRg[̃t@CKɏ]C
            - sample2.cfoCXfpɏ

    2001N 220  Release 1.0.8
        EoOtBbNXƂ
            - HALMSG_MESSAGESWM_USERWM_APP
            - PrimaryDialogHandlȇʒuC

    2001N 129  Release 1.0.7
        EfoCXRg[[XpɏC
            - OtBbN̏C/ǉ
            - OnDraw֐̏C
            - IDL helpstring̒ǉ
            - device_com.cppɃRgǉ

    2001N 112  Release 1.0.6
        E}jÃfoCXT|[gɊւǉ

    2001N 1 4  Release 1.0.5
        Eݒ蕔sys_defs.hɒǂo
        EI[`̈ꕔ

    2000N1230  Release 1.0.4
        EfoCXT|[g@\ (COM)
        Eꕔ̃nh̕\L𐳎Ȃ̂ɂ (HANDLE->HWNDȂ)

    2000N1221  Release 1.0.3
        EfoCXT|[g@\ ([Xbg)

    2000N1212  Release 1.0.2
        EVisual C++̃vWFNgt@C̈ʒuړ
        E͂̃̕~X_C

    2000N1124  Release 1.0.1
        E^XNOȂoOC
        ER\[VAhCoX^bNj󂷂̂C
    
    2000N1115  Release 1.0
        Eŏ̃[X

ȏ
