nedoPC.org

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



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
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). Какие на какие коды надо менять?


27 May 2016 02:49
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
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
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
PVV wrote:
Можно ли как-то не запускать загруженную программу?

Если запускать эмулятор с параметром /d, то отладчик будет открыт с самого начала.
Есть ещё параметр /c name, тогда будет автоматически выбрана конфигурация name (указывать без расширения .cfg).

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


27 May 2016 03:36
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
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 памятью и используются при инициализации.


27 May 2016 11:59
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
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 выполняется правильно?


27 May 2016 12:36
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
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_Controller/blob/master/sdbios.txt


28 May 2016 06:50
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Давайте, может, новое расширение придумаем, rkm, rkx, rk2, который будет тем же rks, но для MX/MX2 на SD карте.
...
Предлагаю назвать его RKM (по аналогии: Орион - RKO, РК-86 - RKR, Специалист - RKS).

Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы "Микроши".

_________________
iLavr


28 May 2016 15:08
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Lavr wrote:
Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы "Микроши".

Ну тады RKX. Все за?


29 May 2016 05:10
Profile
Doomed

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


PS: RKX - за.


Attachments:
4.zip [671.74 KiB]
Downloaded 401 times
31 May 2016 03:59
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
fifan wrote:
Lavr wrote:
Вобще говоря, расширение RKM задействовано в эмуляторе Пыхонина под файлы "Микроши".

Ну тады RKX. Все за?


А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...

_________________
:dj: https://mastodon.social/@Shaos


31 May 2016 08:23
Profile WWW
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Начал реализовывать запись на SD карту,
команды SD:
CMD17 EQU 040h | 17 ; read block
CMD24 EQU 040h | 24 ; write block
с чтением, CMD17, в эмуляторе b2m все понятно, работает, а вот CMD24 реализована ли в эмуляторе?
Это вопрос к b2m, и если нет, то можно ли ее все же сделать? Сейчас эмулятор на секунду задумывается после CMD24 и продолжает работать, проверяю записалось ли что в образ, а там ничего нет.


01 Jun 2016 03:34
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Shaos wrote:
А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...

Логично. Нужно хорошо подумать про новое расширение.


01 Jun 2016 08:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Shaos wrote:
А планируется поддержка в EMU80? Если да - то можно, если нет - то лучше новое расширение выдумать (.MX2 например) т.к. RK? всё таки подразумеваются для EMU80...

Логично. Нужно хорошо подумать про новое расширение.

Подразумевается и подержка в EMU80. Только неизвестно когда...
По крайней мере я за время ожидания научился писать эмуляторы сам. 8)
Так что я - за RKX - как поддержку и расширение существующего стандарта.
RK... - все файлы такого типа, а RKX - вариант для "Специалиста_МХ".

_________________
iLavr


01 Jun 2016 09:15
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
а RK? это вообще-то что? образ программы как она хранится на ленте?
а какая же может быть лента в MX2?...

_________________
:dj: https://mastodon.social/@Shaos


01 Jun 2016 14:06
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
а RK? это вообще-то что? образ программы как она хранится на ленте?
а какая же может быть лента в MX2?...

На данный момент это скорее устаканившийся формат хранения файлов для эмуляторов, раз уж он поддержан.
А к лентам, видимо, уже имеет мало отношения.

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

_________________
iLavr


01 Jun 2016 15:09
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.