Важная информация

User Tag List

Страница 15 из 15 ПерваяПервая ... 1112131415
Показано с 141 по 149 из 149

Тема: Ретро-ЯП Millfork для Atari, Apple II, ZX Spectrum, MSX, CP/M, NES, Game Boy и MS-DOS

  1. #141
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,775
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    73
    Поблагодарили
    50 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    Wink

    Поковырял я тут тему со шрифтами, в принципе ничего «сложного» как опосался @andrews не оказалось.
    Достаточно сменить значение по адресу 756, на старший байт расположения нового шрифта в памяти.

    Заодно дописал сохранение файлов, и закомментированный кукусок кода, который сохраняет на дискету оригинальный шрифт атари из ROM, размером 1024 байта.
    Ну и накидал в образ прикольных ещё шрифтов, при желании можно дорисовать русские символы.

    Русский вводится переключением капса вместо мелких букв.







    Вложения Вложения
    • Тип файла: zip DOS6.zip (28.4 Кб, Просмотров: 97)

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

    andrews (14.12.2024)

  3. #142
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,775
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    73
    Поблагодарили
    50 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Продолжая разбираться в премудростях хранения графических данных решил написать просмотрщик для картинок в формате MIC.
    Формат простой «обычный» bitmap без премудростей в виде чанков, но как оказалось со своими нюансами. Замучав народ на зарубежном форуме мне таки удалось родить нечто удобоваримое.
    Из особенностей:
    1) Antic не умеет делеко в раму, потому битмап должен грузиться поближе, в идеале с адреса $2000
    2) Antic не умеет адресовать одновременно больше 4к, из-за этого нужно в Display List для каждой строчки устанавливать новый адрес данных
    3) Из-за первого и второго пришлось грузить файл хитрым образом, блоками по 3840, 3840 и 1924 в адреса $2000, $3000 и $4000 соответственно.

    Пока не сделал этого на экране творился дурдом и мусор.

    Пока искал другие примеры картинок в формате MIC (кроме своего логотипа) наткнулся что он (MIC) ещё произвольного размера может быть по высоте. Пока сделал только для одного размера, но
    возвращаемся к вопросу как узнать размер файла на диске и желательно в байтах?










    ps. подвигал немного палитру в эмуле, что бы ближе была как на моём атари.
    Вложения Вложения
    • Тип файла: zip DOS7.zip (62.8 Кб, Просмотров: 20)

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

    andrews (19.12.2024)

  5. #143
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,378
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    127
    Поблагодарили
    95 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем для Display List задавать адрес для каждой строчки?

  6. #144
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,775
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    73
    Поблагодарили
    50 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    Зачем для Display List задавать адрес для каждой строчки?
    Ну теоретически достаточно только для 3х блоков, а так можно задать отдельно цвета как в мультколоре на ZX

    Вот обычный MIC но с «расширенной» палитрой для каждой строчки


  7. #145
    Master
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    510
    Спасибо Благодарностей отдано 
    169
    Спасибо Благодарностей получено 
    181
    Поблагодарили
    86 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пытаюсь понять что с этим зверем Millforkом можно сделать, буксую на основах ))
    Например в 'zxspectrum.mfk' и много где ещё:
    Код:
    inline asm void bell() {
        ? ld hl,$6A
        ? ld de,$105
        ? call $3B5
        ? ret
    }
    Не могу найти в инструкции что означает знак вопроса в данном случае.

  8. #146
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,775
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    73
    Поблагодарили
    50 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    Не могу найти в инструкции что означает знак вопроса в данном случае.
    ANALогично, поэтому просто писал ASM без всяких вопросов.

  9. #147
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,378
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    127
    Поблагодарили
    95 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Некоторый недостаток языка - это документация
    https://github.com/KarolS/millfork/b...assemblyz80.md
    Any assembly opcode can be prefixed with ?, which allows the optimizer change it or elide it if needed. Opcodes without that prefix will always be compiled as written.

    The '!' prefix marks the statement as volatile, which means it will be a subject to certain, but not all optimizations, in order to preserve its semantics.

  10. Эти 2 пользователя(ей) поблагодарили Shiny за это полезное сообщение:

    breeze (07.01.2025), Dart Alver (07.01.2025)

  11. #148
    Master
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    510
    Спасибо Благодарностей отдано 
    169
    Спасибо Благодарностей получено 
    181
    Поблагодарили
    86 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    Некоторый недостаток языка - это документация
    Да с английским у меня туговато, хотя онлайн переводчики в общем то неплохо переводят, но сама документация далеко не всегда достаточно разжевана, или лежит гдето где и не найдёшь нифига.
    Впрочем это почти с любой докой так. В SjASMplus тоже далеко не всё прозрачно описано, хотя там мне нравится что всё в едином файле и можно полистать страницу. ))

    Any assembly opcode can be prefixed with ?, which allows the optimizer change it or elide it if needed. Opcodes without that prefix will always be compiled as written.

    The '!' prefix marks the statement as volatile, which means it will be a subject to certain, but not all optimizations, in order to preserve its semantics.
    Да этот абзац как-то проглядел .

    Перевод онлайн:

    Любой код операции сборки может иметь префикс ?, что позволяет оптимизатору изменить его или исключить при необходимости. Коды операций без этого префикса всегда будут компилироваться так, как написано.

    '!' префикс помечает оператор как изменчивый, что означает, что он будет подвергаться определенным, но не всем оптимизациям, чтобы сохранить его семантику.



    Честно не представляю каким образом оптимизатор будет чтото менять в готовых ассемблерных процедурах и по какому принципу исключать. По поводу '!' вообще непонятно. Похоже это всё типа задел на будущее.

  12. #149
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,378
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    127
    Поблагодарили
    95 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    Честно не представляю каким образом оптимизатор будет чтото менять в готовых ассемблерных процедурах и по какому принципу исключать. По поводу '!' вообще непонятно. Похоже это всё типа задел на будущее.
    Оптимизатор иногда выкидывает кунштюки, полюбоваться на них можно, добавив ключ -s, чтобы получить .asm. С параметрами ? и ! не разбирался. Спрошу при случае.

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

    Ответ ттакой:
    Насколько я помню, модификаторы работают так,
    ? - эту строку компилятор может оптимизировать, например выбросить, если это ? RET например, и функция инлайнится/ Но это на усмотрение оптимизатора
    ! - это кажется запрещает оптимизацию этой строчки (могу быть неправ)
    Так что аккуратнее с оптимизацией.

Страница 15 из 15 ПерваяПервая ... 1112131415

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

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

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

Похожие темы

  1. Ответов: 11
    Последнее: 08.12.2023, 17:18
  2. Bad Apple для MSX/MSX2
    от Pyhesty в разделе MSX
    Ответов: 4
    Последнее: 31.05.2021, 21:45
  3. Перенос игр с Game Boy на ZX Spectrum
    от CityAceE в разделе Программирование
    Ответов: 104
    Последнее: 14.02.2019, 10:56
  4. Game Boy Advance
    от megabyte в разделе Nintendo
    Ответов: 8
    Последнее: 22.05.2006, 14:48
  5. Game Boy Advance в Питере.
    от Surfin_Bird в разделе Nintendo
    Ответов: 10
    Последнее: 21.08.2005, 09:50

Ваши права

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