------------ Дoбавленo:
В 5-й версии обнаружен баг: не была подключена связь в блоках "Box processor" и "Ellipse processor", из-за чего координаты не считывались из стека. В 6-й версии поправлю.
------------ Дoбавленo:
Версия 6я (очередная).
Исправлено: некорректная работа блоков рисования прямоугольника и эллипас.
Добавлены команды:
Серия команд для рисованя дуг и секторов.
Все команды этой серии используют 4 пары координат.
/ARC - рисует дугу
/ARCF - рисует сектор.
/ARCR - рисует дугу. Вторая пара координат указывается относительно первой.
/ARFR - рисует сектор. Вторая пара координат указывается относительно первой.
/ARCQ - рисует дугу. Четвёртая пара координат указывается относительно третьей.
/ARFQ - рисует сектор. Четвёртая пара координат указывается относительно третьей.
/ARQR - рисует дугу. Вторая пара координат указывается относительно первой. Четвёртая пара координат указывается относительно третьей.
/AFQR - рисует сектор. Вторая пара координат указывается относительно первой. Четвёртая пара координат указывается относительно третьей.
/ARCC - отрисовка дуги будет происходить против часовой стрелки.
/ARCW - отрисовка дуги будет происходить по часовой стрелке.
Анонс: скоро выложу версию с экспериментальной поддержкой управлением выполнением программы. Пока что сделаю только IF.
Ожидаются следующие команды:
Условный оператор IFxx..FI. Напоминаю: элементы берутся из стека в обратном порядке: сначала второй, затем - первый!
/IFEQ - сравнивает два верхних элемента стека, выполняет условный блок в случае равенства
/IFNE - сравнивает два верхних элемента стека, выполняет условный блок в случае неравенства
/IFGE - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент больше или равен второму
/IFGT - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент строго больше второго
/IFLE - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент меньше или равен второму
/IFLT - сравнивает два верхних элемента стека, выполняет условный блок если первый элемент строго меньше второго
/ELSE - альтернативная ветка условного блока
/FI - конец условного блока