Иллюстрированный самоучитель по Kylix

Для начала, небольшой исторический экскурс в историю языка Pascal.
Исторически первый, недоступный широкой аудитории технический отчет языка Pascal был сделан Швейцарским федеральным технологическим институтом ЕТН (Eidgenoessische Technische Hochschule) в ноябре 1970 года. Официальной же датой рождения языка считается начало 1971 года, когда вышеупомянутый отчет был перепечатан в первом номере журнала Acta In-formatica. Автором языка является швейцарский профессор Никлаус Вирт (Niklaus К. Wirth).
Во время активного использования языка наблюдалось острая конкуренция с языком С. Большую роль в массовом распространении языка Pascal сыграла компания Borland, создавшая версию Тurbo Раsсаl. После этого уже стали появляться многочисленные модификации: в версии 3.0 появилась возможность работы со встроенной графикой, в версии 4.0 — модули, в версии 5.5 — возможность работы с объектами. Версия 7.0 поменяла название и стала называться Borland Pascal. Наконец, при появлении Delphi язык стал называться Object Pascal. Среда Kylix также использует язык Object Pascal.

Общий обзор языка
Эта глава представляет обзор типов данных, которые имеются в языке Object Pascal. Мы рассмотрим как простые типы данных, так и структурные, вариантные и процедурные типы данных. Кроме того, кратко остановимся на указателях. Object Pascal представляет собой строго типизированный язык, который требует особого внимания при объявлении и использовании переменных, процедур и функций.

Примеры создания приложений баз данных
В Kylix нет стандартных компонентов для создания многих локальных баз данных. Связано это с тем, что такие форматы данных являются отмирающими, тем более что преобразование их в формат XML не вызывает больших затруднений. Базы данных типа MyBase предоставляют программисту дополнительные возможности.

Параметры и аргументы
Параметры — это элементы подпрограммы, которые используются при описании блока подпрограммы. Аргументы — это элементы, которые указываются при вызове подпрограмм. Они замещаются соответствующими параметрами подпрограммы. В качестве параметров могут выступать: значения; константы; переменные. Параметрами могут быть элементы абсолютно любого типа.



Справка по Ассемблеру для AVR

Компилятор транслирует исходные коды с языка ассемблера в объектный код. Полученный объектный код можно использовать в симуляторе ATMEL AVR Studio, либо в эмуляторе ATMEL AVR In-Circuit Emulator. Компилятор также генерирует код, который может быть непосредственно запрограммирован в микроконтроллеры AVR.
Компилятор генерирует код, который не требует линковки.
Компилятор работает под Microsoft Windows 3.11, Microsoft Windows95 и Microsoft Windows NT. Кроме этого есть консольная версия для MS-DOS.
Набор инструкций семейства микроконтроллеров AVR описан в данном документе кратко, для более полной информации по инструкциям обращайтесь к полному описанию инструкций и документации по конкретному микроконтроллеру.

Справка по Ассемблеру для AVR
Любая строка может начинаться с метки, которая является набором символов заканчивающимся двоеточием. Метки используются для указания места, в которое передаётся управление при переходах, а также для задания имён переменных.

Ассемблер. Компоновщик. Загрузчик. Макрогенератор
Сначала будем предполагать, что транслируемая программа состоит только из одного модуля, т.е. в ней нет внешних и общих имен, а позже рассмотрим, какие изменения надо внести в работу ассемблера, чтобы учесть особенности многомодульных программ. Отметим также, что ассемблер работает после макрогенератора, поэтому в программе, которая подается на вход ассемблеру, нет никаких макрокоманд и других директив макроязыка.

Эльфы большие и маленькие
Программирование на ассемблере под UNIX'ом многими рассматривается как извращение, граничащее со злостным преступлением, препятствующим переносу программы на другие платформы, даже если никакой перенос не планируется. Являясь колыбелью десятков языков, таких как C, Perl, Haskell, Lisp, Simula и AWK, UNIX поддерживает ассемблер лишь формально.

Аудит и дизассемблирование exploit'ов
Сообщения о дырах появляются постоянно. Каждый день приносит по 10-20 новых дыр, затрагивающих практически весь спектр аппаратно-программного обеспечения. Вы до сих пор пользуетесь Лисом, считая его безопасным? Да как бы не так! За свое недолгое время существования он успел обрасти полусотней дыр, в том числе и критических. Ладно, оставим Лиса в покое и возьмем Оперу— почти два десятка ошибок (из которых 17 зарегистрировано на одном лишь securityfocus'е) быстро прочищают мозги от рекламной шелухи, позиционирующей Оперу не только как самый быстрый, но и по настоящему безопасный браузер.

Архитектура x86-64 под скальпелем ассемблерщика
Нам дарованы 64-битные операнды и 64-битная адресация. Казалось бы, лишние разряды карман не тянут и если не пригодятся, то по крайней мере не помешают. Так ведь нет! С ростом разрядности увеличивается и длина машинных команд, а, значит, время их загрузки/декодирования и размеры программы, поэтому для достижения не худшей производительности 64-битный процессор должен иметь более быструю память и более емкий кэш

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

Программирование на Ассемблере под DOS
Теоретически гвозди можно забивать и голыми руками. Но намного быстрее и безболезненнее делать это с помощью молотка. Пользоваться им, как известно, каждый дурак умеет. Чего там сложного? Взял оный в руки - и молоти: раз по гвоздю, два раза по пальцам (понимание приходит с опытом). Молотки бывают разные: большие и маленькие, с длинной ручкой и с короткой ручкой, железные и деревянные, приспособленные для забивания гвоздей и приспособленные для пробивания черепов

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

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

Сравнение ассемблерных трансляторов
Компиляторы языков высокого уровня (Си, Паскаль) в определенной степени совместимы между собой и хотя исходный текст, предназначенный для одного компилятора, не всегда без переделок транслируется на другом, синтаксис и прочие языковые концепции остаются неизменными, позволяя "летать" между MSVC, IntelC++, GCC, Open WATCOM, сравнивая полноту поддержки Стандарта, скорость трансляции, качество кодогенерации, популярность компилятора и вытекающее отсюда изобилие (недостаток) библиотек и компонент к нему.

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

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

Obj файлы на топчане или
Освежая в памяти события давно минувших дней (уже листья успели облететь за это время), напомним, что исправив кучу багофичей IDAPro (перечисление которых заняло бы слишком много места) мы дошли до файла demo_3.asm, который нас удалось ассемблировать MASM'ом, со следующими ключам: ML.EXE /coff /I. /c /Cp /Zp1 /Zm demo_3.asm

Ассемблер — это просто хадкорный ассемблер
Эта рубрика открывает двери в удивительный мир, расположенный за фасадом высокоуровневого программирования. Здесь где вращаются те шестеренки, чтокоторые приводят в движение все остальное. ассемблер— это разговор с компьютером на естественном для него языке, радость общение с голым железом, высший пилотаж особого полета свободной мысли и безграничное пространство для самовыражения

Разное IDE для больших проектов на ассемблере
Итак, сначала небольшое введение, посвященное тому, зачем мне (в частности) вообще нужно IDE. Дело в том, что наличие IDE практически необязательно для проектов с небольшим размером. Под проектами с небольшим размером я подразумеваю проекты с количеством строк, меньшим 1000. Как правило такая программа состоит из одного файла (или один .asm и один .inc) и содержит 10-15 процедур, столько же структур, макросов, глобальных переменных и констант.

Война миров - Ассемблер против Си
Действительно ли эффективны (неэффективны) си-компиляторы и насколько большой выигрыш можно получить, переписав программу на языке ассемблера. какую цену за это придется заплатить? Об этих и многих других вопросах, волнующих хакерскую общественность уже несколько лет, мыщъх постарался дать предельно объективный и непредвзятый ответ

Набор статей и руководств по дизассемблеру IDA
В диалоге загрузки файла укажите соответствующие значения для параметров "Loading segment" и "Loading offset". Эти параметры имеют смысл только для бинарных, COM и EXE файлов. Для загрузки файлов более сложного формата по нужным адресам используйте ручную загрузку (пометьте флаг "Manual load")

Установка и использование IDA Pro
Установка программы обычно не вызывает никаких проблем. После запуска дизассемблера (файл idaw.exe) появляется окно сессии DOS. Не пугайтесь, IDA Pro - нормальное 32-разрядное приложение, просто оно консольное (работает в окне сессии DOS). Именно поэтому интерфейс IDA Pro напоминает интерфейс обычной DOS-программы

Внутренности IDA Pro 4.15
В общем, от природы милостей я решил не дожидаться, а покопаться во внутренностях свежепоявившейся у меня версией IDA Pro самостоятельно. Для чего все это нужно, все еще кто-нибудь может вполне справедливо спросить меня ? Чтобы понять, как же программировать на IDA API (например в pluginах) все то же самое (и даже лучше), что можно сделать на IDC или топча клавиатуру в "интерактивном" режиме.

Вирусы в скриптах IDA
Первый пик массовой вирусной эпидемии пришелся на некогда популярный компьютер "Эппл". Наиболее излюбленным объектом атаки в то время оказался загрузочный сектор гибких магнитных дисков. Очень скоро появилось множество простых утилит, которые проверяли целостность содержимого загрузочного сектора при его запуске, а так же резидентов, которые просто блокировали запись в оный до подтверждения пользователя.

Установка и использование IDA Pro
Практически все настройки (кроме цветовой палитры) осуществляются через файл ida.cfg В первую очередь, давайте поменяем размеры экрана программы. Установленный по умолчанию размер на разрешении 1024*768 не очень удобен

Защита IDA.KEY
Если Вы поищите в Сети, то вполне вероятно сможете найти старые варианты IDA с генераторами IDA.KEY. Не тратьте время на шифрование и дешифрование программ, Вы играете на чужом поле. Значительно легче предоставить возможность дешифрования Вашему компьютеру, а затем посмотреть, что получилось. Загрузите SotfICE, установите прерывание 'bpx createfileA do "d esp-4"', и подождите, пока в эту функцию не будет передан 'IDA.KEY'. Запомните дескриптор (handle), возвращаемый в EAX.

Библиотека для ассемблера x86 IDA Pro
Вы должны знать ассемблер процессоров семейства Intel x86. Также, поскольку на сей раз я представляю библиотеку для pluginов к IDA Pro, Вы должны иметь копию этого замечательного дизассемблера (библиотека была написана для версии 3.85b, и, поскольку я не располагаю другими версиями, поддерживающими plugins (такая возможность появилась в версии 3.84), то я не могу гарантировать её работоспособность на других версиях IDA). Если же Вы намерены пользоваться исходным кодом, Вам нужно знать C++ ,и для сборки потребуются Borland C++ 5.02 или Watcom 10, а также IDA SDK для Вашей версии IDA.

Руководство по цикловым паттернам

Знания, самодисциплина и настойчивость - вот истинные ключи к успеху в трейдинге. Со временем вы разработаете стиль торговли, соответствующий особенностям вашей личности и опыту. Есть множество инструментов, помогающих улучшить вашу торговлю, но только циклы позволят вам добавить туда временной элемент.
Простые сигналы покупки и продажи не дают полноты картины. Объединяя механические торговые сигналы с дневными и недельными циклами (или комбинируя в циклы пары внутридневных временных периодов, например, 45- и 180-минутные, или 5- и 20-минутные), уровни ретрейсмента, индикаторы тренда и линии тренда в Циклические Паттерны, вы можете существенно улучшить свою точность и повысить вероятность прибыльности трейдинга. Последующие графики и концепции базируются на сделках в длинную сторону. Те же методы и понятия работают в зеркальном отображении и для торговли в короткую

Не существует волшебного осциллятора...
Не существует волшебного осциллятора или индикатора, который принесет вам успех на рынке. Знание техник и инструментов для улучшения расчета времени и определения тренда - вот ключ к малорискованн...
График 1
График 1 - Этот график показывает приливы и отливы цены, но отождествление вершин и оснований Торговых Циклов требует от неопытного глаза некоторых усилий....
График 1 - видите ли вы циклы на этом графике?
График 1 - видите ли вы циклы на этом графике?...
График 2
График 2 - Циклы измеряются от низа к низу. Каждый таймфрейм каждого рынка имеет доминирующий Торговый Цикл, в среднем от 14 до 25 баров, измеряющихся неделями, днями, половинами дня, часами, мину...
График 2 - стрелки указывают на вершины и основания цикла.
График 2 - стрелки указывают на вершины и основания цикла....
Детрендинг срывает с циклов завесу тайны
Детрендинг срывает с циклов завесу тайны Исторические циклы демонстрируют большой потенциал для торговли с малым риском. Но, чтобы сделать циклы торгуемыми, необходимо определить вершины и основан...
График 3 - Отцентрированный детренд - Вершины и основания торговых циклов легко увидеть при отцентрированном детренде.
График 3 - Отцентрированный детренд - Вершины и основания торговых циклов легко увидеть при отцентрированном детренде. Более 50 лет некоммерческий Фонд по Изучению Циклов использует простую процед...
Процесс детренда цикла прост.
Процесс детренда цикла прост. 1. Вычислите среднюю такой же длины, как потенциальный торговый цикл. Для большинства рынков используется 20-периодная средняя по закрытиям. Но вместо отображения сре...
График 4
График 4 - график ниже был сжат, чтобы показать большее количество циклов. Максимумы и минимумы центрированного детренда соответствуют максимумам и минимумам торгового цикла. Большинство вершин ци...
График 4 - Сжатый График с Центрированным...
График 4 - Сжатый График с Центрированным Детрендом - вершины и основания Цикла происходят на максимумах и минимумах детренда, который показывает пределы ухода цены выше и ниже центрированной сред...
График 5
График 5 - стандартные осцилляторы в TradeStation, SuperCharts или любом другом пакете можно наложить на центрированный детренд (или на вершину цен) для поиска осциллятора, вершины и основания кот...
График 5 - осциллятор RSI3M3, прилегающий к последнему бару, показывает вершины и основания цикла так же, как центрированный детренд.
График 5 - осциллятор RSI3M3, прилегающий к последнему бару, показывает вершины и основания цикла так же, как центрированный детренд....
График 6
График 6 - Вот четыре шага построения механического сигнала покупки, проиллюстрированные на следующем графике сигналами покупки для осциллятора RSI3M3: 1. RSI3M3 падает ниже линии покупки 30. Опус...
График 6 - Механические Сигналы Торговли… Не судите строго, помните, что Вы всегда знаете риск (от цены входа до защитного стопа).
График 6 - Механические Сигналы Торговли… Не судите строго, помните, что Вы всегда знаете риск (от цены входа до защитного стопа)....
График 7
График 7 - На этом графике стрелками показаны семь оснований цикла, от 1 до 7, на панели осциллятора. Стрелки вниз показывают вершины цикла. Бары сетапов - более толстые, а день входа и цена показ...
График 7 - Сигналы покупки RSI3M3-...
График 7 - Сигналы покупки RSI3M3- Четыре из семи оснований цикла был идентифицированы этими сигналами покупки. Темные бары сетапов сопровождаются входами на больших точках. Шесть из этих восьми с...
График 8
График 8 - На этом графике RSI3M3 находится в середине графика и к нему добавлены пересечения. Пересечения - это просто средняя осциллятора. Это 5-периодная средняя от RSI3M3. Для детренда осцилля...
График 8 - Детренд RSI3M3 дал 12 сигналов покупки, девять из которых могли сделать деньги.
График 8 - Детренд RSI3M3 дал 12 сигналов покупки, девять из которых могли сделать деньги. Детренд RSI3M3 дал 12 сигналов покупки (толстый бар сетапа с точкой входа), девять (75 %) из которых могл...
Взаимодействие циклов внутри циклов
Взаимодействие циклов внутри циклов Ключ к торговле циклами - понимание взаимодействия циклов в пределах циклов. Почти все циклы торговли имеют половинные циклы (см. следующую иллюстрацию). 20-дне...
Временные полосы
Временные полосы График ниже показывает временные полосы цикла, которые предсказывают периоды времени появления вершин и оснований цикла с точностью до 70 %. Знание, что цикл, вероятнее всего, нах...
График 9 - По крайней мере 70...
График 9 - По крайней мере 70 % всех вершин и оснований цикла происходит в пределах верхней или нижней временной полосы. На этом графике шесть из семи вершин цикла произошли в пределах верхней пол...
Святой Грааль: Торговля По Тренду
Святой Грааль: Торговля По Тренду Однако же, ключ к торговле на любом рынке в любом масштабе времени - ТРЕНД. Если тренд восходящий, покупайте на падениях (в основаниях цикла); если тренд нисходящ...
График 10
График 10 - Рынок T-Бондов имеет 21-недельный первичный цикл. 'W' показывают недельные вершины и основания цикла на графике ниже. Стрелки идентифицируют семь вершин и оснований дневного торгового...
График 10 - Когда недельный цикл...
График 10 - Когда недельный цикл является восходящим, как доказывают стрелки, показывающие все более высокие вершины и основания первичного цикла, тренд дневного цикла будет явно восходящим. Однак...
Ретрейсменты Фиббоначчи
Ретрейсменты Фиббоначчи Торговые циклы часто образуют дно на откате до 38 - 62 % Откаты Фибоначчи 38 % - 62 % особенно значимы в качестве диапазона поддержки, когда цены снижаются к основанию торг...
График 11
График 11 - следующий график показывает, что, поскольку недельные циклы повышались от основания до вершины, пять из шести оснований торгового цикла, откатывались, по крайней мере, на 38 %. Лишь од...
График 11 - При восходящем тренде...
График 11 - При восходящем тренде рынки чаще всего откатываются, по крайней мере, на 38 % и редко больше, чем на 62 %. На вершинах при развороте тренда откаты часто будут намного большими, чем 62...
График 12 - Сигналы покупки, объединенные с откатами на 38 - 62 % на трендовом рынке.
График 12 - Сигналы покупки, объединенные с откатами на 38 - 62 % на трендовом рынке. ЦИКЛИЧНЫЙ ПАТТЕРН Простой Цикличный паттерн, показанный на Графике 12 -- 1. 38-62 % откат, сопровождаемый 2. М...
Наиболее успешные сделки совершаются в направлении тренда
Наиболее успешные сделки совершаются в направлении тренда Преимущество торговли по тренду состоит в том, что это то направление, в котором торгуют трейдеры крупного масштаба, а импульс, вызванный...
График 13
График 13 - Поскольку тренд определяется по направлению следующего, более длинного доминирующего цикла, чем тот, которым Вы торгуете, начало восходящего тренда часто подтверждается сигналом покупк...
График 13 - недельный график устанавливает тренд для дневного графика.
График 13 - недельный график устанавливает тренд для дневного графика....
График 14
График 14 - Разворот средних - медленный, но, возможно, наиболее надежный индикатор тренда, он точно указывает тренд. Эти индикаторы разворачиваются медленно, но использование их в паттернах с мех...
График 14 - недельные средние...
График 14 - недельные средние, построенные на дневном графике, показывают тренд. Шесть из восьми сигналов покупки на нисходящем тренде принесли бы убытки, иллюстрируя, почему не стоит принимать си...
График 15
График 15 - осциллятор можно создать, вычисляя процентную разницу между более толстой и более тонкой линиями. Расположенный ниже цены индикатор - также индикатор тренда, показывающий замедлению во...
График 15 - После сильного восходящего тренда разворот EMA % Тренд может быть ранним предупреждением о развороте тренда, как в точках А и B.
График 15 - После сильного восходящего тренда разворот EMA % Тренд может быть ранним предупреждением о развороте тренда, как в точках А и B. Индикатор Тренда MACD...
График 16
График 16 - Еще один популярный индикатор, который хорошо показывает тренд - MACD. Размещенные внизу графика ниже, точки, в которых толстая линия пересекает тонкую, показывают потенциал продолжени...
График 16 - Когда и MACD и EMA движутся в одном и том же направлении, высока вероятность тренда.
График 16 - Когда и MACD и EMA движутся в одном и том же направлении, высока вероятность тренда....
График 17
График 17 - Эти недельные индикаторы тренда на дневном графике дают ясную картину направления торговли. График ниже показывает недельные индикаторы тренда, нанесенные на дневном графике, с вершина...
График 17 - Основания цикла, падающие...
График 17 - Основания цикла, падающие ниже толстой линии EMA, предлагают возможность совершения сделок с малым риском, за ними часто следует значительный рост....
Канал Кельтнера
Канал Кельтнера Канал Кельтнера можно использовать на графиках любого масштаба времени, он очень полезен в качестве компонента Циклического Паттерна, когда рассчитан в том масштабе времени, которы...
График 18
График 18 - На дневном графике T-bond вершины и основаниях торгового цикла обозначены стрелками; вершины и основания недельного цикла - W. 5-недельная средняя нанесена на дневной график, а канал К...
График 18 - Падение ниже средней к основанию цикла часто сопровождается значительным ростом.
График 18 - Падение ниже средней к основанию цикла часто сопровождается значительным ростом. ЦИКЛИЧНЫЙ ПАТТЕРН Комбинация 1. Тренд 2. Тестирование верхней линии канала Кельтнера 3. Падение ниже се...
Линии тренда
Линии тренда Тренды всегда заканчиваются, и его можно использовать, чтобы подтвердить разворот. Линии тренда - также очень мощный подтверждающий фактор разворотов тренда....
График 19
График 19 - График ниже показывает линии тренда на дневном графике. Две восходящие линии тренда пересекаются с основаниями цикла, и это подтверждает вершину большого недельного цикла. Пересечение...
График 19 - Линии тренда, пересекающиеся с вершинами и основаниями торгового цикла, часто подтверждают основания и вершины недельных циклов.
График 19 - Линии тренда, пересекающиеся с вершинами и основаниями торгового цикла, часто подтверждают основания и вершины недельных циклов. Отдельно взятые сигналы покупки и продажи не дают полно...
График 20
График 20 Большинство людей использует линии тренда на барах, но линии на графике закрытий гораздо более значимы...
График 21
График 21 - показывает типичную комбинацию осцилляторов, индикаторов тренда, откатов и механических сигналов на вход. Эти комбинации составляют паттерны, которые срабатывают по механическим сигнал...
График 21 - Это - Цикличный Паттерн...
График 21 - Это - Цикличный Паттерн, который Вы можете использовать на большинстве рынков и масштабов времени. Понаблюдайте за основаниями цикла, которые происходят в полосах времени, показанных н...