Вот если б не такие шедевры и не подумал бы бейсик в картотеку добавлять. А придется.
Вот если б не такие шедевры и не подумал бы бейсик в картотеку добавлять. А придется.
Больше игр нет
Вопрос на засыпку...
Есть ли в эмуляторах Вектора возможность взаимодействия со "сторонними" модулями/программами/библиотеками ?
Например: в конфиге эмулятора прописывается, что при работе с конкретным портом ввода-вывода (запись и/или чтение), нужно отправить байт или прочитать байт работая с неким приложением/модулем...
Это позволило-бы например (написав "внешнюю программу") "эмулировать" работу не стандартного внешнего оборудования (контроллера) для Вектора, без внесения изменения в сам эмулятор...
KTSerg, в v06x можно наскриптовать все, что угодно. Перехвата портов ввода-вывода нет, потому что я делал минимально то, что было нужно для загрузки .rk и .bas. Но для этого на самом деле все готово, просто надо сделать. Сам скриптовый язык достаточно мощный, чтобы на нем написать эмулятор Вектора
Чтобы получить общее представление, можешь заглянуть в то, как сделана загрузка бейсиковских файлов, например. Для зацепки есть два колбека: frame и breakpoint. С кадром все понятно. breakpoint это та же точка останова из отладчика, только оператором отладчика становится скрипт. Все доступные вызовы расписаны в README.
Взаимодействие с внешними программами это чуть сложнее. Есть какой-нибудь конкретный пример, что бы ты хотел сделать?
Больше игр нет
Я всё "колдую" над контроллером ЛВС, который подключен к "ПУ".
Сейчас к нему подключена SD-карта. С неё при старте в Вектор грузится программка типа "эмулятор монитора". Далее используя тот-же протокол ЛВС, контроллер общается с Вектором. По сути Вектор используется как консоль, коды нажатых клавиш передаются в контроллер ЛВС, а с него в Вектор передаются команды вывода символов на экран.
В результате на экране Вектора получаем доступ с файлам SD-карты. После выбора файла, он грузится в Вектор.
Основная идея была грузить на КвазиДиск образ из файла EDD, и иметь возможность потом сбросить (измененный) образ КвазиДиска в файл на SD-карту.
Но это аппаратный контроллер, который периодически приходится модифицировать, что-то подпаивать/перепаивать.
А если-бы эмулятор Вектора имел возможность при работе с портами ввода-вывода работать с внешними ресурсами, то можно было-бы значительно упростить процесс отладки контроллера и софта.
Да и просто помечтав, например слепить виртуальный "контроллер Ethernet" посаженный на "ПУ" (или другие порты), грузить программы в эмулятор непосредственно из каталога http://www.sensi.org/scalar/categories/all/
Ну или с помощью внешней программы адаптировать к эмулятору не стандартный Джойстик, виртуально подключив его к портам "ПУ" как "стандартный" для Вектора.
Или реализовать программную эмуляцию других контроллеров, для возможности их использования в "Эмуляторе"...
Последний раз редактировалось KTSerg; 02.03.2019 в 13:51.
Загрузить файл с диска сейчас уже можно. Фактически, чтобы сделать эмуляцию твоей железки, тебе не хватает возможности зацепиться за ввод-вывод в порты ПУ. Я правильно понял?
Больше игр нет
Это понятно, что в эмулятор можно файл загрузить. Но это частный случай, и применим только к эмулятору.
А при разработке реальной "железки", которая в перспективе должна работать с реальным Вектором, была-бы полезна возможность отладки в эмуляторе. И в таком случае просто загрузки файла уже маловато...
Да и "подключение" контроллера к эмулятору Вектора не ограничивается задачей загрузки файла.
Да работы эмулятора с внешним "ПУ" уже на многое хватит.Фактически, чтобы сделать эмуляцию твоей железки, тебе не хватает возможности зацепиться за ввод-вывод в порты ПУ. Я правильно понял?
Правда на сколько я понимаю, есть много разных способов общения двух программ (в нашем случае эмулятора Вектора и эмулятора контроллера). А в этом я не спец Один раз, 15 лет назад, во время лабораторных работ, кидали сообщения между программками... вот и весь мой опыт.
Для выбора наиболее удобного для реализации и использования нужны знания и практический опыт, которыми я не обладаю.
Хотя "работа" с портами ввода-вывода это по 1-му байту за раз...
KTSerg, если у тебя нету какой-то отдельной программы, эмулирующей железку, то проще эмулятор железки написать в самом скрипте. Я может быть плохо выразился, но под загрузить файл я имею ввиду не загрузку rom в эмулируемый Вектор, а загрузку произвольного файла в массив из скрипта. Этот массив можно интерпретировать как что угодно, может быть это образ SD-карты, может быть один файл.
Например, давай распишем игрушечную железку-расширялку, почему-то на порту 0x33-34:
1. в порт 0x33 записывается 0x01 "MYFILE.ROM", 0x00 - это команда загрузить файл.
2. Вектор как бы крутится, читает порт 0x34 обратно и там пока 0
3. железяка загрузила файл в и выставила в порт 0x34 "1"
4. дальше на все запросы ввода из порта 0x33 железяка возвращает сначала длину файла, потом его содержимое байт за байтом
То же самое скрипт-эмулятор:
Перехватываются порты 0x33, 0x34:
Когда появилась команда мы ее исполняем -- то есть в нашем примере загружаем в массив содержимое запрашиваемого файла
Когда Вектор из порта читает статус и данные, подсовываем ему их из скрипта
Вот и все. Понятно, что реальная железяка сложнее, это просто такой хелло вролд.. Сейчас перехват портов не сделан, но если это востребовано, я могу прикрутить.
Больше игр нет
Не уверен, что я правильно все понял, но возможно KTSerg пишет про доступ к реальным интерфейсам ПК изнутри эмулятора. Правда физических LPT в современных компах нет.
Не сомневаюсь, что скрипт - это круть...
Но я пока не готов к такой крутизне. Делфа и Кейл пока привычнее.
А "проброс" портов из Эмулятора Вектора во "внешний мир", это пока только тема для размышлений.
Возможно когда появятся идеи для реального использования такой фишки, можно будет подумать и о реальной реализации... пока только как идея...
Если это так, то с современным ПК это в первую очередь задача подключения к нему этой железки и написание драйверов. Только это ой и по-моему в случае с Вектором задачу усложняет экспоненциально.. Да и вообще не понятно, какую задачу это решает?
Я это понял немного иначе. Что прототип железки сначала делается в эмуляторе, на этой связке пишется софт и обкатываются возникающие проблемы. Потом проще делать реальную железку с уже наверняка работающим софтом. И отлаживать ее проще, сверяя с эмуляцией.
Больше игр нет
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)