Кіріспе

Жоғары деңгейдегі бағдарламалау тілдеріндегі командалар, White Town альбомы

Компьютерлік техникада PEEK және POKE – бұл кейбір жоғары деңгейдегі бағдарламалау тілдерінде жад мекенжайы арқылы анықталатын жад ұяшығының мазмұнына қол жеткізу үшін қолданылатын командалар. PEEK – көрсетілген жад адресіндегі байтты алады. POKE – көрсетілген мекенжайға жад байтын орнатады. Бұл командалар DECsystem 10 мониторы сияқты машиналық код мониторларында пайда болған; бұл командалар ең көп BASIC бағдарламалау тілімен байланысты, бірақ Pascal және COMAL сияқты басқа тілдерде де кездеседі. Бұл командалар C және басқа бағдарламалау тілдеріндегі көрсеткіштермен атқаратын қызметтері жағынан ұқсас. PEEK және POKE командаларының BASIC-тегі ең алғашқы сілтемелерінің бірі, мүмкін ең ертесі – Altair BASIC. PEEK және POKE командалары компьютердің әртүрлі функцияларын басқару үшін, әсіресе кіріс/шығыс перифериялық құрылғыларын басқару үшін арналған, жадқа бейнеленген аппараттық тізілімдерді өзгерту мақсатымен ертедегі жеке компьютерлік жүйелерде жасалды. Бағдарламашылар осы командаларды бағдарламалық жасақтаманы көшіру үшін немесе бағдарламаның мақсатын айналып өту үшін (мысалы, ойын бағдарламасында пайдаланушыға алдауға мүмкіндік беру үшін) пайдалана алады. Бүгінде BASIC сияқты жоғары деңгейдегі тілді қолдану арқылы компьютер жадының мұндай төмен деңгейде басқаруы сирек кездеседі. Сондықтан PEEK және POKE командаларының ұғымдары көне деп есептеледі. «Peek» және «poke» терминдері компьютерлік бағдарламалауда жадқа қол жеткізуді білдіретін сөздер ретінде жиі қолданылады.

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 кілт сөзін пайдалану арқылы жүзеге асырылуы мүмкін.