Ââåäåíèå

Введение

 Top Next

ChipProgLPT - это семейство универсальных программаторов фирмы Фитон. Эти программаторы поддерживают тысячи микросхем и предназначены для программирования параллельных и последовательных микросхем EPROM, EEPROM, FLASH, NVRAM, микроконтроллеров с программируемой памятью данных и кодов, а также микросхем программируемой логики PAL, PLD, CPLD.

Все алгоритмы программирования на этих программаторах реализуются в строгом соответствии со спецификациями, рекомендованными производителями микросхем.

ChipProg-+

ChipProg-2

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


Îáçîð

Обзор

 Top Previous Next

ChipProgLPT - это интуитивная и лёгкая в использовании программа. Подробнее смотрите в Программаторы, Меню и Интерфейс пользователя.

Встроенный язык скриптов ChipProgLPT позволит вам автоматизировать много рутинных задач. Подробнее смотрите в Файлы скриптов .

ChipProgLPT работает на платформе IBM PC (см. Требования к системе).


Òåðìèíû è îïðåäåëåíèÿ

Термины и определения

 Top Previous Next

Идеология взаимодействия с микросхемами.

Программное обеспечение ChipProg в плане взаимодействия с микросхемами построено по классической схеме программаторов "файл" - "буфер" - "микросхема". В программной поддержке программатора реализованы буфера памяти. Буфер памяти является промежуточным звеном между файлом и микросхемой:

Файл <----> Буфер <----> Микросхема

Все операции с файлом (загрузка/сохранение файла) взаимодействуют только с буфером. Т.е. можно загрузить файл в буфер, а также сохранить содержимое буфера в файл. Аналогичным образом построено взаимодействие с микросхемой. Все манипуляции с микросхемой (как, например, чтение, запись, сравнение) используют только буфер. Таким образом, можно прочитать микросхему в буфер, записать содержимое буфера в микросхему, сравнить содержимое буфера и микросхемы и т.п. Взаимодействие файла и микросхемы напрямую не допускается.

Термины

ICP (in circuit programming) | - программирование в плате пользователя.
ISP (in-system programming) | - программирование в плате пользователя
ISP Mode | - режим программирование в плате пользователя.
ISP BSL Mode | - режим программирование в плате пользователя в режиме BSL.
ISP JTAG Mode | - режим программирование в плате пользователя через JTAG порт.
ISP HV Mode | - высоковольтный режим программирование в плате пользователя.
Проект | - это некий контейнер, в котором сохраняется информация об установленном типе микросхемы, все настройки буферов программатора, настройки опций программирования, настройки по сериализации, контрольной сумме, ведению журнала. Дополнительно в проекте можно сохранить перечень загружаемых файлов и конфигурацию экрана программатора. Проекты различаются по именам. Проектами очень удобно пользоваться, если Вы работаете с несколькими микросхемами. Каждый проект настраивается под конкретную микросхему и в нем сохраняется все настройки программатора под конкретный тип микросхемы.
Адаптер | - это специальный переходник под определенный тип корпуса микросхемы или разъем на плате пользователя. Иногда на плате адаптера устанавливаются активные и пассивные компоненты.
Буфер памяти | Буфер памяти - это объект, предназначенный для хранения данных. Буфер памяти программатора является промежуточным звеном между файлом и микросхемой.
Количество буферов | Допускается создание бесконечного количества активных буферов. Ограничением на количество может служить только отсутствие свободной памяти в системе.
Подслои буфера | Каждый буфер в своем составе имеет определенное количество подслоев. Каждый подслой ассоциируется с конкретным адресным пространством установленной микросхемы. Пример использования подслоев смотрите ниже.

Пример использования подслоев буфера:

1. Микросхема Intel 87C51FA. Каждый буфер имеет в своем составе два подслоя: подслой кодовой памяти и подслой таблицы кодирования (encryption table).
2. Микросхемы Microchip PIC16F84. Каждый буфер имеет в своем составе три подслоя: подслой кодовой памяти, подслой памяти данных EEPROM, подслой пользовательских идентификаторов.

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


Òðåáîâàíèÿ ê ñèñòåìå

Требования к системе

 Top Previous Next

Для работы программы ChipProgLPT необходимо использовать ПК, совместимый с IBM PC, в конфигурации не хуже, чем:

?

Персональный компьютер, работающий с Windows 98/ME/2000/XP/Vista, для программатора ChipProg-G4 -

Windows 2000/XP/Vista

?

Pentium-III CPU или выше

?

256MB оперативной памяти RAM

?

По крайней мере один порт USB

?

Жесткий диск со свободным пространством не менее 200MB


Áûñòðûé ñòàðò

Быстрый старт

 Top Previous Next

Предполагается, что вы являетесь опытным пользователем MS Windows и знакомы с основными её операциями. Вам необходимо изучить справочный файл, перед тем как начинать работу.


Ïîäêëþ÷åíèå ïðîãðàììàòîðà

Подключение программатора

 Top Previous Next
Установка программного обеспечения | Необходимо установить ПО с дистрибутивного диска
Подключить питание к программатору | Подключить блок питания в сетевую розетку. Разъем блока питания подключить в гнездо питания на задней панели программатора.
Подключение к компьютеру | С помощью LPT кабеля, входящего в состав комплекта поставки, необходимо соединить программатор со свободным принтерным портом компьютера. LPT разъем находится на задней панели программатора.
Запуск программы | Запустить программу Phyton ChipProgLPT.

Программатор готов к работе, можно начать программирование микросхем.


Ïðîãðàììíàÿ óñòàíîâêà ChipProgLPT

Программная инсталляция ChipProgLPT

 Top Previous Next

Вставьте диск ChipProgLPT в дисковод вашего компьютера. Далее следуйте по серии подсказок, которые проведут вас через процесс установки.

Принимать условия лицензионного соглашения

Выбрать папку для инсталляции

Процесс установки ...

Папка Phyton ChipProgLPT

В конце процесса инсталляции будет создана папка с программами и документами ChipProgLPT.

Перечень файлов поставки:

ChipProgLPT On-Line Help - справочный файл программатора.

Phyton ChipProgLPT - исполняемый файл программатора.

Phyton ChipProgLPT Demo - демонстрационная версия программатора.

Phyton WEB site - ссылка на сайт фирмы Фитон.

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

Revision History - файл истории версий программатора.

Uninstall Phyton ChipProgLPT Programmer - программа деинсталляции программатора.


Îïåðàòèâíûå ñïðàâêè

Оперативные справки

 Top Previous Next

Чтобы открыть окно оперативной справки, следует нажать клавишу F1 клавиатуры или воспользоваться меню Справка. Мы постарались обеспечить окно справки для каждого диалога, окна сообщения или меню. Например, чтобы открыть окно справки для меню, откройте меню и нажмите F1.

Меню Справка содержит дополнительные команды для управления системой справок программы ChipProgLPT.

Также, используйте стандартную функцию поиска справочной системы. В большинстве случаев нужную тему можно найти по ключевому слову. Например, если в текстовом поле закладки Поиск (Find) напечатать «Программирование », то система покажет список тем, где говорится про программирование. Чтобы посмотреть конкретную тему, выделите её в списке и нажмите кнопку Вывести (Display).

Для последовательного изучения ChipProgLPT, можно читать файл справки, следуя оглавлению в закладке Содержание (Contents).


Òåõíè÷åñêàÿ ïîääåðæêà

Техническая поддержка

 Top Previous Next

Компания «Фитон» предоставляет бесплатную техническую поддержку. Наши специалисты с удовольствием помогут преодолеть трудности в работе с изделиями компании.

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

Если Вы только начинаете работать с ChipProgLPT, подробно ознакомьтесь с изделием. У программы ChipProgLPT вполне обычный и интуитивно понятный интерфейс пользователя. Тем не менее, для хорошего понимания функциональности изделия, пожалуйста, прочитайте этот файл справки.

Прежде, чем обращаться за помощью

Прежде, чем обращаться за помощью, пожалуйста:

· Проверьте, можно ли повторно воспроизвести обнаруженную ошибку, т.е., можно ли воспроизвести ситуацию, в которой происходит ошибка.
· Посмотрите справку по решению проблем, и если в ней уже затронута Ваша проблема, то воспользуйтесь предложенной рекомендацией.

При обращении за помощью

Пожалуйста, сообщите нам следующие сведения:

· Ваше имя, название компании, номер телефона (факса) и адрес электронной почты для контактов.
· Название изделия и его серийный номер.
· Дату покупки изделия.
· Номер версии и используемый объём памяти (по данным диалога Информация).
· Общие параметры используемого ПК и операционной системы.
· Список обнаруженных ошибок и их описание.

Направляйте запросы или сообщения по адресу: support@phyton.ru. Также, используйте другие способы коммуникации (смотрите адреса для контактов).


Ðåøåíèå ïðîáëåì

Решение проблем


Èíôîðìàöèÿ äëÿ êîíòàêòà

Информация для контакта

 Top Previous Next

ООО «Фирма Фитон»

Тел/факс: (495) 730-7584

Email: info@phyton.ru, sales@phyton.ru, phyton@phyton.ru, support@phyton.ru

WWW: .http://www.phyton.ru.


Ïðîãðàììàòîðû

Программаторы

 Top Previous Next

Семейство программаторов ChipProgLPT фирмы Фитон:

ChipProg+ ;

ChipProg-2;


Ñðàâíèòåëüíûå õàðàêòåðèñòèêè ïðîãðàììàòîðîâ

Сравнительные характеристики программаторов

Top Previous Next

Сравнительные характеристики программаторов выпускаемых ООО «Фирма Фитон»

 | ChipProg-G4 | ChipProg-48 | ChipProg-40 | ChipProg-ISP | ChipProg+ | ChipProg-2
Тип программатора | Универсальный копировщик | Универсальный | Универсальный | Универсальный последовательный | Универсальный | Универсальный
Типы поддерживаемых микросхем | FLASH, EPROM, EEPROM, NVRAM, MCU, PLD | FLASH, EPROM, EEPROM, NVRAM, MCU, PLD | FLASH, EPROM, EEPROM, NVRAM, MCU | FLASH, EEPROM, MCU | FLASH, EPROM, EEPROM, NVRAM, MCU, PLD | FLASH, EPROM, EEPROM, NVRAM, MCU
Возможность мультипрограммирования | Да, 4 колодки на программаторе, К-во не ограничено. | Да, 1 колодка на программаторе, К-во не ограничено. | Да, 1 колодка на программаторе, К-во не ограничено. | Да, 1 ISP разъем, К-во не ограничено. | Нет | Нет
Тип сокетки | 4 х 48 ZIF | 48 ZIF | 40 ZIF | IDC-14 | 40 ZIF | 40 ZIF
Логические драйверы | Универсальные, 1.8V – 5.5V | Универсальные, 1.8V – 5.5V | Универсальные, 1.8V – 5.5V | Универсальные, 1.8V – 5.5V | Универсальные, 2.0V – 5.5V | Универсальные, 2.0V – 5.5V
Аналоговые драйверы | Универсальные | Универсальные | Специализированные | Специализированные | Универсальные | Специализированные
Возможность поддержки новых микросхем | Любые | Любые | Ограничена аналоговыми драйверами | Любые | Любые | Ограничена аналоговыми драйверами
Программирование в схеме | Да | Да | Да | Да | Да | Да
Встроенный контроллер (частота) | 32 битный (60 МГц) | 32 битный (60 МГц) | 32 битный (60 МГц) | 32 битный (60 МГц) | 8 битный (10 МГц) | 8 битный (10 МГц)
Встроенная FPGA (частота) | Да (до 100 МГц) | Да (до 100 МГц) | Да (до 100 МГц) | Да (до 100 МГц) | Да (10 МГц) | Да (10 МГц)
Автоматическое распознавание присутствия микросхемы в колодке | Да | Да | Да | - | Нет | Нет
Тестирование правильности установки микросхемы | Да | Да | Да | - | Да | Да
Тестирование каждой ножки микросхемы на наличие контакта | Да | Да | Да | - | Нет | Нет
Режим сериализации, записи контрольной суммы и сигнатуры | Да | Да | Да | Да | Нет | Нет
Ведение журнала программирования | Да | Да | Да | Да | Нет | Нет
Поддержка проекта | Да | Да | Да | Да | Нет | Нет
Операционная система | Windows 2000/XP/2003/VISTA | Windows 98/ME/ 2000/XP/2003/VISTA | Windows 98/ME/ 2000/XP/2003/VISTA | Windows 98/ME/ 2000/XP/2003/VISTA | Windows 98/ME/ 2000/XP/2003/VISTA | Windows 98/ME/ 2000/XP/2003/VISTA
Интерфейс к компьютеру | USB 2.0 | USB 2.0 | USB 2.0 | USB 2.0 | LPT | LPT
Скорость программирования | Очень высокая | Очень высокая | Очень высокая | Очень высокая | Высокая | Высокая
Время программирование и сравнение (мин:сек) |  |  |  |  |  |
M25P20 | 00:05 | 00:05 | 00:05 | 00:05 | 00:07 | 00:07
SST39VF016Q | 00:45 | 00:45 | 00:45 | - | 02:50 | 02:50
MX28F640C3BB | 00:56 | 00:56 | 00:56 | - | 02:27 | 02:27
MX29LV017A | 00:23 | 00:23 | 00:23 | - | 02:56 | 02:56
MX29LV160CT | 00:16 | 00:16 | 00:16 | - | 01:17 | 01:17
SST49LF008A | 00:19 | 00:19 | 00:19 | - | 01:43 | 01:43
PIC18LF8722 | 00:11 | 00:11 | 00:11 | 00:11 | 00:19 | 00:19
AT89S51 | 00:01 | 00:01 | 00:01 | 00:01 | 00:01 | 00:01


ChipProg+

 Top Previous Next

Программатор ChipProg+ является универсальным программатором, поддерживающим тысячи микросхем. В этот список входят последовательные и параллельные микросхемы памяти EPROM, EEPROM, FLASH, микроконтроллеры с программируемой памятью данных и кодов и микросхемы программируемой логики PAL, PLD, CPLD. Программатор также поддерживает режим программирования микросхем в устройстве пользователя (In-System Programming).

ChipProg+

На программаторе установлена универсальная 40 выводная DIP сокетка с нулевым усилием (ZIF), позволяющая программировать все микросхемы в DIP корпусах без дополнительных адаптеров. Поддержка микросхем в корпусах, отличных от DIP (SOIC, SSOP, TSOP, PLCC, QFP, BGA и др.) осуществляется с помощью дополнительных адаптеров, производимых фирмой Фитон, а также сторонними производителями. С помощью специальных адаптеров программатор поддерживает программирование микросхем, установленных в устройстве пользователя.

Программатор имеет небольшие габариты и предназначен для программирования, как единичных микросхем, так и небольших промышленных партий микросхем.

Комплект поставки

Программатор | - 1
Блок питания | - 1
Кабель связи с РС | - 1
CD с программным обеспечением | - 1
Паспорт | - 1

Подробнее характеристики программатора ChipProg+ смотрите в разделе Основные характеристики ChipProg+.


Îñíîâíûå õàðàêòåðèñòèêè ChipProg+

Основные характеристики ChipProg+

 Top Previous Next

Основные характеристики программатора ChipProg+ можно представить следующими группами характеристик:

Характеристики Аппаратуры ChipProg+

Характеристики Программного Обеспечения ChipProg+


Õàðàêòåðèñòèêè Àïïàðàòóðû ChipProg+

Характеристики Аппаратуры ChipProg+

 Top Previous Next

Характеристики аппаратуры:

1. Архитектура программатора построена на базе программируемой матрицы (FPGA). Расширение списка поддерживаемых микросхем производится путем простого обновления версии программного обеспечения.
2. Логические драйверы на базе FPGA, способные подвести логические сигналы низкого, высокого уровня, внешнего генератора, а также Pullup, Pulldown на любой вывод колодки.
3. 8-ми разрядные цифро-аналоговые преобразователи для программирования аналоговых источников напряжения.
4. Возможность программирования фронта подъема и спада аналогового напряжения.
5. Возможность подключения аналоговых напряжений питания и программирования на любой вывод микросхемы.
6. Возможность коммутации любого вывода микросхемы с «землей».
7. Наличие быстродействующих схем защиты от перегрузки по току, увеличивающих надежность программатора и не выводящих из строя неправильно подключенные микросхемы.
8. Самотестирование.

Поддерживаемые корпуса микросхем:

1. Поддержка всех микросхем в корпусах DIP в колодке программатора без дополнительных адаптеров.
2. Поддержка микросхем в корпусах до 40 выводов в универсальных адаптерах.
3. Поддержка микросхем в корпусах SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP, QFP, TQFP, VQFP, QFN, SON, BGA, CSP с помощью дополнительных адаптеров.
4. Совместимость с адаптерами сторонних производителей.


Õàðàêòåðèñòèêè Ïðîãðàììíîãî Îáåñïå÷åíèÿ ChipProg+

Характеристики Программного Обеспечения ChipProg+

 Top Previous Next

Характеристики программного обеспечения:

1. Работа под управлением Windows 95/98/ME/2000/XP/Vista.
2. Дружественный, интуитивно понятный, двуязычный интерфейс
3. Поддержка всех процедур работы с микросхемой: чтение, сравнение, контроль чистоты, запись и стирание, установка защиты, программирование конфигурационных битов, работа с памятью данных и т.п.
4. Многобуферный интерфейс с возможностью создания неограниченного числа буферов. Буфера разбиваются на подслои, имеющие структуру адресного пространства микросхем
5. Полноценный двоичный редактор с возможностью ручного редактирования данных, а также функции заполнения, сравнения, копирования, поиска и замены, инвертирования, вычисления контрольной суммы, логических операции OR, AND, XOR.
6. Загрузка и сохранение файлов в двоичном коде, Standard Extended Intel HEX, Motorla S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV форматах.
7. Встроенный язык сценариев, обеспечивающий доступ ко всем ресурсам программатора. Посредством применения этого языка можно значительно облегчить работу с программатором, автоматизируя рутинные операции.


ChipProg-2

 Top Previous Next

Программатор ChipProg-2 является универсальным программатором, поддерживающим тысячи микросхем. В этот список входят последовательные и параллельные микросхемы памяти EPROM, EEPROM, FLASH, а также микроконтроллеры с программируемой памятью данных и кодов. Программатор поддерживает режим программирования микросхем в устройстве пользователя (In-System Programming).

ChipProg-2

На программаторе установлена универсальная 40-ми выводная DIP сокетка с нулевым усилием (ZIF), позволяющая программировать все микросхемы в DIP корпусах без дополнительных адаптеров. Поддержка микросхем в корпусах, отличных от DIP (SOIC, SSOP, TSOP, PLCC, QFP, BGA и др.) осуществляется с помощью дополнительных адаптеров, производимых фирмой Фитон, а также сторонними производителями. С помощью специальных адаптеров программатор поддерживает программирование микросхем, установленных в устройстве пользователя.

Программатор имеет небольшие габариты и предназначен для программирования, как единичных микросхем, так и небольших промышленных партий микросхем.

Комплект поставки

Программатор | - 1
Блок питания | - 1
Кабель связи с РС | - 1
CD с программным обеспечением | - 1
Паспорт | - 1

Подробнее характеристики программатора ChipProg-2 смотрите в разделе Основные характеристики ChipProg-2.


Îñíîâíûå õàðàêòåðèñòèêè ChipProg-2

Основные характеристики ChipProg-2

 Top Previous Next

Основные характеристики программатора ChipProg-2 можно представить следующими группами характеристик:

Характеристики Аппаратуры ChipProg-2

Характеристики Программного Обеспечения ChipProg-2


Õàðàêòåðèñòèêè Àïïàðàòóðû ChipProg-2

Характеристики Аппаратуры ChipProg-2

 Top Previous Next

Характеристики аппаратуры:

1. Архитектура программатора построена на базе программируемой матрицы (FPGA). Расширение списка поддерживаемых микросхем производится путем простого обновления версии программного обеспечения.
2. Логические драйверы на базе FPGA, способные подвести логические сигналы низкого, высокого уровня, внешнего генератора, а также Pullup, Pulldown на любой вывод колодки.
3. 8-ми разрядные цифро-аналоговые преобразователи для программирования аналоговых источников напряжения.
4. Возможность программирования фронта подъема и спада аналогового напряжения.
5. Возможность подключения аналоговых напряжений питания и программирования на ограниченное количество выводов микросхемы.
6. Возможность коммутации ограниченного количества вывода микросхемы с «землей».
7. Наличие быстродействующих схем защиты от перегрузки по току, увеличивающих надежность программатора и не выводящих из строя неправильно подключенные микросхемы.
8. Самотестирование.

Поддерживаемые корпуса микросхем:

1. Поддержка всех микросхем в корпусах DIP в колодке программатора без дополнительных адаптеров.
2. Поддержка микросхем в корпусах до 40 выводов в универсальных адаптерах.
3. Поддержка микросхем в корпусах SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP, QFP, TQFP, VQFP, QFN, SON, BGA, CSP с помощью дополнительных адаптеров.
4. Совместимость с адаптерами сторонних производителей.


Õàðàêòåðèñòèêè Ïðîãðàììíîãî Îáåñïå÷åíèÿ ChipProg-2

Характеристики Программного Обеспечения ChipProg-2

 Top Previous Next

Характеристики программного обеспечения:

1. Работа под управлением Windows 95/98/ME/2000/XP/Vista.
2. Дружественный, интуитивно понятный, двуязычный интерфейс
3. Поддержка всех процедур работы с микросхемой: чтение, сравнение, контроль чистоты, запись и стирание, установка защиты, программирование конфигурационных битов, работа с памятью данных и т.п.
4. Многобуферный интерфейс с возможностью создания неограниченного числа буферов. Буфера разбиваются на подслои, имеющие структуру адресного пространства микросхем
5. Полноценный двоичный редактор с возможностью ручного редактирования данных, а также функции заполнения, сравнения, копирования, поиска и замены, инвертирования, вычисления контрольной суммы, логических операции OR, AND, XOR.
6. Загрузка и сохранение файлов в двоичном коде, Standard Extended Intel HEX, Motorla S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV форматах.
7. Встроенный язык сценариев, обеспечивающий доступ ко всем ресурсам программатора. Посредством применения этого языка можно значительно облегчить работу с программатором, автоматизируя рутинные операции.


Ðàáîòà ñ ïðîãðàììàòîðîì

Работа с программатором

 Top Previous Next

В этой главе описываются операции, которые могут быть осуществлены при помощи программатора.


Óñòàíîâêà ìèêðîñõåìû â êîëîäêó ïðîãðàììàòîðà

Установка микросхемы в колодку программатора

 Top Previous Next

Микросхемы в DIP корпусах.

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

Микросхемы в корпусах, отличных от DIP.

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

Установка микросхем в адаптер.

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


Ïðîãðàììèðîâàíèå â ïëàòå ïîëüçîâàòåëÿ

Программирование в плате пользователя

 Top Previous Next

Программатор ChipProg генерирует все необходимые сигналы, необходимые для программирования микросхем в плате пользователя.

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

Подключение к устройству пользователя:

Основные требования
1. Подключение должно осуществляться в строгом соответствии cо схемой соответствующего адаптера (см. файл adapters.chm),
2. Устройство пользователя должно быть разработано с таким учетом, чтобы не оказывать шунтирующего влияния на логические сигналы программатора.
3. Устройство пользователя должно предусматривать (если это необходимо) возможность подачи со стороны программатора напряжения программирования, превышающего напряжение питания.

Напряжение питания

Возможны два варианта:

1. Подача питания от программатора. В этом случае необходимо иметь в виду, что нагрузочная способность источника питания программатора ограничена током 80 мА. Источник питания программатора способен работать на емкостную нагрузку, которая не должна превышать 50 мкФ.
2. Подача питания на плату пользователя от внутреннего источника. В этом случае, питание от программатора на плату пользователя подаваться не должно. Необходимо иметь в виду, что логические сигналы со стороны программатора имеют высокий уровень, соответствующий его
напряжению питания

ВНИМАНИЕ: категорически запрещается подавать питание на плату пользователя одновременно от программатора и от внутреннего источника.

Электрические характеристики сигналов программатора

Нагрузочную способность логических сигналов 5mA.

Нагрузочную способность напряжения питания - 80 мА.

Нагрузочную способность напряжения программирования - 80 мА.

Таблица подключения к микросхеме.

Подключение устройства пользователя к программатору должно строго соответствовать таблице соединений для установленного типа микросхемы и адаптера. Чтобы посмотреть таблицу соединений, нужно активизировать иконку Adapters Connection List из папки, куда установлен программатор.

ВНИМАНИЕ: тщательно проверяйте правильность подключения программатора к плате пользователя. Неверное подключение может привести к выходу из строя аппаратуры программатора и платы пользователя.

Подробнее смотрите в разделах:

Особенности программирования микроконтроллеров PICmicro фирмы Microchip,
Особенности программирования микроконтроллеров AVR фирмы Atmel,
Особенности программирования микроконтроллеров MCS-51 фирмы Atmel.


Ìèêðîêîíòðîëëåðû PICmicro, îñîáåííîñòè ïðîãðàììèðîâàíèÿ

Микроконтроллеры PICmicro, особенности программирования

 Top Previous Next

Большинство микроконтроллеров семейства PICmicro фирмы Microchip программируется с использованием высоковольтного режима программирования HV ISP Mode (High-Voltage in-System Programming Mode). В этом режиме на вывод MCLR контроллера подается напряжение 13В. В устройстве пользователя должна быть предусмотрена возможность подачи этого напряжения. Например, в этом случае не допускается соединение вывода MCLR с питанием контроллера.

Еще одной особенностью программирования микроконтроллеров PICmicro является необходимость программирования микросхем при напряжении питания 5В и верификацией при минимально и максимально допустимых напряжениях питания микросхемы. В программаторе в поле 'Programming Options' диалога Program допускается корректировать напряжения верификации (Vccp min, Vccp max) после программирования. Напряжение питания при программировании нельзя изменять; оно равно 5В. Это обязательно нужно иметь в виду при проектировании схемы. Если устройство пользователя не допускает подачу напряжение питания равного 5В, то необходимо предусмотреть возможность подключения к этому напряжению только программируемого микроконтроллера.


Ìèêðîêîíòðîëëåðû AVR, îñîáåííîñòè ïðîãðàììèðîâàíèÿ

Микроконтроллеры AVR, особенности программирования

 Top Previous Next

Все микроконтроллеры семейства AVR фирмы Atmel программируется в режиме низковольтового программирования (т.е. при напряжении питания). Практически все микроконтроллеры в этом режиме требуют наличия тактового генератора. Если в устройстве пользователя такой генератор уже присутствует, то тактовый сигнал, поступающий с программатора, не должен быть соединен с платой пользователя. В противном случае, он должен быть подсоединен к соответствующему выводу микросхемы. В поле 'Programming Options' диалога Program необходимо указать значение тактовой частоты. Это значение используется в алгоритме программирования. Программатор генерирует тактовую последовательность частотой 3 МГц.


Ìèêðîêîíòðîëëåðû Atmel 8051, îñîáåííîñòè ïðîãðàììèðîâàíèÿ

Микроконтроллеры Atmel 8051, особенности программирования

 Top Previous Next

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


Ïðîãðàììèðîâàíèå NAND Flash

Программирование NAND Flash

 Top Previous Next

В этом разделе описывается программирование микросхем NAND Flash. Очень важно правильно настроить все параметры программирования, в противном случае, вы можете запрограммировать микросхему неправильно.


Ñòðóêòóðà ïàìÿòè NAND Flash

Структура памяти NAND Flash

 Top Previous Next

NAND Flash память подразделяется на блоки (Block) памяти, которые в свою очередь делятся на страницы (Page). Существуют микросхемы с маленьким размером страницы (small page) и с большим размером страницы (large page). Размер страницы зависит от общего размера микросхемы. Для маленькой страницы обычно характерны микросхемы объемом от 128Kбит до 512Кбит. Микросхемы с большим размером страницы имеют объем от 256Кбит до 32Гбит и выше. Маленький размер страницы равен 512 байтам для микросхем с байтной организацией и 256 словам для микросхем со словной организаций шины данных. Большая страница имеет размер 2048 байт для байтных микросхем и 1024 для словных. В последнее время появляются микросхемы с еще большим размером страницы. Она уже составляет 4096 байт для байтных микросхем.

Структура памяти микросхем с малым размером страницы фирмы STMicroelectronics.

Структура памяти микросхем с большим размером страницы фирмы STMicroelectronics.

Характерной особенностью микросхем NAND Flash является наличие плохих (дефектных) блоков (Bad blocks) как в новых микросхемах, так и появление таких блоков в процессе эксплуатации. Для маркирования плохих блоков, а также для сохранения дополнительной служебной информации или кодов коррекции, в архитектуре NAND Flash в дополнении к каждой странице памяти данных предусмотрена добавочная область Spare area. Для микросхем с малой страницей эта область имеет размер 16 байт / 8 слов. Для микросхем с большой страницей - 64 байта / 32 слова.


Ïëîõèå áëîêè (Bad blocks)

Плохие блоки (Bad blocks)

 Top Previous Next

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

Информация о плохих блоках поставляется производителем микросхем в определенном месте дополнительной области Spare Area.


Ìàðêèðîâàíèå ïëîõèõ áëîêîâ

Маркирование плохих блоков

 Top Previous Next

Маркирование плохих блоков в микросхемах NAND Flash осуществляется записью обычно значения 0 по определенному адресу в области Spare Area нулевой страницы плохого блока.

Организация памяти | Адрес в Spare Area
Байтная организация, размер страницы - 512 байт. | 5
Словная организация, размер страницы - 256 слов. | 0
Байтная организация, размер страницы - 2048 байт. | 0 или 5
Словная организация, размер страницы - 1024 слов. | 0

Нужно иметь ввиду, что маркеры плохих блоков помещаются в обычные ячейки Flash памяти Spare Area, которые стираются при стирании всего блока памяти. Поэтому для сохранения информации о плохих блоках перед стиранием обязательно нужно сохранить эту информацию, а после стирания ее - восстановить. В программаторах ChipProg при установке опции InvalidBlockManagement в любое значение кроме Do Not Use сохранение и восстановление информации о плохих блоках происходит автоматически.


Îáðàáîòêà ïëîõèõ áëîêîâ

Обработка плохих блоков

 Top Previous Next

Существует три наиболее распространенных способа обработки плохих блоков:

Skip Bad Blocks

Reserved Block Area

Error Checking and Correction


Skip Bad Blocks

 Top Previous Next

Пропуск плохих блоков.

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


Reserved Block Area

 Top Previous Next

Область с резервными блоками.

В этом методе память всей микрохемы делится на три области: User Block Area (UBA) - пользовательская область, Block Reservoir - резервная область, следуемая сразу за пользовательской областью, и таблицу соответствия плохих блоков хорошим (Reserved Block Area - RBA).

Алгоритм замены плохих блоков в этом методе таков: при выявлении плохого блока из области UBA блок переносится в область Block Reservoir, при этом в таблице RBA делается соответствующая запись замены блока.

Формат таблицы RBA:

2 байта | 2 байта | 2 байта | 2 байта | .... | 2 байта | 2 байта
Маркер | Count Field | Invalid Block | Replaced Block | .... | Invalid Block | Replaced Block

Маркер имеет значение 0FDFEh.

Count Field начинается с 1 и значение этого поля увеличивается на 1 на каждой следующей странице данного блока.

Invalid Block - номер замененного плохого блока.

Replaced Block - номер блока, на который был заменен плохой блок.

Пары Invalid Block и Replaced Block следуют одна за другой до конца страницы.

В области RBA находятся две таблицы в двух блоках. Таблица во втором блоке используется как резервная на случай, если информация в первой окажется недостоверной.


Error Checking and Correction

 Top Previous Next

Контроль и коррекция ошибок.

Для увеличения достоверности данных могут использоваться алгоритмы контроля и коррекции ошибок (Error Checking and Correction - ECC). Эта дополнительная информация может помещаться в свободное пространство Spare Area.


Ïðîãðàììèðîâàíèå NAND Flash íà ïðîãðàììàòîðàõ ChipProg (COPY)

Программирование NAND Flash на программаторах ChipProg

 Top Previous Next

Перед работой с микросхемами NAND Flash в окне "Редактор параметров микросхемы и алгоритма программирования" обязательно нужно установить параметры алгоритма программирования программатора.


Access Mode

 Top Previous Next

Режимы программирования.

Invalid Block Management

Spare Area Usage

Guard Solid Area

Tolerant Verify Feature

Invalid Block Indication Option


Invalid Block Management

 Top Previous Next

Работа с плохими блоками.

В этом пункте выбирается алгоритм работы с плохими блоками.

Do Not Use | Не обрабатывать информацию о плохих блоках.
Skip IB | Пропускать плохие блоки.
Skip IB with Map in 0-th Block | Пропускать плохие блоки, в нулевой блок помещать карту плохих блоков.
RBA (Reserved Block Area) | Использовать алгоритм RBA.


Spare Area Usage

 Top Previous Next

Использование области Spare Area.

Do Not Use | Spare Area в микросхеме не используется. В микросхеме программируются страницы памяти без учета Spare Area.
User Data | Spare Area используется как пользовательская память. В этом случае при программировании микросхемы информация из буфера помещается сначала в основную страницу микросхемы, а затем в дополнительную область Spare Area. В этом случае буфер программатора выглядит как непрерывный поток основных страниц микросхемы и пристыкованных к ним областей Spare Area.
User Data with IB Info Forced | Spare Area интерпретируется аналогично предыдущему случаю за исключением того, что маркеры плохих блоков прописываются вместо информации пользователя.


Guard Solid Area

 Top Previous Next

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

Эта опция используется совместно с параметрами:

Solid Area - Start Block - начальный блок области без плохих блоков.

Solid Area - Number of Blocks - количество блоков в этой области.

В случае, если внутри заданного диапозона Solid Area попадется плохой блок, программатор выдаст ошибку.


Tolerant Verify Feature

 Top Previous Next

Не чувствительность к ошибкам сравнения.

Эта опция позволяет включить режим не чувствительности к ошибкам сравнения.

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

Эти параметры и указываются в параметрах алгоритма программирования:

ECC Frame size (bytes) - размер массива данных.

Acceptable number of errors - допустимое количество однобитных ошибок.


Invalid Block Indication Option

 Top Previous Next

В этой опции выбирается информация, которая используется в качестве маркера плохих блоков. Допускается выбрать либо значение 00h, либо 0F0h.


Access Mode Parameters

 Top Previous Next

Параметры программирования.

User Area

Solid Area

RBA Area

ECC Frame size

Acceptable number of errors


User Area

 Top Previous Next

Пользовательская область.

Пользовательская область - это область микросхемы, с которой работают процедуры Программирования, Чтения и Сравнения. Процедуры Стирания и Контроля на чистоту работают со всем массивом микросхемы.

Пользователю необходимо установить параметры:

User Area - Start Block - начальный блок пользовательской области.

User Area - Number of Blocks - количество блоков в пользовательской области.


Solid Area

 Top Previous Next

Это параметры режима Guard Solid Area.

Solid Area - Start Block - начальный блок области без плохих блоков.

Solid Area - Number of Blocks - количество блоков в этой области.


RBA Area

 Top Previous Next

Это параметры RBA таблицы алгоритма обработки ошибок Reserved Block Area.

RBA Area - Start Block - начальный блок таблицы RBA.

RBA Area - Number of Blocks - количество блоков в таблице RBA.


ECC Frame size

 Top Previous Next

Параметр режима Tolerant Verify Feature.

Этот параметр определяет размер массива данных, в котором допускаются однобитные ошибки.


Acceptable number of errors

 Top Previous Next

Параметр режима Tolerant Verify Feature.

Этот параметр определяет количество однобитных ошибок, допустимых в массиве, размер, которого определяется параметром.

ECC Frame size.


Êàðòà ïëîõèõ áëîêîâ.

Карта плохих блоков.

 Top Previous Next

Карта плохих блоков создается в подслое Invalid Block Map. Карта блоков представляется как непрерывный массив бит. Хорошие блоки представляются значением 0, плохие блоки - 1.

Например, значение 02h по нулевому адресу говорит о том, что 0,2,3,4,5,6,7 блоки являются хорошими, 1-ый блок является плохим. Значение 01h по первому адресу говорит о том, что только 8-ой блок является плохим из группы блоков 8..15.


Ôóíêöèè ïðîöåññà Ïðîãðàììèðîâàíèÿ

Функции процесса Программирования

Top Previous Next

В окне Программирование можно выполнить те команды для процесса программирования, которые вам необходимы.


Ïðîâåðèòü ÷èñòîòó ìèêðîñõåìû

Проверить чистоту микросхемы

 Top Previous Next

1.

Выберите тип микросхемы, с которым вы будете работать, нажав кнопку Select Device на главной инструментальной панели, или выберите команду Меню > Конфигурация > Выбрать микросхему.

2.

Вставьте микросхему, выбранного типа, в разъем программатора

3.

Нажмите кнопку Check на главной панели инструментов в окне Программирование, в поле Информация об операциях появится запись Контроль... Ok , если микросхема чистая. В противном случае в том же поле появится предупреждающая запись.


Ñòèðàíèå

Стирание

 Top Previous Next

1.

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

2.

Если микросхему можно стереть электрическим способом, нажмите кнопку Erase на основной панели инструментов. Подождите до появления записи Erasing … OK в поле Информация об операциях окна Программирование или предупреждающей записи, если микросхему не удалось очистить.


Êàê Çàïðîãðàììèðîâàòü ìèêðîñõåìó

Как Запрограммировать микросхему

 Top Previous Next

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

· загрузить файл, предназначенный для записи в микросхему;
· отредактировать файл (если необходимо);
· сконфигурировать микросхему (если необходимо);
· записать подготовленную информацию в микросхему и сравнить записанную информацию с исходными данными.


Êàê Çàãðóçèòü Ôàéë, êîòîðûé äîëæåí áûòü çàïèñàí â ìèêðîñõåìó

Как Загрузить Файл, который должен быть записан в микросхему

 Top Previous Next

1.

В Главном Меню выберите команду Файл >Загрузить.

2.

Запишите имя исходного файла, выберите формат файла, буфер загрузки, подслой и адреса.

3.

Подождите до появления записи File loaded в поле Информация об операциях окна Программирование или предупреждающей записи.


Êàê Îòðåäàêòèðîâàòü Èñõîäíóþ Èíôîðìàöèþ

Как Отредактировать Исходную Информацию

 Top Previous Next

1.

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

2.

Сделайте необходимые изменения в окне.


Êàê Ñêîíôèãóðèðîâàòü ìèêðîñõåìó

Как Сконфигурировать микросхему

 Top Previous Next

1. | Если вам необходимо изменить параметры, отображенные в окне Параметры Микросхемы и Алгоритма, подведите перемещаемую строку синего цвета к нужному имени.
2. | Кликните по имени, которое вам надо изменить. Откроется окно, в котором можно выбрать нужный параметр. После того как параметр будет изменен, он поменяет цвет на красный.
3. | Также следует поступать со всеми параметрами, которые надо изменить. Все установки будут исполняться при исполнении команд в окне Программирования.


Êàê çàïèñàòü èíôîðìàöèþ

Как записать информацию

Top Previous Next

1.

Выберите закладку Опции, адреса, чередование в окне Программирование. В поле опции проверьте все установки. Лучше всего для надежного программирования устанавливать опции Контроль чистоты перед программированием и Проверка после программирования.

2.

Выберите закладку Программирование. В поле Операции выберите функцию Программирование и дважды кликните по этой строке, чтобы начать процесс программирования. То же самое можно проделать, нажав кнопку Program на инструментальной линейке или выбрав в Меню команду Меню> Команды> Запрограммировать микросхему.

3.

После успешного программирования в поле Информация об операциях появится запись Программирование... Ok. В случае ошибочного программирования том же появится информация об ошибке.

4.

Далее идите по списку функций в поле Операции.

5.

При выполнении последующих функций, надо дожидаться в поле Информация об операциях информации со словом Ok [xxxxx... Ok]

6.

Продолжайте до полного успешного программироваия.


Êàê Ñðàâíèòü

Как Сравнить

 Top Previous Next

1.

Обычно программатор сразу после программирования сравнивает содержимое микросхемы с содержимым исходного буфера.

2.

Для дополнительного сравнения следует нажать кнопку Verify на основной панели инструментов.

3.

Подождите до появления записи Verifying … OK в поле Информация об операциях окна Программирование или предупреждающей записи, если сравнение не прошло правильно..


Êàê Ïðî÷èòàòü ìèêðîñõåìó

Как Прочитать микросхему

 Top Previous Next

1.

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

2.

Подождите до появления записи Reading… OK в поле Информация об операциях окна Программирование или предупреждающей записи.


Êàê Ñîõðàíèòü äàííûå, ïðî÷èòàííûå èç ìèêðîñõåìû

Как Сохранить данные, прочитанные из микросхемы

 Top Previous Next

1.

При чтении данных из микросхемы, они записываются в буфер.Данные, которые читаются из микросхемы, помещаются в буфер. На панели инструментов можно нажать кнопку Save для сохранения данных из буфера.

2.

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


Êàê Ïðîäóáëèðîâàòü ìèêðîñõåìó

Как Продублировать микросхему

 Top Previous Next

1.

Установить исходную микросхему, которую требуется скопировать в разъем программатора.

2.

Нажать кнопку Read на панели инструментов.

3.

Подождите до появления записи Reading… OK в поле Информация об операциях окна Программирование. Убедитесь, что содержимое считанной микросхемы находится в текущем буфере.

4.

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

5.

Вернитесь к разделу Как Редактировать Информацию для записи в микросхему далее действуйте по алгоритму записи в микросхему.


Îáçîð

Обзор

 Top Previous Next

Меню

Главное меню ChipProgLPT включает в себя следующие подменю:

· Меню Файл
· Меню Просмотр
· Меню Конфигурация
· Меню Команды
· Меню Сценарии
· Меню Окна
· Меню Справка

Чтобы открыть меню, используйте мышь или комбинацию клавиш Alt+буква, где «буква»—это подчёркнутая буква в названии пункта или команды меню.


Ìåíþ Ôàéë

Меню Файл

 Top Previous Next

Команды меню Файл выполняют действия с файлами разрабатываемого проекта. Если для некоторой команды есть кнопка на панели инструментов, её изображение показано в первом столбце. Если команду меню можно выполнить комбинацией клавиш, эта комбинация показана в меню справа от команды.

Кнопка | Команда | Описание
fopen | Загрузить ... | Открывает диалог Загрузить файл.
freload | Перегрузить | Перезагружает последнюю из ранее загруженных программ.
fsave | Записать... | Открывает диалог Сохранить файл из буфера.
 | Конфигурационные файлы | Открывает суб–меню для действий с файлами конфигурации. .
exit1 | Выход | Закрывает сеанс работы ChipProgLPT . Также, можно использовать другие стандартные способы завершения работы приложения Windows (комбинации клавиш Alt+F4 или Alt+X).


Êîíôèãóðàöèîííûå ôàéëû

Конфигурационные файлы

 Top Previous Next

При завершении сеанса работы, ChipProgLPT автоматически сохраняет параметры своей конфигурации в нескольких файлах. В начале нового сеанса, он открывает эти ранее сохранённые файлы. Также, в любой момент времени любой из этих файлов можно сохранить или загрузить независимо друг от друга, через меню Файл, командой Конфигурационные файлы. Можно иметь несколько наборов файлов конфигурации, для разных задач отладки, и подгружать их «на ходу».

· Файл конфигурации экрана (Desktop) содержит значения параметров отображения на экране, расположение, размеры, цвета и шрифты всех специализированных окон отладчика. Расширение этого файла -(.dsk).
· Файл опций (Option) содержит данные о типе микроконтроллера, параметры отладки, точки останова, и т.д. Расширение этого файла -(.opt).
· Файл Сессии содержит данные о сеансе и указывает, какой файл конфигурации экрана и файл опций следует загрузить в начале следующего сеанса работы (если не используется файл проекта). Этот файл может быть загружен или сохранен при помощи команд Загрузить сессию и Сохранить сессию из субменю команды Конфигурационные файлы. Расширение этого файла -(.ses).
· Файл История содержит все значения, которые Вы вводили в текстовых полях всех диалогов программы. Этот файл невидимый для пользователя, но значения, которые ранее были сохранены, можно достать. Расширение этого файла -(.hst).


Ìåíþ Ïðîñìîòð

Меню Просмотр

 Top Previous Next

Меню Просмотр обеспечивает доступ к окнам ChipProgLPT`а:

Кнопка | Команда | Описание
manager | Программирование | Открывается окно Программирование
powin | Параметры и алгоритмы микросхемы | Открывается окно Параметры Микросхемы и Алгоритмы
dump | Дамп буфера | Открывается окно Дамп буфера.
 | Информация о микросхеме | Открывается окно Информация о микросхеме.
Console24 | Консоль сообщений | Открывается окно Консоль сообщений.

Локальные меню

В каждом окне есть собственное локальное (контекстное) меню. Чтобы открыть такое меню, надо нажать правую кнопку мыши в пределах окна или нажать комбинацию Ctrl+Enter или Ctrl+F10.

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


Ìåíþ Êîíôèãóðàöèÿ

Меню Конфигурация

Top Previous Next

Это меню дает доступ ко всем диалогам конфигурации ChipProgLPT`а.

Кнопка | Команда | Описание
 | Выбрать микросхему... | Открывает диалог Выбор микросхемы.
 | История выбора микросхем | Список устройств предыдущего выбора
bufferc | Буфера | Открывает диалог Буферы
prefs | Опции... | Открывает диалог Опции
env | Опции экрана... | Открывает диалог Опции Экрана, в котором пять закладок: закладка Шрифты, закладка Цвета, закладка Назначение клавиш, закладка Линейка управления и закладка Прочие.


Äèàëîã Âûáîð ìèêðîñõåìû

Диалог Выбор микросхемы

 Top Previous Next

Элементы диалога | Описание
Показывать в списке типы: | В этом поле можно выбрать группы микросхем, которые будут показываться в списке поддерживаемых микросхем. К этим группам относятся EPROM, EEPROM, FLASH; PLD, PAL, EPLD; микроконтроллеры; ISP-программирование (программирование в устройстве пользователя).
Микросхемы | В этом поле показывается список микросхем в соответствии с маской поиска и опциями списка.
Маска поиска: | В этом поле указывается маска поиска микросхем. В этом поле можно использовать символ *, который символизирует любые символы в любом количестве. Например, маска 'PIC18*64' позволит найти микросхемы, начинающиеся с PIC18 и заканчивающиеся символами 64.
Корпуса/Адаптеры | В этом поле указываются поддерживаемые корпуса микросхемы и соответствующие им адаптеры.


Äèàëîã Áóôåðû

Диалог Буферы

 Top Previous Next
Элементы диалога | Описание
Список буферов: |
Добавить | Создать новый буфер памяти. Открывает диалог Конфигурация буфера
Удалить | Удалить буфер памяти
Редактировать | Редактировать опции буфера памяти. Открывает диалог Конфигурация буфера
Дамп | Перейти в окно дампа соответствующего буфера памяти
Выделение памяти | В этом поле указывается размер оперативной памяти компьютера, которой выделяется для использования буфера памяти.
Своп-файлы | Это временный файл для размещения на диске образа буфера памяти. В этом поле допускается выбрать размещение этих файлов автоматически или выбрать их размещение вручную.
Использовать сетевые диски | Опция позволяет использовать сетевые диски компьютера для размещения своп-файлов.
Оставить на каждом диске не менее | Минимальное дисковое пространство, которое не занимается своп-файлами.


Äèàëîã Êîíôèãóðàöèÿ áóôåðà

Диалог Конфигурация буфера

 Top Previous Next

Диалог Конфигурация буфера позволяет сконфигурировать буферы и подслои в удобной для вас форме.

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


Îñíîâíîé ïîäñëîé

Основной подслой

 Top Previous Next

В этой закладке можно сконфигурировать опции основного подслоя буфера.

Элементы диалога | Описание
Имя буфера | Поле, в которое надо ввести Имя Файла Проекта. При необходимости следует воспользоваться кнопкой для вызова списка истории набора или кнопкой Обзор.
Размер подслоя 'Code' | Размер подслоя можно выбрать из списка, который можно вызвать при помощи копки.
Заполнять подслой 'Code' значением: | Две опции, которые определяют время загрузки подслоя значениями - это заполнять подслой перед загрузкой файла или заполнять подслой после выбора микросхемы.
Значение заполнения: | Из двух радио кнопок надо выбрать одну либо заполнять предопределенным значением по умолчанию, либо написать то значение, которое вам необходимо.
Уменьшать размер буфера при выборе микросхемы | Эта опция позволяет уменьшать размер буфера до размера микросхемы.


Äîïîëíèòåëüíûé ïîäñëîé

Дополнительный подслой

 Top Previous Next

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

Элементы диалога | Описание
Заполнять 'Область идентификатора' значением: | Две опции, которые определяют время загрузки подслоя значениями - это заполнять подслой перед загрузкой файла или заполнять подслой после выбора микросхемы.
Значения заполнения: | Из двух радио кнопок надо выбрать одну либо заполнять предопределенным значением по умолчанию, либо написать то значение, которое вам необходимо.


Äèàëîã Îïöèè

Диалог Опции

 Top Previous Next
Элементы диалога | Описание
Опции |
Загружать последний файл при старте | Опция позволяет загружать последний файл при старте программатора.
Выполнять самотестирование при старте | Опция позволяет выполнять самотестирование программатора при старте.
Звуки |
Звук при ошибке операции с микросхемой | Опция позволяет выбрать из списка звук, который будет происходить при ошибке операции с микросхемой.
Звук при завершении операции с микросхемой | Опция позволяет выбрать из списка звук, который будет происходить при завершении операции с микросхемой.


Äèàëîã Îïöèè Ýêðàíà

Диалог Опции Экрана

 Top Previous Next

Диалог содержит закладки:

закладка Шрифты,

закладка Цвета,

закладка Назначение клавиш,

закладка Линейка управления,

закладка Прочие.


Øðèôòû Çàêëàäêà

Закладка Шрифты

 Top Previous Next

Закладка Шрифты диалога Опции экрана управляет шрифтами в окнах программы ChipProgLPT. Используются только шрифты фиксированной ширины (monospaced, non-proportional), по умолчанию-это Fixedsys. В качестве пользовательской настройки внешнего вида окна можно задать другой шрифт: либо единый шрифт для всех окон, либо индивидуальный шрифт для каждого окна.

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

Элемент диалога | Описание
Окно имеет заголовок | Включает строку заголовка для окон данного типа. Когда флаг снят, окна получаются меньше размером за счёт отсутствующего заголовка. Также, смотрите примечания внизу.
Линейка управления окна | Управляет положением панели инструментов в окне данного типа.
Сетка | Включает отображение вертикальной и горизонтальной сетки в окне и разрешает изменение ширины столбцов (при включенной вертикальной сетке).
Интервал между строками | Задаёт межстрочное расстояние, которое будет добавлено к стандартному расстоянию между строками. Новое значение можно напечатать или выбрать из списка недавно использованных значений.
Выбрать шрифт | Открывает диалог Шрифт. Выбранный шрифт будет действовать для всех окон данного типа.
Этот шрифт для всех окон | Использует шрифт, установленный для окон данного типа, ко всем окнам в программе ChipProgLPT.

Примечания

1. Чтобы передвинуть окно, у которого нет строки заголовка, поместите курсор мыши на участок панели инструментов этого окна, где нет кнопок, и далее действуйте так, как будто панель инструментов является строкой заголовка. Также, можно обращаться к функциям управления окном через его системное меню, нажатием комбинации клавиш Alt+<серый минус>.
2. В локальном меню каждого окна есть пункт Свойства. Пункты Заголовок окна и Линейка управления субменю Свойства переключают строку заголовка и панель инструментов для данного отдельного окна.


Öâåòà Çàêëàäêà

Закладка Цвета

 Top Previous Next

Закладка Цвета диалога Опции экрана управляет цветом в специализированных окнах. По умолчанию, основные цвета заимствованы из Windows.

Элемент диалога

Описание

Схема цветов

Задаёт название цветовой схемы. Его можно напечатать или выбрать недавно использованное из списка с кнопкой.

Кнопка Сохранить сохраняет используемую схему на диск.
Кнопка Удалить удаляет её.

Цвета

Список названий групп цветов. Каждая группа состоит из нескольких цветов.

Стандартный цвет Windows

Когда флаг установлен, выделенный цвет позаимствован из Windows. Если в последующем Вы измените цвета, Windows через панель управления, этот цвет изменится соответственно.

Этот флаг имеется только для цвета фона и текста.

Инвертированный цвет фона/текста

Когда флаг установлен, то инвертируются выделенные цвета окна (для текста и фона). Например, если в окне Переменные цвет фона белый и цвет текста чёрный, то для строки с выделенной переменной будет подсветка из черного фона и белого текста.

Выбрать

Открывает диалог Цвет, если флаги Стандартный цвет Windows и Инвертированный цвет фона/текста сняты для окон этого типа.

Диалог Color также открывается, если дважды щелкнуть цвет в списке Цвета.

.

Установить для всех

Задаёт использование данного цвета во всех окнах ChipProgLPT. Такая возможность удобна для цвета текста и фона. Например, если для окна Редактора выбрать голубой фон и жёлтый текст и потом нажать кнопку Установить для всех, то эти цвета будут заданы для фона и текста во всех окнах.

Шрифт

Для выделения синтаксиса в окне Редактора можно задать дополнительные атрибуты шрифта: «Жирный» и «Курсив».

В некоторых случаях, Windows увеличивает размер символов при изображении жирного шрифта и шрифт становится неприменим, потому что жирный и обычный шрифт должны быть одного размера. В таких случаях атрибут «Жирный» игнорируется.

Иногда, такой эффект случается со шрифтом Fixedsys. Если необходимо воспользоваться атрибутом «Жирный», выберите шрифт Courier New.


Íàçíà÷åíèå êëàâèø ýêðàíà Çàêëàäêà

Назначение клавиш экрана Закладка

 Top Previous Next

Закладка Назначение клавиш диалога Опции экрана позволяет присвоить комбинации клавиш вызова любой команды в ChipProgLPT. Столбец Команды меню отображает древообразную систему команд. Столбцы Клав. 1 (Клав. 2) содержат соответствующие комбинации клавиш, назначенные командам. Все действия в этой закладке относятся к выделенной команде.

Элемент диалога | Описание
Задать клав. 1 Задать клав. 2 | Открывает диалог Задать комбинацию клавиш. В диалоге нажмите комбинацию клавиш, которую Вы собираетесь назначить данной команде, или нажмите Отмена. Также, этот диалог можно открыть двойным щелчком в «ячейке», где пересекается строка данной команды и столбец Клав. 1 или Клав. 2.
Удалить клав. 1 Удалить клав. 2 | Отменяет назначенную комбинацию клавиш для данной команды. Также, для отмены комбинации можно щелкнуть правой клавишей мыши в «ячейке», где пересекается строка данной команды и столбец Клав. 1 или Клав. 2.


Ëèíåéêà óïðàâëåíèÿ Çàêëàäêà

Линейка управления Закладка

 Top Previous Next

Закладка Линейка управления диалога Опции экрана включает панели инструментов окна и их кнопки.

Элемент диалога | Описание
Группы | Содержит список всех панелей инструментов программы ChipProgLPT. Чтобы включить/выключить панель инструментов, установите её флажок в списке.
Кнопки / Команды | Список кнопок для панели инструментов, выделенной в списке Группы. Чтобы показать/убрать кнопку панели, установите её флажок в списке.
«Плоские» линейки управления окон | Переключает внешность кнопок между «плоской» и квази-3D для панели инструментов специализированных окон в программе ChipProgLPT. Кнопки панели инструментов всегда «плоские».
Настройки линейки управления одни и те же для всех проектов и файлов экрана | Распространяет значения параметров этой закладки на другие проекты или файлы, которые будут открыты потом.


Ïðî÷èå Çàêëàäêà

Прочие Закладка

 Top Previous Next

Закладка Прочие диалога Опции экрана управляет различными функциями окон и параметрами сообщений в ChipProgLPT.

Элемент диалога | Описание
Строка статуса главного окна | Управляет наличием и расположением статусной строки окна программы ChipProgLPT.
Включить функцию «быстрого просмотра» | Включает функцию быстрого просмотра.
Подсвечивать заголовок активной страницы в окнах | Включает подсветку текущей закладки (в стиле MS Windows) в окнах с закладками. Например, в окнах Переменные, Дамп, Сообщения, Анализатор выполнения/доступа, и других.
Двойной клик на флажках и переключателях в диалогах | Задает функцию двойного щелчка мышью, эквивалентную одиночному щелчку на соответствующем элементе диалога и нажатию кнопки OK данного диалога.
Показывать ‘горячие клавиши' во всплывающих описаниях | Включает/выключает отображение комбинаций клавиш быстрого доступа во всплывающей подсказке для кнопок панелей инструментов.
Не выдавать диалоги сообщений, если открыто окно консоли | Направляет все сообщения в окно Консоль сообщений, если оно открыто. Если закрыто, то сообщение будет послано в отдельном окошке.
Всегда выдавать диалоги сообщений | Отображает все сообщения в отдельных окошках. Окно Консоль сообщений также отображает эти сообщения.
Курсор помещается на кнопку ОК | Если флаг установлен, то в каждом открытом окне сообщения курсор автоматически помещается на кнопку OK этого окна. Данную функцию можно выключить, если Вы предпочитаете нажимать клавишу Enter, а не щёлкать OK мышью.
Звуковое уведомление для сообщений об ошибках | Включает звук для сообщений об ошибках. Информационные сообщения всегда подаются без звука.
Записывать сообщения в файл журнала | Задаёт имя файла журнала. Все сообщения заносятся в этот файл. Способ записи выбирается переключателем, у которого есть следующие позиции:
Начинать файл журнала сначала при каждом старте | Указывает создавать новый файл для каждого сеанса и удалять прежний файл, если он существует.
Записывать сообщения в конец файла | Указывает добавлять сообщения в конец существующего файла. При этом размер файла будет неограниченно расти.


Ìåíþ Êîìàíäû

Меню Команды

 Top Previous Next
Команда | Описание
Проверить стертость | Запускается процедура проверки микросхемы на стертость. Существует ряд микросхем, которые не требуют стирания для записи данных. В этих микросхемах эта процедура может отсутствовать.
Запрограммировать микросхему | Запускается процедура программирования микросхемы
Проверить правильность программирования | Запускается процедура сравнения данных в микросхеме и буфере программатора.
Прочитать микросхему в буфер | Запускается процедура чтения микросхемы в буфер программатора.
Стереть микросхему | Запускается процедура стирания микросхемы. Существует ряд микросхем, которые не имеют процедуры электрического стирания. В этих микросхемах процедура стирания будет отсутствовать.
Автоматическое программирование | Запускается процедура автоматического программирования.
Локальное меню | Вызов локального меню активного окна.
Калькулятор | Открывает диалог Калькулятор.


Êàëüêóëÿòîð Äèàëîã

Калькулятор

 Top Previous Next

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

Элемент диалога | Описание
Выражение | Поле для ввода выражения или числа.
Копировать в | Задаёт формат, в котором результат будет скопирован в буфер обмена.
Знаковые значения | Указывает, что результат надо интерпретировать и отображать, как величину со знаком (действует только для десятичных чисел).
Отображать незначащие нули | Включает отображение лидирующих нулей (в старших разрядах) в двоичных и шестнадцатеричных числах.
Копировать | Копирует результат вычисления в буфер обмена в формате, заданном переключателем Копировать в.
Clr | Очищает поле Выражение.
Bs | Удаляет один символ (цифру) слева от точки ввода (Backspace).
0x | Вставляет «0x».
>> | Выполняет сдвиг результата выражения вправо на указанное количество разрядов.
<< | Выполняет сдвиг результата влево на указанное количество разрядов.
Mod | Вычисляет остаток деления на заданное число.

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

Можно присваивать значения переменным в программе и регистрам специального назначения, напечатав выражение с оператором присвоения. Например, если напечатать SP = 66h, то число 66h будет записано в SP.

Примеры выражений:

0x1234

-126

main + 33h

(float)(*ptr + R0)

101100b & 0xF


Ìåíþ Ñöåíàðèè

Меню Сценарии

 Top Previous Next

В этом меню собраны пользовательские команды, которые запускают файлы сценариев (ФС). Для определения файлов сценария используйте диалог Файлы Сценария.

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

/// Название команды меню

Когда программа ChipProgLPT строит меню Сценарии, она просматривает текущую папку и свою инсталляционную папку на предмет всех файлов *.CMD, содержащих «///» в первой строке (напоминаем, что «//» обозначает начало однострочного комментария), и добавляет текст, следующий за «///», в меню Сценарии.

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

Также смотрите Простой пример файла Сценария.

Кнопка | Команда | Описание
 | Запуск... | Открывает диалог Файлы Сценария..
 | Новый исходный текст файла сценария | Создать новый исходный текст Файла Сценария.
 | Открыть окно переменных | Открывает окно Переменные
 | Добавить переменную (watch) | Добавить переменную в окно Переменные
 | Окно редактора | Открывает окно Редактора
 | Редактор текста |


Äèàëîã Ôàéëû Ñöåíàðèÿ

Диалог Файлы Сценария

 Top Previous Next

Этот диалог заведует файлами сценариев (ФС). Подробнее об этих файлах—в главе Файлы сценариев .

В верхней части диалога находится список загруженных файлов сценариев с указанием текущего состояния каждого файла.

Состояние файла | Описание
Stopped | Выполнение файла временно приостановлено.
Running | Файл выполняется.
Waiting | Файл ожидает появления события. Данное состояние инициируется вызовом определённых функций ожидания (например, Wait) в тексте ФС.
Cancelled | Выполнение ФС прекращено, но файл ещё не выгружен из памяти.

Выделенный ФС обозначен цветом. Чтобы выделить файл сценария, щёлкните его кнопкой мыши. Четыре кнопки справа от списка управляют выделенным ФС:

Кнопка | Описание
Завершить | Выгружает выделенный ФС, когда его можно выгрузить. В противном случае, устанавливает флаг Unload Request для выделенного ФС (у таких файлов состояние Cancelled). Следует иметь в виду, что выгрузить файл сценария можно не всегда.
Завершить все | Выгружает все файлы сценариев.
Перезапустить | Повторно запускает выделенный файл сценария.
Отлаживать | Включает режим Debugger для выделенного файла сценария. Эта команда останавливает выполнение ФС (или, если ФС находится в состоянии ожидания, то выполнение остановится, когда ФС выполнит возврат из функции ожидания) и открывает окно Текст сценария для этого ФС.

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

Кнопки и поля в нижней части диалога управляют запуском файлов сценариев:

Элемент диалога | Описание
Имя файла сценария | Указывает имя файла сценария.
Обзор | Открывает диалог Load/Execute Script File, чтобы найти на диске файл сценария, имя которого надо поместить в поле Имя файла сценария.
Defines | Определяет текстовые переменные препроцессора для компиляции. Подробнее об этом—внизу этой главы.
Директории для поиска #include-файлов | Задаёт папки для поиска файлов, указанных в директивах #include <file_name> в файле сценария. Можно указать несколько папок через точку с запятой. Также, будет выполнен поиск в текущей папке.
Отладка (открыть окно исходного текста) | Когда флаг установлен, после загрузки файла сценария он не будет выполняться. Вместо этого, ChipProgLPT включает режим Debugger для этого файла, т.е., открывает окно Текст сценария для этого ФС. Также, смотрите Отладка файлов сценариев.
Автосохранение исходных текстов сценариев | Указывает автоматически сохранять все файлы исходного текста сценариев, открытые в окнах Текст сценария на момент нажатия кнопки Запуск.
Запуск | Запускает выполнение файла сценария, указанного в поле Имя файла сценария.

Текстовые переменные препроцессора

Поле Defines эквивалентно директиве #define. Например, если в этом поле Вы напечатаете DEBUG, результат будет такой же, как от директивы #define DEBUG, помещённой в первую строку исходного текста ФС.

Можно задавать значения переменных. Например, DEBUG=3 эквивалентно #define DEBUG 3.

Можно перечислить несколько переменных в строке, разделив их точкой с запятой. Например:

DEBUG;Passes=3;Abort=No

Также, смотрите Предопределенные символы при компиляции Файлов Сценариев.


Ìåíþ Îêíà

Меню Окна

 Top Previous Next

Команды этого меню управляют расположением окон в приложении. Также, в нижней части меню есть список открытых на данный момент окон—это стандартный способ для переключения между ними. При выборе название окна в этом списке, оно активизируется на экране компьютера. Этот способ удобен для перехода к окну, расположенному позади остальных.

Команда | Описание
Расположить черепицей | Изменяет размеры и располагает окна без наложения друг на друга. При этом размеры окон примерно одинаковы.
Расположить черепицей горизонтально | Располагает все окна горизонтально, без наложения друг на друга. При этом размеры окон примерно одинаковы.
Расположить каскадно | Располагает окна уступом
Упорядочить иконки | Выстраивает иконки свёрнутых окон.
Закрыть все окна | Закрывает все окна


Ìåíþ Ñïðàâêà

Меню Справка

 Top Previous Next

Команды этого меню работают с системой оперативной справки. Также, смотрите главу Оперативные справки.

Команды | Описание
Оглавление | Открывает закладку Содержание файла справки
Поиск | Открывает закладку Предметный указатель файла справки.
Таблицы соединений адаптеров | Открывает Таблицу соединений Адаптеров
Проверка наличия новых версий | Открывает диалог Проверка наличия новых версий
Послать письмо в Фитон по e-mail... | Можно послать письмо в Фитон по электронной почте.
О ChipProg... |


Î ChipProgLPT

О ChipProgLPT

 Top Previous Next

Этот диалог показывает:

•

номер версии ChipProgLPT;

•

версия Windows-оболочки ChipProgLPT;

•

тип микросхемы;

•

производитель микросхемы.

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


Èíòåðôåéñ Ïîëüçîâàòåëÿ Îáçîð

Интерфейс Пользователя Обзор

 Top Previous Next

В программе ChipProgLPT используется стандартный интерфейс MS Windows с некоторыми полезными дополнениями:

1. В каждом специализированном окне есть локальное контекстное меню. Чтобы открыть его, нажмите правую клавишу мыши в пределах окна, или нажмите комбинацию клавиш Ctrl+Enter или Ctrl+F10. Каждой команде такого меню присвоена комбинация «горячих» клавиш Ctrl+<буква>. По нажатию этих клавиш в активном окне исполняется соответствующая команда.
2. У каждого специализированного окна есть своя панель инструментов. Обычно, у каждой команды локального меню есть своя кнопка на этой панели. Действие кнопок панели инструментов специализированного окна распространяется только на это конкретное окно. У главного окна программы ChipProgLPT есть несколько панелей инструментов, которые можно включать/ выключать (в меню Конфигурация, в диалоге Опции экрана, закладке Линейка управления).
3. У каждой кнопки панели инструментов есть всплывающая подсказка: если навести курсор на кнопку и задержать на пару секунд, появляется маленькое жёлтое окошко с кратким описанием этой кнопки.
4. В целях экономии места на экране у каждого окна можно отключить строку заголовка. Для этого используйте команду Свойства локального меню.
При отсутствии строки заголовка специализированные окна можно распознавать по их содержимому и положению на экране (а также, по цвету и шрифту, когда они заданы отдельно для каждого окна). Чтобы переместить окно, его можно тащить за панель инструментов: поместите курсор на участке панели, свободном от кнопок, нажмите левую клавишу мыши и перетащите окно на новое место.
5. Можно открыть любое количество окон одного типа. Например, несколько окон Дамп или несколько окон Переменные.
6. Во всех диалогах с полями для ввода текста есть списки предыдущих введённых значений. Эти списки сохраняются между сеансами работы.
7. Во всех диалогах с полями для ввода текста работает функция автоматическое завершение имени.
8. Во всех диалогах с флажками (check boxes) и переключателями (radio buttons) двойной щелчок на флажке или переключателе производит такое же действие, как одиночный щелчок на этом флажке (переключателе) и нажатие кнопки OK. Это удобно, когда сразу после установки флажка (переключателя) Вы собираетесь закрыть этот диалог.


Îêíî Ïðîãðàììèðîâàíèå

Окно Программирование

 Top Previous Next

Окно Программирование является по существу основным окном программатора. Именно из этого окна осуществляется взаимодействие с микросхемой - чтение, запись, сравнение и т.п.

Окно содержит закладки:

закладка Программирование,
закладка Опции.


Äèàëîã Ïðîãðàììèðîâàíèå

Диалог Программирование

 Top Previous Next

Диалог служит для определения параметров и этапов программирования.

Здесь же отображается информация об операциях.

Элементы диалога | Описание
Используемый буфер: | В поле Буфер представлен список открытых буферов и выбранный буфер, с которым будет взаимодействовать выбранная функция программирования.
Операции | Поле операций содержит меню функций взаимодействия с аппаратурой. Именно в этом поле содержатся функции,соответствующие установленному типу микросхемы.
Контроль на чистоту | Контроль ячеек на чистоту (стертость)
Программирование | Программирование ячеек
Чтение | Чтение ячеек в буфер
Сравнение | Сравнение содержимого ячеек и буфера
Автоматическое программирование | Автоматическое программирование - это наиболее употребимый набор операций над микросхемой
Адреса | В этом поле расположены адреса, с которыми работают функции программирования.
Начальный в микросхеме: | Адрес в микросхеме, с которого начинается программирование
Конечный в микросхеме: | Адрес в микросхеме, с которым заканчивается программирование
Начальный в буфере: | Начальный адрес в буфере, с которого выбираются данные
Выполнить | Для активизации функции в поле операций необходимо выбрать функцию из списка и запустить ее либо двойным нажатием левой кнопки мыши, либо нажатием на кнопку Выполнить, либо клавишей Enter.
Повторы: | В поле определяется количество повторов выполнения функции.
Редакт. Авто... | Редактирование этого набора операций можно осуществлять, нажав кнопку.
Информация об операциях | Вся информация о выполнении операций с микросхемами, смене типа микросхем, а также загрузке/выгрузке файлов в буфера памяти помещается в поле.


Àâòîìàòè÷åñêîå Ïðîãðàììèðîâàíèå

Автоматическое Программирование

 Top Previous Next

Автоматическое программирование - это набор процедур из списка операций окна Программирования.

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

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

Если вы хотите изменить состав или порядок исполнения команд пакета используйте кнопку Редакт.Авто..., которая вызовет диалог Редактирование списка операций автоматического программирования.

Здесь можно отредактировать список команд при помощи кнопок Добавить и Убрать.

Необходимые функции выбираются из поля Доступные функции и при помощи кнопки Добавить переносятся в поле Выбранные функции. Удаление происходит в обратном порядке: в поле Выбранные функции выбираются функции для удаления, затем кнопкой Убрать удаляются


Äèàëîã Îïöèè ïðîãðàììèðîâàíèÿ

Опции, Адреса, Чередование

 Top Previous Next

В этой закладке помещены дополнительные опции программирования:

Элементы диалога | Описание
Чередование данных | Группа из семи радио кнопок в поле Чередования данных позволяет использовать восьмиразрядные микросхемы памяти в системах с 16- и 32-разрядной организацией памяти.
Опции |
Тест присутствия микросхемы в колодке | При установленной опции, перед любой манипуляцией с микросхемой производится тестирование наличия микросхемы в колодке, при этом тестируется наличие контакта на каждом выводе микросхемы.
Проверять идентификатор микросхемы | При установленной опции, будет контролироваться внутренний идентификатор микросхемы.
Реверсировать порядок байт | При установленной опции при работе с микросхемой (программирование, чтение, сравнение) байты в шестнадцатибитном слове меняются местами. В дампе буфера данные местами не меняются и соответствуют загруженному файлу. ).
Контроль чистоты перед программированием | При установленной опции каждое выполнение процедуры Program будет предварять процедура Blank check
Проверка после программирования | При установленной опции каждое выполнение процедуры Program будет заканчиваться процедурой Verify
Проверка после чтения | При установленной опции каждое выполнение процедуры Read будет заканчиваться процедурой Verify


×åðåäîâàíèå äàííûõ

Чередование данных

 Top Previous Next

Группа из семи радио кнопок поля Чередования данных

Элемент диалога | Описание
Нет | Чередования данных нет. Буфер данных рассматривается как непрерывный массив данных.
Четный байт | Массив данных рассматривается как массив шестнадцатиразрядных слов, микросхема работает только с байтами, расположенными по четным адресам. Например, при чтении микросхемы в буфер нулевой байт микросхемы будет помещен в нулевой байт буфера, первый байт микросхемы - во второй байт буфера и т.д.
Нечетный байт | Массив данных рассматривается как массив шестнадцатиразрядных слов, микросхема работает только с байтами, расположенными по нечетным адресам. Например, при чтении микросхемы в буфер нулевой байт микросхемы будет помещен в первый байт буфера, первый байт микросхемы - в третий байт буфера и т.д.
Байт 0 | Массив данных рассматривается как массив 32-разрядных слов, микросхема работает только с нулевым байтом 32-разрядного слова. Например, при чтении микросхемы в буфер нулевой байт микросхемы будет помещен в нулевой байт буфера, первый байт микросхемы - в четвертый байт буфера и т.д.
Байт 1 | Массив данных рассматривается как массив 32-разрядных слов, микросхема работает только с первым байтом 32-разрядного слова. Например, при чтении микросхемы в буфер нулевой байт микросхемы будет помещен в первый байт буфера, первый байт микросхемы - в пятый байт буфера и т.д.
Байт 2 | Массив данных рассматривается как массив 32-разрядных слов, микросхема работает только со вторым байтом 32-разрядного слова. Например, при чтении микросхемы в буфер нулевой байт микросхемы будет помещен во второй байт буфера, первый байт микросхемы - в шестой байт буфера и т.д.
Байт3 | Массив данных рассматривается как массив 32-разрядных слов, микросхема работает только с третьим байтом 32-разрядного слова. Например, при чтении микросхемы в буфер нулевой байт микросхемы будет помещен в третий байт буфера, первый байт микросхемы - в седьмой байт буфера и т.д.


Îêíî Ðåäàêòîð Ïàðàìåòðîâ Ìèêðîñõåìû è Àëãîðèòìà Ïðîãðàììèðîâàíèÿ

Окно Редактор Параметров Микросхемы и Алгоритма Программирования

 Top Previous Next

В окне Параметры Микросхемы и Алгоритма представлена информация о параметрах микросхемы и параметрах алгоритма программирования.

Информация в этом окне разбита на две группы Параметры Микросхемы и Параметры Алгоритма. Эти группы разделены горизонтальными линиями голубого цвета.

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

ВАЖНО! Примечание: Любые изменения в этом окне не вызывают немедленные изменения в микросхеме. Установка параметров, сделанная в этом окне, только подготавливает конфигурацию программируемого устройства. Параметры микросхемы будут запрограммированы в микросхему только после активизации процедуры Программирования в списке Параметры микросхемы поля Операции окна Программирование.

Окно разделено на три вертикальных колонки:

1. наименование параметра,
2. его значение,
3. краткое описание параметра.

Наименование редактируемых параметров показано синим цветом, прочее - черным цветом; если пользователь изменил параметр, новое значение отображается красным цветом. Если значение велико для отображения, оно замещается тремя точками (‘…’). Если эти точки красные, значит, параметр был изменен.

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

Кнопки панели | Описание
Edit | При помощи этой кнопки можно отредактировать параметр, который выбран активной линией. Чтобы отредактировать параметр, дважды щелкните левой кнопкой мыши по его имени,тогда появится Команда Edit. Для разных параметров вызываются разные Активные окна.
Min.Value | При помощи этой кнопки можно присвоить минимальное значение тому параметру, который выбран активной линией.
Max.Value | При помощи этой кнопки можно присвоить минимальное значение тому параметру, который выбран активной линией.
Default | При помощи этой кнопки можно присвоить значение по умолчанию тому параметру, который выбран активной линией.
All Default | При помощи этой кнопки можно присвоить значения по умолчанию всем параметрам.


Êîìàíäà Edit

Команда Edit

Top Previous Next

Редактирование параметров микросхемы и алгоритма программирования осуществляется в следующих форматах:

Параметры | Описание
Выпадающее меню | Редактирование в этом формате осуществляется в том случае, когда значение параметра выбирается из предопределенного списка.
Диалог Check Box | Редактирование в этом формате осуществляется в том случае, когда при редактировании параметра предлагается включить/выключить опцию программирования.
Изменение значения параметра | Редактирование в этом формате осуществляется в том случае, когда при редактировании параметра программирования допускается изменить его значение. В заголовке диалога указывается допустимый диапазон изменения параметра. В этом формате, обычно, редактируются напряжения питания и программирования микросхем.


Îêíî Äàìï Áóôåðà

Окно Дамп Буфера

Top Previous Next

Окно Дамп отображает содержимое буфера памяти.

ChipProgLPT поддерживает гибкую структуру буфера:

?

Вы можете создать бесконечное количество буферов. Количество буферов, которые вы можете открыть лимитировано только объемом RAM вашего компьютера.

?

Каждый буфер имеет определенное количество подуровней, которое зависит от типа целевого устройства. Каждый подуровень связан с секцией адресного пространства целевого устройства. Например, для микроконтроллера Microchip PIC16F84 каждый буфер имеет три подуровня: 1) память кодов; 2) память данных EEPROM; 3) подуровень пользовательской идентификации.

Гибкая структура буфера позволяет простым образом манипулировать несколькими областями данных, которые располагаются в разных буферах. Чтобы открыть окно Дамп Буфера надо выбрать команду Главное Меню > Просмотр > Дамп буфера.

На рисунке изображены три открытых окна, которые представляют три части одного и того же буфера:

1) левое (самое большое окно) показывает содержимое буфера, начиная с адреса 0h;

2) второе окно показывает тоже содерждание буфера с того же адреса, но данные представлены в десятичном формате;

3) третье окно показывает содержимое буфера, начиная с адреса 200h.

В каждом окне слева находится поле адреса. Значение адреса соответствует адресу первой ячейки строки. Адресация всегда увеличивается на один байт: 0, 1, 2…. Написание адреса заканчивается двоеточием (:). Когда вы изменяете размер окна, адреса автоматически изменяются в зависимости от количества байт данных в строке. Некоторые окна могут иметь справа поле, в котором данные представляются в ASCII формате. Сверху на панели инструментов перечислены команды, которыми можно пользоваться при работе с окном. Для этих же целей можно вызвать локальное меню, кликнув правой кнопкой мыши по окну.

Локальное меню

Локальное меню окна содержит следующие команды, для каждой команды имеется кнопка панели инструментов окна:

Команда | Описание
Новый адрес... | Открывает диалог Отобразить с адреса. Можно ввести число
Загрузить файл в буфер... | Открывает диалог Загрузить Файл
Сохранить данные в файле... | Открывает диалог Сохранить Файл
Конфигурация буфера... | Открывает диалог Конфигурация буфера.
Опции отображения... | Открывает диалог Настройки окна дампа.
Только просмотр, редактирование запрещено | Если установить эту опцию, то редактирование в поле значений запрещается. Аналогично действует кнопка View, которая в этом случае будет утоплена. Если опция не установлена, в поле значений разрешено редактирование.
Изменить значение или начальный адрес | Открывает диалог Отобразить с адреса или Открывает диалог Изменить значение
Операции с блоком памяти | Открывает диалог Операции с блоком памяти, для действий с участками памяти.
Перемещение между полями | Позволяет переходить курсору из правого поля в левое и наоборот


Äèàëîã Îòîáðàçèòü ñ àäðåñà

Диалог Отобразить с адреса

 Top Previous Next

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

Элемент диалога | Описание
Введите новый адрес | Задаёт новый адрес.
История ввода | Список предыдущих наборов


Äèàëîã Êîíôèãóðàöèÿ áóôåðà

Диалог Конфигурация буфера

 Top Previous Next

Диалог Конфигурация буфера позволяет сконфигурировать буферы и подслои в удобной для вас форме.

По умолчанию в поле Имя буфера устанавливается ‘Buffer #0’. Следующий буфер будет называться ‘Buffer #1’ и так далее.

Для того чтобы вызвать диалог Конфигурация буфера, нажмите кнопку Configure Buffer на панели инструментов окна Дамп Буфера. Для этих целей можно использовать локальное меню.

По умолчанию каждый буфер имеет минимальный размер 128K RAM и заполняется предопределенным значением (обычно 0FFh). Вы можете установить эти данные в соответствии со своими требованиями.

В этом диалоге вы можете ввести имя буфера по вашему усмотрению - для этого достаточно просто ввести имя в поле Имя буфера.

Определите значения заполнения буфера при инициализации: либо предопределенное, либо заказное.


Äèàëîã Èçìåíèòü Çíà÷åíèå èëè Íà÷àëüíûé Àäðåñ

Диалог Изменить Значение или Начальный Адреса

 Top Previous Next

Изменить адрес

Для того чтобы изменить стартовый адрес, нажмите кнопку Addr на панели инструментов окна Дамп Буфера. Для этих целей можно использовать локальное меню. Затем надо ввести значение в поле Введите новый адрес или выбрать его из поля Историю ввода.

Изменить значение

Для того чтобы изменить значение ячейки памяти, нажмите кнопку Modify на панели инструментов окна Дамп Буфера. Для этих целей можно использовать локальное меню. Затем надо ввести значение в поле Введите новое значение или выбрать его из поля Историю ввода.


Îïåðàöèè ñ Áëîêàìè Ïàìÿòè

Операции с Блоками Памяти

 Top Previous Next

Этот диалог выполняет действия с содержимым участков памяти. Программа ChipProgLPT обеспечивает выполнение сложных операций с блоками памяти.

Панель Исходное адресное пространство задаёт участок памяти с начальными данными для операции. Результат операции будет помещён в участок памяти, заданный в панели Адресное пространство назначения. По умолчанию, второй участок совпадает с первым участком. Если операция не использует участок памяти для результата, например, при Поиске и Замене, то параметры этой панели будут недоступны.

Элемент диалога | Описание
Начальный адрес | Начальный адрес участка памяти.
Конечный адрес | Конечный адрес участка памяти, включительно. Конечный адрес участка памяти определяется по размеру исходного участка.
Весь диапазон | Задаёт начальный и конечный адреса равными началу и концу всего адресного пространства памяти данного типа.

Диалог выполняет следующие операции. Каждая операция начинает выполняться, после того как вы нажмете кнопку OK .

Операция | Описание
Заполнить значением | Заполнить буфер значением или последовательностью значений, заданными в поле справа.
Поиск данных | Искать в участке с начальными данными значение или последовательность значений, заданную в поле справа.
Копировать | Копировать данные из участка памяти в другой участок. Можно скопировать блок в пределах памяти одного и того же типа, или в память другого типа.
Сравнить | Сравнить содержимое двух участков памяти. Если есть различия, то появится окошко сообщения с адресами ячеек и значениями, которые не совпадают и вопросом о продолжении операции сравнения.
Инвертировать | Инвертировать содержимое участка памяти побитно.
Вычислить контрольную сумму | Вычислить контрольную сумму данных в исходном участке памяти. Смотрите примечание внизу.
Вычесть результат из нуля | Вычесть полученную контрольную сумму из нуля.
Записать результат в память | Записать 32-битный результат вычисления контрольной суммы по адресу, заданному в поле Начальный адрес для участка назначения. Если этот флаг снят, то ChipProgLPT только покажет контрольную сумму в виде сообщения.
AND со значением | Для заданного участка памяти выполнить побитно операцию И с операндом из текстового поля справа. Смотрите примечания внизу.
OR со значением | Для заданного участка памяти выполнить побитно операцию ИЛИ с операндом из текстового поля справа..
XOR со значением | Для заданного участка памяти выполнить побитно операцию ИСКЛЮЧАЮЩЕЕ ИЛИ с операндом из текстового поля справа.

Примечания

1. Исходный участок и участок назначения могут перекрываться: операции выполняются при помощи временного промежуточного буфера.
2. Команды Копировать и Сравнить используют участки, заданные в панелях Исходное адресное пространство и Адресное пространство назначения.
3. Контрольная сумма вычисляется как 32-битное число простым суммированием. Если данное адресное пространство организовано по байтам, то будут суммироваться 8-битные значения. Если оно организовано по словам, тогда суммироваться будут 16-битные значения.
4. Логические операции (И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ) выполняются над данными из участка, заданного в Исходное адресное пространство, а результат операции записывает в участок, заданный в Адресное пространство назначения. При этом размер операнда, указанного для операции, будет равным размеру единицы памяти, т.е., будет соответствовать организации памяти на устройстве пользователя.(16-бит для памяти Prog, Data16, Reg и Stack, 8-бит для памяти Data8).
5. Есть возможность выполнять более сложные действия с блоками памяти, с помощью файлов сценария.


Äèàëîã Íàñòðîéêè îêíà Äàìï

Диалог Настройки окна Дамп

 Top Previous Next

Диалог управляет параметрами отображения данных в окне Дамп Буфера.

Диалог Настройки окна Дамп можно вызвать из локального меню командой Опции отображения или кнопкой Setup на панели инструментов.

Элементы диалога | Описание
Буфер: | В поле Буфер представлен список открытых буферов и выбранный буфер, с которым будет взаимодействовать выбранная функция программирования.
Формат отображения | Группа из трех радио кнопок, которая позволяет выбрать формат отображения данных: двоичный, шестнадцатеричный или десятичный.
Отображать данные как: | Группа из четырех радио кнопок, которая позволяет выбрать размер отображения данных: байты, слова(16бит), двойные слова(32 бита), четверные слова(64 бита).
Непечатаемые символы ASCII |
Заменять символы с кодами 0х00...0х20 | Если выбрана эта опция, то символы из представленного ряда будут заменяться на '.' или пробел. Один из этих символов надо выбрать из двух радио кнопок Заменять на:
Заменять символы с кодами 0х80...0хFF | Если выбрана эта опция, то символы из представленного ряда будут заменяться на '.' или пробел. Один из этих символов надо выбрать из двух радио кнопок Заменять на:
Опции | Набор опций для удобства отображения данных.
Панель ASCII-кодов | Открывает или закрывает поле с правой стороны окна, в котором информация отображается в ASCII-кодах.
Отображать контрольную сумму | Если выбрана эта опция, то появляется информация о контрольной сумме в верхней части окна под панелью инструментов.
Ограничить размер дампа размером подслоя | Если выбрана эта опция, то будет отображаться кусок памяти размером в подслой.
Отображать десятичные и шестнадцатеричные данные как знаковые | Если выбрана эта опция, то данные будут отображаться как знаковые (старший бит=1 - отрицательное число; старший бит=0 - положительное число).
Всегда отображать '+' или '-' | Эта опция зависима от предыдущей опции. Если выбраны две эти опции, то будет отображаться и знак '+' и знак '-'.
Отображать лидирующие нули в десятичных числах | Если выбрана эта опция, то отображаются незначащие нули вначале десятичных чисел.
Реверсировать порядок байт в словах (сначала LSB) | Если выбрана эта опция, то порядок байт в словах будет реверсирован.
Реверсировать порядок слов в двойных словах | Если выбрана эта опция, то порядок слов в двойных словах будет реверсирован.
Реверсировать порядок двойных слов в четверных словах | Если выбрана эта опция, то порядок двойных слов в четверных словах будет реверсирован.


Äèàëîã Çàãðóçèòü Ôàéë

Диалог Загрузить Файл

 Top Previous Next

Диалог определяет параметры файла для загрузки в Буфер.

Элементы диалога | Описание
Имя файла: | Поле, в котором надо написать имя файла с путем или найти нужный файл по кнопке Обзор.
Формат файла | Девять радио кнопок для выбора Формата Файла.
Буфер загрузки: | В поле Буфер представлен список открытых буферов и выбранный буфер, с которым будет взаимодействовать выбранная функция программирования.
Подслой загрузки: | Загрузить данные в подслой буфера
Адрес загрузки двоичного файла: | В этом поле определяют начальный адрес с которого будет записываться загружаемый файл
Смещение адресов загрузки: | Файл загружается в адреса, указанные в файле плюс смещение, указанное в этом поле. Смещение может быть как положительным, так и отрицательным.


Äèàëîã Ñîõðàíèòü Ôàéë èç áóôåðà

Диалог Сохранить Файл из буфера

 Top Previous Next

Диалог определяет параметры файла для сохранения из Буфера..

Элементы диалога | Описание
Имя файла: | Поле, в котором надо написать имя файла с путем или найти нужный файл по кнопке Обзор.
Адреса сохраняемой области | Начальный и Конечный адреса определяют область, которую надо сохранить. Если надо сохранить все адреса используйте кнопку Все.
Формат файла | Девять радио кнопок для выбора Формата Файла.
Буфер, откуда сохранить файл | В поле Буфер представлен список открытых буферов и выбранный буфер, с которым будет взаимодействовать выбранная функция программирования.
Подслой, откуда сохранить файл | Сохранить данные из подслоя буфера


Ôîðìàòû Ôàéëîâ

Форматы Файлов

 Top Previous Next

Программатор поддерживает следующие форматы файлов:

Название | Описание
Standard/Extended Intel HEX (*.hex) | Стандартный формат фирмы Intel. HEX-файл представляет собой текстовый файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию. Поддерживается как стандартный, так и расширенный формат файла.
Двоичный образ памяти (*.bin) | Двоичный образ памяти. Чтобы загрузить двоичный файл, нужно указать начальный адрес загрузки.
Motorola S-record (*.hex, *.s, *.mot) | HEX формат фирмы Motorola. HEX-файл представляет собой текстовый файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию. Поддерживается весь спектр форматов Motorola S-record.
POF (*.pof) | Формат данных фирмы Altera. POF-файл представляет собой специальный файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию.
JEDEC (*.jed) | Формат данных для программирования PLD (программируемых логических матриц). Этот формат является наиболее распространенным форматом для программирования PLD. JEDEC-файл представляет собой специальный файл, содержащий загрузочные адреса данных, соответствующие данные, информацию о тест-векторах и разнообразную специальную информацию.
PRG (*.prg) | Специальный формат фирмы Xilinx. Этот формат используется для программирования микросхем PLD (программируемых логических матриц) фирмы Xilinx. PRG-файл представляет собой специальный файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию.
Holtek OTR (*.otp) | Формат данных фирмы Holtek. Этот OTP-файл представляет собой специальный файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию.
Angstrem SAV (*.sav) | Формат данных фирмы Angstrem. Этот SAV-файл представляет собой специальный файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию.
ASCII Hex (*.txt) | Этот TXT-файл представляет собой текстовый файл, содержащий загрузочные адреса данных, соответствующие данные, контрольные суммы и некоторую другую специальную информацию.


Îêíî Èíôîðìàöèÿ î Ìèêðîñõåìå

Окно Информация о Микросхеме

 Top Previous Next

В этом окне Информация о Микросхеме помещена информация о производителе и типе микросхемы. Если для работы с микросхемой требуется дополнительный адаптер, в этом окне появится сообщение, в котором будет указано название этого адаптера. Например, на рисунке ниже показаны два адаптера для выбранного микроконтроллераPIC18F46K20 - ‘AE-QFN44-p16’ ( корпус QFN-44) и ‘AE-T44-p16’ (корпус TQFP-44). На картинке в нижней части окна схематично показано, как нужно устанавливать микросхему или адаптер в сокетку программатора.

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


Òàáëèöà ñîåäèíåíèé àäàïòåðà.

Таблица соединений адаптера.

 Top Previous Next

Таблица соединений всех адаптеров представлена в файле adapters.chm.

Формат таблиц:

Первая колонка | Разъем, устанавливаемый в программатор
Вторая колонка | Разъем (сокетка), в которую устанавливается микросхема
Третья и далее колонки | Дополнительные активные и пассивные элементы (если есть)
Строки таблицы | Соединения компонентов адаптера.

В качестве примера представим таблицу для адаптера AE-P20U.

DIP-20 | PLCC-20
1 | 1
2 | 2
3 | 3
4 | 4
5 | 5
6 | 6
7 | 7
8 | 8
9 | 9
10 | 10
11 | 11
12 | 12
13 | 13
14 | 14
15 | 15
16 | 16
17 | 17
18 | 18
19 | 19
20 | 20

Первая колонка таблицы - это разъем, устанавливающийся в программатор, правая - разъем (сокетка), в которую устанавливается микросхема.

В нашем примере: со стороны программатора - разъем DIP-20, микросхема устанавливается в ZIF сокетку PLCC-20.

Строки таблицы символизируют соединения: первый вывод разъема DIP-20 соединен с первым выводом сокетки PLCC-20, второй - со вторым и т.д.

Бывают более сложные адаптеры, на которых установлены активные и пассивные элементы, но основной принцип описания адаптера остается прежним.


Òàáëèöà ïîäêëþ÷åíèÿ ê àäàïòåðó.

Таблица подключения к адаптеру.

 Top Previous Next

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

Формат таблицы:

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

В качестве примера представим таблицу соединений микросхемы Zilog Z8Fxxx к адаптеру AE-ISP-U1.

BH10 | Z8Fxxxx
1 | Vcc
2 | RESET
3 | GND
4 | DBG
5 | GND
6 |
7 |
8 |
9 |
10 |

Как видно из таблицы подсоединяется всего 5 выводов: первый вывод разъема адаптера соединяется с выводом VCC микросхемы, второй - с выводом RESET и т.д.


Îêíî Êîíñîëü Ñîîáùåíèé

Окно Консоль Сообщений

 Top Previous Next

Окно Консоли отображает сообщения, которые ChipProgLPT выдает пользователю: сообщения об ошибках и информационные.

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

· Можно просмотреть последние 256 сообщений и получить справку для каждого из них.
· Сообщения не требуют какого-либо Вашего отклика или реакции. Они собираются их в памяти PC, откуда могут быть извлечены в любой момент.

Окно должно быть достаточно большим, чтобы вместить несколько сообщений. Можно сохранить содержимое окна сообщений в отдельном файле. Для этого нужно поставить флаг и определить название файла в Конфигурация>Опции Экрана>закладка Прочие,

Окно Консоль сообщений сохраняет последние 256 сообщений даже тогда, когда оно закрыто. Его можно открыть в любой момент и посмотреть сообщения.

Выбранное сообщение выделено заданным цветом фона. Чтобы выбрать другое сообщение, щёлкните его кнопкой мыши или используйте клавиши управления курсором.

Локальное меню

Локальное меню окна содержит следующие команды, для каждой команды имеется кнопка панели инструментов окна:

Команда | Описание
Очистить окно | Удаляет из окна все сообщения.
Справка по сообщению | Открывает окно справки для выбранного сообщения.


Îêíî Ðåäàêòîðà

Окно Редактора

 Top Previous Next

Основное назначение окна Редактора—отображать и редактировать исходный текст программы.

Кнопка | Команда | Описание
 | Новый файл | Открывает окно для записи нового файла.
 | Открыть... | Открывает диалог Открыть файл.
 | Сохранить | Сохраняет открытый файл.
 | Сохранить как | Открывает окно Сохранить файл как, в котором можно определить имя и путь сохраняемого файла.
 | Печать | Выводит файл на печать. .
 | Свойства | Открывает окно Свойства:. В окне имеется три закладки: закладка Общие, закладка Безопасность, закладка Подробно.


Ðåäàêòîð Òåêñòà

Редактор Текста

 Top Previous Next

Команды этого меню действуют в отношении активного в данный момент окна Редактора.

Кнопка

Команда

Описание

Откат

Отменяет последнюю операцию редактирования текста в этом окне. Количество шагов, которое охватывает функция отмены действия (Undo).

Сохранить файл на диске

Сохраняет текущий файл.

Сохранить файл как...

Открывает диалог Сохранить файл как...

Печать

Выводит файл на печать

Скопировать

Копирует выделенный блок в буфер обмена. Формат текста в буфере стандартный, и этот блок доступен другим программам.

Удалить

Удаляет выделенный блок и помещает его в буфер обмена.

Вставить блок

Копирует блок из буфера обмена, начиная с курсора.

Поиск текста

Открывает диалог Поиск текста.

Повторить поиск

Повторяет поиск с теми же параметрами, которые были заданы для предыдущего поиска.

Поиск/замена текста

Открывает диалог Поиск/замена текста.

Показать результаты поиска по файлам

Повторно показывает результаты поиска в нескольких файлах в диалоге Результаты поиска по файлам.

Перейти на строку с номером

Открывает диалог Отобразить с новой строки. Исходный текст будет показан, начиная с указанной строки.

Поставить закладку

Открывает диалог Установить закладку для местных закладок

Восстановить закладку

Открывает диалог Восстановить закладку для местных закладок.

Режим сжатого текста

Переключает Режим сжатого текста. Режим сжатого текста предназначен для отображения только строк, удовлетворяющих некоторому заданному пользователем критерию.

Параметры режима сжатого текста

Открывает диалог Параметры режима сжатого текста.

Найти пару для скобки/ комментария

Находит парную скобку или метку комментария для скобки или метки в позиции курсора. Если пара найдена, то курсор переместится к ней.

Скобки могут быть: круглыми ( или ), квадратными [ или ] и фигурными { или }. Метки могут быть /* или */.

Восстановить контекст редактирования

Активизирует окно Редактора предыдущего редактирования и устанавливает курсор вместо последнего редактирования.

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

Скрипты пользователя


Äèàëîã Ïîèñê òåêñòà

Диалог Поиск текста

 Top Previous Next

Диалог задаёт параметры поиска текстовой фразы в файлах. Одноимённые параметры в этом диалоге и диалоге Поиск/замена текста эквивалентны. Можно указывать имена файлов с одним или несколькими символами маски. Вместе с именем файла можно указывать путь. Также, можно выполнять поиск сразу в нескольких файлах, используя параметры в панели Поиск в файлах.

Элемент диалога | Описание
Строка для поиска | Задаёт фрагмент текста для поиска (искомую строку).
Учитывать регистр | Включает проверку совпадения регистра букв. По умолчанию выключен.
Только целые слова | Искать только целые слова: строка будет считаться найденной, только если она находится между знаками препинания или разделительными знаками (пробелами, символами табуляции, запятыми, кавычками, и т.д.). По умолчанию выключен.
Использовать выражения | Указывает, что искомая строка является выражением поиска. По умолчанию выключен.
Вся область | Искать во всем файле. По умолчанию включен.
Только выделенный текст | Искать только в выделенном тексте.
С позиции курсора | Искать, начиная с текущей позиции курсора
Во всей области поиска | Искать от начала или конца файла (в зависимости от направления поиска). Включена по умолчанию.
Выполнить поиск в файлах | Включает поиск в нескольких файлах проекта (смотрите примечания внизу). Если флаг снят, то поиск будет только в активном окне Редактора.
Искать во всех исходных файлах проекта | Искать во всех исходных файлах, включённых в проект.
Искать в файлах зависимостей | Искать во всех исходных файлах, включённых в проект, и всех файлах, от которых исходные файлы зависят явно или неявно. Для языка Си - это заголовочные файлы (*.h).
Маски файлов | Содержит маску или маски имён файлов, в которых выполнять поиск. Если масок несколько, их надо разделить точками с запятой. Чтобы задать длинные имена, принятые в Windows, кавычек ставить не нужно. Пример: *.txt;*.c;c:\prog\*.h. Эта опция и Искать во всех исходных файлах проекта действуют независимо друг от друга: можно искать во всех файлах проекта. И в файлах, чьи имена удовлетворяют заданной маске (маскам).
Искать в поддиректориях | Искать в поддиректориях всех папок, заданных масками и опцией Искать во всех исходных файлах проекта.
Начальный путь | Начать поиск с заданной здесь папки. Эта папка служит общим путём и удобна, когда надо подставить несколько масок следующего вида: c:\prog\text\source\*.txt;c:\prog\text\source\*.doc В таком случае, используйте маски (*.txt;*.doc) и общий путь (c:\prog\text\source).

Примечания

1. Если задан поиск в файле, открытом в окне Редактора, то поиск будет выполнен в буфере окна, а не в файле на диске.
2. Если задан поиск в нескольких файлах, то поиск выполняется во всех исходных файлах проекта. По окончании поиска открывается диалог Результаты поиска по файлам.


Äèàëîã Ïîèñê/Çàìåíà òåêñòà

Диалог Поиск/Замена текста

 Top Previous Next

Диалог задаёт параметры поиска текстовой фразы в файлах. Одноимённые параметры в этом диалоге и диалоге Поиск/замена текста эквивалентны. Можно указывать имена файлов с одним или несколькими символами маски. Вместе с именем файла можно указывать путь. Также, можно выполнять поиск сразу в нескольких файлах, используя параметры в панели Поиск в файлах.

Элемент диалога | Описание
Строка для поиска | Задаёт фрагмент текста для поиска (искомую строку).
Заменить на | Задаёт фрагмент текста, который будет подставлен вместо найденного.
Учитывать регистр | Включает проверку совпадения регистра букв. По умолчанию выключен.
Только целые слова | Искать только целые слова: строка будет считаться найденной, только если она находится между знаками препинания или разделительными знаками (пробелами, символами табуляции, запятыми, кавычками, и т.д.). По умолчанию выключен.
Использовать выражения | Указывает, что искомая строка является выражением поиска. По умолчанию выключен.
Подтверждение замены | Указывает открывать диалог Подтвердите замену для подтверждения замены данного найденного фрагмента текста. Включён по умолчанию.
Вся область | Искать во всем файле. По умолчанию включен.
Только выделенный текст | Искать только в выделенном тексте.
С позиции курсора | Искать, начиная с текущей позиции курсора
Во всей области поиска | Искать от начала или конца файла (в зависимости от направления поиска). Включена по умолчанию.
Выполнить поиск в файлах | Включает поиск в нескольких файлах проекта (смотрите примечания внизу). Если флаг снят, то поиск будет только в активном окне Редактора.
Искать во всех исходных файлах проекта | Искать во всех исходных файлах, включённых в проект.
Искать в файлах зависимостей | Искать во всех исходных файлах, включённых в проект, и всех файлах, от которых исходные файлы зависят явно или неявно. Для языка Си - это заголовочные файлы (*.h).
Маски файлов | Содержит маску или маски имён файлов, в которых выполнять поиск. Если масок несколько, их надо разделить точками с запятой. Чтобы задать длинные имена, принятые в Windows, кавычек ставить не нужно. Пример: *.txt;*.c;c:\prog\*.h. Эта опция и Искать во всех исходных файлах проекта действуют независимо друг от друга: можно искать во всех файлах проекта. И в файлах, чьи имена удовлетворяют заданной маске (маскам).
Искать в поддиректориях | Искать в поддиректориях всех папок, заданных масками и опцией Искать во всех исходных файлах проекта.
Начальный путь | Начать поиск с заданной здесь папки. Эта папка служит общим путём и удобна, когда надо подставить несколько масок следующего вида: c:\prog\text\source\*.txt;c:\prog\text\source\*.doc В таком случае, используйте маски (*.txt;*.doc) и общий путь (c:\prog\text\source).
Поиск | Заменить первый найденный экземпляр искомой строки.
Заменить все | Заменить все найденные экземпляры искомой строки.

Примечания

1. Если задан поиск в файле, открытом в окне Редактора, то поиск будет выполнен в буфере окна, а не в файле на диске.
2. Если задан поиск в нескольких файлах, то поиск выполняется во всех исходных файлах проекта. По окончании поиска открывается диалог Результат поиска по файлам.


Âûðàæåíèÿ ïîèñêà

Выражения поиска

 Top Previous Next

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

? Означает один любой символ в этой позиции. Пример: если задать ?ell в качестве искомой строки, то будут найдены слова «bell», «tell», «cell», и т.д.
% Означает начало строки. Символы, следующие за «%» должны начинаться с позиции 1. Пример: %Counter —найти слово «Counter», которое начинается с первой позиции в строке.
$ Конец строки. Символы, предшествующие «$», должны находиться в последних позициях в строке. Пример: Counter$ —найти слово «Counter» в конце строк.
@ Найти непосредственно символ; «@» позволяет задавать управляющие символы, как обычные буквы. Пример: @? –найти знак вопроса.
\xNN Шестнадцатеричное значение символа. Пример: \xA7 —найти символ, шестнадцатеричный код которого равен A7.
+ Неопределённое количество единиц предыдущего символа. Например, если указать 1T+2, то редактор найдёт строки, содержащие «1», следом за которой идёт «2», между которыми находится любое количество букв T.
[c1-c2] Равенство любому символу в интервале от с1 до c2. Пример: [A-Z] означает любую букву от A до Z.
[~c1-c2] Равенство любому символу, не лежащему в интервале от c1 до c2, т.е., от 0 до c1–1 или от c2+1 до 255. Пример: [~A-Z] означает любой символ, кроме букв верхнего регистра.
text1|text2 Символ «|» обозначает логическое «ИЛИ» и редактор будет искать text1 или text2. Пример: LPT|COM|CON —найти «LPT», или «COM», или «CON».

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


Îêíî Ïåðåìåííûå ñ àâòîïðîñìîòðîì

Окно Переменные с автопросмотром

 Top Previous Next

Во время отладки программы, это окно автоматически отображает имена и значения переменных, которые в данный момент видны в окне Редактора.

Окно Переменные с автопросмотром поделено красной горизонтальной линией на две части, верхнюю и нижнюю. В каждый момент времени в окне Редактора есть строка, соответствующая текущему значению счётчика команд микроконтроллера. Эта строка выделена голубым цветом (по умолчанию). Имена переменных, находящихся в этой строке, и их текущие значения отображаются в верхней части окна Переменные с автопросмотром. Ниже красной линии, окно отображает списки: (a) параметры локальных переменных и параметры текущей функции; (b) прочие переменные, видимые в окне Редактора.

Содержимое окна Переменные с автопросмотром автоматически изменяется при перемещении в окне Редактора.

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

Локальное меню

Локальное меню окна содержит следующие команды, у большинства команд есть кнопка на панели инструментов окна:

Команда | Описание
Изменить значение | Открывает диалог Изменить значение чтобы задать новое значение для выделенной переменной. Это же самое можно сделать, просто начав печатать новое значение на клавиатуре.
Скопировать в окно Переменных | Копирует выделенную переменную в окно Переменные.
Формат отображения | Переключает формат представления всех значений в окне между шестнадцатеричным, десятичным, двоичным и ASCII.
Не показывать функции и нетипизированные объекты | Установленный флаг выключает отображение имён и адресов функций и нетипизированных объектов. По умолчанию флаг установлен.


Íàñòðîéêè ïàíåëè àâòîïðîñìîòðà

Настройки панели автопросмотра

 Top Previous Next

Этот диалог управляет параметрами отображения выделенной переменной в окне Переменные с автопросмотром.

Элементы диалога | Описание
Формат отображения | Указывает формат представления для выделенного выражения: двоичный, шестнадцатеричный, десятичный или ASCII.
Всплывающее описание | Включает всплывающие описания для регистров специального назначения
Отображать битовую схему | Включает всплывающие описания битовой схемы регистров специального назначения, если они есть.
Отображать описания битов | Включает всплывающие описания для битов регистров специального назначения, если они есть.
Не отображать фунции, typedefs и нетипизированные объекты | Когда этот флаг установлен не отображаются фунции, typedefs и нетипизированные объекты.
Авто-дописывание: добавить имена SFR и битов | Когда этот флаг установлен, то автоматически дописываются имена SFR и имена битов.


Äèàëîãè Óñòàíîâèòü çàêëàäêó/Âîññòàíîâèòü çàêëàäêó

Диалоги Установить закладку/Восстановить закладку

 Top Previous Next

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

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

Чтобы открыть диалог Установить закладку, нажмите Alt+[. Чтобы открыть диалог Восстановить закладку, нажмите Alt+]. Чтобы установить закладку или перейти к ней, нажмите её кнопку с номером. Номер строки, в которой установлена закладка, позиция закладки в строке (в скобках) и текст этой строки отображены справа от кнопки.

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


Äèàëîã Îòîáðàçèòü ñ íîâîé ñòðîêè

Диалог Отобразить с новой строки

 Top Previous Next

Этот диалог выполняет переход в активном окне Редактора к отображению другой строки исходного текста. Следует указать номер строки или выбрать один из ранее использованных номеров в списке История ввода. Номер первой строки — 1.


Ôóíêöèÿ Áûñòðîãî ïðîñìîòðà

Функция Быстрого просмотра

 Top Previous Next

Функция быстрого просмотра работает следующим образом: если задержать курсор мыши над именем переменной в окне Редактора, или окне Текст сценария, то через полсекунды появится небольшое желтое окошко с текущим значением этой переменной. При дальнейшем движении курсором мыши это окошко исчезнет.


Äåéñòâèÿ ñ áëîêàìè

Действия с блоками

 Top Previous Next

Операции с блоками предназначены для выполнения редактирования с более чем одним символом одновременно. Окно Редактора обеспечивает постоянные блоки (блоки с фиксацией выделения, persistent blocks) и выполняет полный набор действий с потоковыми (stream), вертикальными (column) и строчными блоками текста.

Непостоянные блоки Как только такой блок выделен, с ним надо сразу выполнять действие (удалять, копировать, и т.д.), потому что любое перемещение курсора снимает выделение блока. Если начать печатать текст в тот момент, когда выделен такой блок, то этот блок будет удалён и заменён напечатанным текстом.

Постоянные блоки Выделение блока сохраняется до тех пор, пока выделение не будет снято явно (клавишами Shift+F3) или блок не будет удалён (клавишами Ctrl+X). Для таких блоков операция вставки (paste) выполняется с особенностями. Для них есть две дополнительные операции: быстрое копирование и быстрое перемещение. Эти операции не используют буфер обмена и для выполнения им нужно меньше нажатий клавиш.

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

Стандартные блоки включены по умолчанию (снят флаг Вертикальные блоки в диалоге Опции редактора).

Строчные блоки Такой блок состоит из строк текста целиком. Чтобы выделить строчный блок, поместите курсор в любую позицию в первой строке и нажмите Alt+Z, потом поместите курсор в любой позиции в последней строке блока и нажмите Alt+Z ещё раз (второе нажатие не нужно, если блок предстоит немедленно удалить или скопировать в буфер обмена).

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

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

char Timer0 far ;
char Timer1 far ;
char Int0   far ;
char Int1   far ;

Предположим, что в каждой строке слово «far» надо перенести и поместить сразу после слова «char». Потоковые блоки здесь помогут мало. Но задача может быть легко выполнена одним вертикальным блоком. Выделите вертикальный постоянный блок, содержащий слово «far» в каждой строке, поместите курсор на первую букву слова «Timer0» и нажмите Shift+F2 (быстрое перемещение блока):

Чтобы выделить блок, либо перемещайте мышь, нажав её левую кнопку, либо используйте клавиши со стрелками клавиатуры при нажатой клавише Shift. Чтобы снять выделение блока, нажмите Shift+F3.

Копирование / перемещение блоков

Выделенный блок можно скопировать или переместить в пределах этого же окна Редактора двумя способами: непосредственно (быстрое копирование, быстрое перемещение) и через буфер обмена (обычный способ Windows). Копирование и перемещение блоков между окнами Редактора или в другое приложение возможно только через буфер обмена.

Примечание. Результат копирования потокового или вертикального непостоянного блока зависит от режима вставки (INSERT). Если режим включён, то блок будет вставлен в текст в том месте, где находится точка ввода (мигающий курсор). В противном случае, копируемый блок будет записан поверх текста на участке такого же размера.

Быстрое копирование / перемещение

Быстрое копирование и перемещение блоков в пределах одного окна выполняется непосредственно, т.е., без использования буфера обмена, и поэтому удобно, поскольку для этого требуется только одно нажатие клавиш на одно действие. Выделите постоянный блок, потом поместите курсор в позицию, куда надо поместить блок, и нажмите Shift+F1 для копирования, или Shift+F2 для перемещения.


Îêíà, èñïîëüçóåìûå â Ôàéëàõ Ñöåíàðèÿ

Окна, используемые в Файлах Сценария

Top Previous Next

При отладке Файлов Сценария можно использовать окно Переменные и окно Переменные с автопросмотром.


Îêíî Ïåðåìåííûå

Окно Переменные

 Top Previous Next

Во время отладки программы окно Переменные отображает текущие значения явно заданных переменных.

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

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

На панели инструментов каждого из перечисленных выше окон есть кнопка +Watch, которая добавляет выбранный объект в окно Переменные.

Выбранный объект окно выделяет цветом. Чтобы выбрать другой объект, щёлкните его кнопкой мыши или используйте клавиши управления курсором.

Режимы отображения

В окне есть вертикальная и горизонтальная сетки, которые можно включить/выключить по отдельности.

Когда включена вертикальная сетка, данные в окне расположены столбцами и у каждого столбца есть заголовок в виде кнопки. Нажатие кнопок Имя, Тип и Адрес открывает диалог Опции отображения для выделенной в окне переменной. Нажатие кнопки Значение открывает диалог Изменить значение для выделенной переменной.

Когда вертикальная сетка выключена, двойной щелчок на строке с объектом открывает диалог Изменить значение для этой переменной.

Чтобы включить/выключить вертикальную сетку, используйте соответствующий флаг на закладке Шрифты (меню Конфигурация, команда Опции экрана).

Локальное меню

Локальное меню окна содержит следующие команды, для каждой команды имеется кнопка панели инструментов окна:

Команда | Описание
Добавить переменную/выражение | Добавляет один или несколько объектов в окно. Открывает диалог Добавить переменную в окно для выбора объекта по имени.
Удалить переменную из окна | Удаляет выбранный объект из окна.
Удалить все переменные из окна | Удаляет из окна все объекты.
Изменить значение | Открывает диалог Изменить значение, чтобы задать новое значение для выделенной переменной. Это же самое можно сделать, просто начав печатать новое значение на клавиатуре.
Переместить имя вверх | Перемещает выделенный в списке объект на одну строку вверх.
Переместить имя вниз | Перемещает выделенный в списке объект на одну строку вниз.
Опции отображения | Открывает диалог Опции отображения, чтобы изменить параметры отображения выделенного объекта, а также для добавления или удаления закладок в окне.
Добавить новую страницу | Открывает диалог Добавить новую страницу в окно Переменных


Äèàëîã Îïöèè Îòîáðàæåíèÿ îêíà Ïåðåìåííûå

Диалог Опции Отображения окна Переменные

 Top Previous Next

Этот диалог управляет параметрами отображения выделенной переменной в окне Переменные, а

также добавляет или удаляет закладки в этом окне.

Элементы диалога | Описание
Имя переменной | Содержит имя выделенной переменной или выражение. Список накапливает ранее использованные выражения.
Формат отображения | Указывает формат представления для выделенного выражения: двоичный, шестнадцатеричный, десятичный или ASCII.
Всплывающее описание | Включает всплывающие описания для регистров специального назначения
Отображать битовую схему | Включает всплывающие описания битовой схемы регистров специального назначения, если они есть.
Отображать описания битов | Включает всплывающие описания для битов регистров специального назначения, если они есть.
Автоматический размер поля имени | Когда этот флаг установлен и включена вертикальная сетка (смотрите примечание внизу), окно автоматически подстраивает ширину столбца Имя под самую длинную запись в столбце.
Страницы | Список закладок в окне.
Добавить страницу | Открывает диалог Добавить новую страницу в окно Переменные, для ввода названия новой закладки. Окно создаст новую закладку по нажатию OK.
Удалить страницу | Удаляет закладку, выделенную в списке Tabs.
Редактировать страницу | Открывает диалог Задать имя страницы, для редактирования названия закладки.
Глобальные опции отладки/ отображения | Открывает диалог Загрузка кода


Äèàëîã Äîáàâèòü Ïåðåìåííóþ â îêíî

Диалог Добавить Переменную в окно

Top Previous Next

Диалог предназначен для добавления символьных имён, например, имени переменной или выражения в окно Переменные. Окно содержит список символьных имён, определённых в программе или известных ей.

Элементы диалога | Описание
Введите имя переменной или выражения | Содержит имя выделенной переменной или выражение. Список накапливает ранее использованные выражения.
История ввода | Список предыдущих имен и выражений


Îêíî Èíôîðìàöèÿ î ChipProg

Окно Информация о ChipProg

 Top Previous Next

В этом окне выдается следующая информация:

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


Ïàðàìåòðû Êîìàíäíîé Ñòðîêè

Параметры Командной Строки

 Top Previous Next

Перечисленные параметры командной строки (ключи) используются для запуска исполняемого файла ChipProgLPT по умолчанию. Написание параметров не зависит от регистра букв.

Ключ | Описание
/S<file> | Загрузить указанный файл сессии вместо файла по умолчанию. Файл сессии по умолчанию—это файл сессии, найденный в рабочей папке.
/D<file> | Загрузить указанный файл конфигурации экрана (desktop) вместо файла по умолчанию
/O<file> | Загрузить указанный файл опций вместо файла по умолчанию
/C"<название_микросхемы>" | Выбрать микросхему
/L<file> | Загрузить файл
/F<формат> | Указать формат загружаемого файла
/A | Автоматическое программирование
/I | Сделать окно программатора невидимым
/I1 | Сделать окно программатора невидимым, сообщений об ошибках не выдавать, текст сообщения об ошибке скопировать в буфер обмена
/B | Не запрашивать номер порта и т.п.
/M | Демонстрационный режим.

Примечание. Имя файла <file> надо указывать сразу после ключа, без пробела.

Подробнее о файлах сессии, конфигурации экрана и опций—в главе Файлы конфигурации.


Îêíî Èñõîäíîãî Òåêñòà Ôàéëà Ñöåíàðèÿ

Окно Исходного Текста Файла Сценария

 Top Previous Next

Окно этого типа предназначено для разработки исходного текста Файла Сценария (ФС) и отладки сценария. В действительности, это окно есть окно Редактора , и все обычные команды окна Редактора исходного текста работают здесь точно так же (например, Поиск текста, Повторить поиск, и так далее).

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

Строки исходного текста, для которых компилятор сгенерировал исполняемый код, обозначены квадратиком в первой позиции.

Локальное меню

Локальное меню окна содержит следующие команды, для каждой команды имеется кнопка панели инструментов окна:

Команда | Описание
Step | Выполняет один оператор ФС.
Run | Начинает непрерывное выполнение ФС.
Выполнить до Курсора | Выполнить ФС до адреса, соответствующего строке с курсором. По-другому можно дважды щелкнуть на нужной строке.
Origin | Показывает исходный текст со строки, чей адрес соответствует Программному Счетчику ФС. Эта команда не работает, когда для данных адресов не существует строк исходного текста.
Новый ПС | Устанавливает значение Программного Счетчика из ФС по адресу, соответствующему строке с курсором.
Переключить точку останова | Включает / Выключает Точку Останова по адресу, соответствующему строке с курсором.
Добавить в окно Переменные | Открывает окно Переменные (если оно не открыто) и помещает имя на позицию курсора.
Перезапуск | Перезапустить ФС.

Примечание. Для получения Справки по функциям или переменным подведите к ним курсор и щелкните. Более подробная информация в Как отладить Файл Сценария and Файл Сценария .


Îêíî Ïîëüçîâàòåëÿ

Окно Пользователя

 Top Previous Next

Окно Пользователя используется вовремя работы с Файлами Сценариев (ФС). Оно позволяет:

•

создавать рисунки в окне при помощи функций графического вывода, доступных из ФС

•

отображать текст в окне

•

реагировать на события (смотрите WaitWindowEvent)

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

Для того чтобы открыть окно ФС использует функцию OpenUserWindow.

Функции, работающие с окнами (включая окна Пользователя), получают идентификатор окна (handle) в качестве параметра. Поэтому одновременно можно держать несколько открытых окон этого типа.

На панели инструментов окна Пользователя имеется 16 кнопок (0...F). Нажатие на кнопку генерирует событие WE_TOOLBARBUTTON.

Окна этого типа не имеют локального меню.


Îêíî Ïîòîêà Ââîäà / Âûâîäà

Окно Потока Ввода / Вывода

 Top Previous Next

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

Чтобы открыть окно, ФС использует функцию OpenStreamWindow. За дополнительной информацией обращайтесь к разделу Файлы Сценариев .

Функции, управляющие окнами (включая окна Потока Ввода/Вывода) получают идентификатор окна (handle) в качестве параметра. Поэтому несколько окон одного типа могут быть открыты одновременно.

Окно имеет два режима отображения: с автоматическим переносом строки (Wrap) и без него. В режиме автоматического перевода, каждая строка, не поместившаяся в окне, переносится на следующую позицию. В другом режиме конец не поместившейся строки находится за границей экрана и невидим. Кнопка Wrap на панели инструментов служит для переключения между этими режимами. Кнопка Clear очищает содержимое окна.

Окна этого типа не имеют локального меню.


Ôàéëû Ñöåíàðèÿ

Файлы Сценария

 Top Previous Next

ChipProgLPT умеет выполнять так называемые Файлы Сценария (ФС), подобно тому, как DOS выполняет batch-файлы.

В основном, ФС используются для автоматизации работы пользователя с отладчиком. С помощью ФС можно в автоматическом (пакетном) режиме загружать программы, ставить точки останова, запускать программу на выполнение, манипулировать окнами и вообще выполнять почти все доступные пользователю действия. Можно также выдавать в окно Консоль сообщения и другие специальные окна, различные сообщения, строить пользовательские меню и т.п. Имеется возможность выводить любые графические данные в специальные окна.

Язык ФС - это Си-подобный язык: поддерживаются почти все Си конструкции, кроме структур и указателей. Здесь также много встроенных функций, таких как printf(), sin() и strcpy().

Файлы исходного текста ФС имеют расширение .CMD.

Простейший Пример Файла Сценария

Как написать Файл Сценария

Как запустить Файл Сценария

Как отладить Файл Сценария

Описание языка Файлов Сценария

Встроенные Функции языка Файлов Сценария

Встроенные Переменные Файлов Сценария

Отличия языка Файлов Сценария от языка Си

Алфавитный список Встроенных Функций и Переменных языка Файлов Сценария


Ïðîñòåéøèé Ïðèìåð Ôàéëà Ñöåíàðèÿ

Простейший Пример Файла Сценария

 Top Previous Next

Этот пример просто загружает программу и запускает ее выполнение,предварительно сбросив процессор. Выполнение программы останавливается, когда программа достигает функции Init, и выводит на экран значение указателя стека SP:

#include <system.h>

{

Reset();                               // сбросить процессор

LoadProgram("TEST.SYM", LF_PICASM);    // загрузить программу

RunTo(                                 // выполнить программу до

      AddrExpr("Init")                 // адреса функции Init

     );

printf("SP=%04X", $SP);                // вывести на экран значение SP

}


Êàê Íàïèñàòü Ôàéë Ñöåíàðèÿ

Как Написать Файл Сценария

Top Previous Next

Файл сценария (ФС) очень похож на исходный текст программы на языке Си. Для создания и редактирования ФС выможете использовать встроенный редактор CodeMaster`а или любой другой текстовый редактор. Вы можете расположить ФС в своей рабочей директории или в директории, где инсталлирован CodeMaster.

Заметим, что не следует использовать в имени ФС символы, не допустимые для использования в именах переменных, т.е. знаки препинания, скобки и т.п.


Êàê Çàïóñòèòü Ôàéë Ñöåíàðèÿ

Как Запустить Файл Сценария

 Top Previous Next

Запустить файл сценария (ФС) можно несколькими способами:

1. При запуске CodeMaster автоматически выполняется файл start.CMD, подобно тому, как при старте DOS выполняется файл autoexec.bat. Если ФС start.CMD не найден в текущей директории, то запускается файл start.CMD из директории, где установлен CodeMaster.

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

3. Используйте функцию StartCommandFile() для запуска ФС из ФС.


Êàê Îòëàäèòü Ôàéë Ñöåíàðèÿ

Как Отладить Файл Сценария

 Top Previous Next

Файлы сценария (ФС) можно отлаживать примерно так, как отлаживают программы с помощью окна Редактора и окна Переменные, т.е. выполнять ФС по шагам и "до курсора", ставить точки останова, просматривать значения переменных и т.п. Для отладки по исходному тексту предназначено окно Исходного текста Файла Сценария. Это окно открывается автоматически, если при запуске ФС через команду Сценарии Главного меню в диалоге Файлы Сценария установить опцию "Отладка".

При запуске одного ФС из другого функцией StartCommandFile() можно определить параметр, указывающий войти в режим отладки и открыть окно Исходного Текста Файла Сценария.

Можно также в любое место ФС вставить вызов функции Debug() . После вызова этой функции выполнение ФС будет приостановлено и включится режим отладки.

Чтобы посмотреть значение какой-либо переменной ФС в окне Переменные, можно воспользоваться командой Добавить переменную в окно переменных меню окна Исходного Текста Файла Сценария или иконкой на его линейке управления. Можно сделать это и вручную в окне Переменные. Например, если нужно посмотреть значение переменной addr, использующейся в ФС с именем TEST, нужно в окно Переменные поместить конструкцию #TEST#addr. Если addr об'явлена как public, т.е. вне функции, то нужно написать ##addr.


Îïèñàíèå ÿçûêà Ôàéëîâ Ñöåíàðèÿ

Описание языка Файлов Сценария

Top Previous Next

Язык ,на котором пишутся Файлы Сценария(ФС), очень похож на язык Си. Если Вы хорошо знаете Си, то эту главу можете не читать, а прочитать про отличия языка ФС от языка Си.

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

Общий синтаксис Файлов Сценария

Основные Типы Данных

Порядок байт в Данных

Операции и выражения

Операторы

Функции

Описания

Директивы препроцессора языка Файлов Сценария

Предопределенные символы при компиляции Файлов Сценария


Âñòðîåííûå Ôóíêöèè ÿçûêà Ôàéëîâ Ñöåíàðèÿ

Встроенные Функции языка Файлов Сценария

 Top Previous Next

Система Файлов Сценария (ФС) предоставляет пользователю большой набор встроенных функций для работы со строками и файлами, математических вычислений, доступа к ресурсам процессора и т.д. Описания встроенных функций помещены в файл system.h, который необходимо включить в исходный текст ФС директивой #include .

#include <system.h>

Встроенные функции используются так же, как и функции, определяемые пользователем.

Функции Ожидания События

Buffer access functions

Device programming control functions

Математические функции

Функции для работы со Строками

Функции для работы с Символами

Функции для работы с Файлами и Директориями

Функции для работы с Файлами-Потоками

Функции Форматированного Ввода-Вывода

Функции Загрузки/Выгрузки Файлов Сценария

Функции для работы с Текстом в окне Редактора

Функции управления Оболочкой Отладчика

[****]

Функции для работы с Windows и прочие Системные фунуции

Функции Графического Вывода

Функции для работы с окнами Потоков Ввода-Вывода

Всякие другие Функции

Примечание: Чтобы получить справку о функции или переменной, во время редактирования исходного текста ФС с помощью встроенного редактора CodeMaster, поместите курсор на имя функции/переменной и нажмите Alt+F1.


 Âñòðîåííûå Ïåðåìåííûå Ôàéëîâ Ñöåíàðèÿ

Встроенные Переменные Файлов Сценария

Top Previous Next

Ко встроенным переменным Файлов Сценария(ФС можно обращаться так же, как к обычным глобальным переменным, однако некоторые встроенные переменные доступны только для чтения и при попытке записи в такую переменную PDS-52 выдаст сообщение об ошибке на этапе выполнения ФС.

Об'явления встроенных переменных содержатся в заголовочном файле system.h.

WorkFieldWidth

WorkFieldHeight

ApplName[]

DesktopName[]

SystemDir[]

errno

_fmode

MainWindowHandle

NumWindows

WindowHandles[]

SelectedString[]

[****]

LastMessageInt

LastMessageLong

Встроенные переменные текстового редактора:

InsertMode

CaseSensitive

WholeWords

RegularExpressions

BlockCol1

BlockCol2

BlockLine1

BlockLine2

BlockStatus

CurLine

CurCol

LastFoundString

Programming variables:

InsertTest

ReverseBytesOrder

BlankCheck

VerifyAfterProgram

VerifyAfterRead

ChipStartAddr

ChipEndAddr

BufferStartAddr

LastErrorMessage

DialogOnError


Îòëè÷èÿ ÿçûêà Ôàéëîâ Ñöåíàðèÿ îò ÿçûêà Ñè

Отличия языка Файлов Сценария от языка Си

 Top Previous Next

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

•

Непосредственно не поддерживаются указатели. Однако поддерживаются массивы, следовательно, "указатель" всегда можно сконструировать из массива и номера элемента. Заметьте, что, например, функции работы со строками типа strcpy получают в качестве параметров строку и номер байта (index), которые и формируют "указатель". В об'явлении функций index равен нулю по умолчанию.

•

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

•

Не поддерживаются многомерные массивы. Если возникает острое желание, можно легко написать пару функций типа:

int GetElement(int array[], int index1, int index2);

void SetElement(int array[], int index1, int index2, int value);

•

Не поддерживаются структуры (и союзы). По сути дела, без структур можно всегда обойтись. Единственно, структуры могут понадобиться при работе с API Windows и пользовательскими DLL, но, как правило, это делают только опытные программисты, которые знают, как добираться до членов структур (подсказка - есть функции типа memcpy, которые получают "указатель" на void).

•

Не поддерживаются перечислимые типы (enum). Обойдитесь #define.

•

Не поддерживаются макросы препроцессора типа #define half(x) (x / 2). Можно то же самое сделать с помощью функций.

•

Не поддерживаются условный оператор типа x = y == 2? 3 : 4; а также оператор "запятая" вне объявлений реременных. Например,

int i = 0, j = 1; поддерживается, но

for (i = 0, j = 1; ...) не поддерживается.

•

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

•

Не поддерживаются объявления пользовательских параметров функции типа void array[]. Системные функции типа memcpy имеют такие параметры.

•

Логические выражения всегда вычисляются полностью. Это очень важно помнить, т.к. ситуация типа

char array[10];

if (i < 10 && array[i] != 0)

array[i] = 1;

вызовет ошибку на этапе выполнения, если i будет больше 9, т.к. выражение array[i] будет вычислено. В обычном компиляторе оно вычислено не будет, т.к. условие i < 10 отменит дальнейшую обработку выражения.

•

Константные выражения всегда вычисляются во время выполнения, т.е. int i = 10 * 22 будет вычислено не во время компиляции, а при выполнении.

•

Отсутствует ключевое слово const .

•

Класс размещения static не поддерживается.

Однако

•

Допускается объявление переменных в любом месте, а не только до первого выполняемого оператора. Например:

void main()

{

GlobalVar = 0;

int i = 1;      // будет как в C++

}

•

Допускаются вложенные комментарии.

•

Допускаются выражения типа array = "1234" .

•

Допускаются значения параметров по умолчанию в об'явлениях функций, как в C++. Например, void func(char array[], int index = 0);. В качестве значения по умолчанию может быть и выражение, например, void func(char array[], int index = func1() + 1);.

•

Допускаются выражения в инициализаторах глобальных переменных. Например:

float table[] = { sin(0), sin(0.1) };

void main()

{

...

}


 Àëôàâèòíûé Ñïèñîê âñòðîåííûõ Ôóíêöèé è Ïåðåìåííûõ â Ôàéëàõ Ñöåíàðèÿ

Алфавитный Список встроенных Функций и Переменных в Файлах Сценария

 Top Previous Next

API

ActivateWindow

AddButton

AddSymbol

AddWatch

[****]

ApplName[]

BackSpace

BlockBegin

BlockCol1

BlockCol2

BlockCopy

BlockDelete

BlockEnd

BlockFastCopy

BlockLine1

BlockLine2

BlockMove

BlockOff

BlockPaste

BlockStatus

CaseSensitive

[****]

ClearWindow

CloseProject

CloseWindow

Cr

CurChar

CurCol

CurLine

Curcuit

Debug

DelChar

DelLine

[****]

DesktopName[]

DisplayText

DisplayTextF

Down

Ellipse

Eof

Eol

ExecMenu

ExecScript

ExitProgram

[****]

FileChanged

FillRect

[****]

FindWindow

FirstWord

[****]

ForwardTill

ForwardTillNot

FrameRect

FreeLibrary

[****]

GetFileName

GetLine

GetMark

[****]

GetScriptFileName

GetWindowHeight

GetWindowWidth

[****]

GotoXY

[****]

InitCOM

InsertMode

[****]

InvertRect

LastChar

LastEvent

LastEventInt{1...4}

LastFoundString

[****]

LastMessageInt

LastMessageLong

LastString

Left

LineTo

LoadDesktop

LoadLibrary

LoadOptions

LoadProgram

LoadProject

MainWindowHandle

[****]

MessageBox

MessageBoxEx

[****]

MoveTo

MoveWindow

NumWindows

OpenEditorWindow

OpenStreamWindow

OpenUserWindow

OpenWindow

Polyline

ReceiveCOM

Rectangle

RedrawScreen

RegularExpressions

ReloadProgram

RemoveButtons

[****]

ResetSymbolTable

[****]

Right

[****]

SaveData

SaveDesktop

SaveFile

SaveOptions

Search

SearchReplace

SelectBrush

[****]

SelectFont

SelectPen

SelectedString[]

SendCOM

SetBkColor

SetBkMode

[****]

SetCaption

[****]

SetFileName

SetMark

[****]

SetPixel

SetTextColor

SetToolbar

SetUpdateMode

SetWindowFont

SetWindowSize

SetWindowSizeT

[****]

StatusCOM

[****]

SystemDir[]

TerminateAllScripts

TerminateScript

Text

[****]

Tof

Up

UpdateWindow

Wait

WaitExprChange

WaitExprTrue

WaitGetMessage

WaitMemoryAccess

WaitSendMessage

WaitStop

WaitWindowEvent

WholeWords

WindowHandles[]

WindowHotkey

WordLeft

WordRight

WorkFieldHeight

WorkFieldWidth

_GetWord

_ff_attrib

_ff_date

_ff_name

_ff_size

_ff_time

_fmode

_fullpath

_printf

abs

acos

asin

atan

atof

atoi

ceil

chdir

chsize

clearerr

close

cos

creat

creatnew

creattemp

delay

difftime

dup

dup2

eof

errno

exec

exit

exp

fabs

fclose

fdopen

feof

ferror

fflush

fgetc

fgets

filelength

fileno

findfirst

findnext

floor

fmod

fnmerge

fnsplit

fopen

fprintf

fputc

fputs

fread

freopen

frexp

fscanf

fseek

ftell

fwrite

getc

getcurdir

getcwd

getdate

getdfree

getdisk()

getenv

getftime

gettime

getw

inport

inportb

isalnum

isalpha

isascii

isatty

iscntrl

isdigit

isgraph

islower

isprint

ispunct

isspace

isupper

isxdigit

itoa

lock

locking

log

log10

lseek

ltoa

memccpy

memchr

memcmp

memcpy

memicmp

memmove

memset

mkdir

movmem

open

outport

outportb

peek

peekb

poke

pokeb

pow

pow10

printf

pscanf

putc

putenv

putw

rand

random

randomize

read

rename

rewind

rmdir

scanf

searchpath

setdisk

setftime

setmem

setmode

sin

sprintf

sqrt

srand

sscanf

stpcpy

strcat

strchr

strcmp

strcmpi

strcpy

strcspn

stricmp

strlen

strlwr

strncat

strncmp

strncmpi

strncpy

strnicmp

strnset

strpbrk

strrchr

strrev

strset

strspn

strstr

strtol

strtoul

strupr

tan

tanh

tell

toascii

tolower

toupper

ultoa

unlink

unlock

wgetchar

wgethex

wgetstring

wprintf

write


Âûðàæåíèÿ

Выражения

 Top Previous Next

Выражения в ChipProgLPT —это математические конструкции для вычисления результата, содержащие один или более операндов. ChipProgLPT поддерживает различные операции и выражения. Допускаются следующие операнды:

•

числа

•

символьные имена

•

пример выражения

Когда требуется число, вы можете ввести выражение. ChipProgLPT возьмет значение этого выражения. Например, когда вы используете команду Modify в окне Переменные, вы можете ввести новое значение в виде числа или арифметического выражения.

Интерпретация результата выражения

Результат вычисления выражения интерпретируется в зависимости от контекста, в котором он используется.

В диалоге, где требуется указать адрес (например, адрес точки останова по коду), ChipProgLPT старается интерпретировать результат выражения как адрес. Если указать имя переменной, результатом такого выражения будет адрес переменной, а не её значение.

Если в диалоге требуется указать именно число (например, в диалоге Изменить значение окна Дамп), то результат выражения будет интерпретирован как число. То есть, если здесь указать имя переменной, то результатом будет значение этой переменной, а не её адрес.

Тем не менее, есть обходные пути:

Если предполагается адрес переменной, а Вам необходимо использовать её значение, тогда можно написать простое выражение типа «var + 0». В данном случае, в выражение попадёт значение переменной.

Если необходимо использовать адрес переменной, можно воспользоваться операцией взятия адреса (&). Например, «&var».


Îïåðàöèè ñ Âûðàæåíèÿìè

Операции с Выражениями

 Top Previous Next

ChipProgLPT поддерживает все арифметические и логические операции, имеющиеся в языке Cи, а также операции с указателями и операции взятия адреса:

Обозначение | Описание
( ) | Скобки (более высокий приоритет)
[ ] | Выделение элемента массива
. | Выделение элемента структуры или союза
-> | Выделение элемента структуры или союза, адресуемого указателем
! | Одноместная операция логического отрицания
~ | Одноместная операция побитового инвертирования
- | Одноместная операция изменения знака
& | Определение адреса
* | Обращение по адресу
(тип) | Преобразование типа в явной форме
(sizeof) | Определение размера в байтах
* | Умножение
/ | Деление
% | Деление по модулю
+ | Сложение
- | Вычитание
<< | Сдвиг влево
>> | Сдвиг вправо
< | Меньше, чем
<= | Меньше или равно
> | Больше, чем
>= | Больше или равно
== | Равно
!= | Не равно
& | Побитовая операция И
^ | Побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ
| | Побитовая операция ИЛИ
&& | Логическая операция И
|| | Логическая операция ИЛИ
= | Присваивание

Тип операнда преобразуется в соответствии со стандартом ANSI.

Результатом логической операции является 0 (ЛОЖЬ) или 1 (ИСТИНА).

Разрешенные типы преобразования:

•

Oперанды могут быть преобразованы к простым типам (char, int, ... float).

•

Указатели могут быть преобразованы к простым типам (char *, int *, ... float *) и к указателям на структуры и союзы.

•

Слово "struct"не обязательно (MyStruct *).


×èñëà

Числа

 Top Previous Next

По умолчанию, все числа считаются десятичными. Значения целых чисел должны умещаться в 32 бита, значения чисел с плавающей точкой—в формат одинарной точности (32 бита).

Поддерживаются следующие форматы чисел:

1) Целый десятичный.

Пример: 126889

2) Десятичный с плавающей запятой.

Примеры: 365.678; 2.12e-9

3) Шестнадцатеричный, в формате Си или в формате ассемблера.

Примеры: 0xF6D7; 0F6D7H; 0xFFFF1111

4) Двоичный. Числа, вводимые в двоичном формате, должны оканчиваться буквой «B».

Примеры: 011101B; 111111111111111000011B

5) Символьный (ASCII).

Примеры: 'a'; 'ab'; '$B%8'.


Ñèìâîëüíûå Èìåíà

Символьные Имена

 Top Previous Next

Если не загружена программа в виде HEX или двоичного файла, либо программа не имеет отладочной информации ; то имена, определенные в загруженной программе отсутствуют.


Ïðèìåðû âûðàæåíèé

Примеры выражений

 Top Previous Next

Примеры выражений

#test#i + #test#j << 2

(unsigned char)#test#i + 2

sizeof(##array) > 200

main

i + j << 2 / :CW0x1200

(unsigned char)i + 2

sizeof(array) > 200

(a == b && a <= 4) || a > '3'

sptr -> Member1 -> a[i]

*p

*((char *)ptr)


Errors Messages

 Top Previous Next

Программа ChipProgLPT при некорректных или ошибочных действиях выдает информацию о том, какая сделана ошибка.


Error Load /Save File

 Top Previous Next

"Ошибка чтения файла"

"Несовпадение контрольной суммы, загрузка прервана"

"Неверный формат HEX-файла"

"Значение адреса находится вне допустимых пределов"

"Конечный адрес должен быть больше начального"

"Неверный формат файла"

"Ошибка записи файла"

"Файл '' не загружен, потому что буфер #(номер буфера) не существует"

"Файл (имя файла) не загружен, потому что подслой # (значение в десятичном виде) не существует"

"Не удалось открыть файл проекта: (имя файла). После старта программатор пытается открыть файл проекта, использовавшийся последним. Указанный файл проекта не найден."


Error Addresses

 Top Previous Next

"Начальный адрес (значение в шестнадцатиричном виде) для микросхемы слишком большой.\nМаксимально допустимый адрес - (значение в шестнадцатиричном виде)."

"Конечный адрес (значение в шестнадцатиричном виде) для микросхемы слишком большой.\nМаксимально допустимый адрес - (значение в шестнадцатиричном виде)."

"Начальный буфера слишком большой"

"Адрес %s вне допустимых пределов (%s...%s)"

"Формат файла не позволяет адреса более 0xFFFFFFFF"

4019 "Address in device: 0x%08X, Address in buffer: 0x%08X\n"

"Начальный адрес в буфере должен быть четным"

"Начальный адрес в микросхеме должен быть четным"

"Конечный адрес в буфере должен быть нечетным"

"Буфер с именем '%s' уже есть. Выберите для буфера другое имя."


Error sizes

 Top Previous Next

"Размер буфера слишком мал для выбранного чередования данных"

"Запрошенный размер буфера (%lu) слишком велик"

"Размер файла больше размера буфера:\nАдрес = %08lX, длина = %u"

"Исходный блок не помещается в подслой назначения"

"Размер файла - %u байт, что меньше размера заголовка файла. Скорее всего, Вы неправильно указали формат файла."

"Нельзя распределить %Lu МБайт памяти, максимальный размер буфера - %Lu МБайт"

"Введено неправильное число: '%s'"


Error command-line option

 Top Previous Next

"Опция командной строки (имя) : Не указано имя микросхемы"

"Опция командной строки (имя): Не указано имя файла"

"Опция командной строки (имя): Не указан формат файла"

"Опция командной строки (имя): Неверный идентификатор формата файла"

"Командная строка: формат файла неизвестен"

"Опция командной строки (имя): Неверное значение адреса"

"Опция командной строки /I проигнорирована, потому что не указана опция /A"


Error Programming option

 Top Previous Next

"Неверное имя функции программирования или пункта меню:\n'%s'"

"Неверное имя опции программирования '%s'"

"Опция программирования (имя): неверная строка значения (имя)"

"Опцию программирования (имя) изменить нельзя"

"Длина строки опции программирования слишком велика.\nМаксимальная длина - %u."

"Опция программирования (имя) имеет тип (имя). Чтобы получить значение этой опции, используйте функцию (имя)()'."

"Значение (в формате плавающей точки) находится вне допустимых пределов (%.2f...%.2f) для опции программирования (имя)"

"Значение (в формате десятичной цифры) находится вне допустимых пределов (%ld...%ld) для опции программирования (имя)"

"Не все сохраненные в файле конфигурации функции заказного автоматического программирования были восстановлены. Проверьте список заказных функций автоматического программирования."


Error DLL

 Top Previous Next

"Не удалось открыть битовый ресурс с номером 0x%X в DLL:\n(имя)"

"Ошибка операции с битовым ресурсом с номером 0x%X в DLL:\n(имя)"

"Не найдено устройство (имя) в DLL:\n(имя)'"


Error USB

 Top Previous Next

"Ошибка 0x%04X драйвера устройства USB в '%s'.\n\nВосстановить связь невозможно, выходим.\n\nПроверьте, включено ли питание программатора. Если да, отсоедините кабель USB от компьютера, присоедините его снова и запустите %s."

"Все программаторы сообщили об ошибке драйвера устройства USB.\n\nВосстановить связь невозможно, выходим.\n\nПроверьте, включено ли питание программатора. Если да, отсоедините кабель USB от компьютера, присоедините его снова и запустите %s."

"Следующие программатор(ы):\n\n%s\n\nсообщил(и) об ошибке драйвера устройства USB.\n\nЭти программаторы будут исключены из процесса ганг-программирования.\n\nПроверьте, включено ли питание программатора. Если да, отсоедините кабель USB от компьютера, присоедините его снова и запустите %s."


Error programmer hardware

 Top Previous Next

"Исходный блок не помещается в адресное пространство назначения"

6988 "Unable to establish connection with programmer hardware. Please check if:\n\n"

"Присоединенные программаторы имеют одинаковый серийный номер '%s'"

"Этому программатору с серийным номером '%s' уже назначен номер устройства %u."

"Этому ганг-программатору с серийным номером '%s' уже назначены номера устройств %u..%u."

"Подключенные программаторы имеют разные типы и не могут использоваться в ганг-режиме.\n\nВыходим."

"ExecFunction() не работает в ганг-режиме"

"%s сообщил об аппаратной ошибке 0x%X, группа 0x%X. Если ошибка повторяется, сообщите о ней в Фитон."

"Присоединенный программатор с идентификатором %u не поддерживается"

"Значение обратного отсчета программирования микросхем равно нулю%s"


Error internal

 Top Previous Next

"Внутренняя ошибка: \nCORE() for (имя) returned NULL.\n Пожалуйста, свяжитесь с вашим (имя)distributor.

"Внутренняя ошибка: невозможно разместить количество байт (значение в десятичном виде) в буфере. Пожалуйста, свяжитесь с Фитоном."


Error confiquration

 Top Previous Next

"Не найдено ни одного файла конфигурации программатора (prog.ini)"

"Микросхема '%s %s', название которой сохранено "

"в файле конфигурации или выбрано функцией файла сценария 'SetDevice()', не поддерживается %s.\n"

"Будет выбрана микросхема '%s %s'."

"Конфигурационная опция '%s' была установлена в запрещенное значение из-за прочитанных из файла данных. Опция будет установлена в состояние по умолчанию ('%s')."


Error device

 Top Previous Next

"Ошибка выбора микросхемы"

"Микросхема '%s' не поддерживается %s. Выберите другую микросхему."


Error check box

 Top Previous Next

"Ошибка в строке задания значения опции check box: отсутствует '='"

"Строка '%s' опции check box не найдена"


Error mix

 Top Previous Next

"Количество повторов не может быть нулем"

"Включена опция 'Только просмотр', редактирование запрещено. Используйте кнопку 'View' на линейке управления окна для разрешения редактирования."

"Ни одного начального теста не определено в файле:\n'%s'"

"'%s' является именем подменю, а не именем функции"

"Данные не найдены"

"Неправильная строка-аргумент заполнения"

"Контрольная сумма равна %08lX"

"Несовпадений больше нет"


Warning

 Top Previous

"Предупреждение: загруженный файл формата JEDEC не имеет конрольной суммы файла"

"Предупреждение: загруженный файл формата JEDEC имеет неверную конрольную сумму данных"

"Предупреждение: в файле отсутствует запись конца файла"

6845 "Attention! The %s %s device must be inserted into the programmer's socket shifted by %d row(s) relative to the standard position as shown in the Device Information window."

"Внимание! Микросхему нужно вставить в колодку со сдвигом на %d ряда(ов), как показано на рисунке."


Basic Data Types

 Top

Basic Data Types

The script file compiler supports the following data types:

---------------------------------------------------------------

signed char 8 1 -128...+127

unsigned char 8 1 0...255

signed short 16 2 -32768...+32767

unsigned short 16 2 0...65535

signed int 16 2 -32768...+32767

unsigned int 16 2 0...65535

signed long 32 4 -2147483648...2147483647

unsigned long 32 4 0...4294967295

float 32 4 +/-1.17549435E-38...+/-3.40282347E+38

The "pure" int type coincides with the signed int type.

The long type is equivalent to the signed long.

The short type is equivalent to the signed short.

The char type is equivalent to the signed char.


Relation Operations

Relation Operations

Note. Logical False is presented by integral zero, and logical True is presented by any integer other than zero.

The expressions that contain the relation operations or logical operations have the values of 0 (False) or 1 (True).

== Usage: ie1 == ie2

   True, if ie1 is equal to ie2; False otherwise.

   Example:

     if (i == 0) break;

!= Usage: ie1 != ie2

   True, if ie1 is not equal to ie2.

   Example:

     while (i != 0)

       i = func;

<   Usage: ae1 < ae2

   True, if ae1 is less than ae2.

   Example:

     if (x < 0)

       printf ("negative");

<= Usage: ae1 <= ae2

   True, if ae1 is less than or equal to ae2.

Usage: ae1 > ae2

   True, if ae1 is larger than ae2.

   Example:

     if (x > 0)

       printf ("positive");

>= Usage: ae1 >= ae2

   True, if ae1 is larger than or equal to ae2.


Invalid operation: <value>

Internal script file execution error. Please contact Technical Support (see contact information).


Expressions

Expressions

An expression consists of one or more operands and operation symbols.

Examples:

a++

b = 10

x = (y * z) / w

Note. Any expression ending with semi is the operator.

Operand Metadesignation

Arithmetic Operations

Assignment Operations

Relation Operations

Logical Operations

Bit Operations

Array Operations

Other Operations

Operation Execution Priorities and Order

Operand Execution Order

Arithmetic Conversions in Expressions.


Script file run-time errors

Script file run-time errors

An error occurred during execution of the script file. This message contains the error information:

Script name - Script name (CodeMaster uses names to identify the script files).

File name - Name of the source text file, in which the error occurred.

Line number - Number of the line containing the error in the source text file.

PC - The script file PC value.

Note that this message does not inform you of the syntax error in the script file source text; it does inform you of the error that occurred during execution of the script file.

The syntax errors are detected by compilers. And if there is such an error in a script file, then it will not be loaded. Also, see Simple Example of a Script File.


Äîñòóï ê èìåíàì SFR è Ïåðåìåííûì ïðîãðàììû èç Ôàéëîâ Ñöåíàðèÿ

Доступ к именам SFR и Переменным программы из Файлов Сценария

 Top

Часто возникает необходимость обратиться из файла сценария к поименованному ресурсу микроконтроллера, например, к регистрам специального назначения, отладочным регистрам, счетчику команд (PC), а также к именам, объявленным в загруженной для отладки программе.

Если объект, к которому нужно обратиться (получить его значение или присвоить ему значение), является скалярной переменной, т.е. не массивом, структурой или указателем, то в Файле Сценария (ФС) можно просто предварить имя объекта знаком доллара '$' и использовать получившееся имя точно так же, как имена переменных ФС. Пример:

printf("PC = %04lX", $PC); // вывести значение PC

$SP += 2;                 // увеличить на два значение указателя стека

if ($MyVar > 15)           // использовать в выражении имя переменной  expression

printf("MyVar out of range");

Примечание. Значением нетипизированной метки в отлаживаемой программе является не ее адрес, а байт в памяти по адресу метки. Если, например, ваша программа содержит фрагмент:

...

START: NOP

     INC A

...

и вы желаете выполнить программу до метки START, то в ФС нужно будет написать не RunTo($START);, а RunTo(AddrExpr("START"));, т.е. получить адрес метки нужно явно функцией AddrExpr .

Более сложные случаи

Если необходимо обратиться из ФС к сложному объекту, например, элементу массива или члену структуры, то это можно сделать с помощью функции Expr. Эта функция получает в качестве параметра строку-выражение. Если, например, нужно получить значение пятого элемента массива "arr", объявленного в отлаживаемой программе, то нужно написать так:

printf("arr[5] = %d", Expr("arr[5]"));

Заметьте,что в строке-параметре функции Expr() предварять имена знаком доллара не надо.Если нужно присвоить значение сложному объекту,то следует написать так:

Expr("arr[5] = 0x66");

Смотрите также описание функций: FindSymbol, AddrExpr и FloatExpr .


Address <addr> is out of range (<min>...<max>)

Address <addr> is out of range (<min>...<max>)

The microprocessor resources access functions detected the invalid address: the address is out of the address space limits.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


AllProgOptionsDefault

void AllProgOptionsDefault();

Description

Set all the programming options to their default values.


Alternate Forms for printf Conversion

Alternate Forms for printf Conversion

If you use the # flag conversion character, it has the following effect on the argument (arg) being converted:

Conversion character

How # affects the argument

c s d iu

No effect.

0

0 is prepended to a nonzero arg.

x X

0x (or 0X) is prepended to arg.

e E f

The result always contains a decimal point even if no digits follow the point. Normally, a decimal point appears in these results only if a digit follows it.

g G

Same as e and E, except that trailing zeros are not removed.


Arithmetic Conversions in Expressions

Arithmetic Conversions in Expressions

First, every char-type operand is converted into the int-type value, and the unsigned char-type operand is converted into the unsigned int-type value.

Then, if one of the operands is of the float type, then the other will be converted into the float-type value and the result will be of the float type.

Otherwise, if one of the operands is of the unsigned long type, then the other will be converted into the unsigned long-type value and the result will be of the same type.

Otherwise, if one of the operands is of the long type, then the other will be converted into the long-type value and the result will be of the same type.

Otherwise, if one of the operands is of the long type, and the other is of the unsigned int type, then both operands will be converted into the unsigned long-type value and the result will be of the same type.

Otherwise, if one of the operands is of the unsigned type, then the other will be converted into the unsigned-type value and the result will be of the same type.

Otherwise, both operands should be of int type and the result will be of the same type.


Arithmetic Operations

Arithmetic Operations

+   Usage: ae1 + ae2

   Sum of ae1 and ae2.

   Example:

      i = j + 2;

      Sets i equal to j plus 2.

-   Usage: ae1 - ae2

   Subtraction of ae1 and ae2.

   Example:

      i = j - 3;

-   Usage: -ae

   Example:

*   Usage: ae1 * ae2

   Product of ae1 and ae2.

   Example:

      z = 3 * x

/

   Quotient of ae1 and ae2.

   Example:

      i = j / 5;

%   Usage: ae1 % ae2

   Remainder (modulus division) of the division of ae1 by ae2.

   Example:

     minutes = time % 60;

Note. Execution of the ++ and -- operations produces side effects; the value of variable used as an operand changes.

++ Usage: iv++

   Increasing iv by 1. The value of this expression is the value of ie

   before increasing.

   Example:

     j = i++;

++ Usage: ++iv

   Increasing iv by 1. The value of this expression is the value of ie

   after increasing.

   Example:

     i = ++j;

-- Usage: iv--

   Decreasing iv by 1. The value of this expression is the value of ie

   before decreasing.

   Example:

     j = i--;

-- Usage: --iv

   Decreasing iv by 1. The value of this expression is the value of ie

   after decreasing.

   Example:

     i = --j;


Array index (<n>) is out of range (<max>)

CodeMaster detected a script file error: access to an array element beyond the limit, i.e. the array element index is greater than the number of elements minus 1. Example:

char s[3];

int i = 3;

s[i] = 0; // Error: max. index is 2

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Array Operations

Array Operations

[]   Usage: name[ie]

    The expression value is the number equal to the value of the element

    number ie of the name array. The array elements are numbered beginning from         0.

   Example:

      arname[i] = 3;

      To assign 3 to the array element i.

      Note the first element as described by the expression of

      arname[0].


Arrays

Arrays

Only one-dimensional arrays are supported.

Example:

int a[50];

Variable a is the array consisting of 50 integer numbers.


Assignment Operations

Assignment Operations

Note. The value of expression containing the assignment operation is the value of the left operand after the assignment.

= Usage: v = e

  The value of e is assigned to variable v.

  Example:

    x = y;

Note. The following operations combine arithmetic or bit-by-bit operations with the assignment operation.

+= Usage: av += ae

   Increasing av by ae.

   Example:

     y += 2;

-= Usage: av -= ae

   Decreasing av by ae.

   Example:

     x -= 3;

*= Usage: av *= ae

   Multiplication of av by ae.

   Example:

     timesx *= x;

/= Usage: av /= ae

   Division of av by ae.

   Example:

     x /= 2;

%= Usage: iv %= ie

   The value of iv in modulus ie.

   Example:

     x %= 10;

>>= Usage: iv >>= ie

   The right ie bit shift of the iv binary form.

   Example:

     x >>= 4;

Usage: iv <<= ie

   The left ie bit shift of the iv binary form.

   Example:

     x <<= 1;

&= Usage: iv &= ie

   The bit-by-bit AND operation of the iv and ie binary forms.

   Example:

     remitems &= mask;

^= Usage: iv = ie

   The bit-by-bit exclusive OR operation of the iv and ie binary forms.

   Example:

     control ^= seton;

|= Usage: iv |= ie

   The bit-by-bit OR operation of the iv and ie binary forms.

   Example:

     additems |= mask;


Attempt to write to a read-only array

Some of the script language built-in variables are read-only.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Basic Types

Basic Types

Examples:

char c;

int x = 0;

The basic types are:

char     - character (one byte);

short   - short integer (word, 16 bit);

int     - integer (word, 16 bit);

unsigned - non-negative integer (of the same size as integer);

long     - long integer (word or double word);

float   - floating-point number (single precision);

void     - no value (used to neutralize the value

            returned by function)

The Short type is equivalent to the Int type and was introduced for generality.

Also, see Basic Data


Bit Operations

Bit Operations

~    Usage: ~ie

    One's complement of the value ie. The expression value contains ones in

    all those bits, in which ie contains 0, and contains 0 in all

    those bits, in which ie contains ones.

    Example:

      opposite = ~mask;

>>   Usage: ie1 >> ie2

    The right ie2 shift of the ie1 binary form.

    The shift may be arithmetic (that is, the bits cleared from the left

    assume the value of the sign bit) for the signed numbers and

    logical for the unsigned numbers (the bits cleared from the left are

    filled with zeroes).

    Example:

      x = x >> 3;

<<   Usage: ie1 << ie2

    The left ie2 bit left of the ie2 binary form.

    The bits cleared from the right are filled with zeroes.

    Example:

      fourx = x << 2;

&    Usage: ie1 & ie2

    The bit-wise AND operation of the ie1 and ie2 binary forms. The expression

    value assumes 1 in all those bits, in which both ie1 and ie2 contain

    1, and assumes 0 in all other bits.

      flag = ((x & mask) != 0);

|    Usage: ie1 | ie2

    The bit-wise OR operation of the ie1 and ie2 binary forms. The expression

    value assumes 1 in all those bits, in which either ie1 or ie2 contain

    1, and assumes 0 in all other bits.

    Example:

      attrsum = attr1 | attr2;

^    Usage: ie1 ^ ie2

    The bit-wise exclusive OR operation of the ie1 and ie2 binary forms.

    The expression value contains 1 in all those bits, in which ie1 and

    ie2 contain different binary values, and the expression value

    contains 0 in all other bits.

    Example:

      diffbits = x ^ y;


Buffer access functions

LoadProgram

ReloadProgram

SaveData

SetDevice

MinAddr

MaxAddr

GetByte

GetWord

GetDword

SetByte

SetWord

SetDword

GetMemory

SetMemory


Built-in symbol '<name>' not found

This error occurs, when the script file tries to access SFR or a variable of the loaded program and cannot find it.

Keep in mind that for such access method, you shall use the variable or SFR name prepended with dollar sign, e.g.: '$SP'.

Check if this variable exists. Try adding its name (without '$' sigh) to the Watches window.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Byte number (<n>) for array is out of range (<m>)

The string operation functions detected the invalid offset in string: the result of operation will not fit into the destination string.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Ñèìâîëüíûå Êîíñòàíòû

Символьные Константы

Символьная константа состоит из одного символа кода ASCII, заключенного в апострофы. Символ может быть также представлен его шестнадцатиричным значением, предваренным символами ' \ x' и содержащим ровно две шестнадцатиричных цифры.

Примеры:

'A' 'a' '7' '$' '\x02' '\ x88'

Специальные (управляющие) символьные константы

Новая строка (перевод строки) HL (LF) ' \n'
Горизонтальная табуляция HT ' \t'
Вертикальная табуляция VT ' \v'
Возврат на шаг BS ' \b'
Возврат каретки CR ' \r'
Перевод формата FF ' \f'
Обратная косая \ ' \\'
Апостроф ' ' \''
Кавычки " ' \"'
Нулевой символ (пусто) NUL ' \0'

Примечание. Символьные константы считаются данными типа int.


Character operation functions

Character operation functions

isalnum

isalpha

isascii

iscntrl

isdigit

isgraph

islower

isprint

ispunct

isspace

isupper

isxdigit

toascii

tolower

toupper


CheckSum_

CheckSum (COPY)

 Top

unsigned long CheckSum(unsigned long start_addr, unsigned long end_addr, int addr_space);

Description

Calculates checksum for data in the addr_space memory{addr_sp} starting at start_addr and ending at end_addr. Checksum is calculated by simple addition of byte values.

Return Value

32-bit checksum.

Example

printf("%08lX", CheckSum(0, 0x1FFF, SubLevel(1, 0)));


Clock frequency cannot be modified

The clock frequency cannot be modified.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Êîììåíòàðèè

Комментарии

Комментарии начинаются парой символов /*, заканчиваются парой символов */.

Разрешены везде, где допустимы пробелы.

Поддерживаются также однострочные комментарии (//). Остаток строки за символами однострочного комментария игнорируется.

Примечание. В строке, где присутствует директива #define, разрешены только однострочные комментарии.

Примеры:

// Однострочный комментарий

/* Многострочный комментарий */


Composite operator

Composite operator

The composite operator (block) consists of one or more operators of any type enclosed in the brackets ({ }).

There shall be no semicolon (;) behind the closing bracket.

Example:

{

  x = 1;

  y = 2;

  z = 3;

}


Conditional Compilation

Preprocessor command lines are used for conditional compilation of various parts of the source text depending on external conditions.

Syntax:

#ifdef identifier

Example:

#ifdef Debug

True, if the Debug identifier was defined earlier by the #define directive. Identifiers can also be defined in the Defines text box in the Script Files dialog.

Syntax:

#ifndef identifier

Example:

#ifndef Debug

Syntax:

#else

If all previous checks of #if, #ifdef, or #ifndef show the True value, then the lines from #else to #endif will be ignored during compilation.

If those checks show the False value, then the lines from the check to #else (and if #else is missing, then from the check to #endif) will be ignored.

The #endif command ends the conditional compilation.

Example:

#ifdef DEBUG   printf("Location: x = %d", x); #endif


Conditional Operator If-Else

Conditional Operator If-Else

Syntax:

if (expression)

operator

If the expression is True, then the operator will be executed. If the expression is False, then nothing will happen.

Example:

if (a == x) temp = 3;

if (expression)

operator1

else

operator2

If the expression is True, then operator1 will be executed and control will be transferred to the operator following operator2 (which means that operator2 will not be executed).

If the expression is False, then operator2 will be executed.

The "else" part of the operator can be omitted. That is why ambiguity may arise in the nested operators with omitted "else" part. In this case, else is related to the nearest preceding operator in the same block that does not have the "else" part.

Examples:

1) The "else" part relates to the second if operator:

if(x > 1)

   if (y == 2)

       z = 5;

   else

       z = 6;

2) The "else" relates to the first if operator:

if (x > 1)

{

  if (y == 2) z = 5;

}

else z = 6;

3) The nested if operators:

if (x == 'a') y = 1;

else

  if (x == 'b')

  {

    y = 2;

    z = 3;

  }

  else

    if (x == 'c') y = 4;

else

   printf("ERROR");


Cycle Operator Do-While

Syntax:

do

  operator

while (expression);

If the expression is True, then the operator will be executed and the expression value will be calculated. This will be repeated until the expression becomes False.

If the expression is False, then control is passed to the next operator.

Note. The expression value is determined after the operator is executed. Therefore, the operator is executed at least once.

The do-while operator checks the condition in the end of the cycle.

The while operator checks the condition in the beginning of the cycle.

Example:

x = 1;

do

   printf('%d\n", pow(x, 2));

while (++x <= 7);


Cycle Operator For

Cycle Operator For

Syntax:

for (expression1; expression2; expression3)

operator

Expression1 describes the cycle initialization. Expression2 is checking the condition of the cycle completion. If it is True, then:

the "for" operator of the cycle body will be executed;

expression3 will be executed.

Everything will be repeated until expression2 becomes False.

If it is False, then the cycle will be finished and control will be passed to the next operator.

Expression3 is calculated after each iteration.

The "for" operator is equivalent to the following operator sequence:

expression1;

while (expression2)

{

  operator

  expression3;

Example:

for(x = 1; x <= 7; x++)

    printf("%d\n", pow(x, 2));

In any of the three expressions, or in all three expressions of the operator, "for" may be absent, but the semicolons (;) separating them cannot be omitted.

If expression2 is omitted, then it will be considered True. The "for" operator (;;) is the endless cycle equivalent to the While(1) operator.


Cycle Operator While

Cycle Operator While

Syntax:

while (expression)

operator

If the expression is True, then the operator will be executed until the expression becomes False.

If the expression is False, then control is passed to the next operator.

Note. The value of the expression is determined before executing the operator. Therefore, if the expression is False from the very beginning, then the operator will not be executed at all.

Example:

while (k < n)

{

   y *= x;

   k++;

}


Data byte order

Data byte order

All many-byte data is stored in the memory in the "little engine" format, that is, the low byte is allocated at the low address and the high byte is allocated at the high address in accordance with the 80x86 processor architecture. For experienced programmers, it is useful to know this, if they want to use Windows API and DLL functions access


 Debug shell control functions

Debug shell control functions

Debug shell control functions

These functions control CodeMaster.

RedrawScreen

LoadDesktop

LoadOptions

SaveDesktop

SaveOptions

OpenWindow

OpenUserWindow

OpenStreamWindow

CloseWindow

FindWindow

MoveWindow

ActivateWindow

SetWindowSize

SetWindowSizeT

GetWindowWidth

GetWindowHeight

SetWindowFont

WindowHotkey

AddSymbol

ResetSymbolTable

AddWatch

Inspect

ExecMenu

ExitProgram

LoadProject

CloseProject

LoadProgram

ReloadProgram

SaveData


Descriptions

Descriptions are used for variable definitions and to declare types of variable and functions defined elsewhere. Descriptions are also used for defining new data types on the basis of existing data types. A description can be an operator, if an initialized variable or array are described.

Basic Types

Arrays

Local Variable Definition

Global Variable Definition


 Device programming control functions

Device programming control functions

ExecFunction

SetProgOption

GetProgOptionLong

GetProgOptionFloat

GetProgOptionString

GetProgOptionList

GetProgOptionBits

ProgOptionDefault

AllProgOptionsDefault

mprintf

Operations on device is also controlled by the following

built-in variables:

InsertTest

ReverseBytesOrder

BlankCheck

VerifyAfterProgram

VerifyAfterRead

ChipStartAddr

ChipEndAddr

BufferStartAddr

LastErrorMessage[]

DialogOnError


Directives of the Script Language Preprocessor

If you use the # symbol as the first symbol in the program line, this line is the preprocessor (microprocessor) command line.

The preprocessor command line ends with the line advance symbol.

Identifier Change (#define)

Inclusion of Files (#include)

Conditional


Divide overflow

A divide overflow occurred during execution of the script file. Check the operands to expression.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


%e or %E Conversions

[-] d.ddd...e[+/-]ddd

where:

•

one digit precedes the decimal point

•

the number of digits after the decimal point is equal to the precision;

•

the exponent always contains at least two digits.


Ôóíêöèè Îæèäàíèÿ Ñîáûòèÿ

Функции Ожидания События

Функции ожидания события предназначены для моделирования внешней среды. В симуляторах можно также использовать функции ожидания события для построения различных тестов.

WaitWindowEvent


 ExecFunction

ExecFunction

int ExecFunction(char func_name[], int buffer=0, int repetitions=1);

Description

Perform the specified action (function) on device - programming, blank check, etc. The list of available functions is displayed in the upper left corner of the Program window.

Parameters:

func_name - function name, e.g. "Blank Check". If you need to execute a function located in the pop-up menu, you should precede the function name with the menu name and separate them with '^' sign, e.g. "Data Memory^Program".

buffer - buffer number.

repetitions - number of repetitions of the function.

Returned value

For the value returned by ExecFunction, the header file mprog.h contains two constants:

EF_OK - function was completed successfully

EF_ERROR - there was an error while executing function. In this case, the error description is copied into the built-in variable LastErrorMessage.

Example

  if (ExecFunction("Blank Check") != EF_OK)

    printf("Error in blank check: %s", LastErrorMessage);

  See also DialogOnError.


External Object Description

Any type of external objects (for example, variables or functions) not defined explicitly in another script file, should be described explicitly.

Use the keyword Extern hen describing an external object.

Examples:

extern int Global_var;

extern char *Name;

extern int func();

The length of external one-dimensional array can be omitted.

Example:

extern float Num_array[];

Because all functions are defined on the external level, the adjective extern is not needed to describe a function inside the block and you can omit it.


External symbol '<name>' not found

The script file tried to access a variable declared as 'extern' and could not find it neither among the global symbols of the already loaded script files nor among the script language built-in variables.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


%f Conversions

%f Conversions

The argument is converted to decimal notation in the style

[-] ddd.ddd...

where the number of digits after the decimal point is equal to the precision (if a non-zero precision was given).


Êîíñòàíòà ñ Ïëàâàþùåé Òî÷êîé

Константа с Плавающей Точкой

Константа с плавающей точкой состоит из следующих частей:

· целой части - последовательности цифр; ·
· десятичной точки;
· дробной части - последовательности цифр;
· символа экспоненты е или Е;
· экспоненты в виде целой константы (может быть со знаком) .

Любая часть (но не обе сразу) из нижеследующих пар может быть опущена:

· целая или дробная часть;
· десятичная точка или символ е (Е) и экспонента в виде целой
константы.

Примеры:

345. = 345 (десятичное);
3.14159 = 3.14159 (десятичное);
2.1E5 = 210000 (десятичное);
.123E3 = 123 (десятичное);
4037е-5 = .04037 (десятичное).


Floating-point numbers

All floating-point numbers have the format corresponding to the ANSI/IEEE 754-1895 standard for the single-precision normalized numbers.

If a floating-point number is reduced to certain integer type, then the fractional part is discarded in accordance with the ANSI standard. If the reduced value is too large and can not be allocated within the required integer type, then the result assumes the maximum value allowed for the integer type.

If an integer number is reduced to the floating-point number, and the floating-point number can not contain the exact value of the integer number being reduced, then the value is reduced to the closest smaller appropriate floating-point number.


fnmerge

Declaration:

void fnmerge(char path[], char drive[], char dir[], char name[], char ext[]);

Builds a path from component parts.

fnmerge makes the path name from its components. The new path name is

X:\DIR\SUBDIR\NAME.EXT

where:

drive =       X

dir   =       \DIR\SUBDIR\

name  =       NAME

ext   =       .EXT

fnmerge assumes there is enough space in path for the constructed path name. The maximum constructed length, MAXPATH, is defined in system.h.

fnmerge and fnsplit are invertible: if you split the given path with fnsplit, then merge the resultant components with fnmerge and you end up with this path.


Ôîðìàò

Формат

Пробелы, символы табуляции, символы перевода строки и страницы используются как разделители. Вы можете использовать любое их количество.


Format and nesting

Format and nesting

Format. One operand can occupy one or more lines. Two or more operands can be located in one line.

Nesting. The execution control operators (if, if-else, switch, while, do-while and for) can be nested in each other.


Formatted input-output functions

Formatted input-output functions

Formatted input-output functions perform data conversion in accordance with the format line. You can find description of the format line in any book on the C language.

Note that the arguments for input functions should be arrays, and not simple variables. This is because the pointers are not supported in the script file language, and it is impossible to transfer an address with the simple variable.

Attention! Your arguments passed to the formatted input-output functions shall match the format line. Otherwise, the CodeMaster program may fail.

fprintf

fscanf

scanf

pscanf

sscanf

printf

_printf

sprintf

MessageBox

MessageBoxEx


Ôóíêöèÿ _ff_attrib

Функция _ff_attrib

Объявление:

char _ff_attrib(char ffblk[]);

Описание

Возвращает байт атрибутов файла, найденного при вызове функции findfirst или findnext . Параметр ffblk - это буфер, заполненный информацией о файле после вызова findfirst или findnext.

Пример

Смотри функцию findfirst


Ôóíêöèÿ _ff_date

Функция _ff_date

Объявление:

int _ff_date(char ffblk[]);

Описание

Возвращает слово, содержащее дату создания или модификации файла, найденного при вызове функции findfirst или findnext. Параметр ffblk - это буфер, заполненный информацией о файле после вызова findfirst или findnext.

Пример:

См. функцию findfirst.


Ôóíêöèÿ _ff_name

Функция _ff_name

Объявление:

void _ff_name(char ffblk[], char fname[]);

Описание

Copies the name of the file found upon the function findfirst or findnext access to the fmane array. The ffblk parameter is the buffer filled with information on the file after the findfirst or findnext access. The file name does not contain the disk name or path.

Копирует в массив fname имя файла, найденного при вызове функции findfirstили findnext. Параметр ffblk - это буфер, заполненный информацией о файле после вызова findfirst или findnext. Имя файла не содержит ни имени диска, ни пути.

Пример:

См. функцию findfirst.


Ôóíêöèÿ _ff_size

Функция _ff_size

Объявление:

long _ff_size(char ffblk[]);

Описание

Возвращает размер файла, найденного при вызове функции findfirstили findnext. Параметр ffblk - это буфер, заполненный информацией о файле после вызова findfirst или findnext.

Пример:

См. функцию findfirst


Ôóíêöèÿ _ff_time

Функция _ff_time

Объявление:

int _ff_time(char ffblk[]);

Описание

Возвращает слово, содержащее время создания или модификации файла, найденного при вызове функции findfirst или findnext. Параметр ffblk - это буфер, заполненный информацией о файле после вызова findfirst или findnext.

Пример:

См. функцию findfirst.


Function _fullpath

Объявление:

int _fullpath(char buf[], char path[]);

Описание

Converts a relative path name to the absolute one.

_fullpath converts the relative path name in a path to the absolute path name that is stored in the array of characters pointed to by buf. The function returns FALSE the path contains an invalid drive letter.

Возвращаемое значение

If successful, the _fullpath function will return TRUE. On error, it returns FALSE.


Ôóíêöèÿ _GetWord

Функция _GetWord

Объявление:

void _GetWord(char dest[]);

Описание

Копирует в массив dest слово, на котором находится курсор. Если курсор не находится на слове, то первый элемент массива будет равен 0.


Ôóíêöèÿ _printf

Функция _printf

Объявление:

void _printf(char format[], ... );

Описание

То же, что printf, но к выводимой строке не присоединяется символ перевода строки.

Примечание. Аргументы, чтобы передаваемые функциям форматированного ввода-вывода, должны соответствовать спецификаторам в строке формата. Несоответствие может привести к сбою CodeMaster .


Ôóíêöèÿ abs

Функция abs

Объявление:

long abs(long x);

Описание

Функция abs вычисляет абсолютное значение целого аргумента val

Возвращаемое значение

Функция abs возвращает абсолютное значение аргумента val.


Ôóíêöèÿ acos

Функция acos

Объявление:

float acos(float x);

Описание

Функция acos вычисляет значение арккосинуса для числа с плавающей точкой x. Значение аргумента x должно быть в диапазоне от -1 до 1, в противном случае результат будет 0 (для x > 1) или PI (для x < -1). Значение, возвращаемое функцией, находится в пределах от 0 до PI.

Возвращаемое значение

Функция acos возвращает значение арккосинуса аргумента x.


Ôóíêöèÿ ActivateWindow

Функция ActivateWindow

Объявление:

void ActivateWindow(unsigned long handle);

Описание

Активизировать указанное окно. Окно становится активным и расположенным поверх других окон CodeMaster.


Ôóíêöèÿ AddButton

Функция AddButton

Объявление:

int AddButton(unsigned long handle, char button_text[], int x, int y, int width, int height);

Описание

Добавить в окно кнопку, такую же, как в стандартных диалогах Windows. Когда пользователь будет нажимать кнопку мышью, будет генерироваться событие, которое можно поймать функцией WaitWindowEvent и произвести соответствующее действие.

Если в окне уже существует указанная кнопка (добавленная вызовом AddButton с точно такими же параметрами), то новая кнопка не добавляется, а используется уже существующая.

Параметры:

   handle       - идентификатор окна,открытого функцией OpenUserWindow
   button_text - текст, написанный на кнопке
   x, y         - координаты верхнего левого угла кнопки в окне
   width        - ширина кнопки
   height       - высота кнопки

Возвращаемое значение

Идентификатор кнопки. Используется функцией WaitWindowEvent для определения, какая кнопка была нажата (в окно можно поместить несколько кнопок).

Пример:

AddButton(handle, "Start", 50, 50, 70, 24);


Ôóíêöèÿ AddrExpr

Функция AddrExpr

Объявление:

unsigned long AddrExpr(char str[]);

Описание

Вычисляет выражение и возвращает результат , интерпретируя str как адрес в памяти микроконтроллера.

Пример:

int addr_port0 = AddrExpr("PORT0");

WaitMemoryAccess(addr_port0, AS_DATA, 1, MA_WRITE);

Заметим,что 'AddrExpr("PORT0")' эквивалентно 'Expr("&PORT0")'.

Смотрите также Expr, FloatExpr, Expressions, Доступ к именам SFRов и Переменных из Файлов Сценария.


Ôóíêöèÿ AddSymbol

Функция AddSymbol

Объявление:

void AddSymbol(char name[], unsigned long addr, int addr_space, int size);

Описание

Добавить в символьную таблицу CodeMaster символьное имя. Эта функция может использоваться для облегчения работы с программой, не имеющей по некоторым причинам символьной информации (например, с двоичным файлом, прочитанным из микросхемы, или с программой, созданной кросс-средствами, которые CodeMaster не поддерживает).

Параметры:

name - имя переменной;

addr - адрес переменной;

addr_space - адресное пространство, в котором расположена переменная. В файле system.h приведены константы с префиксом AS_.

size - размер переменной. По этому параметру определяется тип переменной:

   0 - метка кода, параметр addr_space должен быть равен AS_CODE
   1 - unsigned char (1 байт)
   2 - unsigned int  (2 байта)
   4 - unsigned long (4 байта)

Чтобы очистить символьную таблицу перед добавлением в нее переменных, нужно использовать функцию ResetSymbolTable(). При этом "встроенные" имена регистров не удаляются.

Примеры:

AddSymbol("ResetVector", 0, AS_CODE, 0); // метка кода с адресом 0

AddSymbol("MyReg",  0xA, AS_DATA, 1); // переменная размером один байт по адресу 0xA в памяти данных


Ôóíêöèÿ AddWatch

Функция AddWatch

Объявление:

void AddWatch(char name[], int format=DF_HEX);

Описание

Добавить в окно Переменные указанное имя (параметр name) в указанном формате. Если окно Переменные не открыто, оно открывается автоматически.

Примеры:

AddWatch("Duration", DF_DEC);

AddWatch("Address");   // по умолчанию шестнадцатеричный формат


Function API

Объявление:

unsigned long API(char func_name[], ... );

Описание

Вызывает 16-битную функцию Windows API с указанным в func_name именем, передавая ей параметры, указанные в функции API.

Убедитесь в корректной записи размеров и количества параметров, т.к. CodeMaster , естественно, ничего о них не знает. В необходимых случаях используйте явное преобразование типа .

To reduce problems, when an array is transferred as the parameter, a long (32-byte) pointer is transferred.

Возвращаемое значение

Возвращаемое функцией API находится в регистрах DX:AX. Если это указатель, то данные могут быть доступны через peek, poke, peekb и pokeb функции.

Пример:

int ScreenHeight = API("GetSystemMetrics", SM_CYFULLSCREEN);


Ôóíêöèÿ asin

Функция asin

Объявление:

float asin(float x);

Описание

Функция asin вычисляет значение арксинуса для числа с плавающей точкой x. Значение аргумента x должно быть в диапазоне от -1 до 1, в противном случае результат будет равен PI/2 (для x > 1) или -PI/2 (для x < -1). Значение, возвращаемое функцией, находится в пределах от -PI/2 до PI/2.

Возвращаемое значение

Функция asin возвращает значение арксинуса аргумента x.


Ôóíêöèÿ atan

Функция atan

Объявление:

float atan(float x);

Описание

Функция atan вычисляет значение арктангенса для числа с плавающей точкой x. Значение, возвращаемое функцией, находится в диапазоне от -PI/2 до PI/2.

Возвращаемое значение

Функция atan возвращает значение арктангенса аргумента x.


Ôóíêöèÿ atof

Функция atof

Объявление:

float atof(char s[]);

Описание

Преобразует ASCII-строку (параметр s) в число с плавающей точкой. .


Ôóíêöèÿ atoi

Функция atoi

Объявление:

int atoi(char s[]);

Описание

Преобразует ASCII-строку (параметр s) в целое число.


Ôóíêöèÿ BackSpace

Функция BackSpace

Объявление:

void BackSpace();

Описание

Эквивалентно нажатию клавиши BackSpace


Ôóíêöèÿ BlockBegin

Функция BlockBegin

Объявление:

void BlockBegin(int block_type);

Описание

Начать маркировку блока (see Операции с блоками). . Параметр block_type указывает, какого типа будет блок. Для удобства в системном заголовочном файле system.h определены константы:

    EB_NONE    - блока нет (в этой функции не используется)

    EB_LINE    - строковый блок

    EB_VERT    - вертикальный блок

    EB_STREAM  - потоковый блок


Ôóíêöèÿ BlockCopy

Функция BlockCopy

Объявление:

void BlockCopy();

Описание

Скопировать блок в клипборд.


Ôóíêöèÿ BlockDelete

Функция BlockDelete

Объявление:

void BlockDelete();

Описание

Удалить блок. Удаленный блок помещается в клипборд.


Ôóíêöèÿ BlockEnd

Функция BlockEnd

Объявление:

void BlockEnd();

Описание

Закончить маркировку блока. Предполагается, что до вызова BlockEnd была вызвана BlockBegin , после чего курсор был перемещен в место, соответствующее концу блока.


Ôóíêöèÿ BlockFastCopy

Функция BlockFastCopy

Объявление:

void BlockFastCopy();

Описание

Скопировать блок с позиции курсора.


Ôóíêöèÿ BlockMove

Функция BlockMove

Объявление:

void BlockMove();

Описание

Переместить блок с позиции курсора.


Ôóíêöèÿ BlockOff

Функция BlockOff

Объявление:

void BlockOff();

Описание

Отменить маркировку блока.


Ôóíêöèÿ BlockPaste

Функция BlockPaste

Объявление:

void BlockPaste();

Описание

Вставить блок из клипборда с позиции курсора. .


Ôóíêöèÿ call

Функция call

Синтаксис :

Имя_функции(e1, e2, ..., eN)

Аргументы, не являющиеся массивами, (фактические параметры) передаются по значению, т. е. каждое выражение e1,..., eN вычисляется и значение передается функции. Массивы передаются "по указателю", как в примере:

{

s[0] = 2;

void main()

{

char array[3];

func(array);

}

Функция func модифицирует значение нулевого элемента массива array, об'явленного в функции main, а не его копии.

Указатели на функции (как, впрочем, и все другие указатели) не реализованы.


Ôóíêöèÿ CallLibraryFunction

Функция CallLibraryFunction

Объявление:

unsigned long CallLibraryFunction(unsigned long inst, char func_name[], ... );

Описание

Вызывает функцию с именем func_name из DLL, чей HINSTANCE передается в inst. Все остальное то же самое, что и при вызове функции API.

Пример:

unsigned long instance = LoadLibrary("EXTEND.DLL");

long result = CallLibraryFunction(instance, "Initialize", 0, 1L);


Ôóíêöèÿ ceil

Функция ceil

Объявление:

float ceil(float x);

Описание

Функция ceil вычисляет наименьшее целочисленное значение, не меньшее x.

Возвращаемое значение

Функция ceil возвращает число типа float, значение которого равно наименьшему целому числу, не превышающему x.


Ôóíêöèÿ chdir

Функция chdir

Объявление:

int chdir(char path[]);

Описание

Устанавливает новую директорию по умолчанию, указанную в параметре path. Последний может содержать и имя диска, но смены диска не произойдет, изменится лишь директория по умолчанию на этом диске.

Возвращаемое значение

При успешной смене директории возвращает 0, иначе -1.


Ôóíêöèÿ CheckSum

Функция CheckSum

Объявление:

unsigned long CheckSum(unsigned long start_addr, unsigned long end_addr, int addr_space);

Описание

Вычислить контрольную сумму данных в адресном пространстве, задаваемом параметром addr_space, с начального адреса (start_addr) до конечного (end_addr). Контрольная сумма вычисляется простым сложением байт.

Возвращаемое значение

Контрольная сумма - 32-разрядное число.

Пример:

printf("%08lX", CheckSum(0, 0x1FFF, AS_DATA));


Function chsize

Объявление:

int chsize(long handle, long size);

Описание

Changes the file size.

chsize changes the size of the file associated with handle. It can truncate or extend the file, depending on the value of size compared to the file's original size.

The mode, in which you open the file, must allow writing.

If chsize extends the file, it will append the null characters (\0). If it truncates the file, all data beyond the new end-of-file indicator will be lost.

Возвращаемое значение

On success, chsize returns 0. On failure, it returns -1 and sets the errno global variable to one of the following values:

  EACCESS      Permission denied
  EBADF        Bad file number
  ENOSPC       No space left o


Ôóíêöèÿ ClearAllBreaks

Функция ClearAllBreaks

Объявление:

void ClearAllBreaks();

Описание

Очистить все точки останова всех типов (смотрите Точки Останова.


Ôóíêöèÿ ClearBreak

Функция ClearBreak

Объявление:

void ClearBreak(unsigned long addr);

Описание

Снять точку останова по указанному адресу.


Ôóíêöèÿ ClearBreaksRange

Функция ClearBreaksRange

Объявление:

void ClearBreaksRange(unsigned long start_addr, unsigned long end_addr);

Описание

Снять точки останова по коду в диапазоне со start_addr по end_addr включительно.


Function clearerr

Объявление:

void clearerr(unsigned long stream);

Описание

Resets error indication.

clearerr resets the specified stream's error and end-of-file indicators to 0. Once the error indicator is set up, the stream operations continue to return the error status until a call is made to clearerr or rewind. The end-of-file indicator is reset with each input operation.


Ôóíêöèÿ ClearWindow

Функция ClearWindow

Объявление:

void ClearWindow(unsigned long handle);

Описание

Очистить указанное окно, которое может быть окном Пользователя или окном Потока Вода / Вывода .


Function close

Объявление:

int close(long handle);

Описание

Closes a file.

The close function closes the file associated with handle (the file handle obtained from a call to creat, creatnew, creattemp, dup, dup2, ).

It does not write the Ctrl-Z character to the end of the file. If you want to terminate the file with Ctrl-Z, you must explicitly output it.

Возвращаемое значение

Upon successful completion, close returns 0. On error (if it fails because handle is not the handle of a valid, open file), close returns -1 and the errno global variable is set to

EBADF        Bad file number


Ôóíêöèÿ CloseWindow

Функция CloseWindow

Объявление:

void CloseWindow(unsigned long handle);

Описание

Закрыть указанное окно. Параметр handle - идентификатор окна, полученный вызовом функции OpenWindow и FindWindow.


Ôóíêöèÿ cos

Функция cos

Объявление:

float cos(float x);

Описание

Функция cos вычисляет значение косинуса для числа с плавающей точкой x.

Возвращаемое значение

Функция cos возвращает значение косинуса для аргумента x.


Ôóíêöèÿ Cr

Функция Cr

Объявление:

void Cr();

Описание

Работает эквивалентно клавише Enter.


Function creat

Объявление:

int creat(char path[], int amode);

Описание

Creates a new file or overwrites an existing one.

Note. Remember that the backslash in a path requires '\\'.

creat creates a new file or prepares to rewrite an existing file given by path. amode applies only to newly created files. A file created with creat is always created in the translation mode specified by the _fmode global variable (O_TEXT or O_BINARY). If the file exists and the write attribute is set, then creat will truncate the file to the length of 0 bytes, leaving the file attributes unchanged. If the existing file has the read-only attribute set, then the creat call will fail and the file will remain unchanged. The creat call examines only the S_IWRITE bit of the access-mode word amode. If this bit is 1, then the file can be written to. If the bit is 0, then the file is marked as read-only. All other operating system attributes are set to 0. amode can be one of the following (defined in system.h):

Value of amode       Access permission

  S_IWRITE             Permission to write
  S_IREAD              Permission to read
  S_IREAD | S_IWRITE   Permission to read and write (write permission
                       implies read permission))

Возвращаемое значение

Upon successful completion, creat returns the new file handle (a nonnegative integer); otherwise, it returns -1. In the event of error, the errno global variable is set to one of the following:

  EACCES       Permission denied
  ENOENT       Path or file name not found
  EMFILE       Too many open files


Function creatnew

Объявление:

int creatnew(char path[], int amode);

Описание

Creates a new file.

creatnew is identical to creat, with the only exception: if the file exists, then creatnew will return error and leave the file untouched. The amode

FA_HIDDEN    Hidden file

FA_RDONLY    Read-only attribute

FA_SYSTEM    System file

Возвращаемое значение

Upon successful completion, creatnew returns the handle of new file (a non-negative integer); otherwise, it returns -1. In the event of error, the errno global variable is set to one of the following values:

EACCES       Permission denied

EEXIST       File already exists

EMFILE       Too many open files

ENOENT       Path or file name not found


Function creattemp

Объявление:

int creattemp(char path[], int attrib);

Описание

Creates a unique file in the directory associated with the path name. A file created with creattemp is always created in the translation mode specified by the _fmode global variable (O_TEXT or O_BINARY).

path is the path name ending with backslash (\). The unique file name is selected in the directory given by path. The newly created file name is stored in the path string supplied. path should be long enough to hold the resulting file name. The file is not automatically deleted, when the program terminates.

creattemp accepts attrib, the DOS attribute word. Upon successful file creation, the file pointer is set to the beginning of the file. The file is opened for both reading and writing.

The attrib argument to creattemp can be either zero or an OR-combination of any of the following constants (defined in system.h):

  FA_HIDDEN    Hidden file
  FA_RDONLY    Read-only attribute
  FA_SYSTEM    System file

Возвращаемое значение

Upon successful completion, the new file handle (a non-negative integer) is returned; otherwise, -1 is returned. In the event of error, the errno global variable is set to one of the following values:

  EACCES       Permission denied
  EMFILE       Too many open files
  ENOENT       Path or file name not found


Ôóíêöèÿ CurChar

Функция CurChar

Объявление:

char CurChar();

Описание

Возвращает символ, на котором находится курсор. Если курсор находится за концом строки, то CurChar() вернет 0.


Ôóíêöèÿ Curcuit

Функция Curcuit

Объявление:

void Curcuit(unsigned long handle, int x1, int y1, int x2, int y2);

Описание

Нарисовать незакрашенный эллипс, используя выбранное функцией SelectPen перо. (x1, y1) - координаты верхнего левого угла прямоугольника, в который будет вписан эллипс, (x2, y2) - нижнего правого.


Ôóíêöèÿ Debug

Функция Debug

Объявление:

void Debug();

Описание

Включает режим отладки для Файлов Сценария (ФС), который вызвал эту функцию. Выполнение ФС приостанавливается и для него открывается окно Исходного Текста Файла Сценария .


Îïðåäåëåíèå Ôóíêöèè

Определение Функции

Функция определяется описанием типа результата, формальных параметров и составного оператора (блока), описывающего выполняемые функцией действия.

Пример:

int                          тип результата
   func(                      имя функции
        long a, char str[]    список параметров с описанием имен и типов
       )
{                            составной оператор
   // ...
   return 0;                  возвращаемое значение
}

Оператор return может не возвращать никакого значения или возвращает значение выражения, стоящего в этом операторе

Функция, которая не возвращает значения, должна быть описана как имеющая тип void.

Один или несколько последних параметров в списке могут иметь значение по умолчанию.

Примеры:

int func(int x, int y = 0);
int f1(char s[], char s1[] = "null", int x = func(0));

void errmesg(char s[])
{
   printf{"***Error: %s", s);
   // явного оператора return не требуется
}


Ôóíêöèÿ delay

Функция delay

Объявление:

void delay(unsigned int milliseconds);

Описание

Приостановить CodeMaster на указанное время.

Пример:

   while (1)
   {
     Step();         // выполнить шаг
     RedrawScreen(); // Обновить экран. Step() этого не делает.
     delay(1000);    // подождать 1 секунду. За это время можно
   }                 // обозреть результаты шага


Ôóíêöèÿ DelChar

Функция DelChar

Объявление:

void DelChar(int count=1);

Описание

Удалить указанное количество символов в строке, начиная с позиции курсора.


Ôóíêöèÿ DelLine

Функция DelLine

Объявление:

void DelLine(int count=1);

Описание

Удалить текущую строку.


Ôóíêöèÿ difftime

Функция difftime

Объявление:

unsigned long difftime(int time1[], int time2[]);

Описание

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

Так как gettime использует системный таймер, погрешность вычисления интервала может достигать 104 миллисекунд.

Возвращаемое значение

Разница во времени между двумя отсчетами в миллисекундах.

Пример:

int time1[4];
int time2[4];
gettime(time1);
while (1)
{
   gettime(time2);
   printf("Difference: %lu", difftime(time1, time2));
}


Ôóíêöèÿ DisplayText

Функция DisplayText

Объявление:

void DisplayText(unsigned long handle, char text[ ], int x, int y);

Описание

Вывести текст в окно, используя непропорциональный шрифт и текстовые координаты, т.е. x - номер столбца, y - номер строки.

Для вывода текста произвольным шрифтом и в произвольное место нужно пользоваться функцией DisplayTextF.


Ôóíêöèÿ DisplayTextF

Функция DisplayTextF

Объявление:

void DisplayTextF(unsigned long handle, char text[], int x, int y);

Описание

Вывести текст в окно, используя пропорциональный шрифт (см. функцию SelectFont) и графические координаты (т.е. в пикселах).


Ôóíêöèÿ Down

Функция Down

Объявление:

void Down(int count=1);

Описание

Переместить курсор вниз на количество строк, задаваемое параметром count. Того же самого можно достичь, увеличивая значение переменной CurLine.


Function dup

Объявление:

int dup(long handle);

Описание

Duplicates a file handle.

dup creates a new file handle that has the following common features with the original file handle:

Same open file or device

Same file pointer (that is, changing the file pointer of one changes the other)

Same access mode (read, write, read/write))

handlecreat open, dup, or dup2.

Возвращаемое значение

Upon successful completion, dup returns the new file handle, a nonnegative integer; otherwise, dup returns -1. In the event of error, the errno global variable is set to one of the following values:

  EBADF        Bad file number
  EMFILE       Too many open files


Function dup2

Объявление:

int dup2(long oldhandle, long newhandle);

Описание

Duplicates a file handle (oldhandle) onto an existing file handle (newhandle).

dup2 creates a new file handle that has the following common features with the original file handle:

Same open file or device

Same file pointer (that is, changing the file pointer of one changes the other)

Same access mode (read, write, read/write)

dup2 creates a new handle with the value of newhandle. If the file associated with newhandle is open, when dup2 is called, then the file will be closed.

newhandle and oldhandle are the file handles obtained from the creat, open, dup, or dup2 call.

Возвращаемое значение

dup2 returns 0 on successful completion, and -1 otherwise. In the event of error, the errno global variable is set to one of the following values:

EBADF   Bad file number

EMFILE  Too many open files


Ôóíêöèÿ Ellipse

Функция Ellipse

Объявление:

void Ellipse(unsigned long handle, int x1, int y1, int x2, int y2);

Описание

Нарисовать эллипс, используя выбранное функцией SelectPen перо и закрасить его кистью, выбранной функцией SelectBrush. (x1, y1) - координаты верхнего левого угла прямоугольника, в который будет вписан эллипс, (x2, y2) - нижнего правого.


Function eof

Объявление:

int eof(long handle);

Описание

Checks for end-of-file.

eof determines whether the file associated with handle has reached the end-of-file.

Возвращаемое значение

If the current position is the end-of-file, then eof will return 1; otherwise, it will return 0. The return value of -1 indicates an error; the errno global variable is set to

EBADF        Bad file number


Ôóíêöèÿ Eof

Функция Eof

Объявление::

void Eof();

Описание

Переместить курсор в конец файла - в конец последней строки


Ôóíêöèÿ Eol

Функция Eol

Объявление:

void Eol();

Описание

Переместить курсор в конец текущей строки.


Function exec

Объявление:

int exec(char program[], char params[], char work_dir[], int show=SW_SHOW);

Описание

Запустить приложение Windows или DOS.

Параметры:

   program - имя исполняемого файла
   params  - параметры командной строки
   work_dir - рабочая директория для запускаемого приложения
   show    - константа, определяющая режим отображения окна приложения. В system.h приведены константы с префиксом SW_.

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

Возвращаемое значение

What was returned by the function API ShellExecute, that is, HINSTANCE of the application or error message.

Example

exec("pifedit.exe", "command.pif");


Ôóíêöèÿ ExecMenu

Функция ExecMenu

Объявление:

int ExecMenu(char title[], char items[], int start_sel=0);

Описание

Отобразить на экране диалог меню.

Параметры:

   title     - Заголовок диалога
   items     - Строка, описывающая пункты меню. Каждый пункт завершается
               нулевым байтом, последний пункт должен завершаться двумя
               нулевыми байтами.
   start_sel - Номер пункта меню, который будет выделен по умолчанию при
               открытии меню.

Возвращаемое значение

Номер выбранного пользователем пункта меню или -1, если была нажата кнопка Cancel или клавиша Esc. Во встроенную переменную SelectedString[ ] копируется выбранная строка меню. Если пользователь отказался от выбора, в SelectedString копируется пустая строка.

Пример:

   int choice =
     ExecMenu("Choose program to load", //заголовок
              " Load Example #1 \0"
              " Load Example #2 \0"
              " Load Example #3 \0"     // элементы
              "\0");                    // второй ноль в конце

switch (choice)

{

  case 0:  LoadProgram("EXAMPLE1.OMF", LF_UBROF); break;

  case 1:  LoadProgram("EXAMPLE2.OMF", LF_UBROF); break;

  case 2:  LoadProgram("EXAMPLE3.OMF", LF_UBROF); break;

  default: printf("No example will be loaded");

}


Ôóíêöèÿ ExecScript

Функция ExecScript

Объявление:

void ExecScript(char file_name[], char include_dir[]="", char defines[]="", int debug=0);

Описание

Функция ExecScript запускает файл сценария, имя которого указано в параметре file_name.

Параметры:

file_name[] - | имя запускаемого ФС. Оно может содержать частичный или полный путь. Если не указано расширение, то автоматически подставляется расширение CMD. Если файл не найден, то просматривается системная директория CodeMaster
include_dir[] - | список директорий, где компилятор будет искать #include-файлы. Допускается указывать несколько имен директорий, разделенных точкой с запятой.
char defines[] - | строка с определениями переменных препроцессора. См. также диалог Файлы Сценария.
debug - | если не равно нулю, то для загружаемого ФС открывается окно Исходного Текста Файла Сценария.После загрузки ФС переходит в режим отладки.

Заметим, что необходимым является только первый параметр, т.к. остальные имеют значение по умолчанию.

Если Файл Сценария с указанным именем уже выполняется, то второй загрузить нельзя.

Также смотрите Включение файлов (#include).


Ôóíêöèÿ exit

Функция exit

Объявление:

void exit();

Описание

Останавливает исполнение Файла Сценария, который вызвал эту функцию. Файл выгружается из памяти, если возможно.


Ôóíêöèÿ ExitProgram

Функция ExitProgram

Объявление:

void ExitProgram();

Описание

Завершить работу CodeMaster. Действует так же, как и закрытие главного окна.


Ôóíêöèÿ exp

Функция exp

Объявление:

float exp(float x);

Описание

Функция exp возводит число e в степень x. Значение аргумента должно лежать в интервале от -88.72280 до 88.72280.

Возвращаемое значение

Функция exp возвращает значение числа e, возведенное в степень числа x.


Function Expr

Объявление:

unsigned long Expr(char str[]);

Описание

Calculates the expression and returns the result as a 32-bit integer. The expression string is passed in the str parameter.

Example

printf("Result=%08lX", Expr("array[i] -> StartValue");

Also, see AddrExpr, FloatExpr, Expressions and Accessing Names of SFRs and Variables of the Program from Scripts.


Ôóíêöèÿ fabs

Функция fabs

Объявление :

float fabs(float x);

Описание

Функция fabs определяет абсолютное значение числа с плавающей точкой val.

Возвращаемое значение

Функция fabs возвращает абсолютную величину числа val.


Function fclose

Объявление:

int fclose(unsigned long stream);

Описание

Closes a stream.

fclose closes the specified stream. All buffers associated with the stream are flushed before closing. The system-allocated buffers are freed upon closing.

Возвращаемое значение

fclose returns 0 on success. It will return EOF, if any errors are detected.


Function fdopen

Объявление:

unsigned long fdopen(long handle, char type[]);

Описание

Associates a stream with a file handle.

obtained from creat dup, dup2, or open. The type of stream must match the mode of the opened handle. The type string used in a call to fdopen is one of the following values:

Value        Description

r Open for reading only.

Create for writing.

a Append; open for writing at the end-of-file or create for writing, if the file does not exist.

r+ Open an existing file for update (reading and writing).

w+ Create a new file for update.

a+

To specify that the given file is being opened or created in the text mode, append t to the value of the type string (for example, rt or w+t).

Similarly, to specify the binary mode, append brb or w+b). If t or b is not given in the type string, the mode is controlled by the_fmode global variable. If _fmode is set to O_BINARY, then files will be opened in the binary mode. If _fmode is set to O_TEXT, then files will be opened in the text mode.

Note. The O_* constants are defined in file system.h.

•

output cannot be directly followed by input without intervening fseekor rewind;

•

input cannot be directly followed by output without intervening fseek, rewind, or an input that encounters the end-of-file.

Возвращаемое значение

On successful completion, fdopen returns the unsigned long identifying the stream. In the event of error, it returns 0.


Function feof

Объявление:

int feof(unsigned long stream);

Описание

Detects the end-of-file on a stream.

feof tests the given stream for the end-of-file indicator. Once the indicator is set, the read operations on the file return the indicator until rewind is called or the file is closed. The end-of-file indicator is reset with each input operation.

Возвращаемое значение

feof will return nonzero, if the end-of-file indicator is detected on the last input operation on the specified stream, and 0, if the end-of-file has not been reached.


Function ferror

Объявление:

int ferror(unsigned long stream);

Detects errors on stream.

ferror tests the given stream for a read or write error. If the stream's error indicator is set, it will remain set until clearerr or rewind is called or until the stream is closed.

ferror will return nonzero, if an error is detected on the specified stream.


Function fflush

Объявление:

int fflush(unsigned long stream);

Описание

Flushes a stream.

If the given stream has buffered output fflush writes the output for stream to the associated file. The stream remains opened after fflush is executed. fflush produces no effect on the unbuffered stream.

Возвращаемое значение

fflush returns 0 on success. It will return EOF, if any errors are detected.


Function fgetc

Объявление:

Описание

Gets character from stream.

fgetc returns the next character on the specified input stream.

Возвращаемое значение

On success fgetc returns the character read after converting it to an int without the sign extension. On the end-of-file or error, it returns EOF.


Function fgets

Объявление:

int fgets(char dest[], int n, unsigned long stream);

Описание

fgets reads characters from stream into the dest string. The function stops reading, when it reads either n-1 characters or the newline character, which event comes first. fgets retains the newline character at the end of dest. The null byte is appended to s to mark the end of the string.

Возвращаемое значение

TRUE is returned on success; and FALSE on the end-of-file or error.


Function FileChanged

Объявление:

int FileChanged();

Описание

If the file is changed since the last save, it will return 1; 0 otherwise.


Function filelength

Объявление:

long filelength(long handle);

Описание

Gets file size in bytes.

filelength returns the length (in bytes) of the file associated with handle.

Возвращаемое значение

On success, filelength returns the long value of the file length in bytes. On error, it returns -1 and the errno global variable is set to

EBADF        Bad file number


Function fileno

Объявление:

int fileno(unsigned long stream);

Описание

Gets file handle.

fileno returns the file handle for the given stream. If stream has more than one handle, then fileno will return the handle assigned to the stream, when it was first opened.

Возвращаемое значение

fileno returns the integer file handle associated with the stream.


Ôóíêöèÿ FillRect

Функция FillRect

Объявление:

void FillRect(unsigned long handle, int x1, int y1, int x2, int y2);

Описание

Нарисовать закрашенный прямоугольник, используя выбранную функцией SelectBrush кисть. (x1, y1) - координаты верхнего левого угла, (x2, y2) - нижнего правого.


Ôóíêöèÿ findfirst

Функция findfirst

Объявление:

int findfirst(char path[], char ffblk[], int attrib);

Описание

Начинает поиск файлов с атрибутами, указанными в параметре attrib по маске, указанной в path. Продолжить поиск можно с помощью функции findnext .

Параметр ffblk - это буфер для хранения внутренних данных функции. Его размер должен быть 48 байт.

После вызова findfirst буфер ffblk содержит информацию о найденном файле. Функции _ff_attrib, _ff_time, _ff_date, _ff_size и _ff_name получают ffblk в качестве параметра и возвращают информацию о файле.

Возвращаемое значение

Если указанный файл найден, возвращает 0, иначе -1.

Пример:

    char ffblk[48];

    int done = findfirst("c:\\data.*", ffblk, 0);

    long total_size = 0;

    while (@!done)

    {

      total_size += _ff_size(ffblk);

      done = findnext(ffblk);

    }

    printf("Total size of the files @%lu", total_size);


Ôóíêöèÿ findnext

Функция findnext

Объявление:

int findnext(char ffblk[]);

Описание

Продолжает поиск файлов, начатый функцией findfirst.

Параметр ffblk - буфер, заполненный при вызове findfirst.

После вызова findnext буфер ffblk содержит информацию о найденном файле. Функции _ff_attrib, _ff_time, _ff_date, _ff_size и _ff_name получают ffblk в качестве параметра и возвращают информацию о файле.

Возвращаемое значение

Если указанный файл найден, возвращает 0, иначе -1.

Пример:

Смотрите функцию findfirst.


Ôóíêöèÿ FindSymbol

Функция FindSymbol

Объявление:

int FindSymbol(char name[]);

Описание

Возвращает TRUE, если имя name распознается отладчиком, т.е. присутствует среди имен загруженной для отладки программы, SFR или отладочных регистров.

Пример:

if (!FindSymbol("main"))

{

  printf("Program not loaded, terminating script");

  return;

}

Смотрите также AddrExpr, FloatExpr, Доступ к Именам Загруженной Программы из Файлов Сценария.


Ôóíêöèÿ FindWindow

Функция FindWindow

Объявление:

unsigned long FindWindow(int type);

Описание

Найти окно указанного типа (дисассемблер, дамп и т.п.) среди открытых окон. Константы, описывающие типы окон, объявлены в заголовочном файле system.h (см. описание функции OpenWindow).

Если окно указанного типа открыто, но минимизировано,то оно не будет найдено.

Возвращаемое значение

Идентификатор открытого окна, если окно найдено, и 0 в противном случае.


Ôóíêöèÿ FirstWord

Функция FirstWord

Объявление:

void FirstWord();

Описание

Переместить курсор на первый непустой символ в текущей строке.


Ôóíêöèÿ FloatExpr

Функция FloatExpr

Объявление:

float FloatExpr(char str[]);

Описание

То же, что Expr , но возвращаемое значение имеет тип числа с плавающей точкой.

Смотрите также AddrExpr, Expr, Доступ к Именам Загруженной Программы из Файлов Сценария.


Ôóíêöèÿ floor

Функция floor

Объявление:

float floor(float x);

Описание

Функция floor вычисляет наибольшее целочисленное значение, которое не превышает x.

Возвращаемое значение

Функция floor возвращает наибольшее число с плавающей точкой, дробная часть которого равна нулю, не превышающее значение аргумента x.


Ôóíêöèÿ fmod

Функция fmod

Объявление :

float fmod(float x, float y);

Описание

Функция fmod вычисляет значение остатка от деления x на y.

Возвращаемое значение

Функция fmod возвращает значение, равное x - i * y, для некоторого целого i, причем такое, что его абсолютная величина меньше, чем абсолютная величина y. Возвращаемое значение имеет тот же знак, что и x. Если y равно нулю, возвращается нулевое значение.


Ôóíêöèÿ fnsplit

Функция fnsplit

Объявление:

int fnsplit(char path[], char drive[], char dir[], char name[], char ext[]);

Описание

Выделяет компоненты пути к файлу. Получает в качестве параметра path полное имя файла, например, C:\PROGRAM\TEST.C и копирует компоненты пути в соответствующие строки. В файле system.h определены константы, удобные для описания размеров массивов: MAXPATH, MAXDRIVE, MAXDIR, MAXFILE, MAXEXT.

Если какой-либо из компонент пути отсутствует, то первым символом в соответствующей строке будет 0.

Возвращаемое значение

Returns the flag word describing the result. Constants corresponding to the flag word bits (WILDCARDS, EXTENSION, ...) are defined in system.h.

Возвращается слово флагов, описывающее результаты работы функции. В файле system.h определены константы, соответствующие битам слова флагов (WILDCARDS, EXTENSION, ...).


Function fopen

Объявление:

unsigned long fopen(char file_name[], char mode[]);

Описание

Opens a stream.

fopen opens the file specified by file_name and associates a stream with it. fopen returns an unsigned long value to be used as the stream identificator in subsequent operations. The mode string used in calls to fopen is one of the following values:

r Open for reading only.

w Create for writing.

a Append; open for writing at the end-of-file or create for writing, if the file does not exist.

r+ Open an existing file for update (reading and writing).

w+ Create a new file for update.

a+ Open for append; open (or create, if the file does not exist) for update at the end of file.

To specify that the given file is being opened or created in the text mode, append t to the value of the type string (for example, rt or w+t

Similarly, to specify the binary mode, append b to the type string (for example, rb or w+b). If t or b is not given in the type string, then the mode is controlled by the _fmode global variable. If _fmode is set to O_BINARY, then files will be opened in the binary mode. If _fmode is set to O_TEXT, then files will be opened in the text mode.

Note. The O_* constants are defined in file system.h.

When a file is opened for update, both input and output can be done on the resulting stream; however,

•

output cannot be directly followed by input without intervening fseekor rewind;

•

input cannot be directly followed by output without intervening fseek, rewind, or an input that encounters the end-of-file.

Возвращаемое значение

On successful completion fdopen returns the unsigned long identifying the stream. In the event of error, it returns 0.


Ôóíêöèÿ ForwardTill

Функция ForwardTill

Объявление:

void ForwardTill(char delimits[]);

Описание

Перемещает курсор вправо до тех пор, пока не встретится какой-либо символ, присутствующий в строке delimits либо не встретится конец строки.

Пример:

    ForwardTill(" ({[<");


Ôóíêöèÿ ForwardTillNot

Функция ForwardTillNot

Объявление:

void ForwardTillNot(char delimits[]);

Описание

Перемещает курсор вправо до тех пор, пока не встретится какой-либо символ, не присутствующий в строке delimits либо не встретится конец строки.


Function fprintf

Объявление:

int fprintf(unsigned long stream, char format[], ... );

Описание

Writes formatted output to a stream.

fprintf accepts a series of arguments, applies to each of them a format specifier contained in the format string pointed to by formatstream. There must be the same number of format specifiers as the arguments.

Note. Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed. For more, see description of format specifiers for printf.

Возвращаемое значение

fprintf returns the number of bytes that were output. In the event of error, it returns EOF.


Function fputc

Объявление:

int fputc(char c, unsigned long stream);

Описание

Puts a character on a stream.

fputc outputs character c to the specified stream.

Возвращаемое значение

On success, fputc returns character c. On error, it returns EOF.


Function fputs

Объявление:

int fputs(char s[], unsigned long stream);

Описание

Outputs a string on a stream.

fputs copies the s null-terminated string to the given output stream; it does not append the newline character and the terminating null character is not copied.

Возвращаемое значение

On success fputs returns a non-negative value. On error it returns the value of EOF.


Ôóíêöèÿ FrameRect

Функция FrameRect

Объявление:

void FrameRect(unsigned long handle, int x1, int y1, int x2, int y2);

Описание

Нарисовать незакрашенный прямоугольник, используя выбранную функцией SelectBrush кисть. Ширина линии рисования - всегда 1 пиксел. (x1, y1) - координаты верхнего левого угла, (x2, y2) - нижнего правого.


Function fread

Объявление:

int fread(void s[], int size, int n, unsigned long stream);

Описание

Reads data from a stream.

fread reads n items of data of size bytes long each from the given input stream into the block pointed to by sn * size).

Возвращаемое значение

On success fread returns the number of items (not bytes) actually read. On end-of-file or error it returns a short count (possibly 0).


Ôóíêöèÿ FreeLibrary

Функция FreeLibrary

Объявление:

void FreeLibrary(unsigned long inst);

Описание

Освобождает указанную DLL. В качестве параметра передается HINSTANCE, полученный вызовом LoadLibrary


Function freopen

Объявление:

unsigned long freopen(char file_name[], char mode[], unsigned long stream);

Описание

Associates a new file with an opened stream.

freopen substitutes the specified file in place of the open stream. It closes the stream regardless of whether the open succeeds. freopen is useful for changing the file attached to stdin, stdout, or stderr. The mode string used in calls to fopen is one of the following values:

Value        Description

---------------------------

r Open for reading only.

w Create for writing.

a

r+ Open an existing file for update (reading and writing).

w+ Create a new file for update.

a+ Open for append; open (or create, if the file does not exist) for update at the end of file.

To specify that the given file is being opened or created in the text mode, append t to the value of the type string (for example, rt or w+t).

Similarly, to specify the binary mode, append brb or w+b). If t or b is not given in the type string, the mode is controlled by the _fmode global variable. If _fmode is set to O_BINARY, then files will be opened in the binary mode. If _fmode is set to O_TEXT, then files will be opened in the text mode.

Note. The O_* constants are defined in file system.h.

When a file is opened for update, both input and output can be done on the resulting stream; however,

•

output cannot be directly followed by input without intervening fseekor rewind;

•

input cannot be directly followed by output without intervening fseek, rewind, or an input that encounters end-of-file.

On successful completion freopen returns the argument stream. On error it returns NULL.


Ôóíêöèÿ frexp

Функция frexp

Объявление:

float frexp(float x, int exponent[]);

Описание

Функция frexp разбивает число с плавающей точкой f на нормализованную мантиссу и экспоненту (целую степень числа 2), которую запоминает в ячейке памяти, указываемой exp.

Возвращаемое значение

Функция frexp возвращает значение x, такое что, x - число с плавающей точкой в формате double в пределах 0.5...1 или 0, а первый аргумент этой функции равен x, умноженному на 2 в степени exp.


Function fscanf

Объявление:

int fscanf(unsigned long stream, char format[], ... );

Описание

Scans and formats input from a .

format. Finally, fscanf stores the formatted input at the address passed to it as the argument following the format. The number of format specifiers and addresses must be the same as the number of input fields.

1.

Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed. For details on format specifiers, see the scanf Format Specifiers.

2.

All arguments for this function shall be arrays, because only the array parameters are passed by address to functions. Also, see example for scanf.

fscanf can stop scanning a particular field before it reaches the normal end-of-field character (whitespace) or it can terminate entirely for a number of reasons. See scanf for a discussion on possible causes.

Возвращаемое значение

fscanf returns the number of input fields successfully scanned, converted and stored. The return value does not include the scanned fields that were not stored. If fscanf attempts to read at the end-of-file, then EOF will be returned. If no fields are stored, then 0 will be returned.


Function fseek

Объявление:

int fseek(unsigned long stream, long offset, int fromwhere);

Repositions a file pointer on a stream.

fseek sets the file pointer associated with stream to a new position that is offset bytes from the file location given by fromwhereoffset should be 0 or the value returned by ftell fromwhere must be one of the values 0. 1, or 2, which represent three symbolic constants (defined in system.h) as follows:

Constant     fromwhere  File location

----------------------------------------------------

SEEK_SET     0          Beginning of the file

SEEK_CUR     1          Current file pointer position

SEEK_END     2          End-of-file

fseek discards any character pushed back. fseek is used with stream I/O; for file handle I/O, use lseek. The next operation on the update file after fseek can be either input or output.

Возвращаемое значение

fseek will return 0, if the pointer is successfully moved, and nonzero on failure. fseek may return 0 indicating that the pointer has been moved successfully, when in fact it has not been. This is because DOS, which actually resets the pointer, does not verify the setting. fseek returns an error code only on an unopened file or device. In the event of an error return, the errno global variable is set to one of the following values:

EBADF        Bad file pointer

EINVAL       Invalid argument

ESPIPE       Illegal seek on device


Function ftell

Объявление:

long ftell(unsigned long stream);

Описание

Returns the current file pointer.

ftell returns the current file pointer for stream. The offset is measured in bytes from the beginning of the file (for the binary file). The value returned by ftell can be used in the subsequent call to fseek.

Возвращаемое значение

on success ftell returns the current file pointer position. It returns -1L on error and sets the global variable to a positive value. In the event of error return, the errno global variable is set to one of the following values:

EBADF        Bad file pointer

ESPIPE       Illegal seek on device


Function fwrite

Объявление:

int fwrite(void buf[], int size, int n, unsigned long stream);

Описание

fwrite appends n items of data of size bytes long each to the given output file. The data written begins at buf. The total number of bytes written is (n * size). In the declarations, buf is an array object.

Возвращаемое значение

On successful completion fwrite returns the number of items (not bytes) actually written. On error it returns a short count.


Ôóíêöèÿ GetByte

Функция GetByte

Объявление:

unsigned int GetByte(unsigned long addr, int addr_space);

Описание

Прочитать байт из указанной области памяти (параметр addr_space) по указанному адресу. Для областей памяти (адресных пространств) микроконтроллера в заголовочном файле system.h определены константы с префиксом AS_.

Возвращаемое значение

Прочитанный байт.

Пример:

printf("%02X", GetByte(AS_DATA, 0x1F);


Function getc

Объявление:

int getc(unsigned long stream);

Описание

Gets character from stream.

getc returns the next character on the given input stream and increments the stream's file pointer to point to the next character.

Возвращаемое значение

On success, getc returns the character read, after converting it to an int without the sign extension. On the end-of-file or error, it returns EOF.


Function getcurdir

Объявление:

Описание

drive (0 - current disk; 1 - A; 2 - B; ...) to parameter directory.

The received name does not contain the disk name and does not start with symbol \.

Возвращаемое значение

0 will be returned, if the name is received successfully, and -1 otherwise.


Function getcwd

Объявление:

void getcwd(char path[]);

Описание

getcwd gets the full path name (including the drive) of the current working directory and stores it in buf.


Ôóíêöèÿ getdate

Функция getdate

Объявление:

void getdate(int date[]);

Описание

Получить текущую дату компьютера. Информация о дате помещается в массив date:

date[0] - день (1...31)
date[1] - месяц (1...12)
date[2] - год

Пример:

   int date[3];
   getdate(date);
   printf("Date: %d/%d/%d", date[0], date[1], date[2]);


Function getdfree

Объявление:

unsigned long getdfree(int drive);

Описание

Gets disk free space.

getdfree accepts a drive specifier in drive (0 for default, 1 for A, and so on) and returns the disk free space in bytes.


Function getdisk()

Объявление:

int getdisk();

Описание

Gets the current drive number. getdisk gets the current drive number and returns an integer: 0 for A, 1 for B, 2 for C, and so on.


Ôóíêöèÿ GetDword

Функция GetDword

Объявление:

unsigned long GetDword(unsigned long addr, int addr_space);

Описание

Прочитать двойное слово (32 бита) из указанной области памяти (параметр addr_space) по указанному адресу. Для областей памяти (адресных пространств) микроконтроллера в заголовочном файле system.h определены константы с префиксом AS_.

Возвращаемое значение

Прочитанное двойное слово.

Пример:

printf("%08lX", GetDword(AS_DATA, 0x1F);


Ôóíêöèÿ getenv

Функция getenv

Объявление:

int getenv(char name[], char dest[]);

Описание

Получить значение переменной окружения с именем name. name должно быть в верхнем регистре и не содержать в конце знака равенства. Значение переменной копируется в dest.

Возвращаемое значение

1, если указанная переменная найдена, 0 в противном случае

Пример:

char value[MAXPATH];

getenv("COMSPEC", value);


Ôóíêöèÿ GetFileName

Функция GetFileName

Объявление:

void GetFileName(char dest[]);

Описание

Получить имя файла окна Исходного Текста. Имя копируется в массив dest.


Function getftime

Объявление:

unsigned long getftime(long handle);

Описание

Gets the file date and time.

getftime retrieves the file time and date for the disk file associated with the open handle. The return value has the following format:

Bits      Value

---------------------

0...4     two seconds

5...10    minutes

11...15   hours

16...20   days

21...24   months

25...31   year - 1980

Возвращаемое значение

getftime returns the file date and time on success. In the event of an error, 0xFFFFFFFF is returned and the errno global variable is set to one of the following values:

EACCES       Permission denied

EBADF        Bad file number

EINVFNC      Invalid function number


Ôóíêöèÿ GetLine

Функция GetLine

Объявление:

void GetLine(char dest[]);

Описание

Копирует в массив dest все содержимое текущей строки.


Ôóíêöèÿ GetMark

Функция GetMark

Объявление:

void GetMark(int number);

Описание

Восстановить закладку с указанным номером. Номер должен принимать значения от 1 до 10.


Ôóíêöèÿ GetMemory

Функция GetMemory

Объявление:

void GetMemory(void dest[], int n, unsigned long addr, int addr_space);

Описание

Прочитать блок памяти длиной n байт из указанной области памяти (параметр addr_space) по указанному адресу в массив dest. Для областей памяти (адресных пространств) микроконтроллера в заголовочном файле system.h определены константы с префиксом AS_

Пример:

char array[20]; GetMemory(array, sizeof(array), 0x20, AS_DATA);


Ôóíêöèÿ GetScriptFileName

Функция GetScriptFileName

Объявление:

void GetScriptFileName(char script_name[], char file_name[]);

Описание

Функция GetScriptFileName возвращает полное имя файла сценария, имя которого указано в параметре script_name.

Каждый сценарий имеет имя, состоящее из 8 символов - это имя файла сценария без пути и расширения. Функция GetScriptFileName позволяет получить полное имя файла сценария, которое копируется в строку - параметр file_name.

Пример:

char path[MAXPATH];

GetScriptFileName("test", path);


Ôóíêöèÿ gettime

Функция gettime

Объявление:

void gettime(int time[]);

Описание

Получить текущее время компьютера. Информация о времени помещается в массив time:

time[0] - сотые доли секунды (0...99)
time[1] - секунды (0...59)
time[2] - минуты (0...59)
time[3] - часы (0...23)

Так как gettime использует системный таймер, погрешность времени составляет около 52 миллисекунд.

Пример:

int time[4];

while (1)

{

  gettime(time);

  printf("Time: %d:%d:%d.%d", time[3], time[2], time[1], time[0]);

}


Function getw

Объявление:

int getw(unsigned long stream);

Описание

getw returns the next integer in the specified input stream. It assumes no special alignment in the file. getw should not be used, when the stream is opened in the text mode.

Возвращаемое значение

getw returns the next integer on the input stream. On the end-of-file or error, getw returns EOF.

Note. Because EOF is the allowed value for getw to return, feof or ferror should be used to detect the end-of-file or error.


Ôóíêöèÿ GetWindowHeight

Функция GetWindowHeight

Объявление:

int GetWindowHeight(unsigned long handle);

Описание

Получить высоту указанного окна.

Параметр handle - идентификатор окна, полученный вызовом функции OpenWindow,и FindWindow.

Эта функция полезна, когда нужно рисовать в окне Пользователя независимо от его размера.

Возвращаемое значение

Высота указанного окна в пикселах.


Ôóíêöèÿ GetWindowWidth

Функция GetWindowWidth

Объявление:

int GetWindowWidth(unsigned long handle);

Описание

Получить ширину указанного окна.

Параметр handle - идентификатор окна, полученный вызовом функции OpenWindow и FindWindow.

Эта функция полезна, когда нужно рисовать в окне Пользователя независимо от его размера.

Возвращаемое значение

Ширина клиентной области указанного окна в пикселах.


Ôóíêöèÿ GetWord

Функция GetWord

Объявление:

unsigned int GetWord(unsigned long addr, int addr_space);

Описание

Прочитать слово (16 бит) из указанной области памяти (параметр addr_space) по указанному адресу. Для областей памяти (адресных пространств) микроконтроллера в заголовочном файле system.h определены константы с префиксом AS_.

Возвращаемое значение

Прочитанное слово.

Пример:

printf("%04X", GetWord(AS_DATA, 0x1F);


Ôóíêöèÿ GotoXY

Функция GotoXY

Объявление:

void GotoXY(int col, int line);

Описание

Установить позицию курсора. Курсор перемещается на строку line и колонку (позицию) col.

Более удобный способ перемещать курсор в абсолютных координатах - простое присвоение значений переменным CurCol и CurLine.


Ôóíêöèÿ HStep

Функция HStep

Объявление:

void HStep();

Описание

Выполнить один оператор языка высокого уровня (High level step). Вызов этой функции имеет смысл, если только загружена программа, имеющая символьную информацию. Если это не так, то вызов HStep эквивалентен вызову функции Step.

Примечание: После вызова HStep не происходит автоматического обновления экрана. Для этого в нужный момент воспользуйтесь функцией RedrawScreen.


Ôóíêöèÿ InitCOM

Функция InitCOM

Объявление:

void InitCOM(int port_num, long baud_rate, int parity, int data_bits, int stop_bits, int rts_dtr=0);

Описание

Инициализировать последовательный порт компьютера.

Параметры:

port_num - | номер порта: 0 - COM1, 1 - COM2, ...
baud_rate - | значение бодовой скорости, например, 9600, максимальное значение 115200
parity - | четность: P_ODD, P_EVEN, P_NONE
data_bits - | количество бит данных (5...8)
stop_bits - | количество stop бит (1 или 2).
rts_dtr - | байт регистра управления модемом. Бит 0 - это уровень сигнала DTR, бит 1 - уровень сигнала RTS

CodeMaster использует прямой доступ к регистрам последовательных портов, так что функции работы с последовательными портами могут не работать под Windows NT.

Во всех функциях порты нумеруются с нуля: 0 - COM1, 1 - COM2, и т.д.

Пример:

   #define COM1 0
   #define COM2 1
   #define COM3 2
   #define COM4 3

   InitPort(COM2, 28800, P_EVEN, 8, 1);


Ôóíêöèÿ inport

Функция inport

Объявление:

unsigned int inport(unsigned int port_num);

Описание

Прочитать значение (слово) из параллельного порта с указанным номером.

Возвращаемое значение

Прочитанное слово.

Пример:

unsigned int val = inport(0x300);


Ôóíêöèÿ inportb

Функция inportb

Объявление:

unsigned char inportb(unsigned int port_num);

Описание

Прочитать значение (байт) из параллельного порта с указанным номером.

Возвращаемое значение

Прочитанный байт.

Пример:

unsigned char val = inportb(0x3F8);


Ôóíêöèÿ Inspect

Функция Inspect

Объявление:

unsigned int Inspect(char name[]);

Описание

Открыть окно Детальный просмотр для указанного имени (параметр name).


Ôóíêöèÿ InvertRect

Функция InvertRect

Объявление:

void InvertRect(unsigned long handle, int x1, int y1, int x2, int y2);

Описание

Инвертировать цвета внутри прямоугольной области. (x1, y1) - координаты верхнего левого угла, (x2, y2) - нижнего правого.


Ôóíêöèÿ isalnum

Функция isalnum

Объявление:

int isalnum(unsigned char c);

Описание

Функция isalnum проверяет, является ли параметр c буквой латинского алфавита или цифрой ('A'-'Z', 'a'-'z', '0'-'9').

Возвращаемое значение

Функция isalnum возвращает ненулевое значение, если c - символ алфавита или цифра, или 0 в противном случае.


Ôóíêöèÿ isalpha

Функция isalpha

Объявление:

int isalpha(unsigned char c);

Описание

Функция isalpha проверяет, является ли параметр c буквой латинского алфавита ('A'-'Z', 'a'-'z').

Возвращаемое значение

Функция isalpha возвращает ненулевое значение, если c - символ алфавита, или 0 в противном случае.


Ôóíêöèÿ isascii

Функция isascii

Объявление:

int isascii(unsigned char c);

Описание

Функция isascii проверяет, является ли параметр c символом ASCII.

Возвращаемое значение

Функция isascii возвращает ненулевое значение, если значение c больше или равно нулю но меньше 128.


Function isatty

Объявление:

int isatty(long handle);

Описание

Checks for device type.

isatty determines, whether handle is associated with any one of the following character devices:

       a terminal
       a console
       a printer
       a serial port

Возвращаемое значение

If the device is one of the four character devices listed above, then isatty returns a nonzero integer. Otherwise, isatty returns 0.


Ôóíêöèÿ iscntrl

Функция iscntrl

Объявление:

int iscntrl(unsigned char c);

Описание

Функция iscntrl проверяет, является ли параметр c управляющим символом (0x00 - 0x1F или 0x7F).

Возвращаемое значение

Функция iscntrl возвращает ненулевое значение, если c - управляющий символ или цифра, или 0 в противном случае.


Function isdigit

Function isdigit

Declaration:

int isdigit(unsigned char c);

Description

The isdigit function checks, if parameter c is a decimal number ('0'-'9').

Returned value

The isdigit function will return a non-zero value, if parameter c is a decimal number, otherwise it will return 0.


Ôóíêöèÿ isgraph

Функция isgraph

Объявление:

int isgraph(unsigned char c);

Описание

Функция isgraph проверяет, является ли параметр c печатным символом, не включая пробел (0x21 - 0x7E).

Возвращаемое значение

Функция isgraph возвращает ненулевое значение, если параметр c - печатный символ, или 0 в противном случае.


Ôóíêöèÿ islower

Функция islower

Объявление::

int islower(unsigned char c);

Описание

Функция islower проверяет, является ли параметр c буквой нижнего регистра ('a'-'z').

Возвращаемое значение

Функция islower возвращает ненулевое значение, если параметр c - символ нижнего регистра, или 0 в противном случае.


Ôóíêöèÿ isprint

Функция isprint

Объявление:

int isprint(unsigned char c);

Описание

Функция isprint проверяет, является ли параметр c печатным символом (0x20 - 0x7E).

Возвращаемое значение

Функция isprint возвращает ненулевое значение, если c - символ алфавита или цифра, или 0 в противном случае.


Ôóíêöèÿ ispunct

Функция ispunct

Объявление:

int ispunct(unsigned char c);

Описание

Функция ispunct проверяет, является ли параметр c символом пунктуации. Следующие символы являются символами пунктуации:

           !    "    #    $    %    &    '    (
           )    *    +    ,    -    .   /    :
           ;    <    =    >    ?        [    \
           ]    ^    _    `    {    |    }    ~

Возвращаемое значение

Функция ispunct возвращает ненулевое значение, если параметр c - символ пунктуации, или 0 в противном случае.


Ôóíêöèÿ isspace

Функция isspace

Объявление:

int isspace(unsigned char c);

Описание

Функция isspace проверяет, является ли параметр c символом пробела (0x09 - 0x0D или 0x20).

Возвращаемое значение

Функция isspace возвращает ненулевое значение, если параметр c - символ пробела, или 0 в противном случае.


Ôóíêöèÿ isupper

Функция isupper

Объявление:

int isupper(unsigned char c);

Описание

Функция isupper проверяет, является ли параметр c буквой верхнего регистра ('A'-'Z').

Возвращаемое значение

Функция isupper возвращает ненулевое значение, если параметр c - символ верхнего регистра, или 0 в противном случае.


Ôóíêöèÿ isxdigit

Функция isxdigit

Объявление:

int isxdigit(unsigned char c);

Описание

Функция isxdigit проверяет, является ли параметр c шестнадцатиричной цифрой ('A'-'F', 'a'-'f', '0'-'9').

Возвращаемое значение

Функция isxdigit возвращает ненулевое значение, если параметр c - шестнадцатиричная цифра, или 0 в противном случае.


Ôóíêöèÿ itoa

Функция itoa

Объявление:

void itoa(int value, char string[], int radix);

Описание

Преобразует целое число (value) в строку символов (string). Параметр radix - это основание системы счисления, в которой производится преобразование (2...36).


Ôóíêöèÿ LastChar

Функция LastChar

Объявление:

int LastChar(unsigned long handle);

Описание

Возвращает код нажатой клавиши при последнем вызове wgetchar или шестнадцатиричное число, введенное при последнем вызове wgethex.


Ôóíêöèÿ LastEvent

Функция LastEvent

Объявление:

int LastEvent(unsigned long handle);

Описание

Функция LastEvent возвращает тип последнего произошедшего с указанным окном события, запрошенного функцией WaitWindowEvent.

Возвращаемое значение

Тип события (константы определены в system.h):

WE_REDRAW - запрос на обновление информации в окне, т.е. на отрисовку изображения. Это событие генерируется во всех случаях, когда требуется обновить окно, например, при переключении задач Windows. Это событие просто информирует Вас о том, что окно хочет перерисовать себя, и Ваш файл сценария (ФС), вообще говоря, не обязан на это событие реагировать. Если ФС не обновит информацию в окне, то будет прорисована старая картинка.

WE_MOUSEBUTTON (только окно Пользователя ) - пользователь нажал одну из кнопок мыши, когда курсор мыши находился в окне. Вызовами функций LastEventIntx можно получить информацию о нажатии:

•

LastEventInt1() и LastEventInt2() возвращают координаты в пикселах (x, y) точки, где находился курсор в момент нажатия кнопки;

•

LastEventInt3() и LastEventInt4() возвращают текстовые координаты (x, y) точки, где находился курсор в момент нажатия кнопки, т.е. x - номер столбца, y - номер строки

WE_USERBUTTON (только окно Пользователя ) - пользователь нажал одну из кнопок, добавленных в окно функцией AddButton. Функция LastEventInt1() возвращает идентификатор нажатой кнопки. Он равен идентификатору этой кнопки, который возвращает функция AddButton.

WE_TOOLBARBUTTON (только окно Пользователя) - пользователь нажал одну из кнопок 0...F на линейке управления окна. Эти кнопки специально предназначены для организации простого взаимодействия с окном. Более сложный, но и более гибкий способ - использование заказных кнопок (см. AddButton).

WE_CHAR - (только окно Потока Ввода / Вывода ) пользователь нажал алфавитно- цифровую клавишу на клавиатуре. LastEventInt1() возвращает ее код.

WE_CLOSE - пользователь закрыл окно. При этом дальнейшая работа с окном становится бесполезной и следует ее прекратить.


Ôóíêöèÿ LastEventInt{1...4}

Функция LastEventInt{1...4}

 Top

Объявление:

int LastEventInt{1...4}(unsigned long handle);

Описание

Четыре функции LastEventInt1(), LastEventInt2(), LastEventInt3(), LastEventInt4() возвращают параметры, сгенерированные при возникновении события в окне пользователя. Смотрите LastEvent и WaitWindowEvent.


Ôóíêöèÿ LastString

Функция LastString

Объявление:

int LastString(unsigned long handle, char s[]);

Описание

Копирует в строку (параметр s) строку, введенную при последнем вызове wgetstring.


Ôóíêöèÿ Left

Функция Left

Объявление:

void Left(int count=1);

Описание

Переместить курсор влево на количество позиций, задаваемое параметром count. Того же самого можно достичь, уменьшая значение переменной CurCol, но вызов функции несколько нагляднее.


Ôóíêöèÿ LineTo

Функция LineTo

Объявление:

void LineTo(unsigned long handle, int x, int y);

Описание

Нарисовать линию из точки, установленной функцией MoveTo или в точку с координатами (x, y), установленную функцией LineTo . Линия рисуется пером, выбранным функцией SelectPen (или стандартным пером, если SelectPen не вызывалась). После вызова LineTo точка отсчета перемещается в точку назначения.

Примеры:

   // Рисуем треугольник ABC
   MoveTo(handle, 10, 10);  // точка A
   LineTo(handle, 50, 50);  // A --> B
   LineTo(handle, 20, 40);  // B --> C
   LineTo(handle, 10, 10);  // C --> A


Ôóíêöèÿ LoadDesktop

Функция LoadDesktop

Объявление:

void LoadDesktop(char file_name[]);

Описание

Загрузить указанный файл конфигурации экрана. (Смотрите Конфигурационные Файлы).


Ôóíêöèÿ LoadLibrary

Функция LoadLibrary

Объявление:

unsigned long LoadLibrary(char lib_name[]);

Описание

Загружает указанную DLL, вызывая функцию Windows API LoadLibrary. После загрузки можно вызывать функции из этой DLL с помощью CallLibraryFunction.

Возвращаемое значение

То, что возвращает функция Windows API LoadLibrary, т.е. HINSTANCE загруженной DLL или код ошибки.

Пример:

unsigned long instance = LoadLibrary("EXTEND.DLL");


Ôóíêöèÿ LoadOptions

Функция LoadOptions

Объявление:

void LoadOptions(char file_name[]);

Описание

Загрузить указанный файл опций. (Смотрите Конфигурационные файлы ).


Ôóíêöèÿ LoadProgram

Функция LoadProgram

Объявление:

void LoadProgram(unsigned char file_name[], int format, int addr_space=AS_CODE, unsigned long start_addr=0);

Описание

Загрузить программу в память микропроцессора.

Параметры:

file_name - | имя загружаемого файла.
format - | формат загружаемого файла. Для этого параметра предусмотрены символьные константы с префиксом LF_, об'явленные в заголовочном файле system.h. Чтобы легче было разобраться, откройте диалог Загрузить программу и прочитайте названия форматов.
addr_space - | адресное пространство микропроцессора, куда загружается программа (по умолчанию - память
start_addr - | начальный адрес загрузки.Этот параметр используется только при загрузке файла - двоичного образа памяти

Загружать можно не только программы: можно загружать также образы памяти данных, сохраненные, например, функцией SaveData.

Пример:

LoadProgram("C:\\PROG\\TEST.D32", LF_UBROF);


Ôóíêöèÿ LoadProject

Функция LoadProject

Объявление:

void LoadProject(char file_name[]);

Описание

Загрузить проект с указанным именем. Если в имени файла проекта не указано расширение, ему присвоят расширение '.IDE'.

При загрузке проекта Code Master выполняет те же действия, что и при загрузке проекта через меню.


Function locking

Объявление:

int locking(long handle, int cmd, long length);

Описание

locking provides interface to the operating system file-sharing mechanism. specifies the opened file to be locked or unlocked. The region to be locked or unlocked starts at the current file position, and is length bytes long. Locks can be placed on arbitrary, nonoverlapping regions of any file. A program attempting to read or write into the locked region will retry the operation three times. If all three retries fail, the call fails with an error. cmd specifies the action to be taken:

0    Unlock the region, which must have been previously locked.

1    Lock the region. If the lock is unsuccessful, try once a second for 10 seconds before giving up.

2    Lock the region. If the lock if unsuccessful, give up immediately.

Возвращаемое значение

On successful operations, locking returns 0. Otherwise, it returns -1 and the errno global variable is set to one of the following values:

EACCES       File already locked or unlocked

EBADF        Bad file number

EDEADLOCK    File cannot be locked after 10 retries (cmd is LK_LOCK or LK_RLCK)

EINVAL       Invalid cmd, or SHARE.EXE not loaded


Ôóíêöèÿ log

Функция log

Объявление:

float log(float x);

Описание

Функция log вычисляет натуральный логарифм для плавающего числа val.

Возвращаемое значение

Функция log возвращает натуральный логарифм числа val. Если число val отрицательно или равно нулю, то функция возвращает _MINUS_INF.


Function log10

Объявление:

float log(float x);

Описание

The log function calculates the natural logarithm of the floating-point number val.

Возвращаемое значение

The log function returns the natural logarithm of val. If val is negative or equal to 0, then the function will return _MINUS_INF.


Function lseek

Объявление:

long lseek(long handle, long offset, int fromwhere);

Описание

Moves file pointer.

lseek sets the file pointer associated with handle to a new position, which is offset bytes beyond the file location specified by fromwhere. fromwhere must be one of the following symbolic constants (defined in system.h):

-----------------------------------------

SEEK_CUR     Current file pointer position

SEEK_END     End-of-file

SEEK_SET     File beginning

Возвращаемое значение

lseek returns the offset of the pointer new position measured in bytes from the file beginning. lseek returns -1L on error, and the errno global variable is set to one of the following values:

EBADF        Bad file handle

EINVAL       Invalid argument

ESPIPE       Illegal seek on device

For the devices incapable of seeking (such as terminals or printers), the return value is undefined.


Ôóíêöèÿ ltoa

Функция ltoa

Объявление:

void ltoa(long value, char string[], int radix);

Описание

Преобразует длинное целое число (value) в строку символов (string).

Параметр radix - это основание системы счисления, в которой производится преобразование (2...36).


Ôóíêöèÿ Main

Функция Main

С функции main, как принято, начинается работа файла сценария(ФС). Функция main должна быть объявлена следующим образом:

void main()

{

...

}

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


Ôóíêöèÿ MaxAddr

Функция MaxAddr

Объявление:

unsigned long MaxAddr(int addr_space);

Описание

Возвращает адрес верхней границы адресного пространства процессора. Для параматра addr_space в заголовочном файле system.h определены константы с префиксом AS_.

Смотрите MinAddr.


Ôóíêöèÿ memccpy

Функция memccpy

Объявление:

int memccpy(void dest[], void src[], int c, int n, int dest_index=0, int src_index=0);

Описание

Функция memccpy копирует содержимое блока памяти src в блок памяти dest. Копирование заканчивается, когда либо встретился и был скопирован байт со значением c, либо было скопировано c байт.

Возвращаемое значение

Функция memccpy возвращает количество скопированных байт.


Ôóíêöèÿ memchr

Функция memchr

Объявление:

int memchr(void s[], int c, int n, int index=0);

Описание

Функция memchr ищет первое вхождение символа c (который предварительно преобразуется в unsigned char) среди первых n символов( интерпретируемых как unsigned char) в объекте, на который указывает s.

Возвращаемое значение

Функция memchr возвращает номер найденного байта от начала массива или -1, если байт не был найден.


Ôóíêöèÿ memcmp

Функция memcmp

Объявление:

int memcmp(void s1[], void s2[], int n, int s1_index=0, int s2_index=0);

Описание

Функция memcmp сравнивает первые n байт двух объектов s1 и s2 и возвращает значение, которое отражает результат этого сравнения. Байты интерпретируются, как unsigned char.

       Результат          Означает
       -----------------------------------------
       < 0                s1 меньше, чем s2
       = 0                but1 равен s2
       > 0                s1 больше, чем s2

Возвращаемое значение

Функция memcmp возвращает положительное, отрицательное или нулевое значение, в соответствии с результатом сравнения первых n байт объектов s1 и s2.


Ôóíêöèÿ memcpy

Функция memcpy

Объявление:

void memcpy(void dest[], void src[], int n, int dest_index=0, int src_index=0);

Описание

Функция memcpy копирует n байт из буфера, определяемого параметром src в буфер, определяемый параметром dest. Если эти буферы имеют общие ячейки памяти (т.е. перекрываются), функция memcpy не гарантирует того, что копирование байт произойдет правильно. Если есть опасность перекрытия, используйте функцию memmove .

Возвращаемое значение

Нет.


Ôóíêöèÿ memicmp

Функция memicmp

Объявление:

int memicmp(void s1[], void s2[], int n, int s1_index=0, int s2_index=0);

Описание

Функция memcmp сравнивает первые n байт двух объектов s1 и s2 без учета регистра символов и возвращает значение, которое отражает результат этого сравнения. Байты интерпретируются, как unsigned char.

       Результат          Означает
       -----------------------------------------
       < 0                s1 меньше, чем s2
       = 0                but1 равен s2
       > 0                s1 больше, чем s2

Возвращаемое значение

Функция memcmp возвращает положительное, отрицательное или нулевое значение, в соответствии с результатом сравнения первых n байт объектов s1 и s2.


Ôóíêöèÿ memmove

Функция memmove

Объявление:

void memmove(void dest[], void src[], int n, int dest_index=0, int src_index=0);

Описание

Функция memcpy копирует n байт из буфера, определяемого параметром src в буфер, определяемый параметром dest. Если эти буферы имеют общие ячейки памяти (т.е. перекрываются), функция memmove гарантирует, что копирование произойдет правильно.

Возвращаемое значение

Нет.


Function memset

Объявление:

void memset(void s[], int c, int n, int index=0);

Описание

Функция memset присваивает первым n байт объекта s значение c (преобразованное в unsigned char).

Возвращаемое значение

Нет.


Function MessageBox

Объявление:

int MessageBox(char format[], ... );

Описание

Функция MessageBox выводит данные в соответствии со строкой формата в виде диалога-сообщения.

Note. Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed.

Аргументы, передаваемые этой функции должны соответствовать спецификаторам в строке формата. Несоответствие может привести к сбою программы CodeMaster ,так как она не может контролировать

Возвращаемое значение

1 - если была нажата кнопка Close ;

0 - если была нажата кнопка Esc.

Смотрите также:

Функции Форматированного Ввода / Вывода ,

Алфавитный список Встроенных Функций и Переменных в Файлах Сценария.


Function MessageBoxEx

Объявление:

int MessageBoxEx(int flags, char title[], char format[], ... );

Описание

Функция MessageBoxEx выводит данные в соответствии со строкой формата в виде диалога-сообщения. Диалог имеет кнопки, иконку и заголовок, заданные параметрами flags и title.

Параметр flags может содержать один или несколько флагов, определяющих, какие кнопки и какую иконку будет иметь диалог. Для этих флагов в заголовочном файле system.h определены константы с префиксом "MB_".

Параметр title - строка, выводимая в заголовке диалога.

Параметр format - строка формата, за которой могут следовать данные. (Смотрите printf).

Note. Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed.

Возвращаемое значение

Одна из констант с префиксом "ID", определенных в заголовочном файле system.h, соответствующая нажатой в диалоге кнопке.

Пример:

if (MessageBoxEx(MB_YESNO | MB_ICONQUESTION, "Confirm exit", "Do you want to exit?") == IDYES)

ExitProgram();

Смотрите также:

Formatted Input-Output Functions

Alphabetical List of Script Language Built-in Functions and Variables


Ôóíêöèÿ MinAddr

Функция MinAddr

Объявление::

unsigned long MinAddr(int addr_space);

Описание

Возвращает адрес нижней границы адресного пространства процессора. Для параматра addr_space в заголовочном файле system.h определены константы с префиксом AS_.

Пример:

  // обнулить всю память данных
   int i;
   for (i = MinAddr(AS_DATA), i <= MaxAddr(AS_DATA); i++)
     SetByte(i, AS_DATA, 0);


Function mkdir

Объявление:

int mkdir(char path[]);

Описание

Creates a directory. mkdir creates a new directory from the given path name path.

Возвращаемое значение

mkdir will return 0, if the new directory is created.

The returned value of -1 indicates an error and the errno global variable contains one of the following values:

EACCES       Permission denied

ENOENT       No such file or directory


Ôóíêöèÿ MoveTo

Функция MoveTo

Объявление:

void MoveTo(unsigned long handle, int x, int y);

Описание

Установить координаты точки, от которой потом будет нарисована линия при помощи функции LineTo.

Пример:

// Рисуем линию из точки с координатами (10, 10) в точку (50, 50).

MoveTo(handle, 10, 10);

LineTo(handle, 50, 50);


Ôóíêöèÿ MoveWindow

Функция MoveWindow

Объявление:

void MoveWindow(unsigned long handle, int x, int y);

Описание

Переместить указанное окно. Параметр handle - идентификатор окна, полученный вызовом функций OpenWindow и FindWindow. Параметры x и y - новые координаты (в пикселах) верхнего левого угла окна в области пользователя главного окна CodeMaster`а. Координаты 0, 0 соответствуют его верхнему левому углу.

Размер окна не меняется.


Ôóíêöèÿ movmem

Функция movmem

Объявление:

void movmem(void dest[], void src[], unsigned int length, int dest_index=0, int src_index=0);

Описание

Функция movmem копирует length байт из буфера,на который указывает src в буфер, на который указывает dest. Если эти буферы имеют общие ячейки памяти (т.е. перекрываются), функция movmem гарантирует, что копирование произойдет правильно.

Возвращаемое значение

Нет.


Function open

Объявление:

int open(char path[], int access);

Описание

Opens a file for reading or writing.

open opens the file specified by path and prepares it for reading and/or writing as determined by the value of access. To create a file in a particular mode, you can either assign to the _fmode global variable or call open with the O_CREAT options ORed with the translation mode desired. For example, the call:

open("XMP", O_CREAT | O_BINARY);

creates a binary-mode file named XMP, truncating its length to 0 bytes, if it already exists. For open, access is constructed by performing the bitwise OR with the flags from the following list. Only one flag from the first list can be used (and one must be used); the remaining flags can be used in any logical combination. These symbolic constants are defined in system.h.

Read/Write Flags:

  O_RDONLY     Open for reading only.
  O_WRONLY     Open for writing only.
  O_RDWR       Open for reading and writing

Возвращаемое значение

On success, open returns a nonnegative integer (the file handle). The file pointer, which marks the current position in the file, is set to the beginning of the file. On error, open returns -1 and the errno global variable is set to one of the following values:

  EACCES       Permission denied
  EINVACC      Invalid access code
  EMFILE       Too many open files
  ENOENT       No such file or directory


Ôóíêöèÿ OpenEditorWindow

Функция OpenEditorWindow

Объявление:

unsigned long OpenEditorWindow(char file_name[]);

Описание

Открыть окно Редактора и загрузить туда указанный файл

Если окно Редактора с указанным файлом уже существует, то нового окна не открывается, а существующее окно становится активным.


Ôóíêöèÿ OpenStreamWindow

Функция OpenStreamWindow

Объявление:

unsigned long OpenStreamWindow(char title[]);

Описание

Открыть окно Потока Ввода / Вывода и установить его заголовок (параметр title).

Того же результата можно добиться, используя функцию OpenWindow , передав ей в качестве параметра константу WIN_STREAM, но тогда нельзя установить заголовок.

Если на экране уже открыто окно потока, то новое окно открываться не будет и использоваться будет уже открытое окно.

Новое окно будет открыто в произвольном месте экрана с заранее определенным размером. Чтобы изменить размер окна используйте функцию SetWindowSize.

Возвращаемое значение

Идентификатор открытого окна. Его можно передавать в качестве параметра функциям для работы с окнами.

Пример:

unsigned long handle = OpenStreamWindow("Serial port I/O");


Ôóíêöèÿ OpenUserWindow

Функция OpenUserWindow

Объявление:

unsigned long OpenUserWindow(char title[]);

Описание

Открыть окно Пользователя и установить его заголовок (параметр title).

Того же результата можно добиться, используя функцию OpenWindow , передав ей в качестве параметра константу WIN_USER , но тогда нельзя установить заголовок.

Если на экране уже открыто окно пользователя, то новое окно открываться не будет и использоваться будет уже открытое окно.

Новое окно будет открыто в произвольном месте экрана с заранее определенным размером. Чтобы изменить размер окна используйте функцию SetWindowSize.

Возвращаемое значение

Идентификатор открытого окна. Его можно передавать в качестве параметра функциям для работы с окнами.

Пример:

unsigned long handle = OpenUserWindow("A/D conversion");


Ôóíêöèÿ OpenWindow

Функция OpenWindow

Объявление:

unsigned long OpenWindow(int type);

Описание

Открыть окно указанного типа (дисассемблер, дамп и т.п.). Константы, описывающие типы окон, объявлены в заголовочном файле system.h:

WIN_TIME        - Времени Выполнения
WIN_WATCHES     - Переменных
WIN_DISASM      - Дисассемблера
WIN_PSW         - Флагов PSW (MCS-51 only)
WIN_PERIPHERAL  - Периферийного Устройства
WIN_CONSOLE     - Консоли
WIN_DUMP        - Дампа Памяти
WIN_EDIT        - Исходного текста
WIN_AUTO_WATCHES - Переменных с Автопросмотром
WIN_CALLER_STACK - Стека Вызовов(Simulators only)
WIN_PA          - Анализатора Эффективности (Simulators only)
WIN_INSPECT     - Детального Просмотра
WIN_TIMINGS     - Временных Диаграмм (Emulators only)
WIN_TRACER      - Трассировщика (Emulators only)
WIN_SF_SOURCE   - Исходного Текста Файла Сценария
WIN_HSTK        - Аппаратного Стека (PICs only)
WIN_STREAM      - Потока Ввода/Вывода
WIN_USER        - Пользователя
WIN_MEMMAP      - Распределения Памяти

Заметим, что в Вашем отладчике могут быть доступны не все типы окон, т.к. некоторые из них имеются только в симуляторах, а некоторые - только в эмуляторах. Список доступных окон приведен в меню главного окна Просмотр .

Окно открывается, как если бы была выполнена команда меню Просмотр. Если нужно переместить окно и/или изменить его размер, то можно воспользоваться функциями SetWindowSize, SetWindowSizeT, MoveWindow.

Возвращаемое значение

Идентификатор открытого окна. Его можно передавать в качестве параметра другим функциям работы с окнами.

Для Windows-программистов: идентификатор - это HWND окна.


Ôóíêöèÿ outport

Функция outport

Объявление:

void outport(unsigned int port_num, unsigned int value);

Описание

Записать значение (слово) в параллельный порт с указанным номером.


Ôóíêöèÿ outportb

Функция outportb

Объявление:

void outportb(unsigned int port_num, unsigned char value);

Описание

Записать значение (байт) в параллельный порт с указанным номером.


Ôóíêöèÿ peek

Функция peek

Объявление:

int peek(unsigned int segment, unsigned int offset);

Описание

Прочитать слово из памяти компьютера по указанному segment:offset. Параметр segment - это селектор.

Возвращаемое значение

Прочитанное слово.


Ôóíêöèÿ peekb

Функция peekb

Объявление:

unsigned char peekb(unsigned int segment, unsigned int offset);

Описание

Прочитать байт из памяти компьютера по указанному segment:offset. Параметр segment - это селектор.

Возвращаемое значение

Прочитанный байт.


Ôóíêöèÿ poke

Функция poke

Объявление::

void poke(unsigned int segment, unsigned int offset, int value);

Описание

Записать слово в память компьютера по указанному segment:offset. Параметр segment - это селектор.


Ôóíêöèÿ pokeb

Функция pokeb

Объявление:

void pokeb(unsigned int segment, unsigned int offset, unsigned char value);

Описание

Записать байт в память компьютера по указанному segment:offset. Параметр segment - это селектор.


Ôóíêöèÿ Polyline

Функция Polyline

Объявление:

void Polyline(unsigned long handle, unsigned int points[], int n);

Описание

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

Пример:

Polyline(handle, { 0, 0,
                 10, 20,
                 12, 30,
                 78, 10 }, 4);


Ôóíêöèÿ pow

Функция pow

Объявление:

float pow(float x, float y);

Описание

Функция pow возводит число x в степень y.

Возвращаемое значение

Функция pow возвращает результат возведения x в степень y. Если y равно нулю, функция возвращает значение 1.0. Еслиx== 0 а y< 0, возникает ошибка выхода за границы диапазона и функция возвращает 0. Если x < 0 и y не является целым числом, тоже возникает ошибка выхода за пределы диапазона, и функция pow возвращает ноль.


Ôóíêöèÿ pow10

Функция pow10

Объявление:

float pow10(int x);

Описание

Функция pow10 возводит число 10 в степень x.

Возвращаемое значение

Функция pow10 возвращает результат возведения 10 в степень x. Если x равно нулю, функция возвращает значение 1.0.


Function printf

Объявление:

void printf(char format[], ... );

Описание

The printf function displays the values of transferred parameters in the Console in accordance with the format line.

Upon every printf access, data is displayed in the new window line, that is, "\n" is automatically added to the displayed string.

If the Console window is already opened, it will be automatically opened.

The wprintf function provides more capabilities for the formatted output, but it requires certain preparatory operations.

Note. Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed.

For more info, see:

Format String

Format Specifiers

Flag Characters

Width Specifiers

Precision Specifiers

Input-size Modifiers

Type Characters

Format Specifier Conventions

Возвращаемое значение

Нет.

Example

printf("Counter = %d\n"

   "Value   = %08lX",

   Counter, Value);


Function pscanf

Function pscanff

Declaration:

int pscanf(char title[], char format[], ... );

Description

performs the same as scanf; however, it receives an additional parameter, the header of the prompt dialog box.

pscanf scans a series of input fields one character at a time reading from a stream. After that, each field is formatted in accordance with a format specifier passed to pscanf in the format string pointed to by format. Finally, pscanf stores the formatted input at the address passed to it as the argument following the format. The number of format specifiers and addresses must be the same as the number of input fields.

Notes

1.

scanf Format Specifiers.

2.

All arguments for this function shall be arrays, because only the array parameters are passed by address to functions. Also, see example for scanf.

pscanf can stop scanning a particular field before it reaches the normal end-of-field character (whitespace) or it can terminate entirely for a number of reasons. See scanf for a discussion on possible causes.

Returned Value

pscanf returns the number of input fields successfully scanned, converted and stored. The return value does not include the scanned fields that were not stored. If no fields are stored, then 0 will be returned.


Function putc

Function putc

Declaration:

int putc(int c, unsigned long stream);

Description

Outputs a character to a stream.

putc outputs character c to the stream specified by stream.

Returned Value

On success, putc returns the character printed, c. On error, putc returns EOF.

fprintf

fputc

fputs

fwrite

getc

printf

putw


Function putenv

Function putenv

Declaration:

int putenv(char name[]);

Description

Sets up the value of the environment variable. Here, is a string like:

"COMSPEC=C:\\COMMAND.COM"

Returned value

1, if the value of specified variable is set up; otherwise it returns 0.


Function putw

Function putw

Declaration:

int putw(int c, unsigned long stream);

Description

Puts an integer on a stream.

putw outputs integer c to the given . putw neither expects nor causes special alignment in the file.

Returned Value

On success, putw returns integer c. On error, putw returns EOF. Because EOF is the allowed integer, use ferror to detect errors with putw.


Function rand

Function rand

Declaration:

int rand();

Returns a pseudorandom number in the range from 0 to 32767.


Function random

Function random

Declaration:

int random(int num);

Description

-1.


Function randomize

Function randomize

Declaration:

void randomize();

Description

Initializes a random number generator by a random number.


Function read

Function read

Declaration:

int read(long handle, void buf[], int len);

Description

Reads from file.

read attempts to read len bytes from the file associated with handle into the buffer pointed to by buf. For a file opened in text mode, then read removes the carriage returns and reports the end-of-file, when it reaches Ctrl-Z. The handle file handle is obtained from the creat, open, dup, or dup2 call. On disk files, read begins reading at the current file pointer. When the reading is complete, it increments the file pointer by the number of bytes read. On devices, the bytes are read directly from the device.

Returned Value

On successful completion, read returns an integer indicating the number of bytes placed in the buffer. If the file is opened in the text mode, then read does not count the carriage returns or Ctrl-Z characters in the number of bytes read. On the end-of-file, read returns 0. On error, read returns -1 and sets the errno global variable to one of the following two values:

EACCES Permission denied

EBADF Bad file number


Function ReceiveCOM

Function ReceiveCOM

Declaration:

unsigned char ReceiveCOM(int port_num, int timeout=5000);

Description

Receives a byte from the specified serial port. The timeout parameter defines how many ms CodeMaster waits for the byte receipt.


Function Rectangle

Function Rectangle

Declaration:

void Rectangle(unsigned long handle, int x1, int y1, int x2, int y2);

Description

Draws an unpainted rectangle using the pen selected with the SelectPen function and paints it using the brush selected with the SelectBrush function; (x1, y1) are the coordinates of the upper left corner; (x2, y2) are the coordinates of the lower right corner.


Function RedrawScreen

Function RedrawScreen

Declaration:

void RedrawScreen();

Description

Updates all open windows of the name. Use this function, when the script file changes the microcontroller resources and you want to view the result of the change. A script file cannot update the screen on its own, because it takes significant time (as compared with the script file execution speed).

Example:

SetByte(addr, AS_DATA, 0x11);

RedrawScreen();


Function ReloadProgram

Function ReloadProgram

Declaration:

void ReloadProgram();

Description

Reloads a program that was the last loaded into the microcontroller memory. It is equivalent to the Re-Load program in the File menu.


Function RemoveButtons

Function RemoveButtons

Declaration:

void RemoveButtons(unsigned long handle);

Description

Removes all buttons from the window that were added by the AddButton function. This function is useful, when a script file is restarted and the user window used by this script file contains buttons generated by the script file during the previous run.


Function rename

Function rename

Declaration:

int rename(char oldname[], char newname[]);

Description

Renames a file.

rename changes the name of a file from oldname to newname

Directories in oldname and newname need not be the same, so rename can be used to move a file from one directory to another. Wildcards are not allowed.

This function will fail (EACCES), if either file is currently open in any process.

Returned Value

On success, rename returns 0. On error (if the file cannot be renamed), it returns -1 and the global variable is set to one of the following values:

EACCES       Permission denied: filename already exists or the path is invalid

ENOENT       No such file or directory

ENOTSAM      Not same device


Function Reset

Function Reset

Declaration:

void Reset();

Description

Resets the microcontroller. This function is equivalent to the command of the Debug menu.


Function ResetSymbolTable

Function ResetSymbolTable

Declaration:

void ResetSymbolTable();

Description

Clears the symbol table of CodeMaster. This function is to be used together with the AddSymbol() function. The "built-in" register names are not deleted


Function ResetTimeCounter

Function ResetTimeCounter

Declaration:

void ResetTimeCounter();

Description

Resets the time counter. This function is equivalent to the Time Counter Reset command (the Debug menu), when CodeMaster supports it.

Also, see the Executtion Time window.


Function rewind

Function rewind

Declaration:

void rewind(unsigned long stream);

Description

Repositions the file pointer to the beginning of the stream.

rewind(stream) is equivalent to fseek (stream, 0L, SEEK_SET), except that rewind clears the end-of-file and error indicators, while fseek clears the end-of-file indicator only. After rewind, the next operation on the update file can be either input or output.


Function Right

Function Right

Declaration:

void Right(int count=1);

Description

Move the cursor positions right. The same result can be achieved by incrementing the CurCol built-in variable.


Function rmdir

Function rmdir

Declaration:

int rmdir(char path[]);

Description

Removes a directory.

rmdir deletes the directory, whose path is given by path. The directory named by path:

must be empty

must not be the current working directory

must not be the root directory

Returned Value

rmdir will return 0, if the directory is successfully deleted. The returned value of -1 indicates an error and the errno global variable contains one of the following values:

EACCES       Permission denied

ENOENT       Path or file function not found


Function Run

Function Run

Declaration:

void Run();

Description

Starts running the program loaded into the microcontroller in the continuous mode. The program runs until a breakpoint is encountered or the program is stopped in some other way. Also, the program can be stopped with the Stop function.


Function RunTo

Function RunTo

Declaration:

void RunTo(unsigned long addr);

Description

Starts running the program loaded into the microcontroller, in the continuous mode, up to a specified address. The script file will not receive control until the program stops.


Functions

Function Definition

Function Call

Function Main


Function SaveData

Function SaveData

Объявление:

void SaveData(unsigned char file_name[], int format, int addr_space, unsigned long start_addr, unsigned long end_addr);

Description

Saves the microcontroller memory area in the file.

Parameters:

file_name - the name of unloaded file.

format   - the format of unloaded file. Character constants with

             the prefix SF_ declared in the system.h header file

             are provided for this parameter. To understand this better,

             open the Save file dialog  and go through the

             format names.

addr_space - the microcontroller memory space, from where data is unloaded.

start_addr - the initial address of unloaded area.

end_addr - the final address of unloaded area (inclusive).

Example

SaveData("C:\\PROG\\TEST.HEX", SF_HEX, AS_CODE, 0, 0x3FFF);


Function SaveDesktop

Function SaveDesktop

Объявление:

void SaveDesktop(char file_name[]);

Description

Saves the screen configuration in the specified file (see Configuration Files)


Function SaveFile

Function SaveFile

Объявление:

int SaveFile();

Description

Saves the file from the current window.


Function SaveOptions

Function SaveOptions

Объявление:

void SaveOptions(char file_name[]);

Description

Saves the debug options in the specified file (see Configuration Files


Function scanf

Function scanf

Объявление:

int scanf(char format[], ... );

Description

The scanf function displays prompt to enter a character string. The string you enter is parsed in accordance with the format line.

scanf scans a series of input fields one character at a time reading from a stream. After that, each field is formatted in accordance with a format specifier passed to scanf in the format string pointed to by format. Finally, scanf stores the formatted input at the address passed to it as the argument following the format. The number of format specifiers and addresses must be the same as the number of input fields.

Notes

1.

Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed. For details on format specifiers, see the scanf Format Specifiers.

2.

All arguments for this function shall be arrays, because only the array parameters are passed by address to functions. Also, see example below.

scanf can stop scanning a particular field before it reaches the normal end-of-field character (whitespace) or it can terminate entirely for a number of reasons. See scanf for a discussion on possible causes.

Returned Value

scanf returns the number of input fields successfully scanned, converted and stored. The return value does not include the scanned fields that were not stored. If no fields are stored, then 0 will be returned.

Example

int i[1];

float f[1];

char name[64];

scanf("%d %f %s", i, f, name);

// If "123  4.56  String" is entered in the prompt, then:

// i[0] will assume value 123,

// name will be equal to the string "String".


Function Search

Function Search

Объявление:

int Search(char text[], int in_block=0);

Description

Searches for text text. The search area is defined by the in_block parameter: if it is 0, the search will be performed in the whole text, otherwise, in the marked block only.

The search is always performed from the cursor position.

The search options are defined by the CaseSensitive, WholeWords and RegularExpressions built-in variables.

If text is found, then Search will return 1, otherwise it will return 0. The string that was found is copied to the LastFoundString variable. This is because the found string may not be the same as the search argument


Function searchpath

Function searchpath

Объявление:

int searchpath(char file_name[], char path[]);

Description

Searches the operating system path for a file.

searchpath attempts to locate a file by searching along the operating system path specified by the PATH=... directive in the environment. The complete path-name string is stored in path. First, searchpath searches for the file in the current directory of the current drive. If the file is not found there, the PATH environment variable will be fetched and each directory in the path will be searched in turn until the file is found or the path is exhausted. If the file is located, the string with the full path name will be copied to path. This string can be used in a call to access the file (for example, with fopen).

searchpath returns TRUE on success, otherwise it returns FALSE.


Function SearchReplace

Function SearchReplace

Объявление:

unsigned long SearchReplace(char text[], char new_text[], int in_block=0, int replace_all=0);

Description

Searches for text and replaces. The replace_all parameter specifies, whether the search is continued after the first occurence of text is replaced. If replace_all is 0, then only the first occurence will be replaced, otherwise, all occurences.

SearchReplace returns the number of replaces


Function SelectBrush

Function SelectBrush

Объявление:

void SelectBrush(unsigned long handle, unsigned long color);

Description

Selects a brush for drawing with the specified color. By default, a brush with the standard color is selected, when the window opens. Brushes are used for drawing painted figures such as circles, rectangles, etc.


Function SelectChip

Function SelectChip

Объявление:

void SelectChip(char name[]);

Description

name is the driver file name without extension (see the listing of files with the extension of .CPE in the system directory of CodeMaster).

This function should be used with care, because not all drivers are suitable for every emulator configuration.

Example

SelectChip("16C74");


Function SelectFont

Function SelectFont

Объявление:

void SelectFont(unsigned long handle, char name[], int height);

Description

Selects a font for text output. As opposed to the SetWindowFont function, this font can be proportional. It is used for displaying text with the DisplayTextF function anywhere in the window.

name is the line with the font name; height specifies the font height.


Function SelectPen

Function SelectPen

Объявление:

void SelectPen(unsigned long handle, unsigned long color, int width=1, int style=PS_SOLID);

Description

Selects a pen for drawing with the specified parameters. The standard pen (a solid line with the width of 1) and the standard color are selected by default, when the window opens. Pens are used for drawing lines, circumferences, etc.

Parameters:

color

width - the pen width; certain videoadapters face problems while drawing lines

        with a width greater than 1;

style - the line type:

        PS_SOLID      - solid

        PS_DOT        - dotted

        PS_DASHDOT    - dash-and-dot

        PS_DASHDOTDOT - dash-and-dot-and-dot


Function SendCOM

Function SendCOM

Объявление:

void SendCOM(int port_num, unsigned char byte, int wait=TRUE);

Description

Sends a byte to the specified serial port. The wait parameter defines whether CodeMaster waits until the previously sent byte leaves the port shift register.


Function SetBkColor

Function SetBkColor

Объявление:

void SetBkColor(unsigned long handle, unsigned long color);

Description

Sets up the window background color.


Function SetBkMode

Function SetBkMode

Declaration:

void SetBkMode(unsigned long handle, int mode);

Description

Sets the text display mode for the window. For the mode parameter, the system.h system header file contains two constants: OPAQUE and TRANSPARENT. When text is displayed (see DisplayText, DisplayTextF) and the display mode is set to OPAQUE, then the rectangle with text will be first filled with the background color. In the TRANSPARENT mode, the text overlaps the previous output.


Function SetBreak

Function SetBreak

Declaration:

void SetBreak(unsigned long addr);

Description

Sets up the code breakpoint at the specified address


Function SetBreaksRange

Function SetBreaksRange

void SetBreaksRange(unsigned long start_addr, unsigned long end_addr);

Description

Sets up the code breakpoints in the range from start_addr to end_addr Code Breakpoints/


Function SetByte

Function SetByte

Declaration:

void SetByte(unsigned long addr, int addr_space, unsigned int value);

Description

Writes value (byte) to the specified address in the specified memory area (the parameter). Constants with the AS_ prefix for microcontroller memory areas (address spaces) are defined in the system.h header file.

Example

SetByte(0x2000, AS_CODE, 0xFF);


Function SetCaption

Function SetCaption

Declaration:

void SetCaption(unsigned long handle, int set);

Description

Removes or restores the window's caption bar in accordance with the value of set.


Function setdisk

Function setdisk

Declaration:

int setdisk(int drive);

Description

Sets the current drive number.

setdisk sets the current drive to the one associated with drive: 0 for A, 1 for B, 2 for C, and so on.


Function SetDword

Function SetDword

Declaration:

void SetDword(unsigned long addr, int addr_space, unsigned long value);

Description

Writes a double word (32 bits) to the specified address in the specified memory area (the addr_space parameter). Constants with the AS_ prefix for microcontroller memory areas (address spaces) are defined in the system.h header file.

Example

SetDword(0x2000, AS_CODE, 0x12345678);


Function SetFileName

Declaration:

void SetFileName(char name[]);

Description

Sets the file name for the current Source


Function setftime

Function setftime

Declaration:

int setftime(long handle, unsigned long time);

Description

Sets the file date and time.

setftime sets the file date and time of the disk file associated with the open handle to the date and time provided in the time parameter. The file must be open for writing; the EACCES error will occur if the file is open for read-only access. The file must not be written to after the setftime call or the changed information will be lost. setftime requires the file to be open for writing; an EACCES error will occur if the file is open for read-only access. The time parameter has the following layout:

Bits      Value

---------------------

0...4     two seconds

5...10    minutes

11...15   hours

16...20   days

21...24   months

25...31   year - 1980

Returned Value

setftime returns 0 on success. In the event of an error, -1 is returned and the errno global variable is set to one of the following values:

EACCES       Permission denied

EBADF        Bad file number

EINVFNC      Invalid function number


Function SetMark

Function SetMark

Declaration:

void SetMark(int number);

Description

Sets the bookmark with the numberNumber shall be within 1...10.


Function setmem

Declaration:

void setmem(void s[], unsigned int length, char value, int index=0);

Description

In the object specified by ssetmemvalue (and converted into the unsigned char).

Returned value

None.


Function SetMemory

Function SetMemory

Declaration:

void SetMemory(void src[], int n, unsigned long addr, int addr_space);

Description

Writes n-byte memory block to the specified address in the specified memory area (the addr_space parameter) from the src array. Constants with the prefix for microcontroller memory areas (address spaces) are defined in the system.h header file.

Example

SetMemory("12345678", 8, 0x20, AS_DATA);


Function setmode

Function setmode

Declaration:

int setmode(long handle, int amode);

Sets mode of an open file.

setmode sets the mode of the opened file associated with handle to either binary or text. The amode argument must have the value of either O_BINARY or O_TEXT, never both. (These symbolic constants are defined in system.h).

Returned Value

setmode returns the previous translation mode, if successful. On error, it returns -1 and sets the errno global variable to

EINVAL       Invalid argument


Function SetPixel

Function SetPixel

Declaration:

void SetPixel(unsigned long handle, int x, int y, unsigned long color);

Draws one point of the specified color in the specified place.


Function SetTextColor

Function SetTextColor

Declaration:

void SetTextColor(unsigned long handle, unsigned long color);

Description

Sets up color of the text printed out by the wprintf function, or displayed by the DisplayText and DisplayTextF functions. The color you set remains unchanged until SetTextColor is called for the next time. The standard color is used by default.

Example

unsigned long handle = OpenStreamWindow("Serial port");

SetTextColor(handle, 0xFF);

wprintf(handle, "Will be written in red color\n");

SetTextColor(handle, 0xFF00);

wprintf(handle, "Will be written in green color");


Function SetToolbar

Function SetToolbar

Declaration:

void SetToolbar(unsigned long handle, int set);

Description

Removes or restores the window's toolbar in accordance with the value of set.


Function SetUpdateMode

Function SetUpdateMode

void SetUpdateMode(unsigned long handle, int update);

Description

Sets up the window update mode. By default, all graphical output is immediately displayed in the window. The SetUpdateMode function sets up a different update mode, when graphical output is cached in the memory and drawing is carried out by calling the UpdateWindow function. Using this, the drawing is performed faster. The update parameter can assume two values:

UM_IMMEDIATE - immediate drawing;

UM_ONREQUEST - drawing by calling the UpdateWindow function.

Example

ulong handle = OpenUserWindow("Test");

MoveTo(handle, 20, 20);

LineTo(handle, 40, 40);

LineTo(handle, 45, 45);

UpdateWindow(handle);


Function SetWindowFont

Function SetWindowFont

Declaration:

void SetWindowFont(unsigned long handle, char font_name[], int height);

Description

Sets up the font for the specified window.

The handle parameter is the window identifier produced by the call of the , and FindWindow functions.

font_name is the string with the font name; is the font height.

Only monospaced fonts, such as Courier or Fixedsys, shall be used.

You can draw with any font, in the User window. To select the font, use the SelectFont function.

Example

unsigned long handle = OpenWindow(WIN_DUMP);

SetWindowFont(handle, "Courier New", 12);


Function SetWindowSize

Function SetWindowSize

void SetWindowSize(unsigned long handle, int w, int h);

Description

Sets up the new size for the specified window. The handle parameter is the window identifier produced by the call of the OpenWindow, and FindWindow functions. w and are the new width and height of the window (in pixels). The size also includes the non-user area of the window (the frame and title).

The position of the window upper left corner does not change.


Function SetWindowSizeT

Function SetWindowSizeT

Declaration:

void SetWindowSizeT(unsigned long handle, int w, int h);

Description

Sets up the new size for the specified window in text units. Since almost all windows of CodeMaster use the pseudotext mode, it can be useful to specify the window size only in terms of text.

The handle parameter is the window identifier produced by the call of the OpenWindow, and FindWindow functions. w is the number of text characters in the line; h is the number of lines in the window.


Function SetWord

Function SetWord

Declaration:

void SetWord(unsigned long addr, int addr_space, unsigned int value);

Description

Writes a word (16 bits) to the specified address in the specified memory area (the addr_space parameter). Constants with the AS_ prefix for microcontroller memory areas (address spaces) are defined in the system.h header file.

Example

SetWord(0x2000, AS_CODE, 0xFFFF);


Functions for file and directory operation

Functions for file and directory operation

chdir

getcurdir

findfirst

findnext

_ff_attrib

_ff_time

_ff_date

_ff_size

_ff_name

fnsplit

fnmerge

_fullpath

getcwd

getdisk()

setdisk

mkdir

rmdir

searchpath

getdfree

unlink

chsize

close

creat

creatnew

creattemp

dup

dup2

eof

filelength

getftime

setftime

isatty

lock

unlock

locking

lseek

open

read

write

rename

setmode

tell


Ôóíêöèÿ sin

Функция sin

Объявление:

float sin(float x);

Описание

Функция sin вычисляет значение синуса числа с плавающей точкой x.

Возвращаемое значение

Функция sin возвращает значение синуса числа x.


Function sprintf

Function sprintf

Объявление:

void sprintf(char dest[], unsigned char format[], ... );

Description

The sprintf function displays the values of transferred parameters in the dest line in accordance with the format line.

Note. Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed.

Returned value

None.


Ôóíêöèÿ sqrt

Функция sqrt

Объявление:

float sqrt(float x);

Описание

Функция sqrt вычисляет квадратный корень числа x.

Возвращаемое значение

Функция sqrt возвращает значение квадратного корня числа x. Для отрицательных аргументов возвращается ноль.


Function srand

Function srand

Объявление:

void srand(unsigned int seed);

Description

Initializes a random number generator by a specified number.


Function sscanf

Function sscanf

Объявление:

int sscanf(char buf[], char format[], ... );

Description

The sscanf function parses the buf string in accordance with the format line.

sscanf scans a series of input fields one character at a time reading from a stream. After that, each field is formatted in accordance with a format specifier passed to sscanf in the format string pointed to by format. Finally, sscanf stores the formatted input at the address passed to it as the argument following the format. The number of format specifiers and addresses must be the same as the number of input fields.

Notes

1.

Your arguments passed to this function shall match the format line. In case of mismatch, the CodeMaster program may crash, because it cannot check the correspondence between the format string and parameters passed. For details on format specifiers, see the scanf Format Specifiers.

2.

All arguments for this function shall be arrays, because only the array parameters are passed by address to functions. Also, see example for scanf.

sscanf can stop scanning a particular field before it reaches the normal end-of-field character (whitespace) or it can terminate entirely for a number of reasons. See scanf for a discussion on possible causes.

Returned Value


Function StatusCOM

Function StatusCOM

Объявление:

unsigned char StatusCOM(int port_num);

Description

Obtains the serial port status byte. Bits of the status byte correspond to the port status as follows:

bit 0: Data ready status

bit 1: Overrun error

bit 2: Parity error

bit 3: Framing error

bit 4: Break detect

bit 5: Transmit holding register empty

bit 6: Transmit shift register empty

bit 7: Time-out (or used to flag any error)


Function Step

Function Step

Объявление:

void Step();

Executes one machine instruction (the low-level step mode).

Note. The screen is not updated automatically after this function is called. To organize the automatic update, use the RedrawScreen function at the appropriate moment.


Function Stop

Function Stop

Объявление:

void Stop();

Description

Stops the program under execution.


Function stpcpy

Function stpcpy

Объявление:

int stpcpy(char dest[], char src[], int dest_index=0, int src_index=0);

Description

The stpcpysrc line to the dest line and attaches the zero character.

Returned value

The stpcpy function returns the number of the last byte copied to dest


Function strcat

Function strcat

Объявление:

void strcat(char dest[], char src[], int dest_index=0, int src_index=0);

Description

The strcat function joins the line to the dest line and ends the dest line with zero.

Returned value

None.


Function strchr

Function strchr

Объявление:

int strchr(char s[], int c, int index=0);

Description

The strchr function searches the first entry of character cs. The zero characters also participate in the search.

Returned function

The strchr function returns the number of the found character to s and returns -1, if there is no such character there.


Function strcmp

Function strcmp

Объявление:

int strcmp(char s1[], char s2[], int s1_index=0, int s2_index=0);

Description

The strcmps1 and s2 letter-by-letter and returns the result of the search.

Returned value

The function returns the following values of comparison result:

    Value        Meaning

    -------------------------------

    < 0          s1 is less than s2

    = 0          s1 is equal to s2

    > 0          s1 is greater than s2


Function strcmpi

Function strcmpi

Объявление:

int strcmpi(char s1[], char s2[], int s1_index=0, int s2_index=0);

The same as stricmp


Function strcpy

Function strcpy

Объявление:

void strcpy(char dest[], char src[], int dest_index=0, int src_index=0);

Description

The strcpy function copies the contents of line src to line dest and attaches the zero character.

Returned value

None.


Function strcspn

Function strcspn

Объявление:

int strcspn(char s1[], char s2[], int s1_index=0, int s2_index=0);

Description

The function searches any character from line s2 to line s1.

Returned value

The strcspn function returns the number of the first character in line s1 equal to any character from line s2. Zero will be returned, if the first character in line s1 is equal to any character from line s2. If there are no such characters there, then the length of line s1 will be returned (the zero character is not taken into account).


Function stricmp

Function stricmp

Объявление:

int stricmp(char s1[], char s2[], int s1_index=0, int s2_index=0);

Description

The stricmp function compares lines s1 and s2 letter-by-letter regardless of the character case and returns the result of the search.

Returned value

The stricmp function returns the following comparison results:

    Value        Meaning

    -------------------------------

    < 0          s1 is less than s2

    = 0          s1 is equal to s2

    > 0          s1 is greater than s2


Function strlen

Function strlen

Declaration:

int strlen(char s[], int index=0);

Description

The strlen function calculates the length of line src in bytes. The last zero character is not counted.

Returned value

The strlen function returns the length of line src.


Function strlwr

Function strlwr

Declaration:

void strlwr(char s[], int index=0);

Description

The strlwr function converts line s to the lower case.

Returned value

None.


Function strncat

Function strncat

Declaration:

void strncat(char dest[], char src[], int n, int dest_index=0, int src_index=0);

Description

The strncat function attaches the maximum of n characters from line scr to line dest and ends dest with the zero character. If there are less than n characters in line , then the whole line src together with the zero character will be copied.

Returned value

None.


Function strncmp

Declaration:

int strcmp(char s1[], char s2[], int s1_index=0, int s2_index=0);

Description

The strncmp function compares the first n bytes of lines s1 and s2 letter-by-letter and returns the comparison result.

Returned result

The function returns the following values of the lines s1 and comparison result:

    Value        Meaning

    ------------------------------------------

    < 0          s1 is less than s2

    = 0          s1 is equal to s2

    > 0          s1 is greater than s2


Function strncmpi

Function strncmpi

int strncmpi(char dest[], char src[], int n, int dest_index=0, int src_index=0);

Description

The strncmpi function compares the first n bytes of lines s1 and s2 letter-by-letter regardless of the character case and returns the comparison result.

Returned value

The strncmpi function returns the following values of the lines s1 and s2

    ------------------------------------------

    < 0          s1 is less than s2

    = 0          s1 is equal to s2

    > 0          s1 is greater than s2


Function strncpy

Function strncpy

Declaration:

void strncpy(char dest[], char src[], int n, int dest_index=0, int src_index=0);

Description

The strncpy function copies the maximum of n characters from line scrn characters in line src, then the zero characters will be added to line dest to extend it up to the size of n.

Returned value

None.


Function strnicmp

Function strnicmp

Declaration:

int strnicmp(char dest[], char src[], int n, int dest_index=0, int src_index=0);

The same as strncmpi.


Function strnset

Function strnset

Declaration:

void strnset(char s[], int c, int n, int index=0);

Description

The strnset function sets the maximum of n characters from line s to zero.

Returned value

None.


Function strpbrk

Function strpbrk

Declaration:

int strpbrk(char s1[], char s2[], int s1_index=0, int s2_index=0);

Description

Function strpbrk searches for the first occurrence of any character from line s2 in line s1. The zero character is not the search element.

Returned value

The strpbrk function returns the number of the found character in line s1. If line s1 does not contain any characters from line s2, then -1 will be returned.


Function strrchr

Declaration:

int strrchr(char s[], int c, int index=0);

Description

The strrchr function searches for the last occurrence of character c in line s. The zero character is also the search element.

Returned value

The strrchr function returns the number of the byte found in s, or -1, if there is no such character there.


Function strrev

Function strrev

Declaration:

void strrev(char s[], int index=0);

Description

The strrev function reverses the byte order in line s. For example, if we write:

char s[] = "1234"; strrev(s);

then the lines will contain "4321".

Returned value

None.


Function strset

Function strset

Declaration:

void strset(char s[], int c, int index=0);

Description

The strset function sets all characters in line s to the value of c.

Returned value

None.


Function strspn

Function strspn

Declaration:

int strspn(char s1[], char s2[], int s1_index=0, int s2_index=0);

The strspn function searches in the line s21 for symbols, which are absent in line s2.

Returned value

The strspn function returns the number of the first character in line s1, which is known to be absent in line s2. If there are no such symbols in line s1, then the length of line s1 will be returned (the zero character is not taken into account).


Function strstr

Function strstr

Declaration:

int strstr(char s1[], char s2[], int s1_index=0, int s2_index=0);

Description

The strstr function searches for the first occurrence of the string from s2 in line s1 (the zero character is not taken into account).

Returned value

The strstr function returns the number of the first byte of the string from s2, or returns -1, if there is no such string there.


Function strtol

Declaration:

long strtol(char s[], int endptr[], int radix, int index=0);

Converts an ASCII-string (the s parameter; index specifies shift in the line) into a long number. The radix parameter is the radix used for conversion (2...36).

String s may include the following components:

[ws] [sn] [0] [x] [ddd]

[ws] - Optional spaces or tabulation symbols

[sn] - Optional sign (+ or -)

[0] - Optional zero (0)

[x] - Optional x or X

- Optional digits

endptr array contains that character number).

If radix is equal to 0, then radix will be selected by the first few characters of the s string:

First character   Second character  String interpretation

   0               1 - 7           Octal

   0               x or X         Hexadecimal

   1 - 9                           Decimal

Returned value

The converted long integer number.


Function strtoul

Function strtoul

Declaration:

unsigned long strtoul(char s[], int endptr[], int radix, int index=0);

Description

The strtoul function is the same as strtol, except that it returns the unsigned long integer.


Function strupr

Function strupr

Declaration:

void strupr(char s[], int index=0);

Description

The strupr function converts line s to the upper case.

Returned value

None.


Ôóíêöèÿ tan

Функция tan

Объявление :

float tan(float x);

Описание

Функция tan вычисляет значение тангенса числа с плавающей точкой x.

Возвращаемое значение

Функция tan возвращает значение тангенса аргумента x. .


Ôóíêöèÿ tanh

Функция tanh

Объявление:

float tanh(float x);

Описание

Функция tanh вычисляет гиперболический тангенс для числа с плавающей точкой x. Аргумент должен лежать в диапазоне от -88.72280 до 88.72280.

Возвращаемое значение

Функция tanh возвращает значение гиперболического тангенса аргумента x.


Function tell

Declaration:

long tell(long handle);

Description

Gets the current position of the file pointer.

tell gets the current position of the file pointer associated with handle and expresses it as the number of bytes from the beginning of the file.

Returned Value

tell returns the current file pointer position. Returned -1 (long) indicates an error, and the errno global variable is set to


Function TerminateAllScripts

Function TerminateAllScripts

Declaration:

void TerminateAllScripts();

Description

Stops execution of all script files (except the script called by this function).


Function TerminateScript

Function TerminateScript

Declaration:

void TerminateScript(char file_name[]);

Description

Stops execution of the specified script file and unloads it from the memory, if possible. The file name parameter is the script file name without path and extension.


Function Text

Function Text

Declaration:

void Text(char text[]);

Description

text text from the cursor position, as if it were typed from the keyboard.


Function toascii

Declaration:

int toascii(unsigned char c);

Description

The toascii function cuts off the high bit of parameter c.

Returned value

The toascii function returns the value of c cut down to 7 bits


Function Tof

Function Tof

Declaration:

void Tof();

Description

Move the cursor to the top of the file (position (1:1)).


Function tolower

Function tolower

Declaration:

int tolower(unsigned char c);

Description

tolower function converts character c to the lower case. If c is not an alphabetic character, then it will not be converted.

Returned value

The tolower function returns character c in the lower case.


Function toupper

Function toupper

Declaration:

int toupper(unsigned char c);

Description

The toupper function converts character c to the upper case. If c is not an alphabetic character, then it will not be converted.

Returned value

The toupper function returns character c in the upper case.


Function ultoa

Function ultoa

Declaration:

void ultoa(unsigned long value, char string[], int radix);

Description Converts an unsigned long integer (value) into the character string (string). The radix parameter is the radix used for conversion (2...36).


Function unlink

Function unlink

Declaration:

int unlink(char file_name[]);

Description

Deletes a file.

unlink deletes the file specified by file_name. Any drive, path, and file name can be used as the filename. Wildcards are not allowed. This call cannot delete read-only files.

Note. If your file is open, be sure to close it before unlinking it.

Returned Value

On success, unlink returns 0. On error, it returns -1 and sets the errno global variable to one of the following values:

EACCES       Permission denied

ENOENT       Path or file name not found


Function unlock

Function unlock

Declaration:

int unlock(long handle, long offset, long length);

Description

Releases file-sharing locks.

unlock provides interface to the operating system file-sharing mechanism. unlock removes a lock previously placed with a call to lock. To avoid error, all locks must be removed before closing a file. The program must release all locks before completing.

Returned Value

On success, unlock returns 0. On error, it returns -1.


Function Up

Function Up

Declaration:

void Up(int count=1);

Description

Move the cursor count lines up. The same result can be achieved by decrementing the CurLine built-in variable.


Function UpdateWindow

Function UpdateWindow

Declaration:

Description

Draws an image in the specified window. The image is cached in the memory during graphical output function calls. Calling this function makes sense only when selecting the mode of drawing with the SetUpdateMode function call with the UM_ONREQUEST parameter.


Ôóíêöèÿ Wait

Функция Wait

Объявление:

void Wait(unsigned long microseconds);

Описание

Приостанавливает выполнение ФС до истечения указанного интервала модельного времени.

CodeMaster не может отслеживать экстремально короткие временные интервалы, так как требуется некоторое время для передачи данных по последовательному каналу.

Пример

while (1) // бесконечный цикл
{
Wait(100); // ждать 100 микросекунд. Отлаживаемая программа пока выполняется.
$P1 ^ = 1; // инвертировать бит 0 в порту P1
}


Function WaitExprChange

Function WaitExprChange

Declaration:

void WaitExprChange(char str[]);

Description

Suspends execution of the script file until the expression specified in the str line changes its value.

The peculiarities of this function for the CodeMaster are the same as for .

Note that you should not precede the variable names with '$' sign in the expression string.

Example:

while (1)     // the endless cycle

{

WaitExprChange("P1 & 2");  // to wait until value of bit 1

                           // of port P1 changes

P2 |= P1 & 2;              // to execute certain action

}


Ôóíêöèÿ WaitExprTrue

Функция WaitExprTrue

Объявление:

void WaitExprTrue(char str[]);

Описание

The expression operands should be available in the continuous emulation mode, otherwise the expression is always False.

An operand value poll is executed within the specified time interval. Therefore, the expression should remain True during this interval, otherwise the debugger cannot trace the moment, when the expression becomes True.

Операнды выражения должны быть доступны в режиме continuous emulation, иначе выражение всегда ложно(False).

Опрос значения выражения выполняется в течение заданного временного итервала. Поэтому выражение должно оставаться истинным (True) в течение этого интервала, иначе отладчик не сможет отследить момент, когда выражение станет ложным (False).

Приостанавливает выполнение ФС, пока указанное в строке str выражение не станет Истинным в результате выполнения отлаживаемой программы.

Примечание: Имена переменных в строке выражения должны быть указаны без знака '$'.

Пример:

while (1)                                   // бесконечный цикл

{

WaitExprTrue("Counter > 200");            // ждать выполнения условия

printf("Counter overflow at %04X", $PC); // вывести сообщение

}


Function WaitGetMessage

Function WaitGetMessage

Declaration:

void WaitGetMessage(int id);

Description

WaitSendMessage


Ôóíêöèÿ WaitMemoryAccess

Функция WaitMemoryAccess

Объявление:

void WaitMemoryAccess(unsigned long addr, int addr_space, int num_bytes, int flags);

Описание

Приостанавливает выполнение Файлов Сценария (ФС), пока процессор (т.е. выполняющаяся программа) не обратится к указанной области памяти. Параметры:

addr       - адрес области памяти.

addr_space - адресное пространство. В файле system.h
приведены константы с префиксом AS_. num_bytes - количество байт в области памяти.     flags     - флаги, определяющие отслеживаемый тип обращения
к памяти: MA_READ - чтение, MA_WRITE - запись,
MA_READ | MA_WRITE - и чтение, и запись.

В эмуляторах эта функция не работает.

После возврата из функции встроенные переменные содержат информацию о последнем отслеженном доступе к памяти:

LastMemAccAddr - адрес памяти

LastMemAccAddrSpace - тип адресного пространства

LastMemAccLen - количество байт

LastMemAccType - тип доступа (MA_READ, MA_WRITE).

Пример:

while (1) // бесконечный цикл
{
WaitMemoryAccess(0x80, AS_DATA, 1, MA_WRITE);
// ждать записи в ячейку памяти данных с адресом 0x80 (байт).
$P1 ^= 1; // инвертировать бит 0 в порту P1
}


Function WaitSendMessage

Declaration:

void WaitSendMessage(int id, unsigned int int_data, unsigned long long_data);

Description

The WaitSendMessage and WaitGetMessage functions provide a mechanism for message exchange between two copies of the CodeMaster program (or other Phyton products) running simultaneously. These functions are used mostly for simulators and allow simulation of multi-processor systems that exchange data with each other.

To simulate, say, a two-processor system, you should launch two copies CodeMaster and set up the exchange of data between them. You can start the second copy of CodeMaster by copying the CM-ARM.EXE file to a file with another name and then starting it.

The WaitSendMessage function "sends a message" to another copy of CodeMaster and waits until the message is "delivered", i.e. the receiver copy of CodeMaster calls the WaitGetMessage function. If the receiver has already called WaitGetMessage and is waiting for an incoming message, the WaitSendMessage function returns immediately, otherwise it will return, when a period of model time is passed. The model time flows, when the simulated program runs.

When calling WaitSendMessage and WaitGetMessage, you supply the id parameter that identifies the message. The message will be delivered to the copy of CodeMaster that is waiting for message with the same id.

The int_data and long_data parameters are the user data. You may set these parameters to any values you wish. When the receiver's WaitGetMessage returns the control, the transmitter's int_data value is copied to the receiver's LastMessageInt built-in variable and long_data is copied to LastMessageLong.

Note that CodeMaster uses its own internal means for message exchange, not the message mechanism of Windows.

Example

#define SecondCopyMsg 0

#define InitExchange 0

#define InitExchangeOk 0

Run(); // start model time

WaitSendMessage(SecondCopyMsg, InitExchange, 0);

WaitGetMessage(SecondCopyMsg);

if (LastMessageInt != InitExchangeOk)

{

  printf("Exchange failed");

  return;

}


Ôóíêöèÿ WaitStop

Функция WaitStop

Объявление:

void WaitStop();

Описание

Приостанавливает выполнение Файла Скрипта (ФС), пока выполнение программы не остановится. Останов программы может произойти либо по точке останова, либо при останове вручную.


Function WaitWindowEvent

Function WaitWindowEvent

Declaration:

void WaitWindowEvent(unsigned long handle);

Description

Allows to organize interaction between user and the User window and the окно Поток ввода/вывода. The function waits for an event associated with the specified window and returns control to the script file, when the event occurs. The function locates type of the occurred event and places relevant data into the internal variables accessible with the following functions:

LastEvent

LastEventInt{1...4}

Example

ulong handle = OpenUserWindow("Interactive Window");

while (1)

{

WaitWindowEvent(handle);

switch (LastEvent(handle))

{

  case WE_CLOSE:         return;          // window is closed, script file is being completed

  case WE_REDRAW:        Redraw(handle);  // to call our function Redraw,

  case WE_MOUSEBUTTON:   Change(handle);  // to call our function Change,

                         break;           // that responds to the clicked

                                          // mouse button

}


Function wgetchar

Function wgetchar

Declaration:

void wgetchar(unsigned long handle);

Description

Waits for pressing an alphanumeric key on the keyboard, when the specified window has input focus, that is, is active. The pressed key code can be obtained with the LastChar function.

The entered character is automatically displayed in the window.

Example

unsigned long handle = OpenStreamWindow("Serial port");

wprintf(handle, "Press \"E\" for exit");

wgetchar(handle);

if (toupper(LastChar(handle)) == 'E') return


Function wgethex

Function wgethex

Declaration:

void wgethex(unsigned long handle);

Description

Waits for two hexadecimal digits (a byte value) to be entered from the keyboard. The entered number can be obtained with the LastChar function.

The entered characters are automatically displayed in the window. The Enter key moves the window cursor to the beginning of the new line.


Function wgetstring

Function wgetstring

Declaration:

void wgetstring(unsigned long handle);

Description

Waits until the character string is ended by pressing the Enter key. The entered string can be obtained with the LastString function.

The entered characters are automatically displayed in the window.


Function WindowHotkey

Function WindowHotkey

Declaration:

void WindowHotkey(unsigned long handle, int key);

Description

Sends the local menu command corresponding to the hot key (parameter key) to the specified window. The local window menu lists the hot keys. key is the ASCII value of the key without indicating Ctrl: for example, to imitate pressing Ctrl+T in the window, the key parameter shall be equal to 'T'.

Example

unsigned long handle = OpenWindow(WIN_WATCHES);

WindowHotkey(handle, 'A');      // imitates pressing Ctrl+A


Function WordLeft

Function WordLeft

Declaration:

void WordLeft();

Description

Moves the cursor to the next word (on the right).


Function WordRight

Function WordRight

Declaration:

void WordRight();

Description

Moves the cursor to the previous word (on the left).


Function wprintf

Function wprintf

Declaration:

void wprintf(unsigned long handle, char format[], ... );

Displays the values of transferred parameters in the window in accordance with the format line.

Attention! You are responsible for matching the arguments transferred to wprintf function into the line format. A mismatch may bring CodeMaster to failure.

Example

unsigned long handle = OpenStreamWindow("Serial port");

wprintf(handle, "SP = %04X", $SP\n");


Function write

Declaration:

int write(long handle, void buf[], int len);

Description

Writes to a file.

write writes the buffer of data to the file or device specified by handle. The handle file handle is obtained from the creat open, dup, or dup2 call.

This function attempts to write bytes from the buffer pointed to by buf to the file associated with handle. Except for the case, when write is used to write to a text file, the amount of bytes written to the file will be no more than the amount requested. On text files, when write sees a linefeed (LF) character, it outputs a CR/LF pair.

If the amount of bytes actually written is less than that requested, the condition should be considered an error and probably indicates a full disk. For disks or disk files, the writing always proceeds from the current file pointer. For devices, bytes are sent directly to the device.

Returned Value

write returns the number of bytes written. A write to a text file does not count the generated carriage returns. In case of error, write returns -1 and sets the errno global variable to one of the following values:

EACCES       Permission denied

EBADF        Bad file number


Îáùèé Ñèíòàêñèñ ÿçûêà Ôàéëîâ Ñöåíàðèÿ

Общий Синтаксис языка Файлов Сценария

Формат

Комментарии

Идентификаторы

Зарезирвированные константы

Целые константы

Длинные целые константы

Константы с плавающей точкой

Символьные константы

Строковые константы


GetByte

unsigned int GetByte(unsigned long addr, int addr_space);

Description

To read a byte from a specified address space{addr_sp} (parameter addr_space) at a specified address.

Returned value

Read byte or word.

Example

printf("%02X", GetByte(SubLevel(0, 0), 0x1F));


GetDword

unsigned long GetDword(unsigned long addr, int addr_space);

Description

To read a double word (32 bits) from a specified memory area{addr_sp} (parameter addr_space) at a specified address.

Returned value

Read double word.

Example

printf("%08lX", GetDword(0, 0x1F));


GetMemory

void GetMemory(void dest[], int n, unsigned long addr, int addr_space);

Description

To read n-byte memory block from a specified memory area{addr_sp} (parameter addr_space) at a specified address to the array dest.

Example

char array[20]; GetMemory(array, sizeof(array), 0x20, SubLevel(0, 0));


GetProgOptionBits

unsigned long GetProgOptionBits(char option_name[]);

Description

Returns current value of the option_name programming option. The option must be of type 'Bits' - a list of options; each of them can be checked or unchecked. Example: "Sectors" option of the Fujitsu MBM29LV008BA chip.


GetProgOptionFloat

float GetProgOptionFloat(char option_name[]);

Description

Returns current value of the option_name programming option. The option must be of type 'Long' - a floating-point number. Example: "Vcc" option of the Microchip PIC16F628A chip.


GetProgOptionList

unsigned int GetProgOptionList(char option_name[]);

Description

Returns current value of the option_name programming option. The option must be of type 'List' - a menu-like list of strings. Example: "WDT" option of the Microchip PIC16F628A chip.


GetProgOptionLong

long GetProgOptionLong(char option_name[]);

Description

Returns current value of the option_name programming option. The option must be of type 'Long' - a 32-bit integer. Example: "Tpgm" option of the Atmel ATF2500C chip.


GetProgOptionString

void GetProgOptionString(char option_name[], char str[]);

Description

Copies the current value of the option_name programming option to the str string. The option must be of type 'String' - a text string. Example: "Copyright" option of the National Semiconductor COP87SER7 chip.


GetWord

unsigned int GetWord(unsigned long addr, int addr_space);

Description

To read a word (16 bits) from a specified memory area{addr_sp} (parameter addr_space) at a specified address.

Returned address

Read word.

Example

printf("%04X", GetWord(0, 0x1F));


Global Variable Definition

Global Variable Definition

Global variables

Example:

int Global_flag;

Global variables are defined on the same level as functions, that is, they are not local in any block. They are initialized with 0, unless other initial value is explicitly defined. The scope is all script files currently being executed. Global variables should be described in all the script files that can access them.

Static variables

Example:

static int File_flag;

Constant. The scope is the script file, in which the variable is defined. The static variables shall be described before they are used in the file for the first time.

Variable Initialization

External Object Description


%g or %G Conversions

The argument is printed in style e, E or f, with the precision specifying the number of significant digits.

Trailing zeros are removed from the result, and a decimal point appears only if necessary.

The argument is printed in style e or f (with some restraints) if g is the conversion character. Style e is used only if the exponent that results from the conversion is either greater than the precision or less than –4.

The argument is printed in style if G is the conversion character.


Graphical output functions

Graphical output functions

Graphical output functions draw various graphical objects and text in special User window. To draw in a user window, first open it with the OpenUserWindow function that returns the window identifier (handle). Then use the identifier to reference the window (multiple user windows can be open at the same time). For more information, see User window.

In all graphical output functions, the first parameter () is the window identifier.

OpenUserWindow

ClearWindow

SetCaption

SetToolbar

SetUpdateMode

UpdateWindow

SelectPen

SelectBrush

SelectFont

SetTextColor

SetBkColor

SetBkMode

DisplayText

DisplayTextF

MoveTo

LineTo

FillRect

Rectangle

FrameRect

InvertRect

Curcuit

Ellipse

Polyline

SetPixel

AddButton

RemoveButtons

WaitWindowEvent

LastEvent

LastEventInt{1...4}


Handle <handle> is not a Stream window handle

Handle <handle> is not a Stream window handle

The I/O stream Window Operation Functions detected the invalid handle of the I/O Stream window. The window is not a I/O Stream window.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Handle <handle> is not a User window handle

Handle <handle> is not a User window handle

The graphical output functions detected the invalid handle of the User . The window is not a User window.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Identifier Change (#define)

Syntax:

#define identifier line

Example:

#define Count 100

Changes each occurrence of the Count identifier in the program text to 100.

#undef identifier

Example:

#undef Count

Cancels any previous definition for the Count identifier.


Èäåíòèôèêàòîðû

Идентификаторы

Идентификаторы используются как имена переменных, функций и типов данных.

Допустимые символы: цифры 0 - 9, латинские прописные и строчные буквы a - z, А - Z, символ подчеркивания (_).

Специальный случай - обращение к имени, встроенному в PDS-52, например, регистру специального назначения. Такие имена предваряются знаком доллара, например, $SP, и могут использоваться в программе без об'явления.

Первый символ не может быть цифрой.
Буквы верхнего и нижнего регистра считаются различными.
Идентификатор может быть длиной до 48 символов.

Примеры: NAME1 name1 Total_5


Inclusion of Files (#include)

Note. You can put the #include command line everywhere in the program, but normally, all inclusions are located in the beginning of the source file text.

Syntax:

#include <file_name>

Example:

#include <system.h>

The preprocessor changes this line to the contents of the system.h file. The angle brackets indicate that the system.h file will be taken from the standard catalog. The directory, where CodeMaster is installed, and the list of directories specified in the "include-file directory" field in the Script Files dialog, are automatically used as the standard directory. If the file is not found in any of the standard directories, then the current directory will be checked.

#include "file_name"

Example:

#include "defs.h"

This structure operates the same way as the #include <system.h>, except that the compiler searches the current directory first.


Öåëûå êîíñòàíòû

Целые константы

Десятичные

Цифры 0 - 9.

Примеры:

12
111
956
1007

Шестнадцатеричные

Цифры 0 - 9, буквы a - f или A - F для значений 10 - 15. Начинаются с 0x или 0X.

Примеры:

0x12 = 18 (десятичное);
0x2f = 47 (десятичное);
0xA = 10 (десятичное);

Двоичные

Цифры 0 и 1. Заканчиваются b или B.

Примеры:

10011101B = 0x9D (шестнадцатеричное) = 157 (десятичное);
101b = 5

З а м е ч а н и е. Если значение превышает 65535, то оно представляется как длинное целое.


Invalid address space

The microprocessor resources access functions detected the invalid microcontroller address space.

Constants with the AS_ prefix are given in the system.h file and we recommend you to use these constants.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid block type

The BlockBegin function got the invalid parameter (block type).

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid COM port number

The invalid number of serial port was passed to a function that works with the serial port. The valid port numbers are 0...3 for ports COM1...COM4, respectively.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid frequency: <value> Hz

The specified clock frequency is invalid (too large or too small).

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid left operand type: <value>

Internal script file execution error. Please contact Technical Support (see contact information).


Invalid mark number (<n>): should be 1...10

The SetMark or GetMark function got the invalid parameter (mark number).

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid number of points

The Polyline function detected that the number of elements in the 'points' array does not correspond to the 'n' parameter (number of points). The dimension of 'points' should be at least of n*2.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid storage class

Internal script file execution error. Please contact Technical Support (see contact information).


Invalid stream id

Invalid stream id

The stream file functions detected the invalid stream handle. Make sure that the stream with this handle is actually opened.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid target processor '<name>'

The SelectChip function detected that the processor name is invalid, i.e. it is absent in the list of allowable processor types.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Invalid window type

Invalid window type

The SetTextColor and ClearWindow functions can operate only in the User windowI/O Stream window.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


I/O Stream window operation functions

Stream window control functions allow you to display text in the special I/O Stream window.

In all Stream window control functions, the first parameter (handle) is the window identifier.

OpenStreamWindow

SetTextColor

wprintf

wgetchar

LastChar

wgethex

wgetstring

LastString


LoadProgram

void LoadProgram(unsigned char file_name[], int format, int addr_space=AS_CODE, unsigned long start_addr=0);

Description

To download a program in the buffer{buffer} memory.

Parameters:

  file_name - Name of the loaded file.

  format    - Format of the loaded file. Character constants with the

               prefix F_ declared  in the mprog.h header file

               are provided for this parameter. To understand this

               better, open the Load Programm Dialog.

               and go through format names.

  addr_space - address space{addr_sp} where the data is downloaded

               (0 by default).

  start_addr - Load address. This parameter is used only for loading

               a file that is a binary memory image.

Example

LoadProgram("C:\\PROG\\TEST.HEX", F_HEX, SubLevel(1, 0));


Local Variable Definition

The automatic variable is temporary, because it loses its value upon the exit from the block. The domain of the variable is the block, where it is defined. Variables defined inside the block take precedence over the variables defined in the enclosing blocks. Example:

void func(char c)

{

int i = 0;

if (c == '0')

{

  char i = 8;

  i++;

}

i++;

}

The local variable can be described everywhere within the function, as in C++.

Values of non-initialized local variables are undefined.

The function formal parameters are processed the same way as local variables.

Static variables inside the function are not implemented.


lock

Declaration:

int lock(long handle, long offset, long length);

Description

Sets file-sharing locks. lock provides interface to the operating system file-sharing mechanism. The lock can be placed on arbitrary, nonoverlapping regions of any file. A program attempting to read or write into the locked region will retry the operation three times. If all three retries fail, then the call will fail with error.

Returned Value

lock returns 0 on success. On error, lock returns -1 and sets the errno global variable to

EACCES       Locking violation


Logical Operations

!   Usage: !ae

   True, if ae or pe is false.

   Example:

     if (!good)

       printf ("not good");

|| Usage: e1 || e2

   checked. The value of e2 will be checked only, if e1 is False. The expression       will be

   True, if e1 or e2 is True.

   Example:

     if(x < A || x > B) printf

      ("out of range");

&&

    Logical AND operation of e1 and e2. At first, the value of e1

    is checked. The value of e2 will be checked only, if e1 is True.

    The expression will be True, if e1 and e2 are True.

    Example:

      if (a ! = 0 && b > 7)

        n++;


Äëèííàÿ Öåëàÿ Êîíñòàíòà

Длинная Целая Константа

Длинная целая константа явно определяется латинской буквой l или L, стоящей после константы. Явное определение длинной константы полезно, например, для приведения типа операнда к значению типа long.

Примеры:

Длинная десятичная: 12l 12 (десятичное);
956L 956 (десятичное);
Длинная шестнадцатеричная: 0x12l 18 (десятичное);
0xA3L 163 (десятичное).


List of Breakpoints

List of Breakpoints

The list of set breakpoints and breakpoint ranges.


Cannot display

Cannot display

Cannot display text in the pop-up window. To get detailed help on the item, click the Help button in the dialog.


Types of Windows

Types of Windows

Lists the types of windows. The settings that you select affect all the windows of the chosen type, including the already opened ones.


Opened Windows

Opened Windows

The list of windows opened in CodeMaster.


Additional Help

Additional Help

Additional help items specific for CodeMaster.


.507

Get detailed help information on the dialog box.


Reset Defaults

Reset Defaults

Set all options in the dialog box to their default values.


Scripts

The listing of script files, which are currently being executed.


Configuration Items

Configuration Items

The list of available configuration items. Clicking an item displays the associated dialog box on the right.


Mathematical functions

sin

asin

cos

acos

tan

tanh

atan

log

log10

sqrt

ceil

floor

exp

fabs

fmod

frexp

abs

pow

pow10


Math error in function

Math error in function

Floating-point operation error in the specified function.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables


MaxAddr

unsigned long MaxAddr(int addr_space);

Description

Returns the address of the address space{addr_sp} upper boundary.


Microprocessor resources access functions

These functions serve to access the names built in CodeMaster. For example, special function registers should be preceded by the dollar sign ($SP, for example). Such names are used in the program without declaring.

The simple type variables (char, int,..., float) of the loaded program can be accessed the same way.

Examples

if ($SP > 0x2000)

{

printf("Stack overflow");

exit();

}

...

$PCON = 0b11101111;

LoadProgram

ReloadProgram

SaveData

SelectChip

Reset

ResetTimeCounter

FindSymbol

Expr

FloatExpr

AddrExpr

Step

HStep

Run

RunTo

Stop

MinAddr

MaxAddr

GetByte

GetWord

GetDword

SetByte

SetWord

SetDword

GetMemory

SetMemory

CheckSum

SetBreak

ClearBreak

SetBreaksRange

ClearBreaksRange

ClearAllBreaks


MinAddr

unsigned long MinAddr(int addr_space);

Description

Returns the address of the address space{addr_sp} lower boundary.


mprintf

void mprintf(char format[], ... );

Description

The mprintf function is used just like printf but the message is displayed not in the Console window but in the "Operation Progress" window of the Program window.


Operand Execution Order

The operands are normally executed from left to right.

. If you assign a value to a variable in any expression (including the function call), do not use this variable again in the same expression.

Example:

y = (x = 5) + (++x);


Operand Metadesignation

Some operations require specific operand types. The type of operand is indicated by one of the following letters:

e - any expression

v - any expression referring to the variable, to which a value

     can be assigned. Such expressions are called the address ones.

The prefix indicates the type of expression. For example, ie indicates any integer expression. All the possible prefixes are as follows:

i - the integer number or symbol

a - the arithmetic expression (the integer number, symbol or

        floating-point number)

f - the function

Note. If the expression contains several operands, then each operand must use a different number, for example: ae1 + ae2.


Operation Execution Priorities and Order

Priorities are the same for each group of operations listed in the table below. The higher the priority of operation, the higher is its place in the table.

If there are no brackets and the operations are related to the same group, then the order of execution determines the operation and operand grouping (from left to right or from right to left).

Examples

The expression of a * b / c is equivalent to the expression of (a * b) / c,

as the operations are executed from left to right.

The expression of a = b = c is equivalent to the expression of a = (b = c),

as the operation is executed from right to left.

[]   Array element selection

!    Logical negation                  From right to left (RL)

~    Bit-by-bit negation

-    Sign change

++   Increasing by one

--   Decreasing by one

(type) Type conversion

sizeof Determining of size in bytes

*    Multiplication                        LR

/    Division

%    Modulus division

+    Addition                              LR

-    Subtraction

<<   Left shift                            LR

Right shift

<    Less than                             LR

<=   Less than or equal to

>    Larger than

>=   Larger than or equal to

==   Equal to                              LR

!=   Not equal to

&    Bit-by-bit AND operation              LR

^    Bit-by-bit exclusive OR operation     LR

|    Bit-by-bit OR operation               LR

&&   Logical AND operation                 LR

||   Logical OR operation                  LR

= Assigning                             RL

*=  /=  %=  +=  -=

<<=  >>=  &=  ^=  |=


Operations and Expressions

Expressions

An expression consists of one or more operands and operation symbols.

Examples:

a++

b = 10

x = (y * z) / w

Note. Any expression ending with semi is the operator.

Operand Metadesignation

Arithmetic Operations

Assignment Operations

Relation Operations

Logical Operations

Bit Operations

Array Operations

Other Operations

Operation Execution Priorities and Order

Operand Execution Order

Arithmetic Conversions in Expressions


Operator-expression

Any expression, which ends with the semicolon (;), is the operator. Refer to the following examples of operators-expressions.

Assignment operator

Identifier = expression;

Example:

Function call operator

Function_name (argument1,..., argumentN);

Example:

  fclose(file);

Empty operator

Consists only of semicolon (;).


Operator Break

Syntax:

break;

Stops execution of the nearest nested external operator switch, while, do, or for. Control is transferred to the operator following the operator being completed. One purpose of this operator is to complete the cycle, when specific value is assigned to the variable.

Example:

     for (i = 0; i < n; i++)

       if (a[i] == 0)

          break;


Operator Continue

Syntax:

continue;

Transfers control to the beginning of the nearest external operator of the cycle while, do, or for, which starts the next iteration. This effects produced by this operator are opposite to those of the break operator.

Example:

for (i = 0; i < n; i++)

{

  if (a[i] == 0) continue;

  a[i] = b[i];

}


Operator Goto

Syntax:

goto label;

Control is unconditionally transferred to the operator with the label "label". It is used to exit from the nested control operators. The scope of the label is limited within the current function.

Example:

goto next;


Operator label

Operator label

The label can be placed before any operator, which makes it possible to go to this operator with the help of the "goto" operator.

A label consists of an identifier followed by the colon (:). The definition domain of the label is the specified function.

Example:

next: x = 3;


Operator Return

Operator Return

Syntax:

return;

Stops execution of the current function and returns control to the function that called it.

expression return;

Stops execution of the current function and returns control to the program that called it, together with the expression value.

Example:

return x + y;


Operators

Operators

Format and nesting

Operator label

Composite operator

Operator-expression

Operator Break

Operator Continue

Operator Return

Operator Goto

Conditional Operator If-Else

Operator Switch

Cycle Operator While

Cycle Operator Do-While

Cycle Operator For


Operator Switch

Syntax:

switch (expression)

{

case constant: operators

case constant: operators

...

default: operators

}

Compares the expression value with the constants to all case variants and transfers control to the operator matching the expression value.

Each case variant can be marked with the integer or character constant.

Examples:

Right: case 3:

Wrong: case X + 2:

Operators associated with the default label will be executed, if neither of the constants in the case operators is equal to the expression value.

The default variant should not necessarily be the last one.

If neither of the constants is equal to the expression value and there is no default variant, then no actions are carried out. The "case" keyword along with the constant serve only as the labels, and if the operators are executed for a case variant, then the operators of all the following variants will be executed until the break operator is encountered. This allows you to relate one operator sequence to several variants.

Neither of two switch operator constants can assume the same value.

Example:

switch (x)

  case 'A':

       printf("CASE A\n");

       break;

  case 'A':

  case 'C':

       printf("CASE B or C\n");

       break;

  default:

       printf("NOT A, B or C\n");

       break;

}


Other Operations

sizeof Usage: sizeof(e)

    The number of bytes required for allocation of e-type data. If e

    describes the array, then e means the whole array, and not only the

    address of the first element, as in other operations.

(type) Usage: (type)e

    The value of e is converted into the data type.

    Example:

      x = (float)n / 3;

      The integer value of the variable n is transformed into

      the floating-point number before dividing by 3.

()    Usage: fe(e1, e2,..., eN)

    The fe function is called with the arguments e1, e2,..., eN.

    order from

    Example:

      x = sqrt(y);


Other Various Functions

delay

gettime

getdate

difftime

atof

atoi

itoa

ltoa

ultoa

rand

random

randomize

srand

strtol

strtoul


Predefined Symbols in the Script File Compilation

The compiler automatically defines these symbols, as if they were defined by the #define directive.

Symbols that define the microcontroller family

One of the following symbols is defined:

__ARM    - for the ARM debuggers

- for the MCS-51 debuggers;

__MCS_96 - for the MCS-96 debuggers;

__PIC   - for the Microchip PIC debuggers.


printf Conversion Type Characters

printf Conversion Type Characters

The information in this table is based on the assumption that no flag characters, width specifiers, precision specifiers, or input-size modifiers were included in the format specifier.

Note. Certain accompany some of these format specifiers.

Type Char | Expected Input | Format of output
Numerics |  |
d | Integer | signedinteger
i | Integer | signed decimal integer
o | Integer | unsigned octal integer
u | Integer | unsigned decimal integer
x | Integer | unsigned hexadecimal int (with a, b, c, d, e, f).
X | Integer | unsigned hexadecimal int (with A, B, C, D, E, F).
f | Floating-point | signed value of the form [-]dddd.dddd.
e | Floating-point | signed value of the form [-]d.dddd or [+/-]ddd
g | Floating-point | signed value in either ef form, based on given value and precision. Trailing zeros and the decimal point are printed if necessary.
E | Floating-point | Same as e; with E for exponent.
G | Floating-point | Same as g; with E for exponent if e format used.
Characters |  |
c | Character | Single character.
s | String pointer |
% | None | Prints the % character.

Infinite floating-point numbers are printed as +INF and -INF.

An IEEE Not-A-Number is printed as +NAN or -NAN.


printf Flag Characters

printf Flag Characters

The Flag characters can appear in any order and combination.

Flag

Description

-

Left-justifies the result, pads on the right with blanks. If not given, it right-justifies the result, pads on the left with zeros or blanks.

+

Signed conversion results always begin with a plus (+) or minus (-) sign.

blank

If value is nonnegative, the output begins with a blank instead of a plus; negative values still begin with a minus.

#

Specifies that arg is to be converted using an alternate form.

Note. Plus (+) takes precedence over blank () if both are given


printf Format Specifier Conventions

Certain conventions accompany some of the printf format specifiers for the following conversions:

- %e or %E

- %f

- %g or %G

- %x or %X

Note. Infinite floating-point numbers are printed as +INF and -INF. An IEEE Not-a-Number is printed as +NAN or -NAN.


printf Format Specifiers

The printf format specifiers have the following form:

% [flags] [width] [.prec] [F|N|h|l|L] type_char

Each format specifier begins with the percent character (%). After the % come the following optional specifiers, in this order:

Optional Format String Components

These are the general aspects of output formatting controlled by the optional characters, specifiers, and modifiers in the format string:

Component | Optional/Required |
[flags] | (Optional) | Flag character(s) Output justification, numeric signs, decimal points, trailing zeros, octal and hex prefixes.
[width] | (Optional) | Width specifier Minimum number of characters to print, padding with blanks or zeros.
 | (Optional) | Precision specifier Maximum number of characters to print; for integers, minimum number of digits to print.
[F|N|h|l|L] | (Optional) | Input size modifier Override default size of next input argument:H = short int L = long L = long double
type_char | (Required) | Conversion-type character.


printf Format String

The format string shall be present in each of the printf function calls. It controls how each function will convert, format, and print its arguments. The format string is a character string that contains two types of objects:

•

Plain characters are copied verbatim to the output stream.

•

Conversion specifications fetch arguments from the argument list and apply formatting to them.

Plain characters are just copied verbatim to the output stream. Conversion specifications fetch arguments from the argument list and apply formatting to them.

Note. There must be enough arguments for the format; if not, the results will be unpredictable and possibly disastrous. Excess arguments (more than required by the format) are ignored.


printf Input-size Modifiers

These modifiers determine how printf functions interpret the next input argument, arg[f].

Modifier | Type of arg | arg is interpreted as ...
F | p, s, | A far pointer
N | and n) | A near pointer (Note. N cannot be used with any conversion in the huge model.)
h | d i o u x X | A short int
l | d i o u x X | A long int
 | e E f g G | A double
L | e E f g G | A long double

arg.

Both F and N reinterpret the input variable arg. Normally, the arg for a p, %s, or n conversion is a pointer of the default size for the memory model.

h, l, and L override the default size of the numeric data input arguments. Neither h nor l affects character (c,s) or pointer () types.


printf Precision Specifiers

The printf precision specifiers set the maximum number of characters (or minimum number of integer digits) to print. A printf precision specification always begins with a period (".") to separate it from any preceding width specifier.

Then, like the width specifier, precision is specified in one of two ways:

•

directly, through a decimal digit string;

•

indirectly, through an asterisk (*).

If you use an * for the precision specifier, the next argument in the call (treated as an int) specifies the precision.

If you use asterisks for the width or the precision, or for both, the width argument must immediately follow the specifiers, followed by the precision argument, then the argument for the data to be converted.

[.prec]

How Output Precision Is Affected

(none)

Precision set to default:

= 1 for d,i,,u,x,X types;

= 6 for e,E,f types;

= All significant digits for g,G types;

= Print to first null character for s types;

= No effect on types.

.0

For d,i,o,u,x types, precision set to default.

for e,E,f types, no decimal point is printed.

.n

n characters or n decimal places are printed.

If the output value has more than n characters, the output might be truncated or rounded. (Whether this happens depends on the type character.)

.

The argument list supplies the precision specifier, which must precede the actual argument being formatted.

No numeric characters will be output for a field (i.e., the field will be blank) if the following conditions are all met:

•

you specify an explicit precision of 0;

•

the format specifier for the field is one of the integer formats (d, i, o, u, or x);

•

the value to be printed is 0

How [.prec] Affects Conversion

Char Type

Effect of [.prec] (.n) on Conversion

d

Specifies that at least n digits are printed.

i

n digits,

o

output value is left-padded x with zeros.

u

If input argument has more than n digits,

x

the output value is not truncated.

e

Specifies that n characters are

E

printed after the decimal point, and

f

the last digit printed is rounded.

g

Specifies that at most n significant

G

digits are printed.

c

Has no effect on the output.

s

Specifies that no more than n characters are printed.


printf Width Specifiers

The width specifier sets the minimum field width for an output value. Width is specified in one of two ways:

•

directly, through a decimal digit string;

•

indirectly, through an asterisk (*).

If you use an asterisk for the width specifier, the next argument in the call (which must be an int) specifies the minimum output field width.

Nonexistent or small field widths do cause truncation of a field. If the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.

Width specifier

How output width is affected

n

At least n characters are printed. If the output value has less than n characters, the output is padded with blanks (right-padded if - flag given, left-padded otherwise).

0n

At least n characters are printed. If the output value has less than n characters, it is filled on the left with zeros.

*

The argument list supplies the width specifier, which must precede the actual argument being formatted.


ProgOptionDefault

void ProgOptionDefault(char option_name[]);

Description

Set the programming option named option_name to the default value.


Real-time mode

Real-time mode

To start the user program for execution, use the Debug menu commands.


ReloadProgram

void ReloadProgram();

Description

To reload the file that was the last to be loaded to the buffer. This is equivalent to "Re-Load" in the File menu.


Çàðåçèðâèðîâàííûå ñëîâà

Зарезирвированные слова

break        extern     return

case         float      short

char         for        sizeof

continue     goto       switch

default      if         unsigned

do           int        void

else         long       while


SaveData

void SaveData(unsigned char file_name[], int format, int addr_space, unsigned long start_addr, unsigned long end_addr);

Description

To save memory area from buffer{buffer} in the file.

Parameters:

  file_name - Name of unloaded file.

  format    - Format of unloaded file. Character constants with

               the  prefix  F_ declared in the mprog.h header file

               are provided for this parameter.  To understand  this  better,

               open the Save Program Dialog  and go through

               format names.

  addr_space - address space{addr_sp} where data is unloaded from.

  start_addr - Initial address of unloaded area.

  end_addr   - Final address of unloaded area (inclusive).

Example

SaveData("C:\\PROG\\TEST.HEX", F_HEX, SubLevel(0, 0), 0, 0x3FFF);


Script File Manipulation Functions

ExecScript

GetScriptFileName

TerminateScript

TerminateAllScripts

exit

Debug


SetByte

void SetByte(unsigned long addr, int addr_space, unsigned int value);

Description

To write value (byte) to a specified memory area{addr_sp} (parameter addr_space) at a specified address.

Description

SetByte(0x2000, SubLevel(0, 1), 0xFF);


SetDevice

int SetDevice(char manufacturer[], char name[]);

Description

Set device type. The manufacturer parameter is the device manufacturer name, name is the device name.

Returned value

TRUE if the device is successfully selected, FALSE if it is not found.

Example

SetDevice("Altera", "EP910");


SetDword

void SetDword(unsigned long addr, int addr_space, unsigned long value);

Description

To write a double word (32 bits) to a specified memory area{addr_sp} (parameter addr_space) at a specified address.

Example

SetDword(0x2000, 0, 0x12345678);


SetMemory

void SetMemory(void src[], int n, unsigned long addr, int addr_space);

Description

To write n-byte memory block to a specified memory area{addr_sp} (parameter addr_space) at a specified address from the array src.

Example

SetMemory("12345678", 8, 0x20, 0);


SetProgOption

void SetProgOption(char option_name[], char option_string[]);

Description

Set value for the programming option. The programming options are listed in the lower right corner of the Program window.

Parameters:

option_name - option name, e.g. "Vpp".

option_string - option value as character string. Options can be of several types (certain option type can be determined by hitting the "Edit" button in the Program window).

• floating point numbers, for example, programming voltage. For such options, the option_string parameter should represent a floating point number, for example, "12.3".

• integer numbers. The option_string parameter should represent an integer value, for example, "215".

• "menu" type options. In these cases, the option_string parameter should be a menu item string, for example, "Disabled". Menu can be observed by hitting the "Edit" button in the Program window).

• character strings, for example, "Copyright".

• check boxes option. Check boxes option is a list of options; each of them can be checked or unchecked. To specify a value for a check box option, append an '=' sign to the option name followed with 0 or 1. For example, to set up the CPD memory protection bit of PIC18F8720 chip, write

SetProgOption("Memory protection", "CPD=1");

Examples

  SetProgOption("Vpp", "12.5");

  SetProgOption("PWRT", "Disabled");

See also examples that come with the ChipProg package.


SetWord

void SetWord(unsigned long addr, int addr_space, unsigned int value);

Description

To write a word (16 bits) to a specified memory area{addr_sp} (parameter addr_space) at a specified address.

Example

SetWord(0x2000, 0, 0xFFFF);


Single-step high-level mode

Single-step high-level mode

In this mode, the CodeMaster executes one high-level language operator in the user's program. This mode is supported by the CodeMaster hardware and is similar to running the user program in the real-time mode with the breakpoints set up on each operator in the user program (in fact, on the address, from which the program code that corresponds to the operator, begins). This mode is available only if the loaded program is prepared for the source–level debugging


Single-step low-level mode

Single-step low-level mode

In this mode, the CodeMaster executes one MCU instruction and stops.


Stream file functions

Stream file functions

clearerr

fclose

fdopen

feof

ferror

fflush

fgetc

fgets

fileno

fopen

fprintf

fputc

fputs

fread

freopen

fscanf

fseek

ftell

fwrite

getc

getw

putc

putw

rewind


Ñòðîêîâûå Êîíñòàíòû

Строковые Константы

Строковая константа представляется последовательностью символов кода ASCII, заключенной в кавычки: "...".

Строковая константа - это массив символов, заключенный в кавычки; она имеет тип char[].

В конце каждой строки компилятор помещает нулевой символ ' \0', отмечающий конец данной строки.

Если необходимо ввести в строку символ кавычек ("), то перед ним надо поставить символ обратной косой (\). В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ \.

Символ может быть также представлен его шестнадцатиричным значением, предваренным символами ' \x' и содержащим ровно две шестнадцатиричных цифры.

Строковые константы, непосредственно следующие друг за другом, воспринимаются как одна строковая константа. Это удобно для переноса части константы на другую строку, например:

printf("Line 1\n"
"Line 2");

Примеры:

"This is а character string"
"A"
"1234567890\x33"
"_____________"
""


String is not closed with zero byte

String is not closed with zero byte

The string operation functions detected that the parameter (string) is not closed with zero byte. Example:

char s[] = {'1', '2', '3' };

char s1[10];

strcpy(s1, s);

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


String operation functions

Functions for string operation receive arrays as parameters. Functions of the memxxxx type can use arrays of any type; other functions use the char arrays.

The script file language does not support pointers, that is why all string operation functions include the index, desr_index, and scr_index parameters to specify the initial shift in the array. The default value of these parameters is 0. These parameters are not considered in the following line function descriptions.

Note once again that arrays are transferred "by pointer", that is, the array itself is transferred and not its copy.

memccpy

memcpy

memmove

movmem

memchr

memset

setmem

memcmp

memicmp

stpcpy

strcat

strchr

strcmp

stricmp

strcmpi

strcspn

strcpy

strlen

strlwr

strupr

strncat

strncmp

strncmpi

strnicmp

strncpy

strnset

strpbrk

strspn

strstr

strrchr

strrev

strset


Symbol '<name>' cannot be modifed

Some of the script language built-in variables are read-only.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Symbol '<name>' is of non-scalar type

Symbol '<name>' is of non-scalar type

You can access the variables of the loaded program from the script file source using the '$' method only if this variable is not an array, structure, etc. Only variables of types like 'char', 'int', etc. are accessible with this method.

For complex cases, use the Expr, AddrExpr, FloatExpr functions.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Text editor functions

Text editor functions

The text editor functions manipulate with text in the Source You can start the script files with the custom hot keys (for more about this, see ).

All text editor functions assume that the text editor window is active, when function is called, so they do not receive the window handle as a parameter unlike other functions that manipulate windows in CodeMaster.

The CodeMaster package includes several examples of script files performing useful commands. The sources are located in the KEYCMD sub-directory.

Note that line and column numbers begin from 1.

GotoXY

Up

Down

Left

Right

Tof

Eof

Eol

BackSpace

Cr

DelLine

DelChar

CurChar

GetLine

ForwardTill

ForwardTillNot

_GetWord

WordLeft

WordRight

FirstWord

SetMark

GetMark

Text

BlockBegin

BlockEnd

BlockOff

BlockCopy

BlockFastCopy

BlockDelete

BlockMove

BlockPaste

Search

SearchReplace

SetFileName

GetFileName

SaveFile

FileChanged

OpenEditorWindow

Text editor built-in variables

InsertMode

CaseSensitive

WholeWords

RegularExpressions

BlockCol1

BlockCol2

BlockLine1

BlockLine2

BlockStatus

CurLine

CurCol

LastFoundString


Too long file name

Too long file name

A function for file and directory operation got the invalid (too long) file name.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Too short array

The GetMemory or SetMemory function detected that data will not fit into the destination array.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Too short array (<n>), at least <m> elements required

The built-in script language function detected that the destination array has not enough elements to keep the result. Example:

strcpy(s, "123456");

will cause this error.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Unable to find function '<name>'

API or CallLibraryFunction function could not find the specified function name in the "USER", "KERNEL" and "GDI" modules or (in case of CallLibraryFunction) in the DLL, whose instance was passed as the parameter.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Unable to find suitable editor window

The text editor functions could not find any suitable Source window: either no Source window was opened or more than one was opened, but neither was active.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Unable to open project file: <name>

LoadProject function could not open the specified project file.

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Unable to open window of type <n>

The OpenWindow function could not open the window of specified type. Make sure the window type is valid.

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


Unknown pseudo-code instruction: <value>

Internal script file execution error. Please contact Technical Support (see contact information).


Variable _fmode

Variable _fmode

Declaration:

extern int _fmode;

This is the file operation mode (text or binary).


Variable ApplName

Variable ApplName

Declaration:

extern char ApplName[];

This is the program name, i.e. the string of "CM-ARM".

Available only for reading.


Variable BlockCol1

Variable BlockCol1

Declaration:

int BlockCol1;

This is the number of the left column of block in the current window. BlockCol1 is zero for the line blocks. If no block is marked, BlockCol1 will also be zero.

Also, see Text Editor Functions.


Variable BlockCol2

Variable BlockCol2

Declaration:

int BlockCol2;

This is the number of the right column of block in the current Source . BlockCol2 is zero for the line blocks. If no block is marked, BlockCol2 will also be zero.

Also, see Text Editor Functions


Variable BlockLine1

Variable BlockLine1

Declaration:

int BlockLine1;

This is the number of the upper line of block in the current Source.

If no block is marked, BlockCol2 will be zero.

Also, see Text Editor Functions


Variable BlockLine2

Variable BlockLine2

Declaration:

int BlockLine2;

This is the number of the lower line of block in the current Source

If no block is marked, BlockCol2 will be zero.

Also, see Text Editor Functions


Variable BlockStatus

Variable BlockStatus

Declaration:

int BlockStatus;

This is the type of block in the current Source The system.h system header file contains definitions of constants:

    EB_NONE    - no block

    EB_LINE    - line block

    EB_VERT    - vertical block

    EB_STREAM  - stream block

Also, see Text Editor Functions.


Variable CaseSensitive

Variable CaseSensitive

Declaration:

int CaseSensitive;

Source

Also, see Text Editor Functions.


Variable CurCol

Variable CurCol

Declaration:

int CurCol;

This is the number of the current column (the column the cursor is in) in the current Source. Columns are numbered with 1.

If the cursor is beyond the line end, then CurCol will contain 0.

Assigning a value to CurCol changes the cursor position. Also, see functions GotoXY, Up, Down, Left Right, Tof, Eof Eol.


Variable CurLine

Variable CurLine

Declaration:

int CurLine;

Source. Lines are numbered with 1.

Assigning a value to CurLine changes the cursor position. Also, see functions GotoXY, Up, Down, , Right, Tof, Eof, Eol.


Variable Demo

Variable Demo

Declaration:

extern int Demo;

When the selected CodeMaster debuger is a hardware emulator (see variable Hardware) and if CodeMaster is running in the demonstration mode (without the emulator hardware), then Demo will be 1.


Variable DesktopName

Variable DesktopName

Declaration:

extern char DesktopName[];

This string is the name of the current screen configuration file (see Configuration Files).

Available only for reading.


Variable errno

Variable errno

Declaration:

extern int errno;

This is the error code set up by some built-in functions such as read.


Variable Frequency

Variable Frequency

Declaration:

extern unsigned long Frequency;

This is the microcontroller clock generator frequency in Hz.


Variable Hardware

Variable Hardware

Declaration:

extern int Hardware;

This flag is useful for supporting the script file transferability. It is one, when the selected CodeMaster debuger is a hardware emulator emulator, and zero, when the selected CodeMaster debuger is the simulator.


Variable Initialization

Any variable, except for formal parameters, can be initialized upon definition.

Any permanent variable is initialized with 0, unless other initial value is explicitly defined.

Any expression can be used as the initial value.

Basic types

Examples:

int i = 1 + j;

float x = sin(_PI / 2);

Arrays

Examples:

int a[] = {1,4,9,16,25,36};

char s[20] = { 'a', 'b', 8 };

The values of array elements are listed in curly brackets.

If an array size is defined, then the values, which are not explicitly defined, will be equal to 0.

If an array size is omitted, then it will be determined by the amount of initial values.

Strings

Example:

char s[] = "hello";

This description is equivalent to the description of

char s[] = {'h','e','l','l','o','\0'};


Variable InsertMode

Variable InsertMode

Declaration:

int InsertMode;

This is the insert mode for the current Source . Assigning a value to InsertMode toggles the insert mode for the window.

Also, see Text Editor Functions.


Variable LastFoundString

Variable LastFoundString

Declaration:

char LastFoundString[];

This is the string with the text that was last found in the current Source . Because the search argument may contain regular expretion, the string found may not be the same as the search argument.

Also, see Text Editor Functions.


Variable LastMemAccAddr

Variable LastMemAccAddr

Declaration:

extern unsigned long LastMemAccAddr;

This is the microcontroller memory address accessed at the last return from the WaitMemoryAccess function.


Variable LastMemAccAddrSpace

Variable LastMemAccAddrSpace

Declaration:

extern unsigned int LastMemAccAddrSpace;

This is the type of microcontroller address space accessed at the last return from the WaitMemoryAccess function


Variable LastMemAccLen

Variable LastMemAccLen

Declaration:

extern int LastMemAccLen;

WaitMemoryAccess function.


Variable LastMemAccType

Variable LastMemAccType

Declaration:

extern int LastMemAccType;

This is the microcontroller memory access type that caused a return from the WaitMemoryAccess function. For example, MA_READ, MA_WRITE or a combination of them.


Variable LastMessageInt

Declaration:

unsigned int LastMessageInt;

LastMessageInt keeps the 16-bit parameter received by the WaitGetMessage function.


Variable LastMessageLong

Variable LastMessageLong

Declaration:

unsigned long LastMessageLong;

LastMessageInt keeps the 32-bit parameter received by the WaitGetMessage function.


Variable MainWindowHandle

Variable MainWindowHandle

Declaration:

extern unsigned long MainWindowHandle;

This is HWND of the main window of CodeMaster. It is only for experienced programmers.


Variable NumWindows

Variable NumWindows

Declaration:

extern int NumWindows;

This is the number of windows opened in CodeMaster. Its value changes dynamically, as windows are opened or closed.


Variable RegularExpressions

Variable RegularExpressions

Declaration:

int RegularExpressions;

Sets up the use of regular expretions for the operation of search in the current Source .

Also, see Text Editor Functions.


Variable SelectedString

Variable SelectedString

extern char SelectedString[];

This is the string selected from the menu at the last call of the built-in ExecMenu function.


Variable SystemDir

Declaration:

extern char SystemDir[];

This string is the name of the directory, where the CodeMaster package is installed.

Available only for reading.


Variable TimeCounter

Variable TimeCounter

Declaration:

This is the current value of the CodeMaster's time counter in microseconds.

TimeCounter can be used for calculating the time difference between events.

Also, see ResetTimeCounter.


Variable WholeWords

Variable WholeWords

Declaration:

Sets up the whole words option for the operation of search in the current Source.

Also, see Text Editor Functions.


Variable WindowHandles

Variable WindowHandles

Declaration:

extern unsigned long WindowHandles[];

This is the listing of the CodeMaster window handles organized as an array of the NumWindows size. It is only for experienced programmers.


Variable WorkFieldHeight

Variable WorkFieldHeight

Declaration:

extern unsigned int WorkFieldHeight;

This is the height of the CodeMaster window user area in pixels. It may be useful for locating windows from script files.

Available only for reading.


Variable WorkFieldWidth

Variable WorkFieldWidth

Declaration:

extern unsigned int WorkFieldWidth;

This is the width of the CodeMaster window user area in pixels. It may be useful for locating windows from script files.

Available only for reading.


'WindowHandles' cannot be passed as a parameter

The WindowHandles built-in variable cannot be passed as a parameter to function.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables


Windows operation functions and other system functions

Attention! Only the experienced programmers should use the Windows operation functions. These functions provide advanced capabilities, but when used incorrectly, they may hang the operating system.

API

LoadLibrary

FreeLibrary

WaitSendMessage

WaitGetMessage

inport

inportb

outport

outportb

peek

peekb

poke

pokeb

InitCOM

SendCOM

ReceiveCOM

StatusCOM

exec

getenv

putenv


Window with handle <handle> not found

The debug shell control functions detected the invalid handle of CodeMaster window. The window may have been closed.

Also, see:

Script Language Built-in Functions

Script Language Built-in Variables

Script File Run-time Errors


%x or %X Conversions

%x or %X Conversions

For x conversions, the letters a, b, c, d, e, and f appear in the output.

For X conversions, the letters A, B, C, D, E, and F appear in the output.