{{htmlmetatags>metatag-robots=() metatag-title=(CONST | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(Manual page for CONST) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=(CONST | ugBASIC User Manual) metatag-og:description=(Manual page for CONST) }} ====== ugBASIC User Manual ====== ===== CONST ✓ ===== ===== SYNTAX ===== [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 ==== PURPOSE ==== 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. ==== EXAMPLE ==== CONST x = 42 POSITIVE CONST y = -42: ' this raises an error! CONST width IN (0,320] = 128 See also the following example files: * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/contrib_sierpinski.bas|contrib_sierpinski.bas]]'' * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/contrib_sierpinski2.bas|contrib_sierpinski2.bas]]'' * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/contrib_sierpinski3.bas|contrib_sierpinski3.bas]]'' ==== ABBREVIATION ==== C# ==== AVAILABLE ON ==== * * 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 ==== ALIAS FOR ==== [[SHARED CONST]] [[CONST SHARED]] [[GLOBAL CONST]] [[CONST GLOBAL]] ==== ANY PROBLEM? ==== If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=ISSUE ON CONST|open an issue]] for this keyword on GitHub. Thank you!===== POWERED BY ===== [[:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]