Installing ugBASIC

The ugBASIC compiler is a console application for Linux and Microsoft Windows operating system, with a convenient IDE environment for Microsoft Windows.

In order to install and use ugBASIC only one executable (per target) is needed, while the IDE is in common to all targets. Depending on which target you are interested in, you will need to download and install additional software. With these few choices we try to take you directly to the most appropriate executable.

First of all, select the host operating system, that is, the modern operating system you will use to produce programs for 8-bit home computers and/or consoles:

Linux (32 bit) Linux (64 bit)
Windows (32 bit) Windows (64 bit) IDE (Windows 32/64 bit)

Installing ugBASIC on Linux (32 bit)

You can use ugBASIC starting from precompiled binaries or by recompiling them from the source code on repository. All compilations and running tests have been done using the Xubuntu 18.04.5 LTS (Bionic Beaver) distribution.

Binaries Sources

Using binaries for Linux (32 bit)

You can find here binaries for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch). Each version (release) of the software is suitable for a specific purpose. It is therefore necessary to select and download the version that best suits your needs.

git reference: main (branch)
suggested use: production

This is the latest version of the software. It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

git reference: v1.16.4 (tag)
suggested use: regression tests

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

git reference: beta (branch)
suggested use: experiments

This is the experimental version, which contains additional features and new keywords. Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Using 1.16.4 binaries for Linux (32 bit)

You can find here binaries for the latest tagged release (v1.16.4).

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

Each target has its compiler, and each compiler has been compiled under the Xubuntu 18.04.5 LTS (Bionic Beaver) distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it is enough to require the correct package:
apt-get install cc65

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website.

Using main binaries for Linux (32 bit)

You can find here binaries for the latest version of the software (branch: main).

It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

Each target has its compiler, and each compiler has been compiled under the Xubuntu 18.04.5 LTS (Bionic Beaver) distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it is enough to require the correct package:
apt-get install cc65

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website.

Using beta binaries for Linux (32 bit)

You can find here binaries for the experimental version (beta branch), which contains additional features and new keywords.

Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Each target has its compiler, and each compiler has been compiled under the Xubuntu 18.04.5 LTS (Bionic Beaver) distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it is enough to require the correct package:
apt-get install cc65

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website.

Recompiling sources under Linux (32 bit)

In order to compile ugBASIC from sources you need some software installed. Moreover, you have to download / init all submodules, as well. So, first of all you have to prepare your building environment.

Submodules

This is the alphabetical listing of the submodules that are initialized: some are needed for the gcc compiler to build the compiler (build), some are needed for the compiler to produce assembly code from a source in ugBASIC (ugbasic), and some are kept here for reference only (reference). The makefile contains instructions on how to use submodules.

  • 6502 reference
  • asm6809 ugbasic
  • atarisio ugbasic
  • bison build
  • cc65 ugbasic
  • flex build
  • fp09 reference
  • libxml2 build
  • toolshed ugbasic
  • z80float reference
  • z88dk ugbasic

Preparation steps

This is the list of commands tested on Xubuntu 18.04.5 LTS (Bionic Beaver):

apt-get install build-essential
apt install git
apt-get install flex
apt-get install bison
apt-get install autoconf
apt-get install libtool
apt-get install pkg-config
wget http://mirrors.kernel.org/ubuntu/pool/main/a/automake-1.16/automake_1.16.1-4ubuntu6_all.deb
apt install ./automake_1.16.1-4ubuntu6_all.deb
wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz
tar -xf autoconf-2.71.tar.xz
cd autoconf-2.71/
./configure
time make
make install
autoreconf
apt-get install texinfo
wget https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz
tar -xzf automake-1.16.5.tar.xz
cd automake-1.16.5
./configure
make
make install
export ACLOCAL_PATH=/usr/share/aclocal
GIT_SSL_NO_VERIFY=true git clone https://github.com/spotlessmind1975/ugbasic.git
cd ugbasic
git submodule update --recursive --init --remote

Building steps

You can recompile ugBASIC for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch), by using the proper {branch}. Each target has its compiler, and each compiler can be compiled using the specific {target} parameter on make command. This is the list of commands tested on Xubuntu 18.04.5 LTS (Bionic Beaver):

git clone "https://github.com/spotlessmind1975/ugbasic"
cd ugbasic
git checkout {branch}
git submodule update --init --recursive

Finally, you can build the compiler for your target:

cd ugbasic
make target={target} clean compiler

Please note that the beta repository is not QA checked. This means that it is possible, but unlikely, that the compiler may fail when compiling specific targets, especially those that only exist in beta.

Don't worry!

You can still build this branch by moving to one of the previous commits until you have compilable source. Click here for a list of commits produced for the beta branch. Once you selected a specific commit, type those commands:

git checkout {commit}

Then, take these makefile:

ugbasic/makefile
ugbasic/ugbc/makefile

and force the variable BETA to force beta generation:

#BETA=$(shell cat .git/HEAD | grep beta)
BETA="beta"

Finally, type those commands:

make target={target} clean compiler

Installing ugBASIC on Linux (64 bit)

You can use ugBASIC starting from precompiled binaries or by recompiling them from the source code on repository. All compilations and running tests have been done using the Ubuntu 22.04.1 LTS (Jammy Jellyfish) distribution.

Binaries Sources

Using binaries for Linux (64 bit)

You can find here binaries for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch). Each version (release) of the software is suitable for a specific purpose. It is therefore necessary to select and download the version that best suits your needs.

git reference: main (branch)
suggested use: production

This is the latest version of the software. It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

git reference: v1.16.4 (tag)
suggested use: regression tests

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

git reference: beta (branch)
suggested use: experiments

This is the experimental version, which contains additional features and new keywords. Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Using 1.16.4 binaries for Linux (64 bit)

You can find here binaries for the latest tagged release (v1.16.4).

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

Each target has its compiler, and each compiler has been compiled under the Ubuntu 22.04.1 LTS (Jammy Jellyfish) distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it is enough to require the correct package:
apt-get install cc65

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website.

Using main binaries for Linux (64 bit)

You can find here binaries for the latest version of the software (branch: main).

It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

Each target has its compiler, and each compiler has been compiled under the Ubuntu 22.04.1 LTS (Jammy Jellyfish) distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it is enough to require the correct package:
apt-get install cc65

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website.

Using beta binaries for Linux (64 bit)

You can find here binaries for the experimental version (beta branch), which contains additional features and new keywords.

Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Each target has its compiler, and each compiler has been compiled under the Ubuntu 22.04.1 LTS (Jammy Jellyfish) distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it is enough to require the correct package:
apt-get install cc65

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website.

Recompiling sources under Linux (64 bit)

In order to compile ugBASIC from sources you need some software installed. Moreover, you have to download / init all submodules, as well. So, first of all you have to prepare your building environment.

Submodules

This is the alphabetical listing of the submodules that are initialized: some are needed for the gcc compiler to build the compiler (build), some are needed for the compiler to produce assembly code from a source in ugBASIC (ugbasic), and some are kept here for reference only (reference). The makefile contains instructions on how to use submodules.

  • 6502 reference
  • asm6809 ugbasic
  • atarisio ugbasic
  • bison build
  • cc65 ugbasic
  • flex build
  • fp09 reference
  • libxml2 build
  • toolshed ugbasic
  • z80float reference
  • z88dk ugbasic

Building steps

You can recompile ugBASIC for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch), by using the proper {branch}. Each target has its compiler, and each compiler can be compiled using the specific {target} parameter on make command. This is the list of commands tested on Ubuntu 22.04.1 LTS (Jammy Jellyfish):

git clone "https://github.com/spotlessmind1975/ugbasic"
cd ugbasic
git checkout {branch}
git submodule update --init --recursive

Finally, you can build the compiler for your target:

cd ugbasic
make target={target} clean compiler

Please note that the beta repository is not QA checked. This means that it is possible, but unlikely, that the compiler may fail when compiling specific targets, especially those that only exist in beta.

Don't worry!

You can still build this branch by moving to one of the previous commits until you have compilable source. Click here for a list of commits produced for the beta branch. Once you selected a specific commit, type those commands:

git checkout {commit}

Then, take these makefile:

ugbasic/makefile
ugbasic/ugbc/makefile

and force the variable BETA to force beta generation:

#BETA=$(shell cat .git/HEAD | grep beta)
BETA="beta"

Finally, type those commands:

make target={target} clean compiler

Installing ugBASIC on Windows (32 bit)

You can use ugBASIC starting from precompiled binaries or by recompiling them from the source code on repository. All compilations and running tests have been done using the MingW32 distribution. The easiest way to use ugBASIC under Microsoft Windows is using the IDE.

IDE Binaries Sources

Using binaries for Windows (32 bit)

You can find here binaries for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch). Each version (release) of the software is suitable for a specific purpose. It is therefore necessary to select and download the version that best suits your needs.

git reference: main (branch)
suggested use: production

This is the latest version of the software. It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

git reference: v1.16.4 (tag)
suggested use: regression tests

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

git reference: beta (branch)
suggested use: experiments

This is the experimental version, which contains additional features and new keywords. Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Using 1.16.4 binaries for Windows (32 bit)

You can find here binaries for the latest tagged release (v1.16.4).

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

Each target has its compiler, and each compiler has been compiled under the MingW32 distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website, or directly from this site here.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it you can download the executable from official website, or the one from this website.

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website, or directly from this site here and here.

Using main binaries for Windows (32 bit)

You can find here binaries for the latest version of the software (branch: main).

It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

Each target has its compiler, and each compiler has been compiled under the MingW32 distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website, or directly from this site here.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it you can download the executable from official website, or the one from this website.

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website, or directly from this site here and here.

Using beta binaries for Windows (32 bit)

You can find here binaries for the experimental version (beta branch), which contains additional features and new keywords.

Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Each target has its compiler, and each compiler has been compiled under the MingW32 distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website, or directly from this site here.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it you can download the executable from official website, or the one from this website.

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website, or directly from this site here and here.

Recompiling sources under Windows (32 bit)

In order to compile ugBASIC from sources you need some software installed. Moreover, you have to download / init all submodules, as well. So, first of all you have to prepare your building environment.

Submodules

This is the alphabetical listing of the submodules that are initialized: some are needed for the gcc compiler to build the compiler (build), some are needed for the compiler to produce assembly code from a source in ugBASIC (ugbasic), and some are kept here for reference only (reference). The makefile contains instructions on how to use submodules.

  • 6502 reference
  • asm6809 ugbasic
  • atarisio ugbasic
  • bison build
  • cc65 ugbasic
  • flex build
  • fp09 reference
  • libxml2 build
  • toolshed ugbasic
  • z80float reference
  • z88dk ugbasic

Preparation steps

To recompile under MingW32 you need to download and install a POSIX-compliant environment for Windows like MSYS2. So, download the installer for your PC (a name like msys2-x86_64-20240727.exe).

From the ucrt32's shell, installed by MSYS2, you have to download and install a bunch of pachages. The installation is done using pacman, the default installer. This is the list of commands to invoke (in strict order):

pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-ccmake
pacman -S mingw-w64-ucrt-x86_64-make
pacman -S git
pacman -S autoconf
pacman -S cmake
pacman -S autogen
pacman -S libtool
pacman -S automake
pacman -S flex
pacman -S bison
pacman -S vim

Building steps

You can recompile ugBASIC for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch), by using the proper {branch}. Each target has its compiler, and each compiler can be compiled using the specific {target} parameter on make command. This is the list of commands tested on MingW32:

git clone "https://github.com/spotlessmind1975/ugbasic"
cd ugbasic
git checkout {branch}
git submodule update --init --recursive

Finally, you can build the compiler for your target:

cd ugbasic
make target={target} clean compiler

Please note that the beta repository is not QA checked. This means that it is possible, but unlikely, that the compiler may fail when compiling specific targets, especially those that only exist in beta.

Don't worry!

You can still build this branch by moving to one of the previous commits until you have compilable source. Click here for a list of commits produced for the beta branch. Once you selected a specific commit, type those commands:

git checkout {commit}

Then, take these makefile:

ugbasic/makefile
ugbasic/ugbc/makefile

and force the variable BETA to force beta generation:

#BETA=$(shell cat .git/HEAD | grep beta)
BETA="beta"

Finally, type those commands:

make target={target} clean compiler

Installing ugBASIC on Windows (64 bit)

You can use ugBASIC starting from precompiled binaries or by recompiling them from the source code on repository. All compilations and running tests have been done using the MingW64 distribution. The easiest way to use ugBASIC under Microsoft Windows is using the IDE.

IDE Binaries Sources

Using binaries for Windows (64 bit)

You can find here binaries for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch). Each version (release) of the software is suitable for a specific purpose. It is therefore necessary to select and download the version that best suits your needs.

git reference: main (branch)
suggested use: production

This is the latest version of the software. It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

git reference: v1.16.4 (tag)
suggested use: regression tests

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

git reference: beta (branch)
suggested use: experiments

This is the experimental version, which contains additional features and new keywords. Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Using 1.16.4 binaries for Windows (64 bit)

You can find here binaries for the latest tagged release (v1.16.4).

This is the most stable version of the software, as it is never updated except when a version is released. It is the only version that, before being released, is used to compile all the examples. So it is the most stable even if not necessarily bug-free. It is published in order to have a reference for any subsequent bug fixing.

Each target has its compiler, and each compiler has been compiled under the MingW64 distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website, or directly from this site here.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it you can download the executable from official website, or the one from this website.

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website, or directly from this site here and here.

Using main binaries for Windows (64 bit)

You can find here binaries for the latest version of the software (branch: main).

It contains, with respect to the published version, all the hot fixes and cold fixes that are periodically produced, based on requests on github and social channels. This is the version to use to ensure that bugs have been fixed, and is therefore the version to use in production.

Each target has its compiler, and each compiler has been compiled under the MingW64 distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website, or directly from this site here.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it you can download the executable from official website, or the one from this website.

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website, or directly from this site here and here.

Using beta binaries for Windows (64 bit)

You can find here binaries for the experimental version (beta branch), which contains additional features and new keywords.

Although it is the only version that can be used if you want to test the features that will be released in the future, it is not subjected to any quality check: therefore it cannot be used in production.

Each target has its compiler, and each compiler has been compiled under the MingW64 distribution.

target home computers / consoles additional software
cpc Amstrad CPC 464, Amstrad CPC 6128, Amstrad CPC 664 z88dk
atarixl Atari 1200XL, Atari 130XE, Atari 600XL, Atari 65XE, Atari 800XE, Atari 800XL, Atari XEGS cc65
atari Atari 400, Atari 800 cc65
coleco Coleco Vision, Dina (Chuang Zao Zhe 50), SpectraVideo SV-603 VGA z88dk
c128 Commodore 128 (CPU 8502) cc65
c128z Commodore 128 (CPU Z80) z88dk
c64 Commodore 64, Commodore Executive 64 cc65
c64reu Commodore 64 + REU cc65
d32 Dragon 32 asm6809
d64 Dragon 64 asm6809
msx1 MSX z88dk
pc128op Olivetti Prodest PC128, Thomson MO6 asm6809
plus4 Plus/4 cc65
sc3000 SEGA SC-3000 z88dk
sg1000 SEGA SG-1000 z88dk
coco TRS-80 Color Computer, TRS-80 Color Computer 2 asm6809
coco3 TRS-80 Color Computer 3 asm6809
mo5 Thomson MO5 asm6809
to8 Thomson TO8 asm6809
vic20 VIC-20 cc65
zx ZX Spectrum +2, ZX Spectrum 128K, ZX Spectrum 48K z88dk

Additional software needed

asm6809

asm6809 is a portable cross assembler targeting the Motorola 6809 and Hitachi 6309. Features arbitrarily complex expressions (with most C-style operators available), forward references, macro expansion and conditional assembly. Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS (or "DECB") binary, Motorola SREC, Intel HEX. To install it you can download the executable from official website, or directly from this site here.

cc65

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. To install it you can download the executable from official website, or the one from this website.

z88dk

z88dk is the only C and assembler development kit that comes ready out-of-the-box to create programs for over 100 z80-family (8080, 8085, gbz80, z80, z180, ez80_z80, Rabbit 2000, Rabbit 3000) machines. The project was started in 1998/9 to allow a TCP stack for the Cambridge z88 to be easily written. In recent years significant work has been undertaken to improve the number of targets supported, enhance library features, make the toolchain easier to. To install it you can download the executable from official website, or directly from this site here and here.

Recompiling sources under Windows (64 bit)

In order to compile ugBASIC from sources you need some software installed. Moreover, you have to download / init all submodules, as well. So, first of all you have to prepare your building environment.

Submodules

This is the alphabetical listing of the submodules that are initialized: some are needed for the gcc compiler to build the compiler (build), some are needed for the compiler to produce assembly code from a source in ugBASIC (ugbasic), and some are kept here for reference only (reference). The makefile contains instructions on how to use submodules.

  • 6502 reference
  • asm6809 ugbasic
  • atarisio ugbasic
  • bison build
  • cc65 ugbasic
  • flex build
  • fp09 reference
  • libxml2 build
  • toolshed ugbasic
  • z80float reference
  • z88dk ugbasic

Preparation steps

To recompile under MingW64 you need to download and install a POSIX-compliant environment for Windows like MSYS2. So, download the installer for your PC (a name like msys2-x86_64-20240727.exe).

From the ucrt64's shell, installed by MSYS2, you have to download and install a bunch of pachages. The installation is done using pacman, the default installer. This is the list of commands to invoke (in strict order):

pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-ccmake
pacman -S mingw-w64-ucrt-x86_64-make
pacman -S git
pacman -S autoconf
pacman -S cmake
pacman -S autogen
pacman -S libtool
pacman -S automake
pacman -S flex
pacman -S bison
pacman -S vim

Building steps

You can recompile ugBASIC for the latest tagged release (v1.16.4), the latest compiled release (from the main branch) and the beta release (from beta branch), by using the proper {branch}. Each target has its compiler, and each compiler can be compiled using the specific {target} parameter on make command. This is the list of commands tested on MingW64:

git clone "https://github.com/spotlessmind1975/ugbasic"
cd ugbasic
git checkout {branch}
git submodule update --init --recursive

Finally, you can build the compiler for your target:

cd ugbasic
make target={target} clean compiler

Please note that the beta repository is not QA checked. This means that it is possible, but unlikely, that the compiler may fail when compiling specific targets, especially those that only exist in beta.

Don't worry!

You can still build this branch by moving to one of the previous commits until you have compilable source. Click here for a list of commits produced for the beta branch. Once you selected a specific commit, type those commands:

git checkout {commit}

Then, take these makefile:

ugbasic/makefile
ugbasic/ugbc/makefile

and force the variable BETA to force beta generation:

#BETA=$(shell cat .git/HEAD | grep beta)
BETA="beta"

Finally, type those commands:

make target={target} clean compiler

An integrated IDE*

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