User Tag List

Показано с 1 по 10 из 140

Тема: Реконструкция CGLIB для использования из OMSI Pascal

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Реконструкция CGLIB для использования из OMSI Pascal

    Я здесь решил немного поковырять УК-НЦ. Уже рисую из Паскаля точки :-)



    Я реконструирую графическую библиотеку CGLIB и попутно адаптирую её для работы с кодом на OMSI Pascal. Выбор этого Паскаля оправдан тем, что на нём получаются самые маленькие .SAV (3 блока для пустой программы).

    Трудности: в приложенном Хоботом архиве описание версии 2.01, а сам объектник - версии 1.0. В описании есть такие процедуры (а кода для них в объектнике нет):

    int Palette(int n)

    Функция устанавливает палитру из стандартного набора. В стандартном
    наборе имеется 4 палитры, соответствие логического цвета
    и физического цвета приведено ниже. 0<=n<=3.
    Стандартные палитры:
    Палитра 0: 0 -- черный
    1 -- зеленый
    2 -- красный
    3 -- желтый
    Палитра 1: 0 -- синий
    1 -- голубой
    2 -- фиолетовый
    3 -- белый
    Палитра 2: 0 -- черный
    1 -- темно-зеленый
    2 -- темно-красный
    3 -- коричневый
    Палитра 3: 0 -- темно-синий
    1 -- темно-голубой (серый)
    2 -- темно-фиолетовый
    3 -- бледно-белый

    int SetPalette(int c0, c1, c2, c3)

    Функция позволяет создавать произвольную палитру. Числа c0,c1,c2,c3
    представляют собой последовательность физических номеров в палитре,
    при этом 0<=cN<=15. c0 - номер физ.цвета с лог.номером 0, c1 - номер
    физ.цвета с лог.номером 1 и т.д. Соответствие физ.номеров цветам:
    0 -- черный
    1 -- темно-синий
    2 -- темно-зеленый
    3 -- серый
    4 -- темно-красный
    5 -- темно-фиолетовый
    6 -- коричневый
    7 -- бледно-белый
    8 -- черный
    9 -- синий
    10-- зеленый
    11-- голубой
    12-- красный
    13-- фиолетовый
    14-- желтый
    15-- белый
    Нужно повторить функциональность этих двух процедур на асме.

    P.S. Форум на тему изменения палитр смотрел. Г-н Зимин устанавливает их по-холодному через Esc-последовательности (а нам нужна горячая замена на лету, как я понимаю). А работать с ячейками 2470 и 2472 у меня не получилось. Код ничего не делает:

    Код:
    PROCEDURE Palette; (* Здесь по идее палитра обнуляется во все чёрные цвета *)
    BEGIN /*$C
        MOV     #^O2470, R0
        CLR     R0
        CLR     2(R0)
    */
    END {Palette};
    Вообще при обращении к этим ячейкам ничего не происходит. Вот такая команда, предложенная S_V_B для перевода в 320 строк, тоже ничего не делает:

    Код:
    BIS #20,@#2462
    Что я делаю не так? Буду рад любой помощи.
    Последний раз редактировалось Oleg N. Cher; 03.03.2020 в 22:08.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  2. Ответов: 7
    Последнее: 12.12.2019, 04:12
  3. Turbo Pascal 4 и CP/M 3 для Корвета
    от litwr в разделе Корвет
    Ответов: 10
    Последнее: 26.11.2019, 04:19
  4. Язык PL/M. Возможность использования.
    от James DiGreze в разделе Программирование
    Ответов: 18
    Последнее: 15.01.2006, 12:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •