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

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: Мои эксперименты

  1. #11
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    837
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shaos Посмотреть сообщение
    Там ещё какой-то нечитабельный файл AM на дискете видится
    Ну, я ж на писи делаю образы дисков. Возможно, что-то случайно закинул. Не знаю что это. А экзешники Maptest, ZXBMap, ZXMap нормально запускаются? У Maptest на железе, не скажешь, какое время?
    Последний раз редактировалось Smalovsky; 30.05.2021 в 17:15.
    ¡Un momento, señor fiscal!


  2. #12
    Master Аватар для Shaos
    Регистрация
    16.01.2005
    Адрес
    California, USA
    Сообщений
    805
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Ну, я ж на писи делаю образы дисков. Возможно, что-то случайно закинул. Не знаю что это. А экзешники Maptest, ZXBMap, ZXMap нормально запускаются? У Maptest на железе, не скажешь, какое время?
    Да - нормально запускаются - чуть позже видосик сниму на телефон

    А вообще если акселем копировать на экран, то весь экран копируется за 1.2 инта (т.е. в пределе 41 кадр в секунду) - вот код, который копирует из одной области видеопамяти в другую (можно сделать с нахлёстом, тогда будет типа скролл):
    Код:
    ; display page was opened from the #C000 already
            LD HL,#C000     ; Address of the beginning of a line of first screen 
            LD DE,#C180     ; Address of the beginning of a line of second screen 
            LD BC,#140      ; The width of the screen
            DI              ; Disable interrupt
            LD D,D          ; Switch the Accelerator to define block size mode
            LD A,0          ; Set block size to 256 bytes 
            LD A,A          ; Switch the Accelerator to copying a graphic data block mode
            LDIR            ; Copying
            LD B,B          ; Switch the Accelerator off
            EI              ; Enable interrupt
    Последний раз редактировалось Shaos; 11.09.2023 в 07:25.
    Администратор сетевого сообщества nedoPC.org
    Урал 8/64К, Sp2000, ZX48K+, ZX16K (спалил), TS1000 (американский ZX81), TS2068, Дельта-С, 20 лет собираю ATM Turbo 2+
    Неспектрумы: Электроника МК-85 и МК-85М, ПК-01 Львов, БК-0011, Вектор-06Ц, Лик (спец), Апогеи, Radio-86RK SRAM 32K & 128K (всё ещё собираю)

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

    Smalovsky (31.05.2021)

  4. #13
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    837
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Shaos, попробую акселератор,но у него есть недостаток - при копировании адреса из приемника в источник, адреса обоих возрастают. Это увеличивает расход памяти на хранение спрайтов, из-за невозможности их мирроринга, так как при копировании с инкреметом адресов невозможно копирование с зеркалированием цепочки байт. Если бы был ещё режим - инкремент адреса приёмника, декремент адреса источника, то расхода памяти для спрайтов можно было бы избежать.
    Мне интересно как в игре TITD идёт работа со срайтами. Очень там гладко всё - уровень SNES. Где-то читал, что в этой игре есть модуль с прошивкой ФПГА на лету для ускорения спрайтового вывода. Мне нужен этот модуль и программный интерфейс к нему.
    ¡Un momento, señor fiscal!


  5. #14
    Master Аватар для Shaos
    Регистрация
    16.01.2005
    Адрес
    California, USA
    Сообщений
    805
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    К сожалению информация по прошивке для Тхундера полностью утеряна (как и исходники) - насколько я знаю там была возможность крутить (скролить?) тайлы с точностью до 1 пиксела
    Последний раз редактировалось Shaos; 31.05.2021 в 22:40.
    Администратор сетевого сообщества nedoPC.org
    Урал 8/64К, Sp2000, ZX48K+, ZX16K (спалил), TS1000 (американский ZX81), TS2068, Дельта-С, 20 лет собираю ATM Turbo 2+
    Неспектрумы: Электроника МК-85 и МК-85М, ПК-01 Львов, БК-0011, Вектор-06Ц, Лик (спец), Апогеи, Radio-86RK SRAM 32K & 128K (всё ещё собираю)

  6. #15
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    837
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я написал процедуру вывода тайла через ускоритель, так как тайловая карта строится последовательно по тайлам. Теперь время теста составляет 14 секунд, или 18.25 экранов в секунду.
    Сделал образ диска с экзешными файлами:
    SpMap - тест вывода 255 экранов на время;
    Scroll - скролл карты с потайловым шагом.
    Ссылка https://dropmefiles.com/IHCTU
    Тестировал ещё потом вывод спрайтов без клиппинга. Вот такие результаты получил для спрайтов в 16 на 16 пикселей при их выводе за 1/50 секунду с учётом восстановления фона:
    - Вывод спрайта программно с программным прозрачным цветом - около 17 спрайтов( как при прямом, так и при зеркальном выводе);
    - Вывод спрайта программно с аппаратным прозрачным цветом - около 25 спрайтов при прямом выводе и 23 спрайта при зеркальном выводе ;
    - Вывод спрайта акселератором с аппаратным прозрачным цветом - около 80 спрайтов.
    При клиппировании эти результаты, однозначно, будут меньше, но я клиппирование ещё не проверял.
    Недостаток вывода спрайтов акселератором - отсутствие зеркалирования. Но этот недостаток можно сгладить, если при запуске игры заранее сделать зеркальные копии спрайтов в памяти специальной процедурой.
    ¡Un momento, señor fiscal!


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

    RomanRom2 (10.06.2021), Shaos (11.06.2021), Дмитрий (10.06.2021)

  8. #16
    Member Аватар для RomanRom2
    Регистрация
    09.02.2005
    Адрес
    Нижний Новгород
    Сообщений
    147
    Спасибо Благодарностей отдано 
    49
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    38 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию


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

  10. #17
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    837
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Shaos, если делать свой диспетчер прерываний для обработки нажатий клавиатуры, то этот пример кода для обработки нажатий на клавиатуре будет полезен?
    http://sprinter8.org/blocks/z84c15/keyboard
    Хочу сделать опрос клавиатуры в программе, но на своём диспетчере прерываний. От обычного спектрума процесс установки своей процедуры обработки прерывания чем-нибудь отличается на спринтере?
    Справочная информация по прерываниям обычного спектрума https://zxpress.ru/article.php?id=1615
    Последний раз редактировалось Smalovsky; 01.08.2021 в 16:32.
    ¡Un momento, señor fiscal!


  11. #18
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Shaos, если делать свой диспетчер прерываний для обработки нажатий клавиатуры, то этот пример кода для обработки нажатий на клавиатуре будет полезен?
    http://sprinter8.org/blocks/z84c15/keyboard
    Да, поможет. В принципе достаточно только второго листинга из статьи, п/п READ_KBD. Инициализацию порта делает DSS.

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Хочу сделать опрос клавиатуры в программе, но на своём диспетчере прерываний. От обычного спектрума процесс установки своей процедуры обработки прерывания чем-нибудь отличается на спринтере?
    Справочная информация по прерываниям обычного спектрума https://zxpress.ru/article.php?id=1615
    Если хочешь сэкономить такты и не нужны функциональные клавиши и пр..., то можешь опрашивать спектрумовские порты клавиатуры - они доступны (в эмуляторе возможно потребуется добавить устройство Common Spectrum Keyboard).

  12. #19
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    837
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начал писать движок игры. Тут такое дело возникло: выделяю в программе память, в конце программы освобождаю память, а в ОС по окончании программы нет выхода. Где я напутал?
    Выделяю память так:
    ;сохранение старых значений страниц в окнах 0,1,3
    IN A,(0x82)
    LD (OldWin0Page),A

    IN A,(0xa2)
    LD (OldWin1Page),A

    IN A,(0xE2)
    LD (OldWin3Page),A

    ;выделение памяти
    ;для окон 0 и 3

    ;получение блока памяти на две страницы

    ld b, 2
    ld c,61
    rst 0x10

    ld (memblock),a; сохраним номер блока

    ;получим номера физических страниц в блоке
    ;в акк уже есть ном. блока
    ld b, 0
    ld c,196
    call 15635
    ld (Win0Page),a


    ld a,(memblock)
    ld b, 1
    ld c,196
    call 15635
    ld (Win3Page),a



    ;отключение прерываний
    di
    ld a,i
    ld (OldIREG),a
    ld (OldSP),sp

    ;Установка новых значений страниц в окнах 0,1,3

    Ld a,(Win0Page)
    out (0x82),a

    LD A,0x54; в 1 странице видеопамять
    OUT (0xa2),A

    Ld a,(Win3Page)
    out (0xe2),a

    ;УСТАНАВЛИВАЕ СТЕК

    ld sp,61000
    Освобождаю память так:

    di
    ld a,(OldIREG)
    ld i,a
    im 1


    ;Установка старых значений страниц в окнах 0,1,3

    Ld a,(OldWin0Page)
    out (0x82),a

    LD A,(OldWin1Page)
    OUT (0xa2),A

    Ld a,(OldWin3Page)
    out (0xe2),a

    ;УСТАНАВЛИВАЕМ СТАРЫЙ СТЕК

    ld sp,(OldSP)
    ;ei Включал прерывания - не помогло. В ОС нет выхода

    ;освобождаем память

    ld a,(memblock)
    ld c,62
    rst 0x10
    Вот исходный код во вложении( Пасмо ассемблер).IM2Test.asm
    Скомпилированная программа:
    https://dropmefiles.com/1IaUY
    Последний раз редактировалось Smalovsky; 22.08.2021 в 16:52.
    ¡Un momento, señor fiscal!


  13. #20
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    ;получим номера физических страниц в блоке
    ;в акк уже есть ном. блока
    ld b, 0
    ld c,196
    call 15635
    Лучше пользоваться RST 8 для этого, там хоть и стоит заглушка, которая перенаправляет на #0008, но все же так быстрее и понятнее.

    Что касается проблемы - с виду все норм, не заметил ничего критичного. Попробую подебажить - посмотрим.
    Кстати, многие не знают, но в ZXMAK2 есть Debugger, который может здорово помочь в отладке!

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Мои Atari
    от MaiklsBlack в разделе Atari
    Ответов: 12
    Последнее: 10.02.2013, 03:59
  2. Мои извинения
    от Nordic в разделе Барахолка (архив)
    Ответов: 42
    Последнее: 01.11.2010, 18:17
  3. Эксперименты с Audition
    от andrews в разделе Творчество
    Ответов: 12
    Последнее: 25.01.2009, 00:44
  4. Эксперименты с AY?
    от Электрик в разделе Музыка
    Ответов: 0
    Последнее: 29.06.2006, 02:45

Ваши права

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