POKE es una instrucción en el lenguaje de programación BASIC usada en algunas de las primeras versiones de este lenguaje. Dicha instrucción se encargaba de grabar un valor en una determinada dirección de memoria, ambos datos dados como argumento.[1] También se encuentra la contrapuesta PEEK, cuyo objetivo era recuperar un valor de una dirección de memoria determinada.[2] Las instrucciones PEEK y POKE fueron implementadas por primera vez por Bill Gates y Paul Allen en 1975, en el lenguaje Altair BASIC.[3]
El primer número en una instrucción POKE se refiere a la posición de memoria, y el segundo, a su valor. Normalmente el segundo valor solía ser 0 (correspondiente a la instrucción en ensamblador Z80 nop -no hagas nada-) o 201 (ret -acaba y vuelve-). En otros casos podía tener un valor arbitrario a elección del jugador: por ejemplo, número de vidas.
POKE, en el ámbito de los jugadores hispanos de ordenadores de 8 bits como el ZX Spectrum, concretamente el verbo "POKEAR", es una palabra de jerga utilizada en los años 80 para identificar un tipo de trampa en un videojuego consistente en alterar una o varias instrucciones en su código máquina utilizando la instrucción de BASIC POKE. La finalidad era conseguir ventajas de cualquier tipo o comportamientos extraños.
En el caso del ZX Spectrum, por ejemplo, los juegos solían venir en varios bloques de carga, siendo el primero un corto fragmento de BASIC que se encargaba de cargar la pantalla de presentación (si la había) y el código máquina del juego, así como ejecutar éste al final.
Para introducir un POKE en el Spectrum lo habitual era interrumpir la carga tras cargar el BASIC y añadir la instrucción POKE justo antes de ejecutar el juego. POKE 35899,0, por ejemplo, permitía obtener vidas infinitas en el juego Jet Set Willy, mientras que en Knight Lore se conseguía inmunidad con POKE 47196,201.