HI-TECH CpMSX-DOS2fBXNo͊֐Cu
By Tatsuhiko Syoji 1996,1997

[͉H]
  HI-TECH C͌́ACP/MpCRpCȂ̂ŁAfBXNo͂́A
CP/M̋@\gčs܂BAł́At@CTCY128oCgPʂ
ȂĂ܂̂ŁAɁAoCit@CƂɎxႪ܂B
  XɁAMSX-DOS2̊KwfBNgɂΉł܂B
  XgĂOSMSX-DOS2Ȃ̂ŁAMSX-DOS2̋@\gāA
fBXNo͂sȂƂŁA̖邱Ƃł܂B
  ŁA{Cuł́Aᐅo͊֐HI-TECH CɌXtĂ
̂AMSX-DOS2̋@\ĝɌāA1oCgPʂ
fBXNANZX悤ɂ܂BXɁAKwfBNgɂ
Ή܂B
  ܂AɔāAo͂̃eLXg[hEOFssȂ悤A
ꕔ̍o͊֐ɂĂ܂B

[t@CXg]
*       .OBJ :MSX-DOSpɉǂ֐̔[߂ꂽIuWFNgt@CłB
MSXIO   .H   :ᐅo͊֐Ȃǂ`wb_t@CłB
DOS2    .H   :MSX-DOS2ɈˑMSX-DOSt@NVR[s֐
              wb_t@CłB
MDOS2   .L   :{Cũ\[Xt@CłBٍELIBRp̃\[Xt@C
              ȂĂ܂B
AREL    .BAT :MDOS2.LOBJt@C𐶐邽߂ELIBRpob`t@CłB
CREL    .BAT :
REPLIB  .BAT :ELIBRɂAꂽ.OBJt@CLIBC.LIB̒.OBJ
              t@Cƍւ܂B
MDOS2LIB.TXT :̃t@CłB
CRT2    .AS  :NDOS̃o[W`FbNsȂX^[gAbvW[
              \[Xt@CłB
CRT2    .O   :NDOS̃o[W`FbNsȂX^[gAbvW[
GETARGS2.C   :̃ChJ[hWJW[̃\[Xt@CłB
GETARGS2.O   :̃ChJ[hWJW[łB
DOS     .H   :MSX-DOSt@NVR[s֐̃wb_t@CłB
DOS2    .L   :MSX-DOSt@NVR[s֐̃\[Xt@CłB
              ٍELIBRp̃\[Xt@CɂȂĂ܂B

[CXg[@+vȎgݕ]
  ܂AHI-TECH CLIBC.LIB̃IWĩobNAbv܂B
  ɁAHI-TECH CLIBR.COMLIBC.LIBA{pbP[W*.OBJREPLIB.BAT
fBXNɓAREPLIB.BATs܂B
  ́AvOgލۂɁA\[Xt@Cۂ́Aᐅo͊֐
gꍇ́A{ZbgMSXIO.HCN[hAo͊֐gꍇ́A
]ʂ̃wb_t@CCN[h܂B
āAN̎ɁAXVꂽLIBC.LIBN邱ƂŁA
FHI-TECH Cőg񂾃vOŁAMSX-DOS2̋@\𗘗p֐
pł܂B

[@\g]
  {ZbgCXg[ƁAVɁÅ֐pł܂B

#include	<msxio.h>
unsigned char msx_bdos(int no,unsigned short de,unsigned short hl);
unsigned short msx_bdosh(int no,unsigned short de,unsigned short hl);
  DEWX^Ɉde̓eAHLWX^Ɉhl̓enoԖڂ
BDOS@\Ăяo܂B
  msx_bdosł́ABDOS߂ĂۂAWX^̓eAmsx_bdoshł́A
BDOS߂ĂۂHLWX^̓e֐̒lƂĕԂ܂B
  MSX-C V1.1bdos,bdosh֐̈ڐAłłADOS2BWX^VXeR[
p肷̂ŁA(ŏ̈̏8oCgBWX^ɓĂ邯)
DOS2ŗLpǂ͋^łB

[MSX-DOSt@NVR[s֐]
  ̊֐gꍇ́AgpvOŁA#define DOS2ƂA
DOS.HCN[hALIBC.LIB̑OLIBD2.LIBN邱ƂŁAȉ
֐pł܂B

unsigned _dos_getver(void);
  MSX-DOS̃o[WԍʃoCgɎo[WԍAAʃoCg2
o[WԍBCDlŕԂ܂B܂AMSX-DOS1ł́A0100HAMSX-DOSłȂ
ꍇ0000HԂ܂B

unsigned _dos_getftime(int fd,unsigned *date,unsigned *time);
  t@CnhfdŎt@C̓t*dateɁAXV*time
Zbg܂B

unsigned _dos_setftime(int fd,unsigned date,unsigned time);
  t@CnhfdŎt@C̓tdateɁAXVtime̒l
ύX܂B

  ȉ̊֐́AMSX-DOS2ŗL̋@\gĂ̂ŁAMSX-DOS2p
ȂĂ܂B

int findfirst(unsigned char *path,unsigned attr,MSXFIB *fib);
int findnext(MSXFIB *fib);
  findfirst()MSX-DOS2VXeR[0x40ɂApXpath
t@CattrɈvŏ̃t@CT܂B
ŏɈvt@C̏*fibɃZbg܂B
  findnext()MSX-DOS2VXeR[0x41ɂAfindfirst()
w肵t@Č𑱍s܂B
Ɉvt@C̏*fibɃZbg܂B
  MSXFIB^<dos2.h>Ŏ̂悤ɒ`Ă܂B

typedef struct {
	unsigned char ff; /* 0xff(FIB̏) */
	unsigned char name[13]; /* t@C(ASCIIZ) */
	unsigned char attr; /* t@C */
	unsigned int time; /* ŏIXV */
	unsigned int date; /* ŏIXVt */
	unsigned int cl; /* JnNX^ԍ */
	long size; /* t@CTCY */
	unsigned char drive; /* _hCuԍ */
	unsigned char internal[38]; /* (ύXs) */
} MSXFIB;

unsigned setfileattr(char *path, unsigned attr);
  MSX-DOS2VXeR[0x50ɂApathŎt@C̑
attrɕύX܂B
  0ԂAserrnoZbgāAMSX-DOS2̃G[R[
hԂ܂B

[MSX-DOS2ɂύX_]
  ܂Achmod,exit,_exit֐ύXĂ܂B
#include	<msxio.h>
int chmod(char *path,int mode);
  MSX-DOS2VXeR[0x50ɂApathŎt@C̃[h
modeɕύX܂B
  modeɂ́Amsxio.hɒ`ꂽȉ̎w肪ł܂B
  S_IWRITE:݉\
  S_IREAD :ǂ݂\(read only)
  S_IREAD | S_IWRITE :ǂݏ\
  AMSX-DOS2ł̓t@Cǂݏo֎~ɂ͂ł܂̂ŁAS_IWRITE
S_IREAD | S_IWRITEƂ͓ɂȂ܂B

  0ԂAserrnoZbgāA0ȊO̒lԂ܂B
  S_IREADyсAS_IWRITE̒`̓IWiSTAT.H̒`ƓłB

  exit,_exit֐MSX-DOS2VXeR[62HgăG[ԍ𔺂
IsȂ܂B80HɂČĂяoƂŁAob`t@C~܂܂B
  ̉ǂɂAmain֐̈MSX-DOS2VXeR[62Ḧ
Ȃ܂Bmain֐͕KlԂ悤ɂĂBmain֐͐I
0AُI͂ȊO̒lԂ悤ɂĂB

  ܂A/ᐅo͊֐sƂɃG[̎ނerrno
Zbg܂BerrnoMSX-DOS2̃VXeR[66HɓnƂŃG[
ނł܂B

[CRT2.Oɂ]
  CRT2.OHI-TECH CWCRT.ỎłŁANDOS̃o[W
MSX-DOS2VXeR[6FHgĒׁAMSX-DOS̃o[W2菬
ꍇA
Sorry,this program needs MSX-DOS version 2.xx or later.
  ƕ\邾ŃvOI܂BMSX-DOS2pvO
gpĂB

[GETARGS2ɂ]
  GETARGS2HI-TECH Cẗ̃ChJ[hWJ+MSX-DOS1ł
_CNgG~[VW[AGETARGS̉łłBǓ_
ẮAMSX-DOS2̊KwfBNgΉƃt@C̕R[h
SrbgLɂAMSX-DOS2͍ŏI/O_CNV@\
Ă̂ŁA_CNgG~[V@\ƂłB
  XVLIBC.LIB̑OɃNĎg܂B
)
LINK -Z -Ptext=0,data,bss -C100H -OSAMPLE.COM CRT.O SAMPLE.O GETARGS2.O LIBC.LIB
[]
  {Cuł́Aexecn̊֐T|[gĂ܂BҎg@
mȂłBm(..)m܂B

[݊]
  MSX-DOS1pCugƂƃ\[XxŌ݊ɂ
̎ɋCtKv܂B

1.DOS2.HŐ錾Ă֐A萔gȂB
  MSX-DOS2ɓLȊ֐A萔̒`DOS2.Hɂ܂Ƃ߂Ă܂B
ׁ̈ADOS2.HŐ錾Ă֐A萔gꍇADOS1pCu
NƂȂǂŃG[o܂B

2.O[oϐerrnoo͌ɎQƂȂB
  MSX-DOS1pCuCP/MpCuł͓o͂sȂۂɁA
errnoɒlZbgĂ܂B

3.MSX-DOSt@NVR[s֐𗘗pۂ́ADOS.HCN[hB
  MSX-DOS1MSX-DOS2ł́At@CANZX@قȂĂ̂ŁA
@\֐łA֐قȂĂ܂BŁADOS.Hł́ADOS2
`̗LāA@\MSX-DOSt@NVR[s֐ɑ΂A
Ot悤ɂĂ܂BɂÅ֐ŁAeo[W
MSX-DOS̔\͂𐶂֐𗘗p邱Ƃł܂B

  XɁAᐅo͊֐gƂ̃wb_[t@CɋCt
CP/MpCuƌ݊鎖łƎv܂B

  ́A݊ɂĂ킴킴qׂ邩ƌƁA͈ꌾA
  uKMSX-DOS2KvȖł͂Ȃ̂ɁADOS2pɂvO
ȂHv
  ƂłB
  {CúAȂׂMSX-DOS1pMSX-DOS2pCu̎dl
ɂāA\[Xt@C烊N郉Cuς邱Ƃ
MSX-DOS1pMSX-DOS2pvO@\ADOS̔\͂
fBXNo͂sȂłvO̎}
삵܂B(chmod֐Ȃ񂩓T^IȗłˁB)
  ̊ŁAMSX-DOS1/MSX-DOS2ŎgLpȃvO
҂܂B
  MSX-DOS2MSX-DOS2}Vɓ͖̂ʓ|ł...B

[쌠]
{CũCZXHI-TECH C for CP/M Version 3.09̃wb_t@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

