Продолжаем разовор о неутомимой борьбе сноба-потребителя с такими энергонезависимыми накопителями информации, как жесткие диски.
Цитата:
Часть третья.
W значит Windows.
Будет ли Microsoft нормально поддерживать большие диски?
Для этого Microsoft должна ввести в типы разделов MBR новый расширенный раздел для записей формата LBA48.
Кратко - если вы явно у них это не попросите, то этого не будет. А теперь подробнее почему это так.
Содержание. 1. Версии Windows. 2. Windows XP. 3. Windows 7. 4. Новый принцип для Windows XP. 5. Интерфейс APM/ACPI в Windows XP. 6. Перепрограммируемые BIOS и Windows. 7. Вывод.
...проблема в самом принципе. Этот принцип мы видим не только в новых интерфейсах BIOS, но и в интерфейсе PCI, и в интерфейсе USB, этот принцип создает новизну в старых вещах тем же самым способом — путем искусственного возведения преград. Этот принцип защищает интересы крупных производителей, которые способны написать массу весьма сложного несовместимого кода, который делает одно и тоже.
Добавлено спустя 7 минут 41 секунду:
chesheer писал(а):
grizlyk К теме бэкапов. И так: вы предлагаете иметь n дисков в RAID0 и плюс к этому диск, равный или больший по объёму, чем этот RAID0 для того, чтобы беспроблемно перезаливаться при сбое. Я верно вас понимаю? Т.е. в самом простом случае в системнике должно находиться 3 харда (ну или 2 внутри +внешняя коробка +диск большого объёма)?
Нет, не верно. Посмотрите в интернете на ему "бэкапов". Сохраняются только модификации, а не все файлы. Восстановление и сохранение не в реальном времени. В Windows есть сервис "архивация". Даже в ДОСе была программа backup. Хранить архив надо или на удаленном компьютере или на сменном носителе.
Member
Статус: Не в сети Регистрация: 14.11.2007 Откуда: Москва Фото: 1
grizlyk Сохраняются все файлы. Каждый следующий - да, модификации и добавления. А теперь объясните, каким образом (даже с учетом архивации) бэкап будет заметно меньше оригинала. Вариант со вторым компьютером хорош. Т.е мы уже не ограничиваемся одним диском большого объема, а должны иметь второй компьютер с этим диском внутри. Странно, не находите?
Member
Статус: Не в сети Регистрация: 14.11.2007 Откуда: Москва Фото: 1
LSD25 Странность: человек утверждает, что Raid 0 - это просто и безопасно, надежность отличная, а бэкап решит все проблемы, для дома самое оно. При этом при рассмотрении варианта бэкапа мы имеем достаточно затратные варианты (какие они и есть в реальности). Только в некоторы случаях это действительно обоснованно, но вот для дома - ни разу. Так же, хочу отметить стоимость восстановления данных с одиночного винта и со страйпа. Разница сильно не в пользу последнего.
Member
Статус: Не в сети Регистрация: 01.12.2003 Откуда: msk.ru
Прочел статьи. Местами было интересно, даже прошлое вспомнил, например, кодинг прямо в debug. Но кричащий заголовок типа "Скандалы-ынтрыги-росследованийа" портит все впечатление.
Member
Статус: Не в сети Регистрация: 11.11.2005 Откуда: VoID
Совет автору - попробуйте поработать на машине с XP c ынтерпрайзными приложениями, которые сильно текут... ну и нортон 360 для довески.. (говорю не голословно, у меня на работе такая i3-2300, 4 гб памяти (может и больше, кто знает на 32 бит системе) и страшные лаги после 3-4 дней работы) а потом поставьте туда семерку (у коллеги слева стоит).. увидите разницу. Вообще изменений много в семерке - линуксоподобный менеджер памяти, совершенно другой scheduler, адекватно работающий с многоядерными процессорами, и куча других изменений, которые совсем не относятся к интерфейсу..
У вас есть уникальная возможность отдать свой голос, например за пункт "Хочу чтобы ни один компонент от моего старого компьютера не был совместим с моим новым компьютером" или "меня не интересуют LBA48 для MBR и диски более 2Тбайт".
Добавлено спустя 10 минут 53 секунды:
chesheer писал(а):
grizlyk Сохраняются все файлы. Каждый следующий - да, модификации и добавления. А теперь объясните, каким образом (даже с учетом архивации) бэкап будет заметно меньше оригинала. Вариант со вторым компьютером хорош. Т.е мы уже не ограничиваемся одним диском большого объема, а должны иметь второй компьютер с этим диском внутри. Странно, не находите?
Как архивировать данные это не вопрос данной темы, есть очень много книг и статей о том, как защитить данные и какие факторы им угрожают. Посмотрите эти источники, это общеизвестная и в общем правильная информация.
Как архивировать данные
Я вообще не говорю, что что-то будет больше или меньше чего-то. У некоторых архивы действительно меньше, поскольку они не сохраняют файлы, которые легко повторно установить с DVD, а их рабочие файлы не столь значительны. Другие хранят все модификации, у них архивы больше чем исходный диск. Третьи используют очень большие собственные файлы, но это уже не архив, а библиотека или база данных, что для обычного десктопа нетипично.
Если вы хотите сохранности данных, то вы должны использовать ограниченный доступ к данным: другую копию операционной системы + другую аппаратную платформу или сменный носитель для защиты данных от повреждений не связанных с отказами оборудования.
Добавлено спустя 7 минут 36 секунд:
chesheer писал(а):
LSD25 Странность: человек утверждает, что Raid 0 - это просто и безопасно, надежность отличная, а бэкап решит все проблемы, для дома самое оно. При этом при рассмотрении варианта бэкапа мы имеем достаточно затратные варианты (какие они и есть в реальности). Только в некоторы случаях это действительно обоснованно, но вот для дома - ни разу. Так же, хочу отметить стоимость восстановления данных с одиночного винта и со страйпа. Разница сильно не в пользу последнего.
Опять, вопросы по архивации.
Кратко повторяю, RAID 1 или RAID 5 не решает задачу защиты данных, поскольку защищает только от одного фактора - отказа оборудования. Эти типы RAID используются в файловых серверах, поскольку у них есть специфические требования.
Мы имеем достаточно затратные варианты. Все зависит от того, сколько стоят ваши данные. Если это черновики детских каракуль, то их не надо совсем защищать. Если это бесценный для вас уникальный домашний архив каракуль или вы учитываете стоимость оплаты труда работника, который создал эти уникальные данные, то вопрос о дороговизне я не понял.
Подробнее отсылаю к литературе по защите данных. Это не вопрос данной темы.
Продолжаем разовор о неутомимой борьбе сноба-потребителя с такими энергонезависимыми накопителями информации, как жесткие диски.
Цитата:
Часть четвертая.
Сегодня лекция: Сеансы Компьютерной Магии (с полным её разоблачением) Общественный разоблачитель, гр.: grizlyk
СКМ выпуск #2: RAID 0 и ужасы.
Содержание.
1. Закрытая архитектура современных компьютеров и RAID 0. 2. Большая загадка фирмваре. 3. Расширение MBR для поддержки RAID 0 4. Дисковые расширения BIOS.
В то время как весь адекватный мир переходит на народную демократию, основанную на единственно верной системе рейтингов +1/-1... ... мы практически разработаем готовое, промышленное расширение MBR для поддержки RAID 0, как всегда мы по возможности не будем пользоваться бумагой, будем разрабатывать расширение в уме... ...сами разработаем программу для поддержки RAID 0 - "RAID-0 Essentials"...
Именно по причинам, описанным в записи, в linux настоятельно рекомендуется использовать встроенный программный raid, если только у производителя этот рейд не полностью аппаратный. Если б кому-то под ОС windows нужен был бы единый открытый стандарт, он бы был.
Member
Статус: Не в сети Регистрация: 29.10.2003 Откуда: 埼玉、日本 Фото: 9
имхо чипсетный raid так "для галочки", чтобы был, и можно было в рекламе написать - типа есть raid, не то, что у других. он то есть, и я даже пользовался им успешно, но вся проблема в том, что в один прекрасный момент возникает срочная необходимость сменить материнскую плату, после её замены, данных на таком "raid" больше нет . случай из жизни 2: захотелось ubuntu поставить второй ОС (а дело было в 2008м году ) ), так вот - результат - Linux не увидел raid, написал ошибку. "эхх..." подумал я, и перезагрузился. а данных уже нет . ибо "raid failed" . не то что на работе, на centos сделал простенький raid1 средствами ОС, и работает он уже года 2, идеально работает. причём если fake-raid позволяет только целиком диски подключать, то на linux у меня в raid'e1 только boot и root, а swap не в raid, а раскидан по дискам, т.е. swap'a 2, и работает за счёт этого примерно как raid 0. не знаю как кому, а мне проще software raid в linux поставить и не париться, чем чипсетный или "hardware" raid. мне кстати рассказывали, как посыпался hardware raid5 на sas дисках, с лёгкой подачи шваброй уборщицей по розетке . ничё так "контакт отошёл", когда 2 диска из 3-х посыпались а у меня всё просто - raid1 + еженедельный full backup.
Добавлено спустя 9 минут 49 секунд: grizlyk почитал статью. опять 16-битный ассемблер ну и ладно. а что до raid0, что его просто сделать - это понятно. знаю, ибо делал контроллер DDR памяти на FPGA ) но проблема не в том, чтобы написать пару сотен строк кода на асме и продать это за 1000000000 долларов под видом RAID, им же надо как-то людей занять, которых много . вот и маются со всякими кривыми прошивками. их никогда никто не будет доделывать, ибо если сделает идеально, его просто уволят - вот и "размазывает" на 5 лет проектище.
Member
Статус: Не в сети Регистрация: 14.12.2009 Откуда: москва
Zio писал(а):
и я даже пользовался им успешно, но вся проблема в том, что в один прекрасный момент возникает срочная необходимость сменить материнскую плату, после её замены, данных на таком "raid" больше нет .
сменил уже минимум 7 матерей (ам3+, фм2, 2011 и 1155) и ни разу он не посыпался, ЧЯДНТ?
Member
Статус: Не в сети Регистрация: 25.01.2003 Откуда: UA
О господи.. теперь этот дибил в свои 'статьи' еще куски сишного кода начал вставлять, что б круче смотрелось видать. Зачем, зачем постить это ГОВНО в интернет раз за разом??? Недавно перечитывал ваши фантазии про память, там половину статьи, а так же все посты в обсуждении можно на bash.org постить без правок...
К сожалению, саморегуляция на основе рейтингов это прямой обман - позиция владельцев ресурса выдается за единственно существующее мнение, поддержанное авторитетами или массами, я не могу поверить в невинную глупость тех, кто это затеял.
Я думаю, что новая "саморегуляция на основе рейтингов" мало отличается от традиционных интернет-помоек, где посетители или беспрерывно ругаются друг с другом, или беспрерывно восхваляют друг друга и где при этом администрация развлекается тем, что беспрерывно модерирует все что пишут пользователи.
Проблема в том, что может существовать единственное мнение владельцев ресурса (авторитаризм, типа), но может не существовать единственно правильного мнения (это вот как раз свобода), поэтому саморегуляция на основе рейтингов это умышленное отсечение альтернативных мнений, когда все идут строем. Голосованиями нужно заполнять выборные места, но после победы в США "демократов", лидеров "республиканцев" не вешают на деревьях, в этом неотчуждаемая от выборности часть свободы, которая отличает свободу от голосований в третьем рейхе, в котором тоже была система рейтингов по улучшению вертикалей власти. Свобода это возможность существовать нескольким мнениям, а не возможность иметь только процедуру голосования.
Саморегуляция на основе рейтингов на форумах это прямой запрет на свободу высказывать свою позицию и иметь доступ к слушателю. К чему это приводит на практике в нашем применении? К тому, что из обзоров предлагаемой продукции становится невозможно выяснить реальные качества товара, сравните то, что пишу я и то, что пишут в саморегулирующихся форумах. На тех форумах такая информация совсем не может появиться. Дело в том, что там нет возможности не только критиковать, но и высказывать некритическую, но свою позицию, она либо не будет услышана, либо за нее будут наложены санкции. Фактически это не форумы, а издания и посетители там не авторы, а читатели; но мнение редакции выдается за "мнение народа" - на опасной дороге затея. Даже если это и не издания, то как минимум закрытые тусовки радикальных членов неких политических партий.
Что касается саморегуляции вообще, то при свободе регулирующее рейтингование делает каждый человек для себя самостоятельно, каждый сам жует еду, конечно, возможность динамически подключать/отключать информацию о рейтингах от своих единомышленников крайне нужна для удобной работы в сети (это некий аналог объединения людей по интересам в партии и организации) и как раз такой возможности нет в популярном софте для форумов и блогов.
В своих личных блогах (или в ПС) посетители могли бы писать все что им вздумается и кто не хочет, может в их блог не заходить, для этого ничего не нужно делать, а вот если посетители захотят поделиться чем-то с прочими читателями, то им надо иметь возможность поставить/убрать галочку "для публикации" на своей записи, тогда зайдя в общую ленту опубликованных ПС, эту запись увидят все, вот тут-то и нужен софт персонального рейтинга, когда каждый посетитель для себя смог бы отрейтинговать автора или конкретный материал и поделиться таким рейтингом с единомышленниками, это нужно только для того, чтобы отсеивать недобросовесные сообщения от тех, кто злоупотребляет свободой или представляет враждебную политическую партию. Владелец ресурса может вести свой рейтинг как и обычный посетитель, так что "мнение, поддержанное авторитетами или массами" при этом никуда не пропадает.
Конечно, есть опасность что появятся люди, которые будут пытаться "торговать оружием и наркотиками" в тех же ПС, поэтому владелец ресурса вынужден нести на себе это бремя - как минимум оперативно реагировать на жалобы от разных надзоров, никакая система рейтингов от этого не спасет. При свободе не всегда можно обойтись без охранников и полиции. Почему бы не открыть ПС для всех, кто хочет писать трактаты в основном по околокомпьютерной тематике? Тем более, что альтернатив мало.
Ну, да, об RAID 0.
1) Явно было не выделено состояние "RAID_READY", а было бы неплохо уметь создавать разделы raid_partition и "форматировать" их в состояние "RAID_READY" любыми утилитами, так чтобы BIOS контроллера RAID или драйвер ОС для контроллера RAID заполняли бы только нужные поля заголовка при создании RAID массивов.
Для этого поле типа мы разобьем на биты, а значение всех битов равное нулю будет означать не RAID 0, а RAID_READY
Код:
[10h] таблица параметров RAID [16] ureg16 тип RAID 0,1,5, RAID_READY, не_задан итд, который определяет и тип таблицы основных параметров (RAID 0 в нашем примере) все биты равны 0 - RAID_READY
Также надо добавить указание на размер кода, выводящий сообщение, чтобы обозначить пустое место в первом секторе. Для этого зарезервируем байт из области этого кода по смещению 0Fh, он укажет на первый свободный параграф в секторе, пригодный для размещения таблиц RAID
Код:
[0Fh] размер кода сообщения [1] ureg8 указывает на свободное место после кода вывода сообщения в первом секторе, в 16-байтных блоках ноль если свободного места нет
2) char[8] 128 бит номер - это ошибка копипаста, тут 8*8=64 бит номер везде, кроме char[16] 128 бит серийный номер данного массива На деле для адресации контроллера диска PCI-стиля в реальной системе достаточно трех байт - {шина, слот, устройство}, но можно расширить размер до восьми байт, чтобы получить кратность элемента таблицы в 16 байт, делать элементы таблцы по 32 байта ради 128 бит идентификатора нет никакого практического смысла, хотя пустое место есть.
3) эта модификация предназначена для одноуровнего RAID, т.е. когда на физических дисках создаются специальные разделы raid_partition, которые потом объединяются в RAID массив, а вот создать еще один RAID массив на базе уже собранных RAID массивов может быть и можно, но этот вопрос не рассматривался, задача стояла поддержать RAID 0, который вообще не требует от драйвера никакого обслуживания, он в этом смысле не отличается от обращения к обычному физическому диску и если и содержит набор специальных функций, то только для оптимизации обращения.
4)итого, формат MBR раздела типа raid_partition
Код:
[00h] код х86 выводящий сообщение о невозможности загрузки с раздела RAID вне RAID массива [15] ureg8 EBh идентификатор RAID раздела №1 это код операции процессора jmp short $+??, переход на этот код выводящий сообщение (jmp $+20h в нашем примере)
*[01h] ureg8 байт смещения в команде процессора EBh для перехода на этот код (1Eh в нашем примере) org 7c00h 7C00 EB 1E jmp $+20h
*[02h] код сообщения (в нашем примере здесь ASCIIZ строка сообщения об ошибке) char[13] 'Its RAID ary',0 org 7c02h 7C02 49 74 73 20 52 41 49+ db 'Its RAID ary',0 44 20 61 72 79 00
[0Fh] размер кода сообщения [1] ureg8 указывает на свободное место после кода вывода сообщения в первом секторе, в 16-байтных блоках ноль если свободного места нет (в нашем примере адрес *[40h] и будет 4h) это нужно, чтобы "форматировать" раздел как RAID_READY, раздельно во времени записывая определенный код вывода сообщения и параметры раздела org 7c0Fh db 4h
[10h] таблица параметров RAID [16] char[4] 'RAID' идентификатор RAID раздела №2 ureg32 число резервных секторов под описание RAID массива (64 в нашем примере) ureg16 смещение начала таблицы параметров RAID от начала первого сектора, байт (40h в нашем примере) ureg32 размер таблицы параметров RAID, байт (288 байт в нашем примере) ureg16 тип RAID 0,1,5, RAID_READY, не_задан итд, который определяет и тип таблицы основных параметров (RAID 0 в нашем примере) биты типа бит 0 0 не RAID 0 1 RAID 0 бит 1 0 не RAID 1 1 RAID 1 бит 3-4 резерв, неопределены бит 5 0 не RAID 5 1 RAID 5 биты 6-15 резерв, неопределены все биты равны 0 - RAID_READY
[20h] код выводящий сообщение org 7c20h 7C20 8C C8 mov ax,cs 7C22 8E D8 mov ds,ax 7C24 BE 7C02 mov si,7c02h 7C27 FC cld
7C28 nxt_m: 7C28 AC lodsb 7C29 0A C0 or al, al 7C2B 74 06 jz eom 7C2D B4 0E mov ah,0eh 7C2F CD 10 int 10h 7C31 EB F7 jmp nxt_m
7C33 eom: 7C33 FB sti 7C34 B4 00 mov ah,0 7C36 CD 16 int 16h
7C38 CD 18 int 18h 7C3A CD 19 int 19h
7C3C s: 7C3C F4 hlt 7C3D EB FD jmp s 7C3F 00 db 0
*[40h] таблица основных параметров RAID 0 (в нашем примере таблица здесь) [256]
ureg8 старшая версия таблицы (0 в нашем примере) ureg8 младшая версия таблицы (1 в нашем примере) ureg16 размер strip-блока RAID-массива в секторах, от единицы (64 в нашем примере) ureg48 размер каждой части RAID-массива в strip-блоках, от единицы ureg16 резерв ureg16 номер данного диска в данном массиве RAID 0, от нуля ureg16 число дисков для данного массива RAID 0, от единицы char[16] 128 бит серийный номер данного массива RAID 0 (все диски одного массива RAID имеют одинаковый номер) char[32] 32 байтный короткий пользовательский идентификатор (все диски одного массива RAID имеют одинаковый идентификатор) char[192] 192 байтный пользовательский идентификатор данного массива RAID 0 (все диски одного массива RAID имеют одинаковый идентификатор) этих данных достаточно чтобы найти все части данного массива RAID 0 на дисках
*[140h] таблица дополнительных параметров RAID 0 [32] кэширование данных о следующем диске в raid массиве нужно для ускорения сбора raid при загрузке кэширование заполняется каждым хост-контроллером один раз при первом подключении raid массива к данному контроллеру если вы выполняете первое подключение, надо вручную указать на необходимость провести такое кэширование
если raid массив не планируется использовать как системный диск, т.е. он не виден через BIOS, а только через драйвера Windows, то данные кэширования могут храниться не здесь на диске, а в конфигурационных файлах драйверов ОС.
описание следующего диска в raid массиве [16 из 32] ureg8 0 указывает, что данная часть таблицы не используется, иначе 1 ureg8 0 указывает, что следующий диск на MBR, иначе формат таблицы иной (здесь не описано) ureg16 резерв ureg16 номер порта в многопортовом контроллере, где следующая часть RAID (зависит от конкретного контроллера) ureg16 номер раздела MBR, где следующая часть RAID (от 0-3 основные разделы, 4-last1 разделы в первом расширенном и т.д.) char[8] 64 бит номер, по которому можно по API в BIOS найти контроллер со следующим диском или 0
описание первого диска в этом raid массиве [16 из 32] точно такая же таблица, как использовалась для описания следующего диска в raid массиве, но ссылается на первый диск в массиве, это облегчает работу если нашелся диск с массивом из середины цепочки
*[160h] пусто (в нашем примере [80h]) это место может использоваться либо под более сложный stub код сообщения об ошибке или под хранение небольшой таблицы дополнительных параметров контроллера RAID в конфигурационном разделе
[1E0h] описание конфигурационного раздела контроллера RAID [16] если контроллер хранит конфигурационную информацию о самом себе (а не о RAID массиве) на диске, а не в NVRAM памяти, он хранит ее на накопителе, подключенном к одному из своих портов
описание конфигурационного раздела заполняется каждым таким RAID-контроллером один раз при первом подключении raid массива к данному контроллеру если вы выполняете первое подключение RAID массива к такому контроллеру, надо вручную указать на необходимость провести такое заполнение если вы выполняете отключение RAID массива от такого контроллера, надо вручную указать на необходимость провести безопасноe отключение, чтобы конфигурационная информация контроллера была правильно перемещена
описание диска, хранящего конфигурационную информацию этого raid контроллера таблица аналогична по сути той, что использовалась для описания первого диска в raid массиве, но ссылается диск, который в зарезервированных RAID секторах хранит конфигурационную информацию RAID контроллера, чей конфигурационный раздел и который управляет этим raid массивом, это облегчает работу если нашелся диск с массивом из середины цепочки
ureg8 0 указывает, что конфигурационный раздел и эта часть таблицы не используются контроллером, иначе 1 ureg8 0 указывает, что конфигурационный раздел на MBR, иначе формат таблицы иной (здесь не описано) ureg16 резерв ureg16 номер порта в многопортовом контроллере, где кофигурационный раздел RAID контроллера (зависит от конкретного контроллера) ureg16 номер раздела MBR, где кофигурационный RAID раздел RAID контроллера (от 0-3 основные разделы, 4-last1 разделы в первом расширенном и т.д.) char[8] 64 бит номер, по которому можно по API в BIOS найти этот RAID контроллер
[1F0h] таблица параметров контроллера RAID [10] если это конфигурационный раздел, на который ссылается секция [1E0h], то здесь RAID контроллер, владеющий конфигурационным разделом, хранит дополнительную конфигурационную информацию о самом себе
ureg16 резерв ureg16 смещение начала таблицы дополнительных параметров контроллера RAID от начала первого сектора, байт (0 в нашем примере) ureg32 размер таблицы дополнительных параметров контроллера RAID, байт (0 байт в нашем примере, т.е. не используется) ureg16 число отдельных raid массивов, которыми управляет этот raid-контроллер, от нуля
[1FAh] таблица параметров RAID-массива [4] если это первый диск в RAID массиве, на который ссылается секция *[150h], то здесь хранится конфигурационная информация о RAID массиве
ureg16 резерв ureg8 биты параметров RAID-массива: биты 0,1 тип разрешенного кэширования 00 нет 01 чтение 10 запись 11 чтение/запись биты 2-7 резерв, неопределены ureg8 резерв
[1FEh] сигнатура расширения BIOS [2], идентификатор RAID раздела №3 db 55h,aah
Видите как я небрежен? Ошибся на (*raid0_data.strip_sectors). Это потому что в принципе весьма тяжело написать программу безошибочно сразу, даже если это хорошо известный алгоритм и даже с последующей проверкой на тестах.
Какое уж тут фирмваре, когда никто в мире не может толком реализовать без ошибок даже открытый протокол? Это все потому, что маркетологи, которые придумывают фирмваре для повышения прибыли, слабо себе представляют процесс написания программ, в результате их программисты делают работу, которую не в состоянии выполнить, а наказания за недоброкачественный продукт для них не существует.
Добавлено спустя 37 минут 26 секунд: И опять формат раздела RAID, он мне опять не нравится
Код:
[0Fh] размер кода сообщения [1] ureg8 указывает на свободное место после кода вывода сообщения в первом секторе, в 16-байтных блоках ноль если свободного места нет (в нашем примере адрес *[40h] и будет 4h)
плохо указывать на первое свободное место, надо указывать размер свободного места после кода, т.е. когда весь сектор занят под код тут 0, а когда код ограничен только перыми 15 байтами, тут 1E(0)h-02(0)h=1C(0)h максимум, в нашем примере под код заняты дополнительно параграфы 2 и 3, значит 1E(0)h-04(0)h=1A(0)h, итого
Код:
[0Fh] размер свободного места после кода сообщения [1] ureg8 размер свободного места после кода вывода сообщения в первом секторе, в 16-байтных блоках ноль если свободного места нет, 1Ch максимум свободного места (в нашем примере свободное место начинает ся садреса *[40h] и здесь будет 1Ah) org 7c0Fh db 1Ah
Добавлено спустя 1 час 31 минуту 56 секунд: Казалось бы, уже все проверили, даже на тестах все вроде сработало, а вдруг бац - опять ошибка, заместо
А попробуйте провести такую модификацию в закрытом коде, владельцы которого не собирают информацию об ошибках и не исправляют их? Таким владельцам надо или открывать код, или выкупать неисправные устройства обратно, какой еще вариант может быть?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения