FX 02.44.1200
This commit is contained in:
parent
c8111f3b6b
commit
71f2aeea45
|
@ -5,7 +5,7 @@
|
|||
[BINDATA] : "FXADDINror.bin"
|
||||
[DISPNAME] : "CBASIC"
|
||||
[APPNAME] : "@CBASIC"
|
||||
[VERSION] : "02.44.6000"
|
||||
[VERSION] : "02.44.1200"
|
||||
[APL_ICON] : "MainIcon.bmp"
|
||||
[MODULE_NUM] : 0
|
||||
[MOD1_TITLE] : "CBASIC"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[DLSimProject]
|
||||
Name=CBASIC
|
||||
Version=02.44.6000
|
||||
Version=02.44.1200
|
||||
Model=:fx-9860G.dlm
|
||||
SourcePath=.
|
||||
MemoryPath=INIT
|
||||
|
|
10
fx/CBZ_inp.c
10
fx/CBZ_inp.c
|
@ -276,7 +276,7 @@ void Cplx_sprintGR1s( char* buffer, complex num, int width, int align_mode, int
|
|||
int i,w,oplen;
|
||||
a = num.real;
|
||||
b = num.imag;
|
||||
if ( b==0 ) sprintGR( buffer, a, width, align_mode, round_mode, round_digit); // real
|
||||
if ( ( CB_INT==0 ) || ( b==0 ) ) sprintGR( buffer, a, width, align_mode, round_mode, round_digit); // real
|
||||
else {
|
||||
if ( ComplexMode == 2 ) { // r_theta
|
||||
r = fpolr( a, b);
|
||||
|
@ -324,7 +324,7 @@ void Cplx_sprintGR1cutlim( char* buffer, complex num, int width, int align_mode,
|
|||
char buffer2[64];
|
||||
char buffer3[64];
|
||||
int k,oplen,rlen,ilen,rwidth,iwidth;
|
||||
if ( ( num.real==0 ) || (num.imag==0) ) {
|
||||
if ( ( CB_INT==0 ) || ( num.real==0 ) || (num.imag==0) ) {
|
||||
Cplx_sprintGR1( buffer, num, width, LEFT_ALIGN, CB_Round.MODE, CB_Round.DIGIT );
|
||||
OpcodeStringToAsciiString( buffer2, buffer, 64-1 );
|
||||
} else {
|
||||
|
@ -384,7 +384,7 @@ void Cplx_sprintGR2( char* buffer, char* buffer2, complex num, int width, int al
|
|||
}
|
||||
goto GR2j;
|
||||
} else
|
||||
if ( b==0 ) {
|
||||
if ( ( CB_INT==0 ) || ( b==0 ) ) {
|
||||
sprintGR( buffer, a, width, align_mode, round_mode, round_digit); // real
|
||||
buffer2[0]='\0';
|
||||
} else { buffer[0]='\0';
|
||||
|
@ -446,7 +446,9 @@ void Cplx_sprintGR2SRC( char* SRC, char* buffer, char* buffer2, complex num, int
|
|||
if ( c==0x07 ) { ExecPtr++; ComplexMode = 2; } // >r_theta
|
||||
}
|
||||
Cplx_sprintGR2(buffer, buffer2, num, width, RIGHT_ALIGN, CB_Round.MODE, CB_Round.DIGIT );
|
||||
CB_CurrentStr=NewStrBuffer(); if ( ErrorNo==0 ) { strcpy( CB_CurrentStr, buffer ); strcat( CB_CurrentStr, buffer2 ); }
|
||||
if ( ComplexMode == 3 ) {
|
||||
CB_CurrentStr=NewStrBuffer(); if ( ErrorNo==0 ) { strcpy( CB_CurrentStr, buffer ); strcat( CB_CurrentStr, buffer2 ); }
|
||||
}
|
||||
ComplexMode=Cplx_bk;
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -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 06", MINI_OVER );
|
||||
PrintMini(13*6+2, 2*8+1, (unsigned char*)" build 12", MINI_OVER );
|
||||
PrintMini( 2*6+2, 3*8+1, (unsigned char*)"(Casio Basic compatible+)", MINI_OVER );
|
||||
|
||||
// if ( ( UseHiddenRAM ) && ( IsHiddenRAM ) ) {
|
||||
|
@ -88,6 +88,9 @@ int CB_System( char *SRC ) { // System( n )
|
|||
case -9:
|
||||
r=TryFlag; if ( r>1 ) r--;
|
||||
break;
|
||||
case -7:
|
||||
r=IsEmu;
|
||||
break;
|
||||
case -5:
|
||||
r=GetMemFree();
|
||||
break;
|
||||
|
@ -875,6 +878,7 @@ int SetVar(int select){ // ----------- Set Variable
|
|||
int opNum=25+3,lnum;
|
||||
int small=0;
|
||||
complex value={0,0};
|
||||
int bk_CB_INT=CB_INT;
|
||||
int VarMode=CB_INT; // 0:double or complex 1:int
|
||||
int hex=0; // 0:normal 1:hex
|
||||
|
||||
|
@ -926,10 +930,21 @@ int SetVar(int select){ // ----------- Set Variable
|
|||
if ( small == 58 ) Fkey_dispN( FKeyNo1, "_Var");
|
||||
|
||||
Fkey_Icon( FKeyNo2, 95 ); // Fkey_dispN( FKeyNo2, "Init");
|
||||
if ( VarMode ) Fkey_dispN_aA( 2, "D<>I"); else Fkey_dispN_Aa( 2, "D<>I");
|
||||
// if ( VarMode ) Fkey_dispN_aA( 2, "D<>I"); else Fkey_dispN_Aa( 2, "D<>I");
|
||||
if ( hex ) Fkey_dispN( FKeyNo6, "\xE6\x91\x44\x65\x63"); else Fkey_dispN( FKeyNo6, "\xE6\x91Hex");
|
||||
|
||||
locate(12,8); SetVarDsp(VarMode);
|
||||
// locate(12,8); SetVarDsp(VarMode);
|
||||
Fkey_dispN( FKeyNo3, "INT%");
|
||||
Fkey_dispN( FKeyNo4, "DBL#");
|
||||
Fkey_dispN( FKeyNo5, "CPLX");
|
||||
if ( VarMode ) {
|
||||
// locate(12,8); Prints((unsigned char*)"[INT%]");
|
||||
// CB_PrintMinix3( 4*12, 8*7+1, (unsigned char*)"[INT%]");
|
||||
Fkey_dspRB( FKeyNo3, "INT%");
|
||||
} else {
|
||||
if ( CB_INT==0 ) Fkey_dspRB( FKeyNo4, "DBL#");
|
||||
else Fkey_dspRB( FKeyNo5, "CPLX");
|
||||
}
|
||||
|
||||
y = (select-seltop) ;
|
||||
Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
||||
|
@ -974,7 +989,19 @@ int SetVar(int select){ // ----------- Set Variable
|
|||
InitVar(value,VarMode, small);
|
||||
break;
|
||||
case KEY_CTRL_F3:
|
||||
VarMode=1-VarMode;
|
||||
CB_INT = 1; // INT#
|
||||
VarMode=1;
|
||||
ExpBuffer[0]='\0';
|
||||
break;
|
||||
case KEY_CTRL_F4:
|
||||
CB_INT = 0; // DBL#
|
||||
VarMode=0;
|
||||
ExpBuffer[0]='\0';
|
||||
break;
|
||||
case KEY_CTRL_F5:
|
||||
CB_INT = 2; // CPLX
|
||||
VarMode=0;
|
||||
ExpBuffer[0]='\0';
|
||||
break;
|
||||
case KEY_CTRL_F6:
|
||||
hex=1-hex;
|
||||
|
|
|
@ -1925,10 +1925,15 @@ int CB_end( char *SRC ){
|
|||
//----------------------------------------------------------------------------------------------
|
||||
|
||||
void CB_FkeyMenu( char *SRC) { // FkeyMenu(6,"ABC",R)
|
||||
char buffer[9];
|
||||
int c;
|
||||
int n;
|
||||
char buffer[64];
|
||||
int i,c,n;
|
||||
int r='N';
|
||||
int direct=0;
|
||||
int IconNo;
|
||||
int ofset=0;
|
||||
int extend=0;
|
||||
int cls=0;
|
||||
int mask=0;
|
||||
|
||||
n=CB_EvalInt( SRC );
|
||||
if ( ( n<1 )||(n>6) ) { CB_Error(ArgumentERR); return; } // Argumenterror
|
||||
|
@ -1938,48 +1943,52 @@ void CB_FkeyMenu( char *SRC) { // FkeyMenu(6,"ABC",R)
|
|||
|
||||
c=CB_IsStr( SRC, ExecPtr );
|
||||
if ( c ) { // string
|
||||
CB_GetLocateStr( SRC, buffer, 8 ); // String -> buffer return
|
||||
CB_GetLocateStr( SRC, buffer, 64-1 ); // String -> buffer return
|
||||
} else { // expression
|
||||
IconNo = CB_EvalInt( SRC );
|
||||
Fkey_Icon( n-1, IconNo);
|
||||
goto exit;
|
||||
direct=1;
|
||||
}
|
||||
c=SRC[ExecPtr];
|
||||
if ( c != ',' ) {
|
||||
// if ( RangeErrorCK( SRC ) ) return;
|
||||
// CB_SelectGraphVRAM(); // Select Graphic Screen
|
||||
Fkey_dispN( n-1 ,buffer); // Normal
|
||||
} else {
|
||||
c=SRC[++ExecPtr];
|
||||
if ( ( c=='T' ) || ( c=='t' ) ) {
|
||||
c=SRC[++ExecPtr];
|
||||
UseGraphic=0;
|
||||
CB_SelectTextVRAM(); // Select Text Screen
|
||||
c=SRC[++ExecPtr];
|
||||
} else {
|
||||
// if ( RangeErrorCK( SRC ) ) return;
|
||||
// CB_SelectGraphVRAM(); // Select Graphic Screen
|
||||
if ( c == ',' ) { // option
|
||||
ExecPtr++;
|
||||
for( i=0; i<8; i++ ) {
|
||||
c=SRC[ExecPtr];
|
||||
if ( (c==0x00)||(c==',')||(c==':')||(c==0x0D)||(c==0x0C) ) break;
|
||||
else if ( ( c=='R' ) || ( c=='r' ) ) { ExecPtr++; r='R'; }
|
||||
else if ( ( c=='S' ) || ( c=='s' ) ) { ExecPtr++; r='S'; }
|
||||
else if ( ( c=='I' ) || ( c=='i' ) ) { ExecPtr++; r='I'; }
|
||||
else if ( ( c=='N' ) || ( c=='n' ) ) { ExecPtr++; r='N'; }
|
||||
else if ( ( c=='L' ) || ( c=='l' ) ) { ExecPtr++; (ofset) |= 0x10;}
|
||||
else if ( ( c=='U' ) || ( c=='u' ) ) { ExecPtr++; (ofset) |= 1;}
|
||||
else if ( ( c=='M' ) || ( c=='m' ) ) { ExecPtr++; mask=1; }
|
||||
else if ( ( c=='C' ) || ( c=='c' ) ) { ExecPtr++; cls =1; }
|
||||
else if ( ( c=='T' ) || ( c=='t' ) ) { ExecPtr++; UseGraphic=0; CB_SelectTextVRAM(); } // Select Text Screen
|
||||
}
|
||||
switch ( c ) {
|
||||
case 'C':
|
||||
case 'c':
|
||||
ExecPtr++;
|
||||
FkeyClear( n-1 ); // clear
|
||||
break;
|
||||
if ( c==',' ) { c=SRC[++ExecPtr];
|
||||
(extend) = CB_EvalInt( SRC )-n;
|
||||
if ( (extend)+n>6 ) (extend) = 6-n;
|
||||
if ( 0>(extend) ) (extend) = 0;
|
||||
}
|
||||
}
|
||||
if ( direct ) Fkey_Icon( n-1, IconNo);
|
||||
else {
|
||||
switch ( r ) {
|
||||
case 'R':
|
||||
case 'r':
|
||||
ExecPtr++;
|
||||
Fkey_dispR( n-1 ,buffer); // Reverse
|
||||
Fkey_dispR_ext( n-1 ,buffer, ofset, extend ); // Reverse
|
||||
break;
|
||||
case 'S':
|
||||
Fkey_dispRS_ext( n-1 ,buffer, ofset, extend ); // Select Reverse
|
||||
break;
|
||||
case 'I':
|
||||
Fkey_dispRB_ext( n-1 ,buffer, ofset, extend ); // Reverse input
|
||||
break;
|
||||
case 'N':
|
||||
case 'n':
|
||||
ExecPtr++;
|
||||
default:
|
||||
Fkey_dispN( n-1 ,buffer); // Normal
|
||||
Fkey_dispN_ext( n-1 ,buffer, ofset, extend ); // Normal
|
||||
break;
|
||||
}
|
||||
}
|
||||
exit:
|
||||
if ( mask ) for (c=0; c<=extend; c++ ) FkeyMask( n-1+c ); // mask
|
||||
if ( cls ) for (c=0; c<=extend; c++ ) FkeyClear( n-1+c ); // clear
|
||||
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
||||
// Bdisp_PutDisp_DD_DrawBusy_skip_through( SRC );
|
||||
Bdisp_PutDisp_DD_DrawBusy_skip_through_text( SRC );
|
||||
|
|
|
@ -67,10 +67,17 @@ void Fkey_dispR(int ,char *);
|
|||
void Fkey_DISPN(int ,char *);
|
||||
void Fkey_DISPR(int ,char *);
|
||||
void FkeyClear(int );
|
||||
void FkeyClearN(int n, int m);
|
||||
void FkeyClearAll();
|
||||
void Fkey_Icon(int n, int IconNo);
|
||||
void Fkey_dispN_Aa(int n, char *buffer) ;
|
||||
void Fkey_dispN_aA(int n, char *buffer) ;
|
||||
void Fkey_dispN_ext(int ,char *, int ofset, int extend);
|
||||
void Fkey_dispR_ext(int ,char *, int ofset, int extend);
|
||||
void Fkey_dispRB_ext(int ,char *, int ofset, int extend);
|
||||
void Fkey_dispRS_ext(int ,char *, int ofset, int extend);
|
||||
void PrintMiniXY(int X, int Y, char*buf, int mode, int xlength ) ; // xlength : 19 fkeyicon
|
||||
void FkeyMask(int n) ;
|
||||
|
||||
|
||||
void Hex8PrintXY(int , int , char *, unsigned int );
|
||||
|
|
|
@ -85,9 +85,12 @@ void Fkey_Icon(int n, int IconNo){
|
|||
void FkeyClear(int n) {
|
||||
Fkey_Icon(n, 0 ); // clear
|
||||
}
|
||||
void FkeyClearN(int n, int m){
|
||||
int i;
|
||||
for (i=n; i<=n+m; i++ ) FkeyClear( i );
|
||||
}
|
||||
void FkeyClearAll(){
|
||||
int n;
|
||||
for (n=0; n<6; n++ ) FkeyClear( n );
|
||||
FkeyClearN( 0, 5 );
|
||||
}
|
||||
void Fkey_dispN(int n,char *buffer) {
|
||||
FkeyClear(n);
|
||||
|
@ -95,7 +98,6 @@ void Fkey_dispN(int n,char *buffer) {
|
|||
Bdisp_DrawLineVRAM(n*21+2,7*8+0,n*21+20,7*8+0);
|
||||
Bdisp_DrawLineVRAM(n*21+2,7*8+0,n*21+2,7*8+7);
|
||||
Bdisp_ClearLineVRAM(n*21+3,7*8+1,n*21+3,7*8+7);
|
||||
// Bdisp_ClearLineVRAM(n*21+20,7*8+1,n*21+20,7*8+7);
|
||||
}
|
||||
void Fkey_dspRB(int n,char *buffer) {
|
||||
int i;
|
||||
|
@ -117,7 +119,6 @@ void Fkey_DISPN(int n,char *buffer) {
|
|||
Bdisp_DrawLineVRAM(n*21+2,7*8+0,n*21+20,7*8+0);
|
||||
Bdisp_DrawLineVRAM(n*21+2,7*8+0,n*21+2,7*8+7);
|
||||
Bdisp_ClearLineVRAM(n*21+3,7*8+1,n*21+3,7*8+7);
|
||||
// Bdisp_ClearLineVRAM(n*21+20,7*8+1,n*21+20,7*8+7);
|
||||
}
|
||||
void Fkey_DISPR(int n,char *buffer) {
|
||||
FkeyClear(n);
|
||||
|
@ -134,3 +135,51 @@ void Fkey_dispN_aA(int n, char *buffer) {
|
|||
Bdisp_AreaReverseVRAM( n*21+15, 7*8+1, n*21+20, 7*8+7); // reverse
|
||||
}
|
||||
|
||||
void Fkey_dispN_ext(int n,char *buf, int ofset, int extend ) {
|
||||
int m=(n+extend);
|
||||
FkeyClearN(n, extend);
|
||||
PrintMiniXY(n*21+4-(ofset!=0), 7*8+2, buf, MINI_OVER | 0x100, 16 +(ofset!=0)*3 +21*extend );
|
||||
Bdisp_DrawLineVRAM(n*21+2, 7*8+0, m*21+20, 7*8+0);
|
||||
Bdisp_DrawLineVRAM(n*21+2, 7*8+0, n*21+2 , 7*8+7);
|
||||
// Bdisp_ClearLineVRAM(n*21+3, 7*8+1, n*21+3, 7*8+7);
|
||||
}
|
||||
void Fkey_dispR_ext(int n,char *buf, int ofset, int extend ) {
|
||||
int m=(n+extend);
|
||||
Fkey_dispRB_ext(n, buf, ofset, extend );
|
||||
Bdisp_ClearLineVRAM(m*21+20,7*8+5,m*21+20,7*8+5);
|
||||
Bdisp_ClearLineVRAM(m*21+19,7*8+6,m*21+20,7*8+6);
|
||||
Bdisp_ClearLineVRAM(m*21+18,7*8+7,m*21+20,7*8+7);
|
||||
}
|
||||
|
||||
void Fkey_dispRB_ext(int n,char *buf, int ofset, int extend ) {
|
||||
int m=(n+extend);
|
||||
int i;
|
||||
FkeyClearN(n, extend);
|
||||
for (i=0;i<8;i++) Bdisp_DrawLineVRAM(n*21+2, 7*8+i, m*21+20, 7*8+i);
|
||||
PrintMiniXY(n*21+4-(ofset!=0), 7*8+2, buf, MINI_REV | 0x100, 16 +(ofset!=0)*3 +21*extend );
|
||||
Bdisp_ClearLineVRAM(m*21+21, 7*8+0, m*21+21, 7*8+7);
|
||||
Bdisp_ClearLineVRAM(m*21+22, 7*8+0, m*21+22, 7*8+7);
|
||||
}
|
||||
void Fkey_dispRS_ext(int n,char *buf, int ofset, int extend ) { // black select
|
||||
int m=(n+extend);
|
||||
Fkey_dispN_ext(n, buf, ofset, extend );
|
||||
Bdisp_DrawLineVRAM(n*21+2, 7*8+7, m*21+20, 7*8+7);
|
||||
Bdisp_DrawLineVRAM(m*21+20, 7*8+0, m*21+20, 7*8+7);
|
||||
|
||||
}
|
||||
|
||||
void PrintMiniXY(int X, int Y, char*buf, int mode, int xlength ) { // xlength : 19 fkeyicon
|
||||
int k,i,j;
|
||||
j=CB_PrintMiniLengthStr( (unsigned char *)buf, mode );
|
||||
i=(xlength +j)/2-j; if ( i<0 ) i=0;
|
||||
CB_PrintMini( X+i, Y, (unsigned char *)buf, mode ); // extflag on
|
||||
}
|
||||
|
||||
void FkeyMask(int n ) {
|
||||
int x,y;
|
||||
for( y=7*8; y<=7*8+7; y++) {
|
||||
for( x=n*21+0; x<=n*21+20; x++) {
|
||||
if(y&1^x&1) BdispSetPointVRAM2(x,y,0); //Clear
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue