Специальный форум для программистов на спектруме!

Помощь новичкам в программировании процессора Z80. Обмен исходниками, идеями.

Модератор: Spectre

Ответить
Аватара пользователя
Spectre
Добрый и отзывчивый
Сообщения: 253
Зарегистрирован: Пн июн 26, 2006 1:16

Специальный форум для программистов на спектруме!

Сообщение Spectre » Вс июл 02, 2006 13:17

Я решил сделать отдельный форум в котором на первых порах буду сам, потом надеюсь и другие кодеры подтянутся по мере сил отвечать на вопросы по программированию на ассемблере процессора Z80. Приветствуются вопросы по архитектуре спектрума, портам, гоовым исходникам, способам работы, командам и так далее.

К сожалению активных кодеров осталось мало, поэтому внесу свой посильный вклад.

darkSAM
junior
Сообщения: 5
Зарегистрирован: Вс июл 02, 2006 2:43

Сообщение darkSAM » Вс июл 02, 2006 14:20

я хочу стать кодером :-)

Буду навещать этот форум.

Valeron
junior
Сообщения: 26
Зарегистрирован: Вс ноя 19, 2006 21:24

Сообщение Valeron » Чт сен 20, 2007 17:54

У меня вопрос. У Спектрума есть AY, с нее можно считывать состояние портов (кажется так делают индикатор уровня), есть регистр огибающей, там можно задать период изменения выходного уровня. Так можно ли использовать это как таймер квантов времени между прерываниями? Ну скажем что бы процессор прочитал из AY и подумал: "Ага, экран отрисовивается! Хм, не буду ничего делать в пятой банке памяти, пойду посмотрю что во второй есть не законченного" Ну примерно так.
Улыбок вам :)

Striker
activist
Сообщения: 189
Зарегистрирован: Пн июн 26, 2006 13:31

Сообщение Striker » Пт сен 21, 2007 8:54

Валера, ну и вопросики у тебя :)
http://trd.speccy.cz
ZX-Spectrum Rulez Forever!

Valeron
junior
Сообщения: 26
Зарегистрирован: Вс ноя 19, 2006 21:24

Сообщение Valeron » Пт сен 21, 2007 18:28

Да чего такого? Этож СПЕЦИАЛЬНЫЙ ФОРУМ ДЛЯ ПРОГРАММИСТОВ НА СПЕКТРУМЕ. Или AY это не на Спектруме? Просто у спека нету хардверного програмируемого таймера, а в AY есть огибающая, мне просто интересно - можно ли в произвольный момент времени прочитать ее значение? Если да, то подбираем ее величину так что бы она от максимального значения до минимального доходила за прерывание и программа при выполнении может прочитать из AY состояние и оценить сколько осталось до прихода INTа. Я подумал как нибудь мультиколор завязать на AY. Ну чисто в познавательных целях, а может и выгорело бы чего-нить интересное. Только раз уж этого до сих пор никто не применил за такой срок, то наверное невозможно это. Sorry за сумбурность изложения.
Улыбок вам :)

Аватара пользователя
Spectre
Добрый и отзывчивый
Сообщения: 253
Зарегистрирован: Пн июн 26, 2006 1:16

Сообщение Spectre » Ср сен 26, 2007 0:27

Valeron писал(а):У меня вопрос. У Спектрума есть AY, с нее можно считывать состояние портов (кажется так делают индикатор уровня), есть регистр огибающей, там можно задать период изменения выходного уровня. Так можно ли использовать это как таймер квантов времени между прерываниями? Ну скажем что бы процессор прочитал из AY и подумал: "Ага, экран отрисовивается! Хм, не буду ничего делать в пятой банке памяти, пойду посмотрю что во второй есть не законченного" Ну примерно так.
Теоретически это возможно, но ты учел затраты времени на чтение из портов и логику обработки состояний? Если это нужно для мультиколора, там критична каждая команда (за время выполнения NOP'а четыре пикселя рисуется!).

Valeron
junior
Сообщения: 26
Зарегистрирован: Вс ноя 19, 2006 21:24

Сообщение Valeron » Чт сен 27, 2007 0:53

Привет, я вообще-то мультиколор просто для примера взял, меня сама идея интересует. Там гдето обсуждалось квантование времени меньше прерывания, можно конечно процом отсчитывать - тогда проц занят и не делает что надо. Можно процедуры расчитывать с точностью до такта, но это утомительно, и кроме того чревато не предвиденными ситуациями. А вот если AY отсчет ведет, то проц можно занять произвольной задачей, а когда освободится - пусть постоянно считывает с AY и в момент, который мы зададим огибающей, переходит к другой задаче. Короче лучше конечно таймер в компе иметь и не извращаться. Спасибо что поддержал мою мысль.
Улыбок вам :)

Valeron
junior
Сообщения: 26
Зарегистрирован: Вс ноя 19, 2006 21:24

Сообщение Valeron » Пт сен 28, 2007 23:36

Spectre писал(а):...
Теоретически это возможно, но ты учел затраты времени на чтение из портов и логику обработки состояний? Если это нужно для мультиколора, там критична каждая команда (за время выполнения NOP'а четыре пикселя рисуется!).
Тут еще подумал, ведь мультиколор же не обязательно классический делать, можно ведь применить два цвета на верхнюю половину знакоместа, а потом переключить экран на 7 банк и отображать нижнюю половину знакоместа со своими атрибутами. Интересно то что в 5 банке можно перерисовывать нижние четыре строки знакомест, а в седьмой - верхние, это в те моменты когда соответствующая банка в экранную область включена. Когда перерисовка будет закончена нужно поменять очередность переключения банков в экранной области и картинка изменится. Удобство заключается в том что в верхней области по адресам #C000-#FFFF в это время могут лежать банки со спрайтами, графикой, чем угодно, то есть не затрачивается время на переброску скажем в экран седьмого банка из, например, третьего через второй, в то время когда пятый стоит в экране.
Минус этого способа, даже МИНУСИЩЕ!!! в том что надо синхронизироваться с выборкой видео данных из экранной области.
Бред наверно, а может и пригодится идея кому-нибудь, когда-нибудь.
Улыбок вам :)

X-Factor
junior
Сообщения: 10
Зарегистрирован: Вт июн 27, 2006 17:49

Сообщение X-Factor » Ср июн 18, 2008 16:47

вот так тема..
ну раз нет ниче нового то посмотрим на это по другому...
цытато:
"ага, экран отрисовываеццо, пойду посмотрю чего там не доделоно"
на это потратили дцать тактов..
причем с учетом синусоидального вида огибающей, не догнали в каком месте то экран прорисовываеццо. Ладно, этого избежали задав период так, чтоб полупериод синусоиды звука был равен времени отображения кадра (1 прерывание). составили подробную карту цифирок и получили что всего то есть #00-#0f т.е. 16 значений, поделили на 16 1 halt, а смысл?
как его использовать? да и зачем? похоже на серию бесполезных изобретений... типа видели как я крут, могу и так...

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

Valeron
junior
Сообщения: 26
Зарегистрирован: Вс ноя 19, 2006 21:24

Сообщение Valeron » Сб июл 12, 2008 20:00

Забей! Это были мысли вслух. Причем не самые умные.
Улыбок вам :)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 2 гостя