-------------------------------------------------------------------------------
 HOS-H8h Ver 0.07 Hyper Oparating System for H8/300H                           
 t@X}jA                                                        
                                              Copyright (C) 1998-2000 by Ryuz  
-------------------------------------------------------------------------------


  ̃}jAł HOS-H8h ̗p܂B


ڎ
  P  HOS-H8h ̊Tv
  Q  CũCN@
  R  RtBM[^[̎g
  S  vÕCN@
  t^`  쌠EĔzzɂ
  t^a  ӎ
  t^b  Ql



-------------------------------------------------------------------------------
                                P
                            HOS-H8h ̊Tv
-------------------------------------------------------------------------------

  HOS-H8h ̓ITRON3.0dlɏ  H8/300H V[Yp̃A^C
nrłBɌlxł̃zr[ړIƂłqnlVXe
N邾ŊȒPɑgݍނƂo܂BRpĆiLjHdq
̔ĂbRpCƃAZuOƂĂ܂A炭
makefike  Np̃t@CC邾œ쏊̂bRpC
p鎖\Ǝv܂B


1.1 VXeR[

  ڑ@\xr܂łƈꕔ̃xdAb̃VXeR[T|[g
Ă܂B
  T|[gĂVXeR[͈ȉ̒ʂB

^XNǗ
  sta_tsk  ext_tsk  ter_tsk  dis_dsp  ena_dsp  chg_pri  rot_rdq  rel_wai
  get_tid  ref_tsk

^XNt@\
  sus_tsk  rsm_tsk  frsm_tsk slp_tsk  wup_tsk  can_wup

EʐM@\
  sig_sem  wai_sem  preq_sem ref_sem  set_flg  clr_flg  wai_flg  pol_flg
  ref_flg  snd_msg  rcv_msg  prcv_msg ref_mbx

荞݊Ǘ@\
  ret_int  loc_cpu  unl_cpu

ԊǗ@\
  set_tim  get_tim  dly_tsk

v[
  get_blf  pget_blf rel_blf  ref_mpf

VXeǗ
  get_ver  ref_sys


  eIuWFNg͑SĐÓIɐ܂BRtBM[^[pӂĂ
܂̂ŊȒPɐ邱Ƃ\łB


1.2 XybN
  ő^XN           255
  SUSPENDőlXg    65535
  NvőlXg   65535
  őZ}tH         255
  őZ}tHJE^   65535
  őCxgtO   255
  CxgtO̎   16 bit
  ő僁C{bNX   255



-------------------------------------------------------------------------------
                                Q
                       \[Xt@C̃CN@
-------------------------------------------------------------------------------

  HOS-H8h ̓\[XŔzz܂̂ŗp邽߂ɂ͂܂\[XCN
IuWFNgt@C𐶐Kv܂BH̔RpC
ɂ̓CuA܂̂ŃCut@C͍܂B͈
̂łQ̃IuWFNgt@CɂׂĂ܂Ƃ߂Ă܂܂B̏͂ł
\[X̃CN@܂B


2.1 KvȃAZuARpC
  HOS-H8h RpC邽߂ɂ͗LЏHdqʏ̔Ă
AKI-H8p̂bRpCƃAZuKvłBt}jAɉ
ZbgAbvĂĉB܂ make KvƂȂ܂B
uGEGXEACWpЁvzzĂuLSI C-86 Ver.3.30
HŁvt make 𗘗p܂Bʓr肵Ă܂悤肢
܂B

  Ȍ̐̓AZuуRpC̃fBNgɃpXʂAp
\ȏԂɂȂĂ邱ƂOɐi߂܂B


2.2 wb_t@C̃Rs[
  ܂͔zzt@C𓀂ɍ INCLUDE ƂfBNg
ɂt@CRpC̗pfBNgɃRs[܂B
wb_t@C̓\[X̃Nɂgp܂AォHOS-H8h𗘗p
AvP[V쐻ۂɂCN[hKv܂B

2.3 CNt@CȂǂ̐ݒ聄
  𓀎ɏo src ƂfBNg makefile o܂Awb_
t@C̃pXwȂǈꕔɈˑݒ荀ڂ܂Bp
ɍďĉB

2.4 CũCN
  SĂ̐ݒ肪I炢悢惁CNłB𓀎 src  makefile 
܂̂ŁÃfBNgɈړ make sĂBG[
 hos_c.obj  hos_asm.obj ƂIuWFNgt@C
͂łBCuA΃Cu쐬ƂȂ̂łA
H͔̔ĂȂ悤ł̂ŁAbꕔƃAZuł
ꋭɂPɂ܂Ƃ߂Ă܂B
  HOS-H8h ̎gpɍۂĂ̂Q̃IuWFNgN܂B


2.3 RtBM[^[̃Rs[
  config ƂfBNg hcfgh8h.c ƂRtBM[^[̃\[X
 hcfgh8h.exe Ƃ hcfgh8h.c  Borland-C++ 5.01J ŃRpC
pӂĂ܂BAvP[V쐬 hcfgh8h.exe 𗘗p܂̂ŁA
pX̒ʂfBNgɃRs[ĂĂB

   HOS-H8h 𗘗pAvP[V쐻鏀܂B




-------------------------------------------------------------------------------
                                R
                      RtBM[^[̎g
-------------------------------------------------------------------------------

  ̏͂ł HOS-H8h ̃RtBM[^[̎g܂B


3.1 RtBM[^[Ƃ́
  HOS-H8h ł̓^XN͂߁AZ}tHACxgtOȂǂ͐ÓIɐ
B̂߂LqvORpCANsȂKv
܂B̃vO𖈉Lq͖̂ʓ|ł邽߁AKv
ڂ݂̂t@CpӂARtBM[^[g̃t@C
Kvȃ\[X𐶐܂B

3.2 RtBM[^[̋@\
  RtBM[^[͎̋@\܂B

  EőDx̎w
  E荞݃nh̓o^
  EX^bNv[̓o^
  E^XN̓o^
  EZ}tH̓o^
  ECxgtO̓o^
  EC{bNX̓o^


3.3 RtBM[^[̓쁄
  RtBM[^[̓[U[pӂ "hos.cfg" Ƃt@Cǂݍ
ŉ͂A"cfg_c.c"A"cfg_asm.asm"A"defid.h"ƂR̃t@Co͂
܂B[U[͊evO̒ "defid.h" CN[hĎgACN
ɂ "cfg_c.c"A"cfg_asm.asm" ꂼRpCăNKv
܂B

iFo[Wł̓t@CŒłBj


3.4 RtBM[Vt@C̏
  RtBM[Vt@C("hos.cfg")̏܂B

t@Cɂ͂PsɂP߂݂̂Ƃo܂B܂߂͈sɑSď
܂Kv܂B
  pł閽߂ȉɋL܂B

  INCLUDE_C     "cfg_c.c" œǂݍރt@C̎w
  USE_TIMER     ԊǗ@\𗘗p邱Ƃ錾
  NOUSE_TIMER   ԊǗ@\𗘗pȂƂ錾
  MAX_TSKPRI    ő^XNDxw
  SYSTEM_STACK  VXep̃X^bN|C^̎w
  CRE_SPL       X^bNv[̍쐬
  CRE_TSK       ^XN̓o^
  CRE_TSKSP     X^bNv[g^XN̓o^
  CRE_SEM       Z}tH̓o^
  CRE_FLG       CxgtO̓o^
  CRE_MBX       C{bNX̓o^
  CRE_MPF       Œ蒷v[̓o^
  DEF_INT       荞݃nh̓o^


  ̓Iȗ͉𓀎ɏo sample ƂfBNgɂ܂̂ŎQƂ
Bł͌X̖߂ȒPɐ܂B


INCLUDE_C  bt@CpCN[ht@Cw
  @F INCLUDE_C("filename.h")

  "cfg_c.c" ŃCN[ht@Cw肵܂B"cfg_c.c" ł̓^XN
Jn̊֐Ȃǂp܂̂ŁA錾wb_t@C̃C
N[hKvłB̖߂ɂĎw肵ĂB
  ȂA<ITRON.h> ͎Iɐ擪ɓǂݍ܂܂B


USE_TIMER  ^C}p
  @F USE_TIMER (ftHg)

  ԊǗ@\gƂ錾܂Bۂɋ@\gɂ͒I
__time_handler Ăяo悤ɂKv܂B
  ԊǗp̃VXeR[ĂяoȂ USE_TIMER w肵Ă
̂ŃftHgƂȂĂ܂B


NOUSE_TIMER  ^C}gp
  @F NOUSE_TIMER

  ԊǗ@\gȂƂ錾܂BԊǗp̃mۂȂ
Ȃ܂B


MAX_TSKPRI  ő^XNDxw
  @F MAX_TSKPRI(maxtskpri)

  maxtskpri : őDx

  őDxw肵܂B͈͂̃G[`FbN͍sȂĂȂ̂Ŏw肷
ۂ͎ۂɎgĂDxǂmFĂB


SYSTEM_STACK  VXepX^bNAhXw
  @F SYSTEM_STACK(stackadr)

  stackadr  : X^bN|C^̃AhX

  X^[gAbv^XNŃVXepX^bN|C^̏l
w肵܂BftHg 0xfff10 łBʏRAM̍Ōw肵܂B


CRE_SPL  X^bNv[̍쐬
  @F CRE_SPL(ID_SPL, splcnt, splsz)

  ID_SPL    : X^bNv[hc`
  splcnt    : X^bŇ
  splsz     : X^bÑTCY

  ^XNԂŋLłX^bN쐬܂BX^bNv[𗘗p
^XN sta_tsk ɂō쐬X^bNv[X^bN̈
蓖Ă󂯂܂B
  ITRON3.0̎dlO̓ƎłB


CRE_TSK  ^XN
  @F CRE_TASK(ID_TASK, exinf, func, itskpri, stacksize)

  ID_TASK   : ^XNhc`
  exinf     : g
  func      : ^XNJn֐  void func(int stcd)
  itskpri   : ^XNDxl 1`8
  stacksize : X^bNTCY

  ^XNhc͎IɐU "defid.h" 

  #define ID_TASK 1

  Ƃ`ŏo͂܂B̍ڂɐlw肷ƒIDԍ
w肷邱Ƃo܂B


CRE_TSKSP  ^XN
  @F CRE_TSKSP(ID_TASK, exinf, func, itskpri, splid)

  ID_TASK   : ^XNhc`
  exinf     : g
  func      : ^XNJn֐  void func(int stcd)
  itskpri   : ^XNDxl 1`8
  splid     : X^bNv[̂hc

  DOMANTԂłȂȂƂɎw肳ꂽX^bNv[X^bN
蓖Ă܂B蓖ĂX^bNꍇ́uX^bN҂vƂ
HOSƎ̏ԂƂȂ܂B
  ̋@\ɂAɃfBԂɂȂ^XN̐X^bNp
ċL邱Ƃo܂B


CRE_SEM  Z}tH
  @F CRE_SEM(ID_SEM, exinf, isemcnt, maxsem)

  ID_SEM    : Z}tHhc`
  exinf     : g
  isemcnt   : Z}tH̏l
  maxsem    : Z}tH̍ől


CRE_FLG  CxgtO
  @F CRE_SEM(ID_FLG, exinf, iflgptn)

  ID_FLG    : CxgtOhc`
  exinf     : g
  iflgptn   : CxgtOl


CRE_MBX  C{bNX
  @F CRE_MBX(ID_MBX, exinf, bufsize)

  ID_MBX    : C{bNXhc`
  exinf     : g
  bufcnt    : obt@̃TCY


CRE_MPF  Œ蒷v[
  @F CRE_MPF(ID_MPF, exinf, mpfcnt, mpfsz)

  ID_MBX    : C{bNXhc`
  exinf     : g
  mpfcnt    : ubN
  mpfsz     : PubÑTCY(Byte) Qȏł邱


DEF_INT  荞݃nh`
  @F DEF_INT(intnum, func)

  intnum    : 荞ݔԍ 1`60
  func      : 荞݃nhib̊֐j

  WX^̑ҔAX^bN̐؂ւ void func(void) Ă΂܂B
  Ȃd荞݂ɂΉĂ܂̂Ŋ荞݃[`Ŋ荞݂
Ă܂܂B


l
  "cfg_c.c" ɓWJp[^[̂قƂǂ͐lƂĂł͂Ȃ
Ă̂܂ܓWJ܂B̂߃G[`FbN\͂͂قƂǂ܂񂪁A
͂AINCLUDE_C ߂œǂݍރwb_t@C̃}N𗘗p
邱Ƃo܂B




-------------------------------------------------------------------------------
                                 S
                            vO̍쐬@
-------------------------------------------------------------------------------

  ̏͂ł͎ۂ HOS-H8h gvO쐬@܂B


4.1 X^[gAbv[`

  ʂ̂b̃vO main ֐n܂܂AHOS-H8h ł
  start_up Ƃ֐n܂܂B

  void start_up(void)

  Ƃ֐KpӂĂB

  ̃X^[gAbv[`͔^XNƂĈA荞݂͋ꂽ
ԂŌĂяo܂Bʂ͂ŕϐ̏foCXݒs^XN
X^[g肵܂B^XN؎g킸荞݂ŏȂǂƂ
ꍇ͕ʂ mian ֐ƂĎg܂B
  ^[ɃfBXpb`Jn܂B


4.2 ԊǗ@\
  ԊǗ@\g߂ɂ __time_handler ƂnhIɌĂяo
Kv܂B^XNIɌĂԂAC^[o^C}ݒ肵
荞݃AhX __time_handler w肵ĂB
  ȂAĂяoƂɐiގԂݒ肷 vset_tmi(timint) Ƃ}N
pӂĂ܂BftHgłPݒ肳Ă܂ vset_tim(5) Ɛ錾Ă
 5msec ԊuŌĂяoĂԂ 1msec PʂƂȂ܂B
  rƂłA2.5msecPʂŌĂяo vset_tim(2)vset_tim(3) ݂ɌĂ
ȂǂƂƂo܂B msec PʂłKvꍇ͗pĂ
B


4.3 CN
  CN̍ۂɂ͍쐻\[X̂قɃRtBM[^[o͂ cfg_c.c
 cfg_asm.asm ̂QނꂼRpCKv܂B̎A
cfg_asm.asm 琶 cfg_asm.obj X^[gAbv[`ƂȂ܂̂
擪ɂăNsĉB




-------------------------------------------------------------------------------
                                T
                            TṽCN
-------------------------------------------------------------------------------

5.1 Tv̊Tv
  ȒPȃTvpӂĂ܂BCSI(`lPjpĂobƒʐM
̂łA^XNP͂ob瑗P炵ăGR[obNA
^XNQ͎n߂̂PObԁAPbɌݎobɕ\Ƃ̂łB


5.2 CN̑OɁ
  Tv͉𓀎ɂł sample ƂfBNgɓWJ܂B܂
쐬 hos_c.obj  hos_asm.obj ̃fBNgɃRs[ĉB
   makefile ̃pX̎wȂǂp̊ɍďĉB
  ܂Alnk.sub ƂÑTut@C\Ȃǂɉď
ĂB


5.3 CN
  make s sample.mot Ƃg[rt@C
͂łB
  ɓ]ē삷ΐłB



-------------------------------------------------------------------------------
                                 t^`
                             쌠EĔzz
-------------------------------------------------------------------------------

A.1 쌠
  zzpA[JCuɊ܂܂SẴvOA\[Xt@CAhLg
쌠 Ryuz Ɵ㗳iێ܂B


A.2 ƐӁ
  ̃vO̎gpɂĐȂ鑹Q҂⏞̂ł
܂BvO̗p͗p҂̐ӔCɂčsȂĂB


A.3 p
  ̃vO͔cړIłΎRɗp邱Ƃo܂Blx
ł̉RɍsȂƂo܂A쌠̕\͕ύXȂ悤肢
܂B
  cړIŗp͂ȂƂ͎v܂A]܂
܂łAB


A.4 Ĕzz
  vOς܂߂čĔzz͎RƂ܂B҂ɖfłǂ
ǂĂBAςĔzzꍇ͒쌠̕\ƕύX
ƎcĂ܂悤ɂ肢܂BύXcĂ
΂nrύXA͉HĂĂ܂܂B҂ɖf
ǂǂhĂiA𒸂ΊłjB


A.5 tȂǁ
  t͑劽}łiȂł傤(^^; jB҂܂łABt
ĂƂēʂɂȂɂo킯ł͂܂񂪁AJ
ĂĂ܂BHIȕ}łB̃VFAEFA𔃂Ă
Ăłi΁jB


A.6 ҂̘A恄
  2000N8݂̍҂̘A͈ȉ̒ʂłBoO|⊴zȂ
ƊłB

  e-mail  : QZF06013@nifty.ne.jp
 HomePage : http://member.nifty.ne.jp/Ryuz/





-------------------------------------------------------------------------------
                                 t^a
                                  ӎ
-------------------------------------------------------------------------------

  TRONvWFNgƂ΂炵̂𐶂ݏoĂ܂w
⑺搶AITRONɑ傫ȍv MLłbɂȂ܂LZpȊww
cL͐搶Afl̎ɂ悭 ITRON-Club COXg
̕XɌ\グ܂B
  gccpɈڐAoO|񒸂ןAf
Sӌ_AShunjiAvIȃoOɓ˂ł
k-sasakiAMdȂӌ terukApenAterukȂ
吨̕XA{̌Ƃ܂֌ŴɊJ񋟉B
HƑw̍搶Ȃƌ㌤HOSgĂĂΐNȀ
؂肵Č\グ܂B




-------------------------------------------------------------------------------
                                 t^b
                                Ql
-------------------------------------------------------------------------------

  ̃vO̍쐬ɂQlƂȉɋL܂B
uITRON3.0WnhubNv͎茳ɒu邱Ƃ߂܂B
 http://tron.um.u-tokyo.ac.jp/TRON/ITRON/home-j.html pł
 _E[ho悤łB


  ITRON3.0WnhubN  V
     ďC ⑺    p[\ifBA
     ISBN4-89362-154-8  \4,000+

  ITRONEITRONWnhubN
     ďC ⑺    p[\ifBA
     ISBN4-89362-079-7  \4,800+

  TRONWKChubN2
     ďC ⑺    p[\ifBA
     ISBN4-89362-133-5  \3,500+

  TRONWARE Vol.3 A^Cnr ITRON
     p[\ifBA
     ISBN4-89362-071-1  \1,204+

  TRONWARE Vol.5 VO`bvCPUA^Cnr ITRON
     p[\ifBA
     ISBN4-89362-076-2  \1,204+

