User Tag List

Страница 6 из 14 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 140

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

  1. #51

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Не работает у вас - пишите в чём конкретно проблема, конкретно КАК не работает.
    Это не у меня. Без аргументов запускается, но не делает, как минимум, операций удаления файла из образа и записи файла в образ. Без любого вывода. Я запросил побольше инфы у человека.

    Такой вопрос. Вывод тайла, кратного по горизонтали восьми, я уже даже, пожалуй, осилю написать сам. Интересует вывод спрайта/тайла по любым произвольным координатам. Ну, пусть даже кратным 2 или 4 (по X). В четырёхцветном режиме. Есть уже где-то такое реализовано? Чтобы велосипед не изобретать.

    Также интересуют другие способы вывода графических примитивов, на данном этапе больше блочных, чем по точкам. Задуманный мной порт игры будет работать в тайловом разрешении Спектрума 32x24, соответственно, хорошо ляжет на УКНЦ в виде размера тайла 10x11. Есть ли реализованный вывод такого размера тайлов?

  2. #52

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

    По умолчанию

    Никита, ложная тревога. Проблемка была не в утилите. Сейчас сложно сказать в чём, но самое разумное, что я могу придумать, это что образ .DSK был заблокирован эмулятором. Сейчас всё работает хорошо.

    Все, кто пишет игры для УКНЦ. Давайте разработаем подпрограмму, которая выводит двухцветный спрайт указанного размера указанными цветами (из четырёх). Если такого конечно ещё нет. Эта подпрограмма будет полезна, в играх для УКНЦ много подобной графики. Также ею можно будет выводить буквы и другие символы. Координаты в идеале сделать произвольными. Высоту и ширину в идеале тоже. Если это слишком сложно, можно сделать координату X и ширину кратными 2, 4 или хотя бы 8, хотя это серьёзно снизит ценность данной подпрограммы. Есть ли у кого подобные наработки? Понятно, что для скорости нужны маски и битовые сдвиги. У меня с асмом пока не очень получается, а попиксельно будет слишком медленно.

    Конечно интересует вывод и 4-цветной картинки.

  3. #53

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ПП вывода спрайта в любую точку:
    (Формат спарйтов: первое слово ширина-высота последующие планы 1,2)
    Код:
    PTSPR:
    ; 	R5 - указатель на спрайт
    
    	MOV	R0,-(SP)
    	MOV	R1,-(SP)
    
    
    1$:
    4$:	CALL	XYTOSC   		; R3 адрес видеобуф. R4.. сдвиг
    	MOV	R3, @#176640
    
    	MOV	(R5)+,R0		; размеры спрайта
    	CLR	R1
    	BISB	R0,R1           ; ширина спр
    	BIC	#177400, R1
    	SWAB	R0
    	BIC	#177400, R0	;высота спр
    	MOV	R1,R3
    	MOV	R0,3$+2
    	MOV	R4,R0
    	ADD	R0,R0
    
    
    	ADD	#MASK,R0
    	MOV	(R0),5$+2
     	
     	
    22$:	MOV	R3,-(SP)			; Сохранить R3 на стеке
    	MOV	@#176640,-(SP)		; Сохранить регистр адреса планов 1,2 на стеке
    	
    11$:	
    	CLR	R0				; R0 = 0
    	MOV	(R5)+,R1			; (R5)+ -> R1
    	ASHC	R4,R0				; R0.R1 << R4
    	BIS	R0,R1				; R1 = (R5)+ rol R4
    	
    	MOV	R1,R0				;
    5$:	BIC	#7417,R0			; Оставить старшие части сдвинутых байт  0x0f0f
    							
    	BIS	R0,@#176642			; (план 1,2) = (план 1,2) | R0
    	
    	INC	@#176640			; Прирастить регистр адреса планов 1,2
    	
    	BIC	R0,R1				; Оставить младшие части сдвинутых байт
    	SWAB	R1
    		
    	BIS	R1,@#176642			; (план 1,2) = (план 1,2) | R1
    		
    	SOB	R3,11$				; Цикл на R3 итераций
    	
    	MOV	(SP)+,@#176640			
    	ADD	#80.,@#176640
    	MOV	(SP)+,R3
    3$:	DEC	#0
     	BNE	22$;     
    
    ;----------------------------------------------
    6$:
    	MOV	(SP)+,R1
    	MOV	(SP)+,R0
    
    	RETURN
    ;----------------------------------------------------------------
    MASK:  
    	.WORD	^B0000000000000000
    	.WORD	^B0000000100000001
    	.WORD	^B0000001100000011
    	.WORD	^B0000011100000111
    	.WORD	^B0000111100001111
    	.WORD	^B0001111100011111
    	.WORD	^B0011111100111111
    	.WORD	^B0111111101111111
    	.WORD	^B1111111111111111
    	
    
    ;----------------------------------------------------------------
    ; Подпрограмма: преобразовать координаты X,Y в адрес на экране R3 и смещение R4
    ;     Вход:  R3 = Y  R4=X)
    ;     Выход: R3 = адрес на экране, R4 = смещение 0..7
    ;----------------------------------------------------------------
    XYTOSC:
    	MOV	R0,-(SP)
    	MOV	R2,-(SP)
    
    	MOV	@#SCRADR,R0  ;начало видеопамяти
    2$:	MOV	R4, R2		; берём X
    	ASR	R2
    	ASR	R2
    	ASR	R2		; получаем номер байта в строке
    	ADD	R2, R0		; получили готовый адрес на экране
    	BIC	#177770, R4	; оставляем только смещение 0..7
    	MOV	R3,R2
    	BIC	#177400, R3	; байт Y теперь в нижнем байте R3
    	MUL	#80.,R2
    	ADD	R0,R3
    1$:
    	MOV	(SP)+,R2
    	MOV	(SP)+,R0
    	RETURN
    ;----------------------------------------------------------------
    Последний раз редактировалось S_V_B; 14.03.2020 в 09:19.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

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

    Oleg N. Cher(14.03.2020)

  4. #54

    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    1,245
    Спасибо Благодарностей отдано 
    343
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    261 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Никита, ложная тревога. Проблемка была не в утилите. Сейчас сложно сказать в чём, но самое разумное, что я могу придумать, это что образ .DSK был заблокирован эмулятором. Сейчас всё работает хорошо.

    Все, кто пишет игры для УКНЦ. Давайте разработаем подпрограмму, которая выводит двухцветный спрайт .
    вопрос - откуда фиксация на двухцветности ? УКНЦ таки может 16цветов
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  5. #55

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    которая выводит двухцветный спрайт .
    Наверное не двухцветный (однобитный), а четырехцветный в двух планах. (потому что нет доступа к ПП)
    Цитата Сообщение от SuperMax Посмотреть сообщение
    УКНЦ таки может 16цветов
    16 цветов в одной строке не получится, только если выделить область экрана с другой яркостью.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  6. #56

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

    По умолчанию

    Двухцветность нужна, чтобы экономить память. На Спеке двухцветные тайлы, других и нет. Раз я буду портировать со Спека :-)

  7. #57

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    На Спеке двухцветные тайлы
    Тайлы-то однобитные зато атрибуты цветные. Все равно придется в два плана хотя бы перекрашивать поскольку в возу передается слово (1 и 2й планы сразу).
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  8. #58

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

    По умолчанию

    Ну можно парочкой вызовов двухцветных тайлов с прозрачным фоном нарисовать несколько цветов, если понадобится. Памяти-то мало. Экономить нужно. А то под все карты не хватит ;-)

  9. #59

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Экономить нужно. А то под все карты не хватит ;-)
    Экономить нужно не на цветности спрайтов, а на способе хранения и отрисовке.. как я выше тебе говорил. Там на все про все уйдет несколько килобайт.
    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Ну можно парочкой вызовов двухцветных тайлов с прозрачным фоном нарисовать несколько цветов, если понадобится.
    Интересно каким образом? И в чем смысл? Когда ты можешь в два раза быстрее отрисовывать.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  10. #60

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

    По умолчанию

    Ладно, уговорил) Будем хранить всё четырёхцветным. Пока не упрёмся рогом в ограничения данного способа. ;-)

Страница 6 из 14 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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