-------------------------------------------------------------------------------
 HOS-80 Ver 0.01 Hyper Oparating System for Z80                                
 ե󥹥ޥ˥奢                                                        
                                                    Copyright (C) 1998 by Ryuz 
-------------------------------------------------------------------------------


  Υޥ˥奢Ǥ HOS-80 Ѥޤ



ܼ
  裱  HOS-80 γ
  裲  饤֥Υᥤˡ
  裳  ե졼λȤ
  裴  ץΥᥤˡ
  Ͽ  ۤˤĤ
  Ͽ  ռ
  Ͽ  ʸ




-------------------------------------------------------------------------------
                                裱
                            HOS-80 γ
-------------------------------------------------------------------------------

  HOS-80 ϦITRON3.0ͤ˽򤷤 Z80 ѤΥꥢ륿ϣӤǤ˸Ŀ
٥ǤΥۥӡŪȤʪǣңϣͲ륷ƥ˥󥯤Ǵñ
Ȥ߹ळȤޤ


1.1 㥷ƥॳ

  ³ǽ٥ӤޤǤȰΥ٥šäΥƥॳ򥵥ݡ
Ƥޤ
  ݡȤƤ륷ƥॳϰʲ̤ꡣ


  sta_tsk  ext_tsk  ter_tsk  dis_dsp  ena_dsp  chg_pri  rot_rdq  rel_wai
  get_tid  ref_tsk

°Ʊǽ
  sus_tsk  rsm_tsk  frsm_tsk slp_tsk  wup_tsk  can_wup

Ʊ̿ǽ
  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

ס
  get_blf  pget_blf rel_blf  ref_mpf

ƥ
  get_ver  ref_sys


  ƥ֥ȤŪޤե졼ѰդƤ
ޤΤǴñ뤳ȤǽǤ


1.2 㥹ڥå
  祿           255
  SUSPENDͥȿ    255
  ׵ͥȿ   255
  祻ޥե         255
  祻ޥե   255
  祤٥ȥե饰   255
  ٥ȥե饰μ   8 bit
  ᥤܥå   255




-------------------------------------------------------------------------------
                                裲
                        饤֥Υᥤˡ
-------------------------------------------------------------------------------

  HOS-80 ϥۤޤΤѤ뤿ˤϤޤᥤ
饤֥եɬפޤξϤǤϥ饤֥Υᥤˡ
ޤ


2.1 ɬפʥѥ
  HOS-80 򥳥ѥ뤹뤿ˤϡ֥롦 ѥҡ
LSI C-80 ɬפǤHOS-80γȯˤ Ver3.5 Ѥޤäʣʵ
ǽѤƤޤΤ¿ѹ¾ΥСǤ⥳ѥǽ
פޤ
  ʸϥѥΥǥ쥯ȥ˥ѥ̤ꡢѲǽʾ֤ˤʤä
뤳Ȥ˿ʤޤ

2.2 إåեΥԡ
  ޤۥեष˺ INCLUDE Ȥǥ쥯ȥ
ˤե򥳥ѥѤǥ쥯ȥ˥ԡޤ
إåեϥ饤֥Υ󥯻ˤѤޤ夫HOS-80
ץꥱݤˤ⥤󥯥롼ɤɬפޤ
  Ȥ LSIC-80  c:\lsij\lsic80 ˥󥹥ȡ뤵Ƥʤ
c:\lsij\lsic80\include\hos Ȥäǥ쥯ȥƥԡƤ
ФǤ礦

2.3 㥳ѥ륪ץ
  LSIC-80 ˤϥǥեȤΥѥ륪ץȤ _lcc80 Ȥե
ޤˤǤ libsrc Ȥǥ쥯ȥˤϥ饤֥Υᥤ
˻Ѥ _lcc80 ޤޤϤʬδĶ˹碌ƽľ
Ūˤϥ󥯥롼ɥե饤֥եΤѥ
ѹơ˥ԡإåեΥѥɲäޤ
  㤨ξϰʲΤ褦ˤʤϤǤ

-Xc:\lsij\lsic80\bin			# ޥɤΥǥ쥯ȥ
-Lc:\lsij\lsic80\lib			# 饤֥Υǥ쥯ȥ
-Ic:\lsij\lsic80\include		# إåΥǥ쥯ȥ
-Ic:\lsij\lsic80\include\hos	# HOS-80Υإåե

  ޤ_lcc80 ̵ä LSIC-80 Υǥ쥯ȥ _lcc80 Ȥ
ޤΤǡˤ HOS-80 ѤΥإåեΥѥꤷƤȸ塹
Ǥ礦
  ޤ sample ǥ쥯ȥˤ⥵ץᥤѤ _lcc80 ޤΤ
ץᥤˤϤľƤ

2.4 饤֥Υᥤ
  Ƥ꤬ä餤褤ᥤǤ libsrc  makefail 
ޤΤǡΥǥ쥯ȥ˰ư LSIC-80 ° kmmake ¹ԤƤ
顼̵ hos80.sof Ȥ饤֥ե hos80_st.sof Ȥ
ȥåѤΥ֥ȥե뤬ϤǤ
   hos80.sof  hos80_st.sof 饤֥ѤΥǥ쥯ȥ(Ǥ
c:\lsij\lsic80\lib) ˥ԡƤ

  hos80_st.sof  lcc80  -a ץȤ߹ߤޤHOS80 Ѥʤ
ΤǤХǥեȤ _lcc80  -ahos80_st.sof Ƚ񤭲äƤƤɤ
ޤ

2.3 㥳ե졼Υԡ
  config Ȥǥ쥯ȥ hcfg80.c Ȥե졼Υ
hcfg80.exe Ȥ hcfg80.c  Borland-C++ 5.02J Development Suite 
ѥ뤷ʪѰդƤޤץꥱ hcfg80.exe 
ѤޤΤǡѥ̤äǥ쥯ȥ˥ԡƤƤ

   HOS-80 Ѥץꥱޤ




-------------------------------------------------------------------------------
                                裳
                      ե졼λȤ
-------------------------------------------------------------------------------

  ξϤǤ HOS-80 Υե졼λȤޤ


3.1 㥳ե졼Ȥϡ
  HOS-80 ǤϥϤᡢޥե٥ȥե饰ʤɤŪ
Τᤳ򵭽Ҥץ񤭥ѥ롢󥯤Ԥʤɬפ
ޤΥץ󵭽ҤΤݤǤ뤿ᡢɬפ
ܤΤߤ񤤤եѰդե졼ȤΥե뤫
ɬפʥޤ

3.2 㥳ե졼εǽ
  ե졼ϼεǽޤ

  ͥ٤λ
  ߥϥɥϿ
  Ͽ
  ޥեϿ
  ٥ȥե饰Ͽ
  ᥤܥåϿ


3.3 㥳ե졼ư
  ե졼ϥ桼Ѱդ "hos.cfg" Ȥեɤ߹
ǲϤ"cfg_c.c""cfg_asm.asz""defid.h"ȤĤΥեϤ
ޤ桼ϳƥץ "defid.h" 򥤥󥯥롼ɤƻȤᥤ
ˤ "cfg_c.c""cfg_asm.asz" 򤽤줾쥳ѥ뤷ƥ󥯤ɬפ
ޤ

СǤϥե̾Ǥ


3.4 㥳ե졼եν
  ե졼ե("hos.cfg")νޤ

եˤϣԤˣ̿ΤߤȤޤޤ̿ϰԤƽ񤤤
ޤɬפޤ
  ѤǤ̿ʲ˵ޤ

  INCLUDE_C     "cfg_c.c" ɤ߹եλ
  USE_TIMER     ִǽѤ뤳Ȥ
  NOUSE_TIMER   ִǽѤʤȤ
  MAX_TSKPRI    祿ͥ٤
  SYSTEM_STACK  ƥѤΥåݥ󥿤λ
  CRE_TSK       Ͽ
  CRE_SEM       ޥեϿ
  CRE_FLG       ٥ȥե饰Ͽ
  CRE_MBX       ᥤܥåϿ
  CRE_MPF       ĹסϿ
  DEF_INT       ߥϥɥϿ


  Ūϲ˽褿 sample Ȥǥ쥯ȥˤޤΤǻȤ
Ǥϸġ̿ñޤ


INCLUDE_C  øեѥ󥯥롼ɥե
  ʸˡ INCLUDE_C("filename.h")

  "cfg_c.c" ǥ󥯥롼ɤեꤷޤ"cfg_c.c" Ǥϥ
ϻδؿʤɤѤޤΤǡإåեΥ
롼ɤɬפǤ̿ˤƻꤷƤ
  ʤ<ITRON.h> ϼưŪɤ߹ޤޤ


USE_TIMER  
  ʸˡ USE_TIMER (ǥե)

  ִǽȤȤޤºݤ˵ǽȤˤŪ
__time_handler ƤӽФ褦ˤɬפޤ
  ִѤΥƥॳƤӽФʤ USE_TIMER ꤷƤ
̵ΤǥǥեȤȤʤäƤޤ


NOUSE_TIMER  ̤
  ʸˡ NOUSE_TIMER

  ִǽȤʤȤޤִѤΥݤʤ
ʤޤ


MAX_TSKPRI  祿ͥٻ
  ʸˡ MAX_TSKPRI(maxtskpri)

  maxtskpri : ͥ

  ͥ٤ꤷޤϰϤΥ顼åϹԤʤäƤʤΤǻꤹ
ݤϼºݤ˻ȤäƤͥ٤ɤǧƤ


SYSTEM_STACK  ƥѥåɥ쥹
  ʸˡ SYSTEM_STACK(stackadr)

  stackadr  : åݥ󥿤Υɥ쥹

  ȥå׻󥿥ǥƥबѤ륹åݥ󥿤ν
ꤷޤǥեȤ 0x0000 Ǥ̾RAMκǸꤷޤ
0xffff ޤǥѤǤʤϤѹƤ


CRE_TSK  
  ʸˡ CRE_TASK(ID_TASK, exinf, func, itskpri, stacksize)

  ID_TASK   : ɣ̾
  exinf     : ĥ
  func      : ϴؿ̾  void func(int stcd)
  itskpri   : ͥٽ 18
  stacksize : å

  ɣĤϼưŪ˿ "defid.h" 

  #define ID_TASK 1

  ȤäǽϤޤιܤ˿ͤꤹľIDֹ
ꤹ뤳Ȥޤ


CRE_SEM  ޥե
  ʸˡ CRE_SEM(ID_SEM, exinf, isemcnt, maxsem)

  ID_SEM    : ޥեɣ̾
  exinf     : ĥ
  isemcnt   : ޥեν
  maxsem    : ޥեκ


CRE_FLG  ٥ȥե饰
  ʸˡ CRE_SEM(ID_FLG, exinf, iflgptn)

  ID_FLG    : ٥ȥե饰ɣ̾
  exinf     : ĥ
  iflgptn   : ٥ȥե饰


CRE_MBX  ᥤܥå
  ʸˡ CRE_MBX(ID_MBX, exinf, bufsize)

  ID_MBX    : ᥤܥåɣ̾
  exinf     : ĥ
  bufcnt    : ХåեΥ


CRE_MPF  Ĺס
  ʸˡ CRE_MPF(ID_MPF, exinf, mpfsz, mpfcnt)

  ID_MBX    : ᥤܥåɣ̾
  exinf     : ĥ
  mpfsz     : ֥åΥ(Byte) ʾǤ뤳
  mpfcnt    : ֥å


DEF_INT  ߥϥɥ
  ʸˡ DEF_INT(intnum, func)

  intnum    : ֹ 0254 (ܿǤ뤳)
  func      : ߥϥɥʣøδؿ

  쥸򡢥åڤؤ void func(void) ƤФ롣
  ʤߤϵĤƤ롣ɬפǤ di()ei() 
뤳ȡ


  ʤ"cfg_c.c" Ÿѥ᡼ΤۤȤɤϿͤȤƤǤϤʤ
ʸȤƤΤޤŸޤΤᥨ顼åǽϤϤۤȤɤ
ޤ󤬡ϤꡢINCLUDE_C ̿ɤ߹إåեΥޥ
Ѥ뤳Ȥޤ




-------------------------------------------------------------------------------
                                 裴
                            ץκˡ
-------------------------------------------------------------------------------

  ξϤǤϼºݤ HOS-80 Ȥäץˡޤ


4.1 㥹ȥåץ롼

  ̤ΣøΥץ main ؿϤޤޤHOS-80 Ǥ
  start_up ȤؿϤޤޤ

  void start_up(void)

  ȤؿɬѰդƤ

  Υȥåץ롼󥿥Ȥư졢ߤϵĤƤ
ޤ̤ϤѿνǥХԤ򥹥Ȥ
ꤷޤڻȤ鷺ߤǽʤɤȤ̤ mian
ؿȤƻȤޤ OS ȤƤΰ̣ۤȤɤޤ
  ʤ󥿥Ǥߥ롼ǤϤޤΤ ret_int ϻȤޤ
Ф˸ƤӽФʤǤ̤ return Ƥˡ꥿
ǥѥåϤޤ


4.2 ִǽ
  ִǽȤˤ __time_handler ȤϥɥŪ˸ƤӽФ
ɬפޤ󥿥Ū˸Ƥ֤󥿡Х륿ޤꤷ
ߥɥ쥹 __time_handler ꤷƤ
  ʤƤӽФȤ˿ʤ֤ꤹ vset_tmi(timint) Ȥޥ
ѰդƤޤǥեȤǣꤵƤޤ vset_tim(5) Ƥ
 5msec ֳ֤ǸƤӽФƤ֤ 1msec ñ̤Ȥʤޤ
  ӶȤǤ2.5msecñ̤ǸƤӽФ vset_tim(2)vset_tim(3) ߤ˸Ƥ
ʤɤȤȤޤä msec ñ̤ǤɬפѤƤ
(Z80 1msec ǤγߤϤ˽ŤǤΤǡˡ


4.3 ᥤ
  ᥤκݤˤϺΤۤ˥ե졼Ϥ cfg_c.c
 cfg_asm.asz Σ򤽤줾쥳ѥ뤹ɬפޤޤ HOS-80 
ȥåץ롼Ȥ startup.sof ѰդƤޤΤǤɬƬ
ƥ󥯤ԤʤäƤ





-------------------------------------------------------------------------------
                                 Ͽ
                             
-------------------------------------------------------------------------------

A.1 
  ѥ֤˴ޤޤƤΥץࡢե롢ɥȤ
 Ryuz ޼εʤݻޤ


A.2 ա
  ΥץλѤˤäʤ»ԤΤǤ
ޤ󡣥ץѤѼԤǤˤƹԤʤäƤ


A.3 Ѿ
  ΥץŪǤмͳѤ뤳ȤޤĿͥ٥
Ǥβ¤⼫ͳ˹ԤʤȤޤɽѹʤ褦ꤤ
ޤ
  ŪѤϤʤȤϻפޤ˾ޤ
ޤǤϢ


A.4 ۡ
  ץѤʪޤƺۤϼͳȤޤԤ̵ǤǤɤ
ɤäƤѤʪۤɽѹ
򤭤ȻĤƤޤ褦ˤꤤޤѹ򤵤ĤƤ
Уϣ̾ѹ⤷ϲùƤƤޤޤ󡣺Ԥ̵Ǥ
ɤɤƤϢĺд򤷤Ǥˡ


A.5 ա
  դ紿ޤǤʤʤǤ礦(^^; ˡԤޤǤϢ
ƤȤä̤ˤʤˤ櫓ǤϤޤ󤬡ȯ
ƤƤޤŪʪⴿޤǤΥäƤ
Ƥ⤤Ǥˡ


A.6 ԤϢ
  ǯߤκԤϢϰʲ̤ǤХݤ䴶ۤʤ
ĺȴ򤷤Ǥ


  e-mail  : QZF06013@niftyserve.or.jp  (ƥȥ᡼Τ)
            ryuz@try-net.or.jp
 HomePage : http://member.nifty.ne.jp/Ryuz/
            http://www.try-net.or.jp/~ryuz/

  Ūˤϥ᡼롢ۡڡȤ Nifty-Serve ˰ܹԤͽǤ
ΤȤ Try-NetᥤˤƤޤ




-------------------------------------------------------------------------------
                                 Ͽ
                                  ռ
-------------------------------------------------------------------------------

  Ǹˤʤޤ TRONץȤȤФ餷Τ߽ФƤ
ޤ¼ϤȤ¿ǿͤλˤ褯
ä ITRON-Club ᥤ󥰥ꥹȤ˸鿽夲ޤ
  ޤΥץγȯˤäƶ彣ؤι˳ȯĶ
Ƥޤͭ񤦤ޤ




-------------------------------------------------------------------------------
                                 Ͽ
                                ʸ
-------------------------------------------------------------------------------

  Υץκˤ껲ͤȤʸʲ˵ޤ
֦ITRON3.0ɸϥɥ֥åפϼ긵֤뤳Ȥ򤪴ᤤޤ
 http://tron.um.u-tokyo.ac.jp/TRON/ITRON/home-j.html ѸǤ
 ɤ褦Ǥ


  ITRON3.0ɸϥɥ֥å  
     ƽ ¼    ѡʥǥ
     ISBN4-89362-154-8  \4,000+

  ITRONITRONɸϥɥ֥å
     ƽ ¼    ѡʥǥ
     ISBN4-89362-079-7  \4,800+

  TRONɸ६ɥ֥å2
     ƽ ¼    ѡʥǥ
     ISBN4-89362-133-5  \3,500+

  TRONWARE Vol.3 ꥢ륿ϣ ITRON
     ѡʥǥ
     ISBN4-89362-071-1  \1,204+

  TRONWARE Vol.5 󥰥åCPUꥢ륿ϣ ITRON
     ѡʥǥ
     ISBN4-89362-076-2  \1,204+
