Вторник, 21.05.2024, 21:14

Каталог статей

Главная » Статьи » DCPU-16 » Туториалы

Как пользоватся DCPU-16 Studio
По мне, один из самых удобных эмуляторов - это DCPU-16 Studio.
Скачать его можно здесь: http://badsector.github.com/dcpustud/.

Итак, в этом эмуляторе есть много разных полей, кнопок и чекбоксов. Я буду говорить о них по мере необходимости.

Первое поле, которое нам понадобится - это поле Assembly. Туда мы пишем наш код.

Второе, нужное нам поле - это поле Screen. Туда выводится все из видеопамяти.
Видеопамять в этом эмуляторе начинается с 0х8000 адреса. О видеопамяти скажу немного позже.

Сначала, напишем простейший код:

; Simple test by x0m9k
SET A, 0x10
SET B, 10
SET C, 0xBF
: end SET PC, end

Нажимаем кнопку Reset, и Assembly (F9).
Reset - сбрасывает процессор.
Assembly - компилирует наш код в машинный.

В поле Messages отображаются сообщения самого эмулятора.

После того, как мы скомпилируем наш код в машинный, в поле Disassembly появится дизассамблированый (операция обратная компиляции) код.

Что бы заставить нашу программу запустится, нужно поставить флажок в чекбоксе Running. Чтобы остановить программу снимаем этот флажок. Для отладки, можно исполнять программу пошагово, нажимая Single Step или же F7. Кстати, чекбокс Follow заставляет "следить" за выполнением программы. Т.е. текущая исполняемая строка будет подсвечиваться.

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

A - 16
B - 10
C - 191

Поле Memory Dump - память.

Итак, теперь подробнее о видеопамяти.
Как я уже сказал, видеопамять начинается с адреса 0x8000. Это не стандартная спецификация.
Размер экрана 32х16.

И так, как же написать нужный нам символ, нужным цветом?
Очень просто!
Мы просто устанавливаем значение ячейки видеопамяти на нужное число.

Число составляется данным образом:
0xfbcc
f - цвет символа
b - цвет фона
cc - код символа

Мы сейчас напишем простую программу выводящую все символы. Docendo discimus ("Обучая, обучаемся сами"). Кстати, здесь используется стандартная ASCII кодировка.

Вот таблица цветов:
0x0 - черный
0x1 - синий
0x2 - зеленый
0x3 - бирюзовый
0x4 - красный
0x5 - фиолетовый
0x6 - темно-оранжевый или коричневый
0x7 - серый
0x8 - черный
0x9 - ярко-синий
0xa - ярко-зеленый
0xb - ярко-бирюзовый
0xc - ярко-красный
0xd - ярко-фиолетовый
0xe - желтый
0xf - белый

Итак, переходим к нашей программе, выводящую все символы. Вот она:

; Simple symbols test by x0m9k
: start
SET B, 0x8000; Устанавливаем регистр B в начало видеопамяти. Зачем, поймете позже
SET C, 0xf000 ; Устанавливаем начальный символ

: code ; Начало цикла
SET [B], C ; Устанавливаем ячейку

IFE B, 0xf0ff ; Если мы уже напечатали последний символ...
SET PC, end ; ... то завершаем программу.
; Иначе, продолжаем цикл.
ADD C, 1 ; Прибавляем единичку - получаем код следующего символа.
ADD B, 1 ; Вот, зачем нужно было использовать регистр B -
               ; чтобы получать следующее ячейку памяти в цикле.
SET PC, code ; Возвращаемся в начало цикла.

: end
SET PC, end ; Циклим программу в конце, чтобы не было проблем

Чтобы ускорить выполнение этого кода, можно поставить флажок на Cycle Extract - он отключает обновление всех полей, кроме экрана.

И напоследок, несколько полезных вещей.
Если хотите увидеть экран больше, то вам в View -> User Screen.
Видеопамять не стирается при нажатии Reset. Нужно использовать CPU -> Full Reset.

Ну, вот пожалуй и все!

Источник: http://vk.com/topic-37480485_26394045
Категория: Туториалы | Добавил: x0m9k (15.04.2012) | Автор: Артем Кузнецов
Просмотров: 496 | Теги: туториал, ассемблер, dcpu-16, dcpu-16 studio, tutorial, assembler | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Defend Developing | 2024 | Нашёл баг?