ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ, Π½ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ DOS/Windows, Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄ΠΈΡΠΊΠ°, Π³Π΄Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, C:\
ΠΡΠΈΠΌΠ΅Ρ:
sequence s
s = current_dir()
-- s Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ "C:\EUPHORIA\DOC", Π΅ΡΠ»ΠΈ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
dir, chdir, getenv
cursor
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°:
WIN32, DOS32
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include graphics.e
cursor(i)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠ°Π΄Π°ΡΡ ΡΠΎΡΠΌΡ ΠΊΡΡΡΠΎΡΠ°. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° graphics.e ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ:
global constant NO_CURSOR = #2000,
UNDERLINE_CURSOR = #0607,
THICK_UNDERLINE_CURSOR = #0507,
HALF_BLOCK_CURSOR = #0407,
BLOCK_CURSOR = #0007
ΠΡΠΎΡΠ°Ρ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡΠ°Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΡ (ΡΠ»Π΅Π²Π°) Π΄Π°ΡΡ Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠ΄ΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°. ΠΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ, Π±ΡΠ΄Π΅Ρ ΠΊΡΡΡΠΎΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, #0407 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Ρ 4-Π³ΠΎ ΠΏΠΎ 7-ΠΎΠΉ ΡΡΠ΄ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ².
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Π ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΡΠΊΡΠ°Π½Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΠΊΡΡΡΠΎΡ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ .
ΠΡΠΈΠΌΠ΅Ρ:
cursor(BLOCK_CURSOR)
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
graphics_mode, text_rows
custom_sort
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include sort.e
s2 = custom_sort(i, s1)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
Π‘ΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΄Π° s1, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ) i. ΠΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ΄.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ°Π΄Π°Π½Π½Π°Ρ Π²Π°ΠΌΠΈ Π·Π°ΠΊΠ°Π·Π½Π°Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π΄Π²ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Euphoria-ΡΡΠ½ΠΊΡΠΈΠΈ compare(). ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠ΄Π°Π²Π°ΡΡ -1, 0 ΠΈΠ»ΠΈ +1.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
demo\csort.ex
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
sort, compare, routine_id
date
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
s = date()
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ ΡΡΠ΄ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ:
{Π³ΠΎΠ΄, -- Π½Π°ΡΠΈΠ½Π°Ρ Ρ 1900
ΠΌΠ΅ΡΡΡ, -- ΡΠ½Π²Π°ΡΡ = 1
Π΄Π΅Π½Ρ, -- Π΄Π΅Π½Ρ ΠΌΠ΅ΡΡΡΠ°, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 1
ΡΠ°Ρ, -- ΠΎΡ 0 Π΄ΠΎ 23
ΠΌΠΈΠ½ΡΡΠ°, -- ΠΎΡ 0 Π΄ΠΎ 59
ΡΠ΅ΠΊΡΠ½Π΄Π°, -- ΠΎΡ 0 Π΄ΠΎ 59
Π΄Π΅Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ, -- Π²ΠΎΡΠΊΡΠ΅ΡΠ΅Π½ΡΠ΅ = 1
Π΄Π΅Π½Ρ Π³ΠΎΠ΄Π°} -- 1 ΡΠ½Π²Π°ΡΡ = 1
ΠΡΠΈΠΌΠ΅Ρ:
now = date()
-- now ΡΠ°Π²Π½ΠΎ: {95,3,24,23,47,38,6,83}
-- Ρ.Π΅. ΠΏΡΡΠ½ΠΈΡΠ°, 24 ΠΌΠ°ΡΡΠ° 1995 Π³ΠΎΠ΄Π°, 23 ΡΠ°ΡΠ° 47 ΠΌΠΈΠ½ΡΡ 38 ΡΠ΅ΠΊΡΠ½Π΄, 83-ΠΈΠΉ Π΄Π΅Π½Ρ Π³ΠΎΠ΄Π°
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ΅Π»ΠΈΡΠΈΠ½Π°, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠ°Ρ Π΄Π»Ρ Π³ΠΎΠ΄Π°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ Π»Π΅Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 1900, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ 2-ΠΌΡ ΡΠΈΡΡΠ°ΠΌΠΈ Π³ΠΎΠ΄Π°. Π 2000 Π³ΠΎΠ΄Ρ ΡΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° 100. Π 2001 ΡΡΠΎ Π±ΡΠ»ΠΎ 101 ΠΈ Ρ.Π΄. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΡΡ ΠΈ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π΄Π°ΡΡ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
time
define_c_func
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include dll.e
i1 = define_c_func(x1, x2, s1, i2)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ»ΡΠΆΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΄Π°Π½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ i1 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π°Π»Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ c_func(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π·Π°Π΄Π°Π½Π½ΡΡ Π²Π½Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ· Euphoria.
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ, Π°ΡΠ³ΡΠΌΠ΅Π½Ρ x1 Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΡΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ΄ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ open_dll(). ΠΡΠ³ΡΠΌΠ΅Π½Ρ x2 Π·Π°Π΄Π°ΡΡ ΠΈΠΌΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ. ΠΡΠ»ΠΈ define_c_func() Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π·Π°Π΄Π°Π½Π½ΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΎΠ½Π° Π²ΡΠ΄Π°ΡΡ -1. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Windows Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ» '+'. ΠΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Euphoria, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ cdecl. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Euphoria ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π‘ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ stdcall.
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π°ΡΠ³ΡΠΌΠ΅Π½Ρ x1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ ΡΡΠ΄ΠΎΠΌ, "" ΠΈΠ»ΠΈ {}, Π° x2 - ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΉΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΡΠ°ΡΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ allocate(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ Π²ΡΠ΄Π°ΡΡ Π°Π΄ΡΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π°Π»Π΅Π΅ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Windows ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ stdcall, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» cdecl, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ x2 ΠΊΠ°ΠΊ ΡΡΠ΄ {'+', Π°Π΄ΡΠ΅Ρ} Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ°ΠΊ Π°ΡΠΎΠΌΠ°.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ s1 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ i2 Π·Π°Π΄Π°ΡΡ ΡΠΈΠΏ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Π‘ΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ dll.e, ΠΈ ΡΡΠΈ ΠΆΠ΅ ΡΠΈΠΏΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
global constant C_CHAR = #01000001,
C_UCHAR = #02000001,
C_SHORT = #01000002,
C_USHORT = #02000002,
C_INT = #01000004,
C_UINT = #02000004,
C_LONG = C_INT,
C_ULONG = C_UINT,
C_POINTER = C_ULONG,
C_FLOAT = #03000004,
C_DOUBLE = #03000008
Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ define_c_func(), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° Ρ Euphoria Π½Π° Π‘ΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π² Π½Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠΎΠ² Euphoria, Π° ΠΎΠ½Π° ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠΎΠ² Euphoria. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Euphoria Ρ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ dll.e:
global constant
E_INTEGER = #06000004,
E_ATOM = #07000004,
E_SEQUENCE= #08000004,
E_OBJECT = #09000004
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π‘ΠΈ ΠΈ ΡΠΈΠΏΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (ΠΏΠΎΠΉΠ½ΡΠ΅ΡΠ°) Π‘ΠΈ. ΠΠ΅Π»ΠΈΡΠΈΠ½Ρ ΡΡΠΈΡ ΠΆΠ΅ ΡΠΈΠΏΠΎΠ² ΠΈ Π²ΡΠ΄Π°ΡΡΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΡΠΎ Π² ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°ΡΠΎΠΌΡ Euphoria, Π° Π΅ΡΠ»ΠΈ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π°ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎ ΡΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π°Π»Π΅Π΅ ΠΊΠ°ΠΊ Π°ΡΠΎΠΌ Euphoria.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ, Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ 4-Ρ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π±Π°ΠΉΡΠΎΠ², Π²ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠ½ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ, Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΈΠΏ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ 4-Ρ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΡΡΠΎΠ³ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΏΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ΄Π°ΡΠΈ Π² Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π‘ΠΈ ΠΏΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π‘ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠ°ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ define_c_proc() ΠΈ c_proc().
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ exw.exe Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ cdecl Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π°ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠΈΠΏΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Watcom C (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ exw.exe), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Ρ Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΡΠΌΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Π°ΠΌΠΈ ΡΠΈΠΏΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ cdecl.
ΠΠΎΠ΄Π°ΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ c_func(), Π° Π½Π΅ call(), ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΅ΡΡ ΠΈ atom_to_float64() ΠΈ poke(), ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ex.exe (DOS) Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Watcom (Π° ΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΆΠ΅ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½), ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΠ°ΡΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π° Π½Π΅ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ. ΠΠ°ΠΌ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠΎΠ΄, Π²ΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Watcom, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠ΄Π°Ρ .
ΠΡΠΈΠΌΠ΅Ρ:
atom user32
integer LoadIcon
-- ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ user32.dll - ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ LoadIconA
user32 = open_dll("user32.dll")
-- Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π‘ΠΈ ΠΈ ΡΠ΅Π»ΠΎΠ΅ Π‘ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
-- Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π°ΡΡ ΡΠ΅Π»ΠΎΠ΅ Π‘ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
LoadIcon = define_c_func(user32, "LoadIconA",
{C_POINTER, C_INT}, C_INT)
-- ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π·Π΄Π΅ΡΡ "LoadIconA", ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ LoadIconA
-- ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ stdcall, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ
-- Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ .dll Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ WIN32 API.
-- Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° cdecl, ΠΌΡ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ "+LoadIconA".
if LoadIcon = -1 then
puts(1, "LoadIconA Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°!\n")
end if
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
euphoria\demo\callmach.ex, c_func, define_c_proc, c_proc, open_dll, platform_r.htm
define_c_proc
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include dll.e
i1 = define_c_proc(x1, x2, s1)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ Π²ΡΠ·ΠΎΠ²Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Euphoria. ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ»ΡΠΆΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ). ΠΡΠ΄Π°Π½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ i1 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π°Π»Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ c_proc(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π·Π°Π΄Π°Π½Π½ΡΡ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ· Euphoria ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.