User Tag List

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

Тема: Edge Grinder для ZS GMX

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

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

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    908
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    343
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Проверить бы всю строку, если она пустая - зачем щелкать HL, можно сразу переходить на следующую.
    Вот это правильная мысль, конечно. У меня в генераторе на C# код стругается, теоретически можно бы сделать что угодно.

    Получается, что на каждую вертикальную координату экрана своя таблица адресов?
    SpriteAddrHigh ds 170 ;адреса спрайтов по 2 байта для каждых 10 пар строчек и одной последней = 22 байт на спрайт *7 штук и 16 на лазер
    То есть рассчитывается адрес начала каждой второй строчки. 1,3,5,..21.
    Потом при печати берём адрес второй строчки, рисуем её, поднимаемся на строку выше, рисуем её. Так перешло от версии амстрад.
    Я выше говорил, что это нужно для частичной печати спрайта на верхней и нижней границе экрана.

    Саму процедуру можно ускорить, для начала заменив IX и работу с ним на DE:
    Наверное тоже можно бы, но тогда надо хранить-восстанавливать DE. А так адрес таблицы для спрайта всегда в IX, никто его не трогает. Все спрайты один за другим печатаются по таблице из IX.


    То бишь пишем в память не числа, а регистры. Получится строка типа такой (заменив 45 на аккум):
    Идею понял, но это хитро надо генератор на C продумывать ). Чтобы он такой умный код выдал.

    ps. Да, если смотреть исходники с подсветкой синтаксиса, то закомментированное не так бросается в глаза. Я вот в Notepad++ редактирую.

    ps2. Вот тут в прошлый раз так оптимизировал расчёт координат спрайтов, в случае когда регистры, кроме IY и IX, заняты и запись через стек. Нужно сдвинуть DE на 80 вниз.
    Было:
    Код:
    ;---
    	ld (TempHL),hl  ;16 на строку вниз
    	ld hl,80		;10
    	add hl,de		;11	
    	ex de,hl		;4
    	ld hl,(TempHL)	;16
    ; ;---
            push de 		;11 ; place address into address list pointed to by sp
    				;68
    Стало:
    Код:
    	ld iy,80		;14
    	add iy,de		;15
    	push iy		;15
    				;44
    Последний раз редактировалось izzx; 04.09.2021 в 20:08.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

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

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

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

Похожие темы

  1. EYEACHE2 и Across The Edge на GMX
    от Evgeny Muchkin в разделе Демо
    Ответов: 1
    Последнее: 12.08.2019, 21:23
  2. Ответов: 0
    Последнее: 24.11.2017, 03:24
  3. ZX BUS EDGE!
    от ZXFanat в разделе Устройства ввода
    Ответов: 10
    Последнее: 15.07.2013, 19:16

Ваши права

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