Эмулятор контроллера дисковода для Специалиста_МХ
Moderator: Lavr
-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Была то идея использовать имеющийся sdbios(sdbios_mx2), а теперь в МХ нужно просто sdbios_mx2 интегрировать в состав, в частности odimount.
Я себе работу представлял именно таким образом.
Получится, что любая программа, которая захочет\должна работать с SD_MX2 должна в своем коде иметь код sdbios_mx2.
Я себе работу представлял именно таким образом.
Получится, что любая программа, которая захочет\должна работать с SD_MX2 должна в своем коде иметь код sdbios_mx2.
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Эмулятор контроллера дисковода для Специалиста_МХ
PVV wrote:Кто разместит код этого sdbios в ОЗУ?
Человек разумный, т.е. ты сам.PVV wrote:никто не мешает переключиться обратно в RAMFOS, и запускать MXDOS с нашего эмулятора дисковода...

У нас уже PIC контроллер подменяет контроллер дисковода, Специалист уже работает с SPI памятью думая, что обращается к дискете.
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Эмулятор контроллера дисковода для Специалиста_МХ
А не как по другому. Только так.PVV wrote:Получится, что любая программа, которая захочет\должна работать с SD_MX2 должна в своем коде иметь код sdbios_mx2.
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Эмулятор контроллера дисковода для Специалиста_МХ
А можно сделать подгружаемый файл с того же ROM-диска, например SD_BIOD.COM. Который кладётся в фиксированные адреса, а дальше любая программа будет к ней обращаться. У меня в SpetsCommander'а место под программы закончилось так я сделал подгружаемый файл Overlays.SPT (расширение я придумал
). Этот набор подпрограмм грузится в последнюю (8-ю) страницу RAM-диска и по мере вызова функций коммандера используется по назначению.

-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Обдумав, как должен работать sdbios_mx2 и посмотрев как организован RAMFOS, понял, что практически ничего не меняется в части кода xsd в МХе. Нужно переназначить три вызова к функциям биос/монитор(GETC - C803H -> F803H, PUTC - C809H -> F809H, PRINT C818H-> F818H), переназначить адреса контроллера SD_MX2 в МХ:fifan wrote:... А зачем для работы некой программы нам нужно использовать какой-то левый Монитор? В RAMFOS'е и так есть все стандартные вызовы, повторяющие стандартные подпрограммы...
SD_DATA_PORT EQU 0fff4H
SD_CONF_PORT EQU 0fff5H
и немного сместить начало самого кода xsd - ORG 0D400H.
Как результат - в МХе появилась поддержка SD карты, можно просмотреть каталог(команда DIR), перейти в нужный каталог (CD хххх и вернуться назад CD ..), запустить файл, правда, только RKS формата, но для МХа, и вернуться обратно в RAMFOS (X).
Получившийся код я назвал SDDOS.COM и разместил его в ROM диске МХа, в который можно попасть по F6 из RAMFOS(файл spmx3.rom).
В таком режиме наш ODIMOUNT можно записывать на SD карту и запускать уже с нее, опять же, повторюсь, в RKS формате.(в образе SD карты файл UDIMOUNT.RKS это преобразованный в rks файл odimounter.i80 из 4.RAR, остальные файлы от std...). sdbios_mx2 с трансляцией вызовов sdbios от Vinxru можно, так же, загружать или вместе с ODIMOUNT или предварительно предзагружать.
Здесь у меня вопрос возник - можно ли в b2m загружать два *.i80 файла? У меня получается при загрузке второго файла первый файл из памяти стирается и предзагрузка не получается...
You do not have the required permissions to view the files attached to this post.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Эмулятор контроллера дисковода для Специалиста_МХ
В общем-то стандартные вызовы RAMFOS-ов, BIOS-oв и всяких Мониторов применяют чтобы как-то стандартизироватьfifan wrote:В RAMFOS'е и так есть все стандартные вызовы, повторяющие стандартные подпрограммы. Вообще я стараюсь использовать свои проверенные подпрограммы и стандартные редко использую.
софт и отделить его он прямых вызовов железа по непосредственным адресам.
А так получается, что ты дублируешь в своих программах код стандартных вызовов, которые уже заняли память,
и твои программы становятся толще при том, что памяти и так немного...
Шевцов давал мне какой-то последний неоконченный вариант дисковой DOS, над которой кто-то очень неплохо
поработал, и там в комментарии были слова этого человека:"Можно в принципе написать хорошую, полноценную
DOS, только вот памяти под неё уже не хватает..."

iLavr
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Поигрался в запуск. Переход по каталогам есть. А как запускать-то файлы? RUN ZOO.RKS или RUN ZOO .RKS не прокатывает - нет файла пишет по английски.
можно ли в b2m загружать два *.i80 файла?
Это как? Мы же загружаем один файл i80 по адресу, указанному в cpu. Это ж просто загрузка памяти. Вот есть ещё эмулятор только Специалиста_МХ (http://www.spetsialist-mx.ru/Soft/spmx_v42.rar) от Шевцова. Он-то (автор) и придумал формат этих файлов для работы. Кстати чем плох этот эмулятор - он досовский, на всяких 7/8/10 не запустится.
можно ли в b2m загружать два *.i80 файла?
Это как? Мы же загружаем один файл i80 по адресу, указанному в cpu. Это ж просто загрузка памяти. Вот есть ещё эмулятор только Специалиста_МХ (http://www.spetsialist-mx.ru/Soft/spmx_v42.rar) от Шевцова. Он-то (автор) и придумал формат этих файлов для работы. Кстати чем плох этот эмулятор - он досовский, на всяких 7/8/10 не запустится.
-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Так просто имя файла надо вводить, расширение не обязательно. Например, ZOO и ввод...fifan wrote:Поигрался в запуск. Переход по каталогам есть. А как запускать-то файлы? RUN ZOO.RKS или RUN ZOO .RKS не прокатывает - нет файла пишет по английски.
-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Вот новый образ для SD карты с файлами для МХ в каталоге МХ. Кроме этого, если загрузить dos_mx2.i80 как AVSh файл в b2m, то можно запустить SHELLMX - оболочка от Vinxru переделанная в МХ. Функционал как и для std, что я раньше выкладывал.
...перезалил этот файл, изменил ROM диск(spmx3.rom), теперь dos_mx2.i80 уже в RОМе, SHELLMX можно запускать сразу.
...перезалил этот файл, изменил ROM диск(spmx3.rom), теперь dos_mx2.i80 уже в RОМе, SHELLMX можно запускать сразу.
You do not have the required permissions to view the files attached to this post.
Last edited by PVV on 26 May 2016 12:48, edited 2 times in total.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Да, к сожалению, под 7/8/10 он запускается только в DOS-BOX.fifan wrote:Вот есть ещё эмулятор только Специалиста_МХ от Шевцова. ... чем плох этот эмулятор - он досовский, на всяких 7/8/10 не запустится.

Обидно также, что на современном железе он падает и под чистым DOS - пробовал многократно
на своём ноуте с Intell Atom, загружаясь в DOS с флешки.
И самое неприятное, что падает не эмулятор Специалиста_МХ, а библиотека красивых окошек, которую
сочинил Шевцов - если под отладчиком отрисовку красивых окон обойти, то эмуляция самого по себе Специалиста_МХ
на черном фоне экрана вполне хорошо работает!
Никак не могу найти, что же роняет всю программу в этих самых оконных библиотеках...

iLavr
-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Я хотел загрузить сначала первый файл, sdbios_mx2, с адреса 0xd400, а затем, второй файл, odimount, с адреса 0x5000. Так вот при загрузке второго файла область памяти с адреса 0xd400 заполняется 0xff... получается, что при загрузке файла эмулятор свое состояние устанавливает в чистое, исходное, а одновременно две различные области загрузить не получается.fifan wrote: можно ли в b2m загружать два *.i80 файла?
Это как? Мы же загружаем один файл i80 по адресу, указанному в cpu. Это ж просто загрузка памяти.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Попробуй их соединить в саморазворачивающийся файл - в нем два исходных файла и старт идет с маленького загрузчика, который раскладывает эти файлы по нужным адресам, а потом передает управление в точку старта одного из них.PVV wrote:Я хотел загрузить сначала первый файл, sdbios_mx2, с адреса 0xd400, а затем, второй файл, odimount, с адреса 0x5000.
Так сделаны саморазворачивающиеся мониторы.
Если нет места, то разворачиваться можно из ОЗУ экрана - оно тоже ОЗУ..

iLavr
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Нет, я такого не предусматривал.PVV wrote:можно ли в b2m загружать два *.i80 файла
Вообще, при открытии любого файла (через File/Open, из командной строки или при помощи Drag&Drop), эмуль смотрит в emu.ext, находит соответствующую расширению файла секцию, и загружает указанную конфигурацию компьютера. При этом, естесственно, всё будет с нуля. Потом уже производятся некие действия по загрузке открываемого файла, и эти действия в большинстве случаев пришлось хардкодить.
Делалось это для того, чтобы эмуль открывал любые файлы от любых компов.
Вот если комп уже эмулируется, и программа обращается в процедуре чтения файла, и эта процедура перехватывается эмулятором (если адреса п/п указаны в конфиге), тогда можно догрузить ещё один файл, в формате, требуемом программе. Например текстовые файлы в своём формате для всяких редакторов. Ну или в простейшем случае, когда в мониторе вводится команда загрузки файла с магнитофона.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Devil
- Posts: 912
- Joined: 06 Oct 2006 03:17
- Location: г.Лянтор,Сургутского р-на,ХМАО
Re: Эмулятор контроллера дисковода для Специалиста_МХ
Данная конфигурация не подключает SD карту, по крайней мере у меня пишет нет файлов. А вот если загружать с ROM-диска, то всё работает, SD каталоги присутствуют с RKS файлами и всё загружается.PVV wrote:...перезалил этот файл, изменил ROM диск(spmx3.rom), теперь dos_mx2.i80 уже в RОМе, SHELLMX можно запускать сразу.
Всё ж не правильно назначение расширений файлов:
RKS - должны быть файлы только Стд
CPU/I80 - должны быть файлы только МХ.
В SHELLMX не работает возврат к предыдущему каталогу. Нет перехода к противоположной панели.
-
- Doomed
- Posts: 463
- Joined: 12 Feb 2016 13:39
Re: Эмулятор контроллера дисковода для Специалиста_МХ
понятноb2m wrote:... При этом, естесственно, всё будет с нуля...
Здесь, кстати, еще момент есть - если поставить брейк в отладчике на нужный адрес, затем, загрузить на этот адрес rks файл, то брейк сбрасывается, а программа автоматически запускается(теперь то понятно, что все с нуля инициализируется...). Можно ли как-то не запускать загруженную программу? Сейчас я для отладки в свой код вставляю вызов чтения клавиатуры, после загрузки и автозапуска rks запускаю отладчик, ставлю брейк, F5, делаю нажатие на клавиатуре, и только тогда попадаю куда хотел в брейке...
этим и пользуюсьb2m wrote: Вот если комп уже эмулируется, и программа обращается в процедуре чтения файла, и эта процедура перехватывается эмулятором (если адреса п/п указаны в конфиге), тогда можно догрузить ещё один файл, в формате, требуемом программе.