Known Bugs

### Известные ошибки

#### Основные проблемы

- Есть общая проблема со всем дополнительным оборудованием, подключаемым к Амиге, которое производит прерывания случайным образом либо постоянно. Например, моя сетевая карта (Hydra). Если запущен стек TCP/IP, почти каждая установленная программа будет "подвисать" на короткое время, потому что карта создаёт прерывания (так же как прерывания, создаваемые клавиатурой), на которые установленная программа не может правильно ответить. Это происходит, потому что, как только прерывание было обработано rte, происходит следующее прерывание. Чтобы избежать этой проблемы, стек TCP/IP должен быть остановлен перед стартом WHDLoad.
  К этой же категории относится и падение стеков USB (используйте "AddUSBHardware REMOVE ALL" для Poseidon) и прерывания Voodoo плат Mediator (следует установить "VoodooInt = No"). Начиная с версии WHDLoad 16.8 он создаёт рабочую область для прерываний Медиатора, и здесь не требуется каких-либо специальных настроек.
- Если у вас возникают ошибки при чтении/записи файлов, проверьте, правильно ли настроены жесткие диски. WHDLoad считывает данные большими массивами (>1MB), что при неправильной конфигурации с большей долей вероятности вызовет сбои в работе. При этом, другие приложения могут работать без сбоев, несмотря на неисправность. В случае подобных неисправностей, убедитесь что для всех партиций в HDToolBox корректно выставлены значения MaxTransfer и Mask. Безопасным значением (для проблемного аппаратного обеспечения) являются MaxTransfer = 0x0FE00 и Mask = 0x0FFFFFC. Это в первую очередь относится к PCMCIA-картам и адаптерам IDE-CF-card.
  Другой причиной данной проблемы может являться некорректное выделение памяти. Существуют конфигурации, имеющие проблемы с Обратным выделением памяти. В таком случае, можно через параметр NoMemReverse принудительно заставить WHDLoad не использовать режим Обратного выделения памяти.
- Если Вы используете Picasso96 Вы должны удостовериться что опция FakeNativeModes установлена в NO (смотрите в свойствах драйвера монитора). Иначе будут графические ошибки и возможно сбой системы.
- Существуют некоторые редкие аппаратные конфигурации, которые не поддерживают MMU функции WHDload. Единственная конфигурация системы, которая подвержена этой проблеме, это базирующаяся на 68030. На таких конфигурациях опция MMU/S не должна активизироваться! Если опция все же будет установлена, то WHDLoad просто наглухо "подвесит" всю систему. В настоящее время проблемы создают системные конфигурации с акселераторами "Appolo А630 ", "Appolo 1230", "Elbox 1230" и "Magnum MK2".
- Существует проблема с раширителями оперативной памяти через слот PCMCIA на A1200. WHDLoad может выдать ошибку типа `Dos error #235 (executable not valid) on loading "xxx.slave"`. Причиной этого может являться то, что память некорректно добавляется к памяти системы, т.к. WHDLoad пытается выделить память используя флаг MEMF_REVERSE и получает неправильный код возврата (указатель на несуществующую область памяти). Пока точно неизвестно происходит ли это только со специфическими картами или же только на каких-то определенных конфигурациях компьютеров.

#### Несколько слов разработчикам

- Операция переключения между системой (OS) и установленной программой не очень надежна. Проблема состоит в том, что большая часть специализированных регистров и некоторых регистров Cia не могут быть прочитаны и, следовательно, не могут быть ни сохранены, ни восстановлены. Сам WHDLoad не изменяет этих регистров, но когда он производит переключение с установленной программы на OS (например, чтобы загрузить файл с диска), OS может изменить некоторые из этих не восстанавливаемых регистров. Если установленная программа зависит от всех регистров, которые должны оставаться неизменными, то это создаст проблемы. Известно, что OS изменяет, по крайней мере cop2lc, bltafwm и bltalwm, и возможно, что и еще какие-то регистры. Чтобы решить эту проблему, существует возможность восстанавливать регистры, измененные во время операций переключения. За дополнительной информацией обращайтесь к разделу WHDLTAG_CBSWITCH_SET.