| Home CBM ASCII-X BASIC Disk Commands Enter RUN mode Program Format Secret Variables Variable Format Expressions Keywords (divide) (equal) (less) (minus) (more) (multiply) (plus) (power) Abs And Append Asc Atn Auto Backup Bank Begin Bend Bload Boot Box Bsave Bump Catalog Char Chr Circle Close Clr Cmd Collect Collision Color Concat Cont Copy Cos Data Dclear Dclose Dec Def Delete Dim Directory Dispose Dload Do Dopen Draw Ds Ds string Dsave Dverify El Else End Envelope Er Err Exit Exp Fast Fetch Filter Fn For Fre Get Get num Getkey Go Gosub Goto Graphic Gshape Header Help Hex If Input Input num Instr Int Joy Key Left Len Let List Load Locate Log Loop Mid Monitor Movspr New Next Not Off On Open Or Paint Peek Pen Pi Play Pointer Poke Pos Pot Print num Pudef Quit Rclr Rdot Read Record Rem Rename Renumber Restore Resume Return Rgr Right Rlum Rnd Rreg Rspcolor Rsppos Rsprite Run Rwindow Save Scale Scnclr Scratch Sgn Sin Sleep Slow Sound Spc Sprcolor Sprdef Sprite Sprsav Sqr Sshape St Stash Step Stop Str Swap Sys Tab Tan Tempo Then Ti Ti string To Trap Troff Tron Until Using Usr Val Verify Vol Wait While Width Window Xor Syntax Tokens C128 D64plus Disk Escape Codes Hardware PCxface PETSCII Pet2asc Futurama IBM PC-AT Contact Games Glossary Hall of fame Hall of shame Miscellaneous Privacy policy Programming Twisty puzzles |
SLEEP seconds
Program flow control. Suspend execution for a specified period of time.
SLEEP provides a more reliable delay mechanism than the often used "empty FOR/NEXT". It works correctly regardless of NTSC/PAL differences or CPU speed. Technically it uses the KERNAL's Jiffy timer, so as long as the KERNAL interrupt hasn't been disabled or redirected this works fine. While the program waits, it checks the STOP key and normal system IRQ routines continue to execute (such as checking the keyboard, moving sprites, and generating sound). However a COLLISION will not execute while BASIC SLEEPs. Any COLLISION will be detected, but not acted upon until SLEEP finishes waiting. In this regard, the classic FOR/NEXT delay may be preferred. The only real problem is the parameter is converted to an (unsigned) integer (see INT) so that fractional seconds of delay are not possible. If seconds is numeric, but not legal (see above) then ILLEGAL QUANTITY ERROR occurs. If seconds is a string, TYPE MISMATCH ERROR occurs. If seconds is omitted, SYNTAX ERROR is generated. Example:
© H2Obsession, 2014 |