Бытовой ретро-компьютер своими руками http://www.forum.pk-fpga.ru/ |
|
Эмулятор БК-0010-01, БК-0011 и БК-0011М http://www.forum.pk-fpga.ru/viewtopic.php?f=45&t=5441 |
Страница 7 из 8 |
Автор: | gid [ 17 фев 2020, 10:02 ] | ||||||||||||||||||
Заголовок сообщения: | Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М | ||||||||||||||||||
Ровно настолько, насколько я не понимаю, как это технически можно организовать. (только не надо про 8 синхронно параллельно работающих БКшек, каждая их которых будет свой битплан обрабатывать, это тупиковая ветвь эволюции.)
Сделать в принципе возможно, но будет ли это работать, я не знаю, скорее всего оно будет сильно тормозить не укладываясь во фрейм. |
Автор: | 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М | |||||||||
Вы почти всё делаете правильно, кроме двух нюансов: 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М | |||||||||
Не понял вопроса. Если имеется в виду реальный железный СМК, то он - это просто контроллер А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М | ||||||||||||||||||||||||||||||||||||
Не много, но есть. Есть такие игры с защитами, которые занимают целую дискету, и используют свой драйвер для работы с дисководом, и не используют ПЗУ.
Оба, если программа пользуется ПЗУ контроллера, то перехват делается на уровне вызовов ПЗУ, если не пользуется - то делается полная эмуляция портов и вращение дискеты.
Да, все точки входа соответствуют стандартной прошивке 326. Специально для совместимости сделали. Потому что к тому времени развелось уже умников, которые использовали некоторые функции из ПЗУ для своих нужд и вызывали подпрограммы напрямую, а не из официально документированных точек входа.
Да, у меня так и сделано. |
Автор: | Константин [ 17 дек 2021, 18:32 ] |
Заголовок сообщения: | Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М |
Здравствуйте! Пользуюсь режимом БК0010-01 + блок МСТД + Фокал. 1. Не получается пользоваться режимом ГРАФ - не работают стрелки, кроме влево/вправо. 2. Есть несколько старых программ, где прямо в операторе Type были при помощи режима ГРАФ нарисованы небольшие картинки. Сейчас эта возможность не работает. Т.е., раньше можно было написать T ", перейти в режим ГРАФ, ЗАП, нарисовать небольшую картинку, закрыть кавычку. При работе программы, эти картинки выводились в нужных местах. Может, я что-то подзабыл? |
Автор: | gid [ 18 дек 2021, 17:35 ] | |||||||||
Заголовок сообщения: | Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М | |||||||||
Да. Что-то важное. Я не поленился, запустил на реальной БКшке фокал. Поведение абсолютно такое же, как в эмуляторе - только вправо и влево, и то недалеко. Т.к. в мониторе БК в режиме ГРАФ курсор ездит по всему экрану, то это какая-то особенность фокала. А поскольку я на БК фокалом никогда не пользовался, то и не знаю как она выключается. |
Автор: | Константин [ 20 дек 2021, 00:51 ] | ||||||||||||||||||
Заголовок сообщения: | Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М | ||||||||||||||||||
Я вспомнил, что мы рисовали картинки в режиме "Блокировки редактирования". Т.е., отображались все нажимаемые стрелки и спецсимволы. Но при запуске программы в обычном режиме отрисовывалась картинка. Понятно, что это мало кому сейчас интересно, но была надежда, что, может, кто-то вспомнит. Точно помню, что БКшки у нас были тогда самого первого выпуска, с пленочной клавиатурой. Бейсика тогда вообще не было. И рисовали мы, кстати, нормально, во все стороны... |
Страница 7 из 8 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |