Эмулятор контроллера дисковода для Специалиста_МХ

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by PVV »

fifan wrote: Данная конфигурация не подключает SD карту, по крайней мере у меня пишет нет файлов. А вот если загружать с ROM-диска, то всё работает, SD каталоги присутствуют с RKS файлами и всё загружается.
Не совсем понял, но, главное, что понятен механизм загрузки файлов...
fifan wrote: Всё ж не правильно назначение расширений файлов:
RKS - должны быть файлы только Стд
CPU/I80 - должны быть файлы только МХ.
Делать другой механизм работы, через чтение сначала cpu, а, затем, i80 файлов муторно. CPU/I80 - это ж больше для эмуляторов формат придуман. RKS удобен для данного использования. Давайте, может, новое расширение придумаем, rkm, rkx, rk2, который будет тем же rks, но для MX/MX2 на SD карте. Или же еще расширим его, первые 4 байта как в rks, а следующие 11(8+3) байт, место для имени монитора если нужен свой монитор. Будет полный аналог связки CPU/I80. Стандарта на формат на SD для МХа ведь нет еще, все в наших руках.
fifan wrote: В SHELLMX не работает возврат к предыдущему каталогу. Нет перехода к противоположной панели.
Это не SHELLMX неправильно работает, а мой sdbios_mx2 неправильно отрабатывает :)
Вот что я не сделал, в SHELLMX, так это использование другой кодовой таблицы клавиатуры для верхнего ряда кнопок(F1-F10). Какие на какие коды надо менять?
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by PVV »

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 убрать.
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by b2m »

PVV wrote:Можно ли как-то не запускать загруженную программу?
Если запускать эмулятор с параметром /d, то отладчик будет открыт с самого начала.
Есть ещё параметр /c name, тогда будет автоматически выбрана конфигурация name (указывать без расширения .cfg).
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by fifan »

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 (по аналогии: Орион - RKO, РК-86 - RKR, Специалист - RKS). Делать файл под какой-то монитор не стоит, наверное необходимо стандартное ПО для Специалиста_МХ - это RAMFOS. Формат заголовка оставить лучше всё как в RKS.
PVV wrote:использование другой кодовой таблицы клавиатуры для верхнего ряда кнопок(F1-F10). Какие на какие коды надо менять?
Вот такие: "В режиме Специалист_MX происходит замена кодов клавиш (ESC 06H -> 5DH, TAB 07H -> 03H, F1 5DH -> 5CH, F2 5CH -> 59H, F3..F11 51H ... 59H -> 50H ... 58H)."
PVV wrote:я сделал автоматическую вставку адреса SD_BIOS в odimounter
Дешёво и практично! :wink: Одобряю.

ODImounter я постоянно переписываю в плане внешнего вида программы. Самое главное отладить код взаимодействия с контроллером:
; команда "чтение сектора" - #84
; команда "чтение сектора" - #90, #94
; команда "запись сектора" - #A4
; команда "запись сектора" - #B0, #B4
Эти команды эмулирует контроллер (они присутствуют в подпрограммах MX-DOS). Кроме этого есть ещё:
; чтение регистра статуса - #32
; чтение идентификаторов производителя и микросхемы - #33
; программирование конфигурационного регистра (установка размера страницы в 512 байт) - #77
Эти три команды (я использовал не применяемые адреса команд ВГ93) управляют напрямую SPI памятью и используются при инициализации.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by PVV »

fifan wrote:... Но всё же для для МХ, с этим я соглашусь нужен новый формат. Предлагаю назвать его RKM (по аналогии: Орион - RKO, РК-86 - RKR, Специалист - RKS). Делать файл под какой-то монитор не стоит, наверное необходимо стандартное ПО для Специалиста_МХ - это RAMFOS. Формат заголовка оставить лучше всё как в RKS.
Если смотреть шире, в прицел к МХ2, то иметь возможность загружать и монитор было бы неплохой идеей. Можно имя монитора, в формате, как в cpu файле писать последними 1(какой режим sdt или mx для spets_mx2)+11=12 байтами, если эти байты можно интерпретировать как название монитора(последние 3 байта - расширение MON), то делать попытку такой монитор прочитать, если нет, то действовать как просто с rks(RKM) файлом.
fifan wrote: Вот такие: "В режиме Специалист_MX происходит замена кодов клавиш (ESC 06H -> 5DH, TAB 07H -> 03H, F1 5DH -> 5CH, F2 5CH -> 59H, F3..F11 51H ... 59H -> 50H ... 58H)."
Да вот как то другие коды у 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 выполняется правильно?
User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by fifan »

PVV wrote:у меня что то не идет первый же вызов sd_bios в odimount
Там скрылась ошибка. Я же писал, что не запускал на реальном контроллере. Вообще-то у меня там обход данного кода jp Label.
Функция чтение каталога возвращает в аккумуляторе количество найденных файлов. У нас на экране место только для 10 файлов. Но это только для odi файлов, так что я писал ранее, что нужно фильтровать расширение файлов. У меня готовый каталог test_cat_odi.bin. В любом случае в данном участке программы задумывалось считать возможное количество файлов для начала 50 (50*20=1000 байт). Функция возвращает число реально считанных файлов, организуется цикл по поиску только odi файлов в этом считанном каталоге, затем сортируются по алфавиту все odi файлы. Но на экран возможен вывод только 10 файлов, как в SpetsBrowser'е прокрутки нет.

Вообще-то есть мануал по SD_BIOS, я придерживался его. https://github.com/vinxru/Specialist_SD ... sdbios.txt
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by Lavr »

fifan wrote:Давайте, может, новое расширение придумаем, rkm, rkx, rk2, который будет тем же rks, но для MX/MX2 на SD карте.
...
Предлагаю назвать его RKM (по аналогии: Орион - RKO, РК-86 - RKR, Специалист - RKS).
Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы "Микроши".
iLavr
User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by fifan »

Lavr wrote:Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы "Микроши".
Ну тады RKX. Все за?
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by PVV »

Подправил код для sdbios_mx2 и odimounter.
На данный момент образы с SD карты переписывается в odi файлы, назначенные в эмуляторе как дискета А и В.
Файлы полученные совпадают с файлами оригинала на SD.
Загружать как связку cpu/i80, x2_d400.mon - это sdbios_mx2.
Мои правки в odimounter с комментариями PVV.
Как обратное размонтирование далать?


PS: RKX - за.
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by Shaos »

fifan wrote:
Lavr wrote:Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы "Микроши".
Ну тады RKX. Все за?
А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...
Я тут за главного - если что шлите мыло на me собака shaos точка net
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by PVV »

Начал реализовывать запись на SD карту,
команды SD:
CMD17 EQU 040h | 17 ; read block
CMD24 EQU 040h | 24 ; write block
с чтением, CMD17, в эмуляторе b2m все понятно, работает, а вот CMD24 реализована ли в эмуляторе?
Это вопрос к b2m, и если нет, то можно ли ее все же сделать? Сейчас эмулятор на секунду задумывается после CMD24 и продолжает работать, проверяю записалось ли что в образ, а там ничего нет.
User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by fifan »

Shaos wrote:А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...
Логично. Нужно хорошо подумать про новое расширение.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by Lavr »

fifan wrote:
Shaos wrote:А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...
Логично. Нужно хорошо подумать про новое расширение.
Подразумевается и подержка в EMU80. Только неизвестно когда...
По крайней мере я за время ожидания научился писать эмуляторы сам. 8)
Так что я - за RKX - как поддержку и расширение существующего стандарта.
RK... - все файлы такого типа, а RKX - вариант для "Специалиста_МХ".
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by Shaos »

а RK? это вообще-то что? образ программы как она хранится на ленте?
а какая же может быть лента в MX2?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Эмулятор контроллера дисковода для Специалиста_МХ

Post by Lavr »

Shaos wrote:а RK? это вообще-то что? образ программы как она хранится на ленте?
а какая же может быть лента в MX2?...
На данный момент это скорее устаканившийся формат хранения файлов для эмуляторов, раз уж он поддержан.
А к лентам, видимо, уже имеет мало отношения.

Хотя... видимо не все знают, но в "Специалисте_МХ" была опция слить на ленту весь квазидиск (RAM) полностью.
А потом можно было и залить его обратно. Что осталось в MX2 мне судить трудно - он слабо документирован.
iLavr