ΠΡΠ΄Π°ΡΡ 1, Π΅ΡΠ»ΠΈ x ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠΎΠΌ, ΠΈΠ½Π°ΡΠ΅ Π²ΡΠ΄Π°ΡΡ 0.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° atom. ΠΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π°ΡΠΎΠΌΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ 1:
atom a
a = 5.99
ΠΡΠΈΠΌΠ΅Ρ 2:
object line
line = gets(0)
if atom(line) then
puts(SCREEN, "ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°\n")
end if
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
sequence, object, integer, Π°ΡΠΎΠΌΡ ΠΈ ΡΡΠ΄Ρ
atom_to_float32
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include machine.e
s = atom_to_float32(a1)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π°ΡΠΎΠΌ Euphoria Π² ΡΡΠ΄ ΠΈΠ· 4-Ρ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½. ΠΡΠΈ 4 Π±Π°ΠΉΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² 32-Ρ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ IEEE.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠΎΠΌΡ Euphoria ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ 64-Π±ΠΈΡΠ½ΡΠΌ ΡΠΈΡΠ»Π°ΠΌ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ° IEEE, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡ ΠΊ 32-Π±ΠΈΡΠ½ΡΠΌ ΡΠΈΡΠ»Π°ΠΌ (16 Π·Π½Π°ΡΠ°ΡΠΈΡ ΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ² 7). ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ΅ Π΄Π»Ρ 64-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π», ΡΠ΅ΠΌ Π² 32-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ (308 ΠΏΡΠΎΡΠΈΠ² 38), ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡ Π² 32-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ 32-Π±ΠΈΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½: inf ΠΈΠ»ΠΈ -inf (Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ -Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ). Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ atom_to_float64().
Π¦Π΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² 32-Π±ΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.
ΠΡΠΈΠΌΠ΅Ρ:
fn = open("numbers.dat", "wb")
puts(fn, atom_to_float32(157.82)) -- Π·Π°ΠΏΠΈΡΡ 4-Ρ Π±Π°ΠΉΡΠΎΠ² Π² ΡΠ°ΠΉΠ»
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
atom_to_float64, float32_to_atom
atom_to_float64
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include machine.e
s = atom_to_float64(a1)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π°ΡΠΎΠΌ Euphoria Π² ΡΡΠ΄, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· 8 ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½. ΠΡΠΈ 8 Π±Π°ΠΉΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² 64-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ IEEE.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠ΅ Π°ΡΠΎΠΌΡ Euphoria ΠΈΠΌΠ΅ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ IEEE, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π°ΡΠΎΠΌ Π² 64-Π±ΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π±Π΅Π· Π²ΡΡΠΊΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
Π¦Π΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² 64-Π±ΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.
ΠΡΠΈΠΌΠ΅Ρ:
fn = open("numbers.dat", "wb")
puts(fn, atom_to_float64(157.82)) -- Π·Π°ΠΏΠΈΡΡ 8 Π±Π°ΠΉΡΠΎΠ² Π² ΡΠ°ΠΉΠ»
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
atom_to_float32, float64_to_atom
bits_to_int
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include machine.e
a = bits_to_int(s)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΠ΄, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ Π½ΡΠ»Π΅ΠΉ, Π΄Π°ΡΡΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π°, Π² ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΠ»Π°Π΄ΡΠΈΠΉ Π·Π½Π°ΡΠ°ΡΠΈΠΉ "Π±ΠΈΡ" Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅Π½ΠΎΠΌ ΡΡΠ΄Π°, s[1].
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠ»ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ ΡΡΠ΄ s Π½Π° ΠΏΠ΅ΡΠ°ΡΡ, ΡΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π±ΠΈΡΡ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ»Π΅Π²Π°, ΡΠΎ Π΅ΡΡΡ Π² "ΠΈΠ½Π²Π΅ΡΡΠ½ΠΎΠΌ" ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠΈΡΠ΅Π», Π½ΠΎ ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±ΠΈΡΠ°ΠΌ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ Π²Π΅ΡΠ° Π±ΠΈΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ:
a = bits_to_int({1,1,1,0,1})
-- a ΡΠ°Π²Π½ΠΎ 23 (Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ 10111)
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
int_to_bits, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠ΄Π°Ρ
bk_color
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include graphics.e
bk_color(i)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· 16 ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ². Π ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½ ΠΏΠ΅ΡΠ΅ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π»ΡΠ±ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΠ΅, Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π° ΡΠΎΠ½Π΅ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π΄Π»Ρ ΡΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ 8 ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ².
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
16 ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ graphics.e.
Π ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΡΠ²Π΅Ρ 0, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠΌΡ (BLACK), Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°Π»ΠΈΡΡΡ {r,g,b}, ΡΡΠΎ ΠΈ ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠ° i.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π½Π° ΠΊΡΠ°Ρ ΡΠΊΡΠ°Π½Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²Π΅ΡΠ½ΠΎΠΉ Π±ΠΎΡΠ΄ΡΡ. Π 256-ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΡΠ²Π΅Ρ Π±ΠΎΡΠ΄ΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 17-ΠΎΠΌΡ ΡΠ²Π΅ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ Π±ΠΎΡΠ΄ΡΡΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ²Π΅ΡΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ palette().
Π ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ, Ρ.Π΅. 0 - Π§ΠΠ ΠΠ«Π, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ bk_color(0). ΠΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠΊΡΠ°Π½Π°, ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΠ΅ΡΠ°ΡΠ°ΠΉΡΠ΅ Ρ ΠΎΡΡ Π±Ρ '\n', ΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ:
bk_color(BLACK)
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
text_color, palette
bytes_to_int
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include machine.e
a = bytes_to_int(s)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ 4-Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΡΠ΄, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π±Π°ΠΉΡΠΎΠ², Π² Π°ΡΠΎΠΌ. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΄Π° s Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΌ Π΄Π»Ρ 32-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» Π½Π° ΠΌΠ°ΡΠΈΠ½Π°Ρ 386+, Ρ.Π΅. ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π·Π½Π°ΡΠ°ΡΠΈΠΉ Π±Π°ΠΉΡ ΠΏΠ΅ΡΠ²ΡΠΉ - s[1].
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΠΏ integer, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠΎΠΌΡ.
Π ΡΠ΄ s Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½Π΅Π΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ peek() ΠΈΠ· 4-Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
atom int32
int32 = bytes_to_int({37,1,0,0})
-- int32 ΡΠ°Π²Π½ΠΎ 37 + 256*1 = 293
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
int_to_bytes, bits_to_int, peek, peek4s, peek4u, poke
...
ΠΎΡ C Π΄ΠΎ D
call
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
call(a)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΡΡΠ°ΡΡΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ a. ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²ΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Euphoria Π² ΡΡΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ RET (#C3).
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΡΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π±Π°ΠΉΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ΄ΡΠ΅ΡΠ° ΡΡΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°ΡΡΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
demo\callmach.ex
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
allocate, free, peek, poke, poke4, c_proc, define_c_proc
call_back
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°:
WIN32, Linux, FreeBSD
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include dll.e
a = call_back(i)
ΠΈΠ»ΠΈ
a = call_back({i1, i})
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Euphoria-ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ (Π½ΠΎΠΌΠ΅ΡΡ) i. ΠΡΠΎΡ Π°Π΄ΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ Windows, ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π‘ΠΈ (ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (.dll) Windows ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (.so) Linux/FreeBSD) ΠΊΠ°ΠΊ 32-Π±ΠΈΡΠ½ΡΠΉ "ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ" Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π²Π°ΡΠ΅ΠΉ Euphoria-ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ΄ Windows Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΡ i1, Π΄ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΎΡΠΌΠ°Ρ (ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΡΠΌΠ΅) Π²ΡΠ·ΠΎΠ²Π° Π‘ΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ»ΠΈ i1 Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊ '+', Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ ΡΠΎΡΠΌΠ°Ρ cdecl. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°Ρ stdcall. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Linux ΠΈ FreeBSD ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΎΡΠΌΡ (Π±Π΅Π· i1), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Windows, Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π»ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, stdcall.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ "ΠΎΠ±ΡΠ°ΡΠ½ΡΡ " ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Euphoria-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ (ΠΈΠ»ΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ) Ρ ΡΠΈΡΠ»ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡ 0 Π΄ΠΎ 9. ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠ°ΡΡΠΈΡΠ°Π½Π° Π½Π° Π²ΡΠ΄Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° (ΡΠ²Π»ΡΠ»Π°ΡΡ Π±Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ), ΠΏΡΠΎΡΡΠΎ (ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ°ΠΊ) Π·Π°Π΄Π°ΠΉΡΠ΅ return 0, Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ·Π²Π°Π½Π°, Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ° (ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ), ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊ atom, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΆΠ΅ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ. ΠΠ°ΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ΄Π°Π²Π°ΡΡ 32-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Euphoria Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ signal() ΠΏΠΎΠ΄ Linux/FreeBSD, ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ½ΡΡΡ ΡΠΈΠ³Π½Π°Π» SIGTERM ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Web Π²ΡΠ΄Π°ΡΡ ΡΠΈΠ³Π½Π°Π» SIGTERM ΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ CGI, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Ρ Π²Π°ΡΠΈΠ» ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ cdecl ΠΈ Π²ΡΠ΄Π°ΡΡΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ exw. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Watcom C (Ρ Π½ΠΈΠΌ ΡΡΡΠΎΠΈΡΡΡ exw), ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ cdecl Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΡΠΈΠΏ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
demo\win32\window.exw, demo\linux\qsort.exu
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
routine_id, platform_r.htm
c_func
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°:
WIN32, Linux, FreeBSD
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
x = c_func(i, s)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ·ΡΠ²Π°Π΅Ρ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΠ»ΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ/ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Euphoria, ΠΈΠΌΠ΅ΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Π½ΠΎΠΌΠ΅Ρ) ΡΡΠ½ΠΊΡΠΈΠΈ i. ΠΡΠ³ΡΠΌΠ΅Π½Ρ i Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ, Π²ΡΠ΄Π°Π½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ define_c_func(). ΠΡΠ³ΡΠΌΠ΅Π½Ρ s ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ Π΄Π»ΠΈΠ½Ρ n, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π³Π΄Π΅ n - ΡΠΈΡΠ»ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π½ΠΎΠΌΠ΅Ρ i. Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π²ΡΠ΄Π°Π½Π½ΡΠΉ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.