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

User Tag List

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 95

Тема: Эмулятор БК-0010 на ESP8266

  1. #41
    Member
    Регистрация
    03.09.2018
    Адрес
    г. Орёл
    Сообщений
    68
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Это говорит о неверных таймингах, некоторые команды слишком заторможены. У тебя есть уникальная возможность сделать более правильный эмулятор!
    В http://gid.pdp-11.ru такие тайминги:

    БЕЗОПЕРАНДНЫЕ КОМАНДЫ

    68 HALT
    12 WAIT
    40 RTI
    16 Bxx
    16 BR
    32 RTS
    56 MARK
    64 TRAP
    64 EMT
    20 SOB
    40 INT
    12 Sxx
    12 Cxx
    104 BPT
    104 IOT
    -----------------------------------------------

    ОДНООПЕРАНДНЫЕ КОМАНДЫ

    TST

    00 10 20 30 40 50 60 70 Метод адресации приемника
    ----------------------------
    12 24 24 36 28 40 36 48 Число тактов
    -----------------------------------------------

    SWAB, CLR, COM, INC, DEC, NEG, ADC, SBC, ROR, ROL, ASR, ASL, SXT, MFPS

    00 10 20 30 40 50 60 70 Метод адресации приемника
    ----------------------------
    12 28 28 40 32 44 40 52 Число тактов
    -----------------------------------------------

    MTPS

    00 10 20 30 40 50 60 70 Метод адресации приемника
    ----------------------------
    24 32 32 44 36 48 44 56 Число тактов
    -----------------------------------------------

    XOR

    00 10 20 30 40 50 60 70 Метод адресации приемника
    ----------------------------
    12 32 32 44 32 44 44 56 Число тактов
    -----------------------------------------------

    JMP

    00 10 20 30 40 50 60 70 Метод адресации приемника
    ----------------------------
    08 20 24 32 24 32 32 44 Число тактов
    -----------------------------------------------

    JSR

    00 10 20 30 40 50 60 70 Метод адресации приемника
    ----------------------------
    08 32 36 40 36 40 40 52 Число тактов
    -----------------------------------------------

    ДВУХОПЕРАНДНЫЕ КОМАНДЫ

    MOV

    Метод адресации приемника
    00 10 20 30 40 50 60 70
    ---------------------------- Метод адресации источника
    12 32 36 44 36 44 44 56 | 00
    28 40 40 48 40 48 48 60 | 10
    28 40 40 48 40 48 48 60 | 20
    40 52 52 60 52 60 60 72 | 30
    28 44 44 52 44 52 52 64 | 40
    40 56 56 64 56 64 64 76 | 50
    40 52 52 60 52 60 60 72 | 60
    52 64 64 72 64 72 72 84 | 70
    -----------------------------------------------

    CMP, BIT

    Метод адресации приемника
    00 10 20 30 40 50 60 70
    ---------------------------- Метод адресации источника
    12 32 32 44 32 44 44 56 | 00
    28 36 36 48 36 48 48 60 | 10
    28 36 36 48 36 48 48 60 | 20
    40 48 48 60 48 60 60 72 | 30
    28 40 40 52 40 52 52 64 | 40
    40 52 52 64 52 64 64 76 | 50
    40 48 48 60 48 60 60 72 | 60
    52 60 60 72 60 72 72 84 | 70
    -----------------------------------------------

    BIC, BIS, ADD, SUB

    Метод адресации приемника
    00 10 20 30 40 50 60 70
    ---------------------------- Метод адресации источника
    12 36 36 48 36 48 48 60 | 00
    28 40 40 52 40 52 52 64 | 10
    28 40 40 52 40 52 52 64 | 20
    40 52 52 64 52 64 64 76 | 30
    28 44 44 56 44 56 56 68 | 40
    40 56 56 68 56 68 68 80 | 50
    40 52 52 64 52 64 64 76 | 60
    52 64 64 76 64 76 76 88 | 70
    -----------------------------------------------

    В исходниках это прописано таблицами, т.ч. поменять значения в таблицах не проблема.
    Но у меня возникает несколько вопросов:
    1. Команды условных переходов выполняются одинаковое время вне зависимости от того происходит переход или нет?
    2. Будут ли инструкции выполнятся всегда одно и то же время в разных комбинациях сочитания с другими инструкциями? Ведь циклы выборки чтения видео ОЗУ будут по разному синхронизироваться с разным потоком инструкций?
    В общем если будет четкое представление о том как это все работает, можно будет сделать точные тайминги.

  2. #42
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от konst_st Посмотреть сообщение
    1. Команды условных переходов выполняются одинаковое время вне зависимости от того происходит переход или нет?
    всегда одинаковое (если я правильно провёл тесты ).

    Цитата Сообщение от konst_st Посмотреть сообщение
    2. Будут ли инструкции выполнятся всегда одно и то же время в разных комбинациях сочитания с другими инструкциями? Ведь циклы выборки чтения видео ОЗУ будут по разному синхронизироваться с разным потоком инструкций?
    Чтение из динамического ОЗУ очень сильно сдвигает синхронизацию на БК-0011, где частота процессора 4 МГц, а частота видеоконтроллера 6 МГц - таким образом одна и та же команда может в одном месте выполняться 32 такта, а в другом 48. Среднее время такой команды получается 37.33 такта (и, возможно, его-то и стоит прописывать в таблицу). Но это на БК-0011. А на БК-0010 с 3 МГц, которые кратны 6 МГц видеоконтроллера, должно быть попроще. Я ещё не изучал БК-0010 в этом вопросе досконально. Но собираюсь вскоре.
    manwe.pdp-11.ru

  3. #43
    Member
    Регистрация
    03.09.2018
    Адрес
    г. Орёл
    Сообщений
    68
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще вопрос по джойстику. Какая должна быть правильная распайка кнопок на периферийном порту? Т.е. на каких пинах должны сидеть кнопки "Вверх", "Вниз", "Вправо", "Влево" и т.п.?
    А то похоже есть проблемы в некоторых играх - другая привязка кнопок.

  4. #44
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от konst_st Посмотреть сообщение
    Еще вопрос по джойстику. Какая должна быть правильная распайка кнопок на периферийном порту? Т.е. на каких пинах должны сидеть кнопки "Вверх", "Вниз", "Вправо", "Влево" и т.п.? А то похоже есть проблемы в некоторых играх - другая привязка кнопок.
    вот здесь описано: http://zx-pk.ru/threads/25991-bk-001...l=1#post979848
    manwe.pdp-11.ru

  5. #45
    Member
    Регистрация
    03.09.2018
    Адрес
    г. Орёл
    Сообщений
    68
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Готов новый билд:
    https://github.com/konst-st/BK8266/b...38/0x00000.bin
    https://github.com/konst-st/BK8266/b...ds/38/fota.bin

    Исправлен глюк в эмуляции таймера. Глюк проявился на игре King's Valley.
    Теперь King's Valley нормально работает.

  6. #46
    Member
    Регистрация
    03.09.2018
    Адрес
    г. Орёл
    Сообщений
    68
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Готов новый билд:
    https://github.com/konst-st/BK8266/b...40/0x00000.bin
    https://github.com/konst-st/BK8266/b...ds/40/fota.bin

    Исправлена привязка джойстика к битам порта (сделал как писали выше).
    Реализована запись во flash из эмулятора (перехват обращения к функции записи на магнитную ленту)

    - - - Добавлено - - -

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

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

  8. #47
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от konst_st Посмотреть сообщение
    Реализована запись во flash из эмулятора (перехват обращения к функции записи на магнитную ленту)
    Это круто!
    Ещё вопрос про время исполнения команд: задержки идут после каждой команды или накапливается N команд и потом идёт одна длинная суммарная задержка на них всех (как в эмуляторе gid)?

    P.S. тут люди печатают миниатюрные корпуса на 3D-принтере. Надо к этому проекту корпус в виде копии БК сделать!

    Нажмите на изображение для увеличения. 

Название:	55d80bc5d7c74ad9bdf6674997fba715_preview_featured.jpg 
Просмотров:	119 
Размер:	71.4 Кб 
ID:	66418Нажмите на изображение для увеличения. 

Название:	03812dc018d3ee84aa5f8bc85318259c_preview_featured.jpg 
Просмотров:	123 
Размер:	91.0 Кб 
ID:	66419
    Последний раз редактировалось Manwe; 29.09.2018 в 00:13.
    manwe.pdp-11.ru

  9. #48
    Member
    Регистрация
    03.09.2018
    Адрес
    г. Орёл
    Сообщений
    68
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    задержки идут после каждой команды или накапливается N команд и потом идёт одна длинная суммарная задержка на них всех (как в эмуляторе gid)?
    Задержка (если мы опережаем) вставляется перед каждой командой.
    Но надо учитывать, что кроме эмулирования команд есть еще прерывания, обслуживание клавиатуры и т.п.
    Т.е. иногда что либо из этого будет прерывать процесс эмуляции, следовательно в эмуляции может возникать опаздывание, которое потом придется нагонять. Фактически задержки не большие. Если интересно могу замерить на сколько максимум происходит запаздывание.

  10. #49
    Member
    Регистрация
    08.08.2012
    Адрес
    г. Павловский Посад
    Сообщений
    42
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от konst_st Посмотреть сообщение
    Подскажите, это нормальное поведение БК, когда бейсик не хочет загружать программу если в памяти уже есть программа?
    Нет не нормальное поведение, должно всё загружаться.

  11. #50
    Member
    Регистрация
    03.09.2018
    Адрес
    г. Орёл
    Сообщений
    68
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от -=RUS=- Посмотреть сообщение
    Нет не нормальное поведение, должно всё загружаться.
    В gid поведение такое же. Я так понял что перед загрузкой нужно дать команду new (очистить память). Тогда все загружается. Или все же должно грузиться и без очистки памяти?

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор "Специалиста" на ESP8266
    от heavy в разделе Эмуляторы отечественных компьютеров
    Ответов: 82
    Последнее: 11.01.2024, 23:49
  2. Аппаратный эмулятор Радио-86РК на ESP8266
    от heavy в разделе Радио-86РК
    Ответов: 374
    Последнее: 27.11.2023, 01:06
  3. Эмулятор БК-0010-01, БК-0011 и БК-0011М
    от Doronetty в разделе Эмуляторы отечественных компьютеров
    Ответов: 175
    Последнее: 27.06.2022, 09:51
  4. Ретро компьютеры на ESP8266
    от Dotoro в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 40
    Последнее: 15.10.2018, 19:29
  5. WebDAV Server на ESP8266 для SD карты
    от petrov1962 в разделе Внешние накопители
    Ответов: 2
    Последнее: 11.04.2018, 17:21

Ваши права

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