.w f as ai ip2
.[ac
@unftdEp`@
.]

@unftd͂bɂ悭\Ă܂B̂߂ɁAb
̂ŎgƍlĂl邱ƂƎv܂BAb
Ƃ͈قȂ̂łA܂b̂ŎgpĂƍׂ
ƂŊႢĎvʃ~XNȂƂ܂B

@܂A֐▽߂̎ނقǑ͂Ȃ̂ła`rhbȂǂڍs
ĂāusȂꍇAunftdł͂ǂ̂悤ɂ悢̂Hv
uunftdł͂ƂƂ͉\Ȃ̂Hvƌ˘fĂl
Ƃł傤B

@{t@ĆÂ悤ȃguE^z肵ȂΏɂďq
̂łBz͂قǑȂ̂ŁÃt@Cǂ̒xɗ
̂͐r^łAłguE^̉ɂȂ΍KłB

~<-

pF֐ɂĈ̈n܂ȂBႦ

.[w- f- i8
char x[10];
func char foo(pnt p):
{
  p[1] = 123;
}
{
  foo( &x );
  printf( "%d" , x[1] );
}
.]

ƂĂ"123"ƕ\ȂB

`F֐ɓn͔̂zł͂Ȃāuzւ̃|C^vłB̏
͕ϐxchar^̔zȂ̂

.[w- f- i8
char x[10];
func char foo(pnt p):
{
  @(p)[1] = 123;
}
{
  foo( &x );
  printf( "%d" , x[1] );
}
.]

ƂāA֐ł́u|C^QƁv܂B

~<-

pF֐ɂĈ̈n܂ȂBႦ

.[w- f- i8
int x[10];
func char foo(pnt p):
{
  *(p + 3) = -123;
}
{
  foo( &x );
  printf( "%d" , x[3] );
}
.]

ƂĂ"-123"ƕ\ȂB

`Fbł̓|C^Ɣ|C^^̉ZF߂Ă܂Aun
ftdł͂̂悤ȉZF߂Ă܂B|C^̎̂̓AhXf[
^łA|C^ɑ΂鉉Zׂ͂ĎAhXɑ΂鉉ZƂȂ
B̗łp3𑫂ƂɂĔẑSԖڂ̗vfɑ΂ANZX
Ӑ}Ă킯łAۂ͒Pɔz̐擪SoCgڂ̃f[^
ANZXĂɉ߂܂Bint^͂P̗vfɂQoCg̋L
蓖Ă܂AӐ}Ƃ̌ʂ𓾂邽߂ɂ͎̂悤ɂ
ׂł傤B

.[w- f- i8
char x[10];
func char foo(pnt p):
{
  *(p)[3] = -123;
}
{
  foo( &x );
  printf( "%d" , x[3] );
}
.]

~<-

pFscanf֌W̊֐܂삵ȂBႦ

.[w- f- i8
char c;
{
  scanf( "%d" , &c );
  printf( "%d" , c);
}
.]

ƂĂ͂Ƃ̐l\Ȃ΂肩A\ƂB

`Funftdscanf֌W̊֐͈Ƃāupnt^̋L蓖āv
v܂BR͕W֐ɋLqƂłBłA̗
̂悤char^̕ϐcscanf̈ƂėpĂAunftd͂
pnt^̃f[^ƂĎ舵܂BāAꍇɂĂscanfϐc
L蓖ĂłPoCgzăR[hEGANH邱ƂA
̂悤ȏꍇ̓IuWFNg̖\ɂȂ܂BƂAscanf֘A
̊֐̈ɂ͏\ӂ邱ƂłB̗

.[w- f- i8
pnt dummy
char c;
{
  scanf( "%d" , &dummy );
  c = dummy;
  printf( "%d" , c);
}
.]

ƂāA_~[pnt^ϐdummy}邱Ƃɂď]铮s
Ƃł悤ɂȂ܂B

~<-

pFz̏܂łȂBႦ΁A

.[w- f- i8
	char buffer[256];
	{
		strcpy( buffer , "Hello to WORLD" );
		puts( buffer );
	}
.]

ƂĂA"Hello to WORLD"\ȂB

`FbɂẮAzϐ̖͂Ô݂Lqꍇɂ͂̔z
ϐ̐擪AhX߂܂Aunftdł́hhZqp
ȂAIɃAhX܂ƂƂ͂܂Bunftd
āAL̗

.[w- f- i8
	char buffer[256];
	{
		strcpy( buffer[0] , "Hello to WORLD" );
		puts( buffer[0] );
	}
.]

ƂĂ邱ƂƓłAbuffer[0]̒lsȂ̂ŔɊ댯łB
A]镶\̂ł

.[w- f- i8
	char buffer[256];
	{
		strcpy( &buffer , "Hello to WORLD" );
		puts( &buffer@);
	}
.]

ƂȂĂ͂Ȃ܂B

~<-

pF_ZɂāApnt ^ƕ_^̊ԂŐl̕ϊs
Ȃɂ͂ǂ悢̂H

`Funftdł͂̂悤ȕϊ֐͗pӂĂ܂B]ă[U[
eł쐬Kv܂Bɂ̈܂BA
KꂪőPƂ킯ł͂܂B

.[w- f- i8
func pnt ptof ( pnt float , p ):
char buffer[16];
{
  sprintf( &buffer , "%u" , p );
  atof( float , &buffer );
  return float;
}
.]

@\Fp𕂓_^l֕ϊfloat ŎAhXn܂郁
Ɋi[܂B߂lfloat łB

.[w- f- i8
func pnt ftop ( pnt float ):
char buffer[32];
{
  ftoa( &buffer , float );
  return atod( &buffer );
}
.]

@\Ffloat ŎAhXn܂郁e𕂓_^l
ƌ􂵂āApnt ^֕ϊ܂B߂l͕ϊʂłB

~<-

pFBASICłLEFT$RIGHT$Ȃǂɑ镶񏈗́Aǂ悢̂H

`Funftdł͂̂悤ȏsȂ֐͗pӂĂ܂B]
ă[U[eł쐬Kv܂Bɂ̈܂B
AKꂪőPƂ킯ł͂܂B

.[w- f- i8
func pnt left(pnt dest,source,length):
{
	if ( strlen( source ) <= length ) {
		movez( dest , source , strlen ( source ) );
	} else {
		movez( dest , source , length );
	};
	return dest;
}
.]

@\FsourceŎAhXn܂郁e𕶎ƌȂ
iƂjA̍lengthdestŎAhX
n܂郁Ɋi[܂BA̒length̕傫ꍇ
̂܂܃Rs[܂B߂ldestłB

.[w- f- i8
func pnt right(pnt dest,source,length):
{
	if ( strlen ( source ) <= length ) {
		movez( dest , source , strlen ( source ) );
	} else { 
		movez( dest , source + strlen(source) - length , length );
	};
	return dest;
}
.]

@\FsourceŎAhXn܂郁e𕶎ƌȂ
iƂjẢElengthdestŎAhX
n܂郁Ɋi[܂BA̒length̕傫ꍇ
̂܂܃Rs[܂B߂ldestłB

.[w- f- i8
func pnt mid(pnt dest,source,pos,length):
{
	return left( dest , source + pos , length );
}
.]

@\FsourceŎAhXn܂郁e𕶎ƌȂ
iƂjA(pos+1)ڂlengthdestŎA
hXn܂郁Ɋi[܂BA(pos+1)ڂ̎c
̒length̕傫ꍇ̓(pos+1)ڂ̎c肪
܂܃Rs[܂B߂ldestłB

.[w- f- i8
func int instr(pnt source,keyword):
char buffer[256];
int i,j,k;
{
	k = strlen ( keyword );
	i = strlen ( source ) - k;
	j = 0;
	while ( j <= i ) {
		if ( strcmp ( mid ( &buffer , source , j , k ) , keyword ) != 0 ) {
			break;
		};
		j += 1;
	};
	if ( ( j < 0 ) | ( j > i ) ) {
		j = -1;
	};
	return j;
}
.]

@\FsourceŎAhXn܂郁e𕶎ƌȂ
iƂjA̍猟n߂āAkeywordŎ
AhXn܂郁e𕶎ƌȂ́iƂj
Ƃď߂Ĕꏊ߂lƂ܂BSvȂ
́|PԂ܂B

~<-

pF̃\[Xt@CCN[hꍇ͂ǂ悢̂H

`Funftdɂ́ht@C̃CN[hhƂ@\͂܂B
t@C̃CN[hsȂꍇ

EeLXgGfB^pĒڃJbgy[XgsȂ
EvvZbT쐬āAɃ\[Xt@C܂Ăo
t@Cunftdɍp

Ƃ@l܂B

~<-

pF\ȂǏő傫ȃf[^ARpC"Memory
exhausted"łĂ܂c

`Funftd̃IuWFNgGA͑債čLȂ̂ő傫ȃf[^
ɂƂ͓ł͂܂Bɑϐpđ傫ȃf[^
錾ƃRpCɃG[ɂȂ肪łB̂悤ȏꍇ͏Xʓ|
ɂ͂Ȃ܂

.[w- f-
@@pnt data={$a0000};
@@{
@@@@@data = 0;
@@@@c
.]

Ƃ

.[w- f-
@@const scrn $a0000;
    {
        *(scrn) = 239;
        *(scrn)[1] = 31;
        s_clear(scrn);
        c
.]

Ƃ悤ɂpnt ^f[^萔pAunftd͈͈̎ȊO
EP[VɃf[^zuق悢ł傤BÂ
Ȏgꍇɂ͂ꑊ̃KvłƂƂ͌
܂BႦ΁AL̏ꍇA$a0000f[^GAƂĎgp
Ă̂ŁA}VGAƂĊmۂĂȂƖ\ꍇ
܂B܂A$b9800̓^CE[`݂Ă̂ŁA
Əd悤ȎgpsȂƖ\ꍇ܂B

~<-

pFċAĂяosȂƁA߂rŖ\Ă܂Ƃ
邪c

`Funftdł͊evZXɂāAVXeEX^bN1024bytes
pӂĂ܂BA̎gp͈͂ɂĂ̓[U[EX^b
NĎĂ炸ÅĎ

Esbrk
E֐Ăяo

sȂĂ܂Bă[U[EX^bNg؂OɃVXeE
X^bNg؂Ă܂悤ȏꍇAĎOŃX^bN啝Ɏgp
悤ȂƂƃX^bNŏՓ˂Nčň̏ꍇ͖\邱Ƃ
܂B[U[EX^bN̂悻̃TCYfree֐pĒׂ
Ƃł̂ŁAɓxɐ[ċAsȂꍇȂǂ͂̒lQlɂȂ
X^bNEI[o[ɂȂȂ悤ɋCtKv܂B

~<-

pFytɂ́H

`Funftdŉoɂ͂Q̕@l܂BPbeep֐
pēuU[特oƂ̂łBbeep֐ł

@@beep(tone,length)

ŁAf[Hz] ̉s[sec]ԏo͂邱Ƃł܂BAf,s 
tone,length ̊Ԃɂ

@@@f * ( 60 + 6 * tone ) = clock
@@@s * f = length  @@@@@@@@@@@clock ͖{̂̃NbNg[Hz]

Ƃ֌W藧܂BAQlɂĒlvZAy
tƂƂ͂܂肨E߂ł܂BduU[̒PȉḰA
fB[hb炷dqIS[ɕnȊ𒮂҂
^邩łBbeep֐͂܂beeppɃCvĝłA
yt邽߂̂̂ł͂܂B

@P̕@miditx֐pāAOɐڑMIDIt
Ƃ̂łBMIDIf[^̃tH[}bg͎ŝ̃f[^ubNȂǂQl
ɂĂB

~<-

pFunftd́Aǂ̒x傫ȃvO܂ŋLqł̂H

`Funftd̃IuWFNgEGA8Kbytes܂BR
pC͂ɑϐvOER[hAX^bNGA
܂BIuWFNgt@Cɏo͂ꍇłAhehIvV
w肵ꍇẮARpCׂ͂Ă̍ƂIEōs
̂ŗpłL͕ς܂BX^bNGÁAɑ傫ȋǏ
gpA[ċAsȂȂΖ͂ȂƎv܂A
ϐƂėႦ΃XN[\̂̂悤ȑ傫ȋL蓖Ămۂ
肷ƁAIuWFNgGAȂIɎgp邱ƂɂȂ܂B
āAeʂ̃f[^ꍇ̓RpC͈̎͊ŐL
ĂɁAuƗǂł傤Bđ傫ȃf[^ĂȂ
ւ炸ARpCMemory exhausted̃G[ꍇ́Av
ÔȆ傫ɂȂĂ̂Ǝv܂̂ŁAvO
𐮗ȂǂđΏĂB

.[i2
ȂhehIvVw肵ăIuWFNg𒀎At@Cɏo͂
́AIuWFNgGA̓X^bNGA128bytes̃IuWFNgobt@
Ɏg邾Ȃ̂ŁAunftdŎs\ȍő̃IuWFNg쐬
邱Ƃł܂B̑傫́A^C[`16Kbytes
܂łłB
.]

~<-

pFo͂IuWFNgP[g邱Ƃ͂ł̂H

`F^CE[`̂P[^uł͂Ȃ̂ŁAP[g
͂ł܂B

~<-

pFQȏ̔z͂ǂ̂悤Ɉ̂

`Funftd͂P̔z񂵂Ƃł܂BQȏ̔z
ꍇ͐`ȃԂɓWJċLq邱ƂɂȂ܂BႦ΁A

.[w- f-
  char a[5][10];
  {
    a[3][4] = 1;
  }
.]



.[w- f-
  char a[5 * 10];
  {
    a[3 * 5 + 4] = 1;
  }
.]

ȂǂƂ܂B

~<-

pFdroqhsœ삵inline܂ރvOɓ삵Ȃ

`Funftd͂droqhsɔׂďGɂȂĂ̂ŁAdr
oqhsVXeŗL̋@\inlineȂǂɂĎsĂꍇ͓
ȂƂ܂BłȂꍇ́Aeɖ߂܂\tgEF
A荞ݖ߂ƂȂĂ邱Ƃl܂BɂĂ͕@
inline̍B

~<-

pF[U^C}݂gɂ͂ǂ悢

`F݂̏̓T|[gĂȂ̂ŁAgꍇinlineȂ
Ń[U[ځA荞ݏ⏉Ȃǂ̏Lq邱ƂɂȂ
BA^C}荞݂̓VXeEvO̎słA
̏ꍇbpȂǂ܂߂dvȃ[NGȂ唼ύXĂ̂ŁA
pɂȂ鏈Lq邱Ƃ͑Ǝv܂Bunftdł
alarmfalarmsƂA݂pJE^񋟂Ă܂̂ł
p̂P̎łB

~<-

pFunftd̕񏈗̓^CVFAOƁAǂႤ̂

`Funftd̕񏈗̓CxgEhuȕ񏈗łA^C
VFAOƂ͈قȂ܂B^CVFAOƂ̂́uԁvɂ
ď؂芷̂łA鏈IĂ悤ƂĂ܂ƈ
̎ԂɂȂΎ̃vZXɏڂĂ܂܂Bɑ΂āAC
xgEhuƂ̂́AuCxg̔vɂďJn
̂łAunftd̏ꍇ́uP̏IvƂCxgɂ
̃vZXɏڂ悤ɂȂĂ܂BȂAunftd̓^CVF
AOłȂƂƁAIOCSxȉROM^CVFA
Oɑς悤ɍĂȂłBIOCSxȉROM
sɃvZX؂ւƁAunftd̏ɂĊmɃVXe
j󂳂Ă܂܂BAunftd̊e͊SɓƗĂA
ƕɂ܂IOCSsƂƂ͐΂ɂ܂BāA
VO^XNłsłȂIOCSAP̃Cxgŋ쓮΂
}`^XNŐɓĂ悤ɗpł̂łB܂A
Ƃ킩悤ɁAIOCSŎ~܂Ă܂iႦ΁AL[͑҂
Ȃǁjs̓CxgȂ̂ŁAׂẴ^XNXgbv
܂܂B
