1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Настройка и сжатие io.sys для Win95osr2, Win98FE, Win98SE.

Автор: BolenB · 18 янв 2024 ·
  1. 1. Обрезаем io.sys
    В io.sys есть полезная часть (в начале) и практически бесполезная (в конце).
    Бесполезная - это Logo (графическая картинка, выводится при загрузке) и менеджер конфигураций.
    Размер io.sys можно уменьшить отрезав бесполезную часть.

    io.sys от win95osr2 (последняя версия лежит в обновлении Q185301) обрезается от 214918 -> до размера 121520 байт.
    io.sys от win98se (версия для win98 и win98se одинаковы, брать в Q311561) обрезается от 222670 -> до размера 122896 байт.

    2. Исправляем размер io.sys после обрезания.
    Загрузчик io.sys одинаков для всех трех систем (первые 4 сектора, 2048 байт, MSLOAD).
    Мои наблюдения:
    В MZ хеадере важны только «MZ» ( шестнадцатеричное : 4D 5A) в начале файла (« магическое число ») и длина файла в параграфах по смещению 08h, остальные параметры можно занулить, как в загрузчике от WinMe.
    Для загрузки io.sys надо прописать количество параграфов по смещению 08h, и не абы сколько, а вместится в определёный диапазон.
    Пропишем меньше - io.sys загрузится не полностью, пропишем больше - зависнем.
    Как считать: Сектор = 512 байт, параграф = 16 байт, 2048 = 4 сектора, 1536 = 3 сектора.
    Берем наш обрезаный io.sys размером 122896 байт.
    122896 / 512 = 240.03
    Округляем в большую сторону, до 241 сектора.
    241 * 512 = 123392 байт (сколько файл занимает секторов).
    123392 - 2048 = 121344 (1DA00h) / 16 (10h) = 1DA0h + 1 = 1DA1h
    123392 - 1536 = 121856 (1DC00h) / 16 (10h) = 1DC0h
    Вот в этих пределах (1DA1h - 1DC0h) надо прописывать количество параграфов.
    Если пропишем < 1DA1h то io.sys загрузится не весь. Если пропишем 1DA0h не загрузится последний сектор (потеряется 16 байт в конце io.sys)
    Если пропишем > 1DC0h то зависнем (из-за бага, загрузчик не может найти в FAT 0FFFFFFF8 end of cluster mark (EOC),пугается и зависает.

    В WindowsMe этот баг (или особенность) пофиксили и можно указывать размер > 1DC0h, загрузчик сам считает сколько надо байт, лишнего не загрузит.

    Перенес fix из ME в Win95osr2 - Win98se загрузчик.
    HDR_new.rar

    Для размера файла 121520 байт, размер в параграфах будет (1D41h - 1D60h).

    3. Состояние опций по умолчанию.
    io.sys Win98SE (Q311561)
    состояние опций по умолчанию хранится в слове (2 байта):
    00009523: 80h (с 7 по 0 бит)
    00009524: 00h (с 9 по 8 бит)
    Если бит сброшен то это эквивалентно опция = 1 в msdos.sys
    Если бит установлен то это эквивалентно опция = 0 в msdos.sys
    ------------------------------------------------
    98 76543210
    ------------------------------------------------
    00 0000000x - Logo (0 или 1h)
    00 000000x0 - DBLSPACE (0 или 2h)
    00 00000x00 - DRVSPACE (0 или 4h)
    00 0000x000 - BOOTKEYS (0 или 8h)
    00 000x0000 - BOOTWIN (0 или 10h)
    00 00x00000 - BOOTGUI (0 или 20h)
    00 0x000000 - LOADTOP (0 или 40h)
    00 x0000000 - BOOTMULTI (0 или 80h)
    0x 00000000 - BOOTWARN (0 или 1h)
    x0 00000000 - SYSTEMREG (0 или 2h)
    -------------------------------------------------
    При "пустом" msdos.sys мы имеем
    00009523: 8000 (бит 7 в 1-ом байте установлен), что эквивалентно BOOTMULTI=0, все остальные
    опции соответственно =1 (так как биты сброшены).

    Захотели мы, например, чтоб в io.sys по умолчанию было Logo=0. Нужно установить бит 0 по адресу
    00009523:
    80h + 01h = 81h
    ---------------------------------------
    00009523: 81h теперь по умолчанию BOOTMULTI=0;Logo=0
    ---------------------------------------
    Надеюсь смысл понятен.
    --------------------------------------------------------------------------------------------------------
    Если хочется подробностей, то можно прочитать здесь: Windows 98 SE (оптимизация и улучшение) — десятая часть - [16] :: Microsoft Windows :: Компьютерный форум Ru.Board
    ---------------------------------------------------------------------------------------------------------
    Управление опцией DisableLog хранится отдельно:

    0000503D: 02 DisableLog=0
    0000503D: 01 DisableLog=1

    ----------------------------------------------------------------
    Для io.sys от Win95osr2 (Q185301):
    состояние опций по умолчанию хранится в слове (2 байта):
    000093E9: 80h (с 7 по 0 бит)
    000093EA: 00h (с 9 по 8 бит)
    00004FCD: 02 DisableLog=0
    00004FCD: 01 DisableLog=1

    4. Сжатие io.sys
    Чтобы уменьшить размер io.sys, его можно сжать. Для этого хорошо подходит aPACK.
    Ibsen Software [ products - aPACK ]
    -----------------------------------------------------------------------------------------------------------------
    Если хочется подробностей, то можно прочитать здесь:
    Windows 98 SE (оптимизация и улучшение) — десятая часть - [160] :: Microsoft Windows :: Компьютерный форум Ru.Board
    Windows 98 SE (оптимизация и улучшение) — десятая часть - [161] :: Microsoft Windows :: Компьютерный форум Ru.Board
    ------------------------------------------------------------------------------------------------------------------
    Сделал тулчейн для упаковки IOPAK.710 (Немножко переделал IOPAK.8 от MERCURY127).
    Не универсален, не поддерживает addon-ы.
    Корректно пакует только MSDOS 7.10 (Win95osr2 - Win98se).
    Но на побаловаться с упаковкой io.sys его возможностей хватит.

    Вложения:

    • IOPAK.710.zip
      Размер файла:
      940,8 КБ
      Просмотров:
      88

Комментарии

Чтобы оставить комментарий просто зарегистрируйтесь и станьте участником!
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление