ugBASIC

An isomorphic language
for retrocomputers



What's News Get Started IDE SANDBOX Games

WHAT IS ugBASIC?

ugBASIC is an isomorphic and open source language, fully documented and designed to develop portable programs, without sacrificing efficiency. With a single source it is therefore possible to create games for numerous 8 bit platforms.

 

Games written with ugBASIC (more...)



Donkey Kong

Donkey Kong is a 1981 arcade video game developed and published by Nintendo. As Mario, the player runs and jumps on platforms and climbs ladders to ascend a construction site and rescue Pauline from a giant gorilla, Donkey Kong. It is the first game in the Donkey Kong series and Mario\'s first appearance in a video game.


SOKO64+

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.


The Savage Sword of COCON

The Savage Sword of COCON is brawler on the lines of Barbarian. It runs on a TRS-80 Color Computer with 64kb, requires a disk drive and at least one joystick. It can be single played against the 5 kingdom's sword masters, vs played against a friend and also vs played by RPG stats, where each player designs a barbarian and you get to watch them go.


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.

Some features and examples (more...)

Download the compiler

You can download the official ugBASIC compiler (ugbc), which directly converts a program written in ugBASIC into the assembly equivalent for the given CPU / computer. The compiler is free, open source and licensed under the Apache 2.0 license. You can download or recompile the latest version from the GitHub repository.

* = available only for Microsoft Windows 7/8/10/11

An integrated IDE*

* = available only for Microsoft Windows 7/8/10/11

Media coverage (more...)

Donkey Kong su PC128 Olivetti Prodest

Paolo Cattaneo è uno sviluppatore talentuoso. Ammaliato dalle potenziali di ugBASIC, ha tirato fuori dal cilindro un port davvero interessante che mostra come "si può fare..."

ugBasic Game Programming #2. Exploring Atari 8bit Color Graphics

Atari 8bit color graphics and text mode capabilities are explored in ugBasic and we start a basic game animation loop.

La famiglia Olivetti Prodest al pranzo della domenica

Gioco in foto: Creepy Carrots by Paolo Cattaneo / March 2024 / Developed with ugBasic

Il manuale di ugBASIC / Commodore 64

Ci è giunta notizia della nuova revisione del manuale del linguaggio ugBASIC di Marco Spedaletti. Diamo un'occhiata a come si presenta la routine di tracciamento delle linee su alcuni di questi computer.

What's news?

 












 

The current version adds support for the TRS-80 Color Computer 3 (coco3) and is able to generate disk images for ATARI, MSX and Commodore VIC-20. Further optimizations have been introduced in the generated code, in particular for CPU Z80. Several commands have been added, and there is also better compatibility with 1980s BASIC syntax. Moreover, it can load and save data to mass storage.

Use IDE Installation

 

 

The current version adds preliminary support for inline assembly, software for map tiling, system calls, the floating point data type, for the Commodore 128 target with the Zilog Z80 processor and for graphics blitting operations. Further optimizations have been introduced in the generated code, in particular for the Olivetti Prodest PC128 home computers, which is now able to handle banking at the single frame level instead of the whole image, and for the COCO TRS-80 computer, which can now make use of almost all available memory, including that under the ROM banks.

Use IDE Installation

 

Happy birthday ugBASIC! Today (24/04) we celebrate two years since the first commit, and with this milestone in mind let's take a look at some of the results obtained by the development team.

From a qualitative point of view, the system supports as many as 26 heterogeneous systems, ranging from ATARI to Olivetti Prodest, passing through MSX, TRS-80 and, obviously, Commodore computers. A dedicated page takes into account the actual list of supported targets.

From a quantitative point of view, ugBASIC is composed of over 156,000 lines of C code and about 43,000 lines of assembly code (MOS 6502, Zilog Z80 and Motorola 6809), where the lexer and the parser occupy 7,559 lines!

For published data: generated using David A. Wheeler's 'SLOCCount'

Use IDE Download executables Targets

 

 

The current version (1.13.1) introduces support for Radio Shack TRS-80 Color Computer.

Use IDE Installation

 

 

The version (1.12.1) introduces support for Amstrad CPC 664 target.

Use IDE Installation

 

 

The version 1.11.2 introduces support for audio and the Commodore 128 target.

Use IDE Installation Usage

 

Happy birthday ugBASIC! Today (25/04) we celebrate one year since the first commit, and with this milestone in mind let's take a look at some of the results obtained by the development team.

From a qualitative point of view, the system supports as many as 14 heterogeneous systems, ranging from ATARI to Olivetti Prodest, passing through MSX and, obviously, Commodore computers.

From a quantitative point of view, ugBASIC is composed of over 137,000 lines of C code and over 36,000 lines of assembly code (MOS 6502, Zilog Z80 and Motorola 6809), where the lexer and the parser occupy 6,408 lines!

Following the sizing indicated by the "COCOMO model", to redevelop ugBASIC from scratch it would take 55 man-months or, if you like, two and a half years of development. Alternatively, having 22 developers, it would be done in a year.

For published data: generated using David A. Wheeler's 'SLOCCount'

Use IDE Installation Usage

 

 

The version 1.10.3 introduces support for SEGA SC-3000 home computer and SG-1000 console.

Use IDE Installation Usage

 

 

The version 1.9.1 introduces support for ColecoVision console architecture.

Use IDE Installation Usage

 

 

An interesting competition is held at the beginning of each year: the BASIC 10Liner Contest, and it is possible to use ugBASIC to join in the next competition with your preferred home computer.

How to join Use IDE executables

 

 

The version 1.8.2 introduces support for MSX home computer architecture.

Use IDE Installation Usage

 

 

The version 1.7.2 introduces various improvements and bug fixes.

Use IDE Installation Usage

 

 

A brand new IDE has been released for ugBASIC: ugBASIC IDE makes it easier to download and install the various software required for one or more retrocomputers, all just one "click away". It offers syntactic highlighting, multiple windows, file history, online help and an integration for error diagnostics. With just one click you can see your program running directly on one of the supported emulators.

Download executables

 

 

The current version (1.6) introduces various improvements and bug fixes.

Installation Usage

 

 

The version 1.5 introduces support for Commodore VIC-20, film strip animations and multitasking.

Complete list of targets How to use multitasking Installation Usage

 

 

The version 1.4 introduces support for Olivetti PC128 Prodest and Thomson MO5 computer.

Complete list of targets Installation Usage

 

 

The version 1.3.2-beta introduces various improvements and bug fixes.

Installation Usage

 

 

The version 1.3.1-beta introduces various improvements and bug fixes.

Installation Usage

 

 

The version 1.3-beta introduces support for Dragon 32 computer.

Complete list of targets Installation Usage

 

 

The version (1.2-beta) introduces various improvements and bug fixes.

Installation Usage

 

 

The version 1.1-beta introduces support for the Atari 8-bit family of computers, such as Atari 400/800, Atari 600XL / 800XL / 1200XL and XEGS.

Complete list of targets Installation Usage