-- ΡΠ²Π΅Ρ Π½ΠΎΠΌΠ΅Ρ 0 (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ½ΡΠΉ) ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ Π½Π° ΠΎΡΡΠ΅Π½ΠΎΠΊ
-- Π·Π΅Π»Π΅Π½ΠΎΠ²Π°ΡΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
all_palette
peek
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
i = peek(a)
ΠΈΠ»ΠΈ ...
s = peek({a, i})
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π±Π°ΠΉΡΠ° (Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΡ 0 Π΄ΠΎ 255), ΡΡΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ a, ΠΈΠ»ΠΈ Π²ΡΠ΄Π°ΡΡ ΡΡΠ΄, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ i ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Ρ Π°Π΄ΡΠ΅ΡΠ° a.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌΠΎΠΉ ΡΠΈΠΏΠΎΠΌ integer (31 Π±ΠΈΡ). ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ atom.
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΌ, ΡΠ΅ΠΌ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎΠ΅ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΡΠΈΠΊΠ»Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°ΠΉΡΠΎΠ² ΡΡΠ°Π·Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΡ peek().
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ peek() ΠΏΠΎΠ΄Π°ΡΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΌ ΡΡΠ΄ΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π²Π½ΠΎΠ·Π½Π°ΡΠ½Ρ:
-- ΠΌΠ΅ΡΠΎΠ΄ 1
s = {peek(100), peek(101), peek(102), peek(103)}
-- ΠΌΠ΅ΡΠΎΠ΄ 2
s = peek({100, 4})
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
poke, peek4s, peek4u, allocate, free, allocate_low, free_low, call
peek4s
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
a2 = peek4s(a1)
ΠΈΠ»ΠΈ ...
s = peek4s({a1, i})
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ 4-Ρ Π±Π°ΠΉΡΠ½ΡΡ (32 Π±ΠΈΡΠ°) Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ -2147483648 Π΄ΠΎ +2147483647, ΡΡΠΈΡΠ°Π½Π½ΡΡ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° a1, ΠΈΠ»ΠΈ ΡΡΠ΄, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ i ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ 4-Π±Π°ΠΉΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ° a1 Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
32-Ρ Π±ΠΈΡΠ½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ peek4s(), ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΈΠΏΠ° integer Π² Euphoria (31-Π±ΠΈΡ), ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° atom.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ²Π»ΡΡΡΡΡ 32-Ρ Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΈΠΏΠ° integer Euphoria. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π°Π΄ΡΠ΅ΡΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ atom.
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΌ, ΡΠ΅ΠΌ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ 4-Π±Π°ΠΉΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ Π² ΡΠΈΠΊΠ»Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ 4-Π±Π°ΠΉΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΡΡΠ°Π·Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΡ peek4s().
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ peek4s() ΡΡΠ΅Π±ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ 2-Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΌ ΡΡΠ΄ΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π²Π½ΠΎΠ·Π½Π°ΡΠ½Ρ:
-- ΠΌΠ΅ΡΠΎΠ΄ 1
s = {peek4s(100), peek4s(104), peek4s(108), peek4s(112)}
-- ΠΌΠ΅ΡΠΎΠ΄ 2
s = peek4s({100, 4})
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
peek4u, peek, poke4, allocate, free, allocate_low, free_low, call
peek4u
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
a2 = peek4u(a1)
ΠΈΠ»ΠΈ ...
s = peek4u({a1, i})
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ΄Π°ΡΡ 4-Ρ Π±Π°ΠΉΡΠ½ΡΡ (32 Π±ΠΈΡΠ°) Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 4294967295, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ a1, ΠΈΠ»ΠΈ Π²ΡΠ΄Π°ΡΡ ΡΡΠ΄ ΠΈΠ· i ΡΠ°ΠΊΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ° a1 Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
32-Ρ Π±ΠΈΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠ°Ρ peek4u(), ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΈΠΏΠ° integer Π² Euphoria (31 Π±ΠΈΡ), ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° atom.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ²Π»ΡΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠΈΠΏΠ° integer Euphoria. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π°Π΄ΡΠ΅ΡΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠΈΠΏ atom.
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ 4-Ρ Π±Π°ΠΉΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΡΡΠ°Π·Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΡ peek4u(), ΡΠ΅ΠΌ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½ Π² ΡΠΈΠΊΠ»Π΅.
ΠΠ΅ ΡΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΈΠ· Π²ΠΈΠ΄Ρ, ΡΡΠΎ peek4u() ΡΡΠ΅Π±ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ 2-Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΌ ΡΡΠ΄ΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π²Π½ΠΎΠ·Π½Π°ΡΠ½Ρ:
-- ΠΌΠ΅ΡΠΎΠ΄ 1
s = {peek4u(100), peek4u(104), peek4u(108), peek4u(112)}
-- ΠΌΠ΅ΡΠΎΠ΄ 2
s = peek4u({100, 4})
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
peek4s, peek, poke4, allocate, free, allocate_low, free_low, call
PI
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
include misc.e
PI
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
PI (3.14159...) ΡΠΈΡΠ»ΠΎ ΠΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠΈΠ½ΡΡΠΎΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΈΡΠ»ΠΎ Π·Π½Π°ΠΊΠΎΠ² ΠΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π΄Π»Ρ ΡΠΈΠΏΠ° atom Π² Euphoria.
ΠΡΠΈΠΌΠ΅Ρ:
x = PI -- x Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ 3.14159...
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
sin, cos, tan
pixel
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°:
DOS32
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
pixel(x1, s)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² Π½Π° ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎ-Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΊΡΠ°Π½Π΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΎΡΠΊΠΈ s, Π³Π΄Π΅ s ΡΠ²Π»ΡΠ΅ΡΡΡ 2-Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΌ ΡΡΠ΄ΠΎΠΌ ΡΠΊΡΠ°Π½Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ {x, y}. ΠΡΠ»ΠΈ x1 ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π» Ρ ΡΠ²Π΅ΡΠΎΠΌ x1. ΠΡΠ»ΠΈ x1 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠ΄ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΎΡΠΊΠΈ s ΠΈ Π²ΠΏΡΠ°Π²ΠΎ (Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ x, y ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅).
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠΎΠ³Π΄Π° x1 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° Π±ΡΡΡΡΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ½ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ²Ρ pixel() Π² ΡΠΈΠΊΠ»Π΅. ΠΠ°Π΄Π°Π²Π°Ρ ΡΡΠ°Π·Ρ ΡΡΠ΄ ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², Π²Ρ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ Π½Π°ΡΠΈΡΡΠ΅ΡΠ΅ ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
Π Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ 19 ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° pixel() ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π±ΡΡΡΡΠ°Ρ.
Π’Π΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠΊΡΠ°Π½Π°, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ 1:
pixel(BLUE, {50, 60})
-- Π² ΡΠΎΡΠΊΠ΅ {50,60} Π²ΠΊΠ»ΡΡΠΈΡΡΡ ΠΏΠΈΠΊΡΠ΅Π» Ρ ΡΠ²Π΅ΡΠΎΠΌ BLUE(ΡΠΈΠ½ΠΈΠΉ)
ΠΡΠΈΠΌΠ΅Ρ 2:
pixel({BLUE, GREEN, WHITE, RED}, {50,60})
-- {50,60} Π²ΠΊΠ»ΡΡΠΈΡΡΡ BLUE (ΡΠΈΠ½ΠΈΠΉ)
-- {51,60} Π²ΠΊΠ»ΡΡΠΈΡΡΡ GREEN (Π·Π΅Π»ΡΠ½ΡΠΉ)
-- {52,60} Π²ΠΊΠ»ΡΡΠΈΡΡΡ WHITE (Π±Π΅Π»ΡΠΉ)
-- {53,60} Π²ΠΊΠ»ΡΡΠΈΡΡΡ RED (ΠΊΡΠ°ΡΠ½ΡΠΉ)
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
get_pixel, graphics_mode
platform
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
i = platform()
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ platform(), Π²ΡΡΡΠΎΠ΅Π½ΠΎ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Ρ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π΄Π»Ρ DOS32, WIN32, Linux ΠΈΠ»ΠΈ FreeBSD.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ex.exe, ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° DOS32. ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ exw.exe, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° WIN32. ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ exu, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Linux (ΠΈΠ»ΠΈ FreeBSD).
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ misc.e ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ:
global constant DOS32 = 1,
WIN32 = 2,
LINUX = 3,
FREEBSD = 3
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ platform(), ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΡΡΠ΅Π΄Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΡΠ΅Π½Π° Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π±ΡΠ΄ΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡΡΡ Π² Euphoria ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ platform() Π½Π΅ Π²Π»Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ². ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°: 1, 2 ΠΈΠ»ΠΈ 3.
ΠΡΠΈΠΌΠ΅Ρ:
if platform() = WIN32 then
-- Π²ΡΠ·ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Beep ΠΏΠΎΠ΄ Windows
err = c_func(Beep, {0,0})
elsif platform() = DOS32 then
-- Π·Π°ΠΏΡΡΠΊ Π·Π²ΡΠΊΠ° Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅ ΠΏΠΎΠ΄ DOS
sound(500)
t = time()
while time() do
end while
sound(0)
else
-- ΠΏΡΠΎΠΏΡΡΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠ΄ Linux/FreeBSD
end if
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
platformr.doc
poke
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
poke(a, x)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ x ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠΎΠΌ, Π² ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ a Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ x ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ, Π² ΠΏΠ°ΠΌΡΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π°Π΄ΡΠ΅ΡΠ° a, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ ΡΡΠΈΠΌ ΡΡΠ΄ΠΎΠΌ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Π ΠΏΠ°ΠΌΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ 8 Π±ΠΈΡΠΎΠ² Π²Π΅Π»ΠΈΡΠΈΠ½Ρ x, Ρ.Π΅. remainder(x, 256), Π° Π½Π΅ ΡΠ°ΠΌΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π° Ρ .
ΠΠ°ΠΏΠΈΡΡ Π² ΠΏΠ°ΠΌΡΡΡ ΡΡΠ΄Π° Π±Π°ΠΉΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΉ, ΡΠ΅ΠΌ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±Π°ΠΉΡΠΎΠ² Π² ΡΠΈΠΊΠ»Π΅.
ΠΡΠ²ΠΎΠ΄ Π² ΡΠΊΡΠ°Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ poke() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ puts() ΠΈΠ»ΠΈ printf(), Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ²Π΅ΡΡ Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ed.ex ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° Euphoria poke() Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ:
a = allocate(100) -- Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ 100 Π±Π°ΠΉΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ
-- Π·Π°Π½ΠΎΡΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Π·Π° ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ² poke():
poke(a, 97)
poke(a+1, 98)
poke(a+2, 99)
-- Π·Π°Π½ΠΎΡΠΈΡΡΡ 3 Π±Π°ΠΉΡΠ° ΡΡΠ°Π·Ρ:
poke(a, {97, 98, 99})
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
demo\callmach.ex
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
peek, poke4, allocate, free, allocate_low, free_low, call, safe.e
poke4
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
poke4(a, x)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ x ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠΎΠΌ, Π² ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ a Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ 4 Π±Π°ΠΉΡΠ° (32 Π±ΠΈΡΠ°).
ΠΡΠ»ΠΈ x ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ, Π² ΠΏΠ°ΠΌΡΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π°Π΄ΡΠ΅ΡΠ° a, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ 4-Π±Π°ΠΉΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ ΡΡΠΈΠΌ ΡΡΠ΄ΠΎΠΌ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ΅Π»ΠΈΡΠΈΠ½Π° ΠΈΠ»ΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΊ Π·Π°ΠΏΠΈΡΠΈ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 32-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΏΠΈΡΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ 4-Π±Π°ΠΉΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½, ΡΠ΅ΠΌ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΡΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½ Π² ΡΠΈΠΊΠ»Π΅.
ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ 4-Π±Π°ΠΉΡΠΎΠ²ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. Π‘ΡΠΈΡΠ°Π½Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ»ΠΈ peek4s(), ΠΈΠ»ΠΈ peek4u().
ΠΡΠΈΠΌΠ΅Ρ:
a = allocate(100) -- Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ 100 Π±Π°ΠΉΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ
-- Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½Π° 4-Π±Π°ΠΉΡΠΎΠ²Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² poke4():
poke4(a, 9712345)
poke4(a+4, #FF00FF00)
poke4(a+8, -12345)
-- Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΈ 4-Π±Π°ΠΉΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΡΠ°Π·Ρ:
poke4(a, {9712345, #FF00FF00, -12345})
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
peek4u, peek4s, poke, allocate, allocate_low, call
polygon