Вход в Зоопарк ручных компьютеров
Вход > Палеонтологический музей > Маленькие истории > POSE: эмулятор Palm
--

POSE: эмулятор Palm

Страница 1 2 3 4 5 6 >>

2000 год

28 января
POSE 3.0a4. Опять несколько подверсий. Переработана подсистема инсталляции файлов .prc (проверка корректности, более подробная информация об ошибках), реализована поддержка для Palm IIIe и Palm Vx (появились в меню моделей, сохраняются в параметрах, можно задавать в аргументах командной строки, реализован «корпус» для каждой из моделей, внутренний ID, регистрация в подсистеме создания «автономного эмулятора» и проч.). В POSE для Macintosh переработана сетевая подсистема (на базе OpenTransport вместо MacTCP), решены проблемы при компиляции программы ROM Transfer с помощью CodeWarrior for PalmOS R6. Исправлены проблемы с динамической памятью, обработкой кнопок Palm при работе «Гремлинов». В редакции для UNIX исправлена проблема с изменением картинки корпуса, документирована поддержка отладчика gdb (и более не нужно использовать дополнительные библиотеки для работы с POSE). Расширена документация. Информация о моделях была перенесена в класс EmDevice, снова активирована проверка переполнения стека (выключена в POSE 2.1d27), исправлена ошибка «засыпания» при наличии «Гремлинов», перезагрузки файла .psf (в Windows при работе с «Гремлинами»), загрузкой файла ПЗУ, который был вместе с файлом .psf перемещен в другой каталог. Несколько изменений при работе POSE в среде FreeBSD, решены проблемы с обработкой параметров X-Window (-display, -geometry). Переработана подсистема эмуляции регистров таймера ЦП Dragonball (однако, все еще оставалась возможность некорректной регистрации результатов — запуск программы с «Гремлином» в 3:00pm мог дать результаты, не совпадающие с такой же попыткой в 5:00pm).

Некоторые изменения в журнале (замена символов xxxChr на vchrXXX, запись имени формы, которая была активна в момент выхода из программы), в версиях для Macintosh и Windows реализована поддержка внешних утили т трассировки (Tracer, Reporter).

Исходные тексты переработаны для улучшения переносимости (платформно-зависимые подсистемы вынесены в отдельные классы), в результате функция ROM Transfer была реализована в UNIX, использованы соглашения, принятые в PalmOS (изменения в системе типов — UInt32, Int16 и проч. вместо DWord, Long, Int, Byte и проч.).

Переработана функция сохранения изображения в формате JPEG (корпус и проч.), на место вернули «корпус» от CoPilot, ROM Transfer загружал ПЗУ полностью, а не только область BigROM, POSE научился корректно работать с Visor, в версии для Windows появилась поддержка TRGpro (работа с подсистемой CompactFlash, в меню моделей TRGpro не было, но можно было создать аналог, запустив подсистему FFS), POSE перенаправлял вызовы функций FFS на файловую систему ПК (корневой каталог задавался в строке FfsHome в файле параметров POSE), поддержка для Visor (без USB, POSE не мог сохранять ПЗУ по USB, синхронизироваться и проч.).

Исправлена проблема в профилировщике (слишком маленький буфер для названий функций), из названий функций удален абсолютный адрес (мешал работе CodeWarrior Profiler). В редакции для Windows в «автономных версиях» POSE отключили пункта Close в системном меню (эта возможность есть в меню POSE) и реализована команда Save Screen, решены некоторые проблемы с меню в POSE для UNIX. Реализована эмуляция звуковой подсистемы, решены некоторые проблемы в подсистеме перенаправления NetLib (с accept() и select()), с определением скорости передачи при работе UART (в результате которой не работала связь на 20-МГц Palm Vx).

6 марта
POSE 3.0a5 (опять несколько подверсий). Переработана подсистема обработки «ЦП», метод эмуляции Dragonball разных серий, вместо использования условных операторов создана иерархия классов эмуляции ЦП EmRegs (базовый), EmRegs328 (эмуляция общих компонентов для Dragonball 68328), EmRegs328Pilot, EmRegs328PalmPilot и проч. (эмуляция ЦП заданных моделей), EmRegsEZ (абстрактный класс для эмуляции общих компонентов Dragonball EZ), EmRegsEZPalmIIIx, EmRegsPalmV и проч. (эмуляция заданных моделей с ЦП Dragonball EZ).

Реализованы некоторые средства эмуляции модели Symbol 1700, но аппаратные средства (например, интегрированный сканер штрих-кода) не имитировались. Переделана подсистема эмуляции последовательного порта (решены проблемы с работой в UNIX при использовании псевдоустройств, работой на Palm VII), исправлена ошибка «Гремлинов» (при загрузке параметров, после перезапуска сеанса, обработкой клавиш, синхронизацией часов). Исправлены некоторые «аппаратные» проблемы, решены проблемы с настройкой параметров записи в журнал при работе в UNIX. Реализована проверка регистра счетчика команд и указателя вершины стека при обработки инструкции TRAP $F. Переработана документация (появился файл UsingPOSE.pdf, описание использования Network HotSyncing с POSE, инсталляции подсистемы работы с FAT TRGpro). Переработана подсистема перехвата событий пера (кроем функции SysEventGet, перехватывается и функция EvtSysEventAvail), некоторые системные исправления, в среде Windows появилась возможность минимизировать окно POSE нажатием клавиши и поменялись местами пункты меню About и Exit. Упрощены диалоги Skins и Gremlins. Реализован «корпус» для Palm IIIc (в Color Device было переименовано в Palm IIIc), в версии для UNIX появился пункт меню File/Save, решена проблема при загрузке файла .psf (два раза инициализировался последовательный порт). В редакции для Windows исправлена проблема с палитрой при отображении «корпуса», изменена работа функции SndInit.

Появилась возможность компилировать POSE в среде Solaris 2.6 (с gcc), в редакции для UNIX при переключении изображения «корпуса» меняется и размер окна. Несколько переработан диалог экспорта.

19 апреля
POSE 3.0a6. Реализована возможность задавать каталог POSE в переменной POSER_DIR (UNIX). Файлы с изображения корпуса перенесены в отдельные файлы, переработка этой подсистемы потребовала создания независимой от платформы подсистемы работы с файлами. Исправлена функция SndDoCmd. Программа Binder перенесена в POSE (пункт Save Binding Emulator), исправлена сетевая подсистема, переработана подсистема эмуляции ОЗУ (POSE некорректно работал на Macintosh с 256-Мбайт ОЗУ) и документация.

Реализована проверка работы с разделяемыми библиотеками.

В редакции для UNIX в редакции для UNIX реализована обработка каталогов AutoLoad, AutoRun и AutoRunAndQuit, решена проблема с аварийным завершением POSE при загрузке файлов .prc в среде Sparc, обработкой кликов на неактивных элементах окна (на «корпусе» за пределами экрана и не на одной из виртуальных кнопок), отображением последовательности диалогов. Функция загрузки ПЗУ научилась работать с ПЗУ PalmOS 3.5, переработана сетевая подсистема (решена проблема с Network HotSync), средства поддержки BSD 4.1, решены проблемы, связанные с диалогом переключении «корпуса», файловыми диалогами, загрузке файлов .psf. Отключена проверка доступа к памяти для функции PalmOS OS 3.3 (PrvConvertDepth1To2BW, к системным переменным для TsmGlueGetFepMode и TsmGlueSetFepMode, переработана подпрограмма проверки состояния регистра команд (ранее мог указывать на любую область адресного пространства, включая регистры ЦП, теперь — ОЗУ/ПЗУ), появилась функция HostFFlush, которая позволяла «сбросить» на диск журнал работы, переработаны исходные тексты подсистемы «Гремлинов» (в основном, на предмет переносимости). В POSE для Windows исправлена ошибка при создании нового сеанса при работе в командной строке, загрузкой параметров из файла. Функция ROM Transfer переработана с тем, чтобы использовать ее с ПЗУ от PalmOS 3.5 и решена проблема работа с ПЗУ PalmOS 1.0, с загрузкой ПЗУ из Palm V с PalmOS 3.3. Переработана подсистема работы с структурами данных PalmOS, сетью.

7 августа
POSE 3.0a7. Поддержка Palm m100 и Palm VIIx. Реализованы новые и переработаны существующие функции HostControl, переделана система именно, подсистема сеансов переработана с учетом функций HostControl (при перезагрузке корректно закрываются файлы, открытые HostControl, освобождается память, удаляются ссылки на каталоги, строковые переменные и проч.). Реализован диалог Card Options, исправлена ошибка при работе с MemHandleNew/MemHandleFree, функции TsmGlueGetFepGlobals предоставлена возможность безнаказанно работать с нижней памятью ;-), решены проблемы в сетевой подсистеме (с NetLibSocketOptionGet, NetLibSendPB).

Переработана внутренняя архитектура (появились классы EmPoint, EmRect, EmRegion, EmRefCounted, EmRefCounter и EmPixMap), на базе этих классов была переработана подсистема эмуляции дисплея (для увеличения уровня абстракции от реализации видеопамяти, упрощения переноса на другие платформы, ускорения и проч.). реализованы классы EmDlg::DoGetFile, DoGetFileList, DoPutFile и DoGetDirectory и они же использованы в POSE. Исправлена проблема, связанная с компиляцией POSE в gcc (некоторые операторы gcc воспринимал не как 0, а как объявление динамического массива, соответственно, пропускал потенциальные ошибки при компиляции; в итоге, проблемы были исправлены так, что по словам автора, «на такое объявление ругается даже gcc» ;-), в результате — истреблено достаточно много ошибок).

В редакции для UNIX при компиляции активирован параметр -fexceptions, реализована функциональность пункта меню Save Screen (картинка сохраняется в файлы .ppm), использован элемент управления Easy Software FileChooser, переработан файл EmulatorTypes.h (UNIX), компилируется с параметром gcc -fpermissive. Реализована обработка некоторых команд в сценарии настройки POSE, проблемы с копированием ПЗУ, реализованы средства динамической проверки параметра socklen_t.

Исправлена функция TblHandleEvent (для обхода ошибки в PalmOS 3.5), выключен контроль доступа к памяти для функции NetLibBitMove. Переработана подсистема управления системной памятью PalmOS и доступа к глобальным переменным (основан на классе EmPalmStructs), индикатор прогресса (изменился вид, заработала кнопка отмены, реализован в UNIX).

Реализована запись в журнал действий Exchange Manager. Диалог запуска переделан на базе классов, которые одинаково работают на любой платформе. Решена проблема в отсутствием перерисовки экрана при выключении/включении POSE при работе с ПЗУ Palm IIIc. При вводе с клавиатуры ПК, учитывается состояние клавиш регистра. Переработан диалог New Session, подсистема обработки событий от пера, подсистема эмуляции ЦП и регистров аппаратных средств, реализованных в конкретной модели (регистры, связанны с контроллером USB в Visor, в Palm VII — с коммуникационной подсистемой, в Symbol — с ASIC этой модели, отдельными регистрами ЦП EZ).

«Пойман» целый класс проблем, когда POSE не обнаруживал порчу содержимого счетчика команд, исправлены проблемы создания двоичного файла профилировщика (файл, созданный в Windows не обрабатывался на Macintosh). Подавляется некорректное сообщение об ошибке, которые выдает Field Manager в PalmOS 1.0-3.2. В версии для Macintosh исправлена ошибка создания файлов функцией HostFOpen, обновлены файлы проектов для Macintosh CodeWarrior 5.3 (IDE 4.0.4), исправлена проблема при попытке послать электронную почту по ссылке из диалога About. Исправлены ссылки (теперь указывают на www.palmos.com).

17 ноября
3.0a8. Реализована поддержка ЦП Dragonball VZ, цифро-аналогового преобразователя (ADS7843), еще раз исправлена проблема с неперерисовкой дисплея Palm IIIc. Корректно работают клавиши-модификаторы (разработчики позабыли перенести функцию из версии для Windows в POSE для Macintosh и UNIX).

В POSE для UNIX исправлена ошибка сохранения экрана (можно было сохранить картинку только в существующий файл), реализована функция загрузки нескольких файлов .prc, обработки меню «Гремлинов» в процессе из работы, работы с диалогами загрузки файлов.

Исправлена ошибка работы с последовательным портом при загрузке ПЗУ от Palm VII и Palm VIIx (EZ), реализована поддержка бита RTS_CONT в регистре UART Dragonball и несколько переработана подсистема эмуляции последовательного порта. Решена проблема с переполнением стека в PalmOS 3.3, «переназначением» клавиш на специальные сочетания росчерков Graffiti.

Исправлена проблема с индикатором прогресса, «засыпания» POSE при работе с PalmOS 1.0, запуском POSE (в Windows), ошибки в подсистеме контроля доступа к памяти, обработкой защищенных соединений с Интернет. Исправлены ошибки в отладчике Palm Debugger (fb, fw, fl и ft, удалением контрольных точек, переработаны функции HostFSetPos и HostFGetPos. В POSE перенесены средства поддержки TRGpro.

Переработана подсистема эмуляции ЦП и управлениями сеансами, вместо одной глобальной подсистемы, которая обеспечивала создание, загрузку, сохранение, перезагрузку и удаление сеансов, эмуляцию систему команд Dragonball, средства контроля доступа к памяти и структурам данным PalmOS (при этом, интерфейс работы с этой подсистемой разнился для платформ, поддерживающих многопоточность и не поддерживающих) реализовано несколько блоков — создание сеансов и эмуляция ядра ЦП (EmSession), эмуляции конкретных ЦП (класс EmCPU и подклассы EmCPU68K), работы со памятью и системными данными PalmOS (EmPalmOS). Появилась возможность упростить перенос POSE и даже эмуляции других ЦП (например, ARM) или ОС (Linux, будущие редакции PalmOS).

В редакции POSE для UNIX исправлены проблемы с отрисовкой дисплея при отключении устройства, отображением сообщений об ошибках.

Решены проблемы с сохранением предпочтений сетевой подсистемы, загрузкой ПЗУ из Palm VIIx (подпрограмма идентификации ПЗУ ошибалась и загружала ПЗУ не полностью). В POSE для Windows исправлена ошибка с работой диалога параметров журнала. Отключена проверка доступа к памяти для функции dns_decode_name (она могла считывать информацию вне буфера), переработана подсистема «автозапуска» (при использовании режима AutoRunAndQuit POSE определял факт завершения программы, отслеживая функции SysUIAppSwitch, SysAppLaunch, SysAppStartup и SysAppExit, теперь он просто контролировать cardNo и dbID программы в SysAppExit). Исправлены проблемы при работе с журналом с японским ПЗУ (не обрабатывался порядок следования байтов, программа пыталась найти результат по неправильному адресу), исправлены ошибки при вызове функций PalmOS (POSE мог аварийно завершаться при обработке вызова RPC, например, hd 3 в PalmDebugger и запуске функции PalmOS в обработчике перехваченной функции; все еще не обрабатывается ситуация с запуском функции PalmOS из потока работы с UI, например, при создании списка программ для «Гремлинов»).

Переработан алгоритм обработки аппаратных исключений, реализованы две функции HostControl (HostProfileGetCycles и HostSaveScreen, на Macintosh), исправлена ошибки в подсистема контроля памяти (POSE иногда некорректно выдавал диалог об ошибке работы с памятью), ошибка доступа к памяти по адресу 0xFFFFFFFF (POSE аварийно завершался), проблема с загрузкой файлов .pdb, когда некорректно обрабатывалась ситуация отсутствия записей в заголовке (appInfo).

Страница 1 2 3 4 5 6 >>

РекламаRambler's

Allbest.ru

RB2 Network

RB2 Network
--

Просим при воспроизведении материалов этого сайта, делать ссылку на Зоопарк ручных компьютеров
Copyright © 1999-2000 Зоопарк ручных компьютеров