Бытовой ретро-компьютер своими руками
http://www.forum.pk-fpga.ru/

Эмулятор БК-0010-01, БК-0011 и БК-0011М
http://www.forum.pk-fpga.ru/viewtopic.php?f=45&t=5441
Страница 7 из 7

Автор:  gid [ 17 фев 2020, 10:02 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Ynicky писал(а):
а насколько сложно Вам добавить в эмулятор режим 256 цветов в разрешении 512х256, где один бит графики замещается 8 битами индекса палитры?

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

Сделать в принципе возможно, но будет ли это работать, я не знаю, скорее всего оно будет сильно тормозить не укладываясь во фрейм.

Автор:  dimajak [ 24 мар 2021, 22:03 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Прошу не пинать, если не в ту тему.
Эмулятор БК для Windows v3.11.2101.8545 x64
Режим БК-0010-01
Windows 7 Ultimate x64
Начинаю набирать программу на Бейсике. Ввёл строку 10.
Решил проверить сохранение-загрузку.
Набираю CSAVE "MEN.BAS"
В ответ OK
Хочу проверить загрузку программы, ввожу
CLOAD "MEN.BAS"
А в ответ:
ОШИБКА 5
Как правильно сохранять и загружать программы в эмуляторе?

Вложения:

Автор:  gid [ 25 мар 2021, 08:23 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

dimajak писал(а):
Как правильно сохранять и загружать программы в эмуляторе?

Вы почти всё делаете правильно, кроме двух нюансов:
1. Если в памяти есть хоть одна строчка кода, загрузить программу командами LOAD/CLOAD нельзя, это такое ограничение этого бейсика, т.к. он не умеет подгружать программы и делать слияние одной программы с другой, поэтому перед загрузкой нужно делать команду NEW
2. Это не принципиально, но расширения писать не нужно, т.к. они сами подставляются в соответствии с применяемыми командами SAVE/CSAVE/BSAVE, а у вас .BAS получается просто продолжение имени, имейте в виду, что длина имени файла - не более 6 символов (это такое рудиментарное ограничение ещё родом из RT-11)

Автор:  Night_Gryphon [ 02 апр 2021, 10:24 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Скажите, а для SMK512 как работает эмуляция дисковода: через перекрытие функции в ПЗУ или эмуляция портов, вращения дискеты и тд? Возможно ли для SMK реализовать эмуляцию дисковода своей функцией в ПЗУ как на 326 прошивке?

Пытаюсь эмулировать SMK на микроконтроллере. До этого сделал А16 с эмуляцией через перехват вызова функции в ПЗУ - оно довольно хорошо и быстро работает. Пытаюсь разобраться можно ли перенести это решение на эмуляцию SMK и как...

Автор:  gid [ 04 апр 2021, 22:24 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Night_Gryphon писал(а):
Скажите, а для SMK512 как работает эмуляция дисковода:

Не понял вопроса. Если имеется в виду реальный железный СМК, то он - это просто контроллер А16М на стероидах.
Там просто усложнена схема управления памятью и добавлены регистры HDD. Дисковод там, как и в А16М не эмулируется.
В плис реплике СМК512 используется некая HDL модель микросхемы 1801ВП-128, т.к. они уже достаточный дефицит.
И вот эта микросхема и управляет настоящим железным дисководом.

А про эмуляцию контроллеров лучше смотреть где-то на zx-pk.ru, там есть люди, которые делают или делали эмуляторы контроллеров НГМД для ДВК и УКНЦ, вот они наверное лучше знают, как правильно надо делать.

Там нужен правильный, комплексный подход. Надо заэмулировать сам дисковод, т.е. эмуляцию вращения дискеты, индексное отверстие, ход головок, можно без задержек. Надо заэмулировать работу микросхемы 1801ВП-128, т.е. её порты 177130 и 177132, и состыковать их. Затем уже самое простое - можно заэмулировать вообще любой контроллер дисковода.

Потому что если делать эмуляцию через перехват вызовов ПЗУ, то работать будут только те программы, которые используют вызовы ПЗУ, а те, что работают напрямую с портами контроллера работать не будут.

Автор:  Night_Gryphon [ 04 апр 2021, 23:00 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Да, я понимаю, что нужен комплексный подход, и пытаюсь разобраться как лучше сделать. В качестве образца смотрю на Ваш эмулятор...

Много ли по вашему опыту программ, которые работают с дисководом напрямую? Я пока только начинаю с БК возиться, не особо много с чем из софта успел поработать

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

Пока что хочу сделать эмуляцию через перехват вызовов ПЗУ. Поскольку вы детально разбирались в прошивках СМК - хотел узнать годится ли для СМК тот же перехват что вы писали в эмуляторе для 326й прошивки? Могу ли я для СМК использовать тот же адрес перехвата и тот же формат вызова функции как у вас в эмуляторе под 326 прошивку?

Автор:  gid [ 05 апр 2021, 11:30 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Night_Gryphon писал(а):
Много ли по вашему опыту программ, которые работают с дисководом напрямую?

Не много, но есть. Есть такие игры с защитами, которые занимают целую дискету, и используют свой драйвер для работы с дисководом, и не используют ПЗУ.

Night_Gryphon писал(а):
В исходниках Вашего эмулятора я вижу оба способа эмуляции дисковода и через перехват вызовов ПЗУ, и с портами/вращением дискеты. Хотел узнать когда в эмуляторе включаю СМК в качестве переферии - какой способ эмуляции применяется?

Оба, если программа пользуется ПЗУ контроллера, то перехват делается на уровне вызовов ПЗУ, если не пользуется - то делается полная эмуляция портов и вращение дискеты.

Night_Gryphon писал(а):
хотел узнать годится ли для СМК тот же перехват что вы писали в эмуляторе для 326й прошивки?

Да, все точки входа соответствуют стандартной прошивке 326. Специально для совместимости сделали. Потому что к тому времени развелось уже умников, которые использовали некоторые функции из ПЗУ для своих нужд и вызывали подпрограммы напрямую, а не из официально документированных точек входа.

Night_Gryphon писал(а):
Могу ли я для СМК использовать тот же адрес перехвата и тот же формат вызова функции как у вас в эмуляторе под 326 прошивку?

Да, у меня так и сделано.

Страница 7 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/