FX 02.45.1900

This commit is contained in:
CalcLoverHK 2024-01-25 03:14:39 +08:00
parent 42f6106dc1
commit 5f27d826b5
6 changed files with 54 additions and 33 deletions

View File

@ -5,7 +5,7 @@
[BINDATA] : "FXADDINror.bin"
[DISPNAME] : "CBASIC"
[APPNAME] : "@CBASIC"
[VERSION] : "02.45.1800"
[VERSION] : "02.45.1900"
[APL_ICON] : "MainIcon.bmp"
[MODULE_NUM] : 0
[MOD1_TITLE] : "CBASIC"

View File

@ -1,6 +1,6 @@
[DLSimProject]
Name=CBASIC
Version=02.45.1800
Version=02.45.1900
Model=:fx-9860G.dlm
SourcePath=.
MemoryPath=INIT

View File

@ -2311,7 +2311,7 @@ int CB_BreakStop() {
if ( BreakPtr == -7 ) return BreakPtr; // return to main program
if ( ErrorNo == StackERR ) { BreakPtr=-999; TryFlag=0; return BreakPtr; } // stack error
if ( TryFlag ) return 0;
if ( ( BreakPtr == 0 ) && ( TryFlag ) ) return 0;
HiddenRAM_MatAryStore(); // MatAry ptr -> HiddenRAM
Bdisp_PutDisp_DD();

View File

@ -3897,7 +3897,7 @@ int fileObjectAlign4j( unsigned int n ){ return n; } // align +4byte
int fileObjectAlign4l( unsigned int n ){ return n; } // align +4byte
int fileObjectAlign4m( unsigned int n ){ return n; } // align +4byte
int fileObjectAlign4n( unsigned int n ){ return n; } // align +4byte
int fileObjectAlign4o( unsigned int n ){ return n; } // align +4byte
//int fileObjectAlign4o( unsigned int n ){ return n; } // align +4byte
//int fileObjectAlign4p( unsigned int n ){ return n; } // align +4byte
//int fileObjectAlign4q( unsigned int n ){ return n; } // align +4byte
//int fileObjectAlign4r( unsigned int n ){ return n; } // align +4byte

View File

@ -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 18", MINI_OVER );
PrintMini(13*6+2, 2*8+1, (unsigned char*)"build 19", MINI_OVER );
PrintMini( 2*6+2, 3*8+1, (unsigned char*)"(Casio Basic compatible+)", MINI_OVER );
// if ( ( UseHiddenRAM ) && ( IsHiddenRAM ) ) {

View File

@ -392,26 +392,32 @@ void CB_GetOperandNDbl( char *SRC, int n, double*ary ){
}
}
void CB_Screen( char *SRC ){ // Screen.G Screen.T
int ToUpperC( int c ){
if ( ( 'a' <= c ) && ( c <= 'z' ) ) c +=('A'-'a');
return c;
}
void CB_Screen( char *SRC ){ // Screen.G Screen.T Screen.R Screen # Screen % Screen.VG Screen.VT
double ScrOp[4];
double x,y;
int px,py;
int c;
dspflag=0; //
c=SRC[ExecPtr++];
if ( c == '.' ) { c=SRC[ExecPtr++];
if ( ( c=='G' ) || ( c=='g' ) ) goto scrG; // Select Graphic Screen
if ( ( c=='T' ) || ( c=='t' ) ) goto scrT; // Select Text Screen
if ( ( c=='R' ) || ( c=='r' ) ) goto scrR; // ScreenR to reverse screen
if ( c == '.' ) { c=SRC[ExecPtr++]; c=ToUpperC(c);
if ( ( c=='G' ) ) goto scrG; // Select Graphic Screen
if ( ( c=='T' ) ) goto scrT; // Select Text Screen
if ( ( c=='R' ) ) goto scrR; // ScreenR to reverse screen
if ( ( c=='V' ) ) goto scrV; // Screen.V to change current Vram
if ( c == '#' ) goto scrCod;
if ( c == '%' ) goto scrCod2;
{ ExecPtr--; CB_Error(SyntaxERR); return; } // Syntax error
} else
if ( ( c=='G' ) || ( c=='g' ) ) goto scrG; // Select Graphic Screen
if ( ( c=='G' ) ) goto scrG; // Select Graphic Screen
else
if ( ( c=='T' ) || ( c=='t' ) ) goto scrT; // Select Text Screen
if ( ( c=='T' ) ) goto scrT; // Select Text Screen
else
if ( ( c=='R' ) || ( c=='r' ) ) { // ScreenR to reverse screen
if ( ( c=='R' ) ) { // ScreenR to reverse screen
scrR:
// Bdisp_AreaReverseVRAM(0,0,127,63);
ML_rectangle( 0, 0, 127, 63, 0, 0, 2);
@ -459,6 +465,14 @@ void CB_Screen( char *SRC ){ // Screen.G Screen.T
else goto scrT; // Select Text Screen
} else { ExecPtr--;
switch ( CB_EvalInt( SRC ) ) {
case -1:
scrV:
c=SRC[ExecPtr++]; c=ToUpperC(c);
if ( c=='T' ) { ExecPtr++; PictAry[0]=(unsigned char*)TVRAM; } // Screen.VT to override screen & recover Text Vram
else
if ( c=='G' ) { ExecPtr++; PictAry[0]=(unsigned char*)GVRAM; } // Screen.VG to GraphicsText Vram
else PictAry[0]=(unsigned char*)GetVRAMAddress();
break;
case 0:
scrT:
CB_SelectTextVRAM(); // Select Text Screen
@ -1147,7 +1161,7 @@ void CB_ReadGraph( char *SRC ){ // ReadGraph(px1,py1, px2,py2)->Mat C
DISPBOX box;
// if ( RangeErrorCK( SRC ) ) return;
CB_ChangeGraphicMode( SRC ); // Select Graphic Mode
// CB_ChangeGraphicMode( SRC ); // Select Graphic Mode
CB_DotOprand( SRC, &px1, &py1);
if ( SRC[ExecPtr] != ',' ) { CB_Error(SyntaxERR); return; } // Syntax error
ExecPtr++;
@ -1176,7 +1190,7 @@ void CB_ReadGraph( char *SRC ){ // ReadGraph(px1,py1, px2,py2)->Mat C
Bdisp_ReadArea_VRAM( &box, ptr);
}
} else { CB_Error(SyntaxERR); return; } // Syntax error
if ( scrmode==0 ) CB_SelectTextVRAM(); // Select Text Screen
// if ( scrmode==0 ) CB_SelectTextVRAM(); // Select Text Screen
}
void CB_WriteGraph( char *SRC ){ // WriteGraph x,y,wx,wy,Mat A ([2,2]),modify,kind
@ -1195,7 +1209,7 @@ void CB_WriteGraph( char *SRC ){ // WriteGraph x,y,wx,wy,Mat A ([2,2]),modify,ki
int ElementSize;
// if ( RangeErrorCK( SRC ) ) return;
CB_ChangeGraphicMode( SRC ); // Select Graphic Mode
// CB_ChangeGraphicMode( SRC ); // Select Graphic Mode
CB_DotOprand( SRC, &px, &py);
if ( SRC[ExecPtr] != ',' ) { CB_Error(SyntaxERR); return; } // Syntax error
ExecPtr++;
@ -1253,7 +1267,7 @@ void CB_DotGet( char *SRC ){ // DotGet(px1,py1, px2,py2)->Mat B [x,y]
int ElementSize=1;
int scrmode=ScreenMode;
if ( CB_RangeErrorCK_ChangeGraphicMode( SRC ) ) return; // Select Graphic Mode
// if ( CB_RangeErrorCK_ChangeGraphicMode( SRC ) ) return; // Select Graphic Mode
CB_DotOprand( SRC, &px1, &py1);
if ( SRC[ExecPtr] != ',' ) { CB_Error(SyntaxERR); return; } // Syntax error
ExecPtr++;
@ -1285,7 +1299,7 @@ void CB_DotGet( char *SRC ){ // DotGet(px1,py1, px2,py2)->Mat B [x,y]
y++;
}
} else { CB_Error(SyntaxERR); return; } // Syntax error
if ( scrmode==0 ) CB_SelectTextVRAM(); // Select Text Screen
// if ( scrmode==0 ) CB_SelectTextVRAM(); // Select Text Screen
}
void CB_DotPut( char *SRC ){ // DotPut(Mat B[x,y], px1,py1, px2,py2) [-> Mat C]
@ -1362,7 +1376,7 @@ void CB_DotPut( char *SRC ){ // DotPut(Mat B[x,y], px1,py1, px2,py2) [-> Mat C]
// dspflag=0;
UseGraphic=0;
} else { // -> VRAM
CB_ChangeGraphicMode( SRC ); // Select Graphic Mode
// CB_ChangeGraphicMode( SRC ); // Select Graphic Mode
mode=CB_SetPointMode( SRC );
i=x;
for ( py=py1; py<=py2 ; py++) {
@ -1436,7 +1450,7 @@ void CB_DotTrim( char *SRC ){ // DotTrim(Mat A,x1,y1,x2,y2)->Mat B =>[X,Y]
}
} else {
if ( CB_RangeErrorCK_ChangeGraphicMode( SRC ) ) return; // Select Graphic Mode
// if ( CB_RangeErrorCK_ChangeGraphicMode( SRC ) ) return; // Select Graphic Mode
CB_DotOprand( SRC, &px1, &py1);
if ( SRC[ExecPtr] != ',' ) { CB_Error(SyntaxERR); return; } // Syntax error
ExecPtr++;
@ -2505,17 +2519,24 @@ int GObjectAlign4l( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4m( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4n( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4o( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4p( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4q( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4r( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4s( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4t( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4u( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4v( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4w( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4x( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4y( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4z( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4A( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4B( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4p( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4q( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4r( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4s( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4t( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4u( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4v( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4w( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4x( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4y( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4z( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4A( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4B( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4C( unsigned int n ){ return n; } // align +4byte
int GObjectAlign4D( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4E( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4F( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4G( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4H( unsigned int n ){ return n; } // align +4byte
//int GObjectAlign4I( unsigned int n ){ return n; } // align +4byte
//----------------------------------------------------------------------------------------------