User Tools

Site Tools

Translations of this page:

ugBASIC User Manual



   [POSITIVE] CONST identifier = value
   CONST identifier IN (min,max) = value
   CONST identifier IN [min,max) = value
   CONST identifier IN (min,max] = value
   CONST identifier IN [min,max] = value


Using the CONST command allows you to define one or more constants, which will be used later in the program. Constants have the advantage of being calculated once and for all, at compile time, directly by the compiler and can be used to initialize variables. Furthermore, the constants are global, that is, they are always visible everywhere, both in the main program and within the procedures. Finally, constants do not take up memory space.

In the definition of the constants itself it is possible to indicate whether it must be positive or not, with the keyword POSITIVE. This check is carried out at compilation time and, in the event of a negative result, it will result in a compilation error. This condition is useful to ensure that the preconditions related to the hardware are respected (as happens, for example, when calculating the margins in the case of a screen smaller than the expected minimum).

It is also possible to define a validity range of the values that will be represented in the constant. This interval is defined in a similar way to intervals in mathematics: using the square bracket means that the extremes (minimum, maximum) are included, while a round bracket means that the extremes are excluded.


  CONST x = 42
  POSITIVE CONST y = -42: ' this raises an error!
  CONST width IN (0,320] = 128

See also the following example files:




  • Atari (400/800)
  • Atari XL/XE
  • Commodore 128 (MOS 8502)
  • Commodore 128 (Zilog Z80)
  • Commodore 64
  • Commodore 64+REU
  • TRS-80 Color Computer
  • TRS-80 Color Computer 3
  • ColecoVision
  • Amstrad CPC 664
  • Dragon 32
  • Dragon 64
  • Thomson MO5
  • Thomson MO5
  • Olivetti Prodest PC128
  • Commodore PLUS/4
  • SEGA SC-3000
  • SEGA SG-1000
  • VG-5000
  • Commodore VIC-20
  • ZX Spectrum 48


If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!