2474 lines
74 KiB
C
2474 lines
74 KiB
C
#include "CB.h"
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
int KeyRepeatFirstCount=20; // pointer to repeat time of first repeat (20:default)
|
|
int KeyRepeatNextCount = 5; // pointer to repeat time of second repeat( 5:default)
|
|
|
|
char ComplexMode = 0; // Complex mode real:0 a+bi:1 a_b:2
|
|
char MaxMemMode = 0; // Maximam memory mode
|
|
char EnableExtFont = 0; // enable external font
|
|
|
|
short PageUpDownNum = PageUpDownNumDefault; // PageUp/Down counter
|
|
char EditTopLine = 0; // 1: use top of line (edit)
|
|
char EditFontSize = 0; // 0:standard 1:mini
|
|
char EditListChar = 0; // List character change
|
|
char EditExtFont=0; // Edit ext Font enable:1
|
|
|
|
char ExtendPict=0; // 0:20 21~99 ( use hidden ram only )
|
|
char ExtendList=5; // 0:52(default) 1:+52 ~ 19:+988 ( use hidden ram only )
|
|
char ForceReturnMode=0; // 0:none 1:F1 2:EXE 3:Both
|
|
char ForceReturn; // 0:none 1:return
|
|
char CB_RecoverSetup=1; // setup recover flag 0:none 1:recover
|
|
char CB_fx5800P = 0; // fx-5800P mode
|
|
char CB_HelpOn=0; // Help function
|
|
char CB_EditIndent=0; // indent function 0:Non 1~4:indent space
|
|
|
|
int selectSetup=0;
|
|
int selectVar=0;
|
|
int selectMatrix=0;
|
|
|
|
int StackPtr;
|
|
|
|
const char VerMSG[]="C.Basic v2.46\xE6\x41";
|
|
#define VERSION 246
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
void GetMemFreeStr10( char *buffer );
|
|
|
|
void VBattDispSub( int x, int y) {
|
|
char buffer[32];
|
|
sprintf(buffer,"%4.2fv",(float)CB_BatteryStatus(buffer)/100);
|
|
PrintMini( x, y, (unsigned char*)buffer, MINI_OVER );
|
|
}
|
|
|
|
void VerDispSub( int flag ) {
|
|
int freearea;
|
|
char buffer[32];
|
|
char maxbk=MaxMemMode;
|
|
PopUpWin( 6 );
|
|
locate( 3, 2 ); Print( (unsigned char*)VerMSG );
|
|
// locate( 3, 3 ); Print( (unsigned char*)"(Casio Basic" );
|
|
// locate( 3, 4 ); Print( (unsigned char*)" compatible+)" );
|
|
locate( 3, 5 ); Print( (unsigned char*)" by sentaro21" );
|
|
locate( 3, 6 ); Print( (unsigned char*)" (c)2023" );
|
|
|
|
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 ) ) {
|
|
// freearea = HiddenRAM_MatTopPtr - HiddenRAM_ProgNextPtr ;
|
|
// sprintf(buffer,"%d bytes free",freearea);
|
|
if ( flag ) MaxMemMode=0;
|
|
GetMemFreeStr10(buffer);
|
|
PrintMini( 2*6+2, 6*8+2, (unsigned char*)buffer, MINI_OVER );
|
|
VBattDispSub( 15*6+2, 6*8+2 );
|
|
// locate( 3, 5 ); Print( (unsigned char*)buffer );
|
|
|
|
// }
|
|
|
|
Bdisp_PutDisp_DD();
|
|
MaxMemMode=maxbk;
|
|
}
|
|
void VerDisp( int flag ) {
|
|
unsigned int key;
|
|
VerDispSub( flag );
|
|
GetKey(&key);
|
|
}
|
|
|
|
int IsG3or35E2() {
|
|
unsigned char version[16];
|
|
System_GetOSVersion( &version[0] ); //System_GetOSVersion( &version[0] ); // "03.00.2200" etc
|
|
if ( version[6]=='2' ) return 4; // 35+EII
|
|
if ( version[6]=='3' ) return 6; // 9750GIII
|
|
return 5; // 9860GIII
|
|
}
|
|
|
|
//----------------------------------------------------------------------------------------------
|
|
int GetMemFree() ;
|
|
|
|
int CB_Version() { // Version
|
|
return VERSION;
|
|
}
|
|
int OS_VersionMinor() {
|
|
int ver;
|
|
unsigned char version[16];
|
|
System_GetOSVersion( &version[0] ); //System_GetOSVersion( &version[0] ); // "03.00.2200" etc
|
|
return (version[6]-'0')*1000 + (version[7]-'0')*100 + (version[8]-'0')*10 + (version[9]-'0');
|
|
}
|
|
|
|
int System( int n ) {
|
|
int r=0;
|
|
switch ( n ) {
|
|
case -9:
|
|
r=TryFlag; if ( r>1 ) r--;
|
|
break;
|
|
case -7:
|
|
r=IsEmu;
|
|
break;
|
|
case -5:
|
|
r=GetMemFree();
|
|
break;
|
|
// case -4:
|
|
// r=0;
|
|
// break;
|
|
// case -3:
|
|
// r=MAXHEAP/1024;
|
|
// break;
|
|
case -22:
|
|
r=OS_VersionMinor();
|
|
break;
|
|
case -2:
|
|
r=OS_Version();
|
|
break;
|
|
case -1: // 9860G:0 slim:1 9860GII(SH3):2 9860GII(SH4A):3 Graph35+EII:4 9860GIII:5
|
|
r = ( IsSH3==0 );
|
|
if ( IsHiddenRAM ) r |= 0x2;;
|
|
if ( IsSH3==2 ) r = 1 ;
|
|
if ( Is35E2 ) r = IsG3or35E2() ;
|
|
break;
|
|
case 0: // Version
|
|
r = VERSION;
|
|
break;
|
|
case 1: // VRAM
|
|
r = (int)PictAry[0];
|
|
break;
|
|
case 2: // TVRAM
|
|
r = (int)TVRAM;
|
|
break;
|
|
case 3: // GVRAM
|
|
r = (int)GVRAM;
|
|
break;
|
|
case 9: // HeapRAM
|
|
r = (int)HeapRAM;
|
|
break;
|
|
case 10: //
|
|
r = (int)ClipBuffer;
|
|
break;
|
|
case 12: //
|
|
r = (int)files;
|
|
break;
|
|
|
|
case 999: //
|
|
r =StackPtr;
|
|
break;
|
|
case 1000: //
|
|
r = (int)HiddenRAM_Top;
|
|
break;
|
|
case 1001: //
|
|
r = (int)HiddenRAM_End;
|
|
break;
|
|
case 1002: //
|
|
r = (int)HiddenRAM_ProgNextPtr;
|
|
break;
|
|
case 1003: //
|
|
r = (int)HiddenRAM_MatTopPtr;
|
|
break;
|
|
case 1010: //
|
|
r = (int)ProgfileMax[0];
|
|
break;
|
|
case 1011: //
|
|
r = (int)ProgfileMax[1];
|
|
break;
|
|
|
|
default:
|
|
r = 0;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
int CB_System( char *SRC ) { // System( n )
|
|
int r;
|
|
int c = SRC[ExecPtr];
|
|
int n = CB_EvalInt( SRC );
|
|
if ( n==10000 ) { // load config data to ListAns Ststem(10000,1) Ststem(10000,2) Ststem(10000,3)
|
|
if ( SRC[ExecPtr] != ',' ) CB_Error(SyntaxERR) ; // Syntax error
|
|
ExecPtr++;
|
|
c = CB_EvalInt( SRC );
|
|
LoadConfig1data( c );
|
|
goto exit;
|
|
}
|
|
r = System( n );
|
|
exit:
|
|
if ( SRC[ExecPtr] == ')' ) ExecPtr++;
|
|
return r;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------------------------
|
|
// Setup
|
|
//----------------------------------------------------------------------------------------------
|
|
|
|
void FkeyS_L_(){
|
|
int temp;
|
|
temp=S_L_Style;
|
|
// FkeyClear( FKeyNo1 );
|
|
Fkey_Icon( FKeyNo1, 977 ); // Fkey_dispN( FKeyNo1, ""); Linesub(0*21+5,7*8+4,0*21+18,7*8+4, S_L_Normal,1); // -----
|
|
// FkeyClear( FKeyNo2 );
|
|
Fkey_Icon( FKeyNo2, 978 ); // Fkey_dispN( FKeyNo2, ""); Linesub(1*21+5,7*8+4,1*21+18,7*8+4, S_L_Thick,1); // =====
|
|
// FkeyClear( FKeyNo3 );
|
|
Fkey_Icon( FKeyNo3, 979 ); // Fkey_dispN( FKeyNo3, ""); Linesub(2*21+5,7*8+4,2*21+18,7*8+4, S_L_Broken,1); // : : : :
|
|
// FkeyClear( FKeyNo4 );
|
|
Fkey_Icon( FKeyNo4, 982 ); // Fkey_dispN( FKeyNo4, ""); Linesub(3*21+5,7*8+4,3*21+18,7*8+4, S_L_Dot,1); // . . . .
|
|
FkeyClear( FKeyNo5 );
|
|
FkeyClear( FKeyNo6 );
|
|
S_L_Style=temp;
|
|
}
|
|
|
|
void SetLineStyle() {
|
|
unsigned int key;
|
|
|
|
FkeyS_L_();
|
|
|
|
GetKey(&key);
|
|
switch (key) {
|
|
case KEY_CTRL_EXIT:
|
|
break;
|
|
case KEY_CTRL_F1:
|
|
S_L_Style=S_L_Normal;
|
|
break;
|
|
case KEY_CTRL_F2:
|
|
S_L_Style=S_L_Thick ;
|
|
break;
|
|
case KEY_CTRL_F3:
|
|
S_L_Style=S_L_Broken;
|
|
break;
|
|
case KEY_CTRL_F4:
|
|
S_L_Style=S_L_Dot;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void SetXdotYdot(){
|
|
Xdot = (Xmax-Xmin)/(126.);
|
|
Ydot = (Ymax-Ymin)/(62.);
|
|
CB_ClrGraphStat();
|
|
}
|
|
void SetVeiwWindowInit(){ // Initialize return 0: no change -1 : change
|
|
Xmin =-6.3;
|
|
Xmax = 6.3;
|
|
Xscl = 1.0;
|
|
Ymin =-3.1;
|
|
Ymax = 3.1;
|
|
Yscl = 1.0;
|
|
TThetamin = 0;
|
|
TThetamax = finvdegree( 360);
|
|
TThetaptch= TThetamax/100;
|
|
SetXdotYdot();
|
|
}
|
|
void SetVeiwWindowTrig(){ // trig Initialize
|
|
Xmin = finvdegree(-540);
|
|
Xmax = finvdegree( 540);
|
|
Xscl = finvdegree( 90);
|
|
Ymin =-1.6;
|
|
Ymax = 1.6;
|
|
Yscl = 0.5;
|
|
TThetamin = 0;
|
|
TThetamax = finvdegree( 360);
|
|
TThetaptch= TThetamax/100;
|
|
SetXdotYdot();
|
|
}
|
|
void SetVeiwWindowSTD(){ // STD Initialize
|
|
Xmin =-10;
|
|
Xmax = 10;
|
|
Xscl = 1;
|
|
Ymin =-10;
|
|
Ymax = 10;
|
|
Yscl = 1;
|
|
TThetamin = 0;
|
|
TThetamax = finvdegree( 360);
|
|
TThetaptch= TThetamax/100;
|
|
SetXdotYdot();
|
|
}
|
|
|
|
|
|
unsigned int XTTKey( unsigned int key) {
|
|
switch ( FuncType ) {
|
|
case 1:
|
|
key=0xCE; // Theta
|
|
break;
|
|
case 2:
|
|
key='T';
|
|
break;
|
|
case 3:
|
|
case 8:
|
|
case 9:
|
|
case 10:
|
|
case 11:
|
|
key='Y';
|
|
break;
|
|
default:
|
|
key='X';
|
|
}
|
|
return key;
|
|
}
|
|
|
|
unsigned int MathKey( unsigned int key) {
|
|
switch ( key ) {
|
|
case KEY_CHAR_IMGNRY:
|
|
// return 0x7F50;
|
|
case KEY_CHAR_MAT:
|
|
// return 0x7F40;
|
|
case KEY_CHAR_LIST:
|
|
// return 0x7F51;
|
|
case KEY_CHAR_ANGLE: //
|
|
// return 0x7F54;
|
|
case KEY_CHAR_DP:
|
|
case KEY_CHAR_EXP:
|
|
case KEY_CHAR_PLUS:
|
|
case KEY_CHAR_MINUS:
|
|
case KEY_CHAR_MULT:
|
|
case KEY_CHAR_DIV:
|
|
case KEY_CHAR_PMINUS:
|
|
case KEY_CHAR_ANS:
|
|
case KEY_CTRL_XTT:
|
|
case KEY_CHAR_VALR:
|
|
case KEY_CHAR_THETA:
|
|
case KEY_CHAR_EQUAL:
|
|
case KEY_CHAR_FRAC: // 0xbb
|
|
case KEY_CHAR_LPAR: // 0x28
|
|
case KEY_CHAR_RPAR: // 0x29
|
|
case KEY_CHAR_LOG: // 0x95
|
|
case KEY_CHAR_LN: // 0x85
|
|
case KEY_CHAR_SIN: // 0x81
|
|
case KEY_CHAR_COS: // 0x82
|
|
case KEY_CHAR_TAN: // 0x83
|
|
case KEY_CHAR_SQUARE: // 0x8b
|
|
case KEY_CHAR_POW: // 0xa8
|
|
case KEY_CHAR_PI: // 0xd0
|
|
case KEY_CHAR_CUBEROOT: // 0x96
|
|
case KEY_CHAR_EXPN10: // 0xb5
|
|
case KEY_CHAR_EXPN: // 0xa5
|
|
case KEY_CHAR_ASIN: // 0x91
|
|
case KEY_CHAR_ACOS: // 0x92
|
|
case KEY_CHAR_ATAN: // 0x93
|
|
case KEY_CHAR_ROOT: // 0x86
|
|
case KEY_CHAR_POWROOT: // 0xb8
|
|
case KEY_CHAR_LBRCKT: //
|
|
case KEY_CHAR_RBRCKT: //
|
|
case KEY_CHAR_LBRACE: //
|
|
case KEY_CHAR_RBRACE: //
|
|
case KEY_CHAR_RECIP: //
|
|
case KEY_CHAR_DQUATE: //
|
|
if ( key == KEY_CTRL_XTT ) key=XTTKey( key ); // 'X' or <r> or <Theta> or T
|
|
// if ( key == KEY_CHAR_PLUS ) key='+';
|
|
// if ( key == KEY_CHAR_MINUS ) key='-';
|
|
// if ( key == KEY_CHAR_PMINUS ) key=0x87; // (-)
|
|
return key;
|
|
default:
|
|
if ( ( ( KEY_CHAR_0 <= key ) && ( key <= KEY_CHAR_9 ) ) ||
|
|
( ( KEY_CHAR_A <= key ) && ( key <= KEY_CHAR_Z ) ) ) return key;
|
|
break;
|
|
}
|
|
return 0;
|
|
}
|
|
/*
|
|
int SelectVWin( char*msg, int n ,int min, int max, unsigned int *key ) { //
|
|
char buffer[32];
|
|
int n0=n;
|
|
PopUpWin(4);
|
|
FkeyClearAll();
|
|
locate( 3,3); Print((unsigned char *)msg);
|
|
locate( 3,4); Print((unsigned char *)"V-Win Memory");
|
|
locate( 5,6); sprintf(buffer,"V-Win[%d~%d]:",msg,min,max); Print((unsigned char *)buffer);
|
|
while (1) {
|
|
n=InputNumD(5+strlen(buffer), 6, log10(max)+1, n, " ", REV_OFF, FLOAT_OFF, EXP_OFF, &(*key)); // 0123456789
|
|
if ( n == n0 ) break;
|
|
if ( (min<=n)&&(n<=max) ) break;
|
|
n=n0;
|
|
}
|
|
return n ; // ok
|
|
}
|
|
*/
|
|
int SetViewWindow(void){ // ----------- Set View Window variable return 0: no change -1 : change
|
|
char buffer[32];
|
|
unsigned int key;
|
|
int cont=1;
|
|
int select=0;
|
|
int scrl=0;
|
|
int y,n;
|
|
double tmp;
|
|
|
|
double xmin = Xmin ;
|
|
double xmax = Xmax ;
|
|
double xscl = Xscl ;
|
|
double xdot = Xdot ;
|
|
double ymin = Ymin ;
|
|
double ymax = Ymax ;
|
|
double ydot = Ydot ;
|
|
double yscl = Yscl ;
|
|
double tThetamin = TThetamin ;
|
|
double tThetamax = TThetamax ;
|
|
double tThetaptch= TThetaptch;
|
|
|
|
Cursor_SetFlashMode(0); // cursor flashing off
|
|
while (cont) {
|
|
Bdisp_AllClr_VRAM();
|
|
locate( 1,1);Print((unsigned char*)"View Window");
|
|
|
|
if ( scrl <=0 ) {
|
|
locate( 1, 2-scrl); Print((unsigned char*)"Xmin :");
|
|
sprintG(buffer,Xmin, 10,LEFT_ALIGN); locate( 8, 2-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl <=1 ) {
|
|
locate( 1, 3-scrl); Print((unsigned char*)" max :");
|
|
sprintG(buffer,Xmax, 10,LEFT_ALIGN); locate( 8, 3-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl <=2 ) {
|
|
locate( 1, 4-scrl); Print((unsigned char*)" scale:");
|
|
sprintG(buffer,Xscl,10,LEFT_ALIGN); locate( 8, 4-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl <=3 ) {
|
|
locate( 1, 5-scrl); Print((unsigned char*)" dot :");
|
|
sprintG(buffer,Xdot, 10,LEFT_ALIGN); locate( 8, 5-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl <=4 ) {
|
|
locate( 1, 6-scrl); Print((unsigned char*)"Ymin :");
|
|
sprintG(buffer,Ymin, 10,LEFT_ALIGN); locate( 8, 6-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl <=5 ) {
|
|
locate( 1, 7-scrl); Print((unsigned char*)" max :");
|
|
sprintG(buffer,Ymax, 10,LEFT_ALIGN); locate( 8, 7-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl >=1 ) {
|
|
locate( 1, 8-scrl); Print((unsigned char*)" scale:");
|
|
sprintG(buffer,Yscl,10,LEFT_ALIGN); locate( 8, 8-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl >=2 ) {
|
|
locate( 1, 9-scrl); Print((unsigned char*)"T\xE6\x47min :");
|
|
sprintG(buffer,TThetamin, 10,LEFT_ALIGN); locate( 8, 9-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl >=3 ) {
|
|
locate( 1, 10-scrl); Print((unsigned char*)" max :");
|
|
sprintG(buffer,TThetamax, 10,LEFT_ALIGN); locate( 8, 10-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
if ( scrl >=4 ) {
|
|
locate( 1, 11-scrl); Print((unsigned char*)" ptch:");
|
|
sprintG(buffer,TThetaptch, 10,LEFT_ALIGN); locate( 8, 11-scrl); Print((unsigned char*)buffer);
|
|
}
|
|
|
|
y = select-scrl+1;
|
|
Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
|
|
Fkey_Icon( FKeyNo1, 95 ); // Fkey_dispN( FKeyNo1, "Init");
|
|
Fkey_Icon( FKeyNo2, 96 ); // Fkey_dispN( FKeyNo2, "Trig");
|
|
Fkey_Icon( FKeyNo3, 97 ); // Fkey_dispN( FKeyNo3, "STD");
|
|
Fkey_Icon( FKeyNo4, 69 ); // Fkey_dispR( FKeyNo4, "STO");
|
|
Fkey_Icon( FKeyNo5, 70 ); // Fkey_dispR( FKeyNo5, "RCL");
|
|
|
|
Bdisp_PutDisp_DD();
|
|
|
|
GetKey( &key );
|
|
switch (key) {
|
|
case KEY_CTRL_EXIT:
|
|
return 0; // no change
|
|
break;
|
|
case KEY_CTRL_EXE:
|
|
cont=0;
|
|
break;
|
|
|
|
case KEY_CTRL_UP:
|
|
select-=1;
|
|
if ( select < 0 ) {select=9; scrl=4;}
|
|
if ( select < scrl ) scrl-=1;
|
|
if ( scrl < 0 ) scrl=0;
|
|
break;
|
|
case KEY_CTRL_DOWN:
|
|
select+=1;
|
|
if ( select > 9 ) {select=0; scrl=0;}
|
|
if ((select - scrl) > 5 ) scrl+=1;
|
|
if ( scrl > 4 ) scrl=4;
|
|
break;
|
|
|
|
case KEY_CTRL_F1: // Initialize
|
|
SetVeiwWindowInit();
|
|
break;
|
|
case KEY_CTRL_F2: // trig Initialize
|
|
SetVeiwWindowTrig();
|
|
break;
|
|
case KEY_CTRL_F3: // STD Initialize
|
|
SetVeiwWindowSTD();
|
|
break;
|
|
case KEY_CTRL_F4: // Sto V-MEM
|
|
n = SelectNum1( "Store", 0, 1, 6, &key );
|
|
if ( key==KEY_CTRL_EXIT ) break;
|
|
StoVwin( n );
|
|
break;
|
|
case KEY_CTRL_F5: // Rcl V-MEM
|
|
n = SelectNum1( "Recall", 0, 1, 6, &key );
|
|
if ( key==KEY_CTRL_EXIT ) break;
|
|
if ( VWinflag[n-1] == 0 ) break;
|
|
RclVwin( n );
|
|
break;
|
|
|
|
case KEY_CTRL_LEFT:
|
|
PutKey( KEY_CTRL_DOWN, 1 );
|
|
case KEY_CTRL_RIGHT:
|
|
Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
FkeyClearAll();
|
|
y++;
|
|
switch (select) {
|
|
case 0: // Xmin
|
|
Xmin =InputNumD_full( 8, y, 14, Xmin); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 1: // Xmax
|
|
Xmax =InputNumD_full( 8, y, 14, Xmax); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 2: // Xscl
|
|
Xscl =fabs(InputNumD_full( 8, y, 14, Xscl)); //
|
|
break;
|
|
case 3: // Xdot
|
|
Xdot =InputNumD_full( 8, y, 14, Xdot); //
|
|
Xmax = Xmin + Xdot*126.;
|
|
break;
|
|
case 4: // Ymin
|
|
Ymin =InputNumD_full( 8, y, 14, Ymin); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 5: // Ymax
|
|
Ymax =InputNumD_full( 8, y, 14, Ymax); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 6: // Yscl
|
|
Yscl =fabs(InputNumD_full( 8, y, 14, Yscl)); //
|
|
break;
|
|
case 7: // TThetamin
|
|
TThetamin =InputNumD_full( 8, y, 14, TThetamin); //
|
|
break;
|
|
case 8: // TThetamax
|
|
TThetamax =InputNumD_full( 8, y, 14, TThetamax); //
|
|
break;
|
|
case 9: // TThetaptch
|
|
tmp = InputNumD_full( 8, y, 14, TThetaptch); //
|
|
if ( tmp == 0 ) { CB_ErrMsg(RangeERR); break ; } // // Range error
|
|
TThetaptch = tmp;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
key=MathKey( key );
|
|
if ( key ) {
|
|
Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
FkeyClearAll();
|
|
y++;
|
|
switch (select) {
|
|
case 0: // Xmin
|
|
Xmin =InputNumD_Char( 8, y, 14, Xmin, key); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 1: // Xmax
|
|
Xmax =InputNumD_Char( 8, y, 14, Xmax, key); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 2: // Xscl
|
|
Xscl =fabs(InputNumD_Char( 8, y, 14, Xscl, key)); //
|
|
break;
|
|
case 3: // Xdot
|
|
Xdot =InputNumD_Char( 8, y, 14, Xdot, key); //
|
|
Xmax = Xmin + Xdot*126.;
|
|
break;
|
|
case 4: // Ymin
|
|
Ymin =InputNumD_Char( 8, y, 14, Ymin, key); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 5: // Ymax
|
|
Ymax =InputNumD_Char( 8, y, 14, Ymax, key); //
|
|
SetXdotYdot();
|
|
break;
|
|
case 6: // Yscl
|
|
Yscl =fabs(InputNumD_Char( 8, y, 14, Yscl, key)); //
|
|
break;
|
|
case 7: // TThetamin
|
|
TThetamin =InputNumD_Char( 8, y, 14, TThetamin, key); //
|
|
break;
|
|
case 8: // TThetamax
|
|
TThetamax =InputNumD_Char( 8, y, 14, TThetamax, key); //
|
|
break;
|
|
case 9: // TThetaptch
|
|
tmp = InputNumD_Char( 8, y, 14, TThetaptch, key); //
|
|
if ( tmp == 0 ) { CB_ErrMsg(RangeERR); break ; } // // Range error
|
|
TThetaptch = tmp;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if( ( xmin != Xmin ) ||
|
|
( xmax != Xmax ) ||
|
|
( xscl != Xscl ) ||
|
|
( xdot != Xdot ) ||
|
|
( ymin != Ymin ) ||
|
|
( ymax != Ymax ) ||
|
|
( ydot != Ydot ) ||
|
|
( yscl != Yscl ) ||
|
|
( tThetamin != TThetamin ) ||
|
|
( tThetamax != TThetamax ) ||
|
|
( tThetaptch!= TThetaptch) ) {
|
|
ViewWindow( Xmin, Xmax, Xscl, Ymin, Ymax, Yscl);
|
|
SaveConfig();
|
|
return -1; // change value
|
|
}
|
|
return 0; // no change
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
void SetFactor(){
|
|
char buffer[32];
|
|
unsigned int key;
|
|
int cont=1;
|
|
int select=0;
|
|
int y;
|
|
|
|
PopUpWin(3);
|
|
|
|
Cursor_SetFlashMode(0); // cursor flashing off
|
|
while (cont) {
|
|
locate(3,3); Print((unsigned char *)"Factor");
|
|
locate(3,4); Print((unsigned char *) "Xfact: ");
|
|
sprintG(buffer,Xfct, 10,LEFT_ALIGN); locate( 9, 4); Print((unsigned char*)buffer);
|
|
locate(3,5); Print((unsigned char *) "Yfact: ");
|
|
sprintG(buffer,Yfct, 10,LEFT_ALIGN); locate( 9, 5); Print((unsigned char*)buffer);
|
|
|
|
y = select + 3 ;
|
|
Bdisp_AreaReverseVRAM(12, y*8, 113, y*8+7); // reverse select line
|
|
Bdisp_PutDisp_DD();
|
|
|
|
GetKey( &key );
|
|
switch (key) {
|
|
case KEY_CTRL_EXIT:
|
|
case KEY_CTRL_EXE:
|
|
cont=0;
|
|
break;
|
|
|
|
case KEY_CTRL_UP:
|
|
select-=1;
|
|
if ( select < 0 ) select=1;
|
|
break;
|
|
case KEY_CTRL_DOWN:
|
|
select+=1;
|
|
if ( select > 1 ) select=0;
|
|
break;
|
|
|
|
case KEY_CTRL_LEFT:
|
|
PutKey( KEY_CTRL_DOWN, 1 );
|
|
case KEY_CTRL_RIGHT:
|
|
Bdisp_AreaReverseVRAM(12, y*8, 113, y*8+7); // reverse select line
|
|
Bdisp_PutDisp_DD();
|
|
y++;
|
|
switch (select) {
|
|
case 0: // Xfct
|
|
Xfct =InputNumD_full( 9, y, 10, Xfct); //
|
|
select+=1;
|
|
break;
|
|
case 1: // Yfct
|
|
Xmax =InputNumD_full( 9, y, 10, Yfct); //
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
key=MathKey( key );
|
|
if ( key ) {
|
|
Bdisp_AreaReverseVRAM(12, y*8, 113, y*8+7); // reverse select line
|
|
Bdisp_PutDisp_DD();
|
|
y++;
|
|
switch (select) {
|
|
case 0: // Xfct
|
|
Xfct =InputNumD_Char( 9, y, 10, Xfct, key); //
|
|
select+=1;
|
|
break;
|
|
case 1: // Yfct
|
|
Yfct =InputNumD_Char( 9, y, 10, Yfct, key); //
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
SaveConfig();
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
void SetVarDsp(int VarMode) {
|
|
if ( VarMode ) {
|
|
Print((unsigned char*)"[INT%]");
|
|
} else {
|
|
if ( CB_INT==0 ) Print((unsigned char*)"[DBL#]");
|
|
else Print((unsigned char*)"[CPLX]");
|
|
}
|
|
}
|
|
void InitVar( complex value, int VarMode, int small) {
|
|
char buffer[64];
|
|
unsigned int key;
|
|
int cont=1;
|
|
int i,reg;
|
|
PopUpWin(3);
|
|
|
|
Cursor_SetFlashMode(0); // cursor flashing off
|
|
while (cont) {
|
|
locate( 3,3); Print((unsigned char *)"Init All Variable");
|
|
locate( 3,5); Print((unsigned char *)"value: ");
|
|
Cplx_sprintGR1cutlim( buffer, value, 10,LEFT_ALIGN, Norm, 10 );
|
|
locate( 9, 5); Print((unsigned char*)buffer);
|
|
locate(1,8); PrintLine((unsigned char *)" ",21);
|
|
locate(1,8); SetVarDsp(VarMode);
|
|
// Bdisp_PutDisp_DD();
|
|
|
|
GetKey( &key );
|
|
switch (key) {
|
|
case KEY_CTRL_EXIT:
|
|
return ;
|
|
break;
|
|
case KEY_CTRL_EXE:
|
|
cont=0;
|
|
break;
|
|
case KEY_CTRL_LEFT:
|
|
PutKey( KEY_CTRL_DOWN, 1 );
|
|
case KEY_CTRL_RIGHT:
|
|
value =InputNumC_full( 9, 5, 10, value); //
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
key=MathKey( key );
|
|
if ( key ) {
|
|
value =InputNumC_Char( 9, 5, 10, value, key); //
|
|
}
|
|
}
|
|
|
|
if ( YesNo("Initialize Ok?") ) {
|
|
if ( VarMode ) {
|
|
for ( i=0; i<26; i++) LocalInt[i+small][0]=value.real;
|
|
} else {
|
|
for ( i=0; i<26; i++) LocalDbl[i+small][0]=value;
|
|
}
|
|
}
|
|
}
|
|
|
|
void SetVarSel(int VarMode, int y) {
|
|
Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
locate(1,8); PrintLine((unsigned char *)" ",21);
|
|
locate(1,8); SetVarDsp(VarMode);
|
|
}
|
|
|
|
void SetVarDblToHex( char * buffer, double n ) {
|
|
if ( ( (n-floor(n))==0 ) && ( -2147483648. <= n ) && ( n <= 2147483647. ) ) {
|
|
sprintf(buffer,"0x%08X ",(int)n);
|
|
} else {
|
|
sprintG(buffer, n, 18,LEFT_ALIGN);
|
|
}
|
|
}
|
|
int CmpAliasVar( int reg ) { // AliasVar ?
|
|
int c,i,j;
|
|
for ( i=0; i<=AliasVarMAX; i++ ) {
|
|
if ( AliasVarCode[i].org==reg ) return i;
|
|
if ( AliasVarCode[i].org<0 ) return -1;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
int CmpAliasVarMat( int reg ) { // AliasVar Mat?
|
|
int c,i,j;
|
|
for ( i=0; i<=AliasVarMAXMat; i++ ) {
|
|
if ( AliasVarCodeMat[i].org==reg ) return i;
|
|
if ( AliasVarCodeMat[i].org<0 ) return -1;
|
|
}
|
|
return -1;
|
|
}
|
|
int SetVarCharMat( char *buffer, int c ) {
|
|
int ptr=0,len;
|
|
short alias_code;
|
|
char buffer2[32];
|
|
int i=CmpAliasVarMat( c );
|
|
if ( i>=0 ) { // Alias variable
|
|
if ( alias_code=AliasVarCodeMat[i].alias == 0x4040 ) { // @ABCD
|
|
len=AliasVarCodeMat[i].len;
|
|
memcpy( buffer, AliasVarCodeMat[i].name, len);
|
|
buffer[len]='\0';
|
|
ptr=len;
|
|
} else {
|
|
CB_OpcodeToStr( alias_code, buffer2 ) ; // SYSCALL+
|
|
StrMid( buffer, buffer2, 1, 8 );
|
|
ptr=CB_MB_strlen( buffer );
|
|
}
|
|
} else
|
|
if ( ( c == 26 ) ) { // <r>
|
|
buffer[ptr++]=0xCD; // 'r'
|
|
} else
|
|
if ( ( c == 27 ) ) { // Theta
|
|
buffer[ptr++]=0xE6; // Theta
|
|
buffer[ptr++]=0x47;
|
|
} else
|
|
if ( ( 28 <= c ) && ( c <= 31 ) ) { // Ans
|
|
buffer[ptr++]='A'; //
|
|
buffer[ptr++]='n';
|
|
buffer[ptr++]='s';
|
|
} else
|
|
if ( ( 84 <= c ) && ( c <= 109 ) ) { // vct
|
|
buffer[ptr++]='A'+c-84;
|
|
} else
|
|
// if ( ( 58 <= c ) && ( c <= 83 ) ) { // List
|
|
// buffer[ptr++]='A'+c-84;
|
|
// } else
|
|
if ( c >= 110 ) {
|
|
sprintf( buffer+ptr, "%d", c-57 );
|
|
ptr = strlen(buffer);
|
|
} else {
|
|
buffer[ptr++]='A'+c;
|
|
}
|
|
return ptr;
|
|
}
|
|
/*
|
|
int SetVarCharVct( char *buffer, int c ) {
|
|
int ptr=0,len;
|
|
short alias_code;
|
|
char buffer2[32];
|
|
int i=CmpAliasVarMat( c );
|
|
if ( i>=0 ) { // Alias variable
|
|
if ( alias_code=AliasVarCodeMat[i].alias == 0x4040 ) { // @ABCD
|
|
len=AliasVarCodeMat[i].len;
|
|
memcpy( buffer, AliasVarCodeMat[i].name, len);
|
|
buffer[len]='\0';
|
|
ptr=len;
|
|
} else {
|
|
CB_OpcodeToStr( alias_code, buffer2 ) ; // SYSCALL+
|
|
StrMid( buffer, buffer2, 1, 8 );
|
|
ptr=CB_MB_strlen( buffer );
|
|
}
|
|
} else
|
|
if ( ( c == 26 ) ) { // <r>
|
|
buffer[ptr++]=0xCD; // 'r'
|
|
} else
|
|
if ( ( c == 27 ) ) { // Theta
|
|
buffer[ptr++]=0xE6; // Theta
|
|
buffer[ptr++]=0x47;
|
|
} else
|
|
if ( ( 28 <= c ) && ( c <= 31 ) ) { // Ans
|
|
buffer[ptr++]='A'; //
|
|
buffer[ptr++]='n';
|
|
buffer[ptr++]='s';
|
|
} else
|
|
if ( c >= 84 ) {
|
|
buffer[ptr++]='A'+c-84;
|
|
} else {
|
|
buffer[ptr++]='A'+c;
|
|
}
|
|
return ptr;
|
|
}
|
|
*/
|
|
int SetVarChar( char *buffer, int c ) {
|
|
int ptr=0,len;
|
|
short alias_code;
|
|
char buffer2[32];
|
|
int i=CmpAliasVar( c );
|
|
if ( i>=0 ) { // Alias variable
|
|
alias_code=AliasVarCode[i].alias ;
|
|
if ( alias_code == 0x4040 ) { // _ABCD
|
|
len=AliasVarCode[i].len;
|
|
memcpy( buffer, AliasVarCode[i].name, len);
|
|
buffer[len]='\0';
|
|
ptr=len;
|
|
} else {
|
|
CB_OpcodeToStr( alias_code, buffer2 ) ; // SYSCALL+
|
|
StrMid( buffer, buffer2, 1, 8 );
|
|
ptr=CB_MB_strlen( buffer );
|
|
}
|
|
} else
|
|
if ( ( c == 26 ) ) { // <r>
|
|
buffer[ptr++]=0xCD; // 'r'
|
|
} else
|
|
if ( ( c == 27 ) ) { // Theta
|
|
buffer[ptr++]=0xE6; // Theta
|
|
buffer[ptr++]=0x47;
|
|
} else
|
|
if ( ( 28 <= c ) && ( c <= 31 ) ) { // Ans
|
|
buffer[ptr++]='A'; //
|
|
buffer[ptr++]='n';
|
|
buffer[ptr++]='s';
|
|
} else {
|
|
buffer[ptr++]='A'+c;
|
|
}
|
|
return ptr;
|
|
}
|
|
int SetVarCharStr( char *buffer, int VarMode, int k) {
|
|
int f,j=0;
|
|
j+=SetVarChar( buffer+j, k );
|
|
if ( VarMode ) { // Int variable
|
|
f=( LocalInt[k] == ®INT[k] );
|
|
} else { // Double variable
|
|
f=( LocalDbl[k] == ®[k] );
|
|
}
|
|
if ( VarMode ) { // Int variable
|
|
buffer[j++]='%';
|
|
}
|
|
if ( f ) {
|
|
buffer[j++]='=';
|
|
} else {
|
|
buffer[j++]=0xE5; // reverse '='
|
|
buffer[j++]=0xB8;
|
|
}
|
|
|
|
buffer[j++]='\0';
|
|
return CB_MB_ElementCount( buffer )+1;
|
|
}
|
|
|
|
int SetVar(int select){ // ----------- Set Variable
|
|
char buffer[64];
|
|
char buffer2[64];
|
|
char buffer3[64];
|
|
unsigned int key;
|
|
int cont=1;
|
|
int scrl=0;
|
|
int seltop=select;
|
|
int i,j,k,f,y,x;
|
|
int selectreplay=-1;
|
|
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
|
|
|
|
if ( VarMode==2 ) VarMode=0; // complex ->double
|
|
Cursor_SetFlashMode(0); // cursor flashing off
|
|
|
|
if ( select >= IsExtVar ) select=IsExtVar;
|
|
if ( select >= 58 ) { small=58; }
|
|
else
|
|
if ( select >= 32 ) { small=32; }
|
|
select-=small;
|
|
|
|
while (cont) {
|
|
Bdisp_AllClr_VRAM();
|
|
|
|
opNum=25+3;
|
|
if ( small==58 ) { opNum=IsExtVar-57;}
|
|
if ( opNum < 6 ) lnum=opNum; else lnum=6;
|
|
if ( select<seltop ) seltop = select;
|
|
if ( (select-seltop) > lnum ) seltop = select-lnum;
|
|
if ( (opNum -seltop) < lnum ) seltop = opNum -lnum;
|
|
|
|
for ( i=0; i<7; i++ ) {
|
|
k=seltop+i+small;
|
|
if ( ( small==58 ) && ( k > IsExtVar+1 ) ) break; // ext Var
|
|
|
|
if ( ( small==32 ) && ( k >= 58 ) ) k-=(32); // small Var
|
|
else
|
|
if ( ( small==58 ) && ( k > IsExtVar ) ) k=28; // ext Var Ans
|
|
x=SetVarCharStr( buffer, VarMode, k);
|
|
CB_Print( 1, 1+i, (unsigned char*)buffer);
|
|
|
|
if ( VarMode ) {
|
|
locate(x, 1+i); // int
|
|
if ( hex ) sprintf(buffer,"0x%08X ",(int)LocalInt[k][0]);
|
|
else sprintG(buffer, (double)LocalInt[k][0], 18,LEFT_ALIGN);
|
|
} else {
|
|
locate(x, 1+i); // dbl
|
|
if ( hex ) SetVarDblToHex( buffer, LocalDbl[k][0].real );
|
|
else Cplx_sprintGR1cutlim( buffer, LocalDbl[k][0], 22-x,LEFT_ALIGN, CB_Round.MODE, CB_Round.DIGIT );
|
|
}
|
|
Print((unsigned char*)buffer);
|
|
}
|
|
// Fkey_Icon( FKeyNo1, 775 ); // Fkey_dispN( FKeyNo1, "A<>a");
|
|
if ( small == 0 ) Fkey_Icon( FKeyNo1, 775 ); // Fkey_dispN( FKeyNo1, "A <> a");
|
|
else
|
|
if ( small == 32 ) Fkey_Icon( FKeyNo1, 775 ); // Fkey_dispN( FKeyNo1, "A <> a");
|
|
else
|
|
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 ( hex ) Fkey_dispN( FKeyNo6, "\xE6\x91\x44\x65\x63"); else Fkey_dispN( FKeyNo6, "\xE6\x91Hex");
|
|
|
|
// 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
|
|
Bdisp_PutDisp_DD();
|
|
|
|
k=select;
|
|
if ( small==58 ) { // ext Var
|
|
k+=small;
|
|
if ( k > IsExtVar ) k=28; // ext Var Ans
|
|
} else {
|
|
if ( select<=25 ) k+=small;
|
|
}
|
|
GetKey( &key );
|
|
switch (key) {
|
|
case KEY_CTRL_OPTN:
|
|
case KEY_CTRL_VARS:
|
|
// if ( small == 58 ) { // extended variable
|
|
FkeyClearAll();
|
|
sprintf(buffer,"Alias_Var:%2d Ext_Var:%2d",IsExtVar-57, AliasVarMAX+1 );
|
|
// CB_PrintMini( 16*18+6, (cnt-scrl)*24-18,(unsigned char*)buffer,MINI_OVER);
|
|
PrintMini(0*6+2, 7*8+1, (unsigned char*)buffer, MINI_OVER );
|
|
// Fkey_dispN( FKeyNo1, buffer );
|
|
// }
|
|
Bdisp_PutDisp_DD();
|
|
if (IsSH3) while ( CheckKeyRow(8) & (32+16) ); // [OPTN] [VARS]
|
|
else while ( CheckKeyRow7305(8) & (32+16) ); // [OPTN] [VARS]
|
|
break;
|
|
|
|
case KEY_CTRL_EXIT:
|
|
case KEY_CTRL_EXE:
|
|
cont=0;
|
|
break;
|
|
|
|
case KEY_CTRL_F1:
|
|
if ( small == 0 ) small=32;
|
|
else
|
|
if ( small == 32 ) { if ( IsExtVar < 58 ) small =0; else { small=58; if ( select > IsExtVar-58 ) select=IsExtVar-58; } }
|
|
else
|
|
if ( small == 58 ) { small= 0; if ( select >= 28 ) select=28; }
|
|
break;
|
|
case KEY_CTRL_F2:
|
|
InitVar(value,VarMode, small);
|
|
break;
|
|
case KEY_CTRL_F3:
|
|
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;
|
|
break;
|
|
case KEY_CTRL_UP:
|
|
select--;
|
|
if ( select < 0 ) select = opNum;
|
|
selectreplay = -1; // replay cancel
|
|
break;
|
|
case KEY_CTRL_DOWN:
|
|
select++;
|
|
if ( select > opNum ) select =0;
|
|
selectreplay = -1; // replay cancel
|
|
break;
|
|
case KEY_CTRL_PAGEUP:
|
|
select-=7;
|
|
if ( select < 0 ) select = 0;
|
|
selectreplay = -1; // replay cancel
|
|
break;
|
|
case KEY_CTRL_PAGEDOWN:
|
|
select+=7;
|
|
if ( select > opNum ) select =opNum;
|
|
selectreplay = -1; // replay cancel
|
|
break;
|
|
|
|
case KEY_CTRL_RIGHT:
|
|
SetVarSel(VarMode,y);
|
|
x=SetVarCharStr( buffer, VarMode, k);
|
|
y++;
|
|
selectreplay = select;
|
|
if ( ( 0 <= select ) && ( select <=opNum ) ) { // regA to regZ
|
|
if ( VarMode )
|
|
LocalInt[k][0]= InputNumC_fullhex( x, y, 18, Int2Cplx(LocalInt[k][0]), hex).real;
|
|
else
|
|
LocalDbl[k][0]= InputNumC_fullhex( x, y, 19, LocalDbl[k][0], hex);
|
|
} else {
|
|
selectreplay = -1; // replay cancel
|
|
}
|
|
break;
|
|
|
|
case KEY_CTRL_LEFT:
|
|
if (selectreplay<0) { PutKey( KEY_CTRL_RIGHT, 1 ); PutKey( KEY_CTRL_DOWN, 1 ); break; }
|
|
SetVarSel(VarMode,y);
|
|
x=SetVarCharStr( buffer, VarMode, k);
|
|
y++;
|
|
selectreplay = select;
|
|
if ( ( 0 <= select ) && ( select <=opNum ) ) { // regA to regZ
|
|
if ( VarMode )
|
|
LocalInt[k][0]= InputNumD_replay( x, y, 18, (double)LocalInt[k][0]);
|
|
else
|
|
LocalDbl[k][0]= InputNumC_replay( x, y, 19, LocalDbl[k][0]);
|
|
} else {
|
|
selectreplay = -1; // replay cancel
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
key=MathKey( key );
|
|
if ( key ) {
|
|
SetVarSel(VarMode,y);
|
|
x=SetVarCharStr( buffer, VarMode, k);
|
|
y++;
|
|
selectreplay = select;
|
|
if ( ( 0 <= select ) && ( select <=opNum ) ) { // regA to regZ
|
|
if ( VarMode )
|
|
LocalInt[k][0]= InputNumD_Char( x, y, 18, (double)LocalInt[k][0], key);
|
|
else
|
|
LocalDbl[k][0]= InputNumC_Char( x, y, 19, LocalDbl[k][0], key);
|
|
} else {
|
|
selectreplay = -1; // replay cancel
|
|
}
|
|
}
|
|
}
|
|
SaveConfig();
|
|
if ( small ) select+=small;
|
|
return select;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//--------------------------------------------------------------
|
|
int DateCursorY;
|
|
int TimeCursorY;
|
|
|
|
void DateTimePrintSub(){ // timer IRQ handler
|
|
char buffer[32];
|
|
char DateStr[16];
|
|
char TimeStr[16];
|
|
int cy,y;
|
|
cy=DateCursorY & 0xFF;
|
|
y =DateCursorY / 0x100;
|
|
if ( ( 1<=cy ) && ( cy<=7 ) ) {
|
|
DateToStr(DateStr);
|
|
sprintf(buffer,"DATE : %s ",DateStr);
|
|
locate( 1, cy); Print((unsigned char*)buffer);
|
|
if ( (y+1)==cy ) Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
}
|
|
cy=TimeCursorY & 0xFF;
|
|
y =TimeCursorY / 0x100;
|
|
if ( ( 1<=cy ) && ( cy<=7 ) ) {
|
|
TimeToStr(TimeStr);
|
|
sprintf(buffer,"TIME : %s ",TimeStr);
|
|
locate( 1, cy); Print((unsigned char*)buffer);
|
|
if ( (y+1)==cy ) Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
}
|
|
}
|
|
void DateTimePrint(){ // timer IRQ handler
|
|
DateTimePrintSub();
|
|
Bdisp_PutDisp_DD();
|
|
}
|
|
|
|
void TimePrintSetMode(int set){ // 1:on 0:off
|
|
// int dy,ty;
|
|
// dy=DateCursorY & 0xFF;
|
|
// ty=TimeCursorY & 0xFF;
|
|
switch (set) {
|
|
case 0:
|
|
KillTimer(ID_USER_TIMER1);
|
|
break;
|
|
case 1:
|
|
// if ( ( (0<=dy)&&(dy<=7) ) || ( (0<=ty)&&(ty<=7) ) )
|
|
SetTimer(ID_USER_TIMER1, 1000, (void*)&DateTimePrint);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
//--------------------------------------------------------------
|
|
|
|
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 *)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
|
|
if ( n == n0 ) break;
|
|
if ( (min<=n)&&(n<=max) ) break;
|
|
n=n0;
|
|
}
|
|
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 );
|
|
}
|
|
int SelectNum3( int n ) { //
|
|
unsigned int key;
|
|
int n0=n;
|
|
PopUpWin(3);
|
|
FkeyClearAll();
|
|
locate( 3,3); Print((unsigned char *)"SkipUp/Dw Number");
|
|
locate( 6,5); Print((unsigned char *)"[1~9999]:");
|
|
while (1) {
|
|
n=InputNumD(15, 5, 4, n, " ", REV_OFF, FLOAT_OFF, EXP_OFF, &key); // 0123456789
|
|
if ( n == n0 ) break;
|
|
if ( (1<=n)&&(n<=9999) ) break;
|
|
n=n0;
|
|
}
|
|
return n ; // ok
|
|
}
|
|
int SelectNum4( int n ) { //
|
|
unsigned int key;
|
|
int n0=n;
|
|
PopUpWin(3);
|
|
FkeyClearAll();
|
|
locate( 3,3); Print((unsigned char *)"Select Number");
|
|
locate( 3,3); Print((unsigned char *)"RefrshTime n/128s");
|
|
locate( 4,5); Print((unsigned char *)"[0=\x7F\x53,1~128]:");
|
|
while (1) {
|
|
n=InputNumD(16, 5, 3, n, " ", REV_OFF, FLOAT_OFF, EXP_OFF, &key); // 0123456789
|
|
if ( n == n0 ) break;
|
|
if ( (0<=n)&&(n<=128) ) break;
|
|
n=n0;
|
|
}
|
|
return n ; // ok
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
|
|
#define SETUP_Angle 0
|
|
#define SETUP_ComplexMode 1
|
|
#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"};
|
|
|
|
int SetupG(int select, int limit){ // ----------- Setup
|
|
const char *degrad[] ={"Deg","Rad","Grad"};
|
|
const char *cplxmode[] ={"Real","a+b\x7F\x50","r\x7F\x54\xE6\x47"};
|
|
const char *onoff[] ={"off","on"};
|
|
const char *draw[] ={"Connect","Plot"};
|
|
const char *style[] ={"Normal","Thick","Broken","Dot"};
|
|
const char *display[] ={"Nrm","Fix","Sci"};
|
|
const char *ENGmode[] ={" ","/E"," ","/3"};
|
|
const char *CMDinput[] ={"C.Basic","Standard","CB5800","Std5800"};
|
|
const char *CharSize[] ={"Standard","Mini","Mini Rev","Mini_","Mini_Rev"};
|
|
const char *Matmode[] ={"[m,n]","[x,y]"};
|
|
const char *Matbase[] ={"0","1"};
|
|
const char *Pictmode[] ={"S.Mem","Heap","Both","Main Mem"};
|
|
const char *PictmodeSD[] ={"SDcard ","Heap","Both","Main Mem"};
|
|
const char *Storagemode[] ={"S.Mem","SDcard ","Main Mem","Main/SD"};
|
|
const char *DDmode[] ={"off","Grph","All"};
|
|
const char *ListChar[] ={"List"," \xE5\xB7"," \xFF\xE0"};
|
|
const char *Returnmode[] ={"None","F1","EXE","F1&EXE"};
|
|
const char *ExecTimemode[]={"off","on","off%","on reset"," %","on%"," % reset","on%reset"};
|
|
const char *EditIndent[] ={"off","1","2","3","4","5","6","7","off sav-","1 save-","2 save-","3 save-","4 save-","D","E","F"};
|
|
const char *FuncTypeStr[] ={"Y=","r=","Param","X=","Y>","Y<","Y\x12","Y\x10","X>","X<","X\x12","X\x10"};
|
|
char buffer[22];
|
|
char folderbuf[16];
|
|
unsigned int key;
|
|
int cont=1;
|
|
int scrl=select-6;
|
|
int i,y,cnt;
|
|
char DateStr[16];
|
|
char TimeStr[16];
|
|
int year,month,day,hour,min,sec;
|
|
int listmax=SETUP_Executemode;
|
|
int subselect=0;
|
|
|
|
strcpy( folderbuf, folder ); // current folder
|
|
|
|
Cursor_SetFlashMode(0); // cursor flashing off
|
|
|
|
if ( select > listmax ) select=0;
|
|
if ( select < scrl ) scrl-=1;
|
|
if ( scrl < 0 ) scrl=0;
|
|
|
|
DateCursorY=-1;
|
|
TimeCursorY=-1;
|
|
|
|
while (cont) {
|
|
Bdisp_AllClr_VRAM();
|
|
|
|
DateToStr(DateStr);
|
|
TimeToStr(TimeStr);
|
|
DateCursorY = 0x909;
|
|
TimeCursorY = 0x909;
|
|
|
|
cnt=1;
|
|
if ( scrl <=(cnt-1) ) {
|
|
locate( 1, cnt-scrl); Print((unsigned char*)"Angle :"); // 0
|
|
locate(14, cnt-scrl); Print((unsigned char*)degrad[Angle]);
|
|
} cnt++;
|
|
if ( scrl <=(cnt-1) ) {
|
|
locate( 1, cnt-scrl); Print((unsigned char*)"Complex Mode:"); // 1
|
|
locate(14, cnt-scrl); Print((unsigned char*)cplxmode[ComplexMode]);
|
|
} cnt++;
|
|
if ( scrl <=(cnt-1) ) {
|
|
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 :"); // 4
|
|
locate(14, cnt-scrl); Print((unsigned char*)draw[(int)DrawType]);
|
|
} cnt++;
|
|
if ( scrl <=(cnt-1) ) {
|
|
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 :"); // 6
|
|
locate(14, cnt-scrl); Print((unsigned char*)onoff[Grid]);
|
|
} cnt++;
|
|
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 :"); // 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 :"); // 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 :"); // 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 :"); // 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 :"); // 12
|
|
locate(14, cnt-scrl); Print((unsigned char*)display[CB_Round.MODE]);
|
|
buffer[0]='\0';
|
|
sprintf((char*)buffer,"%d",CB_Round.DIGIT);
|
|
locate(17, cnt-scrl); Print((unsigned char*)buffer);
|
|
locate(19, cnt-scrl);
|
|
Print((unsigned char*)ENGmode[ENG]);
|
|
} cnt++;
|
|
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
|
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:"); // 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:"); // 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:"); // 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:"); // 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 ); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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:"); // 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 :"); // 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:"); // 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 :"); // 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 :"); // 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:"); // 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:"); // 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:"); // 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 :"); // 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:"); // 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 :"); // 39
|
|
locate(14,cnt-scrl); Print((unsigned char*)Matbase[MatBaseDefault]);
|
|
} cnt++;
|
|
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){ // DATE // 40
|
|
DateCursorY = cnt-scrl+0x900;
|
|
DateTimePrintSub();
|
|
} cnt++;
|
|
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:"); // 42
|
|
locate(13,cnt-scrl);
|
|
if ( root2[0] == '\0' ) {
|
|
Print((unsigned char*)"/");
|
|
} else {
|
|
Print((unsigned char*)root2);
|
|
}
|
|
} cnt++;
|
|
if ( (0<(cnt-scrl))&&((cnt-scrl)<=7) ){
|
|
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:"); // 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 :"); // 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:"); // 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:"); // 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 :"); // 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:"); // 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");
|
|
break;
|
|
case SETUP_ComplexMode: // complex mode
|
|
Fkey_Icon( FKeyNo1, 942 ); // Fkey_dispN( FKeyNo1, "Real");
|
|
Fkey_Icon( FKeyNo2, 125 ); // Fkey_dispN( FKeyNo2, "a+bi");
|
|
Fkey_Icon( FKeyNo3, 126 ); // Fkey_dispN( FKeyNo3, "r_theta");
|
|
break;
|
|
case SETUP_Coord: // Coord
|
|
case SETUP_Grid: // Grid
|
|
case SETUP_Axes: // Axes
|
|
case SETUP_Label: // Label
|
|
case SETUP_Derivative: // Derivative
|
|
case SETUP_Help: // Help
|
|
case SETUP_EnableExtFONT: // Enable External Font
|
|
case SETUP_EditTopLine: // Use Top of Line (edit)
|
|
case SETUP_EditExtFont: // Use Ext Font (edit)
|
|
case SETUP_EditLineNum: // Line number (edit)
|
|
case SETUP_MaxMemMode: // Maximam Memory mode
|
|
case SETUP_UseHidnRam: // UseHiddenRAM
|
|
case SETUP_HidnRamInit: // HiddenRAMInit
|
|
case SETUP_DisableDebugMode: // DisableDebugMode
|
|
case SETUP_ExitDebugModeCheck: // ExitDebugModeCheck
|
|
case SETUP_BreakStop: // BreakCheck
|
|
case SETUP_IfEndCheck: // IfEnd Check
|
|
case SETUP_ACBreak: // ACBreak Check
|
|
case SETUP_AutoSaveMode: // Auto save
|
|
case SETUP_Forceg1msave: // Force g1m save
|
|
case SETUP_RecoverSetup: // Setup Mode
|
|
Fkey_Icon( FKeyNo1, 17 ); // Fkey_dispN( FKeyNo1, " On ");
|
|
Fkey_Icon( FKeyNo2, 18 ); // Fkey_dispN( FKeyNo2, " Off");
|
|
break;
|
|
case SETUP_ExecTimeDsp: // TimeDsp
|
|
Fkey_Icon( FKeyNo1, 17 ); // Fkey_dispN( FKeyNo1, " On ");
|
|
Fkey_Icon( FKeyNo2, 18 ); // Fkey_dispN( FKeyNo2, " Off");
|
|
if ( IsSH3 == 0 ) Fkey_dispN( FKeyNo3, " %HR ");
|
|
Fkey_dispN( FKeyNo4, "reset");
|
|
break;
|
|
case SETUP_Background: // BG pict
|
|
Fkey_Icon( FKeyNo1, 362 ); // Fkey_dispN( FKeyNo1, "None");
|
|
Fkey_Icon( FKeyNo2, 183 ); // Fkey_dispR( FKeyNo2, "PICT");
|
|
break;
|
|
case SETUP_CMDINPUT: // Command input method
|
|
Fkey_dispN( FKeyNo1, "CBas");
|
|
Fkey_dispN( FKeyNo2, "Std");
|
|
if ( CB_fx5800P ) Fkey_dispN( FKeyNo4, ">98G"); else Fkey_dispN( FKeyNo4, ">58P");
|
|
break;
|
|
case SETUP_EditFontSize: // Edit Char Size
|
|
Fkey_dispN( FKeyNo1, "Std");
|
|
Fkey_dispN( FKeyNo2, "Mini");
|
|
Fkey_dispN( FKeyNo3, "Rev");
|
|
Fkey_dispN( FKeyNo4, "___");
|
|
Fkey_dispN( FKeyNo5, "Rev_");
|
|
break;
|
|
case SETUP_Sketch: // S_L_ Line normal
|
|
FkeyS_L_();
|
|
break;
|
|
case SETUP_Angle: // Angle
|
|
Fkey_Icon( FKeyNo1, 359 ); // Fkey_dispN( FKeyNo1, "Deg ");
|
|
Fkey_Icon( FKeyNo2, 360 ); // Fkey_dispN( FKeyNo2, "Rad ");
|
|
Fkey_Icon( FKeyNo3, 361 ); // Fkey_dispN( FKeyNo3, "Grad");
|
|
FkeyClear( FKeyNo4 );
|
|
break;
|
|
case SETUP_Display: // Display
|
|
Fkey_Icon( FKeyNo1, 372 ); // Fkey_dispR( FKeyNo1, "Fix ");
|
|
Fkey_Icon( FKeyNo2, 373 ); // Fkey_dispR( FKeyNo2, "Sci ");
|
|
Fkey_Icon( FKeyNo3, 374 ); // Fkey_dispR( FKeyNo3, "Norm ");
|
|
Fkey_Icon( FKeyNo4, 375 ); // Fkey_dispN( FKeyNo4, "Eng ");
|
|
break;
|
|
case SETUP_Key1sttime: // Key Repeat mode
|
|
case SETUP_KeyReptime: // Key Repeat mode
|
|
case SETUP_ExtendPict: // Max Pict
|
|
case SETUP_ExtendList: // Max List
|
|
Fkey_DISPN( FKeyNo1," +");
|
|
Fkey_DISPN( FKeyNo2," -");
|
|
Fkey_Icon( FKeyNo4, 95 ); // Fkey_dispN( FKeyNo4, "Init");
|
|
break;
|
|
case SETUP_SkipUpDown: // SkipUp/Down number
|
|
case SETUP_DefaultWaitcount: // Wait count number
|
|
Fkey_DISPN( FKeyNo1," +");
|
|
Fkey_DISPN( FKeyNo2," -");
|
|
Fkey_dispR( FKeyNo3, "Num");
|
|
Fkey_Icon( FKeyNo4, 95 ); // Fkey_dispN( FKeyNo4, "Init");
|
|
break;
|
|
case SETUP_MatDspmode: // Mat display mode
|
|
Fkey_dispN( FKeyNo1, "m,n ");
|
|
Fkey_dispN( FKeyNo2, "x,y ");
|
|
break;
|
|
case SETUP_Matrixbase: // Mat base
|
|
Fkey_dispN( FKeyNo1, " 0 ");
|
|
Fkey_dispN( FKeyNo2, " 1 ");
|
|
break;
|
|
case SETUP_DATE: // DATE
|
|
Fkey_dispR( FKeyNo1, "Year");
|
|
Fkey_dispR( FKeyNo2, "Mth");
|
|
Fkey_dispR( FKeyNo3, "Day");
|
|
break;
|
|
case SETUP_TIME: // TIME
|
|
Fkey_dispR( FKeyNo1, "Hour");
|
|
Fkey_dispR( FKeyNo2, "Min");
|
|
Fkey_dispR( FKeyNo3, "Sec");
|
|
break;
|
|
case SETUP_Pictmode: // Pict mode
|
|
if ( StorageMode & 1 ) Fkey_dispN( FKeyNo1, " SD "); else Fkey_dispN( FKeyNo1, "MEM ");
|
|
Fkey_dispN( FKeyNo2, "Heap");
|
|
Fkey_dispN( FKeyNo3, "Both");
|
|
Fkey_dispN( FKeyNo4, "Main");
|
|
break;
|
|
case SETUP_Storagemode: // Storage mode
|
|
Fkey_dispN( FKeyNo1, "SMEM");
|
|
Fkey_dispN( FKeyNo2, " SD ");
|
|
Fkey_dispN( FKeyNo3, "Main");
|
|
break;
|
|
case SETUP_RefrshCtlDD: // Refresh Ctrl DD Mode
|
|
Fkey_Icon( FKeyNo1, 18 ); // Fkey_dispN( FKeyNo1, "off ");
|
|
Fkey_dispN( FKeyNo2, "Grph");
|
|
Fkey_dispN( FKeyNo3, "All ");
|
|
if ( RefreshCtrl ) Fkey_dispR( FKeyNo4, "time");
|
|
Fkey_Icon( FKeyNo5, 95 ); // Fkey_dispN( FKeyNo5, "Init");
|
|
break;
|
|
case SETUP_Executemode: // Execute Mode
|
|
Fkey_dispN( FKeyNo1, "DBL#");
|
|
Fkey_dispN( FKeyNo2, "INT%");
|
|
Fkey_dispN( FKeyNo3, "CPLX");
|
|
break;
|
|
case SETUP_EditListChar:
|
|
Fkey_dispN( FKeyNo1, "List");
|
|
Fkey_dispN( FKeyNo2, " \xE5\xB7");
|
|
Fkey_dispN( FKeyNo3, " \xFF\xE0");
|
|
ML_vertical_line( 2*21+4+4, 7*8+2, 7*8+6, ML_BLACK);
|
|
break;
|
|
case SETUP_ForceReturnMode:
|
|
Fkey_Icon( FKeyNo1, 362 ); // Fkey_dispN( FKeyNo1, "None");
|
|
Fkey_dispN( FKeyNo2, " F1");
|
|
Fkey_dispN( FKeyNo3, "EXE");
|
|
Fkey_dispN( FKeyNo4, "Both");
|
|
break;
|
|
case SETUP_RootFolder:
|
|
Fkey_dispN( FKeyNo1, " / ");
|
|
Fkey_dispN( FKeyNo2, "cur.f");
|
|
break;
|
|
case SETUP_EditIndent: //
|
|
Fkey_Icon( FKeyNo1, 18 ); // Fkey_dispN( FKeyNo1, "off ");
|
|
Fkey_dispN( FKeyNo2, " 1");
|
|
Fkey_dispN( FKeyNo3, " 2");
|
|
Fkey_dispN( FKeyNo4, " 4");
|
|
Fkey_dispN( FKeyNo5, "sv-");
|
|
break;
|
|
case SETUP_FuncType: //
|
|
switch ( subselect ) {
|
|
case 0:
|
|
Fkey_Icon( FKeyNo1, 61 ); // Fkey_dispN( FKeyNo1, "Y=");
|
|
Fkey_Icon( FKeyNo2, 62 ); // Fkey_dispN( FKeyNo2, "r=");
|
|
Fkey_Icon( FKeyNo3, 63 ); // Fkey_dispN( FKeyNo3, "Param");
|
|
Fkey_Icon( FKeyNo4, 723 ); // Fkey_dispN( FKeyNo4, "X=");
|
|
FkeyClear( FKeyNo5 );
|
|
Fkey_Icon(FKeyNo6, 6 ); //Fkey_DISPN( FKeyNo6," \xE6\x9E ");
|
|
break;
|
|
case 1:
|
|
Fkey_Icon( FKeyNo1, 65 ); // Fkey_dispN( FKeyNo1, "Y>");
|
|
Fkey_Icon( FKeyNo2, 66 ); // Fkey_dispN( FKeyNo2, "Y<");
|
|
Fkey_Icon( FKeyNo3, 67 ); // Fkey_dispN( FKeyNo3, "Y>=");
|
|
Fkey_Icon( FKeyNo4, 68 ); // Fkey_dispN( FKeyNo4, "Y<=");
|
|
FkeyClear( FKeyNo5 );
|
|
Fkey_Icon(FKeyNo6, 6 ); //Fkey_DISPN( FKeyNo6," \xE6\x9E ");
|
|
break;
|
|
case 2:
|
|
Fkey_Icon( FKeyNo1, 724 ); // Fkey_dispN( FKeyNo1, "X>");
|
|
Fkey_Icon( FKeyNo2, 725 ); // Fkey_dispN( FKeyNo2, "X<");
|
|
Fkey_Icon( FKeyNo3, 726 ); // Fkey_dispN( FKeyNo3, "X>=");
|
|
Fkey_Icon( FKeyNo4, 727 ); // Fkey_dispN( FKeyNo4, "X<=");
|
|
FkeyClear( FKeyNo5 );
|
|
Fkey_Icon(FKeyNo6, 6 ); //Fkey_DISPN( FKeyNo6," \xE6\x9E ");
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
Fkey_Icon( FKeyNo6, 991 ); // Fkey_dispN( FKeyNo6, "Ver.");
|
|
// Bdisp_PutDisp_DD();
|
|
|
|
DateCursorY = y*0x100+(DateCursorY&0xFF);
|
|
TimeCursorY = y*0x100+(TimeCursorY&0xFF);
|
|
TimePrintSetMode( 1 ) ; // Date/Time print IRQ on
|
|
GetKey_DisableMenu(&key);
|
|
TimePrintSetMode( 0 ) ; // Date/Time print IRQ off
|
|
DateToStr(DateStr);
|
|
TimeToStr(TimeStr);
|
|
switch (key) {
|
|
case KEY_CTRL_EXIT:
|
|
case KEY_CTRL_EXE:
|
|
cont=0;
|
|
break;
|
|
|
|
case KEY_CTRL_UP:
|
|
select-=1;
|
|
if ( select < 0 ) {select=(listmax); scrl=select-6;}
|
|
upj:
|
|
if ( select < scrl ) scrl-=1;
|
|
if ( scrl < 0 ) scrl=0;
|
|
break;
|
|
case KEY_CTRL_DOWN:
|
|
select+=1;
|
|
if ( select > (listmax) ) {select=0; scrl=0;}
|
|
downj:
|
|
if ((select - scrl) > 6 ) scrl+=1;
|
|
if ( scrl > (listmax) ) scrl=(listmax)-6;
|
|
break;
|
|
case KEY_CTRL_LEFT:
|
|
select=0;
|
|
scrl=0;
|
|
break;
|
|
case KEY_CTRL_RIGHT:
|
|
select=(listmax);
|
|
scrl=select-6;
|
|
break;
|
|
|
|
case KEY_CTRL_PAGEUP:
|
|
for ( i=0; i<7; i++) {
|
|
select--;
|
|
if ( select < 0 ) {select=0; scrl=0; break;}
|
|
if ( select < scrl ) scrl-=1;
|
|
if ( scrl < 0 ) scrl=0;
|
|
}
|
|
break;
|
|
case KEY_CTRL_PAGEDOWN:
|
|
for ( i=0; i<7; i++) {
|
|
select++;
|
|
if ( select > (listmax) ) {select=listmax; scrl=select-6; break; }
|
|
if ((select - scrl) > 6 ) scrl+=1;
|
|
if ( scrl > (listmax) ) scrl=(listmax)-6;
|
|
}
|
|
break;
|
|
|
|
case KEY_CTRL_F1:
|
|
// Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
switch (select) {
|
|
case SETUP_Angle: // Angle
|
|
Angle = 0 ; // Deg
|
|
break;
|
|
case SETUP_ComplexMode: // complex mode
|
|
ComplexMode = 0; // Real
|
|
break;
|
|
case SETUP_Variable:
|
|
VarListRange=0;
|
|
break;
|
|
case SETUP_FuncType: // function Type
|
|
switch ( subselect ) {
|
|
case 0:
|
|
FuncType = 0;
|
|
break;
|
|
case 1:
|
|
FuncType = 4;
|
|
break;
|
|
case 2:
|
|
FuncType = 8;
|
|
break;
|
|
}
|
|
break;
|
|
case SETUP_DrawType: // Draw Type connect
|
|
DrawType = 0 ;
|
|
break;
|
|
case SETUP_Coord: // Coord on
|
|
Coord = 1 ;
|
|
break;
|
|
case SETUP_Grid: // Grid on
|
|
Grid = 1 ;
|
|
break;
|
|
case SETUP_Axes: // Axes on
|
|
Axes = 1 ;
|
|
break;
|
|
case SETUP_Label: // Label on
|
|
Label = 1 ;
|
|
break;
|
|
case SETUP_Derivative: // Derivative on
|
|
Derivative = 1 ;
|
|
break;
|
|
case SETUP_Background: // BG pict
|
|
BG_Pict_No = 0 ;
|
|
break;
|
|
case SETUP_Sketch: // Sketch Line normal
|
|
S_L_Style = 0 ;
|
|
break;
|
|
case SETUP_Display: // Display
|
|
i = SelectNum1("Fix",CB_Round.DIGIT,0,15,&key);
|
|
if ( key==KEY_CTRL_EXIT ) break;
|
|
CB_Round.DIGIT=i;
|
|
CB_Round.MODE =Fix;
|
|
break;
|
|
case SETUP_Help: // Help
|
|
CB_HelpOn = 1; // help on
|
|
break;
|
|
case SETUP_RecoverSetup: // Setup Mode
|
|
CB_RecoverSetup = 1 ; // recover on
|
|
break;
|
|
case SETUP_EnableExtFONT: // Enable External Font
|
|
if ( limit ) break;
|
|
EnableExtFont=1;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_CMDINPUT: // Command input method
|
|
CommandInputMethod=0;
|
|
break;
|
|
case SETUP_EditIndent: //
|
|
i = CB_EditIndent&0x8;
|
|
CB_EditIndent = 0 | i;
|
|
break;
|
|
case SETUP_EditTopLine: // Use Top of Line (edit)
|
|
EditTopLine=1; // Hide Status Bar
|
|
break;
|
|
case SETUP_EditExtFont: // Use Ext Font (edit)
|
|
if ( EnableExtFont ) EditExtFont=1;
|
|
break;
|
|
case SETUP_EditFontSize: // Edit Char Size
|
|
EditFontSize &= 0xF0; // Standard
|
|
UpdateLineNum=1;
|
|
break;
|
|
case SETUP_EditLineNum: // Line number (edit)
|
|
EditFontSize |= 0x10; // on
|
|
break;
|
|
case SETUP_EditListChar:
|
|
EditListChar=0; // normal
|
|
break;
|
|
case SETUP_ExtendPict: // Max Pict
|
|
if ( limit ) break;
|
|
if ( UseHiddenRAM == 0 ) break; // Hidden RAM only
|
|
ExtendPict+=10;
|
|
if ( 79<ExtendPict ) ExtendPict=79;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_ExtendList: // Max List
|
|
if ( limit ) break;
|
|
if ( UseHiddenRAM == 0 ) break; // Hidden RAM only
|
|
ExtendList++;
|
|
if ( 19<ExtendList ) ExtendList=19;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_MaxMemMode: // Maximam Memory mode
|
|
MaxMemMode = 1 ; // on
|
|
FileListUpdate=1;
|
|
break;
|
|
case SETUP_UseHidnRam: // Hidden RAM
|
|
if ( limit ) break;
|
|
if ( IsHiddenRAM == 0 ) break;
|
|
if ( YesNo("Initialize Ok?")==0 ) break;
|
|
UseHiddenRAM = 1 ; // on
|
|
ExtendList=(6-1);
|
|
HiddenRAM_MatAryClear();
|
|
break;
|
|
case SETUP_HidnRamInit: // HiddenRAMInit
|
|
if ( limit ) break;
|
|
if ( UseHiddenRAM == 0 ) break; // Hidden RAM only
|
|
// if ( YesNo("Initialize Ok?")==0 ) break;
|
|
UseHiddenRAM &= 0x0F; // on
|
|
HiddenRAM_MatAryClear();
|
|
break;
|
|
case SETUP_DisableDebugMode: // DisableDebugMode
|
|
DisableDebugMode = 0 ; // on
|
|
break;
|
|
case SETUP_ExitDebugModeCheck: // ExitDebugModeCheck
|
|
ExitDebugModeCheck = 1 ; // on
|
|
break;
|
|
case SETUP_BreakStop: // Break
|
|
BreakCheckDefault = 1 ; // on
|
|
BreakCheck = 1 ; // on
|
|
break;
|
|
case SETUP_ExecTimeDsp: // TimeDsp
|
|
TimeDsp = 1 ; // on
|
|
break;
|
|
case SETUP_IfEndCheck: // IfEnd Check
|
|
CheckIfEnd = 1 ; // on
|
|
break;
|
|
case SETUP_ACBreak: // ACBreak
|
|
ACBreak = 1 ; // on
|
|
break;
|
|
case SETUP_ForceReturnMode:
|
|
ForceReturnMode = 0;
|
|
break;
|
|
case SETUP_Key1sttime: // Key Repeat First Count *ms
|
|
KeyRepeatFirstCount += 1 ;
|
|
if ( KeyRepeatFirstCount > 40 ) KeyRepeatFirstCount=40;
|
|
break;
|
|
case SETUP_KeyReptime: // Key Repeat Next Count *ms
|
|
KeyRepeatNextCount += 1 ;
|
|
if ( KeyRepeatNextCount > 20 ) KeyRepeatNextCount=20;
|
|
break;
|
|
case SETUP_SkipUpDown: // Skipup/down count +
|
|
PageUpDownNum++; if ( PageUpDownNum > 9999 ) PageUpDownNum = 9999;
|
|
break;
|
|
case SETUP_MatDspmode: // Matrix Display mode
|
|
MatXYmode = 0 ; // m,n
|
|
break;
|
|
case SETUP_Matrixbase: // Matrix base
|
|
MatBaseDefault = 0 ; //
|
|
MatBase = MatBaseDefault;
|
|
break;
|
|
case SETUP_DATE: // DATE year
|
|
year = (DateStr[0]-'0')*1000+(DateStr[1]-'0')*100+(DateStr[2]-'0')*10+(DateStr[3]-'0');
|
|
year = SelectNum2("Year",year,0,9999);
|
|
DateStr[0]=(year/1000)+'0';
|
|
DateStr[1]=(year/100)%10+'0';
|
|
DateStr[2]=(year/10)%10+'0';
|
|
DateStr[3]=(year)%10+'0';
|
|
StorDATE( DateStr );
|
|
break;
|
|
case SETUP_TIME: // Time hour
|
|
hour = (TimeStr[0]-'0')*10+(TimeStr[1]-'0');
|
|
hour = SelectNum2("Hour",hour,0,23);
|
|
TimeStr[0]=(hour/10)%10+'0';
|
|
TimeStr[1]=(hour)%10+'0';
|
|
StorTIME( TimeStr );
|
|
break;
|
|
case SETUP_RootFolder:
|
|
if ( StorageMode & 2 ) break;
|
|
root2[0]='\0'; // default root folder
|
|
folder[0]='\0';
|
|
FileListUpdate= 1;
|
|
break;
|
|
case SETUP_AutoSaveMode: // Auto save
|
|
AutoSaveMode = 1;
|
|
break;
|
|
case SETUP_Forceg1msave: // Force g1m save
|
|
ForceG1Msave = 1 ; // g1m and text
|
|
break;
|
|
case SETUP_Pictmode: // Pict mode
|
|
PictMode = 0 ; // Storage Memory mode
|
|
break;
|
|
case SETUP_Storagemode: // Storage mode
|
|
ChangeStorageMode( 0 ); // Memory mode
|
|
break;
|
|
case SETUP_RefrshCtlDD: // Refresh Ctrl DD Mode
|
|
RefreshCtrl = 0 ; // off (default)
|
|
break;
|
|
case SETUP_DefaultWaitcount: // Wait count +
|
|
DefaultWaitcount+=10; if ( DefaultWaitcount > 9999 ) DefaultWaitcount = 9999;
|
|
Waitcount=DefaultWaitcount;
|
|
break;
|
|
case SETUP_Executemode: // CB mode
|
|
CB_INTDefault = 0 ; // normal
|
|
CB_INT = CB_INTDefault;
|
|
ComplexMode = 0; // real
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case KEY_CTRL_F2:
|
|
// Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
switch (select) {
|
|
case SETUP_Angle: // Angle
|
|
Angle = 1 ; // Rad
|
|
break;
|
|
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:
|
|
FuncType = 1;
|
|
break;
|
|
case 1:
|
|
FuncType = 5;
|
|
break;
|
|
case 2:
|
|
FuncType = 9;
|
|
break;
|
|
}
|
|
break;
|
|
case SETUP_DrawType: // Draw Type Plot
|
|
DrawType = 1 ;
|
|
break;
|
|
case SETUP_Coord: // Coord off
|
|
Coord = 0 ;
|
|
break;
|
|
case SETUP_Grid: // Grid off
|
|
Grid = 0 ;
|
|
break;
|
|
case SETUP_Axes: // Axes off
|
|
Axes = 0 ;
|
|
break;
|
|
case SETUP_Label: // Label off
|
|
Label = 0 ;
|
|
break;
|
|
case SETUP_Derivative: // Derivative off
|
|
Derivative = 0 ;
|
|
break;
|
|
case SETUP_Background: // BG pict
|
|
BG_Pict_No = SelectNum2("Pict",BG_Pict_No,1,20);
|
|
break;
|
|
case SETUP_Sketch: // Sketch Line Thick
|
|
S_L_Style = 1 ;
|
|
break;
|
|
case SETUP_Display: // Display
|
|
i = SelectNum1("Sci",CB_Round.DIGIT,0,15,&key);
|
|
if ( key==KEY_CTRL_EXIT ) break;
|
|
CB_Round.DIGIT=i;
|
|
CB_Round.MODE =Sci;
|
|
break;
|
|
case SETUP_Help: // Help
|
|
CB_HelpOn = 0; // help off
|
|
break;
|
|
case SETUP_RecoverSetup: // Setup Mode
|
|
CB_RecoverSetup = 0 ; // recover off
|
|
break;
|
|
case SETUP_EnableExtFONT: // Enable External Font
|
|
if ( limit ) break;
|
|
EnableExtFont=0;
|
|
EditExtFont=0;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_CMDINPUT: // Command input method
|
|
CommandInputMethod=1;
|
|
break;
|
|
case SETUP_EditIndent: //
|
|
i = CB_EditIndent&0x8;
|
|
CB_EditIndent = 1 | i;
|
|
break;
|
|
case SETUP_EditTopLine: // Use Top of Line (edit)
|
|
EditTopLine=0; // Status Bar ON
|
|
break;
|
|
case SETUP_EditExtFont: // Use Ext Font (edit)
|
|
EditExtFont=0;
|
|
break;
|
|
case SETUP_EditFontSize: // Edit Char Size
|
|
EditFontSize &= 0xF0; // Standard
|
|
EditFontSize |= 0x01; // mini
|
|
break;
|
|
case SETUP_EditLineNum: // Line number (edit)
|
|
EditFontSize &= 0x0F; // off (default)
|
|
UpdateLineNum=1;
|
|
break;
|
|
case SETUP_EditListChar:
|
|
EditListChar=1; //
|
|
break;
|
|
case SETUP_ExtendPict: // Max Pict
|
|
if ( limit ) break;
|
|
if ( UseHiddenRAM == 0 ) break; // Hidden RAM only
|
|
if (ExtendPict>70) ExtendPict=70; else ExtendPict-=10;
|
|
if (ExtendPict<0) ExtendPict=0;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_ExtendList: // Max List
|
|
if ( limit ) break;
|
|
if ( UseHiddenRAM == 0 ) break; // Hidden RAM only
|
|
ExtendList--;
|
|
if (ExtendList<0) ExtendList=0;
|
|
HiddenRAM_MatAryClear();
|
|
break;
|
|
case SETUP_MaxMemMode: // Maximam Memory mode
|
|
MaxMemMode = 0 ; // off
|
|
FileListUpdate=1;
|
|
break;
|
|
case SETUP_UseHidnRam: // Hidden RAM
|
|
if ( limit ) break;
|
|
if ( YesNo("Initialize Ok?")==0 ) break;
|
|
UseHiddenRAM = 0 ; // off
|
|
ExtendPict=0;
|
|
ExtendList=0;
|
|
HiddenRAM_MatAryClear();
|
|
break;
|
|
case SETUP_HidnRamInit: // HiddenRAMInit
|
|
if ( limit ) break;
|
|
if ( UseHiddenRAM == 0 ) break; // Hidden RAM only
|
|
// if ( YesNo("Initialize Ok?")==0 ) break;
|
|
UseHiddenRAM |= 0x10; // off
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_DisableDebugMode: // DisableDebugMode
|
|
DisableDebugMode = 1 ; // disable
|
|
break;
|
|
case SETUP_ExitDebugModeCheck: // ExitDebugModeCheck
|
|
ExitDebugModeCheck = 0 ; // off
|
|
break;
|
|
case SETUP_BreakStop: // Break
|
|
BreakCheckDefault = 0 ; // off
|
|
BreakCheck = 0 ; // off
|
|
break;
|
|
case SETUP_ForceReturnMode:
|
|
ForceReturnMode = 1;
|
|
break;
|
|
case SETUP_ExecTimeDsp: // TimeDsp
|
|
TimeDsp = 0 ; // off
|
|
break;
|
|
case SETUP_IfEndCheck: // IfEnd Check
|
|
CheckIfEnd = 0 ; // off
|
|
break;
|
|
case SETUP_ACBreak: // ACBreak
|
|
ACBreak = 0 ; // off
|
|
break;
|
|
case SETUP_Key1sttime: // Key Repeat First Count *ms
|
|
KeyRepeatFirstCount -= 1 ;
|
|
if ( KeyRepeatFirstCount < 1 ) KeyRepeatFirstCount=1;
|
|
break;
|
|
case SETUP_KeyReptime: // Key Repeat Next Count *ms
|
|
KeyRepeatNextCount -= 1 ;
|
|
if ( KeyRepeatNextCount < 1 ) KeyRepeatNextCount=1;
|
|
break;
|
|
case SETUP_SkipUpDown: // Skipup/down count -
|
|
PageUpDownNum--; if ( PageUpDownNum < PageUpDownNumDefault ) PageUpDownNum = PageUpDownNumDefault;
|
|
break;
|
|
case SETUP_MatDspmode: // Matrix display mode
|
|
MatXYmode = 1 ; // x,y
|
|
break;
|
|
case SETUP_Matrixbase: // Matrix base
|
|
MatBaseDefault = 1 ; // base
|
|
MatBase = MatBaseDefault;
|
|
break;
|
|
case SETUP_RefrshCtlDD: // Refresh Ctrl DD Mode
|
|
RefreshCtrl = 1 ; // graphics
|
|
break;
|
|
case SETUP_DATE: // DATE month
|
|
month = (DateStr[5]-'0')*10+(DateStr[6]-'0');
|
|
month = SelectNum2("Month",month,1,12);
|
|
DateStr[5]=(month/10)%10+'0';
|
|
DateStr[6]=(month)%10+'0';
|
|
StorDATE( DateStr );
|
|
break;
|
|
case SETUP_TIME: // Time min
|
|
min = (TimeStr[3]-'0')*10+(TimeStr[4]-'0');
|
|
min = SelectNum2("Min",min,0,59);
|
|
TimeStr[3]=(min/10)%10+'0';
|
|
TimeStr[4]=(min)%10+'0';
|
|
StorTIME( TimeStr );
|
|
break;
|
|
case SETUP_RootFolder:
|
|
if ( Is35E2 == 0 ) break;
|
|
if ( StorageMode & 2 ) break;
|
|
if ( strlen( folderbuf ) ) {
|
|
root2[0]='\\';
|
|
strcpy( root2+1, folderbuf ); // current folder
|
|
} else root2[0]='\0'; // root folder
|
|
folder[0]='\0';
|
|
FileListUpdate= 1;
|
|
break;
|
|
case SETUP_AutoSaveMode: // Auto save
|
|
AutoSaveMode = 0;
|
|
break;
|
|
case SETUP_Forceg1msave: // Force g1m save
|
|
ForceG1Msave = 0 ; // text only
|
|
break;
|
|
case SETUP_Pictmode: // Pict mode
|
|
PictMode = 1 ; // heap mode
|
|
break;
|
|
case SETUP_Storagemode: // Storage mode
|
|
ChangeStorageMode( CheckSD() ); // SD mode
|
|
break;
|
|
case SETUP_DefaultWaitcount: // Wait count -
|
|
DefaultWaitcount-=10; if ( DefaultWaitcount < 0 ) DefaultWaitcount = 0;
|
|
Waitcount=DefaultWaitcount;
|
|
break;
|
|
case SETUP_Executemode: // CB mode
|
|
CB_INTDefault = 1 ; // int
|
|
CB_INT = CB_INTDefault;
|
|
ComplexMode = 0; // real
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case KEY_CTRL_F3:
|
|
// Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
switch (select) {
|
|
case SETUP_FuncType: // function Type
|
|
switch ( subselect ) {
|
|
case 0:
|
|
FuncType = 2;
|
|
break;
|
|
case 1:
|
|
FuncType = 6;
|
|
break;
|
|
case 2:
|
|
FuncType =10;
|
|
break;
|
|
}
|
|
break;
|
|
case SETUP_Angle: // Angle
|
|
Angle = 2 ; // Grad
|
|
break;
|
|
case SETUP_ComplexMode: // complex mode
|
|
ComplexMode = 2; // r_theta
|
|
break;
|
|
case SETUP_Sketch: // Sketch Line Broken
|
|
S_L_Style = 2 ;
|
|
break;
|
|
case SETUP_Display: // Display
|
|
i = SelectNum1("Nrm",CB_Round.DIGIT,0,15,&key);
|
|
if ( key==KEY_CTRL_EXIT ) break;
|
|
CB_Round.DIGIT=i;
|
|
CB_Round.MODE =Norm;
|
|
break;
|
|
case SETUP_EditIndent: //
|
|
i = CB_EditIndent&0x8;
|
|
CB_EditIndent = 2 | i;
|
|
break;
|
|
case SETUP_EditFontSize: // Edit Char Size
|
|
EditFontSize &= 0xF0; // mini
|
|
EditFontSize |= 0x02; // reverse
|
|
break;
|
|
case SETUP_EditListChar:
|
|
EditListChar=2; // reverse L
|
|
break;
|
|
case SETUP_ExecTimeDsp: // TimeDsp
|
|
if ( TimeDsp == 0 ) break;
|
|
if ( TimeDsp & 0x4 ) TimeDsp &= ~0x4 ; // hires timer off
|
|
else { if ( IsSH3 == 0 ) TimeDsp |= 0x4 ; } // hires timer on
|
|
break;
|
|
case SETUP_ForceReturnMode:
|
|
ForceReturnMode = 2;
|
|
break;
|
|
case SETUP_SkipUpDown: // Skipup/down count init
|
|
PageUpDownNum = SelectNum3( PageUpDownNum );
|
|
break;
|
|
case SETUP_RefrshCtlDD: // Refresh Ctrl DD Mode
|
|
RefreshCtrl = 2 ; // graphics+text
|
|
break;
|
|
case SETUP_DATE: // DATE day
|
|
day = (DateStr[8]-'0')*10+(DateStr[9]-'0');
|
|
day = SelectNum2("Day",day,1,31);
|
|
DateStr[8]=(day/10)%10+'0';
|
|
DateStr[9]=(day)%10+'0';
|
|
StorDATE( DateStr );
|
|
break;
|
|
case SETUP_TIME: // Time sec
|
|
sec = (TimeStr[6]-'0')*10+(TimeStr[7]-'0');
|
|
sec = SelectNum2("Sec",sec,0,59);
|
|
TimeStr[6]=(sec/10)%10+'0';
|
|
TimeStr[7]=(sec)%10+'0';
|
|
StorTIME( TimeStr );
|
|
break;
|
|
case SETUP_Pictmode: // Pict mode
|
|
PictMode = 2 ; // Memory(read) & Smem(save) mode
|
|
break;
|
|
case SETUP_Storagemode: // Storage mode
|
|
ChangeStorageMode( StorageMode | 2 ); // main memory
|
|
break;
|
|
case SETUP_DefaultWaitcount: // Wait count set
|
|
DefaultWaitcount = SelectNum2( "Wait", DefaultWaitcount, 0, 9999);
|
|
Waitcount=DefaultWaitcount;
|
|
break;
|
|
case SETUP_Executemode: // CB mode
|
|
CB_INTDefault = 2 ; // complex
|
|
CB_INT = CB_INTDefault;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case KEY_CTRL_F4:
|
|
// Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
switch (select) {
|
|
case SETUP_FuncType: // function Type
|
|
switch ( subselect ) {
|
|
case 0:
|
|
FuncType = 3;
|
|
break;
|
|
case 1:
|
|
FuncType = 7;
|
|
break;
|
|
case 2:
|
|
FuncType =11;
|
|
break;
|
|
}
|
|
break;
|
|
case SETUP_Sketch: // Sketch Line Dot
|
|
S_L_Style = 3 ;
|
|
break;
|
|
case SETUP_Display: // Display
|
|
ENG++;
|
|
if ( ENG>3 ) ENG=0;
|
|
if ( ENG>1 ) ENG=3;
|
|
break;
|
|
case SETUP_CMDINPUT: // Command input method (fx5800P mode change)
|
|
CB_fx5800P = 1-CB_fx5800P;
|
|
break;
|
|
case SETUP_EditIndent: //
|
|
i = CB_EditIndent&0x8;
|
|
CB_EditIndent = 4 | i;
|
|
break;
|
|
case SETUP_EditFontSize: // Edit Char Size
|
|
EditFontSize &= 0xF0; // mini
|
|
EditFontSize |= 0x03; // underbar cursor
|
|
break;
|
|
case SETUP_ExtendPict: // Max Pict
|
|
if ( limit ) break;
|
|
ExtendPict=0;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_ExecTimeDsp: // TimeDsp
|
|
if ( TimeDsp == 0 ) break;
|
|
if ( TimeDsp & 0x2 ) TimeDsp &= ~0x2 ; // off reset GetKey1/2
|
|
else TimeDsp |= 0x2 ; // on reset GetKey1/2
|
|
break;
|
|
case SETUP_ExtendList: // Max List
|
|
if ( limit ) break;
|
|
ExtendList=0;
|
|
ExtListMax=0;
|
|
HiddenRAM_MatAryInit();
|
|
break;
|
|
case SETUP_ForceReturnMode:
|
|
ForceReturnMode = 3;
|
|
break;
|
|
case SETUP_Key1sttime: // Key Repeat First Count *ms
|
|
KeyRepeatFirstCount = 20 ;
|
|
break;
|
|
case SETUP_KeyReptime: // Key Repeat Next Count *ms
|
|
KeyRepeatNextCount = 5 ;
|
|
break;
|
|
case SETUP_SkipUpDown: // Skipup/down count init
|
|
PageUpDownNum = PageUpDownNumDefault ;
|
|
break;
|
|
case SETUP_RefrshCtlDD: // Refresh Ctrl DD Mode
|
|
if ( RefreshCtrl ) Refreshtime = SelectNum4( Refreshtime+1 )-1;
|
|
break;
|
|
case SETUP_Pictmode: // Pict mode
|
|
PictMode = 3 ; // MCS mode (default)
|
|
break;
|
|
case SETUP_DefaultWaitcount: // Wait count init
|
|
DefaultWaitcount = 0;
|
|
Waitcount=DefaultWaitcount;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case KEY_CTRL_F5:
|
|
// Bdisp_AreaReverseVRAM(0, y*8, 127, y*8+7); // reverse select line
|
|
switch (select) {
|
|
case SETUP_EditIndent: //
|
|
CB_EditIndent^=0x08;
|
|
break;
|
|
case SETUP_EditFontSize: // Edit Char Size
|
|
EditFontSize &= 0xF0; // mini
|
|
EditFontSize |= 0x04; // underbar cursor & reverse
|
|
break;
|
|
case SETUP_RefrshCtlDD: // Refresh Ctrl DD Mode init
|
|
RefreshCtrl = 1 ; // graphics only
|
|
Refreshtime = 3-1 ; // 3/128
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case KEY_CTRL_F6:
|
|
switch (select) {
|
|
case SETUP_FuncType: // function Type
|
|
switch ( subselect ) {
|
|
case 0:
|
|
subselect = 1;
|
|
break;
|
|
case 1:
|
|
subselect = 2;
|
|
break;
|
|
case 2:
|
|
subselect = 0;
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
VerDisp( limit );
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
Bkey_Set_RepeatTime(KeyRepeatFirstCount,KeyRepeatNextCount); // set cursor rep
|
|
}
|
|
SaveConfig();
|
|
return select;
|
|
}
|