Правила эксплуатации зеркального фотоаппарата кэнон

Среда разработки Watcom C

C++Watcom C++GNU C/C++Watcom C++Watcom C++

  • GNU C++ больше используется для написания операционных систем на базе ядра UNIX, и у него есть свой, специфический синтаксис. Во-вторых, ассемблерные вставки в этом языке UNIX-стандарта, что, конечно, приводит к некоторым неудобствам, допустим, при переносе какого-либо кода из уже написанных программ под MS-DOS.
  • Watcom C++ прекрасно генерирует 32-битный код, при чём с превосходной оптимизацией. В этом можно убедиться, допустим, дизассемблировав полученный исполняемый файл. Конечно, у оптимизации есть свои «подводные камни», которые будут обязательно рассмотрены в статьях, по чему можно будет сделать вывод: «Самая лучшая оптимизация не всегда самая качественная». Но по некоторым параметрам Watcom C++ проигрывает в оптимизации GNU C++.
  • Для Watcom C++ очень легко пишется startup-код (код запуска системы), однако, как всякому системному программисту, нам придётся отказаться от стандартных библиотек.
  • Код других компиляторов хорошо переносится на Watcom C++. Достаточно привести пример, что код на Borland C++ вносится в проект и компилируется с незначительными изменениями текста программы.
  • У Watcom C++ есть собственный (конечно, не совсем удобный) редактор кода. Конечно, можно написать свой компилятор языка C++, но это будет титаническим трудом, нежели воспользоваться разработками целых компаний.

Рекомендуемая литература

  1. Зубков С.В. Assembler для DOS, Windows и UNIX. ― М:. ДМК Пресс, 2000. ― 608 с.: ил. (Серия «Для программистов»).
  2. Юров В.И. Assembler. Учебник для вузов. 2-е изд. ― СПб.: Питер, 2004. ― 637 с.: ил.
  3. Финогенов К.Г. Основы языка Ассемблера. ― М.: Радио и связь, 2000. ― 288 с.: ил.
  4. Страуструп Б. Язык программирования C++, 3-е изд./Пер. с англ. ― СПб.; М.: «Невский диалект» ― «Издательство БИНОМ», 1999 г. — 991 с., ил.
  5. Фридман А.Л. Основы объектно-ориентированного программирования на языке Си++. ― М.: Горячая линия ― Телеком, Радио и связь, 1999. — 208 с.: ил.

Новый режим интерфейса

У конфигурации появилось новое свойство — «Режим использования модальности». Именно оно и определяет, в каком режиме работает конфигурация:

  • «Не использовать» — это новый, немодальный режим работы. Для новых конфигураций это стандартный режим;
  • «Использовать с предупреждением» — этот режим предназначен для разработчика. Он не препятствует использованию модальных окон, но каждый раз, когда открывается модальное окно, выдаёт предупреждающее сообщение. Пример использования этого режима есть в разделе ;
  • «Использовать» — режим, обеспечивающий совместимость новой версии платформы со старыми конфигурациями, работающими в модальном режиме.

Проверка возможности перехода в защищённый режим

V86WindowsWindowsMS-DOS9xNT

  1. проверить нулевой бит регистра CR0;
  2. убедиться, что не загружена операционная система Windows.

CR0EAXAXAL1600h2FhWindowsAL
Код (ASM):

  1. use16
  2. org 100h
  3. start
  4. ; Настроить сегментные регистры
  5. mov ax, cs     ;*
  6. mov ds, ax     ;*
  7. ; Проверка того, что мы действительно в реальном режиме
  8. mov eax, cr0  ;* проверка нулевого бита
  9. test al, 1        ;* регистра CR0
  10. jz    no_pm     ;*
  11. ; Вывести сообщение об ошибке
  12. mov ah, 9       ;* функция DOS 09h
  13. mov dx, pm_msg ;* вывод строки
  14. int   21h            ;*
  15. ret                    ;* и выйти
  16. no_pm
  17. ; Проверка: не запущена ли программа под Windows
  18. mov ax, 1600h     ;* функция 1600h мультиплексорного
  19. int   2Fh              ;* прерывания — получить версию Windows
  20. test al, al            ;* если не 0 — ошибка
  21. jz    no_windows
  22. ; Вывести сообщение об ошибке
  23. mov ah, 9       ;*
  24. mov dx, win_msg ;*
  25. int   21h             ;*
  26. ret                    ;*
  27. no_windows
  28. ; Мы точно находимся в реальном режиме
  29. ; Запретить маскируемые прерывания
  30. cli
  31. ; Запретить немаскируемые прерывания (NMI)
  32. in   al, 70h
  33. or   al, 80h
  34. out 70h, al
  35. ; Открыть линию A20
  36. in   al, 92h
  37. or   al, 2
  38. out 92h, al
  39. ; Переключиться в защищённый режим
  40. mov eax, cr0
  41. or    al, 1
  42. mov cr0, eax
  43. ; Теперь находимся в защищённом режиме
  44. ; Небольшой двойной цикл
  45. mov cx, 20
  46. cycle
  47. mov ax, cx
  48. or cx,-1
  49. loop $
  50. mov cx, ax
  51. loop cycle
  52. ; Переключиться в реальный режим
  53. mov eax, cr0
  54. and  al, 0FEh
  55. mov cr0, eax
  56. ; Закрыть линию A20
  57. in    al, 92h     ;*
  58. and al, 0FDh    ;*
  59. out  92h, al     ;*
  60. ; Разрешить немаскируемые прерывания (NMI)
  61. in    al, 70h    ;*
  62. and al, 7fh     ;*
  63. out 70h, al     ;*
  64. ; Разрешить маскируемые прерывания
  65. sti ;*
  66. ; Мы снова находимся в реальном режиме
  67. ret ; завершить программу
  68. ; Сообщения об ошибках
  69. pm_msg ;*
  70. db «Error: already running in protected mode!$» ;*
  71. win_msg ;*
  72. db «Error: Microsoft Windows detected!$» ;*

DOSint 21hMS-DOSBIOS

Сегментация памяти в защищённом режиме. Дескрипторы. Таблицы дескрипторов. Часть 3

Рисунок 11. Формат селектора
TITable IndicatorGDTGlobal Descriptor TableLDTLocal Descriptor Table80286RPLRequested Privilege Level
Рисунок 12. Формат сегментного дескриптора
База Лимит G Granularity202012D/B

  • 0 – сегмент 16-разрядный,
  • 1 – сегмент 32-разрядный (этот флаг ещё называют BIG).

53AVLAvailableDPLDescriptor Privelege LevelRPLDPLSSSystemS
Рисунок 13. Поле «тип сегмента» сегмента данных

Рисунок 14. Поле «тип сегмента» сегмента кода
АAccessed

  1. Флаг D задаёт направление роста сегмента (Direction). Обычно, если D=1, то выбранный сегмент является сегментом стека и растёт «задом наперёд». Если же D=0, то выбранный сегмент является сегментом данных. На самом деле, значение D=1 практически не используется.
  2. Флаг W определяет возможность записи в сегмент (Writable). То есть, сброшенный флаг указывает, что сегмент данных доступен только для чтения. Если флаг установлен, то сегмент доступен также и для записи.
  1. Бит C называется битом подчинения (Conforming), но рассмотрен он будет позже.
  2. Флаг R указывает на доступность сегмента кода для чтения (Readable). То есть, если флаг сброшен, читать из сегмента кода нельзя.

P, DPL, SLocal Descriptor TableInterrupt Descriptor TableGlobal Descriptor TableGDTLDT GDT LDT GDT
Рисунок 15. Структура таблиц дескрипторов
400h400hIntel80286GDTRGDTLDTRLDTIDTRIDTGDTRLDTRLDTRLDTGDTGDTRIDTR
Рисунок 16. Структура данных регистров GDTR и IDTR

S-режим в Windows 10

Особенности

Кстати, чтобы уточнить точно ли у вас включен S mode — достаточно зайти в свойства системы (сочетание клавиш Win + Pause Break).

Сведения о системе / ноутбук от ASUS

Минусы

1) Программы

Windows 10 S позволяет загружать и устанавливать программы только из официального магазина Store. Разумеется, это накладывает серьезные ограничения!

2) Драйвера

Придется пользоваться только теми драйверами, которые подберет и установит сама ОС. Все бы ничего, но эти «стандартные» драйвера часто не обладает всеми теми функциями, которые дают «родные».

3) Антивирусы

Вся защита ложится на плечи Windows Defender (защитника). О его уровне безопасности, думаю, лишний раз повторятся нет смысла?

4) Поисковые системы

Нет возможности поменять браузер Microsoft Edge и поисковую систему Bing. Это может серьезно накладывать ограничения на удобство использования устройством (нет, конечно, зайти на сервисы Google — ничто не мешает, но вот поставить его поисковиком по умолчанию — почему-то не получается…).

Плюсы

1) Скорость работы

Благодаря различным ограничениям, нельзя не отметить, что ОС в данном режиме работает заметно быстрее (особенно загрузка).

2) Совместимость

Практически отсутствуют различные ошибки, сбои и пр. Разумеется, если драйвера идут только стандартные (с цифровыми подписями) и приложения из Store (многократно проверенные) — то это неудивительно…

3) Относительная безопасность

Обеспечивается благодаря тому, что запрещено устанавливать софт не из Store (примечание: просто как показывают данные статистики, то почти половина случаев заражения ПК вирусами происходит из-за установки «серого» софта).

Как отключить S-режим в Windows 10 Home

1) Сначала открываем параметры Windows (можно либо через ПУСК, либо с помощью сочетания Win+i).

Параметры

2) Далее нужно перейти в раздел «Обновление и безопасность» («Update and Security»).

Update and Security (Обновление и безопасность)

3) В подразделе «Активация» («Activation») вы увидите версию своей ОС (Home, Pro, например) и сможете найти ссылку в магазин «Store» — именно с помощью него и происходит отключение (см. подраздел «Switch to Windows 10 Home» / «Переключить в Windows 10 домашнюю»).

Активация (Activation)

4) Далее просто нажмите кнопку «GET» (получить).

Выйти из режима S

5) Собственно, и все. Отключение S mode занимает не более 1 мин. Далее, зайдя в свойства системы (Win + Pause Break), вы увидите, что версия ОС была изменена (стало все по-обычному ).

Задача выполнена

6) Да, кстати, теперь можно приступить к установке любых приложений (так, как вы это делали ранее).

Дополнения приветствуются…

Удачной работы!

RSS
(как читать Rss)

Поиск модальных методов

Существует несколько инструментов, которые позволяют найти модальные вызовы конфигурации. Некоторые из этих инструментов позволяют также оценить возможность автоматического преобразования этих вызовов.

В режиме 1С:Предприятие

Для того чтобы прямо в пользовательском режиме увидеть модальные вызовы конфигурации можно использовать свойство конфигурации «Режим использования модальности». Его нужно установить в значение «Использовать с предупреждением». Тогда в процессе работы прикладного решения будут выводиться сообщения каждый раз, как выполняется модальный метод. Но работе приложения это препятствовать не будет:

Проверка конфигурации в режиме Конфигуратор

Можно найти все методы, открывающие модальные диалоговые окна. Для этого нужно выполнить проверку конфигурации с установленным флажком «Поиск использования модальности».

Проверка конфигурации — Расширенная проверка — Поиск использования модальности:

Результат проверки будет выдан в окно служебных сообщений, из которого можно сразу же перейти в модуль, в котором находится данный метод:

Нужно отметить, что эта проверка обнаруживает не все возможные модальные вызовы, а только те, которые можно определить «наверняка». То есть это модальные методы глобального контекста и модальные методы тех объектов, тип которых однозначно определён в анализируемом контексте.

Поэтому, например, в приведённом примере проверка не обнаруживает модальное открытие диалога выбора цвета во вложенной процедуре. В контексте этой процедуры тип переменной «Диалог» неизвестен.

Проверка одного модуля

Можно найти все модальные вызовы в каком-либо одном модуле (начиная с версии 8.3.5). Для этого нужно открыть этот модуль и выполнить команду контекстного меню «Рефакторинг — Модальные вызовы — Найти модальные вызовы модуля» (эти же команды доступны из меню «Текст»):

В этом случае будут найдены все строки кода, которые приводят или могут привести к открытию модальных окон. В том числе и те строки, где открытие модального окна возможно, если объект имеет определённый тип:

Например, во вложенной процедуре в данном примере действительно будет открыто модальное окно для выбора цвета.

Если бы во вложенную процедуру в переменной «Диалог» передавалась бы выборка справочника, то, естественно, никакого модального вызова не было бы. Однако проверка всё равно отметила бы эту строку как «потенциально опасную».

Поэтому окончательное решение в таких случаях нужно принимать на основе визуального анализа алгоритма и типов используемых объектов.

Поиск с анализом возможности автоматического преобразования

Можно не только найти все модальные вызовы, но и оценить возможность их автоматического преобразования (начиная с версии 8.3.5). Оговоримся, что автоматическое преобразование выполняется не во всех случаях, подробнее об этом можно прочитать в разделе .

Анализ модальных вызовов выполняется для всей конфигурации командой «Конфигурация — Рефакторинг — Анализ модальных вызовов конфигурации»:

Перед выполнением анализа можно задать параметры. Они позволяют уточнить анализ и одновременно с анализом выполнить преобразование:

Со стандартными значениями (если ничего не менять) буду найдены только те вызовы модальных методов, которые удалось определить однозначно:

Если установить флажок «Отображать методы объектов неопределенного типа», то тогда будут показаны и те методы объектов, которые потенциально могут привести к открытию модальных окон. Это могут быть действительно модальные вызовы, а может быть и нет. Всё зависит от типа объекта, который нужно определять визуально, анализируя код программы:

В любом случае (с теми или иными параметрами анализа) результат будет содержать подробную информацию по каждому вызову с комментарием:

Вызовы, имеющие отметку «Может быть преобразован», поддаются автоматическому преобразованию, которое выполняется этой же командой (нужно установить соответствующий флажок). Подробнее можно прочитать в разделе .

С теми вызовами, про которые сказано, что они «Требуют дополнительных изменений», нужно разбираться вручную. Тут сложно описать все возможные ситуации, но по некоторым типичным сообщениям можно дать примеры.

  • «Принадлежность не определена» — суть проблемы описана в разделе . Вы должны самостоятельно определить тип объекта и на основании этого понять, приводит ли его метод к модальному вызову, или нет.
  • ;
  • «Не поддерживается для процедур и функций глобального контекста» — суть проблемы описана в разделе . Нужно вручную определить модуль, в котором будет располагаться обработчик оповещения.
  • ;
  • ;

Общие замечания

Переделка имеющихся конфигураций для работы в режиме без использования модальности сводится к трём этапам:

  • Первый этап — это поиск модальных вызовов и оценка возможности их преобразования;
  • Второй этап — автоматическое преобразование модальных вызовов;
  • Третий этап — полуавтоматическое преобразование тех модальных вызовов, которые невозможно преобразовать автоматически. Либо изменение алгоритма с целью вообще отказаться от использования таких вызовов (если преобразование оказывается слишком сложным и трудоёмким).

Далее мы рассмотрим все три этапа по-порядку. Какие инструменты можно использовать, какие рекомендации можно дать.

Настройка фотокамеры

Рассмотрим пару вариантов. Для удобства они сведены в таблицы 1 и 2.

Важно, что каждый фотограф может создать свои собственные настройки, которые будут идеальны для его творческой манеры

Настройки фотокамеры. Вариант 1

Таблица 1

Режим съёмки

Вариант настройки и регулировки

Особенность применения

P

Регулируется экспокоррекция

Основной режим съёмки

S или Tv

Установлена выдержка 1/30..1/125 с. Регулируется экспокоррекция и, если надо, выдержка

Съёмка текущей воды, фонтанов и т.п.

A или Av

Диафрагма прикрыта на 1..2 деления. Регулируется экспокоррекция и, если надо, диафрагма

Съёмка портретов на нерезком фоне

M

Диафрагма f:5.6..f:16. Регулируется выдержка и, при необходимости, диафрагма

Съёмка силуэтов на фоне неба, восхода, заката, в арках, напротив окна и т.п.

Вариант 1. Порядок работы с настройками

Перед съёмкой, например перед прогулкой по городу, фотограф настраивает свою фотокамеру, например, в соответствии с Таблицей 1.
Порядок работы с подобными настройками чрезвычайно прост. Основную съёмку фотограф производит с рук в режиме съёмки программа P.

Если его внимание привлёк какой-нибудь фонтан, то простым переключением фотограф перестраивает фотокамеру в режим съёмки S или Tv, а там заранее установлена подходящая выдержка. Осталось сделать нужное количество кадров в ландшафтной и портретной ориентации, с разных ракурсов и точек съёмки

После фотограф вновь переводит свою камеру в программный режим P.

Соответственно, желая поснимать портреты людей, фотограф переводит камеру в режим съёмки A или Av, в котором у него заранее выставлена необходимая диафрагма.

После фотограф вновь переводит свою камеру в программный режим P.

Увидев интересный силуэт, фотограф переводит камеру в ручной режим M, возможно несколько корректирует выдержку и производит съёмку.

Силуэт получается в случае, если фон и объект съёмки получают разную экспозицию. Разница должна быть существенной. Можно воспользоваться материалом Зонная таблица экспозиционных поправок

После фотограф вновь возвращается в программный режим P.

Настройки фотокамеры. Вариант 2

Таблица 2

Режим съёмки

Вариант настройки и регулировки

Особенность применения

P

Регулируется экспокоррекция

Основной режим съёмки

S или Tv

Установлена выдержка 1/1000 с или короче. Регулируется экспокоррекция и, если надо, выдержка

«Замораживание» движения при съёмке подвижных объектов

A или Av

Максимально открытая диафрагма. Регулируется экспокоррекция и, если надо, диафрагма

Выделение резкостью главного объекта съёмки

M

Диафрагма f:8..f:11, выдержка соответствует правильной экспозиции. Регулируется выдержка и, при необходимости, диафрагма

Получение снимков с максимальной глубиной резко изображаемого пространства ГРИП

Вариант 2. Порядок работы с настройками

Перед съёмкой, например перед прогулкой по городу, фотограф настраивает свою фотокамеру, например, в соответствии с Таблицей 2.
Порядок работы с подобными настройками чрезвычайно прост. Основную съёмку фотограф производит с рук в режиме съёмки программа P.

Если требуется «заморозить» движение на снимке, то простым переключением фотограф перестраивает фотокамеру в режим съёмки S или Tv, а там заранее установлена подходящая выдержка. Осталось сделать нужное количество кадров.

После фотограф вновь переводит свою камеру в программный режим P.

Если сюжет требует выделения резкостью важной детали, то фотограф переводит камеру в режим съёмки A или Av, в котором у него заранее выставлена полностью открытая диафрагма. После фотограф вновь переводит свою камеру в программный режим P

После фотограф вновь переводит свою камеру в программный режим P.

Увидев интересный сюжет, требующий большой глубины резкости ГРИП, фотограф переводит камеру в ручной режим M, возможно несколько корректирует выдержку и производит съёмку.

После фотограф вновь возвращается в программный режим P.

Плюсы использования всех режимов съёмки P S A M

  • Отличная приспособленность для съёмки с рук, в путешествии, на прогулке, в условиях дефицита времени на съёмку.

  • Быстрота перестройки камеры под разные съёмочные задачи, возникающие при чередовании сюжетов.

  • Простота использования и легкость освоения, рост качества фотографий.

  • Независимость настроек различных режимов.

  • Готовность камеры для съемки «навскидку».

  • Снимки получатся даже в том случае, если фотограф забудет переключиться и останется в программном режиме P.

Минусы использования всех режимов съёмки P S A M

Не заменяет полноценной работы над сюжетом.

Предисловие

IBM PCIntelAssemblerC++Введениеx86Intel

  • В 1971 году был выпущен первый процессор 4004, не получивший широкого распространения из-за малого набора команд.
  • В 1974 году появился широко распространённый по сей день процессор 8080. Но если в то время процессор управлял компьютером ZX-Spectrum, то на сегодняшний день его можно встретить в различных бытовых устройствах.
  • В 1978 году компания Intel выпустила революционный процессор 8086, положивший начало дальнейшему прогрессивному развитию компьютерной техники.
  • В 1985 году компания Intel сделала прорыв, выпустив процессор 80386. В нём была впервые реализована 32-битная шина данных и реализована полная поддержка так называемого «защищённого режима» работы процессора, о котором и пойдёт в дальнейшем речь.
  • Но нельзя считать, что «защищённый режим» появился в 386-ом процессоре. Впервые он был реализован в его предке ― Intel 80286, но его недостатками были сложность реализации и наличие множества недоработок. Появление процессора 80386 знаменовало, что пришло время многозадачных программ и операционных систем.

IntelAMD80486, Cyrix x586, AMD K5, Intel Pentium, Intel Pentium Pro, AMD K6, Intel Pentium 2, AMD K7, Intel Pentium 3, Intel Pentium 4, Intel Celeron, AMD Athlon, AMD Duron80386IA32Intel Architecture 32AMDIntelIntel ItaniumIntel Extended Memory 64 TechnologyAMD Athlon 64AMD 64 TechnologyIA32защищённого режима80386защищённого режимазащищённый режимIntel 80386

  • Работа с памятью, большей 1 мегабайта, и возможность реализации виртуальной памяти, общий объём которой достигает 64 терабайт.
  • Механизм защиты памяти, который позволяет приложениям работать только с выделенной для них областью памяти.
  • Многозадачность, то есть организация одновременного выполнения нескольких программ или процессов, запущенных на компьютере.

8086ИнструментарийWatcom C++IDAЯзык программирования AssemblerAssemblerMASMMacro AssemblerMicrosoftTASMTurbo AssemblerBorlandWASMWatcom AssemblerWatcomAssemblerInternetFASMFlat AssemblerFASMOpenSourceWASMWatcom C++

  • fasm.exe ― компилятор языка FASM.
  • wasm.exe ― компилятор языка WASM.
  • wlink.exe ― компоновщик языка WASM.

ДизассемблерInteractive Disassembler ProIDA

ОтладчикTurbo DebuggerBorland

Режим приоритета выдержки

Этот творческий режим пригодится, если вы захотите «уловить» движение. Например, вам необходимо снять несущейся по трассе спортивный болид. Установите короткую выдержку (1/400 или 1/900), а аппаратура подберет подходящее значение диафрагмы (так как она в приведенном примере отходит на второй план). В итоге вы гарантированно получаете хороший снимок.

Или наоборот, чтобы придать любой движущейся воде на фотографии особый эффект, следует увеличить выдержку.

Приоритет выдержки также отлично себя показывает при фотографировании активных детей и подвижных животных — с ними всегда нелегко при фотосъемке. Просто выставляете короткую выдержку, тем самым исключая «смазы» на снимке.

Основная идея при фотографировании использовать все четыре режима съёмки P S A M

Основная идея при фотографировании в путешествии чрезвычайно проста. Надо использовать все четыре режима съёмки P S A M.

Эта идея базируется на том, что часть настроек камеры являются общими для всех режимов съёмки, а часть – присуща только конкретному режиму.

Общими являются такие важные настройки как, например, формат сохраняемых файлов. Одни камеры могут сохранять фотографии только в формате JPEG, другие в JPEG или в RAW, третьи позволяют выбрать JPEG, RAW или JPEG+RAW.

Часть настроек присуща конкретному режиму и этим следует воспользоваться для повышения оперативности съёмки.

Естественно варианты настройки камеры могут отличаться. Это зависит от пожеланий фотографа.

Универсальность подобной идеи заключается в том, что она применима практически к любым современным цифровым фотокамерам, в которых предусмотрены режимы съёмки P S A M.

При этом неважно, какую камеру использовать. Это может быть компактная камера, беззеркальная камера или же цифровой зеркальный фотоаппарат

Смысл применения такого подхода к съёмке состоит в том, чтобы не сбивать настройки других режимов в случае чередования сюжетов.

Основная идея при фотографировании в путешествии чрезвычайно проста.Надо использовать все четыре режима съёмки P S A M

Смысл применения такого подхода к съёмке состоит в том,
чтобы не сбивать настройки других режимов при чередовании сюжетов

Важно каждый раз возвращать камеру в программный режим съёмки P

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *