Диалекты бейсика для ZX Spectrum 1992 г.

Beta Basic - Работа с памятью.


РАБОТА С ПАМЯТЬЮ_

DPOKE, DPEEK(), POKE, MEMORY$()

Beta Basic, как и любой другой серьезный диалект Бейсика, может оперировать не только одно-, но и двухбайтовыми числами.

Для записи в память двухбайтового числа достаточно выполнить оператор

DPOKE < адрес > ,< число > - а для чтения двухбайтового числа применить функцию

DPEEK {< адрес >)

Более того, Beta Basic располагает также средствами записи в память целых строк символов (точнее, кодов этих символов), начиная с указанного адреса. Для этих целей используется все тот же РОКЕ, но с новым синтаксисом:

РОКЕ < адрес >, < строка символов>

Предусмотрена и обратная функция, воспринимающая всю память как одну большую строку кодов символов и выделяющая участок памяти, который можно, например, скопировать в символьную переменную:

MEMORY $ () (< адрес начала > ТО < адрес конца >)

Все эти новые средства позволяют быстро обрабатывать большие порции памяти. Впечатляющим примером может послужить такая программка:

10 LET A$=STRING$ (6144,CHR$ BIN 01010101) 20 LET B$=STRING$ (6144,CHR$ BIN 10101010) 30 DO: POKE 16384,A$: POKE 16384,B$: LOOP

В ней функция STRINGS (к подробному рассмотрению ее мы вернемся позже) формирует строки длиной по 6144 символа, коды которых представляют собой в двоичном виде чередующиеся нули и единицы. А оператор РОКЕ записывает эти коды в экранную область памяти (6144 байта — размер этой области без атрибутов). Результатом работы такой программки будут быстро бегущие по экрану вертикальные полоски.

Пользуясь оператором РОКЕ и функцией MEMORY$, можно запоминать экранные картинки как символьные строки, а затем снова выводить их на экран:

10 PLOT 60,60: DRAW 100,100,4000

20 LET A$=MEMORY$()(16384 TO 23295): REM Запоминаем экран 30 CLS: PRINT "Нажмите любую клавишу" 40 PAUSE 0: POKE 16384, A$

Возможно также быстрое копирование участков памяти. Дополним предыдущую программу строками:

70 LET A$=MEMORY$ () (18432 ТО 20479) 80 РОКЕ 16384, А$: РОКЕ 20480, А$

Средняя треть экрана будет скопирована в верхнюю и нижнюю.




СОДЕРЖАНИЕ:
  1. Laser Basic - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Разное - призраки кошек.
Железо - Расширенный экран.
MinskZxNet! - а модем то у меня попрежнему глючит.

В этот день...   22 мая