User Tag List

Страница 6 из 7 ПерваяПервая ... 234567 ПоследняяПоследняя
Показано с 51 по 60 из 63

Тема: Режим совместимости БК-0011М с БК-0010

  1. #51

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нормальный код, мы ПЗУ писать не собираемся.

    Так я окончательно отказываюсь от CMPB @#177717, #200 ? Если нет других предложений.

    Осталось ещё понять как отличить программно БК11 от 11М. Хотя пока вроде не нужно. Команда MOV #16000, @#177716 оказалась настолько мощной, что решила все проблемы совместимости (на нужном мне уровне) между 11 и 11М - потому что режим 11 работает (в эмуле GID'а) с экраном по адресу 40000, а в режиме 11М после запуска моего бинаря попытки записи в экран по этому адресу ни к чему не ведут - до волшебной команды. Спасибо!

  2. #52

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    610
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    175
    Поблагодарили
    135 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Нормальный код, мы ПЗУ писать не собираемся.
    Почти нормальный. Что попало записывать на БК11М в 177662 не стоит, иначе можно попасть впросак. Вдруг разрешится прерывание по вектору 100, а оно ещё не инициализировано?
    ещё можно сделать так, менее хулигански:
    Код:
    		mov	@#4, -(SP)	; сохраняем вектор 4 в стеке
    		mov #bk10, @#4	; задаём свой
    		mov #40000, @#177662 ; устанавливаем палитру, состояние таймера 50Гц и отображаемый экран
    		; прерывания не произошло
    		mov (SP)+, @#4	; восстанавливаем вектор 4
    		; тут код для БК11(M)
    		.....
    
    bk10:	; произошло прерывание
    		tst (SP)+		; адрес возврата из прерывания игнорируем
    		mtps (SP)+ 		; восстанавливаем приоритет программы
    		mov (SP)+, @#4 	; восстанавливаем вектор 4
    		; тут код для БК10
    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Осталось ещё понять как отличить программно БК11 от 11М
    По содержимому ПЗУ по адресам 140000-157777, берём любой понравившийся адрес, и смотрим в эмуляторе, какое значение там на БК11 и какое на БК11М, и по этому значению определяем тип машины.

    Этот пользователь поблагодарил gid за это полезное сообщение:

    Oleg N. Cher(05.12.2021)

  3. #53

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я наткнулся в журнале "Персональный компьютер БК-0010 - БК-0011м" на информацию, что на некоторых БК10 не было таймера. Вопрос к спецам: так ли это? Говорят даже, что игра King's Valley была завязана на таймере, поэтому музыка в ней работала не везде.

    Если всё так, то как правильно отмерять отрезки времени и делать задержки на БК10-11(М) ? Чтобы работало универсальным способом, на всей линейке БК.

  4. #54

    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    1,245
    Спасибо Благодарностей отдано 
    343
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    261 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Я наткнулся в журнале "Персональный компьютер БК-0010 - БК-0011м" на информацию, что на некоторых БК10 не было таймера. Вопрос к спецам: так ли это? Говорят даже, что игра King's Valley была завязана на таймере, поэтому музыка в ней работала не везде.
    неверно
    таймер находится внутри процессора, но он был не всегда исправен
    или глючил

    соответственно я написал пару тестов таймера - быстрый tim74
    и полный который стоит запустить на сутки tim791
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  5. #55

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    у меня в PONG Charged есть тест таймера – если таймер сломан, игра пишет об этом и предупреждает, что изображение будет мерцать. Исходники можно посмотреть здесь.
    manwe.pdp-11.ru

  6. #56

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    таймер находится внутри процессора, но он был не всегда исправен
    или глючил
    Поскольку таймер не заявлен в составе оборудования ВМ1, его не проверяли на заводе при тестировании процессоров и, соответственно, дефект таймера не служил основанием для выбраковки этого экземпляра ВМ1. Поэтому таймер у ВМ1 - как повезет...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  7. #57

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хорошо. Мы выяснили, что таймер на десятых Бэкашках не всегда функционировал. Как же отмерять время? Как, допустим, универсальным способом замерить 1/50 секунды без таймера? Есть ли такие наработки? В играх ведь как-то задержки делали даже без таймера? Задача, видимо, упрощается тем, что частота проца ВМ1 была одинаковой, т.е. процы работали с одной скоростью на всех десятых Бэкашках. Или это не так?

  8. #58

    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    1,245
    Спасибо Благодарностей отдано 
    343
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    261 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Хорошо. Мы выяснили, что таймер на десятых Бэкашках не всегда функционировал. Как же отмерять время?
    надо просто заменить процессор на исправный
    и если говорить о % неисправных таймеров, то это не более 1% от всего объема
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  9. #59

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    В играх ведь как-то задержки делали даже без таймера? Задача, видимо, упрощается тем, что частота проца ВМ1 была одинаковой, т.е. процы работали с одной скоростью на всех десятых Бэкашках. Или это не так?
    Всё так. Без таймера не получится точно отмерять время, но можно примерно. Для этого можно рассчитать оптимальное количество спрайтов на экране (допустим, 20 штук) и когда реально на экране их меньше (допустим, 7), запускать "фейковую" процедуру, которая будет симулировать вывод спрайта в какую-нибудь ненужную область памяти оставшееся число раз (13). Таким образом, время на отрисовку каждого кадра будет примерно одинаковым, независимо от того, сколько спрайтов выводится на экран.
    manwe.pdp-11.ru

  10. #60

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А если нам нужно делать такую задержку, не завязанную на вывод графики, например, при опросе клавиатуры?

    Допустимо ли написать подпрограмму, крутящую пустой цикл? И правильно ли будет, если я откалибрую её хотя бы примерно по скорости работы эмулятора? (всё равно живой БэКа у мну нет)

    Но тут же всплывёт то, что БК11 имеет более высокую частоту? Ладно. Буду тогда использовать таймер, куда ж деваться.

Страница 6 из 7 ПерваяПервая ... 234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор БК-0010-01, БК-0011 и БК-0011М
    от Doronetty в разделе Эмуляторы отечественных компьютеров
    Ответов: 248
    Последнее: 21.12.2025, 14:34
  2. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  3. Ответов: 0
    Последнее: 24.01.2010, 21:46
  4. О совместимости клонов с играми
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 1
    Последнее: 13.03.2008, 18:26

Ваши права

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