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

User Tag List

Страница 5 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 41 по 50 из 78

Тема: Элита для Специалиста

  1. #41
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    появилось время
    пересмотрел линию
    теперь будет быстрее

    Код:
    bitstream	db	#80,#40,#20,#10,#08,#04,#02,#01
    
    
    
    
    ;в DE - yx начала
    ;в HL - yx конца
    line00
    	ld	a,h
    	sub	d
    ;h<d?
    	jp	nc,line1
    ;h>d
    	ex	de,hl
    	cpl	
    	inc	a
    line1
    	ld	b,a	
    ;b=vertical cntr DY
    
    	ld	a,l
    	sub	e
    ;a=DX
    ;e<l?		
    	jp	nc,line_lr
    ;e>l
    line_rl		
    	cpl
    	inc	a
    	ld	c,a
    ;c=horizontal cntr
    	cp	b
    ;c?b
    	jp	c,line_rlv
    ;c>b
    line_rlh	
    	display "line_rlh ",$
    ;right left horizontal
    	call	de_coo
    	ld	a,b
    	ld	d,c
    	inc	d
    line_rlh0	
    	push	af
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    
    	ld	a,e
    	or	a
    	rla
    	jp	nc,line_rlhb
    	ld	a,1
    	dec	h
    line_rlhb
    	ld	e,a
    	pop	af	
    	sub	b	
    	jp	nc,line_rlh1
    	add	a,c
    	inc	l
    line_rlh1
    	dec	d
    	jp	nz,line_rlh0	
    	ret
    line_rlv
    	display "line_rlv ",$
    ;right left vertical
    	call	de_coo
    	ld	a,c
    	ld	d,b
    	inc	d
    line_rlv0	
    	push	af
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    	inc	l
    	pop	af	
    	sub	c	
    	jp	nc,line_rlv1
    	add	a,b
    
    	push	af
    	ld	a,e
    	or	a
    	rla
    	jp	nc,line_rlvb
    	ld	a,1
    	dec	h
    line_rlvb
    	ld	e,a
    	pop	af
    line_rlv1
    	dec	d
    	jp	nz,line_rlv0	
    	ret
    
    
    
    
    
    
    
    
    
    line_lr
    	ld	c,a	
    	cp	b
    ;c?b
    	jp	c,line_lrv
    ;c>b
    
    line_lrh	
    	display "line_lrh ",$
    
    ;left right horizontal
    	call	de_coo
    	ld	a,b
    	ld	d,c
    	inc	d
    line_lrh0	
    	push	af
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    
    	ld	a,e
    	or	a
    	rra
    	jp	nc,line_lrhb
    	ld	a,128
    	inc	h
    line_lrhb
    	ld	e,a
    	pop	af	
    	sub	b	
    	jp	nc,line_lrh1
    	add	a,c
    	inc	l
    line_lrh1
    	dec	d
    	jp	nz,line_lrh0	
    	ret
    line_lrv
    	display "line_rlv ",$
    
    ;left right vertical
    	call	de_coo
    	ld	a,c
    	ld	d,b
    	inc	d
    line_lrv0	
    	push	af
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    	inc	l
    	pop	af	
    	sub	c	
    	jp	nc,line_lrv1
    	add	a,b
    
    	push	af
    	ld	a,e
    	or	a
    	rra
    	jp	nc,line_lrvb
    	ld	a,128
    	inc	h
    line_lrvb
    	ld	e,a
    	pop	af
    line_lrv1
    	dec	d
    	jp	nz,line_lrv0	
    	ret
    de_coo
    ;de=source	
    	ld	a,e
    	rra
    	rra
    	rra
    	and	#1f
    	add	a,#98
    	ld	h,a
    	ld	l,d
    	ld	a,e
    	ex	de,hl
    	and	#07
    	ld	hl,bitstream
    	add	a,l
    	ld	l,a
    	ld	l,(hl)
    	ex	de,hl
    ;hl=addr
    ;e=bitstream
    	ret
    Вложения Вложения
    С уважением,
    Jerri / Red Triangle.

  2. #42
    Member
    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не должно быть в цикле рисования линии push/pop af, лучше dx или dy встроить в код и править при вызове.

  3. #43
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    blackmirror, поясни
    С уважением,
    Jerri / Red Triangle.

  4. #44
    Member
    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    jerri, сейчас ошибка лежит в A, а в BC лежит dx и dy, но чтобы поменять точку или маску приходится сохранять A в стеке, поскольку регистров не хватает. Можно одну из инструкций sub/add b/c поменять на инструкцию с константой, которая будет меняться на реальный dx или dy перед циклом. А ошибку переместить в освободившийся регистр, откуда её быстрее будет достать чем из стека.

  5. #45
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от blackmirror Посмотреть сообщение
    jerri, сейчас ошибка лежит в A, а в BC лежит dx и dy, но чтобы поменять точку или маску приходится сохранять A в стеке, поскольку регистров не хватает. Можно одну из инструкций sub/add b/c поменять на инструкцию с константой, которая будет меняться на реальный dx или dy перед циклом. А ошибку переместить в освободившийся регистр, откуда её быстрее будет достать чем из стека.
    вариант конечно.

    Код:
    bitstream	db	#80,#40,#20,#10,#08,#04,#02,#01
    
    
    
    
    ;в DE - yx начала
    ;в HL - yx конца
    line00
    	ld	a,h
    	sub	d
    ;h<d?
    	jp	nc,line1
    ;h>d
    	ex	de,hl
    	cpl	
    	inc	a
    line1
    	ld	b,a	
    ;b=vertical cntr DY
    
    	ld	a,l
    	sub	e
    ;a=DX
    ;e<l?		
    	jp	nc,line_lr
    ;e>l
    line_rl		
    	cpl
    	inc	a
    	ld	c,a
    ;c=horizontal cntr
    	cp	b
    ;c?b
    	jp	c,line_rlv
    ;c>b
    line_rlh	
    ;right left horizontal
    	call	de_coo
    	ld	a,b
    	ld	(line_rlhb0),a
    	ld	d,c
    	inc	d
    line_rlh0	
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    
    	ld	a,e
    	or	a
    	rla
    	jp	nc,line_rlhb
    	ld	a,1
    	dec	h
    line_rlhb
    	ld	e,a
    	ld	a,b
    	sub	0	;b	
    line_rlhb0 equ	$-1
    	jp	nc,line_rlh1
    	add	a,c
    	inc	l
    line_rlh1
    	ld	b,a
    	dec	d
    	jp	nz,line_rlh0	
    	ret
    line_rlv
    ;right left vertical
    	call	de_coo
    	ld	a,c
    	ld	(line_rlvb0),a
    	ld	d,b
    	inc	d
    line_rlv0	
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    	inc	l
    	ld	a,c
    	sub	0	;c
    line_rlvb0 equ	$-1	
    	ld	c,a
    	jp	nc,line_rlv1
    	add	a,b
    	ld	c,a
    	
    	ld	a,e
    	or	a
    	rla
    	jp	nc,line_rlvb
    	ld	a,1
    	dec	h
    line_rlvb
    	ld	e,a
    line_rlv1
    	dec	d
    	jp	nz,line_rlv0	
    	ret
    
    line_lr
    	ld	c,a	
    	cp	b
    ;c?b
    	jp	c,line_lrv
    ;c>b
    
    line_lrh	
    
    ;left right horizontal
    	call	de_coo
    	ld	a,b
    	ld	(line_lrhb0),a
    	ld	d,c
    	inc	d
    line_lrh0	
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    
    	ld	a,e
    	or	a
    	rra
    	jp	nc,line_lrhb
    	ld	a,128
    	inc	h
    line_lrhb
    	ld	e,a
    	ld	a,b
    	sub	0	;b
    line_lrhb0 equ	$-1
    	jp	nc,line_lrh1
    	add	a,c
    	inc	l
    line_lrh1
    	ld	b,a
    	dec	d
    	jp	nz,line_lrh0	
    	ret
    line_lrv
    
    ;left right vertical
    	call	de_coo
    	ld	a,c
    	ld	(line_lrvb0),a
    	ld	d,b
    	inc	d
    line_lrv0	
    	ld	a,(hl)
    	xor	e
    	ld	(hl),a
    	inc	l
    	ld	a,c	
    	sub	0	;c	
    line_lrvb0 equ	$-1
    	ld	c,a	
    	jp	nc,line_lrv1
    	add	a,b
    	ld	c,a
    	ld	a,e
    	or	a
    	rra
    	jp	nc,line_lrvb
    	ld	a,128
    	inc	h
    line_lrvb
    	ld	e,a
    line_lrv1
    	dec	d
    	jp	nz,line_lrv0	
    	ret
    de_coo
    ;de=source	
    	ld	a,e
    	rra
    	rra
    	rra
    	and	#1f
    	add	a,#98
    	ld	h,a
    	ld	l,d
    	ld	a,e
    	ex	de,hl
    	and	#07
    	ld	hl,bitstream
    	add	a,l
    	ld	l,a
    	ld	l,(hl)
    	ex	de,hl
    ;hl=addr
    ;e=bitstream
    	ret
    Последний раз редактировалось jerri; 14.02.2019 в 23:34.
    С уважением,
    Jerri / Red Triangle.

  6. #46
    Member
    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не уверен в нужности ld a,1/ld a,128 после rra/rla и условного перехода, может там нужны rrca/rlca ?

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

  8. #47
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    рекомендации по ускорению, улучшению, итд принимаются
    ты бы хоть инфы сперва дал побольше - для начала, линию рисуешь куда? в буфер, повторяющий структуру (части) экрана?

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

    и сколько памяти позволительно потратить на процедуру?

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

    так, навскидку, основной цикл раза в полтора возможно ускорить
    Прихожу без разрешения, сею смерть и разрушение...

  9. #48
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    ты бы хоть инфы сперва дал побольше - для начала, линию рисуешь куда? в буфер, повторяющий структуру (части) экрана?
    ты Элиту на Акорне видел?

    все рисуется на экран - экран большой буферизовать не куда


    и сколько памяти позволительно потратить на процедуру?

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

    так, навскидку, основной цикл раза в полтора возможно ускорить
    ну ты код то пиши

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

    Цитата Сообщение от blackmirror Посмотреть сообщение
    Не уверен в нужности ld a,1/ld a,128 после rra/rla и условного перехода, может там нужны rrca/rlca ?
    если эта команда есть в наборе i8080 то думаю можно и так.


    ссыль на последний RKS
    С уважением,
    Jerri / Red Triangle.

  10. #49
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,405
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Цитата Сообщение от blackmirror Посмотреть сообщение
    Не уверен в нужности ld a,1/ld a,128 после rra/rla и условного перехода, может там нужны rrca/rlca ?
    если эта команда есть в наборе i8080 то думаю можно и так.
    В треде про i8080 попрошу говорить на его мнемониках. В контексте процитированного, у i8080 есть RLC/RRC/RAL и RAR. Первые два цикличные с копированием в 'C, вторые через 'C.

  11. #50
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    В треде про i8080 попрошу говорить на его мнемониках. В контексте процитированного, у i8080 есть RLC/RRC/RAL и RAR. Первые два цикличные с копированием в 'C, вторые через 'C.
    я бы не против но эти ваши мнемоники i8080 дичайшая дичь
    мнемоники z80 более логичны и просты для понимания
    для сравнения
    Код:
    INX B     INC BC
    INR B     INC B
    согласись то что в правой колонке понятно без доп пояснений

    ну и как бы SJAsm эти ваши i8080 мнемоники не знает
    С уважением,
    Jerri / Red Triangle.

Страница 5 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

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

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

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

Похожие темы

  1. PS/2 адаптер клавиатуры для Специалиста
    от fifan в разделе Специалист
    Ответов: 230
    Последнее: 27.07.2023, 10:03
  2. Ответов: 48
    Последнее: 12.01.2019, 19:46
  3. OriNET для Специалиста ?
    от SYR-ALEX в разделе Специалист
    Ответов: 22
    Последнее: 21.07.2017, 07:40
  4. Есть 3 кассеты для Специалиста...
    от Bolt в разделе Специалист
    Ответов: 60
    Последнее: 27.10.2013, 14:24
  5. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16

Ваши права

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