В старые времена, когда из компьютеров у меня был только "Специалист", любил я из разных программ
вытаскивать различные визуальные и звуковые эффекты...
Следующая подпрограмма из моей коллекции обычно использовалась, когда надо было озвучить взрыв,
ну или какой-либо шум столкновения:
Алгоритмы этих подпрограмм я обычно не разбирал, следил только, чтобы не портили регистры...
Но поскольку я сейчас переношу программу на платформу 1816ВЕ48, то построчно прочитать пришлось.
И есть у меня такое предположение, что подпрограмма, которую вызывают по метке L35: - это простенький
генератор псевдослучайной последовательности... псевдо-RND, так сказать.
RND в Бейсик «МИКРОША»
Moderator: Shaos
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: RND в Бейсик «МИКРОША»
Тест "звёздное небо" показывает, что предположение весьма похоже на правду! Распределение более-менее равномерное, явных группировок незаметно...Lavr wrote:И есть у меня такое предположение, что подпрограмма, которую вызывают по метке L35: - это простенький
генератор псевдослучайной последовательности... псевдо-RND, так сказать.
Если наблюдать дольше - весьма равномерно закрасит весь квадрат.
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Novelist
- Posts: 46
- Joined: 24 Aug 2006 02:14
- Location: pуcвoceмьнадцaть
Re: RND в Бейсик «МИКРОША»
LFSR с отводами 15,14. Период 32767.Lavr wrote:И есть у меня такое предположение, что подпрограмма, которую вызывают по метке L35: - это простенький
генератор псевдослучайной последовательности
В этой реализации младший бит (L37) всегда 0, работают старшие 15 бит.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: RND в Бейсик «МИКРОША»
А они и используются в программе (MOV A,H), хотя, рисуя "звёздное небо", я и младшие биты в качестве координаты использовал.DDp wrote:В этой реализации младший бит (L37) всегда 0, работают старшие 15 бит.

А вот под моделью 8048 в Proteus этот звук взрыва звучит омерзительно плохо.Lavr wrote:Но поскольку я сейчас переношу программу на платформу 1816ВЕ48, ...

Хотя казалось мне - будет лучше, поскольку в звук вмешиваются прерывания по таймеру -
шумнее будет, - так мне казалось... но звучит как трактор: тыр-тыр-тыр...

И я подумал, может быть заменить звук взрыва алгоритмом попроще?
Интересно это сделано в известной игре CROSSFIRE - там в качестве случайного шумового сигнала
использовали массив кодов самой программы, насколько я помню...
Но из интересу я загуглил "имитация звука взрыва на ассемблере" и нашел пока только одну статью
на интересующую тему: Как написать игру на ассемблере для ZX Spectrum
Есть там фраза:"для создания звука, напоминающего взрыв бомбы, можно предложить..."
Посмотрю, что там они предложили...

P.S. Да... оригинальностью они не удивили:"...в качестве генератора «случайных» чисел, определяющих частоту тона, используются коды ПЗУ".
iLavr