HI-TECH CpǗ[eBeB[֐ɂ
By Tatsuhiko Syoji

֌Wt@Cꗗ
SBRK    .AS  :ǂsbrk֐yсAsetheaptop,getheaptop֐
              \[XłB
SBRK    .AS  :ǂsbrk֐yсAsetheaptop,getheaptop֐
              IuWFNgłB
MEMUTIL .H   :setheaptop,getheaptop֐̃wb_[t@CłB
MEMUTIL .H   :setheaptop,getheaptop֐̃}jAƃǗ
              ւłB

͉H
  HI-TECH CW̃Ǘ֐łsbrk֐ɎāACӂ̃AhX̃ubN擾ł悤ɂ܂B
  ̊֐́AHI-TECH C̃AhXǗɂėĂȂƖ\̌𐶂ނ̂ŁAHI-TECH C̃ǗɂėŁAp҂̐ӔCŗpĂB

HI-TECH C̃AhXǗ
  HI-TECH Cł́A傫āA5̕@ŃǗĂ܂B
  1߂́Adata psectɂ̂ŁAl̂O[oϐAl̂֐staticw肳ꂽϐ̃O[vɑAubN܂B̃O[v̕ϐ̃AhX́AJ-PIvVꍇ́A(-Pdata=1000H)-PIvVŎw肵ubN̐擪AhXɁAAhXw肪ꍇAtext psect̒̃AhXɔzu܂B
  2߂́Abss psectɂ̂ŁAl̖O[oϐAl̖֐staticw肳ꂽϐ̃O[vɑAubN܂B̃O[v̕ϐ̃AhX́AJ-PIvVꍇ́A(-Pbss=1000H)-PIvVŎw肵ubN̐擪AhXɁAAhXw肪ꍇAdata psect̒̃AhXɔzu܂B
  3߂̓X^bN𗘗p̂ŁAautoϐ̃O[vɑ܂B֐Ă΂ꂽۂɁA֐ncsv֐ɂāAX^bNϐ̂߂̗̈悪mۂA֐cret֐ɂĊJ܂B
  4߂́AAZuorg߂ŃAhXw肵̈łBAhX́Aorg߂̎wƁAȍ~̃vOR[h̖ߒAf[^Ō肵܂B
  ŌɂȂ̂Aq[v擾郁ŁAsbrk,malloc,calloc֐ɂĎ擾郁ubN̕@ɂĊǗ܂Bmalloc,calloc֐sƁAq[v̐擪X^bNɌāA荂ʃAhX̃擾悤ɂȂ܂Bq[v̐擪́AVXe`V{__HbssŎbss psect̏Iȍ~ɂȂ܂B
  }̂̐}łB

low
-Pdata=xxxx -> ------------
               |data psect|
               |          |
-Pbss=xxxx  -> ------------
               |bss psect |
               |          |
__Hbss      -> ------------
               |q[v    |
               |    |     |
               |    |/    |
               |          |
               |          |
               |   /|     |
               |    |     |
-Pbss=xxxx  -> ------------
               |X^bN  |
               |(autoϐ)|
-Pbss=xxxx  -> ------------
               |VXe  |
               |[NȂ|
               ------------
high

setheaptop֐̓
  setheaptop֐́Aq[v̐擪AhXύXACӂ̃AhX烁擾悤ɓ铭Ă܂B(malloc,calloc֐̊Ǘ̈悪̂ŁAɃAhXwłł͂܂񂪁B)
  ̐}ŗ܂B
low
-Pdata=xxxx  -> ------------
                |data psect|
                |          |
-Pbss=xxxx   -> ------------
                |bss psect |
                |          |
__Hbss       -> ------------
                |          |
                |          |
setheaptop    ------------
w肵AhX|          |
                |q[v    |
                |    |     |
                |    |/    |
                |          |
                |          |
                |   /|     |
                |    |     |
-Pbss=xxxx   -> ------------
                |X^bN  |
                |(autoϐ)|
-Pbss=xxxx   -> ------------
                |VXe  |
                |[NȂ|
                ------------
high

  ɂACӂ̃AhX̔Cӂ̑傫̃ubN擾āAp邱Ƃł悤ɂȂ܂B
  ̊֐KvȖƂāAMSXł̃vO~OɂāÃAhXɃf[^uKvꍇ܂BƂ΁A荞݂QƂf[^́Ay[W1(4000H)ȍ~ɑ݂Kv܂Bdata psectbss psectg΁ÃAhXւ̃f[^͈ʒuł܂Ast@Cɂ̗̈̕悪܂܂̂ŁAt@CTCY̖ʂ傫Ȃ܂BautoϐgƁAX^bN̂ŁAX^bNy[W3ɂKvꍇȂǂɕss܂B
  ŁÅ֐gāACӂ̈ʒũubN擾悤ɂ邱ƂŁA̕ss邱ƂłƂłB

  ȂAȊ֐ʂȂŁA󂢂ĂƉ肵āAڃAhXw肷Ηǂ̂ł?Ǝv邩܂B̏ꍇÃubNꍇA[U[AhXdȂ悤ɌvZāAtĂKvAX^bNƗ̈悪dȂ鋰ꂪƖʓ|ŁAXN܂B̊֐gƂŁAX^bNƂ̃̈̏d`FbNAɊt郁ubN̐擪AhX̌vZIɍŝŁA[U[́AJȂq[ṽubNƋɁAAhXw̎RxシƂ̂A{pbP[W̔łB

g
  HI-TECH CCXg[Awb_t@ĈꏊMEMUTIL.HRs[܂B
  ɁAlibr.com(HI-TECH Ct),libc.lib(HI-TECH Ct̂̂͑t@C),sbrk.obj({pbP[Ŵ)pӂāA
libr r libc.lib sbrk.obj
  s邱ƂŁA{pbP[W̃CXg[I܂B
  ŁAmemutil.hCN[hACXg[Ilibc.libN邱ƂɂA{pbP[W̊֐𗘗p鎖ł܂B

֐̎g
void setheaptop(unsigned int addr)
  q[v̐擪AhXaddrŎw肵AhXɈړ܂Bmalloc,calloc֐pO̗pʓIłB
unaigned int getheaptop(void)
  ݖgp̃q[v̐擪AhXl܂Bmalloc,calloc,setheaptop֐xgȂԂł̊֐Ăяo0Ԃ܂B

쌠
@{CũCZXHI-TECH C for CP/M Version 3.09̃\[Xt@C
ςĂ邽HI-TECH C for CP/M Version 3.09̃CZXɏ]܂B

IWiZ80READ.MEp
The HI-TECH Z80 CP/M C compiler V3.09 is provided free of charge for any
use, private or commercial, strictly as-is. No warranty or product
support is offered or implied.

You may use this software for whatever you like, providing you acknowledge
that the copyright to this software remains with HI-TECH Software.

@ǉ֐ɂĂ͍҂łTatsu쌠LĂ܂B
