рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: x, y, z, x ', y', z ', x' ', y' ', z' ', s, m and so ...
рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рд╢рдмреНрдж VARIABLE рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдмреЛрдЭрд┐рд▓, рдиреАрд░рд╕ рдФрд░ рдмрджрд╕реВрд░рдд рд╣реИред рдХреНрдпрд╛ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдордЬреЗрджрд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рд╕рдВрдХреЗрдд рджреЗрдВ рдХрд┐ рдЖрдЧреЗ рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рдирд╛рдо рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
рдЪрд░: xyzx 'y' z ' x '' y '' z '' рдПрд╕.рдПрдо. ; VARIABLES
рдПрд╕рдкреА-рдлреЛрд░реНрде рдореЗрдВ рд▓рд╛рдЧреВ рдлреЛрд░реНрдЯ рднрд╛рд╖рд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ, рдЕрдЧрд░ рдпрд╣ рд╕рдВрджрд░реНрдн рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реА рд╕рдВрджрд░реНрдн рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ NOTFOUND рд╢рдмреНрдж рдЦреЛрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред NOTFOUND рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдкрддрд╛ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рд╣реИрдВред рддреЛ, рдЖрдкрдХреЛ NOTFOUND рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░реЗ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?
рдЗрд╕ рд╢рдмреНрдж рдХреЛ рди рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рдореБрдЭреЗ рдкрд░рд┐рднрд╛рд╖рд╛ рдпрд╛рдж рд╣реИ
: рд╡рд╛рд░реНрд▓реЗ рд╕реГрдЬрди 0 ;;
рд▓реЗрдХрд┐рди рд╢рдмреНрдж рдХреНрд░рд┐рдПрдЯ рд╕реНрд╡рдпрдВ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЕрдЧрд▓реЗ рд╢рдмреНрдж рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдПрдХ рдПрдбреНрд░реЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдФрд░ рд╕реНрдЯреИрдХ рдкрд░ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╢рдмреНрдж рдмрдирд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдХ рд╕реЗ рдкрддрд╛ рдФрд░ рд▓рд╛рдЗрди рдХрд╛рдЙрдВрдЯрд░ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣, NOTFOUND рдХреА рддрд░рд╣, рдорд╛рдирдХ ANSI-94 рд╢рдмреНрдж рд╕реЗрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╕реЗ
: NOTFOUND (рдЕрддрд┐рд░рд┐рдХреНрдд рдпреВ -) рдирд┐рд░реНрдорд┐рдд 0,;
рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЖрдзрд╛рд░ рдлреЛрд░рдо рдХреА рд╕реВрдЪреА рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рдирдП NOTFOUND рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдореЗрдВ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓реЛ рдЪрд░ рд╢рдмреНрджрдХреЛрд╢ рдорд┐рд▓рддрд╛ рд╣реИред
VOCABULARY рдЪрд░
рдФрд░ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЪрд░
рд╡рд╣рд╛рдВ NOTFOUND рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд░рдЦреЗрдВ
рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рд╡рд╛рдкрд╕ рдХрд░реЗрдВ
рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢рдмреНрдж VARIABLES: рд╕рдВрджрд░реНрдн рдХреЛ рдЪрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ NOTFOUND рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИ
: рд╕рдВрд╕реНрдХрд░рдг: ALSO рдЪрд░;
рд╕рдорд╛рдкрди рд╢рдмреНрдж; VARIABLES рдПрдХ рд╕рдВрджрд░реНрдн рд▓реМрдЯрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд╣ рд╣реИ, рдХреБрд▓:
VOCABULARY рдЪрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЪрд░ : NOTFOUND (рдЕрддрд┐рд░рд┐рдХреНрдд рдпреВ -) рдирд┐рд░реНрдорд┐рдд 0,; :; рд╡рд░рд┐рдпрд╡реЗрдЬрд╝ рдкреНрд░реАрд╡рд┐рдпрд╕; рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ : рд╕рдВрд╕реНрдХрд░рдг: ALSO рдЪрд░;
рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЪрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдПрд╕рдкреА-рдлреЛрд░реНрде рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рдЪрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ред
рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ VALUE рдЪрд░, рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд╖реНрдкрд╛рджрди рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рд╢рдмреНрдж рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╢рдмреНрджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЬреЛрдбрд╝реЗ рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред рдПрдХ рдПрдХрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП, рдФрд░ рдПрдХ рд╕рдореВрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ред рджрд░рдЕрд╕рд▓, рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрдж рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЕрдЧрд░ рдпреЗ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдкрд╛рда рдкрд░ рдирд╣реАрдВ рдлреИрд▓реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред
рдЖрдЗрдП рдЗрд╕реЗ VALUE рдЪрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
VOCABULARY рдорд╛рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг : рдХреБрдЫ рдирд╣реАрдВ ...
рдФрд░ рдпрд╣рд╛рдБ рд╣рдо рдХреБрдЫ рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдпреЛрдЧреНрдпрддрд╛ рд╢рдмреНрдж VALUE рдХреЛ CREATE рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
: рдореВрд▓реНрдп рд╣реИрдбрд░ ['] _CONSTANT-CODE рд╕рдВрдХрд▓рди ,, ['] _TOVALUE-CODE рд╕рдВрдХрд▓рди, ;
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╢рдмреНрдж рд╣реЗрдбрд░, рдЬреЛ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддрд╛ рд╣реИ, рд╢рдмреНрдж рд╢реЗрд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ, рдЬреЛ рд╕реГрдЬрд┐рдд рд╢рдмреНрдж рдХрд╛ рдкрд░реНрдпрд╛рдп рд╣реИред
рдмрд╕ рдПрдХ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ рдФрд░ рд╢рдмреНрдж рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
: рдорд╛рдиреНрдп (рдПрди рдПрдбреНрд░ рдпреВ ---) SHEADER ['] _CONSTANT-CODE рд╕рдВрдХрд▓рди ,, ['] _TOVALUE-CODE рд╕рдВрдХрд▓рди, ;
рддреЛ:
VOCABULARY рдорд╛рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг :; рдорд╛рдиреНрдп рдкреВрд░реНрд╡ рдкреНрд░рд╛рдкреНрддрд┐; : рдиреЙрдЯрдЖрдЙрдЯ 0; рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ : рдореВрд▓реНрдп: ALSO рдорд╛рди 0;
рд▓реЗрдХрд┐рди рдПрдХ рдЦрд╛рдореА рд╣реИред рд╕рднреА VALUE рд╢реВрдиреНрдп рдкрд░ рдЖрд░рдВрднрд┐рдХ рд╣реИрдВред рдЗрд╕реЗ рдЦрддреНрдо рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рдмрд╕ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдорд╛рди: резрез рдЖ 22 рдмреА.рдмреА. 33 рд╕реА.рд╕реА. ? рдореВрд▓реНрдпреЛрдВ
рдпрд╣ рдЕрдкрдардиреАрдп рд╣реИред
рдЖрдЗрдП рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:
рдорд╛рди: рдЖ = резрез рдмрдм = реиреи cc = 33 ? рдореВрд▓реНрдпреЛрдВ
рдпрд╣ рд╕реБрдВрджрд░ рджрд┐рдЦрддрд╛ рд╣реИред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ "рд╕рдорд╛рди" рд╢рдмреНрдж рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рдХреЛ рдЕрдЧрд▓рд╛ рд╢рдмреНрдж рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╛рдиреА LITERAL рдХрд╛ рд▓рдЧрднрдЧ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╣реЛрдирд╛ред рдПрдХ рдЕрдиреНрдп "рдмрд░рд╛рдмрд░" рдХреЛ рдЕрдВрддрд┐рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд VALUE рдЪрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рди рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ
VOCABULARY рдорд╛рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг :; рдорд╛рдиреНрдп рдкреВрд░реНрд╡ рдкреНрд░рд╛рдкреНрддрд┐; : = BL WORD; LITERAL LATEST NAME> 9 + EXECUTE; : рдиреЙрдЯрдЖрдЙрдЯ 0; рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ : рдореВрд▓реНрдп: ALSO рдорд╛рди 0;
рдРрд╕рд╛ рд╡рд┐рдХрд▓реНрдк
рдпрд╣ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдХреЗ рдкреНрд░рддрд┐рдорд╛рди рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЖрдкрдХреЛ рдЧрдгрдирд╛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде VALUE рдЪрд░ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдорд╛рди: резрез рд╕реЗ рдЖ 22 рд╕реЗ рдмреА.рдмреА. 33 рд╕реЗ рд╕реА.рд╕реА. ? рдореВрд▓реНрдпреЛрдВ
рдорд╛рди: резрез рд╕реЗ рдЖ 22 1980 * рдЯреВ рдмреА.рдмреА. рдЖрдм рдмреАрдмреА + рдХреЛ рд╕реА.рд╕реА. ? рдореВрд▓реНрдпреЛрдВ
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ NOTFOUND рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рд╢рдмреНрдж рдХрд╛ рдЕрд░реНрде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред VALUES рдХреЗ рдмреАрдЪ: рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рд╢рдмреНрдж:: VALUES TO рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп VALUE рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
VOCABULARY рдорд╛рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг :; рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдп; : рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП; рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ : рдореВрд▓реНрдп: ALSO рдорд╛рди;
рдЖрдк рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрди рдХрд╛ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдерд┐рд░рд╛рдВрдХ: 11 рдЖрдИрдПрд╕ рдЖ 22 1980 * рдЖрдИрдПрд╕рдмреАрдПрди рдЖ рдмрдм + рдЖрдИрдПрд╕ ;
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЕрднрд┐рдпрд╛рди рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрдж рдмрдирд╛рддрд╛ рд╣реИ - рд╕рдореВрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрджред рдПрдХ рд╕рд░рд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрдж рдЖрдкрдХреЛ рдРрд╕реЗ рд╢рдмреНрдж рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рд░реНрде рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реЛрддреЗ рд╣реИрдВред рд╕рдорд╛рди рд╕рдВрдкрддреНрддрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕рдореВрд╣ рдХреЛ рд╕реНрд░реЛрдд рдкрд╛рда рдХреЗ рдПрдХ рднрд╛рдЧ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рдмреНрджреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреЛ рдЗрд╕рдХреА рдкрдардиреАрдпрддрд╛ рдФрд░ рд╕рдВрдЧрдд рдХреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрд╕рдкреА-рдПрд╕рдкреА-рдлреЛрд░реНрде рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢рдмреНрдж рдХрд╛ рд╕рдореВрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ WINAPI:ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Winctl рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, WinAPI рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдкреВрд░реЗ рдкрд╛рда рдореЗрдВ рдмрд┐рдЦрд░реА рд╣реБрдИ рд╣реИрдВ, рдЬреЛ рдЙрджрд╛рд╕ рджрд┐рдЦрддреА рд╣реИрдВред
рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ:
WINAPIS: LIB: USER32.DLL PostQuitMessage PostMessageA SetActiveWindow LIB: GDI32.DLL CreateFontA GetDeviceCaps DeleteDC LIB: COMCTL32.DLL InitCommonControlsEx ? рдЬреАрдд
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдХреИрд╕реЗ WINAPI рд╢рдмреНрдж рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
spf_win_defwords.f
: __WIN: (рдкреИрд░рд╛рдореНрд╕ "рдкреНрд░реЛрд╕реАрдЬрд░рдирд╛рдо" "рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдиреЗрдо" -) рдпрд╣рд╛рдВ> рдЖрд░ 0, winproc рдХрд╛ \ рдкрддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд╛рдо рдХрд╛ 0, \ рдкрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХрд╛ 0, \ рдкрддрд╛ , рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ # # IS-TEMP-WL 0 = рдпрджрд┐ рдпрд╣рд╛рдБ WinAPLINK @, WINAPLINK! (рд▓рд┐рдВрдХ) рддрдм рдпрд╣рд╛рдБ DUP рдЖрд░ @ рд╕реЗрд▓ + рд╕реЗрд▓ +! PARSE-NAME CHARS HERE SWAP DUP ALLOT MOVE 0 C, \ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдпрд╣рд╛рдБ DUP рдЖрд░> рд╕реЗрд▓ +! PARSE-NAME CHARS HERE SWAP DUP ALLOT MOVE 0 C, \ _ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо LoadLibraryA DUP 0 = IF -2009 THROW THEN \ ABORT "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рдорд┐рд▓реА" GetProcAddress 0 = IF -2010 THROW THEN \ ABORT "рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА" ; : WINAPI: ("рдкреНрд░реЛрд╕реАрдЬрд╝рд░рдирд╛рдо" "рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдиреЗрдо" -) (Win32 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ ProcedureName рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Winproc рдлрд╝реАрд▓реНрдб рдХрд╛ рдкрддрд╛ рдкрд╣рд▓реЗ рдХреЗ рд╕рдордп рдкрд░ рднрд░рд╛ рдЬрд╛рдПрдЧрд╛ рдкрд░рд┐рдгрд╛рдореА рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред рдкреНрд░рд╛рдкреНрдд "рдЖрдпрд╛рдд" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ C рдХреЙрд▓ рдореЗрдВред рдкрд░рд┐рдгрд╛рдо рдкрд░рд┐рдгрд╛рдо рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ) рдирдИ-WINAPI? рдЕрдЧрд░ рд╣реЗрдбрд░ рд╡рд░рдирд╛ -1 > @ @ рд╣реЗрдбрд░ рдореЗрдВ! рддрдм ['] _WAPAPI- рдХреЛрдб рд╕рдВрдХрд▓рди, __WIN: ;
рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ DLL рдХреЗ рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред WinAPI рдХреЙрд▓ рдХреЛрдб рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рдЖрдпрд╛рддрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдлрд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдЙрд╕рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдлрд┐рд░, рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред
рд╣рдорд╛рд░реА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЛ рдпрд╣ рдХреЛрдб рд░реАрдореЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛ред
; WINAPIS - рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
LIB: - рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЕрдЧрд▓реЗ рд╢рдмреНрдж рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрдлрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╢реЗрд╖ рд╢рдмреНрджреЛрдВ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ:
string to stack.f
SP @ рд╡реИрд▓реНрдпреВ рд╕реНрдкрд╕реНрдЯреЛрд░ : рдПрд╕рдкреА @ рдПрд╕рдкреА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП; : sp- рд░рд┐рд╕реНрдЯреЛрд░ рд╕реНрдкрд╕реНрдЯреЛрд░ рдПрд╕рдкреА! ; : s-allot (n рдмрд╛рдЗрдЯреНрд╕ - addr) sp-save spstore SWAP-ALIGNED DUP> R CELL- CELL- SP! рдЖрд░>; : ss (- addr u) NextWord 2> RR @ s-allot DUP DUP R @ + 0! 2R >> R SWAP R @ CMOVE R>; : s-free spstore CELL + SP! ; : 3DUP 2 PICK 2 PICK 2 PICK;
winapis.f
VOCABULARY winlibs рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд┐рдирдлрд╛рдЗрдиреНрд╕реЗрд╕ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ :; рд╡рд┐рдиреИрдкрд┐рд╕ рдПрд╕-рдлреНрд░реА рдкреНрд░реАрд╡рд┐рдпрд╕; : LIB: (- addr u id) s-free ss CR OVER LoadLibraryA DUP 0 = IF -2009 THROW THEN; : NOTFOUND (рдПрдбреНрд░ рдпреВ рдЖрдИрдбреА рдПрдбреНрд░ рдпреВ - рдПрдбреНрд░ рдпреВ рдЖрдИрдбреА) 2> рдЖрд░ 3 рдбреАрдпреВрдкреА 2 рдЖрд░> 2DUP рд╢реЗрдб ['] _WAPAPI- рдХреЛрдб рд╕рдВрдХрд▓рди, рдпрд╣рд╛рдВ> рдЖрд░ 0, winproc рдХрд╛ \ рдкрддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд╛рдо рдХрд╛ 0, \ рдкрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХрд╛ 0, \ рдкрддрд╛ -1, \ # рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ IS-TEMP-WL 0 = рдпрджрд┐ рдпрд╣рд╛рдБ WinAPLINK @, WINAPLINK! (рд▓рд┐рдВрдХ) рддрдм рдпрд╣рд╛рдБ DUP рдЖрд░ @ рд╕реЗрд▓ + рд╕реЗрд▓ +! > рдЖрд░ рдпрд╣рд╛рдБ рдкрд░ рд╕реНрд╡реИрдк рдбреБрдк рдПрд▓реЙрдЯ рдореЛ 0 0, R> \ function рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╣рд╛рдБ рдЖрд░> рд╕реЗрд▓ +! 2> рдЖрд░ рдпрд╣рд╛рдБ рдкрд░ рд╕реНрд╡реИрдк рдбреБрдк рдЕрд▓реЙрдЯ рдореЛрд╡ 0 рд╕реА, 2 рдЖрд░> \ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо рд╣реИ SWAP GetProcAddress 0 = IF -2010 THROW THEN \ ABORT "рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА" ; рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ : WINAPIS: sp-save 1 2 3 ALSO winlibs;