FX 02.45.1601
This commit is contained in:
parent
5718339940
commit
5c72ead309
|
@ -5,7 +5,7 @@
|
|||
[BINDATA] : "FXADDINror.bin"
|
||||
[DISPNAME] : "CBASIC"
|
||||
[APPNAME] : "@CBASIC"
|
||||
[VERSION] : "02.45.1502"
|
||||
[VERSION] : "02.45.1600"
|
||||
[APL_ICON] : "MainIcon.bmp"
|
||||
[MODULE_NUM] : 0
|
||||
[MOD1_TITLE] : "CBASIC"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[DLSimProject]
|
||||
Name=CBASIC
|
||||
Version=02.45.1502
|
||||
Version=02.45.1600
|
||||
Model=:fx-9860G.dlm
|
||||
SourcePath=.
|
||||
MemoryPath=INIT
|
||||
|
|
|
@ -914,6 +914,19 @@ complex Cplx_Evalsub1(char *SRC) { // 1st Priority
|
|||
case 0x5B : // MatBase( Mat A )
|
||||
return Int2Cplx( CB_MatBase( SRC ) );
|
||||
|
||||
case 0x5D : // GetRGB() ->ListAns
|
||||
return Int2Cplx(CB_GetRGB( SRC , 0 ) );
|
||||
case 0x5E : // RGB(
|
||||
return Int2Cplx(CB_RGB( SRC , 0 ) );
|
||||
case 0x70 : // GetHSV() ->ListAns
|
||||
return Int2Cplx(CB_GetRGB( SRC , 0x11 ) );
|
||||
case 0x71 : // HSV(
|
||||
return Int2Cplx(CB_RGB( SRC , 1) );
|
||||
case 0x72 : // GetHSL() ->ListAns
|
||||
return Int2Cplx(CB_GetRGB( SRC , 0x12 ) );
|
||||
case 0x73 : // HSL(
|
||||
return Int2Cplx(CB_RGB( SRC , 2 ) );
|
||||
|
||||
case 0x5C : // ListCmp( List 1, List 2)
|
||||
return Int2Cplx( CB_ListCmp( SRC ) );
|
||||
|
||||
|
@ -1288,7 +1301,7 @@ complex Cplx_Evalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
result = Cplx_fMUL( result, Cplx_Evalsub4( SRC ) );
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) && ( c != 0xFFFFFFB3 ) ) goto exitj; // And Or xor
|
||||
result = Cplx_fMUL( result, Cplx_Evalsub4( SRC ) );
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
|
@ -1303,6 +1316,7 @@ complex Cplx_Evalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
} else if ( c == 0xFFFFFFF9 ) { // F9..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x1B: // fn
|
||||
case 0x21: // Xdot
|
||||
case 0x31: // StrLen(
|
||||
case 0x32: // StrCmp(
|
||||
|
|
|
@ -376,6 +376,19 @@ complex Cplx_ListEvalsub1(char *SRC) { // 1st Priority
|
|||
case 0x5B : // MatBase( Mat A )
|
||||
return Int2Cplx( CB_MatBase( SRC ) );
|
||||
|
||||
case 0x5D : // GetRGB() ->ListAns
|
||||
return Int2Cplx(CB_GetRGB( SRC , 0 ) );
|
||||
case 0x5E : // RGB(
|
||||
return Int2Cplx(CB_RGB( SRC , 0 ) );
|
||||
case 0x70 : // GetHSV() ->ListAns
|
||||
return Int2Cplx(CB_GetRGB( SRC , 0x11 ) );
|
||||
case 0x71 : // HSV(
|
||||
return Int2Cplx(CB_RGB( SRC , 1) );
|
||||
case 0x72 : // GetHSL() ->ListAns
|
||||
return Int2Cplx(CB_GetRGB( SRC , 0x12 ) );
|
||||
case 0x73 : // HSL(
|
||||
return Int2Cplx(CB_RGB( SRC , 2 ) );
|
||||
|
||||
case 0x5C : // ListCmp( List 1, List 2)
|
||||
return Int2Cplx( CB_ListCmp( SRC ) );
|
||||
|
||||
|
@ -785,7 +798,7 @@ complex Cplx_ListEvalsub5(char *SRC) { // 5th Priority abbreviated multiplicati
|
|||
result = Cplx_EvalFxDbl2( &Cplx_fMUL, &resultflag, &resultreg, result, Cplx_ListEvalsub4( SRC ) ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) && ( c != 0xFFFFFFB3 ) ) goto exitj; // And Or xor
|
||||
result = Cplx_EvalFxDbl2( &Cplx_fMUL, &resultflag, &resultreg, result, Cplx_ListEvalsub4( SRC ) ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
|
@ -800,6 +813,7 @@ complex Cplx_ListEvalsub5(char *SRC) { // 5th Priority abbreviated multiplicati
|
|||
} else if ( c == 0xFFFFFFF9 ) { // F9..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x1B: // fn
|
||||
case 0x21: // Xdot
|
||||
case 0x31: // StrLen(
|
||||
case 0x32: // StrCmp(
|
||||
|
|
|
@ -617,6 +617,10 @@ int EvalIntsub1(char *SRC) { // 1st Priority
|
|||
}
|
||||
return ReadMatrixInt( reg, dimA, dimB);
|
||||
|
||||
case 0x50 : // i
|
||||
CB_Error(NonRealERR);
|
||||
return result;
|
||||
|
||||
case 0x3A : // MOD(a,b)
|
||||
Get2EvalInt( SRC, &tmp, &tmp2);
|
||||
return fMODint(tmp,tmp2);
|
||||
|
@ -657,6 +661,15 @@ int EvalIntsub1(char *SRC) { // 1st Priority
|
|||
case 0x5F : // 1/128 Ticks
|
||||
return CB_Ticks( SRC ); //
|
||||
|
||||
case 0xFFFFFF86 : // RndFix(n,digit)
|
||||
tmp=(EvalIntsubTop( SRC ));
|
||||
if ( SRC[ExecPtr] != ',' ) CB_Error(SyntaxERR) ; // Syntax error
|
||||
if ( SRC[++ExecPtr] == 0xFFFFFFE4 ) { ExecPtr++; i=Sci; } else i=Fix;
|
||||
tmp2 = EvalIntsubTop( SRC );
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
result=Round( tmp, i, tmp2) ;
|
||||
return result ;
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
|
@ -739,6 +752,19 @@ int EvalIntsub1(char *SRC) { // 1st Priority
|
|||
case 0x5B : // MatBase( Mat A )
|
||||
return CB_MatBase( SRC );
|
||||
|
||||
case 0x5D : // GetRGB() ->ListAns
|
||||
return CB_GetRGB( SRC, 0 );
|
||||
case 0x5E : // RGB(
|
||||
return CB_RGB( SRC, 0 );
|
||||
case 0x70 : // GetHSV() ->ListAns
|
||||
return CB_GetRGB( SRC, 1 );
|
||||
case 0x71 : // HSV(
|
||||
return CB_RGB( SRC, 1 );
|
||||
case 0x72 : // GetHSL() ->ListAns
|
||||
return CB_GetRGB( SRC, 2 );
|
||||
case 0x73 : // HSL(
|
||||
return CB_RGB( SRC, 2 );
|
||||
|
||||
case 0x5C : // ListCmp( List 1, List 2)
|
||||
return CB_ListCmp( SRC );
|
||||
|
||||
|
@ -991,7 +1017,7 @@ int EvalIntsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
result *= EvalIntsub4( SRC ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) && ( c != 0xFFFFFFB3 ) ) goto exitj; // And Or xor
|
||||
result *= EvalIntsub4( SRC ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
|
@ -1006,6 +1032,7 @@ int EvalIntsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
} else if ( c == 0xFFFFFFF9 ) { // F9..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x1B: // fn
|
||||
case 0x21: // Xdot
|
||||
case 0x31: // StrLen(
|
||||
case 0x32: // StrCmp(
|
||||
|
@ -1254,7 +1281,7 @@ int Hitickstmp=0;
|
|||
#define P7305_EXTRA_TMU5_COUNT 0xA44D00D8
|
||||
|
||||
unsigned int GetTicks32768(){
|
||||
if ( IsSH3 ) return RTC_GetTicks()<<8;
|
||||
if ( IsSH3 ) return -(RTC_GetTicks()<<8);
|
||||
return *(unsigned int*)P7305_EXTRA_TMU5_COUNT;
|
||||
}
|
||||
|
||||
|
@ -1267,7 +1294,7 @@ void CB_StoreTicks( char *SRC, int value ) {
|
|||
if ( IsSH3 == 0 ) high=1;
|
||||
}
|
||||
if ( high ) {
|
||||
t=(int)GetTicks32768();
|
||||
t=-(int)GetTicks32768();
|
||||
CB_HiTicksAdjust=t-value;
|
||||
} else {
|
||||
t=RTC_GetTicks();
|
||||
|
@ -1277,7 +1304,7 @@ void CB_StoreTicks( char *SRC, int value ) {
|
|||
}
|
||||
|
||||
int CB_RTC_GetTicks( int high ) {
|
||||
if ( high ) return CB_HiTicksAdjust-(int)GetTicks32768() ;
|
||||
if ( high ) return -(int)GetTicks32768()-CB_HiTicksAdjust ;
|
||||
return RTC_GetTicks()-CB_TicksAdjust ;
|
||||
}
|
||||
int CB_Ticks( char *SRC ) {
|
||||
|
@ -1286,7 +1313,7 @@ int CB_Ticks( char *SRC ) {
|
|||
int t;
|
||||
if ( SRC[ExecPtr] == '%' ) { // hi-res timer
|
||||
ExecPtr++;
|
||||
if ( IsSH3 == 0 ) high=1;
|
||||
high=1;
|
||||
}
|
||||
t=CB_RTC_GetTicks(high);
|
||||
if ( SRC[ExecPtr]==0xFFFFFFF9 ) {
|
||||
|
|
|
@ -183,6 +183,10 @@ int ListEvalIntsub1(char *SRC) { // 1st Priority
|
|||
}
|
||||
return ReadMatrixInt( reg, dimA, dimB);
|
||||
|
||||
case 0x50 : // i
|
||||
CB_Error(NonRealERR);
|
||||
return result;
|
||||
|
||||
case 0x3A : // MOD(a,b)
|
||||
result = ListEvalIntsubTop( SRC );
|
||||
resultflag=dspflag; // 2:result 3:Listresult
|
||||
|
@ -252,6 +256,15 @@ int ListEvalIntsub1(char *SRC) { // 1st Priority
|
|||
case 0x5F : // 1/128 Ticks
|
||||
return CB_Ticks( SRC ); //
|
||||
|
||||
case 0xFFFFFF86 : // RndFix(n,digit)
|
||||
tmp=(EvalIntsubTop( SRC ));
|
||||
if ( SRC[ExecPtr] != ',' ) CB_Error(SyntaxERR) ; // Syntax error
|
||||
if ( SRC[++ExecPtr] == 0xFFFFFFE4 ) { ExecPtr++; i=Sci; } else i=Fix;
|
||||
tmp2 = EvalIntsubTop( SRC );
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
result=Round( tmp, i, tmp2) ;
|
||||
return result ;
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
|
@ -334,6 +347,19 @@ int ListEvalIntsub1(char *SRC) { // 1st Priority
|
|||
case 0x5B : // MatBase( Mat A )
|
||||
return CB_MatBase( SRC );
|
||||
|
||||
case 0x5D : // GetRGB() ->ListAns
|
||||
return CB_GetRGB( SRC, 0 );
|
||||
case 0x5E : // RGB(
|
||||
return CB_RGB( SRC, 0 );
|
||||
case 0x70 : // GetHSV() ->ListAns
|
||||
return CB_GetRGB( SRC, 1 );
|
||||
case 0x71 : // HSV(
|
||||
return CB_RGB( SRC, 1 );
|
||||
case 0x72 : // GetHSL() ->ListAns
|
||||
return CB_GetRGB( SRC, 2 );
|
||||
case 0x73 : // HSL(
|
||||
return CB_RGB( SRC, 2 );
|
||||
|
||||
case 0x5C : // ListCmp( List 1, List 2)
|
||||
return CB_ListCmp( SRC );
|
||||
|
||||
|
@ -616,7 +642,7 @@ int ListEvalIntsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
result = EvalFxInt2( &fMULint, &resultflag, &resultreg, result, ListEvalIntsub4( SRC ) ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) && ( c != 0xFFFFFFB3 ) ) goto exitj; // And Or xor
|
||||
result = EvalFxInt2( &fMULint, &resultflag, &resultreg, result, ListEvalIntsub4( SRC ) ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
|
@ -631,6 +657,7 @@ int ListEvalIntsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
} else if ( c == 0xFFFFFFF9 ) { // F9..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x1B: // fn
|
||||
case 0x21: // Xdot
|
||||
case 0x31: // StrLen(
|
||||
case 0x32: // StrCmp(
|
||||
|
|
|
@ -334,6 +334,41 @@ void CB_Except( char*SRC ) {
|
|||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------
|
||||
int CB_GetRGB( char *SRC, int mode ){ // GetRGB/HSV/HSL() -> ListAns
|
||||
int c,d,r,g,b,m;
|
||||
int h,s,v;
|
||||
int base=MatBase;
|
||||
int errorCheck=1;
|
||||
int pipe=mode & 0xF0;
|
||||
mode &= 0x0F;
|
||||
d = CB_EvalInt( SRC );
|
||||
if ( SRC[ExecPtr] == ',' ) {
|
||||
c=SRC[++ExecPtr];
|
||||
if ( ( c == 'N' ) || ( c == 'N' ) ) { ExecPtr++; errorCheck=0; }
|
||||
}
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
|
||||
b = ((d&0x001F) << 3);
|
||||
g = ((d&0x07E0) >> 3);
|
||||
r = ((d&0xF800) >> 8);
|
||||
|
||||
h=r; s=g; v=b;
|
||||
// if ( mode ) {
|
||||
// if ( ( errorCheck ) && ( pipe==0 ) ) {
|
||||
// if ( (d==0x003F) || (d==0x041F) || (d==0xF820) || (d==0xFC00) ) { if ( CannotSupportERROR( d ) ) return 0; } // Can not support error
|
||||
// }
|
||||
// if ( mode==1 ) rgb2hsv(r,g,b,&h,&s,&v); // rgb->HSV
|
||||
// if ( mode==2 ) rgb2hsl(r,g,b,&h,&s,&v); // rgb->HSL
|
||||
// }
|
||||
dspflag=4; // List ans
|
||||
NewMatListAns( 3, 1, base, 32 ); // List Ans[3]
|
||||
m=base;
|
||||
WriteMatrix( CB_MatListAnsreg, m++, base, h ) ; //
|
||||
WriteMatrix( CB_MatListAnsreg, m++, base, s ) ; //
|
||||
WriteMatrix( CB_MatListAnsreg, m , base, v ) ; //
|
||||
return d;
|
||||
}
|
||||
|
||||
int CB_RGBlistsub( char *SRC, int*r, int*g, int*b ){
|
||||
int reg;
|
||||
int m,n;
|
||||
|
|
|
@ -3229,6 +3229,7 @@ int PP_Search_CR_SPACE(char *SRC ){
|
|||
PP_Search_CR_SPACE_Skip_quot(SRC, &ptr);
|
||||
break ;
|
||||
case 0x27: // '
|
||||
case 0x13: // =>
|
||||
PP_Search_CR_SPACE_Skip_comment(SRC, &ptr);
|
||||
break ;
|
||||
case 0x0C: // <Disps>
|
||||
|
@ -3284,12 +3285,15 @@ int PP_Indent_Skip_quot(char *SRC, char *dest, int *sptr, int *dptr){
|
|||
int CB_PreProcessIndent( char *filebase, int progno ) { //
|
||||
char *dest,*SRC;
|
||||
int ptr;
|
||||
int c,i;
|
||||
int c,i,j;
|
||||
int size,maxsize,newsize;
|
||||
int editMax;
|
||||
int sptr=0,dptr=0;
|
||||
int indent = 0;
|
||||
int editIndent=(CB_EditIndent&0x07);
|
||||
int switch_nest=0;
|
||||
int switch_indent[16];
|
||||
for( i=0;i<16;i++) switch_indent[i]=0;
|
||||
|
||||
if ( editIndent == 0 ) return 0;
|
||||
if ( PP_Search_CR_SPACE( filebase+0x56 ) ) return 0; // already exist indent
|
||||
|
@ -3305,6 +3309,7 @@ int CB_PreProcessIndent( char *filebase, int progno ) { //
|
|||
SRC = filebase+maxsize-size +0x56;
|
||||
dest = filebase +0x56;
|
||||
|
||||
|
||||
while ( sptr < size ){
|
||||
if ( dptr >= maxsize ) {
|
||||
CB_Error(NotEnoughMemoryERR); CB_ErrMsg(ErrorNo); return 1; } //
|
||||
|
@ -3340,18 +3345,48 @@ int CB_PreProcessIndent( char *filebase, int progno ) { //
|
|||
case 0x04: // For
|
||||
case 0x08: // While
|
||||
case 0x0A: // Do
|
||||
case 0x0FFFFFFEA: // Switch
|
||||
// case 0x0FFFFFFEB: // Case
|
||||
indent += editIndent;
|
||||
break;
|
||||
case 0x01: // Then
|
||||
if ( SRC[sptr] == ':' ) SRC[sptr]=0x0D;
|
||||
break;
|
||||
case 0x0FFFFFFEA: // Switch
|
||||
indent += editIndent;
|
||||
if ( switch_nest<16 ) switch_nest++;
|
||||
switch_indent[switch_nest]=indent;
|
||||
break;
|
||||
case 0x0FFFFFFEB: // Case
|
||||
case 0x0FFFFFFEC: // Default
|
||||
if ( switch_indent[switch_nest]==0 ) break;
|
||||
if ( dest[dptr-3]==' ' ) {
|
||||
indent = switch_indent[switch_nest];
|
||||
j = editIndent;
|
||||
goto jindent;
|
||||
}
|
||||
break;
|
||||
case 0x0FFFFFFED: // SwitchEnd
|
||||
j = 0;
|
||||
if ( dest[dptr-3]==' ' ) {
|
||||
indent = switch_indent[switch_nest]-editIndent;
|
||||
if ( switch_nest>1 ) switch_nest--;
|
||||
jindent:
|
||||
dptr -= 3;
|
||||
while ( dest[--dptr] == ' ') ;
|
||||
dptr++;
|
||||
i = 1 ;
|
||||
while ( i <= indent ) {
|
||||
dest[dptr++]=' ';
|
||||
i++;
|
||||
}
|
||||
dest[dptr++]=0xF7;
|
||||
dest[dptr++]=c;
|
||||
}
|
||||
indent += j;
|
||||
break;
|
||||
case 0x03: // IfEnd
|
||||
case 0x07: // Next
|
||||
case 0x09: // WhileEnd
|
||||
case 0x0B: // LpWhile
|
||||
case 0x0FFFFFFED: // SwitchEnd
|
||||
indent -= editIndent;
|
||||
if ( indent < 0 ) indent =0 ;
|
||||
case 0x02: // Else
|
||||
|
@ -3363,7 +3398,7 @@ int CB_PreProcessIndent( char *filebase, int progno ) { //
|
|||
if ( i >= editIndent ) break;
|
||||
dptr--;
|
||||
i++;
|
||||
} while ( dest[dptr]==' ' ) ;
|
||||
} while ( dest[dptr] == ' ' ) ;
|
||||
dest[dptr++]=0xF7;
|
||||
dest[dptr++]=c;
|
||||
}
|
||||
|
@ -3411,6 +3446,7 @@ void CB_PostProcessIndentRemove( char *filebase ) { //
|
|||
switch ( c ) {
|
||||
case 0x00: // <EOF>
|
||||
goto exit;
|
||||
case 0x13: // =>
|
||||
case 0x22: // "
|
||||
case 0x27: // '
|
||||
PP_Indent_Skip_quot(SRC, dest, &sptr, &dptr);
|
||||
|
@ -3460,34 +3496,6 @@ void CB_Local( char *SRC ) {
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
void Skip_rem_no_op( char *SRC ){
|
||||
int c=SRC[ExecPtr];
|
||||
if ( c=='/' ) { // '/ execute C.Basic only
|
||||
ExecPtr++;
|
||||
return;
|
||||
}
|
||||
while (1){
|
||||
switch ( c ) {
|
||||
case 0x00: // <EOF>
|
||||
ExecPtr--;
|
||||
case 0x0C: // dsps
|
||||
case 0x0D: // <CR>
|
||||
return ;
|
||||
break;
|
||||
case 0x7F: //
|
||||
case 0xFFFFFFF7: //
|
||||
case 0xFFFFFFF9: //
|
||||
case 0xFFFFFFE5: //
|
||||
case 0xFFFFFFE6: //
|
||||
case 0xFFFFFFE7: //
|
||||
// case 0xFFFFFFFF: //
|
||||
ExecPtr++;
|
||||
break;
|
||||
}
|
||||
c=SRC[ExecPtr++];
|
||||
}
|
||||
}
|
||||
|
||||
int PP_Search_IfEnd( char *SRC ){
|
||||
int c,i;
|
||||
int PP_ptr;
|
||||
|
@ -3947,7 +3955,6 @@ void FavoritesDowndummy( int *index ) {
|
|||
(*index)++;
|
||||
SaveFavorites();
|
||||
}
|
||||
/*
|
||||
void FavoritesDowndummy2( int *index ) {
|
||||
unsigned short tmp;
|
||||
char tmpname[FILENAMEMAX];
|
||||
|
@ -3996,6 +4003,7 @@ void FavoritesDowndummy4( int *index ) {
|
|||
files[(*index)].filesize=tmp;
|
||||
SaveFavorites();
|
||||
}
|
||||
/*
|
||||
void FavoritesDowndummy5( int *index ) {
|
||||
unsigned short tmp;
|
||||
char tmpname[FILENAMEMAX];
|
||||
|
|
|
@ -763,7 +763,7 @@ int InitOpcodeRecent() {
|
|||
int AddOpcodeRecent( short opcode ) {
|
||||
int i,j;
|
||||
|
||||
if ( ( 0x0D == opcode ) || ( 0x0E == opcode ) || ( ',' == opcode ) ) return;
|
||||
if ( ( ('a'<=opcode)&&(opcode<='z') ) || ( 0x0D == opcode ) || ( 0x0E == opcode ) || ( ',' == opcode ) ) return;
|
||||
if ( MathKey( (unsigned int) opcode ) ) return ;
|
||||
|
||||
for (i=0; i<OpRecentMax; i++) {
|
||||
|
|
|
@ -52,7 +52,7 @@ void VerDispSub( int flag ) {
|
|||
locate( 3, 5 ); Print( (unsigned char*)" by sentaro21" );
|
||||
locate( 3, 6 ); Print( (unsigned char*)" (c)2020" );
|
||||
|
||||
PrintMini(13*6+2, 2*8+1, (unsigned char*)"build 15.", MINI_OVER );
|
||||
PrintMini(13*6+2, 2*8+1, (unsigned char*)"build 16", MINI_OVER );
|
||||
PrintMini( 2*6+2, 3*8+1, (unsigned char*)"(Casio Basic compatible+)", MINI_OVER );
|
||||
|
||||
// if ( ( UseHiddenRAM ) && ( IsHiddenRAM ) ) {
|
||||
|
|
28
fx/CB_Eval.c
28
fx/CB_Eval.c
|
@ -540,10 +540,6 @@ void MatOprand1( char *SRC, int reg, int *dimA, int *dimB ){ // base:0 0- ba
|
|||
int EvalObjectAlignE4d( unsigned int n ){ return n+n; } // align +6byte
|
||||
//int EvalObjectAlignE4e( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4f( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4g( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4h( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4i( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4j( unsigned int n ){ return n; } // align +4byte
|
||||
//-----------------------------------------------------------------------------
|
||||
double CB_EvalDbl( char *SRC ) {
|
||||
double value;
|
||||
|
@ -698,6 +694,10 @@ double EvalsubTop( char *SRC ) { // eval 1
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
int EvalObjectAlignE4g( unsigned int n ){ return n; } // align +4byte
|
||||
int EvalObjectAlignE4h( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4i( unsigned int n ){ return n; } // align +4byte
|
||||
//int EvalObjectAlignE4j( unsigned int n ){ return n; } // align +4byte
|
||||
//----------------------------------------------------------------------------------------------
|
||||
|
||||
double frac( double x ) {
|
||||
|
@ -1294,6 +1294,10 @@ double Evalsub1(char *SRC) { // 1st Priority
|
|||
}
|
||||
return ReadMatrix( reg, dimA, dimB);
|
||||
|
||||
case 0x50 : // i
|
||||
CB_Error(NonRealERR);
|
||||
return result;
|
||||
|
||||
case 0x3A : // MOD(a,b)
|
||||
Get2Eval( SRC, &tmp, &tmp2);
|
||||
return fMOD(tmp,tmp2);
|
||||
|
@ -1433,6 +1437,19 @@ double Evalsub1(char *SRC) { // 1st Priority
|
|||
case 0x5B : // MatBase( Mat A )
|
||||
return CB_MatBase( SRC );
|
||||
|
||||
case 0x5D : // GetRGB() ->ListAns
|
||||
return CB_GetRGB( SRC, 0 );
|
||||
case 0x5E : // RGB(
|
||||
return CB_RGB( SRC, 0 );
|
||||
case 0x70 : // GetHSV() ->ListAns
|
||||
return CB_GetRGB( SRC, 1 );
|
||||
case 0x71 : // HSV(
|
||||
return CB_RGB( SRC, 1 );
|
||||
case 0x72 : // GetHSL() ->ListAns
|
||||
return CB_GetRGB( SRC, 2 );
|
||||
case 0x73 : // HSL(
|
||||
return CB_RGB( SRC, 2 );
|
||||
|
||||
case 0x5C : // ListCmp( List 1, List 2)
|
||||
return CB_ListCmp( SRC );
|
||||
|
||||
|
@ -1843,7 +1860,7 @@ double Evalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
result *= Evalsub4( SRC ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) && ( c != 0xFFFFFFB3 ) ) goto exitj; // And Or xor
|
||||
result *= Evalsub4( SRC ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
|
@ -1858,6 +1875,7 @@ double Evalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
} else if ( c == 0xFFFFFFF9 ) { // F9..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x1B: // fn
|
||||
case 0x21: // Xdot
|
||||
case 0x31: // StrLen(
|
||||
case 0x32: // StrCmp(
|
||||
|
|
|
@ -265,6 +265,10 @@ double ListEvalsub1(char *SRC) { // 1st Priority
|
|||
}
|
||||
return ReadMatrix( reg, dimA, dimB);
|
||||
|
||||
case 0x50 : // i
|
||||
CB_Error(NonRealERR);
|
||||
return result;
|
||||
|
||||
case 0x3A : // MOD(a,b)
|
||||
result = ListEvalsubTop( SRC );
|
||||
resultflag=dspflag; // 2:result 3:Listresult
|
||||
|
@ -434,6 +438,19 @@ double ListEvalsub1(char *SRC) { // 1st Priority
|
|||
case 0x5B : // MatBase( Mat A )
|
||||
return CB_MatBase( SRC );
|
||||
|
||||
case 0x5D : // GetRGB() ->ListAns
|
||||
return CB_GetRGB( SRC, 0 );
|
||||
case 0x5E : // RGB(
|
||||
return CB_RGB( SRC, 0 );
|
||||
case 0x70 : // GetHSV() ->ListAns
|
||||
return CB_GetRGB( SRC, 1 );
|
||||
case 0x71 : // HSV(
|
||||
return CB_RGB( SRC, 1 );
|
||||
case 0x72 : // GetHSL() ->ListAns
|
||||
return CB_GetRGB( SRC, 2 );
|
||||
case 0x73 : // HSL(
|
||||
return CB_RGB( SRC, 2 );
|
||||
|
||||
case 0x5C : // ListCmp( List 1, List 2)
|
||||
return CB_ListCmp( SRC );
|
||||
|
||||
|
@ -843,7 +860,7 @@ double ListEvalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
result = EvalFxDbl2( &fMUL, &resultflag, &resultreg, result, ListEvalsub4( SRC ) ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) && ( c != 0xFFFFFFB3 ) ) goto exitj; // And Or xor
|
||||
result = EvalFxDbl2( &fMUL, &resultflag, &resultreg, result, ListEvalsub4( SRC ) ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
|
@ -858,6 +875,7 @@ double ListEvalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
} else if ( c == 0xFFFFFFF9 ) { // F9..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x1B: // fn
|
||||
case 0x21: // Xdot
|
||||
case 0x31: // StrLen(
|
||||
case 0x32: // StrCmp(
|
||||
|
|
|
@ -1686,7 +1686,7 @@ int SetMatrix(int select){ // ----------- Set Matrix
|
|||
if ( select<58 ) {
|
||||
if ( (select%58) >= 29 ) Fkey_dispN_aA( FKeyNo6, "A<>a"); else Fkey_dispN_Aa( FKeyNo6, "A<>a");
|
||||
} else {
|
||||
Fkey_dispN( FKeyNo6, ">A-z");
|
||||
Fkey_dispN( FKeyNo6, "A<>a");
|
||||
FkeyMask( FKeyNo6 );
|
||||
}
|
||||
|
||||
|
@ -3724,7 +3724,7 @@ void CB_Seq( char *SRC ) { // Seq(X^2,X,1,10,1)->List 1[.B][.W][.L][.F]
|
|||
int fxreg,reg;
|
||||
int exptr,exptr2;
|
||||
complex data,databack;
|
||||
double start,end,step;
|
||||
double start,end,step,tmp;
|
||||
int dataint,databackint;
|
||||
int startint,endint,stepint;
|
||||
int m,n;
|
||||
|
@ -3735,7 +3735,7 @@ void CB_Seq( char *SRC ) { // Seq(X^2,X,1,10,1)->List 1[.B][.W][.L][.F]
|
|||
SeqOprand( SRC, &fxreg, &start, &end, &step );
|
||||
if ( ErrorNo ) return ;
|
||||
|
||||
dimA = (end-start)/step +1;
|
||||
dimA = (end-start)/step +1.5;
|
||||
dimB = 1;
|
||||
|
||||
ElementSize=ElementSizeSelect( SRC, &base, 0) & 0xFF;
|
||||
|
@ -3747,7 +3747,7 @@ void CB_Seq( char *SRC ) { // Seq(X^2,X,1,10,1)->List 1[.B][.W][.L][.F]
|
|||
base=MatAry[reg].Base;
|
||||
m=base; n=base;
|
||||
databack=LocalDbl[fxreg][0];
|
||||
LocalDbl[fxreg][0].real = start;
|
||||
LocalDbl[fxreg][0].real=start;
|
||||
while ( m < dimA+base ) {
|
||||
ExecPtr=exptr;
|
||||
data=CB_Cplx_EvalDbl( SRC ); //
|
||||
|
@ -3760,6 +3760,8 @@ void CB_Seq( char *SRC ) { // Seq(X^2,X,1,10,1)->List 1[.B][.W][.L][.F]
|
|||
ExecPtr=exptr2;
|
||||
dspflag =4 ; // List data
|
||||
}
|
||||
|
||||
|
||||
void SeqOprandInt( char *SRC, int *fxreg, int *start, int *end, int *step ){ // Seq(X^2,X,1,10[,1])
|
||||
int exptr=ExecPtr;
|
||||
int errflag;
|
||||
|
@ -4969,25 +4971,25 @@ int MatrixObjectAlign4M5( unsigned int n ){ return n; } // align +4byte
|
|||
int MatrixObjectAlign4M6( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4M7( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4M8( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4M9( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4M0( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MA( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MB( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MC( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MD( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4ME( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MF( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MG( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MH( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MI( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MJ( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MK( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4ML( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MM( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MN( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MO( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MP( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MQ( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4M9( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4M0( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MA( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MB( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MC( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MD( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4ME( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MF( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MG( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MH( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MI( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MJ( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MK( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4ML( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MM( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MN( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MO( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MP( unsigned int n ){ return n; } // align +4byte
|
||||
int MatrixObjectAlign4MQ( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MR( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MS( unsigned int n ){ return n; } // align +4byte
|
||||
//int MatrixObjectAlign4MT( unsigned int n ){ return n; } // align +4byte
|
||||
|
|
34
fx/CB_Str.c
34
fx/CB_Str.c
|
@ -479,9 +479,9 @@ void OpcodeStringToAsciiString(char *buffer, char *SRC, int Maxlen ) { // Opcode
|
|||
//-----------------------------------------------------------------------------
|
||||
int CheckQuotCR( char *SRC, int ptr ) {
|
||||
int c,d;
|
||||
if ( SRC[ptr-1] != 0x22 ) return 0; // "
|
||||
c=SRC[ptr-2];
|
||||
d=SRC[ptr-3];
|
||||
if ( SRC[ptr-1] != 0x22 ) return 0; // "
|
||||
if ( d==0xFFFFFFF7 ) {
|
||||
if ( ( c==0x01 ) || ( c==0x02 ) ) return 1; // Then or Else
|
||||
}
|
||||
|
@ -564,13 +564,11 @@ void GetNewAry8( int reg, int aryN, int aryMax ) {
|
|||
DimMatrixSub( reg, 8, aryN, aryMax, 1 ); // byte matrix base:1
|
||||
} else {
|
||||
if ( MatAry[reg].SizeA < aryN ) {
|
||||
if ( (int)MatAry[reg].Adrs > (int)CB_CurrentStr ) {
|
||||
buffer=NewStrBuffer();
|
||||
if ( buffer!=NULL ) {
|
||||
size =MatAry[reg].SizeB; if ( size>CB_StrBufferMax ) size = CB_StrBufferMax;
|
||||
memcpy( buffer, CB_CurrentStr, size );
|
||||
CB_CurrentStr = buffer;
|
||||
}
|
||||
buffer=NewStrBuffer();
|
||||
if ( buffer!=NULL ) {
|
||||
size =MatAry[reg].SizeB; if ( size>CB_StrBufferMax ) size = CB_StrBufferMax;
|
||||
memcpy( buffer, CB_CurrentStr, size );
|
||||
CB_CurrentStr = buffer;
|
||||
}
|
||||
MatElementPlus( reg, aryN, aryMax ); // matrix +
|
||||
}
|
||||
|
@ -1285,16 +1283,10 @@ double CB_EvalStrDBL( char *buffer, int calcflag ) { // Eval str -> double
|
|||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
if (CB_INT==1) result = EvalIntsubTop( buffer );
|
||||
else
|
||||
if (CB_INT==0) result = EvalsubTop( buffer );
|
||||
else result = Cplx_EvalsubTop( buffer ).real;
|
||||
result = EvalsubTop( buffer );
|
||||
}
|
||||
else {
|
||||
if (CB_INT==1) result = ListEvalIntsubTop( buffer ); // List calc
|
||||
else
|
||||
if (CB_INT==0) result = ListEvalsubTop( buffer ); // List calc
|
||||
else result = Cplx_ListEvalsubTop( buffer ).real; // List calc
|
||||
result = ListEvalsubTop( buffer ); // List calc
|
||||
}
|
||||
ExecPtr=execptr;
|
||||
if ( ErrorNo ) { ErrorPtr=ExecPtr; return 0; }
|
||||
|
@ -1306,16 +1298,10 @@ complex CB_Cplx_EvalStrDBL( char *buffer, int calcflag ) { // Eval str -> doubl
|
|||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
if (CB_INT==1) result = Int2Cplx( EvalIntsubTop( buffer ) );
|
||||
else
|
||||
if (CB_INT==0) result = Dbl2Cplx( EvalsubTop( buffer ) );
|
||||
else result = Cplx_EvalsubTop( buffer );
|
||||
result = Cplx_EvalsubTop( buffer );
|
||||
}
|
||||
else {
|
||||
if (CB_INT==1) result = Int2Cplx( ListEvalIntsubTop( buffer ) ); // List calc
|
||||
else
|
||||
if (CB_INT==0) result = Dbl2Cplx( ListEvalsubTop( buffer ) ); // List calc
|
||||
else result = Cplx_ListEvalsubTop( buffer ); // List calc
|
||||
result = Cplx_ListEvalsubTop( buffer ); // List calc
|
||||
}
|
||||
ExecPtr=execptr;
|
||||
if ( ErrorNo ) { ErrorPtr=ExecPtr; return Int2Cplx(0); }
|
||||
|
|
|
@ -869,6 +869,7 @@ int CB_interpreter_sub( char *SRC ) {
|
|||
else CB_Store(SRC); // ->
|
||||
dspflagtmp=dspflag+0x10; // 12:nomal 13:mat 14:list
|
||||
c=SRC[ExecPtr];
|
||||
if ( c == 0x0E ) goto inext1;
|
||||
}
|
||||
if ( c == 0x13 ) { // =>
|
||||
inext2:
|
||||
|
@ -1172,13 +1173,15 @@ void Skip_quot( char *SRC ){ // skip "..."
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
void Skip_rem( char *SRC ){ // skip '...
|
||||
void Skip_rem_sub( char *SRC, int nonopflag ){ // skip '...
|
||||
int c,reg;
|
||||
remloop:
|
||||
c=SRC[ExecPtr++];
|
||||
if ( c=='/' ) { // '/ execute C.Basic only
|
||||
return;
|
||||
} else
|
||||
if ( nonopflag ) goto next;
|
||||
else
|
||||
if ( c=='#' ) {
|
||||
c=SRC[ExecPtr++];
|
||||
if ( c=='C') {
|
||||
|
@ -1280,6 +1283,7 @@ remloop:
|
|||
|
||||
}
|
||||
}
|
||||
next:
|
||||
while (1){
|
||||
switch ( c ) {
|
||||
case 0x00: // <EOF>
|
||||
|
@ -1310,11 +1314,15 @@ remloop:
|
|||
}
|
||||
}
|
||||
|
||||
void Skip_rem_no_op( char *SRC ){
|
||||
Skip_rem_sub( SRC, 1 );
|
||||
}
|
||||
|
||||
void CB_Rem( char *SRC, CchIf *Cache ){
|
||||
int i,ii,j,execptr;
|
||||
int c=SRC[ExecPtr];
|
||||
if ( c=='#' ) { // C.Basic command
|
||||
Skip_rem( SRC );
|
||||
Skip_rem_sub( SRC, 0 );
|
||||
return;
|
||||
}
|
||||
j=0; i=Cache->TOP;
|
||||
|
@ -1333,7 +1341,7 @@ void CB_Rem( char *SRC, CchIf *Cache ){
|
|||
i++; if ( i >= IfCntMax ) i=0;
|
||||
}
|
||||
execptr=ExecPtr;
|
||||
Skip_rem( SRC );
|
||||
Skip_rem_sub( SRC, 0 );
|
||||
if ( Cache->CNT < IfCntMax ) Cache->CNT++;
|
||||
Cache->TOP--; if ( Cache->TOP<0 ) Cache->TOP=IfCntMax-1;
|
||||
Cache->Ptr[Cache->TOP] =execptr;
|
||||
|
@ -1568,7 +1576,7 @@ void Search_IfEnd( char *SRC ){
|
|||
}
|
||||
|
||||
int Search_ElseIfEnd( char *SRC ){
|
||||
unsigned int c;
|
||||
int c;
|
||||
while (1){ // Search Else or IfEnd
|
||||
c=SRC[ExecPtr++];
|
||||
switch ( c ) {
|
||||
|
@ -1587,11 +1595,11 @@ int Search_ElseIfEnd( char *SRC ){
|
|||
Search_IfEnd(SRC);
|
||||
break;
|
||||
} else
|
||||
if ( c == 0x02 ) return 1 ; // Else
|
||||
if ( c == 0x02 ) return c ; // Else
|
||||
else
|
||||
if ( c == 0x03 ) return 2 ; // IfEnd
|
||||
if ( c == 0x03 ) return c ; // IfEnd
|
||||
else
|
||||
if ( c == 0x0F ) return 3 ; // ElseIf
|
||||
if ( c == 0x0F ) return c ; // ElseIf
|
||||
break;
|
||||
case 0x0000007F: //
|
||||
case 0xFFFFFFF9: //
|
||||
|
@ -1613,7 +1621,7 @@ void CB_If( char *SRC, CchIf *Cache ){
|
|||
judge = CB_EvalCheckZero( SRC );
|
||||
c =SRC[ExecPtr];
|
||||
if ( ( c == ':' ) || ( c == 0x0D ) ) { c=SRC[++ExecPtr]; while ( c==' ' ) c=SRC[++ExecPtr]; }
|
||||
if ( c == 0x27 ) { Skip_rem_no_op(SRC); c=SRC[++ExecPtr]; while ( c==' ' ) c=SRC[++ExecPtr]; }
|
||||
if ( c == 0x27 ) { Skip_rem_no_op(SRC); c=SRC[ExecPtr]; while ( c==' ' ) c=SRC[++ExecPtr]; }
|
||||
if ( ( c == 0xFFFFFFF7 ) && ( SRC[ExecPtr+1] == 0x01 ) ) ExecPtr+=2 ; // "Then" skip
|
||||
if ( judge ) return ; // true
|
||||
|
||||
|
@ -1634,7 +1642,7 @@ void CB_If( char *SRC, CchIf *Cache ){
|
|||
}
|
||||
execptr=ExecPtr;
|
||||
stat=Search_ElseIfEnd( SRC );
|
||||
if ( stat == 3 ) goto loop; // ElseIf
|
||||
if ( stat == 0x0F ) goto loop; // ElseIf
|
||||
if ( Cache->CNT < IfCntMax ) Cache->CNT++;
|
||||
Cache->TOP--; if ( Cache->TOP<0 ) Cache->TOP=IfCntMax-1;
|
||||
Cache->Ptr[Cache->TOP] =execptr;
|
||||
|
@ -2983,24 +2991,24 @@ int iObjectAlign4c( unsigned int n ){ return n; } // align +4byte
|
|||
int iObjectAlign4d( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4e( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4f( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4g( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4h( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4i( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4j( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4k( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4l( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4m( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4n( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4o( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4p( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4q( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4r( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4s( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4t( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4u( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4v( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4w( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4x( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4g( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4h( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4i( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4j( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4k( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4l( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4m( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4n( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4o( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4p( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4q( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4r( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4s( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4t( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4u( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4v( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4w( unsigned int n ){ return n; } // align +4byte
|
||||
int iObjectAlign4x( unsigned int n ){ return n; } // align +4byte
|
||||
//int iObjectAlign4y( unsigned int n ){ return n; } // align +4byte
|
||||
//----------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -378,6 +378,7 @@ void CB_BackColor( char *SRC );
|
|||
void CB_TransparentColor( char *SRC );
|
||||
int CB_GetColor( char *SRC );
|
||||
unsigned short CB_RGB( char *SRC, int mode ) ; // n or (r,g,b) return : color code // mode 0:RGB 1:HSV 2:HSL
|
||||
int CB_GetRGB( char *SRC, int mode ); // GetRGB/HSV/HsL() -> ListAns
|
||||
|
||||
void CB_GraphFunc( char *SRC, int c ) ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue