`prev Menu next`

### Differences from Decimal BASIC

#### CHAIN statements

A CHAIN statement launches a file of extension ".BAS" with file association. The destination programs shall not be compiled.
No CHAIN or EXECUTE statement can have array parameters.

#### BREAK

Any BREAK statement will do, but it only breaks the program.

#### GOSUB

When GOSUB statements are used, each line must has a line number.

#### Bugs which Decimal BASIC has

Decimal BASIC has a fault that an internal procedure of the mainprogram can be invoked from an external procedure, but such a program is not allowed .

#### Decimal BASIC Original Enhancement

DRAW MODE NOTXOR (MASK, MERGE, XOR),which are Decimal BASIC original enhancement, may not work properly.
On Mac, they are neglected. On Windows and Linux, then won't work until a PLOT LINES is executed.

The decimal 1000 digit mode and the rational arithmetic mode, which Decimal BASIC has, are also not avaialable.

The Microsoft BASIC compatible mode is not available.
And Metafiles, OLE and ActiveX are not available.

#### CallBack

CallBack can be apllied for only external Procedures.
Paramerters of CallBackAdr functions are only numeral 0～9.

### Incompatibilities with Decimal BASIC Ver.7

#### Character Encoding

The character encoding is UTF-8.
This is a problem when non-ASCII characters such as © , µ , ° , ± , Ä or Æ are used.
ORD-functions and CHR$-functions are defined under Unicode.
File I/O assumes the character encoding is UTF-8.
Executing a line like
`SET #n: CODING "SYSTEM"`
just after the execution of the OPEN-statement enables files of system default encoding to be read or written.
Even in such a case, the internal encoding remains to be UTF-8.
PRINT USING-statements and USING$-functions need the formatting characters as many as the byte length of the string.
If you want to manipulate byte files, you can change the internal character encoding to byte encoding by adding a line
`OPTION CHARACTER BYTE`
into each program unit, or change the setting of "Unit of string manipulation" to "byte" in the Option Compatibility menu.
In such a case, no ANSI encoded non-ASCII characters can be displayed on the screen.
UTF-8 encoding slows some string manipulation such as `s$(m:n)`.
If you use only ASCII 7-bit characters, consider to change the "Unit of string manipulation" to "byte" in the Option Compatibility menu.
When you deal with Windows API, which assumes character coding is Windows codepage such as Shift-JIS or ANSI, to convert mutually, we can use the followng string functions.
ANSI$( a string expression) converts the string expression to ANSI encoding.
ImportANSI$( a string expression) converts ANSI string to UTF8 encoding.
These can only be used on Windows version.

#### Program Encoding

Programs shall be encoded to the system default encoding on saving and decoded on loading.
That is, program files have compatibility with Decimal BASIC.
If you want programs to be saved and loaded remaining the character encoding UTF-8, change the Editor Option setting in the Option menu.