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

User Tag List

Страница 6 из 7 ПерваяПервая ... 234567 ПоследняяПоследняя
Показано с 51 по 60 из 64

Тема: ОС для Специалиста_МХ: Commander/MXOS

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

    По умолчанию

    По городу автора. Vinxru или Alemorf или Алексей Морозов тоже из Питера. Так что вы оба - земляки.

  2. #52
    Master Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    590
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    115 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Размер сектора на SD -- 512 байт. Это кластеры в файловой системе могут быть большими.

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

    По умолчанию

    Цитата Сообщение от SpaceEngineer Посмотреть сообщение
    Какой формат дискет используется на Специалисте?
    Разбивка диска стандартная: 162 дорожки с двух сторон, 5 секторов, по 1024 байта каждый.
    Опознать диск можно по стрингу "Dos_MX V3.6", который находится по смещению 5, в нулевом секторе нулевой дорожки.
    Файловая структура дисков весьма необычная: файл позиционируются с точностью до байта. Дело в том,что файловая система основывается на структуре ROMDISK'а для этого компьютера.

    Формат дескриптора файла в каталоге:
    3 байта - признак заголовка (#d3 #d3 #d3)
    8 байт - имя файла
    1 байт - пробел (#20)
    3 байта - раcширение файла
    1 байт - признак сохранённости/несохранённости файла (#8c/#8b)
    3 байта - дата создания файла
    1 байт - номер 1-го сектора дорожки (#00...#0a)
    1 байт - номер 1-й дорожки (#00...#4f)
    2 байта - количество секторов (объём файла в кБайтах)
    1 байт - признак файла/каталога (#00/#ff)
    2 байта - начальный адрес
    2 байта - конечный адрес
    2 байта - контрольная сумма
    2 байта - назначение не ясно
    Назначение остальных байтов неизвестно, требуется дополнительная информация.

    Не могу найти документы о структуре FAT. Хотя когда-то написал программу для просмотре занятости секторов на дискете. Вот исходник и запускаемый файл.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	FATView.jpg 
Просмотров:	57 
Размер:	56.2 Кб 
ID:	76991  
    Вложения Вложения
    Последний раз редактировалось fifan; 09.02.2022 в 17:01.

  4. #54
    Member
    Регистрация
    30.09.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    101
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно. Такие дискеты нет смысла поддерживать в рамках MXOS2 (или как её назвать?) Раз в ней будут FAT из коробки, значит и дискеты и SD карты должны быть в FAT (которая стандартная, Microsoft). Старые образы дискет можно распаковать и пересохранить в fat.
    Значит мне надо сделать поддержку секторов любого размера (сейчас 256 байт) и кластеров. Потом - перейти на полноценную структуру FAT, с загрузочным сектором и общепринятыми кодами пустой записи каталога и т.п. Накопителей у меня пока два виде - рам диск и флеш диск. Драйверы дисковода и SD карты еще предстоит написать.

  5. #55
    Member
    Регистрация
    30.09.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    101
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пресобрал редактор E.COM для работы на другом адресе. Не так просто это оказалось, самомодификация кода и таблица с кодами клавиш и адресами п/п и обработки - такое дизассемблер сам не отлавливает.
    В процессе стало ясно назначение клавиш. Получилась инструкция.

    Инструкция к редактору E.COM

    F1 - переключение режима Insert/Overwrite
    F2 - курсор на страницу вверх (PageUp)
    F3 - курсор на страницу вниз (PageDn)
    F4 - открыть файл
    F5 - сохранить файл
    F6 - открыть файл и вставить его в конец документа
    F7 - поиск текста в строке курсора и ниже (перематывает документ на строку с текстом)
    F8 - отмена изменений в строке

    Стрелки - управление курсором. Можно его разместить где угодно, в т.ч. за концом строки и за концом документа.
    Del - удалить символ, на котором курсор
    Enter - вставить строку ниже курсора (не разбивает текущую строку)
    Tab - курсор вправо на следующий ближайший столбец шириной 4 (8) знакомест (не совсем понятно, шаг постоянно меняется, может баг?), не вставляет символ tab, а просто передвигает курсор
    Home - курсор в начало строки
    End (ПС) - курсор в конец строки
    СТР - выход (без сохранения!)

    Esc-Home - курсор в начало первой страницы
    Esc-End - курсор в начало последней страницы
    Esc-S - разбить строку в положении курсора на две
    Esc-J - объединить текущую строку (на которой курсор) и следующую
    Esc-L - выделить текущую строку; потом можно переместить курсор на другую строку и снова Esc-L - выделить все строки от первой выделенной до текущей
    Esc-U - снять выделение строк
    Esc-C - вставить выделенные строки в строку ниже текущей
    Esc-M - переместить выделенные строки в строку ниже текущей
    Esc-D - удалить выделенные строки
    Esc-N - новый файл (очистить буфер), выводится запрос для подтверждения
    Esc-O - сохранить файл на магнитофон
    Esc-I - загрузить файл с магнитофона
    Esc-V - загрузить файл с магнитофона (в другом формате?)
    Esc-G - загрузить файл с магнитофона и вставить в конец документа

    Редактор поддерживает запуск из командной строки с передачей имени открываемого файла в виде аргумента. Это используется в Коммандере - редактор назначен на клавишу F4. Также можно ассоциировать с ним любые типы файлов, например TXT, прописав их в NC.EXT.
    Редактор хранит переменные в области памяти под экраном, ниже переменных BIOS. Это позволяет ему помнить некоторые настройки между сессиями, даже загруженный/введенный ранее текст, если ничто не попортило буфер в памяти.
    У кнопки F3 есть второй обработчик, но до него управление никогда не доходит. Поменял их местами ради интереса - просто нажатие F3 выбрасывает из редактора. Если перед этим загрузить файл по F4, то стирается экран, вместе со строкой состояния.
    Команды F4-F6 - работа с файлами на дисках Коммандера. В строке состояния выводится запрос имени файла. Если не вводить букву диска, имеется в виду текущий диск. При этом буфер для ввода имени файла - всего 9 символов, т.е. хватает только на имя, точку и расширение (6.3), а на букву и двоеточие уже не хватит, если имя длинное.
    Кнопка СТР злая, выход из редактора сразу без сохранения и каких-либо запросов. Получается, нет простого способа просто взять и сохранить изменения: надо нажать F5, вспомнить имя редактируемого файла, сохранить. Это если редактор запускается с передачей файла через командную строку. Если запускать его отдельно и открывать файл через F4, то он запомнит имя файла и будет сразу его показывать в строке ввода команд F4-F6. Может быть, это просто недоработка.
    Кнопка Tab не вставляет символ tab, а просто передвигает курсор. Вроде бы должна двигать на ближайший столбец шириной 4 (8) знакомест, но шаг постоянно меняется. Может, это баг, а может как-то хитро заточено под форматирование кода на ассемблере.
    Не понятно, как переключиться на ввод русского текста (ps: понял как, HP+Рус переключает язык. В режиме КОИ-8 Рус работает как Caps Lock. А в режиме КОИ-7 Рус переключает язык. Это общий принцип в этой ОС). Редактор нормально отображает файлы в кодировке КОИ-8, но как печатать? Кстати, код символа Ъ = 0FFh используется как признак конца файла, так что нельзя, чтобы он был в тексте.

    Кто в курсе, является ли этот редактор адаптацией какого-то известного? Есть ли более продвинутые редакторы, приближенные к современным по принципу работы с текстом? Или всё же стоит его доработать? Из доработок, кроме перехода на формат файла FAT (увеличить буфер имени и т.п.), хочу вывести подсказку по клавишам F1-F8 в строку состояния, и раскрасить его, для придания внешнего вида "родного" для Коммандера плагина. По Esc-последовательностям можно сделать экран хелпа, и повесить его на F1 (а Ins перевесить куда-то еще). А по F4 - запуск хекс редактора, как было в Волков Коммандере
    Последний раз редактировалось SpaceEngineer; 29.04.2023 в 15:39.

  6. #56
    Member
    Регистрация
    30.09.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    101
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Кстати test_fif.com (судя по названию мой) давно обновился. Вот исходник и бинарник, замени. В новой версии сделано правильное вычисления количества страниц RAM-диска и ещё что-то, не помню. Запускается он и с РАМФОСа и в качестве тестовой ПЗУ, записанной в 2 кБайтную 2716.
    Тест странно работает. Объем рам-диска из одной линейки РУ5 определил как 320 кб, а из одной линейки РУ7 - как 512 кб. Проверил "3 линейки" и завис. В эмуляторе же все четко, только некоторые линейки микросхем не закрашиваются (напр. когда 256 кб). Другие тесты правильно работают, и п/п определения объема доп. ОЗУ из рамфоса vinxru тоже.

    Экранная область ОЗУ в твоем тесте не тестируется. Она просто заливается по очереди разными цветами, а тестировать байты и биты кто будет? Вообще, при битой памяти тест не будет работать даже из пзу, т.к. используется стек.

    Тест-MX сделан по-другому. Первая половина теста работает только из ПЗУ по адресу 0000h, без стека и call, поэтому все подпрограммы заинлайнены, даже бип динамиком. Он сначала тестирует верхнюю половину памяти 8000h-FFDFh. Поэтому в Специалисте-МХ с более чем 32 кб ПЗУ надо ставить перемычку, которая отключает верхнюю часть ПЗУ и открывает ОЗУ выше 8000h. Вначале тест заполняет экранную память (8000h-BFFFh) паттерном 33 33 CC CC, потом 55 AA 55 AA, и читает его обратно. При этом в регистр цвета выставляется цвет символов = цвет фона, поэтому это выглядит как просто заливка экрана сплошным цветом. Потом так же тестируется память C000h-FFDFh. Если тест верхней половины ОЗУ прошел успешно, программа рисует интерфейс, копирует вторую свою половину в верхнее ОЗУ, так, чтобы задеть область непереключаемого ОЗУ, где сидит драйвер рам-диска, и прыгает на нее. Там она отключает ПЗУ и тестирует нижнюю половину ОЗУ 0000h-7FFFh, а потом и рам-диски.

    Вот тут я дизассемблировал его и начал комментировать, но бросил, когда дошел до драйвера рам-диска. Оказалось, что это старая версия теста, не поддерживающая множественные страницы доп. ОЗУ.
    test_mx.zip
    Последний раз редактировалось SpaceEngineer; 15.02.2022 в 15:07.

  7. #57
    Member
    Регистрация
    30.09.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    101
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выкатил апдейт. Хорошая промежуточная точка, после которой мне придется взять перерыв.

    https://github.com/UnivEngineer/Specialist-OS

    Что сделано:

    - FAT16 почти стандартный, имена файлов 8.3, загрузочный сектор, одна таблица FAT и корневой каталог (до 256 файлов). Папки пока ещё не поддерживаются. Отличия от стандарта - сектор = кластер = 256 байт, и по мелочам (пустая запись в каталоге обозначается FFh, а не E5h, присутствует адрес загрузки файла, и т.д.)
    - Дисковый буфер в памяти превратился в кэш, сохранив первоначальный размер (1 кб). Если раньше fat и каталог грузились с накопителя целиком, то теперь в кэш грузятся произвольные секторы по мере надобности, затирая наиболее давно использовавшиеся (LRU кэш). Это позволило работать с огромными по размеру fat и каталогом (на 2 Мб флеш-диске они занимают 16 + 8 кб), сохранив приличную производительность, и не расходуя память.
    - Рам-диск и флеш-диск теперь сплошные, до 256 файлов и до 16 Мб размером.
    - Добавлен драйвер стандартного 64 кб ROM-диска, подключаемого через ВВ55, работает в эмуляторе emu. Эмулятор не поддерживает 2 Мб флеш-диск HardwareMan'а, но с этим драйвером можно поиграться с "виртуальным" большим ром-диском (если передать ему файл с первыми 64 кб образа ром-диска, где находятся fat и каталог, то можно в нортоне погулять по нему. Файлы загружать, естественно, не получится, ну кроме тех, что целиком поместились в эти 64 кб).
    - В нортоне реализован скроллинг, чтобы можно было добраться до любого файла. Если каталог большой (на флеш-диске у меня 133 файла), скролинг подтормаживает, потому что каталог каждый раз целиком читается с накопителя. Буфер со списком файлов, отображаемых на панели (36 шт), и так килобайт занимает, тут особо не разгуляешься. Эта проблема решится с реализацией поддержки папок - не будет в одном каталоге такой огромной россыпи файлов.
    - На инфопанели выводится информация об объеме памяти и диска, свободном месте на нём, количестве файлов, и метка тома - всё, как в "настоящем" Нортон коммандере.
    - В системе включен шрифт КОИ-8 по умолчанию. Имена файлов можно писать в любом регистре (по-русски тоже - но я не проверял). Сами файловые операции к регистру нечувствительны.
    - Поменялось распределение памяти. Стандартные программы (нортон, редактор и др.) переехали на E800h, что, кстати, совместимо с Ramfos. Редактор E.COM адаптирован и слегка раскрашен. Для драйверов осталось 2-2.5 кб памяти. Кто бы написал драйвер дисковода и SD карты? Нужны, как и раньше, только три функции - запись сектора, чтение сектора, получение размера.

    - - - Updated - - -

    https://disk.yandex.ru/i/rnapNP6z21CtCw
    Нажмите на изображение для увеличения. 

Название:	EMU_e05GOPjWdk.jpg 
Просмотров:	49 
Размер:	27.5 Кб 
ID:	77022

    https://disk.yandex.ru/i/OcPtdCbA8UNNow
    Нажмите на изображение для увеличения. 

Название:	EMU_NbOmuEq7Wg.jpg 
Просмотров:	45 
Размер:	27.4 Кб 
ID:	77023

    https://disk.yandex.ru/i/HDox5vRNRQpR4Q
    Нажмите на изображение для увеличения. 

Название:	EMU_MlJzJ23z8G.jpg 
Просмотров:	38 
Размер:	27.2 Кб 
ID:	77025

    Кстати, надписи КАПСОМ смотрелись как-то аккуратнее. Разрешение шрифта маловато что ли для строчных букв?
    Последний раз редактировалось SpaceEngineer; 16.02.2022 в 20:29.

  8. #58
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,574
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    1,207
    Поблагодарили
    394 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Строка помощи почему-то с нестандартной раскраской. Вызывает диссонанс.



    Последний раз редактировалось CityAceE; 16.02.2022 в 18:27.
    С уважением, Станислав.

  9. #59
    Member
    Регистрация
    30.09.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    101
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В палитре Специалиста нет такого болотного зеленого цвета. Можете сами поэкспериментировать с цветами, они прописаны в начале файла NC/NC.asm.

    Кстати, что лучше писать в строке объема диска - физический или доступный? Загрузочный сектор, fat и каталог занимают место, поэтому про пустой рам диск система пишет "512 kb total, 503 kb free, 0 files use 9 kb".
    Последний раз редактировалось SpaceEngineer; 16.02.2022 в 20:29.

  10. #60
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,574
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    1,207
    Поблагодарили
    394 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SpaceEngineer Посмотреть сообщение
    В палитре Специалиста нет такого болотного зеленого цвета.
    Это не болотный зелёный, а тёмный cyan, и он в палитре Специалиста всё-таки есть
    С уважением, Станислав.

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

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

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

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

Похожие темы

  1. Perfect Commander v2.1
    от dM_GBG в разделе Софт
    Ответов: 43
    Последнее: 21.04.2014, 22:04
  2. Куплю плату для сборки Специалиста_МХ
    от Kanzler2001 в разделе Новодел
    Ответов: 4
    Последнее: 21.05.2012, 00:51
  3. Заказ плат Специалиста_МХ
    от fifan в разделе Новодел
    Ответов: 251
    Последнее: 03.02.2012, 19:52
  4. Эмуллятор Специалиста_МХ
    от fifan в разделе Эмуляторы отечественных компьютеров
    Ответов: 4
    Последнее: 01.04.2009, 17:23
  5. Dos Commander v2.01b
    от Vega в разделе Софт
    Ответов: 19
    Последнее: 01.12.2006, 09:49

Ваши права

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