|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Эмулятор контроллера дисковода для Специалиста_МХ
Author |
Message |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Была то идея использовать имеющийся sdbios(sdbios_mx2), а теперь в МХ нужно просто sdbios_mx2 интегрировать в состав, в частности odimount. Я себе работу представлял именно таким образом. Получится, что любая программа, которая захочет\должна работать с SD_MX2 должна в своем коде иметь код sdbios_mx2.
|
19 May 2016 00:36 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Человек разумный, т.е. ты сам. Я ж писал грузим с ROM-диска ODIMounter, делаем свои дела, в частности переносим образы дискет в SPI память и всё можно сделать возрат в RAMFOS, можно сбросить комп. У нас уже PIC контроллер подменяет контроллер дисковода, Специалист уже работает с SPI памятью думая, что обращается к дискете.
|
19 May 2016 00:37 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
А не как по другому. Только так.
|
19 May 2016 02:02 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
А можно сделать подгружаемый файл с того же ROM-диска, например SD_BIOD.COM. Который кладётся в фиксированные адреса, а дальше любая программа будет к ней обращаться. У меня в SpetsCommander'а место под программы закончилось так я сделал подгружаемый файл Overlays.SPT (расширение я придумал ). Этот набор подпрограмм грузится в последнюю (8-ю) страницу RAM-диска и по мере вызова функций коммандера используется по назначению.
|
19 May 2016 05:07 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Обдумав, как должен работать sdbios_mx2 и посмотрев как организован RAMFOS, понял, что практически ничего не меняется в части кода xsd в МХе. Нужно переназначить три вызова к функциям биос/монитор(GETC - C803H -> F803H, PUTC - C809H -> F809H, PRINT C818H-> F818H), переназначить адреса контроллера SD_MX2 в МХ: 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 файла? У меня получается при загрузке второго файла первый файл из памяти стирается и предзагрузка не получается...
|
25 May 2016 13:43 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В общем-то стандартные вызовы RAMFOS-ов, BIOS-oв и всяких Мониторов применяют чтобы как-то стандартизировать софт и отделить его он прямых вызовов железа по непосредственным адресам. А так получается, что ты дублируешь в своих программах код стандартных вызовов, которые уже заняли память, и твои программы становятся толще при том, что памяти и так немного... Шевцов давал мне какой-то последний неоконченный вариант дисковой DOS, над которой кто-то очень неплохо поработал, и там в комментарии были слова этого человека:" Можно в принципе написать хорошую, полноценную DOS, только вот памяти под неё уже не хватает..."
_________________ iLavr
|
25 May 2016 14:08 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Поигрался в запуск. Переход по каталогам есть. А как запускать-то файлы? RUN ZOO.RKS или RUN ZOO .RKS не прокатывает - нет файла пишет по английски. можно ли в b2m загружать два *.i80 файла?Это как? Мы же загружаем один файл i80 по адресу, указанному в cpu. Это ж просто загрузка памяти. Вот есть ещё эмулятор только Специалиста_МХ ( http://www.spetsialist-mx.ru/Soft/spmx_v42.rar) от Шевцова. Он-то (автор) и придумал формат этих файлов для работы. Кстати чем плох этот эмулятор - он досовский, на всяких 7/8/10 не запустится.
|
26 May 2016 08:25 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Так просто имя файла надо вводить, расширение не обязательно. Например, ZOO и ввод...
|
26 May 2016 08:38 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Вот новый образ для SD карты с файлами для МХ в каталоге МХ. Кроме этого, если загрузить dos_mx2.i80 как AVSh файл в b2m, то можно запустить SHELLMX - оболочка от Vinxru переделанная в МХ. Функционал как и для std, что я раньше выкладывал.
...перезалил этот файл, изменил ROM диск(spmx3.rom), теперь dos_mx2.i80 уже в RОМе, SHELLMX можно запускать сразу.
Last edited by PVV on 26 May 2016 12:48, edited 2 times in total.
|
26 May 2016 08:57 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да, к сожалению, под 7/8/10 он запускается только в DOS-BOX. Обидно также, что на современном железе он падает и под чистым DOS - пробовал многократно на своём ноуте с Intell Atom, загружаясь в DOS с флешки. И самое неприятное, что падает не эмулятор Специалиста_МХ, а библиотека красивых окошек, которую сочинил Шевцов - если под отладчиком отрисовку красивых окон обойти, то эмуляция самого по себе Специалиста_МХ на черном фоне экрана вполне хорошо работает! Никак не могу найти, что же роняет всю программу в этих самых оконных библиотеках...
_________________ iLavr
|
26 May 2016 09:39 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Я хотел загрузить сначала первый файл, sdbios_mx2, с адреса 0xd400, а затем, второй файл, odimount, с адреса 0x5000. Так вот при загрузке второго файла область памяти с адреса 0xd400 заполняется 0xff... получается, что при загрузке файла эмулятор свое состояние устанавливает в чистое, исходное, а одновременно две различные области загрузить не получается.
|
26 May 2016 12:44 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Попробуй их соединить в саморазворачивающийся файл - в нем два исходных файла и старт идет с маленького загрузчика, который раскладывает эти файлы по нужным адресам, а потом передает управление в точку старта одного из них. Так сделаны саморазворачивающиеся мониторы. Если нет места, то разворачиваться можно из ОЗУ экрана - оно тоже ОЗУ..
_________________ iLavr
|
26 May 2016 13:22 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
Нет, я такого не предусматривал. Вообще, при открытии любого файла (через File/Open, из командной строки или при помощи Drag&Drop), эмуль смотрит в emu.ext, находит соответствующую расширению файла секцию, и загружает указанную конфигурацию компьютера. При этом, естесственно, всё будет с нуля. Потом уже производятся некие действия по загрузке открываемого файла, и эти действия в большинстве случаев пришлось хардкодить. Делалось это для того, чтобы эмуль открывал любые файлы от любых компов. Вот если комп уже эмулируется, и программа обращается в процедуре чтения файла, и эта процедура перехватывается эмулятором (если адреса п/п указаны в конфиге), тогда можно догрузить ещё один файл, в формате, требуемом программе. Например текстовые файлы в своём формате для всяких редакторов. Ну или в простейшем случае, когда в мониторе вводится команда загрузки файла с магнитофона.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
27 May 2016 00:56 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Данная конфигурация не подключает SD карту, по крайней мере у меня пишет нет файлов. А вот если загружать с ROM-диска, то всё работает, SD каталоги присутствуют с RKS файлами и всё загружается. Всё ж не правильно назначение расширений файлов: RKS - должны быть файлы только Стд CPU/I80 - должны быть файлы только МХ. В SHELLMX не работает возврат к предыдущему каталогу. Нет перехода к противоположной панели.
|
27 May 2016 01:28 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
понятно Здесь, кстати, еще момент есть - если поставить брейк в отладчике на нужный адрес, затем, загрузить на этот адрес rks файл, то брейк сбрасывается, а программа автоматически запускается(теперь то понятно, что все с нуля инициализируется...). Можно ли как-то не запускать загруженную программу? Сейчас я для отладки в свой код вставляю вызов чтения клавиатуры, после загрузки и автозапуска rks запускаю отладчик, ставлю брейк, F5, делаю нажатие на клавиатуре, и только тогда попадаю куда хотел в брейке... этим и пользуюсь
|
27 May 2016 02:48 |
|
|
Who is online |
Users browsing this forum: No registered users and 4 guests |
|
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
|
|