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

User Tag List

Страница 7 из 16 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 154

Тема: Специалист_МХ2: новые программы для нового Специалиста.

  1. #61
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    После некоторого перерыва вновь вернулся к писанию программ.
    1. Прошивка в "стандартный" Специалист для запуска программ с Flash-диска готова. См. ниже в атаче. Мапер памяти с этой прошивкой таков:
    C000...CFFF - Монитор-2, оставлен как BIOS для запуска программ
    D000...D7FF - пока пустое место
    D800...EFFF - сама программа External Flash Disk.
    Соответственно запуск проги так: GD800.
    2. После некоторых размышлений решил, что под "стандартный" Специалист нужно только оставить запуск программ с Flash-диска и SD карты. Поэтому от SpetsCommander'а отпочковалась программа Standart Spetsialist Browser. Сейчас я добиваюсь от неё работу с SD картой. Всё отлаживаю на эмуляторе от b2m. Автора эмулятора попросил сделать мне для этих целей конфигурацию.
    3. SpetsCommander теперь дабавлю ещё одним диском: F-Flash-диск.

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

  3. #62
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,407
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    599
    Поблагодарили
    445 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я, кстати, тоже предлагаю обзывать диски не по порядку а по типу: D - Disk, F - Flash, R - RAM Disk. Ну и так далее.

  4. #63
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А почему бы не вынести сам коммандер на флешку или SD. Тогда не придется перепрошивать ПЗУ, при обновлении. А в ПЗУ будет лишь загрузчик.

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

    Тогда бы можно было менять аппаратную часть при неизменном коммандере.

  5. #64
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Еще бы я предложил сделать в этом ПЗУ несколько стандартных точек входа.
    Я тоже за. Какие подпрограммы будем садить в ПЗУ?

  6. #65
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    D800 - Загрузка коммандера и передача ему управления. В A возвращается код ошибки.

    D803 - Загрузка файла указанного в HL и передача ему управления. В A возвращается код ошибки.

    D806 - Загрузка файла указанного в HL в память по адресу DE. Если BC не равен нулю, то размер файла должен быть равен BC. В A возвращается код ошибки.

    D809 - Получение первого из списка файлов папки HL в память по адресу DE. (Формат надо придумать.) В A возвращается код ошибки.

    D80С - Получение следующих файлов в память по адресу DE. (Формат надо придумать.) В A возвращается код ошибки.

    D80F - Получение свободного места на флешка. На входе A - буква диска. В A возвращается код ошибки.


    Потом еще будут нужны функции сохранения файла, переименования файла, удаления файла, создания папки.

    И совсем круто было бы продумать работу с файлами. open, read, write, seek, close. Но это сложно и не нужно наверное пока. Но предусмотреть под них резерв стоит.

    ---------- Post added at 20:33 ---------- Previous post was at 20:30 ----------

    Еще можно подумать, что бы стандартные функции BIOS загрузки/сохранения на магнитофон передавали управление этому BIOS-у. Что бы Бейсик сохранял данные на флешку.
    Последний раз редактировалось vinxru; 01.03.2013 в 21:36.

  7. #66
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,407
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    599
    Поблагодарили
    445 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Лично я считаю, что должно быть 3 уровня подпрограмм. Как и в любом другом месте.

    Уровень 1, самый низкий. Здесь работа с железом: клавиатура, экран, низкоуровневый сервис, работа с картой на уровне считать/писать сектор. По сути - это таблица вызовов BIOS (в нашей аналогии - загрузчика ПСПЗУ).

    Уровень 2, средний. Здесь работа с логическими единицами ресурсов, как то работа с памятью, сюда же надо абстрагировать работу с FS на всех дисках.

    Уровень 3, верхний. Здесь, собственно, прикладной сервис. По сути - это сервис DOS.

    По этому плану я сейчас пилю поддержку карты для Специалиста МХ2, и сейчас я на стадии поддержки записи на SD. Как только это закончу, я тут же напишу утилиту загрузки файлов с кассеты и буду цифровать все кассеты сразу на карту (возможно получится в автоматическом режиме даже).

  8. #67
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я предлагаю зашить в ПЗУ работу с файловой системой. Ну и функции на уровне секторов то же будут, но особо и не нужна.

    У тебя на флешке используется собственная файловая система. Простая, понятная.

    У кого то будет FAT (большой и сложный), у кого то TRDOS, у кого то CP/M. А может кто то напишет сетевой драйвер, тогда работа с секторами будет невозможна. Типа меня.

    Если ФС разместить в BIOS, то любая программа сможет использовать максимально ОЗУ. В ОЗУ не будет ядра операционной системы. И при этом загружать файлы в память.

    ---------- Post added at 21:05 ---------- Previous post was at 21:05 ----------

    Клавиатура, экран поддерживаются оригинальным биосом.

    ---------- Post added at 21:09 ---------- Previous post was at 21:05 ----------

    Что бы сохранить гибкость, нужно предусмотреть загрузку расширений файловых систем.

    Сразу после запуска BIOS будет поддерживать только флешку. Но можно загрузить драйвер любого устройства и он будет доступен через вызовы BIOS.

    ---------- Post added at 21:09 ---------- Previous post was at 21:09 ----------

    То есть предусмотреть функцию ПОДКЛЮЧИТЬ ДИСК.

    UPD: Еще изменение атрибутов.
    Последний раз редактировалось vinxru; 03.03.2013 в 14:58.

  9. #68
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,407
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    599
    Поблагодарили
    445 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    У тебя на флешке используется собственная файловая система. Простая, понятная.
    Кто сказал? Ты путаешь с FLASH ROM диском. а я говорю за SD. Там у меня vFAT. Иначе нет смысла. Ее предназначение - обмен данными с ПЦ в первую очередь.

  10. #69
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я предлагаю зашить в ПЗУ работу с файловой системой. Ну и функции на уровне секторов то же будут, но особо и не нужна.
    ...
    У кого то будет FAT (большой и сложный), у кого то TRDOS, у кого то CP/M. А может кто то напишет сетевой драйвер, тогда работа с секторами будет невозможна. Типа меня.
    Только не забудьте векторизировать ПЗУ-шные подпрограммы через табличку адресов подпрограмм, размещаемую в ОЗУ (по дефолту смотрящие в Монитор). Чтобы для замены драйвера не надо было непременно перешивать ПЗУ, а можно было решить подгружаемым в ОЗУ модулем, который изменяя этот фрагмент просто переключит на себя подпрограммы. А еще лучше предусмотреть многостраничные вектора (номер_страницы+адрес), чтобы дравера можно было размещать не в основной странице ОЗУ (в основной программам пользователя и так тесно).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #70
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вы пока выясняете я сделал работу с SD картой в браузере. Почему-то не работает запуск загруженных файлов. Идея такая. Сначала я инициализирую SD карту и контроллер. Потом считываю в каталог все RKS файлы (пока их два). Вывожу каталог. Потом выбираю файл для запуска. Теперь нужно представить формат RKS файла:
    1. Два байта - адрес запуска он же и начальный;
    2. Два байта - конечный адрес;
    3. Тело файла размером (конечный адрес-начальный адрес);
    4. Контрольная сумма.
    По моей специфике я сначала любой найденный файл гружу с нулевого адреса ОЗУ. Потом выясняю по начальному адресу куда нужно переместить блок кода. Считывание блока кода с SD карты работает, а вот потом программа отказывается перемещаться куда ей надо и запускаться (подпрограмма CalcStartEnd считывает последовательно четыре байта и размещает их соответственно в E,D,C и B; в Size находится размер блока):
    RKSRun1 ld hl, #0000
    call CalcStartEnd ; [DE] - начальный адрес, [BC] - конечный адрес
    ld hl, (Size)
    ld b, h
    ld c, l
    ex de, hl
    ld (Start), hl
    ex de, hl
    ld hl, #0004 ; начало блока данных
    RKSRun2 ld a, (hl)
    ld (de), a ; перенос байта
    dec bc
    jp nz, RKSRun3 ; переход, если ещё не последний адрес
    ld hl, (Start) ; стартовый адрес
    jp (hl) ; запуск программы

    RKSRun3 inc de
    inc hl ; инкремент адресов
    jp RKSRun2 ; цикл переноса
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	SSB104.png 
Просмотров:	235 
Размер:	8.1 Кб 
ID:	40204  

Страница 7 из 16 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Трекер нового поколоения
    от newart в разделе Музыка
    Ответов: 63
    Последнее: 02.02.2016, 09:55
  2. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16
  3. Продается Лик (клон Специалиста)
    от KALDYH в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 20.02.2010, 14:29

Ваши права

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