FX 02.45.1502
This commit is contained in:
parent
a8a167613e
commit
6d05a74caa
|
@ -5,7 +5,7 @@
|
|||
[BINDATA] : "FXADDINror.bin"
|
||||
[DISPNAME] : "CBASIC"
|
||||
[APPNAME] : "@CBASIC"
|
||||
[VERSION] : "02.45.1401"
|
||||
[VERSION] : "02.45.1502"
|
||||
[APL_ICON] : "MainIcon.bmp"
|
||||
[MODULE_NUM] : 0
|
||||
[MOD1_TITLE] : "CBASIC"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[DLSimProject]
|
||||
Name=CBASIC
|
||||
Version=02.45.1401
|
||||
Version=02.45.1502
|
||||
Model=:fx-9860G.dlm
|
||||
SourcePath=.
|
||||
MemoryPath=INIT
|
||||
|
@ -32,6 +32,7 @@ SourceFile=:KeyScan.c
|
|||
SourceFile=:fx_syscall.src
|
||||
SourceFile=:CB_glib2.c
|
||||
SourceFile=:CB_Eval_ext.c
|
||||
SourceFile=:CB_GraphFunc.c
|
||||
SourceFile=:CBZ_Time.c
|
||||
SourceFile=:CBZ_inp.c
|
||||
SourceFile=:CBZ_edit.c
|
||||
|
|
|
@ -823,6 +823,10 @@ complex Cplx_Evalsub1(char *SRC) { // 1st Priority
|
|||
return Cplx_Round( tmp, i, tmp2.real);
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
return CB_Cplx_GraphYStr( SRC, 0 );
|
||||
|
||||
case 0xFFFFFFF5 : // IsExist(
|
||||
|
@ -928,7 +932,8 @@ complex Cplx_Evalsub1(char *SRC) { // 1st Priority
|
|||
case 0xFFFFFFDF : // Version
|
||||
return Int2Cplx( CB_Version() ); //
|
||||
|
||||
// case 0xFFFFFF90 : // F Result
|
||||
case 0xFFFFFF90 : // F Result
|
||||
dspflag=4; // 2:value 3:Mat 4:List
|
||||
case 0xFFFFFF91 : // F Start
|
||||
case 0xFFFFFF92 : // F End
|
||||
case 0xFFFFFF93 : // F pitch
|
||||
|
@ -1282,66 +1287,9 @@ complex Cplx_Evalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
( c == 0xFFFFFF8D )) { // integral
|
||||
result = Cplx_fMUL( result, Cplx_Evalsub4( SRC ) );
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x40: // Mat A[a,b]
|
||||
case 0xFFFFFF84 : // Vct A[a,b]
|
||||
case 0x50: // i
|
||||
case 0x51: // List 1[a]
|
||||
case 0x3A: // MOD(a,b)
|
||||
case 0x3C: // GCD(a,b)
|
||||
case 0x3D: // LCM(a,b)
|
||||
case 0xFFFFFF8F: // Getkey
|
||||
case 0xFFFFFF85: // logab(a,b)
|
||||
case 0xFFFFFF86: // RndFix(n,digit)
|
||||
case 0xFFFFFF87: // RanInt#(st,en)
|
||||
case 0xFFFFFF88 : // RanList#(n) ->ListAns
|
||||
case 0xFFFFFF89 : // RanBin#(n,p[,m]) ->ListAns
|
||||
case 0xFFFFFF8A : // RanNorm#(sd,mean[,n]) ->ListAns
|
||||
case 0xFFFFFFB3 : // Not
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
case 0x00: // Xmin
|
||||
case 0x01: // Xmax
|
||||
case 0x02: // Xscl
|
||||
case 0x04: // Ymin
|
||||
case 0x05: // Ymax
|
||||
case 0x06: // Yscl
|
||||
case 0x08: // Thetamin
|
||||
case 0x09: // Thetamax
|
||||
case 0x0A: // Thetaptch
|
||||
case 0x0B: // Xfct
|
||||
case 0x0C: // Yfct
|
||||
case 0x20 : // Max( List 1 ) Max( { 1,2,3,4,5 } )
|
||||
case 0x21 : // Det Mat A
|
||||
case 0x29 : // Sigma( X, X, 1, 1000)
|
||||
case 0x2D : // Min( List 1 ) Min( { 1,2,3,4,5 } )
|
||||
case 0x2E : // Mean( List 1 ) Mean( { 1,2,3,4,5 } )
|
||||
case 0x47 : // Fill(
|
||||
case 0x4A : // List>Mat( List 1, List 2,..) -> List 5
|
||||
case 0x4B : // Mat>List( Mat A, m) -> List n
|
||||
case 0x4C : // Sum List 1
|
||||
case 0x4D : // Prod List 1
|
||||
case 0x58 : // ElemSize( Mat A )
|
||||
case 0x59 : // RowSize( Mat A )
|
||||
case 0x5A : // ColSize( Mat A )
|
||||
case 0x5B : // MatBase( Mat A )
|
||||
case 0x22 : // Arg
|
||||
case 0x23 : // Conjg
|
||||
case 0x24 : // ReP
|
||||
case 0x25 : // ImP
|
||||
case 0x6A : // List1
|
||||
case 0x6B : // List2
|
||||
case 0x6C : // List3
|
||||
case 0x6D : // List4
|
||||
case 0x6E : // List5
|
||||
case 0x6F : // List6
|
||||
case 0x26 : // dx/dy
|
||||
result = Cplx_fMUL( result, Cplx_Evalsub4( SRC ) );
|
||||
break;
|
||||
default:
|
||||
goto exitj;
|
||||
break;
|
||||
}
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
result = Cplx_fMUL( result, Cplx_Evalsub4( SRC ) );
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
|
|
|
@ -114,7 +114,7 @@ complex Cplx_ListEvalsub1(char *SRC) { // 1st Priority
|
|||
int resultreg;
|
||||
int resultflag;
|
||||
|
||||
dspflag=2; // 2:value 3:list 4:mat
|
||||
dspflag=2; // 2:value 3:Mat 4:List
|
||||
|
||||
c = SRC[ExecPtr++];
|
||||
topj:
|
||||
|
@ -285,6 +285,10 @@ complex Cplx_ListEvalsub1(char *SRC) { // 1st Priority
|
|||
return result ;
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
return CB_Cplx_GraphYStr( SRC, 1 );
|
||||
|
||||
case 0xFFFFFFF5 : // IsExist(
|
||||
|
@ -390,7 +394,8 @@ complex Cplx_ListEvalsub1(char *SRC) { // 1st Priority
|
|||
case 0xFFFFFFDF : // Version
|
||||
return Int2Cplx( CB_Version() ); //
|
||||
|
||||
// case 0xFFFFFF90 : // F Result
|
||||
case 0xFFFFFF90 : // F Result
|
||||
CB_F_Result( SRC );
|
||||
case 0xFFFFFF91 : // F Start
|
||||
case 0xFFFFFF92 : // F End
|
||||
case 0xFFFFFF93 : // F pitch
|
||||
|
@ -779,66 +784,9 @@ complex Cplx_ListEvalsub5(char *SRC) { // 5th Priority abbreviated multiplicati
|
|||
( c == 0xFFFFFF8D )) { // integral
|
||||
result = Cplx_EvalFxDbl2( &Cplx_fMUL, &resultflag, &resultreg, result, Cplx_ListEvalsub4( SRC ) ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x40: // Mat A[a,b]
|
||||
case 0xFFFFFF84 : // Vct A[a,b]
|
||||
case 0x50: // i
|
||||
case 0x51: // List 1[a]
|
||||
case 0x3A: // MOD(a,b)
|
||||
case 0x3C: // GCD(a,b)
|
||||
case 0x3D: // LCM(a,b)
|
||||
case 0xFFFFFF8F: // Getkey
|
||||
case 0xFFFFFF85: // logab(a,b)
|
||||
case 0xFFFFFF86: // RndFix(n,digit)
|
||||
case 0xFFFFFF87: // RanInt#(st,en)
|
||||
case 0xFFFFFF88 : // RanList#(n) ->ListAns
|
||||
case 0xFFFFFF89 : // RanBin#(n,p[,m]) ->ListAns
|
||||
case 0xFFFFFF8A : // RanNorm#(sd,mean[,n]) ->ListAns
|
||||
case 0xFFFFFFB3 : // Not
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
case 0x00: // Xmin
|
||||
case 0x01: // Xmax
|
||||
case 0x02: // Xscl
|
||||
case 0x04: // Ymin
|
||||
case 0x05: // Ymax
|
||||
case 0x06: // Yscl
|
||||
case 0x08: // Thetamin
|
||||
case 0x09: // Thetamax
|
||||
case 0x0A: // Thetaptch
|
||||
case 0x0B: // Xfct
|
||||
case 0x0C: // Yfct
|
||||
case 0x20 : // Max( List 1 ) Max( { 1,2,3,4,5 } )
|
||||
case 0x21 : // Det Mat A
|
||||
case 0x29 : // Sigma( X, X, 1, 1000)
|
||||
case 0x2D : // Min( List 1 ) Min( { 1,2,3,4,5 } )
|
||||
case 0x2E : // Mean( List 1 ) Mean( { 1,2,3,4,5 } )
|
||||
case 0x47 : // Fill(
|
||||
case 0x4A : // List>Mat( List 1, List 2,..) -> List 5
|
||||
case 0x4B : // Mat>List( Mat A, m) -> List n
|
||||
case 0x4C : // Sum List 1
|
||||
case 0x4D : // Prod List 1
|
||||
case 0x58 : // ElemSize( Mat A )
|
||||
case 0x59 : // RowSize( Mat A )
|
||||
case 0x5A : // ColSize( Mat A )
|
||||
case 0x5B : // MatBase( Mat A )
|
||||
case 0x22 : // Arg
|
||||
case 0x23 : // Conjg
|
||||
case 0x24 : // ReP
|
||||
case 0x25 : // ImP
|
||||
case 0x6A : // List1
|
||||
case 0x6B : // List2
|
||||
case 0x6C : // List3
|
||||
case 0x6D : // List4
|
||||
case 0x6E : // List5
|
||||
case 0x6F : // List6
|
||||
case 0x26 : // dx/dy
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
result = Cplx_EvalFxDbl2( &Cplx_fMUL, &resultflag, &resultreg, result, Cplx_ListEvalsub4( SRC ) ) ;
|
||||
break;
|
||||
default:
|
||||
goto exitj;
|
||||
break;
|
||||
}
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
|
|
|
@ -179,7 +179,7 @@ void MatOprandInt1( char *SRC, int reg, int *dimA, int *dimB ){ // base:0 0-
|
|||
int base;
|
||||
MatOprandInt1sub( SRC, reg, &(*dimA) );
|
||||
if ( MatAry[reg].SizeA == 0 ) {
|
||||
DimMatrixSub( reg, DefaultElemetSize(), (*dimA)-1+MatBase, 1, MatBase ); // new matrix
|
||||
DimMatrixSub( reg, DefaultElemetSize(), (*dimA)+1-MatBase, 1, MatBase ); // new matrix
|
||||
if ( ErrorNo ) return ; // error
|
||||
}
|
||||
base=MatAry[reg].Base;
|
||||
|
@ -658,6 +658,10 @@ int EvalIntsub1(char *SRC) { // 1st Priority
|
|||
return CB_Ticks( SRC ); //
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
return CBint_GraphYStr( SRC, 0 );
|
||||
|
||||
case 0xFFFFFFF5 : // IsExist(
|
||||
|
@ -750,7 +754,9 @@ int EvalIntsub1(char *SRC) { // 1st Priority
|
|||
case 0xFFFFFFDF : // Version
|
||||
return CB_Version(); //
|
||||
|
||||
// case 0xFFFFFF90 : // F Result
|
||||
case 0xFFFFFF90 : // F Result
|
||||
dspflag=4; // 2:value 3:Mat 4:List
|
||||
return 0;
|
||||
case 0xFFFFFF91 : // F Start
|
||||
case 0xFFFFFF92 : // F End
|
||||
case 0xFFFFFF93 : // F pitch
|
||||
|
@ -984,57 +990,9 @@ int EvalIntsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
( c == 0xFFFFFFC1 )) { // Ran#
|
||||
result *= EvalIntsub4( SRC ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x40: // Mat A[a,b]
|
||||
case 0xFFFFFF84 : // Vct A[a,b]
|
||||
case 0x51: // List 1[a]
|
||||
case 0x3A: // MOD(a,b)
|
||||
case 0x3C: // GCD(a,b)
|
||||
case 0x3D: // LCM(a,b)
|
||||
case 0xFFFFFF8F: // Getkey
|
||||
case 0xFFFFFF85: // logab(a,b)
|
||||
case 0xFFFFFF86: // RndFix(n,digit)
|
||||
case 0xFFFFFF87: // RanInt#(st,en)
|
||||
case 0xFFFFFFB3 : // Not
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
case 0x00: // Xmin
|
||||
case 0x01: // Xmax
|
||||
case 0x02: // Xscl
|
||||
case 0x04: // Ymin
|
||||
case 0x05: // Ymax
|
||||
case 0x06: // Yscl
|
||||
case 0x08: // Thetamin
|
||||
case 0x09: // Thetamax
|
||||
case 0x0A: // Thetaptch
|
||||
case 0x0B: // Xfct
|
||||
case 0x0C: // Yfct
|
||||
case 0x20 : // Max( List 1 ) Max( { 1,2,3,4,5 } )
|
||||
case 0x21 : // Det Mat A
|
||||
case 0x29 : // Sigma( X, X, 1, 1000)
|
||||
case 0x2D : // Min( List 1 ) Min( { 1,2,3,4,5 } )
|
||||
case 0x2E : // Mean( List 1 ) Mean( { 1,2,3,4,5 } )
|
||||
case 0x47 : // Fill(
|
||||
case 0x4A : // List>Mat( List 1, List 2,..) -> List 5
|
||||
case 0x4B : // Mat>List( Mat A, m) -> List n
|
||||
case 0x4C : // Sum List 1
|
||||
case 0x4D : // Prod List 1
|
||||
case 0x58 : // ElemSize( Mat A )
|
||||
case 0x59 : // RowSize( Mat A )
|
||||
case 0x5A : // ColSize( Mat A )
|
||||
case 0x5B : // MatBase( Mat A )
|
||||
case 0x6A : // List1
|
||||
case 0x6B : // List2
|
||||
case 0x6C : // List3
|
||||
case 0x6D : // List4
|
||||
case 0x6E : // List5
|
||||
case 0x6F : // List6
|
||||
result *= EvalIntsub4( SRC ) ;
|
||||
break;
|
||||
default:
|
||||
goto exitj;
|
||||
break;
|
||||
}
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
result *= EvalIntsub4( SRC ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
|
|
|
@ -106,7 +106,7 @@ int ListEvalIntsub1(char *SRC) { // 1st Priority
|
|||
int resultreg;
|
||||
int resultflag;
|
||||
|
||||
dspflag=2; // 2:value 3:list 4:mat
|
||||
dspflag=2; // 2:value 3:Mat 4:List
|
||||
|
||||
c = SRC[ExecPtr++];
|
||||
topj:
|
||||
|
@ -253,6 +253,10 @@ int ListEvalIntsub1(char *SRC) { // 1st Priority
|
|||
return CB_Ticks( SRC ); //
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
return CBint_GraphYStr( SRC, 1 );
|
||||
|
||||
case 0xFFFFFFF5 : // IsExist(
|
||||
|
@ -345,7 +349,8 @@ int ListEvalIntsub1(char *SRC) { // 1st Priority
|
|||
case 0xFFFFFFDF : // Version
|
||||
return CB_Version(); //
|
||||
|
||||
// case 0xFFFFFF90 : // F Result
|
||||
case 0xFFFFFF90 : // F Result
|
||||
CB_F_Result( SRC );
|
||||
case 0xFFFFFF91 : // F Start
|
||||
case 0xFFFFFF92 : // F End
|
||||
case 0xFFFFFF93 : // F pitch
|
||||
|
@ -610,57 +615,9 @@ int ListEvalIntsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
( c == 0xFFFFFFC1 )) { // Ran#
|
||||
result = EvalFxInt2( &fMULint, &resultflag, &resultreg, result, ListEvalIntsub4( SRC ) ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x40: // Mat A[a,b]
|
||||
case 0xFFFFFF84 : // Vct A[a,b]
|
||||
case 0x51: // List 1[a]
|
||||
case 0x3A: // MOD(a,b)
|
||||
case 0x3C: // GCD(a,b)
|
||||
case 0x3D: // LCM(a,b)
|
||||
case 0xFFFFFF8F: // Getkey
|
||||
case 0xFFFFFF85: // logab(a,b)
|
||||
case 0xFFFFFF86: // RndFix(n,digit)
|
||||
case 0xFFFFFF87: // RanInt#(st,en)
|
||||
case 0xFFFFFFB3 : // Not
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
case 0x00: // Xmin
|
||||
case 0x01: // Xmax
|
||||
case 0x02: // Xscl
|
||||
case 0x04: // Ymin
|
||||
case 0x05: // Ymax
|
||||
case 0x06: // Yscl
|
||||
case 0x08: // Thetamin
|
||||
case 0x09: // Thetamax
|
||||
case 0x0A: // Thetaptch
|
||||
case 0x0B: // Xfct
|
||||
case 0x0C: // Yfct
|
||||
case 0x20 : // Max( List 1 ) Max( { 1,2,3,4,5 } )
|
||||
case 0x21 : // Det Mat A
|
||||
case 0x29 : // Sigma( X, X, 1, 1000)
|
||||
case 0x2D : // Min( List 1 ) Min( { 1,2,3,4,5 } )
|
||||
case 0x2E : // Mean( List 1 ) Mean( { 1,2,3,4,5 } )
|
||||
case 0x47 : // Fill(
|
||||
case 0x4A : // List>Mat( List 1, List 2,..) -> List 5
|
||||
case 0x4B : // Mat>List( Mat A, m) -> List n
|
||||
case 0x4C : // Sum List 1
|
||||
case 0x4D : // Prod List 1
|
||||
case 0x58 : // ElemSize( Mat A )
|
||||
case 0x59 : // RowSize( Mat A )
|
||||
case 0x5A : // ColSize( Mat A )
|
||||
case 0x5B : // MatBase( Mat A )
|
||||
case 0x6A : // List1
|
||||
case 0x6B : // List2
|
||||
case 0x6C : // List3
|
||||
case 0x6D : // List4
|
||||
case 0x6E : // List5
|
||||
case 0x6F : // List6
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
result = EvalFxInt2( &fMULint, &resultflag, &resultreg, result, ListEvalIntsub4( SRC ) ) ;
|
||||
break;
|
||||
default:
|
||||
goto exitj;
|
||||
break;
|
||||
}
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
|
|
|
@ -88,6 +88,9 @@ void CB_ErrMsg(int ErrNo) {
|
|||
case ReceiveERR:
|
||||
ERROR(" Receive ERROR");
|
||||
break;
|
||||
case InvalidType:
|
||||
ERROR(" Invalid Type");
|
||||
break;
|
||||
|
||||
case NextWithoutForERR:
|
||||
ERROR("Next without For");
|
||||
|
|
|
@ -953,7 +953,7 @@ unsigned int Explorer( int size, char *folder )
|
|||
}
|
||||
break;
|
||||
case KEY_CTRL_F4: // Copy file
|
||||
if ( strlen(search) ) {
|
||||
if ( searchmode ) {
|
||||
lowercase=1-lowercase;
|
||||
if ( alphalock == 0 ) PutAlphamode1(CursorStyle);
|
||||
key = 0;
|
||||
|
@ -982,7 +982,7 @@ unsigned int Explorer( int size, char *folder )
|
|||
key=SelectChar( &ContinuousSelect);
|
||||
if ( alphalock == 0 ) PutAlphamode1(CursorStyle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch ( filemode ) {
|
||||
case 0:
|
||||
if ( nofile ) break;
|
||||
|
|
|
@ -154,7 +154,7 @@ void DispGenuineCmdMenu(){
|
|||
Fkey_Icon( FKeyNo1, 540 ); // Fkey_dspRB( FKeyNo1, "Stat"); // DrawStat
|
||||
Fkey_Icon( FKeyNo2, 541 ); // Fkey_dspRB( FKeyNo2, "Grph"); // DrawGraph
|
||||
FkeyClear( FKeyNo3 );
|
||||
FkeyClear( FKeyNo4 );
|
||||
Fkey_Icon( FKeyNo4, 545 ); // Fkey_dspRB( FKeyNo4, "Table"); // DispF-Tbl
|
||||
FkeyClear( FKeyNo5 );
|
||||
Fkey_dspRB( FKeyNo6, "Disp"); // Disp
|
||||
break;
|
||||
|
@ -547,7 +547,8 @@ void DispGenuineCmdMenu(){
|
|||
Fkey_Icon( FKeyNo1, 69 ); // Fkey_dspRB( FKeyNo1, "STORE");
|
||||
Fkey_Icon( FKeyNo2, 70 ); // Fkey_dspRB( FKeyNo2, "RECALL");
|
||||
Fkey_Icon( FKeyNo3, 240 ); // Fkey_dspRB( FKeyNo3, " fn ");
|
||||
Fkey_Icon( FKeyNo4, 241 ); // Fkey_dispN( FKeyNo4, " SEE");
|
||||
// Fkey_Icon( FKeyNo4, 241 ); // Fkey_dispN( FKeyNo4, " SEE");
|
||||
Fkey_Icon( FKeyNo4, 389 ); // Fkey_dispR( FKeyNo4,"EDIT");
|
||||
FkeyClear( FKeyNo5 );
|
||||
FkeyClear( FKeyNo6 );
|
||||
break;
|
||||
|
@ -698,7 +699,7 @@ void DispGenuineCmdMenu(){
|
|||
Fkey_Icon( FKeyNo1, 627 ); // Fkey_dspRB( FKeyNo1, "Start");
|
||||
Fkey_Icon( FKeyNo2, 628 ); // Fkey_dspRB( FKeyNo2, "End");
|
||||
Fkey_Icon( FKeyNo3, 629 ); // Fkey_dspRB( FKeyNo3, "Pitch");
|
||||
// Fkey_Icon( FKeyNo4, 630 ); // Fkey_dspRB( FKeyNo3, "Result");
|
||||
Fkey_Icon( FKeyNo4, 630 ); // Fkey_dspRB( FKeyNo3, "Result");
|
||||
FkeyClear( FKeyNo4 );
|
||||
FkeyClear( FKeyNo5 );
|
||||
FkeyClear( FKeyNo6 );
|
||||
|
@ -1159,7 +1160,7 @@ void DispGenuineCmdMenu(){
|
|||
Fkey_Icon( FKeyNo2, 180 ); // Fkey_dispR( FKeyNo2, "CPLX");
|
||||
Fkey_Icon( FKeyNo3, 762 ); // Fkey_dispR( FKeyNo3, "SWin");
|
||||
Fkey_Icon( FKeyNo4, 178 ); // Fkey_dispR( FKeyNo3, "LIST");
|
||||
FkeyClear( FKeyNo5 );
|
||||
Fkey_Icon( FKeyNo5, 764 ); // Fkey_dispR( FKeyNo5, "TBL-VAR");
|
||||
Fkey_Icon(FKeyNo6, 6 ); //Fkey_DISPN( FKeyNo6," \xE6\x9E ");
|
||||
break;
|
||||
case 3:
|
||||
|
@ -1300,6 +1301,18 @@ void DispGenuineCmdMenu(){
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case CMD_SETUP_TVAR:
|
||||
switch ( CommandPage ) {
|
||||
case 0:
|
||||
Fkey_Icon( FKeyNo1, 500 ); // Fkey_dspRB( FKeyNo1, "Range");
|
||||
Fkey_Icon( FKeyNo2, 162 ); // Fkey_dspRB( FKeyNo2, "List");
|
||||
FkeyClear( FKeyNo3 );
|
||||
FkeyClear( FKeyNo4 );
|
||||
FkeyClear( FKeyNo5 );
|
||||
FkeyClear( FKeyNo6 );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -367,6 +367,10 @@ void GetGenuineCmdF1( unsigned int *code ){
|
|||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0xF91C;return; // File
|
||||
} break;
|
||||
case CMD_SETUP_TVAR:
|
||||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0xF788;return; // VarRange
|
||||
} break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -357,6 +357,10 @@ void GetGenuineCmdF2( unsigned int *code ){
|
|||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0xF909;return; // a+bi
|
||||
} break;
|
||||
case CMD_SETUP_TVAR:
|
||||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0xF91D;return; // VarList
|
||||
} break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -29,6 +29,10 @@ void GetGenuineCmdF4( unsigned int *code ){
|
|||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0xF91E;return; // ClrMat
|
||||
} break;
|
||||
case CMD_PRGM_DISP:
|
||||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0xF72E;return; // DispF-Tbl
|
||||
} break;
|
||||
case CMD_PRGM_REL:
|
||||
switch ( CommandPage ) {
|
||||
case 0: (*code)=0x3C;return; // <
|
||||
|
|
|
@ -170,6 +170,7 @@ void GetGenuineCmdF5( unsigned int *code ){
|
|||
switch ( CommandPage ) {
|
||||
case 0: CommandType=CMD_SETUP_LABL;CommandPage=0;break;
|
||||
case 1: CommandType=CMD_SETUP_BACK;CommandPage=0;break;
|
||||
case 2: CommandType=CMD_SETUP_TVAR;CommandPage=0;break;
|
||||
case 3: (*code)=0xF94F;return; // Wait
|
||||
case 4: (*code)=0x7FDF;return; // Version
|
||||
} break;
|
||||
|
|
223
fx/CBZ_setup.c
223
fx/CBZ_setup.c
|
@ -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 14.", MINI_OVER );
|
||||
PrintMini(13*6+2, 2*8+1, (unsigned char*)"build 15.", MINI_OVER );
|
||||
PrintMini( 2*6+2, 3*8+1, (unsigned char*)"(Casio Basic compatible+)", MINI_OVER );
|
||||
|
||||
// if ( ( UseHiddenRAM ) && ( IsHiddenRAM ) ) {
|
||||
|
@ -1174,12 +1174,12 @@ void TimePrintSetMode(int set){ // 1:on 0:off
|
|||
}
|
||||
//--------------------------------------------------------------
|
||||
|
||||
int SelectNum1( char*msg, int n ,int min, int max, unsigned int *key ) { //
|
||||
int SelectNum1sub( char *msg0, char*msg, int n ,int min, int max, unsigned int *key ) { //
|
||||
char buffer[32];
|
||||
int n0=n;
|
||||
PopUpWin(3);
|
||||
FkeyClearAll();
|
||||
locate( 3,3); Print((unsigned char *)"Select Number");
|
||||
locate( 3,3); Print((unsigned char *)msg0);
|
||||
locate( 3,5); sprintf(buffer,"%s[%d~%d]:",msg,min,max); Print((unsigned char *)buffer);
|
||||
while (1) {
|
||||
n=InputNumD(3+strlen(buffer), 5, log10(max)+1, n, " ", REV_OFF, FLOAT_OFF, EXP_OFF, &(*key)); // 0123456789
|
||||
|
@ -1189,6 +1189,9 @@ int SelectNum1( char*msg, int n ,int min, int max, unsigned int *key ) { //
|
|||
}
|
||||
return n ; // ok
|
||||
}
|
||||
int SelectNum1( char*msg, int n ,int min, int max, unsigned int *key ) { //
|
||||
return SelectNum1sub( "Select Number", msg, n ,min, max, &(*key) );
|
||||
}
|
||||
int SelectNum2( char*msg, int n ,int min, int max ) { //
|
||||
unsigned int key;
|
||||
return SelectNum1( msg, n ,min, max, &key );
|
||||
|
@ -1229,53 +1232,54 @@ int SelectNum4( int n ) { //
|
|||
|
||||
#define SETUP_Angle 0
|
||||
#define SETUP_ComplexMode 1
|
||||
#define SETUP_FuncType 2
|
||||
#define SETUP_DrawType 3
|
||||
#define SETUP_Coord 4
|
||||
#define SETUP_Grid 5
|
||||
#define SETUP_Axes 6
|
||||
#define SETUP_Label 7
|
||||
#define SETUP_Derivative 8
|
||||
#define SETUP_Background 9
|
||||
#define SETUP_Sketch 10
|
||||
#define SETUP_Display 11
|
||||
#define SETUP_Help 12
|
||||
#define SETUP_RecoverSetup 13
|
||||
#define SETUP_CMDINPUT 14
|
||||
#define SETUP_MaxMemMode 15
|
||||
#define SETUP_EnableExtFONT 16
|
||||
#define SETUP_EditExtFont 17
|
||||
#define SETUP_EditFontSize 18
|
||||
#define SETUP_EditTopLine 19
|
||||
#define SETUP_EditIndent 20
|
||||
#define SETUP_EditLineNum 21
|
||||
#define SETUP_EditListChar 22
|
||||
#define SETUP_UseHidnRam 23
|
||||
#define SETUP_HidnRamInit 24
|
||||
#define SETUP_ExtendPict 25
|
||||
#define SETUP_ExtendList 26
|
||||
#define SETUP_DisableDebugMode 27
|
||||
#define SETUP_ExitDebugModeCheck 28
|
||||
#define SETUP_BreakStop 29
|
||||
#define SETUP_ExecTimeDsp 30
|
||||
#define SETUP_IfEndCheck 31
|
||||
#define SETUP_ACBreak 32
|
||||
#define SETUP_ForceReturnMode 33
|
||||
#define SETUP_Key1sttime 34
|
||||
#define SETUP_KeyReptime 35
|
||||
#define SETUP_SkipUpDown 36
|
||||
#define SETUP_MatDspmode 37
|
||||
#define SETUP_Matrixbase 38
|
||||
#define SETUP_DATE 39
|
||||
#define SETUP_TIME 40
|
||||
#define SETUP_RootFolder 41
|
||||
#define SETUP_AutoSaveMode 42
|
||||
#define SETUP_Forceg1msave 43
|
||||
#define SETUP_Pictmode 44
|
||||
#define SETUP_Storagemode 45
|
||||
#define SETUP_RefrshCtlDD 46
|
||||
#define SETUP_DefaultWaitcount 47
|
||||
#define SETUP_Executemode 48
|
||||
#define SETUP_Variable 2
|
||||
#define SETUP_FuncType 3
|
||||
#define SETUP_DrawType 4
|
||||
#define SETUP_Coord 5
|
||||
#define SETUP_Grid 6
|
||||
#define SETUP_Axes 7
|
||||
#define SETUP_Label 8
|
||||
#define SETUP_Derivative 9
|
||||
#define SETUP_Background 10
|
||||
#define SETUP_Sketch 11
|
||||
#define SETUP_Display 12
|
||||
#define SETUP_Help 13
|
||||
#define SETUP_RecoverSetup 14
|
||||
#define SETUP_CMDINPUT 15
|
||||
#define SETUP_MaxMemMode 16
|
||||
#define SETUP_EnableExtFONT 17
|
||||
#define SETUP_EditExtFont 18
|
||||
#define SETUP_EditFontSize 19
|
||||
#define SETUP_EditTopLine 20
|
||||
#define SETUP_EditIndent 21
|
||||
#define SETUP_EditLineNum 22
|
||||
#define SETUP_EditListChar 23
|
||||
#define SETUP_UseHidnRam 24
|
||||
#define SETUP_HidnRamInit 25
|
||||
#define SETUP_ExtendPict 26
|
||||
#define SETUP_ExtendList 27
|
||||
#define SETUP_DisableDebugMode 28
|
||||
#define SETUP_ExitDebugModeCheck 29
|
||||
#define SETUP_BreakStop 30
|
||||
#define SETUP_ExecTimeDsp 31
|
||||
#define SETUP_IfEndCheck 32
|
||||
#define SETUP_ACBreak 33
|
||||
#define SETUP_ForceReturnMode 34
|
||||
#define SETUP_Key1sttime 35
|
||||
#define SETUP_KeyReptime 36
|
||||
#define SETUP_SkipUpDown 37
|
||||
#define SETUP_MatDspmode 38
|
||||
#define SETUP_Matrixbase 39
|
||||
#define SETUP_DATE 40
|
||||
#define SETUP_TIME 41
|
||||
#define SETUP_RootFolder 42
|
||||
#define SETUP_AutoSaveMode 43
|
||||
#define SETUP_Forceg1msave 44
|
||||
#define SETUP_Pictmode 45
|
||||
#define SETUP_Storagemode 46
|
||||
#define SETUP_RefrshCtlDD 47
|
||||
#define SETUP_DefaultWaitcount 48
|
||||
#define SETUP_Executemode 49
|
||||
|
||||
const char *CBmode[] ={"DBL#","INT%","CPLX"};
|
||||
|
||||
|
@ -1341,45 +1345,55 @@ int SetupG(int select, int limit){ // ----------- Setup
|
|||
locate(14, cnt-scrl); Print((unsigned char*)cplxmode[ComplexMode]);
|
||||
} cnt++;
|
||||
if ( scrl <=(cnt-1) ) {
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Func Type :"); // 2
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Variable :"); // 2
|
||||
locate(14, cnt-scrl);
|
||||
if ( VarListRange==0 ) {
|
||||
Print((unsigned char*)"Range");
|
||||
} else {
|
||||
sprintf((char*)buffer,"List%d", VarListRange);
|
||||
Print((unsigned char*)buffer);
|
||||
}
|
||||
} cnt++;
|
||||
if ( scrl <=(cnt-1) ) {
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Func Type :"); // 3
|
||||
locate(14, cnt-scrl); Print((unsigned char*)FuncTypeStr[(int)FuncType]);
|
||||
} cnt++;
|
||||
if ( scrl <=(cnt-1) ) {
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Draw Type :"); // 3
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Draw Type :"); // 4
|
||||
locate(14, cnt-scrl); Print((unsigned char*)draw[(int)DrawType]);
|
||||
} cnt++;
|
||||
if ( scrl <=(cnt-1) ) {
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Coord :"); // 4
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Coord :"); // 5
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[Coord]);
|
||||
} cnt++;
|
||||
if ( scrl <=(cnt-1) ) {
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Grid :"); // 5
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Grid :"); // 6
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[Grid]);
|
||||
} cnt++;
|
||||
if ( scrl <=(cnt-1) ) {
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Axes :"); // 6
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Axes :"); // 7
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[Axes]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Label :"); // 7
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Label :"); // 8
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[Label]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Derivative :"); // 8
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Derivative :"); // 9
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[Derivative]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Background :"); // 9
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Background :"); // 10
|
||||
if ( BG_Pict_No == 0 ) sprintf((char*)buffer,"None");
|
||||
else sprintf((char*)buffer,"Pict%d",BG_Pict_No);
|
||||
locate(14,cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Sketch Line :"); // 10
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Sketch Line :"); // 11
|
||||
locate(14, cnt-scrl); Print((unsigned char*)style[S_L_Style]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Display :"); // 11
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Display :"); // 12
|
||||
locate(14, cnt-scrl); Print((unsigned char*)display[CB_Round.MODE]);
|
||||
buffer[0]='\0';
|
||||
sprintf((char*)buffer,"%d",CB_Round.DIGIT);
|
||||
|
@ -1388,130 +1402,130 @@ int SetupG(int select, int limit){ // ----------- Setup
|
|||
Print((unsigned char*)ENGmode[ENG]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Syntax Help :"); // 12
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Syntax Help :"); // 13
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[CB_HelpOn]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"SetupRecover:"); // 13
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"SetupRecover:"); // 14
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[CB_RecoverSetup]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Command Inpt:"); // 14
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Command Inpt:"); // 15
|
||||
locate(14, cnt-scrl); Print((unsigned char*)CMDinput[CommandInputMethod + 2*CB_fx5800P]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Max Mem Mode:"); // 15
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Max Mem Mode:"); // 16
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[MaxMemMode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"EnableExFont:"); // 16
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"EnableExFont:"); // 17
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[EnableExtFont]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
CB_Print_ext( 1,cnt-scrl,(unsigned char*)"Edit ExtFont:", EditExtFont ); // 17
|
||||
CB_Print_ext( 1,cnt-scrl,(unsigned char*)"Edit ExtFont:", EditExtFont ); // 18
|
||||
CB_Print_ext(14,cnt-scrl,(unsigned char*)onoff[EditExtFont], EditExtFont );
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"EditFontSize:"); // 18
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"EditFontSize:"); // 19
|
||||
locate(14, cnt-scrl); Print((unsigned char*)CharSize[EditFontSize & 0x0F ]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Hide StatBar:"); // 19
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Hide StatBar:"); // 20
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[EditTopLine]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Edit +Indent:"); // 20
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Edit +Indent:"); // 21
|
||||
locate(14, cnt-scrl); Print((unsigned char*)EditIndent[CB_EditIndent]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Edit LineNum:"); // 21
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Edit LineNum:"); // 22
|
||||
locate(14, cnt-scrl); Print((unsigned char*)onoff[(EditFontSize & 0xF0)>>4 ]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"EditListChar:"); // 22
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"EditListChar:"); // 23
|
||||
CB_Print(14, cnt-scrl, (unsigned char*)ListChar[EditListChar]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Use Hidn RAM:"); // 23
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Use Hidn RAM:"); // 24
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[UseHiddenRAM&0x0F]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"HidnRAM Init:"); // 24
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"HidnRAM Init:"); // 25
|
||||
locate(14,cnt-scrl);
|
||||
if ( UseHiddenRAM&0x0F ) Print((unsigned char*)onoff[!(UseHiddenRAM&0xF0)]);
|
||||
else Print((unsigned char*)"---");
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Max Pict No:"); // 25
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Max Pict No:"); // 26
|
||||
sprintf((char*)buffer,"%d",20+ExtendPict);
|
||||
locate(14, cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Max List 52\xA9:"); // 26
|
||||
locate( 1, cnt-scrl); Print((unsigned char*)"Max List 52\xA9:"); // 27
|
||||
sprintf((char*)buffer,"%d (%d)", ExtendList+1, 52+ExtendList*52);
|
||||
locate(14, cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"AT DebugMode:"); // 27
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"AT DebugMode:"); // 28
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[!DisableDebugMode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"ExitDM PopUp:"); // 28
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"ExitDM PopUp:"); // 29
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[ExitDebugModeCheck&1]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Break Stop :"); // 29
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Break Stop :"); // 30
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[BreakCheckDefault]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Exec TimeDsp:"); // 30
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Exec TimeDsp:"); // 31
|
||||
locate(14,cnt-scrl); Print((unsigned char*)ExecTimemode[TimeDsp]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"IfEnd Check :"); // 31
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"IfEnd Check :"); // 32
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[CheckIfEnd]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"ACBreak :"); // 32
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"ACBreak :"); // 33
|
||||
locate(14,cnt-scrl); Print((unsigned char*)onoff[ACBreak]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Force Return:"); // 33
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Force Return:"); // 34
|
||||
locate(14,cnt-scrl); Print((unsigned char*)Returnmode[ForceReturnMode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Key 1st time:"); // 34
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Key 1st time:"); // 35
|
||||
sprintf((char*)buffer,"%dms",KeyRepeatFirstCount*25);
|
||||
locate(14,cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Key Rep time:"); // 35
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Key Rep time:"); // 36
|
||||
sprintf((char*)buffer,"%dms",KeyRepeatNextCount*25);
|
||||
locate(14,cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"SkipUp/Down :"); // 36
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"SkipUp/Down :"); // 37
|
||||
sprintf((char*)buffer,"%d",PageUpDownNum);
|
||||
locate(14,cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Mat Dsp mode:"); // 37
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Mat Dsp mode:"); // 38
|
||||
locate(14,cnt-scrl); Print((unsigned char*)Matmode[MatXYmode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Matrix base :"); // 38
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Matrix base :"); // 39
|
||||
locate(14,cnt-scrl); Print((unsigned char*)Matbase[MatBaseDefault]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){ // DATE // 39
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){ // DATE // 40
|
||||
DateCursorY = cnt-scrl+0x900;
|
||||
DateTimePrintSub();
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){ // TIME // 40
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){ // TIME // 41
|
||||
TimeCursorY = cnt-scrl+0x900;
|
||||
DateTimePrintSub();
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Root Folder:"); // 41
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Root Folder:"); // 42
|
||||
locate(13,cnt-scrl);
|
||||
if ( root2[0] == '\0' ) {
|
||||
Print((unsigned char*)"/");
|
||||
|
@ -1520,42 +1534,46 @@ int SetupG(int select, int limit){ // ----------- Setup
|
|||
}
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Auto file save:"); // 42
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Auto file save:"); // 43
|
||||
locate(16,cnt-scrl); Print((unsigned char*)onoff[AutoSaveMode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Force g1m save:"); // 43
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Force g1m save:"); // 44
|
||||
locate(16,cnt-scrl); Print((unsigned char*)onoff[ForceG1Msave]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Pict mode :"); // 44
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Pict mode :"); // 45
|
||||
locate(14,cnt-scrl); if ( StorageMode & 1 ) Print((unsigned char*)PictmodeSD[PictMode]); else Print((unsigned char*)Pictmode[PictMode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Storage mode:"); // 45
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Storage mode:"); // 46
|
||||
locate(14,cnt-scrl); Print((unsigned char*)Storagemode[StorageMode]);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"RefrshCtl DD:"); // 46
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"RefrshCtl DD:"); // 47
|
||||
locate(14,cnt-scrl); Print((unsigned char*)DDmode[RefreshCtrl]);
|
||||
buffer[0]='\0';
|
||||
sprintf((char*)buffer,"%2d/128",Refreshtime+1);
|
||||
if ( RefreshCtrl ) PrintMini(17*6+2,(cnt-scrl)*8-6,(unsigned char*)buffer,MINI_OVER);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Wait count :"); // 47
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Wait count :"); // 48
|
||||
if ( DefaultWaitcount == 0 ) sprintf((char*)buffer,"No Wait");
|
||||
else sprintf((char*)buffer,"%d",DefaultWaitcount);
|
||||
locate(14,cnt-scrl); Print((unsigned char*)buffer);
|
||||
} cnt++;
|
||||
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Execute mode:"); // 48
|
||||
locate( 1,cnt-scrl); Print((unsigned char*)"Execute mode:"); // 49
|
||||
locate(14,cnt-scrl); Print((unsigned char*)CBmode[CB_INTDefault]);
|
||||
}
|
||||
y = select-scrl;
|
||||
Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
||||
// VBattDispSub( 14*6+2, 7*8+2 );
|
||||
switch (select) {
|
||||
case SETUP_Variable:
|
||||
Fkey_Icon( FKeyNo1, 376 ); // Fkey_dispN( FKeyNo1, "Range");
|
||||
Fkey_Icon( FKeyNo2, 178 ); // Fkey_dispR( FKeyNo2, "LIST");
|
||||
break;
|
||||
case SETUP_DrawType: // Draw Type
|
||||
Fkey_Icon( FKeyNo1, 357 ); // Fkey_dispN( FKeyNo1, "Con");
|
||||
Fkey_Icon( FKeyNo2, 358 ); // Fkey_dispN( FKeyNo2, "Plot");
|
||||
|
@ -1802,6 +1820,9 @@ int SetupG(int select, int limit){ // ----------- Setup
|
|||
case SETUP_ComplexMode: // complex mode
|
||||
ComplexMode = 0; // Real
|
||||
break;
|
||||
case SETUP_Variable:
|
||||
VarListRange=0;
|
||||
break;
|
||||
case SETUP_FuncType: // function Type
|
||||
switch ( subselect ) {
|
||||
case 0:
|
||||
|
@ -2009,6 +2030,12 @@ int SetupG(int select, int limit){ // ----------- Setup
|
|||
case SETUP_ComplexMode: // complex mode
|
||||
ComplexMode = 1; // a+bi
|
||||
break;
|
||||
case SETUP_Variable:
|
||||
i = VarListRange; if ( i==0 ) i=1;
|
||||
i = SelectNum1sub("Select List No.","List",i,0,ExtListMax,&key);
|
||||
if ( key==KEY_CTRL_EXIT ) break;
|
||||
VarListRange = i;
|
||||
break;
|
||||
case SETUP_FuncType: // function Type
|
||||
switch ( subselect ) {
|
||||
case 0:
|
||||
|
|
68
fx/CB_Eval.c
68
fx/CB_Eval.c
|
@ -523,7 +523,7 @@ void MatOprand1( char *SRC, int reg, int *dimA, int *dimB ){ // base:0 0- ba
|
|||
int base;
|
||||
MatOprand1sub( SRC, reg, &(*dimA) );
|
||||
if ( MatAry[reg].SizeA == 0 ) {
|
||||
DimMatrixSub( reg, DefaultElemetSize(), (*dimA)-1+MatBase, 1, MatBase ); // new matrix
|
||||
DimMatrixSub( reg, DefaultElemetSize(), (*dimA)+1-MatBase, 1, MatBase ); // new matrix
|
||||
if ( ErrorNo ) return ; // error
|
||||
}
|
||||
base=MatAry[reg].Base;
|
||||
|
@ -1352,6 +1352,10 @@ double Evalsub1(char *SRC) { // 1st Priority
|
|||
return result ;
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
return CB_GraphYStr( SRC, 0 );
|
||||
|
||||
case 0xFFFFFFF5 : // IsExist(
|
||||
|
@ -1447,7 +1451,9 @@ double Evalsub1(char *SRC) { // 1st Priority
|
|||
case 0xFFFFFFDF : // Version
|
||||
return CB_Version(); //
|
||||
|
||||
// case 0xFFFFFF90 : // F Result
|
||||
case 0xFFFFFF90 : // F Result
|
||||
dspflag=4; // 2:value 3:Mat 4:List
|
||||
return 0;
|
||||
case 0xFFFFFF91 : // F Start
|
||||
case 0xFFFFFF92 : // F End
|
||||
case 0xFFFFFF93 : // F pitch
|
||||
|
@ -1836,61 +1842,9 @@ double Evalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
( c == 0xFFFFFF8D )) { // integral
|
||||
result *= Evalsub4( SRC ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x40: // Mat A[a,b]
|
||||
case 0xFFFFFF84 : // Vct A[a,b]
|
||||
case 0x51: // List 1[a]
|
||||
case 0x3A: // MOD(a,b)
|
||||
case 0x3C: // GCD(a,b)
|
||||
case 0x3D: // LCM(a,b)
|
||||
case 0xFFFFFF8F: // Getkey
|
||||
case 0xFFFFFF85: // logab(a,b)
|
||||
case 0xFFFFFF86: // RndFix(n,digit)
|
||||
case 0xFFFFFF87: // RanInt#(st,en)
|
||||
case 0xFFFFFF88 : // RanList#(n) ->ListAns
|
||||
case 0xFFFFFF89 : // RanBin#(n,p[,m]) ->ListAns
|
||||
case 0xFFFFFF8A : // RanNorm#(sd,mean[,n]) ->ListAns
|
||||
case 0xFFFFFFB3 : // Not
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
case 0x00: // Xmin
|
||||
case 0x01: // Xmax
|
||||
case 0x02: // Xscl
|
||||
case 0x04: // Ymin
|
||||
case 0x05: // Ymax
|
||||
case 0x06: // Yscl
|
||||
case 0x08: // Thetamin
|
||||
case 0x09: // Thetamax
|
||||
case 0x0A: // Thetaptch
|
||||
case 0x0B: // Xfct
|
||||
case 0x0C: // Yfct
|
||||
case 0x20 : // Max( List 1 ) Max( { 1,2,3,4,5 } )
|
||||
case 0x21 : // Det Mat A
|
||||
case 0x29 : // Sigma( X, X, 1, 1000)
|
||||
case 0x2D : // Min( List 1 ) Min( { 1,2,3,4,5 } )
|
||||
case 0x2E : // Mean( List 1 ) Mean( { 1,2,3,4,5 } )
|
||||
case 0x47 : // Fill(
|
||||
case 0x4A : // List>Mat( List 1, List 2,..) -> List 5
|
||||
case 0x4B : // Mat>List( Mat A, m) -> List n
|
||||
case 0x4C : // Sum List 1
|
||||
case 0x4D : // Prod List 1
|
||||
case 0x58 : // ElemSize( Mat A )
|
||||
case 0x59 : // RowSize( Mat A )
|
||||
case 0x5A : // ColSize( Mat A )
|
||||
case 0x5B : // MatBase( Mat A )
|
||||
case 0x6A : // List1
|
||||
case 0x6B : // List2
|
||||
case 0x6C : // List3
|
||||
case 0x6D : // List4
|
||||
case 0x6E : // List5
|
||||
case 0x6F : // List6
|
||||
case 0x26 : // dx/dy
|
||||
result *= Evalsub4( SRC ) ;
|
||||
break;
|
||||
default:
|
||||
goto exitj;
|
||||
break;
|
||||
}
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
result *= Evalsub4( SRC ) ;
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
|
|
|
@ -169,3 +169,12 @@ int CB_SigmaInt( char *SRC ) ; // Sigma(X^2,X,1.10)
|
|||
double CB_Integral( char *SRC ); // Integral( FX, start, end, sci )
|
||||
double CB_Differ( char *SRC ); // Differ( FX, start, end, sci )
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
extern short VarListRange;
|
||||
|
||||
|
||||
void CB_VarList( char *SRC ) ;
|
||||
void CB_VarRange( char *SRC ) ;
|
||||
void CB_F_Result( char *SRC ) ;
|
||||
void CB_DispF_Tbl( char *SRC ) ;
|
||||
|
|
|
@ -196,3 +196,4 @@ double CB_Differ( char *SRC ){ // Differ( FX, tol )
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,368 @@
|
|||
#include "CB.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Graph Function ( originaled by Colon )
|
||||
//-----------------------------------------------------------------------------
|
||||
// Strings -> Graph function memory
|
||||
//-----------------------------------------------------------------------------
|
||||
void StoreGraphSub( char *MatAryC, int FuncNo ){
|
||||
MatAryC[4-1] = 0x02;
|
||||
switch ( FuncNo % 5 ) {
|
||||
case 1:
|
||||
MatAryC[5-1] = 0x00;
|
||||
MatAryC[6-1] = 0x1F;
|
||||
break;
|
||||
case 2:
|
||||
MatAryC[5-1] = 0xF8;
|
||||
MatAryC[6-1] = 0x00;
|
||||
break;
|
||||
case 3:
|
||||
MatAryC[5-1] = 0x07;
|
||||
MatAryC[6-1] = 0xE0;
|
||||
break;
|
||||
case 4:
|
||||
MatAryC[5-1] = 0xF8;
|
||||
MatAryC[6-1] = 0x1F;
|
||||
break;
|
||||
case 5:
|
||||
MatAryC[5-1] = 0x00;
|
||||
MatAryC[6-1] = 0x00;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void StoreGraphY( char *fstring, int FuncNo ){
|
||||
int i,j,k;
|
||||
int reg=defaultGraphAry;
|
||||
int Counter;
|
||||
int oplen;
|
||||
char *MatAryC ;
|
||||
|
||||
MatAryC = GetStrYFnPtrSub( reg, FuncNo, defaultGraphArySize ) ;
|
||||
if ( StrLen( fstring, &oplen ) == 0 ) {
|
||||
for ( Counter=1-1; Counter<=7-1; Counter++ ) MatAryC[Counter] = 0;
|
||||
} else {
|
||||
MatAryC[1-1] = 0x01;
|
||||
switch ( FuncType ) {
|
||||
case 4:
|
||||
MatAryC[2-1] = 0x98; break;
|
||||
case 5:
|
||||
MatAryC[2-1] = 0x88; break;
|
||||
case 6:
|
||||
MatAryC[2-1] = 0xB8; break;
|
||||
case 7:
|
||||
MatAryC[2-1] = 0xA8; break;
|
||||
default:
|
||||
MatAryC[2-1] = 0x08; break;
|
||||
}
|
||||
MatAryC[3-1] = 0xBC;
|
||||
if ( ( StrLen( MatAryC+6, &oplen ) == 0 ) ) StoreGraphSub( MatAryC, FuncNo );
|
||||
OpcodeCopy( MatAryC+6, fstring, MatAry[reg].SizeB-1-6 );
|
||||
}
|
||||
}
|
||||
|
||||
void StoreGraphr( char *fstring, int FuncNo ){
|
||||
int i,j,k;
|
||||
int reg=defaultGraphAry;
|
||||
int Counter;
|
||||
int oplen;
|
||||
char *MatAryC ;
|
||||
|
||||
MatAryC = GetStrYFnPtrSub( reg, FuncNo, defaultGraphArySize ) ;
|
||||
if ( StrLen( fstring, &oplen ) == 0 ) {
|
||||
for ( Counter=1-1; Counter<=7-1; Counter++ ) MatAryC[Counter] = 0;
|
||||
} else {
|
||||
MatAryC[1-1] = 0x04;
|
||||
MatAryC[2-1] = 0x0A;
|
||||
MatAryC[3-1] = 0xBC;
|
||||
if ( ( StrLen( MatAryC+6, &oplen ) == 0 ) ) StoreGraphSub( MatAryC, FuncNo );
|
||||
OpcodeCopy( MatAryC+6, fstring, MatAry[reg].SizeB-1-6 );
|
||||
}
|
||||
}
|
||||
|
||||
void StoreGraphXt( char *fstring, int FuncNo ){
|
||||
int i,j,k;
|
||||
int reg=defaultGraphAry;
|
||||
int Counter;
|
||||
int oplen;
|
||||
char *MatAryC ;
|
||||
char separator[]="\xF6\x00";
|
||||
char *StrXt,*StrYt;
|
||||
char buffer[256];
|
||||
|
||||
MatAryC = GetStrYFnPtrSub( reg, FuncNo, defaultGraphArySize ) ;
|
||||
StrSplit( MatAryC+6, separator, 1, 256-1 );
|
||||
StrXt = MatrixPtr( CB_MatListAnsreg, 1, 1 );
|
||||
if ( MatAry[CB_MatListAnsreg].SizeA == 1 ) MatElementPlus( CB_MatListAnsreg, 2, MatAry[CB_MatListAnsreg].SizeB ); // matrix +
|
||||
StrYt = MatrixPtr( CB_MatListAnsreg, 2, 1 );
|
||||
|
||||
if ( StrLen( fstring, &oplen ) == 0 ) {
|
||||
if ( ( ( ReadMatrixInt( reg, FuncNo, 1)*256 + ReadMatrixInt( reg, FuncNo, 2) ) == 0x0409 ) && StrYt[0] ) {
|
||||
goto opcpy;
|
||||
} else {
|
||||
for ( Counter=1-1; Counter<=7-1; Counter++ ) MatAryC[Counter] = 0;
|
||||
}
|
||||
} else {
|
||||
MatAryC[1-1] = 0x04 ;
|
||||
MatAryC[2-1] = 0x09 ;
|
||||
MatAryC[3-1] = 0xBC ;
|
||||
if ( ( StrLen( MatAryC+6, &oplen ) == 0 ) ) StoreGraphSub( MatAryC, FuncNo );
|
||||
opcpy:
|
||||
buffer[0]='\0';
|
||||
StrJoin( buffer, fstring, 256-1 );
|
||||
StrJoin( buffer, separator, 256-1 );
|
||||
StrJoin( buffer, StrYt, 256-1 );
|
||||
OpcodeCopy( MatAryC+6, buffer, 256-1 );
|
||||
}
|
||||
}
|
||||
|
||||
void StoreGraphYt( char *fstring, int FuncNo ){
|
||||
int i,j,k;
|
||||
int reg=defaultGraphAry;
|
||||
int Counter;
|
||||
int oplen;
|
||||
char *MatAryC ;
|
||||
char separator[]="\xF6\x00";
|
||||
char *StrXt,*StrYt;
|
||||
char buffer[256];
|
||||
|
||||
MatAryC = GetStrYFnPtrSub( reg, FuncNo, defaultGraphArySize ) ;
|
||||
StrSplit( MatAryC+6, separator, 1, 256-1 );
|
||||
StrXt = MatrixPtr( CB_MatListAnsreg, 1, 1 );
|
||||
if ( MatAry[CB_MatListAnsreg].SizeA == 1 ) MatElementPlus( CB_MatListAnsreg, 2, MatAry[CB_MatListAnsreg].SizeB ); // matrix +
|
||||
StrYt = MatrixPtr( CB_MatListAnsreg, 2, 1 );
|
||||
|
||||
if ( StrLen( fstring, &oplen ) == 0 ) {
|
||||
if ( ( ( ReadMatrixInt( reg, FuncNo, 1)*256 + ReadMatrixInt( reg, FuncNo, 2) ) == 0x0409 ) && StrXt[0] ) {
|
||||
goto opcpy;
|
||||
} else {
|
||||
for ( Counter=1-1; Counter<=7-1; Counter++ ) MatAryC[Counter] = 0;
|
||||
}
|
||||
} else {
|
||||
MatAryC[1-1] = 0x04 ;
|
||||
MatAryC[2-1] = 0x09 ;
|
||||
MatAryC[3-1] = 0xBC ;
|
||||
if ( ( StrLen( MatAryC+6, &oplen ) == 0 ) ) StoreGraphSub( MatAryC, FuncNo );
|
||||
if ( StrYt[0]==0 ) StrXt[0]=0;
|
||||
opcpy:
|
||||
buffer[0]='\0';
|
||||
StrJoin( buffer, StrXt, 256-1 );
|
||||
StrJoin( buffer, separator, 256-1 );
|
||||
StrJoin( buffer, fstring, 256-1 );
|
||||
OpcodeCopy( MatAryC+6, buffer, 256-1 );
|
||||
}
|
||||
}
|
||||
|
||||
void StoreGraphX( char *fstring, int FuncNo ){
|
||||
int i,j,k;
|
||||
int reg=defaultGraphAry;
|
||||
int Counter;
|
||||
int oplen;
|
||||
char *MatAryC ;
|
||||
|
||||
MatAryC = GetStrYFnPtrSub( reg, FuncNo, defaultGraphArySize ) ;
|
||||
if ( StrLen( fstring, &oplen ) == 0 ) {
|
||||
for ( Counter=1-1; Counter<=7-1; Counter++ ) MatAryC[Counter] = 0;
|
||||
} else {
|
||||
MatAryC[1-1] = 0x02;
|
||||
switch ( FuncType ) {
|
||||
case 8:
|
||||
MatAryC[2-1] = 0x98; break;
|
||||
case 9:
|
||||
MatAryC[2-1] = 0x88; break;
|
||||
case 10:
|
||||
MatAryC[2-1] = 0xB8; break;
|
||||
case 11:
|
||||
MatAryC[2-1] = 0xA8; break;
|
||||
default:
|
||||
MatAryC[2-1] = 0x08; break;
|
||||
}
|
||||
MatAryC[3-1] = 0xBC;
|
||||
if ( ( StrLen( MatAryC+6, &oplen ) == 0 ) ) StoreGraphSub( MatAryC, FuncNo );
|
||||
OpcodeCopy( MatAryC+6, fstring, MatAry[reg].SizeB-1-6 );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Graph function memory -> Strings
|
||||
//-----------------------------------------------------------------------------
|
||||
char* ReadGraphY( int FuncNo ) {
|
||||
int reg=defaultGraphAry;
|
||||
char *MatAryC ;
|
||||
MatAryC = MatrixPtr( reg, FuncNo, 1 );
|
||||
if ( MatAryC[1-1]!=0x01 ) return NULL;
|
||||
return MatAryC +6;
|
||||
}
|
||||
char* ReadGraphX( int FuncNo ) {
|
||||
int reg=defaultGraphAry;
|
||||
char *MatAryC ;
|
||||
MatAryC = MatrixPtr( reg, FuncNo, 1 );
|
||||
if ( MatAryC[1-1]!=0x02 ) return NULL;
|
||||
return MatAryC +6;
|
||||
}
|
||||
|
||||
char* ReadGraphr( int FuncNo ) {
|
||||
int reg=defaultGraphAry;
|
||||
char *MatAryC ;
|
||||
MatAryC = MatrixPtr( reg, FuncNo, 1 );
|
||||
if ( ( MatAryC[1-1]!=0x04 ) || ( MatAryC[2-1]!=0x09 ) ) return NULL;
|
||||
return MatAryC +6;
|
||||
}
|
||||
|
||||
char* ReadGraphXt( int FuncNo ) {
|
||||
int reg=defaultGraphAry;
|
||||
char *MatAryC ;
|
||||
char separator[]="\xF6\x00";
|
||||
char *StrXt,*StrYt;
|
||||
int maxsize=MatAry[reg].SizeB-1-6;
|
||||
char *buffer;
|
||||
|
||||
MatAryC = MatrixPtr( reg, FuncNo, 1 );
|
||||
if ( ( MatAryC[1-1]!=0x04 ) || ( MatAryC[2-1]!=0x09 ) ) return NULL;
|
||||
return MatAryC +=6;
|
||||
}
|
||||
|
||||
|
||||
char * StrSearch_0xF6( char *str, int maxlen ) { // search 0xF6 -> return ptr
|
||||
int i;
|
||||
for (i=0; i<maxlen; i++) {
|
||||
if ( str[i] == 0xFFFFFFF6 ) return str+i;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
char* ReadGraphYt( int FuncNo ) {
|
||||
int reg=defaultGraphAry;
|
||||
char *MatAryC ;
|
||||
char separator[]="\xF6\x00";
|
||||
char *StrXt,*StrYt;
|
||||
int maxsize=MatAry[reg].SizeB-1-6;
|
||||
|
||||
MatAryC = MatrixPtr( reg, FuncNo, 1 );
|
||||
if ( ( MatAryC[1-1]!=0x04 ) || ( MatAryC[2-1]!=0x09 ) ) return NULL;
|
||||
MatAryC +=6;
|
||||
if ( MatAryC[0] == 0x00 ) return NULL;
|
||||
return StrSearch_0xF6( MatAryC, maxsize )+1;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------
|
||||
void CB_GraphFunc( char *SRC, int c ) {
|
||||
int n,d;
|
||||
int reg=defaultGraphAry;
|
||||
char *buffer;
|
||||
if ( ( 0x63<=c ) && ( c<=0x6F) ) {
|
||||
switch ( c ) {
|
||||
case 0x63: d= 0; break; // Y=Type
|
||||
case 0x64: d= 1; break; // r=Type
|
||||
case 0x65: d= 2; break; // ParamType
|
||||
// case 0x66: //
|
||||
case 0x67: d= 3; break; // X=Type
|
||||
case 0x68: d= 8; break; // X>Type
|
||||
case 0x69: d= 9; break; // X<Type
|
||||
case 0x6A: d= 4; break; // Y>Type
|
||||
case 0x6B: d= 5; break; // Y<Type
|
||||
case 0x6C: d= 6; break; // Y>=Type
|
||||
case 0x6D: d= 7; break; // Y<=Type
|
||||
case 0x6E: d=10; break; // X>=Type
|
||||
case 0x6F: d=11; break; // X<=Type
|
||||
}
|
||||
FuncType = d;
|
||||
return;
|
||||
}
|
||||
if ( c == 0xFFFFFF98 ) { // SetG-Color
|
||||
c = CB_GetColor( SRC );
|
||||
if ( SRC[ExecPtr]!=',' ) { CB_Error(SyntaxERR); goto exit; } // Syntax error
|
||||
ExecPtr++;
|
||||
buffer = GetStrYFnPtr( SRC, reg, defaultGraphAryN, defaultGraphArySize ) ;
|
||||
if ( buffer[7-1] ) {
|
||||
buffer[5-1] = c/256;
|
||||
buffer[6-1] = c%256;
|
||||
}
|
||||
goto exit;
|
||||
}
|
||||
|
||||
d=SRC[ExecPtr];
|
||||
if ( ( d==':' ) || ( d==0x0D ) || ( d==0x0C ) || ( d==0x00 ) ) {
|
||||
n = MatAry[reg].SizeA;
|
||||
if ( n ) {
|
||||
while ( n ) {
|
||||
buffer = MatrixPtr( reg, n, 1 ) ;
|
||||
switch ( c ) {
|
||||
case 0xFFFFFFC8: // G SelOn
|
||||
buffer[3-1] |= 0x80;
|
||||
break;
|
||||
case 0xFFFFFFC9: // T SelOn
|
||||
buffer[3-1] |= 0x20;
|
||||
break;
|
||||
case 0xFFFFFFD8: // G SelOff
|
||||
buffer[3-1] &= 0x7F;
|
||||
break;
|
||||
case 0xFFFFFFD9: // T SelOff
|
||||
buffer[3-1] &= 0xDF;
|
||||
break;
|
||||
}
|
||||
n--;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
buffer = GetStrYFnPtr( SRC, reg, defaultGraphAryN, defaultGraphArySize ) ;
|
||||
if ( buffer[7-1] == 0 ) goto exit;
|
||||
switch ( c ) {
|
||||
case 0x2B: // NormalG
|
||||
buffer[4-1] = 0x02;
|
||||
break;
|
||||
case 0x2C: // ThickG
|
||||
buffer[4-1] = 0x03;
|
||||
break;
|
||||
case 0x2D: // BrokenThickG
|
||||
buffer[4-1] = 0x05;
|
||||
break;
|
||||
case 0x3F: // DotG
|
||||
buffer[4-1] = 0x08;
|
||||
break;
|
||||
case 0xFFFFFFF5: // ThinG
|
||||
buffer[4-1] = 0x12;
|
||||
break;
|
||||
case 0xFFFFFFC8: // G SelOn
|
||||
buffer[3-1] |= 0x80;
|
||||
break;
|
||||
case 0xFFFFFFC9: // T SelOn
|
||||
buffer[3-1] |= 0x20;
|
||||
break;
|
||||
case 0xFFFFFFD8: // G SelOff
|
||||
buffer[3-1] &= 0x7F;
|
||||
break;
|
||||
case 0xFFFFFFD9: // T SelOff
|
||||
buffer[3-1] &= 0xDF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
exit:
|
||||
dspflag=0;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
short VarListRange=0;
|
||||
|
||||
void CB_VarList( char *SRC ) {
|
||||
VarListRange = CB_EvalInt( SRC );
|
||||
}
|
||||
void CB_VarRange( char *SRC ) {
|
||||
VarListRange=0;
|
||||
}
|
||||
|
||||
void CB_F_Result( char *SRC ) {
|
||||
dspflag=4; // 2:value 3:mat 4:list
|
||||
}
|
||||
|
||||
void CB_DispF_Tbl( char *SRC ) {
|
||||
|
||||
if ( VarListRange ) {
|
||||
} else {
|
||||
}
|
||||
|
||||
}
|
|
@ -188,7 +188,7 @@ double ListEvalsub1(char *SRC) { // 1st Priority
|
|||
int resultreg;
|
||||
int resultflag;
|
||||
|
||||
dspflag=2; // 2:value 3:list 4:mat
|
||||
dspflag=2; // 2:value 3:Mat 4:List
|
||||
|
||||
c = SRC[ExecPtr++];
|
||||
topj:
|
||||
|
@ -353,6 +353,10 @@ double ListEvalsub1(char *SRC) { // 1st Priority
|
|||
return result ;
|
||||
|
||||
case 0xFFFFFFF0 : // GraphY str
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
return CB_GraphYStr( SRC, 1 );
|
||||
|
||||
case 0xFFFFFFF5 : // IsExist(
|
||||
|
@ -448,7 +452,8 @@ double ListEvalsub1(char *SRC) { // 1st Priority
|
|||
case 0xFFFFFFDF : // Version
|
||||
return CB_Version(); //
|
||||
|
||||
// case 0xFFFFFF90 : // F Result
|
||||
case 0xFFFFFF90 : // F Result
|
||||
CB_F_Result( SRC );
|
||||
case 0xFFFFFF91 : // F Start
|
||||
case 0xFFFFFF92 : // F End
|
||||
case 0xFFFFFF93 : // F pitch
|
||||
|
@ -837,61 +842,9 @@ double ListEvalsub5(char *SRC) { // 5th Priority abbreviated multiplication
|
|||
( c == 0xFFFFFF8D )) { // integral
|
||||
result = EvalFxDbl2( &fMUL, &resultflag, &resultreg, result, ListEvalsub4( SRC ) ) ;
|
||||
} else if ( c == 0x7F ) { // 7F..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
case 0x40: // Mat A[a,b]
|
||||
case 0xFFFFFF84 : // Vct A[a,b]
|
||||
case 0x51: // List 1[a]
|
||||
case 0x3A: // MOD(a,b)
|
||||
case 0x3C: // GCD(a,b)
|
||||
case 0x3D: // LCM(a,b)
|
||||
case 0xFFFFFF8F: // Getkey
|
||||
case 0xFFFFFF85: // logab(a,b)
|
||||
case 0xFFFFFF86: // RndFix(n,digit)
|
||||
case 0xFFFFFF87: // RanInt#(st,en)
|
||||
case 0xFFFFFF88 : // RanList#(n) ->ListAns
|
||||
case 0xFFFFFF89 : // RanBin#(n,p[,m]) ->ListAns
|
||||
case 0xFFFFFF8A : // RanNorm#(sd,mean[,n]) ->ListAns
|
||||
case 0xFFFFFFB3 : // Not
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
case 0x00: // Xmin
|
||||
case 0x01: // Xmax
|
||||
case 0x02: // Xscl
|
||||
case 0x04: // Ymin
|
||||
case 0x05: // Ymax
|
||||
case 0x06: // Yscl
|
||||
case 0x08: // Thetamin
|
||||
case 0x09: // Thetamax
|
||||
case 0x0A: // Thetaptch
|
||||
case 0x0B: // Xfct
|
||||
case 0x0C: // Yfct
|
||||
case 0x20 : // Max( List 1 ) Max( { 1,2,3,4,5 } )
|
||||
case 0x21 : // Det Mat A
|
||||
case 0x29 : // Sigma( X, X, 1, 1000)
|
||||
case 0x2D : // Min( List 1 ) Min( { 1,2,3,4,5 } )
|
||||
case 0x2E : // Mean( List 1 ) Mean( { 1,2,3,4,5 } )
|
||||
case 0x47 : // Fill(
|
||||
case 0x4A : // List>Mat( List 1, List 2,..) -> List 5
|
||||
case 0x4B : // Mat>List( Mat A, m) -> List n
|
||||
case 0x4C : // Sum List 1
|
||||
case 0x4D : // Prod List 1
|
||||
case 0x58 : // ElemSize( Mat A )
|
||||
case 0x59 : // RowSize( Mat A )
|
||||
case 0x5A : // ColSize( Mat A )
|
||||
case 0x5B : // MatBase( Mat A )
|
||||
case 0x6A : // List1
|
||||
case 0x6B : // List2
|
||||
case 0x6C : // List3
|
||||
case 0x6D : // List4
|
||||
case 0x6E : // List5
|
||||
case 0x6F : // List6
|
||||
case 0x26 : // dx/dy
|
||||
c = SRC[ExecPtr+1];
|
||||
if ( ( 0xFFFFFFB0 <= c ) && ( c <= 0xFFFFFFBD ) ) goto exitj; // And Or Not xor
|
||||
result = EvalFxDbl2( &fMUL, &resultflag, &resultreg, result, ListEvalsub4( SRC ) ) ;
|
||||
break;
|
||||
default:
|
||||
goto exitj;
|
||||
break;
|
||||
}
|
||||
} else if ( c == 0xFFFFFFF7 ) { // F7..
|
||||
c = SRC[ExecPtr+1];
|
||||
switch ( c ) {
|
||||
|
|
|
@ -2862,18 +2862,18 @@ void CB_List( char *SRC ) { // {1.2,3,4,5,6} -> List Ans
|
|||
int base=MatBase;
|
||||
int ElementSize;
|
||||
|
||||
exptr=ExecPtr;
|
||||
c=SkipSpcCR(SRC);
|
||||
n=1;
|
||||
while ( 0 ) {
|
||||
data=CB_Cplx_EvalDbl( SRC );
|
||||
c=SkipSpc(SRC);
|
||||
if ( c != ',' ) break;
|
||||
ExecPtr++;
|
||||
SkipSpcCR(SRC);
|
||||
n++;
|
||||
}
|
||||
ExecPtr=exptr;
|
||||
// exptr=ExecPtr;
|
||||
// c=SkipSpcCR(SRC);
|
||||
// n=1;
|
||||
// while ( 0 ) {
|
||||
// data=CB_Cplx_EvalDbl( SRC );
|
||||
// c=SkipSpc(SRC);
|
||||
// if ( c != ',' ) break;
|
||||
// ExecPtr++;
|
||||
// SkipSpcCR(SRC);
|
||||
// n++;
|
||||
// }
|
||||
// ExecPtr=exptr;
|
||||
|
||||
|
||||
dimA=64;
|
||||
|
@ -2895,7 +2895,7 @@ void CB_List( char *SRC ) { // {1.2,3,4,5,6} -> List Ans
|
|||
ExecPtr++; // "," skip
|
||||
SkipSpcCR(SRC);
|
||||
m++;
|
||||
if ( m >= dimA ) MatElementPlus( reg, m, 1 ); // List element +
|
||||
if ( m > dimA ) MatElementPlus( reg, m+1-base, 1 ); // List element +
|
||||
}
|
||||
if ( c == '}' ) ExecPtr++;
|
||||
MatAry[reg].SizeA = m+1-base;
|
||||
|
|
241
fx/CB_Str.c
241
fx/CB_Str.c
|
@ -584,11 +584,16 @@ char* GetStrYFnPtrSub( int reg, int dimA, int dimB ) {
|
|||
buffer=MatrixPtr( reg, dimA, dimB );
|
||||
return buffer;
|
||||
}
|
||||
int GetStrYFnNo( char *SRC, int reg, int aryN, int aryMax ) { // -> StringNo
|
||||
int dimA,dimB;
|
||||
if (CB_INT==1) dimA = EvalIntsub1( SRC ); else if (CB_INT==0) dimA = Evalsub1( SRC ); else dimA = Cplx_Evalsub1( SRC ).real; // str no : Mat s[n,len]
|
||||
if ( ( dimA<1 ) || ( aryN<dimA ) ) { CB_Error(ArgumentERR); return 0; } // Argument error
|
||||
return dimA;
|
||||
}
|
||||
char* GetStrYFnPtr( char *SRC, int reg, int aryN, int aryMax ) {
|
||||
int dimA,dimB;
|
||||
char *buffer;
|
||||
if (CB_INT==1) dimA = EvalIntsub1( SRC ); else if (CB_INT==0) dimA = Evalsub1( SRC ); else dimA = Cplx_Evalsub1( SRC ).real; // str no : Mat s[n,len]
|
||||
if ( ( dimA<1 ) || ( aryN<dimA ) ) { CB_Error(ArgumentERR); return 0; } // Argument error
|
||||
dimA = GetStrYFnNo( SRC, reg, aryN, aryMax );
|
||||
return GetStrYFnPtrSub( reg, dimA, aryMax );
|
||||
}
|
||||
|
||||
|
@ -730,7 +735,6 @@ char* CB_GetOpStrSub( char *SRC ,int *maxlen, int c ) { // String -> buffer ret
|
|||
int reg,dimA,dimB;
|
||||
int aryN,aryMax;
|
||||
char *buffer;
|
||||
int type;
|
||||
|
||||
switch ( c ) {
|
||||
case 1: // """"
|
||||
|
@ -765,22 +769,23 @@ char* CB_GetOpStrSub( char *SRC ,int *maxlen, int c ) { // String -> buffer ret
|
|||
case 0xFFFFFFF4: // GraphX
|
||||
reg=defaultGraphAry;
|
||||
ExecPtr+=2;
|
||||
buffer = GetStrYFnPtr( SRC, reg, defaultGraphAryN, defaultGraphArySize ) +6;
|
||||
type = ( buffer[0]<<8 ) + ( buffer[1] );
|
||||
dimA = GetStrYFnNo( SRC, reg, defaultGraphAryN, defaultGraphArySize );
|
||||
switch ( c ) {
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
c=0x0108; break;
|
||||
buffer = ReadGraphY( dimA ); break;
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
c=0x040A; break;
|
||||
buffer = ReadGraphr( dimA ); break;
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
c=0x0409; break;
|
||||
buffer = ReadGraphXt( dimA ); break;
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
buffer = strstr(buffer,"\xF6\x00");
|
||||
c=0x0409; break;
|
||||
buffer = ReadGraphYt( dimA ); break;
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
c=0x0208; break;
|
||||
buffer = ReadGraphX( dimA ); break;
|
||||
default:
|
||||
buffer = MatrixPtr( reg, dimA, 7 );
|
||||
}
|
||||
(*maxlen)=MatAry[reg].SizeB;
|
||||
if ( buffer == NULL ) CB_Error(InvalidType);
|
||||
(*maxlen)=MatAry[reg].SizeB-6;
|
||||
break;
|
||||
case 0x30: // StrJoin(
|
||||
ExecPtr+=2;
|
||||
|
@ -917,6 +922,7 @@ char* CB_GetOpStr( char *SRC, int *maxoplen ) { // Get opcode String
|
|||
char* CB_GetOpStr_noYFn( char *SRC, int *maxoplen ) { // Get opcode String
|
||||
return CB_GetOpStrSub1( SRC, &(*maxoplen), 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
void StorStrMat( char *SRC ) { // "String" -> $Mat A
|
||||
int reg,dimA,dimB;
|
||||
|
@ -938,26 +944,6 @@ void StorStrStr( char *SRC ) { // "String" -> Sto 1-20
|
|||
OpcodeCopy( MatAryC, CB_CurrentStr, MatAry[reg].SizeB-1 );
|
||||
}
|
||||
|
||||
void StorStrGraphY( char *SRC ) { // "String" -> GraphY 1-5
|
||||
int reg,dimA,dimB;
|
||||
char *MatAryC,*ptr;
|
||||
int size;
|
||||
int c = SRC[ExecPtr-1];
|
||||
reg=defaultGraphAry;
|
||||
MatAryC = GetStrYFnPtr( SRC, reg, defaultGraphAryN, defaultGraphArySize ) +6;
|
||||
if ( ErrorNo ) return ; // error
|
||||
size = MatAry[reg].SizeB-1-6;
|
||||
if ( ( c==0xFFFFFFF2 ) ) { // Yt
|
||||
ptr=strstr(MatAryC, "\xF6\x00");
|
||||
if ( ptr == NULL ) {
|
||||
MatAryC[0]='\0';
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
OpcodeCopy( MatAryC, CB_CurrentStr, MatAry[reg].SizeB-1-6 );
|
||||
}
|
||||
|
||||
void StorStrFn( char *SRC ) { // "String" -> fn 1-9
|
||||
int reg,dimA,dimB;
|
||||
char *MatAryC;
|
||||
|
@ -967,6 +953,30 @@ void StorStrFn( char *SRC ) { // "String" -> fn 1-9
|
|||
OpcodeCopy( MatAryC, CB_CurrentStr, MatAry[reg].SizeB-1 );
|
||||
}
|
||||
|
||||
void StorStrGraphY( char *SRC ) { // "String" -> GraphY 1-5
|
||||
int reg,dimA,dimB;
|
||||
char *MatAryC,*ptr;
|
||||
int size;
|
||||
int c = SRC[ExecPtr-1];
|
||||
reg=defaultGraphAry;
|
||||
dimA = GetStrYFnNo( SRC, reg, defaultGraphAryN, defaultGraphArySize );
|
||||
// MatAryC = GetStrYFnPtrSub( reg, dimA, defaultGraphArySize ) +6;
|
||||
if ( ErrorNo ) return ; // error
|
||||
switch ( c ) {
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
StoreGraphY( CB_CurrentStr, dimA ); break;
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
StoreGraphr( CB_CurrentStr, dimA ); break;
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
StoreGraphXt( CB_CurrentStr, dimA ); break;
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
StoreGraphYt( CB_CurrentStr, dimA ); break;
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
StoreGraphX( CB_CurrentStr, dimA ); break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void StorStrList0( char *SRC ) { // "String" -> List n[0] ->List "ABS" ->List Str1
|
||||
int reg,reg2=0;
|
||||
int exbuf;
|
||||
|
@ -1045,7 +1055,7 @@ int CB_IsStrStor( char *SRC, int execptr ) {
|
|||
} else
|
||||
if ( c == 0x7F ) {
|
||||
c=SRC[execptr+1];
|
||||
if ( c == 0xFFFFFFF0 ) return c; // GraphY
|
||||
if ( ( 0xFFFFFFF0 <= c ) && ( c <= 0xFFFFFFF4 ) ) return c; // GraphY
|
||||
else
|
||||
if ( ( c == 0x51 ) || ( (0x6A<=c)&&(c<=0x6F) ) ) { // List [0]?
|
||||
extmp = ExecPtr;
|
||||
|
@ -1274,26 +1284,6 @@ double CB_EvalStrDBL( char *buffer, int calcflag ) { // Eval str -> double
|
|||
double result;
|
||||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
if (CB_INT==1) result = EvalIntsub14( buffer );
|
||||
else
|
||||
if (CB_INT==0) result = Evalsub14( buffer );
|
||||
else result = Cplx_Evalsub14( buffer ).real;
|
||||
}
|
||||
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
|
||||
}
|
||||
ExecPtr=execptr;
|
||||
if ( ErrorNo ) { ErrorPtr=ExecPtr; return 0; }
|
||||
return result;
|
||||
}
|
||||
double CB_EvalStrDBL2( char *buffer, int calcflag ) { // Eval str -> double
|
||||
double result;
|
||||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
if (CB_INT==1) result = EvalIntsubTop( buffer );
|
||||
else
|
||||
|
@ -1315,26 +1305,6 @@ complex CB_Cplx_EvalStrDBL( char *buffer, int calcflag ) { // Eval str -> doubl
|
|||
complex result;
|
||||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
if (CB_INT==1) result = Int2Cplx( EvalIntsub14( buffer ) );
|
||||
else
|
||||
if (CB_INT==0) result = Dbl2Cplx( Evalsub14( buffer ) );
|
||||
else result = Cplx_Evalsub14( 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
|
||||
}
|
||||
ExecPtr=execptr;
|
||||
if ( ErrorNo ) { ErrorPtr=ExecPtr; return Int2Cplx(0); }
|
||||
return result;
|
||||
}
|
||||
complex CB_Cplx_EvalStrDBL2( char *buffer, int calcflag ) { // Eval str -> double
|
||||
complex result;
|
||||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
if (CB_INT==1) result = Int2Cplx( EvalIntsubTop( buffer ) );
|
||||
else
|
||||
|
@ -1356,20 +1326,6 @@ int CB_EvalStrInt( char *buffer, int calcflag ) { // Eval str -> Int
|
|||
int result;
|
||||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
result = EvalIntsub14( buffer );
|
||||
}
|
||||
else {
|
||||
result = ListEvalIntsubTop( buffer ); // List calc
|
||||
}
|
||||
ExecPtr=execptr;
|
||||
if ( ErrorNo ) { ErrorPtr=ExecPtr; return 0; }
|
||||
return result;
|
||||
}
|
||||
int CB_EvalStrInt2( char *buffer, int calcflag ) { // Eval str -> Int
|
||||
int result;
|
||||
int execptr=ExecPtr;
|
||||
ExecPtr = 0;
|
||||
if ( calcflag == 0 ) {
|
||||
result = EvalIntsubTop( buffer );
|
||||
}
|
||||
|
@ -1424,23 +1380,57 @@ int CBint_EvalStr( char *SRC, int calcflag ) { // Exp( Eval str -> int
|
|||
return result;
|
||||
}
|
||||
|
||||
char* CB_GraphYStrSub( char *SRC, int reg ) { // defaultGraphAry or defaultFnAry
|
||||
int CB_GraphFnStrNo( char *SRC, int reg ) { // defaultGraphAry or defaultFnAry
|
||||
int dimA,dimB;
|
||||
int base=MatAry[reg].Base;
|
||||
dimA=EvalIntsub1( SRC );
|
||||
if (CB_INT==1) dimA = EvalIntsub1( SRC ); else if (CB_INT==0) dimA = Evalsub1( SRC ); else dimA = Cplx_Evalsub1( SRC ).real;
|
||||
if ( ( dimA < base ) || ( dimA > MatAry[reg].SizeA-1+base ) ) { CB_Error(MemoryERR); } // Memory error
|
||||
return dimA;
|
||||
}
|
||||
char* CB_FnStrSub( char *SRC ) { // efaultFnAry
|
||||
int dimA,dimB;
|
||||
int reg=defaultFnAry;
|
||||
int base=MatAry[reg].Base;
|
||||
dimA = CB_GraphFnStrNo( SRC, reg );
|
||||
if ( ErrorNo ) return 0;
|
||||
return MatrixPtr( reg, dimA, base )+ ( reg==defaultGraphAry )*6;
|
||||
}
|
||||
char* CB_GraphStrSub( char *SRC ) { // defaultGraphAry
|
||||
int dimA,dimB;
|
||||
int reg=defaultGraphAry;
|
||||
int base=MatAry[reg].Base;
|
||||
int c = SRC[ExecPtr-1];
|
||||
char *ptr;
|
||||
dimA = CB_GraphFnStrNo( SRC, reg );
|
||||
if ( ErrorNo ) return 0;
|
||||
switch ( c ) {
|
||||
case 0xFFFFFFF0: // GraphY
|
||||
ptr = ReadGraphY( dimA ); break;
|
||||
case 0xFFFFFFF1: // Graphr
|
||||
ptr = ReadGraphr( dimA ); break;
|
||||
case 0xFFFFFFF2: // GraphXt
|
||||
ptr = ReadGraphXt( dimA ); break;
|
||||
case 0xFFFFFFF3: // GraphYt
|
||||
ptr = ReadGraphYt( dimA ); break;
|
||||
case 0xFFFFFFF4: // GraphX
|
||||
ptr = ReadGraphX( dimA ); break;
|
||||
default:
|
||||
ptr = MatrixPtr( defaultGraphAry, dimA, 7 );
|
||||
}
|
||||
if ( ptr == NULL ) CB_Error(InvalidType);
|
||||
return ptr;
|
||||
}
|
||||
void GraphFnEQ( char *SRC ){
|
||||
int c=SRC[ExecPtr];
|
||||
if ( ( ( 'A'<=c )&&( c<='Z' ) ) || ( ( 'a'<=c )&&( c<='z' ) ) ) {
|
||||
if ( SRC[ExecPtr+1] == '=' ) ExecPtr+=2;
|
||||
}
|
||||
}
|
||||
|
||||
double CB_GraphYStr( char *SRC, int calcflag ) { // defaultGraphAry
|
||||
double result;
|
||||
double tmpX = regX.real;
|
||||
char *ptr = CB_GraphYStrSub( SRC, defaultGraphAry ) ;
|
||||
char *ptr = CB_GraphStrSub( SRC ) ;
|
||||
if ( ErrorNo ) return 0;
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
|
@ -1452,26 +1442,10 @@ double CB_GraphYStr( char *SRC, int calcflag ) { // defaultGraphAry
|
|||
regX.real = tmpX;
|
||||
return result;
|
||||
}
|
||||
double CB_FnStr( char *SRC, int calcflag ) { // defaultFnAry
|
||||
double result;
|
||||
double tmpX = regX.real;
|
||||
char *ptr = CB_GraphYStrSub( SRC, defaultFnAry ) ;
|
||||
if ( ErrorNo ) return 0;
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
GraphFnEQ( SRC );
|
||||
regX.real = CB_EvalDbl(SRC);
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
}
|
||||
result = CB_EvalStrDBL2( ptr, calcflag );
|
||||
regX.real = tmpX;
|
||||
return result;
|
||||
}
|
||||
|
||||
complex CB_Cplx_GraphYStr( char *SRC, int calcflag ) { // defaultGraphAry
|
||||
complex result;
|
||||
complex tmpX = regX;
|
||||
char *ptr = CB_GraphYStrSub( SRC, defaultGraphAry ) ;
|
||||
char *ptr = CB_GraphStrSub( SRC ) ;
|
||||
if ( ErrorNo ) return Int2Cplx(0);
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
|
@ -1483,26 +1457,10 @@ complex CB_Cplx_GraphYStr( char *SRC, int calcflag ) { // defaultGraphAry
|
|||
regX = tmpX;
|
||||
return result;
|
||||
}
|
||||
complex CB_Cplx_FnStr( char *SRC, int calcflag ) { // defaultFnAry
|
||||
complex result;
|
||||
complex tmpX = regX;
|
||||
char *ptr = CB_GraphYStrSub( SRC, defaultFnAry ) ;
|
||||
if ( ErrorNo ) return Int2Cplx(0);
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
GraphFnEQ( SRC );
|
||||
regX = CB_Cplx_EvalDbl(SRC);
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
}
|
||||
result = CB_Cplx_EvalStrDBL2( ptr, calcflag );
|
||||
regX = tmpX;
|
||||
return result;
|
||||
}
|
||||
|
||||
int CBint_GraphYStr( char *SRC, int calcflag ) { // defaultGraphAry
|
||||
int result;
|
||||
int tmpintX = regintX;
|
||||
char *ptr = CB_GraphYStrSub( SRC, defaultGraphAry ) ;
|
||||
char *ptr = CB_GraphStrSub( SRC ) ;
|
||||
if ( ErrorNo ) return 0;
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
|
@ -1514,10 +1472,41 @@ int CBint_GraphYStr( char *SRC, int calcflag ) { // defaultGraphAry
|
|||
regintX = tmpintX;
|
||||
return result;
|
||||
}
|
||||
|
||||
double CB_FnStr( char *SRC, int calcflag ) { // defaultFnAry
|
||||
double result;
|
||||
double tmpX = regX.real;
|
||||
char *ptr = CB_FnStrSub( SRC ) ;
|
||||
if ( ErrorNo ) return 0;
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
GraphFnEQ( SRC );
|
||||
regX.real = CB_EvalDbl(SRC);
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
}
|
||||
result = CB_EvalStrDBL( ptr, calcflag );
|
||||
regX.real = tmpX;
|
||||
return result;
|
||||
}
|
||||
complex CB_Cplx_FnStr( char *SRC, int calcflag ) { // defaultFnAry
|
||||
complex result;
|
||||
complex tmpX = regX;
|
||||
char *ptr = CB_FnStrSub( SRC ) ;
|
||||
if ( ErrorNo ) return Int2Cplx(0);
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
ExecPtr++;
|
||||
GraphFnEQ( SRC );
|
||||
regX = CB_Cplx_EvalDbl(SRC);
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
}
|
||||
result = CB_Cplx_EvalStrDBL( ptr, calcflag );
|
||||
regX = tmpX;
|
||||
return result;
|
||||
}
|
||||
int CBint_FnStr( char *SRC, int calcflag ) { // defaultFnAry
|
||||
int result;
|
||||
int tmpintX = regintX;
|
||||
char *ptr = CB_GraphYStrSub( SRC, defaultFnAry ) ;
|
||||
char *ptr = CB_FnStrSub( SRC ) ;
|
||||
if ( ErrorNo ) return 0;
|
||||
if ( calcflag == 0 ) return 0;
|
||||
if ( SRC[ExecPtr] == '(' ) {
|
||||
|
@ -1526,7 +1515,7 @@ int CBint_FnStr( char *SRC, int calcflag ) { // defaultFnAry
|
|||
regintX = CB_EvalInt(SRC);
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
}
|
||||
result = CB_EvalStrInt2( ptr, calcflag );
|
||||
result = CB_EvalStrInt( ptr, calcflag );
|
||||
regintX = tmpintX;
|
||||
return result;
|
||||
}
|
||||
|
|
16
fx/CB_Str.h
16
fx/CB_Str.h
|
@ -46,6 +46,7 @@ void GetNewAry8( int reg, int aryN, int aryMax ) ;
|
|||
int CheckQuotCR( char *SRC, int ptr ) ;
|
||||
int CB_GetQuotOpcode(char *SRC, char *buffer, int Maxlen) ;
|
||||
|
||||
int GetStrYFnNo( char *SRC, int reg, int aryN, int aryMax ) ; // -> StringNo
|
||||
char* GetStrYFnPtr( char *SRC, int reg, int aryN, int aryMax ) ;
|
||||
char* GetStrYFnPtrSub( int reg, int dimA, int dimB ) ;
|
||||
int CB_IsStr( char *SRC, int execptr ) ;
|
||||
|
@ -106,9 +107,24 @@ int CB_Bin( char *SRC ); // Bin(
|
|||
int CB_StrBase( char *SRC ); // StrBase( Str1,base1,base2 )->str2
|
||||
int CB_StrRepl( char *SRC ); // StrRepl( Str1,Str2,Str3,n )->str4
|
||||
|
||||
int StrSplit( char *buffer, char *srcstr, int ptr, int maxlen ); // ptr:1- ->MatAns
|
||||
int CB_StrSplit( char *SRC ) ; // StrStip( "123,4567,89","[n,]) -> MatAns[["1232]["4567"]["89"]]
|
||||
|
||||
|
||||
char* CB_RecallString(int type ); // ----------- Recall String type: 0:string 1:fn 2:GraphY
|
||||
int CB_StoreString(int type, char *clipbuffer ); // ----------- Store String type: 0:string 1:fn 2:GraphY
|
||||
char* CB_SeeString(int type, int *select, char *clipbuffer ); // ----------- See String type: 0:string 1:fn 2:GraphY
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void StoreGraphY( char *fstring, int FuncNo );
|
||||
void StoreGraphr( char *fstring, int FuncNo );
|
||||
void StoreGraphXt( char *fstring, int FuncNo );
|
||||
void StoreGraphYt( char *fstring, int FuncNo );
|
||||
void StoreGraphX( char *fstring, int FuncNo );
|
||||
|
||||
char* ReadGraphY( int FuncNo );
|
||||
char* ReadGraphr( int FuncNo );
|
||||
char* ReadGraphXt( int FuncNo );
|
||||
char* ReadGraphYt( int FuncNo );
|
||||
char* ReadGraphX( int FuncNo );
|
||||
|
||||
|
|
|
@ -188,9 +188,9 @@ char* CB_SeeString(int type, int *select, char *clipbuffer ){ // ----------- See
|
|||
Fkey_Icon( FKeyNo1, 69 ); // Fkey_dispR( FKeyNo1, "STORE");
|
||||
Fkey_Icon( FKeyNo2, 70 ); // Fkey_dispR( FKeyNo2, "RECALL");
|
||||
if ( type==1 ) Fkey_Icon( FKeyNo3, 240 ); // Fkey_dispR( FKeyNo3, " fn ");
|
||||
Fkey_Icon( FKeyNo4, 241 ); // Fkey_dispN( FKeyNo4, " SEE");
|
||||
if ( ReEnterSEE == 0 ) Fkey_Icon( FKeyNo5, 389 ); // Fkey_dispR( FKeyNo5,"EDIT");
|
||||
// if ( ReEnterSEE == 0 ) Fkey_Icon( FKeyNo5, 42 ); // Fkey_dispN( FKeyNo5, "Edit");
|
||||
// Fkey_Icon( FKeyNo4, 241 ); // Fkey_dispN( FKeyNo4, " SEE");
|
||||
// if ( ReEnterSEE == 0 ) Fkey_Icon( FKeyNo5, 389 ); // Fkey_dispR( FKeyNo5,"EDIT");
|
||||
if ( ReEnterSEE == 0 ) Fkey_Icon( FKeyNo4, 42 ); // Fkey_dispN( FKeyNo4, "Edit");
|
||||
|
||||
// Bdisp_PutDisp_DD();
|
||||
|
||||
|
@ -238,7 +238,7 @@ char* CB_SeeString(int type, int *select, char *clipbuffer ){ // ----------- See
|
|||
cont=0;
|
||||
break;
|
||||
|
||||
case KEY_CTRL_F5:
|
||||
case KEY_CTRL_F4:
|
||||
case KEY_CTRL_LEFT:
|
||||
case KEY_CTRL_RIGHT:
|
||||
if ( ReEnterSEE == 0 ) {
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
#define CMD_SETUP_SWIN 0x522
|
||||
#define CMD_SETUP_LIST 0x523
|
||||
#define CMD_SETUP_LOCS 0x524
|
||||
#define CMD_SETUP_TVAR 0x530
|
||||
#define CMD_SETUP_TVAR 0x524 // <- 0x530
|
||||
#define CMD_SETUP_SDSP 0x531
|
||||
#define CMD_SETUP_RESID 0x532
|
||||
#define CMD_SETUP_CPLX 0x521 // <- 0x533
|
||||
|
|
|
@ -486,6 +486,13 @@ int CB_interpreter_sub( char *SRC ) {
|
|||
CB_TryEnd();
|
||||
break;
|
||||
|
||||
case 0x2E: // DispF-Tbl
|
||||
CB_DispF_Tbl( SRC );
|
||||
break;
|
||||
case 0xFFFFFF88: // VarRange
|
||||
CB_VarRange( SRC );
|
||||
break;
|
||||
|
||||
case 0x2B: // NormalG
|
||||
case 0x2C: // ThickG
|
||||
case 0x2D: // BrokenThickG
|
||||
|
@ -699,6 +706,11 @@ int CB_interpreter_sub( char *SRC ) {
|
|||
case 0xFFFFFFF5: // ThinG
|
||||
CB_GraphFunc(SRC,c);
|
||||
break;
|
||||
|
||||
case 0x10: // VarList
|
||||
CB_VarList( SRC );
|
||||
break;
|
||||
|
||||
default:
|
||||
Evalexit2:
|
||||
ExecPtr-=2;
|
||||
|
|
|
@ -2492,77 +2492,6 @@ void CB_RclVWin( char *SRC ) {
|
|||
CB_ChangeViewWindow() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------
|
||||
void CB_GraphFunc( char *SRC, int c ) {
|
||||
int n,d;
|
||||
char *buffer;
|
||||
if ( ( 0x63<=c ) && ( c<=0x6F) ) {
|
||||
switch ( c ) {
|
||||
case 0x63: d= 0; break; // Y=Type
|
||||
case 0x64: d= 1; break; // r=Type
|
||||
case 0x65: d= 2; break; // ParamType
|
||||
// case 0x66: //
|
||||
case 0x67: d= 3; break; // X=Type
|
||||
case 0x68: d= 8; break; // X>Type
|
||||
case 0x69: d= 9; break; // X<Type
|
||||
case 0x6A: d= 4; break; // Y>Type
|
||||
case 0x6B: d= 5; break; // Y<Type
|
||||
case 0x6C: d= 6; break; // Y>=Type
|
||||
case 0x6D: d= 7; break; // Y<=Type
|
||||
case 0x6E: d=10; break; // X>=Type
|
||||
case 0x6F: d=11; break; // X<=Type
|
||||
}
|
||||
FuncType = d;
|
||||
return;
|
||||
}
|
||||
if ( c == 0xFFFFFF98 ) { // SetG-Color
|
||||
c = CB_GetColor( SRC );
|
||||
if ( SRC[ExecPtr]!=',' ) { CB_Error(SyntaxERR); goto exit; } // Syntax error
|
||||
ExecPtr++;
|
||||
buffer = GetStrYFnPtr( SRC, defaultGraphAry, defaultGraphAryN, defaultGraphArySize ) ;
|
||||
if ( buffer[7-1] ) {
|
||||
buffer[5-1] = c/256;
|
||||
buffer[6-1] = c%256;
|
||||
}
|
||||
goto exit;
|
||||
}
|
||||
|
||||
buffer = GetStrYFnPtr( SRC, defaultGraphAry, defaultGraphAryN, defaultGraphArySize ) ;
|
||||
if ( buffer[7-1] == 0 ) goto exit;
|
||||
switch ( c ) {
|
||||
case 0x2B: // NormalG
|
||||
buffer[4-1] = 0x02;
|
||||
break;
|
||||
case 0x2C: // ThickG
|
||||
buffer[4-1] = 0x03;
|
||||
break;
|
||||
case 0x2D: // BrokenThickG
|
||||
buffer[4-1] = 0x05;
|
||||
break;
|
||||
case 0x3F: // DotG
|
||||
buffer[4-1] = 0x08;
|
||||
break;
|
||||
case 0xFFFFFFF5: // ThinG
|
||||
buffer[4-1] = 0x12;
|
||||
break;
|
||||
case 0xFFFFFFC8: // G SelOn
|
||||
buffer[3-1] |= 0x80;
|
||||
break;
|
||||
case 0xFFFFFFC9: // T SelOn
|
||||
buffer[3-1] |= 0x20;
|
||||
break;
|
||||
case 0xFFFFFFD8: // G SelOff
|
||||
buffer[3-1] &= 0x7F;
|
||||
break;
|
||||
case 0xFFFFFFD9: // T SelOff
|
||||
buffer[3-1] &= 0xDF;
|
||||
break;
|
||||
}
|
||||
exit:
|
||||
dspflag=0;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
int GObjectAlign4d( unsigned int n ){ return n; } // align +4byte
|
||||
int GObjectAlign4e( unsigned int n ){ return n; } // align +4byte
|
||||
|
|
Loading…
Reference in New Issue