Chaos Constructions 2016 кто-нибудь планирует посетить? Есть мысль съездить...
Вид для печати
Chaos Constructions 2016 кто-нибудь планирует посетить? Есть мысль съездить...
Имеется вопрос по эмулю:
Нужно чтобы все что я вывожу на мг шло на звуковуху.
в emu80.cfg ставлю
tape=sb-out
запускаю эмуль - байты сыплются в файл ;(. если из эмуля перенаправить (f10->магнитофон-воспроизведение) все работает корректно, но выбор не запоминается. При каждом запуске приходится так делать, что не удобно.
Что посоветуете?
mvg, ошибка в описании опции, в 3-й версии эмулятора нужно так:
tape=out
Спасибо за замечание, после выхода 4-й версии эмулятора сделаю также багфикс-релиз третьей...
Pyk, обновление вашего эмулятора ещё будет ?
ZEman, да, полностью переписанная 4-я версия уже на подходе :)
Уважаемый Pyk, народ уже давно ждёт от Вас версии эмулятора РК86 с эмуляцией РК-КНГМД. Т.е эмуляции доработки железа РК86 в виде установки дешифратора на область адресов E000...FFFF, ППА стоящего в плате РК-КНГМД по адресу F000 и ПЗУ 4 кб по адресам E000...EFFF. И перенос доп.ППА D14 с адреса A000 в адрес F100. А также, что не менее важно, расширение ОЗУ в окне 8400...BFFF, хотя бы на 15 кб (или на 30К двумя страницами по 15 кб). Или реализуйте любой другой вариант расширения ОЗУ, обеспечивающий совместимость.Цитата:
Сообщение от Pyk
Хотелось бы также иметь возможность аппаратно переключать фонт (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