Просмотр полной версии : Emu80, старые версии
Приветствую!
Я решил реанимировать, наконец, свой эмулятор Emu80 (http://emu80.org). К сожалению, до добавления новых фич придется существенно переработать его внутреннюю структуру — там практически все ядро осталось еще с ДОС-версии ассемблерным. В общем, как всегда: задумок много, свободного времени мало, но потихоньку работаю. Сейчас очень нужно будет тестирование, поскольку переписывание ассемблерного кода чревато ошибками.
Собрана также linux-версия. В свое время я так и не отладил ее до конца, сейчас вроде бы версия практически рабочая, наблюдаются только некоторые проблемы со звуком. В общем, также требуется тестирование. С мультиплатформенностью будет чуть проще после планируемого перехода на SDL2 - там реализовали некоторые вещи, которых очень не хватало в SDL.
Исходники на github:
https://github.com/vpyk/emu80
Последние бинарные сборки для ознакомления и предварительного тестирования (linux-сборки требуют наличия библиотеки libsdl):
3.11 alpha:
Windows-версия: http://emu80.org/files/Emu80SDL313_win.zip
Linux-сборка (x86): http://emu80.org/files/Emu80SDL313_lnx.tgz
Что нового:
3.10 (08.04.2013):
- linux-версия
- немного исправлена цветовая палитра (не до конца)
- полностью переписана эмуляция звука (в т.ч. таймера ВИ53)
- разные внутренние изменения
3.11 (01.05.2013):
- улучшена эмуляция таймера ВИ53
- внутренние изменения
3.13 (14.06.2013):
- улучшена эмуляция процессора (переход на новое ядро эмуляции 8080 Александра Демина)
По мере переработки кода буду выкладывать новые сборки для тестирования. С удовольствием отвечу на вопросы, а также выслушаю замечания, пожелания на будущее и т. п.
а куда делся "Emu80Cfg.exe" для настройки эмулятора ?
в прошлой версии был.
и спасибо за обновление, вот уж не думал что этот эмулятор оживёт.
stranam.rkm - что однажды я запускал, сейчас вообще не могу вспомнить как мне её
запустить?
"Emu80Cfg.exe"
прилепил к Стране Монстров ) (http://zx.pk.ru/showpost.php?p=591010&postcount=3) Как игрушку загрузить у меня инструкция тут такая краткая )
stranam - Страна Монстров (запуск G ВК RUN ВК)
Вроде Микроша? )
Да, это «Микроша», инструкция правильная :)
Поскольку версия тестовая, недостающие файлы можно взять из архивов старых версий.
А реально необходимость в конфигураторе Emu80Cfg есть? Или проще настроить параметры в cfg-файле? Если нужен - выложу для тестирования обновленный, хотя никакие новые возможности там пока не появились, просто изменился инструмент разработки.
лучше пусть будет конфигуратор, кому как но мне проще так настраивать эмуляторы чем копаться в консолях или настроечных файлах.
А реально необходимость в конфигураторе Emu80Cfg есть? Или проще настроить параметры в cfg-файле? Если нужен - выложу для тестирования обновленный, хотя никакие новые возможности там пока не появились, просто изменился инструмент разработки.
Старый у меня завёлся и влиял, конечно он нужен, поскольку там явно видно список поддерживаемых компов (я эмулятор вижу 2-й раз).
Но вопрос по stranam.rmk - как её всё таки запустить ? )
Конкретно по шагам - у меня что то не получается, но однажды запускалось же !
Ok, завтра будет для тестирования обновленный конфигуратор.
Насчет запуска: проще всего ассоциировать эмулятор с файлами rkm через конфигуратор, запустить stranaam.rkm (запустится эмулятор), потом G <Enter>, потом RUN <Enter>
Вот только размещать эмулятор пока желательно в папке без русских букв и пробелов - давняя фича, поправлю со временем...
Да (почти расплакался) вот всё таки (правильную) ДВКашную версию найти!
Всё вроде то же самое, но не то. Но поиграть пока есть только эта ) Штука в том,
что ни данный вариант игры ни сам Микроша компьютер я в глаза живьём не видел,
поэтому, если честно не интересно ) Но в Монстров надо поиграть!
http://savepic.org/3270431.png
http://savepic.org/3261215.png
http://savepic.org/3266335.png
(* Очень ищу эту игру от Зеленоградских разработчиков для ДВК и УК-НЦ ! )
---------- Post added at 23:52 ---------- Previous post was at 23:50 ----------
Ха! )
http://savepic.org/3230494.png
---------- Post added 10.04.2013 at 00:03 ---------- Previous post was 09.04.2013 at 23:52 ----------
Круто, похоже на микроше "Страну Монстров" на БЕЙСИКЕ написали, иногда показатель здоровья некорректную циферку показывает )
http://savepic.org/3262224.png
- если по суше пойти экипировку сам себе выбираешь ! ) Мощь ! ) Микроша - Монстр )
---------- Post added at 00:05 ---------- Previous post was at 00:03 ----------
Всё я счастлив, эмулятор работает, в Монстров можно играть )
Если кто нибудь вспомнит, что хотя бы играл в ДВК версию пожалуйста отпишитесь! )
Собственно, первоисточник "Страны Монстров" для МИКРОШИ.
http://home.onego.ru/~bav9/94.html
Обновленный конфигуратор:
http://emu80.org/files/Emu80Cfg002.zip
Как я уже говорил, новых возможностей там пока нет, просто перекомпилирован с использованием другого инструмента (Lazarus вместо Delphi). Linux-версии пока нет.
Linux-версии пока нет.
последний вариант вот что выдаёт ) У меня старый работал делаю откат на него )
http://savepic.org/3218173.png
Оказывается, я собрал эту версию под Win64, завтра поправлю...
CityAceE
11.04.2013, 01:24
перекомпилирован с использованием другого инструмента (Lazarus вместо Delphi)
Очень нравится такой подход! Я имею ввиду использование свободного кроссплатформенного ПО.
Заменил файл конфигуратора на исправленный.
http://emu80.org/files/Emu80Cfg002.zip
Просьба потестировать.
CityAceE, спасибо, буду и дальше двигаться в этом направлении :)
Просьба потестировать.
Запустился, работает и пред. настройки взял из cfg?
Вот по размеру видно, что компилятор сменился ) Потяжелело приложение ) В три раза, Дельфи оптимальней собирало исполняемый файлик )
Картинки.
http://savepic.ru/4416716.png
http://savepic.ru/4421836.png
Где бы ещё игрушек взять под это дело?
Расскажите чем обусловлен именно такой список машинок?
Плата материнская у всех одна - модификации одного и того же компа или что?
Где бы ещё игрушек взять под это дело?
Расскажите чем обусловлен именно такой список машинок?
Плата материнская у всех одна - модификации одного и того же компа или что?
вот http://dfiles.ru/files/7xezmrk0x
большая колекция игр и программ (в основном всёже игры) на компьютеры:
-апогей
- микроша
- партнёр
- радио 86пк
- специалист
- микро 80
- ют 88
- лик
когда-то собирал с различных сайтов.
Pyk - подскажите как запускать игры и программы для "лик" ?
эмулятор на них просто зависает.
---------- Post added at 10:55 ---------- Previous post was at 10:20 ----------
найденые ошибки:
апогей
FOOTBALL - игра виснет
LIQSKY - пропускается экран с правилами игры
SABOTEUR - заедает звук
-------------
партнёр
STONEFLD - неработает ?
----------------
радио 86 рк
PVO - ошибки (просто подождите некоторое время).
-----------------
специалист
DUSHMAN - как начать игру
KAMIKADZ - как начать игру
CityAceE
12.04.2013, 09:01
Вот по размеру видно, что компилятор сменился ) Потяжелело приложение )
Существуют методы (http://www.homepg.ru/index.php?option=com_content&task=view&id=19&Itemid=38) уменьшения исполняемого файла после компиляции Lazarus'ом. Но я так понимаю, что компрессия исполняемого файла уже была произведена.
подскажите как запускать игры и программы для "лик" ?
У Лика используется своё нестандартное ПЗУ с нестандартными точками входа. Наверное эмулятор не поддерживает его.
Что касается ПК "Лик", то нужно выбрать (F9 или в конфиге) тип компьютера "Специалист", потом по Alt-F8 выбрать ПЗУ "Лик".
Выбор машинок обусловлен некоторой общностью между ними: в той или иной степени все они клоны или предшественники Радио-86РК, построены на одном процессоре и имеют схожие решения.
У меня есть еще немного игрушек, которые пока не выложены на сайте. Как-нибудь на днях постараюсь их отобрать и выложить. Ошибки посмотрю вечером, пока нет возможности.
CityAceE, да, исполняемый файл уже уменьшен, только не стал его упаковывать из-за возможных проблем с антивирусами. Изначально он вообще занимал более 15 Мб. Набросал когда-то конфигуратор наспех на Delphi, может быть, когда-нибудь перепишу с использованием Qt или wxWidgets, но это пока не первоочередная задача.
Прошлая версия эмулятора вообще не поддерживала графические игры Апогея, например гонки.
Прошлая версия эмулятора вообще не поддерживала графические игры Апогея, например гонки.
точно в те времена разобрались со знакогенератором и играли в гонки
я еще тогда долго пинал уважаемого PYK и писал свой первый эмулятор ;)
yark назывался (он даже жив на триподе)
просто помню огромную радость когда увидел картинку заставки у гонок
и саму трассу
и про курицу еще игрушка была
а потом вроде кто-то прислал настоящий знакогенератор.
а потом вроде кто-то прислал настоящий знакогенератор.
Вот интересно - кто прислал? Потому что я-то тоже у Пыхонина позаимствовал :)
Никто не присылал. Я тогда добрался до "Апогея" и лично рисовал по точкам символы на листе бумаги в клетку :) Первый набор знакогенератора в основном совпадал с РК-86 (отличались всего несколько символов), а второй с псевдографическими символами был довольно логично построен, и зарисовывать все символы не было необходимости. Но я даже сейчас на 100% не уверен, что знакогенератор у меня абсолютно правильный. Может быть, кто-нибудь считывал у него это ПЗУ?
Я тогда добрался до "Апогея" и лично рисовал по точкам символы на листе бумаги в клетку
А есть этот шрифт по клеткам, это я уже для себя )
Нет, листочки те не сохранились...
По играм:
FOOTBALL - запуск G100
LIQSKY - так в оригинале, паузы не было
SABOTEUR, STONEFLD, PVO, DUSHMAN, KAMIKADZ - ведут себя точно так же и в старой версии эмулятора, и в эмуляторе уважаемого b2m. Возможно, изначально поврежденные файлы, не до конца адаптированные под данный тип ПК или рассчитанные под другую модификацию компьютера. PVO, возможно, запускается с другого адреса, но неизвестно с какого. Возьму себе на заметку и попробую с ними разобраться. Во всяком случае, в STONEFLD я точно когда-то играл, и считан он с моей кассеты.
Я через неделю могу выпаять ПЗУ и прочитать.
Все равно собираюсь новый Апогей покупать, этот паянный-перепаянный, лишняя панелька ему уже не страшна.
Неплохо было бы сравнить. :) Конечно, с большой вероятностью совпадет, но тем не менее...
Решил опубликовать под GPL v.3 исходники эмулятора и утилит. Надеюсь, что это пойдет на пользу проекту. Репозиторий:
https://github.com/vpyk/emu80
(Изменения после версии 3.10 пока не коммитил.)
Должен предупредить, что из-за ассемблерного наследия и двойной переработки кода (при переходе с версии 1.x на 2.x и, особенно, с 2.x на 3.x) код получился довольно запутанным. Надеюсь, что со временем это удастся изменить в лучшую сторону. По мере получения более-менее работающих сборок буду фиксировать изменения на github.
vinxru, Не удалось пока добраться до ПЗУ «Апогея»?
Новые версии для тестирования:
Windows-версия: http://emu80.org/files/Emu80SDL311alpha_win.zip
Linux-сборка (x86): http://emu80.org/files/Emu80SDL311alpha_lnx.tgz
Исходники на github:
https://github.com/vpyk/emu80
Улучшена эмуляция таймера ВИ53, некоторые внутренние изменения, еще много чего из задуманного и начатого в этот релиз не вошло (увы, не все получается так быстро, как хотелось бы).
Если сделаю релиз под Mac OS X, сможет кто-нибудь его протестировать на реальном маке (мне она доступна только в виртуальной машине)?
Сорри, исправил ссылки на последнюю версию 3.11
Добавил предварительную версию скрипта CMakeLists.txt для сборки из командной строки с помощью cmake. Пока только под Linux. Для сборки:
$cd src
$cmake .
$make
Требуются cmake версии 2.8.4 или выше, nasm, gcc, libsdl.
Этот вариант сборки пока тестируется, рекомендуется для компиляции использовать среду разработки Code::Blocks и файл проекта для нее.
Граф Куракин
07.05.2013, 00:54
Если сделаю релиз под Mac OS X, сможет кто-нибудь его протестировать на реальном маке (мне она доступна только в виртуальной машине)?
Я протестю :)
А не планируется ли поддержка ПК "Специалист_МХ"? Тем более поддержка ВИ53 и дисковода уже есть.
Да, планируется. Специалист-MX обязательно будет. Как быстро - пока не берусь определенно сказать, но после переделки внутренней структуры эмулятора это одна из приоритетных доработок.
Граф Куракин
04.06.2013, 23:25
Ну так как, под Mac OS X выйдет? :)
Да, но пока мало что делал в этом направлении, занимался другим :( Но раз интерес есть, постараюсь на днях отвлечься на Mac OS X...
Пока не получается установить какую-нибудь версию MacOS в виртуальной машине (использую VirtualBox). Если у кого-то есть опыт успешной установки. поделитесь, плиз!
Выложил новую версию для тестирования. Ссылки, как обычно, в первом посте. Исключен ассемблерный код эмуляции 8080, сейчас используется код эмуляции ядра Александра Демина. Пользуясь случаем, выражаю благодарность автору!
Cat_Alex/QRP
14.07.2013, 05:50
Pyk, насчет контроллера дисковода для "Партнер 01.01"? предвидится эмуляция или нет?
Да, обязательно будет, не обещаю только очень быстро. Извините, почти 3 недели не касался эмулятора - уезжал в отпуск, только что вернулся :) Продолжу по мере возможности с новыми силами ;)
А исходники от последней ДОС-кой версии (1.81 кажется) можно туда же выложить?
Можно, почему бы и нет? Последняя DOS-версия - 2.86, кстати.
Подготовлю. Если нужны срочно - вышлю на e-mail.
Нет, срочности нет никакой, просто программером по профессии я никогда не был. В конце 90-х учился на инженера-схемотехника и мои познания в асм-е только на уровне программирования 8 и 16 бит. Программирование в 32-битном коде прошло мимо меня. Да по сути там уже больше знания функий всяких API, а не самого кодинга... Сейчас думаю какой-то гибрид собрать (типа РК86 на 8085), но с более интересной периферией, а для отладки весьма такая штучка (эмулятор) понадобилась бы.
:v2_dizzy_rastoman:
Есть несколько замечаний по работе Emu80, связанных с неточностями в эмуляции "Партнёр 01.01". Сравнивала с реальной железкой, обнаружила следующее:
1. Процессор стартует с адреса 0xF800. Должен стартовать с нулевого адреса.
2. Нет первой половины ПЗУ BIOS D32 (отсутствуют редактор и ассемблер).
3. Экран сдвинут влево. У "Партнёра" видимая часть экрана начинается с адреса 77BDh, а не с 77C2h, как в "Радио-86РК".
4. Работа интерпретации атрибутов "подчёркивание" и "инверсия" происходит некорректно по сравнению с реальным компьютером.
5. Нет эмуляции регистра состояния КР580ВГ75. В частности, флага IR (запрос прерывания).
6. Нет эмуляции блочного курсора.
https://img-fotki.yandex.ru/get/4908/203760433.a3/0_1551ac_2dea0338_orig.jpg
Всем привет!
Прошу прощения за длительное отсутствие - обстоятельства сложились так, что не было времени сколь-либо серьезно заниматься эмулятором.
Ситуация на данный момент такая: последняя более-менее работающая версия эмулятора - 3.13, то, что сейчас на GitHub'е - компилируется, но в содержит баги, реально пользоваться версией из репозитория не советую. В текущих же исходниках, даже не загруженных на GitHub, уже успел много всего сломать, все очень сырое, требует усилий по доведению до ума...
В общем, такие новости:
1. Появилась пока возможность позаниматься эмулятором. Пока есть и интерес, и немного времени, что будет дальше - сказать сложно.
2. Новых сборок в ближайшее время обещать не могу. Слишком много изменений, быстро до ума не доведу, да и подзабыл уже за полтора года свой же код, приходится вспоминать что и как... За исключением эмуляции видеоконтроллера изменения в основном внутренние, связанные с переходом с ассемблера на с++.
3. Ко мне вернулся железный "Партнер". Включил - работает без проблем, будет на чем тестировать :)
- - - Добавлено - - -
xlat, спасибо за замечания, комментирую:
1. Согласен. Страничная организация памяти на данный момент вообще не реализована. В планах есть, но пока с низким приоритетом...
2. См. п. 1
3. Не совсем понял. На "Партнере" из-за увеличенной до 2 МГц тактовой частоты увеличена длительность строчного синхроимпульса, поэтому отображаемая часть растра 78*30 символов (76D0-7FF3) оказывается смещенной вправо. Чтобы это компенсировать, на уровне Монитора полезная область экрана 64*25 символов сдвигается внутри отображаемой на 5 символов влево, то есть начинается не с адреса 77С2, а с адреса 77BD. Эмуляторы (как мой, так и EMU) показывает всю отображаемую область (76D0-7FF3). Что смущает?
4,6. Как раз в процессе реализации, очевидно, в следующей версии уже будет. Вопрос только, когда ;)
5. А вот с этим не согласен. Частично реализовано, а конкретно как раз и сделан только флаг IR:
http://emu80.org/pics/misc/ir.png
Pyk, спасибо за ответы :) Очень здорово, что не забрасываете эмулятор! ;)
Относительно этих пунктов:
3. Не совсем понял. На "Партнере" из-за увеличенной до 2 МГц тактовой частоты увеличена длительность строчного синхроимпульса, поэтому отображаемая часть растра 78*30 символов (76D0-7FF3) оказывается смещенной вправо. Чтобы это компенсировать, на уровне Монитора полезная область экрана 64*25 символов сдвигается внутри отображаемой на 5 символов влево, то есть начинается не с адреса 77С2, а с адреса 77BD. Эмуляторы (как мой, так и EMU) показывает всю отображаемую область (76D0-7FF3). Что смущает?
5. А вот с этим не согласен. Частично реализовано, а конкретно как раз и сделан только флаг IR
3. Смущает, что картинка на реальном телевизоре/мониторе в случае и с "86РК", и с "Партнёром" отображается посередине, а в эмуляторе у "Партнёра 01.01" - сдвинута влево. Так-то не особо критично - беспокоит больше с эстетической точки зрения :)
5. Я при проверке пользовалась программой (https://yadi.sk/d/HjLuj39KosWC4), считающей кадры на основе флага IR. В Emu80 в режиме "Радио" насчитывалось больше, чем 50 за секунду. По идее, так, наверное, не должно быть.
5. Я при проверке пользовалась программой (https://yadi.sk/d/HjLuj39KosWC4), считающей кадры на основе флага IR. В Emu80 в режиме "Радио" насчитывалось больше, чем 50 за секунду. По идее, так, наверное, не должно быть.
Спасибо за тестирование, действительно, обнаружился баг: флаг IR не сбрасывался при считывании. Времени, в течение которого он остается в установленном состоянии, хватает тестовой программе, чтобы посчитать его 2 раза, так что и насчитывает она 100 за секунду. Исправлю.
Есть вопрос ко всем пользователям эмулятора.
Еще с самых первых версий своеобразной "фишкой" эмулятора является режим отображения текста с использованием символов 8×16. С одной стороны, это дает более красивую, чем на реальном ПК, картинку, а с другой - не позволяет полностью эмулировать все особенности ВГ75. А насколько актуальна вообще дальнейшая поддержка этого режима? Я-то сам привык к нему, а кто-нибудь еще его использует?
хы..
только сейчас обратил внимание, заглянул в настройки эмулятора по клавише F10 а там вроде по умолчанию используется режим 8х16.
мне кажется пусть будет, так будет интересней.
Kakos_nonos
22.02.2016, 17:59
Пусть будет, для текстовых программ самое оно. Но можно, например, сделать её отключение если программа лезет в настройки вг75.
Pyk, а можешь залить на GitHub обновленную версию для линукса?
tnt23, если имеется в виду третья версия эмулятора, то актуальная версия по ссылке в первом сообщении этой темы.
Четвертая версия сейчас в активной разработке, пишется практически "с нуля", поэтому залить пока, собственно, нечего. Надеюсь, в течение лета появятся бета-версии, исходник также опубликую ближе к релизу.
Ну а пока несколько скриншотов будущей версии :)
http://emu80.org/pics/misc/demo1.png
http://emu80.org/pics/misc/demo2.png
http://emu80.org/pics/misc/demo3.png
http://emu80.org/pics/misc/demo4.png
http://emu80.org/pics/misc/demo5.png
Pyk, спасибо. Бинарную сборку я не заметил :)
А поддержка РК ДОС планируется?
tnt23, Не вижу препятствий для этого - добавление новых фич после переработки внутренней архитектуры эмулятора уже не представляет особых сложностей. Правда, сам я с РК ДОС не сталкивался, но думаю, что когда до этого дойдет дело, посетители форума при необходимости мне помогут. :)
tnt23, описание в журнале достаточно полное, вопросов не возникло, поддержка DOS будет:
57742
Sergei Frolov
10.08.2016, 10:24
Немного поработал с EMU80 для Spectrum 128K, есть два пожелания:
1. Чтобы окно ОЗУ обновлялось.
http://storage7.static.itmages.ru/i/16/0810/h_1470813776_7887206_08e36a814f.gif
Пишу по C000, а в окне изменений нет. Но на самом деле они есть (если убрать и показать окно или сверху провестись другим окном, они появятся).
2. При включенном отладчике если сделать File -> New, то вылетает по ошибке.
Это не ко мне, это в соседнюю ветку "Пожелания и планы по эмулятору Башкирия-2М"...
Немного поработал с EMU80
Мдя, отсутствие внятного имени у моего эмулятора начинает уже напрягать :)
1. Чтобы окно ОЗУ обновлялось.
Попробуй вместо F8 нажимать Shift+F8. Это не шаг, а запуск до следующей команды, при этом окно дампа обновляется.
2. При включенном отладчике если сделать File -> New, то вылетает по ошибке.
Погляжу, что можно сделать. Раньше была такая-же проблема при закрытии эмулятора. Я уже по привычке закрываю отладчик, прежде чем куда-либо тыкать мышкой :)
Chaos Constructions 2016 кто-нибудь планирует посетить? Есть мысль съездить...
Sergei Frolov
11.08.2016, 10:19
Попробуй вместо F8 нажимать Shift+F8. Это не шаг, а запуск до следующей команды, при этом окно дампа обновляется.
Спасибо, с Shift-F8 работает.
Имеется вопрос по эмулю:
Нужно чтобы все что я вывожу на мг шло на звуковуху.
в emu80.cfg ставлю
tape=sb-out
запускаю эмуль - байты сыплются в файл ;(. если из эмуля перенаправить (f10->магнитофон-воспроизведение) все работает корректно, но выбор не запоминается. При каждом запуске приходится так делать, что не удобно.
Что посоветуете?
mvg, ошибка в описании опции, в 3-й версии эмулятора нужно так:
tape=out
Спасибо за замечание, после выхода 4-й версии эмулятора сделаю также багфикс-релиз третьей...
Pyk, обновление вашего эмулятора ещё будет ?
ZEman, да, полностью переписанная 4-я версия уже на подходе :)
4-я версия уже на подходе
Уважаемый Pyk, народ уже давно ждёт от Вас версии эмулятора РК86 с эмуляцией РК-КНГМД. Т.е эмуляции доработки железа РК86 в виде установки дешифратора на область адресов E000...FFFF, ППА стоящего в плате РК-КНГМД по адресу F000 и ПЗУ 4 кб по адресам E000...EFFF. И перенос доп.ППА D14 с адреса A000 в адрес F100. А также, что не менее важно, расширение ОЗУ в окне 8400...BFFF, хотя бы на 15 кб (или на 30К двумя страницами по 15 кб). Или реализуйте любой другой вариант расширения ОЗУ, обеспечивающий совместимость.
Хотелось бы также иметь возможность аппаратно переключать фонт (2 или 4 фонта). Порт и бит управления фонтом не важен (лучше использовать ППA D14, т.к ставить в РК86 TTL регистры мы не можем, нет ресурса по нагрузке шины). В принципе, можно использовать для управления фонтом неиспользованные биты PC1, PC2 из порта клавиатуры 8000. А владельцы клавиатуры MS7007 пусть пропадают без альтернативного фонта. Можно также использовать один из атрибутов ВГ75, как сделано в каком-то клоне РК.
При хранениии образа дискет созданных с РК-КНГМД возникает вопрос о названии файлов. Расширение файлов ODI (сокращение от ОРИОН диск) и KDI (сокращение от КОРВЕТ диск) используется для дискет в формате CP/M и поддерживается программами для работы с образами дисков. Казалось бы логично расширение RDI использовать для дисков CP/M для РК86, а для образов дискет RK-DOS использовать расширение RKD. К сожалению, даже для CP/M-дискет от РК-КНГМД имя RDI не годится.
Использование формата RDI для дискет от РК-КНГМД невозможно по следующей причине. В RK-DOS, в отличие от CP/M используются сектора произвольной длины (1...512 байт), поэтому получить просто "слепок" дискеты последовательным чтением секторов, как в формате ODI, - невозможно. Каждый сектор содержит в своей служебной области длину этого сектора, а также КС сектора и это считывает КР580. Во всех остальных ДОС в мире такого нет, там все сектора одной длины, - это просто не поддерживают БИС для дискетных контроллеров (КС секторов сверяет тоже сама БИС контроллера, а не процессор).
Формат CP/M-дискет для РК-КНГМД имеет такие же сектора, отчего имя ODI даже тут не годится. Для CP/M-дискет от РК-КНГМД можно использовать расширение RCP (от РК CP/M). Хотя формат образов РК-дискет RK-DOS и CP/M будет примерно одинаковым, но разница в расширении удобна для ориентации пользователя. Да и физическая структура дискет RK-DOS и CP/M немного разная, т.к в RK-DOS есть сектора с номером 0, а в CP/M нумерация секторов начинается с 1 и все сектора при форматировании заполняются кодом E5, вместо 0.
Естественно, одновременно с выпуском эмулятора РК86 поддерживающего РК-КНГМД, необходимо выпустить утилиту позволяющую копировать РК86-файлы с расширением GAM на/с образа дискет RK-DOS, CP/M и других ОС для РК86. Тут есть всего 3 варианта, - это сделаете Вы, это сделаю я, или это сделает кто-нибудь другой. Уверен, что автор утилиты SteinBlume вряд-ли согласится поддержать образы дисков RK-DOS, т.к его программа предназначена для CP/M-дискет (кому охота возиться с хитроумным физическим форматом RK-DOS).
Замечу, что создать программу для физического считывания дискет РК-ДОС в IBM PC Вы никак не сможете, т.к контроллер PC не может читать программно формируемый формат. Поэтому в эмуляторе необходимо, чтобы работал форматёр дискет от реального РК86, а о программе для перноса, я уже упомянул. Можно только написать программу, которая на реальном РК86 будет последовательно сканировать дискету и выдавать считанные сектора по проводной линии в IBM PC, где и будет сформирован образ диска.
Есть ещё один вариант обмена файлами (использованный в моих эмуляторах), это когда из эмулятора возможен прямой доступ к файлам на винчестере IBM PC. Это кстати, самый удобный для пользователя вариант. Тогда пользователь сам переносит нужные ему файлы в определённый каталог винчестера, а формирование виртуальной дискеты в эмуляторе происходит при старте эмулятора (в этот же каталог эмулятор записывает файлы предназначенные для хранения на PC, т.е результаты работы в эмуляторе).
RK-DOS использует идеологию из Apple-DOS и ДОС АГАТА, но описатель трека во VTOC не 4-х байтовый, а однобайтовый, что ограничивает число секторов в треке не до 32, как в оригинале, а лишь до 8 (т.к занятость сектора в треке описывается одним битом байта). Тем самым RK-DOS поддерживает максимум 8*512*160, всего 640К на диск.
К сожалению, формат дискет РК-ДОС не имеет ИНФО-блока в BOOT-секторе (и вообще не имеет ИНФО-блока с физическими параметрами диска), отчего RK-DOS такая убогая и в базовом виде поддерживает всего один жёстко фиксированный формат дискет. Хотя, чтобы RK-DOS поддерживала любой другой формат достаточно изменить в её коде всего несколько байт, но опять-таки снова будет поддержан только один жёстко фиксированный формат и нет средства узнать какой это формат.
Одновременную поддержку RK-DOS-ом нескольких форматов с автонастройкой не ввести без изменений архитектуры, в силу того, что в ПЗУ 4К, где хранится ДОС просто нет места, чтобы ввести процедуру автонастройки на формат диска.
Потому в реале приходилось использовать RK-DOS также только в одном жёстко фиксированном формате. Оттого и появилось несколько вариантов RK-DOS, отличающихся лишь несколькими байтами, каждая из которых была предназначена для одного формата дискеты. При использовании RK-DOS в эмуляторе, естественно, удобнее использовать максимальный для РК-ДОС формат дискет 640К, 8 секторов на трек. Скоростей реального РК86 для такого формата хватает только при замене кварца ГФ24 с 16 МГЦ на 20 МГЦ (схема ТУРБО по журналу РАДИО).
Странслировать RK-DOS версии 3.0, т.е версию с поддержкой любых форматов дискет очень просто. Но требуется расширение ПЗУ, т.е введение 2-х страниц ПЗУ в области E000...EFFF, что даст 8 кб для кода ДОС. Но при наличии расширения ОЗУ есть лучшее решение. Требуется перезашивка ПЗУ 4К в области E000...EFFF. Совместимости это не нарушит, т.к программами используется только вход E001. Поэтому достаточно прошить в ПЗУ по этому адресу код команды JMP (плюс загрузчик с дискеты), а сам исполняемый код ДОС разместить в ОЗУ 8400, что и выгоднее, т.к тогда можно менять ДОС. А в ПЗУ E000 удобно иметь п/п-ммы чтения/записи сектора и п/п-мму форматирования трека, как это сделано в большинстве компьютеров.
- - - Добавлено - - -
PS: А нельзя ли также сделать версию эмулятора ОРИОНА с таким же РК-КНГМД, но стоящим по адресу F600. Да, я не ошибся, у меня РК-КНГМД стоит на месте третьего излишнего ППА F600 (незачем впустую нагружать шину, лучше с'экономить нагрузочный ресурс шины для турбирования).
PPS: А нельзя ли также ввести в РК86 поддержку IDE-винчестера (схема с обменом через третий ППА)? РК86 с ОЗУ 1 мб и винчестером на 2 терабайта - это голубая мечта детства многих любителей.
barsik, скоро будет, вроде бы основные Ваши пожелания в нем можно будет реализовать, но не ждите от меня слишком многого: судя по критике давно развиваемого эмулятора от b2m в соседней теме, боюсь, что к моему новоиспеченному претензий будет куда больше ;)
Насчет имен образов дисков: я пока использую .rkdisk Можно сократить и до .rkd, почему бы и нет? Дискет CP/M для РК-НГМД в природе не видел, вообще, если есть какие-то образы кроме того RK86DOS29.rkdisk, с удовольствием бы на них посмотрел. Утилиту для копирования файлов GAM и т. п. на/с образа дискет RK-DOS я писать пока не собираюсь, можете заняться этим вопросом. Я бы предложил оформить ее в виде плагина для FAR Manager, но можете поступить как Вам удобнее.
Выложил тестовую сборку 4-й версии и завел новую тему:
http://zx-pk.ru/threads/27488-emu80-v-4.html
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot