From c055f8c087b78a865be4a2c9b0bb5064f112a2c0 Mon Sep 17 00:00:00 2001 From: CalcLoverHK <0v0katai@gmail.com> Date: Thu, 25 Jan 2024 03:03:23 +0800 Subject: [PATCH] FX 02.45.0300 --- fx/AddinInfo.txt | 2 +- fx/CBASIC.g1w | 2 +- fx/CBZ_Help.c | 2 +- fx/CBZ_file.c | 58 +++++++++++++++++++++++++++++++++------------ fx/CBZ_setup.c | 2 +- fx/CB_interpreter.c | 22 ++++++++--------- 6 files changed, 58 insertions(+), 30 deletions(-) diff --git a/fx/AddinInfo.txt b/fx/AddinInfo.txt index dc4e2d7..32ff64b 100644 --- a/fx/AddinInfo.txt +++ b/fx/AddinInfo.txt @@ -5,7 +5,7 @@ [BINDATA] : "FXADDINror.bin" [DISPNAME] : "CBASIC" [APPNAME] : "@CBASIC" -[VERSION] : "02.45.0100" +[VERSION] : "02.45.0300" [APL_ICON] : "MainIcon.bmp" [MODULE_NUM] : 0 [MOD1_TITLE] : "CBASIC" diff --git a/fx/CBASIC.g1w b/fx/CBASIC.g1w index 95b933a..6f7e071 100644 --- a/fx/CBASIC.g1w +++ b/fx/CBASIC.g1w @@ -1,6 +1,6 @@ [DLSimProject] Name=CBASIC -Version=02.45.0100 +Version=02.45.0300 Model=:fx-9860G.dlm SourcePath=. MemoryPath=INIT diff --git a/fx/CBZ_Help.c b/fx/CBZ_Help.c index 206c15e..2fe73e1 100644 --- a/fx/CBZ_Help.c +++ b/fx/CBZ_Help.c @@ -265,7 +265,7 @@ int Search_ExceptTryEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // c=SRC[ExecPtr++]; diff --git a/fx/CBZ_file.c b/fx/CBZ_file.c index e126640..de70bc8 100644 --- a/fx/CBZ_file.c +++ b/fx/CBZ_file.c @@ -3261,6 +3261,34 @@ void CB_Local( char *SRC ) { } //---------------------------------------------------------------------------------------------- +void Skip_rem_no_op( char *SRC ){ + int c=SRC[ExecPtr]; + if ( c=='/' ) { // '/ execute C.Basic only + ExecPtr++; + return; + } + while (1){ + switch ( c ) { + case 0x00: // + ExecPtr--; + case 0x0C: // dsps + case 0x0D: // + return ; + break; + case 0x7F: // + case 0xFFFFFFF7: // + case 0xFFFFFFF9: // + case 0xFFFFFFE5: // + case 0xFFFFFFE6: // + case 0xFFFFFFE7: // +// case 0xFFFFFFFF: // + ExecPtr++; + break; + } + c=SRC[ExecPtr++]; + } +} + int PP_Search_IfEnd( char *SRC ){ int c,i; int PP_ptr; @@ -3274,7 +3302,7 @@ int PP_Search_IfEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // c=SRC[ExecPtr++]; @@ -3383,7 +3411,7 @@ void CB_ProgEntry( char *SRC ) { // Prog "..." into memory Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFED: // Prog "..." c =SRC[ExecPtr]; @@ -3468,7 +3496,7 @@ void CB_GetAliasLocalProg( char *SRC ) { // Preprocess Alias/Local Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // if ( SRC[ExecPtr++] == 0xFFFFFFF1 ) CB_Local(SRC); // Local var set @@ -3671,18 +3699,18 @@ int fileObjectAlign4u( unsigned int n ){ return n; } // align +4byte int fileObjectAlign4v( unsigned int n ){ return n; } // align +4byte int fileObjectAlign4w( unsigned int n ){ return n; } // align +4byte //int fileObjectAlign4x( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4y( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4z( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4A( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4B( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4C( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4D( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4E( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4F( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4y( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4z( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4A( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4B( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4C( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4D( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4E( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4F( unsigned int n ){ return n; } // align +4byte //int fileObjectAlign4G( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4H( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4I( unsigned int n ){ return n; } // align +4byte -//int fileObjectAlign4J( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4H( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4I( unsigned int n ){ return n; } // align +4byte +int fileObjectAlign4J( unsigned int n ){ return n; } // align +4byte //int fileObjectAlign4K( 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 @@ -3783,6 +3811,7 @@ void FavoritesDowndummy5( int *index ) { files[(*index)].filesize=tmp; SaveFavorites(); } +/* void FavoritesDowndummy6( int *index ) { unsigned short tmp; char tmpname[FILENAMEMAX]; @@ -3799,7 +3828,6 @@ void FavoritesDowndummy6( int *index ) { files[(*index)].filesize=tmp; SaveFavorites(); } -/* void FavoritesDowndummy7( int *index ) { unsigned short tmp; char tmpname[FILENAMEMAX]; diff --git a/fx/CBZ_setup.c b/fx/CBZ_setup.c index ec30900..8b2521f 100644 --- a/fx/CBZ_setup.c +++ b/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 02", MINI_OVER ); + PrintMini(13*6+2, 2*8+1, (unsigned char*)" build 03", MINI_OVER ); PrintMini( 2*6+2, 3*8+1, (unsigned char*)"(Casio Basic compatible+)", MINI_OVER ); // if ( ( UseHiddenRAM ) && ( IsHiddenRAM ) ) { diff --git a/fx/CB_interpreter.c b/fx/CB_interpreter.c index 8d3c59e..107ec60 100644 --- a/fx/CB_interpreter.c +++ b/fx/CB_interpreter.c @@ -1323,7 +1323,7 @@ int Search_Lbl( char *SRC, int lc ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFE2: // Lbl c = CB_CheckLbl( SRC ); @@ -1468,7 +1468,7 @@ void Search_IfEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // c=SRC[ExecPtr++]; @@ -1503,7 +1503,7 @@ int Search_ElseIfEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // c=SRC[ExecPtr++]; @@ -1537,7 +1537,7 @@ void CB_If( char *SRC, CchIf *Cache ){ judge = CB_EvalCheckZero( SRC ); c =SRC[ExecPtr]; if ( ( c == ':' ) || ( c == 0x0D ) ) { c=SRC[++ExecPtr]; while ( c==' ' ) c=SRC[++ExecPtr]; } - if ( c == 0x27 ) { Skip_rem(SRC); c=SRC[++ExecPtr]; while ( c==' ' ) c=SRC[++ExecPtr]; } + if ( c == 0x27 ) { Skip_rem_no_op(SRC); c=SRC[++ExecPtr]; while ( c==' ' ) c=SRC[++ExecPtr]; } if ( ( c == 0xFFFFFFF7 ) && ( SRC[ExecPtr+1] == 0x01 ) ) ExecPtr+=2 ; // "Then" skip if ( judge ) return ; // true @@ -1603,7 +1603,7 @@ int Search_Next( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0x13: // => Skip_block(SRC); @@ -1790,7 +1790,7 @@ int Search_WhileEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0x13: // => Skip_block(SRC); @@ -1831,7 +1831,7 @@ int Search_LpWhile( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0x13: // => Skip_block(SRC); @@ -1940,7 +1940,7 @@ int Search_SwitchEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // if ( SRC[ExecPtr] == 0xFFffFFEA ) { ExecPtr++; // Switch @@ -1972,7 +1972,7 @@ int Search_CaseEnd( char *SRC ){ Skip_quot(SRC); break; case 0x27: // ' rem - Skip_rem(SRC); + Skip_rem_no_op(SRC); break; case 0xFFFFFFF7: // if ( SRC[ExecPtr] == 0xFFffFFEA ) { ExecPtr++; // Switch @@ -3185,8 +3185,8 @@ void CB_Input( char *SRC ){ int iObjectAlign4a( unsigned int n ){ return n; } // align +4byte int iObjectAlign4b( unsigned int n ){ return n; } // align +4byte int iObjectAlign4c( unsigned int n ){ return n; } // align +4byte -//int iObjectAlign4d( unsigned int n ){ return n; } // align +4byte -//int iObjectAlign4e( unsigned int n ){ return n; } // align +4byte +int iObjectAlign4d( unsigned int n ){ return n; } // align +4byte +int iObjectAlign4e( unsigned int n ){ return n; } // align +4byte //int iObjectAlign4f( unsigned int n ){ return n; } // align +4byte //int iObjectAlign4g( unsigned int n ){ return n; } // align +4byte //int iObjectAlign4h( unsigned int n ){ return n; } // align +4byte