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

User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 46

Тема: Написание программ для БК0010

  1. #11
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,444
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    на Спеке в есть комманда HALT и маскируемое прерывание выполняемое с одной и той же частотой 50 раз в секунду
    На БК-0011м тоже есть такое прерывание (по адресу 0100), маскируется определённым битом в порту 0177662. Только вот команда HALT делает кое-что другое, а аналогичная команда называется WAIT.

  2. #12
    Activist Аватар для mbojenov
    Регистрация
    25.10.2007
    Адрес
    Москва
    Сообщений
    384
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот его ответ:

    "он хочет сказать, что программно экран обновляется при каждом изменении изображения? экран тупо кусок памяти. соответственно все изменения делаются на нем в нужном месте путем занесения, стирания, ксоренья данных. синхронизацию с таймером можно зафигачить, но я не помню как это делается. а команда HALT на бк это остановка программы."
    ZX Evolution

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

    По умолчанию

    видимо действительно написание программ для БК настолько радикально отличается

    да экран является просто куском памяти
    да графика на экран наносится путем арифметических операций
    вопрос был в чем:
    как на БК решали проблему изменения скорости при изменении количества подвижных обьектов(стабилизация скорости в играх)

    из того что посмотрел и из того что почерпнул из различных описаний
    понимаю что НИКАК... работает и ладно ппц
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

  4. #14
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,444
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На десятке - только при помощи таймера (который был недокументирован), к тому же там есть такое понятие, как "сломанный таймер". Что это означает не знаю даже я, хотя в моём эмуляторе тесты пишут, что "таймер - сломан". А что же означало "не сломанный таймер"?

  5. #15
    Master
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    751
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    была игра для Бк-0010, называлась King Valley вроде как от Shishkin Software и она юзала таймер для проигрывания музона, но из трех виденных мною бках она работала на одной только, пришлось писать утилиту которая заменяла адрес с которым пытается работать прога как с таймерным на вроде 177716 и в процессе игры шел шум и скрежет но она начинала играть, как мне сказали на некоторых бкашках таймер был, на некоторых не был.. так что для эмулей можно в качестве теста юзать кинг валлей игруху

  6. #16
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,444
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На моём работает, с музыкой и скрежетом

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

  8. #17
    Master
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    751
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    На моём работает, с музыкой и скрежетом
    значит у тебя таймер нормальный, там музон не чисто играл.. когда на 177716 переводишь то просто скрежет

  9. #18
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    как там были организованы прерывания\освежение экрана?
    интересует как обычно синхронизировались игры для получения стабильной скорости?
    Подразобрался немного. Таймер 50 Гц там есть, даёт прерывания по вектору 100, маскируется битом 14 порта 177662. Не знаю только как в точности оно расположено по времени относительно кадра. Весь кадр -- 312 строк, по 64 мкс на строку, итого 20 мс = 50 Гц.

    Кроме того есть программируемый таймер на портах 177706, 177710, 177712. Наступление события проверяется чтением портов, прерывания нет.

  10. #19
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Тогда по всей вероятности, таймер должен работать с разной частотой в БК-0010 и БК-0011 -- из-за разной частоты процессора (3 и 4 МГц)?
    Похоже, я нашёл этому подтверждение.

    Цитата из Донского:
    Г. Работа с таймером

    Подробное описние таймера (счетчика времени) БК с интересными
    примерами приводится в [6] и [12]. Здесь лишь приведем простейший
    пример работы с ним и порекомендуем читателю поэкспериментировать, так
    как в БК разных заводов таймер может работать по-разному. Посмотрите,
    что получится, если вместо &O160 записать 0, &O20, &O60, &O120 и как
    зависит период Т от начального значения S0 (рис.10):

    10 POKE &O177706,32767% 'установка длительности периода S0
    20 POKE &O177712,&O160 'запуск таймера
    30 ? AT(0,0)PEEK(&O177710) 'смотрим, как он работает
    40 GOTO 30
    Рис.10. Иллюстрация работы таймера.
    Таймер работает независимо от работы программы. Содержимое счетчика
    времени определяется как результат функции PEEK(&O177710) и
    периодически уменьшается от S0 до 0 (рис.10).
    В приведенном примере при S0=32767 период счетчика Т=89,657 с [6].
    Считаем.
    89,657 сек / 32767 = 2,7362 мс на тик таймера, с учётом делителей на 16 и 4 получаем 2736,2 / 16 / 4 = 42,75 мкс на наименьший тик таймера.
    Частота процессора 3 МГц, это 0,333 мкс на такт, умножаем на 128, получаем 42,67 мкс -- довольно близко, можем считать что сходится.

    Теперь смотрим тут: http://pdp-11.ru/mybk/textbk/FL11M.TXT
    5. СИСТЕМНЫЙ ТАЙМЕР

    ТАЙМЕР СОСТОИТ:
    A. генератор с периодом 32 мкс (т.к. тактовая частота процессора
    В. делители на 4 и 16 БК-11 и БК-11М составляет 4 MHz, а
    C. реверсивный счетчик (177710) не 5 MHz, kak написано в литературе)
    D. регистр установки (177706)
    E. регистр команд и состояний (177712)

    * ДЛЯ СПРАВКИ: тактовая частота, поступающая на процессор, делится на
    128. , а потом поступает на таймер

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Подразобрался немного. Таймер 50 Гц там есть, даёт прерывания по вектору 100, маскируется битом 14 порта 177662. Не знаю только как в точности оно расположено по времени относительно кадра. Весь кадр -- 312 строк, по 64 мкс на строку, итого 20 мс = 50 Гц.

    Кроме того есть программируемый таймер на портах 177706, 177710, 177712. Наступление события проверяется чтением портов, прерывания нет.
    это здорово, но надо смотреть
    используется ли обращение к биту 14 порта 177662
    в играх

    чтото я этого в играх не видел
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

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

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

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

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

Похожие темы

  1. написание простейшей демки для тренировки
    от AAA в разделе Для начинающих
    Ответов: 121
    Последнее: 22.05.2012, 17:06
  2. написание музыки на Dendy.
    от s1moncpu в разделе Nintendo
    Ответов: 27
    Последнее: 25.05.2007, 04:34
  3. написание музыки на Dendy.
    от s1moncpu в разделе Музыка
    Ответов: 2
    Последнее: 16.05.2007, 09:59
  4. Тестирование программ
    от Vitamin в разделе Программирование
    Ответов: 5
    Последнее: 23.01.2005, 22:46

Ваши права

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