Важная информация

User Tag List

Страница 13 из 36 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 354

Тема: Корвет: ExtROM Open Source extender

  1. #121

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Настало время отчитаться об очередном этапе разработки контроллера - расширении API для управления монтированием образов.

    Итак, в API у нас теперь добавилась группа команд 8x. Вот их описание:

    80 — получить имя образа

    Команда предназначена для получения имени KDI-файла, смонтированного в данный момент на логическом устройстве A или B. Номер устройства задается в поле DRV. Возвращается 14-байтовый буфер с именем файла, заканчивающийся 0.

    81 — смонтировать образ

    Команда монтирует один из имеющихся KDI-образов к логическому диску. Образы должны быть расположены на SD-карте в каталоге DISK/. Параметры команды:
    DRV — номер устройства
    TRK — режим доступа к диску: 0 — чтение/запись, 1 — только чтение.
    SEC — 0 - временное мотирование, 1 - постоянное

    Постоянное монтирование позволяет сохранить связь логического диска с конкретным KDI-образом после перезагрузки системы. Для этого в корне SD-карты создается файл MOUNT.CFG, содержащий в себе имена файлов, монтируемых к дискам А и В при загрузке системы. Если такого файла нет, то он создается, а в качестве имен файлов назначаются значения по умолчанию — DISKA.KDI и DISKB.KDI.
    После ввода команды контроллеру передается 14-байтовый буфер с именем назначаемого файла, окнчивающийся 0. Контроллер проверяет наличие файла и его информационный сектор, в случае ошибок монтирование не происходит, а флаг состояния устройства опускается.

    82 — проверка состояния устройства
    Команда возвращает ответ ОК, если устройство смонтировано, или Fail, если не смонтировано. Флаг состояния автоматически опускается в случае ошибок ввода-вывода на данном устройстве. С помощью этой команды можно проверить результат предыдущего вызова mount (81)

    83 — создать образ

    Команда создает на SD-карте пустой KDI-файл с указанным именем, формирует в нем инфосектор и пустой каталог. Команде надо передать 14-байтовый буфер с именем создаваемого файла. Если файл существует, то он будет полностью затерт с потерей всей информации. После создания файл автоматически монтируется на указанный в DRV диск.
    На данный момент создается стандартный KDI-файл размером 800К. В будущем планируется добавить параметры для создания файла произвольного размера.

    84 — получить каталог образов

    Команда предназначена для просмотра каталога всех KDI-файлов, имеющихся на карте. Она отдает цепочку строк размером 14 байт для каждого из имеющихся файлов. Признаком конца цепочи является байт 00 (строки имен файлов не могут начинаться с 00).


    Теперь у нас есть все инструменты для управления образами дисков прямо с корвета. Я написал для этого утилиту MOUNT под CP/M. Для этого пришлось приспособиться к убогому компилятору C80, но в конце концов я приспособился и получилась вполне приличная вещь.

    Код:
    Формат командной строки:
    
    MOUNT
      - без аргументов показывает текущие смонтированные образы
    
    MOUNT /L
      - Выводит список файлов-образов KDI в каталоге DISK/ карты
    
    MOUNT [ключи] DRV[:] FILE
      подключает образ FILE к логическому диску DRV
      FILE - образ KDI, лежит в каталоге DISK/  SD-карты контроллера
      DRV - буква монтируемого диска, A или B. Двоеточие в коце необязательно.
      /R - подключить образ в режиме только чтение.
      /P - сделать назначение диска постоянным
      /C - создать пустой образ диска и смонтировать его
    Вот пример работы с программой:

    Код:
    CP/M-80  vers. 2.2
    EXTROM disk emulation BIOS v1.02
    
    A>MOUNT /L
    HLP.KDI    | DISK_B.KDI | TDISK.KDI  | SYS.KDI    |
    DISK_A.KDI | OSCPM.KDI  | TD.KDI     | E.KDI      |
    
     -- Всего 8 файлов --
    
    A>MOUNT /R B OSCPM
    A>MOUNT
    A: => (R/W) DISKA.KDI
    B: => (R/O) OSCPM.KDI
    
    A>MOUNT /C B TEST11
    B: Создание файла...ok
    
    A>MOUNT
    A: => (R/W) DISKA.KDI
    B: => (R/W) TEST11.KDI
    Следует быть осторожным с постоянным монтированием диска А, пока мы не придумали интерфейс доступа к монтированию в аварийных ситуациях. Дело в том, что если на новом образе диска А не окажется программы MOUNT, то перемонтировать этот диск будет уже нечем. В этом случае следует просто удалить файл MOUNT.CFG из корня карты (или каталога extrom/ в эмуляторе). Тогда будут восстановлены образы DISKA и DISKB по умолчанию.
    Во вложении я кладу архив extrom_mount.7z, содержащий новую прошивку контроллера с поддержкой данного расширения API, а также образ MOUNT.KDI, содержащий исходники и готовую собранную программу MOUNТ. Кроме того, я вложил туда текстовый документ api_v2.odt, с полным описанием текущей версии API. Этот файл можно использовать как базовый при написании будущего пакета документации к нашей разработке.

    ESL, я позволил себе также внести все исправления в эмулятор. Сам понимаешь, для отладки мне жизненно необходим инструмент поудобнее реального корвета. Прикладываю архив kemu_newapi.7z, содержащий доработанный файл ext_rom.c. Мои изменения:

    - Полностью введена поддержка новых вызовов 80-84.
    - Поддержка флагов состояния устройства, и флагов R/O-R/W
    - Поддержка постоянного монтирования и файла списка монтирования MOUNT.CFG такого же формата как и в реальном контроллера.
    - Исправлена серьезная ошибка в приеме пакета (иногда получалась неправильная КС) и ошибка реализации команды NOP (00).
    - Полностью реализован режим подмены системных дорожек (у тебя был только прием команды A0 и установка флага). Образы дорожек берутся из файла SYSTEM.BIN (это переименованный exrsystem.cim), лежащего в корне extrom/.
    - Образы KDI теперь живут в каталоге DISK/ внутри extrom/, то есть как на реальном контроллере. Это нужно для того, чтобы образы дисков не мешались в кучу с другими служебными файлами и не лезли в список по команде DIR (84).
    - Теперь все имена образов, а также DISK/ и MOUNT.CFG записаны большими буквами. Дело в том, что FAT, в отличие от ext*, не отличает больших и маленьких букв, и по стандарту в каталоге должны использоваться только большие буквы. Отнако линуксовый драйвер VFAT на это забивает, что иногда приводит к неприятным последствиям в виде двух файлов с одинаковым именем. Мне уже задрало каждый раз переименовывать файл при копировании из extrom/disk/ на реальную карту. Поэтому предлагаю на будущее имена образов дисков писать только большими буквами.

    Что я не стал менять, так это различие в именовании дисков по умолчанию. В контроллере - DISKA и DISKB, у тебя в эмуляторе - DISK_A и DISK_B. Раз ты их так назвал - тебе и решать.
    Ну, надеюсь, мои наработки тебе пригодятся при доработке эмулятора.

    Теперь осталось придумать аварийный интерфейс для доступа к утилите mount, Мы тут начали это дело обсуждать, но как-то пока заглохло. И ждем универсальный загрузчик от ESL, он его уже отлаживает. Ну и на этом первый этап будет завершен - останется потестировать, исправить баги, и можно будет объъявлять первый релиз.
    Вложения Вложения
    Последний раз редактировалось forth32; 14.07.2014 в 11:21.

  2. #121
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #122

    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,409
    Спасибо Благодарностей отдано 
    72
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    161 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно хотелку: интерфейс для работы с подключаемыми образами в виде, аналогичном sdrive для atari xe ?
    http://www.youtube.com/watch?v=pyLWMHzBOiE
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  4. #123

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В смысмле - графический интерфейс с функциональностью, аналогичной mount? Знаю я этот SDRIVE, собирал в свое время для atari 130XE.

    Дело в том, что там это системно-независимая программа, а здесь ее надо делать как обычную программу под CP/M. При этом с учетом особенностей видеоконтроллеров корвета. А попробуй попрограммировать под CP/M по-настоящему, хотя бы на C80 - так взвоешь от тоски. То есть можно, конечно, сделать что-то в стиле Proffer Commander, если как следует поуродоваться и если кому-то это действительно надо. Может, кто-нибудь возьмется? У нас же тут открытая разработка Open Source все же. Просто я, наоборот, предпочитаю утилиты командной строки...

    Под досом для разработки интерфейса пользователя хотя бы Turbo Vision был, я на нем в свое время программы для ремонта жестких дисков делал. А тут - вообще ничего похожего на библиотеку пользовательского интерфейса. Интересно, на чем делали тот же Proffer Commander[COLOR="Silver"]

  5. #124

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос по схеме из http://zx-pk.ru/showpost.php?p=722122&postcount=57

    там точно указаны правильные номер контактов на разъеме корвета ?!?!
    а то или доки неверные или ошибка в схеме.

    например 24-25 у тебя написано IRQ9_Control
    а по схеме выходит PB7 + +5v

    ну и всё остальное там не совпадает ...

    можеш глянуть ?

  6. #125

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробовал тест скорости #6 (секторный) на реальном железе.

    r: 67 6c
    W: 25 28

    Или меня уже совсем проглючило, или запись у нас идет быстрее чтения! Бред какой-то.

    ---------- Post added at 15:22 ---------- Previous post was at 15:19 ----------

    Цитата Сообщение от esl Посмотреть сообщение
    Вопрос по схеме из http://zx-pk.ru/showpost.php?p=722122&postcount=57

    там точно указаны правильные номер контактов на разъеме корвета ?!?!
    а то или доки неверные или ошибка в схеме.
    Мы это уже обсуждали как-то... Там нумерация указана дл разъема DB-37, который стоит в моем корвете. Для РП-9 нумерация будет зеркальной для каждого ряда, то есть
    DB РП
    19 1
    18 2
    ...
    1 19

    И так же для второго ряда.

  7. #126

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Попробовал тест скорости #6 (секторный) на реальном железе.

    r: 67 6c
    W: 25 28

    Или меня уже совсем проглючило, или запись у нас идет быстрее чтения! Бред какой-то.

    ---------- Post added at 15:22 ---------- Previous post was at 15:19 ----------



    Мы это уже обсуждали как-то... Там нумерация указана дл разъема DB-37, который стоит в моем корвете. Для РП-9 нумерация будет зеркальной для каждого ряда, то есть
    DB РП
    19 1
    18 2
    ...
    1 19

    И так же для второго ряда.
    спасибо, посмотрю!.

    сегодня надеюсь заберу свои железки !

    с тестом - забавно, надеюсь сегодня тоже проверить

  8. #127

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ты там что - уже спаял контроллер? Если да, до я выложу сюда новую версию прошивки. Та, что в архиве несколькими письмами выше, содержит в себе серьезную ошибку, которую я выловил буквально час назад.

  9. #128

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Ты там что - уже спаял контроллер? Если да, до я выложу сюда новую версию прошивки. Та, что в архиве несколькими письмами выше, содержит в себе серьезную ошибку, которую я выловил буквально час назад.
    я ж не паяльщик.
    вечером поеду к брату, он как раз знает чем паяльник от диода отличается.

    надеюсь вечером запустим и тюнер и экстендер.
    так что прошивку - конечно выкладывай.

    p.s. и выложи скрипты которые шьют эту балалайку с нуля
    я то avrdude пользовался, но всякие там fuse и прочее не шил.

  10. #129

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    p.s. и выложи скрипты которые шьют эту балалайку с нуля
    я то avrdude пользовался, но всякие там fuse и прочее не шил.
    Далее я привожу команды для своего программатора STK500 на порту /dev/ttyACM0, тебе ключи -c и -P надо указать под твой программатор.

    Значит, для Atmega32 фузы будут такими - H: D1, L: E4.
    Команда записи:

    Код:
    avrdude -p m32 -c stk500 -P /dev/ttyACM0 -V  -U lfuse:w:0xe4:m -U hfuse:w:0xd1:m
    Фузы вписать один раз и больше не трогать.
    Запись EEPROM - туда шьется загрузчик фазы 1 (который xboot.asm). При вышеуказанных фузах он не стирается при перезаписи флеша, поэтому его тоже вписать 1 раз и не трогать, пока не захочешь подправить сам код загрузчика.

    Код:
    avrdude -p m32 -c stk500 -P /dev/ttyACM0 -U eeprom:w:xboot.bin:r
    Ну и, наконец, запись флеша - самая длинная операция.

    Код:
    avrdude -p m32 -c stk500 -P /dev/ttyACM0 -V  -U flash:w:extrom.hex:i
    Еще позволю себе дать несколько рекомендаций.

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

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

    3. Имеется отладочный терминал на ножке TxD Usart. Его параметры - 1000000-8-N-1. Туда много полезного вываливается в процессе работы программы.

    4. Ну и, естественно, перед подключением меги проверь и ее напряжение питания. А то там на разъеме и +12 есть, тут ошибиться раз плюнуть.

    Надеюсь, у тебя все получится.
    Последний раз редактировалось forth32; 14.07.2014 в 16:35.

  11. #130

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Ты там что - уже спаял контроллер? Если да, до я выложу сюда новую версию прошивки. Та, что в архиве несколькими письмами выше, содержит в себе серьезную ошибку, которую я выловил буквально час назад.
    Подскажи пожалуйста, ты выложил исправленую прошивку ?

    ---------- Post added at 14:16 ---------- Previous post was at 13:08 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    ESL, я позволил себе также внести все исправления в эмулятор. Сам понимаешь, для отладки мне жизненно необходим инструмент поудобнее реального корвета. Прикладываю архив kemu_newapi.7z, содержащий доработанный файл ext_rom.c.
    так конечно, для этого же и делаем.

    ---------- Post added at 14:18 ---------- Previous post was at 14:16 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Что я не стал менять, так это различие в именовании дисков по умолчанию. В контроллере - DISKA и DISKB, у тебя в эмуляторе - DISK_A и DISK_B. Раз ты их так назвал - тебе и решать.
    Ну, надеюсь, мои наработки тебе пригодятся при доработке эмулятора.
    с дисками давай единообразно, переделаю на DISKA,DISKB

    Как долезу до эмулятора - сразу включу.
    Послендние несколько дней было не до эмулятора.

    ---------- Post added at 14:55 ---------- Previous post was at 14:18 ----------

    В архиве у mount.kdi - неправильное crc инф. сектора
    Cооветсвенно он не открывается ни xkorvet ни эмулятором.
    скопировал из стандартного - заработал.

    ---------- Post added at 15:09 ---------- Previous post was at 14:55 ----------

    В mount надо бы проверку вставить на наличие интерфейса.
    About вывести в самом начале ?
    И проверять что PPI2С.7=IRQ0=1 - упасьб если это не так.

Страница 13 из 36 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Open source firmware for the Spectrum
    от zx-kit в разделе Разный софт
    Ответов: 60
    Последнее: 29.05.2014, 13:53
  2. open-source эмуляторы под .NET
    от Sawyer в разделе Эмуляторы
    Ответов: 1
    Последнее: 04.01.2011, 17:47
  3. GP2X F100 Open Source Gaming Console
    от CodeMaster в разделе Зарубежные компьютеры
    Ответов: 3
    Последнее: 12.06.2010, 23:51
  4. Open Source эмуль...
    от rg_software в разделе Эмуляторы
    Ответов: 50
    Последнее: 06.12.2006, 11:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •