From e18fdeefd172b8243c99fe7811cee0381c4572b5 Mon Sep 17 00:00:00 2001 From: CalcLoverHK <0v0katai@gmail.com> Date: Tue, 16 Jan 2024 03:36:05 +0800 Subject: [PATCH] Restarted branch because of accidental email leak --- CREDIT.md | 531 +++ LICENSE | 117 - LICENSE.md | 336 ++ README.md | 33 +- doc-cg/ChangeCG_EN.txt | 2670 +++++++++++++++ doc-cg/ChangeCG_J.txt | 4666 +++++++++++++++++++++++++ doc-cg/Command_List_CG.txt | 1236 +++++++ doc-cg/ErrorCode_List.txt | 60 + doc-cg/Extended_opcode_list.txt | 160 + doc-cg/JIS_to_GB_Tbl.txt | Bin 0 -> 88794 bytes doc-cg/ManualCG_EN.txt | 2773 +++++++++++++++ doc-cg/ManualCG_FR.txt | 2813 +++++++++++++++ doc-cg/ManualCG_J.txt | 3229 ++++++++++++++++++ doc-cg/Mat_Vct_List.txt | 175 + doc-cg/Message.txt | 183 + doc-cg/ReadmeCG_EN.txt | 680 ++++ doc-cg/ReadmeCG_FR.txt | 622 ++++ doc-cg/ReadmeCG_J.txt | 721 ++++ doc-cg/Setup_format.txt | 121 + doc-fx/Change_EN.txt | 2221 ++++++++++++ doc-fx/Change_J.txt | 3417 +++++++++++++++++++ doc-fx/Command_List.txt | 1154 +++++++ doc-fx/ErrorCode_List.txt | 57 + doc-fx/Extended_opcode_list.txt | 160 + doc-fx/Manual_EN.txt | 2488 ++++++++++++++ doc-fx/Manual_FR.txt | 2502 ++++++++++++++ doc-fx/Manual_J.txt | 2780 +++++++++++++++ doc-fx/Mat_Vct_List.txt | 175 + doc-fx/README_EN.txt | 588 ++++ doc-fx/README_FR.txt | 558 +++ doc-fx/README_J.txt | 635 ++++ doc-fx/Setup_format.txt | 136 + examples/FKeyMenu/DIALOGUE.g1m | Bin 0 -> 160 bytes examples/FKeyMenu/Dialogue.g3m | Bin 0 -> 156 bytes examples/FKeyMenu/FKEYMENU.g1m | Bin 0 -> 448 bytes examples/FKeyMenu/FKeyMenu.g3m | Bin 0 -> 840 bytes examples/List/LIST.txt | 13 + examples/ML/BMP.txt | 16 + examples/ML/MLELIPS1.g1m | Bin 0 -> 268 bytes examples/ML/MLPOLY1.g1m | Bin 0 -> 468 bytes examples/ML/MLRECT1.g1m | Bin 0 -> 360 bytes examples/ML/ML_Poly.g3m | Bin 0 -> 512 bytes examples/ML/ML_Poly5.g3m | Bin 0 -> 536 bytes examples/ML/ML_Rect.g3m | Bin 0 -> 372 bytes examples/ML/PIXEL.txt | 11 + examples/ML/POLY.txt | 10 + examples/bmp-cg/BMP16A.g3m | Bin 0 -> 1064 bytes examples/bmp-cg/BMPTRSP.g3m | Bin 0 -> 1096 bytes examples/bmp-cg/SELECTED.bmp | Bin 0 -> 17720 bytes examples/bmp-cg/WBMP.g3m | Bin 0 -> 188 bytes examples/bmp-cg/WBMPV.g3m | Bin 0 -> 156 bytes examples/bmp-fx/BMPDRAW.g1m | Bin 0 -> 176 bytes examples/bmp-fx/BMPROTE.g1m | Bin 0 -> 196 bytes examples/bmp-fx/DRAWMAT.g1m | Bin 0 -> 296 bytes examples/bmp-fx/MainMen1.bmp | Bin 0 -> 1088 bytes examples/graphXY/GRAPHXY1.txt | 3 + examples/graphXY/GRAPHXY2.txt | 4 + examples/graphXY/LISSAJ.g1m | Bin 0 -> 360 bytes examples/graphXY/LISSAJ.g3m | Bin 0 -> 364 bytes examples/graphXY/LISSAJ.txt | 39 + examples/opcodes/OPCODEX.g1m | Bin 0 -> 880 bytes examples/opcodes/OPCODEX.g3m | Bin 0 -> 880 bytes examples/opcodes/OPCODEX.txt | 77 + examples/recursive/FIBO.txt | 5 + examples/recursive/FIBOSB.txt | 10 + examples/serial/SERIAL.txt | 17 + examples/serial/SR38CLOS.g1m | Bin 0 -> 92 bytes examples/serial/SR38GKEY.g1m | Bin 0 -> 164 bytes examples/serial/SR38OPEN.g1m | Bin 0 -> 92 bytes examples/serial/SR38RLST.g1m | Bin 0 -> 116 bytes examples/serial/SR38SLST.g1m | Bin 0 -> 116 bytes examples/serial/SRGKEY.g1m | Bin 0 -> 116 bytes examples/serial/SRRXA.g1m | Bin 0 -> 96 bytes examples/serial/SRRXLIST.g1m | Bin 0 -> 112 bytes examples/serial/SRRXMAT.g1m | Bin 0 -> 112 bytes examples/serial/SRRXSTR.g1m | Bin 0 -> 100 bytes examples/serial/SRTXA.g1m | Bin 0 -> 104 bytes examples/serial/SRTXLIST.g1m | Bin 0 -> 112 bytes examples/serial/SRTXMAT.g1m | Bin 0 -> 144 bytes examples/serial/SRTXSTR.g1m | Bin 0 -> 104 bytes examples/system/SYS.g1m | Bin 0 -> 836 bytes examples/system/SYS.g3m | Bin 0 -> 1044 bytes examples/system/readme.txt | 69 + examples/try_except/TRYERR.txt | 6 + examples/try_except/TRYTEST.txt | 55 + font/@LFONTA0.bmp | Bin 0 -> 5246 bytes font/@LFONTA1.bmp | Bin 0 -> 5248 bytes font/@LFONTG.bmp | Bin 0 -> 1792 bytes font/@LFONTG0.bmp | Bin 0 -> 1792 bytes font/@LFONTK.bmp | Bin 0 -> 4382 bytes font/@LFONTK0.bmp | Bin 0 -> 4382 bytes font/@LFONTK1.bmp | Bin 0 -> 4382 bytes font/@MFONTA0.bmp | Bin 0 -> 4166 bytes font/@MFONTA1.bmp | Bin 0 -> 4168 bytes font/@MFONTG.bmp | Bin 0 -> 1128 bytes font/@MFONTG0.bmp | Bin 0 -> 1128 bytes font/@MFONTK.bmp | Bin 0 -> 3482 bytes font/@MFONTK0.bmp | Bin 0 -> 3482 bytes font/@MFONTK1.bmp | Bin 0 -> 3482 bytes font/FONTA6M.bmp | Bin 0 -> 830 bytes font/FONTA6M0.bmp | Bin 0 -> 830 bytes font/FONTA8L.bmp | Bin 0 -> 638 bytes font/FONTA8L0.bmp | Bin 0 -> 638 bytes font/FONTA8L1.bmp | Bin 0 -> 638 bytes font/FONTG8L.bmp | Bin 0 -> 254 bytes font/FONTG8L0.bmp | Bin 0 -> 254 bytes font/FONTK6M0.bmp | Bin 0 -> 702 bytes font/FONTK8L0.bmp | Bin 0 -> 542 bytes font/FONTK8L1.bmp | Bin 0 -> 544 bytes src-cg/CBASICCG_SELECTED.CGI | Bin 0 -> 11776 bytes src-cg/CBASICCG_UNSELECTED.CGI | Bin 0 -> 11776 bytes src-cg/CBCG145.cpp | 254 ++ src-cg/CBCG147.INI | 398 +++ src-cg/CBP.h | 32 + src-cg/CBPC_Eval.cpp | 1623 +++++++++ src-cg/CBPC_ListEval.cpp | 1160 +++++++ src-cg/CBPI_Eval.cpp | 1477 ++++++++ src-cg/CBPI_Eval.h | 113 + src-cg/CBPI_ListEval.cpp | 963 ++++++ src-cg/CBPI_interpreter.cpp | 818 +++++ src-cg/CBPI_interpreter.h | 18 + src-cg/CBP_Color.cpp | 342 ++ src-cg/CBP_Eval.cpp | 2202 ++++++++++++ src-cg/CBP_Eval.h | 175 + src-cg/CBP_Eval_ext.cpp | 203 ++ src-cg/CBP_GraphFunc.cpp | 373 ++ src-cg/CBP_Help.cpp | 437 +++ src-cg/CBP_Help.h | 10 + src-cg/CBP_Kana.cpp | 1531 +++++++++ src-cg/CBP_Kana.h | 47 + src-cg/CBP_KeyScan.cpp | 533 +++ src-cg/CBP_KeyScan.h | 152 + src-cg/CBP_ListEval.cpp | 1189 +++++++ src-cg/CBP_Matrix.cpp | 5511 ++++++++++++++++++++++++++++++ src-cg/CBP_Matrix.h | 162 + src-cg/CBP_MonochromeLib.cpp | 1260 +++++++ src-cg/CBP_MonochromeLib.h | 100 + src-cg/CBP_Str.cpp | 2392 +++++++++++++ src-cg/CBP_Str.h | 134 + src-cg/CBP_StrExt.cpp | 278 ++ src-cg/CBP_TextConv.cpp | 1940 +++++++++++ src-cg/CBP_TextConv.h | 2 + src-cg/CBP_Time.cpp | 67 + src-cg/CBP_Time.h | 79 + src-cg/CBP_bmp.cpp | 904 +++++ src-cg/CBP_bmp.h | 47 + src-cg/CBP_complex.h | 204 ++ src-cg/CBP_edit.cpp | 3045 +++++++++++++++++ src-cg/CBP_edit.h | 54 + src-cg/CBP_error.cpp | 323 ++ src-cg/CBP_error.h | 90 + src-cg/CBP_file.cpp | 4632 +++++++++++++++++++++++++ src-cg/CBP_file.h | 204 ++ src-cg/CBP_fileMCS.cpp | 193 ++ src-cg/CBP_glib.cpp | 1215 +++++++ src-cg/CBP_glib.h | 70 + src-cg/CBP_glib2.cpp | 1258 +++++++ src-cg/CBP_glib2.h | 11 + src-cg/CBP_icon.cpp | 377 +++ src-cg/CBP_inp.cpp | 5634 +++++++++++++++++++++++++++++++ src-cg/CBP_inp.h | 279 ++ src-cg/CBP_inpcmd.cpp | 1367 ++++++++ src-cg/CBP_inpcmdF1.cpp | 391 +++ src-cg/CBP_inpcmdF2.cpp | 380 +++ src-cg/CBP_inpcmdF3.cpp | 326 ++ src-cg/CBP_inpcmdF4.cpp | 272 ++ src-cg/CBP_inpcmdF5.cpp | 208 ++ src-cg/CBP_inpcmdF6.cpp | 209 ++ src-cg/CBP_interpreter.cpp | 3187 +++++++++++++++++ src-cg/CBP_interpreter.h | 527 +++ src-cg/CBP_interpreterVRAM.cpp | 3084 +++++++++++++++++ src-cg/CBP_io.cpp | 1152 +++++++ src-cg/CBP_io.h | 169 + src-cg/CBP_io_fkeyicon.cpp | 293 ++ src-cg/CBP_kfont.h | 1886 +++++++++++ src-cg/CBP_kfontminimini.h | 943 ++++++ src-cg/CBP_kfontminiminiBold.h | 942 ++++++ src-cg/CBP_main.cpp | 206 ++ src-cg/CBP_serial.cpp | 588 ++++ src-cg/CBP_setup.cpp | 3541 +++++++++++++++++++ src-cg/CBP_setup.h | 83 + src-cg/CBP_sys.cpp | 1234 +++++++ src-cg/CBP_sys.h | 334 ++ src-cg/CG_syscall.asm | 460 +++ src-cg/CG_syscall.h | 127 + src-cg/JIStoGB.h | 500 +++ src-cg/MonochromeLibCG.cpp | 2544 ++++++++++++++ src-cg/MonochromeLibCG.h | 227 ++ src-cg/NormalG_F72B.txt | 261 ++ src-cg/Ptune2_direct.cpp | 209 ++ src-cg/Ptune2_direct.h | 85 + src-cg/SELECTED.CPP | 68 + src-cg/SELECTED_8C.CPP | 68 + src-cg/SH7305_CPG_BSC.h | 486 +++ src-cg/UNSELECTED.CPP | 68 + src-cg/UNSELECTED_8C.CPP | 68 + src-cg/_ansi.h | 133 + src-cg/_types.h | 89 + src-cg/color.h | 159 + src-cg/config.h | 255 ++ src-cg/dispbios.h | 88 + src-cg/features.h | 205 ++ src-cg/filebios.h | 107 + src-cg/ieeefp.h | 377 +++ src-cg/newlib.h | 171 + src-cg/prizm.h | 26 + src-cg/qsort.cpp | 153 + src-cg/rtc.h | 75 + src-cg/selected.bmp | Bin 0 -> 6966 bytes src-cg/snprintf.cpp | 1017 ++++++ src-cg/string.h | 57 + src-cg/types.h | 489 +++ src-cg/unselected.bmp | Bin 0 -> 6966 bytes src-fx/AddinInfo.txt | 12 + src-fx/CB.h | 38 + src-fx/CBASIC.g1w | 56 + src-fx/CBC_Eval.c | 1616 +++++++++ src-fx/CBC_ListEval.c | 1156 +++++++ src-fx/CBI_Eval.c | 1478 ++++++++ src-fx/CBI_Eval.h | 104 + src-fx/CBI_ListEval.c | 960 ++++++ src-fx/CBI_interpreter.c | 767 +++++ src-fx/CBI_interpreter.h | 18 + src-fx/CBZ_Help.c | 502 +++ src-fx/CBZ_TextConv.c | 1868 ++++++++++ src-fx/CBZ_Time.c | 71 + src-fx/CBZ_bmp.c | 462 +++ src-fx/CBZ_edit.c | 2415 +++++++++++++ src-fx/CBZ_editmini.c | 245 ++ src-fx/CBZ_error.c | 223 ++ src-fx/CBZ_file.c | 4165 +++++++++++++++++++++++ src-fx/CBZ_fileMCS.c | 229 ++ src-fx/CBZ_file_.c | 3357 ++++++++++++++++++ src-fx/CBZ_inp.c | 5126 ++++++++++++++++++++++++++++ src-fx/CBZ_inpcmd.c | 1321 ++++++++ src-fx/CBZ_inpcmdF1.c | 377 +++ src-fx/CBZ_inpcmdF2.c | 367 ++ src-fx/CBZ_inpcmdF3.c | 300 ++ src-fx/CBZ_inpcmdF4.c | 263 ++ src-fx/CBZ_inpcmdF5.c | 184 + src-fx/CBZ_inpcmdF6.c | 196 ++ src-fx/CBZ_main.c | 229 ++ src-fx/CBZ_serial.c | 482 +++ src-fx/CBZ_setup.c | 2519 ++++++++++++++ src-fx/CB_Eval.c | 2183 ++++++++++++ src-fx/CB_Eval.h | 171 + src-fx/CB_Eval_ext.c | 198 ++ src-fx/CB_Help.h | 10 + src-fx/CB_InterpreterGoto.c | 190 ++ src-fx/CB_Kana.c | 1903 +++++++++++ src-fx/CB_Kana.h | 45 + src-fx/CB_ListEval.c | 1185 +++++++ src-fx/CB_Matrix.c | 5165 ++++++++++++++++++++++++++++ src-fx/CB_Matrix.h | 159 + src-fx/CB_MonochromeLib.c | 1158 +++++++ src-fx/CB_MonochromeLib.h | 93 + src-fx/CB_Str.c | 2194 ++++++++++++ src-fx/CB_Str.h | 114 + src-fx/CB_StrExt.c | 276 ++ src-fx/CB_TextConv.h | 2 + src-fx/CB_Time.h | 79 + src-fx/CB_bmp.h | 46 + src-fx/CB_complex.h | 203 ++ src-fx/CB_edit.h | 49 + src-fx/CB_error.h | 84 + src-fx/CB_file.h | 176 + src-fx/CB_glib.c | 705 ++++ src-fx/CB_glib.h | 58 + src-fx/CB_glib2.c | 1139 +++++++ src-fx/CB_glib2.h | 11 + src-fx/CB_inp.h | 261 ++ src-fx/CB_interpreter.c | 3017 +++++++++++++++++ src-fx/CB_interpreter.h | 476 +++ src-fx/CB_interpreterVRAM.c | 2583 ++++++++++++++ src-fx/CB_interpreter_.c | 3209 ++++++++++++++++++ src-fx/CB_io.c | 529 +++ src-fx/CB_io.h | 101 + src-fx/CB_io_fkeyicon.c | 215 ++ src-fx/CB_setup.h | 60 + src-fx/ErrorCode_List.txt | 57 + src-fx/FXSH_Build.bat | 22 + src-fx/FXSH_Builda.bat | 22 + src-fx/KeyScan.c | 620 ++++ src-fx/KeyScan.h | 230 ++ src-fx/MainIcon.bmp | Bin 0 -> 138 bytes src-fx/MonochromeLib.c | 2679 +++++++++++++++ src-fx/MonochromeLib.h | 184 + src-fx/fxCG_Registers.h | 140 + src-fx/fx_syscall.h | 126 + src-fx/fx_syscall.src | 560 +++ src-fx/rtc.h | 75 + tools/FFM0124/@MFONTG1.bmp | Bin 0 -> 1430 bytes tools/FFM0124/@MFONTG2.bmp | Bin 0 -> 1430 bytes tools/FFM0124/@MFONTG3.bmp | Bin 0 -> 1430 bytes tools/FFM0124/FFM0124.g3m | Bin 0 -> 11692 bytes tools/FFM0124/README_EN.txt | 210 ++ tools/FFM0124/README_JA.txt | 180 + tools/FontEdit/FEINT34F.g1m | Bin 0 -> 12868 bytes tools/FontEdit/FEINT34F.txt | 784 +++++ tools/FontEdit/FEINT35C.g3m | Bin 0 -> 12440 bytes tools/FontEdit/FEINT35C.txt | 820 +++++ tools/FontEdit/FEINT35F.g1m | Bin 0 -> 12636 bytes tools/FontEdit/FEINT35F.txt | 787 +++++ tools/FontEdit/FKEYPASS.bmp | Bin 0 -> 254 bytes tools/HELP/~~HELP1.g1m | Bin 0 -> 9996 bytes tools/HELP/~~HELP1.txt | 1078 ++++++ tools/HELP/~~HELP3.g3m | Bin 0 -> 10540 bytes tools/HELP/~~HELP3.txt | 1097 ++++++ tools/SYSMNG130/README_EN.txt | 125 + tools/SYSMNG130/README_JA.txt | 117 + tools/SYSMNG130/SYSMNG13.g3m | Bin 0 -> 3608 bytes 311 files changed, 181688 insertions(+), 119 deletions(-) create mode 100644 CREDIT.md delete mode 100644 LICENSE create mode 100644 LICENSE.md create mode 100644 doc-cg/ChangeCG_EN.txt create mode 100644 doc-cg/ChangeCG_J.txt create mode 100644 doc-cg/Command_List_CG.txt create mode 100644 doc-cg/ErrorCode_List.txt create mode 100644 doc-cg/Extended_opcode_list.txt create mode 100644 doc-cg/JIS_to_GB_Tbl.txt create mode 100644 doc-cg/ManualCG_EN.txt create mode 100644 doc-cg/ManualCG_FR.txt create mode 100644 doc-cg/ManualCG_J.txt create mode 100644 doc-cg/Mat_Vct_List.txt create mode 100644 doc-cg/Message.txt create mode 100644 doc-cg/ReadmeCG_EN.txt create mode 100644 doc-cg/ReadmeCG_FR.txt create mode 100644 doc-cg/ReadmeCG_J.txt create mode 100644 doc-cg/Setup_format.txt create mode 100644 doc-fx/Change_EN.txt create mode 100644 doc-fx/Change_J.txt create mode 100644 doc-fx/Command_List.txt create mode 100644 doc-fx/ErrorCode_List.txt create mode 100644 doc-fx/Extended_opcode_list.txt create mode 100644 doc-fx/Manual_EN.txt create mode 100644 doc-fx/Manual_FR.txt create mode 100644 doc-fx/Manual_J.txt create mode 100644 doc-fx/Mat_Vct_List.txt create mode 100644 doc-fx/README_EN.txt create mode 100644 doc-fx/README_FR.txt create mode 100644 doc-fx/README_J.txt create mode 100644 doc-fx/Setup_format.txt create mode 100644 examples/FKeyMenu/DIALOGUE.g1m create mode 100644 examples/FKeyMenu/Dialogue.g3m create mode 100644 examples/FKeyMenu/FKEYMENU.g1m create mode 100644 examples/FKeyMenu/FKeyMenu.g3m create mode 100644 examples/List/LIST.txt create mode 100644 examples/ML/BMP.txt create mode 100644 examples/ML/MLELIPS1.g1m create mode 100644 examples/ML/MLPOLY1.g1m create mode 100644 examples/ML/MLRECT1.g1m create mode 100644 examples/ML/ML_Poly.g3m create mode 100644 examples/ML/ML_Poly5.g3m create mode 100644 examples/ML/ML_Rect.g3m create mode 100644 examples/ML/PIXEL.txt create mode 100644 examples/ML/POLY.txt create mode 100644 examples/bmp-cg/BMP16A.g3m create mode 100644 examples/bmp-cg/BMPTRSP.g3m create mode 100644 examples/bmp-cg/SELECTED.bmp create mode 100644 examples/bmp-cg/WBMP.g3m create mode 100644 examples/bmp-cg/WBMPV.g3m create mode 100644 examples/bmp-fx/BMPDRAW.g1m create mode 100644 examples/bmp-fx/BMPROTE.g1m create mode 100644 examples/bmp-fx/DRAWMAT.g1m create mode 100644 examples/bmp-fx/MainMen1.bmp create mode 100644 examples/graphXY/GRAPHXY1.txt create mode 100644 examples/graphXY/GRAPHXY2.txt create mode 100644 examples/graphXY/LISSAJ.g1m create mode 100644 examples/graphXY/LISSAJ.g3m create mode 100644 examples/graphXY/LISSAJ.txt create mode 100644 examples/opcodes/OPCODEX.g1m create mode 100644 examples/opcodes/OPCODEX.g3m create mode 100644 examples/opcodes/OPCODEX.txt create mode 100644 examples/recursive/FIBO.txt create mode 100644 examples/recursive/FIBOSB.txt create mode 100644 examples/serial/SERIAL.txt create mode 100644 examples/serial/SR38CLOS.g1m create mode 100644 examples/serial/SR38GKEY.g1m create mode 100644 examples/serial/SR38OPEN.g1m create mode 100644 examples/serial/SR38RLST.g1m create mode 100644 examples/serial/SR38SLST.g1m create mode 100644 examples/serial/SRGKEY.g1m create mode 100644 examples/serial/SRRXA.g1m create mode 100644 examples/serial/SRRXLIST.g1m create mode 100644 examples/serial/SRRXMAT.g1m create mode 100644 examples/serial/SRRXSTR.g1m create mode 100644 examples/serial/SRTXA.g1m create mode 100644 examples/serial/SRTXLIST.g1m create mode 100644 examples/serial/SRTXMAT.g1m create mode 100644 examples/serial/SRTXSTR.g1m create mode 100644 examples/system/SYS.g1m create mode 100644 examples/system/SYS.g3m create mode 100644 examples/system/readme.txt create mode 100644 examples/try_except/TRYERR.txt create mode 100644 examples/try_except/TRYTEST.txt create mode 100644 font/@LFONTA0.bmp create mode 100644 font/@LFONTA1.bmp create mode 100644 font/@LFONTG.bmp create mode 100644 font/@LFONTG0.bmp create mode 100644 font/@LFONTK.bmp create mode 100644 font/@LFONTK0.bmp create mode 100644 font/@LFONTK1.bmp create mode 100644 font/@MFONTA0.bmp create mode 100644 font/@MFONTA1.bmp create mode 100644 font/@MFONTG.bmp create mode 100644 font/@MFONTG0.bmp create mode 100644 font/@MFONTK.bmp create mode 100644 font/@MFONTK0.bmp create mode 100644 font/@MFONTK1.bmp create mode 100644 font/FONTA6M.bmp create mode 100644 font/FONTA6M0.bmp create mode 100644 font/FONTA8L.bmp create mode 100644 font/FONTA8L0.bmp create mode 100644 font/FONTA8L1.bmp create mode 100644 font/FONTG8L.bmp create mode 100644 font/FONTG8L0.bmp create mode 100644 font/FONTK6M0.bmp create mode 100644 font/FONTK8L0.bmp create mode 100644 font/FONTK8L1.bmp create mode 100644 src-cg/CBASICCG_SELECTED.CGI create mode 100644 src-cg/CBASICCG_UNSELECTED.CGI create mode 100644 src-cg/CBCG145.cpp create mode 100644 src-cg/CBCG147.INI create mode 100644 src-cg/CBP.h create mode 100644 src-cg/CBPC_Eval.cpp create mode 100644 src-cg/CBPC_ListEval.cpp create mode 100644 src-cg/CBPI_Eval.cpp create mode 100644 src-cg/CBPI_Eval.h create mode 100644 src-cg/CBPI_ListEval.cpp create mode 100644 src-cg/CBPI_interpreter.cpp create mode 100644 src-cg/CBPI_interpreter.h create mode 100644 src-cg/CBP_Color.cpp create mode 100644 src-cg/CBP_Eval.cpp create mode 100644 src-cg/CBP_Eval.h create mode 100644 src-cg/CBP_Eval_ext.cpp create mode 100644 src-cg/CBP_GraphFunc.cpp create mode 100644 src-cg/CBP_Help.cpp create mode 100644 src-cg/CBP_Help.h create mode 100644 src-cg/CBP_Kana.cpp create mode 100644 src-cg/CBP_Kana.h create mode 100644 src-cg/CBP_KeyScan.cpp create mode 100644 src-cg/CBP_KeyScan.h create mode 100644 src-cg/CBP_ListEval.cpp create mode 100644 src-cg/CBP_Matrix.cpp create mode 100644 src-cg/CBP_Matrix.h create mode 100644 src-cg/CBP_MonochromeLib.cpp create mode 100644 src-cg/CBP_MonochromeLib.h create mode 100644 src-cg/CBP_Str.cpp create mode 100644 src-cg/CBP_Str.h create mode 100644 src-cg/CBP_StrExt.cpp create mode 100644 src-cg/CBP_TextConv.cpp create mode 100644 src-cg/CBP_TextConv.h create mode 100644 src-cg/CBP_Time.cpp create mode 100644 src-cg/CBP_Time.h create mode 100644 src-cg/CBP_bmp.cpp create mode 100644 src-cg/CBP_bmp.h create mode 100644 src-cg/CBP_complex.h create mode 100644 src-cg/CBP_edit.cpp create mode 100644 src-cg/CBP_edit.h create mode 100644 src-cg/CBP_error.cpp create mode 100644 src-cg/CBP_error.h create mode 100644 src-cg/CBP_file.cpp create mode 100644 src-cg/CBP_file.h create mode 100644 src-cg/CBP_fileMCS.cpp create mode 100644 src-cg/CBP_glib.cpp create mode 100644 src-cg/CBP_glib.h create mode 100644 src-cg/CBP_glib2.cpp create mode 100644 src-cg/CBP_glib2.h create mode 100644 src-cg/CBP_icon.cpp create mode 100644 src-cg/CBP_inp.cpp create mode 100644 src-cg/CBP_inp.h create mode 100644 src-cg/CBP_inpcmd.cpp create mode 100644 src-cg/CBP_inpcmdF1.cpp create mode 100644 src-cg/CBP_inpcmdF2.cpp create mode 100644 src-cg/CBP_inpcmdF3.cpp create mode 100644 src-cg/CBP_inpcmdF4.cpp create mode 100644 src-cg/CBP_inpcmdF5.cpp create mode 100644 src-cg/CBP_inpcmdF6.cpp create mode 100644 src-cg/CBP_interpreter.cpp create mode 100644 src-cg/CBP_interpreter.h create mode 100644 src-cg/CBP_interpreterVRAM.cpp create mode 100644 src-cg/CBP_io.cpp create mode 100644 src-cg/CBP_io.h create mode 100644 src-cg/CBP_io_fkeyicon.cpp create mode 100644 src-cg/CBP_kfont.h create mode 100644 src-cg/CBP_kfontminimini.h create mode 100644 src-cg/CBP_kfontminiminiBold.h create mode 100644 src-cg/CBP_main.cpp create mode 100644 src-cg/CBP_serial.cpp create mode 100644 src-cg/CBP_setup.cpp create mode 100644 src-cg/CBP_setup.h create mode 100644 src-cg/CBP_sys.cpp create mode 100644 src-cg/CBP_sys.h create mode 100644 src-cg/CG_syscall.asm create mode 100644 src-cg/CG_syscall.h create mode 100644 src-cg/JIStoGB.h create mode 100644 src-cg/MonochromeLibCG.cpp create mode 100644 src-cg/MonochromeLibCG.h create mode 100644 src-cg/NormalG_F72B.txt create mode 100644 src-cg/Ptune2_direct.cpp create mode 100644 src-cg/Ptune2_direct.h create mode 100644 src-cg/SELECTED.CPP create mode 100644 src-cg/SELECTED_8C.CPP create mode 100644 src-cg/SH7305_CPG_BSC.h create mode 100644 src-cg/UNSELECTED.CPP create mode 100644 src-cg/UNSELECTED_8C.CPP create mode 100644 src-cg/_ansi.h create mode 100644 src-cg/_types.h create mode 100644 src-cg/color.h create mode 100644 src-cg/config.h create mode 100644 src-cg/dispbios.h create mode 100644 src-cg/features.h create mode 100644 src-cg/filebios.h create mode 100644 src-cg/ieeefp.h create mode 100644 src-cg/newlib.h create mode 100644 src-cg/prizm.h create mode 100644 src-cg/qsort.cpp create mode 100644 src-cg/rtc.h create mode 100644 src-cg/selected.bmp create mode 100644 src-cg/snprintf.cpp create mode 100644 src-cg/string.h create mode 100644 src-cg/types.h create mode 100644 src-cg/unselected.bmp create mode 100644 src-fx/AddinInfo.txt create mode 100644 src-fx/CB.h create mode 100644 src-fx/CBASIC.g1w create mode 100644 src-fx/CBC_Eval.c create mode 100644 src-fx/CBC_ListEval.c create mode 100644 src-fx/CBI_Eval.c create mode 100644 src-fx/CBI_Eval.h create mode 100644 src-fx/CBI_ListEval.c create mode 100644 src-fx/CBI_interpreter.c create mode 100644 src-fx/CBI_interpreter.h create mode 100644 src-fx/CBZ_Help.c create mode 100644 src-fx/CBZ_TextConv.c create mode 100644 src-fx/CBZ_Time.c create mode 100644 src-fx/CBZ_bmp.c create mode 100644 src-fx/CBZ_edit.c create mode 100644 src-fx/CBZ_editmini.c create mode 100644 src-fx/CBZ_error.c create mode 100644 src-fx/CBZ_file.c create mode 100644 src-fx/CBZ_fileMCS.c create mode 100644 src-fx/CBZ_file_.c create mode 100644 src-fx/CBZ_inp.c create mode 100644 src-fx/CBZ_inpcmd.c create mode 100644 src-fx/CBZ_inpcmdF1.c create mode 100644 src-fx/CBZ_inpcmdF2.c create mode 100644 src-fx/CBZ_inpcmdF3.c create mode 100644 src-fx/CBZ_inpcmdF4.c create mode 100644 src-fx/CBZ_inpcmdF5.c create mode 100644 src-fx/CBZ_inpcmdF6.c create mode 100644 src-fx/CBZ_main.c create mode 100644 src-fx/CBZ_serial.c create mode 100644 src-fx/CBZ_setup.c create mode 100644 src-fx/CB_Eval.c create mode 100644 src-fx/CB_Eval.h create mode 100644 src-fx/CB_Eval_ext.c create mode 100644 src-fx/CB_Help.h create mode 100644 src-fx/CB_InterpreterGoto.c create mode 100644 src-fx/CB_Kana.c create mode 100644 src-fx/CB_Kana.h create mode 100644 src-fx/CB_ListEval.c create mode 100644 src-fx/CB_Matrix.c create mode 100644 src-fx/CB_Matrix.h create mode 100644 src-fx/CB_MonochromeLib.c create mode 100644 src-fx/CB_MonochromeLib.h create mode 100644 src-fx/CB_Str.c create mode 100644 src-fx/CB_Str.h create mode 100644 src-fx/CB_StrExt.c create mode 100644 src-fx/CB_TextConv.h create mode 100644 src-fx/CB_Time.h create mode 100644 src-fx/CB_bmp.h create mode 100644 src-fx/CB_complex.h create mode 100644 src-fx/CB_edit.h create mode 100644 src-fx/CB_error.h create mode 100644 src-fx/CB_file.h create mode 100644 src-fx/CB_glib.c create mode 100644 src-fx/CB_glib.h create mode 100644 src-fx/CB_glib2.c create mode 100644 src-fx/CB_glib2.h create mode 100644 src-fx/CB_inp.h create mode 100644 src-fx/CB_interpreter.c create mode 100644 src-fx/CB_interpreter.h create mode 100644 src-fx/CB_interpreterVRAM.c create mode 100644 src-fx/CB_interpreter_.c create mode 100644 src-fx/CB_io.c create mode 100644 src-fx/CB_io.h create mode 100644 src-fx/CB_io_fkeyicon.c create mode 100644 src-fx/CB_setup.h create mode 100644 src-fx/ErrorCode_List.txt create mode 100644 src-fx/FXSH_Build.bat create mode 100644 src-fx/FXSH_Builda.bat create mode 100644 src-fx/KeyScan.c create mode 100644 src-fx/KeyScan.h create mode 100644 src-fx/MainIcon.bmp create mode 100644 src-fx/MonochromeLib.c create mode 100644 src-fx/MonochromeLib.h create mode 100644 src-fx/fxCG_Registers.h create mode 100644 src-fx/fx_syscall.h create mode 100644 src-fx/fx_syscall.src create mode 100644 src-fx/rtc.h create mode 100644 tools/FFM0124/@MFONTG1.bmp create mode 100644 tools/FFM0124/@MFONTG2.bmp create mode 100644 tools/FFM0124/@MFONTG3.bmp create mode 100644 tools/FFM0124/FFM0124.g3m create mode 100644 tools/FFM0124/README_EN.txt create mode 100644 tools/FFM0124/README_JA.txt create mode 100644 tools/FontEdit/FEINT34F.g1m create mode 100644 tools/FontEdit/FEINT34F.txt create mode 100644 tools/FontEdit/FEINT35C.g3m create mode 100644 tools/FontEdit/FEINT35C.txt create mode 100644 tools/FontEdit/FEINT35F.g1m create mode 100644 tools/FontEdit/FEINT35F.txt create mode 100644 tools/FontEdit/FKEYPASS.bmp create mode 100644 tools/HELP/~~HELP1.g1m create mode 100644 tools/HELP/~~HELP1.txt create mode 100644 tools/HELP/~~HELP3.g3m create mode 100644 tools/HELP/~~HELP3.txt create mode 100644 tools/SYSMNG130/README_EN.txt create mode 100644 tools/SYSMNG130/README_JA.txt create mode 100644 tools/SYSMNG130/SYSMNG13.g3m diff --git a/CREDIT.md b/CREDIT.md new file mode 100644 index 0000000..ce77fb3 --- /dev/null +++ b/CREDIT.md @@ -0,0 +1,531 @@ +# Credit + +C.Basic would not be possible without the following open source softwares and websites. We express our greatest appreciation to these authors. + +We tried our best to gather the license information of all materials we used, but unfortunately we cannot retrieve some of them due to inaccessibility at the time of writing this CREDIT.md or difficulty in contacting authors for further confirmation. + +If you are one of the copyright holders of these materials and would like to inform us of your license information, please open a issue ticket to do so. We apologize for the inconveniences caused. + +### Lead developer + +* Sentaro21 + +### Application developers + +* Colon - Font File Manager, Font Editor, System Manager +* Tsuru - Font Editor + +### Documentation helpers + +* Krtyski - Japanese documentation +* Lephenixnoir - French documentation +* CalcLoverHK - English and Chinese documentation, C.Basic Wiki + +# Website and documentation + +## Katakana font + +[Homepage (archived)](https://web.archive.org/web/20160408224416/http://baticadila.dip.jp/fx_sdk_005.html) + +
License + +Adapted from _グラフ関数電卓 fx-9860G SDK(グラフィック表示)_ by Baticadila, 2013. + +
+ +## e-Gadget + +[Homepage](https://egadget.blog.fc2.com) + +
License + +Copyright (c) 2013 Krtyski/e-Gadget - プログラム関数電卓. All rights reserved. + +
+ +## fxReverse + +[Homepage](https://bible.planet-casio.com/simlo/fxreverse/fxReverse2.pdf) + +
License + +Copyright (c) 2008 Andreas Bertheussen, Simon Lothar. + +This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-nd/3.0. + +
+ +# Software and program + +## fx-9860G SDK + +
License + +Copyright (c) 2006 CASIO Co., Ltd. All right reserved. + +
+ +## miniSDK + +
License + +Copyright (c) 2011 Simon Lothar. All right reserved. + +
+ +## WSC and FVM + +[GitHub page](https://github.com/merrymercy/WSC-and-FVM) + +
License + +The MIT License (MIT) + +Copyright (c) 2016 Mercy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +
+ +## Sprintf + +
License + +Excerpt from snprintf.cpp: +``` +/* + * Copyright Patrick Powell 1995 + * This code is based on code written by Patrick Powell (papowell@astart.com) + * It may be used for any purpose as long as this notice remains intact + * on all source code distributions + */ +``` +
+ +## MonochromeLib + +[Homepage](https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=86) + +
License + +Excerpt from MonochromeLib.h: +``` +/*************************************************************/ +/** MonochromeLib - monochrome graphic library for fx-9860G **/ +/** MonochromeLib is free software **/ +/** **/ +/** @author Pierre "PierrotLL" Le Gall **/ +/** @contact legallpierre89@gmail.com **/ +/** **/ +/** @file MonochromeLib.h **/ +/** Include header for MonochromeLib **/ +/** **/ +/** @date 11-22-2011 **/ +/*************************************************************/ +``` + +
+ +## Gauss-Kronrod Quadrature + +[Reference](https://community.casiocalc.org/topic/7637-cbasic-international-release/page-14#entry62978) + +
License + +Adapted from the HP41 INTDIFFEQ module by Jean-Marc Baillard (https://hp41programs.yolasite.com), by acapde @ Universal Casio Forum, 2020. Adapted with permission. + +
+ +## Ptune2 + +[Homepage](https://pm.matrix.jp/ftune2e.html) + +
License + +GNU General Public License + +_Version 2, June 1991_ +_Copyright © 1989, 1991 Free Software Foundation, Inc.,_ +_51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA_ + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +### Preamble + +The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + +We protect your rights with two steps: **(1)** copyright the software, and +**(2)** offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +**0.** This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The “Program”, below, +refers to any such program or work, and a “work based on the Program” +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term “modification”.) Each licensee is addressed as “you”. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +**1.** You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +**2.** You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +* **a)** You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. +* **b)** You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. +* **c)** If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +**3.** You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +* **a)** Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, +* **b)** Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, +* **c)** Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +**4.** You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +**5.** You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +**6.** Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +**7.** If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +**8.** If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +**9.** The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and “any +later version”, you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +**10.** If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +### NO WARRANTY + +**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +### How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the “copyright” line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w` and `show c` should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w` and `show c`; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a “copyright disclaimer” for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +
+ +## QSort + +
License + +Modified BSD License + +_Copyright © 1992, 1993, The Regents of the University of California_ +_All rights reserved._ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
\ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 17cb286..0000000 --- a/LICENSE +++ /dev/null @@ -1,117 +0,0 @@ -GNU GENERAL PUBLIC LICENSE -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. - - c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - -3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. - -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - - one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author - - This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. - -signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..890b544 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,336 @@ +GNU General Public License +========================== + +_Version 2, June 1991_ +_Copyright © 1989, 1991 Free Software Foundation, Inc.,_ +_51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA_ + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +### Preamble + +The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + +We protect your rights with two steps: **(1)** copyright the software, and +**(2)** offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +**0.** This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The “Program”, below, +refers to any such program or work, and a “work based on the Program” +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term “modification”.) Each licensee is addressed as “you”. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +**1.** You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +**2.** You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +* **a)** You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. +* **b)** You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. +* **c)** If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +**3.** You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +* **a)** Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, +* **b)** Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, +* **c)** Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +**4.** You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +**5.** You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +**6.** Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +**7.** If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +**8.** If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +**9.** The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and “any +later version”, you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +**10.** If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +### NO WARRANTY + +**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +### How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the “copyright” line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w` and `show c` should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w` and `show c`; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a “copyright disclaimer” for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. \ No newline at end of file diff --git a/README.md b/README.md index 9e35efe..85f3442 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,32 @@ -# C.Basic +# C.Basic - Casio Basic IDE add-in for fx-9860 and fx-CG graphing calculators -A Casio Basic interpreter add-in for fx-9860 and fx-CG graphing calculators \ No newline at end of file +[English](README_en.md) | [Français](README_fr.md) | [日本語](README_ja.md) | [中文(简体)](README_zh-Hans.md) + +C.Basic (pronounce "c-dot-basic") is the reference implementation of Casio Basic, written in Casio SDK for fx-9860 and miniSDK for fx-CG. + +The add-in is designed for programmers who want to incorporate SDK-exclusive features to their Casio Basic programs, without having to use their PC to compile an add-in and worry about the error-prone debugging environment of C/C++. + +C.Basic is only an interpreter at the current stage. In the future, C.Basic will evolve into C:Basic ("c-colon-basic") which includes a compiler. + +## Features + +* Achieve add-in like performance with little to no modifications to existing Casio Basic programs +* Access and edit programs directly in SMEM and SD card +* Robust editor with features from modern IDE — syntax highlighting, indentation, variable/matrix lookup and debugging +* Extended commands with Casio Basic style syntax +* Emulate G1M programs in fx-CG calculators + +## Things to know + +* If you are an fx-CG10 or fx-CG20 user, C.Basic will ask whether you want it to overclock your calculator to increase the performance on the screen transfer. + * The mechanic is based on [Ptune2](https://pm.matrix.jp/ftune2e.html), an overclocking add-in made by the same author of C.Basic. This prompt will increase your processor core clock (IFC) from 58.98 MHz to 117.96 MHz. + * Since overclocking could be potentially dangerous, use it at your own risk. You can disable this prompt in the settings at anytime. +* As C.Basic is written in C/C++, it uses floating point to express numbers instead of binary-coded decimal that Casio Basic uses. As such, handling non-integers may cause numerical errors. You are advised not to use C.Basic for applications involving serious calculations. + +## License, credit and wiki + +C.Basic is licensed under the GNU General Public License, version 2. See [LICENSE.md](LICENSE.md) for the full license text. + +See [CREDIT.md](CREDIT.md) for the credit list. + +Check out the official C.Basic Wiki by clicking the `Wiki` tab in the navigation bar. \ No newline at end of file diff --git a/doc-cg/ChangeCG_EN.txt b/doc-cg/ChangeCG_EN.txt new file mode 100644 index 0000000..c54ad63 --- /dev/null +++ b/doc-cg/ChangeCG_EN.txt @@ -0,0 +1,2670 @@ +Please look at this site +https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site is translated by Krtyski. +------------------------------------------------------------------------------------- +some following text translated by sentaro21 +Sorry that translation is not good... +Translated with www.DeepL.com/Translator (free version) +------------------------------------------------------------------------------------- +last updated by sentaro21, 10 Dec 2023 +=============================================================================== +C.Basic for CG +=============================================================================== +v1.47beta + (build02) 2023.12.11 + -Fixed a bug that [EXIT] did not return to the catalog after history. + -Fixed a bug that files in a folder could not be accessed when the Load( command was used in a program in main memory. + + (build01) 2023.12.10 + -Added a catalog function dedicated to C.Basic commands.([Shift]+[4]) + -Added mini-font display in file mode. + -Added ? Minifont display of command and variable display. (newly FX version) + -Fixed a bug that the program freezes when using unsupported commands (internal code 0x7Fxx). + -Error display has been changed. Missing WhileEnd" and "Missing Switch".(ref.ErrorCode_List.txt) + -Disabled initialization of hidden RAM for non-GII models. + -Beep command can be interrupted by AC key. + -Fixed a bug in matrix and list initialization that caused an error if the RGB()HSV()HSL() command was the first one. (1.45 Embuged) + (Example) {RGB(255,0,255),123,456} + -Fixed a bug in which a file exceeding 4096 bytes could only be loaded with the Load(command. + + -The Locate command and drawing specifications such as Text can now be specified as mathematical formulas by writing them in parentheses. + (Format 1) Locate x,y,Value/Strings[,N/O/R/V]. + (Format 2) Locate x,y,Value/Strings[,(drawing specification)]. +  N:0 'normal +  O:1 'or +  R:2 'reverse +  V:3 'reverse or + (Example) Locate 2,3,"ABC",(2) +    Locate 2,3,"ABC",(R) ' R=2 +  Either +  Locate 2,3,"ABC",R +  are the same as + + -FKeyMenu can now be used to specify formulas by writing the drawing specification in parentheses. + (Format 1) FKeyMenu( n[~m], "string"/icon number [,C/M/N/R/I/S/U/L [,icon color [,icon background color]]] ) + (Format 2) FKeyMenu( n[~m], "string"/icon number [,(drawing specification) [,icon color [,icon background color]]] ) +  Numeric value (0-4) in basic drawing specification +   C:( 0)Erase. +   N:( 1)Normal white icon. (may be omitted) +   R:( 2)Black icon with missing lower right corner. +   I:( 3)Square black icon. +   S:( 4) Black icon with border +  The following modifiers are added to the basic drawing specification values. +   U:( 16)Display string one dot above. +   L:( 32)Extend the display range by 2 dots to the left and right. +   M:( 64)Mask processing. +   M:(128)Masks only the border. (FX version only) + + (Example) FKeyMenu (1, "string",NULM) + FKeyMenu (1, "string",(1+16+32+64)) +    The above two will produce the same result. + + +v1.46beta + (build03) 2023.10.26 + -Fixed a bug in the main memory favorites function for files with the same name, where only upper and lower case letters differed. + -Fixed a bug that caused the TicksWait count to be 1 too high. + (Before) TicksWait 4 was the same as TicksWait 5. + -Fixed a bug that prevented returning to the folder position. (build01 enbug) + + (build02) 2023.10.25 + -Changed the specification so that a new file is created in the current folder when the cursor is on a folder in the file list. + -Changed to overwrite a file if it is larger in size than the previous file. +  (If the file size is smaller, the previous file is erased and a new file is saved.) + + (build01) 2023.10.23 + -Changed to create [CBasic] folder only at first startup and use it as the default save and load folder. + -Fixed a bug that the value of the control variable at the end of For~Next in integer mode was incompatible. + -Fixed a problem in which assignment of a string longer than the limit length failed when the length of the string is limited. +  (Length-1 is the maximum number of characters that can be stored.) + -Fixed a bug in Pol()Rect() function that ListAns[0]ListAns[1] did not return an answer when MatBase was 0. + -Fixed rounding of ENG display. + -Fixed a fatal bug when using Ref and Rref functions, because they were not supported. + -Fixed a bug in which a command that could not be input by C.Basic command input mode was added and corrected. + + +v1.45beta + (build20) 2020.5.21 + -Fixed the bug that the skip cache between If~ElseIf did not work. + -Added new option of System() command to get OS minor version. + (format) System(-22) + -Added the Graph90+E to System(-1) command + (format) System(-1) + return to CG10/20/50 + return value is 10 : CG10 + return value is 20 : CG20 + return value is 50 : CG50 + return value is 90 : Graph90+E + -The System() command sample program created by Krtyski was updated to the version for Graph90+E. (System_sample folder) + + (build19) 2020.5.20 + -Fixed the bug that [AC]/AcBreak not work after escaping the loop with the Break command from within Try~TryEnd. + -Fixed the bug that caused a system error before it became the stack error. + -Changed the specification of the ReadGraph/WriteGraph/DotGet/DotPut command that it works on the current VRAM. + -Added V option of the Screen command to change the drawing target VRAM to the retreat area of the text VRAM/graphics VRAM. + (Format) Screen.V +  set to the default VRAM. + (Format) Screen.VT +  Changes the retreat area of the text VRAM to a drawing. + (Format) Screen.VG +  Changes the retreat area of the graphics VRAM to a drawing. + + (build18) 2020.4.28 + -Fixed the bug that the matrix display was erasing a part of the numbers at the bottom. + -Changed the specification to the confirmation pop-up will be shown for On/Off of the hidden memory in the set-up. + + (build17) 2020.4.24 + -Added to save/load 16-bit BMP of RGB565 format. and changed the default format to 16-bit BMP. + -Fixed the bug that the matrix display of CPLX was too slow. and changed it from a three-column display to a four-column display. + -Fixed the bug in the initialization of hidden memory. + + (build16) 2020.4.16 + -Improved auto-indenting function of Switch~Case~SwitchEnd. + -Fixed the bug in which a comment was made immediately after the If/ElseIf command, which was terminated when the next command was If. + -Fixed the bug that the program was terminated when the next command is "If" when a comment follows If/ElseIf. + -Fixed the bug in the assignment from a string variable to a string variable that was not assigned after intializing Mat. + (Example of not being copied) + ClrMat +   "ABC"->Str 1 +   Str 1->Str 3 + -Fixed the Seq Command bug that the end value was not reached when the increment value was a number of decimal points. + -Fixed the bug that infinite loop occurs when imaginary numbers are used in non-CPLX mode. (build15 en-bug.) + -Fixed the bug of omitted multiplication. (build15 en-bug.) + + (build15.) 2020.3.22 + -Fixed the bug that the list could not initialization over 64 elements when the default index start value was 0. + -Fixed the bug that [F4] (COPY) works int [F4] when search string is NULL in file mode. + + (build15) 2020.3.20 + -Started implementation of function memory with supported by Colon. + -Fixed the bug that List could not be automatically allocated when the default index start value was 0. + -Changed the function of the [F4](SEE) of function memory(Fn) to [F4](Edit). + + (build14) 2020.3.14 + -Added [F5](Edit) function of the SEE of function memory(Fn). + -Fixed the function of Store/Recall/ SEE of function memory(Fn). + + (build13.) 2020.3.10 + -Changed the specification of Function memory(Fn) and graph memory(Y) that are evaluated as formula evaluation by default, + and are evaluated as strings when as an argument of the string function or following strings. + (formula evaluation) + Fn1->A + Fn1(123)->A + Locate 1,1,fn1 + Text 1,1,fn1(123) + (string evaluation) + fn2->Str 2 + "123"+fn1->Str 1 + Locate "123"+fn1 + StrJoin(fn1,Str 1) + + -Fixed the bug in copying from different types of strings variable. + (Example not copied to fn3) + ClrMat + "123"->fn1 + "ABC"->Str 1 + Str 1->fn3 + + -Added the function of Store/Recall/ SEE of function memory(Fn). + (* For the editor the clipboard are stored to fn. For single line input, the entire line is stored.) + -Changed F_Start / F_End / F_pitch to independent variables. + -Fixed the ? command bug that decode to ASCII code when strings is displayed. + + + (build12.) 2020.3.4 + -Changed the max specification of GraphY / fn to same as Str. + -Changed the store specification of GraphY to 6 byte prefix added. + (There is no change other than direct access to the Mat.) + + (build12) 2020.3.2 + -Fixed the bug that no updated file list when change file-mode by setup in the editor. + -Changed to masked icon when no function in the setup. + -Added the System() command option that get C.Basic system file that saved in main memory. + (*The index start value is 0.) + (example) System(10000,1) + @CBASIC/Cbasic -> ListAns + (example) System(10000,1) + @CBASIC/Cbasic2 -> ListAns + + (build11) 2020.3.1 + -Fixed the bug that the coordinates were shifted by 2 dots when using Screen# in CG mode. + -Fixed the bug that an error occured when continuous execution of Screen#/Screen%. + -Fixed the bug that the value is invalid when store List Ans of Screen#/Screen%. + (example) Screen#0,0→List Ans + -Improved the search mode in file mode. + Press the alphabet key to open the search window and enter search mode. + In the search window, normal input is possible. + Press [EXIT] to cancel the search window. + Cursor up and down, [EXE], [F1](EXE), [F2](EDIT), [F3](NEW) key can be worked without closing the search window. + + (build10) 2020.2.28 + -Fixed alpha-mode in file mode / editor. + -Improved the direct jump by pressed alphabet in file mode to number or small alphabet character can be selected. + [F4](A<>a) + [F5](CHAR) + [F6](→) change to search folder/file. + [DEL]: back one character. + [AC]: erase all. + [EXIT]: return. + [X^2]:~ or ^ + [^]:' + [(-)]:@ + + (build09) 2020.2.26 + -Improved the direct jump by pressed alphabet in file mode to two or more characters can be selected. + [DEL]: back one character. + [AC]: erase all. + -Fixed the bug that an indent was added when [EXE](CR) was performed before a command with the indent (If, Else ..). + -Fixed the bug that function memory(Fn) and graph memory(Y) did not evaluate as a string when there was no argument. + + (build08) 2020.2.24 + -Changed the specification that the status area is not rewritten when the OS status flag is ON. + + (build07) 2020.2.23 + -Changed the specification to can use the hidden memory in the emulator. + + (build06) 2020.2.22 + -Added the function to display the default status infomation. + '#CBASIC + '#CBDBL + '#CBINT + '#CBCPLX + -Improved the status era display of single line input. (supported by Colon) + -Changed emulator detection method to calculator ID judgment. + + (build05) 2020.2.19 + -Fixed the bug that status line dispray was not returned when exit of the CHAR select screen. + -Fixed the bug that [SHIFT]+[4](CATALOG) could not be used of search of editor in CG10/20. (1.44build14 en-bug) + + (build04) 2020.2.17 + -Changed the specification of the GetHSV()/GetHSL() command to open the error popup when they cannot be converted to 16bit-colors + (format) GetHSV(16bit-color [,N]) + (format) GetHSL(16bit-color [,N]) + N:Ignore errors + -Fixed the HSV()/HSL() command bug that colors were saturated and inverted. + -Fixed the text command bug that the external font not worked. + + (build03) 2020.2.15 + -Fixed the error of the mutual conversion of RGB→HSV/HSL color code.(supported by Colon) + -Fixed the bug that '# option in comments was changed when searching for labels. + + (build02) 2020.2.12 + -Fixed the VarPtr() command bug that the subscript was always evaluated as double mode. + -Fixed the bug of argument of RGB(),HSV(),HSL() command when the index of List start value is 0. + -Fixed the bug of GetRGB(),GetHSV(),GetHSL() command when the index of List start value is 0. + + (build01) 2020.2.10 + -Added the strings sort of SortA/SortD command. + (format) SortA($Mat A) + -Updated Manuals. + -Fixed the bug of arrow display in the matrix editor. + -Disabled StoPict of storage memory in g3m mode.(g3p file) + + +v1.44beta 2020.1.18-2.9 + (build15) + -Changed the specification of option of the FkeyMenu( command. + (Format)FKeyMenu( n[~m], "string"/Icon # [,C/M/N/R/I/S/U/L [,FKey icon color [,Fkey back color]]]] ) + - 3rd or later arguments can be omitted. + - "," are required even if the argument is omitted. + - Default color of FKey icon is black and FKey back color is white. + (example) FKeyMenu (1, "string",,Blue ) + (example) FKeyMenu (2~3, "string",R,RGB(255,0,0)) + (example) FKeyMenu (4~5, "string",R,Red ,Yellow ) + + (build14) + -Improved the matrix list screen that newly supported the display of extended area Mat/List/Vct after 53. + [←]:backword + [→]:forward + -Improved the option of the FkeyMenu( command. + (Format)FKeyMenu( n, "string"/Icon # [,C/M/N/R/I/S/U/L [,m [,FKey icon color [,Fkey back color]]]] ) + - 3rd or later arguments can be omitted. + - After the omitted argument some other arguments can be put, and in this case "," +    is required right before the omitted parameter. + - Default color of FKey icon is black and FKey back color is white. + (example) FKeyMenu (1, "string",,,Blue ) + (example) FKeyMenu (2, "string",R,3,RGB(255,0,0)) + (example) FKeyMenu (2, "string",R,3,RGB(255,0,0),Yellow ) + + (build13) + -Changed to automatically set "C.Basic" mode when entering GB/JIS screen of CHAR screen. + -Changed to display the size of the free area in the status area when [SHIFT] is pressed in the editor. + + (build12) + -Improved the option of the FkeyMenu( command. + (format) FKeyMenu (n, "string" [,C/M/N/R/I/S/U/L][,m]) + The order of the 3rd argument is arbitrary. +   C: clear icon. +   M: mased icon. +   N: normal white icon.(default) +   R: black icon with notch at the bottom right. +   I: black icon with no notch at the bottom right. +   S: black icon with no notch at the lower right indicating the selected. +   U: display 1 dot upper. +   L: expand the "string" display area by 2 dots left. + + (example) FKeyMenu (1, "string", RL) + (example) FKeyMenu (2, "long_string", SLM, 4) + (example) FKeyMenu (5, 42, M) + -Fixed the bug that "Default Font" and "C.Basic Font" of [VARS] were reversed in [0](HELP) of [CHAR] screen. + -Added sample program of System() command by Krtyski.(C.Basic_sample\System_sample) + + + (build11) + -Improved the option of the FkeyMenu( command. + (format) FKeyMenu (n, "",M [,m]) + Maseked FKey Display in the range from n to m. + -The system manager for C.Basic made by Colon has been updated from 1.2 to 1.3. + -Added sample program of FKeyMenu() command by Krtyski & CalcLoverHK & Colon.(C.Basic_sample\FKeyMenu_sample) + + (build10) + -Changed the BackLight command to disabled in the emulator. + -Added emulator judgment to System () command. + (Format) System (-7) + 0 is returned on the real calculator. + 1 is returned on the emulator. + + (build09) + -Improved the option of the FkeyMenu( command. + (Foromat) FKeyMenu (n, "",C,m) + Clear FKey in the range from n to m. + (Foromat) FKeyMenu (n, "string",[I/R/S],m) + FKey Display in the range from n to m. + (Foromat) FKeyMenu (n, "string",L) + (Foromat) FKeyMenu (n, "string",RL) + (Foromat) FKeyMenu (n, "string",IL) + (Foromat) FKeyMenu (n, "string",SL) + Expand the "string" display area by 2 dots. + + (build08) + -Improved the option of the FkeyMenu( command. (Icon data by Colon.) + (Format) FKeyMenu (n, "string", I) + Thist is a black icon with no notch at the bottom right. + (Format) FKeyMenu (n, "string", S) + This is a black icon with no notch at the lower right indicating the selected. + -Changed INT%,DBL#,CPLX in variable page and color picker icons(RGB/HSL/HSV) to selected icons. + + (build07) + -Fixed the bug in DBL# mode where pauses and imaginary numbers were displayed in variables page. + -Improved variables page independently for INT%, DBL# and CPLX. + (build06) + -Fixed the bug that Pict file could not be saved to storage/SD. (this is 2.28 en-bug.) + -Changed spacification of the number of string variables by default to th increased to 999 by default . + (build05) + -Fixed the bug that when the index start value of the matrix is 0, one more than the number set by '#Str etc. is allocated. + -Fixed the bug that switching of current folder in setup. + -Fixed the number of digits including decimals to be no more than 16 when specifying Fix. + (build04) + -Changed the specification to be possible use formulas by arguments as '#Str and '#Fn etc. + (Example) #Str , N+1, A*10 + (build02) + -Fixed the bug that the return value was wrong when searching files with the wildcard in IsExist(. + (Example) IsExist ("*.Bmp") + If the file exists, return value is the number of files. + If the file does not exist, return value is 0. + (build01) + -Added push [OPTN][VARS] key to display alias/extended variable information in the variable display screen. + -Improved the save destination selection screen when the file name has been modified. + -Added [SHIFT]+[F1][F2][F3] key to matrix/List/Vct selection. + -Fixed the bug that "%" could not be input with [ALPHA]+[(-)] when single line input mode. + -Improved the version pop-up display that added build no. + -Improved the manuals. ( "Initialization of String" and "Display: Fix / Sci / Nrm / Eng" section) ( English translation supported by Krtyski ) + + +v1.43beta 2020.1.11 + -Fixed the bug that [SHIFT]+[F6](debug) failed to debug mode when "Force Return" was set in setup. + -Fixed the bug that Alias for extension variables did not cause an error. + -Fixed the Graph X= command bug that drawing illegal dot line. + -Changed the "Nrm "notation to "Norm" in Display setting of Setup. + +v1.43beta 2020.1.10 + -Improved 16-bit color drawing of _Bmp command and DrawMat command. + Simple 16-bit color bit map drawing without scaling is now 2x faster. + As a result of this update, the Mat data required for the DrawMat command will be changed to the type of matrix used in the _Bmp command (it is a inverse matrix). + -Fixed Graph Y=,Graph X= command bug that the first coordinate was false in g3m mode. + -Fixed the bug that new folder was not displayed after creating new folder. + -Fixed the bug that [/] remained in [F6] when renaming folders. + -Changed specification to not switch to the same mode when switching the memory mode (storage memory/main memory). + -Fixed the bug that [F6](VER) was not displayed in "Skeetch Line" in SETUP. + -Fixed the scroll bar on the variable list screen of mini font. + + +v1.42beta 2020.1.6 + -Added transparent color drawing with the following command. + _BmpZoom + _BmpRotate + _BmpZmRotate + DrawMat + DotPut + + -Fixed the DrawMat command bug that 16-bit bitmap data was not drawn when the width and height were different. + -Fixed the DotPut command bug that 16-bit color drawing could not be performed with the DotPut command. + -Fixed the bug of ML command when there is a drawing range outside the screen. + -Fixed the bug when the integral calculation formula causes Math error. + -Changed the specification of the integration command so that the initial calculation precision is valid 5 digits and the result is not rounded. + + +v1.41beta 2019.12.29 + -Fixed integration calculation bug that sign of result is not correct when lower is greater than upper. + -Fixed integration calculation bug that X variable is changed after execution. + +v1.41beta 2019.12.28 + -Fixed the "Graph (X,Y)=(" command bug that did not work when multiplying List with T as argument. + (Example) Graph (X,Y)=(2*{1T,2T}, 3*{3T,4T}) + -Fixed "ExitDM PopUp" bug that pop-up did not appear when exiting the debug mode and re-executing. + -Fixed the bug that garbage might be attached at the end of the program when the indent function was enabled. + -Added integration function based on Gauss-Kronrod quadrature. (acapde's program has been implemented.) + https://community.casiocalc.org/topic/7637-cbasic-international-release/page-14#entry62978 + (format) ∫( f(x), lower limit, upper limit [,tol]) + [,tol] 0 List 5 + {250,500,250}-? List 7 + Beep List 5, List 7 + + +v1.39beta 2019.11.28 + -Fixed the bug that the height specification was invalidated by Locate/LocateYX command. + -Fixed the problem that [EXIT] does not cancel the debug mode when the Help function is enabled. + -Fixed a bug when using List as an argument in the DrawGraph command. + -The error message "Withot" has been changed to "w/o". + + +v1.38beta 2019.11.21 + -Fixed the bug that the order of files with period characters in the name was reversed. + -Fixed the editor bug that could not be edited when the stored cursor position was after the end of the file. + -Fixed the RclPict bug that full 2KB Pict loading from storage memory. + + +v1.37beta 2019.11.19 + -Fixed the StoPict bug that the PICT file was not saving to storage memory of G1M mode. + -Fixed the bug where the space in comments was deleted when "Save-" of "Edit +Indent" was set in the setup. + -Fixed the bug that an error occurred when copying to Str variable when the length of the list label was 8 characters. + (example) "ABCDEFGH"->List 1[0] + List 1[0]->Str 1 + + +v1.36beta 2019.11.14 + -Added the specification that string variable can be used to specify the sub-program name of the Prog command. + (In the main program, the sub-program must describe the Prog command that has a string as an argument.) + (example) --main program-- + "Test"->Str 1 + Prog Str 1 + Stop + Prog "Test" // Not run but need this + +v1.36beta 2019.11.13 + -Improved the display frequency of the cursor of the editor. + + +v1.35beta 2019.11.12 + -Fixed the bug that the file size becomes +1 by the Save command of the string. + (example) Load "test.txt"->Str 1 + Save("test.txt"),Str 1 + The file size of "test.txt" is increased by 1 byte. + + +v1.34beta 2019.11.10 + -Changed the specification of editor that when the file is opened again, the cursor position comes to the same place. + (Up to 16 files are supported.) + -Fixed the bug that sub-program disappear after program interruption when the Help function is enabled. + + +v1.33beta 2019.11.3 + -Fixed the bug that color was not initialized after Plot command. + + +v1.32beta 2019.10.27 + -Fixed the bug that 1-byte command was not displayed in Help function. (enbug in 1.20) + -Fixed the bug that [SHIFT]+[ALPHA] lock was released by [EXE](CR). + -Added feature that % can be entered by [ALPHA]+[(-)]. + + +v1.31beta 2019.10.17 + -Fixed the ? command bug that could not be initialization input to Mat/List/Vct. (enbug in 2.29) + +v1.31beta 2019.10.16 + -Fixed the bug that memory was insufficient when repeated Mat/List/Vct initialization. + -Fixed the drawing position of the SketchThin was shifted by 1 dot. + +v1.31beta 2019.10.15 + -Fixed the bug that the cursor position does not return when UNDO is executed when the cursor is moved outside the screen after [DEL]. + -Fixed the bug that the program size was not changed when [PASTE] of UNDO. + +v1.31beta 2019.10.13 + -Added the UNDO function to the editor. After [DEL], press [ALPHA]+[DEL](UNDO) to return to the state before.(Only one step is valid) + + -Improved initializing of Matrix/List/Vct. + + +v1.30beta 2019.10.8 + -Added "@" option to the ? command so it can be used on the current screen. + (example) ?@(5,5,5)->A + This can enter 5 columns from Locate coordinates (5,5). + + +v1.29beta 2019.9.27 + -Improved ManualCG_EN.txt.(Thanks to CalcLoverHK) + +v1.29beta 2019.9.25 + -Fixed the "EditListChar" of setup bug that List1~List6 of the old command did not be changed. + -Fixed the bug that List1~List6 of the old command did not work when copying List. + (example) List 1-> List2 + + -Improved loading speed of matrices and list intialization is up to 2x faster. + (example) {1,2,3}->List 1 + (example) [[1,2,3][4.5,6]]->Mat A + + -Improved ManualCG_EN.txt.(Thanks to CalcLoverHK) + + +v1.28beta 2019.9.10 + -Added feature that pressing [F2] go back directly to the editor when program is end "Done", + -Fixed the bug that the file size may not be correct when saving the program file. + + +v1.26beta 2019.9.5 + -Fixed the cursor position of after clip6paste in editor. + -Fixed Menu command bug that pressing [MENU]key did not return to OS menu. + -Fixed TicksWait command bug that rewrited Ans variable. + -Fixed "strings" command bug that the 21st character is not displayed when 21 characters are used. + -Corrected mini font (0xE69E, 0xE6A5, 0xE6A6) that not compatible genuine Casio Basic. + + +v1.25beta 2019.9.3 + -Fixed MOD( command bug that the result was wrong when both arguments were negative. + (False) MOD(-5,-5)->5 MOD(-5,-1)->1 + (True) MOD(-5,-5)->0 MOD(-5,-1)->0 + + -Fixed the bug that memory was insufficient when editing by interrupting a subprogram. + + -Fixed the bug that automatic assignment to X and Y variables after Plot command even outside the drawing range. + + +v1.24beta 2019.8.30 + -Fixed the bug that key input is hung-up in fx-Manager PLUS Subscription for CG series. + + -Fixed the bug that not change to the storege memory from main memory in file mode [F6]-[F6]-[F4](->SMEM). + + -Fixed the BatteryStatus command bug that not worked in comlex mode. + + -Changed the return value of the BatteryStatus command up 9% in CG50/Graph90+E. + + -Added battery voltage display in version popup of setup. + + -Fixed Load command bug that can not load the string variable. + (Example) Load "Sample"->Str 1 + + -Added specification that CSV text file can be edit.(trial ver.) + [F2](edit) + + -Added specification that plain text file can be edit.(trial ver.) + [SHIFT]+[X^2] (extended) + + +v1.23beta 2019.8.19 + -Fixd the bug that not worked when the control variable of For~Next is different from the execution mode. + (Example) '#CBDBL + For 1-> I% To 6 + Disp I% + Next + + -Changed 4bit matrix specification to unsigned from signed. + + -Fixed Load command bug that can not load the string variable. + (Example) Load "Sample"->Str 1 + + +v1.22beta 2019.8.15 + -Fixed MOD( bug in integer mode. + (False) MOD(-5,3)->5 + (True ) MOD(-5,3)->1 + + -Fixed a bug that garbage was generated at the end of the program when the indent function was used on the main memory. + + +v1.21beta 2019.8.7 + --Fixed "Range Error" when assigned directly to ViewWindow variable. + + +v1.20beta 2019.8.5 + -Fixed the bug that create a new program with an existing file name. + +v1.20beta 2019.8.4 + -Added the indent function to the editor. + When [EXE] is pressed, the indent(blank spaces) at the beginning of the current line is continued to the next line. + + -In the setup setting, the indent is added automatically when loading the program. (Edit Indent+) + Programs already indented are not added indent. + You can also delete blank spaces including indents when saving program. (=to compatible with Casio Basic) + The following command adds indents. + If-Else-ElseIf-IfEnd + For-To-Step-Next + While-WhileEnd + Do-LpWhile + Switch-SwithEnd + + -Fixed a bug that did not work Dim List1 using the old command List1. + + +v1.10beta 2019.7.22 + -Fixed the drawing bug of Graph(X,Y) again. + +v1.10beta 2019.7.20 + -Added specification that the initial root folder can be changed. + You can set the initial root folder to the root or current folder in setup. + -Fixed the bug that could not be accessed by Save/Load command when the program was executed in main memory. + -Fixed the bug that cooperation between Plot command and Line command failed. + -Fixed the drawing bug of Graph(X,Y) with argument of TTheta variable again. + + +v1.00beta 2019.6.15 + -Added the exception handling commands Try-Except-TryEnd and eliminated IsError(). + (Format) Try + Except error code 1 + + Except error code 2 + + TryEnd + If there is no error in , processing moves after TryEnd. + If error1 occurs, processing will move after TryEnd after executing . + If error2 occurs, processing will move after TryEnd after executing . + When Error3 occurs, an error pop-up appears because there is no corresponding Except. + + (Format) Except + If there is no Except corresponding to an error, "Error" is executed because Except with no argument corresponds to all errors. + + (Example) Try 3*4+ + Except 1 + "Syntax Error" + TryEnd + "Syntax Error" is executed, since SyntaxError error code is 1. + + (Example) Try 3*4/0 + Except 1 + "Syntax Error" + Except 40 + "Divide by Zero" + TryEnd + “Divide by Zero”is executed, since division by zero error code is 40. + + (Example) Try 3*4/0 + Except 1 + "Syntax Error" + Except + "Error" + TryEnd + If there is no Except corresponding to an error, "Error" is executed because Except with no argument corresponds to all errors. + + The sample program is in CBasic_sample/Try_Except. + Refer to ErrorCode_List.txt for the error code. + + + -Fixed the bug of conversion to text where the CR was omitted even if a code from 0x01 to 0x2F other than 0x0C (Disps). + + + +v0.86alpha 2019.6.8 + -Fixed the drawing bug of Graph(X,Y) with argument of TTheta variable.(fixed enbug.) + +v0.86alpha 2019.5.30 + -Fixed the fatal bug that caused a system error when startup overclocking is required for CG10/20. + This was enbug 0.85 (-Fixed the bug that caused a system error due to lack of stack in pop-up display.) + +v0.86alpha 2019.5.29 + -Changed specification that move to the "~*.*" file name when pressing the [.]Key of the file list. + -Changed specification that move to the top of the folder list when pressing the [EXP(x10)]Key of the file list. + -Fixed the bug that the status area was displayed by ? command in full screen mode. + +v0.86alpha 2019.5.26 + -Fixed the drawing bug of Graph(X,Y) with argument of TTheta variable. + -Added moved to the top of the folder list when pressing the [.]Key of the file list. + -Fixed the bug that the external font was disabled in the FX(6x8 font) option of the Text command. + +v0.85alpha 2019.5.18 + -Fixed the bug that debug mode is not canceled when break and then edited with Help On. + +v0.85alpha 2019.5.17 + -Fixed the bug that exiting without go to editor when [AC]break stopping sub-program and press [EXIT](enbug in 0.82) + -Fixed the bug that caused a system error due to lack of stack in pop-up display. + +v0.85alpha 2019.5.16 + -Changed specification that the favorites list display from the bottom when move Storage/SD from Main Memory. + -Fixed the bug that variable display after the Mat and List were paused.(enbug in 0.85) + +v0.85alpha 2019.5.14 + -Fixed the bug that clear display after the Mat and List were paused. + + -Added the specification that up to 7 favorite files can be registered separately for storage memory and Main Memory. + + -Changed specification of text conversion of "Disps" command to add [CR][LF] code. + (Previous = compatible with CG series) Disps + (New specification) Disps+[CR]+[LF] + + -Fixed the bug that debug mode is not canceled when break and then edited. (bugs remaining.) + + -Changed "MCS" notation to "Main Memory". + + +v0.84alpha 2019.5.12 + -Added the key combination that easy to move between storage memory and Main Memory. + [SHIFT]-[F5] to change Strage <-> Main Memory). + + -Added Rotate&Zoom option of _Rectangle/_Polygon command. + (format)_Rectangle x1,y1,x2,y2, border_width, border_color, fill_color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + (format)_Polygon *ary_x, *ary_y, vertices, color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + + If [center_X][center_Y] are omitted, The center of the drawn image is specified. + + (example ) see "ML_sampleCG" folder. + + -Fixed the bug that drawing color option 5 (Transmittance setting) of ML command did not work with the following commands. + _Horizontal + _Vertical + _Recangle + _FillPolygon + + +v0.83alpha 2019.5.11 + -Fixed the bug that debug mode is not canceled when break and then edited. (enbug 0.82) + + -Fixed the bug that can not load the external font file. + + -Fixed the bug that caused memory error of input "?" command of string. + + -Changed specification of maximum loop stack level. + (for~Next :upto 4 level -> 8) + (While~WhileEnd :upto 6 level -> 8) + (Do=LpWhile :upto 6 level -> 8) + (Switch~SwithEnd:upto 4 level -> 8) + + -Added the list of JIS code is possible to select in GB font selection screen.(JIS=Japanese code) + Press the [^] key to change the list of JIS mode. + + +v0.82alpha 2019.5.2 + -Fixed exiting Goto bug from Switch~SwitchEnd. + + -Added Rename command. [SHIFT]-[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F5](Rename) + (format) Rename "old_name","new_name" + + -Changed specification that the case-insensitive of the file name of strage mode. + so it possible to rename each other from upper case to lower case. + (Example) ABC.g3m "->" abc.g3m " + + -Changed the cursor initial position of file input to before the extension. + + -Corrected the cursor position for canceling debug mode. + -Fixed the bug that debug mode is not canceled by the confirmation popup of cancellation of debug mode. + + -Fixed the bug that was not canceled in favorites list in Rename other than g1m/g3m file. + + +v0.81alpha 2019.4.28 + -Fixed BmpLoad( bug that 1bit bmp not displayed on the status area. + +v0.81alpha 2019.4.27 + -Fixed the incompatibility Fix and Sci in EngOn. + (Example) EngOn:Sci 3 + 1.23456789e12->12.3M + + -Added Strings variable or Numeric variable to the argument of Save/Load command. + (Example) Save "TEST",A + (Example) Load "TEST",Str 1 + + -Fixed that the upper line of the function key flickered at the help display. + + -Help file updated little. + + +v0.80alpha 2019.4.23 + -Added the help dispyay at the command input of editor. + (Set enable/disable in setup.) + "~~ HELP1.txt" / "~~ HELP1.g1m" or "~~ HELP3.txt" / "~~ HELP3.g3m" files in the HELP folder are Help files. + Please put it in the root folder or the same folder as the program. + + -Added nPc/nCr function. + + -Fixed the bug that the folder of file mode was not saved. + -Fixed the bug of MSC that can not be saved even though Main Memory free area is sufficient. + + -Fixed the bug that could not use List1~List6. + -Fixed the bug of getting an element address incorrectly in 1-bit and 4-bit matrices. + -Fixed the problem with continuous operation of matrix and List. + -In the case of negative argument in StrShift, fixed that the result was different. + (Example) StrShift ("1234567", -2)->"12345" + -Fixed graph drawing commands bug. + + + +v0.70alpha 2019.2.17 + -Added French manual.(Thanks so much Planet-Casio@Lephenixnoir for translation to French.) + -Fixed the bug that garbage appears in the upper left of the screen when using hidden RAM. + -Changed specification that to be able to select intialize mode of the Pict file using heep by setup. + -The Pict file using heap is initialized with ClrMat command. + (format) ClrMat + + +v0.69alpha 2019.2.9 + -Changed specification that the Pict file of heap is not initialized after program execution is completed. + -When using hidden RAM, the Pict function also supports full color even in g1m mode. + (In this case, the Pict file of g1m program (now only heap mode) will be full color.) + + +v0.68alpha 2019.2.3 + -Fixed the bug that [AC] break does not work in programs that frequently call "Prog". + -Fixed the loop end operation when Next/WhileEnd/LpWhile exists after "=>" command. + -Fixed the bug that the sub name of List n[0] could not be displayed with the Locate/Text command. + -Fixed the bug that ?->fn1,?->Y1 could not be entered. + -Fixed drawing of Circle command specified Sketch-Dot and Sketch-Broken in g3m mode. + + +v0.67alpha 2019.1.26 + -Fixed the extended variable bug that used local variable. + -Fixed "=>" command bug that re-write Ans of sub-program. + + -It seems to be fixed (unknown bug)(v0.66) + + +v0.66alpha 2019.1.18 + -Fixed 4 or more dimensional matrix inversion bug. + (false example) [[0,0,0,1][27,9,3,1][216,36,6,1][512,54,8,1]]^(-1) + + -Fixed degrees(hours),minutes,seconds calculation bug of comlpex mode. + + -Fixed Goto bug that when Goto in the loop was executed before the loop repeated. + + -Corrected cursor shape of clip mode of overwrite mode. + -Fixed Locate not display in emulator.(not complete yet.) + + -(unknown bug)(v0.66) + When operating in OS 3.20, debug mode will be canceled by pressing any key other than [F1]-[F4] in the first debug mode operation. + + +v0.65alpha 2019.1.2 + -Fixed Goto bug of exit of loop that Goto command in the subroutine when Gosub was in the loop. + +v0.65alpha 2018.12.31 + -Added new specification of Goto command that to be able to exit of loop automatically.(an experimental trial) + (canceled 0.64 feature.) + + -Fixed the system error bug in deep recurrence calls. + + +v0.64alpha 2018.12.30 + -Fixed Sci of display format bug.(enbug 0.58) + +v0.64alpha 2018.12.29 + -Added new specification of Goto command that to be able to exit of loop.(an experimental trial) + (format) Goto (-)Label + (-) is minus signe. + (example) + Lbl A + While 1 + Goto (-)A + EhileEnd + + -Changed Vct intialization that not compatible with genuine Casio basic. + -Fixed Vct bug that not worked indirect mode. + (example) Vct @5 + + +v0.63alpha 2018.12.27 + -Fixed the fatal bug that was not able to access of bmp file of the root folder. (enbug 0.63) + -Changed specification of Rename that display popup of the confirmation in the same case of extention. + +v0.63alpha 2018.12.26 + -Fixed bug of editor that canceled ALPHA mode when pressed [SHIFT]-[F5](A<>a) + +v0.63alpha 2018.12.24 + -Changed specification of ML command that no return to a default color. + +v0.63alpha 2018.12.19 + -Fixed lost file bug of Rename that input file name over 8 character. + +v0.63alpha 2018.12.16 + -Fixed Matrix inversion bug. + (false example) [[0,0,1][9,3,1][36,6,1]]^(-1) + + -Changed spaecification of BG-Pict.(CG50/Graph90+E) + -Added "filename" of BG-Pict. + + +v0.62alpha 2018.12.11 + -Fixed Seq( command bug that became the error at the time of the command evaluation with an illegal value of the variable. + (example) -2->X + (example) Seq(sqrt(X),X,1,4) + + +v0.62alpha 2018.12.9 + -Fixed strings/Mat/List bug of CG10/20. + + -Changed specification of the status area display as much as possible. + It is the status display mode at the start of program, + It becomes the status no-display mode when use drawing command in the status area. + It return to the status display mode again when use PutDispDD command. + + -Added interrupt option of serial command. + (format) Send( data [,baudrate][,enable_exit]) + (format) Recv( data [,baudrate][,enable_exit]) + (format) OpenComport38K[,baudrate][,transfermode][,enable_exit] + [baudrate]: 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=115200 baud + default baudrate is 38400 + [transfermode]: 0:binary data transfer mode 1:necessary to match data type (default) + When OpenComport38K with [transfermode:0]option, Send38K/Receive38k is binary data transfer. + [enable_exit]: 0:not interrupt 1:interrupt + + (example) Send(A,,1) + (example) Recv(A,,1) + [EXIT] interrupt enable. + + +v0.61alpha 2018.11.26 + -Added System(-5) command that return to free memory size. + (example) System(-5) + +v0.61alpha 2018.11.25 + -Added supported Str,GraphY,fnc string more than 255 characters. + (example)'#Str ,30,1000 + Str 1-30 of maximam 999 characters. :[ALPHA]+[X^2] + + -Fiexd MAT/LIST re-allocate initialization bug that same Mat/List was not cleared. + + -Added <.bin> to the extension of the file to display in the root folder. + and display all files in the subfolder. + + -Enabled all file type of Rename/Copy. + + -Fixed name of List ans//theta bug of Mat/List/Vct screen when ListFile No is more than 2. + + -Fixed Str,GraphY,fn memory allocation bug that number of elements decreased. + (example) "CDE"->Str 5 + Str 1,Str 2,Str 3,Str 4,Str 5 are available. + (example) "ABC"->Str 1 + Only Str 1 is available.(false) + Str 1,Str 2,Str 3,Str 4,Str 5 are available.(true) + + +v0.60alpha 2018.11.15 + -Changed specification of Str,GraphY,fn memory allocation method. + and changed default maximam allocation unit number is 20 to 127. + (example) "ABC"->Str 1 + Only Str 1 is available. + (example) "CDE"->Str 5 + Str 1,Str 2,Str 3,Str 4,Str 5 are available. + + -Changed specification of the default Mat of the substance of fn. + Str : + GraphY:Theta + fn :z + + -Fixed ClrVct with variable name not worked bug. + + -Fixed DrawStat bug that can not draw between inside and outside of screen. + +v0.60alpha 2018.11.12 + -Fixed ClrVct not worked bug. + + -Fixef GraphY(),fn() argument bug + (exapmle) "X+5"->fn1 + fn1(X=7) + (false) return value is (1)+5 + (ture) return value is (7+5) + + -Fixed StrShift bug that not compatible. + -Fixed StrSrc( bug that when a search start position were more than a string length, return value is not 0. + -Fixed StrMid( bug that when second argument value is 0, return strings is not NULL. + -Fixed StrLen(,StrCmp(,StrSrc(.Exp( that can not omit the multiplication sign. + + -Fixed Ans/r/theta of List name bug of Mat/List/Vct screen. + -Fixed omit the List "}" bug. + -Fixed List name strings bug that can not use Str variable. + + -Fixed And,Or,Not of complex number bug that not correct. + -Fixed And,Or of real number bug that not compatible. + (false) 0.1 And 0.2 -> 0 + (true) 0.1 And 0.2 -> 1 + + -Fixed BG-Pict bug of g1m mode that when file size is less than 1024, + + +v0.59alpha 2018.11.4 + -Fixed BmpLoad( bug of 1 bit BMP that right-side processing became 8 dots unit in the load to VRAM. + + -Fixed name of Vct bug of Mat/List/Vct screen. + + -Added support File of List. + It becomes the list file by 52. + (example) File 2 + to select File 2 + List 1 (File 2) use same as List 53(File 1) + the number of File which is necessary for setup required. + + (example) File 0 + to use the list of consecutive numbers as well as previous version. + + -Added inequality & integration graphing.( onry one graph supported now.) + +v0.58alpha 2018.11.3 + -Fixed enbug of Trn command. + -Fixed StrRotate bug that rotatory direction was reverse. + -Fixed Text/LocateYX bug that may become the system error when the out of a range of the coordinate designation. + +v0.58alpha 2018.10.21 + -Fixed memory error of Trn in expression. + +v0.58alpha 2018.10.16 + -Fixed jump bug of editor that might not jump at the bottom end. + -Fixed BmpSave bug that enbug in 0.57. + -Optimized _Hscroll/_Vscroll (50% up) + +v0.58alpha 2018.10.11 + -Fixed Screen.OT bug that transfer error bottom of 2 line. + -Fixed alpha-lock bug that not canceled alpha-mode of [ALPHA] at input of file name. + +v0.58alpha 2018.10.10 + -Reduced check of [AC] key in the execute loop. + As a result, Break On and Break Off became the about the same speed. + + -Fixed automatic guaranteed of List[]. + -Fixed the expression of Y(grapf)/fn with argument. + (false) "X+5"->fn1 + return value of fn1(7) is (X+5)*7. + (true) "X+5"->fn1 + return value of fn1(7) is (7+5). + + -Increased the extended variable up to 99. + and the maximum number of Alias of the variable up to 99. + -Added displayed the number of used extended variables in [F1]. + [the number of the use of the extended variable : Number of the use of the Alias variable]. + -Added scroll bar to the list of variables. + -Added minifont of the list of variables. + + +v0.57alpha 2018.10.5 + -Added support of serial command.(compatible with C.Basic for FX) + +v0.57alpha 2018.10.3 + -Increased to 52 from 26 of the extended variable by an alphanumeric characters name beginning with under bar (up to 8 characters). + -Fixed the bug of Alias command more than the maximums. + Alias maximums number + - Variable up to 64 + - Mat/Vct up to 26 + - Lbl up to 26 + -Fixed the evaluation error of the argument of Trn command. + (false) Trn Mat A+Mat B -> Tran (Mat A+Mat B) + (true) Trn Mat A+Mat B -> (Tran Mat A)+Mat B + +v0.57alpha 2018.9.29 + -Fixed UnitV(,Norm( bug of complex number of CPLX mode. + -Added vector command of INT mode. + -Change specification of Mat display width of CPLX 2 row to 3 row. + -Addded support to calculate the norm of a matrix. + +v0.57alpha 2018.9.18 + -Added support Raising a matrix to a specific power. + +v0.57alpha 2018.9.15 + -Added following vector command. +  Vct +  DotP( +  CrossP( +  Angle( +  UnitV( +  Norm( +  ClrVct + (*)The area of Vct A~Z becomes independent. + -To change [VARS] key for Vct display of Mat/List/Vct screen. + -Added support Matrix inversion and squaring. + -Fixed ClrList bug that deleted List 27~52. + ( to be exact List 1~26 ) + +v0.56alpha 2018.8.29 + -Change the filename of font editor program. +  FEINT35S.g3m -> FEINT35C.g3m +  FEINT35S.txt -> FEINT35C.txt + + -Fixed ReadGraph/DotGet bug that can not use 1 bit Mat/List. + -Fixed ML command bug that did not return to a default color. + +v0.56alpha 2018.8.27 + -Fixed [x](0x90)character and Ans error that use Mat/List of INT% mode. + +v0.56alpha 2018.8.25 + -Change specification of [F5](CHAR)-[VARS]. + (old) change normal font <-> default mini font. + (new) change default font <-> C.Basic font. + +v0.56alpha 2018.8.22 + -Added page scroll of MAT editor by [SIHFT]+[UP]/[DOWN]/[LEFT]/[RIGHT]. + +v0.56alpha 2018.8.19 + -Fixed stact over bug that was not finished until push [EXIT] many times. + +v0.56alpha 2018.8.15 + -Fixed Alpha mode Status display bugs of input of filename + -Added # option of RGB(,HSV(,HSL( that set to 16bit color directly. + (example) RGB(#12345) + (example) HSV(#12345) + (example) HSL(#12345) + + -Change specification of Graph Y= is not neccsesary "". + + -Added color of favorite list by setup. + -Added page scroll of SETUP/VAR/MAT display by [SIHFT]+[UP]/[DOWN] + -Added text convert to g1m/g3m/Main Memory selectable. + + +v0.55alpha 2018.7.30 + -Fixed ElementSize( command bug that 1 returned in 4bit Mat/List. + +v0.55alpha 2018.7.29 + -Change to not display "Done" of text mode after Cls/ViewWindow. + -Fixed slow startup when "Pict Mode" set other than "Heap" by setup. + +v0.55alpha 2018.7.24 + -Fixed write error of 4bit Mat at real mode. + +v0.55alpha 2018.7.23 + -Fixed [F1][F6]function display left in the replace of editor. + -Fixed the replace mode of editor was finished by [AC] in [F4](ALL)/[F5](ALL+). + + -Fixed not accepted by numerical value input of the 4 in element size of Mat. + +v0.55alpha 2018.7.21 + -Fixed [ALPHA] mode bug at the single line input. + -Change specification to become the absolute value when set a negative value in Xscale/Yscale of V-Win. + +v0.55alpha 2018.7.20 + -Fixed [F4](A<>a) can not change at the single line input. + +v0.55alpha 2018.7.16 + -Fixed serious bug that became system error when command history initialization by [MENU] at the single line input. + -Fixed that function menu was reset by the search / replace of the editor. + + -Added option command that change "" display mode. + (format) '#58 + fx-5800P mode + (format) '#98 + fx-9860G/fx-CG mode + +v0.55alpha 2018.7.10 + -Change specification of "" display same as genuine Casio Basic. + -Fixed screen recover error of single line input of C.Basic command input method. + ([F3](CMD)->[OPTN]/[VARS]/[SHIFT]+[VARS] etc.) + +v0.55alpha 2018.7.6 + -Fixed label of List bug that do not worked less than 8 character. + +v0.55alpha 2018.7.3 + -Added Det of Mat command. + -Fixed "\\" string color bug of editor. + -Fixed not displayed line number bug of editor in [SHIFT] mode. + -Changed color to blue of "Search For Text","Replacement Text","View Window" + -Fixed Back-Color bug that background color of pop up window was influenced by Back-Color. + -Added [ALPHA]+[alphabet key][Theta][r],[SHIFT]+[Ans],[X]key jump of Mat editor screen + -Disabled re-entry of Color select PopUp. + -Added [F6](retry) search function of during execution search of editor. + -Fixed [ALPHA] mode change bug. + -Fixed x10 display not worked without program. + +v0.55alpha 2018.6.28 + -Fixed [SHIFT]+[EXIT](QUIT) of editor in debug mode that excute the program. + -Change faverite color of editor. + -Added setup of debug mode exit popup. + -Fixed not worked fuction key of debug mode after [EXIT]. + + -Added up/dwon allow character of command history/ command input popup. + -Added V-MEM access in V-Win setup. + + -Added status line color of debug mode of editor. ( use new SysCall 0x1D75 by Colon ) + -Changed default color of line number to Black from Cyan. + + -Fixed text converting bug that 0b0,0b1,0b2,0x1,0x2,0x3 are failed. + -Fixed setup bug that changed Fix/Sci/Norm setteing after [EXIT]. + +v0.55alpha 2018.6.24 + -Added support g3p file of RclPict/RclCapt. ( only loading now. ) + (*This function requied setting of HeapRAM Size of 86KB or less.) + +v0.54.4alpha 2018.6.22 + -Fixed file saving probrem that the large file save to storage memory takes long time. + ( refer to http://www.casiopeia.net/forum/viewtopic.php?f=11&t=1740&start=50#p14530 ) + -Fixed failed file list that the file of strage memory copy to main memory. + -Fixed [AC] break bug that restart after [AC]break when the "AT DebugMode" is off. + +v0.54.3alpha 2018.6.21 + -Fixed text convison bug that following command is same as contracted form of matrices variable. + a0,a1,a2,b0,b1,b2,c0,c1,c2,x1,x2,x3,y1,y2,y3,n1,n2,Q1,Q3,f1,f2,f3,f4,f5,f6 + (example) a0(special variable) -> a0 + (example) a0(matrices variable)-> a\0 + + -Fixed System Error that an odd addressing of 16bits-color BitMap data to the argument. (WriteGraph,_Bmp etc) + -Fixed SrotA/D bug that only two argument became System Error. + +v0.54.2alpha 2018.6.20 + -Added Transp-Color command that set the transparent color in 16 bits color drawing. + (format) Transp-Color + clear the transparent color. + (format) Transp-Color color + (example) Transp-Color Green + set the transparent color to green. + (format2) Transp-Color #16bits color value + (example) Transp-Color #12345 + set the transparent color to 12345 + +v0.54.1alpha 2018.6.19 + -Fixed Augment( bug that it become "Memory Error". + -Changed specification when a0,a1,a2,anStart,b0,b1,b2,bnStart,c0,c1,c2,cnStart was used,it becomes the extended variable automaticaly. + (*If there is Alias, it takes first priority.) + +v0.54alpha 2018.6.16 + -Changed calculation priority of (-) from top of priority to Type C function priority same as genuine Casio Basic. + + -Fixed [AC]break bug that was not ready to break processing when it became [AC] break in "Return" coomand of the sub program. + + -Fixed initializing bug of List[1]~List[9]. + ( This is enbug that "Fiexd MAT/LIST re-allocate initialization bug" of ver.1.77 ) + + -Changed specifications of Min(,Max(,SrotA/D commands including complex number to judge at absolute value. + -Fixed GCD/LCM bug of complex number. + + -Added naming a List. + (example) "LABELA"->List 1[0] (* top of index is 1 default) + (example) List1[0]->Str 1 + (example) "LABELB"->List 1[-1] (* top of index is 0) + (example) List1[-1]->Str 1 + + -Fixed StoV-Win/RclV-Win command bug that can not set number of 6. + + -Fixed not changed g1m/g3m bug. + -Fixed StrAsc( was not text converting. + + +v0.53alpha 2018.6.10 + -If filename is null, re-input is required. + -Fixed serious bug of using hidden RAM of CG50 that not worked command input and change to password screen. + -Fixed trace/step bug that became system error. + + -Added setting of the setup to use the program file of Main Memory directly. + You can change the destination from Main Memory from storage, storage to Main Memory in preservation and the copy of the file. + At the storage memory mode, copying, a destination become Main Memory when they choose [F3](Main Memory). + Copying, a destination become the storage memory when they choose [F1](g3m)[F2](g1m) at the Main Memory mode. + + -Fixed the condition judgment became the integer judgment in If,While,Do command. (0.51~0.52 enbug) + + -Fixed Mat/List re-allocate bug. + (added re-allocated Mat/List is '*' mark. + + -Fixed freeze bug of editor that [F1](Jump)-[SHIFT]+[F6](CHAR)-[SHIFT](Continous Select) -[EXE] + + -Fixed bug of complex mode that Mat/List element including complex expression was syntax error. + + -Added DrawStat option of CG mode. + (example) S-Gph1 DrawOn,xyLine,List 1,List 2,1,Square[,ColorLinkOff][,Black] + [,ColorLinkOff] is not work now. + + -Added Identity command. + + -Added GridLine/AxesScale command. + + -Fixed using 0x90[X] character bug that [Lbl X][List X][Mat X] was error. + + -Fixed "Not" bug of complex mode that it was bit inverting. + -Fixed RanList#,RanNorm#,RanBin# bug of complex mode that not return complex List. + -Fixed Int/ bug of complex mode that not return complex number. + -Fixed bug of complex mode that when integer argument including the complex number became syntax error. + + -Fixed SortA/SortD bug that was not sorted with an floating number less than 1. + -Fixed SortA/SortD bug of multiple lists that incompatible of genuine Casio Basic. + (*all argument of lists was sorted independently before. ) + + +v0.52alpha 2018.5.21 + -changed auto overclock of the CG10/20. + (*When automatic overclock was necessary on startup in CG10/20, the popup dialog appears.) + + -changed [SHIFT]+[F5] function of the editor from [hex dump] to [A<>a]. + (*assigned the hex dump function to [SHIFT]+[F3](V-WIN)-[F5] newly.) + -changed [SHIFT]+[F6] function of the editor from [G<>T] to [CHAR] at not debugging mode. + + -Added GetMini( command option for MiniMini font and MiniMiniBold font. + (format) GetFontMini("character")M->Mat A + (format) GetFontMini("character")MB->Mat A + (example) GetFont("A")M->Mat A + The bitmap of "A" of MiniMini font to Mat A.B + (example) GetFont("A")MB->Mat A + The bitmap of "A" of MiniMiniBold font to Mat A.B + + -Supported complex number of Poke/Peek. + (example) Peek(&A).C + (example) Poke(&A).C,123+456i + + -Added HSV(,HSL( command. + (format) HSV(H,S,V) + (format) HSL(H,S,L) + H:0~359 +  S:0~255 +  V:0~255 +  L:0~255 + + -Added mini font for FX mode.( by Colon ) + + -Fixed GB mode bugs that moving cursor and 1 byte escape character. + -Fixed Menu command bug that [##] not enable GB font display. + (example) Menu ##"*****","1st",1,"2nd",2 + + -Fiexd [MKFLDR] bug that can't make folder. + + -Fiexd MAT/LIST re-allocate initialization bug. + (exaplme) {10,1}->Dim Mat A.B + -1->Mat A + {1,1}->Dim Dim Mat B.B(&Mat A) + [[1]]->Mat B.B + The correct answer was + [[1][-1][-1][-1][-1][-1][-1][-1][-1][-1]] + but became + [[[1][0][0][0][0][0][0][0][-1][-1]] + + -Fixed ?() bug that zero was not display. + -Fixed ?() bug that became the system error by imaginary number input. + + -Changed syntax to become the error at the end of the formula expression when there was not the delimiter. + + +v0.51alpha 2018.5.14 + -Added complex number calculation mode. + To use [CPLX] for change mode by setup. + [DBL#]/[INT%]/[CPLX] + ( still incompletely...) + + -Adjusted not zero return of sin/cos command. + (example) sin pi) + (example) cos (pi/2) + + -Added option of RndFix( that the maximum number of significant digits. + (format) RndFix( value, Sci digits) + (example) RndFix( 1.23456789e-123,Sci 5) + return value of 1.2346e-123 + + -Added status icon display. + + -Improved clip&paste of Mat/List that can change {m,n}<->{X,Y} or Hex or Bin output. + + -Added StrLen option that return real byte count. + (format) StrLen(@"ABCDE") + (example) StrLen(@Str 1) + + -Added scrollbar in filelist/setup. + + -Added FXmode character font that not exist FX series. ( by Colon ) + + +v0.50alpha 2018.5.5 + -enabled clip&paste in single line input. + + -Added Getkey1/2 option that can get SDK code. + (format) Getkey@1 + (format) Getkey@2 + retrun key code is SDK code. + + -Added [SHIFT]+[5],[SHIFT]+[6] option of dot editor of Mat/List. + + -Fixed Goto bug that was not able to work of Goto to the place more than 32KB. + -and the loop including the place more than 64KB that were not able to jump. + (expanded the pointer about movement of the program to 32 bits from 16 bits.) + + -A string variable was usable for the file name of the Save,Load( command. + + -Added 4 bit matrix. [nibl] + (example) {16,8}->Dim Mat A.N + +v0.49alpha 2018.4.27 + -Added GB font input/output.( Thanks very much Colon who discovered how to use GB font.) + + -Changed specifications of Locate command like LocateYX. + (format) LocateYX [@][!]y,x,[##]"string"orExpression,[,N/O/R/V][,F][,height] + [@] The drawing of the command becomes current VRAM. + [!] Even if the extended font is introduced, drawing in the original font forcibly. + [##] enable GB font display + [.N] Normal + [.R] Reverse + [,O] Or + [,V] reVerse or + [,F] Fixed 18 pixel pitch. + + -Set heap memory to use by setup from up to 127KB to 32KB is now available. + (* The program run and the editing cannot change it). + The default is 96KB temporarily. + + -Added clip&paste in list at Mat&List mode. + + -Fixed ?() bug that not displayed space character at reverse mode and not color. + + -Added Dim Dim option. + (usage) {m,n}->Dim Dim Mat A(real address of the Mat) + (example) {128,1}->Dim Mat A.B + (example) {64,1}->Dim Dim Mat B.W(VarPtr(Mat A)) + Mat A and Mat B access in the same domain, but are different in byte access or the word access. + + -Added System() option. + System(-4):return to remainder of the heap size.(KB) + System(-3):return to the heap area size.(KB) + System(-2):return to OS version.(example 311) + System(-1):return to model name.(50 in CG50) + + -To enable [AC]break at Sigma/Seq command. + -Fixed Mat strings initalize bug that top of string space is deleted. + (example) ["123"," ABC"," 789"]->Mat A + so far resulet "123","ABC","789" + to be exact "123"," ABC"," 789" + -Fixed small letter mode bug that the capital letter in [F5](CHAR) to become the small letter with the small letter mode, + + +v0.48alpha 2018.4.9 + -Changed add-in name that inculuding version. + (CBASICCG->CBCG048) + + -Changed the memory management method. + (secure all heap area for C.Basic use at the time of start.) + -To displayed quantity of usable current free RAM when pushed [SHIFT] in file mode, + (the free RAM is used separately in program, Mat, Pict.) + -Added the mode without the external font to setup or command. + (format) SetFont 0 + disable external font & reset external font + (format) SetFont 1 + enable external font + + -Fixed Goto bug that was not able to work of Goto to the place more than 32KB. + -and the loop including the place more than 64KB that were not able to jump. + (expanded the pointer about movement of the program to 32 bits from 16 bits.) + + +v0.47alpha 2018.4.3 + -Added select [X]character of [X,Theta,T]key in setup. + -Fixed Menu command bug that do not screen refresh. + -Fixed code of 0x90 bug. + -to limited the character that could input in filename. + -Fixed Menu command for CG of number of minifont character. + + -Supported files more than 64KB. + + -Added System( command. + (format) System(-1) + return to CG10/20/50 + return value is 10 : CG10 + return value is 20 : CG20 + return value is 50 : CG50 + + -Fixed status line indicator for input. + -Fixed BMP file copy bug that not worked. + -Fixed insert/overwrite mode bug that not worked. + -To change tha number of the maximum elements of the Mat is 2147483647 from 32767. + -Fixed RGB( bug that list argument not worked. + + -Added IsError( command that return error value of eval expression. + (format) IsError(expression) + (example) IsError(1+1) + return value of 0 that no error. + (example) IsError(1+) + return value of 1 that syntax error. + (example) IsError(1/0) + return value of 40 that Division by Zero error. + + (*return error value is following list) + 1: Syntax ERROR + 2: Math ERROR + 5: Stack ERROR" + 6: Memory ERROR + 7: Argument ERROR + 8: Dimension ERROR + 40: Division By Zero + 43: String Too Long + 44: No Matrix array + 55: Illegal Element + 60: Undefined Var + 65: Address Align ERR + + +v0.46alpha 2018.3.24 + -Added ?( option [@] that drawing of current VRAM. + (example) "A="?(@30,40,5,">",5)A + dispay "A=" on cuurent VRAM then wait for input A value at(px=30,py=40) only 5 digits and 5 character the blank is made up in ">". + (example) "A="?(@30,40,5,">",5,,M)A + dispay mini font "A=" on cuurent VRAM then wait for input A value at(px=30,py=40) only 5 digits and 5 character the blank is made up in ">". + + -Fixed ?( bug that scrolling set to 7 colmun. + -Fixed bugs that Graph drawing of g3m mode. + -Changed ScrollBar of editor. + +v0.45alpha 2018.3.21 + -Fixed _Rectangle,_Horizontal bugs. + + -Fixed that a new program became the g1m mode in the case of Auto g1m/g3m setting. + -Fixed [MENU]+[AC] broken screen bug. + -Changed the error message from Argument ERR to Alignment ERR by the miss alignment of the address of the Peek/Poke command. + -To adjustment start timing of exec-time measurement. + + -Added Version command that return version number. + (example) Version [SHIFT]+[MENU](SETUP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + When ver.0.45, return value is 45 + + -Changed displayed height & adding external font of FkeyMenu(. + "string" performs auto centering. + (format) FkeyMenu( n,"string",U) + (format) FkeyMenu( n,"string",RU) + display "string" 1 dot upper. + + -Fixed not working BackLight command. + (format) Backlight level + level:0~511 (0~255:sublevel +256:main level) + (format) +Backlight + Read the level of the current backlight. + + -Fixed StrSplit bugs into multi byte character. + +v0.44alpha 2018.3.16 + -Fixed reading mistakes the external font. + + -Added function that able to acquire the current external font introduction status. + (format) GetFont() + (format) GetMiniFont() + return value is (bit0:Ascii) (bit1:Gaiji) (bit2:Kana) + (example) When only the external kana font of the standard size is introduced, + GetFont() return to 4 + GetMiniFont() return to 0 + (example) When the external ascii mini font and gaiji mini font are introduced, + GetFont() return to 0 + GetMiniFont() return to 3 + +v0.44alpha 2018.3.15 + -added Or[O] and inversion Or option [V] in Locate command and LocateYX command. + By standard font drawing, a drawing option same as Text command comes to be usable. + added option [!] that drawing in the original font forcibly. + (format) Locate [@][!]csrX,csrY," string "or numerical formula [,N/O/R/V] + (format) LocateYX [@][!]Y,X," string "or numerical formula [,N/O/R/V][,height] + (format) Text [@][!]Y,X," string "or numerical formula [,N/O/R/V][,F/M/MB/FM/FMB/FX/X][,height] + (example) Locate 2,3,"Test" + (example) Locate 2,3,"1234",O + "1234" is overlaped in "Test". + (example) Text @!20,80,"Test",O + "Test" draw on coordinate (80,20) over current VRAM by the built-in font. + + -To fine-tuned the cursor blinking position of the editor. + -Fixed Menu command that FX compatible malfunction not to work with g1m mode. + -Fixed to freeze when pushed the [OPTN] key at the time of the program running end. + + -Fixed Mat editor bug that the frame of the line indication of Mat editor after using _Point command more than 2dot width. + -Fixed Mat editor bug that there was a horizontal number of element more than 9. + -When secured the Mat again [F3](DIM), not to initialize it in zero. + -Updated Impact font. (@LFONTA1.bmp and @MFONTA1.bmp) + + +v0.43alpha 2018.3.13 + -Updated icon indication of [F6] of the character select. + + -Added font height designation in Text and LocateYX commands. + (format) Text [@]Y,X," string "or numerical formula [,N/O/R/V][,F/M/MB/FM/FMB/FX/X][,height] + (format) LocateYX [@]Y,X," string "or numerical formula [,N/O/R/V][,height] + (example) Text 20,80,"Test",,,16 + displayed 16 dots by the upper end. + lower 2 dots is not displayed. + + -Fixed missing text conversion ( code at 0xFFE0 ...) from g3m/g1m. + + +v0.42alpha 2018.3.11 + -Fixed the condition judgment became the integer judgment in If,While,Do command. + + -Fixed not displayed miniminimini font by external font mode in editor. + -Fixed the standard font mode invisible cursor at backcolor black in editor. + -Fixed the malfunction that [3] key did ot work for by the catalogue function. + -Fixed the malfunction of the collective comment function in editor. + -Fixed malfunction of the cursor lower movement of the newline. + -Fixed could not store after the editing with the binary mode in editor. + -Fixed the element jump [Goto] in Mat editor. + + -Fixed Ticks% and TicksWait bugs. + -Fixed mistaked RanNorm# icon. + + -Added new exponent display by setup & command. + Exp Display : E / Stdx10 / Allx10 +    select exponent character. +    E: -1.23e99  previous character. + Stdx10: -1.23(x10)99 new character only standard font size. + Allx10: -1.23(x10)99 new character all font size. + + command: '#exp 0 // previous character. + '#exp 1 // new character only standard font size. + '#exp 2 // new character all font size. + + -Added 12 arguments for SysCall. + (format) SysCall( syscall number [,arg1][,arg2][,arg3][,arg4][,arg5][,arg6][,arg7][,arg8][,arg9][,arg10][,arg11][,arg12] ) + + -Fixed mini cursor displayed in binary editor. + + +v0.41alpha 2018.3.6 + -Fixed bugs that display previous screen in editor. + + -Added progress bar for convert text to g1m/g3m. + +v0.41alpha 2018.3.5 + -To able to put the space within the command interval, the numerical formula. + + -Added Screen.OT option that restrain VRAM becomes the synthetic screen at the time of LCD screen transfer + (format) Screen.OT + VRAM does not come to change after LCD screen transfer. + + -Added selectable VRAM for _PixelTest. + (format) _PixelTest(x,y,T) + to return color value from the text VRAM (x,y) + (format) _PixelTest(x,y,G) + to return color value from the graphic VRAM (x,y) + + -Fixed 0x... 0b... Text to g1m convert bugs. + + -To adjustment of Editor + -Standard font (18x24) 7 lines fixed pitch + -Mini font (12x18) 9 lines fixed pitch + -Mini font (? x18) 9 lines proportional + -Mini font (12x17) 10 lines fixed pitch (*additional) + -Mini font (? x17) 10 lines proportional (*additional) + -MiniMini bold font ( 9x13) 13 lines fixed pitch (*additional) + -MiniMini bold font (? x13) 13 lines proportional (*additional) + -MiniMini font ( 8x13) 13 lines fixed pitch (*additional) + -MiniMini font (? x13) 13 lines proportional (*additional) + -MiniMini bold font ( 9x11) 15 lines fixed pitch (*additional)(*adjustment) + -MiniMini bold font (? x11) 15 lines proportional (*additional)(*adjustment) + -MiniMini font ( 8x11) 15 lines fixed pitch (*additional)(*adjustment) + -MiniMini font (? x11) 15 lines proportional (*additional)(*adjustment) + -miniminimini font ( 6x10) 17 lines fixed pitch (*additional) + -miniminimini font ( 6x 8) 21lines fixed pitch (*additional) + + +v0.40alpha 2018.3.2 + -Added MiniMini font and miniminimini fx style 6x8 font. + (format) Text y,x,"string"orExpression,[,N/O/R/V][,F/FM/FMB/M/MB/FX/X] + (example) Text 20,80,"Test",,M + "Test" is displayed a minimini-font. + (example) Text 20,80,"Test",,MB + "Test" is displayed a minimini-bold-font. + (example) Text 20,80,"Test",,FM + "Test" is displayed a fixed pitch minimini-font. + (example) Text 20,80,"Test",,FMB + "Test" is displayed a fixed pitch minimini-bold-font. + (example) Text 20,80,"Test",,FX + "Test" is displayed a minimini-fx style 6x8 font. + + -Added MiniMini font and miniminimini fx style 6x8 font in the editor. + can select following font style. + + The change of the font as provisional specifications except the setup, + [SHIFT]+[right and left cursor control key] you can change it sequentially. + + Because there is only ASCII code in the MiniMini font, the deficit is covered in the miniminimini fx font. + I'm going to implement an insufficient font in future. + + -To be able to set the background color in the editor, and cursor movement/scroll performace is 50% improved. + (the reversing display function of the editor deleted it by this change.) + + +v0.39alpha 2018.2.27 + -Added display the line number in status line of editor. + +v0.39alpha 2018.2.25 + -Fixed bugs that Comment,If,Switch more than 32 in one program. + -Fixed chenged color bugs that stop ant restart of the program. + -Fiexd display bugs that editor in debug mode. + -Fiexd Gosub bug that failed in the substitution of the return value without the argument. + (Example) Gosub A->B + Disp B + Stop + Lbl A + Return 1 + + +v0.38alpha 2018.2.21 + -Added StrAsc( command. + Converts a character (in a string) into the corresponding ASCII code number. + (example) StrAsc("Ascii") + return value is 65(0x41). + + -Fixes StrLen(,StrCmp(,StrSrc( bug that a closed parenthesis was splashedmore. + (example) (10-StrLen("ABC"))*2 + This was interpreted as (10-StrLen("ABC")*2 before. + +v0.38alpha 2018.2.18 + -Fixed text to g1m/g3m misconversion that an alphanumeric characters name beginning with under bar into built-in command name. + + -Fixed bug to cause system error by display of the extended font character. + + -Fixed high-res1/32768s timer bug that not reset or command. + + +v0.37alpha 2018.2.10 + -Added commands for [AC] break enable/disable. + (example) '#Break0 // disable [AC] + (example) '#Break1 // enable [AC] ( default ) + + -Added [SHIFT]+[6] to input RGB( color Code in editor. + -Added [SHIFT]+[3] to input Getkey Code in editor. + + -Fixed A1,B2 mat re-init bug. + + -Added high-res timer 1/32768s for ticks command. + (example) Ticks% + (example) Ticks%Wait + + -Added high-res1/32768s timer by a time measurement function of the program running.(by setup) + + +v0.36alpha 2018.2.5 + -Fixed invalid value for Prog~Return value. + + -Added the setting that it prevented setting of the setup from being changed it by a program. + to set it whether you return setting compatible with genuine CasioBasic after a program in SetupRecover. + The setting to be affected following +   Angle +   DrawType +   Coord +   Grid +   Axes +   Label +   Derivative +  Plot/LineColor +   Sketch Line +  Display Fix/Sci/Norm/Eng + + Even if the extended setting for C.Basic is changed by a program, return to original setting after run. + + -Fixed Menu command bug that character length is short in multibyte character. + + -To no changing the internal RTC by the substitution to the timer variable of Ticks(%). + (example) 0->Ticks + resets only the timer variable of C.Basic to 0. + The change of the RTC becomes only DATE/TIME command. + + -To rename a command name of AliasVar in Alias. Alias function became able to use Lbl. + (example) Alias A=_ABCD + (example) Alias Mat A=_ABCD + (example) Alias Lbl A=_ABCD + + -Added the extended variable by an alphanumeric characters name beginning with under bar (to 8 characters) is usable. + (example) 4.56=_ABCD + (example) 123=_X123 + (example) _ABCD+_X123 + result of 127.56 + + -Changed specifications that to suspend time measurement during Getkey1/2 running. + you can choose stop or reset&restart by setup, + To use it as a command, + (format) '#GetkeyC + It is the stop of the measurement of the default, a continuation mode. + (format) '#GetkeyR + Timekeeping restarts reset & after Getkey1/2 practice. + + -Added Mat reinitialized function. + (it is necessary to secure the greatest index to use at first.) + (format) {12,20}->Dim Dim Mat A + (example) [[1,2,3]][4,5,6]]->Mat A + {2,2}->Dim Dim Mat A + The result of Mat A is [[1,2][3,4]] + + -Fixed reversed to RowSize( / ColSize(. + + -Fixed StrSrc( command that one result slipped off when set search start position. + + -Added external font. (Please check the manual page for details) + + +--------------v0.10alpha~ v0.35alpha + + -Fixed List Ans// not display bugs in Mat editor. + -Fixed Norm command bug. + + -Fixed can't input "StrLwr(" in standard mode method. + + -Fixed Replace bugs for Editor. + + -Fixed the initialization bug in the case of continuation space for string to Mat. + (example) [" ","12345"]->Mat A + + -Added function that change the selection area to the comment in CLIP&PASTE. + [SHIFT]-[8](CLIP) [F5]or[F6] + + -Added new founction of BmpLoad( that to be able to load data directly on VRAM. + (example) BmpLoad("TEST"),20,10 + load TEST.bmp at coordinate (20,10). + + -Added new founction of BmpSave that to be able to save data directly from VRAM. + (example) BmpSave "TEST",10,20,100,50 + save TEST.bmp at coordinate (10,20)-(100,50) + + -added FkeyMeu( option. + (usage) PopUpWin(0) + Only screen evacuation does not perform PopUp. + (usage) PopUpWin(9) + Only as for the return of the screen which evacuated. + + -Added option "(" for List or Mat@ + (example) 1->A + (example) List (A+1) + = List 2 + (example) Mat @(A+1) + = Mat 2 = Mat B + + -mini editor performance up. + -error check the control variable of For - Next strong. + -Fixed cursor moving error for CLIP&PASTE. + + -added PopUpWin( option. and it became the command with a return value.. + (usage) PopUpWin( n ) + (usage) PopUpWin( 11, "1st message string"[,"2nd message string"] ) + return value is always 1. + and return to a previous screen after the command. + (usage) PopUpWin( 10, "message string"[,"2nd message string"] ) + when yes that return value is 1. + when no that return value is 0. + and return to a previous screen after the command. + + -added FkeyMeu( option. + (example) FkeyMenu(1,42) + display system icon (white "edit") at F1 position. + + -to controled [EXIT[F1}[EXE] key repeat. + + -push left and right key moved top or botom in setup mode. + + -Fixed not compatible for comment. + + -Fixed extended ? command bugs. + +=============================================================================== +C.Basic for FX +=============================================================================== +v1.64beta 2017.11.19 + -Fixed display command including multibyte character. + -Fixed List->Mat( bugs. + +v1.64beta 2017.10.29 + -Fixed CATALOG key not worked. + +v1.64beta 2017.10.20 + -Added character limit of ? command optional function . + (usage) ?([x][,y][,width][,"SpaceChar"][,limit][,R]) + (example) "A="?()->A + dispay "A=" then wait for input A value. + (example) "A="?(,,,,,R)->A + dispay "A=" then wait for input A value reversed display. + (example) "A="?(,,8,,,R)->A + dispay "A=" then wait for input A value only 8 digits reversed display. + (example) ?(3,4,5,">",5)A + display the value of A then wait for input A value at(X=3,Y=4) only 5 digits and 5 character the blank is made up in ">". + (example) ?(3,4,5,,5,R)A + display the value of A then wait for input A value at(X=3,Y=4) only 5 digits and 5 character reversed display. + + +v1.64beta 2017.10.14 + -Fixed not worked bugs at [EXE] after search in editor. + -Fixed stoped skip bugs at long logical line in editor. + +v1.64beta 2017.10.9 + -To changed logical line number from physical line number in editor. + + -Added Mat 1 or Mat @A syntax. + and to changed correspondence of List 1~26 and small letter Mat. + Mat a~z is List 27~52 + Mat a~z is not List 1~26 + List 1~26 is independent List + + Mat 1 instead of Mat A ( not same as List 1 ) + Mat 2 instead of Mat B ( not same as List 2 ) + Mat 3 instead of Mat C ( not same as List 3 ) + Mat 26 instead of Mat Z ( not same as List 26 ) + Mat 27 instead of Mat a ( same as List 27 ) + Mat 28 instead of Mat b ( same as List 28 ) + Mat 29 instead of Mat c ( same as List 29 ) + Mat 52 instead of Mat z ( same as List 52 ) + Mat 100 = List 100 + Mat 1000 = List 1000 + + (example) Mat 1 + Mat 2 + (example) 3->A + Mat @A = Mat C + + to input "@" by [OPTN][F5] + The abbreviated form of Mat @A is @A. + (example) 2->A + {5,3}->Dim @A + 123->@A[1] + + But the @A1 notation is not usable. + + + -Added set by seed for Ran#. + (usage) Ran# #seed(integer number) + (example) Ran# #12345 + (example) Ran# #A + + -Added ZoomRotate in ML command. ( based on Planet-Casio Ninestars expansion ) + (usage) _BmpZoomRotate &Mat , x, y, width, height [,zoomwidth][,zoomheight][,angle(degree)][,color][,chance] + (example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 + (example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + + -Added specify the range at _Hscrool and _Vscroll in ML command. ( based on Planet-Casio Ninestars expansion ) + (usage) _Hscroll scroll [,x1,y1,x2,y2] + (usage) _Vscroll scroll [,x1,y1,x2,y2] + (example) _Hscroll 1,32,16,47,95 + (example) _Vscroll -1,5,10,100,40 + + +v1.63beta 2017.9.26 + -Fixed not compatible that sub program at end of main program. + -Fixed bug ””string at 7 line. + +v1.63beta 2017.9.4 + -Fixed Multibyte character in the filename bugs in filemode. + +v1.63beta 2017.8.20 + -Added serial communication commands.( not compatible with genuie CasioBasic.) + (usage) Send( data [,baudrate]) + (usage) Recv( data [,baudrate]) + (usage) Send38K data [,bytecount] + (usage) Receive38k data [,bytecount] + (usage) OpenComport38K[,baudrate][,transfermode] + (usage) CloseComport38K + [data]: Variable,Matrices,List + data is necessary to match data type of a transfer source to a transfer destination. + [transfermode]: 0:binary data transfer mode 1:necessary to match data type (default) + When OpenComport38K with [transfermode:0]option, Send38K/Receive38k is binary data transfer. + [baudrate]: 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=115200 baud + default baudrate is 38400 + Send(/Recv( use alone. + Send38K/Receive38k is necessary for OpenComport38K/CloseComport38K. + + (example) Send(A) + (example) Recv(A) + (example) Send(Mat A) + (example) Recv(Mat A) + + (example) OpenComport38K,9,0 + Send38K List 1 + CloseComport38K + (example) OpenComport38K,9,0 + Receive38k List 1 + CloseComport38K + + -Fixed line number display probrem in editor. + + +v1.62beta 2017.8.14 + -Fixed illegal date/time display in Setup. + + -Added setting that force return to file mode at [AC]break. + + -Added history in editor. + To Press [MENU], You can select previous 32 commands. + and Press [LEFT][RIGHT], display it in order with much frequency. + + -Added Matrix Dot Edit mode. ( Press [OPTN] key at Matrix editor screen.) + -Added Matrix Data copy to Clipboard.(C.Basic format)( Press [SHIFT]+[8](CLIP) key at Matrix editor screen.) + and Paste from Clipboard.( Press [SHIFT]+[9](CLIP) key at Matrix editor screen.) + You can edit dot data in the mat screen, and then copy the code into your programs. + + -Added Bmp file support.(only 1 bit mono type) + (example) BmpSave "TEST",Mat A + save "TEST.bmp" at current folder. + (example) BmpLoad("TEST")->Mat A + load bmp data to Mat A + + -Added DrawMat command that drawing Mat data. + (usage) DrawMat Mat A[px,py], x, y, width, height [,zoomwidth][,zoomheight][,color][,chance] + (example) DrawMat Mat A, 0, 0, 128, 64 + (example) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + + -Added Capt file load and save. + (example) StoCapt 20 + save as "Capt" folder + (example) RclCapt 20 + Load from current folder or "Capt" folder. + + -reduce Pict file size.(2KB->1KB) + + -Added StrRepl( command. + (usage) StrRepl(String1,Find,ReplaceWith,StartAtCharPos) + (example) StrRepl("Hello World","World","Earth") -> "Hello Earth" + (example) StrRepl("abcabc","ab","ff",3) = "abcffc" + (example) StrRepl("abcabc","ab","ff") = "ffcffc" + + -Disable [MENU]key at IRQ is enable.(flashing cursor etc) + + +v1.61beta 2017.8.2 + -Added a setting to more Pict & List at using hidden RAM. + You can use Pict(up to 99) & List(up to 1040). + + -Added "List" & "Mat" replace font.(Reverse or Thick by setup) + + -Added _Circle option. + (usage) _Circle x,y,radius,color[,chance][,width][,start_angle][,end_angle][,vertex] + (example) _Circle 64,32,20,4,0.5,3 + 3x3dot 50% circle + (example) _Circle 64,32,20,1,,3,0,90 + to draw 3x3dot 1/4 circle + (example) _Circle 64,32,20,1,,,0,360,5 + to draw pentagon ( to have an effect on setting of Draw Type ) + (example) _Circle 64,32,20,1,,,20,380,5 + to draw shifted pentagon + + -Added _Test option in ML command. + (support command) _Point _Line _Rectangle _Circle _Polygon + to use function to put "_Test" before support command. + (example) _Test_Rectangle 0,0,127,63 + to return the amount of pixels that are on in that area (0,0)-(127,63) + (example) _Test_Circle 62,32,20 + (example) _Test_Point 10,10,5 + (example) _Test_Line 10,10,100,30 + + -Added Zoom & Rotate in ML command. ( based on Planet-Casio Ninestars expansion ) + (usage) _BmpZoom &Mat , x, y, width, height [,zoomwidth][,zoomheight][,color][,chance] + (usage) _BmpRotate &Mat , x, y, width, height [,angle(degree)][,color][,chance] + (example) _BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 + (example) _BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 + (example) _BmpRotate &Mat A, 0, 0, 20, 10, 45 + + -Added Getkey "M" option that puts multiple pressed keys into a list + (example) GetkeyM->List 1 + press EXE and F1 will result in {79,31} + + -Added ListCmp( command that compare List to List or List to value. + (examle) ListCmp({1,2,3},{1,2,3}) + return value 1 + (examle) ListCmp({1,2,3},{1,3}) + return value 0 + (examle) ListCmp({1,2,3},{1,3,2}) + return value 0 + (examle) ListCmp({1,2,3},2) + return value 1 + (examle) ListCmp({1,2,3},4) + return value 0 + + -SortA(,SortD( command came to be usable in formula expression. + + +v1.60beta 2017.7.26 + -Added StrBase( command + (usage) StrBase(Number string, Current base, Expected base) + Current base, Expected base: 2~64 + Use character { 0-9 A-Z a-z } + (example) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + -Fixed "Graph Y=" Line Style bugs + -Fixed that not work when _PixelTest( is top of line. + + -Added new color (2x2 dot matrix) in MonochromeLib command. + color value: 10 11 12 13 14 (2x2 dot matrix by 1dot width) + color value: 20 21 22 23 24 (2x2 dot matrix) + oo *o *o ** ** + oo oo o* *o ** + (example) _FillCircle 64,32,30,21 + + -Added random color in MonochromeLib command. + (usage) x,y,,,color,chance + (example) _Rectangle 0,0,127,63,0,0,4,0.5 + (example) _Rectangle 0,0,127,63,0,0,4,%50 + would will the whole screen with random pixels, pixels have a 50% chance of being on (0.5) or %50 + (example) _FillCircle #0,0,3,4,0.5 + Makes a circle with the radius 3, the circle is filled with random pixels (on/off) pixels have a 50% chance of being on (0.5) + If the color is 4, you can set the chance + (example) _Rectangle 0,0,127,63,0,0,4,%10 + fills the screen with pixels, the pixels have a 10% chance of being on + + -Added width in _Line command. + (usage) _Line X1,Y1,X2,Y2,Color[,chance][,Width] + (example) _Line 0,0,127,63,1,,10 + + +v1.59beta 2017.7.19 + -Added Replacement in editor. + Replacement string input is possible when push [F2] after the search strings input. + There are [F2] to replace while confirming it and mode [F4] to all replace without confirming. + -Fixed a bug that when trying to press NEW in while the cursor is on a folder, you can't create a program. + -Fixed a bug that can't input clip strings to search strings. + -Fixed StrInv( bug. + +v1.58beta 2017.7.15 + -Added mini font editor + -Added a setting to disable debug mode. + -To be able to delete folder in file mode [DEL]. + -Fixed a bug that making a new program, while there's nothing there, keep pressing DEL a lot, sometimes a lot of "w" appear. + -Fixed Prog command bug that cannot read from subfolder file. ( enbug 1.00beta5..) + +v1.57beta 2017.7.8 + -Added a setting to disable the header when editing code. + -Added a way to delete multiple characters with: Shift+8 (clip) and then DEL to remove everything inside the selection. + -Added a setting to auto save without a popup. + -Remove the need of "Then" in If-Statements + -Added "Screen" command option to invert screen. "Screen"+"R" + (example) ScreenR + + -Added "Screen" command option to convert from Screen Coordinates to Graph Coordinates. + (usage) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + return value to List Ans{x,y} + (example) Screen#1,1,-6.3,6.3,-3.1,3.1 + result {74,22} + + -Added "Screen" command option to convert from Graph Coordinates to Screen Coordinates. + (usage) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + return value to List Ans{x,y} + (example) Screen%74,22,-6.3,6.3,-3.1,3.1 + result {1,1} + + -Drawing objects with VRAM commands( _Rectangle, _Circle, ...) in Graph Coordinates instead of Screen Coordinates. + add to '#' character option to ViewWindow Coordinates. + support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + (example) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2.1 + + -Added a command to center strings. + (usage) StrCenter("Strings",length[,"SpacingStrings"]) + (example) StrCenter("Test",8) + results in " Test ") + (example) StrCenter("Test",8,"*") + results in "**Test**" + + -Added a command to repeat string StrChar( + (example) StrChar("ABC",5) + results in "ABCABCABCABCABC" + + -Added commands "Hex(" and "Bin(" + (exapmle) Hex(12345)->Str 1 + result in "3039" + (example) Exp("0X"+Str 1)->A + result in 12345 + (exapmle) Bin(12345)->Str 1 + result in "11000000111001" + (example) Exp("0B"+Str 1)->A + result in 12345 + + -Added more than 26 lists (max 52) + + -Added create folders [MK.F] + but,[RN.F] is a future plan. + + + +v1.56beta 2017.6.30 + -Added the setting that no updating screen by setting 0 to the RefrshTime. + You can use it by setup and the command. + (example) RefrshCtrl 2 + RefrshTime 0 + The text and graphics command do not update a screen. + + -Added the TicksWait command that waited by 1/128s ticks. + (The TicksWait command connects both "Ticks" and "Wait" command.) + (concerning this, changed part of key assignment.) + (example) TicksWait 128 + Wait 1 second. + (example) TicksWait -128 + Wait for 1 second from the last TicksWait command run. + When it has been already over 1 second, to the next processing without waiting. + (example) TicksWait -4 + Wait for 4/128 second from the last TicksWait command run. + You can make 32fps of loops just to use one this command in the loop. + + +v1.55beta 2017.6.11 + -Added ? command optional function. + (usage) ?([x][,y][,width][,"SpaceChar"][,R]) + (example) "A="?()->A + dispay "A=" then wait for input A value. + (example) "A="?(,,,,R)->A + dispay "A=" then wait for input A value reversed display. + (example) "A="?(,,8,,R)->A + dispay "A=" then wait for input A value only 8 digits reversed display. + (example) ?(3,4,5,">")A + dispay "A=" then wait for input A value at(X=3,Y=4) only 5 digits and the blank is made up in ">". + (example) ?(3,4,5,,R)A + dispay "A=" then wait for input A value at(X=3,Y=4) only 5 digits reversed display. + + -Fixed AxesOn bugs. + +v1.54beta 2017.6.3 + -Fixed the multiplication of the Matrix. ( It always became the integer result ) + -Fixed 2 Plot & Line bugs. + -To stored Pict file in the hidden RAM area. + -To added setting to store at the same time to storage memory by Pict file preservation. + (example) Pict #20 + This prefix(#) is store to storage memory option. + -To displayed the progress bar at the conversion from text file. + +v1.53beta 2017.5.27 + -Fixed StrRight bugs + (example) StrRight("12345",0) + It was right to become the null string, but became "5". + -Fixed acos bugs for list calc. + -Fixed Graph Y=Yn bugs. + -Fixed text conversion bugs when double quotes(") was escaped by string. + -To be able to use the small letter for The Lbl command. + +v1.52beta 2017.5.16 + -Fixed bugs, When "" double quotation was not closed in Locate and Text command, the following program became handled as string. + -supported RanNorm#(,RanBin#( + +v1.51beta 2017.5.11 + -To changed the icon of the function keys to the system icon. + -supported GCD(,LCM( + +v1.5beta 2017.5.7 + -supported Standard command input method. + You can select Standard(fx-9860G) method or C.Basic(fx-5800P) method from the setup. + Please refer to Command_List.txt for the command that is supported. + + -supported *Row,*Row+,Row+ + +v1.42beta 2017.4.30 + -Fixed that r and θ were not usable for a Lbl name. + -Fixed Goto bugs that used the same Lbl name by main and a sub program. + -In [?->A]command, Fixed that might freeze when pushed [EXE] by non-input. + -Fixed when a scalar came for List operation later. + (Example) List 1 + 5 -> List 2 + +v1.41beta 2017.4.22 + -added setting not to initialize Mat&List at start of C.Basic at use hidden RAM. (setup setting required) + In that case, when you finish C.Basic and restart after use in other functions or add-in, Mat&List will restored. + (when other add-in does not use hidden RAM) + -Fixed the number key in that not able to input in MENU command. + + +v1.4beta 2017.4.16 + -supported the multiplication of the Matrix. + The multiplication between the Mat sequence that considered Mat to be array is possible by doing it for multiplication between List by using the small letter Mat. + Substance agreed with (List with small letter Mat;) + (example) Mat a * Mat b + Matrix multiplication + (example) List 1 * List 2 + array multiplication + + +v1.31beta 2017.4.15 + -Fixed that gained factors of List one by one. + -Fixed that [not] of the bit operation in the integer mode remained [Not] of the Boolean operation. + -Fixed "Done" indication not having been given at the time of the program end by [Stop] command. + + +v1.3beta 2017.4.10 + -Fixed incompatible that And, Or, Xor became the bit operation not a Boolean operation. + added [and, or, xor, not] to use with BASE mode as a bit operator. + -When "string" is over in width just 21 characters Fixed incompatibility that it was not started a new line. + -Fixed incompatibility that returned to main menu with [MENU] key during Menu command practice. + -in StrMid command, Fixed malfunction to become the system error when third parameter. + + +v1.2beta 2017.3.17 + -Part of operation of the sequence (line) was enabled by extension of the addition, subtraction, multiplication and division operation on the list. + As for the one which there is which is compatible with a pure line, it is only with the addition and subtraction between lines and a line and scalar operation. + (example) Mat A + Mat B + (example) Mat A * B + Int Mat C + + -Fixed compatibility of BG-None,BG-Pict command. + + -Fixed conversion error of Exp(-) in the conversion from a text source. + (error) Exp(-)9 -> Exp(-)9 + (Ok) Exp(-)9 -> e-9 + + -Fixed Getkey to have returned to main menu with [MENU] key by Getkey1, Getkey2 command. + + +v1.1beta 2017.3.11 Beta 2 + -supported with a list of integer modes function. + -added turn into list indication with [OPTN] key at the time of Mat indication. + and Character string indication & input came to be possible with [VARS] key. + -Fixed #'CBINT ,#'CBDBL was programing it and revised plural malfunction not to function when it was used. + -Fixed a text conversion error of the string that "Char" was included in. + -When set Pict in the heap area, read it automatically when there was Pict picture file of same No in current directory or Pict folder. + When set it, only the Pict folder of the current drive accesses the S.Mem in Pict. + (example) If there is Pict10.g1m file in current directory or Pict folder, the image is read automatically in the Pict of the heap when accessed it first in Pict10. + When do not exist, it becomes the memory error. + When the image exists, it becomes only heap access from next Pict10 access. + + -added function that confirm the image when push [EXE] with Pict file with the filelist screen. + -Fixed incompatibility that passed the loop when initial value exceeded closing value in For-Next command. + + + 2017.3.5 Beta 1 + -Supported list function. + -following command supported. + List Ans + {1,2,3,4,5}->List 1 + 10->Dim List 1 + Dim List 1 + Seq( X^2, X, 1, 10, 2) ->List 2 + Augment(List1,List2) ->List3 + Mat>List( Mat A, 2) -> List 1 + List>Mat( List 1, List 2,.). -> List 9 + Fill(3,List1) + Min(List1) + Max(List1) + Mean(List 1) + SortA(List1) + SortB(List1) + Sum List1 + Prod List1 + Sigma( several sets, control variable, initial value, closing price, chopping fine) + + -Ssupported the operation (addition, subtraction, multiplication and division operation and function operation) including the list. + (supported example) A + List 1[B-1] * List 2[C+1] + (not supported example) A + List 1 + A - B * Cos C * List 2 + Sin List 1 + Cos List 2 * log List 3 + + -Supported part of DrawStat command and Graph(X,Y)=( command. + As an allied command, + BG-None, BG-Pict, G-Connect, G-Plot S-Gph1, S-Gph2, S-Gph3, DrawOn, DrawOff, Scatter, xyLine, Square, Cross, the Dot command, + TθMin + TθMax + TθPtch + + -added the delete command of the file. + (example) Delete "TEST.txt" + delete "TEST.txt". + (example) Delete "TEST.txt", 1 + confirm it before deletion. + + -Fixed that (JUMP) jump sub menu [F6] skip down did not work [F1] in the debugging mode. + -Fixed that what the closing value of the control variable exceeded in For-Next command. + -Values of Ans always merged it in the genuie specifications not to update Ans when there was (->) substitution when it followed of the expression. + -in the space of the head of a line, Fixed malfunction to become the error before one of Then of the If-Then command in the case of space. + -Fixed the malfunction that appeared when there was loop structure in a party [AC], and a break did not work for. + (example) While Getkey<>31:WhileEnd + -FixedI the malfunction not to be finished by Stop command in the sub program. + -Changed the default line used for a string variable from s (small letter) to r of one of an additional variable. + -added the wait function to slow an overall execution speed. set it by setup and [Wait] command. + When set it by setup, all the programs are affected. + (example) Wait 100 + Even SH3 is SH4A, but becomes the speed drop of the same. + Wait 10 is about 1/2 speed. + Wait 100 is about 1/10 speed. + + +------------------------------------------------------------------------------------- +https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site and following text is translated by Krtyski. +------------------------------------------------------------------------------------- + +2nd Feb, 2017 +Ver. 1.00 - beta 7 version + + - New Feature [2nd Feb, 2017]: Newly support alias variables by adding AliasVar command. Any character can be used as alias of actual variable character. + Maximum 10 aliases can be used. + Replacable variables are single letter variables shown charactors page by [CHAR]. + Variable name and matrix name are replaced by alias at the same time. + (example) AliasVar A=(alpha) + (alpha)+100->(alpha) + After setting the alias (alpha), (alpha) is available as variable insead of variable A. Real entity of (alpha) is A, so the above expresisono is identical with A+100->A + + + +2nd Feb, 2017 +Ver. 1.00 - beta 6 version + + - New Feature [2nd Feb, 2017]: Newly support variable r and θ as same as genuine Casio Basic. As an extended feature of C.Basic r and θ can be used local variable as well as global. + These new variables r and θ can be used for matrix name, so descrition such as θ1, θ5 (abbreviation of matrix expression) can be used. + - New Feature [2nd Feb, 2017]: Newly support fraction character (operator) "/" (line mode). + + + +29st Jan, 2017 +Ver. 1.00 - beta 5a version + + - Bug Fix [29th Jan, 2017]: In SD version, navigation in File List Page was slow. This is hopefully fixed (may not be...). + + + +26st Jan, 2017 +Ver. 1.00 - beta 5 version (hopefully supporting SD) + + Note) This version is for trial to support SD version of fx-9860G Sries. Develper team do not have SD version of these calcs and did not check with real calc yet. We appreciate any feedback from useres. + + - Spec Change [26th Jan, 2017]: Text file handing spec is changed. Text file could not be saved. When tried to save text file, the file was autoatically converted to g1m file and then saved as g1m file. This spec is now changed, text file can be separately handled from g1m file. + If tou wan to save text file with automatically converted g1m file, set "Force g1m save" on in Setup Page. + With this new spec, you can enjoy C.Basic with only text file. + + - Bug Fix [26th Jan, 2017]: Bugs in copy and renamne of text file is fixed. + - Bug Fix [26th Jan, 2017]: g1m file including a long string in multiple lines within " " failed converting to text file, special charactors could not properly converting to text. This is fixed. + - New Feature [26st Jan, 2017]: When use graphic drawing commands (genuine Casio Basic commands), set "@" right after one of those commands to allow drawing in current VRAM, regardless text or graphic mode. + (example) Locate 2,2,"String" + Text 16,1,"TextString" + The Text command draw in text VRAM, not in graphic mode. + + - Spec Change [26th Jan, 2017]: FkeyMenu(, ReadGraph( and WriteGraph commands draw in current VRAM. It depended on VRAM mode, but is changed. + - New Feature [26st Jan, 2017]: A new key scan command KeyRow( is added. + + returing bits (in binary) + bit6 bit5 bit4 bit3 bit2 bit1 + Row--------------------------------------Row + 09 F1 F2 F3 F4 F5 F6 09 + 08 SHIFT OPTN VARS MENU <- (up) 08 + 07 ALPHA ^2 ^ EXIT (dw) -> 07 + 06 XTT log ln sin cos tan 06 + 05 ab/c F<>D ( ) , -> 05 + 04 7 8 9 DEL 04 + 03 4 5 6 x div 03 + 02 1 2 3 + - 02 + 01 0 . EXP (-) EXE 01 + Row--------------------------------------Row + + (example) KeyRow(9) + When press [F4] and [F6] keys at the same time, bit3 and bit1 come to 1, then return value is 2^3 + 2^1 = 10. + + - New Feature [26th Jan, 2017]: A new command Menu (same as genuine Casio Basic) is added. + + +25st Jan, 2017 +Ver. 1.00 - beta 3 version (hopefully supporting SD) + + Note) This version is for trial to support SD version of fx-9860G Sries. Develper team do not have SD version of these calcs and did not check with real calc yet. We appreciate any feedback from useres. + + - Bug Fix [25th Jan, 2017]: StrLeft did not work. this is fixed. + - Bug Fix [25th Jan, 2017]: An expression ScreenG in manual and sample program was wring. This should be Screen.G (needed a dot). this is fixed. + - Bug Fix [21st Jan, 2017]: When SD capacity is 4GB or more, an indication of memory free was wrong. This is fixed. + - New Feature [20th Jan, 2017]: In SD version calcs, g1m files in SD card can be run and editedable. + + +25th Jan, 2017 +Ver. 1.00 - beta version + + - Bug Fix [25th Jan, 2017]: StrLeft did not work. this is fixed. + - Bug Fix [25th Jan, 2017]: An expression ScreenG in manual and sample program was wring. This should be Screen.G (needed a dot). this is fixed. + - Improveent [19th Jan, 2017]: When font charactor is drawn by Text comamnd, top 1 pixel line was cleared. This is not compatible with genuine Casio Basic because Casio Basic uses 6 dots height for font, but C.Basic used 7 dots heighet for font (due to specification of PrintMini() function of Casio SDK). This is improved to be compatible with genuine Casio Basic. + - Bug Fix [18th Jan, 2017]: _Vertical was enbuged. this is fixed. + - Bug Fix [18th Jan, 2017]: In fx-9860GII OS2.09, system error may occur at starting of program. This is fixed. + - Bug Fix [17th Jan, 2017]: Small letter matrix abbreviation (a[1], a2, etc) cannot be used. This is fixed. + - Improvement [17th Jan, 2017]: Uasage of String variable Str is extended. When start index (of charactor array) is 0 (zero), an expression "Str 0" is now available. + (example) '#Mat 0 + "String"->Str 0 + - New Feature [17th Jan, 2017]: Add new function MatBase( that returns start index of matrix. + (example) '#Mat 0 + 0->Mat A + MatBase( Mat A ) + this returns 0 (zero). + - Bug Fix [17th Jan, 2017]: Comamnds that convert to text with use of ElemSize(, RowSize( and ColSize( as parameter did not properly work. This is fixed. + - Improvement [17th Jan, 2017]: Intermediate code of DotPut( and Sprintf( were same as genuine Casio Basic codes. The redundant codes of the extended commands are changed. + DotPut( = DotP 0xF94B -> 0xF74B + Sprintf( = Vct 0xF73E -> 0xF743 + + C.Basic Ver 1.00 automatically corrects the redundancy of the intermediate codes when it reads old program created by older version, so you can properly execute or edit the modified program as usual. + DotTrim( and DotGet( are also automatically treated for the conversion in the same way. + + - New Feature [17th Jan, 2017]: C.Basic supports MonochromeLib "Ultra Fast Graphic Library for fx-9860G Series". See MonochromeLib Web Site for details. Following commands are available; + _ClrVram + _ClrScreen + _DispVram + _Pixel + _Point + _PixelTest( + _Line + _Horizontal + _Vertical + _Rectangle + _Polygon + _FillPolygon + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + _Hscroll + _Vscroll + _Bmp + _Bmp8 + _Bmp16 + + This ML commans access hardware indepententy from Casio Basic commands and are totally deferent command system. + These comamnds operate current VRAM, so VRAM data should be transferred to LDC (LCD refreshing) is required in oorder to display the drawing result by use of PutoDispDD or other equivalent commands. + See manual (this will be prepared in English shortly) to use the ML commands. Some simple sample programs are included in ML_sample folder. + + +11th Jan, 2017 +Ver. 0.99v - alpha version + + - New Feature [11th Jan, 2017]: When actual matrix substance for A0 ~ A9 allocated and also try accessing to A0 ~ A9, the matrix substance is automatically allocated. + (example) A1+123→B5 + Since Mat A and Mat B are not alocated yet at timing of access to the variables A1 and B1, followings are automatically carried out + 9→Dim A + 9→Dim B + then A1 ~ A9 and B1 ~ B9 come to be ready to use. + + (example) + '#Mat 0 + A1+123→B5 + Since Mat A and Mat B are not alocated yet at timing of access to the variables A1 and B5, + 10→Dim A + 10→Dim B + are automatically carried out and then A0~A9 and B0~B9 come to be ready to use. + + (example) + '#Mat 0 + 2→Dim B + A1+123→B5 + since Mat A is not allocated and size of Mat B is allocated, + 10→Dim A + are automatically carried out but size of Mat B is smaller than Mat A, so accessing to B5 gives Error. Then A0~A9 and B-~B5 come to be ready to use. + + - New Feature [9th Jan, 2017]: New feature to access to matrix by suffix 0 (zero) is added with a condition. Suffix 0 can be used for only matrix which is set to use 0 for first index. You can set the start index as 0 in Set Up page or by matrix initialization by '#Mat 0. + + Matrix Array Variable + A[0,0] A[0] A0 + A[1,0] A[1] A1 + A[2,0] A[2] A2 + A[3,0] A[3] A3 + A[4,0] A[4] A4 + A[5,0] A[5] A5 + A[6,0] A[6] A6 + A[7,0] A[7] A7 + A[8,0] A[8] A8 + A[9,0] A[9] A9 + + (example) + '#Mat 0 + 10→Dim A + 10→A1 + 20→A2 + A1+A2 + + - New Feature [8th Jan, 2017]: New feature to access to matrix is added. In order to use a matrix as an array, we can use A[0] instead of A[0,1]. Now we can use A0 instead of A[0,1] as a new feature. + Matrix Array Variable + A[1,1] A[1] A1 + A[2,1] A[2] A2 + A[3,1] A[3] A3 + A[4,1] A[4] A4 + A[5,1] A[5] A5 + A[6,1] A[6] A6 + A[7,1] A[7] A7 + A[8,1] A[8] A8 + A[9,1] A[9] A9 + + (example) + '#Mat 1 + 10→Dim A + 10→A1 + 20→A2 + A1+A2 + + +7th Jan, 2017 +Ver. 0.99u - alpha version + - Bug Fix [7th Jan, 2017]: When save Text file (*.txt), the file is automatically converted to g1m file, but the saved & converted file name still had ".txt". This is fixed. In C.Basic texr file cannot be saved as text file. + - New Feature [7th Jan, 2017]: In Edit Screen, Command List window pop up by pressing [OPTN], [VARS] or [SHIFT][VARS] (PRGM). The Command List window accept cursor key [←] or [→] to move betoween command groups. + + +1st Jan, 2017 +Ver. 0.99t - alpha version + - Bug Fix [1st Jan, 2017]: Calculation of day of the week (using Zeller's congruence) was fixed. + - New Feature [31st Dec, 2016]: DATE / TIME can be updated in Setup Page. + - New Feature [26th Dec, 2016]: Add DATE and TIME commands which contains read out date and time from RTC chip of fx-9860G / fx-9860GII. + The DATE and TIME can be used as variable of string type. + (example) "2016/12/26"→DATE + (example) DATE + This command displays + 2016/12/26 MON + The day of the week is automatically calculated. + (example) "23:59:59"→TIME + (example) TIME + This command displays + 23:59:59 + + - New Feature [26th Dec, 2016]: In Editor Screen, Comamnd List Page comes by pressing [F3] key. In the Command List Page you can jump to deferent command groups by cursor key [←] and [→] + STD: Basic Command group + GR: Graphics command group + FN: Function group + STR: String command group + EX: Extended comamnd group + - Improvment [26th Dec, 2016]: Buffer size for string process is increased from 128 bytes to 256 bytes. + - Improvment [26th Dec, 2016]: Internal buffer size used for convertion to text file is increase by factor of 1.5 to 2. + - Improvment [26th Dec, 2016]: Editable program size was limited to about 32 KB. This is increased to maximum 62 KB. + + + +15th Dec, 2016 +Ver. 0.99s - alpha version + + Caution: Some source file created in Ver0.99r or earlier may have problem in Ver0.99s due to bug fix, but this problem can be solved by proper procedure. ⇒ see more for details + - Bug Fix [15th Dec, 2016]: In Integer Mode, Sprintf did not accept display of real number. This bug is fixed. + (example) Sprintf("A=%3.2f",#12.345) + - Spec Change [14th Dec, 2016]: Evaluation of Real Number expression by prefix # in Sprintf, Locate and Text is changed. In Integer Mode variables are still in integer. + Before the change: The evaluation of expression are done in real number, then integer variable requires to add %. + After the change: The evaluation of expression is done in real number but variables are treated as integer then % is not required to be added. + - Bug Fix [14th Dec, 2016]: When "Save File Nmae?" pops up by [EXIT] key after editing of your source, back groud is irrelevant to the edited source. This bug is fixed. + - Bug Fix [13th Dec, 2016]: Prefix # in Real Number Mode did not work, then fixed. + (example) #123.56+100 + - New command [13th Dec, 2016]: Disp + (example) Disp A + Disp display as same as (disps) does, but does not halt the program. + - Bug Fix [13th Dec, 2016]: An intermediate code of "RefreshCtrl" was wrong, then fixed. + RefreshCtrl = DotG : 0xF7F9 -> 0xF7F8 + - Bug Fix [13th Dec, 2016]: An intermediate code of "DotTrim(" and "DotGet(" was wrong, used same code of "Dot" and "DotG" in genuin Casio Basic. Then changed the code of "DotTrim(" and "DotGet(", fixed. + DotGet( = DotG : 0xF73F -> 0xF73E + DotTrim( = Dot : 0xF74F -> 0xF73D + + + +24th Jul, 2016 +Ver. 0.99r - alpha version + + - Improvement [24th Jul, 2016]: When hidden RAM area is run out, new area can be secured from heal area. + - Bug Fix [21st Jul, 2016]: When hiden RAM is set to use and matrix cannot be allocated, a recovery process for this case was wrong, then fixed. + - Improvement [20th Jul, 2016]: Hidden RAM feature is implemented and this can be allocated for program and matrix. + Memory size allocated for program and matrix is totally 265KB. + File List buffer is fixed in heap area. + - Improvement [20th Jul, 2016]: Free area of storage memory and number of files are displayed in top of File List. + The free area of storage memory is decreasing as saving program, doing copy or remane of files, so optimization of memory is required when the free area is getting less (good indicator for a timing of memory optomization). + - Bug Fox [20th Jul, 2016]: ClrMat could not entirely delete a matrix, fixed. + - Bug Fix [20th Jul, 206]: Function "Int" was mixed up with "Intg", so "Int" was fied and "Intg" was added. \ No newline at end of file diff --git a/doc-cg/ChangeCG_J.txt b/doc-cg/ChangeCG_J.txt new file mode 100644 index 0000000..0602347 --- /dev/null +++ b/doc-cg/ChangeCG_J.txt @@ -0,0 +1,4666 @@ +=============================================================================== + +アドイン版 Casio Basic Interpreter (& Compiler) for CG ver 1.x β版 + +copyright(c)2015-2017-2023 by sentaro21 +e-mail sentaro21@pm.matrix.jp + +最終更新日:2023/10/26(JST) +最終更新者:sentaro21/Colon + +=============================================================================== +CG版 更新履歴 +=============================================================================== +v1.47β 2023.11,12- ベータ版(インタプリタのみ) + (build02) 2023.12.11 + ・C.Basicコマンド専用カタログ機能からヒストリーを起動して]EXIT]でカタログに戻らない不具合を修正しました。 + ・メインメモリ上のプログラムでLoad(コマンドを使った場合、フォルダ内のファイルにアクセスできない不具合を修正しました。 + + (build01) 2023.12.10 + ・C.Basicコマンド専用カタログ機能を追加しました。(純正より先に[Shift]+[4]で起動します) + ・ファイルモードのミニフォント表示に対応しました。 + ・?コマンドと変数表示のミニフォント表示に対応しました。(FX版) + ・非対応のコマンド(内部コード0x7Fxx)でフリーズする不具合を修正しました。 + ・エラー表示を変更しました。"Missing WhileEnd" and "Missing Switch"等(ErrorCode_List.txtを参照してください) + ・GIIモデル以外の隠しRAMの初期化機能を無効にしました。 + ・BeepコマンドがACキーで中断できるようにしました。 + ・行列とリストの初期化でRGB()HSV()HSL()コマンドが最初にある場合にエラーになっていた不具合を修正しました。(1.45エンバグ) + (例){RGB(255,0,255),123,456} + ・Load(コマンドで4096バイトを超えるファイルが4096バイトしか読み込めなかった不具合を修正しました。(CG版のみ) + + ・LocateコマンドやText等の描画指定を括弧で記述することで数式指定できるようになりました。 + (書式1)Locate x,y,Value/Strings[,N/O/R/V] + (書式2)Locate x,y,Value/Strings[,(描画指定)] +  N:0 'normal +  O:1 'or +  R:2 'reverse +  V:3 'reverse or + (例)Locate 2,3,"ABC",(2) +    Locate 2,3,"ABC",(R) ' R=2 +  どちらも +  Locate 2,3,"ABC",R +  と同じです。 + + ・FkeyMenuの描画指定を括弧で記述することで数式指定できるようになりました。 + (書式1)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,アイコン色 [,アイコン背景色]]] ) + (書式2)FKeyMenu( n[~m], "文字列"/アイコン番号 [,(描画指定) [,アイコン色 [,アイコン背景色]]] ) +  基本描画指定における数値(0~4) +   C:( 0)消去します。 +   N:( 1)ノーマル白アイコン。(省略可) +   R:( 2)右下が欠けた黒アイコン +   I:( 3)四角い黒アイコン +   S:( 4)縁取りのある黒アイコン +  以下の修飾は基本描画指定値に足して指定します。 +   U:( 16)文字列を1ドット上側に表示。 +   L:( 32)表示範囲を左右2ドット広げます。 +   M:( 64)マスク処理します。 +   m:(128)枠だけマスク処理します。(FX版のみ) + + (例)FKeyMenu (1, "string",NULM) + FKeyMenu (1, "string",(1+16+32+64)) +    上記の2つは同じ結果になります。 + + +v1.46β 2023.10,23- ベータ版(インタプリタのみ) + (build03) 2023.10.26 + ・メインメモリのお気に入り機能において大文字と小文字しか違わない同名ファイルの不具合を修正しました。 + ・TicksWaitのカウントが1多かったのを修正しました。 + (修正前)TicksWait 4 が TicksWait 5 と同じでした。 + ・フォルダ位置に復帰できなくなっていた不具合を修正しました。(build01 エンバグ) + + (build02) 2023.10.25 + ・ファイルリストにおいてフォルダ上にカーソルがあるときに新規ファイルを作成する場合にカレントフォルダに作成されるようにしました。 + ・ファイルを上書き保存する場合、以前のファイルよりもサイズが大きい場合は上書き保存するように書き込み方法を変更しました。(GIII以降) +  (ファイルサイズが小さくなる場合は以前のファイルを消去してから新規保存します。) + + (build01) 2023.10.23 + ・初回起動時に[CBasic]フォルダを作成しそこをデフォルトの保存フォルダとするようにしました。 + ・整数モード時のFor~Nextの制御変数の終値が互換でなかったのを修正しました。 + ・文字列の長さを制限した場合にそれ以上の長さの文字列の代入に失敗する不具合を修正しました。 +  (長さ-1が最大格納文字数になります。) + ・Pol()Rect()関数において、MatBaseが0の場合にListAns[0]ListAns[1]に答えが返らない不具合を修正しました。 + ・ENG表示の丸め処理を修正しました。 + ・Sciフォーマット出力における不具合を修正しました。 + ・RefとRref関数を使用すると固まる不具合を修正しました。 + ・C.Basicコマンド入力で入力できなかったコマンドを追加修正しました。 + + +v1.45β 2020.2.10- ベータ版(インタプリタのみ) + (build20) 2020.5.21 + ・If~ElseIf間の飛越キャッシュの不具合を修正しました。 + ・Syetem()コマンドでOSのマイナーバージョンが取得できるようになりました。 + (書式)System(-22) + ・System(コマンドの引数(-1)での機種判定にGraph90+Eを追加しました。 + (書式)System(-1) +  返り値:10 CG10 +  返り値:20 CG20 +  返り値:50 CG50 +  返り値:90 Graph90+E + ・やす(Krtyski)様作成のSystem()コマンドサンプルプログラム(Graph90+E対応版)をアップデートしました。(System_sampleフォルダ) + + (build19) 2020.5.20 + ・Try~TryEndコマンドからBreakで脱出した場合、それ以後、[AC]中断もAcBreakも効かなくなる不具合を修正しました。 + ・スタックエラーになる前にシステムエラーになっていた不具合を修正しました。 + ・ReadGraph/WriteGraph/DotGet/DotPutコマンドを現在のVRAMに作用するように仕様変更しました。 + ・描画対象VRAMを退避されているテキストVRAM領域とグラフィックスVRAM領域に変更するScreen.Vコマンドを追加しました。 + (書式)Screen.V +  デフォルトのVRAMに戻します。 + (書式)Screen.VT +  テキストVRAMの退避領域を描画対象にします。 + (書式)Screen.VG +  グラフィックスVRAMの退避領域を描画対象にします。 + + (build18) 2020.4.28 + ・行列表示を修正しました。 + ・セット・アップで隠しメモリのOn/Offは確認ポップアップを出すようにしました。 + + (build17) 2020.4.24 + ・RGB565形式の16ビットBMPのセーブ/ロードに対応しました。デフォルト形式は16ビットBMPになります。 + ・CPLXの行列表示が異常に遅かったのを修正し、3列から4列表示に変更しました。 + ・隠しメモリの初期化を修正しました。 + + (build16) 2020.4.16 + ・自動インデント機能でのSwitch~Case~SwitchEndの自動整形を改善しました。 + ・ElseIfコマンドの直後にコメントがある場合、次のコマンドがIfの場合に終了していた不具合を修正しました。 + ・行列の初期化後に文字列から文字列への代入で代入されない不具合を再修正しました。 + (コピーされない例) + ClrMat +   "ABC"->Str 1 +   Str 1->Str 3 + ・Seqコマンドで刻み値が少数の場合に終値に到達しないことがある不具合を修正しました。 + (例)Seq(X, X, 0.1, 1, 0.05 ) + ・CPLXモード以外で虚数を使うと無限ループになる不具合を修正しました。(build15でのエンバグです。) + ・省略乗算の不具合を修正しました。(build15でのエンバグです。) + + (build15.) 2020.3.22 + ・インデックス開始値が0の場合に要素数が64を超えるListの初期化が出来なかった不具合を修正しました。 + ・ファイルモードで検索文字列が空の場合に[F4]がCOPYになる不具合を修正しました。 + + (build15) 2020.3.20 + ・Colon様のサポートにより関数メモリの実装を開始しました。 + ・デフォルトのインデックス開始値が0の場合にListの自動確保が出来なかった不具合を修正しました。 + ・ファンクションメモリー(Fn)のStore/Recall/SEEのSEEをEditに変更しました。 + + (build14) 2020.3.14 + ・ファンクションメモリー(Fn)のStore/Recall/SEEのSEEで[F5](Edit)を追加し編集可能になりました。 + ・ファンクションメモリー(Fn)のStore/Recall/SEEの不具合を修正しました。 + + (build13) 2020.3.10 + ・ファンクションメモリー(Fn)およびグラフメモリー(Y)をデフォルトで数式評価とし、 +  文字列関数内および文字列に続く場合は文字列として評価するように変更しました。 +  (数式評価) +   fn1->A +   fn1(123)->A +   Locate fn1 +   Locate fn1(123) +  (文字列評価) +   fn2->Str 2 +   "123"+fn1->Str 1 +   Locate "123"+fn1 +   StrJoin(fn1,Str 1) + + ・文字列から文字列への代入で代入されない不具合を修正しました。 + (fn3にコピーされない例) +   ClrMat +   "123"->fn1 +   "ABC"->Str 1 +   Str 1->fn3 + ・ファンクションメモリー(Fn)のStore/Recall/SEEを追加しました。 +  (※エディタではクリップボードの内容がストア対象です。1行入力では1行全体がストア対象になります。) + ・F_Start/F_End/F_pitchを独立変数に変更しました。 + ・?コマンドで文字列が表示される場合にアスキーコードにデコードしないように修正しました。 + + (build12.) 2020.3.4 + ・GraphYとfnの確保数と文字列の長さをStr変数と同等に変更しました。 + ・GraphYの格納仕様を6バイトのプレフィックス付きに変更しました。 + (行列への直アクセス以外は以前と変更ありません。) + + (build12) 2020.3.2 + ・エディタでファイルモードの切替でファイルリストが更新されない不具合を修正しました。 + ・セットアップで機能しない場合はアイコンをマスク化しました。 + ・System()コマンドでメインメモリに保存されるC.Basicのシステムファイルを取得できるようになりました。 +  (インデックス開始値は0で固定です。) + (例)System(10000,1) +  @CBASIC/Cbasicの内容をListAnsに取得します。 + (例)System(10000,2) +  @CBASIC/Cbasic2の内容をListAnsに取得します。 + + (build11) 2020.3.1 + ・CGモードでScreen#で座標変換した場合に2ドットずれる不具合を修正しました。 + ・Screen#、Screen%を連続実行するとエラーになる不具合を修正しました。 + ・Screen#、Screen%からListAnsに転送した場合の不具合を修正しました。 + (例)Screen#0,0→List Ans + ・ファイルモードの検索機能を改善しました。 +  アルファベットキーを押すと検索窓が開き検索モードになります。 +  検索窓では左右移動等、通常の入力が可能です。 +  検索窓を解除するには[EXIT]を押してください。 +  カーソル上下、[EXE] [F1](EXE) [F2](EDIT) [F3](NEW)キーは検索窓を閉じること無く実行できます。 + + (build10) 2020.2.28 + ・ファイルモードとエディタのALPHAモードの修正を行いました。 + ・ファイルモードでアルファベットキーによるダイレクト選択時に[SHIFT]、[ALPHA]、小文字や数字が指定が出来るようになりました。 +  [F4](A<>a):大文字小文字切り替えです。 +  [F5](CHAR) +  [F5](→):フォルダ/ファイルサーチを切り替えます。 +  [DEL]:一文字戻ります。 +  [AC]:全部消します。 +  [EXIT]:元に戻ります。 +  [X^2]:~ +  [^]:' or ^ +  [(-)]:@ + + (build09) 2020.2.26 + ・ファイルモードでアルファベットキーによるダイレクト選択時に2文字以上の指定が出来るようになりました。 +  [DEL]:一文字戻ります。 +  [AC]:全部消します。 +  [EXIT]:元に戻ります。 + ・ファンクションメモリー(Fn)およびグラフメモリー(Y)に引数が無い場合は文字列として評価するようにしました。 + ・インデントの必要なコマンド(If,Else..)の直前で改行した場合にインデントが余分に付加される不具合を修正しました。 + + (build08) 2020.2.24 + ・OS側のステータス表示フラグがONの場合はステータスエリアの書き換えをしないように変更しました。 + + (build07) 2020.2.23 + ・エミュレータで隠しメモリが使えるようになりました。 + + (build06) 2020.2.22 + ・以下のコマンドでステータス表示が更新されるようにしました。(全画面モードでは更新されません。) + '#CBASIC + '#CBDBL + '#CBINT + '#CBCPLX + ・Colon様のサポートにより一行入力時のステータスエリアの表示を改善しました。 + ・エミュレータの判定方法をハードウェアID判定に変更しました。 + + (build05) 2020.2.19 + ・CHAR選択画面から戻る時にステータスエリアの表示が戻らない不具合を修正しました。 + ・CG10/20でエディタのサーチ画面で[SHIFT]+[4](CATALOG)が使えなかった不具合を修正しました。(1.44build14でのエンバグです。) + + (build04) 2020.2.17 + ・GetHSV()/GetHSL()コマンドで変換できない色をエラーにするようにしました。 + (書式) GetHSV(16ビットカラー値[,N]) + (書式) GetHSL(16ビットカラー値[,N]) +  Nオプションでエラーを無視します。 + ・HSV()/HSL()での色飽和での反転を修正しました。 + ・Textコマンドで外部フォントが表示されない不具合を修正しました。 + + (build03) 2020.2.15 + ・Colon様のサポートによりRGB→HSV/HSLのカラーコード変換の誤差を修正しました。 + ・ラベルの検索時にコメントでの'#に続くオプションの設定が変更されてしまう不具合を修正しました。 + + (build02) 2020.2.12 + ・VarPtr()コマンドで行列/List/Vctを指定した場合、その添字が常に実数評価されていた不具合を修正しました。 + ・RGB()、HSV()、HSL()コマンドの引数がListの場合、インデックス開始値が0の場合の不具合を修正しました。 + ・GetRGB()、GetHSV()、GetHSL()コマンドで、インデックス開始値が0の場合の不具合を修正しました。 + + (build01) 2020.2.10 + ・SortA()/SortD()コマンドに文字配列のソートを追加しました。 + (例)SortA($Mat A) +  Mat Aの文字列が昇順にソートされます。 + ・ReadMe、マニュアル更新しました。 + ・行列表示の←→表示を修正しました。 + ・g3mモードにおいてストレージメモリへのでのStoPictを無効にしました。 + +v1.44β 2020.1.18-2.9 ベータ版(インタプリタのみ) + (build15) + ・FkeyMenu(コマンドの範囲指定の書式を変更しました。 + (書式)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,アイコン色 [,アイコン背景色]]] ) +  ※ "アイコン色" はデフォルトで黒い部分の色指定です。 +  ※ "アイコン背景色" はデフォルトで白い部分の色指定です。 +  ※ 3 番目以降の引数は省略可能です。引数を省略した場合でも”,"は必要です。 + (例)FKeyMenu (1, "string",,Blue ) + (例)FKeyMenu (2~3, "longstring",R,RGB(255,0,0)) + (例)FKeyMenu (4~5, "longstring",I,Red ,Yellow ) + + + (build14) + ・行列画面で53以降の拡張領域の一覧表示をサポートしました。 + [←]:26戻ります。 + [→]:26進みます。 + ・FkeyMenu(コマンドを拡張しました。 + (書式)FKeyMenu( n, "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,m [,アイコン色 [,アイコン背景色]]]] ) +  ※ "アイコン色" はデフォルトで黒い部分の色指定です。 +  ※ "アイコン背景色" はデフォルトで白い部分の色指定です。 +  ※ 3 番目以降の引数は省略可能です。引数を省略した場合でも”,"は必要です。 + (例)FKeyMenu (1, "string",,,Blue ) + (例)FKeyMenu (2, "string",R,3,RGB(255,0,0)) + (例)FKeyMenu (2, "string",R,3,RGB(255,0,0),Yellow) + + (build13) + ・CHAR画面の"Default"モードでGB/JIS画面に入ったときに自動的に"C.Basic"モードになるように修正しました。 + ・エディタで[SHIFT]を押したときに編集可能空きエリアのサイズをステータスエリアに表示するようにしました。 + + (build12) + ・FkeyMenu(コマンドを修正しました。 + (書式)FKeyMenu( n, "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L] [,m]) +  nからmまでのファンクションキーを表示/消去します。 +  3つめの引数の並び順は任意です。 +   C:消去します。 +   M:マスク処理します。 +   N:ノーマル白アイコン。(省略可) +   R:右下が欠けた黒アイコン +   I:四角い黒アイコン +   S:縁取りのある黒アイコン +   U:文字列を1ドット上側に表示。 +   L:表示範囲を左右2ドット広げます。 + (例)FKeyMenu (1, "string", RL) + (例)FKeyMenu (2, "long_string", SLM, 4) + (例)FKeyMenu (5, 42, M) + ・CHAR画面の[0](HELP)で、[VARS]の"Default Font"と"C.Basic Font"が逆になっていたのを修正しました。 + ・やす(Krtyski)様作成のSystem()コマンドサンプルプログラムを同梱しました。(System_sampleフォルダ) + + + (build11) + ・FkeyMenu(コマンドを拡張しました。 + (書式)FKeyMenu( n,"",M [,m]) +  nからmまでのファンクションキーをマスク処理します。 + ・Colon様謹製システム操作系アプリのシステムマネージャを1.2→1.3に更新しました。 + ・やす(Krtyski)様 & CalcLoverHK様 & Colon様作成のFKeyMenu(コマンドのサンプルプログラムを同梱しました。(CBasic_sample\FKeyMenu_sample) + + (build10) + ・BackLightコマンドをエミュレータで無効にしました。 + ・System()コマンドにエミュレータ判定を追加しました。 + (書式)System(-7) +  実機では0、エミュレータでは1が返ります。 + + (build09) + ・FkeyMenu(コマンドを拡張しました。 + (書式)FKeyMenu( n,"",C,m) +  nからmまでの複数のファンクションキーをまとめて消去をします。 + (書式)FKeyMenu( n,"文字列",R/I/S,m) +  nからmまでの複数のファンクションキーにまたがる表示をサポートしました。 + (書式)FKeyMenu( n,"文字列",L) + (書式)FKeyMenu( n,"文字列",RL) + (書式)FKeyMenu( n,"文字列",IL) + (書式)FKeyMenu( n,"文字列",SL) +  左に2ドット分、文字列の表示範囲を広げます。 + + + (build08) + ・FkeyMenu(コマンドの表示を拡張しました。(Colon様にアイコンデータを提供していただいています。) + (書式)FKeyMenu( n,"文字列",I) +  右下の欠けが無い黒のアイコンです。 + (書式)FKeyMenu( n,"文字列",S) +  選択状態を示す縁取り付きの右下の欠けが無い黒アイコンです。 + + ・変数表示のINT%,DBL#,CPLXとカラーピッカーのアイコン (RGB/HSL/HSV) を選択アイコンに変更しました。 + + + (build07) + ・DBL#モードにおいて、一時停止と変数表示での虚数表示がされていたのを修正しました。 + ・変数表示をINT%,DBL#,CPLXで独立させました。 + + (build06) + ・ストレージ/SDへのPictファイルのセーブが出来なくなっていた不具合を修正しました。(1.28エンバグ) + ・デフォルトで確保できるStr文字変数の数を999に増やしました。 + + (build05) + ・行列のインデックス開始値が0の場合、'#Str、'#Fn等等で設定した数より1多く確保される不具合を修正しました。 + ・セットアップのカレントフォルダの切り替えを修正しました。 + ・Fix指定で少数桁を含む桁数が16桁以上にならないようにしました。 + ・1.44β以降に対応したFFM0124を同梱しました。 + + (build04) + ・'#Str、'#Fn等の引数指定で数値以外の数式が可能になりました。 +  (例)#Str ,N+1,A*10 + ・行列/List/Vct一覧表示で[SHIFT]+[PageUP][PageDown]機能が効かなくなっていたエンバグを修正しました。 + + (build03) + ・GBモードを有効にしたエディタでエスケープ付きの1バイト文字 (×, ÷ など) が入力できない不具合を修正しました。 + ・保存画面で画面が残る不具合を修正しました。 + ・マニュアルを更新しました。(Str初期化の説明)(英文翻訳はやす (Krtyski) 様にサポートしていただいています。) + + (build02) + ・IsExist(でワイルドカードでファイルを検索した場合、返り値がおかしかったのを修正しました。 + (例)IsExist("*.bmp") +  ファイルが存在する場合、ファイル数を返す。 +  ファイルが存在しない場合、0を返す。 + + (build01) + ・変数表示画面を一部修正しました。 + ・ファイル名入力時の保存先選択画面を修正しました。 + ・行列/List/Vct選択に[SHIFT]+[F1][F2][F3]を追加しました。 + ・一行入力時に[ALPHA]+[(-)]で"%"が入力できなかった不具合を修正しました。 + ・バージョン表記を再アップに対応して一部変更しました。 + ・アイコン番号が1406以上は0扱いにしました。 + + +v1.43β 2020.1.15 ベータ版(インタプリタのみ) + ・セットアップの"Force Return"を指定していた場合、[SHIFT]+[F6]でデバッグモードに入れない不具合を修正しました。 + ・拡張変数へのAliasはエラーになるようにしました。 + ・Graph X=コマンドの縦ラインノイズを修正しました。 + ・SetupのDisplay設定で、Nrm表記をNorm表記に改めました。 + + 2020.1.10 ・_BmpコマンドとDrawMatコマンドの16ビットカラー描画を改善しました。 +  拡大回転をしない場合、約2倍のスピードアップになります。 +  この改善のために、DrawMatコマンドに必要なMatデータは_Bmpコマンドで使われるタイプの行列(従来の逆行列です)に変更になります。 + ・Graph Y=/Graph X=コマンドで最初の座標の描画の不具合を修正しました。 + ・フォルダを作成後、新規フォルダに移動しない不具合を修正しました。 + ・フォルダのリネームで[F6]に[/]が残っていた不具合を修正しました。 + ・メモリモード(ストレージメモリ/メインメモリ)を切り替える時に同じモードには移行できないように修正しました。 + ・SETUPで"Skeetch Line"の項目で[F6](VER)が表示されなかった不具合を修正しました。 + ・ミニフォントでの変数一覧画面のスクロールバーを修正しました。 + + +v1.42β 2020.1.6 ベータ版(インタプリタのみ) + ・次のコマンドで透過色を有効にしました。 + _BmpZoom + _BmpRotate + _BmpZmRotate + DrawMat + DotPut + + ・DrawMatコマンドで16ビットカラービットマップデータの幅と高さが違う場合に描画されない不具合を修正しました。 + ・DotPutコマンドで16ビットカラー描画が出来なかった不具合を修正しました。 + ・MLコマンドで画面外に描画範囲がある場合の不具合を修正しました。 + ・積分計算式がエラーになる場合の処理を修正しました。 + ・積分計算の初期精度を有効6桁とし結果を丸めないように変更しました。 + + +v1.41β 2019.12.29 ベータ版(インタプリタのみ) + ・積分の下限が上限より大きい場合の結果の符号を修正しました。 + ・積分計算で変数Xが変更される不具合を修正しました。 + + 2019.12.28 ・"Graph(X,Y)=("コマンドでTを引数に持つListに乗算を施した場合、動作しなかった不具合を修正しました。 + (例)Graph(X,Y)=(2*{1T,2T},3*{3T,4T}) + ・"ExitDM PopUp"がオンの場合、デバッグモードから抜けて再度実行した場合、ポップアップが出なくなる不具合を修正しました。 + ・インデント機能を有効にした場合、プログラムの最後にゴミが付くことがある不具合を修正しました。 + ・一行入力時にアルファモードのアイコンが表示されなくなる不具合を修正しました。 + ・ガウス-クロンロッド求積法に基づく積分機能を追加しました。(UCFのacapde氏のプログラムを実装しました。) + https://community.casiocalc.org/topic/7637-cbasic-international-release/page-14#entry62978 + (書式)∫( f(x), 下限, 上限 [,許容誤差]) +  [,許容誤差] 1以上の値の場合は有効桁数指定です。デフォルトは10になっています。 + (例)∫(2X^2+3X+4,1,5) + 結果は 134.6666667 + (例)∫(sin X*cos X,0,1) + 結果は 0.354036091 + (例)∫(cos ln X,0,1) +    "Not met Accuracy"エラー + (例)∫(cos ln X,0,1,5) + 結果は 0.5 + + ・Colon様謹製システム操作系アプリのフォントマネージャとシステムマネージャを同梱しました。 + (※C.Basic_applicationフォルダにあります。) + (※SysCallを多用しているため、誤ってソースコードを編集してしまわないようパスワードロックをかけています。) + (※ソースコードの改変は自由ですが、自己責任で行ってください。) + + +v1.40β 2019.12.6 ベータ版(インタプリタのみ) + ・サブプログラムの読み込み方法をプログラムの開始時ではなく実行時に変更しました。 + (Progコマンドの引数に文字変数指定する場合でも事前に記述しておく必要はありません。) + ・文字列内にエスケープ文字と改行が入る場合の処理を修正しました。 + ・文字列に改行を含める場合、"\n"を使えるようにしました。 + ・エディタでカーソル位置を記憶できる最大ファイル数を16から32に増やしました。 + ・エラーメッセージを改訂しました。 + + ・BeepコマンドにListを引数として使えるようになりました。 + (書式)Beep 周波数のList,長さのList + (例){1000,2000,3000}->List 5 +    {250,500,250}-?List 7 +    Beep List 5,List 7 + + +v1.39β 2019.11.29 ベータ版(インタプリタのみ) + ・Locate/LocateYXコマンドで高さ指定が無効になっていた不具合を修正しました。 + ・Help機能が有効なときにデバッグモードから[EXIT]で解除されない不具合を修正しました。 + ・DrawGraphコマンドでListを引数にする場合の不具合を修正しました。 + ・エラーメッセージの"Withot"を"w/o"に変更しました。 + + +v1.38β 2019.11.21 ベータ版(インタプリタのみ) + ・ファイル一覧でピリオド”.”が含まれるファイルの並び順を修正しました。 + ・g1mモードでストレージメモリに置かれた2KBの情報があるPictの読み込みを改善しました。 + ・記憶されたカーソル位置がファイル終端よりも後ろにあった場合に入力できなくなる不具合を修正しました。 + + +v1.37β 2019.11.19 ベータ版(インタプリタのみ) + ・G1MモードのStoPictの保存先がストレージモードの場合、動作しなくなっていた不具合を修正しました。 + ・インデントで保存時に空白を除去する-Save設定時にコメント内の空白も削除していた不具合を修正しました。 + ・Listに付けられた名前が8文字の場合、文字変数へのコピーで異常になることがあった不具合を修正しました。 + + +v1.36β 2019.11.14 ベータ版(インタプリタのみ) + ・Progコマンドのサブプログラム名に文字列変数が使えるようになりました。 + (文字変数指定するサブプログラムはメインプログラム内に記述しておく必要があります。) + (例) +  "Test"->Str 1 +  Prog Str 1 +  Stop +  prog "Test" // 実行されないが必要 + + 2019.11.13 ・エディタでのカーソル表示を改善しました。 + + +v1.35β 2019.11.12 ベータ版(インタプリタのみ) + ・文字列を指定したSaveコマンドでファイルサイズが+1になる不具合を修正しました。 + (例)Load "test.txt"->Str 1 +    Save("test.txt"),Str 1 + "test.txt"のファイルサイズが1バイト増えてしまう。 + + +v1.34β 2019.11.10 ベータ版(インタプリタのみ) + ・エディタで編集後、ファイルリストに戻って再度ファイルを開いた場合、カーソル位置が同じ箇所に来るようにしました。 +  (最大16ファイルまで対応します。) + ・Help機能が有効の場合、プログラム中断後にサブルーチンが無効になってしまう不具合を修正しました。 + + +v1.33β 2019.11.3 ベータ版(インタプリタのみ) + ・Plotコマンド後に色指定が初期化されていなかった不具合を修正しました。 + + +v1.32β 2019.10.27 ベータ版(インタプリタのみ) + ・Help機能において1バイトコマンドが表示されなかった不具合を修正しました。(1.20でのエンバグです。) + ・[SHIFT]+[ALPHA]ロックが[EXE]改行したら解除される不具合を修正しまた。 + ・[ALPHA]+[(-)]で%が入力できるようにしました。 + + +v1.31β 2019.10.17 ベータ版(インタプリタのみ) + ・?コマンドでMat/List/Vctへの初期化入力ができなくなっていた不具合を修正しました。(1.29でのエンバグです。) + + 2019.10.16 ・行列/List/Vctのの初期化を繰り返すとメモリ不足になる不具合を修正しました。 + ・SketchThin指定の描画位置が1ドットずれていたのを修正しました。 + + 2019.10.15 ・[DEL]後に画面外までカーソル移動すると、UNDO実行時にカーソル位置が戻らない不具合を修正しました。 + ・[PASET]後のUNDOでプログラムサイズが変更されてなかった不具合を修正しました。 + + 2019.10.13 ・エディタにUNDO機能を追加しました。DELの後、[ALPHA]+[DEL]で削除前の状態に戻ります。(戻れるのは1ステップのみ) + + ・行列/List/Vctのの初期化でAnsメモリを使わないように効率化しました。 + + +v1.30β 2019.10.8 ベータ版(インタプリタのみ) + ・?コマンドに@オプション付加で現在使われている画面で使えるようになりました。 + (例)?@(5,5,5)->A +  Locate座標(5,5)から5カラム分の範囲で入力出来ます。 + + +v1.29β 2019.9.27 ベータ版(インタプリタのみ) + ・UCFのCalcLoverHK氏にManualCG_EN.txtを修正していただきました。 + + 2019.9.25 ベータ版(インタプリタのみ) + ・旧コマンドのList1~6がセットアップの"EditListChar"で変更されなかった不具合を修正しました。 + ・Listのコピーで旧コマンドのList1~6が機能しなかった不具合を修正しました。 + (例) List 1->List2 + + ・行列とリストの読み込みが最大2倍速になりました。 + (例){1,2,3}->List 1 + (例) [[1,2,3][4.5,6]]->Mat A + + ・UCFのCalcLoverHK氏にManualCG_EN.txtを修正していただきました。 + + +v1.28β 2019.9.10 ベータ版(インタプリタのみ) + ・プログラム終了時に[F2]を押すと直接編集画面に戻れる機能を追加しました。 + ・プログラムファイルを保存する場合にファイルサイズが増減していた不具合を修正しました。 + + +v1.26β 2019.9.5 ベータ版(インタプリタのみ) + ・エディタのClip&Paste後のカーソル位置を修正しました。 + ・ミニフォントの一部(0xE69E、0xE6A5,0xE6A6)が純正非互換だったのを修正しました。 + ・”文字列”コマンドで21文字ちょうどの場合に21文字目が表示されない不具合を修正しました。 + ・WaitTicksコマンド実効後にAnsが書き換えられる不具合を修正しました。 + ・MenuコマンドでOS画面に戻る[MENU]キーが効かなくなっていた不具合を修正しました。 + + +v1.25β 2019.9.3 ベータ版(インタプリタのみ) + ・MOD(コマンドの引数が両方とも負数の場合に結果が違っていた不具合を修正しました。 + (誤) MOD(-5,-5)->5  MOD(-5,-1)->1 + (正) MOD(-5,-5)->0  MOD(-5,-1)->0 + + ・プログラム実行中断時にサブルーチン編集でメモリ不足になることがある不具合を修正しました。 + + ・Plotコマンド後のX,Y変数への自動代入が描画範囲外でも代入されていたのを修正しました。 + + +v1.24β 2019.8.30 ベータ版(インタプリタのみ) + ・fx-Manager PLUS Subscription for CG series でキー入力が固まる不具合を修正しました。 + + ・メインメモリが空の場合、[F6]-[F6]-[F4](->SMEM)でストレージモードに移行できない不具合を修正しました。 + + ・BatteryStatusが複素数モードで動作しなかった不具合を修正しました。 + + ・CG50/Grpah90+EにおいてBatteryStatusが返す電圧値を9%上方修正しました。 + + ・バッテリ電圧をセットアップページでのバージョン表示の下部に表示するようにしました。 + + ・LoadコマンドでStr変数へのロードが出来なかった不具合を修正しました。 + (例)Load "Sample.txt"->Str 1 + + ・CSVファイルの編集をサポートしました。(お試し版です) +  [F2](edit) + + ・プレーンテキストファイルの編集をサポートしました。(お試し版です) +  [SHIFT]+[X^2] (extended) + + +v1.23β 2019.8.19 ベータ版(インタプリタのみ) + ・For~Nextの制御変数(DBLまたはINT)が動作モードと違う場合の動作を修正しました。 + (例)'#CBDBL + For 1->I% To 6 + Disp I% + Next + + ・4ビット行列の数値を符号無しに変更しました。従来の符号付き-8~7は符号無しの0~15となります。 + + ・LoadコマンドでStr変数へのロードが出来なかった不具合を修正しました。 + (例)Load "Sample.txt"->Str 1 + + +v1.22β 2019.8.15 ベータ版(インタプリタのみ) + ・整数モードのMOD(コマンドのバグを修正しました。 + (誤)MOD(-5,3)->5 + (正)MOD(-5,3)->1 + + ・メインメモリ上のプログラムでインデント機能を使った場合、プログラムの最後にゴミが出る不具合を修正しました。 + +v1.21β 2019.8.7 ベータ版(インタプリタのみ) + ・ViewWindow変数を個別に指定した場合の"Range Error"を修正しました。 + + +v1.20β 2019.8.5 ベータ版(インタプリタのみ) + ・プログラムの新規作成で同名ファイルのプログラムがすでに存在していた場合の不具合を修正しました。 + + 2019.8.4 ・エディタにインデント機能を追加しました。 +  [EXE]を押した場合、現在の行の先頭にあるインデント(空白)を次の行にも継続します。 + + ・セットアップの設定で、プログラム読み込み時にインデントを自動的に付加します。(Edit Indent+) +  すでにインデント付加されているプログラムは付加されません。 +  また保存時にインデントを含む空白削除する事もできます。(=CasioBasic準拠ソースに変換します。) +  以下のコマンドでインデントが付加されます。 +   If-Else-ElseIf-IfEnd +   For-To-Step-Next +   While-WhileEnd +   Do-LpWhile +   Switch-SwithEnd + + ・旧コマンドのList1を使用したDim List1が機能しなかった不具合を修正しました。 + + +v1.10β 2019.7.22 ベータ版(インタプリタのみ) + ・Graph(X,Y)=の描画でエンバグしていたのを修正しました。 + +  2019.7.20 ・フォルダが2階層以上作成できるので、初期ルートフォルダを変更できるようにしました。 +  セットアップでルートもしくはカレントフォルダにルートフォルダを設定出来ます。 + + ・プログラムをメインメモリから実行した場合、Save/Loadコマンドで正常なアクセスが出来なかった不具合を修正しました。 + + ・PlotコマンドとLineコマンドの連携が上手くいっていなかった不具合を修正しました。 + + ・Tを引数指定したGraph(X,Y)=の描画を再修正しました。 + + +v1.00β 2019.6.15 アルファ版(インタプリタのみ) + ・例外処理コマンドのTry~Except~TryEndコマンドを追加しIsError()は廃止しました。 + (書式)Try <プログラム> + (書式)Except エラーコード1 + <エラ-1の場合の処理> + (書式)Except エラーコード2 + <エラ-2の場合の処理> + (書式)TryEnd +  <プログラム>にエラーが無ければTryEnd後に処理が移ります。 +  エラー1が発生した場合、<エラ-1の場合の処理>を実行後、TryEnd後に処理が移ります。 +  エラー2が発生した場合、<エラ-2の場合の処理>を実行後、TryEnd後に処理が移ります。 +  エラー3が発生した場合、対応するExceptが無いので、エラーポップアップが出ます。 + + (書式)Except +  引数のないExceptはすべてのエラーに対応します。 + + (例)Try 3*4+ +    Except 1 +    "Syntax Error" +    TryEnd +  ”3*4+”が文法が間違えているのでSyntaxErrorの番号=1に対応する"Syntax Error"が実行されます。 + + (例)Try 3*4/0 +    Except 1 +    "Syntax Error" +    Except 40 +    "Divide by Zero" +    TryEnd +  ”3*4/0”が0での除算エラー=40に対応する"Divide by Zero"が実行されます。 + + (例)Try 3*4/0 +    Except 1 +    "Syntax Error" +    Except +    "Error" +    TryEnd +  エラーに対応するExceptがない場合は、引数のないExceptはすべてのエラーに対応するので"Error"が実行されます。 + + サンプルプログラムはCBasic_sample/Try_Exceptにあります。 + エラーコードはErrorCode_List.txtを参照してください。 + + + ・0x0C(Disps)以外の0x01~0x2Fのコードの後に改行が続く場合でも改行が省略されていた不具合を修正しました。 + + +v0.86α 2019.6.8 アルファ版(インタプリタのみ) + ・Tを引数指定したGraph(X,Y)=の描画を修正した時のエンバグを修正しました。 + + 2019.5.30 ・CG10/20で起動時オーバークロックが必要とされる場合にシステムエラーが起きていた不具合を修正しました。 + (0.85・ポップアップ表示でスタック不足によるシステムエラーが発生する不具合を修正しました。←このときのエンバグでした。) + + 2019.5.29 ・ファイルリストで[.]キーを押した場合に”~”を先頭文字とするファイルに移動するようにしました。 + ・ファイルリストで[EXP(x10)]キーを押した場合にフォルダリストの先頭に移動するようにしました。 + ・フル画面モードの?コマンドでステータスエリアが表示されてしまう不具合を修正しました。 + + 2019.5.26 ・Tを引数指定したGraph(X,Y)=の描画を修正しました。 + ・ファイルリストで[.]キーを押した場合にフォルダリストの先頭に移動するようにしました。 + ・TextコマンドのFX(6x8 font)オプションで外部フォントが無効になっていた不具合を修正しました。 + + +v0.85α 2019.5.18 アルファ版(インタプリタのみ) + ・Help表示がONの場合に一時停止から[EXIT]でデバッグモードを解除できない不具合を修正しました。 + + 2019.5.17 アルファ版(インタプリタのみ) + ・サブプログラムで一時中断して[EXIT]でエディタに戻らず終了してしまう不具合を修正しました。(0.82のエンバグです。) + ・ポップアップ表示でスタック不足によるシステムエラーが発生する不具合を修正しました。 + + 2019.5.16 アルファ版(インタプリタのみ) + ・メインメモリからストレージ/SDへの移動時のファイルリストの表示順を変更しました。 + ・行列とListが一時停止後に変数を一時停止表示したときの不具合を修正しました。(0.85エンバグ) + + 2019.5.14 アルファ版(インタプリタのみ) + ・行列とListが一時停止後の表示が消去される不具合を修正しました。 + + ・MCS表記をMain Memory表記に統一しました。 + + ・お気に入りをストレージメモリとメインメモリ(Main Memory)で独立させました。それぞれ7つ登録できます。 + + ・一時停止コマンドのテキスト変換を改行コード付きに仕様変更しました。 + (従来=純正互換)Disps + (新仕様)Disps+[CR]+[LF] + + ・一時中断してから編集すると[EXIT]でデバッグモードが解除されない不具合を修正しました。(まだバグが残ってました。) + + +v0.84α 2019.5.12 アルファ版(インタプリタのみ) + ・ストレージメモリとメインメモリ(Main Memory)間の移動を2キーで出来るようにしました。 +  [SHIFT]-[F5]でストレージモードが切り替わります。 + + ・Monochromeライブラリ系コマンドの_Recangleと_Polygonに拡大縮小と回転処理を同時に加えるオプションを追加しました。 + (書式)_Rectangle X1, Y1, X2, Y2, border_width, border_color, Color[,確率/透過率][,回転角度][,回転中心座標X][,回転中心座標Y][,拡大率] + (書式)_Polygon X座標のint行列へのポインタ, Y座標のint行列へのポインタ, 頂点数, Color[,確率/透過率][,回転角度][,回転中心座標X][,回転中心座標Y][,拡大率] + +  [回転中心座標X][回転中心座標Y]を省略した場合は自動的に描画画像の中心が指定されます。 + + (使用例)"ML_sampleCG"にあるサンプルプログラムを参照してください。 + + ・Monochromeライブラリ系コマンドの描画指定の5(透過率設定)が以下のコマンドで機能してなかった不具合を修正しました。 +  _Horizontal +  _Vertical +  _Recangle +  _FillPolygon + + +v0.83α 2019.5.11 アルファ版(インタプリタのみ) + ・一時中断してから編集すると[EXIT]でデバッグモードが解除されない不具合を修正しました。(0.82のエンバグです。) + + 2019.5.8 ・GB1モードで表示できないGBフォントを背景色を変えて表示するようにしました。 + ・GBモードにおけるLocateコマンドでは右端まで可能な限り描画するように仕様変更しました。 + + 2019.5.7 ・外部フォントが読み込めなくなっていた不具合を修正しました。 + ・GB1モードで表示できないGBフォントを色を変えて表示するようにしました。 + ・GB選択とJIS選択を干渉しないように独立させました。 + ・Colon様に作成していただいたJIS-GB変換テーブル表を同梱しました。 + + 2019.5.6 ・GBフォント選択ページでJIS並びで選択できるようになりました。 +  [^]キーでJISモードになります。 + + ・キャラクタ選択画面のステータスラインに現在の入力状況を表示するようにしました。 + ・[0]キーで簡単なHelpが出ます。 + + ・ループスタックの最大値を変更しました。 +  (for~Next : 最大 4 level から 8) +  (While~WhileEnd : 最大 6 level から 8) +  (Do=LpWhile : 最大 6 level から 8) +  (Switch~SwithEnd: 最大 4 level から 8) + + ・?コマンドで文字列を入力する場合にメモリエラーになることがある不具合を修正しました。 + + +v0.82α 2019.5.2 アルファ版(インタプリタのみ) + ・Switch~SwitchEnd内からのGoto脱出でスタッククリア出来てなかったのを修正しました。 + + 2019.5.1 ・Renameコマンドを追加しました。 [SHIFT]-[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F5](Rename) + (書式)Rename "旧ファイル名”、”新ファイル名” + (例)Rename "ABC.bmp","CDE",bmp" + + ・ストレージメモリ上のファイル名の大文字と小文字を動作時に区別しないように仕様変更しました。 + ・大文字と小文字の相互Renameが可能になりました。 + (例)ABC.g3m" -> "abc.g3m" + ・ファイル入力時のカーソル初期位置を拡張子の前になるようにしました。 + + ・デバッグモード解除のカーソル位置を修正しました。 + ・デバッグモード解除確認ポップアップでデバッグモードが解除されない不具合を修正しました。 + + ・g1m/g3mファイル以外のRenameでお気に入りに反映されなかった不具合を修正しました。 + + +v0.81α 2019.4.28 アルファ版(インタプリタのみ) + ・BmpLoadで1ビットBMPファイルがステータスライン部分に描画されない不具合を修正しました。 + + 2019.4.27 ・EngOnにおけるFixとSciの非互換性を修正しました。 + (例)EngOn:Sci 3 +   1.23456789e12->12.3M + + ・Save、Load(コマンドの引数に行列/List以外の変数も指定できるようになりました。 + (例)Save "TEST",A + (例)Load "TEST",Str 1 + + ・ヘルプ表示の瞬間にファンクションキー上部がちらつくのを修正しました。 + + ・Helpファイルを更新しました。 + + +v0.80α 2019.4.23 アルファ版(インタプリタのみ) + ・コマンド入力時にHelp表示出来る機能を追加しました。セットアップで設定します。 +  zip内のHELPフォルダに有る~~HELP3.txt/~~HELP3.g3m/~~HELP1.txt/~~HELP1.g1mファイルがHelpファイルです。 +             ルートフォルダかプログラムと同じフォルダに入れてください。 + + ・nCr/nPrを追加しました。 + + ・ファイルモードのフォルダが保存できていなかった不具合を修正しました。 + ・Main Memoryのフリーエリアが残っているのに保存ができない不具合を修正しました。 + ・List1~List6が使えなかった不具合を修正しました。 + ・1ビットと4ビット行列において要素アドレスの取得がおかしかったのを修正しました。 + ・行列とListの連続演算で不具合があったのを修正しました。 + ・StrShiftでマイナス引数の場合、結果が違っていたのを修正しました。 + (例)StrShift("1234567", -2)->" 12345" + ・グラフ描画コマンドを一部修正しました。 + + +v0.70α 2019.2.17 アルファ版(インタプリタのみ) + ・フランス語版マニュアルを同梱しました。(Planet-CasioのLephenixnoir氏に翻訳していただきました。) + ・隠しRAM使用時に画面左上にゴミが出るのを修正しました。 + ・ヒープのPictファイルを初期化しないとNGな場合があるので選択できるようにしました。(セットアップで設定します。) + ・ClrMatでヒープを使うPictファイルも初期化するようにしました。 + (書式)ClrMat + + +v0.69α 2019.2.9 アルファ版(インタプリタのみ) + ・プログラム終了後にヒープのPictファイルを初期化しないようにしました。 + ・隠しRAM使用時はg1mモードでもPict機能はフルカラー対応しました。 + (この場合、g1mプログラムのPictファイル(現在はheapモードのみ)はフルカラーになります。) + + +v0.68α 2019.2.3 アルファ版(インタプリタのみ) + ・サブプログラムを頻繁に呼び出すプログラムで[AC]ブレークが効かない不具合を修正しました。 + ・For~Next、While~WhileEnd、Do~LpWhileで=>コマンドの次にNext/WhileEnd/LpWhileがある場合のループ終了時の動作を修正しました。 + ・Locate/TextコマンドでList n[0]のサブ名を表示できない不具合を修正しました。 + ・?->fn1,?->Y1の入力がエラーになっていた不具合を修正しました。 + ・g3mモードのSketch-DotとSketch-Broken指定のCircleコマンドの描画を修正しました。 + + +v0.67α 2019.1.26 アルファ版(インタプリタのみ) + ・ローカル変数にアンダーバーで始まる拡張変数を指定した場合の不具合を修正しました。 + ・サブプログラム内の"=>"コマンドの判定式の結果でAns変数が書き換えられる不具合を修正しました。 + + ・(自然に不具合解消) +  OS3.20において最初のデバッグモード時に[F1]~[F4]以外のキーを押すとデバッグモードが解除されていた不具合が直っています。 + + +v0.66α 2019.1.18 アルファ版(インタプリタのみ) + ・4次元以上の逆行列の結果が正しくない場合のある不具合を修正しました。 + (正しくない例)[[0,0,0,1][27,9,3,1][216,36,6,1][512,54,8,1]]^(-1) + + ・複素数モードで60進数入力が動作しなかった不具合を修正しました。 + + ・ループ内のGotoコマンドがループが繰り返す前に実行された場合の不具合を修正しました。 + + ・オーバーライトモードのクリップモードのカーソル形状を修正しました。 + ・エミュレータでのLocateコマンドの不具合を修正しました。(まだ不完全です。) + + ・(既知の不具合)(0.66) +  OS3.20において最初のデバッグモード時に[F1]~[F4]以外のキーを押すとデバッグモードが解除されます。(0.66のみ) + + +v0.65α 2019.1.2 アルファ版(インタプリタのみ) + ・サブルーチンの呼び出しがループ内にあり、サブルーチン内のループ内以外でのGotoコマンドの不具合を修正しました。 + + 2018.12.31 ・Gotoコマンドでループ外に自動的にジャンプできるようになりました。(お試し実装です。) +  (0.64による(-)オプションは無効になりました。) + + ・プログラムの再帰呼び出しでシステムエラーになる不具合を修正しました。 + + +v0.64α 2018.12.30 アルファ版(インタプリタのみ) + ・表示形式指定のSciが異常になっていた不具合を修正しました。(0.58でエンバグ) + + 2018.12.29 ・Gotoコマンドでループ外にジャンプできるようになりました。(お試し実装です。) + (書式)Goto (-)ラベル名 +  (-)はマイナス符号です。 + (例) + Lbl A + While 1 + Goto (-)A + WhileEnd + + ・ベクトル(Vct)の初期化で行と列が選択できるようになりました。 + ・ベクトル(Vct)の間接指定が動作していなかった不具合を修正しました。 + + +v0.63α 2018.12.27 アルファ版(インタプリタのみ) + ・ルートフォルダのBMPファイルにアクセスできなくなっていた不具合を修正しました。(0.63でのエンバグ) + ・Renameにおいて拡張子を変えた場合に確認ポップアップを出すようにしました。 + + 2018.12.26 ・エディタのアルファモードが[SHIFT]+[F5](A<>a)で解除されていたのを修正しました。 + + 2018.12.24 ・ML系コマンドでカラー指定をデフォルトに戻していたのを戻さないように再修正しました。 + + 2018.12.19 ・Renameにおいて8文字以上のファイル名になったときにファイルが無くなる不具合を修正しました。 + + 2018.12.16 ・逆行列の結果が正しくない場合のある不具合を修正しました。 + (正しくない例)[[0,0,1][9,3,1][36,6,1]]^(-1) + + ・BG-Pictにファイルを指定できるようになりました。 + ・G3MモードにおけるBG-Pictの動作を修正しました。(現状CG50のみ対応です。) + + +v0.62α 2018.12.11 アルファ版(インタプリタのみ) + ・Seq(コマンドで変数の値が不正な場合、コマンド評価時にエラーが出ていたのを修正しました。 + (例)Xが-1の場合、 +    Seq( sqrt(X),X,1,5)でコマンド評価時にエラーになっていました。 + + + 2018.12.9 ・CG10/20での文字列処理/行列/Listの不具合を修正しました。 + + ・ステータスエリアの表示をできるだけ維持するようにしました。 +  起動時はステータス表示モードで、 +  ステータスエリアに何か描画した時点でステータスエリア非表示モードとなります。 +  ステータスエリア表示モードに戻すにはPutDispDDコマンドを使用します。 + + ・シリアルコマンドを[EXIT]で中断出来るオプションを追加しました。 + (書式)Send( 変数[,ボーレート][,EXIT有効]) + (書式)Recv( 変数[,ボーレート][,EXIT有効]) + (書式)OpneComport38K[,ボーレート][,転送モード][,EXIT有効] + [ボーレート値]:0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400(デフォルト), 8=57600, 9=115200 baud + [転送モード] 0:バイナリ転送モード  1:データ形式自動判別モード(デフォルト) + [EXIT有効] 0:無効  1:有効 + + (例)Send(A,,1) + (例)Recv(A,,1) +  [EXIT]で中断できます。 + + +v0.61α 2018.11.26 アルファ版(インタプリタのみ) + ・現在の空きメモリ量を取得するSystem(-5)を追加しました。 + (例)System(-5) + +  2018.11.25 ・文字列の255文字までの制限を撤廃しました。上限はメモリ制限のみとなります。 + (例)'#Str ,30,1000 +  Str 1~Str 30まで999文字までの長さで文字列処理できます。は[ALPHA]+[X^2] + + ・行列の再確保でアドレス指定した場合、それまで確保されていた同じ行列が消去されなかった不具合を修正しました。 + + ・ルートフォルダで表示するファイルの拡張子に.binを追加しました。 +  表示するファイル(g3m,g1m,txt,g3p,bmp,bin) + ・サブフォルダではすべてのファイルを表示します。 + + ・ファイルのCopy/Renameの制限を緩めました。 +  bin等のファイルでもCopy/Renameが可能です。 + + ・Mat/List/Vct一覧画面でListFileが2以上の場合にリスト表示がおかしかったのを修正しました。 + + ・Str、Graph(Y)、fn変数の確保で実体となる行列の要素数が減っていたのを修正しました。 + (例)"CDE"->Str 5 +  Str 1,Str 2,Str 3,Str 4,Str 5が確保されます。 + (例)"ABC"->Str 1 +  Str 1だけになっていました。 + + +v0.60α 2018.11.15 アルファ版(インタプリタのみ) + ・Str、Graph(Y)、fn変数の確保方法を変更しました。 +  併せてデフォルトの最大確保数をそれぞれ20から127まで増量しました。 + (例)"ABC"->Str 1 +  Str 1だけ確保されます。 + (例)"CDE"->Str 5 +  Str 1,Str 2,Str 3,Str 4,Str 5が確保されます。 + + ・fn変数の実体になるデフォルト行列をz(小文字)に変更しました。 +  Str変数のデフォルト  :<r> +  Graph(Y)変数のデフォルト:θ +  fn変数のデフォルト   :z + + ・ClrVct 変数名が動作しなかった不具合を修正しました。 + + ・DrawStatで画面外と結ぶ描画が出来なかった不具合を修正しました。 + +  2018.11.12 ・ClrVctが動作しなかった不具合を修正しました。 + + ・Graph(Y)とfnの引数の動作を修正しました。 + (誤)"X+5"->fn1 +    fn1(X=7)で返る値は(1)+5 + (正)"X+5"->fn1 +    fn1(X=7)で返る値は(7+5) + + ・StrShift(が非互換だったのを修正しました。 + ・StrSrc(コマンドの検索開始位置が文字列長以上の場合に0が返らない不具合を修正しました。 + ・StrMid(コマンドで第二引数が0のときに返る文字列がNULL文字列になっていなかった不具合を修正しました。 + ・StrLen(,StrCmp(,StrSrc(.Exp(コマンドの乗算省略が出来てなかった不具合を修正しました。 + + ・Mat/List/Vct表示においてListのAns/r/Thetaの表示を修正しました。 + ・Listの閉じカッコの"}"を省略した場合の不具合を修正しました。 + ・Listのラベル名に文字変数が使えなかった不具合を修正しました。 + + ・複素数でのAnd,Or,Not演算が間違っていたのを修正しました。 + ・1以下の実数のAnd、Orが非互換だったのを修正しました。 + (誤)0.1 And 0.2 -> 0 + (正)0.1 And 0.2 -> 1 + + ・g1mモードのPictファイルが1024バイト未満のときに空白で埋めるようにしました。 + + +v0.59α 2018.11.4 アルファ版(インタプリタのみ) + ・BmpLoad(コマンドのVRAMへの1ビットBMPのロードで右端処理が8ドット単位になっていたのを修正しました。 + + ・Mat/List/Vct表示においてVctの編集画面での表示を修正しました。 + + ・ListのFileをサポートしました。 + (例)File 2 +  2つめのファイルリストを使用します。 +  純正とは違って52個ずつのファイルとなります。 +  内部実装はFile 1のList 53がFile 2のList 1になります。 +  事前にセットアップで必要なFile数を確保してください。 + + (例)File 0 +  Mat/List/Vct表示で通し連番リストで使用します。 + + ・不等号および積分のGraphを簡易的にサポートしました。(※単一グラフの描画のみです。) + + +v0.58α 2018.11.3 アルファ版(インタプリタのみ) + ・Trnコマンドをエンバグしていたのを修正しました。 + ・StrRotateコマンドの回転方向が逆だったのを修正しました。 + ・Text/LocateYXコマンドの座標指定が範囲外のときにシステムエラーになる場合のある不具合を修正しました。 + +v0.58α 2018.10.21 アルファ版(インタプリタのみ) + ・Trnコマンドを含む数式でメモリエラーになることのある不具合を修正しました。 + +  2018.10.16 ・エディタでプログラム最後尾へのジャンプが出来ない場合があった不具合を修正しました。 + ・BmpSaveコマンドでエンバグ(0.57)していたのを修正しました。 + ・_Hscroll、_Vscrollコマンドを最適化しました。従来比1.5倍速くなります。 + +  2018.10.11 ・グラフックス画面とテキスト画面を合成するコマンド、Screen.OTの下2ラインをミスっていたので修正しました。 + ・ファイル名入力時のアルファロックから[ALPHA]で解除出来ない不具合を修正しました。 + +  2018.10.10 ・[AC]キーのSTOP判定を減らしました。 +  結果、Break On時でもBreak Offとほぼ変わらない速度となりました。 + + ・Listの自動確保を修正しました。 + ・raph(Y)とfnのXを引数に持つ場合の動作を修正しました。 + (誤)"X+5"->fn1 +    fn1(7)で返る値は(X+5)*7 + (正)"X+5"->fn1 +    fn1(7)で返る値は(7+5) + + ・変数一覧をミニフォントで表示するモードを追加しました。(エディタの文字の大きさに準じます。) + +  2018.10.6 ・アンダーバーより始まる拡張変数を最大52個から99個に増量しました。 +  併せて変数のAlias数も99個に増量しました。 + ・変数一覧で拡張変数表示の時に[F1]枠で使用拡張変数の数を表示するようにしました。 +  [拡張変数の使用数:エイリアス全体の使用数] + ・変数一覧にスクロールバーを追加しました。 + + +v0.57α 2018.10.5 アルファ版(インタプリタのみ) + ・シリアル系コマンドが使えるようになりました。(FX機互換です。) + +  2018.10.3 ・アンダーバーより始まる変数を最大26個から52個に増量しました。 + ・Aliasコマンドで使用数が超えた場合の不具合を修正しました。 +  Aliasコマンドで別名使用できる数は以下のとおりです。 +  -変数 64個 (アンダーバーで始まる変数を含みます。) +  -行列/Vct 26個 +  -ラベル 26個 + ・Trnコマンドの引数の式評価を修正しました。 + (誤)Trn Mat A+Mat B -> Trn (Mat A+Mat B) + (正)Trn Mat A+Mat B -> (Trn Mat A)+Mat B + +  2018.9.29 ・複素数のUnitV(とNorm(コマンドの結果が間違っていたのを修正しました。 + ・整数モードでもベクトルコマンドをサポートしました。 + ・複素数の行列表示を横2だったのを横3に変更しました。 + ・行列のノルム計算に対応しました。 + +  2018.9.18 ・行列のべき乗計算に対応しました。 + +  2018.9.15 ・以下のベクトルコマンドを追加しました。 +  Vct +  DotP( +  CrossP( +  Angle( +  UnitV( +  Norm( +  ClrVct + (※Vct A~ZのベクトルはMatと独立した領域を使用します。θ、r、Ans、小文字以降は共通となります。) + + ・行列一覧では[VARS]でVct表示への切り替えとなります。 + + ・逆行列と行列の二乗計算に対応しました。 + + ・ClrListのみの場合、小文字行列(List 27~52)が消去されていた不具合を修正しました。 +  修正後はList 1~26の消去となります。 + + +v0.56α 2018.8.29 アルファ版(インタプリタのみ) + ・同梱させていただいているCG版フォントエディタのファイル名を変更しました。 +  FEINT35S.g3m -> FEINT35C.g3m +  FEINT35S.txt -> FEINT35C.txt + + ・G3MモードのReadGraph/DotGetコマンドにおいて1ビットデータが使用できなかった不具合を修正しました。 + ・ML系コマンドでカラー指定がデフォルトに戻ってなかったのを修正しました。 + +  2018.8.27 ・Xを(0x90)キャラクタで使用している場合のXとAns変数を、整数モードにおいて行列の要素で使用した場合エラーになっていた不具合を修正しました。 + +  2018.8.25 ・[F5](CHAR)選択で[VARS]キーの機能を変更しました。 + (従来)ノーマルフォントとデフォルトミニフォント表示の切り替え。 + (変更)フォントサイズにかかわらず、デフォルトフォントとC.Basicフォントの切り替え。 + +  2018.8.22 ・Matエディタ編集画面で[SHIFT]+カーソルキーで改ページ出来るようになりました。 + +  2018.8.19 ・再帰プログラムでスタックエラーが出た時に[EXIT]を何度も押さないと終了しなかった不具合を修正しました。 + + ・C.Basicコマンド入力でScreenコマンドの配置がずれていたのを修正しました。 + +  2018.8.15 ・エラーポップアップ後にシステムエラーが発生することがあるので、 +  [SHIFT]+[6]の16ビットカラー選択画面をC.Basicポップアップに変更し、エラーポップアップは純正仕様のポップアップに戻しました。 + +  2018.8.9 ・ファイル名入力時、[F1][F2][F3]ファンクションキーを押すとアルファ大文字モードになってしまう不具合を修正しました。 + +  2018.8.5 ・RGB(、HSV(、HSL(コマンドで16ビットカラー値をダイレクト指定する#オプションを追加しました。 + (例)RGB(#12345) + (例)HSV(#12345) + (例)HSL(#12345) + 16ビットカラー値12345を指定します。 + + ・GBモードon/FullでCHAR選択画面を開いてGBコードを表示後、GBモードoffで再度CHAR選択画面を開くと空白画面になる不具合を修正しました。 + ・GBモードで文字列を強制的にGB offにする%%オプションを追加しました。 + (強制的にGB Fullにする##オプションの逆の機能になります。) + + ・ファイル名入力時のアルファロックのステータス表示のちらつきを修正しました。 + ・行列のDim設定で不正な値を入力後[EXE]→[EXIT]で抜けられなかった不具合を修正しました。 + ・行列エディタでドットエディタのカラー設定が文字列表示に影響していた不具合を修正しました。 + +  2018.8.4 ・Graph Y=コマンドで" "が必要だった非互換性を修正しました。 + ・Fix/Sci/Nrmの設定において、空白で[EXE]を押すと再入力になるように修正しました。 + +  2018.8.3 ・CHAR選択画面でメインメニューに戻ると復帰できないので、[MENU]キーを無効にしました。 + ・[SHIFT]+[6]の16ビットカラー選択画面で数値入力をする際にエラーが起きるとファンクションメニューがおかしくなる不具合を修正しました。 + ・SEARCH/REPLで、"Not Found"ポップアップ時に現在の行数が表示されていたのを修正しました。 + ・PopUpWin(コマンドのYes/Noポップアップで、[AC]中断時に正常に中断できなかった不具合を修正しました。 + ・一行入力時、動作が定義されていないファンクションキーを押すと、[EXE]と同様の動作をしてしまう不具合を修正しました。 + ・Fix/Sci/Nrmの設定において、空白で[EXE]を押すと0になっていた不具合を修正しました。 + + ・ファイルリストのお気に入りカラーを任意に設定できるようになりました。セットアップで設定出来ます。 + + ・SETUP、変数一覧、行列一覧において、[SHIFT]+[↑]/[↓]で1ページずつスクロールできるようにしました。 + ・txtからg1m/g3mへの変換時にデフォルト以外の任意の形式で選択保存できるようにしました。 + + +v0.55α 2018.7.30 アルファ版(インタプリタのみ) + ・ElemSize(コマンドで4ビット行列のサイズが1になっていたのを修正しました。 + +  2018.7.29 ・Cls/ViewWindowコマンド後もテキストモードの場合は"Done"表示しないように修正しました。 + ・セットアップのPict modeがHeap以外の設定の時に起動が遅くなる不具合を修正しました。 + + ・Colon様に以下の文書を改訂(校正&追加&修正)していただきました。 +  ReadmeCG_J.txt +  Command_List_CG.txt +  Extended_opcode_list.txt +  併せて対応する英文文書も更新しました。 + +  2018.7.25 ・実数モードで4bit行列の奇数行(base1)、偶数行(base0)の値設定が出来なくなっていた不具合を修正しました。 + +  2018.7.23 ・エディタの置換において、ファンクションメニューが残っていた不具合を修正しました。 + ・エディタの置換において、[F4](ALL)と[F5](ALL+)において[AC]中断で置換モードが終了していた不具合を修正しました。 + + ・[F2]-[F3]行列確保において、bit選択の数値入力で4が受け付けられなかった不具合を修正しました。 + +  2018.7.21 ・SETUPのPlot/LineCol設定で8色以外設定できなくなっていた不具合を修正しました。 + ・V-WinのXscale、Yscaleに負の値を設定した場合、絶対値になるように修正しました。 + ・一行入力時にALPHAモードの切替が不安定だったのを修正しました。 + +  2018.7.21 ・一行入力時に[F4](A<>a)切り替えが機能しなくなっていた不具合を修正しました。 + +  2018.7.16 ・一行入力時に[MENU]コマンド履歴で、[AC]入力履歴初期化を行うと動作が異常になる不具合を修正しました。 + ・セットアップの時刻設定で秒設定がMin表記となっていた間違いを修正しました。 + ・V-Win設定でエラーになったときの[F4][F5]ファンクションメニュー表示を消去しました。 + ・エディタの検索/置換で文字列無しの場合に[AC]を押すとファンクションメニューがリセットされていたのを修正しました。 + + ・" "出力仕様をfx-5800P互換モードとFX/CG互換モードの切り替えをするオプションコマンドを追加しました。 + (書式)'#58 +  fx-5800P互換出力になります。 + (書式)'#98 +  fx-9860G/CGシリーズ互換出力になります。 + + 2018.7.10 ・" "出力の仕様をFX/CGシリーズ仕様に変更しました。 + ・C.Baisic入力モードでの1行入力時に[F3](COMMAND)と[OPTN]/[VARS]/[SHIFT]+[VARS]を切り替えると元の画面に戻らなくなる不具合を修正しました。 + + 2018.7.7 ・CG50の隠しRAM使用時のデバッグモードでシステムエラーが起きる不具合を修正しました。 + ・Listのラベルで8文字未満のラベルの場合に認識されてなかった不具合を修正しました。 + ・行列一覧画面で[ALPHA]+[アルファベット][θ][]、[SHIFT]+[(-)](Ans)、[X,θ,T]でジャンプ出来るようになりました。 + + 2018.7.3 ・行列値を求めるDetコマンドを追加しました。 + ・エディタの文字列色で"\\"の場合に文字列終了していなかった不具合を修正しました。 + ・エディタの行数表示が[SHIFT]時に消えていたのを修正しました。 + ・"Search For Text"、"Replacement Text"、"View Window"の文字色を青に変更しました。 + ・Back-Colorを設定している場合に各種ポップで背景がBack-Colorになっていた不具合を修正しました。 + ・数値入力の?コマンドで[SHIFT]+[6]で6が入力されていた不具合を修正しました。 + ・[SHIFT]+[6]のカラー選択ポップアップを多重起動できないようにしました。 + ・デバッグモード時のステータスライン背景色変更が、CHAR選択、変数一覧、行列一覧で解除されていたのを修正しました。 + ・バイナリエディタでカーソルが残る不具合を修正しました。 + ・CHAR選択での上下スクロール矢印表示を改善しました。 + ・[SHIFT]-[F3](V-Win)で値変更後、グラフィックスVRAMを消去するようにしました。 + ・エディタの検索実行中に[F2]で検索画面に戻っていた不具合を修正し、[F6]に再度検索画面に戻るRETRY機能を新設しました。 + ・[ALPHA]+[AC]+[ALPHA]等でALPHAモードにならなかった不具合を修正しました。 + ・x10形式の指数表示がプログラム実行時以外に適用されてなかった不具合を修正しました。 + +  2018.6.28 ・エディタのデバッグモード時に[SHIFT]+[EXIT]でプログラムを実行してしまう不具合を修正しました。 + + 2018.6.27 ・お気に入りの表示色を変更してみました。 + ・デバッグモードから再開する時に画面が復帰しない事がある不具合を修正しました。 + ・ALPHAモードでCHAR選択画面の[X^2](GB切り替え)が機能しなかったのを修正しました。 + +  2018.6.26 ・2進数と16進数の0b0,0b1,0b2,0x1,0x2,0x3のテキスト変換がエスケープ扱いになっていたのを修正しました。 + + ・V-Win設定画面からV-MEMへのアクセスを追加しました。 + ・V-Win設定でTθmaxとTθptch のデフォルト値が違っていたのを修正しました。 + ・Tθptchへの代入値が0の場合にエラーになるようにしました。 + + ・デバッグモード時にはステータスラインの背景を変更するようにしました。(Colon様の新発見SysCallで実現しました。) + ・行番号表示のデフォルト色をシアンから黒に変更しました。 + ・エディタの入力モードがC.Basicモードの場合に[F6](G<>T)が使えなくなってしまったのを修正しました。 + ・C.Basicモードのコマンド入力ポップアップとコマンド入力履歴にスクロールインジケーターの上下矢印を追加しました。 + ・プログラムをデバッグモードで起動したとき、[EXIT]でデバッグモードを抜けた後にファンクションキーが正常動作しなかった不具合を修正しました。 + ・デバッグモードから抜ける場合の確認ポップアップを追加しました。(セットアップで設定します。) + ・セットアップのFix/Sci/Nrmの桁数指定で[EXIT]で抜けた場合に設定されてしまう不具合を修正しました。 + + 2018.6.24 ・g3pファイルの読み込みに対応しました。 +  RclPict/RclCaptコマンドで純正のg3pファイルが読み込めます。 + (※ヒープメモリの使用サイズを86KB以下に設定してください。) + + +v0.54α 2018.6.22 アルファ版(インタプリタのみ) + ・ストレージメモリへの保存に時間のかかっていた不具合を修正しました。 +  ( 参考 http://www.casiopeia.net/forum/viewtopic.php?f=11&t=1740&start=50#p14530 ) + ・メインメモリへのコピー後にファイルリストが異常になることがある不具合を修正しました。 + ・AT DebugModeがoffの場合、[AC]Breakによる一時停止から再び動作してしまう不具合を修正しました。 + + 2018.6.21 ・a0,a1,a2,b0,b1,b2,c0,c1,c2,x1,x2,x3,y1,y2,y3,n1,n2,Q1,Q3,f1,f2,f3,f4,f5,f6 +  以上の特殊変数と同じ形式の行列省略形がテキスト変換時に特殊変数扱いになってしまっていたのを修正しました。 +  特殊変数と重なる行列省略形の添字はエスケープされます。 +  a0(特殊変数) → a0 +  a0(行列省略形) → a\0 +  x3(特殊変数) → x3 +  x3(行列省略形) → x\3 + + ・ビットマップ描画系コマンド(WriteGraph、_Bmp等)において16ビットカラー描画になる場合、 +  ビットマップデータのアドレス指定が奇数の場合はエラーになるようにしました。 + + ・SortA/Dコマンドで引数が2つの場合にシステムエラーになることがあったのを修正しました。 + + 2018.6.20 ・16ビットカラーのビットマップ描画において透過色指定するためのコマンドとしてTransp-Colorを追加しました。 + (書式)Transp-Color +  透過色の設定を解除します。 + (書式)Transp-Color カラー + (例)Transp-Color Green +  透過色を緑に設定します。 + (書式2)Transp-Color #16ビットカラー値 + (例)Transp-Color #12345 +  透過色を16ビットカラー値12345に設定します。 + + ・エディタの一斉コメント化/解除機能で範囲指定がない場合の動作を改善しました。 + + ・a0,a1,a2,anStart,b0,b1,b2,bnStart,c0,c1,c2,cnStart、 +  R Start,R End,D Start,D End,D pitch,F Start,F End,F pitch,H Start,H pitchを自動的に拡張変数として使用するようにしました。 + (※Aliasでの変数割当があればそれが優先します。) + +  2018.6.19 ・Augment(コマンドでメモリエラーになることがあるのを修正しました。 + + 2018.6.16 ・StoV-Win/RclV-Winコマンドで引数に6の指定が出来なかった不具合を修正しました。 + + ・g1mモードで_Bmpコマンドの[,C]オプションがFX版と非互換になっていたのを修正しました。 + (※FX版では描画データを画面内に収まるようにクリッピングして描画する指定です。) + + ._Bmp,_Bmp8,_Bmp16コマンドの16ビットカラーモードのOr,And,Xor対応しました。 + (従来は強制的に上書き固定でしたので、強制上書き指定で[,N]オプション追加しました。) + (16ビットカラーモードではオプション無指定の場合は上書き描画になります。それ以外はOr描画になります。) + (書式)_Bmp ビットマップint行列へのポインタ, X, Y, width, height [,O/A/X/N] [,C] + + + ・Listの初期化で要素の[1]~[9]までの自動確保においてゼロ初期化が足りなかったのを修正しました。 + (※Ver 0.52で初期化し過ぎていたのを修正したときのエンバグです。) + ・Min(、Max(、SortA(、SortD(コマンドの引数が複素数を含む場合、純正互換仕様にて対応しました。 + + ・サブプログラムのReturnで[AC]中断になった場合に中断処理が出来てなかった不具合を修正しました。 + + ・複素数モードにおけるLCM(コマンドの不具合を修正しました。 + ・ViewWindowの設定でg1mモードとg3mモードの切替が出来てなかったのを修正しました。 + ・StrAsc(コマンドのテキスト変換が出来てなかったのを修正しました。 + + ・(-)の式評価順序を純正に合わせました。 + ・?コマンドでの入力時にステータスアイコンが現在の状況を示していなかった不具合を修正しました。 + ・プログラム中でのg1mモードとg3mモードの切替が不完全だったのを修正しました。 + + ・Listのラベルに対応しました。 +  要素の開始が1の場合(デフォルト)では、純正と同じく、 + (書式)"LABLE"->List 1[0] +  要素の開始が0の場合は、 + (書式)"LABLE"->List 1[-1] +  でラベル設定ができます。 + + (書式)List 1[0]->Str 1 + (書式)List 1[-1]->Str 1 +  ラベル名を文字列として取得することも出来ます。 + + +v0.53α 2018.6.10 アルファ版(インタプリタのみ) + ・ファイル名入力で空白の場合は再入力になるように純正仕様に変更しました。 + + ・ファイル名指定のBmpSave@ BmpLoad(@コマンドにおいてフォルダ指定ができなかった不具合を修正しました。 + (例)BmpLoad(@"/@Font/@MFONTA.bmp") + + ・@Fontフォルダよりデフォルトの外部フォントを読み込むBmpLoad @@を追加しました。 + (書式)BmpLoad(@@G) + (書式)BmpLoad(@@GL) + (書式)BmpLoad(@@GM) + (書式)BmpLoad(@@K) + (書式)BmpLoad(@@KL) + (書式)BmpLoad(@@KM) + (書式)BmpLoad(@@A) + (書式)BmpLoad(@@AL) + (書式)BmpLoad(@@AM) +  @Fontフォルダからデフォルトフォントファイルをロードします。 + + ・Ver 0.49α以降、CG50において隠しRAM使用時にコマンド入力後、パスワード入力画面に移行していた不具合を修正しました。 + ・[F5](CHAR)選択において左上1番目の文字がエスケープされなかった不具合を修正しました。 + ・GetFont(、GetFontMini(コマンドにおいてエスケープされたキャラクタがバックスラッシュになっていた不具合を修正しました。 + + ・トレース時のシステムエラー対策しました。(…まだ直ってないかもしれません。(^^; ) + ・一行入力時に[SHIFT]+[5]/[6]でコマンド入力ができなかったのを修正しました。 + ・Edit GB Fontがoffの場合に、プログラム中で'#GB1/2コマンドや##でGBフォントを有効にしたときに +  ?コマンドでエスケープ付きOpCodesが入力出来なかったのを修正しました。 + ・StrAsc(コマンドで、エスケープ付きOpCodesの値が取得できなかった不具合を修正しました。 + ・エディタの[Menu](コマンド入力履歴)からエスケープ付きOpCodesを入力できなかったのを修正しました。 + + ・Colon様に以下の文書を改訂(校正&追加&修正)していただきました。 +  ReadmeCG_J.txt +  ManualCG_J.txt +  Command_List_CG.txt +  Mat_List.txt +  ErrorCode_List.txt +  Extended_opcode_list.txt + ・複素数導入の0.50よりDBLモードにおいてIf、While、Doコマンドにおいて条件判定が整数判定に戻っていたのを修正しました。 + + ・Getkey@1/2において[ALPHA]+[EXP(x10)]を押すと[AC]中断になっていたのを修正しました。 + ・Getkey1/2において、[SHIFT]+[5]、[ALPHA]+[(-)]、[ALPHA]+[DEL]でキーコードが返らなかったのを修正しました。 + + ・行列をアドレス指定で再割当てした場合、割当先データが変更されてしまうことがあったのを修正しました。 + (※アドレス指定で確保した行列は一覧表示で*マークが付きます。) + + ・コマンド入力モードがC.Basicのとき、コマンド入力時に0xFFFFが同時に入力されることがあるのを修正しました。 + ・コマンド入力モードがStandardのとき、[SHIFT]→[MENU]→[F6]→[F6]→[F2]→[EXIT]で一つ前に戻らない不具合を修正しました。 + ・一行入力時にも[SHIFT]+[F5](A<>a)と[SHIFT]+[F6](CHAR)を有効にしました。 + ・カラーピッカーで白(R,G,B)=(248,252,248)のHSV値がおかしくなっていたのを修正しました。 + + ・エディタで[F1](JUMP)モードの時、[SHIFT]+[F6](CHAR)で連続入力モードにした場合、エディタが無反応になる不具合を修正しました。 + + ・複素数モードにおいて、MatおよびListの要素に複素数を含む場合にエラーになっていた不具合を修正しました。 + + ・単位行列を生成するIdentityコマンドを追加しました。 + + ・DrawStatコマンドを一部CGモードに対応しました。 + (例)S-Gph1 DrawOn,xyLine,List 1,List 2,1,Square[,ColorLinkOff][,Black] +  [,ColorLinkOff]はまだ機能しません。 + + ・DrawGraphで描画したグラフが、一時停止や終了時に消えてしまっていた不具合を修正しました。 + + ・グラフ描画後のトレースを一部修正しました。 + + ・GridLineとAxesScaleコマンドを追加しました。 + + ・複素数モードにおいて、Notが論理Notではなくビット反転演算になっていた不具合を修正しました。 + ・複素数モードにおいて、RanList#/RanNorm#/RanBin#の返り値が複素数Listにならなかった不具合を修正しました。 + ・複素数モードにおいて、Int÷の結果が実数値になっていたのを修正しました。 + + ・複素数モードにおいて、整数引数に複素数を含む数式がある場合に文法エラーになっていた不具合を修正しました。 + + ・0x90のXを使用した場合、[Lbl X][List X][Mat X]でエラーになっていた不具合を修正しました。 + + ・SortA(、SortD(コマンドにおいて1未満の実数値でソートされていなかった不具合を修正しました。 + ・SortA(、SortD(コマンドの複素数引数におけるソートの仕様が非互換だったのを修正しました。 +  今までは引数に指定されたすべてのListが個別にソートされていました。 +  修正後は、第一引数で指定されるListのソートにリンクして二番目以降のListがソートされます。 + + +v0.52α 2018.5.21 アルファ版(インタプリタのみ) + ・CG10/20での起動時、自動オーバークロックが必要な場合にポップアップで確認するようにしました。 + (※セットアップで自動オーバークロックしないようにすることも出来ます。) + + ・エディタの[SHIFT]+[F5]は[A<>a]機能に固定し、[SHIFT]+[F6]はデバッグモード以外では[CHAR]選択に変更しました。 + (※[G<>T]は[SHIFT]+[F3](V-WIN)-[F6]に新設しました。さらに[SHIFT]+[F3](V-WIN)-[F4]で現在のViewWindowの値を参照/変更できるようにしました。) + (※fx-5800P互換のC.Basic入力モードの場合は、[SHIFT]+[F4]で16進ダンプモードに入ります。) + + ・カラーピッカーを選択するアイコン[RGB]を[Picker]に変更しました。 + ・ファンクションキーの色変更に一部対応しきれていなかったのを修正しました。 + + ・GetMini(コマンドにオプション追加でMiniMiniフォントとMiniMiniBoldフォントに対応しました。 + (書式)GetFontMini("フォントキャラ")M->Mat A + (書式)GetFontMini("フォントキャラ")MB->Mat A + (例)GetFont("A")M->Mat A +  MiniMiniフォント"A"のビットマップデータ(8x10)が1ビット行列Mat Aに入力されます。 + (例)GetFont("A")MB->Mat A +  MiniMiniBoldフォント"A"のビットマップデータ(9x10)が1ビット行列Mat Aに入力されます。 + + ・複素数(16バイト)のPoke(、Peek(に対応しました。 + (例)Peek(&A).C + (例)Poke(&A).C,123+456i + + ・行列の再確保で初期化し過ぎていたのを修正しました。 + (例){10,1}->Dim Mat A.B + -1->Mat A + {1,1}->Dim Dim Mat B.B(&Mat A) + [[1]]->Mat B.B +  Mat Bは、 +  [[1][-1][-1][-1][-1][-1][-1][-1][-1][-1]] +  となるはずですが、 +  実際はこうなってました。 +  [[1][0][0][0][0][0][0][0][-1][-1]] + + ・RGB(コマンドと同等なHSV(とHSL(コマンドを追加しました。 + (書式)HSV(H,S,V) + (書式)HSL(H,S,L) +  H:0~359 +  S:0~255 +  V:0~255 +  L:0~255 + + ・GBモードにおけるカーソル右移動を修正しました。 + ・GBモード1バイトのエスケープ文字を修正しました。 + + ・FX標準フォントにあってFXミニフォントに無いフォントを追加しました。(Colon様に作成していただきました。以下詳細です。) +  -以前作成したFXノーマルフォントのうち、0xE5EA、0xE5EB、0xE6AEを修正 +  -既存のミニフォントのうち、0xCD(r)、0xCE(θ)、0xE5B2(r)、0xE5B3(X)、0xE5B4(Y)について、太字化するなど修正 +  -既存のミニフォントのうち、0xE6B8(∮)が0xE599(¢)と同じだったのを修正 +  -既存のミニフォントのうち、0xE6B9(∂)の字形の微調整 +  -既存のミニフォントのうち、0x5C(\)、0xE69E(?)をPDF記載の字形に修正 +  -MATH、SYMBOLの完全対応 +  -ギリシャ文字、キリル文字をそれぞれ大文字小文字ともにすべて追加 +  -0xE5A9、0xE5AAの追加 + + ・フォルダの作成が出来なかった不具合を修正しました。 + + ・GBモードにおいてエスケープした1バイト文字が表示されなかった不具合を修正しました。 + + ・[F5](CHAR)選択画面の[VARS]オプションにおいて0x5Cでエスケープした文字が表示されなかった不具合を修正しました。 + ・MenuコマンドでGBモードを有効にする##オプションが使えなかった不具合を修正しました。 + ・?()オプションにおいて値が0の場合に表示されなかった不具合と虚数入力でシステムエラーになっていた不具合を修正しました。 + ・数式後に区切り文字が無いとエラーにするようにしました。 + + + +v0.51α 2018.5.14 アルファ版(インタプリタのみ) + ・複素数対応しました。 +  DBL#モード、INT%モードに加えてCPLXモードを追加しました。セットアップで切り替え出来ます。 +  行列のデフォルト確保サイズが128ビット(CPLX)になります。 +  また従来どおり実行モードをコマンド切り替えも出来ます。 + (書式)'#CBCPLX +  (※複素数モードの関数計算は仮対応なので結果がおかしいものは順次修正していきます。) + + ・GBモードにおいて、GBコードの2バイト目がコマンドおよび特殊文字と重なるGBコード(0x**E5,0x**E6,0x**E7,0x**F7,0x**F9)におけるカーソル左移動を改善しました。 +  新しい左移動は、左に0x04以上0x5C未満のコードが現れるまで遡った後、右方向にカーソル移動して1バイト文字か2バイト文字かを確定します。 + ・GBモードにおいて、GBコードと重なる1バイト文字(0xA9等)を0x5Cでエスケープしました。0x5C+0xA9のように2文字コード扱いになります。 + + ・行列エディタのClip&Pasete機能に{m,n}⇔{X,Y}切り替えを反映させるようにしました。 + + ・一部ファンクションキーのアイコンをシステムアイコンに変更しました。 + + ・StrLenコマンドに文字列の実バイトサイズ結果を返す@オプションを追加しました。 + (書式)StrLen(@"ABCDE") + (書式)StrLen(@Str 1) + + ・GBモードでのキャラクタ選択モードにおいて、0x7F**文字をエスケープ文字扱いに変更しました。 + ・指数表示の不具合を修正しました。 + + ・sinの引数がπの整数倍になる時に結果がゼロにならないのを改善しました。 +  cosも同様に修正しました。 + (例)sin π + (例)cos (π/2) + + ・ステータスラインのアイコン表示に対応しました。(アイコン画像はColon様に作成していただきました。) + ・ファイルリスト表示とセットアップにスクロールバーを追加しました。 + + ・CGカナフォントファイルの"。「」"の順番を修正しました。 + ・FXフォント(0x7F50,0x7F53)を修正しました。 + + ・小数点以下桁数指定で丸めるRndFix(コマンドに、有効桁数指定で丸めるSciオプションを追加しました。 + (書式)RndFix(数式, Sci 桁数) + (例)RndFix(1.23456789e-123,Sci 5) +  1.2346e-123が返ります。 + + ・CGフォントにあってFXフォントに無い6x8フォントを追加しました。(Colon様に作成していただきました。) + + +v0.50α 2018.5.5 アルファ版(インタプリタのみ) + ・エディタで[SHIFT]+[7]キャプチャ機能が使用可能になりました。 + + ・行列エディタのドット編集モードにおいて[SHIFT]+[5],[SHIFT]+[6]でカラー指定が出来るようになりました。 +  カラー指定後は[F1]キーでそのカラーでの描画が出来ます。 +  また[SHIFT]+[F1]で現在のカーソル位置のカラー値を[F1]に設定出来ます。 + + ・クリップボードにコピーした後に[SHIFT]→[8]→[SHIFT]と順に押すと、SHIFTモードに戻らない不具合を修正しました。 + ・エディタ表示前にカーソルが表示されてしまうのを修正しました。 + ・REPL ALL+終了後にカーソルが飛ぶことがある不具合を修正しました。 + ・CHAR選択で、[SHIFT]→左右キー/[OPTN]/[VARS]/[x^2]が機能しない不具合を修正しました。 + ・CHARの連続入力時、[OPTN]や[VARS]のオプションが解除されてしまう不具合を修正しました。 + ・SETUPの[F1]の色設定で[EXIT]を押すと黒になってしまう不具合を修正しました。 + ・SETUPの反転選択を解除しないように変更しました。 + ・RGB指定ポップアップで、直接数値入力時に赤緑青の色が反転していたのを修正しました。 + ・RGB指定ポップアップの下側1ラインが消去されていたのを修正しました。 + + ・1行入力においてクリップボードを有効にしました。 + ・1行入力開始時の大文字/小文字アイコンの表示切り替えが出来ていなかったのを修正しました。 + + ・Getkey1/2において、SDKのキーコードを取得することが出来るようになりました。 + (書式)Getkey@1 + (書式)Getkey@2 +  [@]オプション追加でSDKのキーコードが返ります。 + + ・一要素が4ビットの行列を追加しました。(※8ビット以上の行列とは違い、{m,n}と{X,Y}が逆になっている1ビット行列仕様です。) +  型指定は、NibbleのNで指定します。 + (書式){16,8}->Dim Mat A.N + + +v0.49α 2018.4.27 アルファ版(インタプリタのみ) + ・Colon様の発見されたOS互換の書式でのGBコード表示/入力に対応しました。 + + ・0x03、0xA8コードはGBコード表示への切り替えコードとなります。エディタでの表示キャラクタは特殊文字0xE59A(C)で反転表示されますが実行時は表示されません。 +  ENGキャラクタの +  [OPTN]-[F6]-[F6]-[F1](ENG-SYM)-[F3](n)とべき乗記号[^]で入力することが出来ます。 +  内部では0x03A8の2バイトコードとして扱われます。 + + ・0xE5~0xE7で始まる特殊文字はエスケープで混在表示できます。 +  例えばGBコードと重なる0xE5E8の場合、 +  0x5CE55CE8 +  の4バイトコードとなります。 +  4バイトコードはエディタ上の表示は反転表示になりonとFullでも違ってきます。 +  onだと0x5CE55CE8は特殊文字反転表示、GBコードの0xE5E8は特殊文字で表示されます。 +  FullだとOS互換の混在表示になります。 +  ただし、文字列の始めに0x03A8コードがあればそれ以後の文字列はすべてFull表示になります。文字列コマンドの終了で元に戻ります。 + + ・エディタのGBフォント表示に対応しました。セットアップで設定します。 +  off:GBフォントを表示しません。通常のモードです。 +  on:コマンド&特殊文字と重なるF7xx,F9xx,E5xx,E6xx,E7xxのGBコードを除いて表示します。 +   (※文字列に0x03A8コードがあればそれ以後の文字列はFull表示になります。文字列コマンドの終了でon表示に戻ります。) +  Full:内蔵のすべてのGBフォントを表示します。(GBコードと重なる一部コマンドがGBフォントに化けます。) +   (※この設定はエディタとテキスト変換で有効になります。プログラム内での制御は以下のコマンドを使用して下さい。) + + ・プログラム内制御コマンド + (書式)'#GB0 +  GBフォントを表示しません。従来のモードです。 + (書式)'#GB1 +  以後、コマンド&特殊文字と重なるF7xx,F9xx,E5xx,E6xx,E7xxを除いてGBコードとして表示します。 + (書式)'#GB2 +  以後、内蔵のすべてのGBコードを表示します。 + + ・GBフォントのキャラクタ選択入力に対応しました +  [F5](CHAR)選択において[X^2]キーを押すとGBコード選択入力が出来ます。 +  (※プログラム実行中では'#GB1か'#GB2になっている必要があります。) +  (※GBフォントと混在出来るエスケープされる特殊文字は背景が黄色で表示されます。) +  (※[OPTN]でミニフォント表示になります。) + + ・文字列表示コマンドで強制的にGBフォントが表示することが出来ます。 +  制御コマンドでGBコードがoffの状態でも文字列の直前に##を置くことでFull設定でのGBフォント表示が出来ます。 + (書式)##"GB文字列" + (書式)Locate x,y,##"GB文字列" + (書式)LocateYX py,px,##"GB文字列" + (書式)Text py,px,##"GB文字列" + + ・?入力コマンドで直後に##を置くことでFull設定でのGBフォント入力が出来ます。 + (例)?##->Str 1 + (例)?##(5,3,15,"_")->Str 1 + + ・GetFont、GetMiniFontコマンドの引数の直前に##を置くことでFull設定でのGBフォントデータの取得が出来ます。 + (例)GetFont(##0xA4A2)->Mat A + + ・GBフォントの横18ドット表示に対応しました。LocateコマンドをLocateYX同様に拡張しました。 +  座標指定がテキスト座標かピクセル座標かという違いのみになります。 + (書式)Locate [@][!]csrX,csrY,[##]"文字列"or数式 [,N/O/R/V][,F][,フォント縦ドット数] +   [@] 現在のVRAMに描画します。 +   [!] 外部フォントが導入されていても標準内蔵フォントで描画します。 +   [##] GBフォントを表示します。 +   [,N] Normal +   [,R] Reverse +   [,O] Or +   [,V] reVerse or +   [,F] 通常、GBフォントは24ドット表示ですが、18ドット幅固定ピッチで表示します。 + +  この追加により、LocateYXのフォント縦ドット数オプション指定の順序が一つずれます。 + (書式)LocateYX [@][!]Y,X,[##]"文字列"or数式 [,N/O/R/V][,F][,フォント縦ドット数] +     座標指定はTextコマンドと同じくY座標が先になります。 + + (例)LocateYX 20,80,##"TestGB文字列",,F +   "Test"がグラフィック座標(80,20)に18ドット固定ピッチでGB文字列が表示されます。 + + ・GBコードを含むプログラムのテキスト変換に対応しました。 + (※変換対象のGBコードはエディタのGB表示モード設定で変わります。) + ・セットアップにGBコードをそのまま変換無しで出力する設定を追加しました。 + (※変換後のテキストファイルはGBフォント対応エディタであればそのまま表示できます。) + + + ・C.Basic専用で使用するヒープメモリを最大127KBから最小32KBまでセットアップで設定できます。 + (※プログラム実行時や編集時は変更できません。) +  デフォルトは暫定的に96KBとしています。 + + ・リスト一覧画面でリスト表示名がおかしくなる不具合を修正しました。 + ・リストの要素変更を1次元に制限しました。 + ・リストのクリップボード対応をしました。 + ・[F5]からの行列確保が常にDBLになっていた不具合を修正しました。 + + ・?()コマンドの反転オプションでカラー指定が反転ではなく補色になっていた不具合を修正しました。 + ・?()コマンドの反転オプションでカラー指定の無い場合に初期空白キャラクタが表示されない不具合を修正しました。 + ・[F3]と[EXE]で行列確保時のエラー表示が違っていたのを修正しました。 + ・一行目にDispsのみがあるプログラム実行時、ACキー中断ができない不具合を修正しました。 + + ・Dim Dimでの行列再確保書式において任意にアドレスを行列に割り当てることが出来るようにしてみました。 + (書式) {m,n}->Dim Dim Mat A(行列実体アドレス) + (例){128,1}->Dim Mat A.B +    {64,1}->Dim Dim Mat B.W(VarPtr(Mat A)) +   Mat AとMat Bは同じ領域をアクセスしますが、バイトアクセスかワードアクセスというところが違います。 + + ・SysCall(の入力値でエラーが起きた場合にはコマンド実行前にエラーになるようにしました。 + ・Σ(、Seq(コマンド実行で[AC]キーを有効にしました。 + + ・行列を文字列で初期化する場合に2つ目の文字列先頭に空白がある場合に空白が無効になっていた不具合を修正しました。 + + ・System変数でヒープ領域サイズとOSバージョンを取得できるようになりました。 +  System(-3)で確保したヒープ領域サイズ、 +  System(-4)で残りのヒープ領域サイズがKB単位で返ります。 +  System(-2)はOSのバージョンが返ります。 +  System(-1)は機種判定が返ります。 + + ・小文字モードのとき、[F5](CHAR)から大文字を入力しても小文字になってしまう不具合を修正しました。 + + +v0.48α 2018.4.9 アルファ版(インタプリタのみ) + ・アドイン名をバージョンを含めた名前に変更しました。 + (CBASICCG→CBCG048) + + ・ヒープ領域のメモリ管理方法を変更しました。 + (起動時に全ヒープ領域をC.Basic用として確保し、領域前半をプログラムエリア、領域の最後から行列エリアとして分割して使用します。) + ・ファイルモードで[SHIFT]を押した時に現在使用できる空きメモリ量を表示するようにしました。 + + ・32KBを越える所へのGotoの動作が出来なかった不具合を修正しました。 +  併せて64KBを越える所を含むループやジャンプが出来なかった不具合を修正しました。 + (※プログラムの動作に関わるポインタを16ビットから32ビットに拡張しました。) + + ・外部フォントを使用しない設定を追加しました。セットアップもしくはコマンドで設定します。 + (書式)SetFont 0 +  このコマンド以降、外部フォントを使用出来なくなり初期状態にリセットされます。 + (書式)SetFont 1 +  このコマンド以降、外部フォントが使用できるようになります。 + + ・プログラム中断からデバッグモード時にバイナリエディタから[EXIT]で抜けない不具合を修正しました。 + + +v0.47α 2018.4.3 アルファ版(インタプリタのみ) + ・コード0x90のXと大文字Xとを選択できるようにしました。セットアップで設定します。 + + ・Menuコマンド後に画面復帰&更新されてなかった不具合を修正しました。 + + ・コード0x90のXをアルファベット大文字のXと同じ扱いにしました。 + ・ファイル名等入力で不正なキャラクタの入力を受け付けないようにしました。 + ・CG互換のMenuコマンドのリスト表示文字数を修正しました。 + + ・64KB以上のプログラムファイルに対応しました。 + + ・SciとNorm 0表示で値が0の場合に*になっていた不具合を修正しました。 + ・Fix 0の表示非互換性を修正しました。 + + ・System(コマンドの引数(-1)で機種判定値が返ります。 + (書式)System(-1) +  返り値:10 CG10 +  返り値:20 CG20 +  返り値:50 CG50 + + ・BMPファイルのコピーが出来なかった不具合を修正しました。 + + ・PopUpWin(コマンドの画面復帰ができてなかったのを修正しました。 + ・お気に入りリストに入っているプログラムの編集後にファイルサイズが変わらなかった不具合を修正しました。 + ・パスワード入力時にミスマッチになった場合は最初から再入力になるようにしました。 + + ・ステータスラインのちらつきを修正しました。 + ・各種入力時にステータスラインのキーボード入力モードを表示するようにしました。 + + ・fx-5800P準拠入力モードでViewWindow表示が出来なかった不具合を修正しました。 + ・エディタで強制的にALPHAモードになっていた不具合を修正しました。 + ・エディタの置換において、逐次表示無しで全置換するモードを追加しました。 + + ・エディタのオーバーライドモードとインサートモードが機能するようになりました。 + ・エディタのクリップボードでDelキーでの一括削除を有効にしました。 + ・エディタのミニフォントでエスケープキャラクター\(バックスラッシュ)が表示できなかったのと +  \(バックスラッシュ)"となる場合に文字列が終了していた不具合修正しました。 + ・エディタでクリップ中(選択中)に別の文字列の貼り付けができてしまっていたのを修正しました。 + + ・行列とListの最大要素数を32767から2147483647に拡張しました。 + ・DotPut(,DotGet(,DotTrim(,Sprintf(コマンドの中間コードの自動修正を終了しました。 + + ・RGB(コマンドの引数がリストの場合に誤動作していた不具合を修正しました。 + + ・数式のエラー値を返すIsErorr(コマンドを追加しました。 + (書式)IsErorr(数式) +  数式の最初のエラー値を返します。エラーがない場合は0が返ります。 + (例)IsError(12+78) +  エラーが無いので0が返ります。 + (例)IsError(12+78+) +  Syntax Errorのエラー値 1が返ります。 + (例)IsError(12/0) +  Division By Zeroのエラー値 40が返ります。 + + ※エラーに対応する返り値はErrorCode_list.txtにありますが数式評価で返るエラーは以下のとおりです。 + + 1: Syntax ERROR + 2: Math ERROR + 5: Stack ERROR + 6: Memory ERROR + 7: Argument ERROR + 8: Dimension ERROR + 40: Division By Zero + 43: String Too Long + 44: No Matrix array + 55: Illegal Element + 60: Undefined Var + 65: Address Align ERR + + +v0.46α 2018.3.24 アルファ版(インタプリタのみ) + ・?コマンドでの入力エリア拡張とミニフォント入力を追加しました。 +  ステータスラインの0行目とファンクション表示エリアの8行目も入力出来るようになりました。 +  さらに、オプション付きの?(コマンドで@を付けると現在のVRAMの任意の座標値で入力できるようになりました。 + (書式)?([@][x][,y][,width][,"空白キャラクタ"][,入力桁数][,R][,M]) + (例)?(@30,40,5,">",5)A +  現在のVRAMのピクセル座標(X=30,Y=40)の位置でAの値を表示して入力待ちになります。入力範囲と入力桁ともに5桁のみ、空白は">"で埋められます。 + (例)?(@30,40,5,">",5,,M)A +  現在のVRAMのピクセル座標(X=30,Y=40)の位置でAの値をミニフォントで表示して入力待ちになります。空白は">"で埋められます。 +  ミニフォント入力の場合は[@]オプションが必須です。 + + ・エディタの右端のスクロールバー表示を修正しました。 + ・グラフ描画のg3mモード対応しました。 + ・オプション付きの?コマンドで7行目の入力で改行される不具合を修正しました。 + ・Getkey1/2コマンドでCATALOG機能を禁止しました。 + + +v0.45α 2018.3.21 アルファ版(インタプリタのみ) + ・g1m/g3m設定がAutoの場合に新規プログラムがg1mモードになってたのを修正しました。 + ・_Rectangleと_Horizontalで端の描画に不具合があったのを修正しました。 + ・プログラムの実行を中断してエディタに戻ったとき、最大行数が0になることがある不具合を修正しました。 + ・[MENU]でコマンド入力履歴を表示させた後、[AC]で画面が復帰しない不具合を修正しました。 + ・行列のドットエディタ表示時に電源を切ると、カーソルが残る不具合を修正しました。 + ・Peek(,Poke(コマンドでの指定アドレスのミスアラインメントによるエラーをArgument ERRからAlignment ERRに変更しました。 + ・プログラム時間計測スタートのタイミングをプログラム開始直前に調整しました。以前より計測結果がわずか短くなります。 + + ・バージョンを返すVersionシステム変数を追加しました。 + (書式) Version [SHIFT]+[MENU](SETUP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + + ・BackLightコマンドが動作してなかった不具合を修正しました。 + (書式)Backlight 明るさの値 + 明るさの値:0~511 + 0~255:サブレベル +   +256:メインレベル + (書式)+Backlight + 現在のバックライトの明るさの値を読み取ります。 + + ・FkeyMenuコマンドを外部フォント表示に対応し、センタリングして表示するように変更しました。 +  さらに表示位置を1ドット上げるオプション指定を追加しました。 + (書式)FkeyMenu( n,"文字列",U) + (書式)FkeyMenu( n,"文字列",RU) + (例)FkeyMenu( 1,"A",U) +  ファンクションメニュー1の真ん中に"A"を表示します。 + + ・StrSplitコマンドで2バイト文字が含まれていた場合に正常動作しなかった不具合を修正しました。 + + +v0.44α 2018.3.16 アルファ版(インタプリタのみ) + ・フォントが揃っていない場合に外部フォントの読み込みが出来てなかった不具合を修正しました。 + + ・GetFont(,GetFontMini(,コマンドで現在の外部フォント導入状況を取得できるようになりました。 + (書式)GetFont() + (書式)GetFontMini() +  返り値は整数値でbit2が外部カナ 、bit1が外部外字 、bit0が外部ASCIIフォントとなります。 + (例)標準サイズの外部カナフォントのみ導入されている場合。 +  GetFont()は4が返ります。 +  GetFontMini()は0が返ります。 + (例)ミニフォントのASCIIフォントと外字フォントのみ導入されている場合。 +  GetFont()は0が返ります。 +  GetFontMini()は3が返ります。 + + 2018.3.15 ・LocateコマンドとLocateYXコマンドにおいてOrと反転OrオプションVを追加しました。 +  標準フォント描画で、Textコマンドと同じ描画オプションが使えるようになります。 +  通常は外部フォント対応表示なので、強制的に内蔵標準フォント表示指定の[!]オプションを追加しました。 + (書式)Locate [@][!]csrX,csrY,"文字列"or数式 [,N/O/R/V] + (書式)LocateYX [@][!]Y,X,"文字列"or数式 [,N/O/R/V][,フォント縦ドット数] + (書式)Text [@][!]Y,X,"文字列"or数式 [,N/O/R/V][,F/M/MB/FM/FMB/FX/X][,フォント縦ドット数] + (例)Locate 2,3,"Test" + (例)Locate 2,3,"1234",O + "Test"に"1234"が重なって表示されます。 + (例)Text @!20,80,"Test",O +   現在のVRAMの座標(80,20)に内蔵フォントで"Test"が背景に重ねて表示されます。 + + ・エディタのカーソル点滅位置を微調整しました。 + ・Menuコマンドがg1mモードでFX互換動作しない不具合を修正しました。 + ・プログラム終了時に[OPTN]キーを押すとフリーズする不具合を修正しました。 + + ・_Pointコマンドで2ドット以上の大きさを指定した場合、その後、行列表示の枠が太っていた不具合を修正しました。 + ・行列編集時に横の要素数が9以上ある場合に9つ目が表示されていた不具合を修正しました。 + ・すでに確保済みの行列を[F3](DIM)で再確保した場合、ゼロで初期化をしないようにしました。 +  行列の内部構成を自在に変更できますが、確保済み前よりも再確保領域が広がる場合は不定なデータが出現しますので必要に応じて初期化してください。 + + ・Impactフォントの小文字p以降が1ドット下にずれていたのを修正しました。(同梱 @LFONTA1.bmpおよび@MFONTA1.bmp) + + +v0.43α 2018.3.13 アルファ版(インタプリタのみ) + ・キャラクター選択の[F6]のアイコン表示を修正しました。 + + ・テキストコマンドにおいて文字フォントの高さ指定が出来るようになりました。 + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V][,F/M/MB/FM/FMB/FX/X][,フォント縦ドット数] + (例)Text 10,1,"Simple Text",,,16 +  上端から16ドット分のミニフォント表示されます。 +  本来は縦18ドットフォントなので下2ドットは表示されません。 + (例)Text 10,1,"Simple Text",,F,20 +  固定ピッチ(12ドット間隔固定)で上端から20ドット分のミニフォント表示されます。 +  本来は縦18ドットフォントなので下に2ドット分の余白が追加されます。 + + ・キャラクター選択の[F3]のコード(0xE57E)が抜けていたのを修正しました + ・エディタの指数表示を修正しました。 + ・SEARCH、REPL実行時のファンクションメニューの消去ミスを修正しました。 + ・バイナリエディタでの画面消去ミスを修正しました。 + ・キー入力時にカタログ機能を使うと画面が復帰しない不具合を修正しました。 + ・デバッグモードの実行画面表示時に全画面表示できるように修正しました。 + + ・g3m/g1mからテキスト変換時にカナ文字以降(0xFFE0~)を変換ミスしていたのを修正しました。 + + +v0.42α 2018.3.11 アルファ版(インタプリタのみ) + ・キャラクター選択の[F1][F2]の一覧を追加修正しました。 + ・バイナリ編集時にカーソル表示が残る不具合を修正しました。 + ・エディタ最下部とメニューの間を1ライン空けました。 + ・C.BasicのOSでのバージョン表示が正常になりました。 + +  2018.3.10 ・If、While、Doコマンドにおいて条件判定が整数判定になっていたのを修正しました。 + + ・エディタの外部フォント表示で超ミニフォントが表示されなかった不具合を修正しました。 + ・エディタのスタンダードフォント表示で背景色が黒になる場合にカーソルが見えない不具合を修正しました。 + ・エディタの背景色があちこちに残って表示されているのを修正しました。 + ・カタログ機能で[3]キーが効かない不具合を修正しました。 + ・一括コメント化で2行目から選択したにも関わらず1行目もコメント化される不具合を修正しました。 + ・エディタで改行の次の行が改行だけの場合に下移動すると一行飛び越してしまう不具合を修正しました。 + ・バイナリモードでの編集後に保存できない不具合を修正しました。 + + ・行列のエレメントジャンプ[Goto]において飛び先が一つずれていたのを修正しました。 + ・[EXIT]ポップアップから抜ける条件を[EXIT]と[AC]キーに限定しました。 + + ・[AC]無効化状態で、TicksWait実行時に[AC]を押すとコマンドが終了してしまう不具合を修正しました。 + ・高分解能タイマーTicks%がカウントダウンになっていた不具合を修正しました。 + ・フォント選択で[F5]のキャラクタが表示できなかった不具合を修正しました。 + ・RanNorm#コマンドのアイコン表示を間違えていたのを修正しました。 + + ・OS3.00以降の指数表示に対応しました。セットアップとコマンドで指定できます。 +    E: -1.23e99 従来の表示形式です。 + Stdx10: -1.23(x10)99 スタンダードフォントのみ切り替わります。 + Allx10: -1.23(x10)99 すべてのフォントサイズで切り替わります。 + + (書式)'#exp 0 // 従来の表示形式です。 + (書式)'#exp 1 // スタンダードフォントのみ切り替わります。 + (書式)'#exp 2 // すべてのフォントサイズで切り替わります。 + + ・SysCallの引数の数を12まで増やしました。 + (書式)SysCall( システムコール番号 [,引数1][,引数2][,引数3][,引数4][,引数5][,引数6][,引数7][,引数8][,引数9][,引数10][,引数11][,引数12] ) + + + +v0.41α 2018.3.6 アルファ版(インタプリタのみ) + ・エディタで以前の画面が出てくる不具合を修正しました。 + + ・テキストからの変換時にプログレスバーを表示するようにしました。 + +  2018.3.5 ・空白を行頭だけではなく、コマンド間、数式内の空白も許可するようにしました。 + + ・テキストとグラフィックス画面を重ね合わせるScreen.Oコマンドの動作において、 +  LCD画面転送時にVRAMが合成画面となってしまうのを抑制するオプションを追加しました。 + (書式)Screen.OT +  LCD画面転送後にVRAMが変化しないようになります。 + + ・_PixelTest(コマンドにおいて、現在のVRAM以外にもテキストVRAMとグラフィックスVRAMを選択出来るようになりました。 + (例)_PixelTest(10,20,T) +  テキストVRAMの(10,20)のカラー値を読み取ります。 + (例)_PixelTest(10,20,G) +  グラフィックスVRAMの(10,20)のカラー値を読み取ります。 + + ・0x 0bで始まる16進数、2進数表記のテキスト→g1m変換に失敗していたのを修正しました。 + (例)0x1000 +  x1がコマンドのx1に変換されてました。 + + ・エディタの行間の空いたフォントでの反転選択時の隙間を修正しました。 + + ・エディタのミニミニフォントの16行表示を15行表示としました。変更後の表示は以下のとおりです。 +  -標準フォント(18x24ドット)7行表示 固定ピッチ +  -ミニフォント(12x18ドット)9行表示 固定ピッチ +  -ミニフォント(?x18ドット)9行表示 プロポーショナル +  -ミニフォント(12x17ドット)10行表示 固定ピッチ    (※追加) +  -ミニフォント(?x17ドット)10行表示 プロポーショナル (※追加) +  -ミニミニボールド(9x13ドット)13行表示 固定ピッチ    (※追加) +  -ミニミニボールド(?x13ドット)13行表示 プロポーショナル (※追加) +  -ミニミニ標準  (8x13ドット)13行表示 固定ピッチ    (※追加) +  -ミニミニ標準  (?x13ドット)13行表示 プロポーショナル (※追加) +  -ミニミニボールド(9x11ドット)15行表示 固定ピッチ    (※追加)(※修正) +  -ミニミニボールド(?x11ドット)15行表示 プロポーショナル (※追加)(※修正) +  -ミニミニ標準  (8x11ドット)15行表示 固定ピッチ    (※追加)(※修正) +  -ミニミニ標準  (?x11ドット)15行表示 プロポーショナル (※追加)(※修正) +  -超ミニフォント (6x10ドット)17行表示 固定ピッチ    (※追加) +  -超ミニフォント (6x8ドット)21行表示 固定ピッチ    (※追加) + + +v0.40α 2018.3.2 アルファ版(インタプリタのみ) + ・Textコマンドにおいて、ミニミニフォント表示(標準およびボールド)、およびFX版のフォントを使う超ミニフォントをサポートしました。 +  (表示可能なコードはASCIIコード+αとなります。) + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V],M + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V],FM + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V],MB + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V],FMB + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V],X + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V],FX + (例)Text 10,20,"ABC",,M +  (X:20,Y:10)座標よりミニミニフォントで"ABC"と表示します。 + (例)Text 10,20,"ABC",,MB +  (X:20,Y:10)座標よりミニミニボールドフォントで"ABC"と表示します。 + (例)Text 10,20,"ABC",,FM +  (X:20,Y:10)座標より固定ピッチのミニミニフォントで"ABC"と表示します。 + (例)Text 10,20,"ABC",,FMB +  (X:20,Y:10)座標より固定ピッチのミニミニボールドフォントで"ABC"と表示します。 + (例)Text 10,20,"ABC",,X +  (X:20,Y:10)座標より超ミニフォントで"ABC"と表示します。 + + ・エディタにミニミニフォントと超ミニフォント表示を追加しました。 + (エディタで選択できるフォント一覧) +  -標準フォント(18x24ドット)7行表示 固定ピッチ +  -ミニフォント(12x18ドット)9行表示 固定ピッチ +  -ミニフォント(?x18ドット)9行表示 プロポーショナル +  -ミニフォント(12x17ドット)10行表示 固定ピッチ    (※追加) +  -ミニフォント(?x17ドット)10行表示 プロポーショナル (※追加) +  -ミニミニボールド(9x13ドット)13行表示 固定ピッチ    (※追加) +  -ミニミニボールド(?x13ドット)13行表示 プロポーショナル (※追加) +  -ミニミニ標準  (8x13ドット)13行表示 固定ピッチ    (※追加) +  -ミニミニ標準  (?x13ドット)13行表示 プロポーショナル (※追加) +  -ミニミニボールド(9x10ドット)16行表示 固定ピッチ    (※追加) +  -ミニミニボールド(?x10ドット)16行表示 プロポーショナル (※追加) +  -ミニミニ標準  (8x10ドット)16行表示 固定ピッチ    (※追加) +  -ミニミニ標準  (?x10ドット)16行表示 プロポーショナル (※追加) +  -超ミニフォント (6x10ドット)17行表示 固定ピッチ    (※追加) +  -超ミニフォント (6x8ドット)21行表示 固定ピッチ    (※追加) + (※ミニミニフォントにはASCIIコード+αしかないので、不足分は超ミニフォントで穴埋めしてあります。今後足りないフォントを実装する予定です。) + (※フォントの切り替えはセットアップ以外にも暫定仕様として[SHIFT]+[左右カーソルキー]で上記の順に変更できるようになっています。) + + ・エディタの背景色の設定ができるようになり、カーソル移動、スクロール速度が従来比50%アップしました。 +  (この変更により反転表示機能は削除しました。) + + +v0.39α 2018.2.27 アルファ版(インタプリタのみ) + ・エディタでステータスラインに行番号表示するようにしました。 + ・行番号が3桁表示までだったのを4桁に増やしました。(端が欠ける場合があります。) + +  2018.2.25 ・コメントとIfコマンド、Switchコマンドがそれぞれ32個を超えると飛越先に不具合が出ていたのを修正しました。 + + ・[AC]による一時停止からの再開で画面の色が変わってしまう不具合を修正しました。 + + ・デバッグ時にステータス情報が現在の設定になっていなかった不具合を修正しました。 + + ・引数無しのGosubに返り値がある場合に代入に失敗していた不具合を修正しました。 + (例)Gosub A->B +    Disp B +    Stop +    Lbl A +    Return 1 + + +v0.38α 2018.2.21 アルファ版(インタプリタのみ) + ・文字のASCIIコードを取得するStrAsc(コマンドを追加しました。 [Shift]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](StrAsc) + (例)StrAsc("Ascii") +  文字列先頭の'A'のASCII文字コード65(0x41)が返ります。 + + ・StrLen(、StrCmp(、StrSrc(コマンドにおいて閉じ括弧を読み飛ばしすぎていた不具合を修正しました。 + (例)(10-StrLen("ABC"))*2 +  正しい値は(10-3)*2で14になるはずが、閉じ括弧が一つ飛ばされて(10-StrLen("ABC")*2と解釈されて4となっていました。 + + 2018.2.18 ・アンダーバーより始まる拡張変数名やラベル名がテキストからの変換でコマンド名に変換されてしまうのを修正しました。 + + ・外字/カナ文字表示でシステムエラーになることがある不具合を修正しました。 + + ・高分解能1/32768sタイマーが?コマンドと一時停止コマンドでリセットされてなかった不具合を修正しました。 + + +v0.37α 2018.2.10 アルファ版(インタプリタのみ) + ・[AC]キーによるBreakの有効無効をプログラム内で出来るようにしました。 + (例)'#Break0 // [AC]キー無効 + (例)'#Break1 // [AC]キー有効(デフォルト) + +  2018.2.9 ・エディタで[SHIFT]+[6]を押すとRGB(コマンドのカラーコードを入力する機能を追加しました。 + + ・エディタで[SHIFT]+[3]を押すとGetkeyコマンドのキーコードを入力する機能を追加しました。 + +  2018.2.7 ・[F5](CHAR)-[F6] 外部フォント表示の選択で外字とカナに加えてASCII文字を加えました。 + + ・A1,B2形式の短縮形行列アクセスでの行列再確保の不具合を修正しました。 + + ・タイマー変数のTicksと%に高分解能1/32768sタイマーを追加しました。コマンド後に%を付けると分解能が1/32768sになります。 + (例)Ticks% + (例)Ticks%Wait + (例)%% + (例)%%Wait + + ・プログラム実行の時間計測機能で高分解能1/32768sタイマーを選択できるようになりました。(セットアップで設定します。) +  小数点以下4桁まで計測できます。 + + +v0.36α 2018.2.5 アルファ版(インタプリタのみ) + ・g1mモードの外部フォント表示が出来てなかった不具合を修正しました。 + + 2018.2.2 ・外部フォントの読み込みでバッファの開放が出来てなかった不具合を修正しました。 + + ・g1mモードでは標準フォントも従来のfxシリーズの標準フォント(6x8)で表示するように変更しました。 + (セットアップでEdit ExtFontをonにするとg1mモードではエディタの表示も従来フォントに変わります。) + + ・フォントファイルのセーブ/ロードにおいて任意のファイル名が使えるようになりました。 + (書式)BmpLoad @GL"ファイル名" + (書式)BmpLoad @GM"ファイル名" + (書式)BmpLoad @KL"ファイル名" + (書式)BmpLoad @KM"ファイル名" + (書式)BmpLoad @AL"ファイル名" + (書式)BmpLoad @AM"ファイル名" + (例)BmpLoad @GL"MYFONTL" +  MYFONTL.bmpが外字標準フォントとして読み込まれます。 + (例)BmpLoad @GM"MYFONTM" +  MYFONTM.bmpが外字ミニフォントとして読み込まれます。 + + (書式)BmpSave @GL"ファイル名" + (書式)BmpSave @GM"ファイル名" + (書式)BmpSave @KL"ファイル名" + (書式)BmpSave @KM"ファイル名" + (書式)BmpSave @AL"ファイル名" + (書式)BmpSave @AM"ファイル名" + (例)BmpSave @GL"MYFONTL" +  現在の外字標準フォントを"MYFONTL.bmp"としてセーブします。 + (例)BmpSave @GM"MYFONTM" +  現在の外字ミニフォントを"MYFONTM.bmp"としてセーブします。 + + +v0.35α 2018.1.31 アルファ版(インタプリタのみ) + ・変数の定数仕様追加で、Switch~Case~SwitchEndでのCaseの指定は変数でも可になりました。 + + ・変数を定数使用限定にするConstコマンドを追加しました。 [OPTN]-[F3](extd)-[F3](Const) +  代入時にConstを前置すると変数が定数として扱われ以後代入できなくなります。 + (例)123->Const A + (例)123->Const _ABC + (例)456->A +  同じプログラムで変数の値を変更しようとしたらエラーになります。 + + ・文字列分割するStrSplit(コマンドを追加しました。 [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F1](StrSplit) + (書式)StrSplit("文字列","区切り文字"[,開始位置]) +  結果はMatAnsに文字列として返ります。 + (例)StrSplit("123,4567,89",",") +  MatAnsの結果は、["123","4567","89"]となり、個々の要素を読み出すに次のようにアクセスできます。 +  $Ans[1]="123" +  $Ans[1]="4567" +  $Ans[1]="89" + +  2018.1.30 ・アンダーバーより始まる複数英数字名(8文字まで)の変数が使えるようになりました。 +  従来の1文字変数とは独立したエリアに確保される変数ですがプログラム開始時には常に初期化されます。 +  使える変数は26個までとなっています。実数変数と整数変数は別の値を保持できますが同じ名前で確保されます。 +  [SHIFT]+[F1]の変数リストで[F1]を押す度に大文字変数、小文字変数、アンダーバー変数が表示されます。 + (例)'#CBDBL + (例)123.456->_ABC + (例)456->_ABC% + (例)_ABC+_ABC%->_RESULT +  _RESULTの値は579.456となります。 + + ・RowSize(、ColSize(が逆になっていたのを修正しました。 +  (g1mおよびg3mファイルでは修正する必要はありません。テキストファイルで保存している場合は修正する必要があります。) + +  2018.1.28 ・StrSrc(コマンドにおいて、検索開始位置を指定した場合に結果が一つズレていたのを修正しました。 + + +v0.34α 2018.1.26 アルファ版(インタプリタのみ) + ・ファイルリスト表示でステータスラインに現在日時を表示をするようにしました。 + (リアルタイム表示ではなく何かアクションした時の更新になります。) + + ・外字のテキスト変換に失敗していたのを修正しました。 + + ・フォントデータをセーブ、ロードするBmpLoad @/BmpSave @コマンドにおいて +  フォントファイル番号を指定する場合に不具合が出ることがあったのを修正しました。 + +  2018.1.23 ・Prog~Returnにおいて、Returnコマンドでの返り値が無効になる不具合を修正しました。 + + 2018.1.21 ・セットアップの設定がプログラムで変更されないようにする設定を追加しました。 +  SetupRecoverの項目で純正CasioBasic互換設定をプログラム終了後に復帰するかどうかを設定します。 +  影響を受ける設定は純正互換の以下の設定になります。 +   Angle +   DrawType +   Coord +   Grid +   Axes +   Label +   Derivative +  Plot/LineColor +   Sketch Line +  Display Fix/Sci/Norm/Eng + +  これ以外のC.Basicで拡張された設定はプログラムで変更されても実行後に元の設定に復帰します。 + + +v0.33α 2018.1.21 アルファ版(インタプリタのみ) + ・Menuコマンドのタイトル&項目テキスト表示で特殊文字を使うと表示文字数が短くなっていた不具合を修正しました。 + ・付属のIPA版仮名文字フォントを高さを調整しました。 + + 2018.1.20 ・Ticks(%)のタイマー変数への代入で内部時計を変更しないようにしました。 + (例)0->Ticks +  従来は内部時計も00:00:00に初期化されていましたが、C.Basicのタイマー変数だけを0にリセットします。 +  この仕様変更により時計の変更はDATE、TIMEコマンドのみとなります。 + + ・MenuコマンドにFX版互換表示を追加しました。コマンド直後に"@"を付けるとFX版互換表示になります。 + (書式)Menu @"<メニュータイトル>", "<項目1>",<ラベル文字1>,"<項目2>",<ラベル文字2>[,"<項目n>",<ラベル文字n>...] + + ・LblもAlias機能が使えるようになりました。併せてAliasVarのコマンド名称をAliasに改訂いたします。 + (例)Alias A=_ABCD + (例)Alias Mat A=_ABCD + (例)Alias Lbl A=_ABCD + + 2018.1.19 ・Getkey1/2実行中は時間計測を一時停止するように仕様変更しました。 +  セットアップにて計測の一時停止または計測のリセット&リスタートを選択できます。 +  関連コマンドとして + (書式)'#GetkeyC +  デフォルトの計測の一時停止、継続モードです。 + (書式)'#GetkeyR +  Getkey1/2実行後に計時がリセット&リスタートします。 + + ・セットアップでステータスラインが表示されてなかったのを修正しました。 + + ・時計の読み出し/書き込みをSysCallに変更しました。 + + 2018.1.18 ・ML系コマンドに_Paintを追加しました。 [SHIFT][F4](SKETCH)-[F3](ML)-[F6][F6][F6]-F5](_Paint) +   http://fussy.web.fc2.com/algo/algo3-2.htm +   こちらのPaintサンプルプログラムをほぼそっくりそのまま利用させて頂いています。 + (書式)_Paint x,y,Color[,確率/透過率] + (例)_Paint 100,100,1 +  座標(100,100)を始点にして描画色で塗りつぶします。 + (例)_Paint 100,100,0 +  座標(100,100)を始点にして背景色で塗りつぶします。 + + ・ML系コマンドの楕円描画コマンドの_Elips、_FillElipsにおいて回転された楕円の描画をサポートしました。 + (書式)_Elips X, Y, Rwidth, Rheight, Color[,確率/透過率] [,回転角(度)] + (書式)_FillElips X, Y, Rwidth, Rheight, Color[,確率/透過率] [,回転角(度)] + (例)_Elips 100,100,80,40,1,,45 +  座標(100,100)を中心に横罫80ドット、縦径40ドットの楕円を45度傾けて描画します。 + + ・ReadmeCG_J.txt ManualCG_J.txt 同梱しました。 + + +v0.32α 2018.1.16 アルファ版(インタプリタのみ) + ・Sprintf(コマンドのバグを修正しました。 + + ・ML系コマンドの_Bmp表示系コマンドをCGモード対応しました。 +  _Bmp +  _Bmp8 +  _Bmp16 +  _BmpZoom +  _BmpRotate +  _BmpZmRotate + g3mモードではデフォルト16ビットカラー描画ですが、1ビット行列を指定すると1ビットマップの描画になります。 + + 2018.1.15 ・行列エディタで、[OPTN]切り替えでリスト表示の時にAns,,<θ>が表示されなかった不具合を修正しました。 + + ・Str(コマンドの表記をToStr(に変更しました。 +  従来プログラムでStr(を使用していてもg1m/g3m形式の場合は何も修正する必要はありません。 +  テキスト保存されている場合は内部形式に変換時に自動変換されます。 +  再保存の時にはToStr(表記に変わりますので以前のC.Basicでテキスト形式で読み込ませるとエラーになります。 +  プログラムの保存はテキストだけでなくg1m/g3m形式での保存もお勧めします。 + + ・Normコマンドが正常に動作してなかった不具合を修正しました。 + + ・MenuコマンドをCGシリーズの純正互換に変更しました。 +  タイトルの色はMenuコマンド直前の色指定が有効になります。 +  メニュー項目はPlot/Line-Colorの色指定が有効になります。 +  メニュー背景はBack-Colorで指定している色になります。 + + ・BmpLoad(の透過指定がバグっていたのを修正しました。 +  透過率の指定は0~1の範囲の実数値または100%までの整数指定に変更しました。 + (書式)BmpLoad("BMPファイル名"),X,Y,1,透過率(0.0~1.0) + (書式)BmpLoad("BMPファイル名"),X,Y,1,%透過率(%0~%100) +  (X,Y)座標を始点として背景と透過率で合成してロードします。 + (書式)BmpLoad("BMPファイル名"),X,Y,0,透過率 +  (X,Y)座標を始点として背景だけにロードします。 + (例)BmpLoad("TEST"),100,50,1,%50 + (例)BmpLoad("TEST"),100,50,1,0.5 +  (100,50)座標よりTEST.bmpファイルを透過率50%でロードします。 + (例)BmpLoad("TEST"),100,50,0,%25 + (例)BmpLoad("TEST"),100,50,0,0.25 +  (100,50)座標よりTEST.bmpファイルを透過率25%で背景部分だけにロードします。 + + ・ML系コマンドのパラメータのColor指定において透過率指定を追加しました。 +  コマンドの描画色と画面を透過率で合成して表示します。 +  color指定値は5になっています。color指定のあるML系コマンドで使用できます。 + (書式)_Pixel x,y,5,透過率(0.0~1.0) + (書式)_Pixel x,y,5,%透過率(%0~%100) + (例)Red _Pixel x,y,5,%50 + (例)Red _Pixel x,y,5,0.5 +  画面の色と50%赤を合成して描画を行います。 + + +v0.31α 2018.1.13 アルファ版(インタプリタのみ) + ・Textコマンドのカラー指定に不具合があったのを修正しました。 + + ・"'#"をコメント色から外しました。 + + ・IsExist(コマンドでファイルリストを取得できるようになりました。 + (書式)IsExist("*.拡張子")->ファイル数 +  Mat Ans:指定した拡張子のファイルがAns行列に作成されます。 +  リストはアルファベット順にソートされます。 + (例)IsExist("*.bmp")->N +  $Mat Ans[3] +  リストの3番目のファイルを表示します。 +  N:ファイル数が返ります。 + + ・1文字変数を任意の英数字名の別名で使えるようにAliasVarを拡張しました。 +  アンダーバーより始まる変数名が使えます。 +  変数の長さは8文字以内で英数字とアンダーバーが使えます。 +  変数名と行列名は独立して指定できます。 + (例)AliasVar a=_abc_de + (例)AliasVar Mat a=_abcXY + (例)_abc_de+1->_abc_de +  小文字変数aを_abc_de表記で使えます。 +  小文字行列aを_abcXY表記で使えます。 + + ・ListとMatの表記を変更しようとした場合にシステムエラーになっていた不具合を修正しました。 + ・ファイルリストにおいてストレージメモリの残量を表示できるようになりました。 + + +v0.30α 2018.1.10 アルファ版(インタプリタのみ) + ・スタンダード入力モードにおいてStrLwr(コマンドの入力が出来なかった不具合を修正しました。 + ・エディタの選択時のリバース表示を修正しました。 + ・外部フォント導入時に標準サイズフォントにおいてキャラクタコード0x00~0x1Fが表示されなかった不具合を修正しました。 + + ・デフォルトの外部フォントをIPAフォントに変更しました。 +  @LFONTK0 カタカナフォント(標準) +  @MFONTK0 カタカナフォント(ミニ) +  @LFONTK1 ひらがなフォント(標準) +  @MFONTK1 ひらがなフォント(ミニ) +  @LFONTG0 外字サンプルフォント(標準) +  @MFONTG0 外字サンプルフォント(ミニ) + +  2018.1.9 ・ReadGraph(とDotGet(コマンドにおいて、行列の型指定で取得ビット数を1ビットか16ビットかを選択できるようになりました。 + (g1mモードでのデフォルトは1ビット、g3mモードでのデフォルトは16ビットになっています。) + (例)ReadGraph(0,0,15,23)->Mat A + (例)DotGet(0,0,15,23)->Mat A +  (0,0)-(15,23)の領域を16ビットカラーで行列Aに取り込みます。 + (例)ReadGraph(0,0,15,23)->Mat A.P + (例)DotGet(0,0,15,23)->Mat A.P +  (0,0)-(15,23)の領域を1ビットモノクロで行列Aに取り込みます。 + + ・BatteryStatusコマンドを改定しました。 [VAR]-[F3](Extd)-[F6](BatteryStatus) + (書式)BatteryStatus +  左上隅のバッテリアイコンを表示するだけのコマンドです。 +  数式で使用する場合は()で囲む必要がありますが、バッテリアイコンを表示せず現在の電圧x100(V)を返します。 + (書式)(BatteryStatus) +  現在の電圧値x100(V)を整数値で返します。 +  5.01Vの場合は501になります。 + + 2018.1.6 ・Textコマンドの表示位置が純正互換よりも1ドット右下にずれていたのを修正しました。 + ・エディタの置換において、置換文字列の範囲が一文字短くなっていたのを修正しました。 + + 2018.1.5 ・Beepコマンドを追加しました。 [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F5](Beep) + (書式)Beep [周波数][,継続時間(ms)] +  3Pin出力より指定周波数の矩形波を出力します。 + (例) Beep +  1KHzの矩形波を0.5秒間、3Pinより出力します。 + (例) Beep 440,1000 +  440Hzの矩形波を1秒間、3Pinより出力します。 + + +v0.29α 2018.1.4 アルファ版(インタプリタのみ) + ・Getkey1/2/3において、[SHIFT]+[OPTN]を[OPTN]と判定出来るようになりました。 + ・Plot/Line-Color直後のテキスト表示系コマンドが色変更の影響を受けていたのを修正しました。 + ・Menuコマンドにて色指定がコマンド終了後にデフォルト=黒に戻るように修正しました。 + +  2018.1.3 ・フォントデータのセーブが不安定だった不具合を修正しました。 + ・英数字のASCIIキャラクタのフォント差し替えが出来るようになりました。 +  デフォルトでのファイル名は外字同様に、 +  @LFONTA.bmp (ASCII標準フォント) +  @MFONTA.bmp (ASCIIミニフォント) +  となっております。 +  コードで0x20~0x7Eまでの95キャラクタの差し替えが可能です。 +  サンプルフォント(デフォルト、IMPACTを同梱しました。) + + ・フォントデータを読み出すGetFontにおいて、デフォルトの内蔵フォントを読み出す@オプションを追加しました。 + (書式)GetFont(@"フォントキャラ")->Mat A + (書式)GetFontMini(@"フォントキャラ")->Mat A + (例)GetFont(@"A")->Mat A +  内蔵フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。 + + ・エディタのフォントを外部フォントに切り替えられるようにしました。セットアップより変更できます。 + + ・外部フォントの切り替えを行うための、BmpLoad(にFontロードオプションを追加しました。 +  外部フォントがそれ以降使用されます。 + (書式)BmpLoad(@G[フォントファイル番号]) + (書式)BmpLoad(@K[フォントファイル番号]) + (書式)BmpLoad(@A[フォントファイル番号]) +  フォントファイル番号は0~9が指定できます。 + (例)BmpLoad(@A1) +  @LFONTA1.bmp (ASCII標準フォント) +  @MFONTA1.bmp (ASCIIミニフォント) +  のフォントファイルが外部ASCIIフォントとして読み込まれます。 + + ・フォントファイルのセーブにおいて0~9までのオプションを追加しました。 + ・BmpSaveにフォントデータのセーブ機能を追加しました。 + (書式)BmpSave @G[フォントファイル番号] + (書式)BmpSave @K[フォントファイル番号] + (書式)BmpSave @A[フォントファイル番号] + (例)BmpSave @G2 +  @LFONTG2.bmp (外字標準フォント) +  @MFONTG2.bmp (外字ミニフォント) +  現在の外字フォントファイルを外字フォント2としてセーブします。 + + +v0.28α 2017.12.30 アルファ版(インタプリタのみ) + ・RectおよびFillRectがFX版解像度対応のままになっていたのを修正しました。 + + ・行列の初期化において、すでに確保された行列領域を再初期化する場合に0クリアしないようにすることが出来るようになりました。 + (ただし、最初に行列で使用する最大領域を確保しておく必要があります。) + (書式){12,20}->Dim Dim Mat A + (例)[[1,2,3]][4,5,6]]->Mat A +    {2,2}->Dim Dim Mat A +  Mat Aの内容は[[1,2][3,4]]となります。 + + 2017.12.29 ・フォントデータの読み出しと設定を行うGetFont(とSetFontコマンドにフォントコードに加えて文字列でキャラ指定出来るようにしました。 + (書式)GetFont("フォントキャラ")->Mat A + (書式)GetFontMini("フォントキャラ")->Mat A + (例)GetFont("A")->Mat A +  フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。 + (例)GetFontMini("A")->Mat B +  フォント"A"のビットマップデータ(16x24)が1ビット行列Mat B[16,24]に入力されます。 + + (書式)SetFont "フォントキャラ",Mat A + (書式)SetFontMini "フォントキャラ",Mat A + (例)SetFont "@",Mat A +  Mat Aのフォントデータがフォント"@"のデータとして設定されます。 + (例)SetFontMini "@",Mat B +  Mat Bのフォントデータがミニフォント"@"のデータとして設定されます。 + (※指定するフォント"@"は外字またはカナフォントのみ可能です。) + +  2017.12.28 ・BMPファイルのRenameとCopyに対応しました。 + ・ファイルモードでのBMPファイルの表示の不具合を修正しました。 + + ・ReadGraph(、DotGetコマンドにおいて、g3mモードでも1ビットサイズの行列への取り込みが出来なかったのを修正しました。 + (例)ReadGraph(1,1,16,24)->Mat A.P + (例)DotGet(1,1,16,24)->Mat A.P + + ・BmpSaveコマンドにおいて、g3mモードで1ビットサイズの保存が出来るようになりました。 + (例)BmpSave "TEST",Mat A + + 2017.12.27 ・MLコマンドの_Horizontal,_Vertical,_Polygon,_Rectangle,_Elips,_ElipsInRctにおいて、 + 前回MLコマンドのWidth指定が継続していたのを修正しました。 + + 2017.12.26 ・フォントデータの読み出しと設定を行うGetFont(とSetFontコマンドを追加しました + (書式)GetFont("フォントキャラ")->Mat A + (書式)GetFont(フォントコード)->Mat A + (書式)GetFontMini("フォントキャラ")->Mat A + (書式)GetFontMini(フォントコード)->Mat A + (例)GetFont(0x41)->Mat A +  フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。 + (例)GetFontMini(0xFF80)->Mat A +  外字ミニフォントの一番目のビットマップデータ(16x24)が1ビット行列Mat A[16,24]に入力されます。 + + (書式)SetFont フォントコード,Mat A + (書式)SetFontMini フォントコード,Mat A + (例)SetFont 0xFF80,Mat A +  Mat Aのフォントデータが外字フォントの一番目ののデータとして設定されます。 + (例)SetFontMini 0xFF80,Mat A +  Mat Aのフォントデータが外字ミニフォントの一番目のデータとして設定されます。 + + ・BmpSaveにフォントデータのセーブ機能を追加しました。 + (書式)BmpSave @G +  カレントフォルダに外字フォント(標準、ミニ)をセーブします。 +  ファイル名は@LFONTG.bmp (標準) +  ファイル名は@MFONTG.bmp (ミニ) + (書式)BmpSave @K +  カレントフォルダにカナフォント(標準、ミニ)をセーブします。 +  ファイル名は@LFONTK.bmp (標準) +  ファイル名は@MFONTK.bmp (ミニ) + (書式)BmpSave @@G + (書式)BmpSave @@K +  @Fontフォルダにセーブします。 + + ・デフォルトフォントファイルを変更しました。 +  @LFONTG.bmp (外字標準フォント) +  @MFONTG.bmp (外字ミニフォント) +  @LFONTK.bmp (カナ標準フォント) +  @MFONTK.bmp (カナミニフォント) + + ・大文字と小文字のRenameで元のファイルがまた消えてしまう不具合を修正しました。 + + +v0.27α 2017.12.23 アルファ版(インタプリタのみ) + ・フル画面に正式対応しました。 +  副作用として、C.Basic実行時の?コマンド入力時に左上のシフト状態のステータス表示が機能しなくなります。 + + ・GetRGB(コマンドを追加しました。VRAMのカラー値をR、G、Bに分解します。 + (書式)GetRGB(カラーコード) +  結果はListAnsに返ります。 + (例)GetRGB( 65535 ) +  ListAns = { 248,252,248 } + R = ListAns[1] + G = ListAns[2] + B = ListAns[3] + + ・RGB(コマンドにリストを使用することが出来るようになりました。 + (書式)RGB({R,G,B}) + (例)RGB({255,255,0}) + (例){255,255,0}->List 1 +    RGB(List 1) + + ・Renameで元のファイルが残っていた不具合を修正しました。 + ・RenameとCopyで新しいファイルの箇所にカーソル移動が出来てなかった不具合を修正しました。 + + +v0.26α 2017.12.20 アルファ版(インタプリタのみ) + ・BatteryStatusコマンドを追加しました。 [VAR]-[F3](Extd)-[F6](BatteryStatus) + (書式)BatteryStatus +  左上隅のバッテリアイコンを表示します。 +  数式で使用した場合はバッテリアイコンを表示して現在の電圧x100を返します。 + + ・Clip&Paste後にカーソル位置が6行目で固定されていたのを修正しました。 + + ・Str変数の増量が127で限界になっていた不具合を修正しました。 + + ・テキストとグラフィックスVRAMの切り替えでステータスライン部分の転送が足りなかったのを修正しました。 + ・_ClrVramにおいて背景色でクリアされてなかったのを修正しました。 + + ・カナ文字と外字フォントを外部のBMPファイルより導入出来るようになりました。 +  カレントフォルダに次の4つのファイルを置くとフォントが切り替わり、外字が使えるようになります。 +   LFONTK.bmp   18x24ドット カナ文字フォント +   LFONTG.bmp   18x24ドット 外字フォント +   MFONTK.bmp   最大16x18ドット カナ文字ミニフォント +   MFONTG.bmp   最大16x18ドット 外字ミニフォント + +  フォルダを移動する度にそのフォルダにあるフォントファイルを読み込みます。 +  フォントファイルが存在しない場合は、@Fontフォルダに置かれたファイルをデフォルトとして使用します。 +  どこにもフォントファイルが存在しない場合はFX互換の内蔵フォントを使用します。 + +  フォントファイルのフォーマットは1ビットモノクロBMPファイルとなっています。 +  標準サイズのフォントは18x24ドットのフォントが横に16個、縦に5つ並ぶフォントファイルになっています。 +  ミニサイズのフォントはプロポーショナルフォントなので、 +  フォントの1ドット上の1ラインを横幅検出ラインとし、フォント左上隅の1ドット上の1ドットを開始位置とします。 +  横に16文字、縦に2行で32文字の外字が使えます。 + + ・エディタの検索機能において、検索窓に入力後にコマンド入力ファンクションキーが表示され続けていた不具合を修正しました。 + + ・テキストとグラフィックスVRAMの切り替えでステータスライン部分の転送が抜けていたのを修正しました。 + ・_ClrVramコマンドが背景色クリアになってなかったのを修正しました。 + +  2017.12.17 ・エディタのミニフォント表示において固定ピッチ表示を選択できるようになりました。 + + ・Textコマンドにて固定ピッチ表示のオプションを追加しました。 + (書式)Text Y,X,"文字列"or数式 [,N/O/R/V][,F] +  最後にFオプション追加で固定ピッチとなります。 + (例)Text 10,1,"Simple Text",,F +  固定ピッチ(12ドット間隔固定)でミニフォント表示されます。 + + +v0.25α 2017.12.14 アルファ版(インタプリタのみ) + ・外枠を色指定できるようになりました。BackColorコマンドに@オプション追加です。 + (書式)BackColor @外枠色指定 + (例)BackColor @Black + (例)BackColor @RGB(255,128,128) + + ・ML系コマンド使用時にVRAMの全域を操作&表示対象にしました。 +  Y座標はマイナス方向に拡張して(-24)まで使用できます。 +  この変更により、PutDispDDと_DispVramコマンドで転送エリアが異なります。 +  PutDispDD:転送範囲(0,0)-(383,191)  純正仕様です。 +  _DispVram:転送範囲(0,-24)-(383,191) 上部ステータスライン分を含みます。 + + ・PutDispDDと_DispVramコマンドでLCDへの転送ラインを任意選択できる@オプションを追加しました。 + (書式)PutDispDD@ 開始行、終了行 + (書式)_DispVram@ 開始行、終了行 +  行の範囲は最上部(-24)から最下部(191)までとなります。 +  どちらも同様の動作をします。 + (例)PutDispDD@ 0,23 + Locateでの1行目だけを転送します。 + + ・ListとMat@の変数名指定に(を使うことで数式が使えるようになりました。 + (例)List (A+1) + Aが1の場合はList 2を指定したことになります。 + (例)Mat@(A+1) + Aが1の場合はMat 2、つまりMat Bを指定したことになります。 + + ・Renameにおいてファイル名の大文字⇔小文字の変更のみをした場合、ファイルが消えてしまう不具合を修正しました。 + + +v0.24α 2017.12.13 アルファ版(インタプリタのみ) + ・["文字列","文字列","文字列",..]->Mat A 形式の文字列初期化において、 +  スペースが続く場合に誤変換していた不具合を修正しました。 + + ・テキスト画面にグラフィックス画面を重ねて表示することが出来るようになりました。 +  Screenコマンドで設定できます。 + (書式)Screen.O +  テキスト画面で実行するコマンドの背景色がグラフィックス画面になります。 +  つまり、テキスト画面にグラフィックス画面が合成表示されます。 + (書式)Screen.N +  通常モードに戻ります。 + + ・BmpLoadコマンドで直にVRAMにロードする場合、背景だけにロードしたり透過率を設定出来るようになりました。 + (書式)BmpLoad("BMPファイル名"),X,Y,1,透過率(0~255) +  (X,Y)座標を始点として透過率(最大値255)でロードします。 + (書式)BmpLoad("BMPファイル名"),X,Y,0,透過率(0~255) +  (X,Y)座標を始点として背景だけにロードします。 + (例)BmpLoad("TEST"),100,50,1,128 +  (100,50)座標よりTEST.bmpファイルを透過率50%でロードします。 + (例)BmpLoad("TEST"),100,50,0,64 +  (100,50)座標よりTEST.bmpファイルを透過率25%で背景にロードします。 + + +v0.23α 2017.12.12 アルファ版(インタプリタのみ) + ・Clip&Pastで範囲指定された行をコメント化、コメント解除の機能を追加しました。 +  範囲指定した後に[F5][F6]で機能します。 + + ・BmpLoadコマンドで直にVRAMにロード出来るようになりました。 + (例)BmpLoad("TEST"),100,50 +  (100,50)座標よりTEST.bmpファイルをロードします。 +  (添付サンプルプログラムを参照して下さい。) + + ・BmpSaveコマンドで直にVRAMからセーブ出来るようになりました。 + (例)BmpSave "TEST",100,50,200,90 + (100,50)座標より(200,90)座標までの範囲を24ビットフルカラーBMPファイル"TEST.bmp"としてセーブします。 +  指定可能な座標値は(0,0)-(383,191)の範囲です。 +  (フル画面の保存には1分以上かかる場合があります。) + + ・BMPファイルの読み込める最大サイズを256KBまで増量しました。 +  CGシリーズの画面サイズの24ビットフルカラーBMPファイルを読み込めます。 + + ・エディタのミニフォントモードのカーソルの幅を太くしました。 + + ・編集可能なサイズが32KBまでの留まっていたのを修正しました。(最大64KB) + + +v0.22α 2017.12.10 アルファ版(インタプリタのみ) + ・エディタのミニフォントモードのパフォーマンスを向上させました。 + + ・複数行のペーストをした場合にカーソルが飛ぶ不具合を修正しました。 + + ・For~Nextの制御変数のエラーチェックを厳しくしました。 + (実数モードで整数変数を制御変数に使うとエラーになります。) + + ・24ビットフルカラーBmpファイルの読み込みに一部対応しました。 +  まだ、大きなファイルの読み込みは未対応です。約160KB以下のファイル限定です。 +  (添付サンプルプログラムを参照して下さい。) + + ・行列編集モードの行列編集でドット編集の出来るモードをCG対応しました。 +  行列を表示している状態で[OPTN]キーを押すとドットエディタになりますが、 +  カラー値の変更は、直接数値入力しか色変更方法がありません。 + + +v0.21α 2017.12.6 アルファ版(インタプリタのみ) + ・実数表示の指数表示修正しました。 + + +v0.20α 2017.12.5 アルファ版(インタプリタのみ) + ・SDK環境をFX-SDKベースのminiSDK0.9に変更しました。 + ・実数の関数演算がFX版同等になりました。 + ・実数表示の指数対応しました。(ちょっと変ですが後のバージョンで修正します。) + + +v0.11α 2017.12.5 アルファ版(インタプリタのみ) + ・Save、Load(コマンドのファイル名に文字列変数が使えるようになりました。 + ・カナ文字が表示できなくなっていたのを修正しました。 + ・CG20における自動オーバークロック基準を変更しました。 +  Ptune2でPutDispのフレームレートが50fps以下の場合に自動オーバークロックします。 + ・MLコマンドの_Pointコマンドが動作しなかったのを修正しました。 + + +v0.10α 2017.12.3 アルファ版(インタプリタのみ) + ・コピー&ペーストの不具合を修正しました。 + ・Pixelコマンド後に色が変わってしまうのを修正しました。 + ・整数モードにおけるPixelコマンドでは描画範囲外になる時はエラーにならずに描画されないようにしました。 + + +v0.09α 2017.11.29 アルファ版(インタプリタのみ) + ・コピー&ペーストで使うバッファ領域の確保に不具合があったのを修正しました。 + ・コピー&ペーストの選択範囲とカーソル位置がずれていたのを修正しました。 + + ・[EXIT]をキーを離すまで効かないように変更しました。 + + ・PopUpWin(コマンドを拡張しました。関数としての実装に変更になります。数式の中で使えます。 + (書式)PopUpWin( n ) +  従来の仕様です。n行分のポップアップを表示させます。表示のみです。 + + ・exit ポップアップ。 + (書式)PopUpWin(11,"メッセージ1行目"[,"メッセージ2行目"]) +  返り値は常に1です。コマンド終了時に画面が復帰します。 + + ・Yes No ポップアップ。 + (書式)PopUpWin(10,"メッセージ1行目"[,"メッセージ2行目"]) +  返り値が[Yes]:1 [No]:0となります。コマンド終了時に画面が復帰します。 + + ・画面退避のみ ポップアップしません。 + (書式)PopUpWin(0) + ・退避した画面の復帰のみ。 + (書式)PopUpWin(9) +  画面退避バッファはシステムと共通なので、退避後にポップアップが出るとバッファが上書きされ元に戻らなくなりますので注意して下さい。 + + +v0.08α 2017.11.28 アルファ版(インタプリタのみ) + ・Locateコマンドの22桁目が描画される不具合を修正しました。 + ・コメントがあった場合の非互換性を修正しました。 + ・?拡張コマンドの入力文字数制限が機能していなかったのを修正しました。 + ・-Disp-表示とDone表示が通常表示に戻ってしまうのを修正しました。 + ・デバッグモードでテキスト表示が白になる不具合を修正しました。 + + +v0.07α 2017.11.26 アルファ版(インタプリタのみ) + ・CG10/20ではデフォルトクロックで起動した場合には自動的にCG50相当にオーバークロックするようにしました。(58MHz->118MHz) + ・入力時に画面が壊れるのを修正しました。 + ・検索、CHAR選択画面がBack-Colorコマンドに影響されたのを修正しました。 + ・FkeyMenu(にシステム内蔵ファンクションキーを表示できるようにしました。 + (例)FkeyMenu(1,42) +  テキスト画面の一番左側のファンクションメニューエリアに白抜きのEDITが描画されます。 + ・中断再開時の[EXE][F1]キーの入力が継続しないようにしました。 + + +v0.06α 2017.11.25 アルファ版(インタプリタのみ) + ・?拡張コマンドの動作をEXEキー押下で終了するように変更しました。 + ・ファンクションキー表示を修正しました。 + ・エディタ等がBack-Colorコマンドに影響されたのを修正しました。 + + +v0.05α 2017.11.24 アルファ版(インタプリタのみ) + ・CG10/20でのPictファイルの不具合を修正しました。 + ・ファンクションキー表示を修正しました。 + ・セットアップの左右キーで最初と最後に移動するようにしました。 + + ・ポップアップをシンプルに変更しました。 + ・カラー指定でWhiteが使えるようになりました。 + + +v0.04α 2017.11.23 アルファ版(インタプリタのみ) + ・g1mモードとg3mモードの切替をプログラム中で出来ます。 + (書式)'#G1M または'#g1m + (書式)'#G3M または'#g3m + + ・g3mモードの場合にPlotの解像度をデフォルトで1x1ドットに変更できます。 + (書式)'#SketchThin または'#S-L-Thin +  デフォルトに戻すには + (書式)'#SketchNormal または'#S-L-Normal + + ・Plotコマンドの前にSketchThinを付けるとそれ以降のPlotで移動単位および描画が1ドットになります。 +  元に戻すにはSketchNormalをPlotコマンドの前に付けます。 + (書式)SketchThin Plot + (書式)SketchThin PlotOn + + ・1階層までですがサブフォルダ対応しました。 + + +v0.03α 2017.11.21 アルファ版(インタプリタのみ) + ・g3mモードのViewWindowに対応しました。 + + +v0.02α 2017.11.20 アルファ版(インタプリタのみ) + ・CG10/20に対応しました。 + + +v0.01α 2017.11.19 アルファ版(インタプリタのみ) + ・FX版のVer 1.64βのほぼ全機能を引き継ぎます。 + + ・背景色指定設定コマンド、Back-Colorを追加しました。 + (書式)Back-Color カラー + (例)Back-Color Green + + ・任意の色設定コマンド、RGB(コマンドを追加しました。 + (書式)RGB( R ,G, B ) +  値の範囲はそれぞれ0~255までとなります。 +  Red、Green、Blue等の箇所で使えます。 + (例)Plot/LineColor RGB(160,160,0) +  Plot/LineColor Yellowよりちょっと暗いYellowです。 + + +=============================================================================== +FX版 更新履歴 +=============================================================================== +v1.64β 2017.11.19 ベータ版(インタプリタのみ) + ・マルチバイト文字を含むコマンドの表示の最後が欠けていたのを修正しました。 + + ・List->Mat(コマンドのバグを修正しました + + 2017.10.29 ・CATALOGキーが効かなくなる不具合を修正しました。 + + 2017.10.20 ・Ver 1.55β以降で拡張した?コマンドのオプションパラメータに入力桁数を追加しました。 + (書式)?([x][,y][,width][,"空白キャラクタ"][,入力桁数][,R]) +  このオプションを付けると直前のカーソル位置から改行されません。入力プロンプトの"?"も表示されません。 +  各パラメータは省略できます。 + (例)"A="?()->A +  "A="に続いて入力待ちになります。 + (例)"A="?(,,,,,R)->A +  "A="に続いて反転表示で入力待ちになります。 + (例)"A="?(,,8,,,R)->A +  "A="に続いて反転入力待ちになります。入力範囲は8桁分のみです。それを超える入力では横スクロールします。 + (例)?(3,4,5,">",5)A +  X=3,Y=4の位置でAの値を表示して入力待ちになります。入力範囲と入力桁ともに5桁のみ、空白は">"で埋められます。 + (例)?(3,4,5,,5,R)A +  X=3,Y=4の位置でAの値を反転表示して入力待ちになります。入力範囲と入力桁ともに5桁のみです。 + + 2017.10.14 ・エディタのサーチにおいて次の検索をする場合に[EXE]キーが純正非互換動作になっていたのを修正しました。 + ・エディタのSkipで1行が長い場合に止まる不具合を修正しました。 + + 2017.10.9 ・エディタの行番号を画面上の物理的な行ではなく改行までを1行とする論理行に変更しました。 + + ・行列名の指定を数値で出来るように拡張しました。 +  行列のアクセスは純正同様にMat+英1文字以外に、Listと同じく数値で指定できるようになりました。 +  (θ、r、Ansは数値指定できません。) +  Mat A = Mat 1 +  Mat B = Mat 2 +  Mat C = Mat 3 +  Mat Z = Mat 26 +  Mat a = Mat 27 +  Mat z = Mat 52 + +  さらに"@"を付けると行列名を変数で指定することも出来ます。 +  (コマンド入力方式がスタンダードモードでは[OPTN]-[F5]で"@"を入力できます。) +  (例)3->A +   Mat @A (Mat Cと同じです) + +  Listの拡張で行列も同様に最大1040まで拡張されます。(Ver 1.61β以降) + +  この拡張により従来のバージョンでの小文字名の行列はList 1~26ではなくList 27~52に変更になります。 +  Mat A~ZとList 1~26は互いに独立した領域に確保されます。 +  小文字以降の行列はリストと共用するために27以降の行列=小文字行列はリストと同じ領域を使用します。(Ver 1.64β以降) +  53以降の行列は数値のみ指定できます。 + Mat 1 = Mat A ( List 1 と同じではありません。) + Mat 2 = Mat B ( List 2 と同じではありません。) + Mat 3 = Mat C ( List 3 と同じではありません。) + Mat 26 = Mat Z ( List 26 と同じではありません。) + Mat 27 = Mat a ( List 27 と同じです。) + Mat 28 = Mat b ( List 28 と同じです。) + Mat 29 = Mat c ( List 29 と同じです。) + Mat 52 = Mat z ( List 52 と同じです。) + Mat 100 = List 100 + Mat 1000 = List 1000 + +  Mat a[5,1] = Mat 27[5,1] = List 27[5] +  Mat b[5,1] = Mat 28[5,1] = List 28[5] +  Mat c[5,1] = Mat 29[5,1] = List 29[5] +  Mat z[5,1] = Mat 52[5,1] = List 52[5] + +  List 53[5] = Mat 53[5,1] +  List 100[5] = Mat 100[5,1] +  List 1000[5] = Mat 1000[5,1] + +  (例)100->A +   Mat @A (Mat 100、List 100と同じです) + + + ・乱数の初期値を変数で指定できるようになりました。 + (書式)Ran# #初期値 +  (例)Ran# #12345 +  (例)Ran# #A + + ・Monochromeライブラリ系コマンドに拡大縮小と回転処理を同時に加えてビットマップ表示する"_BmpZmRotate"コマンドを追加しました。 + (Planet-CasioよりNinestars氏がMonochromeライブラリに機能追加したプログラムを利用させて頂いています) + (書式)_BmpZmRotate &Mat , x, y, width, height [,横拡大幅] [,縦拡大幅] [,回転角(度)] [,color][,確率] +  (例) _BmpZmRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 +  (例)_BmpZmRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + + ・Monochromeライブラリ系コマンドのスクロールコマンドが範囲指定可能になりました。 + (書式)_Hscroll スクロール量 [,x1,y1,x2,y2] + (書式)_Vscroll スクロール量 [,x1,y1,x2,y2] + (例)_Hscroll 1,32,16,47,95 +  (32,16)-(47,95)のエリア内を右向きにスクロールします。 + (例)_Vscroll -1,5,10,100,40 +  (5,10)-(100,40)のエリア内を上向きにスクロールします。 + + +v1.63β 2017.9.26 ベータ版(インタプリタのみ) + ・サブプログラムがプログラムの最後にある場合の純正非互換性を修正しました。 + ・" "文字列表示の7行目の処理を修正しました。 + + 2017.9.6 ・ファイル名に特殊文字がある場合に表示できない不具合を修正しました。 + (カナ文字は使えません。自動的に"~"に変換されます。) + + 2017.8.20 ・シリアル通信をサポートしました。(純正と同名コマンドですが純正との互換はありません。) + (書式)Send( 変数[,ボーレート]) + (書式)Receive( 変数[,ボーレート]) + (書式)Send38k 変数[,転送バイト数] + (書式)Receive38k 変数[,転送バイト数] + (書式)OpenComport38k[,ボーレート][,転送モード] + (書式)CloseComport38k +  転送できるデータは変数、行列、リストとなります。 +  転送元と転送先でデータの型を合わせる必要があります。 +  Send38k/Receive38kはOpenComport38kにて[転送モード]に0を指定するとバイナリデータの転送になります。 +  [ボーレート値]:0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400(デフォルト), 8=57600, 9=115200 baud +  [転送モード] 0:バイナリ転送モード  1:データ形式自動判別モード(デフォルト) +  Send(とRecv(はコマンド単独で転送出来ますが、Send38k/Receive38kはOpenComport38k/CloseComport38kが必要です。 + + (例)Send(A) + (例)Receive(A) + (例)Send(Mat A) + (例)Receive(Mat A) + + (例)OpenComport38k,9,0 +    Send38k List 1 +    CloseComport38k + (例)OpenComport38k,9,0 +    Receive38k List 1 +    CloseComport38k + + ・Ver 1.60βより試験的実装していたエディタの行番号表示の不具合を修正しました。 + + +v1.62β 2017.8.14 ベータ版(インタプリタのみ) + ・セットアップ画面での日付時刻表示が関係ないところに表示されることのある不具合を修正しました。 + + ・プログラム実行中の中断でエディタに戻らずにファイルリストに戻る設定を加えました。 +  セットアップから設定出来ます。 + + ・コマンド入力時ににコマンド使用履歴が表示できるようになりました。 +  [MENU]キーを押すと過去32個分のコマンドが表示されます。 +  さらにカーソル[←][→]を押すと使用頻度の高い順に並び替えて表示されます。 + + ・行列編集でドット編集の出来るモードを追加しました。 +  行列を表示している状態で[OPTN]キーを押すとドットエディタになります。 +  行列の各要素の値が0の場合とそれ以外でドットの白黒が決まります。 + + ・行列のデータをクリップボードにコピー&ペーストが可能になりました。 +  行列編集モード時に[SHIFT]+[8](CLIP)でコピー、[SHIFT]+[9]でペースト出来ます。 +  (C.Basic)形式なのでエディタにて行列データをペースト出来ます。 + + ・BMP形式の読み書きに対応しました。(1ビット、モノクロのみ) + (例)BmpSave "TEST",Mat A +  行列AのデータをBMP形式で"TEST.bmp"に保存します。 + (例)BmpLoad("TEST")->Mat A +  "TEST.bmp"のデータを行列Aに読み込みます。 + + ・DrawMatコマンドを追加しました。(従来のDotPutコマンドのMLコマンド仕様です。) + (書式)DrawMat Mat A[px,py], x, y, width, height [,横拡大幅][,縦拡大幅][,color][,確率] + (例) DrawMat Mat A, 0, 0, 128, 64 + (例) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250, 4, %50 + + ・Captureファイルをサポートしました。ストレージメモリ上への読み書きが出来ます。最大99までのファイルが利用できます。 + (例)StoCapt 20 + (例)RclCapt 20 + + ・Pictファイルのファイルサイズを2KBから1KBに半減しました。 + + ・StrRepl(コマンドを追加しました。 + (書式)StrRepl(文字列, 検索文字列, 置換文字列 [,検索開始位置]) + (例)StrRepl("Hello World","World","Earth") -> "Hello Earth" + (例)StrRepl("abcabc","ab","ff",3) = "abcffc" + (例)StrRepl("abcabc","ab","ff") = "ffcffc" + + ・Matエディタで任意の行列を選択する場合、Baseが0の場合、0が選択できない不具合を修正しました。 + + ・割り込み動作時に[MENU]キーでOSに戻ることを無効にしました。(カーソル点滅時等) + + +v1.61β 2017.8.2 ベータ版(インタプリタのみ) + ・隠しRAM使用時に99までのPictファイルと1040までのListを使うことが出来ます。セットアップで指定します。 + ・ListとMatの一文字短縮表示が出来るようになりました。セットアップでLとMの反転文字とボールド体が選択できます。 + + ・Monochromeライブラリ系コマンドの"_Circle"コマンドに角度指定と頂点指定を追加しました。 + (書式)_Circle x,y,半径,color[,確率][,幅][,角度初期値][,角度終了値][,頂点数] + (例) _Circle 64,32,20,4,0.5,3 + 3x3ドットで50%の確率で円を描画します。 + (例) _Circle 64,32,20,1,,3,0,90 + 3x3ドットで下端より左回りに90度分の円弧を描画します + (例)_Circle 64,32,20,1,,,0,360,5 + 五角形を描画します。 + (例) _Circle 64,32,20,1,,,20,380,5 + 頂点の位置を20度ずらした五角形を描画します。 + + ・Monochromeライブラリ系コマンドに図形の内部の黒ドット数をカウントする"_Test"コマンドオプションを追加しました。 +  (サポートコマンド) _Point _Line _Rectangle _Circle _Polygon +  サポートコマンドの前に"_Test"を付けると機能します。 + (例)_Test_Rectangle 0,0,127,63 +  (0,0)-(127,63)エリアにおける黒ドットの数を返します。 + (例)_Test_Circle 62,32,20 + (例)_Test_Point 10,10,5 + (例)_Test_Line 10,10,100,30 + + ・Monochromeライブラリ系コマンドに拡大縮小、回転処理を加えてビットマップ表示する"_BmpZoom"と"_BmpRotate"コマンドを追加しました。 + (Planet-CasioよりNinestars氏がMonochromeライブラリに機能追加したプログラムを利用させて頂いています) + (書式) _BmpZoom &Mat , x, y, width, height [,横拡大幅] [,縦拡大幅] [,color][,確率] + (書式)_BmpRotate &Mat , x, y, width, height, 回転角(度) [,color][,確率] + (例)_BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 + (例)_BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 + (例)_BmpRotate &Mat A, 0, 0, 20, 10, 45 + + ・Getkeyコマンドに複数キー同時読み込みの"M"オプションを追加しました。結果はリスト形式で返ります。 + (例)GetkeyM->List 1 + [EXE]と[F1]を同時押しした場合、 {79,31}が返ります。 + + ・リスト同士の比較コマンド"ListCmp("を追加しました。 +  リストとリスト、リストと値の比較ができます。 + (例)ListCmp({1,2,3},{1,2,3}) +  1が返ります。 + (例) ListCmp({1,2,3},{1,3}) +  0が返ります。 + (例) ListCmp({1,2,3},{1,3,2}) +  0が返ります。 + (例) ListCmp({1,2,3},2) +  1が返ります。 + (例) ListCmp({1,2,3},4) +  0が返ります。 + + ・リストを並べ替えるSortA(,SortD(コマンドが数式の中でも使えるようになりました。 + + +v1.60β 2017.7.26 ベータ版(インタプリタのみ) + ・任意の進数変換コマンドとしてStrBase( コマンドを追加しました。 + (書式) StrBase( N進数文字列, 変換前の進数N, 変換後の進数M) + 進数の範囲は2~64です。 +    使用キャラクタは{ 0-9 A-Z a-z θ π} + N進数の文字列からM進数の文字列に変換します。 + (例) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + ・"Graph Y=" で コマンド前のラインスタイルが設定できなかったバグを修正しました。 + ・_PixelTest( が行頭にあった場合に動作しなかったバグを修正しました。 + + ・Monochromeライブラリ系コマンドの描画色に2x2ドット柄を追加しました。 +  Colorの値:10 11   12   13   14 (1ドット描画) +  Colorの値:20   21   22   23   24 (2x2ドット描画) +       □□  ■□  ■□  ■■  ■■ +       □□ □□ □■ ■□ ■■ + (例)_FillCircle 64,32,30,21 + + ・Monochromeライブラリ系コマンドの描画色にランダムカラーを追加しました。 +  Colorの値に4を指定した場合、Colorに続くパラメータは黒ドットとなる確率(0~1)を指定できます。 + (例) _Rectangle 0,0,127,63,0,0,4,0.5 +  画面全体が半分の確率でランダムに黒ドットで埋まります。 + (例) _Rectangle 0,0,127,63,0,0,4,0.1 +  画面全体が10%の確率でランダムに黒ドットで埋まります。 + (例)_FillCircle 64,32,30,4,0.5 +  円の内側が50%の確率で黒ドットで埋められます。 + (例) _FillCircle #0,0,3,4,0.5 +  円の内側が半分の確率でランダムに黒ドットで埋まります。 + + ・Monochromeライブラリ系コマンドの"_Line"コマンドにおいて線の太さ指定を追加しました。 + (書式)_Line x1,y1,x2,y2,color[,確率][,幅] + (例)_Line 0,0,127,63,1,,10 +  画面を斜めに10ドットの太さの直線が描かれます。 + + +v1.59β 2017.7.19 ベータ版(インタプリタのみ) + ・エディタの検索に置換機能を追加しました。検索入力時に[F2]を押すと置換文字列入力が出来ます。 +  置換には確認しながら置換[F2]と一気に置換するモード[F4]があります。 + ・フォルダ上にカーソルがある状態から新規ファイルを作成することが出来るようになりました。 + ・クリップ選択から検索に文字列が入力できなくなっていた不具合を修正しました。 + ・StrInv(が上手く動作しなかったバグを修正しました。 + + +v1.58β 2017.7.15 ベータ版(インタプリタのみ) + ・ミニフォント表示のエディタが使えるようになりました。 + ・実行中断時にデバッグモードにならない設定を追加しました。 + ・ファイルモードの[DEL]でフォルダの削除も出来るようになりました。 + ・新規ファイルでDELキーを連続した場合にWで埋められファイル異常になるバグを修正しました。 + ・Progコマンドにおいてサブフォルダのファイルの読み込みが出来なくなっていたバグを修正しました。(Ver 1.00ベータ5でエンバグ) + + +v1.57β 2017.7.8 ベータ版(インタプリタのみ) + ・エディタ画面の最上部一行をエディタとして使う設定を加えました。Setupから設定します。 + ・カット&ペースト画面で削除だけをするボタンを追加しました。 + ・エディタ終了時の強制自動保存に対応しました。Setupで設定します。 + ・If~Then~IfEndにおいてThenが無くてもエラーにしないようにしました。 + + ・Screenコマンドに画面全体を反転するRオプションを追加しました。"Screen"+"R" + (例)ScreenR + + ・論理座標系から物理座標を求めるScreenコマンドの"#"オプションを追加しました。 +  結果はListAnsに返ります。 + (使い方) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + (例)Screen#1,1,-6.3,6.3,-3.1,3.1 +   ListAns{74,22} + ・物理座標系から論理座標を求めるScreenコマンドの"%"オプションを追加しました。 +  結果はListAnsに返ります。 + (使い方) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + (例)Screen%74,22,-6.3,6.3,-3.1,3.1 +   ListAns{1,1} + + ・Monochromeライブラリ系のコマンドを論理座標で使うことのできる"#"オプションを追加しました。 + support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + + (例) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2.1 + + ・繰り返し文字列を返すStrChar(コマンドを追加しました。 + (例)StrChar("ABC",5) +  文字列"ABCABCABCABCABC"が得られます。 + + ・文字列を真ん中に埋め込むStrCenter(を追加しました。 + (使い方)StrCenter("文字列",長さ[,"周辺を埋めるキャラクタ"]) + (例) StrCenter("Test",8) +  文字列、" Test "が得られます。 + (例) StrCenter("Test",8,"*") +  文字列、"**Test**"が得られます。 + + ・16進数と2進数の文字列に変換するHex(とBin(コマンドを追加しました。 + (例)Hex(12345)->Str 1 +  "3039"がStr 1に入ります。 +  数値に戻すは、 + (例) Exp("0X"+Str 1)->A + +  2進数では、 + (例)Bin(12345)->Str 1 +  "11000000111001"がStr 1に入ります。 + (例)Exp("0B"+Str 1)->A + + ・リストが1~52まで使えるようになりました。 + + ・ファイルモードでフォルダ作成[MK.F]キーを追加しました。 +  [RN.F]は将来的な実装となります。 + + +v1.56β 2017.6.30 ベータ版(インタプリタのみ) + ・LCD描画のリフレッシュコントロールにおいて、RefrshTime値に0を指定することで画面更新しなくなる設定を追加しました。 +  セットアップ、およびコマンドで指定可能です。 + (例)RefrshCtrl 2 +    RefrshTime 0 +  テキスト、グラフィックス全ての描画コマンドでコマンド実行直後での画面が更新されなくなります。 + + ・1/128秒単位で時間待ちをするTicksWaitコマンドを追加しました。 +  (TicksとWaitコマンドの連続合わせ技です。関連してコマンド入力キーアサインを一部変更しました。) + (例)TicksWait 128 +  1秒間待ちます。 + (例)TicksWait -128 +  前回のTicksWaitコマンド実行時より1秒間待ちます。すでに1秒を越えていた場合は待ち時間無しで次の処理に移ります。 + (例)TicksWait -4 +  前回のTicksWaitコマンド実行時より4/128秒待ちます。ループ内にこのコマンドを一つ記述するだけで毎秒32回のループが作れます。 + + +v1.55β 2017.6.11 ベータ版(インタプリタのみ) + ・?コマンドにオプションパラメータを追加しました。 +  このオプションを付けると直前のカーソル位置から改行されません。入力プロンプトの"?"も表示されません。 + (書式)?([x][,y][,width][,"空白キャラクタ"][,R]) +  各パラメータは省略できます。 + (例)"A="?()->A +  "A="に続いて入力待ちになります。 + (例)"A="?(,,,,R)->A +  "A="に続いて反転表示で入力待ちになります。 + (例)"A="?(,,8,,R)->A +  "A="に続いて反転入力待ちになります。入力範囲は8桁分のみです。それを超える入力では横スクロールします。 + (例)?(3,4,5,">")A +  X=3,Y=4の位置でAの値を表示して入力待ちになります。入力範囲は5桁分のみ、空白は">"で埋められます。 + (例)?(3,4,5,,R)A +  X=3,Y=4の位置でAの値を反転表示して入力待ちになります。入力範囲は5桁分のみ、それを超える入力では横スクロールします。 + + ・AxesOnにおいてグラフの目盛りが描画されないことがある不具合を修正しました。 + + +v1.54β 2017.6.3 ベータ版(インタプリタのみ) + ・実数時の行列の乗算が整数演算になっていたバグを修正しました。 + ・Plotコマンド2つとLineコマンドでライン描画されなかった不具合を修正しました。 + ・PictファイルをHeap(隠しRAM)エリアで使用する場合、保存時にストレージメモリに保存する設定(セットアップ)とコマンドオプションを追加しました。 + (例)Pict #20 +  ヒープ(隠しRAM)領域とストレージメモリに同時に保存します。 + ・PictファイルをHeap(隠しRAM)エリアで使用する場合、保存時にストレージメモリに同時に保存する設定を追加しました。 + ・テキストから変換時にプログレスバーを表示するようにしました。 + + +v1.53β 2017.5.27 ベータ版(インタプリタのみ) + ・StrRight(コマンドのバグを修正しました。 + (例)StrRight("12345",0) +  この結果はヌルストリングになるはずが"5"になっていました。 + + ・List演算時にcos^-1がcosになっていたバグを修正しました。 + ・Graph Y=コマンドでYn変数が使えなかった不具合を修正しました。 + (例)"sin X"->Y1 +    Graph Y=Y1 + ・文字列内にエスケープ文字でクォーテーションマークが使用されている場合、テキスト変換がおかしくなる不具合を修正しました。 + (これはfx-CG10/20でもおかしくなるようです。) + + ・Lblコマンドでラベル名に英小文字が使用できるようになりました。 + + + +v1.52β 2017.5.16 ベータ版(インタプリタのみ) + ・LocateやTextコマンドにおいて" "ダブルクォーテーションが閉じていない場合、以降のプログラムが文字列扱いになってしまう不具合を修正しました。 + ・RanNorm#(とRanBin#(関数を追加しました。 + + +v1.51β 2017.5.11 ベータ版(インタプリタのみ) + ・ファンクションキーのアイコンをシステムのアイコンに変更しました。 + ・GCD(とLCM(関数を追加しました。 + + +v1.5β 2017.5.7 ベータ版(インタプリタのみ) + ・純正同様のコマンド入力をサポートしました。セットアップにてC.Basic(fx-5800P)方式とStandard(fx-9860G)方式を選択できます。 +  入力可能なコマンドはCommand_List.txtを参照して下さい。 + + ・行列コマンドとして*Row,*Row+,Row+コマンドをサポートしました。 + + +v1.42β 2017.4.30 ベータ版(インタプリタのみ) + ・Lbl名にとθが使えなかったのを修正しました。 + ・メインとサブプログラムで同じLbl名を使っていた場合、飛び先が不正になる不具合を修正しました。 + ・?->Aコマンドで未入力で[EXE]を押した場合にフリーズすることがあったのを修正しました。 + ・Listを含む演算でスカラーが後に来る場合のバグを修正しました。 + (例)List 1 + 5 -> List 2 + + +v1.41β 2017.4.22 ベータ版(インタプリタのみ) + ・隠しRAM使用時に、Mat行列&ListをC.Basic起動時に初期化しない設定を加えました。(要セットアップ設定) +  その場合、C.Basicを終了して他の機能、アドインを使用後、再度C.Basicを起動した場合に前回終了時点でのMat行列&Listが復活します。 +  (他のアドインが隠しRAMを使用していない場合) + + ・MENUコマンドにおいて数字キーによる入力が出来なかったのを修正しました。 + + +v1.4β 2017.4.16 ベータ版(インタプリタのみ) + ・純正仕様の行列の乗算をサポートしました。 +  Mat行列を配列とみなしたMat配列同士の乗算は、小文字Mat行列を使うことでList同士の乗算にすることで可能です。(Listは実体が小文字Matと同じため) + (例)Mat a × Mat b +  行列乗算 + (例)List 1 × List 2 +  配列乗算 + + +v1.31β 2017.4.15 ベータ版(インタプリタのみ) + ・Listの要素を一つずつ増やしていく再確保仕様を純正互換に修正しました。 + + ・整数モードにおけるビット演算の[ not ]が論理演算の[ Not ]のままだったのを修正しました。 + + ・Stopコマンドでプログラム終了時にDone表示が出なかったことのを修正しました。 + + +v1.3β 2017.4.10 ベータ版(インタプリタのみ) + ・ And , Or , Xor が論理演算ではなくビット演算になっていたために純正非互換だったのを修正しました。 +  この変更でビット演算が出来なくなったので、ビット演算子として純正のBASEモードで使う[ and , or , xor, not ]を追加しました。 + + ・"文字列"が横幅ちょうど21文字で終わった場合に(余分に?)改行されてなかった非互換性を修正しました。 + + ・Menuコマンド実行中に[MENU]キーでメインメニューに戻ってしまう非互換性を修正しました。 + + ・StrMid(コマンドにおいて、3つめのパラメータを省略した場合にシステムエラーになる不具合を修正しました。 + + +v1.2β 2017.3.17 ベータ版(インタプリタのみ) + ・リストの四則演算の延長で配列(行列)の演算が一部可能になりました。 +  純正行列と互換のあるのは行列同士の加減算、および行列とスカラー演算のみとなります。 + (例)Mat A + Mat B + (例)Mat A * B + Int Mat C + + ・BG-None、BG-Pictコマンドの互換性を改善しました。 + + ・テキストソースからの変換においてExp(-)の変換ミスを修正しました。 + (誤)Exp(-)9 -> Exp(-)9 + (正)Exp(-)9 -> e-9 + + ・Getkey1,Getkey2コマンドで[MENU]キーでメインメニューに戻ってしまっていたのを純正Getkeyと同じく戻らないようにしました。 + + +v1.1β 2017.3.11 ベータ2版(インタプリタのみ) + ・整数モードのリスト機能に対応しました。 + + ・Mat行列表示時に[OPTN]キーでリスト表示に変わります。[VARS]キーで文字列表示&入力が出来るようになりました。 + + ・'#CBINT、'#CBDBLがプログラム中で複数使われた場合に機能しない不具合を修正しました。 + + ・"Char"が含まれる文字列のテキスト変換ミスを修正しました。 + + ・Pictをヒープ領域に設定している時に、カレントディレクトリもしくはPictフォルダに同じNoのPict画像ファイルが存在する場合は自動的に読み込むようにしました。 +  PictをS.Mem領域に設定している場合にはカレントドライブのPictフォルダしかアクセスしません。 + (例)Pict10.g1mファイルがカレントディレクトリもしくはPictフォルダに存在すれば、Pict10を最初にアクセスした時にその画像がヒープのPict領域に自動的に読み込まれます。 +    存在しない場合はメモリエラーとなります。 +               画像が存在した場合は、次回のPict10アクセスからはヒープアクセスのみとなります。 + + ・ファイルリスト画面にてPictファイルで[EXE]を押すと画像の確認ができます。 + + ・For~Nextコマンドにおいて初期値が終値を超えている場合にループ内を通過してしまう非互換性を修正しました。 + + + 2017.3.5 ベータ1版(インタプリタのみ) + ・リスト機能をサポートしました。 + ・サポートコマンド +  List Ans +  {1,2,3,4,5}->List 1 +  10->Dim List 1 +  Dim List 1 +  Seq( X^2, X, 1, 10, 2 )->List 2 +  Augment(List1,List2)->List3 +  Mat>List( Mat A, 2) -> List 1 +  List>Mat( List 1, List 2,..) -> List 9 +  Fill(3,List1) +  Min(List1) +  Max(List1) +  Mean(List 1) +  SortA(List1) +  SortB(List1) +  Sum List1 +  Prod List1 +  Sigma(数式、制御変数、初期値、終値、刻み) + + ・リストを含む演算(四則演算と関数演算)をサポートしています。 +  サポート済 A + List 1[B-1] * List 2[C+1] +  サポート済 A + List 1 + A - B * cos C * List 2 +  サポート済 sin List 1 + cos List 2 * log List 3 + + ・DrawStatコマンドとGraph(X,Y)=(コマンドを一部サポートしました。 +  関連コマンドとして、 +  BG-None、BG-Pict、G-Connect、G-Plot +  S-Gph1、S-Gph2、S-Gph3、DrawOn、DrawOff、Scatter、xyLine、Square、Cross、Dot +  コマンドの追加と、 +  TθMin +  TθMax +  TθPtch +  これらのViewWindow設定変数の読み書きに対応しました。 + + ・ファイルのDeleteコマンド追加しました。 + (例)Delete "TEST.txt" +  "TEST.txt"を削除します。 + (例)Delete "TEST.txt",1 +  削除前に確認します。 + + ・デバッグモード時に、[F1] (JUMP) ジャンプサブメニュー[F6]スキップダウンが動作しなかったのを修正しました。 + + ・For~Nextコマンドにおいて制御変数の終値が超過していたのを修正しました。 + + ・Ansの値が常に式の結果になっていたところを(→)代入がある場合はAnsを更新しない純正仕様に合わせました。 + + ・行頭のスペースにおいて、If~ThenコマンドのThenの前がスペースの場合にエラーになる不具合を修正しました。 + + ・一行内にループ構造があるとで[AC]ブレークが効かない不具合を修正しました。 + (例)While Getkey≠31:WhileEnd + + ・サブプログラム内でStopコマンドで終了しない不具合を修正しました。 + + ・文字列変数に使われるデフォルト行列をs(小文字)から追加変数ののに変更しました。 + + ・全体の実行速度を遅くするウエイト機能を追加しました。セットアップおよびWaitコマンドで設定します。 +  セットアップで設定した場合は全部のプログラムが影響を受けます。 +  個々のプログラムで調整したい場合はWaitコマンドを使用します。 +  (例)Wait 100 +   ウエイト値に100を設定します。 +   SH3機でもSH4機でも同じ程度の速度低下となっています。 +   ウエイト値、10で約1/2,100前後で速度1/10になります。(速度低下の程度はプログラムによって異なります。) + + +v1.00β 2017.2.3 ベータ7版(インタプリタのみ) + ・既定の変数を違う変数名でもアクセスできるようにしました。 +  AliasVarコマンドを追加しました。 +  このコマンドを使うことで最大10個までエイリアス変数を利用できます。 +  置き換え使用可能な変数名は[CHAR]で選択できる一文字キャラクターのみです。 +  変数名、行列名ともに同時に変更されます。 +  同一変数に違う変数名を割り当てた場合は、後に実行されたAliasVarコマンドの変数名が有効になります。 + (例)AliasVar A=α +    α+100→α +  AliasVarコマンド実行後は、変数Aをαとして使用できます。 +  αの実体はAなので +  A+100→Aと同じです。 + + 2017.2.1 ベータ6版(インタプリタのみ) + ・変数名としてとθを追加サポートしました。グローバル変数だけでなく、ローカル変数としても使えます。 +  さらに行列名としても追加しているので、θ1、θ5等の数字添字型変数(Mat行列の省略形)も使えます。 + ・数式における分数表記(ラインモード)を追加しました。 + + 2017.1.29 ベータ5a版(インタプリタのみ) + ・SD版においてファイルリスト画面の移動が遅くなる不具合に対処しました。 + + 2017.1.28 ベータ5版(インタプリタのみ) + ・テキストファイルから実行/編集した場合は、テキストファイルのみ変更されるように仕様変更しました。 +  その場合、Casio Basic標準ファイル形式(g1m)を同時に保存するかどうかの設定をセットアップより選択できます。 + + ・上記の仕様変更によりサブプログラムも含めすべてテキストファイルだけでのC.Basic運用が出来るようになりました。 + + 2017.1.26 ベータ4版(インタプリタのみ) + ・テキストファイルのコピー及びリネームの不具合を修正しました。 + + ・" "ダブルクォーテーションに囲まれた文字列が複数行に渡る場合に、特殊文字が規定通りにテキスト変換できない不具合を修正しました。 + + ・Casio Basic仕様の描画系コマンドにおいて、コマンド名の直後に"@"アットマークを付けると描画モードがテキストモードやグラフィックモードに関わらず現在のVRAMに描画するようにしました。 + (例)Locate 2,2,"String" +    Text @16,1,"TextString" +  Textコマンドは現在のVRAM=テキストVRAMに描画します。 + + ・FkeyMenu(、ReadGraph(、WriteGraphコマンドの描画対象を現在のVRAMに変更しました。 + + ・Getkeyコマンドで、[3]キーを押したまま[1]キーを押すと[1]になってしまう非互換性を修正しました。 + + ・キースキャンコマンドとしてKeyRow(コマンドを追加しました。 + +     返り値対応ビット(2進数) +     bit6 bit5 bit4 bit3 bit2 bit1 +   Row--------------------------------------Row +   09  F1 F2 F3 F4 F5 F6 09 +   08  SHIFT OPTN VARS MENU ← ↑ 08 +   07  ALPHA ^2 ^ EXIT ↓ → 07 +   06  XTT log ln sin cos tan 06 +   05  ab/c F<>D ( ) , → 05 +   04  7 8 9 DEL 04 +   03  4 5 6 x div 03 +   02  1 2 3 + - 02 +   01  0 . EXP (-) EXE 01 +   Row--------------------------------------Row + + (例)KeyRow(9) +   F4とF6を同時に押した場合は、bit3とbit1が1になり、返り値としては +   2^3 + 2^1 = 10 が返ります。 + + ・Menuコマンド(純正互換)を追加サポートしました。 + + +v1.00β 2017.1.25 ベータ3版(インタプリタのみ) + ・StrLeft(コマンドが使えなくなっていた不具合を修正しました。 + ・ScreenG→Screen.G マニュアル&サンプルプログラムの間違いを修正しました。 + + 2017.1.21 ・4GB以上のSD使用時に空容量表示がおかしかったのを修正しました。 + + 2017.1.20 ・SD版において、実行/編集対象ファイルをSD上で使えるようになりました。 +  セットアップより指定して下さい。(SD版のみSD指定可) + + 2017.1.19 ・Textコマンドで描画されるフォントの上端1ドットラインが描画されてしまう非互換性を修正しました。 + (SDKのPrintMini表示仕様になっていました。) + + 2017.1.18 ・_Verticalのバグを修正しました。 + ・OS2.09において最初のプログラム実行時にシステムエラーが出ることがあったのを修正しました。 + + 2017.1.17 ・小文字の行列の省略形(a[1]、a2等)が使えなかったのを修正しました。 + + ・文字列変数のStrにおいて、インデックス開始値が0の場合にはStr 0が使えるようになりました。 + (例)'#Mat 0 +    "String"→Str 0 + + ・行列のインデックス開始値を返す"MatBase("関数を追加しました。 + (例)'#Mat 0 +    10→Mat A +    MatBase( Mat A ) + 0が返ります。 + + ・"ElemSize("、"RowSize("、"ColSize(" コマンドがテキスト変換できなかった不具合を修正しました。 + + ・"DotPut("および、"Sprintf("コマンドが純正コマンドと重複していたので中間コード変更しました。 + DotPut( = DotP : 0xF94B -> 0xF74B + Sprintf( = Vct : 0xF73E -> 0xF743 + +  今回のバージョンでは、ソースを読み込んだ時点で自動的にコード変更されるので以前のバージョンで作成したソースはそのまま実行、編集できます。 +  "DotTrim(" および"DotGet("も自動変更に対応します。 + + ・fx-9860Gシリーズの超高速グラフィックスライブラリのMonochromeLibをサポートしました。 +  https://wiki.planet-casio.com/fr/MonochromeLib +  _ClrVram +  _ClrScreen +  _DispVram +  _Pixel +  _Point +  _PixelTest( +  _Line +  _Horizontal +  _Vertical +  _Rectangle +  _Polygon +  _FillPolygon +  _Circle +  _FillCircle +  _Elips +  _FillElips +  _ElipsInRct +  _FElipsInRct +  _Hscroll +  _Vscroll +  _Bmp +  _Bmp8 +  _Bmp16 + +  Casio Basicのグラフィックスコマンド仕様とは独立したハードに密着した別系統のコマンドとなります。 +  これらのコマンドは現在のVRAMを操作するだけなので描画結果を表示するにはPutDispDD等のコマンドでLCD転送(画面更新)をする必要があります。 +  コマンドの使い方はマニュアルを参照して下さい。 + + +v0.99v 2017.1.11 テスト版(インタプリタのみ) + ・A0~A9表記の変数の実体となる行列が確保されてない場合には自動的に確保するようにしました。 + (例)A1+123→B5 +  もし、Mat AおよびMat Bが確保されていない場合は、変数がアクセスされた時点で +  9→Dim A +  9→Dim B +  と同じ初期化が自動的に実行され、A1~A9およびB1~B9までが使えます。 + + (例)'#Mat 0 +  A1+123→B5 +  の場合、もし、Mat AおよびMat Bが確保されていない場合は、 +  10→Dim A +  10→Dim B +  と同じ初期化が自動的に実行され、A0~A9およびB0~B9までが使えます。 + + (例)'#Mat 0 +  2→Dim B +  A1+123→B5 +  の場合は、 + 10→Dim A +  Mat Aのみ初期化され、Mat Bは再確保されないのでB5にアクセスした時点でエラーになります。 +  この場合はA0~A9およびB0~B1までが使えます。 + + 2017.1.9 テスト版(インタプリタのみ) + ・行列のアクセス方法として、変数に直に数字を添字として記述することが出来るようにしてみました。 +  Mat A[1,1]をA[1]と表記する形のさらなる省略形です。ただし添字は数字の0~9のみです。 + +  A[1,1]→A[1]→A1 +  A[2,1]→A[2]→A2 +  A[3,1]→A[3]→A3 +  A[4,1]→A[4]→A4 +  A[5,1]→A[5]→A5 +  A[6,1]→A[6]→A6 +  A[7,1]→A[7]→A7 +  A[8,1]→A[8]→A8 +  A[9,1]→A[9]→A9 + + (例)'#Mat 1 +  10→Dim A +  10→A1 +  20→A2 + A1+A2 + + +  添字に0が使えるのは行列インデックスの初期値を0に指定している場合のみです。 + +  A[0,0]→A[0]→A0 +  A[1,0]→A[1]→A1 +  A[2,0]→A[2]→A2 +  A[3,0]→A[3]→A3 +  A[4,0]→A[4]→A4 +  A[5,0]→A[5]→A5 +  A[6,0]→A[6]→A6 +  A[7,0]→A[7]→A7 +  A[8,0]→A[8]→A8 +  A[9,0]→A[9]→A9 + + (例)'#Mat 0 + 10→Dim A +  10→A0 +  20→A1 + A0+A1 + + +v0.99u 2017.1.7 テスト版(インタプリタのみ) + ・テキストファイル(*.txt)からの読み込みでファイル名に".txt"が残るバグを修正しました。 + + ・[OPTN][VARS][PRGM]コマンド選択でのカーソル←→でグループ移動させるようにしました。 + + +v0.99t 2017.1.1 テスト版(インタプリタのみ) + ・DATEの曜日計算(ツェラーの公式)をミスしていたのを修正しました。 + + 2016.12.31 ・セットアップでのDATE/TIME表示を逐次更新するようにしました。 + + 2016.12.26 ・内蔵RTCの日付時刻の設定及び読出コマンドとしてDATE,TIMEを追加しました。 +  文字列型の変数形式となります。 + (セットアップからも設定できます) + (例)"2016/12/26"→DATE + (例)DATE +  2016/12/26 MON +  と表示されます。曜日は自動計算されます。 + + (例)"23:59:59"→TIME + (例)TIME +  23:59:59 +  と表示されます。 + + ・エディタ等におけるコマンドメニュー入力においてコマンドをグループ分けしてカーソル←→でショートカット出来るようにしました。 +  STD : 基本的なコマンド +  GR : グラフィック系コマンド +  FN : 関数系コマンド +  STR : 文字列系コマンド +  EX : 拡張コマンド + + + 2016.12.22 ・文字列処理バッファサイズを128バイトから256バイトに倍増しました。 + ・テキストファイルへ変換する場合に確保されるバッファサイズを元ソースサイズの1.5倍から2倍に増やしました。 + ・編集可能な1プログラムのサイズが約32KBまでだった制限を最大62KBまでに変更しました。 + +v0.99s 2016.12.16 テスト版(インタプリタのみ) + ・引数ありのGosubが動作しなかったのを修正しました。 + + 2016.12.15 ・整数モードでSprintfの実数表示が出来なかったバグを修正しました。 + (例)Sprintf("A=%3.2f",#12.345) + + ・Sprintf、Locate、Textでの#プレフィックスの実数式評価で、 +  整数モードでも変数は整数変数のままになります。 + (変更前) +  式評価は実数で行われるために整数変数には%指定を付ける必要があります。 + (変更後) +  式評価は実数式として行われますが、変数は整数変数のまま扱われます。%を付ける必要はありません。 + + 2016.12.14 ・エディタ編集後のファイル名入力時に隠れる画面が編集ファイルと無関係な画面になる不具合を修正しました。 + + 2016.12.13 ・実数モードで#プレフィックスを付けた場合に動作しなかったバグを修正しました。 + (例)#123.56+100 + + ・Dispコマンドを追加しました。 + (例)Disp A +  ▲一時停止コマンドと同様の数値&文字列表示コマンドですが、表示毎に改行され一時停止すること無くプログラムは続行されます。 + + ・RefreshCtrl コマンドの中間コードが誤っていたので修正しました。 + RefreshCtrl = DotG : 0xF7F9 -> 0xF7F8 + + ・純正コマンド"Dot" "DotG"と中間コードが重なっていた"DotTrim(" および"DotGet("コマンドの中間コードを変更しました。 + DotGet( = DotG : 0xF73F -> 0xF73E + DotTrim( = Dot : 0xF74F -> 0xF73D + + +v0.99r 2016.7.24 テスト版(インタプリタのみ) + ・隠しRAM使用時、隠しRAM領域を使い切った場合に、ヒープ領域から領域確保できるようにしました。 + + 2016.7.21 ・隠しRAM使用時、行列を確保できない場合の処理に不具合があったのを修正しました。 + + 2016.7.20 ・隠しRAMをプログラムとMat行列領域で使用するようにしました。 +  プログラム領域、行列領域合計で256KBの割当になります。 +  ファイルリストバッファはヒープ領域固定となります。 + + ・リスト表示の上部にストレージメモリのフリーエリアとファイルリスト数を表示するようにしました。 +  ストレージメモリはプログラムの保存、およびコピー、リネーム等で減っていきますので、残り少なくなったら最適化が必要になります。 + + ・ClrMatで行列全部の消去が出来なかったのを修正しました。 + + ・Int関数がIntg関数になっていたので、Intg関数を追加して、Int関数を修正しました。 + + +v0.99q 2016.7.3 テスト版(インタプリタのみ) + ・デバッグモードにおいてプログラムの再開、トレース実行する場合に画面が復帰しないことがあった不具合を修正しました。 + + 2016.6.25 ・アドレス演算子&の追加により、Mat行列の文字列化は$のみに変更しました。 + + ・SysCallとCallコマンドをSysCall(),Call()のように関数コマンドとしました。 + (書式)SysCall( システムコール番号 [,引数1][,引数2][,引数3][,引数4] ) + (例)SysCall( 0x763,A,B,C,D )→R +  A→R4レジスタ、A→R5レジスタ、A→R6レジスタ、A→R7レジスタ、システムコール0x30を呼び出し返り値がRに入ります。 +  システムコール0x30はSDKのBdisp_DrawLineVRAMと同じです。 + + (書式)Call(マシン語アドレス [,引数1][,引数2][,引数3][,引数4] ) + (例)Call( 0x8802F000,A,B,C,D )→R +  A→R4レジスタ、A→R5レジスタ、A→R6レジスタ、A→R7レジスタ、0x8802F000番地にあるマシン語プログラムを呼び出し返り値がRに入ります。 + + + 2016.6.18 ・Engモードで負数の場合、動作しなかったのを修正しました。 + ・Engモードの拡張で3桁区切り表示に対応しました。 +  セットアップで[F4](Eng)を押すと、ENGオフ、ENGオン(/E)、3桁区切り(/3)と切り替わります。 +  コマンドで3桁区切りを指定するには、EngOn直後に数字の3を付けて、 +  EngOn3 +  以後3桁区切り出力になります。 +  その時のEngの返す値は3になります。(EngOff:0 EngOn:1 3桁区切り:3) + + ・数値をC.Basic書式で文字列化するStr()コマンドを追加しました。 +  Sprintf()コマンドはC言語仕様での書式出力となりますが、Str()ではC.Basic設定(Fix,Sci,Norm,Eng等)によって出力書式が決定されます。 + (例)Str(-123.4567)→Str 1 + -123.4567を文字列化"-123.4567"して文字列変数Str 1に代入します。 + + ・変数リスト表示で16進数表示に対応しました。 +  整数変数はそのまま16進数表示になりますが、実数変数はその値が整数32ビット範囲に収まる場合のみ16進数表示にできます。 + + ・マシン語を直接扱うためのコマンドとしてPeek(、Poke(、Call、SysCall、 +  変数とソースアドレスを返すVarPtr(、ProgPtr(コマンド、 +  C言語同様のアドレス演算子&、間接演算子*をサポートしました。 + + (例)Peek(0x8802E000).B→A% + (例)*(0x8802E000).B→A% +  0x8802E000番地の内容をバイト(1バイト)で読み出し、整数変数A%に代入します。 + (例)Peek(0x8802E000).W→A% +  0x8802E000番地の内容をワード(2バイト)で読み出し、整数変数A%に代入します。 + (例)Peek(0x8802E000).L→A% +  0x8802E000番地の内容をロングワード(4バイト)で読み出し、整数変数A%に代入します。 + (例)Peek(0x8802E000).F→A +  0x8802E000番地の内容を倍精度実数(8バイト)で読み出し、変数Aに代入します。 + + (例)Poke(0x8802E000).B,A% + (例)A%→Poke(0x8802E000).B + (例)A%→*(0x8802E000).B +  整数変数A%の値を、0x8802E000番地にバイト(1バイト)書き込みします。 + (例)Poke(0x8802E000).W,A% +  整数変数A%の値を、0x8802E000番地にワード(2バイト)書き込みします。 + (例)Poke(0x8802E000).L,A% +  整数変数A%の値を、0x8802E000番地にロングワード(4バイト)書き込みします。 + (例)Poke(0x8802E000).F,A +  実数変数Aの値を、0x8802E000番地に倍精度実数(8バイト)書き込みします。 + + (例)Call 0x8802F000,A,B,C,D +  A→R4レジスタ、A→R5レジスタ、A→R6レジスタ、A→R7レジスタ、0x8802F000番地にあるマシン語プログラムを呼び出します。 + + (例)SysCall 0x30,A,B,C,D +  A→R4レジスタ、A→R5レジスタ、A→R6レジスタ、A→R7レジスタ、システムコール0x30を呼び出します。 +  システムコール0x30はSDKのBdisp_DrawLineVRAMと同じです。画面にラインを描きます。 + + (例)VarPtr(A%) + (例)&A% +  整数変数A%の変数のアドレスが返ります。 + (例)VarPtr(Mat A) + (例)&Mat A +  行列Aの先頭アドレスが返ります。 + (例)VarPtr(Mat A[20,10]) +  行列A[20,10]の値が格納されているアドレスが返ります。 + + (例)Poke VarPtr(A%),B% + (例)*(&B%)→*(&A%) +  B%→A%と同じです。 + + (例)ProgPtr() +  現在のプログラムが格納されているアドレスを返します。 + + +v0.99p 2016.5.25 テスト版(インタプリタのみ) + ・純正Casio Basic互換仕様のパスワードに対応しました。 +  新規ファイル名の入力時に[F1]でパスワード入力できます。 +  ファイルリストモードで[SHIFT]+[F4]でパスワードの設定/解除が出来ます。 +  パスワードの設定されたファイルは、実行時は何も影響ありませんが、編集時およびデバッグ時はパスワード入力が必要となります。 + + +v0.99o 2016.5.21 テスト版(インタプリタのみ) + ・ファンクションメニュー描画コマンドFkeyMenu(をテキスト画面にも使えるようにしました。 +  描画オプションの項目でTを指定すればテキスト画面描画となります。 + (例)FkeyMenu(1,"ABC",T) +  テキスト画面の一番左側のファンクションメニューエリアにABCが描画されます。 + (例)FkeyMenu(6,"ABC",TR) +  テキスト画面の一番右側のファンクションメニューエリアにABCが反転モードで描画されます。 + (例)FkeyMenu(6,"",TC) +  テキスト画面の一番右側のファンクションメニューエリアを消去します。 + + ・行列ごとに確保時にインデックスベースを設定することが出来るようにしました。 +  行列確保時に末尾に0をつけると0ベース、1を付けると1ベースとなるので、デフォルトのベース設定を変更すること無く個別設定が出来ます。 + (例){128,64}→Mat A.P0 +  0ベースの行列を確保します。インデックスの範囲は[0,0]-[127,63] + (例){128,64}→Mat A.P1 +  1ベースの行列を確保します。インデックスの範囲は[1,1]-[128,64] + + 2016.5.20 ・行列にVRAMを割り当てる場合は、常にインデックスは0から始まりサイズを{128,64}固定としました。 +  さらに、テキストVRAM保存領域とグラフィックVRAM保存領域を行列に割り当てることができるようになりました。 +  (例){128,64}→Dim Mat T.vT +   テキストVRAM保存エリアをMat Tに割り当てます。インデックスのとる値は0~127、0~63となります。 +   現在のVRAMがグラフィックVRAMの場合、Mat Tに演算処理してScreen.TコマンドでVRAMをテキスト画面にするとMat Tの内容がVRAMに転送されます。 +  (例){128,64}→Dim Mat G.vG +   グラフィックVRAM保存エリアをMat Gに割り当てます。インデックスのとる値は0~127、0~63となります。 +   現在のVRAMがテキストVRAMの場合、Mat Tに演算処理してScreen.GコマンドでVRAMをグラフィック画面にするとMat Gの内容がVRAMに転送されます。 +   表示をするにはPutDispDDコマンドを使用して下さい。 + + ・Getkey3でキー入力が上手くいかない不具合があったのを修正しました。 + + 2016.5.19 ・画面のリフレッシュをマニュアル設定できるようになりました。セットアップとコマンドで設定できます。 +  Off:リフレッシュコントロール無し。表示においては純正互換仕様です。 +  Grph:グラフィックコマンドのみリフレッシュコントロール有り。ClrText,Locate,Text,LocateYX、" "は無しで以前のバージョン互換です。 +  All:すべての描画コマンドがリフレッシュコントロールされた表示となります。必要に応じてPutDispDDコマンドが必須となります。 +  Time:リフレッシュコントール時間を設定します。n/128秒単位で画面更新します。デフォルトは3で約1/42秒での更新となっています。 + + ・画面のリフレッシュをコマンドで設定できるRefrshCtrlとRefrshTimeコマンドを追加しました。 + (例)RefrshCtrl 0 +  リフレッシュコントロール無し。Off + (例)RefrshCtrl 1 +  リフレッシュコントロール有り。Grphモードに設定します。 + (例)RefrshCtrl 2 +  すべてのリフレッシュコントロール有り。Allモードに設定します + (例)RefrshTime 5 +  リフレッシュコントール時間を5に設定します。 +  RefrshCtrlとRefrshTimeコマンドは式の中で使うと現在の値を返します。 + + ・入力時のアルファベットの大文字小文字切り替えを初期化しないようにしました。起動時に大文字に設定される他は初期化されることがありません。 + ・エディタのサーチ機能において、前回の検索文字列が再度表示されるように変更しました。[AC]でクリアできます。 + ・Save/Loadコマンドのファイル名の拡張子は任意に設定できます。省略した場合は[.bin]になります。 + + +v0.99n 2016.5.15 テスト版(インタプリタのみ) + ・Returnコマンドにて返り値指定が出来るようになりました。 + (例)Return 式 +  式の値がAnsに入ります。 + ・0xまたは0Xで始まる16進定数が使えなくなっていた不具合を修正しました。 + ・文字列で行列を初期化する場合に空白と改行をスキップ出来なかった不具合を修正しました。 + + 2016.5.14 ・Screenコマンドを追加しました。 +  VRAMへ直アクセスする場合に、 +  Screen.tまたはScreen.TでテキストVRAM、 +  Screen.gまたはScreen.GでグラフィックVRAMが描画対象になります。 +  またScreen nでnの値が0の場合はテキストVRAM、1の場合はグラフィックVRAMとなります。 +  Screen単独で使うと描画対象が(テキストVRAM⇔グラフィックVRAM)切り替わります。 +  式の中でScreenを使うと現在のアクセス対象VRAM(0:テキストVRAM、1:グラフィックVRAM)が返ります。 + + ・セットアップにて隠しRAMを使用するかどうか設定ができます。 +  (現状ではファイルバッファのみの使用ですが将来的にはプログラムファイル等でも使用予定です。) + + 2016.5.12 ・Rename,Copyするとファイルが純正仕様から外れていたのを修正しました。(Ver 0.99n以前は問題ありません。) + + 2016.5.11 ・グラフ式(Yn)から文字列メモリー(Str n)への変換を文字列のコピー構文でも可能にしてましたが純正と仕様が違ってしまったために純正仕様に戻しました。 + (例)Y1→Str 1 +  これは純正同様にエラーになります。 + ・グラフ式(Yn)メモリーは式として評価するので返り値は数値になります。(純正仕様) + (例)Y1→A + + 2016.5.10 ・隠しメモリ領域を使うファイルバッファ関連で致命的バグがあったのを修正しました。 + ・強制画面書き換えコマンドとしてPutDispDDコマンドを追加しました。 + + 2016.5.9 ・サブフォルダに移動する場合にリストの一番上にサブフォルダの先頭ファイルが来るようにしました。 + ・お気に入りリストのプログラムがカレントフォルダ以外にある場合はフォルダ名から表示されるようにしました。(但し先頭5文字までです。) + ・今回より、隠しメモリ領域にファイルリストのバッファを移動してみました。(fx-9860GII以降) +  これによりフォルダ移動を繰り返してもヒープメモリの断片化は発生しなくなります。 + + 2016.5.8 ・Engコマンドを純正Casio Basic同様のEngモード切り替えとしました。 +  Engモードの状態を知るには(Eng)で読み出せます。 +  返り値0:EngOff +  返り値1:EngOn + + ・Getkey1、Getkey2がプログラムの最後に来た時にコマンドが二回繰り返される不具合を修正しました。 + ・お気に入りの最大数を超えた場合のエラーメッセージをFull Favoritesに変更しました。 + + 2016.5.7 ・お気に入りリストがフォルダに対応しました。フォルダ移動してもお気に入りリストが消えることがありません。 +  サブフォルダからルートへの移動は[SHIFT]+[EXIT](QUIT)ですが、カーソルがリストの先頭にある場合は[EXIT]でルートに移動するように変更しました。 + + ・ファイルネーム入力時ににフォルダを指定すると別のフォルダ内のファイルにアクセスできます。 +  フォルダ区切り文字は"/"もしくは"\"(バックスラッシュ)になります。 + (例)Prog "/SUB/SAMPLE" + (例)Save "/SUB/TEST",Mat A + (例)Load("SUB/TEST")→Mat A + + ・ファンクションメニュー描画コマンドFkeyMenu(を追加しました。 + (例)FkeyMenu(1,"ABC") +  一番左側のファンクションメニューエリアにABCが描画されます。 + (例)FkeyMenu(6,"ABC",R) +  一番右側のファンクションメニューエリアにABCが反転モードで描画されます。 + (例)FkeyMenu(6,"",C) +  一番右側のファンクションメニューエリアを消去します。 + + ・If~ElseIfの動作を修正しました。 + ・テキスト変換が[EXE]キーでも動作していたのを修正しました。 + ・小文字行列名が整数モードで使えなかったのを修正しました。 + ・お気に入りの最大数を超えた場合のエラーメッセージを"Favorites Full"に変更しました。 + + ・今回のバージョンより設定保存ファイルが変更になりますので以前のバージョンまでとは設定ファイルの互換性が無くなります。 + + +v0.99m 2016.5.4 テスト版(インタプリタのみ) + ・Exp>Str()コマンドをグラフ式(Yn)から文字列メモリー(Str n)への変換だけですが実装しました。 + (例)Exp>Str(Y1, Str 1) +  尚、グラフ式(Yn)から文字列メモリー(Str n)への変換は、文字列のコピー構文でも可能です。 + (例)Y1→Str 1 + ・行列への代入で、行列が確保されていなかった場合は"No Matrix array"に変更しました。 + + 2016.5.2 ・Circle,F-LineのXorモードでの描画に不具合があったのを修正しました。 + ・行列名における要素の型のデフォルト指定(Mat B, Mat C, Mat D, Mat W, Mat I, Mat L)を廃止しました。 +  デフォルトでは実数モードではすべて実数行列、整数モードではすべて整数行列となります。 + ・キャラクタ入力でアルファベットのミニキャラクタ(F5)のTextコマンド対応文字が表示されなかった不具合を修正しました。 + + +v0.99l 2016.4.16 テスト版(インタプリタのみ) + ・?入力コマンドにおいて#や%のサフィックスがエラーになっていたのを修正しました。 + 2016.4.13 ・ストレージメモリにファイルが無い状態で不具合があったのを修正しました。 + + 2016.4.10 ・°(deg) r(rad) g(gra)の角度単位入力を追加しました。 + ・60進数の入出力に対応しました。 + (例)12°34°56.78°→A +  Aの値は12.582438888889となります。 + (例)A >DMS +  画面右詰めで「12°34′56.78″」表示されます。 +  純正Casio Basicでは表示のみの変換に対してC.Basicでは文字列への変換が出来ます。 + (例)A >DMS→Str 1 +  Str 1 に「12°34′56.78″」が入ります。 + + *角度単位入力の「°(deg)」と60進数の区切り「°」はキャラクタが違います。 + + +v0.99k 2016.4.3 テスト版(インタプリタのみ) + ・実数表示で正の指数値で(+)表示されてなかったのを修正しました。 + ・負数の実数表示で指数桁が表示しきれなかった不具合を修正しました。 + ・タイマー変数Ticksへの代入が出来なかったのを修正しました。 + 2016.3.27 ・エディタのジャンプ機能の任意行へのジャンプ([F1][F3])で現在の行番号を表示するようにしました。 + + +v0.99j 2016.3.18 テスト版(インタプリタのみ) + ・エディタにジャンプ機能を追加しました。 +  それによりファンクションキーアサインを一部変更しました。 + +  -[F1] (TOP) ファイル先頭にジャンプします。 +  -[F2] (BTM) ファイル末尾にジャンプします。 + +  ↓↓↓↓↓↓↓↓ + +  -[F1] (JUMP) ジャンプサブメニューを表示します。 +   [F1] (TOP) ファイル先頭にジャンプします。 +   [F2] (BTM) ファイル末尾にジャンプします。 +    [F3] (GOTO) ファイルの任意の行にジャンプします。 +    [F5] (Skip↑) (セットアップで設定された)ページ数だけスキップアップします。 +    [F6] (Skip↓) (セットアップで設定された)ページ数だけスキップダウンします。 +  -[F2] (SRC) 文字列サーチモードに入ります。 + + ・ジャンプ機能に任意のページ数スキップする機能を加えたのでPageUp/Down機能を一部変更です。 + +  [SHIFT]+[UP]  1ページ(6行)だけPageUpします。 +  [SHIFT]+[DOWN] 1ページ(6行)だけPageDownします。 + + ・[AC]キーでのブレークした時のポップアップから再開可能になりました。 + [F1][EXE]キーで再開できます。 + + +v0.99i 2016.3.15 テスト版(インタプリタのみ) + ・エディタのRollUp/Down機能をPageUp/Down機能に名称変更しました。 + ・セットアップにて改ページ数を1ページ(6ライン)単位で自由に設定可能になりました。 +  [SHIFT]+[UP]  指定ページ数PageUpします。 +  [SHIFT]+[DOWN] 指定ページ数PageDownします。 + + +v0.99h 2016.3.12 テスト版(インタプリタのみ) + ・ファイルリスト読み込み時にポップアップ&右上ビジーマーカー表示を追加しました。 + + ・エディタでファイルの現在位置を示すガイドマーカーを右端に追加しました。 + ・エディタの検索の最後でフリーズすることがあるバグを修正しました。 + ・エディタでRollUp,RollDown機能追加しました。 +  [SHIFT]+[UP]  50行程RollUpします。 +  [SHIFT]+[DOWN] 50行程RollDownします。 + + ・カッコ同士の乗算と関数の組み合わせがエラーになっていたバグを修正しました。 + (例) (1+2)(3+4)^3 + + ・グラフ表示で画面外に出てしまうグラフが描画されないバグを修正しました。 + + +v0.99g 2016.3.5 テスト版(インタプリタのみ) + ・fx-5800P同様の配列初期化コマンドが使えるようになりました。 + (例)100→Dim Z +  {100,1}→Dim Mat Z +  と同じになります。 + (例)0→Dim Z +  ClrMat Zと同じです。 + +  テキストからの変換ではfx-5800P同様に +  100→DimZ +  と記述してもOkです。 + + ・プログラム読み込み時にメモリが足りないエラー&サブルーチンが見つからない場合のエラー処理が上手くいってなかったのを修正しました。 + + +v0.99f 2016.3.2 テスト版(インタプリタのみ) + ・変数一覧表示にて通常グローバル変数とローカル変数を区別することが出来るようになりました。 +  ローカル変数は=が反転キャラクター表示されます。 + + ・数式でのMat行列の表記において、Matを省略することが出来るようになりました。 + (例)A[X]+B[Y]→X[Z] +  Mat A[X,1]+Mat B[Y,1]→X[Z,1]と同じになります。 + + +v0.99e 2016.2.29 テスト版(インタプリタのみ) + ・Basic→テキスト変換時に一時出力命令は"Disps"に変換されますが改行はされないので、改行(CR,LF)を追加するようにしました。 +  ただし、一時出力命令の次が改行の場合は改行(CR,LF)を追加しません。 + ・テキスト→Basic変換時に、コマンド後に空白が必要なコマンドがありますが、空白が無くても変換できるようになりました。 +  すべてのコマンドには対応していません。次のコマンドのみ空白無し変換に対応です。 + Then Abs sin sinh + Else Int cos cosh + Default Frac tan tanh + Save Log sin^-1 sinh^-1 + Plot ln cos^-1 cosh^-1 + Prog Sqrt tan^-1 tanh^-1 + + ・テキスト変換の兼ね合いでDoコマンドと間違えてしまうためにDotPut,DotGet,DotLifeの各コマンド名をdotPut,dotGet,dotLifeに変更していたのを元に戻しました。 + ・お気に入りリストの一番下から上に移動できなくなっていたのを修正しました。 + + +v0.99d 2016.2.27 テスト版(インタプリタのみ) + ・テキストファイルからC.Basicソースファイルへの変換に対応しました。 +  拡張子(.txt)のテキストファイルをストレージメモリ上に置くとファイルリストに表示されてG1Mファイル同様に扱うことが出来ます。 +  BasicソースファイルのG1Mファイルは拡張子は表示されませんが、テキストファイルは拡張子(.txt)まで表示されます。 +  G1Mファイルと同様にそのまま編集、実行することが可能です。(変換時間が入るので少し時間がかかります。) +  ファイルの変換のみの場合はファイルモードで[F6]+[F1]で変換を開始します。 +  テキストファイルの場合はG1Mに、G1Mファイルの場合はテキストファイルに相互変換します。 +  コマンドの変換規則はfx-CG20およびfx-FD10Proに準拠しています。 + + ・テキスト変換の兼ね合いでDoコマンドと間違えてしまうためにDotPut,DotGet,DotLifeの各コマンド名をdotPut,dotGet,dotLifeに変更しました。 + + +v0.99c 2016.2.13 テスト版(インタプリタのみ) + ・行列の要素の初期値として0が選択できるようになりました。 +  セットアップもしくはコメント欄での記述で行列の始まりを選択できます。 + (例)'#Mat 1 +   従来通り1から始まります。 + (例)'#Mat 0 +   {3,2}→Dim Mat A +  確保される行列は A[0,0]~A[2,1]となります。 + +  同時に画面座標も0まで有効になります。これで全画面が描画対象エリアとなります。 + (例)Pxlon 0,0 + + ・行列の型(1ビット、バイト、ワード、ロングワード、実数)が行列確保後に任意に変更できるようになりました。 + (例)[[1,2,3,4][5,6,7,8]]→Mat A.B +    Mat A→Dim Mat A.W +  バイト型のMat A行列をワード型に変更できます。 +  要素数は変更後の型サイズに応じて変化します。 +  [[0x12,0x34][0x56,0x78]]→Mat A.W +  と同じ結果になります。 + + (注意)1ビット型行列からの変更、また1ビット型行列への変更は行と列が反転します。 +  これは1ビット型行列はX,Y型で実装しているために通常のm,n型行列とは転置行列の関係になります。 +  {128,64}→Dim Mat A.P +  LCD画面のバッファとして確保します。 +  Mat A→Dim Mat A.B +  バイト型行列に変更すると、 +  要素サイズは{64,16}になります。 + + +v0.99b 2016.2.9 テスト版(インタプリタのみ) + ・デバッグモードを拡張しました。 +  ファイルモードの[SHIFT]+[F6]でデバッグモードに入ります。 +  [F1]:カーソル位置よりプログラムを再開します。従来のContと同じです。 +  [F2]:カーソル位置よりトレース実行。コマンド実行後、即エディタ画面に戻ります。 +  [F3]:カーソル位置よりトレース+ステップオーバー。サブルーチンは一気に実行されます。ステップ実行後、即エディタ画面に戻ります。 +  [F4]:カーソル位置よりステップアウト。サブルーチンの終了まで一気に実行します。ステップ実行後、即エディタ画面に戻ります。 +  [F5]:エディタリスト表示とプログラム実行画面の切替をします。切替後も実行画面が維持されるので実行画面そのまま[F1]-[F4]のデバッグ動作が可能です。 +  [F6]:デバッグメニューとエディタメニューを切り替えます。実行画面(グラフィック/テキスト)の場合はファンクションメニュー表示をします。 + グラフィック画面とテキスト画面の切替は[SHIFT]+[F6]です。 + + ・エラーが起きた場合の処理を変更しました。 +  従来はプログラム実行をすべて中止してエディタに戻っていたのを、実行中断してデバッグモードでエディタに戻るようにしました。 +  エラー箇所を修正後、中断箇所よりプログラムに復帰することが可能になりました。 + + ・ACBreakコマンドに機能追加しました。 +  直後にStopコマンドを付けることで、ACBreakStopとなりますが、 +  これ以降に実行されるACBreakコマンドをすべてキャンセルします。 +  セットアップでのキャンセルと同じです。 + + ・バックライトコマンドを追加しました。バックライト装備のfx-9860GIIのみ対応となります。 + (書式)Backlight n +  n=0 バックライト消灯 +  n=1 バックライト点灯 +  n=2 バックライト反転 + (書式)Backlight +  バックライトの状態を返します。 + + +v0.99a 2016.2.7 テスト版(インタプリタのみ) + ・Sprintf、Locate、Textでの#プリフィックスは実数式評価としました。 +  整数モードでは常に整数値しか得られないので、#プリフィックスを付けた式では実数式評価で実数値が返ります。 +  整数モードでしか意味は無いのですが整数モードにおけるSprintfやLocate、Textコマンドで実数値を扱うことが出来ます。 + (例)Locate 1,1,123+0.456 +  整数モードでは整数値に丸められて123となってしまうのですが、 + (例)Locate 1,1,#123+0.456 +  #プリフィックスを付けると実数で123.456と表示されます。 +  式評価は実数で行われるために整数変数には%指定を付ける必要があります。 + + ・SH4A版のfx-9860GIIのGetkeyコマンドにてGetkey1~2と同様に[SHIFT]+[OPTN]でのバックライト制御が可能になりました。 +  SH3版は以前よりバックライト制御が可能です。 +  [SHIFT]+[AC]での電源OFFには未対応です。 + + ・一定時間キー入力待ちをするGetkey3追加しました。 +  Getkey1系のコマンドではなくGetkey系のコマンドとなります。 + (例)Getkey3(128) +  コマンド実行時のタイマーを基準として128Ticksカウント(=1秒)のウエイト期間中にキー入力があれば最後に押されたキーコードが返ります。 + (例)Getkey3(128,A) +  Aをタイマーの初期値として現在のタイマー値が128Ticksカウント経つまでキー待ちをします。 + + +v0.99 2016.2.5 テスト版(インタプリタのみ) + ・プログラムをステップ実行するデバッグモードを追加しました。 +  ファイルモードの[SHIFT]+[F6]でデバッグモードに入ります。 +  [AC]での一時中断もしくはACBreakコマンドで中断した後もデバッグモードになります。 +  [F1]:プログラムを再開します。従来のContと同じです。 +  [F2]:ステップ実行となります。ステップ実行後、即エディタ画面に戻ります。 +  [F6]:プログラム中断前の画面(グラフィック/テキスト)を表示します。 + グラフィック画面とテキスト画面の切替は[SHIFT]+[F6]です。 + + ・Str文字変数の実体となるMat行列を任意指定できるようになりました。 +  Str変数を使う前にコメント欄での記述となります。 + (例)'#Str A +  Str変数をMat Aとして確保します。 +  {20,65}→Dim Mat A.B +  と同じです。 + (例)'#Str B,30,256 +  Str変数をMat Bとして30個、255文字まで可能な変数として確保します。 + + ・1/128sのタイマー変数として%に加えてTicksを追加しました。機能的には全く同じです。 + + +v0.98 2016.2.3 テスト版(インタプリタのみ) + ・カナ文字+記号文字のtextコマンド表示に対応しました。 +  キャラクタ選択画面で[OPTN]を押すとTextコマンドで表示される文字になります。 + + ・Mat行列の文字列扱いで&に加えて$も使用できるようになりました。 + (例)$Mat A[1] &Mat A[2] + + ・Casio Basic互換の文字列関数として、 + + 文字列同士の連結 + StrJoin( + StrLen + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp( + StrUpr( + StrDwr( + StrInv( + StrShift( + StrRotate( + Str 1-20 +  を追加しました。 +  純正仕様とほぼ互換ですが若干の差異があります。 +  Str 1-20はMat行列のs(小文字)を暗黙的に使用します。 +  Str文字列の初期化は何も指定なければ次のようにMat s行列の初期化が自動的に行われます。 +  {20,65}→Dim Mat s +  ということで、 +  Str 3は$Mat s[3]または&Mat s[3]と同義となります。 +  Str文字列はデフォルトで20まで、格納可能文字列数は1バイト文字で64文字までとなりますが、 +  事前に +  {30,256}→Dim Mat s +  というような初期化をしておけばStr文字列は1-30まで使え、格納可能文字列は255文字までとなります。 + +  fx-9860GIIで使われる文字は1バイト文字と2バイト文字があり、 +  一部の関数と記号、特殊文字、カナ文字が2バイト文字となりますので、 +  内部では1バイトと2バイト文字が混在する状態となりますが、文字関数での扱いは純正同様にすべて1文字扱いとなります。 +  文字列が格納された行列に直接アクセスする場合は文字の位置に注意して下さい。 + + ・Exp(は以前のEval(と同じなのでEval(を削除しました。 + + ・追加の文字列関数としてC言語仕様のSprintf(を追加しました。 + (仕様)Sprintf( "書式指定子" , 引数1[ ,引数2 , 引数3]) + (例)Sprintf("A=%4d B=%3.2f",%A,#B)→Str 1 +   A=1234,B=45.678の場合、 +  Str 1に代入される文字列は +  "A=1234 B=45.68" +  となります。 +  書式指定はC言語でのsprintfと互換というかそのままC言語仕様となります。 +  引数は3つまで指定することが出来、整数/実数/文字列が指定可能です。 +  %プリフィックスで整数指定、#プリフィックスで実数指定となります。 + プリフィックスを省略した場合はその時点での実行モード(実数/整数)となります。 + 書式指定と引数の対応のエラーチェックは無いので、Sprintf(コマンドでエラーが起きた場合はリセットか再起動となる可能性があります。 + + +v0.97a 2016.1.25 テスト版(インタプリタのみ) + ・サブプログラムが多くなると(15以上)何も出来なくなるバグを修正しました。 +  同時に開けるサブプログラム数を15から30に増やしました。 + + ・行列のサイズを取得する関数を追加しました。 + ・ElemSize( +  1要素のサイズ(ビット)を返します。 + (例) ElemSize( Mat A ) + ・ColSize( +  {m,n}のm=行サイズを返します。 + ・RowSize( +  {m,n}のn=列サイズを返します。 + + +v0.97 2016.1.24 テスト版(インタプリタのみ) + ・Mat行列への文字列の代入、初期化対応しました。 + (例)["ABC","TEST","1+3+5"]→Mat A +  バイト型のMat A[3,6]行列を自動的に確保してそれぞれの要素に文字列を配置します。 +  Mat A[1,1]="ABC" +  Mat A[2,1]="TEST" +  Mat A[3,1]="1+3+5" +  となります。 +  文字列対応コマンドで"ABC"にアクセスするには&Mat A、もしくは&Mat A[1],もしくは&Mat A[1,1]となります。 +  "1+3+5"をアクセスするには&Mat A[3],もしくは&Mat A[3,1]となります。 + (例)Locate 1,1,&Mat A +  Locate 1,1,"ABC"と同じです。 + (例)Locate 1,1,&Mat A[3,3] +  Locate 1,1,"3+5"と同じです。 + + 現バージョンでの文字列対応コマンドです。" "の代わりに&Mat形式で使用します。 + ・" " + (例)&Mat A[1] +   "ABC"と同じです。 + ・? + (例)?→&Mat A +  行列Mat Aに文字列を入力します。確保している要素数で文字数が制限されます。 + ・Locate + ・Text + ・LocateYX + ・Eval( + (例)Eval("1+2+3")→6 + (例)Eval(&Mat[3,3])→8 + 文字列を数式として評価、値を返します。 + + ・ACBreakコマンドを追加しました。 +  プログラム中で[AC]での一時中止と同じ結果となります。 +  セットアップにてACBreakコマンドの有効/無効の切り替えが出来ます。 +  無効(off)にした場合はスルーされてプログラムの実行に何も影響を及ぼしません。 + + ・ファイルモードでCopy機能を追加しました。 +  選択されたファイルを別のファイル名でコピーします。同名の場合は何もしません。 +  ファンクションキー不足のためにファンクションキーの割当を一部変更しました。 + + +v0.96 2016.1.22 テスト版(インタプリタのみ) + ・C.Basicソースファイルからテキストファイルへの変換に対応しました。 +  ファイルモードで[SHIFT]+[F6]で変換を開始します。 + + +v0.95a 2016.1.20 テスト版(インタプリタのみ) + ・IsExist(コマンド追加しました。 +  指定されたファイルが存在しない場合は0が返り値となります。 +  ファイルが存在する場合はファイルサイズが返り値となります。 + (例)IsExist("TEST") +  "TEST.bin"が存在すればファイルサイズが、存在しなければ0となります。 + + +v0.95 2016.1.19 テスト版(インタプリタのみ) + ・全小文字変数がローカル変数扱いだったのをローカル変数にする変数を任意指定できるように変更しました。 +  デフォルトでは小文字変数はすべてグローバル変数となりますが、 +  プログラム内でLocalコマンドで変数指定するとその変数はそのプログラム内だけで使われるローカル変数となります。 + (例)Local x,y,z +  ローカル変数としてx,y,zを指定します。 +             指定できるのは小文字変数のみで最大10個まで指定できます。 +  またこの変数の順で引数付きProgでローカル変数に代入されます。 + + (例)サブプログラム"TEST"内で、 +    Local x,y,z +  (記述する位置はサブプログラム内であればどこでも可です。) + +    Prog "TEST",123,456,N +  サブプログラム"TEST"の実行時に、ローカル変数としてx,y,zが確保され、 +  123→x、456→y、N→z、それ以外はグローバル変数となります。 + + ローカル変数が使えるようになったことで再帰プログラムも可能になりましたが、 + 現状ではメモリ制限でネスト30層程度までとなっています。 + +v0.94 2016.1.16 テスト版(インタプリタのみ) + ・Save/Loadコマンド追加しました。 + (例)Save "TEST",Mat A + (例)Load("TEST")→Mat A +  Mat A行列の内容を保存、読み込みます。 +  ファイル名は8文字まで、拡張子は[.bin]固定です。 +  現状、アクセスできるのは行列データのみとなります。 +  保存形式はヘッダ無し、内部バイナリーデータそのままのデータファイルとなります。 + + (例)Save "TEST",Mat A[5,1] +  Mat A[5,1]より最後まで保存します。 + (例)Load("TEST",16)→Mat A[10,1] +  保存されたデータの16バイト目のデータからMat A[10,1]に読み込みます。 + + ・Prog "~"コマンドで引数を記述することが出来るようになりました。 +  その変更に伴い、小文字変数はすべてローカル変数扱いとなります。 +  引数の一番目はa、二番目はb、以下zまでのローカル変数に自動的に代入されます。 + (例)Prog "TEST",123,456,N +  サブプログラム"TEST"の実行時には、 +  123→a、456→b、N→c、d~zは不定値となります。 + + ・Gosubコマンド追加しました。 + (例)Gosub A +  Label Aから始まるプログラムを実行しReturnコマンドで復帰します。 + (例)Gosub A,123,456 +  引数もProgコマンド同様に使えますが、同じプログラム内なので大域変数と同じ扱いです。 + + +v0.93 2016.1.10 テスト版(インタプリタのみ) + ・Dot系コマンドのエラー処理が甘かったのを修正しました。 + + ・1ビットバイナリー型行列を追加しました。 +  行列確保時に[.P]および[.p]を付けると1ビット行列になります。 +  1要素の取る値は0と1だけとなります。 + +  C.Basicで指定できる行列の要素指定をまとめると、 +  デフォルトで行列名のアルファベットが +  C,Bは(8ビット)バイト行列となります。値の範囲は(-128~127)です。 +  D,Wは(16ビット)ワード行列(-32768~32767) +  I,Lは(32ビット)ロング行列(-2147483648~2147483647) + +  また、行列確保時にサフィックス指定するとデフォルトに優先して要素指定できます。 +  [.P]または[.p]で(1ビット)バイナリー行列 +  [.B]または[.b]で(8ビット)バイト行列 +  [.W]または[.w]で(16ビット)ワード行列 +  [.L]または[.l]で(32ビット)ロング行列 +  [.F]または[.f]で(64ビット)倍精度実数行列 + + ・Fill(コマンドを追加しました。 +  C.Basicでは、123→Mat A の形式でサポートしていた行列の全要素に同じ数値を代入する機能ですが、 +  純正Casio Basicに標準装備のコマンドがありますので追加しました。 + (例)Fill(123,Mat A) + + ・Trnコマンドを追加しました。 + 転置行列に変換します。 +  純正Casio Basicとは違い、行列そのものを転置変換します。 +  (例)Trn Mat A + 行列Aを転置変換します。 + +  さらに、1ビット行列は画面のVRAMと同じ構成となるので、 +  [.V]または[.v]指定するとVRAMを127行x63列の行列に割り当てて読み書き出来るようにしてみました。(暫定機能) +  (例){127,63}→Dim Mat G.V +   Mat Gにアクセスすることでその時点でのVRAMを直接読み書きできますが表示系コマンドではないので、 +   画面表示する場合は、コマンド実行後に強制表示させる必要があります。 + +  (例){127,63}→Mat G.V + Text 1,1,"" // グラフィック画面選択(他のグラフィックコマンドでも可) + 1→Mat G[63,31] + Text 1,1,"" // グラフィック画面強制表示(他のグラフィックコマンドでも可) + グラフィック画面の真ん中に点を打ちます。 + PxlOn 31,63と同じです。 + +  (例){127,63}→Mat G.V + Locate 1,1,"" // テキスト画面選択(他のテキスト系コマンドでも可) + 1→Mat G[63,31] + Locate 1,1,"" // テキスト画面強制表示(他のテキスト系コマンドでも可) + テキスト画面の真ん中に点が打てます。 + + +v0.92 2016.1.4 テスト版(インタプリタのみ) + ・ElseIfがIfの入れ子構造の中で使われた場合に期待した動作にならないバグを修正しました。 + ・行頭の空白の読み飛ばしが上手く行かないところがあったのを修正しました。 + + +v0.91 2016.1.3 テスト版(インタプリタのみ) + ・ファイル名を変更した時、および新規ファイルを作成した時にファイルリストで違うファイル名を示していたのを修正しました。 + + ・(テスト機能)Mat行列エディタにおいて2進数、16進数での表示ができるようになりました。 +  行列編集モードで[F5]を押すと2進数表示、[F6]で16進数表示になります。 +  10進数表示に戻すには再度[F5]/[F6]を押します。 +  ただし、2進数表示はバイト(1バイト)とワードタイプ(2バイト)の行列までです。 + + +v0.90a 2016.1.1 テスト版(インタプリタのみ) + ・数値またはファイル名入力時にフリーズすることがあったのを修正しました。 + + +v0.90 2015.12.31 テスト版(インタプリタのみ) + ・定数値において、C言語同様のプレフィックス(0Xまたは0B)を付けると32ビットまでの16進数、2進数表記が使用出来るようになりました。 + (例)0XFF,0B1010011 + + ・Mat行列初期化コマンド[[ ]]において、改行&空白を入れることが可能になりました。 + (例) +  [[0B11001100, +   0B00110011, +   0B11001100, +   0B00110011, +  ]]→Mat A.B + + ・ファイルの書き換えや削除、リネームしない場合はファイルリストを再読み込みしないようにしました。 +  ファイルが変更されない場合のファイルリスト表示で必要以上に待たされることが無くなります。 + + +v0.89 2015.12.27 テスト版(インタプリタのみ) + ・行頭に空白を入れてもエラーにならないようにしました。 +  インデントを付けて見易く出来ます。 + + ・ElseIfコマンドを追加しました。 + (例) + If A:Then + Locate 1,1,"A" + ElseIf B:Then + Locate 1,2,"B" + EndIf + + ・Ifに対応するIfEndが無い場合にエラーとするかどうかをセットアップで選択出来ます。 +  セットアップでチェックをOnにすれば実行時に対応するIfEndが無いIfコマンドの箇所でエラーになります。 + + ・Switchコマンドを追加しました。C言語同様フォールスルー可です。ただしDefaultは最後でないと期待した動作になりません。 +  新規コマンドはSwitch、Case、Default、SwitchEndとなります。Breakは従来コマンドです。 + (例) + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + + + +v0.88 2015.12.24 テスト版(インタプリタのみ) + ・カナ文字を使うとエディタがフリーズするバグを修正しました。 + ・キャラクタ連続入力モードで1文字目が入力されなかったのを修正しました。 + ・プログラム内でタイム変数%を変更した場合にプログラムの時間計測(TimeDsp)が不正確になるのを修正しました。 + + ・Locateコマンドの表示指定を追加しました。 +  コマンドの最後に[,R]で反転表示となります。 + (例)Locate 1,2,"Test",R +   "Test"がグラフィック座標(1,2)に反転表示で表示されます。 + + ・Textコマンドの表示指定を追加しました。 +  コマンドの最後に[,R]で反転表示、[,O]でOr表示、[,V]で反転Or表示となります。 +  [,N] Normal +  [,R] Reverse +  [,O] Or +  [,V] reVerse or + (例)Text 20,80,"Test",R +   "Test"がグラフィック座標(80,20)に反転表示で表示されます。 + + ・グラフィック画面にLocateと同じ文字表示をするLocateYXコマンドを追加しました。 +  座標指定はTextコマンドと同じくY座標が先になります。 +  コマンドの最後に[,R]で反転表示となります。 + (例)LocateYX 20,80,"Test",R +   "Test"がグラフィック座標(80,20)に反転表示で表示されます。 + + ・グラフィック画面のビットマップデータをビット単位で読み取るReadGraph(コマンドを追加しました。 + (書式1)ReadGraph(px1,py1,px2,py2)→Mat A +   グラフィック画面の(px1,py1)-(px2,py2)の範囲をMat A行列(強制的にバイト指定)に取り込みます。 +   行列は事前に確保しておく必要はありません。自動的に適切な行列サイズで確保します。 +   WriteGraphコマンドでそのまま使えるデータとなります。 + + ・ビットマップデータを表示するWriteGraphコマンドを追加しました。 +  ビットマップデータは予めMat行列に入力しておきます。 + (書式1)WriteGraph x,y,dx,dy,Mat A ,P1[,P2] +   グラフィック画面の座標(x,y)より幅dx、高さdyの範囲にMat Aのデータを描画します。 +   P1はデータの表示前加工指定で[,N]でそのまま加工無し、[,R]で反転、[,M]でメッシュ加工、 +   P2は指定無しでオーバーライト表示、[,A]でAnd表示、[,O]でOr表示、[,X]でXor表示となります。 + (例)[[1,2,4,8,16,32,64,128]]→Mat A +   WriteGraph 80,20, 8,8, Mat A, N +   グラフィック画面の座標(80,20)より斜めの線[/]が描画されます。 + + (書式1)WriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2] +   グラフィック画面の座標(x,y)より幅dx、高さdyの範囲にMat Aの[m,n]からのデータを描画します。 + (例)[[16,32,64,128][128,64,32,16]]→Mat A +   WriteGraph 80,20, 4,4, Mat A[1,1], N +   WriteGraph 80,24, 4,4, Mat A[2,1], N +   グラフィック画面の座標(80,20)より[<]の図形が描画されます。 + +   WriteGraph 80,20, 4,8, Mat A, N +   でも同じ結果となります。 + + ビットマップデータは8ビット単位で左上が基準になります。 + + +v0.87b 2015.12.20 テスト版(インタプリタのみ) + ・エディタ等でのキーリピート時間の設定が出来るようになりました。 +  セットアップから指定できます。 +  Key 1st time: 25ms~1000ms (デフォルト値 500ms) +   リピート開始までの時間 (25ms単位) +  Key Rep time: 25ms~500ms (デフォルト値 125ms) +   リピート継続時間 (25ms単位) + + ・変数表示を区別しやすいように整数変数に%を付けました。 + + +v0.87a 2015.12.19 テスト版(インタプリタのみ) + ・新コマンドでの細かなバグ修正しました。 + + +v0.87 2015.12.18 テスト版(インタプリタのみ) + ・エディタでG<>T切り替えを[SHIFT]-[F6]に実装しました。そのために検索[SRC]キーの割当が[F5]に移動しました。 + + ・RectおよびFillRectコマンドを追加しました。Dot系コマンドと同じ実座標指定となります。 +  (例)Rect 1,1,127,63 +    画面いっぱいに枠を描きます。 +  (例)FillRect 1,1,127,63 +    画面を塗り潰します。 + + ・グラフィックコマンドの末尾に[,C]を加えると消去します。[,X]で反転します。 +  (例)FLine 1,1,30,20,C +  対象コマンドは、Line,FLine,Vertical,Horizontal,Circle,Rect,FillRectとなります。 + + ・StoPict/RclPictコマンドを内部ヒープメモリで動作するモードを追加しました。 +  セットアップにてストレージメモリとの切り替え動作になります。 +  Pictファイルの互換が無くなる代わりに速度向上しました。 +  Basic動作上の互換性は確保されていますので、Casio Basicのソースはそのままで動きます。 + + +v0.86 2015.12.15 テスト版(インタプリタのみ) + Casio Basic準拠のMat行列の個別初期化に対応しました。 + (例)[[1,2,3][4,5,6]]→Mat A + + +v0.85 2015.12.15 テスト版(インタプリタのみ) + 1/128秒単位でカウントされる時間計測用の%変数への初期化が出来るようになりました。 + (例)0→% + + +v0.84 2015.12.14 テスト版(インタプリタのみ) + キャラクタ選択画面で連続入力モードを追加しました。 + [SHIFT]もしくは[F1]~[F6]を二度押しすることで連続入力モードになります。 + + +v0.83b 2015.12.13 テスト版(インタプリタのみ) + SDKのコンパイルをSPEEDオプション指定に変更しました。 + v0.83比で5%程度高速化しました。 + + +v0.83 2015.12.12 テスト版(インタプリタのみ) + コマンド入力「CMD」画面でファンクションキーに「=>」を追加しました。 + 比較演算子は[SHIFT]キーを押すと6種類全部出てきます。 + + 「'」(コメント)の直後が「'」(コメント)の場合を + 「'」(コメント)の直後が「/」の場合に変更しました。 + 「'/」以降はコメントではなくコマンドとして実行します。 + C.Basic動作時にのみ実行するコマンドを記述できます。 + + 「=>」コマンドが「true/false」の「false」で終了した場合の処理を修正しました。 + + +v0.82 2015.12.11 テスト版(インタプリタのみ) + 8文字のファイル名で保存やリネームするとファイルが壊れていたのを修正しました。 + + RanInt#関数のバグを修正しました。 + + ストレージメモリの空き少ない場合に保存やリネームをしようとした場合、 + 既存のファイルを保護するために"Not enough SMEM"エラーメッセージを出すようにしました。 + エラーが出た場合はストレージメモリの最適化処理が必要です。 + + 「'」(コメント)の直後が「'」(コメント)の場合、 + 「''」以降はコメントではなくコマンドとして実行します。 + C.Basic動作時にのみ実行するコマンドを記述できます。 + + ライフゲーム専用コマンド、DotLife(コマンドを追加しました。 + (例)DotLife( Mat A, x1,y1,x2,y2)→Mat B +  Mat Aの座標(x1,y1)-(x2,y2)の範囲をライフゲーム演算してMat Bに格納します。 +  Mat AとMat Bは同じサイズの行列である必要があります。 +  コマンド実行後に(x1,y1)-(x2,y2)の範囲よりもセルが広がった場合、その矩形範囲より±1の座標が整数変数に自動的に入ります。 +  整数変数L : 左端座標-1 +  整数変数R : 右端座標+1 +  整数変数T : 上端座標-1 +  整数変数B : 下端座標+1 + + +v0.81 2015.12.9 テスト版(インタプリタのみ) + '(コメント)の飛越先をキャッシュするようにして高速化しました。 + コメントが短い場合は効果が出ない場合があります。 + + +v0.80 2015.12.5 テスト版(インタプリタのみ) + インタプリタを符号無から符号有ベースに変更しました。その結果、多少高速化しました。 + それプラス、式評価の見直しで単純な式(2項までの式)を高速化しました。 + 複雑な式では遅くなる場合もあります。 + Ifコマンドの飛越先をキャッシュするようにして高速化しました。 + 飛越先が短い場合は効果が出ない場合があります。 + + +v0.74 2015.11.29 テスト版(インタプリタのみ) + アイコン文字を変更しました。 + 一行の文字数が画面範囲以上になった場合にカーソル移動がバグるのを修正しました。 + + (例)DotTrim(px1,py1,px2,py2)→Mat A +  グラフィック画面からトリミング入力の場合に +  0ではないデータの矩形領域の右上X,Yの座標が+1ずれていたのを修正しました。 + + +v0.73 2015.11.18 テスト版(インタプリタのみ) + 文字&数値入力時の[A<>a][CHAR]ファンクションキーの位置を調整しました。 + エディタの検索で直前にクリップ機能で範囲指定していればその範囲を検索文字列として検索します。 + + DotG(→DotGet( + DotP(→DotPut( + コマンドの名称変更しました。 + DotPut(コマンドの動作異常を修正しました。 + + 新たにDotTrim( コマンドを追加しました。 + (例)DotTrim(Mat A, x1,y1,x2,y2)→Mat B + Mat行列内の[X1,y1]-[x2,y2]範囲の0ではないデータの矩形領域をトリミングしてMat B行列にコピーします。 + コピーする行列が確保されてない場合は新たに確保されます。 + (例)DotTrim(px1,py1,px2,py2)→Mat A + グラフィック画面からトリミング入力、 + グラフィックの(px1,py1)-(px2,py2)の範囲のドットが打たれている矩形領域をMat A行列にコピーします。 + どちらの場合も、矩形領域サイズ(Mat行列の確保サイズ)はX,Y変数に自動的に入ります。 + 0ではないデータの矩形領域の右上X,Y座標は小文字変数x,yに自動的に入ります。 + + +v0.72 2015.11.17 テスト版(インタプリタのみ) + 2バイトコマンド系文字列のサーチが上手くいかなかったバグを修正しました。 + キーバッファをクリアしてから入力するGetkey2を追加しました。 + SH3機での入力が上手くいかない場合はGetkey1の代わりにGetkey2を使用してください。 + + +v0.71 2015.11.16 テスト版(インタプリタのみ) + Continueモードのバグを修正しました。 + エディタでサーチ機能を追加しました。 + 使用方法はCasio Basic互換です。 + + +v0.70 2015.11.15 テスト版(インタプリタのみ) + サブプログラムが読み込めない時のエラー処理を強化しました。 + 読み込めなかったプログラム名、およびエラー箇所をエディタで示します。 + + Continueモード追加しました。 + [AC]Breakでストップした後、エディタの[F6]がContメニューに変わります。 + ストップしたところ、または任意の箇所よりプログラムを再開できます。 + + +v0.66 2015.11.14 テスト版(インタプリタのみ) + Getkey1およびオーバーライトモードのバグを修正しました。 + Eng,Norm,Fix,Sciの読み出し対応しました。 + Engモードは変数Engで取得できます。 + 返り値0:EngOff + 返り値1:EngOn + + Norm、Fix、Sci + はそれぞれ引数に負数を指定すると現在の設定値を返します。 + ()は必要はないです。 + + 現在の設定がNorm1の場合の返り値は、 + Norm (-1)で1 + Fix (-1)では-1 + Sci (-1)では-1 + + 現在の設定が Fix 8の場合は、 + Norm (-1)で-1 + Fix (-1)では 8 + Sci (-1)では-1 + という風になります。 + + +v0.65 2015.11.14 テスト版(インタプリタのみ) + Mat行列の表示&編集モードの縦横逆表示に対応しました。 + 行列(m,n)および行列(x,y)表示の切り替えを追加しました。 + ?コマンドのバグ修正しました。 + + +v0.64 2015.11.13 テスト版(インタプリタのみ) + 変数およびMat行列の表示&編集モードに全要素の一括初期化を追加しました。 + Getkeyのキーが押されるまで待つ版、Getkey1を新規追加しました。 + SDKのGetkeyと同じですがキーコードはCasio BasicのGetkey互換です。 + + +v0.63 2015.11.12 テスト版(インタプリタのみ) + DotP( Mat A[x,y], x1,y1, x2,y2)→Mat B + Mat A行列の[x,y]を始点として、Mat Bの[x1,y1]-[x2,y2]の範囲にコピーします。 + Mat Bがコピー範囲が収まる広さを確保していない場合は、Mat Bに収まる範囲でコピーします。 + グラフィック画面への転送は行いません。 + + DotP( Mat A[x,y], x1,y1, x2,y2) + Mat A行列の(x,y)の要素を始点として、画面上の(px1,py1)-(px2,py2)の範囲に点を打ちます。 + + DotG( px1,py1, px2,py2)→Mat A[x,y] + 画面上の(px1,py1)-(px2,py2)の範囲をMat A[x,y]を始点として取り込みます。 + 指定範囲よりも行列が足りない場合は行列サイズまで取り込みます。 + + 行列確保で1要素のバイト数を個別に指定できるようにしました。 + + {127,63}→Dim Mat A.b + のように最後に[.b]または[.B]を付けるとバイト行列になります。 + 同様に、 + [.w]または[.W]でワード行列 + [.l]または[.L]でロング行列 + [.f]または[.F]で倍精度実数行列 + 実数モードでは実数行列が基本で整数モードでは4バイトロング整数が基本ですが + これで自由なバイト構成でMat行列を確保できます。 + + +v0.62 2015.11.11 テスト版(インタプリタのみ) + 整数変数は%、倍精度変数は#を付けると精度指定でアクセスできます。 + A%→A# + 整数変数のAより倍精度変数Aにコピーします。 + 倍精度値を整数値に変換する場合、範囲に収まらない場合は0になります。 + + 整数の初期化で整数、倍精度、個別に指定できるようになりました。 + 0→A~Zの形式に加えて、 + 0→A~Z# + 倍精度変数を初期化します。 + 0→A~Z% + 整数変数を初期化します。 + + Mat行列の全要素の初期化に対応しました。 + 0→Mat A + Mat A行列の全要素を0で初期化します。 + 左辺は任意の値で初期化できます。 + + DotP(コマンドを追加しました。 + DotP(Mat A, x,y, px1,py1, px2,py2) + Mat A行列の(x,y)の要素を始点として、画面上の(px1,py1)-(px2,py2)の範囲に点を打ちます。 + + +v0.61 2015.11.10 テスト版(インタプリタのみ) + Locate,Text文字列バッファオーバーフローをしないようにしました。 + 1/128sのタイマーを%変数に割り当てました(暫定) + 同じ要素数、バイトサイズのMat行列同士のコピー(だけ)を追加しました。 + + +v0.60 2015.11.9 テスト版(インタプリタのみ) + 整数版と統合しました。 + 実数版との切り替えはSetupから設定するか、 + プログラムのコメントで + '#CBINT + または + '#CBint + と記述するとそれ以降のプログラムは整数モードで動きます。 + 通常の実数モードに戻すには + '#CBASIC + または + '#CBasic + と記述します。 + 通常変数はそれぞれのモードで独立しています。 + ただし、Mat行列は共通です。 + + お気に入りモードの上下移動、およびMat行列の表示&編集モードを追加しました。 + + +v0.50 2015.11.7 テスト版(インタプリタのみ) + fx-5800P準拠のお気に入りモード追加しました。 + それに伴い、設定&変数の保存に対応しました。 + メインメモリに自動保存されます。 + ファイル表示をオリジナルの表示形式に合わせました。 + + +v0.42 2015.11.3 テスト版(インタプリタのみ) + Mat行列のバイト構成を一部変更しました。 + 行列名のアルファベットが + C,Bは1バイト行列となります。(-128~127)です。 + D,Wは2バイト行列です。(-32768~32767) + I,Lは4バイト行列です。(-2147483648~2147483647) + それ以外は従来同様実数行列です。 + 大文字小文字入力での表示を変更しました。 + ファイル表示リスト順でフォルダは最後尾に表示するようにしました。 + + +v0.41 2015.11.1 テスト版(インタプリタのみ) + カタカナ対応しました。 + + +v0.40 2015.10.31 テスト版(インタプリタのみ) + 入力ルーチンを2バイト対応しました。?や変数値入力で2バイト関数が使えます。 + CATALOGキーが使えなくなっていたのを修正しました。 + グラフ表示が1ドットずれていたのを修正しました。 + + +v0.36 2015.10.27 テスト版(インタプリタのみ) + プログラム開始時にグラフィック画面が消去されていたのを修正しました。 + + +v0.35 2015.10.25 テスト版(インタプリタのみ) + fx-5800P互換コマンド入力でのファンクションキー部分追加しました。 + + +v0.34 2015.10.25 テスト版(インタプリタのみ) + サブルーチン内でのエラー&ブレークでエディタ画面に上手く戻れないのを修正しました。 +            ファイル名入力でのデフォルト入力をALPHAモードにしました。 + + +v0.33 2015.10.24 テスト版(インタプリタのみ) + ENGモード追加しました。 +            MOD()関数のバグ修正しました。 + エディタのCopy&Pasteモードのプログラムを走らせた後におかしくなる不具合修正しました。 + + +v0.32 2015.10.20 テスト版(インタプリタのみ) + エディタのカーソル移動をCasio Basic準拠にしました。 + エディタのカーソル形状がALPHAモードで変わらなかったバグを修正しました。 + + +v0.30 2015.10.18 テスト版(インタプリタのみ) + ファイルのRenameに対応しました。 + エディタにCopy&Paste追加しました + エディタにfx-5800P準拠のコマンド選択画面を追加しました。 + + +v0.21 2015.10.17 テスト版(インタプリタのみ) + Plotコマンドのみだと画面表示されないバグ解消(^^; + Plotコマンドプログラム終了時の動作改善。 + RclPictで11以上が動作しなかったバグの修正。 + 指数のみ(e10等)形式入力対応。 + 表示形式のNorm1,Norm2対応。 + (Norm 0~15のうち1と2はCasio Basic互換、それ以外は有効桁指定。デフォルトはNorm1。) + ?Aコマンド修正しました。 + + +v0.20 2015.10.16 テスト版(インタプリタのみ) + Plotコマンドの修正。 + Circleコマンド修正。 + 数値表示修正&桁数指定。(Fix,Sci,Rndコマンド追加) + エディタでキャラクタ選択画面追加。 + その他、細かな修正。 + + +v0.10 2015.10.12 テスト版(インタプリタのみ) diff --git a/doc-cg/Command_List_CG.txt b/doc-cg/Command_List_CG.txt new file mode 100644 index 0000000..655e956 --- /dev/null +++ b/doc-cg/Command_List_CG.txt @@ -0,0 +1,1236 @@ +--------------------------------------------------------------------------------- +C.Basic for CG Ver 1.46beta Command List + +Last edited by sentaro21, 22 Oct 2023(UTC) + +--------------------------------------------------------------------------------- +------------------ Standard Mode ------------------------------------------------ +--------------------------------------------------------------------------------- +[SETUP]menu +Command Inpt:Standard + +----------------------------------------[MENU] +[MENU](F3) + --[STAT] + -[DRAW] + -[DrawOn] + -[DrawOff] + -[GRAPH] + -[S-Gph1] + -[S-Gph2] + -[S-Gph3] + -[Scatter] + -[xyLine] + -[List] + -[TYPE] + -[Square] + -[Cross] + -[Dot] + + --[MAT] + -[Swap] + -[*Row] + -[*Row+] + -[Row+] + + --[LIST] + -[SortA] + -[SortD] + + --[extc] (*extended) + -[ ? ] (*extended) + -[ Disps ] (*extended) + -[ : ] (*extended) + -[ => ] (*extended) + -[ ' ] (*extended) + -[ / ] (*extended) + + --[ # ] (*extended) + --[ % ] (*extended) + +----------------------------------------[OPTN] +[OPTN] + --[LIST] + -[List] + -[List->Mat] + -[Dim] + -[Fill] + -[Seq] + + -[Min] + -[Max] + -[Mean] + -[Augment] + + -[Sum] + -[Prod] + -[ListCmp] (*extended) + + --[MAT/VCT] + -[Mat] + -[Mat->List] + -[Det] + -[Trn] + -[Augment] + + -[Identity] + -[Dim] + -[Fill] + -[Ref] + -[Rref] + + -[Vct] + -[DotP(] + -[CrossP(] + -[Angle(] + -[UnitV(] + + -[Vct] + -[DotP(] + -[CrossP(] + -[Angle(] + -[UnitV(] + + -[Norm(] + -[Size] (*extended) + -[MatBase] (*extended) + -[ElemSize] (*extended) + -[RowSize] (*extended) + -[ColSize] (*extended) + +--[COMPLEX] + -[i] + -[Abs] + -[Arg] + -[Conjg] + + -[ReP] + -[ImP] + -[>rڃ] + -[>a+bi] + +--[CALC] + -[Sigma] + -[Logab] + + -[Int/] + -[Rmdr] + +--[Extend] (*extended) + -[Alias] (*extended) + -[_] (*extended) + -[Const] (*extended) + -[ & ] (*extended) + -[ # ] (*extended) + -[ % ] (*extended) + + --[@] + + --[HYPERBL] + -[sinh] + -[cosh] + -[tanh] + -[sinh^-1] + -[cosh^-1] + -[tanh^-1] + + --[PROB] + -[ X1 ] + -[nPr] + -[nCr] + -[RAND] + -[Ran#] + -[RanInt#] + -[RanNorm#] + -[RanBin#] + -[RanList#] + + --[NUMERIC] + -[Abs] + -[Int] + -[Frac] + -[Rnd] + -[Intg] + + -[RndFix] + -[GCD] + -[LCM] + -[MOD] + + --[ANGLE] + -[(deg)] + -[(rad)] + -[(grad)] + -[(dms)] + + -[Pol] + -[Rec] + -[>DMS] + + --[ENG-SYM] + -[ mili ] + -[ micro ] + -[ nano ] + -[ pico ] + -[ femto ] + + -[ Kiro ] + -[ Mega ] + -[ Giga ] + -[ Tera ] + -[ Peta ] + + -[ Exa ] + + --[PICTURE] + -[StoPict] + -[RclPict] + + --[FUNCMEM] + -[fn] + + --[LOGIC] + -[And] + -[Or] + -[Not] + -[Xor] + + -[and] (*extended) + -[or] (*extended) + -[not] (*extended) + -[xor] (*extended) + + --[CAPTURE] + -[StoCapt] (*extended) + -[RclCapt] + +----------------------------------------[VARS] +[VARS] + --[V-WIN] + -[ X ] + -[Xmin] + -[Xmax] + -[Xscl] + -[Xdot] + -[ Y ] + -[Ymin] + -[Ymax] + -[Yscl] + -[T,Theta] + -[TTehtamin] + -[TTehtamax] + -[TTehtaptch] + + --[FACTOR] + -[Xfct] + -[Yfct] + + --[Extend] (*extended) + -[Ticks] (*extended) + -[Wait] (*extended) + -[DATE] (*extended) + -[TIME] (*extended) + -[BackLight] (*extended) + -[BatteryStatus] (*extended) + + --[GRAPH] + -[GraphY] + + --[SETUP] go to Setup Page + + --[ # ] (*extended) + --[ % ] (*extended) + --[ ~ ] (*extended) + --[ $ ] (*extended) + --[Str] + +----------------------------------------[PRGM] +[PRGM]([SHIFT]+[VARS]) + --[COMMAND] + -[If] + -[Then] + -[Else] + -[IfEnd] + -[ElseIf] (*extended) + + -[For] + -[To] + -[Step] + -[Next] + + -[While] + -[WhileEnd] + -[Do] + -[LpWhile] + + -[Switch] (*extended) + -[Case] (*extended) + -[Default] (*extended) + -[Break] (*extended) + -[SwitchEnd] (*extended) + + --[CONTROL] + -[Prog] + -[Return] + -[Break] + -[Stop] + -[Local] (*extended) + + -[Gosub] (*extended) + -[ACBreak] (*extended) + -[Try] (*extended) + -[Except] (*extended) + -[TryEnd] (*extended) + + --[JUMP] + -[Lbl] + -[Goto] + -[=>] + -[Isz] + -[Dsz] + -[Menu] + + --[ ? ] + --[Disps] + + --[CLEAR] + -[ClrText] + -[ClrGraph] + -[ClrList] + -[ClrMat] + -[ClrVct] + + --[DISPLAY] + -[DrawStat] + -[DrawGraph] + -[Disp] (*extended) + + --[RELATNL] + -[ = ] + -[ != ] + -[ > ] + -[ < ] + -[ >= ] + -[ <= ] + + --[I/O] + -[Locate] + -[Getkey] + -[Send] + -[Receive] + -[KeyRow] (*extended) + + -[Send38k] + -[Receive38k] + -[OpenComport38k] + -[CloseComport38k] + -[Beep] (*extended) + + -[IsExist] (*extended) + -[Save] (*extended) + -[Load] (*extended) + -[Delete] (*extended) + + --[ : ] + + --[STR] + -[StrJoin] + -[StrLen] + -[StrCmp] + -[StrSrc] + -[StrRepl] (*extended) + + -[StrLeft] + -[StrRight] + -[StrMid] + -[Exp>Str] + -[Exp] + + -[StrUpr] + -[StrLwr] + -[StrInv] + -[StrShift] + -[StrRotate] + + --[ $ ] (*extended) + + --[ExStr] (*extended) + -[Str] + -[ToStr] (*extended) + -[Sprintf] (*extended) + -[ % ] (*extended) + -[ # ] (*extended) + + -[StrChar] (*extended) + -[StrCenter] (*extended) + -[StrBase] (*extended) + -[Hex] (*extended) + -[Bin] (*extended) + + -[StrSplit] (*extended) + -[StrAsc] (*extended) + + --[EXEC] (*extended) + -[SysCall] (*extended) + -[Call] (*extended) + -[Poke] (*extended) + -[Peek] (*extended) + + -[VarPtr] (*extended) + -[ProgPtr] (*extended) + -[ * ] (*extended) + -[ & ] (*extended) + +----------------------------------------[SETUP] +[SETUP]([SHIFT]+[MENU]) + --[ANGLE] + -[Deg] + -[Rad] + -[Gra] + + --[COORD] + -[CoordOn] + -[CoordOff] + + --[GRID] + -[GridOn] + -[GridOff] + -[GridLine] + + --[AXES] + -[AxesOn] + -[AxesOff] + -[AxesScale] + + --[LABEL] + -[LabelOn] + -[LabelOff] + + --[DISPLAY] + -[Fix] + -[Sci] + -[Norm] + -[Eng] + -[EngOn] + -[EngOff] + -[Eng] + + --[SKT/LIN] + -[S-L-Normal] + -[S-L-Thick] + -[S-L-Broken] + -[S-L-Dot] + -[S-L-Thin] + + --[DRAW] + -[G-Connect] + -[G-Plot] + + --[DERIV] + -[DerivOn] + -[DerivOff] + + --[BACK] + -[BG-None] + -[BG-Pict] + + --[FUNC] + -[FuncOn] + -[FuncOff] + +--[COMPLEX] + -[Real] + -[a+bi] + -[rڃ] + + --[SGW-WIN] + -[S-WindAuto] + -[S-WindMan] + + --[RefrshCtrl] (*extended) + --[RefrshTime] (*extended) + --[DATE] (*extended) + --[TIME] (*extended) + --[Wait] (*extended) + + --[Plot/Line-Color] + --[Back-Color] (*extended CG) + --[RGB] (*extended CG) + --[System] (*extended) + --[Version] (*extended) + +----------------------------------------[SHIFT] +[SHIFT] + --[V-WIN] + -[ViewWindow] + -[StoV-Win] + -[RclV-Win] + + --[SKETCH] + -[Cls] + + -[Extend] (*extended) + -[Screen] (*extended) + -[PutDispDD] (*extended) + -[LocateYX] (*extended) + -[FkeyMenu] (*extended) + -[PopUpWin] (*extended) + + -[Rect] (*extended) + -[FillRect] (*extended) + -[ReadGraph] (*extended) + -[WriteGraph] (*extended) + + -[DotGet] (*extended) + -[DotPut] (*extended) + -[DotTrim] (*extended) + -[DotLife] (*extended) + -[CellSum] (*extended) + + -[ML] (*extended) + -[_ClrVram] (*extended) + -[_ClrScreen] (*extended) + -[_DispVram] (*extended) + -[_PixelTest] (*extended) + -[_Test] (*extended) + + -[_Pixel] (*extended) + -[_Point] (*extended) + -[_Line] (*extended) + -[_Horizontal] (*extended) + -[_Vertical] (*extended) + + -[_Rectangle] (*extended) + -[_Polygon] (*extended) + -[_FillPolygon] (*extended) + -[_Circle] (*extended) + -[_FillCircle] (*extended) + + -[_Elips] (*extended) + -[_FillElips] (*extended) + -[_ElipsInRct] (*extended) + -[_FElipsInRct] (*extended) + -[_Paint] (*extended) + + -[_Hscroll] (*extended) + -[_Vscroll] (*extended) + -[_Contrast] (*extended) + + -[BMP] (*extended) + -[_Bmp] (*extended) + -[_Bmp8] (*extended) + -[_Bmp16] (*extended) + -[_BmpZoom] (*extended) + -[_BmpRotate] (*extended) + + -[BmpSave] (*extended) + -[BmpLoad] (*extended) + -[DrawMat] (*extended) + -[_BmpZmRotate] (*extended) + + -[GetFont] (*extended) + -[SetFont] (*extended) + -[GetFontMini] (*extended) + -[SetFontMini] (*extended) + + + -[GRAPH] + -[Graph Y=] + -[Graph(X,Y)=] + + -[PLOT] + -[Plot] + -[PlotOn] + -[PlotOff] + -[PlotChg] + -[LINE] + -[Line] + -[F-Line] + -[Circle] + -[Vertical] + -[Horizontal] + + -[COLOR] (*extended CG) + -[Plot/Line-Color] + -[Back-Color] (*extended CG) + -[RGB] (*extended CG) + -[GetRGB] (*extended CG) + + -[HSV] (*extended CG) + -[GetHSV] (*extended CG) + -[HSL] (*extended CG) + -[GetHSL] (*extended CG) + -[Transp-Color] (*extended CG) + + -[Text] + + -[PIXEL] + -[PxlOn] + -[PxlOff] + -[PxlChg] + + -[PxlTest] + + -[STYLE] + -[SketchNormal] + -[SketchThick] + -[SketchBroken] + -[SketchDot] + -[SketchThin] + +------------------ C.Basic Mode ------------------------------------------------- +--------------------------------------------------------------------------------- +[SETUP]menu +Command Inpt:C.Basic (*)extended + +----------------------------------------[COMMAND] +[COMMAND](F3) +-------------------------------STD + 1:? 2:-> + 3:If 4:Then + 5:Else 6:IfEnd + 7:Lbl 8:Goto + 9:ElseIf(*) 0:~ + .:# e:% +----------------------------- + 1:= 2:!= + 3:> 4:< + 5:>= 6:<= + 7:And 8:Or + 9:Not 0:Xor + .:# e:% +----------------------------- + 1:Dsz 2:Isz + 3:=> 4:Locate + 5:Cls 6:Disp + 7:ClrText 8:ClrGraph + 9:ClrMat 0:ClrList + .:ClrVct e:% +----------------------------- + 1:For 2:To + 3:Step 4:Next + 5:While 6:WhileEnd + 7:Do 8:LpWhile + 9:Menu 0:~ + .:# e:% +----------------------------- + 1:Break 2:Return + 3:Stop 4:Getkey + 5:Prog 6:Gosub(*) + 7:Local(*) 8:ACBreak(*) + 9:Switch(*) 0:Case(*) + .:Default(*) e:SwitchEnd(*) +----------------------------- + 1:Dim 2:List->Mat( + 3:Fill( 4:Seg( + 5:Min( 6:Max( + 7:Mean( 8:Augment( + 9:Sum 0:Proud + .:Listcmp e:% +----------------------------- + 1:Dim 2:Mat->List( + 3:Det 4:Trn + 5:Identity 6:Fill( + 7: 8:Augment( + 9:Ref 0:Rref + .:# e:% +----------------------------- + 1:Vct 2:CrossP( + 3:DotP( 4:Angle( + 5:Unity( 6:Norm( + 7:SortA( 8:SortD( + 9:Swap 0:*Row + .:*Row+ e:Row+ +----------------------------- + 1:MatBase (*) 2:ElemSize (*) + 3:RowSize( (*) 4:ColSize( (*) + 5:CellSum( (*) 6: + 7: 8: + 9:_ 0:$ + .:# e:% +----------------------------- + 1:Send( 2:Receive( + 3:OpenComport38k4:CloseComport38k + 5:Send38k 6:Receive38k + 7:Beep(*) 8: + 9: 0: + .:# e:% +----------------------------- + 1:Plot/Line-Color2:Back-Color(*) + 3:RGB( (*) 4:GetRGB( (*) + 5:HSV( (*) 6:GetHSV( (*) + 7:HSL( (*) 8:GetHSL( (*) + 9:Transp-Color(*) 0: + .:# e:% +-------------------------------GR + 1:Cls 2:ClrGraph + 3:ViewWindow 4:Plot + 5:PlotOn 6:PlotOff + 7:PlotChg 8:Circle + 9:Line 0:F-Line + .:Vertical e:Horizontal +----------------------------- + 1:PxlOn 2:PxlOff + 3:PxlChg 4:PxlTest( + 5:Text 6:LocateYX(*) + 7:Graph(X,Y)=( 8:Graph Y= + 9:DrawGraph 0:GraphY + .:StoCapt(*) e:RclCapt +----------------------------- + 1:Graph(X,Y)=( 2:DrawStat + 3:DrawOn 4:DrawOff + 5:S-Gph1 6:S-Gph2 + 7:S-Gph3 8:Square + 9:Cross 0:Dot + .:Scatter e:xyLine +----------------------------- + 1:SketchNormal 2:SketchThick + 3:SketchBroken 4:SketchDot + 5:S-L-Normal 6:S-L-Thick + 7:S-L-Broken 8:S-L-Dot + 9:BG-None 0:BG-Pict + .:StoPict e:RclPict +----------------------------- + 1:G-Connect 2:G-Plot + 3:CoordOn 4:CoordOff + 5:GridOn 6:GridOff + 7:AxesOn 8:AxesOff + 9:LabelOn 0:LabelOff + .:StoV-Win e:RclV-Win +----------------------------- + 1:Xmin 2:Ymin + 3:Xmax 4:Ymax + 5:Xscl 6:Yscl + 7:Xfct 8:Yfct + 9:Xdot 0:TThetamin + .:TThetamax e:TThetaptch +----------------------------- + 1:GridLine 2:AxesScale + 3:ColorAuto 4:ColorClr + 5:ColorLighter 6:ColorNormal + 7:ColorLinkOn 8:ColorLinkOff + 9:ColorLinkX&Y 0:ColorLinkOnlyX + .:ColorLinkOnlyYe:ColorLinkX&Freq +-------------------------------FN + 1:Abs 2:Int + 3:Frac 4:Intg + 5:MOD( 6:! + 7:Int/ 8:Rmdr + 9:Sigma( 0:logab( + .:GCD( e:LCM( +----------------------------- + 1:sinh 2:cosh + 3:tanh 4:sinh^-1 + 5:cosh^-1 6:tanh^-1 + 7:and(*) 8:or(*) + 9:not(*) 0:xor(*) + .:& e:| +----------------------------- + 1:Ran# 2:RanInt#( + 3:RndNorm#( 4:RanBin#( + 5:Rnd 6:RndFix( + 7:Norm 8:Fix + 9:Sci 0:Eng + .:EngOn e:EngOff +----------------------------- + 1:deg 2:rad + 3:gra 4:>DMS + 5:dms 6:fn + 7:Deg 8:Rad + 9:Gra 0:~ + .:Pol( e:Rec( +----------------------------- + 1:femto 2:pico + 3:nano 4:micro + 5:milli 6:Kiro + 7:Mega 8:Giga + 9:Tera 0:Peta + .:Exa e:% +----------------------------- + 1:Arg 2:Conjg + 3:ReP 4:ImP + 5:Vct 6:DotP( + 7:CrossP( 8:Angle( + 9:UnitV( 0:Norm( + .:# e:% +-------------------------------STR + 1:Str 2:StrJoin( + 3:StrLen 4:StrCmp( + 5:StrSrc( 6:StrLeft( + 7:StrRight( 8:StrMid( + 9:_ 0:$ + .:# e:% +----------------------------- + 1:Exp>Str( 2:Exp( + 3:StrUpr( 4:StrLwr( + 5:StrInv( 6:StrShift( + 7:StrRotate( 8: + 9:_ 0:$ + .:# e:% +----------------------------- + 1:ToStr( (*) 2:Sprintf (*) + 3:Hex( (*) 4:Bin( (*) + 5:StrChar( (*) 6:StrCenter( (*) + 7:StrRepl( (*) 8:StrSplit( (*) + 9:StrAsc( (*) 0:$ + .:# e:% +-------------------------------EX all of (*) + 1:AliasVar 2:Ticks + 3:DATE 4:TIME + 5:IsExist( 6:Delete + 7:Save 8:Load( + 9:PutDispDD 0:Wait + .:# e:Const +----------------------------- + 1:Screen 2:PutDispDD + 3:Rect( 4:FillRect( + 5:ReadGraph( 6:WriteGraph( + 7:DotGet( 8:DotPut( + 9:DotTrim( 0:DotLife( + .:CellSum( e:% +----------------------------- + 1:SysCall( 2:Call( + 3:Poke( 4:Peek( + 5:* 6:& + 7:VarPtr( 8:ProgPtr( + 9:_ 0:$ + .:# e:% +----------------------------- + 1:FKeyMenu( 2:PopUpWin( + 3:RefreshCtrl 4:RefreshTime + 5:KeyRow( 6:BackLight + 7:MatBase( 8:ElemSize( + 9:RowSize( 0:ColSize( + .:# e:% +----------------------------- + 1:_ClrVram 2:_ClrScreen + 3:_DispVram 4:_Point + 5:_Pixel 6:_PixelTest( + 7:_Line 8:_Rectangle + 9:_Horizontal 0:_Vertical + .:# e:% +----------------------------- + 1:_Polygon 2:_FillPolygon + 3:_Circle 4:_FillCircle + 5:_Elips 6:_FillElips + 7:_ElipsInRct 8:_FElipsInRct + 9:_Hscroll 0:_Vscroll + .:# e:% +----------------------------- + 1:_Bmp 2:_Bmp8 + 3:_Bmp16 4:_BmpZoom + 5:_BmpRotate 6:BmpSave + 7:BmpLoad( 8:DrawMat + 9:_Test 0:_BmpZmRotate + .:_Paint e:% +----------------------------- + 1:GetFont( 2:SetFont + 3:GetFontMini( 4:SetFontMini + 5:Try 6:Except + 7:TryEnd 8:BatteryStatus + 9:Beep 0:Version + .:System( e:% +----------------------------- + +----------------------------------------[OPTN] +[OPTN] + Abs + Int + Intg + frac + ! + MOD( + GCD( + LCM( + logab( + + And + Or + Not + Xor + Ran# + RanInt#( + RanNorm#( + RanBin#( + RanList#( + + and (*) + or (*) + not (*) + xor (*) + Int/ + Rmdr + + Rnd + RndFix( + Norm + Fix + Sci + Eng + EngOn + EngOff + + Dim + Trn + Fill( + Swap + *Row + *Row+ + Row+ + Identity + MatBase( + ElemSize( + RowSize( + ColSize( + CellSum( + + Seq( + Augment( + List->Mat( + Mat->List( + Max( + Min( + Mean( + Sum + Prod + SortA( + SortD( + Sigma( + ListCmp( (*) + Vct + DotP( + Angle( + UnitV( + Norm( + + sinh + cosh + tanh + sinh^-1 + cosh^-1 + tanh^-1 + + Arg + Conjg + ReP + ImP + + + femto + pico + nano + micro + milli + Kiro + Mega + Giga + Tera + Peta + Exa + + Deg + Rad + Gra + (deg) + (rad) + (gra) + + dms + >DMS + Pol( + Rec( + DATE (*) + TIME (*) + Ticks (*) + Wait (*) + BatteryStatus (*) + Beep (*) + Version (*) + System( (*) + IsError( (*) + + Plot/Line-Color(*) + Back-Color (*) + Transp-Color (*) + RGB( (*) + GetRGB( (*) + HSV( (*) + GetHSV( (*) + HSL( (*) + GetHSL( (*) + + # + $ + % + | + & + * + +----------------------------------------[VARS] +[VARS] + Cls + ClrGraph + ViewWindow + Plot + Line + F-Line + + Vertical + Horizontal + Circle + Text + LocateYX (*) + + PlotOn + PlotOff + PlotChg + PxlOn + PxlOff + PxlChg + PxlTest( + + Deg + Rad + Gra + G-Connect + G-Plot + CoordOn + CoordOff + GridOn + GridOff + AxesOn + AxesOff + LabelOn + LabelOff + DerivOn + DerivOff + + S-L-Normal + S-L-Thick + S-L-Broken + S-L-Dot + S-L-Thin + SketchNormal + SketchThick + SketchBroken + SketchDot + SketchThin + + Xmin + Xmax + Xscl + Xdot + Ymin + Ymax + Yscl + Xfct + Yfct + TThetamin + TThetamax + TThetaptch + + StoV-Win + RclV-Win + StoPict + RclPict + StoCapt (*) + RclCapt + BG-None + BG-Pict + fn + GraphY + DrawGraph + Graph Y= + + Graph(X,Y)=( + DrawStat + DrawOn + DrawOff + S-Gph1 + S-Gph2 + S-Gph3 + Square + Cross + Dot + Scatter + xyLine + GridLine + AxesScale + + ColorAuto + ColorClr + ColorLighter + ColorNormal + ColorLinkOn + ColorLinkOff + ColorLinkX&Y + ColorLinkOnlyX + ColorLinkOnlyY + ColorLinkX&Freq + + Rect (*) + FillRect (*) + ReadGraph( (*) + WriteGraph (*) + DotGet( (*) + DotPut( (*) + DotTrim( (*) + DotLife( (*) + DotShape( (*) + + Screen (*) + PutDispDD (*) + FKeyMenu( (*) + PopUpWin( (*) + BackLight (*) + RefrshCtrl (*) + RefrshTime (*) + + _ClrVram (*) + _ClrScreen (*) + _DispVram (*) + _Contrast (*) + _Point (*) + _Pixel (*) + _PixelTest( (*) + _Line (*) + _Rectangle (*) + _Horizontal (*) + _Vertical (*) + _Polygon (*) + _FillPolygon (*) + _Circle (*) + _FillCircle (*) + _Elips (*) + _FillElips (*) + _ElipsInRct (*) + _FElipsInRct (*) + _Hscroll (*) + _Vscroll (*) + + _Bmp (*) + _Bmp8 (*) + _Bmp16 (*) + _BmpZoom (*) + _BmpRotate (*) + _BmpZmRotate (*) + _Paint (*) + DrawMat (*) + _Test (*) + BmpSave (*) + BmpLoad( (*) + GetFont( (*) + GetFontMini( (*) + SetFont (*) + SetFontMini (*) + +----------------------------------------[PRGM] +[PRGM]([SHIFT]+[VARS]) + ? + Disps + : + ' + ~ + + = + != + > + < + >= + <= + + Lbl + Goto + => + Isz + Dsz + Menu + + If + Then + Else + ElseIf (*) + IfEnd + + For + To + Step + Next + + While + WhileEnd + Do + LpWhile + + Switch (*) + Case (*) + Default (*) + SwitchEnd (*) + + Prog + Return + Break + Stop + Local (*) + Gosub (*) + ACBreak (*) + + ClrText + ClrGraph + ClrList + ClrMat + ClrVct + Locate + Getkey + Disp (*) + + Send( + Receive( + OpenComport38k + CloseComport38k + Send38k + Receive38k + + KeyRow( (*) + Alias (*) + Const (*) + IsExist( (*) + Delete (*) + Save (*) + Load( (*) + SysCall( (*) + Call( (*) + Poke( (*) + Peek( (*) + VarPtr( (*) + ProgPtr( (*) + + Str + StrJoin( + StrLen( + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrLwr( + StrInv( + StrShift( + StrRotate( + + Sprintf( (*) + StrChar( (*) + StrCenter( (*) + StrRepl( (*) + StrSplit( (*) + Hex( (*) + Bin( (*) + StrBase( (*) + ToStr( (*) + StrAsc( (*) + _ + $ + diff --git a/doc-cg/ErrorCode_List.txt b/doc-cg/ErrorCode_List.txt new file mode 100644 index 0000000..2a4fc1a --- /dev/null +++ b/doc-cg/ErrorCode_List.txt @@ -0,0 +1,60 @@ +Error Code List +------------------------------ +1: Syntax ERROR +2: Ma ERROR +3: Go ERROR +4: Nesting ERROR +5: Stack ERROR +6: Memory ERROR +7: Argument ERROR +8: Dimension ERROR +9: Range ERROR + +11: Non-Real ERROR + +20: Com ERROR +21: Transmit ERROR +22: Receive ERROR + +28: Too Much Data + +33: Missing Next +34: Missing For +35: Missing WhileEnd +36: Missing While +37: Missing LpWhile +38: Missing Do +39: Not Loop ERROR +40: Zero Division +41: Undefined Label +42: Not Enough Memory +43: String Too Long +44: No Matrix array +45: Invalid Ary Size +46: Prog Not Found +47: Too Many SubProg +48: Missing IfEnd +49: Missing If +50: Missing Switch +51: Missing Switch +52: Missing SwitchEnd +53: Missing Switch +54: File Not Found +55: Illegal Element +56: Com Opened +57: Com Closed +58: Invalid Type +59: Out of Domain +60: Var Undefined +61: Func Undefined +62: Not Supported +63: VarLimit Exceeded +64: Duplicate Def +65: Address Align ERR +66: Time Out +70: Missing Except +71: Missing Try +72: Missing Try73: Can not Support (#003F) +74: Can not Support (#041F) +75: Can not Support (#F820) +76: Can not Support (#FC00) diff --git a/doc-cg/Extended_opcode_list.txt b/doc-cg/Extended_opcode_list.txt new file mode 100644 index 0000000..be914ac --- /dev/null +++ b/doc-cg/Extended_opcode_list.txt @@ -0,0 +1,160 @@ +--------------------------------------------------------------------------------- +C.Basic for CG Ver 1.00beta Extended Opcode List + +Last edited by sentaro21/Colon, 15 Jun 2019(UTC) + +--------------------------------------------------------------------------------- + 0x00A7 "not " // Not -> not + 0x009A " xor " // add space + 0x00AA " or " // add space + 0x00BA " and " // add space + 0x00FA "Gosub " + + 0x7F58 "ElemSize(" + 0x7F59 "ColSize(" + 0x7F5A "RowSize(" + 0x7F5B "MatBase(" + 0x7F5C "ListCmp(" + 0x7F5D "GetRGB(" // for CG + 0x7F5E "RGB(" // for CG + 0x7F5F "Ticks" + 0x7F9F "KeyRow(" + 0x7FCF "System(" + 0x7FDF "Version" + 0x7FF5 "IsExist(" + 0x7FF6 "Peek(" + 0x7FF8 "VarPtr(" + 0x7FFA "ProgPtr(" + + 0xF70C "Return " // add space + 0xF70F "ElseIf " + 0xF717 "ACBreak" + 0xF737 "Try " + 0xF738 "Except " + 0xF739 "TryEnd" + 0xF73B "DotPut(" + 0xF73D "DotTrim(" + 0xF73E "DotGet(" + 0xF79D "StoCapt" + 0xF7DD "Beep " + 0xF7DE "BatteryStatus" // for CG + 0xF7DF "Delete " + 0xF7E0 "DotLife(" + 0xF7E1 "Rect " + 0xF7E2 "FillRect " + 0xF7E3 "LocateYX " + 0xF7E4 "Disp " + 0xF7E8 "ReadGraph(" + 0xF7E9 "WriteGraph " + 0xF7EA "Switch " + 0xF7EB "Case " + 0xF7EC "Default " + 0xF7ED "SwitchEnd" + 0xF7EE "Save " + 0xF7EF "Load(" + 0xF7F0 "DotShape(" + 0xF7F1 "Local " + 0xF7F2 "PopUpWin(" + 0xF7F4 "SysCall(" + 0xF7F5 "Call(" + 0xF7F6 "Poke(" + 0xF7F8 "RefrshCtrl " + 0xF7FA "RefrshTime " + 0xF7FB "Screen" + 0xF7FC "PutDispDD" + 0xF7FD "FKeyMenu(" + 0xF7FE "BackLight " + + 0xF90E "Const " + 0xF90F "Alias " // AliasVar -< Alias + 0xF940 "ToStr(" // Str( -> ToStr( + 0xF941 "DATE" + 0xF942 "TIME" + 0xF943 "Sprintf(" + 0xF944 "StrChar(" + 0xF945 "StrCenter(" + 0xF946 "Hex(" + 0xF947 "Bin(" + 0xF948 "StrBase(" + 0xF949 "StrRepl(" + 0xF94D "StrSplit(" + 0xF94F "Wait " + 0xF950 "StrAsc(" + 0xF960 "GetFont(" + 0xF961 "SetFont " + 0xF962 "GetFontMini(" + 0xF963 "SetFontMini " + 0xF999 "Plot/Line-Color " // for CG + 0xF99B "Black " // for CG + 0xF99C "White " // for CG + 0xF99D "Magenta " // for CG + 0xF99E "Cyan " // for CG + 0xF99F "Yellow " // for CG + 0xF9BE "Back-Color " // for CG + 0xF9BF "Transp-Color " // for CG + 0xF9C0 "_ClrVram" + 0xF9C1 "_ClrScreen" + 0xF9C2 "_DispVram" + 0xF9C3 "_Contrast" + 0xF9C4 "_Pixel " + 0xF9C5 "_Point " + 0xF9C6 "_PixelTest(" + 0xF9C7 "_Line " + 0xF9C8 "_Horizontal " + 0xF9C9 "_Vertical " + 0xF9CA "_Rectangle " + 0xF9CB "_Polygon " + 0xF9CC "_FillPolygon " + 0xF9CD "_Circle " + 0xF9CE "_FillCircle " + 0xF9CF "_Elips " + 0xF9D0 "_FillElips " + 0xF9D1 "_ElipsInRct " + 0xF9D2 "_FElipsInRct " + 0xF9D3 "_Hscroll " + 0xF9D4 "_Vscroll " + 0xF9D5 "_Bmp " + 0xF9D6 "_Bmp8 " + 0xF9D7 "_Bmp16 " + 0xF9D8 "_Test" + 0xF9D9 "_BmpZoom " + 0xF9DA "_BmpRotate " + 0xF9DB "BmpSave " + 0xF9DC "BmpLoad(" + 0xF9DD "DrawMat " + 0xF9DE "_BmpZmRotate " + 0xF9DF "_Paint " // for CG + + 0x7F3A "MOD(" // SDK emu not support OS 2.00 or later + 0x7F3C "GCD(" // SDK emu not support OS 2.00 or later + 0x7F3D "LCM(" // SDK emu not support OS 2.00 or later + 0x7F84 "Vct" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0x7F87 "RanInt#(" // SDK emu not support OS 2.00 or later + 0x7F88 "RanList#(" // SDK emu not support OS 2.00 or later + 0x7FB4 " Xor " // SDK emu not support OS 2.00 or later + 0x7FBC " Int/ " // SDK emu not support OS 2.00 or later + 0x7FBD " Rmdr " // SDK emu not support OS 2.00 or later + + 0xF79E "Menu " // SDK emu not support OS 2.00 or later + + 0xF930 "StrJoin(" // SDK emu not support OS 2.00 or later + 0xF931 "StrLen(" // SDK emu not support OS 2.00 or later + 0xF932 "StrCmp(" // SDK emu not support OS 2.00 or later + 0xF933 "StrSrc(" // SDK emu not support OS 2.00 or later + 0xF934 "StrLeft(" // SDK emu not support OS 2.00 or later + 0xF935 "StrRight(" // SDK emu not support OS 2.00 or later + 0xF936 "StrMid(" // SDK emu not support OS 2.00 or later + 0xF937 "Exp>Str(" // SDK emu not support OS 2.00 or later + 0xF938 "Exp(" // SDK emu not support OS 2.00 or later + 0xF939 "StrUpr(" // SDK emu not support OS 2.00 or later + 0xF93A "StrLwr(" // SDK emu not support OS 2.00 or later + 0xF93B "StrInv(" // SDK emu not support OS 2.00 or later + 0xF93C "StrShift(" // SDK emu not support OS 2.00 or later + 0xF93D "StrRotate(" // SDK emu not support OS 2.00 or later + 0xF93E "ClrVct" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF93F "Str " // SDK emu not support OS 2.00 or later + 0xF94A "CrossP(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF94B "DotP(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF95B "Norm(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF95E "UnitV(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF96D "Angle" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later \ No newline at end of file diff --git a/doc-cg/JIS_to_GB_Tbl.txt b/doc-cg/JIS_to_GB_Tbl.txt new file mode 100644 index 0000000000000000000000000000000000000000..4771416f66f23eaf7c99329b3f34f4af81946c00 GIT binary patch literal 88794 zcmZ6U3Ebyn)&Fm6?#dR)lBg$3A~TGcF+{T%`z)Bn*lycooqc1N88ddnm|=_=V@+j^ zP^n}IDNE8`DkOxY5F-4~`+8sJ@_*egFVEBG{@mwU&gYzSo$vMg{%#+8HxMbX>9ouzm-LYdw?~Wbfr)M2K>Y#Bw2KP9;#|k}G@Azm3|GwMfkRIcD z%!+?H4}9{-SNDH!&W0cK44c03PmgNj?>#%@gR#e)-R~rRC#W79e(?W~>+is?J|usG z-{~1E`2WYrdAqN)vt##;0Wsf}9b-FYbZpZxF!1+!ywu}=J$}&RhWP(?_IS9*%RRnO z*31~ohjeyqA0uzq(X*qoV_Bd<@xKOk^eMlw-iTzk3-*ZvlI>mCmBu8yeXyW`VLhm0 zx5DmvNwU3y1r3OK`o~PndvA>8ygLL7l6BsV4o|jsustUw>&ROknQWh6LE82zBfoiI zvVDUEZBu^!xeN2>JI2pJ17erE#fn(Z)YFsgA1r7<$Kd#9Kw&>UFWCXXf(FH2cdK3+ zc5<=s%l7-qb>trj&w?sWUYPCO!QQ4^&1E;}fHj*cLr zYjCWbF@I52-ah8&ENDQmyTz_xXP%k1s0kVzdmK=G`^KfoqUMyP>}9(c-N-!R)MQcf zkF(rM|L{H|-`!X=eK}a7U_jOMg62ImJuAF7I20dLSG8W-DVl-?#6PTzk*_?(d3zO2 zK?8#wRO9n|XD3UZf>3*4WzVU;>J?*kc7Vu;0d?f>9GbRh3Sz&5Vr9(RS>v!*?69*S zZQbvZv1yC4AX%eyj~W%dVyw;%kZj*F@{dabN29+JT=8q0dTl59N4y+pO+gS7k5sfH;H!g21`hv7|ReKK0k)YAV+pp>(toTA$Hi=0m3$G)GEj3 zyyy#Zzpm;B6Ou*WexabNvKkMank@Q)oY(3%p|R+@;$gYwfo09_o|Lxe3vyng{pOm# zJH$^zqsU+9)%MlKqVG+W9Z>W4{y8}^`hr}Q(Y{8ly1k3OAV+q;N7nr9U1~DORq5vy z&vWG7Mc;Mi=g3y<5%uKiUG)9)f*jc#Jh`#xJ1USP%kC7lm}*bw(%AumrLLgw;+jXj zOa6iel!$fBUvDh>f(Ar1_pep-sao@U$2kyj6^QK2YIfV4oELpTvd(*7TQmBCWX*+F zXQVCqzB!$GH7Mp*!H%{n^aZ&i^Y`DQ(-wU}vg&)yxMa~61e@o0-?l3B1;NtM;H&NG zDc`5)yHg;}6Z{3cW%LC2xlhp-G$88fzChj;Wy}`sjwitNkqd=Xe_)c3SHP(wSPCxE=NYE z{{&JetK`RuubGz&e7l^@y;{t@UQ~po!h%qdwX>?T%DE1UP9WIbYRo-8A?GCn_lZoP z;$+A0quI%lfgoefv+BoDMO-sFft=S`_V>15bOJfAz8c@wj833|F;@S&s)H}jkyJzpeL-{^`E0QAh-6EJE!i?S?A2)FQjmYfm02%*QguP2u zWj$#6ixO#6MsxnPOPtZJx4Z4oQdN6~!e|QOxhv!0<554*)UJ1GAfK)k9)Ya*P}4L|g#dDpAt?36Ld8fgr7l9LSjYcR3OHIm&_@)0{e}bW5;QWSQUR5}acWwlEeMw9PWJk6^@JTS2zIxK1K0;^Jnm4kcJ?y7*gO6; zYQE8xBcmM%z!!hwUHhHcQSuKW)(#gl%?lw?&?k2RjsPSGgodcHRq0 z9}bJQAQiZ|=En}P!p@HQfv7LL#lP(3%+h;cMb@r5DrZ!mPXuO0d)-$?CaXR@MkkB5 zAVy9f4vK1~E!u))jl?@@=Gp6lT$Q!$&3Jaz7HvV=>ccI&lBE)Z^pYcAe`K;K3({8I z-)JmZ3&J+fw0ml9+3SL|H9yuJpCh9zNY;3~pq|oH_waupS$DMV#I!}(9)Vypq7G~< zS^LxkVi|s5{DVrrX*}A3v{r{*C+FBG4ALJp;^OH>U!w5(r9U91JfEi3{IuJhT=EkQ zttL-27KK5M?4Fj?ldn(7UXT&jRZoIGF>jnb^(4r?{-Bz-eZudZ9S>ei*7gaXnOhsx zuEK72`{*jv#~F{U5ofpii;|ak$<^L~tX%-gKi1G`<& zz^IvdFZkc#IWpRUyu(nPFV#r5+XbnPBOl#Zv;|?CUB#Sw#`FoB&JK`I{KoR18jG?Q zmpq^%>nkGTt|M64cJU7iftWkH-FJ#dV97y{qnis`9hbJ~1i~&W!xp9A!4jQ710!bg z1iPcL8xZ%WN#RZpChBcm_KHJe9g zm7bcB(HF$3@@8gvxk-jaUl1c_1^;ei(HG>Z%#?jaW6>9+3Tm`+t#x+4AkObp zaC&3W7v!3ax>p;EzC%h(!n@{QH5PqA_7h{z%DtfMtTR)0t!^t%3G4-B-#;%`YczhL z#<|_^@8TK4ow}au=I6*{?iSH+tDRN-`316ezaZ*8&lu=Fq;xr)aAfX7!5VMY?a$O& z)k_yQ7G*)MR&|bO zEIA93)%F*M=g27AQQ7;$w?KAV*gF zeM%O=l7S%iY=3j+v>X|oK(N_mPCYeQbo%`)N6ypY>vNMuCy*nn#D7bbWL|Uvxg+O2 zZ*kfdooak!<-OpNWXZtZfn1fgmzVrxWOUlN|X@deE#n>mBIKcE2FzVIVU~|QqFAFah}+qGj`%~V?Xc(zvcg(pVyJS_XTl7o%>y5QQD&K^|4>7M^>JBHR|ks*NMongH^$^My4(Lf~=w|$M3lw zauhoyIAUX*=3P7ia$h?*1~r#nK~@0ETG-jRP$W7WQQTp)5QpYe~6o>E(s z?QXlQoPazZ()a$XoPb1(9{y!xQ5NKWUDfeXLm0W<`vzi1`A*bI3z9|Id4aSw8eb`W z7q(p;(#|u9NqBqD-3)dZzt3pkXPhM)hV^aY&zgAVqPbJ=rex1m-*98#; z#2IVesK%$gE=Xnj)kv_*9UF@COicV?b$ZPgyIhb~Th%zRzXcKL`6=tcwO{at7sM*E zzrDZK9Q)g8(OZ#6smpEEw|2Q8Kl4=aKgGG_9;v_}JfHP>emx((;hhk5g6f;+@s8OT zBQyn}cy@ev`Rk`(&lyN11?f%WX|<9+u=GG6=FNAr9-N!DU{UDvrOMdR?5WCH2-lTNKjEue@My6)tjUyY2zONQr?(dA8yBmwX zAoR^D^JF=z7#V$!C})*3Gx8DTc@GwSLC$M+d!lrTu;>eNzsBVLB?Dp67v#9s`gaIb7`mQtEr${{Q zs(a5)9)&@4GI{s=ug0PsJ+gw*lly)wiBS-tK~|psweO z2jqHC7UYaZ+?@v}OYVaFl*-(Fw4Moexz`8FnV!Az^^sHT)Ls|lyxQ(lbI6Vt|Arm+g*?&8x_pt$SB)=-j{16d%FwL4usxJ1rAZE;ONvvI- zAlM6MXbPeq%cre18cWWCh(qcL zYn~XVusb4WL7bcU-q!LF$)YTXNXu_J95XUmlm$7jJ9=l7ti3LX%o$vBXZLzy+v|d` z&5o-x&RJGv#|whVsCb~URAmr5$~(ymtFrdJAhJ38&yUwL*}fOVj&i@V8jHS9m%PJQ z#`&X%<*LY8knPGWi=J}Zpps6fu`u1;+%wG||5_RgM~w&(=n^E_^H zSo0nyC5uiV_iUCPS)zw|$wQF&;5pP$&Q@6R5M+FK9(0uR5f+_pn3YO6@{dYwz^LHe?m2~J&7M+!Ep-PLeUD!1s`6A`V_Djw@4`U(*~+r>Wyzv1 z$a(eEoN}TtGWuS5WwJ)?sl(D1eYc95MODhDjE?ejgDv{L6eAH=d3$?N)Dm}uz96&3 z$XQ<1xBCTYE4%FxX^XyV2D09%!kosUFUZKzlm9p>ZPE9sV#_nL-A})o3*7re9tFZz z*`r)FDQ(gBat<1#uUh@qFWm92tGPvj>!F$jImmA`?=h z(X|qK!waI$<=ZC{ny=9J_r)9ZT-MnwX5_r+3u3SNX2aA{!I_u*1;G#>?Dw%Nw6*sI zvD@s}rn$_&~&4%>@k)8Q%(%l-1z99AWcKD&jqA$pAB{=WeQ45GVZ+JoU z%&5egA8y`2UyvE9ZQmLj_P!vq%>4aU^A-7fWAPPl2+6KfYr7pVh-#MiR-1L@s?ZnY zyq+4v%lXZk(HG=?J?Xw&)wcr%v7>y(98k|eJ7AEW)K`-li@qS|m3_9c=nL{(a7QyH zxMuHsL9WWkS!qhL=nHaQtJ$=AO8QMU5VqM-!DgtS4+f>A!zU+M@4Og{3m6@7QKb{{Eq`eCnW|U#Kd0=L>Sb)~kbR1@_Jt#EP;n z{9%nNI@Hb%5LuSr&D*VXoWwf%f*3hFzrU9!9NuB)*%c&fZU1FGQ|yC5vTF2nW6^h9 zR8d)@eS^T{f;Ydr)I7?HwCT8H$zPBPI`5d8-S)vCqfT%1tkul>-#be+BPN~q&$Zw1 z{ujimGGgCel=GtRwu_TBa#k3hEcJQaSQUQCy77&Ame~hi9a#pO&kSQOOI!3kWqH~f z?bpTr^#=J1;wdy&bz@_x&mhi|+|f;qMPCp*>K_?SRpH;uO5Nc}lR67B|NV`t8jDUK zM$fo>Vi+sKmOQ+!u)K?5T<%`F8CZ0BGmsU{p5x7uOR(hOUs|TwCrxa&oTDICmCt94 z<-Fu!_mK}MG0n*6G&B(NW<~pKW6=pjcIT&Xvl~kug3NGh$IFdHCy?i;S$b1BgP9kd z4k$|C4fi{5bgmhlKq!%)CqGj%4O?^q;peP7eM*gnB@g=rV$@{!s;qtRnbAeDs=W2y zw##|#gF)D44i9TA`hplWKRGgJoT=>aFN9 z@PvKv;Vp;t^D`I8+6Nz8>rQrHAC#VwvyS|ItepMCvwj}6G;PuM@0W5W;b%L}G0T!g z--o;K2GzkF{8yue6cT7sQ$~Vqa?`qc4bP&*%QBZDjO4EjkiAY@dY zFUT6LM#D-EjW^I2M7Noh^t4mb7JWh9t36mNq#f{su@~YkefYQiw6X&RnVb55_fg5B zEQp=vnel!(eYwX&Sr8*<-QT>%49}9C9h;Y!VP1WBZOu(PV34*(#s3|j^OCtBBiSnV z<;Ie^-?%u}?8v=Jcg3nu7UYgRO-?JPAS}v)^oIWbQDadSq^%LPcj>OMMOlz*w%R;= zYOWb&w+Q6O*6r`t-1PPr|{|En9c@i@qRj&Dd@X6y!OsrqimX^{t0Ms7>u-#$O$jwrC3CRv~Nk?iVJDrXZ`L z@qb47WPrV(DF`1d}(wmbQgBLAQZ~GhbxOWVaYv^-c-MfN_PT_LLeeB zJGm)Ka%6H3#HpE2REL+G#}=I~4n&mlw9cw-X!BBAcRrDIa|59E=T6L#(FtUC;;zmv zN-#1yfjFJA!v-E3Bi$E_p7n=J}~`0O#C zEKj&7ZOOVF;{-y3{65rcan?C93Oy1?FPW1YmFmV`$U2bf=!Y9iFU7MV&z-jhB6p}I z_;8)_ga=Diy*Vl{BWL$;ZR~-0z4rxqt7NTztW*kEl)bFxEzdiQ{7lINSd;}375Po8 zu~F?D8D&BEDevdbK08^I1@XPH^hW=al0{jN_svGdkD~@VGRnRi+R-iLj_w|oEXwW@ z2tQ}NUc36)w;n*A3D%7?NbZS~UWjU{J6#7y3=Ozp~%QTFLT zeuCk=(@I5VWRyMgP~HyEi~8xSjYnIM)<)~~jYV4!^&s!pZmX5Xw|ZYGm4=M2x98<< zotevt8HhdQJ4q*$J`EOaLGDQf#+P0fmfQu&+93?6+3B4x2z~OVa-DJM5461@5HXdV z|JbR?qAkdHH1EG$tCVl`g8al!UlE@uZ^zp`TK6e^8h10~?&I~IE1%7mHWr0nC@i0U zI`ZDN8rku7ANly%&TGdDGUC>lmp?~a5MIi9yjNpUc5q|u-ySPxF{?${&zHC7$RsPx zYPHhX>s}p|hVutcQ7w*aEXqDx>JU%&`fzON3>g_^L9WUZ=Dk{n>~&|xDPc7FB(h;V z#o=LZd(RG}?y?ImPZniAdxfjY?{wc;IwfpT7Q}NXb&NItyq->en+?Qip6dMlvK*P* zy>of4*&Ur#D~-MGR|B!CtOuJMp{=*QAfGd>yYp%maKjN5uGC%DWM_Eq__QT=LHIfA z?$UbhdD{!JI;ukdng#Z{AQZ@_b3T>tSbb&3`^wN{&6Ld>OXh-9-wJtj zW6>9cH}Y?col;LBPMWy=ES{tz(vy8_Tv1Wt+X;cZp*CWVY%KXZyhI%%yQ**26U@FB zM0L&EfHmt``_lH)v#~OjlRd$YM7rtkGM2#(RY{V7*xT2Vx48l zqVN1bsF3fx%(x<1^qn3m=qvMZV98C0isUy!SE-doBk3yZ!WZx4+2 zku~bSp z)|_V=i@qR7c1QmzT{0u1FUVU7^&L{WWLWeC=_~zwR*hKieESxCS(UbbkIG0)+6RMN zvwrTgC|UHq<6^ouo~`u8Lp9p%gF)^{Z+x}ZI`4dE1(LNsuXAONjJ_aQS9NjC6#HNh zCx5G5j(OE25GCG_o#Vf9}JRpzkAj^vJdVRNLEko(pdBb$=Vlg zTRIZvC4YMc@+QuC=htYr4+hc6WH-a-(XJVNyMH=;WmmH33u4~9EBj{j5ZaQzAXnwt zeZg_blD{C|Ez(zGrX-8LAfrxioEB${BU7J2KG9uKBg)&}SK=IYr=AzrHWp=H4c66K zPo~#X+Yb2JBl3Fy`809i!kiOrLDa{50y?xRZx0OeenNeIR-TXgMix+;uZ`y;@6z1&5 z%ln5t<4nZI_P`+WAZz3ajYV4!Y`$@S<$h_4wjf#0!0$H}ZTE;8$-MdfllL2owjgZt z>|Iu~#JgXRJ2KLrZ7d3dtgqIpwQH96cO5{StQoENdX4fMJ4OvfCy=8XA?K8523T|g z>1(UX@bb(6OAdmZTia_Ii%uYSRr}|1(qW5Ern?oj{IkE*#QWauB39 z)p$W;(Fx?5^~iJOlw@Rd0;!X=?uEvp6NqjzzeVy^W6=qOH}h=?qKVGSHy*mj*1X1| z)9iBo5?k(fSz~t#7R1}=`PVhR*I4opgg5febNy1Uc8rnekwEU(T-vY8RoMfBWSw`P z@_dCY`hv*8>|~ada~~FcLC$Lx{e5H67sOL8N)T7yEKgt9qAy4VRez__Gr*!RNENJv zD@HGlCwbzG?^y@(yCf<&u(9Y1a?MtUHyVq+AU)|Rd1C2C7#V#*c!M3Y=FgVu4U4`Y z<4RvGX)HZ3$TiD8Ql2HTMc>oQ$mFoTI;`A}z@jh6XJGSatGE$yzvv56BW;hZtUWLY zHgDFp9jC4Lz##UUZ?j(BSoFQJ%*(3u^LA6y7JWf@BEQdi*0f~N7o?w6;e>J??HK1P z`hqxj^8JrpPflC(1+l8^8J;ek8@A{RGOo<-RZdM?^u1;lEcIQD)^9BOek)jf!Lteq z9@<#+{Y$Z>LvqdEZY=uVR#<$cpFcS#=S5$Tkz*dM)L8Tdxn@^&OJmU&1e;GW-)=1W zg1C#%EIZ&d=d}k0`Go7d3mV%qY(aX`EZb^s+M+MWcs8!~E1l|&p%D6lR8U{-b9UOI zFNkQ*{5`y}=nGN>YwSj)b6{ljy)BUEx9m0XBt|^j1Aq2>Sfb7o>wk?!-)$PJMh{<@ zw&)9TWc@sKVY288g3X(RiHnj&-w&q4a@v`pyVi)c2ky@Pui2vSH5X$`YRpEZ~lVJBO~_d@o9^`AZkW_#&BGX9PffbuF70EY(d(RzY_xK4Ws@0 z;T_kEz99SOy-QceUQiZf=9+ywH7}toNY-fFtNOtX7-Vi5Gw+RbMmt~-S&;XwU#S(6 z&voOOy6lBJ1ht!9PD&PJ3 zV^^+<%mvXIWyQFzW`P|r2v1Ta+0m1+2bA>|7{uT3z+13))u^xo2B|yTQO9G+yB*{n zh@Ly&s#vMyEi4L6FL}!-wNAw|i?-z6!-2@3e8b>hMSE$b@`5@7s+f_XbBVsI7VOR_Sk;mkb0suQ~Rc5>>Ed zAjln=pZ&^-&aFGW@4d5#8zM|kjw`1lEc$|Y&mi9|8gQ9ww)X`&ulinA^{sC|1hN;j zR~R-lZP6D**OY(#_GhJfGB5gq=!^0*oK;7pE&77|%+WQEKO|Z71(Ef6(mdZ-^aVMu zr^P=Ti@qS|RsDBM@5`#t_qo!cvMP79^n{!jeL+0+Qv>NMN51Tm92tFg3*?%ufk*9^Ecy-z zBq?DyJ0#9qE7abDepJub+4=q`3C@2b$(aKc^}o{_aa zY*~8-dt8w7+Hb5|Bg7sT#5tI6l>Dc$+-Uwd4T^ZFDqGJH+^_@)Dh z*vl&YxteSCxFFA8y|HaQmF#ghh*Qba!I2M+bvQD4+B0tOx%J?LBTsL>ELrk&VcdDs z-)8;av8@VCL29=_?H25AL7cjHiZRcv(QbD;KM;G#CxJdyJG)yDd!bvxmVci*h&5q@ zLLlwUmN!d%=OH$<>~C|!*6&#QF0htvTi^f86DW~h11d&h0Y7)6SFn?x0fZ0 zLN`~1$XaaoDd!m@qY#LD$E-W6mdJpmlCBq#!Obt;#`eZGG8uST)82XSX{(}=f;h|a zW@5jRCyY!d1hR|L&z+?cB_`-`L3+c8ytH&Au;}}l$Zc%%liMGc*n&l0kn49<6XVn+ zHtcah&g;m3?@AVZLD=Tg!lJ6aJub*qSr?8hryV1sFUVCHmxq-sf<@oeYHpMJc=Gv) zIWPLoj?>+F)%W4a$)YdFHLJq^O-&YkzZt&LtFlXGCX2oxvL)}}=f(HA6Zjs00=?Q|awM8AD`BFNmAa^z+7DIWqc!RKa;aQmd$)E=XIuqHSx$`i=t#Hg84_Zu=#FL3%@d zZ)vvZ3vyl~=SPi2Ul9Avr_H}N7JWgk$~9kJPb=SX0J$ow*%38U>~uleI`7QN+UbIf z9P?<+@?1?uqA!S5<@5Y*ll7#X?ms8xn)TJ5Cnd}I3*sr2^O@MVud(P0(i^gGpOUud z3*z}X`^ybV55%g__s&_lBW=IfSo8&{g3*4>oE(|_1?ejzcExf>$jIa`NLD|;-dOYn z!Di2J$vHVP`u-%45o@#`T5b~<8GRo+FDrw!{n*B$@9%Nrq~spC7%%{n`P8taV1+ z|1M1yeJ3qd-@Nr4A92QsV+TC@N^I#G9r?UkpY4D_MxE#H&b0#D0fUTK=RLo%=nK+T z1&2ik>b&T?YakTKo4!#sf4$`eS+5-VoyMXs$a!7W9*5`1=nK*t=E4fKs@MmE+^-`K zs3)C$@S8RF^Zpo(KU@68+uh_L$kDAVkBnn(Sabpz@$UJDk+rhqA;_rJc9+OnS#(-A zs<0k0@_sZWS@Q4)k?-74=1t+ROTWUrE+ zF3*uzq3k<>{3|t9oVPDXE0moQdqJIi_By{rGqxxTa?F=YR`YW-1^M%pA`4w1YJ$9_ zv#S2P^e$MTCWz-%Vw~uGtK0{`qUKl2a~kKdiu61%M@CH$d(SiVXJe8@O%T0UelBxu z+XZTZu+1+2oUXJ*O^|vy@9fAEcZ8ZC=QR>m9iJ>}g1q6duf4lQzFjZKRapyOny;<* zyIYp3O5JzlE9;u=datN!&K-4}k+x_G(*IA-%%7v?#6W1B-T$QW9K~O4KuwTVZ{6O+iEmw{56)c+>*?MXWs+I{4)p@geKQ;@c* zw)|*WJ6(|T>Z@@RlcfTK@Krto?^3Iooi50cts9>z9SNR8({G1wU~@;S%*l~a7Q|Cf z-uG-=D}#5spNq(HRo0w`FGyST9b4)Z=bH+SyD(Yw1v#>D_)t6r;te}p5Ua|0Z)mpY z3vyoj!cB&yZP7OnpC9ID_wSUaAVw}HWgth^8~v(+-syro3#}yk*NF97Z6HP^yNH}q zCgi;63-YA1PVP|8GCN%m=SiMc`z+MfP8X!DHR`90Mc;=5k+0e7eDR{Rr2>C;F)Sln zy`QV`?42&i+XQ3s$2H%*(*?1c%%h(5T<}g8q^%16w=3sGUl43|Q9DHyMnP|OLB^zh z{%x(veya_HZQiY%-ByLZAS+u+s%;tFMkL_tWT!zKhEJ zG-tG{`k-oLrwh_nZ=79gop-$;S+je`<8oE#yLQ}C!KR;Ysujsj_sytC^mTdH(6J(Szhnd>qZ9~# za>L4+w>vRysk9*Hwa30UBGr-UjzId;%JWELQ3`}V^CTTmlww{o@u#7bBkRq5%Q*{+ zQqL9^rDT5@=dSajR9Dmo`k!3$D)MAfv(^{UlcDyeJEDUeB`S z&9>xV_+JmJ`@Mm+MOly$Wj8W3d?$;tAhIB<_in?JMOl!mvTpP*ImnJs7R1QZV7zfr zIdNc7_UC0)d_wN3)~IprZ7+ywhW6P0x>SB{9(alYS?lbP`j_V;So8&9mnwX0oNKPP zy^$ky1$p0h*_0SdqK>b8MMKHX^XxfK3&SFyQfwvZ+k&JnPfeAqSgd&dqIxusc}fndf#gR zsjn)0sqGhizYuxM$oVGQWvAq-(0AS(+5D7vR^0ERyge|8&yZ8!D<>vP=7L<6_4l3O zvi86rBUbhIui5Q;4civ=Km69=ziJNJ1A`bj-;sN`#U*j4-DeYEpy=?`MqEXNu7-V%lr*u~QoXiDb zg+lD~^%`$>zaYKjn3vS-v-|D7+M~uhqxZbuD6z_CmX7@Xv}CEwAnsf8yL;=_6Uy%Q zmWW*EwFW*@Ph`7akZaceQ)^|m`vu{{d=K%gg*h+Ef*jdcUG>srQTF6OYUi4tuj<(S zt{j<*ZGJ+q@qTHGvLNGJWxrBuAhjz#-z_zesIl)_SfkPI7i0$M=RY(SWkIrfW5cEb znG2%VBi2#yyNBkg&=+I|x!+$lKa;sHg`epnvZI?6HG-J2`vqxhfAV%+mEG^yA-O7d zbjulOi@qS&Y;}FBu~g>n?AzsjnR)4{_+4Z5`s!i(UJx}o-yi-%t-AKTAot>GCx=?@ z1!X~W0eOBcs9v(~1!-$UU0CzZ_jp0}TKaHASB{LbAYvw~(BBp%%bB}!Jmnb`p7lr7 zv)(ryK(c!2d&ANeWj`PFjnj?MQFfCWjo$Fij^D*L&mex|&&6LnC2@BCX^tA?8zY+* zf5D;Fe_*zVp~6aq1KKArxfu_y$xvZ(#vOFz!Y)K-ws>h5{)2zCWa27=s`-t5^} zbOO06Z9g?KZ8V@4(eN0$6#NA-TKvFLPnAU}0<OF@1W8 zTJG!67evl*J~HpQjYVIOl}=wh-B|RU8w%=YJBbM;;u#rzL7pqd#_UqdV9^(ZExTgg z(;JJvAV=1dPc{~PK}L?Y^UL!mBcm_KdF>UZHx_+C_&GbakCb|ZE&6tk*pD|BeL>z@ zx~gp&i@qRNW#mk2Ec$||u6dh0tMsqTi@qQ-6rJ$KHSv@TWA6)6K~>nKJW*4x>3u=& z*LinnEc$}@v@$=VyQ_4@*rG4UHLKCt<>ZD%Uyu=NOm>zt0~USHDJ(sxejeRe^aWv? z?9LP2k@vqZOvoL1&TZaU^aWW}^u|{ki@qS&tnEWnb7b@d+3V}86-rOWn$Z`;iIRDA z$c(f_Uy%EC2g1_rss4`TZ04x}eIJ{Zezs0tGAC`(7v#uxnZKQvEc$}Tl6>wx zuRLipGWvq7SJsU^%h?P|{(|(CYd)m(>#*p1+i<-BCfZ+bEc$|sc6YSNxw$Izy(^y0 z%@pU|xv}VbU$Cn0jt*!n`aWJ*)Yo=$W6}5dGBOcsZ9jZ|&WpYvW5Z1OOJmV@==rWW zZ)vYxn6}jCiGlQns~THQcQS+gy{$Y4@+4=L&ALciJK%nc$zM(ly|I4$Hj(3-4p#>9 z3DZ?AFP#A_`htur_j~D*v_)SK_Y33$Dtt70F-JyU5Gt@|*wq?~z92_7+CS4+^ab(G zY`!xxs&MCNXF0B_Z#@US{{?wkxvB@doYxK*D1*a?GJSKi=Fip)Y`JK^g~p5bY| zb!TLUEEzmI5T4GzDYxDf4m%;zHTIq= z9%0R7B8dGG*?42bS!s(-bIwfG`1$sNWXVL3_i;w%PNgGdWHJ#%?axZvH=a@4FPR8p z&G}8DXBvx6AkM5jmA=zhDlLdy!y~NuBO@HyP8ei2YyY-sWHs~J34@&19RG8v0I=u_ za%AJ<#m1uV)rI9rM_=7vI$;p{f?Tt{8dC1}VbK@Fy!rgRZRuBG(HCScS^sZ6I@gT8 zAV)TG_AWgqw&)Au+{uXlXY`To7kxp-hTgcW#%p0gjTHOEf)-N;by`y6@08gRN=_dzp-EPcZb@)kvVwd#Hxbt z{Js##{i^ zIfMBL`o15CE;uvgy67Yv8GS)0nE&;LPt};T69(a@yiecp0B!ArK~`@ynma04@)snl z`kO^h#yobys|50X%`CgF)>!X?L998S&U(dDv9{zdNL!=s+&Haesm~ziRo}y>Crkc< zv^9UvJ0)54{eB>9xdTGqr)MWi{(@vZH71m&BzA|ZydP8hQbYRuXTgPgfm=qc{WUii>J#B6qV z4=hWT4E|LhZ5{a|aYv7*?S(8@C zgJAP>tLx6sc~SVhKvd{FpP#JzwHJOokP&UQe}it%HZKZ;s5+S|8`Kln zcOgLDU_Ur7$3$C@_gCibr)uun1D_R$IHrfjOZT?bqAdvjr*`kxnDRCl#B(OK9b5iA zeSBm<)B<~85WCGT`Q&((ktGK~b{nqj?Wno3Ctt+>MMI-5c3l6s6VB#=nI0$41Dbv=k-m9^#b9E{4@^Cs_cQg zvq#1gku3UxT$N|pD&vwxUy$<}my;$Xi@qSwZtu7@sj*=X43f3qcye0WqA!Tp$j<`q zj*9H6&==&nudhbVNfv$oFHRh7UDdxvCyTxy=T)QkBDWkFeY?li?C1$)(HG=feX4L( zoZYhM`^PxDRo^q^qRR3c@n4P!WV9POk2IDF`&QWMNq4kyoDUyvi4zXvuJeL;9KpN`L|F=-Dx>`H9OL07fL$vHCmf;biOZJ|}8`*Ky} zFUYFmyg!TzCyTx>MZe+Gu_JF2eSj?bg1B4BC+k0TC5yfwSykAu=Adr_gN$|~_Umm& z=nF!lJlWT+dE}cAAoW$F3*#JcRp<+nwW_>6UDh5LWYnqtzSUR03GwPl`L{>&q}#Vf zv|TWW(a zAFA|BV^R3O(FHrNz3O2Xq%8`A>Lsn0up#XI1vUbLZx&tYkOUk-Z6iql`?Jn7c34Jh1--@tl!2veQn@ zk;&aZ7u~sKc2ysbnVgs01-V~6x#wBQqAbYI#GLmJLy|>V5IKZBzS^Uny}kv? znY(|E&eBz(FNk`Rwws6EvgGdifn1eUVfV_~{etiW9T=;+wZ@h2LV#SAYhI_GpLV|> zqCMyB)mSnYWRCnSo>o|oeJ_aFIN_Law-b{^Sr8s3Ghsi~Sd;~!4!ec@RjpF?y&yYD zGw9&jCwc=6a%9hnAro_6lm+QwW9HPxqAUn6aZ}5@kJQTQ4KPS$_3-SPL3Y0&)iK^~ zt{LPFFo=1xHvX|@f!*&tkp*(j%iMdF`q;B}zt`5^KnK|C;t7p647~xqI*|6VCzt98 zi$Wk-SGLjIv?T*U#9MZ-J2n=bK<>&||Hc_lOH5-+_q*0Oyn!!`+TJB@zZdjf){MSE9o(?;Lq#W6>1k zEsD|dRAb3mkgRt*OR6q*ydXx-&nY%7m8fU@gq#KGf7d*yv1s~0M290A4<9)*_lvTR zN3GD-c<5EDf$u;3tab_c-Kw2Rm%zLz3vy)VJ-lYL9q%m>|Bh_s-88y(H1gILgrD=S z@`Yi^qA!Rj&AxML%}Q^5HwuI|_!k8qEhl}?$TRc>F>ii`_1DIt??!Q!>q%`p>%8{6 zzbY(mSgFwsk>RY_Ti-2$byfQ6pEV2YcR_d~PsgDLrY-t{^p%z5%QYsw^#!?REB1NO zk2o*-f?(+}*zZv_zr6Jw5QvT{`^$~ne$f|19%ZyY+m$1exjO}7RhhZ3Hx_+CRGG}s zgKPf!?(e5dUrW{-?eiK-{vLls`pVeYwXx{?%aZ%7Sx^43vE=W%wPVgtiytd}PtVW< zeL?Iu|60-}pW)Z;hs^JBHDc0r>; zJbJIO=nHaWEA}VrS>RuK0C69cpHe+n&jP>y26D}I66Zvmp}t)&$h!{beX&*~|I)+e z)9^EIXPaej2i6vSK`Lm}T~xXsMn>Nywfo5@<)>=R@zxjQs_G{KwW@gQ+dXoYHx_;W zS8Gl_)f_%2SB1XE1tJGo8Ghb#o~&IjNKd+>(Tzpl?(ZL-aC+KOpFytKn7pg8oVkyc zzKF;%_us93k-aZSTVwLUvvXwh1)1G?azgEVeE$Jt9=W3xY9+My1)0C@=)}fSpFz%B zEB{3~FZtU&>ONiWNqR=kqA$q0VfXThWoe7P%K}-iypec(ShAeIAQZ?qg_hK6X777N zsbjnZx%FWo5AF1hT$sJEiOymfrW9g{AJes@==E0!y9UAdtIKiOHps z!lDz18l0!j_^zB6oj`aqZwB`)6%AW-0vSCv1_UI_-U;zRKsz z+ncYbvmi#!>c2_z6*_@fan{P;HD8g3AX($%&~mPz0d*GSs?3&$%aZ^s`tIB`l70MW z*KF?#a#iNivQizeMc-FSb>L~+{q9%&?9DGoTSva6YD!#9D}6I8`hvU} zl)b;IVDAgE6CGX7SFBJLgsS=O>G6$4*#qn8o8N2vX!8=vf>>?dW33*i6Vd2<4~NB! zcsSYNRd+jJkn`%LgR6FSz#k37*_z*N{cSlF7#U?jj_i4}Vd*wtQ5M9rVaEAZm9+x~ z@s?P2NE6B(0NI7IAX#H|coF_8-qwSr zAZ?Aqe|70YdtZ>YM$7)uS+Ev+Ul2azT_NJ(zUpD$cmQ#CmfvjKAx;2oQ5NLL*0>Sn zL}z4_-6oK$lKo0_yV{boAX!hx2bLyF&Wx^s7aXsGif~dx<7%zRh#;{#4h$p*@v~3SfTa?{A zkRI0mXB?I+%7SDadDE_BQ5M7vV}AC(cR59<)MV=l!5V2+@?KS0-*o^vvQhCt>Ey5_ zXF>W(b^cXj*moU3j%>XBrB+n$dO?0l=bC>$C)bR!AZ^Xc+4Wqr>jmLOp3d>)uWLkk z*9+3tRh?IBm+v}&+>!gebAHZ?zI~#i%9_y~wHnyqG5Y;H}gFhGV zV^9O_dO_~Uc|TQ83cKF!YwjDjblRft&jax^lu>tIn-_ieIx$B!_up?LqwhQAR)V{H zGqmr#92tElLtm&Jf;YY(Ywz1 zNpektqn2|r(&NR*fvkgO?*S!yVNvMr1!h8a7`F!2mJ9^>RBE+4u4ECmDAccH5huMG z^eoj1mI@0}d)fC6$&u-ILF_ks$Cpk{7KMHr$o|jVzNf7Ug+Ti8kH@4H+JJc1Huut} z)Hv3IHX#2SBF5s|QsKB@#W)^MIn&iTT=B~OT;iT zwRMG>OQ{wbLCDNY-dub)@q$c6=5YEVYIkMWSNtsAN$V zBi!=fxmTSp#peA=RH_f@pXHq`P-drjmEc$|6mFz3ib7b@d(WCGic;nR?QTDqaS+n4VQt=rXeL>s? zW<~g6d1in`-}h#@s{Fpim*?cX=nHa3c7Z>sto<%X)~I`=WIh^@xgglQ1zB7phwP8P z#1geeTlGEYBIm`MaeuZLmi_9mQ0eEGm&`q=#fIwdQu-=b^xd)a zRaD-pLRH_c_vWHL^U7W_HdlqdAm&WlIW<%KYY!k5G}^yYBgd{6EdL(Ny@?`kE>$OZlU`C(~`zB>o<-3s&Qxf(h4z985KA#KqY>L?=L9(j9=56XGb7X+L45l`1>_r@2bt+DZ= zdZzfEFNm1Tzc{>ejdpK*L5^&+|GPXb;|=r$!REc&-)k;-;|pTHdBb)5nYm`_Gst;; z@|j+qd>9#hL9W@Fvs0}b_P*Um9#VRJ?rf;fAm8^le_vnZyuRn~cJz_1*$VuN8twkY zvzg0s&CdI&S_$oaLHLP^#c8$qgdCarJY_sA^~Y%6YI3sVFGx>1?+bI2Mcf-l5oYPNEZtb0y!Q*}k!yqiY3XWptF- zp4M3M@Qm6;<=;A3w?sT6lZPKYAlGfC?a)|s+O*^YBg-D&SakYLJo~z5tI{2fMW^os zqI1qqi(WfCcSIh(*yWz{bYHvlXRHdHKo-J1%!-%&NL?1Mo*S-mkWtxy(3 zUC5~TWQ{0qd_jzvH=SokwZ=lPT*Ocl^hwG|VEKknZqAy6@@2K%$?+e2Bd7Jfa-Ko7VNUMQEU8h|y zh@8sKX6y0EqUq}6^Z?4Si{IB+@;wI-cKLMi!|)fYwCe>q&hM5^XnR4;d9fFs3e&5{MclYr z)CBQ~P*%&gsv`EgZw7+NPolOiXC7-tO^`d?y6puW-=2jPd1rQSRqL~zE{N#Lw--3Q zTn`nv`&stvLRmZAi=rY~39X`cT%Ig>dQ?;u?=Xzpn@eXvwxB7<*fTPR3{6||6vW7R zmK{7SS@IO5t&usku_*hEu(du|V+Yo1W~U3H#^$Zf6}5VJ%lnzA9@?t=9@QK5jov_b zGP{D$S9R=kL9W?(msNG_bU{{NYx~Bvqp;HjVViFtEN(2yf@G^F8;ia-2htm6$6Jjh zPeHQQv`uP9VW$gnWY;{uOF!G`g1BwVuHZYRcc-GEFGyR}?^o-9oi50EWq;9F^aZJc zF?ma^Eq1yf*nCUmEA@2n`)nXb*7mF!xn?pK#M^S5J>=#E<>`wxQ-{X~@?AuI^|5%~ zBHHbALF%hFp00W1Uv^kGYJ&UqWZAv+(Abi>AXlYEE7q>SPWPH}FZ1Cu@bisD-;E*$ zslxg6HRys|75akomC?RVRBhLczMlx>s_Zw|^PS~4xG_K{5OI|~_%KzhUYc&$_xY^k##yupdYn!g`;iJ$FsX9glJ z^IfiMtFP>IL9&j#?}D^N-=%>ZS#P}3So8(4-+Yo8v?y)S_r6e{$jiU5Fe5qwSB1VH zY_ktLzEnfjjJ_bF)_K2hVA`TDNY?$1h|hE#8GS*lIrqDyR5V6LUy$<}8}F7b4HkVt zj%+?Gn3W@=@20b{#phPxPnT{9Tl59FU*qbo$V*p+zP;jXkoDC6>jlZ8?+L}v)B;y^ z(51R~)T2a@&F z*`daU?>T^|8`)=%YApKBEecYx^wmu@a=h_f6i8eB+*KpTcYHz4tAdMa9@+1LVCmw? zvL&^u_?`oZk@LNRgG-l*H_#X4yq+ANt=VnY3z9W9X4aZx*9*dvyqnLwPt8*!dtVUe zRo?5oQlpOA5VbC%&XKKG>(+`y%*MN?r6RE-)qk(C=nHa3X4$^AUU}pDmBl%-)qArU zxhnD(#5qbg%9{H%7JWgo>U%@!u^5;91$m?Iyx*w#>)Q?>cVrH3QaWI4$zPBPT7joj z_3eN`j_i~9C%SUY9+t-cynedUcW2$t@i zRV^<4D9<4sB>`%r|$dS<$ zACSU%03mRx3*?hkD6KD@`7Bm`A*y% zc{-z$Tb!LBw1`v9kPRYK_vfGcr0|7ahH`{iRMDLKZJX{_mhv zTwT6dZqQ-T6vXpxb{4s&O4W4b8sYZ4AU$u+?_cA=n_ZB3Yb82kQI3qJe~RdEUbExr<|{M> zsm@0(Pb<{i@(MoT;_rbu4r-bM(WKQla=x3d(|9kI{R3V^Q{djn%`;tB37$ z*N7U+vqpA}Crxr*Zm~N%K>9&19a;TvrwdXYcY05$eXI&)?+=6@^49HdrGCMp>`H<7 zR4q^FUzYwGmTUz%vgg)6+Nw|%1e+(p&9#R3Zo|7#Gi3GTO67cFWU>{c{|`SdcS@du zcqYqg`*!I?utHOid$G2hRwK`2j3zJ1z5N|-{{qAQbBumbM^wNxx z`ExYgGO7f=&3mBnbuZrUg75?Xa%w!(m9}U)wmu2u`x{_ai>BS#`ElCIlC2=R(sLqk7;Qp8jD^ zjvGk#h^8PvwJ>`3E>B8~i>9l@`NdO1-WnWHv&Oy_1-I&x-orfvZx7i%u%(v@_t2U2S{&wQgpSIpd*O<%{z#vE^tgc+VOEi!CNOh zx8Z?j>*;Stdv`hgQOeaG5^>CG?Px*TnxXTnj=r}5B7Sl&JJ($EHW$R2^ImMNTJycl z?QuS~+?zP>i?K@QrS^h&O35eZ6{|PA%?0VDCqjFzP;-wM)6bOE`kXn*q9(|_$etAM zf@n+C1#u2!{(f+1vSl`Q>bbCEu=%+>|v^pDFiJuqXubO>Mj9TTjZ>qRFVpUn$FFhq~ z(HG=Rs{Pi$s=gg9h3?-ccC;X4X76T&vLH^?d}rfNqjE-+1!;9nIgi;Rnm!ze zxj5&E?d!YJ3QbQ5Bx_#XU!$dVvC#*5ucPNzFVBdKjHb8G%3bK6_vYltXbN&a!#^n3epePmimGfc?x2- zRP&9vOL0u{6vUgo*_WIf+RLIQ2sZQa<{Bq*j{HDlRZ9Qab->3lEy3^_9euY(` zDag;ztv-J()gKm3L5{5dcPV{2EXsmVCqE7EJtfzSvLIO_u-A-a$yN}3b@tYS$0Uog zAX%eg>g;4uc5a-nJPYKF(aq6g>MN85=}B#GTAD1%p3rQ~xYviu+RK7?>d$-P`)gj< z%U&6X6D#}CKUa}m@LZvA^cB;&-ZO+pOq}i?jFc*j~P*a zt0$>_EeOr?FTuSqJ#EQc5Vu9Sqc6nSsjpBLqz|`^Z1Lx43bIxhEl2N{EIA7zO0!cO z6MoT_oCRrXMSZMhmhUQn@B`HxA3k2Q!|oPj?pUK9t`*Gg7R1PT+kI-y9Zv7~n_M+_ z@}~UanXZacqO$|!s?6xc^@OGV#jSQAYm{s5JvVJp7UaCf@aggF!hXH41rbr%`@S4n z%AzdDk=@as$0m!iAlQ6H-E@4iZ<#-zJ240v_)T#Szsii;(NpSjlQ7+83>~L&YQn)7bRfP z2}IS+YBH&uC9voOG9vG6RwxAWn>yz0S#xqm6atYy>Bl{qEx8AB%)ggA80JEok4Jss zyv)owJkA7nfi@tXcJiI7`7wtq+JNZRQuX2G$&ZoAI*>DVwV$I3$e$nIJcb@1;y!!0 zBNpXcr&gAsRVjN}kRw|izP>o; zMaPb)p|bkn#pTJO=B5#s+@@vJojfvG)C9TH14~V3J?IGX=YK059zRDx5c!jJ^RAd% z|DYp?zfzJng1wr5P!q%+vpf8J)Jttq6GR2frvLHR|POqPzBctpWN?(W{jNS)o zLrd{mw@igmdUC$>jO%_d03*>6erdJz_rYAj-1~FRJM-6^9_P$A-}gSt{oZ?@`+I)B_Z{zLLHZ&4mD6igD7(BN{V)6EnZ=?k zNY;_Rl^*u10}!*;Tch_fXYFD^o=om&i_8x1WkIZ}YV44XMOl!2p)s?`&{`GBg0QWx zZ_hutSd;~E4^m%PP0PHqiv=-qoiY2yFt^|Xumsa zf*tL^tO<1&aBe&mU`zgj7@0R5bXkYbb6z`IkRw}9UYK7j`o7$dthvxPJ0I_BLDrL< zq7P<9sxgSCn|f=#U~r8|=C0b}+@0#--9{8k=7NYtI!9K!IOE)J4?wWhhfK>8#9kKU z&4pEWdBz)hwZ9qFkg=-n|IltDh(_;gL9$ki)#CXFmdpkDG^h_RPTjq)1;N%i&boKL zhS3MMU66qw_FQ+@KZ|w4q7X%*&niqvY#1hqrd9R9_FlMCV<1OTUX}0$5H>5Z}qvyz_f% zWcncx_l3po(#?xPASPC zv}!`k)w98*sA90_3sQY^Z_8E#oELq!Y!!f*tH1F4QS^@3qA$pZIxcmC<}5`X6CS{jEs!3%bHiPt=yXsl@S(YLD+V0!QxCE*hZ(SE@%iJmafs8jhU63~cuKDTQk)19`TmAf>liiV>E=bmx+3eC{QTD5s$<~@bm{Tmu zf>d^4+`+I~au&o%TbcE4^fa(23*s51-tBC)u*O8$#~SkQlNhD<4lNdCL8{|wPsoV! zD_amAt|y#}q61)Flm*G!S&lfdMn+i>&+paKuX|FlDEoAaC~ZB(Z%SqDbO*FE&sCYT z&m?Q7`yYpvt?bTmsts(phO)C8($@MmDA(+*EeLh$e(vLpWN&Rj+8XC;#QP9NCTBt3 zd8qsHjzw9Jw<)gbm&4t!{Vqsbvv0t`#iB2WleqkRRMr{4vYi$z_cWdqkGB1jLH4^K z=XF(!S|-b)FUW}cLS~1ZF39zG<}K`4lm#(n-70-~RE>$UAZ#luPmivV^`I=sz37KC zI{%ZiAX#JPrey7OLC))5#vbLoet`f&oqFp!Hsj4s7o@E@yF)w;4s1V9H3sP=^L>+c zX5b~hh-tlhL$1ns2j`jScL*RyHY%>@SaSAzJ!NYoFUV?Orwj6nZ|mELtn+rd+qAfL zM`qu(8RvGoUu#+5nvI#)I~Ha4?N~i|TEp&$nhes`n!Lf~#iB1r)_MP_W6>8R>zWt0 z^Tv_U7eu9@Povu35_bf65`C`-^@$uuKB}GE*xKoWwAELCm%g&o1<9(>5m^K6bV2y4 z-o_kvL5+;Q3)8l4AKuI!z`I+J(XN6kL|4kH$XpQWS9Lug-XXxE?=7u=lhx0QvfB7% z!sFRP*H;8*b!(S$Y?Y-$L(J`MOl#Q80Y_%728gC zjjmSc;csVN+v$QF*{)-a>{RV^L9*5vRy=D0bJLMiTS3fSPi7M$6JY6wK(5TuSB>|Q zuqf1fWm7wr3aK#=ijRL!}vMnrCS=CSE3 z?{q=l208Lq<0c8U(HEqx`i^a}hM(&PiqKs(u^Q3Ko6W?-W%1Y3&SgRp<*sqk5Ngcu%qD`)PDzu-bkl)%SiEWRK#S z$48bjFZ!MyxkMxwvE$?1g+*VGwyN-tsgZw60c7SM8TpA7%B~P&@-*+5r*J+wQE(lxvNKKgDyoQJEci(Nu zdG+C;sg5_hAX(RZYU<8+SZzlQ(T&xbS7_DLkx_PhLwKU@V?G^REXsoLMx8YGriVFg zT3_3c^Sa*yPcK_C7sT^3Kf#V}IO}L@m9=K*Q7o z7GLT-iM}A84a~l&(S_hi^nJY{-e1wJv#LS4U%OtA`!yO@%j~o3U7mN7^~UTwr?@J+ zUXZrt=1+58yIzp2zIrpW&#w2&=jx5h&AVpR$Yk!)hV-*L`gzBqFNmz?OK^7d-Al?A zeL>jP-Q+!kibY?Lte$*0Rj}&?=}FnmqhsdQ0)0WUo`Nf6rr7&}_y)Yby}5N>%}eHj z+>z1#QnxDf1;LWB?5N-5vPIuN&ef9@Id9J?7JYlOUl=ZH?+ZeO`a)?~Jg;(lK>mX4 zU_395jlK$&$~>kaS+i`w_!^n~1$jPd`(iwSV@qWo6Hnk|nN@wAS!Ij97c``;b!^YG zibdby4f$MZOumvD+53X1yYmy)Q^MYh9jG-tw;AkSDM4yf~f{ z*b(^)($;u>tn(H6f@Iy%?pcw%-J=)4eyEBgU^Uy#3dWjt?_p7fUYhB&o}Nq4k&Rt9@t5II<1 zPhEAWJF@o$8PCSXZ$}i1z94PQ-}gI~`~`W6ZGKo;k+~qotmnha^Az)z7euFBXWVV6 zti3PD^;iRs&Mfej7vw#z>)CBg&5N=iR$Hg}(vBr_LDnK8s&Af;_P!uTHm}L;XQNXj z8c+y?eR=uSjwJ&@*jK0j-zTv$Y{@_nY~9Rl+fEo+GH`LSbzeJRQn6&<-$wmqmB#wZ zJ;kCB$ha{BZ=YN&3W40Swtp2*C#(vcKvYS-DrLX#bSx(*$Tgb@D^9DCsjwhMuJh)v zqnkH#+Hc@SH%~O{>n-9|4;G#7nV~InGw(hZ)yU}djm)C@iu}e)iX{U8P-b zOoi|44z0siPpXf}` z7i4TW?{yuEz97z;`u|xnb8wA}z91D;g#)98GBWyts5o`Ey-%DOu;>d?U)5g}nGcJ; zAlUlN)?FhHVbK?a0(b-!md6BbUsxvJ5 zf>gn}zkcK)Ec$|+*Bw3CvFHo3b{jcQAEPJjfI)iFDmf=Qa_T1fg50mQyMJ^!u;_bN z%Q=0e?ae(kGWvqtkx{qkykgN8WbLr-_i6D>cH05>ZPD$T_47p;?RLN*SEcPe9gDs@ zwObrn_d6-0-Fsh<^>^FoxtS4VLGHz!ZWw0?EXsmp&CM+{M_6(D^0*;8BXgu*oKo1L zEC}r?W}eMR_S=RBBhHCcM;_7HqAbYzU}ax)P7!})R zRM`81JeBp*(WjIx%7PfVvf!vQibYwFtiIYS`WyOHlm*GE&g-+wmdrge;+z`is_x&v zSTYyHe(R?Hx)X{;S&+(VJ2iR~<|T7M_`Kf6^hsaY`+|7Nt~&P5nb-EdAl@_AJ=xH# z3HH7q6*RB6>^zCSAX(%5({pRhWG;xvsqd0s&HVD-7i5m;s|VwWiyfga$kW6scWmlw z?+a3W>&csEI25Xp8VNEL9aG>skBl zh&EWNDu^49>PkP1XA4-WDu^e}VlO+pRz+0>5&!ko`S+XG-4Rt4L|0k25f2_(EDC|h z$-2MXU|O*#1d?^X`-C@H6{qG?QTsRrtx!+3-r0H43B;P~?cO?Z#$bz1AiuuX&tHtZ zg+-^;B5&z#_2h!6P_X14h*j0I-OP#3YrhLJZoU+8%uk{$i2u93RNF94ME(V3LHytK zCgr&})%X{by{;j&E8D-%_4rl8jV+(~Nq&Ne>VI;r2W5ZRp1@%0izC2| zLbocE1u=4c)wk)qvPIdyw2p_7>s|j5(Yy2WD7$ydA8zXyomKUXdg^HHnV}(0hq}=@ z_mCPHWkI|fDF3h5u_y~-)Ou#PAx=a_Mp+QgblmST?;4pScDf*bvi>ghIUS3#AX(4p zHRJ4IF1~F5$$I9!5@#(e`hsAIIp+PORVJd*P8S4Q_e}HW6pOy^&aIKH3%_4jESbAe z^Q7}yAKy;(?R2LMV!xb5#_D0IubnQ4`d3--KxU9%IGlJ=jcgzG-SniLE{J*S4c)_W zim)T}1-T=m?w;uEVaeQ&CY7xtztgekyK?Jk9NEkropFV~S`BST)*ao|_OBQmCs_PZeKzLkAs)-msTLD*LR z_d;|YjEue@M>aOrKegsXUy!zr{6WT*U-W{sHJ+EGC;h@+6W;QX~7_}<`Q6`~L0XQ{~`S37dQvLahSzSU99J5p{jgxO?g|Wxou_4&XnjLy-UepB1S|uKzT`Zb{99d1jKC)Oe1reXsQ@(bF ztUWFW?{ZI0Y)?r)*yDoyn+fiBLXK>w3u4~VZl(0Uo$igz|I}&v9Y+3s_F#6p<64z) zM|xwsxMky=G0HwQL$-R#nHSfZM)4BsQbh(b}V@cg01h=mu5fXR}CO@%Br=0 z<~VnG|J#-|y&ImwcVykVEt@!}>)v9gI4@zzx=Z7{<3)va6oehO{$K zmfQoeGX7)UEh5&jMWOYQr8dLnmrwOYgt|3U_WT(dd$ ze8-{_$mdAsJv#aWY{|fj+V>#X*6%8U@w1(7Z+3@Mi$&k1Q5RUVS+rxvqA!U4ubwrx z8DF;O3(_0r*x(7p{$Kh&dttHY3nIs=vz(t%=gsc#B0q@@)!*lmvPIvW+U}iKPtNXG z^abfvE6zt98yOfZ`?ZH#c6p7Az92f-&Vu(;N1?AikuplYVLDp#3gLPg<3J)Qyb3 zAV#jYuFq#4+3%jv`T)Ptw=el)$D;3dT4#y+b(e5&!>C}t`|Ge}WaH|^cyh4Tx4+ua zkiCNWyH7j|!IHnnv>bF^qi%V}qVJBa&vw7&Lf_0m`(2Q%weF6wwJP)l=?!ym?#Z(D zyC7NB-z;;`eiwwVIDv_)e?O~i(RX%3dP9Bx_1t377v!p}qJ4UbC4WKMI`7`mm6DO< z@5fPNse4BI!yQX~2DxUV{k-WlGWvoX*&OWOvK@`=cQ=X?2L;t=^^1!|Uy!lks>Wn? z+wX!LS#O+^*=@hOU1T>gsW(<%P$Q%7+3oz%8?Jd$)^`661IV*^c8eibOJxQzV|72< zwr2=glm)TcdX7Cm&Srj=Csh#VW7(dTF=M|AGHyM^9!>51ssY5jb-VGWjzw9Jtog-X zz-Cq6?Dqb9*cWuRC_B6%?_Z4byRrt_^@3y_`43suz1anMJEQ-{w48BXDl>@p-qrow zc7Cxa3zF4#m#kFwz6Z`M)~NU-m9_T;VOzCm{cgV~3vyN39ua*c-XL>doK&n?ziURa ze`^e+tub@l>{>JWf}Gb3I(a`?dtZ>gk{#c225;E=f@IZq@L|Q0xmUDjA@Acn5mw5$ zviDu9RU3U}to~+P*^;@x9xGeVlaECY%Dm|NQtSv7%-pS}mMxikQp*BIwiex#nQQO+ zP(!f%N442JyE1!U5KKk;TJ4_3{h}{OR!@#;JCx<*1>uca^L`mQcEBKPE7}*e{cDT9 zAX#^`%4x--FG$viJ-=hgUy$z;RG(eF78REJ6gni3KcP-fv>2zV+W|kC5m2{WuXZeX z*qa4wi%z}S*CM7F8J+H)Q0unRo!PPIv{ytt_19g^7+E7zVL^J+(`Z`j{vevR7wA|GJU31l6-HqKrCo!$s!G-u{_K1880;X|sV+E0(T!4`$qi@2dK zo1c3`_QIkN$R{clTG*o7y^w(**z*5sp)P-Wk_rpb)_6TQSLIzVNY+&y-`=G$vUj~8 zS^Y4l-7v_aEC{yx*Qu$FcfBCIQC-N3>0$p$!-8vSWc@$0VMj*U-s~N%3zJ3J>l;!# zS2Z?HDb|d#Ls~A&>Z=FFlr74FWYuUyWInbiJ1A{=FH06oZPm+p(HF#i>)v#6$D%Jt z)*N|0`bb7bUy!W&_U~-bcjL6JNPe_cAm>G25VqAfzZZQZ&ztBA@>$MmwIKIv?+bEX zJH_*&YG6x+1;N(uVEs6w&hL63&Uvc`{aR*_z3-ZlL3~eaXbIo|bxv~}J$&nsKVFUYFC$3bOI$%^5PFUU3Pt6kdZ?yAUKkn_qulX-3L3*yadJ;QH5r)*L7{<$@>@pfm% zjQ75GWNy~e)W;o*z93iSiLiRybh2MEcl=4k8msd%qWq$F*U;$mw|}Ga6tnl8l4l%M zfH=SLDA#Q7J2i8&?krD>?v~%#p)&Vo`=v(qz980Izm;@-$D%Jt)*U_6_JE)5eL=F; z!27aW^9u)%tSUTwc-f*a2)4e~*mqR1oV*~|x>>j+&t<>s?HwB%jVoI+_nNFWe4mG} z_ReZ!@B8CibM@=HwajrxWbS&os`~2e_nCv<{@y>SR%JghuBU9#cW6WI$hytk??t!A zdq{fUCGkwgo{jj8F2NoaonD?*_EyO)FD;fl?7i+ihZc)Y>o#OB;-1G{Su7Ryyr^Y# zma6#7amA8{6B^=HvTFDA(3n-B6Nr&35ASQ|o@+*@J!i_+3HpA+vg9EMTfQ#A8{0-c zFfuxUWUV_tjL3r}4{wji`~0t#?r}(sj7}>x( zyuOy}7bh9E)LD?WsyOjjZS8_vR_13#~l_O(p@tgxo)ht8tlk+z#uve)=gYplsRYz4D!9R zr~Ap>$msi08=3Egswy29HJW+R7sQEFXaBOyGCSbiTOMIqJ6bh*AZ*e1-X2!P4TM$r zsZq6N^ac5ylDU6vM!Ov_$WG;htI7&xk8l3xJC=H5ups&gW+ZdxH{@R|H^0EdxxH_1 zcI{SuWKnimLww;<->x0sc?o6T2ru!ZYBb(^LD`}#$oGBfeoV)rEC{xKORrDnroHdH z=rXlNyGdgm+1?kV|FgSoKh2u$eS6yuOaI&Zg6t;rFr#nv|NbA=BL=NK`kPJ7Z?rfY b*k|juimhAZZ`l6#tv=)WoY4Lo8}au)p)nmP literal 0 HcmV?d00001 diff --git a/doc-cg/ManualCG_EN.txt b/doc-cg/ManualCG_EN.txt new file mode 100644 index 0000000..846795d --- /dev/null +++ b/doc-cg/ManualCG_EN.txt @@ -0,0 +1,2773 @@ +=============================================================================== +Preface +=============================================================================== +Please look at this site: https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site and the following text is translated by Krtyski. +Some following text is translated by sentaro21. +(Borrow the power of the automatic translation) + +Sorry that translation is not good... +(Thanks to Emex for correcting the spellings) + +Grammars and typos in the manual are checked and corrected by CalcLoverHK. Some parts of descriptions are improved by CalcLoverHK. + +If you found some errors or bad expressions in the manual, please tell us in Universal Casio Forum (recommended) or Planete-Casio. We are very appreciate of your contributions. + +If there is any conflict or inconsistency between English, Japanese and French versions, the English version shall prevail. + +------------------------------------------------------------------------------- +Add-in Version Casio Basic Interpreter (& Compiler) for CG Series Comprehensive Manual +------------------------------------------------------------------------------- +Copyright © 2015-2017-2020 by sentaro21. +Contact: (E-mail) sentaro21@pm.matrix.jp + +Last updated by CalcLoverHK/sentaro21 - 9 Feb 2020 +(Updated to version 1.45 beta) + +=============================================================================== +What is C.Basic for CG? +=============================================================================== +C.Basic for CG is designed for fast, compatible with genuine Casio Basic and also bringing in some of good features of fx-5800P and C programming language. +C.Basic uses program file (*.g1m / *.g3m) stored in storage memory as same as genuine Casio Basic. +A program using only compatible commands can run in both of C.Basic and genuine Casio Basic. + +=============================================================================== (Extended for CG) +Execution modes - g1m/g3m +=============================================================================== +C.Basic has g1m mode which is compatible with the FX version and g3m mode corresponding to the CG series. + +When you operate g1m program with g3m mode, C.Basic is compatible with the text commands, but not some part of graphing commands. + +=============================================================================== (Extended for CG) +Available memory +=============================================================================== +There are 128KB of RAM that can be freely used as add-in. +There is free RAM of 6MB in CG50 for C.Basic to use. +(Hidden memory setting is in setup) + +=============================================================================== +Editable size in built-in editor +=============================================================================== +C.Basic has built-in editor aiming for usability similar to standard editor. +Copy and paste can be used, but 16KB is the maximum size that can be copied at once. Undo is not implemented yet. + +The initial editable size of the new file is 32KB. +If you exceed the limit when creating the program, you cannot edit it. Please save it once and re-edit. +The program editable maximum size at the time of re-editing is program size + 8KB. + +When executing a program, the main program is executed with securing an editable area of main program size + 8KB and subprogram + 512B. +It becomes re-editable size in debug mode. + +The program editable maximum size is about 62KB. + +=============================================================================== +Built-in debug mode +=============================================================================== +As a function that is not genuine, resumption of the program interrupted by [AC], and debug mode are equipped. +Debug mode can also be started in debug mode from the first run. +Trace execution, 1 step execution, step over, step out are supported. + +=============================================================================== +Operation modes - "Integer", "Real" mode and "Complex" mode +=============================================================================== +C.Basic supports three different operation modes: +"Real (Number) Mode": normal calculations (same as genuine Casio Basic) +"Complex Mode": complex calculations (same as genuine Casio Basic) +"Integer Mode": only integer calculations + +The "Integer Mode" is implemented to C.Basic for faster operation. + +In order to set either of those running modes, to set "Real Mode" declare one of followings: +'#CBasic +'#CBASIC +'#CBdbl +'#CBDBL + +To set "Integer Mode" declare one of followings: +'#CBint +'#CBINT + +To set "Complex Mode" declare one of followings: +'#CBcplx +'#CBCPLX + +In C.Basic real number is implemented in double-precision real type, so real and double-precision is the same. +You can set default settings in Setup page. To set default running mode, set "Execute mode" as Dbl# or "Int%". + +The declared running mode in source file has priority to setting in the Setup page. + +In "Integer Mode", result value of calculation have to be given in integer, but the operation speed is 50% faster than in "Real Number Mode". + +If you set "Integer Mode" but want to evaluate a specific expression in real number (double-precision), simply add prefix # before the expression you want. +The expression after # is evaluated in double-precision without error. +However, please note that the evaluation result in double-precision is converted to integer, so the expression after # will return value in integer by rounding to integer to fit the "Integer Mode". + +(Example) +"100*Frac 1.23+5 + +In "Integer Mode", Frac 1.23 is in error and the following codes cannot run, but the prefix # enable evaluation in double-precision of expression after # to end of line or ":" (multi-statement command). +#(Frac 1.23*100+5) + +Therefore, the result of this line is 28. If this code runs in "Real More", it also results in 28. + +If # is in middle of expression, a part of the expression after # to end of line or multi-statement command. + +(Example) +100*#Frac 1.23+5 + +Interpretation of this expression is +100*#(Frac 1.23+5) +So it results in 523 in "Real Mode" and 500 in "Integer Mode". + +=============================================================================== +Wait command +=============================================================================== +You can adjust the overall execution speed. +If it is set in setup, all programs will be affected. + +Use the Wait command if you want to adjust with individual programs. +(Example) Wait 100 +Set the Wait value to 100. + +=============================================================================== +Type of Numbers +=============================================================================== +Genuine Casio Basic use decimal number with internally 15 digits and 2 digits of exponent notation. On the other hand, C.Basic basically use a double precision real number type (8 Bytes) and 4 Bytes integer type, since Casio SDK (written in C language) has the same specification. +A range of number that the double precision real number can handle is ++-9.88131291682493e-323 to +-1.7976931348623151e+308 +This range is wider than genuine Casio Basic, but operation is carried out in binary, so we have to keep in mind that handling of number after decimal point may cause possible calculation error. + +We can put prefix 0X or 0B like C language to value of constant and then we can use hexadecimal or binary number within 32 bits. +(Example) 0XFF, 0B10100110 +(Example) 0xAB, 0b10100110 + +=============================================================================== +Type of Variables +=============================================================================== +As well as genuine Casio Basic, C.Basic uses single letter variables, 26 capital letters A to Z and also small letters a to z. + +String variable with more than 2 letters is not supported by C.Basic as well as genuine Casio Basic. + +C.Basic provides independently real number type of variables (A - Z, a - z) and integer type of variables (A - Z, a - z). +Real number variables are used in real number running mode and also integer variables in integer running mode. +In general, the different type of variable still use same letter, so we should put % suffix for integer variables (A% - Z%, a% - z%), put # suffix for real number variables (A# - Z#, a# - z#). + +When an integer variable with % suffix is used in real number mode it won't be a problem. But on the other hand, if a real number variable is used in integer mode, we have to understand that read-out value from the real number variable is rounded integer. +When real number value does not fit in the range of integer number, the value is changed to 0 (zero). + +(Example) #CBINT // set to integer mode + #1.2345->A# // 1.2345 is rounded to 1 then substituted. + +(Example) A%->A# +Copy integer variable A to double-precision variable A. +Copying integer value to double-precision variable is no problem. But double-precision value is going to be contained into integer variable, this may have a problem, in case the value does not fit into a range of integer (32 bits) the value is changed to 0. + +At initialization of variable, we can use a Format 0->A ~ Z (genuine Casio Basic can do this) and also we van set type of variable. +0->A#~Z# // initialize double-precision variable +0->A%~Z% // initialize integer variable + +=============================================================================== +Extended Variable +(0.35 -) +=============================================================================== +The variable by an alphanumeric character’s name beginning with under bar (to 8 characters) is usable. +It is always initialized at the time of program starts with the variable of the area independent of the conventional one character variable. +The usable variable becomes to 99. The real number variable and the integer variable can maintain a different value, but are found by the same name. +[SHIFT]+[F1] the capital letter variable, the small letter variable, the indication of the under bar variable are replaced whenever to push [F1]. + +(Example) 123.456->_ABC +(Example) 456->_ABC% +(Example) _ABC+_ABC%->_Result + _Result is 579.456 + +=============================================================================== +The constant number use of the variable +(0.35-) +=============================================================================== +To use Const command with a variable as constant number use-limited. [OPTN] -[F3](extd) -[F3](Const) +Since then cannot substitute it when to use Const command at the time of variable substitution. +(Example) 123->Const A +(Example) 123->Const _ABC +(Example) 456->A +If you are going to change the value of the variable by the same program, it becomes the error. + +=============================================================================== (Extended for CG) +Screen size +=============================================================================== +The range that can be used is 384x216 dot in the CG series normally. +The range that can paint pictures in genuine Casio Basic is 384x192 except the upper status line, but supports all 384x216 with the C.Basic for CG as a drawing range. +384x192 range applied by the command is compatible with genuine Casio Basic, but as for some commands, the status line becomes targeted for drawing, too. + +(Example) Locate 1,0,"STATUS LINE" +(Example) Text -24,1,"STATUS LINE" + Display "STATUS LINE" on the status line. + +=============================================================================== (Extended for CG) +Extended color display +=============================================================================== +Normally in genuine Casio Basic, there are only 16 variants of colors (8 colors * 2 types of transparency) that can be used in the CG series. +Actually, the CG series calculators adopted the 16-bit color depth, which means there are total 65536 (2^16) possible colors. C.Basic can show all 65536 colors. +C.Basic supports 24-bit color depth input, but because of the limitations of the CG series, sometimes the displayed color does not change. + +------------------------------------------------------------------------------- +Specifications +------------------------------------------------------------------------------- +16-bit color depth: +Red: 5 bits (2^5=32, 0-31) +Green: 6 bits (2^6=64, 0-63) +Blue: 5 bits (2^5=32, 0-31) +The total number of colors that can display is 32*64*32=65536. + +24-bit color depth: +Red: 8 bits (2^8=256, 0-255) +Green: 8 bits (2^8=256, 0-255) +Blue: 8 bits (2^8=256, 0-255) +The total number of possible combinations of colors is 256^3=16777214. + +The color designation method appoints a color before a command as same as genuine Casio Basic. +(Example) Blue Locate 1,1,"Blue" + +Following commands are extended. +Back-Color +RGB( +GetRGB( +HSV( +GetHSV( +HSL( +GetHSL( +Transp-Color + +(Example) Back-Color Red +(Example) RGB(255,0,128) Blue Locate 1,1,"Blue" +(Example) GetRGB(12345) + +(Format 1) Back-Color color +(Example) Back-Color Green + Set a background color in green. +(Format 2) Back-Color @ color +(Example) Back-Color @Green + Set a drawing frame out of the domain in green. + +(Format) RGB(R,G,B) + You can set any 24-bit color. + The range of the value becomes to 0-255 with an 8 bits level each + R: 8 bits (0-255) + G: 8 bits (0-255) + B: 8 bits (0-255) + To usable at points such as Red, Green, Blue. +(Example) It is Yellow which is slightly darker than Plot/LineColor RGB(160, 160, 0) Plot/LineColor Yellow. + +(Format) RGB({R,G,B}) +(Example) RGB({255,255,0}) +(Example) {255,255,0}->List 1 + RGB(List 1) + +(Format) RGB(#16-bit color value) +Added # option of RGB(,HSV(,HSL( that set to 16-bit color directly. +(Example) RGB(#12345) +(Example) HSV(#12345) +(Example) HSL(#12345) + +(Format) GetRGB(16-bit color value) +(Example) GetRGB(65535) + Return to ListAns = {32,64,32} + R = ListAns[1] + G = ListAns[2] + B = ListAns[3] + +(Format) HSV(H,S,V) +(Format) HSL(H,S,L) + H: 0-359 + S: 0-255 + V: 0-252 + L: 0-250 + +(* 4 colors that cannot be set by HSV() and HSL(). +  #0x003F: RGB( 0, 4, 248) +  #0x041F: RGB( 0, 128, 248) +  #0xF820: RGB(248, 4, 0) +  #0xFC00: RGB(248, 128, 0) + +(*Note) When the above values are used as arguments in GetHSV() and GetHSL() an error pop-up occurs. +(Format) GetHSV (16-bit color value [,N]) +(Format) GetHSL (16-bit color value [,N]) +[,N] Ignore errors. + +=============================================================================== +Transp-Color [SHIFT]-[F4](SKETCH)-[F6]-[F6]-[F1](COLOR)-[F6]-[F5](Transp-Color) +=============================================================================== +Appoint the transparent color in the bitmap drawing of the 16-bit colors. +(Format) Transp-Color + Clear the transparent color. +(Format) Transp-Color color +(Example) Transp-Color Green + Set the transparent color to green. +(Format2) Transp-Color #16-bit color value +(Example) Transp-Color #12345 + Set the transparent color to 12345. + +=============================================================================== +About VRAM +=============================================================================== +Text screen and graphics screen are independently implemented in C.Basic as well as genuine Casio Basic. Only Display-VRAM is used to display to LCD by commands. + +There are 3 VRAMs; +- Display-VRAM is used to output to LCD. +- Text-VRAM is an RAM area to save data for text screen. +- Graphics-VRAM is an RAM area to save data for graphics screen. + +These 3 VRAMs with same size are implemented. + +When a text display command runs in "text display mode", the process sends data to Display-VRAM. +When a text display command runs in "graphics display mode", the process retract Display-VRAM to Graphics-VRAM at first then transfer Text-VRAM to Display-VRAM, and then display text output in Display-VRAM. + +When a text display command runs repeatedly, skipping retraction to Graphics-VRAM and transferring to Text-VRAM, then only Drawing text on -Display-VRAM is continued (still in "text display mode"). + +Still in this "text display mode", when a graphics command runs, retract Display-VRAM to Text-VRAM, then resume Graphics-VRAM to Display-VRAM, and then draw graphics in Display-VRAM (switch to "graphics display mode"). + +As you see above, memory area such as Text-VRAM and Graphics-VRAM are NOT directly used for output to LCD, but merely data storage area. So once Text mode and Graphics mode are switched, at every time of this VRAM transferring is carried out among VRAM, Text-VRAM and Graphics-VRAM. + +=============================================================================== +Drawing on LCD +=============================================================================== +In order to draw text or graphics on screen in fx-CG series, data in VRAM is transferred to LCD. + +Transferring to LCD includes quite a few overhead, so it takes totally long time (it is inefficient) to transfer data to LCD (refresh) at every single time when a draw command runs. + +To get rid of the inefficiency, C.Basic provides Refresh Control function. +You can set to suppress the refresh at every single time when a draw command runs, and can set to carry out refresh in regular intervals. +This setting is available in Setup page and also by command. + +With the setting for refresh in regular intervals, the last command in repeating Drawing operation may lose a chance to refresh, then before refreshing to reflect the last Drawing command the next command possibly runs. + +In order to avoid this problem, we want to force the refresh then use PutDispDD to refresh screen. + +=============================================================================== +Extended Matrix +=============================================================================== +Specification and usage of Matrix in C.Basic is different from genuine Casio Basic as follows. +C.Basic covers genuine Casio Basic's usage of matrix, real number can be used in Real Number Mode and integer can be used in Integer Mode. +Matrix in C.Basic can handle Bit (1 bit), NIBBLEB (4 bit), BYTE (1 byte), WORD (2 byte), integer (4 byte) and real number (8 byte) as type of matrix. + +Add suffix to matrix name at matrix allocation to declare type of the matrix; +- [.P] or [.p]: 1-bit Integer Matrix, handling number is 0 to 1. +- [.N] or [.n]: 4-bit Integer NIBBLE Matrix, handling number is 0 to 15. +- [.B] or [.b]: 8-bit Integer BYTE Matrix, handling number is -128 to 127. +- [.W] or [.w]: 16-bit Integer WORD Matrix, handling number is -32,768 to 32,767. +- [.L] or [.l]: 32-bit Integer Long WORD Matrix, handling number is -2,147,483,648 to 2,147,483,647. +- [.F] or [.f]: 64-bit Double-Precision Real Number Matrix, handling number is 9.88131291682493e-323 to 1.7976931348623151e+308. +- [.C] or [.c] : 64*2-bit Double-Precision Real and Imaginary Number Matrix, handling number is 9.88131291682493e-323 to 1.7976931348623151e+308. + +Same as genuine, the matrix is {m, n} type and is implemented as {row, column}. +As an exception, 1 bit type is an implementation of {column, row} with {X,Y} type implementation. + +Since the 1 bit matrix has the same data structure as the VRAM of the screen, +When [.V] or [.v] is specified, VRAM can be read and written by assigning it to a matrix of 128 rows x 64 columns. +Furthermore, you can assign graphic VRAM with [.VG], text VRAM with [.VT] to matrix. +The index base starts at 0 and the matrix size is fixed at {216,384}. + +(Example) {216,384}->Dim Mat G.V +By accessing Mat G, you can directly read and write VRAM at that point, but since it is not a display system command, +When display the screen, it must be forcibly displayed after executing the command. + +(Example) {216,384}->Dim Mat G.V +Screen.G // Graphic screen selection (other graphic commands are acceptable) +1 -> Mat G[108,192] +PutDispDD // screen transfer command +You can put a dot in the middle of the graphic screen. +It is the same as PxlOn 31,63. + +(Example) {216,384}->Dim Mat G.V +Screen.T // Text screen selection (Other text based commands are acceptable) +1 -> Mat G [63, 31] +PutDispDD // screen transfer command +You can put a dot in the middle of the text screen. + +=============================================================================== +Initialization of Matrix +=============================================================================== +Same as genuine, {M, n} -> Dim Mat A Format, +[[1,2,3][4,5,6]] -> Supports Mat A Format initialization. + +In addition at fx-5800P, +100->Dim A +It supports Format. +0->Dim A +Deletes matrix A. + +In Mat matrix initialization command [[]], it is possible to insert newline and space. +(Example) +[[0B11001100, +0B00110011, +0B11001100, +0B00110011 +]]->Mat A.B + +Added Dim Dim option. +(Usage) {m,n}->Dim Dim Mat A(real address of the Mat) +(Example) {128,1}->Dim Mat A.B +(Example) {64,1}->Dim Dim Mat B.W(VarPtr(Mat A)) +Mat A and Mat B access in the same domain, but are different in byte access or the word access. + +=============================================================================== +Access to matrix +=============================================================================== +In addition to the Mat A[1,1] Format, +Mat was omitted +A[1,1] +With only the first row of access +A[1] +Notation is also possible. + +Furthermore, only when the subscript is the numerical value 0 to 9, +A0 +A5 +You can write it. + +The variable of this notation is automatically reserved for the matrix if the matrix which becomes the entity is not reserved in advance. +(Example) A1+123->B5 +If Mat A and Mat B are not secured, at the time the variable is 1st accessed +9->Dim A +9->Dim B +The same initialization as in 1 is executed automatically, and A1 to A9 and B1 to B9 can be used. + +(Example) '#Mat 0 +A1+123->B5 +In the case that Mat A and Mat B are not secured, +10->Dim A +10->Dim B +The same initialization as in A0 to A9 and B0 to B9 can be used automatically. + +(Example) '#Mat 0 +2->Dim B +A1+123->B5 +In the case of, +10->Dim A +Since only Mat A is initialized and Mat B is not reacquired, an error will occur at the time of accessing B5. +In this case you can use A0 ~ A9 and B0 ~ B1. + +=============================================================================== +Matrix Type Conversion +=============================================================================== +The matrix type (1 bit, byte, word, long word, real number) can be arbitrarily changed even after matrix reservation. +(Example) [[1,2,3,4] [5,6,7,8]] -> Mat A.B +Mat A->Dim Mat A.W +You can change the Mat A matrix of byte type to word type. +The number of elements will change according to the type size after change. +[[0x12,0x34][0x56,0x78]]->Mat A.W +The result is the same. + +(Note) Changes from a 1bit/4bit matrix and changes to 1bit/4bit type matrix are reversed in rows and columns. +This is because the 1bit/4bit type matrix is implemented in X and Y type, so it is a transposed matrix relation with ordinary m, n type matrix. +{127,63}->Dim Mat A.P +It secures it as a buffer that can be used as the virtual memory of the full screen bitmap data of the LCD screen. +Mat A->Dim Mat A.B +By changing to a byte type matrix, +The element size is {63,16}. + +=============================================================================== +1st Index of Matrix +=============================================================================== +In genuine Casio Basic, the index of a matrix starts with 1, but in C.Basic it can start with 0. +You can select the beginning of a matrix by describing it in setup or comment field. +(Example) #Mat 1 +It starts from 1 as before. +(Example) #Mat 0 +{3,2}->Dim Mat A + The matrix to be allocated is A[0,0] to A[2, 1]. + +At the same time, screen coordinates are also valid up to 0. This makes the whole screen the Drawing target area +(Example) Pxlon 0,0 + +=============================================================================== +Matrix Review +=============================================================================== +You can display binary and hexadecimal numbers in Mat matrix editor. +Pressing [F5] in matrix editing mode will display binary numbers, [F6] will display hexadecimal numbers. +To return to the decimal number display, press [F5] [F6] again. +However, the binary notation is up to the matrix of byte (1 byte) and word type (2 bytes). + +Press the [OPTN] key to change to the list name display. +Press the [VARS] key to change to the character string display. + +=============================================================================== +Supported list function +=============================================================================== +List functions are implemented by assigning one dimension of Mat. +List 1~26 is independent List. +Mat a ~ z of lower case Mat matrix to List 27 ~ 52. +List 27[5] = Mat a[5, 1] +List 28[5] = Mat b[5, 1] +List 29[5] = Mat c[5, 1] +List 100[5] = Mat 100[5, 1] +List 1000[5] = Mat 1000[5, 1] +It has the same meaning. + +The following command of genuine function is supported. + +List Ans +10->Dim List 1 +{1,2,3,4,5}->List 1 +Seq(X^2,X,1,10,2)->List 2 +Augment(List 1,List 2)->List 3 +Mat>List(Mat A,2)->List 1 +List>Mat(List 1, List 2, ...)->List 9 +Fill(3, List 1) +Min(List 1) +Max(List 1) +Mean(List 1) +Sort A(List 1) +Sort B(List 1) +Sum List 1 +Prod List 1 + +Arithmetic and functional arithmetic including List. + +=============================================================================== +Supported vector function +=============================================================================== + Vct + DotP( + CrossP( + Angle( + UnitV( + Norm( + ClrVct +(*)The area of Vct A~Z becomes independent. +To change [VARS] key for Vct display of Mat/List/Vct screen. + +=============================================================================== +Strings in C.Basic +=============================================================================== +Like the original Casio Basic, you can use Str character variables and string functions, but the substance of the string is implemented as a matrix. + +By attaching $ as the prefix, the Mat matrix is recognized as a string. +(Example) ["ABCDEF"] -> Mat A +Locate 3,3,$Mat A +"ABCDEF" is displayed on the screen coordinates (3, 3). + +At first, +{7,1}->Dim Mat A.B +The same initialization as that is done automatically. +The string is stored as byte type data in the matrix. + +-Character string functions compatible with Casio Basic + + (Concatenation of character strings) + StrJoin( + StrLen + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrDwr( + StrInv( + StrShift( + StrRotate( + +(Example) "ABCDEF"->Str 1 +Locate 3,3.StrRight(Str 1,3) +"DEF" is displayed on the screen coordinates (3, 3). + +The characters used in CG series include single - byte characters (alphanumeric characters, some commands) and double - byte characters (almost all commands, special characters and kana) +Internally, 1 byte and 2 byte characters are mixed, but handling with character functions is handled as one character as well as genuine. +Please pay attention to the position of the character when accessing the matrix element where the character string is stored directly. + +=============================================================================== +Initialization of String +=============================================================================== +The same character variable Str 1-20 as genuine implicitly uses of Mat matrix by default. +By default, the number of characters is limited to 255 characters. +The Str character variable is automatically secured as a Mat matrix and can be used with genuine compatibility in the next character string command, so it is not necessary to be conscious of the matrix. +When one or more Str strings are used in a program, if Maximum number of Str is M, matrix with M rows is automatically created as follows; + {M,256}→Dim Mat <r> +(note) means bold r. Keypress of the bold r is [ALPHA]+[x^2]. + +The Mat matrix which is the substance of the Str character variable can be arbitrarily specified, and it is specified in the comment field before using the Str variable. +(Example) '#Str A +We secure the Str variable as Mat A. +{20,65}->Dim Mat A.B +It is the same as. +(Example) '#Str B,30,256 +Secure the Str variable as Mat B as a possible variable up to 30 and 255 characters. + +The following Format can be used for assigning a character string. +(Example) "ABCDEEF"->Str 1 +(Example) ["ABC","TEST","1+3+5"]->Mat A +We automatically allocate Mat A [3,6] matrices of byte type and place character strings on each element. + Mat A[1,1] = "ABC" + Mat A[2,1] = "TEST" + Mat A[3,1] = "1+3+5" +. +To access "ABC" with a character string correspondence command, it is $Mat A, or $Mat A[1], or $Mat A[1,1]. +To access "1+3+5" it will be $Mat A[3], or $Mat A[3,1]. +(Example) Locate 1,1,$Mat A +Locate 1, 1, same as "ABC". +(Example) Locate 1,1,$Mat A[3,3] +It is the same as Locate 1,1,"3+5". + +This command corresponds to a character string in the current version. It is used in $ Mat Format instead of "". +- "" +(Example) $Mat A[1] +It is the same as "ABC". +-? +(Example)?->$Mat A +Enter a string in matrix Mat A. The number of characters is limited by the number of secured elements. +Locate +- Text +- LocateYX +- Eval( +(Example) Eval("1+2+3")->6 +(Example) Eval($Mat A[3,3])->8 +Evaluates the string as a mathematical expression and returns the value. + +=============================================================================== +Sprintf - an Extended Command +=============================================================================== +As genuine there is no conversion function from number to character string, Sprintf (C language compatible specification of SDK was added as additional character string function. +(Specification) Sprintf ("Format specifier", argument 1 [, argument 2 [, argument 3]])) +(Example) Sprintf ("A=%4dB=%3.2f",%A,#B) -> Str 1 +When A=1234 and B=45.678, +The character string assigned to Str 1 is +A=1234 B=45.68 +Since Format specification is compatible with sprintf in C language, the numerical expression such as exponential notation etc. is somewhat different. + Up to three arguments can be specified, and integer / real number / character string can be specified. +The% prefix specifies an integer, and the prefix specifies a real number. + If prefix is left out, it becomes the execution mode (real / integer) at that point. + There is no error check for Format specification and argument correspondence, so please be careful because there is a possibility of reset or restart if an error occurs with Sprintf (command). + +(Attention) The subtraction character "-" is necessary to input from [F4](CHAR). + +=============================================================================== +Command Reference +=============================================================================== +------------------------------------------------------------------------------- +Compatible Commands with Casio Basic +------------------------------------------------------------------------------- +? +(Disps) +-> +If ~ Then ~ Else ~ IfEnd +Lbl ~ Goto +>= <= < > = <> + +Dsz / Isz +=> +Locate +Menu + +For ~ To ~ Step ~ Next +While ~ WhileEnd +Do ~ LpWhile +Break +Return +Stop +Getkey +Prog + +ClrMat +ClrList +Mat (Matrix Calculations is supported.) +List (Arithmetic Calculations Using Lists is supported.) +Dim +Fill( +Seq( +Augment( +Mat> List( +List> Mat( +Min( +Max( +Mean( +Sort A( +Sort B( +Sum +Prod +Swap / *Row / *Row+ / Row+ +Trn +Identity +DotP( +CrossP( +Angle( +UnitV( +Norm( (*Mat is not supported) +nPr +nCr + +i / Arg / Conjg / ReP / ImP / >r/_theta / a+bi +Real / a+bi / r/_theta + +Cls ClrText ClrGraph +ViewWindow +Plot / PlotOn / PlotOff / PlotChg +Circle +Line / F-Line +Vertical / Horizontal + +PxlOn / PxlOff / PxlChg +PxlTest( +Text + +SketchNormal / SketchThick / SketchBroken / SketchDot / SketchThin +S-L-Normal / S-L-Thick / S-L-Broken / S-L-Dot / S-L-Thin + +G-Connect / G-Plot +CoordOn / CoordOff +GridOn / GridOff / GridLine +AxesOn / AxesOff / AxesScale +LabelOn / LabelOff +DerivOn / DerivOff +BG-None / BG-Pict +FuncOn / FuncOff +S-WindAuto / S-WindMan + +DrawGraph (partially supported) +Graph Y= (partially supported) +GraphY (partially supported) + +Graph(X, Y) = (Partially supported) +DrawStat (partially supported) +S-Gph1, S-Gph2, S-Gph3, DrawOn, DrawOff, Scatter, xyLine, Square, Cross, Dot + +Xmin Ymin Xmax Ymax Xscl Yscl Xfct Yfct Xdot +T [theta] Min T [theta] Max T [theta] Ptch + +Deg Rad Grad + +And Or Not Xor + +Abs Int frac Intg +! +MOD +Rmdr Int/ +Log ln logab( +10 ^ x e ^ x +X ^ -1 +Sqr x ^ 2 +Sqr ^ -3 +Sin cos tan +Sin^-1 cos^-1 tan^-1 +Sinh cosh tanh +Sinh^-1 cosh^-1 tanh^-1 + +Femto pico nano micro milli Kiro Mega Giga Tera Peta Exa + +(deg) r (rad) g (gra) +> DMS + +Str +StrJoin( +StrLen +StrCmp( +StrSrc( +StrLeft( +StrRight( +StrMid( +Str>Exp( +Exp( +StrUpr( +StrDwr( +StrInv( +StrShift( +StrRotate( + +StoPict / RclPict +RclCapt + +Ran# RanInt#( RanNorm#( RanBin#( RanList#( +Rnd RndFix( +Norm / Fix / Sci +Eng / EngOn / EngOff + +Black Blue Red Magenta Green Yellow Cyan +Plot/Line-Color + +=============================================================================== +Command reference extended command +=============================================================================== +------------------------------------------------------------------------------- +? [SHIFT]+[VARS](PRGM)-[F4](?) +------------------------------------------------------------------------------- +You can use more options in input command. +(Usage) ?([x][,y][,width][,"SpaceChar"][,limit][,R][,M]) +(Example) "A="?()->A +Display "A=" then wait for inputting A value. +(Example) "A="?(,,,,,R)->A +Display "A=" then wait for inputting A value in reversed display. +(Example) "A="?(,,8,,,R)->A +Display "A=" then wait for inputting A value within only 8 digits in reversed display. +(Example) "A="?(3,4,5,">",5)A +Display "A=" then wait for inputting A value at(X=3,Y=4) within 5 digits or 5 characters and the blank is made up in ">". (Example) ?(3,4,5,,5,R)A +Display "A=" then wait for inputting A value at(X=3,Y=4) within 5 digits and 5 characters in reversed display. + +[@] The drawing of the command becomes current VRAM. +(Example) "A="?(@30,40,5,">",5)A +Display "A=" on current VRAM then wait for inputting A value at(px=30,py=40) only 5 digits and 5 character the blank is made up in ">". +(Example) "A="?(@30,40,5,">",5,,M)A + Display mini font "A=" on current VRAM then wait for inputting A value at(px=30,py=40) only 5 digits and 5 character the blank is made up in ">". + +------------------------------------------------------------------------------- +Menu [SHIFT]+[VARS](PRGM)-[F3](JUMP)-[F6](Menu) +------------------------------------------------------------------------------- +The color of title is valid just before the Menu command. +The color of menu item is valid Plot/Line-Color. +The color of menu background is valid Back-Color. +(Example) +Plot/Line-Color Blue +Back-Color Black +Red Menu "MENU TITLE","1st item",1,"2nd item",2 + +When attach "@" after a command, it is compatible with the FX version. + +------------------------------------------------------------------------------- +Fix [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F1](Fix) +Sci [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F2](Sci) +Norm [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F3](Norm) +Eng [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F3](Eng) +------------------------------------------------------------------------------- +Fix, Sci, Norm can take integer parameter in range of 0 to 15. +Fix: Setting is almost same as genuine Casio Basic, except x is in exponent notation when |x| ≧ 10^17. + +Sci:Setting is almost same as genuine Casio Basic, except Sci 0 sets 16 significant figures. + +Norm:Norm 1 and Norm 2 set 10 significant figures same as genuine Casio Basic. Norm 0 sets 16 significant figures. +Norm n sets n significant figures. Condition of exponent notation depends on following range of x; +- Norm 1 …… 0.01 > |x|, |x| ≧ 10^10 +- Norm 2 …… 0.000000001 > |x|, |x| ≧ 10^10 +- Norm n (3≦n≦15) …… 0.01 > |x|, |x| ≧ 10^n +- Norm 0 …… 0.01 > |x|, |x| ≧ 10^15 + + +Eng, Norm, Fix, Sci return current state (On or Off). + +Eng returns the current state of 3-digit seperator: +- Return value 0: state of EngOff +- Return value 1: state of EngOn +Norm, Fix, Sci +To return current status, set negative value as parameter*; +(Note*) To add the parameter, ( ) is not necessarily required. +If current state is Norm1, return values are: +- Norm (-1) gives 1 +- Fix (-1) gives -1 +- Sci (-1) gives -1 + +If current state is Fix 8, return values are: +- Norm (-1) gives -1 +- Fix (-1) gives 8 +- Sci (-1) gives -1 + +------------------------------------------------------------------------------- +EngOn [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F1](EngOn) +------------------------------------------------------------------------------- +Enable 3-digit separator. +(Example) EngOn 3 + After this commend, number is displayed with 3-digit separator ",". + EngOff to disable 3-digit seperator. + +------------------------------------------------------------------------------- +RndFix( [OPTN]-[F6]-[F4](NUMERIC)-[F6]-[F1](RndFix) +------------------------------------------------------------------------------- +Added option of RndFix(for calculating the maximum number of significant digits. +(Format) RndFix(value,Sci digits) +(Example) RndFix(1.23456789e-123,Sci 5) +Return value of 1.2346e-123 + +------------------------------------------------------------------------------- +StoPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F1](Store) +RclPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F2](Recall) +------------------------------------------------------------------------------- +These commands can be used in 2 different modes, a mode storing in storage memory and a mode storing in heap memory secured in main memory. +To set the mode, open "Setup" page by [SHIFT][MENU](Setup), select to item "Pict", then set [F1](MEM) or [F2](Heap). +When "Heap" is set, we lose compatibility of Pict file with genuine Casio Basic, but access speed to Pict file will be faster. +The program source itself keep compatibility, so source in genuine Casio Basic can run in C.Basic. + +------------------------------------------------------------------------------- +ElseIf [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F5](ElseIf) +------------------------------------------------------------------------------- +(Format) If ~ Then ~ ElseIf ~ IfEnd +(Example) +(Casio Basic) +If A + Then Locate 1,1,"A" + Else If B + Then Locate 1,2,"B" + Else If C + Then Locate 1,3,"C" + IfEnd + IfEnd +IfEnd + +(C.Basic) +If A + Then Locate 1,1,"A" + ElseIf B + Then Locate 1,2,"B" + ElseIf C + Then Locate 1,3,"C" +IfEnd + +As you see above, ElseIf is similar to Else If, but it makes the command need one nest only. Use only one IfEnd in the end. + +The number of IfEnd corresponding to If is not strictly checked in genuine Casio Basic. But in C.Basic you can set if you want the strict check or not at item "IfEnd Check" in "Setup" page. +Set "On" at "IfEnd Check", an error message may pop up in run time, and cursor locates at If command which does not have any corresponding IfEnd. + +------------------------------------------------------------------------------- +Locate [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F1](Locate) +------------------------------------------------------------------------------- +(Format) Locate [@][!]y,x,[##],<"string" or expression>[,N/O/R/V][,F][,height] + [@] The drawing of the command becomes current VRAM. + [!] Even if the extended font is introduced, drawing in the original font forcibly. + [##] enable GB font display + [%%] disable GB font display + [,N] Normal + [,R] Reverse + [,O] Or + [,V] reVerse or + [,F] Fixed 18 pixel pitch. + [,height] specifies the height of the font to draw. + + (Example) Locate 1,2,"Test",R + Reversed "Test" is displayed at location (1,2). + +-With prefix # to expression (parameter) in Locate as well as Sprintf, Text and Disp commands makes evaluation of the expression in real number. + In "Integer Mode", the expression with prefix # allows displaying string of "real number" which reflects the evaluation in real number. Prefix # helps display in "Integer Mode" to handle "real number" by Locate, Sprintf, Text and Disp commands. +(Example) + '#CBINT + 10->A + Locate 1,2,log 123+A + In Integer Mode, "log 123+A" is rounded to 12, but +(Example) + '#CBINT + 10->A + Locate 1,2,#log 123+A + With the prefix #, it is not rounded and display 12.089905111. +An expression after prefix # is handled as real number, but variable (for Example A above) is still used as integer variable, so prefix % should not be added. + +------------------------------------------------------------------------------- +Switch [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F1](Switch) +Case [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F2](Case) +Default [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F3](Default) +Break [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F4](Break) +SwitchEnd [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F5](SwitchEnd) +------------------------------------------------------------------------------- +C.Basic supports Switch statement from C programming language. +(Format) +Switch + Case + [] + [Break] + Default + [] + [Break] +SwitchEnd + +You can set multiple cases as you want. +Without "Break", program control goes through to the next "Case". +Note, "Default" should be placed in the last, otherwise unexpected result may occur. + +(Example) +Switch A + Case 1 + Locate 1,1,"A" + Break + Case 2 + Locate 1,2,"B" + Case 3 + Locate 1,3,"C" + Break + Default + Break +SwitchEnd + +------------------------------------------------------------------------------- +ACBreak [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F2](ACBreak) +------------------------------------------------------------------------------- +"ACBreak" command gives exactly the same result as to press [AC] key during program runs. + +Availability of "ACBreak", enable or disable can be set at item "ACBreak" in "Setup" page. When "ACBreak" is Off (disable), the command "ACBreak" is ignored and is not breaking the program. + +(Example) ACBreak + +Input command "ACBreak" and "Stop" right after ACBreak, then "ACBreakStop" command cancel all the ACBreak after this command. This gives exacltly the same result as to set "Off" for ACBreak in "Setup" page. + +(Example) ACBreakStop + +------------------------------------------------------------------------------- +Local [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F5](Local) +------------------------------------------------------------------------------- +In C.Basic all the variables including small letter variables are "global variable" as default. But some small letter variables can be used as "local variable" with "Local" command. + +Set small letter variables to "Local" command in a program, then those variables can be local, the scope is only within the single program. + +(Example) Local x,y,x + - Parameters x, y and z are now local variables. + - Maximum 10 small letters can be set as local variable. + - In the same order of the parameters can be passed to sub-routine with Prog command. + +(Example) +In sub-routine "TEST", use Local with 3 small letters for local variables: + +Local x,y,x +(Describe this in the sub-routine, the position can be where ever you like...) + +Then in main routine describe use Prog command with 3 extra parameters; + +Prog "TEST",123,456,N +(At calling sub-routine "TEST", pass 123, 456 and N to "TEST" in the same order, that means 123->x, 456->y, N->z in the sub-routine, other variables are still global.) + +Using local variables, a recurrence algorithm is available in C.Basic, but at this moment maximum nesting is about 128 levels. + +------------------------------------------------------------------------------- +Prog [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F1](Prog) +------------------------------------------------------------------------------- +Use with "Local" command, "Prog" can handle arguments and returns with sub program. + +(Example) +"MAIN" Program +10->X +20->Y +X+1->a +Y*2->b +Prog "SUB",X,Y +Disp Ans +Disp a +Disp b + +"SUB" Program +Local a,b +Dips a +Disp b +Return a+b + +Result Output +10 +20 +30 +11 +40 + +"MAIN" program calls "SUB" program calculating sum of 2 numbers and display the result. +In the sub program, variables a and b is secured as local variables, so cannot access to global variables a and b. +In the main program, a and b are global variables, so the variables are free of the influence of global variables a and b in the sub program. + +------------------------------------------------------------------------------- +Return [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F2](Return) +------------------------------------------------------------------------------- +"Return" command returns from sub-routine, in C.Basic a return value can be sent back to main routine. + +(Example) Return + The return value, a value of is substituted in "Ans". + +------------------------------------------------------------------------------- +Gosub [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F1](Gosub) +------------------------------------------------------------------------------- +"Gosub" command allows to use sub-routine within single program. + +(Example) Gosub A +Jump to "Lbl A", proceed codes until "Return", then resume back. + +(Example) Gosub A,123,456 +With Local command, arguments can be used as similar to Prog command, but all the codes are in single program, so the variables are global. + +(Example) +10->X +20->Y +X+1->a +Y*2->b +Gosub A,X,Y +Disp Ans +Disp a +Disp b + Stop + +Lbl A +local a,b +Dips a +Disp b +Return a+b + +Result Output + 10 + 20 + 30 + 10 + 20 + +This sample program is similar to (Example) program of Prog command. Variables a and b are secured as local variable, so cannot access to global variables a and b in this program. + +------------------------------------------------------------------------------- +ElemSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F2](Elem) +RowSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F3](Row) +ColSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F4](Col) +------------------------------------------------------------------------------- +Functions to obtain size of a matrix. + +ElemSize( +Return size (in bit) of element. +(Example) ElemSize(Mat A) +RowSize( +Return m of {m,n}, row size of a matrix. +ColSize( +Return m of {m,n}, column size of a matrix. + +------------------------------------------------------------------------------- +MatBase( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F1](Base) +------------------------------------------------------------------------------- +Functions to obtain start index value of matrix +(Example) MatBase(Mat A) + +------------------------------------------------------------------------------- +Getkey [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F2](Getkey) +------------------------------------------------------------------------------- +There are following features for Getkey in addition to genuine Casio Basic; + - Getkey: compatible with genuine Casio Basic. + - Getkey1: pause until any key is pressed (same as SDK's Getkey). + - Getkey2: clear key buffer then accept input. (Recommended use in SH3 models.) + - Getkey3: pause for a certain period before accept input. + - GetkeyM: puts multiple pressed keys into a list. +* The number right after Getkey should be input by number keys. + +Keycode is fully compatible with genuine Casio Basic, but not compatible with SDK. + +Power Off by [SHIFT]+[AC] as well as [AC] is not supported yet to obtain keycode. + +(Example) Getkey3(128) +Set 128 Ticks count (1 sec) for pause. This does not return keycode during the pause, but returns keycode of last key press after the key wait period. + +(Example) Getkey3(128,A) +Pause until 128 Ticks count of current timer with initial timer as set by A (in Ticks count). + +* In case Getkey1 does not properly work in SH3 version, use Getkey2 instrad of Getkey1. + + (Example) GetkeyM->List 1 +Press EXE and F1 will result in {79,31} + +* When validate Exec TimeDsp, the time measurement stops during Getkey1/2, but can make reset & restart by setting. + You can set it by setup or the following control commands. +(Format) '#GetkeyC + It is the stop of the timer of the default, a continuation mode. +(Format) '#GetkeyR + Timer resets after Getkey1/2. + +------------------------------------------------------------------------------- +Try~Except~TryEnd [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F3](Try) +------------------------------------------------------------------------------- +Exception handling can be performed according to the error. +(Format) +Try + Except [] + +TryEnd + +You can have more than one Except for different error codes. +If there is no error in , processing will move after TryEnd. +If error occurs and the corresponding error code matches the value after Except, processing will move to and executes, then goes after TryEnd. +When error that does not match the error code occurs, an error pop-up appears because there is no corresponding Except . +Except with no argument corresponds to all errors. If any error occurs, processing will move to and executes. +When there are more than one conditions that matches the error, processing will move to the Except that has the least line number compared to another one. + +(Example) +Try 3*4+ + Except 1 + "Syntax Error" +TryEnd + +"Syntax Error" is executed instead of showing error message, since "Syntax Error" error code is 1. + +(Example) +Try 3*4/0 + Except 1 + "Syntax Error" + Except 40 + "Divide by zero" +TryEnd + +"Divide by zero" is executed instead of showing error message, since "Division By Zero" error code is 40. + +(Example) +1 Try 0/0 +2 Except +3 "Error" +4 Except 40 +5 "Divide by zero" +6 TryEnd + +Since "Except " has the least line number compared to "Except 40" (i.e. no.2 > no.4), processing will instead move to "Except " and run "Error", then it will skip "Except 40" and move to TryEnd. + +The sample program is in CBasic_sample/Try_Except. +Refer to ErrorCode_List.txt for the error code in the ZIP package. + +------------------------------------------------------------------------------- +Version [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) +(0.45-) +------------------------------------------------------------------------------- +Return version number. +(Example) Version + When ver.0.45, return value is 45. + +------------------------------------------------------------------------------- +System( [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F4](System) +(0.49-) +------------------------------------------------------------------------------- +Return to some system value. + +System(0):return to version of C.Basic (same as Version) +System(1):return to address of VRAM. (162KB) +System(2):return to address of text VRAM. (162KB) +System(3):return to address of graphic VRAM. (162KB) +System(4):return to address of work buffer. (256KB) +System(10):return to address of clip buffer. (32KB) +System(-4):return to remainder of the heap size. (KB) +System(-3):return to the heap area size. (KB) +System(-2):return to OS version. (Example 311) +System(-1):return to model name. (50 in CG50) + +=============================================================================== +Extended Graphics Commands +=============================================================================== +The true coordinate of the screen of the CG10/20/50 series is (0,0) -(383,215), but uses it with a coordinate level of (0,-24)-(383,191) in C.Basic. + +=============================================================================== +When [:] is added just after a command, current VRAM is targeted for drawing regardless of text mode and a graphic mode. +------------------------------------------------------------------------------- +(Example) Locate 2,2,"String": + Text 16,1,"TextString": + +The end after the command [:], no screen update. +Please use transfer commands such as PutDispDD to let you display LCD by a Drawing result. + +------------------------------------------------------------------------------- +When add [@] just after a command, current VRAM is targeted for Drawing. + +(Example) +Text 1,1,"Graphic" +Locate @1,2,"Text" + +(Example) +Locate 1,1,"Text" +Text @24,10,"Graphic" + +------------------------------------------------------------------------------- +Those below commands support clear and reverse function by adding new parameters C or X at the end; + +Line +F-Line +Circle +Rect( +FillRect( +Add [,C] to clear and [,X] to reverse the drawn patterns. +(Example) F-Line 1,1,30,20,X + +------------------------------------------------------------------------------- +Text [SHIFT]-[F4](SKTCH)-[F6]-[F6]-[F2](Text) +------------------------------------------------------------------------------- +(Format) Text [@][!]y,x,[##]<"string" or expression>,[,N/O/R/V][,F/FM/FMB/M/MB/FX/X][,height] +[@] The Drawing of the command becomes current VRAM. +[!] Even if the extended font is introduced, drawing in the original font forcibly. +[##] enable GB font display +[%%] disable GB font display +[.N] Normal +[.R] Reverse +[,O] Or +[,V] reVerse or +[,F] Fixed pitch (12dots space fixation) + +(Example) Text 20,80,"Test",R +"Test" is displayed by reversing display by graphic coordinate (80,20). + +(Example) Text 20,80,"Test",,F +"Test" is displayed a mini-font with fixed pitch (12dots space fixation). + +(Example) Text 20,80,"Test",,M +"Test" is displayed a minimini-font. + +(Example) Text 20,80,"Test",,MB +"Test" is displayed a minimini-bold-font. + +(Example) Text 20,80,"Test",,FM +"Test" is displayed a fixed pitch minimini-font. + +(Example) Text 20,80,"Test",,FMB +"Test" is displayed a fixed pitch minimini-bold-font. + +(Example) Text 20,80,"Test",,X +(Example) Text 20,80,"Test",,FX +"Test" is displayed a mini-fx style 6x8 font. + +(Example) Text 20,80,"Test",,,16 +Display 16 dots by the upper end. +2 lower dots are not displayed. + +------------------------------------------------------------------------------- +LocateYX [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F3](LocateYX) +------------------------------------------------------------------------------- +To use the Locate command like Text command. +(Format) LocateYX [@][!]y,x,[##]<"string" or expression>,[,N/O/R/V][,F][,height] +[@] The Drawing of the command becomes current VRAM. +[!] Even if the extended font is introduced, drawing in the original font forcibly. +[##] enable GB font display +[.N] Normal +[.R] Reverse +[,O] Or +[,V] reVerse or +[,F] Fixed 18 pixel pitch. + +Letter indication of the size same as Locate is possible to a graphic screen. +Y coordinate becomes the coordinate definition as well as Text command earlier. +It becomes the reversing display in [,R] in the last of the command. +(Example) LocateYX 20,80,"Test",R +"Test" is displayed by reversing display by graphic coordinate (80,20). + +------------------------------------------------------------------------------- +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) +------------------------------------------------------------------------------- +Display a rectangle. The coordinate becomes the true coordinate definition. +(Example) Rect 1,1,127,63 + +------------------------------------------------------------------------------- +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) +------------------------------------------------------------------------------- +Display the filled rectangle. +(Example) FillRect 1,1,127,63 + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) +------------------------------------------------------------------------------- +Read the bitmap data of the graphic screen by a bit unit. +(Format) ReadGraph(px1,py1,px2,py2) -> Mat A + (px1,py1)-(px2,py2) to Mat A . + It is not necessary to secure the Mat array beforehand. at appropriate array size automatically. + When there is not the type definition of the Mat array, it becomes the 16 bit type. + +------------------------------------------------------------------------------- +WriteGraph [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F4](WriteGraph) +------------------------------------------------------------------------------- +Display bitmap data. +(Format 1) WriteGraph x,y,dx,dy,Mat A ,P1[,P2] +Draw data of Mat A in width dx, the range of height dy from coordinate (x,y) of the graphic screen. + P1 parameter + [,N] normal + [,R] reverse + [,M] mesh + P2 parameter + [omit] over + [,X] xor + [,O] or + [,A] and + +(Example) [[1,2,4,8,16,32,64,128]] -> Mat A +WriteGraph 80,20, 8,8, Mat A, N + +(Format 2) WriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2] +Draw data from [m,n] of Mat A in width dx, the range of height dy from coordinate (x,y) of the graphic screen. +(Example) [[16,32,64,128][128,64,32,16]] -> Mat A +WriteGraph 80,20, 4,4, Mat A[1,1], N +WriteGraph 80,24, 4,4, Mat A[2,1], N +A figure of [<] is drawn from coordinate (80,20) of the graphic screen. + +WriteGraph 80,20,4,8,Mat A,N +But it becomes the same result. + +The bitmap data are 8 bits width, and leaning to the left becomes the standard. +(g1m mode above) + +(g3m mode) +*Only in the case of a 1 bit Mat/List, it becomes the monochromatic Drawing. +It becomes the 16 bits color drawing other than it. + +If you need transparent color, use Transp-Color command. + +------------------------------------------------------------------------------- +DotGet( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F1](DotGet) +------------------------------------------------------------------------------- +(Example) DotGet( px1,py1, px2,py2)->Mat A[x,y] + +------------------------------------------------------------------------------- +DotPut( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F2](DotPut) +------------------------------------------------------------------------------- + (Example)DotPut( Mat A, x,y, px1,py1, px2,py2) + (Example)DotPut( Mat A[x,y], px1,py1, px2,py2)->Mat B + (Example)DotPut( Mat A[x,y], px1,py1, px2,py2) + +------------------------------------------------------------------------------- +DotTrim( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F3](DotTrim) +------------------------------------------------------------------------------- + (Example)DotTrim(Mat A, x1,y1,x2,y2)->Mat B + (Example)DotTrim(px1,py1,px2,py2)->Mat A + +------------------------------------------------------------------------------- +CellSum( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F5](CellSum) +------------------------------------------------------------------------------- + (Example)CellSum(Mat B[X,Y])->C + +------------------------------------------------------------------------------- +DotLife( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F4](DotLife) +------------------------------------------------------------------------------- + (Example)DotLife( Mat A, x1,y1,x2,y2)->Mat B + +=============================================================================== +Other Extended Commands +=============================================================================== +------------------------------------------------------------------------------- +KeyRow( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F5](KeyRow) +------------------------------------------------------------------------------- +Return the key matrix. + + Returning bits (in binary) + bit6 bit5 bit4 bit3 bit2 bit1 + Row--------------------------------------Row + 09 F1 F2 F3 F4 F5 F6 09 + 08 SHIFT OPTN VARS MENU <- (up) 08 + 07 ALPHA ^2 ^ EXIT (dw) -> 07 + 06 XTT log ln sin cos tan 06 + 05 ab/c F<>D ( ) , -> 05 + 04 7 8 9 DEL 04 + 03 4 5 6 x div 03 + 02 1 2 3 + - 02 + 01 0 . EXP (-) EXE 01 + Row--------------------------------------Row + +(Example) KeyRow(9) +When press [F4] and [F6] keys at the same time, bit3 and bit1 come to 1, then return value is 2^3 + 2^1 = 10. + +------------------------------------------------------------------------------- +Ticks [VARS]-[F3](Extend)-[F1](Ticks) +------------------------------------------------------------------------------- +128 ticks/s timer. +(Example) 0 -> Ticks +Initialize the internal timer. + +At the 32 bits counter which the internal timer counts it at 128 ticks/s, and restored in 24 hours. +The maximum value 24*60*60*128 -1 = 11059199. + +------------------------------------------------------------------------------- +Ticks% +------------------------------------------------------------------------------- +32768 ticks/s timer. +(Example) 0 -> Ticks% +Initialize the internal timer. +At the 32 bits counter which the internal timer counts it in a speed of 32768 ticks/s, and restored at 4294967296 (=2^32). +The maximum value is 4294967295=(2^32-1)=-1 +There is no processing burden compared to Ticks. + +------------------------------------------------------------------------------- +TicksWait +------------------------------------------------------------------------------- +Waits a period of time at a ratio of 128 ticks/second. +(Format) Combine "Ticks" and "Wait" to get this command. +(Example) TicksWait 128 +Waits for 1 second. +(Example) TicksWait -128 +Waits for 1 second from the last TicksWait command run. +When it has been already over 1 second, to the next processing without waiting. +(Example) TicksWait -4 +Wait for 4/128 second from the last TicksWait command run. +You can make 32fps of loops just to use one this command in the loop. + +------------------------------------------------------------------------------- +Ticks%Wait +------------------------------------------------------------------------------- +Waits a period of time at a ratio of 32768 ticks/second. + +------------------------------------------------------------------------------- +DATE [VARS]-[F3](Extend)-[F3](DATE) +TIME [VARS]-[F3](Extend)-[F4](TIME) +------------------------------------------------------------------------------- +Shows the current date and time according to RTC. It is stored as the string variable. + (Example) "2017/01/17"->DATE + (Example) DATE + 2017/01/17 TUE + It is calculated automatically on a day. + + (Example) "23:59:59"->TIME + (Example) TIME + 23:59:59 + +------------------------------------------------------------------------------- +Disp [SHIFT]+[VARS](PRGM)-[F6]-[F2](DISPLAY)-[F6](Disp) +------------------------------------------------------------------------------- +This is a result indication command not to suspend unlike stop command (Disps). +A party scrolls every result indication. + (Example) Disp A+B + +------------------------------------------------------------------------------- +BackLight [VARS]-[F3](Extend)-[F5](BackLight) +------------------------------------------------------------------------------- +Setting or reading of the backlight level + (Format) Backlight level + Level: 0~511 (0~255: sublevel +256: main level) + (Format) +Backlight + Read the level of the current backlight. + +------------------------------------------------------------------------------- +RefrshCtrl [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F1](RefrshCtrl) +RefrshTime [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F2](RefrshTime) +------------------------------------------------------------------------------- +RefrshCtrl and the RefrshTime command that could set the refreshment of the screen by a command. +(Example) RefrshCtrl 0 +No refresh control. +(Example) RefrshCtrl 1 +Refresh control is provided. Set to Grp(only graphics) mode. +(Example) RefrshCtrl 2 +All refresh control is provided. Set to All(graphics+text) mode. +(Example) RefrshTime 5 +Set the refresh control setting time to 5. +The screen update intervals is 5/128s. + +(Format) +RefrshCtrl +(Format) +RefrshTime +Read the state of the current RefrshCtrl/RefrshTime. +(*An error will occur if command comes to the beginning of the expression.) + +------------------------------------------------------------------------------- +Screen [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F1](Screen) +------------------------------------------------------------------------------- +Choose target VRAM and change a screen mode. +(Format 1) Screen +Change the text / graphic. +(Format 2) Screen.T or Screen.t +Change to text VRAM and change the screen mode to the text mode, +(Format 3) Screen.G or Screen.g +Change to graphic VRAM. +(Format 4) Screen 0 or SCreen 1 +0: Text VRAM +1: Graphic VRAM + +To convert from Screen Coordinates to Graph Coordinates. +(Usage) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +Return value to List Ans{x,y} +(Example) Screen#1,1,-6.3,6.3,-3.1,3.1 +Result {74,22} + +To convert from Graph Coordinates to Screen Coordinates. +(Usage) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +Return value to List Ans{x,y} +(Example) Screen%74,22,-6.3,6.3,-3.1,3.1 +Result {1,1} + +-Added Screen.OT option that restrain + +To compose text VRAM and graphics VRAM display LCD. +(Format) Screen.O +The text VRAM becomes the synthetic screen with the graphics VRAM at the time of LCD screen transfer. +(Format) Screen.OT +VRAM does not come to change after LCD screen transfer. +(Format) Screen.N +Normal mode. + +------------------------------------------------------------------------------- +PutDispDD [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F2](PutDispDD) +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +Update screen. +(Format 1) PutDispDD +(Format 1) _DispVram +(*)Attention + A transfer area is different from PutDispDD in _DispVram command. + PutDispDD: Transfer range (0,0) -(383,191) It is specifications compatible with genuine. + _DispVram: Transfer range (0,-24) -(383,191) include an upper status line. + +(Format 2) PutDispDD@ start line, end line +(Format 2) _DispVram@ start line, end line + The range of the line becomes from the top (-24) to bottom (191). + Both do same movement. +(Example) PutDispDD@ 0,23 + Transfer only the first line of Locate. + +------------------------------------------------------------------------------- +PopUpWin( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F5](PopUpWin) +------------------------------------------------------------------------------- +Draw the pop-up window frame in current. + (Usage) PopUpWin(n) (1 <= n <= 6) + (Example) PopUpWin(5) + + Message popup + (Example) PopUpWin(11,"Message1"[,"Message1"])->A + Return values are always 1. A screen returns the command end. + + Yes/No popup + (Example) PopUpWin(10,"Message1"[,"Message1"])->A + Return value + Yes: 1 + No: 0 + + (Example) PopUpWin(0) + Push screen. + + (Example) PopUpWin(9) + Return screen. + +------------------------------------------------------------------------------- +FKeyMenu( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F4](FKeyMenu) +------------------------------------------------------------------------------- +Display the function menu to a current VRAM. +"string" performs auto centering. (Later Ver.0.45) + +(Format)FKeyMenu( n[~m], "string"/Icon # [,C/M/N/R/I/S/U/L [,FKey icon color [,Fkey back color]]]] ) + - 3rd or later arguments can be omitted. + - "," are required even if the argument is omitted. + - Default color of FKey icon is black and FKey back color is white. + + The order of the 3rd argument is arbitrary. +  C: clear icon. +  M: masked icon. +  N: normal white icon.(default) +  R: black icon with notch at the bottom right. +  I: black icon with no notch at the bottom right. +  S: black icon with no notch at the lower right indicating the selected. +  U: display 1 dot upper. +  L: expand the "string" display area by 2 dots left. + + (Example) FKeyMenu( 1,42) + Draw EDIT icon at [F1] position. + (Example) FKeyMenu (1,42,, Blue ) + Blue EDIT icon is drawn in the first function menu area. + (Example) FKeyMenu (1,42,, Red, Blue ) + Blue EDIT icon with red background is drawn in the first function menu area. + (Example) FKeyMenu (2, "ABCDE", RUL) + "ABCDE" is displayed in the black icon in the second function menu area. + (Example) FKeyMenu (3-4, "longtest", RGB(255,0,0)) + "longtest" is displayed red with the white icon in the third to fourth function menu areas. + (Example) FKeyMenu (4, "Mask", M) + The masked icon is displayed in the fourth function menu area. + (Example) FKeyMenu (2, "", C) + Clear the second function menu + (Example) FKeyMenu (1-6, "", C) + ClearD the first to sixth function menus. + +------------------------------------------------------------------------------- +Save [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F2](Save) +Load( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F3](Load) +------------------------------------------------------------------------------- +Read and write the data of the Mat array. + (Example) Save "TEST",Mat A + (Example) Load("TEST") -> Mat A + Save the content of the Mat array and read it. + When extension is left out, the file name becomes [.bin] to eight characters. + + (Example) Save "TEST",Mat A[5,1] + Save till the last from Mat A[5,1]. + (Example) Load("TEST",16) -> Mat A[10,1] + Read from data of the 16th byte of saved data in Mat A[10,1] + +------------------------------------------------------------------------------- +IsExist( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F1](IsExist) +------------------------------------------------------------------------------- +When the file does not exist, 0 becomes the return value. +When the file exists, file size becomes the return value. + (Example) IsExist("/ABC/TEST") + If "/ABC/TEST.g3m" not exists, it becomes 0. + When the extension is left out, the file name becomes [.bin] to eight characters. + +List of files +(Format) IsExist("*.extension") -> The number of the files +(Example) IsExist("*.bmp") ->N +$Mat Ans[3] +Display the 3rd file on the list. +N: The number of the files returns. + +------------------------------------------------------------------------------- +Delete [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F4](Delete) +------------------------------------------------------------------------------- +Delete the appointed file. + (Example) Delete "TEST.dat" + If "TEST.dat" exists, delete it. + (Example) Delete "TEST.dat",1 + Confirm it before deletion. If "TEST.dat" exists, I delete it. + When no extension is given, the file name becomes [.bin] to eight characters. + +------------------------------------------------------------------------------- +Alias [OPTN]-[F5](Extend)-[F1](Alias) +------------------------------------------------------------------------------- +Alias variables by adding AliasVar command. Any character can be used as alias of actual variable character. +As for 32 variables, Mat and label can use 16 aliase. + +(Example) Alias A=(alpha) + (alpha)+100->(alpha) + After setting the alias (alpha), (alpha) is available as variable insead of variable A. Real entity of (alpha) is A, so the above expression is identical with A+100->A + It is the same as A+100->A. + +(Example) Alias Mat A=(alpha) + Mat(alpha)[1]+100->Mat(alpha)[1] + After Alias command practice, I can use Mat variable A as (alpha). + Because substance of (alpha) is A + It is the same as Mat A[1]+100 ?? Mat A[1]. + +(Example) Alias Lbl A=(alpha) + Lbl (alpha) + Goto (alpha) + Gosub (alpha) + + +(Example) Alial a=_abc_de +(Example) Alial Mat a=_abcXY +(Example) _abc_de+1->_abc_de +(Example) Mat _abcXY[1,2]+1->Mat _abcXY[1,2] + You can use small letter variable a by _abc_de notation. + You can use small letter line a by _abcXY notation. + +(Example) Alias Lbl A=_Sub1 + Lbl _Sub1 + Goto _Sub1 + Gosub _Sub1 + +------------------------------------------------------------------------------- +Wait [VARS]-[F3](Extend)-[F2](Wait) +------------------------------------------------------------------------------- +Slow the overall execution speed. Set it by setup and [Wait] command. +When set it by setup, all the programs are affected. + (Example) Wait 100 + Even SH3 is SH4A, but becomes the speed drop of the same. + + Wait 10 is about 1/2 speed. + Wait 100 is about 1/10 speed. + + +------------------------------------------------------------------------------- +ListCmp( [OPTN]-[F1](LIST)-[F6]-[F6]-[F5](Cmp) +------------------------------------------------------------------------------- +Compare List to List or List to value. + (Example) ListCmp({1,2,3},{1,2,3}) + Return value 1 + (Example) ListCmp({1,2,3},{1,3}) + Return value 0 + (Example) ListCmp({1,2,3},{1,3,2}) + Return value 0 + (Example) ListCmp({1,2,3},2) + Return value 1 + (Example) ListCmp({1,2,3},3) + Return value 1 + (Example) ListCmp({1,2,3},4) + Return value 0 + + +=============================================================================== +String extended command +=============================================================================== +------------------------------------------------------------------------------- +StrLen(@ [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F2](Len) +------------------------------------------------------------------------------- +Added "@" option that return real byte count. +(Format) StrLen(@"ABCDE") +(Example) StrLen(@Str 1) + +------------------------------------------------------------------------------- +StrRepl( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F5](StrRepl) +------------------------------------------------------------------------------- + (Usage) StrRepl(String1,Find,ReplaceWith,StartAtCharPos) + (Example) StrRepl("Hello World","World","Earth") -> "Hello Earth" + (Example) StrRepl("abcabc","ab","ff",3) = "abcffc" + (Example) StrRepl("abcabc","ab","ff") = "ffcffc" + +------------------------------------------------------------------------------- +StrChar( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](Char) +------------------------------------------------------------------------------- +(Example) StrChar("ABC",5) + Results in "ABCABCABCABCABC" + +(Example) StrChar(0x41,5) + Results in "AAAAA" + +------------------------------------------------------------------------------- +StrCenter( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F2](Center) +------------------------------------------------------------------------------- +(Usage) StrCenter("Strings",length[,"SpacingStrings"]) +(Example) StrCenter("Test",8) + Results in " Test ") +(Example) StrCenter("Test",8,"*") + Results in "**Test**" + +------------------------------------------------------------------------------- +Hex( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F4](Hex) +------------------------------------------------------------------------------- +(Example) Hex(12345)->Str 1 + Result in "3039" +(Example) Exp("0X"+Str 1)->A + Result in 12345 + +------------------------------------------------------------------------------- +Bin( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F5](Bin) +------------------------------------------------------------------------------- +(Example) Bin(12345)->Str 1 + Result in "11000000111001" +(Example) Exp("0B"+Str 1)->A + Result in 12345 + +------------------------------------------------------------------------------- +StrBase( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F3](Base) +----------------------------------------------------------------------- +(Usage) StrBase(Number string, Current base, Expected base) + Current base, Expected base: 2~64 + Use character { 0-9 A-Z a-z } +(Example) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + +------------------------------------------------------------------------------- +StrSplit( [SHIFT]+[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6]F6]-[F1](StrSplit) +------------------------------------------------------------------------------- +Divide character string by a designated letter and put it return to MatAns. +(Format) StrSplit("string","delimiter"[,start position]) + The Result returns to MatAns as character string. +(Example) StrSplit("123,4567,89",",") + The Result of MatAns becomes ["123","4567","89"] and can access it as follows if it retrieves individual factors. + $Mat Ans[1]="123" + $Mat Ans[2]="4567" + $Mat Ans[3]="89" + +------------------------------------------------------------------------------- +StrAsc( [Shift]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](StrAsc) +------------------------------------------------------------------------------- +Converts a character (in a string) into the corresponding ASCII code number. +(Example) StrAsc("Ascii") +Return value is 65(0x41). + + +------------------------------------------------------------------------------- +StoCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F1] (Store) (Does not work in G3M mode) +RclCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F2] (Recall) +------------------------------------------------------------------------------- +Read/write the Capt file on the storage memory. Up to 99 files can be used. +(Example) StoCapt 20 +(Example) RclCapt 20 + +In relation to this, the file size of Pict file has been reduced by 1KB from 2KB. + + +=============================================================================== +Other Extended Command Reference +=============================================================================== +Carry it out as the command not comment after "'/". +Can describe the command to execute only C.Basic running. + +(Example) '/Ticks->S +(Example) '/Ticks-S->T + Measure time. +------------------------------------------------------------------------------- +'# Command +------------------------------------------------------------------------------- +The setting for C.Basic in comment code. + +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +'#CBINT +'#CBint +'#G1M +'#g1m +'#G3M +'#g3m +to change running mode. This is all alphabet character. + +'#Break0 //disable [AC] +'#Break1 //enable [AC] (default) + +'#Mat 0 //start of Mat index is 0. +'#Mat 1 //start of Mat index is 1. (default) + +'#GetkeyC //after Getkey1/2, stop of the timer and restart. (Default) +'#GetkeyR //after Getkey1/2, reset of the timer and restart. + +'#exp 0 //previous exponent display. +'#exp 1 //OS3.00 exponent display by only standard font. +'#exp 2 //OS3.00 exponent display by all font size. (Default) + +'#GB0 //not use GB code. (Default) +'#GB1 //use GB code except F7xx,F9xx,E5xx,E6xx,E7xx overlapping with command / special character. +'#GB2 //use all GB code. + +'#58 //fx-5800P compatible output. +'#98 //fx-9860G/CG series compatible output. (Default) + +=============================================================================== +Hardware Extended Commands +=============================================================================== +C.Basic can execute a machine language program of SH3/SH4A on the memory. +It can access freely become only the Mat array. +The top address of the Mat array is found in VarPtr() or address operator &. +Indirect operator * are usable like C language, too. + +------------------------------------------------------------------------------- +SysCall( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F1](SysCall) +------------------------------------------------------------------------------- +Call a syscall prepared for by the OS. 12 arguments can be given, but also can be left out if not needed. +(Format) SysCall( syscall number [,arg1][,arg2][,arg3][,arg4][,arg5][,arg6][,arg7][,arg8][,arg9][,arg10][,arg11][,arg12] ) + +(Example) Screen.G + SysCall( 0x1D0,1,8,127,63) -> R + + System call 0x1D0 is a system routine to draw a 3xline to a screen. + I call 1 -> R4 register, 8 -> R5 registers, 127 -> R6 registers, 63 -> R7 registers, system call 0x1D0, and R contains a return value. + +------------------------------------------------------------------------------- +Call( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F2](Call) +------------------------------------------------------------------------------- +Execute the machine language program of any address. Four arguments can be given, but also can be left out if not needed. + (Format) Call( machine language address [argument 1] [argument 2] [argument 3] [argument 4] ) + (Example) Call( 0x8802F000,A,B,C,D) -> R + I call A -> R4 register, A -> R5 register, A -> R6 register, A -> R7 register, a machine language program at the 0x8802F000 address, and R contains a return value. + +------------------------------------------------------------------------------- +Peek( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F4](Peek) +------------------------------------------------------------------------------- +Read data from the memory. When there is not type definition [.B][.W][.L][.F], it is byte reading. +Can rearrange it in indirect operator *. + (Format) Peek(address)[.B][.W][.L][.F] + (Format) *(address)[.B][.W][.L][.F]) + + (Example) Peek(0x8802E000).B -> A% + (Example) *(0x8802E000).B -> A% + Read data of the 0x8802E000 address at A byte (1 byte) and substitute it for integer variable A%. + + (Example) Peek(0x8802E000).W -> A% + (Example) *(0x8802E000).W -> A% + Read data of the 0x8802E000 address in a word (2 bytes) and substitute it for integer variable A%. + + (Example) Peek(0x8802E000).L -> A% + (Example) *(0x8802E000).L -> A% + Read data of the 0x8802E000 address in A long word (4 bytes) and substitute it for integer variable A%. + + (Example) Peek(0x8802E000).F -> A + (Example) *(0x8802E000).F -> A + Read data of the 0x8802E000 address in A double precision real number (8 bytes) and substitute it for integer variable A. + +------------------------------------------------------------------------------- +Poke( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F3](Poke) +------------------------------------------------------------------------------- +Write in data at memory. When there is not type definition [.B][.W][.L][.F], it is a byte. +Can rearrange it in indirect operator *. + (Format 1) Poke( address )[.B][.W][.L][.F], data + (Format 1) *(address )[.B][.W][.L][.F], data) + (Format 2) Data->Poke( address )[.B][.W][.L][.F] + (Format 2) Data->*( address )[.B][.W][.L][.F]) + + (Example) Poke(0x8802E000).B,A% + (Example) A%->Poke(0x8802E000).B + (Example) A%->*(0x8802E000).B + + (Example) Poke(0x8802E000).W,A% + (Example) A%->Poke(0x8802E000).W + (Example) A%->*(0x8802E000).W + + (Example) Poke(0x8802E000).L,A% + (Example) A%->Poke(0x8802E000).L + (Example) A%->*(0x8802E000).L + + (Example) Poke(0x8802E000).F,A + (Example) A->Poke(0x8802E000).F + (Example) A->*(0x8802E000).F + +------------------------------------------------------------------------------- +VarPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F1](VarPtr) +------------------------------------------------------------------------------- +Read form the address of the variable. +Can rearrange it in address operator &. + (Format 1) VarPtr( variable) + (Format 2) &( variable) + + (Example) VarPtr(A%) + (Example) &A% + The address of the variable of integer variable A% returns. + + (Example) VarPtr(Mat A) + (Example) &Mat A + Top address of Mat A returns. + + (Example) VarPtr(Mat A[20,10]) + (Example) &Mat A[20,10] + The address that a value of Mat A[20,10] returns. + +------------------------------------------------------------------------------- +ProgPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F2](ProgPtr) +------------------------------------------------------------------------------- +Read form the top of address of the source program area. + (Example) ProgPtr() + +=============================================================================== +Extended Graphics Commands +=============================================================================== +It is a command based MonochromeLib (by PierrotLL). +These commands act on current VRAM and do not do the processing except it at all. +The coordinate system is (0,0) -(127,63) is fixed. +It is necessary to transfer LCD using PutDispDD and _DispVRAM to display it. + +------------------------------------------------------------------------------- +MonochromeLib by PierrotLL +https://wiki.planet-casio.com/fr/MonochromeLib +All features Implemented in C.Basic +Refer to MonochromeLib manual. +------------------------------------------------------------------------------- +Color: -1 transparent +Color: 0 white +Color: 1 black +Color: 2 xor +Color: 3 check color +Color: 4 random color +Color: 5 blends between Drawing color and screen color. (See below) + +Added new color (2x2 dot matrix) in MonochromeLib command. +Color value: 10 11 12 13 14 (2x2 dot matrix by 1dot width) +Color value: 20 21 22 23 24 (2x2 dot matrix) + oo *o *o ** ** + oo oo o* *o ** +(Example) _FillCircle 64,32,30,21 + +-Added random color in MonochromeLib command. + (Usage) x,y,,,color,chance +(Example) _Rectangle 0,0,127,63,0,0,4,0.5 +(Example) _Rectangle 0,0,127,63,0,0,4,%50 + Fills the whole screen with random pixels, pixels have a 50% chance of being on (0.5) or %50 +(Example) _FillCircle #0,0,3,4,0.5 + Makes a circle with the radius 3, the circle is filled with random pixels (on/off) pixels have a 50% chance of being on (0.5) + If the color is 4, you can set the chance +(Example) _Rectangle 0,0,127,63,0,0,4,%10 + Fills the screen with pixels, the pixels have a 10% chance of being on + +(* Color: 5 blends) +Transparency was added in color specification of parameters of ML command. (0.32-) +It composites and displays the Drawing color of the command and the screen. +(Format) _Pixel x, y, rate (rate 0.0 to 1.0) +(Format) _Pixel x, y, %rate (%rate 0 to 100) +(Example) Red _Pixel x, y, 5, %50 +(Example) Red _Pixel x, y, 5, 0.5 +Draw by combining the color of the screen and 50% red. + +------------------------------------------------------------------------------- +Drawing objects in Graph Coordinates instead of Screen Coordinates. + Add '#' character option to ViewWindow Coordinates. + Support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct +(Example) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2,1 + +------------------------------------------------------------------------------- +_ClrVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F1](_ClrVram) +------------------------------------------------------------------------------- + Clears the VRAM. + +------------------------------------------------------------------------------- +_ClrScreen [SHIFT]-[F4](SKTCH)-[F3](ML)-[F2](_ClrScreen) +------------------------------------------------------------------------------- + Clears the screen. + +------------------------------------------------------------------------------- +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- + Copies VRAM content to screen. + +------------------------------------------------------------------------------- +_Pixel [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F1](_Pixel) +------------------------------------------------------------------------------- +_Pixel x,y,color[,chance/brend%] + Set the color of a dot in VRAM. + Color:-1 transparent + Color: 0 White + Color: 1 Black + Color: 2 Xor + Color: 3 Checker + +------------------------------------------------------------------------------- +_Point [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F2](_Point) +------------------------------------------------------------------------------- +_Point x,y,width,color[,chance/brend%] +Draws a point (square) in VRAM, centered at (x, y), with sides length (in pixel) are defined by parameter width. +(Example) _Point 10, 10, 3, 1 + Draw a black rectangle from (9, 9) to (11, 11) + +------------------------------------------------------------------------------- +_PixelTest( [SHIFT]-[F4](SKTCH)-[F3](ML)-[F4](_PixelTest) +------------------------------------------------------------------------------- +_PixelTest( + Returns the color of the pixel in coordinates (x, y) + -1: out of screen + 0: White + 1: black + +------------------------------------------------------------------------------- +_Line [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F3](_Line) +------------------------------------------------------------------------------- +_Line X1,Y1,X2,Y2,color[,chance/brend%][,Width] + Draws a line between points in coordinates (x1, y1) and (x2, y2) using Bresenham algorithm. +(Example) _Line 0,0,127,63,1,,10 + +------------------------------------------------------------------------------- +_Horizontal [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F4](_Horizontal) +------------------------------------------------------------------------------- +_Horizontal y,x1,x2,color[,chance/brend%] + Draws a horizontal line. + This function is faster than _line with y1=y2. + +------------------------------------------------------------------------------- +_Vertical [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F5](_Vertical) +------------------------------------------------------------------------------- +_Vertical x,y1,y2,color[,chance/brend%] + Draws a vertical line. + This function is faster than a call to _line with x1==x2. + +------------------------------------------------------------------------------- +_Rectangle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F1](_Rectangle) +------------------------------------------------------------------------------- +_Rectangle x1,y1,x2,y2, border_width, border_color, fill_color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + Draws a rectangle with or without border. + You can define the border color, and the fill color. + If you want no border, set border_width to 0. + If [center_X][center_Y] are omitted, The center of the drawn image is specified. + +------------------------------------------------------------------------------- +_Polygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F2](_Polygon) +------------------------------------------------------------------------------- +_Polygon *ary_x, *ary_y, vertices, color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + Draws a polygon. + This function needs as parameters 2 arrays, containing abscissa and ordinates of the polygon vertices. + Parameter nb_vertices should be the number of data to read in arrays. + This function draws a line between each vertices of the polygon. +(Example) + [[60, 75, 70, 50, 45]]->Mat X.L // require int + [[20, 30, 45, 45, 30]]->Mat Y.L // require int + Screen.G + _ClrVRAM + _Polygon VarPtr(Mat X), VarPtr(Mat Y), 5, 1); (or _Polygon &Mat X, &Mat Y, 5, 1); + _DispVRAM (or PutDispDD) + +------------------------------------------------------------------------------- +_FillPolygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F3](_FillPolygon) +------------------------------------------------------------------------------- +_FillPolygon *ary_x, *ary_y, vertices, color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + Similar to _Polygon, but draws filled polygon. + +------------------------------------------------------------------------------- +_Circle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F4](_Circle) +------------------------------------------------------------------------------- +_Circle x, y, radius, color[,chance/brend%] + Draws a circle centered on (x, y) using Bresenham algorithm. + +(Usage) _Circle +x,y,radius,color[,chance/brend%][,width][,start_angle][,end_angle][,vertex] + (Example) _Circle 64,32,20,4,0.5,3 + 3x3dot 50% circle + (Example) _Circle 64,32,20,1,,3,0,90 + To draw 3x3dot 1/4 circle + (Example) _Circle 64,32,20,1,,,0,360,5 + To draw pentagon ( to have an effect on setting of Draw Type ) + (Example) _Circle 64,32,20,1,,,20,380,5 + To draw shifted pentagon + +------------------------------------------------------------------------------- +_FillCircle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F5](_FillCircle) +------------------------------------------------------------------------------- +_FillCircle x, y, radius, color[,chance/brend%] + Similar to _Circle, but draws filled circle. + +------------------------------------------------------------------------------- +_Elips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F1](_Elips) +------------------------------------------------------------------------------- +_Elips x, y, radius1, radius2, color[,chance/brend%][,angle] + Draws an ellipse centered on (x, y) with radiuses radius1 at radius2. + Radius1 is distance between center and leftmost point of ellipse, + Radius2 is distance between center and upper point of ellipse. Use the Bresenham’s algorithm. + +------------------------------------------------------------------------------- +_FillElips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F2](_FillElips) +------------------------------------------------------------------------------- +_FillElips x, y, radius1, radius2, color[,chance/brend%][,angle] + Similar to _Elips, but draws a filled ellipse. + +------------------------------------------------------------------------------- +_ElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F3](_ElipsInRct) +------------------------------------------------------------------------------- +_ElipsInRct x1, y1, x2, y2, color[,chance/brend%][,angle] + This function calls _Elips. It expect rectangle coordinates, and draw an ellipse in this rectangle. + +------------------------------------------------------------------------------- +_FElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F4](_FElipsInRct) +------------------------------------------------------------------------------- +_FElipsInRct x1, y1, x2, y2, color[,chance/brend%][,angle] + Similar to _ElipsInRct, but draws a filled ellipse. + +------------------------------------------------------------------------------- +_Hscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F1](_Hscroll) +------------------------------------------------------------------------------- +_Hscroll n[,x1,y1,x2,y2] + Shifts all pixels in VRAM to left or right. For Example, if scroll=5, then a pixel on (2,3) will be moved on (7,3). + If scroll is a negative value, pixels will be shift to left. When pixels reach screen boundaries, they reappear on the other side. + You can specify the scroll area. + (Example) _Hscroll 1,32,16,47,95 + Left scroll only (32,16)-(47,95). + +------------------------------------------------------------------------------- +_Vscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F2](_Vscroll) +------------------------------------------------------------------------------- +_Vscroll n[,x1,y1,x2,y2] + Similar to _Horizontal_scroll, but scroll vertically. + +------------------------------------------------------------------------------- +_Bmp [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F1](_Bmp) +------------------------------------------------------------------------------- +_Bmp *bmp, x, y, width, height [,N/O/A/X] [,C] + These functions are made to draw images in monochrome bitmap Format. They are very useful to draw tiles and sprites in games. + [,N] Over (g3m mode default) + [.O] Or (g1m mode default) + [.A] And + [,X] Xor + [,C] with clipping(g1m) with clear(g3m) +(Example) +[[0,0,1,1,1,1,0,0] + [0,1,1,1,1,1,1,0] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,0,1,1,1,1,0] + [0,1,1,0,0,1,1,0] + [0,0,1,1,1,1,0,0]]->MatB.P //1?r?b?g?s?・ +_Bmp VarPtr(Mat B), 8, 16, 8, 8, O + +*Only in the case of a 1 bit Mat/List, it becomes the monochromatic Drawing. + It becomes the 16 bits color drawing other than it. + +------------------------------------------------------------------------------- +_Bmp8 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F2](_Bmp8) +------------------------------------------------------------------------------- +_Bmp8 *bmp, x, y [,N/O/A/X] [,C] + Draw 8*8 sized bitmap. +(Example) + [[60, 126, 251, 253, 253, 255, 126, 60]]->Mat B.B //byte Matrix + _Bmp &Mat B, 8, 16, A + +------------------------------------------------------------------------------- +_Bmp16 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F3](_Bmp16) +------------------------------------------------------------------------------- +_Bmp16 *bmp, x, y [,N/O/A/X] [,C] + Draw 16*16 sized bitmap. + + +------------------------------------------------------------------------------- +Additional option for MonochromeLib command. +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +BmpLoad( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F1](BmpLoad) +BmpSave [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F2](BmpSave) +------------------------------------------------------------------------------- +Bmp file load/save support.(only 1 bit mono type) +(Example) BmpLoad("TEST"),20,10 + Load TEST.bmp at coordinate (20,10). + +(Example) BmpSave "TEST",10,20,100,50 + Save TEST.bmp at coordinate (10,20)-(100,50) + + (Example) BmpSave "TEST",Mat A + Save "TEST.bmp" at current folder. + (Example) Bombload("TEST")->Mat A + Load bmp data to Mat A + +------------------------------------------------------------------------------- +DrawMat [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F3](DrawMat) +------------------------------------------------------------------------------- +Drawing Mat data. + (Usage) DrawMat Mat A[m,n], x, y, width, height [,zoomwidth][,zoomheight][,color][,chance/brend%] + (Example) DrawMat Mat A, 0, 0, 128, 64 + (Example) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + The matrix read by BmpLoad can be used. + +------------------------------------------------------------------------------- +_BmpZoom [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F4](_BmpZoom) +_BmpRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F5](_BmpRotate) +_BmpZmRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F4](_BmpZmRotate) +------------------------------------------------------------------------------- +Zoom & Rotate & ZoomRotate in ML command. (based on Planet-Casio Nine stars expansion) + (Usage) _BmpZoom &Mat , x, y, width, height [,zoomwidth][,zoomheight][,color][,chance/brend%] + (Usage) _BmpRotate &Mat , x, y, width, height [,angle(degree)][,color][,chance/brend%] + (Example) _BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 + (Example) _BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 + (Example) _BmpRotate &Mat A, 0, 0, 20, 10, 45 + + (Usage) _BmpZoomRotate &Mat , x, y, width, height [,zoomwidth][,zoomheight][,angle(degree)][,color][,chance/brend%] + (Example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 + (Example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + +------------------------------------------------------------------------------- +_Test [SHIFT]-[F4](SKTCH)-[F3](ML)-[F5](_Test) +------------------------------------------------------------------------------- + (Support command) _Point _Line _Rectangle _Circle _Polygon + To use function to put "_Test" before support command. + (Example) _Test_Rectangle 0,0,127,63 + To return the amount of pixels that are on in that area (0,0)-(127,63) + (Example) _Test_Circle 62,32,20 + (Example) _Test_Point 10,10,5 + (Example) _Test_Line 10,10,100,30 + + + +=============================================================================== +About external font (0.44-) +=============================================================================== +An external font is usable by ASCII character(0x20~0x7E) and gaiji/kana character(0xFF80~0xFFDF). + +When font files exist in current folder or @Font folder, it will automatically read the following font files at the time of file list update, and a font is replaced. +If there are not these files, it becomes the built-in font of the default. + @LFONTA.bmp (external ASCII standard font) + @MFONTA.bmp (external ASCII mini-font) + @LFONTG.bmp (external gaiji character standard font) + @MFONTG.bmp (external gaiji character mini-font) + @LFONTK.bmp (external kana standard font) + @MFONTK.bmp (external kana mini-font) + +The bundled default external fonts are as follows. + @LFONTK0.bmp external katakana font (standard)+ + @MFONTK0.bmp external katakana font (mini) + @LFONTK1.bmp external hiragana font (standard) + @MFONTK1.bmp external hiragana font (mini) + @LFONTG0.bmp external gaiji character sample font (standard) + @MFONTG0.bmp external gaiji character sample font (mini) + +Put these fonts in the current folder, +BmpLoad(@K1) +To replace with hiragana letters. +BmpLoad(@K0) +It becomes the kana font. + +------------------------------------------------------------------------------- +GetFont( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F1](GetFont) +GetFontMini( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F3](GetFontMini) +------------------------------------------------------------------------------- +To read font data. +(Format 1) GetFont( font code) ->Mat A +(Format 1) GetFontMini( font code) ->Mat A +(Example) GetFont(0x41) ->Mat A + Bitmap data (18x24) of font "A" is input into 1 bit Mat A[18,24] +(Example) GetFontMini(0xFF80) ->Mat A + The first bitmap data (13x18) of the external (0xFF80) mini-font is input into 1 bit Mat A[13,18]. + +(Format 2) GetFont( "font character") ->Mat A +(Format 2) GetFontMini( "font character") ->Mat A +(Example) GetFont("A") ->Mat A + Bitmap data (18x24) of font "A" is input into 1 bit Mat A[18,24]. +(Example) GetFontMini("A") ->Mat B + Bitmap data (13x18) of mini font "A" is input into 1 bit Mat B[13,18]. + +(Format 3) GetFont(@ font code) ->Mat A +(Format 3) GetFontMini(@ font code) ->Mat A +(Format 4) GetFont(@ "font character") ->Mat A +(Format 4) GetFontMini(@ "font character") ->Mat A +(Example) GetFont(@0x41) ->Mat A +(Example) GetFont(@"A") ->Mat A + bitmap data (18x24) of built-in font "A" is input into 1 bit line Mat A[18,24]. + +To read external font status. +(Format 5) GetFont() +(Format 5) GetMiniFont() + Return value is (bit0:Ascii) (bit1:Gaiji) (bit2:Kana) +(Example) When only the external kana font of the standard size is introduced, + GetFont() return to 4 + GetMiniFont() return to 0 +(Example) When the external ascii mini font and gaiji mini font are introduced, + GetFont() return to 0 + GetMiniFont() return to 3 + +------------------------------------------------------------------------------- +SetFont [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F2](SetFont) +SetFontMini [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F4](SetFontMini) +------------------------------------------------------------------------------- +To set font data. +(Format 1) SetFont font code,Mat A +(Format 1) SetFontMini font code,Mat A +(Example) SetFont 0xFF80,Mat A + Font data of Mat A are set as data of the first one of the external font. +(Example) SetFontMini 0xFF80,Mat A + Font data of Mat A are set as the first data of the external mini-font. + +(Format 2) SetFont "font character",Mat A +(Format 2) SetFontMini "font character",Mat A +(Example) SetFont "@",Mat A + Font data of Mat A are set as data of font "@". +(Example) SetFontMini "@",Mat B + Font data of Mat B are set as data of mini-font "@". + +------------------------------------------------------------------------------- +BmpLoad(@A +BmpLoad(@AL +BmpLoad(@AM +BmpLoad(@G +BmpLoad(@GL +BmpLoad(@GM +BmpLoad(@K +BmpLoad(@KL +BmpLoad(@KM +------------------------------------------------------------------------------- +Read font data from bitmap file. +(Format) BmpLoad(@G[ font file number]) +(Format) BmpLoad(@K[ font file number]) +(Format) BmpLoad(@A[ font file number]) + The font file number can 0-9. +(Example) BmpLoad(@A1) + A font file of @LFONTA1.bmp (ASCII standard font) @MFONTA1.bmp (ASCII mini-font) is read as external ASCII font. + +(Format) BmpLoad(@GM[ font file number]) +(Format) BmpLoad(@GL[ font file number]) +(Format) BmpLoad(@KL[ font file number]) +(Format) BmpLoad(@KM[ font file number]) +(Format) BmpLoad(@AL[ font file number]) +(Format) BmpLoad(@AM[ font file number]) +(Example) BmpLoad(@AL1) + A font file of @LFONTA1.bmp (ASCII standard font) is read as external ASCII standard font. +(Example) BmpLoad(@AM1) + A font file of @MFONTA1.bmp (ASCII mini-font) is read as external ASCII mini-font. + +(Format) BmpLoad(@GL" file name ") +(Format) BmpLoad(@GM" file name ") +(Format) BmpLoad(@KL" file name ") +(Format) BmpLoad(@KM" file name ") +(Format) BmpLoad(@AL" file name ") +(Format) BmpLoad(@AM" file name ") +(Example) BmpLoad(@GL"MYFONTL") + MYFONTL.bmp is read as an external gaiji standard font. +(Example) BmpLoad(@GM"MYFONTM") + MYFONTM.bmp is read as an external gaiji mini-font. + +------------------------------------------------------------------------------- +BmpSave @A +BmpSave @AL +BmpSave @AM +BmpSave @G +BmpSave @GL +BmpSave @GM +BmpSave @K +BmpSave @KL +BmpSave @KM +------------------------------------------------------------------------------- +Output font data to bitmap file. +(Format) BmpSave @G[ font file number] + Save an external character font (standard&mini) in a current folder. + The file name @LFONTG.bmp (standard) + The file name @MFONTG.bmp (mini) +(Format) BmpSave @K[ font file number] + Save a kana font (standard&mini) in a current folder. + The file name the @LFONTK.bmp (standard) file name @MFONTK.bmp (mini) +(Format) BmpSave @A[ font file number] + Save ASCII font (standard&mini) in a current folder. + The file name the @LFONTA.bmp (standard) file name @MFONTA.bmp (mini) +(Format) BmpSave @@G +(Format) BmpSave @@K +(Format) BmpSave @@A + Save in "/@Font" folder. + +(Format) BmpSave @GL[font file number] +(Format) BmpSave @GM[font file number] +(Format) BmpSave @KL[font file number] +(Format) BmpSave @KM[font file number] +(Format) BmpSave @AL[font file number] +(Format) BmpSave @AM[font file number] +(Example) BmpSave @GL2 + Save an external character standard font file as of @LFONTG2.bmp (external gaiji standard font) for external font file 2. +(Example) BmpSave @GM3 + Save an external character mini-font file as of @MFONTG3.bmp (external gaiji mini-font) for external font file 3. + +(Format) BmpSave @GL"" +(Format) BmpSave @GM"" +(Format) BmpSave @KL"" +(Format) BmpSave @KM"" +(Format) BmpSave @AL"" +(Format) BmpSave @AM"" +(Example) BmpSave @GL"MYFONTL" + Save a current external gaiji standard font as "MYFONTL.bmp". +(Example) BmpSave @GM"MYFONTM" + Save a current external gaiji mini-font as "MYFONTM.bmp". + +=============================================================================== +Serial communication commands (not compatible with genuine Casio Basic) +=============================================================================== + (Format) Send( data [,baud rate][,enable_exit]) + (Format) Recv( data [,baudrate][,enable_exit]) + (Format) Send38K data [,bytecount] + (Format) Receive38k data [,bytecount] + (Format) OpenComport38K[,baudrate][,transfermode][,enable_exit] + (Format) CloseComport38K + [Data]: Variable,Matrices,List + Data is necessary to match data type of a transfer source to a transfer destination. + [baud rate]: 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=115200 baud + Default baud rate is 38400 + [transfermode]: 0:binary data transfer mode 1:necessary to match data type (default) + When OpenComport38K with [transfermode:0]option, Send38K/Receive38k is binary data transfer. + [enable_exit]: 0: not interrupt, 1: interrupt + + Send(/Recv( use alone. + Send38K/Receive38k is necessary for OpenComport38K/CloseComport38K. + + (Example) Send(A) + (Example) Recv(A) + (Example) Send(Mat A) + (Example) Recv(Mat A) + + (Example) OpenComport38K,9,0 + Send38K List 1 + CloseComport38K + (Example) OpenComport38K,9,0 + Receive38k List 1 + CloseComport38K + +------------------------------------------------------------------------------- +Beep (only SH4A) [SHIFT]+[VARS](PRGN) -[F6] -[F4](I/O) -[F6] -[F5](Beep) +------------------------------------------------------------------------------- +(Format) Beep [frequency][,duration (ms)] +Output square wave of the frequency designated than the 3Pin output. +(Example) Beep +Output square wave of 1KHz from 3Pin for 0.5 seconds. +(Example) Beep 440,1000 +Output square wave of 440Hz from 3Pin for one second. + +=============================================================================== +Setup extended by C.Basic +=============================================================================== +Angle: Deg/Rad/Gra +Complex Mode: Real/a+bi/r∠θ +Draw Type: Connect/Plot +Coord: on/off +Grid: on/off/Line +Axes: on/off/Scale +Label: on/off +Derivative: on/off +Background: None / Pict1-20 +Plot/LineCol: Black etc. +Sketch Line: Normal/Thick/Broken/Dot/Thin + +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + Max number of digit after decimal point can be 15. Setting 0 (zero) max digit is 16. + Nrm1 or Nrm2 is fully compatible with genuine Casio Basic and max digit is 10. + Nrm1: -0.015800/>9800 + Select Standard(fx-CG) method or C.Basic(fx-5800P) method. + You can change the mode of "" output specifications compatible with fx-5800P and FX/CG. + - Related command: '#58 + '#98 +------------------------------------------------------------------------------- + [X]character: [0x90]/[X] + To select character of [X/Theta/T]key. +------------------------------------------------------------------------------- +EnableExFont: on/off + Set to use external font. +------------------------------------------------------------------------------- +Edit ExtFont: On/Off + Enable external font in editor. +------------------------------------------------------------------------------- +Edit GB Font: On/Off/Full + To select GB font display on editor. + Off: normal. Not display GB font. + On: display GB font without F7xx,F9xx,E5xx,E6xx,E7xx + Full: display all GB font. +------------------------------------------------------------------------------- +EditFontSize: Standard/Mini/MiniMini/MiniMiniFX /+Fixed pitch/+Gap + Set to Editor Font size. +------------------------------------------------------------------------------- +Edit Indent+: Off/1/2/4 Save- + Enable auto indent in editor. + Off: Disable auto indent. + 1: Set indent width to 1. + 2: Set indent width to 2. + 4: Set indent width to 4. + Save-: delete blank spaces including indents when saving program. (=to compatible with Casio Basic) +------------------------------------------------------------------------------- +Edit LineNum: on/off + Set to line number display. +------------------------------------------------------------------------------- +EditListChar: List / reverseL / Thick L + Select List display character. +------------------------------------------------------------------------------- +Edit-backCol: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select back color of editor. +------------------------------------------------------------------------------- +Edit-baseCol: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select base color of editor. +------------------------------------------------------------------------------- +E-NumericCol: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select numeric color of editor. +------------------------------------------------------------------------------- +E-Commando: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select command color of editor. +------------------------------------------------------------------------------- +Ed-QuotColor: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select strings color of editor. +------------------------------------------------------------------------------- +E-CommentCol: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select comment color of editor. +------------------------------------------------------------------------------- +E-LineNumCol: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Select line number color of editor. +------------------------------------------------------------------------------- +Auto OverClk: on/off + Set auto overclock for CG10/20 +------------------------------------------------------------------------------- +Heap RAM Size: 96KB/117KB/127KB/SIZE + Set maximum heap size of C.Basic use. + (* You cannot change it at the time of the program editing.) +------------------------------------------------------------------------------- +Use Hidden RAM: on / off + Set if C.Basic uses hidden RAM or not. +------------------------------------------------------------------------------- +HiddenRAM Init: on / off + When use the hidden RAM, Mat&List at the time of C.Basic start, to initialize or not. +------------------------------------------------------------------------------- +Max Pict No: 20~99 + When use the hidden RAM, you can use more pict file. + (*)When you change a value, Pict&Mat&List is reset. + (*) This setting is invalid. +------------------------------------------------------------------------------- +Max List No: 52~1040 + When use the hidden RAM, you can use more List. + (*)When you change a value, Pict&Mat&List is reset. +------------------------------------------------------------------------------- +AT DebugMode: on / off + When [AC] break, debug mode on/off. +------------------------------------------------------------------------------- +ExitDM Popup: on / off + Set to popup of exit Debug Mode. +------------------------------------------------------------------------------- +Break Stop: on / off + Set if [AC] key break is accepted or not. + When it's off, you cannot break program by [AC] key. +- Related command: '#Break0 '#Break1 +------------------------------------------------------------------------------- +Exec TimeDsp: on / off / reset /%HR + Set if program running time is displayed or not after the program quits. + Timer starts at first line of program. ? or Disps command reset the timer. + In the case of Getkey1/2, the timer is suspended and starts after command again. + On reset: The timer is reset and starts again after Getkey1/2. + %HR: use 1/32768s timer + - Related command: '#GetkeyC '#GetkeyR +------------------------------------------------------------------------------- +IfEnd Check: on / off + Set if one-to-one correspondence of "If" and "IfEnd" statement is chacked or not. +------------------------------------------------------------------------------- +ACBreak: on / off + Set ACBreak command to be enable or disable. + - Related command: ACBreak +------------------------------------------------------------------------------- +Force Return:None/ F1/ EXE/ F1&EXE + Force return to file mode at [AC]break. + (Example) Force Return set to [F1]key + -File list→[F1](EXE)→[AC]→[EXIT]… Returns to the file list. + -File list→[EXE]→[AC]→[EXIT] …… Returns to the editor. + -File list→[F1](EXE]→[AC]→[EXE](restart)→[AC]→[EXIT] …… Returns to the file list. + (The operation depends on which key is pressed first.) +------------------------------------------------------------------------------- +Key 1st time: 25 ms - 1000 ms (default value is 500 ms) + Set time before key repeat starts (in 25 ms interval) +------------------------------------------------------------------------------- +Key Rep time: 25 ms - 500 ms (default value is 125 ms) + Set key repeat duration time (in 25 ms interval) +------------------------------------------------------------------------------- +SkipUp/Down: 1 - 9999 + Set number of skipping page for SkipUp ([SHIFT][Up]) or SkipDown ([SHIFT][Down]). +------------------------------------------------------------------------------- +Mat Dsp mode: [m,n] / [X,Y] + Set matrix display Format in Matrix Editor page. + Format [m,n] and [X,Y] are in transposed matrix each other, but just only the apperance on screen is different. The internal matrix data is still same, won't be changed. +------------------------------------------------------------------------------- +Matrix base: 0 / 1 + Set index of matrix starts with 0 or 1. + When the start index is set to 0, lfet-top pixel comes to be available to use and left-yop coordinate of device coordinates can be (0, 0). + - Related command: '#Mat 0, '#Mat 1 +------------------------------------------------------------------------------- +DATE: 2017/01/17 TUE + Set date of internal RTC. A day of the week is autmatically set. +------------------------------------------------------------------------------- +TIME: 23:59:59 + Set time of internal RTC + - Related command: DATE, TIME +------------------------------------------------------------------------------- +Root Folder: + [F1]: to set the root folder. + [F2]: to set the current folder. + - Related command: + '#R/ // to set the root folder. + '#R. // to set the current folder. +------------------------------------------------------------------------------- +Favorite Col: Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16bit Color + Select favorite file color of editor. +------------------------------------------------------------------------------- +Auto file Save: on/off + Set to auto Save without a popup. +------------------------------------------------------------------------------- +Force g1m Save: on / off + Set "Save automatically" or "not Save" g1m file, after run or edit of text file. +------------------------------------------------------------------------------- +Direct GB cnvt: on/off + Set GB code without text conversion. + (*conversion support The GB mode of the editor.) +------------------------------------------------------------------------------- +Pict mode: S.Mem / Heap / Both + - S.Mem: Pict file is created in storage memory/SD and it takes a bit longer. + - Heap: Pict file is not actually created, but compatible file is allocaed in main memory. (Recommended) + - Both: Stored always in storage memory/SD. + - Clear:Deletes the Pict compatible file created in main memory at program start every time. +------------------------------------------------------------------------------- +Storage mode: S.Mem / MainMem + S.Mem: Files in storage memory is used for run and edit. + Main mem: Files in Main Memory is used for run and edit. +------------------------------------------------------------------------------- +RefrshCtl DD: off / Grp / All + Set how to refresh screen at running of display and draw command. + Off: No extra refresh control is carried out, which is compatible with genuine Casio Basic. + Grp: Only graphics draw commands make screen refreshed, excepting ClrText, Locate, Text, LocateYX, " " (this exception is compatible with former version of C.basic). + All: All the display and draw commands male screen refreshed. PutDispDD should be used as may be necessary. + Time: Set refresh control tme in interval of 1/128 sec. Defalt value is 3 then refresh control is every 1/42 sec. + It is not refreshed when 0 is set. + - Related command: RefrshCtrl, RefrshTime +------------------------------------------------------------------------------- +Wait count: 0~9999 + Set to wait for slowdown execution speed. + - Related command: Wait +------------------------------------------------------------------------------- +G1M/G3M mode: auto/g3m/g1m + Set to execute mode as default. + - Related command: + '#G1M + '#g1m + '#G3M + '#g3m +------------------------------------------------------------------------------- +Execute mode: Dbl# / Int% / CPLX + Set running mode as default. + - Related command: '#CBasic, '#CBASIC, '#CBINT, '#CBint '#CBCPLX '#CBcplx +------------------------------------------------------------------------------- diff --git a/doc-cg/ManualCG_FR.txt b/doc-cg/ManualCG_FR.txt new file mode 100644 index 0000000..7c9c3a1 --- /dev/null +++ b/doc-cg/ManualCG_FR.txt @@ -0,0 +1,2813 @@ +Voyez aussi ce site: +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +Le site est traduit par Krtyski, et ce fichier par Lephenixnoir. + +=============================================================================== + +Manuel de l'interpréteur (et compilateur) Basic Casio, pour CG/90+E series ver 1.x beta + +Copyright (c) 2015-2017-2020 Sentaro21 +Email: sentaro21@pm.matrix.jp + +Dernière mise à jour du texte d'origine par Sentaro21, le 9/02/2020 + +=============================================================================== +Qu'est-ce que C.Basic pour CG/90+E ? +=============================================================================== +C.Basic est un interpréteur Basic Casio rapide et compatible avec le Basic Casio standard. Il implémente certains bons aspects de la fx-5800P. + +C.Basic lit des programmes dans les fichiers *.g1m stockés dans la mémoire de sotckage, contrairement au Basic Casio standard qui lit les contenus des fichiers *.g1m dans la mémoire principale. Un programme utilisant uniquement des commandes compatibles peut être exécuté à la fois dans C.Basic et l'interpréteur standard. + +=============================================================================== ( étendu pour CG ) +Exécuter le mode de g1m ou g3m +=============================================================================== +Il existe le mode g1m compatible avec la version FX et le mode g3m correspondant à la série CG. +Lorsque vous utilisez le programme g1m avec le mode g3m, il est compatible avec le programme de la commande de texte, mais avec une partie non compatible avec les graphiques. + +=============================================================================== ( étendu pour CG ) +Mémoire disponible +=============================================================================== +Il y a 128 ko de RAM à l'usage libre de l'add-in. +Il y a de la RAM libre de 6 Mo dans CG50. C.Basic peut l'utiliser. +(utiliser la mémoire cache par configuration) + +=============================================================================== +Editeur de programme intégré, avec taille variable de texte +=============================================================================== +C.Basic a un éditeur de texte intégré, similaire à celui pr défaut. +Le copier-coller est supporté, mais il n'est possible de copier que 16 ko à la fois. Il n'y a pas encore d'annulation. + +La taille initiale des nouveaux fichiers est 32 ko. +Vous ne pouvez pas dépasser cette taille lorsque vous éditez un programme juste après sa création. Si vous atteignez 4 ko, veuillez enregistrer puis rouvrir le programme. +La zone de mémoire disponible sera alors augmentée de 8 ko. + +Lorsque le programme est exécuté, de la mémoire est réservée pour charger son code, avec un buffer supplémentaire de 8 ko (512 octets pour les sous-programmes). +Au moment de debugger le programme, ce buffer peut être exploité pour modifier le code. + +La taille maximale modifiable du programme est d'environ 62 Ko. + +=============================================================================== +Debugger intégré +=============================================================================== +Une fonctionnalité qui distingue C.Basic de l'interpréteur standard est la capacité de debugger et reprendre un programme après avoir appuyé sur [AC]. +Il est également possible de démarrer directement le programme en mode debug. +Ce mode permet de tracer l'exécution, exécuter pas-à-pas, exécuter ligne-à-ligne, et exécuter jusqu'en fin de fonction. + + +=============================================================================== +Modes d'exécutions - "Entier" et "Réel" et "Complexe" +=============================================================================== +C.Basic supporte trois modes d'exécutions en termes de variables numériques. Les modes "Réel" et "Complexe" sont identiques au Basic Casio standard ; le mode "Entier" permet de travailler avec des entiers uniquement. Le mode "Entier" permet d'accélerer le programme quand les valeurs réelles ne sont pas nécessaires. + +Ces modes peuvent être sélectionnées par le biais de commandes cachées dans des commentaires. Pour activer le mode réel, utilisez l'une des commandes équivalentes suivantes : + +'#CBasic +'#CBASIC +'#CBdbl +'#CBDBL + +Pour activer le mode entier, utilisez l'une des commandes suivantes : + +'#CBint +'#CBINT + +Pour activer le mode complexe, utilisez l'une des commandes suivantes : + +'#CBcplx +'#CBCPLX + +Les nombres réels de C.Basic sont implémentés par des nombre flottants en double-précision. + +Les paramètres par défauts peuvent être modifiés dans la page Configuration (Setup), à l'entrée "Mode d'exécution" ("Execute mode") ; les valeurs disponibles sont "Dbl#" et "Int%". + +Tout mode d'exécution dans un programme est prioritaire sur le paramètre par défaut de la page Configuration. + +En mode Entier, toutes les valeurs calculées doivent être des entiers, mais la vitesse de calcul est environ 1.5 plus élevée que celle du mode Réel. + +Si vous voulez évaluer une expression spécifique en Réel alors que le mode Entier est activé, préfixez l'expression d'un #. Les calculs intermédiaires seront faits en double précision, et seul le résultat final sera converti en entier. Le résultat final est toujours converti en entier. + +(Exemple) +"100*Frac 1.23+5" + +En mode Entier, Frac 1.23 est invalide et le code précédent donne une erreur. Cependant le préfixe # permet à l'expression d'être évaluée en double précision; l'évaluation entière reprend à la fin de la ligne ou au premier :. Ainsi : + +#(Frac 1.23*100+5) + +donnera 28. En mode Réel, le résultat est également 28. + +Si # est au milieu de l'expression, son effect continue jusqu'à la fin de la ligne ou le premier :. Par exemple : + +(Exemple) +100*#Frac 1.23+5 + +est interprété comme : +100*#(Frac 1.23+5) +donc le résultat vaut 523 en mode Réel et 500 en mode Entier. + + +=============================================================================== +Au sujet de la fonction Wait +=============================================================================== +Il est possible d'ajuster la vitesse d'exécution globale. +Lorsque cet ajustement est fait dans le menu Configuration (Setup), tous les programmes seront affectés. + +Utilisez la commande Wait pour le faire à l'intérieur d'un programme. +(Exemple) Wait 100 +Paramètre à 100 le délai d'exécution. + + +=============================================================================== +Types de nombres +=============================================================================== +Le Basic Casio standard représente les nombres en décimal avec une précision de 15 digits en interne, et 2 digits d'exposant. C.Basic, à l'inverse, utilise un nombre réel en double précision (8 octets) et des entiers de 4 octets, puisque ce sont les types natifs du C dans le SDK de Casio. +La plage de nombres que les réels en double précision peuvent représenter est de ++-9.88131291682493e-323 à +-1.7976931348623151e+308 +Cette plage est plus grande que celle du Basic, mais les calculs sont faits en binaire, donc n'oubliez pas que la valeur exacte des décimales est sujette à erreur d'arrondi. + +Les préfixes OX et OB similaires au langage C permettent d'écrires les constantes en hexadécimal et en binaire, rrespectivement. +(Exemple) 0XFF, 0B10100110 +(Exemple) 0xAB, 0b10100110 + + +=============================================================================== +Types de variables +=============================================================================== +Comme le Basic Casio, C.Basic nomme ses variables par une seule lettres; 26 majuscules de A à Z et 26 minuscules de a à z. + +Les noms de variables à partir de 2 lettres ne sont pas supportés par C.Basic, tout comme ils ne sont pas supportés par le Basic Casio. + +Les variables A-Z et a-z existent en deux versions : réelles et entières. Lorsque le mode Réel est activé, les lettres A-Z et a-z font références aux versions réelles ; lorsque le mode Entier est activé, elles font référence aux versions entières. Pour accéder aux versions opposées au mode activé, utilisez le suffixe % pour les entiers (A%-Z% et a%-z%) et le suffixe # pour les réels (A#-Z# et a#-z#). + +Utiliser une variable entière à l'aide du suffixe % en mode Réel ne pose pas de difficulté. Cependant, toute variable réelle utilisée avec le suffixe # en mode Entier sera arrondie en entier avant d'être employée dans son calcul. +Si la valeur réelle est trop grande pour être représentée par un entier, elle est remplacée par 0. + +(Exemple) #CBINT // Passe en mode entier + #1.2345->A# // 1.2345 est évalué à 1 (car le mode entier est activé) et 1 est stocké dans A# + +(Exemple) A%->A# +Copie la valeur de la variable entière A% dans la variable en double précision A#. +Copier d'un entier vers une donnée en double précision ne pose aucun problème. Mais à l'inverse, toute valeur en double précision copiée dans un entier sera arrondie, voire mise à 0 si elle ne rentre pas dans la plage représentable des entiers. + +=============================================================================== +Variables étendues 0.35 - +=============================================================================== +On peut nommer les variables avec plusieurs lettres si le nom commence par un underscore _ ; jusqu'à 8 caractères sont autorisés. +Ces variables sont initialisées au début du programme et indépendantes des variables usuelles à une lettre. + +Commes les autres variables, elles sont deux versions : une entière (suffixe %) et une réelle (suffixe #). + +Dans l'éditeur, [SHIFT][F1] permet de passer consécutivement de variable majuscule à variable minuscule à variable étendue. + +(Exemple) 123.456->_ABC +(Exemple) 456->_ABC% +(Exemple) _ABC+_ABC%->_Result +_Result vaut 579.456. + +=============================================================================== +Variables constantes 0.35 - +=============================================================================== +La commande Const ([OPTN]-[F3](extd)-[F3](Const)) permet de limiter les utilisations d'une variable. +Uune variable devient une constante lorsq'une valeur est affectée avec Const. +(Exemple) 123->Const A +(Exemple) 123->Const _ABC +(Exemple) 456->A +Changer la valeur d'une variable constante est une erreur. + + +=============================================================================== +A propos de la taille de l'écran +=============================================================================== +La plage pouvant être utilisée est normalement de 384x216 points dans la série CG. +La plage permettant de peindre des images dans un véritable CasioBasic est de 384 x 192, à l'exception de la ligne d'état supérieure. +mais prend en charge tous les 384x216 avec le C.Basic pour CG en tant que plage de dessin. +La plage 384x192 s'applique par la commande compatible avec les véritables CasioBasic, +mais, comme pour certaines commandes, la ligne d'état devient également ciblée pour le dessin. + +(exemple) Locate 1,0, "LIGNE DE STATUT" +(exemple) Text -24,1, "LIGNE DE STATUT" + affichez "STATUS LINE" sur la ligne d'état. + +=============================================================================== +À propos de la couleur +=============================================================================== +Il est coloré 16 bits par 1 point et peut afficher l'écran du point 384x216 de la série CG. +La structure de couleur de 16bits. +R: 5 bits +G: 6 bits +B: 5 bits +supporte la couleur 16 bits par défaut en C.Basic. + +La méthode de désignation de couleur désigne une couleur avant une commande ainsi que la couleur d'origine de CasioBasic. +(exemple) Bleu Localiser 1,1, "Bleu" + +les commandes suivantes sont étendues. +Back-Color +RGB( +GetRGB( +HSV( +GetHSV( +HSL( +GetHSL( +Transp-Couleur + +(exemple) Back-Color Red +(exemple) RGB(255,0,128) Bleu Localiser 1,1, "Bleu" +(exemple) GetRGB(12345) + +(format 1) couleur de fond +(exemple) Back-Color Vert + définir une couleur de fond en vert. +(format 2) Back-Color @ couleur +(exemple) Back-Color @ Vert + définir un cadre de dessin sur le domaine en vert. + +(format) RGB(R, G, B) + Je peux définir n'importe quelle couleur de 16 bits. + La plage de valeur passe de 0 à 255 avec un niveau de 8 bits chacun + R: 5 bits (0-248) + G: 6 bits (0-252) + B: 5 bits (0-248) + utilisable à des endroits tels que le rouge, le vert et le bleu. +(exemple) Il s'agit de Jaune, qui est légèrement plus foncé que Plot / LineColor RGB(160, 160, 0) Plot / LineColor Yellow. + +(format) RGB({R, G, B}) +(exemple) RGB({255,255,0}) +(exemple) {255,255,0} -> Liste 1 +          RGB(liste 1) + +(format) RGB(#valeur de couleur 16 bits) +Ajout de l 'option # de RGB(, HSV(, HSL(qui définit directement la couleur 16 bits). +(exemple) RGB(# 12345) +(exemple) HSV(# 12345) +(exemple) HSL(# 12345) + +(format) GetRGB(valeur de couleur 16 bits) +(exemple) GetRGB(65535) + retourner à ListAns = {248,252,248} +  R = ListAns [1] +  G = ListAns [2] +  B = ListAns [3] + +(format) HSV(H, S, V) +(format) HSL(H, S, L) +  H: 0~359 +  S: 0~255 +  V: 0~252 +  L: 0~250 + +(* 4 couleurs qui ne peuvent pas être fixées par HSV() et HSL().) +  #0x003F: RGB( 0, 4, 248) +  #0x041F: RGB( 0, 128, 248) +  #0xF820: RGB(248, 4, 0) +  #0xFC00: RGB(248, 128, 0) + +(*Note) Lorsque les valeurs ci-dessus sont utilisées comme arguments dans GetHSV() et GetHSL() une erreur pop-up se produit. +(Format) GetHSV (valeur couleur 16 bits [,N]) +(Format) GetHSL (valeur couleur 16 bits [,N]) +[,N] Ignorer les erreurs. + +-------------------------------------------------- ----------------------------- +Couleur de transition [SHIFT] - [F4] (SKETCH) - [F6] - [F6] - [F1] (COULEUR) - [F6] - [F5] (Couleur de transition) +-------------------------------------------------- ----------------------------- +En tant que commande pour nommer la couleur transparente dans le dessin BitMap de la couleur 16 bits +(format) Transp-Color + effacer la couleur transparente. +(format) Transp-Color couleur +(exemple) Transp-Color Green + définissez la couleur transparente sur le vert. +(format2) Valeur de couleur Transp-Color # 16bits +(exemple) Transp-Color # 12345 + définir la couleur transparente sur 12345 + +=============================================================================== +VRAM +=============================================================================== +L'écran graphique et l'écran texte sont implémentés différent en C.Basic et en Basic Casio. Une seule VRAM, appelée VRAM d'affichage, est envoyée à l'écran LCD. + +Il y a cependant 3 VRAMs internes: +- La VRAM d'affichage, dont les contenus sont envoyés à l'écran +- La VRAM texte, utilisée pour sauvergarder les contenus de l'écran texte +- La VRAM graphique, utilisée pour sauvegarder les données de l'écran graphique + +Lorsqu'une commande texte est lancée en mode d'affichage texte, C.Basic dessine directement dans la VRAM d'affichage car le bon mode est actif. Si une commande du mode texte est utilisé alors que le mode graphique est actif, C.Basic sauvegarde la VRAM d'affichage (qui contient des données du mode graphique) dans la VRAM graphique, recharge la VRAM texte dans la VRAM d'affichage, puis dessine dans la VRAM d'affichage. + +Si plusieurs commandes texte sont envoyées en séquence, la sauvegarde de la VRAM graphique ne se produit qu'une fois et tout le texte est envoyé à la VRAM d'affichage. + +Dès qu'une commande graphique est utilisée en mode texte, la VRAM d'affichage est sauvegardée dans la VRAM texte, puis les contenus de la VRAM graphique sont rechargés dans la VRAM d'affichage. Le dessin est, comme toujours, exécuté sur la VRAM d'affichage. + +Comme vous pouvez le voir, les VRAMs texte et graphique ne sont pas utilisées pour dessiner, uniquement pour sauvegarder les deux écrans. Donc, dès que vous changez de mode, ces VRAMs sont copiées depuis et vers la VRAM d'affichage. + + +=============================================================================== +Contrôle du rafraîchissement de l'écran +=============================================================================== +L'affichage à l'écran d'une Graph 35+/Graph 75 se produit lorsque la VRAM est transférée vers l'écran. + +Ce transfert a quand même un coût, donc rafraîchir l'écran chaque fois qu'une commande de dessin est exécutée (comme en Basic Casio) ne serait pas efficace. + +Pour contourner cette inefficacité, C.Basic fournit des commandes de contrôle du rafraîchissement. Vous pouvez demander de rafraîchir l'écran à chaque fois qu'une commande graphique est utilisée, ou de le rafraîchir à intervalles réguliers. Ce paramètre est disponible à la fois dans le menu Configuration (Setup) et par le biais de commandes. + +Lorsque le rafraîchissement est réuglier, la dernière commande d'une séquence risque de ne pas être affichée au bon moment. + +Pour éviter ce problème, la commande PutDispDD permet de forcer ponctuellement le rafraîchissement de l'écran. + + +=============================================================================== +Matrices étendues +=============================================================================== +Les matrices de C.Basic se comportent différemment des matrices du Basic Casio. +C.Basic implémente les fonctionnalités de base à la façon du Basic Casio; des nombres réels peuvent être utilisés en mode Réel, et des complexes en mode Complexe. +Les matrices de C.Basic peuvent contenir des éléments de types plus variés : Bits ("Bit", 1 bit), Nibbles ("Nibble", 4 bit), Octets ("BYTE", 1 octet) et Mots ("WORD", 2 octets) en plus des nombres réels (8 octets) et entiers (4 octets) usuels. + +Ajoutez l'un des suffixes suivants au nom de la matrice lorsqu'elle est déclarée pour indiquer son type : +- [.P] ou [.p] : Matrice d'entiers de 1 bits, les valeurs autorisées sont 0 et 1. +- [.N] ou [.n] : Matrice d'nibbles de 4 bits, les valeurs autorisées sont de 0 à 15. +- [.B] ou [.b] : Matrice d'octets de 8 bits, les valeurs autorisées sont de -128 à 127. +- [.W] ou [.w] : Matrice de mots de 16 bits, les valeurs autorisées sont de -32'768 à 32'767. +- [.L] ou [.l] : Matrice d'entiers de 32 bits, les valeurs autorisées sont de -2'147'483'648 à 2'147'483'647. +- [.F] ou [.f] : Matrices de flottants en double précisions, les valeurs autorisées sont de 9.88131291682493e-323 à 1.7976931348623151e+308. +- [.C] ou [.c] : Matrices de paires de flottants en double précision pour les complexes ; les valeurs autorisées pour chaque composante sont de 9.88131291682493e-323 à 1.7976931348623151e+308. + +Comme en Basic Casio, la taille {m,n} de la matrice représente le nombre de {lignes,colonnes}. +Il y a une exception : les matrices d'entiers de 1 bit sont implémentées dans l'ordre {colonnes,lignes} avec un accès en coordonnées {X,Y}. + +Comme la matrice d'entiers de 1 bits a la même structure que la VRAM, en indiquant le type [.V] ou [.v], vous pouvez accéder directement à la VRAM si la matrice fait 128 lignes et 64 colonnes. +De plus, les types [.VG] et [.VT] permettent d'accéder, respectivement, aux VRAMs graphique et texte. +Les indices commencent à 0 et la taille de ces matrices est fixée à {216,384}. + +(Exemple) {216,384}->Dim Mat G.V +La matrice G permet d'accéder à la VRAM ; toutefois, comme les modifications de la matrice ne seront pas effectuées par des commandes de dessin usuelles, il faudra raraichir l'écran manuellement ou périodiquement. + +(Exemple) {216,384}->Dim Mat G.V + Screen.G // Sélectionne l'écran graphique (une commande de dessin aurait marché aussi) + 1->Mat G[108,192] // Dessine un point au milieu de l'écran + PutDispDD // Demande le rafraîchissement de l'écran +Cet exemple produit le même effet que PxlOn 108,192. + +(Exemple) {216,384}->Dim Mat G.V + Screen.T // Sélectionne l'écran texte (une commande de texte aurait marché aussi) + 1->Mat G[108,192] // Dessine un point, au milieu de l'écran texte ! + PutDispDD // Demande le rafraîchissement de l'écran +Cet exemple affiche un point au milieu de l'écran texte. + + +=============================================================================== +Initialisation de matrices +=============================================================================== +Le format habituel du Basic Casio est supporté. +{M,n}->Dim Mat A +[[1,2,3][4,5,6]]->Mat A + +Les fonctions de la fx-5800P sont aussi supportées: +100->Dim A +0->Dim A // Supprime la matrice A + +Il est possible d'ajouter des espaces et des retours à la ligne dans une initialisation à base de crochets. + +(Exemple) [[0B11001100, + 0B00110011, + 0B11001100, + 0B00110011 + ]]->Mat A.B + +La fonction Dim Dim permet d'initialiser une matrice à partir de son adresse mémoire. + +(Usage) {m,n}->Dim Dim A(x) +(Exemple) {128,1}->Dim Mat A.B + {64,1}->Dim Mat B.W(VarPtr(Mat A)) +Ici, les matrices A et B accèdent aux mêmes données, mais avec des tailles différentes (octet et mot). Notez que la taille (128*1 contre 64*1*2) est la même dans les deux cas. + +=============================================================================== +Accès aux matrices +=============================================================================== +En plus du format traditionnel Mat A[1,1], deux notations supplémentaires sont possibles. +* Omettre le Mat : + A[1,1] +* Accéder à une ligne entière : + A[1] +* Si, de plus, l'indice s'écrit avec un seul chiffre (0..9), les crochets sont facultatifs : + A1 + +Les variables de cette forme (lettre suivie d'un chiffre) sont automatiquement réservées pour être des matrices. Si elles sont utilisées alors que la matrice n'a pas été créée, la matrice est créée sur le coup. + +(Exemple) A1+123->B5 +Si les matrices A et B n'ont pas été créées, elles le sont automatiquement par les commandes suivantes : +9->Dim A +9->Dim B +Et les variables A1..A9 et B1..B9 deviennent disponibles. + +(Exemple) '#Mat 0 // Active le mode d'indexation à partir de 0 + A1+123?B5 +Si les matrices A et B n'ont pas été créées, elles sont initialisées automatiquement par les commandes : +10->Dim A +10->Dim B +Et les variables A0..A9 et B0..B9 deviennent disponibles. + +(Exemple) '#Mat 0 + 10->Dim A + 2->Dim B + A1+123?B5 +Dans le cas où Mat A et Mat B sont inialisées mais l'accès est en-dehors des bornes, une erreur se produit. + +=============================================================================== +Conversion de matrices +=============================================================================== +Le type d'une matrice (bit, octet, mot, entier, réel) peut être modifié librement même après que la matrice a été créée. +(Exemple) [[1,2,3,4] [5,6,7,8]] -> Mat A.B + Mat A -> Dim Mat A.W +modifie le type de la matrice A d'octet à mot. +Le nombre d'éléments est modifié pour correspondre à la taille de la mémoire allouée. +[[0x0102,0x0304][0x0506,0x0708]]->Mat A.W +Produirait le même résultat. + +(Note) Les conversions depuis et vers le format 1-bit/4-bit inversent les lignes et les colonnes car les matrices 1-bit/4-bit utilisent le mode {X,Y} par compatibilité avec les buffers de VRAM. + +(Exemple) {127,63}->Dim Mat A.B // Crée une matrice pour accéder à la VRAM + Mat A->Dim Mat A.B // La nouvelle taille est {63,16} + + +=============================================================================== +Indice de départ des matrices +=============================================================================== +En Basic Casio, les indices de matrices commencent à 1. C.Basic autorise de commencer à 0. +Ce paramètre peut être modifié dans le menu Configuration (Setup) ou à l'aide d'une commande en commentaire. + +(Exemple) '#Mat 1 // Active le démarrage à l'indice 1 +(Exemple) '#Mat 0 // Active le démarrage à l'indice 0 + {3,2}->Dim Mat A // La matrice allouée va de A[0,0] à A[2,1] + +Les commandes de dessin acceptent également des paramètres de valeur 0, permettant de dessiner sur la totalité de l'écran. + +(Exemple) PxlOn 0,à + + +=============================================================================== +Visualisation des matrices +=============================================================================== +Il est possible de consulter les matrices au format binaire ou hexadécimal dans l'éditeur de matrices. +Appuyer sur [F5] dans l'éditeur de matrices affiche les nombres en binaire, et [F6] les affiche en hexadécimal. +Pour revenir au format décimal, appuyez de nouveau sur [F5] [F6]. +La notation binaire n'est pas disponible au-delà de 2 octets par entrée. + +Appuyez sur [OPTN] pour afficher ou masquer les noms de listes. +Appuyez sur [VARS] pour changer l'affichage des chaînes de caractères. + +=============================================================================== +Fonctions sur les listes +=============================================================================== +Les listes sont implémentées comme des matrices à une dimensions. +Les listes List 1~26 sont indépendantes. +Les matrices Mat a~z (avec les noms en minuscules) correspondent aux listes 27~52. Par exemple, les expressions suivantes ont (deux-à-deux) le même sens : + +List 27[5] = Mat a[5,1] +List 28[5] = Mat b[5,1] +List 29[5] = Mat c[5,1] +List 100[5] = Mat 100[5,1] +List 1000[5] = Mat 1000[5,1] + +Les fonctions de listes suivantes du Basic Casio sont supportées. + +List Ans +10->Dim List 1 +{1,2,3,4,5}->List 1 +Seq(X^2,X,1,10,2)->List 2 +Augment(List 1,List 2)->List 3 +Mat>List(Mat A,2)->List 1 +List>Mat(List 1, List 2, ...)->List 9 +Fill(3, List 1) +Min(List 1) +Max(List 1) +Mean(List 1) +Sort A(List 1) +Sort B(List 1) +Sum List 1 +Prod List 1 + +L'arithmétique et les appels de fonctions sur les listes sont aussi supportrées. + + +=============================================================================== +fonction vectorielle supportée +=============================================================================== +Vct +DotP( +CrossP( +Angle( +UnitV( +Norme( +ClrVct +(*) La zone de Vct A ~ Z devient indépendante. +Pour changer la touche [VARS] pour l'affichage Vct de l'écran Mat / List / Vct. + + +=============================================================================== +Chaînes de caractères +=============================================================================== +Comme en Basic Casio, les variables Str contiennent des chaînes de caractères et peuvent être manipulées par des fonctions ; mais en interne, elles sont implémentées comme des matrices. + +Une matrice peut être vue comme une chaîne de caractères si son nom est précédé d'un $. + +(Exemple) ["ABCDEF"] -> Mat A + Locate 3,3,$Mat A +"ABCDEF" est affiché à la position (3,3) de l'écran. + +Initaliser avec {7,1}->Dim Mat A.B est équivalent car les chaînes de caractères sont des matrices d'octets. + +Liste des fonctions Basic Casio sur les chaînes de caractères supportées : + + + (Concaténation des chaînes de caractères) + StrJoin( + StrLen + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrDwr( + StrInv( + StrShift( + StrRotate( + +(Exemple) "ABCDEF"->Str 1 + Locate 3,3,StrRight(Str1,3) +"DEF" est affiché à la position (3,3). + +Les caractères utilisées sur les Graph 35+ et Graph 75 comprennent des caractères d'un octet (lettres, chiffres et quelques commandes) et des caractères étendus sur deux octets (quasiment toutes les commandes, les caractères spéciaux et les kana). +En interne, les caractères d'un octet et deux octets sont mélangés, mais cette gestion est transparente dans les fonctions, comme en Basic Casio. +Soyez attentifs à la position des caractères quand vous accédez à une chaîne de caractères par une matrice. + + +=============================================================================== +Initialisation des chaînes de caractères +=============================================================================== +Les variables Str 1-20 du Basic Casio utilisent la matrice Mat r par défaut, et la taille des chaînes est limitée à 255 caractères. +Les Str sont automatiquement allouées dans la Mat r et peuvent être utilisées dans les fonctions appropriées du Basic Casio (indépendamment du fait qu'elles sont dans une matrice). +Si les Str ne sont pas initialisées explicitement, +Lorsqu'un ou plusieurs Str sont utilisés dans un programme, si le nombre maximum de Str est M, la matrice est automatiquement créée comme suit: +{M, 256} -> Dim Mat +(note) signifie r gras. La pression de la touche r en gras est [ALPHA]+[x^2]. + + +La matrice utilisée pour stocker les chaînes de caractères peut être choisie à la main : +(Exemple) '#Str A +Réserve la matrice A pour stocker les Str. + +(Exemple) {20,65}->Dim Mat A.B +Alloue de la même façon que: +(Exemple) '#Str B,30,256 +Réservant jusqu'à 30 Str de 255 caractères. + +La synatxe suivant permet d'assigner une chaîne de caractères. +(Exemple) "ABCDEF"->Str 1 +(Exemple) ["ABC","TEST","1+3+5"]->Mat A +La deuxième ligne alloue Mat A de taille [3,6], de type octet et affecte les caractères comme ceci : + Mat A[1,1] = "ABC" + Mat A[2,1] = "TEST" + Mat A[3,1] = "1+3+5" + +Pour accéder à la chaîne de caractères "ABC" ainsi stockée dans la Mat A, plusieurs choix sont possibles : $Mat A, $Mat A[1], or $Mat A[1,1]. +(Exemple) Locate 1,1,$Mat A +est identique à Locate 1,1,"ABC". +(Exemple) Locate 1,1,$Mat A[1] +est identique à Locate 1,1,"ABC". +(Exemple) Locate 1,1,$Mat A[3,3] +est identique à Locate 1,1,"3+5". + +Récupération de chaînes de caractères : +(Exemple) ?->$Mat A +Demande à l'utilisateur une chaîne de caractères et la stocke dans Mat A. On ne peut pas mettre plus d'éléments qu'il n'y a de mémoire allouée dans la matrice. + +Les chaînes de caractères peuvent aussi être utilisées dans les fonctions suivantes : +- Locate +- Text +- LocateYX +- Exp( + +(Exemple) Exp("1+2+3") // Donne 6 +(Exemple) Exp($Mat A[3,3)] // Donne 8 +Exp( évalue la chaîne de caractères comme une expression mathématique et renvoie le résultat. + + +=============================================================================== +Sprintf - une commande étendue +=============================================================================== +Comme il n'y a en Basic Casio pas de commande pour convertir un nombre en chaîne de caractères, la fonction Sprintf du C a tté ajoutée. + +(Spécification) Sprintf ("Format", argument 1 [, argument 2 [, argument 3]])) +(Exemple) Sprintf ("A=%4dB=%3.2f",%A,#B) -> Str 1 +Quand A=1234 et B=45.678, le résultat assigné à Str 1 est "A=1234 B=45.68 " + +Le format est compatible avec le sprintf() du C, donc la représentation en notation exponentielle (et affiliées) diffère un peu de celle du Basic. +Jusqu'à trois arguments entiers, réels ou chaînes de caractères peuvent être donnés. +Le préfixe % indique an entier et # indique un nomnbre réel. Si le préfixe n'est pas spécifié, le mode d'exécution (Entier ou Réel) décide du type de conversion. +Il n'y a pas de vérification que le format annoncé et le type des arguments correspondent, donc faites attention : un crash est possible si une erreur se produit dans Sprintf. + + +=============================================================================== +Liste des commandes +=============================================================================== +Commandes compatibles avec le Basic Casio +=============================================================================== + +Is it? +(Disps) +-> +If ~ Then ~ Else ~ IfEnd +Lbl ~ Goto +=! => <> = <= + +Dsz / Isz +=> +Locate +Menu + +For ~ To ~ Step ~ Next +While ~ WhileEnd +Do ~ LpWhile +Break +Return +Stop +Getkey +Prog + +ClrMat +ClrList +Mat (Les opérations matricielles sont pas supportées.) +List (Les opérations sur les listes sont supportées.) +Dim +Fill( +Seq( +Augment( +Mat>List( +List>Mat( +Min( +Max( +Mean( +Sort A( +Sort B( +Sum +Prod +Swap / *Row / *Row+ / Row+ +Trn +Identity +DotP( +CrossP( +Angle( +UnitV( +Norm( +nPr +nCr + +i / Arg / Conjg / ReP / ImP / >r/_theta / a+bi +Real / a+bi / r/_theta + +Cls ClrText ClrGraph +ViewWindow +Plot / PlotOn / PlotOff / PlotChg +Circle +Line / F-Line +Vertical / Horizontal + +PxlOn / PxlOff / PxlChg +PxlTest( +Text + + +SketchNormal / SketchThick / SketchBroken / SketchDot / SketchThin +S-L-Normal / S-L-Thick / S-L-Broken / S-L-Dot / S-L-Thin + +G-Connect / G-Plot +CoordOn / CoordOff +GridOn / GridOff / GridLine +AxesOn / AxesOff / AxesScale +LabelOn / LabelOff +DerivOn / DerivOff +BG-None / BG-Pict +FuncOn / FuncOff +S-WindAuto / S-WindMan + + +DrawGraph (partiellement pris en charge) +Graph Y= (partiellement pris en charge) +GraphY (partiellement pris en charge) + +Graph(X,Y)= (Partially supported) +DrawStat (partiellement pris en charge) +S-Gph1, S-Gph2, S-Gph3, DrawOn, DrawOff, Scatter, xyLine, Square, Cross, Dot + +Xmin Ymin Xmax Ymax Xscl Yscl Xfct Yfct Xdot +T [theta] Min T [theta] Max T [theta] Ptch + +Deg Rad Grad + +And Or Not Xor + +Abs Int frac Intg +It is! +MOD +Rmdr Int/ +Log ln logab( +10 ^ x e ^ x +X ^ -1 +Sqr x ^ 2 +Sqr ^ -3 +Sin cos tan +Sin^-1 cos^-1 tan^-1 +Sinh cosh tanh +Sinh^-1 cosh^-1 tanh^-1 + +Femto pico nano micro milli Kiro Mega Giga Tera Peta Exa + +(deg) r(rad) g(gra) +> DMS + +Str +StrJoin( +StrLen +StrCmp( +StrSrc( +StrLeft( +StrRight( +StrMid( +Str>Exp( +Exp( +StrUpr( +StrDwr( +StrInv( +StrShift( +StrRotate( + +StoPict / RclPict +RclCapt + +Ran# RanInt#( RanNorm#( RanBin#( RanList#( +Rnd RndFix( +Norm / Fix / Sci +Eng / EngOn / EngOff + +Black Blue Red Magenta Green Yellow Cyan +Plot/Line-Color + + +=============================================================================== +Référence des commandes étendues +=============================================================================== +------------------------------------------------------------------------------- +? [SHIFT]+[VARS](PRGM)-[F4](?) +------------------------------------------------------------------------------- +La commande d'entrée supporte des options. +(Référence) ?[##/%%]([@][x][,y][,width][,"SpaceChar"][,limit][,R]) +[##]: accepte les caractères GB. +[%%]: interdit de force la saisie de caractères GB. +(Exemple) "A="?()->A +Affiche "A=" puis attend que l'utilisateur entre la valeur de A. + +(Exemple) "A="?(,,,,R)->A +Affiche "A=" et attend une valeur en inversant l'affichage. + +(Exemple) "A="?(,,8,,R)->A +Affiche "A=" et attend une valeur d'au plus 8 chiffres en inversant l'affichage. + +(Exemple) "A="?(3,4,5,">",5)->A +Affiche "A=" et attend une entrée à la position (X=3,Y=4) de 5 digits et 5 caractères, où les espaces sont mis en valeur avec ">". + +(Exemple) "A="?(3,4,5,,5,R)->A +Affiche "A=" puis attend une entrée à la position (X=3,Y=4) de 5 digits et 5 caractères, en inversant l'affichage. + + +[@]: Le dessin de la commande devient la VRAM en cours. +(exemple) "A="?(@ 30,40,5,">",5)A +Affiche "A=" sur cuurent VRAM puis attendez que l'entrée A valeur à (px=30, py=40) ne comporte que 5 chiffres et 5 caractères, le blanc est composé de ">". + +(exemple) "A="?(@ 30,40,5,">",5,,M)A +Affiche mini font "A=" sur la mémoire vive virtuelle, puis attendez que la valeur entrée (px=30, py=40) ne contienne que 5 chiffres et 5 caractères. Le blanc est composé de ">". + +-------------------------------------------------- ----------------------------- +Menu [SHIFT] + [VARS] (PRGM) - [F3] (JUMP) - [F6] (Menu) +-------------------------------------------------- ----------------------------- +La couleur du titre est valide juste avant la commande Menu. +La couleur de l'élément de menu est la couleur de tracé / couleur de trait valide. +La couleur de fond du menu est la couleur de fond valide. +(exemple) +  Couleur de tracé / couleur de trait bleu +  Back-Color noir +  Menu rouge "MENU TITRE", "1er élément", 1, "2ème élément", 2 + +Lorsque vous attachez "@" juste après une commande; la version FX compatible. + +------------------------------------------------------------------------------- +Fix [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F1](Fix) +Sci [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F2](Sci) +Norm [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F3](Norm) +Eng [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F3](Eng) +------------------------------------------------------------------------------- +Eng, Norm, Fix et Sci renvoient les paramètres d'affichage numérique associés (On ou Off). + +Eng renvoie directement son paramètre : +- renvoie 0 si l'état est EngOff +- renvoie 1 si l'état est EngOn + +Pour Norm, Fix et Sci, ajouter un entier (par exemple "Fix 2") modifie le paramètre. Pour connaître la valeur, passez un paramètre négatif. + +Par exemple, en mode Norm1, les valeurs de retour sont... +- Norm (-1) donne 1 +- Fix (-1) donne -1 +- Sci (-1) donne -1 + +En mode Fix 8, les valeurs de retour sont les suivantes : +- Norm (-1) donne -1 +- Fix (-1) donne 8 +- Sci (-1) donne -1 + +------------------------------------------------------------------------------- +EngOn [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F1](EngOn) +------------------------------------------------------------------------------- +Le séparateur de milliers peut être affiché. + +(Exemple) EngOn 3 +Après cette commande, les nombres sont affichés avec le séparateur de milliers ",". EngOff désactive le séparateur. + +------------------------------------------------------------------------------- +StoPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F1](Store) +RclPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F2](Recall) +------------------------------------------------------------------------------- +Ces commandes ont deux modes, un qui stocke en mémoire de stockage et qui stocke dans le tas alloué dans la mémoire principale. +Pour changer le mode, ouvrez le menu Configuration (Setup) en tapant [SHIFT][MENU](SET UP), naviguez jusqu'à l'entrée "Pict", et choisissez [F1](MEM) ou [F2](Heap). +Quand "Heap" est choisi, les Pictures manipulées ne sont plus celles du Basic Casio, mais les accès sont plus rapides. Le programme reste compatible car sa source n'a pas changé. + +------------------------------------------------------------------------------- +ElseIf [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F5](ElseIf) +------------------------------------------------------------------------------- +(Référence) If ~ Then ~ ElseIf ~ IfEnd +(Exemple) + If A:Then + Locate 1,1,"A" + ElseIf B:Then + Locate 1,2,"B" + EndIf + +Le nombre d'IfEnd pour un If n'est pas vérifié rigoureusement en Basic Casio. En C.Basic vous pouvez l'activer en modifiant l'entrée "IfEnd Check" dans le menu de Configuration (Setup). Lorsqu'il est activé, un message d'erreur se produira à l'exécution si un If frauduleux est détecté. Le curseur indiquera quel If n'a pas de IfEnd correspondant. + + +------------------------------------------------------------------------------- +Locate [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F1](Locate) +------------------------------------------------------------------------------- +(Référence) Locate [@][!]y,x,[##/%%]"string"orExpression,[,N/O/R/V][,F][,height] + [@] Affiche dans la VRAM courante même si c'est la VRAM graphique + [!] Utilise la police standard même si une police externe a été chargée + [##] accepte les caractères GB. + [%%] interdit de force la saisie de caractères GB. + [N] Normal + [R] Inversé (Reverse) + [O] Ou + [V] réversion ou + [F] Correction d'un pas de 18 pixels. + +Ajouter [R] en paramètre de fin inverse le rendu de texte (blanc sur noir). +(Exemple) Locate 1,2,"Test",R +"Test" est affiché à la position (1,2) en blanc sur noir. + +Ajouter le préfixe # au paramètre de Locate, Sprintf, Text ou Disp force son évaluationen tant que nombre réel. En mode Entier, cela permet d'afficher des résultats réels sans passer en mode réel. + +(Exemple) '#CBINT + 10->A + Locate 1,2,log 123+A + +En mode entier, "log 123+A" est arrondi à 12. Cependant : + +(Exemple) '#CBINT + 10->A + Locate 1,2,#log 123+A + +Indiquer le mode réel annule l'arrondi et le résultat 12.089905111 est affiché. Notez que l'expression précédée par un # est évaluée avec des réels, mais les variables sont toujours entières car le mode de calcul est Entier. Aucun préfixe % n'est nécessaire pour les variables. + + +------------------------------------------------------------------------------- +Switch [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F1](Switch) +Case [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F2](Case) +Default [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F3](Default) +Break [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F4](Break) +SwitchEnd [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F5](SwitchEnd) +------------------------------------------------------------------------------- +C.Basic supporte la structure Switch-Case, qui passe d'un Case à l'autre comme en C (s'il n'y a pas de Break à la fin du Case, alors l'exécution continue par le Case suivant). + +"Default" doit absolument être placé en dernier. + +Les nouvelles commandes sont "Switch", "Case", "Default" et "SwitchEnd" ; "Break" existe déjà. + +(Exemple) + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + + +------------------------------------------------------------------------------- +ACBreak [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F2](ACBreak) +------------------------------------------------------------------------------- +La commande ACBreak produit le même effet qu'appuyer sur [AC/ON] pendant que le programme s'exécute. + +Cette commande peut être désactivée via le menu Configuration (entrée "ACBreak") ; quand elle est Off, elle est ignorée et ne produit aucun effet. + +(Exemple) ACBreak + +Ajouter "Stop" juste après "ACBreak" désactive la commande "ACBreak" jusqu'à la fin du programme, comme si elle avait été coupée dans le menu Configuration. + +(Exemple) ACBreakStop + + +------------------------------------------------------------------------------- +Local [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F5](Local) +------------------------------------------------------------------------------- +En C.Basic, toutes les variables (y compris celles dont le nom est en minuscules) sont globales par défaut. Toutefois certaines variables d'une lettre minuscule peuvent être utilisées comme des variables locales avec la commande "Local". + +(Exemple) Local x,y,z + +- Les variables x, y et z sont maintenant locales. +- Jusqu'à 10 variables de ce type peuvent être choisies. +- Ces variables sont utilisées pour passer des paramètres à "Prog". + +(Exemple) +Dans le sous-programme "TEST", il y a 3 variables locales: + + Local x,y,z + ... + +Dans le programme principal, on peut utiliser "Prog" avec 3 paramètres supplémentaires : + + Prog "TEST",123,456,N + +Dans cette situation, "TEST" est appelé et "x" y vaut 123, "y" y vaut 456, "z" y vaut la valeur de N au moment de l'appel. + +L'usage de variables locales permet d'implémenter de la récursion dans C.Basic, toutefois la limite de récursion est pour l'instant de 128 appels. + +------------------------------------------------------------------------------- +Prog [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F1](Prog) +------------------------------------------------------------------------------- +En conjonction avec la commande "Local", "Prog" permet de passer des arguments et des valeurs de retour au sous-programme. + +(Exemple) + Programme "Main" + ---------------- + 10->X + 20->Y + X+1->a + Y*2->b + Prog "SUB",X,Y + Disp Ans + Disp a + Disp b + + Programme "SUB" + --------------- + Local a,b + Disp a + Disp b + Return a+b + +Affichage en sortie : + 10 + 20 + 30 + 11 + 40 + +Le programme "MAIN" appelle le programme "SUB" qui calcule la somme de 2 nombres et affiche le résultat. Dans le sous-programme, les variables a et b sont Locales, donc différentes des variables globales a et b du programme principal. + +------------------------------------------------------------------------------- +Return [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F2](Return) +------------------------------------------------------------------------------- +La commande "Return" quitte un sous-programme. En C.Basic il est possible de renvoyer une valeur au programme appellant. + +(Exemple) Return + +La valeur de retour est stockée dans la variable "Ans" pour le programme appelant. + +------------------------------------------------------------------------------- +Gosub [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F1](Gosub) +------------------------------------------------------------------------------- +La fonction Gosub permet d'avoir un sous-programme dans le même fichier. + +(Exemple) Gosub A +Saute au label A comme s'il s'agissait d'un sous-programme. L'exécution continuera jusqu'au premier "Return", puis le code reprendra après le Gosub. + +(Exemple) Gosub A,123,456 +Si la zone après le saut contient des variables locales, des paramètres peuvent être passés à Gosub à la façon de Prog. Mais comme les variables locales sont partagées dans tous le fichier, elle sont en un sens globales. + +(Exemple) + 10->X + 20->Y + X+1->a + Y*2->b + Gosub A,X,Y + Disp Ans + Disp a + Disp b + Stop + + Lbl A + Local a,b + Disp a + Disp b + Return a+b + +Affichage en sortie : + 10 + 20 + 30 + 10 + 20 + +Ce programme similaire à l'exemple d'illustration de "Prog" se comporte différemment car les variables "a" et "b" sont entièrement locales au programme. Les variables globales "a" et "b" ne sont pas utilisées. + +------------------------------------------------------------------------------- +ElemSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F2](Elem) +RowSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F3](Row) +ColSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F4](Col) +------------------------------------------------------------------------------- +Calcule la taille d'une matrice. + +ElemSize( + Renvoie l'espace occupé (en bits) par un élément de la matrice. + (Exemple) ElemSize(Mat A) +RowSize( + Renvoie le nombre de lignes ; le m de la dimension {m,n}. +ColSize( + Renvoie le nombre de colonnes ; le n de la dimension {m,n}. + +------------------------------------------------------------------------------- +MatBase( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F1](Base) +------------------------------------------------------------------------------- +Renvoie le premier indice d'accès à la matrice (0 ou 1). + +(Exemple) MatBase(Mat A) + +------------------------------------------------------------------------------- +Getkey [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F2](Getkey) +------------------------------------------------------------------------------- +La fonction Getkey du Basic est étendue avec les options suivantes : + - Getkey: compatible avec le Basic Casio + - Getkey1: arrête le programme jusqu'à ce qu'une touche soit pressée (comme le GetKey() du SDK) + - Getkey2: vide le key buffer avant d'attendre une entrée (recommandée en SH3) + - Getkey3: attend pendant un délai défini avant d'accepter les pressions de touches + - GetkeyM: accepte plusieurs touches pressées simultanément et les stocke dans une liste +La lettre suivant "Getkey" doit être écrite à la main. + +Les numéros de touches sont ceux du Basic et pas ceux du SDK. + +Sur la version SH4, il est possible de contôler le rétroéclairage avec [SHIFT]+[OPTN]. + +L'extinction avec [SHIFT]+[AC] est pour l'instant impossible, tout comme obtenir le code de la touche [AC]. + +(Exemple) Getkey3(128) +Attend 128 ticks (1 seconde) pendant laquelle toutes les pressions sont ignorées. Renvoie le numéro de la première touche pressées une fois ce délai écoulé. + +* Si Getkey1 ne fonctionne pas bien sur SH3, utilisez Getkey2 à la place. + +(Exemple) GetkeyM->List 1 +Appuyer simultanément sur [EXE] et [F1] donnera la liste {79,31}. + +Lorsque Exec TimeDsp est activé pour mesurer le temps d'exécution du programme, Getkey peut mettre en pause le compteur. Il s'agit d'un paramètre de C.Basic : + +(Format) '#GetKeyC +Continue à mesurer le temps pendant Getkey. +(Format) '#GetKeyR +Met le timer en pause pendant que Getkey attend. + +------------------------------------------------------------------------------- +Try~Except~TryEnd [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F3](Try) + (lator Ver.1.00) +------------------------------------------------------------------------------- +Le traitement des exceptions peut être effectué en fonction de l'erreur. + (Format) Essayez + Sauf le code d'erreur 1 + Processus en cas d'erreur1 + Sauf le code d'erreur 2 + Processus en cas d'erreur2 + TryEnd TryEnd + S'il n'y a pas d'erreur dans le site de l'A, le traitement se déplace après TryEnd. + Si l'erreur1 se produit, le traitement se déplacera après TryEnd après l'exécution du processus d'erreur1. + Si l'erreur2 se produit, le traitement se déplacera après TryEnd après l'exécution du processus d'erreur2. + Lorsque L'erreur3 se produit, une erreur apparaît parce qu'il n'y a pas d'exception correspondante. + +(Format) sauf + S'il n'y a pas d'exception à une erreur, «Erreur» est exécuté parce que sauf sans argument correspond à toutes les erreurs. + +(Exemple) Essayez 3*4 + Sauf 1 + "Erreur syntaxe" + TryEnd TryEnd + "Erreur Syntaxique" est exécuté, puisque le code d'erreur SyntaxError est 1. + +(Exemple) Essayez 3/4/0 + Sauf 1 + "Erreur syntaxe" + Sauf 40 + "Diviser par zéro" + TryEnd TryEnd + "Divide by Zero« est exécuté, puisque la division par zéro code d'erreur est 40. + +(Exemple) Essayez 3/4/0 + Sauf 1 + "Erreur syntaxe" + sauf + "Erreur" + TryEnd TryEnd + S'il n'y a pas d'exception à une erreur, «Erreur» est exécuté parce que sauf sans argument correspond à toutes les erreurs. + +Le programme de l'échantillon se trouve dans l'échantillon de CBasic/Try-Excepté. + Pour le code d'erreur, consultez le site ErrorCode.List.txt. +(*powerd by google translation) + +------------------------------------------------------------------------------- +Version [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + (lator Ver.0.45) +------------------------------------------------------------------------------- +Donne le numéro de versiond de C.Basic. + +(Exemple) Version +Pour la version ver.0.45, renvoie 45. + +------------------------------------------------------------------------------- +System( [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F4](System) + (lator Ver.0.49) +------------------------------------------------------------------------------- +Une commande générale pour obtenir des paramètres internes. + + System(0) donne la version de C.Basic (identique à "Version") + System(1) donne l'adresse de la VRAM (1 ko) + System(2) donne l'adresse de la VRAM texte (1 ko) + System(3) donne l'adresse de la VRAM graphique (1 ko) + System(4) donne l'adresse du buffer de travaille (256 ko) + System(10) renvoie l'adresse du buffer de copier/coller (32 ko) + System(-4) retourne au reste de la taille du segment de mémoire. (Ko) + Systèm(-3) retourne à la taille de la zone de mémoire. (Ko) + System(-2) renvoie la version de l'OS (par exemple 311) + System(-1) renvoie le nom du modèle.(par exemple 50 ) + + +=============================================================================== +Commandes graphiques étendues +=============================================================================== +La coordonnée réelle de l'écran de la série CG10/20/50/90+E est efficace (0,0)-(383,215), +mais l'utilise avec un niveau de coordonnées de (0,-24)-(383,191) en C.Basic. + +=============================================================================== +Quand [:] est ajouté à la fin de la commande, le dessin est fait sur la VRAM actuelle indépendamment du mode de VRAM actif (texte ou graphique). +------------------------------------------------------------------------------- +(Exemple) Locate 2,2,"String": + Text 16,1,"TextString": + +Dans ce cas, l'écran n'est pas rafraîchi automatiquement. Utilisez une commande de transfert comme PutDispDD pour envoyer le résultat du dessin à l'écran. + +------------------------------------------------------------------------------- +Lorsque [@] est ajouté à la fin du nom de commande, la VRAM courante est utilisée pour dessiner. + +(exemple) Text 1,1,"Graphic" + Locate @1,2,"Text" + +(Exemple) Locate 1,,"Text" + Locate @24,10,"Graphic" + +------------------------------------------------------------------------------- +Lescommandes suivantes supportent l'effacement (dessin blanc) et l'inversion des pixels si le paramètre [C] ou [X] est ajouté à la fin : + +Line +F-Line +Circle +Rect( +FillRect( +Ajoutez [C] pour effacer ou [X] pour inverser. +(Exemple) F-Line 1,1,30,20,X + +------------------------------------------------------------------------------- +Text [SHIFT]-[F4](SKTCH)-[F6]-[F6]-[F2](Text) +------------------------------------------------------------------------------- +(Format) Text [@][!]y,x,[##]"string"orExpression,[,N/O/R/V][,F/FM/FMB/M/MB/FX/X][,height] + [@] Le dessin est fait sur la VRAM courante + [!] Force l'utilisation de la police par défaut, même si une police externe est chargée + [##] accepte les caractères GB. + [%%] interdit de force la saisie de caractères GB. + [N] Normal + [R] Inversé (blanc sur noir) + [O] Or (noir sur fond transparent) + [V] Or inversé + [F] Pas fixe (fixation de l'espace 12 dots) + +(Exemple) Text 20,80,"Test",R +Affiche "Test" à la position (80,20) en blanc sur noir. + +(Exemple) Text 20,80, "Test" ,, F +   "Test" affiche une mini-police à pas fixe (fixation d'espace de 12 dots). +(Exemple) Text 20,80, "Test" ,, M +   "Test" est affiché avec une police minimini. +(Exemple) Text 20,80, "Test", MB +   "Test" est affiché avec une police minimini-bold. +(Exemple) Text 20,80, "Test", FM +   "Test" affiche une police de caractères minimini à pas fixe. +(Exemple) Text 20,80, "Test", FMB +   "Test" affiche une police de caractères de taille fixe, minimini et gras. +(Exemple) Text 20,80, "Test" ,, X +(Exemple) Text 20,80, "Test" ,, FX +   "Test" affiche une police de style minimini-fx 6x8. + +(Exemple) Text 20,80, "Test" ,,, 16 +affiché 16 dots par l'extrémité supérieure. +2 dots inférieurs ne sont pas affichés. + +------------------------------------------------------------------------------- +LocateYX [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F3](LocateYX) +------------------------------------------------------------------------------- +Affiche du texte sur l'écran graphique avec la même police que Locate. Les coordonnées sont identiques à Text, seule la police change. Le dernier paramètre optionnel [R] permet d'inverser la couleur. + +(Format) LocateYX [@][!]y,x,[##]"string"orExpression,[,N/O/R/V][,F][,height] + [@] Le dessin est fait sur la VRAM courante + [!] Force l'utilisation de la police par défaut, même si une police externe est chargée + [##] accepte les caractères GB. + [N] Normal + [R] Inversé (blanc sur noir) + [O] Or (noir sur fond transparent) + [V] Or inversé + [F] Pas fixe (fixation de l'espace 18 dots) + +(Exemple) LocateYX 20,80,"Test",R +Comme l'exemple précédent mais écrit en grand avec la police de Locate. + +------------------------------------------------------------------------------- +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) +------------------------------------------------------------------------------- +Affiche un rectangle. Les coordonnées sont en pixels. + +(Exemple) Rect 1,1,127,63 +Dessine le contour de l'écran. + +------------------------------------------------------------------------------- +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) +------------------------------------------------------------------------------- +Affiche un rectangle plein. Les coordonnées sont en pixels. + +(Exemple) FillRect 1,1,127,63 +Remplit l'écran. + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) +------------------------------------------------------------------------------- +Sauvegarde une partie de l'écran graphique dans une matrice. + +(Format) ReadGraph(px1,py1,px2,py2) -> Mat A + +Il n'est pas nécessaire de créer la matrice avant, la taille appropriée est allouée automatiquement. Si aucun type n'est indiqué dans le membre de droite pour l'assignmenent, la matrice est par défaut en 1-bit. + + +------------------------------------------------------------------------------- +WriteGraph [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F4](WriteGraph) +------------------------------------------------------------------------------- +Affiche une imagee. + +(Format 1) WriteGraph x,y,dx,dy,mat,N|R|M[,|X|O|A] + Affiche les contenus de la matrice de largeur dx et de hauteur dy à la position (x,y) sur l'écran graphique. + Avant-dernier paramètre : + [N] Normal + [R] Inversé + [M] Mesh + Dernier paramètre : + - Écraser ce qui est en-dessous + [X] Les pixels noirs inversent la couleur + [O] Les pixels blancs sont transparents + [A] Les pixels noirs sont transparents + +(Exemple) [[1,2,3,4,16,32,64,128]] -> Mat A + WriteGraph 80,20,8,8,Mat A,N + +(Format 2) WriteGraph x,y,dx,dy,mat[m,n],N|R|M[,|X|O|A] + Prend les données à partir de la cellule [m,n] de la matrice. + +(Exemple) [[16,32,64,128][128,64,32,16]] -> Mat A + WriteGraph 80,20,4,4,Mat A[1,1],N + WriteGraph 80,24,4,4,Mat A[2,1],N + +Dessine un symbole "<" en deux parties. La ligne suivante aurait le même effet : + +(Exempl) WriteGraph 80,20,4,8,Mat A,N + +Les bitmaps ont une largeur multiple de 8 bits, les bits de droite sont remplis avec des 0. +(mode g1m ci-dessus) + +(mode g3m) +*Seulement dans le cas d'un Mat / List 1 bit, cela devient le dessin monochromatique. +  Il devient le dessin couleur 16 bits autre que celui-ci. + +si vous avez besoin d'une couleur transparente, utilisez la commande Transp-Color. + +------------------------------------------------------------------------------- +DotGet( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F1](DotGet) +------------------------------------------------------------------------------- + (Exemple) DotGet( px1,py1, px2,py2)->Mat A[x,y] + Récupère la plage de (px1,py1)-(px2,py2) à l'écran à partir de Mat A [x,y]. +  Si le nombre de matrices est inférieur à la plage spécifiée, la taille de la matrice est importée. + +------------------------------------------------------------------------------- +DotPut( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F2](DotPut) +------------------------------------------------------------------------------- + (Exemple) DotPut( Mat A, x,y, px1,py1, px2,py2) + Mat A Commencez par l'élément (x, y) de la matrice et tracez un point dans l'intervalle (px1,py1)-(px2,py2). + + (Exemple) DotPut( Mat A[x,y], px1,py1, px2,py2)->Mat B + Mat A Copies dans la plage [x1,y1]-[x2,y2] de Mat B à partir de [x,y] de la matrice. + Si Mat B ne sécurise pas l'étendue de la plage de copie, copiez-le dans la plage correspondant à Mat B. + Il ne transfère pas à l'écran graphique. + + (Exemple) DotPut( Mat A[x,y], px1,py1, px2,py2) + Mat A Commencez par l'élément (x,y) de la matrice et tracez un point dans l'intervalle (px1,py1)-(px2,py2). + +------------------------------------------------------------------------------- +DotTrim( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F3](DotTrim) +------------------------------------------------------------------------------- + (Exemple) DotTrim(Mat A, x1,y1,x2,y2)->Mat B + Ceci est une entrée de coupe de Matt, + Coupez la zone rectangulaire des données non nulles dans la plage [X1,y1]-[x2,y2] de la matrice Mat et copiez-la dans la matrice Mat B. + Si la matrice à copier n'est pas sécurisée, elle est récemment allouée. + + (Exemple) DotTrim(px1,py1,px2,py2)->Mat A + Ceci est une entrée de découpe de l'écran graphique, + Découpez la zone rectangulaire dans laquelle les points du graphique (px1,py1)-(px2,py2) sont copiés dans la matrice Mat A + Dans les deux cas, la taille de la zone rectangulaire (taille sécurisée de la matrice Mat) est automatiquement entrée dans les variables X et Y. + Les coordonnées X,Y en haut à droite de la zone rectangulaire des données non nulles sont automatiquement entrées dans la variable minuscule x,y. + +------------------------------------------------------------------------------- +CellSum( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F5](CellSum) +------------------------------------------------------------------------------- + (Exemple) CellSum(Mat B[X,Y])->C + Calculez la valeur totale de 8 points autour de Mat B[X,Y]. + +------------------------------------------------------------------------------- +DotLife( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F4](DotLife) +------------------------------------------------------------------------------- + (Exemple) DotLife( Mat A, x1,y1,x2,y2)->Mat B + + +=============================================================================== +Autres commandes étendues +=============================================================================== +------------------------------------------------------------------------------- +KeyRow( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F5](KeyRow) +------------------------------------------------------------------------------- +Renvoie l'état du clavier. Bits renvoyés (en binaire) : + + bit6 bit5 bit4 bit3 bit2 bit1 + Row--------------------------------------Row + 09 F1 F2 F3 F4 F5 F6 09 + 08 SHIFT OPTN VARS MENU <- (up) 08 + 07 ALPHA ^2 ^ EXIT (dw) -> 07 + 06 XTT log ln sin cos tan 06 + 05 ab/c F<>D ( ) , -> 05 + 04 7 8 9 DEL 04 + 03 4 5 6 x div 03 + 02 1 2 3 + - 02 + 01 0 . EXP (-) EXE 01 + Row--------------------------------------Row + +(Exemple) KeyRow(9) +Quand [F4] et [F6] sont pressées au même moment, les bits 1 et 3 sont à 1, donc la valeur renvoyée est 10. + +------------------------------------------------------------------------------- +Ticks [VARS]-[F3](Extend)-[F1](Ticks) +------------------------------------------------------------------------------- +Timer à 1/128s. + +(Exemple) 0 -> Ticks +Initialise le timer interne, qui commence à compter. Le timer compte 128 fois par secondes et fait 32 bits. De plus, il est restoré à chaque passage de 24 heures. + +La valeur maximale est 24*60*60*128 -1 = 11059199. + +------------------------------------------------------------------------------- +Ticks% +------------------------------------------------------------------------------- +Timer à 1/32768s. + +(Exemple) 0 -> Ticks% +Initialise le timer interne. La valeur maximale est de 2^32-1 = 4294967295 et augmente 32768 fois par seconde. + +------------------------------------------------------------------------------- +TicksWait +------------------------------------------------------------------------------- +Attente en ticks (1/128s). Cette commande unifie "Ticks" et "Wait". + +(Exemple) TicksWait 128 +Attend une seconde. + +(Exemple) TicksWait -128 +Attend qu'une seconde se soit écoulée depuis le dernier appel à TicksWait. S'il s'est déjà écoulé plus d'une seconde, ne fait rien. + +(Exemple) TicksWait -4 +Attend que 4/128 seconde se soit écoulée depuis le dernier appel à TicksWait. Ajouter cette commande dans un boucle limite le programme à 32 FPS s'il est rapide mais ne le handicape pas s'il est lent. + +------------------------------------------------------------------------------- +Ticks%Wait +------------------------------------------------------------------------------- +Attente en 1/32768s. + +------------------------------------------------------------------------------- +DATE [VARS]-[F3](Extend)-[F3](DATE) +TIME [VARS]-[F3](Extend)-[F4](TIME) +------------------------------------------------------------------------------- +Lit ou écrit la date dans la RTC (horloge interne), le paramètre est une chaîne de caractères. + +(Exemple) "2017/01/17"->DATE +(Exemple) DATE // 2017/01/17 TUE + +(Exemple) "23:59:59"->TIME +(Exemple) TIME // 23:59:59 + +------------------------------------------------------------------------------- +Disp [SHIFT]+[VARS](PRGM)-[F6]-[F2](DISPLAY)-[F6](Disp) +------------------------------------------------------------------------------- +Affiche le résultat sans attendre un EXE (contrairement au Disp usuel). Scrolle automatiquement. + +(Exemple) Disp A+B + +------------------------------------------------------------------------------- +BackLight [VARS]-[F3](Extend)-[F5](BackLight) +------------------------------------------------------------------------------- +Réglage ou lecture du niveau de rétroéclairage. +(format) Niveau de rétroéclairage + niveau: 0 ~ 511 (0 ~ 255: sous-niveau +256: niveau principal) +(format) + rétro-éclairage + Lire le niveau du rétro-éclairage actuel. + +------------------------------------------------------------------------------- +RefrshCtrl [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F1](RefrshCtrl) +RefrshTime [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F2](RefrshTime) +------------------------------------------------------------------------------- +Ces commandes contrôlent le rafraîchissement périodique de l'écran. + +(Exemple) RefreshCtrl 0 +Aucun rafraîchissement périodique. + +(Exemple) RefreshCtrl 1 +Le rafraîchissement est automatique ; seul l'écran graphique est affiché. + +(Exemple) RefreshCtrl 2 +Le rafraîchissement est automatique pour les deux écrans (texte et graphique). + +(Exemple) RefreshTime 5 +Configure l'intervalle de rafraîchissement à 5/128s. + +(Format) +RefreshCtrl +(Format) +RefreshTime +Renvoie la valeur de ces deux paramètres. (Une erreur se produit si ces commandes sont situées en tout début d'expression.) + +------------------------------------------------------------------------------- +Screen [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F1](Screen) +------------------------------------------------------------------------------- +Sélectionne un mode d'affichage et une VRAM cible. + +(Format 1) Screen +Échange écrans texte et graphique. + +(Format 2) Screen.T ou Screen.t +Passe à l'écran texte. + +(Format 3) Screen.G ou Screen.g +Passe à l'écran graphique. + +(Format 4) Screen 0 ou Screen 1 +0: VRAM texte +1: VRAM graphique + +Pour convertir les coordonnées à l'écran et sur le graphe : + +(Usage) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +Renvoie une valeur dans List Ans (deux éléments). + +(Exemple) Screen#1,1,-6.3,6.3,-3.1,3.1 +Le résultat est List Ans={74,22}. (g1m) +Le résultat est List Ans={220,64}. (g3m) + +Pour convertir des coordonnées du graphe à celle de l'écran : + +(Usage) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +Renvoie une valeur dans List Ans (deux éléments). + +(Exemple) Screen%74,22,-6.3,6.3,-3.1,3.1 +Le résultat est List Ans={1,1}.(g1m) + +Option Screen.OT ajoutée. + +composer du texte VRAM et des graphiques VRAM display LCD. +(format) Screen.O +La VRAM texte devient l'écran synthétique avec la VRAM graphique au moment du transfert de l'écran LCD. +(format) Screen.OT +VRAM ne vient pas à changer après le transfert d'écran LCD. +(format) Screen.N +mode normal + +------------------------------------------------------------------------------- +PutDispDD [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F2](PutDispDD) +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +Rafraîchit l'écran. +(format 1) PutDispDD +(format 1) _DispVram +(*)Attention +  Une zone de transfert est différente de PutDispDD dans la commande _DispVram. +  PutDispDD: plage de transfert (0,0) - (383,191) Ce sont des spécifications compatibles avec genuine. +  _DispVram: la plage de transfert (0, -24) - (383, 191) inclut une ligne d'état supérieure. + +(format 2) PutDispDD @ début, fin +(format 2) _DispVram @ ligne de début, ligne de fin +  La plage de la ligne va du haut (-24) au bas (191). +  Les deux font le même mouvement. +(exemple) PutDispDD @ 0,23 +  ne transfère que la première ligne de Locate. + +------------------------------------------------------------------------------- +PopUpWin( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F5](PopUpWin) +------------------------------------------------------------------------------- +Affiche une popup sur la VRAM courante. + +(Usage) PopUpWin(n) // 1 <= n <= 6 +(Exemple) PopUpWin(5) + +Pour afficher un message sur la popup : + +(Exemple) PopUpWin(11,"Message1"[,"Message2"])->A +Renvoie toujours 1. + +Pour afficher une popup de sélection Oui/Non : +(Exemple) PopUpWin(10,"Message1"[,"Message2"])->A +Renvoie 1 pour Oui et 0 pour Non. + +PopUpWin(0) se comporte comme SaveDisp() et sauvegarde l'écran dans un mémoire temporaire. PopUpWin(9) restaure l'écran sauvegardé par PopUpWin(0), comme le ferait RestoreDisp(). + +------------------------------------------------------------------------------- +FKeyMenu( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F4](FKeyMenu) +------------------------------------------------------------------------------- +Affiche un menu à onglets sur la VRAM courante. +"chaîne" effectue un centrage automatique. (0.45-) + +(Format)FKeyMenu( n[~m], "string"/Icon [,C/M/N/R/I/S/U/L [,FKey icon color [,Fkey back color]]]] ) + - Les arguments 3ème ou plus tard peuvent être omis. + - "," sont nécessaires même si l'argument est omis. + - La couleur par défaut de l'icône FKey est noire et la couleur arrière FKey est blanche. + +L'ordre du 3e argument est arbitraire. +  C: icône claire. +  M: icône masqué. +  N: icône blanche normale. (par défaut) +  R: icône noire avec encoche en bas à droite. +  I: icône noire sans encoche en bas à droite. +  S: icône noire sans encoche en bas à droite indiquant la sélection. +  U: afficher 1 point supérieur. +  L: étendre la zone d'affichage « chaîne » de 2 points à gauche. + +(Exemple) FKeyMenu (1,42) + Dessiner l'icône EDIT à la position [F1]. +(Exemple) FKeyMenu (1,42,,Bleu ) + L'icône EDIT bleue est dessinée dans la zone de menu de la première fonction. +(Exemple) FKeyMenu (1,42,,Red ,Blue ) + L'icône EDIT bleue avec fond rouge est dessinée dans la zone de menu de première fonction. +(Exemple) FKeyMenu (2,"ABCDE",RUL) + "ABCDE" est affiché dans l'icône noire dans la zone de menu de la deuxième fonction. +(Exemple) FKeyMenu (3~4,"longstrings",RGB(255,0,0)) + Le "longstrings" est affiché en rouge avec l'icône blanche dans les zones de menu de la troisième à la quatrième fonction. +(Exemple) FKeyMenu (4,"Mask",M) + L'icône masquée s'affiche dans la zone de menu de la quatrième fonction. +(Exemple) FKeyMenu (2,"",C) + Effacer le menu de la deuxième fonction +(Exemple) FKeyMenu (1~6,"",C) + Effacer les menus de première à sixième fonction. + +------------------------------------------------------------------------------- +Save [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F2](Save) +Load( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F3](Load) +------------------------------------------------------------------------------- +Sauvegarde et recharge des données de matrices. + +(Exemple) Save "TEST",Mat A +(Exemple) Load("TEST")->Mat A +Sauvegarde les contenus de la matrice A et les relit. Si l'extension n'est pas spécifiée, [.bin] est utilisé par défaut. + +(Exemple) Save "TEST", Mat A[5,1] +Sauvegarde toute la matrice à partir de la cellule 5,1. + +(Exemple) Load("TEST", 16) -> Mat A[10,1] +Charge 16 octets de données dans la matrice en partant de la cellule 10,1. + +------------------------------------------------------------------------------- +IsExist( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F1](IsExist) +------------------------------------------------------------------------------- +Teste si un fichier existe. Renvoie sa taille s'il existe, 0 sinon. + +(Exemple) IsExist("/ABC/TEST") +Renvoie la taille de "/ABC/TEST.bin" s'il existe, 0 sinon. + +Quand l'extension n'est pas spécifiée, ".bin" est ajouté automatiquement. L'exemple précédent teste donc l'existence de "/ABC/TEST.bin" et non "/ABC/TEST". + +On peut également faire une recherche de fichiers par wildcard. + +(Format) IsExist(wildcard) -> nombre de fichiers trouvés +(Exemple) IsExist("*.bmp") -> N + $Mat Ans[3] +Affiche le nom du 3ème fichier bitmap trouvé. La valeur de retour (ici N) est le nomre de fichiers trouvés. + +------------------------------------------------------------------------------- +Delete [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F4](Delete) +------------------------------------------------------------------------------- +Supprime un fichier. Si l'extension n'est pas spécifiée, ".bin" est ajouté automatiquement. + +(Exemple) Delete "TEST.dat" + +(Exemple) Delete "TEST.dat",1 +Demande confirmation avant de supprimer. + +------------------------------------------------------------------------------- +Alias [OPTN]-[F5](Extend)-[F1](Alias) +------------------------------------------------------------------------------- +Définit des alias entre noms de variables. N'importe quel caractère peut être utilisé comme alias d'une variable. + +(Exemple) Alias A=α + α+100->α +Après avoir déclaré l'alias, le nom "α" est devenu un alias pour la variable A ; il y a désormais deux noms mais toujours une seule variable. L'expression ci-dessus est équivalente à A+100->A. + +(Exemple) Alias Mat A=α + Mat α[1]+100->Mat α[1] +De même, cette commande est équivalente à Mat A[1]+100->Mat A[1] + +(Exemple) Alias Lbl A=α + Lbl α + Goto α + Gosub α + +(Exemple) Alias a=_abc_de + Alias Mat a=_abcXY + _abc_de+1->_abc_de + Mat _abcXY[1,2]+1->Mat _abcXY[1,2] + +(Exemple) ALias Lbl A=_Sub1 + Lbl _Sub1 + Goto _Sub1 + Gosub _Sub1 + +------------------------------------------------------------------------------- +Wait [VARS]-[F3](Extend)-[F2](Wait) +------------------------------------------------------------------------------- +Réduit la vitesse d'exécution globale. Ce paramètre peut également être configuré par le menu Configuration (Setup), auquel cas il affecte tous les programmes. + +(Exemple) Wait 100 +L'effet est sensiblement indépendant de la distinction SH3/SH4. + +Wait 10 divise environ la vitesse par 2. +Wait 100 divise environ la vitesse par 10. + + +------------------------------------------------------------------------------- +ListCmp( [OPTN]-[F1](LIST)-[F6]-[F6]-[F5](Cmp) +------------------------------------------------------------------------------- +Compare deux listes ou une liste et une valeur. + +(Exemple) ListCmp({1,2,3},{1,2,3}) // 1 +(Exemple) ListCmp({1,2,3},{1,3}) // 0 +(Exemple) ListCmp({1,2,3},{1,3,2}) // 0 +(Exemple) ListCmp({1,2,3},2) // 1 +(Exemple) ListCmp({1,2,3},4) // 0 + + +=============================================================================== +Manipulation étendue de chaînes de caractères +=============================================================================== +------------------------------------------------------------------------------- +StrLen(@ [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F2](Len) +------------------------------------------------------------------------------- +L'option "@" permet de calculer la longueur en octets et non en symboles. + +(Exemple) StrLen(@"ABCDE") +(Exemple) StrLen(@Str 1) + +------------------------------------------------------------------------------- +StrRepl( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F5](StrRepl) +------------------------------------------------------------------------------- +Rechercer et remplacer. + +(Format) StrRepl(source, recherche, remplacement, position de début) +(Exemple) StrRepl("Hello World","World","Earth") -> "Hello Earth" +(Exemple) StrRepl("abcabc","ab","ff",3) = "abcffc" +(Exemple) StrRepl("abcabc","ab","ff") = "ffcffc" + +------------------------------------------------------------------------------- +StrChar( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](Char) +------------------------------------------------------------------------------- +Génère ou répète des caractères. + +(Exemple) StrChar("ABC",5) // "ABCABCABCABCABC" +(Exemple) StrChar(0x41,5) // "AAAAA" + +------------------------------------------------------------------------------- +StrCenter( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F2](Center) +------------------------------------------------------------------------------- +(Format) StrCenter(source, longueur, caractère de remplissage) + +(Exemple) StrCenter("Test",8) // " Test " +(Exemple) StrCenter("Test",8,"*") // "**Test**" + +------------------------------------------------------------------------------- +Hex( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F4](Hex) +------------------------------------------------------------------------------- +Conversion en chaîne de caractères au format hexadécimale. + +(Exemple) Hex(12345)->Str 1 // "3039" + Exp("0x"+Str 1)->A // 12345 + +------------------------------------------------------------------------------- +Bin( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F5](Bin) +------------------------------------------------------------------------------- +Conversion en chaîne de caractères au format binaire. + +(Exemple) Bin(12345)->Str 1 // "11000000111001" + Exp("0b"+Str 1)->A // 12345 + +------------------------------------------------------------------------------- +StrBase( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F3](Base) +----------------------------------------------------------------------- +Conversion de base pour des chaînes de caractères. + +(Format) StrBase(chaîne de caratères, base d'entrée, base de sortie) +Les bases autorisées sontentre 2 et 64. Les caractères utilisés sont : + + 0-9 A-Z a-z θ π + +(Exemple) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + +------------------------------------------------------------------------------- +StrSplit( [SHIFT]+[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6]F6]-[F1](StrSplit) +------------------------------------------------------------------------------- +Sépare une chaîne de caractères à chaque occurrence d'un séparateur, et stocke le résultat dans la matrice Ans.4 + +(Format) StrSplit(source, délimiteur[, position de départ]) + +(Exemple) StrSplit("123,4567,89",",") +La matrice Ans devient ["123", "4567", "89"]. Les mots individuels peuvent être lus de la façon suivante : + $Mat Ans[1]="123" + $Mat Ans[2]="4567" + $Mat Ans[3]="89" + +------------------------------------------------------------------------------- +StrAsc( [Shift]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](StrAsc) +------------------------------------------------------------------------------- +Renvoie la valeur (ASCII) du première caractère d'une chaîne. + +(Exemple) StrAsc("Ascii") // 65 (0x41), la valeur de 'A' + +------------------------------------------------------------------------------- +StoCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F1] (Store) (ne fonctionne pas en mode g3m) +RclCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F2] (Recall) +------------------------------------------------------------------------------- +Écrit ou charge des Pictures dans la mémoire de stockage. Jusqu'à 99 Picture peuvent être utilisées. + +(Exemple) StoCapt 20 +(Exemple) RclCapt 20 + +La taille des fichiers est désormais de 1 ko au lieu de 2 ko.(g1m mode) + + +=============================================================================== +Autres commendes étendues +=============================================================================== +La notation '/ permet de mettre des commandes C.Basic dans des commentaires (en Basic, tout ce qui commence par ' est un commentaire). L'interpréteur Basic Casio n'exécutera pas les commandes, mais C.Basic les exécutera. + +(Exemple) '/Ticks->S + '/Ticks-S->T +Mesure un délai de temps quand le programme est lancé dans C.Basic, mais ne fait rien dans l'interpréteur Basic Casio. + +------------------------------------------------------------------------------- +Commentaire étendu '# +------------------------------------------------------------------------------- +Cette syntaxe permet de modifier les paramètres de C.Basic à l'aide de commenaires. + +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +'#CBINT +'#CBint +'#G1M +'#g1m +'#G3M +'#g3m +Ces commandes permettent de changer le mode d'exécution (traité au début de ce manuel). + +'#Break0 // Désactive l'interruption par [AC/ON] +'#Break1 // Active l'interruption par [AC/ON] (comportement par défaut) + +'#Mat 0 // Les indices de matrices commencent à 0 +'#Mat 1 // Les indices de matrices commencent à 1 (comportement par défaut) + +'#GetKeyC // Ne pas réinitialiser le timer à chaque appel de GetKey1/2 (comportement par défaut) +'#GetKeyR // Réinitialiser le timer à chaque appel de Getkey1/2 + +'#exp 0 // affichage précédent de l'exponet. +'#exp 1 // Affichage des exposants OS3.00 par la police standard uniquement. +'#exp 2 // OS3.00 affiche les exposants pour toutes les tailles de police. (défaut) + +'# GB0 // n'utilise pas de code GB. (défaut) +'# GB1 // utilise le code GB sauf les codes F7xx, F9xx, E5xx, E6xx, E7xx qui se chevauchent avec une commande / un caractère spécial. +'# GB2 // utilise tout le code GB. + +'# 58 // sortie compatible fx-5800P. +'# 98 // Sortie compatible série fx-9860G / CG. (défaut) + +=============================================================================== +Commandes matérielles supplémentaires +=============================================================================== +C.Basic peut exécuter un programe SH3/SH4A natif dans la mémoire. Ces programmes ne doivent pas corrompre C.Basic, toutefois le tableau de matrices peut être utilisé librement. Les adresses peuvent être obtenues par VarPtr() ou l'opérateur d'adressage &. L'opérateur * du C existe aussi dans C.Basic. + +------------------------------------------------------------------------------- +SysCall( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F1](SysCall) +------------------------------------------------------------------------------- +Appelle un syscall. Jusqu'à 4 arguments peuvent être spécifiés ; c'est optionnel. + +(Format) SysCall(numéro [,arg1][,arg2][,arg3][,arg4][,arg5][,arg6][,arg7][,arg8][,arg9][,arg10][,arg11][,arg12]) + +(Exemple) Screen.G + SysCall(0x1D0,1,8,127,63)->R + +Le syscall 0x1D0 dessine un rectangle sur l'écran. Les quatre paramètres r4..r7 sont égaux à 1,8,127,63 respectivement. R reçoit la valeur de retour du syscall. + +------------------------------------------------------------------------------- +Call( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F2](Call) +------------------------------------------------------------------------------- +Exécute un programme natif à n'importe quelle adresse. Jusqu'à 4 arguments (optionnels peuvent être spécifiés). + +(Format) Call(adressse [,arg1][,arg2][,arg3][,arg4]) +(Exemple) Call(0x8802f0000,A,B,C,D)->R + +La routine à l'adresse 0x8802f000 est appelée avec pour paramètres r4=A, r5=B, r6=C, r7=D. Sa valeur de retour est stockée dans R. + +------------------------------------------------------------------------------- +Peek( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F4](Peek) +------------------------------------------------------------------------------- +Lit des données en mémoire. Quand la taille n'est pas spécifiée par l'utilisation de [.B], [.W], [.L] ou [.F], le comportement par défaut est de lire 1 octet. + +(Format) Peek(adresse)[.B|.W|.L|.F] +(Format) *(addresse)[.B|.W|.L|.F] + +(Exemple) Peek(0x8802E000).B -> A% +(Exemple) *(0x8802E000).B -> A% +Charge dans A% 1 octet de données (byte) lu à l'adresse 0x8802E000. + +(Exemple) Peek(0x8802E000).W -> A% +(Exemple) *(0x8802E000).W -> A% +Charge dans A% 2 octets de données (word) lus à l'adresse 0x8802E000. + +(Exemple) Peek(0x8802E000).L -> A% +(Exemple) *(0x8802E000).L -> A% +Charge dans A% 4 octets de données (longword) lus à l'adresse 0x8802E000. + +(Exemple) Peek(0x8802E000).F -> A +(Exemple) *(0x8802E000).F -> A +Charge dans A% 8 octets de données (flottant double précision) lus à l'adresse 0x8802E000. + +------------------------------------------------------------------------------- +Poke( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F3](Poke) +------------------------------------------------------------------------------- +Écrit des données dans la mémoire. QUand la taille n'est pas spécifiée au moyen de [.B], [.W], [.L] ou [.F], le comportement par défaut est d'écrire 1 octet. + +(Format 1) Poke(adresse)[.B|.W|.L|.F], valeur +(Format 1) *(adresse)[.B|.W|.L|.F], valeur) +(Format 2) Data->Poke(adresse)[.B|.W|.L|.F] +(Format 2) Data->*(adresse)[.B|.W|.L|.F]) + +(Exemple) Poke(0x8802E000).B,A% +(Exemple) A%->Poke(0x8802E000).B +(Exemple) A%->*(0x8802E000).B + +(Exemple) Poke(0x8802E000).W,A% +(Exemple) A%->Poke(0x8802E000).W +(Exemple) A%->*(0x8802E000).W + +(Exemple) Poke(0x8802E000).L,A% +(Exemple) A%->Poke(0x8802E000).L +(Exemple) A%->*(0x8802E000).L + +(Exemple) Poke(0x8802E000).F,A +(Exemple) A->Poke(0x8802E000).F +(Exemple) A->*(0x8802E000).F + +------------------------------------------------------------------------------- +VarPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F1](VarPtr) +------------------------------------------------------------------------------- +Renvoie l'adresse d'une variable. + +(Format 1) VarPtr(variable) +(Format 2) &(variable) + +(Exemple) VarPtr(A%) +(Exemple) &A% +Renvoie l'adresse de la version entière de A. + +(Exemple) VarPtr(Mat A) +(Exemple) &Mat A +Renvoie l'adresse de début de la matrice A. + +(Exemple) VarPtr(Mat A[20,10]) +(Exemple) &Mat A[20,10] +Renvoie l'adresse de la cellule Mat A[20,10] de la matrice A. + +------------------------------------------------------------------------------- +ProgPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F2](ProgPtr) +------------------------------------------------------------------------------- +Renvoie l'adresse de début du code du programme. + +(Exemple) ProgPtr() + + +=============================================================================== +Fonctions graphiques étendues : MonochromeLib +=============================================================================== +Les fonctions graphiques de MonochromeLib (par PierrotLL) sont disponibles. Elles agissent toujours sur la VRAM courante et utilisent le système de coordonnées (0,0) -- (127,63). Il est nécessaire d'appeler PutDispDD ou _DispVRAM pour afficher le résultat de ces fonctions. +------------------------------------------------------------------------------- +MonochromeLib de PierrotLL: +https://wiki.planet-casio.com/fr/MonochromeLib +Référez-vous au manuel de MonochromeLib pour de plus amples détails. +------------------------------------------------------------------------------- +Codes couleurs : + -1 transparent + 0 blanc + 1 noir + 2 xor (inverseur) + 3 damier + 4 aléatoire + 5 mélanges entre la couleur de dessin et la couleur de l'écran. (Voir ci-dessous) + +Des nouvelles couleurs permettant de contrôler la densité de pixels ont été ajoutées. Le principe des couleurs 11, 12, 13 et 14 est qu'elles restreignent quels pixels peuvent être allumés. + +Couleur : 10 11 12 13 14 (2x2 dot matrix by 1dot width) +Couleur : 20 21 22 23 24 (2x2 dot matrix) + oo *o *o ** ** + oo oo o* *o ** + +Par exemple, la couleur 13 est définie par le schéma suivant : + + ** < ligne impaire + *o < ligne paire + +Cela signifie que sur les lignes impaires, tous les pixels seront dessinés, mais sur les lignes paires, seul un pixel sur deux sera dessiné. La couleur 14 est donc équivalente au noir. + +Le principe des couleurs 21, 22, 23, 24 est que le petit schéma sert de brosse. Prenons la couleur 22 qui possède le même schéma que la couleur 12 : + + *o < ligne impaire + o* < ligne paire + +Si on tente d'afficher un pixel en (10,10), le schéma de taille 2*2 sera dessiné à l'écran, ce qui allumera les pixels (10,10) ET (11,11). Si on dessine un (11,11), cela allume exactement les mêmes pixels car la brosse s'aligne toujours sur la grille. + +Les couleurs 10 et 20 ne dessinent rien. + +Démonstration de ces couleurs ici : +https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14738&page=last#163470 + +(Exemple) _FillCircle 64,32,30,21 + +Une couleur aléatoire a été ajoutée. +(Usage) x, y... couleur, probabilité + +(Exemple) _Rectangle 0,0,127,63,0,0,4,0,5 +(Exemple) _Rectangle 0,0,127,63,0,0,4,%50 +Remplit l'écran de pixels aléatoires indépendants. La couleur est noire avec probabilité 50%. + +(Exemple) _FillCircle #0,0,3,4,0.5 +Dessine un disque de rayon 3; chaque pixel du disque est aléatoire avec 50% de probabilité d'être noir. + +(Exemple) _Rectangle 0,0,127,63,0,0,4,%10 +Cette fois seul un pixel sur 10 en moyenne est noir. + + +(* Couleur: 5 mélanges) +La transparence a été ajoutée dans la spécification des Couleurs des paramètres de la commande ML. (v0,32-) +Il composite et affiche la Couleur de dessin de la commande et de l'écran. +(Format) _Pixel x, y, taux (taux 0,0 à 1,0) +(Format) _Pixel x, y, %taux (%taux 0 à 100) +(Exemple) Red _Pixel x, y, 5, %50 +(Exemple) Red _Pixel x, y, 5, 0,5 +Dessinez en combinant la couleur de l'écran et 50% rouge. + +------------------------------------------------------------------------------- +Pour dessiner à l'aide des coordonnées ViewWindow et non les coordonnées de l'écran, ajoutez '#' devant les coordonnées. + +Fonctions de MonochromeLib supportant ce mode de coordonnées : + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + +(Exemple) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2,1 + +------------------------------------------------------------------------------- +_ClrVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F1](_ClrVram) +------------------------------------------------------------------------------- +Efface la VRAM. + +------------------------------------------------------------------------------- +_ClrScreen [SHIFT]-[F4](SKTCH)-[F3](ML)-[F2](_ClrScreen) +------------------------------------------------------------------------------- +Efface l'écran. + +------------------------------------------------------------------------------- +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +Affiche les contenus de la VRAM à l'écran. + +------------------------------------------------------------------------------- +_Pixel [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F1](_Pixel) +------------------------------------------------------------------------------- +(Format) _Pixel x,y,couleur[,probabilité] +Change la couleur du pixel dans la VRAM. + +------------------------------------------------------------------------------- +_Point [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F2](_Point) +------------------------------------------------------------------------------- +(Format) _Point x,y,taille,couleur[,probabilité] +Affiche un point carré dans la VRAM, de côté , centrée en (x,y). + +(Example) _Point 10, 10, 3, 1 +Affiche un rectangle de (9,9) à (11,11) inclus. + +------------------------------------------------------------------------------- +_PixelTest( [SHIFT]-[F4](SKTCH)-[F3](ML)-[F4](_PixelTest) +------------------------------------------------------------------------------- +(Format) _PixelTest(x,y) + +Renvoie la couleur du pixel aux coordonnées (x,y) dans la VRAM. + -1 Hors de l'écran + 0 Blanc + 1 Noir + +------------------------------------------------------------------------------- +_Line [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F3](_Line) +------------------------------------------------------------------------------- +(Format) _Line X1,Y1,X2,Y2,couleur[,probabilité][,largeur] + +Dessine une ligne de (x1,y1) à (x2,y2) en utilisant l'algorithme de Bresenham. + +(Exemple) _Line 0,0,127,63,1,,10 + +------------------------------------------------------------------------------- +_Horizontal [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F4](_Horizontal) +------------------------------------------------------------------------------- +(Format) _Horizontal y,x1,x2,couleur[,probabilité] + +Dessine une ligne horizontale. Beaucoup plus rapide que _Line avec y1=y2. + +------------------------------------------------------------------------------- +_Vertical [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F5](_Vertical) +------------------------------------------------------------------------------- +(Format) _Vertical x,y1,y2,couleur[,probabilité] + +Dessine une ligne verticale. Plus rapide que _Line avec x1=x2. + +------------------------------------------------------------------------------- +_Rectangle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F1](_Rectangle) +------------------------------------------------------------------------------- +(Format) _Rectangle x1,y1,x2,y2,largeur de la bordure, couleur de la bordure, couleur de remplissage[,probabilité][,angle en degrés][,centre_X][,centre_Y][,zoom] + +Dessine un rectangle avec ou sans bordure (pour éliminer la bordure, indiquez une largeur de 0). La couleur de la bordure et du rectangle peuvent être différentes. +Si [centre_X][centre_Y] sont omis, le centre de l'image dessinée est spécifié. + +------------------------------------------------------------------------------- +_Polygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F2](_Polygon) +------------------------------------------------------------------------------- +(Format) _Polygon *sommets_x, *sommets_y, nombre de sommets, couleur[,probabilité][,angle en degrés][,centre_X][,centre_Y][,zoom] + +Dessine le contour d'un polygone. Cette fonction prend deux tableaux en paramètre, un contenant les abscisses des sommets, et l'autre les ordonnées. Le troisième paramètre indique le nombre de sommets, le quatrième donne la couleur du tracé. + +Cette fonction dessine une ligne entre chaque paire consécutive de sommets. + +(Exemple) [[60, 75, 70, 50, 45]]->Mat X.L + [[20, 30, 45, 45, 30]]->Mat Y.L + Screen.G + _ClrVRAM + _Polygon VarPtr(Mat X), VarPtr(Mat Y), 5, 1); + _DispVRAM + +Notes que l'on aurait pu utiliser l'opérateur d'adressage : + +_Polygon &Mat X, &Mat Y, 5, 1 + +------------------------------------------------------------------------------- +_FillPolygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F3](_FillPolygon) +------------------------------------------------------------------------------- +(Format) _FillPolygon *sommets_x, *sommets_y, nombre de sommets, couleur[,probabilité][,angle en degrés][,centre_X][,centre_Y][,zoom] + +Comme _Polygon, mais remplit le polygone au lieu d'en tracer les countours. + +------------------------------------------------------------------------------- +_Circle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F4](_Circle) +------------------------------------------------------------------------------- +(Format) _Circle x, y, rayon, couleur[,probabilité] +Dessine un cercle centré en (x,y) en utilisant l'algorithme de Bresenham. + +C.Basic permet de tracer des arcs de cercles avec _Circle : + +(Format) _Circle x,y,rayon,couleur[,probabilité][,largeur][,angle de début][,angle de fin][,sommets] + +(Exemple) _Circle 64,32,20,4,0.5,3 + Cercle de largeur 3, chaque pixel est noir avec probabilité 50%. +(Exemple) _Circle 64,32,20,1,,3,0,90 + Dessine un quart de cercle d'épaisseur 3 pixels. +(Exemple) _Circle 64,32,20,1,,,0,360,5 + Dessine un cercle approximé par 5 points, c'est-à-dire un pentagone. +(Exemple) _Circle 64,32,20,1,,,20,380,5 + Dessine aussi un pentagone, mais tourné de 20°. + +------------------------------------------------------------------------------- +_FillCircle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F5](_FillCircle) +------------------------------------------------------------------------------- +(Format) _FillCircle x, y, rayon, couleur[,probabilité] + +Comme _Circle, mais remplit le cercle. + +------------------------------------------------------------------------------- +_Elips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F1](_Elips) +------------------------------------------------------------------------------- +(Format) _Elips x, y, rayon1, rayon2, couleur[,probabilité][,angle en degrés] + +Dessine une ellipse centrée en (x,y) de rayon horizontal et de rayon vertical : +* est la distance entre le centre et le point extrême gauche de l'ellipse. +* est la distance entre le centre et le point extrême haut de l'ellipse. +Utilise l'algorithme de Bresenham. + +------------------------------------------------------------------------------- +_FillElips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F2](_FillElips) +------------------------------------------------------------------------------- +(Format) _FillElips x, y, rayon1, rayon2, couleur[,probabilité][,angle en degrés] + +Comme _Elips, mais remplit l'ellipse au lieu d'en dessiner le contour. + +------------------------------------------------------------------------------- +_ElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F3](_ElipsInRct) +------------------------------------------------------------------------------- +(Format) _ElipsInRct x1, y1, x2, y2, couleur[,probabilité][,angle en degrés] + +Cette fonction dessine une ellipse inscrite dans le rectangle indiqué. + +------------------------------------------------------------------------------- +_FElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F4](_FElipsInRct) +------------------------------------------------------------------------------- +(Format) _FElipsInRct x1, y1, x2, y2, couleur[,probabilité][,angle en degrés] + +Comme _ElipsInRct, mais remplit l'ellipse inscrite au lieu d'en dessiner le contour. + +------------------------------------------------------------------------------- +_Hscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F1](_Hscroll) +------------------------------------------------------------------------------- +(Format) _Hscroll n[,x1,y1,x2,y2] + +Décale tous les pixels de la VRAM vers la gauche (n<0) ou vers la droite (n>0). Par exemple, lorsque scroll=5, le pixel en (2,3) se trouve déplacé en (7,3). + +Naturellement, un n négatif déplace l'écran vers la gauche. Les oixels qui sortent par un côté de l'écran réapparaissent de l'autre côté. + +Vous pouvez spécifier la zone de défilement. +(Exemple) _Hscroll 1,32,16,47,95 + +------------------------------------------------------------------------------- +_Vscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F2](_Vscroll) +------------------------------------------------------------------------------- +(Format) _Vscroll n[,x1,y1,x2,y2] + +Comme _Hscroll, mais verticalement. + +------------------------------------------------------------------------------- +_Bmp [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F1](_Bmp) +------------------------------------------------------------------------------- +(Format) _Bmp *bmp, x, y, largeur, hauteur [,O|A|X][,C] + +Affiche une image bitmap à l'écran. Très utile pour dessiner tiles et sprites dans les jeux. Le cinquième paramètre (optionnel) indique le mode de dessin. + [O] Or: noir opaque, blanc transparent + [A] And: blanc opaque, noir transparent + [X] Xor: blanc transparent, noir inverse + [C] Active le clipping (autorise l'image à dépasser de l'écran) (avec clair (g3m) + +(Exemple) +[[0,0,1,1,1,1,0,0] + [0,1,1,1,1,1,1,0] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,0,1,1,1,1,0] + [0,1,1,0,0,1,1,0] + [0,0,1,1,1,1,0,0]]->MatB.P // + _Bmp VarPtr(Mat B), 8, 16, 8, 8, O + +(*)Seulement dans le cas d'un Mat / List 1 bit, cela devient le dessin monochromatique. +  Il devient le dessin couleur 16 bits autre que celui-ci. + +------------------------------------------------------------------------------- +_Bmp8 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F2](_Bmp8) +------------------------------------------------------------------------------- +(Format) _Bmp8 *bmp, x, y [,O|A|X][,C] + +Cas particulier de _Bmp optimisé pour les bitmaps de taille 8*8. + +(Exemple) + [[60, 126, 251, 253, 253, 255, 126, 60]]->Mat B.B + _Bmp &Mat B, 8, 16, A + +------------------------------------------------------------------------------- +_Bmp16 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F3](_Bmp16) +------------------------------------------------------------------------------- +(Format) _Bmp16 *bmp, x, y [,O|A|X][,C] + +Cas particulier de _Bmp optimisé pour les bitmaps de taille 16*16. + +------------------------------------------------------------------------------- +Fonctions supplémentaires pour MonochromeLib +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +BmpLoad( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F1](BmpLoad) +BmpSave [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F2](BmpSave) +------------------------------------------------------------------------------- +Affiche directement des fichiers .bmp depuis la mémoire (seul le format noir et blanc 1-bit est supporté). + +(Exemple) BmpLoad("TEST"),20,10 + Affiche "TEST.bmp" à la position (20,10). + +(Exemple) BmpSave "TEST",10,20,100,50 + Sauvegarde le rectangle (10,20) -- (100,50) de la VRAM dans "TEST.bmp". + +(Exemple) BmpSave "TEST",Mat A + Sauvegarde la matrice A dans "TEST.bmp" dans le dossier courant. + +(Exemple) BmpLoad("TEST")->Mat A + Charge le bitmap "Test.bmp" dans la matrice A. + +------------------------------------------------------------------------------- +DrawMat [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F3](DrawMat) +------------------------------------------------------------------------------- +Dessine un bitmap stocké dans une matrice. + +(Format) DrawMat Mat A[m,n], px, py, largeur, hauteur [,largeur après zoom][,hauteur après zoom][,couleur][,probabilité] + +(Exemple) DrawMat Mat A, 0, 0, 128, 64 +(Exemple) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + +La matrice lue par BmpLoad peut être utilisée. + +------------------------------------------------------------------------------- +_BmpZoom [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F4](_BmpZoom) +_BmpRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F5](_BmpRotate) +_BmpZmRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F4](_BmpZmRotate) +------------------------------------------------------------------------------- +Zoom et rotations sur des bitmaps, utilisant l'extension de Ninestars sur Planète Casio. + +(Format) _BmpZoom &Mat A, x, y, largeur, hauteur [,largeur après zoom][,hauteur après zoom][,couleur][,probabilité] +(Format) _BmpRotate &Mat A, x, y, largeur, hauteur [,angle en degrés][,couleur][,probabilité] +(Exemple) _BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 +(Exemple) _BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 +(Exemple) _BmpRotate &Mat A, 0, 0, 20, 10, 45 + +(Format) _BmpZoomRotate &Mat A, x, y, largeur, hauteur [,angle en degrés][,couleur][,probabilité] +(Exemple) _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 +(Exemple) _BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + +------------------------------------------------------------------------------- +_Test [SHIFT]-[F4](SKTCH)-[F3](ML)-[F5](_Test) +------------------------------------------------------------------------------- +_Test rétend les commandes _Point, _Line, _Rectangle, _Circle et _Polygon + +Ajoutez _Test devant le nom de la commande pour connaîtr le nombre de pixels dans la région que cette commande dessine. + +(Exemple) _Test_Rectangle 0,0,127,63 +Renvoie le nombre de pixels noirs dans la zone (0,0) -- (127,63) (écran entier). + +(Exemple) _Test_Circle 62,32,20 +(Exemple) _Test_Point 10,10,5 +(Exemple) _Test_Line 10,10,100,30 + + + +=============================================================================== +Utilisation de la police externe (0.44-) +=============================================================================== +Une police externe peut être choisie pour les rendus de caractères ASCII (0x20-0x7e) et les gaiji/kana (0xff80-0xffdf). + +C.Basic cherche automatiquement les fichiers suivants pour redéfinir la police. Chaque fichier correspond à une plage de caractères. Si le fichier est présent, il est utilisé pour dessiner tous les caractères de sa plage. S'il n'est pas présent, la police par défaut est utilisée. + + @LFONTA.bmp (ASCII standard) + @MFONTA.bmp (ASCII mini) + @LFONTG.bmp (Gaiji standard) + @MFONTG.bmp (Gaiji mini) + @LFONTK.bmp (Kana standard) + @MFONTK.bmp (Kana mini) + +Les polices par défaut de C.Basic sont ainsi : + + @LFONTK0.bmp (Katakana standard) + @MFONTK0.bmp (Katakana mini) + @LFONTK1.bmp (Hiragana standard) + @MFONTK1.bmp (Hiragana mini) + @LFONTG0.bmp (Gaiji standard) + @MFONTG0.bmp (Gaiji mini) + +Pour les utiliser, placez-les dans le répertoire de travail plus appelez + BmpLoad(@K1) +pour remplacer les hiragana, ou + BmpLoad(@K0) +pour remplacer les kana. + +------------------------------------------------------------------------------- +GetFont( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F1](GetFont) +GetFontMini( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F3](GetFontMini) +------------------------------------------------------------------------------- +Lit des données de polices. + +(Format 1) GetFont(code de caractère) -> Mat A +(Format 1) GetFontMini(code de caractère) -> Mat A + +(Exemple) GetFont(0x41) -> Mat A +L'image de la lattre 0x41 (A) (18x24) est chargée dans la matrice A au format 1-bit. +(Exemple) GetFontMini(0xff80) -> Mat A +Le premier bitmap (0xff80) de la mini police externe (13x18) est chargé dans la matrice A. + +(Format 2) GetFont(chaîne de caractères) -> Mat A +(Format 2) GetFontMini(chaîne de caractères) -> Mat A + +(Exemple) GetFont("A") -> Mat A +(Exemple) GeFontMini("A") -> Mat B + +(Format 3) GetFont(@ code de caractère) -> Mat A +(Format 3) GetFontMini(@ code de caractère) -> Mat A + +(Format 4) GetFont(@ chaîne de caractères) -> Mat A +(Format 4) GetFont(@ chaîne de caractères) -> Mat A + +(Exemple) GetFont(@0x41) -> Mat A +(Exemple) GetFont(@"A") -> Mat A + +Pour savoir si une police externe a été chargée : + +(Format 5) GetFont() +(Format 5) GetFontMini() + +La valeur de retour contient 3 bits indiquant si chaque plage de caractères a été remplacée par la police externe : + Bit 0 Ascii + Bit 1 Gaiji + Bit 2 Kana + +(Exemple) Si seule les kana standards ont été remplacés : + GetFont() // 4 + GetFontMini() // 0 +(Exemple) Si l'ASCII mini et les gaiji minis ont été remplacés : + GetFont() // 0 + GetFontMini() // 3 + +------------------------------------------------------------------------------- +SetFont [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F2](SetFont) +SetFontMini [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F4](SetFontMini) +------------------------------------------------------------------------------- +Permet de changer les polices. + +(Format 1) SetFont , +(Format 1) SetFontMini , + +(Exemple) SetFont 0xff80,Mat A +Les données de la matrice A sont chargées comme premier caractère externe. + +(Exemple) SetFontMini 0xff80,Mat A +Les contenus de la matrice A sont utilisés comme premier caractère externe pour la mini police. + +(Format 2) SetFont , +(Format 2) SetFontMini , + +(Exemple) SetFont "@",Mat A +Les données de la matrice A sont chargées pour le caractère "@". + +(Exemple) SetFontMini "@",Mat A +Les contenus de la matrice A sont utilisés pour le mini caractère "@". + +------------------------------------------------------------------------------- +BmpLoad(@A +BmpLoad(@AL +BmpLoad(@AM +BmpLoad(@G +BmpLoad(@GL +BmpLoad(@GM +BmpLoad(@K +BmpLoad(@KL +BmpLoad(@KM +------------------------------------------------------------------------------- +Charge une police depuis des fichiers bitmaps dans la mémoire. + +(Format) BmpLoad(@G[numéro de fichier de police]) +(Format) BmpLoad(@K[numéro de fichier de police]) +(Format) BmpLoad(@A[numéro de fichier de police]) +Le numéro peut être 0..9. + +(Exemple) BmpLoad(@A1) +Charge "@LFONTA1.bmp" (ASCII standard) et "@MFONTA1.bmp" (ASCII mini) depuis le système de fichiers. + +(Format) BmpLoad(@GM[numéro de fichier de police]) +(Format) BmpLoad(@GL[numéro de fichier de police]) +(Format) BmpLoad(@KL[numéro de fichier de police]) +(Format) BmpLoad(@KM[numéro de fichier de police]) +(Format) BmpLoad(@AL[numéro de fichier de police]) +(Format) BmpLoad(@AM[numéro de fichier de police]) + +Permet de ne charger que la police standard (L) ou mini (M). + +(Exemple) BmpLoad(@AL2) +Charge "@LFONTA2.bmp" pour l'ASCII standard. +(Exemple) BmpLoad(@AM2) +Charge "@MFONTA2.bmp" pour l'ASCII mini. + +(Format) BmpLoad(@GL"nom de fichier") +(Format) BmpLoad(@GM"nom de fichier") +(Format) BmpLoad(@KL"nom de fichier") +(Format) BmpLoad(@KM"nom de fichier") +(Format) BmpLoad(@AL"nom de fichier") +(Format) BmpLoad(@AM"nom de fichier") + +(Exemple) BmpLoad(@GL"MYFONTL") +Charge "MYFONTL.bmp" pour servir de Gaiji en taille standard. +(Exemple) BmpLoad(@GM"MYFONTM") +Charge "MYFONTM.bmp" pour servir de Gaiji mini. + +------------------------------------------------------------------------------- +BmpSave @A +BmpSave @AL +BmpSave @AM +BmpSave @G +BmpSave @GL +BmpSave @GM +BmpSave @K +BmpSave @KL +BmpSave @KM +------------------------------------------------------------------------------- +Sauvegarde une police dans un fichier bitmap. + +(Format) BmpSave @A[numéro de fichier de police] +(Format) BmpSave @G[numéro de fichier de police] +(Format) BmpSave @GKnuméro de fichier de police] +Sauvegarde une plage de caractères (A: ASCII), (G; Gaiji), (K: Kana) dans le système de fichiers ; la police standard et la police mini sont sauvegardées. + +Si un deuxième @ est ajouté (BmpSave @@K, par exemple), les fichiers sont stockés dans "/@Font". + +(Format) BmpSave @GL[numéro de fichier de police] +(Format) BmpSave @GM[numéro de fichier de police] +(Format) BmpSave @KL[numéro de fichier de police] +(Format) BmpSave @KM[numéro de fichier de police] +(Format) BmpSave @AL[numéro de fichier de police] +(Format) BmpSave @AM[numéro de fichier de police] + +(Exemple) BmpSave @GL2 +Sauvegarde la police gaiji standard dans "@LFONTG2.bmp". +(example) BmpSave @GM3 +Sauvegarde la police gaiji mini dans "@MFONTG3.bmp". + +(Format) BmpSave @GL" file name " +(Format) BmpSave @GM" file name " +(Format) BmpSave @KL" file name " +(Format) BmpSave @KM" file name " +(Format) BmpSave @AL" file name " +(Format) BmpSave @AM" file name " + +(Exemple) BmpSave @GL"MYFONTL" +Sauvegarde la police gaiji standard dans "MYFONTL.bmp". +(Exemple) BmpSave @GM"MYFONTM" +Sauvegarde la police gaiji mini dans "MYFONTM.bmp". + + +=============================================================================== +Commandes de communication série (incompatible avec le Basic Casio) +=============================================================================== + +(Format) Send(données [fréquence en baud][,interruption]) +(Format) Recv(données [fréquence en baud][,interruption]) +(Format) Send38K données [,nombre d'octets] +(Format) Receive38k données [,nombre d'octets] +(Format) OpenComport38K[fréquence en baud][,mode de transfert][,interruption] +(Format) CloseComport38K + +: variables, matrices ou listes + Il est nécessaire que le type de données indiqué à l'envoi et à la réception soient le même. +: + Valeur Fréquence + 0 300 + 1 600 + 2 1200 + 3 2400 + 4 4800 + 5 9600 + 6 19200 + 7 38400 + 8 57600 + 9 115200 + La valeur par défaut est 7 pour 38400 bauds. +: + 0: transfert binaire sans vérification des types + 1: transfert avec vérification des types (comportement par défaut) + Lorsque OpenComport38k est invoqué avec mode de transfert 0, les transmissions faites avec Send38k et Receive38k sont uniquement des copies de données binaires. +: + 0: interdit d'interromptre le transfert + 1: autorise l'interruption du transfert + +Send() et Recv() peuvent être utilisés sans préparataion préalable. +Send38k et Receive38k ne peuvent être utilisés que si le canal a été ouvert avec OpenComport38k. Il faudra alors le fermer avec CloseComport38k. + +(Exemple) Send(A) +(Exemple) Recv(A) +(Exemple) Send(Mat A) +(Exemple) Recv(Mat A) + +(Exemple) OpenComport38K,9,0 + Send38K List 1 + CloseComport38K +(Exemple) OpenComport38K,9,0 + Receive38k List 1 + CloseComport38K + +------------------------------------------------------------------------------- +Beep (SH4A uniquement) [SHIFT]+[VARS](PRGN) -[F6] -[F4](I/O) -[F6] -[F5](Beep) +------------------------------------------------------------------------------- +(Format) Beep [fréquence][, durée (ms)] + +Produit un signal carré de la fréquence désignée sur le 3-pin. + +(Exemple) Beep +Produit un signal carré de 1 kHz pendant 0.5 s. + +(Exemple) Beep 440,1000 +Produit un signal carré de 440 Hz pendant 1 s. + + + +=============================================================================== +Menu de Configuration +=============================================================================== +Options compatibles avec le Basic Casio : + +Angle :Deg/Rad/Gra +Complex Mode:Real/a+bi/r∠θ +Draw Type :Connect/Plot +Coord :on/off +Grid :on/off/Line +Axes :on/off/Scale +Label :on/off +Derivative :on/off +Background :None / Pict1-20 +Plot/LineCol:Black etc. +Sketch Line :Normal/Thick/Broken/Dot/Thin + + +Nouvelles options fournies par C.Basic : +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + Le nombre maximal de chiffres possibles est augmenté à 15. Indiquer 0 le pousse à 16. + Nrm1 et Nrm2 sont identiques au Basic Casio et affichent jusqu'à 10 chiffres. + Nrm1: -0.015800/>9800 + Choisit le mode d'entrée de commandes : Standard (fx-9860G) ou C.Basic (fx-5800P). + Vous pouvez choisir le fonctionnement de "" : soit fx-5800P, soit fx-CG. + - Commandes lieés : '#58 + '#98 +------------------------------------------------------------------------------- +[X]character : [0x90]/[X] + Pour sélectionner le caractère de la touche [X/Theta/T]. +------------------------------------------------------------------------------- +Max Mem Mode : on/off + Utiliser toute la mémoire disponible. +------------------------------------------------------------------------------- +EnableExFont : on/off + Activer l'utilisation de la police externe. +------------------------------------------------------------------------------- +Edit ExtFont : On/Off + Activer l'éditeur de polices externes. +------------------------------------------------------------------------------- +Edit GB Font : On/Off/Full + Pour sélectionner la police GB affichée sur l'éditeur. +  Off : normal. pas afficher la police GB. +  On : affichage de la police de caractères sans F7xx, F9xx, E5xx, E6xx, E7xx +  Full: affiche toutes les polices GB. +------------------------------------------------------------------------------- +EditFontSize : Standard/Mini/MiniMini/MiniMiniFX /+Fixed pitch/+Gap + Sélectionne la taille de police de l'éditeur. +------------------------------------------------------------------------------- +EditFontSize : Standard/Mini/Mini_rev/Mini UnderCursor/Mini_rev_UnderCSR + Sélectionne la taille de police de l'éditeur. +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- +activer l'indent automatique dans l'éditeur. + Off: diable auto indent. + 1 : Définir la largeur de l'endent eden à 1. + 2 : Définir la largeur de l'endente à 1. + 4 : Définir la largeur de l'endent eden à 1. + Enregistrer : supprimez les espaces vides, y compris les indents lors de l'enregistrement du programme. (à compatible avec Basic Casio) +------------------------------------------------------------------------------- +Edit LineNum :on/off + Configure l'affichage des numéros de ligne. +------------------------------------------------------------------------------- +EditListChar : List / reverseL / Thick L + Sélectionne le mode d'affichage des listes. +------------------------------------------------------------------------------- +Edit-backCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur de fond de l'éditeur. +------------------------------------------------------------------------------- +Edit-baseCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur de base de l'éditeur. +------------------------------------------------------------------------------- +E-NumericCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur numérique de l'éditeur. +------------------------------------------------------------------------------- +E-CommandCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select command color of editor. + Sélectionne le couleur de commande de l'éditeur. +------------------------------------------------------------------------------- +Ed-QuotColor : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur des chaînes de l'éditeur. +------------------------------------------------------------------------------- +E-CommentCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur des commentaires de l'éditeur. +------------------------------------------------------------------------------- +E-LineNumCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select line number color of editor. + Sélectionne le couleur du numéro de ligne de l'éditeur. +------------------------------------------------------------------------------- +Auto OverClk : on/off + Régler l'overclockage automatique pour CG10/20. +------------------------------------------------------------------------------- +Heap RAM Size : 96KB/117KB/127KB/SIZE + Définissez la taille de segment maximale de l'utilisation C.Basic. +  (* Vous ne pouvez pas le changer au moment de l'édition du programme.) +------------------------------------------------------------------------------- +Use Hidden RAM : on / off + Utiliser la mémoire supplémentaire cachée. +------------------------------------------------------------------------------- +HiddenRAM Init : on / off + Initialiser la mémoire supplémentaire cachée avant l'exécution. +------------------------------------------------------------------------------- +Max Pict No : 20~99 + Lorsque la mémoire cachée est utilisée, le nombre de Picture peut être augmenté. + (*) Changer cette valeur réinitialise les Picture, matrices et listes ! + (*) Ce paramètre n'est pas valide. +------------------------------------------------------------------------------- +Max List No : 52~1040 + Lorsque la mémoire cachée est utilisée, le nombre de listes peut être augmenté. + (*) Changer cette valeur réinitialise les Picture, matrices et listes ! +------------------------------------------------------------------------------- +AT DebugMode : on / off + Active le debugger lorsque [AC/ON] est utilisé pour interrompre le programme. +------------------------------------------------------------------------------- +ExitDM Popup : on / off + Afficher une popup quand le debugger se ferme. +------------------------------------------------------------------------------- +Break Stop : on / off + Accepte ou refuse les interruptions par la touche [AC/ON]. + Quand cette option est à off, vous ne pouvez pas quitter un programme en appuyant sur [AC/ON]. + - Commandes liées : '#Break 0 '#Break 1 +------------------------------------------------------------------------------- +Exec TimeDsp : on / off /reset /%HR + Affiche le temps d'exécution du programme une fois le programme terminé. + Le timer est lancé à la première ligne du programme. Les commandes ? et Disps le réinitialisent. + Les fonctions Getkey1/2 mettent le timer en pause et le redémarrent ensuite. + En cas de reset, le timer est réinitialisé est reprend au premier appel de Getkey1/2. + %HR: Utilise le timer à 1/32768s (SH4A uniquement) + - Commandes liées : '#GetKeyC '#GetKeyR +------------------------------------------------------------------------------- +IfEnd Check : on / off + Vérifie strictement la correspondance entre chaque "If" et chaque "IfEnd". +------------------------------------------------------------------------------- +ACBreak : on / off + Active ou désactive la commande ACBreak. + - Commandes liées : ACBreak +------------------------------------------------------------------------------- +Force Return : None/ F1/ EXE/ F1&EXE + Force le retour à l'éditeur lors d'une interruption avec [AC/ON]. + (Exemple) Retour de force réglé à [F1]key + -Liste de fichiers→[F1](EXE)→[AC]→[EXIT]... Retourne à la liste de fichiers. + -Liste de fichiers→[EXE][AC]→[EXIT] ...... Retourne à l'éditeur. + -Liste de fichiers→[F1](EXE]→[AC]→[EXE](restart)→[AC]→[EXIT] ...... Retourne à la liste de fichiers. + (L'opération dépend de la clé qui est pressée en premier.) +------------------------------------------------------------------------------- +Key 1st time : 25 ms - 1000 ms (valeur par défaut : 500 ms) + Durée avant qu'une touche soit répétée pour la première fois (multiple de 25 ms) +------------------------------------------------------------------------------- +Key Rep time : 25 ms - 500 ms (valeur par défaut : 125 ms) + Durée avant qu'une touche qui a déjà été répétée soit répétée de nouveau (multiple de 25 ms) +------------------------------------------------------------------------------- +SkipUp/Down : 1 - 9999 + Nombre d'écrans parcourus pour chaque pression de SkipUp ([SHIFT][UP]) ou SkipDown ([SHIFT][DOWN]) dans l'éditeur. +------------------------------------------------------------------------------- +Mat Dsp mode : [m,n] / [X,Y] + Sélectionne le format d'affichage de matrices dans l'éditeur de matrices. + Les formats [m,n] et [X,Y] sont transposés l'un de l'autre. Ce n'est qu'un paramètre d'affichage, les données de la matrice restent stockées dans l'ordre original. +------------------------------------------------------------------------------- +Matrix base : 0 / 1 + Indice de début pour la numérotation des éléments de matrices. Il faut être en mode 0 pour utiliser la première ligne et la première colonne de la VRAM. + - Commandes liées : '#Mat 0, '#Mat 1 +------------------------------------------------------------------------------- +DATE : 2017/01/17 TUE + Change la date de la RTC (horloge du système). Le jour de la semaine est calculé automatiquement. +------------------------------------------------------------------------------- +TIME : 23:59:59 + Change l'heure de la RTC. + - Commandes liées : DATE, TIME +------------------------------------------------------------------------------- +Root folder:/ + [F1]: pour définir le dossier racine. + [F2]: pour définir le dossier actuel. + - Commandes liées : + '#R/ // pour définir le dossier racine. + '#R. // pour définir le dossier actuel. +------------------------------------------------------------------------------- +Favorite Col : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16bit Color + Sélectionne le couleur de fichier préférée de l'éditeur. +------------------------------------------------------------------------------- +Auto file Save : on/off + Désactive la popup de confirmation à la sauvegarde dans l'éditeur. +------------------------------------------------------------------------------- +Force g1m save : on / off + Permet de sauvegarder automatiquement les fichiers g1m quand les programmes textes sont édités. +------------------------------------------------------------------------------- +Direct GB cnvt : on/off + Définir le code GB sans conversion de texte. +  (* conversion supporte le mode GB de l'éditeur.) +------------------------------------------------------------------------------- +Pict mode: S.Mem / Heap / Both + - S.Mem : Les Picture sont créées dans la mémoire de stockage (petit surcoût temporel) + - Heap : Les Picture ne sont pas vraiment créées, juste stockée temporairement dans la RAM + - Both : Les deux. + - Clear : Supprime le fichier compatible Pict créé dans la mémoire de tas au démarrage du programme à chaque fois. +------------------------------------------------------------------------------- +Storage mode: S.Mem / SD / MainMem + Sélectionne le stockage temporaire pour le code pendant l'édition et l'exécution. + S.Mem : Mémoire de stockage + SD : Carte SD (Graph 95 SD uniquement) + Main mem : Mémoire principale +------------------------------------------------------------------------------- +RefrshCtl DD: off / Grp / All + Sélectionne le niveau de restriction du rafraîchissement automatique de l'écran. + Off : Aucune restriction particulière (comme en Basic Casio). + Grp : Seules les commandes graphiques et ClrText, Locate, Text, LocateYX et "" provoquent le rafraîchissement de l'écran (ces exceptions sont en rétro-compatibilité avec les précédentes versions de C.Basic). + All : Aucune commande ne rafraîchit l'écran automatiquement. PutDispDD doit être utilisé. + Time : Sélectionne la durée de rafraîchissement automatiquement en unités de 1/128 s. La valeur par défaut est 3, ce qui donne environ 1/42 s de fréquence de rafraîchissement. + Par défaut, la valeur est 0. + - Commandes liées : RefrshCtrl, RefrshTime +------------------------------------------------------------------------------- +Wait count : 0~9999 + Délai contrôlant la vitesse d'exécution globale. + - Commandes liées : Wait +------------------------------------------------------------------------------- +G1M/G3M mode : auto/g3m/g1m + Définir pour exécuter le mode par défaut. + - Commandes liées : '#G1M, '#g1m, '#G3M, '#g3m +------------------------------------------------------------------------------- +Execute mode: Dbl# / Int% / CPLX + Définit le mode de variables numériques par défaut. + - Commandes liées: '#CBasic, '#CBASIC, '#CBINT, '#CBint '#CBCPLX '#CBcplx +------------------------------------------------------------------------------- + diff --git a/doc-cg/ManualCG_J.txt b/doc-cg/ManualCG_J.txt new file mode 100644 index 0000000..413b978 --- /dev/null +++ b/doc-cg/ManualCG_J.txt @@ -0,0 +1,3229 @@ +=============================================================================== + +アドイン版 Casio Basic Interpreter (& Compiler) for CG ver 1.x beta版 マニュアル + +copyright(c)2015-2017-2020 by sentaro21 +e-mail sentaro21@pm.matrix.jp + +最終更新日:2020/2/9(JST) +最終更新者:sentaro21 + + +=============================================================================== +C.Basic for CGとは? +=============================================================================== +純正Casio Basicとfx-5800Pの使い勝手のいいとこ取りを目指した高速互換Casio Basicが +FX版C.Basicというわけで、C.Basic for CGはそのCG10/20/50対応版です。 +プログラムソースは基本的にストレージメモリ上に置かれます。 +サポートコマンドの範囲内では純正のCasio Basicとファイルフォーマット及び動作の互換があります。 + +===============================================================================(CGシリーズ拡張) +g1mとg3mの実行モード +=============================================================================== +C.Basic for CGではFX版C.Basicのプログラムを互換動作させるg1mモードと、 +CGシリーズの高解像度カラー画面に対応したg3mモードがあります。 +互換動作時にはグラフィックスの解像度が128x64ピクセルになり、 +グラフィックスコマンドはFX版C.Basic同様の動作となります。 +テキスト表示はCGシリーズのハイレゾフォントとFXフォントが選択できます。 + +g1mプログラムをg3mモードで動作させた場合は、 +テキスト系コマンドのプログラムでは互換性がありますが、 +グラフィックスでは互換性の無い部分が出てきますので注意して下さい。 + +===============================================================================(CGシリーズ拡張) +使用可能メモリ CG版 +=============================================================================== +CG10/20/50ではアドインとして自由に使用できるRAMは128KBあります。 +さらにCG50ではOSで管理されていない空きRAMが6MB存在しています。 +CG50ではそれを使用することで、128KB以上のフリーエリアを実現しています。 +(空きRAMの6MBを使うためにはセットアップでUse Hidden RAMをOnにする必要があります。) + +===============================================================================(CGシリーズ拡張) +内蔵エディタでの編集可能サイズ +=============================================================================== +C.Basicでは標準のエディタと同様の使い勝手を目指したエディタを内蔵しています。 +コピー&ペーストは使えますが一度にコピーできるサイズは16KBが最大です。アンドゥは未実装です。 + +新規ファイルの初期編集可能サイズは32KBとなっています。(CG50では64KBです。) +プログラム作成時にこのサイズを超えると編集できなくなるので一旦保存後再編集して下さい。 +再編集時のプログラム編集可能最大サイズはプログラムサイズ+8KBとなっています。 + +プログラム実行時にはメインプログラムはメインプログラムサイズ+8KB、サブプログラムはサブプログラム+512Bの編集可能エリアを確保した上で実行されます。 +デバッグモード時での再編集可能サイズとなります。 + +プログラム編集可能最大サイズは、約62KB程度となっています。 +(※Ver 0.48以降、ファイルサイズの制限は無くなりました。) + +=============================================================================== +内蔵デバッグモード +=============================================================================== +純正には無い機能として[AC]で中断したプログラムの再開、及びデバッグモードを装備しています。 +デバッグモードは最初の実行時よりデバッグモードで起動することも出来ます。 +トレース実行、1ステップ実行、ステップオーバー、ステップアウトをサポートしています。 + + +=============================================================================== +実行モードについて +=============================================================================== +C.Basicでは純正Casio Basic同様の実数モードと、整数値しか扱えない整数モード、複素数を扱える複素数モードがあります。 +それぞれの実行モードの切り替えはコメント欄で +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +と記述するとそれ以降、実数モードに、 + +'#CBINT +'#CBint +と記述すると整数モードに、 + +'#CBCPLX +'#CBcplx +と記述すると複素数モードになります。 + +また、Setupからデフォルトの実行モードが設定できます。 +コメント欄での変更はセットアップでの変更に優先します。 + +整数モードでは得られる結果がすべて整数値となりますが、 +整数値しか扱わないプログラムでは実数モードに比べて1.5倍以上速くなります。 + + +整数モードで実数を扱いたい場合は、式の前に#を付けると#以降の式を実数モードで計算します。ただし式の結果は整数値に丸められます。 +(例)#100×Frac 1.23 + 5 + 整数モードではFlac 1.23は数値エラーになって実行できませんが、#を付けると + #(Frac 1.23×100 + 5) + #以降の式を実数計算することが出来るようになるので、結果は実数モードと同じく28になります。 + + 式の途中に#がある場合は、その#以降、式の終わり(区切り記号まで)まで実数計算します。 +(例)100×#Frac 1.23 + 5 + 式の解釈は + 100×#(Frac 1.23 + 5)となるので実数モードでは523、整数モードでは500になります。 + + +=============================================================================== +実行時ウエイトについて +=============================================================================== +全体の実行速度を調整することが出来ます。 +セットアップで設定した場合は全部のプログラムが影響を受けます。 + +個々のプログラムで調整したい場合はWaitコマンドを使用します。 +(例)Wait 100 +ウエイト値に100を設定します。 + + +=============================================================================== +扱える数値について +=============================================================================== +純正Casio Basicでは内部15桁、指数2桁の精度を持つ10進数ですが、 +C.BasicではSDKのCの仕様と同じ64ビット倍精度実数型と32ビット整数型が基本になります。 +倍精度実数型で扱える数値範囲は +±9.88131291682493e-323~±1.7976931348623151e+308 +純正よりは広い範囲の数値が扱えますが、演算は2進数で行われるので小数以下の数値を扱う場合は誤差に注意して下さい。 + +定数値において、C言語同様のプレフィックス(0Xまたは0B)を付けると32ビットまでの16進数、2進数が使用出来ます。 +(例)0XFF, 0B10100110 +(例)0xAB, 0b10100110 + + +=============================================================================== +変数について +=============================================================================== +純正Casio Basic同様に1文字変数としてA~Z、r、θまでの28文字に加えてa~zまでの小文字変数が使えます。 +変数は実行モードの違いに関係なくそれぞれ独立した実数変数(A~Z、r、θ、a~z)と整数変数(A~Z、r、θ、a~z)が確保されますが、 +そのままでは変数名の区別ができないので、%サフィックスを付けると整数変数(A%~Z%、%、θ%、a%~z%)、#サフィックスを付けると実数変数(A#~Z#、#、θ#、a#~z#)となります。 +実数モードで%サフィックスを付けた整数変数を使う場合は特に気にすることはないのですが、 +整数モードで#サフィックスを付けた実数変数を使う場合は、変数からの読み出し結果はすべて整数の範囲に丸められます。 +実数値が整数範囲に収まらない場合は0になります。 + +(例)'#CBINT // 整数モード指定 +   #1.2345→A# // 実数変数Aに1.2345を代入したつもりが実際には整数の1が代入されます。 + +(例)A%→A# + 整数変数のAより倍精度変数Aにコピーします。 + 整数から倍精度へのコピーは無問題ですが、倍精度値から整数値にコピーする場合、整数範囲に収まらない場合は0になります。 + +変数の初期化では純正同様の0→A~Zの形式に加えて、整数、倍精度、個別に指定できます。 +0→A~Z# +倍精度変数を初期化します。 +0→A~Z% +整数変数を初期化します。 + +=============================================================================== +拡張変数について +=============================================================================== +Ver 0.35より、自由な名前で使える変数が26個増えました。 +アンダーバーより始まる複数英数字名(8文字まで)の変数が使えます。 +従来の1文字変数とは独立したエリアに確保される変数ですがプログラム開始時には常に初期化されます。 +使える変数は99個までとなっています。実数変数と整数変数は別の値を保持できますが同じ名前で確保されます。 +[SHIFT]+[F1]の変数リストで[F1]を押す度に大文字変数、小文字変数、アンダーバー変数が表示されます。 +(例)'#CBDBL +(例)123.456->_ABC +(例)456->_ABC% +(例)_ABC+_ABC%->_RESULT + _RESULTの値は579.456となります。 + +=============================================================================== +定数変数について +=============================================================================== +Ver 0.35より、変数を定数使用限定にするConstコマンドを使用できます。 [OPTN]-[F5](Extend)-[F3](Const) +変数代入時にConstを前置すると変数が定数として扱われ以後代入できなくなります。 +(例)123->Const A +(例)123->Const _ABC +(例)456->A + 同じプログラムで変数の値を変更しようとしたらエラーになります。 + + +===============================================================================(CGシリーズ拡張) +画面描画サイズについて +=============================================================================== +CGシリーズで標準的に使用出来る表示範囲は384x216ドットです。 +純正のCasio Basicで描画可能な範囲は上部のステータスラインを除いた384x192ですが、 +C.Basic for CGでは384x216すべてを描画範囲としてサポートしています。 +純正互換コマンドでは基本的に384x192範囲が対象ですが一部コマンドはステータスラインも描画対象になります。 + +(例)Locate 1,0,"STATUS LINE" +(例)Text -24,1,"STATUS LINE" + ステータスラインに表示します。 + +===============================================================================(CGシリーズ拡張) +画面の色について +=============================================================================== +CGシリーズでは384x216ドットの画面を1ドットあたり16ビット色で表示することが出来ます。 +色指定は16ビットの上位より +R:5ビット +G:6ビット +B:5ビット +となっています。 +C.Basicでは標準で16ビットカラーをサポートしています。 + +色指定方法は純正同様にコマンドの前にカラー指定します。 +(例)Blue Locate 1,1,"Blue" + +拡張コマンドとして +Back-Color +RGB( +GetRGB( +HSV( +GetHSV( +HSL( +GetHSL( +Transp-Color +があります。 + +(例)Back-Color Red +(例)RGB(255,0,128)Blue Locate 1,1,"Blue" +(例)GetRGB(12345) + +(書式1)Back-Color カラー +(例)Back-Color Green + 背景色を緑に設定します。 +(書式2)Back-Color @カラー +(例)Back-Color @Green + 描画領域外の枠を緑に設定します。 + +(書式)RGB(R,G,B) + 16ビット色の任意の色を設定できます。 + 値の範囲はそれぞれ8ビット値で0~255までとなりますが + R:5ビット(0~248) + G:6ビット(0~252) + B:5ビット(0~248) + が有効です。 + Red、Green、Blue等の箇所で使えます。 +(例)Plot/LineColor RGB(160,160,0) + Plot/LineColor Yellowよりちょっと暗いYellowです。 + +(書式)RGB({R,G,B}) +(例)RGB({255,255,0}) +(例){255,255,0}->List 1 +   RGB(List 1) + + RGB(、HSV(、HSL(コマンドで#オプションを付けると16ビットカラー値をダイレクト指定できます。。 +(例)RGB(#12345) +(例)HSV(#12345) +(例)HSL(#12345) + 16ビットカラー値12345を指定します。 + +(書式)GetRGB(16ビットカラー値) + カラー値をR、G、Bに分解します。結果はListAnsに返ります。 +(例)GetRGB( 65535 ) + ListAns = { 248,252,248 } + R = ListAns[1] + G = ListAns[2] + B = ListAns[3] + +RGB(コマンドと同等なHSV(とHSL(コマンドを追加しました。(Ver 0.52以降) +(書式)HSV(H,S,V) +(書式)HSL(H,S,L) + H:0~359 + S:0~255 + V:0~252 + L:0~250 + +(※HSVとHSLで指定できない色) +以下の4色はHSV,HSLで指定できないのでRGBを使ってください。 + #0x003F: RGB( 0, 4, 248) + #0x041F: RGB( 0, 128, 248) + #0xF820: RGB(248, 4, 0) + #0xFC00: RGB(248, 128, 0) + +なお、GetHSV()、GetHSL()で上記の値を引数にした場合はエラーになるようにしています。 +(書式) GetHSV(16ビットカラー値[,N]) +(書式) GetHSL(16ビットカラー値[,N]) +Nオプションでエラーを無視します。 + +------------------------------------------------------------------------------- +Transp-Color [SHIFT]-[F4](SKETCH)-[F6]-[F6]-[F1](COLOR)-[F6]-[F5](Transp-Color) +------------------------------------------------------------------------------- +16ビットカラーのビットマップ描画において透過色指定するためのコマンドです。(Ver 0.54以降) +(書式)Transp-Color + 透過色の設定を解除します。 +(書式)Transp-Color カラー +(例)Transp-Color Green + 透過色を緑に設定します。 +(書式2)Transp-Color #16ビットカラー値 +(例)Transp-Color #12345 + 透過色を16ビットカラー値12345に設定します。 + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- + + +=============================================================================== +画面描画について +=============================================================================== +fx-CGシリーズでは画面表示はVRAMに描かれたデータをLCDに転送することで表示するようになっています。 +LCDへの転送はかなりのオーバーヘッドがあるので、描画コマンドの実行の度にLCD転送するのは非効率です。 +そのためにC.Basicではコマンド終了時に毎回、VRAMからLCDへの転送(=リフレッシュ)を行わずに +一定の時間が経ってからリフレッシュするように設定出来ます。(セットアップおよびコマンドで可能です) +この時、次回のリフレッシュされるタイミングよりも描画コマンドが早く終了した場合は、 +LCD転送されず画面に表示されることなく次の処理に移ってしまうということが起きる場合がありますので +転送漏れを無くすためには区切りのいいところで強制的にLCD転送させるためにPutDispDDコマンドや_DispVramコマンドを使用して下さい。 + +=============================================================================== +VRAMについて +=============================================================================== +C.Basicでは純正Casio Basic同様にテキスト画面とグラフィックス画面がそれぞれ独立して存在していますが、 +コマンド等で画面描画に使われるVRAMとしてはひとつだけであり、これを表示用VRAMとします。 +さらに +テキストVRAM=テキストモードでのVRAM内容を保持しているRAMエリア、 +グラフィックVRAM=グラフィックモードでののVRAM内容を保持しているRAMエリア、 +を持っています。 +つまり3画面分の同じサイズのVRAMが存在しています。 +通常のコマンドで描画対象になるのは表示用VRAMです。 + +例えば、テキスト系の描画コマンドが実行される場合、 +現在の画面モードがテキストモードであれば、そのまま表示用VRAMに描画を行います。 +グラフィックモードであれば、表示用VRAMをグラフィックVRAMに退避転送した後、テキストVRAMの内容を表示用VRAMに復帰転送して、表示用VRAMに対してテキスト描画を行います。 +この後、テキスト系の描画コマンドが続く場合は、表示用VRAMの退避転送は行われず、そのまま表示用VRAMに対して描画を行います。 +グラフィック系コマンドが実行された場合は、表示用VRAMをテキストVRAMに退避転送した後、グラフィックVRAMの内容を表示用VRAMに復帰転送して、表示用VRAMに対してグラフィック描画を行います。 +このようにテキストVRAMとグラフィックVRAMは直接描画が行われる領域ではなく単なる保存領域となっていて、テキストモードとグラフィックモードを切り替えが起きると、その都度、表示用VRAMとの入れ替えが行われます。 +表示用VRAMに描画しただけではLCDに表示されることはなく、LCD転送されて初めてLCD画面に表示されることになります。 + + +=============================================================================== +行列の拡張について +=============================================================================== +純正Casio BasicのMatrix行列との違いについて説明します。 + +通常モードでは純正と同じく実数モードでは実数の行列、整数モードでは整数の行列として使用できますが、 +C.Basicでは実数(8バイト)および整数(4バイト)の他に、1ビット、ニブル(4ビット)、バイト(1バイト)、ワード(2バイト)、複素数(16バイト)の型を持つ行列が使えます。 + +行列確保時にサフィックス指定すると要素の型指定ができます。 +[.P]または[.p]で(1ビット)整数バイナリー行列。扱える値の範囲は(0~1)です。 +[.N]または[.n]で(4ビット)整数ニブル行列。扱える値の範囲は(0~15)です。 +[.B]または[.b]で(8ビット)整数バイト行列。扱える値の範囲は(-128~127)です。 +[.W]または[.w]で(16ビット)整数ワード行列。扱える値の範囲は(-32768~32767)です。 +[.L]または[.l]で(32ビット)整数ロングワード行列。扱える値の範囲は(-2147483648~2147483647)です。 +[.F]または[.f]で(64ビット)倍精度実数行列。扱える値の範囲は(±9.88131291682493e-323~±1.7976931348623151e+308)です。 +[.C]または[.c]で(128ビット)複素数行列。扱える値の範囲は実部・虚部それぞれ(±9.88131291682493e-323~±1.7976931348623151e+308)です。 + + +行列は純正同様に{m,n}型で{row(行),column(列)}での実装となります。 +例外として1ビット型、ニブル(4ビット)型は{X,Y}型の実装で{column(列),row(行)}での実装となります。 + +16ビット行列は画面のVRAMと同じ構成となるので、 +[.V]または[.v]指定するとVRAMを216行x384列の行列に割り当てて読み書きが出来ます。 +さらに[.VG]でグラフィックVRAM、[.VT]でテキストVRAMを行列に割り当てることが出来ます。 +尚、インデックスベースは0から始まり、行列サイズは{216,384}固定となります。 + +(例){216,384}→Dim Mat G.V + Mat Gにアクセスすることでその時点でのVRAMを直接読み書きできますが表示系コマンドではないので、 + 画面表示する場合は、コマンド実行後に強制表示させる必要があります。 + +(例){216,384}→Dim Mat G.V +   Screen.G // グラフィック画面選択(他のグラフィックコマンドでも可) +   0→Mat G[108,192] +   PutDispDD // 画面転送コマンド +   グラフィック画面の真ん中に黒点を打ちます。(0は黒、白は65535になります) +   _Pixel 84,192 +   PxlOn (108-24-2),(192-2)と同じです。 + +(例){216,384}→Dim Mat G.V +   Screen.T // テキスト画面選択(他のテキスト系コマンドでも可) +   0→Mat G[108,192] +   PutDispDD // 画面転送コマンド +   テキスト画面の真ん中に点が打てます。 + + +=============================================================================== +行列の初期化 +=============================================================================== +純正同様に、 +{m,n}→Dim Mat A形式と、 +[[1,2,3][4,5,6]]→Mat A形式の初期化をサポートしています。 + +さらに、fx-5800Pでの +100→Dim A +形式をサポートしています。 +0→Dim A +行列Aを消去します。 + + +行列要素の一括初期化として純正同様のFillコマンドと数値→Mat Aという形式をサポートしています。 +(例)Fill(123,Mat A) +(例)123→Mat A +Mat A行列の全要素を123で初期化することができます。 + + +Mat行列初期化コマンド[[ ]]において、改行&空白を入れることが可能です。 +(例) + [[0B11001100, +  0B00110011, +  0B11001100, +  0B00110011 + ]]→Mat A.B + +Dim Dimでの行列再確保書式において任意にアドレスを行列に割り当てることが出来ます。 +(書式) {m,n}->Dim Dim Mat A(行列実体アドレス) +(例){128,1}->Dim Mat A.B +   {64,1}->Dim Dim Mat B.W(VarPtr(Mat A)) +   Mat AとMat Bは同じ領域をアクセスしますが、バイトアクセスかワードアクセスというところが違います。 +   アドレス指定で確保した行列には一覧表示で*マークが付きます。 + + +=============================================================================== +行列へのアクセス +=============================================================================== +通常のMat A[1,1]形式に加えて、 +Matを省略した +A[1,1] +一列目だけのアクセスでは +A[1] +表記も可能です。 + +さらに添字が数値の0~9の場合のみ、 +A0 +A5 +表記が出来ます。 + +この表記の変数は実体となる行列が事前に確保されて無い場合は、自動的に行列が確保されます。 +(例)A1+123→B5 + もし、Mat AおよびMat Bが確保されていない場合は、変数がアクセスされた時点で + 9→Dim A + 9→Dim B + と同じ初期化が自動的に実行され、A1~A9およびB1~B9までが使えます。 + +(例)'#Mat 0 + A1+123→B5 + の場合、もし、Mat AおよびMat Bが確保されていない場合は、 +  10→Dim A +  10→Dim B + と同じ初期化が自動的に実行され、A0~A9およびB0~B9までが使えます。 + +(例)'#Mat 0 + 2→Dim B + A1+123→B5 + の場合は、 +  10→Dim A + Mat Aのみ初期化され、Mat Bは再確保されないのでB5にアクセスした時点でエラーになります。 + この場合はA0~A9およびB0~B1までが使えます。 + +=============================================================================== +行列の要素サイズ変更 +=============================================================================== +行列の型(1ビット、ニブル、バイト、ワード、ロングワード、実数、複素数)は行列確保後でも任意に変更できます。 +(例)[[1,2,3,4][5,6,7,8]]→Mat A.B +   Mat A→Dim Mat A.W + バイト型のMat A行列をワード型に変更できます。 + 要素数は変更後の型サイズに応じて変化します。 + [[0x0102,0x0304][0x0506,0x0708]]→Mat A.W + と同じ結果になります。 + +上記の例だと{2,4}のバイト行列を{2,2}のワード行列に変換することしか出来ませんが、 +以下の形式だと任意の行列サイズに変更できます。 +(例)[[1,2,3,4][5,6,7,8]]→Mat A.B +   {4,1}→Dim Dim Mat A.W + [[0x12][0x34][0x56][0x78]]→Mat A.W + と同じ結果になります。 +(例)[[1,2,3,4][5,6,7,8]]→Mat A.B +   {1,4}→Dim Dim Mat A.W + [[0x0102,0x0304,0x0506,0x0708]]→Mat A.W + と同じ結果になります。 + + +(注意)1ビット型、ニブル(4ビット)型⇔バイト(1バイト)型以上の変更は行と列が反転します。 + これは1ビット型、ニブル(4ビット)型行列はX,Y型で実装しているために通常のm,n型行列とは転置行列の関係になるためです。 + {127,63}→Dim Mat A.P + LCD画面のg1mモードに於ける全画面ビットマップデータの仮想メモリとして利用できるバッファとして確保します。 + Mat A→Dim Mat A.B + バイト型行列に変更すると、 + 要素サイズは{63,16}になります。 + +=============================================================================== +行列のインデックス開始値について +=============================================================================== +純正Casio Basicでは行列/リストのインデックスは1から始まりますが、C.Basicでは0から始めることができます。 +セットアップもしくはコメント欄での記述で行列の始まりを選択できます。 +(例)'#Mat 1 +  従来通り1から始まります。 +(例)'#Mat 0 +  {3,2}→Dim Mat A +  確保される行列は A[0,0]~A[2,1]となります。 + + 同時に画面座標も0まで有効になります。これで全画面が描画対象エリアとなります。 +(例)Pxlon 0,0 + + リストのラベルについては、 + 要素の開始が1の場合(デフォルト)では、純正と同じく、 + (書式)"LABLE"->List 1[0] + 要素の開始が0の場合は、 + (書式)"LABLE"->List 1[-1] + でラベル設定ができます。 + + (書式)List 1[0]->Str 1 + (書式)List 1[-1]->Str 1 + ラベル名を文字列として取得することも出来ます。 + + +行列ごとに確保時にインデックスベースを設定することが出来ます。 +行列確保時に末尾に0をつけると0ベース、1を付けると1ベースとなるので、デフォルトのベース設定を変更すること無く個別設定が出来ます。 +(例){128,64}→Dim Mat A.P0 + 0ベースの行列を確保します。インデックスの範囲は[0,0]-[127,63] +(例){128,64}→Dim Mat A.P1 + 1ベースの行列を確保します。インデックスの範囲は[1,1]-[128,64] + +サイズ指定を省略して、(デフォルトサイズになります。) +{128,64}→Dim Mat A.0 +{128,64}→Dim Mat A.1 + +記述を逆にした +{128,64}→Dim Mat A.0P +{128,64}→Dim Mat A.1P + +間にピリオドを入れた、 +{128,64}→Dim Mat A.P.0 +{128,64}→Dim Mat A.P.1 +でも認識できます。 + +[[1,2,3,4][5,6,7,8]]->Mat A +のような形式で初期化する場合は、左辺と右辺でインデックスベースが違うと不具合が出ます。この場合は、 +{1,2}.1→List 2.B1 +{1,2}.B1->List 2.B1 + +{1,2}.0→List 3.B0 +{1,2}.B0→List 3.B0 +として、左辺も同様なインデックスベース指定が必要です。 + +=============================================================================== +行列の表示について +=============================================================================== +Mat行列エディタにおいて2進数、16進数での表示ができます。 +行列編集モードで[F5]を押すと2進数表示、[F6]で16進数表示になります。 +10進数表示に戻すには再度[F5][F6]を押します。 +ただし、2進数表示はニブル(4ビット)と、バイト(1バイト)、ワードタイプ(2バイト)の行列までです。 + +[OPTN]キーを押すとリスト名表示に変わります。 + +行列を表示している状態で[OPTN]キーを押すとドットエディタになります。 +g1mモード、及びg3mモードの1ビット行列では、行列の各要素の値が0の場合とそれ以外でドットの白黒が決まります。 +g3mモードのニブル行列では4ビットカラー、それ以外の型では16ビットカラーとなります。 + +行列を表示している状態で[VARS]キーを押すと文字列表示に変わります。 + +行列のデータをクリップボードにコピー&ペーストが出来ます。 +行列編集モード時に[SHIFT]+[8](CLIP)でコピー、[SHIFT]+[9]でペースト出来ます。 +(C.Basic)形式なのでエディタにて行列データをペースト出来ます。 + + +=============================================================================== +行列のインデックス拡張および最大インデックス値について +=============================================================================== +行列のアクセスは純正同様にMat+英1文字以外に、Listと同じく数値で指定できます。 +(θ、r、Ansは数値指定できません。) +Mat A = Mat 1 +Mat B = Mat 2 +Mat C = Mat 3 +Mat Z = Mat 26 +Mat a = Mat 27 +Mat z = Mat 52 + +さらに@を付けるとインデックス値を変数で指定することも出来ます。 +(例)3->A + Mat @A (Mat Cと同じです) + +Listの拡張で行列も同様に最大1040まで拡張されます。 + + +小文字以降の行列はリストと共用しているために27以降の行列=小文字行列はリストと同じ領域を使用します。 +53以降は数値のみ指定できます。 +Mat a[5,1] = Mat 27[5,1] = List 27[5] +Mat b[5,1] = Mat 28[5,1] = List 28[5] +Mat c[5,1] = Mat 29[5,1] = List 29[5] +Mat z[5,1] = Mat 52[5,1] = List 52[5] + +List 53[5] = Mat 53[5,1] +List 100[5] = Mat 100[5,1] +List 1000[5] = Mat 1000[5,1] + +(例)100->A + Mat @A + Mat @AはMat 100、List 100と同じです。 + + +=============================================================================== +リスト機能のサポート範囲について +=============================================================================== +リスト機能は行列機能を利用して実装しています。 +デフォルトでList 1~52まで使えます。 +さらに隠しRAM使用時にはセットアップで1040まで増やすことが出来ます。 +Listと行列との対応は以下の通りになっています。 +Mat A~ZおよびList 1~26は互いに独立しています。 +27~52までは小文字の行列と共有します。 +List 27[5] = Mat a[5, 1] +List 28[5] = Mat b[5, 1] +List 29[5] = Mat c[5, 1] +List 52[5] = Mat z[5, 1] +List 100[5] = Mat 100[5, 1] +List 1000[5] = Mat 1000[5, 1] + + +純正機能の以下のコマンドをサポートしています。 + +List Ans +10->Dim List 1 +{1,2,3,4,5}->List 1 +Seq( X^2, X, 1, 10, 2 )->List 2 +Augment(List1,List2)->List 3 +Mat>List( Mat A, 2) -> List 1 +List>Mat( List 1, List 2,..) -> List 9 +Fill(3,List 1) +Min(List 1) +Max(List 1) +Mean(List 1) +SortA(List 1) +SortD(List 1) +Sum List 1 +Prod List 1 + +Listを含む四則演算および関数演算。 + + +=============================================================================== +ベクトル機能のサポート範囲について +=============================================================================== +ベクトル機能は行列機能を利用して実装しています。 +Vct A~ZはList 1~26同様にMat A~Zから独立しています。 +Vct a以降はList 27~同様にMat a~と同じ領域を使用します。 + + +=============================================================================== +文字列について +=============================================================================== +純正Casio Basicと同じくStr文字変数や文字列関数が使えますが、文字列の実体は行列として実装しています。 + +プレフィックスとして$を付けることでMat行列は文字列として認識されます。 +(例)["ABCDEF"]→Mat A +   Locate 3,3,$Mat A + 画面座標(3,3)に"ABCDEF"が表示されます。 + + 最初に + {7,1}→Dim Mat A.B + と同じ初期化が自動的にされます。 + そして文字列は行列内ではバイト型データとして格納されます。 + + +・Casio Basic互換で使える文字列関数 + + (文字列同士の連結) + StrJoin( + StrLen( + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrLwr( + StrInv( + StrShift( + StrRotate( + +(例)"ABCDEF"→Str 1 +   Locate 3,3.StrRight(Str 1, 3) + 画面座標(3,3)に"DEF"が表示されます。 + + +fx-CG10/20/50で使われる文字は1バイト文字(英数字、一部のコマンド)と2バイト文字(ほぼすべてのコマンド、特殊文字およびカナ)、GB文字(2バイト)、GB文字が有効なときのエスケープ付き特殊文字(2バイト・4バイト)があり、 +内部では1バイトと2バイト、4バイト文字が混在する状態となりますが、文字関数での扱いは純正同様にすべて1文字扱いとなります。 +文字列が格納された行列要素に直接アクセスする場合は文字の位置に注意して下さい。 + + +=============================================================================== +文字列の初期化について +=============================================================================== +純正と同じ文字列変数 Str 1-20はデフォルトではMat行列の<r>を暗黙的に使用します。 +C.Basic では、20個から 999個に拡張され Str 999 まで使えます。 +デフォルトでは文字列のサイズが255バイトまでとなっています。 +Str文字変数は自動的にMat行列として確保され、次の文字列コマンドにおいては純正互換で使えるので、行列を意識する必要はありません。 +1つかそれ以上の Str文字列をプログラムで使う時、Str <数字> の数字の最大値 M の場合、M行のMat <r>行列の初期化が自動的に行われます。 + {M,256}→Dim Mat <r> +※ は太文字の r の入力は、[ALPHA]+[x^2] です。 + +なお、Str文字変数の実体となるMat行列は任意指定することも出来、Str変数を使う前にコメント欄で指定します。 +(例)'#Str A + Str変数をMat Aとして確保します。 + {20,256}→Dim Mat A.B + と同じです。 +(例)'#Str B,30,256 + Str変数をMat Bとして30個、255バイトまで可能な変数として確保します。 + +文字列の代入は次の書式が使えます。 +(例)"ABCDEF"→Str 1 +(例)["ABC","TEST","1+3+5"]→Mat A + バイト型のMat A[3,6]行列を自動的に確保してそれぞれの要素に文字列を配置します。 +  Mat A[1,1]="ABC" +  Mat A[2,1]="TEST" +  Mat A[3,1]="1+3+5" + となります。 + 文字列対応コマンドで"ABC"にアクセスするには$Mat A、もしくは$Mat A[1],もしくは$Mat A[1,1]となります。 + "1+3+5"をアクセスするには$Mat A[3],もしくは$Mat A[3,1]となります。 +(例)Locate 1,1,$Mat A + Locate 1,1,"ABC"と同じです。 +(例)Locate 1,1,$Mat A[3,3] + Locate 1,1,"3+5"と同じです。 + +現バージョンでの文字列対応コマンドです。" "の代わりに$Mat形式で使用します。 +・" " +(例)$Mat A[1] +  "ABC"と同じです。 +・? +(例)?→$Mat A + 行列Mat Aに文字列を入力します。確保している要素数で文字数が制限されます。 +・Locate +・Text +・LocateYX +・Exp( +(例)Exp("1+2+3")→6 +(例)Exp($Mat[3,3])→8 + 文字列を数式として評価、値を返します。 + + +=============================================================================== +拡張文字列コマンドSprintf(について +=============================================================================== +(説明)Cのライブラリ関数sprintfのC.Basic版です。 +(書式)Sprintf("書式指定子",引数1[,引数2[,引数3]]) +※ 書式指定子はANSI Cの sprintf と完全互換ではありません。 +※ 引数は3個まで指定可能。 +※ 引数が整数の場合はプレフィックス%を、実数にはプレフィックス#を指定します。 +※ 引数のプレフィックスを省略した場合は、その時点での実行モード(実数か整数)に従います。 +(注)Sprintf( は引数チェックをしていないので、間違った設定によりシステムエラーになる +   可能性が有ります。 + +(例)Sprintf("A=%4d B=%3.2f",%A,#B) +※ A=1234, B=45.68 の場合、変換される文字列は "A=1234 N=45.68" となります。 + +(例)Sprintf("%g%s",#1.234,"sec")→Str 1 +※ Str 1 に代入される文字列は "1.234sec" となります。 + +(例)Sprintf("Result=%08.3f",#123.45) +※ 変換される文字列は、全8桁、小数点以下3桁でセロ詰めで "Result=0123.450" となります。 + +(例)Sprintf ("%e",#123456.78) +※ 変換される文字列は、指数表示で "1.234568E+05" となります。 + +(例) Sprintf("%.3e",#123456.78)→Str 1 +※ 変換される文字列は、小数点以下3桁の指数表示で "1.235E+05" となります。 + + +◆ 書式指定子:"%[フラグ文字][変換文字数指定][.小数点以下文字数指定]<変換指定子>" +(注) C.Basic for FX での書式指定子はCasio SDK準拠、C.Basic for CG は以下のようになっています。 +---------------------------------------------------------------------- +・ " " の中に記述する +・ %に続いて以下の[フラグ文字]を指定する。指定しなくても良い。 +---------------------------------------------------------------------- + 0 ゼロ詰めを指定するフラグ。左側に余った空白は全て0になる。 + 空白 符号付き正の数の場合左側に1文字空白を空ける。 + - 左詰めを指定する。(※[F5](CHAR)よりマイナスキャラクタを選択して下さい。) +---------------------------------------------------------------------- +・ 続いて[変換文字数指定]で全文字数を指定する。指定しなくても良い。 +・ さらに "." に続いて小数点以下文字数を指定する。指定しなくても良い。 +・ 最後に以下の<変換指定子>を指定する。これは必ず指定する。 +---------------------------------------------------------------------- + d 10進数整数に変換する。 + o 符号なし8進数に変換する。 + u 符号なし10進数に変換する。 + x 符号無し16進数に変換する。10~16までは小文字 a, b, c, d, f で表示 + X 符号なし16進数に変換する。10~16までは大文字 A, B, C, D, F で表示 + b / B 符号なし2進数に変換する。 + f 実数に変換する。 + e / E 指数に変換する。変換文字数指定は無視され、小数点以下文字数は有効 + g / G 実数か指数に最適化して変換する。 + s 文字列に変換する。 + + + +=============================================================================== +コマンドリファレンス +=============================================================================== +フルサポート及び一部サポートされているCasio Basic互換コマンド +=============================================================================== +? +▲ (Disps) +→ +If ~ Then ~ Else ~ IfEnd +Lbl ~ Goto += != > < >= <= + +Dsz / Isz +=> +Locate +Menu + +For ~ To ~ Step ~ Next +While ~ WhileEnd +Do ~ LpWhile +Break +Return +Stop +Getkey +Prog + +ClrMat +ClrList +ClrVct +Mat (行列演算機能をサポートしています。) +List (Listを含む演算をサポートしています。) +Vct +Dim +Fill( +Seq( +Augment( +Mat>List( +List>Mat( +Min( +Max( +Mean( +SortA( +SortD( +Sum +Prod +Swap / *Row / *Row+ / Row+ +Det +Trn +Identity +DotP( +CrossP( +Angle( +UnitV( +Norm( (行列のノルム計算は未対応です。) +nPr +nCr + +i / Arg / Conjg / ReP / ImP / >r∠θ / a+bi +Real / a+bi / r∠θ + +Cls ClrText ClrGraph +ViewWindow +StoV-Win / RclV-Win +Plot / PlotOn / PlotOff / PlotChg +Circle +Line / F-Line +Vertical / Horizontal + +PxlOn / PxlOff / PxlChg +PxlTest( +Text + + +SketchNormal / SketchThick / SketchBroken / SketchDot / SketchThin +S-L-Normal / S-L-Thick / S-L-Broken / S-L-Dot / S-L-Thin + +G-Connect / G-Plot +CoordOn / CoordOff +GridOn / GridOff / GridLine +AxesOn / AxesOff / AxesScale +LabelOn / LabelOff +DerivOn / DerivOff +BG-None / BG-Pict +FuncOn / FuncOff +S-WindAuto / S-WindMan + + +DrawGraph (一部サポート) +Graph Y= (一部サポート) +GraphY (一部サポート) + +Graph(X,Y)=( (一部サポート) +DrawStat (一部サポート) +S-Gph1、S-Gph2、S-Gph3、DrawOn、DrawOff、Scatter、xyLine、Square、Cross、Dot + +Xmin Ymin Xmax Ymax Xscl Yscl Xfct Yfct Xdot +TθMin TθMax TθPtch + +Deg Rad Gra + +And Or Not Xor + +Abs Int Frac Intg +! +GCD( LCM( +MOD( +Rmdr Int÷ +Σ( +log ln logab( +10^x e^x +x^-1 +sqr x^2 +sqr^-3 +sin cos tan +sin^-1 cos^-1 tan^-1 +sinh cosh tanh +sinh^-1 cosh^-1 tanh^-1 + +femto pico nano micro milli Kiro Mega Giga Tera Peta Exa + +°(deg) r (rad) g (gra) +° >DMS +Pol( Rec( + +fn + +Str +StrJoin( +StrLen( +StrCmp( +StrSrc( +StrLeft( +StrRight( +StrMid( +Exp>Str( +Exp( +StrUpr( +StrLwr( +StrInv( +StrShift( +StrRotate( + +StoPict / RclPict +StoCapt / RclCapt + +Ran# RanInt#( RanNorm#( RanBin#( RanList#( +Rnd RndFix( +Norm / Fix / Sci +Eng / EngOn / EngOff + + +Black Blue Red Magenta Green Yellow Cyan +Plot/Line-Color + + +=============================================================================== +コマンドリファレンス 拡張コマンド +=============================================================================== +------------------------------------------------------------------------------- +? [SHIFT]+[VARS](PRGM)-[F4](?) +------------------------------------------------------------------------------- +?コマンドにオプション追加で入力形式を選択できます。 +(書式)?[##/%%]([@][x][,y][,width][,"空白キャラクタ"][,入力桁数][,R][,M]) + このオプションを付けると直前のカーソル位置から改行されません。入力プロンプトの"?"も表示されません。 + 各パラメータは省略できます。 + [##]オプションによりGB文字の入力が出来ます。 + [%%]オプションにより強制的にGB offにします。 +(例)"A="?()->A + "A="に続いて入力待ちになります。 +(例)"A="?(,,,,,R)->A + "A="に続いて反転表示で入力待ちになります。 +(例)"A="?(,,8,,,R)->A + "A="に続いて反転入力待ちになります。入力範囲は8桁分のみです。それを超える入力では横スクロールします。 +(例)?(3,4,5,">",5)A + X=3,Y=4の位置でAの値を表示して入力待ちになります。入力範囲と入力桁ともに5桁のみ、空白は">"で埋められます。 +(例)?(3,4,5,,5,R)A + X=3,Y=4の位置でAの値を反転表示して入力待ちになります。入力範囲と入力桁ともに5桁のみです。 + +(例)?(@30,40,5,">",5)A + 現在のVRAMのピクセル座標(X=30,Y=40)の位置でAの値を表示して入力待ちになります。入力範囲と入力桁ともに5桁のみ、空白は">"で埋められます。 +(例)?(@30,40,5,">",5,,M)A + 現在のVRAMのピクセル座標(X=30,Y=40)の位置でAの値をミニフォントで表示して入力待ちになります。空白は">"で埋められます。 + ミニフォント入力の場合は[@]オプションが必須です。 + +------------------------------------------------------------------------------- +Menu [SHIFT]+[VARS](PRGM)-[F3](JUMP)-[F6](Menu) +------------------------------------------------------------------------------- +タイトルの色はMenuコマンド直前の色指定が有効になります。 +メニュー項目はPlot/Line-Colorの色設定が有効になります。 +メニュー背景はBack-Colorで指定している色になります。 +(例)Plot/Line-Color Blue +   Back-Color Black +   Red Menu "MENU TITLE","1st item",1,"2nd item",2 + +コマンド直後に"@"を付けるとFX版互換表示になります。 +タイトルやメニュー項目の直前に[##/%%]をつけることで、GBの表示を制御できます。 +[##]オプションによりGB文字を表示することが出来ます。 +[%%]オプションにより強制的にGB offとして表示します。 + + +------------------------------------------------------------------------------- +Fix [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F1](Fix) +Sci [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F2](Sci) +Norm [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F3](Norm) +Eng [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F3](Eng) +------------------------------------------------------------------------------- +Eng,Norm,Fix,Sciの状態の読み出しが可能です。 +Engモードは変数(Eng)で取得できます。 +返り値0:EngOff +返り値1:EngOn +返り値3:EngOn 3 (3桁区切り) + +Norm、Fix、Sci +はそれぞれ引数に負数を指定すると現在の設定値を返します。 +※引数の()は無くても構いません。 + +現在の設定がNorm 1の場合の返り値は、 +Norm (-1)で1 +Fix (-1)では-1 +Sci (-1)では-1 + +現在の設定が Fix 8の場合は、 +Norm (-1)で-1 +Fix (-1)では 8 +Sci (-1)では-1 +になります。 + + +Fix, Sci, Norm には、それぞれ 0 から 15 までの数値が指定できます。 + +Fix:|x| ≧ 10^17 の場合は指数表示します。その他の動作は純正 Casio Basic 互換です。 + +Sci:Sci 0 の場合は有効桁数 16 桁で表示します。その他の動作は純正 Casio Basic 互換です。 + +Norm:Norm 1 と Norm 2 は純正 Casio Basic 互換の 10 桁表示で、Norm 0 は 16 桁表示、その他の場合は指定した桁数を表示します。値が次の範囲の場合は指数表示となります。 +- Norm 1 …… 0.01 > |x|, |x| ≧ 10^10 +- Norm 2 …… 0.000000001 > |x|, |x| ≧ 10^10 +- Norm n (3≦n≦15) …… 0.01 > |x|, |x| ≧ 10^n +- Norm 0 …… 0.01 > |x|, |x| ≧ 10^15 + +------------------------------------------------------------------------------- +EngOn [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F1](EngOn) +------------------------------------------------------------------------------- + 3桁区切りも可能になります。 +(例)EngOn 3 + このコマンド以降の数値出力が3桁区切りになります。 + EngOffで通常モードに戻ります。 + +------------------------------------------------------------------------------- +RndFix( [OPTN]-[F6]-[F4](NUMERIC)-[F6]-[F1](RndFix) +------------------------------------------------------------------------------- +小数点以下桁数指定で丸めるRndFix(コマンドに、有効桁数指定で丸めるSciオプションを追加しました。 +(書式)RndFix(数式, Sci 桁数) +(例)RndFix(1.23456789e-123,Sci 5) + 1.2346e-123が返ります。 + +------------------------------------------------------------------------------- +Ran# [OPTN]-[F6]-[F3](PROB)-[F4](RAND)-[F1](Ran#) +------------------------------------------------------------------------------- +乱数の初期値を変数で指定できるようになりました。 +(書式)Ran# #初期値 +(例)Ran# #12345 +(例)Ran# #A + +------------------------------------------------------------------------------- +StoPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F1](Store) +RclPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F2](Recall) +------------------------------------------------------------------------------- +ストレージメモリと内部ヒープメモリで動作するモードを切替できます。 +セットアップにてストレージメモリとの切り替え動作になります。 +ヒープメモリ指定の場合はPictファイルの互換が無くなる代わりに速度向上しました。 +Basic動作上の互換性は確保されていますので、純正Casio Basicのソースはそのままで動きます。 + + +------------------------------------------------------------------------------- +ElseIf [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F5](ElseIf) +------------------------------------------------------------------------------- +(書式)If~Then~ElseIf~IfEnd +(例) + If A:Then + Locate 1,1,"A" + ElseIf B:Then + Locate 1,2,"B" + EndIf + +・Ifに対応するIfEndが無い場合にエラーとするかどうかをセットアップで選択出来ます。 + セットアップでチェックをOnにすれば実行時に対応するIfEndが無いIfコマンドの箇所でエラーになります。 + + +------------------------------------------------------------------------------- +Locate [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F1](Locate) +------------------------------------------------------------------------------- +・Locateコマンドの表示で反転表示や重ね合わせ表示が可能です。 + 外部フォントが読み込まれている場合は外部フォント表示になります。 + +(書式)Locate [@][!]csrX,csrX,[##/%%]"文字列"or数式 [,N/O/R/V][,F][,フォント縦ドット数] + [@] 現在のVRAMに描画します。 + [!] 外部フォントが導入されていても標準内蔵フォントで描画します。 + [##] GBフォントを表示します。 + [%%] 強制的にGB offとして表示します。 + [N] Normal + [R] Reverse + [O] Or + [V] reVerse or + [F] 通常、GBフォントは24ドット表示ですが、18ドット幅固定ピッチで表示します。 + + +(例)Locate 1,2,"Test",R +  テキストVRAMのテキスト座標(1,2)に"Test"が反転表示で表示されます。 + +(例)Locate @!3,4,"Test",O +  現在のVRAMのテキスト座標(3,4)に"Test"が背景に重ねて表示されます。 + + +・Sprintf(、Locate、Text、Dispコマンドでの#プレフィックスは実数式評価となります。 + 整数モードでは常に整数値しか得られないので、#プレフィックスを付けた式では実数式評価で実数値が返ります。 + 整数モードでしか意味は無いのですが整数モードにおけるSprintf(やLocate、Textコマンドで実数値を扱うことが出来ます。 + +(例)'#CBINT +   10→A +   Locate 1, 2, log 123+A + 整数モードでは整数値に丸められて12となってしまうのですが、 +(例)'#CBINT +   10→A +   Locate 1, 2, #log 123+A + #プレフィックスを付けると12.089905111と表示されます。 + #以降の式評価は実数式として行われますが、変数は整数変数のまま扱われます。%を付ける必要はありません。 + + +------------------------------------------------------------------------------- +Switch [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F1](Switch) +Case [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F2](Case) +Default [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F3](Default) +Break [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F4](Break) +SwitchEnd [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F5](SwitchEnd) +------------------------------------------------------------------------------- +(説明)Switchコマンドを追加しました。C言語同様フォールスルー可です。ただしDefaultは最後でないと期待した動作になりません。 +    新規コマンドはSwitch、Case、Default、SwitchEndとなります。Breakは従来コマンドです。 +(例) + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + + +------------------------------------------------------------------------------- +ACBreak [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F2](ACBreak) +------------------------------------------------------------------------------- +(説明)プログラム中で[AC]での一時中止と同じ結果となります。 + セットアップにてACBreakコマンドの有効/無効の切り替えが出来ます。 + 無効(off)にした場合はスルーされてプログラムの実行に何も影響を及ぼしません。 +(書式)ACBreak + +(例)ACBreakStop + 直後にStopコマンドを付けることで、ACBreakStopとなりますが、 + これ以降に実行されるACBreakコマンドをすべてキャンセルします。 + セットアップでのキャンセルと同じです。 + + +------------------------------------------------------------------------------- +Local [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F5](Local) +------------------------------------------------------------------------------- +(説明)デフォルトでは小文字変数は全てグローバル変数扱いですが、任意の小文字変数をローカル変数とすることが出来ます。 +    プログラム内でLocalコマンドで変数指定するとその変数はそのプログラム内だけで使われるローカル変数となります。 +(例)Local x,y,z + ローカル変数としてx,y,zを指定します。 + 指定できるのは小文字変数のみで最大10個まで指定できます。 + また、この変数の順で引数付きのProgとGosubでローカル変数に代入されます。 + +(例)サブプログラム"TEST"内で、 +   Local x,y,z + (記述する位置はサブプログラム内であればどこでも可ですが、同じサブプログラム内で複数のLocalがある場合は最後に記述されたLocalのみが有効になります。) + +   Prog "TEST",123,456,N + サブプログラム"TEST"の実行時に、ローカル変数としてx,y,zが確保され、 + 123→x、456→y、N→z、それ以外はグローバル変数となります。 + +ローカル変数が使えるようになったことで再帰プログラムも可能になりますが、 +現状ではメモリ制限でネスト128層程度までとなっています。 + + +------------------------------------------------------------------------------- +Prog [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F1](Prog) +------------------------------------------------------------------------------- +(説明)Localコマンドを使うことで引数を記述することが出来ます。 +(例) + "MAIN"プログラム +  10→X +  20→Y + X+1→a + Y×2→b +  Prog "SUB",X,Y +  Disp Ans + Disp a + Disp b + + "SUB"プログラム +  Local a,b + Disp a + Disp b +  Return a+b +-------------実行結果 + 10 + 20 + 30 + 11 + 40 +------------- + + 2つの数値の和を計算するサブプログラムを呼び出し結果を表示します。 + サブプログラム内ではa,bはローカル変数として確保され、サブプログラム内ではグローバル変数a,bにはアクセス出来ません。 + メインプログラムのa,bはグローバル変数であり、サブプログラムのa,bの影響を受けません。 + + +------------------------------------------------------------------------------- +Return [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F2](Return) +------------------------------------------------------------------------------- +(説明)サブルーチンからメインルーチンに戻ります。返り値を指定することができます。 +(例)Return 式 +  返り値をAnsに代入してメインルーチンに戻ります。 + + 計算結果は常にAnsに代入されるので、 + + 式 + Return + + でも同じ結果になります。 + + +------------------------------------------------------------------------------- +Gosub [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F1](Gosub) +------------------------------------------------------------------------------- +(説明)単一のプログラム内でサブルーチンが使えます。 +(例)Gosub A + Lbl Aから始まるプログラムを実行しReturnコマンドで復帰します。 +(例)Gosub A,123,456 + 引数もProgコマンド同様に使えます。 + +(例) +  10→X +  20→Y + X+1→a + Y×2→b +  Gosub A,X,Y +  Disp Ans + Disp a + Disp b + Stop + + Lbl A +  Local a,b + Disp a + Disp b +  Return a+b +-------------実行結果 + 10 + 20 + 30 + 10 + 20 +------------- + + Progコマンドでのプログラム例を、Gosubを使用するプログラムに書き換えたプログラムです。 + a,bはローカル変数として確保され、このプログラム内ではグローバル変数a,bにはアクセス出来ません。 + + +------------------------------------------------------------------------------- +ElemSize( [OPTN]-[F2]-(MAT/VCT)-[F6]-[F5](SIZE)-[F2](Elem) +RowSize( [OPTN]-[F2]-(MAT/VCT)-[F6]-[F5](SIZE)-[F3](Row) +ColSize( [OPTN]-[F2]-(MAT/VCT)-[F6]-[F5](SIZE)-[F4](Col) +------------------------------------------------------------------------------- +(説明)行列の1要素当たりのサイズを取得する関数です。 +(書式)ElemSize( 行列名 ) + + 1要素のサイズ(ビット)を返します。 +(例) ElemSize( Mat A ) + +(書式)RowSize( 行列名 ) + {m,n}のm=行サイズを返します。 +(書式)ColSize( 行列名 ) + {m,n}のn=列サイズを返します。 + +------------------------------------------------------------------------------- +MatBase( [OPTN]-[F2]-(MAT/VCT)-[F6]-[F5](SIZE)-[F1](Base) +------------------------------------------------------------------------------- +(説明)行列のインデックス開始値を取得する関数です。 +(書式)MatBase( 行列名 ) +(例)MatBase(Mat A) + 行列Mat Aのインデックス開始値を返します。0か1になります。 + +------------------------------------------------------------------------------- +Getkey [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F2](Getkey) +------------------------------------------------------------------------------- +(説明)純正コマンドの機能に加えて、 +    キーが押されるまで待つGetkey1(SDKのGetkeyと同じ) +    キーバッファをクリアしてから入力するGetkey2 +    さらに一定時間キー入力待ちをするGetkey3 + 複数キーの同時読み込みをリストで返すGetkeyM + があります。 +    キーコードはSDK互換ではなくCasio BasicのGetkey互換です。 + + Getkey1/2において、SDKのキーコードを取得することが出来ます。 +(書式)Getkey@1 +(書式)Getkey@2 + [@]オプション追加でSDKのキーコードが返ります。 + + +(例)Getkey3(128) + コマンド実行時のタイマーを基準として128Ticksカウント(=1秒)のウエイト期間中にキー入力があれば最後に押されたキーコードが返ります。 +(例)Getkey3(128,A) + Aをタイマーの初期値として現在のタイマー値が128Ticksカウント経つまでキー待ちをします。 +(例)GetkeyM->List 1 + [EXE]と[F1]を同時押しした場合、 {79,31}が返ります。 + + +※Exec TimeDsp を有効にしている場合、 +・Getkey1/2実行中は時間計測は一時停止しますが、設定によりリセット&リスタートにすることも出来ます。 + セットアップもしくは以下の制御コマンドで設定できます。 +(書式)'#GetkeyC + デフォルトの計測の一時停止、継続モードです。 +(書式)'#GetkeyR + Getkey1/2実行後に計時がリセット&リスタートします。 + + +------------------------------------------------------------------------------- +Try~Except~TryEnd [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F3](Try) + (Ver 1.00以降) +------------------------------------------------------------------------------- +(説明)エラーの発生に応じた例外処理が出来ます。 +(書式)Try <プログラム> +(書式)Except エラーコード1 + <エラ-1の場合の処理> +(書式)Except エラーコード2 + <エラ-2の場合の処理> +(書式)TryEnd + <プログラム>にエラーが無ければTryEnd後に処理が移ります。 + エラー1が発生した場合、<エラ-1の場合の処理>を実行後、TryEnd後に処理が移ります。 + エラー2が発生した場合、<エラ-2の場合の処理>を実行後、TryEnd後に処理が移ります。 + エラー3が発生した場合、対応するExceptが無いので、エラーポップアップが出ます。 + +(書式)Except + 引数のないExceptはすべてのエラーに対応します。 + +(例)Try 3*4+ +   Except 1 +   "Syntax Error" +   TryEnd + ”3*4+”が文法が間違えているのでSyntaxErrorの番号=1に対応する"Syntax Error"が実行されます。 + +(例)Try 3*4/0 +   Except 1 +   "Syntax Error" +   Except 40 +   "Divide by Zero" +   TryEnd + ”3*4/0”が0での除算エラー=40に対応する"Divide by Zero"が実行されます。 + +(例)Try 3*4/0 +   Except 1 +   "Syntax Error" +   Except +   "Error" +   TryEnd + エラーに対応するExceptがない場合は、引数のないExceptはすべてのエラーに対応するので"Error"が実行されます。 + +サンプルプログラムはCBasic_sample/Try_Exceptにあります。 +エラーコードはErrorCode_List.txtを参照してください。 + + +------------------------------------------------------------------------------- +Version [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + (Ver 0.45以降) +------------------------------------------------------------------------------- +(説明)現在のC.Basicのバージョンを3桁の数字で返します。 +(例)Version + 現在のバージョンが0.45の場合、45が返ります。 + + +------------------------------------------------------------------------------- +System( [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F4](System) +------------------------------------------------------------------------------- +(説明)SysCallでは取得することが出来ないC.Basic独自の内部値を取得します。 + 引数は、 + 0:バージョン Versionコマンドと同じ + 1:VRAMアドレス (純正)162KB + 2:テキストVRAMアドレス (C.Basic)162KB + 3:グラフィックVRAMアドレス (C.Basic)162KB + 4:ワークRAM (C.Basic) 256KB + 10:クリップボードバッファ (C.Basic) 32KB + -4:残りのヒープ領域サイズ(KB単位) + -3:確保したヒープ領域サイズ + -2:OSのバージョンの3桁の整数値(OS 3.10なら310) + -1:機種判定(CG10なら10、CG20なら20、CG50なら50) + + +=============================================================================== +コマンドリファレンス 拡張グラフィックコマンド +=============================================================================== +CG10/20/50シリーズの画面の実座標は +(0,0)-(383,215)が有効ですが、 +C.BasicではFX版の(0,0)-(127,63)から3倍にした(0,0)-(383,191)として、 +ステータスラインをマイナス方向に伸ばすことによって、 +(0,-24)-(383,191) +の座標値が有効になっています。 + +ただし、純正互換、および純正系コマンドでは +(1,1)-(379,187)の座標値が有効で、 +これはC.Basicの座標では +(3,3)-(381,189)となっています。 +X,Yそれぞれ2ドットずつずれていますので注意して下さい。 + +今後、純正系と非純正系(ML系)のグラフィックスコマンドを区別するために +純正座標系と、ML座標系という分け方を使います。 + +=============================================================================== +テキスト系、グラフィック系表示コマンドにおいて +コマンドの直後に[@]を加えるとテキストモードおよびグラフィックモードに関係なく現在のVRAMが描画対象となります。 +------------------------------------------------------------------------------- +(例)Locate 2,2,"String" +   Text @16,1,"TextString" + Textコマンドは現在のVRAM(=テキストVRAM)に描画します。 + +------------------------------------------------------------------------------- +コマンド後の区切りが[:]コロンの場合は画面更新を抑制します。 +描画結果をLCD表示させるにはPutDispDD等の転送コマンドを使用して下さい。 +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +Line [SHIFT]-[F4](SKTCH)-[F6]-[F2](LINE)-[F1](Line) +F-Line [SHIFT]-[F4](SKTCH)-[F6]-[F2](LINE)-[F2](F-Line) +Circle [SHIFT]-[F4](SKTCH)-[F6]-[F3](Circle) +Vertical [SHIFT]-[F4](SKTCH)-[F6]-[F4](Vertical) +Horizontal [SHIFT]-[F4](SKTCH)-[F6]-[F5](Horz) +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) +   (純正座標系) +------------------------------------------------------------------------------- +コマンドの末尾に[,C]を加えると消去します。[,X]で反転します。 + (例)FLine 1,1,30,20,X + + +------------------------------------------------------------------------------- +Text [SHIFT]-[F4](SKTCH)-[F6]-[F6]-[F2](Text) + (純正座標系) +------------------------------------------------------------------------------- +(説明) コマンドの最後に[,R]で反転表示、[,O]でOr表示、[,V]で反転Or表示、[,F]で固定ピッチ表示が出来ます。 +     外部フォントが読み込まれている場合は外部フォント表示になります。 +(書式)Text [@][!]Y,X,[##/%%]"文字列"or数式 [,N/O/R/V][,F/M/MB/FM/FMB/FX/X][,フォント縦ドット数] +  [@] 現在のVRAMに描画します。 +  [!] 外部フォントが導入されていても標準内蔵フォントで描画します。 +  [##] GBフォントを表示します。 +  [%%] 強制的にGB offとして表示します。 +  [,N] Normal +  [,R] Reverse +  [,O] Or +  [,V] reVerse or +  [,F] 固定ピッチ表示になります。(12ドット間隔固定) + +(例)Text 20,80,"Test",R +  グラフィック座標(80,20)に"Test"が反転表示で表示されます。 + +(例)Text @!20,80,"Test",O +  現在のVRAMの座標(80,20)に内蔵フォントで"Test"が背景に重ねて表示されます。 + +(例)Text 10,1,"Simple Text",,F + 固定ピッチ(12ドット間隔固定)でミニフォント表示されます。 +(例)Text 10,20,"ABC",,M + (X:20,Y:10)座標よりミニミニフォントで"ABC"と表示します。 +(例)Text 10,20,"ABC",,MB + (X:20,Y:10)座標よりミニミニボールドフォントで"ABC"と表示します。 +(例)Text 10,20,"ABC",,FM + (X:20,Y:10)座標より固定ピッチのミニミニフォントで"ABC"と表示します。 +(例)Text 10,20,"ABC",,FMB + (X:20,Y:10)座標より固定ピッチのミニミニボールドフォントで"ABC"と表示します。 +(例)Text 10,20,"ABC",,X +(例)Text 10,20,"ABC",,FX + (X:20,Y:10)座標より超ミニフォントで"ABC"と表示します。 + +(例)Text 10,1,"Simple Text",,,16 + 上端から16ドット分のミニフォント表示されます。 + 本来は縦18ドットフォントなので下2ドットは表示されません。 +(例)Text 10,1,"Simple Text",,F,20 + 固定ピッチ(12ドット間隔固定)で上端から20ドット分のミニフォント表示されます。 + 本来は縦18ドットフォントなので下に2ドット分の余白が追加されます。 + +------------------------------------------------------------------------------- +LocateYX [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F3](LocateYX) + (ML座標系) +------------------------------------------------------------------------------- +(説明)グラフィック画面にLocateと同じサイズの文字表示が出来ます。 +    LocateのTextコマンド版です。 +(書式)LocateYX [@][!]Y,X,[##/%%]"文字列"or数式 [,N/O/R/V][,F][,フォント縦ドット数] +    座標指定はTextコマンドと同じくY座標が先になります。 +  [@] 現在のVRAMに描画します。 +  [!] 外部フォントが導入されていても標準内蔵フォントで描画します。 +  [##] GBフォントを表示します。 +  [%%] 強制的にGB offとして表示します。 +  [,N] Normal +  [,R] Reverse +  [,O] Or +  [,V] reVerse or +  [,F] 通常、GBフォントは24ドット表示ですが、18ドット幅固定ピッチで表示します。 + +(例)LocateYX 20,80,"Test",R +  "Test"がグラフィック座標(80,20)に反転表示で表示されます。 + +(例)LocateYX 20,80,##"TestGB文字列",,F +  "Test"がグラフィック座標(80,20)に18ドット固定ピッチでGB文字列が表示されます。 + +------------------------------------------------------------------------------- +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) + (純正座標系) +------------------------------------------------------------------------------- +(説明)矩形を表示します。座標は実座標指定となります。 +(例)Rect 1,1,379,189 +  画面いっぱいに枠を描きます。 + +------------------------------------------------------------------------------- +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) +                               (純正座標系) +------------------------------------------------------------------------------- +(説明)塗りつぶした矩形を表示します。 +(例)FillRect 1,1,379,189 +  画面を塗り潰します。 + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) + (ML座標系) +------------------------------------------------------------------------------- +(説明)グラフィック画面のビットマップデータをビット単位で読み取ります。 +(書式)ReadGraph(px1,py1,px2,py2)→Mat A +  グラフィック画面の(px1,py1)-(px2,py2)の範囲をMat A行列に取り込みます。 +  行列は事前に確保しておく必要はありません。自動的に適切な行列サイズで確保します。 +  行列の型指定が無い場合は1ビット型になります。 +  WriteGraphコマンドでそのまま使えるデータとなります。 + +なお、行列の型指定で取得ビット数を1ビットか16ビットかを選択できます。 +(g1mモードでのデフォルトは1ビット、g3mモードでのデフォルトは16ビットになっています。) +(例)ReadGraph(0,0,15,23)->Mat A + (0,0)-(15,23)の領域を16ビットカラーで行列Aに取り込みます。 +(例)ReadGraph(0,0,15,23)->Mat A.P + (0,0)-(15,23)の領域を1ビットモノクロで行列Aに取り込みます。 + +------------------------------------------------------------------------------- +WriteGraph [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F4](WriteGraph) + (ML座標系) +------------------------------------------------------------------------------- +(説明)ビットマップデータを表示します。 +    ビットマップデータは予めMat行列に入力しておきます。 +(書式1)WriteGraph x,y,dx,dy,Mat A ,P1[,P2] +  グラフィック画面の座標(x,y)より幅dx、高さdyの範囲にMat Aのデータを描画します。 +  P1はデータの表示前加工指定で[,N]でそのまま加工無し、[,R]で反転、[,M]でメッシュ加工、 +  P2は指定無しでオーバーライト表示、[,A]でAnd表示、[,O]でOr表示、[,X]でXor表示となります。 +(例)[[1,2,4,8,16,32,64,128]]→Mat A +  WriteGraph 80,20, 8,8, Mat A, N +  グラフィック画面の座標(80,20)より斜めの線[/]が描画されます。 + +(書式2)WriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2] +  グラフィック画面の座標(x,y)より幅dx、高さdyの範囲にMat Aの[m,n]からのデータを描画します。 +(例)[[16,32,64,128][128,64,32,16]]→Mat A +  WriteGraph 80,20, 4,4, Mat A[1,1], N +  WriteGraph 80,24, 4,4, Mat A[2,1], N +  グラフィック画面の座標(80,20)より[<]の図形が描画されます。 + +  WriteGraph 80,20, 4,8, Mat A, N +  でも同じ結果となります。 + + ビットマップデータは8ビット単位で左上が基準になります。 +(以上g1mモード) + +(g3mモード) +※1ビット行列の場合のみモノクロ描画になります。 + それ以外は16ビットカラー描画となります。 + 16ビット描画で透過色指定するにはコマンド実行前にTransp-Colorで指定してください。 + +------------------------------------------------------------------------------- +DotGet( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F1](DotGet) +     (ML座標系) +------------------------------------------------------------------------------- +(例)DotGet( px1,py1, px2,py2)→Mat A[x,y] +  画面上の(px1,py1)-(px2,py2)の範囲をMat A[x,y]を始点として取り込みます。 +  指定範囲よりも行列が足りない場合は行列サイズまで取り込みます。 + +なお、行列の型指定で取得ビット数を1ビットか16ビットかを選択できます。 +(g1mモードでのデフォルトは1ビット、g3mモードでのデフォルトは16ビットになっています。) +(例)DotGet(0,0,15,23)->Mat A + (0,0)-(15,23)の領域を16ビットカラーで行列Aに取り込みます。 +(例)DotGet(0,0,15,23)->Mat A.P + (0,0)-(15,23)の領域を1ビットモノクロで行列Aに取り込みます。 + +------------------------------------------------------------------------------- +DotPut( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F2](DotPut) +         (ML座標系) +------------------------------------------------------------------------------- +(例)DotPut( Mat A, x,y, px1,py1, px2,py2) +  Mat A行列の(x,y)の要素を始点として、画面上の(px1,py1)-(px2,py2)の範囲に点を打ちます。 + +(例)DotPut( Mat A[x,y], x1,y1, x2,y2)→Mat B +  Mat A行列の[x,y]を始点として、Mat Bの[x1,y1]-[x2,y2]の範囲にコピーします。 +  Mat Bがコピー範囲が収まる広さを確保していない場合は、Mat Bに収まる範囲でコピーします。 +  グラフィック画面への転送は行いません。 + +(例)DotPut( Mat A[x,y], x1,y1, x2,y2) +  Mat A行列の(x,y)の要素を始点として、画面上の(px1,py1)-(px2,py2)の範囲に点を打ちます。 + +------------------------------------------------------------------------------- +DotTrim( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F3](DotTrim) +     (ML座標系) +------------------------------------------------------------------------------- +(例)DotTrim(Mat A, x1,y1,x2,y2)→Mat B + Mat行列内の[x1,y1]-[x2,y2]範囲の0ではないデータの矩形領域をトリミングしてMat B行列にコピーします。 + コピーする行列が確保されてない場合は新たに確保されます。 +(例)DotTrim(px1,py1,px2,py2)→Mat A + グラフィック画面からトリミング入力、 + グラフィックの(px1,py1)-(px2,py2)の範囲のドットが打たれている矩形領域をMat A行列にコピーします。 +どちらの場合も、矩形領域サイズ(Mat行列の確保サイズ)はX,Y変数に自動的に入ります。 +0ではないデータの矩形領域の右上X,Y座標は小文字変数x,yに自動的に入ります。 + +------------------------------------------------------------------------------- +DotLife( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F4](DotLife) +     (ML座標系) +------------------------------------------------------------------------------- +(説明)ライフゲーム専用コマンドです。 +(例)DotLife(Mat A, x1,y1,x2,y2)→Mat B + Mat Aの座標(x1,y1)-(x2,y2)の範囲をライフゲーム演算してMat Bに格納します。 + Mat AとMat Bは同じサイズの行列である必要があります。 + コマンド実行後に(x1,y1)-(x2,y2)の範囲よりもセルが広がった場合、その矩形範囲より±1の座標が整数変数に自動的に入ります。 + 整数変数L : 左端座標-1 + 整数変数R : 右端座標+1 + 整数変数T : 上端座標-1 + 整数変数B : 下端座標+1 + +------------------------------------------------------------------------------- +CellSum( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F5](CellSum) +     (ML座標系) +------------------------------------------------------------------------------- +(説明)ライフゲーム専用コマンドです。 +(例)CellSum(Mat B[X,Y])→C +  Mat B[X,Y]周辺8ドットの合計値を計算します。 + + + + +=============================================================================== +コマンドリファレンス 拡張その他コマンド +=============================================================================== +------------------------------------------------------------------------------- +KeyRow( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F5](KeyRow) +------------------------------------------------------------------------------- +(説明)キーマトリクスのキースキャン結果を返します。 + +    返り値対応ビット(2進数) +    bit6 bit5 bit4 bit3 bit2 bit1 +  Row--------------------------------------Row +  09  F1 F2 F3 F4 F5 F6 09 +  08  SHIFT OPTN VARS MENU ← ↑ 08 +  07  ALPHA x^2 ^ EXIT ↓ → 07 +  06  XθT log ln sin cos tan 06 +  05  ab/c F<>D ( ) , → 05 +  04  7 8 9 DEL 04 +  03  4 5 6 × ÷ 03 +  02  1 2 3 + - 02 +  01  0 . EXP (-) EXE 01 +  Row--------------------------------------Row + +(例)KeyRow(9) +  F4とF6を同時に押した場合は、bit3とbit1が1になり、返り値としては +  2^3 + 2^1 = 10 が返ります。 + +------------------------------------------------------------------------------- +Ticks [VARS]-[F3](Extend)-[F1](Ticks) +------------------------------------------------------------------------------- +(説明)1/128sのタイマー変数です。%で置き換えられます。 +(例)0→Ticks + 内部タイマーを初期化します。内蔵RTCは変更されません。 + 内部タイマーは1/128s毎にカウントアップされる32ビットカウンタで、24時間で元に戻ります。 + 最大値は24×60×60×128 -1 = 11059199となります。 + +------------------------------------------------------------------------------- +Ticks% / %% +------------------------------------------------------------------------------- +(説明)1/32768sのタイマー変数です。Ticks/%の後に、%を1つ付加します。 +(例)0→Ticks% + 内部タイマーを初期化します。内蔵RTCは変更されません。 + 内部タイマーは1/32768s毎にカウントアップされる32ビットカウンタです。 + 最大値は2^32-1 = 4294967295 = -1 となります。 + +------------------------------------------------------------------------------- +TicksWait / %Wait +------------------------------------------------------------------------------- +(説明)1/128s単位で時間待ちをします。 + (Ticks/%とWaitコマンドの連続合わせ技です。) +(例)TicksWait 128 + 1秒間待ちます。 +(例)TicksWait -128 + 前回のTicksWaitコマンド実行時より1秒間待ちます。すでに1秒を越えていた場合は待ち時間無しで次の処理に移ります。 +(例)TicksWait -4 + 前回のTicksWaitコマンド実行時より4/128秒待ちます。ループ内にこのコマンドを一つ記述するだけで毎秒32回のループが作れます。 + +------------------------------------------------------------------------------- +Ticks%Wait / %%Wait +------------------------------------------------------------------------------- +(説明)1/32768s単位で時間待ちをします。 + (Ticks/%とWaitコマンドの間に%を挟みます。) + +------------------------------------------------------------------------------- +DATE [VARS]-[F3](Extend)-[F3](DATE) +TIME [VARS]-[F3](Extend)-[F4](TIME) +------------------------------------------------------------------------------- +(説明)内蔵RTCの設定、読み出しを行います。文字列型の変数です。 +(例)"2017/01/17"→DATE +(例)DATE + 2017/01/17 TUE + と表示されます。曜日は自動計算されます。 + +(例)"23:59:59"→TIME +(例)TIME + 23:59:59 + と表示されます。 + +------------------------------------------------------------------------------- +Disp [SHIFT]+[VARS](PRGM)-[F6]-[F2](DISPLAY)-[F6](Disp) +------------------------------------------------------------------------------- +(説明)一時停止コマンド▲(Disps)と違い一時停止しない表示コマンドです。 +    表示ごとに一行スクロールします。 +(書式)Disp 式 +(例)Disp A+B + +------------------------------------------------------------------------------- +BackLight [VARS]-[F3](Extend)-[F5](BackLight) +------------------------------------------------------------------------------- +バックライトの明るさを設定します。 +(書式)Backlight 明るさの値 + 明るさの値:0~511 + 0~255:サブレベル +  +256:メインレベル +(書式)+Backlight + 現在のバックライトの明るさの値を読み取ります。 + +------------------------------------------------------------------------------- +RefrshCtrl [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F1](RefrshCtrl) +RefrshTime [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F2](RefrshTime) +------------------------------------------------------------------------------- +・画面のリフレッシュをコマンドで設定できるRefrshCtrlとRefrshTimeコマンドを追加しました。 +(書式)RefrshCtrl 式 +(書式)RefrshTime 式 + +(例)RefrshCtrl 0 + リフレッシュコントロール無し。Off +(例)RefrshCtrl 1 + リフレッシュコントロール有り。Grphモードに設定します。 +(例)RefrshCtrl 2 + すべてのリフレッシュコントロール有り。Allモードに設定します。 + +(例)RefrshTime 5 + リフレッシュコントール時間を5/128sに設定します。 + +式の中で使うとRefreshCtrlとRefrshTimeコマンドを使うと現在の値を返します。 +(例)+RefrshCtrl + 現在のリフレッシュコントロール値を返します。 + 式の先頭にRefreshCtrlが来る場合はエラーになります。 + +------------------------------------------------------------------------------- +Screen [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F1](Screen) +------------------------------------------------------------------------------- +(説明)VRAMアクセス時の対象VRAMを選択し、画面モードを変更します。 +(書式1)Screen + テキスト/グラフィックの切り替えをします。 +(書式2)Screen.T またはScreen.t + テキストVRAMに切り替え、画面モードをテキストモードに変更し、 +(書式3)Screen.G またはScreen.g + グラフィックVRAMに切り替えます。 +(書式4)Screen 式 + 式の値が0の場合はテキストモード、1の場合はグラフィックモードに切り替えます。 + + 数式の中でScreenコマンドを使うとテキストVRAMの場合は0,グラフィックVRAMでは1が返ります。 +(例)+Screen + 式の先頭にScreenが来る場合はエラーになります。 + +・画面全体を反転します。 +(書式)Screen.R + +・論理座標系から物理座標を求めます。結果はListAnsに返ります。 +(書式) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +(例)Screen#1,1,-6.3,6.3,-3.1,3.1 +  g1mモードの場合、ListAns:{74,22} +  g3mモードの場合、ListAns:{220,64} + +・物理座標系から論理座標を求めます。結果はListAnsに返ります。 +(書式) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +(例)Screen%74,22,-6.3,6.3,-3.1,3.1 +  g1mモードの場合、ListAns:{1,1} + +(書式)Screen.O + テキスト画面で実行するコマンドの背景色がグラフィックス画面になります。 + つまり、テキスト画面にグラフィックス画面が合成表示されます。 + LCD出力時にテキスト画面=VRAMは合成後の画面となります。 +(書式)Screen.OT + テキスト画面で実行するコマンドの背景色がグラフィックス画面になります。 + LCD出力時にもテキスト画面=VRAMは変化しません。 +(書式)Screen.N + 通常モードに戻ります。 + +------------------------------------------------------------------------------- +PutDispDD [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F2](PutDispDD) +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +(説明)強制的に画面更新をします。 +(書式1)PutDispDD +(書式1)_DispVram +※注意 + PutDispDDと_DispVramコマンドで転送エリアが異なります。 + PutDispDD:転送範囲(0,0)-(383,191)  純正互換仕様です。 + _DispVram:転送範囲(0,-24)-(383,191) 上部ステータスライン分を含みます。 + +(書式2)PutDispDD@ 開始行, 終了行 +(書式2)_DispVram@ 開始行, 終了行 + 行の範囲は最上部(-24)から最下部(191)までとなります。 + どちらも同様の動作をします。 +(例)PutDispDD@ 0,23 + Locateでの1行目だけを転送します。 + + +------------------------------------------------------------------------------- +PopUpWin( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F5](PopUpWin) +------------------------------------------------------------------------------- +(説明)現在のVRAMにポップアップウインドウ枠を描画したり画面退避復帰を行ったりします。 + 関数としての実装です。数式の中でも使えます。 + +(書式1)PopUpWin( n ) + n行分のポップアップを表示させます。表示のみです。 + +・Exit ポップアップ。 +(書式2)PopUpWin(11,"メッセージ1行目"[,"メッセージ2行目"]) + 返り値は常に1です。コマンド終了時に画面が復帰します。 + [AC]無効の場合は[AC]でも復帰します。 + +・Yes No ポップアップ。 +(書式3)PopUpWin(10,"メッセージ1行目"[,"メッセージ2行目"]) + 返り値が[Yes]:1 [No]:0となります。コマンド終了時に画面が復帰します。 + [F1][F6]以外にも、[EXE]でYes、[AC]および[EXIT]でNoとなります。 + +・画面退避のみ ポップアップしません。 +(書式4)PopUpWin(0) + +・退避した画面の復帰のみ。 +(書式5)PopUpWin(9) + + 画面退避バッファはシステムと共通なので、退避後にポップアップが出るとバッファが上書きされ元に戻らなくなりますので注意して下さい。 + +------------------------------------------------------------------------------- +FKeyMenu( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F4](FKeyMenu) +------------------------------------------------------------------------------- +(説明)現在のVRAMがグラフィック画面の場合はグラフィック画面に、 + 現在のVRAMがテキスト画面の場合にはテキスト画面にファンクションメニューを表示、消去します。 + "文字列"かアイコンNo.を指定します。 + "文字列"はセンタリングして表示します。(Ver 0.45以降) + アイコン幅、アイコン色、アイコン背景色が新たに設定できるオプションを追加しました。(Ver 1.45以降) + +(書式)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,アイコン色 [,アイコン背景色]]] ) + ※ "アイコン色" はデフォルトで黒い部分の色指定です。 + ※ "アイコン背景色" はデフォルトで白い部分の色指定です。 + ※ 3番目以降の引数は省略可能です。引数を省略した場合でも”,"は必要です。 + + 3番目のオプションは順不同です。 + C:消去します。 + M:マスク処理します。 + N:ノーマル白アイコン。(省略可) + R:右下が欠けた黒アイコン + I:四角い黒アイコン + S:縁取りのある黒アイコン + U:文字列を1ドット上側に表示。 + L:表示範囲を左右2ドット広げます。 + +(例)FKeyMenu(1,42) + 1番目のファンクションメニューエリアに黒文字の白アイコンのEDITが描画されます。 +(例)FKeyMenu(1,42,,Blue ) + 1番目のファンクションメニューエリアに青文字のEDITが描画されます。 +(例)FKeyMenu(1,42,,Red ,Blue ) + 1番目のファンクションメニューエリアに青背景、赤文字のEDITが描画されます。 + +(例)FKeyMenu( 2,"ABCDE",RUL) + 2番めのファンクションメニューエリアに右下の欠けた黒アイコンに"ABCDE"と表示されます。 + +(例)FKeyMenu(3~4,"longtest",RGB(255,0,0)) + 3番めから4番めのファンクションメニューエリアに赤文字の白アイコンで"longtest"と表示されます。 + +(例)FKeyMenu( 4,"Mask",M) + 4番めのファンクションメニューエリアにマスク処理されたアイコンが表示されます。 + +(例)FKeyMenu( 2,"",C) + 2番めのファンクションメニューを消去します +(例)FKeyMenu( 1~6,"",C) + 1番めから6番めのファンクションメニューを消去します + +------------------------------------------------------------------------------- +Save [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F2](Save) +Load( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F3](Load) +------------------------------------------------------------------------------- +(説明)変数/行列/リストのデータを読み書きします。 +(例)Save "TEST",Mat A +(例)Load("TEST")→Mat A + Mat A行列の内容をファイルに保存したり、ファイルの内容をMat A行列に読み込んだりします。 + ファイル名は8文字まで、拡張子を省略した場合は[.bin]となります。 + 現状、アクセスできるのは行列データのみとなります。 + 保存形式はヘッダ無し、内部バイナリーデータそのままのデータファイルとなります。 + +(例)Save "TEST",Mat A[5,1] + Mat A[5,1]より最後まで保存します。 +(例)Load("TEST",16)→Mat A[10,1] + 保存されたデータの16バイト目のデータからMat A[10,1]に読み込みます + +------------------------------------------------------------------------------- +IsExist( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F1](IsExist) +------------------------------------------------------------------------------- +(説明)指定されたファイルが存在しない場合は0が返り値となります。ファイルが存在する場合はファイルサイズが返り値となります。 +(例)IsExist("/ABC/TEST") + "/ABC/TEST.bin"が存在すればファイルサイズが、存在しなければ0となります。 + ファイル名は8文字まで、拡張子を省略した場合は[.bin]となります。 + +(説明2)ファイルリストを取得します +(書式)IsExist("*.拡張子")->ファイル数 + Mat Ans:指定した拡張子のファイルがAns行列に作成されます。 + リストはアルファベット順にソートされます。 +(例)IsExist("*.bmp")->N + $Mat Ans[3] + リストの3番目のファイルを表示します。 + N:ファイル数が返ります。 + +------------------------------------------------------------------------------- +Delete [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F4](Delete) +------------------------------------------------------------------------------- +(説明)指定されたファイルを削除します。 +(例)Delete "TEST.dat" + "TEST.dat"が存在すれば削除します。 +(例)Delete "TEST.dat",1 + 削除前に確認ポップアップを表示します。"TEST.dat"が存在すれば削除します。 + ファイル名は8文字まで、拡張子を省略した場合は[.bin]となります。 + +------------------------------------------------------------------------------- +Alias [OPTN]-[F5](Extend)-[F1](Alias) + (v0.33αより仕様変更) +------------------------------------------------------------------------------- +(説明)英1文字の変数名やラベル名を別名に置き換えて同様にアクセスできるようにします。 + 変数と行列、ラベルそれぞれに32個までのエイリアスを利用できます。 + +(書式1)Alias 置き換える前の変数名=置き換え後の変数名(一文字キャラクター) + +(例)Alias A=α +   α+100→α +  Aliasコマンド実行後は、変数Aをαとして使用できます。 +  αの実体はAなので +  A+100→Aと同じです。 + +(例)Alias Mat A=α +   Mat α[1]+100→Mat α[1] +  Aliasコマンド実行後は、Mat変数Aをαとして使用できます。 +  αの実体はAなので +  Mat A[1]+100→Mat A[1]と同じです。 + +(例)Alias Lbl A=α +  Lbl α +  Goto α +  Gosub α + + +(書式2)Alias 置き換える前の変数名=_+8文字までの英数字 +  アンダーバーより始まる8文字までも自由な英数字名で同様にアクセスできます。 + +(例)Alias a=_abc_de +(例)Alias Mat a=_abcXY +(例)_abc_de+1->_abc_de +(例)Mat _abcXY[1,2]+1->Mat _abcXY[1,2] + 小文字変数aを_abc_de表記で使えます。 + 小文字行列aを_abcXY表記で使えます。 + +(例)Alias Lbl A=_Sub1 +  Lbl _Sub1 +  Goto _Sub1 +  Gosub _Sub1 + +------------------------------------------------------------------------------- +Wait [VARS]-[F3](Extend)-[F2](Wait) +------------------------------------------------------------------------------- +(説明)一定のウエイトをかけてプログラムの実行スピードを遅くします。 +(例)Wait 100 + ウエイト値に100を設定します。 + SH3機でもSH4機でも同じ程度の速度低下となっています。 + ウエイト値、10で約1/2,100前後で速度1/10になります。(速度低下の程度はプログラムによって異なります。) + +------------------------------------------------------------------------------- +ListCmp( [OPTN]-[F1](LIST)-[F6]-[F6]-[F5](Cmp) +------------------------------------------------------------------------------- +(説明)リスト同士を比較します。""を追加しました。 + リストとリスト、リストと値の比較ができます。 +(例)ListCmp({1,2,3},{1,2,3}) +  1が返ります。 +(例) ListCmp({1,2,3},{1,3}) +  0が返ります。 +(例) ListCmp({1,2,3},{1,3,2}) +  0が返ります。 +(例) ListCmp({1,2,3},2) +  1が返ります。 +(例) ListCmp({1,2,3},4) +  0が返ります。 + + + +=============================================================================== +コマンドリファレンス 文字列系拡張コマンド +=============================================================================== +------------------------------------------------------------------------------- +StrLen( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F2](Len) +------------------------------------------------------------------------------- +@オプションで文字列の実バイトサイズ結果を返します。 +(書式)StrLen(@"ABCDE") +(書式)StrLen(@Str1) + +------------------------------------------------------------------------------- +StrRepl( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F5](StrRepl) +------------------------------------------------------------------------------- +(説明)文字列を置換をします。 +(書式)StrRepl(文字列, 検索文字列, 置換文字列 [,検索開始位置]) +(例)StrRepl("Hello World","World","Earth") -> "Hello Earth" +(例)StrRepl("abcabc","ab","ff",3) = "abcffc" +(例)StrRepl("abcabc","ab","ff") = "ffcffc" + +------------------------------------------------------------------------------- +StrChar( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](Char) +------------------------------------------------------------------------------- +(説明)繰り返し文字列を返します。 +(例)StrChar("ABC",5) + 文字列、"ABCABCABCABCABC"が得られます。 + +------------------------------------------------------------------------------- +StrCenter( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F2](Center) +------------------------------------------------------------------------------- +(説明)文字列を真ん中に配置します。 +(使い方)StrCenter("文字列",長さ[,"周辺を埋めるキャラクタ"]) +(例) StrCenter("Test",8) + 文字列、" Test "が得られます。 +(例) StrCenter("Test",8,"*") + 文字列、"**Test**"が得られます。 + +------------------------------------------------------------------------------- +Hex( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F4](Hex) +------------------------------------------------------------------------------- +(説明)16進数文字列に変換します。 +(例)Hex(12345)->Str 1 + "3039"がStr 1に入ります。 + 数値に戻すは、 +(例) Exp("0X"+Str 1)->A + +------------------------------------------------------------------------------- +Bin( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F5](Bin) +------------------------------------------------------------------------------- +(説明)2進数文字列に変換します。 +(例)Bin(12345)->Str 1 + "11000000111001"がStr 1に入ります。 +(例)Exp("0B"+Str 1)->A + +------------------------------------------------------------------------------- +StrBase( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F3](Base) +------------------------------------------------------------------------------- +(説明)任意の進数変換をします。 +(書式) StrBase( N進数文字列, 変換前の進数N, 変換後の進数M) + 進数の範囲は2~64です。 +    使用キャラクタは{ 0-9 A-Z a-z θ π} + N進数の文字列からM進数の文字列に変換します。 +(例) StrBase("579",15,12) -> "873" +    StrBase("100",13,10) -> "169" +    StrBase("123",16,3) -> "101210" +    StrBase("43981",10,16) -> "ABCD" +    StrBase("12A345AFZ",36,10) -> "2999794422815" +    StrBase("AZaz",62,10) -> "2520113" + +------------------------------------------------------------------------------- +StrSplit( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F1](Split) +------------------------------------------------------------------------------- +(説明)文字列を指定文字で分割してMatAnsに返します。 +(書式)StrSplit("文字列","区切り文字"[,開始位置]) + 結果はMatAnsに文字列として返ります。 +(例)StrSplit("123,4567,89",",") +  MatAnsの結果は、["123","4567","89"]となり、個々の要素を読み出すに次のようにアクセスできます。 + $Ans[1]="123" + $Ans[2]="4567" + $Ans[3]="89" + +------------------------------------------------------------------------------- +StrAsc( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](Asc) +------------------------------------------------------------------------------- +(説明)先頭文字のAsciiコードを返します。 +(例)StrAsc("Ascii") + 文字列先頭の'A'のASCII文字コード65(0x41)が返ります。 + + +------------------------------------------------------------------------------- +StoCapt [OPTN]-[F6]-[F6]-[F5](CAPTURE)-[F1](Store) +RclCapt [OPTN]-[F6]-[F6]-[F5](CAPTURE)-[F2](Recall) +                     (g3mモードではStoCaptは未対応です) +------------------------------------------------------------------------------- +(説明)Captureファイルをストレージメモリ上への読み書きします。最大20までのファイルが利用できます。 +(例)StoCapt 20 +(例)RclCapt 20 + + 関連してPictファイルのファイルサイズを2KBから1KBに半減しました。(g1mモードの場合) + + +=============================================================================== +コマンドリファレンス 拡張その他 +=============================================================================== + +「'/」以降はコメントではなくコマンドとして実行します。 +C.Basic動作時にのみ実行するコマンドを記述できます。 + +(例)'/Ticks→S +(例)'/Ticks-S→T + 時間を計測します。 + +------------------------------------------------------------------------------- +'# コマンド +------------------------------------------------------------------------------- +コメント欄で各種設定が出来ます。 + +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +'#CBINT +'#CBint +'#CBCPLX +'#CBcplx + +'#G1M +'#g1m +'#G3M +'#g3m + 動作モードを切り替えます。すべて英文字です。 + +'#Break0 // [AC]キー無効 +'#Break1 // [AC]キー有効 (デフォルト) + [AC]キーでの中断を有効無効切り替えます。 + +'#Mat 0 // 行列のインデックス開始値を0にします。 +'#Mat 1 // 行列のインデックス開始値を1にします。(デフォルト) + +'#GetkeyC // Getkey1/2実行後に時間計測を一時停止、リスタートします。(デフォルト) +'#GetkeyR // Getkey1/2実行後に時間計測がリセット&リスタートします。 + +'#exp 0 // 従来の指数表示形式です。 +'#exp 1 // スタンダードフォントのみ、OS3.00以降の指数表示に切り替わります。 +'#exp 2 // すべてのフォントサイズで、OS3.00以降の指数表示に切り替わります。(デフォルト) + +'#GB0 // GBフォントを表示しません。従来のモードです。(デフォルト) +'#GB1 // 以後、コマンド&特殊文字と重なるF7xx,F9xx,E5xx,E6xx,E7xxを除いてGBコードとして表示します。 +'#GB2 // 以後、内蔵のすべてのGBコードを表示します。 + +'#58 //fx-5800P互換出力になります。 +'#98 //fx-9860G/CGシリーズ互換出力になります。(デフォルト) + + +・g3mモードの場合にPlotの解像度をデフォルトで1x1ドットに変更できます。 +(書式)'#SketchThin または'#S-L-Thin + デフォルトに戻すには +(書式)'#SketchNormal または'#S-L-Normal +※Plotコマンドの前にSketchThinを付けるとそれ以降のPlotで移動単位および描画が1ドットになります。 + 元に戻すにはSketchNormalをPlotコマンドの前に付けます。 +(書式)SketchThin Plot +(書式)SketchThin PlotOn + +Str文字変数の実体となるMat行列を任意指定することが出来ます。 +(例)'#Str A + Str変数をMat Aとして確保します。 + {20,256}→Dim Mat A.B + と同じです。 +(例)'#Str B,30,256 + Str変数をMat Bとして30個、255バイトまで可能な変数として確保します。 + +=============================================================================== + + +=============================================================================== +コマンドリファレンス マシン語関連コマンド +=============================================================================== +C.Basicではメモリ上のSH3/SH4Aのマシン語プログラムを実行できます。 +現状、自由にアクセス出来るメモリは行列として確保したエリアだけとなっています。 +行列の先頭アドレスはVarPtr(もしくはアドレス演算子&で求められます。 +C言語同様にアドレス演算子&、間接演算子*も使えます。 + +------------------------------------------------------------------------------- +SysCall( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F1](SysCall) +------------------------------------------------------------------------------- +(説明)OSで用意されているシステムルーチンを呼び出す関数です。引数は12までです。引数は省略できます。 +(書式)SysCall( システムコール番号 [,引数1][,引数2][,引数3][,引数4][,引数5][,引数6][,引数7][,引数8][,引数9][,引数10][,引数11][,引数12] ) + +(例)Screen.G +   SysCall( 0x1D0,1,8,127,63 )→R + + システムコール0x1D0は画面に直線をFX版互換描画するシステムルーチンです。 + 1→R4レジスタ、8→R5レジスタ、127→R6レジスタ、63→R7レジスタ、システムコール0x1D0を呼び出し返り値がRに入ります。 + +------------------------------------------------------------------------------- +Call( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F2](Call) +------------------------------------------------------------------------------- +(説明)任意のアドレスのマシン語プログラムを実行する関数です。引数は4つまでです。引数は省略できます。 +(書式)Call(マシン語アドレス [,引数1][,引数2][,引数3][,引数4] ) + +(例)Call( 0x8802F000,A,B,C,D )→R + A→R4レジスタ、B→R5レジスタ、C→R6レジスタ、D→R7レジスタ、0x8802F000番地にあるマシン語プログラムを呼び出し返り値がRに入ります。 + +------------------------------------------------------------------------------- +Peek( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F4](Peek) +------------------------------------------------------------------------------- +(説明)メモリのデータを読み出す関数です。型指定[.B][.W][.L][.F][.C]が無い場合はバイト読み出しです。 + 間接演算子*で置き換えることが出来ます。 +(書式)Peek( アドレス )[.B][.W][.L][.F][.C] +(書式)*( アドレス )[.B][.W][.L][.F][.C] + +(例)Peek(0x8802E000).B→A% +(例)*(0x8802E000).B→A% + 0x8802E000番地の内容をバイト(1バイト)で読み出し、整数変数A%に代入します。 + +(例)Peek(0x8802E000).W→A% +(例)*(0x8802E000).W→A% + 0x8802E000番地の内容をワード(2バイト)で読み出し、整数変数A%に代入します。 + +(例)Peek(0x8802E000).L→A% +(例)*(0x8802E000).L→A% + 0x8802E000番地の内容をロングワード(4バイト)で読み出し、整数変数A%に代入します。 + +(例)Peek(0x8802E000).F→A +(例)*(0x8802E000).F→A + 0x8802E000番地の内容を倍精度実数(8バイト)で読み出し、変数Aに代入します。 + +------------------------------------------------------------------------------- +Poke( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F3](Poke) +------------------------------------------------------------------------------- +(説明)メモリにデータを書き込みます。型指定[.B][.W][.L][.F][.C]が無い場合はバイト書き込みです。 + 間接演算子*で置き換えることが出来ます。 +(書式1)Poke( アドレス )[.B][.W][.L][.F][.C] , データ +(書式1)*( アドレス )[.B][.W][.L][.F][.C] , データ +(書式2)データ→Poke( アドレス )[.B][.W][.L][.F][.C] +(書式2)データ→*( アドレス )[.B][.W][.L][.F][.C] + +(例)Poke(0x8802E000).B,A% +(例)A%→Poke(0x8802E000).B +(例)A%→*(0x8802E000).B + 整数変数A%の値を、0x8802E000番地にバイト(1バイト)書き込みします。 + +(例)Poke(0x8802E000).W,A% +(例)A%→Poke(0x8802E000).W +(例)A%→*(0x8802E000).W + 整数変数A%の値を、0x8802E000番地にワード(2バイト)書き込みします。 + +(例)Poke(0x8802E000).L,A% +(例)A%→Poke(0x8802E000).L +(例)A%→*(0x8802E000).L + 整数変数A%の値を、0x8802E000番地にロングワード(4バイト)書き込みします。 + +(例)Poke(0x8802E000).F,A + (例)A→Poke(0x8802E000).F + (例)A→*(0x8802E000).F + 実数変数Aの値を、0x8802E000番地に倍精度実数(8バイト)書き込みします。 + +------------------------------------------------------------------------------- +VarPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F1](VarPtr) +------------------------------------------------------------------------------- +(説明)変数、行列のアドレスを返す関数です。 + アドレス演算子&で置き換えることが出来ます。 +(書式1)VarPtr(変数) +(書式2)&(変数) + +(例)VarPtr(A%) +(例)&A% + 整数変数A%の変数のアドレスが返ります。 + +(例)VarPtr(Mat A) +(例)&Mat A + 行列Aの先頭アドレスが返ります。 + +(例)VarPtr(Mat A[20,10]) +(例)&Mat A[20,10] + 行列A[20,10]の値が格納されているアドレスが返ります。 + +------------------------------------------------------------------------------- +ProgPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F2](ProgPtr) +------------------------------------------------------------------------------- +(説明)プログラムのアドレスを返す関数です。 +(例)ProgPtr() + 現在のプログラムが格納されているアドレスを返します。 + + + +===============================================================================(CGシリーズ拡張) +コマンドリファレンス 超高速グラフィックライブラリコマンド MonochromeLib CG版 +=============================================================================== +PierrotLL氏作成のグラフィックライブラリMonochromeLibに基づくコマンドです。 +これらのコマンドは現在のVRAMに作用し、それ以外の処理を一切しません。 +座標系はML系となり(0,-24)-(383,191)が有効です。 +表示するためにはPutDispDDや_DispVRAMを使いLCD転送する必要があります。 +C.Basicの拡張仕様を利用しているのでCasio Basic互換コマンドとは若干使い勝手が違います。 + +※注意 +引数のColor指定は色の指定ではなく描画モードの指定となっています。 +色指定は純正同様にコマンドの前に色指定コマンドを置くことで指定します。 + + Color:-1 描画しません。 + Color: 0 背景色で描画します。 + Color: 1 描画色で描画します。 + Color: 2 現在の画面色を反転します。 + Color: 3 描画色と背景色のチェック模様で描画します。 + Color: 4 乱数に基づく確率で描画します。 + Color: 5 描画色と画面色の間でブレンドします。(下記参照) + + Color: 10 11 12 13 14 (1ドット描画) + Color: 20 21 22 23 24 (2x2ドット描画) + □□ ■□ ■□ ■■ ■■ + □□ □□ □■ ■□ ■■ +(例)_FillCircle 64,32,30,21 + + Colorの値に4を指定した場合、Colorに続くパラメータは黒ドットとなる確率(0~1),(%0~%100)を指定できます。 +(例) _Rectangle 0,0,127,63,0,0,4,0.5 +(例) _Rectangle 0,0,127,63,0,0,4,%50 + 画面全体(g1mモード)が半分の確率でランダムに黒ドットで埋まります。 +(例) _Rectangle 0,0,127,63,0,0,4,0.1 +(例) _Rectangle 0,0,127,63,0,0,4,%10 + 画面全体(g1mモード)が10%の確率でランダムに黒ドットで埋まります。 +(例)_FillCircle 64,32,30,4,0.5 +(例)_FillCircle 64,32,30,4,%50 +  円の内側が50%の確率で黒ドットで埋められます。 +(例) _FillCircle #0,0,3,4,0.5 +(例) _FillCircle #0,0,3,4,%50 + 円の内側が半分の確率でランダムに黒ドットで埋まります。 + + +(*Color: 5 ブレンド) + ML系コマンドのパラメータのColor指定において透過率指定を追加しました。(v0.32α) + コマンドの描画色と画面を透過率で合成して表示します。 + Color指定値は5になっています。Color指定のあるML系コマンドで使用できます。 +(書式)_Pixel x,y,5,透過率(0.0~1.0) +(書式)_Pixel x,y,5,%透過率(%0~%100) +(例)Red _Pixel x,y,5,%50 +(例)Red _Pixel x,y,5,0.5 + 画面の色と50%赤を合成して描画を行います。 + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +・Monochromeライブラリ系のコマンド直後に"#"を付けると論理座標で使うことのできます。 + support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + +(例) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G +_Circle #0.5,1.2,1.2,1 + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +_ClrVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F1](_ClrVram) +------------------------------------------------------------------------------- +(説明)現在のVRAMを消去します。 + +------------------------------------------------------------------------------- +_ClrScreen [SHIFT]-[F4](SKTCH)-[F3](ML)-[F2](_ClrScreen) +------------------------------------------------------------------------------- +(説明)現在のLCD画面を消去します。 + +------------------------------------------------------------------------------- +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +(説明)現在のVRAMの内容をLCD画面に転送します。 + +------------------------------------------------------------------------------- +_Pixel [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F1](_Pixel) +------------------------------------------------------------------------------- +(説明)VRAMに点を描画します。 +(書式)_Pixel X, Y, Color[,確率/透過率] + +(例)_Pixel 64, 32, 2 + 画面中央の点(これはg1mモードの場合)を反転します。 + +------------------------------------------------------------------------------- +_Point [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F2](_Point) +------------------------------------------------------------------------------- +(説明)VRAMに正方形を描画します。 +(書式)_Point X, Y, Width, Color[,確率/透過率] + (X,Y)を中心にWidth幅の正方形を描画します。 + +(例)_Point 10, 10, 3, 1 + Rect 9,9,11,11と同じです。 + +------------------------------------------------------------------------------- +_PixelTest( [SHIFT]-[F4](SKTCH)-[F3](ML)-[F4](_PixelTest) +------------------------------------------------------------------------------- +(説明)VRAMの一点の状態を返します。 +(書式)_PixelTest(X,Y) + + 返り値 + -1 :範囲外 + 0 :白色 + 1 :黒色 +※g3mモードでは16ビットカラー値を返します。 + +現在のVRAM以外にもテキストVRAMとグラフィックスVRAMを選択出来ます。 +(例)_PixelTest(10,20,T) + テキストVRAMの(10,20)のカラー値を読み取ります。 +(例)_PixelTest(10,20,G) + グラフィックスVRAMの(10,20)のカラー値を読み取ります。 + + +------------------------------------------------------------------------------- +_Line [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F3](_Line) +------------------------------------------------------------------------------- +(説明)VRAMにラインを描画します。 +(書式)_Line x1,y1,x2,y2,Color[,確率/透過率][,幅] +(例)_Line 0,0,127,63,1,,10 + 画面を斜めに10ドットの太さの直線が描かれます。 + +------------------------------------------------------------------------------- +_Horizontal [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F4](_Horizontal) +------------------------------------------------------------------------------- +(説明)VRAMに水平線を描画します。 +(書式)_Horizontal Y, X1, X2, Color[,確率/透過率] + X1~X2の範囲のYラインを描画します。 + +------------------------------------------------------------------------------- +_Vertical [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F5](_Vertical) +------------------------------------------------------------------------------- +(説明)VRAMに垂直線を描画します。 +(書式)_Vertical X, Y1, Y2, Color[,確率/透過率] + Y1~Y2の範囲のXラインを描画します。 + +------------------------------------------------------------------------------- +_Rectangle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F1](_Rectangle) +------------------------------------------------------------------------------- +(説明)VRAMに四角を描画します。 +(書式)_Rectangle X1, Y1, X2, Y2, border_width, border_color, Color[,確率/透過率][,回転角度][,回転中心座標X][,回転中心座標Y][,拡大率] + (X1,Y1)-(X2,Y2)の範囲で、境界幅border_widthの枠を境界色border_colorで描画し、四角の内側をColorで塗りつぶします。 + +(例)_Rectangle 50, 20, 80, 40, 2, 1, -1 + 画面中央に幅2ドットの四角枠を描画します。 +(例)_Rectangle 50, 20, 80, 40, 0, -1, 3 + 画面中央にチェッカー模様の四角を描画します。 + + [回転中心座標X][回転中心座標Y]を省略した場合は自動的に描画画像の中心が指定されます。 + +------------------------------------------------------------------------------- +_Polygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F2](_Polygon) +------------------------------------------------------------------------------- +(説明)VRAMに多角形を描画します。 +(書式)_Polygon X座標のint行列へのポインタ, Y座標のint行列へのポインタ, 頂点数, Color[,確率/透過率][,回転角度][,回転中心座標X][,回転中心座標Y][,拡大率] + +(例) + [[60, 75, 70, 50, 45]]→Mat X.L // 整数型指定必須 + [[20, 30, 45, 45, 30]]→Mat Y.L // 整数型指定必須 + Screen.G + _ClrVram + _Polygon VarPtr(Mat X), VarPtr(Mat Y), 5, 1); (または _Polygon &Mat X, &Mat Y, 5, 1); + _DispVram (またはPutDispDD) + + 画面に五角形を描画します。 + +------------------------------------------------------------------------------- +_FillPolygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F3](_FillPolygon) +------------------------------------------------------------------------------- +(説明)VRAMに多角形を描画し中を塗りつぶします。 +(書式)_FillPolygon X座標のint行列へのポインタ, Y座標のint行列へのポインタ, 頂点数, Color[,確率/透過率][,回転角度][,回転中心座標X][,回転中心座標Y][,拡大率] + +------------------------------------------------------------------------------- +_Circle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F4](_Circle) +------------------------------------------------------------------------------- +(説明)VRAMに円を描画します。 +(書式)_Circle x,y,radius,Color[,確率/透過率][,width][,角度初期値][,角度終了値][,頂点数] + (x,y)を中心に半径radiusの円を描画します。 +(例) _Circle 64,32,20,4,0.5,3 + 3x3dotで50%の確率で描画します。 +(例) _Circle 64,32,20,1,,3,0,90 + 3x3dotで円弧を描画します。 +(例)_Circle 64,32,20,1,,,0,360,5 + 五角形を描画します。 +(例) _Circle 64,32,20,1,,,20,380,5 + 開始位置をずらした五角形を描画します。 + +------------------------------------------------------------------------------- +_FillCircle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F5](_FillCircle) +------------------------------------------------------------------------------- +(説明)VRAMに円を描画し中を塗りつぶします。 +(書式)_FillCircle X, Y, R, Color[,確率/透過率] + (X,Y)を中心に半径Rの円を描画し、Colorで塗りつぶします。 + +------------------------------------------------------------------------------- +_Elips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F1](_Elips) +------------------------------------------------------------------------------- +(説明)VRAMに楕円を描画します。 +(書式)_Elips X, Y, Rwidth, Rheight, Color[,確率/透過率] [,回転角(度)] + (X,Y)を中心に横罫Rwidth、縦径Rheightの楕円を回転角度分傾けて描画します。 + +------------------------------------------------------------------------------- +_FillElips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F2](_FillElips) +------------------------------------------------------------------------------- +(説明)VRAMに楕円を描画し中を塗りつぶします。 +(書式)_FillElips X, Y, Rwidth, Rheight, Color[,確率/透過率] [,回転角(度)] + (X,Y)を中心に横罫Rwidth、縦径Rheightの楕円を回転角度分傾けて描画し、Colorで塗りつぶします。 + +------------------------------------------------------------------------------- +_ElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F3](_ElipsInRct) +------------------------------------------------------------------------------- +(説明)VRAMに楕円を描画します。 +(書式)_ElipsInRct X1, Y1, X2, Y2, Color[,確率/透過率] [,回転角(度)] + (X1,Y1)-(X2,Y2)の範囲に内接する楕円を描画します。 + +------------------------------------------------------------------------------- +_FElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F4](_FElipsInRct) +------------------------------------------------------------------------------- +(説明)VRAMに楕円を描画し中を塗りつぶします。 +(書式)_FElipsInRct X1, Y1, X2, Y2, Color[,確率/透過率] [,回転角(度)] + (X1,Y1)-(X2,Y2)の範囲に内接する楕円を描画し、Colorで塗りつぶします。 + +------------------------------------------------------------------------------- +_Hscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F1](_Hscroll) +------------------------------------------------------------------------------- +(説明)水平方向にスクロールします。 +(書式)_Hscroll n + nドット分スクロールします。 + +で右方向、-で左方向にスクロールします。溢れた分は反対側に出現します。 +(書式)_Hscroll スクロール量 [,x1,y1,x2,y2] +(例)_Hscroll 1,32,16,47,95 + (32,16)-(47,95)のエリア内を右向きにスクロールします。 + +------------------------------------------------------------------------------- +_Vscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F2](_Vscroll) +------------------------------------------------------------------------------- +(説明)垂直方向にスクロールします。 +(書式)_Vscroll n [,x1,y1,x2,y2] + nドット分スクロールします。 + +で下方向、-で上方向にスクロールします。溢れた分は反対側に出現します。 +(書式)_Vscroll スクロール量 [,x1,y1,x2,y2] +(例)_Vscroll -1,5,10,100,40 + (5,10)-(100,40)のエリア内を上向きにスクロールします。 + +------------------------------------------------------------------------------- +_Bmp [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F1](_Bmp) +------------------------------------------------------------------------------- +(説明)VRAMにビットマップデータを描画します。 +(書式)_Bmp ビットマップint行列へのポインタ, X, Y, width, height [,N/O/A/X] [,C] + 行列内のビットマップデータを、(X,Y)より横幅width 縦幅heightで描画します。 + [,N] 強制的に上書き表示します。 + [,O] Or + [,A] And + [,X] Xor + [,C] クリッピングした後に描画します。 +(例) +[[0,0,1,1,1,1,0,0] + [0,1,1,1,1,1,1,0] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,0,1,1,1,1,0] + [0,1,1,0,0,1,1,0] + [0,0,1,1,1,1,0,0]]->MatB.P // 1ビット行列 + _Bmp VarPtr(Mat B), 8, 16, 8, 8, O + +※1ビット行列の場合のみモノクロ描画になります。 + それ以外は16ビットカラー描画となります。 + 16ビット描画で透過色指定するにはコマンド実行前にTransp-Colorで指定してください。 +------------------------------------------------------------------------------- +_Bmp8 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F2](_Bmp8) +------------------------------------------------------------------------------- +(説明)VRAMに8x8のビットマップデータを描画します。 +(書式)_Bmp8 ビットマップint行列へのポインタ, X, Y [,N/O/A/X] [,C] + 行列内の8x8のビットマップデータを、(X,Y)に描画します。 +(例)_Bmp8 &Mat B, 8, 16, A + +------------------------------------------------------------------------------- +_Bmp16 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F3](_Bmp16) +------------------------------------------------------------------------------- +(説明)VRAMに16x16のビットマップデータを描画します。 +(書式)_Bmp16 ビットマップint行列へのポインタ, X, Y [,N/O/A/X] [,C] + 行列内の16x16のビットマップデータを、(X,Y)に描画します。 + +------------------------------------------------------------------------------- +BmpLoad( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F1](BmpLoad) +BmpSave [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F2](BmpSave) +------------------------------------------------------------------------------- +・Bmp形式の読み書きができます。(1ビットモノクロおよび24ビットフルカラーのみ) +(書式)BmpLoad("BMPファイル名"),X,Y,1,透過率(0.0~1.0) +(書式)BmpLoad("BMPファイル名"),X,Y,1,%透過率(%0~%100) +  (X,Y)座標を始点として背景と透過率で合成してロードします。 +(書式)BmpLoad("BMPファイル名"),X,Y,0,透過率 +  (X,Y)座標を始点として背景だけにロードします。 +(例)BmpLoad("TEST"),100,50,1,%50 +(例)BmpLoad("TEST"),100,50,1,0.5 + (100,50)座標よりTEST.bmpファイルを透過率50%でロードします。 +(例)BmpLoad("TEST"),100,50,0,%25 +(例)BmpLoad("TEST"),100,50,0,0.25 + (100,50)座標よりTEST.bmpファイルを透過率25%で背景部分だけにロードします。 +(例)BmpLoad("TEST")->Mat A + "TEST.bmp"のデータを行列Aに読み込みます。 + +(例)BmpSave "TEST",100,50,200,90 +(100,50)座標より(200,90)座標までの範囲を24ビットフルカラーBMPファイル"TEST.bmp"としてセーブします。 + 指定可能な座標値は(0,-24)-(383,191)の範囲です。 + (フル画面の保存には1分以上かかる場合があります。) +(例)BmpSave "TEST",Mat A + 行列AのデータをBMP形式で"TEST.bmp"に保存します。 + +------------------------------------------------------------------------------- +DrawMat [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F3](DrawMat) +------------------------------------------------------------------------------- +・DotPutコマンドのMLコマンド仕様です。 +(書式)DrawMat Mat A[m,n], x, y, width, height [,横拡大幅][,縦拡大幅][,color][,確率] +(例) DrawMat Mat A, 0, 0, 128, 64 +(例) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 +※行列の指定で&やVarPtr(は必要ありません。 +※BmpLoad(で行列に読み込んだ行列がそのまま使えます。 + +------------------------------------------------------------------------------- +_BmpZoom [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F4](_BmpZoom) +_BmpRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F5](_BmpRotate) +_BmpZmRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F4](_BmpZmRotate) +------------------------------------------------------------------------------- +(Planet-CasioよりNinestars氏がMonochromeライブラリに機能追加したプログラムを利用させて頂いています。) +(書式)_BmpZoom &Mat , x, y, width, height [,横拡大幅] [,縦拡大幅] [,color][,確率] +(書式)_BmpRotate &Mat , x, y, width, height, 回転角(度) [,color][,確率] +(書式)_BmpZmRotate &Mat , x, y, width, height [,横拡大幅] [,縦拡大幅] [,回転角(度)] [,color][,確率] +(例)_BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 +(例)_BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 +(例)_BmpRotate &Mat A, 0, 0, 20, 10, 45 +(例)_BmpZmRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 +(例)_BmpZmRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + +------------------------------------------------------------------------------- +_Paint  [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F5](_Paint) +------------------------------------------------------------------------------- +(説明)領域を塗りつぶします。 +(書式)_Paint x,y,Color[,確率/透過率] + (例)_Paint 100,100,1 + 座標(100,100)を始点にして描画色で塗りつぶします。 + (例)_Paint 100,100,0 + 座標(100,100)を始点にして背景色で塗りつぶします。 + +------------------------------------------------------------------------------- +_Test [SHIFT]-[F4](SKTCH)-[F3](ML)-[F5](_Test) +------------------------------------------------------------------------------- +Monochromeライブラリ系コマンドに図形の内部の黒ドット数をカウントする"_Test"コマンドオプションを追加しました。 + +(サポートコマンド)_Point _Line _Rectangle _Circle _Polygon + サポートコマンドの前に"_Test"を付けると機能します。 + +(例)_Test_Rectangle 0,0,127,63 + (0,0)-(127,63)エリアにおける黒ドットの数を返します。 +(例)_Test_Circle 62,32,20 +(例)_Test_Point 10,10,5 +(例)_Test_Line 10,10,100,30 + + + +===============================================================================(CGシリーズ拡張) +フォントの拡張について +=============================================================================== +外部フォントファイルを用意することで、ASCII文字と(カナ+外字)文字で外部フォントが使えます。 + + カレントフォルダ、もしくは@Fontフォルダにある + 以下のフォントファイルをファイルリスト更新時に読み込みフォントが切り替わります。 + これらのファイルが無ければデフォルトの内蔵フォントになります。 +  @LFONTA.bmp (ASCII標準フォント) +  @MFONTA.bmp (ASCIIミニフォント) +  @LFONTG.bmp (外字標準フォント) +  @MFONTG.bmp (外字ミニフォント) +  @LFONTK.bmp (カナ標準フォント) +  @MFONTK.bmp (カナミニフォント) + + 同梱のデフォルト外部フォントはIPAフォントを使用しています。 +  @LFONTK0.bmp カタカナフォント(標準) +  @MFONTK0.bmp カタカナフォント(ミニ) +  @LFONTK1.bmp ひらがなフォント(標準) +  @MFONTK1.bmp ひらがなフォント(ミニ) +  @LFONTG0.bmp 外字サンプルフォント(標準) +  @MFONTG0.bmp 外字サンプルフォント(ミニ) + +これらのフォントをカレントフォルダに置いて、 +BmpLoad(@K1 +とすれば、それ以降のプログラム実行ではひらがなフォントに切り替わります。 +BmpLoad(@K0 +でカタカナフォントになります。 + +------------------------------------------------------------------------------- +GetFont( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F1](GetFont) +GetFontMini( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F3](GetFontMini) +------------------------------------------------------------------------------- +(説明)フォントデータを読み出します。 +(書式1)GetFont(フォントコード)->Mat A +(書式1)GetFontMini(フォントコード)->Mat A +(例)GetFont(0x41)->Mat A + フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。 +(例)GetFontMini(0xFF80)->Mat A + 外字ミニフォントの一番目のビットマップデータ(16x24)が1ビット行列Mat A[16,24]に入力されます。 + +(書式2)GetFont("フォントキャラ")->Mat A +(書式2)GetFontMini("フォントキャラ")->Mat A +(例)GetFont("A")->Mat A + フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。 +(例)GetFontMini("A")->Mat B + フォント"A"のビットマップデータ(16x24)が1ビット行列Mat B[16,24]に入力されます。 + +(書式3)GetFont(@フォントコード)->Mat A +(書式3)GetFontMini(@フォントコード)->Mat A +(書式4)GetFont(@"フォントキャラ")->Mat A +(書式4)GetFontMini(@"フォントキャラ")->Mat A +(例)GetFont(@0x41)->Mat A +(例)GetFont(@"A")->Mat A + 内蔵フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。 + +GetFont(、GetFontMini(コマンドの引数の直前に##を置くことでFull設定でのGBフォントデータの取得が出来ます。 +また、引数の直前に%%を置くことで強制的にGB offとしてフォントデータを取得します。 +通常、GBノーマルフォントは24ドット表示ですが、18ドット幅固定ピッチで取得します。 +(書式5)GetFont(##フォントコード)->Mat A +(書式5)GetFontMini(##フォントコード)->Mat A +(書式5)GetFont(%%フォントコード)->Mat A +(書式5)GetFontMini(%%フォントコード)->Mat A +(書式6)GetFont(##"フォントキャラ")->Mat A +(書式6)GetFontMini(##"フォントキャラ")->Mat A +(書式6)GetFont(%%"フォントキャラ")->Mat A +(書式6)GetFontMini(%%"フォントキャラ")->Mat A + +(例)GetFont(##0xA4A2)->Mat A + +Ver 0.52以降、GetFontMini(コマンドにオプション追加でMiniMiniフォントとMiniMiniBoldフォントに対応しました。 +(書式7)GetFontMini(フォントコード)M->Mat A +(書式8)GetFontMini("フォントキャラ")M->Mat A +(書式9)GetFontMini(フォントコード)MB->Mat A +(書式10)GetFontMini("フォントキャラ")MB->Mat A +(例)GetFont("A")M->Mat A +MiniMiniフォント"A"のビットマップデータ(8x10)が1ビット行列Mat Aに入力されます。 +(例)GetFont("A")MB->Mat A +MiniMiniBoldフォント"A"のビットマップデータ(9x10)が1ビット行列Mat Aに入力されます。 + + + +(説明)現在の外部フォント状況を読み出します。 +(書式)GetFont() +(書式)GetMiniFont() + 返り値は整数値でbit2が外部カナ 、bit1が外部外字 、bit0が外部ASCIIフォントとなります。 +(例)標準サイズの外部カナフォントのみ導入されている場合。 + GetFont()は4が返ります。 + GetMiniFont()は0が返ります。 +(例)ミニフォントのASCIIフォントと外字フォントのみ導入されている場合。 + GetFont()は0が返ります。 + GetMiniFont()は3が返ります。 + +------------------------------------------------------------------------------- +SetFont [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F2](SetFont) +SetFontMini [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F4](SetFontMini) +------------------------------------------------------------------------------- +(説明)フォントデータを設定します。 +(書式1)SetFont フォントコード,Mat A +(書式1)SetFontMini フォントコード,Mat A +(例)SetFont 0xFF80,Mat A + Mat Aのフォントデータが外字フォントの一番目ののデータとして設定されます。 +(例)SetFontMini 0xFF80,Mat A + Mat Aのフォントデータが外字ミニフォントの一番目のデータとして設定されます。 + +(書式2)SetFont "フォントキャラ",Mat A +(書式2)SetFontMini "フォントキャラ",Mat A +(例)SetFont "@",Mat A + Mat Aのフォントデータがフォント"@"のデータとして設定されます。 +(例)SetFontMini "@",Mat B + Mat Bのフォントデータがミニフォント"@"のデータとして設定されます。 +(※指定するフォントコード/フォントキャラはASCII、外字またはカナフォントのみ可能です。) + +外部フォントを使用しないように設定出来ます。 +(書式)SetFont 0 + このコマンド以降、外部フォントを使用出来なくなり初期状態にリセットされます。 +(書式)SetFont 1 + このコマンド以降、外部フォントが使用できるようになります。 + + +------------------------------------------------------------------------------- +BmpLoad(@A +BmpLoad(@AL +BmpLoad(@AM +BmpLoad(@G +BmpLoad(@GL +BmpLoad(@GM +BmpLoad(@K +BmpLoad(@KL +BmpLoad(@KM +------------------------------------------------------------------------------- +(説明)フォントデータをBMPファイルから読み込みます。 +(書式)BmpLoad(@G[フォントファイル番号]) +(書式)BmpLoad(@GL[フォントファイル番号]) +(書式)BmpLoad(@GM[フォントファイル番号]) +(書式)BmpLoad(@K[フォントファイル番号]) +(書式)BmpLoad(@KL[フォントファイル番号]) +(書式)BmpLoad(@KM[フォントファイル番号]) +(書式)BmpLoad(@A[フォントファイル番号]) +(書式)BmpLoad(@AL[フォントファイル番号]) +(書式)BmpLoad(@AM[フォントファイル番号]) + フォントファイル番号は0~9が指定できます。 +(例)BmpLoad(@A1) + @LFONTA1.bmp (ASCII標準フォント) + @MFONTA1.bmp (ASCIIミニフォント) + のフォントファイルが外部ASCIIフォントとして読み込まれます。 +(例)BmpLoad(@AL1) + @LFONTA1.bmp (ASCII標準フォント) + のフォントファイルが外部ASCIIフォントとして読み込まれます。 +(例)BmpLoad(@AM1) + @MFONTA1.bmp (ASCIIミニフォント) + のフォントファイルが外部ASCIIフォントとして読み込まれます。 + +(書式)BmpLoad(@@G) +(書式)BmpLoad(@@GL) +(書式)BmpLoad(@@GM) +(書式)BmpLoad(@@K) +(書式)BmpLoad(@@KL) +(書式)BmpLoad(@@KM) +(書式)BmpLoad(@@A) +(書式)BmpLoad(@@AL) +(書式)BmpLoad(@@AM) + @Fontフォルダからデフォルトフォントファイルをロードします。 + + +(書式)BmpLoad(@GL"ファイル名") +(書式)BmpLoad(@GM"ファイル名") +(書式)BmpLoad(@KL"ファイル名") +(書式)BmpLoad(@KM"ファイル名") +(書式)BmpLoad(@AL"ファイル名") +(書式)BmpLoad(@AM"ファイル名") +(例)BmpLoad(@GL"MYFONTL") + MYFONTL.bmpが外字標準フォントとして読み込まれます。 +(例)BmpLoad(@GM"MYFONTM") + MYFONTM.bmpが外字ミニフォントとして読み込まれます。 + +------------------------------------------------------------------------------- +BmpSave @A +BmpSave @AL +BmpSave @AM +BmpSave @G +BmpSave @GL +BmpSave @GM +BmpSave @K +BmpSave @KL +BmpSave @KM +------------------------------------------------------------------------------- +(説明)フォントデータをBMPファイルに出力します。 +(書式)BmpSave @G[フォントファイル番号] + カレントフォルダに外字フォント(標準、ミニ)をセーブします。 + ファイル名は@LFONTG.bmp (標準) + ファイル名は@MFONTG.bmp (ミニ) +(書式)BmpSave @K[フォントファイル番号] + カレントフォルダにカナフォント(標準、ミニ)をセーブします。 + ファイル名は@LFONTK.bmp (標準) + ファイル名は@MFONTK.bmp (ミニ) +(書式)BmpSave @A[フォントファイル番号] + カレントフォルダにASCIIフォント(標準、ミニ)をセーブします。 + ファイル名は@LFONTA.bmp (標準) + ファイル名は@MFONTA.bmp (ミニ) +(書式)BmpSave @@G +(書式)BmpSave @@K +(書式)BmpSave @@A + @Fontフォルダにセーブします。 + +(書式)BmpSave @GL[フォントファイル番号] +(書式)BmpSave @GM[フォントファイル番号] +(書式)BmpSave @KL[フォントファイル番号] +(書式)BmpSave @KM[フォントファイル番号] +(書式)BmpSave @AL[フォントファイル番号] +(書式)BmpSave @AM[フォントファイル番号] +(例)BmpSave @G2 + @LFONTG2.bmp (外字標準フォント) + @MFONTG2.bmp (外字ミニフォント) + 現在の外字標準フォントと外字ミニフォントファイルを外字フォント2としてセーブします。 +(例)BmpSave @GL3 + @LFONTG3.bmp (外字標準フォント) + 現在の外字標準フォントを外字フォント3としてセーブします。 +(例)BmpSave @GM3 + @MFONTG3.bmp (外字ミニフォント) + 現在の外字ミニフォントを外字フォント3としてセーブします。 + +(書式)BmpSave @GL"ファイル名" +(書式)BmpSave @GM"ファイル名" +(書式)BmpSave @KL"ファイル名" +(書式)BmpSave @KM"ファイル名" +(書式)BmpSave @AL"ファイル名" +(書式)BmpSave @AM"ファイル名" +(例)BmpSave @GL"MYFONTL" + 現在の外字標準フォントを"MYFONTL.bmp"としてセーブします。 +(例)BmpSave @GM"MYFONTM" + 現在の外字ミニフォントを"MYFONTM.bmp"としてセーブします。 + + + +=============================================================================== +シリアル通信コマンド(純正と同名コマンドですが純正との互換はありません。) +=============================================================================== +(書式)Send( 変数[,ボーレート][,EXIT有効]) +(書式)Recv( 変数[,ボーレート][,EXIT有効]) +(書式)Send38K 変数[,転送バイト数] +(書式)Receive38k 変数[,転送バイト数] +(書式)OpneComport38K[,ボーレート][,転送モード][,EXIT有効] +(書式)CloseComport38K +転送できるデータは変数、行列、リストとなります。 +転送元と転送先でデータの型を合わせる必要があります。 +Send38K/Receive38kはOpneComport38Kにて[転送モード]に0を指定するとバイナリデータの転送になります。 +[ボーレート値]:0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400(デフォルト), 8=57600, 9=115200 baud +[転送モード] 0:バイナリ転送モード  1:データ形式自動判別モード(デフォルト) +[EXIT有効] 0:無効  1:有効 +Send(とRecv(はコマンド単独で転送出来ますが、Send38K/Receive38kはOpneComport38K/CloseComport38Kが必要です。 + +(例)Send(A) +(例)Recv(A) +(例)Send(Mat A) +(例)Recv(Mat A) + +(例)OpneComport38K,9,0 +   Send38K List 1 +   CloseComport38K +(例)OpneComport38K,9,0 +   Receive38k List 1 +   CloseComport38K + +------------------------------------------------------------------------------- +Beep [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F5](Beep) +------------------------------------------------------------------------------- +(書式)Beep [周波数][,継続時間(ms)] + 3Pin出力より指定周波数の矩形波を出力します。 +(例) Beep + 1kHzの矩形波を0.5秒間、3Pinより出力します。 +(例) Beep 440,1000 + 440Hzの矩形波を1秒間、3Pinより出力します。 + + + +=============================================================================== +セットアップでの設定 +=============================================================================== +Angle :Deg/Rad/Gra +Complex Mode:Real/a+bi/r∠θ +Draw Type :Connect/Plot +Coord :on/off +Grid :on/off/Line +Axes :on/off/Scale +Label :on/off +Derivative :on/off +Background :None/Pict1~20 +Plot/LineCol:Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー(C.Basic拡張) +Sketch Line :Normal/Thick/Broken/Dot/Thin +----------------------------ここまで純正Casio Basic互換 + +------------------------------------------------------------------------------- +Display : Fix/Sci/Nrm/Eng + 小数以下の桁数は15桁まで。0を指定した場合は16桁となります。 + Nrmに関してはNrm1とNrm2のみCasio Basic互換10桁表示仕様です。 + Nrm1:0.01以下は指数表示 + Nrm2:0.000000001以下は指数表示 + それ以外は桁数指定となります。 + Eng :ENGオフ、ENGオン(/E)、3桁区切り(/3)の切り替えとなります。 + +・関連コマンド Fix,Sci,Norm,EngOn,EngOff,Eng + +------------------------------------------------------------------------------- +Exp Display : E / Stdx10 / Allx10 +     指数表示の記号を選択します。 +    E: -1.23e99 従来の表示形式です。 + Stdx10: -1.23(x10)99 スタンダードフォントのみ切り替わります。 + Allx10: -1.23(x10)99 すべてのフォントサイズで切り替わります。 + +・関連コマンド '#exp 0 // 従来の表示形式です。 + '#exp 1 // スタンダードフォントのみ切り替わります。 + '#exp 2 // すべてのフォントサイズで切り替わります。 + +------------------------------------------------------------------------------- +SetupRecover : on/off + すでにセットアップで設定してある上記の純正Casio Basic互換設定をプログラム終了後に復帰するかどうかを設定します。 + +------------------------------------------------------------------------------- +Command Inpt : C.Basic/Standard/>5800/>9800 + コマンド入力方法をC.Basic(fx-5800P)方式とStandard(fx-9860G)方式を選択できます。 + " "出力仕様をfx-5800P互換モードとFX/CG互換モードの切り替えができます。 + +・関連コマンド '#58 + '#98 + +------------------------------------------------------------------------------- +[X]character : [0x90]/[X] + [X,θ,T]キーで入力できる文字を選択します。 + +------------------------------------------------------------------------------- +EnableExFont : on/off + 外部フォントの使用を設定します。 + +・関連コマンド SetFont 0 // 外部フォント無効 + SetFont 1 // 外部フォント有効 + +------------------------------------------------------------------------------- +Edit ExtFont : on/off + エディタ上で外部フォント表示を使用します。 + +------------------------------------------------------------------------------- +Edit GB Font : on/off/Full + エディタ上でのGBフォントの表示を設定します。 + off:GBフォントを表示しません。通常のモードです。 + on:コマンド&特殊文字と重なるF7xx,F9xx,E5xx,E6xx,E7xxのGBコードを除いて表示します。 + (※文字列に0x03A8コードがあればそれ以後の文字列はFull表示になります。文字列コマンドの終了でon表示に戻ります。) + Full:内蔵のすべてのGBフォントを表示します。(GBコードと重なる一部コマンドがGBフォントに化けます。) + (※この設定はエディタとテキスト変換で有効になります。プログラム内での制御は以下のコマンドを使用して下さい。) + +・関連コマンド '#GB0 GBフォントを表示しません。従来のモードです。 + '#GB1 以後、コマンド&特殊文字と重なるF7xx,F9xx,E5xx,E6xx,E7xxを除いてGBコードとして表示します。 + '#GB2 以後、内蔵のすべてのGBコードを表示します。 + +------------------------------------------------------------------------------- +EditFontSize : Std/Mini/MiniMini/MiniMiniFX /+Fixed pitch/+Gap + 表示文字の大きさおよび行間隔を変更します。 + +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- + 自動インデントを設定します。 + Off: 自動インデントを使用しません。 + 1:  インデント幅を1に設定します。 + 2:  インデント幅を2に設定します。 + 4:  インデント幅を4に設定します。 + Save-:保存時にインデントを含むコマンド間の空白を削除します。(=CasioBasic準拠ソースに変換します。) + +------------------------------------------------------------------------------- +Edit LineNum : on/off + 行番号表示を選択します。 + +------------------------------------------------------------------------------- +EditListChar : List / 反転L / ボールドL + ListとMat表示を短縮表示(1文字の反転とボールド)に切り替えます。 + +------------------------------------------------------------------------------- +Edit-backCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタの背景色を設定します。 +------------------------------------------------------------------------------- +Edit-baseCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタの基本色を設定します。 +------------------------------------------------------------------------------- +E-NumericCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタの数値表示色を設定します。 +------------------------------------------------------------------------------- +E-CommandCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタのコマンド表示色を設定します。 +------------------------------------------------------------------------------- +Ed-QuteColor : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタの文字列表示色を設定します。 +------------------------------------------------------------------------------- +E-CommentCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタのコメント表示色を設定します。 +------------------------------------------------------------------------------- +E-LineNumCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + エディタの行番号表示色を設定します。 + +------------------------------------------------------------------------------- +Auto OverClk : on/off + 自動オーバークロックを有効/無効の設定をします。 + +------------------------------------------------------------------------------- +Heap RAM Size : 96KB/117KB/127KB/SIZE + C.Basicで使用する最大ヒープメモリサイズを指定します。 + ※プログラム編集時は変更できません。 + +------------------------------------------------------------------------------- +Use Hidn RAM : on/off + 隠しRAMをC.Basicで使用するかどうかを設定します。(fx-CG10/20は未対応です。) + fx-CG50では8MBのRAMが搭載されており、そのうち6MBはOS未使用領域となっているためにこれをプログラム領域と行列領域として利用できるようにします。 + +------------------------------------------------------------------------------- +HidnRAM Init : on/off + 隠しRAM使用時に、Mat行列&ListをC.Basic起動時に初期化するかどうかを設定します。(fx-CG10/20は未対応です。) + 初期化しない場合は、Mat行列&Listの結果が消えないで残ります。 + (※注意 ただし、CG50では電源オフから1時間でメモリがクリアされてしまうので、C.Basicが再起動します。) +------------------------------------------------------------------------------- +Max Pict No : 20~20 + CGシリーズでは無効です。20から変更できません。 + +------------------------------------------------------------------------------- +Max List No : 52~1040 + 隠しRAM使用時に、Listの上限を増やせます。 + 設定を変更するとPict&Mat&Listデータが初期化されます。 + +------------------------------------------------------------------------------- +AT DebugMode : on/off + [AC]で中断した時にデバッグモードの有効/無効を設定します。 + +------------------------------------------------------------------------------- +ExitDM Popup : on/off + デバッグモードから[EXIT]で抜ける場合の確認PopUpを設定します。 + +------------------------------------------------------------------------------- +Break Stop :on/off + [AC]キーによる中断の有無。 + offの場合は[AC]キーによる中断が出来ません。 + +・関連コマンド '#Break0 // [AC]キー無効 + '#Break1 // [AC]キー有効 (デフォルト) + +------------------------------------------------------------------------------- +Exec TimeDsp : on/off/%HR/on reset + プログラム終了時にプログラムの実行時間を表示します。 + 計測開始はプログラムの最初の行からですが、途中?コマンドや一時停止コマンドがあった場合はそれまでの計測時間はリセットされます。 + Getkey1/2の場合は計測が一時停止になり、コマンド実行後に再スタートします。 + on resetは、Getkey1/2実行後に計測がリセットされ再スタートします。 + %HR:計測に1/32768sタイマーを使います。 + +・関連コマンド '#GetkeyC // Getkey1/2実行後に時間計測を一時停止、リスタートします。(デフォルト) + '#GetkeyR // Getkey1/2実行後に時間計測がリセット&リスタートします。 + +------------------------------------------------------------------------------- +IfEnd Check : on/off + IfとIfEndが一対一で対応しているかどうかをチェックします。 + +------------------------------------------------------------------------------- +ACBreak : on/off + ACBreakコマンドの有効/無効を切り替えます。 + +・関連コマンド ACBreak + +------------------------------------------------------------------------------- +Force Return : None/F1/EXE/F1&EXE + プログラム実行中の中断でエディタに戻るかファイルリストに戻るかを選択できます。 + (例)Force Return: F1 の場合、 + ・ ファイルリスト画面 → [F1](EXE) → [AC] → [EXIT] …… ファイルリスト画面に戻ります。 + ・ ファイルリスト画面 → [EXE] → [AC] →[EXIT] …… エディタに戻ります。 + ・ ファイルリスト画面 → [F1](EXE) → [AC] → [EXE](再開) → [AC] → [EXIT] …… ファイルリスト画面に戻ります。 +      (初めにどちらのキーを押したかによって動作が決まります。) + +------------------------------------------------------------------------------- +Key 1st time : 25ms~1000ms(デフォルト値 500ms) + リピート開始までの時間 (25ms単位) +Key Rep time : 25ms~500ms(デフォルト値 125ms) + リピート継続時間 (25ms単位) + +------------------------------------------------------------------------------- +SkipUp/Down : 1~9999 + SkipUp/SkipDownでの一回分の改ページ数を指定します。 + ※改行ごとに一行増える論理行ではなく画面上での見た目上での物理行数です。 + +------------------------------------------------------------------------------- +Mat Dsp mode : [m,n]/[X,Y] + 行列エディタ画面での表示形式を指定します。 + それぞれ転置行列の関係になりますが、行列内部は何も変化なく表示上だけの指定です。 +Matrix base : 0/1 + 行列インデックスの初期値を0か1が指定します。 + 初期値に0を指定した場合は、グラフィック座標が左上端の(0,0)から有効になります。 + +・関連コマンド '#Mat 0 // 行列のインデックス開始値を0にします。 + '#Mat 1 // 行列のインデックス開始値を1にします。(デフォルト) + +------------------------------------------------------------------------------- +DATE : 2017/01/17 MON +TIME : 23:59:59 + 内蔵RTCを設定します。曜日は自動設定されます。 + +・関連コマンド DATE、TIME + +------------------------------------------------------------------------------- +Root Folder : / + ファイルアクセスの基本となるルートフォルダを設定します。 + [F1]:ストレージメモリのルートフォルダに設定します。 + [F2]:カレントフォルダを以後ルートフォルダに設定します。 + +・関連コマンド '#R/ // ストレージメモリのルートフォルダに設定します。 + '#R. // カレントフォルダをルートフォルダに設定します。 + +------------------------------------------------------------------------------- +Favorite Col : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16ビットカラー + ファイルリストのお気に入りの色を設定します。 + +------------------------------------------------------------------------------- +Auto file save : on/off + 編集後、自動的に保存するかどうか設定します。 + +------------------------------------------------------------------------------- +Force g1m save : on/off + テキストファイル編集/実行後に同時にg1m形式でも保存するかどうかを設定します。 + +------------------------------------------------------------------------------- +Direct GB cnvt : on/off + プログラム内のGBコードをテキスト変換無しでそのままテキストファイルに保存するかどうかを設定します。 + (※変換無しでテキストファイルにした場合はGB2312対応エディタではそのまま表示できます。) + (※変換対象GBコードはエディタのGBコード表示モードに対応しています。) + +------------------------------------------------------------------------------- +Pict mode : S.Mem/Heap/Both + (S.Mem) Pictファイルをストレージメモリ上に作ります。若干時間がかかります。 + (Heap) Pictファイルとしては作成されずにメモリ上に互換ファイルが作成されます。(推奨設定です) + (Both) HeapモードでもPictファイルが常にストレージメモリ上に作成されます。 + (Clear) メモリ上に作成されるPict互換ファイルをプログラム開始時に削除します。 + +------------------------------------------------------------------------------- +Storage mode : S.Mem/Main Mem + ファイルの保存先、ファイル操作の対象を選択します。 + +------------------------------------------------------------------------------- +RefrshCtl DD : off/Grph/All + 描画コマンドにおける画面の更新を設定できます。 + Off:リフレッシュコントロール無し。表示においては純正互換仕様です。 + Grph:グラフィックコマンドのみリフレッシュコントロール有り。ClrText,Locate,Text,LocateYX、" "は無しで以前のバージョン互換です。 + All:すべての描画コマンドがリフレッシュコントロールされた表示となります。必要に応じてPutDispDDコマンドが必須となります。 + Time:リフレッシュコントール時間を設定します。n/128秒単位で画面更新します。デフォルトは3で約1/42秒での更新となっています。 +    0を指定するとリフレッシュされなくなります。 + +・関連コマンド RefrshCtrl/RefrshTime + +------------------------------------------------------------------------------- +Wait count : 0~9999 + C.Basic全体の実行速度を調整します。 + +・関連コマンド Wait + +------------------------------------------------------------------------------- +G1M/G3M mode : Auto/g3m/g1m + デフォルトのプログラムの実行モードを切り替えます。 + +・関連コマンド '#G1M + '#g1m + '#G3M + '#g3m +------------------------------------------------------------------------------- +Execute mode : DBL#/INT%/CPLX + デフォルトのプログラムの実行モードを切り替えます。 + +・関連コマンド '#CBasic + '#CBASIC + '#CBDBL + '#CBdbl + '#CBINT + '#CBint + '#CBCPLX + '#CBcplx + + +=============================================================================== + + diff --git a/doc-cg/Mat_Vct_List.txt b/doc-cg/Mat_Vct_List.txt new file mode 100644 index 0000000..15350e5 --- /dev/null +++ b/doc-cg/Mat_Vct_List.txt @@ -0,0 +1,175 @@ +------------------------------------------------------------ +Mat n Vct n List n + + 1: Mat A + 2: Mat B + 3: Mat C + 4: Mat D + 5: Mat E + 6: Mat F + 7: Mat G + 8: Mat H + 9: Mat I + 10: Mat J + 11: Mat K + 12: Mat L + 13: Mat M + 14: Mat N + 15: Mat O + 16: Mat P + 17: Mat Q + 18: Mat R + 19: Mat S + 20: Mat T + 21: Mat U + 22: Mat V + 23: Mat W + 24: Mat X + 25: Mat Y + 26: Mat Z + + Vct A + Vct B + Vct C + Vct D + Vct E + Vct F + Vct G + Vct H + Vct I + Vct J + Vct K + Vct L + Vct M + Vct N + Vct O + Vct P + Vct Q + Vct R + Vct S + Vct T + Vct U + Vct V + Vct W + Vct X + Vct Y + Vct Z + + List 1 + List 2 + List 3 + List 4 + List 5 + List 6 + List 7 + List 8 + List 9 + List 10 + List 11 + List 12 + List 13 + List 14 + List 15 + List 16 + List 17 + List 18 + List 19 + List 20 + List 21 + List 22 + List 23 + List 24 + List 25 + List 26 + + 27: Mat a Vct a List 27 + 28: Mat b Vct b List 28 + 29: Mat c Vct c List 29 + 30: Mat d Vct d List 30 + 31: Mat e Vct e List 31 + 32: Mat f Vct f List 32 + 33: Mat g Vct g List 33 + 34: Mat h Vct h List 34 + 35: Mat i Vct i List 35 + 36: Mat j Vct j List 36 + 37: Mat k Vct k List 37 + 38: Mat l Vct l List 38 + 39: Mat m Vct m List 39 + 40: Mat n Vct n List 40 + 41: Mat o Vct o List 41 + 42: Mat p Vct p List 42 + 43: Mat q Vct q List 43 + 44: Mat r Vct r List 44 + 45: Mat s Vct s List 45 + 46: Mat t Vct t List 46 + 47: Mat u Vct u List 47 + 48: Mat v Vct v List 48 + 49: Mat w Vct w List 49 + 50: Mat x Vct x List 50 + 51: Mat y Vct y List 51 + 52: Mat z Vct z List 52 + + 53: Mat 53 Vct 53 List 53 List 1: file 1 + 54: Mat 54 Vct 54 List 54 + 55: Mat 55 Vct 55 List 55 + 56: Mat 56 Vct 56 List 56 + 57: Mat 57 Vct 57 List 57 + 58: Mat 58 Vct 58 List 58 + 59: Mat 59 Vct 59 List 59 + 60: Mat 60 Vct 60 List 60 + 61: Mat 61 Vct 61 List 61 + 62: Mat 62 Vct 62 List 62 + 63: Mat 63 Vct 63 List 63 + 64: Mat 64 Vct 64 List 64 + 65: Mat 65 Vct 65 List 65 + 66: Mat 66 Vct 66 List 66 + 67: Mat 67 Vct 67 List 67 + 68: Mat 68 Vct 68 List 68 + 69: Mat 69 Vct 69 List 69 + 70: Mat 70 Vct 70 List 70 + 71: Mat 71 Vct 71 List 71 + 72: Mat 72 Vct 72 List 72 + 73: Mat 73 Vct 73 List 73 + 74: Mat 74 Vct 74 List 74 + 75: Mat 75 Vct 75 List 75 + 76: Mat 76 Vct 76 List 76 + 77: Mat 77 Vct 77 List 77 + 78: Mat 78 Vct 78 List 78 + + 79: Mat 79 Vct 79 List 79 List 1: file 2 + 80: Mat 80 Vct 80 List 80 + 81: Mat 81 Vct 81 List 81 + 82: Mat 82 Vct 82 List 82 + 83: Mat 83 Vct 83 List 83 + 84: Mat 84 Vct 84 List 84 + 85: Mat 85 Vct 85 List 85 + 86: Mat 86 Vct 86 List 86 + 87: Mat 87 Vct 87 List 87 + 88: Mat 88 Vct 88 List 88 + 89: Mat 89 Vct 89 List 89 + 90: Mat 90 Vct 90 List 90 + 91: Mat 91 Vct 91 List 91 + 92: Mat 92 Vct 92 List 92 + 93: Mat 93 Vct 93 List 93 + 94: Mat 94 Vct 94 List 94 + 95: Mat 95 Vct 95 List 95 + 96: Mat 96 Vct 96 List 96 + 97: Mat 97 Vct 97 List 97 + 98: Mat 98 Vct 98 List 98 + 99: Mat 99 Vct 99 List 99 +100: Mat 100 Vct 100 List 100 +101: Mat 101 Vct 101 List 101 +102: Mat 102 Vct 102 List 102 +103: Mat 103 Vct 103 List 103 +104: Mat 104 Vct 104 List 104 + +105: Mat 105 Vct 105 List 105 List 1: file 3 +106: Mat 106 Vct 106 List 106 +107: Mat 107 Vct 107 List 107 + +: Mat Vct List + : Mat Vct List +Ans: Mat Ans Vct Ans List Ans +------------------------------------------------------------ +Last edited by sentaro 2020/02/05(UTC) +------------------------------------------------------------ \ No newline at end of file diff --git a/doc-cg/Message.txt b/doc-cg/Message.txt new file mode 100644 index 0000000..1337b19 --- /dev/null +++ b/doc-cg/Message.txt @@ -0,0 +1,183 @@ + +------------------------------- File list message +"Font Reading....." +"File Reading....." +"------Favorites------" +"Can't find file" +"Can't load file" +"Can't delete file" +"Can't delete fldr" +"Can't create file" +"Can't open file" +"Can't create Dir" +"Program Name" +"Overwrite OK?" +"Save Name?" +"Save Text Name?" +"New Program Name?" +"Password?" +" Mismatch" +"Set Password" +"Unlock password" +"Delete file?" +"Delete folder?" +"Folder Name" +"Can't make folder" +"Rename Folder ?" +"Rename File ?" +"Can't Rename file" +"Rename File Name?" +"Copy File Name?" + + +------------------------------- Editor message +"Search For Text" +"Replacement Text" +" Not Found " +"[AC]:Stop" +"Hit GetKey Code" + +"== Command Select ==" +"==STD GR FN STR EX==" + +"===Continuous Select= C.Basic =" +"===Character Select== C.Basic =" +"===Continuous Select= Default =" +"===Character Select== Default =" +"==Continuous Select==" +"==Character Select===" + +"===Character Select== GB code 0xA0** ==" +"===Continuous Select= GB code 0xA0** ==" + +------------------------------- Matrix message +"Goto Element" +"Dimension mxn" +"Dimension XxY" +"Init Matrix array" +"Goto Element" +"CLip Buffer Over" +"Mat to Clip Ok!" +"List to Clip Ok!" + +"[1bit]" +"[VRAM]" +"[nibl]" +"[byte]" +"[word]" +"[long]" +"[Dbl]" +"[CPLX]" + +-------------------------------- Casio Basic Compatible error message +" Syntax ERROR" +" Math ERROR" +" Go ERROR" +" Nesting ERROR" +" Stack ERROR" +" Memory ERROR" +" Argument ERROR" +" Dimension ERROR" +" Range ERROR" +" Too Much Data" +" Com ERROR" +" Transmit ERROR" +" Receive ERROR" +" Non-Real ERROR" + +-------------------------------- extended error message + +"Next without For" +"For without Next" +"While w/o WEnd" +"WEnd w/o While" +"LpWhile w/o Do" +"Do w/o LpWhile" +"Not Loop ERROR" +"Division By Zero" +"Undefined Label" +"Not enough Memory" +"String Too Long" +"No Matrix array" +"Illegal Ary size" +"Not found Prog" +"Too many SubProg" +"If without IfEnd" +"Then without If" +"Case w/t Switch" +"Default w/o Swtch" +"Switch w/o S.End" +"S.End w/o Switch" +"Can't find file" +"Illegal Element" +"Already Open ERR" +"Com Not Open ERR" +"Type Mismatch ERR" +"Out of Domain ERR" +"Undefined Var" +"Undefined Func" +"Not Support ERR" +"Too many Var ERR" +"Duplicate Def ERR" +"Address Align ERR" +"Try w/t Except " +"Except w/t Try " +"TryEnd w/t Try " +"File ERROR" + +------------------------------- Setup message +"Angle :" +"Draw Type :" +"Coord :" +"Grid :" +"Axes :" +"Label :" +"Derivative :" +"Background :" +"Plot/LineCol:" +"Sketch Line :" +"Display :" + +"Exp Display :" +"SetupRecover:" +"Command Inpt:" +"EnableExFont:" +"Edit ExtFont:" +"Edit GB Font:" +"EditFontSize:" +"Edit LineNum:" +"EditListChar:" +"Edit-backCol:" +"Edit-baseCol:" +"E-NumericCol:" +"E-CommandCol:" +"Ed-QuotColor:" +"E-CommentCol:" +"E-LineNumCol:" +"Use Hidn RAM:" +"HidnRAM Init:" +"Max Pict No :" +"Max List No :" +"AT DebugMode:" +"Break Stop :" +"Exec TimeDsp:" +"IfEnd Check :" +"ACBreak :" +"Force Return:" +"Key 1st time:" +"Key Rep time:" +"SkipUp/Down :" +"Mat Dsp mode:" +"Matrix base :" +"Pict mode :" +"Auto file save:" +"Force g1m save:" +"Direct GB cnvt:" +"RefrshCtl DD:" +"Wait count :" +"G1M/G3M mode:" +"Execute mode:" + +"Select Number" +"SkipUp/Dw Number" +"RefrshTime n/128s" diff --git a/doc-cg/ReadmeCG_EN.txt b/doc-cg/ReadmeCG_EN.txt new file mode 100644 index 0000000..6202230 --- /dev/null +++ b/doc-cg/ReadmeCG_EN.txt @@ -0,0 +1,680 @@ +Please look at this site that made by Krtyski.(e-Gadget administrator) +https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site and following text is translated by Krtyski(e-Gadget administrator) & Lephenixnoir(Planet-Casio administrator). +Thanks very much for your support. + +=============================================================================== + +Add-In Casio Basic Interpreter (& Compiler) for CG ver. 1.x beta version + +copyright(c)2015-2017-2020 by sentaro21 +e-mail sentaro21@pm.matrix.jp + +last updated by Krtyski/sentaro21, 9 Feb 2020 +=============================================================================== + +**If you feel your Casio Basic programs are not running fast enough, C.Basic can free you of that frustration!** + +Get started with genuine Casio Basic programs, then enjoy extended commands that Casio Basic alone cannot perform. + +- Currently **C.Basic for CG** (Basic interpreter) runs on Prizm fx-CG10 and fx-CG20 and fx-CG50 / Graph 90+E +- **C.Basic for CG** will evolve into a Casio Basic compiler "**C:Basic for CG**", which will run programs much faster than C.Basic (10 times from the looks of it). + +All the instructions supported by C.Basic are listed in the `"Command_List_CG.txt"` and `"ManualCG_EN.txt"` files included in the distribution package. + +======= CAUTION !!! ======== +In order to support Prizm fx-CG10 and fx-CG20, the over clock feature was built in because of its slower screen refresh. +58.98MHz(default) -> 117.96Mhz (nearly Ptune2 [F3] preset) +============================ + +## Pros + +- C.Basic is mostly compatible with genuine Casio Basic. +- Programs run at least 10 times faster in C.Basic. +- C.Basic's List and File editors are easier to use than the usual ones. +- Can execute programs from storage memory, and supports sub-folder structures. +- Some Casio Basic commands are extended for more features. +- Newly-implemented commands for more powerful and flexible programming. + +## Cons + +- C.Basic does not cover all of the original Basic commands. +- Calculations don't yield the same results as the usual interpreter because C.Basic use double-precision floating point instead of fixed-point BCD. +- C.Basic stores PICT files in storage memory, hence using them is slower (at least until version 0.87 which uses the heap area from the main memory). +- There must be some bugs, unfortunately ^^ Please provide us with a bug report if you find any. + + +## Almost compatible with vanilla Casio Basic + +Flawless compatibility is our goal, but some differences are intentional: + +- `?` and `?→` input commands are displayed on a single line. Displaying a string longer than 21 characters will result in horizontal scroll instead of line wrap. +- When a graphing sketch commands is followed by the multi-statement command `:`, the screen is not refreshed. +- Program running time is displayed when the program ends. This function can be triggered in the setup page. +- Comment delimiters `'` are allowed before carriage returns and Disps (output), and `:` can be included in the comment string. + +C.Basic also takes in user-friendly features of fx-5800P: + +- C.Basic supports a `"?A"` command as fx-5800P, as opposed to fx-9860G / fx-9860GII / fx-CG series which only support `"?→A"`. +- String output command `" "` is fully compatible with fx-5800P thus a but different from fx-9860G / fx-9860GII. See [Topic](http://egadget.blog.fc2.com/blog-entry-520.html) for details. + + +======= CAUTION !!! ======== +We don't believe that C.Basic could damage your calculator, but the main memory could still be unexpectedly damaged or destroyed, which would require a whole memory reset. Hence it is strongly recommended that you backup your main and storage memory data. Please be aware that you should only use C.Basic at your sole risk. +============================ + +======= Disclaimer of Warranty ======= +Use of C.Basic and C:Basic (hereinafter SOFTWARE) is at user’s sole risk. All materials, information, products, software, programs and service provided “as is”, with no warranties or guarantees whatsoever. Creators of SOFTWARE and support team who provide support documents, support web site, information and sample programs (hereinafter DEVELOPMENT TEAM) expressly disclaim to the fullest extent permitted by law, all express, implied, statutory, and other warranties, guarantees, or representations, including, without limitation, the warranties of merchantability, fitness for a particular purpose, and non-infringement of proprietary and intellectual property rights. Without limitation, DEVELOPMENT TEAM makes no warranty or guarantee that development of SOFTWARE will be uninterrupted, timely, secure, or error-free. +====================================== + + +------------------------------------------------------------------------------- +# Starting up C.Basic + +To start up **C.Basic**, press `[MENU]`, select the C.Basic icon, then press `[EXE]`. + +There are two ways for copying a program file (`g1m` file) developed for the original Casio Basic interpreter into the File List in C.Basic: + +## Using the pre-installed memory manager + +- To start up the memory manager, press `[MENU]`, select the memory manager icon and press `[EXE]`. +- Press `[F1]` to display the contents of the main memory. +- Move the cursor down to `` and press `[EXE]`. You should now be seeing the list of all Basic Casio programs currently installed for the usual interpreter. +- Select the program file that you want to copy. +- Press `[F1](SEL)` then `[F2](COPY)`. +- Select `"ROOT"`, press `[EXE]`; the calculator will ask you for a file name. +- Enter an appropriate file name or just `"A"`, then press `[EXE]`. +- Press the `[MENU]` key to go back to the main menu. +- Start C.Basic. +- In the File List select the name you just entered, press `[F6]` and then `[F2](REN)`. +- You will be prompted with `[Rename file Name?]`, and the original file name will be displayed (even though you typed in `"A"`). Press `[EXE]`. +- Now the file name has been corrected. + +(*Ver.0.53 or later) + -Added setting of the setup to use the program file of MCS(main memory) directly. + You can change the destination from MCS from storage, storage to MCS in preservation and the copy of the file. + At the storage memory mode, copying, a destination become MCS when they choose [F3](MCS). + Copying, a destination become the storage memory when they choose [F1](g3m)[F2](g1m) at the MCS mode. + + +================================================================================= +Quick Manual - Development Environment of C.Basic +================================================================================= + +--------------------------------------------------------------------------------- +File List Page +--------------------------------------------------------------------------------- +-[UP] Move cursor to the previous file. +-[DOWN] Move cursor ro the next file. +Pressing A to Z, cursor jumps to a file name which starts with the pressed alphabet. +This feature is fx-5800P compatible but not fx-CG. +Press [.] key to jump to a file name which starts with "~". +Press [EXP(x10)]key to jump to top of folder list. + +-[F1] (EXE) Run selected file. +-[F2] (EDIT) Edit selected file. +-[F3] (NEW) Create new file. +-[F4] (COPY) Copy selected file. +-[F5] (DELETE) Deleted selected file. +-[F6] ( > ) Move to next menu. + [F1] (>txt) Convert selected source file to text file. + [F2] (RENAME) Rename file. + [F3] (Fav.) Set/Reset selected file to/from "Favorite". + [F4] (Fv.up) Move upward selected Favorite file. + [F5] (Fv.dw) Move downward selected Favorite file. + [F6] ( > ) Move to previous menu. + [F1] (MKEFLDR) Make new Folder + [F2] (RENFLDR) Rename Folder + [F6] ( > ) Move to the first menu. + +-[EXE] Run the selected file. + +-[SHIFT]+ + [EXIT](QUIT) Move back to root from sub-folder. + [UP] Move upward selected Favorite file. + [DOWN] Move downward selected Favorite file. + [F1] (Var) Go to Variables Review Page. + [F2] (Mat) Go to Mat Variables Review Page. + [F3] (V-W) Go to ViewWindow setting value review page. + [F4] (Pass) Set/Reset pass word. + [F6] (Debug) Start Debug mode & open Editor page. + +-[VARS] (Variables Review Page) + [F1] (A<>a) Switch between display of capital and small letter variables. + [F2] (Init) Initialize all the displayed variables. + [F3] (D<>I) Siwitch between Integer and Double variables. + [F6] (>Hex/>Dec) Switch display of values between in Hex and Dec. + [SHIFT]+[UP]/[DOWN] Scroll single page up and down. + ※ Local variabe is marked with "=". + +-[SHIFT] + [MENU] (SETUP) Go to Setup page. + [MENU][F6] Pop up Version information. + +-[OPTN] Set/Reset selected file to/from "Favorite". + +-[EXIT] Move cursor back to first file in the list. + When cursor is at the first file in sub-folder, move back to root. + +------------------------------------------------------------------------------- +Editor Page +------------------------------------------------------------------------------- +Guide marker displayed in very right of Editor Page indicates cursor position in source file. + +-[F1] (JUMP) Display JUMP Sub-menu. + [F1] (TOP) Jump to top line of source file. + [F2] (BTM) Jump to end line of source file. + [F3] (GOTO) Jump to a line where you want to go. + [F5] (SkipUp) Skip lines (preset # of line is available in Setup page) toward to top. + [F6] (SkipDw) Skip lines (preset # of line is available in Setup page) toward to end. + +-[F2] (SRC) Go to String Search / Replacement page. +-[F3] (CMD) Go to Command Select page. (this is like fx-5800P command list)(fx-5800P mode) + (MENU)) SelectCommand (fx-CG mode) +-[F4] (A<>a) Switch between Capital and small letter. +-[F5] (CHAR) Go to Character Select page. +-[F6] (EXE) Run program or restart program when it's in pause. + +-[SHIFT]+ + [EXIT](QUIT) Go back to File List page. + [LEFT] Change font size & line spacing smaller. + [RIGHT] Change font size & line spacing bigger. + [UP] Scroll 1 page (6 lines) up to top. + [DOWN] Scroll 1 page (6 lines) down to end. + [F1] (Var) Go to Variables page. + [F2] (Mat) Go to Mat Variables page. + [F3] (V-WIN) Go to ViewWindow page. + [F4] (SKTCH) Select Command. (fx-CG mode) + (Dump)/(List) Switch between "Basic List" and "Hex Dump" display.(fx-5800P mode) + [F5] (A<>a) Switch between Capital and small letter. + [F6] (CHAR) Go to Character Select page. (fx-CG mode) + (G<>T) Switch Graphics and Text screen.(fx-5800P mode) + + [3] Input keycode of Getkey command. + [6] Pop up Color Picker to input color code. + +-[OPTN] Pop up Command List supported by [OPTN] of fx-CG.(fx-5800P mode) + Select Command. (fx-CG mode) + +-[VARS] Pop up Comamnd List supported by [VARS] of fx-CG.(fx-5800P mode) + Select Command. (fx-CG mode) + +-[MENU] Command input history (chronological order/input frequency order is changed by right and left key.) + [AC/ON] Erase history + +-[SHIFT][VARS] (PRGM) Pop up Command List supported by [PRGM] of fx-CG. + +-[SHIFT][MENU] (SETUP) Go to Setup page.(fx-5800P mode) + (SETUP) Select Command. (fx-CG mode) + +-[ALPH][DEL] (UNDO) Delete or Paste operations are restored to the previous state.(only once) + +-[EXIT] Go back to previous page, cancel clip mode or go back to File List page. + +------------------------------------------------------------------------------- +Debug Mode Editor Page +------------------------------------------------------------------------------- +Debug mode page comes up when program is broken intentionally or by error. Right example above shows Debug Mode Edotr Page that mini-font is applied in setup page. + +In Degub Mode, status line is getting inverted on C.Basic for FX or becomes cyan color background. + +-[F1](Cont) Continue program from cursor position. + +-[F2](TRACE) Trace program from cursor position and come back to Editor page in Debug Mode right after the traced command runs, . + +-[F3](STEPS) Trace and Step Over comamnd from cursor position and come back to Editor page in Debug Mode right after the command runs. When sub-routine runs, the sub-routine is executed to the end. + +-[F4](S.Out) Step Out from cursor position and come back to Editor page in Debug Mode right after the command runs. When the sursor is in sub-routine the sub-routine is executed to the end. + +-[F5](L<>S) Switch Editor page and program running screen. When the program running screen is displayed, debug operaiton with [F1] - [F4] is still available. + +-[F6]( > ) Switch Debug manu and Editor menu. When program running screen is displayed, pressing [F6](>) displays Debug menu. + +-[EXIT] Go back to previous page, cancel clip mode or go back to normal (not in Debug mode) Editor page. + +(*In the debug mode, status line becomes cyan color background.) + +------------------------------------------------------------------------------- +Program Running Page +------------------------------------------------------------------------------- +During program is running; + +-[AC] Stop program. + [EXIT] Go to Editor in Debug mode. Cursor locates at break point. + [Left/Right] Go to Editor in Debug mode. Cursor locates at break point. + [F1] Resume program. + [EXE] Resume program. + +When program is halted by ▲ command (- Disp - is displayed on screen); +-[SHIFT]+ + [F1](Var) Go to Variables Page + [F2](Mat) Go to Mat/List Page + [F3](V-W) Go to ViewWindow Page + [F6](G<>T) Switch between Graphics and Text screen +-[EXE] Resume program. + +------------------------------------------------------------------------------- +Mat/List/Vct Page +------------------------------------------------------------------------------- +In Mat/List Page you can review and edit Mat or List or Vct. Operation procedure of Mat and List and Vct is consistant, since List is internaly implemented as Mat. +(The Mat marked by * in this page is alocated by addressing.) + +[Operation in Review Mode] +-[F1] (DEL) Delete selected Mat/List. +-[F2] (DEL-ALL) Delete all Mat/List. +-[F3] (DIM) Set dimension, element size and start index of selected Mat/List/Vct. +-[F4] (INITIAL) Initialize all elements of selected Mat/List/Vct. +-[F5] (Mat#/Lst#/Vct#) Select a number and jump to Mat/List/Vct of the number in alphabetical order. +-[F6] (A<>a) Switch between capital letter and small letter of Mat name. + +-[EXE] Enter to Edit Mode of Mat/List/Vct. (in details see below) + +-[SHIFT]+[F1] (>Mat) Select Mat +-[SHIFT]+[F2] (>List) Select List +-[SHIFT]+[F3] (>Vct) Select Vct + +-[OPTN] Switch showing between Mat and List. +-[VARS] Switch showing between Mat and Vct. + +-[LEFT] backword 26. +-[RIGHT] forword 26. + +-[SHIFT]+[UP][DOWN] page scroll + +[Operation in Edit Mode] +[SHIFT]+[8](CLIP) All data of selected Mat/List/Vct is clipped in buffer. +[SHIFT]+[9](PASTE) Clipped data is pasted to selected Mat/List/Vct from buffer. + + +to edit numerical value; + -[F1] (EDIT) Edit the element of the Mat/List/Vct. + -[F2] (GO) Go to element set by row and column. + -[F3] (INITIAL) Initialize all elements. + -[F4] (>x,y / >m,n) Switch Matrix indication between [m,n] and [x,y]. + + -[SHIFT]+[F5] or [F5] Switch element values between in decimal and binary. + (applied only to nybble (4 bits), byte (1 byte) and word (2 bytes)) + -[SHIFT]+[F6] or [F6] Switch element values between in decimal and hexadecimal. + (not applied to 1 bit and a complex number (16 bytes), double number (8 bytes) just displays internal data) + + -[SHIFT]+[F2] or [OPTN] Enter to Dot Editor Mode. + -[SHIFT]+[F3] or [VARS] Enter to Character Strings Edit Mode. + + Only for g3m mode on C.Basic for CG (excluding 1 bit Mat/List/Vct); + -[SHIFT] + [5] Input 4 bit color value in nibble (4 bits) or 16 bits color value in other element number type. + [6] Input 16 bits color value (excluding nibble (4 bits) Mat/List/Vct). + + +to edit Dots; + Each element value of matrix can be handled as color code. + - Using in 1 bit matrix or in g1m mode, 0(zero) = black and 1 = white. + - Using in nibble (4 bits matrix), 4 bits color value is applied. + + -[F1] (0 <> 1) Switch element value between 0 and 1.(1 bit Mat or g1m mode) + -[F1] Change to the color displayed by the function menu. (other than the 1 bit Mat of the g3m mode) + *It change to black as same color + + Only as for the following, g3m mode (except the 1 bit Mat/List) + -[SHIFT] + [5] Input a 16 bits color other than it with a 4 bits color in the nibble (4 bits). + [6] Input a 16 bits color. (except the nibble (4 bits) Mat/List) + +------------------------------------------------------------------------------- +Search/Replace for Text +------------------------------------------------------------------------------- +[Search character string] +Operatin procedure; +1. Input character string and press [F1](SEARCH) or [EXE]. +2. To search next, press [F1](SEARCH) or [EXE] again. +3. Press [F6](RETRY) to back to search page. + +[Replace character string] +Operatin procedure; +1. Input character string to search, and press [F2](REPL). +2. Then input character string to be replaced with, and press [F1](SEARCH), [F2](REPL) or [EXE]. +3. To search more for replacement, press [F1](SEARCH) or [EXE] again. +4. Then press [F2](REPL) to replace again. +5. To replace all, press [F3](ALL) or [F4](ALL+). To quit replacement, press [AC/ON]. + When pressing [F4] (ALL+), progress status is not dusplayed. + +------------------------------------------------------------------------------- +Incompatible Spec against genuine Casio Basic +------------------------------------------------------------------------------- +Compatibility with genuine Casio Basic is our target, but not 100%; + +An input line by command "?" and "?->" are only in single line. A string of characters more than 21 columns is displayed still in the horizontal single line by scrolling, not in multiple lines. +When ":" (Multi-statement Command) comes right after graphing sketch command, graphic screen is not re-drawn. +Program running time is displayed after the program quit. This function can be set on or off in setup page. +A Comment Text Delimiter ' is available for comment-out before Carriage Return or Disps (output), but ":" (Multi-statement Command) can be included the commented out string. + +C.Basic also takes in user-friendly feature of fx-5800P; + +C.Basic does support a script "?A" supported by fx-5800P. This is not supported by fx-CG (script "?->A" only is supported). +Function of string output command " " is fully compatible with fx-5800P in details but not exactly compatible with fx-CG. See Topics in details. + + +------------------------------------------------------------------------------- +Select Character Page +------------------------------------------------------------------------------- +In addition to character set of genuine Casio Basic, more characters are supported. + +In "Character Select" page; +[F6] ASCII, Kana, external character can be applied. +[SHIFT]/[F1]~[F6] Continuous input is available. +[OPTN] Switch between mini-font and normal font. +[VARS] - C.Basic for FX Switch between OS supported the mini-font and normal font. +[VARS] - C.Basic for CG Switch between C.Basic font and OS supported font. +When OS supported font is displayed, special character can be input without escape. + +(about GB font) +In order to use GB font, in "Setup" page "Edit GB Font" setting should be "On" or "Full". Then +[x^2] to switch between "GB code input mode" and other font input mode. + +[F1] Jump to beginning 0xA0**. +[F2] Go back 16 pages. +[F3] Go back 1 page. +[F4] Go forward 1 page. +[F5] Go forward 16 pages. +[F6] Jump to end 0xFE**. + +*At the time of GB code indication, escape(0x5C) may be necessary to display special character. +*Character with the escape(0x5C) is shown with yellow background. + +=============================================================================== +Setup Page +=============================================================================== +Setup items - compatible with genuine Casio Basic + +Angle :Deg/Rad/Gra +Complex Mode:Real/a+bi/r∠θ +Draw Type :Connect/Plot +Coord :on/off +Grid :on/off/Line +Axes :on/off/Scale +Label :on/off +Derivative :on/off +Background :None / Pict1-20 +Plot/LineCol:Black etc. +Sketch Line :Normal/Thick/Broken/Dot/Thin +--------------------------------------------------- + +Setup items - newly provided and extended for C.Basic +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + Max number of digit after decimal point can be 15. Setting 0 (zero) max digit is 16. + Nrm1 or Nrm2 is fully compatible with genuine Casio Basic and max digit is 10. + - Nrm1: -0.015800/>9800 + Select Standard(fx-CG) method or C.Basic(fx-5800P) method. + You can change the mode of "" output specifications compatible with fx-5800P and FX/CG. + - Related command: '#58 + '#98 +------------------------------------------------------------------------------- +[X]character : [0x90]/[X] + To select character of [X/Theta/T]key. +------------------------------------------------------------------------------- +EnableExFont : on/off + Set to use external font. +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- + enable auto indent in editor. + Off: diable auto indent. + 1 : Set indent width to 1. + 2 : Set indent width to 1. + 4 : Set indent width to 1. + Save-: delete blank spaces including indents when saving program. (=to compatible with Casio Basic) +------------------------------------------------------------------------------- +Edit ExtFont : On/Off + enable external font in editor. +------------------------------------------------------------------------------- +Edit GB Font : On/Off/Full + To select GB font display on editor. + Off : normal. not display GB font. + On : display GB font without F7xx,F9xx,E5xx,E6xx,E7xx + Full: display all GB font. +------------------------------------------------------------------------------- +EditFontSize : Standard/Mini/MiniMini/MiniMiniFX /+Fixed pitch/+Gap + Set to Editor font size. +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- + enable auto indent in editor. + Off: diable auto indent. + 1 : Set indent width to 1. + 2 : Set indent width to 1. + 4 : Set indent width to 1. + Save-: delete blank spaces including indents when saving program. (=to compatible with Casio Basic) +------------------------------------------------------------------------------- +Edit LineNum :on/off + Set to line number display. +------------------------------------------------------------------------------- +EditListChar : List / reverseL / Thick L + Select List display character. +------------------------------------------------------------------------------- +Edit-backCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select back color of editor. +------------------------------------------------------------------------------- +Edit-baseCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select base color of editor. +------------------------------------------------------------------------------- +E-NumericCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select numeric color of editor. +------------------------------------------------------------------------------- +E-CommandCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select command color of editor. +------------------------------------------------------------------------------- +Ed-QuotColor : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select strings color of editor. +------------------------------------------------------------------------------- +E-CommentCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select comment color of editor. +------------------------------------------------------------------------------- +E-LineNumCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select line number color of editor. +------------------------------------------------------------------------------- +Auto OverClk : on/off + Set auto overclock for CG10/20 +------------------------------------------------------------------------------- +Heap RAM Size : 96KB/117KB/127KB/SIZE + Set maximam heap size of C.Basic use. + (* You cannot change it at the time of the program editing.) +------------------------------------------------------------------------------- +Use Hidden RAM: on / off + Set if C.Basic uses hidden RAM or not. +------------------------------------------------------------------------------- +HiddenRAM Init: on / off + When use the hidden RAM, Mat&List at the time of C.Basic start, to initialize or not. +------------------------------------------------------------------------------- +Max Pict No: 20~99 + When use the hidden RAM, you can use more pict file. + (*)When you change a value, Pict&Mat&List is reset. + (*) This setting is invalid. +------------------------------------------------------------------------------- +Max List No: 52~1040 + When use the hidden RAM, you can use more List. + (*)When you change a value, Pict&Mat&List is reset. +------------------------------------------------------------------------------- +AT DebugMode : on / off + When [AC] break, debug mode on/off. +------------------------------------------------------------------------------- +ExitDM Popup : on / off + Set to popup of exit Debug Mode. +------------------------------------------------------------------------------- +Break Stop: on / off + Set if [AC] key break is accepted or not. + When it's off, you cannot break program by [AC] key. +- Related command: '#Break0 '#Break1 +------------------------------------------------------------------------------- +Exec TimeDsp: on / off /reset /%HR + Set if program running time is displayed or not after the program quits. + Timer starts at first line of program. ? or Disps command reset the timer. + In the case of Getkey1/2, the timer is suspended and starts after command again. + on reset: The timer is reset and starts again after Getkey1/2. + %HR: use 1/32768s timer + - Related command: '#GetkeyC '#GetkeyR +------------------------------------------------------------------------------- +IfEnd Check: on / off + Set if one-to-one correspondence of "If" and "IfEnd" statement is chacked or not. +------------------------------------------------------------------------------- +ACBreak: on / off + Set ACBreak command to be enable or disable. + - Related command: ACBreak +------------------------------------------------------------------------------- +Force Return:None/ F1/ EXE/ F1&EXE + force return to file mode at [AC]break. + (Example) Force Return set to [F1]key + -File list→[F1](EXE)→[AC]→[EXIT]… Returns to the file list. + -File list→[EXE]→[AC]→[EXIT] …… Returns to the editor. + -File list→[F1](EXE]→[AC]→[EXE](restart)→[AC]→[EXIT] …… Returns to the file list. + (The operation depends on which key is pressed first.) +------------------------------------------------------------------------------- +Key 1st time: 25 ms - 1000 ms (default value is 500 ms) + Set time before key repeat starts (in 25 ms interval) +------------------------------------------------------------------------------- +Key Rep time: 25 ms - 500 ms (default value is 125 ms) + Set key repeat duration time (in 25 ms interval) +------------------------------------------------------------------------------- +SkipUp/Down: 1 - 9999 + Set number of skipping page for SkipUp ([SHIFT][Up]) or SkipDown ([SHIFT][Down]). +------------------------------------------------------------------------------- +Mat Dsp mode: [m,n] / [X,Y] + Set matrix display format in Matrix Editor page. + Format [m,n] and [X,Y] are in transposed matrix each other, but just only the apperance on screen is different. The internal matrix data is still same, won't be changed. +------------------------------------------------------------------------------- +Matrix base: 0 / 1 + Set index of matrix starts with 0 or 1. + When the start index is set to 0, lfet-top pixel comes to be available to use and left-yop coordinate of device coordinates can be (0, 0). + - Related command: '#Mat 0, '#Mat 1 +------------------------------------------------------------------------------- +DATE: 2017/01/17 TUE + Set date of internal RTC. A day of the week is autmatically set. +------------------------------------------------------------------------------- +TIME: 23:59:59 + Set time of internal RTC + - Related command: DATE, TIME +------------------------------------------------------------------------------- +Favorite Col : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16bit Color + select favorite file color of editor. +------------------------------------------------------------------------------- +Auto file Save:on/off + Set to auto save without a popup. +------------------------------------------------------------------------------- +Force g1m save: on / off + Set "save automatically" or "not save" g1m file, after run or edit of text file. +------------------------------------------------------------------------------- +Direct GB cnvt : on/off + Set GB code without text conversion. + (* conversion supports The GB mode of the editor.) +------------------------------------------------------------------------------- +Pict mode: S.Mem / Heap / Both + - S.Mem: Pict file is created in storage memory and it takes a bit longer. + - Heap: Pict file is not actually created, but compatible file is allocaed in main memory. (recommend) + - Both: Stored always in storage memory/SD. + - Clear:Deletes the Pict compatible file created in main memory at program start every time. +------------------------------------------------------------------------------- +Storage mode: S.Mem / MainMem + S.Mem: Files in storage memory is used for run and edit. + Main mem: Files in MCS(Mein Memory) is used for run and edit. +------------------------------------------------------------------------------- +RefrshCtl DD: off / Grp / All + Set how to refresh screen at running of display and draw command. + Off: No extra refresh control is carried out, which is compatible with genuine Casio Basic. + Grp: Only graphics draw commands make screen refreshed, excepting ClrText, Locate, Text, LocateYX, " " (this exception is compatible with former version of C.basic). + All: All the display and draw commands male screen refreshed. PutDispDD should be used as may be necessary. + Time: Set refresh control tme in interval of 1/128 sec. Defalt value is 3 then refresh control is every 1/42 sec. + It is not refreshed when 0 is set. + - Related command: RefrshCtrl, RefrshTime +------------------------------------------------------------------------------- +Wait count : 0~9999 + Set to wait for slowdown execution speed. + - Related command:Wait +------------------------------------------------------------------------------- +G1M/G3M mode : auto/g3m/g1m + Set to execute mode as default. + - Related command: + '#G1M + '#g1m + '#G3M + '#g3m +------------------------------------------------------------------------------- +Execute mode: Dbl# / Int% / CPLX + Set running mode as default. + - Related command: '#CBasic, '#CBASIC, '#CBINT, '#CBint '#CBCPLX '#CBcplx +------------------------------------------------------------------------------- + + +=============================================================================== +Acknowledgment +=============================================================================== + +To investigate and implement internal specification, +"SuperH-based fx calculators (version 20)" +gave useful information. + +This add-in program is compiled by miniSDK1.09. +If there was not miniSDK, this add-in would not be born. +Allow me to use this opportunity to offer my thanks. + + +For file handling in C.Basic, +https://community.casiocalc.org/topic/6836-wsc-fvm-v12-casio-fx-9860-series-on-calc-c-compiler/ +Wsc & Fvm V1.2 - Casio Fx-9860 Series On-calc C Compiler" +gave useful information. + +For Japanese Kana Fonts, font data and output routine in the following site is used; +http://www.d-b.ne.jp/~k-kita/fx_sdk_005.html" + + +For detailed feature and function of original Casio Basic, following site is referenced; +e-Gadget - Programming Calculator by Krtyski +https://egadget.blog.fc2.com/ +(almost contents are in Japanese). + +http://community.casiocalc.org/topic/7637-cbasic-international-release/ +https://codewalr.us/index.php?topic=1818.0 +https://www.planet-casio.com/Fr/forums/topic14738-1-C.Basic.html +https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=15240 +There opinions were very useful. + +I am grateful for everyone's cooperation. + +by sentaro21 + +=============================================================================== +related link +=============================================================================== +https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +https://egadget.blog.fc2.com/blog-entry-630.html (part1) +https://egadget.blog.fc2.com/blog-entry-658.html (part2) +https://egadget.blog.fc2.com/blog-entry-664.html (part3) + +http://community.casiocalc.org/topic/7637-cbasic-international-release/ +https://codewalr.us/index.php?topic=1818.0 +https://www.planet-casio.com/Fr/forums/topic14738-1-C.Basic.html +https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=15240 + +=============================================================================== +Licensing +=============================================================================== +This software is free software, in accordance with GPLv2. \ No newline at end of file diff --git a/doc-cg/ReadmeCG_FR.txt b/doc-cg/ReadmeCG_FR.txt new file mode 100644 index 0000000..437dcd0 --- /dev/null +++ b/doc-cg/ReadmeCG_FR.txt @@ -0,0 +1,622 @@ +Veuillez consulter ce site créé par Krtyski. (Administrateur du gadget électronique) +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +Ce site et le texte suivant ont été traduits par Krtyski (administrateur du gadget électronique) & Lephenixnoir (administrateur de Planet-Casio). +Merci beaucoup pour votre aide. + +=============================================================================== + +Complément Casio Basic Interpreter (&Compiler) Version 1.x beta + +copyright (c) 2015-2017-2020 de sentaro21 +courriel sentaro21@pm.matrix.jp + +derničre mise ŕ jour par sentaro21 le 9/2/2020 +=============================================================================== + +** Si vous pensez que vos programmes Casio Basic ne tournent pas assez vite, C.Basic peut vous libérer de cette frustration! ** + +Commencez avec les programmes Casio Basic authentiques, puis profitez de commandes étendues que Casio Basic seul ne peut pas exécuter. + +- Actuellement, **C.Basic** (interpréteur de base) fonctionne sur les modčles fx-9860G (SH3), fx-9860GII (SH3) et fx-9860GII (SH4A), mais la prise en charge de Prizm fx-CG10 et fx-CG20 est planifiée. +- **C.Basic** deviendra un compilateur Casio Basic "**C:Basic**", qui exécutera des programmes beaucoup plus rapidement que C.Basic (10 fois son apparence). + +Toutes les instructions prises en charge par C.Basic sont répertoriées dans les fichiers `" Command_List.txt "` et `" Manual_EN.txt "` inclus dans le package de distribution. + + +## Avantages + +- C.Basic est principalement compatible avec les produits Casio Basic authentiques. +- Les programmes sont exécutés au moins 10 fois plus rapidement dans C.Basic. +- Les éditeurs de listes et de fichiers de C.Basic sont plus faciles ŕ utiliser que les habituels. +- Peut exécuter des programmes ŕ partir de la mémoire de stockage / mémoire principale et supporte les structures de sous-dossiers. +- Certaines commandes Casio Basic sont étendues pour davantage de fonctionnalités. +- Commandes nouvellement implémentées pour une programmation plus puissante et plus flexible. + +## Les inconvénients + +- C.Basic ne couvre pas toutes les commandes de base d'origine. +- Les calculs ne donnent pas les męmes résultats que l'interpréteur habituel car C.Basic utilise une virgule flottante double précision au lieu de BCD ŕ virgule fixe. +- C.Basic stocke les fichiers PICT dans la mémoire de stockage, ce qui les ralentit (du moins jusqu'ŕ la version 0.87, qui utilise la zone de mémoire de la mémoire principale). +- Il doit y avoir des bugs, malheureusement ^^ Merci de nous fournir un rapport de bogue si vous en trouvez. + + +# # Presque compatible avec la vanille Casio Basic + +Notre objectif est une compatibilité sans faille, mais certaines différences sont intentionnelles: + +- Les commandes d'entrée `?` et `??` `sont affichées sur une seule ligne. L'affichage d'une chaîne de plus de 21 caractčres entraînera un défilement horizontal au lieu d'un retour ŕ la ligne. +- Quand une commande d'esquisse graphique est suivie d'une commande ŕ instructions multiples `:`, l'écran n'est pas actualisé. +- La durée du programme est affichée ŕ la fin du programme. Cette fonction peut ętre déclenchée dans la page de configuration. +- Les délimiteurs de commentaires `'` sont autorisés avant les retours ŕ la ligne et Disps (sortie), et `:` peuvent ętre inclus dans la chaîne de commentaire. + +C.Basic intčgre également les fonctionnalités conviviales de fx-5800P: + +- C.Basic supporte une commande `"?A"` comme fx-5800P, par opposition ŕ fx-9860G / fx-9860GII qui ne supporte que `"?->A"`. +- La commande de sortie de chaîne `" "` est entičrement compatible avec le fx-5800P, ce qui en fait un différent du fx-9860G / fx-9860GII. Voir [Sujet] (http://egadget.blog.fc2.com/blog-entry-520.html) pour plus de détails. + + +======= ATTENTION !!! ========= +Nous ne pensons pas que C.Basic pourrait endommager votre calculatrice, mais la mémoire principale pourrait tout de męme ętre endommagée ou détruite de maničre inattendue, ce qui nécessiterait une réinitialisation complčte de la mémoire. Par conséquent, il est fortement recommandé de sauvegarder vos données de mémoire principale et de mémoire de stockage. Sachez que vous ne devez utiliser C.Basic qu'ŕ vos risques et périls. +=============================== + +======= Décharge de garantie ========= +L’utilisation de C.Basic et C: Basic (ci-aprčs SOFTWARE) est ŕ la seule risque de l’utilisateur. Tous les matériaux, informations, produits, logiciels, programmes et services fournis sont fournis «en l’état», sans aucune garantie. Les créateurs de LOGICIEL et d’équipe d’assistance fournissant des documents d’assistance, un site Web d’assistance, des programmes d’information et des exemples de programmes (ci-aprčs «ÉQUIPE DE DÉVELOPPEMENT») déclinent expressément toutes les garanties expresses, implicites, statutaires ou autres, y compris, sans limitation, les garanties de qualité marchande, d'adéquation ŕ un usage particulier et de non-violation des droits de propriété et des droits de propriété intellectuelle. Sans aucune limitation, DEVELOPMENT TEAM ne garantit pas que le développement du LOGICIEL sera ininterrompu, rapide, sécurisé ou sans erreur. +====================================== + +------------------------------------------------------------------------------- +# Démarrer C.Basic + +Pour démarrer ** C.Basic **, appuyez sur `[MENU]`, sélectionnez l'icône C.Basic, puis appuyez sur `[EXE]`. + +Il existe deux maničres de copier un fichier de programme (fichier `g1m`) développé pour l'interpréteur Casio Basic d'origine dans la liste des fichiers en C.Basic: + +## Utilisation du gestionnaire de mémoire pré-installé + +- Pour démarrer le gestionnaire de mémoire, appuyez sur `[MENU]`, sélectionnez l'icône du gestionnaire de mémoire et appuyez sur `[EXE]`. +- Appuyez sur `[F1]` pour afficher le contenu de la mémoire principale. +- Déplacez le curseur vers le bas sur `` et appuyez sur `[EXE]`. Vous devriez maintenant voir la liste de tous les programmes Basic Casio actuellement installés pour l'interpréteur habituel. +- Sélectionnez le fichier programme que vous souhaitez copier. +- Appuyez sur `[F1] (SEL)` puis `[F2] (COPY)`. +- Sélectionnez `" ROOT "`, appuyez sur `[EXE]`; la calculatrice vous demandera un nom de fichier. +- Entrez un nom de fichier approprié ou simplement «A», puis appuyez sur «[EXE]». +- Appuyez sur la touche `[MENU]` pour revenir au menu principal. +- Démarrer C.Basic. +- Dans la liste des fichiers, sélectionnez le nom que vous venez d'entrer, appuyez sur `[F6]` puis `[F2] (REN)`. +- On vous demandera `[Renommer le nom du fichier?]` Et le nom du fichier d'origine sera affiché (męme si vous avez tapé le signe "" A "`). Appuyez sur `[EXE]`. +- Maintenant, le nom du fichier a été corrigé. + +## Utilisation du logiciel PC Link (FA-124) + +FA-124 est un logiciel de liaison PC inclus dans les packages de fx-9860G et fx-9860G II. Pour des instructions détaillées, veuillez vous reporter ŕ son manuel. + +Une fois que vous avez téléchargé le fichier source d'un programme (fichier `g1m`), vous pouvez utiliser le logiciel de liaison PC pour le copier dans la liste des fichiers de C.Basic. + +================================================================================= +Guide rapide - Environnement de développement de C.Basic +================================================================================= +--------------------------------------------------------------------------------- +Page de liste de fichiers +--------------------------------------------------------------------------------- +- [UP] Déplace le curseur vers le fichier précédent. +- [DOWN] Déplace le curseur sur le fichier suivant. +En appuyant sur A ŕ Z, le curseur passe ŕ un nom de fichier commençant par l'alphabet enfoncé. +Cette fonctionnalité est compatible avec fx-5800P mais pas avec fx-9860G / fx-9860GII. +En appuyant sur [.] passez ŕ un nom de fichier commençant par "~". +En appuyant sur [EXP(x10)] la touche pour accéder au haut de la liste des dossiers. + +- [F1] (EXE) Exécuter le fichier sélectionné. +- [F2] (EDIT) Édite le fichier sélectionné. +- [F3] (NEW) Créer un nouveau fichier. +- [F4] (COPY) Copie le fichier sélectionné. +- [F5] (DEL) Supprimez le fichier sélectionné. +- [F6] ( > ) Permet de passer au menu suivant. +  [F1] (Texte) Convertit le fichier source sélectionné (fichier g1m) en fichier texte. +  [F2] (REN) Renomme le fichier. +  [F3] (Fav.) Définissez / réinitialisez le fichier sélectionné dans / ŕ partir de "Favori". +  [F4] (Fv.up) Déplace le fichier favori sélectionné vers le haut. +  [F5] (Fv.dw) Déplace le fichier favori sélectionné vers le bas. +  [F6] ( > ) Revient au menu précédent. +  [F1] (MK.F) Créer un nouveau dossier +  [F6] ( > ) Revient au menu précédent. + +- [EXE] Exécuter le fichier sélectionné. + +- [SHIFT] + +  [EXIT] (QUIT) Revenez ŕ la racine du sous-dossier. +  [GAUCHE] Contraste (ps) (* fonction interne du systčme d'exploitation) +  [RIGHT] Contraste (up) (* fonction interne du systčme d'exploitation) +  [F1] (Var) Aller ŕ la page de révision des variables. +  [F2] (Mat) Aller ŕ la page de révision des variables de mat. +  [F3] (V-W) Aller ŕ la page de révision de la valeur du paramčtre ViewWindow. +  [F4] (Pass) Définir / réinitialiser le mot de passe. +  [F6] (Debg) Démarrer le mode Debug & ouvrir la page de l'éditeur. + +- [VARS] (page de révision des variables) +  [F1] (A<>a) Basculer l'affichage des variables majuscules et minuscules. +  [F2] (Init) Initialise toutes les variables affichées. +  [F3] (D<>I) Siwitch variables entičres et doubles. +  [F6] (>Hex/>Dec) Commute l'affichage des valeurs en Hex et Dec. + +- [SHIFT] [MENU] (SETUP) Réglages initiaux +  [MENU] Aller ŕ la page de configuration. +  [MENU] [F6] Pop up Information sur la version. + +- [OPTN] Définir / Réinitialiser le fichier sélectionné dans / depuis "Favori". + +- [EXIT] Déplace le curseur vers le premier fichier de la liste. +         Lorsque le curseur est sur le premier fichier du sous-dossier, revenez ŕ la racine. + +------------------------------------------------------------------------------- +Page de l'éditeur +------------------------------------------------------------------------------- +Le repčre de guide affiché ŕ l'extręme droite de la page d'édition indique la position du curseur dans le fichier source. + +- [F1] (JUMP) Affiche le sous-menu JUMP. +  [F1] (TOP) Aller ŕ la premičre ligne du fichier source. +  [F2] (BTM) Aller ŕ la derničre ligne du fichier source. +  [F3] (GOTO) Passez ŕ une ligne oů vous voulez aller. +  [F5] (SkipUp) Ignore les lignes (le nombre de lignes prédéfini est disponible dans la page de configuration) vers le haut. +  [F6] (SkipDw) Ignore les lignes (le nombre de lignes prédéfini est disponible dans la page de configuration) vers la fin. + +- [F2] (SRC) Aller ŕ la page de recherche / remplacement de chaînes. +- [F3] (CMD) Allez ŕ la page de sélection de commande. (c'est comme la liste des commandes fx-5800P) (mode fx-5800P) +      (MENU)) SelectCommand (mode fx-9860G) +- [F4] (A<>a) Commutez majuscule et minuscule. +- [F5] (CHAR) Aller ŕ la page de sélection de personnage. +- [F6] (EXE) Exécuter un programme ou le redémarrer lorsqu'il est en pause. + +- [SHIFT] + +  [EXIT] (QUIT) Retournez ŕ la page de la liste des fichiers. +  [GAUCHE] Contraste (ps) (* fonction interne du systčme d'exploitation) +  [RIGHT] Contraste (up) (* fonction interne du systčme d'exploitation) +  [UP] Faites défiler 1 page (6 lignes) vers le haut. +  [BAS] Faites défiler 1 page (6 lignes) jusqu'ŕ la fin. +  [F1] (Var) Aller ŕ la page Variables. +  [F2] (Mat) Aller ŕ la page Variables Mat. +  [F3] (V-W) Allez ŕ la page ViewWindow. +       (VWIN) Sélectionnez Command. (mode fx-9860G) +     [F5] (Dump) / (List) Bascule entre les affichages "Basic List" et "Hex Dump". +     [F6] (G <> T) Permet de changer d’écran de graphiques et de texte. + +  [F4] (SKTCH) Sélectionnez Command. (mode fx-9860G) +  [F4] (Dump) / (List) Affiche les affichages "Basic List" et "Hex Dump" (mode fx-5800P). +  [F5] (Dump) / (List) Bascule entre les affichages "Basic List" et "Hex Dump". +  [F6] (CHAR) Aller ŕ la page de sélection de personnage. (mode fx-9860G) +  [F6] (G <> T) Permet de changer d’écran de texte et graphique (mode fx-5800P). + +- [OPTN] Liste de commandes contextuelle prise en charge par [OPTN] de fx-9860G / GII (mode fx-5800P) +         Sélectionnez Commande. (mode fx-9860G) +- [VARS] Liste déroulante de liste déroulante prise en charge par [VARS] de fx-9860G / GII (mode fx-5800P) +         Sélectionnez Commande. (mode fx-9860G) + +- [MENU] Historique de saisie de commande (ordre chronologique / ordre de fréquence d'entrée modifié par les touches gauche et droite.) +  [AC/ON] Effacer l'historique + +- [SHIFT] [VARS] (PRGM) Liste de commande contextuelle prise en charge par [PRGM] de fx-9860G / GII. +- [SHIFT] [MENU] (SETUP) Allez ŕ la page Setup (mode fx-5800P) +               (SETUP) Sélectionnez Command. (mode fx-9860G) + +- [ALPH] [DEL] (UNDO) Supprimer ou coller les opérations sont restaurées dans l'état précédent. (une seule fois) + +- [EXIT] Revenir ŕ la page précédente, annuler le mode Clip ou revenir ŕ la page de la liste des fichiers. + +------------------------------------------------------------------------------- +Page de l'éditeur de mode de débogage +------------------------------------------------------------------------------- +- [F1] (Cont) Continue le programme ŕ partir de la position du curseur. +- [F2] (Trce) Tracez le programme ŕ partir de la position du curseur et revenez ŕ la page Editeur en mode débogage juste aprčs l'exécution de la commande tracée,. +- [F3] (Step) Trace and Step Over (Commencer et suivre) ŕ partir de la position du curseur et revenir ŕ la page de l'éditeur en mode débogage juste aprčs l'exécution de la commande. Lorsque la sous-routine est exécutée, la sous-routine est exécutée jusqu'ŕ la fin. +- [F4] (S.Out) Sortez de la position du curseur et revenez ŕ la page Editeur en mode Debug juste aprčs l'exécution de la commande. Lorsque le sursor est en sous-routine, la sous-routine est exécutée jusqu'ŕ la fin. +- [F5] (L<>S) Basculez la page de l'éditeur et l'écran du programme en cours. Lorsque l'écran d'exécution du programme est affiché, les opérations de débogage avec [F1] - [F4] sont toujours disponibles. +- [F6] (>) Basculez le menu Debug manu and Editor. Lorsque l'écran d'exécution du programme est affiché, appuyez sur [F6] (>) pour afficher le menu Débogage. +- [EXIT] Revenez ŕ la page précédente, annulez le mode Clip ou revenez ŕ la page d'édition normale (pas en mode débogage). + +------------------------------------------------------------------------------- +Écran de fonctionnement du programme +------------------------------------------------------------------------------- +Pendant le programme est en cours d'exécution; + +- [AC] Arręte le programme. +   [EXIT] Aller ŕ l'éditeur en mode débogage. Le curseur se situe au point de rupture. +   [Gauche] Allez ŕ l'éditeur en mode débogage. Le curseur se situe au point de rupture. +   [F1] Reprendre le programme. +   [EXE] Reprendre le programme. +Quand le programme est arręté par la commande Disps (- Disp - est affiché ŕ l’écran); + +- [SHIFT] + +   [F1] (Var) Aller ŕ la page des variables +   [F2] (Mat) Aller ŕ la page des variables de tapis +   [F3] (V-W) Aller ŕ la page ViewWindow +   [F6] (G <> T) Écran Changer graphisme et texte +- [EXE] Reprendre le programme. + +------------------------------------------------------------------------------- +Écran Mat / List Editor +------------------------------------------------------------------------------- +[Écran Mat / List / Vct (la méthode d’opération est commune.) +(Le tapis que vous avez obtenu en adressant la marque * en le listant.) + +- [F1] (DEL) Supprimer un tapis / une liste. +- [F2] (DEL-ALL) Supprimer tout Mat / Liste. +- [F3] (DIM) Définissez la dimension, la taille de l'élément, une valeur initiale d'index du Mat / List. +- [F4] (INITIAL) Initialise tous les éléments du Mat / List of selected. +- [F5] (Mat#/Lst#/Vct#) Sélectionnez un numéro et sautez. +- [F6] (A<>a) Commutez majuscule et minuscule. + +- [EXE] Entrez dans l'écran d'édition Mat / List. (détaillé plus tard) + +- [SHIFT][F1] (Mat) Sélectionnez Mat +- [SHIFT][F2] (Liste) Sélectionnez Liste +- [SHIFT][F3] (Vct) Sélectionnez Vct + +- [OPTN] Commutateur s’affichant entre Mat et List. +- [VARS] Commutateur montrant entre Mat et Vct. + +- [LEFT] backword 26. +- [RIGHT] mot d’ordre 26. + +- [SHIFT]+[UP/DOWN] défilement de page + +[Écran d'édition Mat / List] +[SHIFT]+[8] (CLIP) Vous pouvez extraire toutes les données Mat / List dans le tampon de clips. +[SHIFT]+[9] (PASTE) Vous pouvez coller des données Mat / List ŕ partir du tampon de clips. + + +(mode d'édition de valeur numérique) + - [F1] (EDIT) Modifie l'élément du Mat / List. + - [F2] (GO) Aller ŕ l'élément. + - [F3] (INITIAL) Initialise tous les éléments. + - [F4] (>x,y / >m,n) Changement d'indication [m,n]/[x,y]. + + - [SHIFT]+[F5] ou [F5] Modifier l'affichage décimal <> binaire. (uniquement pour nybble (4 bits), octet (1 octet), le mot (2 octets)) + - [SHIFT]+[F6] ou [F6] Change l’affichage décimal <> hexadécimal. (autre que 1 bit et un nombre complexe (16 octets), le double (8 octets) affiche uniquement les données internes) + + - [SHIFT]+[F2] ou [OPTN] Passer ŕ l'éditeur de points. + - [SHIFT]+[F3] ou [VARS] Passer ŕ l'affichage de la chaîne de caractčres. + + Seulement comme pour ce qui suit, mode g3m (sauf le bit / liste 1 bit) + -[DÉCALAGE] +    [5] Saisissez une couleur de 16 bits différente de celle avec une couleur de 4 bits dans le quartet (4 bits). +    [6] Entrez une couleur de 16 bits. (sauf le nibble (4 bits) Mat / List) + + +(éditeur de points) + traiter la valeur de chaque élément du tapis comme un code de couleur. + blanc = 1, noir = 0 avec 1 bit Mat et le mode g1m. + C'est une couleur de 4 bits dans le nibble (4 bits Mat). + + - [F1] (0<>1) Modifiez la valeur de l'élément avec 0 <> 1. (Mode 1 bit Mat et g1m) + - [F1] Passez ŕ la couleur affichée par le menu de fonctions. (autre que le bit 1 Mat du mode g3m) +   * Il change en noir comme męme couleur + + Seulement comme pour ce qui suit, mode g3m (sauf le bit / liste 1 bit) + -[DÉCALAGE] +    [5] Saisissez une couleur de 16 bits différente de celle avec une couleur de 4 bits dans le quartet (4 bits). +    [6] Entrez une couleur de 16 bits. (sauf le nibble (4 bits) Mat / List) + +------------------------------------------------------------------------------- +Rechercher / Remplacer du texte +------------------------------------------------------------------------------- +[Recherche chaîne de caractčres] +-Vous entrez une chaîne de caractčres, puis appuyez sur [F1] (SEARCH) ou sur [EXE]. +-Vous appuyez ŕ nouveau sur [F1] (SEARCH) ou [EXE] pour rechercher ensuite. +- [F6] (RETRY) Permet de revenir ŕ l'écran de recherche. + +[Remplacer la chaîne de caractčres] +-Vous saisissez une chaîne de caractčres avant le remplacement, puis appuyez sur [F2] (REPL). +-Alors vous entrez une chaîne de caractčres aprčs le remplacement et appuyez sur [F1] (SEARCH), [F2] (REPL) ou [EXE]. +-Vous appuyez ŕ nouveau sur [F1] (SEARCH) ou [EXE] pour rechercher ensuite. +-Vous appuyez sur [F2] (REPL) pour le remplacer. +-Vous appuyez sur [F3] (ALL) ou [F4] (ALL +) pour tout remplacer. Je pousse [AC] pour l'arręter. +-Vous n’affichez pas la progression en cours de remplacement dans [F4] (ALL+). + +------------------------------------------------------------------------------- +Spécification incompatible avec l'original CasioBasic +------------------------------------------------------------------------------- +Notre objectif est la compatibilité avec les produits Casio Basic authentiques, mais pas ŕ 100%. + +Une ligne de saisie par la commande "?" et "? ->" ne sont que sur une seule ligne. Une chaîne de caractčres de plus de 21 colonnes est toujours affichée sur la ligne horizontale unique par défilement et non sur plusieurs lignes. +Lorsque ":" (commande ŕ instructions multiples) vient juste aprčs la commande de croquis, l'écran graphique n'est pas redessiné. +La durée du programme est affichée aprčs la fermeture du programme. Cette fonction peut ętre activée ou désactivée dans la page de configuration. +Un séparateur de texte de commentaire 'est disponible pour les commentaires avant Carriage Return ou Disps (sortie), mais ":" (commande ŕ instructions multiples) peut ętre inclus dans la chaîne commentée. + +C.Basic intčgre également la fonctionnalité conviviale de fx-5800P; + +C.Basic supporte un script "? A" supporté par fx-5800P. Ceci n'est pas supporté par fx-9860G / fx-9860GII (le script "? -> A" seulement est supporté). +La fonction de sortie de chaîne "" est totalement compatible avec fx-5800P dans les détails mais pas exactement compatible avec fx-9860G / fx-986GII. Voir les sujets en détail. + +=============================================================================== +Menu de Configuration +=============================================================================== +Options compatibles avec le Basic Casio : + +Angle :Deg/Rad/Gra +Complex Mode:Real/a+bi/rtheta +Draw Type :Connect/Plot +Coord :on/off +Grid :on/off/Line +Axes :on/off/Scale +Label :on/off +Derivative :on/off +Background :None / Pict1-20 +Plot/LineCol:Black etc. +Sketch Line :Normal/Thick/Broken/Dot/Thin + + +Nouvelles options fournies par C.Basic : +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + Le nombre maximal de chiffres possibles est augmenté ŕ 15. Indiquer 0 le pousse ŕ 16. + Nrm1 et Nrm2 sont identiques au Basic Casio et affichent jusqu'ŕ 10 chiffres. + Nrm1: -0.015800/>9800 + Choisit le mode d'entrée de commandes : Standard (fx-9860G) ou C.Basic (fx-5800P). + Vous pouvez choisir le fonctionnement de "" : soit fx-5800P, soit fx-CG. + - Commandes lieés : '#58 + '#98 +------------------------------------------------------------------------------- +[X]character : [0x90]/[X] + Pour sélectionner le caractčre de la touche [X/Theta/T]. +------------------------------------------------------------------------------- +Max Mem Mode : on/off + Utiliser toute la mémoire disponible. +------------------------------------------------------------------------------- +EnableExFont : on/off + Activer l'utilisation de la police externe. +------------------------------------------------------------------------------- +Edit ExtFont : On/Off + Activer l'éditeur de polices externes. +------------------------------------------------------------------------------- +Edit GB Font : On/Off/Full + Pour sélectionner la police GB affichée sur l’éditeur. +  Off : normal. pas afficher la police GB. +  On : affichage de la police de caractčres sans F7xx, F9xx, E5xx, E6xx, E7xx +  Full: affiche toutes les polices GB. +------------------------------------------------------------------------------- +EditFontSize : Standard/Mini/MiniMini/MiniMiniFX /+Fixed pitch/+Gap + Sélectionne la taille de police de l'éditeur. +------------------------------------------------------------------------------- +EditFontSize : Standard/Mini/Mini_rev/Mini UnderCursor/Mini_rev_UnderCSR + Sélectionne la taille de police de l'éditeur. +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- +activer l'indent automatique dans l'éditeur. + Off: diable auto indent. + 1 : Définir la largeur de l'endent eden à 1. + 2 : Définir la largeur de l'endente à 1. + 4 : Définir la largeur de l'endent eden à 1. + Enregistrer : supprimez les espaces vides, y compris les indents lors de l'enregistrement du programme. (à compatible avec Basic Casio) +------------------------------------------------------------------------------- +Edit LineNum :on/off + Configure l'affichage des numéros de ligne. +------------------------------------------------------------------------------- +EditListChar : List / reverseL / Thick L + Sélectionne le mode d'affichage des listes. +------------------------------------------------------------------------------- +Edit-backCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur de fond de l'éditeur. +------------------------------------------------------------------------------- +Edit-baseCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur de base de l'éditeur. +------------------------------------------------------------------------------- +E-NumericCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur numérique de l'éditeur. +------------------------------------------------------------------------------- +E-CommandCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select command color of editor. + Sélectionne le couleur de commande de l'éditeur. +------------------------------------------------------------------------------- +Ed-QuotColor : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur des chaînes de l'éditeur. +------------------------------------------------------------------------------- +E-CommentCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + Sélectionne le couleur des commentaires de l'éditeur. +------------------------------------------------------------------------------- +E-LineNumCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White + select line number color of editor. + Sélectionne le couleur du numéro de ligne de l'éditeur. +------------------------------------------------------------------------------- +Auto OverClk : on/off + Régler l'overclockage automatique pour CG10/20. +------------------------------------------------------------------------------- +Heap RAM Size : 96KB/117KB/127KB/SIZE + Définissez la taille de segment maximale de l'utilisation C.Basic. +  (* Vous ne pouvez pas le changer au moment de l'édition du programme.) +------------------------------------------------------------------------------- +Use Hidden RAM : on / off + Utiliser la mémoire supplémentaire cachée. +------------------------------------------------------------------------------- +HiddenRAM Init : on / off + Initialiser la mémoire supplémentaire cachée avant l'exécution. +------------------------------------------------------------------------------- +Max Pict No : 20~99 + Lorsque la mémoire cachée est utilisée, le nombre de Picture peut ętre augmenté. + (*) Changer cette valeur réinitialise les Picture, matrices et listes ! + (*) Ce paramčtre n'est pas valide. +------------------------------------------------------------------------------- +Max List No : 52~1040 + Lorsque la mémoire cachée est utilisée, le nombre de listes peut ętre augmenté. + (*) Changer cette valeur réinitialise les Picture, matrices et listes ! +------------------------------------------------------------------------------- +AT DebugMode : on / off + Active le debugger lorsque [AC/ON] est utilisé pour interrompre le programme. +------------------------------------------------------------------------------- +ExitDM Popup : on / off + Afficher une popup quand le debugger se ferme. +------------------------------------------------------------------------------- +Break Stop : on / off + Accepte ou refuse les interruptions par la touche [AC/ON]. + Quand cette option est ŕ off, vous ne pouvez pas quitter un programme en appuyant sur [AC/ON]. + - Commandes liées : '#Break 0 '#Break 1 +------------------------------------------------------------------------------- +Exec TimeDsp : on / off /reset /%HR + Affiche le temps d'exécution du programme une fois le programme terminé. + Le timer est lancé ŕ la premičre ligne du programme. Les commandes ? et Disps le réinitialisent. + Les fonctions Getkey1/2 mettent le timer en pause et le redémarrent ensuite. + En cas de reset, le timer est réinitialisé est reprend au premier appel de Getkey1/2. + %HR: Utilise le timer ŕ 1/32768s (SH4A uniquement) + - Commandes liées : '#GetKeyC '#GetKeyR +------------------------------------------------------------------------------- +IfEnd Check : on / off + Vérifie strictement la correspondance entre chaque "If" et chaque "IfEnd". +------------------------------------------------------------------------------- +ACBreak : on / off + Active ou désactive la commande ACBreak. + - Commandes liées : ACBreak +------------------------------------------------------------------------------- +Force Return : None/ F1/ EXE/ F1&EXE + Force le retour ŕ l'éditeur lors d'une interruption avec [AC/ON]. + (Exemple) Retour de force réglé à [F1]key + -Liste de fichiers→[F1](EXE)→[AC]→[EXIT]... Retourne à la liste de fichiers. + -Liste de fichiers→[EXE][AC]→[EXIT] ...... Retourne à l'éditeur. + -Liste de fichiers→[F1](EXE]→[AC]→[EXE](restart)→[AC]→[EXIT] ...... Retourne à la liste de fichiers. + (L'opération dépend de la clé qui est pressée en premier.) +------------------------------------------------------------------------------- +Key 1st time : 25 ms - 1000 ms (valeur par défaut : 500 ms) + Durée avant qu'une touche soit répétée pour la premičre fois (multiple de 25 ms) +------------------------------------------------------------------------------- +Key Rep time : 25 ms - 500 ms (valeur par défaut : 125 ms) + Durée avant qu'une touche qui a déjŕ été répétée soit répétée de nouveau (multiple de 25 ms) +------------------------------------------------------------------------------- +SkipUp/Down : 1 - 9999 + Nombre d'écrans parcourus pour chaque pression de SkipUp ([SHIFT][UP]) ou SkipDown ([SHIFT][DOWN]) dans l'éditeur. +------------------------------------------------------------------------------- +Mat Dsp mode : [m,n] / [X,Y] + Sélectionne le format d'affichage de matrices dans l'éditeur de matrices. + Les formats [m,n] et [X,Y] sont transposés l'un de l'autre. Ce n'est qu'un paramčtre d'affichage, les données de la matrice restent stockées dans l'ordre original. +------------------------------------------------------------------------------- +Matrix base : 0 / 1 + Indice de début pour la numérotation des éléments de matrices. Il faut ętre en mode 0 pour utiliser la premičre ligne et la premičre colonne de la VRAM. + - Commandes liées : '#Mat 0, '#Mat 1 +------------------------------------------------------------------------------- +DATE : 2017/01/17 TUE + Change la date de la RTC (horloge du systčme). Le jour de la semaine est calculé automatiquement. +------------------------------------------------------------------------------- +TIME : 23:59:59 + Change l'heure de la RTC. + - Commandes liées : DATE, TIME +------------------------------------------------------------------------------- +Root folder:/ (Seul le Graph 35+E II est valide.) + [F1]: pour définir le dossier racine. + [F2]: pour définir le dossier actuel. + - Commandes liées : + '#R/ // pour définir le dossier racine. + '#R. // pour définir le dossier actuel. +------------------------------------------------------------------------------- +Favorite Col : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16bit Color + Sélectionne le couleur de fichier préférée de l'éditeur. +------------------------------------------------------------------------------- +Auto file Save : on/off + Désactive la popup de confirmation ŕ la sauvegarde dans l'éditeur. +------------------------------------------------------------------------------- +Force g1m save : on / off + Permet de sauvegarder automatiquement les fichiers g1m quand les programmes textes sont édités. +------------------------------------------------------------------------------- +Direct GB cnvt : on/off + Définir le code GB sans conversion de texte. +  (* conversion supporte le mode GB de l'éditeur.) +------------------------------------------------------------------------------- +Pict mode: S.Mem / Heap / Both + - S.Mem : Les Picture sont créées dans la mémoire de stockage (petit surcoűt temporel) + - Heap : Les Picture ne sont pas vraiment créées, juste stockée temporairement dans la RAM + - Both : Les deux. + - Clear : Supprime le fichier compatible Pict créé dans la mémoire de tas au démarrage du programme ŕ chaque fois. +------------------------------------------------------------------------------- +Storage mode: S.Mem / SD / MainMem + Sélectionne le stockage temporaire pour le code pendant l'édition et l'exécution. + S.Mem : Mémoire de stockage + SD : Carte SD (Graph 95 SD uniquement) + Main mem : Mémoire principale +------------------------------------------------------------------------------- +RefrshCtl DD: off / Grp / All + Sélectionne le niveau de restriction du rafraîchissement automatique de l'écran. + Off : Aucune restriction particuličre (comme en Basic Casio). + Grp : Seules les commandes graphiques et ClrText, Locate, Text, LocateYX et "" provoquent le rafraîchissement de l'écran (ces exceptions sont en rétro-compatibilité avec les précédentes versions de C.Basic). + All : Aucune commande ne rafraîchit l'écran automatiquement. PutDispDD doit ętre utilisé. + Time : Sélectionne la durée de rafraîchissement automatiquement en unités de 1/128 s. La valeur par défaut est 3, ce qui donne environ 1/42 s de fréquence de rafraîchissement. + Par défaut, la valeur est 0. + - Commandes liées : RefrshCtrl, RefrshTime +------------------------------------------------------------------------------- +Wait count : 0~9999 + Délai contrôlant la vitesse d'exécution globale. + - Commandes liées : Wait +------------------------------------------------------------------------------- +G1M/G3M mode : auto/g3m/g1m + Définir pour exécuter le mode par défaut. + - Commandes liées : '#G1M, '#g1m, '#G3M, '#g3m +------------------------------------------------------------------------------- +Execute mode: Dbl# / Int% / CPLX + Définit le mode de variables numériques par défaut. + - Commandes liées: '#CBasic, '#CBASIC, '#CBINT, '#CBint '#CBCPLX '#CBcplx +------------------------------------------------------------------------------- + +=============================================================================== +Reconnaissance +=============================================================================== + +Pour étudier et mettre en śuvre la spécification interne, +"Calculatrices fx basées sur SuperH (version 20)" +a donné des informations utiles. + +Pour la gestion des fichiers dans C.Basic, +"https://community.casiocalc.org/topic/6836-wsc-fvm-v12-casio-fx-9860-series-on-calc-c-compiler/ +Wsc & Fvm V1.2 - Compilateur C sur calcul série Casio Fx-9860 " +a donné des informations utiles. + +Pour les polices Kana japonaises, les données de police et la routine de sortie du site suivant sont utilisées; +"http://www.d-b.ne.jp/~k-kita/fx_sdk_005.html" + + +Pour les fonctionnalités détaillées de Casio Basic d’origine, le site suivant est référencé; +Gadget électronique - Calculatrice de programmation de Krtyski +"https://egadget.blog.fc2.com/" +(presque le contenu est en japonais). + +https://community.casiocalc.org/topic/7637-cbasic-international-release/ +https://codewalr.us/index.php?topic=1818.0 +https://www.planet-casio.com/Fr/forums/topic14738-1-C.Basic.html +Leurs avis ont été trčs utiles. + +Je suis reconnaissant pour la coopération de tous. + +par sentaro21 + +=============================================================================== +lien connexe +=============================================================================== +https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +https://egadget.blog.fc2.com/blog-entry-630.html (part1) +https://egadget.blog.fc2.com/blog-entry-658.html (part2) +https://egadget.blog.fc2.com/blog-entry-664.html (part3) + +http://community.casiocalc.org/topic/7637-cbasic-international-release/ +https://codewalr.us/index.php?topic=1818.0 +https://www.planet-casio.com/Fr/forums/topic14738-1-C.Basic.html +https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=15240 + +=============================================================================== +Licence +=============================================================================== +Ce logiciel est un logiciel libre, conforme ŕ GPLv2. \ No newline at end of file diff --git a/doc-cg/ReadmeCG_J.txt b/doc-cg/ReadmeCG_J.txt new file mode 100644 index 0000000..09746de --- /dev/null +++ b/doc-cg/ReadmeCG_J.txt @@ -0,0 +1,721 @@ +=============================================================================== + +AhCŁ@Casio Basic Interpreter (& Compiler) for CG ver 1.x + +copyright(c)2015-2017-2020 by sentaro21 +e-mail sentaro21@pm.matrix.jp + +ŏIXVF2020/2/9(JST) +ŏIXVҁFKrtyski/sentaro21 + + +=============================================================================== + +Casio Basic C^v^̃AhCŁAC:BaisciC^v^݂̂Ȃ̂C.BasicjCGł̂Ƃ肠łłB + +E +@Casio Basic݊iڎwĂ܂jB +@Casio Basici10{ȏjB +@@͂قCasio BasicłB +@Casio Basic݊̐VK\[Xt@C̍쐬AҏW”\łB +@\[Xt@C̓Cł͂ȂXg[Wɒu܂BiTutH_1Kw܂őΉĂ܂Bj +@Casio Basicʌ݊œƎg@\𐏎ljĂ܂B +@fx-9860GV[Yg1mƁAfx-CGV[Yg3mɑΉĂ܂B + +E_ +@݂̂ƂACG50̂݃t”\CG10/20ł͈ꕔ@\삵܂񂪏Iɂ͗@튮SΉ܂B +@Casio Basic̃TuZbgłBS̖߂g܂BƂꕔ̊{IȖ߂݂̂̃T|[głB +@lZC̔{x2iZɂ萸x덷኱Ⴂ܂B +@PICTCゾŎg܂B +@Ƃ肠łȂ̂ŊԈႢȂoOʂɎcĂ܂(^^GĉŁAoO񍐁lj@\̗v]Ȃǂ낵肢܂B + + +========================== !!! ============================================ +̃c[̎gpɂēd삪j󂳂”\͂܂Ǝv܂A +\ʃoOŃCj󂳂I[ZbgɂȂ”\͂܂B +̃c[̎gp̓CXg[W̃obNAbvƂł肢܂B +҂͂̃c[̎gp̌ʂɂĂȂӔCȂ̂ƂĂ܂B +=============================================================================== + +========================== !!!̂Q ====================================== +CG10/20ł͉ʍXVx̂Ptune2100MHzȏɏグȂƉʕ`悪Ԃɍ킸肭삵܂B +̏ꍇAPtune2ł[F4]vZbgł̓VXeG[ɂȂꍇ܂B +ROM^C~Osł̂Ptune2łROMANZX^C~OiKɂ߂ĉB +ZL[[X]ROM^C~O܂B +iftHgNbNŋNꍇ͎IɃI[o[NbN܂Bi58MHz->118MHzj +=============================================================================== + +------------------------------------------------------------------------------- +C.Basic ̋N +------------------------------------------------------------------------------- +NƁAt@CXgʂɂȂ܂BŃt@CI܂B + +Casio BasicŊɍ쐬ĂBasict@CÃt@CXgɒljɂ́A +Cɂ錳Basict@CXg[WփRs[܂B + +iPt@CɌ܂B\[Xt@C܂Ƃ߂t@C͖ΉłBj + +Ver 0.53ȍ~AMCS(C)̃vOt@Cgpł悤ɂȂ܂B +ZbgAbvŃCIƁAt@C̕ۑAt@C̓C̃vOt@CΏۂɂȂ܂B +t@C̕ۑRs[̓CXg[WAXg[W烁CւƕۑύX邱Ƃ”\łB + +=============================================================================== +NCbN}jA - C.Basic ̊J‹ +=============================================================================== + +------------------------------------------------------------------------------- +t@CXgʁiCasio BasicۂcƈĂ܂j +------------------------------------------------------------------------------- +-[UP] ‘Õt@CI܂B +-[DOWN] Œ̃t@CI܂B +it@CIʂłA-Z̃L[Ƃ擪Ƃt@CɃWv܂Bfx-5800P/fx-CGłj +i[.]L["~"擪Ƃt@CɃWv܂Bj +i[EXP(x10)]L[ŃtH_Xg̐擪it@CXg̍Ō̎jɃWv܂Bj + +-[F1] (EXE) It@Cs܂B +-[F2] (EDIT) It@CҏW܂B +-[F3] (NEW) VKt@C쐬܂B +-[F4] (COPY) t@CRs[܂B +-[F5] (DELETE) It@C폜܂B +-[F6] ( > ) ̃j[Ɉړ܂B +@@[F1] (>txt/CONVERT) IꂽBasic\[Xt@CeLXgt@Cg1mt@C/g3mt@C/MCS̊Ԃŕϊ܂B +@@[F2] (RENAME)t@CύX܂B +@@[F3] (Fav.) It@CCɓɒljA܂B +@@[F4] (Fv.) CɓɈړ܂B +@@[F5] (Fv.) Cɓ‰Ɉړ܂B +@@[F6] ( > ) ̃j[Ɉړ܂B +@@[F1] (MKEFLDR) tH_쐬܂B +@@[F2] (RENFLDR) tH_ύX܂B +@@[F6] ( > ) Õj[Ɉړ܂B + +-[EXE] vOs܂B + +-[SHIFT] + [EXIT](QUIT) TutH_烋[gɖ߂܂B + [UP] CɓɈړ܂B + [DOWN] Cɓ‰Ɉړ܂B +@@[F1] (Var) ϐ +@@[F2] (MAT) Matϐ +@@[F3] (V-WIN)ViewWindow\ +@@[F4] (Pass) pX[hݒ/ +@@[F6] (Debug) fobO[hŃGfB^N܂B + +-[VARS] ϐ +@@[F1] (A<>a) 啶ϐƏϐACӉpϐ̕\ؑւ +@@[F2] (INITIAL) \ϐ̈ꊇ +@@[F3] (D<>I) ϐƎϐ̕\ؑւ +@@[F6] (->Hex/->Dec) 16i/10i\ɐ؂ւ +@@[SHIFT]+[UP]/[DOWN] 1y[WƒXN[ + [Jϐ̏ꍇ=𔽓]\܂B + +-[SHIFT] + [MENU] (SETUP) ݒ +@@ [F6] o[W\ + +-[OPTN] It@CCɓɒljA܂B + +-[EXIT] t@CXg̍ŏɖ߂܂B + łɃt@CXg̍ŏ̏ꍇ̓[gɖ߂܂B + +------------------------------------------------------------------------------- +GfB^ҏWʁiCasio BasicۂcƈĂ܂j +------------------------------------------------------------------------------- +Et@C̃J[\݈̌ʒuXN[o[E[ɕ\܂B + +-[F1] (JUMP) WvTuj[\܂B + [F1] (TOP) t@C擪ɃWv܂B + [F2] (BTM) t@CɃWv܂B +@@[F3] (GO) t@C̔Cӂ̍sɃWv܂Biʏł̌ڏł̍słj +@@[F5] (Skip) iZbgAbvŐݒ肳ꂽjy[WXLbvAbv܂B +@@[F6] (Skip) iZbgAbvŐݒ肳ꂽjy[WXLbv_E܂B + +-[F2] (SEARCH) T[`/u[hɓ܂B +-[F3] (COMMAND) R}hIʁifx-5800P[hjiőIłR}hT|[gĂ܂j + (MENU) R}hI[hifx-CG/9860G[hj +-[F4] (A<>a) 啶؂ւ +-[F5] (CHAR) LN^I +-[F6] (EXE) vOs܂Bꎞ~Ԃł΍ĊJ܂B + +-[SHIFT] + [EXIT](QUIT) t@CXgʂɖ߂܂B + [LEFT] GfB^̕\̑傫эsԊu܂B + [RIGHT] GfB^̕\̑傫эsԊu傫܂B + [UP] @iZbgAbvŐݒ肳ꂽjy[WXLbvAbv܂B + [DOWN] iZbgAbvŐݒ肳ꂽjy[WXLbv_E܂B +@@[F1] (Var) ϐ +@@[F2] (MAT) Matϐ +@@[F3] (V-WIN) ViewWindow\ +@@[F4] (Dump)/(List) BasicXg\/16i_v\ؑցifx-5800P[hj +@@ (SKTCH)R}hI[hifx-CG/9860G[hj +@@[F5] (A<>a) 啶؂ւ +@@[F6] (G<>T) OtBbNXʂƃeLXgʂ̐ؑցifx-5800P[hj +@@ (CHAR) LN^Iʁifx-CG/9860G[hj + + [3] GetkeyR}h̃L[R[h͂܂B + [6] J[sbJ[N܂B + +-[OPTN] OPTNΉR}h͉ʁiőIłR}hT|[gĂ܂j + +-[VARS] VARSΉR}h͉ʁiőIłR}hT|[gĂ܂j + +-[MENU] R}h͗iEL[Ŏn͕̓px؂ւ܂Bj + [AC/ON] ͗폜܂B + +-[SHIFT][VARS] (PRGM) PRGMΉR}h͉ʁiőIłR}hT|[gĂ܂j + +-[SHIFT][MENU] (SETUP) eݒ iqjifx-5800P[hj +@@[F6] o[W\ifx-5800P[hj +@@@@@@@@@@@ SETUPΉR}h͉ʁiőIłR}hT|[gĂ܂jifx-CG/9860G[hj + +-[ALPHA][DEL] (UNDO) 폜Paste񂾂ɖ߂܂܂B + +-[EXIT] Tuj[烁Cj[ANbv[h̃LZA܂̓t@CXgʂɖ߂܂B + +------------------------------------------------------------------------------- +fobO[hҏWʁ@iʏGfB^ƈႤj +------------------------------------------------------------------------------- +-[F1](Cont)FJ[\ʒuvOĊJ܂B + +-[F2](TRACE)FJ[\ʒug[XsBR}hsAGfB^ʂɖ߂܂B + +-[F3](STEPS)FJ[\ʒug[X+XebvI[o[BTu[`̏ꍇ͈CɎs܂BXebvsAGfB^ʂɖ߂܂B + +-[F4](S.Out)FJ[\ʒuXebvAEgBTu[`̏I܂ňCɎs܂BXebvsAGfB^ʂɖ߂܂B + +-[F5](L<>S)FGfB^Xg\ƃvOsʂ̐ؑւ܂Bؑ֌sʂێ̂Ŏsʂ̂܂[F1]-[F4]̃fobO삪”\łB + +-[F6]( > ) FfobOj[ƃGfB^j[؂ւ܂BsʁiOtBbN/eLXgj̏ꍇ̓t@NVj[\܂B + +-[EXIT] Tuj[烁Cj[ANbv[h̃LZA܂͒ʏGfB^ʂɖ߂܂B + +fobO[hAXe[^XC̔wiVAɂȂ܂B + +------------------------------------------------------------------------------- +vOsiقCasio Basiccłj +------------------------------------------------------------------------------- +-[AC] vOs𒆎~܂B + [EXIT]@fobO[h̃GfBbgʂɖ߂܂BJ[\͒fӏ܂B + [/]@fobO[h̃GfBbgʂɖ߂܂BJ[\͒fӏ܂B + [F1] vOɕA܂B + [EXE]@vOɕA܂B + +ꎞ~R}hŒ~(- Disp - \̎) +-[SHIFT] +@@[F1] ϐ +@@[F2] Matϐ +@@[F3] ViewWindow\ +@@[F6] OtBbNXʂƃeLXgʂ̐؂ւ +-[EXE]@vOĊJ܂B + +------------------------------------------------------------------------------- +sGfB^ +------------------------------------------------------------------------------- +Esꗗʁi@MatAListAVctʂłBj +AhXwŊmۂs͈ꗗ\Ł}[Nt܂B + +-[F1] (DEL) IĂs/Xg/xNg܂B +-[F2] (DEL-ALL) ׂĂ̍s/Xg/xNg܂B +-[F3] (DIM) s/Xg/xNg̎AvfTCYACfbNXJnlݒ肵܂B +-[F4] (INITIAL) IĂs/Xg/xNĝׂĂ̗vf܂B +-[F5] (Mat#/Lst#/Vct#) ԍw肵ăWv܂B +-[F6] (A<>a) 啶iXg̏ꍇ 1-26 27-52j؂ւ܂B + +-[EXE] sҏWʂɓ܂Biڍ׌qj + +-[SHIFT]+[F1] (>Mat) sꗗɐ؂ւ܂B +-[SHIFT]+[F2] (>List) Xgꗗɐ؂ւ܂B +-[SHIFT]+[F3] (>Vct) xNgꗗɐ؂ւ܂B + +-[OPTN] Mat<>List̐؂ւ܂B +-[VARS] Mat<>Vct̐؂ւ܂B + +-[LEFT] 26߂܂B +-[RIGHT] 26i݂܂B + +-[SHIFT]+[UP]/[DOWN] 1y[WXN[܂B + +E sҏW +sҏW[h[SHIFT]+[8](CLIP)ŃRs[A[SHIFT]+[9]Ńy[Xgo܂B +@iC.Basicj`Ȃ̂ŃGfB^ɂčsf[^y[Xgo܂B +[SHIFT]+J[\L[ʼny[Wo܂B + +ilҏW[hj +-[F1] (EDIT) s̗vfҏW܂B +-[F2] (GO) vfw肵ăWv܂B +-[F3] (INITIAL) ׂĂ̗vf܂B +-[F4] (>x,y / >m,n) \`؂ւ܂B + +-[SHIFT]+[F5] (>Bin / >Dec) 10<>2i\؂ւ܂iju(4rbg)AoCgi1oCgjA[hi2oCgj^sŗLjB +i[F5]ŃV[gJbgł܂Bj + +-[SHIFT]+[F6] (>Hex / >Dec) 10<>16i\؂ւ܂i1rbgAfi16oCgj^ȊOŗLAi8oCgj^͓f[^̂܂ܕ\jB +i[F6]ŃV[gJbgł܂Bj + +-[SHIFT]+[F2] (DotEd) lҏW[h<>hbgGfB^؂ւ܂B ([OPTN] ŃV[gJbgł܂B) +-[SHIFT]+[F3] (StrEd) lҏW[h<>ҏW[h؂ւ܂B([VARS] ŃV[gJbgł܂B) + +ȉAg3m[ĥ݁i1rbgsj +-[SHIFT] + [5] jui4rbgjł4rbgJ[lAȊOł16rbgJ[l͂܂B + [6] 16rbgJ[l͂܂Bijui4rbgjsj + + +ihbgGfB^j +lҏW[hƂ̑_̂ݐ܂B +Es̊evf̒lJ[R[hƂĈ܂B +@1rbgs񂨂g1m[hł0A1łB +@jui4rbgsjł4rbgJ[lłB + +-[F1] (0<>1) vf̒l0<>1Ő؂ւ܂Bi1rbgs񂨂g1m[hj +-[F1] t@NVj[ɕ\ĂFɐ؂ւ܂Big3m[h1rbgsȊOj +@@@ɂ̐Fłꍇ͍ɐ؂ւ܂B +-[SHIFT]+[F1] () IĂvf̐F [F1] ɐݒ肵܂Big3m[h1rbgsȊOj + +------------------------------------------------------------------------------- +T[`/u[h +------------------------------------------------------------------------------- +[] +E͂A[F1](SEARCH)܂[EXE]܂B +Eɂ́Aēx[F1](SEARCH)܂[EXE]܂B +E[F6](RETRY)ŁAʂɖ߂܂B + +[u] +EuO͂̕A[F2](REPL)܂B +EɁAu͂̕A[F1](SEARCH)A[F2](REPL)A܂[EXE]܂B +Eɂ́Aēx[F1](SEARCH)܂[EXE]܂B +Euɂ́A[F2](REPL)܂B +EׂĒuɂ́A[F3](ALL)܂[F4](ALL+)܂Bfɂ[AC]܂B +@[F4](ALL+)ł͒u̓ro߂\܂B + +------------------------------------------------------------------------------- +LN^I +------------------------------------------------------------------------------- +E葽̕T|[gĂ܂B +E[F6]ASCIIAAO͂ł܂B +E[SHIFT]܂[F1]`[F6]ƂŁAA͂ł܂B +E[OPTN]Ńm[}tHg<>~jtHg؂ւ܂B +E[VARS]őIʂŕ\tHgC.Basic<>OSŐ؂ւ܂B +@OS̃tHgŕ\ĂԂ́AꕶGXP[vȂœ͂ł܂B + +iGBɂ‚āj +GBgpł܂B +EGBgp邽߂ɂ́ASETUPy[W "Edit GB Font" "On" "Full" ɐݒ肵܂B +ȄŁA[x^2]GB̓[hɓ܂B + +-[F1] 擪0xA0**ɃWv܂B +-[F2] 16y[W߂܂B +-[F3] 1y[W߂܂B +-[F4] 1y[Wi݂܂B +-[F5] 16y[Wi݂܂B +-[F6] Ō0xFE**ɃWv܂B + +GB\Aꕶ\邽߂ɂ̓GXP[v(0x5C)KvɂȂ邱Ƃ܂B +@GXP[vt͔̕wiFŕ\܂B + + +=============================================================================== +Casio BasicƂ̑_ +=============================================================================== +{Iɂ͑SɂȂ悤ɍ쐬Ă܂ÄႤ܂B + +E?R}h͕̓1Ĉ݂ʼnXN[܂B +E`R}h̒オ:i؂R[hjƉʏXV܂BiOtBbN߁ALocate,Textj +EvOIɎsԂ\邱Ƃł܂BiZbgAbvŐݒj +EsR}hԂɋ󔒂ĂG[ɂȂ܂B +ERg̏I͉sƁꎞ~R}ĥ݂łB:i؂R[hjł͏IƂȂ܂B + +ɓCasio Basic삷vO֐dfx-5800P֗̕ȕ荞ł܂B +E?R}h?A`ljT|[gĂ܂B +Eo̓R}h " " ̏o͎dlfx-5800Pfx-9860G/fx-9860GII/fx-CGIł܂B +@ZbgAbvŐݒł܂B +@fx-5800Pfx-9860G/fx-9860GII/fx-CGCasio Basicdl̈Ⴂɂ‚ẮA +@₷(Krtyski)l̃TCgɏڍׂȉ܂̂ŎQƂĉB +@https://egadget.blog.fc2.com/blog-entry-170.html + + +=============================================================================== +-[SHIFT][MENU] (SETUP) ZbgAbvł̐ݒ +=============================================================================== +Angle :Deg/Rad/Gra +Complex Mode:Real/a+bi/rڃ +Draw Type :Connect/Plot +Coord :on/off +Grid :on/off/Line +Axes :on/off/Scale +Label :on/off +Derivative :on/off +Background :None / Pict1`20 +Plot/LineCol:Black etc. +Sketch Line :Normal/Thick/Broken/Dot/Thin +----------------------------܂ŏCasio Basic݊łB + +------------------------------------------------------------------------------- +Display :Fix/Sci/Nrm/Eng + ȉ̌15܂ŁB0w肵ꍇ16ƂȂ܂B + NrmɊւĂNrm1Nrm2̂Casio Basic݊10\dlłB + Nrm1F0.01ȉ͎w\ + Nrm2F0.000000001ȉ͎w\ + ȊO͌wƂȂ܂B + Eng FENGItAENGI(/E)A3؂(/3)̐؂ւƂȂ܂B + +E֘AR}h Fix,Sci,Norm,EngOn,EngOff,Eng + +------------------------------------------------------------------------------- +Exp Display : E / Stdx10 / Allx10 + @@@@w\̋LI܂B + @@@E: -1.23e99@]̕\`łB + Stdx10: -1.23(x10)99 X^_[htHĝݐ؂ւ܂B + Allx10: -1.23(x10)99 ׂẴtHgTCYŐ؂ւ܂B + +E֘AR}h '#exp 0 //@]̕\`łB + '#exp 1 //@X^_[htHĝݐ؂ւ܂B + '#exp 2 //@ׂẴtHgTCYŐ؂ւ܂B + +------------------------------------------------------------------------------- +Syntax Help : On/Off + GfB^ŃR}h̃wv\̗L/ݒ肵܂B + +------------------------------------------------------------------------------- +SetupRecover : on/off + łɃZbgAbvŐݒ肵ĂL̏Casio Basic݊ݒvOIɕA邩ǂݒ肵܂B + +------------------------------------------------------------------------------- +Command Inpt : C.Basic/Standard/>5800/>9800 + R}h͕@C.Basic(fx-5800P)Standard(fx-9860G)Ił܂B + " "o͎dlfx-5800P݊[hFX/CG݊[h̐؂ւł܂B + +E֘AR}h '#58 + '#98 + +------------------------------------------------------------------------------- +[X]character : [0x90]/[X] + [X,,T]L[œ͂ł镶I܂B + +------------------------------------------------------------------------------- +EnableExFont : on/off + OtHg̎gpݒ肵܂B + +E֘AR}h SetFont 0 //@OtHg + SetFont 1 //@OtHgL + +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- + Cfgݒ肵܂B + Off:@Cfggp܂B + 1F@@Cfg1ɐݒ肵܂B + 2F@@Cfg2ɐݒ肵܂B + 4F@@Cfg4ɐݒ肵܂B + Save-FۑɃCfg܂ރR}hԂ̋󔒂폜܂BiCasioBasic\[Xɕϊ܂Bj + +------------------------------------------------------------------------------- +Edit ExtFont : on/off + GfB^ŊOtHg\gp܂B + +------------------------------------------------------------------------------- +Edit GB Font : on/off/Full + GfB^łGBtHg̕\ݒ肵܂B + off:GBtHg\܂Bʏ̃[hłB + on:R}hꕶƏdȂF7xx,F9xx,E5xx,E6xx,E7xxGBR[hĕ\܂B + i0x03A8R[h΂Ȍ̕Full\ɂȂ܂BR}h̏Ion\ɖ߂܂Bj + Full:ׂ̂ĂGBtHg\܂BiGBR[hƏdȂꕔR}hGBtHgɉ܂Bj + i̐ݒ̓GfB^ƃeLXgϊŗLɂȂ܂BvOł͈̐ȉ̃R}hgpĉBj + +E֘AR}h '#GB0 GBtHg\܂B]̃[hłB + '#GB1 ȌAR}hꕶƏdȂF7xx,F9xx,E5xx,E6xx,E7xxGBR[hƂĕ\܂B + '#GB2 ȌÂׂĂGBR[h\܂B + +------------------------------------------------------------------------------- +EditFontSize : Std/Mini/MiniMini/MiniMiniFX /+Fixed pitch/+Gap + \̑傫эsԊuύX܂B + +------------------------------------------------------------------------------- +Edit LineNum : on/off + sԍ\I܂B + +------------------------------------------------------------------------------- +EditListChar : List / ]L / {[hL + ListMat\Zk\i1̔]ƃ{[hjɐ؂ւ܂B + +------------------------------------------------------------------------------- +Edit-backCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̔wiFݒ肵܂B +------------------------------------------------------------------------------- +Edit-baseCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̊{Fݒ肵܂B +------------------------------------------------------------------------------- +E-NumericCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̐l\Fݒ肵܂B +------------------------------------------------------------------------------- +E-CommandCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̃R}h\Fݒ肵܂B +------------------------------------------------------------------------------- +Ed-QuotColor : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̕\Fݒ肵܂B +------------------------------------------------------------------------------- +E-CommentCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̃Rg\Fݒ肵܂B +------------------------------------------------------------------------------- +E-LineNumCol : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + GfB^̍sԍ\Fݒ肵܂B + +------------------------------------------------------------------------------- +Auto OverClk : on/off + I[o[NbNL/̐ݒ܂B + +------------------------------------------------------------------------------- +Heap RAM Size : 96KB/117KB/127KB/SIZE + C.BasicŎgpőq[vTCYw肵܂B + vOҏW͕ύXł܂B + +------------------------------------------------------------------------------- +Use Hidn RAM : on/off + BRAMC.BasicŎgp邩ǂݒ肵܂Bifx-CG10/20͖ΉłBj + fx-CG50ł8MBRAMڂĂÂ6MBOSgp̈ƂȂĂ邽߂ɂvÖƍs̈Ƃėpł悤ɂ܂B + +------------------------------------------------------------------------------- +HidnRAM Init : on/off + BRAMgpɁAMats&ListC.BasicNɏ邩ǂݒ肵܂Bifx-CG10/20͖ΉłBj + Ȃꍇ́AMats&LisťʂȂŎc܂B + iӁ@ACG50ł͓dIt1ԂŃNAĂ܂̂ŁAC.BasicċN܂Bj +------------------------------------------------------------------------------- +Max Pict No : 20 `20 + CGV[Ył͖łB20ύXł܂B + +------------------------------------------------------------------------------- +Max List No : 52 `1040 + BRAMgpɁAList̏𑝂₹܂B + ݒύXPictMatListf[^܂B + +------------------------------------------------------------------------------- +AT DebugMode : on/off + [AC]ŒfɃfobO[h̗L/ݒ肵܂ + +------------------------------------------------------------------------------- +ExitDM Popup : on/off + fobO[h[EXIT]Ŕꍇ̊mFPopUpݒ肵܂B + +------------------------------------------------------------------------------- +Break Stop :on/off + [AC]L[ɂ钆f̗LB + off̏ꍇ[AC]L[ɂ钆fo܂B + +E֘AR}h '#Break0 //@[AC]L[ + '#Break1 //@[AC]L[L@iftHgj + +------------------------------------------------------------------------------- +Exec TimeDsp : on/off/%HR/on reset + vOIɃvO̎sԂ\܂B + vJn̓vO̍ŏ̍słAr?R}hꎞ~R}hꍇ͂܂ł̌vԂ̓Zbg܂B + Getkey1/2̏ꍇ͌vꎞ~ɂȂAR}hsɍăX^[g܂B + on reset́AGetkey1/2sɌvZbgăX^[g܂B + %HR:v1/32768s^C}[g܂B + +E֘AR}h '#GetkeyC //@Getkey1/2sɎԌvꎞ~AX^[g܂BiftHgj + '#GetkeyR //@Getkey1/2sɎԌvZbgX^[g܂B + +------------------------------------------------------------------------------- +IfEnd Check : on/off + IfIfEndΈőΉĂ邩ǂ`FbN܂B + +------------------------------------------------------------------------------- +ACBreak : on/off + ACBreakR}h̗L/؂ւ܂B + +E֘AR}h ACBreak + +------------------------------------------------------------------------------- +Force Return : None/F1/EXE/F1&EXE + vOs̒fŃGfB^ɖ߂邩t@CXgɖ߂邩Ił܂B + ijForce Return: F1 ̏ꍇA + E t@CXg [F1](EXE) [AC] [EXIT] cc t@CXgʂɖ߂܂B + E t@CXg [EXE] [AC] [EXIT] cc GfB^ɖ߂܂B + E t@CXg [F1](EXE) [AC] [EXE](ĊJ) [AC] [EXIT] cc t@CXgʂɖ߂܂B + @@@@ (߂ɂǂ̃L[ɂē삪܂܂B) + +------------------------------------------------------------------------------- +Key 1st time : 25ms`1000ms(ftHgl 500ms) + s[gJn܂ł̎ (25msP) +Key Rep time : 25ms`500ms(ftHgl 125ms) + s[gp (25msP) + +------------------------------------------------------------------------------- +SkipUp/Down : 1`9999 + SkipUp/SkipDownł̈񕪂̉y[Ww肵܂B + sƂɈs_sł͂Ȃʏł̌ڏł̕słB + +------------------------------------------------------------------------------- +Mat Dsp mode : [m,n]/[X,Y] + sGfB^ʂł̕\`w肵܂B + ꂼ]us̊֌WɂȂ܂As͉ωȂ\ゾ̎włB +Matrix base : 0/1 + sCfbNX̏l01w肵܂B + l0w肵ꍇ́AOtBbNW[(0,0)LɂȂ܂B + +E֘AR}h '#Mat 0 //@s̃CfbNXJnl0ɂ܂B + '#Mat 1 //@s̃CfbNXJnl1ɂ܂BiftHgj + +------------------------------------------------------------------------------- +DATE : 2017/01/17 MON +TIME : 23:59:59 + RTCݒ肵܂Bj͎ݒ肳܂B + +E֘AR}h DATEATIME + +------------------------------------------------------------------------------- +Root Folder : / + t@CANZX̊{ƂȂ郋[gtH_ݒ肵܂B + [F1]:Xg[W̃[gtH_ɐݒ肵܂B + [F2]:JgtH_Ȍニ[gtH_ɐݒ肵܂B + +E֘AR}h@'#R/ // Xg[W̃[gtH_ɐݒ肵܂B + '#R. // JgtH_[gtH_ɐݒ肵܂B + +------------------------------------------------------------------------------- +Favorite Col : Black/Blue/Red/Magenta/Green/Cyan/Yellow/White/16rbgJ[ + t@CXĝCɓ̐Fݒ肵܂B + +------------------------------------------------------------------------------- +Auto file save : on/off + ҏWAIɕۑ邩ǂݒ肵܂B + +------------------------------------------------------------------------------- +Force g1m save : on/off + eLXgt@CҏW^sɓg1m`łۑ邩ǂݒ肵܂B + +------------------------------------------------------------------------------- +Direct GB cnvt : on/off + vOGBR[heLXgϊł̂܂܃eLXgt@Cɕۑ邩ǂݒ肵܂B + iϊŃeLXgt@CɂꍇGB2312ΉGfB^ł͂̂܂ܕ\ł܂Bj + iϊΏGBR[h̓GfB^GBR[h\[hɑΉĂ܂Bj + +------------------------------------------------------------------------------- +Pict mode : S.Mem/Heap/Both + (S.Mem)@Pictt@CXg[Wɍ܂B኱Ԃ܂B + (Heap)@Pictt@CƂĂ͍쐬ꂸɃɌ݊t@C쐬܂Biݒłj + (Both)@Heap[hłPictt@CɃXg[Wɍ쐬܂B + (Clear) ɍ쐬Pict݊t@CvOJnɍ폜܂B + +------------------------------------------------------------------------------- +Storage mode : S.Mem/Main Mem + t@C̕ۑAt@C̑ΏۂI܂B + +------------------------------------------------------------------------------- +RefrshCtl DD : off/Grph/All + `R}hɂʂ̍XVݒł܂B + OffFtbVRg[B\ɂĂ͏݊dlłB + GrphFOtBbNR}ĥ݃tbVRg[LBClrText,Locate,Text,LocateYX," "͖ňȑÕo[W݊łB + AllFׂĂ̕`R}htbVRg[ꂽ\ƂȂ܂BKvɉPutDispDDR}hK{ƂȂ܂B + TimeFtbVRg[Ԃݒ肵܂Bn/128bPʂʼnʍXV܂BftHg3Ŗ1/42bł̍XVƂȂĂ܂B + @@@0w肷ƃtbVȂȂ܂B + +E֘AR}h RefrshCtrl/RefrshTime + +------------------------------------------------------------------------------- +Wait count : 0`9999 + C.BasicŜ̎sx𒲐܂B + +E֘AR}h Wait + +------------------------------------------------------------------------------- +G1M/G3M mode : Auto/g3m/g1m + ftHg̃vO̎s[h؂ւ܂B + +E֘AR}h '#G1M + '#g1m + '#G3M + '#g3m +------------------------------------------------------------------------------- +Execute mode : DBL#/INT%/CPLX + ftHg̃vO̎s[h؂ւ܂B + +E֘AR}h '#CBasic + '#CBASIC + '#CBDBL + '#CBdbl + '#CBINT + '#CBint + '#CBCPLX + '#CBcplx + +=============================================================================== +ӎ +=============================================================================== +vOdl +SuperH-based fx calculators (version 20) +Cemetech WikiPrizm, +QlɂĂĂ܂B(ꕔvOpĂĂ܂Bj + +{\[Xfx-9860GV[YłC.Basic̈ڐAłB +CASIOSDK1.00ɊÂminiSDK1.09ɂRpCĂ܂B + +̃c[̃t@C암́A +https://community.casiocalc.org/topic/6836-wsc-fvm-v12-casio-fx-9860-series-on-calc-c-compiler/ +Wsc & Fvm V1.2 - Casio Fx-9860 Series On-calc C Compiler +QlɂĂĂ܂B(ꕔpj + +g1m[hɂJitHg͂̃TCgJitHgf[^ѕ\[`pĂĂ܂B +http://www.d-b.ne.jp/~k-kita/fx_sdk_005.html + +g3m[h̊OtHgIPAtHgg킹ĂĂ܂B +PierrotLLNinestars쐬MonochromeLibCGΉłƂďCĎg킹ĂĂ܂B +Patrick Powell̃IWisprintfǂsprintf\[X𗘗pĂĂ܂B + +Casio BasicƂ̓݊`FbNɂđϗLpȃvOfڂĂPlanet-Casioƍ҂̊FlɊӂ܂B + + +vOsׂ̍ɊւẮA +₷(Krtyski)l +e-Gadget - vO֐d +vOd̔ZbF fx-5800P / fx-9860GII Casio BasicvO~OS +https://egadget.blog.fc2.com/ +QlɂĂĂ܂B +C.Basica邫ƂȂTCgłB + +ǗllсAKm[l(FX)Acl(FX+CG)Airon2l(CG)AColonl(CG) +ɂ͑ΉAv̊J+oOoőςbɂȂĂ܂B +‚肪Ƃ܂B +ꂩ낵肢܂B + + +ŌɂƂĂ[Otd𔭔ĂCASIOvZ@ijɊӂ܂B + +̃AhCvOFl̂ɗ‚Ƃ΍KłB + + +=============================================================================== +CZX +=============================================================================== +̃\tgEGA̓t[\tgEGAłB +CZXGPLv2ɏ܂B + + +=============================================================================== +Av]AoO񍐓 +=============================================================================== + +₷(Krtyski)l̃TCgɂC.Basic for CG vWFNgpGg쐬ĂĂ܂B + +C.Basic for CG Jn +https://egadget.blog.fc2.com/blog-entry-630.html + +C.Basic for CG Jn - Part 2 (Ver 0.38ȍ~) +https://egadget.blog.fc2.com/blog-entry-658.html + +C.Basic for CG Jn - Part 3 (Ver 0.56ȍ~) +https://egadget.blog.fc2.com/blog-entry-664.html + +Av]AoO񍐓܂RgɂĐ󂯕tĂ܂B + +UCF (C.Basic - International Release) +https://community.casiocalc.org/topic/7637-cbasic-international-release/ + +Planet-Casio (C.Basic Projets) +https://www.planet-casio.com/Fr/forums/topic14738-1-C.Basic.html + + +=============================================================================== +XV +=============================================================================== +ChangeCG_J.txtQƂĉB + + diff --git a/doc-cg/Setup_format.txt b/doc-cg/Setup_format.txt new file mode 100644 index 0000000..8f71d89 --- /dev/null +++ b/doc-cg/Setup_format.txt @@ -0,0 +1,121 @@ +-------------------------------------------------------- +CBasic setup format ver.0.56 +-------------------------------------------------------- +offset type name +-------------------------------------------------------- +00 char "CB.config00" +11 char CB_G1MorG3MDefault +12 char ExtendPict +13 char UseHiddenRAM +14 char ExtendList +15 char CB_INTDefault +16-17 short RefreshCtrl +18 char EditListChar +19 char DrawType +20 char CB_fx5800P // 0.55 new +21 char Refreshtime +22 char ForceReturnMode +23 char Coord +24 char CB_RecoverSetup +25 char ENG +26 char EditExtFont +27 char Grid +28 char CB_Round.ExpTYPE +29 char CB_Round.MODE +30 char MaxHeapRam // 0.49 new +31 char Axes +32-33 short CB_Round.DIGIT-1 +34 char DirectGBconvert // 0.49 new +35 char Label +36-37 short DefaultWaitcount +38 char CB_disableOC // 0.52 new +39 char Derivative +40 char XInputMethod +41 char CommandInputMethod +42 char ExitDebugModeCheck // 0.55 new +43 char S_L_Style +44 char EnableExtFont // 0.48 new +45 char ForceG1Msave +46 char ComplexMode // 0.51 new +47 char Angle +48 char EditGBFont // 0.49 new +49 char StorageMode & 1 // 0.53 new +50 char StorageMode & 2 // 0.53 new +51 char BreakCheckDefault +52-53 short PageUpDownNum +54 char (reserved) +55 char TimeDsp +56 char (reserved) +57 char 1-MatBaseDefault +58 char (reserved) +59 char MatXYmode +60 char (reserved) +61 char CheckIfEnd +62 char (reserved) +63 char PictMode + +64-71 double Xfct +72-79 double Yfct + +80-543 double REG.A...z.real +544-631 double REG.VWIN +640-871 int REGINT.A...z + +872-873 short KeyRepeatFirstCount +874-875 short KeyRepeatNextCount + +880-883 char Favoritesfiles[0].filesize +884-887 char Favoritesfiles[1].filesize +888-891 char Favoritesfiles[2].filesize +892-895 char Favoritesfiles[3].filesize +896-899 char Favoritesfiles[4].filesize +900-903 char Favoritesfiles[5].filesize +904-907 char Favoritesfiles[6].filesize + + 908- 920 char Favoritesfiles[0].filename + 921- 929 char Favoritesfiles[0].folder + 930- 942 char Favoritesfiles[1].filename + 943- 951 char Favoritesfiles[1].folder + 952- 964 char Favoritesfiles[2].filename + 965- 973 char Favoritesfiles[2].folder + 974- 986 char Favoritesfiles[3].filename + 987- 995 char Favoritesfiles[3].folder + 996-1008 char Favoritesfiles[4].filename +1009-1017 char Favoritesfiles[4].folder +1018-1030 char Favoritesfiles[5].filename +1031-1039 char Favoritesfiles[5].folder +1040-1052 char Favoritesfiles[6].filename +1053-1061 char Favoritesfiles[6].folder + +1062-1074 char (reserved) + +1075 char AutoSaveMode +1076 char EditTopLine +1077 char EditFontSize +1078 char DisableDebugMode +1079 char 0 + +1080 short CB_ColorIndexPlot +1082 short CB_ColorIndexEditBack +1084 short CB_ColorIndexEditBase +1086 short CB_ColorIndexEditCMD +1088 short CB_ColorIndexEditQuot +1090 short CB_ColorIndexEditComt +1092 short CB_ColorIndexEditLine +1094 short CB_ColorIndexEditNum +1096 short CB_FavoriteColorIndex // 0.56 new + +1098-1279 char (reserved) + + +1278-1279 short version (0.56 -> 56) // 0.56 new + +-------------------------------------------------------- +CBasic2 setup format +-------------------------------------------------------- +offset type name +-------------------------------------------------------- +00 char "CB.config60" +11-47 char (reserved) + +48-511 double REG.A...z.image diff --git a/doc-fx/Change_EN.txt b/doc-fx/Change_EN.txt new file mode 100644 index 0000000..420ce9f --- /dev/null +++ b/doc-fx/Change_EN.txt @@ -0,0 +1,2221 @@ +Please look at this site +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site is translated by Krtyski. +------------------------------------------------------------------------------------- +some following text translated by sentaro21 +Sorry that translation is not good... +Translated with www.DeepL.com/Translator (free version) +------------------------------------------------------------------------------------- +v2.47beta + (build02) 2023.12.11 + -Fixed a bug that [EXIT] did not return to the catalog after history. + -Fixed a bug that files in a folder could not be accessed when the Load( command was used in a program in main memory. + -Fixed a bug that the cursor in file manager was not correct position. (FX version only). + + (build01) 2023.12.10 + -Added a catalog function dedicated to C.Basic commands. + -Added mini-font display in file mode and variable display. (newly FX version) + -Added ? Minifont display of command. (newly FX version) + (format)?([@][x][,y][,width][, "blank character"][,number of input digits][,R]) + (Example) ?(@30,40,5,">",5)A +   The value of A is displayed in mini-font at the current VRAM pixel coordinates (X=30,Y=40) + and waits for input. Blank spaces are filled with ">". + -Fixed a bug that the program freezes when using unsupported commands (internal code 0x7Fxx). + -Error display has been changed. Missing WhileEnd" and "Missing Switch".(ref.ErrorCode_List.txt) + -Disabled initialization of hidden RAM for non-GII models. + -Beep command can be interrupted by AC key. + + -The Locate command and drawing specifications such as Text can now be specified as mathematical formulas by writing them in parentheses. + (Format 1) Locate x,y,Value/Strings[,N/O/R/V]. + (Format 2) Locate x,y,Value/Strings[,(drawing specification)]. +  N:0 'normal +  O:1 'or +  R:2 'reverse +  V:3 'reverse or + (Example) Locate 2,3,"ABC",(2) +    Locate 2,3,"ABC",(R) ' R=2 +  Either +  Locate 2,3,"ABC",R +  are the same as + + -FKeyMenu can now be used to specify formulas by writing the drawing specification in parentheses. + (Format 1) FKeyMenu( n[~m], "string"/icon number [,C/M/N/R/I/S/U/L [,icon color [,icon background color]]] ) + (Format 2) FKeyMenu( n[~m], "string"/icon number [,(drawing specification) [,icon color [,icon background color]]] ) +  Numeric value (0-4) in basic drawing specification +   C:( 0)Erase. +   N:( 1)Normal white icon. (may be omitted) +   R:( 2)Black icon with missing lower right corner. +   I:( 3)Square black icon. +   S:( 4) Black icon with border +  The following modifiers are added to the basic drawing specification values. +   U:( 16)Display string one dot above. +   L:( 32)Extend the display range by 2 dots to the left and right. +   M:( 64)Mask processing. +   m:(128)Masks only the border. (FX version only) + + (Example) FKeyMenu (1, "string",NULM) + FKeyMenu (1, "string",(1+16+32+64)) +    The above two will produce the same result. + +v2.46beta + (build03) 2023.10.26 + -Fixed a bug in the main memory favorites function for files with the same name, where only upper and lower case letters differed. + -Fixed a bug that caused the TicksWait count to be 1 too high. + (Before) TicksWait 4 was the same as TicksWait 5. + -Fixed a bug that prevented builds due to incomplete source files included in the package. + -Fixed a bug that prevented returning to the folder position. (build01 enbug) + + (build02) 2023.10.25 + -Changed the specification so that a new file is created in the current folder when the cursor is on a folder in the file list. + -Changed to overwrite a file if it is larger in size than the previous file.(Only for GIII Model) +  (If the file size is smaller, the previous file is erased and a new file is saved.) + + (build01) 2023.10.23 + -Changed to create [CBasic] folder only at first startup and use it as the default save and load folder.(Only for GIII Model) + -Fixed a bug that the value of the control variable at the end of For~Next in integer mode was incompatible. + -Fixed a problem in which assignment of a string longer than the limit length failed when the length of the string is limited. +  (Length-1 is the maximum number of characters that can be stored.) + -Fixed a bug in Pol()Rect() function that ListAns[0]ListAns[1] did not return an answer when MatBase was 0. + -Fixed rounding of ENG display. + -Fixed a fatal bug when using Ref and Rref functions, because they were not supported. + -Fixed a bug in which a command that could not be input by C.Basic command input mode was added and corrected. + +v2.45beta + (build20) 2020.5.21 + -Improved the French manual.(Many thanks to Lephenixnoir) + -Fixed the bug that the skip cache between If~ElseIf did not work. + -Added new option of System() command to get OS minor version. + (format) System(-22) + + (build19) 2020.5.20 + -Fixed the bug that [AC]/AcBreak not work after escaping the loop with the Break command from within Try~TryEnd. + -Changed the specification of the ReadGraph/WriteGraph/DotGet/DotPut command that it works on the current VRAM. + -Added V option of the Screen command to change the drawing target VRAM to the retreat area of the text VRAM/graphics VRAM. + (Format) Screen.V +  set to the default VRAM. + (Format) Screen.VT +  Changes the retreat area of the text VRAM to a drawing. + (Format) Screen.VG +  Changes the retreat area of the graphics VRAM to a drawing. + -Added fx-9750GIII to the model judgment in System(-1). +  0:fx-9860G(SH3) + 1:fx-9860G Slim(SH3) + 2:fx-9860GII(SH3) + 3:fx-9860GII(SH4A) + 4:Graph35+EII(SH4A) + 5:fx-9860GIII(SH4A) + 6:fx-9750GIII(SH4A) + -The System() command sample program created by Krtyski was updated to the version for fx-9750GIII. (System_sample folder) + + (build18) 2020.4.28 + -Fixed the bug that that the cursor position of the editor was reset after the program execution. (build12 en-bug) + -Fixed the bug that the matrix display was erasing a part of the numbers at the bottom. + -Changed the specification to the confirmation pop-up will be shown for On/Off of the hidden memory in the set-up. + + (build17) 2020.4.24 + -Fixed the bug that the matrix display of CPLX was too slow. and changed it from a three-column display to a four-column display. + -Fixed the bug that caused the ? command input to be in alpha mode at the start of the program. (build16 en-bug) + -Fixed the bug in the initialization of hidden memory. + + (build16) 2020.4.16 + -Improved auto-indenting function of Switch~Case~SwitchEnd. + -Fixed the bug in which a comment was made immediately after the If/ElseIf command, which was terminated when the next command was If. + -Fixed the bug that the program was terminated when the next command is "If" when a comment follows If/ElseIf. + -Fixed the bug in the assignment from a string variable to a string variable that was not assigned after intializing Mat. + (Example of not being copied) + ClrMat +   "ABC"->Str 1 +   Str 1->Str 3 + -Fixed the bug that infinite loop occurs when imaginary numbers are used in non-CPLX mode. (build15 en-bug.) + -Fixed the bug of omitted multiplication. (build15 en-bug.) + -Added fx-9860GIII to the model judgment in System(-1). +  0:fx-9860G(SH3) + 1:fx-9860G Slim(SH3) + 2:fx-9860GII(SH3) + 3:fx-9860GII(SH4A) + 4:Graph35+EII(SH4A) + 5:fx-9860GIII(SH4A) + -The System() command sample program created by Krtyski was updated to the version for fx-9860GIII. (System_sample folder) + + + (build15.) 2020.3.22 + -Fixed the bug that the list could not initialization over 64 elements when the default index start value was 0. + -Fixed the bug that [F4] (COPY) works int [F4] when search string is NULL in file mode. + + (build15) 2020.3.20 + -Started implementation of function memory with supported by Colon. + -Fixed the bug that List could not be automatically allocated when the default index start value was 0. + -Changed the function of the [F4](SEE) of function memory(Fn) to [F4](Edit). + + (build14) 2020.3.14 + -Added [F5](Edit) function of the SEE of function memory(Fn). + -Fixed the function of Store/Recall/ SEE of function memory(Fn). + + (build13) 2020.3.10 + -Changed the specification of Function memory(Fn) and graph memory(Y) that are evaluated as formula evaluation by default, + and are evaluated as strings when as an argument of the string function or following strings. + (formula evaluation) + Fn1->A + Fn1(123)->A + Locate 1,1,fn1 + Text 1,1,fn1(123) + (string evaluation) + fn2->Str 2 + "123"+fn1->Str 1 + Locate "123"+fn1 + StrJoin(fn1,Str 1) + + -Fixed the bug in copying from different types of strings variable. + (Example not copied to fn3) + ClrMat + "123"->fn1 + "ABC"->Str 1 + Str 1->fn3 + + -Added the function of Store/Recall/ SEE of function memory(Fn). + (* For the editor the clipboard are stored to fn. For single line input, the entire line is stored.) + -Changed F_Start / F_End / F_pitch to independent variables. + -Fixed the ? command bug that decode to ASCII code when strings is displayed. + + -(build12) + -Changed the max specification of GraphY / fn to same as Str. + -Changed the store specification of GraphY to 6 byte prefix added. + (There is no change other than direct access to the Mat.) + + -Fixed the bug that no updated file list when change file-mode by setup in the editor. + -Changed to masked icon when no function in the setup. + -Added the System() command option that get C.Basic system file that saved in main memory. + (*The index start value is 0.) + (example) System(10000,1) + @CBASIC/Cbasic -> ListAns + (example) System(10000,1) + @CBASIC/Cbasic2 -> ListAns + + (build11) 2020.3.1 + -Fixed the bug that an error occured when continuous execution of Screen#/Screen%. + -Fixed the bug that the value is invalid when store List Ans of Screen#/Screen%. + (example) Screen#0,0→List Ans + -Improved the search mode in file mode. + Press the alphabet key to open the search window and enter search mode. + In the search window, normal input is possible. + Press [EXIT] to cancel the search window. + Cursor up and down, [EXE], [F1](EXE), [F2](EDIT), [F3](NEW) key can be worked without closing the search window. + + (build10) 2020.2.28 + -Improved the direct jump by pressed alphabet in file mode to number or small alphabet character can be selected. + [F4](A<>a) + [F5](CHAR) + [F6](→) change to search folder/file. + [DEL]: back one character. + [AC]: erase all. + [EXIT]: return. + [X^2]:~ or ^ + [^]:' + [(-)]:@ + + (build09) 2020.2.26 + -Improved the direct jump by pressed alphabet in file mode to two or more characters can be selected. + [DEL]: back one character. + [AC]: erase all. + -Fixed the bug that an indent was added when [EXE](CR) was performed before a command with the indent (If, Else ..). + -Fixed the bug that function memory(Fn) and graph memory(Y) did not evaluate as a string when there was no argument. + -Fixed the bug that the execution speed of "" command was very slow. + + (build06) 2020.2.21 + -Changed emulator detection method to calculator ID judgment. + + (build03) 2020.2.15 + -Fixed the bug that '# option in comments was changed when searching for labels. + + (build02) 2020.2.12 + -Fixed the VarPtr() command bug that the subscript was always evaluated as double mode. + -Improved the FKeyMenu() commad that an error does not occur even if there is any color argument. + + (build01) 2020.2.10 + -Added the strings sort of SortA/SortD command. + (format) SortA($Mat A) + -Updated Manuals. + + -Improved the option of the FkeyMenu() command. + (Format)FKeyMenu( n[~m], "string"/Icon # [,C/M/m/N/R/I/S/L] ) + - 3rd or later arguments can be omitted. + - "," are required even if the argument is omitted. + - Default color of FKey icon is black and FKey back color is white. + + The order of the 3rd argument is arbitrary. +   C: clear icon. +   M: masked icon. +   m: masked only frame icon . +   N: normal white icon.(default) +   R: black icon with notch at the bottom right. +   I: black icon with no notch at the bottom right. +   S: white box icon with no notch at the lower right indicating the selected. +   L: expand the "string" display area by 2 dots left. + (example) FKeyMenu (1, "string" ) + (example) FKeyMenu (2~3, "longstring",R) + (example) FKeyMenu (4~5, "longstring",I) + + -Added sample program of FKeyMenu() command by Krtyski & CalcLoverHK & Colon.(C.Basic_sample\FKeyMenu_sample) + + -Improved the matrix list screen that newly supported the display of extended area Mat/List/Vct after 53. + [←]:backword + [→]:forward + + -Changed to display the size of the free area in the status line when [SHIFT] is pressed in the editor. + + -Added emulator judgment to System() command. + (Format) System (-7) + 0 is returned on the real calculator. + 1 is returned on the emulator. + + -Fixed the bug in DBL# mode where pauses and imaginary numbers were displayed in variables page. + -Improved variables page independently for INT%, DBL# and CPLX. + +v2.44beta 2020.1.24 + (build06) + -Fixed the bug that Pict file could not be saved to storage/SD. (this is 2.28 en-bug.) + -Changed spacification of the number of string variables by default to th increased to 999 by default . + + -Fixed the bug that when the index start value of the matrix is 0, one more than the number set by '#Str '#Fn etc. is allocated. + -Fixed the bug that switching of current folder in setup. + -Fixed the number of digits including decimals to be no more than 16 when specifying Fix. + + -Changed the specification to be possible use formulas by arguments as '#Str and '#Fn etc. + (Example) #Str , N+1, A*10 + + -Fixed the bug that the return value was wrong when searching files with the wildcard in IsExist(. + (Example) IsExist ("*.Bmp") + If the file exists, return value is the number of files. + If the file does not exist, return value is 0. + + -Added push [OPTN][VARS] key to display alias/extended variable information in the variable display screen. + -Improved the save destination selection screen when the file name has been modified. + -Added [SHIFT]+[F1][F2][F3] key to matrix/List/Vct selection. + -Fixed the bug that "%" could not be input with [ALPHA]+[(-)] when one line input mode. + -Improved the version pop-up display that added build no. + -Improved the manuals. ( "Initialization of String" and "Display: Fix / Sci / Nrm / Eng" section) ( English translation supported by Krtyski ) + + +v2.43beta 2020.1.20 + -FIxed the bug that Version command returns 242. + +v2.43beta 2020.1.11 + -Changed specification to not switch to the same mode when switching the memory mode (storage memory/main memory). + -Fixed the bug that [SHIFT]+[F6](debug) failed to debug mode when "Force Return" was set in setup. + -Fixed the bug that Alias for extension variables did not cause an error. + + +v2.42beta 2020.1.6 + -Fixed the bug of ML command when there is a drawing range outside the screen. + -Fixed the bug when the integral calculation formula causes Math error. + -Changed the specification of the integration command so that the initial calculation precision is valid 5 digits and the result is not rounded. + + +v2.41beta 2019.12.29 + -Fixed integration calculation bug that sign of result is not correct when lower is greater than upper. + -Fixed integration calculation bug that X variable is changed after execution. + +v2.41beta 2019.12.28 + -Fixed the "Graph (X,Y)=(" command bug that did not work when multiplying List with T as argument. + (Example) Graph (X,Y)=(2*{1T,2T}, 3*{3T,4T}) + -Fixed "ExitDM PopUp" bug that pop-up did not appear when exiting the debug mode and re-executing. + -Fixed the bug that garbage might be attached at the end of the program when the indent function was enabled. + -Added integration function based on Gauss-Kronrod quadrature. (acapde's program has been implemented.) + https://community.casiocalc.org/topic/7637-cbasic-international-release/page-14#entry62978 + (format) ∫( f(x), lower limit, upper limit [,tol]) + [,tol] 0 List 5 + {250,500,250}-? List 7 + Beep List 5, List 7 + + +v2.39beta 2019.11.29 + -Fixed the problem that [EXIT] does not cancel the debug mode when the Help function is enabled. + -Fixed a bug when using List as an argument in the DrawGraph command. + -The error message "Withot" has been changed to "w/o". + + +v2.38beta 2019.11.19 + -Fixed the bug that the order of files with period characters in the name was reversed. + -Fixed the editor bug that the screen is shifted down when pasting on the 6th line when the upper status bar is displayed in the editor. + -Fixed the editor bug that could not be edited when the stored cursor position was after the end of the file. + -Fixed the RclPict bug that full 2KB Pict loading from storage memory. + + +v2.37beta 2019.11.19 + -Fixed the StoPict bug that the PICT file size was increased by 12 bytes (2080 bytes, correctly 2068 bytes) when saveing to main memory. + -Fixed the StoPict bug that the PICT file was not saving to storage memory. + -Fixed the bug where the space in comments was deleted when "Save-" of "Edit +Indent" was set in the setup. + -Fixed the bug that an error occurred when copying to Str variable when the length of the list label was 8 characters. + (example) "ABCDEFGH"->List 1[0] + List 1[0]->Str 1 + + +v2.36beta 2019.11.14 + -Added the specification that string variable can be used to specify the sub-program name of the Prog command. + (In the main program, the sub-program must describe the Prog command that has a character string as an argument.) + (example) --main program-- + "Test"->Str 1 + Prog Str 1 + Stop + Prog "Test" // Not run but need this + +v2.36beta 2019.11.13 + -Improved the display frequency of the mini font cursor of the editor. + + +v2.35beta 2019.11.12 + -Fixed the bug that Clip & Paste of the matrix editor stopped working due to memory exhaustion error. (Enbug in 1.88) + -Fixed the bug that the file size becomes +1 by the Save command of the character string. + (example) Load "test.txt"->Str 1 + Save("Test.txt"),Str 1 + The file size of "Test.txt" is increased by 1 byte. + + +v2.34beta 2019.11.10 + -Changed the specification of editor that when the file is opened again, the cursor position comes to the same place. + (Up to 7 files are supported.) + -Fixed the bug that sub-program disappear after program interruption when the Help function is enabled. + + +v2.33beta 2019.11.3 + -Fixed the bug that the cursor position jumps when canceling by [SHIFT] from clip mode of standard font editor. + -Fixed the bug that freezes when [F2]/[F3] is pressed in [SHIFT]+[F3]+[F5] hex dump mode. + + +v2.32beta 2019.10.27 + -Fixed the bug that 1-byte command was not displayed in Help function. (enbug in 2.20) + -Fixed the bug that [SHIFT]+[ALPHA] lock was released by [EXE](CR). + -Added feature that % can be entered by [ALPHA]+[(-)]. + + +v2.31beta 2019.10.17 + -Fixed the ? command bug that could not be initialization input to Mat/List/Vct. (enbug in 2.29) + +v2.31beta 2019.10.16 + -Fixed the bug that memory was insufficient when repeated Mat/List/Vct initialization. + +v2.31beta 2019.10.15 + -Fixed the bug that the cursor position does not return when UNDO is executed when the cursor is moved outside the screen after [DEL]. + -Fixed the bug that the program size was not changed when [PASTE] of UNDO. + +v2.31beta 2019.10.13 + -Added the UNDO function to the editor. After [DEL], press [ALPHA]+[DEL](UNDO) to return to the state before.(Only one step is valid) + + -Improved initializing of Matrix/List/Vct. + + +v2.30beta 2019.10.8 + -Added "@" option to the ? command so it can be used on the current screen. + (example) ?@(5,5,5)->A + This can enter 5 columns from Locate coordinates (5,5). + + +v2.29beta 2019.9.25 + -Fixed the "EditListChar" of setup bug that List1~List6 of the old command did not be changed. + -Fixed the bug that List1~List6 of the old command did not work when copying List. + (example) List 1-> List2 + + -Improved loading speed of matrices and list intialization is up to 2x faster. + (example) {1,2,3}->List 1 + (example) [[1,2,3][4.5,6]]->Mat A + + -Improved key input on SH3 machines. + -Chaneged the name of "EDIT TopLine" in the setup to "HideStatLine". + + +v2.28beta 2019.9.10 + -Added feature that pressing [F2] go back directly to the editing screen when program is end "Done", + -Fixed the bug that the file size may not be correct when saving the program file. + -Fixed the bug that voltage reading caused a system error in the fx-Manager PLUS Subscription. + -Fixed the FkeyMenu( command bug that icon reading caused a system error when the OS version was old. + -Changed specification that Next/WhileEnd/LpWhile following Isz/Dsz back to 2.26 specification. + -Improved the Manual_EN.txt.(Thanks to CalcLoverHK). + + +v2.27beta 2019.9.8 + -Fixed incompatibility of Next/WhileEnd/LpWhile following Isz/Dsz. + -Fixed the bug that key input is hung-up in fx-Manager PLUS Subscription for Graph 35+E II. + -Fixed ? command bug with option that noto return inut value. + (example)?(16,4,4,"_",4)->A + + +v2.26beta 2019.9.5 + -Fixed the cursor position of after clip&paste in editor. + -Fixed Menu command bug that pressing [MENU]key did not return to OS menu. + -Fixed TicksWait command bug that rewrited Ans variable. + -Fixed "strings" command bug that the 21st character is not displayed when 21 characters are used. + -Corrected mini font (0xE69E, 0xE6A5, 0xE6A6) that not compatible genuine Casio Basic. + -Fixed the bug that the remaining memory display of the version pop-up was not correct when Max Mem Mode is ON, + + +v2.25beta 2019.9.4 + -Fixed the bug that fail loading of sub-program. + + -Fixed MOD( command bug that the result was wrong when both arguments were negative. + (False) MOD(-5,-5)->5 MOD(-5,-1)->1 + (True) MOD(-5,-5)->0 MOD(-5,-1)->0 + + -Fixed the bug that memory was insufficient when editing by interrupting a subprogram. + -Fixed the bug that automatic assignment to X and Y variables after Plot command even outside the drawing range. + + +v2.24beta 2019.8.29 + -Added BatteryStatus command that return battery voltage.(Thanks to Simon's document sample program.) + [VARS]-[F3](extd)-[F6](BatteryStatus) + (Example) BatteryStatus + retrun value is 516, it is 5.16V + *Supported all models. + + -Added battery voltage display in version popup of setup. + + -Fixed the bug that not change to the storege memory from main memory in file mode [F6]-[F6]-[F4](->SMEM). + + -Fixed Load command bug that can not load the string variable. + (Example) Load "Sample"->Str 1 + + -Fixed the response of the Getkey command when overclocking to 88MHz or higher in 9860G Slim. + + -Changed specification that return value of the Getkey in 9860G Slim. + [HELP] ->11 + [LIGHT]->21 + + -Added specification that CSV text file can be edit.(trial ver.) + [F2](edit) + + -Added specification that plain text file can be edit.(trial ver.) + [SHIFT]+[X^2] (extended) + + +v2.23beta 2019.8.19 + -Fixd the bug that not worked when the control variable of For~Next is different from the execution mode. + (Example) '#CBDBL + For 1-> I% To 6 + Disp I% + Next + + -Changed 4bit matrix specification to unsigned from signed. + + +v2.22beta 2019.8.16 + -Fixed Int/ bug in double/complex mode. + (False) -5 Int/ 3->2 + (True ) -5 Int/ 3->1 + +v2.22beta 2019.8.15 + -Fixed MOD( bug in integer mode. + (False) MOD(-5,3)->5 + (True ) MOD(-5,3)->1 + + -Fixed a bug that garbage was generated at the end of the program when the indent function was used on the main memory. + + +v2.21beta 2019.8.7 + -Fixed "Range Error" when assigned directly to ViewWindow variable. + -Change specification that Graph 35+E II hidden memory usable size has been changed from 128KB to about 188KB. + -Fixed a bug that the SDK emulator could not be started after initialization. + + +v2.20beta 2019.8.5 + -Fixed the bug that create a new program with an existing file name. + + +v2.20beta 2019.8.4 + -Added the indent function to the editor. + When [EXE] is pressed, the indent(blank spaces) at the beginning of the current line is continued to the next line. + + -In the setup setting, the indent is added automatically when loading the program. (Edit Indent+) + Programs already indented are not added indent. + You can also delete blank spaces including indents when saving program. (=to compatible with Casio Basic) + The following command adds indents. + If-Else-ElseIf-IfEnd + For-To-Step-Next + While-WhileEnd + Do-LpWhile + Switch-SwithEnd + + -Fixed a bug that did not work Dim List1 using the old command List1. + + +v2.10beta 2019.7.22 + -Fixed the drawing bug of Graph(X,Y) again. + +v2.10beta 2019.7.20 + -Added support Graph 35+E II. + However, hidden memory is halved from 256KB to 128KB. Other specifications are the same. + + -Added specification that the initial root folder can be changed. + You can set the initial root folder to the root or current folder in setup. + (Note) Previous FX series are always root folder. + + -Added support for folder renaming. + -Fixed the bug that could not be accessed by Save/Load command when the program was executed in main memory. + -Fixed the bug that cooperation between Plot command and Line command failed. + -Fixed the drawing bug of Graph(X,Y) with argument of TTheta variable again. + + +v2.00beta 2019.6.15 + -Added the exception handling commands Try-Except-TryEnd and eliminated IsError(). + (Format) Try + Except error code 1 + + Except error code 2 + + TryEnd + If there is no error in , processing moves after TryEnd. + If error1 occurs, processing will move after TryEnd after executing . + If error2 occurs, processing will move after TryEnd after executing . + When Error3 occurs, an error pop-up appears because there is no corresponding Except. + + (Format) Except + If there is no Except corresponding to an error, "Error" is executed because Except with no argument corresponds to all errors. + + (Example) Try 3*4+ + Except 1 + "Syntax Error" + TryEnd + "Syntax Error" is executed, since SyntaxError error code is 1. + + (Example) Try 3*4/0 + Except 1 + "Syntax Error" + Except 40 + "Divide by Zero" + TryEnd + “Divide by Zero”is executed, since division by zero error code is 40. + + (Example) Try 3*4/0 + Except 1 + "Syntax Error" + Except + "Error" + TryEnd + If there is no Except corresponding to an error, "Error" is executed because Except with no argument corresponds to all errors. + + The sample program is in CBasic_sample/Try_Except. + Refer to ErrorCode_List.txt for the error code. + + + -Fixed the bug of conversion to text where the CR was omitted even if a code from 0x01 to 0x2F other than 0x0C (Disps). + + +v1.99.5beta 2019.5.29 + -Changed specification that move to the "~*.*" file name when pressing the [.]Key of the file list. + -Changed specification that move to the top of the folder list when pressing the [EXP(x10)]Key of the file list. + +v1.99.4beta 2019.5.26 + -Fixed the drawing bug of Graph(X,Y) with argument of TTheta variable. + -Added moved to the top of the folder list when pressing the [.]Key of the file list. + +v1.99.3beta 2019.5.18 + -Fixed the bug that debug mode is not canceled when break and then edited with Help On. + +v1.99.2beta 2019.5.17 + -Fixed the bug that exiting without go to editor when [AC]break stopping sub-program and press [EXIT](enbug in 1.98) + +v1.99.1beta 2019.5.16 + -Fixed the bug that was unable to switch favorites list when Max Mem Mode was ON. + -Changed specification that the favorites list display from the bottom when move Storage/SD from Main Memory. + -Fixed the bug that variable display after the Mat and List were paused.(enbug in 1.99) + +v1.99beta 2019.5.14 + -Fixed the bug that clear display after the Mat and List were paused. + + -Changed specification of text conversion of "Disps" command to add [CR][LF] code. + (Previous = compatible with CG series) Disps + (New specification) Disps+[CR]+[LF] + + -Added the key combination that easy to move between storage memory and Main Memory. + [SHIFT]-[F5] to change Strage/SD <-> main memory(Main Memory). + -Added the specification that up to 7 favorite files can be registered separately for storage memory and SD ans Main Memory. + + -Fixed the bug that debug mode is not canceled when break and then edited. (bugs remaining.) + + -Added Rotate&Zoom option of _Rectangle/_Polygon command. + (format)_Rectangle x1,y1,x2,y2, border_width, border_color, fill_color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + (format)_Polygon *ary_x, *ary_y, vertices, color[,chance/brend%][,angle][,center_X][,center_Y][,zoom%] + + If [center_X][center_Y] are omitted, The center of the drawn image is specified. + + (example ) see "C.Basic_sample/ML_sample" folder. + + -Changed "MCS" notation to "Main Memory". + + +v1.98beta 2019.5.7 + -Fixed the bug that external font may be broken when using the hidden memory. + +v1.98beta 2019.5.6 + -Fixed the bug that external font is not enable.(Maybe fixed.) + -Fixed the bug that caused memory error of input "?" command of string. + +v1.98beta 2019.5.4 + -Added pop-up when external font is not enabled in SetFont 1. + + -Changed specification of maximum loop stack level. + (for~Next :upto 4 level -> 7) + (While~WhileEnd :upto 6 level -> 7) + (Do=LpWhile :upto 6 level -> 7) + (Switch~SwithEnd:upto 4 level -> 7) + + -Fixed exiting Goto bug from Switch~SwitchEnd. + + -Changed specification that the case-insensitive of the file name of strage/SD mode. + so it possible to rename each other from upper case to lower case. + (Example) "ABC.bmp"->"abc.bmp" + + -Changed the cursor initial position of file input to before the extension. + + -Corrected the cursor position for canceling debug mode. + -Fixed the bug that debug mode is not canceled by the confirmation popup of cancellation of debug mode. + + +v1.97beta 2019.4.27 + -Fixed the incompatibility Fix and Sci in EngOn. + (Example) EngOn:Sci 3 + 1.23456789e12->12.3M + + -Added Strings variable or Numeric variable to the argument of Save/Load command. + (Example) Save "TEST",A + (Example) Load "TEST",Str 1 + + -Help file updated little. + +v1.96beta 2019.4.23 + -Added the help dispyay at the command input of editor. + (Set enable/disable in setup.) + ("~~ HELP1.txt" / "~~ HELP1.g1m" files in the HELP folder are Help files. + Please put it in the root folder or the same folder as the program. + + -Added nPc/nCr function. + + -Fixed the file name is broken bug when converting from text to g1m. + -Fixed the bug that external fonts may not be loaded. + + -The default storage folder for PICT/CAPT files has been changed to "PICT" and "CAPT" in all uppercase. + -Fixed the bug that the folder of file mode was not saved. + -Fixed the bug of MSC that can not be saved even though Main Memory free area is sufficient. + + -Fixed the bug that could not use List1~List6. + -Fixed the bug of getting an element address incorrectly in 1-bit and 4-bit matrices. + -Fixed the problem with continuous operation of matrix and List. + -In the case of negative argument in StrShift, fixed that the result was different. + (Example) StrShift ("1234567", -2)->"12345" + -Fixed graph drawing commands bug. + + +v1.95beta 2019.2.17 + -Added French manual.(Thanks so much Planet-Casio@Lephenixnoir for translation to French.) + -Fixed the "Fill" command bug that did not work properly when the second argument of the Fill command was only numbers. + (Example) Fill(123,1) + It was not to be the same result as Fill(123, List 1). + + +v1.94beta 2019.2.3 + -Fixed the bug that [AC] break does not work in programs that frequently call "Prog". + -Fixed the loop end operation when Next/WhileEnd/LpWhile exists after "=>" command. + -Fixed the bug that the sub name of List n[0] could not be displayed with the Locate/Text command. + -Fixed the bug that ?->fn1,?->Y1 could not be entered. + + +v1.93beta 2019.1.26 + -Fixed the extended variable bug that used local variable. + -Fixed "=>" command bug that re-write Ans of sub-program. + + +v1.92beta 2019.1.18 + -Changed specification of the default at the first startup that to use the hidden RAM. (SH4A only) + + -Fixed 4 or more dimensional matrix inversion bug. + (false example) [[0,0,0,1][27,9,3,1][216,36,6,1][512,54,8,1]]^(-1) + + -Fixed degrees(hours),minutes,seconds calculation bug of comlpex mode. + + -Fixed Text bug that if displayed at the right end, it will turn back to the left. + + -Fixed Goto bug that when Goto in the loop was executed before the loop repeated. + + +v1.91beta 2019.1.2 + -Fixed Goto bug of exit of loop that Goto command in the subroutine when Gosub was in the loop. + +v1.91beta 2018.12.31 + -Added new specification of Goto command that to be able to exit of loop automatically.(an experimental trial) + (canceled 1.90 feature.) + + +v1.90beta 2018.12.30 + -Fixed Sci of display format bug.(enbug 1.84) + +v1.90beta 2018.12.29 + -Added new specification of Goto command that to be able to exit of loop.(an experimental trial) + (format) Goto (-)Label + (-) is minus signe. + (example) + Lbl A + While 1 + Goto (-)A + EhileEnd + + -Changed Vct intialization that not compatible with genuine Casio basic. + -Fixed Vct bug that not worked indirect mode. + (example) Vct @5 + + +v1.89beta 2018.12.27 + -Fixed the fatal bug that was not able to access of bmp file of the root folder. (enbug 1.87) + +v1.89beta 2018.12.26 + -Fixed bug of mini font editor that canceled ALPHA mode when pressed [ALPHA]-[F4](A<>a) + +v1.89beta 2018.12.19 + -Fixed lost file bug of Rename that input file name over 8 character. + +v1.89beta 2018.12.16 + -Fixed Matrix inversion bug. + (false example) [[0,0,1][9,3,1][36,6,1]]^(-1) + +v1.89beta 2018.12.11 + -Fixed Seq( command bug that became the error at the time of the command evaluation with an illegal value of the variable. + (example) -2->X + (example) Seq(sqrt(X),X,1,4) + +v1.89beta 2018.12.9 + -Added interrupt option of serial command. + (format) Send( data [,baudrate][,enable_exit]) + (format) Recv( data [,baudrate][,enable_exit]) + (format) OpenComport38K[,baudrate][,transfermode][,enable_exit] + [baudrate]: 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=115200 baud + default baudrate is 38400 + [transfermode]: 0:binary data transfer mode 1:necessary to match data type (default) + When OpenComport38K with [transfermode:0]option, Send38K/Receive38k is binary data transfer. + [enable_exit]: 0:not interrupt 1:interrupt + + (example) Send(A,,1) + (example) Recv(A,,1) + [EXIT] interrupt enable. + + +v1.88beta 2018.11.26 + -Added System(-5) command that return to free memory size. + (example) System(-5) + +v1.88beta 2018.11.25 + -Added supported Str,GraphY,fnc string more than 255 characters. + (example)'#Str ,30,1000 + Str 1-30 of maximam 999 characters. :[ALPHA]+[X^2] + + -Fiexd MAT/LIST re-allocate initialization bug that same Mat/List was not cleared. + + -Added <.bin> to the extension of the file to display in the root folder. + and display all files in the subfolder. + + -Enabled all file type of Rename/Copy. + + -Fixed name of List ans//theta bug of Mat/List/Vct screen when ListFile No is more than 2. + + -Fixed Str,GraphY,fn memory allocation bug that number of elements decreased. + (example) "CDE"->Str 5 + Str 1,Str 2,Str 3,Str 4,Str 5 are available. + (example) "ABC"->Str 1 + Only Str 1 is available.(false) + Str 1,Str 2,Str 3,Str 4,Str 5 are available.(true) + + -Fixed stack error bug that was hard to return to the editor. + + +v1.87beta 2018.11.15 + -Changed specification of Str,GraphY,fn memory allocation method. + and changed default maximam allocation unit number is 20 to 127. + (example) "ABC"->Str 1 + Only Str 1 is available. + (example) "CDE"->Str 5 + Str 1,Str 2,Str 3,Str 4,Str 5 are available. + + -Changed specification of the default Mat of the substance of fn. + Str : + GraphY:Theta + fn :z + + -Fixed ClrVct with variable name not worked bug. + +v1.87beta 2018.11.12 + -Fixed ClrVct not worked bug. + + -Fixef GraphY(),fn() argument bug + (exapmle) "X+5"->fn1 + fn1(X=7) + (false) return value is (1)+5 + (ture) return value is (7+5) + + -Fixed StrShift bug that not compatible. + -Fixed StrSrc( bug that when a search start position were more than a character string length, return value is not 0. + -Fixed StrMid( bug that when second argument value is 0, return strings is not NULL. + -Fixed StrLen(,StrCmp(,StrSrc(.Exp( that can not omit the multiplication sign. + + -Fixed Ans/r/theta of List name bug of Mat/List/Vct screen. + -Fixed omit the List "}" bug. + -Fixed List name strings bug that can not use Str variable. + + -Fixed And,Or,Not of complex number bug that not correct. + -Fixed And,Or of real number bug that not compatible. + (false) 0.1 And 0.2 -> 0 + (true) 0.1 And 0.2 -> 1 + + -Fixed BG-Pict bug that when file size is less than 1024, + + +v1.86beta 2018.11.4 + -Fixed BmpLoad( bug that right-side processing became 8 dots unit in the load to VRAM. + + -Fixed name of Vct bug of Mat/List/Vct screen. + + -Added support File of List.(use hidden RAM required.) + It becomes the list file by 52. + (example) File 2 + to select File 2 + List 1 (File 2) use same as List 53(File 1) + the number of File which is necessary for setup required. + + (example) File 0 + to use the list of consecutive numbers as well as previous version. + + -Added inequality & integration graphing.( onry one graph supported now.) + + +v1.85beta 2018.11.3 + -Fixed enbug of Trn command. + -Fixed StrRotate bug that rotatory direction was reverse. + +v1.85beta 2018.10.25 + -Added support for fx-9860G Slim. + (Getkey,Backlight command) + + -Added value of Slim of System(-1) command. + return to model name + return value is 0 : 9860G + return value is 1 : 9860G Slim + return value is 2 : 9860GII(SH3) + return value is 3 : 9860GII(SH4A) + + -Fixed automatically corrects code bug that ClrVct -> Sprintf( + -Changed specification of automatically corrects the redundancy of the intermediate codes. + (x) DotG -> DotGet( + (x) ClrVct -> Sprintf( + +v1.84beta 2018.10.21 + -Fixed wrong return value of the model judgment. + (format) System(-1) + return to model name + return value is 0 : 9860G + return value is 2 : 9860GII(SH3) + return value is 3 : 9860GII(SH4A) + + -Fixed memory error of Trn in expression. + +v1.84beta 2018.10.16 + -Fixed jump bug of editor that might not jump at the bottom end. + +v1.84beta 2018.10.10 + -Reduced check of [AC] key in the execute loop. + As a result, Break On and Break Off became the about the same speed. + (SH3 ) about 10% faster than previous version. + (SH4A) about 2~3% faster than previous version. + + -Fixed automatic guaranteed of List[]. + -Fixed the expression of Y(grapf)/fn with argument. + (false) "X+5"->fn1 + return value of fn1(7) is (X+5)*7. + (true) "X+5"->fn1 + return value of fn1(7) is (7+5). + + +v1.83beta 2018.10.5 + -Changed the closing process of serial ports in Send(, Recieve( command. + + -Increased to 32 from 26 of the extended variable by an alphanumeric characters name beginning with under bar (up to 8 characters). + -Fixed the bug of Alias command more than the maximums. + Alias maximums number + - Variable up to 64 (include the extended variable) + - Mat/Vct up to 26 + - Lbl up to 26 + + -Added support Matrix inversion and squaring. + -Added support Raising a matrix to a specific power. + -Changed specification of Mat display width of CPLX 2 row to 3 row. + + -Fixed the evaluation error of the argument of Trn command. + (false) Trn Mat A+Mat B -> Tran (Mat A+Mat B) + (True) Trn Mat A+Mat B -> (Tran Mat A)+Mat B + + -Added following vector command. +  Vct +  DotP( +  CrossP( +  Angle( +  UnitV( +  Norm( +  ClrVct + (*)The area of Vct A~Z becomes independent. + -To change [VARS] key for Vct display of Mat/List/Vct screen. + + -Fixed ClrList bug that deleted List 27~52. + ( to be exact List 1~26 ) + + -Fixed the bug that Orange(Red),Green,Blue command becoming Syntax error. + +v1.82beta 2018.8.27 + -Fixed Ans variable error that use Mat/List of INT% mode. + +v1.82beta 2018.8.19 + -Fixed stact over bug that was not finished until push [EXIT] many times. + + -Changed specification of Graph Y= is not neccsesary "". + + -Changed to not display "Done" of text mode after Cls/ViewWindow. + + -Fixed [F1][F6]function display left in the replace of editor. + -Fixed the replace mode of editor was finished by [AC] in [F4](ALL)/[F5](ALL+). + -Fixed not accepted by numerical value input of the 4 in element size of Mat. + + -Changed specification to become the absolute value when set a negative value in Xscale/Yscale of V-Win. + + -Fixed [F4](A<>a) can not change at the 1 line input. + -Fixed that function menu was reset by the search / replace of the editor. + + -Changed specification of "" display same as genuine Casio Basic. + -Added option command that change "" display mode. + (format) '#58 + fx-5800P mode + (format) '#98 + fx-9860G/fx-CG mode + + -Fixed screen recover error of 1 line input of C.Basic command input method. + ([F3](CMD)->[OPTN]/[VARS]/[SHIFT]+[VARS] etc.) + -Fixed label of List bug that do not worked less than 8 character. + + -Added Det of Mat command. + -Added [ALPHA]+[alphabet key][Theta][r],[SHIFT]+[Ans],[X]key jump of Mat editor screen + -Added [F6](retry) search function of during execution search of editor. + + -Fixed [SHIFT]+[EXIT](QUIT) of editor in debug mode that excute the program. + -Added setup of debug mode exit popup. + -Fixed not worked fuction key of debug mode after [EXIT]. + -Added up/dwon allow character of command history/ command input popup. + -Added V-MEM access in V-Win setup. + + -Fixed not worked fuction key of debug mode after [EXIT]. + -Fixed setup bug that changed Fix/Sci/Norm setteing after [EXIT]. + + +v1.81beta 2018.7.7 + -Fixed label of List bug that do not worked less than 8 character. + + -Added Det of Mat command. + -Added [ALPHA]+[alphabet key][Theta][r],[SHIFT]+[Ans],[X]key jump of Mat editor screen + -Added [F6](retry) search function of during execution search of editor. + + -Fixed [SHIFT]+[EXIT](QUIT) of editor in debug mode that excute the program. + -Added setup of debug mode exit popup. + -Fixed not worked fuction key of debug mode after [EXIT]. + + -Added up/dwon allow character of command history/ command input popup. + -Added V-MEM access in V-Win setup. + + -Fixed text converting bug that 0b0,0b1,0b2,0x1,0x2,0x3 are failed. + -Fixed setup bug that changed Fix/Sci/Norm setteing after [EXIT]. + + +v1.80.3beta 2018.6.22 + -Fixed failed file list that the file of strage memory copy to main memory. + -Fixed [AC] break bug that restart after [AC]break when the "AT DebugMode" is off. + -Changed default setup setting. + AT DebugMode :On +  RefreshCtl DD:Off +  Pict Mode :Main memory + +v1.80.2beta 2018.6.21 + -Fixed text convison bug that following command is same as contracted form of matrices variable. + a0,a1,a2,b0,b1,b2,c0,c1,c2,x1,x2,x3,y1,y2,y3,n1,n2,Q1,Q3,f1,f2,f3,f4,f5,f6 + (example) a0(special variable) -> a0 + (example) a0(matrices variable)-> a\0 + +v1.80.1beta 2018.6.19 + -Fixed Augment( command bug that it become "Memory Error". + -Changed specification when a0,a1,a2,anStart,b0,b1,b2,bnStart,c0,c1,c2,cnStart was used,it becomes the extended variable automaticaly. + (*If there is Alias, it takes first priority.) + +v1.80beta 2018.6.17 + -Changed calculation priority of (-) from top of priority to Type C function priority same as genuine Casio Basic. + + -Fixed [AC]break bug that was not ready to break processing when it became [AC] break in "Return" coomand of the sub program. + + -Fixed initializing bug of List[1]~List[9]. + ( This is enbug that "Fiexd MAT/LIST re-allocate initialization bug" of ver.1.77 ) + + -Changed specifications of Min(,Max(,SrotA/D commands including complex number to judge at absolute value. + -Fixed GCD/LCM bug of complex number. + + -Added naming a List. + (example) "LABELA"->List 1[0] (* top of index is 1 default) + (example) List1[0]->Str 1 + (example) "LABELB"->List 1[-1] (* top of index is 0) + (example) List1[-1]->Str 1 + + -Fixed StoV-Win/RclV-Win command bug that can not set number of 6. + + +v1.79beta 2018.6.11 + -Fixed [DEL]key bug of clip mode of editor. + + -Added setting of the setup to use the program file of Main Memory(main memory) directly. + You can change the destination from Main Memory from storage/SD, storage/SD to Main Memory in preservation and the copy of the file. + At the storage/SD memory mode, copying, a destination become Main Memory when choose [F1](Main Memory). + Copying, a destination become the storage/SD memory when choose [F2](g1m) at the Main Memory mode. + + -Added Main Memory mode PICT file. + + -Fixd CAPTURE file not worked bug + and change to use only [Main Memory] CAPT file. + + -Fixed the condition judgment became the integer judgment in If,While,Do command. (1.76~1.78 enbug) + + -Fixed Mat/List re-allocate bug. + (added re-allocated Mat/List is '*' mark. + + -Added DrawStat option of CG mode. + (example) S-Gph1 DrawOn,xyLine,List 1,List 2,1,Square[,ColorLinkOff][,Black] + [,ColorLinkOff] is not work now. + + -Added the mode without the external font to setup or command. + (*When EnableExFont-on by setup this command is valid.) + (format) SetFont 0 + disable external font + (format) SetFont 1 + enable external font + + -Added System( command. + (format) System(-1) + return to model name + return value is 0 : 9860G + return value is 2 : 9860GII(SH3) + return value is 3 : 9860GII(SH4A) + (format) System(-2) + return to OS version 3-digits decimal number. + + +v1.78beta 2018.5.29 + -Fixed freeze bug of editor that [F1](Jump)-[SHIFT]+[F6](CHAR)-[SHIFT](Continous Select) -[EXE] + -Fixed bug of complex mode that Mat/List element including complex expression was syntax error. + -Added Identity command. + + -Fixed "Not" bug of complex mode that it was bit inverting. + -Fixed RanList#,RanNorm#,RanBin# bug of complex mode that not return complex List. + -Fixed Int/ bug of complex mode that not return complex number. + -Fixed bug of complex mode that when integer argument including the complex number became syntax error. + + -Fixed SortA/SortD bug that was not sorted with an floating number less than 1. + -Fixed SortA/SortD bug of multiple lists that incompatible of genuine Casio Basic. + (*all argument of lists was sorted independently before. ) + +v1.77beta 2018.5.21 + -Fixed to change [SHIFT]+[F5] function of the editor from [hex dump] to [A<>a]. + (*assigned the hex dump function to [SHIFT]+[F3](V-WIN)-[F5] newly.) + + -changed [SHIFT]+[F6] function of the editor from [G<>T] to [CHAR] at not debugging mode. + + -Supported complex number of Poke/Peek. + (example) Peek(&A).C + (example) Poke(&A).C,123+456i + + -Fiexd MAT/LIST re-allocate initialization bug. + (exaplme) {10,1}->Dim Mat A.B + -1->Mat A + {1,1}->Dim Dim Mat B.B(&Mat A) + [[1]]->Mat B.B + The correct answer of Mat B.B was + [[1][-1][-1][-1][-1][-1][-1][-1][-1][-1]] + but became + [[[1][0][0][0][0][0][0][0][-1][-1]] + + -Fixed ?() bug that zero was not display. + -Fixed ?() bug that became the system error by imaginary number input. + + -Changed syntax to become the error at the end of the formula expression when there was not the delimiter. + +v1.76beta 2018.5.13 + -Added complex number calculation mode. + To use [CPLX] for change mode by setup. + [DBL#]/[INT%]/[CPLX] + ( still incompletely...) + + -enabled clip&paste in 1 line input. + + -Added 4 bit matrix. [nibl] + (example) {16,8}->Dim Mat A.N + + -Fixed wrong name of List in matrix editor. + -Fixed strings Matrix initialization bug that cancel top of space after second strings. + + -enable [AC] break for Sigma/Seq commands. + + -adjusted not zero return of sin/cos command. + (example) sin pi) + (example) cos (pi/2) + + -added option of RndFix( that the maximum number of significant digits. + (format) RndFix( value, Sci digits) + (example) RndFix( 1.23456789e-123,Sci 5) + return value of 1.2346e-123 + +v1.75beta 2018.4.8 + -Changed the memory management method. + (secure all heap area for C.Basic use at the time of start.) + -To displayed quantity of usable current free RAM when pushed [SHIFT] in file mode, + (the free RAM is used separately in program, Mat, Pict.) + -Added the mode without the external font to setup. (free areas increase by about 4KB.) + -Added the mode which could use memory very much to setup. + (leave a buffer for list of files and increase free RAM to the maximum.) + (the re-reading of the list of files occurs as a side effect every time.) + + -Fixed Goto bug that was not able to work of Goto to the place more than 32KB. + -and the loop including the place more than 64KB that were not able to jump. + (expanded the pointer about movement of the program to 32 bits from 16 bits.) + + -A character string variable was usable for the file name of the Save,Load( command. + +v1.74beta 2018.4.1 + -Supported files more than 64KB. + + -Fixed "Fix 0" bug. + -Added 8th colum of ?( command. + + -Added Version command that return number of version. + (format) Version [SHIFT]+[MENU](SETUP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + + -Fixed StrSplit bug that including multi byte character not worked. + +v1.73beta 2018.3.16 + -To able to put the space within the command interval, the numerical formula. + + -Fixed the condition judgment became the integer judgment in If,While,Do command. + + -Cursor movement/scroll performace is 20% improved in editor. + -Fixed could not store after the editing with the binary mode in editor. + -Fixed malfunction of the cursor lower movement of the newline. + -Fixed mini cursor displayed with the binary mode in editor. + -Fixed missing text conversion ( code at 0xFFE0 ...) from g1m. + -Updated icon indication of [F6] of the character select. + + -Fixed the element jump [Goto] in Mat editor. + -Fixed Mat editor bug that there was a horizontal number of element more than 9. + + -Fixed Ticks% and TicksWait bugs. + -Fixed mistaked RanNorm# icon. + + -Added selectable VRAM for _PixelTest. + (format) _PixelTest(x,y,T) + to return color value from the text VRAM (x,y) + (format) _PixelTest(x,y,G) + to return color value from the graphic VRAM (x,y) + + -Added 12 arguments for SysCall. + (format) SysCall( syscall number [,arg1][,arg2][,arg3][,arg4][,arg5][,arg6][,arg7][,arg8][,arg9][,arg10][,arg11][,arg12] ) + + -Fixed reading mistakes the external font. + + -Added function that able to acquire the current external font introduction status. + (format) GetFont() + (format) GetMiniFont() + return value is (bit0:Ascii) (bit1:Gaiji) (bit2:Kana) + (example) When only the external kana font of the standard size is introduced, + GetFont() return to 4 + GetMiniFont() return to 0 + (example) When the external ascii mini font and gaiji mini font are introduced, + GetFont() return to 0 + GetMiniFont() return to 3 + + +v1.72beta 2018.3.3 + -Fixed 0x... 0b... Text to g1m convert bugs. + +v1.72beta 2018.2.25 + -Fixed bugs that Comment,If,Switch more than 32 in one program. + -Fiexd Gosub bug that failed in the substitution of the return value without the argument. + (Example) Gosub A->B + Disp B + Stop + Lbl A + Return 1 + +v1.71beta 2018.2.21 + -Added StrAsc( command. + Converts a character (in a string) into the corresponding ASCII code number. + (example) StrAsc("Ascii") + return value is 65(0x41). + + -Fixes StrLen(,StrCmp(,StrSrc( bug that a closed parenthesis was splashedmore. + (example) (10-StrLen("ABC"))*2 + This was interpreted as (10-StrLen("ABC")*2 before. + + -Fixed text to g1m misconversion that an alphanumeric characters name beginning with under bar into built-in command name. + + -Fixed bug to cause system error by display of the extended font character. + + -Added high-res timer 1/32768s for ticks command.(only SH4A) + (example) Ticks% + (example) Ticks%Wait + + -Added high-res1/32768s timer by a time measurement function of the program running.(by setup)(only SH4A) + +v1.70beta 2018.2.10 + -Added commands for [AC] break enable/disable. + (example) '#Break0 // disable [AC] + (example) '#Break1 // enable [AC] ( default ) + + -Added [SHIFT]+[3] to input GetKey Code in editor. + + -Fixed invalid value for Prog~Return value. + + -Added the setting that it prevented setting of the setup from being changed it by a program. + to set it whether you return setting compatible with genuine CasioBasic after a program in SetupRecover. + The setting to be affected following +   Angle +   DrawType +   Coord +   Grid +   Axes +   Label +   Derivative +  Plot/LineColor +   Sketch Line +  Display Fix/Sci/Norm/Eng + + Even if the extended setting for C.Basic is changed by a program, return to original setting after run. + + -Fixed Menu command bug that character length is short in multibyte character. + + -To no changing the internal RTC by the substitution to the timer variable of Ticks(%). + (example) 0->Ticks + resets only the timer variable of C.Basic to 0. + The change of the RTC becomes only DATE/TIME command. + + -To rename a command name of AliasVar in Alias. Alias function became able to use Lbl. + (example) Alias A=_ABCD + (example) Alias Mat A=_ABCD + (example) Alias Lbl A=_ABCD + + -Added the extended variable by an alphanumeric characters name beginning with under bar (to 8 characters) is usable. + (example) 4.56=_ABCD + (example) 123=_X123 + (example) _ABCD+_X123 + result of 127.56 + + -Changed specifications that to suspend time measurement during GetKey1/2 running. + you can choose stop or reset&restart by setup, + To use it as a command, + (format) '#GetKeyC + It is the stop of the measurement of the default, a continuation mode. + (format) '#GetKeyR + Timekeeping restarts reset & after GetKey1/2 practice. + + -Added Mat reinitialized function. + (it is necessary to secure the greatest index to use at first.) + (format) {12,20}->Dim Dim Mat A + (example) [[1,2,3]][4,5,6]]->Mat A + {2,2}->Dim Dim Mat A + The result of Mat A is [[1,2][3,4]] + + -Fixed reversed to RowSize( / ColSize(. + + -Fixed StrSrc( command that one result slipped off when set search start position. + + -Added external font. (Please check the manual page for details) + + +v1.65beta 2018.1.15 + -Fixed List Ans// not display bugs in Mat editor. + -Fixed Norm command bug. + +v1.65beta 2018.1.10 + -Fixed can't input "StrLwr(" in standard mode method. + +v1.65beta 2018.1.6 + -Fixed Replace bugs for Editor. + +v1.65beta 2017.12.14 + -Fixed the initialization bug in the case of continuation space for string to Mat. + (example) [" ","12345"]->Mat A + + -Added function that change the selection area to the comment in CLIP&PASTE. + [SHIFT]-[8](CLIP) [F5]or[F6] + + -Added new founction of BmpLoad( that to be able to load data directly on VRAM. + (example) BmpLoad("TEST"),20,10 + load TEST.bmp at coordinate (20,10). + + -Added new founction of BmpSave that to be able to save data directly from VRAM. + (example) BmpSave "TEST",10,20,100,50 + save TEST.bmp at coordinate (10,20)-(100,50) + + -added FkeyMeu( option. + (usage) PopUpWin(0) + Only screen evacuation does not perform PopUp. + (usage) PopUpWin(9) + Only as for the return of the screen which evacuated. + + -Added option "(" for List or Mat@ + (example) 1->A + (example) List (A+1) + = List 2 + (example) Mat @(A+1) + = Mat 2 = Mat B + +v1.65beta 2017.12.10 + -mini editor performance up. + -error check the control variable of For - Next strong. + -Fixed cursor moving error for CLIP&PASTE. + + -added PopUpWin( option. and it became the command with a return value.. + (usage) PopUpWin( n ) + (usage) PopUpWin( 11, "1st message string"[,"2nd message string"] ) + return value is always 1. + and return to a previous screen after the command. + (usage) PopUpWin( 10, "message string"[,"2nd message string"] ) + when yes that return value is 1. + when no that return value is 0. + and return to a previous screen after the command. + + -added FkeyMeu( option. + (example) FkeyMenu(1,42) + display system icon (white "edit") at F1 position. + + -to controled [EXIT[F1}[EXE] key repeat. + + -push left and right key moved top or botom in setup mode. + + -Fixed not compatible for comment. + + -Fixed extended ? command bugs. + + +v1.64beta 2017.11.19 + -Fixed display command including multibyte character. + -Fixed List->Mat( bugs. + +v1.64beta 2017.10.29 + -Fixed CATALOG key not worked. + +v1.64beta 2017.10.20 + -Added character limit of ? command optional function . + (usage) ?([x][,y][,width][,"SpaceChar"][,limit][,R]) + (example) "A="?()->A + dispay "A=" then wait for input A value. + (example) "A="?(,,,,,R)->A + dispay "A=" then wait for input A value reversed display. + (example) "A="?(,,8,,,R)->A + dispay "A=" then wait for input A value only 8 digits reversed display. + (example) ?(3,4,5,">",5)A + display the value of A then wait for input A value at(X=3,Y=4) only 5 digits and 5 character the blank is made up in ">". + (example) ?(3,4,5,,5,R)A + display the value of A then wait for input A value at(X=3,Y=4) only 5 digits and 5 character reversed display. + + +v1.64beta 2017.10.14 + -Fixed not worked bugs at [EXE] after search in editor. + -Fixed stoped skip bugs at long logical line in editor. + +v1.64beta 2017.10.9 + -To changed logical line number from physical line number in editor. + + -Added Mat 1 or Mat @A syntax. + and to changed correspondence of List 1~26 and small letter Mat. + Mat a~z is List 27~52 + Mat a~z is not List 1~26 + List 1~26 is independent List + + Mat 1 instead of Mat A ( not same as List 1 ) + Mat 2 instead of Mat B ( not same as List 2 ) + Mat 3 instead of Mat C ( not same as List 3 ) + Mat 26 instead of Mat Z ( not same as List 26 ) + Mat 27 instead of Mat a ( same as List 27 ) + Mat 28 instead of Mat b ( same as List 28 ) + Mat 29 instead of Mat c ( same as List 29 ) + Mat 52 instead of Mat z ( same as List 52 ) + Mat 100 = List 100 + Mat 1000 = List 1000 + + (example) Mat 1 + Mat 2 + (example) 3->A + Mat @A = Mat C + + to input "@" by [OPTN][F5] + The abbreviated form of Mat @A is @A. + (example) 2->A + {5,3}->Dim @A + 123->@A[1] + + But the @A1 notation is not usable. + + + -Added set by seed for Ran#. + (usage) Ran# #seed(integer number) + (example) Ran# #12345 + (example) Ran# #A + + -Added ZoomRotate in ML command. ( based on Planet-Casio Ninestars expansion ) + (usage) _BmpZoomRotate &Mat , x, y, width, height [,zoomwidth][,zoomheight][,angle(degree)][,color][,chance] + (example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 + (example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + + -Added specify the range at _Hscrool and _Vscroll in ML command. ( based on Planet-Casio Ninestars expansion ) + (usage) _Hscroll scroll [,x1,y1,x2,y2] + (usage) _Vscroll scroll [,x1,y1,x2,y2] + (example) _Hscroll 1,32,16,47,95 + (example) _Vscroll -1,5,10,100,40 + + +v1.63beta 2017.9.26 + -Fixed not compatible that sub program at end of main program. + -Fixed bug ””string at 7 line. + +v1.63beta 2017.9.4 + -Fixed Multibyte character in the filename bugs in filemode. + +v1.63beta 2017.8.20 + -Added serial communication commands.( not compatible with genuie CasioBasic.) + (usage) Send( data [,baudrate]) + (usage) Recv( data [,baudrate]) + (usage) Send38K data [,bytecount] + (usage) Receive38k data [,bytecount] + (usage) OpenComport38K[,baudrate][,transfermode] + (usage) CloseComport38K + [data]: Variable,Matrices,List + data is necessary to match data type of a transfer source to a transfer destination. + [transfermode]: 0:binary data transfer mode 1:necessary to match data type (default) + When OpenComport38K with [transfermode:0]option, Send38K/Receive38k is binary data transfer. + [baudrate]: 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=115200 baud + default baudrate is 38400 + Send(/Recv( use alone. + Send38K/Receive38k is necessary for OpenComport38K/CloseComport38K. + + (example) Send(A) + (example) Recv(A) + (example) Send(Mat A) + (example) Recv(Mat A) + + (example) OpenComport38K,9,0 + Send38K List 1 + CloseComport38K + (example) OpenComport38K,9,0 + Receive38k List 1 + CloseComport38K + + -Fixed line number display probrem in editor. + + +v1.62beta 2017.8.14 + -Fixed illegal date/time display in Setup. + + -Added setting that force return to file mode at [AC]break. + + -Added history in editor. + To Press [MENU], You can select previous 32 commands. + and Press [LEFT][RIGHT], display it in order with much frequency. + + -Added Matrix Dot Edit mode. ( Press [OPTN] key at Matrix editor screen.) + -Added Matrix Data copy to Clipboard.(C.Basic format)( Press [SHIFT]+[8](CLIP) key at Matrix editor screen.) + and Paste from Clipboard.( Press [SHIFT]+[9](CLIP) key at Matrix editor screen.) + You can edit dot data in the mat screen, and then copy the code into your programs. + + -Added Bmp file support.(only 1 bit mono type) + (example) BmpSave "TEST",Mat A + save "TEST.bmp" at current folder. + (example) BmpLoad("TEST")->Mat A + load bmp data to Mat A + + -Added DrawMat command that drawing Mat data. + (usage) DrawMat Mat A[px,py], x, y, width, height [,zoomwidth][,zoomheight][,color][,chance] + (example) DrawMat Mat A, 0, 0, 128, 64 + (example) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + + -Added Capt file load and save. + (example) StoCapt 20 + save as "Capt" folder + (example) RclCapt 20 + Load from current folder or "Capt" folder. + + -reduce Pict file size.(2KB->1KB) + + -Added StrRepl( command. + (usage) StrRepl(String1,Find,ReplaceWith,StartAtCharPos) + (example) StrRepl("Hello World","World","Earth") -> "Hello Earth" + (example) StrRepl("abcabc","ab","ff",3) = "abcffc" + (example) StrRepl("abcabc","ab","ff") = "ffcffc" + + -Disable [MENU]key at IRQ is enable.(flashing cursor etc) + + +v1.61beta 2017.8.2 + -Added a setting to more Pict & List at using hidden RAM. + You can use Pict(up to 99) & List(up to 1040). + + -Added "List" & "Mat" replace font.(Reverse or Thick by setup) + + -Added _Circle option. + (usage) _Circle x,y,radius,color[,chance][,width][,start_angle][,end_angle][,vertex] + (example) _Circle 64,32,20,4,0.5,3 + 3x3dot 50% circle + (example) _Circle 64,32,20,1,,3,0,90 + to draw 3x3dot 1/4 circle + (example) _Circle 64,32,20,1,,,0,360,5 + to draw pentagon ( to have an effect on setting of Draw Type ) + (example) _Circle 64,32,20,1,,,20,380,5 + to draw shifted pentagon + + -Added _Test option in ML command. + (support command) _Point _Line _Rectangle _Circle _Polygon + to use function to put "_Test" before support command. + (example) _Test_Rectangle 0,0,127,63 + to return the amount of pixels that are on in that area (0,0)-(127,63) + (example) _Test_Circle 62,32,20 + (example) _Test_Point 10,10,5 + (example) _Test_Line 10,10,100,30 + + -Added Zoom & Rotate in ML command. ( based on Planet-Casio Ninestars expansion ) + (usage) _BmpZoom &Mat , x, y, width, height [,zoomwidth][,zoomheight][,color][,chance] + (usage) _BmpRotate &Mat , x, y, width, height [,angle(degree)][,color][,chance] + (example) _BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 + (example) _BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 + (example) _BmpRotate &Mat A, 0, 0, 20, 10, 45 + + -Added Getkey "M" option that puts multiple pressed keys into a list + (example) GetkeyM->List 1 + press EXE and F1 will result in {79,31} + + -Added ListCmp( command that compare List to List or List to value. + (examle) ListCmp({1,2,3},{1,2,3}) + return value 1 + (examle) ListCmp({1,2,3},{1,3}) + return value 0 + (examle) ListCmp({1,2,3},{1,3,2}) + return value 0 + (examle) ListCmp({1,2,3},2) + return value 1 + (examle) ListCmp({1,2,3},4) + return value 0 + + -SortA(,SortD( command came to be usable in formula expression. + + +v1.60beta 2017.7.26 + -Added StrBase( command + (usage) StrBase(Number string, Current base, Expected base) + Current base, Expected base: 2~64 + Use character { 0-9 A-Z a-z } + (example) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + -Fixed "Graph Y=" Line Style bugs + -Fixed that not work when _PixelTest( is top of line. + + -Added new color (2x2 dot matrix) in MonochromeLib command. + color value: 10 11 12 13 14 (2x2 dot matrix by 1dot width) + color value: 20 21 22 23 24 (2x2 dot matrix) + oo *o *o ** ** + oo oo o* *o ** + (example) _FillCircle 64,32,30,21 + + -Added random color in MonochromeLib command. + (usage) x,y,,,color,chance + (example) _Rectangle 0,0,127,63,0,0,4,0.5 + (example) _Rectangle 0,0,127,63,0,0,4,%50 + would will the whole screen with random pixels, pixels have a 50% chance of being on (0.5) or %50 + (example) _FillCircle #0,0,3,4,0.5 + Makes a circle with the radius 3, the circle is filled with random pixels (on/off) pixels have a 50% chance of being on (0.5) + If the color is 4, you can set the chance + (example) _Rectangle 0,0,127,63,0,0,4,%10 + fills the screen with pixels, the pixels have a 10% chance of being on + + -Added width in _Line command. + (usage) _Line X1,Y1,X2,Y2,Color[,chance][,Width] + (example) _Line 0,0,127,63,1,,10 + + +v1.59beta 2017.7.19 + -Added Replacement in editor. + Replacement character string input is possible when push [F2] after the search strings input. + There are [F2] to replace while confirming it and mode [F4] to all replace without confirming. + -Fixed a bug that when trying to press NEW in while the cursor is on a folder, you can't create a program. + -Fixed a bug that can't input clip strings to search strings. + -Fixed StrInv( bug. + +v1.58beta 2017.7.15 + -Added mini font editor + -Added a setting to disable debug mode. + -To be able to delete folder in file mode [DEL]. + -Fixed a bug that making a new program, while there's nothing there, keep pressing DEL a lot, sometimes a lot of "w" appear. + -Fixed Prog command bug that cannot read from subfolder file. ( enbug 1.00beta5..) + +v1.57beta 2017.7.8 + -Added a setting to disable the header when editing code. + -Added a way to delete multiple characters with: Shift+8 (clip) and then DEL to remove everything inside the selection. + -Added a setting to auto save without a popup. + -Remove the need of "Then" in If-Statements + -Added "Screen" command option to invert screen. "Screen"+"R" + (example) ScreenR + + -Added "Screen" command option to convert from Screen Coordinates to Graph Coordinates. + (usage) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + return value to List Ans{x,y} + (example) Screen#1,1,-6.3,6.3,-3.1,3.1 + result {74,22} + + -Added "Screen" command option to convert from Graph Coordinates to Screen Coordinates. + (usage) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + return value to List Ans{x,y} + (example) Screen%74,22,-6.3,6.3,-3.1,3.1 + result {1,1} + + -Drawing objects with VRAM commands( _Rectangle, _Circle, ...) in Graph Coordinates instead of Screen Coordinates. + add to '#' character option to ViewWindow Coordinates. + support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + (example) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2.1 + + -Added a command to center strings. + (usage) StrCenter("Strings",length[,"SpacingStrings"]) + (example) StrCenter("Test",8) + results in " Test ") + (example) StrCenter("Test",8,"*") + results in "**Test**" + + -Added a command to repeat string StrChar( + (example) StrChar("ABC",5) + results in "ABCABCABCABCABC" + + -Added commands "Hex(" and "Bin(" + (exapmle) Hex(12345)->Str 1 + result in "3039" + (example) Exp("0X"+Str 1)->A + result in 12345 + (exapmle) Bin(12345)->Str 1 + result in "11000000111001" + (example) Exp("0B"+Str 1)->A + result in 12345 + + -Added more than 26 lists (max 52) + + -Added create folders [MK.F] + but,[RN.F] is a future plan. + + + +v1.56beta 2017.6.30 + -Added the setting that no updating screen by setting 0 to the RefrshTime. + You can use it by setup and the command. + (example) RefrshCtrl 2 + RefrshTime 0 + The text and graphics command do not update a screen. + + -Added the TicksWait command that waited by 1/128s ticks. + (The TicksWait command connects both "Ticks" and "Wait" command.) + (concerning this, changed part of key assignment.) + (example) TicksWait 128 + Wait 1 second. + (example) TicksWait -128 + Wait for 1 second from the last TicksWait command run. + When it has been already over 1 second, to the next processing without waiting. + (example) TicksWait -4 + Wait for 4/128 second from the last TicksWait command run. + You can make 32fps of loops just to use one this command in the loop. + + +v1.55beta 2017.6.11 + -Added ? command optional function. + (usage) ?([x][,y][,width][,"SpaceChar"][,R]) + (example) "A="?()->A + dispay "A=" then wait for input A value. + (example) "A="?(,,,,R)->A + dispay "A=" then wait for input A value reversed display. + (example) "A="?(,,8,,R)->A + dispay "A=" then wait for input A value only 8 digits reversed display. + (example) ?(3,4,5,">")A + display the value of A then wait for input A value at(X=3,Y=4) only 5 digits and the blank is made up in ">". + (example) ?(3,4,5,,R)A + display the value of A then wait for input A value at(X=3,Y=4) only 5 digits reversed display. + + -Fixed AxesOn bugs. + +v1.54beta 2017.6.3 + -Fixed the multiplication of the Matrix. ( It always became the integer result ) + -Fixed 2 Plot & Line bugs. + -To stored Pict file in the hidden RAM area. + -To added setting to store at the same time to storage memory by Pict file preservation. + (example) Pict #20 + This prefix(#) is store to storage memory option. + -To displayed the progress bar at the conversion from text file. + +v1.53beta 2017.5.27 + -Fixed StrRight bugs + (example) StrRight("12345",0) + It was right to become the null string, but became "5". + -Fixed acos bugs for list calc. + -Fixed Graph Y=Yn bugs. + -Fixed text conversion bugs when double quotes(") was escaped by character string. + -To be able to use the small letter for The Lbl command. + +v1.52beta 2017.5.16 + -Fixed bugs, When "" double quotation was not closed in Locate and Text command, the following program became handled as character string. + -supported RanNorm#(,RanBin#( + +v1.51beta 2017.5.11 + -To changed the icon of the function keys to the system icon. + -supported GCD(,LCM( + +v1.5beta 2017.5.7 + -supported Standard command input method. + You can select Standard(fx-9860G) method or C.Basic(fx-5800P) method from the setup. + Please refer to Command_List.txt for the command that is supported. + + -supported *Row,*Row+,Row+ + +v1.42beta 2017.4.30 + -Fixed that r and θ were not usable for a Lbl name. + -Fixed Goto bugs that used the same Lbl name by main and a sub program. + -In [?->A]command, Fixed that might freeze when pushed [EXE] by non-input. + -Fixed when a scalar came for List operation later. + (Example) List 1 + 5 -> List 2 + +v1.41beta 2017.4.22 + -added setting not to initialize Mat&List at start of C.Basic at use hidden RAM. (setup setting required) + In that case, when you finish C.Basic and restart after use in other functions or add-in, Mat&List will restored. + (when other add-in does not use hidden RAM) + -Fixed the number key in that not able to input in MENU command. + + +v1.4beta 2017.4.16 + -supported the multiplication of the Matrix. + The multiplication between the Mat sequence that considered Mat to be array is possible by doing it for multiplication between List by using the small letter Mat. + Substance agreed with (List with small letter Mat;) + (example) Mat a * Mat b + Matrix multiplication + (example) List 1 * List 2 + array multiplication + + +v1.31beta 2017.4.15 + -Fixed that gained factors of List one by one. + -Fixed that [not] of the bit operation in the integer mode remained [Not] of the Boolean operation. + -Fixed "Done" indication not having been given at the time of the program end by [Stop] command. + + +v1.3beta 2017.4.10 + -Fixed incompatible that And, Or, Xor became the bit operation not a Boolean operation. + added [and, or, xor, not] to use with BASE mode as a bit operator. + -When "character string" is over in width just 21 characters Fixed incompatibility that it was not started a new line. + -Fixed incompatibility that returned to main menu with [MENU] key during Menu command practice. + -in StrMid command, Fixed malfunction to become the system error when third parameter. + + +v1.2beta 2017.3.17 + -Part of operation of the sequence (line) was enabled by extension of the addition, subtraction, multiplication and division operation on the list. + As for the one which there is which is compatible with a pure line, it is only with the addition and subtraction between lines and a line and scalar operation. + (example) Mat A + Mat B + (example) Mat A * B + Int Mat C + + -Fixed compatibility of BG-None,BG-Pict command. + + -Fixed conversion error of Exp(-) in the conversion from a text source. + (error) Exp(-)9 -> Exp(-)9 + (Ok) Exp(-)9 -> e-9 + + -Fixed Getkey to have returned to main menu with [MENU] key by Getkey1, Getkey2 command. + + +v1.1beta 2017.3.11 Beta 2 + -supported with a list of integer modes function. + -added turn into list indication with [OPTN] key at the time of Mat indication. + and Character string indication & input came to be possible with [VARS] key. + -Fixed #'CBINT ,#'CBDBL was programing it and revised plural malfunction not to function when it was used. + -Fixed a text conversion error of the character string that "Char" was included in. + -When set Pict in the heap area, read it automatically when there was Pict picture file of same No in current directory or Pict folder. + When set it, only the Pict folder of the current drive accesses the S.Mem in Pict. + (example) If there is Pict10.g1m file in current directory or Pict folder, the image is read automatically in the Pict of the heap when accessed it first in Pict10. + When do not exist, it becomes the memory error. + When the image exists, it becomes only heap access from next Pict10 access. + + -added function that confirm the image when push [EXE] with Pict file with the filelist screen. + -Fixed incompatibility that passed the loop when initial value exceeded closing value in For-Next command. + + + 2017.3.5 Beta 1 + -Supported list function. + -following command supported. + List Ans + {1,2,3,4,5}->List 1 + 10->Dim List 1 + Dim List 1 + Seq( X^2, X, 1, 10, 2) ->List 2 + Augment(List1,List2) ->List3 + Mat>List( Mat A, 2) -> List 1 + List>Mat( List 1, List 2,.). -> List 9 + Fill(3,List1) + Min(List1) + Max(List1) + Mean(List 1) + SortA(List1) + SortB(List1) + Sum List1 + Prod List1 + Sigma( several sets, control variable, initial value, closing price, chopping fine) + + -Ssupported the operation (addition, subtraction, multiplication and division operation and function operation) including the list. + (supported example) A + List 1[B-1] * List 2[C+1] + (not supported example) A + List 1 + A - B * Cos C * List 2 + Sin List 1 + Cos List 2 * log List 3 + + -Supported part of DrawStat command and Graph(X,Y)=( command. + As an allied command, + BG-None, BG-Pict, G-Connect, G-Plot S-Gph1, S-Gph2, S-Gph3, DrawOn, DrawOff, Scatter, xyLine, Square, Cross, the Dot command, + TθMin + TθMax + TθPtch + + -added the delete command of the file. + (example) Delete "TEST.txt" + delete "TEST.txt". + (example) Delete "TEST.txt", 1 + confirm it before deletion. + + -Fixed that (JUMP) jump sub menu [F6] skip down did not work [F1] in the debugging mode. + -Fixed that what the closing value of the control variable exceeded in For-Next command. + -Values of Ans always merged it in the genuie specifications not to update Ans when there was (->) substitution when it followed of the expression. + -in the space of the head of a line, Fixed malfunction to become the error before one of Then of the If-Then command in the case of space. + -Fixed the malfunction that appeared when there was loop structure in a party [AC], and a break did not work for. + (example) While GetKey<>31:WhileEnd + -FixedI the malfunction not to be finished by Stop command in the sub program. + -Changed the default line used for a character string variable from s (small letter) to r of one of an additional variable. + -added the wait function to slow an overall execution speed. set it by setup and [Wait] command. + When set it by setup, all the programs are affected. + (example) Wait 100 + Even SH3 is SH4A, but becomes the speed drop of the same. + Wait 10 is about 1/2 speed. + Wait 100 is about 1/10 speed. + + +------------------------------------------------------------------------------------- +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site and following text is translated by Krtyski. +------------------------------------------------------------------------------------- + +2nd Feb, 2017 +Ver. 1.00 - beta 7 version + + - New Feature [2nd Feb, 2017]: Newly support alias variables by adding AliasVar command. Any character can be used as alias of actual variable character. + Maximum 10 aliases can be used. + Replacable variables are single letter variables shown charactors page by [CHAR]. + Variable name and matrix name are replaced by alias at the same time. + (example) AliasVar A=(alpha) + (alpha)+100->(alpha) + After setting the alias (alpha), (alpha) is available as variable insead of variable A. Real entity of (alpha) is A, so the above expresisono is identical with A+100->A + + + +2nd Feb, 2017 +Ver. 1.00 - beta 6 version + + - New Feature [2nd Feb, 2017]: Newly support variable r and θ as same as genuine Casio Basic. As an extended feature of C.Basic r and θ can be used local variable as well as global. + These new variables r and θ can be used for matrix name, so descrition such as θ1, θ5 (abbreviation of matrix expression) can be used. + - New Feature [2nd Feb, 2017]: Newly support fraction character (operator) "/" (line mode). + + + +29st Jan, 2017 +Ver. 1.00 - beta 5a version + + - Bug Fix [29th Jan, 2017]: In SD version, navigation in File List Page was slow. This is hopefully fixed (may not be...). + + + +26st Jan, 2017 +Ver. 1.00 - beta 5 version (hopefully supporting SD) + + Note) This version is for trial to support SD version of fx-9860G Sries. Develper team do not have SD version of these calcs and did not check with real calc yet. We appreciate any feedback from useres. + + - Spec Change [26th Jan, 2017]: Text file handing spec is changed. Text file could not be saved. When tried to save text file, the file was autoatically converted to g1m file and then saved as g1m file. This spec is now changed, text file can be separately handled from g1m file. + If tou wan to save text file with automatically converted g1m file, set "Force g1m save" on in Setup Page. + With this new spec, you can enjoy C.Basic with only text file. + + - Bug Fix [26th Jan, 2017]: Bugs in copy and renamne of text file is fixed. + - Bug Fix [26th Jan, 2017]: g1m file including a long string in multiple lines within " " failed converting to text file, special charactors could not properly converting to text. This is fixed. + - New Feature [26st Jan, 2017]: When use graphic drawing commands (genuine Casio Basic commands), set "@" right after one of those commands to allow drawing in current VRAM, regardless text or graphic mode. + (example) Locate 2,2,"String" + Text 16,1,"TextString" + The Text command draw in text VRAM, not in graphic mode. + + - Spec Change [26th Jan, 2017]: FkeyMenu(, ReadGraph( and WriteGraph commands draw in current VRAM. It depended on VRAM mode, but is changed. + - New Feature [26st Jan, 2017]: A new key scan command KeyRow( is added. + + returing bits (in binary) + bit6 bit5 bit4 bit3 bit2 bit1 + Row--------------------------------------Row + 09 F1 F2 F3 F4 F5 F6 09 + 08 SHIFT OPTN VARS MENU <- (up) 08 + 07 ALPHA ^2 ^ EXIT (dw) -> 07 + 06 XTT log ln sin cos tan 06 + 05 ab/c F<>D ( ) , -> 05 + 04 7 8 9 DEL 04 + 03 4 5 6 x div 03 + 02 1 2 3 + - 02 + 01 0 . EXP (-) EXE 01 + Row--------------------------------------Row + + (example) KeyRow(9) + When press [F4] and [F6] keys at the same time, bit3 and bit1 come to 1, then return value is 2^3 + 2^1 = 10. + + - New Feature [26th Jan, 2017]: A new command Menu (same as genuine Casio Basic) is added. + + +25st Jan, 2017 +Ver. 1.00 - beta 3 version (hopefully supporting SD) + + Note) This version is for trial to support SD version of fx-9860G Sries. Develper team do not have SD version of these calcs and did not check with real calc yet. We appreciate any feedback from useres. + + - Bug Fix [25th Jan, 2017]: StrLeft did not work. this is fixed. + - Bug Fix [25th Jan, 2017]: An expression ScreenG in manual and sample program was wring. This should be Screen.G (needed a dot). this is fixed. + - Bug Fix [21st Jan, 2017]: When SD capacity is 4GB or more, an indication of memory free was wrong. This is fixed. + - New Feature [20th Jan, 2017]: In SD version calcs, g1m files in SD card can be run and editedable. + + +25th Jan, 2017 +Ver. 1.00 - beta version + + - Bug Fix [25th Jan, 2017]: StrLeft did not work. this is fixed. + - Bug Fix [25th Jan, 2017]: An expression ScreenG in manual and sample program was wring. This should be Screen.G (needed a dot). this is fixed. + - Improveent [19th Jan, 2017]: When font charactor is drawn by Text comamnd, top 1 pixel line was cleared. This is not compatible with genuine Casio Basic because Casio Basic uses 6 dots height for font, but C.Basic used 7 dots heighet for font (due to specification of PrintMini() function of Casio SDK). This is improved to be compatible with genuine Casio Basic. + - Bug Fix [18th Jan, 2017]: _Vertical was enbuged. this is fixed. + - Bug Fix [18th Jan, 2017]: In fx-9860GII OS2.09, system error may occur at starting of program. This is fixed. + - Bug Fix [17th Jan, 2017]: Small letter matrix abbreviation (a[1], a2, etc) cannot be used. This is fixed. + - Improvement [17th Jan, 2017]: Uasage of String variable Str is extended. When start index (of charactor array) is 0 (zero), an expression "Str 0" is now available. + (example) '#Mat 0 + "String"->Str 0 + - New Feature [17th Jan, 2017]: Add new function MatBase( that returns start index of matrix. + (example) '#Mat 0 + 0->Mat A + MatBase( Mat A ) + this returns 0 (zero). + - Bug Fix [17th Jan, 2017]: Comamnds that convert to text with use of ElemSize(, RowSize( and ColSize( as parameter did not properly work. This is fixed. + - Improvement [17th Jan, 2017]: Intermediate code of DotPut( and Sprintf( were same as genuine Casio Basic codes. The redundant codes of the extended commands are changed. + DotPut( = DotP 0xF94B -> 0xF74B + Sprintf( = Vct 0xF73E -> 0xF743 + + C.Basic Ver 1.00 automatically corrects the redundancy of the intermediate codes when it reads old program created by older version, so you can properly execute or edit the modified program as usual. + DotTrim( and DotGet( are also automatically treated for the conversion in the same way. + + - New Feature [17th Jan, 2017]: C.Basic supports MonochromeLib "Ultra Fast Graphic Library for fx-9860G Series". See MonochromeLib Web Site for details. Following commands are available; + _ClrVram + _ClrScreen + _DispVram + _Pixel + _Point + _PixelTest( + _Line + _Horizontal + _Vertical + _Rectangle + _Polygon + _FillPolygon + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + _Hscroll + _Vscroll + _Bmp + _Bmp8 + _Bmp16 + + This ML commans access hardware indepententy from Casio Basic commands and are totally deferent command system. + These comamnds operate current VRAM, so VRAM data should be transferred to LDC (LCD refreshing) is required in oorder to display the drawing result by use of PutoDispDD or other equivalent commands. + See manual (this will be prepared in English shortly) to use the ML commands. Some simple sample programs are included in ML_sample folder. + + +11th Jan, 2017 +Ver. 0.99v - alpha version + + - New Feature [11th Jan, 2017]: When actual matrix substance for A0 ~ A9 allocated and also try accessing to A0 ~ A9, the matrix substance is automatically allocated. + (example) A1+123→B5 + Since Mat A and Mat B are not alocated yet at timing of access to the variables A1 and B1, followings are automatically carried out + 9→Dim A + 9→Dim B + then A1 ~ A9 and B1 ~ B9 come to be ready to use. + + (example) + '#Mat 0 + A1+123→B5 + Since Mat A and Mat B are not alocated yet at timing of access to the variables A1 and B5, + 10→Dim A + 10→Dim B + are automatically carried out and then A0~A9 and B0~B9 come to be ready to use. + + (example) + '#Mat 0 + 2→Dim B + A1+123→B5 + since Mat A is not allocated and size of Mat B is allocated, + 10→Dim A + are automatically carried out but size of Mat B is smaller than Mat A, so accessing to B5 gives Error. Then A0~A9 and B-~B5 come to be ready to use. + + - New Feature [9th Jan, 2017]: New feature to access to matrix by suffix 0 (zero) is added with a condition. Suffix 0 can be used for only matrix which is set to use 0 for first index. You can set the start index as 0 in Set Up page or by matrix initialization by '#Mat 0. + + Matrix Array Variable + A[0,0] A[0] A0 + A[1,0] A[1] A1 + A[2,0] A[2] A2 + A[3,0] A[3] A3 + A[4,0] A[4] A4 + A[5,0] A[5] A5 + A[6,0] A[6] A6 + A[7,0] A[7] A7 + A[8,0] A[8] A8 + A[9,0] A[9] A9 + + (example) + '#Mat 0 + 10→Dim A + 10→A1 + 20→A2 + A1+A2 + + - New Feature [8th Jan, 2017]: New feature to access to matrix is added. In order to use a matrix as an array, we can use A[0] instead of A[0,1]. Now we can use A0 instead of A[0,1] as a new feature. + Matrix Array Variable + A[1,1] A[1] A1 + A[2,1] A[2] A2 + A[3,1] A[3] A3 + A[4,1] A[4] A4 + A[5,1] A[5] A5 + A[6,1] A[6] A6 + A[7,1] A[7] A7 + A[8,1] A[8] A8 + A[9,1] A[9] A9 + + (example) + '#Mat 1 + 10→Dim A + 10→A1 + 20→A2 + A1+A2 + + +7th Jan, 2017 +Ver. 0.99u - alpha version + - Bug Fix [7th Jan, 2017]: When save Text file (*.txt), the file is automatically converted to g1m file, but the saved & converted file name still had ".txt". This is fixed. In C.Basic texr file cannot be saved as text file. + - New Feature [7th Jan, 2017]: In Edit Screen, Command List window pop up by pressing [OPTN], [VARS] or [SHIFT][VARS] (PRGM). The Command List window accept cursor key [←] or [→] to move betoween command groups. + + +1st Jan, 2017 +Ver. 0.99t - alpha version + - Bug Fix [1st Jan, 2017]: Calculation of day of the week (using Zeller's congruence) was fixed. + - New Feature [31st Dec, 2016]: DATE / TIME can be updated in Setup Page. + - New Feature [26th Dec, 2016]: Add DATE and TIME commands which contains read out date and time from RTC chip of fx-9860G / fx-9860GII. + The DATE and TIME can be used as variable of string type. + (example) "2016/12/26"→DATE + (example) DATE + This command displays + 2016/12/26 MON + The day of the week is automatically calculated. + (example) "23:59:59"→TIME + (example) TIME + This command displays + 23:59:59 + + - New Feature [26th Dec, 2016]: In Editor Screen, Comamnd List Page comes by pressing [F3] key. In the Command List Page you can jump to deferent command groups by cursor key [←] and [→] + STD: Basic Command group + GR: Graphics command group + FN: Function group + STR: String command group + EX: Extended comamnd group + - Improvment [26th Dec, 2016]: Buffer size for string process is increased from 128 bytes to 256 bytes. + - Improvment [26th Dec, 2016]: Internal buffer size used for convertion to text file is increase by factor of 1.5 to 2. + - Improvment [26th Dec, 2016]: Editable program size was limited to about 32 KB. This is increased to maximum 62 KB. + + + +15th Dec, 2016 +Ver. 0.99s - alpha version + + Caution: Some source file created in Ver0.99r or earlier may have problem in Ver0.99s due to bug fix, but this problem can be solved by proper procedure. ⇒ see more for details + - Bug Fix [15th Dec, 2016]: In Integer Mode, Sprintf did not accept display of real number. This bug is fixed. + (example) Sprintf("A=%3.2f",#12.345) + - Spec Change [14th Dec, 2016]: Evaluation of Real Number expression by prefix # in Sprintf, Locate and Text is changed. In Integer Mode variables are still in integer. + Before the change: The evaluation of expression are done in real number, then integer variable requires to add %. + After the change: The evaluation of expression is done in real number but variables are treated as integer then % is not required to be added. + - Bug Fix [14th Dec, 2016]: When "Save File Nmae?" pops up by [EXIT] key after editing of your source, back groud is irrelevant to the edited source. This bug is fixed. + - Bug Fix [13th Dec, 2016]: Prefix # in Real Number Mode did not work, then fixed. + (example) #123.56+100 + - New command [13th Dec, 2016]: Disp + (example) Disp A + Disp display as same as (disps) does, but does not halt the program. + - Bug Fix [13th Dec, 2016]: An intermediate code of "RefreshCtrl" was wrong, then fixed. + RefreshCtrl = DotG : 0xF7F9 -> 0xF7F8 + - Bug Fix [13th Dec, 2016]: An intermediate code of "DotTrim(" and "DotGet(" was wrong, used same code of "Dot" and "DotG" in genuin Casio Basic. Then changed the code of "DotTrim(" and "DotGet(", fixed. + DotGet( = DotG : 0xF73F -> 0xF73E + DotTrim( = Dot : 0xF74F -> 0xF73D + + + +24th Jul, 2016 +Ver. 0.99r - alpha version + + - Improvement [24th Jul, 2016]: When hidden RAM area is run out, new area can be secured from heal area. + - Bug Fix [21st Jul, 2016]: When hiden RAM is set to use and matrix cannot be allocated, a recovery process for this case was wrong, then fixed. + - Improvement [20th Jul, 2016]: Hidden RAM feature is implemented and this can be allocated for program and matrix. + Memory size allocated for program and matrix is totally 265KB. + File List buffer is fixed in heap area. + - Improvement [20th Jul, 2016]: Free area of storage memory and number of files are displayed in top of File List. + The free area of storage memory is decreasing as saving program, doing copy or remane of files, so optimization of memory is required when the free area is getting less (good indicator for a timing of memory optomization). + - Bug Fox [20th Jul, 2016]: ClrMat could not entirely delete a matrix, fixed. + - Bug Fix [20th Jul, 206]: Function "Int" was mixed up with "Intg", so "Int" was fied and "Intg" was added. \ No newline at end of file diff --git a/doc-fx/Change_J.txt b/doc-fx/Change_J.txt new file mode 100644 index 0000000..2d16d86 --- /dev/null +++ b/doc-fx/Change_J.txt @@ -0,0 +1,3417 @@ +=============================================================================== + +AhCŁ@Casio Basic Interpreter (& Compiler) ver 2.x x[^ + +copyright(c)2015-2023 by sentaro21 +e-mail sentaro21@pm.matrix.jp + +=============================================================================== +XV +=============================================================================== +v2.47@2023.12,10- x[^ŁiC^v^̂݁j + (build02) 2023.12.11 + EC.BasicR}hpJ^O@\qXg[N]EXIT]ŃJ^Oɖ߂ȂsC܂B + EC̃vOLoad(R}hgꍇAtH_̃t@CɃANZXłȂsC܂B + Et@C\̔]J[\ʒuĂ̂C܂BiFXł̂݁j + + (build01) 2023.12.10 + EC.BasicR}hpJ^O@\lj܂B([Shift]+[5]ŋN܂) + Et@C[hƕϐ\̃~jtHg\ɑΉ܂BiFXŁAGfB^̃tHgTCYύXƋʂłj + EHR}h̃~jtHg\ɑΉ܂BiFXŁj + ij?([@][x][,y][,width][,"󔒃LN^"][,͌][,R]) + ij?(@30,40,5,">",5)A + @@݂VRAM̃sNZW(X=30,Y=40)̈ʒuA̒l~jtHgŕ\ē͑҂ɂȂ܂B󔒂">"Ŗ߂܂B + + EΉ̃R}hiR[h0x7FxxjŃt[YsC܂B + EG[\ύX܂B"Missing WhileEnd" and "Missing Switch" iErrorCode_List.txtQƂĂj + EGIIfȊỎBRAM̏@\𖳌ɂ܂B + EBeepR}hACL[Œfł悤ɂ܂B + EsƃXg̏RGB()HSV()HSL()R}hŏɂꍇɃG[ɂȂĂsC܂Bi1.45GoOj + ij{RGB(255,0,255),123,456} + ELoad(R}h4096oCg𒴂t@C4096oCgǂݍ߂ȂsC܂B(CGł̂݁j + + ELocateR}hText̕`wʂŋLq邱ƂŐwł悤ɂȂ܂B + i1jLocate x,y,Value/Strings[,N/O/R/V] + i2jLocate x,y,Value/Strings[,(`w)] + @N:0 'normal + @O:1 'or + @R:2 'reverse + @V:3 'reverse or + ijLocate 2,3,"ABC",(2) + @@@Locate 2,3,"ABC",(R) ' R=2 + @ǂ + @Locate 2,3,"ABC",R + @ƓłB + + EFkeyMenu̕`wʂŋLq邱ƂŐwł悤ɂȂ܂B + i1jFKeyMenu( n[`m], ""/ACRԍ [,C/M/N/R/I/S/U/L [,ACRF [,ACRwiF]]] ) + i2jFKeyMenu( n[`m], ""/ACRԍ [,(`w) [,ACRF [,ACRwiF]]] ) + @{`wɂ鐔li0`4j + @@C:( 0)܂B + @@N:( 1)m[}ACRBiȗj + @@R:( 2)EACR + @@I:( 3)lpACR + @@S:( 4)̂鍕ACR + @ȉ̏C͊{`wlɑĎw肵܂B + @@U:( 16)1hbg㑤ɕ\B + @@L:( 32)\͈͂E2hbgL܂B + @@M:( 64)}XN܂B + @@m:(128)g}XN܂B(FXł̂݁j + + ijFKeyMenu (1, "string",NULM) + FKeyMenu (1, "string",(1+16+32+64)) +@ @@L2‚͓ʂɂȂ܂B + + +v2.46@2023.10,23- x[^ŁiC^v^̂݁j + (build03) 2023.10.26 + EĈCɓ@\ɂđ啶ƏȂt@C̕sC܂B + ETicksWait̃JEg1̂C܂B + iCOjTicksWait 4 @TicksWait 5@ƓłB + E\[Xt@C̕sŃrhłȂsC܂B + EtH_ʒuɕAłȂȂĂsC܂B(build01 GoOj + + (build02) 2023.10.25 + Et@CXgɂătH_ɃJ[\ƂɐVKt@C쐬ꍇɃJgtH_ɍ쐬悤ɂ܂B + Et@C㏑ۑꍇAȑÕt@CTCY傫ꍇ͏㏑ۑ悤ɏݕ@ύX܂B(GIIIf̂݁B) + @it@CTCYȂꍇ͈ȑÕt@CĂVKۑ܂Bj + + (build01) 2023.10.23 + EN[CBasic]tH_쐬ftHg̕ۑtH_Ƃ悤ɂ܂B(GIIIf̂݁B) + E[hFor`Next̐ϐ̏Il݊łȂ̂C܂B + E̒𐧌ꍇɂȏ̒̑̕ɎssC܂B + @i-1ői[ɂȂ܂Bj + EPol()Rect()֐ɂāAMatBase0̏ꍇListAns[0]ListAns[1]ɓԂȂsC܂B + EENG\̊ۂߏC܂B + ERefRref֐gpƌł܂sC܂B + EC.BasicR}h͂œ͂łȂR}hljC܂B + + + +v2.45@2020.2.10- x[^ŁiC^v^̂݁j + (build20) 2020.5.21 + EtXŃ}jȀCLephenixnoirlɂĂ܂B + EIf~ElseIfԂ̔zLbV̕sC܂B + ESyetem()R}hOS̃}Ci[o[W擾ł悤ɂȂ܂B + ijSystem(-22) + + (build19) 2020.5.20 + ETry`TryEndR}hBreakŒEoꍇAȌA[AC]fAcBreakȂȂsC܂B + EReadGraph/WriteGraph/DotGet/DotPutR}h݂VRAMɍp悤ɎdlύX܂B + E`ΏVRAMޔĂeLXgVRAM̈ƃOtBbNXVRAM̈ɕύXScreen.VR}hlj܂B + ijScreen.V + @ftHgVRAMɖ߂܂B + ijScreen.VT + @eLXgVRAM̑ޔ̈`Ώۂɂ܂B + ijScreen.VG + @OtBbNXVRAM̑ޔ̈`Ώۂɂ܂B + ESystem(-1)ł̋@픻fx-9860GIIIlj܂B + @0:fx-9860G + 1:fx-9860G Slim + 2:fx-9860GII(SH3) + 3:fx-9860GII(SH4A) + 4:Graph35+EII(SH4A) + 5:fx-9860GIII(SH4A) + 6:fx-9750GIII(SH4A) + E₷(Krtyski)l쐬System()R}hTvvOifx-9750GIIIΉŁjAbvf[g܂B(System_sampletH_) + + (build18) 2020.4.28 + EGfB^̃J[\ʒuLvOsIɃZbgĂsC܂B(build12ł̃GoOłBj + Es\C܂B + EZbgEAbvʼnBOn/Off͊mF|bvAbvo悤ɂ܂B + + (build17) 2020.4.24 + ECPLX̍s\ُɒx̂CA3񂩂4\ɕύX܂B + EvOJnɁH͂ŃAt@[hɂȂĂsC܂Bibuild16ł̃GoOłB) + EB̏C܂B + + (build16) 2020.4.16 + ECfg@\łSwitch`Case`SwitchEnd̎`P܂B + EElseIfR}h̒ɃRgꍇÃR}hIf̏ꍇɏIĂsC܂B + Es̏ɕ񂩂當ւ̑őȂsďC܂B + iRs[Ȃj + ClrMat + @@"ABC"->Str 1 + @@Str 1->Str 3 + ESeqR}hōݒl̏ꍇɏIlɓBȂƂsC܂B + ECPLX[hȊOŋgƖ[vɂȂsC܂B(build15ł̃GoOłBj + EȗZ̕sC܂B(build15ł̃GoOłBj + ESystem(-1)ł̋@픻fx-9860GIIIlj܂B + @0:fx-9860G + 1:fx-9860G Slim + 2:fx-9860GII(SH3) + 3:fx-9860GII(SH4A) + 4:Graph35+EII(SH4A) + 5:fx-9860GIII(SH4A) + E₷(Krtyski)l쐬System()R}hTvvOifx-9860GIIIΉŁjAbvf[g܂B(System_sampletH_) + + (build16) 2020.4. + EElseIfR}h̒ɃRgꍇÃR}hIf̏ꍇɏIĂsC܂B + ECPLX[hȊOŋgƖ[vɂȂsC܂B(build15ł̃GoOłBj + EGfB^ʼnpqXg[ɎcsC܂B + + (build15.) 2020.3.22 + ECfbNXJnl0̏ꍇɗvf64𒴂List̏oȂsC܂B + Et@C[hŌ񂪋̏ꍇ[F4]COPYɂȂsC܂B + + (build15) 2020.3.20 + EColonl̃T|[gɂ֐̎Jn܂B + EftHg̃CfbNXJnl0̏ꍇList̎mۂoȂsC܂B + Et@NV[(Fn)Store/Recall/SEESEEEditɕύX܂B + + (build14) 2020.3.14 + Et@NV[(Fn)Store/Recall/SEESEE[F5](Edit)ljҏW”\ɂȂ܂B + Et@NV[(Fn)Store/Recall/SEE̕sC܂B + + (build13) 2020.3.10 + Et@NV[(Fn)уOt[(Y)ftHgŐ]ƂA + @֐ѕɑꍇ͕Ƃĕ]悤ɕύX܂B + @i]j + @@fn1->A + @@fn1(123)->A + @@Locate fn1 + @@Locate fn1(123) + @i]j + @@fn2->Str 2 + @@"123"+fn1->Str 1 + @@Locate "123"+fn1 + @@StrJoin(fn1,Str 1) + + E񂩂當ւ̑őȂsC܂B + ifn3ɃRs[Ȃj + @@ClrMat + @@"123"->fn1 + @@"ABC"->Str 1 + @@Str 1->fn3 + Et@NV[(Fn)Store/Recall/SEElj܂B + @iGfB^ł̓Nbv{[h̓eXgAΏۂłB1s͂ł͂PsŜXgAΏۂɂȂ܂Bj + EF_Start/F_End/F_pitchƗϐɕύX܂B + EHR}hŕ񂪕\ꍇɃAXL[R[hɃfR[hȂ悤ɏC܂B + + (build12.) 2020.3.4 + EGraphYfn̊mېƕ̒StrϐƓɕύX܂B + EGraphY̊i[dl6oCg̃vtBbNXtɕύX܂B + isւ̒ANZXȊO͈ȑOƕύX܂Bj + + (build12) 2020.3.2 + EGfB^Ńt@C[h̐ؑւŃt@CXgXVȂsC܂B + ESystem()R}hŃCɕۑC.Basic̃VXet@C擾ł悤ɂȂ܂B + @iCfbNXJnl0ŌŒłBj + ijSystem(10000,1) + @@CBASIC/Cbasic̓eListAnsɎ擾܂B + ijSystem(10000,2) + @@CBASIC/Cbasic2̓eListAnsɎ擾܂B + E₷(Krtyski)l쐬System()R}hTvvO𓯍܂B(System_sampletH_) + + (build11) 2020.3.1 + EScreen#AScreen%AsƃG[ɂȂsC܂B + EScreen#AScreen%ListAnsɓ]ꍇ̕sC܂B + ijScreen#0,0List Ans + Et@C[ȟ@\P܂B + @At@xbgL[ƌJ[hɂȂ܂B + @ł͍EړAʏ̓͂”\łB + @ɂ[EXIT]ĂB + @J[\㉺A[EXE] [F1](EXE) [F2](EDIT) [F3](NEW)L[͌‚邱Ɩsł܂B + + (build10) 2020.2.28 + Et@C[hŃAt@xbgL[ɂ_CNgI[SHIFT]A[ALPHA]A␔w肪o悤ɂȂ܂B + @[F4](A<>a):啶؂ւłB + @[F5](CHAR) + @[F5]():tH_/t@CT[`؂ւ܂B + @[DEL]:ꕶ߂܂B + @[AC]:S܂B + @[EXIT]:ɖ߂܂B + @[X^2]:` + @[^]:' or ^ + @[(-)]:@ + + (build09) 2020.2.26 + Et@C[hŃAt@xbgL[ɂ_CNgIɂQȏ̎w肪o悤ɂȂ܂B + @[DEL]:ꕶ߂܂B + @[AC]:S܂B + Et@NV[(Fn)уOt[(Y)Ɉꍇ͕Ƃĕ]悤ɂ܂B + ECfg̕KvȃR}h(If,Else..)̒OʼnsꍇɃCfg]ɕtsC܂B + EhhR}h̎sxxsC܂B + + (build06) 2020.2.21 + EG~[^̔@n[hEFAIDɕύX܂B + + (build03) 2020.2.15 + Ex̌ɃRgł'#ɑIvV̐ݒ肪ύXĂ܂sC܂B + + (build02)@ 2020.2.12 + EVarPtr()R}hōs/List/Vctw肵ꍇA̓YɎ]ĂsC܂B + EFKeyMenuR}hɃJ[ĂG[ɂȂȂ悤ɏC܂B + + (build01)@ 2020.2.10 + ESortA()/SortD()R}hɕz̃\[glj܂B + ijSortA($Mat A) + @Mat A̕񂪏Ƀ\[g܂B + EReadMeA}jAXV܂B + Esʂ53ȍ~̊g̈̈ꗗ\T|[g܂B + []:26߂܂B + []:26i݂܂B + + EFkeyMenu(R}hg܂B + ijFKeyMenu( n[`m], ""/ACRԍ [,C/M/N/R/I/S/U/L [,ACRF [,ACRwiF]]] ) + @ "ACRF" ̓ftHgō̐FwłB + @ "ACRwiF" ̓ftHgŔ̐FwłB + @ 3 Ԗڈȍ~̈͏ȗ”\łBȗꍇłh,"͕KvłB + ijFKeyMenu( n[`m], ""/ACRԍ [,C/M/N/R/I/S/U/L [,ACRF [,ACRwiF]]] ) + @ 3Ԗڈȍ~̈͏ȗ”\łBȗꍇłh,"͕KvłB + @3Ԗڂ̃IvV͏słB + @C:܂B + @M:}XN܂B + @m:g}XN܂B + @N:m[}ACRBiȗj + @R:EACR + @I:lpACR + @S:̂鍕ACR + @U:1hbg㑤ɕ\B + @L:\͈͂E2hbgL܂B + + ijFKeyMenu (1, "string" ) + ijFKeyMenu (2`3, "longstring",R) + ijFKeyMenu (4`5, "longstring",I) + + E₷(Krtyski)l & CalcLoverHKl & Colonl쐬FKeyMenu(R}h̃TvvO𓯍܂B(C.Basic_sample\FKeyMenu_sample) + + EGfB^[SHIFT]ƂɕҏW”\󂫃GÃTCYXe[^XGAɕ\悤ɂ܂B + + ESystem()R}hɃG~[^lj܂B + ijSystem(-7) + @@ł0AG~[^ł1Ԃ܂B + + EDBL#[hɂāAꎞ~ƕϐ\ł̋\Ă̂C܂B + Eϐ\INT%,DBL#,CPLXœƗ܂B + +v2.44@2020.1.24 x[^ŁiC^v^̂݁j + (build06) + EXg[W/SDւPictt@C̃Z[uoȂȂĂsC܂B(2.28ł̃GoOj + EftHgŊmۂłStrϐ̐999ɑ₵܂B + + Es̃CfbNXJnl0̏ꍇA'#StrA'#FnŐݒ肵PmۂsC܂B + EZbgAbṽJgtH_̐؂ւC܂B + EFixwŏ܂ތ16ȏɂȂȂ悤ɂ܂B + + E'#StrA'#Fn̈wŐlȊO̐”\ɂȂ܂B + @ij#Str ,N+1,A*10 + + EIsExist(ŃChJ[hŃt@CꍇAԂl̂C܂B + ijIsExist("*.bmp") + @t@C݂ꍇAt@CԂB + @t@C݂ȂꍇA0ԂB + + Eϐ\ʂꕔC܂B + Et@C͎̕ۑIʂC܂B + Es/List/VctI[SHIFT]+[F1][F2][F3]lj܂B + Es͎[ALPHA]+[(-)]""͂łȂsC܂B + Eo[W\LăAbvɑΉĈꕔύX܂B + + +v2.43@2020.1.20 x[^ŁiC^v^̂݁j + EVersionR}hŕԂl242̂܂܂̂ŏC܂B + + 2020.1.11 E[hiXg[W/Cj؂ւ鎞ɓ[hɂ͈ڍsłȂ悤ɏC܂B + EZbgAbv"Force Return"w肵ĂꍇA[SHIFT]+[F6]ŃfobO[hɓȂsC܂B + EgϐւAlias̓G[ɂȂ悤ɂ܂B + + +v2.42@2020.1.6 x[^ŁiC^v^̂݁j + EMLR}hʼnʊOɕ`͈͂ꍇ̕sC܂B + EϕvZG[ɂȂꍇ̏C܂B + EϕvZ̏xL6Ƃʂۂ߂Ȃ悤ɕύX܂B + + +v2.41@2019.12.29 x[^ŁiC^v^̂݁j + Eϕ̉傫ꍇ̌ʂ̕C܂B + EϕvZŕϐXύXsC܂B + + 2019.12.28 x[^ŁiC^v^̂݁j + E"Graph(X,Y)=("R}hTɎListɏZ{ꍇA삵ȂsC܂B + ijGraph(X,Y)=(2*{1T,2T},3*{3T,4T}) + E"ExitDM PopUp"ȈꍇAfobO[h甲čēxsꍇA|bvAbvoȂȂsC܂B + ECfg@\LɂꍇAvO̍ŌɃS~tƂsC܂B + EKEX-Nbhϖ@ɊÂϕ@\lj܂B(UCFacapdẽvO܂Bj + https://community.casiocalc.org/topic/7637-cbasic-international-release/page-14#entry62978 + ij( f(x), , [,e덷]) + @[,e덷] 1ȏ̒l̏ꍇ͗LwłBftHg10ɂȂĂ܂B + ij(2X^2+3X+4,1,5) + ʂ 134.6666667 + ij(sin X*cos X,0,1) + ʂ 0.354036091 + ij(cos ln X,0,1) + @@@"Not met Accuracy"G[ + ij(cos ln X,0,1,5) + ʂ 0.5 + + +v2.40@2019.11.29 x[^ŁiC^v^̂݁j + ETuvO̓ǂݍݕ@vO̊Jnł͂ȂsɕύX܂B + iProgR}ḧɕϐw肷ꍇłOɋLqĂKv͂܂Bj + EɃGXP[vƉsꍇ̏C܂B + Eɉs܂߂ꍇA"\n"g悤ɂ܂B + EGfB^ŃJ[\ʒuLłőt@C716ɑ₵܂B + EG[bZ[W܂B + + EBeepR}hListƂĎg悤ɂȂ܂B + ijBeep gList,List + ij{1000,2000,3000}->List 5 + @@@{250,500,250}-?List 7 + @@@Beep List 5,List 7 + + +v2.39@2019.11.29 x[^ŁiC^v^̂݁j + EHelp@\LȂƂɃfobO[h[EXIT]ʼnȂsC܂B + EDrawGraphR}hListɂꍇ̕sC܂B + EG[bZ[W"Withot""w/o"ɕύX܂B + + +v2.38@2019.11.21 x[^ŁiC^v^̂݁j + Et@CꗗŃsIhh.h܂܂t@C̕яC܂B + EGfB^ŏ㕔̃Xe[^Xo[\Ă鎞6sڂPasteꍇɉʂɂsC܂B + EGfB^ŋLꂽJ[\ʒut@CI[ɂꍇɓ͂łȂȂsC܂B + EXg[Wɒuꂽ2KBTCYPict̓ǂݍ݂P܂B + + +v2.37@2019.11.19 x[^ŁiC^v^̂݁j + ECւStoPictŃt@CTCY2080oCgi2068oCgjɂȂĂsC܂B + EStoPict̕ۑ悪Xg[W[h̏ꍇA삵ȂȂĂsC܂B + ECfgŕۑɋ󔒂-Saveݒ莞ɃRg̋󔒂폜ĂsC܂B + EListɕtꂽO8̏ꍇAϐւ̃Rs[ňُɂȂ邱ƂsC܂B + + +v2.36@2019.11.14 x[^ŁiC^v^̂݁j + EProgR}h̃TuvOɕϐg悤ɂȂ܂B + iϐw肷ꍇ͂̃TuvO̓CvOŎgp邩LqĂKv܂Bj + ij + @"Test"->Str 1 + @Prog Str 1 + @Stop + @prog "Test" // sȂKv + + 2019.11.13 EGfB^ł̃~jtHg̃J[\\P܂B + + +v2.35@2019.11.12 x[^ŁiC^v^̂݁j + EsGfB^Clip&Pastesœ삵ȂȂĂsC܂Bi1.88ł̃GoOj + Ew肵SaveR}hŃt@CTCY+1ɂȂsC܂B + ijLoad "test.txt"->Str 1 + @@ Save("test.txt"),Str 1 + "test.txt"̃t@CTCYPoCgĂ܂B + + +v2.34@2019.11.10 x[^ŁiC^v^̂݁j + EGfB^ŕҏWAt@CXgɖ߂čēxt@CJꍇAJ[\ʒuӏɗ悤ɂ܂B + @iő7t@C܂őΉ܂Bj + EHelp@\L̏ꍇAvOfɃTu[`ɂȂĂ܂sC܂B + + +v2.33@2019.11.3 x[^ŁiC^v^̂݁j + EWtHg̃GfB^̃Nbv[h[SHIFT]ŃLZꍇɃJ[\ʒuȂsC܂B + E[SHIFT]+[F3]+[F5]16i_v[h[F2]/[F3]Ɍł܂sC܂B + + +v2.32@2019.10.27 x[^ŁiC^v^̂݁j + EHelp@\ɂ1oCgR}h\ȂsC܂Bi2.20ł̃GoOłBj + E[SHIFT]+[ALPHA]bN[EXE]ssC܂B + E[ALPHA]+[(-)]Ł͂ł悤ɂ܂B + + +v2.31@2019.10.17 x[^ŁiC^v^̂݁j + EHR}hMat/List/Vctւ̏͂łȂȂĂsC܂Bi2.29ł̃GoOłBj + + 2019.10.16 Es/List/Vct̂̏JԂƃsɂȂsC܂B + + 2019.10.15 E[DEL]ɉʊO܂ŃJ[\ړƁAUNDOsɃJ[\ʒu߂ȂsC܂B + E[PASET]UNDOŃvOTCYύXĂȂsC܂B + + 2019.10.13 EGfB^UNDO@\lj܂BDEĽA[ALPHA]+[DEL]ō폜ȌԂɖ߂܂Bi߂̂1Xebv̂݁j + + Es/List/Vct̂̏AnsgȂ悤Ɍ܂B + + +v2.30@2019.10.8 x[^ŁiC^v^̂݁j + EHR}hɁIvVtŌݎgĂʂŎg悤ɂȂ܂B + ij?@(5,5,5)->A + @LocateWi5,5j5J͈̔͂œ͏o܂B + + +v2.29@2019.9.25 x[^ŁiC^v^̂݁j + ER}hList1`6ZbgAbv"EditListChar"ŕύXȂsC܂B + EList̃Rs[ŋR}hList1`6@\ȂsC܂B + ij List 1->List2 + + EsƃXg̓ǂݍ݂ő2{ɂȂ܂B + ij{1,2,3}->List 1 + ij [[1,2,3][4.5,6]]->Mat A + + ESH3@ŃL[͂P܂B + EZbgAbv"EDIT TopLine""HideStatLine"ɖ̕ύX܂B + + +v2.28@2019.9.10 x[^ŁiC^v^̂݁j + EvOI[F2]ƒڕҏWʂɖ߂@\lj܂B + EvOt@CۑꍇɃt@CTCYĂsC܂B + EG~[^œdǂݏoVXeG[ɂȂsC܂B + EOSo[WÂꍇFkeyMenu(R}hł̃ACRǂݏoŃVXeG[ɂȂsC܂B + EIsz/DszɑNext/WhileEnd/LpWhile̓2.26ɖ߂܂B + EUCFCalcLoverHKManual_EN.txtCĂ܂B + + +v2.27@2019.9.8 x[^ŁiC^v^̂݁j + EIsz/DszɑNext/WhileEnd/LpWhile̓C܂B + Efx-Manager PLUS Subscription for Graph 35+E IIŃL[͂ł܂sC܂B + EIvVt́HR}hŒl͂ȂsC܂B + ijH(16,4,4,"_",4)->A + + +v2.26@2019.9.5 x[^ŁiC^v^̂݁j + EGfB^Clip&PastẽJ[\ʒuC܂B + E~jtHg̈ꕔi0xE69EA0xE6A5C0xE6A6j݊̂C܂B + EhhR}h21傤ǂ̏ꍇ21ڂ\ȂsC܂B + EWaitTicksR}hAnssC܂B + EMenuR}hOSʂɖ߂[MENU]L[ȂȂĂsC܂B + EMax Mem ModeON̏ꍇAo[W\̃cʕ\ȂsC܂B + + +v2.25@2019.9.4 x[^ŁiC^v^̂݁j + ETuvO̓ǂݍ݂ɎsĂsC܂B + + EMOD(R}ḧƂ̏ꍇɌʂĂsC܂B + ()@MOD(-5,-5)->5 @MOD(-5,-1)->1 + () MOD(-5,-5)->0 @MOD(-5,-1)->0 + + EvOsfɃTu[`ҏWŃsɂȂ邱ƂsC܂B + + EPlotR}hX,Yϐւ̎`͈͊OłĂ̂C܂B + + +v2.24@2019.8.29 x[^ŁiC^v^̂݁j + Eobed3lŕԂBatteryStatusR}hlj܂B + [VARS]-[F3](extd)-[F6](BatteryStatus) + ijBatteryStatus + @Ԃl516̏ꍇAd5.16VƂȂ܂B + @S@ΉłB + + EobedZbgAbvy[Wł̃o[W\̉ɕ\悤ɂ܂B + + EC̏ꍇA[F6]-[F6]-[F4](->SMEM)ŃXg[W[hɈڍsłȂsC܂B + + ELoadR}hStrϐւ̃[hoȂsC܂B + ijLoad "Sample.txt"->Str 1 + + E9860G Slimɂ88MHzȏɃI[o[NbNꍇ̃L[͂P܂B + + E9860G SlimłGetkeyāuHELP]L[̕ԂR[h11ɂ܂B[LIGHT]21łB + + ECSVt@C̕ҏWT|[g܂Biłłj + @[F2](edit) + + Ev[eLXgt@C̕ҏWT|[g܂Biłłj + @[SHIFT]+[X^2] (extended) + + +v2.23@2019.8.19 x[^ŁiC^v^̂݁j + EFor`Next̐ϐiDBL܂INTj샂[hŌŒ肳Ă̂C܂B + ij'#CBDBL + For 1->I% To 6 + Disp I% + Next + + E4rbgs̐l𕄍ɕύX܂B]̕t-8`7͕0`15ƂȂ܂B + + + +v2.22@2019.8.16 x[^ŁiC^v^̂݁j + EDBL/CPLX[hIntR}h̃oOC܂B + ij-5 Int3->2 + ij-5 Int3->1 + + 2019.8.15 x[^ŁiC^v^̂݁j + E[hMOD(R}h̃oOC܂B + ijMOD(-5,3)->5 + ijMOD(-5,3)->1 + + EC̃vOŃCfg@\gꍇAvO̍ŌɃS~osC܂B + + +v2.21@2019.8.7 x[^ŁiC^v^̂݁j + EViewWindowϐ•ʂɎw肵ꍇ"Range Error"C܂B + FGraph 35+E IỈBgp”\TCY128KB188KBɕύX܂Bi2.10ȍ~j + ESDK̃G~[^ŏ̋NłȂȂĂsC܂B + + +v2.20@2019.8.5 x[^ŁiC^v^̂݁j + EvO̐VK쐬œt@C̃vOłɑ݂Ăꍇ̕sC܂B + + 2019.8.4 x[^ŁiC^v^̂݁j + EGfB^ɃCfg@\lj܂B + @[EXE]ꍇA݂̍s̐擪ɂCfgi󔒁j̍sɂp܂B + + EZbgAbv̐ݒŁAvOǂݍݎɃCfgIɕt܂B(Edit Indent+) + @łɃCfgtĂvO͕t܂B + @܂ۑɃCfg܂ދ󔒍폜鎖ł܂BiCasioBasic\[Xɕϊ܂Bj + @ȉ̃R}hŃCfgt܂B + @@If-Else-ElseIf-IfEnd + @@For-To-Step-Next + @@While-WhileEnd + @@Do-LpWhile + @@Switch-SwithEnd + + ER}hList1gpDim List1@\ȂsC܂B + + +v2.10@2019.7.22 x[^ŁiC^v^̂݁j + EGraph(X,Y)=̕`ŃGoOĂ̂C܂B + + @2019.7.20 EGraph 35+E IIɑΉ܂B + @AB256KB128KBɔ܂BȊO̎dl͓łB + + EGraph 35+E IIł̓tH_2Kwȏ쐬ł̂ŁA[gtH_ύXł悤ɂ܂B + @ZbgAbvŃ[g̓JgtH_Ƀ[gtH_ݒo܂B + @ij]FX@ł͏Ƀ[głB + + EtH_̃l[ɑΉ܂B + + EvOCsꍇASave/LoadR}hŐȃANZXoȂsC܂B + + EPlotR}hLineR}h̘Ag肭ĂȂsC܂B + + ETw肵Graph(X,Y)=̕`ďC܂B + + +v2.00@2019.6.15 x[^ŁiC^v^̂݁j + EOR}hTry`Except`TryEndR}hljIsError()͔p~܂B + ijTry vO + ijExcept G[R[hP + G|P̏ꍇ̏ + ijExcept G[R[hQ + G|Q̏ꍇ̏ + ijTryEnd + @vOɃG[TryEndɏڂ܂B + @G[PꍇAG|P̏ꍇ̏sATryEndɏڂ܂B + @G[QꍇAG|Q̏ꍇ̏sATryEndɏڂ܂B + @G[RꍇAΉExcept̂ŁAG[|bvAbvo܂B + + ijExcept + @̂ȂExceptׂ͂ẴG[ɑΉ܂B + + ijTry 3*4+ + @@@Except 1 + @@@"Syntax Error" + @@@TryEnd + @h3*4+h@ԈႦĂ̂SyntaxError̔ԍ1ɑΉ"Syntax Error"s܂B + + ijTry 3*4/0 + @@@Except 1 + @@@"Syntax Error" + @@@Except 40 + @@@"Divide by Zero" + @@@TryEnd + @h3*4/0h0ł̏ZG[40ɑΉ"Divide by Zero"s܂B + + ijTry 3*4/0 + @@@Except 1 + @@@"Syntax Error" + @@@Except + @@@"Error" + @@@TryEnd + @G[ɑΉExceptȂꍇ́ÂȂExceptׂ͂ẴG[ɑΉ̂"Error"s܂B + + TvvOCBasic_sample/Try_Exceptɂ܂B + G[R[hErrorCode_List.txtQƂĂB + + + E0x0CiDispsjȊO0x01`0x2F̃R[ȟɉsꍇłsȗĂsC܂B + + + +v1.99.5@2019.5.29 x[^ŁiC^v^̂݁j + Et@CXg[.]L[ꍇɁh`h擪Ƃt@CɈړ悤ɂ܂B + Et@CXg[EXP(x10)]L[ꍇɃtH_Xg̐擪Ɉړ悤ɂ܂B + +v1.99.4@2019.5.26 x[^ŁiC^v^̂݁j + ETw肵Graph(X,Y)=̕`C܂B + Et@CXg[.]L[ꍇɃtH_Xg̐擪Ɉړ悤ɂ܂B + + +v1.99.3@2019.5.18 x[^ŁiC^v^̂݁j + EHelp\ON̏ꍇɈꎞ~[EXIT]ŃfobO[hłȂsC܂B + +v1.99.2@2019.5.17 x[^ŁiC^v^̂݁j + ETuvOňꎞf[EXIT]ŃGfB^ɖ߂炸IĂ܂sC܂B(1.98̃GoOłBj + +v1.99.1@2019.5.16 EMax Mem ModeON̎ɂCɓ؂ւoĂȂsC܂B + ECXg[W/SDւ̈ړ̃t@CXg̕\ύX܂B + EsListꎞ~ɕϐꎞ~\Ƃ̕sC܂Bi1.99GoOj + +v1.99 2019.5.14 EsListꎞ~̕\sC܂B + + Eꎞ~R}h̃eLXgϊsR[htɎdlύX܂B + i]݊jDisps + iVdljDisps+[CR]+[LF] + + ECɓXg[WSDуC(Main Memory)œƗ܂Bꂼ7“o^ł܂B + EXg[WƃC(Main Memory)Ԃ̈ړ2L[ŏo悤ɂ܂B + @[SHIFT]-[F5]ŃXg[W[h؂ւ܂B + + EꎞfĂҏW[EXIT]ŃfobO[hȂsC܂B(܂oOcĂ܂Bj + + EMonochromeCunR}h_Recangle_PolygonɊgkƉ]𓯎ɉIvVlj܂B + ij_Rectangle X1, Y1, X2, Y2, border_width, border_color, Color[,m][,]px][,]SWX][,]SWY][,g嗦] + ij_Polygon XWintsւ̃|C^, YWintsւ̃|C^, _, Color[,m][,]px][,]SWX][,]SWY][,g嗦] + + @[]SWX][]SWY]ȗꍇ͎Iɕ`摜̒Sw肳܂B + + E_ + EMonochromeCunR}h̑ȉ~`R}h_ElipsA_FillElipsɂĉ]ꂽȉ~̕`T|[g܂B + ij_Elips X, Y, Rwidth, Rheight, Color[,m/ߗ] [,]p(x)] + ij_FillElips X, Y, Rwidth, Rheight, Color[,m/ߗ] [,]p(x)] + ij_Elips 60,30,60,30,1,,45 + @W(60,30)𒆐Sɉr60hbgAca30hbg̑ȉ~45xXĕ`悵܂B + + igpj"C.Basic_sample/ML_sample"ɂTvvOQƂĂB + + EMCS\LMain Memory\Lɓꂵ܂B + + +v1.98 2019.5.7 x[^ŁiC^v^̂݁j + EBgpɊOtHg邱ƂsC܂B + + 2019.5.6 EC.BasicNɊOtHgLɂȂȂsC܂B + EHR}hŕ͂ꍇɃG[ɂȂsC܂B + + + 2019.5.4 EOtHgLɂhSetFont 1hR}hŁA OtHgLɐݒ肳ĂȂꍇA|bvAbvo悤ɂ܂B + + E[vX^bN̍őlύX܂B + @(for~Next : ő 4 level 7) + @(While~WhileEnd : ő 6 level 7) + @(Do=LpWhile : ő 6 level 7) + @(Switch~SwithEnd: ő 4 level 7) + + ESwitch`SwitchEndGotoEoŃX^bNNAoĂȂ̂C܂B + + Et@C̑啶Ə𓮍쎞ɋʂȂ悤ɎdlύX܂BiC(Main Memory)͏j + E啶Ə̑Rename”\ɂȂ܂B + ijABC.bmp" -> "abc.bmp" + Et@C͎̃J[\ʒugq̑OɂȂ悤ɂ܂B + + EfobO[h̃J[\ʒuC܂B + EfobO[hmF|bvAbvŃfobO[hȂsC܂B + + +v1.97 2019.4.27 x[^ŁiC^v^̂݁j + EEngOnɂFixSci̔݊C܂B + ijEngOn:Sci 3 + @@1.23456789e12->12.3M + + ESaveALoad(R}ḧɍs/ListȊO̕ϐwł悤ɂȂ܂B + ijSave "TEST",A + ijLoad "TEST",Str 1 + + EHelpt@CXV܂B + + +v1.96 2019.4.21 x[^ŁiC^v^̂݁j + EGfB^̃R}h͎Help\o@\lj܂BZbgAbvŐݒ肵܂B + @zipHELPtH_ɗL~~HELP1.txt/~~HELP1.g1mt@CHelpt@CłB +@@@@@@@@@@@@@[gtH_vOƓtH_ɓĂB + + EnCr/nPrlj܂B + + EeLXgg1mւ̕ϊŃt@C\ُɂȂsC܂B + EOtHgǂݍ܂ȂsC܂B + + EPICT/CAPTt@C̃ftHgۑtH_"PICT","CAPT"Ƃׂđ啶ɂ܂B + Et@C[h̃tH_ԂۑȂsC܂B + EC(Main Memory)̃t[GAcĂ̂ɕۑłȂsC܂B + EList1`List6gȂsC܂B + E1rbg4rbgsɂėvfAhX̎擾̂C܂B + EsList̘AZŕs̂C܂B + EStrShiftŃ}CiX̏ꍇAʂĂ̂C܂B + ijStrShift("1234567", -2)->" 12345" + EOt`R}hꕔC܂B + + +v1.95 2019.2.17 x[^ŁiC^v^̂݁j + EtXŃ}jA𓯍܂BiPlanet-CasioLephenixnoirɖ|󂵂Ă܂Bj + EFillR}h2Ԃ߂݂̈̂̏ꍇɐ퓮삵ĂȂsC܂B + ij Fill(123,1) + @Fill(123,List 1)ƓʂɂȂ͂ȂĂ܂łB + + +v1.94 2019.2.3 x[^ŁiC^v^̂݁j + ETuvOpɂɌĂяovO[AC]u[NȂsC܂B + EFor`NextAWhile~WhileEndADo~LpWhile=>R}h̎Next/WhileEnd/LpWhileꍇ̃[vI̓C܂B + ELocate/TextR}hList n[0]̃Tu\łȂsC܂B + EH->fn1,?->Y1̓͂G[ɂȂĂsC܂B + + +v1.93 2019.1.26 x[^ŁiC^v^̂݁j + E[JϐɃA_[o[Ŏn܂gϐw肵ꍇ̕sC܂B + ETuvO"=>"R}h̔莮̌ʂAnsϐsC܂B + + +v1.92 2019.1.18 x[^ŁiC^v^̂݁j + ENɃftHgʼnBRAMgp悤ɂ܂BiSH4Â݁j + + E4ȏ̋tšʂȂꍇ̂sC܂B + iȂj[[0,0,0,1][27,9,3,1][216,36,6,1][512,54,8,1]]^(-1) + + Ef[h60i͂삵ȂsC܂B + + ETextR}hʼnE[ɕ`悵ꍇA[ɐܕԂĂ̂C܂B + + E[vGotoR}h[vJԂOɎsꂽꍇ̕sC܂B + + +v1.91 2019.1.2 x[^ŁiC^v^̂݁j + ETu[`̌Ăяo[vɂATu[`̃[vȊOłGotoR}h̕sC܂B + + 2018.12.31 EGotoR}hŃIvVɃ[vOɃWvł悤ɂȂ܂BiłBj + @i1.90ɂ(-)IvV͖ɂȂ܂Bj + + +v1.90 2018.12.30 x[^ŁiC^v^̂݁j + E\`wSciُɂȂĂsC܂Bi1.84ŃGoOj + + 2018.12.29 EGotoR}hŃ[vOɃWvł悤ɂȂ܂BiłBj + ijGoto (-)x + @(-)̓}CiXłB + ij + Lbl A + While 1 + Goto (-)A + WhileEnd + + ExNg(Vct)̏ōsƗ񂪑Ił悤ɂȂ܂B + ExNg(Vct)̊Ԑڎw肪삵ĂȂsC܂B + + +v1.89 2018.12.27 x[^ŁiC^v^̂݁j + E[gtH_BMPt@CɃANZXłȂȂĂsC܂B + + 2018.12.26 EGfB^̃~jtHg[h[ALPHA]-[F4](A<>a)ŃAt@[hsC܂B + + 2018.12.19 ERenameɂ8ȏ̃t@CɂȂƂɃt@CȂsC܂B + + 2018.12.16 EtšʂȂꍇ̂sC܂B + iȂj[[0,0,1][9,3,1][36,6,1]]^(-1) + + 2018.12.11 ESeq(R}hŕϐ̒lsȏꍇAR}h]ɃG[oĂ̂C܂B + ijX-1̏ꍇA + @@@Seq( sqrt(X),X,1,5)ŃR}h]ɃG[ɂȂĂ܂B + + 2018.12.9 EVAR}h[EXIT]ŒfoIvVlj܂B + ijSend( ϐ[,{[[g][,EXITL]) + ijRecv( ϐ[,{[[g][,EXITL]) + ijOpneComport38K[,{[[g][,][h][,EXITL] + [{[[gl]F0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400(ftHg), 8=57600, 9=115200 baud + [][h] 0:oCi][h@@1:f[^`ʃ[hiftHgj + [EXITL] 0:@@1FL + + ijSend(A,,1) + ijRecv(A,,1) + @[EXIT]Œfł܂B + + +v1.88 2018.11.26 x[^ŁiC^v^̂݁j + E݂̋󂫃ʂ擾System(-5)lj܂B + ijSystem(-5) + +v1.88 2018.11.25 E255܂ł̐𖳂܂B݂̓̂ƂȂ܂B + ij'#Str ,30,1000 + @Str 1`Str 30܂999܂ł̒ŕ񏈗ł܂B[ALPHA]+[X^2] + + Es̍ĊmۂŃAhXw肵ꍇA܂ŊmۂĂs񂪏ȂsC܂B + + E[gtH_ŕ\t@C̊gq.binlj܂B + @\t@Cig1m,txt,bmp,binj + ETutH_łׂ͂Ẵt@C\܂B + + Et@CCopy/Rename̐ɂ߂܂B + @biñt@CłCopy/Rename”\łB + + EMat/List/VctꗗʂListFile2ȏ̏ꍇɃXg\̂C܂B + + EStrAGraph(Y)Afnϐ̊mۂŎ̂ƂȂs̗vfĂ̂C܂B + ij"CDE"->Str 5 + @Str 1,Str 2,Str 3,Str 4,Str 5mۂ܂B + ij"ABC"->Str 1 + @Str 1ɂȂĂ܂B + + EStack ErrorƂ[EXIT]𕡐񉟂ȂƃGfB^ɖ߂ȂsC܂B + + +v1.87 2018.11.15 x[^ŁiC^v^̂݁j + EStrAGraph(Y)Afnϐ̊mە@ύX܂B + @ăftHg̍őmېꂼ20127܂őʂ܂B + ij"ABC"->Str 1 + @Str 1mۂ܂B + ij"CDE"->Str 5 + @Str 1,Str 2,Str 3,Str 4,Str 5mۂ܂B + + Efnϐ̎̂ɂȂftHgszijɕύX܂B + @Strϐ̃ftHg@@F<> + @Graph(Y)ϐ̃ftHgF + @fnϐ̃ftHg@@@Fz + + EClrVct ϐ삵ȂsC܂B + + 2018.11.12 EClrVct삵ȂsC܂B + + EGraph(Y)fn̈̓C܂B + ij"X+5"->fn1 + @@@fn1(X=7)ŕԂl(1)+5 + ij"X+5"->fn1 + @@@fn1(X=7)ŕԂl(7+5) + + EStrShift(݊̂C܂B + EStrSrc(R}ȟJnʒu񒷈ȏ̏ꍇ0ԂȂsC܂B + EStrMid(R}hő0̂ƂɕԂ镶NULLɂȂĂȂsC܂B + EStrLen(,StrCmp(,StrSrc(.Exp(R}h̏ZȗoĂȂsC܂B + + EMat/List/Vct\ɂListAns/r/Theta̕\C܂B + EList̕‚JbR"}"ȗꍇ̕sC܂B + EList̃xɕϐgȂsC܂B + + EfłAnd,Or,NotZԈĂ̂C܂B + E1ȉ̎AndAOr݊̂C܂B + ij0.1 And 0.2 -> 0 + ij0.1 And 0.2 -> 1 + + EBGPictŎwPictt@C1024oCĝƂɋ󔒂Ŗ߂悤ɂ܂B + + +v1.86 2018.11.4 EBmpLoad(R}hVRAMւ̃[hʼnE[8hbgPʂɂȂĂ̂C܂B + + EMat/List/Vct\ɂVct̕ҏWʂł̕\C܂B + + EListFileT|[g܂BiBRAMgp̂ݎgpł܂Bj + ijFile@2 + @2‚߂̃t@CXggp܂B + @Ƃ͈52‚‚̃t@CƂȂ܂B + @File 1List 53File 2List 1ɂȂ܂B + @OɃZbgAbvŕKvFilemۂĂB + + ijFile@0 + @Mat/List/Vct\ŒʂAԃXgŎgp܂B + + + EsѐϕGraphT|[g܂BiPOt̕`݂̂łBj + + +v1.85 2018.11.3 x[^ŁiC^v^̂݁j + ETrnR}hGoOĂ̂C܂B + EStrRotateR}h̉]t̂C܂B + +v1.85 2018.10.25 x[^ŁiC^v^̂݁j + Efx-9860G SlimɑΉ܂B + iGetkeyR}hуobNCgSlimΉ܂Bj + + ESystem(-1)ł̋@픻Slimlj܂B + @9860G:0 Slim:1 9860GII(SH3):2 9860GII(SH4A):3 + + EClrVctSprintf(ɎϊĂ܂sC܂B + @āA"DotGet("̒ԃR[h̎ϊ~܂B + @iɂ]o[W݊̂߂̒ԃR[h̎Cׂ͂ĖȂ܂Bj + + +v1.84 2018.10.21 x[^ŁiC^v^̂݁j + ESystem(-1)ł̋@픻ԈႦĂ̂C܂B + ij9860G:1 9860GII(SH3):3 9860GII(SH4A):2 + ij9860G:0 9860GII(SH3):2 9860GII(SH4A):3 + + ETrnR}h܂ސŃG[ɂȂ邱Ƃ̂sC܂B + +v1.84 2018.10.16 x[^ŁiC^v^̂݁j + EGfB^ŃvOŌւ̃WvoȂꍇsC܂B + +v1.84 2018.10.10 x[^ŁiC^v^̂݁j + E[AC]L[STOP炵܂B + @ʁABreak OnłBreak OffƂقڕςȂxƂȂ܂B + iSH3 )@10قǑȂ܂B + iSH4A)@2`3قǑȂ܂B + + EList̎mۂC܂B + EGraph(Y)fnXɎꍇ̓C܂B + ij"X+5"->fn1 + @@@fn1(7)ŕԂl(X+5)*7 + ij"X+5"->fn1 + @@@fn1(7)ŕԂl(7+5) + + +v1.83 2018.10.5 x[^ŁiC^v^̂݁j + ESend(ARecieve(R}hɂVA|[g̃N[YC܂B + + EA_[o[n܂ϐő26‚52‚ɑʂ܂B + EAliasR}hŎgpꍇ̕sC܂B + @AliasR}hŕʖgpł鐔͈ȉ̂ƂłB + @-ϐ@64@iA_[o[Ŏn܂ϐ܂݂܂Bj + @-s/Vct@26 + @-x@26 + + ETrnR}ḧ̎]C܂B + ijTrn Mat A+Mat B@-> Trn (Mat A+Mat B) + ijTrn Mat A+Mat B@-> (Trn Mat A)+Mat B + + Ef̍s\2̂3ɕύX܂B + + Eȉ̃xNgR}hlj܂B + @Vct + @DotP( + @CrossP( + @Angle( + @UnitV( + @Norm( + @ClrVct + iVct A`Z̃xNgMatƓƗ̈gp܂BƁAAAnsAȍ~͋ʂƂȂ܂Bj + + Esꗗł[VARS]Vct\ւ̐؂ւƂȂ܂B + + Etsƍs̓vZтׂvZɑΉ܂B + + EClrList݂̂̏ꍇAs(List 27`52)ĂsC܂B + @CList 1`26̏ƂȂ܂B + + EOrange(Red),Green,BluẽJ[R}hG[ɂȂȂ悤ɂ܂B + + +v1.82 2018.8.27 x[^ŁiC^v^̂݁j + E[hɂAnsϐs̗vfŎgpꍇG[ɂȂĂsC܂B + +v1.82 2018.8.19 EċAvOŃX^bNG[o[EXIT]xȂƏIȂsC܂B + + EGraph Y=R}hɂďlɐhhň͂܂ȂĂǂȂ܂B + + ECls/ViewWindowR}heLXg[h̏ꍇ"Done"\Ȃ悤ɏC܂B + + EGfB^̒uɂāAt@NVL[cĂsC܂B + EGfB^̒uɂāA[F4](ALL)[F5](ALL+)ɂ[AC]fŒu[hIĂsC܂B + + E[F2]-[F3]smۂɂbitI̐l͂4󂯕tȂsC܂B + + EV-WinXscaleAYscaleɕ̒lݒ肵ꍇAΒlɂȂ悤ɏC܂B + + EZbgAbv̎ݒŕbݒ肪Min\LƂȂĂԈႢC܂B + EV-WinݒŃG[ɂȂƂ[F4][F5]t@NVj[\܂B + EGfB^̌/uŕ񖳂̏ꍇ[AC]ƃt@NVj[ZbgĂ̂C܂B + + Ehho͂̎dlftHgFX/CGV[YdlɕύXA + @hho͎dlfx-5800P݊[hFX/CG݊[h̐؂ւIvVR}hlj܂B + ij'#58 + @fx-5800P݊o͂ɂȂ܂B + ij'#98 + @fx-9860G/CGV[Y݊o͂ɂȂ܂B + + EC.Baisic̓[hł̂Ps͎[F3](COMMAND)[OPTN]/[VARS]/[SHIFT]+[VARS]؂ւƌ̉ʂɖ߂ȂȂsC܂B + + EList̃x8̃x̏ꍇɔFĂȂsC܂B + Esꗗʂ[ALPHA]+[At@xbg][Theta][r]A[SHIFT]+[(-)](Ans)A[X,Theta,T]ŃWvo悤ɂȂ܂B + + Esl߂DetR}hlj܂B + + ECHARIł̏㉺XN[\P܂B + + EGfB^̌s[F2]Ōʂɖ߂ĂsCA[F6]ɍēxʂɖ߂(Retry)@\V݂܂B + + EGfB^̃fobO[h[SHIFT]+[EXIT]ŎsĂ܂sC܂B + + EfobO[hĊJ鎞ɉʂAȂsC܂B + + E2i16i0b0,0b1,0b2,0x1,0x2,0x3̃eLXgϊGXP[vɂȂĂ̂C܂B + + EV-WinݒʂV-MEMւ̃ANZXlj܂B + EV-WinݒTmaxTptch ̃ftHglĂ̂C܂B + ETptchւ̑l0̏ꍇɃG[ɂȂ悤ɂ܂B + + EGfB^̓̓[hC.Basic[h̏ꍇ[F6](G<>T)gȂȂĂ܂̂C܂B + EC.Basic[h̃R}h̓|bvAbvƃR}h͗ɃXN[CWP[^[̏㉺lj܂B + EvOfobO[hŋNƂA[EXIT]ŃfobO[h𔲂Ƀt@NVL[퓮삵ȂsC܂B + EfobO[h甲ꍇ̊mF|bvAbvlj܂BiZbgAbvŐݒ肵܂Bj + EZbgAbvFix/Sci/Norm̌w[EXIT]Ŕꍇɐݒ肳Ă܂sC܂B + + +v1.81 2018.7.7 x[^ŁiC^v^̂݁j + EList̃x8̃x̏ꍇɔFĂȂsC܂B + + Esl߂DetR}hlj܂B + Esꗗʂ[ALPHA]+[At@xbg][Theta][r]A[SHIFT]+[(-)](Ans)A[X,Theta,T]ŃWvo悤ɂȂ܂B + ECHARIł̏㉺XN[\P܂B + EGfB^̌s[F2]Ōʂɖ߂ĂsCA[F6]ɍēxʂɖ߂(Retry)@\V݂܂B + EGfB^̃fobO[h[SHIFT]+[EXIT]ŎsĂ܂sC܂B + EfobO[hĊJ鎞ɉʂAȂsC܂B + + @ E2i16i0b0,0b1,0b2,0x1,0x2,0x3̃eLXgϊGXP[vɂȂĂ̂C܂B + + EV-WinݒʂV-MEMւ̃ANZXlj܂B + EV-WinݒTmaxTptch ̃ftHglĂ̂C܂B + ETptchւ̑l0̏ꍇɃG[ɂȂ悤ɂ܂B + + EGfB^̓̓[hC.Basic[h̏ꍇ[F6](G<>T)gȂȂĂ܂̂C܂B + EC.Basic[h̃R}h̓|bvAbvƃR}h͗ɃXN[CWP[^[̏㉺lj܂B + EvOfobO[hŋNƂA[EXIT]ŃfobO[h𔲂Ƀt@NVL[퓮삵ȂsC܂B + EfobO[h甲ꍇ̊mF|bvAbvlj܂BiZbgAbvŐݒ肵܂Bj + EZbgAbvFix/Sci/Norm̌w[EXIT]Ŕꍇɐݒ肳Ă܂sC܂B + + +v1.80 2018.6.22 x[^ŁiC^v^̂݁j + ECւ̃Rs[Ƀt@CXgُɂȂ邱ƂsC܂B + EAT DebugModeIt̏ꍇA[AC]Breakɂꎞ~Ăѓ삵Ă܂sC܂B + EVKÑftHgݒꕔύX܂B + AT DebugMode :On + @RefreshCtl DD:Off + @Pict Mode :Main memory + + 2018.6.21 Ea0,a1,a2,b0,b1,b2,c0,c1,c2,x1,x2,x3,y1,y2,y3,n1,n2,Q1,Q3,f1,f2,f3,f4,f5,f6 + @ȏ̓ϐƓ`̍sȗ`eLXgϊɓϐɂȂĂ܂Ă̂C܂B + @ϐƏdȂsȗ`̓Y̓GXP[v܂B + @a0(ϐ) a0 + @a0(sȗ`) a\0 + @x3(ϐ) x3 + @x3(sȗ`) x\3 + + 2018.6.19 EAugment(R}hŃG[ɂȂ邱Ƃ̂C܂B + Ea0,a1,a2,anStart,b0,b1,b2,bnStart,c0,c1,c2,cnStartIɊgϐƂĎgp悤ɂ܂B + iAliasł̕ϐ΂ꂪD悵܂Bj + + 2018.6.17 Ei-j̎]ɍ킹܂B + i]͈ԏ̕]ʂłAltypeC֐ƓʂɕύX܂Bj + + ETuvOReturn[AC]fɂȂꍇɒfoĂȂsC܂B + + EList̏ŗvf[1]`[9]܂ł̎mۂɂă[Ȃ̂C܂B + i1.77ŏ߂Ă̂CƂ̃GoOłBj + + EMin(AMax(ASortA/D𕡑f܂ޏꍇAΒlő召肷鏃݊dlɕύX܂B + Ef[hɂLCM(R}h̕sC܂B + + EList̃xɑΉ܂B + @vf̊Jn1̏ꍇiftHgjł́AƓA + ij"LABEL"->List 1[0] + @vf̊Jn0̏ꍇ́A + ij"LABEL"->List 1[-1] + @Ńxݒ肪ł܂B + + ijList 1[0]->Str 1 + ijList 1[-1]->Str 1 + @x𕶎ƂĎ擾邱Ƃo܂B + + EStoV-Win/RclV-WinR}hň6̎w肪oȂsC܂B + + +v1.79 2018.6.11 x[^ŁiC^v^̂݁j + EGfB^Clip[h[DEL]L[삵ĂȂsC܂B + + EC(Main Memory)̃vOt@Cgpł悤ɂȂ܂B + @ZbgAbvŃCIƁAt@C̕ۑAt@C̓C̃vOt@CΏۂɂȂ܂B + @t@C̕ۑRs[Main MemoryXg[W/SDAXg[W/SDMain MemoryւƕۑύX邱Ƃ”\łB + @Xg[W/SD[ĥƂɁA[F1](Main Memory)IƃRs[Aۑ悪Main MemoryɂȂ܂B + @Main Memory[ĥƂ[F2](g1m)IƃRs[Aۑ悪Xg[W/SDɂȂ܂B + + EC(Main Memory)PICTt@C݊dlŎgpł悤ɂȂ܂B + + ECAPTt@C͏lɃC(Main Memory)̂ݑΉɎdlύX܂B + + EList->MatR}h삵ȂȂĂsC܂B + Ef0.50DBL[hɂIfAWhileADoR}hɂď肪ɖ߂Ă̂C܂B + + EsAhXwōĊĂꍇAf[^ύXĂ܂Ƃ̂C܂B + iAhXwŊmۂs͈ꗗ\Ł}[Nt܂Bj + + EOtHg̎gpR}hŐݒo悤ɂȂ܂B + iZbgAbvEnableExFontOnɂ󋵂Őݒ肪LɂȂ܂Bj + iZbgAbvEnableExFontOffɂĂ󋵂łOff̂܂܂ŗLɂ͂Ȃ܂Bj + ijSetFont 0 + @̃R}hȍ~AOtHggpoȂȂ܂B + ijSetFont 1 + @̃R}hȍ~AOtHggpł悤ɂȂ܂B + + ESystemϐŃq[v̈TCYOSo[W擾ł悤ɂȂ܂B + @System(-2)OS̃o[W3lŕԂ܂Bo[W2.09ł209Ԃ܂B + @System(-1)͋@픻肪Ԃ܂B + @9860G:0 9860GII(SH3):2 9860GII(SH4A):3 + + +v1.78 2018.5.29 x[^ŁiC^v^̂݁j + EGfB^[F1](Jump)[h̎A[SHIFT]+[F6](CHAR)ŘA̓[hɂꍇAGfB^ɂȂsC܂B + Ef[hɂāAMatList̗vfɕf܂ޏꍇɃG[ɂȂĂsC܂B + EPʍs𐶐IdentityR}hlj܂B + EDrawGraphŕ`悵OtAꎞ~IɏĂ܂ĂsC܂B + + Ef[hɂāANot_Notł͂Ȃrbg]ZɂȂĂsC܂B + Ef[hɂāARanList#/RanNorm#/RanBin#̕ԂlfListɂȂȂsC܂B + Ef[hɂāAInťʂlɂȂĂ̂C܂B + + Ef[hɂāAɕf܂ސꍇɕ@G[ɂȂĂsC܂B + + ESortAASortDR}hɂ1̎lŃ\[gĂȂsC܂B + ESortAASortDR}h̕ɂ\[g̎dl݊̂C܂B + @܂ł͈Ɏw肳ꂽׂĂList•ʂɃ\[gĂ܂B + @ĆAŎw肳List̃\[gɃNēԖڈȍ~List\[g܂B + + +v1.77 2018.5.21 x[^ŁiC^v^̂݁j + EGfB^[SHIFT]-[F5]16i_v\啶؂ւɕύX܂B + i16i_v\[SHIFT]+[F3](V-WIN)-[F5]ɐV݂܂Bj + EGfB^[SHIFT]+[F6]fobO[hȊO[CHAR]IɕύX܂B + + Efi16oCgjPokeAPeekɑΉ܂B + ijPeek(&A).C + ijPoke(&A).C,123+456i + + Es̍Ċmۂŏ߂Ă̂C܂B + ij{10,1}->Dim Mat A.B + -1->Mat A + {1,1}->Dim Dim Mat B.B(&Mat A) + [[1]]->Mat B.B + @Mat B́A + @[[1][-1][-1][-1][-1][-1][-1][-1][-1][-1]] + @ƂȂ͂łA + @ۂ͂ȂĂ܂B + @[[1][0][0][0][0][0][0][0][-1][-1]] + + EH()IvVɂĒl0̏ꍇɕ\ȂsƋ͂ŃVXeG[ɂȂĂsC܂B + + Eɋ؂蕶ƃG[ɂ悤ɂ܂B + + +v1.76 2018.5.13 x[^ŁiC^v^̂݁j + EfɑΉ܂B + + E1s͂ɂăNbv{[hLɂ܂B + E1s͊Jn̑啶/ACR̕\؂ւoĂȂ̂C܂B + + EGetkey1/2ɂāASDK̃L[R[h擾邱Ƃo悤ɂȂ܂B + ijGetkey@1 + ijGetkey@2 + @[@]IvVljSDK̃L[R[hԂ܂B + + Evf4rbg̍slj܂B + i8rbgȏ̍sƂ͈ႢA{m.n}{X,Y}tɂȂĂ1rbgsdlłBj + @^ẃANibbleNŎw肵܂B + ij{16,8}->Dim Mat A.N + + EXgꗗʂŃXg\ȂsC܂B + EXg̃Nbv{[hΉ܂B + E[F5]̍smۂDBLɂȂĂsC܂B + + ESysCall̓͒lŃG[Nꍇɂ̓R}hsOɃG[ɂȂ悤ɂ܂B + ESigmaASeqR}hs[AC]L[Lɂ܂B + + Es𕶎ŏꍇ2–ڂ̕擪ɋ󔒂ꍇɋ󔒂ɂȂĂsC܂B + + E[ĥƂA[F5](CHAR)啶͂ĂɂȂĂ܂sC܂B + + Esin̈pi̐{ɂȂ鎞Ɍʂ[ɂȂȂ̂P܂B + @coslɏC܂B + ijsin pi + ijcos (pi/2) + + E_ȉwŊۂ߂RndFixɗLwŊۂ߂SciIvVlj܂B + ijRndFix(ASci ) + ijRndFix(1.23456789e-123,Sci 5) + @1.2346e-123Ԃ܂B + + +v1.75 2018.4.8 x[^ŁiC^v^̂݁j + EǗ@ύX܂B + iNɑSq[v̈C.BasicpƂĊmۂAKXGAĎgp܂Bj + Et@C[h[SHIFT]Ɍݎgpł󂫃ʂ\悤ɂ܂B + i󂫃̓vOAsAPictŕgp܂Bj + EOtHggpȂ[hZbgAbvɒlj܂Bit[GA4KB܂Bj + Eőgpł郂[hZbgAbvɒlj܂B + it@CXg\̂߂̃obt@JA󂫃ő₵܂Bj + ipƂĖt@CXg̍ēǂݍ݂܂Bj + + E32KBz鏊ւGoto̓삪oȂsC܂B + @64KBz鏊܂ރ[vWvoȂsC܂B + ivO̓Ɋւ|C^16rbg32rbgɊg܂Bj + + ESave LoadR}h̃t@Cɕϐg悤ɂ܂B + + +v1.74 2018.4.1 x[^ŁiC^v^̂݁j + E64KBȏ̃vOt@CɑΉ܂B + + EFix 0̕\݊C܂B + + EIvVt́H(R}hŃt@NV\GA8sڂ͏o悤ɂȂ܂B + EIvVt́HR}h7sڂ̓͂ʼnssC܂B + + E[MENU]ŃR}h͗\A[AC]ʼnʂAȂsC܂B + Es̃hbgGfB^\ɓd؂ƁAJ[\csC܂B + EPeek,PokeR}hł̎wAhX̃~XACgɂG[Argument ERRAddress align ERRɕύX܂B + + Eo[WԂVersionVXeϐlj܂B + ij Version [SHIFT]+[MENU](SETUP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + + EStrSplitR}h2oCg܂܂Ăꍇɐ퓮삵ȂsC܂B + + +v1.73 2018.3.16 x[^ŁiC^v^̂݁j + E󔒂sł͂ȂAR}hԁA̋󔒂‚悤ɂ܂B + + EIfAWhileADoR}hɂď肪ɂȂĂ̂C܂B + + EGfB^́AJ[\ړAXN[x]20Abv܂B + EꊇRg2sڂIɂւ炸1sڂRgsC܂B + EGfB^ʼns̎̍ss̏ꍇɉړƈsщzĂ܂sC܂B + EoCi[hł̕ҏWɕۑłȂsC܂B + + Es̃GgWv[Goto]ɂĔѐ悪‚Ă̂C܂B + EsҏWɉ̗vf9ȏ゠ꍇ9–ڂ\ĂsC܂B + E[EXIT]|bvAbv甲[EXIT][AC]L[Ɍ肵܂B + + ELN^[I[F6]̃ACR\C܂B + Eg1meLXgϊɃJiȍ~(0xFFE0`)ϊ~XĂ̂C܂B + + E[AC]ԂŁATocksWaits[AC]ƃR}hIĂ܂sC܂B + E\^C}[Ticks%JEg_EɂȂĂsC܂B + ERanNorm#R}h̃ACR\ԈႦĂ̂C܂B + + E_PixelTestR}hɂāA݂VRAMȊOɂeLXgVRAMƃOtBbNXVRAMIo悤ɂȂ܂B + ij_PixelTest(10,20,T) + @eLXgVRAM(10,20)̃J[lǂݎ܂B + ij_PixelTest(10,20,G) + @OtBbNXVRAM(10,20)̃J[lǂݎ܂B + + ESysCall̈̐12܂ő₵܂B + ijSysCall( VXeR[ԍ [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10][,11][,12] ) + + EtHgĂȂꍇɊOtHg̓ǂݍ݂oĂȂsC܂B + + EGetFont,GetMiniFont,R}hŌ݂̊OtHg󋵂擾ł悤ɂȂ܂B + ijGetFont() + ijGetMiniFont() + @Ԃl͐lbit2OJi Abit1OO Abit0OAsciitHgƂȂ܂B + ijWTCY̊OJitHĝݓĂꍇB + @GetFont()4Ԃ܂B + @GetMiniFont()0Ԃ܂B + ij~jtHgAsciitHgƊOtHĝݓĂꍇB + @GetFont()0Ԃ܂B + @GetMiniFont()3Ԃ܂B + + +v1.72 2018.3.3 x[^ŁiC^v^̂݁j + E0x 0bŎn܂16iA2i\L̃eLXg-g1mϊɎsĂ̂C܂B + ij0x1000 + @x1R}hx1ɕϊĂ܂B + + 2018.2.25 ERgIfR}hASwithR}hꂼ32‚𒴂ƔzɕsoĂ̂C܂B + + EGosubɕԂlꍇɑɎsĂsC܂B + ij) Gosub A->B + @@@Disp B + @@@Stop + @@@Lbl A + @@@Return 1 + +v1.71 2018.2.21 x[^ŁiC^v^̂݁j + EASCIIR[h擾StrAsc(R}hlj܂B@[Shift]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](StrAsc) + ijStrAsc("Ascii") + @擪'A'ASCIIR[h65(0x41)Ԃ܂B + + EStrLen(AStrCmp(AStrSrc(R}hɂĕ‚ʂǂݔ΂ĂsC܂B + ij(10-StrLen("ABC"))*2 + @l(10-3)*214ɂȂ͂A‚ʂ”΂(10-StrLen("ABC")*2Ɖ߂4ƂȂĂ܂B + + + 2018.2.18 EA_[o[n܂gϐ⃉xeLXg̕ϊŃR}hɕϊĂ܂̂C܂B + + EO/Ji\ŃVXeG[ɂȂ邱ƂsC܂B + + E^C}[ϐTicks%ɍ\1/32768s^C}[lj܂BiSH4Ał݂̂̊głBj + @R}h%tƕ\1/32768sɂȂ܂B + ijTicks% + ijTicks%Wait + ij%% + ij%%Wait + + EvOs̎Ԍv@\ō\1/32768s^C}[Ił悤ɂȂ܂BiZbgAbvŐݒ肵܂Bj + @_ȉ4܂Ōvł܂BiSH4Ał݂̂̊głBj + + +v1.70 2018.2.10 x[^ŁiC^v^̂݁j + E[AC]L[ɂBreak̗LvOŏo悤ɂ܂B + ij'#Break0 //@[AC]L[ + ij'#Break1 //@[AC]L[LiftHgj + + EGfB^[SHIFT]+[3]GetKeyR}h̃L[R[h͂@\lj܂B + + 2018.2.2 EOtHgt@CɂĊOtHg𓱓o悤ɂȂ܂Biڍׂ̓}jAQƂĉj + + EGfB^̃tHgOtHgɐ؂ւ悤ɂ܂BZbgAbvύXł܂B + + EProg`ReturnɂāAReturnR}hł̕ԂlɂȂsC܂B + + EZbgAbv̐ݒ肪vOŕύXȂ悤ɂݒlj܂B + @SetupRecover̍ڂŏCasioBasic݊ݒvOIɕA邩ǂݒ肵܂B + @e󂯂ݒ͏݊̈ȉ̐ݒɂȂ܂B + @@Angle + @@DrawType + @@Coord + @@Grid + @@Axes + @@Label + @@Derivative + @Plot/LineColor + @@Sketch Line + @Display Fix/Sci/Norm/Eng + + @ȊOC.BasicŊgꂽݒ̓vOŕύXĂsɌ̐ݒɕA܂B + + EMenuR}h̃^CgڃeLXg\œꕶgƕ\ZȂĂsC܂B + + ETicks()̃^C}[ϐւ̑œvύXȂ悤ɂ܂B + ij0->Ticks + @]͓v00:00:00ɏĂ܂AC.Basic̃^C}[ϐ0ɃZbg܂B + @̎dlύXɂ莞v̕ύXDATEATIMER}ĥ݂ƂȂ܂B + + ELblAlias@\g悤ɂȂ܂BAliasVar̃R}ĥAliasɉ܂B + ijAlias A=_ABCD + ijAlias Mat A=_ABCD + ijAlias Lbl A=_ABCD + + EGetKey1/2s͎Ԍvꎞ~悤ɎdlύX܂B + @ZbgAbvɂČv̈ꎞ~܂͌ṽZbgX^[gIł܂B + @֘AR}hƂ + ij'#GetKeyC + @ftHǧv̈ꎞ~Ap[hłB + ij'#GetKeyR + @GetKey1/2sɌvZbgX^[g܂B + + Es̏ɂāAłɊmۂꂽs̈ďꍇ0NAȂ悤ɂ邱Ƃo悤ɂȂ܂B + iAŏɍsŎgpő̈mۂĂKv܂Bj + ij{12,20}->Dim Dim Mat A + ij[[1,2,3]][4,5,6]]->Mat A + @@@{2,2}->Dim Dim Mat A + @Mat A̓e[[1,2][3,4]]ƂȂ܂B + + EStrSrc(R}hɂāAJnʒuw肵ꍇɌʂƒYĂ̂C܂B + + + +v1.65 2018.1.15 x[^ŁiC^v^̂݁j + EsGfB^ŁA[OPTN]؂ւŃXg\̎Ans,,<>\ȂsC܂B + ENormR}hɓ삵ĂȂsC܂B + + 2018.1.10 EX^_[h[hł̓͂ɂStrLwrR}h̓͂oȂsC܂B + + 2018.1.6 EGfB^̒uɂāAu͈̔͂ꕶZȂĂ̂C܂B + + 2017.12.14 E["","","",..]->Mat A@`̕񏉊ɂāA + @Xy[XꍇɌϊĂsC܂B + + ECLIPPASTȆI͈͂̈ăRgARgo悤ɂȂ܂B + @uSHIFT]-[8](CLIP) [F5] or [F6] + + EBmpLoadR}hŒVRAMɃ[ho悤ɂȂ܂B + ijBmpLoad("TEST"),10,5 + @i10C5jWTEST.bmpt@C[h܂B + + EBmpSaveR}hŒVRAMZ[uo悤ɂȂ܂B + ijBmpSave "TEST",10,20,100,60 + i10C20jWi100,60jW܂ł͈̔͂1rbgBMPt@C"TEST.bmp"ƂăZ[u܂B + @w”\ȍWl(0,0)-(127,63)͈̔͂łB + + EPopUpWin(R}hIvVljł + Eʑޔ̂݁@|bvAbv܂B + ijPopUpWin(0) + Eޔʂ̕Â݁B + ijPopUpWin(9) + @ʑޔobt@̓VXeƋʂȂ̂ŁAޔɃ|bvAbvoƃobt@㏑ꌳɖ߂ȂȂ܂̂ŒӂĉB + + EListMat̕ϐwɁigƂŐg悤ɂȂ܂B + ijList (A+1) + A1̏ꍇList 2w肵ƂɂȂ܂B + ijMat(A+1) + A1̏ꍇMat 2A‚܂Mat Bw肵ƂɂȂ܂B + + 2017.12.10 EGfB^̃~jtHg[h̃ptH[}Xコ܂B + + EFor`Next̐ϐ̃G[`FbN܂B + i[hŐϐ𐧌ϐɎgƃG[ɂȂ܂Bj + + ECLIPPASTȆI͈͂ƃJ[\ʒuĂ̂C܂B + + E[EXIT]L[𗣂܂ŌȂ悤ɕύX܂B + + EPopUpWin(R}hg܂B֐ƂĂ̎ɕύXɂȂ܂B̒Ŏg܂B + ijPopUpWin( n ) + @]̎dlłBs̃|bvAbv\܂B\݂̂łB + + Eexit@|bvAbvB + ijPopUpWin(11,"bZ[W1s"[,"bZ[W2s"]) + @Ԃl͏1łBR}hIɉʂA܂B + + EYes No@|bvAbvB + ijPopUpWin(10,"bZ[W1s"[,"bZ[W2s"]) + @Ԃl[Yes]:1 [No]:0ƂȂ܂BR}hIɉʂA܂B + + EFkeyMenu(ɃVXet@NVL[\ł悤ɂ܂B + ijFkeyMenu(1,42) + @eLXgʂ̈ԍ̃t@NVj[GAɔEDIT`悳܂B + + EfĊJ[EXE][F1]L[̓͂pȂ悤ɂ܂B + + EHgR}h̓EXEL[ŏI悤ɕύX܂B + + EZbgAbv̍EL[ōŏƍŌɈړ悤ɂ܂B + + ERgꍇ̔݊C܂B + + EHgR}h͕̓@\ĂȂ̂C܂B + + +v1.64 2017.11.19 x[^ŁiC^v^̂݁j + E}`oCg܂ރR}h̕\̍ŌオĂ̂C܂B + + EList->Mat(R}h̃oOC܂ + +v1.64 2017.10.29 x[^ŁiC^v^̂݁j + ECATALOGL[ȂȂsC܂B + 2017.10.20 + Ev1.55ȍ~ŊgHR}h̃IvVp[^ɓ͌lj܂B + ij?([x][,y][,width][,"󔒃LN^"][,͌][,R]) + @̃IvVtƒÕJ[\ʒus܂B̓vvg"H"\܂B + @ep[^͏ȗł܂B + ij"A="?()->A + @"A="ɑē͑҂ɂȂ܂B + ij"A="?(,,,,,R)->A + @"A="ɑĔ]\œ͑҂ɂȂ܂B + ij"A="?(,,8,,,R)->A + @"A="ɑĔ]͑҂ɂȂ܂B͔͈͂8݂̂łB𒴂͂ł͉XN[܂B + ij?(3,4,5,">",5)A + @X=3CY=4̈ʒuA̒l\ē͑҂ɂȂ܂B͔͈͂Ɠ͌Ƃ5̂݁A󔒂">"Ŗ߂܂B + ij?(3,4,5,,5,R)A + @X=3CY=4̈ʒuA̒l𔽓]\ē͑҂ɂȂ܂B͔͈͂Ɠ͌Ƃ5݂̂łB + + + 2017.10.14 + EGfB^̃T[`ɂĎ̌ꍇ[EXE]L[݊ɂȂĂ̂C܂B + EGfB^SkipłPsꍇɎ~܂sC܂B + + 2017.10.9 + EGfB^̍sԍʏ̕Iȍsł͂Ȃs܂ł1sƂ_sɕύX܂B + + Es񖼂̎w𐔒lŏo悤Ɋg܂B + @s̃ANZX͏lMat+pPȊOɁAListƓlŎwł悤ɂȂ܂B + @iƁAAAns͐lwł܂Bj + @Mat A = Mat 1 + @Mat B = Mat 2 + @Mat C = Mat 3 + @Mat Z = Mat 26 + @Mat a = Mat 27 + @Mat z = Mat 52 + + @""tƍs񖼂ϐŎw肷邱Ƃo܂B + @iR}h͕X^_[h[hł[OPTN][F5]""͂ł܂Bj + @ij3->A + @ Mat @A iMat CƓłj + + @List̊gōslɍő1040܂Ŋg܂BiVer.1.61ȍ~j + + @̊gɂ]̃o[Wł̏̍sList 1`26ł͂ȂList 27`52ɕύXɂȂ܂B + @Mat A`ZList 1`26݂͌ɓƗ̈Ɋmۂ܂B + @ȍ~̍s̓XgƋp邽߂27ȍ~̍s񁁏s̓XgƓ̈gp܂BiVer.1.64ȍ~j + @53ȍ~̍s͐l̂ݎwł܂B + Mat 1 = Mat A ( List 1 Ɠł͂܂B) + Mat 2 = Mat B ( List 2 Ɠł͂܂B) + Mat 3 = Mat C ( List 3 Ɠł͂܂B) + Mat 26 = Mat Z ( List 26 Ɠł͂܂B) + Mat 27 = Mat a ( List 27@ƓłB ) + Mat 28 = Mat b ( List 28@ƓłB ) + Mat 29 = Mat c ( List 29@ƓłB ) + Mat 52 = Mat z ( List 52@ƓłB ) + Mat 100 = List 100 + Mat 1000 = List 1000 + + @Mat a[5, 1] = Mat 27[5,1] = List 27[5] + @Mat b[5, 1] = Mat 28[5,1] = List 28[5] + @Mat c[5, 1] = Mat 29[5,1] = List 29[5] + @Mat z[5, 1] = Mat 52[5,1] = List 52[5] + + @List 53[5] = Mat 53[5, 1] + @List 100[5] = Mat 100[5, 1] + @List 1000[5] = Mat 1000[5, 1] + + @ij100->A + @ Mat @A iMat 100AList 100Ɠłj + + + ȄlϐŎwł悤ɂȂ܂B + ijRan# #l + @ijRan# #12345 + @ijRan# #A + + EMonochromeCunR}hɊgkƉ]𓯎ɉărbg}bv\"_BmpZoomRotate"R}hlj܂B + iPlanet-CasioNinestarsMonochromeCuɋ@\ljvO𗘗pĒĂ܂j + ij_BmpZoomRotate &Mat , x, y, width, height [,g啝] [,cg啝] [,]p(x)] [,color][,m] + @ij _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 + @ij_BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + + EMonochromeCunR}h̃XN[R}h͈͎w”\ɂȂ܂B + ij_Hscroll XN[ [,x1,y1,x2,y2] + ij_Vscroll XN[ [,x1,y1,x2,y2] + ij_Hscroll 1,32,16,47,95 + @(32,16)-(47,95)̃GAEɃXN[܂B + ij_Vscroll -1,5,10,100,40 + @(5,10)-(100,40)̃GAɃXN[܂B + + +v1.63 2017.9.26 x[^ŁiC^v^̂݁j + ETuvOvO̍Ōɂꍇ̏݊C܂B + Ehh\7sڂ̏C܂B + + 2017.9.6 + Et@Cɓꕶꍇɕ\łȂsC܂B + iJi͎g܂BIɁh`hɕϊ܂Bj + + 2017.8.20 + EVAʐMT|[g܂BiƓR}hłƂ̌݊͂܂Bj + ijSend( ϐ[,{[[g]) + ijRecv( ϐ[,{[[g]) + ijSend38K ϐ[,]oCg] + ijReceive38k ϐ[,]oCg] + ijOpneComport38K[,{[[g][,][h] + ijCloseComport38K + ]łf[^͕ϐAsAXgƂȂ܂B + ]Ɠ]Ńf[^̌^킹Kv܂B + Send38K/Receive38kOpneComport38Kɂ[][h]0w肷ƃoCif[^̓]ɂȂ܂B + [{[[gl]F0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400(ftHg), 8=57600, 9=115200 baud + [][h] 0:oCi][h@@1:f[^`ʃ[hiftHgj + Send(Recv(̓R}hPƂœ]o܂ASend38K/Receive38kOpneComport38K/CloseComport38KKvłB + + ijSend(A) + ijRecv(A) + ijSend(Mat A) + ijRecv(Mat A) + + ijOpneComport38K,9,0 + @@@Send38K List 1 + @@@CloseComport38K + ijOpneComport38K,9,0 + @@@Receive38k List 1 + @@@CloseComport38K + + .1.60莎IĂGfB^̍sԍ\̕sC܂B + +v1.62 2017.8.14 x[^ŁiC^v^̂݁j + EZbgAbvʂł̓t\֌WȂƂɕ\邱Ƃ̂sC܂B + + EvOs̒fŃGfB^ɖ߂炸Ƀt@CXgɖ߂ݒ܂B + @ZbgAbvݒo܂B + + ER}h͎ɂɃR}hgp\ł悤ɂȂ܂B + @[MENU]L[Ɖߋ32•̃R}h\܂B + @ɃJ[\[][]Ǝgppx̍ɕёւĕ\܂B + + EsҏWŃhbgҏW̏o郂[hlj܂B + @s\ĂԂ[OPTN]L[ƃhbgGfB^ɂȂ܂B + @s̊evf̒l0̏ꍇƂȊOŃhbg̔܂܂B + + Es̃f[^Nbv{[hɃRs[y[Xg”\ɂȂ܂B + @sҏW[h[SHIFT]+[8](CLIP)ŃRs[A[SHIFT]+[9]Ńy[Xgo܂B + iC.Basicj`Ȃ̂ŃGfB^ɂčsf[^y[Xgo܂B + + EBMP`̓ǂݏɑΉ܂Bi1rbgAmN̂݁j + ijBmpSave "TEST",Mat A + @sÃf[^BMP`"TEST.bmp"ɕۑ܂B + ijBmpLoad("TEST")->Mat A + @"TEST.bmp"̃f[^sAɓǂݍ݂܂B + + EDrawMatR}hlj܂Bi]DotPutR}hMLR}hdlłBj + ijDrawMat Mat A[px,py], x, y, width, height [,g啝][,cg啝][,color][,m] + ij DrawMat Mat A, 0, 0, 128, 64 + ij DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + + ECapturet@CT|[g܂BXg[Wւ̓ǂݏo܂Bő99܂ł̃t@Cpł܂B + ijStoCapt 20 + ijRclCapt 20 + + EPictt@C̃t@CTCY2KB1KBɔ܂B + + EStrRepl(R}hlj܂B + ijStrRepl(, , u [,Jnʒu]) + ijStrRepl("Hello World","World","Earth") -> "Hello Earth" + ijStrRepl("abcabc","ab","ff",3) = "abcffc" + ijStrRepl("abcabc","ab","ff") = "ffcffc" + + EMatGfB^ŔCӂ̍sIꍇABase0̏ꍇA0IłȂsC܂B + + E荞ݓ쎞[MENU]L[OSɖ߂邱Ƃ𖳌ɂ܂BiJ[\_Ŏj + + +v1.61 2017.8.2 x[^ŁiC^v^̂݁j + EBRAMgp99܂łPictt@C1040܂łListgƂo܂BZbgAbvŎw肵܂B + EListMaẗꕶZk\o悤ɂȂ܂BZbgAbvLM̔]ƃ{[ĥIł܂B + + EMonochromeCunR}h"_Circle"R}hɊpxwƒ_wlj܂B + EMonochromeCunR}h"_Circle"R}hɊpxwƒ_wlj܂B + ()_Circle x,y,a,color[,m][,][,pxl][,pxIl][,_] + ij _Circle 64,32,20,4,0.5,3 + 3x3hbg50%̊mʼn~`悵܂B + ij _Circle 64,32,20,1,,3,0,90 + 3x3hbgʼn[荶90x̉~ʂ`悵܂ + ij_Circle 64,32,20,1,,,0,360,5 + ܊p``悵܂B + ij _Circle 64,32,20,1,,,20,380,5 + _̈ʒu20x炵܊p``悵܂B + + EMonochromeCunR}hɐ}`̓̍hbgJEg"_Test"R}hIvVlj܂B + (T|[gR}h) _Point _Line _Rectangle _Circle _Polygon + @T|[gR}h̑O"_Test"tƋ@\܂B + ij_Test_Rectangle 0,0,127,63 + @(0,0)-(127,63)GAɂ鍕hbg̐Ԃ܂B + ij_Test_Circle 62,32,20 + ij_Test_Point 10,10,5 + ij_Test_Line 10,10,100,30 + + EMonochromeCunR}hɊgkA]ărbg}bv\"_BmpZoom""_BmpRotate"R}hlj܂B + iPlanet-CasioNinestarsMonochromeCuɋ@\ljvO𗘗pĒĂ܂j + ij _BmpZoom &Mat , x, y, width, height [,g啝] [,cg啝] [,color][,m] + ij_BmpRotate &Mat , x, y, width, height, ]p(x) [,color][,m] + ij_BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 + ij_BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 + ij_BmpRotate &Mat A, 0, 0, 20, 10, 45 + + EGetkeyR}hɕL[ǂݍ݂"M"IvVlj܂Bʂ̓Xg`ŕԂ܂B + ijGetkeyM->List 1 + [EXE][F1]𓯎ꍇA {79,31}Ԃ܂B + + EXgu̔rR}h"ListCmp("lj܂B + @XgƃXgAXgƒl̔rł܂B + ijListCmp({1,2,3},{1,2,3}) + @1Ԃ܂B + ij ListCmp({1,2,3},{1,3}) + @0Ԃ܂B + ij ListCmp({1,2,3},{1,3,2}) + @0Ԃ܂B + ij ListCmp({1,2,3},2) + @1Ԃ܂B + ij ListCmp({1,2,3},4) + @0Ԃ܂B + + EXgבւSortA(,SortD(R}h̒łg悤ɂȂ܂B + + +v1.60 2017.7.26 x[^ŁiC^v^̂݁j + ECӂ̐iϊR}hƂStrBase( R}hlj܂B + () StrBase(@Ni, ϊO̐iN, ϊ̐iM) + i͈̔͂2`64܂łłB + @@@gpLN^{ 0-9 A-Z a-z } + Ni̕񂩂Mi̕ɕϊ܂B + () StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + E"Graph Y="@Ł@R}hÕCX^CݒłȂoOC܂B + E_PixelTest( sɂꍇɓ삵ȂoOC܂B + + EMonochromeCunR}h̕`F2x2hbglj܂B + @Color̒l:10 11@@@12@@@13@@@14 i1hbg`j + @Color̒l:20@@@21@@@22@@@23@@@24 i2x2hbg`) + @@@@@@@@@@@@@@ + @@@@@@ + ij_FillCircle 64,32,30,21 + + EMonochromeCunR}h̕`FɃ_J[lj܂B + @Color̒lɂSw肵ꍇAColorɑp[^͍hbgƂȂm(0`1)wł܂B + ij _Rectangle 0,0,127,63,0,0,4,0.5 + @ʑŜ̊mŃ_ɍhbgŖ܂܂B + ij _Rectangle 0,0,127,63,0,0,4,0.1 + @ʑŜ10̊mŃ_ɍhbgŖ܂܂B + ij_FillCircle 64,32,30,4,0.5 + @~̓50̊mōhbgŖ߂܂B + ij _FillCircle #0,0,3,4,0.5 + @~̓̊mŃ_ɍhbgŖ܂܂B + + EMonochromeCunR}h"_Line"R}hɂĐ̑wlj܂B + ij_Line x1,y1,x2,y2,color[,m][,] + ij_Line 0,0,127,63,1,,10 + @ʂ΂߂10hbg̑̒`܂B + + +v1.59 2017.7.19 x[^ŁiC^v^̂݁j + EGfB^̌ɒu@\lj܂B͎[F2]ƒu͂o܂B + @uɂ͊mFȂu[F2]ƈCɒu郂[h[F4]܂B + EtH_ɃJ[\ԂVKt@C쐬邱Ƃo悤ɂȂ܂B + ENbvI猟ɕ񂪓͂łȂȂĂsC܂B + EStrInv(肭삵ȂoOC܂B + +v1.58 2017.7.15 x[^ŁiC^v^̂݁j + E~jtHg\̃GfB^g悤ɂȂ܂B + EsfɃfobO[hɂȂȂݒlj܂B + Et@C[h[DEL]ŃtH_̍폜o悤ɂȂ܂B + EVKt@CDELL[AꍇWŖ߂t@CُɂȂoOC܂B + EProgR}hɂăTutH_̃t@C̓ǂݍ݂oȂȂĂoOC܂B(ver.1.00x[^5ŃGoO) + +v1.57 2017.7.8 x[^ŁiC^v^̂݁j + EGfB^ʂ̍ŏ㕔sGfB^ƂĎgݒ܂BSetupݒ肵܂B + EJbgy[Xgʂō폜{^lj܂B + EGfB^I̋ۑɑΉ܂BSetupŐݒ肵܂B + EIf`Then`IfEndɂThenĂG[ɂȂ悤ɂ܂B + + EScreenR}hɉʑŜ𔽓]RIvVlj܂B"Screen"+"R" + ijScreenR + + E_Wn畨W߂ScreenR}h"#"IvVlj܂B + @ʂListAnsɕԂ܂B + ig) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + i)Screen#1,1,-6.3,6.3,-3.1,3.1 + @@ListAns{74,22} + EWn_W߂ScreenR}h"%"IvVlj܂B + @ʂListAnsɕԂ܂B + ig) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + i)Screen%74,22,-6.3,6.3,-3.1,3.1 + @@ListAns{1,1} + + EMonochromeCuñR}h_WŎgƂ̂ł"#"IvVlj܂B + support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + + () ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2.1 + + EJԂԂStrChar(R}hlj܂B + ijStrChar("ABC",5) + @A"ABCABCABCABCABC"܂B + + E^񒆂ɖߍStrCentr(lj܂B + igjStrCenter("",[,"ӂ𖄂߂LN^"]) + ij StrCenter("Test",8) + @A" Test "܂B + ij StrCenter("Test",8,"*") + @A"**Test**"܂B + + E16i2i̕ɕϊHex(Bin(R}hlj܂B + ijHex(12345)->Str 1 + @"3039"Str 1ɓ܂B + @lɖ߂́A + ij Exp("0X"+Str 1)->A + + @2ił́A + ijBin(12345)->Str 1 + @"11000000111001"Str 1ɓ܂B + ijExp("0B"+Str 1)->A + + EXg1`52܂Ŏg悤ɂȂ܂B + + Et@C[hŃtH_쐬[MK.F]L[lj܂B + @[[RN.F]͏IȎƂȂ܂B + + +v1.56 2017.6.30 x[^ŁiC^v^̂݁j + ELCD`̃tbVRg[ɂāARefrshTimel0w肷邱ƂʼnʍXVȂȂݒlj܂B + @ZbgAbvAуR}hŎw”\łB + ijRefrshCtrl 2 + @@@RefrshTime 0 + @eLXgAOtBbNXSĂ̕`R}hŃR}hsł̉ʂXVȂȂ܂B + + E1/128bPʂŎԑ҂TicksWaitR}hlj܂B + @iTicksWaitR}h̘A킹ZłB֘AăR}h̓L[ATCꕔύX܂Bj + ijTicksWait 128 + @1bԑ҂܂B + ijTicksWait -128 + @OTicksWaitR}hs1bԑ҂܂Bł1bzĂꍇ͑҂ԖŎ̏Ɉڂ܂B + ijTicksWait -4 + @OTicksWaitR}hs4/128b҂܂B[vɂ̃R}h‹Lq邾Ŗb32̃[v܂B + + +v1.55 2017.6.11 x[^ŁiC^v^̂݁j + EHR}hɃIvVp[^lj܂B + @̃IvVtƒÕJ[\ʒus܂B̓vvg"H"\܂B + ij?([x][,y][,width][,"󔒃LN^"][,R]) + @ep[^͏ȗł܂B + ij"A="?()->A + @"A="ɑē͑҂ɂȂ܂B + ij"A="?(,,,,R)->A + @"A="ɑĔ]\œ͑҂ɂȂ܂B + ij"A="?(,,8,,R)->A + @"A="ɑĔ]͑҂ɂȂ܂B͔͈͂8݂̂łB𒴂͂ł͉XN[܂B + ij?(3,4,5,">")A + @X=3CY=4̈ʒuA̒l\ē͑҂ɂȂ܂B͔͈͂5̂݁A󔒂">"Ŗ߂܂B + ij?(3,4,5,,R)A + @X=3CY=4̈ʒuA̒l𔽓]\ē͑҂ɂȂ܂B͔͈͂5̂݁A𒴂͂ł͉XN[܂B + + EAxesOnɂăOt̖ڐ肪`悳ȂƂsC܂B + + +v1.54 2017.6.3 x[^ŁiC^v^̂݁j + E̍s̏ZZɂȂĂoOC܂B + EPlotR}h2‚LineR}hŃC`悳ȂsC܂B + EPictt@CHeapiBRAMjGAŎgpꍇAۑɃXg[WɕۑݒiZbgAbvjƃR}hIvVlj܂B + ijPict #20 + @q[viBRAMj̈ƃXg[Wɓɕۑ܂B + EPictt@CHeapiBRAMjGAŎgpꍇAۑɃXg[Wɓɕۑݒlj܂B + EeLXgϊɃvOXo[\悤ɂ܂B + + +v1.53 2017.5.27 x[^ŁiC^v^̂݁j + EStrRightR}h̃oOC܂B + ijStrRight("12345",0) + @̌ʂ̓kXgOɂȂ͂"5"ɂȂĂ܂B + + EListZacoscosɂȂĂoOC܂B + EGrpah Y=R}hYnϐgȂsC܂B + ij"sin X"->Y1 + @@@Graph Y=Y1 + EɃGXP[vŃNH[e[V}[NgpĂꍇAeLXgϊȂsC܂B + ifx-CG10/20łȂ悤łBj + + ELblR}hŃxɉpgpł悤ɂȂ܂B + + + +v1.52 2017.5.16 x[^ŁiC^v^̂݁j + ELocateTextR}hɂāhh_uNH[e[V‚ĂȂꍇAȍ~̃vO񈵂ɂȂĂ܂sC܂B + ERanNorm#(RanBin#(֐lj܂B + +v1.51 2017.5.11 x[^ŁiC^v^̂݁j + Et@NVL[̃ACRVXẽACRɕύX܂B + EGCD(LCM(֐lj܂B + +v1.5 2017.5.7 x[^ŁiC^v^̂݁j + El̃R}h͂T|[g܂BZbgAbvɂC.Basic(fx-5800P)Standard(fx-9860G)Ił܂B + @͉”\ȃR}hCommand_List.txtQƂĉB + + EsR}hƂ*Row,*Row+,Row+R}hT|[g܂B + +v1.42 2017.4.30 x[^ŁiC^v^̂݁j + ELblɂƃƂgȂ̂C܂B + ECƃTuvOœLblgĂꍇAѐ悪sɂȂsC܂B + EH->AR}hŖ͂[EXE]ꍇɃt[Y邱Ƃ̂C܂B + EList܂މZŃXJ[ɗꍇ̃oOC܂B + ijList 1 + 5 -> List 2 + +v1.41 2017.4.22 x[^ŁiC^v^̂݁j + EBRAMgpɁAMats&ListC.BasicNɏȂݒ܂B(vZbgAbvݒj + @̏ꍇAC.BasicIđ̋@\AAhCgpAēxC.BasicNꍇɑOI_łMats&List܂B + @ĩAhCBRAMgpĂȂꍇj + + EMENUR}hɂĐL[ɂ͂oȂ̂C܂B + +v1.4 2017.4.16 x[^ŁiC^v^̂݁j + Edl̍s̏ZT|[g܂B + @MatszƂ݂ȂMatz񓯎m̏ŹAMatsgƂListm̏Zɂ邱Ƃʼn”\łB(List͎̂MatƓ߁j + ijMat a ~ Mat b + @sZ + ijList 1 ~ List 2 + @zZ + +v1.31 2017.4.15 x[^ŁiC^v^̂݁j + EList̗vf‚‘₵ĂĊmێdl݊ɏC܂B + + E[hɂrbgZ[ not ]_Z[ Not ]̂܂܂̂C܂B + + EStopR}hŃvOIDone\oȂƂ̂C܂B + + +v1.3 2017.4.10 x[^ŁiC^v^̂݁j + E And , Or , Xor _Zł͂ȂrbgZɂȂĂ߂ɏ݊̂C܂B + @̕ύXŃrbgZoȂȂ̂ŁArbgZqƂďBASE[hŎg[ and , or , xor, not ]lj܂B + + Ehh傤21ŏIꍇɁi]ɁHjsĂȂ݊C܂B + + EMenuR}hs[MENU]L[ŃCj[ɖ߂Ă܂݊C܂B + + EStrMidR}hɂāAR‚߂̃p[^ȗꍇɃVXeG[ɂȂsC܂B + + +v1.2 2017.3.17 x[^ŁiC^v^̂݁j + EXg̎lZ̉Ŕzisj̉Zꕔ”\ɂȂ܂B + @sƌ͍݊̂̂s񓯎m̉ZAэsƃXJ[Ẑ݂ƂȂ܂B + ijMat A + Mat B + ijMat A * B + Int Mat C + + EBG-NoneABG-PictR}ȟ݊P܂B + + EeLXg\[X̕ϊɂExp(-)̕ϊ~XC܂B + ijExp(-)9 -> Exp(-)9 + ijExp(-)9 -> e-9 + + EGetkey1CGetkey2R}h[MENU]L[ŃCj[ɖ߂Ă܂Ă̂GetkeyƓ߂Ȃ悤ɂ܂B + + + +v1.1 2017.3.11 x[^2ŁiC^v^̂݁j + E[h̃Xg@\ɑΉ܂B + + EMats\[OPTN]L[ŃXg\ɕς܂B[VARS]L[ŕ\͂o悤ɂȂ܂B + + E'CBINTA'CBDBLvOŕgꂽꍇɋ@\ȂsC܂B + + EhCharh܂܂镶̃eLXgϊ~XC܂B + + EPictq[v̈ɐݒ肵Ă鎞ɁAJgfBNgPicttH_ɓNoPict摜t@C݂ꍇ͎Iɓǂݍނ悤ɂ܂B + @PictS.Mem̈ɐݒ肵Ăꍇɂ̓JghCuPicttH_ANZX܂B + ijPict10.g1mt@CJgfBNgPicttH_ɑ݂΁APict10ŏɃANZXɂ̉摜q[vPicẗɎIɓǂݍ܂܂B + @@@݂Ȃꍇ̓G[ƂȂ܂B +@@@@@@@@@@@@@@@摜݂ꍇ́APict10ANZX̓q[vANZX݂̂ƂȂ܂B + + Et@CXgʂɂPictt@C[EXE]Ɖ摜̊mFł܂B + + EFor`NextR}hɂďlIl𒴂ĂꍇɃ[vʉ߂Ă܂݊C܂B + + + 2017.3.5 x[^1ŁiC^v^̂݁j + EXg@\T|[g܂B + ET|[gR}h + @List Ans + @{1,2,3,4,5}->List 1 + @10->Dim List 1 + @Dim List 1 + @Seq( X^2, X, 1, 10, 2 )->List 2 + @Augment(List1,List2)->List3 + @Mat>List( Mat A, 2) -> List 1 + @List>Mat( List 1, List 2,..) -> List 9 + @Fill(3,List1) + @Min(List1) + @Max(List1) + @Mean(List 1j + @SortA(List1) + @SortB(List1) + @Sum List1 + @Prod List1 + @Sigma(AϐAlAIlA) + + EXg܂މZilZƊ֐ZjT|[gĂ܂B + @T|[gρ@A + List 1[B-1] * List 2[C+1] + @T|[gρ@A + List 1 + A - B * Cos C * List 2 + @T|[g Sin List 1 + Cos List 2 * log List 3 + + EDrawStatR}hGraph(X,Y)=(R}hꕔT|[g܂B + @֘AR}hƂāA + @BG-NoneABG-PictAG-ConnectAG-Plot + @S-Gph1AS-Gph2AS-Gph3ADrawOnADrawOffAScatterAxyLineASquareACrossADot + @R}h̒ljƁA + @TMin + @TMax + @TPtch + @ViewWindowݒϐ̓ǂݏɑΉ܂B + + Et@CDeleteR}hlj܂B + ijDelete "TEST.txt" + @"TEST.txt"폜܂B + ijDelete "TEST.txt"A1 + @폜OɊmF܂B + + EfobO[hɁA[F1] (JUMP) WvTuj[[F6]XLbv_E삵Ȃ̂C܂B + + EFor`NextR}hɂĐϐ̏Il߂Ă̂C܂B + + EAns̒lɎ̌ʂɂȂĂƂijꍇAnsXVȂdlɍ킹܂B + + Es̃Xy[XɂāAIf`ThenR}hThen̑OXy[X̏ꍇɃG[ɂȂsC܂B + + EsɃ[v\Ƃ[AC]u[NȂsC܂B + ijWhile GetKey<>31:WhileEnd + + ETuvOStopR}hŏIȂsC܂B + + EϐɎgftHgsijljϐ̂̂ɕύX܂B + + EŜ̎sxxEGCg@\lj܂BZbgAbvWaitR}hŐݒ肵܂B + @ZbgAbvŐݒ肵ꍇ͑S̃vOe󂯂܂B + @X̃vOŒꍇWaitR}hgp܂B + @ijWait 100 + @@EGCgl100ݒ肵܂B + @@SH3@łSH4@łx̑xቺƂȂĂ܂B + @@EGCglA10Ŗ1/2C100Oőx1/10ɂȂ܂Bixቺ̒x̓vOɂĈقȂ܂Bj + + +v1.00 2017.2.3 x[^7ŁiC^v^̂݁j + E̕ϐႤϐłANZXł悤ɂ܂B + @AliasVarR}hlj܂B + @̃R}hgƂōő10‚܂ŃGCAXϐ𗘗pł܂B + @ugp”\ȕϐ[CHAR]őIłꕶLN^[݂̂łB + @ϐAs񖼂ƂɓɕύX܂B + @ϐɈႤϐ蓖Ăꍇ́AɎsꂽAliasVarR}h̕ϐLɂȂ܂B + ijAliasVar A + @@@+100 + @AliasVarR}hśAϐAƂĎgpł܂B + @̎̂AȂ̂ + @A+100AƓłB + + 2017.2.1 x[^6ŁiC^v^̂݁j + EϐƂĂƃƂljT|[g܂BO[oϐłȂA[JϐƂĂg܂B + @ɍs񖼂ƂĂljĂ̂ŁA1A5̐Y^ϐiMats̏ȗ`jg܂B + Eɂ镪\LiC[hjlj܂B + + 2017.1.29 x[^5aŁiC^v^̂݁j + ESDłɂăt@CXgʂ̈ړxȂsɑΏ܂B + + 2017.1.28 x[^5ŁiC^v^̂݁j + EeLXgt@Cs/ҏWꍇ́AeLXgt@ĈݕύX悤ɎdlύX܂B + @̏ꍇACasioBasicWt@C`(g1mj𓯎ɕۑ邩ǂ̐ݒZbgAbvIł܂B + + EL̎dlύXɂTuvO܂߂ׂăeLXgt@CłC.Basic^po悤ɂȂ܂B + + + 2017.1.26 x[^4ŁiC^v^̂݁j + EeLXgt@C̃Rs[yуl[̕sC܂B + + Ehh_uNH[e[VɈ͂܂ꂽ񂪕sɓnꍇɁAꕶKʂɃeLXgϊłȂsC܂B + + ECasioBasicdl̕`nR}hɂāAR}h̒"@"Abg}[Ntƕ`惂[heLXg[hOtBbN[hɊւ炸݂VRAMɕ`悷悤ɂ܂B + ijLocate 2,2,"String" + @@@Text @16,1,"TextString" + @TextR}h݂͌VRAMeLXgVRAMɕ`悵܂B + + EFkeyMenu(AReadGraph(AWriteGraphR}h̕`Ώۂ݂VRAMɕύX܂B + + EGetkeyR}hŁA[3]L[܂[1]L[[1]ɂȂĂ܂݊C܂B + + EL[XLR}hƂKeyRow(R}hlj܂B + + @@@@ԂlΉrbgi2ij + @ @ bit6 bit5 bit4 bit3 bit2 bit1 + @ Row--------------------------------------Row + @@09@ F1 F2 F3 F4 F5 F6 09 + @@08@ SHIFT OPTN VARS MENU 08 + @@07@ ALPHA ^2 ^ EXIT 07 + @@06@ XTT log ln sin cos tan 06 + @@05@ ab/c F<>D ( ) , 05 + @@04@ 7 8 9 DEL 04 + @@03@ 4 5 6 x div 03 + @@02@ 1 2 3 + - 02 + @@01@ 0 . EXP (-) EXE 01 + @ Row--------------------------------------Row + + ijKeyRow(9) + @@F4F6𓯎ɉꍇ́Abit3bit11ɂȂAԂlƂĂ + @@2^3 + 2^1 = 10 Ԃ܂B + + EMenuR}hi݊jljT|[g܂B + + +v1.00 2017.1.25 x[^3ŁiC^v^̂݁j + EStrLeft(R}hgȂȂĂsC܂B + EScreenGScreen.G@}jATvvO̊ԈႢC܂B + + 2017.1.21 + E4GoCgȏSDgpɋeʕ\̂C܂B + + 2017.1.20 ESDłɂāAs/ҏWΏۃt@CSDŎg悤ɂȂ܂B + @ZbgAbvw肵ĉBiSDł̂SDwj + + 2017.1.19 ETextR}hŕ`悳tHg̏[PhbgC`悳Ă܂݊C܂B + iSDKPrintMini\dlɂȂĂ܂Bj + + 2017.1.18 E_VerticaloOĂ̂C܂B + EOS2.09ɂčŏ̃vOsɃVXeG[o邱Ƃ̂C܂B + + 2017.1.17 E̍s̏ȗ`i@a[1]@Aa2jgȂ̂C܂B + + EϐStrɂāACfbNXJnl0̏ꍇɂStr 0g悤ɂȂ܂B + ij'#Mat 0 + @@@"String"Str 0 + + Es̃CfbNXJnlԂ"MatBase("֐lj܂B + ij'#Mat 0 + @@@10Mat A + @@@MatBase( Mat A ) + 0Ԃ܂B + + E"ElemSize("A"RowSize("A"ColSize("@R}heLXgϊłȂsC܂B + + E"DotPut("сA"Sprintf("R}hR}hƏdĂ̂ŒԃR[hύX܂B + DotPut( = DotP : 0xF94B -> 0xF74B + Sprintf( = Vct : 0xF73E -> 0xF743 + + @̃o[Wł́A\[Xǂݍ񂾎_ŎIɃR[hύX̂ňȑÕo[Wō쐬\[X͂̂܂܎sAҏWł܂B + @"DotTrim(" "DotGet("ύXɑΉ܂B + + Efx-9860GV[Y̒OtBbNXCuMonochromeLibT|[g܂B + @https://wiki.planet-casio.com/fr/MonochromeLib + @_ClrVram + @_ClrScreen + @_DispVram + @_Pixel + @_Point + @_PixelTest( + @_Line + @_Horizontal + @_Vertical + @_Rectangle + @_Polygon + @_FillPolygon + @_Circle + @_FillCircle + @_Elips + @_FillElips + @_ElipsInRct + @_FElipsInRct + @_Hscroll + @_Vscroll + @_Bmp + @_Bmp8 + @_Bmp16 + + @CasioBasic̃OtBbNXR}hdlƂ͓Ɨn[hɖʌñR}hƂȂ܂B + @̃R}h݂͌VRAM𑀍삷邾Ȃ̂ŕ`挋ʂ\ɂPutoDispDD̃R}hLCD]iʍXVjKv܂B + @R}h̎g̓}jAQƂĉB + + +v0.99v 2017.1.11 eXgŁiC^v^̂݁j + EA0`A9\L̕ϐ̎̂ƂȂs񂪊mۂĂȂꍇɂ͎IɊmۂ悤ɂ܂B + ijA1+123B5 + @AMat AMat BmۂĂȂꍇ́AϐANZXꂽ_ + @9Dim A + @9Dim B + @ƓIɎsAA1`A9B1`B9܂łg܂B + + ij'#Mat 0 + @A1+123B5 + @̏ꍇAAMat AMat BmۂĂȂꍇ́A + @10Dim A + @10Dim B + @ƓIɎsAA0`A9B0`B9܂łg܂B + + ij'#Mat 0 + @2Dim B + @A1+123B5 + @̏ꍇ́A + @10Dim A + @Mat ÂݏAMat B͍ĊmۂȂ̂B5ɃANZX_ŃG[ɂȂ܂B + @̏ꍇA0`A9B0`B1܂łg܂B + + 2017.1.9 eXgŁiC^v^̂݁j + Es̃ANZX@ƂāAϐɒɐYƂċLq邱Ƃo悤ɂĂ݂܂B + @Mat A[1,1]A[1]ƕ\L`̂Ȃȗ`łBY͐0`9݂̂łB + + @A[1C1]A[1]A1 + @A[2C1]A[2]A2 + @A[3C1]A[3]A3 + @A[4C1]A[4]A4 + @A[5C1]A[5]A5 + @A[6C1]A[6]A6 + @A[7C1]A[7]A7 + @A[8C1]A[8]A8 + @A[9C1]A[9]A9 + + ij'#Mat 1 + @10Dim A + @10A1 + @20A2 + A1+A2 + + + @Y0ĝ͍sCfbNX̏l0Ɏw肵Ăꍇ݂̂łB + + @A[0C0]A[0]A0 + @A[1C0]A[1]A1 + @A[2C0]A[2]A2 + @A[3C0]A[3]A3 + @A[4C0]A[4]A4 + @A[5C0]A[5]A5 + @A[6C0]A[6]A6 + @A[7C0]A[7]A7 + @A[8C0]A[8]A8 + @A[9C0]A[9]A9 + + ij'#Mat 0 + 10Dim A + @10A0 + @20A1 + A0+A1 + + +v0.99u 2017.1.7 eXgŁiC^v^̂݁j + EeLXgt@Ci.txt)̓ǂݍ݂Ńt@C".txt"coOC܂B + + E[OPTN][VARS][PRGM]R}hIł̃J[\ŃO[vړ悤ɂ܂B + + +v0.99t 2017.1.1 eXgŁiC^v^̂݁j + EDATE̗jvZicF[̌j~XĂ̂C܂B + + 2016.12.31 EZbgAbvłDATE/TIME\𒀎XV悤ɂ܂B + + 2016.12.26 ERTC̓t̐ݒyѓǏoR}hƂDATE,TIMElj܂B + @^̕ϐ`ƂȂ܂B + iZbgAbvݒł܂j + ij"2016/12/26"DATE + ijDATE + @2016/12/26 MON + @ƕ\܂Bj͎vZ܂B + + ij"23:59:59"TIME + ijTIME + @23:59:59 + @ƕ\܂B + + EGfB^ɂR}hj[͂ɂăR}hO[văJ[\ŃV[gJbgo悤ɂ܂B + @STD :@{IȃR}h + @GR :@OtBbNnR}h + @FN :@֐nR}h + @STR :@nR}h + @EX :@gR}h + + + 2016.12.22 E񏈗obt@TCY128oCg256oCgɔ{܂B + EeLXgt@C֕ϊꍇɊmۂobt@TCY\[XTCY1.5{2{ɑ₵܂B + EҏW”\ȂPvÕTCY32KB܂łő62KB܂łɕύX܂B + +v0.99s 2016.12.16 eXgŁiC^v^̂݁j + EGosub삵Ȃ̂C܂B + + 2016.12.15 E[hSprintf̎\oȂoOC܂B + ijSprintf("A=%3.2f",#12.345) + + ESprintfALocateATextł́vtBbNX̎]ŁA + @[hłϐ͐ϐ̂܂܂ɂȂ܂B + iύXOj + @]͎ōs邽߂ɐϐɂ́wtKv܂B + iύXj + @]͎Ƃčs܂Aϐ͐ϐ̂܂܈܂BtKv͂܂B + + 2016.12.14 EGfB^ҏW̃t@C͎ɉBʂҏWt@CƖ֌WȉʂɂȂsC܂B + + 2016.12.13 E[hŁvtBbNXtꍇɓ삵ȂoOC܂B + ij123.56+100 + + EDispR}hlj܂B + ijDisp A + @ꎞ~R}hƓl̐l\R}hłA\ɉsꎞ~邱ƖvO͑s܂B + + ERefreshCtrl R}h̒ԃR[hĂ̂ŏC܂B + RefreshCtrl = DotG : 0xF7F9 -> 0xF7F8 + + ER}h"Dot" "DotG"ƒԃR[hdȂĂ"DotTrim(" "DotGet("R}h̒ԃR[hύX܂B + DotGet( = DotG : 0xF73F -> 0xF73E + DotTrim( = Dot : 0xF74F -> 0xF73D + + +v0.99r 2016.7.24 eXgŁiC^v^̂݁j + EBRAMgpABRAM̈g؂ꍇɁAq[v̈悩̈mۂł悤ɂ܂B + + 2016.7.21 EBRAMgpAsmۂłȂꍇ̏ɕs̂C܂B + + 2016.7.20 EBRAMvOMats̈Ŏgp悤ɂ܂B + @vÖAs̈捇v256KB̊ɂȂ܂B + @t@CXgobt@̓q[v̈ŒƂȂ܂B + + EXg\̏㕔ɃXg[W̃t[GAƃt@CXg\悤ɂ܂B + @Xg[W̓vO̕ۑAуRs[Al[ŌĂ܂̂ŁAc菭ȂȂœKKvɂȂ܂B + + EClrMatōsS̏oȂ̂C܂B + + EInt֐Intg֐ɂȂĂ̂ŁAIntg֐ljāAInt֐C܂B + + +v0.99q 2016.7.3 eXgŁiC^v^̂݁j + EfobO[hɂăvO̍ĊJAg[XsꍇɉʂAȂƂsC܂B + + 2016.6.25 EAhXZq̒ljɂAMats̕񉻂݂́̂ɕύX܂B + + ESysCallCallR}hSysCall(),Call()̂悤Ɋ֐R}hƂ܂B + ijSysCall( VXeR[ԍ [,1][,2][,3][,4] ) + ijSysCall( 0x763,A,B,C,D )R + @AR4WX^AAR5WX^AAR6WX^AAR7WX^AVXeR[0x30ĂяoԂlRɓ܂B + @VXeR[0x30SDKBdisp_DrawLineVRAMƓłB + + ijCall(}VAhX [,1][,2][,3][,4] ) + ijCall( 0x8802F000,A,B,C,D )R + @AR4WX^AAR5WX^AAR6WX^AAR7WX^A0x8802F000Ԓnɂ}VvOĂяoԂlRɓ܂B + + + 2016.6.18 EENG[hŕ̏ꍇA삵Ȃ̂C܂B + EENG[h̊g3؂\ɑΉ܂B + @ZbgAbv[F4](Eng)ƁAENGItAENGI(/E)A3؂(/3)Ɛ؂ւ܂B + @R}h3؂w肷ɂ́AEngOnɐ3tāA + @EngOn3 + @Ȍ3؂o͂ɂȂ܂B + @̎ENG̕Ԃl3ɂȂ܂BiENGIt:0@ENGI:1@3؂:3j + + ElC.Basicŕ񉻂Str()R}hlj܂B + @Sprintf()R}hCdlł̏o͂ƂȂ܂AStr()łC.BasicݒiFix,Sci,Norm,ENGjɂďo͏肳܂B + ijStr(-123.4567)Str 1 + -123.4567𕶎"-123.4567"ĕϐStr 1ɑ܂B + + EϐXg\16i\ɑΉ܂B + @ϐ͂̂܂16i\ɂȂ܂Aϐ͂̒l32rbg͈͂Ɏ܂ꍇ̂16i\ɂł܂B + + E}V𒼐ڈ߂̃R}hƂPeek(APoke(ACallASysCallA + @ϐƃ\[XAhXԂVarPtr(AProgPtr(R}hA + @Cꓯl̃AhXZqAԐډZqT|[g܂B + + ijPeek(0x8802E000).BA% + ij*(0x8802E000).BA% + @0x8802E000Ԓn̓eoCg(1oCg)œǂݏoAϐAɑ܂B + ijPeek(0x8802E000).WA% + @0x8802E000Ԓn̓e[h(2oCg)œǂݏoAϐAɑ܂B + ijPeek(0x8802E000).LA% + @0x8802E000Ԓn̓eO[h(4oCg)œǂݏoAϐAɑ܂B + ijPeek(0x8802E000).FA + @0x8802E000Ԓn̓e{x(8oCg)œǂݏoAϐAɑ܂B + + ijPoke(0x8802E000).B,A% + ijA%Poke(0x8802E000).B + ijA%*(0x8802E000).B + @ϐA̒lA0x8802E000ԒnɃoCg(1oCg)݂܂B + ijPoke(0x8802E000).W,A% + @ϐA̒lA0x8802E000ԒnɃ[h(2oCg)݂܂B + ijPoke(0x8802E000).L,A% + @ϐA̒lA0x8802E000ԒnɃO[h(4oCg)݂܂B + ijPoke(0x8802E000).F,A + @ϐA̒lA0x8802E000Ԓnɔ{x(8oCg)݂܂B + + ijCall 0x8802F000,A,B,C,D + @AR4WX^AAR5WX^AAR6WX^AAR7WX^A0x8802F000Ԓnɂ}VvOĂяo܂B + + ijSysCall 0x30,A,B,C,D + @AR4WX^AAR5WX^AAR6WX^AAR7WX^AVXeR[0x30Ăяo܂B + @VXeR[0x30SDKBdisp_DrawLineVRAMƓłBʂɃC`܂B + + ijVarPtr(A%) + ij&A% + @ϐA̕ϐ̃AhXԂ܂B + ijVarPtr(Mat A) + ij&Mat A + @sA̐擪AhXԂ܂B + ijVarPtr(Mat A[20,10]) + @sA[20,10]̒li[ĂAhXԂ܂B + + ijPoke VarPtr(A%),B% + ij*(&B%)*(&A%) + @B%A%ƓłB + + ijProgPtr() + @݂̃vOi[ĂAhXԂ܂B + + + +v0.99p 2016.5.25 eXgŁiC^v^̂݁j + ECasioBasic݊dl̃pX[hɑΉ܂B + @VKt@C͎̓[F1]ŃpX[h͂ł܂B + @t@CXg[h[SHIFT]+[F4]ŃpX[h̐ݒ/o܂B + @pX[h̐ݒ肳ꂽt@ĆAs͉e܂񂪁AҏWуfobO̓pX[h͂KvƂȂ܂B + +v0.99o 2016.5.21 eXgŁiC^v^̂݁j + Et@NVj[`R}hFkeyMenu(eLXgʂɂg悤ɂ܂B + @`IvV̍ڂTw肷΃eLXgʕ`ƂȂ܂B + ijFkeyMenu(1,"ABC",T) + @eLXgʂ̈ԍ̃t@NVj[GAABC`悳܂B + ijFkeyMenu(6,"ABC",TR) + @eLXgʂ̈ԉẼt@NVj[GAABC][hŕ`悳܂B + ijFkeyMenu(6,"",TC) + @eLXgʂ̈ԉẼt@NVj[GA܂B + + Es񂲂ƂɊmێɃCfbNXx[Xݒ肷邱Ƃo悤ɂ܂B + @smێɖ0‚0x[XA1t1x[XƂȂ̂ŁAftHg̃x[XݒύX邱Ɩ•ʐݒ肪o܂B + ij{128,64}Mat A.P0 + @0x[X̍smۂ܂BCfbNX͈̔͂[0,0]-[127,63] + ij{128,64}Mat A.P1 + @Px[X̍smۂ܂BCfbNX͈̔͂[1,1]-[128,64] + + + 2016.5.20 EsVRAM蓖Ăꍇ́AɃCfbNX0n܂TCY{128,64}ŒƂ܂B + @ɁAeLXgVRAMۑ̈ƃOtBbNVRAMۑ̈sɊ蓖Ă邱Ƃł悤ɂȂ܂B + @ij{128,64}Dim Mat T.vT + @@eLXgVRAMۑGAMat TɊ蓖Ă܂BCfbNX̂Ƃl0`127A0`63ƂȂ܂B + @@݂VRAMOtBbNVRAM̏ꍇAMat TɉZScreen.TR}hVRAMeLXgʂɂMat T̓eVRAMɓ]܂B + @ij{128,64}Dim Mat G.vG + @@OtBbNVRAMۑGAMat GɊ蓖Ă܂BCfbNX̂Ƃl0`127A0`63ƂȂ܂B + @@݂VRAMeLXgVRAM̏ꍇAMat TɉZScreen.GR}hVRAMOtBbNʂɂMat G̓eVRAMɓ]܂B + @@\ɂPutDispDDR}hgpĉB + + EGetKey3ŃL[͂肭Ȃs̂C܂B + + 2016.5.19 Eʂ̃tbV}jAݒł悤ɂȂ܂BZbgAbvƃR}hŐݒł܂B + @OffFtbVRg[B\ɂĂ͏݊dlłB + @GrpFOtBbNR}ĥ݃tbVRg[LBClrText,Locate,Text,LocateYXAhh͖ňȑÕo[W݊łB + @AllFׂĂ̕`R}htbVRg[ꂽ\ƂȂ܂BKvɉPutDispDDR}hK{ƂȂ܂B + @TimeFtbVRg[Ԃݒ肵܂Bn/128bPʂʼnʍXV܂BftHg3Ŗ1/42bł̍XVƂȂĂ܂B + + Eʂ̃tbVR}hŐݒłRefrshCtrlRefrshTimeR}hlj܂B + ijRefrshCtrl 0 + @tbVRg[BOff + ijRefrshCtrl 1 + @tbVRg[LBGrp[hɐݒ肵܂B + ijRefrshCtrl 2 + @ׂẴtbVRg[LBAll[hɐݒ肵܂ + ijRefrshTime 5 + @tbVRg[Ԃ5ɐݒ肵܂B + @RefreshCtrlRefrshTimeR}h͎̒Ŏgƌ݂̒lԂ܂B + + Ẽ͎At@xbg̑啶؂ւȂ悤ɂ܂BNɑ啶ɐݒ肳鑼͏邱Ƃ܂BB + EGfB^̃T[`@\ɂāAǑ񂪍ēx\悤ɕύX܂B[AC]ŃNAł܂B + ESave/LoadR}h̃t@C̊gq͔Cӂɐݒł܂Bȗꍇ[.bin]ɂȂ܂B + + + +v0.99n 2016.5.15 eXgŁiC^v^̂݁j + EReturnR}hɂĕԂlw肪o悤ɂȂ܂B + ijReturn + @̒lAnsɓ܂B + E0x܂0XŎn܂PUi萔gȂȂĂsC܂B + Eōsꍇɋ󔒂ƉsXLbvoȂsC܂B + + 2016.5.14 EScreenR}hlj܂B + @VRAM֒ANZXꍇɁA + @Screen.t܂Screen.TŃeLXgVRAMA + @Screen.g܂Screen.GŃOtBbNVRAM`ΏۂɂȂ܂B + @܂Screen nł̒l0̏ꍇ̓eLXgVRAMAP̏ꍇ̓OtBbNVRAMƂȂ܂B + @ScreenPƂŎgƕ`ΏۂieLXgVRAM̃OtBbNVRAMj؂ւ܂B + @̒Screengƌ݂̃ANZXΏVRAMi0FeLXgVRAMAPFOtBbNVRAMjԂ܂B + + EZbgAbvɂĉBRAMgp邩ǂݒ肪ł܂B + @ił̓t@Cobt@݂̂̎gpłIɂ̓vOt@Cłgp\łBj + + 2016.5.12 ERename,Copyƃt@CdlOĂ̂C܂B(v0.99nȑO͖肠܂B) + + 2016.5.11 EOtiYn)當񃁃[iStr n)ւ̕ϊ𕶎̃Rs[\ł”\ɂĂ܂ƎdlĂ܂߂ɏdlɖ߂܂B + ijY1Str 1 + @͏lɃG[ɂȂ܂B + EOtiYn)[͎Ƃĕ]̂ŕԂl͐lɂȂ܂Bidlj + ijY1A + + + 2016.5.10 EB̈gt@Cobt@֘AŒvIoÔC܂B + EʏR}hƂPutDispDDR}hlj܂B + + 2016.5.9 ETutH_ɈړꍇɃXg̈ԏɃTutH_̐擪t@C悤ɂ܂B + ECɓ胊Xg̃vOJgtH_ȊOɂꍇ̓tH_\悤ɂ܂BiA擪5܂łłBj + EAB̈Ƀt@CXg̃obt@ړĂ݂܂Bifx-9860GIIȍ~j + @ɂtH_ړJԂĂq[v̒fЉ͔ȂȂ܂B + + 2016.5.8 EEngR}hCasioBasiclEng[h؂ւƂ܂B + @Eng[h̏Ԃmɂ́iEngjœǂݏo܂B + @Ԃl0FEngOff + @Ԃl1FEngOn + + EGetkey1AGetkey2vO̍ŌɗɃR}hJԂsC܂B + ECɓ̍ő吔𒴂ꍇ̃G[bZ[WFull FavoritesɕύX܂B + + 2016.5.7 ECɓ胊XgtH_ɑΉ܂BtH_ړĂCɓ胊Xg邱Ƃ܂B + @TutH_烋[gւ̈ړ[SHIFT]+[EXIT]iQUIT)łAJ[\Xg̐擪ɂꍇ[EXIT]Ń[gɈړ悤ɕύX܂B + + Et@Cl[͎ɂɃtH_w肷ƕʂ̃tH_̃t@CɃANZXł܂B + @tH_؂蕶"^""_"(obNXbV)ɂȂ܂B + ijProg "/SUB/SAMPLE" + ijSave "/SUB/TEST",Mat A + ijLoad("SUB/TEST")Mat A + + Et@NVj[`R}hFkeyMenu(lj܂B + ijFkeyMenu(1,"ABC") + @ԍ̃t@NVj[GAABC`悳܂B + ijFkeyMenu(6,"ABC",R) + @ԉẼt@NVj[GAABC][hŕ`悳܂B + ijFkeyMenu(6,"",C) + @ԉẼt@NVj[GA܂B + + EIf`ElseIf̓C܂B + EeLXgϊ[EXE]L[ł삵Ă̂C܂B + Es񖼂[hŎgȂ̂C܂B + ECɓ̍ő吔𒴂ꍇ̃G[bZ[WFavorites FullɕύX܂B + + Ẽo[Wݒۑt@CύXɂȂ܂̂ňȑÕo[W܂łƂ͐ݒt@Č݊Ȃ܂B + + +v0.99m 2016.5.4 eXgŁiC^v^̂݁j + EExp>Str()R}hOtiYn)當񃁃[iStr n)ւ̕ϊł܂B + ijExp>Str(Y1, Str 1) + @AOtiYn)當񃁃[iStr n)ւ̕ΐÃRs[\ł”\łB + ijY1Str 1 + Esւ̑ŁAs񂪊mۂĂȂꍇNo Matrix array ɕύX܂B + + 2016.5.2 + ECircle,F-LineXor[hł̕`ɕs̂C܂B + Es񖼂ɂvf̌^̃ftHgwiMat B, Mat C, Mat D, Mat W, Mat I, Mat Ljp~܂B + @ftHgł͎[hłׂ͂ĎsA[hłׂ͂ĐsƂȂ܂B + ELN^͂ŃAt@xbg̃~jLN^iF5jTextR}hΉ\ȂsC܂B + +v0.99l 2016.4.16 eXgŁiC^v^̂݁j + EH̓R}hɂā⁓̃TtBbNXG[ɂȂĂ̂C܂B + 2016.4.13 EXg[WɃt@CԂŕs̂C܂B + + 2016.4.10 E (deg) r (rad) g (gra)̊pxPʓ͂lj܂B + E60i̓o͂ɑΉ܂B + ij123456.78A + @A̒l12.582438888889ƂȂ܂B + ijA >DMS + @ʉEl߂Łu123456.78v\܂B + @CasioBasicł͕\݂̂̕ϊɑ΂C.Basicł͕ւ̕ϊo܂B + ijA >DMSStr 1 + @Str 1 Ɂu123456.78v܂B + + *pxPʓ͂́u(deg)v60i̋؂uv̓LN^Ⴂ܂B + + +v0.99k 2016.4.3 eXgŁiC^v^̂݁j + E\Ő̎wl(+)\ĂȂ̂C܂B + E̎\Ŏw\ȂsC܂B + E^C}[ϐTicksւ̑oȂ̂C܂B + 2016.3.27 EGfB^̃Wv@\̔CӍsւ̃Wv([F1][F3])Ō݂̍sԍ\悤ɂ܂B + + +v0.99j 2016.3.18 eXgŁiC^v^̂݁j + EGfB^ɃWv@\lj܂B + @ɂt@NVL[ATCꕔύX܂B + + @-[F1] (TOP) t@C擪ɃWv܂B + @-[F2] (BTM) t@CɃWv܂B + + @ + + @-[F1] (JUMP) WvTuj[\܂B + @ [F1] (TOP) t@C擪ɃWv܂B + @ [F2] (BTM) t@CɃWv܂B + @@@[F3] (GOTO) t@C̔Cӂ̍sɃWv܂B + @@@[F5] (Skip) iZbgAbvŐݒ肳ꂽjy[WXLbvAbv܂B + @@@[F6] (Skip) iZbgAbvŐݒ肳ꂽjy[WXLbv_E܂B + @-[F2] (SRC) T[`[hɓ܂B + + EWv@\ɔCӂ̃y[WXLbv@\̂PageUp/Down@\ꕔύXłB + + @[SHIFT]+{UP]@@1y[Wi6sjPageUp܂B + @[SHIFT]+[DOWN]@1y[Wi6sjPageDown܂B + + E[AC]L[ł̃u[Ñ|bvAbvĊJ”\ɂȂ܂B + [F1][EXE]L[ōĊJł܂B + + +v0.99i 2016.3.15 eXgŁiC^v^̂݁j + EGfB^RollUp/Down@\PageUp/Down@\ɖ̕ύX܂B + EZbgAbvɂĉy[WPy[Wi6CjPʂŎRɐݒ”\ɂȂ܂B + @[SHIFT]+{UP]@@wy[WPageUp܂B + @[SHIFT]+[DOWN]@wy[WPageDown܂B + + +v0.99h 2016.3.12 eXgŁiC^v^̂݁j + Et@CXgǂݍݎɃ|bvAbvErW[}[J[\lj܂B + + EGfB^Ńt@Č݈ʒuKCh}[J[E[ɒlj܂B + EGfB^̌̍ŌŃt[Y邱ƂoOC܂B + EGfB^RollUp,RollDown@\lj܂B + @[SHIFT]+{UP]@@50sRollUp܂B + @[SHIFT]+[DOWN]@50sRollDown܂B + + EJbRm̏ZƊ֐̑gݍ킹G[ɂȂĂoOC܂B + ij@(1+2)(3+4)^3 + + EOt\ʼnʊOɏoĂ܂Ot`悳ȂoOC܂B + + +v0.99g 2016.3.5 eXgŁiC^v^̂݁j + Efx-5800Pl̔z񏉊R}hg悤ɂȂ܂B + ij100Dim Z + @{100,1}Dim Mat Z + @ƓɂȂ܂B + ij0Dim Z + @ClrMat ZƓłB + + @eLXg̕ϊłfx-5800Pl + @100DimZ + @ƋLqĂOkłB + + EvOǂݍݎɃȂG[Tu[`‚Ȃꍇ̃G[肭ĂȂ̂C܂B + + +v0.99f 2016.3.2 eXgŁiC^v^̂݁j + Eϐꗗ\ɂĒʏO[oϐƃ[Jϐʂ邱Ƃo悤ɂȂ܂B + @[Jϐ́]LN^[\܂B + + EłMats̕\LɂāAMatȗ邱Ƃo悤ɂȂ܂B + ijA[X]+B[Y]X[Z] + @Mat A[X,1]+Mat B[Y,1]X[Z,1]ƓɂȂ܂B + + +v0.99e 2016.2.29 eXgŁiC^v^̂݁j + EBasiceLXgϊɈꎞo͖߂"Disps"ɕϊ܂s͂Ȃ̂ŁAs(CR,LF)lj悤ɂ܂B + @Aꎞo͖߂̎s̏ꍇ͉s(CR,LF)lj܂B + EeLXgBasicϊɁAR}hɋ󔒂KvȃR}h܂A󔒂Ăϊł悤ɂȂ܂B + @ׂẴR}hɂ͑ΉĂ܂B̃R}ĥ݋󔒖ϊɑΉłB + Then Abs sin sinh + Else Int cos cosh + Default Frac tan tanh + Save Log sin^-1 sinh^-1 + Plot ln cos^-1 cosh^-1 + Prog Sqrt tan^-1 tanh^-1 + + EeLXgϊ̌ˍDoR}hƊԈႦĂ܂߂DotPut,DotGet,DotLife̊eR}hdotPut,dotGet,dotLifeɕύXĂ̂ɖ߂܂B + ECɓ胊Xg̈ԉɈړłȂȂĂ̂C܂B + + +v0.99d 2016.2.27 eXgŁiC^v^̂݁j + EeLXgt@CC.Basic\[Xt@Cւ̕ϊɑΉ܂B + @gqi.txtj̃eLXgt@CXg[Wɒuƃt@CXgɕ\G1Mt@ClɈƂo܂B + @Basic\[Xt@CG1Mt@C͊gq͕\܂񂪁AeLXgt@C͊gqi.txtj܂ŕ\܂B + @G1Mt@CƓlɂ̂܂ܕҏWAs邱Ƃ”\łBiϊԂ̂ŏԂ܂Bj + @t@C̕ϊ݂̂̏ꍇ̓t@C[h[F6]+[F1]ŕϊJn܂B + @eLXgt@C̏ꍇG1MɁAG1Mt@C̏ꍇ̓eLXgt@Cɑݕϊ܂B + @R}h̕ϊKfx-CG20fx-FD10ProɏĂ܂B + + EeLXgϊ̌ˍDoR}hƊԈႦĂ܂߂DotPut,DotGet,DotLife̊eR}hdotPut,dotGet,dotLifeɕύX܂B + + +v0.99c 2016.2.13 eXgŁiC^v^̂݁j + Es̗vf̏lƂ0Ił悤ɂȂ܂B + @ZbgAbv̓Rgł̋Lqōs̎n܂Ił܂B + ij#Mat 1 + @@]ʂ1n܂܂B + ij#Mat 0 + @@{3,2}Dim Mat A + @mۂs A[0,0]`A[2,1]ƂȂ܂B + + @ɉʍW0܂ŗLɂȂ܂BőSʂ`ΏۃGAƂȂ܂ + ijPxlon 0,0 + + Eš^(1rbgAoCgA[hAO[hAjsmیɔCӂɕύXł悤ɂȂ܂B + ij[[1,2,3,4][5,6,7,8]]Mat A.B + @@@Mat ADim Mat A.W + @oCg^Mat As[h^ɕύXł܂B + @vf͕ύX̌^TCYɉĕω܂B + @[[0x12,0x34][0x56,0x78]]Mat A.W + @ƓʂɂȂ܂B + + iӁjPrbg^s񂩂̕ύXA܂Prbg^sւ̕ύX͍sƗ񂪔]܂B + @͂Prbg^sX,Y^ŎĂ邽߂ɒʏm,n^sƂ͓]us̊֌WɂȂ܂B + @{128,64}Dim Mat A.P + @LCDʂ̃obt@ƂĊmۂ܂B + @Mat ADim Mat A.B + @oCg^sɕύXƁA + @vfTCY{64,16}ɂȂ܂B + + +v0.99b 2016.2.9 eXgŁiC^v^̂݁j + EfobO[hg܂B + @t@C[h[SHIFT]+[F6]ŃfobO[hɓ܂B + @[F1]FJ[\ʒuvOĊJ܂B]ContƓłB + @[F2]FJ[\ʒug[XsBR}hsAGfB^ʂɖ߂܂B + @[F3]FJ[\ʒug[X+XebvI[o[BTu[`͈CɎs܂BXebvsAGfB^ʂɖ߂܂B + @[F4]FJ[\ʒuXebvAEgBTu[`̏I܂ňCɎs܂BXebvsAGfB^ʂɖ߂܂B + @[F5]FGfB^Xg\ƃvOsʂ̐ؑւ܂Bؑ֌sʂێ̂Ŏsʂ̂܂[F1]-[F4]̃fobO삪”\łB + @[F6]FfobOj[ƃGfB^j[؂ւ܂BsʁiOtBbN/eLXgj̏ꍇ̓t@NVj[\܂B + OtBbNʂƃeLXgʂ̐ؑւ[SHIFT]+[F6]łB + + EG[Nꍇ̏ύX܂B + @]̓vOsׂĒ~ăGfB^ɖ߂Ă̂AsfăfobO[hŃGfB^ɖ߂悤ɂ܂B + @G[ӏCAfӏvOɕA邱Ƃ”\ɂȂ܂B + + EACBreakR}hɋ@\lj܂B + @StopR}ht邱ƂŁAACBreakStopƂȂ܂A + @ȍ~ɎsACBreakR}hׂăLZ܂B + @ZbgAbvł̃LZƓłB + + EobNCgR}hlj܂BobNCgfx-9860GIÎݑΉƂȂ܂B + ijBacklight n + @n=0@obNCg + @n=1@obNCg_ + @n=2@obNCg] + ijBacklight + @obNCg̏ԂԂ܂B + + +v0.99a 2016.2.7 eXgŁiC^v^̂݁j + ESprintfALocateATextł́vtBbNX͎]Ƃ܂B + @[hł͏ɐlȂ̂ŁAvtBbNXtł͎]ŎlԂ܂B + @[hłӖ͖̂ł[hɂSprintfLocateATextR}hŎlƂo܂B + ijLocate 1,1,123+0.456 + @[hł͐lɊۂ߂123ƂȂĂ܂̂łA + ijLocate 1,1,123+0.456 + @vtBbNXtƎ123.456ƕ\܂B + @]͎ōs邽߂ɐϐɂ́wtKv܂B + + ESH4Ałfx-9860GIIGetkeyR}hɂGetkey1`2Ɠl[SHIFT]+[OPTN]ł̃obNCg䂪”\ɂȂ܂B + @SH3ł͈ȑOobNCg䂪”\łB + @[SHIFT]+[AC]ł̓dOFFɂ͖ΉłB + + E莞ԃL[͑҂Getkey3lj܂B + @Getkey1ñR}hł͂ȂGetkeyñR}hƂȂ܂B + ijGetkey3(128) + @R}hs̃^C}[Ƃ128TicksJEgi1bj̃EGCgԒɃL[͂΍ŌɉꂽL[R[hԂ܂B + ijGetkey3(128,A) + @A^C}[̏lƂČ݂̃^C}[l128TicksJEgo‚܂ŃL[҂܂B + + +v0.99 2016.2.5 eXgŁiC^v^̂݁j + EvOXebvsfobO[hlj܂B + @t@C[h[SHIFT]+[F6]ŃfobO[hɓ܂B + @[AC]ł̈ꎞfACBreakR}hŒffobO[hɂȂ܂B + @[F1]FvOĊJ܂B]ContƓłB + @[F2]FXebvsƂȂ܂BXebvsAGfB^ʂɖ߂܂B + @[F6]FvOfỎʁiOtBbN/eLXgj\܂B + OtBbNʂƃeLXgʂ̐ؑւ[SHIFT]+[F6]łB + + EStrϐ̎̂ƂȂMatsCӎwł悤ɂȂ܂B + @StrϐgOɃRgł̋LqƂȂ܂B + ij'#Str A + @StrϐMat AƂĊmۂ܂B + @{20,65}Dim Mat A.B + @ƓłB + ij'#Str B,30,256 + @StrϐMat BƂ30A255܂ʼn”\ȕϐƂĊmۂ܂B + + E1/128s̃^C}[ϐƂāɉTickslj܂B@\Iɂ͑SłB + + +v0.98 2016.2.3 eXgŁiC^v^̂݁j + EJi+LtextR}h\ɑΉ܂B + @LN^Iʂ[OPTN]TextR}hŕ\镶ɂȂ܂B + + EMats̕񈵂Łɉāgpł悤ɂȂ܂B + ij$Mat A[1] &Mat A[2] + + ECasioBasic݊̕֐ƂāA + +@񓯎m̘A + StrJoin( + StrLen + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp( + StrUpr( + StrDwr( + StrInv( + StrShift( + StrRotate( + Str 1-20 + @lj܂B + @dlƂقڌ݊ł኱̍ق܂B + @Str 1-20MatŝijÖٓIɎgp܂B + @Stȑ͉wȂΎ̂悤Mat ss̏Iɍs܂B + @{20,65}Dim Mat s + @ƂƂŁA + @Str 3́Mat s[3]܂́Mat s[3]Ɠ`ƂȂ܂B + @Str̓ftHgłQO܂ŁAi[”\񐔂͂PoCg64܂łƂȂ܂A + @O + @{30,256}Dim Mat s + @Ƃ悤ȏĂStr1-30܂ŎgAi[”\255܂łƂȂ܂B + + @fx-9860GIIŎg镶͂PoCgƂQoCgA + @ꕔ̊֐ƋLAꕶAJiQoCgƂȂ܂̂ŁA + @ł͂PoCgƂQoCg݂ԂƂȂ܂A֐ł̈͏lɂׂĂPƂȂ܂B + @񂪊i[ꂽsɒڃANZXꍇ͕̈ʒuɒӂĉB + + EExp(͈ȑOEval(ƓȂ̂Eval(폜܂B + + Elj̕֐ƂCdlSprintf(lj܂B + idljSprintf( "wq" , P[ ,Q , R]) + ijSprintf("A=%4d B=%3.2f",%A,#B)Str 1 + @ A=1234,B=45.678̏ꍇA + @Str 1ɑ镶 + @"A=1234 B=45.68" + @ƂȂ܂B + @wCłsprintfƌ݊Ƃ̂܂CdlƂȂ܂B + 3‚܂Ŏw肷邱ƂoA//񂪎w”\łB + @vtBbNXŐwAvtBbNXŎwƂȂ܂B + vtBbNXȗꍇ͂̎_ł̎s[hi/jƂȂ܂B + wƈ̑Ή̃G[`FbN͖̂ŁASprintf(R}hŃG[Nꍇ̓ZbgċNƂȂ”\܂B + + +v0.97a 2016.1.25 eXgŁiC^v^̂݁j + ETuvOȂƁi15ȏjoȂȂoOC܂B + @ɊJTuvO1530ɑ₵܂B + + Es̃TCY擾֐lj܂B + EElemSize( + @Pvf̃TCYirbgjԂ܂B + ij@ElemSize( Mat A ) + EColSize( + @{m,n}mCsTCYԂ܂B + ERowSize( + @{m,n}nCTCYԂ܂B + + +v0.97 2016.1.24 eXgŁiC^v^̂݁j + EMatsւ̑̕AΉ܂B + ij["ABC","TEST","1+3+5"]Mat A + @oCg^Mat A[3,6]sIɊmۂĂꂼ̗vfɕzu܂B + @Mat A[1,1]="ABC" + @Mat A[2,1]="TEST" + @Mat A[3,1]="1+3+5" + @ƂȂ܂B + @ΉR}h"ABC"ɃANZXɂ&Mat AA&Mat A[1],&Mat A[1,1]ƂȂ܂B + @"1+3+5"ANZXɂ&Mat A[3],&Mat A[3,1]ƂȂ܂B + ijLocate 1,1,&Mat A + @Locate 1,1,"ABC"ƓłB + ijLocate 1,1,&Mat A[3,3] + @Locate 1,1,"3+5"ƓłB + + o[Wł̕ΉR}hłBhh̑ɁMat`Ŏgp܂B + Ehh + ij&Mat A[1] + @@"ABC"ƓłB + EH + ijH&Mat A + @sMat Aɕ͂܂BmۂĂvfŕ܂B + ELocate + EText + ELocateYX + EEval( + ijEval("1+2+3")6 + ijEval(&Mat[3,3])8 + 𐔎Ƃĕ]AlԂ܂B + + EACBreakR}hlj܂B + @vO[AC]ł̈ꎞ~ƓʂƂȂ܂B + @ZbgAbvɂACBreakR}h̗L/̐؂ւo܂B + @(off)ɂꍇ̓X[ăvO̎sɉeyڂ܂B + + Et@C[hCopy@\lj܂B + @Iꂽt@Cʂ̃t@CŃRs[܂B̏ꍇ͉܂B + @t@NVL[ŝ߂Ƀt@NVL[̊ꕔύX܂B + + +v0.96 2016.1.22 eXgŁiC^v^̂݁j + EC.Basic\[Xt@CeLXgt@Cւ̕ϊɑΉ܂B + @t@C[h[SHIFT]+[F6]ŕϊJn܂B + +v0.95a 2016.1.20 eXgŁiC^v^̂݁j + EIsExist(R}hlj܂B + @w肳ꂽt@C݂Ȃꍇ0ԂlƂȂ܂B + @t@C݂ꍇ̓t@CTCYԂlƂȂ܂B + ijIsExist("TEST") + @"TEST.bin"݂΃t@CTCYA݂Ȃ0ƂȂ܂B + +v0.95 2016.1.19 eXgŁiC^v^̂݁j + ESϐ[Jϐ̂[JϐɂϐCӎwł悤ɕύX܂B + @ftHgł͏ϐׂ͂ăO[oϐƂȂ܂A + @vOLocalR}hŕϐw肷Ƃ̕ϐ͂̃vOŎg郍[JϐƂȂ܂B + ijLocal x,y,x + @[JϐƂĂCCw肵܂B +@@@@@@@@@@@@@wł̂͏ϐ݂̂ōő10‚܂Ŏwł܂B + @܂̕ϐ̏ňtProgŃ[Jϐɑ܂B + + ijTuvO"TEST"ŁA + @@@Local x,y,x + @iLqʒu̓TuvOł΂ǂł‚łBj + + @@@Prog "TEST",123,456,N + @TuvO"TEST"̎sɁA[JϐƂx,y,zmۂA + @123xA456yANzAȊO̓O[oϐƂȂ܂B + + [Jϐg悤ɂȂƂōċAvO”\ɂȂ܂A + ł̓ŃlXg30wx܂łƂȂĂ܂B + +v0.94 2016.1.16 eXgŁiC^v^̂݁j + ESave/LoadR}hlj܂B + ijSave "TEST",Mat A + ijLoad("TEST")Mat A + @Mat As̓eۑAǂݍ݂܂B + @t@C8܂ŁAgq[.bin]ŒłB + @AANZXł͍̂sf[^݂̂ƂȂ܂B + @ۑ`̓wb_AoCi[f[^̂܂܂̃f[^t@CƂȂ܂B + + ijSave "TEST",Mat A[5,1] + @Mat A[5,1]Ō܂ŕۑ܂B + ijLoad("TEST",16)Mat A[10,1] + @ۑꂽf[^16oCgڂ̃f[^Mat A[10,1]ɓǂݍ݂܂ + + EProg "`"R}hňLq邱Ƃo悤ɂȂ܂B + @̕ύXɔAϐׂ͂ă[JϐƂȂ܂B + @̈ԖڂaAԖڂbAȉz܂ł̃[JϐɎIɑ܂B + ijProg "TEST",123,456,N + @TuvO"TEST"̎sɂ́A + @123aA456bANcAd`z͕slƂȂ܂B + + EGosubR}hlj܂B + ijGosub A + @Label An܂vOsReturnR}hŕA܂B + ijGosub A,123,456 + @ProgR}hlɎg܂AvOȂ̂őϐƓłB + + +v0.93 2016.1.10 eXgŁiC^v^̂݁j + EDotnR}h̃G[Â̂C܂B + + E1rbgoCi[^slj܂B + @smێ[.P][.p]t1rbgsɂȂ܂B + @Pvf̎l0ƂPƂȂ܂B + + @C.BasicŎwłs̗vfw܂Ƃ߂ƁA + @ftHgōs񖼂̃At@xbg + @C,B́i8rbgjoCgsƂȂ܂Bl͈̔͂́i-128`127jłB + @D,Ẃi16rbgj[hsi-32768`32767j + @I,Ĺi32rbgjOsi-2147483648`2147483647j + + @܂AsmێɃTtBbNXw肷ƃftHgɗD悵ėvfwł܂B + @[.P]܂[.p]Łi1rbgjoCi[s + @[.B]܂[.b]Łi8rbgjoCgs + @[.W]܂[.w]Łi16rbgj[hs + @[.L]܂[.l]Łi32rbgjOs + @[.F]܂[.f]Łi64rbgj{xs + + EFillR}hlj܂B + @C.Basicł́A123Mat A@̌`ŃT|[gĂs̑Svfɓl@\łA + @CasioBasicɕW̃R}h܂̂Œlj܂B + ijFill(123,Mat A) + + ETrnR}hlj܂B + ]usɕϊ܂B + @CasioBasicƂ͈ႢAs񂻂̂̂]uϊ܂B + @ijTrn Mat A + sA]uϊ܂B + + @ɁA1rbgs͉ʂVRAMƓ\ƂȂ̂ŁA + @[.V]܂[.v]w肷VRAM127sx63̍sɊ蓖Ăēǂݏo悤ɂĂ݂܂Bib@\j + @ij{127,63}Dim Mat G.V + @@Mat GɃANZX邱Ƃł̎_łVRAM𒼐ړǂݏł܂\nR}hł͂Ȃ̂ŁA + @@ʕ\ꍇ́AR}hsɋ\Kv܂B + + @ij{127,63}Mat G.V + Text 1,1,"" //@OtBbNʑIĩOtBbNR}hłj + 1Mat G[63,31] + Text 1,1,"" //@OtBbNʋ\ĩOtBbNR}hłj + OtBbNʂ̐^񒆂ɓ_ł܂B + PxlOn 31,63ƓłB + + @ij{127,63}Mat G.V + Locate 1,1,"" //@eLXgʑIĩeLXgnR}hłj + 1Mat G[63,31] + Locate 1,1,"" //@eLXgʋ\ĩeLXgnR}hłj + eLXgʂ̐^񒆂ɓ_łĂ܂B + + +v0.92 2016.1.4 eXgŁiC^v^̂݁j + EElseIfIf̓q\̒ŎgꂽꍇɊ҂ɂȂȂoOC܂B + Es̋󔒂̓ǂݔ΂肭sȂƂ낪̂C܂B + +v0.91 2016.1.3 eXgŁiC^v^̂݁j + Et@CύXAѐVKt@C쐬Ƀt@CXgňႤt@CĂ̂C܂B + + EieXg@\jMatsGfB^ɂ2iA16ił̕\ł悤ɂȂ܂B + @sҏW[h[F5]2i\A[F6]16i\ɂȂ܂B + @10i\ɖ߂ɂ͍ēx[F5][F6]܂B + @A2i\̓oCgi1oCgjƃ[h^Cvi2oCgj̍s܂łłB + +v0.90a 2016.1.1 eXgŁiC^v^̂݁j + El܂̓t@C͎Ƀt[Y邱Ƃ̂C܂B + +v0.90 2015.12.31 eXgŁiC^v^̂݁j + E萔lɂāACꓯl̃vtBbNX(0X܂0Bjt32rbg܂ł16iA2i\Lgpo悤ɂȂ܂B + ij0XFF,0B1010011 + + EMats񏉊R}h[[ ]]ɂāAs󔒂邱Ƃ”\ɂȂ܂B + ij + @[[0B11001100, + @@0B00110011, + @@0B11001100, + @@0B00110011, + @]]Mat A.B + + Et@C̏폜Al[Ȃꍇ̓t@CXgēǂݍ݂Ȃ悤ɂ܂B + @t@CύXȂꍇ̃t@CXg\ŕKvȏɑ҂邱ƂȂ܂B + + +v0.89 2015.12.27 eXgŁiC^v^̂݁j + Esɋ󔒂ĂG[ɂȂȂ悤ɂ܂B + @CfgtČՂo܂B + + EElseIfR}hlj܂B + ij + If A:Then + Locate 1,1,"A" + ElseIf B:Then + Locate 1,2,"B" + EndIf + + EIfɑΉIfEndꍇɃG[Ƃ邩ǂZbgAbvőIo܂B + @ZbgAbvŃ`FbNOnɂΎsɑΉIfEndIfR}h̉ӏŃG[ɂȂ܂B + + ESwitchR}hlj܂BCꓯltH[X[‚łBDefault͍ŌłȂƊ҂ɂȂ܂B + @VKR}hSwitchACaseADefaultASwitchEndƂȂ܂BBreak͏]R}hłB + ij + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + + + +v0.88 2015.12.24 eXgŁiC^v^̂݁j + EJigƃGfB^t[YoOC܂B + ELN^A̓[hłPڂ͂Ȃ̂C܂B + EvOŃ^CϐύXꍇɃvO̎ԌviTimeDspjsmɂȂ̂C܂B + + ELocateR}h̕\wlj܂B + @R}h̍Ō[,R]Ŕ]\ƂȂ܂B + ijLocate 1,2,"Test",R + @@"Test"OtBbNW(1,2)ɔ]\ŕ\܂B + + ETextR}h̕\wlj܂B + @R}h̍Ō[,R]Ŕ]\A[,O]Or\A[,V]Ŕ]Or\ƂȂ܂B + @[.N] Normal + @[.R] Reverse + @[,O] Or + @[,V] reVerse or + ijText 20,80,"Test",R + @@"Test"OtBbNW(80,20)ɔ]\ŕ\܂B + + EOtBbNʂLocateƓ\LocateYXR}hlj܂B + @WwTextR}hƓYWɂȂ܂B + @R}h̍Ō[,R]Ŕ]\ƂȂ܂B + ijLocateYX 20,80,"Test",R + @@"Test"OtBbNW(80,20)ɔ]\ŕ\܂B + + EOtBbNʂ̃rbg}bvf[^rbgPʂœǂݎReadGraph(R}hlj܂B + iPjReadGraph(px1,py1,px2,py2)Mat A + @@OtBbNʂ(px1,py1)-(px2,py2)͈̔͂Mat AsiIɃoCgwjɎ荞݂܂B + @@s͎OɊmۂĂKv͂܂BIɓK؂ȍsTCYŊmۂ܂B + @@WriteGraphR}hł̂܂܎gf[^ƂȂ܂B + + Erbg}bvf[^\WriteGraphR}hlj܂B + @rbg}bvf[^͗\Matsɓ͂Ă܂B + iPjWriteGraph x,y,dx,dy,Mat A ,P1[,P2] + @@OtBbNʂ̍W(x,y)蕝dxAdy͈̔͂Mat Ãf[^`悵܂B + @@P1̓f[^̕\OHw[,N]ł̂܂܉HA[,R]Ŕ]A[,M]ŃbVHA + @@P2͎w薳ŃI[o[Cg\A[,A]And\A[,O]Or\A[,X]Xor\ƂȂ܂B + ij[[1,2,4,8,16,32,64,128]]Mat A + @@WriteGraph 80,20, 8,8, Mat A, N + @@OtBbNʂ̍W(80,20)΂߂̐[/]`悳܂B + + iPjWriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2] + @@OtBbNʂ̍W(x,y)蕝dxAdy͈̔͂Mat A[m,n]̃f[^`悵܂B + ij[[16,32,64,128][128,64,32,16]]Mat A + @@WriteGraph 80,20, 4,4, Mat A[1,1], N + @@WriteGraph 80,24, 4,4, Mat A[2,1], N + @@OtBbNʂ̍W(80,20)[<]̐}``悳܂B + + @@WriteGraph 80,20, 4,8, Mat A, N + @@łʂƂȂ܂B + + rbg}bvf[^8rbgPʂōオɂȂ܂B + + + +v0.87b 2015.12.20 eXgŁiC^v^̂݁j + EGfB^ł̃L[s[gԂ̐ݒ肪o悤ɂȂ܂B + @ZbgAbvwł܂B + @Key 1st time: 25ms`1000ms (ftHgl 500ms) + @@s[gJn܂ł̎ (25msP) + @Key Rep time: 25ms`500ms (ftHgl 125ms) + @@s[gp (25msP) + + Eϐ\ʂ₷悤ɐϐɁt܂B + +v0.87a 2015.12.19 eXgŁiC^v^̂݁j + EVR}hłׂ̍ȃoOC܂B + +v0.87 2015.12.18 eXgŁiC^v^̂݁j + + EGfB^G<>T؂ւ[SHIFT]-[F6]Ɏ܂B̂߂Ɍ[SRC]L[̊[F5]Ɉړ܂B + + ERectFillRectR}hlj܂BDotnR}hƓWwƂȂ܂B + @ijRect 1,1,127,63 + @@@ʂςɘg`܂B + @ijFillRect 1,1,127,63 + @@@ʂhׂ܂B + + EOtBbNR}h̖[,C]Ə܂B[,X]Ŕ]܂B + @ijFLine 1,1,30,20,C + @ΏۃR}h́ALine,FLine,Vertical,Horizontal,Circle,Rect,FillRectƂȂ܂B + + EStoPict/RclPictR}hq[vœ삷郂[hlj܂B + @ZbgAbvɂăXg[WƂ̐؂ւɂȂ܂B + @Pictt@Č݊Ȃɑxサ܂B + @Basič݊͊mۂĂ܂̂ŁACasioBasic̃\[X͂̂܂܂œ܂B + + +v0.86 2015.12.15 eXgŁiC^v^̂݁j + CasioBasicMatš•ʏɑΉ܂B + ij[[1,2,3][4,5,6]]Mat A + +v0.85 2015.12.15 eXgŁiC^v^̂݁j + 1/128bPʂŃJEg鎞Ԍvṕϐւ̏o悤ɂȂ܂B + ij0 + +v0.84 2015.12.14 eXgŁiC^v^̂݁j + LN^IʂŘA̓[hlj܂B + [SHIFT][F1]`[F6]x邱ƂŘA̓[hɂȂ܂B + +v0.83b 2015.12.13 eXgŁiC^v^̂݁j + SDK̃RpCSPEEDIvVwɕύX܂B + v0.835x܂B + +v0.83 2015.12.12 eXgŁiC^v^̂݁j + R}h́uCMDvʂŃt@NVL[Ɂu=>vlj܂B + rZq[SHIFT]L[6ޑSoĂ܂B + + ufviRg)̒オufviRg)̏ꍇ + ufviRg)̒オu/v̏ꍇɕύX܂B + uf/vȍ~̓Rgł͂ȂR}hƂĎs܂B + C.Basic쎞ɂ̂ݎsR}hLqł܂B + + u=>vR}hutrue/falsev́ufalsevŏIꍇ̏C܂B + +v0.82 2015.12.11 eXgŁiC^v^̂݁j + 8̃t@Cŕۑ⃊l[ƃt@CĂ̂C܂B + + RanInt#֐̃oOC܂B + + Xg[W̋󂫏Ȃꍇɕۑ⃊l[悤ƂꍇA + ̃t@Cی삷邽߂ɁhNot enough SMEMhG[bZ[Wo悤ɂ܂B + G[oꍇ̓Xg[W̍œKKvłB + + ufviRg)̒オufviRg)̏ꍇA + uffvȍ~̓Rgł͂ȂR}hƂĎs܂B + C.Basic쎞ɂ̂ݎsR}hLqł܂B + + CtQ[pR}hADotLife(R}hlj܂B + ijDotLife( Mat A, x1,y1,x2,y2)Mat B + @Mat A̍W(x1,y1)-(x2,y2)͈̔͂CtQ[ZMat BɊi[܂B + @Mat AMat B͓TCY̍słKv܂B + @R}hs(x1,y1)-(x2,y2)͈̔͂ZLꍇA̋`͈͂}1̍WϐɎIɓ܂B + @ϐL : [W-1 + @ϐR : E[W+1 + @ϐT : [W-1 + @ϐB : [W+1 + +v0.81 2015.12.9 eXgŁiC^v^̂݁j + fiRg)̔zLbV悤ɂč܂B + RgZꍇ͌ʂoȂꍇ܂B + +v0.80 2015.12.5 eXgŁiC^v^̂݁j + C^v^𕄍畄Lx[XɕύX܂B̌ʁA܂B + vXA]̌ŒPȎi2܂ł̎j܂B + GȎł͒xȂꍇ܂B + IfR}h̔zLbV悤ɂč܂B + z悪Zꍇ͌ʂoȂꍇ܂B + +v0.74 2015.11.29 eXgŁiC^v^̂݁j + ACRύX܂B + s̕ʔ͈͈ȏɂȂꍇɃJ[\ړoÔC܂B + + ijDotTrim(px1,py1,px2,py2)Mat A + @OtBbNʂg~O͂̏ꍇ + @0ł͂Ȃf[^̋`̈̉EX,Y̍W+1Ă̂C܂B + + +v0.73 2015.11.18 eXgŁiC^v^̂݁j + l͎[A<>a][CHAR]t@NVL[̈ʒu𒲐܂B + GfB^̌ŒOɃNbv@\Ŕ͈͎w肵Ă΂͈̔͂ƂČ܂B + + DotG(DotGet( + DotP(DotPut( + R}h̖̕ύX܂B + DotPut(R}hُ̓C܂B + + VDotTrim( R}hlj܂B + ijDotTrim(Mat A, x1,y1,x2,y2)Mat B + Mats[X1,y1]-[x2,y2]͈͂0ł͂Ȃf[^̋`̈g~OMat BsɃRs[܂B + Rs[s񂪊mۂĂȂꍇ͐VɊmۂ܂B + ijDotTrim(px1,py1,px2,py2)Mat A + OtBbNʂg~ÓA + OtBbN(px1,py1)-(px2,py2)͈̔͂̃hbgłĂ`̈Mat AsɃRs[܂B + ǂ̏ꍇA`̈TCYiMats̊mۃTCYjX,YϐɎIɓ܂B + 0ł͂Ȃf[^̋`̈̉EX,YW͏ϐx,yɎIɓ܂B + + +v0.72 2015.11.17 eXgŁiC^v^̂݁j + QoCgR}hñT[`肭ȂoOC܂B + L[obt@NAĂ͂Getkey2lj܂B + SH3@ł̓͂肭ȂꍇGetkey1̑Getkey2gpĂB + +v0.71 2015.11.16 eXgŁiC^v^̂݁j + Continue[h̃oOC܂B + GfB^ŃT[`@\lj܂B + gp@CasioBasic݊łB + +v0.70 2015.11.15 eXgŁiC^v^̂݁j + TuvOǂݍ߂Ȃ̃G[܂B + ǂݍ߂ȂvOAуG[ӏGfB^Ŏ܂B + + Continue[hlj܂B + [AC]BreakŃXgbvAGfB^[F6]Contj[ɕς܂B + XgbvƂA܂͔Cӂ̉ӏvOĊJł܂B + +v0.66 2015.11.14 eXgŁiC^v^̂݁j + Getkey1уI[o[Cg[h̃oOC܂B + Eng,Norm,Fix,Sci̓ǂݏoΉ܂B + Eng[h͕ϐEngŎ擾ł܂B + Ԃl0FEngOff + Ԃl1FEngOn + + NormAFixASci + ͂ꂼɕw肷ƌ݂̐ݒlԂ܂B + ()͕Kv͂ȂłB + + ݂̐ݒ肪Norm1̏ꍇ̕ԂĺA + Norm (-1)1 + Fix (-1)ł-1 + Sci (-1)ł-1 + + ݂̐ݒ肪@Fix 8̏ꍇ́A + Norm (-1)-1 + Fix (-1)ł 8 + Sci (-1)ł-1 + ƂɂȂ܂B + + +v0.65 2015.11.14 eXgŁiC^v^̂݁j + Mats̕\ҏW[h̏ct\ɑΉ܂B + s(m,n)эs(x,y)\̐؂ւlj܂B + ?R}h̃oOC܂B + +v0.64 2015.11.13 eXgŁiC^v^̂݁j + ϐMats̕\ҏW[hɑSvf̈ꊇlj܂B + GetkeỹL[܂ő҂”ŁAGetkey1VKlj܂B + SDKGetKeyƓłL[R[hCasioBasicGetkey݊łB + +v0.63 2015.11.12 eXgŁiC^v^̂݁j + DotP( Mat A[x,y], x1,y1, x2,y2)Mat B + Mat As[x,y]n_ƂāAMat B[x1,y1]-[x2,y2]͈̔͂ɃRs[܂B + Mat BRs[͈͂܂LmۂĂȂꍇ́AMat BɎ܂͈͂ŃRs[܂B + OtBbNʂւ̓]͍s܂B + + DotP( Mat A[x,y], x1,y1, x2,y2) + Mat As(x,y)̗vfn_ƂāAʏ(px1,py1)-(px2,py2)͈̔͂ɓ_ł܂B + + DotG( px1,py1, px2,py2)Mat A[x,y] + ʏ(px1,py1)-(px2,py2)͈̔͂Mat A[x,y]n_ƂĎ荞݂܂B + w͈͂s񂪑Ȃꍇ͍sTCY܂Ŏ荞݂܂B + + smۂ1vf̃oCg•ʂɎwł悤ɂ܂B + + {127,63}Dim Mat A.b + ̂悤ɍŌ[.b]܂[.B]tƃoCgsɂȂ܂B + lɁA + [.w]܂[.W]Ń[hs + [.l]܂[.L]ŃOs + [.f]܂[.F]Ŕ{xs + [hł͎s񂪊{Ő[hł4oCgO{ł + ŎRȃoCg\Matsmۂł܂B + + +v0.62 2015.11.11 eXgŁiC^v^̂݁j + ϐ́A{xϐ́tƐxwŃANZXł܂B + AA + ϐA{xϐAɃRs[܂B + {xl𐮐lɕϊꍇA͈͂Ɏ܂Ȃꍇ0ɂȂ܂B + + ̏ŐA{xA•ʂɎwł悤ɂȂ܂B + 0A~Ž`ɉāA + 0A~Z + {xϐ܂B + 0A~Z + ϐ܂B + + Mats̑Svf̏ɑΉ܂B + 0Mat A + Mat As̑Svf0ŏ܂B + ӂ͔Cӂ̒lŏł܂B + + DotP(R}hlj܂B + DotP( Mat A, x,y, px1,py1, px2,py2) + Mat As(x,y)̗vfn_ƂāAʏ(px1,py1)-(px2,py2)͈̔͂ɓ_ł܂B + + +v0.61 2015.11.10 eXgŁiC^v^̂݁j + Locate,Textobt@I[o[t[Ȃ悤ɂ܂B + 1/128s̃^C}[ϐɊ蓖Ă܂ibj + vfAoCgTCYMats񓯎m̃Rs[ijlj܂B + + +v0.60 2015.11.9 eXgŁiC^v^̂݁j + łƓ܂B + łƂ̐؂ւSetupݒ肷邩A + vÕRg + '#CBINT + ܂ + '#CBint + ƋLqƂȍ~̃vO͐[hœ܂B + ʏ̎[hɖ߂ɂ + '#CBASIC + ܂ + '#CBasic + ƋLq܂B + ʏϐ͂ꂼ̃[hœƗĂ܂B + AMats͋ʂłB + + Cɓ胂[h̏㉺ړAMats̕\ҏW[hlj܂B + + +v0.50 2015.11.7 eXgŁiC^v^̂݁j + fx-5800P̂Cɓ胂[hlj܂B + ɔAݒ聕ϐ̕ۑɑΉ܂B + CɎۑ܂B + t@C\IWi̕\`ɍ킹܂B + + +v0.42 2015.11.3 eXgŁiC^v^̂݁j + Mats̃oCg\ꕔύX܂B + s񖼂̃At@xbg + C,B1oCgsƂȂ܂Bi-128`127jłB + D,W2oCgsłB(-32768`32767) + I,L4oCgsłB(-2147483648`2147483647) + ȊO͏]lsłB + 啶͂ł̕\ύX܂B + t@C\XgŃtH_͍Ōɕ\悤ɂ܂B + +v0.41 2015.11.1 eXgŁiC^v^̂݁j + J^JiΉ܂B + +v0.40 2015.10.31 eXgŁiC^v^̂݁j + ̓[`2oCgΉ܂BHϐl͂2oCg֐g܂B + CATALOGL[gȂȂĂ̂C܂B + Ot\1hbgĂ̂C܂B + +v0.36 2015.10.27 eXgŁiC^v^̂݁j + vOJnɃOtBbNʂĂ̂C܂B + +v0.35 2015.10.25 eXgŁiC^v^̂݁j + fx-5800P݊R}h͂ł̃t@NVL[lj܂B + +v0.34 2015.10.25 eXgŁiC^v^̂݁j + Tu[`ł̃G[u[NŃGfB^ʂɏ肭߂Ȃ̂C܂B +@@@@@@@@@@@@t@C͂ł̃ftHg͂ALPHA[hɂ܂B + +v0.33 2015.10.24 eXgŁiC^v^̂݁j + ENG[hlj܂B +@@@@@@@@@@@@MOD()֐̃oOC܂B + GfB^Copy&Paste[h̃vO𑖂点ɂȂsC܂B + +v0.32 2015.10.20 eXgŁiC^v^̂݁j + GfB^̃J[\ړCasioBasicɂ܂B + GfB^̃J[\`ALPHA[hŕςȂoOC܂B + +v0.30 2015.10.18 eXgŁiC^v^̂݁j + t@CRenameɑΉ܂B + GfB^Copy&Pastelj܂ + GfB^fx-5800P̃R}hIʂlj܂B + +v0.21 2015.10.17 eXgŁiC^v^̂݁j + PlotR}ĥ݂Ɖʕ\ȂoO(^^G + PlotR}hvOI̓PB + RclPict11ȏオ삵ȂoȌCB + ŵ݁ie10j`͑ΉB + \`Norm1,Norm2ΉB + (Norm 0`15̂12CasioBasic݊AȊO͗LwBftHgNorm1Bj + HAR}hC܂B + +v0.20 2015.10.16 eXgŁiC^v^̂݁j + PlotR}h̏CB + CircleR}hCB + l\CwB(Fix,Sci,RndR}hlj) + GfB^ŃLN^IʒljB + ̑AׂȏCB + +v0.10 2015.10.12 eXgŁiC^v^̂݁j diff --git a/doc-fx/Command_List.txt b/doc-fx/Command_List.txt new file mode 100644 index 0000000..57d187c --- /dev/null +++ b/doc-fx/Command_List.txt @@ -0,0 +1,1154 @@ +--------------------------------------------------------------------------------- +C.Basic Ver.2.46beta Command List + +Last edited by sentaro21, 22 Oct 2023(UTC) + +--------------------------------------------------------------------------------- +------------------ Standard Mode ------------------------------------------------ +--------------------------------------------------------------------------------- +[SETUP]menu +Command Inpt:Standard + +----------------------------------------[MENU] +[MENU](F3) + --[STAT] + -[DRAW] + -[DrawOn] + -[DrawOff] + -[GRPH] + -[S-Gph1] + -[S-Gph2] + -[S-Gph3] + -[Scatter] + -[xyLine] + -[List] + -[TYPE] + -[Square] + -[Cross] + -[Dot] + + --[MAT] + -[Swap] + -[*Row] + -[*Row+] + -[Row+] + + --[LIST] + -[SortA] + -[SortD] + + --[extc] (*extended) + -[ ? ] (*extended) + -[ Disps ] (*extended) + -[ : ] (*extended) + -[ => ] (*extended) + -[ ' ] (*extended) + -[ / ] (*extended) + + --[ # ] (*extended) + --[ % ] (*extended) + +----------------------------------------[OPTN] +[OPTN] + --[LIST] + -[List] + -[List->Mat] + -[Dim] + -[Fill] + -[Seq] + + -[Min] + -[Max] + -[Mean] + -[Augment] + + -[Sum] + -[Prod] + -[ListCmp] (*extended) + + --[MAT] + -[Mat] + -[Mat->List] + -[Det] + -[Trn] + -[Augment] + + -[Iden] + -[Dim] + -[Fill] + -[Ref] + -[Rref] + + -[Vct] + -[DotP(] + -[CrossP(] + -[Angle(] + -[UnitV(] + + -[Norm(] + -[Size] (*extended) + -[MatBase] (*extended) + -[ElemSize] (*extended) + -[RowSize] (*extended) + -[ColSize] (*extended) + +--[CPLX] + -[i] + -[Abs] + -[Arg] + -[Conjg] + + -[ReP] + -[ImP] + -[>rڃ] + -[>a+bi] + + --[CALC] + -[Sigma] + -[Logab] + + -[Int/] + -[Rmdr] + + --[Extd] (*extended) + -[AliasVar] (*extended) + -[_] (*extended) + -[Const] (*extended) + -[ & ] (*extended) + -[ # ] (*extended) + -[ % ] (*extended) + + + --[@] + + --[HYP] + -[sinh] + -[cosh] + -[tanh] + -[sinh^-1] + -[cosh^-1] + -[tanh^-1] + + --[PROB] + -[ X1 ] + -[nPr] + -[nCr] + -[RAND] + -[Ran#] + -[RanInt#] + -[RanNorm#] + -[RanBin#] + -[RanList] + + --[NUM] + -[Abs] + -[Int] + -[Frac] + -[Rnd] + -[Intg] + + -[RndFix] + -[GCD] + -[LCM] + -[MOD] + + --[ANGL] + -[(deg)] + -[(rad)] + -[(grad)] + -[(dms)] + + -[Pol] + -[Rec] + -[>DMS] + + --[ESYM] + -[ mili ] + -[ micro ] + -[ nano ] + -[ pico ] + -[ femto ] + + -[ Kiro ] + -[ Mega ] + -[ Giga ] + -[ Tera ] + -[ Peta ] + + -[ Exa ] + + --[PICT] + -[StoPict] + -[RclPict] + + --[fMEM] + -[fn] + + --[LOGIC] + -[And] + -[Or] + -[Not] + -[Xor] + + -[and] (*extended) + -[or] (*extended) + -[not] (*extended) + -[xor] (*extended) + + --[CAPT] + -[StoCapt] + -[RclCapt] + + +----------------------------------------[VARS] +[VARS] + --[V-WIN] + -[ X ] + -[Xmin] + -[Xmax] + -[Xscl] + -[Xdot] + -[ Y ] + -[Ymin] + -[Ymax] + -[Yscl] + -[T.Theta] + -[TTehtamin] + -[TTehtamax] + -[TTehtaptch] + + --[FACT] + -[Xfct] + -[Yfct] + + --[Extd] (*extended) + -[Ticks] (*extended) + -[Wait] (*extended) + -[DATE] (*extended) + -[TIME] (*extended) + -[BackLight] (*extended) + + --[GRPH] + -[GraphY] + + --[SETUP] go to Setup Page + + --[ # ] (*extended) + --[ % ] (*extended) + --[ ~ ] (*extended) + --[ $ ] + --[Str] + +----------------------------------------[PRGM] +[PRGM]([SHIFT]+[VARS]) + --[COM] + -[If] + -[Then] + -[Else] + -[IfEnd] + -[ElseIf] (*extended) + + -[For] + -[ to] + -[Step] + -[Next] + + -[While] + -[WileEnd] + -[Do] + -[LpWhile] + + -[Swtch] (*extended) + -[Case] (*extended) + -[Default] (*extended) + -[Break] (*extended) + -[SwitchEnd](*extended) + + --[CTL] + -[Prog] + -[Return] + -[Break] + -[Stop] + -[Local] (*extended) + + -[Gosub] (*extended) + -[ACBreak] (*extended) + -[Try] (*extended) + -[Except] (*extended) + -[TryEnd] (*extended) + + --[JUMP] + -[Lbl] + -[Goto] + -[=>] + -[Isz] + -[Dsz] + -[Menu] + + --[ ? ] + --[Disps] + + --[CLR] + -[ClrText] + -[ClrGraph] + -[ClrList] + -[ClrMat] + + --[DISP] + -[DrawStat] + -[DrawGraph] + -[Disp] (*extended) + + --[REL] + -[ = ] + -[ != ] + -[ > ] + -[ < ] + -[ >= ] + -[ <= ] + + --[I/O] + -[Locate] + -[Getkey] + -[Send] + -[Receive] + -[KeyRow] (*extended) + + -[Send38k] + -[Receive38k] + -[OpenComport38k] + -[CloseComport38k] + -[Beep] (*extended) + + -[IsExist] (*extended) + -[Save] (*extended) + -[Load] (*extended) + -[Delete] (*extended) + + --[ : ] + + --[STR] + -[StrJoin] + -[StrLen] + -[StrCmp] + -[StrSrc] + -[StrRepl] (*extended) + + -[StrLeft] + -[StrRight] + -[StrMid] + -[Exp>Str] + -[Exp] + + -[StrUpr] + -[StrLwr] + -[StrInv] + -[StrShift] + -[StrRotate] + + --[ $ ] (*extended) + + --[ExStr] (*extended) + -[Str] + -[ToStr(] (*extended) + -[Sprintf] (*extended) + -[ % ] (*extended) + -[ # ] (*extended) + + -[StrChar] (*extended) + -[StrCenter](*extended) + -[StrBase(] (*extended) + -[Hex(] (*extended) + -[Bin(] (*extended) + + -[StrSplit] (*extended) + -[StrAsc(] (*extended) + + --[EXEC] (*extended) + -[SysCall] (*extended) + -[Call] (*extended) + -[Poke] (*extended) + -[Peek] (*extended) + + -[VarPtr] (*extended) + -[ProgPtr] (*extended) + -[ % ] (*extended) + -[ # ] (*extended) + + +----------------------------------------[SETUP] +[SETUP]([SHIFT]+[MENU]) + --[ANGL] + -[Deg] + -[Rad] + -[Grad] + + --[COOR] + -[CoordOn] + -[CoordOff] + + --[GRID] + -[GridOn] + -[GridOff] + + --[AXES] + -[AxesOn] + -[AxesOff] + + --[LABL] + -[LabelOn] + -[LabelOff] + + --[DISP] + -[Fix] + -[Sci] + -[Norm] + -[Eng] + -[EngOn] + -[EngOff] + -[Eng] + --[S/L] + -[S-L-Normal] + -[S-L-Thick] + -[S-L-Broken] + -[S-L-Dot] + + --[DRAW] + -[G-Connect] + -[G-Plot] + + --[DERV] + -[DerivOn] + -[DerivOff] + + --[BACK] + -[BG-None] + -[BG-Pict] + + --[FUNC] + -[FuncOn] + -[FuncOff] + + --[CPLX] + -[Real] + -[a+bi] + -[rڃ] + + --[S-WIN] + -[S-WindAuto] + -[S-WindMan] + + --[RfrshCtrl] (*extended) + --[RfrshTime] (*extended) + --[DATE] (*extended) + --[TIME] (*extended) + --[Wait] (*extended) + + --[System(](System() (*extended) + --[Version](Version) (*extended) + +----------------------------------------[SHIFT] +[SHIFT] + --[V.WIN] + -[ViewWindow] + -[StoV-Win] + -[RclV-Win] + + --[SKTCH] + -[Cls] + + -[EXT] (*extended) + -[Screen] (*extended) + -[PutDispDD] (*extended) + -[LocateYX] (*extended) + -[FkeyMenu] (*extended) + -[PopUpWin] (*extended) + + -[Rect] (*extended) + -[FillRect] (*extended) + -[ReadGraph] (*extended) + -[WriteGraph] (*extended) + + -[DotGet] (*extended) + -[DotPut] (*extended) + -[DotTrim] (*extended) + -[DotLife] (*extended) + -[CellSum] (*extended) + + -[ML] (*extended) + -[_ClrVram] (*extended) + -[_ClrScreen] (*extended) + -[_DispVram] (*extended) + -[_PixelTest]] (*extended) + -[_Test] (*extended) + + -[_Pixel] (*extended) + -[_Point] (*extended) + -[_Line] (*extended) + -[_Horizontal] (*extended) + -[_Vertical] (*extended) + + -[_Rect] (*extended) + -[_Polygon] (*extended) + -[_FillPolygon] (*extended) + -[_Circle] (*extended) + -[_FillCircle] (*extended) + + -[_Elips]] (*extended) + -[_FillElips] (*extended) + -[_ElipsInRct] (*extended) + -[_FElipsInRct] (*extended) + + -[_Hscroll] (*extended) + -[_Vscroll] (*extended) + -[_Contrast] (*extended) + + -[BMP] + -[_Bmp] (*extended) + -[_Bmp8] (*extended) + -[_Bmp16] (*extended) + -[_BmpZoom] (*extended) + -[_BmpRotate] (*extended) + + -[BmpSave] (*extended) + -[BmpLoad] (*extended) + -[DrawMat] (*extended) + -[_BmpZoomRotate] (*extended) + + -[GetFont(] (*extended) + -[SetFont] (*extended) + -[GetFontMini(] (*extended) + -[SetFontMini] (*extended) + + + -[GRPH] + -[Graph Y=] + -[Graph(X,Y)=(] + + -[PLOT] + -[Plot] + -[PlotOn] + -[PlotOff] + -[PlotChg] + -[LINE] + -[Line] + -[F-Line] + -[Circle] + -[Vertical] + -[Horizontal] + + -[Text] + -[PIXL] + -[Pxlon] + -[Pxloff] + -[PxlChg] + -[PxlTest] + -[STYL] + -[SketchNormal] + -[SketchThick] + -[SketchBroken] + -[SketchDot] + + +--------------------------------------------------------------------------------- +------------------ C.Basic Mode ------------------------------------------------- +--------------------------------------------------------------------------------- +[SETUP]menu +Command Inpt:C.Basic (*)extended + +----------------------------------------[CMD] +[CMD](F3) +-------------------------------STD + 1:? 2:-> + 3:If 4:Then + 5:Else 6:IfEnd + 7:Lbl 8:Goto + 9:ElseIf(*) 0:~ + .:# e:% +----------------------------- + 1:= 2:!= + 3:> 4:< + 5:>= 6:<= + 7:And 8:Or + 9:Not 0:Xor + .:# e:% +----------------------------- + 1:Dsz 2:Isz + 3:=> 4:Locate + 5:Cls 6:Disp + 7:ClrText 8:ClrGraph + 9:ClrMat 0:ClrList + .:# e:% +----------------------------- + 1:For 2:To + 3:Step 4:Next + 5:While 6:WhileEnd + 7:Do 8:LpWhile + 9:Menu 0:~ + .:# e:% +----------------------------- + 1:Break 2:Return + 3:Stop 4:Getkey + 5:Prog 6:Gosub(*) + 7:Local(*) 8:ACBreak(*) + 9:Switch(*) 0:Case(*) + .:Default(*) e:SwitchEnd(*) +----------------------------- + 1:Dim 2:List->Mat( + 3:Fill( 4:Seg( + 5:Min( 6:Max( + 7:Mean( 8:Augment( + 9:Sum 0:Proud + .:Listcmp e:% +----------------------------- + 1:Dim 2:Mat->List( + 3:Det 4:Trn + 5:Identity 6:Fill( + 7: 8:Augment( + 9:Ref 0:Rref + .:# e:% +----------------------------- + 1:Vct 2:CrossP( + 3:DotP( 4:Angle( + 5:Unity( 6:Norm( + 7:SortA( 8:SortD( + 9:Swap 0:*Row + .:*Row+ e:Row+ +----------------------------- + 1:MatBase (*) 2:ElemSize (*) + 3:RowSize( (*) 4:ColSize( (*) + 5:CellSum( (*) 6: + 7: 8: + 9:_ 0:$ + .:# e:% +----------------------------- + 1:Send( 2:Receive( + 3:OpenCom38k 4:CloseComport38k + 5:Send38k 6:Receive38k + 7:Beep(*) 8: + 9: 0: + .:# e:% +-------------------------------GR + 1:Cls 2:ClrGraph + 3:ViewWindow 4:Plot + 5:PlotOn 6:PlotOff + 7:PlotChg 8:Circle + 9:Line 0:F-Line + .:Vertical e:Horizontal +----------------------------- + 1:PxlOn 2:PxlOff + 3:PxlChg 4:PxlTest( + 5:Text 6:LocateYX(*) + 7:Graph(X,Y)=( 8:Graph Y= + 9:DrawGraph 0:GraphY + .:StoCapt(*) e:RclCapt +----------------------------- + 1:Graph(X,Y)=( 2:DrawStat + 3:DrawOn 4:DrawOff + 5:S-Gph1 6:S-Gph2 + 7:S-Gph3 8:Square + 9:Cross 0:Dot + .:Scatter e:xyLine +----------------------------- + 1:SketchNormal 2:SketchThick + 3:SketchBroken 4:SketchDot + 5:S-L-Normal 6:S-L-Thick + 7:S-L-Broken 8:S-L-Dot + 9:BG-None 0:BG-Pict + .:StoPict e:RclPict +----------------------------- + 1:G-Connect 2:G-Plot + 3:CoordOn 4:CoordOff + 5:GridOn 6:GridOff + 7:AxesOn 8:AxesOff + 9:LabelOn 0:LabelOff + .:StoV-Win e:RclV-Win +----------------------------- + 1:Xmin 2:Ymin + 3:Xmax 4:Ymax + 5:Xscl 6:Yscl + 7:Xfct 8:Yfct + 9:Xdot 0:TThetamin + .:TThetamax e:TThetaptch +-------------------------------FN + 1:Abs 2:Int + 3:frac 4:Intg + 5:MOD( 6:! + 7:Int/ 8:Rmdr + 9:Sigma( 0:logab( + .:GCD( e:LCM( +----------------------------- + 1:sinh 2:cosh + 3:tanh 4:sinh^-1 + 5:cosh^-1 6:tanh^-1 + 7:and(*) 8:or(*) + 9:not(*) 0:xor(*) + .:& e:| +----------------------------- + 1:Ran# 2:RanInt#( + 3:RndNorm#( 4:RanBin#( + 5:Rnd 6:RndFix( + 7:Norm 8:Fix + 9:Sci 0:Eng + .:EngOn e:EngOff +----------------------------- + 1:deg 2:rad + 3:grad 4:>DMS + 5:dms 6:fn + 7:Deg 8:Rad + 9:Grad 0:~ + .:Pol( e:Rec( +----------------------------- + 1:femto 2:pico + 3:nano 4:micro + 5:milli 6:Kiro + 7:Mega 8:Giga + 9:Tera 0:Peta + .:Exa e:% +----------------------------- + 1:Abs 2:Conjg + 3:ReP 4:ImP + 5: 6: + 7: 8: + 9: 0: + .:# e:% +-------------------------------STR + 1:Str 2:StrJoin( + 3:StrLen 4:StrCmp( + 5:StrSrc( 6:StrLeft( + 7:StrRight( 8:StrMid( + 9:\ 0:$ + .:# e:% +----------------------------- + 1:Exp>Str( 2:Exp( + 3:StrUpr( 4:StrLwr( + 5:StrInv( 6:StrShift( + 7:StrRotate( + 9:\ 0:$ + .:# e:% +----------------------------- + 1:ToStr( (*) 2:Sprintf( (*) + 3:Hex( (*) 4:Bin( (*) + 5:StrChar( (*) 6:StrCenter (*) + 7:StrRepl( (*) 8:StrSplit (*) + 9:StrAsc( (*) 0:$ + .:# e:% +-------------------------------EX all of (*) + 1:AliasVar 2:Ticks + 3:DATE 4:TIME + 5:IsExist( 6:Delete + 7:Save 8:Load( + 9:PutDispDD 0:Wait + .:# e:Const +----------------------------- + 1:Screen 2:PutDispDD + 3:Rect( 4:FillRect( + 5:ReadGraph( 6:WriteGraph( + 7:DotGet( 8:DotPut( + 9:DotTrim( 0:DotLife( + .:CellSum( e:% +----------------------------- + 1:SysCall 2:Call + 3:Poke 4:Peek( + 5:* 6:& + 7:VarPtr( 8:ProgPtr( + 9:\ 0:$ + .:# e:% +----------------------------- + 1:FKeyMenu( 2:PopUpWin( + 3:RefreshCtrl 4:RefreshTime + 5:KeyRow( 6:BackLight + 7:MatBase( 8:ElemSize( + 9:RowSize( 0:ColSize( + .:# e:% +----------------------------- + 1:_ClrVRAM 2:_ClrScreen + 3:_DispVRAM 4:_Point + 5:_Pixel 6:_PixelTest( + 7:_Line 8:_Rect + 9:_Horizontal 0:_Vertical + .:# e:% +----------------------------- + 1:_Polygon 2:_Fporgon + 3:_Circle 4:_Fcircle + 5:_Elips 6:_Felips + 7:_ElipsInRct 8:_FelipsInRct + 9:_Hscroll 0:_Vscroll + .:# e:% +----------------------------- + 1:_Bmp 2:_Bmp8 + 3:_Bmp16 4:_Contrast + 5:_BmpZoom 6:_BmpRotate + 7:BmpSave 8:BmpLoad( + 9:DrawMat 0:_Test + .:_BmpZoomRt# e:% +----------------------------- + 1:GetFont( 2:GetFontMini( + 3:SetFont 4:SetFont + 5:Try 6:Except + 7:TryEnd 8: + 9:Beep 0:Version + .:System( e:% +----------------------------- + +----------------------------------------[OPTN] +[OPTN] + Abs + Int + Intg + frac + ! + MOD( + GCD( + LCM( + logab( + + And + Or + Not + Xor + Ran# + RanInt#( + RanNorm#( + RanBin#( + RanList#( + + and (*) + or (*) + not (*) + xor (*) + Int/ + Rmdr + Int/ + Rmdr + + Rnd + RndFix( + Norm + Fix + Sci + Eng + EngOn + EngOff + + Dim + Trn + Fill( + Swap + *Row + *Row+ + Row+ + Identity + MatBase( + ElemSize( + RowSize( + ColSize( + CellSum( + + Seq( + Augment( + List->Mat( + Mat->List( + Max( + Min( + Mean( + Sum + Prod + SortA( + SortD( + ListCmp( + Sigma( + + sinh + cosh + tanh + arcsinh + arccosh + arctanh + + Arg + Conjg + ReP + ImP + + + femto + pico + nano + micro + milli + Kiro + Mega + Giga + Tera + Peta + Exa + + Deg + Rad + Grad + (deg) + (rad) + (grad) + + dms + >DMS + Pol( + Rec( + DATE (*) + TIME (*) + Ticks (*) + Wait (*) + Beep (*) + Version (*) + System( (*) + IsError( (*) + + # + $ + % + | + & + * + +----------------------------------------[VARS] +[VARS] + Cls + ClrGraph + ViewWindow + Plot + Line + F-Line + + Vertical + Horizontal + Circle + Text + LocateYX (*) + + PlotOn + PlotOff + PlotChg + PxlOn + PxlOff + PxlChg + PxlTest( + + Deg + Rad + Gra + G-Connect + G-Plot + CoordOn + CoordOff + GridOn + GridOff + AxesOn + AxesOff + LabelOn + LabelOff + DerivOn + DerivOff + + S-L-Normal + S-L-Thick + S-L-Broken + S-L-Dot + SketchNormal + SketchThick + SketchBroken + SketchDot + + Xmin + Xmax + Xscl + Xdot + Ymin + Ymax + Yscl + Xfct + Yfct + TThetamin + TThetamax + TThetaptch + + StoV-Win + RclV-Win + StoPict + RclPict + RclCapt + BG-None + BG-Pict + fn + GraphY + DrawGraph + Graph Y= + + Graph(X,Y)=( + DrawStat + DrawOn + DrawOff + S-Gph1 + S-Gph2 + S-Gph3 + Square + Cross + Dot + Scatter + xyLine + + Rect( (*) + FillRect( (*) + ReadGraph( (*) + WriteGraph( (*) + DotGet( (*) + DotPut( (*) + DotTrim( (*) + DotLife( (*) + DotShape( (*) + + Screen (*) + PutDispDD (*) + FKeyMenu( (*) + PopUpWin( (*) + BackLight (*) + RefreshCtrl (*) + RefreshTime (*) + + _ClrVRAM (*) + _ClrScreen (*) + _DispVRAM (*) + _Contrast (*) + _Point (*) + _Pixel (*) + _PixelTest( (*) + _Line (*) + _Rect (*) + _Horizontal (*) + _Vertical (*) + _Polygon (*) + _FillPolygon (*) + + _Circle (*) + _FillCircle (*) + _Elips (*) + _FillElips (*) + _ElipsInRct (*) + _FElipsInRct (*) + _Hscroll (*) + _Vscroll (*) + + _Bmp (*) + _Bmp8 (*) + _Bmp16 (*) + _BmpZoom (*) + _BmpRotate (*) + _DrawMat (*) + _Test (*) + GetFont( (*) + GetFontMini( (*) + SetFont (*) + SetFOntMini (*) + +----------------------------------------[PRGM] +[PRGM]([SHIFT]+[VARS]) + ? + dsps + : + ' + ~ + + = + != + > + < + >= + <= + + Lbl + Goto + => + Isz + Dsz + Menu + + If + Then + Else + ElseIf (*) + IfEnd + + For + To + Step + Next + + While + WhileEnd + Do + LpWhile + + Switch (*) + Case (*) + Default (*) + SwitchEnd (*) + + Prog + Return + Break + Stop + + Local (*) + Gosub (*) + ACBreak (*) + + ClrText + ClrGraph + ClrList + ClrMat + Locate + Getkey + Disp (*) + + KeyRow( (*) + AliasVar (*) + Const (*) + Define (*) + IsExist( (*) + Delete (*) + Save (*) + Load( (*) + SysCall (*) + Call (*) + Poke (*) + Peek( (*) + VarPtr( (*) + ProgPtr( (*) + + Str + StrJoin( + StrLen + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrLwr( + StrInv( + StrShift( + StrRotate( + Sprintf( (*) + StrCenter( (*) + StrRepl( (*) + StrSplit( (*) + StrAsc( (*) + Hex( (*) + Bin( (*) + StrBase( (*) + ToStr( (*) + + + diff --git a/doc-fx/ErrorCode_List.txt b/doc-fx/ErrorCode_List.txt new file mode 100644 index 0000000..055e9c9 --- /dev/null +++ b/doc-fx/ErrorCode_List.txt @@ -0,0 +1,57 @@ +Error Code List +------------------------------ +1: Syntax ERROR +2: Ma ERROR +3: Go ERROR +4: Nesting ERROR +5: Stack ERROR +6: Memory ERROR +7: Argument ERROR +8: Dimension ERROR +9: Range ERROR + +11: Non-Real ERROR + +20: Com ERROR +21: Transmit ERROR +22: Receive ERROR + +28: Too Much Data + +33: Missing Next +34: Missing For +35: Missing WhileEnd +36: Missing While +37: Missing LpWhile +38: Missing Do +39: Not Loop ERROR +40: Zero Division +41: Undefined Label +42: Not Enough Memory +43: String Too Long +44: No Matrix array +45: Invalid Ary Size +46: Prog Not Found +47: Too Many SubProg +48: Missing IfEnd +49: Missing If +50: Missing Switch +51: Missing Switch +52: Missing SwitchEnd +53: Missing Switch +54: File Not Found +55: Illegal Element +56: Com Opened +57: Com Closed +58: Invalid Type +59: Out of Domain +60: Var Undefined +61: Func Undefined +62: Not Supported +63: VarLimit Exceeded +64: Duplicate Def +65: Address Align ERR +66: Time Out +70: Missing Except +71: Missing Try +72: Missing Try diff --git a/doc-fx/Extended_opcode_list.txt b/doc-fx/Extended_opcode_list.txt new file mode 100644 index 0000000..be914ac --- /dev/null +++ b/doc-fx/Extended_opcode_list.txt @@ -0,0 +1,160 @@ +--------------------------------------------------------------------------------- +C.Basic for CG Ver 1.00beta Extended Opcode List + +Last edited by sentaro21/Colon, 15 Jun 2019(UTC) + +--------------------------------------------------------------------------------- + 0x00A7 "not " // Not -> not + 0x009A " xor " // add space + 0x00AA " or " // add space + 0x00BA " and " // add space + 0x00FA "Gosub " + + 0x7F58 "ElemSize(" + 0x7F59 "ColSize(" + 0x7F5A "RowSize(" + 0x7F5B "MatBase(" + 0x7F5C "ListCmp(" + 0x7F5D "GetRGB(" // for CG + 0x7F5E "RGB(" // for CG + 0x7F5F "Ticks" + 0x7F9F "KeyRow(" + 0x7FCF "System(" + 0x7FDF "Version" + 0x7FF5 "IsExist(" + 0x7FF6 "Peek(" + 0x7FF8 "VarPtr(" + 0x7FFA "ProgPtr(" + + 0xF70C "Return " // add space + 0xF70F "ElseIf " + 0xF717 "ACBreak" + 0xF737 "Try " + 0xF738 "Except " + 0xF739 "TryEnd" + 0xF73B "DotPut(" + 0xF73D "DotTrim(" + 0xF73E "DotGet(" + 0xF79D "StoCapt" + 0xF7DD "Beep " + 0xF7DE "BatteryStatus" // for CG + 0xF7DF "Delete " + 0xF7E0 "DotLife(" + 0xF7E1 "Rect " + 0xF7E2 "FillRect " + 0xF7E3 "LocateYX " + 0xF7E4 "Disp " + 0xF7E8 "ReadGraph(" + 0xF7E9 "WriteGraph " + 0xF7EA "Switch " + 0xF7EB "Case " + 0xF7EC "Default " + 0xF7ED "SwitchEnd" + 0xF7EE "Save " + 0xF7EF "Load(" + 0xF7F0 "DotShape(" + 0xF7F1 "Local " + 0xF7F2 "PopUpWin(" + 0xF7F4 "SysCall(" + 0xF7F5 "Call(" + 0xF7F6 "Poke(" + 0xF7F8 "RefrshCtrl " + 0xF7FA "RefrshTime " + 0xF7FB "Screen" + 0xF7FC "PutDispDD" + 0xF7FD "FKeyMenu(" + 0xF7FE "BackLight " + + 0xF90E "Const " + 0xF90F "Alias " // AliasVar -< Alias + 0xF940 "ToStr(" // Str( -> ToStr( + 0xF941 "DATE" + 0xF942 "TIME" + 0xF943 "Sprintf(" + 0xF944 "StrChar(" + 0xF945 "StrCenter(" + 0xF946 "Hex(" + 0xF947 "Bin(" + 0xF948 "StrBase(" + 0xF949 "StrRepl(" + 0xF94D "StrSplit(" + 0xF94F "Wait " + 0xF950 "StrAsc(" + 0xF960 "GetFont(" + 0xF961 "SetFont " + 0xF962 "GetFontMini(" + 0xF963 "SetFontMini " + 0xF999 "Plot/Line-Color " // for CG + 0xF99B "Black " // for CG + 0xF99C "White " // for CG + 0xF99D "Magenta " // for CG + 0xF99E "Cyan " // for CG + 0xF99F "Yellow " // for CG + 0xF9BE "Back-Color " // for CG + 0xF9BF "Transp-Color " // for CG + 0xF9C0 "_ClrVram" + 0xF9C1 "_ClrScreen" + 0xF9C2 "_DispVram" + 0xF9C3 "_Contrast" + 0xF9C4 "_Pixel " + 0xF9C5 "_Point " + 0xF9C6 "_PixelTest(" + 0xF9C7 "_Line " + 0xF9C8 "_Horizontal " + 0xF9C9 "_Vertical " + 0xF9CA "_Rectangle " + 0xF9CB "_Polygon " + 0xF9CC "_FillPolygon " + 0xF9CD "_Circle " + 0xF9CE "_FillCircle " + 0xF9CF "_Elips " + 0xF9D0 "_FillElips " + 0xF9D1 "_ElipsInRct " + 0xF9D2 "_FElipsInRct " + 0xF9D3 "_Hscroll " + 0xF9D4 "_Vscroll " + 0xF9D5 "_Bmp " + 0xF9D6 "_Bmp8 " + 0xF9D7 "_Bmp16 " + 0xF9D8 "_Test" + 0xF9D9 "_BmpZoom " + 0xF9DA "_BmpRotate " + 0xF9DB "BmpSave " + 0xF9DC "BmpLoad(" + 0xF9DD "DrawMat " + 0xF9DE "_BmpZmRotate " + 0xF9DF "_Paint " // for CG + + 0x7F3A "MOD(" // SDK emu not support OS 2.00 or later + 0x7F3C "GCD(" // SDK emu not support OS 2.00 or later + 0x7F3D "LCM(" // SDK emu not support OS 2.00 or later + 0x7F84 "Vct" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0x7F87 "RanInt#(" // SDK emu not support OS 2.00 or later + 0x7F88 "RanList#(" // SDK emu not support OS 2.00 or later + 0x7FB4 " Xor " // SDK emu not support OS 2.00 or later + 0x7FBC " Int/ " // SDK emu not support OS 2.00 or later + 0x7FBD " Rmdr " // SDK emu not support OS 2.00 or later + + 0xF79E "Menu " // SDK emu not support OS 2.00 or later + + 0xF930 "StrJoin(" // SDK emu not support OS 2.00 or later + 0xF931 "StrLen(" // SDK emu not support OS 2.00 or later + 0xF932 "StrCmp(" // SDK emu not support OS 2.00 or later + 0xF933 "StrSrc(" // SDK emu not support OS 2.00 or later + 0xF934 "StrLeft(" // SDK emu not support OS 2.00 or later + 0xF935 "StrRight(" // SDK emu not support OS 2.00 or later + 0xF936 "StrMid(" // SDK emu not support OS 2.00 or later + 0xF937 "Exp>Str(" // SDK emu not support OS 2.00 or later + 0xF938 "Exp(" // SDK emu not support OS 2.00 or later + 0xF939 "StrUpr(" // SDK emu not support OS 2.00 or later + 0xF93A "StrLwr(" // SDK emu not support OS 2.00 or later + 0xF93B "StrInv(" // SDK emu not support OS 2.00 or later + 0xF93C "StrShift(" // SDK emu not support OS 2.00 or later + 0xF93D "StrRotate(" // SDK emu not support OS 2.00 or later + 0xF93E "ClrVct" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF93F "Str " // SDK emu not support OS 2.00 or later + 0xF94A "CrossP(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF94B "DotP(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF95B "Norm(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF95E "UnitV(" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later + 0xF96D "Angle" // SDK emu not support OS 2.00(for CG) / 2.04(for FX) or later \ No newline at end of file diff --git a/doc-fx/Manual_EN.txt b/doc-fx/Manual_EN.txt new file mode 100644 index 0000000..6da1ca3 --- /dev/null +++ b/doc-fx/Manual_EN.txt @@ -0,0 +1,2488 @@ +Please look at this site +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site & following text is translated by Krtyski. + +Some following text translated by sentaro21 (borrow the power of the automatic translation) +Sorry that translation is not good... +(Thanks to Emex for correcting the misspellings) + +=============================================================================== + +Add-in Version Casio Basic Interpreter (& Compiler) ver 2.x Beta Manual + +Copyright (c) 2015-2020 by sentaro21 +Contact: (E-mail) sentaro21@pm.matrix.jp + +Last update by CalcLoverHK/sentaro21 10 Feb 2020 + +=============================================================================== +What is C.Basic? +=============================================================================== +C.Basic is designed for fast, compatible with genuine Casio Basic and also bringing in some of good features of fx-5800P. + +C.Basic uses program file (*.g1m) stored in storage memory. Genuine Casio Basic also uses g1m file stored in main memory. A program source using only compatible commands can run in both of C.Basic and genuine Casio Basic. + +=============================================================================== +Available Memory +=============================================================================== +There are 64KB of RAM that can be freely used as add-in, 16KB for the stack area. +Since 8KB is used as the global variable area of add-in, the remaining 40KB is an area that can be used freely. +In C.Basic, the remaining 36KB which secured several KB as various buffer areas is a free area (an area that can be used for programs and matrices). +There is free RAM of 256KB in GII model for user when C.Basic is installed. + +(*Later ver.1.75) +In the case of setting to use maximum memory by the setting without the outside font by setup, a space area of up to 40KB (at the hidden RAM use 233KB) is usable. +When user uses external font, it decreases by approximately 4KB. And When do not use maximum memory, user memory is limited by the number of the files. + +=============================================================================== +Editable size in built-in editor +=============================================================================== +C.Basic has built-in editor aiming for usability similar to standard editor. +Copy and paste can be used, but 2KB is the maximum size C.Basic can be copied at once. Undo is not implemented yet. + +The initial editable size of the new file is 4KB. +If you exceed this size when creating the program, you cannot edit it. Please save it once and re-edit. +The program editable maximum size at the time of re-editing is program size + 2KB. + +When executing a program, the main program is executed with securing an editable area of main program size + 2KB and subprogram + 256B. +It becomes re-editable size in debug mode. + +The program editable maximum size is about 20 to 30KB in standard setting not using hidden RAM. (The editable size will change depending on the number of files on storage.) +When using hidden RAM, it is possible to edit and execute files up to about 62 KB. + + +=============================================================================== +Built-in Debug mode +=============================================================================== +As a function that is not genuine, resumption of the program interrupted by [AC] and debug mode are equipped. +Debug mode can also be started in debug mode from the first run. +Trace execution, 1 step execution, step over, step out are supported. + + +=============================================================================== +Operation Modes +=============================================================================== +C.Basic supports three different operation modes, "Real (Number) Mode" and "Complex Mode" as same as genuine Casio Basic does, and C.Basic-exclusive "Integer Mode" only allows handling integer. The Integer Mode was implemented to C.Basic for faster operation. + +In order to set either of those operation modes, to set "Real Mode" declare one of followings; + +'#CBasic +'#CBASIC +'#CBdbl +'#CBDBL + +To set "Integer Mode" declare one of followings; + +'#CBint +'#CBINT + +To set "Complex Mode" declare one of followings; + +'#CBcplx +'#CBCPLX + +In C.Basic, real number is implemented in double-precision real type, so real and double-precision is the same. + +You can set default settings in Setup page. + +In order to set default operation modes, set "Execute mode" as Dbl# or "Int%". + +The declared running mode in source file has priority to setting in the Setup page. + +In "Integer Mode", result value of calculation have to be given in integer, but the operation speed is faster than in "Real Number Mode" by factor of 1.5. + +If you set "Integer Mode" but want to evaluate a specific expression in real number (double-precision), simply add prefix # before the expression you want. The expression after # is evaluated in double-precision without error. But, please note the evaluation result in double-precision is converted to integer, so the expression after # returns integer value is rounded to integer to fit the "Integer Mode". + +(Example) + "100*Frac 1.23+5 + +In "Integer Mode", Frac 1.23 is in error and the following codes cannot run, but the prefix # enable evaluation in double-precision of expression after # to end of line or ":" (multi-statement command). +#(Frac 1.23*100+5) + +So, result of this line is 28. If this code runs in "Real More", it also results in 28. + +If # is in middle of expression, a part of the expression after # to end of line or multi-statement command. + +(Example) +100*#Frac 1.23+5 + +Interpretation of this expression is +100*#(Frac 1.23 + 5) +So it results in 523 in "Real Mode" and 500 in "Integer Mode". + +=============================================================================== +About Running Wait +=============================================================================== +You can adjust the overall execution speed. +If it is set in setup, all programs will be affected. + +Use the Wait command if you want to adjust with individual programs. + (Example) Wait 100 + Set the Wait value to 100. + + +=============================================================================== +Type of Numbers +=============================================================================== +Genuine Casio Basic use decimal number with internally 15 digits and 2 digits of exponent notation. On the other hand, C.Basic uses a double precision real number type (8 Bytes) and 4 Bytes integer type, since C language of Casio SDK has the same specification. +A range of number that the double precision real number can handle is ++-9.88131291682493e-323 to +-1.7976931348623151e+308 +This range is wider than genuine Casio Basic, but operation is carried out in binary, so we have to keep in mind that handling of number after decimal point may cause possible calculation error. + +We can put prefix 0X or 0B like C language to value of constant and then we can use hexadecimal or binary number within 32 bits. +(Example) 0XFF, 0B10100110 +(Example) 0xAB, 0b10100110 + + +=============================================================================== +Type of Variables +=============================================================================== +As well as genuine Casio Basic, C.Basic uses single letter variables, 26 capital letters A to Z and also small letters a to z. + +String variable with more than 2 letters is not supported by C.Basic as well as genuine Casio Basic. + +C.Basic provides independently real number type of variables (A - Z, a - z) and integer type of variables (A - Z, a - z). Real number variables are used in real number running mode and also integer variables in integer running mode. Internally the different type of variable still use same letter, so we should put % suffix for integer variables (A% - Z%, a% - z%), put # suffix for real number variables (A# - Z#, a# - z#). + +When an integer variable with % suffix is used in real number mode, it will not be a problem. But on the other hand, if a real number variable is used in integer mode we have to understand that read-out value from the real number variable is rounded to integer. +When real number value does not fit in the range of integer number, the value is changed to 0 (zero). + +(Example) #CBINT //set to integer mode + 1.2345->A# //1.2345 is rounded to 1, then 1 is substituted. + +(Example) A%->A# +Copy integer variable A to double-precision variable A. +Copying integer value to double-precision variable is no problem. But double-precision value is going to be contained into integer variable, this may have a problem, in case the value does not fit into a range of integer (32 bits) the value is changed to 0. + +At initialization of variable, we can use a Format 0->A ~ Z (genuine Casio Basic can do this) and also we van set type of variable. +0->A#~Z# // initialize double-precision variable +0->A%~Z% // initialize integer variable + + +=============================================================================== +Extended Variable 1.70 - +=============================================================================== +The variable by an alphanumeric character’s name beginning with under bar (to 8 characters) is usable. +It is always initialized at the time of program starts with the variable of the area independent of the conventional one character variable. +The usable variable becomes to 32. The real number variable and the integer variable can maintain a different value, but are found by the same name. +[SHIFT]+[F1] the capital letter variable, the small letter variable, the indication of the under bar variable are replaced whenever to push [F1]. +(Example) 123.456->_ABC +(Example) 456->_ABC% +(Example) _ABC+_ABC%->_Result + _Result is 579.456 + +=============================================================================== +About the constant number use of the variable 1.70 - +=============================================================================== +To use Const command with a variable as constant number use-limited. [OPTN] - [F3] (extd) - [F3] (Const) +Since then cannot substitute it when to use Const command at the time of variable substitution. +(Example) 123->Const A +(Example) 123->Const _ABC +(Example) 456->A +If you are going to change the value of the variable by the same program, it becomes the error. + + +=============================================================================== +About VRAM +=============================================================================== +Text screen and graphics screen are independently implemented in C.Basic as well as genuine Casio Basic. Actually only one VRAM, called Display-VRAM is used to display to LCD by commands. + +There are 3 VRAMs; +- Display-VRAM is used to output to LCD +- Text-VRAM is an RAM area to save data for text screen +- Graphics-VRAM is an RAM area to save data for graphics screen + +Those 3 VRAMS with same size are implemented. + +When a text display command runs in "text display mode", the process sends data to Display-VRAM. When a text display command runs in "graphics display mode", the process retract Display-VRAM to Graphics-VRAM at first then transfer Text-VRAM to DisplayVRAM, and then display text output in Display-VRAM. + +When a text display command runs repeatedly, skipping retraction to Graphics-VRAM and transferring to Text-VRAM, then only drawing text on -Display-VRAM is continued (still in "text display mode"). + +Still in this "text display mode" when a graphics command runs, retract Display-VRAM to Text-VRAM, then resume Graphics-VRAM to Display-VRAM, and then draw graphics in Display-VRAM (switch to "graphics display mode"). + +As you see above, memory area such as Text-VRAM and Graphics-VRAM are NOT directly used for output to LCD, but merely data storage area. So once Text mode and Graphics mode are switched, at every time of this VRAM transferring is carried out among VRAM, Text-VRAM and Graphics-VRAM. + + +=============================================================================== +Drawing on LCD +=============================================================================== +In order to draw text or graphics on screen in fx-9860G / fx-9860GII, data in VRAM is transferred to LCD. + +Transferring to LCD includes quite a few overhead, so it takes totally long time (it is inefficient) to transfer data to LCD (refresh) at every single time when a draw command runs. + +To get rid of the inefficiency C.Basic provides Refresh Control function. You can set to suppress the refresh at every single time when a draw command runs, and can set to carry out refresh in regular intervals (this setting is available in Setup page and also by command). + +With the setting for refresh in regular intervals, the last command in repeating drawing operation may lose a chance to refresh, then before refreshing to reflect the last drawing command the next command possibly runs. + +In order to avoid this problem, we want to force the refresh then use PutDispDD to refresh screen. + +=============================================================================== +Extended Matrix +=============================================================================== +Specification and Usage of Matrix in C.Basic is different from genuine Casio Basic as follows. +C.Basic covers genuine Casio Basic's Usage of matrix, real number can be used in Real Number Mode and integer can be used in Integer Mode. +Matrix in C.Basic can handle Bit (1 bit), BYTE (1 byte) and WORD (2 byte) as well as real number (8 byte) and integer (4 byte) as type of matrix. + +Add suffix to matrix name at matrix allocation to declare type of the matrix; +- [.P] or [.p]: 1 bit Integer Matrix, handling number is 0 to 1. +- [.N] or [.n]: 4 bit Integer Nibble Matrix, handling number is 0 to 15. +- [.B] or [.b]: 8 bit Integer BYTE Matrix, handling number is -128 to 127. +- [.W] or [.w]: 16 bit Integer WORD Matrix, handling number is -32,768 to 32,767. +- [.L] or [.l]: 32 bit Integer Long WORD Matrix, handling number is -2,147,483,648 to 2,147,483,647. +- [.F] or [.f]: 64 bit Double-Precision Real Number Matrix, handling number is 9.88131291682493e-323 to 1.7976931348623151e+308. +- [.C] or [.c] : 64x2 bit Double-Precision Real and Imaginary Number Matrix, handling number is 9.88131291682493e-323 to 1.7976931348623151e+308. + +As with genuine, the matrix is {m, n} type and is implemented as {row, column}. +As an exception, 1 bit type is an implementation of {column, row} with {X,Y} type implementation. + +Since the 1 bit matrix has the same data structure as the VRAM of the screen, +When [.V] or [.v] is specified, VRAM can be read and written by assigning it to a matrix of 128 rows x 64 columns. +Furthermore, you can assign graphic VRAM with [.VG], text VRAM with [.VT] to matrix. +The index base starts at 0 and the matrix size is fixed at {128,64}. + + (Example) {128,64}->Dim Mat G.V + By accessing Mat G, you can directly read and write VRAM at that point, but since it is not a display system command, + When displaying the screen, it must be forcibly displayed after executing the command. + + (Example) {128,64}->Dim Mat G.V + Screen.G // Graphic screen selection (other graphic commands are acceptable) + 1 -> Mat G [63,31] + PutDispDD // screen transfer command + You can put a dot in the middle of the graphic screen. + It is the same as PxlOn 31,63. + + (Example) {128,64}->Dim Mat G.V + Screen.T // Text screen selection (Other text based commands are acceptable) + 1 -> Mat G [63, 31] + PutDispDD // screen transfer command + You can put a dot in the middle of the text screen. + + +=============================================================================== +Initialization of Matrix +=============================================================================== +As with genuine, +{M, n} -> Dim Mat A Format, +[[1,2,3][4,5,6]] -> Supports Mat A Format initialization. + +In addition, at fx-5800P +100->Dim A +It supports Format. +0->Dim A +Delete matrix A + +In Mat matrix initialization command [[]], it is possible to insert newline and space. + (Example) + [[0B11001100, + 0B00110011, + 0B11001100, + 0B00110011 + ]]->Mat A.B + +Added Dim Dim option. + (Usage) {m,n}->Dim Dim Mat A (real address of the Mat) + (Example) {128,1}->Dim Mat A.B + (Example) {64,1}->Dim Dim Mat B.W(VarPtr(Mat A)) + Mat A and Mat B access in the same domain, but are different in byte access or the word access. + +=============================================================================== +Access to matrix +=============================================================================== +In addition to the usual Mat A[1,1] Format, +Mat was omitted +A[1,1] +With only the first row of access +A[1] +Notation is also possible. + +Furthermore, only when the subscript is the numerical value 0 to 9, +A0 +A5 +You can write it. + +The variable of this notation is automatically reserved for the matrix if the matrix which becomes the entity is not reserved in advance. +(Example) A1+123->B5 +If Mat A and Mat B are not secured, at the time the variable is 1st accessed +9->Dim A +9->Dim B +The same initialization as in 1 is executed automatically, and A1 to A9 and B1 to B9 can be used. + +(Example) '#Mat 0 +A1+123->B5 +In the case that Mat A and Mat B are not secured, + 10->Dim A + 10->Dim B +The same initialization as in A0 to A9 and B0 to B9 can be used automatically. + +(Example) '#Mat 0 +2->Dim B +A1+123->B5 + In the case of, + 10->Dim A +Since only Mat A is initialized and Mat B is not reacquired, an error will occur at the time of accessing B5. +In this case you can use A0 ~ A9 and B0 ~ B1. + +=============================================================================== +Matrix Type Conversion +=============================================================================== +The matrix type (1 bit, byte, word, long word, real number) can be arbitrarily changed even after matrix reservation. +(Example) [[1,2,3,4] [5,6,7,8]] -> Mat A.B +Mat A->Dim Mat A.W +You can change the Mat A matrix of byte type to word type. +The number of elements will change according to the type size after change. +[[0x0102,0x0304][0x0506,0x0708]]->Mat A.W +The result is the same. + +(Note) Changes from a 1-bit matrix and changes to 1-bit type matrix are reversed in rows and columns. +This is because the 1-bit type matrix is implemented in X and Y type, so it is a transposed matrix relation with ordinary m, n type matrix. +{127,63}->Dim Mat A.P +It secures it as a buffer that can be used as the virtual memory of the full screen bitmap data of the LCD screen. +Mat A->Dim Mat A.B +By changing to a byte type matrix, +The element size is {63,16}. + + +=============================================================================== +1st Index of Matrix +=============================================================================== +In genuine Casio Basic, the index of a matrix starts with 1, but in C.Basic it can start with 0. +You can select the beginning of a matrix by describing it in setup or comment field. +(Example) #Mat 1 +It starts from 1 as before. +(Example) #Mat 0 +{3,2}->Dim Mat A + The matrix to be allocated is A[0,0] to A[2, 1]. + +At the same time, screen coordinates are also valid up to 0. This makes the whole screen the drawing target area +(Example) Pxlon 0,0 + + +=============================================================================== +Matrix Review +=============================================================================== +You can display binary and hexadecimal numbers in Mat matrix editor. +Pressing [F5] in matrix editing mode will display binary numbers, [F6] will display hexadecimal numbers. +To return to the decimal number display, press [F5] [F6] again. +However, the binary notation is up to the matrix of byte (1 byte) and word type (2 bytes). + +Press the [OPTN] key to change to the list name display. +Press the [VARS] key to change to the character string display. + +=============================================================================== +Supported list function +=============================================================================== +List functions are implemented by assigning one dimension of Mat. +List 1~26 is independent List. +Mat a ~ z of lower case Mat matrix to List 27 ~ 52. +List 27[5] = Mat a[5, 1] +List 28[5] = Mat b[5, 1] +List 29[5] = Mat c[5, 1] +List 100[5] = Mat 100[5, 1] +List 1000[5] = Mat 1000[5, 1] +It has the same meaning. + +The following command of genuine function is supported. + +List Ans +10->Dim List 1 +{1,2,3,4,5}->List 1 +Seq(X^2,X,1,10,2)->List 2 +Augment(List 1,List 2)->List 3 +Mat>List(Mat A,2)->List 1 +List>Mat(List 1,List 2,...)->List 9 +Fill(3, List 1) +Min(List 1) +Max(List 1) +Mean(List 1) +Sort A(List 1) +Sort B(List 1) +Sum List 1 +Prod List 1 + +Arithmetic and functional arithmetic including List. + + +=============================================================================== +Supported vector function +=============================================================================== + Vct + DotP( + CrossP( + Angle( + UnitV( + Norm( + ClrVct +(*)The area of Vct A~Z becomes independent. +To change [VARS] key for Vct display of Mat/List/Vct screen. + + +=============================================================================== +Strings in C.Basic +=============================================================================== +Like the original Casio Basic, you can use Str character variables and string functions, but the substance of the string is implemented as a matrix. + +By attaching $ as the prefix, the Mat matrix is recognized as a string. +(Example) ["ABCDEF"] -> Mat A +Locate 3,3,$Mat A +"ABCDEF" is displayed on the screen coordinates (3, 3). + + at first +{7,1}->Dim Mat A.B + The same initialization as that is done automatically. +And the string is stored as byte type data in the matrix. + + +-Character string functions compatible with Casio Basic + + (Concatenation of character strings) + StrJoin( + StrLen( + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrDwr( + StrInv( + StrShift( + StrRotate( + +(Example) "ABCDEF"->Str 1 +Locate 3,3,StrRight(Str 1,3) +"DEF" is displayed on the screen coordinates (3, 3). + + +The characters used in fx-9860GII include single - byte characters (alphanumeric characters, some commands) and double - byte characters (almost all commands, special characters and kana) +Internally, 1 byte and 2 byte characters are mixed, but handling with character functions is handled as one character as well as genuine. +Please pay attention to the position of the character when accessing the matrix element where the character string is stored directly. + + +=============================================================================== +Initialization of String +=============================================================================== +The same character variable Str 1-20 as genuine implicitly uses of Mat matrix by default. +By default, the number of characters is limited to 255 characters. +The Str character variable is automatically secured as a Mat matrix and can be used with genuine compatibility in the next character string command, so it is not necessary to be conscious of the matrix. +If initialization of Str string is not specified, initialization of Mat matrix is automatically performed as follows. +{20, 65} -> Dim Mat r + +The Mat matrix which is the substance of the Str character variable can be arbitrarily specified, and it is specified in the comment field before using the Str variable. +(Example) '#Str A +We secure the Str variable as Mat A. +{20,65}->Dim Mat A.B +It is the same as. +(Example) '#Str B,30,256 +Secure the Str variable as Mat B as a possible variable up to 30 and 255 characters. + +The following Format can be used for assigning a character string. +(Example) "ABCDEEF"->Str 1 +(Example) ["ABC","TEST","1+3+5"]->Mat A +We automatically allocate Mat A [3,6] matrices of byte type and place character strings on each element. + Mat A[1,1] = "ABC" + Mat A[2,1] = "TEST" + Mat A[3,1] = "1+3+5" +. +To access "ABC" with a character string correspondence command, it is $Mat A, or $Mat A[1], or $Mat A[1,1]. +To access "1+3+5" it will be $Mat A[3], or $Mat A[3,1]. +(Example) Locate 1,1,$Mat A +Locate 1, 1, same as "ABC". +(Example) Locate 1,1,$Mat A[3,3] +It is the same as Locate 1,1,"3+5". + +This command corresponds to a character string in the current version. It is used in $ Mat Format instead of "". +- "" +(Example) $Mat A[1] +It is the same as "ABC". +-? +(Example)?->$Mat A +Enter a string in matrix Mat A. The number of characters is limited by the number of secured elements. +Locate +- Text +- LocateYX +- Exp( +(Example) Exp("1+2+3")->6 +(Example) Exp($Mat A[3,3])->8 + Evaluates the string as a mathematical expression and returns the value. + + +=============================================================================== +Sprintf - an Extended Command +=============================================================================== +As genuine there is no conversion function from number to character string, Sprintf (C language compatible specification of SDK was added as additional character string function. +(Specification) Sprintf ("Format specifier", argument 1 [, argument 2 [, argument 3]])) +(Example) Sprintf ("A=%4dB=%3.2f",%A,#B) -> Str 1 +When A=1234 and B=45.678, +The character string assigned to Str 1 is +A=1234 B=45.68. +Since Format specification is compatible with sprintf in C language, the numerical expression such as exponential notation etc. is somewhat different. + Up to three arguments can be specified, and integer / real number / character string can be specified. +The% prefix specifies an integer, and the prefix specifies a real number. + If prefix is left out, it becomes the execution mode (real / integer) at that point. + There is no error check for Format specification and argument correspondence, so please be careful because there is a possibility of reset or restart if an error occurs with Sprintf (command). + +(Attention) The subtraction character "-" is necessary to input from [F4](CHAR) + + +=============================================================================== +Command Reference +=============================================================================== +Compatible Commands with Casio Basic +=============================================================================== +? +(Disps) +-> +If ~ Then ~ Else ~ IfEnd +Lbl ~ Goto +=! => <> = <= + +Dsz / Isz +=> +Locate +Menu + +For ~ To ~ Step ~ Next +While ~ WhileEnd +Do ~ LpWhile +Break +Return +Stop +Getkey +Prog + +ClrMat +ClrList +Mat (Matrix Calculations is supported.) +List (Operation including List is supported.) +Dim +Fill( +Seq( +Augment( +Mat>List( +List>Mat( +Min( +Max( +Mean( +Sort A( +Sort B( +Sum +Prod +Swap / *Row / *Row+ / Row+ +Trn +Identity +DotP( +CrossP( +Angle( +UnitV( +Norm( + +i / Arg / Conjg / ReP / ImP / >r/_theta / a+bi +Real / a+bi / r/_theta + +Cls ClrText ClrGraph +ViewWindow +Plot / PlotOn / PlotOff / PlotChg +Circle +Line / F-Line +Vertical / Horizontal + +PxlOn / PxlOff / PxlChg +PxlTest( +Text + + +SketchNormal / SketchThick / SketchBroken / SketchDot +S-L-Normal / S-L-Thick / S-L-Broken / S-L-Dot + +G-Connect / G-Plot +CoordOn / CoordOff +GridOn / GridOff +AxesOn / AxesOff +LabelOn / LabelOff +BG-None / BG-Pict + +DrawGraph (partially supported) +Graph Y= (partially supported) +GraphY (partially supported) + +Graph(X,Y)= (Partially supported) +DrawStat (partially supported) +S-Gph1, S-Gph2, S-Gph3, DrawOn, DrawOff, Scatter, xyLine, Square, Cross, Dot + +Xmin Ymin Xmax Ymax Xscl Yscl Xfct Yfct Xdot +T [theta] Min T [theta] Max T [theta] Ptch + +Deg Rad Grad + +And Or Not Xor + +Abs Int Frac Intg + +MOD +Rmdr Int/ +Log ln logab( +10 ^ x e ^ x +X ^ -1 +Sqr x ^ 2 +Sqr ^ -3 +Sin cos tan +Sin^-1 cos^-1 tan^-1 +Sinh cosh tanh +Sinh^-1 cosh^-1 tanh^-1 + +Femto pico nano micro milli Kiro Mega Giga Tera Peta Exa + +(deg) r (rad) g (gra) +> DMS + +Str +StrJoin( +StrLen +StrCmp( +StrSrc( +StrLeft( +StrRight( +StrMid( +Str>Exp( +Exp( +StrUpr( +StrDwr( +StrInv( +StrShift( +StrRotate( + +StoPict / RclPict +RclCapt + +Ran# RanInt#( RanNorm#( RanBin#( RanList#( +Rnd RndFix( +Norm / Fix / Sci +Eng / EngOn / EngOff + + + +=============================================================================== +Command reference extended command +=============================================================================== +------------------------------------------------------------------------------- +? [SHIFT]+[VARS](PRGM)-[F4](?) +------------------------------------------------------------------------------- +You can use more options in input command. +(Usage) ?([x][,y][,width][,"SpaceChar"][,limit][,R]) +(Example) "A="?()->A + Display "A=" then wait for input A value. +(Example) "A="?(,,,,,R)->A + Display "A=" then wait for input A value in reversed display. +(Example) "A="?(,,8,,,R)->A + Display "A=" then wait for input A value within only 8 digits in reversed display. +(Example) "A="?(3,4,5,">",5)A + Display "A=" and the value of A then wait for input A value at(X=3,Y=4) within 5 digits or 5 characters and the blank is made up in ">". +(Example) "A="?(3,4,5,,5,R)A + Display "A=" and the value of A then wait for input A value at(X=3,Y=4) within 5 digits and 5 characters in reversed display. +------------------------------------------------------------------------------- +Fix [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F1](Fix) +Sci [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F2](Sci) +Norm [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F3](Norm) +Eng [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F3](Eng) +------------------------------------------------------------------------------- +Eng, Norm, Fix, Sci return current state (On or Off). + +Eng returns current state; +- Value 0: state of EngOff +- Value 1: state of EngOn +Norm, Fix, Sci +To return current status, set negative value as parameter*; +(Note*) To add the parameter, ( ) is not necessarily required. +If current state is Norm1, return values are; +- Norm (-1) gives 1 +- Fix (-1) gives -1 +- Sci (-1) gives -1 + +If current state is Fix 8, return values are; +- Norm (-1) gives -1 +- Fix (-1) gives 8 +- Sci (-1) gives -1 + +------------------------------------------------------------------------------- +EngOn [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F1](EngOn) +------------------------------------------------------------------------------- +3-digit separator can be displayed. + +(Example) EngOn 3 + After this commend, number is displayed with 3-digit separator ",". + EngOff to cancel 3-digit operator. + +------------------------------------------------------------------------------- +RndFix( [OPTN]-[F6]-[F4](NUMERIC)-[F6]-[F1](RndFix) +------------------------------------------------------------------------------- +Added option of RndFix( that the maximum number of significant digits. +(Format) RndFix(value, Sci digits) +(Example) RndFix(1.23456789e-123,Sci 5) + Return value of 1.2346e-123. + +------------------------------------------------------------------------------- +StoPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F1](Store) +RclPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F2](Recall) +------------------------------------------------------------------------------- +These commands can be used in 2 different modes, a mode storing in storage memory and a mode storing in heap memory secured in main memory. + +To set the mode, open "Setup" page by [SHIFT][MENU](Setup), select to item "Pict", then set [F1](MEM) or [F2](Heap). +When "Heap" is set, we lose compatibility of Pict file with genuine Casio Basic, but access speed to Pict file will be faster. +The program source itself keep compatibility, so source in genuine Casio Basic can run in C.Basic. + +------------------------------------------------------------------------------- +ElseIf [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F5](ElseIf) +------------------------------------------------------------------------------- +Format: If ~ Then ~ ElseIf ~ IfEnd +Usage: + +(Casio Basic) + If A + Then Locate 1,1,"A" + Else If B + Then Locate 1,2,"B" + IfEnd + IfEnd + +(C.Basic) + If A + Then Locate 1,1,"A" + ElseIf B + Then Locate 1,2,"B" + IfEnd + +ElseIf is similar to Else If. But it makes the program need one nesting only. Use only one IfEnd in the end. + +The number of IfEnd corresponding to If is not strictly checked in genuine Casio Basic. But in C.Basic you can set if you want the strict check or not at item "IfEnd Check" in "Setup" page. +Set "On" at "IfEnd Check", an error message may pop up in run time, and cursor locates at If command which does not have any corresponding IfEnd. + +------------------------------------------------------------------------------- +Locate [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F1](Locate) +------------------------------------------------------------------------------- +(Format) Locate [@][!]X,Y,<"string" or expression>,[,N/R] + [@] The drawing of the command becomes current VRAM. + [!] Even if the extended font is introduced, drawing in the original font forcibly. + [.N] Normal + [.R] Reverse + +Add [,R] at the end of parameters, the display is reversed. + (Example) Locate 1,2,"Test",R + Reversed "Test" is displayed at location (1,2). + +-With prefix # to expression (parameter) in Locate as well as Sprintf, Text and Disp commands makes evaluation of the expression in real number. + In "Integer Mode", the expression with prefix # allows displaying string of "real number" which reflects the evaluation in real number. Prefix # helps display in "Integer Mode" to handle "real number" by Locate, Sprintf, Text and Disp commands. +(Example) + '#CBINT + 10->A + Locate 1,2,log 123+A + In Integer Mode, "log 123+A" is rounded to 12, but +(Example) + '#CBINT + 10->A + Locate 1,2,#log 123+A +With the prefix #, it is not rounded and display 12.089905111. +An expression after prefix # is handled as real number, but variable (for Example A above) is still used as integer variable, so prefix % should not be added. + +------------------------------------------------------------------------------- +Switch [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F1](Switch) +Case [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F2](Case) +Default [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F3](Default) +Break [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F4](Break) +SwitchEnd [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F5](SwitchEnd) +------------------------------------------------------------------------------- +C.Basic supports Switch statement from C Language. +(Format) + Switch + Case + [] + [Break] + Default +  [] + [Break] + SwitchEnd + +You can set multiple cases as you want. +Without "Break", program control goes through to the next "Case". +Note, "Default" should be placed in the last, otherwise unexpected result may occur. + +(Example) + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + +------------------------------------------------------------------------------- +ACBreak [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F2](ACBreak) +------------------------------------------------------------------------------- +"ACBreak" command gives exactly the same result as to press [AC] key during program runs. + +Availability of "ACBreak", enable or disable can be set at item "ACBreak" in "Setup" page. When "ACBreak" is Off (disable), the command "ACBreak" is ignored and is not breaking the program. + +(Example) ACBreak + +Input command "ACBreak" and "Stop" right after ACBreak, then "ACBreakStop" command cancel all the ACBreak after this command. This gives exactly the same result as to set "Off" for ACBreak in "Setup" page. + +(Example) ACBreakStop + +------------------------------------------------------------------------------- +Local [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F5](Local) +------------------------------------------------------------------------------- +In C.Basic all the variables including small letter variables are "global variable" as default. But some small letter variables can be used as "local variable" with "Local" command. + +Set small letter variables to "Local" command in a program, then those variables can be local, the scope is only within the single program. + +(Example) Local x,y,z + - Parameters x, y and z are now local variables. + - Maximum 10 small letters can be set as local variable. + - In the same order of the parameters can be passed to sub-routine with Prog command. + +(Example) +In sub-routine "TEST", use Local with 3 small letters for local variables; + + Local x,y,z + (Describe this in the sub-routine, the position can be where ever you like...) + +Then in main routine describe use Prog command with 3 extra parameters; + + Prog "TEST",123,456,N + (At calling sub-routine "TEST", pass 123, 456 and N to "TEST" in the same order, + That means 123->x, 456->y, N->z in the sub-routine, other variables are still global.) + +Using local variables, a recurrence algorithm is available in C.Basic, but at this moment maximum nesting is about 16 levels. + +------------------------------------------------------------------------------- +Prog [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F1](Prog) +------------------------------------------------------------------------------- +Use with "Local" command, "Prog" can handle arguments and returns with sub program. + +(Example) + "MAIN" Program + 10->X + 20->Y + X+1->a + Y*2->b + Prog "SUB",X,Y + Disp Ans + Disp a + Disp b + + "SUB" Program + Local a,b + Dips a + Disp b + Return a+b + +Result Output + 10 + 20 + 30 + 11 + 40 + +"MAIN" program calls "SUB" program calculating sum of 2 numbers and display the result. + In the sub program, variables a and b is secured as local variables, so cannot access to global variables a and b. + In the main program, a and b are global variables, so the variables are free of the influence of global variables a and b in the sub program. + +------------------------------------------------------------------------------- +Return [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F2](Return) +------------------------------------------------------------------------------- +"Return" command returns from sub-routine, in C.Basic a return value can be sent back to main routine. + +(Example) Return + The return value, a value of is substituted in "Ans". + +------------------------------------------------------------------------------- +Gosub [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F1](Gosub) +------------------------------------------------------------------------------- +"Gosub" command allows to use sub-routine within single program. + +(Format 1) Gosub A + Jump to "Lbl A", proceed codes until "Return", then resume back. + +(Format 2) Gosub A,123,456 + With Local command, arguments can be used as similar to Prog command, but all the codes are in single program, so the variables are global. + +(Example) + 10->X + 20->Y + X+1->a + Y*2->b + Gosub A,X,Y + Disp Ans + Disp a + Disp b + Stop + + Lbl A + Local a,b + Dips a + Disp b + Return a+b + +Result Output + 10 + 20 + 30 + 10 + 20 + +This sample program is similar to (Example) program of Prog command. Variables a and b are secured as local variable, so cannot access to global variables a and b in this program. + +------------------------------------------------------------------------------- +ElemSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F2](Elem) +RowSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F3](Row) +ColSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F4](Col) +------------------------------------------------------------------------------- +Functions to obtain size of a matrix. + +ElemSize( + Return size (in bit) of element. + (Example) ElemSize(Mat A) +RowSize( + Return m of {m,n}, row size of a matrix. +ColSize( + Return m of {m,n}, column size of a matrix. + +------------------------------------------------------------------------------- +MatBase( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F1](Base) +------------------------------------------------------------------------------- +Functions to obtain start index value of matrix +(Example) MatBase(Mat A) + +------------------------------------------------------------------------------- +Getkey [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F2](Getkey) +------------------------------------------------------------------------------- +There are following features for Getkey in addition to genuine Casio Basic; + - Getkey: compatible with genuine Casio Basic. + - Getkey1: pause until any key is pressed (same as SDK's Getkey). + - Getkey2: clear key buffer then accept input. (Recommend use in SH3 version.) + - Getkey3: pause for a certain period before accept input. + - GetkeyM: puts multiple pressed keys into a list. +* The number right after Getkey should be input by ten key. + +Keycode is fully compatible with genuine Casio Basic, but not compatible with SDK. + +In fx-9860GII (SH4A version), back light control by [SHIFT]+[OPTN] is available. + +Power Off by [SHIFT]+[AC] as well as [AC] is not supported yet to obtain keycode. + +(Example) Getkey3(128) + Set 128 Ticks count (1 sec) for pause. This does not return keycode during the pause, but returns keycode of last key press after the key wait period. + +(Example) Getkey3(128,A) + Pause until 128 Ticks count of current timer with initial timer as set by A (in Ticks count). + +* In case Getkey1 does not properly work in SH3 version, use Getkey2 instead of Getkey1. + + (Example) GetkeyM->List 1 + Press EXE and F1 will result in {79,31} + +* When validate Exec TimeDsp, +the time measurement stops during GetKey1/2, but can make reset & restart by setting. + I can set it by setup or the following control commands. +(Format) '#GetKeyC + It is the stop of the timer of the default, a continuation mode. +(Format) '#GetKeyR + Timer restarts reset & after GetKey1/2. + +------------------------------------------------------------------------------- +Try~Except~TryEnd [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F3](Try) + (Later Ver.2.00) +------------------------------------------------------------------------------- +Exception handling can be performed according to the error. + (Format) + Try + Except [] + + TryEnd + +You can have more than one Except for different error codes. +If there is no error in , processing will move after TryEnd. +If error occurs and the corresponding error code matches the value after Except, processing will move to and executes, then goes after TryEnd. +When error that does not match the error code occurs, an error pop-up appears because there is no corresponding Except . +Except with no argument corresponds to all errors. If any error occurs, processing will move to and executes. + + (Example) + Try 3*4+ + Except 1 + "Syntax Error" + TryEnd + +"Syntax Error" is executed instead of showing error message, since "Syntax Error" error code is 1. + + (Example) + Try 3*4/0 + Except 1 + "Syntax Error" + Except 40 + "Divide by Zero" + TryEnd + +"Divide by Zero" is executed instead of showing error message, since "Division by Zero" error code is 40. + + (Example) + Try 3*4/0 + Except 1 + "Syntax Error" + Except + "Error" + TryEnd + +If there is no Except corresponding to an error, "Error" is executed because Except with no argument corresponds to all errors. + +The sample program is in CBasic_sample/Try_Except. +Refer to ErrorCode_List.txt for the error code in the ZIP package. + +------------------------------------------------------------------------------- +Version [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + (Later Ver.1.74) +------------------------------------------------------------------------------- +Returns the version number. +(Example) Version [SHIFT]+[MENU](SETUP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + When ver.0.45, return value is 45 + +------------------------------------------------------------------------------- +System( [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F4](System) + (Later Ver.1.75) +------------------------------------------------------------------------------- +Returns to some system value. + + System(0): return to version of C.Basic (same as Version) + System(1): return to address of VRAM. (1KB) + System(2): return to address of text VRAM. (1KB) + System(3): return to address of graphic VRAM. (1KB) + System(10): return to address of clip buffer. (32KB) + System(-2): return to OS version. (Example 311) + System(-1): return to model name. + 9860G:0 9860G Slim:1 9860GII(SH3):2 9860GII(SH4A):3 Graph35+EII:4 + + +=============================================================================== +Extended Graphics Commands +=============================================================================== +=============================================================================== +When [:] is added just after a command, current VRAM is targeted for drawing regardless of text mode and a graphic mode. +------------------------------------------------------------------------------- + (Example) Locate 2,2,"String": + Text 16,1,"TextString": + +The end after the command [:], no screen update. +Please use transfer commands such as PutoDispDD to let you display LCD by a drawing result. + +------------------------------------------------------------------------------- +When add [@] just after a command, current VRAM is targeted for drawing. + +(Example) +Text 1,1,"Graphic" +Locate 1,2,"Text" + +(Example) +Locate 1,1,"Text" +Text 24,10,"Graphic" + +------------------------------------------------------------------------------- +Those below commands support clear and reverse function by adding new parameters C or X at the end; + +Line +F-Line +Circle +Rect( +FillRect( +Add [,C] to clear and [,X] to reverse the drawn patterns. + (Example) F-Line 1,1,30,20,X + +------------------------------------------------------------------------------- +Text [SHIFT]-[F4](SKTCH)-[F6]-[F6]-[F2](Text) +------------------------------------------------------------------------------- +(Format) Text [@][!]y,x,<"string" or Expression>,[,N/O/R/V] + [@] The drawing of the command becomes current VRAM. + [!] Even if the extended font is introduced, drawing in the original font forcibly. + [.N] Normal + [.R] Reverse + [,O] Or + [,V] reVerse or + +(Example) Text 20,80,"Test",R + "Test" is displayed by reversing display by graphic coordinate (80,20). + +------------------------------------------------------------------------------- +LocateYX [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F3](LocateYX) +------------------------------------------------------------------------------- +Letter indication of the size same as Locate is possible to a graphic screen. + Y coordinate becomes the coordinate definition as well as Text command earlier. + It becomes the reversing display in [,R] in the last of the command. +(Format) LocateYX [@][!]y,x,<"string" or Expression>,[,N/R] + +(Example) LocateYX 20,80,"Test",R + "Test" is displayed by reversing display by graphic coordinate (80,20). + +------------------------------------------------------------------------------- +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) +------------------------------------------------------------------------------- +Display a rectangle. The coordinate becomes the true coordinate definition. +(Example) Rect 1,1,127,63 +------------------------------------------------------------------------------- +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) +------------------------------------------------------------------------------- +Display the filled rectangle. +(Example) FillRect 1,1,127,63 + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) +------------------------------------------------------------------------------- +Read the Bitmap data of the graphic screen by a bit unit. +(Format) ReadGraph(px1,py1,px2,py2) -> Mat A + (px1,py1)-(px2,py2) to Mat A . + It is not necessary to secure the Mat array beforehand. At appropriate array size automatically. + When there is not the type definition of the Mat array, it becomes the 1 bit type. + +------------------------------------------------------------------------------- +WriteGraph [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F4](WriteGraph) +------------------------------------------------------------------------------- +Display Bitmap data. +(Format 1) WriteGraph x,y,dx,dy,Mat A ,P1[,P2] + Draw data of Mat A in width dx, the range of height dy from coordinate (x,y) of the graphic screen. + P1 parameter + [,N] normal + [,R] reverse + [,M] mesh + P2 parameter + [omit] over + [,X] xor + [,O] or + [,A] and +(Example) [[1,2,4,8,16,32,64,128]] -> Mat A + WriteGraph 80,20, 8,8, Mat A, N + +(Format 2) WriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2] + Draw data from [m,n] of Mat A in width dx, the range of height dy from coordinate (x,y) of the graphic screen. +(Example) [[16,32,64,128][128,64,32,16]] -> Mat A + WriteGraph 80,20, 4,4, Mat A[1,1], N + WriteGraph 80,24, 4,4, Mat A[2,1], N + A figure of [<] is drawn from coordinate (80,20) of the graphic screen. + + WriteGraph 80,20, 4,8, Mat A, N + But it becomes the same result. + + The Bitmap data are 8 bits width, and leaning to the left becomes the standard. + +------------------------------------------------------------------------------- +DotGet( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F1](DotGet) +------------------------------------------------------------------------------- + (Example) DotGet(px1,py1, px2,py2)->Mat A[x,y] + Fetches the range of (px1, py1) - (px2, py2) on the screen starting from Mat A [x, y]. + If the number of matrices is less than the specified range, the matrix size is imported. + +------------------------------------------------------------------------------- +DotPut( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F2](DotPut) +------------------------------------------------------------------------------- + (Example) DotPut (Mat A,x,y,px1,py1,px2,py2) + Mat A Start with the (x,y) element of the matrix as a starting point, and draw a point in the range (px1,py1)-(px2,py2). + + (Example) DotPut(Mat A[x,y],px1,py1,px2,py2)->Mat B + Mat A Copies to the range of [x1,y1]-[x2,y2] of Mat B starting from [x,y] of matrix. + If Mat B does not secure the extent that the copy range fits, copy it within the range that fits in Mat B. + It does not transfer to the graphic screen. + + (Example)DotPut (Mat A[x,y],px1,py1,px2,py2) + Mat A Start with the (x,y) element of the matrix as a starting point, and draw a point in the range (px1,py1)-(px2,py2). + +------------------------------------------------------------------------------- +DotTrim( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F3](DotTrim) +------------------------------------------------------------------------------- + (Example)DotTrim(Mat A,x1,y1,x2,y2)->Mat B + This is a trimming input from Matt, + Trim the rectangular area of nonzero data in the [X1,y1]-[x2,y2] range in the Mat matrix and copy it to the Mat B matrix. + If the matrix to be copied is not secured, it is newly allocated. + + (Example)DotTrim(px1,py1,px2,py2)->Mat A + This is a trimming input from the graphics screen, + Trim the rectangular area in which the dots in the range of (px1,py1)-(px2,py2) of the graphic are copied to Mat A matrix. + In both cases, the rectangular area size (secured size of Mat matrix) is automatically entered in X and Y variables. + The upper right X,Y coordinates of the rectangular area of non-zero data are automatically entered in the lower case variable x,y. + +------------------------------------------------------------------------------- +CellSum( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F5](CellSum) +------------------------------------------------------------------------------- + (Example)CellSum(Mat B[X,Y])->C + Calculate the total value of 8 dots around Mat B[X,Y]. + +------------------------------------------------------------------------------- +DotLife( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F4](DotLife) +------------------------------------------------------------------------------- + (Example)DotLife(Mat A,x1,y1,x2,y2)->Mat B + + +=============================================================================== +Other Extended Commands +=============================================================================== +------------------------------------------------------------------------------- +KeyRow( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F5](KeyRow) +------------------------------------------------------------------------------- +Return the key matrix. + + Returning bits (in binary) + bit6 bit5 bit4 bit3 bit2 bit1 + Row--------------------------------------Row + 09 F1 F2 F3 F4 F5 F6 09 + 08 SHIFT OPTN VARS MENU <- (up) 08 + 07 ALPHA ^2 ^ EXIT (DW) -> 07 + 06 XTT log ln sin cos tan 06 + 05 ab/c F<>D ( ) , -> 05 + 04 7 8 9 DEL 04 + 03 4 5 6 x div 03 + 02 1 2 3 + - 02 + 01 0 . EXP (-) EXE 01 + Row--------------------------------------Row + + (Example) KeyRow(9) + When press [F4] and [F6] keys at the same time, bit3 and bit1 come to 1, then return value is 2^3 + 2^1 = 10. + +------------------------------------------------------------------------------- +Ticks [VARS]-[F3](Extend)-[F1](Ticks) +------------------------------------------------------------------------------- +128 ticks/s timer. + (Example) 0 -> Ticks + Initialize the internal timer. + At the 32 bits counter which the internal timer counts it at 128 ticks/s, and restored in 24 hours. + The maximum value 24*60*60*128 -1 = 11059199. + +------------------------------------------------------------------------------- +Ticks% +------------------------------------------------------------------------------- +32768 ticks/s timer. + (Example) 0 -> Ticks% + Initialize the internal timer. + At the 32 bits counter which the internal timer counts it in a speed of 32768 ticks/s, and restored at 4294967296 (=2^32). + The maximum value is 4294967295=(2^32-1)=-1 + +------------------------------------------------------------------------------- +TicksWait +------------------------------------------------------------------------------- +Waits a period of time at a ratio of 128 ticks/second. +(Format) Combine "Ticks" and "Wait" to get this command. + (Example) TicksWait 128 + Waits for 1 second. + (Example) TicksWait -128 + Waits for 1 second from the last TicksWait command run. + When it has been already over 1 second, to the next processing without waiting. + (Example) TicksWait -4 + Wait for 4/128 second from the last TicksWait command run. + You can make 32fps of loops just to use one this command in the loop. + +------------------------------------------------------------------------------- +Ticks%Wait +------------------------------------------------------------------------------- +Waits a period of time at a ratio of 32768 ticks/second. +------------------------------------------------------------------------------- +DATE [VARS]-[F3](Extend)-[F3](DATE) +TIME [VARS]-[F3](Extend)-[F4](TIME) +------------------------------------------------------------------------------- +Shows the current date and time according to RTC. It is stored as the string variable. + (Example) "2017/01/17"->DATE + (Example) DATE + 2017/01/17 TUE + It is calculated automatically on a day. + + (Example) "23:59:59"->TIME + (Example) TIME + 23:59:59 + +------------------------------------------------------------------------------- +Disp [SHIFT]+[VARS](PRGM)-[F6]-[F2](DISPLAY)-[F6](Disp) +------------------------------------------------------------------------------- +This is a result indication command not to suspend unlike stop command (Disps). +A party scrolls every result indication. + (Example) Disp A+B + +------------------------------------------------------------------------------- +BackLight [VARS]-[F3](Extend)-[F5](BackLight) +------------------------------------------------------------------------------- +Set the current backlight status. + (Format) Backlight n + n=0 Backlight lights out + n=1 Backlight lights on + n=2 Backlight invert + (Format) +Backlight + Read the state of the current backlight. + (*An error will occur if command comes to the beginning of the expression.) + +------------------------------------------------------------------------------- +RefrshCtrl [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F1](RefrshCtrl) +RefrshTime [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F2](RefrshTime) +------------------------------------------------------------------------------- +RefrshCtrl and the RefrshTime command that could set the refreshment of the screen by a command. + (Example) RefrshCtrl 0 + No refresh control. + (Example) RefrshCtrl 1 + Refresh control is provided. Set to Grp (only graphics) mode. + (Example) RefrshCtrl 2 + All refresh control is provided. Set to All (graphics+text) mode. + (Example) RefrshTime 5 + Set the refresh control setting time to 5. + The screen update intervals is 5/128s. + + (Format) +RefrshCtrl + (Format) +RefrshTime + Read the state of the current RefrshCtrl/RefrshTime. + (*An error will occur if command comes to the beginning of the expression.) + +------------------------------------------------------------------------------- +Screen [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F1](Screen) +------------------------------------------------------------------------------- +Choose target VRAM and change a screen mode. +(Format 1) Screen + Change the text / graphic. +(Format 2) Screen.T or Screen.t + Change to text VRAM and change the screen mode to the text mode, +(Format 3) Screen.G or Screen.g + Change to graphic VRAM. +(Format 4) Screen 0 or Screen 1 + 0: Text VRAM + 1: Graphic VRAM + +To convert from Screen Coordinates to Graph Coordinates. +(Usage) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + Return value to List Ans{x,y} +(Example) Screen#1,1,-6.3,6.3,-3.1,3.1 + Result {74,22} + +To convert from Graph Coordinates to Screen Coordinates. +(Usage) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] + Return value to List Ans{x,y} +(Example) Screen%74,22,-6.3,6.3,-3.1,3.1 + Result {1,1} + +------------------------------------------------------------------------------- +PutDispDD [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F2](PutDispDD) +------------------------------------------------------------------------------- +Update screen. + +------------------------------------------------------------------------------- +PopUpWin( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F5](PopUpWin) +------------------------------------------------------------------------------- +Draw the pop-up window frame in current. + (Usage) PopUpWin(n) (1 <= n <= 6) + (Example) PopUpWin(5) + + Message popup + (Example) PopUpWin(11,"Message1"[,"Message1"])->A + Return values are always 1. A screen returns the command end. + + Yes/No popup + (Example) PopUpWin(10,"Message1"[,"Message1"])->A + Return value Yes: 1 + No: 0 + + (Example) PopUpWin(0) + Push screen. + + (Example) PopUpWin(9) + Return screen. + +------------------------------------------------------------------------------- +FKeyMenu( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F4](FKeyMenu) +------------------------------------------------------------------------------- +Display the function menu to a current VRAM. + +(Format)FKeyMenu( n[~m], "string"/Icon # [,C/M/m/N/R/I/S/L] ) + - 3rd or later arguments can be omitted. + - "," are required even if the argument is omitted. + - Default color of FKey icon is black and FKey back color is white. + + The order of the 3rd argument is arbitrary. +  C: clear icon. +  M: masked icon. +  m: masked only frame icon . +  N: normal white icon.(default) +  R: black icon with notch at the bottom right. +  I: black icon with no notch at the bottom right. +  S: white box icon with no notch at the lower right indicating the selected. +  L: expand the "string" display area by 2 dots left. + + (Example) FKeyMenu( 1,42) + Draw EDIT icon at [F1] position. + (Example) FKeyMenu (2, "ABCDE", R) + "ABCDE" is displayed in the black icon in the second function menu area. + (Example) FKeyMenu (3-4, "longtest") + "longtest" is displayed the white icon in the third to fourth function menu areas. + (Example) FKeyMenu (4, "Mask", M) + The masked icon is displayed in the fourth function menu area. + (Example) FKeyMenu (2, "", C) + Clear the second function menu + (Example) FKeyMenu (1-6, "", C) + ClearD the first to sixth function menus. + +------------------------------------------------------------------------------- +Save [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F2](Save) +Load( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F3](Load) +------------------------------------------------------------------------------- +Read and write the data of the Mat array. + (Example) Save "TEST",Mat A + (Example) Load("TEST")->Mat A + Save the content of the Mat array and read it. + When extension is left out, the file name becomes [.bin] to eight characters. + + (Example) Save "TEST",Mat A[5,1] + Save till the last from Mat A[5,1]. + (Example) Load("TEST",16) -> Mat A[10,1] + Read from data of the 16th byte of saved data in Mat A[10,1] + +------------------------------------------------------------------------------- +IsExist( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F1](IsExist) +------------------------------------------------------------------------------- +When the file does not exist, 0 becomes the return value. +When the file exists, file size becomes the return value. + (Example) IsExist("/ABC/TEST") + If "/ABC/TEST.g1m" does not exist, it becomes 0. + When the extension is left out, the file name becomes [.bin] to eight characters. + +List of files +(Format) IsExist("*.extension")->the number of the files +(Example) IsExist("*.bmp") ->N +$Mat Ans[3] +Display the 3rd file on the list. +N: The number of the files returns. +------------------------------------------------------------------------------- +Delete [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F4](Delete) +------------------------------------------------------------------------------- +Delete the appointed file. + (Example) Delete "TEST.dat" + If "TEST.dat" exists, delete it. + (Example) Delete "TEST.dat",1 + Confirm it before deletion. If "TEST.dat" exists, I delete it. + When no extension is given, the file name becomes [.bin] to eight characters. + +------------------------------------------------------------------------------- +Alias [OPTN]-[F5](Extend)-[F1](Alias) +------------------------------------------------------------------------------- +Alias variables by adding AliasVar command. Any character can be used as alias of actual variable character. +As for 32 variables, Mat and label can use 16 aliases. + +(Example) Alias A=(alpha) + (Alpha)+100->(alpha) + After setting the alias (alpha), (alpha) is available as variable instead of variable A. Real entity of (alpha) is A, so the above expression is identical with A+100->A + It is the same as A+100->A. + +(Example) Alias Mat A=(alpha) + Mat(alpha)[1]+100->Mat(alpha)[1] + After Alias command practice, I can use Mat variable A as (alpha). + Because substance of (alpha) is A + It is the same as Mat A[1]+100 and Mat A[1]. + +(Example) Alias Lbl A=(alpha) + Lbl (alpha) + Goto (alpha) + Gosub (alpha) + + +(Example) Alias a=_abc_de +(Example) Alias Mat a=_abcXY +(Example) _abc_de+1->_abc_de +(Example) Mat _abcXY[1,2]+1->Mat _abcXY[1,2] + You can use small letter variable a by _abc_de notation. + You can use small letter line a by _abcXY notation. + +(Example) Alias Lbl A=_Sub1 + Lbl _Sub1 + Goto _Sub1 + Gosub _Sub1 + +------------------------------------------------------------------------------- +Wait [VARS]-[F3](Extend)-[F2](Wait) +------------------------------------------------------------------------------- +Slow the overall execution speed. Set it by setup and [Wait] command. +When set it by setup, all the programs are affected. + (Example) Wait 100 + Even SH3 is SH4A, but becomes the speed drop of the same. + + Wait 10 is about 1/2 speed. + Wait 100 is about 1/10 speed. + +------------------------------------------------------------------------------- +ListCmp( [OPTN]-[F1](LIST)-[F6]-[F6]-[F5](Cmp) +------------------------------------------------------------------------------- +Compare List to List or List to value. + (Example) ListCmp({1,2,3},{1,2,3}) + Return value 1 + (Example) ListCmp({1,2,3},{1,3}) + Return value 0 + (Example) ListCmp({1,2,3},{1,3,2}) + Return value 0 + (Example) ListCmp({1,2,3},2) + Return value 1 + (Example) ListCmp({1,2,3},4) + Return value 0 + +=============================================================================== +String extended command +=============================================================================== +------------------------------------------------------------------------------- +StrLen(@ [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F2](Len) +------------------------------------------------------------------------------- +Added "@" option that return real byte count. +(Format) StrLen(@"ABCDE") +(Example) StrLen(@Str 1) + +------------------------------------------------------------------------------- +StrRepl( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F5](StrRepl) +------------------------------------------------------------------------------- + (Usage) StrRepl(String1,Find,ReplaceWith,StartAtCharPos) + (Example) StrRepl("Hello World","World","Earth") -> "Hello Earth" + (Example) StrRepl("abcabc","ab","ff",3) = "abcffc" + (Example) StrRepl("abcabc","ab","ff") = "ffcffc" + +------------------------------------------------------------------------------- +StrChar( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](Char) +------------------------------------------------------------------------------- +(Example) StrChar("ABC",5) + Results in "ABCABCABCABCABC" + +(Example) StrChar(0x41,5) + Results in "AAAAA" + +------------------------------------------------------------------------------- +StrCenter( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F2](Center) +------------------------------------------------------------------------------- +(Usage) StrCenter("Strings",length[,"SpacingStrings"]) +(Example) StrCenter("Test",8) + Results in "Test ") +(Example) StrCenter("Test",8,"*") + Results in "**Test**" + +------------------------------------------------------------------------------- +Hex( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F4](Hex) +------------------------------------------------------------------------------- +(Example) Hex(12345)->Str 1 + Result in "3039" +(Example) Exp("0X"+Str 1)->A + Result in 12345 + +------------------------------------------------------------------------------- +Bin( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F5](Bin) +------------------------------------------------------------------------------- +(Example) Bin(12345)->Str 1 + Result in "11000000111001" +(Example) Exp("0B"+Str 1)->A + Result in 12345 + +------------------------------------------------------------------------------- +StrBase( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F3](Base) +----------------------------------------------------------------------- +(Usage) StrBase(Number string, Current base, Expected base) + Current base, Expected base: 2~64 + Use character {0-9 A-Z a-z } +(Example) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + +------------------------------------------------------------------------------- +StrSplit( [SHIFT]+[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6]F6]-[F1](StrSplit) +------------------------------------------------------------------------------- +Divide character string by a designated letter and put it return to MatAns. +(Format) StrSplit("string","delimiter"[,start position]) + The result returns to MatAns as character string. +(Example) StrSplit("123,4567,89",",") + The result of MatAns becomes ["123","4567","89"] and can access it as follows if it retrieves individual factors. + $Mat Ans[1]="123" + $Mat Ans[2]="4567" + $Mat Ans[3]="89" + +------------------------------------------------------------------------------- +StrAsc( [Shift]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](StrAsc) +------------------------------------------------------------------------------- +Converts a character (in a string) into the corresponding ASCII code number. +(Example) StrAsc("Ascii") +Return value is 65(0x41). + +------------------------------------------------------------------------------- +StoCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F1] (Store) +RclCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F2] (Recall) +------------------------------------------------------------------------------- +Read/write the Capt file on the storage memory. Up to 99 files can be used. +(Example) StoCapt 20 +(Example) RclCapt 20 + +In relation to this, the file size of Pict file has been reduced by 1KB from 2KB. + + +=============================================================================== +Other Extended Command Reference +=============================================================================== +Carry it out as the command not comment after "'/". +Can describe the command to execute only C.Basic running. + +(Example) '/Ticks->S +(Example) '/Ticks-S->T + Measure time. + +------------------------------------------------------------------------------- +'# Command +------------------------------------------------------------------------------- +The setting for C.Basic in comment code. + +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +'#CBINT +'#CBint +�@to change running mode. This is all alphabet character. + +'#Break0 //�@disable [AC] +'#Break1 //�@enable [AC] (default) + +'#Mat 0 //�@start of Mat index is 0. +'#Mat 1 //�@start of Mat index is 1. (Default) + +'#GetKeyC //�@after GetKey1/2, stop of the timer and restart. (Default) +'#GetKeyR //�@after GetKey1/2, reset of the timer and restart. + +=============================================================================== + + +=============================================================================== +Hardware Extended Commands +=============================================================================== +C.Basic can execute a machine language program of SH3/SH4A on the memory. +It can access freely become only the Mat array. +The top address of the Mat array is found in VarPtr() or address operator &. +Indirect operator * are usable like C language, too. + +------------------------------------------------------------------------------- +SysCall( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F1](SysCall) +------------------------------------------------------------------------------- +Call a syscall prepared for by the OS. Four arguments can be given, but also can be left out if not needed. +(Format) SysCall( syscall number [,arg1][,arg2][,arg3][,arg4][,arg5][,arg6][,arg7][,arg8][,arg9][,arg10][,arg11][,arg12] ) + +(Example) Screen.G + SysCall(0x763,1,8,127,63)->R + + System call 0x763 is a system routine to draw a quadrangle to a screen. + The Syscall 0x763 draws a rectangle on the screen. The four parameters R4 to R7 are equal to 1,8,127,63 respectively. R receives the return value of the syscall. + +------------------------------------------------------------------------------- +Call( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F2](Call) +------------------------------------------------------------------------------- +Execute the machine language program of any address. Four arguments can be given, but also can be left out if not needed. + (Format) Call(machine language address [argument 1] [argument 2] [argument 3] [argument 4]) + (Example) Call(0x8802F000,A,B,C,D) -> R + The routine at the address 0x8802f000 is called with parameters R4=A, R5=B, R6=C, R7=D. Its return value is stored in R. + +------------------------------------------------------------------------------- +Peek( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F4](Peek) +------------------------------------------------------------------------------- +Read data from the memory. When there is not type definition [.B][.W][.L][.F], it is byte reading. +Can rearrange it in indirect operator *. + (Format) Peek(address) [.B][.W][.L][.F] + (Format) *(address) [.B][.W][.L][.F]) + + (Example) Peek(0x8802E000).B -> A% + (Example) *(0x8802E000).B -> A% + Read data of the 0x8802E000 address at A byte (1 byte) and substitute it for integer variable A%. + + (Example) Peek(0x8802E000).W -> A% + (Example) *(0x8802E000).W -> A% + Read data of the 0x8802E000 address in a word (2 bytes) and substitute it for integer variable A%. + + (Example) Peek(0x8802E000).L -> A% + (Example) *(0x8802E000).L -> A% + Read data of the 0x8802E000 address in A long word (4 bytes) and substitute it for integer variable A%. + + (Example) Peek(0x8802E000).F -> A + (Example) *(0x8802E000).F -> A + Read data of the 0x8802E000 address in A double precision real number (8 bytes) and substitute it for integer variable A. + +------------------------------------------------------------------------------- +Poke( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F3](Poke) +------------------------------------------------------------------------------- +Write in data at memory. When there is not type definition [.B][.W][.L][.F], it is a byte. +Can rearrange it in indirect operator *. + (Format 1) Poke(address) [.B][.W][.L][.F], data + (Format 1) *(address) [.B][.W][.L][.F], data) + (Format 2) Data->Poke(address) [.B][.W][.L][.F] + (Format 2) Data->*(address) [.B][.W][.L][.F]) + + (Example) Poke(0x8802E000).B,A% + (Example) A%->Poke(0x8802E000).B + (Example) A%->*(0x8802E000).B + + (Example) Poke(0x8802E000).W,A% + (Example) A%->Poke(0x8802E000).W + (Example) A%->*(0x8802E000).W + + (Example) Poke(0x8802E000).L,A% + (Example) A%->Poke(0x8802E000).L + (Example) A%->*(0x8802E000).L + + (Example) Poke(0x8802E000).F,A + (Example) A->Poke(0x8802E000).F + (Example) A->*(0x8802E000).F + +------------------------------------------------------------------------------- +VarPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F1](VarPtr) +------------------------------------------------------------------------------- +Read form the address of the variable. +Can rearrange it in address operator &. + (Format 1) VarPtr( variable) + (Format 2) &( variable) + + (Example) VarPtr(A%) + (Example) &A% + The address of the variable of integer variable A% returns. + + (Example) VarPtr(Mat A) + (Example) &Mat A + Top address of Mat A returns. + + (Example) VarPtr(Mat A[20,10]) + (Example) &Mat A[20,10] + The address that a value of Mat A[20,10] returns. + +------------------------------------------------------------------------------- +ProgPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F2](ProgPtr) +------------------------------------------------------------------------------- +Read form the top of address of the source program area. + (Example) ProgPtr() + + +=============================================================================== +Extended Graphics Commands - MonochromeLib +=============================================================================== +It is a command based MonochromeLib (by PierrotLL). +These commands act on current VRAM and do not do the processing except it at all. +The coordinate system is (0,0) -(127,63) is fixed. +It is necessary to transfer LCD using PutDispDD and _DispVRAM to display it. +------------------------------------------------------------------------------- +MonochromeLib by PierrotLL +https://wiki.planet-casio.com/fr/MonochromeLib +Implemented in C.Basic. +Refer to MonochromeLib’s manual. +------------------------------------------------------------------------------- +Color: -1 transparent +Color: 0 white +Color: 1 black +Color: 2 xor +Color: 3 check Color +Color: 4 random Color + +Added new Color (2x2 dot matrix) in MonochromeLib command. +Color value: 10 11 12 13 14 (2x2 dot matrix by 1dot width) +Color value: 20 21 22 23 24 (2x2 dot matrix) + oo *o *o ** ** + oo oo o* *o ** +(Example) _FillCircle 64,32,30,21 + +-Added random Color in MonochromeLib command. + (Usage) x,y,,,Color,chance +(Example) _Rectangle 0,0,127,63,0,0,4,0.5 +(Example) _Rectangle 0,0,127,63,0,0,4,%50 + Fill the whole screen with random pixels, pixels have a 50% chance of being on (0.5) or %50 +(Example) _FillCircle #0,0,3,4,0.5 + Makes a circle with the radius 3, the circle is filled with random pixels (on/off) pixels have a 50% chance of being on (0.5) + If the Color is 4, you can set the chance +(Example) _Rectangle 0,0,127,63,0,0,4,%10 + Fills the screen with pixels, the pixels have a 10% chance of being on + +------------------------------------------------------------------------------- +Drawing objects in Graph Coordinates instead of Screen Coordinates. + Add to '#' character option to ViewWindow Coordinates. + Support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct +(Example) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2,1 + +------------------------------------------------------------------------------- +_ClrVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F1](_ClrVram) +------------------------------------------------------------------------------- + Clears the VRAM. + +------------------------------------------------------------------------------- +_ClrScreen [SHIFT]-[F4](SKTCH)-[F3](ML)-[F2](_ClrScreen) +------------------------------------------------------------------------------- + Clears the screen. + +------------------------------------------------------------------------------- +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- + Copies VRAM content to screen. + +------------------------------------------------------------------------------- +_Pixel [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F1](_Pixel) +------------------------------------------------------------------------------- +_Pixel x,y,Color + Set the Color of a dot in VRAM. + Color:-1 transparent + Color: 0 White + Color: 1 Black + Color: 2 Xor + Color: 3 Checker + +------------------------------------------------------------------------------- +_Point [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F2](_Point) +------------------------------------------------------------------------------- +_Point x,y,width,Color +Draws a point (square) in VRAM, centered at (x, y), with sides length (in pixel) are defined by parameter width. +(Example) _Point 10, 10, 3, 1 + Will draw a black rectangle from (9, 9) to (11, 11) + +------------------------------------------------------------------------------- +_PixelTest( [SHIFT]-[F4](SKTCH)-[F3](ML)-[F4](_PixelTest) +------------------------------------------------------------------------------- +_PixelTest( + Returns the Color of the pixel in coordinates (x, y) + -1: out of screen + 0: White + 1: black + +------------------------------------------------------------------------------- +_Line [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F3](_Line) +------------------------------------------------------------------------------- +_Line X1,Y1,X2,Y2,Color[,chance][,Width] + Draws a line between points in coordinates (x1, y1) and (x2, y2) using Bresenham algorithm. +(Example) _Line 0,0,127,63,1,,10 + +------------------------------------------------------------------------------- +_Horizontal [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F4](_Horizontal) +------------------------------------------------------------------------------- +_Horizontal y,x1,x2,Color + Draws a horizontal line. + This function is faster than _line with y1=y2. + +------------------------------------------------------------------------------- +_Vertical [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F5](_Vertical) +------------------------------------------------------------------------------- +_Vertical x,y1,y2,Color + Draws a vertical line. + This function is faster than a call to _line with x1==x2. + +------------------------------------------------------------------------------- +_Rectangle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F1](_Rectangle) +------------------------------------------------------------------------------- +_Rectangle x1,y1,x2,y2, border_width, border_Color, fill_Color[,chance][,angle][,center_X][,center_Y][,zoom%] + Draws a rectangle with or without border. + You can define the border Color, and the fill Color. + If you want no border, set border_width to 0. + If [center_X][center_Y] are omitted, The center of the drawn image is specified. + +------------------------------------------------------------------------------- +_Polygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F2](_Polygon) +------------------------------------------------------------------------------- +_Polygon *ary_x, *ary_y, vertices, Color[,chance][,angle][,center_X][,center_Y][,zoom%] + Draws a polygon. + This function needs as parameters 2 arrays, containing abscissa and ordinates of the polygon vertices. + Parameter nb_vertices should be the number of data to read in arrays. + This function draws a line between each vertices of the polygon. +(Example) + [[60, 75, 70, 50, 45]]->Mat X.L // require int + [[20, 30, 45, 45, 30]]->Mat Y.L // require int + Screen.G + _ClrVRAM + _Polygon VarPtr(Mat X), VarPtr(Mat Y), 5, 1); (or _Polygon &Mat X, &Mat Y, 5, 1); + _DispVRAM (or PutDispDD) + +------------------------------------------------------------------------------- +_FillPolygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F3](_FillPolygon) +------------------------------------------------------------------------------- +_FillPolygon *ary_x, *ary_y, vertices, Color[,chance][,angle][,center_X][,center_Y][,zoom%] + Similar to _Polygon, but draws filled polygon. + +------------------------------------------------------------------------------- +_Circle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F4](_Circle) +------------------------------------------------------------------------------- +_Circle x, y, radius, Color + Draws a circle centered on (x, y) using Bresenham algorithm. + +-Added _Circle option. + (Usage) _Circle x,y,radius,Color[,chance][,width][,start_angle][,end_angle][,vertex] + (Example) _Circle 64,32,20,4,0.5,3 + 3x3dot 50% circle + (Example) _Circle 64,32,20,1,,3,0,90 + To draw 3x3dot 1/4 circle + (Example) _Circle 64,32,20,1,,,0,360,5 + To draw pentagon (to have an effect on setting of Draw Type) + (Example) _Circle 64,32,20,1,,,20,380,5 + To draw shifted pentagon + +------------------------------------------------------------------------------- +_FillCircle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F5](_FillCircle) +------------------------------------------------------------------------------- +_FillCircle x, y, radius, Color + Similar to _Circle, but draws filled circle.. + +------------------------------------------------------------------------------- +_Elips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F1](_Elips) +------------------------------------------------------------------------------- +_Elips x, y, radius1, radius2, Color[,angle] + Draws an ellipse centered on (x, y) with radiuses radius1 et radius2. + radius1 is distance between center and lefmost point of ellipse, + radius2 is distance between center and upper point of ellipse. Use the Bresenham algorithm. + +------------------------------------------------------------------------------- +_FillElips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F2](_FillElips) +------------------------------------------------------------------------------- +_FillElips x, y, radius1, radius2, Color[,angle] + Similar to _Elips, but draws a filled ellipse. + +------------------------------------------------------------------------------- +_ElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F3](_ElipsInRct) +------------------------------------------------------------------------------- +_ElipsInRct x1, y1, x2, y2, Color[,angle] + This function calls _Elips. It expect rectangle coordinates, and draw an ellipse in this rectangle. + +------------------------------------------------------------------------------- +_FElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F4](_FElipsInRct) +------------------------------------------------------------------------------- +_FElipsInRct x1, y1, x2, y2, Color[,angle] + Similar to _ElipsInRct, but draws a filled ellipse. + +------------------------------------------------------------------------------- +_Hscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F1](_Hscroll) +------------------------------------------------------------------------------- +_Hscroll n[,x1,y1,x2,y2] + Shifts all pixels in VRAM to left or right. For Example, if scroll=5, then a pixel on (2,3) will be moved on (7,3). + If scroll is a negative value, pixels will be shift to left. When pixels reach screen boundaries, they reappear on the other side. + You can specify the scroll area. + (Example) _Hscroll 1,32,16,47,95 + Left scroll only (32,16)-(47,95). + +------------------------------------------------------------------------------- +_Vscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F2](_Vscroll) +------------------------------------------------------------------------------- +_Vscroll n[,x1,y1,x2,y2] + Similar to _Horizontal_scroll, but scroll vertically. + +------------------------------------------------------------------------------- +_Bmp [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F1](_Bmp) +------------------------------------------------------------------------------- +_Bmp *bmp, x, y, width, height [,O/A/X] [,C] + These functions are made to draw images in monochrome bitmap Format. They are very useful to draw tiles and sprites in games. + [.O] Or + [.A] And + [,X] Xor + [,C] with clipping +(Example) + [[60, 126, 251, 253, 253, 255, 126, 60]]->Mat B.B // byte Matrix + _Bmp VarPtr(Mat B), 8, 16, 4, 8, O, C + +------------------------------------------------------------------------------- +_Bmp8 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F2](_Bmp8) +------------------------------------------------------------------------------- +_Bmp8 *bmp, x, y [,O/A/X] [,C] + Draw 8*8 sized bitmap. +(Example) + [[60, 126, 251, 253, 253, 255, 126, 60]]->Mat B.B // byte Matrix + _Bmp &Mat B, 8, 16, A + +------------------------------------------------------------------------------- +_Bmp16 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F3](_Bmp16) +------------------------------------------------------------------------------- +_Bmp16 *bmp, x, y [,O/A/X] [,C] + Draw 16*16 sized bitmap. + + +------------------------------------------------------------------------------- +Additional option for MonochromeLib command. +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +BmpLoad( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F1](BmpLoad) +BmpSave [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F2](BmpSave) +------------------------------------------------------------------------------- +Bmp file load/save support.(only 1 bit mono type) +(Example) BmpLoad("TEST"),20,10 + Load TEST.bmp at coordinate (20,10). + +(Example) BmpSave "TEST",10,20,100,50 + Save TEST.bmp at coordinate (10,20)-(100,50) + + (Example) BmpSave "TEST",Mat A + Save "TEST.bmp" at current folder. + (Example) BmpLoad("TEST")->Mat A + Load bmp data to Mat A + +------------------------------------------------------------------------------- +DrawMat [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F3](DrawMat) +------------------------------------------------------------------------------- +Drawing Mat data. + (Usage) DrawMat Mat A[px,py], x, y, width, height [,zoomwidth][,zoomheight][,Color][,chance] + (Example) DrawMat Mat A, 0, 0, 128, 64 + (Example) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + +------------------------------------------------------------------------------- +_BmpZoom [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F4](_BmpZoom) +_BmpRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F5](_BmpRotate) +_BmpZmRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F4](_BmpZmRotate) +------------------------------------------------------------------------------- +Zoom & Rotate & ZoomRotate in ML command. ( based on Planet-Casio Ninestars expansion ) + (Usage) _BmpZoom &Mat , x, y, width, height [,zoomwidth][,zoomheight][,Color][,chance] + (Usage) _BmpRotate &Mat , x, y, width, height [,angle(degree)][,Color][,chance] + (Example) _BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 + (Example) _BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 + (Example) _BmpRotate &Mat A, 0, 0, 20, 10, 45 + + (Usage) _BmpZoomRotate &Mat , x, y, width, height [,zoomwidth][,zoomheight][,angle(degree)][,Color][,chance] + (Example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 + (Example) _BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + +------------------------------------------------------------------------------- +_Test [SHIFT]-[F4](SKTCH)-[F3](ML)-[F5](_Test) +------------------------------------------------------------------------------- + (Supported command) _Point _Line _Rectangle _Circle _Polygon + To use function to put "_Test" before support command. + (Example) _Test_Rectangle 0,0,127,63 + To return the amount of pixels that are on in that area (0,0)-(127,63) + (Example) _Test_Circle 62,32,20 + (Example) _Test_Point 10,10,5 + (Example) _Test_Line 10,10,100,30 + + + +=============================================================================== +About external font (1.70-) +=============================================================================== +An external font is usable by ASCII characters (0x20~0x7E) and gaiji/kana characters (0xFF80~0xFFDF). + +When font files exist in current folder or Font folder, auto read the following font files at the time of file list update, and a font is replaced. +If there are not these files, it becomes the built-in font of the default. + FONTA8L.bmp (external ASCII standard font) + FONTA6M.bmp (external ASCII mini-font) + FONTG8L.bmp (external gaiji character standard font) + FONTG6M.bmp (external gaiji character mini-font) + FONTK8L.bmp (external kana standard font) + FONTK6M.bmp (external kana mini-font) + +The bundled default external fonts are as follows. + FONTK8L0.bmp external katakana font (standard) + FONTK6M0.bmp external katakana font (mini) + FONTK8L1.bmp external hiragana font (standard) + FONTK6M1.bmp external hiragana font (mini) + FONTG8L0.bmp external gaiji character sample font (standard) + FONTG6M0.bmp external gaiji character sample font (mini) + +Put these fonts in the current folder, +BmpLoad (@K1) +To replace by exhiragana letter +BmpLoad (@K0) +It becomes the kana font. + +------------------------------------------------------------------------------- +GetFont( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F1](GetFont) +GetFontMini( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F3](GetFontMini) +------------------------------------------------------------------------------- +To read font data. +(Format 1) GetFont( font code) ->Mat A +(Format 1) GetFontMini( font code) ->Mat A +(Example) GetFont(0x41) ->Mat A + BitMap data (6x8) of font "A" is input into 1 bit Mat A[6,8] +(Example) GetFontMini(0xFF80) ->Mat A + The first BitMap data (6x6) of the external (0xFF80) mini-font is input into 1 bit Mat A[6,6]. + +(Format 2) GetFont( "font character") ->Mat A +(Format 2) GetFontMini( "font character") ->Mat A +(Example) GetFont("A") ->Mat A + BitMap data (6x8) of font "A" is input into 1 bit Mat A[6,8]. +(Example) GetFontMini("A") ->Mat B + BitMap data (4x6) of mini font "A" is input into 1 bit Mat B[4,6]. + +(Format 3) GetFont(@ font code) ->Mat A +(Format 3) GetFontMini(@ font code) ->Mat A +(Format 4) GetFont(@ "font character") ->Mat A +(Format 4) GetFontMini(@ "font character") ->Mat A +(Example) GetFont(@0x41) ->Mat A +(Example) GetFont(@"A") ->Mat A + BitMap data (6x8) of built-in font "A" is input into 1 bit line Mat A[6,8]. + +To read external font status. +(Format 5) GetFont() +(Format 5) GetMiniFont() + Return value is (bit0:Ascii) (bit1:Gaiji) (bit2:Kana) +(Example) When only the external kana font of the standard size is introduced, + GetFont() return to 4 + GetMiniFont() return to 0 +(Example) When the external ascii mini font and gaiji mini font are introduced, + GetFont() return to 0 + GetMiniFont() return to 3 + +------------------------------------------------------------------------------- +SetFont [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F2](SetFont) +SetFontMini [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F4](SetFontMini) +------------------------------------------------------------------------------- +To set font data. +(Format 1) SetFont font code ,Mat A +(Format 1) SetFontMini font code ,Mat A +(Example) SetFont 0xFF80,Mat A + Font data of Mat A are set as data of the first one of the external font. +(Example) SetFontMini 0xFF80,Mat A + Font data of Mat A are set as the first data of the external mini-font. + +(Format 2) SetFont "font character" ,Mat A +(Format 2) SetFontMini "font character" ,Mat A +(Example) SetFont "@",Mat A + Font data of Mat A are set as data of font "@". +(Example) SetFontMini "@",Mat B + Font data of Mat B are set as data of mini-font "@". + +------------------------------------------------------------------------------- +BmpLoad(@A +BmpLoad(@AL +BmpLoad(@AM +BmpLoad(@G +BmpLoad(@GL +BmpLoad(@GM +BmpLoad(@K +BmpLoad(@KL +BmpLoad(@KM +------------------------------------------------------------------------------- +Read font data from bitmap file. +(Format) BmpLoad(@G[ font file number]) +(Format) BmpLoad(@K[ font file number]) +(Format) BmpLoad(@A[ font file number]) + The font file number can 0-9. +(Example) BmpLoad(@A1) + A font file of FONTA8L1.bmp (ASCII standard font) FONTA6M1.bmp (ASCII mini-font) is read as external ASCII font. + +(Format) BmpLoad(@GM[ font file number]) +(Format) BmpLoad(@GL[ font file number]) +(Format) BmpLoad(@KL[ font file number]) +(Format) BmpLoad(@KM[ font file number]) +(Format) BmpLoad(@AL[ font file number]) +(Format) BmpLoad(@AM[ font file number]) +(Example) BmpLoad(@AL2) + A font file of FONTA8L2.bmp (ASCII standard font) is read as external ASCII standard font. +(Example) BmpLoad(@AM2) + A font file of FONTA6M1.bmp (ASCII mini-font) is read as external ASCII mini-font. + +(Format) BmpLoad(@GL" file name ") +(Format) BmpLoad(@GM" file name ") +(Format) BmpLoad(@KL" file name ") +(Format) BmpLoad(@KM" file name ") +(Format) BmpLoad(@AL" file name ") +(Format) BmpLoad(@AM" file name ") +(Example) BmpLoad(@GL"MYFONTL") + MYFONTL.bmp is read as an external gaiji standard font. +(Example) BmpLoad(@GM"MYFONTM") + MYFONTM.bmp is read as an external gaiji mini-font. + +------------------------------------------------------------------------------- +BmpSave A +BmpSave AL +BmpSave AM +BmpSave G +BmpSave GL +BmpSave GM +BmpSave K +BmpSave KL +BmpSave KM +------------------------------------------------------------------------------- +Output font data to bitmap file. +(Format) BmpSave G[ font file number] + Save an external character font (standard&mini) in a current folder. + The file name FONTG8L.bmp (standard) + The file name FONTG6M.bmp (mini) +(Format) BmpSave K[ font file number] + Save a kana font (standard&mini) in a current folder. + The file name the FONTK8L.bmp (standard) file name FONTK6M.bmp (mini) +(Format) BmpSave A[ font file number] + Save ASCII font (standard&mini) in a current folder. + The file name the FONTA8L.bmp (standard) file name FONTA6M.bmp (mini) +(Format) BmpSave @K + Save in "/Font" folder. + +(Format) BmpSave GL[ font file number] +(Format) BmpSave GM[ font file number] +(Format) BmpSave KL[ font file number] +(Format) BmpSave KM[ font file number] +(Format) BmpSave AL[ font file number] +(Format) BmpSave AM[ font file number] +(Example) BmpSave GL2 + Save an external character standard font file as of FONTG8L2.bmp (external gaiji standard font) for external font file 2. +(Example) BmpSave GM3 + Save an external character mini-font file as of FONTG6M3.bmp (external gaiji mini-font) for external font file 3. + +(Format) BmpSave GL"" +(Format) BmpSave GM"" +(Format) BmpSave KL"" +(Format) BmpSave KM"" +(Format) BmpSave AL"" +(Format) BmpSave AM"" +(Example) BmpSave GL"MYFONTL" + Save a current external gaiji standard font as "MYFONTL.bmp". +(Example) BmpSave GM"MYFONTM" + Save a current external gaiji mini-font as "MYFONTM.bmp". + + + +=============================================================================== +Serial communication commands (not compatible with genuine Casio Basic.) +=============================================================================== + (Format) Send( data [,baudrate][,enable_exit]) + (Format) Recv( data [,baudrate][,enable_exit]) + (Format) Send38K data [,bytecount] + (Format) Receive38k data [,bytecount] + (Format) OpenComport38K[,baudrate][,transfermode][,enable_exit] + (Format) CloseComport38K + [Data]: Variable,Matrices,List + Data is necessary to match data type of a transfer source to a transfer destination. + [baudrate]: 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=115200 baud + Default baudrate is 38400 + [transfermode]: 0:binary data transfer mode 1:necessary to match data type (default) + When OpenComport38K with [transfermode:0]option, Send38K/Receive38k is binary data transfer. + [enable_exit]: 0:not interrupt 1:interrupt + + Send(/Recv( use alone. + Send38K/Receive38k is necessary for OpenComport38K/CloseComport38K. + + (Example) Send(A) + (Example) Recv(A) + (Example) Send(Mat A) + (Example) Recv(Mat A) + + (Example) OpenComport38K,9,0 + Send38K List 1 + CloseComport38K + (Example) OpenComport38K,9,0 + Receive38k List 1 + CloseComport38K + +------------------------------------------------------------------------------- +Beep (SH4A-exclusive) [SHIFT]+[VARS](PRGN) -[F6] -[F4](I/O) -[F6] -[F5](Beep) +------------------------------------------------------------------------------- +(Format) Beep [frequency][,duration (ms)] +Output square wave of the frequency designated than the 3Pin output. +(Example) Beep +Output square wave of 1KHz from 3Pin for 0.5 seconds. +(Example) Beep 440,1000 +Output square wave of 440Hz from 3Pin for one second. + + + + +=============================================================================== +Setup Page +=============================================================================== +Setup items - compatible with genuine Casio Basic + +Angle: Rad / Deg / Grad +Draw Type: on / off +Coord: on / off +Grid: on / off +Axes: on / off +Label: on / off +Derivative: on / off +Sketch Line: Normal / Thick / Broken / Dot + + +Setup items - newly provided by C.Basic +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + +Fix, Sci, Norm can take integer parameter in range of 0 to 15. +Fix: Setting is almost same as genuine Casio Basic, except x is in exponent notation when |x| ≧ 10^17. + +Sci:Setting is almost same as genuine Casio Basic, except Sci 0 sets 16 significant figures. + +Norm:Norm 1 and Norm 2 set 10 significant figures same as genuine Casio Basic. Norm 0 sets 16 significant figures. +Norm n sets n significant figures. Condition of exponent notation depends on following range of x; +- Norm 1 …… 0.01 > |x|, |x| ≧ 10^10 +- Norm 2 …… 0.000000001 > |x|, |x| ≧ 10^10 +- Norm n (3≦n≦15) …… 0.01 > |x|, |x| ≧ 10^n +- Norm 0 …… 0.01 > |x|, |x| ≧ 10^15 + + +Eng, Norm, Fix, Sci return current state (On or Off). + +Eng returns the current state of 3-digit seperator: +- Return value 0: state of EngOff +- Return value 1: state of EngOn +Norm, Fix, Sci +To return current status, set negative value as parameter*; +(Note*) To add the parameter, ( ) is not necessarily required. +If current state is Norm1, return values are: +- Norm (-1) gives 1 +- Fix (-1) gives -1 +- Sci (-1) gives -1 + +If current state is Fix 8, return values are: +- Norm (-1) gives -1 +- Fix (-1) gives 8 +- Sci (-1) gives -1 + +------------------------------------------------------------------------------- +Syntax Help: On/Off + The help dispyay at the command input of editor. +------------------------------------------------------------------------------- +SetupRecover: On/Off + set it whether you return setting compatible with genuine Casio Basic after a program in SetupRecover. +------------------------------------------------------------------------------- +Command Input: C.Basic/Standard + Select Standard (fx-9860G) method or C.Basic (fx-5800P) method. + You can change the mode of "" output specifications compatible with fx-5800P and FX/CG. + - Related command: '#58 + '#98 +------------------------------------------------------------------------------- +Max Mem Mode: on/off + Set to use the available maximum memory. +------------------------------------------------------------------------------- +EnableExFont: on/off + Set to use external font. +------------------------------------------------------------------------------- +Edit ExtFont: On/Off + enable external font in editor. +------------------------------------------------------------------------------- +EditFontSize: Standard/Mini/Mini_rev/Mini UnderCursor/Mini_rev_UnderCSR + Set to Editor font size. +------------------------------------------------------------------------------- +HideStatLine :On/Off + On :Hide the status line and use for editing. + Off:Display the status line. +------------------------------------------------------------------------------- +Edit Indent+: Off/1/2/4 Save- + Enable auto indent in editor. + Off: Disable auto indent. + 1: Set indent width to 1. + 2: Set indent width to 1. + 4: Set indent width to 1. + Save-: delete blank spaces including indents when saving program. (=to compatible with Casio Basic) +------------------------------------------------------------------------------- +Edit LineNum: on/off + Set to line number display. +------------------------------------------------------------------------------- +EditListChar: List / reverseL / Thick L + Select List display character. +------------------------------------------------------------------------------- +Use Hidden RAM: on / off + Set if C.Basic uses hidden RAM or not. +------------------------------------------------------------------------------- +HiddenRAM Init: on / off + When use the hidden RAM, Mat&List at the time of C.Basic start, to initialize or not. +------------------------------------------------------------------------------- +Max Pict No: 20~99 + When use the hidden RAM, you can use more pict file. + (*)When you change a value, Pict&Mat&List is reset. +------------------------------------------------------------------------------- +Max List No: 52~1040 + When use the hidden RAM, you can use more List. + (*)When you change a value, Pict&Mat&List is reset. +------------------------------------------------------------------------------- +AT DebugMode: on / off + When [AC] break, debug mode on/off. +------------------------------------------------------------------------------- +ExitDM Popup: on / off + Set to popup of exit Debug Mode. +------------------------------------------------------------------------------- +Break Stop: on / off + Set if [AC] key break is accepted or not. + When it's off, you cannot break program by [AC] key. +- Related command: '#Break 0 '#Break 1 +------------------------------------------------------------------------------- +Exec TimeDsp: on / off / reset / %HR + Set if program running time is displayed or not after the program quits. + Timer starts at first line of program. ? or Disps command reset the timer. + In the case of GetKey1/2, the timer is suspended and starts after command again. + on reset: The timer is reset and starts again after GetKey1/2. + %HR: use 1/32768s timer (only SH4A) + - Related command: '#GetKeyC '#GetKeyR +------------------------------------------------------------------------------- +IfEnd Check: on / off + Set if one-to-one correspondence of "If" and "IfEnd" statement is checked or not. +------------------------------------------------------------------------------- +ACBreak: on / off + Set ACBreak command to be enable or disable. + - Related command: ACBreak +------------------------------------------------------------------------------- +Force Return: None/ F1/ EXE/ F1&EXE + Force return to file mode at [AC]break. + (Example) Force Return set to [F1]key + -File list→[F1](EXE)→[AC]→[EXIT]… Returns to the file list. + -File list→[EXE]→[AC]→[EXIT] …… Returns to the editor. + -File list→[F1](EXE]→[AC]→[EXE](restart)→[AC]→[EXIT] …… Returns to the file list. + (The operation depends on which key is pressed first.) +------------------------------------------------------------------------------- +Key 1st time: 25 ms - 1000 ms (default value is 500 ms) + Set time before key repeat starts (in 25 ms interval) +------------------------------------------------------------------------------- +Key Rep time: 25 ms - 500 ms (default value is 125 ms) + Set key repeat duration time (in 25 ms interval) +------------------------------------------------------------------------------- +SkipUp/Down: 1 - 9999 + Set number of skipping page for SkipUp ([SHIFT][Up]) or SkipDown ([SHIFT][Down]). +------------------------------------------------------------------------------- +Mat Dsp mode: [m,n] / [X,Y] + Set matrix display Format in Matrix Editor page. + Format [m,n] and [X,Y] are in transposed matrix each other, but just only the appearance on screen is different. The internal matrix data is still same, won't be changed. +------------------------------------------------------------------------------- +Matrix base: 0 / 1 + Set index of matrix starts with 0 or 1. + When the start index is set to 0, left-top pixel comes to be available to use and left-top coordinate of device coordinates can be (0, 0). + - Related command: '#Mat 0, '#Mat 1 +------------------------------------------------------------------------------- +DATE: 2017/01/17 TUE + Set date of internal RTC. A day of the week is automatically set. +------------------------------------------------------------------------------- +TIME: 23:59:59 + Set time of internal RTC + - Related command: DATE, TIME +------------------------------------------------------------------------------- +Root Folder: (* Only Graph 35+E II is valid.) + [F1]: To set the root folder. + [F2]: To set the current folder. + - Related command: + '#R/ // to set the root folder. + '#R. // to set the current folder. +------------------------------------------------------------------------------- +Auto file Save: on/off + Set to auto save without a popup. +------------------------------------------------------------------------------- +Force g1m save: on / off + Set "save automatically" or "not save" g1m file, after run or edit of text file. +------------------------------------------------------------------------------- +Pict mode: S.Mem / Heap / Both / MainMem + - S.Mem: Pict file is created in storage memory/SD and it takes a bit longer. + - Heap: Pict file is not actually created, but compatible file is allocated in main memory. + - Both: Stored always in storage memory/SD. + - Main: Pict file is compatible with genuine Casio Basic. +------------------------------------------------------------------------------- +Storage mode: S.Mem / SD / MainMem + S.Mem: Files in storage memory is used for run and edit. + SD: Files in SD is used for run and edit (available oonly for SD verison of fx-9860G series + Main mem: Files in Main Memory is used for run and edit. +------------------------------------------------------------------------------- +RefrshCtl DD: off / Grp / All + Set how to refresh screen at running of display and draw command. + Off: No extra refresh control is carried out, which is compatible with genuine Casio Basic. + Grp: Only graphics draw commands make screen refreshed, excepting ClrText, Locate, Text, LocateYX, " " (this exception is compatible with former version of C.basic). + All: All the display and draw commands male screen refreshed. PutDispDD should be used as may be necessary. + Time: Set refresh control tme in interval of 1/128 sec. Defalt value is 3 then refresh control is every 1/42 sec. + It is not refreshed when 0 is set. + - Related command: RefrshCtrl, RefrshTime +------------------------------------------------------------------------------- +Wait count: 0~9999 + Set to wait for slow down execution speed. + - Related command: Wait +------------------------------------------------------------------------------- +Execute mode: Dbl# / Int% / CPLX + Set running mode as default. + - Related command: '#CBasic, '#CBASIC, '#CBINT, '#CBint '#CBCPLX '#CBcplx +------------------------------------------------------------------------------- diff --git a/doc-fx/Manual_FR.txt b/doc-fx/Manual_FR.txt new file mode 100644 index 0000000..b959cb7 --- /dev/null +++ b/doc-fx/Manual_FR.txt @@ -0,0 +1,2502 @@ +Voyez aussi ce site: +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +Le site est traduit par Krtyski, et ce fichier par Lephenixnoir. + +=============================================================================== + +Manuel de l'interpréteur (et compilateur) Basic Casio, version Beta 2.x + +Copyright (c) 2015-2020 Sentaro21 +Email: sentaro21@pm.matrix.jp + +Dernière mise à jour du texte d'origine par Sentaro21, le 10/02/2020 + +=============================================================================== +Qu'est-ce que C.Basic ? +=============================================================================== +C.Basic est un interpréteur Basic Casio rapide et compatible avec le Basic Casio standard. Il implémente certains bons aspects de la fx-5800P. + +C.Basic lit des programmes dans les fichiers *.g1m stockés dans la mémoire de sotckage, contrairement au Basic Casio standard qui lit les contenus des fichiers *.g1m dans la mémoire principale. Un programme utilisant uniquement des commandes compatibles peut être exécuté à la fois dans C.Basic et l'interpréteur standard. + +=============================================================================== +Mémoire disponible +=============================================================================== +Il y a 64 ko de RAM à l'usage libre de l'add-in, 16 lo de pile. +Comme 8 ko sont utilisés pour les variables globales de l'add-in, il reste 40 ko d'utilisation libre. +En C.Basic, après avoir retiré quelques ko de buffers, il reste environ 36 ko libres, notamment pour charger les programmes et les matrices. +Sur les Graph SH4 et un certain nombre de Graph SH3, il y a 256 ko de RAM disponibles en plus et inutilisés par le système (appelée "zone cachée"). C.Basic sait l'exploiter. + +(*Version 1.75) +Lorsque la police externe n'est pas chargée, jusqu'à 40 ko de RAM (233 ko dans le cas de la zone cachée supplémentaire) sont disponibles. +Lorsque la police externe est utilisée, elle occupe environ 4 ko de place. + +=============================================================================== +Editeur de programme intégré, avec taille variable de texte +=============================================================================== +C.Basic a un éditeur de texte intégré, similaire à celui pr défaut. +Le copier-coller est supporté, mais il n'est possible de copier que 2 ko à la fois. Il n'y a pas encore d'annulation. + +La taille initiale des nouveaux fichiers est 4 ko. +Vous ne pouvez pas dépasser cette taille lorsque vous éditez un programme juste après sa création. Si vous atteignez 4 ko, veuillez enregistrer puis rouvrir le programme. +La zone de mémoire disponible sera alors augmentée de 2 ko. + +Lorsque le programme est exécuté, de la mémoire est réservée pour charger son code, avec un buffer supplémentaire de 2 ko (512 octets pour les sous-programmes). +Au moment de debugger le programme, ce buffer peut être exploité pour modifier le code. + +La taille maximale absolue de programme éditable est d'environ 20 à 30 ko dans le cas standard où la RAM cachée est indisponible. (Cette taille varie avec le nombre de fichiers stockés.) +Quand la RAM cachée est disponible, ce maximum atteint environ 62 ko. + + +=============================================================================== +Debugger intégré +=============================================================================== +Une fonctionnalité qui distingue C.Basic de l'interpréteur standard est la capacité de debugger et reprendre un programme après avoir appuyé sur [AC]. +Il est également possible de démarrer directement le programme en mode debug. +Ce mode permet de tracer l'exécution, exécuter pas-à-pas, exécuter ligne-à-ligne, et exécuter jusqu'en fin de fonction. + + +=============================================================================== +Modes d'exécutions - "Entier" et "Réel" +=============================================================================== +C.Basic supporte trois modes d'exécutions en termes de variables numériques. Les modes "Réel" et "Complexe" sont identiques au Basic Casio standard ; le mode "Entier" permet de travailler avec des entiers uniquement. Le mode "Entier" permet d'accélerer le programme quand les valeurs réelles ne sont pas nécessaires. + +Ces modes peuvent être sélectionnées par le biais de commandes cachées dans des commentaires. Pour activer le mode réel, utilisez l'une des commandes équivalentes suivantes : + +'#CBasic +'#CBASIC +'#CBdbl +'#CBDBL + +Pour activer le mode entier, utilisez l'une des commandes suivantes : + +'#CBint +'#CBINT + +Pour activer le mode complexe, utilisez l'une des commandes suivantes : + +'#CBcplx +'#CBCPLX + +Les nombres réels de C.Basic sont implémentés par des nombre flottants en double-précision. + +Les paramètres par défauts peuvent être modifiés dans la page Configuration (Setup), à l'entrée "Mode d'exécution" ("Execute mode") ; les valeurs disponibles sont "Dbl#" et "Int%". + +Tout mode d'exécution dans un programme est prioritaire sur le paramètre par défaut de la page Configuration. + +En mode Entier, toutes les valeurs calculées doivent être des entiers, mais la vitesse de calcul est environ 1.5 plus élevée que celle du mode Réel. + +Si vous voulez évaluer une expression spécifique en Réel alors que le mode Entier est activé, préfixez l'expression d'un #. Les calculs intermédiaires seront faits en double précision, et seul le résultat final sera converti en entier. Le résultat final est toujours converti en entier. + +(Exemple) +"100*Frac 1.23+5" + +En mode Entier, Frac 1.23 est invalide et le code précédent donne une erreur. Cependant le préfixe # permet à l'expression d'être évaluée en double précision; l'évaluation entière reprend à la fin de la ligne ou au premier :. Ainsi : + +#(Frac 1.23*100+5) + +donnera 28. En mode Réel, le résultat est également 28. + +Si # est au milieu de l'expression, son effect continue jusqu'à la fin de la ligne ou le premier :. Par exemple : + +(Exemple) +100*#Frac 1.23+5 + +est interprété comme : +100*#(Frac 1.23+5) +donc le résultat vaut 523 en mode Réel et 500 en mode Entier. + + +=============================================================================== +Au sujet de la fonction Wait +=============================================================================== +Il est possible d'ajuster la vitesse d'exécution globale. +Lorsque cet ajustement est fait dans le menu Configuration (Setup), tous les programmes seront affectés. + +Utilisez la commande Wait pour le faire à l'intérieur d'un programme. +(Exemple) Wait 100 +Paramètre à 100 le délai d'exécution. + + +=============================================================================== +Types de nombres +=============================================================================== +Le Basic Casio standard représente les nombres en décimal avec une précision de 15 digits en interne, et 2 digits d'exposant. C.Basic, à l'inverse, utilise un nombre réel en double précision (8 octets) et des entiers de 4 octets, puisque ce sont les types natifs du C dans le SDK de Casio. +La plage de nombres que les réels en double précision peuvent représenter est de ++-9.88131291682493e-323 à +-1.7976931348623151e+308 +Cette plage est plus grande que celle du Basic, mais les calculs sont faits en binaire, donc n'oubliez pas que la valeur exacte des décimales est sujette à erreur d'arrondi. + +Les préfixes OX et OB similaires au langage C permettent d'écrires les constantes en hexadécimal et en binaire, rrespectivement. +(Exemple) 0XFF, 0B10100110 +(Exemple) 0xAB, 0b10100110 + + +=============================================================================== +Types de variables +=============================================================================== +Comme le Basic Casio, C.Basic nomme ses variables par une seule lettres; 26 majuscules de A à Z et 26 minuscules de a à z. + +Les noms de variables à partir de 2 lettres ne sont pas supportés par C.Basic, tout comme ils ne sont pas supportés par le Basic Casio. + +Les variables A-Z et a-z existent en deux versions : réelles et entières. Lorsque le mode Réel est activé, les lettres A-Z et a-z font références aux versions réelles ; lorsque le mode Entier est activé, elles font référence aux versions entières. Pour accéder aux versions opposées au mode activé, utilisez le suffixe % pour les entiers (A%-Z% et a%-z%) et le suffixe # pour les réels (A#-Z# et a#-z#). + +Utiliser une variable entière à l'aide du suffixe % en mode Réel ne pose pas de difficulté. Cependant, toute variable réelle utilisée avec le suffixe # en mode Entier sera arrondie en entier avant d'être employée dans son calcul. +Si la valeur réelle est trop grande pour être représentée par un entier, elle est remplacée par 0. + +(Exemple) #CBINT // Passe en mode entier + 1.2345->A# // 1.2345 est évalué à 1 (car le mode entier est activé) et 1 est stocké dans A# + +(Exemple) A%->A# +Copie la valeur de la variable entière A% dans la variable en double précision A#. +Copier d'un entier vers une donnée en double précision ne pose aucun problème. Mais à l'inverse, toute valeur en double précision copiée dans un entier sera arrondie, voire mise à 0 si elle ne rentre pas dans la plage représentable des entiers. + +=============================================================================== +Variables étendues 1.70 - +=============================================================================== +On peut nommer les variables avec plusieurs lettres si le nom commence par un underscore _ ; jusqu'à 8 caractères sont autorisés. +Ces variables sont initialisées au début du programme et indépendantes des variables usuelles à une lettre. + +Commes les autres variables, elles sont deux versions : une entière (suffixe %) et une réelle (suffixe #). + +Dans l'éditeur, [SHIFT][F1] permet de passer consécutivement de variable majuscule à variable minuscule à variable étendue. + +(Exemple) 123.456->_ABC +(Exemple) 456->_ABC% +(Exemple) _ABC+_ABC%->_Result +_Result vaut 579.456. + +=============================================================================== +Variables constantes 1.70 - +=============================================================================== +La commande Const ([OPTN]-[F3](extd)-[F3](Const)) permet de limiter les utilisations d'une variable. +Uune variable devient une constante lorsq'une valeur est affectée avec Const. +(Exemple) 123->Const A +(Exemple) 123->Const _ABC +(Exemple) 456->A +Changer la valeur d'une variable constante est une erreur. + + +=============================================================================== +VRAM +=============================================================================== +L'écran graphique et l'écran texte sont implémentés différent en C.Basic et en Basic Casio. Une seule VRAM, appelée VRAM d'affichage, est envoyée à l'écran LCD. + +Il y a cependant 3 VRAMs internes: +- La VRAM d'affichage, dont les contenus sont envoyés à l'écran +- La VRAM texte, utilisée pour sauvergarder les contenus de l'écran texte +- La VRAM graphique, utilisée pour sauvegarder les données de l'écran graphique + +Lorsqu'une commande texte est lancée en mode d'affichage texte, C.Basic dessine directement dans la VRAM d'affichage car le bon mode est actif. Si une commande du mode texte est utilisé alors que le mode graphique est actif, C.Basic sauvegarde la VRAM d'affichage (qui contient des données du mode graphique) dans la VRAM graphique, recharge la VRAM texte dans la VRAM d'affichage, puis dessine dans la VRAM d'affichage. + +Si plusieurs commandes texte sont envoyées en séquence, la sauvegarde de la VRAM graphique ne se produit qu'une fois et tout le texte est envoyé à la VRAM d'affichage. + +Dès qu'une commande graphique est utilisée en mode texte, la VRAM d'affichage est sauvegardée dans la VRAM texte, puis les contenus de la VRAM graphique sont rechargés dans la VRAM d'affichage. Le dessin est, comme toujours, exécuté sur la VRAM d'affichage. + +Comme vous pouvez le voir, les VRAMs texte et graphique ne sont pas utilisées pour dessiner, uniquement pour sauvegarder les deux écrans. Donc, dès que vous changez de mode, ces VRAMs sont copiées depuis et vers la VRAM d'affichage. + + +=============================================================================== +Contrôle du rafraîchissement de l'écran +=============================================================================== +L'affichage à l'écran d'une Graph 35+/Graph 75 se produit lorsque la VRAM est transférée vers l'écran. + +Ce transfert a quand même un coût, donc rafraîchir l'écran chaque fois qu'une commande de dessin est exécutée (comme en Basic Casio) ne serait pas efficace. + +Pour contourner cette inefficacité, C.Basic fournit des commandes de contrôle du rafraîchissement. Vous pouvez demander de rafraîchir l'écran à chaque fois qu'une commande graphique est utilisée, ou de le rafraîchir à intervalles réguliers. Ce paramètre est disponible à la fois dans le menu Configuration (Setup) et par le biais de commandes. + +Lorsque le rafraîchissement est réuglier, la dernière commande d'une séquence risque de ne pas être affichée au bon moment. + +Pour éviter ce problème, la commande PutDispDD permet de forcer ponctuellement le rafraîchissement de l'écran. + + +=============================================================================== +Matrices étendues +=============================================================================== +Les matrices de C.Basic se comportent différemment des matrices du Basic Casio. +C.Basic implémente les fonctionnalités de base à la façon du Basic Casio; des nombres réels peuvent être utilisés en mode Réel, et des complexes en mode Complexe. +Les matrices de C.Basic peuvent contenir des éléments de types plus variés : Bits ("Bit", 1 bit), Nibbles ("Nibble", 4 bit), Octets ("BYTE", 1 octet) et Mots ("WORD", 2 octets) en plus des nombres réels (8 octets) et entiers (4 octets) usuels. + +Ajoutez l'un des suffixes suivants au nom de la matrice lorsqu'elle est déclarée pour indiquer son type : +- [.P] ou [.p] : Matrice d'entiers de 1 bits, les valeurs autorisées sont 0 et 1. +- [.N] ou [.n] : Matrice d'nibbles de 4 bits, les valeurs autorisées sont de 0 à 15. +- [.B] ou [.b] : Matrice d'octets de 8 bits, les valeurs autorisées sont de -128 à 127. +- [.W] ou [.w] : Matrice de mots de 16 bits, les valeurs autorisées sont de -32'768 à 32'767. +- [.L] ou [.l] : Matrice d'entiers de 32 bits, les valeurs autorisées sont de -2'147'483'648 à 2'147'483'647. +- [.F] ou [.f] : Matrices de flottants en double précisions, les valeurs autorisées sont de 9.88131291682493e-323 à 1.7976931348623151e+308. +- [.C] ou [.c] : Matrices de paires de flottants en double précision pour les complexes ; les valeurs autorisées pour chaque composante sont de 9.88131291682493e-323 à 1.7976931348623151e+308. + +Comme en Basic Casio, la taille {m,n} de la matrice représente le nombre de {lignes,colonnes}. +Il y a une exception : les matrices d'entiers de 1 bit sont implémentées dans l'ordre {colonnes,lignes} avec un accès en coordonnées {X,Y}. + +Comme la matrice d'entiers de 1 bits a la même structure que la VRAM, en indiquant le type [.V] ou [.v], vous pouvez accéder directement à la VRAM si la matrice fait 128 lignes et 64 colonnes. +De plus, les types [.VG] et [.VT] permettent d'accéder, respectivement, aux VRAMs graphique et texte. +Les indices commencent à 0 et la taille de ces matrices est fixée à {128,64}. + +(Exemple) {128,64}->Dim Mat G.V +La matrice G permet d'accéder à la VRAM ; toutefois, comme les modifications de la matrice ne seront pas effectuées par des commandes de dessin usuelles, il faudra raraichir l'écran manuellement ou périodiquement. + +(Exemple) {128,64}->Dim Mat G.V + Screen.G // Sélectionne l'écran graphique (une commande de dessin aurait marché aussi) + 1->Mat G[63,31] // Dessine un point au milieu de l'écran + PutDispDD // Demande le rafraîchissement de l'écran +Cet exemple produit le même effet que PxlOn 31,63. + +(Exemple) {128,64}->Dim Mat G.V + Screen.T // Sélectionne l'écran texte (une commande de texte aurait marché aussi) + 1->Mat G[63,31] // Dessine un point, au milieu de l'écran texte ! + PutDispDD // Demande le rafraîchissement de l'écran +Cet exemple affiche un point au milieu de l'écran texte. + + +=============================================================================== +Initialisation de matrices +=============================================================================== +Le format habituel du Basic Casio est supporté. +{M,n}->Dim Mat A +[[1,2,3][4,5,6]]->Mat A + +Les fonctions de la fx-5800P sont aussi supportées: +100->Dim A +0->Dim A // Supprime la matrice A + +Il est possible d'ajouter des espaces et des retours à la ligne dans une initialisation à base de crochets. + +(Exemple) [[0B11001100, + 0B00110011, + 0B11001100, + 0B00110011 + ]]->Mat A.B + +La fonction Dim Dim permet d'initialiser une matrice à partir de son adresse mémoire. + +(Usage) {m,n}->Dim Dim A(x) +(Exemple) {128,1}->Dim Mat A.B + {64,1}->Dim Mat B.W(VarPtr(Mat A)) +Ici, les matrices A et B accèdent aux mêmes données, mais avec des tailles différentes (octet et mot). Notez que la taille (128*1 contre 64*1*2) est la même dans les deux cas. + +=============================================================================== +Accès aux matrices +=============================================================================== +En plus du format traditionnel Mat A[1,1], deux notations supplémentaires sont possibles. +* Omettre le Mat : + A[1,1] +* Accéder à une ligne entière : + A[1] +* Si, de plus, l'indice s'écrit avec un seul chiffre (0..9), les crochets sont facultatifs : + A1 + +Les variables de cette forme (lettre suivie d'un chiffre) sont automatiquement réservées pour être des matrices. Si elles sont utilisées alors que la matrice n'a pas été créée, la matrice est créée sur le coup. + +(Exemple) A1+123->B5 +Si les matrices A et B n'ont pas été créées, elles le sont automatiquement par les commandes suivantes : +9->Dim A +9->Dim B +Et les variables A1..A9 et B1..B9 deviennent disponibles. + +(Exemple) '#Mat 0 // Active le mode d'indexation à partir de 0 + A1+123?B5 +Si les matrices A et B n'ont pas été créées, elles sont initialisées automatiquement par les commandes : +10->Dim A +10->Dim B +Et les variables A0..A9 et B0..B9 deviennent disponibles. + +(Exemple) '#Mat 0 + 10->Dim A + 2->Dim B + A1+123?B5 +Dans le cas où Mat A et Mat B sont inialisées mais l'accès est en-dehors des bornes, une erreur se produit. + +=============================================================================== +Conversion de matrices +=============================================================================== +Le type d'une matrice (bit, octet, mot, entier, réel) peut être modifié librement même après que la matrice a été créée. +(Exemple) [[1,2,3,4] [5,6,7,8]] -> Mat A.B + Mat A -> Dim Mat A.W +modifie le type de la matrice A d'octet à mot. +Le nombre d'éléments est modifié pour correspondre à la taille de la mémoire allouée. +[[0x0102,0x0304][0x0506,0x0708]]->Mat A.W +Produirait le même résultat. + +(Note) Les conversions depuis et vers le format 1-bit inversent les lignes et les colonnes car les matrices 1-bit utilisent le mode {X,Y} par compatibilité avec les buffers de VRAM. + +(Exemple) {127,63}->Dim Mat A.B // Crée une matrice pour accéder à la VRAM + Mat A->Dim Mat A.B // La nouvelle taille est {63,16} + + +=============================================================================== +Indice de départ des matrices +=============================================================================== +En Basic Casio, les indices de matrices commencent à 1. C.Basic autorise de commencer à 0. +Ce paramètre peut être modifié dans le menu Configuration (Setup) ou à l'aide d'une commande en commentaire. + +(Exemple) '#Mat 1 // Active le démarrage à l'indice 1 +(Exemple) '#Mat 0 // Active le démarrage à l'indice 0 + {3,2}->Dim Mat A // La matrice allouée va de A[0,0] à A[2,1] + +Les commandes de dessin acceptent également des paramètres de valeur 0, permettant de dessiner sur la totalité de l'écran. + +(Exemple) PxlOn 0,à + + +=============================================================================== +Visualisation des matrices +=============================================================================== +Il est possible de consulter les matrices au format binaire ou hexadécimal dans l'éditeur de matrices. +Appuyer sur [F5] dans l'éditeur de matrices affiche les nombres en binaire, et [F6] les affiche en hexadécimal. +Pour revenir au format décimal, appuyez de nouveau sur [F5] [F6]. +La notation binaire n'est pas disponible au-delà de 2 octets par entrée. + +Appuyez sur [OPTN] pour afficher ou masquer les noms de listes. +Appuyez sur [VARS] pour changer l'affichage des chaînes de caractères. + +=============================================================================== +Fonctions sur les listes +=============================================================================== +Les listes sont implémentées comme des matrices à une dimensions. +Les listes List 1~26 sont indépendantes. +Les matrices Mat a~z (avec les noms en minuscules) correspondent aux listes 27~52. Par exemple, les expressions suivantes ont (deux-à-deux) le même sens : + +List 27[5] = Mat a[5,1] +List 28[5] = Mat b[5,1] +List 29[5] = Mat c[5,1] +List 100[5] = Mat 100[5,1] +List 1000[5] = Mat 1000[5,1] + +Les fonctions de listes suivantes du Basic Casio sont supportées. + +List Ans +10->Dim List 1 +{1,2,3,4,5}->List 1 +Seq(X^2,X,1,10,2)->List 2 +Augment(List 1,List 2)->List 3 +Mat>List(Mat A,2)->List 1 +List>Mat(List 1, List 2, ...)->List 9 +Fill(3, List 1) +Min(List 1) +Max(List 1) +Mean(List 1) +Sort A(List 1) +Sort B(List 1) +Sum List 1 +Prod List 1 + +L'arithmétique et les appels de fonctions sur les listes sont aussi supportrées. + + +=============================================================================== +fonction vectorielle supportée +=============================================================================== +Vct +DotP( +CrossP( +Angle( +UnitV( +Norme( +ClrVct +(*) La zone de Vct A ~ Z devient indépendante. +Pour changer la touche [VARS] pour l’affichage Vct de l’écran Mat / List / Vct. + + +=============================================================================== +Chaînes de caractères +=============================================================================== +Comme en Basic Casio, les variables Str contiennent des chaînes de caractères et peuvent être manipulées par des fonctions ; mais en interne, elles sont implémentées comme des matrices. + +Une matrice peut être vue comme une chaîne de caractères si son nom est précédé d'un $. + +(Exemple) ["ABCDEF"] -> Mat A + Locate 3,3,$Mat A +"ABCDEF" est affiché à la position (3,3) de l'écran. + +Initaliser avec {7,1}->Dim Mat A.B est équivalent car les chaînes de caractères sont des matrices d'octets. + +Liste des fonctions Basic Casio sur les chaînes de caractères supportées : + + + (Concaténation des chaînes de caractères) + StrJoin ( + StrLen + StrCmp ( + StrSrc ( + StrLeft ( + StrRight ( + StrMid ( + Exp> Str ( + Exp ( + StrUpr ( + StrDwr ( + StrInv ( + StrShift ( + StrRotate ( + +(Exemple) "ABCDEF"->Str 1 + Locate 3,3,StrRight(Str1,3) +"DEF" est affiché à la position (3,3). + +Les caractères utilisées sur les Graph 35+ et Graph 75 comprennent des caractères d'un octet (lettres, chiffres et quelques commandes) et des caractères étendus sur deux octets (quasiment toutes les commandes, les caractères spéciaux et les kana). +En interne, les caractères d'un octet et deux octets sont mélangés, mais cette gestion est transparente dans les fonctions, comme en Basic Casio. +Soyez attentifs à la position des caractères quand vous accédez à une chaîne de caractères par une matrice. + + +=============================================================================== +Initialisation des chaînes de caractères +=============================================================================== +Les variables Str 1-20 du Basic Casio utilisent la matrice Mat r par défaut, et la taille des chaînes est limitée à 255 caractères. +Les Str sont automatiquement allouées dans la Mat r et peuvent être utilisées dans les fonctions appropriées du Basic Casio (indépendamment du fait qu'elles sont dans une matrice). +Si les Str ne sont pas initialisées explicitement, la matrice r est initialisée comme ceci : +{20, 65} -> Dim Mat r + +La matrice utilisée pour stocker les chaînes de caractères peut être choisie à la main : +(Exemple) '#Str A +Réserve la matrice A pour stocker les Str. + +(Exemple) {20,65}->Dim Mat A.B +Alloue de la même façon que: +(Exemple) '#Str B,30,256 +Réservant jusqu'à 30 Str de 255 caractères. + +La synatxe suivant permet d'assigner une chaîne de caractères. +(Exemple) "ABCDEF"->Str 1 +(Exemple) ["ABC","TEST","1+3+5"]->Mat A +La deuxième ligne alloue Mat A de taille [3,6], de type octet et affecte les caractères comme ceci : + Mat A[1,1] = "ABC" + Mat A[2,1] = "TEST" + Mat A[3,1] = "1+3+5" + +Pour accéder à la chaîne de caractères "ABC" ainsi stockée dans la Mat A, plusieurs choix sont possibles : $Mat A, $Mat A[1], or $Mat A[1,1]. +(Exemple) Locate 1,1,$Mat A +est identique à Locate 1,1,"ABC". +(Exemple) Locate 1,1,$Mat A[1] +est identique à Locate 1,1,"ABC". +(Exemple) Locate 1,1,$Mat A[3,3] +est identique à Locate 1,1,"3+5". + +Récupération de chaînes de caractères : +(Exemple) ?->$Mat A +Demande à l'utilisateur une chaîne de caractères et la stocke dans Mat A. On ne peut pas mettre plus d'éléments qu'il n'y a de mémoire allouée dans la matrice. + +Les chaînes de caractères peuvent aussi être utilisées dans les fonctions suivantes : +- Locate +- Text +- LocateYX +- Exp( + +(Exemple) Exp("1+2+3") // Donne 6 +(Exemple) Exp($Mat A[3,3)] // Donne 8 +Exp( évalue la chaîne de caractères comme une expression mathématique et renvoie le résultat. + + +=============================================================================== +Sprintf - une commande étendue +=============================================================================== +Comme il n'y a en Basic Casio pas de commande pour convertir un nombre en chaîne de caractères, la fonction Sprintf du C a tté ajoutée. + +(Spécification) Sprintf ("Format", argument 1 [, argument 2 [, argument 3]])) +(Exemple) Sprintf ("A=%4dB=%3.2f",%A,#B) -> Str 1 +Quand A=1234 et B=45.678, le résultat assigné à Str 1 est "A=1234 B=45.68 " + +Le format est compatible avec le sprintf() du C, donc la représentation en notation exponentielle (et affiliées) diffère un peu de celle du Basic. +Jusqu'à trois arguments entiers, réels ou chaînes de caractères peuvent être donnés. +Le préfixe % indique an entier et # indique un nomnbre réel. Si le préfixe n'est pas spécifié, le mode d'exécution (Entier ou Réel) décide du type de conversion. +Il n'y a pas de vérification que le format annoncé et le type des arguments correspondent, donc faites attention : un crash est possible si une erreur se produit dans Sprintf. + + +=============================================================================== +Liste des commandes +=============================================================================== +Commandes compatibles avec le Basic Casio +=============================================================================== + +Is it? +(Disps) +-> +If ~ Then ~ Else ~ IfEnd +Lbl ~ Goto +=! => <> = <= + +Dsz / Isz +=> +Locate +Menu + +For ~ To ~ Step ~ Next +While ~ WhileEnd +Do ~ LpWhile +Break +Return +Stop +Getkey +Prog + +ClrMat +ClrList +Mat (Implémentées comme des tableaux, les opérations matricielles ne sont pas supportées.) +List (Les opérations sur les listes sont supportées.) +Dim +Fill( +Seq( +Augment( +Mat>List( +List>Mat( +Min( +Max( +Mean( +Sort A( +Sort B( +Sum +Prod +Swap / *Row / *Row+ / Row+ +Trn +Identity + +i / Arg / Conjg / ReP / ImP / >r/_theta / a+bi +Real / a+bi / r/_theta + +Cls ClrText ClrGraph +ViewWindow +Plot / PlotOn / PlotOff / PlotChg +Circle +Line / F-Line +Vertical / Horizontal + +PxlOn / PxlOff / PxlChg +PxlTest( +Text + + +SketchNormal / SketchThick / SketchBroken / SketchDot +S-L-Normal / S-L-Thick / S-L-Broken / S-L-Dot + +G-Connect / G-Plot +CoordOn / CoordOff +GridOn / GridOff +AxesOn / AxesOff +LabelOn / LabelOff +BG-None / BG-Pict + +DrawGraph (partiellement pris en charge) +Graph Y = (partiellement pris en charge) +GraphY (partiellement pris en charge) + +Graph (X, Y) = (Partially supported) +DrawStat (partiellement pris en charge) +S-Gph1, S-Gph2, S-Gph3, DrawOn, DrawOff, Scatter, xyLine, Square, Cross, Dot + +Xmin Ymin Xmax Ymax Xscl Yscl Xfct Yfct Xdot +T [theta] Min T [theta] Max T [theta] Ptch + +Deg Rad Grad + +And Or Not Xor + +Abs Int frac Intg +It is! +MOD +Rmdr Int/ +Log ln logab( +10 ^ x e ^ x +X ^ -1 +Sqr x ^ 2 +Sqr ^ -3 +Sin cos tan +Sin^-1 cos^-1 tan^-1 +Sinh cosh tanh +Sinh^-1 cosh^-1 tanh^-1 + +Femto pico nano micro milli Kiro Mega Giga Tera Peta Exa + +(deg) r (rad) g (gra) +> DMS + +Str +StrJoin( +StrLen +StrCmp( +StrSrc( +StrLeft( +StrRight( +StrMid( +Str>Exp( +Exp( +StrUpr( +StrDwr( +StrInv( +StrShift( +StrRotate( + +StoPict / RclPict +RclCapt + +Ran# RanInt#( RanNorm#( RanBin#( RanList#( +Rnd RndFix( +Norm / Fix / Sci +Eng / EngOn / EngOff + + + +=============================================================================== +Référence des commandes étendues +=============================================================================== +------------------------------------------------------------------------------- +? [SHIFT]+[VARS](PRGM)-[F4](?) +------------------------------------------------------------------------------- +La commande d'entrée supporte des options. +(Référence) ?([x][,y][,width][,"SpaceChar"][,limit][,R]) + +(Exemple) "A="?()->A +Affiche "A=" puis attend que l'utilisateur entre la valeur de A. + +(Exemple) "A="?(,,,,R)->A +Affiche "A=" et attend une valeur en inversant l'affichage. + +(Exemple) "A="?(,,8,,R)->A +Affiche "A=" et attend une valeur d'au plus 8 chiffres en inversant l'affichage. + +(Exemple) "A="?(3,4,5,">",5)->A +Affiche "A=" et attend une entrée à la position (X=3,Y=4) de 5 digits et 5 caractères, où les espaces sont mis en valeur avec ">". + +(Exemple) "A="?(3,4,5,,5,R)->A +Affiche "A=" puis attend une entrée à la position (X=3,Y=4) de 5 digits et 5 caractères, en inversant l'affichage. + +------------------------------------------------------------------------------- +Fix [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F1](Fix) +Sci [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F2](Sci) +Norm [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F3](Norm) +Eng [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F3](Eng) +------------------------------------------------------------------------------- +Eng, Norm, Fix et Sci renvoient les paramètres d'affichage numérique associés (On ou Off). + +Eng renvoie directement son paramètre : +- renvoie 0 si l'état est EngOff +- renvoie 1 si l'état est EngOn + +Pour Norm, Fix et Sci, ajouter un entier (par exemple "Fix 2") modifie le paramètre. Pour connaître la valeur, passez un paramètre négatif. + +Par exemple, en mode Norm1, les valeurs de retour sont... +- Norm (-1) donne 1 +- Fix (-1) donne -1 +- Sci (-1) donne -1 + +En mode Fix 8, les valeurs de retour sont les suivantes : +- Norm (-1) donne -1 +- Fix (-1) donne 8 +- Sci (-1) donne -1 + +------------------------------------------------------------------------------- +EngOn [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F1](EngOn) +------------------------------------------------------------------------------- +Le séparateur de milliers peut être affiché. + +(Exemple) EngOn 3 +Après cette commande, les nombres sont affichés avec le séparateur de milliers ",". EngOff désactive le séparateur. + +------------------------------------------------------------------------------- +StoPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F1](Store) +RclPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F2](Recall) +------------------------------------------------------------------------------- +Ces commandes ont deux modes, un qui stocke en mémoire de stockage et qui stocke dans le tas alloué dans la mémoire principale. +Pour changer le mode, ouvrez le menu Configuration (Setup) en tapant [SHIFT][MENU](SET UP), naviguez jusqu'à l'entrée "Pict", et choisissez [F1](MEM) ou [F2](Heap). +Quand "Heap" est choisi, les Pictures manipulées ne sont plus celles du Basic Casio, mais les accès sont plus rapides. Le programme reste compatible car sa source n'a pas changé. + +------------------------------------------------------------------------------- +ElseIf [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F5](ElseIf) +------------------------------------------------------------------------------- +(Référence) If ~ Then ~ ElseIf ~ IfEnd +(Exemple) + If A:Then + Locate 1,1,"A" + ElseIf B:Then + Locate 1,2,"B" + EndIf + +Le nombre d'IfEnd pour un If n'est pas vérifié rigoureusement en Basic Casio. En C.Basic vous pouvez l'activer en modifiant l'entrée "IfEnd Check" dans le menu de Configuration (Setup). Lorsqu'il est activé, un message d'erreur se produira à l'exécution si un If frauduleux est détecté. Le curseur indiquera quel If n'a pas de IfEnd correspondant. + + +------------------------------------------------------------------------------- +Locate [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F1](Locate) +------------------------------------------------------------------------------- +(Référence) Locate [@][!]X,Y,"chaîne de caractères"|expression[,N/R] + [@] Affiche dans la VRAM courante même si c'est la VRAM graphique + [!] Utilise la police standard même si une police externe a été chargée + [N] Normal + [R] Inversé (Reverse) + +Ajouter [R] en paramètre de fin inverse le rendu de texte (blanc sur noir). +(Exemple) Locate 1,2,"Test",R +"Test" est affiché à la position (1,2) en blanc sur noir. + +Ajouter le préfixe # au paramètre de Locate, Sprintf, Text ou Disp force son évaluationen tant que nombre réel. En mode Entier, cela permet d'afficher des résultats réels sans passer en mode réel. + +(Exemple) '#CBINT + 10->A + Locate 1,2,log 123+A + +En mode entier, "log 123+A" est arrondi à 12. Cependant : + +(Exemple) '#CBINT + 10->A + Locate 1,2,#log 123+A + +Indiquer le mode réel annule l'arrondi et le résultat 12.089905111 est affiché. Notez que l'expression précédée par un # est évaluée avec des réels, mais les variables sont toujours entières car le mode de calcul est Entier. Aucun préfixe % n'est nécessaire pour les variables. + + +------------------------------------------------------------------------------- +Switch [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F1](Switch) +Case [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F2](Case) +Default [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F3](Default) +Break [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F4](Break) +SwitchEnd [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F5](SwitchEnd) +------------------------------------------------------------------------------- +C.Basic supporte la structure Switch-Case, qui passe d'un Case à l'autre comme en C (s'il n'y a pas de Break à la fin du Case, alors l'exécution continue par le Case suivant). + +"Default" doit absolument être placé en dernier. + +Les nouvelles commandes sont "Switch", "Case", "Default" et "SwitchEnd" ; "Break" existe déjà. + +(Exemple) + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + + +------------------------------------------------------------------------------- +ACBreak [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F2](ACBreak) +------------------------------------------------------------------------------- +La commande ACBreak produit le même effet qu'appuyer sur [AC/ON] pendant que le programme s'exécute. + +Cette commande peut être désactivée via le menu Configuration (entrée "ACBreak") ; quand elle est Off, elle est ignorée et ne produit aucun effet. + +(Exemple) ACBreak + +Ajouter "Stop" juste après "ACBreak" désactive la commande "ACBreak" jusqu'à la fin du programme, comme si elle avait été coupée dans le menu Configuration. + +(Exemple) ACBreakStop + + +------------------------------------------------------------------------------- +Local [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F5](Local) +------------------------------------------------------------------------------- +En C.Basic, toutes les variables (y compris celles dont le nom est en minuscules) sont globales par défaut. Toutefois certaines variables d'une lettre minuscule peuvent être utilisées comme des variables locales avec la commande "Local". + +(Exemple) Local x,y,z + +- Les variables x, y et z sont maintenant locales. +- Jusqu'à 10 variables de ce type peuvent être choisies. +- Ces variables sont utilisées pour passer des paramètres à "Prog". + +(Exemple) +Dans le sous-programme "TEST", il y a 3 variables locales: + + Local x,y,z + ... + +Dans le programme principal, on peut utiliser "Prog" avec 3 paramètres supplémentaires : + + Prog "TEST",123,456,N + +Dans cette situation, "TEST" est appelé et "x" y vaut 123, "y" y vaut 456, "z" y vaut la valeur de N au moment de l'appel. + +L'usage de variables locales permet d'implémenter de la récursion dans C.Basic, toutefois la limite de récursion est pour l'instant de 16 appels. + +------------------------------------------------------------------------------- +Prog [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F1](Prog) +------------------------------------------------------------------------------- +En conjonction avec la commande "Local", "Prog" permet de passer des arguments et des valeurs de retour au sous-programme. + +(Exemple) + Programme "Main" + ---------------- + 10->X + 20->Y + X+1->a + Y*2->b + Prog "SUB",X,Y + Disp Ans + Disp a + Disp b + + Programme "SUB" + --------------- + Local a,b + Disp a + Disp b + Return a+b + +Affichage en sortie : + 10 + 20 + 30 + 11 + 40 + +Le programme "MAIN" appelle le programme "SUB" qui calcule la somme de 2 nombres et affiche le résultat. Dans le sous-programme, les variables a et b sont Locales, donc différentes des variables globales a et b du programme principal. + +------------------------------------------------------------------------------- +Return [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F2](Return) +------------------------------------------------------------------------------- +La commande "Return" quitte un sous-programme. En C.Basic il est possible de renvoyer une valeur au programme appellant. + +(Exemple) Return + +La valeur de retour est stockée dans la variable "Ans" pour le programme appelant. + +------------------------------------------------------------------------------- +Gosub [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F1](Gosub) +------------------------------------------------------------------------------- +La fonction Gosub permet d'avoir un sous-programme dans le même fichier. + +(Exemple) Gosub A +Saute au label A comme s'il s'agissait d'un sous-programme. L'exécution continuera jusqu'au premier "Return", puis le code reprendra après le Gosub. + +(Exemple) Gosub A,123,456 +Si la zone après le saut contient des variables locales, des paramètres peuvent être passés à Gosub à la façon de Prog. Mais comme les variables locales sont partagées dans tous le fichier, elle sont en un sens globales. + +(Exemple) + 10->X + 20->Y + X+1->a + Y*2->b + Gosub A,X,Y + Disp Ans + Disp a + Disp b + Stop + + Lbl A + Local a,b + Disp a + Disp b + Return a+b + +Affichage en sortie : + 10 + 20 + 30 + 10 + 20 + +Ce programme similaire à l'exemple d'illustration de "Prog" se comporte différemment car les variables "a" et "b" sont entièrement locales au programme. Les variables globales "a" et "b" ne sont pas utilisées. + +------------------------------------------------------------------------------- +ElemSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F2](Elem) +RowSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F3](Row) +ColSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F4](Col) +------------------------------------------------------------------------------- +Calcule la taille d'une matrice. + +ElemSize( + Renvoie l'espace occupé (en bits) par un élément de la matrice. + (Exemple) ElemSize(Mat A) +RowSize( + Renvoie le nombre de lignes ; le m de la dimension {m,n}. +ColSize( + Renvoie le nombre de colonnes ; le n de la dimension {m,n}. + +------------------------------------------------------------------------------- +MatBase( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F1](Base) +------------------------------------------------------------------------------- +Renvoie le premier indice d'accès à la matrice (0 ou 1). + +(Exemple) MatBase(Mat A) + +------------------------------------------------------------------------------- +Getkey [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F2](Getkey) +------------------------------------------------------------------------------- +La fonction Getkey du Basic est étendue avec les options suivantes : + - Getkey: compatible avec le Basic Casio + - Getkey1: arrête le programme jusqu'à ce qu'une touche soit pressée (comme le GetKey() du SDK) + - Getkey2: vide le key buffer avant d'attendre une entrée (recommandée en SH3) + - Getkey3: attend pendant un délai défini avant d'accepter les pressions de touches + - GetkeyM: accepte plusieurs touches pressées simultanément et les stocke dans une liste +La lettre suivant "Getkey" doit être écrite à la main. + +Les numéros de touches sont ceux du Basic et pas ceux du SDK. + +Sur la version SH4, il est possible de contôler le rétroéclairage avec [SHIFT]+[OPTN]. + +L'extinction avec [SHIFT]+[AC] est pour l'instant impossible, tout comme obtenir le code de la touche [AC]. + +(Exemple) Getkey3(128) +Attend 128 ticks (1 seconde) pendant laquelle toutes les pressions sont ignorées. Renvoie le numéro de la première touche pressées une fois ce délai écoulé. + +* Si Getkey1 ne fonctionne pas bien sur SH3, utilisez Getkey2 à la place. + +(Exemple) GetkeyM->List 1 +Appuyer simultanément sur [EXE] et [F1] donnera la liste {79,31}. + +Lorsque Exec TimeDsp est activé pour mesurer le temps d'exécution du programme, Getkey peut mettre en pause le compteur. Il s'agit d'un paramètre de C.Basic : + +(Format) '#GetKeyC +Continue à mesurer le temps pendant Getkey. +(Format) '#GetKeyR +Met le timer en pause pendant que Getkey attend. + +------------------------------------------------------------------------------- +Try~Except~TryEnd [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F3](Try) + (lator Ver.1.00) +------------------------------------------------------------------------------- +Le traitement des exceptions peut être effectué en fonction de l'erreur. + (Format) Essayez + Sauf le code d'erreur 1 + Processus en cas d'erreur1 + Sauf le code d'erreur 2 + Processus en cas d'erreur2 + TryEnd TryEnd + S'il n'y a pas d'erreur dans le site de l'A, le traitement se déplace après TryEnd. + Si l'erreur1 se produit, le traitement se déplacera après TryEnd après l'exécution du processus d'erreur1. + Si l'erreur2 se produit, le traitement se déplacera après TryEnd après l'exécution du processus d'erreur2. + Lorsque L'erreur3 se produit, une erreur apparaît parce qu'il n'y a pas d'exception correspondante. + +(Format) sauf + S'il n'y a pas d'exception à une erreur, «Erreur» est exécuté parce que sauf sans argument correspond à toutes les erreurs. + +(Exemple) Essayez 3*4 + Sauf 1 + "Erreur syntaxe" + TryEnd TryEnd + "Erreur Syntaxique" est exécuté, puisque le code d'erreur SyntaxError est 1. + +(Exemple) Essayez 3/4/0 + Sauf 1 + "Erreur syntaxe" + Sauf 40 + "Diviser par zéro" + TryEnd TryEnd + "Divide by Zero« est exécuté, puisque la division par zéro code d'erreur est 40. + +(Exemple) Essayez 3/4/0 + Sauf 1 + "Erreur syntaxe" + sauf + "Erreur" + TryEnd TryEnd + S'il n'y a pas d'exception à une erreur, «Erreur» est exécuté parce que sauf sans argument correspond à toutes les erreurs. + +Le programme de l'échantillon se trouve dans l'échantillon de CBasic/Try-Excepté. + Pour le code d'erreur, consultez le site ErrorCode.List.txt. +(*powerd by google translation) + +------------------------------------------------------------------------------- +Version [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + (lator Ver.1.74) +------------------------------------------------------------------------------- +Donne le numéro de versiond de C.Basic. + +(Exemple) Version +Pour la version ver.0.45, renvoie 45. + +------------------------------------------------------------------------------- +System( [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F4](System) + (lator Ver.1.75) +------------------------------------------------------------------------------- +Une commande générale pour obtenir des paramètres internes. + + System(0) donne la version de C.Basic (identique à "Version") + System(1) donne l'adresse de la VRAM (1 ko) + System(2) donne l'adresse de la VRAM texte (1 ko) + System(3) donne l'adresse de la VRAM graphique (1 ko) + System(4) donne l'adresse du buffer de travaille (256 ko) + System(10) renvoie l'adresse du buffer de copier/coller (32 ko) + System(-2) renvoie la version de l'OS (par exemple 311) + System(-1) renvoie le nom du modèle. + Ainsi la fx-9860G donne 0, la fx-9860G Slim donne 1, la fx-9860G II SH3 donne 2 et la fx-9860G II SH4 donne 3, la Graph35+EII donne 4. + + +=============================================================================== +Commandes graphiques étendues +=============================================================================== +=============================================================================== +Quand [:] est ajouté à la fin de la commande, le dessin est fait sur la VRAM actuelle indépendamment du mode de VRAM actif (texte ou graphique). +------------------------------------------------------------------------------- +(Exemple) Locate 2,2,"String": + Text 16,1,"TextString": + +Dans ce cas, l'écran n'est pas rafraîchi automatiquement. Utilisez une commande de transfert comme PutDispDD pour envoyer le résultat du dessin à l'écran. + +------------------------------------------------------------------------------- +Lorsque [@] est ajouté à la fin du nom de commande, la VRAM courante est utilisée pour dessiner. + +(exemple) Text 1,1,"Graphic" + Locate @1,2,"Text" + +(Exemple) Locate 1,,"Text" + Locate @24,10,"Graphic" + +------------------------------------------------------------------------------- +Lescommandes suivantes supportent l'effacement (dessin blanc) et l'inversion des pixels si le paramètre [C] ou [X] est ajouté à la fin : + +Line +F-Line +Circle +Rect( +FillRect( +Ajoutez [C] pour effacer ou [X] pour inverser. +(Exemple) F-Line 1,1,30,20,X + +------------------------------------------------------------------------------- +Text [SHIFT]-[F4](SKTCH)-[F6]-[F6]-[F2](Text) +------------------------------------------------------------------------------- +(Format) Text [@][!]y,x,"chaîne de caractères"|expression[,N|O|R|V] + [@] Le dessin est fait sur la VRAM courante + [!] Force l'utilisation de la police par défaut, même si une police externe est chargée + [N] Normal + [R] Inversé (blanc sur noir) + [O] Or (noir sur fond transparent) + [V] Or inversé + +(Exemple) Text 20,80,"Test",R +Affiche "Test" à la position (80,20) en blanc sur noir. + +------------------------------------------------------------------------------- +LocateYX [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F3](LocateYX) +------------------------------------------------------------------------------- +Affiche du texte sur l'écran graphique avec la même police que Locate. Les coordonnées sont identiques à Text, seule la police change. Le dernier paramètre optionnel [R] permet d'inverser la couleur. + +(Format) LocateYX [@][!]y,x,"chaîne de caractères"|expression[,N|R] + +(Exemple) LocateYX 20,80,"Test",R +Comme l'exemple précédent mais écrit en grand avec la police de Locate. + +------------------------------------------------------------------------------- +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) +------------------------------------------------------------------------------- +Affiche un rectangle. Les coordonnées sont en pixels. + +(Exemple) Rect 1,1,127,63 +Dessine le contour de l'écran. + +------------------------------------------------------------------------------- +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) +------------------------------------------------------------------------------- +Affiche un rectangle plein. Les coordonnées sont en pixels. + +(Exemple) FillRect 1,1,127,63 +Remplit l'écran. + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) +------------------------------------------------------------------------------- +Sauvegarde une partie de l'écran graphique dans une matrice. + +(Format) ReadGraph(px1,py1,px2,py2) -> Mat A + +Il n'est pas nécessaire de créer la matrice avant, la taille appropriée est allouée automatiquement. Si aucun type n'est indiqué dans le membre de droite pour l'assignmenent, la matrice est par défaut en 1-bit. + + +------------------------------------------------------------------------------- +WriteGraph [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F4](WriteGraph) +------------------------------------------------------------------------------- +Affiche une imagee. + +(Format 1) WriteGraph x,y,dx,dy,mat,N|R|M[,|X|O|A] + Affiche les contenus de la matrice de largeur dx et de hauteur dy à la position (x,y) sur l'écran graphique. + Avant-dernier paramètre : + [N] Normal + [R] Inversé + [M] Mesh + Dernier paramètre : + - Écraser ce qui est en-dessous + [X] Les pixels noirs inversent la couleur + [O] Les pixels blancs sont transparents + [A] Les pixels noirs sont transparents + +(Exemple) [[1,2,3,4,16,32,64,128]] -> Mat A + WriteGraph 80,20,8,8,Mat A,N + +(Format 2) WriteGraph x,y,dx,dy,mat[m,n],N|R|M[,|X|O|A] + Prend les données à partir de la cellule [m,n] de la matrice. + +(Exemple) [[16,32,64,128][128,64,32,16]] -> Mat A + WriteGraph 80,20,4,4,Mat A[1,1],N + WriteGraph 80,24,4,4,Mat A[2,1],N + +Dessine un symbole "<" en deux parties. La ligne suivante aurait le même effet : + +(Exempl) WriteGraph 80,20,4,8,Mat A,N + +Les bitmaps ont une largeur multiple de 8 bits, les bits de droite sont remplis avec des 0. + +------------------------------------------------------------------------------- +DotGet( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F1](DotGet) +------------------------------------------------------------------------------- + (Exemple) DotGet( px1,py1, px2,py2)->Mat A[x,y] + Récupère la plage de (px1,py1)-(px2,py2) à l'écran à partir de Mat A [x,y]. +  Si le nombre de matrices est inférieur à la plage spécifiée, la taille de la matrice est importée. + +------------------------------------------------------------------------------- +DotPut( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F2](DotPut) +------------------------------------------------------------------------------- + (Exemple) DotPut( Mat A, x,y, px1,py1, px2,py2) + Mat A Commencez par l'élément (x, y) de la matrice et tracez un point dans l'intervalle (px1,py1)-(px2,py2). + + (Exemple) DotPut( Mat A[x,y], px1,py1, px2,py2)->Mat B + Mat A Copies dans la plage [x1,y1]-[x2,y2] de Mat B à partir de [x,y] de la matrice. + Si Mat B ne sécurise pas l'étendue de la plage de copie, copiez-le dans la plage correspondant à Mat B. + Il ne transfère pas à l'écran graphique. + + (Exemple) DotPut( Mat A[x,y], px1,py1, px2,py2) + Mat A Commencez par l'élément (x,y) de la matrice et tracez un point dans l'intervalle (px1,py1)-(px2,py2). + +------------------------------------------------------------------------------- +DotTrim( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F3](DotTrim) +------------------------------------------------------------------------------- + (Exemple) DotTrim(Mat A, x1,y1,x2,y2)->Mat B + Ceci est une entrée de coupe de Matt, + Coupez la zone rectangulaire des données non nulles dans la plage [X1,y1]-[x2,y2] de la matrice Mat et copiez-la dans la matrice Mat B. + Si la matrice à copier n'est pas sécurisée, elle est récemment allouée. + + (Exemple) DotTrim(px1,py1,px2,py2)->Mat A + Ceci est une entrée de découpe de l’écran graphique, + Découpez la zone rectangulaire dans laquelle les points du graphique (px1,py1)-(px2,py2) sont copiés dans la matrice Mat A + Dans les deux cas, la taille de la zone rectangulaire (taille sécurisée de la matrice Mat) est automatiquement entrée dans les variables X et Y. + Les coordonnées X,Y en haut à droite de la zone rectangulaire des données non nulles sont automatiquement entrées dans la variable minuscule x,y. + +------------------------------------------------------------------------------- +CellSum( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F5](CellSum) +------------------------------------------------------------------------------- + (Exemple) CellSum(Mat B[X,Y])->C + Calculez la valeur totale de 8 points autour de Mat B[X,Y]. + +------------------------------------------------------------------------------- +DotLife( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F4](DotLife) +------------------------------------------------------------------------------- + (Exemple) DotLife( Mat A, x1,y1,x2,y2)->Mat B + + +=============================================================================== +Autres commandes étendues +=============================================================================== +------------------------------------------------------------------------------- +KeyRow( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F5](KeyRow) +------------------------------------------------------------------------------- +Renvoie l'état du clavier. Bits renvoyés (en binaire) : + + bit6 bit5 bit4 bit3 bit2 bit1 + Row--------------------------------------Row + 09 F1 F2 F3 F4 F5 F6 09 + 08 SHIFT OPTN VARS MENU <- (up) 08 + 07 ALPHA ^2 ^ EXIT (dw) -> 07 + 06 XTT log ln sin cos tan 06 + 05 ab/c F<>D ( ) , -> 05 + 04 7 8 9 DEL 04 + 03 4 5 6 x div 03 + 02 1 2 3 + - 02 + 01 0 . EXP (-) EXE 01 + Row--------------------------------------Row + +(Exemple) KeyRow(9) +Quand [F4] et [F6] sont pressées au même moment, les bits 1 et 3 sont à 1, donc la valeur renvoyée est 10. + +------------------------------------------------------------------------------- +Ticks [VARS]-[F3](Extend)-[F1](Ticks) +------------------------------------------------------------------------------- +Timer à 1/128s. + +(Exemple) 0 -> Ticks +Initialise le timer interne, qui commence à compter. Le timer compte 128 fois par secondes et fait 32 bits. De plus, il est restoré à chaque passage de 24 heures. + +La valeur maximale est 24*60*60*128 -1 = 11059199. + +------------------------------------------------------------------------------- +Ticks% +------------------------------------------------------------------------------- +Timer à 1/32768s. + +(Exemple) 0 -> Ticks% +Initialise le timer interne. La valeur maximale est de 2^32-1 = 4294967295 et augmente 32768 fois par seconde. + +------------------------------------------------------------------------------- +TicksWait +------------------------------------------------------------------------------- +Attente en ticks (1/128s). Cette commande unifie "Ticks" et "Wait". + +(Exemple) TicksWait 128 +Attend une seconde. + +(Exemple) TicksWait -128 +Attend qu'une seconde se soit écoulée depuis le dernier appel à TicksWait. S'il s'est déjà écoulé plus d'une seconde, ne fait rien. + +(Exemple) TicksWait -4 +Attend que 4/128 seconde se soit écoulée depuis le dernier appel à TicksWait. Ajouter cette commande dans un boucle limite le programme à 32 FPS s'il est rapide mais ne le handicape pas s'il est lent. + +------------------------------------------------------------------------------- +Ticks%Wait +------------------------------------------------------------------------------- +Attente en 1/32768s. + +------------------------------------------------------------------------------- +DATE [VARS]-[F3](Extend)-[F3](DATE) +TIME [VARS]-[F3](Extend)-[F4](TIME) +------------------------------------------------------------------------------- +Lit ou écrit la date dans la RTC (horloge interne), le paramètre est une chaîne de caractères. + +(Exemple) "2017/01/17"->DATE +(Exemple) DATE // 2017/01/17 TUE + +(Exemple) "23:59:59"->TIME +(Exemple) TIME // 23:59:59 + +------------------------------------------------------------------------------- +Disp [SHIFT]+[VARS](PRGM)-[F6]-[F2](DISPLAY)-[F6](Disp) +------------------------------------------------------------------------------- +Affiche le résultat sans attendre un EXE (contrairement au Disp usuel). Scrolle automatiquement. + +(Exemple) Disp A+B + +------------------------------------------------------------------------------- +BackLight [VARS]-[F3](Extend)-[F5](BackLight) +------------------------------------------------------------------------------- +Change l'état du rétro-éclairage. + +(Format) Backlight n + n=0 Éteint le rétro-éclairage + n=1 Allume le rétro-éclairage + n=2 Échange l'état (éteint->allumé, allumé->éteint) + +(Format) +Backlight + Lit et renvoie l'état du rétro-éclairage. (Une erreur se produit si cette commande est en tout début d'expression). + +------------------------------------------------------------------------------- +RefrshCtrl [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F1](RefrshCtrl) +RefrshTime [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F2](RefrshTime) +------------------------------------------------------------------------------- +Ces commandes contrôlent le rafraîchissement périodique de l'écran. + +(Exemple) RefreshCtrl 0 +Aucun rafraîchissement périodique. + +(Exemple) RefreshCtrl 1 +Le rafraîchissement est automatique ; seul l'écran graphique est affiché. + +(Exemple) RefreshCtrl 2 +Le rafraîchissement est automatique pour les deux écrans (texte et graphique). + +(Exemple) RefreshTime 5 +Configure l'intervalle de rafraîchissement à 5/128s. + +(Format) +RefreshCtrl +(Format) +RefreshTime +Renvoie la valeur de ces deux paramètres. (Une erreur se produit si ces commandes sont situées en tout début d'expression.) + +------------------------------------------------------------------------------- +Screen [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F1](Screen) +------------------------------------------------------------------------------- +Sélectionne un mode d'affichage et une VRAM cible. + +(Format 1) Screen +Échange écrans texte et graphique. + +(Format 2) Screen.T ou Screen.t +Passe à l'écran texte. + +(Format 3) Screen.G ou Screen.g +Passe à l'écran graphique. + +(Format 4) Screen 0 ou Screen 1 +0: VRAM texte +1: VRAM graphique + +Pour convertir les coordonnées à l'écran et sur le graphe : + +(Usage) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +Renvoie une valeur dans List Ans (deux éléments). + +(Exemple) Screen#1,1,-6.3,6.3,-3.1,3.1 +Le résultat est List Ans={74,22}. + +Pour convertir des coordonnées du graphe à celle de l'écran : + +(Usage) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +Renvoie une valeur dans List Ans (deux éléments). + +(Exemple) Screen%74,22,-6.3,6.3,-3.1,3.1 +Le résultat est List Ans={1,1}. + +------------------------------------------------------------------------------- +PutDispDD [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F2](PutDispDD) +------------------------------------------------------------------------------- +Rafraîchit l'écran. + +------------------------------------------------------------------------------- +PopUpWin( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F5](PopUpWin) +------------------------------------------------------------------------------- +Affiche une popup sur la VRAM courante. + +(Usage) PopUpWin(n) // 1 <= n <= 6 +(Exemple) PopUpWin(5) + +Pour afficher un message sur la popup : + +(Exemple) PopUpWin(11,"Message1"[,"Message2"])->A +Renvoie toujours 1. + +Pour afficher une popup de sélection Oui/Non : +(Exemple) PopUpWin(10,"Message1"[,"Message2"])->A +Renvoie 1 pour Oui et 0 pour Non. + +PopUpWin(0) se comporte comme SaveDisp() et sauvegarde l'écran dans un mémoire temporaire. PopUpWin(9) restaure l'écran sauvegardé par PopUpWin(0), comme le ferait RestoreDisp(). + +------------------------------------------------------------------------------- +FKeyMenu( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F4](FKeyMenu) +------------------------------------------------------------------------------- +Affiche un menu à onglets sur la VRAM courante. + +(Format)FKeyMenu( n[~m], "string"/Icon [,C/M/N/R/I/S/U/L] ) + - Les arguments 3ème ou plus tard peuvent être omis. + - "," sont nécessaires même si l'argument est omis. + - La couleur par défaut de l'icône FKey est noire et la couleur arrière FKey est blanche. + +L'ordre du 3e argument est arbitraire. +  C: icône claire. +  M: icône masqué. +  N: icône blanche normale. (par défaut) +  R: icône noire avec encoche en bas à droite. +  I: Icône de boîte noire sans entaille +  S: icône de cadre blanc indiquant le sélectionné. +  U: afficher 1 point supérieur. +  L: étendre la zone d'affichage « chaîne » de 2 points à gauche. + +(Exemple) FKeyMenu (1,42) + Dessiner l'icône EDIT à la position [F1]. +(Exemple) FKeyMenu (2,"ABCDE",RL) + "ABCDE" est affiché dans l'icône noire dans la zone de menu de la deuxième fonction. +(Exemple) FKeyMenu (3~4,"longstrings") + Le "longstrings" est affiché dans les zones de menu de la troisième à la quatrième fonction. +(Exemple) FKeyMenu (4,"Mask",M) + L'icône masquée s'affiche dans la zone de menu de la quatrième fonction. +(Exemple) FKeyMenu (2,"",C) + Effacer le menu de la deuxième fonction +(Exemple) FKeyMenu (1~6,"",C) + Effacer les menus de première à sixième fonction. + +------------------------------------------------------------------------------- +Save [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F2](Save) +Load( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F3](Load) +------------------------------------------------------------------------------- +Sauvegarde et recharge des données de matrices. + +(Exemple) Save "TEST",Mat A +(Exemple) Load("TEST")->Mat A +Sauvegarde les contenus de la matrice A et les relit. Si l'extension n'est pas spécifiée, [.bin] est utilisé par défaut. + +(Exemple) Save "TEST", Mat A[5,1] +Sauvegarde toute la matrice à partir de la cellule 5,1. + +(Exemple) Load("TEST", 16) -> Mat A[10,1] +Charge 16 octets de données dans la matrice en partant de la cellule 10,1. + +------------------------------------------------------------------------------- +IsExist( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F1](IsExist) +------------------------------------------------------------------------------- +Teste si un fichier existe. Renvoie sa taille s'il existe, 0 sinon. + +(Exemple) IsExist("/ABC/TEST") +Renvoie la taille de "/ABC/TEST.bin" s'il existe, 0 sinon. + +Quand l'extension n'est pas spécifiée, ".bin" est ajouté automatiquement. L'exemple précédent teste donc l'existence de "/ABC/TEST.bin" et non "/ABC/TEST". + +On peut également faire une recherche de fichiers par wildcard. + +(Format) IsExist(wildcard) -> nombre de fichiers trouvés +(Exemple) IsExist("*.bmp") -> N + $Mat Ans[3] +Affiche le nom du 3ème fichier bitmap trouvé. La valeur de retour (ici N) est le nomre de fichiers trouvés. + +------------------------------------------------------------------------------- +Delete [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F4](Delete) +------------------------------------------------------------------------------- +Supprime un fichier. Si l'extension n'est pas spécifiée, ".bin" est ajouté automatiquement. + +(Exemple) Delete "TEST.dat" + +(Exemple) Delete "TEST.dat",1 +Demande confirmation avant de supprimer. + +------------------------------------------------------------------------------- +Alias [OPTN]-[F5](Extend)-[F1](Alias) +------------------------------------------------------------------------------- +Définit des alias entre noms de variables. N'importe quel caractère peut être utilisé comme alias d'une variable. + +(Exemple) Alias A=α + α+100->α +Après avoir déclaré l'alias, le nom "α" est devenu un alias pour la variable A ; il y a désormais deux noms mais toujours une seule variable. L'expression ci-dessus est équivalente à A+100->A. + +(Exemple) Alias Mat A=α + Mat α[1]+100->Mat α[1] +De même, cette commande est équivalente à Mat A[1]+100->Mat A[1] + +(Exemple) Alias Lbl A=α + Lbl α + Goto α + Gosub α + +(Exemple) Alias a=_abc_de + Alias Mat a=_abcXY + _abc_de+1->_abc_de + Mat _abcXY[1,2]+1->Mat _abcXY[1,2] + +(Exemple) ALias Lbl A=_Sub1 + Lbl _Sub1 + Goto _Sub1 + Gosub _Sub1 + +------------------------------------------------------------------------------- +Wait [VARS]-[F3](Extend)-[F2](Wait) +------------------------------------------------------------------------------- +Réduit la vitesse d'exécution globale. Ce paramètre peut également être configuré par le menu Configuration (Setup), auquel cas il affecte tous les programmes. + +(Exemple) Wait 100 +L'effet est sensiblement indépendant de la distinction SH3/SH4. + +Wait 10 divise environ la vitesse par 2. +Wait 100 divise environ la vitesse par 10. + + +------------------------------------------------------------------------------- +ListCmp( [OPTN]-[F1](LIST)-[F6]-[F6]-[F5](Cmp) +------------------------------------------------------------------------------- +Compare deux listes ou une liste et une valeur. + +(Exemple) ListCmp({1,2,3},{1,2,3}) // 1 +(Exemple) ListCmp({1,2,3},{1,3}) // 0 +(Exemple) ListCmp({1,2,3},{1,3,2}) // 0 +(Exemple) ListCmp({1,2,3},2) // 1 +(Exemple) ListCmp({1,2,3},4) // 0 + + +=============================================================================== +Manipulation étendue de chaînes de caractères +=============================================================================== +------------------------------------------------------------------------------- +StrLen(@ [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F2](Len) +------------------------------------------------------------------------------- +L'option "@" permet de calculer la longueur en octets et non en symboles. + +(Exemple) StrLen(@"ABCDE") +(Exemple) StrLen(@Str 1) + +------------------------------------------------------------------------------- +StrRepl( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F5](StrRepl) +------------------------------------------------------------------------------- +Rechercer et remplacer. + +(Format) StrRepl(source, recherche, remplacement, position de début) +(Exemple) StrRepl("Hello World","World","Earth") -> "Hello Earth" +(Exemple) StrRepl("abcabc","ab","ff",3) = "abcffc" +(Exemple) StrRepl("abcabc","ab","ff") = "ffcffc" + +------------------------------------------------------------------------------- +StrChar( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](Char) +------------------------------------------------------------------------------- +Génère ou répète des caractères. + +(Exemple) StrChar("ABC",5) // "ABCABCABCABCABC" +(Exemple) StrChar(0x41,5) // "AAAAA" + +------------------------------------------------------------------------------- +StrCenter( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F2](Center) +------------------------------------------------------------------------------- +(Format) StrCenter(source, longueur, caractère de remplissage) + +(Exemple) StrCenter("Test",8) // " Test " +(Exemple) StrCenter("Test",8,"*") // "**Test**" + +------------------------------------------------------------------------------- +Hex( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F4](Hex) +------------------------------------------------------------------------------- +Conversion en chaîne de caractères au format hexadécimale. + +(Exemple) Hex(12345)->Str 1 // "3039" + Exp("0x"+Str 1)->A // 12345 + +------------------------------------------------------------------------------- +Bin( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F5](Bin) +------------------------------------------------------------------------------- +Conversion en chaîne de caractères au format binaire. + +(Exemple) Bin(12345)->Str 1 // "11000000111001" + Exp("0b"+Str 1)->A // 12345 + +------------------------------------------------------------------------------- +StrBase( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F3](Base) +----------------------------------------------------------------------- +Conversion de base pour des chaînes de caractères. + +(Format) StrBase(chaîne de caratères, base d'entrée, base de sortie) +Les bases autorisées sontentre 2 et 64. Les caractères utilisés sont : + + 0-9 A-Z a-z θ π + +(Exemple) StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + +------------------------------------------------------------------------------- +StrSplit( [SHIFT]+[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6]F6]-[F1](StrSplit) +------------------------------------------------------------------------------- +Sépare une chaîne de caractères à chaque occurrence d'un séparateur, et stocke le résultat dans la matrice Ans.4 + +(Format) StrSplit(source, délimiteur[, position de départ]) + +(Exemple) StrSplit("123,4567,89",",") +La matrice Ans devient ["123", "4567", "89"]. Les mots individuels peuvent être lus de la façon suivante : + $Mat Ans[1]="123" + $Mat Ans[2]="4567" + $Mat Ans[3]="89" + +------------------------------------------------------------------------------- +StrAsc( [Shift]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](StrAsc) +------------------------------------------------------------------------------- +Renvoie la valeur (ASCII) du première caractère d'une chaîne. + +(Exemple) StrAsc("Ascii") // 65 (0x41), la valeur de 'A' + +------------------------------------------------------------------------------- +StoCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F1] (Store) +RclCapt [OPTN] - [F6] - [F6] - [F5] (CAPTURE) - [F2] (Recall) +------------------------------------------------------------------------------- +Écrit ou charge des Pictures dans la mémoire de stockage. Jusqu'à 99 Picture peuvent être utilisées. + +(Exemple) StoCapt 20 +(Exemple) RclCapt 20 + +La taille des fichiers est désormais de 1 ko au lieu de 2 ko. + + +=============================================================================== +Autres commendes étendues +=============================================================================== +La notation '/ permet de mettre des commandes C.Basic dans des commentaires (en Basic, tout ce qui commence par ' est un commentaire). L'interpréteur Basic Casio n'exécutera pas les commandes, mais C.Basic les exécutera. + +(Exemple) '/Ticks->S + '/Ticks-S->T +Mesure un délai de temps quand le programme est lancé dans C.Basic, mais ne fait rien dans l'interpréteur Basic Casio. + +------------------------------------------------------------------------------- +Commentaire étendu '# +------------------------------------------------------------------------------- +Cette syntaxe permet de modifier les paramètres de C.Basic à l'aide de commenaires. + +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +'#CBINT +'#CBint +Ces commandes permettent de changer le mode d'exécution (traité au début de ce manuel). + +'#Break0 // Désactive l'interruption par [AC/ON] +'#Break1 // Active l'interruption par [AC/ON] (comportement par défaut) + +'#Mat 0 // Les indices de matrices commencent à 0 +'#Mat 1 // Les indices de matrices commencent à 1 (comportement par défaut) + +'#GetKeyC // Ne pas réinitialiser le timer à chaque appel de GetKey1/2 (comportement par défaut) +'#GetKeyR // Réinitialiser le timer à chaque appel de Getkey1/2 + + +=============================================================================== +Commandes matérielles supplémentaires +=============================================================================== +C.Basic peut exécuter un programe SH3/SH4A natif dans la mémoire. Ces programmes ne doivent pas corrompre C.Basic, toutefois le tableau de matrices peut être utilisé librement. Les adresses peuvent être obtenues par VarPtr() ou l'opérateur d'adressage &. L'opérateur * du C existe aussi dans C.Basic. + +------------------------------------------------------------------------------- +SysCall( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F1](SysCall) +------------------------------------------------------------------------------- +Appelle un syscall. Jusqu'à 4 arguments peuvent être spécifiés ; c'est optionnel. + +(Format) SysCall(numéro [,arg1][,arg2][,arg3][,arg4][,arg5][,arg6][,arg7][,arg8][,arg9][,arg10][,arg11][,arg1 +2]) + +(Exemple) Screen.G + SysCall(0x763,1,8,127,63)->R + +Le syscall 0x763 dessine un rectangle sur l'écran. Les quatre paramètres r4..r7 sont égaux à 1,8,127,63 respectivement. R reçoit la valeur de retour du syscall. + +------------------------------------------------------------------------------- +Call( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F2](Call) +------------------------------------------------------------------------------- +Exécute un programme natif à n'importe quelle adresse. Jusqu'à 4 arguments (optionnels peuvent être spécifiés). + +(Format) Call(adressse [,arg1][,arg2][,arg3][,arg4]) +(Exemple) Call(0x8802f0000,A,B,C,D)->R + +La routine à l'adresse 0x8802f000 est appelée avec pour paramètres r4=A, r5=B, r6=C, r7=D. Sa valeur de retour est stockée dans R. + +------------------------------------------------------------------------------- +Peek( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F4](Peek) +------------------------------------------------------------------------------- +Lit des données en mémoire. Quand la taille n'est pas spécifiée par l'utilisation de [.B], [.W], [.L] ou [.F], le comportement par défaut est de lire 1 octet. + +(Format) Peek(adresse)[.B|.W|.L|.F] +(Format) *(addresse)[.B|.W|.L|.F] + +(Exemple) Peek(0x8802E000).B -> A% +(Exemple) *(0x8802E000).B -> A% +Charge dans A% 1 octet de données (byte) lu à l'adresse 0x8802E000. + +(Exemple) Peek(0x8802E000).W -> A% +(Exemple) *(0x8802E000).W -> A% +Charge dans A% 2 octets de données (word) lus à l'adresse 0x8802E000. + +(Exemple) Peek(0x8802E000).L -> A% +(Exemple) *(0x8802E000).L -> A% +Charge dans A% 4 octets de données (longword) lus à l'adresse 0x8802E000. + +(Exemple) Peek(0x8802E000).F -> A +(Exemple) *(0x8802E000).F -> A +Charge dans A% 8 octets de données (flottant double précision) lus à l'adresse 0x8802E000. + +------------------------------------------------------------------------------- +Poke( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F3](Poke) +------------------------------------------------------------------------------- +Écrit des données dans la mémoire. QUand la taille n'est pas spécifiée au moyen de [.B], [.W], [.L] ou [.F], le comportement par défaut est d'écrire 1 octet. + +(Format 1) Poke(adresse)[.B|.W|.L|.F], valeur +(Format 1) *(adresse)[.B|.W|.L|.F], valeur) +(Format 2) Data->Poke(adresse)[.B|.W|.L|.F] +(Format 2) Data->*(adresse)[.B|.W|.L|.F]) + +(Exemple) Poke(0x8802E000).B,A% +(Exemple) A%->Poke(0x8802E000).B +(Exemple) A%->*(0x8802E000).B + +(Exemple) Poke(0x8802E000).W,A% +(Exemple) A%->Poke(0x8802E000).W +(Exemple) A%->*(0x8802E000).W + +(Exemple) Poke(0x8802E000).L,A% +(Exemple) A%->Poke(0x8802E000).L +(Exemple) A%->*(0x8802E000).L + +(Exemple) Poke(0x8802E000).F,A +(Exemple) A->Poke(0x8802E000).F +(Exemple) A->*(0x8802E000).F + +------------------------------------------------------------------------------- +VarPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F1](VarPtr) +------------------------------------------------------------------------------- +Renvoie l'adresse d'une variable. + +(Format 1) VarPtr(variable) +(Format 2) &(variable) + +(Exemple) VarPtr(A%) +(Exemple) &A% +Renvoie l'adresse de la version entière de A. + +(Exemple) VarPtr(Mat A) +(Exemple) &Mat A +Renvoie l'adresse de début de la matrice A. + +(Exemple) VarPtr(Mat A[20,10]) +(Exemple) &Mat A[20,10] +Renvoie l'adresse de la cellule Mat A[20,10] de la matrice A. + +------------------------------------------------------------------------------- +ProgPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F2](ProgPtr) +------------------------------------------------------------------------------- +Renvoie l'adresse de début du code du programme. + +(Exemple) ProgPtr() + + +=============================================================================== +Fonctions graphiques étendues : MonochromeLib +=============================================================================== +Les fonctions graphiques de MonochromeLib (par PierrotLL) sont disponibles. Elles agissent toujours sur la VRAM courante et utilisent le système de coordonnées (0,0) -- (127,63). Il est nécessaire d'appeler PutDispDD ou _DispVRAM pour afficher le résultat de ces fonctions. +------------------------------------------------------------------------------- +MonochromeLib de PierrotLL: +https://wiki.planet-casio.com/fr/MonochromeLib +Référez-vous au manuel de MonochromeLib pour de plus amples détails. +------------------------------------------------------------------------------- +Codes couleurs : + -1 transparent + 0 blanc + 1 noir + 2 xor (inverseur) + 3 damier + 4 aléatoire + +Des nouvelles couleurs permettant de contrôler la densité de pixels ont été ajoutées. Le principe des couleurs 11, 12, 13 et 14 est qu'elles restreignent quels pixels peuvent être allumés. + +Couleur : 10 11 12 13 14 (2x2 dot matrix by 1dot width) +Couleur : 20 21 22 23 24 (2x2 dot matrix) + oo *o *o ** ** + oo oo o* *o ** + +Par exemple, la couleur 13 est définie par le schéma suivant : + + ** < ligne impaire + *o < ligne paire + +Cela signifie que sur les lignes impaires, tous les pixels seront dessinés, mais sur les lignes paires, seul un pixel sur deux sera dessiné. La couleur 14 est donc équivalente au noir. + +Le principe des couleurs 21, 22, 23, 24 est que le petit schéma sert de brosse. Prenons la couleur 22 qui possède le même schéma que la couleur 12 : + + *o < ligne impaire + o* < ligne paire + +Si on tente d'afficher un pixel en (10,10), le schéma de taille 2*2 sera dessiné à l'écran, ce qui allumera les pixels (10,10) ET (11,11). Si on dessine un (11,11), cela allume exactement les mêmes pixels car la brosse s'aligne toujours sur la grille. + +Les couleurs 10 et 20 ne dessinent rien. + +Démonstration de ces couleurs ici : +https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14738&page=last#163470 + +(Exemple) _FillCircle 64,32,30,21 + +Une couleur aléatoire a été ajoutée. +(Usage) x, y... couleur, probabilité + +(Exemple) _Rectangle 0,0,127,63,0,0,4,0,5 +(Exemple) _Rectangle 0,0,127,63,0,0,4,%50 +Remplit l'écran de pixels aléatoires indépendants. La couleur est noire avec probabilité 50%. + +(Exemple) _FillCircle #0,0,3,4,0.5 +Dessine un disque de rayon 3; chaque pixel du disque est aléatoire avec 50% de probabilité d'être noir. + +(Exemple) _Rectangle 0,0,127,63,0,0,4,%10 +Cette fois seul un pixel sur 10 en moyenne est noir. + +------------------------------------------------------------------------------- +Pour dessiner à l'aide des coordonnées ViewWindow et non les coordonnées de l'écran, ajoutez '#' devant les coordonnées. + +Fonctions de MonochromeLib supportant ce mode de coordonnées : + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + +(Exemple) ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G + _Circle #0.5,1.2,1.2,1 + +------------------------------------------------------------------------------- +_ClrVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F1](_ClrVram) +------------------------------------------------------------------------------- +Efface la VRAM. + +------------------------------------------------------------------------------- +_ClrScreen [SHIFT]-[F4](SKTCH)-[F3](ML)-[F2](_ClrScreen) +------------------------------------------------------------------------------- +Efface l'écran. + +------------------------------------------------------------------------------- +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +Affiche les contenus de la VRAM à l'écran. + +------------------------------------------------------------------------------- +_Pixel [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F1](_Pixel) +------------------------------------------------------------------------------- +(Format) _Pixel x,y,couleur +Change la couleur du pixel dans la VRAM. + +------------------------------------------------------------------------------- +_Point [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F2](_Point) +------------------------------------------------------------------------------- +(Format) _Point x,y,taille,couleur +Affiche un point carré dans la VRAM, de côté , centrée en (x,y). + +(Example) _Point 10, 10, 3, 1 +Affiche un rectangle de (9,9) à (11,11) inclus. + +------------------------------------------------------------------------------- +_PixelTest( [SHIFT]-[F4](SKTCH)-[F3](ML)-[F4](_PixelTest) +------------------------------------------------------------------------------- +(Format) _PixelTest(x,y) + +Renvoie la couleur du pixel aux coordonnées (x,y) dans la VRAM. + -1 Hors de l'écran + 0 Blanc + 1 Noir + +------------------------------------------------------------------------------- +_Line [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F3](_Line) +------------------------------------------------------------------------------- +(Format) _Line X1,Y1,X2,Y2,couleur[,probabilité][,largeur] + +Dessine une ligne de (x1,y1) à (x2,y2) en utilisant l'algorithme de Bresenham. + +(Exemple) _Line 0,0,127,63,1,,10 + +------------------------------------------------------------------------------- +_Horizontal [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F4](_Horizontal) +------------------------------------------------------------------------------- +(Format) _Horizontal y,x1,x2,couleur + +Dessine une ligne horizontale. Beaucoup plus rapide que _Line avec y1=y2. + +------------------------------------------------------------------------------- +_Vertical [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F5](_Vertical) +------------------------------------------------------------------------------- +(Format) _Vertical x,y1,y2,couleur + +Dessine une ligne verticale. Plus rapide que _Line avec x1=x2. + +------------------------------------------------------------------------------- +_Rectangle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F1](_Rectangle) +------------------------------------------------------------------------------- +(Format) _Rectangle x1,y1,x2,y2,largeur de la bordure, couleur de la bordure, couleur de remplissage[,probabilité][,angle en degrés][,centre_X][,centre_Y][,zoom] + +Dessine un rectangle avec ou sans bordure (pour éliminer la bordure, indiquez une largeur de 0). La couleur de la bordure et du rectangle peuvent être différentes. +Si [centre_X][centre_Y] sont omis, le centre de l’image dessinée est spécifié. + +------------------------------------------------------------------------------- +_Polygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F2](_Polygon) +------------------------------------------------------------------------------- +(Format) _Polygon *sommets_x, *sommets_y, nombre de sommets, couleur[,probabilité][,angle en degrés][,centre_X][,centre_Y][,zoom] + +Dessine le contour d'un polygone. Cette fonction prend deux tableaux en paramètre, un contenant les abscisses des sommets, et l'autre les ordonnées. Le troisième paramètre indique le nombre de sommets, le quatrième donne la couleur du tracé. + +Cette fonction dessine une ligne entre chaque paire consécutive de sommets. + +(Exemple) [[60, 75, 70, 50, 45]]->Mat X.L + [[20, 30, 45, 45, 30]]->Mat Y.L + Screen.G + _ClrVRAM + _Polygon VarPtr(Mat X), VarPtr(Mat Y), 5, 1); + _DispVRAM + +Notes que l'on aurait pu utiliser l'opérateur d'adressage : + +_Polygon &Mat X, &Mat Y, 5, 1 + +------------------------------------------------------------------------------- +_FillPolygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F3](_FillPolygon) +------------------------------------------------------------------------------- +(Format) _FillPolygon *sommets_x, *sommets_y, nombre de sommets, couleur[,probabilité][,angle en degrés][,centre_X][,centre_Y][,zoom] + +Comme _Polygon, mais remplit le polygone au lieu d'en tracer les countours. + +------------------------------------------------------------------------------- +_Circle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F4](_Circle) +------------------------------------------------------------------------------- +(Format) _Circle x, y, rayon, couleur +Dessine un cercle centré en (x,y) en utilisant l'algorithme de Bresenham. + +C.Basic permet de tracer des arcs de cercles avec _Circle : + +(Format) _Circle x,y,rayon,couleur[,probabilité][,largeur][,angle de début][,angle de fin][,sommets] + +(Exemple) _Circle 64,32,20,4,0.5,3 + Cercle de largeur 3, chaque pixel est noir avec probabilité 50%. +(Exemple) _Circle 64,32,20,1,,3,0,90 + Dessine un quart de cercle d'épaisseur 3 pixels. +(Exemple) _Circle 64,32,20,1,,,0,360,5 + Dessine un cercle approximé par 5 points, c'est-à-dire un pentagone. +(Exemple) _Circle 64,32,20,1,,,20,380,5 + Dessine aussi un pentagone, mais tourné de 20°. + +------------------------------------------------------------------------------- +_FillCircle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F5](_FillCircle) +------------------------------------------------------------------------------- +(Format) _FillCircle x, y, rayon, couleur + +Comme _Circle, mais remplit le cercle. + +------------------------------------------------------------------------------- +_Elips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F1](_Elips) +------------------------------------------------------------------------------- +(Format) _Elips x, y, rayon1, rayon2, couleur + +Dessine une ellipse centrée en (x,y) de rayon horizontal et de rayon vertical : +* est la distance entre le centre et le point extrême gauche de l'ellipse. +* est la distance entre le centre et le point extrême haut de l'ellipse. +Utilise l'algorithme de Bresenham. + +------------------------------------------------------------------------------- +_FillElips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F2](_FillElips) +------------------------------------------------------------------------------- +(Format) _FillElips x, y, rayon1, rayon2, couleur + +Comme _Elips, mais remplit l'ellipse au lieu d'en dessiner le contour. + +------------------------------------------------------------------------------- +_ElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F3](_ElipsInRct) +------------------------------------------------------------------------------- +(Format) _ElipsInRct x1, y1, x2, y2, couleur + +Cette fonction dessine une ellipse inscrite dans le rectangle indiqué. + +------------------------------------------------------------------------------- +_FElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F4](_FElipsInRct) +------------------------------------------------------------------------------- +(Format) _FElipsInRct x1, y1, x2, y2, couleur + +Comme _ElipsInRct, mais remplit l'ellipse inscrite au lieu d'en dessiner le contour. + +------------------------------------------------------------------------------- +_Hscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F1](_Hscroll) +------------------------------------------------------------------------------- +(Format) _Hscroll n[,x1,y1,x2,y2] + +Décale tous les pixels de la VRAM vers la gauche (n<0) ou vers la droite (n>0). Par exemple, lorsque scroll=5, le pixel en (2,3) se trouve déplacé en (7,3). + +Naturellement, un n négatif déplace l'écran vers la gauche. Les oixels qui sortent par un côté de l'écran réapparaissent de l'autre côté. + +Vous pouvez spécifier la zone de défilement. +(Exemple) _Hscroll 1,32,16,47,95 + +------------------------------------------------------------------------------- +_Vscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F2](_Vscroll) +------------------------------------------------------------------------------- +(Format) _Vscroll n[,x1,y1,x2,y2] + +Comme _Hscroll, mais verticalement. + +------------------------------------------------------------------------------- +_Bmp [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F1](_Bmp) +------------------------------------------------------------------------------- +(Format) _Bmp *bmp, x, y, largeur, hauteur [,O|A|X][,C] + +Affiche une image bitmap à l'écran. Très utile pour dessiner tiles et sprites dans les jeux. Le cinquième paramètre (optionnel) indique le mode de dessin. + [.O] Or: noir opaque, blanc transparent + [.A] And: blanc opaque, noir transparent + [,X] Xor: blanc transparent, noir inverse + [,C] Active le clipping (autorise l'image à dépasser de l'écran) + +(Exemple) + [[60, 126, 251, 253, 253, 255, 126, 60]]->Mat B.B + _Bmp VarPtr(Mat B), 8, 16, 4, 8, O, C + +------------------------------------------------------------------------------- +_Bmp8 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F2](_Bmp8) +------------------------------------------------------------------------------- +(Format) _Bmp8 *bmp, x, y [,O|A|X][,C] + +Cas particulier de _Bmp optimisé pour les bitmaps de taille 8*8. + +(Exemple) + [[60, 126, 251, 253, 253, 255, 126, 60]]->Mat B.B + _Bmp &Mat B, 8, 16, A + +------------------------------------------------------------------------------- +_Bmp16 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F3](_Bmp16) +------------------------------------------------------------------------------- +(Format) _Bmp16 *bmp, x, y [,O|A|X][,C] + +Cas particulier de _Bmp optimisé pour les bitmaps de taille 16*16. + +------------------------------------------------------------------------------- +Fonctions supplémentaires pour MonochromeLib +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +BmpLoad( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F1](BmpLoad) +BmpSave [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F2](BmpSave) +------------------------------------------------------------------------------- +Affiche directement des fichiers .bmp depuis la mémoire (seul le format noir et blanc 1-bit est supporté). + +(Exemple) BmpLoad("TEST"),20,10 + Affiche "TEST.bmp" à la position (20,10). + +(Exemple) BmpSave "TEST",10,20,100,50 + Sauvegarde le rectangle (10,20) -- (100,50) de la VRAM dans "TEST.bmp". + +(Exemple) BmpSave "TEST",Mat A + Sauvegarde la matrice A dans "TEST.bmp" dans le dossier courant. + +(Exemple) BmpLoad("TEST")->Mat A + Charge le bitmap "Test.bmp" dans la matrice A. + +------------------------------------------------------------------------------- +DrawMat [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F3](DrawMat) +------------------------------------------------------------------------------- +Dessine un bitmap stocké dans une matrice. + +(Format) DrawMat Mat A[px,py], x, y, largeur, hauteur [,largeur après zoom][,hauteur après zoom][,couleur][,probabilité] + +(Exemple) DrawMat Mat A, 0, 0, 128, 64 +(Exemple) DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 + +------------------------------------------------------------------------------- +_BmpZoom [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F4](_BmpZoom) +_BmpRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F5](_BmpRotate) +_BmpZmRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F4](_BmpZmRotate) +------------------------------------------------------------------------------- +Zoom et rotations sur des bitmaps, utilisant l'extension de Ninestars sur Planète Casio. + +(Format) _BmpZoom &Mat A, x, y, largeur, hauteur [,largeur après zoom][,hauteur après zoom][,couleur][,probabilité] +(Format) _BmpRotate &Mat A, x, y, largeur, hauteur [,angle en degrés][,couleur][,probabilité] +(Exemple) _BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 +(Exemple) _BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 +(Exemple) _BmpRotate &Mat A, 0, 0, 20, 10, 45 + +(Format) _BmpZoomRotate &Mat A, x, y, largeur, hauteur [,angle en degrés][,couleur][,probabilité] +(Exemple) _BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 +(Exemple) _BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + +------------------------------------------------------------------------------- +_Test [SHIFT]-[F4](SKTCH)-[F3](ML)-[F5](_Test) +------------------------------------------------------------------------------- +_Test rétend les commandes _Point, _Line, _Rectangle, _Circle et _Polygon + +Ajoutez _Test devant le nom de la commande pour connaîtr le nombre de pixels dans la région que cette commande dessine. + +(Exemple) _Test_Rectangle 0,0,127,63 +Renvoie le nombre de pixels noirs dans la zone (0,0) -- (127,63) (écran entier). + +(Exemple) _Test_Circle 62,32,20 +(Exemple) _Test_Point 10,10,5 +(Exemple) _Test_Line 10,10,100,30 + + + +=============================================================================== +Utilisation de la police externe (1.70-) +=============================================================================== +Une police externe peut être choisie pour les rendus de caractères ASCII (0x20-0x7e) et les gaiji/kana (0xff80-0xffdf). + +C.Basic cherche automatiquement les fichiers suivants pour redéfinir la police. Chaque fichier correspond à une plage de caractères. Si le fichier est présent, il est utilisé pour dessiner tous les caractères de sa plage. S'il n'est pas présent, la police par défaut est utilisée. + + FONTA8L.bmp (ASCII standard) + FONTA6M.bmp (ASCII mini) + FONTG8L.bmp (Gaiji standard) + FONTG6M.bmp (Gaiji mini) + FONTK8L.bmp (Kana standard) + FONTK6M.bmp (Kana mini) + +Les polices par défaut de C.Basic sont ainsi : + + FONTK8L0.bmp (Katakana standard) + FONTK6M0.bmp (Katakana mini) + FONTK8L1.bmp (Hiragana standard) + FONTK6M1.bmp (Hiragana mini) + FONTG8L0.bmp (Gaiji standard) + FONTG6M0.bmp (Gaiji mini) + +Pour les utiliser, placez-les dans le répertoire de travail plus appelez + BmpLoad(@K1) +pour remplacer les hiragana, ou + BmpLoad(@K0) +pour remplacer les kana. + +------------------------------------------------------------------------------- +GetFont( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F1](GetFont) +GetFontMini( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F3](GetFontMini) +------------------------------------------------------------------------------- +Lit des données de polices. + +(Format 1) GetFont(code de caractère) -> Mat A +(Format 1) GetFontMini(code de caractère) -> Mat A + +(Exemple) GetFont(0x41) -> Mat A +L'image de la lattre 0x41 (A) (6x8) est chargée dans la matrice A au format 1-bit. +(Exemple) GetFontMini(0xff80) -> Mat A +Le premier bitmap (0xff80) de la mini police externe (6x6) est chargé dans la matrice A. + +(Format 2) GetFont(chaîne de caractères) -> Mat A +(Format 2) GetFontMini(chaîne de caractères) -> Mat A + +(Exemple) GetFont("A") -> Mat A +(Exemple) GeFontMini("A") -> Mat B + +(Format 3) GetFont(@ code de caractère) -> Mat A +(Format 3) GetFontMini(@ code de caractère) -> Mat A + +(Format 4) GetFont(@ chaîne de caractères) -> Mat A +(Format 4) GetFont(@ chaîne de caractères) -> Mat A + +(Exemple) GetFont(@0x41) -> Mat A +(Exemple) GetFont(@"A") -> Mat A + +Pour savoir si une police externe a été chargée : + +(Format 5) GetFont() +(Format 5) GetFontMini() + +La valeur de retour contient 3 bits indiquant si chaque plage de caractères a été remplacée par la police externe : + Bit 0 Ascii + Bit 1 Gaiji + Bit 2 Kana + +(Exemple) Si seule les kana standards ont été remplacés : + GetFont() // 4 + GetFontMini() // 0 +(Exemple) Si l'ASCII mini et les gaiji minis ont été remplacés : + GetFont() // 0 + GetFontMini() // 3 + +------------------------------------------------------------------------------- +SetFont [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F2](SetFont) +SetFontMini [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F4](SetFontMini) +------------------------------------------------------------------------------- +Permet de changer les polices. + +(Format 1) SetFont , +(Format 1) SetFontMini , + +(Exemple) SetFont 0xff80,Mat A +Les données de la matrice A sont chargées comme premier caractère externe. + +(Exemple) SetFontMini 0xff80,Mat A +Les contenus de la matrice A sont utilisés comme premier caractère externe pour la mini police. + +(Format 2) SetFont , +(Format 2) SetFontMini , + +(Exemple) SetFont "@",Mat A +Les données de la matrice A sont chargées pour le caractère "@". + +(Exemple) SetFontMini "@",Mat A +Les contenus de la matrice A sont utilisés pour le mini caractère "@". + +------------------------------------------------------------------------------- +BmpLoad(@A +BmpLoad(@AL +BmpLoad(@AM +BmpLoad(@G +BmpLoad(@GL +BmpLoad(@GM +BmpLoad(@K +BmpLoad(@KL +BmpLoad(@KM +------------------------------------------------------------------------------- +Charge une police depuis des fichiers bitmaps dans la mémoire. + +(Format) BmpLoad(@G[numéro de fichier de police]) +(Format) BmpLoad(@K[numéro de fichier de police]) +(Format) BmpLoad(@A[numéro de fichier de police]) +Le numéro peut être 0..9. + +(Exemple) BmpLoad(@A1) +Charge "FONTA8L1.bmp" (ASCII standard) et "FONTA6M1.bmp" (ASCII mini) depuis le système de fichiers. + +(Format) BmpLoad(@GM[numéro de fichier de police]) +(Format) BmpLoad(@GL[numéro de fichier de police]) +(Format) BmpLoad(@KL[numéro de fichier de police]) +(Format) BmpLoad(@KM[numéro de fichier de police]) +(Format) BmpLoad(@AL[numéro de fichier de police]) +(Format) BmpLoad(@AM[numéro de fichier de police]) + +Permet de ne charger que la police standard (L) ou mini (M). + +(Exemple) BmpLoad(@AL2) +Charge "FONTA8L2.bmp" pour l'ASCII standard. +(Exemple) BmpLoad(@AM2) +Charge "FONTA6M2.bmp" pour l'ASCII mini. + +(Format) BmpLoad(@GL"nom de fichier") +(Format) BmpLoad(@GM"nom de fichier") +(Format) BmpLoad(@KL"nom de fichier") +(Format) BmpLoad(@KM"nom de fichier") +(Format) BmpLoad(@AL"nom de fichier") +(Format) BmpLoad(@AM"nom de fichier") + +(Exemple) BmpLoad(@GL"MYFONTL") +Charge "MYFONTL.bmp" pour servir de Gaiji en taille standard. +(Exemple) BmpLoad(@GM"MYFONTM") +Charge "MYFONTM.bmp" pour servir de Gaiji mini. + +------------------------------------------------------------------------------- +BmpSave @A +BmpSave @AL +BmpSave @AM +BmpSave @G +BmpSave @GL +BmpSave @GM +BmpSave @K +BmpSave @KL +BmpSave @KM +------------------------------------------------------------------------------- +Sauvegarde une police dans un fichier bitmap. + +(Format) BmpSave @A[numéro de fichier de police] +(Format) BmpSave @G[numéro de fichier de police] +(Format) BmpSave @GKnuméro de fichier de police] +Sauvegarde une plage de caractères (A: ASCII), (G; Gaiji), (K: Kana) dans le système de fichiers ; la police standard et la police mini sont sauvegardées. + +Si un deuxième @ est ajouté (BmpSave @@K, par exemple), les fichiers sont stockés dans "/Font". + +(Format) BmpSave @GL[numéro de fichier de police] +(Format) BmpSave @GM[numéro de fichier de police] +(Format) BmpSave @KL[numéro de fichier de police] +(Format) BmpSave @KM[numéro de fichier de police] +(Format) BmpSave @AL[numéro de fichier de police] +(Format) BmpSave @AM[numéro de fichier de police] + +(Exemple) BmpSave @GL2 +Sauvegarde la police gaiji standard dans "FONTG8L2.bmp". +(example) BmpSave @GM3 +Sauvegarde la police gaiji mini dans "FONTG6M3.bmp". + +(Format) BmpSave @GL" file name " +(Format) BmpSave @GM" file name " +(Format) BmpSave @KL" file name " +(Format) BmpSave @KM" file name " +(Format) BmpSave @AL" file name " +(Format) BmpSave @AM" file name " + +(Exemple) BmpSave @GL"MYFONTL" +Sauvegarde la police gaiji standard dans "MYFONTL.bmp". +(Exemple) BmpSave @GM"MYFONTM" +Sauvegarde la police gaiji mini dans "MYFONTM.bmp". + + +=============================================================================== +Commandes de communication série (incompatible avec le Basic Casio) +=============================================================================== + +(Format) Send(données [fréquence en baud][,interruption]) +(Format) Recv(données [fréquence en baud][,interruption]) +(Format) Send38K données [,nombre d'octets] +(Format) Receive38k données [,nombre d'octets] +(Format) OpenComport38K[fréquence en baud][,mode de transfert][,interruption] +(Format) CloseComport38K + +: variables, matrices ou listes + Il est nécessaire que le type de données indiqué à l'envoi et à la réception soient le même. +: + Valeur Fréquence + 0 300 + 1 600 + 2 1200 + 3 2400 + 4 4800 + 5 9600 + 6 19200 + 7 38400 + 8 57600 + 9 115200 + La valeur par défaut est 7 pour 38400 bauds. +: + 0: transfert binaire sans vérification des types + 1: transfert avec vérification des types (comportement par défaut) + Lorsque OpenComport38k est invoqué avec mode de transfert 0, les transmissions faites avec Send38k et Receive38k sont uniquement des copies de données binaires. +: + 0: interdit d'interromptre le transfert + 1: autorise l'interruption du transfert + +Send() et Recv() peuvent être utilisés sans préparataion préalable. +Send38k et Receive38k ne peuvent être utilisés que si le canal a été ouvert avec OpenComport38k. Il faudra alors le fermer avec CloseComport38k. + +(Exemple) Send(A) +(Exemple) Recv(A) +(Exemple) Send(Mat A) +(Exemple) Recv(Mat A) + +(Exemple) OpenComport38K,9,0 + Send38K List 1 + CloseComport38K +(Exemple) OpenComport38K,9,0 + Receive38k List 1 + CloseComport38K + +------------------------------------------------------------------------------- +Beep (SH4A uniquement) [SHIFT]+[VARS](PRGN) -[F6] -[F4](I/O) -[F6] -[F5](Beep) +------------------------------------------------------------------------------- +(Format) Beep [fréquence][, durée (ms)] + +Produit un signal carré de la fréquence désignée sur le 3-pin. + +(Exemple) Beep +Produit un signal carré de 1 kHz pendant 0.5 s. + +(Exemple) Beep 440,1000 +Produit un signal carré de 440 Hz pendant 1 s. + + + +=============================================================================== +Menu de Configuration +=============================================================================== +Options compatibles avec le Basic Casio : + +Angle: Rad / Deg / Grad +Draw Type: on / off +Coord: on / off +Grid: on / off +Axes: on / off +Label: on / off +Derivative: on / off +Sketch Line: Normal / Thick / Broken / Dot + + +Nouvelles options fournies par C.Basic : + +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + Le nombre maximal de chiffres possibles est augmenté à 15. Indiquer 0 le pousse à 16. + Nrm1 et Nrm2 sont identiques au Basic Casio et affichent jusqu'à 10 chiffres. + Nrm1: -0.015800/>9800 + Choisit le mode d'entrée de commandes : Standard (fx-9860G) ou C.Basic (fx-5800P). + Vous pouvez choisir le fonctionnement de "" : soit fx-5800P, soit fx-CG. + - Commandes lieés : '#58 + '#98 +------------------------------------------------------------------------------- +Max Mem Mode : on/off + Utiliser toute la mémoire disponible. +------------------------------------------------------------------------------- +EnableExFont : on/off + Activer l'utilisation de la police externe. +------------------------------------------------------------------------------- +Edit ExtFont : On/Off + Activer l'éditeur de polices externes. +------------------------------------------------------------------------------- +EditFontSize : Standard/Mini/Mini_rev/Mini UnderCursor/Mini_rev_UnderCSR + Sélectionne la taille de police de l'éditeur. +------------------------------------------------------------------------------- +HideStatLine :On/Off + On : masque la ligne d'état et utilise pour l'édition. + Off: Affiche la ligne d'état. +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- +activer l'indent automatique dans l'éditeur. + Off: diable auto indent. + 1 : Définir la largeur de l'endent eden à 1. + 2 : Définir la largeur de l'endente à 1. + 4 : Définir la largeur de l'endent eden à 1. + Enregistrer : supprimez les espaces vides, y compris les indents lors de l'enregistrement du programme. (à compatible avec Basic Casio) +------------------------------------------------------------------------------- +Edit LineNum :on/off + Configure l'affichage des numéros de ligne. +------------------------------------------------------------------------------- +EditListChar : List / reverseL / Thick L + Sélectionne le mode d'affichage des listes. +------------------------------------------------------------------------------- +Use Hidden RAM : on / off + Utiliser la mémoire supplémentaire cachée. +------------------------------------------------------------------------------- +HiddenRAM Init : on / off + Initialiser la mémoire supplémentaire cachée avant l'exécution. +------------------------------------------------------------------------------- +Max Pict No : 20~99 + Lorsque la mémoire cachée est utilisée, le nombre de Picture peut être augmenté. + (*) Changer cette valeur réinitialise les Picture, matrices et listes ! +------------------------------------------------------------------------------- +Max List No : 52~1040 + Lorsque la mémoire cachée est utilisée, le nombre de listes peut être augmenté. + (*) Changer cette valeur réinitialise les Picture, matrices et listes ! +------------------------------------------------------------------------------- +AT DebugMode : on / off + Active le debugger lorsque [AC/ON] est utilisé pour interrompre le programme. +------------------------------------------------------------------------------- +ExitDM Popup : on / off + Afficher une popup quand le debugger se ferme. +------------------------------------------------------------------------------- +Break Stop : on / off + Accepte ou refuse les interruptions par la touche [AC/ON]. + Quand cette option est à off, vous ne pouvez pas quitter un programme en appuyant sur [AC/ON]. + - Commandes liées : '#Break 0 '#Break 1 +------------------------------------------------------------------------------- +Exec TimeDsp : on / off /reset /%HR + Affiche le temps d'exécution du programme une fois le programme terminé. + Le timer est lancé à la première ligne du programme. Les commandes ? et Disps le réinitialisent. + Les fonctions Getkey1/2 mettent le timer en pause et le redémarrent ensuite. + En cas de reset, le timer est réinitialisé est reprend au premier appel de Getkey1/2. + %HR: Utilise le timer à 1/32768s (SH4A uniquement) + - Commandes liées : '#GetKeyC '#GetKeyR +------------------------------------------------------------------------------- +IfEnd Check : on / off + Vérifie strictement la correspondance entre chaque "If" et chaque "IfEnd". +------------------------------------------------------------------------------- +ACBreak : on / off + Active ou désactive la commande ACBreak. + - Commandes liées : ACBreak +------------------------------------------------------------------------------- +Force Return : None/ F1/ EXE/ F1&EXE + Force le retour à l'éditeur lors d'une interruption avec [AC/ON]. + (Exemple) Retour de force réglé à [F1]key + -Liste de fichiers→[F1](EXE)→[AC]→[EXIT]... Retourne à la liste de fichiers. + -Liste de fichiers→[EXE][AC]→[EXIT] ...... Retourne à l'éditeur. + -Liste de fichiers→[F1](EXE]→[AC]→[EXE](restart)→[AC]→[EXIT] ...... Retourne à la liste de fichiers. + (L'opération dépend de la clé qui est pressée en premier.) +------------------------------------------------------------------------------- +Key 1st time : 25 ms - 1000 ms (valeur par défaut : 500 ms) + Durée avant qu'une touche soit répétée pour la première fois (multiple de 25 ms) +------------------------------------------------------------------------------- +Key Rep time : 25 ms - 500 ms (valeur par défaut : 125 ms) + Durée avant qu'une touche qui a déjà été répétée soit répétée de nouveau (multiple de 25 ms) +------------------------------------------------------------------------------- +SkipUp/Down : 1 - 9999 + Nombre d'écrans parcourus pour chaque pression de SkipUp ([SHIFT][UP]) ou SkipDown ([SHIFT][DOWN]) dans l'éditeur. +------------------------------------------------------------------------------- +Mat Dsp mode : [m,n] / [X,Y] + Sélectionne le format d'affichage de matrices dans l'éditeur de matrices. + Les formats [m,n] et [X,Y] sont transposés l'un de l'autre. Ce n'est qu'un paramètre d'affichage, les données de la matrice restent stockées dans l'ordre original. +------------------------------------------------------------------------------- +Matrix base : 0 / 1 + Indice de début pour la numérotation des éléments de matrices. Il faut être en mode 0 pour utiliser la première ligne et la première colonne de la VRAM. + - Commandes liées : '#Mat 0, '#Mat 1 +------------------------------------------------------------------------------- +DATE : 2017/01/17 TUE + Change la date de la RTC (horloge du système). Le jour de la semaine est calculé automatiquement. +------------------------------------------------------------------------------- +TIME : 23:59:59 + Change l'heure de la RTC. + - Commandes liées : DATE, TIME +------------------------------------------------------------------------------- +Root folder:/ (Seul le Graph 35+E II est valide.) + [F1]: pour définir le dossier racine. + [F2]: pour définir le dossier actuel. + - Commandes liées : + '#R/ // pour définir le dossier racine. + '#R. // pour définir le dossier actuel. +------------------------------------------------------------------------------- +Auto file Save : on/off + Désactive la popup de confirmation à la sauvegarde dans l'éditeur. +------------------------------------------------------------------------------- +Force g1m save : on / off + Permet de sauvegarder automatiquement les fichiers g1m quand les programmes textes sont édités. +------------------------------------------------------------------------------- +Pict mode: S.Mem / Heap / Both / MainMem + - S.Mem : Les Picture sont créées dans la mémoire de stockage (petit surcoût temporel) + - Heap : Les Picture ne sont pas vraiment créées, juste stockée temporairement dans la RAM + - Both : Les deux. + - Main : Les Picture sont gérées comme en Basic Casio, dans la mémoire principale. +------------------------------------------------------------------------------- +Storage mode: S.Mem / SD / MainMem + Sélectionne le stockage temporaire pour le code pendant l'édition et l'exécution. + S.Mem : Mémoire de stockage + SD : Carte SD (Graph 95 SD uniquement) + Main mem : Mémoire principale +------------------------------------------------------------------------------- +RefrshCtl DD: off / Grp / All + Sélectionne le niveau de restriction du rafraîchissement automatique de l'écran. + Off : Aucune restriction particulière (comme en Basic Casio). + Grp : Seules les commandes graphiques et ClrText, Locate, Text, LocateYX et "" provoquent le rafraîchissement de l'écran (ces exceptions sont en rétro-compatibilité avec les précédentes versions de C.Basic). + All : Aucune commande ne rafraîchit l'écran automatiquement. PutDispDD doit être utilisé. + Time : Sélectionne la durée de rafraîchissement automatiquement en unités de 1/128 s. La valeur par défaut est 3, ce qui donne environ 1/42 s de fréquence de rafraîchissement. + Par défaut, la valeur est 0. + - Commandes liées : RefrshCtrl, RefrshTime +------------------------------------------------------------------------------- +Wait count : 0~9999 + Délai contrôlant la vitesse d'exécution globale. + - Commandes liées : Wait +------------------------------------------------------------------------------- +Execute mode: Dbl# / Int% / CPLX + Définit le mode de variables numériques par défaut. + - Commandes liées: '#CBasic, '#CBASIC, '#CBINT, '#CBint '#CBCPLX '#CBcplx +------------------------------------------------------------------------------- + diff --git a/doc-fx/Manual_J.txt b/doc-fx/Manual_J.txt new file mode 100644 index 0000000..f8d35ab --- /dev/null +++ b/doc-fx/Manual_J.txt @@ -0,0 +1,2780 @@ +=============================================================================== + +AhCŁ@Casio Basic Interpreter (& Compiler) ver 2.x x[^Ł@}jA + +copyright(c)2015-2020 by sentaro21 +e-mail sentaro21@pm.matrix.jp + +ŏIXVF2020/2/10(JST) +ŏIXVҁFsentaro21/Colon + + +=============================================================================== +C.BasicƂ́H +=============================================================================== +Casio Basicfx-5800P̎ĝƂڎw݊CasioBasicłB +vO\[X͊{IɃXg[Wɒu܂A +T|[gR}h͈͓̔ł̓t@CtH[}bgyѓ̌݊܂B + +=============================================================================== +gp”\ +=============================================================================== +AhCƂĎRɎgpłRAM64KB܂Â16KBX^bNGAA +8KBAhC̃O[oϐGAƂĎĝŎc40KBRɎgGAƂȂ܂B +C.Basicł͊eobt@GAƂĐKBmۂc36KBxt[GAivOƍsŎgGAjƂȂĂ܂B +fx-9860GIIȍ~͎gĂȂRAM256KB݂Ă̂łgp邱ƂŁA256KBȏ̃t[GAĂ܂B + + +=============================================================================== +GfB^ł̕ҏW”\TCY +=============================================================================== +C.Basicł͕W̃GfB^Ɠl̎gڎwGfB^Ă܂B +Rs[y[Xg͎g܂xɃRs[łTCY2KBőłBAhD͖łB + +VKt@C̏ҏW”\TCY4KBƂȂĂ܂B +vO쐬ɂ̃TCY𒴂ƕҏWłȂȂ̂ňUۑĕҏWĉB +ĕҏW̃vOҏW”\őTCY̓vOTCY+2KBƂȂĂ܂B + +vOsɂ̓CvO̓CvOTCY+2KBATuvO̓TuvO+128B̕ҏW”\GAmۂŎs܂B +fobO[hł̍ĕҏW”\TCYƂȂ܂B + +vOҏW”\őTCÝABRAMgȂWݒŖ20`30KBxƂȂ܂BiXg[W̃t@CɂĕҏW”\TCYς܂Bj +BRAMgpꍇɂ͖62KBx܂ł̃t@CҏWAs邱Ƃo܂B + +iver1.75ȍ~j +ZbgAbvŊOtHggpȂݒōő僁gpݒ̏ꍇAő40KBiBRAMgp233KBj̋󂫃GAg܂B +OtHggpŖ4KBAő僁gpȂꍇ́At@CɂĎgp܂B +܂t@CTCY̏Ȃ܂B + +=============================================================================== +fobO[h +=============================================================================== +ɂ͖@\Ƃ[AC]ŒfvO̍ĊJAyуfobO[h𑕔Ă܂B +fobO[h͍ŏ̎sfobO[hŋN邱Ƃo܂B +g[XsAPXebvsAXebvI[o[AXebvAEgT|[gĂ܂B + + +=============================================================================== +s[hɂ‚ +=============================================================================== +C.Basicł͏CasioBasicl̎[hƁAlȂ[hAf镡f[h܂B +ꂼ̎s[h̐؂ւ̓Rg +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +ƋLqƂȍ~A[hɁA + +'#CBINT +'#CBint +ƋLqƐ[hɁA + +'#CBCPLX +'#CBcplx +ƋLqƕf[hɂȂ܂B + +܂ASetupftHg̎s[hݒł܂B +Rgł̕ύX̓ZbgAbvł̕ύXɗD悵܂B + +[hł͓錋ʂׂĐlƂȂ܂A +lȂvOł͎[hɔׂ1.5{ȏ㑬Ȃ܂B + + +[hŎꍇ́ȂOɁtƁȍ~̎[hŌvZ܂B̌ʂ͐lɊۂ߂܂B +ij100~Frac 1.23 + 5 +@[hłFlac 1.23͐lG[ɂȂĎsł܂񂪁At +@(Frac 1.23~100 + 5) +@ȍ~̎vZ邱Ƃo悤ɂȂ̂ŁAʂ͎[hƓ28ɂȂ܂B + +@̓rɁꍇ́Áȍ~ȀIi؂L܂Łj܂ŎvZ܂B +ij100~Frac 1.23 + 5 +@̉߂ +@100~(Frac 1.23 + 5)ƂȂ̂Ŏ[hł523A[hł500ɂȂ܂B + + +=============================================================================== +sEGCgɂ‚ +=============================================================================== +Ŝ̎sx𒲐邱Ƃo܂B +ZbgAbvŐݒ肵ꍇ͑S̃vOe󂯂܂B + +X̃vOŒꍇWaitR}hgp܂B +ijWait 100 +EGCgl100ݒ肵܂B + + +=============================================================================== +鐔lɂ‚ +=============================================================================== +CasioBasicł͓15Aw2̐x10iłA +C.BasicłSDKC̎dlƓ64rbg{x^32rbg^{ɂȂ܂B +{x^ň鐔l͈͂ +}9.88131291682493e-323`}1.7976931348623151e+308 +͍L͈͂̐l܂AZ2iōŝŏȉ̐lꍇ͌덷ɒӂĉB + +萔lɂāACꓯl̃vtBbNX(0X܂0Bjt32rbg܂ł16iA2igpo܂B +ij0XFF, 0B10100110 +ij0xAB, 0b10100110 + + +=============================================================================== +ϐɂ‚ +=============================================================================== +CasioBasicl1ϐƂA`ZArAƂ܂ł28ɉa`܂ł̏ϐg܂B +ϐ͎s[ḧႢɊ֌WȂꂼƗϐiA`ZArAƁAa`jƐϐiA`ZrAƁAa`jmۂ܂A +̂܂܂ł͕ϐ̋ʂłȂ̂ŁATtBbNXtƐϐiA%`Z%Ar%A%Aa%`%jATtBbNXtƎϐiA#`Z#Ar#A#Aa#`#jƂȂ܂B +[hŁTtBbNXtϐgꍇ͓ɋCɂ邱Ƃ͂Ȃ̂łA +[hŁTtBbNXtϐgꍇ́Aϐ̓ǂݏoʂׂ͂Đ͈̔͂Ɋۂ߂܂B +l͈͂Ɏ܂Ȃꍇ0ɂȂ܂B + +ij'#CBINT //@[hw +@@@1.2345A# //@ϐA1.2345‚肪ۂɂ͐1܂B + +ijAA +@ϐA{xϐAɃRs[܂B +@{xւ̃Rs[͖łA{xl琮lɃRs[ꍇA͈͂Ɏ܂Ȃꍇ0ɂȂ܂B + +ϐ̏ł͏l0A`Ž`ɉāAA{xA•ʂɎwł܂B +0A`Z +{xϐ܂B +0A`Z +ϐ܂B + +=============================================================================== +gϐɂ‚ @iver1.70ȍ~j +=============================================================================== +ver1.70ARȖOŎgϐ26‘܂B +A_[o[n܂镡piW܂Łj̕ϐg܂B +]̂PϐƂ͓ƗGAɊmۂϐłvOJnɂ͏ɏ܂B +gϐ32‚܂łƂȂĂ܂BϐƐϐ͕ʂ̒lێł܂OŊmۂ܂B +[SHIFT]+[F1]̕ϐXg[F1]xɑ啶ϐAϐAA_[o[ϐ\܂B +ij'#CBDBL +ij123.456->_ABC +ij456->_ABC% +ij_ABC+_ABC%->_RESULT +@_RESULT̒l579.456ƂȂ܂B + +=============================================================================== +萔ϐɂ‚ @iver1.70ȍ~j +=============================================================================== +ver1.70Aϐ萔gpɂConstR}hgpł܂B@[OPTN]-[F3](extd)-[F3](Const) +ϐConstOuƕϐ萔ƂĈȌłȂȂ܂B +ij123->Const A +ij123->Const _ABC +ij456->A +@vOŕϐ̒lύX悤ƂG[ɂȂ܂B + + +=============================================================================== +ʕ`ɂ‚ +=============================================================================== +fx-9860GIIł͉ʕ\VRAMɕ`ꂽf[^LCDɓ]邱Ƃŕ\悤ɂȂĂ܂B +LCDւ̓]͂Ȃ̃I[o[wbĥŁA`R}h̎s̓xLCD]͔̂łB +̂߂C.Basicł̓R}hIɖAVRAMLCDւ̓]itbVjs킸 +̎ԂoĂ烊tbV悤ɐݒo܂BiZbgAbvуR}hʼn”\łj +̎ÃtbV^C~O`R}hIꍇ́A +LCD]ꂸʂɕ\邱ƂȂ̏ɈڂĂ܂ƂƂNꍇ܂̂ +]R𖳂߂ɂ͋؂̂ƂŋILCD]邽߂PutDispDDR}hgpĉB + +=============================================================================== +VRAMɂ‚ +=============================================================================== +C.Basicł͏CasioBasiclɃeLXgʂƃOtBbNXʂꂼƗđ݂Ă܂A +R}hʼnʕ`ɎgVRAMƂĂ͂ЂƂ‚łA\pVRAMƂ܂B + +eLXgVRAMeLXg[hłVRAMeێĂRAMGAA +OtBbNVRAMOtBbN[hł̂VRAMeێĂRAMGAA +Ă܂B +‚܂3ʕ̓TCYVRAM݂Ă܂B +ʏ̃R}hŕ`ΏۂɂȂ͕̂\pVRAMłB + +Ⴆ΁AeLXgn̕`R}hsꍇA +݂̉ʃ[heLXg[hł΁Â܂ܕ\pVRAMɕ`s܂B +OtBbN[hł΁A\pVRAMOtBbNVRAMɑޔ]AeLXgVRAM̓e\pVRAMɕA]āA\pVRAMɑ΂ăeLXg`s܂B +̌AeLXgn̕`R}hꍇ́A\pVRAM̑ޔ]͍sꂸÂ܂ܕ\pVRAMɑ΂ĕ`s܂B +OtBbNnR}hsꂽꍇ́A\pVRAMeLXgVRAMɑޔ]AOtBbNVRAM̓e\pVRAMɕA]āA\pVRAMɑ΂ăOtBbN`s܂B +̂悤ɃeLXgVRAMƃOtBbNVRAM͒ڕ`悪s̈ł͂ȂPȂۑ̈ƂȂĂāAeLXg[hƃOtBbN[h؂ւNƁA̓sxA\pVRAMƂ̓ւs܂B +\pVRAMɕ`悵łLCDɕ\邱Ƃ͂ȂALCD]ď߂LCDʂɕ\邱ƂɂȂ܂B + + +=============================================================================== +s̊gɂ‚ +=============================================================================== +CasioBasicMatrixsƂ̈Ⴂɂ‚Đ܂B + +ʏ탂[hł͏Ɠ[hł͎̍sA[hł͐̍sƂĎgpł܂A +C.Basicł͎i8oCgjѐi4oCgj̑ɁA1rbgAju(4rbg)AoCgi1oCgjA[hi2oCgjAfi16oCgǰ^s񂪎g܂B + +smێɃTtBbNXw肷Ɨvf̌^w肪ł܂B +[.P]܂[.p]Łi1rbgjoCi[sBl͈̔͂́i0`1jłB +[.N]܂[.n]Łi4rbgjjusBl͈̔͂́i0`15jłB +[.B]܂[.b]Łi8rbgjoCgsBl͈̔͂́i-128`127jłB +[.W]܂[.w]Łi16rbgj[hsBl͈̔͂́i-32768`32767j +[.L]܂[.l]Łi32rbgjO[hsBl͈̔͂́i-2147483648`2147483647j +[.F]܂[.f]Łi64rbgj{xsBl͈̔͂́i}9.88131291682493e-323`}1.7976931348623151e+308j +[.C]܂[.c] (128rbg) fsBl͈͎̔͂Eꂼi}9.88131291682493e-323`}1.7976931348623151e+308jłB + +s͏lɁoCp^Łorow(sj,columnijpł̎ƂȂ܂B +OƂ1rbg^Ajui4rbgj^́oX,Y}^̎Łocolumni,jrow(sjpł̎ƂȂ܂B + +1rbgs͉ʂVRAMƓ\ƂȂ̂ŁA +[.V]܂[.v]w肷VRAM128sx64̍sɊ蓖Ăēǂݏo܂B +[.VG]ŃOtBbNVRAMA[.VT]ŃeLXgVRAMsɊ蓖Ă邱Ƃo܂B +ACfbNXx[X0n܂AsTCY{128,64}ŒƂȂ܂B + +ij{128,64}Mat G.V +@Mat GɃANZX邱Ƃł̎_łVRAM𒼐ړǂݏł܂\nR}hł͂Ȃ̂ŁA +@ʕ\ꍇ́AR}hsɋ\Kv܂B + +ij{128,64}Dim Mat G.V +@@@Screen.G //@OtBbNʑIĩOtBbNR}hłj +@@@1Mat G[63,31] +@@@PutDispDD //@ʓ]R}h +@@@OtBbNʂ̐^񒆂ɓ_ł܂B +@@@PxlOn 31,63ƓłB + +ij{128,64}Dim Mat G.V +@@@Screen.T //@eLXgʑIĩeLXgnR}hłj +@@@1Mat G[63,31] +@@@PutDispDD //@ʓ]R}h +@@@eLXgʂ̐^񒆂ɓ_łĂ܂B + + +=============================================================================== +s̏ +=============================================================================== +lɁA +{m,n}Dim Mat A`ƁA +[[1,2,3][4,5,6]]Mat A`̏T|[gĂ܂B + +ɁAfx-5800Pł +100Dim A +`T|[gĂ܂B +0Dim A +sA܂B + + +svf̈ꊇƂďlFillR}hƐlMat AƂ`T|[gĂ܂B +ijFill(123,Mat A) +ij123Mat A +Mat As̑Svf123ŏ邱Ƃł܂B + + +Mats񏉊R}h[[ ]]ɂāAs󔒂邱Ƃ”\łB +ij +@[[0B11001100, +@@0B00110011, +@@0B11001100, +@@0B00110011 +@]]Mat A.B + +Dim Dimł̍sĊmۏɂĔCӂɃAhXsɊ蓖Ă邱Ƃo܂B +ij {m,n}->Dim Dim Mat A(s̃AhX) +ij{128,1}->Dim Mat A.B +@{64,1}->Dim Dim Mat B.W(VarPtr(Mat A)) +@@Mat AMat B͓̈ANZX܂AoCgANZX[hANZXƂƂ낪Ⴂ܂B + AhXwŊmۂsɂ͈ꗗ\Ł}[Nt܂B + +=============================================================================== +sւ̃ANZX +=============================================================================== +ʏMat A[1,1]`ɉāA +Matȗ +A[1,1] +ڂ̃ANZXł +A[1] +\L”\łB + +ɓYl0`9̏ꍇ̂݁A +A0 +A5 +\Lo܂B + +̕\L̕ϐ͎̂ƂȂs񂪎OɊmۂĖꍇ́AIɍs񂪊mۂ܂B +ijA1+123B5 +@AMat AMat BmۂĂȂꍇ́AϐANZXꂽ_ +@9Dim A +@9Dim B +@ƓIɎsAA1`A9B1`B9܂łg܂B + +ij'#Mat 0 +@A1+123B5 +@̏ꍇAAMat AMat BmۂĂȂꍇ́A + @10Dim A + @10Dim B +@ƓIɎsAA0`A9B0`B9܂łg܂B + +ij'#Mat 0 +@2Dim B +@A1+123B5 +@̏ꍇ́A + @10Dim A +@Mat ÂݏAMat B͍ĊmۂȂ̂B5ɃANZX_ŃG[ɂȂ܂B +@̏ꍇA0`A9B0`B1܂łg܂B + +=============================================================================== +s̓]uϊ +=============================================================================== +CasioBasicƓTrnR}hT|[gĂ܂CasioBasicƂ͈ႢAs񂻂̂̂]uϊ܂B +ijTrn Mat A +@sA]uϊ܂B + +*Ver.1.10菃݊ƂȂ܂B +ijTrn Mat A +@sA]uϊMatAnsɌʂ܂B +ijTrn Mat A->Mat A +@sA]uϊ܂B +ijTrn Mat A->Mat B +@sA]uϊMat BɌʂ܂B + +=============================================================================== +s̗vfTCYύX +=============================================================================== +š^(1rbgAjuAoCgA[hAO[hAAfj͍smیłCӂɕύXł܂B +ij[[1,2,3,4][5,6,7,8]]Mat A.B +@@@Mat ADim Mat A.W +@oCg^Mat As[h^ɕύXł܂B +@vf͕ύX̌^TCYɉĕω܂B +@[[0x0102,0x0304][0x0506,0x0708]]Mat A.W +@ƓʂɂȂ܂B + +L̗Ⴞ{2,4}̃oCgs{2,2}̃[hsɕϊ邱Ƃo܂񂪁A +ȉ̌`ƔCӂ̍sTCYɕύXł܂B +ij[[1,2,3,4][5,6,7,8]]Mat A.B +@@@{4,1}Dim Dim Mat A.W +@[[0x0102][0x0304][0x0506][0x0708]]Mat A.W +@ƓʂɂȂ܂B +ij[[1,2,3,4][5,6,7,8]]Mat A.B +@@@{1,4}Dim Dim Mat A.W +@[[0x0102,0x0304,0x0506,0x0708]]Mat A.W +@ƓʂɂȂ܂B + + +iӁjPrbg^Ajui4rbgj^s񂩂̕ύXA܂Prbg^Ajui4rbgj^sւ̕ύX͍sƗ񂪔]܂B +@͂Prbg^Ajui4rbgj^sX,Y^ŎĂ邽߂ɒʏm,n^sƂ͓]us̊֌WɂȂ܂B +@{127,63}Dim Mat A.P +@LCDʂ̑Sʃrbg}bvf[^̉zƂėpłobt@ƂĊmۂ܂B +@Mat ADim Mat A.B +@oCg^sɕύXƁA +@vfTCY{63,16}ɂȂ܂B + +=============================================================================== +s̃CfbNXJnlɂ‚ +=============================================================================== +CasioBasicł͍s̃CfbNX͂Pn܂܂AC.Basicł0n܂邱Ƃł܂B +ZbgAbv̓Rgł̋Lqōs̎n܂Ił܂B +ij#Mat 1 +@@]ʂ1n܂܂B +ij#Mat 0 +@@{3,2}Dim Mat A + @mۂs A[0,0]`A[2,1]ƂȂ܂B + +@ɉʍW0܂ŗLɂȂ܂BőSʂ`ΏۃGAƂȂ܂ +ijPxlon 0,0 + +@Xg̃xɂ‚ẮA +@vf̊Jn1̏ꍇiftHgjł́AƓA +@ij"LABLE"->List 1[0] +@vf̊Jn0̏ꍇ́A +@ij"LABLE"->List 1[-1] +@Ńxݒ肪ł܂B + +@ijList 1[0]->Str 1 +@ijList 1[-1]->Str 1 +@x𕶎ƂĎ擾邱Ƃo܂B + + +s񂲂ƂɊmێɃCfbNXx[Xݒ肷邱Ƃo܂B +smێɖ0‚0x[XA1t1x[XƂȂ̂ŁAftHg̃x[XݒύX邱Ɩ•ʐݒ肪o܂B +ij{128,64}Dim Mat A.P0 + 0x[X̍smۂ܂BCfbNX͈̔͂[0,0]-[127,63] +ij{128,64}Dim Mat A.P1 + 1x[X̍smۂ܂BCfbNX͈̔͂[1,1]-[128,64] + +TCYwȗāAiftHgTCYɂȂ܂Bj +{128,64}Dim Mat A.0 +{128,64}Dim Mat A.1 + +Lqtɂ +{128,64}Dim Mat A.0P +{128,64}Dim Mat A.1P + +ԂɃsIhꂽA +{128,64}Dim Mat A.P.0 +{128,64}Dim Mat A.P.1 +łFł܂B + +[[1,2,3,4][5,6,7,8]]->Mat A +̂悤Ȍ`ŏꍇ́AӂƉEӂŃCfbNXx[XႤƕso܂B̏ꍇ́A +{1,2}.1List 2.B1 +{1,2}.B1->List 2.B1 + +{1,2}.0List 3.B0 +{1,2}.B0List 3.B0 +ƂāAӂlȃCfbNXx[Xw肪KvłB + +=============================================================================== +s̕\ɂ‚ +=============================================================================== +MatsGfB^ɂ2iA16ił̕\ł܂B +sҏW[h[F5]2i\A[F6]16i\ɂȂ܂B +10i\ɖ߂ɂ͍ēx[F5][F6]܂B +A2i\̓oCgi1oCgjƁAjui4rbgjA[h^Cvi2oCgj̍s܂łłB + +[OPTN]L[ƃXg\ɕς܂B + +s\ĂԂ[VARS]L[ƕ\ɕς܂B + +sҏWŃhbgҏW̏o郂[hlj܂BiVer.1.62ȍ~j +s\ĂԂ[OPTN]L[ƃhbgGfB^ɂȂ܂B +s̊evf̒l0̏ꍇƂȊOŃhbg̔܂܂B + +s̃f[^Nbv{[hɃRs[y[Xg”\ɂȂ܂BiVer.1.62ȍ~j +sҏW[h[SHIFT]+[8](CLIP)ŃRs[A[SHIFT]+[9]Ńy[Xgo܂B +iC.Basicj`Ȃ̂ŃGfB^ɂčsf[^y[Xgo܂B + + +=============================================================================== +s̃CfbNXgэőCfbNXlɂ‚ +=============================================================================== +s̃ANZX͏lMat+pPȊOɁAListƓlŎwł悤ɂȂ܂B iVer.1.64ȍ~j +iƁAAAns͐lwł܂Bj +Mat A = Mat 1 +Mat B = Mat 2 +Mat C = Mat 3 +Mat Z = Mat 26 +Mat a = Mat 27 +Mat z = Mat 52 + +ɁtƃCfbNXlϐŎw肷邱Ƃo܂B +ij3->A + Mat @A iMat CƓłj + +List̊gōslɍő1040܂Ŋg܂BiVer.1.61ȍ~j + + +ȍ~̍s̓XgƋpĂ邽߂27ȍ~̍s񁁏s̓XgƓ̈gp܂BiVer.1.64ȍ~j +53ȍ~͐l̂ݎwł܂B +Mat a[5,1] = Mat 27[5,1] = List 27[5] +Mat b[5,1] = Mat 28[5,1] = List 28[5] +Mat c[5,1] = Mat 29[5,1] = List 29[5] +Mat z[5,1] = Mat 52[5,1] = List 52[5] + +List 53[5] = Mat 53[5,1] +List 100[5] = Mat 100[5,1] +List 1000[5] = Mat 1000[5,1] + +ij100->A + Mat @A + Mat @AMat 100AList 100ƓŁB + + +=============================================================================== +Xg@\̃T|[g͈͂ɂ‚ +=============================================================================== +Xg@\͍s@\𗘗pĎĂ܂B +ftHgList 1`52܂Ŏg܂BiVer.1.57ȍ~j +ɉBRAMgpɂ̓ZbgAbv1040܂ő₷Ƃo܂BiVer.1.61ȍ~j +ListƍsƂ̑Ή͈ȉ̒ʂɂȂĂ܂B +Mat A`ZList 1`26݂͌ɓƗĂ܂B +27`52܂ł͏̍sƋL܂B +List 27[5] = Mat a[5, 1] +List 28[5] = Mat b[5, 1] +List 29[5] = Mat c[5, 1] +List 52[5] = Mat z[5, 1] +List 100[5] = Mat 100[5, 1] +List 1000[5] = Mat 1000[5, 1] + + +@\̈ȉ̃R}hT|[gĂ܂B + +List Ans +10->Dim List 1 +{1,2,3,4,5}->List 1 +Seq( X^2, X, 1, 10, 2 )->List 2 +Augment(List1,List2)->List 3 +Mat>List( Mat A, 2) -> List 1 +List>Mat( List 1, List 2,..) -> List 9 +Fill(3,List 1) +Min(List 1) +Max(List 1) +Mean(List 1j +SortA(List 1) +SortB(List 1) +Sum List 1 +Prod List 1 + +List܂ގlZъ֐ZB + + +=============================================================================== +ɂ‚ +=============================================================================== +CasioBasicƓStrϐ╶֐g܂A͍̎̂sƂĎĂ܂B + +vtBbNXƂ$t邱ƂMats͕ƂĔF܂B +ij["ABCDEF"]Mat A +@@@Locate 3,3,$Mat A +@ʍW(3,3)"ABCDEF"\܂B + +@ŏ +@{7,1}Dim Mat A.B + ƓIɂ܂B +@ĕ͍sł̓oCg^f[^ƂĊi[܂B + + +ECasioBasic݊Ŏg镶֐ + +@i񓯎m̘Aj + StrJoin( + StrLen + StrCmp( + StrSrc( + StrLeft( + StrRight( + StrMid( + Exp>Str( + Exp( + StrUpr( + StrDwr( + StrInv( + StrShift( + StrRotate( + +ij"ABCDEF"Str 1 +@@@Locate 3,3.StrRight(Str 1, 3) +@ʍW(3,3)"DEF"\܂B + + +fx-9860GIIŎg镶͂PoCgipAꕔ̃R}hjƂQoCgiقڂׂẴR}hAꕶуJijA +ł͂PoCgƂQoCg݂ԂƂȂ܂A֐ł̈͏lɂׂĂPƂȂ܂B +񂪊i[ꂽsvfɒڃANZXꍇ͕̈ʒuɒӂĉB + + +=============================================================================== +̏ɂ‚ +=============================================================================== +Ɠϐ Str 1-20̓ftHgłMats<>ÖٓIɎgp܂B +C.Basic ł́A20‚ 999‚Ɋg Str 999 ܂Ŏg܂B +ftHgł͕̃TCY255oCg܂łƂȂĂ܂B +Strϐ͎IMatsƂĊmۂA̕R}hɂĂ͏݊ŎĝŁAsӎKv͂܂B +1‚ȏ StrvOŎgAStr <> ̐̍ől M ̏ꍇAMsMat <>s̏Iɍs܂B +@{M,256}Dim Mat <> + ͑ r ̓͂́A[ALPHA]+[x^2] łB + +ȂAStrϐ̎̂ƂȂMats͔Cӎw肷邱ƂoAStrϐgOɃRgŎw肵܂B +ij'#Str A +@StrϐMat AƂĊmۂ܂B +@{20,65}Dim Mat A.B +@ƓłB +ij'#Str B,30,256 +@StrϐMat BƂ30A255܂ʼn”\ȕϐƂĊmۂ܂B + +͎̑̏g܂B +ij"ABCDEEF"Str 1 +ij["ABC","TEST","1+3+5"]Mat A +@oCg^Mat A[3,6]sIɊmۂĂꂼ̗vfɕzu܂B + @Mat A[1,1]="ABC" + @Mat A[2,1]="TEST" + @Mat A[3,1]="1+3+5" +@ƂȂ܂B +@ΉR}h"ABC"ɃANZXɂ$Mat AA$Mat A[1],$Mat A[1,1]ƂȂ܂B +@"1+3+5"ANZXɂ$Mat A[3],$Mat A[3,1]ƂȂ܂B +ijLocate 1,1,$Mat A +@Locate 1,1,"ABC"ƓłB +ijLocate 1,1,$Mat A[3,3] +@Locate 1,1,"3+5"ƓłB + +o[Wł̕ΉR}hłBhh̑$Mat`Ŏgp܂B +Ehh +ij$Mat A[1] +@@"ABC"ƓłB +EH +ijH$Mat A +@sMat Aɕ͂܂BmۂĂvfŕ܂B +ELocate +EText +ELocateYX +EExp( +ijExp("1+2+3")6 +ijExp($Mat[3,3])8 + 𐔎Ƃĕ]AlԂ܂B + + +=============================================================================== +gR}hSprintfɂ‚ +=============================================================================== +ijC̃Cu֐sprintfC.BasicłłB +ijSprintf("wq",1[,2[,3]]) + wqANSI b sprintf ƊS݊ł͂܂B + ͂R‚܂Ŏw”\B + ̏ꍇ̓vtBbNX%Aɂ̓vtBbNX# w肵܂B + ̃vtBbNXȗꍇ́A̎_ł̎s[h()ɏ]܂B +() Sprintf( ͈`FbNĂȂ̂ŁAԈݒɂVXeG[ɂȂ +@@ ”\L܂B + +() Sprintf("A=%4d B=%3.2f",%A,#B) + A=1234, B=45.68 ̏ꍇAϊ镶 "A=1234 N=45.68" ƂȂ܂B + +() Sprintf("%g%s",#1.234,"sec")Str 1 + Str 1 ɑ镶 "1.234sec" ƂȂ܂B + +() Sprintf("Result=%08.3f",#123.45) + ϊ镶́ASWA_ȉRŃZl߂ "Result=0123.450" ƂȂ܂B + +() Sprintf ("%e",#123456.78) + ϊ镶́Aw\ "1.234568E+05" ƂȂ܂B + +() Sprintf("%.3e",#123456.78)Str 1 + ϊ镶́A_ȉR̎w\ "1.235E+05" ƂȂ܂B + + + wqF"%[tO][ϊw][._ȉw]<ϊwq>" +() C.Basic for FX ł̏wqCasio SDKAC.Basic for CG ͈ȉ̂悤ɂȂĂ܂B +---------------------------------------------------------------------- +E " " ̒ɋLq +E %ɑĈȉ[tO]w肷Bw肵ȂĂǂB +---------------------------------------------------------------------- + 0 [l߂w肷tOBɗ]󔒂͑S0ɂȂB + t̐̏ꍇɂP󔒂󂯂B + | l߂w肷B([F5](CHAR)}CiXLN^IĉB) +---------------------------------------------------------------------- +E [ϊw]őSw肷Bw肵ȂĂǂB +E "." ɑď_ȉw肷Bw肵ȂĂǂB +E ŌɈȉ<ϊwq>w肷B͕Kw肷B +---------------------------------------------------------------------- + d 10iɕϊB + o Ȃ8iɕϊB + u Ȃ10iɕϊB + x 16iɕϊB10`16܂ł͏ a, b, c, d, f ŕ\ + X Ȃ16iɕϊB10`16܂ł͑啶 A, B, C, D, F ŕ\ + f ɕϊB + e / E wɕϊBϊw͖A_ȉ͗L + g / G wɍœKĕϊB + s ɕϊB + + + +=============================================================================== +R}ht@X +=============================================================================== +tT|[gyшꕔT|[gĂCacio Basic݊R}h +=============================================================================== +? +@(Disps) + +If ` Then ` Else ` IfEnd +Lbl ` Goto += != > < >= <= + +Dsz / Isz +=> +Locate +Menu + +For ` To ` Step ` Next +While ` WhileEnd +Do ` LpWhile +Break +Return +Stop +Getkey +Prog + +ClrMat +ClrList +Mat@izƂĂ̎ōs񉉎Z@\͖T|[głBj +List@iList܂މZT|[gĂ܂Bj +Dim +Fill( +Seq( +Augment( +Mat>List( +List>Mat( +Min( +Max( +Mean( +SortA( +SortB( +Sum +Prod +Swap / *Row / *Row+ / Row+ +Trn +Identity + + +i / Arg / Conjg / ReP / ImP / >rڃ / a+bi +Real / a+bi / rڃ + +Cls ClrText ClrGraph +ViewWindow +Plot / PlotOn / PlotOff / PlotChg +Circle +Line / F-Line +Vertical / Horizontal + +PxlOn / PxlOff / PxlChg +PxlTest( +Text + + +SketchNormal / SketchThick / SketchBroken / SketchDot +S-L-Normal / S-L-Thick / S-L-Broken / S-L-Dot + +G-Connect / G-Plot +CoordOn / CoordOff +GridOn / GridOff +AxesOn / AxesOff +LabelOn / LabelOff +BG-None / BG-Pict + +DrawGraph (ꕔT|[gj +Graph Y= (ꕔT|[gj +GraphY (ꕔT|[gj + +Graph(X,Y)= (ꕔT|[gj +DrawStat (ꕔT|[gj +S-Gph1AS-Gph2AS-Gph3ADrawOnADrawOffAScatterAxyLineASquareACrossADot + +Xmin Ymin Xmax Ymax Xscl Yscl Xfct Yfct Xdot +TMin TMax TPtch + +Deg Rad Grad + +And Or Not Xor + +Abs Int frac Intg +! +MOD( +Rmdr Int +log ln logab( +10^x e^x +x^-1 +sqr x^2 +sqr^-3 +sin cos tan +sin^-1 cos^-1 tan^-1 +sinh cosh tanh +sinh^-1 cosh^-1 tanh^-1 + +femto pico nano micro milli Kiro Mega Giga Tera Peta Exa + +(deg) r (rad) g (gra) + >DMS +Pol( Rec( + +fn + +Str +StrJoin( +StrLen +StrCmp( +StrSrc( +StrLeft( +StrRight( +StrMid( +Str>Exp( +Exp( +StrUpr( +StrDwr( +StrInv( +StrShift( +StrRotate( + +StoPict / RclPict +StoCapt / RclCapt + +Ran# RanInt#( RanNorm#( RanBin#( RanList#( +Rnd RndFix( +Norm / Fix / Sci +Eng / EngOn / EngOff + + + +=============================================================================== +R}ht@X@gR}h +=============================================================================== +------------------------------------------------------------------------------- +? [SHIFT]+[VARS](PRGM)-[F4](?) +------------------------------------------------------------------------------- +HR}hɃIvVljœ͌`Ił܂B +ij?([x][,y][,width][,"󔒃LN^"][,͌][,R]) +@̃IvVtƒÕJ[\ʒus܂B̓vvg"H"\܂B +@ep[^͏ȗł܂B +ij"A="?()->A +@"A="ɑē͑҂ɂȂ܂B +ij"A="?(,,,,,R)->A +@"A="ɑĔ]\œ͑҂ɂȂ܂B +ij"A="?(,,8,,,R)->A +@"A="ɑĔ]͑҂ɂȂ܂B͔͈͂8݂̂łB𒴂͂ł͉XN[܂B +ij?(3,4,5,">",5)A +@X=3CY=4̈ʒuA̒l\ē͑҂ɂȂ܂B͔͈͂Ɠ͌Ƃ5̂݁A󔒂">"Ŗ߂܂B +ij?(3,4,5,,5,R)A +@X=3CY=4̈ʒuA̒l𔽓]\ē͑҂ɂȂ܂B͔͈͂Ɠ͌Ƃ5݂̂łB + +------------------------------------------------------------------------------- +Fix [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F1](Fix) +Sci [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F2](Sci) +Norm [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F3](Norm) +Eng [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F3](Eng) +------------------------------------------------------------------------------- +Eng,Norm,Fix,ScȉԂ̓ǂݏo”\łB +Eng[h͕ϐ(Eng)Ŏ擾ł܂B +Ԃl0FEngOff +Ԃl1FEngOn +Ԃl3FEngOn 3 (3؂j + +NormAFixASci +͂ꂼɕw肷ƌ݂̐ݒlԂ܂B +()͖Ă\܂B + +݂̐ݒ肪Norm1̏ꍇ̕ԂĺA +Norm (-1)1 +Fix (-1)ł-1 +Sci (-1)ł-1 + +݂̐ݒ肪@Fix 8̏ꍇ́A +Norm (-1)-1 +Fix (-1)ł 8 +Sci (-1)ł-1 +ɂȂ܂B + + +Fix, Sci, Norm ɂ́Aꂼ 0 15 ܂ł̐lwł܂B + +FixF|x| 10^17 ̏ꍇ͎w\܂B̑̓͏ Casio Basic ݊łB + +SciFSci 0 ̏ꍇ͗L 16 ŕ\܂B̑̓͏ Casio Basic ݊łB + +NormFNorm 1 Norm 2 ͏ Casio Basic ݊ 10 \ŁANorm 0 16 \Ȃ̏ꍇ͎w肵\܂Bl͈̔͂̏ꍇ͎w\ƂȂ܂B +- Norm 1 cc 0.01 |x|, |x| 10^10 +- Norm 2 cc 0.000000001 |x|, |x| 10^10 +- Norm n (3n15) cc 0.01 > |x|, |x| 10^n +- Norm 0 cc 0.01 > |x|, |x| 10^15 + +------------------------------------------------------------------------------- +EngOn [SHIFT]+[MENU](SET UP)-[F6]-[F1](DISPLAY)-[F4](ENG)-[F1](EngOn) +------------------------------------------------------------------------------- +@3؂”\ɂȂ܂B +ijEngOn 3 + ̃R}hȍ~̐lo͂3؂ɂȂ܂B +@EngOffŒʏ탂[hɖ߂܂B + +------------------------------------------------------------------------------- +RndFix( [OPTN]-[F6]-[F4](NUMERIC)-[F6]-[F1](RndFix) +------------------------------------------------------------------------------- +_ȉwŊۂ߂RndFix(R}hɁALwŊۂ߂SciIvVlj܂B +ijRndFix(, Sci ) +ijRndFix(1.23456789e-123,Sci 5) +@1.2346e-123Ԃ܂B + +------------------------------------------------------------------------------- +StoPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F1](Store) +RclPict [OPTN]-[F6]-[F6]-[F2](PICTURE)-[F2](Recall) +------------------------------------------------------------------------------- +Xg[WƓq[vœ삷郂[hؑւł܂B +ZbgAbvɂăXg[WƂ̐؂ւɂȂ܂B +q[vw̏ꍇPictt@Č݊Ȃɑxサ܂B +Basič݊͊mۂĂ܂̂ŁACasioBasic̃\[X͂̂܂܂œ܂B + + +------------------------------------------------------------------------------- +ElseIf [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F5](ElseIf) +------------------------------------------------------------------------------- +ijIf`Then`ElseIf`IfEnd +ij + If A:Then + Locate 1,1,"A" + ElseIf B:Then + Locate 1,2,"B" + EndIf + +EIfɑΉIfEndꍇɃG[Ƃ邩ǂZbgAbvőIo܂B +@ZbgAbvŃ`FbNOnɂΎsɑΉIfEndIfR}h̉ӏŃG[ɂȂ܂B + + +------------------------------------------------------------------------------- +Locate [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F1](Locate) +------------------------------------------------------------------------------- +ELocateR}h̕\Ŕ]\dˍ킹\”\łB +@OtHgǂݍ܂Ăꍇ͊OtHg\ɂȂ܂B + +ijLocate [@][!]csrX,csrX,""or [,N/R] +@[@]@݂VRAMɕ`悵܂B +@[!]@OtHgĂĂWtHgŕ`悵܂B +@[,N] Normal +@[,R] Reverse + +ijLocate 1,2,"Test",R +@@"Test"OtBbNW(1,2)ɔ]\ŕ\܂B + +ijLocate @!3,4,"Test",O +@@݂VRAM̃eLXgW(3,4)"Test"wiɏd˂ĕ\܂B + + +ESprintfALocateAText, DispR}hł́vtBbNX͎]ƂȂ܂B +@[hł͏ɐlȂ̂ŁAvtBbNXtł͎]ŎlԂ܂B +@[hłӖ͖̂ł[hɂSprintfLocateATextR}hŎlƂo܂B + +ij'#CBINT + 10A + Locate 1, 2, log 123+A +@[hł͐lɊۂ߂12ƂȂĂ܂̂łA +ij'3CBINT + 10A + Locate 1, 2, #log 123+A +@vtBbNXt12.089905111ƕ\܂B +@ȍ~̎]͎Ƃčs܂Aϐ͐ϐ̂܂܈܂BtKv͂܂B + + +------------------------------------------------------------------------------- +Switch [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F1](Switch) +Case [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F2](Case) +Default [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F3](Default) +Break [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F4](Break) +SwitchEnd [SHIFT]+[VARS](PRGM)-[F1](COMMAND)-[F6]-[F6]-[F6]-[F5](SwitchEnd) +------------------------------------------------------------------------------- +ijSwitchR}hlj܂BCꓯltH[X[‚łBDefault͍ŌłȂƊ҂ɂȂ܂B +@@@@VKR}hSwitchACaseADefaultASwitchEndƂȂ܂BBreak͏]R}hłB +ij + Switch A: + Case 1:Locate 1,1,"A" + Break + Case 2:Locate 1,2,"B" + Case 3:Locate 1,3,"C" + Break + Default + Break + SwitchEnd + + +------------------------------------------------------------------------------- +ACBreak [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F2](ACBreak) +------------------------------------------------------------------------------- +ijvO[AC]ł̈ꎞ~ƓʂƂȂ܂B +@ZbgAbvɂACBreakR}h̗L/̐؂ւo܂B +@(off)ɂꍇ̓X[ăvO̎sɉeyڂ܂B +ijACBreak + +ijACBreakStop +@StopR}ht邱ƂŁAACBreakStopƂȂ܂A +@ȍ~ɎsACBreakR}hׂăLZ܂B +@ZbgAbvł̃LZƓłB + + +------------------------------------------------------------------------------- +Local [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F5](Local) +------------------------------------------------------------------------------- +ijftHgł͏ϐ͑SăO[oϐłACӂ̏ϐ[JϐƂ邱Ƃo܂B +@@@@vOLocalR}hŕϐw肷Ƃ̕ϐ͂̃vOŎg郍[JϐƂȂ܂B +ijLocal x,y,x +@[JϐƂĂCCw肵܂B +@wł̂͏ϐ݂̂ōő10‚܂Ŏwł܂B +@܂̕ϐ̏ňtProgGosubŃ[Jϐɑ܂B + +ijTuvO"TEST"ŁA +@@@Local x,y,x +@iLqʒu̓TuvOł΂ǂł‚łATuvOŕLocalꍇ͍ŌɋLqꂽLocal݂̂LɂȂ܂Bj + +@@@Prog "TEST",123,456,N +@TuvO"TEST"̎sɁA[JϐƂx,y,zmۂA +@123xA456yANzAȊO̓O[oϐƂȂ܂B + +[Jϐg悤ɂȂƂōċAvO”\ɂȂ܂A +ł̓ŃlXg16wx܂łƂȂĂ܂B + + +------------------------------------------------------------------------------- +Prog [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F1](Prog) +------------------------------------------------------------------------------- +ijLocalR}hgƂňLq邱Ƃo܂B +ij +@"MAIN"vO +@ 10X +@ 20Y + X+1a + Y~2b +@ Prog "SUB",X,Y +@@Disp Ans + Disp a + Disp b + +@"SUB"vO +@ local a,b + Dips a + Disp b +@@Return a+b +-------------s + 10 + 20 + 30 + 11 + 40 +------------- + +@2‚̐l̘avZTuvOĂяoʂ\܂B +@TuvOła,b̓[JϐƂĊmۂATuvOł̓O[oϐa,bɂ̓ANZXo܂B +@CvOa,b̓O[oϐłATuvOa,b̉e󂯂܂B + + +------------------------------------------------------------------------------- +Return [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F2](Return) +------------------------------------------------------------------------------- +ijTu[`烁C[`ɖ߂܂BԂlw肷邱Ƃł܂B +ijReturn@ +@@ԂlAnsɑăC[`ɖ߂܂B + +@vZʂ͏Ansɑ̂ŁA + +@ + Return + +@łʂɂȂ܂B + + +------------------------------------------------------------------------------- +Gosub [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F1](Gosub) +------------------------------------------------------------------------------- +ijP̃vOŃTu[`g܂B +ijGosub A +@Label An܂vOsReturnR}hŕA܂B +ijGosub A,123,456 +@ProgR}hlɎg܂B + +ij +@ 10X +@ 20Y + X+1a + Y~2b +@ Gosub A,X,Y +@@Disp Ans + Disp a + Disp b + Stop + + Lbl A +@ local a,b + Dips a + Disp b +@@Return a+b +-------------s + 10 + 20 + 30 + 10 + 20 +------------- + +@ProgR}hł̃vOAGosubgpvOɏvOłB +@a,b̓[JϐƂĊmۂÃvOł̓O[oϐa,bɂ̓ANZXo܂B + + +------------------------------------------------------------------------------- +ElemSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F2](Elem) +RowSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F3](Row) +ColSize( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F4](Col) +------------------------------------------------------------------------------- +ijs̃TCY擾֐łB +ijElemSize( s ) + +@Pvf̃TCYirbgjԂ܂B +ij@ElemSize( Mat A ) + +ijRowSize( s ) +@{m,n}mCsTCYԂ܂B +ijColSize( s ) +@{m,n}nCTCYԂ܂B + +------------------------------------------------------------------------------- +MatBase( [OPTN]-[F2]-(MAT)-[F6]-[F5](SIZE)-[F1](Base) +------------------------------------------------------------------------------- +ijs̃CfbNXJnl擾֐łB +ijMatBase( s ) +ijMatBase(Mat A) +@sMat ÃCfbNXJnlԂ܂B0PɂȂ܂B + +------------------------------------------------------------------------------- +Getkey [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F2](Getkey) +------------------------------------------------------------------------------- +ijR}h̋@\ɉāA +@@@@L[܂ő҂Getkey1iSDKGetKeyƓj +@@@@L[obt@NAĂ͂Getkey2 +@@@@Ɉ莞ԃL[͑҂Getkey3 + L[̓ǂݍ݂XgŕԂGetkeyM + ܂B +@@@@L[R[hSDK݊ł͂ȂCasioBasicGetkey݊łB +@@@@SH4Ałfx-9860GIIGetkeyR}hɂGetkey1`2Ɠl[SHIFT]+[OPTN]ł̃obNCg䂪”\łB +@@@@[SHIFT]+[AC]ł̓dOFFɂ͖ΉłB + +ijGetkey3(128) +@R}hs̃^C}[Ƃ128TicksJEgi1bj̃EGCgԒɃL[͂΍ŌɉꂽL[R[hԂ܂B +ijGetkey3(128,A) +@A^C}[̏lƂČ݂̃^C}[l128TicksJEgo‚܂ŃL[҂܂B +ijGetkeyM->List 1 + [EXE][F1]𓯎ꍇA {79,31}Ԃ܂B + +SH3@ł̓͂肭ȂꍇGetkey1̑Getkey2gpĂB + +Exec TimeDsp LɂĂꍇA +EGetKey1/2s͎Ԍv͈ꎞ~܂Aݒɂ胊ZbgX^[gɂ邱Ƃo܂B +@ZbgAbv͈ȉ̐R}hŐݒł܂B +ij'#GetKeyC + @ftHǧv̈ꎞ~Ap[hłB +ij'#GetKeyR +@GetKey1/2sɌvZbgX^[g܂B + + +------------------------------------------------------------------------------- +Try`Except`TryEnd [SHIFT]+[VARS](PRGM)-[F2](CONTROL)-[F6]-[F3](Try) + iVer 2.00ȍ~j +------------------------------------------------------------------------------- +ijG[̔ɉOo܂B +ijTry vO +ijExcept G[R[hP + G|P̏ꍇ̏ +ijExcept G[R[hQ + G|Q̏ꍇ̏ +ijTryEnd +@vOɃG[TryEndɏڂ܂B +@G[PꍇAG|P̏ꍇ̏sATryEndɏڂ܂B +@G[QꍇAG|Q̏ꍇ̏sATryEndɏڂ܂B +@G[RꍇAΉExcept̂ŁAG[|bvAbvo܂B + +ijExcept +@̂ȂExceptׂ͂ẴG[ɑΉ܂B + +ijTry 3*4+ +@@@Except 1 +@@@"Syntax Error" +@@@TryEnd +@h3*4+h@ԈႦĂ̂SyntaxError̔ԍ1ɑΉ"Syntax Error"s܂B + +ijTry 3*4/0 +@@@Except 1 +@@@"Syntax Error" +@@@Except 40 +@@@"Divide by Zero" +@@@TryEnd +@h3*4/0h0ł̏ZG[40ɑΉ"Divide by Zero"s܂B + +ijTry 3*4/0 +@@@Except 1 +@@@"Syntax Error" +@@@Except +@@@"Error" +@@@TryEnd +@G[ɑΉExceptȂꍇ́ÂȂExceptׂ͂ẴG[ɑΉ̂"Error"s܂B + +TvvOCBasic_sample/Try_Exceptɂ܂B +G[R[hErrorCode_List.txtQƂĂB + + +------------------------------------------------------------------------------- +Version [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F5](Version) + iVer 1.74ȍ~j +------------------------------------------------------------------------------- +ij݂C.Basic̃o[W3̐ŕԂ܂B +ijVersion + ݂̃o[W1.82̏ꍇA182Ԃ܂B + + +------------------------------------------------------------------------------- +System( [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F6]-[F4](System) +------------------------------------------------------------------------------- +ijSysCallł͎擾邱ƂoȂC.BasicƎ̓l擾܂B +@́A +@0:o[W@VersionR}hƓ +@1:VRAMAhX@ij1KB +@2:eLXgVRAMAhX iC.Basicj1KB +@3:OtBbNVRAMAhX iC.Basicj1KB +@10:Nbv{[hobt@ iC.Basic)@32KB +@-2:OS̃o[W3̐liOS 3.10Ȃ310j +@-1:@픻 + 9860G:0 9860G Slim:1 9860GII(SH3):2 9860GII(SH4A):3 Graph 35+EII:4 + + +=============================================================================== +R}ht@X@gOtBbNR}h +=============================================================================== +fx-9860GV[Ỷʂ̎W +(0,0)-(127,63)LłA +݊AяnR}hł +(1,1)-(127,63)͈̔͂`ΏۂłBiWnj + +MonochlomeLibrarynR}hł +(0,0)-(127,63)S悪LłBiMLWnj + +=============================================================================== +eLXgnAOtBbNn\R}hɂ +R}h̒[]ƃeLXg[hуOtBbN[hɊ֌WȂ݂VRAM`ΏۂƂȂ܂B +------------------------------------------------------------------------------- +ijLocate 2,2,"String" +@@@Text @16,1,"TextString" +@TextR}h݂͌VRAMieLXgVRAMjɕ`悵܂B + +------------------------------------------------------------------------------- +R}h̋؂肪[F]Ȑꍇ͉ʍXV}܂B +`挋ʂLCD\ɂPutoDispDD̓]R}hgpĉB +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +Line [SHIFT]-[F4](SKTCH)-[F6]-[F2](LINE)-[F1](Line) +F-Line [SHIFT]-[F4](SKTCH)-[F6]-[F2](LINE)-[F2](F-Line) +Circle [SHIFT]-[F4](SKTCH)-[F6]-[F3](Circle) +Vertical [SHIFT]-[F4](SKTCH)-[F6]-[F4](Vertical) +Horizontal [SHIFT]-[F4](SKTCH)-[F6]-[F5](Horz) +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) +FillRect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F2](FillRect) + @ iWnj +------------------------------------------------------------------------------- +R}h̖[,C]Ə܂B[,X]Ŕ]܂B +@ijFLine 1,1,30,20,X + + +------------------------------------------------------------------------------- +Text [SHIFT]-[F4](SKTCH)-[F6]-[F6]-[F2](Text) + iWnj +------------------------------------------------------------------------------- +ij@R}h̍Ō[,R]Ŕ]\A[,O]Or\A[,V]Ŕ]Or\o܂B +@[.N] Normal +@[.R] Reverse +@[,O] Or +@[,V] reVerse or +ijText 20,80,"Test",R +@@"Test"OtBbNW(80,20)ɔ]\ŕ\܂B + +------------------------------------------------------------------------------- +LocateYX [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F3](LocateYX) + iMLWnj +------------------------------------------------------------------------------- +ijOtBbNʂLocateƓTCY̕\o܂B +@@@@WwTextR}hƓYWɂȂ܂B +@@@@R}h̍Ō[,R]Ŕ]\ƂȂ܂B +ijLocateYX 20,80,"Test",R +@@"Test"OtBbNW(80,20)ɔ]\ŕ\܂B + +------------------------------------------------------------------------------- +Rect [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F1](Rect) + iWnj +------------------------------------------------------------------------------- +ij`\܂BW͎WwƂȂ܂B +ijRect 1,1,127,63 +@@ʂςɘg`܂B + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) + iMLWnj +------------------------------------------------------------------------------- +ijh‚Ԃ`\܂B +ijFillRect 1,1,127,63 +@@ʂhׂ܂B + +------------------------------------------------------------------------------- +ReadGraph( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F3](ReadGraph) + iMLWnj +------------------------------------------------------------------------------- +ijOtBbNʂ̃rbg}bvf[^rbgPʂœǂݎ܂B +ijReadGraph(px1,py1,px2,py2)Mat A +@@OtBbNʂ(px1,py1)-(px2,py2)͈̔͂Mat AsɎ荞݂܂B +@@s͎OɊmۂĂKv͂܂BIɓK؂ȍsTCYŊmۂ܂B +@@š^w肪ꍇ͂Prbg^ɂȂ܂B +@@WriteGraphR}hł̂܂܎gf[^ƂȂ܂B + +------------------------------------------------------------------------------- +WriteGraph [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F4](WriteGraph) + iMLWnj +------------------------------------------------------------------------------- +ijrbg}bvf[^\܂B +@@@@rbg}bvf[^͗\Matsɓ͂Ă܂B +iPjWriteGraph x,y,dx,dy,Mat A ,P1[,P2] +@@OtBbNʂ̍W(x,y)蕝dxAdy͈̔͂Mat Ãf[^`悵܂B +@@P1̓f[^̕\OHw[,N]ł̂܂܉HA[,R]Ŕ]A[,M]ŃbVHA +@@P2͎w薳ŃI[o[Cg\A[,A]And\A[,O]Or\A[,X]Xor\ƂȂ܂B +ij[[1,2,4,8,16,32,64,128]]Mat A +@@WriteGraph 80,20, 8,8, Mat A, N +@@OtBbNʂ̍W(80,20)΂߂̐[/]`悳܂B + +iQjWriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2] +@@OtBbNʂ̍W(x,y)蕝dxAdy͈̔͂Mat A[m,n]̃f[^`悵܂B +ij[[16,32,64,128][128,64,32,16]]Mat A +@@WriteGraph 80,20, 4,4, Mat A[1,1], N +@@WriteGraph 80,24, 4,4, Mat A[2,1], N +@@OtBbNʂ̍W(80,20)[<]̐}``悳܂B + +@@WriteGraph 80,20, 4,8, Mat A, N +@@łʂƂȂ܂B + +@rbg}bvf[^8rbgPʂōオɂȂ܂B + + +------------------------------------------------------------------------------- +DotGet( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F1](DotGet) + @@@@iMLWnj +------------------------------------------------------------------------------- +ijDotGet( px1,py1, px2,py2)Mat A[x,y] +@@ʏ(px1,py1)-(px2,py2)͈̔͂Mat A[x,y]n_ƂĎ荞݂܂B +@@w͈͂s񂪑Ȃꍇ͍sTCY܂Ŏ荞݂܂B + +------------------------------------------------------------------------------- +DotPut( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F2](DotPut) + @@@@@@@@iMLWnj +------------------------------------------------------------------------------- +ijDotPut( Mat A, x,y, px1,py1, px2,py2) +@@Mat As(x,y)̗vfn_ƂāAʏ(px1,py1)-(px2,py2)͈̔͂ɓ_ł܂B + +ijDotPut( Mat A[x,y], x1,y1, x2,y2)Mat B +@@Mat As[x,y]n_ƂāAMat B[x1,y1]-[x2,y2]͈̔͂ɃRs[܂B +@@Mat BRs[͈͂܂LmۂĂȂꍇ́AMat BɎ܂͈͂ŃRs[܂B +@@OtBbNʂւ̓]͍s܂B + +ijDotPut( Mat A[x,y], x1,y1, x2,y2) +@@Mat As(x,y)̗vfn_ƂāAʏ(px1,py1)-(px2,py2)͈̔͂ɓ_ł܂B + +------------------------------------------------------------------------------- +DotTrim( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F3](DotTrim) + @@@@iMLWnj +------------------------------------------------------------------------------- +ijDotTrim(Mat A, x1,y1,x2,y2)Mat B + Mats[X1,y1]-[x2,y2]͈͂0ł͂Ȃf[^̋`̈g~OMat BsɃRs[܂B + Rs[s񂪊mۂĂȂꍇ͐VɊmۂ܂B +ijDotTrim(px1,py1,px2,py2)Mat A + OtBbNʂg~ÓA + OtBbN(px1,py1)-(px2,py2)͈̔͂̃hbgłĂ`̈Mat AsɃRs[܂B + ǂ̏ꍇA`̈TCYiMats̊mۃTCYjX,YϐɎIɓ܂B + 0ł͂Ȃf[^̋`̈̉EX,YW͏ϐx,yɎIɓ܂B + +------------------------------------------------------------------------------- +DotLife( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F4](DotLife) + @@@@iMLWnj +------------------------------------------------------------------------------- +ijCtQ[pR}hłB +ijDotLife( Mat A, x1,y1,x2,y2)Mat B +@Mat A̍W(x1,y1)-(x2,y2)͈̔͂CtQ[ZMat BɊi[܂B +@Mat AMat B͓TCY̍słKv܂B +@R}hs(x1,y1)-(x2,y2)͈̔͂ZLꍇA̋`͈͂}1̍WϐɎIɓ܂B +@ϐL : [W-1 +@ϐR : E[W+1 +@ϐT : [W-1 +@ϐB : [W+1 + +------------------------------------------------------------------------------- +CellSum( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F6]-[F6]-[F5](CellSum) + @@@@iMLWnj +------------------------------------------------------------------------------- +ijCtQ[pR}hłB +ijCellSum(Mat B[X,Y])C +@@Mat B[X,Y]8hbg̍vlvZ܂B + + + + +=============================================================================== +R}ht@X@g̑R}h +=============================================================================== +------------------------------------------------------------------------------- +KeyRow( +------------------------------------------------------------------------------- +ijL[}gNX̃L[XLʂԂ܂B + +@@@@ԂlΉrbgi2ij +@ @ bit6 bit5 bit4 bit3 bit2 bit1 +@ Row--------------------------------------Row +@@09@ F1 F2 F3 F4 F5 F6 09 +@@08@ SHIFT OPTN VARS MENU 08 +@@07@ ALPHA ^2 ^ EXIT 07 +@@06@ XTT log ln sin cos tan 06 +@@05@ ab/c F<>D ( ) , 05 +@@04@ 7 8 9 DEL 04 +@@03@ 4 5 6 x div 03 +@@02@ 1 2 3 + - 02 +@@01@ 0 . EXP (-) EXE 01 +@ Row--------------------------------------Row + +ijKeyRow(9) +@@F4F6𓯎ɉꍇ́Abit3bit11ɂȂAԂlƂĂ +@@2^3 + 2^1 = 10 Ԃ܂B + +------------------------------------------------------------------------------- +Ticks / % [VARS]-[F3](Extend)-[F1](Ticks) +------------------------------------------------------------------------------- +ij1/128s̃^C}[ϐłB +ij0Ticks + ^C}[܂BRTC͕ύX܂B +@^C}[1/128sɃJEgAbv32rbgJE^ŁA24ԂŌɖ߂܂B + ől24~60~60~128 -1 = 11059199ƂȂ܂B + +------------------------------------------------------------------------------- +Ticks% / %% @@(fx-9860GII-2iSH4Aڋ@̂ݎgpł܂j +------------------------------------------------------------------------------- +ij1/32768s̃^C}[ϐłB +ij0Ticks% + ^C}[܂BRTC͕ύX܂B +@^C}[1/32768sɃJEgAbv32rbgJE^łB + ől2^32-1 = 4294967295 = -1 ƂȂ܂B + +------------------------------------------------------------------------------- +TicksWait / %Wait +------------------------------------------------------------------------------- +ij1/128sPʂŎԑ҂܂B +@iTicksWaitR}h̘A킹ZłBj +ijTicksWait 128 +@1bԑ҂܂B +ijTicksWait -128 +@OTicksWaitR}hs1bԑ҂܂Bł1bzĂꍇ͑҂ԖŎ̏Ɉڂ܂B +ijTicksWait -4 +@OTicksWaitR}hs4/128b҂܂B[vɂ̃R}h‹Lq邾Ŗb32̃[v܂B + +------------------------------------------------------------------------------- +Ticks%Wait / %%Wait @@(fx-9860GII-2iSH4Aڋ@̂ݎgpł܂j +------------------------------------------------------------------------------- +ij1/32768sPʂŎԑ҂܂B +@iTicksWaitR}h̊Ԃ%݂܂Bj + +------------------------------------------------------------------------------- +DATE [VARS]-[F3](Extend)-[F3](DATE) +TIME [VARS]-[F3](Extend)-[F4](TIME) +------------------------------------------------------------------------------- +ijRTC̐ݒAǂݏos܂B^̕ϐłB +ij"2017/01/17"DATE +ijDATE +@2017/01/17 TUE +@ƕ\܂Bj͎vZ܂B + +ij"23:59:59"TIME +ijTIME +@23:59:59 +@ƕ\܂B + +------------------------------------------------------------------------------- +Disp [SHIFT]+[VARS](PRGM)-[F6]-[F2](DISPLAY)-[F6](Disp) +------------------------------------------------------------------------------- +ijꎞ~R}h(Disps)ƈႢꎞ~Ȃʕ\R}hłB +@@@@ʕ\ƂɈsXN[܂B +ijDisp +ijDisp A+B + +------------------------------------------------------------------------------- +BackLight [VARS]-[F3](Extend)-[F5](BackLight) +------------------------------------------------------------------------------- +ijobNCgR}h̐ݒAԂǂݏo܂BobNCgfx-9860GIÎݑΉƂȂ܂B +ijBacklight n +@n=0@obNCg +@n=1@obNCg_ +@n=2@obNCg] +ij+Backlight +@݂̃obNCg̏ԂԂ܂B +@̐擪Backlightꍇ̓G[ɂȂ܂B + +------------------------------------------------------------------------------- +RefrshCtrl [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F1](RefrshCtrl) +RefrshTime [SHIFT]+[MENU](SET UP)-[F6]-[F6]-[F6]-[F2](RefrshTime) +------------------------------------------------------------------------------- +Eʂ̃tbVR}hŐݒłRefrshCtrlRefrshTimeR}hlj܂B +ijRefrshCtrl +ijRefrshTime + +ijRefrshCtrl 0 +@tbVRg[BOff +ijRefrshCtrl 1 +@tbVRg[LBGrpiOtBbNX̂݁j[hɐݒ肵܂B +ijRefrshCtrl 2 +@ׂẴtbVRg[LBAlliOtBbNX+eLXgj[hɐݒ肵܂B + +ijRefrshTime 5 +@tbVRg[ݒ莞Ԃ5ɐݒ肵܂B +@5/128sʼnʍXVs܂B + +̒ŎgRefreshCtrlRefrshTimeR}hgƌ݂̒lԂ܂B +ij+RefrshCtrl +@݂̃tbVRg[lԂ܂B +@̐擪RefreshCtrlꍇ̓G[ɂȂ܂B + +------------------------------------------------------------------------------- +Screen [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F1](Screen) +------------------------------------------------------------------------------- +ijVRAMANZX̑ΏVRAMIAʃ[hύX܂B +i1jScreen +@eLXg/OtBbN̐؂ւ܂B +i2jScreen.T ܂Screen.t +@eLXgVRAMɐ؂ւAʃ[heLXg[hɕύXA +i3jScreen.G ܂Screen.g +@OtBbNVRAMɐ؂ւ܂B +i4jScreen +@̒l0̏ꍇ̓eLXg[hA1̏ꍇ̓OtBbN[hɐ؂ւ܂B + +@̒ScreenR}hgƃeLXgVRAM̏ꍇ0COtBbNVRAMł͂PԂ܂B +ij+Screen +@̐擪Screenꍇ̓G[ɂȂ܂B + +EʑŜ𔽓]܂B +ijScreen.R + +E_Wn畨W߂܂BʂListAnsɕԂ܂B +i) Screen#X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +i)Screen#1,1,-6.3,6.3,-3.1,3.1 +@@ListAns:{74,22} + +EWn_W߂܂BʂListAnsɕԂ܂B +i) Screen%X,Y[,Xmin][,Xmax][,Ymin][,Ymax] +i)Screen%74,22,-6.3,6.3,-3.1,3.1 +@@ListAns:{1,1} + +------------------------------------------------------------------------------- +PutDispDD [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F2](PutDispDD) +------------------------------------------------------------------------------- +ijIɉʍXV܂B +i1jPutDispDD + +------------------------------------------------------------------------------- +PopUpWin( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F5](PopUpWin) +------------------------------------------------------------------------------- +ij݂VRAMɃ|bvAbvEChEg`悵ʑޔ𕜋As܂B + ֐ƂĂ̎ɕύXɂȂ܂B̒łg܂B + +i1jPopUpWin( n ) n:16܂ +@s̃|bvAbv\܂B\݂̂łB +ijPopUpWin(3) + +Eexit@|bvAbvB +i2jPopUpWin(11,"bZ[W1s"[,"bZ[W2s"]) +@Ԃl͏1łBR}hIɉʂA܂B + [AC]̏ꍇ[AC]łA܂B + +EYes No@|bvAbvB +i3jPopUpWin(10,"bZ[W1s"[,"bZ[W2s"]) +@Ԃl[Yes]:1 [No]:0ƂȂ܂BR}hIɉʂA܂B + [F1][F6]ȊOɂA[EXE]YesA[AC][EXIT]NoƂȂ܂B + +Eʑޔ̂݁@|bvAbv܂B +i4jPopUpWin(0) + +Eޔʂ̕Â݁B +i5jPopUpWin(9) + +------------------------------------------------------------------------------- +FKeyMenu( [SHIFT]-[F4](SKTCH)-[F2](Extend)-[F4](FKeyMenu) +------------------------------------------------------------------------------- +ij݂VRAMOtBbNʂ̏ꍇ̓OtBbNʂɁA + ݂VRAMeLXgʂ̏ꍇɂ̓eLXgʂɃt@NVj[\A܂B + hhACRNow肵܂B + +ijFKeyMenu( n[`m], ""/ACRԍ [,C/M/N/R/I/S/U/L ] ) +@ 3Ԗڈȍ~̈͏ȗ”\łBȗꍇłh,"͕KvłB + +@3Ԗڂ̃IvV͏słB +@C:܂B +@M:}XN܂B +@m:g}XN܂B +@N:m[}ACRBiȗj +@R:EACR +@I:̂ȂACR +@S:lpg̔ACR +@U:1hbg㑤ɕ\B +@L:\͈͂E2hbgL܂B + +ijFKeyMenu(1,42) +@PԖڂ̃t@NVj[GAɍ̔ACREDIT`悳܂B + +ijFKeyMenu( 2,"ABCDE",R) +@2Ԃ߂̃t@NVj[GAɉĚACR"ABCDE"ƕ\܂B + +ijFKeyMenu(3`4,"longtest") +@3Ԃ߂4Ԃ߂̃t@NVj[GAɔACR"longtest"ƕ\܂B + +ijFKeyMenu( 4,"Mask",M) +@4Ԃ߂̃t@NVj[GAɃ}XNꂽACR\܂B + +ijFKeyMenu( 4,"Mask",MR) +@4Ԃ߂̃t@NVj[GAɃ}XNꂽACR\܂B + +ijFKeyMenu( 2,"",C) +@2Ԃ߂̃t@NVj[܂ + +ijFKeyMenu( 1`6,"",C) +@1Ԃ߂6Ԃ߂̃t@NVj[܂ + +------------------------------------------------------------------------------- +Save [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F2](Save) +Load( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F3](Load) +------------------------------------------------------------------------------- +ijs̃f[^ǂݏ܂B +ijSave "TEST",Mat A +ijLoad("TEST")Mat A +@Mat As̓eۑAǂݍ݂܂B +@t@C8܂ŁAgqȗꍇ[.bin]ƂȂ܂B +@AANZXł͍̂sf[^݂̂ƂȂ܂B +@ۑ`̓wb_AoCi[f[^̂܂܂̃f[^t@CƂȂ܂B + +ijSave "TEST",Mat A[5,1] +@Mat A[5,1]Ō܂ŕۑ܂B +ijLoad("TEST",16)Mat A[10,1] +@ۑꂽf[^16oCgڂ̃f[^Mat A[10,1]ɓǂݍ݂܂ + +------------------------------------------------------------------------------- +IsExist( [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F1](IsExist) +------------------------------------------------------------------------------- +ijw肳ꂽt@C݂Ȃꍇ0ԂlƂȂ܂Bt@C݂ꍇ̓t@CTCYԂlƂȂ܂B +ijIsExist("/ABC/TEST") +@"/ABC/TEST.bin"݂΃t@CTCYA݂Ȃ0ƂȂ܂B +@t@C8܂ŁAgqȗꍇ[.bin]ƂȂ܂B + +i2jt@CXg擾܂ +ijIsExist("*.gq")->t@C +@Mat AnsF*.gq̃t@CAnssɍ쐬܂B +@Xg̓At@xbgɃ\[g܂B +ijIsExist("*.bmp")->N +@$Mat Ans[3] +@Xg3Ԗڂ̃t@C\܂B +@NFt@CԂ܂B + + +------------------------------------------------------------------------------- +Delete [SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F6]-[F4](Delete) +------------------------------------------------------------------------------- +ijw肳ꂽt@C폜܂B +ijDelete "TEST.dat" +@"TEST.dat"݂΍폜܂B +ijDelete "TEST.dat",1 +@폜OɊmF܂B"TEST.dat"݂΍폜܂B +@t@C8܂ŁAgqȗꍇ[.bin]ƂȂ܂B + +------------------------------------------------------------------------------- +Alias [OPTN]-[F5](Extend)-[F1](Alias) + iv1.70dlύXj +------------------------------------------------------------------------------- +ijpP̕ϐ⃉xʖɒuēlɃANZXł悤ɂ܂B + ϐɂ32Asƃxɂ͂ꂼ16‚܂ł̃GCAX𗘗pł܂B + +i1jAlias uO̕ϐu̕ϐiꕶLN^[j + +ijAlias A +@@@+100 +@@AliasR}hśAϐAƂĎgpł܂B +@@̎̂AȂ̂ +@@A+100AƓłB + +ijAlias Mat A +@@@Mat [1]+100Mat [1] +@@AliasR}hśAMatϐAƂĎgpł܂B +@@̎̂AȂ̂ +@@Mat A[1]+100Mat A[1]ƓłB + +ijAlias Lbl A +@@Lbl +@@Goto +@@Gosub + + +i2jAlias uO̕ϐ_+8܂ł̉p +@@A_[o[n܂W܂łRȉpœlɃANZXł܂B + +ijAlial a=_abc_de +ijAlial Mat a=_abcXY +ij_abc_de+1->_abc_de +ijMat _abcXY[1,2]+1->Mat _abcXY[1,2] +@ϐa_abc_de\LŎg܂B +@sa_abcXY\LŎg܂B + +ijAlias Lbl A_Sub1 +@@Lbl _Sub1 +@@Goto _Sub1 +@@Gosub _Sub1 + +------------------------------------------------------------------------------- +Wait [VARS]-[F3](Extend)-[F2](Wait) +------------------------------------------------------------------------------- +ij̃EGCgăvO̎sXs[hx܂B +ijWait 100 +@EGCgl100ݒ肵܂B +@SH3@łSH4@łx̑xቺƂȂĂ܂B +@EGCglA10Ŗ1/2C100Oőx1/10ɂȂ܂Bixቺ̒x̓vOɂĈقȂ܂Bj + +------------------------------------------------------------------------------- +ListCmp( [OPTN]-[F1](LIST)-[F6]-[F6]-[F5](Cmp) +------------------------------------------------------------------------------- +ijXgur܂B""lj܂B +@XgƃXgAXgƒl̔rł܂B +ijListCmp({1,2,3},{1,2,3}) + @1Ԃ܂B +ij ListCmp({1,2,3},{1,3}) + @0Ԃ܂B +ij ListCmp({1,2,3},{1,3,2}) + @0Ԃ܂B +ij ListCmp({1,2,3},2) + @1Ԃ܂B +ij ListCmp({1,2,3},4) + @0Ԃ܂B + + + +=============================================================================== +R}ht@X@ngR}h +=============================================================================== +------------------------------------------------------------------------------- +StrLen( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F2](Len) +------------------------------------------------------------------------------- +@IvVŕ̎oCgTCYʂԂ܂B +ijStrLen(@"ABCDE") +ijStrLen(@Str1) + +------------------------------------------------------------------------------- +StrRepl( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F1](STR)-[F5](StrRepl) +------------------------------------------------------------------------------- +iju܂B +ijStrRepl(, , u [,Jnʒu]) +ijStrRepl("Hello World","World","Earth") -> "Hello Earth" +ijStrRepl("abcabc","ab","ff",3) = "abcffc" +ijStrRepl("abcabc","ab","ff") = "ffcffc" + +------------------------------------------------------------------------------- +StrChar( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](Char) +------------------------------------------------------------------------------- +ijJԂԂ܂B +ijStrChar("ABC",5) +@A"ABCABCABCABCABC"܂B + +------------------------------------------------------------------------------- +StrCenter( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F2](Center) +------------------------------------------------------------------------------- +ij^񒆂ɔzu܂B +igjStrCenter("",[,"ӂ𖄂߂LN^"]) +ij StrCenter("Test",8) +@A" Test "܂B +ij StrCenter("Test",8,"*") +@A"**Test**"܂B + +------------------------------------------------------------------------------- +Hex( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F4](Hex) +------------------------------------------------------------------------------- +ij16iɕϊ܂B +ijHex(12345)->Str 1 +@"3039"Str 1ɓ܂B +@lɖ߂́A +ij Exp("0X"+Str 1)->A + +------------------------------------------------------------------------------- +Bin( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F5](Bin) +------------------------------------------------------------------------------- +ij2iɕϊ܂B +ijBin(12345)->Str 1 +@"11000000111001"Str 1ɓ܂B +ijExp("0B"+Str 1)->A + +------------------------------------------------------------------------------- +StrBase( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F3](Base) +------------------------------------------------------------------------------- +ijCӂ̐iϊ܂B +i) StrBase(@Ni, ϊO̐iN, ϊ̐iM) + i͈̔͂2`64܂łłB + @@@gpLN^{ 0-9 A-Z a-z } + Ni̕񂩂Mi̕ɕϊ܂B +ij StrBase("579",15,12) -> "873" + StrBase("100",13,10) -> "169" + StrBase("123",16,3) -> "101210" + StrBase("43981",10,16) -> "ABCD" + StrBase("12A345AFZ",36,10) -> "2999794422815" + StrBase("AZaz",62,10) -> "2520113" + + +------------------------------------------------------------------------------- +StrSplit( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F1](Split) +------------------------------------------------------------------------------- +ijw蕶ŕMatAnsɕԂ܂B +ijStrSplit("","؂蕶"[,Jnʒu]) +@ʂMatAnsɕƂĕԂ܂B +ijStrSplit("123,4567,89",",") + @MatAnšʂ́A["123","4567","89"]ƂȂAX̗vfǂݏoɎ̂悤ɃANZXł܂B +@$Mat Ans[1]="123" +@$Mat Ans[2]="4567" +@$Mat Ans[3]="89" + + +------------------------------------------------------------------------------- +StrAsc( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F3](ExStr)-[F6]-[F6]-[F2](Asc) +------------------------------------------------------------------------------- +ij擪AsciiR[hԂ܂B +ijStrAsc("Ascii") +@擪'A'ASCIIR[h65(0x41)Ԃ܂B + +------------------------------------------------------------------------------- +StoCapt [OPTN]-[F6]-[F6]-[F5](CAPTURE)-[F1](Store) +RclCapt [OPTN]-[F6]-[F6]-[F5](CAPTURE)-[F2](Recall) +------------------------------------------------------------------------------- +ijCapturet@CXg[Wւ̓ǂݏ܂Bő99܂ł̃t@Cpł܂B +ijStoCapt 20 +ijRclCapt 20 + +@֘APictt@C̃t@CTCY2KB1KBɔ܂B + + +=============================================================================== +R}ht@X@g̑ +=============================================================================== + +uf/vȍ~̓Rgł͂ȂR}hƂĎs܂B +C.Basic쎞ɂ̂ݎsR}hLqł܂B + +ij'/TicksS +ij'/Ticks-ST +@Ԃv܂B + +------------------------------------------------------------------------------- +'# R}h +------------------------------------------------------------------------------- +RgŊeݒ肪o܂B + +'#CBasic +'#CBASIC +'#CBDBL +'#CBdbl +'#CBINT +'#CBint +'#CBCPLX +'#CBcplx +@샂[h؂ւ܂BׂĉpłB + +'#Break0 //@[AC]L[ +'#Break1 //@[AC]L[L@iftHgj +@[AC]L[ł̒fL؂ւ܂B + +'#Mat 0 //@s̃CfbNXJnl0ɂ܂B +'#Mat 1 //@s̃CfbNXJnl1ɂ܂BiftHgj + +'#GetKeyC //@GetKey1/2sɎԌvꎞ~AX^[g܂BiftHgj +'#GetKeyR //@GetKey1/2sɎԌvZbgX^[g܂B + +'#58 //fx-5800P݊o͂ɂȂ܂B +'#98 //fx-9860G/CGV[Y݊o͂ɂȂ܂BiftHgj + +Strϐ̎̂ƂȂMatsCӎw肷邱Ƃo܂B +ij'#Str A +@StrϐMat AƂĊmۂ܂B +@{20,256}Dim Mat A.B +@ƓłB +ij'#Str B,30,256 +@StrϐMat BƂ30A255oCg܂ʼn”\ȕϐƂĊmۂ܂B + +=============================================================================== + + + +=============================================================================== +R}ht@X@}V֘AR}h +=============================================================================== +C.Basicł̓SH3/SH4Ã}VvOsł܂B +ARɃANZXo郁͍sƂĊmۂGAƂȂĂ܂B +s̐擪AhXVarPtr()̓AhXZqŋ߂܂B +CꓯlɃAhXZqAԐډZqg܂B + +------------------------------------------------------------------------------- +SysCall( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F1](SysCall) +------------------------------------------------------------------------------- +ijOSŗpӂĂVXe[`Ăяo֐łB12܂łłB͏ȗł܂B +ijSysCall( VXeR[ԍ [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10][,11][,12] ) + +ijScreen.G +@@@SysCall( 0x763,1,8,127,63 )R + +@VXeR[0x763͉ʂɎlp``悷VXe[`łB +@1R4WX^A8R5WX^A127R6WX^A63R7WX^AVXeR[0x763ĂяoԂlRɓ܂B + +------------------------------------------------------------------------------- +Call( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F2](Call) +------------------------------------------------------------------------------- +ijCӂ̃AhX̃}VvOs֐łB͂S‚܂łłB͏ȗł܂B +ijCall(}VAhX [,1][,2][,3][,4] ) + +ijCall( 0x8802F000,A,B,C,D )R +@AR4WX^AAR5WX^AAR6WX^AAR7WX^A0x8802F000Ԓnɂ}VvOĂяoԂlRɓ܂B + +------------------------------------------------------------------------------- +Peek( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F4](Peek) +------------------------------------------------------------------------------- +ij̃f[^ǂݏo֐łB^w[.B][.W][.L][.F]ꍇ̓oCgǂݏołB + ԐډZqŒu邱Ƃo܂B +ijPeek( AhX )[.B][.W][.L][.F][.C] +ij( AhX )[.B][.W][.L][.F][.C] + +ijPeek(0x8802E000).BA% +ij*(0x8802E000).BA% +@0x8802E000Ԓn̓eoCg(1oCg)œǂݏoAϐAɑ܂B + +ijPeek(0x8802E000).WA% +ij*(0x8802E000).WA% +@0x8802E000Ԓn̓e[h(2oCg)œǂݏoAϐAɑ܂B + +ijPeek(0x8802E000).LA% +ij*(0x8802E000).LA% +@0x8802E000Ԓn̓eO[h(4oCg)œǂݏoAϐAɑ܂B + +ijPeek(0x8802E000).FA +ij*(0x8802E000).FA +@0x8802E000Ԓn̓e{x(8oCg)œǂݏoAϐAɑ܂B + +------------------------------------------------------------------------------- +Poke( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F3](Poke) +------------------------------------------------------------------------------- +ijɃf[^݂܂B^w[.B][.W][.L][.F]ꍇ̓oCg݂łB + ԐډZqŒu邱Ƃo܂B +i1jPoke( AhX )[.B][.W][.L][.F][.C] , f[^ +i1j( AhX )[.B][.W][.L][.F][.C] , f[^ +i2jf[^Poke( AhX )[.B][.W][.L][.F][.C] +i2jf[^( AhX )[.B][.W][.L][.F][.C] + +ijPoke(0x8802E000).B,A% +ijA%Poke(0x8802E000).B +ijA%*(0x8802E000).B +@ϐA̒lA0x8802E000ԒnɃoCg(1oCg)݂܂B + +ijPoke(0x8802E000).W,A% +ijA%Poke(0x8802E000).W +ijA%*(0x8802E000).W +@ϐA̒lA0x8802E000ԒnɃ[h(2oCg)݂܂B + +ijPoke(0x8802E000).L,A% +ijA%Poke(0x8802E000).L +ijA%*(0x8802E000).L +@ϐA̒lA0x8802E000ԒnɃO[h(4oCg)݂܂B + +ijPoke(0x8802E000).F,A + (jAPoke(0x8802E000).F + (jA*(0x8802E000).F +@ϐA̒lA0x8802E000Ԓnɔ{x(8oCg)݂܂B + +------------------------------------------------------------------------------- +VarPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F1](VarPtr) +------------------------------------------------------------------------------- +ijϐAs̃AhXԂ֐łB + AhXZqŒu邱Ƃo܂B +i1jVarPtr(ϐ) +i2j(ϐ) + +ijVarPtr(A%) +ij&A% +@ϐA̕ϐ̃AhXԂ܂B + +ijVarPtr(Mat A) +ij&Mat A +@sA̐擪AhXԂ܂B + +ijVarPtr(Mat A[20,10]) +ij&Mat A[20,10] +@sA[20,10]̒li[ĂAhXԂ܂B + +------------------------------------------------------------------------------- +ProgPtr( [SHIFT]+[VARS](PRGM)-[F6]-[F6]-[F5](EXEC)-[F6]-[F2](ProgPtr) +------------------------------------------------------------------------------- +ijvÕAhXԂ֐łB +ijProgPtr() +@݂̃vOi[ĂAhXԂ܂B + + + +=============================================================================== +R}ht@X@OtBbNCuR}h MonochromeLib +=============================================================================== +PierrotLL쐬̃OtBbNCuMonochromeLibɊÂR}hłB +̃R}h݂͌VRAMɍpAȊȌ؂܂B +Wn(0,0)-(127,63)ŒłB +\邽߂ɂPutDispDD_DispVRAMgLCD]Kv܂B +C.Basic̊gdl𗘗pĂ̂CasioBasic݊R}hƂ͎኱g肪Ⴂ܂B + + +Colorw͐F̎wł͂Ȃ`惂[h̎wƂȂĂ܂B + + Color:-1 `悵܂B + Color: 0 Fŕ`悵܂B + Color: 1 Fŕ`悵܂B + Color: 2 ݂̉ʐF𔽓]܂B + Color: 3 `FƔwiF̃`FbN͗lŕ`悵܂B + Color: 4 ɊÂmŕ`悵܂B + + Color̒l:10 11@@@12@@@13@@@14 i1hbg`j + Color̒l:20@@@21@@@22@@@23@@@24 i2x2hbg`) +@@@@@@@@@@@@@ +@@@@@ +ij_FillCircle 64,32,30,21 + +@Color̒lɂSw肵ꍇAColorɑp[^͍hbgƂȂm(0`1),(0`100)wł܂B +ij _Rectangle 0,0,127,63,0,0,4,0.5 +ij _Rectangle 0,0,127,63,0,0,4,%50 +@ʑŜ̊mŃ_ɍhbgŖ܂܂B +ij _Rectangle 0,0,127,63,0,0,4,0.1 +ij _Rectangle 0,0,127,63,0,0,4,%10 +@ʑŜ10̊mŃ_ɍhbgŖ܂܂B +ij_FillCircle 64,32,30,4,0.5 +ij_FillCircle 64,32,30,4,%50 + @~̓50̊mōhbgŖ߂܂B +ij _FillCircle #0,0,3,4,0.5 +ij _FillCircle #0,0,3,4,%50 +@~̓̊mŃ_ɍhbgŖ܂܂B + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +EMonochromeCuñR}h"#"tƘ_WŎgƂ̂ł܂B + support ML command, + _Point + _Pixel + _PixelTest( + _Line + _Rect + _Horizontal + _Vertical + _Circle + _FillCircle + _Elips + _FillElips + _ElipsInRct + _FElipsInRct + +() ViewWindow -6.3,6.3,0,-3.1,3.1,0 + Screen.G +_Circle #0.5,1.2,1.2,1 + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +_ClrVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F1](_ClrVram) +------------------------------------------------------------------------------- +ij݂VRAM܂B + +------------------------------------------------------------------------------- +_ClrScreen [SHIFT]-[F4](SKTCH)-[F3](ML)-[F2](_ClrScreen) +------------------------------------------------------------------------------- +ij݂LCDʂ܂B + +------------------------------------------------------------------------------- +_DispVram [SHIFT]-[F4](SKTCH)-[F3](ML)-[F3](_DispVram) +------------------------------------------------------------------------------- +ij݂VRAM̓eLCDʂɓ]܂B + +------------------------------------------------------------------------------- +_Pixel [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F1](_Pixel) +------------------------------------------------------------------------------- +ijVRAMɓ_`悵܂B +ij_Pixel X, Y, Color + +ij_Pixel 64, 32, 2 +@ʒ̓_𔽓]܂B + +------------------------------------------------------------------------------- +_Point [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F2](_Point) +------------------------------------------------------------------------------- +ijVRAMɎlp``悵܂B +ij_Point X, Y, Width, Color +@(X,Y)𒆐SWidth̎lp``悵܂B + +ij_Point 10, 10, 3, 1 + Rect 9,9,11,11ƓłB + +------------------------------------------------------------------------------- +_PixelTest( [SHIFT]-[F4](SKTCH)-[F3](ML)-[F4](_PixelTest) +------------------------------------------------------------------------------- +ijVRAM̈_̏ԂԂ܂B +ij_PixelTest(X,Yj + + Ԃl + -1 F͈͊O + 0 FF + 1 FF + +------------------------------------------------------------------------------- +_Line [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F3](_Line) +------------------------------------------------------------------------------- +ijVRAMɃC`悵܂B +ij_Line x1,y1,x2,y2,Color[,m][,] +ij_Line 0,0,127,63,1,,10 +@ʂ΂߂10hbg̑̒`܂B + +------------------------------------------------------------------------------- +_Horizontal [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F4](_Horizontal) +------------------------------------------------------------------------------- +ijVRAMɐ`悵܂B +ij_Horizontal Y, X1, X2, Color[,m] +@X1`X2͈̔͂YC`悵܂B + +------------------------------------------------------------------------------- +_Vertical [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F5](_Vertical) +------------------------------------------------------------------------------- +ijVRAMɐ`悵܂B +ij_Vertical X, Y1, Y2, Color[,m] +@Y1`Y2͈̔͂XC`悵܂B + +------------------------------------------------------------------------------- +_Rectangle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F1](_Rectangle) +------------------------------------------------------------------------------- +ijVRAMɎlp`悵܂B +ij_Rectangle X1, Y1, X2, Y2, border_width, border_color, Color[,m][,]px][,]SWX][,]SWY][,g嗦] +@(X1,Y1)-(X2,Y2)͈̔͂ŁAEborder_width̘gEFborder_colorŕ`悵Alp̓Colorœh‚Ԃ܂B + +ij_Rectangle 50, 20, 80, 40, 2, 1, -1 +@ʒɕQhbg̎lpg`悵܂B +ij_Rectangle 50, 20, 80, 40, 0, -1, 3 +@ʒɃ`FbJ[͗l̎lp`悵܂B + +------------------------------------------------------------------------------- +_Polygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F2](_Polygon) +------------------------------------------------------------------------------- +ijVRAMɑp``悵܂B +ij_Polygon XWintsւ̃|C^, YWintsւ̃|C^, _, Color[,m][,]px][,]SWX][,]SWY][,g嗦] + +ij +@[[60, 75, 70, 50, 45]]Mat X.L // ^wK{ + [[20, 30, 45, 45, 30]]Mat Y.L // ^wK{ + Screen.G + _ClrVRAM + _Polygon VarPtr(Mat X), VarPtr(Mat Y), 5, 1);@i܂́@_Polygon &Mat X, &Mat Y, 5, 1); + _DispVRAM i܂PutDispDDj + +@ʂɌ܊p``悵܂B + +------------------------------------------------------------------------------- +_FillPolygon [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F3](_FillPolygon) +------------------------------------------------------------------------------- +ijVRAMɑp``悵h‚Ԃ܂B +ij_FillPolygon XWintsւ̃|C^, YWintsւ̃|C^, _, Color[,m][,]px][,]SWX][,]SWY][,g嗦] + +------------------------------------------------------------------------------- +_Circle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F4](_Circle) +------------------------------------------------------------------------------- +ijVRAMɉ~`悵܂B +()_Circle x,y,radius,Color[,m][,width][,pxl][,pxIl][,_] +@(x,y)𒆐Sɔaradius̉~`悵܂B +ij _Circle 64,32,20,4,0.5,3 + 3x3dot50̊mŕ`悵܂B +ij _Circle 64,32,20,1,,3,0,90 + 3x3dotʼn~ʂ`悵܂B +ij_Circle 64,32,20,1,,,0,360,5 +@܊p``悵܂B +ij _Circle 64,32,20,1,,,20,380,5 +@Jnʒu炵܊p``悵܂B + +------------------------------------------------------------------------------- +_FillCircle [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F5](_FillCircle) +------------------------------------------------------------------------------- +ijVRAMɉ~`悵h‚Ԃ܂B +ij_FillCircle X, Y, R, Color[,m] +@(X,Y)𒆐SɔaR̉~`悵AColorœh‚Ԃ܂B + +------------------------------------------------------------------------------- +_Elips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F1](_Elips) +------------------------------------------------------------------------------- +ijVRAMɑȉ~`悵܂B +ij_Elips X, Y, Rwidth, Rheight, Color[,m] +@(X,Y)𒆐SɉrRwidthAcaRheight̑ȉ~]pxXĕ`悵AColorœh‚Ԃ܂B + +------------------------------------------------------------------------------- +_FillElips [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F2](_FillElips) +------------------------------------------------------------------------------- +ijVRAMɑȉ~`悵h‚Ԃ܂B +ij_FillElips X, Y, Rwidth, Rheight, Color[,m] [,]p(x)] +@(X,Y)𒆐SɉrRwidthAcaRheight̑ȉ~`悵AColorœh‚Ԃ܂B + +------------------------------------------------------------------------------- +_ElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F3](_ElipsInRct) +------------------------------------------------------------------------------- +ijVRAMɑȉ~`悵܂B +ij_ElipsInRct X1, Y1, X2, Y2, Color[,m] +@(X1,Y1)-(X2,Y2)͈̔͂ɓڂȉ~`悵܂B + +------------------------------------------------------------------------------- +_FElipsInRct [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F4](_FElipsInRct) +------------------------------------------------------------------------------- +ijVRAMɑȉ~`悵h‚Ԃ܂B +ij_FElipsInRct X1, Y1, X2, Y2, Color[,m] +@(X1,Y1)-(X2,Y2)͈̔͂ɓڂȉ~`悵AColorœh‚Ԃ܂B + +------------------------------------------------------------------------------- +_Hscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F1](_Hscroll) +------------------------------------------------------------------------------- +ijɃXN[܂B +ij_Hscroll XN[ [,x1,y1,x2,y2] +@nhbgXN[܂B +@+ʼnEA-ōɃXN[܂Bꂽ͔Αɏo܂B +ij_Hscroll 1,32,16,47,95 +@(32,16)-(47,95)̃GAEɃXN[܂B + +------------------------------------------------------------------------------- +_Vscroll [SHIFT]-[F4](SKTCH)-[F3](ML)-[F6]-[F6]-[F6]-[F6]-[F2](_Vscroll) +------------------------------------------------------------------------------- +ijɃXN[܂B +ij_Vscroll XN[ [,x1,y1,x2,y2] +@nhbgXN[܂B +@+ŁA-ŏɃXN[܂Bꂽ͔Αɏo܂B +ij_Vscroll -1,5,10,100,40 +@(5,10)-(100,40)̃GAɃXN[܂B + +------------------------------------------------------------------------------- +_Bmp [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F1](_Bmp) +------------------------------------------------------------------------------- +ijVRAMɃrbg}bvf[^`悵܂B +ij_Bmp rbg}bvintsւ̃|C^, X, Y, width, height [,O/A/X] [,C] +@s̃rbg}bvf[^A(X,Y)艡width@cheightŕ`悵܂B +@[.O] Or +@[.A] And +@[,X] Xor +@[,C] NbsOɕ`悵܂B +ij +@[[60, 126, 251, 253, 253, 255, 126, 60]]Mat B.B //@oCgs +@_Bmp VarPtr(Mat B), 8, 16, 4, 8, O, C + +ij +[[0,0,1,1,1,1,0,0] + [0,1,1,1,1,1,1,0] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,1,1,1,1,1,1] + [1,1,0,1,1,1,1,0] + [0,1,1,0,0,1,1,0] + [0,0,1,1,1,1,0,0]]->MatB.P //@1rbgs +@_Bmp VarPtr(Mat B), 8, 16, 8, 8, O + +------------------------------------------------------------------------------- +_Bmp8 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F2](_Bmp8) +------------------------------------------------------------------------------- +ijVRAM8x8̃rbg}bvf[^`悵܂B +ij_Bmp8 rbg}bvintsւ̃|C^, X, Y [,O/A/X] [,C] +@s8x8̃rbg}bvf[^A(X,Y)ɕ`悵܂B +ij +@[[60, 126, 251, 253, 253, 255, 126, 60]]Mat B.B //@oCgs +@_Bmp &Mat B, 8, 16, A + +------------------------------------------------------------------------------- +_Bmp16 [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F3](_Bmp16) +------------------------------------------------------------------------------- +ijVRAM16x16̃rbg}bvf[^`悵܂B +ij_Bmp16 rbg}bvintsւ̃|C^, X, Y [,O/A/X] [,C] +@s16x16̃rbg}bvf[^A(X,Y)ɕ`悵܂B + +------------------------------------------------------------------------------- +BmpLoad( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F1](BmpLoad) +BmpSave [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F2](BmpSave) +------------------------------------------------------------------------------- +EBMP`̓ǂݏł܂Bi1rbgmN̂݁j +ijBmpLoad("BMPt@C"),X,Y + @(X,Y)Wn_Ƃă[h܂B +ijBmpSave "BMPt@C"),x1,y1,x2,y2 + @(x1,y1)-(x2,y2)͈̔͂bmpt@CƂăZ[u܂B + +ijBmpSave "TEST",10,20,100,60 +i10C20jWi100,60jW܂ł͈̔͂1rbgBMPt@C"TEST.bmp"ƂăZ[u܂B +@w”\ȍWl(0,0)-(127,63)͈̔͂łB + +ijBmpLoad("TEST")->Mat A +@"TEST.bmp"̃f[^sAɓǂݍ݂܂B + +ijBmpSave "TEST",Mat A +@sÃf[^BMP`"TEST.bmp"ɕۑ܂B + +------------------------------------------------------------------------------- +DrawMat [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F3](DrawMat) +------------------------------------------------------------------------------- + ijDrawMat Mat A[px,py], x, y, width, height [,g啝][,cg啝][,color][,m] + ij DrawMat Mat A, 0, 0, 128, 64 + ij DrawMat Mat A[10,5], 0, 0, 40, 30, %150, %250 , 4, %50 +s̎wŁVartPtr͕Kv܂B + +------------------------------------------------------------------------------- +_BmpZoom [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F4](_BmpZoom) +_BmpRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F5](_BmpRotate) +_BmpZmRotate [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F4](_BmpZmRotate) +------------------------------------------------------------------------------- +iPlanet-CasioNinestarsMonochromeCuɋ@\ljvO𗘗pĒĂ܂Bj +ij_BmpZoom &Mat , x, y, width, height [,g啝] [,cg啝] [,color][,m] +ij_BmpRotate &Mat , x, y, width, height, ]p(x) [,color][,m] +ij_BmpZoomRotate &Mat , x, y, width, height [,g啝] [,cg啝] [,]p(x)] [,color][,m] +ij_BmpZoom &Mat A, 0, 0, 20, 10, 1.5, 2.5 +ij_BmpZoom &Mat A, 0, 0, 20, 10, %150, %250 , 4, %50 +ij_BmpRotate &Mat A, 0, 0, 20, 10, 45 +ij_BmpZoomRotate &Mat A, 0, 0, 20, 10, 1.5, 2.5, 90 +ij_BmpZoomRotate &Mat A, 0, 0, 20, 10, %150, %250 , 15, 4, %50 + +------------------------------------------------------------------------------- +_Test [SHIFT]-[F4](SKTCH)-[F3](ML)-[F5](_Test) +------------------------------------------------------------------------------- +MonochromeCunR}hɐ}`̓̍hbgJEg"_Test"R}hIvVlj܂B + +iT|[gR}hj_Point _Line _Rectangle _Circle _Polygon +@T|[gR}h̑O"_Test"tƋ@\܂B + +ij_Test_Rectangle 0,0,127,63 +@(0,0)-(127,63)GAɂ鍕hbg̐Ԃ܂B +ij_Test_Circle 62,32,20 +ij_Test_Point 10,10,5 +ij_Test_Line 10,10,100,30 + + + +===============================================================================i1.70ȍ~j +tHg̊gɂ‚ +=============================================================================== +ASCIIƁiJi+OjŊOtHgg܂B + +łtHgASCIIR[hA0x20`0x7E +Ji܂ފOGAƂāA0xFF80`0xFFDF +݂̂łB + +@JgtH_AFonttH_ɂ +@ȉ̃tHgt@Ct@CXgXVɓǂݍ݃tHg؂ւ܂B +@̃t@C΃ftHg̓tHgɂȂ܂B +@@FONTA8L.bmp@iASCIIWtHgj +@@FONTA6M.bmp@iASCII~jtHgj +@@FONTG8L.bmp@iOWtHgj +@@FONTG6M.bmp@iO~jtHgj +@@FONTK8L.bmp@iJiWtHgj +@@FONTK6M.bmp@iJi~jtHgj + +@̃ftHgOtHg͈ȉ̂ƂłB +@@FONTK8L0.bmp@J^JitHgiWj +@@FONTK6M0.bmp@J^JitHgi~jj +@@FONTK8L1.bmp@Ђ炪ȃtHgiWj +@@FONTK6M1.bmp@Ђ炪ȃtHgi~jj +@@FONTG8L0.bmp@OTvtHgiWj +@@FONTG6M0.bmp@OTvtHgi~jj + +̃tHgJgtH_ɒuāA +BmpLoad(@K1) +Ƃ΁Aȍ~̃vOsł͂Ђ炪ȃtHgɐ؂ւ܂B +BmpLoad(@K0) +ŃJitHgɂȂ܂B + +------------------------------------------------------------------------------- +GetFont( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F1](GetFont) +GetFontMini( [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F3](GetFontMini) +------------------------------------------------------------------------------- +ijtHgf[^ǂݏo܂B +i1jGetFont(tHgR[h)->Mat A +i1jGetFontMini(tHgR[h)->Mat A +ijGetFont(0x41)->Mat A +@tHg"A"̃rbg}bvf[^(6x8)1rbgsMat A[6,8]ɓ͂܂B +ijGetFontMini(0xFF80)->Mat A +@O~jtHg̈Ԗڂ̃rbg}bvf[^(6x6)1rbgsMat A[6,6]ɓ͂܂B + +i2jGetFont(htHgLh)->Mat A +i2jGetFontMini(htHgLh)->Mat A +ijGetFont("A")->Mat A +@tHg"A"̃rbg}bvf[^(6x8)1rbgsMat A[6,8]ɓ͂܂B +ijGetFontMini("A")->Mat B +@~jtHg"A"̂̃rbg}bvf[^(4x6)1rbgsMat B[4,6]ɓ͂܂B + +i3jGetFont(@tHgR[h)->Mat A +i3jGetFontMini(@tHgR[h)->Mat A +i4jGetFont(@htHgLh)->Mat A +i4jGetFontMini(@htHgLh)->Mat A +ijGetFont(@0x41)->Mat A +ijGetFont(@"A")->Mat A +@tHg"A"̃rbg}bvf[^(6x8)1rbgsMat A[6,8]ɓ͂܂B + +ij݂̊OtHg󋵂ǂݏo܂B +ijGetFont() +ijGetMiniFont() +@Ԃl͐lbit2OJi Abit1OO Abit0OAsciitHgƂȂ܂B +ijWTCY̊OJitHĝݓĂꍇB +@GetFont()4Ԃ܂B +@GetMiniFont()0Ԃ܂B +ij~jtHgAsciitHgƊOtHĝݓĂꍇB +@GetFont()0Ԃ܂B +@GetMiniFont()3Ԃ܂B + +------------------------------------------------------------------------------- +SetFont [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F2](SetFont) +SetFontMini [SHIFT]-[F4](SKTCH)-[F4](BMP)-[F6]-[F6]-[F4](SetFontMini) +------------------------------------------------------------------------------- +ijtHgf[^ݒ肵܂B +i1jSetFont@tHgR[h,Mat A +i1jSetFontMini@tHgR[h,Mat A +ijSetFont 0xFF80,Mat A +@Mat ÃtHgf[^OtHg̈Ԗڂ̂̃f[^ƂĐݒ肳܂B +ijSetFontMini 0xFF80,Mat A +@Mat ÃtHgf[^O~jtHg̈Ԗڂ̃f[^ƂĐݒ肳܂B + +i2jSetFont@htHgLh,Mat A +i2jSetFontMini@htHgLh,Mat A +ijSetFont "@",Mat A +@Mat ÃtHgf[^tHg"@"̃f[^ƂĐݒ肳܂B +ijSetFontMini "@",Mat B +@Mat B̃tHgf[^~jtHg"@"̃f[^ƂĐݒ肳܂B +iwłtHgR[h/tHgLASCIIAO܂̓JitHĝ݉”\łBj + +@OtHggpȂ悤ɐݒo܂B +iZbgAbvEnableExFontOnɂ󋵂Őݒ肪LɂȂ܂Bj +iZbgAbvEnableExFontOffɂĂ󋵂łOff̂܂܂ŗLɂ͂Ȃ܂Bj +ijSetFont 0 +@̃R}hȍ~AOtHggpoȂȂ܂B +ijSetFont 1 +@̃R}hȍ~AOtHggpł悤ɂȂ܂B + +------------------------------------------------------------------------------- +BmpLoad(@A +BmpLoad(@AL +BmpLoad(@AM +BmpLoad(@G +BmpLoad(@GL +BmpLoad(@GM +BmpLoad(@K +BmpLoad(@KL +BmpLoad(@KM +------------------------------------------------------------------------------- +ijtHgf[^BMPt@Cǂݍ݂܂B +ijBmpLoad(@G[tHgt@Cԍ]) +ijBmpLoad(@K[tHgt@Cԍ]) +ijBmpLoad(@A[tHgt@Cԍ]) +@tHgt@Cԍ0`9wł܂B +ijBmpLoad(@A1) +@FONTA8L1.bmp@iASCIIWtHgj +@FONTA6M1.bmp@iASCII~jtHgj +@̃tHgt@COASCIItHgƂēǂݍ܂܂B + +ijBmpLoad(@GM[tHgt@Cԍ]) +ijBmpLoad(@GL[tHgt@Cԍ]) +ijBmpLoad(@KL[tHgt@Cԍ]) +ijBmpLoad(@KM[tHgt@Cԍ]) +ijBmpLoad(@AL[tHgt@Cԍ]) +ijBmpLoad(@AM[tHgt@Cԍ]) +ijBmpLoad(@AL2) +@FONTA8L2.bmp@iASCIIWtHgj +@̃tHgt@COASCIIWtHgƂēǂݍ܂܂B +ijBmpLoad(@AM2) +@FONTA6M1.bmp@iASCII~jtHgj +@̃tHgt@COASCII~jtHgƂēǂݍ܂܂B + +ijBmpLoad(@GL"t@C") +ijBmpLoad(@GM"t@C") +ijBmpLoad(@KL"t@C") +ijBmpLoad(@KM"t@C") +ijBmpLoad(@AL"t@C") +ijBmpLoad(@AM"t@C") +ijBmpLoad(@GL"MYFONTL") +@MYFONTL.bmpOWtHgƂēǂݍ܂܂B +ijBmpLoad(@GM"MYFONTM") +@MYFONTM.bmpO~jtHgƂēǂݍ܂܂B + +------------------------------------------------------------------------------- +BmpSave @A +BmpSave @AL +BmpSave @AM +BmpSave @G +BmpSave @GL +BmpSave @GM +BmpSave @K +BmpSave @KL +BmpSave @KM +------------------------------------------------------------------------------- +ijtHgf[^BMPt@Cɏo͂܂B +ijBmpSave @G[tHgt@Cԍ] +@JgtH_ɊOtHgiWA~jjZ[u܂B +@t@CFONTG8L.bmp@iWj +@t@CFONTG6M.bmp@i~jj +ijBmpSave @K[tHgt@Cԍ] +@JgtH_ɃJitHgiWA~jjZ[u܂B +@t@CFONTK8L.bmp@iWj +@t@CFONTK6M.bmp@i~jj +ijBmpSave @A[tHgt@Cԍ] +@JgtH_ASCIItHgiWA~jjZ[u܂B +@t@CFONTA8L.bmp@iWj +@t@CFONTA6M.bmp@i~jj +ijBmpSave @@K +@FonttH_ɃZ[u܂B + +ijBmpSave @GL[tHgt@Cԍ] +ijBmpSave @GM[tHgt@Cԍ] +ijBmpSave @KL[tHgt@Cԍ] +ijBmpSave @KM[tHgt@Cԍ] +ijBmpSave @AL[tHgt@Cԍ] +ijBmpSave @AM[tHgt@Cԍ] +ijBmpSave @GL2 +@FONTG8L2.bmp@iOWtHgj +@݂̊OWtHgt@COtHg2ƂăZ[u܂B +ijBmpSave @GM3 +@FONTG6M3.bmp@iO~jtHgj +@݂̊O~jtHgt@COtHg3ƂăZ[u܂B + +ijBmpSave @GL"t@C" +ijBmpSave @GM"t@C" +ijBmpSave @KL"t@C" +ijBmpSave @KM"t@C" +ijBmpSave @AL"t@C" +ijBmpSave @AM"t@C" +ijBmpSave @GL"MYFONTL" +@݂̊OWtHg"MYFONTL.bmp"ƂăZ[u܂B +ijBmpSave @GM"MYFONTM" +@݂̊O~jtHg"MYFONTM.bmp"ƂăZ[u܂B + + + +=============================================================================== +VAʐMR}hiƓR}hłƂ̌݊͂܂Bj +=============================================================================== +ijSend( ϐ[,{[[g][,EXITL]) +ijRecv( ϐ[,{[[g][,EXITL]) +ijSend38K ϐ[,]oCg] +ijReceive38k ϐ[,]oCg] +ijOpneComport38K[,{[[g][,][h][,EXITL] +ijCloseComport38K +]łf[^͕ϐAsAXgƂȂ܂B +]Ɠ]Ńf[^̌^킹Kv܂B +Send38K/Receive38kOpneComport38Kɂ[][h]0w肷ƃoCif[^̓]ɂȂ܂B +[{[[gl]F0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400(ftHg), 8=57600, 9=115200 baud +[][h] 0:oCi][h@@1:f[^`ʃ[hiftHgj +[EXITL] 0:@@1FL +Send(Recv(̓R}hPƂœ]o܂ASend38K/Receive38kOpneComport38K/CloseComport38KKvłB + +ijSend(A) +ijRecv(A) +ijSend(Mat A) +ijRecv(Mat A) + +ijOpneComport38K,9,0 +@@@Send38K List 1 +@@@CloseComport38K +ijOpneComport38K,9,0 +@@@Receive38k List 1 +@@@CloseComport38K + +------------------------------------------------------------------------------- +Beep@@iSH4A@̂݁j@@@@[SHIFT]+[VARS](PRGN)-[F6]-[F4](I/O)-[F6]-[F5](Beep) +------------------------------------------------------------------------------- +ijBeep@[g][Ap(ms)] +@3Pino͂wg̋`go͂܂B +ij Beep +@1KHz̋`g0.5bԁA3Pino͂܂B +ij Beep 440,1000 +@440Hz̋`g1bԁA3Pino͂܂B + + + +=============================================================================== +ZbgAbvł̐ݒ +=============================================================================== +Angle :Rad/Deg/Grad +Draw Type :Connect/Plot +Coord :on/off +Grid :on/off +Axes :on/off +Label :on/off +Derivative :on/off +Background :None/Pict1`20 +Sketch Line :Normal/Thick/Broken/Dot +----------------------------܂ŏCasioBasic݊ + +------------------------------------------------------------------------------- +Display :Fix/Sci/Nrm/Eng + ȉ̌15܂ŁB0w肵ꍇ16ƂȂ܂B + NrmɊւĂNrm1Nrm2̂CasioBasic݊10\dlłB + Nrm1F0.01ȉ͎w\ + Nrm2F0.000000001ȉ͎w\ + ȊO͌wƂȂ܂B + Eng FENGItAENGI(/E)A3؂(/3)̐؂ւƂȂ܂B + +E֘AR}h Eng,Norm,Fix,Sci,EngOn,EngOff + +------------------------------------------------------------------------------- +Syntax Help : On/Off + GfB^ŃR}h̃wv\̗L/ݒ肵܂B + +------------------------------------------------------------------------------- +SetupRecover : On/Off + łɃZbgAbvŐݒ肵ĂL̏CasioBasic݊ݒvOIɕA邩ǂݒ肵܂B + +------------------------------------------------------------------------------- +Command Input :C.Basic/Standard + R}h͕@C.Basic(fx-5800P)Standard(fx-9860G)Ił܂B + +E֘AR}h '#58 + '#98 + +------------------------------------------------------------------------------- +Max Mem Mode : on/off + gp”\ȍő僁g悤ɂ܂B + +------------------------------------------------------------------------------- +EnableExFont : on/off + OtHg̎gpݒ肵܂B + on̏ꍇ͈ȉ̃R}hLłB + +E֘AR}h SetFont 0 //@OtHg + SetFont 1 //@OtHgL + +------------------------------------------------------------------------------- +Edit ExtFont : On/Off + GfB^ŊOtHg\gp܂B + +------------------------------------------------------------------------------- +EditFontSize :Standard/Mini/MiniRev/Mini(undercursor)/MiniRev(undercursor) + \̑傫ύX܂B + +------------------------------------------------------------------------------- +HideStatLine :On/Off + ʂ̍ŏʈsڂ̃Xe[^XC\ɂăGfB^Ŏgp邩ǂIł܂B + +------------------------------------------------------------------------------- +Edit Indent+ : Off/1/2/4 Save- + Cfgݒ肵܂B + Off:@Cfggp܂B + 1F@@Cfg1ɐݒ肵܂B + 2F@@Cfg2ɐݒ肵܂B + 4F@@Cfg4ɐݒ肵܂B + Save-FۑɃCfg܂ރR}hԂ̋󔒂폜܂BiCasioBasic\[Xɕϊ܂Bj + +------------------------------------------------------------------------------- +Edit LineNum :On/Off + sԍ\I܂B + +------------------------------------------------------------------------------- +EditListChar :List / ]L / {[hL + ListMat\Zk\i1̔]ƃ{[hjɐ؂ւ܂B +------------------------------------------------------------------------------- +Use Hidden RAM :on/off + BRAMC.BasicŎgp邩ǂݒ肵܂Bifx-9860G͖ΉłBj + fx-9860GIIȍ~ł512KBRAMڂĂÂ256KB͖gp̈ƂȂĂ邽߂ɂvÖƍs̈Ƃėpł悤ɂ܂B + +------------------------------------------------------------------------------- +HiddenRAM@Init:on/off + BRAMgpɁAMats&ListC.BasicNɏ邩ǂݒ肵܂Bifx-9860G͖ΉłBj + Ȃꍇ́AMats&LisťʂȂŎc܂B + +------------------------------------------------------------------------------- +Max Pict No : 20 `99 + BRAMgpɁAPictt@C̏𑝂₹܂B + ݒύXPictMatListf[^܂B + +------------------------------------------------------------------------------- +Max List No : 54 `1040 + BRAMgpɁAList̏𑝂₹܂B + ݒύXPictMatListf[^܂B + +------------------------------------------------------------------------------- +AT DebugMode : on / off + [AC]ŒfɃfobO[h̗L/ݒ肵܂ + +------------------------------------------------------------------------------- +ExitDM Popup : on / off + fobO[h[EXIT]Ŕꍇ̊mFPopUpݒ肵܂B + +------------------------------------------------------------------------------- +Break Stop :on/off + [AC]L[ɂ钆f̗LB + off̏ꍇ[AC]L[ɂ钆fo܂B + +E֘AR}h '#Break0 //@[AC]L[ + '#Break1 //@[AC]L[L@iftHgj + +------------------------------------------------------------------------------- +Exec TimeDsp : on/off/on reset / %HR + vOIɃvO̎sԂ\܂B + vJn̓vO̍ŏ̍słArHR}hꎞ~R}hꍇ͂܂ł̌vԂ̓Zbg܂B + GetKey1/2̏ꍇ͌vꎞ~ɂȂAR}hsɍăX^[g܂B + on reset́AGetKey1/2sɌvZbgăX^[g܂B + %HR:v1/32768s^C}[g܂B(SH4A@݂̂łBj + +E֘AR}h '#GetKeyC //@GetKey1/2sɎԌvꎞ~AX^[g܂BiftHgj + '#GetKeyR //@GetKey1/2sɎԌvZbgX^[g܂B + +------------------------------------------------------------------------------- +IfEnd Check :on/off + IfIfEndΈőΉĂ邩ǂ`FbN܂B + +------------------------------------------------------------------------------- +ACBreak :on/off + ACBreakR}h̗L/؂ւ܂B + +E֘AR}h ACBreak + +------------------------------------------------------------------------------- +Force Return: None/ F1/ EXE/ F1&EXE + vOs̒fŃGfB^ɖ߂邩t@CXgɖ߂邩Ił܂B + ijForce Return: F1 ̏ꍇA + E t@CXg [F1](EXE) [AC] [EXIT] cc t@CXgʂɖ߂܂B + E t@CXg [EXE] [AC] [EXIT] cc GfB^ɖ߂܂B + E t@CXg [F1](EXE) [AC] [EXE](ĊJ) [AC] [EXIT] cc t@CXgʂɖ߂܂B + @@@@ (߂ɂǂ̃L[ɂē삪܂܂B) + +------------------------------------------------------------------------------- +Key 1st time:25ms`1000ms(ftHgl 500ms) + s[gJn܂ł̎ (25msP) +Key Rep time:25ms`500ms(ftHgl 125ms) + s[gp (25msP) + +------------------------------------------------------------------------------- +SkipUp/Down : 1`9999 + SkipUp/SkipDownł̈񕪂̉y[Ww肵܂B + sƂɈs_sł͂Ȃʏł̌ڏł̕słB + +------------------------------------------------------------------------------- +Mat Dsp mode:[m,n]/[X,Y] + sGfB^ʂł̕\`w肵܂B + ꂼ]us̊֌WɂȂ܂As͉ωȂ\ゾ̎włB +Matrix base :0/1 + sCfbNX̏l01w肵܂B + l0w肵ꍇ́AOtBbNW[(0,0)LɂȂ܂B + +E֘AR}h '#Mat 0 //@s̃CfbNXJnl0ɂ܂B + '#Mat 1 //@s̃CfbNXJnl1ɂ܂BiftHgj + +------------------------------------------------------------------------------- +DATE : 2017/01/17 MON +TIME : 23:59:59 + RTCݒ肵܂Bj͎ݒ肳܂B + +E֘AR}h DATEATIME + +------------------------------------------------------------------------------- +Root Folder : / iGraph 35+E II̋@\łBj + t@CANZX̊{ƂȂ郋[gtH_ݒ肵܂B + [F1]:Xg[W̃[gtH_ɐݒ肵܂B + [F2]:JgtH_Ȍニ[gtH_ɐݒ肵܂B + +E֘AR}h@'#R/ // Xg[W̃[gtH_ɐݒ肵܂B + '#R. // JgtH_[gtH_ɐݒ肵܂B + +------------------------------------------------------------------------------- +Auto file Save:on/off + ҏWAIɕۑ邩ǂݒ肵܂B + +------------------------------------------------------------------------------- +Force g1m save:on/off + eLXgt@CҏW^sɓg1m`łۑ邩ǂݒ肵܂B + +------------------------------------------------------------------------------- +Pict mode :S.Mem/Heap/Both/MainMem + (S.Mem/SD)@Pictt@CXg[W/SDɍ܂B኱Ԃ܂B + (Heap)@Pictt@CƂĂ͍쐬ꂸɃɌ݊t@C쐬܂B + (Both)@Heap[hłPictt@CɃXg[W/SDɍ쐬܂B + (Main)@CPICT݊dlłB + +------------------------------------------------------------------------------- +Storage mode :S.Mem/SD/MainMem + (S.Mem)@Xg[W̃t@Cs/ҏW܂B + (SD)@SD̃t@Cs/ҏW܂BiSDł̂ݎwj + (Main mem)@C(Main Memory)̃vOt@Cs/ҏW܂B + +------------------------------------------------------------------------------- +RefrshCtl DD:off/Grp/All + `R}hɂʂ̍XVݒł܂B + OffFtbVRg[B\ɂĂ͏݊dlłB + GrpFOtBbNR}ĥ݃tbVRg[LBClrText,Locate,Text,LocateYXAhh͖ňȑÕo[W݊łB + AllFׂĂ̕`R}htbVRg[ꂽ\ƂȂ܂BKvɉPutDispDDR}hK{ƂȂ܂B + TimeFtbVRg[Ԃݒ肵܂Bn/128bPʂʼnʍXV܂BftHg3Ŗ1/42bł̍XVƂȂĂ܂B + @@@0w肷ƃtbVȂȂ܂B + +E֘AR}h RefrshCtrl/RefrshTime + +------------------------------------------------------------------------------- +Wait count : 0`9999 + C.BasicŜ̎sx𒲐܂B + +E֘AR}h Wait + +------------------------------------------------------------------------------- +Execute mode:Dbl#/Int%/CPLX + ftHg̃vO̎s[h؂ւ܂B + +E֘AR}h '#CBasic + '#CBASIC + '#CBDBL + '#CBdbl + '#CBINT + '#CBint + '#CBCPLX + '#CBcplx + +=============================================================================== + diff --git a/doc-fx/Mat_Vct_List.txt b/doc-fx/Mat_Vct_List.txt new file mode 100644 index 0000000..15350e5 --- /dev/null +++ b/doc-fx/Mat_Vct_List.txt @@ -0,0 +1,175 @@ +------------------------------------------------------------ +Mat n Vct n List n + + 1: Mat A + 2: Mat B + 3: Mat C + 4: Mat D + 5: Mat E + 6: Mat F + 7: Mat G + 8: Mat H + 9: Mat I + 10: Mat J + 11: Mat K + 12: Mat L + 13: Mat M + 14: Mat N + 15: Mat O + 16: Mat P + 17: Mat Q + 18: Mat R + 19: Mat S + 20: Mat T + 21: Mat U + 22: Mat V + 23: Mat W + 24: Mat X + 25: Mat Y + 26: Mat Z + + Vct A + Vct B + Vct C + Vct D + Vct E + Vct F + Vct G + Vct H + Vct I + Vct J + Vct K + Vct L + Vct M + Vct N + Vct O + Vct P + Vct Q + Vct R + Vct S + Vct T + Vct U + Vct V + Vct W + Vct X + Vct Y + Vct Z + + List 1 + List 2 + List 3 + List 4 + List 5 + List 6 + List 7 + List 8 + List 9 + List 10 + List 11 + List 12 + List 13 + List 14 + List 15 + List 16 + List 17 + List 18 + List 19 + List 20 + List 21 + List 22 + List 23 + List 24 + List 25 + List 26 + + 27: Mat a Vct a List 27 + 28: Mat b Vct b List 28 + 29: Mat c Vct c List 29 + 30: Mat d Vct d List 30 + 31: Mat e Vct e List 31 + 32: Mat f Vct f List 32 + 33: Mat g Vct g List 33 + 34: Mat h Vct h List 34 + 35: Mat i Vct i List 35 + 36: Mat j Vct j List 36 + 37: Mat k Vct k List 37 + 38: Mat l Vct l List 38 + 39: Mat m Vct m List 39 + 40: Mat n Vct n List 40 + 41: Mat o Vct o List 41 + 42: Mat p Vct p List 42 + 43: Mat q Vct q List 43 + 44: Mat r Vct r List 44 + 45: Mat s Vct s List 45 + 46: Mat t Vct t List 46 + 47: Mat u Vct u List 47 + 48: Mat v Vct v List 48 + 49: Mat w Vct w List 49 + 50: Mat x Vct x List 50 + 51: Mat y Vct y List 51 + 52: Mat z Vct z List 52 + + 53: Mat 53 Vct 53 List 53 List 1: file 1 + 54: Mat 54 Vct 54 List 54 + 55: Mat 55 Vct 55 List 55 + 56: Mat 56 Vct 56 List 56 + 57: Mat 57 Vct 57 List 57 + 58: Mat 58 Vct 58 List 58 + 59: Mat 59 Vct 59 List 59 + 60: Mat 60 Vct 60 List 60 + 61: Mat 61 Vct 61 List 61 + 62: Mat 62 Vct 62 List 62 + 63: Mat 63 Vct 63 List 63 + 64: Mat 64 Vct 64 List 64 + 65: Mat 65 Vct 65 List 65 + 66: Mat 66 Vct 66 List 66 + 67: Mat 67 Vct 67 List 67 + 68: Mat 68 Vct 68 List 68 + 69: Mat 69 Vct 69 List 69 + 70: Mat 70 Vct 70 List 70 + 71: Mat 71 Vct 71 List 71 + 72: Mat 72 Vct 72 List 72 + 73: Mat 73 Vct 73 List 73 + 74: Mat 74 Vct 74 List 74 + 75: Mat 75 Vct 75 List 75 + 76: Mat 76 Vct 76 List 76 + 77: Mat 77 Vct 77 List 77 + 78: Mat 78 Vct 78 List 78 + + 79: Mat 79 Vct 79 List 79 List 1: file 2 + 80: Mat 80 Vct 80 List 80 + 81: Mat 81 Vct 81 List 81 + 82: Mat 82 Vct 82 List 82 + 83: Mat 83 Vct 83 List 83 + 84: Mat 84 Vct 84 List 84 + 85: Mat 85 Vct 85 List 85 + 86: Mat 86 Vct 86 List 86 + 87: Mat 87 Vct 87 List 87 + 88: Mat 88 Vct 88 List 88 + 89: Mat 89 Vct 89 List 89 + 90: Mat 90 Vct 90 List 90 + 91: Mat 91 Vct 91 List 91 + 92: Mat 92 Vct 92 List 92 + 93: Mat 93 Vct 93 List 93 + 94: Mat 94 Vct 94 List 94 + 95: Mat 95 Vct 95 List 95 + 96: Mat 96 Vct 96 List 96 + 97: Mat 97 Vct 97 List 97 + 98: Mat 98 Vct 98 List 98 + 99: Mat 99 Vct 99 List 99 +100: Mat 100 Vct 100 List 100 +101: Mat 101 Vct 101 List 101 +102: Mat 102 Vct 102 List 102 +103: Mat 103 Vct 103 List 103 +104: Mat 104 Vct 104 List 104 + +105: Mat 105 Vct 105 List 105 List 1: file 3 +106: Mat 106 Vct 106 List 106 +107: Mat 107 Vct 107 List 107 + +: Mat Vct List + : Mat Vct List +Ans: Mat Ans Vct Ans List Ans +------------------------------------------------------------ +Last edited by sentaro 2020/02/05(UTC) +------------------------------------------------------------ \ No newline at end of file diff --git a/doc-fx/README_EN.txt b/doc-fx/README_EN.txt new file mode 100644 index 0000000..f290c6c --- /dev/null +++ b/doc-fx/README_EN.txt @@ -0,0 +1,588 @@ +Please look at this site that made by Krtyski.(e-Gadget administrator) +http://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html +This site and following text is translated by Krtyski(e-Gadget administrator) & Lephenixnoir(Planet-Casio administrator). +Thanks very much for your support. + +=============================================================================== + +Add-In Casio Basic Interpreter (& Compiler) Ver. 2.x beta version + +Copyright(c)2015-2020 by sentaro21 +E-mail sentaro21@pm.matrix.jp + +Last updated by sentaro21/Krtyski/CalcLoverHK 10/02/2020 + +=============================================================================== + +**If you feel your Casio Basic programs are not running fast enough, C.Basic can free you of that frustration!** + +Get started with genuine Casio Basic programs, then enjoy extended commands that Casio Basic alone cannot perform. + +- Currently **C.Basic** (Basic interpreter) runs on fx-9860G(SH3), fx-9860GII(SH3), fx-9860GII(SH4A), and fx-CG10/20/50. +- **C.Basic** will evolve into a Casio Basic compiler "**C:Basic**", which will run programs much faster than C.Basic (10 times from the looks of it). + +All the instructions supported by C.Basic are listed in the "Command_List.txt" and "Manual_EN.txt" files included in the distribution package. + + +## Pros + +- C.Basic is mostly compatible with genuine Casio Basic. +- Programs run at least 10 times faster in C.Basic. +- C.Basic's List and File editors are easier to use than the usual ones. +- Can execute programs from storage memory/main memory, and supports sub-folder structures. +- Some Casio Basic commands are extended for more features. +- Newly-implemented commands for more powerful and flexible programming. + +## Cons + +- C.Basic does not cover all of the original Basic commands. +- Calculations don't yield the same results as the usual interpreter because C.Basic use double-precision floating point instead of fixed-point BCD. +- C.Basic stores PICT files in storage memory, hence using them is slower (at least until version 0.87 which uses the heap area from the main memory). +- There must be some bugs, unfortunately (; Please provide us with a bug report if you find any. + + +## Almost compatible with vanilla Casio Basic + +Flawless compatibility is our goal, but some differences are intentional: + +- `?` and `?->` input commands are displayed on a single line. Displaying a string longer than 21 characters will result in horizontal scroll instead of line wrap. +- When a graphing sketch commands is followed by the multi-statement command `:`, the screen is not refreshed. +- Program running time is displayed when the program ends. This function can be triggered in the setup page. +- Comment delimiters `'` are allowed before carriage returns and Disps (output), and `:` can be included in the comment string. + +C.Basic also takes in user-friendly features of fx-5800P: + +- C.Basic supports a `"?A"` command as fx-5800P, as opposed to fx-9860G / fx-9860GII which only support `"?->A"`. +- String output command `" "` is fully compatible with fx-5800P thus a but different from fx-9860G / fx-9860GII. See [Topic](http://egadget.blog.fc2.com/blog-entry-520.html) for details. + + +======= CAUTION !!! ======== +We don't believe that C.Basic could damage your calculator, but the main memory could still be unexpectedly damaged or destroyed, which would require a whole memory reset. Hence it is strongly recommended that you backup your main and storage memory data. Please be aware that you should only use C.Basic at your sole risk. +============================ + +======= Disclaimer of Warranty ======= +Use of C.Basic and C:Basic (hereinafter SOFTWARE) is at user's sole risk. All materials, information, products, software, programs and service provided as is・ with no warranties or guarantees whatsoever. Creators of SOFTWARE and support team who provide support documents, support web site, information and sample programs (hereinafter DEVELOPMENT TEAM) expressly disclaim to the fullest extent permitted by law, all express, implied, statutory, and other warranties, guarantees, or representations, including, without limitation, the warranties of merchantability, fitness for a particular purpose, and non-infringement of proprietary and intellectual property rights. Without limitation, DEVELOPMENT TEAM makes no warranty or guarantee that development of SOFTWARE will be uninterrupted, timely, secure, or error-free. +====================================== + + +------------------------------------------------------------------------------- +# Starting up C.Basic + +To start up **C.Basic**, press `[MENU]`, select the C.Basic icon, then press `[EXE]`. + +There are two ways for copying a program file (`g1m` file) developed for the original Casio Basic interpreter into the File List in C.Basic: + +## Using the pre-installed memory manager + +- To start up the memory manager, press `[MENU]`, select the memory manager icon and press `[EXE]`. +- Press `[F1]` to display the contents of the main memory. +- Move the cursor down to `` and press `[EXE]`. You should now be seeing the list of all Basic Casio programs currently installed for the usual interpreter. +- Select the program file that you want to copy. +- Press `[F1](SEL)` then `[F2](COPY)`. +- Select `"ROOT"`, press `[EXE]`; the calculator will ask you for a file name. +- Enter an appropriate file name or just `"A"`, then press `[EXE]`. +- Press the `[MENU]` key to go back to the main menu. +- Start C.Basic. +- In the File List select the name you just entered, press `[F6]` and then `[F2](REN)`. +- You will be prompted with `[Rename file Name?]`, and the original file name will be displayed (even though you typed in `"A"`). Press `[EXE]`. +- Now the file name has been corrected. + +## Using the PC link software (FA-124) + +FA-124 is a PC link software which is included in the packages of fx-9860G and fx-9860GII. For detailed instructions, please refer to its manual. + +Once you have downloaded a program's source file (`g1m` file), you can use the PC link software to copy it into C.Basic's File List. + + +================================================================================= +Quick Manual - Development Environment of C.Basic +================================================================================= + +--------------------------------------------------------------------------------- +File List Page +--------------------------------------------------------------------------------- +-[UP] Move cursor to the previous file. +-[DOWN] Move cursor ro the next file. +Pressing A to Z, cursor jumps to a file name which starts with the pressed alphabet. +This feature is fx-5800P compatible but not fx-9860G / fx-9860GII. +Press [.] key to jump to a file name which starts with "~". +Press [EXP(x10)]key to jump to top of folder list. + +-[F1] (EXE) Run selected file. +-[F2] (EDIT) Edit selected file. +-[F3] (NEW) Create new file. +-[F4] (COPY) Copy selected file. +-[F5] (DEL) Deleted selected file. +-[F6] ( > ) Move to next menu. + [F1] (>Txt) Convert selected source file (g1m file) to text file. + [F2] (REN) Rename file. + [F3] (Fav.) Set/Reset selected file to/from "Favorite". + [F4] (Fv.up) Move upward selected Favorite file. + [F5] (Fv.dw) Move downward selected Favorite file. + [F6] ( > ) Move to previous menu. + [F1] (MK.F) Make new Folder + [F2] (RN.F) Rename Folder + [F6] ( > ) Move to the first menu. + +-[EXE] Run the selected file. + +-[SHIFT]+ + [EXIT](QUIT) Move back to root from sub-folder. + [LEFT] Contrast(dw) (*internal function of OS) + [RIGHT] Contrast(up) (*internal function of OS) + [F1] (Var) Go to Variables Review Page. + [F2] (Mat) Go to Mat Variables Review Page. + [F3] (V-W) Go to ViewWindow setting value review page. + [F4] (Pass) Set/Reset pass word. + [F6] (Debg) Start Debug mode & open Editor page. + +-[VARS] (Variables Review Page) + [F1] (A<>a) Switch between display of capital and small letter variables. + [F2] (Init) Initialize all the displayed variables. + [F3] (D<>I) Siwitch between Integer and Double variables. + [F6] (>Hex/>Dec) Switch display of values between in Hex and Dec. + [SHIFT]+[UP]/[DOWN] Scroll single page up and down. + ※ Local variabe is marked with "=". + +-[SHIFT][MENU] (SETUP) Initial Settings + [MENU] Go to Setup page. + [MENU][F6] Pop up Version information. + +-[OPTN] Set/Reset selected file to/from "Favorite". + +-[EXIT] Move cursor back to first file in the list. + When cursor is at the first file in sub-folder, move back to root. + + +------------------------------------------------------------------------------- +Editor Page +------------------------------------------------------------------------------- +Guide marker displayed in very right of Editor Page indicates cursor position in source file. + +-[F1] (JUMP) Display JUMP Sub-menu. + [F1] (TOP) Jump to top line of source file. + [F2] (BTM) Jump to end line of source file. + [F3] (GOTO) Jump to a line where you want to go. + [F5] (SkipUp) Skip lines (preset # of line is available in Setup page) toward to top. + [F6] (SkipDw) Skip lines (preset # of line is available in Setup page) toward to end. + +-[F2] (SRC) Go to String Search / Replacement page. +-[F3] (CMD) Go to Command Select page. (this is like fx-5800P command list)(fx-5800P mode) + (MENU)) SelectCommand (fx-9860G mode) +-[F4] (A<>a) Switch between Capital and small letter. +-[F5] (CHAR) Go to Character Select page. +-[F6] (EXE) Run program or restart program when it's in pause. + +-[SHIFT]+ + [EXIT](QUIT) Go back to File List page. + [LEFT] Contrast(dw) (*internal function of OS) + [RIGHT] Contrast(up) (*internal function of OS) + [UP] Scroll 1 page (6 lines) up to top. + [DOWN] Scroll 1 page (6 lines) down to end. + [F1] (Var) Go to Variables page. + [F2] (Mat) Go to Mat Variables page. + [F3] (V-WIN) Go to ViewWindow page. + [F4] (SKTCH) Select Command. (fx-9860G mode) + (Dump)/(List) Switch between "Basic List" and "Hex Dump" display.(fx-5800P mode) + [F5] (Dump)/(List) Switch between "Basic List" and "Hex Dump" display. + [F6] (CHAR) Go to Character Select page. (fx-9860G mode) + (G<>T) Switch Graphics and Text screen.(fx-5800P mode) + + [3] Input keycode of Getkey command. + +-[OPTN] Pop up Command List supported by [OPTN] of fx-9860G/GII.(fx-5800P mode) + Select Command. (fx-9860G mode) + +-[VARS] Pop up Comamnd List supported by [VARS] of fx-9860G/GII.(fx-5800P mode) + Select Command. (fx-9860G mode) + +-[MENU] Command input history (chronological order/input frequency order is changed by right and left key.) + [AC/ON] Erase history + +-[SHIFT][VARS] (PRGM) Pop up Command List supported by [PRGM] of fx-9860G/GII. + +-[SHIFT][MENU] (SETUP) Go to Setup page.(fx-5800P mode) + (SETUP) Select Command. (fx-9860G mode) + +-[ALPH][DEL] (UNDO) Delete or Paste operations are restored to the previous state.(only once) + +-[EXIT] Go back to previous page, cancel clip mode or go back to File List page. + +------------------------------------------------------------------------------- +Debug Mode Editor Page +------------------------------------------------------------------------------- +Debug mode page comes up when program is broken intentionally or by error. Right example above shows Debug Mode Edotr Page that mini-font is applied in setup page. + +In Degub Mode, status line is getting inverted on C.Basic for FX or becomes cyan color background. + +-[F1](Cont) Continue program from cursor position. + +-[F2](Trce) Trace program from cursor position and come back to Editor page in Debug Mode right after the traced command runs, + +-[F3](Step) Trace and Step Over comamnd from cursor position and come back to Editor page in Debug Mode right after the command runs. When sub-routine runs, the sub-routine is executed to the end. + +-[F4](S.ot) Step Out from cursor position and come back to Editor page in Debug Mode right after the command runs. When the sursor is in sub-routine the sub-routine is executed to the end. + +-[F5](L<>S) Switch Editor page and program running screen. When the Program Running Screen is displayed, debug operaiton with [F1] - [F4] is still available. + +-[F6]( > ) Switch Debug menu to and from Editor menu. When Program Running Screen is displayed, pressing [F6](>) displays Editor menu. + +-[EXIT] Go back to previous page, cancel clip mode or go back to normal (not in Debug mode) Editor page. + +(*In the debug mode, status line becomes inverted.) + +------------------------------------------------------------------------------- +Program Running Page +------------------------------------------------------------------------------- +During program is running; + +-[AC] Stop program. + [EXIT] Go to Editor in Debug mode. Cursor locates at break point. + [Left] Go to Editor in Debug mode. Cursor locates at break point. + [F1] Resume program. + [EXE] Resume program. + +When program is halted by ▲ command (- Disp - is displayed on screen); +-[SHIFT]+ + [F1](Var) Go to Variables Page + [F2](Mat) Go to Mat/List Page + [F3](V-W) Go to ViewWindow Page + [F6](G<>T) Switch between Graphics and Text screen +-[EXE] Resume program. + +------------------------------------------------------------------------------- +Mat/List/Vct Page +------------------------------------------------------------------------------- +In this page Mat, List and Vct can be reviewed. Operation procedure of Mat, List and Vct is same, since List and Vect are internaly implemented as extended Matrix. +(The Mat marked by * in this page is alocated by addressing.) + +-[F1] (DEL) Delete a Mat/List. +-[F2] (DEL-ALL) Delete All Mat/List/Vct. +-[F3] (DIM) Set the dimension , element size, an index start value of the Mat/List/Vct. +-[F4] (INITIAL) Initialize all elements of the Mat/List/Vct of chosen. +-[F5] (Mat:/Lst:/Vct:) Select a number and jump to Mat/List/Vct of the number in alphabetical order. +-[F6] (A<>a) Switch between capital letter and small letter of Mat name. + +-[EXE] Enter to Edit Mode of Mat/List/Vct. (in details see below) + +-[SHIFT]+[F1] (>Mat) Select Mat +-[SHIFT]+[F2] (>List) Select List +-[SHIFT]+[F3] (>Vct) Select Vct + +-[OPTN] Switch showing between Mat and List. +-[VARS] Switch showing between Mat and Vct. + +-[LEFT] backword 26. +-[RIGHT] forword 26. + + +[Operation in Edit Mode] +[SHIFT]+[8](CLIP) All data of selected Mat/List/Vct is clipped in buffer. +[SHIFT]+[9](PASTE) Clipped data is pasted to selected Mat/List/Vct from buffer. + + +to edit numerical value; + -[F1] (EDIT) Edit the element of the Mat/List/Vct. + -[F2] (GO) Go to element set by row and column. + -[F3] (INITIAL) Initialize all elements. + -[F4] (>x,y / >m,n) Switch Matrix indication between [m,n] and [x,y]. + + -[SHIFT]+[F5] or [F5] Switch element values between in decimal and binary. + (applied only to nybble (4 bits), byte (1 byte) and word (2 bytes)) + -[SHIFT]+[F6] or [F6] Switch element values between in decimal and hexadecimal. + (not applied to 1 bit and a complex number (16 bytes), double number (8 bytes) just displays internal data) + + -[SHIFT]+[F2] or [OPTN] Enter to Dot Editor Mode. + -[SHIFT]+[F3] or [VARS] Enter to Character Strings Edit Mode. + + Only for g3m mode on C.Basic for CG (excluding 1 bit Mat/List/Vct); + -[SHIFT] + [5] Input 4 bit color value in nibble (4 bits) or 16 bits color value in other element number type. + [6] Input 16 bits color value (excluding nibble (4 bits) Mat/List/Vct). + + +to edit Dots; + Each element value of matrix can be handled as color code. + - Using in 1 bit matrix or in g1m mode, 0(zero) = black and 1 = white. + + -[F1] (0 <> 1) Change the value of the element with 0<>1. (1 bit Mat and g1m mode) + +------------------------------------------------------------------------------- +Search/Replace for Text +------------------------------------------------------------------------------- +[Search character string] +Operatin procedure; +1. Input character string and press [F1](SEARCH) or [EXE]. +2. To search next, press [F1](SEARCH) or [EXE] again. +3. Press [F6](RETRY) to back to search page. + +[Replace character string] +Operatin procedure; +1. Input character string to search, and press [F2](REPL). +2. Then input character string to be replaced with, and press [F1](SEARCH), [F2](REPL) or [EXE]. +3. To search more for replacement, press [F1](SEARCH) or [EXE] again. +4. Then press [F2](REPL) to replace again. +5. To replace all, press [F3](ALL) or [F4](ALL+). To quit replacement, press [AC/ON]. + When pressing [F4] (ALL+), progress status is not dusplayed. + +------------------------------------------------------------------------------- +Incompatible Spec against genuine Casio Basic +------------------------------------------------------------------------------- +Compatibility with genuine Casio Basic is our target, but not 100%; + +An input line by command "?" and "?->" are only in single line. A string of characters more than 21 columns is displayed still in the horizontal single line by scrolling, not in multiple lines. +When ":" (Multi-statement Command) comes right after graphing sketch command, graphic screen is not re-drawn. +Program running time is displayed after the program quit. This function can be set on or off in setup page. +A Comment Text Delimiter ' is available for comment-out before Carriage Return or Disps (output), but ":" (Multi-statement Command) can be included the commented out string. + +C.Basic also takes in user-friendly feature of fx-5800P; + +C.Basic does support a script "?A" supported by fx-5800P. This is not supported by fx-9860G / fx-9860GII (script "?->A" only is supported). +Function of string output command " " is fully compatible with fx-5800P in details but not exactly compatible with fx-9860G/fx-986GII. See Topics in details. + +------------------------------------------------------------------------------- +Select Character Page +------------------------------------------------------------------------------- +In addition to character set of genuine Casio Basic, more characters are supported. + +In "Character Select" page; +[F6] ASCII, Kana, external character can be applied. +[SHIFT]/[F1]〜[F6] Continuous input is available. +[OPTN] Switch between mini-font and normal font. +[VARS] - C.Basic for FX Switch between OS supported the mini-font and normal font. +[VARS] - C.Basic for CG Switch between C.Basic font and OS supported font. +When OS supported font is displayed, special character can be input without escape. + +------------------------------------------------------------------------------- +Differences in Graph 35 + E II +------------------------------------------------------------------------------- +-There is 3MB of storage memory. +-Hidden memory is limited to 188KB. +-As can create two or more folders, you can change the root folder. + +------------------------------------------------------------------------------- +Setup Page +------------------------------------------------------------------------------- +Setup items - compatible with genuine Casio Basic + +Angle: Rad / Deg / Grad +Draw Type: on / off +Coord: on / off +Grid: on / off +Axes: on / off +Label: on / off +Derivative: on / off +Sketch Line: Normal / Thick / Broken / Dot + + +Setup items - newly provided and extended for C.Basic +------------------------------------------------------------------------------- +Display: Fix / Sci / Nrm / Eng + Max number of digit after decimal point can be 15. Setting 0 (zero) max digit is 16. + Nrm1 or Nrm2 is fully compatible with genuine Casio Basic and max digit is 10. + - Nrm1: -0.01