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

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 64

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

Комбинированный просмотр

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

    По умолчанию ОС для Специалиста_МХ: Commander/MXOS

    Хочу начать новую тему касаемую программного обеспечения для Специалиста_МХ Commander, далее доработанного Vinxru до MXOS.

    Я давно хотел свести данные по этому ПО в отдельную тему. Последним толчком для этого послужило написание мною драйвера дисковода под Commander. Обо всём по порядку. Я буду пользоваться описанием данного ПО когда-то предоставленным HardWareMan'ом и выдержками с описания MXOS от Vinxru.

    Commander написал в 1992 году Константин Юденцов (ныне покойный) и он является альтернативной RAMFOS'у операционной системой для Специалиста_МХ. Основными достоинствами/недостатками являются:
    1. нет поддерживаемых системой верхней и нижней строки состояния;
    2. система не содержит форму для открытия файла;
    3. нет поддержки звука на основе К580ВИ53;
    4. нет поддержки цвета;
    5. поддерживается значительно меньше специальных кодов при выводе на экран;
    6. поддерживается лишь одна модель принтера;
    7. поддерживается лишь 64 кБайт дополнительного ОЗУ (что в сумме дает 128 кБайт), которое используется как RAM-диск.



    Поддерживаются две кодировки KOI-7 и KOI-8, переключаемые как с клавиатуры, так и ESC-последовательностями (ESC+'(' и ESC+')'). Знакогенератор содержит 256 символов. Используется раскладка клавиатуры Стандартного специалиста. При холодной перезагрузке запускается файл B:AUTOEX.BAT, затем A:FORMAT.COM B:, а затем A:NC.COM. Устройство A: - это ПЗУ, устройство B: - это оперативная память. Максимально поддерживается 8 устройств.
    При перезагрузке инициируемой программами запускается лишь A:NC.COM. Папки самой операционной системой не поддерживаются, но это можно реализовать через драйверы. Максимальное количество файлов в папке - 48 штук, но оболочка поддерживает отображение лишь 36 файлов. Остальные файлы Вы не увидите, не сможете выполнять над ними действия из оболочки, но сможете запустить их командной строки. Максимальный размер файла - 64 кБайт, но оболочка может работать лишь с ~36 кБайт. При попытке скопировать (и т. п.) файл большего размера произойдет переполнение буфера, уничтожение системных переменных, затем экрана, затем самой ОС в зависимости от размера файла.

    Клавиши выполняют следующие команды:
    ESC - очистка командной строки;
    TAB - переход между панелями;
    F1, F2 - выбор накопителя для левой и правой панели;
    F3 - отображение на неактивной панели информации о накопителе активной панели;
    F4 - запуск внешнего редактора E.COM для выбранного файла;
    F5 - копирование файла;
    F6 - изменение имени файла / перемещение;
    F7 - загрузка файлов с ленты (магнитофона) на накопитель;
    F8 - удаление файла;
    F9 - сохранение файла с накопителя на ленту.

    Следующий раз я приведу структуру FAT, используемую в Commander'е. Остальное можно прочитать здесь.

    - - - Добавлено - - -

    Продолжу.

    Commander поддерживает лишь 64 кБайт RAM-диска и отображается как накопители B-H. Причём при старте эти диски являются копиями друг друга. Но каждый из этих дисков можно настроить под свои нужды используя свои драйверы (что и сделал я). Система адресует диски 256 байтными блоками. А так как последние 64 байта адресного пространства всегда занимают основное ОЗУ и устройства, то целых блоков получается 255.

    Файловая система подобна FAT. Накопитель максимальным объемом 64 кБайт разбит на 256 блоков (кластеров) по 256 байт. Первые 4 кластера содержат служебную информацию. Нулевой кластер - это таблица FAT, следующие 4 кластера - каталог.
    Таблица FAT содержит 256 чисел. Число 5 по адресу 8, значит что за 8 блоком следует читать 5-ый блок. Последний блок замыкается сам на себя, то есть у последнего блока в ячейке 7 должно быть число 7. Свободным блокам в таблице FAT соответствует число 0. Из рисунка видно как выглядит распределение чисел в FAT в зависимости от номера кластера и количество кластеров.
    Каталог находящийся в кластерах с 1-го по 3-й содержит список файлов. 48 файлов по 16 байт на каждый. Конец каталога - это байт FFh в начале имени файла.

    Нажмите на изображение для увеличения. 

Название:	Commander1.jpg 
Просмотров:	702 
Размер:	98.9 Кб 
ID:	57407

    Формат дескриптора файла:
    6 байт - имя файла;
    3 байта - расширение файла;
    1 байт - атрибуты файла: 00h - обычный файл, 01h - системный файл;
    2 байта - начальный адрес загрузки в ОЗУ, он же и стартовый;
    2 байта - размер файла в байтах - 1;
    1 байт - ?;
    1 байт - номер первого кластера в FAT.

    Я не зря в предпоследнем байте поставил знак вопроса. У HardWareMan'а - это флаг автозапуска, 00h - данные, FFh - программа. А вот Vinxru так и не понял его назначения. Я в одном месте листинга MXOS нашёл, что при создании файла почему-то сюда записывается как бы "накопленный" байт, который получается при суммировании всех байтов программы, но не является контрольной суммой файла.

    В следующий раз я опишу MXOS от Vinxru, которая является доработанной/переработанной версией Commander'а.

    Здесь я цитирую со своей редакцией описание ПО Vinxru (https://github.com/alemorf/retro/tre...pecialist-mxos).

    MXOS - это название операционной системе я дал сам, поскольку оригинального названия я не нашел.
    Исправленные недоработки:
    В файле DOS.SYS
    1. поддержка ДОЗУ (RAM-диска) большего объема, чем 64 кБайт;
    2. размер ПЗУ у Специалиста_MX2 всего 32 кБайт;
    3. загрузка шрифта в ОЗУ (ускорение работы и возможность загрузки ОС с любого накопителя);
    4. включена инициализация контроллера цвета при запуске.

    В файле NC.COM
    1. включен цвет;
    2. Bподдержка ДОЗУ (RAM-диска) большего объема, чем 64 кБайт;
    3. исправлена ошибка определения свободного объема.

    MXOS более шустрая и обладает более приятным интерфейсом напоминающим Norton Commander. Любое расширение файла можно привязать к любой программе. Список соответствий хранится в файле NC.EXT, максимальный размер которого 36 кБайт. Но при этом MXOS содержит меньше сервисных возможностей и не совместима с RAMFOS'ом. Оригинальная ОС (Commander) поддерживает лишь 64 кБайт дополнительного ОЗУ (что в сумме дает 128 кБайт), которое используется как RAM-диск. Запуск с большим объемом памяти приведет к зависанию, так как в порт выбора страницы записывается случайное число. Исправленная версия ОС поддерживает 448 кБайт дополнительной памяти, т. е. 7 страниц как накопители B...H. Многие возможности можно реализовать дополнительными модулями. Например, в комплекте идет драйвер ПЗУ подключаемого к порту расширения.
    MXOS поддерживает BAT-файлы и передачу аргументов запускаемым программам. При холодной перезагрузке запускается файл B:AUTOEX.BAT, затем A:FORMAT.COM B:, а затем A:NC.COM. Устройство A: - это ПЗУ, устройство B: - это оперативная память. Максимально поддерживается 8 устройств. При создании собственного ПЗУ (загрузочного диска A вы можете разместить AUTOEX.BAT так же и на диске A:, а в нем разместить запуск драйверов. Если при запуске компьютера зажать клавишу ?, то MXOS сразу перейдет к загрузке программы с магнитофона. Если при запуске компьютера зажать клавишу ?, то MXOS пропустит запуск B:AUTOEX.BAT.
    В отличии от "монитора" стандартного Специалиста, MXOS не содержит режима работы с консоли и соответственно директив вводимых с клавиатуры. Вся работа происходит в диалоговом режиме.
    В оригинальной системе ПЗУ по адресам 800h...FFFh должно содержать знакогенератор. Перед выводом каждого символа на экран, этот символ будет копировать из ПЗУ в ОЗУ. Что не только медленно, но и не позволяет отвязать систему от ПЗУ.



    Теперь пришло время рассказать о прекрасном инструменте от автора называемым "подключаемыми драйверами накопителя". Авторы вышеупомянутого ПО и b2m всегда высказывались, что достаточно просмотреть файл DISK_H.COM и всё сразу станет понятным о механизме подключения сторонних накопителях.

    Давайте рассмотрим этот драйвер (дизассемблированный листинг от Vinxru, но в мнемонике Z80). Т.к. он не большой я приведу его полностью.
    Обработчик имеет три функции (номер передаётся в регистре Е):
    1 - записать блок (256 байт, номер блока в регистре D, адрес в HL);
    2 - считать блок (256 байт, номер блока в регистре D, адрес в HL);
    3 - выдать размер диска (в блоках, в регистре А).
    Обратиться к обработчику текущего диска можно по адресу С863h.

    ; Установить драйвер
    org #fa00
    ld a, #07
    ld hl, #fa0f
    jp sys_installDriver ; посадить обработчик на один из 8 дисков

    ; Сделать активным диск H
    LFA08 ld e, #01
    ld a, #07
    jp sys_fileGetSetDrive ; выдать/установить текущий диск

    LFA0F ld a, e ; Запись не поддерживается
    cp #01
    ret z
    push hl ; сохранение регистров
    push de
    push bc
    ld a, #90 ; настройка портов
    ld (IO_EXT_MODE), a
    ld a, #0d ; 6 вывод = 1
    ld (IO_KEYB_MODE), a
    ld a, e ; определение размера
    cp #03
    jp z, LFA39
    cp #02 ; чтение 256-байтного блока
    jp nz, LFA51 ; не верная функция - выход

    ; чтение блока
    ; вход: [D] - номер блока
    ; вход: [HL] - адрес буфера в памяти
    xor a
    ld e, a ; [DE] = 0 - начальный адрес в блоке
    LFA2D call LFA61 ; чтение данных
    ld (hl), a ; сохранение данных в памяти
    inc hl ; инкремент адреса в буфере
    inc e ; следующий адрес в блоке
    jp z, LFA51 ; выход, если блок закончился
    jp LFA2D ; иначе - цикл

    ; определение обьема ПЗУ
    ; выход: [A] - количество секторов на диске
    LFA39 xor a
    ld b, a
    ld d, a
    ld e, #04 ; [DE] = 4 - начальный адрес в блоке
    LFA3E call LFA61 ; чтение данных
    cp #ff
    jp nz, LFA47 ; переход, если не конец диска
    inc b ; инкремент счётчика байтов
    LFA47 inc e ; инкремент адреса в блоке
    ld a, e
    cp #c0
    jp nz, LFA3E
    ld a, #c0 ; И общий обьем ПЗУ получается ROM_SIZE-0FFh
    sub b ; A = A - B
    LFA51 push af
    ld a, #0c ; 6 вывод = 0
    ld (IO_KEYB_MODE), a
    ld a, #9b ; восстановление режима портов
    ld (IO_EXT_MODE), a
    pop af ; восстановление регистров
    pop bc
    pop de
    pop hl
    ret


    ; чтение данных
    ; вход: [DE] - адрес
    ; выход: [A] - данные
    LFA61 ex de, hl ; [HL] - номер блока/байт
    ld (IO_EXT_B), hl ; передача адреса
    ld a, (IO_EXT_A) ; приём данных
    ex de, hl
    ret
    А теперь я опишу назначение данного драйвера. Он предназначен для загрузки каталога и запуска файлов с внешнего ROM-диска, подключаемого к К580ВВ55 (порт программатора). Его объём до 64 кБайт. Нигде нет его схемы, но из конфига эмулятора от b2m я предполагаю что данные ПЗУ подключаются к порту А ППА, а адрес - к портам В и С. Автор выбрал для подключения внешнего ROM-диска накопитель H.

    Юденцов может и хотел написать драйвер дисковода, но наверное не успел. Я где-то здесь на форуме написал в сердцах что не хочу писать его (драйвер), но всё же почти сделал это. На данный момент я сделал вывод корневого каталога с дискеты, подсчёт занимаемого места файлов корневого каталога. Работает операция копирования содержимого выбранного файла в RAM-диск, но где-то скрылась ошибка и данные переписываются неверно. Сейчас я перечислю все трудности, с которыми я столкнулся при написании драйвера:
    1. в MX-DOS (ОС контроллера дисковода) дискриптор файла очень отличается от FAT дискриптора файла. А именно название файла не 8 символов, а 6, причём все буквы только заглавные и в кодировки КОИ-7;
    2. не поддержено разбиение на каталоги. Так что я на первом этапе вывожу только корневой каталог дискеты. Переход в другие каталоги я хочу сделать путём переименования каталога в EXE файл и передачей ему номеров 1-го сектора и 1-й дорожки открываемого каталога;
    3. Т.к. Commander поддерживает только 64 кБайта или 256 кластеров, то отображаемая информация по F3 то же будет не верной. Если принять максимальное количество файлов в одном каталоге в MX-DOS может быть 16 с максимальным размером каждого файла 64 кБайта то получаем 16*64 кБайт=1024 кБайта. Максимальная ёмкость дискеты всего 800 кБайт.

    Исходники драйвера я выложу позже.

    Сейчас я опишу алгоритм построения программы драйвера. Входными переменными, об этом писалось ранее, являются номер кластера и адреса буфера. Номер кластера может принимать значения от 04h...feh. Причём последние в этом списке значатся:
    feh - чтение/запись каталога;
    fdh - чтение/запись каталога;
    fch - чтение/запись каталога;
    fbh - чтение/запись таблицы FAT.
    Т.е. при запросе кластера с этими номерами мы уверены, что идёт обращение к каталогу или таблице FAT. Остальные кластеры - это обращение к 256 байтному блоку памяти с конкретным номером. Т.к. каталог у нас будет состоять не более чем из 16 файлов (максимальное количество каталогов/файлов в одном каталоге MX-DOS), то обращение к кластерам с номерами fdh/feh можно просто заменить заполнение кластерами символом ffh.
    А вот обращение к 04h...fah - это работа с конкретным кластером. Я сделал так. Опрашиваю весь каталог из области fc00h...fcffh и по данным каждого дескриптора файла я вычисляю начальный и конечный кластеры занимаемые каждым файлом. Если этому диапазону принадлежит запрашиваемый кластер, то я считываю в буфер запрашиваемую область. Т.к. в MX-DOS можно считывать только один сектор (1/10 часть дорожки = 1024 байт), то необходим выбор какую 1/4 часть нам использовать. Номер 1-го сектора/дорожки мы берём из дескриптора соответствующего файла дискеты.
    Запись кластера должна действовать в обратном порядке, но пока мною не написана.
    Заполнение таблицы FAT я сделал при обращении к кластеру fbh. Я подсмотрел листинг файла dos.sys от Vinxru. Там есть подпрограмма fileCreate, которая создаёт файл со входными данными дескриптора. Но применить её полностью мне не удалось. Она сначала ищет в каталоге имя создаваемого файла и если он есть, то сначала удаляет его. На этом этапе у меня всё зависало и я убрал эти обращения. Тупо подставляю переделанной подпрограмме дескриптор и она помещает дескриптор в каталог и соответственно размещает номера кластеров в таблице FAT. И всё.
    Функцию "выдать размера устройства" я сделал так. Я просматриваю весь каталог и суммирую число кластеров занимаемое каждым файлом. Хотя система число кластеров больше 256 не воспринимает. Так что выводимая информация по F3 будет недостоверной.
    В атаче исходники программы. Из архива файл ramfos.bin нужно переименовать в ramfos.rom и подставить в эмулятор emu.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Commander1.jpg 
Просмотров:	630 
Размер:	19.3 Кб 
ID:	57406  
    Вложения Вложения
    Последний раз редактировалось fifan; 08.08.2019 в 12:20.

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

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

    По умолчанию

    После долгого перерыва решил закончить драйвер. Но просмотрев исходники я понял что не помню некоторые моменты в программе. Почему например, кластеры по которым я считываю каталог с дискеты имеют номера feh, fdh, fch, fbh - таблицы FAT? В памяти страницы эти кластеры считаются системными и имеют номера с 0-го по 3.
    Буду и дальше копать в этом направлении и есть задумка, и она верная, что с построением каталога необходимо не только тупо переписывать дескриптор файла, но и само тело файла. Так же необходимо при построении каталога следить за объёмом страницы и не превышать размера в 255 кластера. На каждый каталог необходимо отводить 1 кластер (на дискете он имеет размер в 1 кБайт) и писать небольшой драйвер, который бы загружал в память параметры каталога (номера сектора/дорожки, количество файлов в каталоге). Название каталогов будет в виде NAME01.DIR, главного каталога MAIN.DIR. Vinxru в описании MXOS упоминал что есть средства для работы с файлом NC.EXT, в котором могут быть описаны действия выполняемые системой при разных расширениях файла. Однако ни готового файла, ни описания каков его синтаксис нет. Я б в этом файле описал расширение DIR.
    И последнее. После успешного написания драйвера для дискет можно замахнутся и на SD каталог. Правда, подпрограммы работы с SD картой от Vinxru, взятые с loader'а занимают сравнительно много памяти - 3 кБ, что для драйвера многовато. Смысла запускать на МХ программы RKS я не вижу и присматриваюсь к расширениям CPU/I80. Наличие для каждой программы пары файлов (CPU/I80) обязательно, т.к. в первом есть начальный адрес программы с расширением I80.

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

    По умолчанию

    Разобрался со своими заморочками из предыдущего поста.
    1. feh, fdh, fch, fbh - это старший байт буфера куда считывается кластер. Назначается системой и соответственно по этому значению система пишет данные в буфер с таблицы FAT или с директория.
    2. В корне не верно писать сразу данные тела файла. Да и куда. По номеру кластера вычисляем какому файлу он принадлежит и считываем весь сектор (4 кластера) с дискеты. Нужный кластер передаём системе.
    Пока сделал считывание корневого каталога с дискеты, подсчёт чтобы сумма байт считанных файлов в каталоге не превышала 63 кБайт. Лишние файлы не выводятся.
    Запуск выбранного файла не происходит, система выводит ошибку. Нужно разобраться с расширениями запускаемые системой.

  5. #4
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,165
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    428
    Поблагодарили
    175 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно вопрос по Специалисту и Коммандеру?

    Фрагмент кода nc.com:
    Код:
    		call	getch
    
    		; Стираем курсор выбранного файла
    		push	psw
    		COLOR(COLOR_FILE)
    		call	drawCursor
    		pop	psw
    
    		; Анализ нажатий клавиши
    		mov	c, a
    		jc	mainLoop_ctrl
    То есть после вызова getch (C803) проверяется флаг С, и при его установке происходит переход на mainLoop_ctrl:
    Код:
    mainLoop_ctrl:	cpi	0Dh
    		jz	ctrlEnter
    		jmp	mainLoop_e
    Никак не пойму, что же за признак такой возвращает процедура С803 в этом флаге и как он влияет на нажатие Enter в коммандере?

    P.S. Вопрос снят: это признак нажатия клавиши "ПВ", которая выступает в роли Сtrl
    Последний раз редактировалось Pyk; 18.02.2017 в 01:31.

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

    По умолчанию

    Я так думаю был принят во внимание исходник от Vinxru? Я тоже его юзаю, пришлось переписать одну процедуру для корректной работы драйвера.

  7. #6
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,165
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    428
    Поблагодарили
    175 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, это его исходник.
    Вообще, не совсем понятна эта история с клавиатурой. Почему, собственно, клавиатура MX несколько отличается от клавиатуры оригинального Специалиста и почему в коммандере (который вообще-то предназначен для MX), используется оригинальная раскладка?

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

    По умолчанию

    Клавиатура МХ не отличается от стандартной. Изменен только метод опроса. Не нужно придумывать.

  9. #8
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,846
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    166 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Клавиатура МХ не отличается от стандартной. Изменен только метод опроса. Не нужно придумывать.
    Ну как-же? А esc,tab и функциональные клавиши?

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

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Ну как-же? А esc,tab и функциональные клавиши?
    МХ делается из стандарта. Мы делали из Экспресса. Клавиатура не меняется - та же пленка. Все по букварю. Так что не верю!

    Но кое-что все же замечу. Если вы об этом:

    То тут только сравнивать таблицы кодов.
    Код:
    Таблица кодов RAMFOS:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    00000430   81 0C 19 1A 20 20 20 08  09 18 0A 0D 00 C0 00 C6   Ѓ...   ......А.Ж
    00000440   51 5E 53 4D 49 54 58 42  40 2C 2F 5F BB FF 00 00   Q^SMITXB@,/_»я..
    00000450   46 59 57 41 50 52 4F 4C  44 56 5C 2E 00 00 00 00   FYWAPROLDV\.....
    00000460   4A 43 55 4B 45 4E 47 5B  5D 5A 48 3A B1 00 00 00   JCUKENG[]ZH:±...
    00000470   3B 31 32 33 34 35 36 37  38 39 30 2D 05 0A 00 00   ;1234567890-....
    00000480   1B 8A 00 01 02 03 04 05  06 8B 8C 1F 00 00 06 30   .Љ.......‹Њ....0
    
    Таблица кодов NC:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    000014A0   81 0C 19 1A 09 1B 20 08  80 18 0A 0D 00 00 00 00   Ѓ..... .Ђ.......
    000014B0   71 7E 73 6D 69 74 78 62  60 2C 2F 7F 00 00 00 00   q~smitxb`,/....
    000014C0   66 79 77 61 70 72 6F 6C  64 76 7C 2E 00 00 00 00   fywaproldv|.....
    000014D0   6A 63 75 6B 65 6E 67 7B  7D 7A 68 3A 00 00 00 00   jcukeng{}zh:....
    000014E0   3B 31 32 33 34 35 36 37  38 39 30 2D 00 00 00 00   ;1234567890-....
    000014F0   00 01 02 03 04 05 06 07  8A 8B 8C 1F 00 00 00 00   ........Љ‹Њ.....
    
    Таблица кодов ПСПЗУ:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    000004A0   81 0C 19 1A 09 1B 20 08  80 18 0A 0D 00 00 00 00   Ѓ..... .Ђ.......
    000004B0   71 7E 73 6D 69 74 78 62  60 2C 2F 7F 00 00 00 00   q~smitxb`,/....
    000004C0   66 79 77 61 70 72 6F 6C  64 76 7C 2E 00 00 00 00   fywaproldv|.....
    000004D0   6A 63 75 6B 65 6E 67 7B  7D 7A 68 3A 00 00 00 00   jcukeng{}zh:....
    000004E0   3B 31 32 33 34 35 36 37  38 39 30 2D 00 00 00 00   ;1234567890-....
    000004F0   00 01 02 03 04 05 06 07  8A 8B 8C 1F 00 00 00 00   ........Љ‹Њ.....
    Только RAMFOS отличился тем, что "03" и "09" (1B/09) он воспринимает как 2 дополнительных пробела, а нехватающие коды перенесены в функциональный ряд. Но это фиксится буквально за секунду руками в любом хексе. И я напоминаю, как именно выглядит пленочная клавиатура:

    Заметили особенность? Функциональный ряд начинается с F, потом F1 ... F8.
    Последний раз редактировалось HardWareMan; 19.02.2017 в 16:01.

  11. #10
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,846
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    166 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Если вы об этом:
    Вот именно об этом. Почему в скобках указаны другие клавиши? И какой клавише соответствует клавиша "F" в ряду функциональных на плёночной?

Страница 1 из 7 12345 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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