|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Эмулятор контроллера дисковода для Специалиста_МХ
Author |
Message |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Не совсем понял, но, главное, что понятен механизм загрузки файлов... Делать другой механизм работы, через чтение сначала cpu, а, затем, i80 файлов муторно. CPU/I80 - это ж больше для эмуляторов формат придуман. RKS удобен для данного использования. Давайте, может, новое расширение придумаем, rkm, rkx, rk2, который будет тем же rks, но для MX/MX2 на SD карте. Или же еще расширим его, первые 4 байта как в rks, а следующие 11(8+3) байт, место для имени монитора если нужен свой монитор. Будет полный аналог связки CPU/I80. Стандарта на формат на SD для МХа ведь нет еще, все в наших руках. Это не SHELLMX неправильно работает, а мой sdbios_mx2 неправильно отрабатывает Вот что я не сделал, в SHELLMX, так это использование другой кодовой таблицы клавиатуры для верхнего ряда кнопок(F1-F10). Какие на какие коды надо менять?
|
27 May 2016 02:49 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
to fifan я сделал автоматическую вставку адреса SD_BIOS в odimounter: org #5000 ; org #5000-4 ;если делать RKS и запускать с SD карты ; defw $+4 ; defw EndProg-1 push bc ; в bc адрес точки входа в SD_BIOS pop hl ld (SD_BIOS+1), hl jp ReRead SD_BIOS call #0000 ; нули заполнятся адресом SD_BIOS ret ReRead ld hl, VarBase ... а существующее определение константы SD_BIOS убрать.
|
27 May 2016 03:01 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 870
|
Если запускать эмулятор с параметром /d, то отладчик будет открыт с самого начала. Есть ещё параметр /c name, тогда будет автоматически выбрана конфигурация name (указывать без расширения .cfg).
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
27 May 2016 03:36 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 859 Location: г.Лянтор,Сургутского р-на,ХМАО
|
| | | | PVV wrote: Делать другой механизм работы, через чтение сначала cpu, а, затем, i80 файлов муторно. CPU/I80 - это ж больше для эмуляторов формат придуман. RKS удобен для данного использования. Давайте, может, новое расширение придумаем, rkm, rkx, rk2, который будет тем же rks, но для MX/MX2 на SD карте. Или же еще расширим его, первые 4 байта как в rks, а следующие 11(8+3) байт, место для имени монитора если нужен свой монитор. Будет полный аналог связки CPU/I80. Стандарта на формат на SD для МХа ведь нет еще, все в наших руках.
| | | | |
Конечно, RKS формат файла простой, до нельзя простой. CPU/I80 придуман для эмуляторов, это точно. Я его буду использовать в своём SpetsCommander'е - намётки кода уже есть. Но всё же для для МХ, с этим я соглашусь нужен новый формат. Предлагаю назвать его RKM (по аналогии: Орион - RK O, РК-86 - RK R, Специалист - RK S). Делать файл под какой-то монитор не стоит, наверное необходимо стандартное ПО для Специалиста_МХ - это RAMFOS. Формат заголовка оставить лучше всё как в RKS. Вот такие: "В режиме Специалист_MX происходит замена кодов клавиш (ESC 06H -> 5DH, TAB 07H -> 03H, F1 5DH -> 5CH, F2 5CH -> 59H, F3..F11 51H ... 59H -> 50H ... 58H)." Дешёво и практично! Одобряю. ODImounter я постоянно переписываю в плане внешнего вида программы. Самое главное отладить код взаимодействия с контроллером: ; команда "чтение сектора" - #84 ; команда "чтение сектора" - #90, #94 ; команда "запись сектора" - #A4 ; команда "запись сектора" - #B0, #B4 Эти команды эмулирует контроллер (они присутствуют в подпрограммах MX-DOS). Кроме этого есть ещё: ; чтение регистра статуса - #32 ; чтение идентификаторов производителя и микросхемы - #33 ; программирование конфигурационного регистра (установка размера страницы в 512 байт) - #77 Эти три команды (я использовал не применяемые адреса команд ВГ93) управляют напрямую SPI памятью и используются при инициализации.
|
27 May 2016 11:59 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Если смотреть шире, в прицел к МХ2, то иметь возможность загружать и монитор было бы неплохой идеей. Можно имя монитора, в формате, как в cpu файле писать последними 1(какой режим sdt или mx для spets_mx2)+11=12 байтами, если эти байты можно интерпретировать как название монитора(последние 3 байта - расширение MON), то делать попытку такой монитор прочитать, если нет, то действовать как просто с rks(RKM) файлом. Да вот как то другие коды у Vinxru: #define KEY_BKSPC 0x08 #define KEY_TAB 0x09 #define KEY_ENTER 0x0D #define KEY_UP 0x17 #define KEY_RIGHT 0x18 #define KEY_LEFT 0x19 #define KEY_DOWN 0x1A #define KEY_ESC 0x1B #define KEY_F1 0xF3 #define KEY_F2 0xF4 #define KEY_F3 0xF5 #define KEY_F4 0xF6 #define KEY_F5 0xF7 #define KEY_F6 0xF8 #define KEY_F7 0xF9 #define KEY_F8 0xFA #define KEY_F9 0xFB #define KEY_F10 0xFC #define KEY_F11 0xFD #define KEY_F12 0xFE и я не могу понять соответствие... Пришла идея, проблему загрузки двух файлов решить как раз через cpu/i80 файлы- в качестве монитора подставить код sdbios_mx2, а программу odimount... у меня что то не идет первый же вызов sd_bios в odimount: ; чтение каталога с SD карты ld <--->a, #01 ><------><------><------>; код команды ld <--->bc, SDDir <----><------><------>; буфер под каталог ld <--->de, #0032<-----><------><------>; максимум файлов=50 ld <--->hl, Path <-----><------><------>; путь call <->SD_BIOS><------><------><------>; запуск SD_BIOS_Code or<---->a jp<---->nz, NoError<---><------><------>; не было ошибки cp<---->#0a я попадаю сюда, тогда как список файлов прочитан верно jp<---->nz, Error<-----><------><------>; найдено более 10 файлов и здесь ухожу на ошибку...Label1 ld<---->a, #14<><------><------><------>; максимум файлов в каталоге - 20 jp<---->No11 Error call<-->ErrorPrint<----><------><------>; печать ошибки jp ReRead<><------><------><------>; нажата Да почему это происходит не понятно... этот код на Vinxru's sdbios выполняется правильно?
|
27 May 2016 12:36 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 859 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Там скрылась ошибка. Я же писал, что не запускал на реальном контроллере. Вообще-то у меня там обход данного кода jp Label. Функция чтение каталога возвращает в аккумуляторе количество найденных файлов. У нас на экране место только для 10 файлов. Но это только для odi файлов, так что я писал ранее, что нужно фильтровать расширение файлов. У меня готовый каталог test_cat_odi.bin. В любом случае в данном участке программы задумывалось считать возможное количество файлов для начала 50 (50*20=1000 байт). Функция возвращает число реально считанных файлов, организуется цикл по поиску только odi файлов в этом считанном каталоге, затем сортируются по алфавиту все odi файлы. Но на экран возможен вывод только 10 файлов, как в SpetsBrowser'е прокрутки нет. Вообще-то есть мануал по SD_BIOS, я придерживался его. https://github.com/vinxru/Specialist_SD_Controller/blob/master/sdbios.txt
|
28 May 2016 06:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы " Микроши".
_________________ iLavr
|
28 May 2016 15:08 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 859 Location: г.Лянтор,Сургутского р-на,ХМАО
|
|
29 May 2016 05:10 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Подправил код для sdbios_mx2 и odimounter. На данный момент образы с SD карты переписывается в odi файлы, назначенные в эмуляторе как дискета А и В. Файлы полученные совпадают с файлами оригинала на SD. Загружать как связку cpu/i80, x2_d400.mon - это sdbios_mx2. Мои правки в odimounter с комментариями PVV. Как обратное размонтирование далать?
PS: RKX - за.
|
31 May 2016 03:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...
|
31 May 2016 08:23 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Начал реализовывать запись на SD карту, команды SD: CMD17 EQU 040h | 17 ; read block CMD24 EQU 040h | 24 ; write block с чтением, CMD17, в эмуляторе b2m все понятно, работает, а вот CMD24 реализована ли в эмуляторе? Это вопрос к b2m, и если нет, то можно ли ее все же сделать? Сейчас эмулятор на секунду задумывается после CMD24 и продолжает работать, проверяю записалось ли что в образ, а там ничего нет.
|
01 Jun 2016 03:34 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 859 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Логично. Нужно хорошо подумать про новое расширение.
|
01 Jun 2016 08:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Подразумевается и подержка в EMU80. Только неизвестно когда... По крайней мере я за время ожидания научился писать эмуляторы сам. Так что я - за RKX - как поддержку и расширение существующего стандарта. RK... - все файлы такого типа, а RKX - вариант для "Специалиста_МХ".
_________________ iLavr
|
01 Jun 2016 09:15 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22735 Location: Silicon Valley
|
а RK? это вообще-то что? образ программы как она хранится на ленте? а какая же может быть лента в MX2?...
|
01 Jun 2016 14:06 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
На данный момент это скорее устаканившийся формат хранения файлов для эмуляторов, раз уж он поддержан. А к лентам, видимо, уже имеет мало отношения. Хотя... видимо не все знают, но в "Специалисте_МХ" была опция слить на ленту весь квазидиск (RAM) полностью. А потом можно было и залить его обратно. Что осталось в MX2 мне судить трудно - он слабо документирован.
_________________ iLavr
|
01 Jun 2016 15:09 |
|
|
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
|
|