nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 09 Dec 2019 08:01



Reply to topic  [ 85 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6
Emu80 v.4 
Author Message
Doomed
User avatar

Joined: 19 Feb 2017 04:46
Posts: 361
Location: С-Петербург
Reply with quote
Post 
barsik wrote:
EMU80 теперь поддерживает КНГМД на ВГ93?
Напрашивается вывод, что никто из регулярно читающих форум не использует EMU80 для эмуляции ОРИОНА с дисководом.

EMU80 поддерживает дисковод для ОРИОНА и поддерживает уже несколько лет. Только об этом нигде не написано и ODI-образов в дистрибутиве нет. В версиях с QT-библиотекой это ясно из интерфейса, но в старых версих об этом не узнать. Я узнал изучая конфиг. Раньше не использовал EMU80 для эмуляции ОРИОНА (своего эмулятора хватает), использовал его только для Специалиста и РК86, где, кстати, никаких проблем не было.

С эмуляцией ОРИОНА познакомился только сейчас, причём не могу судить о новых версиях. Новых релизов не скачиваю потому, что у EMU80, как только в марте 2018 разработчик перешёл на QT библиотеку не только объём кода эмулятора увеличился в 3-4 раза (и во столько же тормознулась работа), но у меня в Win XP EMU80 вообще перестал работать. Точнее можно заставить работать, если вручную скачать десяток отсутствующих DLL библиотек QT из Интернета (я это делал, чтобы посмотреть, интерфейс стал удобнее).

Форматёры дискет, как и в других эмуляторах, не работают (хотя есть достаточно много DOS для ОРИОНА, в которых формат дискеты не 1 кб, а 512 байт). Например, если бы был образ диска MSDOS 720К и эмулятор поддерживал бы формат с секторами в 512 байт, то MS-Commander С.Коровкина не зависал бы при попытке считать дискету.

Я знаю как это исправить, надо ввести в реальные форматёры дискет заглушки (сделав бутафорию, CALL PAUSE вместо CALL TRK_FRM), а цель использования такого форматёра для эмулятора в том, что он меняет блок служебной информации в начале образа диска. Это позволит получать образы любых дискет, записав в начало образа нужную служ.информацию (что и делает реальный форматёр).

Но доводить размер образа до нужного придётся вручную (например для HD-дискет 1.2 мб, 1.4 мб или дискет с иным числом секторов или для 83-х вместо 80 физических треков). Если просто изменить служ.информацию, например, при форматировании образа диска 800К задать 83 физ.сектора, то SteinBlume будет ругаться, что не верен размер образа. Тогда надо вручную увеличить размер файла с 800К до 830К, заполнив кодами Е5. Проблема как из программы узнать, что она запущена в эмуляторе.

Пока создать образ дискеты у которой иное число треков, каталог на иной дорожке и т.п. можно только вручную. Такую программку при желании легко нацарапать на ассемблере 8086 или TP для MSDOS. В EMU80 версий до 03.2018 поддержка НГМД на ВГ93 для ОРИОНА ещё сырая. Некоторые работающие в реале инсталляторы не работают. В сути пока не разобрался, возможно проблема со сменой дискет. Но в принципе, осторожно в сочетании со SteinBlume и только с одним форматом дискет пользоваться можно. Может быть дело в загрузчиках или в использовании другого кода DOS с другим DPB (и соответственно другими байтами служ.параметров в BOOT-секторе дискеты).

ORDOS 2.40 не работает, если не убрать из ROM-диска файл VC$. Есть программы из 1991-92, что нуждаются в ORDOS 2.40, например, MOZART$ и просто так подставить код старой ORDOS в начало ROM-диска не получится.

 
.
На ОРИОНЕ неудобно, что надо иметь 2 загрузчика дисковода. Не составляло проблемы написать универсальный автоматический загрузчик (в отличие от того что сделал error404, три в одном, но с ручным выбором). Загрузчик сам должен анализировать BOOT-сектор и решать в какую банку перекинуть вторичный загрузчик. Я это не сделал, потому что не сообразил, что так можно сделать, к тому же это мне не требовалось. Всё отличие загрузчиков в том, что байт в BOOT-секторе задающий номер банки в OSDOS сдвинут, так что программно определить тип ДОС легко. Любопытно, что BOOT-сектор никто кроме меня не менял. А я менял, чтобы ускорить загрузку DOS (единым блоком физическими секторами, а не медленно по частям и ф-ями BDOS логическими секторами), а также это было надо для HD-дискет. Если найду энтузиазм для ОРИОНА сделаю такой загрузчик.
.

Для Специалиста дисковод с контроллером на ВГ93 ещё не проверен (вскоре это попробую). Думаю, что даже частоту CPU не понадобится менять с 2.5 МГЦ до 2.0 МГЦ, там же просто отлавливаются команды записываемые в ВГ93 и их работа имитируется без привязок ко времянкам.

 
.
Не в плане критики, а как идея. Удобнее эмуляторы работающие не с готовыми образами дискет, а сами формирующие их для своих нужд. Человеку использующему PC ODI файл не нужен, он нужен лишь эмулятору. Почему человек должен подстраиваться к эмулятору, а не эмулятор к человеку? При старте из содержимого папки создаётся образ ODI, с которым и работает эмулятор. При этом для пользователя PC есть прямой доступ к файлам и возиться с коллекцией ODI-файлов не требуется.

Другое дело, если бы ODI-файл отображал реальный поток байтов дискеты, как в эмуляторе для Apple-II, что нужно для использования защищённых от копирования дискет. Защищённых дискет много для Apple-II (и их иначе не использовать), а для ОРИОНА это не надо (хотя защищённые дискеты были).

Аналогичная ситуация с квазидисками ОРИОНА. И в EMU и EMU-80 они после загрузки остаются пустыми. Какой смысл выходить в VC$ по старту и затем вручную грузить в квазидиски файлы из магнитофона. В моих эмуляторах эти квазидиски заполняются файлами из соответствующих папок.
.


Last edited by barsik on 17 Nov 2019 01:56, edited 2 times in total.



16 Nov 2019 10:08
Profile
Doomed
User avatar

Joined: 19 Feb 2017 04:46
Posts: 361
Location: С-Петербург
Reply with quote
Блин... достала кнопка [quote] на своих постах. Когда же её удалят (помогло бы, если бы был запрос, что уверен, что хочешь комментировать себя после нажатия кнопки [сохранить])? Помогло бы если бы кнопка [quote] была бы в ином месте (например внизу) или очень-очень маленького размера, чтобы кнопки нельзя было перепутать по рассеянности. А если бы как на всех форумах, была возможность удалить своё последнее сообщение, то проблемы бы не было. Кому вредит возможность удалить своё последнее сообщение?


Last edited by barsik on 17 Nov 2019 02:19, edited 3 times in total.



17 Nov 2019 01:39
Profile
Doomed
User avatar

Joined: 19 Feb 2017 04:46
Posts: 361
Location: С-Петербург
Reply with quote
ещё раз промахнулся мимо [edit] и попал на [quote]


17 Nov 2019 01:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Плохому танцору, как я смотрю, на всех форумах что-то да мешает... :-?

_________________
iLavr


18 Nov 2019 13:04
Profile
Writer

Joined: 22 Mar 2018 21:46
Posts: 22
Reply with quote
Не могу в эмуле запустить ни один диск СР/М. Открываю образ, запускаю ВООТ$ и ничего. Может образы не те или с лыжами что-то?!
Может кто выложить образ диска СР/М в формате эмулятора? Желательно системный диск от Орион-Сервис.


21 Nov 2019 23:22
Profile
Doomed
User avatar

Joined: 19 Feb 2017 04:46
Posts: 361
Location: С-Петербург
Reply with quote
Post 
gdv2002 wrote:
Может кто выложить образ диска СР/М в формате эмулятора?
Из вредности можно было бы переспросить "Какого?" Ведь эмуляторов много, хороших и разных (встречаются и сырые и неполноценные). И для какого компьютера? Встречал образы CP/M для эмуляторов в форматах DSK, KDI, ODI, RDI и др.

По автору поста ясно, что речь об ОРИОНЕ. Хотя у меня и на ОРИОНЕ было два типа КНГМД - от Корвета и от РК86 (кстати, у меня гораздо больше ПО для РК-КНГМД). Просто для сведения, диск CP/M для РК-КНГМД имеет другую структуру, чем образ CP/M для КНГМД с ВГ93 и такой образ годится лишь для эмулятора EMU80.
gdv2002 wrote:
Желательно системный диск от Орион-Сервис.
Увы, у меня все файлы TD0 чуждых ДОС и их инсталяторы погибли при крахе винта 20 лет назад. Имея ODI-образ с любой загружающейся с диска CP/M и файлы инсталляторов (обычно называемые SG.COM), сделать любой диск ODI системным - легко. Достаточно загрузиться в любую CP/M (с дискеты или удобнее запуском файла CP/M из ROM-диска) и запустить SG.COM, указав как цель нужный дискетный привод.

Вообще образы не нужны. Нужны отдельно архивы в виде папок и наличие утилиты SteinBlume. Какой смысл хранить ODI-файлы, если просто отметив по ^A все файлы в папке и перетащив на окно SteinBlume, нужный ODI-диск создаётся за полсекунды. SteinBlume позволяет записать и систему на системные треки (если она была ранее считана в файл). Но проще с этим не возиться, а просто иметь один загрузочный образ (причём желательно со всеядной CP/M, т.е не привязанной к единственной реализации ОС) и на ней собрать все имеющиеся SG-файлы. Или же можно образы пустой дискеты (blank.ODI) уже сразу иметь с записанной на её сист.треки той версией ДОС которой пользуетесь, например, от ОРИОН-СЕРВИС.

Вот в этом каталоге посмотрите, я накидаю туда своих ODI-файлов, что как раз на днях сделал себе. И заглядывайте туда же на неделе, буду добавлять по мере отладки старых программ.

Всё только для Z80. И EMU и EMU80 поддерживают Z80, так что, если ещё это не сделали, измените в конфиге строку про тип процессора. На днях выложу эмулятор EMU80 с конфигами для ОРИОНА на Z80 и Специалиста с хитрым конфигом, где ОЗУ расширяется банками по 62К (можно "написать" себе хоть 127 банок по 62 кб это немного менее 8 мб). При пользовании инсталляторами из системы, где диск A: - эл.диск, указывайте как целевой диск - B или C, иначе при попытке инсталляции DOS на эл.диск A: произойдёт улёт.

- - - Добавлено - - -

Некоторые ODI образы выложенные вчера при практической проверке с программами оказались неудачными (не дохлыми, но с ОС не совместимой со старыми драйверами), потому считайте ODI для ОРИОНА и ROM-диски с CP/M заново.


Last edited by barsik on 23 Nov 2019 02:47, edited 4 times in total.



22 Nov 2019 00:37
Profile
Writer

Joined: 22 Mar 2018 21:46
Posts: 22
Reply with quote
Спасибо! Попробую эту утилитку.
Получилось! :rotate:
Теперь работа над книжкой дальше пойдет!


Attachments:
рис_69.jpg
рис_69.jpg [ 34.32 KiB | Viewed 250 times ]
22 Nov 2019 01:15
Profile
Doomed
User avatar

Joined: 19 Feb 2017 04:46
Posts: 361
Location: С-Петербург
Reply with quote
gdv2002 wrote:
Получилось!
Плохо получилось. EMU80 даёт неразмытые чёткие картинки и они для монохроной картинки занимают в PNG-формате всего 4...8 кб. Такая размытость у меня получается, если я делаю скриншот в PNG-формат прямо с экрана PC при прогоне своего эмулятора ОРИОНА запущенного под DosBox (скрин-шот можно сделать лишь в DosBox, т.к я перехватываю INT 9), а затем картинку удваиваю в разрешении рисайзером. И то получается лучшее качество.


22 Nov 2019 05:55
Profile
Writer

Joined: 22 Mar 2018 21:46
Posts: 22
Reply with quote
barsik wrote:
gdv2002 wrote:
Получилось!
Плохо получилось. EMU80 даёт неразмытые чёткие картинки и они для монохроной картинки занимают в PNG-формате всего 4...8 кб. Такая размытость у меня получается, если я делаю скриншот в PNG-формат прямо с экрана PC при прогоне своего эмулятора ОРИОНА запущенного под DosBox (скрин-шот можно сделать лишь в DosBox, т.к я перехватываю INT 9), а затем картинку удваиваю в разрешении рисайзером. И то получается лучшее качество.

Ну, можно и вот так:
 
Attachment:
рис_69.jpg
рис_69.jpg [ 41.53 KiB | Viewed 237 times ]


22 Nov 2019 06:13
Profile
Doomed
User avatar

Joined: 19 Feb 2017 04:46
Posts: 361
Location: С-Петербург
Reply with quote
Post 
Всё равно нечётко и размер файла раз в 7 больше, чем должно быть для скриншота монохромного экрана. Вот смотрите, я даже не делал BMP в EMU80 (а BMP без потери качества конвертируется в PNG), просто скрин-шот прямо с экрана PC, и то качество намного лучше, - как в оригинале видны пиксели. И на размер посмотрите, даже в цвете всего 7 кб. Это потому-что края пикселей между цветами чёткие. Это я хотел этот MSDOS форматёр Luksian дизассемблировать, забить в нём физический формат, сделав бутафорию, чтобы можно было сделать скриншот экрана с отображением процесса форматирования.

 
Image

По поводу файлов ROM-диска с CP/M. Они содержат ORDOS и файл какой-либо CP/M. Я практически не пользовался CP/M загружаемой и тем более подкачиваемой с дискеты. Это слишком противно и долго. Т.к в середине 90-тых я догадался, что загрузку с дискеты можно существенно ускорить, если грузить всю CP/M одним сплошным массивом физическими секторами в 1 кб (в оригинале CP/M от Корвета CCP и BDOS грузятся медленно логическими секторами в 128 байт, что тормозит).

Потому и на дискете у меня DOS хранятся сплошным массивом. Это и позволило для всех DOS делать версию для ROM-диска. Если один блок, то не важно грузится ли он с дискеты, стартует $-ORD-файлом из ROM-диска, или читается с магнитофона. Терять впустую ёмкость дискеты под систему незачем, потому на 83 физ.дорожках я получал полезную ёмкость DD-диска на 50 кб больше. В CP/M-PLUS вообще нет системных треков, лишь BOOT-сектор, BDOS+BIOS в виде файла CP/M+ (16 кб) в 14-м юзере, а COMMAND.COM тоже отдельный файл.

Чтобы файл CP/M стартовал автоматически по сбросу, используется свойство ORDOS, она автоматически стартует файл с именем VC$. Потому для автозагрузки CP/M с ROM-диска достаточно прошить CP/M в виде ORD-файла в ROM-диск и перименовать его в VC$.

Чтобы в EMU80 задать нужный ROM-диск, в файле <orion.conf> замените в такой строке имя файла.
Code:
@ROM_DISK = "orion/romdiski/ACPM165E.DAT"
#@ROM_DISK = "orion/romdiski/DOS20I.DAT"
#@ROM_DISK = "orion/romdiski/DOS20E.DAT"
#@ROM_DISK = "orion/romdiski/DOS20H.DAT"
#@ROM_DISK = "orion/romdiski/DOS20K.DAT"
#@ROM_DISK = "orion/romdiski/CPM_only_RAM_D8.DAT"
#@ROM_DISK = "orion/romdiski/ORDOS.DAT"
#@ROM_DISK = "orion/romdiski/LOADER.DAT"
Тут видно, что все ROM-диски я храню в подкаталоге ROMDISKI, чтобы не было загромождения в папке ORION, там только конфиги. Все образы дискет для ВГ93 я помещаю в папку Diski_800, а все ПЗУ F800 помещаю в папку ROMS. Соответственно надо откорректировать строки в файлах <orion.conf> и <orion.inc>. Кстати, не пытайтесь удалить в конце файла <orion.conf> строку 'include orion.inc' и вставить на это место содержимое самого инклюдэ-файла (чтобы было не 2 файла, а один), у меня не получилось почему-то.

Если не хочется тратить ROM-диск, то можно грузить DOS и с дискеты, тогда, чтобы не мыкаться вручную с загрузчиками, откомментируйте строку @ROM_DISK = "orion/romdiski/LOADER.DAT". Кстати, правильнее для файлов данных расширение DAT, а не BIN. На том же основании файлы данных можно называть HEX или OCT.

При пользовании эмулятором всё-время приходится менять строки типа:
Code:
diskA.fileName = "orion/DISKI_800/DOS20I.ODI"
diskB.fileName = "orion/DISKI_800/blank.ODI"
Хорошо бы сам эмулятор менял эти строки, типа в окне выбора при загрузке файла ставим галочку. Или тащим файл ODI на иконку эмулятора и он стартует поставив ODI-файл в привод A:.


22 Nov 2019 07:06
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 85 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.