c[}jA

쐬F1998.4.14
쐬ҁFZKEG^[vC[X

ODKvȐݒ
  ɎDOS̊ϐ̐ݒ肪KvłB
    PATH, SHC_LIB, SHC_TMP, SHC_INC, HLNK_LIBRARY1
  ̊ϐ̐ݒpob`t@Cpӂ܂B
      'KATANA\BIN\SET_KT.BAT'
  ̃ob`t@Cs邩Al̏ AUTOEXEC.BAT ōs悤
  ĉB
  gpF
	  KATANAAD:\SEGA_DEVtH_ɃRs[ꍇ̗F
	       SET_KT D:\SEGA_DEV\KATANA[ENTER]
	  L̗lɁASET_KTob`sĉB

  ӓ_F
    ϐ̋LeʂȂƂG[ꍇ́ADOSvvg
    ̃vpeBJAݒ̒̊ϐ̏TCYݒ傫
    BDOSvvgċNĉB

  ȂA{Jc[ɕtMAKEFILÉA}CN\tgЂNAMKE.EXE płB
  NMAKE.EXE ́AVC++JLbgɊ܂܂Ă̂gpB
  WCXg[Ԃł́A"C:\Program Files\DevStudio\VC\bin\NMAKE.EXE"
  ɂ܂B


PDSHCK{IvV(ύX֎~)
  -cpu=sh4
  -division=cpu   *1
  -endian=little
  -double=float
  -pic=0
  -macsave=0      *2
  -string=const
  -comment=nonest
  -DEF=__SET4__   * SET4 ̂
  -extra=a=400    *3

*1 SHC ̃}jAɂƁAcpuw肪 SH2 ȊO̎ɁA
   -division ɑ΂  peripheral   nomask w肵ꍇA
   słȂƋLqĂ܂B
   āA{vWFNgł́A
    -division=cpu
   ƂKv܂B
  ( -division wȂ̃ftHg cpułAmɂ
   ǂƔf܂B)
*2  ֐ĂяoAĂяoꂽ֐ł mach,maclWX^̕ۑ
    ۏ؂܂B
    AZub̊֐Ăяoۂɂ́AĂяoŕۑKv
    ܂B
    ZK񋟂郉CúAS MACSAVE=0̃IvVō쐬Ă܂
    ̂ŁAAvP[VłKw肵ĉB
    (ȗꍇɁAMACSAVE=1 ftHgׁ̈Aۏ؂ł܂)
*3  b΍IvVׁ̈AŏIIɂ͕KvȂ܂Aʂ͂
    IvVOȂŉB


QDASMSHK{IvV(ύX֎~)
  -endian=little
  -cpu=sh4



RDst@C쐬̃fobȌo͕@
	CodeScapefobKɂă\[XR[hfobOsׂɂ́Ast@C
	fobOtŐKvL܂B
	ł͂̕@ɂĐ܂B
3-1.Ŝ̗
	b\[X(ACCAZugṕAq̐QƂ̎)
		 SHC.EXE
	fobOt SYSROFt@C    AZu\[X
		 DWFCNV.EXE                      ASMSH.EXE
	fobO񖳂 SYSROFt@CADWFt@C
		 LNK.EXE
	fobOt ELFt@C(ELF/DWARF)



	SHC ӓ_
    ESH4p WCu(sh4nlfzz.lib)NĉB
      ϐSET HLNK_LIBRARY1ɐݒ肵Ă΁AJftHg
      ̃Cut@C悤ɂȂ܂B
      ()
        SET HLNK_LIBRARY1=C:\KATANA\SHC\LIB\SH4NLFZZ.LIB
      ȂAq SET_KT.BAT ł́A̐ݒs܂B
    E\[XŃCCAZugpꍇAASMSHpAZu\[X
      o͂o܂B(SHC dl)
       CCAZu\[X SHCŃRpCۂ DEBUGIvV
         tƁASHCo͂AZu\[X C\[XƂ̑Ή
         ߍ܂܂B
         Xɂ̃AZu\[ ASMSHɂ DEBUG=DWARFIvVt
         AZuƁAfobKɂ C\[X̎Qƒx͉\ɂȂ܂B
	LNK Ver.6.0('98.03.24) ӓ_
    EfobOtELFst@Coׂ͂ɂ́AIuWFNg
      DWFt@C͂Kv܂B
      (̎AfobOtSYSROFt@C͓͂ł܂B)
      SHC̏o̓IuWFNgF
          SHCɁA-DEBUG ƂIvVw肵AfobOt
          SYSROFIuWFNg𐶐܂B
          DWFCNV.EXE gpAfobOtSYSROFA
          fobO񖳂SYSROFDWFt@C𐶐܂B
      ASMSH̏o̓IuWFNgF
          ASMSHɁA-DEBUG=DWARF ƂIvVw肷鎖ŁA
          fobO񖳂SYSROFDWFt@C𐶐܂B

3-2.ELF`̎sIuWFNg(fobO񖳂)̏o͕@
    Jɑ΂A-ELF IvVw肵A-DEBUGIvVOĉB

3-3.ELF-DWF`̎sIuWFNg(fobOt)̏o͕@
    ERpCɁA-DEBUG IvVw肵A
      'fobOtP[^uSYSROFIuWFNg(OBJ)'
      o͂ĉB
      ̌ADWFCNV.EXE gpĉB
        ()  DWFCNV -SYSROF=<o̓t@C> <̓t@C>[ENTER]
         'fobO񖳂SYSROFIuWFNg'ƁA
           'DWF`fobO(DWF)'
          o͂܂B
    EAZuɁA-DEBUG=D IvVw肵ĉB
         'fobO񖳂SYSROFIuWFNg'ƁA
           'DWF`fobO(DWF)'
          o͂܂B
    EJɁA-ELF -DEBUG IvVw肵ĉB
      ̎ADWFt@C𖾎IɎw肷Kv͂܂B
      ()  LNK -DEBUG -ELF -SUB=OBJLIST.SUB[ENTER]

3-4.̗  ( main.c , asm.src ɁAst@C(elf)쐬ꍇj
	SHC -DEBUG -SUB=SHC.SUB  main.c     (*)SHC.SUB ɂ͕K{IvV`
	ASMSH asm.src -DEBUG=D -SUB=ASMSH.SUB (*)ASMSH.SUB ɂ͕K{IvV`
	DWFCNV -SYSROF=main.ob main.obj
	LNK -sub=lnk.sub

<lnk.sub>̓e()
elf
debug     ;\[XR[hfobOȂꍇAKvB(NȂ܂)
input start.obj
input $(OBJ_DIR)\main.ob
input $(OBJ_DIR)\asm.obj
library $(SHINOBI_LIB_DIR)\ninja.lib
library $(SHINOBI_LIB_DIR)\shinobi.lib
;library $(SHC_DIR)\shcenlf.lib  ;ϐ HLNK_LIBRARY1 Ŏw肷@𐄏
output foo.elf
print  foo.map   ;gq.map ́Aȗ\łB
start P,C,D,B(8c010000)
exit



ȏB


⑫@Q&A
0.n߂ĎgpASHC܂삵ȂցA
  SHC ɋNȂꍇ̌́AKvȊϐݒ肳
    ȂꍇAقƂǂłB
    KATANA\BIN tH_ɂ SET_KT.BAT gpAϐ̐ݒ
    sĉB
    ϐ̋LeʂȂG[oꍇ́ADOSvvg
    vpeBJAݒ̒̊ϐ̏TCY傫
    DOSvvgċNĉB

1.CodeScapeŁAelfǂݍ񂾍ہAIPCsJnAhXɂɂ́H
  JENTRYIvVgp܂B
    (ftHgł́AsJnAhX́uPZNV̐擪vɐݒ肳܂)
    ݂SHINOBI̕tTv̏ꍇA
    	ENTRY _START_SYS
    Ǝw肷Kv܂B
    ̐ݒł́AO[oV{́u_START_SYSvsJnAhX
    Ȃ܂B

2.NɁALCTt@CȂƂG[錴́H
  ́ACuA(LBR)ADWFɑΉpłB
    DWFtŃCut@C(*.LIB)쐬ہAgq.LCT
    t@CɐĂ͂łB
    CuɃfobOꍇ́Aɏo͂A
    gq.LCTƂt@CACut@CƓtH_ɃRs[
    Kv܂B
    CuÁAIuWFNgt@CƓtH_.DWFt@C
    ݂ƁACut@CfobOtō쐬܂B
    CuɃfobOꍇɂ́ACuAɑ΂
    DWFt@C͂ȂŉB
    ȂAfobOt̃Cu fobO񖳂̃CuƂ
    ɃN\łB
    Ȃ݂ SHCt̕WCu̓fobOĂȂׁA
    LCTt@C͕tĂ܂B



ȏB

