Targets supported by ugBASIC

Olivetti Prodest PC128 / Thomson MO6 (pc128op)

The pc128op target has been supported by ugBASIC since version 1.4. The compiler can produce executable files in "k7" tape 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 Olivetti Prodest PC128 and Thomson MO6 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.pc128op -o executable.k7 -O k7 source.bas
ugbc.pc128op -o executable.bin -O bin source.bas

It is therefore possible to run everything with an emulator, such as DCMOTO using the following command:


or to create a phisical storage, as well.

A good starting point to learn ugBASIC for the pc128op 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 pc128op 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.

Games written for Olivetti Prodest PC128 and Thomson MO6 (more...)

Creepy Carrots

This is a clone of Manic Miner where you have to collect all the carrots and reach the exit of the level. The game shows the capabilities of ugBASIC: graphics in 160x200x16, switching video pages, managing 3 banks of RAM in addition to the main memory, reading multiple keyboard keys at the same time, and inline ASM.

ACME, inc. (10 liner)

This game is a multitasking arcade game for one player. The aim of the game is to make the coyote run for as long as possible, avoiding the barrels that roll towards him. The more barrels you avoid, the higher the score. It is a self-competiting game, and it is designed for one player. This game joins the "BASIC10Liner" competition 2024

TIC-TAC-TOE (10 liner)

This game is a traditional paper-and-pencil game for two players who take turns marking the spaces in a three-by-three grid with X or O. This game joins the "BASIC10Liner" competition 2023


This game is a "Connect Four" clone. The objective of the game is to be the first to form a horizontal, vertical, or diagonal line of four of one's own tokens.

Examples for Olivetti Prodest PC128 and Thomson MO6 (more...)

Plotting and graphic modes

The ugBASIC language provides access to all documented graphics modes of the Thomson EF936x 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:

0BITMAP MODE 40 COLUMN320x200x15
3BITMAP MODE BITMAP 16160x200x16

Blitting images

Blitting operations are supported.

Calling and inlining assembly code

With the pc128op target you can include assembly code for the Motorola 6809 processor. The code will be placed within the code bank.

Supported video standard

The ugBASIC compiler supports both the Olivetti Prodest PC128 / Thomson MO6 PAL (working frequency: 50 Hz) and NTSC (working frequency: 60 Hz) versions, and automatically detects the working frequency to calibrate the delays. 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:

Thomson MO6 PAL0 (FALSE)-1 (TRUE)50
Thomson MO6 NTSC-1 (TRUE)0 (FALSE)60
Olivetti Prodest PC128 PAL0 (FALSE)-1 (TRUE)50
Olivetti Prodest PC128 NTSC-1 (TRUE)0 (FALSE)60

Audio support

The pc128op target does not supports audio commands.

On the beta version, the ugBASIC music system allows soundtracks in background to be added to any program. Music can be created from a variety of sources, including MIDI and PSG files. The ugBASIC support SN-76489 audio chipset used by external soundcard attached, like the one built by Dino Florenzi.

The audio card is properly emulated by the latest version of DC MOTO emulator, by selecting the correct address.

Click here to know more.

Joystick and keyboard support

The ugBASIC language supports only the keyboard.