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)
You can find here binaries for the latest tagged release (v1.16.5
),
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.5
(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.
You can find here binaries for the latest tagged release (v1.16.5
).
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 |
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.
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.
Download all compilers (52 MB, format: .tar.gz)
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 |
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.
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.
Download all compilers (50 MB, format: .tar.gz)
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 |
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.
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.
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
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
You can recompile ugBASIC for the latest tagged release (v1.16.5
),
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 threads=1 target={target} clean compiler
If you wish, you can indicate whether make should run by parallelizing the compilation,
therefore taking advantage of the possible presence of multiple CPUs (cores) within your
computer. This can be done using the threads parameter. The value 1
is the most
compatible value (but also the slower one), which takes advantage of a single core. The
default value is 4
.
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
You can find here binaries for the latest tagged release (v1.16.5
),
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.5
(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.
You can find here binaries for the latest tagged release (v1.16.5
).
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 |
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.
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.
Download all compilers (62 MB, format: .tar.gz)
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 |
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.
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.
Download all compilers (60 MB, format: .tar.gz)
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 |
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.
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.
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
You can recompile ugBASIC for the latest tagged release (v1.16.5
),
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 threads=1 target={target} clean compiler
If you wish, you can indicate whether make should run by parallelizing the compilation,
therefore taking advantage of the possible presence of multiple CPUs (cores) within your
computer. This can be done using the threads parameter. The value 1
is the most
compatible value (but also the slower one), which takes advantage of a single core. The
default value is 4
.
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
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
You can find here binaries for the latest tagged release (v1.16.5
),
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.5
(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.
You can find here binaries for the latest tagged release (v1.16.5
).
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 |
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.
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.
Download all compilers (63 MB, format: .zip)
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 |
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.
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.
Download all compilers (60 MB, format: .zip)
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 |
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.
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.
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
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
You can recompile ugBASIC for the latest tagged release (v1.16.5
),
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 threads=1 target={target} clean compiler
If you wish, you can indicate whether make should run by parallelizing the compilation,
therefore taking advantage of the possible presence of multiple CPUs (cores) within your
computer. This can be done using the threads parameter. The value 1
is the most
compatible value (but also the slower one), which takes advantage of a single core. The
default value is 4
.
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
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
You can find here binaries for the latest tagged release (v1.16.5
),
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.5
(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.
You can find here binaries for the latest tagged release (v1.16.5
).
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 |
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.
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.
Download all compilers (65 MB, format: .zip)
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 |
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.
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.
Download all compilers (63 MB, format: .zip)
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 |
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.
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.
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
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
You can recompile ugBASIC for the latest tagged release (v1.16.5
),
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 threads=1 target={target} clean compiler
If you wish, you can indicate whether make should run by parallelizing the compilation,
therefore taking advantage of the possible presence of multiple CPUs (cores) within your
computer. This can be done using the threads parameter. The value 1
is the most
compatible value (but also the slower one), which takes advantage of a single core. The
default value is 4
.
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
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".