Targets supported by ugBASIC

ZX Spectrum 48K/128K/+2 (zx)

The zx target has been supported by ugBASIC since version 1.0. The compiler can produce "tap" tape file format.

How to start

You can use the SANDBOX to try the ugBASIC compiler, without download anything. This tool has been designed to quickly test whether the code you are writing compiles correctly and determines the desired results.

Since the source is compiled thanks to dedicated servers, separate from the browser you are using, some commands are not available: for example, you cannot load external files or resources by using the LOAD command.

If you need to develop a program with a complete tool, we recommend installing the command line executables (see below) or UGBASIC-IDE.

To write the source code you can use a simply text editor. You can save the program in a text file and then to call the compiler, in order to convert it into an form that your ZX Spectrum 48K, ZX Spectrum 128K or ZX Spectrum +2 will be able to execute.

Otherwise you can download and use command line compilers. Here are the direct links to the compilers for the various operating systems. Select the most suitable one for your configuration:

In addition to compiling with the IDE, if you are using Linux or the command line version for Microsoft Windows, you can compile the BASIC source "source.bas" into an executable file using the following command:

ugbc.vic20 -o executable.prg -O prg source.bas
ugbc.zx -o tape.tap -O tap source.bas

It is therefore possible to run everything with an emulator, such as Speccy , or to create a phisical storage, as well.

A good starting point to learn ugBASIC for the zx platform is the examples page. The examples provide insight into the syntax and usage of many of the commands and statements available for the language.

Since ugBASIC is an isomorphic language, which does not provide abstractions, it is possible that not all examples work on all targets: those labeled zx can be compiled to generate executable files.

If you need help and support, the best place is the official forum, where you can find answers to your questions and receive help.

Demo written for ZX Spectrum 48K/128K/2+ (more...)


Sokoban (Japanese: 倉庫番 or "warehouse keeper") is a puzzle-type video game in which the player pushes crates through a maze and tries to place them in their assigned location.


BooMfire is an implementation in ugBASIC for the Sinclair ZX Spectrum of the well-known DOOM Fire effect.

Examples for ZX Spectrum 48K/128K/2+ (more...)




Plotting and graphic modes

The ugBASIC language provides access to all documented graphics modes of the Amstrad CPC chipset, that can be selected using the SCREEN # command, and used with graphics primitives. This is the value of the various constants in the various versions:

0(emulated) Standard Character Mode32x25x8
1Standard Bitmap Mode192x256x2

Blitting images

Blitting operations are supported.

Calling and inlining assembly code

With the zx target you can include assembly code for the Zilog Z80 processor. The code will be placed within the code bank.

Supported video standard

The ugBASIC compiler supports only PAL version (working frequency: 50 Hz). In particular, it defines two constants with the same name, and initializes the constant TICKS PER SECOND.

This is the value of the various constants in the various versions:

ZX (PAL)0 (FALSE)-1 (TRUE)50

Audio support

The zx target does not supports audio commands.

Joystick and keyboard support

The ugBASIC language supports up to 2 joysticks, using the JOY(n) statement, and the keyboard. The left joystick is in port 0, while right joystick in port 1.