FX 0.99q

* 2016.0625.1810
* 2016.0702.2300

## Change\_J

2016.7.3 Test version (interpreter only)
 - Fixed a bug where the screen would not return when restarting the program or running a trace in debug mode.

 2016.6.25 - By adding the address operator &, the string conversion of Mat matrix has been changed to only $.

 - SysCall and Call commands have been made into function commands like SysCall() and Call().
 (Format) SysCall(system call number [,argument 1][,argument 2][,argument 3][,argument 4])
 (Example) SysCall( 0x763,A,B,C,D )→R
 　A→R4 register, A→R5 register, A→R6 register, A→R7 register, system call 0x30 is called and the return value is stored in R.
 　System call 0x30 is the same as Bdisp\_DrawLineVRAM in the SDK.

 (Format) Call(machine address [,argument 1][,argument 2][,argument 3][,argument 4])
 (Example) Call( 0x8802F000,A,B,C,D )→R
 　The machine language program at address 0x8802F000 is called and the return value is stored in R.

 2016.6.18 - Fixed an issue where it did not work in case of negative numbers in ENG mode.
 - Expanded ENG mode to support 3-digit delimiter display.
 　Pressing [F4] (Eng) during setup will toggle between ENG off, ENG on (/E), and 3-digit separator (/3).
 　To specify a 3-digit separator in a command, add the number 3 immediately after EngOn,
 　EngOn3
 　From now on, the output will be separated by 3 digits.
 　At that time, the value returned by ENG will be 3. (ENG off:0 ENG on:1 3-digit separator:3)

 - Added Str() command to convert numbers into strings in C.Basic format.
 　The Sprintf() command outputs the format according to the C language specifications, but the output format of Str() is determined by the C.Basic settings (Fix, Sci, Norm, ENG, etc.).
 (Example) Str(-123.4567)→Str 1
 Convert -123.4567 to string "-123.4567" and assign it to string variable Str 1.

 - Supported hexadecimal display in variable list display.
 　Integer variables are directly displayed in hexadecimal, but real variables can only be displayed in hexadecimal if their value falls within the 32-bit integer range.

 ・Peek(, Poke(, Call, SysCall,
 　VarPtr(, ProgPtr( command,
 　Address operators & indirect operators \* similar to C language are now supported.

 (Example) Peek(0x8802E000).B→A%
 (Example) \*(0x8802E000).B→A%
 　Read the contents of address 0x8802E000 in bytes (1 byte) and assign it to the integer variable A%.
 (Example) Peek(0x8802E000).W→A%
 　Read the contents of address 0x8802E000 as a word (2 bytes) and assign it to the integer variable A%.
 (Example) Peek(0x8802E000).L→A%
 　Read the contents of address 0x8802E000 as a longword (4 bytes) and assign it to the integer variable A%.
 (Example) Peek(0x8802E000).F→A
 　Read the contents of address 0x8802E000 as a double precision real number (8 bytes) and assign it to variable A.

 (Example) Poke(0x8802E000).B,A%
 (Example) A%→Poke(0x8802E000).B
 (Example) A%→\*(0x8802E000).B
 　Writes the value of integer variable A% to address 0x8802E000 (1 byte).
 (Example) Poke(0x8802E000).W,A%
 　Writes a word (2 bytes) of the value of integer variable A% to address 0x8802E000.
 (Example) Poke(0x8802E000).L,A%
 　Writes the value of integer variable A% to address 0x8802E000 as a longword (4 bytes).
 (Example) Poke(0x8802E000).F,A
 　Writes the value of real variable A to address 0x8802E000 as a double-precision real number (8 bytes).

 (Example) Call 0x8802F000,A,B,C,D
 　Call the machine language program at address 0x8802F000 in A→R4 register, A→R5 register, A→R6 register, A→R7 register.

 (Example) SysCall 0x30,A,B,C,D
 　Call A→R4 register, A→R5 register, A→R6 register, A→R7 register, system call 0x30.
 　System call 0x30 is the same as Bdisp\_DrawLineVRAM in the SDK. Draw a line on the screen.

 (Example) VarPtr(A%)
 (Example) &A%
 　Returns the address of the variable in integer variable A%.
 (Example) VarPtr(Mat A)
 (Example) &Mat A
 　Returns the start address of matrix A.
 (Example) VarPtr(Mat A[20,10])
 　Returns the address where the values ​​of matrix A[20,10] are stored.

 (Example) Poke VarPtr(A%),B%
 (Example) \*(&B%)→\*(&A%)
 　Same as B%→A%.

 (Example) ProgPtr()
 　Returns the address where the current program is stored.