Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   БК-0010/0011 (http://zx-pk.ru/forumdisplay.php?f=59)
-   -   Написание программ для БК0010 (http://zx-pk.ru/showthread.php?t=11381)

jerri 24th November 2009 18:17

Написание программ для БК0010
 
А кто писал игры\системный софт для БК0010

как там были организованы прерывания\освежение экрана?
интересует как обычно синхронизировались игры для получения стабильной скорости?

mbojenov 25th November 2009 13:58

цитирую бкашного программера из ATLANTIS (PRS):
"вопрос, кст, дурацкий. никто не задумывался над синхронизацией скорости. какой проц, так и бегало. и причем тут вообще обновление экрана тоже не пойму. видимо чел далек от структуры БК."

Лично от меня - этот человек на форуме зарегиться не может, поэтому уточни вопрос, я его переспрошу.

nzeemin 25th November 2009 14:45

Quote:

Originally Posted by jerri (Post 235314)
А кто писал игры\системный софт для БК0010

как там были организованы прерывания\освежение экрана?
интересует как обычно синхронизировались игры для получения стабильной скорости?

Насколько я знаю, там есть таймер, не зависящий от скорости процессора -- порты 177706, 177710, 177712.
См. например http://pdp-11.ru/mybk/textbk/FL11M.TXT
Но для меня остаётся загадкой как можно узнать о начале/завершении обновления экрана -- подозреваю что никак.

---------- Post added at 14:45 ---------- Previous post was at 14:43 ----------

Quote:

Originally Posted by mbojenov (Post 235579)
"вопрос, кст, дурацкий. никто не задумывался над синхронизацией скорости. какой проц, так и бегало. и причем тут вообще обновление экрана тоже не пойму. видимо чел далек от структуры БК."

Да, коммент конечно крайне познавательный. И полный уважения к тому же.

ibnteo 25th November 2009 14:48

Насколько я помню, в 0010 таймера не было, был лишь в 0011М, и экраны переключать можно было лишь в 0011М. Поэтому в играх было видно перерисовывание спрайтов. В последних программах для 11М графика уже была плавная, за счет нескольких видео буферов.

Задержки по времени делали через пустые циклы.

---------- Post added at 13:48 ---------- Previous post was at 13:48 ----------

Насколько я помню, в 0010 таймера не было, был лишь в 0011М, и экраны переключать можно было лишь в 0011М. Поэтому в играх было видно перерисовывание спрайтов. В последних программах для 11М графика уже была плавная, за счет нескольких видео буферов.

Задержки по времени делали через пустые циклы.

mbojenov 25th November 2009 15:15

nzeemin, обидеть jerri я не хотел, если что, приношу свои извинения.

nzeemin 25th November 2009 15:25

Quote:

Originally Posted by ibnteo (Post 235599)
Насколько я помню, в 0010 таймера не было, был лишь в 0011М, и экраны переключать можно было лишь в 0011М. Поэтому в играх было видно перерисовывание спрайтов. В последних программах для 11М графика уже была плавная, за счет нескольких видео буферов.

Можно ли где-то увидеть список новшеств в БК-0011М по сравнению с БК-0010(01), именно на глубоко техническом уровне, таком как функционирование портов?

jerri 25th November 2009 15:27

Quote:

Originally Posted by mbojenov (Post 235579)
цитирую бкашного программера из ATLANTIS (PRS):
"вопрос, кст, дурацкий. никто не задумывался над синхронизацией скорости. какой проц, так и бегало. и причем тут вообще обновление экрана тоже не пойму. видимо чел далек от структуры БК."

Лично от меня - этот человек на форуме зарегиться не может, поэтому уточни вопрос, я его переспрошу.

Естественно далек, все общение с БК ограничивалось играми в компьютерном клубе, хотя первая игрушка моя была именно на БК на бейсике написанная. ;)

вопрос стоит в чем: берем любую игру
если просто перерисовывать персонажей не забивая голову
синхронизацией скорости то скорость игры при наличии 1 персонажа и 10 персонажей на экране будет серьезно отличаться, что серьезно сказывается на играбельности

на Спеке в есть комманда HALT и маскируемое прерывание выполняемое с одной и той же частотой 50 раз в секунду

есть ли на БК0010 идентичные способы определения во времени? или у там нельзя определить что луч сейчас пошел на новый круг?

Alex_K 25th November 2009 15:46

Quote:

Originally Posted by ibnteo (Post 235599)
Насколько я помню, в 0010 таймера не было, был лишь в 0011М.

Был в 0010 таймер. Этот таймер вообще-то входит в состав процессора 1801ВМ1, остаточный рудимент после его переделки из микроконтроллера 1801ВЕ1.

nzeemin 25th November 2009 15:51

Quote:

Originally Posted by ibnteo (Post 235599)
Насколько я помню, в 0010 таймера не было, был лишь в 0011М

Вот тут статейка: http://bk0010.moy.su/publ/20-1-0-25 -- из которой можно предположить что таймер в БК-0010(01) был, но не был документирован, соответственно им и не пользовались. Может кто-либо подтведить/опровергнуть?

---------- Post added at 15:51 ---------- Previous post was at 15:48 ----------

Quote:

Originally Posted by Alex_K (Post 235619)
Был в 0010 таймер. Этот таймер вообще-то входит в состав процессора 1801ВМ1, остаточный рудимент после его переделки из микроконтроллера 1801ВЕ1.

Тогда по всей вероятности, таймер должен работать с разной частотой в БК-0010 и БК-0011 -- из-за разной частоты процессора (3 и 4 МГц)?

jerri 25th November 2009 15:59

вобщем и целом понятно :( все делалось на глазок


All times are GMT +4. The time now is 02:21.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.