Кіріспе
Жоғары деңгейдегі бағдарламалау тілдеріндегі командалар, White Town альбомы
the White Town album
Компьютерлік техникада PEEK және POKE – бұл кейбір жоғары деңгейдегі бағдарламалау тілдерінде жад мекенжайы арқылы анықталатын жад ұяшығының мазмұнына қол жеткізу үшін қолданылатын командалар. PEEK – көрсетілген жад адресіндегі байтты алады. POKE – көрсетілген мекенжайға жад байтын орнатады. Бұл командалар DECsystem 10 мониторы сияқты машиналық код мониторларында пайда болған; бұл командалар ең көп BASIC бағдарламалау тілімен байланысты, бірақ Pascal және COMAL сияқты басқа тілдерде де кездеседі. Бұл командалар C және басқа бағдарламалау тілдеріндегі көрсеткіштермен атқаратын қызметтері жағынан ұқсас. PEEK және POKE командаларының BASIC-тегі ең алғашқы сілтемелерінің бірі, мүмкін ең ертесі – Altair BASIC. PEEK және POKE командалары компьютердің әртүрлі функцияларын басқару үшін, әсіресе кіріс/шығыс перифериялық құрылғыларын басқару үшін арналған, жадқа бейнеленген аппараттық тізілімдерді өзгерту мақсатымен ертедегі жеке компьютерлік жүйелерде жасалды. Бағдарламашылар осы командаларды бағдарламалық жасақтаманы көшіру үшін немесе бағдарламаның мақсатын айналып өту үшін (мысалы, ойын бағдарламасында пайдаланушыға алдауға мүмкіндік беру үшін) пайдалана алады. Бүгінде BASIC сияқты жоғары деңгейдегі тілді қолдану арқылы компьютер жадының мұндай төмен деңгейде басқаруы сирек кездеседі. Сондықтан PEEK және POKE командаларының ұғымдары көне деп есептеледі. «Peek» және «poke» терминдері компьютерлік бағдарламалауда жадқа қол жеткізуді білдіретін сөздер ретінде жиі қолданылады.
these commands are particularly associated with the BASIC programming language, though some other languages such as Pascal and COMAL also have these commands. These commands are comparable in their roles to pointers in the C language and some other programming languages. One of the earliest references to these commands in BASIC, if not the earliest, is in Altair BASIC. The PEEK and POKE commands were conceived in early personal computing systems to serve a variety of purposes, especially for modifying special memory mapped hardware registers to control particular functions of the computer such as the input/output peripherals. Alternatively programmers might use these commands to copy software or even to circumvent the intent of a particular piece of software (e. g. manipulate a game program to allow the user to cheat). Today it is unusual to control computer memory at such a low level using a high level language like BASIC. As such the notions of PEEK and POKE commands are generally seen as antiquated. The terms peek and poke are sometimes used colloquially in computer programming to refer to memory access in general.
16 және 32 биттік нұсқалар
Ертедегі үй компьютерлерінің көпшілігі 8 биттік процессорларды қолданғандықтан, PEEK немесе POKE мәндері 0 мен 255 аралығында болады. Мұндай машиналарда 16 биттік мәнді орнату немесе оқу үшін екі команда қажет, мысалы, A мекенжайындағы 16 биттік бүтін санды оқу және содан кейін A мекенжайына 16 биттік бүтін санды V сақтау. Кейбір BASIC-терде, тіпті 8 биттік машиналарда, жадтан 16 биттік мәндерді оқу және жазу үшін командалар бар. Atari 8 биттік компьютерлері үшін BASIC XL "D" (қос) префиксін қолданады: DPEEK және DPOKE. Шығыс Германияның "Клейнкомпьютері" KC85/1 және KC87 оларды DEEK және DOKE деп атайды. Sinclair QL 16 биттік мәндер үшін PEEK W және POKE W, ал 32 биттік мәндер үшін PEEK L және POKE L командаларын қолданады. ST BASIC Atari ST үшін дәстүрлі атауларды қолданады, бірақ 8/16/32 биттік жад сегменттерін және олардың мөлшерін анықтайтын мекенжайларды анықтауға мүмкіндік береді. Linux командалық жолындағы peekpoke утилитасы негізінен ARM негізделген бір тақталы компьютерлер үшін әзірленді. peekpoke – Linux командалық жолының құралы, жүйе жадынан оқу және жазу үшін қолданылады. Оның негізгі мақсаты – пайдаланушы деңгейінен аппараттық перифериялық құрылғылармен байланысу: күйді оқу немесе өзгерту және тізілімдерді қарау.
POKE-нің жалпы қолданылуы
"POKE" кейде жад мазмұнын тікелей өңдеуге, BASIC арқылы емес, қатысты қолданылады, әсіресе 1970-ші жылдардың соңы мен 1980-ші жылдардың басында 8 биттік микрокомпьютерлерде бағдарламалауды үйренгендер арасында. BASIC көбінесе сол машиналарда (үй компьютерлерінде әдетте ROM-да сақталады) қол жетімді жалғыз тіл болды, сондықтан машина тілінде бағдарламалаудың ең оңай және қарапайым жолы BASIC-ті пайдаланып, операция кодтарын жадқа "POKE" ету болды. Мұндай төменгі деңгейдегі кодтау көбінесе ассемблерге қол жеткізбеуден туындады. "POKE" және "PEEK" терминдерінің жалпы қолданылымының мысалы – Windows үшін Visual Basic, онда DDE LinkPoke кілт сөзін пайдалану арқылы жүзеге асырылуы мүмкін.