nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 15:14



Reply to topic  [ 88 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Эмулятор контроллера дисковода для Специалиста_МХ 
Author Message
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Была то идея использовать имеющийся sdbios(sdbios_mx2), а теперь в МХ нужно просто sdbios_mx2 интегрировать в состав, в частности odimount.
Я себе работу представлял именно таким образом.
Получится, что любая программа, которая захочет\должна работать с SD_MX2 должна в своем коде иметь код sdbios_mx2.


19 May 2016 00:36
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
PVV wrote:
Кто разместит код этого sdbios в ОЗУ?
PVV wrote:
никто не мешает переключиться обратно в RAMFOS, и запускать MXDOS с нашего эмулятора дисковода...

Человек разумный, т.е. ты сам. 8) Я ж писал грузим с ROM-диска ODIMounter, делаем свои дела, в частности переносим образы дискет в SPI память и всё можно сделать возрат в RAMFOS, можно сбросить комп.
У нас уже PIC контроллер подменяет контроллер дисковода, Специалист уже работает с SPI памятью думая, что обращается к дискете.


19 May 2016 00:37
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
PVV wrote:
Получится, что любая программа, которая захочет\должна работать с SD_MX2 должна в своем коде иметь код sdbios_mx2.

А не как по другому. Только так.


19 May 2016 02:02
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
А можно сделать подгружаемый файл с того же ROM-диска, например SD_BIOD.COM. Который кладётся в фиксированные адреса, а дальше любая программа будет к ней обращаться. У меня в SpetsCommander'а место под программы закончилось так я сделал подгружаемый файл Overlays.SPT (расширение я придумал :wink: ). Этот набор подпрограмм грузится в последнюю (8-ю) страницу RAM-диска и по мере вызова функций коммандера используется по назначению.


19 May 2016 05:07
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
fifan wrote:
... А зачем для работы некой программы нам нужно использовать какой-то левый Монитор? В RAMFOS'е и так есть все стандартные вызовы, повторяющие стандартные подпрограммы...


Обдумав, как должен работать 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 файла? У меня получается при загрузке второго файла первый файл из памяти стирается и предзагрузка не получается...


Attachments:
xsd_mx.zip [151.64 KiB]
Downloaded 384 times
25 May 2016 13:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
В RAMFOS'е и так есть все стандартные вызовы, повторяющие стандартные подпрограммы. Вообще я стараюсь использовать свои проверенные подпрограммы и стандартные редко использую.

В общем-то стандартные вызовы RAMFOS-ов, BIOS-oв и всяких Мониторов применяют чтобы как-то стандартизировать
софт и отделить его он прямых вызовов железа по непосредственным адресам.

А так получается, что ты дублируешь в своих программах код стандартных вызовов, которые уже заняли память,
и твои программы становятся толще при том, что памяти и так немного...

Шевцов давал мне какой-то последний неоконченный вариант дисковой DOS, над которой кто-то очень неплохо
поработал, и там в комментарии были слова этого человека:"Можно в принципе написать хорошую, полноценную
DOS, только вот памяти под неё уже не хватает...
" :wink:

_________________
iLavr


25 May 2016 14:08
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Поигрался в запуск. Переход по каталогам есть. А как запускать-то файлы? 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
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
fifan wrote:
Поигрался в запуск. Переход по каталогам есть. А как запускать-то файлы? RUN ZOO.RKS или RUN ZOO .RKS не прокатывает - нет файла пишет по английски.

Так просто имя файла надо вводить, расширение не обязательно. Например, ZOO и ввод...


26 May 2016 08:38
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Вот новый образ для SD карты с файлами для МХ в каталоге МХ. Кроме этого, если загрузить dos_mx2.i80 как AVSh файл в b2m, то можно запустить SHELLMX - оболочка от Vinxru переделанная в МХ. Функционал как и для std, что я раньше выкладывал.


...перезалил этот файл, изменил ROM диск(spmx3.rom), теперь dos_mx2.i80 уже в RОМе, SHELLMX можно запускать сразу.


Attachments:
xsd_mx.zip [221.18 KiB]
Downloaded 384 times


Last edited by PVV on 26 May 2016 12:48, edited 2 times in total.

26 May 2016 08:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Вот есть ещё эмулятор только Специалиста_МХ от Шевцова. ... чем плох этот эмулятор - он досовский, на всяких 7/8/10 не запустится.

Да, к сожалению, под 7/8/10 он запускается только в DOS-BOX. :osad:

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

Никак не могу найти, что же роняет всю программу в этих самых оконных библиотеках... :-?

_________________
iLavr


26 May 2016 09:39
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
fifan wrote:
можно ли в b2m загружать два *.i80 файла?
Это как? Мы же загружаем один файл i80 по адресу, указанному в cpu. Это ж просто загрузка памяти.

Я хотел загрузить сначала первый файл, sdbios_mx2, с адреса 0xd400, а затем, второй файл, odimount, с адреса 0x5000. Так вот при загрузке второго файла область памяти с адреса 0xd400 заполняется 0xff... получается, что при загрузке файла эмулятор свое состояние устанавливает в чистое, исходное, а одновременно две различные области загрузить не получается.


26 May 2016 12:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
Я хотел загрузить сначала первый файл, sdbios_mx2, с адреса 0xd400, а затем, второй файл, odimount, с адреса 0x5000.

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

Так сделаны саморазворачивающиеся мониторы.
Если нет места, то разворачиваться можно из ОЗУ экрана - оно тоже ОЗУ.. :wink:

_________________
iLavr


26 May 2016 13:22
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
PVV wrote:
можно ли в b2m загружать два *.i80 файла

Нет, я такого не предусматривал.

Вообще, при открытии любого файла (через File/Open, из командной строки или при помощи Drag&Drop), эмуль смотрит в emu.ext, находит соответствующую расширению файла секцию, и загружает указанную конфигурацию компьютера. При этом, естесственно, всё будет с нуля. Потом уже производятся некие действия по загрузке открываемого файла, и эти действия в большинстве случаев пришлось хардкодить.

Делалось это для того, чтобы эмуль открывал любые файлы от любых компов.

Вот если комп уже эмулируется, и программа обращается в процедуре чтения файла, и эта процедура перехватывается эмулятором (если адреса п/п указаны в конфиге), тогда можно догрузить ещё один файл, в формате, требуемом программе. Например текстовые файлы в своём формате для всяких редакторов. Ну или в простейшем случае, когда в мониторе вводится команда загрузки файла с магнитофона.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


27 May 2016 00:56
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
PVV wrote:
...перезалил этот файл, изменил ROM диск(spmx3.rom), теперь dos_mx2.i80 уже в RОМе, SHELLMX можно запускать сразу.

Данная конфигурация не подключает SD карту, по крайней мере у меня пишет нет файлов. А вот если загружать с ROM-диска, то всё работает, SD каталоги присутствуют с RKS файлами и всё загружается.

Всё ж не правильно назначение расширений файлов:
RKS - должны быть файлы только Стд
CPU/I80 - должны быть файлы только МХ.

В SHELLMX не работает возврат к предыдущему каталогу. Нет перехода к противоположной панели.


27 May 2016 01:28
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
b2m wrote:
... При этом, естесственно, всё будет с нуля...

понятно
Здесь, кстати, еще момент есть - если поставить брейк в отладчике на нужный адрес, затем, загрузить на этот адрес rks файл, то брейк сбрасывается, а программа автоматически запускается(теперь то понятно, что все с нуля инициализируется...). Можно ли как-то не запускать загруженную программу? Сейчас я для отладки в свой код вставляю вызов чтения клавиатуры, после загрузки и автозапуска rks запускаю отладчик, ставлю брейк, F5, делаю нажатие на клавиатуре, и только тогда попадаю куда хотел в брейке...

b2m wrote:
Вот если комп уже эмулируется, и программа обращается в процедуре чтения файла, и эта процедура перехватывается эмулятором (если адреса п/п указаны в конфиге), тогда можно догрузить ещё один файл, в формате, требуемом программе.

этим и пользуюсь


27 May 2016 02:48
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 88 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 7 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

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