User Tools

Site Tools


ugbasic:user:kw:forbid
Translations of this page:


ugBASIC User Manual

FORBID

SYNTAX

   FORBID

PURPOSE

In some situations, it is necessary to ensure that a sequence of operations is executed atomically, without interruption. The FORBID instruction plays a crucial role in this way, offering the programmer a way to take full control of the system's execution, at least temporarily.

In simple terms, FORBID blocks any attempt by ugBASIC to pass execution from one task to another. This means that the task that called FORBID will continue to execute its code without interruption until a corresponding call to ALLOW is made. The FORBID ensures that a sequence of critical operations is executed indivisibly, without interference from other tasks. This gives the programmer granular control over the system's execution.

EXAMPLE

  PARALLEL PROCEDURE test
     FORBID
     ' busy waiting, multitasking is suspended!
     FOR i=0 TO 1000: WAIT 1 MS : NEXT i
     ALLOW
  END PROC

ABBREVIATION

 Fd

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 open an issue for this keyword on GitHub. Thank you!

POWERED BY