User Tools


Difference Between Ver3 and Ver4

Here, only the major differences between the BASIC language components are explained.

Since there are a lot of small differences in command units, they are omitted.

Variable Types


The variable itself had a type, the type was determined by the suffix of the variable name, and it could not store a value that was not compatible with the variable type.

However, the parameter of the user-defined command is an exception, and the variable type is determined by the actual argument type set by the caller, regardless of the type suffix of the formal parameter name.


Variables have no type and can always be stored a value of any types.

The variable name suffix is ​​retained for compatibility, but only the function to determine the initial value when defining the variable is left.

The description A$=100 is correct in Ver4 (not recommended).



Arrays were handled strictly according to the type and dimension settings at the time of definition, and it was not possible to explicit expansion and dimension conversion after definition.

The element could not be initialized when defining the array, and it was necessary to use the DATA statement, READ command, and COPY command together.


Arrays with 2 or more dimensions are all subsets of 1D arrays and can be referenced as 1D arrays. However, an command that performs automatic expansion must explicitly be a 1D array.

Explicit array expansion is possible.

Elements can be initialized at the same time as defining an array. In this case, the number of elements in the array can be omitted.

The number of array elements can be omitted even when elements are not initialized. In this case, it is defined as a 1D array with zero elements.

Removal of System Variables

All system variables have been removed and moved to alternative functions, commands and constants.

Line Continuation

If a backslash (&H5C) is written at the end of a line, the next line is also treated as a continuation of the current line. Long lines can be formatted with line breaks.

Type Identification

A function which identifies value types has been added. Another function which gets the number of dimensions of an array and the number of elements per dimension has also been added.

Control Syntax

A CASE statement (complex conditional branch) and a LOOP statement (infinite loop) have been added.

User-Defined Constants

A function which users can define constants has been added.

CONST #ConstantName = ConstantExpression

You can define constants like the code above.

In addition, an ENUM statement that defines a sequence number constant has been added.

Constants can be defined as Int type, Real type, or string type of values. In addition, constant expressions can be used with expressions which terms are constants, and some functions. For details, refer to the CONST statement reference.

Note that constant definitions are done before execution. Constant definition using variables is not possible.

Setting and Obtainment with the same command

In Ver4, in order to save the trouble of memorizing commands, we are thorough in obtainment and setting with the same commands as much as possible.

For example, until Ver3, the cursor position setting was LOCATE, and the obtainment was CSRX and CSRY, but in Ver4, obtainment is also LOCATE OUT.

In addition, it is possible to obtain parameters as much as possible that could be set up but could not be obtained.

Display Elements

The drawing color has been changed from 16-bit color (RGBA5551) to 32-bit color (ARGB8888). The alpha channel is always active.

BG and graphic page display have been removed and integrated with text screens and sprites, respectively.

Five text screens can be displayed.

It's possible to set the graphic page to be referenced for each sprite.

Display clipping has been changed to be set for each display group called Layer, not for each type.

Character Codes

&H5C is now \ (backslash) instead of \ (yen mark).
Use &HA5 for ¥.

reference/differences_between_ver3_and_ver4.txt · Last modified: 2023/12/07 15:54 (external edit)

Page Tools