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

Megabasic - Работа с машинными кодами.


РАБОТА С МАШИННЫМИ КОДАМИ_

CALL, DOKE, MON

Теперь расскажем о средствах, которые предоставляет MegaBasic для отладки программ в машинных кодах и стыковки их с бейсик-программами.

Для запуска программы в машинных кодах MegaBasic имеет оператор

CALl_z

- где 2 — стартовый адрес программы. Он вполне заменяет гобой сочетания операторов Spectrum-Бейсика RANDOMIZE USR z, PRINT USR z и пр., а в силу своей краткости босе удобен в среде MegaBasic, где ввод операторов осуществляется побуквенно.

Весьма практичен при отладке программ в машинных кодах оператор

DOKE_z,r

Он представляет собой не что иное, как двухбайтовый РОКЕ. Параметры: z — адрес, г — двухбайтовое число, заносимое в ячейки с адресами z и z+t.

Однако наиболее мощным средством отладки программ в машинных кодах является встроенный в MegaBasic монитор-отладчик78, представляющий собой вполне самостоятельную

РАБОТА С МАШИННЫМИ КОДАМИ

системную программу. Предусмотрены два способа вызова монитора: или из редактора MegaBasic командой

MON

- или в ходе выполнения программы сочетанием клавиш Space/F. При этом распахнется окно номер 3 (или окно с номером w, если ранее был выполнен оператор FX_3,w, переопределивший окно для монитора), представив фронтальную панель монитора (рис. 20).

Будьте готовы к тому, что монитор работает в шестнадцатеричной системе счисления.

Слева и вверху панели монитора представлены названия регистров процессора и их текущие значения. В правой части панели отражается фрагмент памяти: адрес ячейки, ее содержимое и соответствующий символ. Адрес ячейки памяти, на которую в данный момент настроен монитор {текущей ячейки), выделен инверсным цветом. В нижней строке монитора расположена строка, отмеченная символом >. Она предназначена для ввода и редактирования команд монитора.

Содержимое текущей ячейки изменяется набором в командной строке нового значения и нажатием клавиши Enter. После этого текущей автоматически становится следующая ячейка. Переход к следующему адресу без изменения содержимого ячейки осуществляется простым нажатием Enter, а откат на одну ячейку назад — нажатием клавиш SS/J. Установить текущей произвольную ячейку памяти можно с помощью команды

М <адрес>

Монитор позволяет также изменять содержимое регистров. Делается это командой

R <двухбайтовое число>

Регистр, в который заносится значение, отмечен звездочкой (*). Перемещается звездочка, и, соответственно, меняется текущий регистр с помощью клавиши Р.

Регистры flF*FE fiiSiHS

FE7B В6 ?

Ш И I

|J 1 I И I

fe80 63 с

im II t

Состояние флагов

Адрес и содержимое текущей ячейки

Рис. 20. Фронтальная панель монитора.

Программа в машинном коде запускается командой

J <адрес>

Монитором предусмотрена возможность расстановки так называемых точек останова, что позволяет осуществлять отладку программ. Для указания места останова адрес, по которому нужно «тормознуть» выполнение программы, устанавливается текущим и нажимается клавиша S. Отменить точку останова можно клавишей U. После останова выполнение программы продолжается при нажатии клавиши К.

С помощью специальных команд монитора можно скопировать блок памяти по произвольному адресу (команда L) или занести во все ячейки выделенного блока памяти какое-либо значение (команда 1). Формат этих команд:

L <адрес начала блока> <адрес копирования) <длина блока>

2 <адрес начала блока> <длина блока> <6айт-заполнитель>

Выход из монитора происходит по нажатию Space.

Мы не стали здесь детально описывать приемы работы с монитором-отладчиком, поскольку эта книга посвящена Бейсику, а не программированию в машинных кодах*.




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


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

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



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

Похожие статьи:
Вступление - С каждым днем, нашего спектрумовского брата все меньше и меньше становиться.
Интервью - Интервью с MDF HACKER'ом.
Вступление - об авторах, содержание номера.

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