Skip to content

Language guide

cheveron edited this page Jun 18, 2020 · 30 revisions

This documentation describes the SE Basic IV language, which aims to support programs written for Microsoft BASIC with minimal changes.

The Language Guide covers the language topic by topic, thematically grouping language elements used for a related purpose. Refer to the Language reference for a formal description of the language elements and their syntax.

Working with programs

Statement Description
AUTO Enter automatic line numbering mode
CHAIN Load a new program and run it, preserving common variables
DELETE Delete lines from the program
EDIT Print a program line to the screen for editing
LIST Print program lines to the screen
LOAD Read a new program from file
MERGE Overlay a program file onto the current program
NEW Clear the current program from memory
RENUM Replace the program's line numbers
RUN Start the current program
SAVE Store the current program to file
TRON Enable line number tracing
TROFF Disable line number tracing

Control flow

Statement Description
CONT Continue interrupted program
ELSE Ignore the remainder of the line (standalone ELSE)
END Stop execution of the program
FOR Start a for-loop
GOSUB Call a subroutine
GOTO Jump to another location in the program
IF Branch on a condition
NEXT Iterate a for-loop
ON Calculated jump or subroutine call
RETURN Return from subroutine
STOP Interrupt program execution
WEND Iterate a while-loop
WHILE Enter a while-loop

Arrays and variables

Statement Description
DIM Allocate an array
ERASE Deallocate an array
SWAP Swap two variables

Type conversion

Function Description
ASC Character to ordinal value
CHR$ Ordinal value to character
HEX$ Integer to hexadecimal string representation
OCT$ Integer to octal string representation
STR$ Numeric value to decimal string representation
VAL String representation to numeric value

String operations

Function Description
LEN String length

Text and the screen

Statement Description
CLS Clear the screen
COLOR Set colour and palette values
LOCATE Set the position and shape of the text screen cursor
PALETTE Assign a colour to an attribute
PALETTE USING Assign an array of colours to attributes
PRINT Print expressions to the screen
Function Description
SCREEN Character or attribute at given location

The printer

Statement Description
PRINT # Print expressions to the printer

Keyboard input

Statement Description
INPUT Retrieve user input on the console
LINE INPUT Retrieve a line of user input on the console
Function Description
INKEY$ Nonblocking read from keyboard
INPUT$ Blocking read from keyboard

Function-key macros

Statement Description
KEY Define a function-key macro

Calculations and maths

Mathematical functions

Function Description
ABS Absolute value
ATAN Arctangent
ACOS Arccosine
ASIN Arcsine
COS Cosine
EXP Exponential
FIX Truncation
INT Floor
LOG Natural logarithm
SIN Sine
SGN Sign
SQR Square root
TAN Tangent

Random numbers

Statement Description
RANDOMIZE Seed the random number generator
Function Description
RND Pseudorandom number

Devices and files

File operations

Statement Description
CLOSE Close a file
INPUT Read a variable from a file
OPEN Open a data file
Function Description
EOF End of file
LOC Location in file
LOF Length of file
INPUT$ Read a string from a file

Devices

SE Basic IV handles devices differently than Microsoft BASIC. A device is connected to a specific channel and one or more I/O streams can be connected to that channel. For example, the display is connected to channel S and by default stream #2 is connected to that channel S.

Device Channel Default stream
Keyboard K 1
Screen S 2

Graphics

Statement Description
SCREEN Change the video mode

Sound

Statement Description
SOUND Generate a tone

Joystick and mouse

Function Description
MOUSE Status of mouse
STICK Status of joystick

Disks and DOS

In SE Basic IV, the DOS is integrated into BASIC and there is no SHELL command.

Statement Description
CHDIR Change current directory.
COPY Make a copy of a file.
FILES List the files in the current directory.
KILL Delete a file on a disk device.
MKDIR Create a new directory.
NAME Rename a file on disk.
RMDIR Remove a directory.

Serial communications

Event handling

Error handling

Statement Description
ERROR Raise an error
ON ERROR Define an error handler

User-defined functions

Statement Description
DEF FN Define a new function
Function Description
FN User-defined function

Date and time

Including data in a program

Statement Description
DATA Define data to be used by the program
READ Retrieve a data entry
RESTORE Reset the data pointer

Memory and machine ports

Only selected memory ranges are accessible in SE Basic IV. There is read and write support for video memory, font RAM and selected locations of the low memory segment, including the keyboard buffer. Additionally, there is read and write support for variable, array and string memory. Writing into the program code is permitted but not recommended. All ports including keyboard input and video modes are supported.

Statement Description
BLOAD Load a binary file into memory
BSAVE Save a memory region to file
CLEAR Clears BASIC memory
DEF SEG Set the memory segment
OUT Write a byte to a machine port
POKE Write a byte to a memory location
Function Description
FRE Amount of free memory
INP Byte at machine port
PEEK Byte at memory address

Features not yet implemented

Some documented features are not yet implemented. They may be added in a future release.

Unsupported features

SE Basic IV has direct access to all areas of memory and all devices. You can use machine-code subroutines to perform tasks for which it does not provide support. However, programs written for a different architecture, such as 8086, will not run.

It is not necessary, or possible, to define variable types. Like the 6502 versions of Microsoft BASIC, floating-point numbers are always stored in 40-bit MBF form. Unlike Microsoft BASIC, integers in the range -65536 to 65535 are always stored as integers (also in 40-bits).

Clone this wiki locally