Середовище програмування MADL

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Середовище програмування MADL » В розробці » MD01. Вступ.


MD01. Вступ.

Сообщений 1 страница 10 из 10

1

УВАГА! Даний опис орієнтований не тільки для користувачів, але і для себе коханого, :-) тому не дивуйтесь можливим дивинам у цьому описі.:-)

Наприкінці кожної процедури є {CodeProc=<число>}, число означає код процедури. Якщо в кінці коду встановлено " # " , тобто {CodeProc=<число>#} це означає, що процедурі можливі помилки компіляції.

Примітка.
Всі описані процедури та функції повинні виконуватись після INITCompiler та до функції FINALCompiler;

Підрозділи даної теми:
Типи які використовуються в MADL (MD01)

Список усіх процедур та їх кодів, які використовуються в MADL (MD01)

Типи процедур MADL (MD01)

Тип1. Основні процедури (функції) компілятора

Тип2. Процедури успішної компіляції

Тип3. Процедури невдалої компіляції

Тип4. Процедури встановлення ім'я програми та файлу

Тип5. Процедури TLabelLV.

Модулі MD01, які повинні підключатись до проекту

Дивіться також:
     MADL2023     MD00
MD01. Процедури мнемонікою АСМ (КР580) в MADL
MD01. Процедури мнемонікою MADL в MADL
MD01. Процедури, функції їх коди та їх опис
МD01. Помилки компіляції
Навігатор форуму

2

Типи які використовуються в MADL (MD01):

Код:
TYPE
{MD00}
String6=string[6];
String255=string[255];

{MD01}
TLabelLV=record
IDCode,IDXorCode:Cardinal; {IDCode - основний (загальний) id}{ IDXorCode - xor основний (загальний) id підстрахування, щоб не ініціалізувати id}
IDCodeMD03:Cardinal;{Код встановлений з MD03}
Used:Boolean;{використовується в командах, True - ТАК}
Marked:Boolean;{Була розмічена LABELA, LABELP1,LABELP2 і т.д. , True - ТАК}
AddrOfMark:Cardinal;// адреса якщо маркована, тобто Marked=True}

 RNDSessionName:Cardinal;
 PosBaseName:Cardinal; // якщо RNDSessionName:=uMD01_Label.RNDsession тоді ім'я встановлено
    Name:string255;{Ім'я мітки}
    NameStrUpCase:string255;{Ім'я мітки в StrUpCase}

RNDSessionComment:Cardinal;
PosBaseComment:Cardinal; // якщо RNDSessionName:=uMD01_Label.RNDsession тоді коментар встановлено
Comment:string255;{Коментар мітки}
end;

3

Список усіх процедур та їх кодів, які використовуються в MADL (MD01)
{MD00}

1.SetAddrRAM   2.DB   3.StartProgram   6.Rem   7.SetNameInternal   8.FillChar

9.ComA   10.ComB   11.ComC   12.FillDB  13.SetFullNameLVTfile   14.SetfSaveLVT

15.SetfSE   16.SetCLU   17.SetfCLU   18.SetfSEi   19.SetNameInternalKOI

20.SetFileOutError   21.SetErrorCLU   22.SetfError   23.SetfErrorfCLU   24.SetfErrorTXTinFile

28.FillDW   29.DW   32.FillDD   33.DD   34.FillDQ   35.DQ   37.DString255   38.SetAddrRAM2

39.SetFileOutReportMD00   40.SetReportMD00TXTinFile

{MD01}

41.INITCompiler 42.FINALCompiler   CLEAR

43.InitLabelLV   44.LabelA   45.Labelp1   46.Labelp2

47.SetNameLabelLV   48.SetCommentLabelLV   49.SetFileOutReportMD01

50.SetReportMD01TXTinFile   51.Clabel   52.Labelp   53,Labelm   54.LabelAadr

55.Abslt   56.SetIDMD03

4

5

Тип1. Основні процедури (функції) компілятора.
Ці процедури (функції) напряму впливають на компіляцію кода КР580 або ж є обов'язковими (такі як 4.INITCompiler , 5.FINALCompiler ) виключенням є тільки  6.Rem, яка не є обов'язковою та не впливає на компіляцію кода КР580.

До типу 1 належать такі процедури (функції):

{MD00}
1.SetAddrRAM   2.DB   3.StartProgram   6.Rem   8.FillChar   9.ComA   10.ComB   11.ComC

12.FillDB   28.FillDW   29.DW   32.FillDD   33.DD   34.FillDQ   35.DQ   37.DString255

38.SetAddrRAM2

{MD01}

6

Тип2. Процедури успішної компіляції.
Процедури, які визначають подальший хід компілятора після успішної компіляції. Ці процедури не впливають на компіляцію самого кода КР580, а лише визначають хід компілятора після успішної компіляції. Вони визначають чи потрібно створювати  LVT-файл, його ім'я, чи потрібен запуск емулятора  та якого саме (внутрішнього чи зовнішнього чи то вказаного користувачем), також процедурами можна задавати “рядок користувача2, необхідності звіту компіляції, ім'я файлу звіту і т.д.

До типу 2 належать такі процедури (функції):

{MD00}

14.SetfSaveLVT   15.SetfSE   16.SetCLU   17.SetfCLU   18.SetfSEi

39.SetFileOutReportMD00   40.SetReportMD00TXTinFile

{MD01}

7

Тип3. Процедури невдалої компіляції.
Процедури, які визначають подальший хід компілятора у разі невдалої компіляції. Ці процедури не впливають  на компіляцію самого кода КР580, а лише визначають хід компілятора у разі невдалої компіляції. Вони включають або виключають виведення помилок у файл, задають ім'я файлу для виведення помилок, встановлюють  переглядач який використовується для переглядання помилок і т.д.

До типу 3 належать такі процедури (функції):

{MD00}

20.SetFileOutError  21.SetErrorCLU   22.SetfError   23.SetfErrorfCLU   24.SetfErrorTXTinFile

8

Тип4. Процедури встановлення ім'я програми та файлу.
Процедури, які встановлюють “внутрішнє” та зовнішнє  ім'я программи. Ці процедури не впливають  на компіляцію самого кода КР580.

До типу 4 належать такі процедури (функції):

{MD00}

7.SetNameInternal   13.SetFullNameLVTfile   19.SetNameInternalKOI

9

Тип5. Процедури TLabelLV.
Процедури, по обробці міток TLabelLV.
Цей тип, якщо можна так вимовитись, "базується" на Тип1. Основні процедури (функції) компілятора, тобто використовує його процедури і звісно ж впливає на компіляцію кода КР580.

До типу 5 належать такі процедури (функції):

{MD01}

CLEAR   43.InitLabelLV   44.LabelA   45.Labelp1   46.Labelp2   47.SetNameLabelLV

48.SetCommentLabelLV   51.Clabel   52.Labelp   53.Labelm   54.LabelAadr   55.Abslt

56.SetIDMD03

10

Модулі MD01, які повинні підключатись до проекту.

В MADL-MD01 до проекту повинні бути під'єднані модулі MADL-MD00, -
uMD00_AnsiToKOI,  uMD00_SStr, uMD00_LVT,   uMD00_Report,   uMD00_Error,
uMD00_Main,  uMD00u,
Рекомендовано в тієї ж послідовності як написано вище. В усякому разі модуль
uMD00u, повинен бути завершуваним у списку.
Також повинні бути під'єднані модулі MADL-MD01, -   uMD01_Types,  uMD01_Error,
uMD01_Label,  uMD01_Report,  uMD01_Main,  uMD01u;
Рекомендовано в тієї ж послідовності як написано вище. В усякому разі модуль
uMD01u, повинен бути завершуваним у списку.

В цілому шаблон для написання програми в MADL-MD01, виглядає ось так.

Код:
program Project1;
uses
   uMD00_AnsiToKOI in '..\..\_UNIT\uMD00_AnsiToKOI.pas',
  uMD00_SStr in '..\..\_UNIT\uMD00_SStr.pas',
  uMD00_LVT in '..\..\_UNIT\uMD00_LVT.pas',
  uMD00_Report in '..\..\_UNIT\uMD00_Report.pas',
  uMD00_Error in '..\..\_UNIT\uMD00_Error.pas',
  uMD00_Main in '..\..\_UNIT\uMD00_Main.pas',
  uMD00u in '..\..\_UNIT\uMD00u.pas',

  uMD01_Types in '..\..\_UNIT\uMD01_Types.pas',
  uMD01_Error in '..\..\_UNIT\uMD01_Error.pas',
  uMD01_Label in '..\..\_UNIT\uMD01_Label.pas',
  uMD01_Report in '..\..\_UNIT\uMD01_Report.pas',
  uMD01_Main in '..\..\_UNIT\uMD01_Main.pas',
  uMD01u in '..\..\_UNIT\uMD01u.pas';

BEGIN
INITCompiler; {Обов'язкова процедура}
{.....}
StartProgram; {Обов'язкова процедура, яка вказує на стартову точку в програмі}
{.....}
FINALCompiler;{Обов'язкова процедура}
END.

Примітка.
Прописаний шлях до модулів MADL-MD01  залежить від розташування програми та
модулів. В даному прикладі, розташування модулів, знаходиться
C:\MADL2023\_UNIT\ , а розташування програми в C:\MADL2023\ProgramA\Proba.
Цей спосіб підключення модулів є повним і працює, як з середовища так і з
командної строки!

Є короткий спосіб  підключення модулів:

Код:
program Project1;
uses
  uMD00u in '..\..\_UNIT\uMD00u.pas',
  uMD01u in '..\..\_UNIT\uMD01u.pas';
BEGIN
INITCompiler; {Обов'язкова процедура}
{.....}
StartProgram; {Обов'язкова процедура, яка вказує на стартову точку в програмі}
{.....}
FINALCompiler;{Обов'язкова процедура}
END.

Якщо використовувати короткий спосіб, то він працюватиме лише з командної
строки, в якій повинно бути прописаний шлях до модулів  MADL-MD01, ось так
“-U..\..\_UNIT\”.
Приклад: CompileRUN_Project.DPR.bat

Код:
del Project1.exe, Project.exe, Project.TMP
C:\DelphiCompilers\D07compilerMY\dcc32.exe -UC:\DelphiCompilers\D07compilerMY\ -U..\..\_UNIT\  Project1.DPR
Project1.exe

звісно це все працює при умові, що розташування модулів, знаходиться
C:\MADL2023\_UNIT\ , а розташування програми в C:\MADL2023\ProgramA\Proba.

Для того щоб коротким способом підключати модулі та користуватись з
середовища, є спосіб описаний ось тут,  - 
_MADL2023\_MADL2023a\MADL2023doc\DelphiCompilers\Readme.txt
або ось тут: Компілятори для MADL
, треба налаштувати Project\Options...” (Shift+Ctrl+F11) і т.д.
Але відразу ж скажу, що наприклад я не прихильник цього способу,
саме мені він точно не підходить, так як є не зручним для розробки MADL
та інших проектів одночасно.


Вы здесь » Середовище програмування MADL » В розробці » MD01. Вступ.