Rev 7209 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7209 | Rev 7597 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | Êîìïèëÿòîð ÿçûêà ïðîãðàììèðîâàíèÿ Oberon-07/11 äëÿ i386 |
1 | Êîìïèëÿòîð ÿçûêà ïðîãðàììèðîâàíèÿ Oberon-07/16 äëÿ i486 |
2 | Windows/Linux/KolibriOS. |
2 | Windows/Linux/KolibriOS. |
3 | ------------------------------------------------------------------------------ |
3 | ------------------------------------------------------------------------------ |
Line 4... | Line 4... | ||
4 | 4 | ||
Line 5... | Line -... | ||
5 | Ñîñòàâ ïðîãðàììû |
- | |
6 | 5 | Ïàðàìåòðû êîìàíäíîé ñòðîêè |
|
7 | 1. Compiler.kex (KolibriOS) - èñïîëíÿåìûé ôàéë êîìïèëÿòîðà. |
6 | |
8 | Âõîä - òåêñòîâûå ôàéëû ìîäóëåé ñ ðàñøèðåíèåì ".ob07", êîäèðîâêà ANSI |
7 | Âõîä - òåêñòîâûå ôàéëû ìîäóëåé ñ ðàñøèðåíèåì ".ob07", êîäèðîâêà ANSI èëè |
9 | èëè UTF-8 ñ BOM-ñèãíàòóðîé. |
8 | UTF-8 ñ BOM-ñèãíàòóðîé. |
10 | Âûõîä - èñïîëíÿåìûé ôàéë ôîðìàòà PE, ELF èëè MENUET01/MS COFF. |
9 | Âûõîä - èñïîíÿåìûé ôàéë ôîðìàòà PE32, ELF èëè MENUET01/MSCOFF. |
- | 10 | Ïàðàìåòðû: |
|
11 | Ïàðàìåòðû: |
11 | 1) èìÿ ãëàâíîãî ìîäóëÿ |
12 | 1) èìÿ ãëàâíîãî ìîäóëÿ |
12 | 2) èìÿ ðåçóëüòèðóþùåãî ôàéëà |
13 | 2) òèï ïðèëîæåíèÿ è ïëàòôîðìà |
13 | 3) òèï ïðèëîæåíèÿ è ïëàòôîðìà |
14 | "con" - Windows console |
14 | "console" - Windows console |
15 | "gui" - Windows GUI |
- | |
16 | "dll" - Windows DLL |
15 | "gui" - Windows GUI |
17 | "elf" - Linux |
16 | "dll" - Windows DLL |
- | 17 | "kos" - KolibriOS |
|
18 | "kos" - KolibriOS |
18 | "obj" - KolibriOS DLL |
19 | "obj" - KolibriOS DLL |
19 | "elfexe" - Linux ELF-EXEC |
20 | "kem" - KolibriOS ñ àäðåñîì çàãðóçêè 0x10000 äëÿ âîçìîæíîãî |
20 | 4) íåîáÿçàòåëüíûå ïàðàìåòðû-êëþ÷è |
- | 21 | -stk |
|
21 | èñïîëíåíèÿ â ýìóëÿòîðå |
22 | -base àäðåñ çàãðóçêè èñïîëíÿåìîãî ôàéëà â êèëîáàéòàõ |
- | 23 | -ver |
|
22 | 3) ðàçìåð ñòýêà â ìåãàáàéòàõ, íåîáÿçàòåëüíûé ïàðàìåòð, ïî óìîë÷àíèþ - |
24 | -nochk <"ptibcwra"> îòêëþ÷èòü ïðîâåðêè ïðè âûïîëíåíèè (ñì. íèæå) |
- | 25 | ||
- | 26 | ïàðàìåòð -nochk çàäàåòñÿ â âèäå ñòðîêè èç ñèìâîëîâ: |
|
- | 27 | "p" - óêàçàòåëè |
|
- | 28 | "t" - òèïû |
|
- | 29 | "i" - èíäåêñû |
|
23 | 1 Ìá, äëÿ ELF èãíîðèðóåòñÿ. Åñëè 2-é ïàðàìåòð = "obj" (KolibriOS DLL), |
30 | "b" - íåÿâíîå ïðèâåäåíèå INTEGER ê BYTE |
24 | òî 3-é ïàðàìåòð çàäàåòñÿ øåñòíàäöàòèðè÷íûì ÷èñëîì |
31 | "c" - äèàïàçîí àðãóìåíòà ôóíêöèè CHR |
- | 32 | "w" - äèàïàçîí àðãóìåíòà ôóíêöèè WCHR |
|
- | 33 | "r" - ýêâèâàëåíòíî "bcw" |
|
- | 34 | "a" - âñå ïðîâåðêè |
|
- | 35 | ||
- | 36 | Ïîðÿäîê ñèìâîëîâ ìîæåò áûòü ëþáûì. Íàëè÷èå â ñòðîêå òîãî èëè èíîãî |
|
- | 37 | ñèìâîëà îòêëþ÷àåò ñîîòâåòñòâóþùóþ ïðîâåðêó. |
|
- | 38 | ||
- | 39 | Íàïðèìåð: -nochk it - îòêëþ÷èòü ïðîâåðêó èíäåêñîâ è îõðàíó òèïà. |
|
25 | (0x00000001 .. 0xffffffff) è îïðåäåëÿåò âåðñèþ ïðîãðàììû, |
40 | -nochk a - îòêëþ÷èòü âñå îòêëþ÷àåìûå ïðîâåðêè. |
- | 41 | ||
- | 42 | Íàïðèìåð: |
|
26 | ïî óìîë÷àíèþ - 0x00010000 (v1.0). |
43 | |
27 | Íàïðèìåð: |
44 | Compiler.exe "C:\example.ob07" "C:\example.exe" console -stk 1 |
- | 45 | Compiler.exe "C:\example.ob07" "C:\example.dll" dll |
|
- | 46 | Compiler.exe "C:\example.ob07" "C:\example.exe" gui -stk 4 |
|
- | 47 | Compiler.exe "C:\example.ob07" "C:\example.exe" console -nochk pti |
|
- | 48 | Compiler.kex "/tmp0/1/example.ob07" "/tmp0/1/example.kex" kos -stk 2 |
|
- | 49 | Compiler.kex "/tmp0/1/example.ob07" "/tmp0/1/example.obj" obj -ver 2.7 |
|
28 | "C:\oberon-07\example.ob07" con 1 |
50 | Compiler.exe "C:\example.ob07" "C:\example" elfexe |
29 | "C:\oberon-07\example.ob07" obj 0x00020005 (* v2.5 *) |
51 | |
30 |  ñëó÷àå óñïåøíîé êîìïèëÿöèè, êîìïèëÿòîð ïåðåäàåò êîä çàâåðøåíèÿ 0, |
- | |
31 | èíà÷å 1. Ïðè ðàáîòå êîìïèëÿòîðà â KolibriOS, êîä çàâåðøåíèÿ íå |
- | |
32 | ïåðåäàåòñÿ. Ñîîáùåíèÿ êîìïèëÿòîðà âûâîäÿòñÿ íà êîíñîëü (Windows, |
- | |
Line 33... | Line 52... | ||
33 | KolibriOS), â òåðìèíàë (Linux). |
52 |  ñëó÷àå óñïåøíîé êîìïèëÿöèè, êîìïèëÿòîð ïåðåäàåò êîä çàâåðøåíèÿ 0, èíà÷å 1. |
34 | 2. Ïàïêà Lib - áèáëèîòåêà ìîäóëåé |
53 | Ïðè ðàáîòå êîìïèëÿòîðà â KolibriOS, êîä çàâåðøåíèÿ íå ïåðåäàåòñÿ. |
Line 35... | Line 54... | ||
35 | 54 | ||
36 | ------------------------------------------------------------------------------ |
55 | ------------------------------------------------------------------------------ |
37 | Îòëè÷èÿ îò îðèãèíàëà |
56 | Îòëè÷èÿ îò îðèãèíàëà |
38 | 57 | ||
39 | 1. Ðàñøèðåí ïñåâäîìîäóëü SYSTEM |
58 | 1. Ðàñøèðåí ïñåâäîìîäóëü SYSTEM |
40 | 2. Ðàçðåøåí ñèìâîë "_" â èäåíòèôèêàòîðàõ |
59 | 2. Â èäåíòèôèêàòîðàõ äîïóñêàåòñÿ ñèìâîë "_" |
41 | 3. Äîáàâëåíû ñèñòåìíûå ôëàãè |
60 | 3. Äîáàâëåíû ñèñòåìíûå ôëàãè |
42 | 4. Îïåðàòîð CASE ðåàëèçîâàí â ñîîòâåòñòâèè ñ ñèíòàêñèñîì è ñåìàíòèêîé |
61 | 4. Óñîâåðøåíñòâîâàí îïåðàòîð CASE (äîáàâëåíû êîíñòàíòíûå âûðàæåíèÿ â |
43 | äàííîãî îïåðàòîðà â ÿçûêå Oberon (Revision 1.10.90) |
62 | ìåòêàõ âàðèàíòîâ è íåîáÿçàòåëüíàÿ âåòêà ELSE) |
- | 63 | 5. Ðàñøèðåí íàáîð ñòàíäàðòíûõ ïðîöåäóð |
|
44 | 5. Ðàñøèðåí íàáîð ñòàíäàðòíûõ ïðîöåäóð |
64 | 6. Ñåìàíòèêà îõðàíû/ïðîâåðêè òèïà óòî÷íåíà äëÿ íóëåâîãî óêàçàòåëÿ |
45 | 6. Ñåìàíòèêà îõðàíû/ïðîâåðêè òèïà óòî÷íåíà äëÿ íóëåâîãî óêàçàòåëÿ |
65 | 7. Ñåìàíòèêà DIV è MOD óòî÷íåíà äëÿ îòðèöàòåëüíûõ ÷èñåë |
46 | 7. Ñåìàíòèêà DIV è MOD óòî÷íåíà äëÿ îòðèöàòåëüíûõ ÷èñåë |
66 | 8. Äîáàâëåíû îäíîñòðî÷íûå êîììåíòàðèè (íà÷èíàþòñÿ ñ ïàðû ñèìâîëîâ "//") |
Line 47... | Line 67... | ||
47 | 8. Äîáàâëåíû îäíîñòðî÷íûå êîììåíòàðèè (íà÷èíàþòñÿ ñ ïàðû ñèìâîëîâ "//") |
67 | 9. Ðàçðåøåíî íàñëåäîâàíèå îò òèïà-óêàçàòåëÿ |
48 | 9. Ðàçðåøåí ýêñïîðò ïåðåìåííûõ òèïîâ ARRAY è RECORD (òîëüêî äëÿ ÷òåíèÿ) |
68 | 10. Äîáàâëåí ñèíòàêñèñ äëÿ èìïîðòà ïðîöåäóð èç âíåøíèõ áèáëèîòåê |
Line 49... | Line 69... | ||
49 | 10. Ðàçðåøåíî íàñëåäîâàíèå îò òèïà-óêàçàòåëÿ |
69 | 11. "Ñòðîêè" ìîæíî çàêëþ÷àòü òàêæå â îäèíî÷íûå êàâû÷êè: 'ñòðîêà' |
Line 50... | Line 70... | ||
50 | 11. Äîáàâëåíû ïñåâäîíèìû òèïîâ (TYPE A = B) |
70 | 12. Äîáàâëåí òèï WCHAR |
Line 51... | Line 71... | ||
51 | 71 | ||
52 | ------------------------------------------------------------------------------ |
- | |
53 | Îñîáåííîñòè ðåàëèçàöèè |
72 | ------------------------------------------------------------------------------ |
54 | 73 | Îñîáåííîñòè ðåàëèçàöèè |
|
55 | 1. Îñíîâíûå òèïû |
74 | |
56 | 75 | 1. Îñíîâíûå òèïû |
|
- | 76 | ||
- | 77 | Òèï Äèàïàçîí çíà÷åíèé Ðàçìåð, áàéò |
|
Line 57... | Line 78... | ||
57 | Òèï Äèàïàçîí çíà÷åíèé Ðàçìåð, áàéò |
78 | |
58 | 79 | INTEGER -2147483648 .. 2147483647 4 |
|
59 | INTEGER -2147483648 .. 2147483647 4 |
- | |
60 | REAL 1.40E-45 .. 3.34E+38 4 |
80 | REAL 4.94E-324 .. 1.70E+308 8 |
61 | LONGREAL 4.94E-324 .. 1.70E+308 8 |
- | |
62 | CHAR ñèìâîë ASCII (0X .. 0FFX) 1 |
81 | CHAR ñèìâîë ASCII (0X .. 0FFX) 1 |
63 | BOOLEAN FALSE, TRUE 1 |
82 | BOOLEAN FALSE, TRUE 1 |
64 | SET ìíîæåñòâî èç öåëûõ ÷èñåë {0 .. 31} 4 |
83 | SET ìíîæåñòâî èç öåëûõ ÷èñåë {0 .. 31} 4 |
65 | 84 | BYTE 0 .. 255 1 |
|
- | 85 | WCHAR ñèìâîë þíèêîäà (0X .. 0FFFFX) 2 |
|
- | 86 | ||
- | 87 | 2. Ìàêñèìàëüíàÿ äëèíà èäåíòèôèêàòîðîâ - 1024 ñèìâîëîâ |
|
- | 88 | 3. Ìàêñèìàëüíàÿ äëèíà ñòðîêîâûõ êîíñòàíò - 1024 ñèìâîëîâ (UTF-8) |
|
- | 89 | 4. Ìàêñèìàëüíàÿ ðàçìåðíîñòü îòêðûòûõ ìàññèâîâ - 5 |
|
- | 90 | 5. Ïðîöåäóðà NEW çàïîëíÿåò íóëÿìè âûäåëåííûé áëîê ïàìÿòè |
|
- | 91 | 6. Ãëîáàëüíûå è ëîêàëüíûå ïåðåìåííûå èíèöèàëèçèðóþòñÿ íóëÿìè |
|
- | 92 | 7.  îòëè÷èå îò ìíîãèõ Oberon-ðåàëèçàöèé, ñáîðùèê ìóñîðà è äèíàìè÷åñêàÿ |
|
- | 93 | ìîäóëüíîñòü îòñóòñòâóþò |
|
- | 94 | 8. Òèï BYTE â âûðàæåíèÿõ âñåãäà ïðèâîäèòñÿ ê INTEGER |
|
- | 95 | 9. Êîíòðîëü ïåðåïîëíåíèÿ çíà÷åíèé âûðàæåíèé íå ïðîèçâîäèòñÿ |
|
- | 96 | 10. Îøèáêè âðåìåíè âûïîëíåíèÿ: |
|
- | 97 | ||
- | 98 | - ASSERT(x), ïðè x = FALSE |
|
- | 99 | - ðàçûìåíîâàíèå íóëåâîãî óêàçàòåëÿ |
|
Line 66... | Line 100... | ||
66 | 2. Ìàêñèìàëüíàÿ äëèíà èäåíòèôèêàòîðîâ - 255 ñèìâîëîâ |
100 | - öåëî÷èñëåííîå äåëåíèå íà 0 |
67 | 3. Ìàêñèìàëüíàÿ äëèíà ñòðîêîâûõ êîíñòàíò - 255 ñèìâîëîâ |
101 | - âûçîâ ïðîöåäóðû ÷åðåç ïðîöåäóðíóþ ïåðåìåííóþ ñ íóëåâûì çíà÷åíèåì |
Line 68... | Line 102... | ||
68 | 4. Ìàêñèìàëüíàÿ äëèíà ñòðîê èñõîäíîãî êîäà - 511 ñèìâîëîâ |
102 | - îøèáêà îõðàíû òèïà |
69 | 5. Ìàêñèìàëüíàÿ ðàçìåðíîñòü îòêðûòûõ ìàññèâîâ - 5 |
103 | - íàðóøåíèå ãðàíèö ìàññèâà |
70 | 6. Ìàêñèìàëüíîå êîëè÷åñòâî îáúÿâëåííûõ òèïîâ-çàïèñåé - 2047 |
104 | - íåïðåäóñìîòðåííîå çíà÷åíèå âûðàæåíèÿ â îïåðàòîðå CASE |
Line 71... | Line 105... | ||
71 | 7. Ïðîöåäóðà NEW çàïîëíÿåò íóëÿìè âûäåëåííûé áëîê ïàìÿòè |
105 | - îøèáêà êîïèðîâàíèÿ ìàññèâîâ v := x, åñëè LEN(v) < LEN(x) |
72 | 8. Ãëîáàëüíûå è ëîêàëüíûå ïåðåìåííûå èíèöèàëèçèðóþòñÿ íóëÿìè |
106 | - íåÿâíîå ïðèâåäåíèå x:INTEGER ê v:BYTE, åñëè (x < 0) OR (x > 255) |
73 | 9.  îòëè÷èå îò ìíîãèõ Oberon-ðåàëèçàöèé, ñáîðùèê ìóñîðà è äèíàìè÷åñêàÿ |
107 | - CHR(x), åñëè (x < 0) OR (x > 255) |
Line -... | Line 108... | ||
- | 108 | - WCHR(x), åñëè (x < 0) OR (x > 65535) |
|
- | 109 | ||
- | 110 | ------------------------------------------------------------------------------ |
|
- | 111 | Ïñåâäîìîäóëü SYSTEM |
|
- | 112 | ||
- | 113 | Ïñåâäîìîäóëü SYSTEM ñîäåðæèò íèçêîóðîâíåâûå è íåáåçîïàñíûå ïðîöåäóðû, |
|
74 | ìîäóëüíîñòü îòñóòñòâóþò |
114 | îøèáêè ïðè èñïîëüçîâàíèè ïðîöåäóð ïñåâäîìîäóëÿ SYSTEM ìîãóò ïðèâåñòè ê |
75 | 115 | ïîâðåæäåíèþ äàííûõ âðåìåíè âûïîëíåíèÿ è àâàðèéíîìó çàâåðøåíèþ ïðîãðàììû. |
|
Line 76... | Line 116... | ||
76 | ------------------------------------------------------------------------------ |
116 | |
77 | Ïñåâäîìîäóëü SYSTEM |
117 | PROCEDURE ADR(v: ëþáîé òèï): INTEGER |
78 | 118 | v - ïåðåìåííàÿ èëè ïðîöåäóðà; |
|
Line 79... | Line 119... | ||
79 | Ïñåâäîìîäóëü SYSTEM ñîäåðæèò íèçêîóðîâíåâûå è íåáåçîïàñíûå ïðîöåäóðû, |
119 | âîçâðàùàåò àäðåñ v |
80 | îøèáêè ïðè èñïîëüçîâàíèè ïðîöåäóð ïñåâäîìîäóëÿ SYSTEM ìîãóò ïðèâåñòè ê |
- | |
81 | ïîâðåæäåíèþ äàííûõ âðåìåíè âûïîëíåíèÿ è àâàðèéíîìó çàâåðøåíèþ ïðîãðàììû. |
120 | |
Line 82... | Line 121... | ||
82 | 121 | PROCEDURE SADR(x: ñòðîêîâàÿ êîíñòàíòà (CHAR UTF-8)): INTEGER |
|
83 | PROCEDURE ADR(v: ëþáîé òèï): INTEGER |
122 | âîçâðàùàåò àäðåñ x |
84 | v - ïåðåìåííàÿ, ïðîöåäóðà èëè ñòðîêîâàÿ êîíñòàíòà; |
123 | |
Line 85... | Line 124... | ||
85 | âîçâðàùàåò àäðåñ v |
124 | PROCEDURE WSADR(x: ñòðîêîâàÿ êîíñòàíòà (WCHAR)): INTEGER |
86 | 125 | âîçâðàùàåò àäðåñ x |
|
- | 126 | ||
- | 127 | PROCEDURE SIZE(T): INTEGER |
|
- | 128 | âîçâðàùàåò ðàçìåð òèïà T |
|
- | 129 | ||
- | 130 | PROCEDURE TYPEID(T): INTEGER |
|
- | 131 | T - òèï-çàïèñü èëè òèï-óêàçàòåëü, |
|
- | 132 | âîçâðàùàåò íîìåð òèïà â òàáëèöå òèïîâ-çàïèñåé |
|
- | 133 | ||
- | 134 | PROCEDURE INF(): REAL |
|
Line 87... | Line 135... | ||
87 | PROCEDURE SIZE(T): INTEGER |
135 | âîçâðàùàåò ñïåöèàëüíîå âåùåñòâåííîå çíà÷åíèå "áåñêîíå÷íîñòü" |
88 | âîçâðàùàåò ðàçìåð òèïà T |
136 | |
89 | 137 | PROCEDURE GET(a: INTEGER; |
|
Line 90... | Line 138... | ||
90 | PROCEDURE TYPEID(T): INTEGER |
138 | VAR v: ëþáîé îñíîâíîé òèï, PROCEDURE, POINTER) |
91 | T - òèï-çàïèñü èëè òèï-óêàçàòåëü, |
139 | v := Ïàìÿòü[a] |
92 | âîçâðàùàåò íîìåð òèïà â òàáëèöå òèïîâ-çàïèñåé |
140 | |
93 | 141 | PROCEDURE PUT(a: INTEGER; x: ëþáîé îñíîâíîé òèï, PROCEDURE, POINTER) |
|
Line 94... | Line 142... | ||
94 | PROCEDURE INF(T): T |
142 | Ïàìÿòü[a] := x; |
95 | T - REAL èëè LONGREAL, |
143 | Åñëè x: BYTE èëè x: WCHAR, òî çíà÷åíèå x áóäåò ðàñøèðåíî |
96 | âîçâðàùàåò ñïåöèàëüíîå âåùåñòâåííîå çíà÷åíèå "áåñêîíå÷íîñòü" |
144 | äî 32 áèò, äëÿ çàïèñè áàéòîâ èñïîëüçîâàòü SYSTEM.PUT8, |
97 | 145 | äëÿ WCHAR -- SYSTEM.PUT16 |
|
98 | PROCEDURE GET(a: INTEGER; |
146 | |
Line 99... | Line 147... | ||
99 | VAR v: ëþáîé îñíîâíîé òèï, PROCEDURE, POINTER) |
147 | PROCEDURE PUT8(a: INTEGER; x: INTEGER, BYTE, CHAR, WCHAR) |
100 | v := Ïàìÿòü[a] |
148 | Ïàìÿòü[a] := ìëàäøèå 8 áèò (x) |
101 | 149 | ||
102 | PROCEDURE PUT(a: INTEGER; x: ëþáîé îñíîâíîé òèï, PROCEDURE, POINTER) |
150 | PROCEDURE PUT16(a: INTEGER; x: INTEGER, BYTE, CHAR, WCHAR) |
Line 140... | Line 188... | ||
140 | 188 | ||
141 | ------------------------------------------------------------------------------ |
189 | ------------------------------------------------------------------------------ |
Line 142... | Line 190... | ||
142 | Ñèñòåìíûå ôëàãè |
190 | Ñèñòåìíûå ôëàãè |
143 | 191 | ||
144 | Ïðè îáúÿâëåíèè ïðîöåäóðíûõ òèïîâ è ãëîáàëüíûõ ïðîöåäóð, ïîñëå êëþ÷åâîãî |
192 | Ïðè îáúÿâëåíèè ïðîöåäóðíûõ òèïîâ è ãëîáàëüíûõ ïðîöåäóð, ïîñëå êëþ÷åâîãî |
Line 145... | Line 193... | ||
145 | ñëîâà PROCEDURE ìîæåò áûòü óêàçàí ôëàã ñîãëàøåíèÿ âûçîâà: [stdcall], [cdecl] |
193 | ñëîâà PROCEDURE ìîæåò áûòü óêàçàí ôëàã ñîãëàøåíèÿ î âûçîâå: [stdcall], |
- | 194 | [ccall], [ccall16], [windows], [linux]. Íàïðèìåð: |
|
- | 195 | ||
- | 196 | PROCEDURE [ccall] MyProc (x, y, z: INTEGER): INTEGER; |
|
- | 197 | ||
- | 198 | Åñëè óêàçàí ôëàã [ccall16], òî ïðèíèìàåòñÿ ñîãëàøåíèå ccall, íî ïåðåä |
|
- | 199 | âûçîâîì óêàçàòåëü ñòýêà áóäåò âûðàâíåí ïî ãðàíèöå 16 áàéò. |
|
Line 146... | Line -... | ||
146 | èëè [winapi]. Íàïðèìåð: |
- | |
147 | - | ||
148 | PROCEDURE [cdecl] MyProc(x, y, z: INTEGER): INTEGER; |
- | |
149 | 200 | Ôëàã [windows] - ñèíîíèì äëÿ [stdcall], [linux] - ñèíîíèì äëÿ [ccall16]. |
|
150 | Åñëè óêàçàí ôëàã [winapi], òî ïðèíèìàåòñÿ ñîãëàøåíèå stdcall è |
201 | Çíàê "-" ïîñëå èìåíè ôëàãà ([stdcall-], [linux-], ...) îçíà÷àåò, ÷òî |
151 | ïðîöåäóðó-ôóíêöèþ ìîæíî âûçâàòü êàê ñîáñòâåííî ïðîöåäóðó, âíå âûðàæåíèÿ. |
- | |
152 | Ôëàã [winapi] äîñòóïåí òîëüêî äëÿ ïëàòôîðìû Windows. |
- | |
153 | Ïðè îáúÿâëåíèè òèïîâ-çàïèñåé, ïîñëå êëþ÷åâîãî ñëîâà RECORD ìîæåò áûòü |
- | |
154 | óêàçàí ôëàã [noalign] èëè [union]. Ôëàã [noalign] îçíà÷àåò îòñóòñòâèå |
202 | ðåçóëüòàò ïðîöåäóðû ìîæíî èãíîðèðîâàòü (íå äîïóñêàåòñÿ äëÿ òèïà REAL). |
155 | âûðàâíèâàíèÿ ïîëåé çàïèñè, à ôëàã [union] îçíà÷àåò, ÷òî ñìåùåíèÿ âñåõ ïîëåé |
203 | |
156 | çàïèñè ðàâíû íóëþ, ïðè ýòîì ðàçìåð çàïèñè ðàâåí ðàçìåðó íàèáîëüøåãî ïîëÿ. |
204 | Ïðè îáúÿâëåíèè òèïîâ-çàïèñåé, ïîñëå êëþ÷åâîãî ñëîâà RECORD ìîæåò áûòü |
Line 157... | Line 205... | ||
157 | Çàïèñè RECORD [union] ... END ñîîòâåòñòâóþò îáúåäèíåíèÿì (union) â ÿçûêå C. |
205 | óêàçàí ôëàã [noalign]. Ôëàã [noalign] îçíà÷àåò îòñóòñòâèå âûðàâíèâàíèÿ ïîëåé |
158 | Çàïèñè ñ ñèñòåìíûìè ôëàãàìè íå ìîãóò èìåòü áàçîâîãî òèïà è íå ìîãóò áûòü |
206 | çàïèñè. Çàïèñè ñ ñèñòåìíûì ôëàãîì íå ìîãóò èìåòü áàçîâûé òèï è íå ìîãóò áûòü |
Line 180... | Line 228... | ||
180 | ELSE |
228 | ELSE |
181 | DoSomething4 |
229 | DoSomething4 |
182 | END |
230 | END |
Line 183... | Line 231... | ||
183 | 231 | ||
184 | Â ìåòêàõ âàðèàíòîâ ìîæíî èñïîëüçîâàòü êîíñòàíòíûå âûðàæåíèÿ, âåòêà ELSE |
232 | Â ìåòêàõ âàðèàíòîâ ìîæíî èñïîëüçîâàòü êîíñòàíòíûå âûðàæåíèÿ, âåòêà ELSE |
185 | íåîáÿçàòåëüíà. Åñëè íå âûïîëíåí íè îäèí âàðèàíò è ELSE îòñóòñòâóåò, òî |
233 | íåîáÿçàòåëüíà. Åñëè çíà÷åíèå x íå ñîîòâåòñòâóåò íè îäíîìó âàðèàíòó è ELSE |
- | 234 | îòñóòñòâóåò, òî ïðîãðàììà ïðåðûâàåòñÿ ñ îøèáêîé âðåìåíè âûïîëíåíèÿ. |
|
- | 235 | ||
- | 236 | ------------------------------------------------------------------------------ |
|
- | 237 | Òèï WCHAR |
|
- | 238 | ||
- | 239 | Òèï WCHAR äîáàâëåí â ÿçûê äëÿ óäîáíîé ïîääåæêè þíèêîäà. Äëÿ òèïîâ WCHAR è |
|
- | 240 | ARRAY OF WCHAR äîïóñêàþòñÿ âñå òå æå îïåðàöèè, êàê äëÿ òèïîâ CHAR è |
|
- | 241 | ARRAY OF CHAR, çà èñêëþ÷åíèåì âñòðîåííîé ïðîöåäóðû CHR, êîòîðàÿ âîçâðàùàåò |
|
- | 242 | òîëüêî òèï CHAR. Äëÿ ïîëó÷åíèÿ çíà÷åíèÿ òèïà WCHAR, ñëåäóåò èñïîëüçîâàòü |
|
- | 243 | ïðîöåäóðó WCHR âìåñòî CHR. Äëÿ ïðàâèëüíîé ðàáîòû ñ òèïîì, íåîáõîäèìî ñîõðàíÿòü |
|
Line 186... | Line 244... | ||
186 | ïðîãðàììà ïðåðûâàåòñÿ ñ îøèáêîé âðåìåíè âûïîëíåíèÿ. |
244 | èñõîäíûé êîä â êîäèðîâêå UTF-8 c BOM. |
187 | 245 | ||
Line 188... | Line 246... | ||
188 | ------------------------------------------------------------------------------ |
246 | ------------------------------------------------------------------------------ |
Line 201... | Line 259... | ||
201 | DISPOSE(VAR v: ëþáîé_óêàçàòåëü) |
259 | DISPOSE (VAR v: ëþáîé_óêàçàòåëü) |
202 | Îñâîáîæäàåò ïàìÿòü, âûäåëåííóþ ïðîöåäóðîé NEW äëÿ |
260 | Îñâîáîæäàåò ïàìÿòü, âûäåëåííóþ ïðîöåäóðîé NEW äëÿ |
203 | äèíàìè÷åñêîé ïåðåìåííîé v^, è ïðèñâàèâàåò ïåðåìåííîé v |
261 | äèíàìè÷åñêîé ïåðåìåííîé v^, è ïðèñâàèâàåò ïåðåìåííîé v |
204 | çíà÷åíèå NIL. |
262 | çíà÷åíèå NIL. |
Line -... | Line 263... | ||
- | 263 | ||
- | 264 | COPY (x: ARRAY OF CHAR/WCHAR; VAR v: ARRAY OF CHAR/WCHAR); |
|
- | 265 | v := x; |
|
- | 266 | Åñëè LEN(v) < LEN(x), òî ñòðîêà x áóäåò ñêîïèðîâàíà |
|
- | 267 | íå ïîëíîñòüþ |
|
205 | 268 | ||
206 | LSR(x, n: INTEGER): INTEGER |
269 | LSR (x, n: INTEGER): INTEGER |
Line 207... | Line 270... | ||
207 | Ëîãè÷åñêèé ñäâèã x íà n áèò âïðàâî. |
270 | Ëîãè÷åñêèé ñäâèã x íà n áèò âïðàâî. |
208 | 271 | ||
Line 214... | Line 277... | ||
214 | 277 | ||
215 | BITS(x: INTEGER): SET |
278 | BITS (x: INTEGER): SET |
216 | Èíòåðïðåòèðóåò x êàê çíà÷åíèå òèïà SET. |
279 | Èíòåðïðåòèðóåò x êàê çíà÷åíèå òèïà SET. |
Line 217... | Line 280... | ||
217 | Âûïîëíÿåòñÿ íà ýòàïå êîìïèëÿöèè. |
280 | Âûïîëíÿåòñÿ íà ýòàïå êîìïèëÿöèè. |
218 | 281 | ||
219 | LENGTH(s: ARRAY OF CHAR): INTEGER |
282 | LENGTH (s: ARRAY OF CHAR/WCHAR): INTEGER |
- | 283 | Äëèíà 0X-çàâåðøåííîé ñòðîêè s, áåç ó÷åòà ñèìâîëà 0X. |
|
- | 284 | Åñëè ñèìâîë 0X îòñóòñòâóåò, ôóíêöèÿ âîçâðàùàåò äëèíó |
|
220 | Äëèíà 0X-çàâåðøåííîé ñòðîêè s, áåç ó÷åòà ñèìâîëà 0X. |
285 | ìàññèâà s. s íå ìîæåò áûòü êîíñòàíòîé. |
- | 286 | ||
Line 221... | Line 287... | ||
221 | Åñëè ñèìâîë 0X îòñóòñòâóåò, ôóíêöèÿ âîçâðàùàåò äëèíó |
287 | WCHR (n: INTEGER): WCHAR |
222 | ìàññèâà s. |
288 | Ïðåîáðàçîâàíèå òèïà, àíàëîãè÷íî CHR(n: INTEGER): CHAR |
Line 223... | Line 289... | ||
223 | 289 | ||
Line 230... | Line 296... | ||
230 | -5 3 -2 1 |
296 | -5 3 -2 1 |
231 | 5 -3 -2 -1 |
297 | 5 -3 -2 -1 |
232 | -5 -3 1 -2 |
298 | -5 -3 1 -2 |
Line 233... | Line 299... | ||
233 | 299 | ||
- | 300 | ------------------------------------------------------------------------------ |
|
- | 301 | Èìïîðòèðîâàííûå ïðîöåäóðû |
|
- | 302 | ||
- | 303 | Ñèíòàêñèñ èìïîðòà: |
|
- | 304 | ||
- | 305 | PROCEDURE [callconv, "library", "function"] proc_name (FormalParam): Type; |
|
- | 306 | ||
- | 307 | - callconv -- ñîãëàøåíèå î âûçîâå |
|
- | 308 | - "library" -- èìÿ ôàéëà äèíàìè÷åñêîé áèáëèîòåêè |
|
- | 309 | - "function" -- èìÿ èìïîðòèðóåìîé ïðîöåäóðû |
|
- | 310 | ||
- | 311 | íàïðèìåð: |
|
- | 312 | ||
- | 313 | PROCEDURE [windows, "kernel32.dll", "ExitProcess"] exit (code: INTEGER); |
|
- | 314 | ||
- | 315 | PROCEDURE [stdcall, "Console.obj", "con_exit"] exit (bCloseWindow: BOOLEAN); |
|
- | 316 | ||
- | 317 | Â êîíöå îáúÿâëåíèÿ ìîæåò áûòü äîáàâëåíî (íåîáÿçàòåëüíî) "END proc_name;" |
|
- | 318 | ||
- | 319 | Îáúÿâëåíèÿ èìïîðòèðîâàííûõ ïðîöåäóð äîëæíû ðàñïîëàãàòüñÿ â ãëîáàëüíîé |
|
- | 320 | îáëàñòè âèäèìîñòè ìîäóëÿ ïîñëå îáúÿâëåíèÿ ïåðåìåííûõ, âìåñòå ñ îáúÿâëåíèåì |
|
- | 321 | "îáû÷íûõ" ïðîöåäóð, îò êîòîðûõ èìïîðòèðîâàííûå îòëè÷àþòñÿ òîëüêî îòñóòñòâèåì |
|
- | 322 | òåëà ïðîöåäóðû. Â îñòàëüíîì, ê òàêèì ïðîöåäóðàì ïðèìåíèìû òå æå ïðàâèëà: |
|
- | 323 | èõ ìîæíî âûçâàòü, ïðèñâîèòü ïðîöåäóðíîé ïåðåìåííîé èëè ïîëó÷èòü àäðåñ. |
|
- | 324 | ||
- | 325 | Òàê êàê èìïîðòèðîâàííàÿ ïðîöåäóðà âñåãäà èìååò ÿâíîå óêàçàíèå ñîãëàøåíèÿ î |
|
- | 326 | âûçîâå, òî ñîâìåñòèìûé ïðîöåäóðíûé òèï òîæå äîëæåí áûòü îáúÿâëåí ñ óêàçàíèåì |
|
- | 327 | ñîãëàøåíèÿ î âûçîâå: |
|
- | 328 | ||
- | 329 | VAR |
|
- | 330 | ExitProcess: PROCEDURE [windows] (code: INTEGER); |
|
- | 331 | con_exit: PROCEDURE [stdcall] (bCloseWindow: BOOLEAN); |
|
- | 332 | ||
- | 333 | Â KolibriOS èìïîðòèðîâàòü ïðîöåäóðû ìîæíî òîëüêî èç áèáëèîòåê, ðàçìåùåííûõ |
|
- | 334 | â /rd/1/lib. Èìïîðòèðîâàòü è âûçûâàòü ôóíêöèè èíèöèàëèçàöèè áèáëèîòåê |
|
- | 335 | (lib_init, START) ïðè ýòîì íå íóæíî. |
|
- | 336 | ||
- | 337 | Äëÿ Linux, èìïîðòèðîâàííûå ïðîöåäóðû íå ðåàëèçîâàíû. |
|
- | 338 | ||
234 | ------------------------------------------------------------------------------ |
339 | ------------------------------------------------------------------------------ |
Line 235... | Line 340... | ||
235 | Ñêðûòûå ïàðàìåòðû ïðîöåäóð |
340 | Ñêðûòûå ïàðàìåòðû ïðîöåäóð |
236 | 341 | ||
237 | Íåêîòîðûå ïðîöåäóðû ìîãóò èìåòü ñêðûòûå ïàðàìåòðû, îíè îòñóòñòâóþò â ñïèñêå |
342 | Íåêîòîðûå ïðîöåäóðû ìîãóò èìåòü ñêðûòûå ïàðàìåòðû, îíè îòñóòñòâóþò â ñïèñêå |
Line 238... | Line 343... | ||
238 | ôîðìàëüíûõ ïàðàìåòðîâ, íî ó÷èòûâàþòñÿ êîìïèëÿòîðîì ïðè òðàíñëÿöèè âûçîâîâ. |
343 | ôîðìàëüíûõ ïàðàìåòðîâ, íî ó÷èòûâàþòñÿ êîìïèëÿòîðîì ïðè òðàíñëÿöèè âûçîâîâ. |
239 | Ýòî âîçìîæíî â ñëåäóþùèõ ñëó÷àÿõ: |
344 | Ýòî âîçìîæíî â ñëåäóþùèõ ñëó÷àÿõ: |
240 | 345 | ||
241 | 1. Ïðîöåäóðà èìååò ôîðìàëüíûé ïàðàìåòð îòêðûòûé ìàññèâ: |
346 | 1. Ïðîöåäóðà èìååò ôîðìàëüíûé ïàðàìåòð îòêðûòûé ìàññèâ: |
242 | PROCEDURE Proc(x: ARRAY OF ARRAY OF LONGREAL); |
347 | PROCEDURE Proc (x: ARRAY OF ARRAY OF REAL); |
243 | Âûçîâ òðàíñëèðóåòñÿ òàê: |
348 | Âûçîâ òðàíñëèðóåòñÿ òàê: |
244 | Proc(SYSTEM.ADR(x), LEN(x), LEN(x[0]) |
349 | Proc(LEN(x), LEN(x[0]), SYSTEM.ADR(x)) |
245 | 2. Ïðîöåäóðà èìååò ôîðìàëüíûé ïàðàìåòð-ïåðåìåííóþ òèïà RECORD: |
350 | 2. Ïðîöåäóðà èìååò ôîðìàëüíûé ïàðàìåòð-ïåðåìåííóþ òèïà RECORD: |
246 | PROCEDURE Proc(VAR x: Rec); |
- | |
247 | Âûçîâ òðàíñëèðóåòñÿ òàê: |
- | |
248 | Proc(SYSTEM.TYPEID(Rec), SYSTEM.ADR(x)) |
- | |
249 | 3. Ïðîöåäóðà ÿâëÿåòñÿ âëîæåííîé, ãëóáèíà âëîæåíèÿ k, |
- | |
250 | äëÿ ãëîáàëüíûõ ïðîöåäóð k = 0: |
- | |
251 | PROCEDURE Proc(p1, ..., pn); |
- | |
252 | Âûçîâ òðàíñëèðóåòñÿ òàê: |
- | |
253 | Proc(base(k - 1), base(k - 2), ..., base(0), p1, ..., pn), |
- | |
Line 254... | Line 351... | ||
254 | ãäå base(m) - àäðåñ áàçû êàäðà ñòýêà îõâàòûâàþùåé ïðîöåäóðû ãëóáèíû |
351 | PROCEDURE Proc (VAR x: Rec); |
255 | âëîæåíèÿ m (èñïîëüçóåòñÿ äëÿ äîñòóïà ê ëîêàëüíûì ïåðåìåííûì |
352 | Âûçîâ òðàíñëèðóåòñÿ òàê: |
Line 256... | Line 353... | ||
256 | îõâàòûâàþùåé ïðîöåäóðû) |
353 | Proc(SYSTEM.TYPEID(Rec), SYSTEM.ADR(x)) |
257 | 354 | ||
258 | ------------------------------------------------------------------------------ |
355 | ------------------------------------------------------------------------------ |
259 | Ìîäóëü RTL |
356 | Ìîäóëü RTL |
- | 357 | ||
Line -... | Line 358... | ||
- | 358 | Âñå ïðîãðàììû íåÿâíî èñïîëüçóþò ìîäóëü RTL. Êîìïèëÿòîð òðàíñëèðóåò |
|
- | 359 | íåêîòîðûå îïåðàöèè (ïðîâåðêà è îõðàíà òèïà, ñðàâíåíèå ñòðîê, ñîîáùåíèÿ îá |
|
- | 360 | îøèáêàõ âðåìåíè âûïîëíåíèÿ è äð.) êàê âûçîâû ïðîöåäóð ýòîãî ìîäóëÿ. Íå |
|
260 | 361 | ñëåäóåò ÿâíî âûçûâàòü ýòè ïðîöåäóðû, çà èñêëþ÷åíèåì ïðîöåäóðû SetDll, |
|
- | 362 | åñëè ïðèëîæåíèå êîìïèëèðóåòñÿ êàê Windows DLL: |
|
- | 363 | ||
- | 364 | PROCEDURE SetDll |
|
- | 365 | (process_detach, thread_detach, thread_attach: DLL_ENTRY); |
|
- | 366 | ãäå TYPE DLL_ENTRY = |
|
- | 367 | PROCEDURE (hinstDLL, fdwReason, lpvReserved: INTEGER); |
|
Line 261... | Line -... | ||
261 | Âñå ïðîãðàììû íåÿâíî èñïîëüçóþò ìîäóëü RTL. Êîìïèëÿòîð òðàíñëèðóåò |
- | |
262 | íåêîòîðûå îïåðàöèè (ïðîâåðêà è îõðàíà òèïà, ñðàâíåíèå ñòðîê, ñîîáùåíèÿ îá |
- | |
263 | îøèáêàõ âðåìåíè âûïîëíåíèÿ è äð.) êàê âûçîâû ïðîöåäóð ýòîãî ìîäóëÿ. Íå |
368 | |
264 | ñëåäóåò ÿâíî âûçûâàòü ýòè ïðîöåäóðû, çà èñêëþ÷åíèåì ïðîöåäóðû SetClose: |
369 | SetDll íàçíà÷àåò ïðîöåäóðû process_detach, thread_detach, thread_attach |
265 | 370 | âûçûâàåìûìè ïðè |
|
266 | PROCEDURE SetClose(proc: PROC), ãäå TYPE PROC = PROCEDURE |
371 | - âûãðóçêå dll-áèáëèîòåêè (process_detach) |
Line 267... | Line 372... | ||
267 | 372 | - ñîçäàíèè íîâîãî ïîòîêà (thread_attach) |
|
268 | SetClose íàçíà÷àåò ïðîöåäóðó proc (áåç ïàðàìåòðîâ) âûçûâàåìîé ïðè âûãðóçêå |
373 | - óíè÷òîæåíèè ïîòîêà (thread_detach) |
Line 269... | Line 374... | ||
269 | dll-áèáëèîòåêè (Windows), åñëè ïðèëîæåíèå êîìïèëèðóåòñÿ êàê Windows DLL. Äëÿ |
374 | |
270 | ïðî÷èõ òèïîâ ïðèëîæåíèé è ïëàòôîðì âûçîâ ïðîöåäóðû SetClose íå âëèÿåò íà |
375 | Äëÿ ïðî÷èõ òèïîâ ïðèëîæåíèé, âûçîâ ïðîöåäóðû SetDll íå âëèÿåò íà |
271 | ïîâåäåíèå ïðîãðàììû. |
376 | ïîâåäåíèå ïðîãðàììû. |
Line 272... | Line 377... | ||
272 | Ñîîáùåíèÿ îá îøèáêàõ âðåìåíè âûïîëíåíèÿ âûâîäÿòñÿ â äèàëîãîâûõ îêíàõ |
377 | Ñîîáùåíèÿ îá îøèáêàõ âðåìåíè âûïîëíåíèÿ âûâîäÿòñÿ â äèàëîãîâûõ îêíàõ |
273 | (Windows), â òåðìèíàë (Linux), íà äîñêó îòëàäêè (KolibriOS). |
378 | (Windows), â òåðìèíàë (Linux), íà äîñêó îòëàäêè (KolibriOS). |
Line 274... | Line 379... | ||
274 | 379 | ||
Line 289... | Line 394... | ||
289 | 394 | ||
Line 290... | Line 395... | ||
290 | PROCEDURE [stdcall] lib_init(): INTEGER |
395 | PROCEDURE [stdcall] lib_init (): INTEGER |
291 | 396 | ||
292 | Ýòà ïðîöåäóðà äîëæíà áûòü âûçâàíà ïåðåä èñïîëüçîâàíèåì DLL. |
- | |
293 | Ïðîöåäóðà âñåãäà âîçâðàùàåò 1. |
- | |
294 | Â íàñòîÿùåå âðåìÿ ãåíåðàöèÿ DLL äëÿ Linux íå ðåàëèçîâàíà. |
- | |
295 | - | ||
296 | ============================================================================== |
- | |
297 | ============================================================================== |
- | |
298 | - | ||
299 | Áèáëèîòåêà (KolibriOS) |
- | |
300 | - | ||
301 | ------------------------------------------------------------------------------ |
- | |
302 | MODULE Out - êîíñîëüíûé âûâîä |
- | |
303 | - | ||
304 | PROCEDURE Open |
- | |
305 | ôîðìàëüíî îòêðûâàåò êîíñîëüíûé âûâîä |
- | |
306 | - | ||
307 | PROCEDURE Int(x, width: INTEGER) |
- | |
308 | âûâîä öåëîãî ÷èñëà x; |
- | |
309 | width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà |
- | |
310 | - | ||
311 | PROCEDURE Real(x: LONGREAL; width: INTEGER) |
- | |
312 | âûâîä âåùåñòâåííîãî ÷èñëà x â ïëàâàþùåì ôîðìàòå; |
- | |
313 | width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà |
- | |
314 | - | ||
315 | PROCEDURE Char(x: CHAR) |
- | |
316 | âûâîä ñèìâîëà x |
- | |
317 | - | ||
318 | PROCEDURE FixReal(x: LONGREAL; width, p: INTEGER) |
- | |
319 | âûâîä âåùåñòâåííîãî ÷èñëà x â ôèêñèðîâàííîì ôîðìàòå; |
- | |
320 | width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà; |
- | |
321 | p - êîëè÷åñòâî çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè |
- | |
322 | - | ||
323 | PROCEDURE Ln |
- | |
324 | ïåðåõîä íà ñëåäóþùóþ ñòðîêó |
- | |
325 | - | ||
326 | PROCEDURE String(s: ARRAY OF CHAR) |
- | |
327 | âûâîä ñòðîêè s |
- | |
328 | - | ||
329 | ------------------------------------------------------------------------------ |
- | |
330 | MODULE In - êîíñîëüíûé ââîä |
- | |
331 | - | ||
332 | VAR Done: BOOLEAN |
- | |
333 | ïðèíèìàåò çíà÷åíèå TRUE â ñëó÷àå óñïåøíîãî âûïîëíåíèÿ |
- | |
334 | îïåðàöèè ââîäà, èíà÷å FALSE |
- | |
335 | - | ||
336 | PROCEDURE Open |
- | |
337 | ôîðìàëüíî îòêðûâàåò êîíñîëüíûé ââîä, |
- | |
338 | òàêæå ïðèñâàèâàåò ïåðåìåííîé Done çíà÷åíèå TRUE |
- | |
339 | - | ||
340 | PROCEDURE Int(VAR x: INTEGER) |
- | |
341 | ââîä ÷èñëà òèïà INTEGER |
- | |
342 | - | ||
343 | PROCEDURE Char(VAR x: CHAR) |
- | |
344 | ââîä ñèìâîëà |
- | |
345 | - | ||
346 | PROCEDURE Real(VAR x: REAL) |
- | |
347 | ââîä ÷èñëà òèïà REAL |
- | |
348 | - | ||
349 | PROCEDURE LongReal(VAR x: LONGREAL) |
- | |
350 | ââîä ÷èñëà òèïà LONGREAL |
- | |
351 | - | ||
352 | PROCEDURE String(VAR s: ARRAY OF CHAR) |
- | |
353 | ââîä ñòðîêè |
- | |
354 | - | ||
355 | PROCEDURE Ln |
- | |
356 | îæèäàíèå íàæàòèÿ ENTER |
- | |
357 | - | ||
358 | ------------------------------------------------------------------------------ |
- | |
359 | MODULE Console - äîïîëíèòåëüíûå ïðîöåäóðû êîíñîëüíîãî âûâîäà |
- | |
360 | - | ||
361 | CONST |
- | |
362 | - | ||
363 | Ñëåäóþùèå êîíñòàíòû îïðåäåëÿþò öâåò êîíñîëüíîãî âûâîäà |
- | |
364 | - | ||
365 | Black = 0 Blue = 1 Green = 2 |
- | |
366 | Cyan = 3 Red = 4 Magenta = 5 |
- | |
367 | Brown = 6 LightGray = 7 DarkGray = 8 |
- | |
368 | LightBlue = 9 LightGreen = 10 LightCyan = 11 |
- | |
369 | LightRed = 12 LightMagenta = 13 Yellow = 14 |
- | |
370 | White = 15 |
- | |
371 | - | ||
372 | PROCEDURE Cls |
- | |
373 | î÷èñòêà îêíà êîíñîëè |
- | |
374 | - | ||
375 | PROCEDURE SetColor(FColor, BColor: INTEGER) |
- | |
376 | óñòàíîâêà öâåòà êîíñîëüíîãî âûâîäà: FColor - öâåò òåêñòà, |
- | |
377 | BColor - öâåò ôîíà, âîçìîæíûå çíà÷åíèÿ - âûøåïåðå÷èñëåííûå |
- | |
378 | êîíñòàíòû |
- | |
379 | - | ||
380 | PROCEDURE SetCursor(x, y: INTEGER) |
- | |
381 | óñòàíîâêà êóðñîðà êîíñîëè â ïîçèöèþ (x, y) |
- | |
382 | - | ||
383 | PROCEDURE GetCursor(VAR x, y: INTEGER) |
- | |
384 | çàïèñûâàåò â ïàðàìåòðû òåêóùèå êîîðäèíàòû êóðñîðà êîíñîëè |
- | |
385 | - | ||
386 | PROCEDURE GetCursorX(): INTEGER |
- | |
387 | âîçâðàùàåò òåêóùóþ x-êîîðäèíàòó êóðñîðà êîíñîëè |
- | |
388 | - | ||
389 | PROCEDURE GetCursorY(): INTEGER |
- | |
390 | âîçâðàùàåò òåêóùóþ y-êîîðäèíàòó êóðñîðà êîíñîëè |
- | |
391 | - | ||
392 | ------------------------------------------------------------------------------ |
- | |
393 | MODULE ConsoleLib - îáåðòêà áèáëèîòåêè console.obj |
- | |
394 | - | ||
395 | ------------------------------------------------------------------------------ |
- | |
396 | MODULE Math - ìàòåìàòè÷åñêèå ôóíêöèè |
- | |
397 | - | ||
398 | CONST |
- | |
399 | - | ||
400 | pi = 3.141592653589793D+00 |
- | |
401 | e = 2.718281828459045D+00 |
- | |
402 | - | ||
403 | VAR |
- | |
404 | - | ||
405 | Inf, nInf: LONGREAL |
- | |
406 | ïîëîæèòåëüíàÿ è îòðèöàòåëüíàÿ áåñêîíå÷íîñòü |
- | |
407 | - | ||
408 | PROCEDURE IsNan(x: LONGREAL): BOOLEAN |
- | |
409 | âîçâðàùàåò TRUE, åñëè x - íå ÷èñëî |
- | |
410 | - | ||
411 | PROCEDURE IsInf(x: LONGREAL): BOOLEAN |
- | |
412 | âîçâðàùàåò TRUE, åñëè x - áåñêîíå÷íîñòü |
- | |
413 | - | ||
414 | PROCEDURE sqrt(x: LONGREAL): LONGREAL |
- | |
415 | êâàäðàòíûé êîðåíü x |
- | |
416 | - | ||
417 | PROCEDURE exp(x: LONGREAL): LONGREAL |
- | |
418 | ýêñïîíåíòà x |
- | |
419 | - | ||
420 | PROCEDURE ln(x: LONGREAL): LONGREAL |
- | |
421 | íàòóðàëüíûé ëîãàðèôì x |
- | |
422 | - | ||
423 | PROCEDURE sin(x: LONGREAL): LONGREAL |
- | |
424 | ñèíóñ x |
- | |
425 | - | ||
426 | PROCEDURE cos(x: LONGREAL): LONGREAL |
- | |
427 | êîñèíóñ x |
- | |
428 | - | ||
429 | PROCEDURE tan(x: LONGREAL): LONGREAL |
- | |
430 | òàíãåíñ x |
- | |
431 | - | ||
432 | PROCEDURE arcsin(x: LONGREAL): LONGREAL |
- | |
433 | àðêñèíóñ x |
- | |
434 | - | ||
435 | PROCEDURE arccos(x: LONGREAL): LONGREAL |
- | |
436 | àðêêîñèíóñ x |
- | |
437 | - | ||
438 | PROCEDURE arctan(x: LONGREAL): LONGREAL |
- | |
439 | àðêòàíãåíñ x |
- | |
440 | - | ||
441 | PROCEDURE arctan2(y, x: LONGREAL): LONGREAL |
- | |
442 | àðêòàíãåíñ y/x |
- | |
443 | - | ||
444 | PROCEDURE power(base, exponent: LONGREAL): LONGREAL |
- | |
445 | âîçâåäåíèå ÷èñëà base â ñòåïåíü exponent |
- | |
446 | - | ||
447 | PROCEDURE log(base, x: LONGREAL): LONGREAL |
- | |
448 | ëîãàðèôì x ïî îñíîâàíèþ base |
- | |
449 | - | ||
450 | PROCEDURE sinh(x: LONGREAL): LONGREAL |
- | |
451 | ãèïåðáîëè÷åñêèé ñèíóñ x |
- | |
452 | - | ||
453 | PROCEDURE cosh(x: LONGREAL): LONGREAL |
- | |
454 | ãèïåðáîëè÷åñêèé êîñèíóñ x |
- | |
455 | - | ||
Line 456... | Line -... | ||
456 | PROCEDURE tanh(x: LONGREAL): LONGREAL |
- | |
457 | ãèïåðáîëè÷åñêèé òàíãåíñ x |
- | |
458 | - | ||
459 | PROCEDURE arcsinh(x: LONGREAL): LONGREAL |
- | |
460 | îáðàòíûé ãèïåðáîëè÷åñêèé ñèíóñ x |
- | |
461 | - | ||
462 | PROCEDURE arccosh(x: LONGREAL): LONGREAL |
- | |
463 | îáðàòíûé ãèïåðáîëè÷åñêèé êîñèíóñ x |
- | |
464 | - | ||
465 | PROCEDURE arctanh(x: LONGREAL): LONGREAL |
- | |
466 | îáðàòíûé ãèïåðáîëè÷åñêèé òàíãåíñ x |
- | |
467 | - | ||
468 | PROCEDURE round(x: LONGREAL): LONGREAL |
- | |
469 | îêðóãëåíèå x äî áëèæàéøåãî öåëîãî |
- | |
470 | - | ||
471 | PROCEDURE frac(x: LONGREAL): LONGREAL; |
- | |
472 | äðîáíàÿ ÷àñòü ÷èñëà x |
- | |
473 | - | ||
474 | PROCEDURE floor(x: LONGREAL): LONGREAL |
- | |
475 | íàèáîëüøåå öåëîå ÷èñëî (ïðåäñòàâëåíèå êàê LONGREAL), |
- | |
476 | íå áîëüøå x: floor(1.2) = 1.0 |
- | |
477 | - | ||
478 | PROCEDURE ceil(x: LONGREAL): LONGREAL |
- | |
479 | íàèìåíüøåå öåëîå ÷èñëî (ïðåäñòàâëåíèå êàê LONGREAL), |
- | |
480 | íå ìåíüøå x: ceil(1.2) = 2.0 |
- | |
481 | - | ||
482 | PROCEDURE sgn(x: LONGREAL): INTEGER |
- | |
483 | åñëè x > 0 âîçâðàùàåò 1 |
- | |
484 | åñëè x < 0 âîçâðàùàåò -1 |
- | |
485 | åñëè x = 0 âîçâðàùàåò 0 |
- | |
486 | - | ||
487 | ------------------------------------------------------------------------------ |
- | |
488 | MODULE Debug - âûâîä íà äîñêó îòëàäêè |
- | |
489 | Èíòåðôåéñ êàê ìîäóëü Out |
- | |
490 | - | ||
491 | PROCEDURE Open |
- | |
492 | îòêðûâàåò äîñêó îòëàäêè |
- | |
493 | - | ||
494 | ------------------------------------------------------------------------------ |
- | |
495 | MODULE File - ðàáîòà ñ ôàéëîâîé ñèñòåìîé |
- | |
496 | - | ||
497 | TYPE |
- | |
498 | - | ||
499 | FNAME = ARRAY 520 OF CHAR |
- | |
500 | - | ||
501 | FS = POINTER TO rFS |
- | |
502 | - | ||
503 | rFS = RECORD (* èíôîðìàöèîííàÿ ñòðóêòóðà ôàéëà *) |
- | |
504 | subfunc, pos, hpos, bytes, buffer: INTEGER; |
- | |
505 | name: FNAME |
- | |
506 | END |
- | |
507 | - | ||
508 | FD = POINTER TO rFD |
- | |
509 | - | ||
510 | rFD = RECORD (* ñòðóêòóðà áëîêà äàííûõ âõîäà êàòàëîãà *) |
- | |
511 | attr: INTEGER; |
- | |
512 | ntyp: CHAR; |
- | |
513 | reserved: ARRAY 3 OF CHAR; |
- | |
514 | time_create, date_create, |
- | |
515 | time_access, date_access, |
- | |
516 | time_modif, date_modif, |
- | |
517 | size, hsize: INTEGER; |
- | |
518 | name: FNAME |
- | |
519 | END |
- | |
520 | - | ||
521 | CONST |
- | |
522 | - | ||
523 | SEEK_BEG = 0 |
- | |
524 | SEEK_CUR = 1 |
- | |
525 | SEEK_END = 2 |
- | |
526 | - | ||
527 | PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER; |
- | |
528 | Çàãðóæàåò â ïàìÿòü ôàéë ñ èìåíåì FName, çàïèñûâàåò â ïàðàìåòð |
- | |
529 | size ðàçìåð ôàéëà, âîçâðàùàåò àäðåñ çàãðóæåííîãî ôàéëà |
- | |
530 | èëè 0 (îøèáêà). Ïðè íåîáõîäèìîñòè, ðàñïàêîâûâàåò |
- | |
531 | ôàéë (kunpack). |
- | |
532 | - | ||
533 | PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN |
- | |
534 | Çàïèñûâàåò ñòðóêòóðó áëîêà äàííûõ âõîäà êàòàëîãà äëÿ ôàéëà |
- | |
535 | èëè ïàïêè ñ èìåíåì FName â ïàðàìåòð Info. |
- | |
536 | Ïðè îøèáêå âîçâðàùàåò FALSE. |
- | |
537 | - | ||
538 | PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN |
- | |
539 | âîçâðàùàåò TRUE, åñëè ôàéë ñ èìåíåì FName ñóùåñòâóåò |
- | |
540 | - | ||
541 | PROCEDURE Close(VAR F: FS) |
- | |
542 | îñâîáîæäàåò ïàìÿòü, âûäåëåííóþ äëÿ èíôîðìàöèîííîé ñòðóêòóðû |
- | |
543 | ôàéëà F è ïðèñâàèâàåò F çíà÷åíèå NIL |
- | |
544 | - | ||
545 | PROCEDURE Open(FName: ARRAY OF CHAR): FS |
- | |
546 | âîçâðàùàåò óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà ñ |
- | |
547 | èìåíåì FName, ïðè îøèáêå âîçâðàùàåò NIL |
- | |
548 | - | ||
549 | PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN |
- | |
550 | óäàëÿåò ôàéë ñ èìåíåì FName, ïðè îøèáêå âîçâðàùàåò FALSE |
- | |
551 | - | ||
552 | PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER |
- | |
553 | óñòàíàâëèâàåò ïîçèöèþ ÷òåíèÿ-çàïèñè ôàéëà F íà Offset, |
- | |
554 | îòíîñèòåëüíî Origin = (SEEK_BEG - íà÷àëî ôàéëà, |
- | |
555 | SEEK_CUR - òåêóùàÿ ïîçèöèÿ, SEEK_END - êîíåö ôàéëà), |
- | |
556 | âîçâðàùàåò ïîçèöèþ îòíîñèòåëüíî íà÷àëà ôàéëà, íàïðèìåð: |
- | |
557 | Seek(F, 0, SEEK_END) |
- | |
558 | óñòàíàâëèâàåò ïîçèöèþ íà êîíåö ôàéëà è âîçâðàùàåò äëèíó |
- | |
559 | ôàéëà; ïðè îøèáêå âîçâðàùàåò -1 |
- | |
560 | - | ||
561 | PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER |
- | |
562 | ×èòàåò äàííûå èç ôàéëà â ïàìÿòü. F - óêàçàòåëü íà |
- | |
563 | èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè |
- | |
564 | ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ ïðî÷èòàòü |
- | |
565 | èç ôàéëà; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî ïðî÷èòàíî |
- | |
566 | è ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â |
- | |
567 | èíôîðìàöèîííîé ñòðóêòóðå F. |
- | |
568 | - | ||
569 | PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER |
- | |
570 | Çàïèñûâàåò äàííûå èç ïàìÿòè â ôàéë. F - óêàçàòåëü íà |
- | |
571 | èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè |
- | |
572 | ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ çàïèñàòü |
- | |
573 | â ôàéë; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî çàïèñàíî è |
- | |
574 | ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â |
- | |
575 | èíôîðìàöèîííîé ñòðóêòóðå F. |
- | |
576 | - | ||
577 | PROCEDURE Create(FName: ARRAY OF CHAR): FS |
- | |
578 | ñîçäàåò íîâûé ôàéë ñ èìåíåì FName (ïîëíîå èìÿ), âîçâðàùàåò |
- | |
579 | óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, |
- | |
580 | ïðè îøèáêå âîçâðàùàåò NIL |
- | |
581 | - | ||
582 | PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN |
- | |
583 | ñîçäàåò ïàïêó ñ èìåíåì DirName, âñå ïðîìåæóòî÷íûå ïàïêè |
- | |
584 | äîëæíû ñóùåñòâîâàòü, ïðè îøèáêå âîçâðàùàåò FALSE |
- | |
585 | - | ||
586 | PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN |
- | |
587 | óäàëÿåò ïóñòóþ ïàïêó ñ èìåíåì DirName, |
- | |
588 | ïðè îøèáêå âîçâðàùàåò FALSE |
- | |
589 | - | ||
590 | PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN |
- | |
591 | âîçâðàùàåò TRUE, åñëè ïàïêà ñ èìåíåì DirName ñóùåñòâóåò |
- | |
592 | - | ||
593 | ------------------------------------------------------------------------------ |
- | |
594 | MODULE Read - ÷òåíèå îñíîâíûõ òèïîâ äàííûõ èç ôàéëà F |
- | |
595 | - | ||
596 | Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè ÷òåíèÿ è |
- | |
597 | ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â |
- | |
598 | èíôîðìàöèîííîé ñòðóêòóðå F |
- | |
599 | - | ||
600 | PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN |
- | |
601 | - | ||
602 | PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN |
- | |
603 | - | ||
604 | PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN |
- | |
605 | - | ||
606 | PROCEDURE LongReal(F: File.FS; VAR x: LONGREAL): BOOLEAN |
- | |
607 | - | ||
608 | PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN |
- | |
609 | - | ||
610 | PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN |
- | |
611 | - | ||
612 | PROCEDURE Card16(F: File.FS; VAR x: SYSTEM.CARD16): BOOLEAN |
- | |
613 | - | ||
614 | ------------------------------------------------------------------------------ |
- | |
615 | MODULE Write - çàïèñü îñíîâíûõ òèïîâ äàííûõ â ôàéë F |
- | |
616 | - | ||
617 | Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè çàïèñè è |
- | |
618 | ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â |
- | |
619 | èíôîðìàöèîííîé ñòðóêòóðå F |
- | |
620 | - | ||
621 | PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN |
- | |
622 | - | ||
623 | PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN |
- | |
624 | - | ||
625 | PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN |
- | |
626 | - | ||
627 | PROCEDURE LongReal(F: File.FS; x: LONGREAL): BOOLEAN |
- | |
628 | - | ||
629 | PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN |
- | |
630 | - | ||
631 | PROCEDURE Set(F: File.FS; x: SET): BOOLEAN |
- | |
632 | - | ||
633 | PROCEDURE Card16(F: File.FS; x: SYSTEM.CARD16): BOOLEAN |
- | |
634 | - | ||
635 | ------------------------------------------------------------------------------ |
- | |
636 | MODULE DateTime - äàòà, âðåìÿ |
- | |
637 | - | ||
638 | CONST ERR = -7.0D5 |
- | |
639 | - | ||
640 | PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER) |
- | |
641 | çàïèñûâàåò â ïàðàìåòðû êîìïîíåíòû òåêóùåé ñèñòåìíîé äàòû è |
- | |
642 | âðåìåíè |
- | |
643 | - | ||
644 | PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): LONGREAL |
- | |
645 | âîçâðàùàåò äàòó, ïîëó÷åííóþ èç êîìïîíåíòîâ |
- | |
646 | Year, Month, Day, Hour, Min, Sec; |
- | |
647 | ïðè îøèáêå âîçâðàùàåò êîíñòàíòó ERR = -7.0D5 |
- | |
648 | - | ||
649 | PROCEDURE Decode(Date: LONGREAL; VAR Year, Month, Day, |
- | |
650 | Hour, Min, Sec: INTEGER): BOOLEAN |
- | |
651 | èçâëåêàåò êîìïîíåíòû |
- | |
652 | Year, Month, Day, Hour, Min, Sec èç äàòû Date; |
- | |
653 | ïðè îøèáêå âîçâðàùàåò FALSE |
- | |
654 | - | ||
655 | ------------------------------------------------------------------------------ |
- | |
656 | MODULE Args - ïàðàìåòðû ïðîãðàììû |
- | |
657 | - | ||
658 | VAR argc: INTEGER |
- | |
659 | êîëè÷åñòâî ïàðàìåòðîâ ïðîãðàììû, âêëþ÷àÿ èìÿ |
- | |
660 | èñïîëíÿåìîãî ôàéëà |
- | |
661 | - | ||
662 | PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR) |
- | |
663 | çàïèñûâàåò â ñòðîêó s n-é ïàðàìåòð ïðîãðàììû, |
- | |
664 | íóìåðàöèÿ ïàðàìåòðîâ îò 0 äî argc - 1, |
- | |
665 | íóëåâîé ïàðàìåòð -- èìÿ èñïîëíÿåìîãî ôàéëà |
- | |
666 | - | ||
667 | ------------------------------------------------------------------------------ |
- | |
668 | MODULE KOSAPI |
- | |
669 | - | ||
670 | PROCEDURE sysfunc1(arg1: INTEGER): INTEGER |
- | |
671 | PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER |
- | |
672 | ... |
- | |
673 | PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER |
- | |
674 | Îáåðòêè äëÿ ôóíêöèé API ÿäðà KolibriOS. |
- | |
675 | arg1 .. arg7 ñîîòâåòñòâóþò ðåãèñòðàì |
- | |
676 | eax, ebx, ecx, edx, esi, edi, ebp; |
- | |
677 | âîçâðàùàþò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà. |
- | |
678 | - | ||
679 | PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER |
- | |
680 | Îáåðòêà äëÿ ôóíêöèé API ÿäðà KolibriOS. |
- | |
681 | arg1 - ðåãèñòð eax, arg2 - ðåãèñòð ebx, |
- | |
682 | res2 - çíà÷åíèå ðåãèñòðà ebx ïîñëå ñèñòåìíîãî âûçîâà; |
- | |
683 | âîçâðàùàåò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà. |
- | |
684 | - | ||
685 | PROCEDURE malloc(size: INTEGER): INTEGER |
- | |
686 | Âûäåëÿåò áëîê ïàìÿòè. |
- | |
687 | size - ðàçìåð áëîêà â áàéòàõ, |
- | |
688 | âîçâðàùàåò àäðåñ âûäåëåííîãî áëîêà |
- | |
689 | - | ||
690 | PROCEDURE free(ptr: INTEGER): INTEGER |
- | |
691 | Îñâîáîæäàåò ðàíåå âûäåëåííûé áëîê ïàìÿòè ñ àäðåñîì ptr, |
- | |
692 | âîçâðàùàåò 0 |
- | |
693 | - | ||
694 | PROCEDURE realloc(ptr, size: INTEGER): INTEGER |
- | |
695 | Ïåðåðàñïðåäåëÿåò áëîê ïàìÿòè, |
- | |
696 | ptr - àäðåñ ðàíåå âûäåëåííîãî áëîêà, |
- | |
697 | size - íîâûé ðàçìåð, |
- | |
698 | âîçâðàùàåò óêàçàòåëü íà ïåðåðàñïðåäåëåííûé áëîê, |
- | |
699 | 0 ïðè îøèáêå |
- | |
700 | - | ||
701 | PROCEDURE GetCommandLine(): INTEGER |
- | |
702 | Âîçâðàùàåò àäðåñ ñòðîêè ïàðàìåòðîâ |
- | |
703 | - | ||
704 | PROCEDURE GetName(): INTEGER |
- | |
705 | Âîçâðàùàåò àäðåñ ñòðîêè ñ èìåíåì ïðîãðàììû |
- | |
706 | - | ||
707 | PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER |
- | |
708 | Çàãðóæàåò DLL ñ ïîëíûì èìåíåì name. Âîçâðàùàåò àäðåñ òàáëèöû |
- | |
709 | ýêñïîðòà. Ïðè îøèáêå âîçâðàùàåò 0. |
- | |
710 | - | ||
711 | PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER |
- | |
712 | name - èìÿ ïðîöåäóðû |
- | |
713 | lib - àäðåñ òàáëèöû ýêñïîðòà DLL |
- | |
714 | Âîçâðàùàåò àäðåñ ïðîöåäóðû. Ïðè îøèáêå âîçâðàùàåò 0. |
- | |
715 | - | ||
716 | ------------------------------------------------------------------------------ |
- | |
717 | MODULE ColorDlg - ðàáîòà ñ äèàëîãîì "Color Dialog" |
- | |
718 | - | ||
719 | TYPE |
- | |
720 | - | ||
721 | Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *) |
- | |
722 | status: INTEGER (* ñîñòîÿíèå äèàëîãà: |
- | |
723 | 0 - ïîëüçîâàòåëü íàæàë Cancel |
- | |
724 | 1 - ïîëüçîâàòåëü íàæàë OK |
- | |
725 | 2 - äèàëîã îòêðûò *) |
- | |
726 | - | ||
727 | color: INTEGER (* âûáðàííûé öâåò *) |
- | |
728 | END |
- | |
729 | - | ||
730 | PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog |
- | |
731 | ñîçäàòü äèàëîã |
- | |
732 | draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà |
- | |
733 | (TYPE DRAW_WINDOW = PROCEDURE); |
- | |
734 | ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà |
- | |
735 | - | ||
736 | PROCEDURE Show(cd: Dialog) |
- | |
737 | ïîêàçàòü äèàëîã |
- | |
738 | cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå |
- | |
739 | ïðîöåäóðîé Create |
- | |
740 | - | ||
741 | PROCEDURE Destroy(VAR cd: Dialog) |
- | |
742 | óíè÷òîæèòü äèàëîã |
- | |
743 | cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà |
- | |
744 | - | ||
745 | ------------------------------------------------------------------------------ |
- | |
746 | MODULE OpenDlg - ðàáîòà ñ äèàëîãîì "Open Dialog" |
- | |
747 | - | ||
748 | TYPE |
- | |
749 | - | ||
750 | Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *) |
- | |
751 | status: INTEGER (* ñîñòîÿíèå äèàëîãà: |
- | |
752 | 0 - ïîëüçîâàòåëü íàæàë Cancel |
- | |
753 | 1 - ïîëüçîâàòåëü íàæàë OK |
- | |
754 | 2 - äèàëîã îòêðûò *) |
- | |
755 | - | ||
756 | FileName: ARRAY 4096 OF CHAR (* èìÿ âûáðàííîãî ôàéëà *) |
- | |
757 | FilePath: ARRAY 4096 OF CHAR (* ïîëíîå èìÿ âûáðàííîãî |
- | |
758 | ôàéëà *) |
- | |
759 | END |
- | |
760 | - | ||
761 | PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path, |
- | |
762 | filter: ARRAY OF CHAR): Dialog |
- | |
763 | ñîçäàòü äèàëîã |
- | |
764 | draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà |
- | |
765 | (TYPE DRAW_WINDOW = PROCEDURE) |
- | |
766 | type - òèï äèàëîãà |
- | |
767 | 0 - îòêðûòü |
- | |
768 | 1 - ñîõðàíèòü |
- | |
769 | 2 - âûáðàòü ïàïêó |
- | |
770 | def_path - ïóòü ïî óìîë÷àíèþ, ïàïêà def_path áóäåò îòêðûòà |
- | |
771 | ïðè ïåðâîì çàïóñêå äèàëîãà |
- | |
772 | filter - â ñòðîêå çàïèñàíî ïåðå÷èñëåíèå ðàñøèðåíèé ôàéëîâ, |
- | |
773 | êîòîðûå áóäóò ïîêàçàíû â äèàëîãîâîì îêíå, ðàñøèðåíèÿ |
- | |
774 | ðàçäåëÿþòñÿ ñèìâîëîì "|", íàïðèìåð: "ASM|TXT|INI" |
- | |
775 | ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà |
- | |
776 | - | ||
777 | PROCEDURE Show(od: Dialog; Width, Height: INTEGER) |
- | |
778 | ïîêàçàòü äèàëîã |
- | |
779 | od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå |
- | |
780 | ïðîöåäóðîé Create |
- | |
781 | Width è Height - øèðèíà è âûñîòà äèàëîãîâîãî îêíà |
- | |
782 | - | ||
783 | PROCEDURE Destroy(VAR od: Dialog) |
- | |
784 | óíè÷òîæèòü äèàëîã |
- | |
785 | od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà |
- | |
786 | - | ||
787 | ------------------------------------------------------------------------------ |
- | |
788 | MODULE kfonts - ðàáîòà ñ kf-øðèôòàìè |
- | |
789 | - | ||
790 | CONST |
- | |
791 | - | ||
792 | bold = 1 |
- | |
793 | italic = 2 |
- | |
794 | underline = 4 |
- | |
795 | strike_through = 8 |
- | |
796 | smoothing = 16 |
- | |
797 | bpp32 = 32 |
- | |
798 | - | ||
799 | TYPE |
- | |
800 | - | ||
801 | TFont = POINTER TO TFont_desc (* óêàçàòåëü íà øðèôò *) |
- | |
802 | - | ||
803 | PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont |
- | |
804 | çàãðóçèòü øðèôò èç ôàéëà |
- | |
805 | file_name èìÿ kf-ôàéëà |
- | |
806 | ðåç-ò: óêàçàòåëü íà øðèôò/NIL (îøèáêà) |
- | |
807 | - | ||
808 | PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN |
- | |
809 | óñòàíîâèòü ðàçìåð øðèôòà |
- | |
810 | Font óêàçàòåëü íà øðèôò |
- | |
811 | font_size ðàçìåð øðèôòà |
- | |
812 | ðåç-ò: TRUE/FALSE (îøèáêà) |
- | |
813 | - | ||
814 | PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN |
- | |
815 | ïðîâåðèòü, åñòü ëè øðèôò, çàäàííîãî ðàçìåðà |
- | |
816 | Font óêàçàòåëü íà øðèôò |
- | |
817 | font_size ðàçìåð øðèôòà |
- | |
818 | ðåç-ò: TRUE/FALSE (øðèôòà íåò) |
- | |
819 | - | ||
820 | PROCEDURE Destroy(VAR Font: TFont) |
- | |
821 | âûãðóçèòü øðèôò, îñâîáîäèòü äèíàìè÷åñêóþ ïàìÿòü |
- | |
822 | Font óêàçàòåëü íà øðèôò |
- | |
823 | Ïðèñâàèâàåò ïåðåìåííîé Font çíà÷åíèå NIL |
- | |
824 | - | ||
825 | PROCEDURE TextHeight(Font: TFont): INTEGER |
- | |
826 | ïîëó÷èòü âûñîòó ñòðîêè òåêñòà |
- | |
827 | Font óêàçàòåëü íà øðèôò |
- | |
828 | ðåç-ò: âûñîòà ñòðîêè òåêñòà â ïèêñåëÿõ |
- | |
829 | - | ||
830 | PROCEDURE TextWidth(Font: TFont; |
- | |
831 | str, length, params: INTEGER): INTEGER |
- | |
832 | ïîëó÷èòü øèðèíó ñòðîêè òåêñòà |
- | |
833 | Font óêàçàòåëü íà øðèôò |
- | |
834 | str àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251 |
- | |
835 | length êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà |
- | |
836 | çàâåðøàåòñÿ íóëåì |
- | |
837 | params ïàðàìåòðû-ôëàãè ñì. íèæå |
- | |
838 | ðåç-ò: øèðèíà ñòðîêè òåêñòà â ïèêñåëÿõ |
- | |
839 | - | ||
840 | PROCEDURE TextOut(Font: TFont; |
- | |
841 | canvas, x, y, str, length, color, params: INTEGER) |
- | |
842 | âûâåñòè òåêñò â áóôåð |
- | |
843 | äëÿ âûâîäà áóôåðà â îêíî, èñïîëüçîâàòü ô.65 èëè |
- | |
844 | ô.7 (åñëè áóôåð 24-áèòíûé) |
- | |
845 | Font óêàçàòåëü íà øðèôò |
- | |
846 | canvas àäðåñ ãðàôè÷åñêîãî áóôåðà |
- | |
847 | ñòðóêòóðà áóôåðà: |
- | |
848 | Xsize dd |
- | |
849 | Ysize dd |
- | |
850 | picture rb Xsize * Ysize * 4 (32 áèòà) |
- | |
851 | èëè Xsize * Ysize * 3 (24 áèòà) |
- | |
852 | x, y êîîðäèíàòû òåêñòà îòíîñèòåëüíî ëåâîãî âåðõíåãî |
- | |
853 | óãëà áóôåðà |
- | |
854 | str àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251 |
- | |
855 | length êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà |
- | |
856 | çàâåðøàåòñÿ íóëåì |
- | |
857 | color öâåò òåêñòà 0x00RRGGBB |
- | |
858 | params ïàðàìåòðû-ôëàãè: |
- | |
859 | 1 æèðíûé |
- | |
860 | 2 êóðñèâ |
- | |
861 | 4 ïîä÷åðêíóòûé |
- | |
862 | 8 ïåðå÷åðêíóòûé |
- | |
863 | 16 ïðèìåíèòü ñãëàæèâàíèå |
- | |
864 | 32 âûâîä â 32-áèòíûé áóôåð |
- | |
865 | âîçìîæíî èñïîëüçîâàíèå ôëàãîâ â ëþáûõ ñî÷åòàíèÿõ |
- | |
866 | ------------------------------------------------------------------------------ |
- | |
867 | MODULE RasterWorks - îáåðòêà áèáëèîòåêè Rasterworks.obj |
- | |
868 | ------------------------------------------------------------------------------ |
- | |
869 | MODULE libimg - îáåðòêà áèáëèîòåêè libimg.obj |
- | |
870 | ------------------------------------------------------------------------------ |
397 | Ýòà ïðîöåäóðà äîëæíà áûòü âûçâàíà ïåðåä èñïîëüçîâàíèåì DLL. |
- | 398 | Ïðîöåäóðà âñåãäà âîçâðàùàåò 1. |
|
871 | MODULE NetDevices - îáåðòêà äëÿ ô.74 (ðàáîòà ñ ñåòåâûìè óñòðîéñòâàìè) |
399 |