User Tag List

Страница 34 из 54 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя
Показано с 331 по 340 из 531

Тема: ZX Like Pascal

  1. #331

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    как нарисовать линию?
    Не обязательно быструю процедуру.
    Можно и вызовом из ПЗУ.
    Вроде по адресу CALL 9146 расположена команда DRAW. Но пока не понял, как задать начало линии (PLOT) да и в принципе какими регистрами передаются параметры.

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

  3. #332

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,339
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как написать игру на ассемблере для ZX Spectrum

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

    PLOT 120,80: DRAW 35,-60

    Оператор DRAW реализует подпрограмма ПЗУ, находящаяся по адресу 9402. Перед обращением к ней в регистры C и B необходимо последовательно занести значения параметров, взятые по абсолютной величине, то есть в C в нашем примере помещается число 35, а в B нужно загрузить не -60, а 60. Но чтобы не потерять знаки, их следует разместить на регистрах E и D. Это значит, что в регистр E заносится единица, а в D - минус единица (или, что то же самое, 255). Таким образом, приведенная выше строка Бейсика на ассемблере запишется так:

    Код:
           LD    BC,#5078    ;C = 120 (#78), B = 80 (#50)
           CALL  8933
           LD    BC,#3C23    ;C = 35 (#23), B = 60 (#3C)
           LD    DE,#FF01    ;E = 1 (#01), D = -1 = 255 (#FF)
           CALL  9402
           RET
    Последний раз редактировалось Reobne; 20.10.2019 в 07:26.

    Этот пользователь поблагодарил Reobne за это полезное сообщение:

    ALKO(20.10.2019)

  4. #333

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По поводу музла.
    Может надо push-ами сохранять состояния всех регистров, флагов перед вызовом процедуры плеера.
    Или Asm команда пасцаля сама фигачит такой набор?

  5. #334

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    П.С. с линиями понятно.
    А вот с их атрибутами сложновато.
    Так и не понял как их изменить. Всё время рисуется чёрный инк, белый пэйпер.
    Последний раз редактировалось ALKO; 20.10.2019 в 17:58.

  6. #335

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ALKO, в той же книге есть про атрибуты ;-)
    ___________

  7. #336

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я попробовал вот эту комбинацию прямо перед вызовом рисовалки.

    LD A,70 ;байт атрибутов
    LD (23693),A ;помещаем в системную переменную ATTR_P
    Ничё не поменялось.
    Последний раз редактировалось ALKO; 20.10.2019 в 18:19.

  8. #337

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В принципе, уже не нужно. Я заливку сделал отдельной процедурой.
    Да и те линии мне нужны были лишь для менюшки, я её полностью процедурно решил рисовать. Рамки в цикле, заливка тоже.
    И текст скейлится. Ещё думаю, может и сам спрайт Алисы отскейлить процедурно вдвое. У Эндрю вроде были процедурки в ZXoom. Или нет, уже не помню.



    - - - Добавлено - - -

    Музон пашет, но порой подлагивает, когда обрабатывает перемещения спрайта с клавиатуры.

    - - - Добавлено - - -

    Может его можно как-то высоко-приоритетными прерываниями синхронизировать?
    Последний раз редактировалось ALKO; 21.10.2019 в 00:24.

    Этот пользователь поблагодарил ALKO за это полезное сообщение:

    Andrew771(21.10.2019)

  9. #338

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Музон пашет, но порой подлагивает, когда обрабатывает перемещения спрайта с клавиатуры.
    Может его можно как-то высоко-приоритетными прерываниями синхронизировать?
    В процедуре опроса клавы имеется восьмикратное чтение портов. Я не знаю, влияет ли чтение портов на прерывания, задам вопрос в разделе "Программирование".

  10. #339

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Таким образом сгладил темп музона. Но оно, естественно, жрёт драгоценные фпс-ы.
    MUSPLAY

    call 88BDh
    call 88BDh
    HALT
    ret

  11. #340

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

Страница 34 из 54 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

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