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

User Tag List

Страница 71 из 110 ПерваяПервая ... 676869707172737475 ... ПоследняяПоследняя
Показано с 701 по 710 из 1094

Тема: ЭТЮДЫ

  1. #701
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    37
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ГСЧ - полная засада. Я бился над chaosgame, получилось так, что период случайных чисел короток.
    на помощь пришло ROM(подобный трюк использовался в Fractals/Alan Cox)chaosgame.zip

  2. #702
    Activist
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    424
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    ld (rnd8+1),hl
    Ну это естественно, в первом варианте тоже не mov а ld
    Проверочный код был:
    Код:
    RND      push hl
             ld hl,RNDbuff+256-22
    .bfadr EQU $-2
             ld a,(hl)
             inc l
            jr z,.rnd_2
    .rnd_1   sub a,(hl)
             ld (hl),a
             ld (.bfadr),hl
             pop hl
           ret
    .rnd_2   ld l,-22
            jp .rnd_1
    Цитата Сообщение от blackmirror Посмотреть сообщение
    А так код вычисляет x[n]=x[n-1]-x[n-22] и записывает на место x[n-22].
    Не прокатывает, выдаёт повторяющуюся последовательность из 9-12 точек (по разному от начального буфера)
    Вот скрины при первом варианте и при этом

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

    Нажмите на изображение для увеличения. 

Название:	g0.png 
Просмотров:	202 
Размер:	4.1 Кб 
ID:	62400 Нажмите на изображение для увеличения. 

Название:	g1.png 
Просмотров:	233 
Размер:	3.7 Кб 
ID:	62401
    [свернуть]

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

    По умолчанию

    Dart Alver,
    RNDbuff на 256 байт выровнен, и действительно ли начальные числа попадают куда нужно? Вообще этот генератор очень похож на CRC с полиномом x^22+x^21+1, хоть он и прост, но генерируемая последовательность имеет период 2^22-1 и в этих пределах любые 22 подряд идущих бита(младшие разряды нашего генератора) будут встречаться ровно один раз.

  4. #704
    Activist
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    424
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от blackmirror Посмотреть сообщение
    RNDbuff на 256 байт выровнен, и действительно ли начальные числа попадают куда нужно?
    Разумеется да.
    Нашел причину, она в неправильной формуле. Правильно должно быть X[n]=X[n-22]-X[n-1] а не наоборот.
    Если заменить строку
    Код:
    .rnd_1   sub a,(hl)
    на
    Код:
    .rnd_1   neg
             add a,(hl)
    Всё становится так как и должно быть. ))

  5. #705
    Activist
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    424
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    blackmirror, Дико извиняюсь, был неправ. С формулой всё в порядке. Ошибка была в компиляции, нужно было писать не sub a,(hl) , а sub (hl). SjASMPlus команду sub a,(hl) понимает как sub a : sub (hl), а я забыл это поправить отсюда и все косяки были ))

  6. #706
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    SjASMPlus команду sub a,(hl) понимает как sub a
    тоже помню вечерочек скоротал, отлавливая безобидное xor e,l )
    Последний раз редактировалось shurik-ua; 04.10.2017 в 22:18.

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

  8. #707
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    37
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наверное, пригодится:
    https://github.com/impomatic/z80snippets

  9. #708
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    37
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Писал эффект появления картинки для мегадемо, вышло слишком заморочено. Вот другой вариант, но показ выходит слишком медленный.
    Вложения Вложения

  10. #709
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Беззнаковое деление 8/8=8.8
    (по мотивам Программистам - Алгоритмы работы и примеры процедур для быстрых вычислений на асемблере)
    Из недостатков - юзается доп-регистр (в данном случае D, но можно любой) и числа должны быть беззнаковые.
    Код:
    ; H.L=H/A (D=corrupt)
    	NEG:LD D,A		; 8+4=12
    	XOR A:LD L,A		; 4+4=8
    	RL H,H			; 8+8=16
    	DUP 7
    		RLA		; 4
    		ADD A,D		; 4
    		JP C,1F		; 10
    		SUB D		; 4
    1		RL H		; 8
    	EDUP		; t=30
    	DUP 8
    		RLA		; 4
    		ADD A,D		; 4
    		JP C,2F		; 10
    		SUB D		; 4
    2		RL L		; 8
    	EDUP		; t=30
    		; 12+8+16+(30*7)+(30*8)=486 тактов в пиковом случае	(min=426)
    Наверное сейчас это уже никому не надо, но для понимания двоичной математики ковырял-ускорял. Быстрей вроде не получается или это я уже "замылился".

  11. #710
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    37
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    NEG:LD D,A
    непонятно(

Страница 71 из 110 ПерваяПервая ... 676869707172737475 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

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