{{htmlmetatags>metatag-robots=() metatag-title=(ON...GOSUB | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(Manual page for ON...GOSUB) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=(ON...GOSUB | ugBASIC User Manual) metatag-og:description=(Manual page for ON...GOSUB) }} ====== ugBASIC User Manual ====== ===== ON...GOSUB ✓ ===== ===== SYNTAX ===== ON expression GOSUB label1[, label2 [, ... ] ] ==== PURPOSE ==== This command is used to force a unconditional jump with returning to a pre-defined position when a specific expression is calculated. The choice is done against several positions, and it depends on what value is held by the expression at the time it is spotted. To work properly, the expression must have a value from 1 up to the number of the highest possible destination. If the expression has a value of 0 or greater than the highest possibile destination, no jump will be performed. ==== EXAMPLE ==== ON level GOSUB level1, level2, level3 See also the following example files: * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_by_expression_01.bas|control_by_expression_01.bas]]'' ==== ABBREVIATION ==== ON...Gs ==== 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 ==== 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 ON...GOSUB|open an issue]] for this keyword on GitHub. Thank you!===== POWERED BY ===== [[:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]