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.
NMOS 6502 Zilog Z80 Motorola 6809
Amstrad Atari ColecoVision Commodore Dragon MSX Olivetti Radio Shack Thomson SEGA ZX Spectrum
CC65 Z88DK ASM6809
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.
On this video, you have the example of a real-time animation of 4 fairly large sprites on Thomson MO6. Sprites can also move in a full background setting. This new language will allow for hyper-fast game development on all 8-bit consoles and computers.
Full and complete support for console hardware features on ColecoVision, SEGA SC-3000 and SEGA SG-1000. Automatic graphic conversion from modern graphical formats included.
Each target can have a dedicated optimizer, which allows to achieve very interesting
results while leaving the BASIC code fully readable.
Here we see the peephole
optimizer for Motorola 6809 in action.
With ugBASIC is simple to write multitasking programs using parallel programming, available "out of the box". In systems with severe memory constraints such as computers based on 8 bit processors, a mechanism based on protothreads has been implemented.
Developing for multiple platforms requires little effort, because the source does not have to be adapted. With a single source code you can get games and programs for multiple computers, even very different from each other.
Compile your ugBASIC sources efficiently and effectively for multiple retrocomputers: ugBASIC IDE makes it easier to download and install the various software required for one or more retrocomputers, all just one "click away".
At the moment there are two manuals available: the user manual, with which you can start developing using this language, and the reference manual, useful for those wishing to modify and/or to extend the language.
The current version (1.13.1) introduces support for Radio Shack TRS-80 Color Computer.
Use IDE
Download executables
Installation
The version (1.12.1) introduces support for Amstrad CPC 664 target.
Use IDE
Download executables
Installation
The version 1.11.2 introduces support for audio and the Commodore 128 target.
Use IDE
Download executables
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
Download executables
Installation
Usage
The version 1.10.3 introduces support for SEGA SC-3000 home computer and SG-1000 console.
Use IDE
Download executables
Installation
Usage
The version 1.9.1 introduces support for ColecoVision console architecture.
Use IDE
Download executables
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
Download executables
Installation
Usage
The version 1.7.2 introduces various improvements and bug fixes.
Use IDE
Download executables
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.
Download executables
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
Download executables
Installation
Usage
The version 1.4 introduces support for Olivetti PC128 Prodest and Thomson MO5 computer.
Complete list of targets
Download executables
Installation
Usage
The version 1.3.2-beta introduces various improvements and bug fixes.
Download executables
Installation
Usage
The version 1.3.1-beta introduces various improvements and bug fixes.
Download executables
Installation
Usage
The version 1.3-beta introduces support for Dragon 32 computer.
Complete list of targets
Download executables
Installation
Usage
The version (1.2-beta) introduces various improvements and bug fixes.
Download executables
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
Download executables
Installation
Usage
ugBasic – A BASIC compiler for Commodore, ... and Atari, ... and CoCo, ... and ...
Recently I learned about an exciting project that started a couple of years ago: ugBasic. ugBasic is a cross compiler of BASIC dialect specialized in programs that are very efficient by design on various 8-bit platforms built on top of 6502, Z80 and 6809.
ugBasic retour sur le projet scorched earth
Rappel sur la gestion des variables d'ugBasic, Variables globales / locales, Typage dynamique, Affichage d'un paysage généré, Problème de gestion de couleurs, Problème de calculs en nombres entiers au lieu de flottants. Conclusion
Faisons des rasters avec ugBasic !
Rappel sur l'exemple précédent, Démonstration de la proposition de l'auteur, Approfondissement et expérimentation pour déterminer le timing de l'instruction COLOR. Conclusion
Dernières nouveautés d'ugBasic
Présentation des nouvelles fonctionnalités, instruction relative, ORIGIN, RESOLUTION, FONT LOAD, Proof Of Concept : Scorched Earth gestion de trajectoire de tir, Instruction OUT : 2 exemples, Ondulation d'écran, Caméleon en mode 2, 27 couleurs en Basic !!!! Conclusion
ugBasic : gestion des planches de sprites et essais de calculs de trajectoire
Introduction sur les problématiques du calcul sous ugBasic, Introduction sur la fonte standard d'ugBasic, Illustration de la fonction LOAD IMAGES et son utilisation pour afficher les fontes identiques à l'amstrad CPC, Test en direct d'un correctif innatendu de dernière minute d'ugBasic !, Démonstrations de 4 méthodes différentes pour calculer des trajectoires paraboliques avec seulement des entiers en ugBasic, Illustration des difficultés rencontrées, Conclusion.
ugBasic : Gestion de scroll et du joystick
Introduction, Présentation d'une première instruction de scroll, Démonstration des avantages par rapport au scroll texte standard, Explication des limites (consommation de temps), Démonstration d'un Scroll horizontal surface d'eau avec vague + robot célèbre ;), Démonstration d'un Scroll Vertical d'un fond marin avec modif 48 lignes * 64 pixels, Démonstration de ce même scroll avec robot célèbre, Démonstration de ce même scroll avec robot célèbre et incrustations de soucoupes ennemies, Démonstration Instruction EVERY, Discussion sur le langage Basic, Conclusion
ugBasic : Détection des touches, gestion de la palette des couleurs, gestion des images
Introduction, Détection des touches et du joystick (avec accident félin sans gravité ;) ), Gestion de la palette de couleurs, Instructions GET IMAGE et PUT IMAGE, Petits bugs rigolos sur instruction Ellipse, Conclusion
Soko64 con ugBASIC
Soko64 è la dimostrazione che a un redattore di Zzap! non si dovrebbero mai dare del tempo libero e uno strumento di sviluppo come ugBasic. Potrebbe uscirne fuori qualcosa di diabolico.
ugBasic : continuons la découverte
Introduction, Draw et polyline, Cercle plein, explication sur le typage dynamique des variables, les contraintes du mode 0 et de l'absence de nombres réels, Tracé du paysage précédent avec Draw corrigé, Démonstration de l'affichage d'image, Démonstration de l'affichage d'images avec gestion de la transparence, Nouvelle approche avec paysage dessiné dans une image pour fixer la palette, Conclusion
ugBasic : continuons la découverte
Explication gestion mode, Gestion des couleurs, Instructions graphiques, Procédures, Chargement images, Conclusion
ugBasic : continuons la découverte
Présentation ugBasic (logiciel, fonctionnalités, exemples, portabilité, syntaxe)
PICK THE STAR (10 liner)
This game is a multitasking arcade game for one player. The player must pick mostly the stars
that descend from the top of the screen, because they give to the player the
higher score. This game joins the "BASIC10Liner" competition 2023
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