ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ, Π°ΡΠ³ΡΠΌΠ΅Π½Ρ x1 Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΡΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ΄ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ open_dll(). ΠΡΠ³ΡΠΌΠ΅Π½Ρ x2 Π·Π°Π΄Π°ΡΡ ΠΈΠΌΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ. ΠΡΠ»ΠΈ define_c_proc() Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π·Π°Π΄Π°Π½Π½ΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΎΠ½Π° Π²ΡΠ΄Π°ΡΡ -1. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Windows Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ» '+'. ΠΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Euphoria, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ cdecl. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Euphoria ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π‘ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ stdcall.
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π°ΡΠ³ΡΠΌΠ΅Π½Ρ x1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ ΡΡΠ΄ΠΎΠΌ, "" ΠΈΠ»ΠΈ {}, Π° x2 - ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΉΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΡΠ°ΡΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ allocate(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ Π²ΡΠ΄Π°ΡΡ Π°Π΄ΡΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π°Π»Π΅Π΅ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Windows ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ stdcall, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» cdecl, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ x2 ΠΊΠ°ΠΊ ΡΡΠ΄ {'+', Π°Π΄ΡΠ΅Ρ} Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ°ΠΊ Π°ΡΠΎΠΌΠ°.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ s1 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ). ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Π‘ΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ dll.e ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²ΡΡΠ΅. ΠΡΠΈ ΠΆΠ΅ ΡΠΈΠΏΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ define_c_proc(), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° Ρ Euphoria Π½Π° Π‘ΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π² Π½Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠΎΠ² Euphoria. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² Euphoria Ρ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ dll.e ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²ΡΡΠ΅.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π‘ΠΈ ΠΈ ΡΠΈΠΏΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (ΠΏΠΎΠΉΠ½ΡΠ΅ΡΠ°) Π‘ΠΈ. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΡΠΎ Π² ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°ΡΠΎΠΌΡ Euphoria.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ, Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ 4-Ρ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π±Π°ΠΉΡΠΎΠ², Π²ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠ½ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ, Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΈΠΏ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ 4-Ρ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ΄Π°ΡΠΈ Π² Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π‘ΠΈ ΠΏΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ
ΠΠ°Π΄Π°Π½Π½Π°Ρ Π²Π°ΠΌΠΈ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π½ΠΎ ΡΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠ°ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ define_c_func() ΠΈ c_func().
ΠΡΠΈΠΌΠ΅Ρ:
atom user32
integer ShowWindow
-- ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ user32.dll - Π² Π½Π΅ΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ ShowWindow.
user32 = open_dll("user32.dll")
-- Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ 2-Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠ±Π° ΡΠΈΠΏΠ° C int.
ShowWindow = define_c_proc(user32, "ShowWindow", {C_INT, C_INT})
-- ΠΡΠ»ΠΈ Π±Ρ ShowWindow ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ cdecl,
-- ΠΌΡ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π±Ρ Π·Π΄Π΅ΡΡ "+ShowWindow"
if ShowWindow = -1 then
puts(1, "ShowWindow Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°!\n")
end if
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
c_proc, define_c_func, c_func, open_dll, platform_r.htm
define_c_var
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°:
WIN32, Linux, FreeBSD
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include dll.e
a1 = define_c_var(a2, s)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ΠΈ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°ΠΌΡΡΡ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ a2 ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ .so Linux, FreeBSD ΠΈΠ»ΠΈ .dll Windows, Π²ΡΠ΄Π°Π½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ open_dll(). Π ΡΠ΄ s Π·Π°Π΄Π°Π΅Ρ ΠΈΠΌΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π½ΡΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a1 Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ s Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π΅Ρ ΡΠΈΠΏ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ peek() ΠΈ poke(), ΡΡΠΎΠ±Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
euphoria/demo/linux/mylib.exu
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
c_proc, define_c_func, c_func, open_dll, platform_r.htm
dir
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include file.e
x = dir(st)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ ΠΎ ΡΠ°ΠΉΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ st. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π²ΡΠ΄Π°ΡΡ -1. ΠΠΎΠ΄ Windows ΠΈ DOS st ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ * ΠΈ ?, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
ΠΡΠ΄Π°Π²Π°Π΅ΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ DIR ΠΏΠΎΠ΄ DOS. Π ΡΠ΄, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ΄Ρ (Π·Π°ΠΏΠΈΡΠΈ), ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΡΠ»ΠΈ Π² st Π·Π°Π΄Π°Π½ΠΎ ΠΈΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΏΠ°ΠΏΠΊΠΈ, ΡΠΎΠ»Π΄Π΅ΡΠ°), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ "." ΠΈ "..", ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ DIR ΠΏΠΎΠ΄ DOS. ΠΡΠ»ΠΈ ΠΆΠ΅ Π² st Π·Π°Π΄Π°Π½ΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΡΠΎΠ³Π΄Π° x Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π·Π°ΠΏΠΈΡΡ, Ρ.Π΅. length(x) Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½Π° 1. ΠΡΠ»ΠΈ Π² st ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ (ΡΠ°Π±Π»ΠΎΠ½Ρ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ, Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ Π³ΠΎΠ΄, ΠΌΠ΅ΡΡΡ, Π΄Π΅Π½Ρ, ΡΠ°Ρ, ΠΌΠΈΠ½ΡΡΡ ΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ file.e:
global constant D_NAME = 1, -- ΠΈΠΌΡ
D_ATTRIBUTES = 2, -- Π°ΡΡΠΈΠ±ΡΡΡ
D_SIZE = 3, -- ΡΠ°Π·ΠΌΠ΅Ρ
D_YEAR = 4, -- Π³ΠΎΠ΄
D_MONTH = 5, -- ΠΌΠ΅ΡΡΡ
D_DAY = 6, -- Π΄Π΅Π½Ρ
D_HOUR = 7, -- ΡΠ°Ρ
D_MINUTE = 8, -- ΠΌΠΈΠ½ΡΡΠ°
D_SECOND = 9 -- ΡΠ΅ΠΊΡΠ½Π΄Π°
ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌ ΡΡΠ΄ΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ½Ρ:
'd' -- ΠΊΠ°ΡΠ°Π»ΠΎΠ³
'r' -- ΡΠ°ΠΉΠ» ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ
'h' -- ΡΠΊΡΡΡΡΠΉ ΡΠ°ΠΉΠ»
's' -- ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠ»
'v' -- ΠΌΠ΅ΡΠΊΠ° ΡΠΎΠΌΠ°
'a' -- ΡΠ°ΠΉΠ», ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², Π² ΡΡΠΎΠΌ ΠΏΠΎΠ»Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½Π° ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°, "".
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ°ΡΠ°Π»ΠΎΠ³ Π²ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ, Ρ.Π΅. c:\, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ "." ΠΈΠ»ΠΈ "..".
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ WIN32 Π² st ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ.
ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Linux/FreeBSD Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π°ΡΡΠΈΠ±ΡΡ 'd'.
DOS32: ΠΠΌΡ ΡΠ°ΠΉΠ»Π°, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ D_NAME, Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ DOS-ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΎΡΠΌΠ°ΡΠ° 8.3 (ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ Web-ΡΡΡΠ°Π½ΠΈΡΡ ΠΡΡ ΠΈΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅).
WIN32: ΠΠΌΡ ΡΠ°ΠΉΠ»Π°, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ D_NAME, Π±ΡΠ΄Π΅Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ:
d = dir(current_dir())
-- ΡΡΠ΄ d ΠΌΠΎΠ³ Π±Ρ Π±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π²Π½ΡΠΌ:
{
{".", "d", 0 1994, 1, 18, 9, 30, 02},
{"..", "d", 0 1994, 1, 18, 9, 20, 14},
{"fred", "ra", 2350, 1994, 1, 22, 17, 22, 40},
{"sub", "d", 0, 1993, 9, 20, 8, 50, 12}
}
-- ΡΠΎΠ³Π΄Π° d[3][D_NAME] Π±ΡΠ»ΠΎ Π±Ρ "fred"
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
bin\search.ex
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
wildcard_file, current_dir, open
display_image
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°:
DOS32
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include image.e
display_image(s1, s2)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ²ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΠΊΠ΅ s1 Π½Π° ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ 2-ΠΌΠ΅ΡΠ½ΡΠΉ ΡΡΠ΄ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² s2. ΠΡΠ³ΡΠΌΠ΅Π½Ρ s1 - Π΄Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΡΠ΄ Π²ΠΈΠ΄Π° {x, y}. ΠΡΠ³ΡΠΌΠ΅Π½Ρ s2 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΄Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΠΎΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π» ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΡΠΎΡΠΊΠ΅ s1. ΠΡΠΎ Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π». ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΡΠ°Π²Π΅Π΅ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Π ΡΠ΄ s2 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° save_image() ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ²Π° read_bitmap(), ΠΈΠ»ΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΎΠΉ ΡΠ°Π½Π΅Π΅ Π²Ρ ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
Π ΡΠ΄Ρ (ΡΡΡΠΎΡΠΊΠΈ) ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
ΠΡΠΈΠΌΠ΅Ρ:
display_image({20,30}, {{7,5,9,4,8},
{2,4,1,2},
{1,0,1,0,4,6,1},
{5,5,5,5,5,5}})
-- ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΡΡΠΎΡΡΠ΅Π΅
-- ΠΈΠ· 4-Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΄ΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π» (ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅Ρ 7)
-- Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΠΎΡΠΊΠ΅ {20,30}. ΠΠ΅ΡΡ Π½ΠΈΠΉ ΡΡΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 5 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ².
-- ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ (Π½ΠΈΠΆΠ½ΠΈΠΉ) ΡΡΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 6 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΡΠ²Π΅ΡΠ° Π½ΠΎΠΌΠ΅Ρ 5
-- ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΡΠΊΠ΅ {25,33}.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
demo\dos32\bitmap.ex
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
save_image, read_bitmap, display_text_image
display_text_image
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include image.e
display_text_image(s1, s2)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ 2-ΠΌΠ΅ΡΠ½ΡΠΉ ΡΡΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² c Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΊΡΠ°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ s1 ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΌ ΡΡΠ΄ΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΊΡΠ°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ - ΡΡΡΠΎΠΊΠ° s1[1], ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° s1[2]. ΠΡΠ³ΡΠΌΠ΅Π½Ρ s2 ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡΠ΄ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ². ΠΠ΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ s1. ΠΡΡΠ³ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ°Π²Π΅Π΅ ΠΈ Π½ΠΈΠΆΠ΅ ΡΡΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΡΠΈΠ±ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΈ ΡΠ²ΠΎΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ²Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΡΠ½. ΠΠΎΠ΄ DOS32 Π°ΡΡΠΈΠ±ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΌΠΌΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ²Π΅ΡΠ° ΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° 16 Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π°.