Added sources: emulator/PrMK , games/klavisha

git-svn-id: svn://kolibrios.org@1863 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Yogev Ezra committed 2011-02-15 11:55:49 +00:00
1 parent b63ebe25ee
commit 63cf01e274
45 files changed
+19524

No files matched your search

+254
View File
@@ -0,0 +1,254 @@
;14.04.2009 - a macros for code load library the box_lib.obj from '/sys/lib/' or current dirrectory.
; The macros for load any library/libraries:
; Copyright (c) 2009, <Lrz>
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
; * Redistributions of source code must retain the above copyright
; notice, this list of conditions and the following disclaimer.
; * Redistributions in binary form must reproduce the above copyright
; notice, this list of conditions and the following disclaimer in the
; documentation and/or other materials provided with the distribution.
; * Neither the name of the <organization> nor the
; names of its contributors may be used to endorse or promote products
; derived from this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*****************************************************************************
; This macros based on source code:
; <Lrz> - Alexey Teplov / └ыхъёхщ ╥хяыют
; Mario79, Mario - Marat Zakiyanov / ╠рЁрЄ ╟ръш эют
; Diamondz - Evgeny Grechnikov / ┼тухэшщ ├Ёхўэшъют
;------------------------
; DESCRIPTION
; Macro load_library
; Logick of work.
; A first time we must to check system path, where I belive find a system library. System path is "/sys/lib/".
; If I cannot found my library, i must to check second way. Second way is current dirrectory.
; If we cannot load library, we must show the error message:
; "I'm sorry,the programm cannot found system library box_lib.obj."
; "The find was make on 2 ways: /sys/lib/ and current dirrectory."
;
; ebx,library_name
; esi,cur_dir_path
; edi,library_path
;---------------------------------------------------------------------
; Macro test_load_library
; A first time we must to check own path in current dirrectory the program, where I belive find a system library.
; If I cannot found my library, i must to check second way. Second way is system path a "/sys/lib/".
; If we cannot load library, we must show the error message:
; "I'm sorry,the programm cannot found system library box_lib.obj."
; "The find was make on 2 ways: /sys/lib/ and current dirrectory."
macro load_library library_name, cur_dir_path, library_path, system_path, err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
{
local end_steep
;---------------------------------------------------------------------
; loading Box_Lib library
mcall 68,19,system_path ; load of sys directory
test eax,eax
jnz end_steep
mov ebx,library_name
mov esi,cur_dir_path
mov edi,library_path
copy_path ;the macros making way /current pach a program/+ name system library
mcall 68,19,library_path ; load of alternative
test eax,eax
jnz end_steep
show_error_window err_message_found_lib, head_f_l ;show error message /create window
end_steep:
import_boxlib myimport, err_message_import, head_f_i ;import
;---------------------------------------------------------------------
}
macro test_load_library library_name, cur_dir_path, library_path, system_path, err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
{
local end_steep
;---------------------------------------------------------------------
; loading Box_Lib library
mov ebx,library_name
mov esi,cur_dir_path
mov edi,library_path
copy_path ;the macros making way /current pach a program/+ name system library
mcall 68,19,library_path ; load of alternative
test eax,eax
jnz end_steep
mcall 68,19,system_path ; load of sys directory
test eax,eax
jnz end_steep
show_error_window err_message_found_lib, head_f_l ;show error message /create window
end_steep:
import_boxlib myimport, err_message_import, head_f_i ;import
;---------------------------------------------------------------------
}
macro load_libraries library_name, cur_dir_path, library_path, system_path, err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
{
local end_steep
;---------------------------------------------------------------------
; loading Box_Lib library
mcall 68,19,system_path ; load of sys directory
test eax,eax
jnz end_steep
mov ebx,library_name
mov esi,cur_dir_path
mov edi,library_path
copy_path ;the macros making way /current pach a program/+ name system library
mcall 68,19,library_path ; load of alternative
test eax,eax
jnz end_steep
show_error_window err_message_found_lib, head_f_l ;show error message /create window
end_steep:
import_boxlib myimport, err_message_import, head_f_i ;import
;---------------------------------------------------------------------
}
macro copy_path
{
local copy_path
;---------------------------------------------------------------------
; mov ebx,library_name
; mov esi,cur_dir_path
; mov edi,library_path
copy_path:
xor eax,eax
cld
.lp1:
lodsb
stosb
test eax,eax
jnz .lp1
mov esi,edi
std
.lp2:
lodsb
cmp al,'/'
jnz .lp2
mov edi,esi
mov esi,ebx
add edi,2
cld
.lp3:
lodsb
stosb
test eax,eax
jnz .lp3
;---------------------------------------------------------------------
}
macro show_error_window err_message, head
{
local red_win
local still
local button
mcall 40,0x5 ;set mask on events rewraw window and get id button.
red_win:
;draw_window:
mcall 12, 1
mcall 0, <0,300>, <0,100>, 0x33AABBCC, 0x805080D0, head
mcall 4, <10,10>, 0x90000000, err_message; _found_lib
mcall 12, 2
align 4
still: ;main loop
mcall 10 ;wait event
dec eax
jz red_win
sub eax,2
jnz still ;go to main loop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
button:
mcall 17 ;get id button
test ah,ah ;if in ah 0, then go to still
jz still
mcall -1
}
macro import_boxlib myimport, err_message_import, head_f_i
{
local import_loop
local import_find
local lp
local import_find_next
local import_found
local import_done
local exit
; initialize import
mov edx, eax
mov esi,myimport
import_loop:
lodsd
test eax, eax
jz import_done
push edx
import_find:
mov ebx, [ds:edx]
test ebx, ebx
jz exit ;import_not_found
push eax
lp:
mov cl, [ds:eax]
cmp cl, [ds:ebx]
jnz import_find_next
test cl, cl
jz import_found
inc eax
inc ebx
jmp lp
import_find_next:
pop eax
add edx, 8
jmp import_find
import_found:
pop eax
mov eax, [ds:edx+4]
mov [esi-4], eax
pop edx
jmp import_loop
exit:
add esp,4
show_error_window err_message_import, head_f_i ;show error message /create window
import_done:
;---------------------------------------------------------------------
}
+789
View File
@@ -0,0 +1,789 @@
;FpuAtoFL PROTO :DWORD,:DWORD,:DWORD
;FpuFLtoA PROTO :DWORD,:DWORD,:DWORD,:DWORD
;FpuAdd PROTO :DWORD,:DWORD,:DWORD,:DWORD
;FpuSub PROTO :DWORD,:DWORD,:DWORD,:DWORD
;FpuMul PROTO :DWORD,:DWORD,:DWORD,:DWORD
;FpuDiv PROTO :DWORD,:DWORD,:DWORD,:DWORD
;FpuSqrt PROTO :DWORD,:DWORD,:DWORD
;FpuXexpY PROTO :DWORD,:DWORD,:DWORD,:DWORD
;FpuAbs PROTO :DWORD,:DWORD,:DWORD
;FpuTrunc PROTO :DWORD,:DWORD,:DWORD
;FpuRound PROTO :DWORD,:DWORD,:DWORD
;FpuChs PROTO :DWORD,:DWORD,:DWORD
;FpuLnx PROTO :DWORD,:DWORD,:DWORD
;FpuLogx PROTO :DWORD,:DWORD,:DWORD
;FpuEexpX PROTO :DWORD,:DWORD,:DWORD
;FpuTexpX PROTO :DWORD,:DWORD,:DWORD
;FpuSin PROTO :DWORD,:DWORD,:DWORD
;FpuCos PROTO :DWORD,:DWORD,:DWORD
;FpuTan PROTO :DWORD,:DWORD,:DWORD
;FpuArcsin PROTO :DWORD,:DWORD,:DWORD
;FpuArccos PROTO :DWORD,:DWORD,:DWORD
;FpuArctan PROTO :DWORD,:DWORD,:DWORD
;FpuSinh PROTO :DWORD,:DWORD,:DWORD
;FpuCosh PROTO :DWORD,:DWORD,:DWORD
;FpuTanh PROTO :DWORD,:DWORD,:DWORD
;FpuArcsinh PROTO :DWORD,:DWORD,:DWORD
;FpuArccosh PROTO :DWORD,:DWORD,:DWORD
;FpuArctanh PROTO :DWORD,:DWORD,:DWORD
;FpuSize PROTO :DWORD,:DWORD,:DWORD
;FpuComp PROTO :DWORD,:DWORD,:DWORD
;FpuExam PROTO :DWORD,:DWORD
;FpuState PROTO :DWORD
SRC1_FPU EQU 1
SRC1_REAL EQU 2
SRC1_DMEM EQU 4
SRC1_DIMM EQU 8
SRC1_CONST EQU 16
ANG_DEG EQU 0
ANG_RAD EQU 32
DEST_MEM EQU 0
DEST_IMEM EQU 64
DEST_FPU EQU 128
SRC2_FPU EQU 256
SRC2_REAL EQU 512
SRC2_DMEM EQU 1024
SRC2_DIMM EQU 2048
SRC2_CONST EQU 4096
STR_REG EQU 0
STR_SCI EQU 32768
FPU_PI EQU 1
FPU_NAPIER EQU 2
XAM_VALID EQU 1
XAM_ZERO EQU 2
XAM_NEG EQU 4
XAM_SMALL EQU 8
XAM_INFINIT EQU 16
CMP_EQU EQU 1
CMP_GREATER EQU 2
CMP_LOWER EQU 4
; #########################################################################
;
; FpuFLtoA
;
;##########################################################################
; -----------------------------------------------------------------------
; This procedure was written by Raymond Filiatreault, December 2002
; and modified April 2003. A minor flaw was corrected in July 2003.
; Modified March 2004 to avoid any potential data loss from the FPU
;
; This FpuFLtoA function converts an 80-bit REAL number (Src) to its
; decimal representation as a zero terminated alphanumeric string which
; is returned at the specified memory destination unless an invalid
; operation is reported by the FPU or the definition of the parameters
; (with uID) is invalid.
;
; The format of the string can be specified as regular (default) or
; scientific notation. The number of decimal places returned must also be
; specified but the total number of significant digits must not exceed 16.
; When the regular format is specified, the integer portion can also be
; padded with preceding spaces to position the decimal point at a
; specified location from the start of the string.
;
; The source can be an 80-bit REAL number from the FPU itself or from
; memory.
;
; The source is not checked for validity. This is the programmer's
; responsibility.
;
; This procedure is based on using an FPU instruction to convert the
; REAL number into a specific packed decimal format. After unpacking,
; the decimal point is positioned as required.
;
; Only EAX is used to return error or success. All other CPU registers
; are preserved. All FPU registers are preserved.
;
; -----------------------------------------------------------------------
; #########################################################################
align 4
proc FpuFLtoA stdcall, lpSrc:DWORD, lpDecimal:DWORD, lpDest:DWORD, uID:DWORD
locals
tempdw dd ?
esize dd ?
Padding dd ?
Decimal dd ?
content: times 108 db ?
tempst dt ?
bcdstr dt ?
oldcw dw ?
truncw dw ?
unpacked: times 20 db ?
endl
;get the specified number of decimals for result
;and make corrections if necessary
mov eax,[lpDecimal]
test [uID],SRC2_DMEM
jz @F
mov eax,[eax] ;get the decimals from memory
@@:
push eax
movzx eax,al ;low byte - number of decimal digits
cmp eax,15
jbe @F
mov eax,15 ;a maximum of 15 decimals is allowed
@@:
mov [Decimal],eax
pop eax
movzx eax,ah ;2nd byte - number of char before decimal point
cmp eax,17
jbe @F
mov eax,17 ;a maximum of 17 characters is allowed
@@:
mov [Padding],eax
test [uID],SRC1_FPU ;is data taken from FPU?
jz @F ;continue if not
;-------------------------------
;check if top register is empty
;-------------------------------
fxam ;examine its content
fstsw ax ;store results in AX
fwait ;for precaution
sahf ;transfer result bits to CPU flag
jnc @F ;not empty if Carry flag not set
jpe @F ;not empty if Parity flag set
jz srcerr1 ;empty if Zero flag set
@@:
fsave [content]
;----------------------------------------
;check source for Src and load it to FPU
;----------------------------------------
test [uID],SRC1_FPU
jz @F
lea eax,[content]
fld tbyte [eax+28]
jmp dest0
@@:
test [uID],SRC1_REAL ;is Src an 80-bit REAL in memory?
jz srcerr ;no proper source identificaiton
mov eax,[lpSrc]
fld tbyte [eax]
jmp dest0 ;go complete process
srcerr:
frstor [content]
srcerr1:
push edi
mov edi,[lpDest]
mov eax,"ERRO";ORRE"
stosd
mov ax,"R"
stosw
pop edi
xor eax,eax
ret
dest0:
;-------------------------------------------
;first examine the value on FPU for validity
;-------------------------------------------
fxam ;examine value on FPU
fstsw ax ;get result
fwait
sahf ;transfer to CPU flags
jz maybezero
jpo srcerr ;C3=0 and C2=0 would be NAN or unsupported
jnc getnumsize ;continue if normal finite number
;--------------------------------
;value to be converted = INFINITY
;--------------------------------
push ecx
push esi
push edi
mov edi,[lpDest]
mov al,"+"
test ah,2 ;C1 field = sign
jz @F
mov al,"-"
@@:
stosb
mov eax,"INFI";IFNI"
stosd
mov eax,"NITY";YTIN"
stosd
jmp finish
;-------------------------
;value to be converted = 0
;-------------------------
maybezero:
jpe getnumsize ;would be denormalized number
fstp st0 ;flush that 0 value off the FPU
push ecx
push esi
push edi
mov edi,[lpDest]
test [uID],STR_SCI ;scientific notation?
jnz @F ;no padding
mov ecx,[Padding]
sub ecx,2
jle @F ;no padding specified or necessary
mov al," "
rep stosb
@@:
mov ax,3020h ;" 0" szstring
stosw ;write it
jmp finish
;---------------------------
; get the size of the number
;---------------------------
getnumsize:
fldlg2 ;log10(2)
fld st1 ;copy Src
fabs ;insures a positive value
fyl2x ;->[log2(Src)]*[log10(2)] = log10(Src)
fstcw [oldcw] ;get current control word
fwait
mov ax,[oldcw]
or ax,0c00h ;code it for truncating
mov [truncw],ax
fldcw [truncw] ;insure rounding code of FPU to truncating
fist [esize] ;store characteristic of logarithm
fldcw [oldcw] ;load back the former control word
ftst ;test logarithm for its sign
fstsw ax ;get result
fwait
sahf ;transfer to CPU flags
sbb [esize],0 ;decrement esize if log is negative
fstp st0 ;get rid of the logarithm
;-----------------------------------------------------------------------
; get the power of 10 required to generate an integer with the specified
; number of significant digits
;-----------------------------------------------------------------------
mov eax,[uID]
and eax,STR_SCI
jnz .els0 ;regular decimal notation
mov eax,[esize]
or eax,eax ;check if number is < 1
js @F
; .if eax > 15 ;if number is >= 10^16
cmp eax,15
jbe .endif0
or [uID],STR_SCI ;switch to scientific notation
mov [Decimal],15 ;insures 15 decimal places in result
jmp scific
.endif0:
add eax,[Decimal]
; .if eax > 15 ;if integer + decimal digits > 16
cmp eax,15
jbe .endif1
sub eax,15
sub [Decimal],eax ;reduce decimal digits as required
.endif1:
@@:
push [Decimal]
pop [tempdw]
jmp @f
.els0: ;scientific notation
scific:
mov eax,[Decimal]
sub eax,[esize]
mov [tempdw],eax
; .endif
@@:
;----------------------------------------------------------------------------------------
; multiply the number by the power of 10 to generate required integer and store it as BCD
;----------------------------------------------------------------------------------------
;.if tempdw != 0
cmp [tempdw],0
je @f
fild [tempdw]
fldl2t
fmulp st1,st0 ;->log2(10)*exponent
fld st0
frndint ;get the characteristic of the log
fxch
fsub st,st1 ;get only the fractional part but keep the characteristic
f2xm1 ;->2^(fractional part)-1
fld1
faddp st1,st0 ;add 1 back
fscale ;re-adjust the exponent part of the REAL number
fstp st1 ;get rid of the characteristic of the log
fmulp st1,st0 ;->16-digit integer
;.endif
@@:
fbstp [bcdstr] ;->TBYTE containing the packed digits
fstsw ax ;retrieve exception flags from FPU
fwait
shr eax,1 ;test for invalid operation
jc srcerr ;clean-up and return error
;------------------------------------------------------------------------------
; unpack BCD, the 10 bytes returned by the FPU being in the little-endian style
;------------------------------------------------------------------------------
push ecx
push esi
push edi
lea esi,[bcdstr+9] ;go to the most significant byte (sign byte)
lea edi,[unpacked]
mov eax,3020h
mov cl,byte [esi] ;sign byte
; .if cl == 80h
cmp cl,0x80
jne @f
mov al,"-" ;insert sign if negative number
; .endif
@@:
stosw
mov ecx,9
@@:
dec esi
movzx eax,byte [esi]
ror ax,4
ror ah,4
add ax,3030h
stosw
dec ecx
jnz @B
mov edi,[lpDest]
lea esi,[unpacked]
test [uID],STR_SCI ;scientific notation?
jnz scientific
;************************
; REGULAR STRING NOTATION
;************************
;------------------------------
; check if padding is specified
;------------------------------
mov ecx,[Padding]
or ecx,ecx ;check if padding is specified
jz nopadding
mov edx,2 ;at least 1 integer + sign
mov eax,[esize]
or eax,eax
js @F ;only 1 integer digit if size is < 1
add edx,eax ;->number of integer digits
@@:
sub ecx,edx
jle nopadding
mov al," "
rep stosb
nopadding:
pushfd ;save padding flags
movsb ;insert sign
mov ecx,1 ;at least 1 integer digit
mov eax,[esize]
or eax,eax ;is size negative (i.e. number smaller than 1)
js @F
add ecx,eax
@@:
mov eax,[Decimal]
add eax,ecx ;->total number of digits to be displayed
sub eax,19
sub esi,eax ;address of 1st digit to be displayed
pop eax ;retrieve padding flags in EAX
; .if byte ptr[esi-1] == "1"
cmp byte [esi-1],"1"
jne @f
dec esi
inc ecx
push eax ;transfer padding flags through stack
popfd ;retrieve padding flags
jle @F ;no padding was necessary
dec edi ;adjust for one less padding byte
; .endif
@@:
@@:
rep movsb ;copy required integer digits
mov ecx,[Decimal]
or ecx,ecx
jz @F
mov al,"."
stosb
rep movsb ;copy required decimal digits
@@:
jmp finish
;********************
; SCIENTIFIC NOTATION
;********************
scientific:
movsb ;insert sign
mov ecx,[Decimal]
mov eax,18
sub eax,ecx
add esi,eax
cmp byte [esi-1],"1"
pushfd ;save flags for extra "1"
jnz @F
dec esi
@@:
movsb ;copy the integer
mov al,"."
stosb
rep movsb ;copy the decimal digits
mov al,"E"
stosb
mov al,"+"
mov ecx,[esize]
popfd ;retrieve flags for extra "1"
jnz @F ;no extra "1"
inc ecx ;adjust exponent
@@:
or ecx,ecx
jns @F
mov al,"-"
neg ecx ;make number positive
@@:
stosb ;insert proper sign
;Note: the absolute value of the size could not exceed 4931
mov eax,ecx
mov cl,100
div cl ;->thousands & hundreds in AL, tens & units in AH
push eax
and eax,0ffh ;keep only the thousands & hundreds
mov cl,10
div cl ;->thousands in AL, hundreds in AH
add ax,3030h ;convert to characters
stosw ;insert them
pop eax
shr eax,8 ;get the tens & units in AL
div cl ;tens in AL, units in AH
add ax,3030h ;convert to characters
stosw ;insert them
finish:
xor eax,eax
stosb ;string terminating 0
pop edi
pop esi
pop ecx
frstor [content]
or al,1 ;to insure EAX!=0
ret
endp
; #########################################################################
align 4
; #########################################################################
; FpuCos
;##########################################################################
;
; cos(Src) -> Dest
FpuCos:
test [flags],(1 shl 30)
jz @f ;jump if angle already in radians
fldpi ;load pi (3.14159...) on FPU
fmulp
test [flags],(1 shl 31)
jnz .1
pushd 200
jmp .2
.1: pushd 180
.2: fidiv dword [esp] ;value now in radians
fwait
add esp,4 ;clean the stack
@@: fldpi
fadd st,st ;->2pi
fxch
@@: fprem ;reduce the angle
fcos
fstsw ax ;retrieve exception flags from FPU
fwait
shr al,1 ;test for invalid operation
sahf ;transfer to the CPU flags
jpe @B ;reduce angle again if necessary
fstp st1 ;get rid of the 2pi
ret
align 4
; #########################################################################
; FpuSin
;##########################################################################
;
; sin(Src) -> Dest
FpuSin:
test [flags],(1 shl 30)
jz @f ;jump if angle already in radians
fldpi ;load pi (3.14159...) on FPU
fmulp
test [flags],(1 shl 31)
jnz .1
pushd 200
jmp .2
.1: pushd 180
.2: fidiv dword [esp] ;value now in radians
fwait
add esp,4 ;clean the stack
@@:
fldpi
fadd st,st ;->2pi
fxch
fprem ;reduce the angle
fsin
fstp st1 ;get rid of the 2pi
ret
align 4
; #########################################################################
; FpuArctan
;##########################################################################
;
; atan(Src) -> Dest
FpuArctan:
fld1
fpatan
test [flags],(1 shl 30)
jz @F ;jump if angle is required in radians
test [flags],(1 shl 31)
jnz .1
pushd 200
jmp .2
.1: pushd 180
.2: fimul dword [esp] ;*180 degrees
fldpi ;load pi (3.14159...) on FPU
fdivp ;*180/pi, angle now in degrees
add esp,4 ;clean CPU stack
ftst ;check for negative angle
fstsw ax ;retrieve status word from FPU
fwait
sahf
jnc @F ;jump if positive number
test [flags],(1 shl 31)
jnz .3
pushd 400
jmp .4
.3: pushd 360
.4: fiadd dword [esp] ;angle now 0-360
fwait
add esp,4 ;clean CPU stack
@@:
ret
align 4
; #########################################################################
; FpuTan
;##########################################################################
; a = tan(x)
FpuTan:
fldpi ;load pi (3.14159...) on FPU
fadd st,st ;->2pi
fxch
test [flags],(1 shl 30)
jz @F ;jump if angle already in radians
test [flags],(1 shl 31)
jnz .1
pushd 400
jmp .2
.1: pushd 360
.2: fmul st,st1
fidiv dword [esp] ;value now in radians
pop eax ;clean the stack
@@: fprem ;reduce the angle
fptan
fstp st ;get rid of the 1
fstp st1 ;get rid of the 2pi
ret
align 4
; #########################################################################
; FpuArccos
;##########################################################################
; sqrt(1-Src^2)
; acos(Src) = atan ------------- -> Dest
; Src
FpuArccos:
fld st ;copy cosine value
fmul st0,st1 ;cos^2
fld1
fsubrp ;1-cos^2 = sin^2
fsqrt ;->sin
fxch
fpatan ;i.e. arctan(sin/cos)
test [flags],(1 shl 30)
jz @F ;jump if angle is required in radians
test [flags],(1 shl 31)
jnz .1
pushd 200
jmp .2
.1: pushd 180
.2: fimul dword [esp] ;*180 degrees
fldpi ;load pi (3.14159...) on FPU
fdivp ;*180/pi, angle now in degrees
pop eax ;clean CPU stack
@@:
ret
align 4
; #########################################################################
; FpuArcsin
;##########################################################################
; Src
; asin(Src) = atan ------------- -> Dest
; sqrt(1-Src^2)
FpuArcsin:
fld st0 ;copy sine value
fmul st0,st0 ;sin^2
fld1
fsubrp ;1-sin^2 = cos^2
fsqrt ;->cos
fpatan ;i.e. arctan(sin/cos) = arcsin
test [flags],(1 shl 30)
jz @F ;jump if angle is required in radians
test [flags],(1 shl 31)
jnz .1
pushd 200
jmp .2
.1: pushd 180
.2: fimul dword [esp] ;*180 degrees
fldpi ;load pi (3.14159...) on FPU
fdivrp ;*180/pi, angle now in degrees
add esp,4 ;clean CPU stack
@@:
ret
align 4
; #########################################################################
; FpuEexpX
;##########################################################################
; e^(Src) = antilog2[ log2(e) * Src ] -> Dest
FpuEexpX:
fldl2e ;->log2(e)
fmulp ;->log2(e)*Src
fld st0 ;copy the logarithm
frndint ;keep only the characteristic
fsub st1,st ;keeps only the mantissa
fxch ;get the mantissa on top
f2xm1 ;->2^(mantissa)-1
fld1
faddp ;add 1 back
fscale ;scale it with the characteristic
fstp st1 ;get rid of the characteristic
ret
align 4
; #########################################################################
; FpuXexpY
;##########################################################################
; Src1^Src2 = antilog2[ log2(Src1) * Src2 ] -> Dest
FpuXexpY:
fxch ;set up FPU registers for next operation
fyl2x ;->log2(Src1)*exponent
fld st0 ;copy the logarithm
frndint ;keep only the characteristic
fsub st1,st ;keeps only the mantissa
fxch ;get the mantissa on top
f2xm1 ;->2^(mantissa)-1
fld1
faddp ;add 1 back
fscale ;scale it with the characteristic
fstp st1 ;overwrite the characteristic
ret
if 0
exp:
.N equ 10
xor eax,eax
mov ecx,.N
fld1
.0: dec ecx
jz .end
mov eax,.N
sub eax,ecx
mov [.d],eax
fild [.d]
@@: dec eax
jz @f
mov [.d],eax
fild [.d]
fmulp
jmp @b
@@: mov eax,.N
sub eax,ecx
fld st2
@@: dec eax
jz @f
fld st3
fmulp
jmp @b
@@: fdivrp
faddp
jmp .0
.end: fxch
fstp st0
ret
.d dd 0
endf
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
__CPU_type fix p5
@@ -0,0 +1,739 @@
<HTML>
<HEAD>
<TITLE>┴3-34 - ъЁрЄъюх ЁєъютюфёЄтю</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META name="keywords" content="╩ры№ъєы ЄюЁ ┴3-34 - ъЁрЄъюх ЁєъютюфёЄтю.">
</HEAD>
<BODY bgcolor="#FFFFFF">
<TABLE width="96%" border="0" align="center">
<TR>
<TD height="102" width="33%"><FONT color="#FF0000">┬эшьрэшх!</FONT> ─рээ√щ
фюъєьхэЄ эрїюфшЄё  т яЁюЎхёёх ЁрчЁрсюЄъш ш ьюцхЄ ёюфхЁцрЄ№ ю°шсъш.</TD>
<TD height="102" width="28%">&nbsp;</TD>
<TD height="102" width="39%"><FONT size="-1"><I>─рээ√щ фюъєьхэЄ - хёЄ№ ёшэЄхч
юЁшушэры№эюую &quot;╨єъютюфёЄтр яю ¤ъёяыєрЄрЎшш&quot; ё фюяюыэхэш ьш ртЄюЁр
яЁюуЁрьь√ &quot;╩ры№ъєы ЄюЁ ┴3-34&quot;. </I></FONT></TD>
</TR>
</TABLE>
<P align="center">&nbsp;</P>
<P align="center"><B><FONT size="+2" color="#CC0000">╩ры№ъєы ЄюЁ ┴3-34.</FONT></B></P>
<P align="center"><B><FONT color="#000000">╤юфхЁцрэшх яръхЄр:<BR>
<A href="b3-34help0.htm">╩ЁрЄъюх ЁєъютюфёЄтю</A></FONT></B><FONT color="#000000"><B>
</B><FONT color="#666666">(¤ЄюЄ Їрщы) </FONT><B> <A href="b3-34help1.htm">╥рсышЎр
ъюьрэф</A> <A href="b3-34help2.htm"> ╬яшёрэшх яЁюуЁрьь√</A></B></FONT></P>
<P align="center"><B><FONT size="+2" color="#CC0000"><BR>
</FONT><FONT size="+2">╩ЁрЄъюх ЁєъютюфёЄтю.</FONT></B></P>
<P align="center"><B><BR>
</B></P>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>═єцхэ ыш ┬рь Єръющ ъры№ъєы ЄюЁ?</B></P>
<P>╩ры№ъєы ЄюЁ <B>┴3-34</B>  ты хЄё  яЁюуЁрььшЁєхь√ь ьшъЁюъы№ъєы ЄюЁюь (╧╠╩)
ш яЁхфэрчэрўхэ фы  т√яюыэхэш  эрєўэ√ї, шэцхэхЁэ√ї ш ёЄрЄшёЄшўхёъшї Ёрёў╕Єют.
┬ юЄышўшх юЄ яЁюёЄ√ї ъры№ъєы ЄюЁют, т <B>┴3-34</B> юЄёєЄёЄтєхЄ ъыртш°р
= (Ёртэю). ┬ ┴3-34 ёэрўрыр ттюф Єё  юяхЁрэф√, чрЄхь Ёх°рхЄё  ўЄю ё эшьш
фхырЄ№. ═ряЁшьхЁ, ўЄюс√ т√ўшёышЄ№ ёєььє 2+2 эрфю эрцрЄ№ эр ъыртш°є 2,
чрЄхь эр ёшэ■■ ъыртш°є &quot;ёЄЁхыър ттхЁї&quot;, чрЄхь эр ъыртш°є 2 ш
эр ёшэ■■ ъыртш°є +, эр шэфшърЄюЁх т√ётхЄшЄё  Ёхчєы№ЄрЄ (4). ┼ёыш ┬рь эрфю
ёюїЁрэшЄ№ эхёъюы№ъю фышээ√ї ўшёхы фы  яютЄюЁэюую шї шёяюы№чютрэш , фюёЄрЄюўэю
яюёых ттюфр ўшёыр эрцрЄ№ фтх ъыртш°ш - ╧ ш ы■сє■, юЄ 0 фю F, ш яЁюфюыцшЄ№
ЁрсюЄє. ╧ютЄюЁшь яЁхф√фє∙шщ яЁшьхЁ, Єюы№ъю яЁш ¤Єюь ёюїЁрэшь юяхЁрэф√
т ярь Єш. ═рцшьрхь ъыртш°є 2, ъыртш°є ╧, ъыртш°є 1, ъыртш°є 2, ъыртш°є
╧, ъыртш°є 2, ъыртш°є +, эр шэфшърЄюЁх т√ётхЄшЄё  Ёхчєы№ЄрЄ (4). ╥хяхЁ№
яЁютхЁшь, ўхьє сєфхЄ Ёртэю яЁюшчтхфхэшх ттхф╕э√ї Ёрэхх ўшёхы. ═рцшьрхь
ъыртш°є ╚╧, ъыртш°є 1, ъыртш°є ╚╧, ъыртш°є 2, ёшэ■■ ъыртш°є X (єьэюцшЄ№).
▌Єшь тёх єфюсёЄтр &quot;ьр°шээ√&quot; эх шёўхЁя√тр■Єё . ╬эш яЁю ты ■Єё 
т яюыэющ ьхЁх Єюуфр, ъюуфр ЄЁхсє■Єё  ьэюуюўшёыхээ√х т√ўшёыхэш  фы  ёюёЄртыхэшх
ЄрсышЎ ш уЁрЇшъют.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>╩ры№ъєы ЄюЁ шьххЄ:</B></P>
<UL>
<LI> яЁюуЁрьэє■ ярь Є№ юс·╕ьюь т 100 шыш 256 °руют;</LI>
<LI>16 рфЁхёєхь√ї ЁхушёЄЁют ярь Єш фы  їЁрэхэш  фрээ√ї шыш рфЁхёют яхЁхїюфр
т яЁюуЁрььх;</LI>
<LI> ъюьрэф√ яЁ ь√ї ш ъюётхээ√ї яхЁхїюфют т яЁюуЁрььх, ъюьрэф√ т√чютр
яюфяЁюуЁрь ш ъюьрэф√ тючтЁрЄр шч яюфяЁюуЁрь;</LI>
<LI>тючьюцэюёЄ№ юсЁр∙хэш  ъ яюфяЁюуЁрььх тэєЄЁш яюфяЁюуЁрь. ├ыєсшэр Єръшї
юсЁр∙хэшщ Ёртэр 5;</LI>
<LI>ъюьрэф√ яЁ ьюую ш ъюётхээюую схчєёыютэюую яхЁхїюфр;</LI>
<LI>ўхЄ√Ёх Єшяр ъюьрэф яЁ ьюую ш ъюётхээюую єёыютэюую яхЁхїюфр (яю єёыютш ь
x=0, x!=0 (эх Ёртэю 0), x&gt;=0 (сюы№°х шыш Ёртэ хЄё  0), x&lt;0);</LI>
<LI>ъюьрэф√ юЁурэшчрЎшш Ўшъыют;</LI>
<LI>ъюьрэф√ ъюётхээющ чряшёш ёюфхЁцшьюую ЁхушёЄЁр X т ЁхушёЄЁ√ ярь Єш;</LI>
<LI>ъюьрэф√ ъюётхээющ шэфшърЎшш ёюфхЁцшьюую ЁхушёЄЁют ярь Єш;</LI>
<LI>ъюьрэф√ ёсЁюёр ёў╕Єўшър рфЁхёют т эєыхтюх ёюёЄю эшх;</LI>
<LI>ъюьрэфр яєёър ш юёЄрэютъш яЁш ртЄюьрЄшўхёъюь т√ўшёыхэшш яю яЁюуЁрььх;</LI>
<LI>ъюьрэфр яю°руютюую т√яюыэхэш  яЁюуЁрьь√ т Ёхцшьх "└тЄюьрЄшўхёър  ЁрсюЄр";</LI>
<LI>шэфшърЎш  ъюфют ЄЁ╕ї яюёыхфютрЄхы№э√ї °руют яЁюуЁрьь√ ш Єхъє∙хую ёюёЄю эш 
ёў╕Єўшър рфЁхёют;</LI>
<LI>ъыртш°ш яю°руютюую яЁюёьюЄЁр яЁюуЁрьь√ т ёЄюЁюэє єтхышўхэш  шыш єьхэ№°хэш 
рфЁхёют т Ёхцшьх &quot;╧ЁюуЁрььшЁютрэшх&quot;;</LI>
<LI>ъюьрэфр т√тюфр Ёхчєы№ЄрЄют т Їрщы фы  яюёыхфє■∙хщ яхўрЄш эр яЁшэЄхЁх</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>┬тюф ўшёхы.</B></P>
<P align="left">┬тюф ўшёхы, юяхЁрЎшщ ш ъюьрэф т ьшъЁюъры№ъєы ЄюЁ юёє∙хёЄты хЄё 
эрцрЄшхь ёююЄтхЄёЄтє■∙шї ъыртш° ыхтющ ъэюяъющ ь√°ш. ╚ьххЄё  яюър эх
яюыэюёЄ№■ Ёхрышчютрээр  тючьюцэюёЄ№ ттюфр яюёЁхфёЄтюь ъыртшрЄєЁ√. <FONT color="#999999">(═рфю
юЄьхЄшЄ№, ўЄю ёыюцэюёЄ№ ЁхрышчрЎшш ттюфр ё ъыртшрЄєЁ√ юсєёыютыхэр юЄёєЄёЄтшхь
яюфїюф ∙шї яю ёь√ёыє эрчтрэшщ эр ъыртш°рї ёЄрэфрЁЄэющ ъыртшрЄєЁ√. └тЄюЁ
с√ы с√ сыруюфрЁхэ чр Ўхээ√щ ёютхЄ яю ¤Єющ яЁюсыхьх.) <FONT color="#000000">╠эюушх
ъыртш°ш шьх■Є фтющэє■ ш ЄЁющэє■ ёшьтюышъє. ╬фшэ ёшьтюы шчюсЁрц╕э эхяюёЁхфёЄтхээю
эр ъыртш°х, тЄюЁющ - эрф ъыртш°хщ ъЁрёэ√ь ЎтхЄюь, ЄЁхЄшщ - ёэшчє шыш
ёяЁртр юЄ ъыртш°ш ў╕Ёэ√ь ЎтхЄюь. ┬тюф ЇєэъЎшш, ёшьтюы ъюЄюЁющ шчюсЁрц╕э
ъЁрёэ√ь ЎтхЄюь эрф ъыртш°хщ, юёє∙хёЄты хЄё  эрцрЄшхь эр яЁхЇшъёэє■ ъыртш°є
F шыш ╩, чрЄхь эр ъыртш°є эрф ъюЄюЁющ шчюсЁрц╕э ёшьтюы ттюфшьющ ЇєэъЎшш.
═рчэрўхэшх ъыртш° яЁштхфхэю т <FONT color="#6600CC"><A href="b3-34help1.htm">ЄрсышЎх
ъюьрэф</A> <FONT color="#000000">(ЁрчьхЁ Їрщыр &gt;81 ъсрщЄ).</FONT></FONT></FONT></FONT></P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>─тр Ёхцшьр ЁрсюЄ√ ъры№ъєы ЄюЁр.</B></P>
<P align="left"><B>"└тЄюьрЄшўхёър  ЁрсюЄр&quot;</B> - юёэютэющ Ёхцшь ЁрсюЄ√.<BR>
<B>"╧ЁюуЁрььшЁютрэшх"</B> - Ёхцшь яЁхфэрчэрўхэ фы  ттюфр ъюфр яЁюуЁрьь√,
тъы■ўрхЄё  яюёЁхфёЄтюь эрцрЄш  эр ъыртш°ш F ш ╧╨├. ┬√їюф шч Ёхцшьр - эрцрЄшхь
ъыртш° F ш └┬╥.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>╨хушёЄЁ√ ёЄхър.</B></P>
<P align="left"><FONT color="#999999"><FONT color="#000000">┬ ьшъЁюъы№ъєы ЄюЁх
шьх■Єё  5 юяхЁрЎшюээ√ї ЁхушёЄЁют X1, X, Y, Z, T. ╨хушёЄЁ X ёыєцшЄ фы 
яЁш╕ьр ш їЁрэхэш  ттюфшьюую ўшёыр ш Ёхчєы№ЄрЄр т√ўшёыхэшщ. ┼ую ёюфхЁцшьюх
юЄюсЁрцрхЄё  эр шэфшърЄюЁх. </FONT><FONT color="#999999"><FONT color="#000000">╨хушёЄЁ
Y</FONT></FONT><FONT color="#000000"> ёыєцшЄ фы  яЁш╕ьр шэЇюЁьрЎшш шч
ЁхушёЄЁр X, ўЄю юсхёяхўштрхЄ яЁш эхюсїюфшьюёЄш, ттюф т ЁхушёЄЁ X тЄюЁюую
ўшёыр. ╟рэхёхэшх </FONT><FONT color="#999999"><FONT color="#000000">ўшёыр</FONT></FONT>
<FONT color="#000000">т ЁхушёЄЁ Y яЁюшёїюфшЄ яЁш эрцрЄшш эр ъэюяъє &quot;ёЄЁхыър
ттхЁї&quot;.</FONT></FONT></P>
</DIV>
</TD>
</TR>
<TR>
<TD height="897">
<TABLE width="100%" border="0">
<TR>
<TD width="17%" height="447"><IMG src="stack1.gif" width="119" height="159" alt="╨шё. 1"></TD>
<TD width="83%">
<P align="center"><FONT size="+1">╤їхьрЄшўэюх яЁхфёЄртыхэшх ЁхушёЄЁют
ёЄхър. </FONT></P>
<P>╨хушёЄЁ√ ёЄхър X, Y, Z ш T юЁурэшчютрэ√ яю яЁшэЎшяє ьрурчшээющ
ярь Єш, ъюуфр яюёыхфютрЄхы№эю чряшёрээр  шэЇюЁьрЎш  ьюцхЄ с√Є№ ёўшЄрэр
Єюы№ъю т яюёыхфютрЄхы№эюёЄш, юсЁрЄэющ яюёыхфютрЄхы№эюёЄш чряшёш
(яюёыхфэхх чряшёрээюх ўшёыю  ты хЄё  яхЁт√ь). ═ряЁшьхЁ, ъюуфр ттюфшЄё 
юяхЁрэф т ЁхушёЄЁ X ъюьрэфющ ўЄхэш  шч ЁхушёЄЁр ярь Єш, Єю ёюфхЁцшьюх
ЁхушёЄЁр X ъюяшЁєхЄё  т ЁхушёЄЁ Y (ёфтшурхЄё  ттхЁї), р яЁхф√фє∙хх
ёюфхЁцшьюх ЁхушёЄЁр Y ъюяшЁєхЄё  т ЁхушёЄЁ Z, яЁхф√фє∙хх ёюфхЁцшьюх
ЁхушёЄЁр Z ъюяшЁєхЄё  т ЁхушёЄЁ T. ╧Ёш т√яюыэхэшш <FONT color="#6600CC"><A href="#two_place_operation">фтєїьхёЄэющ
юяхЁрЎшш</A></FONT> тчршьюфхщёЄтє■Є ЁхушёЄЁ√ Y ш X. ╨хчєы№ЄрЄ яюьх∙рхЄё 
т ЁхушёЄЁ X, ЁхушёЄЁ Y яюыєўрхЄ ёюфхЁцшьюх ЁхушёЄЁр Z, ЁхушёЄЁ Z
яюыєўрхЄ ёюфхЁцшьюх ЁхушёЄЁр T, р ёюфхЁцшьюх ЁхушёЄЁр T юёЄр╕Єё 
эхшчьхээ√ь. ╨хушёЄЁ X1 яюыєўрхЄ ёюфхЁцшьюх ЁхушёЄЁр X, ъюЄюЁюх Єрь
с√ыю фю т√яюыэхэш  ¤Єющ юяхЁрЎшш (Ёшё. 5). <A href="#register_X1">╨хушёЄЁ
X1 </A>ёыєцшЄ фы  ёюїЁрэхэш  яЁхф√фє∙хую ёюфхЁцшьюую ЁхушёЄЁр X.
</P>
</TD>
</TR>
<TR>
<TD width="17%" height="159"><IMG src="stack2.gif" width="119" height="159" align="top" alt="╨шё. 2"></TD>
<TD width="83%">
<P align="center">&nbsp;</P>
<P align="center"><B>╩юьрэфр яЁюфтшцхэш  ёЄхър ттхЁї.<BR>
</B>(ёЄЁхыър ттхЁї)</P>
<P align="left">╤фтшу ёюфхЁцшьюую ЁхушёЄЁют ёЄхър яЁюшёїюфшЄ яю ёїхьх:
X->Y->Z->T (Ёшё. 2). ╤юфхЁцшьюх ЁхушёЄЁр Ёхчєы№ЄрЄр яЁхф√фє∙хщ юяхЁрЎшш
X1 эх шчьхэ хЄё .</P>
<P align="left">&nbsp;</P>
</TD>
</TR>
<TR>
<TD width="17%" height="195"><IMG src="stack3.gif" width="119" height="159" alt="╨шё. 3"></TD>
<TD width="83%">&nbsp;</TD>
</TR>
<TR>
<TD width="17%" height="168"><IMG src="stack4.gif" width="119" height="159" alt="╨шё. 4"></TD>
<TD width="83%">
<P align="center"><B>╩юьрэфр юсьхэр ёюфхЁцшь√ь ЁхушёЄЁют X ш Y.<BR>
</B>(эр ъыртш°х шчюсЁрцхэю XY ёю ёЄЁхыърьш)</P>
<P align="center"><BR>
╤їхьр юсьхэр ёюфхЁцшь√ь ЁхушёЄЁют яюърчрэр эр Ёшёєэъх 4.</P>
</TD>
</TR>
<TR>
<TD width="17%" height="174"><IMG src="stack5.gif" width="119" height="159" alt="╨шё. 5"></TD>
<TD width="83%">&nbsp;</TD>
</TR>
<TR>
<TD width="17%" height="226"><IMG src="stack6.gif" width="119" height="176" alt="╨шё. 6"></TD>
<TD width="83%">
<P align="center"><B><A name="register_X1"></A>╨хушёЄЁ яЁхф√фє∙хую
Ёхчєы№ЄрЄр.</B></P>
<P align="left">┬ фюяюыэхэшх ъ ўхЄ√Ё╕ь ёЄхъют√ь ЁхушёЄЁрь т ьшъЁюъы№ъєы ЄюЁх
шьххЄё  х∙╕ юфшэ ЁхушёЄЁ , эрч√трхь√щ ЁхушёЄЁюь яЁхф√фє∙хую Ёхчєы№ЄрЄр.
▌ЄюЄ ЁхушёЄЁ ёюїЁрэ хЄ чэрўхэшх ўшёыр, ъюЄюЁюх эрїюфшыюё№ т ЁхушёЄЁх
X фю т√яюыэхэш  юяхЁрЎшш. ─ы  яЁютхЁъш ¤Єюую ўшёыр эрцьшЄх ъыртш°ш
F ш ┬ї. ╧Ёш ¤Єюь яЁюшчющф╕Є яхЁхьх∙хэшх шэЇюЁьрЎшш т ёЄхъх (Ёшё.
6): X-&gt;Y-&gt;Z-&gt;T, X1-&gt;X.</P>
</TD>
</TR>
<TR>
<TD width="17%" height="180"><IMG src="stack7.gif" width="119" height="171" alt="╨шё. 7"></TD>
<TD width="83%" height="180">
<DIV align="center">
<P>&nbsp;</P>
<P align="center"><B>╩юьрэфр Rotate.<BR>
</B>(т юЁшушэрых шчюсЁрцхэю ъюы№Ўю ёю ёЄЁхыърьш)</P>
<P align="left">┬ Ёхчєы№ЄрЄх т√яюыэхэш  ¤Єющ ъюьрэф√ юсьхэ ЁхушёЄЁрьш
ёЄхър яЁюшчющф╕Є яю ёїхьх: X->X1, T->Z->Y->X, X1->T (Ёшё. 7).</P>
</DIV>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<DIV align="center">
<P><B>╨хушёЄЁ√ юс∙хую эрчэрўхэш .</B></P>
<P align="left">▌Єю 16 рфЁхёєхь√ї ЁхушёЄЁют ярь Єш фы  їЁрэхэш  фрээ√ї
шыш рфЁхёют яхЁхїюфют т яЁюуЁрььх. ═юьхЁ ЁхушёЄЁр юсючэрўрхЄё  °хёэрфЎрЄшЁшўэ√ь
ўшёыюь - юЄ 0 фю F. ┬ юЁшушэрых &quot;ЁєъютюфёЄтр яю ¤ъёяыєрЄрЎшш&quot;
т эрчтрэшх ¤Єшї ЁхушёЄЁют ттхф╕э яЁхЇшъё RG (RG0, RG1 ... ш Є.ф.). ╚ч
<FONT color="#999999"><FONT color="#000000"><FONT color="#6600CC"><A href="b3-34help1.htm">ЄрсышЎ√
ъюьрэф </A></FONT></FONT></FONT>тшфэю, ўЄю ъюф ъюьрэф юсЁр∙хэш  ъ ЁхушёЄЁрь
юфэючэрўэю юяЁхфхы хЄё  тЄюЁ√ь яюыєсрщЄюь ъюфр ъюьрэф√, эряЁшьхЁ, Єръшї
ъръ 40 -4F (чряшё№ т ЁхушёЄЁ ярь Єш - ъыртш°ш ╧, 0 фю ╧.F), 60 -6F (шчтыхўхэшх
шч ЁхушёЄЁют ярь Єш т ЁхушёЄЁ X - ъыртш°ш ╧, 0 фю ╧.F) ш фЁєушї ъюьрэфрї.
</P>
</DIV>
</TD>
</TR>
<TR>
<TD>
<DIV align="center">
<P><B><A name="stack_of_return"></A>╨хушёЄЁ√ ёЄхър тючтЁрЄр.</B></P>
<P align="left">╩ры№ъєы ЄюЁ шьххЄ 5 ЁхушёЄЁют юсЁрчє■∙шї ёЄхъ тючтЁрЄр,
ъюЄюЁ√х яЁюуЁрьэю эхфюёЄєяэ√, юфэръю юэш яючтюы ■Є яЁюуЁрььх т√чтрЄ№
фю 5-Єш тыюцхээ√ї яюфяЁюуЁрь. ┬  ўхщърї ёЄхър тючтЁрЄр їЁрэ Єё  рфЁхёр
тючтЁрЄр шч яюфяЁюуЁрь.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD height="326">
<DIV align="left">
<P align="center"><A name="one_place_operation"></A><B>╬фэюьхёЄэ√х юяхЁрЎшш.</B></P>
<P>╬фэюьхёЄэ√х юяхЁрЎшш - ¤Єю юяхЁрЎшш фы  т√яюыэхэш  ъюЄюЁ√ї ЄЁхсєхЄё 
юфшэ юяхЁрэф. ╬яхЁрэф, эрф ъюЄюЁрь яЁюшчтюфшЄё  юяхЁрЎш  эрїюфшЄё  т
ЁхушёЄЁх X ш т√ётхўштрхЄё  эр шэфшърЄюЁх. ╨хчєы№ЄрЄ юяхЁрЎшш чряшё√трхЄё 
т ЁхушёЄЁ X, яЁш ¤Єюь ёюфхЁцшьюх юёЄры№э√ї ЁхушёЄЁют эх шчьхэ хЄё .
╤ыхфє■∙шх юяхЁрЎшш т ┴3-34  ты ■Єё  юфэюьхёЄэ√ьш: </P>
</DIV>
<UL>
<LI>
<DIV align="left">т√ўшёыхэшх ыюурЁшЇьшўхёъшї ЇєэъЎшщ (lg, ln);</DIV>
</LI>
<LI>ёЄхяхээ√ї ЇєэъЎшщ (x^2 - тючтхфхэшх т ътрфЁрЄ, e^x, 10^x);</LI>
<LI>ЄЁшуюэюьхЄЁшўхёъшї яЁ ь√ї ш юсЁрЄэ√ї ЇєэъЎшщ ();</LI>
<LI>т√ўшёыхэшх ътрфЁрЄэюую ъюЁэ  (sqr);</LI>
<LI>т√ўшёыхэшх юсЁрЄэющ тхышўшэ√(1/x);</LI>
<LI>ттюф ўшёыр яш (PI);<BR>
</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="two_place_operation"></A><B>─тєїьхёЄэ√х юяхЁрЎшш.</B></P>
<P align="left">─тєїьхёЄэ√х юяхЁрЎшш - ¤Єю юяхЁрЎшш фы  т√яюыэхэш  ъюЄюЁ√ї
ЄЁхсєхЄё  фтр юяхЁрэфр, Ёрёяюыюцхэ√ї т ЁхушёЄЁрї X ш Y. ╩ Єръшь юяхЁрЎш ь
юЄэюё Єё  ўхЄ√Ёх рЁшЇьхЄшўхёъшї фхщёЄтш  (ёыюцхэшх, т√ўшЄрэшх, єьэюцхэшх
ш фхыхэшх) ш т√ўшёыхэшх ёЄхяхээющ ЇєэъЎшш x^y (x т ёЄхяхэш y). ╨хчєы№ЄрЄ
юяхЁрЎшш чряшё√трхЄё  т ЁхушёЄЁ X. ╧Ёш ¤Єюь шэЇюЁьрЎш  т ЁхушёЄЁх Y,
їЁрэ ∙р ё  фю т√яюыэхэш  юяхЁрЎшш чрьхэ хЄё  <FONT color="#000000">ёюфхЁцшь√ь
ЁхушёЄЁр Z. ╤їхьр яхЁхфтшцхэш  т ёЄхъх T=T-&gt;Z-&gt;Y, X1=ёюфхЁцшьюьє
ЁхушёЄЁр X фю т√яюыэхэш  юяхЁрЎшш</FONT>.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B><A name="chain_calculations"></A>╓хяюўхўэ√х т√ўшёыхэш .</B></P>
<P align="left"> ┼ёыш эр шэфшърЄюЁх т√ётхўштрхЄё  Ёхчєы№ЄрЄ яЁхф√фє∙шї
т√ўшёыхэшщ, Єю эрсюЁ эр ъыртшрЄєЁх эютюую ўшёыр ртЄюьрЄшўхёъш яхЁхфтшурхЄ
шэЇюЁьрЎш■ шч ЁхушёЄЁр X т ЁхушёЄЁ Y. <FONT color="#000000">╧хЁхьх∙хэшх
т ёЄхъх яЁюшёїюфшЄ яю ёїхьх X-&gt;Y-&gt;Z-&gt;T, яЁхф√фє∙хх ёюфхЁцшьюх
T ЄхЁ хЄё </FONT>. ╥ръшь юсЁрчюь, Ёхчєы№ЄрЄ т√ўшёыхэш  яЁхф√фє∙хщ юяхЁрЎшш
ьюцхЄ єўрёЄтютрЄ№ т ърўхёЄтх тЄюЁюую юяхЁрэфр яЁш т√яюыэхэшш яюёыхфє■∙шї
т√ўшёыхэшщ. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B><A name="bp_jump"></A>╩юьрэфр схчєёыютэюую яхЁхїюфр.</B></P>
<P>╩юьрэфр схчєёыютэюую яхЁхїюфр ЁхрышчєхЄё  ъыртш°хщ ┴╧ ш яюёыхфє■∙шь ттюфюь
рфЁхёр яхЁхїюфр. ▌Єр ъюьрэфр яЁхЁ√трхЄ хёЄхёЄтхээ√щ яюЁ фюъ т√яюыэхэш 
яЁюуЁрьь√ ш юёє∙хёЄты хЄ яЁхїюф ъ т√яюыэхэш■ ъюьрэф√, єърчрээющ т рфЁхёх
яхЁхїюфр. ─ышэр ъюьрэф√ - фтр °рур. ┼╕ ьюцэю шёяюы№чртрЄ№ х∙╕ фы  Ёєўэюую
яхЁхїюфр ъ цхырхьюьє рфЁхёє яЁш юЄырфъх яЁюуЁрьь√.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="conditional_jump"></A><B>╩юьрэф√ яхЁхїюфр яю єёыютш■.</B></P>
<P align="left">╩юьрэф√ яхЁхїюфр яю єёыютш■ ( x&lt;0 ышсю x=0, x&gt;=0,
x!=0 (эх Ёртэю эєы■)) Ёхрышчє■Єё  ъыртш°хщ F, ъыртш°хщ єёыютш  &quot;
x&lt;0&quot;, &quot;x=0&quot;, &quot;x&gt;=0&quot;, &quot;x!=0&quot;
ш ттюфюь рфЁхёр яхЁхїюфр. ╧ЁютхЁ хЄё  ёюцхЁцшьюх ЁхушёЄЁр X эр т√яюыэхэшх
чрфрээюую єёыютш . ┼ёыш єёыютшх <FONT color="#CC0000">эх т√яюыэ хЄё </FONT>,
Єю ёыхфє■∙хщ яю яЁюуЁрььх сєфхЄ т√яюыэхэр ъюьрэфр, рфЁхё ъюЄюЁющ єърчрэ
эхяюёЁхфёЄтхээю т ъюьрэфх єёыютэюую яхЁхїюфр. ┼ёыш єёыютшх т√яюыэ хЄё ,
Єю ёыхфє■∙хщ ъюьрэфющ сєфхЄ ёыхфє■∙р  чр рфЁхёюь яЁхїюфр ъюьрэфр. ─ышэр
ъюьрэф√ - фтр срщЄр (°рур) яЁюуЁрьэющ ярь Єш.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="routine_call"></A><B>╩юьрэфр т√чютр яЁюфяЁюуЁрьь√.</B></P>
<P align="left">╩юьрэфр т√чютр яЁюфяЁюуЁрьь√ ЁхрышчєхЄё  ъыртш°хщ ╧╧ ш
ёфє■∙хьє чр эхщ рфЁхёюь (эрўрыр яюфяЁюуЁрьь√). ╧Ёш ¤Єюь т <A href="#stack_of_return">ёЄхъ
тючтЁрЄр</A> чряшё√трхЄё  ёыхфє■∙шщ рфЁхё яЁюуЁрьь√, эр ъюЄюЁ√щ т фры№эхщ°хь
сєфхЄ ёфхырэ тчтЁрЄ шч яюфяЁюуЁрьь√ (┬/╬). ─ышэр ъюьрэф√ - фтр °рур.
┬ Ёхцшьх &quot;└тЄюьрЄшўхёър  ЁрсюЄр&quot;, ъюуфр яЁюуЁрььр эх т√яюыэ хЄё ,
эрцрЄшх эр ъыртш°є ╧╧ яЁюшчтюфшЄ яю°руютюх т√яюыэхэшх яЁюуЁрьь√.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="indirect_routine_call"></A><B>╩юьрэф√ ъюётхээюую т√чютр яЁюфяЁюуЁрьь√.</B></P>
<P align="left">╩юьрэфр ъюётхээюую т√чютр яЁюфяЁюуЁрьь√ ЁхрышчєхЄё  ъыртш°рьш
╩ , ╧╧ ш ъыртш°хщ рфЁхёєхьюую ЁхушёЄЁр ( 0 ... F ). <A href="#stack_of_return">
</A> ─ышэр ъюьрэф√ - юфшэ °ру. ╤ яюью∙№■ ¤Єющ ъюьрэфр яЁюшёїюфшЄ <FONT color="#660099">
<A href="#registers_modification_table">ьюфшЇшърЎш </A></FONT> рфЁхёр,
їЁрэ ∙хуюё  т рфЁхёєхьюь ЁхушёЄЁх, шэфхъё ъюЄюЁюую тїюфшЄ т ъюьрэфє.
╟рЄхь, чряшё√трхЄё  т <A href="#stack_of_return">ёЄхъ тючтЁрЄр</A> ёыхфє■∙шщ
рфЁхё яЁюуЁрьь√, эр ъюЄюЁ√щ т фры№эхщ°хь сєфхЄ ёфхырэ тчтЁрЄ шч яюфяЁюуЁрьь√
(ъюьрэфющ ┬/╬), ш юёє∙хёЄты хЄё  т√чют яюфяЁюуЁрьь√, чряшёрээющ яю ьюфшЇшЎшЁютрээюьє
рфЁхёє. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="routine_return"></A><B>╩юьрэфр тючтЁрЄр шч яЁюфяЁюуЁрьь√.</B></P>
<P align="left">╩юьрэфр тючтЁрЄр шч яЁюфяЁюуЁрьь√ ЁхрышчєхЄё  ъыртш°хщ
┬/╬. ╚ч <A href="#stack_of_return">ёЄхър тючтЁрЄр</A> ўшЄрхЄё  яюёыхфэшщ
рфЁхё, ъюЄюЁ√щ чряшё√трхЄё  Єєфр тю тЁхь  т√чютр яюфяЁюуЁрьь√ яюёЁхфёЄтюь
ъюьрэф√ ╧╧ ... (шыш ╩ ╧╧ ...), ш яЁюшёїюфшЄ яхЁхїюф эр ¤ЄюЄ рфЁхё. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><A name="#╩юётхээ√щ схчєёыютэ√щ яхЁхїюф"></A><B>╩юётхээ√щ
схчєёыютэ√щ яхЁхїюф.</B></P>
<P>╩юьрэфр ъюётхээюую схчєёыютэюую яхЁхїюфр яю ьюфшЇшЎшЁютрээюьє рфЁхёє
Ёхрышчєхё  ъыртш°рьш ╩, ┴╧ ш ъыртш°хщ рфЁхёєхьюую ЁхушёЄЁр (юЄ 0 фю F,
<FONT color="#000000">юЄ A фю F - эрфяшёш ў╕Ёэюую ЎтхЄр</FONT>). ╧Ёш шёяюыэхэшш
¤Єющ ъюьрэф√ яЁюшёїюфшЄ ьюфшЇшърЎш  рфЁхёр, їЁрэ ∙хуюё  т рфЁхёєхьюь ЁхушёЄЁх
(шэфхъё ъюЄюЁюую тїюфшЄ т ъюьрэфє), ш яЁюшёїюфшЄ яхЁхїюф ъ шёяюэхэш■ ъюьрэф√,
чряшёрээющ яю эютюьє (ьюфшЇшЎшЁютрээюьє) рфЁхёє. ╠юфшЇшърЎш  рфЁхёр яЁюшёїюфшЄ
т чртшёшьюёЄш юЄ эюьхЁр ЁхушёЄЁр, тїюф ∙хую т ъюьрэфє. ┼ёыш ъюьрэфр ёюфхЁцшЄ
эюьхЁ юфэюую шч ЁхушёЄЁют 0, 1, 2, 3, Єю яЁш т√яюыэхэшш ъюьрэф√ шч ёюфхЁцшьюую
рфЁхёєхьюую ЁхушёЄЁр т√ўшЄрхЄё  1. ┼ёыш эюьхЁ рфЁхёєхьюую ЁхушёЄЁр 4 ,
5 шыш 6, Єю ъ ёюфхЁцшьюьє ЁхушёЄЁр яЁшсрты хЄё  1. ┼ёыш эюьхЁ рфЁхёєхьюую
ЁхушёЄЁр юЄ 7 фю F, Єю ёюфхЁцшьюх рфЁхёєхьюую ЁхушёЄЁр эх шчьхэ хЄё .</P>
</TD>
</TR>
</TABLE>
<P align="center"><A name="registers_modification_table"></A><B>╥рсышЎр ьюфшЇшърЎшш
яЁш ъюётхээющ рфЁхёрЎшш.</B></P>
<TABLE width="96%" border="1" align="center" bgcolor="#E0FFF0">
<TR>
<TD width="12%">
<DIV align="center">╨хушёЄЁ </DIV>
</TD>
<TD width="20%">
<DIV align="center">╠юфшЇшърЎш </DIV>
</TD>
<TD width="68%">
<DIV align="center">═рфяшё№</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">0</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 0</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">1</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 1</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">2</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 2</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">3</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 3</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">4</DIV>
</TD>
<TD width="20%">
<DIV align="center">+1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 4</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">5</DIV>
</TD>
<TD width="20%">
<DIV align="center">+1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 5</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">6</DIV>
</TD>
<TD width="20%">
<DIV align="center">+1</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 6</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">7</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 7</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">8</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 8</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">9</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ 9</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">A</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ , (чря Єр ), яюф ъыртш°хщ ў╕Ёэ√ь
ЎтхЄюь - ырЄшэёър  сєътр A. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">B</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ /-/, яюф ъыртш°хщ ў╕Ёэ√ь ЎтхЄюь -
ырЄшэёър  сєътр B. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">C</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ ┬╧, яюф ъыртш°хщ ў╕Ёэ√ь ЎтхЄюь -
ырЄшэёър  сєътр C. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">D</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ Cx, яюф ъыртш°хщ ў╕Ёэ√ь ЎтхЄюь -
ырЄшэёър  сєътр D. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">E</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ т тшфх ёЄЁхыъш ттхЁї, ёяЁртр юЄ ъыртш°ш
ў╕Ёэ√ь ЎтхЄюь - ырЄшэёър  сєътр E. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">F</DIV>
</TD>
<TD width="20%">
<DIV align="center">эхЄ</DIV>
</TD>
<TD width="68%">
<DIV align="center">╩ыртш°р ё эрфяшё№■ - (чэръ ьшэєё), ёяЁртр юЄ ъыртш°ш
ў╕Ёэ√ь ЎтхЄюь - ырЄшэёър  сєътр F. </DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" height="125" align="center">
<TR>
<TD>
<P align="center"><A name="indirect_conditional_jump"></A><B>╩юётхээ√щ яхЁхїюф
яю єёыютш■.</B></P>
<P>╩юьрэф√ ъюётхээ√ї яхЁхїюфют яю єёыютш■ ЁхрышчєхЄё  ъыртш°хщ &quot;╩&quot;,
ъыртш°хщ єёыютш  ( x&lt;0 ышсю x=0, x&gt;=0, x!=0 (эх Ёртэю эєы■)) ш ъыртш°хщ
рфЁхёєхьюую ЁхушёЄЁр (юЄ &quot;0&quot; фю &quot;F&quot;). ╤ яюью∙№■ ¤Єющ
ъюьрэф√ яЁютхЁ хЄё  ёюфхЁцшьюх ЁхушёЄЁр X эр т√яюыэхэшх чрфрээюую єёыютш .
┼ёыш єёыютшх эх т√яюыэ хЄё  (<FONT color="#000000">юсЁрЄшЄх тэшьрэшх,
шьхээю - ъюуфр</FONT><FONT color="#999999"> <FONT color="#CC0000">эх т√яюэ хЄё </FONT></FONT>),
Єю яЁюшёїюфшЄ <FONT color="#660099"> <A href="#registers_modification_table">ьюфшЇшърЎш </A></FONT>
(шчьхэхэшх) рфЁхёр, їЁрэ ∙хуюё  т рфЁхёєхьюь ЁхушёЄЁх, шэфхъё ъюЄюЁюую
тїюфшЄ т ъюьрэфє, ш юёє∙хёЄты хЄё  яхЁхїюф ъ т√яюыэхэш■ ъюьрэф√, чряшёрээющ
яю ьюфшЇшЎшЁютрээюьє рфЁхёє. ┼ёыш єёыютшх т√яюыэ хЄё , Єю яЁюшёїюфшЄ яхЁхїюф
ъ т√яюыэхэш■ ёыхфє■∙хщ ъюьрэф√. ╧Ёш ¤Єюь рфЁхё, чряшёрээ√щ т рфЁхёєхьюь
ЁхушёЄЁх, эх ьюфшЇшЎшЁєхЄё .</P>
</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
</TR>
</TABLE>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="indirect_mem_read"></A><B>╩юьрэф√ ъюётхээюую ўЄхэш  ЁхушёЄЁр
ярь Єш.</B></P>
<P align="left">╩юьрэфр ьюфшЇшЎшЁєхЄ ЁхушёЄЁ , эюьхЁ ъюЄюЁюую тїюфшЄ т
ъюьрэфє (ёюуырёэю <A href="#registers_modification_table">ЄрсышЎх ьюфшЇшърЎшш)</A>,
яюёых ўхую яЁюшёїюфшЄ ўЄхэшх ёююЄтхЄёЄтє■∙хую ЁхушёЄЁр т ЁхушёЄЁ X.
╧ЁшьхЁ. ┼ёыш ёюфхЁцшьюх ЁхушёЄЁр 0 фю т√яюыэхэш  ъюьрэф√ с√ыю Ёртэю
3, Єю яЁш т√яюыэхэшш ъюьрэф√ ╩ ╚╧ 0 єьхэ№°рхЄё  ёюфхЁцшьюх ЁхушёЄЁр
0 (ЄхяхЁ№ юэю Ёртэю 2) ш яЁюшёїюфшЄ ўЄхэшх ёюфхЁцшьюую ЁхушёЄЁр 2 т
ЁхушёЄЁ X.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="indirect_mem_write"></A><B>╩юьрэф√ ъюётхээющ чряшёш т ЁхушёЄЁ
ярь Єш.</B></P>
<P align="left">╩юьрэфр ьюфшЇшЎшЁєхЄ ЁхушёЄЁ , эюьхЁ ъюЄюЁюую тїюфшЄ т
ъюьрэфє (ёюуырёэю <A href="#registers_modification_table">ЄрсышЎх ьюфшЇшърЎшш</A>),
яюёых ўхую яЁюшёїюфшЄ чряшё№ т ёююЄтхЄёЄтє■∙шщ ЁхушёЄЁ ёюфхЁцшьюх ЁхушёЄЁр
X. ╧ЁшьхЁ. ┼ёыш ёюфхЁцшьюх ЁхушёЄЁр 0 фю т√яюыэхэш  ъюьрэф√ с√ыю Ёртэю
3, Єю яЁш т√яюыэхэшш ъюьрэф√ ╩ ╧ 0 єьхэ№°рхЄё  ёюфхЁцшьюх ЁхушёЄЁр 0
(ЄхяхЁ№ юэю Ёртэю 2) ш яЁюшёїюфшЄ чряшё№ ёюфхЁцшьюую ЁхушёЄЁр X т ЁхушёЄЁ
2.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="L0_discription"></A><B>╩юьрэф√ юЁурэшчрЎшш Ўшъыют.</B></P>
<P align="left">╩юьрэф√ юЁурэшчрЎшш Ўшъыют юЁурэшчє■Єё  ъыртш°рьш L0,
L1, L2, L3 т ёюўхЄрэшш ё яЁхЇшъёэющ ъыртш°хщ F. ╩юьрэфр ёюёЄюшЄ шч ъюфр
ъюьрэф√ ш ёыхфє■∙хую чр эхщ рфЁхёр яхЁхїюфр. ╧Ёш т√яюыэхэшш ъюьрэф√
L0 яЁюшёїюфшЄ юсЁр∙хэшх ъ ЁхушёЄЁє ярь Єш RG0. ╧Ёш ърцфюь т√яюыэхэшш
¤Єющ ъюьрэф√ шч ёюфхЁцшьюую ЁхушёЄЁр 0 т√ўшЄрхЄё  1 ш яЁюшчтюфшЄё  рэрышч
хую эр эєы№. ┼ёыш юэю эх Ёртэю эєы■, яЁюшёїюфшЄ яхЁхїюф ъ т√яюыэхэш■
ъюьрэф√ яхЁхїюфр, тїюф ∙хую т ъюьрэфє. ┼ёыш ёюфхЁцшьюх ЁхушёЄЁр ярь Єш
RG0 Ёртэю эєы■, Єю Ўшъы чртхЁ°рхЄё  ш т√яюыэ хЄё  ёыхфє■∙р  ъюьрэфр.
─ышэр ъюьрэф√ - фтр °рур.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>╧ЁюуЁрььшЁютрэшх.</B></P>
<P> ┬їюф т Ёхцшь яЁюуЁрььшЁютрэш  юёє∙хёты хЄё  яюёЁхфёЄтюь эрцрЄш  эр ъыртш°ш
F ш ╧╨├. ╩ры№ъєы ЄюЁ яхЁхщф╕Є эр Єхъє∙шщ рфЁхё яЁюуЁрьь√. ┼ёыш ЄЁхсєхЄё 
яхЁхщЄш эр чрфрэ√щ рфЁхё, Єю яхЁхф тїюфюь т Ёхцшь яЁюуЁрььшЁютрэш  эрфю
яхЁхщЄш эр ¤ЄюЄ рфЁхё эрцрЄшхь ъыртш°ш ┴╧ ш ттюфюь рфЁхёр. ╧хЁхьх∙хэшх
яю яЁюуЁрььх яЁюшёїюфшЄ ртЄюьрЄшўхёъш яЁш ттюфх ъюьрэф шыш яЁшэєфшЄхы№эю
- ъыртш°рьш ╪├. ╤яЁртр эр шэфшърЄюЁх т√ётхўштрхЄё  рфЁхё ёыхфє■∙хую °рур
яЁюуЁрьь√. ┬ фЁєушї яюы ї шэфшърЄюЁр т√ётхўштр■Єё  (3 яюы ) ъюф√ ттхф╕ээ√ї
ъюьрэф т яюЁ фъх тючЁрёЄрэш , ёыхтр эряЁртю. <BR>
┼ёыш эхюсїюфшью шёъы■ўшЄ№ шч яЁюуЁрьь√ ъръє■-ышсю ъюьрэфє, эхюсїюфшью
эрцрЄ№ ъыртш°є ╩ ш ъыртш°є ═╬╧, °ру яЁюуЁрьь√ чряюыэшЄё  ъюьрэфющ, ъюЄюЁр 
эшўхую эх фхырхЄ. ┬√їюф шч Ёхцшьр &quot;╧ЁюуЁрььшЁютрэшх&quot; юёє∙хёЄты хЄё 
эрцрЄшхь эр ъыртш°ш F ш └┬╥.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>┬√ўшёыхэшх яю яЁюуЁрььх.</B></P>
<P align="left">┬√ўшёыхэш  яю яЁюуЁрььх эрўшэр■Єё  эрцрЄшхь эр ъыртш°є
╤/╧. ═рўшэрхЄё  т√яюыэхэшх яЁюуЁрьь√ ё Єхъє∙хую рфЁхёр. ┼ёыш ЄЁхсєхЄё 
эрўрЄ№ (шыш яЁюфюыцшЄ№) яЁюуЁрььє ё ъюэъЁхЄэюую рфЁхёр, Єю эхюсїюфшью
яхЁхщЄш эр ¤ЄюЄ рфЁхё эрцрЄшхь ъыртш°ш ┴╧ ш ттюфюь рфЁхёр. ╬ёЄрэют т√ўшёыхэшщ
юёє∙хёЄты хЄё  яютЄюЁэ√ь эрцрЄшхь ъыртш°ш ╤/╧. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>╬Єышўш  юЄ юЁшушэрыры№эюую ┴3-34.</B></P>
<P align="left">╧Ёш ъюётхээюь юсЁр∙хэшш ъюьрэф ъ ЁхушёЄЁрь, ъюуфр фюыцхэ
с√Є№ ёўшЄрэ эюьхЁ ЁхушёЄЁр, юЄ ёюфхЁцшьюую ёЄўшЄ√трхьюую ЁхушёЄЁр т√фхы хЄё 
Ўхыр  ўрёЄ№ (фЁюсэр  эх єўшЄ√трхЄё , эю ш эх ьхэ хЄё ), шч ъюЄюЁющ т√фхы Єё 
ьырф°хх чэрўшьюх, эх яЁхт√°р■∙хх ъюышўхёЄтр ЁхушёЄЁют ярь Єш ьшэєё 1
(¤Єю 4 ьырф°шї сшЄр). ┬ ёыєўрх ёўшЄ√трэш  рфЁхёр яхЁхїюфр шёяюы№чєхЄё 
Ўхыр  ўрёЄ№ ёюфхЁцшьюую ЁхушёЄЁр. ┼ёыш рфЁхё яхЁхїюфр юърцхЄё  чр яЁхфхырьш
яЁюуЁрьь√, - яЁюуЁрььр т√фрёЄ ёююЄтхЄёЄтє■∙хх яЁхфєяЁхцфхэшх. </P>
</DIV>
</TD>
</TR>
</TABLE>
<P align="center"><!-- #BeginDate format:Sw1m -->5 May, 2002 3:02<!-- #EndDate --> </P>
</BODY>
</HTML>
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,236 @@
<HTML>
<HEAD>
<TITLE>┴3-34 - яЁюуЁрььр</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<BODY bgcolor="#FFFFFF">
<TABLE width="96%" border="0" align="center">
<TR>
<TD height="102" width="33%"><FONT color="#FF0000">┬эшьрэшх!</FONT> ─рээ√щ
фюъєьхэЄ эрїюфшЄё  т яЁюЎхёёх ЁрчЁрсюЄъш ш ьюцхЄ ёюфхЁцрЄ№ ю°шсъш.</TD>
<TD height="102" width="28%">&nbsp;</TD>
<TD height="102" width="39%"><FONT size="-1"></FONT></TD>
</TR>
</TABLE>
<P align="center"><B><FONT size="+2" color="#CC0000">╩ры№ъєы ЄюЁ ┴3-34.<BR>
</FONT></B><B><FONT color="#000000"><A href="b3-34help0.htm">╩ЁрЄъюх ЁєъютюфёЄтю</A></FONT></B><FONT color="#000000"><FONT color="#666666"><B>.</B></FONT><B>
<A href="b3-34help1.htm">╥рсышЎр ъюьрэф</A>.<BR>
<A href="b3-34help2.htm"> ╬яшёрэшх яЁюуЁрьь√</A> </B><FONT color="#666666">(¤ЄюЄ
Їрщы)<B></B></FONT><B>. </B></FONT><B><FONT size="+2" color="#CC0000"><BR>
</FONT><FONT size="+2">╬яшёрэшх яЁюуЁрьь√.</FONT></B></P>
<P align="center">&nbsp;</P>
<TABLE width="96%" border="0" align="center" height="119">
<TR>
<TD>
<P align="center"><B>┬эх°эшщ тшф.</B></P>
<UL>
<LI>╦шэхщър рфЁхёр. ╧Ёхфэрчэрўхэр фы  шэфшърЎшш Єхъє∙хую рфЁхёр яЁюуЁрьь√.
╠юцхЄ с√Є№ юЄъы■ўхэр ёююЄтхЄёЄтє■∙хщ єёЄрэютъющ яЁюуЁрьь√ шч ьхэ■ &quot;╙ёЄрэютъш&quot;.</LI>
<LI>╧юых ЄхъёЄютюую ёююс∙хэш . ╧Ёхфэрчэрўхэю фы  ёююс∙хэш  юс ю°шсъх шыш
юс юёюсюь ёюёЄю эшш ъры№ъєы ЄюЁр.</LI>
<LI>┬ъы■ўрЄхы№ яшЄрэш . ╬ўш∙р■Єё  тёх ЁхушёЄЁ√, ёЄхъ ш ёЄхъ тючтЁрЄр.
╧ЁюуЁрььр яЁш юЄъы■ўхэшш яшЄрэш  эх шчьхэ хЄё .</LI>
<LI>╧хЁхъы■ўрЄхы№ Ёрфшрэ√ - уЁрфєё√. ╧ЁхфёЄртыхэшх єуыют фы  юяхЁрЎшщ
ё sin, cos, tg, arcsin, arccos, arctg.</LI>
<LI>╚эфшърЄюЁ ┴3-34. </LI>
<LI>╩ыртш°ш юЄ F фю ╤x (тёхую 30 °Є.). ─ы  ттюфр ъюьрэф.</LI>
<LI>╥хъёЄютюх яюых фы  шэфшърЎшш Єхъє∙хую рфЁхёр яЁюуЁрьь√ т ЎшЇЁютюь
тшфх. ═рїюфшЄё  ёяЁртр юЄ ъыртш°ш ╧╧.</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center" height="119">
<TR>
<TD>
<P align="center"><B>╤юфхЁцрэшх ьхэ■ &quot;╧ЁюуЁрььр&quot;.</B></P>
<UL>
<LI>&quot;═ютр &quot; - ёючфрэшх эютющ яЁюуЁрьь√</LI>
<LI>&quot;╧хЁхчруЁєчшЄ№&quot; - чруЁєчшЄ№ Єхъ∙є■ яЁюуЁрььє шч ёюёЄртр
°ЄрЄэ√ї яЁюуЁрьь.</LI>
<LI>&quot;╟руЁєчшЄ№&quot; - чруЁєчшЄ№ яЁюуЁрььє шч ёюёЄртр °ЄрЄэ√ї яЁюуЁрьь.</LI>
<LI>&quot;╤юїЁрэшЄ№ ъръ&quot; - ёюїЁрэшЄ№ яЁюуЁрььє т ёюёЄртх °ЄрЄэ√ї
яюф эют√ь шьхэхь.</LI>
<LI>&quot;╤юїЁрэшЄ№&quot; - ёюїЁрэшЄ№ яЁюуЁрььє, хёыш юэр шьххЄё  т ёюёЄртх
°ЄрЄэ√ї ш ЄхъёЄ яЁюуЁрьь√ шчьхэшыё . </LI>
<LI>&quot;╤юїЁрэшЄ№ тё╕&quot; - ёюїЁрэшЄ№ яЁюуЁрььє, хёыш юэр шьххЄё 
т ёюёЄртх °ЄрЄэ√ї, х╕ ЁхушёЄЁ√, ёЄхъ ш ёЄхъ тючтЁрЄр. </LI>
<LI>&quot;╤тющёЄтр&quot; - т√чют юъэр ёю ётющёЄтрьш Єхъє∙хщ яЁюуЁрьь√.</LI>
<LI>&quot;┬ ЄхъёЄ&quot; - т√чют юъэр ЄЁрэёы Ўшш ъюфют яЁюуЁрьь√ т ЄхъёЄют√щ
ЇюЁьрЄ. </LI>
<LI>&quot;╚ч ЄхъёЄр&quot; - т√чют юъэр чруЁєчъш яЁюуЁрьь√ шч ЄхъЄютюую
Їрщыр. </LI>
<LI>&quot;┬√тюф т Їрщы&quot; - яюърчрЄ№ юъэю т√тюфр т Їрщы. ─юёЄєяэю яЁш
эрышўшш т√тхфхээюую ЄхъёЄр. </LI>
<LI>&quot;╤ъюЁюёЄ№&quot; - яюърчрЄ№ юъэю єёЄрэютюъ ёъюЁюёЄш т√яюыэхэш 
яЁюуЁрьь√. </LI>
<LI>&quot;╨хушёЄЁ√&quot; - яюърчрЄ№ юъэю ё ёюфхЁцшь√ь тёхї ЁхушёЄЁют.</LI>
<LI>&quot;╙ёЄрэютъш&quot; - яюърчрЄ№ юъэю ё юс∙шьш юяЎш ьш яЁюуЁрьь√.</LI>
<LI>&quot;├юЁ ўр  ъыртш°р&quot; - юъэю т√сюЁр ъыртш°ш ъюья№■ЄхЁр фы  чряєёър
яЁюуЁрьь√ &quot;╩ры№ъєы ЄюЁ ┴3-34&quot; шыш фЁєующ яЁюуЁрьь√.</LI>
<LI>&quot;┬√їюф&quot; - т√їюф шч яЁюуЁрьь√.</LI>
</UL>
<P>&nbsp;</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center" height="119">
<TR>
<TD>
<P align="center"><B>╤юфхЁцрэшх ьхэ■ &quot;╧Ёртър&quot;.</B></P>
<UL>
<LI>&quot;┬ёЄртшЄ№&quot; - ъюьрэфр тёЄртъш ўшёыр шч ЄхъёЄютюую сєЇхЁр
юсьхэр (ёшёЄхь√).</LI>
<LI>&quot;╩юяшЁютрЄ№&quot; - ъюьрэфр ъюяшЁютрэш  ёюфхЁцшьюую ЁхэшёЄЁр
X (ўЄю тшфэю ш эр шэфшърЄюЁх) т ЄхъёЄют√щ сєЇхЁ юсьхэр ёшёЄхь√.</LI>
<LI>&quot;╬ўшёЄшЄ№ ЁхушёЄЁ√&quot; - юсэєы хЄ 16 ЁхушёЄЁют ярь Єш.</LI>
<LI>&quot;╬ўшёЄшЄ№ ёЄхъ&quot; - юсэєы хЄ тёх ЁхушёЄЁ√ ёЄхър.</LI>
<LI>&quot;╬ўшёЄшЄ№ ёЄхъ тючтЁрЄр&quot; - юсэєы хЄ ЁхушёЄЁ√ ёЄхър тючтЁрЄр.</LI>
<LI>&quot;╬ўшёЄшЄ№ тё╕&quot; - фхщёЄтєхЄ ъръ ш тъ√ы■ўрЄхы№ яшЄрэш . ╬ўш∙р■Єё 
тёх ЁхушёЄЁ√, ёЄхъ ш ёЄхъ тючтЁрЄр. ╧ЁюуЁрььр эх шчьхэ хЄё .</LI>
<LI>&quot;╬ўшёЄшЄ№ яЁюуЁ. ярь Є№&quot; - юўш∙рхЄ яЁюуЁрьэє■ ярь Є№.</LI>
<LI>&quot;╤ыхфє■∙хх юъэю&quot; - яхЁхъы■ўхэшх ьхцфє фхўхЁэшьш юъэрьш.</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center" height="119">
<TR>
<TD>
<P align="center"><B>╤юфхЁцрэшх ьхэ■ &quot;╧юью∙№&quot;.</B></P>
<UL>
<LI>&quot;╧юью∙№&quot; - т√чют Їрщыр яюью∙ш (b3-34help0.htm)</LI>
<LI>&quot;╬ тхЁёшш ┴3-34&quot; - ёююс∙хэшх юс шчьхэхэш ї шыш юёюсхээюёЄ ї
фрээющ тхЁёшш яЁюуЁрьь√.</LI>
<LI>&quot;╧Ёю ¤Єю&quot; - юс ртЄюЁх ¤Єющ (яюър эхфюфхырээющ) яЁюуЁрьь√.</LI>
<LI>&quot;═р ёрщЄ ртЄюЁр&quot; - фы  ёърўштрэш  яюёыхфэхщ тхЁёшш яЁюуЁрьь√.</LI>
<LI>&quot;╬°шсъш&quot; - ёююс∙хэш  юс ёюс√Єш ї т яЁюуЁрььх, ёыєцшЄ фы 
юЄырфъш яЁюуЁрьь√ b3_34.exe.</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" height="125" align="center">
<TR>
<TD>
<P align="center"><B>╩ры№ъєы ЄюЁ шьххЄ:</B></P>
<UL>
<LI> яЁюуЁрьэє■ ярь Є№ юс·╕ьюь т 100 шыш 256 °руют;</LI>
<LI>16 рфЁхёєхь√ї ЁхушёЄЁют ярь Єш фы  їЁрэхэш  фрээ√ї шыш рфЁхёют яхЁхїюфр
т яЁюуЁрььх;</LI>
<LI> ъюьрэф√ яЁ ь√ї ш ъюётхээ√ї яхЁхїюфют т яЁюуЁрььх, ъюьрэф√ т√чютр
яюфяЁюуЁрь ш ъюьрэф√ тючтЁрЄр шч яюфяЁюуЁрь;</LI>
<LI>тючьюцэюёЄ№ юсЁр∙хэш  ъ яюфяЁюуЁрььх тэєЄЁш яюфяЁюуЁрь. ├ыєсшэр Єръшї
юсЁр∙хэшщ Ёртэр 5;</LI>
<LI>ъюьрэф√ яЁ ьюую ш ъюётхээюую схчєёыютэюую яхЁхїюфр;</LI>
<LI>ўхЄ√Ёх Єшяр ъюьрэф яЁ ьюую ш ъюётхээюую єёыютэюую яхЁхїюфр (яю єёыютш ь
x=0, x!=0 (эх Ёртэю 0), x&gt;=0 (сюы№°х шыш Ёртэ хЄё  0), x&lt;0);</LI>
<LI>ъюьрэф√ юЁурэшчрЎшш Ўшъыют;</LI>
<LI>ъюьрэф√ ъюётхээющ чряшёш ёюфхЁцшьюую ЁхушёЄЁр X т ЁхушёЄЁ√ ярь Єш;</LI>
<LI>ъюьрэф√ ъюётхээющ шэфшърЎшш ёюфхЁцшьюую ЁхушёЄЁют ярь Єш;</LI>
<LI>ъюьрэф√ ёсЁюёр ёў╕Єўшър рфЁхёют т эєыхтюх ёюёЄю эшх;</LI>
<LI>ъюьрэфр яєёър ш юёЄрэютъш яЁш ртЄюьрЄшўхёъюь т√ўшёыхэшш яю яЁюуЁрььх;</LI>
<LI>ъюьрэфр яю°руютюую т√яюыэхэш  яЁюуЁрьь√ т Ёхцшьх "└тЄюьрЄшўхёър  ЁрсюЄр";</LI>
<LI>шэфшърЎш  ъюфют ЄЁ╕ї яюёыхфютрЄхы№э√ї °руют яЁюуЁрьь√ ш Єхъє∙хую ёюёЄю эш 
ёў╕Єўшър рфЁхёют;</LI>
<LI>ъыртш°ш яю°руютюую яЁюёьюЄЁр яЁюуЁрьь√ т ёЄюЁюэє єтхышўхэш  шыш єьхэ№°хэш 
рфЁхёют т Ёхцшьх &quot;╧ЁюуЁрььшЁютрэшх&quot;;</LI>
<LI>ъюьрэфр т√тюфр Ёхчєы№ЄрЄют т Їрщы фы  яюёыхфє■∙хщ яхўрЄш эр яЁшэЄхЁх.<BR>
<BR>
</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center" height="119">
<TR>
<TD>
<P align="center"><B>╙ёЄрэютъш яЁюуЁрьь√.</B></P>
<UL>
<LI>&quot;╤сЁюё ъры№ъєы ЄюЁр яЁш т√ъы■ўхэшш яшЄрэш &quot; - ёсЁюё тёхї
ЁхушёЄЁют. </LI>
<LI>&quot;╨рээхх юсэрЁєцхэшх ю°шсюъ&quot; - .</LI>
<LI>&quot;╧Ёю ¤Єю&quot; - юс ртЄюЁх ¤Єющ (яюър эхфюфхырээющ) яЁюуЁрьь√.</LI>
<LI>&quot;═р ёрщЄ ртЄюЁр&quot; - фы  ёърўштрэш  яюёыхфэхщ тхЁёшш яЁюуЁрьь√.</LI>
<LI>&quot;╬°шсъш&quot; - ёююс∙хэш  юс ёюс√Єш ї т яЁюуЁрььх, ёыєцшЄ фы 
юЄырфъш яЁюуЁрьь√ b3_34.exe.</LI>
</UL>
</TD>
</TR>
</TABLE>
<P align="center"> ┬√яшёър шч яЁюуЁрьь√ ю эрчэрўхэшш ъыртш° єяЁртыхэш  ёю ёЄрэфрЁЄэющ
IBM ъыртшрЄєЁ√ фы  тхЁёшш яЁюуЁрьь√ 1.31.</P>
<P><FONT size="-1">{1,0x29,0,"ъыртш°р ` (~)","ъыртш°р ъры№ъєы ЄюЁр F (шэфхъё 0)"},//<BR>
{1,0x14D,1,"ъыртш°р ╤ЄЁхыър тяЁртю","ъры№ъєы ЄюЁр ╪├ тяЁртю (шэфхъё 1)"},//<BR>
{1,0x14B,2,"ъыртш°р ╤ЄЁхыър тыхтю","ъры№ъєы ЄюЁр ╪├ тыхтю (шэфхъё 2)"},//<BR>
{1,0x147,3,"ъыртш°р Home","ъыртш°р ъры№ъєы ЄюЁр ┬/╬ (шэфхъё 3)"},//<BR>
{1,0x14F,4,"ъыртш°р End","ъыртш°р ъры№ъєы ЄюЁр ╤/╧ (шэфхъё 4)"},//<BR>
{1,0x25,5,"ъыртш°р ырЄ. K","ъыртш°р ъры№ъєы ЄюЁр K (шэфхъё 5)"},//<BR>
{1,0x13,5,"ъыртш°р Ёєё. K","ъыртш°р ъры№ъєы ЄюЁр K (шэфхъё 5)"},//<BR>
{1,0x17,6,"ъыртш°р I","ъыртш°р ъры№ъєы ЄюЁр ╚╧ (шэфхъё 6)"},//<BR>
{1,0x19,7,"ъыртш°р ырЄ.P ","ъыртш°р ъры№ъєы ЄюЁр ╧ (шэфхъё 7)"},//<BR>
{1,0x22,7,"ъыртш°р Ёєё.╧(╦рЄ.G)","ъыртш°р ъры№ъєы ЄюЁр ╧ (шэфхъё 7)"},//<BR>
{1,0x33,8,"ъыртш°р Ёєё.┴(шыш чря Єр )","ъыртш°р ъры№ъєы ЄюЁр ┴╧ (шэфхъё 8)"},//<BR>
{1,0x1F,9,"ъыртш°р S ","ъыртш°р ъры№ъєы ЄюЁр ╧╧ (шэфхъё 9)"},//<BR>
{1,0x47,10,"ъыртш°р ╓шЇЁ. ъырт. 7 ","ъыртш°р ъры№ъєы ЄюЁр 7 (шэфхъё 10)"},//<BR>
{1,0x08,10,"ъыртш°р 7 ","ъыртш°р ъры№ъєы ЄюЁр 7 (шэфхъё 10)"},//<BR>
{1,0x48,11,"ъыртш°р ╓шЇЁ. ъырт. 8 ","ъыртш°р ъры№ъєы ЄюЁр 8 (шэфхъё 11)"},//<BR>
{1,0x09,11,"ъыртш°р 8 ","ъыртш°р ъры№ъєы ЄюЁр 8 (шэфхъё 11)"},//<BR>
{1,0x49,12,"ъыртш°р ╓шЇЁ. ъырт. 9 ","ъыртш°р ъры№ъєы ЄюЁр 9 (шэфхъё 12)"},//<BR>
{1,0x0A,12,"ъыртш°р 9 ","ъыртш°р ъры№ъєы ЄюЁр 9 (шэфхъё 12)"},//<BR>
{1,0x37,13,"ъыртш°р ╓шЇЁ. ъырт.* ","ъыртш°р ъры№ъєы ЄюЁр X (шэфхъё 13)"},//<BR>
{1,0x4E,14,"ъыртш°р ╓шЇЁ. ъырт. + ","ъыртш°р ъры№ъєы ЄюЁр + (шэфхъё 14)"},//<BR>
{1,0x4B,15,"ъыртш°р ╓шЇЁ. ъырт. 4 ","ъыртш°р ъры№ъєы ЄюЁр 4 (шэфхъё 15)"},//<BR>
{1,0x05,15,"ъыртш°р 4 ","ъыртш°р ъры№ъєы ЄюЁр 4 (шэфхъё 15)"},//<BR>
{1,0x4C,16,"ъыртш°р ╓шЇЁ. ъырт. 5 ","ъыртш°р ъры№ъєы ЄюЁр 5 (шэфхъё 16)"},//<BR>
{1,0x06,16,"ъыртш°р 5 ","ъыртш°р ъры№ъєы ЄюЁр 5 (шэфхъё 16)"},//<BR>
{1,0x4D,17,"ъыртш°р ╓шЇЁ. ъырт. 6 ","ъыртш°р ъры№ъєы ЄюЁр 6 (шэфхъё 17)"},//<BR>
{1,0x07,17,"ъыртш°р 6 ","ъыртш°р ъры№ъєы ЄюЁр 6 (шэфхъё 17)"},//<BR>
{1,0x135,18,"ъыртш°р ╓шЇЁ. ъырт. / ","ъыртш°р ъры№ъєы ЄюЁр / (шэфхъё 18)"},//<BR>
{1,0x4A,19,"ъыртш°р ╓шЇЁ. ъырт. - ","ъыртш°р ъры№ъєы ЄюЁр - (шэфхъё 19)"},//<BR>
{1,0x21,19,"ъыртш°р ырЄ. F ","ъыртш°р ъры№ъєы ЄюЁр - (шэфхъё 19) ш Ёху. F"},//<BR>
{1,0x4F,20,"ъыртш°р ╓шЇЁ. ъырт. 1 ","ъыртш°р ъры№ъєы ЄюЁр 1 (шэфхъё 20)"},//<BR>
{1,0x02,20,"ъыртш°р ъырт. 1 ","ъыртш°р ъры№ъєы ЄюЁр 1 (шэфхъё 20)"},//<BR>
{1,0x50,21,"ъыртш°р ╓шЇЁ. ъырт. 2 ","ъыртш°р ъры№ъєы ЄюЁр 5 (шэфхъё 21)"},//<BR>
{1,0x03,21,"ъыртш°р ъырт. 2 ","ъыртш°р ъры№ъєы ЄюЁр 5 (шэфхъё 21)"},//<BR>
{1,0x51,22,"ъыртш°р ╓шЇЁ. ъырт. 3 ","ъыртш°р ъры№ъєы ЄюЁр 3 (шэфхъё 22)"},//<BR>
{1,0x04,22,"ъыртш°р ъырт. 3 ","ъыртш°р ъры№ъєы ЄюЁр 3 (шэфхъё 22)"},//<BR>
{1,0x150,23,"ъыртш°р ╤ЄЁхыър тэшч ","ъры№ъєы ЄюЁр ёьхэр XY (шэфхъё 23)"},//<BR>
{1,0x148,24,"ъыртш°р ╤ЄЁхыър ттхЁї ","ъры№ъєы ЄюЁр ╤ЄЁхыър ттхЁї (шэфхъё 24)"},//<BR>
{1,0x12,24,"ъыртш°р ырЄ. E ","ъры№ъєы ЄюЁр ╤ЄЁхыър ттхЁї (шэфхъё 24) ш Ёху.E"},//<BR>
{1,0x11C,24,"ъыртш°р ╓шЇЁ. Enter ","ъры№ъєы ЄюЁр ╤ЄЁхыър ттхЁї (шэфхъё 24) ш
Ёху.E"},//<BR>
{1,0x52,25,"ъыртш°р ╓шЇЁ. ъырт. 0 ","ъыртш°р ъры№ъєы ЄюЁр 0 (шэфхъё 25)"},//<BR>
{1,0x0B,25,"ъыртш°р ъырт. 0 ","ъыртш°р ъры№ъєы ЄюЁр 0 (шэфхъё 25)"},//<BR>
{1,0x53,26,"ъыртш°р ╓шЇЁ. ъырт. . ","ъыртш°р ъры№ъєы ЄюЁр , (шэфхъё 26)"},//<BR>
{1,0x1E,26,"ъыртш°р ырЄ.A ","ъыртш°р ъры№ъєы ЄюЁр , (шэфхъё 26)ш Ёху. A"},//<BR>
{1,0xC,27, "ъыртш°р - (ЄшЁх) ","ъыртш°р ъры№ъєы ЄюЁр /-/ (шэфхъё 27)"},//<BR>
{1,0x30,27,"ъыртш°р ырЄ.B ","ъыртш°р ъры№ъєы ЄюЁр /-/ (шэфхъё 27)Ёху.B"},//<BR>
{1,0x152,28,"ъыртш°р Insert ","ъыртш°р ъры№ъєы ЄюЁр ┬╧ (шэфхъё 28)"},//<BR>
//{0xBD,28,"ъыртш°р ???? "," ъыртш°р ъры№ъєы ЄюЁр ┬╧ (шэфхъё 28)"},//<BR>
{1,0x153,29,"ъыртш°р Delete ","ъыртш°р ъры№ъєы ЄюЁр Cx (шэфхъё 29)"},//<BR>
{1,0x39,29,"ъыртш°р ╧Ёюсхы ","ъыртш°р ъры№ъєы ЄюЁр Cx (шэфхъё 29)"},//<BR>
{1,0x20,29,"ъыртш°р ырЄ. D ","ъыртш°р ъры№ъєы ЄюЁр Cx (шэфхъё 29)ш Ёху.D"}//</FONT></P>
<P align="center"><FONT size="-1"><B>╟рьхўрэш  т їюфх яЁютхЁъш</B></FONT></P>
<P align="left">╧юёыхфэшщ °ру яЁюуЁрьь√ эх тшфхэ, ¤ЄюЄ эхфюёЄрЄюъ ьюцэю єёЄЁрэшЄ№,
хёыш эх ёыхфютрЄ№ ыюушъх ┴3-34. ╤ыютю VER100 т эрўрых ЄхъёЄр яЁюуЁрьь√ ючэрўрхЄ,
ўЄю яЁюуЁрььр шьххЄ 100 °руют, р ёыютю VER256 - 256 °руют. ─ю эрўрыр яхЁтюую
°рур яЁюуЁрьь√ ьюуєЄ с√Є№ чрфрэ√ эрўры№э√х чэрўхэш  ЁхушёЄЁрь ярь Єш ёюўхЄрэшхь,
эряЁшьхЁ ╧0=1.567 шыш ╧0=1,567. ╩юьхэЄрЁшщ ьюцхЄ с√Є№ фюсртыхэ т яЁхфхырї ёЄЁюъш
яюёых фтєї эръыюээ√ї ўхЁЄ: //. ╩юьрэф√ (т юёэютэюь) ьюцэю яхўрЄрЄ№ эр Ёєёёъшь
ш ырЄшэёъшь °ЁшЇЄюь. ┬ьхёЄю ╚╧ ьюцэю эрсЁрЄ№ IP, ip, шя, i╧ ш Є.ф..</P>
<P align="center"><B><FONT size="+3">╟ряєёъ.</FONT></B></P>
<P align="left"> <FONT size="+1">╤ыхтр, эшцх шэфшърЄюЁр, тъы■ўшЄ№ т√ъы■ўрЄхы№
яшЄрэш .</FONT><BR>
</P>
<P><FONT size="-1"><B>╧Ёюфюыцхэшх ёыхфєхЄ ...</B></FONT></P>
<P align="center"><FONT size="-1"><B> <BR>
</B> </FONT> </P>
</BODY>
</HTML>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,76 @@
╩юья№■ЄхЁэ√х шуЁ√ схч ъюья№■ЄхЁют
Xakep, эюьхЁ #007, ╩ры№ъєы ЄюЁэ√х шуЁ√ ёЄЁ. 70-73
┬ырфшьшЁ ┬хёхыют (veselov@xakep.ru)
шыы■ёЄЁрЎш  - └.┼Ёхьшэ
╫Єюс√ яЁшуюЄютшЄ№ Ёрує шч чрщЎр, ъръ ьшэшьєь эєцэю шьхЄ№ ъю°ъє.
═рЁюфэр  ьєфЁюёЄ№
┴ыруюфрЁ  эхєёЄрээющ чрсюЄх ╤ютхЄёъюую яЁртшЄхы№ёЄтр, ╧юышЄс■Ёю ╓╩ ╩╧╤╤ ш ышўэю ╦хюэшфр ╚ы№шўр ┴Ёхцэхтр яю тыхэшх яхЁёюэры№э√ї ъюья№■ЄхЁют т эр°хщ ёЄЁрэх ёшы№эю яюфчрфхЁцрыюё№. ┬ Єю тЁхь  ъръ эр ╟рярфх ЄЁєф ∙шхё  єцх тютё■ яюуыю∙рыш юяшєь ъюья№■ЄхЁэ√ї шуЁ, ёрь√щ яЁюуЁхёёштэ√щ т ьшЁх ёютхЄёъшщ эрЁюф яю ёЄрЁшэъх чрсштры ъючыр, фєыё  т яюфъшфэюую фєЁрър шыш ьюЁ∙шы Ёхяє эрф °рїьрЄрьш. ╬фэръю т ёхЁхфшэх тюё№ьшфхё Є√ї уюфют эют√щ тюцф№ ╤ютхЄёъюую ╤ю■чр ╠шїршы ╤хЁуххтшў ├юЁсрўхт яЁшчтры ёЄЁрэє ъ яютры№эющ ъюья№■ЄхЁэющ уЁрьюЄэюёЄш, ўхь ёЄЁрэр с√ыр ёшы№эю ючрфрўхээр. ╪шЁюъшх ьрёё√ ЄЁєф ∙шїё  уюЄют√ с√ыш юётрштрЄ№ ¤Єш ёрь√х ╧╩, тюЄ Єюы№ъю уфх шї тч Є№? ═р яЁюёЄюЁрї ╤ЄЁрэ√ ╤ютхЄют эхъюЄюЁюх (яЁшўхь тхё№ьр ьрыюх) ъюышўхёЄтю яхЁёюэры№э√ї ъюья№■ЄхЁют ъ Єюьє тЁхьхэш юёхыю Єюы№ъю т тхё№ьр чръЁ√Є√ї ═╚╚ фр эршсюыхх яЁштшыхушЁютрээ√ї єўхсэ√ї чртхфхэш ї. ═ю "ярЁЄш  ёърчрыр эрфю, ъюьёюьюы юЄтхЄшы хёЄ№!" ═ршсюыхх я√Єышт√х уЁрцфрэх тёъюЁх юсэрЁєцшыш, ўЄю ╧╩ т ёЄЁрэх шьх■Єё  т фюёЄрЄюўэ√ї ъюышўхёЄтрї... яЁртфр, Ёрё°шЇЁют√трырё№ ¤Єр рссЁхтшрЄєЁр эх "╧хЁёюэры№э√щ ╩юья№■ЄхЁ", р "╧ЁюуЁрььшЁєхь√щ ьшъЁю╩ры№ъєы ЄюЁ".
╧юёъюы№ъє ёЁртэштрЄ№ с√ыю яЁръЄшўхёъш эх ё ўхь, юяЁхфхышЄ№, ўЄю ╧╩ ш Ё фюь эх ыхцры ё яюфышээ√ь ъюья№■ЄхЁюь, с√ыю эхы№ч . ┬юЄ яюўхьє хую тючтхыш т ¤ЄюЄ Ёрэу, ш яю тшыё  яхЁт√щ т ╨юёёшш "╩ыєс ╩юья№■ЄхЁэ√ї ╚уЁ". ╬сюёэютрыё  юэ эр ёЄЁрэшЎрї цєЁэрыр "╥хїэшър - ╠юыюфхцш" ш яЁшьхЁэю фю 1990-ую уюфр с√ы яюёт ∙хэ шёъы■ўшЄхы№эю ъры№ъєы ЄюЁрь.
╫Єю цх яЁхфёЄрты ыр ¤Єр яхЁтр  т эр°хщ ёЄЁрэх шуЁютр  яырЄЇюЁьр? ─р ёрь√щ юс√ўэ√щ ъры№ъєы ЄюЁ фы  эрєўэ√ї ЁрёўхЄют, уфх, ъЁюьх тючьюцэюёЄш т√ўшёы Є№ ёшэєё√, ыюурЁшЇь√ ш яЁюўшх Єрэухэё√, с√ыр тючьюцэюёЄ№ ёюёЄртшЄ№ яЁюуЁрььє т фхт эюёЄю ёхь№ юяхЁрЄюЁют. ╧ЁюуЁрьь√ ьюуыш с√Є№ фютюы№эю ёыюцэ√ьш, яюёъюы№ъє шьхышё№ юяхЁрЄюЁ√ Ўшъыют, єёыютэ√ї ш схчєёыютэ√ї яхЁхїюфют, эє ш яЁюўшх эхюсїюфшь√х тх∙ш. ┼ёЄхёЄтхээю, шьхырё№ ш юяхЁрЄштэр  ярь Є№, яЁртфр, юэр юуЁрэшўштрырё№ ўхЄ√ЁэрфЎрЄ№■  ўхщърьш. ╥ръ ъръ т ъры№ъєы ЄюЁх ёє∙хёЄтютрыю цхёЄъюх Ёрчфхыхэшх ярь Єш, юЄтюфшьющ яхЁхьхээ√ь ш яЁюуЁрььх, фр х∙х с√ыю ьэюцхёЄтю чр°шЄ√ї т ╧╟╙ яюфяЁюуЁрьь, эрчтрЄ№ Єюўэ√щ ЁрчьхЁ ╬╟╙ эхтючьюцэю. ═ю, яхЁхтюф  эр ёютЁхьхээ√щ  ч√ъ, ьюцэю ёърчрЄ№, ўЄю юэ эх яЁхт√°ры 500 срщЄ.
╚ тюЄ эр ¤Єющ-Єю "яырЄЇюЁьх" с√ыш Ёхрышчютрэ√ яЁръЄшўхёъш тёх ёє∙хёЄтютрт°шх Єюуфр црэЁ√ ъюья№■ЄхЁэ√ї шуЁ! ═ршсюы№°хх ЁрчтшЄшх яюыєўшыш ёшьєы ЄюЁ√ ш ёЄЁрЄхушш, эю эх с√ыш чрс√Є√ рЁърф√, ыюушўхёъшх шуЁ√ ш фрцх Ёюыхт√х. ╧юцрыєщ, Єюы№ъю ътхёЄ т ўшёЄюь тшфх юЄёєЄёЄтютры, їюЄ  эхъюЄюЁ√х ътхёЄюяюфюсэ√х шуЁ√ шьхышё№.
═рфю ёърчрЄ№, ўЄю фы  шуЁ эр ъры№ъєы ЄюЁрї эєцэю с√ыю юсырфрЄ№ шчЁ фэющ ЇрэЄрчшхщ. ═є ёрь яюёєфш, Єхсх эх фрхЄё  эшўхую, ъЁюьх уюы√ї ЎшЇЁ, р Є√ эр шї юёэютх фюыцхэ яЁхфёЄртшЄ№ ёхсх ёюёЄю эшх єяЁрты хьюую юс·хъЄр, ётюх яюыюцхэшх т шуЁютюь ьшЁх ш тёх юёЄры№эюх. ╧Ёртфр, т эхъюЄюЁ√ї шуЁрї яючтюы ыюё№ ЁшёютрЄ№ ъръшх-Єю ёїхь√ ш уЁрЇшъш, чряюыэ Є№ ъръшх-Єю ЄрсышЎ√, эю ьюцэю с√ыю юсющЄшё№ ш схч тёхую ¤Єюую.
╧ю ёЄєяхэ№ърь т эхсю
┬ёх эрўрыюё№ ё ьрыхэ№ъющ яЁюуЁрььєы№ъш яюф эрчтрэшхь "╦єэюыхЄ", ъюЄюЁр  юўхэ№ с√ёЄЁю т√Ёюёыр т яюыэюЎхээє■ шуЁє "╨хщё ╩юэ-╥шъш". ┬юЄ хх ё■цхЄ: эхсюы№°ющ фтєїьхёЄэ√щ ъюёьшўхёъшщ ряярЁрЄ ёЄрЁЄєхЄ ё яютхЁїэюёЄш ╦єэ√ ш т√їюфшЄ эр ъЁєуютє■ юЁсшЄє. ╤ютхЁ°рхЄ їшЄЁ√х ьрэхтЁ√ яю ёсышцхэш■ ё юЁсшЄры№эющ ёЄрэЎшхщ ш т ъюэЎх ъюэЎют ёЄ√ъєхЄё  ё эхщ. ╧юяюыэ хЄ чрярё√ Єюяыштр, юЄЁ√трхЄё  юЄ ёЄрэЎшш ш ёютхЁ°рхЄ яхЁхыхЄ ъ ╟хьых. ┬їюфшЄ т рЄьюёЇхЁє, ЄюЁьючшЄё , яырэшЁєхЄ, р яюЄюь ёютхЁ°рхЄ яюўЄш ь уъє■ яюёрфъє эр яютхЁїэюёЄ№ юъхрэр.
╥хяхЁ№ яюяЁюёш ы■сюую яЁюуЁрььшёЄр эряшёрЄ№ яю ¤Єюьє ё■цхЄє ъюёьшўхёъшщ ёшьєы ЄюЁ, ЁрчьхЁ ъюЄюЁюую эх яЁхт√°ры с√ 500 срщЄ. ╙ц эх чэр■, ўЄю шьхээю юэ юЄтхЄшЄ, эю тюЄ Єхсх эртхЁэ ър яЁшфхЄё  яютЄюЁшЄ№ ЇЁрчє ╧ Єрўър шч ёЄрЁюую рэхъфюЄр: "╬щ! └ ъєфр ¤Єю   яю°хы?" ┬ёх яЁртшы№эю, тьхёЄшЄ№ ёЄюы№ъю Ёрчэ√ї тх∙хщ т ёЄюы№ єчъшх Ёрьъш яюяЁюёЄє эхтючьюцэю. ╥хь эх ьхэхх, Єрър  шуЁр с√ыр ёфхырэр.
╨х°хэшх с√ыю ухэшры№эю яЁюёЄ√ь (ъръ, тяЁюўхь, ш тёх, ўЄю ёт чрэю ё шуЁрьш эр ╧╩): ёфхырЄ№ ёшьєы ЄюЁ яюїюфют√ь ш ёюёЄю ∙шь шч эхёъюы№ъшї яюёыхфютрЄхы№эю ттюфшь√ї яЁюуЁрьь. ─р, фр, шуЁютющ яЁюЎхёё с√ы Ёрчфхыхэ эр їюф√, уфх т эрўрых ттюфшышё№ шёїюфэ√х фрээ√х, р т ъюэЎх яюыєўрышё№ ъююЁфшэрЄ√ ш ёюёЄю эшх ыхЄрЄхы№эюую ряярЁрЄр. ╤ърцхь, ттюфш°№ тЁхь  т 10 ёхъєэф, тхъЄюЁ Є уш 45 уЁрфєёют, ъюышўхёЄтю ёцшурхьюую Єюяыштр 100 ъшыюуЁрьь ш эрцшьрх°№ ъэюяъє "╤/╤" (╤ЄрЁЄ/╤Єюя). ╩ры№ъєы ЄюЁ ярЁє-ЄЁющъє ьшэєЄ цєццшЄ, р яюЄюь ёююс∙рхЄ, ўЄю Є√ єёях°эю тЁхчрыё  т ╦єэє ш Єтюш юёЄрэъш яюъю Єё  эр уыєсшэх 18-Єш ьхЄЁют.
└ юс∙шщ шуЁютющ яЁюЎхёё т√уы фхы Єръ: эрсшЁрх°№ яхЁтє■ яЁюуЁрььє, ё хх яюью∙№■ юЄЁ√трх°№ё  юЄ яютхЁїэюёЄш ╦єэ√ ш т√їюфш°№ эр юЁсшЄє. ╟ряюьшэрх°№ т  ўхщърї ярь Єш ярЁрьхЄЁ√ юЁсшЄ√, ттюфш°№ ёыхфє■∙є■ яЁюуЁрььє (тЁєўэє■ ё ъыртшрЄєЁ√!) ш ёютхЁ°рх°№ ьрэхтЁ√ ёсышцхэш  ё юЁсшЄры№эющ ёЄрэЎшхщ. ╧юЄюь ёыхфєхЄ ЄЁхЄ№  яЁюуЁрььр, ё яюью∙№■ ъюЄюЁющ ёЄ√ъєх°№ё  ёю ёЄрэЎшхщ, эє ш Єръ фрыхх. ╧юыэюёЄ№■ шуЁр ёюёЄю ыр, хёыш ьэх эх шчьхэ хЄ ярь Є№, шч °хёЄш яЁюуЁрьь, яюёыхфэ   шч ъюЄюЁ√ї ьюфхышЁютрыр яюыхЄ схчьюЄюЁэюую ряярЁрЄр т рЄьюёЇхЁх.
╚ьхээю юэр яюёыєцшыр юёэютющ фы  ёыхфє■∙хщ ёхЁшш ёшьєы ЄюЁют - ёрьюыхЄэ√ї. ╧хЁтющ с√ыр яЁюуЁрььр эр Єхьє Ёрёёърчр ╬ыфЁшфцр "╧юёыхфэшщ ф■щь". ╧Ёртфр, ёрцрЄ№ т эхщ эєцэю с√ыю эх ыхуъшщ ёрьюыхЄшъ, р уЁюьрфэ√щ р¤Ёюсєё, тёх цх юёЄры№э√х ЄЁрушўхёъшх ъюыышчшш юёЄрышё№ т ЎхыюёЄэюёЄш. └ тёъюЁх яюфюёяхы ш ёшьєы ЄюЁ ётхЁїыхуъюую ёрьюыхЄр, эр эхь ьюцэю с√ыю эх Єюы№ъю ёютхЁ°рЄ№ тчыхЄ√ ш яюёрфъш, эю ш т√яюыэ Є№ ьхЁЄтє■ яхЄы■! ╧Ёшўхь яЁхцфх ўхь сЁюёшЄ№ё  т ¤Єє ртрэЄ■Ёє, эєцэю с√ыю ъръ ёыхфєхЄ яюфуюЄютшЄ№ё , шэрўх ёрьюыхЄ ётрыштрыё  т °ЄюяюЁ ш Ёрчсштрыё .
┬ююс∙х, ёшьєы ЄюЁют с√ыю ёючфрэю тхышъюх ьэюцхёЄтю - шьшЄшЁютрышё№ фшЁшцрсыш ё ЄхьяхЁрЄєЁэ√ь єяЁртыхэшхь, ярЁєёэ√х сєхЁр, уыєсюъютюфэ√х ряярЁрЄ√ ш фрцх Єръшх ¤ъчюЄшўхёъшх ёЁхфёЄтр яхЁхфтшцхэш  ъръ уЁртшыхЄ√. ═х с√ыю Єюы№ъю ёшьєы ЄюЁют эрчхьэ√ї ьр°шэ, яю юўхэ№ яЁюёЄющ яЁшўшэх - шуЁрЄ№ т эшї т яюїюфютюь Ёхцшьх ёютёхь єц эх шэЄхЁхёэю. ╬фэръю тёъюЁх ¤Єр ЄЁєфэюёЄ№ с√ыр яЁхюфюыхэр. ╧Ёртфр, яю ёютЁхьхээющ ъырёёшЇшърЎшш шуЁ√ фы  ъры№ъєы ЄюЁр, °хф°шх т Ёхры№эюь тЁхьхэш, ёыхфєхЄ юЄэхёЄш ъ рЁърфрь.
╤шэєёюшфры№э√щ Ёєы№
╧юяЁюсєщ Ёх°шЄ№ Єръє■ чрфрўє: яхЁхф Єюсющ ъры№ъєы ЄюЁ, т яЁюЎхёёх т√ўшёыхэшщ ЁхрушЁє■∙шщ Єюы№ъю эр эрцрЄшх ъэюяъш "╤/╤" ш эхяЁхЁ√тэю т√тюф ∙шщ тё■ яЁюуюэ хьє■ ўхЁхч эхую шэЇюЁьрЎш■ эр фшёяыхщ (т√уы фшЄ ¤Єю ъръ цєЄъюх ьхы№ърэшх ЎшЇЁ). ╥хсх эєцэю ёючфрЄ№ фы  ¤Єюую ъры№ъєы ЄюЁр шуЁє, шфє∙є■ т Ёхцшьх Ёхры№эюую тЁхьхэш. ┼ёЄ№ ъръшх-эшсєф№ ёююсЁрцхэш ?
╦рфэю, фр■ яюфёърчъє. ╩ры№ъєы ЄюЁ ьюцхЄ тхёЄш т√ўшёыхэш  єуыют√ї тхышўшэ т уЁрфєёрї, Ёрфшрэрї шыш уЁрфрї (¤Єю ъюуфр яЁ ьющ єуюы Ёртхэ 100 уЁрфєёрь; уютюЁ Є, яЁшфєьрэю ёяхЎшры№эю фы  рЁьхщёъшї ёЄрЁ°шэ, ўЄюс√ ё Єюўъющ ъшяхэш  тюф√ эх яєЄрыш), яЁшўхь яхЁхъы■ўрЄ№ ё юфэюую Ёхцшьр эр фЁєующ ьюцэю яЁ ью т яЁюЎхёёх т√ўшёыхэшщ. ╙ёхъ шфх■? ╠юыюфхЎ! └ фы  Єхї, ъЄю т Єрэъх, ЁрёЄюыъє■ яюфЁюсэю.
╫Єюс√ ёююс∙шЄ№ ъры№ъєы ЄюЁє, ўхую Є√ юЄ эхую ўЄю-Єю їюўх°№, эєцэю ттхёЄш т яЁюуЁрььє т√ўшёыхэшх їюЄ  с√ ёшэєёр 90. ┼ёыш ёўхЄ шфхЄ т уЁрфєёрї, яюыєўрхЄё  юфэр тхышўшэр, т Ёрфшрэрї - фЁєур , эє р т уЁрфрї ш тютёх ЄЁхЄ№ . ╧ЁютхЁшт т эєцэюь ьхёЄх яюыєўхээє■ тхышўшэє, ъры№ъєы ЄюЁ єчэрхЄ, ўЄю Ёєы№ яютхЁэєЄ тяЁртю, шыш, Єрь, яхфры№ урчр єЄюяыхэр фю юЄърчр.
└ ъръ с√Є№ ё т√тюфюь шэЇюЁьрЎшш? ╥юцх яЁюёЄю. ═єцэю яютЄюЁшЄ№ т√тюф ёююЄтхЄёЄтє■∙шї ЎшЇЁ эр фшёяыхщ эх ьхэхх ЄЁхї Ёрч (Єю хёЄ№ тёЄртшЄ№ т яЁюуЁрььє ЄЁш яєёЄ√ї юяхЁрЄюЁр), Єюуфр ўхыютхўхёъшщ уырч єёяхтрхЄ ЁрёёьюЄЁхЄ№ шї. ┬ ъырёёшўхёъшї рЁърфрї, ёърцхь, т уюэърї ё яЁхя ЄёЄтш ьш, т√тюфшырё№ ъюьсшэрЎш  эєыхщ, хфшэшЎ ш фтюхъ. ═єыш юсючэрўрыш ётюсюфэє■ фюЁюує, хфшэшЎ√  ь√ ш ърьэш, р фтющъш - ьр°шэ√ ёюяхЁэшъют, ш эєцэю с√ыю юяшёрээ√ь ёяюёюсюь ьхцфє эшьш ыртшЁютрЄ№.
┬ сюыхх ёыюцэ√ї рЁърфрї, Єшяр єяЁртыхэш  ярЁєёэющ  їЄющ, т√тюфшырё№ хх ёъюЁюёЄ№ (фтр чэрър), ъєЁё (х∙х фтр чэрър), ёъюЁюёЄ№ тхЄЁр (фтр чэрър) ш хую эряЁртыхэшх (яюёыхфэшх фтр чэрър). ╚ тюЄ чр ёўшЄрээ√х ёхъєэф√ эєцэю с√ыю ёўшЄрЄ№ тюё№ьшчэрўэюх ўшёыю, ёююсЁрчшЄ№, ъръшх хую ЎшЇЁ√ ўЄю ючэрўр■Є, ш фрЄ№ эєцэє■ ъюьрэфє. ╧юцрыєщ, ¤Єш ъры№ъєы ЄюЁэ√х рЁърф√ с√ыш яюёыюцэхх ёютЁхьхээ√ї.
┼фшэёЄтю ш сюЁ№ср яЁюЄштюяюыюцэюёЄхщ
┬юЄ єц ўЄю, ърчрыюё№ с√, эхтючьюцэю тЄшёэєЄ№ т Ёрьъш фхт эюёЄр ёхьш юяхЁрЄюЁют ш ўхЄ√ЁэрфЎрЄш  ўххъ ярь Єш, Єръ ¤Єю ьшЁ ёЄЁрЄхушш. ╬фэръю юэ яЁхъЁрёэю Єєфр тыхч. ╧хЁтр  ёЄЁрЄхушўхёър  шуЁр эрч√трырё№ "╬ёЄЁют" ш фютюы№эю Єюўэю, їюЄ  ш ёю чэрўшЄхы№э√ьш єяЁю∙хэш ьш, ьюфхышЁютрыр єяЁртыхэшх эхсюы№°шь юёЄЁютэ√ь уюёєфрЁёЄтюь. ┴√ыш Єрь эрыюуш, ёюсшЁрхь√х ё цшЄхыхщ, фюїюф√ юЄ ЄєЁшчьр ш юЄ яЁюь√°ыхээюёЄш. ╤є∙хёЄтютрыш ьхЄюф√ яют√°хэш  тёхї ¤Єшї фюїюфют. ╧Ёшўхь яЁюь√°ыхээюёЄ№ чруЁ чэ ыр юъЁєцр■∙є■ ёЁхфє ш ьх°рыр ЄєЁшчьє, р цшЄхыш с√ыш яюёЄю ээю ўхь-Єю эхфютюы№э√.
═рфю ёърчрЄ№, рфьшэшёЄЁрЎш  ╩ыєср яЁхъЁрёэю юЁшхэЄшЁютрырё№ т ЄЁхсютрэш ї Єхъє∙хую ьюьхэЄр, яю¤Єюьє Єръє■ ъырёёютю ўєцфє■ шуЁє т√яєёЄшЄ№ эх ьюуыр, яЁш°ыюё№ яюфтхЁуэєЄ№ хх чэрўшЄхы№э√ь фюЁрсюЄърь. ═р фтюЁх ёЄю ы єцх 1986-щ уюф, ёЄЁрэх с√ыю тхыхэю яютхЁэєЄ№ё  ышЎюь ъ ёхы№ёъюьє їюч щёЄтє, яю¤Єюьє шуЁр эрч√трырё№ "╙Ёюцрщ". ╠юфхышЁютрыюё№ т эхщ єяЁртыхэшх ъюыїючюь, яЁшўхь фютюы№эю Єюўэю, ё чрёєїрьш, эр°хёЄтшхь уЁ√чєэют, ЁрёїшЄшЄхы ьш ёюЎшрышёЄшўхёъющ ёюсёЄтхээюёЄш ш тёхь яЁюўшь. └ х∙х ўхЁхч уюф, ъюуфр эр°ш яЁртшЄхыш ючрсюЄшышё№ ъююяхЁрЄштэющ фх Єхы№эюёЄ№■, ¤Єр цх шуЁр с√ыр яЁхюсЁрчютрэр т "╩ююяхЁрЄштэюх ърЇх" (тюЄ юэр, яЁхф°хёЄтхээшЎр ьхыъюяЁючютёъюую "╧шЎр ╥рщъєэр"!).
╧ючфэхх яю тшышё№ трЁшрэЄ√ шуЁ√, яючтюы т°шх єяЁрты Є№ сюы№°шь ьрурчшэюь, чртюфюь, ртЄюЁхьюэЄэющ ьрёЄхЁёъющ ш фрцх яЁхёЄєяэющ °рщъющ. ╧Ёртфр, тёх ¤Єю с√ыш яЁюфєъЄ√ эрЁюфэюую ЄтюЁўхёЄтр ш эр ёЄЁрэшЎ√ ъыєср юэш эх яюярыш.
═шўхую т ¤Єюь яхЁхўэх шуЁ эх єыртыштрх°№? ═є ъръ цх, юфшэ ш ЄюЄ цх юёэютэющ рыуюЁшЄь шуЁ√ яючтюы хЄ ьюфхышЁютрЄ№ фх Єхы№эюёЄ№ ЁєъютюфшЄхы  уюёєфрЁёЄтр, ъЁєяэюую (ш ьхыъюую) їюч щёЄтхээшър, ъююяхЁрЄюЁр ш ьрЇшючш. ╠юцэю ёърчрЄ№, ўЄю эр ¤Єюь яЁюёЄюь яЁшьхЁх с√ыю яюърчрэю, ўЄю яЁшэЎшяшры№э√ї Ёрчышўшщ ьхцфє тёхьш эшьш эхЄ. ╬ўхэ№ ёъюЁю ёЄЁрэх яЁш°ыюё№ єсхфшЄ№ё  т ¤Єюь эр ёюсёЄтхээюь юя√Єх.
┬яЁюўхь, ¤Єю эх шьххЄ юЄэю°хэш  ъ яЁхфьхЄє эр°хую ЁрёёьюЄЁхэш , яю¤Єюьє ёърцє ыєў°х ярЁє ёыют ю тюЁухщьрї. ╥єЄ, ёюсёЄтхээю уютюЁ , тёх юсёЄюшЄ яЁюёЄю. ─хыю т Єюь, ўЄю эр ╟рярфх тюЁухщь√ яю тшышё№ чрфюыую фю яю тыхэш  ъюья№■ЄхЁют. ┴√ыш ¤Єю Єръшх эрёЄюы№э√х шуЁ√, Ёрч√уЁ√трхь√х эр ърЁЄюээюь яюых яырёЄьрёёют√ьш Їш°ърьш. ╫Єюс√ тэхёЄш т эшї ¤ыхьхэЄ юс·хъЄштэюёЄш ш ёыєўрщэюёЄш, яЁшьхэ ышё№ шуЁры№э√х ъюёЄш. ╩ръ Є√ яюэшьрх°№, яхЁхтхёЄш тёх ¤Єю эр  ч√ъ ъры№ъєы ЄюЁр эхёыюцэю. ╥ю хёЄ№ т яхЁт√ї тюЁухщьрї ёюїЁрэ ыюё№ ш яюых, ш Їш°ъш, р ъры№ъєы ЄюЁ Єюы№ъю сюыхх-ьхэхх юс·хъЄштэю ЁрёёўшЄ√тры Ёхчєы№ЄрЄ√ ёЄюыъэютхэш  фтєї юЄЁ фют. ╧ючфэхх яю тшышё№ сюыхх яЁюфтшэєЄ√х шуЁ√, уфх тчршьэюх яюыюцхэшх тющёъ, єЁютхэ№ шї ёэрсцхэш  ш яюфуюЄютъш, ьюЁры№ ш тёх яЁюўхх їЁрэшыюё№ т ярь Єш ъры№ъєы ЄюЁр, р шуЁюъє юёЄртрыюё№ Єюы№ъю юЄфртрЄ№ ъюьрэф√, рЄръютрЄ№ Єръющ-Єю юЄЁ ф эхяЁш Єхы  Єръшь-Єю ётюшь юЄЁ фюь.
╞хёЄюъшх шуЁ√
┬ юсырёЄш ыюушўхёъшї шуЁ ъры№ъєы ЄюЁ тёЄєяшы эр ЄЁюяє, ъюЄюЁє■ хьє, яю шфхх, эшъръ эх тючьюцэю с√ыю юфюыхЄ№. ─хыю т Єюь, ўЄю эр°ш єьхы№Ў√ эх ёЄрыш ьюфхышЁютрЄ№ тё ъшх ярччы√, ъЁхёЄшъш-эюышъш шыш "╠юЁёъющ сющ", юэш ёЁрчє цх тч ышё№ чр °рїьрЄ√ ш °р°ъш!
┬юЄ тхф№ ўЄю шэЄхЁхёэю, тёхую чр эхёъюы№ъю ьхё Ўхт фю яю тыхэш  яхЁтющ °рїьрЄэющ яЁюуЁрьь√ юфшэ шч юЄЎют-юёэютрЄхыхщ ъыєср эр тюяЁюё, ъюуфр Єръшх шуЁ√ яю т Єё , юЄтхЄшы ЇЁрчрьш: "═х тяюыэх юсюёэютрээр  тхЁр тю тёхьюує∙хёЄтю ╧╩", "╩ръшх Єрь °рїьрЄ√! ╧ш°ш ўЄю яюярыю, їюфш ъръ яюярыю!" ╧ю ёўрёЄ№■, яюъыюээшъют ╧╩ ¤Єю эх юсхёъєЁрцшыю. ╩юэхўэю, фю яюыэюЎхээ√ї °рїьрЄэ√ї яЁюуЁрьь фхыю Єръ ш эх фю°ыю, эю   єтхЁхэ, ўЄю эх шч-чр ёырсюёЄш ╧╩ шыш эхфюёЄрЄър т эр°хщ ёЄЁрэх ёрьюЁюфъют, р Єюы№ъю шч-чр яЁш°хёЄтш  т эхх ZX Spectrum ш яЁюўхщ шэюёЄЁрээющ чрЁрч√.
╧хЁтр  °рїьрЄэр  яЁюуЁрььр яЁхфырурыр яюёЄртшЄ№ ьрЄ ёыюэюь ш ъюэхь ўхЁэюьє ъюЁюы■, єяЁрты хьюьє ╧╩. ═рфю ёърчрЄ№, ўхЁэ√х юсюЁюэ ышё№ тхё№ьр шёъєёэю, Єръ ўЄю яютючшЄ№ё  яЁшїюфшыюё№ эхьрыю. ╧юЄюь с√ыш яЁюуЁрьь√, т ъюЄюЁ√ї ╧╩ ёЄртшы ырф№хщ шыш ырф№хщ ш ёыюэюь ьрЄ ъюЁюы■, єяЁрты хьюьє ўхыютхъюь. ─юыцхэ юЄьхЄшЄ№, ¤Єю с√ыш юўхэ№ юсшфэ√х яЁюуЁрьь√, юфшэ ьющ яЁш Єхы№, сюы№°ющ ы■сшЄхы№ °рїьрЄ, чрсЁюёшы шї эртёхуфр яюёых Єюую ъръ "яЁюъы Єр  цхыхч ър" яюёЄртшыр хьє ьрЄ эр фхт Єюь їюфє.
╧юЄюь яю°ыш °рїьрЄюяюфюсэ√х шуЁ√, "┬юыъш ш ютЎ√", "╙ъЁю∙хэшх ьєёЄрэур" ш фЁєушх. ═ръюэхЎ, яю тшышё№ ш °р°хўэ√х яЁюуЁрьь√, т ъюЄюЁ√ї ьюцэю с√ыю ё√уЁрЄ№ яюыэюЎхээє■ ярЁЄш■. ╬ эшї эєцэю ёърчрЄ№ юёюсю.
─ы  эрўрыр юўхЁхфэр  чрфрўър эр ёююсЁрчшЄхы№эюёЄ№. ╪р°хўэр  фюёър ёюёЄюшЄ шч 64-ї ъыхЄюъ (хёыш ёўшЄрЄ№ Єюы№ъю шёяюы№чєхь√х ўхЁэ√х - 32-ї), т шуЁх єўрёЄтєхЄ яю 12 °р°хъ ё ърцфющ ёЄюЁюэ√. ╥хяхЁ№ яюяЁюсєщ чряшїэєЄ№ тёх ¤Єю т 14 ЁхушёЄЁют, фр х∙х ярЁє-ЄЁющъє эєцэю юёЄртшЄ№ фы  тё ъшї тёяюьюурЄхы№э√ї т√ўшёыхэшщ. ═є ўЄю, ъЁ√°р яюхїрыр? ╦рфэю, эх сєфє ЄюьшЄ№.
╧ЁюёЄхщ°шщ ш эршсюыхх ¤ъюэюьэ√щ ёяюёюс чръы■ўрхЄё  т Єюь, ўЄюс√ їЁрэшЄ№ эх ёюёЄю эшх ърцфющ ъыхЄюўъш, р ёюёЄю эшх Ё фют. ╥ю хёЄ№ чряшё√трхь т яхЁт√щ ЁхушёЄЁ, ёърцхь, 1020, ¤Єю чэрўшЄ, ўЄю т яхЁтющ ъыхЄъх яхЁтюую Ё фр ёЄюшЄ схыр  °р°ър, тЄюЁр  ш ўхЄтхЁЄр  яєёЄ√, р т ЄЁхЄ№хщ ёЄюшЄ ўхЁэр . ─ы  юяшёрэш  тёхщ фюёъш яюэрфюсшЄё  тёхую тюёхь№ ЁхушёЄЁют. ═ю ьюцэю ш ¤Єю ъюышўхёЄтю ёюъЁрЄшЄ№ тфтюх, хёыш т юфэюь ЁхушёЄЁх їЁрэшЄ№ ёЁрчє фтр Ё фр, эхўхЄэ√щ ъръ Ўхыє■ ўрёЄ№ ўшёыр, р ўхЄэ√щ ъръ фЁюсэє■. ┬ююс∙х-Єю хёЄ№ тючьюцэюёЄ№ чряшїэєЄ№ тё■ фюёъє т фтр ЁхушёЄЁр, яюяЁюсєщ ёрь ёююсЁрчшЄ№, ъръ.
═хёс√т°шхё  эрфхцф√
╪р°хўэ√х яЁюуЁрьь√ с√ыш, ьюцэю ёърчрЄ№, ыхсхфшэющ яхёэхщ ╧╩. ╧Ёртфр, яюф чрэртхё, яю тшырё№ яюўЄш эрёЄю ∙р  RPG "╤ЄЁрэр ╘рэЄрчш ", RTS "╧юыхЄ °ьхы ", рЁърфр "╬їюЄр эр ёърыюхфр" ш яю°руютр  ёЄЁрЄхуш  "╧х∙хЁр ёюъЁютш∙". ╬фэръю ё чрярфр (ш тюёЄюър) эр ёЄЁрэє єцх эрфтшэєышё№ тё ъшх Єрь "╩юььюфюЁ√" ш "└ьшуш", р чр эрьш ьр ўшы ш ёрь IBM PC. ╩ръ Є√ чэрх°№, ╤ЄЁрэр ╤ютхЄют ¤Єюую эрЄшёър эх т√фхЁцрыр ш Ёрчтрышырё№, яюф хх юсыюьърьш с√ы яюуЁхсхэ ш ёъЁюьэ√щ ьшъЁюъры№ъєы ЄюЁ. └ цры№, ъЄю чэрхЄ, фю ъръшї с√ т√ёюЄ фю°ыю эрЁюфэюх ЄтюЁўхёЄтю, ъръшх эхь√ёышь√х шфхш тюяыюЄшышё№ с√ т фхт эюёЄр ёхьш °рурї яЁюуЁрьь√ ш ўхЄ√ЁэрфЎрЄш  ўхщърї ярь Єш?
@@ -0,0 +1,90 @@
<!DOCTYPE HTML PUBLIC "-//W3c//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56</title>
<meta name=KEYWORDS content="ёшёЄхьр ъюьрэф яЁюуЁрььшЁєхь√щ ъры№ъєы ЄюЁ ьшъЁюъры№ъєы ЄюЁ ┴3 ┴╟ ╠╩ 34 54 56">
<meta name=DESCRIPTION content="╤шёЄхьр ъюьрэф ёютхЄёъшї яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34, ╠╩-54, ╠╩-56">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<LINK REL=STYLESHEET TYPE="text/css" HREF="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/s2008000.css">
</head>
<body bgcolor="#CCCCCC" link="#0000CC" alink="#0000CC" background="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/b4000000.gif">
<CENTER>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 width=80% background="pict/t.gif">
<TBODY>
<TR>
<TD><h1>╤шёЄхьр ъюьрэф ╧╠╩ ┴3-34, ╠╩-54, ╠╩-56</h1></TD>
</TR>
<TR>
<TD><hr><a href="http://www.semico.ru/" title="╤рщЄ ═╧╧ ╤┼╠╚╩╬">
├ыртэр 
</a>/
<a href="http://mk.semico.ru/index.htm" title="▌╩┬╠">
▌╩┬╠
</a>/
<a href="http://mk.semico.ru/oinfo.htm" title="╬с∙р  шэЇюЁьрЎш ">
╬с∙р  шэЇюЁьрЎш 
</a>
<SCRIPT src="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/s0000000.js" language="JavaScript1.2"></SCRIPT>
<hr>
</TD>
</TR>
</TBODY></TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 width=80% background="pict/t.gif">
<TBODY>
<TR>
<TD><br>
<IMG src="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/com_b334.jpg" width=567 height=326 border=0 alt="╤шёЄхьр ъюьрэф ёютхЄёъшї яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34">
<P><i>╨шё.1. [1]</i>
</P>
<br>
<P>╤шёЄхьр ъюьрэф ёютхЄёъшї яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют "▌ыхъЄЁюэшър ┴3-34" яЁхфёЄртыхэр эр Ёшёєэъх 1. ╟эрърьш '-', 'L', 'C', '├', 'E' юсючэрўхэ√ °хёЄэрфЎрЄшЁшўэ√х ЎшЇЁ√ 'A','B','C','D','E' ёююЄтхЄёЄтхээю. ╥ръ юэш т√тюфшышё№ эр ёхьшёхуьхэЄэюь ┬╦╚ шэфшърЄюЁх ъры№ъєы ЄюЁют. ╓шЇЁр 'F' т ЄрсышЎх эх шьххЄ юЄфхы№эюую юсючэрўхэш , юэр т√тюфшырё№ ъръ яєёЄюх чэръюьхёЄю. ┼фшэёЄтхээр  ъюьрэфр ┴3-34, т ъюЄюЁющ юэр шёяюы№чєхЄё  - ¤Єю "FBx" (тючтЁрЄ ўшёыр т ёЄхъ шч ЁхушёЄЁр їЁрэхэш  Ёхчєы№ЄрЄр яЁхф√фє∙хщ юяхЁрЎшш). ╨рчышўэ√ь ЎтхЄюь т√фхыхэ√ уЁєяя√ ъюьрэф т чртшёшьюёЄш юЄ шї эрчэрўхэш .
</P>
<P>┬ ┴3-34 с√ыю 14 ЁхушёЄЁют ярь Єш. ╩юьрэф√ "╧&uarr;" "╚╧&uarr;" "Kx&ne;0&uarr;" "╩┴╧&uarr;" "Kx&ge;0&uarr;" "╩╧╧&uarr;" "╩╧&uarr;" "Kx&lt;0&uarr;" "╩╚╧&uarr;" "Kx=0&uarr;" ЁрсюЄрыш т ┴3-34 рэрыюушўэю ъюьрэфрь ё ЁхушёЄЁюь 0, эю эх т√ч√трыш ртЄюфхъЁхьхэЄр, Єю хёЄ№ єьхэ№°хэш  эр хфшэшЎє ёюфхЁцшьюую ЁхушёЄЁр 0 яЁш ъюётхээюь юсЁр∙хэшш. ▌Єр юёюсхээюёЄ№ ўрёЄю шёяюы№чютрырё№ яЁш юяЄшьшчрЎшш, эю ё яю тыхэшхь ЁхушёЄЁр "┼" т ьюфхы ї ╠╩-52 ш ╠╩-61 яЁюуЁрьь√ ё ¤Єшьш ъюьрэфрьш яЁш°ыюё№ ЁрчЁрсрЄ√трЄ№ чрэютю. ╩юьрэф√ ё ъюфрьш 26h-2Ah ш 30h-3Bh т√ч√трыш т ┴3-34 ртрЁшщэ√щ юёЄрэют.
</P>
<P>╩юьрэф√ ъры№ъєы ЄюЁют ╠╩-54 ш ╠╩-56 юЄышўрышё№ Ё фюь юсючэрўхэшщ: "╧&rarr;x" тьхёЄю "╚╧", "x&rarr;╧" тьхёЄю "╧", "X&harr;Y" тьхёЄю "XY", "B&uarr;" тьхёЄю "&uarr;", р Єръцх ъюьрэф√ "sin<sup>-1</sup>", "cos<sup>-1</sup>", "tg<sup>-1</sup>" тьхёЄю ъюЁЁхъЄэ√ї юсючэрўхэшщ "arcsin", "arccos", "arctg" ёююЄтхЄёЄтхээю. ╧Ёш ¤Єюь эрсюЁ ъюьрэф ш шёяюыэ хь√х шьш фхщёЄтш  т яхЁхўшёыхээ√ї ьюфхы ї с√ыш шфхэЄшўэ√. ╤шёЄхьр ъюьрэф ш шї юсючэрўхэшщ ╠╩-54, ╠╩-56  ты хЄё  срчютющ фы  яюёыхфє■∙шї ьюфхыхщ ╠╩-52 ш ╠╩-61.
</P>
<IMG src="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/stack000.jpg" width=464 height=501 border=0 alt="╧хЁхьх∙хэшх шэЇюЁьрЎшш т ёЄхъх яЁш т√яюыэхэшш ъюьрэф ╧╠╩ ┴3-34">
<P><i>╨шё.2. [1]</i>
</P>
<P>═р Ёшёєэъх 2 яюърчрэю яхЁхьх∙хэшх шэЇюЁьрЎшш т ЁхушёЄЁрї ёЄхър ьшъЁюъры№ъєы ЄюЁют яЁш т√яюыэхэшш Ёрчышўэ√ї ъюьрэф ш юяхЁрЎшщ. ╧юфЁюсэюх юяшёрэшх ёЄхър ёь. т <a href="http://mk.semico.ru/re_logika.htm" title="ыюушър т√ўшёыхэшщ ш юЁурэшчрЎш  ярь Єш">ЁєъютюфёЄтх яю ¤ъёяыєрЄрЎшш</a> яЁюуЁрььшЁєхьюую ъры№ъєы ЄюЁр ╠╩-152.
</P>
<P>┬ юёэютх <a href="http://mk.semico.ru/tabl2.htm" title="ёшёЄхьр ъюьрэф ▌╩┬╠ ╠╩-152">ёшёЄхь√ ъюьрэф</a> ъыртш°э√ї ▌┬╠ ╠╩-152 ш ╠╩-161 ыхцрЄ ъюьрэф√ ъры№ъєы ЄюЁют ╠╩-52 ш ╠╩-61, эю юсючэрўхэш  ъюьрэф чряшёш "╧" ш ёўшЄ√трэш  "╚╧", р Єръцх юсЁрЄэ√ї ЄЁшуюэюьхЄЁшўхёъшї ЇєэъЎшщ ёююЄтхЄёЄтє■Є ┴3-34. ┼ёЄ№ ш фЁєушх <a href="http://mk.semico.ru/dr_sovmest.htm" title="ёютьхёЄшьюёЄ№ ▌╩┬╠ ш ╧╠╩">юЄышўш </a> ▌╩┬╠ "▌ыхъЄЁюэшър ╠╩" юЄ ёютхЄёъшї ╧╠╩.
</P>
<br><hr><br>
<IMG src="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/tablb334.jpg" width=700 height=439 border=0 alt="╤шёЄхьр ъюьрэф ёютхЄёъшї яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 - ═ш╞ 12-84">
<P><i>╨шё.3. [2]</i>
<P>═р Ёшёєэъх 3 - ЄрсышЎр ъюфют юяхЁрЎшщ фы  яЁюуЁрььшЁєхьюую ьшъЁюъры№ъєы ЄюЁр "▌ыхъЄЁюэшър ┴3-34" ё 5-щ ЎтхЄэющ тъырфъш цєЁэрыр "═рєър ш ╞шчэ№" N12 чр 1984 у. ╨шё. ╤. ╧штютрЁютр.
</P>
<br><hr><br>
<h4>╦шЄхЁрЄєЁр</h4>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5><TBODY>
<TR><TD>
<P>1. ─рэшыют ╚.─. ╤хъЁхЄ√ яЁюуЁрььшЁєхьюую ьшъЁюъры№ъєы ЄюЁр. - ╠.:═рєър. ├ы. Ёхф. Їшч.-ьрЄ. ышЄ., 1986. - 160 ё.- (┴-ўър "╩трэЄ". ┬√я. 55.)</P>
</TD><TD><IMG src="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/danilov1.jpg" width=90 height=146 border=0 alt="─рэшыют ╚.─. ╤хъЁхЄ√ яЁюуЁрььшЁєхьюую ъры№ъєы ЄюЁр. ┴шсышюЄхўър ╩трэЄ т√я. 55"></TD></TR>
<TR><TD>
<P>2. ╞єЁэры "═рєър ш ╞шчэ№" N12 - 1984 у.</P>
</TD><TD><IMG src="╤шёЄхьр ъюьрэф яЁюуЁрььшЁєхь√ї ьшъЁюъры№ъєы ЄюЁют ┴3-34 ╠╩-54 ╠╩-56_files/nkj12840.jpg" width=90 height=143 border=0 alt="═ш╞ 12-84"></TD></TR>
</TBODY></TABLE>
<br>
</TD>
</TR>
<TR>
<TD>
<hr><font color="#666666">═╧╧ "╤┼╠╚╩╬" (383) 271-01-25 (ьэюуюърэры№э√щ)</font><br>
</TD>
</TR>
</TBODY></TABLE>
</body>
</html>
<!-- This document saved from http://mk.semico.ru/comb334.htm -->
+194
View File
@@ -0,0 +1,194 @@
ch_struc_size=36
ed_struc_size=76
ch_flag_en=10b
ch_left equ [edi] ;координата начала рисования по х
ch_top equ [edi+2] ;координата начала рисования по у
ch_text_margin equ [edi+4] ;=4 расстояние от прямоугольника чек бокса до надписи
ch_size equ [edi+8] ;12 размер квадрата чек бокса
ch_color equ [edi+12] ;цвет внутри checkbox
ch_border_color equ [edi+16] ; or [edi+4] ;цвет рамки checkbox ее можно задать самостоятельно
ch_text_color equ [edi+20];[edi+4] ;цвет текста
ch_text_ptr equ [edi+24] ;указатель на начало текстовой строки
ch_text_length equ [edi+28]
ch_flags equ [edi+32] ;флаги
ed_width equ [edi] ;ширина компонента
ed_left equ [edi+4] ;положение по оси х
ed_top equ [edi+8] ;положение по оси у
ed_color equ [edi+12] ;цвет фона компонента
shift_color equ [edi+16] ;=0x6a9480 для примера возьем желеный цвет бокса
ed_focus_border_color equ [edi+20] ;цвет рамки компонента
ed_blur_border_color equ [edi+24] ;цвет не активного компонента
ed_text_color equ [edi+28] ;цвет текста
ed_max equ [edi+32] ;кол-во символов которые можно максимально ввести
ed_text equ [edi+36] ;указатель на буфер
ed_mouse_variable equ [edi+40] ; указатель на переменную для бокса/группы
ed_flags equ [edi+44] ;флаги
bp_flags equ [ebp+44] ;в некоторых процедурах edi используется, взамен указатель храниться в ebp
ed_size equ [edi+48] ;кол-во символов
bp_size equ [ebp+48] ;кол-во симвполов, для адресации испльзуется ebpб edi занят
ed_pos equ [edi+52] ;позиция курсора
ed_offset equ [edi+56] ;смещение
cl_curs_x equ [edi+60] ;предыдущее координата курсора по х
cl_curs_y equ [edi+64] ;предыдущее координата курсора по у
ed_shift_pos equ [edi+68] ;положение курсора
ed_shift_pos_old equ [edi+72] ;старое положение курсора
ed_struc_size=76
struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
{
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_figure_only= 1000000000000000b ;одни символы
ed_always_focus= 100000000000000b
ed_focus= 10b ;фокус приложения
ed_shift_on= 1000b ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift
ed_shift_on_off=1111111111110111b
ed_shift= 100b ;включается при нажатии на shift т.е. если нажимаю
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;бит для очистки выделеного shift т.е. при установке говорит что есть выделение
ed_shift_bac_cl=1111111111101111b ;очистка при удалении выделения
ed_shift_cl= 1111111111100011b
ed_shift_mcl= 1111111111111011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_mouse_on = 100000000b
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_height=14 ; высота
.width dd width
.left dd left
.top dd top
.color dd color
.shift_color dd shift_color
.focus_border_color dd focus_border_color
.blur_border_color dd blur_border_color
.text_color dd text_color
.max dd max
.text dd text
.mouse_variable dd mouse_variable
.flags dd flags+0
.size dd size+0
.pos dd pos+0
.offset dd 0
.cl_curs_x dd 0
.cl_curs_y dd 0
.shift dd 0
.shift_old dd 0
}
macro edit_boxes_set_sys_color start,end,color_table
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
mov esi,color_table
@@:
mov eax,dword [esi+36]
mov ebx,dword [esi+20]
push dword eax
pop dword ed_focus_border_color
shr bh,1
shr bl,1
shr ah,1
shr al,1
add ah,bh
add al,bl
ror eax,16
ror ebx,16
shr bl,1
shr al,1
add al,bl
ror eax,16
mov dword ed_blur_border_color,eax
mov dword shift_color,eax
add edi,ed_struc_size
loop @b
}
macro get_sys_colors col_buf
{
;mov eax,48
push 48
pop eax
;mov ebx,3
push 3
pop ebx
;mov ecx,col_buf
push col_buf
pop ecx
;mov edx,40
push 40
pop edx
mcall
}
macro check_boxes_set_sys_color start,end,color_table
{
ch_left equ [edi] ;координата начала рисования по х
ch_top equ [edi+2] ;координата начала рисования по у
ch_text_margin equ [edi+4] ;=4 расстояние от прямоугольника чек бокса до надписи
ch_size equ [edi+8] ;12 размер квадрата чек бокса
ch_color equ [edi+12] ;цвет внутри checkbox
ch_border_color equ [edi+16] ; or [edi+4] ;цвет рамки checkbox ее можно задать самостоятельно
ch_text_color equ [edi+20];[edi+4] ;цвет текста
ch_text_ptr equ [edi+24] ;указатель на начало текстовой строки
ch_text_length equ [edi+28]
ch_flags equ [edi+32] ;флаги
;ch_left equ [edi] ;координата начала рисования по х
;ch_top equ [edi+2] ;координата начала рисования по у
;ch_color equ [edi+4] ;цвет внутри checkbox
;ch_border_color equ [edi+8] ;цвет рамки checkbox
;ch_text_color equ [edi+12] ;цвет текста
;ch_text_ptr equ [edi+16] ;указатель на начало текстовой строки
;ch_text_length equ [edi+20] ;длина надписи (2^64 такой длины может быть текст)
;ch_flags equ [edi+24] ;флаги
mov edi,start
mov ecx,((end-start)/ch_struc_size)
mov esi,color_table
@@:
push dword [esi+32]
pop dword ch_text_color
push dword [esi+36]
pop dword ch_border_color
add edi,ch_struc_size
loop @b
}
struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags
{ ;структура параметров для чек бокса
ch_flag_en=10b
.left: dw left ;+0 ;положение по х
.top: dw top ;положение по у
.ch_text_margin: dd ch_text_margin ;расстояние от прямоугольника чек бокса до надписи
.ch_size: dd ch_size ;размер квадрата чек бокса, для примера 12
.color: dd color ;цвет внутри чекбокса
.border_color: dd border_color ;цвет рамки
.text_color: dd text_color ;цвет надписи
.text: dd text ;адрес в коде программы где расположен текст
.ch_text_length: dd ch_text_length ;длинна строки с символами
.flags: dd flags+0 ; флаги
}
struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags
{ ;структура параметров для чек бокса
op_flag_en=10b
.option_group: dd point_gr
.left: dw left ;+0 ;положение по х
.top: dw top ;положение по у
.ch_text_margin: dd op_text_margin ;расстояние от прямоугольника чек бокса до надписи
.ch_size: dd op_size ;размер квадрата чек бокса, для примера 12
.color: dd color ;цвет внутри чекбокса
.border_color: dd border_color ;цвет рамки
.text_color: dd text_color ;цвет надписи
.text: dd text ;адрес в коде программы где расположен текст
.ch_text_length: dd op_text_length ;длинна строки с символами
.flags: dd flags+0 ; флаги
}
+1
View File
@@ -0,0 +1 @@
lang fix ru
@@ -0,0 +1,48 @@
macro buttabnum a0,a1,a2,a3,a4
{
test [flags],(1 shl 5)
jnz .prg
test [flags],(1 shl 3)
jnz .a1
if a4
test [flags],(1 shl 4)
jnz .a4
endf
test [flags],(1 shl 11)
jnz .a2
test [flags],(1 shl 12)
jnz .a3
test [flags],(1 shl 9)
jnz .prg
mov eax,a0
jmp but_table.to_opcode
.a1: mov eax,a1
jmp but_table.to_opcode
.a2: mov eax,a2
jmp but_table.to_opcode
.a3: mov eax,a3
jmp but_table.to_opcode
.prg:
test [flags],(1 shl 8)
jz @f
add [dop8],a0
jmp but_table.dop8
@@: test [flags],(1 shl 9)
jz @f
mov al,a0
jmp but_table.dop9
@@: movzx eax,[schk]
add eax,PMEM
inc [schk]
test [flags],(1 shl 3)
jnz @f
mov byte [eax],a0
ret
@@: mov byte [eax],a1
btr [flags],3
ret
if a4
.a4: mov eax,a4
jmp but_table.to_opcode
endf
}
+543
View File
@@ -0,0 +1,543 @@
@^ fix macro comment {
^@ fix }
; -------------------------
macro library [lname,fname]
{
forward
dd __#lname#_library_table__,__#lname#_library_name__
common
dd 0
forward
align 4
__#lname#_library_name__ db fname,0
}
macro import lname,[name,sname]
{
common
align 4
__#lname#_library_table__:
forward
if used name
name dd __#name#_import_name__
end if
common
dd 0
forward
if used name
align 4
__#name#_import_name__ db sname,0
end if
}
macro export [name,sname]
{
forward
dd __#name#_export_name__,name
common
dd 0
forward
align 4
__#name#_export_name__ db sname,0
}
; -------------------------
macro m2m dest,src {
push src
pop dest
}
macro iglobal {
IGlobals equ IGlobals,
macro __IGlobalBlock { }
macro uglobal {
UGlobals equ UGlobals,
macro __UGlobalBlock { }
endg fix } ; Use endg for ending iglobal and uglobal blocks.
macro IncludeIGlobals{
macro IGlobals dummy,[n] \{ __IGlobalBlock
purge __IGlobalBlock \}
match I, IGlobals \{ I \} }
macro IncludeUGlobals{
macro UGlobals dummy,[n] \{
\common
\local begin, size
begin = $
virtual at $
\forward
__UGlobalBlock
purge __UGlobalBlock
\common
size = $ - begin
end virtual
rb size
\}
match U, UGlobals \{ U \} }
uglobal
endg
iglobal
endg
; new application structure
macro meos_app_start
{
use32
org 0x0
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
dd 0x0
}
MEOS_APP_START fix meos_app_start
macro code
{
__start:
}
CODE fix code
macro data
{
__data:
IncludeIGlobals
}
DATA fix data
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
IncludeUGlobals
}
UDATA fix udata
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
; macro for defining multiline text data
struc mls [sstring]
{
forward
local ssize
virtual at 0
db sstring ; mod
ssize = $
end virtual
db ssize
db sstring
common
db -1 ; mod
}
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
name db data
.size = $-name
end if
}
macro lsz name,[lng,data] { ; from MFAR [mike.dld]
common
if used name
label name
forward
if lang eq lng
db data
end if
common
.size = $-name
end if
}
macro szc name,elsz,[data] { ; from MFAR [mike.dld]
common
local s,m
m = 0
if used name
label name
forward
virtual at 0
db data
s = $
end virtual
d#elsz s
if m < s
m = s
end if
db data
common
.size = $-name
.maxl = m
end if
}
macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld]
common
local s,m,c
m = 0
c = 0
if used name
label name
forward
if lang eq lng
virtual at 0
db data
s = $
end virtual
d#elsz s
if m < s
m = s
end if
db data
c = c+1
end if
common
.size = $-name
.maxl = m
.count = c
end if
}
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
end if
}
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
mov reg,a
end if
}
include 'config.inc'
__CPU_type equ p5
SYSENTER_VAR equ 0
macro mcall a,b,c,d,e,f { ; mike.dld, updated by Ghost for Fast System Calls
local ..ret_point
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
if __CPU_type eq p5
int 0x40
else
if __CPU_type eq p6
push ebp
mov ebp, esp
push ..ret_point ; it may be 2 or 5 byte
sysenter
..ret_point:
pop edx
pop ecx
else
if __CPU_type eq k6
push ecx
syscall
pop ecx
else
display 'ERROR : unknown CPU type (set to p5)', 10, 13
__CPU_type equ p5
int 0x40
end if
end if
end if
}
; -------------------------
macro header a,[b] {
common
use32
org 0
db 'MENUET',a
forward
if b eq
dd 0
else
dd b
end if }
macro section name { align 16
label name }
macro func name {
if ~used name
display 'FUNC NOT USED: ',`name,13,10
else
align 4
name:
;diff16 `name,0,name
;pushad
;pushfd
;dps `name
;newline
;mcall 5,1
;popfd
;popad
}
macro endf { end if }
macro diff16 title,l1,l2
{
local s,d
s = l2-l1
display title,': 0x'
repeat 8
d = '0' + s shr ((8-%) shl 2) and $0F
if d > '9'
d = d + 'A'-'9'-1
end if
display d
end repeat
display 13,10
}
macro diff10 title,l1,l2
{
local s,d,z,m
s = l2-l1
z = 0
m = 1000000000
display title,': '
repeat 10
d = '0' + s / m
s = s - (s/m)*m
m = m / 10
if d <> '0'
z = 1
end if
if z <> 0
display d
end if
end repeat
display 13,10
}
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
macro RGB [a] {
common
match (r=,g=,b),a \{
\dd ((r) shl 16) or ((g) shl 8) or (b)
\}
}
struc POINT _t,_dx,_dy {
.x _t _dx
.y _t _dy
}
; structure definition helper
include 'struct.inc'
struct RECT
left dd ?
top dd ?
right dd ?
bottom dd ?
ends
struct BOX
left dd ?
top dd ?
width dd ?
height dd ?
ends
; structures used in MeOS
struct process_information
cpu_usage dd ? ; +0
window_stack_position dw ? ; +4
window_stack_value dw ? ; +6
dw ? ; +8
process_name rb 12 ; +10
memory_start dd ? ; +22
used_memory dd ? ; +26
PID dd ? ; +30
box BOX ; +34
slot_state dw ? ; +50
dw ? ; +52
client_box BOX ; +54
wnd_state db ? ; +70
rb (1024-71)
ends
struct system_colors
frame dd ?
grab dd ?
grab_button dd ?
grab_button_text dd ?
grab_text dd ?
work dd ?
work_button dd ?
work_button_text dd ?
work_text dd ?
work_graph dd ?
ends
struct FILEDATE
Second db ?
Minute db ?
Hour db ?
db ?
Day db ?
Month db ?
Year dw ?
ends
struct FILEINFO
Attributes dd ?
IsUnicode db ?
db 3 dup(?)
DateCreate FILEDATE
DateAccess FILEDATE
DateModify FILEDATE
Size dq ?
ends
; constants
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
File diff suppressed because it is too large. Load diff
+268
View File
@@ -0,0 +1,268 @@
; Macroinstructions for defining and calling procedures
macro stdcall proc,[arg] ; directly call STDCALL procedure
{ common
if ~ arg eq
reverse
pushd arg
common
end if
call proc }
macro invoke proc,[arg] ; indirectly call STDCALL procedure
{ common
if ~ arg eq
reverse
pushd arg
common
end if
call [proc] }
macro ccall proc,[arg] ; directly call CDECL procedure
{ common
size@ccall = 0
if ~ arg eq
reverse
pushd arg
size@ccall = size@ccall+4
common
end if
call proc
if size@ccall
add esp,size@ccall
end if }
macro cinvoke proc,[arg] ; indirectly call CDECL procedure
{ common
size@ccall = 0
if ~ arg eq
reverse
pushd arg
size@ccall = size@ccall+4
common
end if
call [proc]
if size@ccall
add esp,size@ccall
end if }
macro proc [args] ; define procedure
{ common
match name params, args>
\{ define@proc name,<params \} }
prologue@proc equ prologuedef
macro prologuedef procname,flag,parmbytes,localbytes,reglist
{ if parmbytes | localbytes
push ebp
mov ebp,esp
if localbytes
sub esp,localbytes
end if
end if
irps reg, reglist \{ push reg \} }
epilogue@proc equ epiloguedef
macro epiloguedef procname,flag,parmbytes,localbytes,reglist
{ irps reg, reglist \{ reverse pop reg \}
if parmbytes | localbytes
leave
end if
if flag and 10000b
retn
else
retn parmbytes
end if }
macro define@proc name,statement
{ local params,flag,regs,parmbytes,localbytes,current
if used name
name:
match =stdcall args, statement \{ params equ args
flag = 11b \}
match =stdcall, statement \{ params equ
flag = 11b \}
match =c args, statement \{ params equ args
flag = 10001b \}
match =c, statement \{ params equ
flag = 10001b \}
match =params, params \{ params equ statement
flag = 0 \}
virtual at ebp+8
match =uses reglist=,args, params \{ regs equ reglist
params equ args \}
match =regs =uses reglist, regs params \{ regs equ reglist
params equ \}
match =regs, regs \{ regs equ \}
match =,args, params \{ defargs@proc args \}
match =args@proc args, args@proc params \{ defargs@proc args \}
parmbytes = $ - (ebp+8)
end virtual
name # % = parmbytes/4
all@vars equ
current = 0
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \}
macro locals
\{ virtual at ebp-localbytes+current
macro label . \\{ deflocal@proc .,:, \\}
struc db [val] \\{ \common deflocal@proc .,db,val \\}
struc dw [val] \\{ \common deflocal@proc .,dw,val \\}
struc dp [val] \\{ \common deflocal@proc .,dp,val \\}
struc dd [val] \\{ \common deflocal@proc .,dd,val \\}
struc dt [val] \\{ \common deflocal@proc .,dt,val \\}
struc dq [val] \\{ \common deflocal@proc .,dq,val \\}
struc rb cnt \\{ deflocal@proc .,rb cnt, \\}
struc rw cnt \\{ deflocal@proc .,rw cnt, \\}
struc rp cnt \\{ deflocal@proc .,rp cnt, \\}
struc rd cnt \\{ deflocal@proc .,rd cnt, \\}
struc rt cnt \\{ deflocal@proc .,rt cnt, \\}
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \}
macro endl
\{ purge label
restruc db,dw,dp,dd,dt,dq
restruc rb,rw,rp,rd,rt,rq
restruc byte,word,dword,pword,tword,qword
current = $-(ebp-localbytes)
end virtual \}
macro ret operand
\{ match any, operand \\{ retn operand \\}
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs>
\\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \}
macro finish@proc \{ localbytes = (((current-1) shr 2)+1) shl 2
end if \} }
macro defargs@proc [arg]
{ common
if ~ arg eq
forward
local ..arg,current@arg
match argname:type, arg
\{ current@arg equ argname
label ..arg type
argname equ ..arg
if dqword eq type
dd ?,?,?,?
else if tbyte eq type
dd ?,?,?
else if qword eq type | pword eq type
dd ?,?
else
dd ?
end if \}
match =current@arg,current@arg
\{ current@arg equ arg
arg equ ..arg
..arg dd ? \}
common
args@proc equ current@arg
forward
restore current@arg
common
end if }
macro deflocal@proc name,def,[val]
{ common
match vars, all@vars \{ all@vars equ all@vars, \}
all@vars equ all@vars name
forward
local ..var,..tmp
..var def val
match =?, val \{ ..tmp equ \}
match any =dup (=?), val \{ ..tmp equ \}
match tmp : value, ..tmp : val
\{ tmp: end virtual
initlocal@proc ..var,def value
virtual at tmp\}
common
match first rest, ..var, \{ name equ first \} }
macro initlocal@proc name,def
{ virtual at name
def
size@initlocal = $ - name
end virtual
position@initlocal = 0
while size@initlocal > position@initlocal
virtual at name
def
if size@initlocal - position@initlocal < 2
current@initlocal = 1
load byte@initlocal byte from name+position@initlocal
else if size@initlocal - position@initlocal < 4
current@initlocal = 2
load word@initlocal word from name+position@initlocal
else
current@initlocal = 4
load dword@initlocal dword from name+position@initlocal
end if
end virtual
if current@initlocal = 1
mov byte [name+position@initlocal],byte@initlocal
else if current@initlocal = 2
mov word [name+position@initlocal],word@initlocal
else
mov dword [name+position@initlocal],dword@initlocal
end if
position@initlocal = position@initlocal + current@initlocal
end while }
macro endp
{ purge ret,locals,endl
finish@proc
purge finish@proc
restore regs@proc
match all,args@proc \{ restore all \}
restore args@proc
match all,all@vars \{ restore all \} }
macro local [var]
{ common
locals
forward done@local equ
match varname[count]:vartype, var
\{ match =BYTE, vartype \\{ varname rb count
restore done@local \\}
match =WORD, vartype \\{ varname rw count
restore done@local \\}
match =DWORD, vartype \\{ varname rd count
restore done@local \\}
match =PWORD, vartype \\{ varname rp count
restore done@local \\}
match =QWORD, vartype \\{ varname rq count
restore done@local \\}
match =TBYTE, vartype \\{ varname rt count
restore done@local \\}
match =DQWORD, vartype \\{ label varname dqword
rq count+count
restore done@local \\}
match , done@local \\{ virtual
varname vartype
end virtual
rb count*sizeof.\#vartype
restore done@local \\} \}
match :varname:vartype, done@local:var
\{ match =BYTE, vartype \\{ varname db ?
restore done@local \\}
match =WORD, vartype \\{ varname dw ?
restore done@local \\}
match =DWORD, vartype \\{ varname dd ?
restore done@local \\}
match =PWORD, vartype \\{ varname dp ?
restore done@local \\}
match =QWORD, vartype \\{ varname dq ?
restore done@local \\}
match =TBYTE, vartype \\{ varname dt ?
restore done@local \\}
match =DQWORD, vartype \\{ label varname dqword
dq ?,?
restore done@local \\}
match , done@local \\{ varname vartype
restore done@local \\} \}
match ,done@local
\{ var
restore done@local \}
common
endl }
+20
View File
@@ -0,0 +1,20 @@
PrMK (Программируемый микрокалькулятор) - эмулятор МК БЗ-34. Copyright СССР.
Поддерживаются основные ОПКОДы, режим программирования, в том числе ввод ОПКОДа с клавиатуры:
- набираем "0..f 0..F", текущее смещение инкриментируется, ОПКОД введён;
- набираем "sk", далее "0..f 0..F" - и мы переходим к набранному смещению в программе, заодно меняем значение Счётчика Команд.
Команды и смещения вводятся в шестнадцатиричном виде.
Комбинация клавиш Ctrl+S откроет диалог экспорта программы, Ctrl+L - диалог импорта.
Переключатель Р-ГР-Г представляет из себя три кнопки; Р - радианы (360 градусов=2pi рад), ГРД - грады (360 градусов=400 град), Г - градусы (1 ГРД = 0,9 Г = pi/200 Р). Тригонометрические функции высчитывают значения по этим трём параметрам (правда, cos 90 = 6,123^-17, что примерно = 0).
При старте PrMK отлавливает содержимое командной строки, автоматичски загружая программу по переданному пути, т.е. можно проассоциировать файлы *.mkp с PrMK. Примеры такого файла находятся в архиве.
После операции останова (50h) в PC-Speaker'e раздастся писк, естественно при включённом динамике.
Файлы справки от автора программы "Калькулятор Б3-34" www.ua1zcl.fromru.com, а также mk.semico.ru и xakep.ru
Программа не проходила жёсткого тестирования, поэтому ожидаются всевозможные огрехи.
С уважением, staper@inbox.ru
Binary file not shown.
@@ -0,0 +1,34 @@
;Файл программы для PrMK. Скомпилировать с помощью FASM.
; Вычисляем площадь круга
;Ввод данных:
;1. Ввести радиус круга;
;2. Нажать [В/О] [С/П];
;3. На индикаторе - площадь круга.
db "<СТЕК>"
;далее следуют значения регистров стека (только qword)
;R.X1
dq 0.0
;R.X
dq 2.0
;R.Y
dq 0.0
;R.Z
dq 0.0
;R.T
dq 0.0
db "<РГСТ>"
;Регистры: (с R.0 по R.E)
times 15 dq 0.0
db "<ПРГМ>"
;Программа в ОПКОДах МК
db 0x22,0x20,0x12,0x50,0x51,0x00
Binary file not shown.
@@ -0,0 +1,46 @@
;Файл программы для PrMK. Скомпилировать с помощью FASM.
;Игра "крестики-нолики"
;Перепечатано с книги "Игры с микро ЭВМ" Я.К.Трохименко. Киев. "Технiка", 1986
;Установить переключатель Р-Г в положение Р, нажать клавиши В/О и С/П для высвечивания номера РX=9 центральной клетки, "занимаемой" микрокалькулятором; после каждого высвечивания номера клетки, "занимаемой" микрокалькулятором, вводить в регистр X номер клетки, "занимаемой" противником, и нажимать только клавишу С/П; при выигрыше микрокалькулятора высвечиваются цифры 77 (номер клетки, "занимаемой" последним ходом микрокалькулятора, хранится в регистре Y); при ничейном результате высвечивается нуль.
;Номера клеток поля:
; 1 | 2 | 3
;-----------------
; 8 | 9 | 4
;-----------------
; 7 | 6 | 5
db "<СТЕК>"
;далее следуют значения регистров стека (только qword)
;R.X1
dq 0.0
;R.X
dq 0.0
;R.Y
dq 0.0
;R.Z
dq 0.0
;R.T
dq 0.0
db "<РГСТ>"
;Регистры: (с R.0 по R.E)
times 15 dq 0.0
db "<ПРГМ>"
;Программа в ОПКОДах МК
db 0x0E,0x09,0x50,0x53,0x19,0x20,0x12,0x1D,0x5C,0x11
db 0x69,0x53,0x19,0x01,0x11,0x51,0x30,0x67,0x53,0x19
db 0x67,0x53,0x19,0x00,0x50,0x01,0x11,0x5E,0x1E,0x08
db 0x49,0x50,0x47,0x69,0x04,0x11,0x57,0x28,0x5C,0x2A
db 0x08,0x10,0x48,0x67,0x11,0x57,0x33,0x68,0x07,0x07
db 0x50,0x69,0x52
Binary file not shown.
@@ -0,0 +1,97 @@
;Файл программы для PrMK. Скомпилировать с помощью FASM.
;Игра "Посадка на Луну"
;Перепечатано с книги "5 вечеров с микрокалькулятором" И.Д.Данилов, Г.В.Славин. Москва. "Финансы и статистика", 1988
;Andriy Slezenko, student@uninet.kiev.ua
;1. Ввести программу.
;2. Перейти в режим вычислений.
;3. В/О С/П "0".
;4. h0 (начальная высота корабля) ПА v0 (начальная скорость) ПВ.
; m0 (исходная масса топлива) ПС g (ускорение свободного падения для планеты) П9.
;5. С/П "h" XY "v" ИПС "m" ИП4 "t" (текущие значения).
;6. S (расход топлива в следующую секунду).
;7. Перейти к п.5 и продолжать до посадки корабля.
;Цель игры - посадить корабль на Луну.
; Ситуация у нас с вами такая такая. Ракета находится на расстоянии N метров от Луны, скорость ее V метров в секунду, запас топлива в баках - S тонн. Величины эти, конечно, известны командиру. Сопла ракеты повернуты к Луне и, добавляя топливо в двигатель, мы начинаем тормозить. Каждую секунду на световом табло в командирской рубке появляется информация о высоте корабля над поверхностью планеты, скорости его и запасе топлива. Так как командиром корабля будете вы, то знайте, что перед тем, как посмотреть на табло, нужно нажать такие клавиши: XY показывает скорость, ИПС дает остаток топлива в баке, ИП4 - время с начала торможения. Что касается высоты ракеты над планетой, то она будет загораться на вашем табло сразу при остановке калькулятора после проведения очередного маневра.
; Задача понятна - посадить корабль так, чтобы в момент посадки скорость его была близка к нулю, топлива при этом желательно израсходовать поменьше, да и провести посадку побыстрее - незачем долго мучить членов экипажа, ведь перегрузки при посадке не маленькие. Да, что касается топлива, дополнительное условие - если его останется меньше 95 тонн, то обратный старт на Землю станет невозможным.
;Контрольный пример:
;Пусть высота будет 1000 метров, скорость - 150 м/с, запас топлива - 500 тонн. Да, еще нужно ввести в бортовой компьютер ускорение свободного падения на Луне - 1,62 м/с^2. Вводим эти числа соответственно в регистры РА, РВ, РС и Р9.
;Нажимаем В/О С/П и на индикаторе появилась начальная высота. Вводим в двигатель первую порцию топлива - 20 С/П. Через 10 секунд на индикаторе появилась высота, на которой теперь находился корабль, 856.4. Еще столько же топлива - 20 С/П и высота стала 719.4. Еще порция побольше - 25 С/П. Высота 591 метр.
;Проверим остальные параметры: скорость (клавиша XY) - 128,4 м/с, запас топлива (ИПС) - 435 тонн, время в пути (ИП4) - 3 с.
;После ввода два раза подряд по 30 тонн горючего, высота корабля снизилась до 366,9 м.
;После дальнейшего ввода два раза подряд по 35 тонн горючего, табло показало высоту - 194,1 м, скорость - 76,6, топливо - 305, время - 7.
;Далее полет протекал так:
; Расход топлива Высота
; 40 130.5
; 45 85.6
; 40 57.4
; 40 46.2
; 10 38.1
; 10 33.2
; 0 26.6
; 0 18.4
; 5 10.9
; 7 5.1
; 8 1.6
; 10 1.2
; 5 1.5
; (здесь скорость оказалась
; отрицательной (-0,3) и корабль
; начал снова удаляться от поверхности)
; 0 0.3
; 3 3.1111111
;Коснулись поверхности Луны. После посадки выяснилось (ИПС), что топлива осталось 82 тонны, а время, затраченное на этот процесс (ИП4), 21 секунда.
;В итоге мы видим, что сели тяжеловато, но корабль цел, с экипажем все в порядке. Вот только топлива перерасходовали, на обратный путь не хватит. Придется на Луне ждать корабль-спасатель и надеяться, что его капитан справится с посадкой лучше вас.
;Но не огорчайтесь. Для первого раза вполне прилично.
;Примечания:
;1. Числа в кавычках - это числа, высвечиваемые на экране.
;2. Выполнять п.4 не обязательно. По умолчанию предполагается: h=1000 м, v0=150 м/с, m0+500 т, g=1,62 м/с^2 для Луны.
;3. Смысл сообщений о качестве посадки расшифрован ниже.
;1,1111111 - идеальная посадка;
;2,1111111 - нормальная посадка;
;3,1111111 - тяжелая посадка;
;4,1111111 - посадка с легко устранимыми повреждениями;
;5,1111111 - повреждения, полученные при посадке, неустранимы. Обратный старт к Земле вряд ли возможен;
;6,1111111 - очень сильные повреждения;
;7,1111111 - разгерметизация отдельных блоков в результате сильного удара. Жизнь членов экипажа под угрозой;
;8,1111111 - гибель экипажа;
;9,1111111 - взрыв корабля.
db "<СТЕК>"
;далее следуют значения регистров стека (только qword)
;R.X1
dq 0.0
;R.X
dq 0.0
;R.Y
dq 0.0
;R.Z
dq 0.0
;R.T
dq 0.0
db "<РГСТ>"
;Регистры: (с R.0 по R.E)
times 15 dq 0.0
db "<ПРГМ>"
;Программа в ОПКОДах МК
db 0x0D,0x44,0x0C,0x03,0x4A,0x48,0x02,0x13,0x4C,0x01
db 0x05,0x00,0x4B,0x01,0x0A,0x06,0x02,0x49,0x0D,0x50
db 0x6B,0x6A,0x50,0x40,0xD4,0x14,0x6C,0x14,0x11,0x5C
db 36 ,0x0D,0x40,0x6C,0x51, 37 ,0x4C,0x68,0x13,0x02
db 0x10,0x60,0x14,0x13,0x69,0x14,0x11,0x6B,0x10,0x4B
db 0x6A,0x14,0x11,0x4A,0x5C, 20 ,0x0B,0x6B,0x22,0x21
db 0x10,0x01,0x10,0x4D,0xDD,0x6D,0x09,0x23,0x10,0x50
+180
View File
@@ -0,0 +1,180 @@
; Macroinstructions for defining data structures
macro struct name
{ fields@struct equ name
match child parent, name \{ fields@struct equ child,fields@\#parent \}
sub@struct equ
struc db [val] \{ \common fields@struct equ fields@struct,.,db,<val> \}
struc dw [val] \{ \common fields@struct equ fields@struct,.,dw,<val> \}
struc du [val] \{ \common fields@struct equ fields@struct,.,du,<val> \}
struc dd [val] \{ \common fields@struct equ fields@struct,.,dd,<val> \}
struc dp [val] \{ \common fields@struct equ fields@struct,.,dp,<val> \}
struc dq [val] \{ \common fields@struct equ fields@struct,.,dq,<val> \}
struc dt [val] \{ \common fields@struct equ fields@struct,.,dt,<val> \}
struc rb count \{ fields@struct equ fields@struct,.,db,count dup (?) \}
struc rw count \{ fields@struct equ fields@struct,.,dw,count dup (?) \}
struc rd count \{ fields@struct equ fields@struct,.,dd,count dup (?) \}
struc rp count \{ fields@struct equ fields@struct,.,dp,count dup (?) \}
struc rq count \{ fields@struct equ fields@struct,.,dq,count dup (?) \}
struc rt count \{ fields@struct equ fields@struct,.,dt,count dup (?) \}
macro db [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,db,<val> \}
macro dw [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,dw,<val> \}
macro du [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,du,<val> \}
macro dd [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,dd,<val> \}
macro dp [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,dp,<val> \}
macro dq [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,dq,<val> \}
macro dt [val] \{ \common \local anonymous
fields@struct equ fields@struct,anonymous,dt,<val> \}
macro rb count \{ \local anonymous
fields@struct equ fields@struct,anonymous,db,count dup (?) \}
macro rw count \{ \local anonymous
fields@struct equ fields@struct,anonymous,dw,count dup (?) \}
macro rd count \{ \local anonymous
fields@struct equ fields@struct,anonymous,dd,count dup (?) \}
macro rp count \{ \local anonymous
fields@struct equ fields@struct,anonymous,dp,count dup (?) \}
macro rq count \{ \local anonymous
fields@struct equ fields@struct,anonymous,dq,count dup (?) \}
macro rt count \{ \local anonymous
fields@struct equ fields@struct,anonymous,dt,count dup (?) \}
macro union \{ fields@struct equ fields@struct,,union,<
sub@struct equ union \}
macro struct \{ fields@struct equ fields@struct,,substruct,<
sub@struct equ substruct \}
virtual at 0 }
macro ends
{ match , sub@struct \{ restruc db,dw,du,dd,dp,dq,dt
restruc rb,rw,rd,rp,rq,rt
purge db,dw,du,dd,dp,dq,dt
purge rb,rw,rd,rp,rq,rt
purge union,struct
match name=,fields,fields@struct \\{ fields@struct equ
make@struct name,fields
fields@\\#name equ fields \\}
end virtual \}
match any, sub@struct \{ fields@struct equ fields@struct> \}
restore sub@struct }
macro make@struct name,[field,type,def]
{ common
if $
display 'Error: definition of ',`name,' contains illegal instructions.',0Dh,0Ah
err
end if
local define
define equ name
forward
local sub
match , field \{ make@substruct type,name,sub def
define equ define,.,sub, \}
match any, field \{ define equ define,.#field,type,<def> \}
common
match fields, define \{ define@struct fields \} }
macro define@struct name,[field,type,def]
{ common
local list
list equ
forward
if ~ field eq .
name#field type def
sizeof.#name#field = $ - name#field
else
rb sizeof.#type
end if
local value
match any, list \{ list equ list, \}
list equ list <value>
common
sizeof.#name = $
restruc name
match values, list \{
struc name value \\{
match any, fields@struct \\\{ fields@struct equ fields@struct,.,name,<values> \\\}
match , fields@struct \\\{ label .
forward
match , value \\\\{ field type def \\\\}
match any, value \\\\{ field type value
if ~ field eq .
rb sizeof.#name#field - ($-field)
end if \\\\}
common \\\} \\} \} }
macro enable@substruct
{ macro make@substruct substruct,parent,name,[field,type,def]
\{ \common
\local define
define equ parent,name
\forward
\local sub
match , field \\{ match any, type \\\{ enable@substruct
make@substruct type,name,sub def
purge make@substruct
define equ define,.,sub, \\\} \\}
match any, field \\{ define equ define,.\#field,type,<def> \\}
\common
match fields, define \\{ define@\#substruct fields \\} \} }
enable@substruct
macro define@union parent,name,[field,type,def]
{ common
virtual at 0
forward
if ~ field eq .
virtual at 0
parent#field type def
sizeof.#parent#field = $ - parent#field
end virtual
if sizeof.#parent#field > $
rb sizeof.#parent#field - $
end if
else if sizeof.#type > $
rb sizeof.#type - $
end if
common
sizeof.#name = $
end virtual
struc name [value] \{ \common
label .\#name
last@union equ
forward
match any, last@union \\{ virtual at .\#name
field type def
end virtual \\}
match , last@union \\{ match , value \\\{ field type def \\\}
match any, value \\\{ field type value \\\} \\}
last@union equ field
common rb sizeof.#name - ($ - .\#name) \} }
macro define@substruct parent,name,[field,type,def]
{ common
virtual at 0
forward
if ~ field eq .
parent#field type def
sizeof.#parent#field = $ - parent#field
else
rb sizeof.#type
end if
local value
common
sizeof.#name = $
end virtual
struc name value \{
label .\#name
forward
match , value \\{ field type def \\}
match any, value \\{ field type value
if ~ field eq .
rb sizeof.#parent#field - ($-field)
end if \\}
common \} }
@@ -0,0 +1,566 @@
; Типовой файл с заданиями для клавиатурного
; тренажёра KJ|ABuIIIA
; МАКСИМАЛЬНО ДОПУСТИМЫЙ РАЗМЕР СТРОКИ
; БЕЗ СКРОЛЛИНГА - 38 СИМВОЛОВ!
; (при размере окна по умолчанию)
; Настоятельно НЕ РЕКОМЕНДУЕТСЯ делать строки
; для набора длиннее 38 символов.
; Строки отделяются одна от другой байтом 0x00
; Уроки отделяются один от другого байтом 0xFE,
; который ставится ВМЕСТО 0x00 в конце последней
; строки урока
; Последним байтом файла ДОЛЖЕН быть байт 0xFF,
; который ставится ПОСЛЕ последнего 0xFE в конце
; последнего урока
; Собранный файл (или же набранный вручную в
; HEX-редакторе) должен иметь расширение .KLA
; ----------------------------------------------
; Учебный курс
; Составитель: Андрей Михайлович (Dron2004)
; Урок 1
db 'ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф', 0x00
db 'ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф', 0x00
db 'ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф', 0x0
db 'ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф', 0x00
db 'ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы', 0x00
db 'ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы', 0x00
db 'ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы', 0x00
db 'ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы', 0x00
db 'в в в в в в в в в в в в в в в в в', 0x00
db 'в в в в в в в в в в в в в в в в в', 0x00
db 'в в в в в в в в в в в в в в в в в', 0x00
db 'в в в в в в в в в в в в в в в в в', 0x00
db 'а а а а а а а а а а а а а а а а а', 0x00
db 'а а а а а а а а а а а а а а а а а', 0x00
db 'а а а а а а а а а а а а а а а а а', 0x00
db 'а а а а а а а а а а а а а а а а а', 0x00
db 'п п п п п п п п п п п п п п п п п', 0x00
db 'п а п а п а п а п а п а п а п а п', 0x00
db 'п п п п п п п п п п п п п п п п п', 0x00
db 'п а п а п а п а п а п а п а п а п', 0x00
db 'п п п п п п п п п п п п п п п п п', 0x00
db 'п а п а п а п а п а п а п а п а п', 0x00
db 'фыва фыва фыва фыва фыва фыва фыва', 0x00
db 'фыва фыва фыва фыва фыва фыва фыва', 0x00
db 'фыва фыва фыва фыва фыва фыва фыва', 0x00
db 'фыва фыва фыва фыва фыва фыва фыва', 0x00
db 'фыва фыва фыва фыва фыва фыва фыва', 0x00
db 'фыва п фыва п фыва п фыва п фыва п', 0x00
db 'фыва п фыва п фыва п фыва п фыва п', 0x00
db 'фыва п фыва п фыва п фыва п фыва п', 0x00
db 'фыва п фыва п фыва п фыва п фыва п', 0x00
db 'авыф авыф авыф авыф авыф аывф авыф', 0x00
db 'авыф авыф авыф авыф авыф аывф авыф', 0x00
db 'п авыф п авыф п авыф п авыф п авыф', 0x00
db 'п авыф п авыф п авыф п авыф п авыф', 0xFE
; Урок 2
db 'о о о о о о о о о о о о о о о о о',0x00
db 'о о о о о о о о о о о о о о о о о',0x00
db 'о о о о о о о о о о о о о о о о о',0x00
db 'о о о о о о о о о о о о о о о о о',0x00
db 'л л л л л л л л л л л л л л л л л',0x00
db 'л л л л л л л л л л л л л л л л л',0x00
db 'л л л л л л л л л л л л л л л л л',0x00
db 'л л л л л л л л л л л л л л л л л',0x00
db 'д д д д д д д д д д д д д д д д д',0x00
db 'д д д д д д д д д д д д д д д д д',0x00
db 'д д д д д д д д д д д д д д д д д',0x00
db 'д д д д д д д д д д д д д д д д д',0x00
db 'ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж',0x00
db 'ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж',0x00
db 'ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж',0x00
db 'ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж',0x00
db 'р р р р р р р р р р р р р р р р р',0x00
db 'р р р р р р р р р р р р р р р р р',0x00
db 'р р р р р р р р р р р р р р р р р',0x00
db 'р р р р р р р р р р р р р р р р р',0x00
db 'ор ор ор ор ор ор ор ор ор ор ор',0x00
db 'ор ор ор ор ор ор ор ор ор ор ор',0x00
db 'ор ор ор ор ор ор ор ор ор ор ор',0x00
db 'ро ро ро ро ро ро ро ро ро ро ро',0x00
db 'ро ро ро ро ро ро ро ро ро ро ро', 0x00
db 'ро ро ро ро ро ро ро ро ро ро ро', 0x00
db 'э э э э э э э э э э э э э э э э', 0x00
db 'э э э э э э э э э э э э э э э э', 0x00
db 'э э э э э э э э э э э э э э э э', 0x00
db 'э э э э э э э э э э э э э э э э', 0x00
db 'э э э э э э э э э э э э э э э э', 0x00
db 'э э э э э э э э э э э э э э э э', 0x00
db 'ор эж ор эж ор эж ор эж ор эж ор', 0x00
db 'ор эж ор эж ор эж ор эж ор эж ор', 0x00
db 'ор эж ор эж ор эж ор эж ор эж ор', 0x00
db 'ор эж ор эж ор эж ор эж ор эж ор', 0x00
db 'олдж олдж олдж олдж олдж олдж э', 0x00
db 'олдж олдж олдж олдж олдж олдж э', 0x00
db 'олдж олдж олдж олдж олдж олдж э', 0x00
db 'олдж олдж олдж олдж олдж олдж э', 0x00
db 'эр эр эр эр эр эр эр эр эр эр эр', 0x00
db 'эр эр эр эр эр эр эр эр эр эр эр', 0x00
db 'эр эр эр эр эр эр эр эр эр эр эр', 0x00
db 'эр эр эр эр эр эр эр эр эр эр эр', 0xFE
;Урок 3
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пропал олдж пропал ааа эээ',0x00
db 'фыва пропал олдж пропал ааа эээ',0x00
db 'фыва пропал олдж пропал ааа эээ',0x00
db 'фыва пропал олдж пропал ааа эээ',0x00
db 'фыва пропал олдж пропал ааа эээ',0x00
db 'фыва пропал олдж пропал ааа эээ',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'про ор эдж ждло про ор эдж ждло',0x00
db 'ф э ф э ф э ф э ф э ф э ф э ф э',0x00
db 'ф э ф э ф э ф э ф э ф э ф э ф э',0x00
db 'ф э ф э ф э ф э ф э ф э ф э ф э',0x00
db 'ф э ф э ф э ф э ф э ф э ф э ф э',0x00
db 'ф э ф э ф э ф э ф э ф э ф э ф э',0x00
db 'ф э ф э ф э ф э ф э ф э ф э ф э',0x00
db 'падал лорд пропал род фыва эпр',0x00
db 'падал лорд пропал род фыва эпр',0x00
db 'падал лорд пропал род фыва эпр',0x00
db 'падал лорд пропал род фыва эпр',0x00
db 'падал лорд пропал род фыва эпр',0x00
db 'дол род дол род да да да проф',0x00
db 'дол род дол род да да да проф',0x00
db 'дол род дол род да да да проф',0x00
db 'дол род дол род да да да проф',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'ап ор ап ор ап ор ро па ро па',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'жэ ыф жэ ыф жэ ыф жэ ыф жэ ыф',0x00
db 'эж фы эж фы эж фы эж фы эж фы',0x00
db 'эж фы эж фы эж фы эж фы эж фы',0x00
db 'эж фы эж фы эж фы эж фы эж фы',0x00
db 'эж фы эж фы эж фы эж фы эж фы',0x00
db 'эж фы эж фы эж фы эж фы эж фы',0x00
db 'эж фы эж фы эж фы эж фы эж фы',0xFE
;Урок 4
db 'я я я я я я я я я я я я я я я',0x00
db 'я я я я я я я я я я я я я я я',0x00
db 'я я я я я я я я я я я я я я я',0x00
db 'я я я я я я я я я я я я я я я',0x00
db 'я ф я ф я ф я ф я ф я ф я ф я',0x00
db 'я ф я ф я ф я ф я ф я ф я ф я',0x00
db 'я ф я ф я ф я ф я ф я ф я ф я',0x00
db 'я ф я ф я ф я ф я ф я ф я ф я',0x00
db 'я ф я ф я ф я ф я ф я ф я ф я',0x00
db 'я ф я ф я ф я ф я ф я ф я ф я',0x00
db 'ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч',0x00
db 'ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч',0x00
db 'ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч',0x00
db 'ч ч ч ч ч ч ч ч ч ч ч ч ч ч ч',0x00
db 'ч ы ч ы ч ы ч ы ч ы ч ы ч ы ч',0x00
db 'ч ы ч ы ч ы ч ы ч ы ч ы ч ы ч',0x00
db 'ч ы ч ы ч ы ч ы ч ы ч ы ч ы ч',0x00
db 'ч ы ч ы ч ы ч ы ч ы ч ы ч ы ч',0x00
db 'ч ы ч ы ч ы ч ы ч ы ч ы ч ы ч',0x00
db 'ч ы ч ы ч ы ч ы ч ы ч ы ч ы ч',0x00
db 'с с с с с с с с с с с с с с с',0x00
db 'с с с с с с с с с с с с с с с',0x00
db 'с с с с с с с с с с с с с с с',0x00
db 'с с с с с с с с с с с с с с с',0x00
db 'с в с в с в с в с в с в с в с',0x00
db 'с в с в с в с в с в с в с в с',0x00
db 'с в с в с в с в с в с в с в с',0x00
db 'с в с в с в с в с в с в с в с',0x00
db 'с в с в с в с в с в с в с в с',0x00
db 'с в с в с в с в с в с в с в с',0x00
db 'м м м м м м м м м м м м м м м',0x00
db 'м м м м м м м м м м м м м м м',0x00
db 'м м м м м м м м м м м м м м м',0x00
db 'м м м м м м м м м м м м м м м',0x00
db 'м а м а м а м а м а м а м а м',0x00
db 'м а м а м а м а м а м а м а м',0x00
db 'м а м а м а м а м а м а м а м',0x00
db 'м а м а м а м а м а м а м а м',0x00
db 'мама мама мама мама мама мама',0x00
db 'мама мама мама мама мама мама',0x00
db 'мама мама мама мама мама мама',0x00
db 'мама мама мама мама мама мама',0x00
db 'и и и и и и и и и и и и и и и',0x00
db 'и и и и и и и и и и и и и и и',0x00
db 'и и и и и и и и и и и и и и и',0x00
db 'и и и и и и и и и и и и и и и',0x00
db 'и п и п и п и п и п и п и п и',0x00
db 'и п и п и п и п и п и п и п и',0x00
db 'и п и п и п и п и п и п и п и',0x00
db 'и п и п и п и п и п и п и п и',0x00
db 'мапи мапи мапи мапи мапи мапи',0x00
db 'мапи мапи мапи мапи мапи мапи',0x00
db 'мапи мапи мапи мапи мапи мапи',0x00
db 'мапи мапи мапи мапи мапи мапи',0x00
db 'яма вам сам мап фыв чип пива',0x00
db 'яма вам сам мап фыв чип пива',0x00
db 'яма вам сам мап фыв чип пива',0x00
db 'фывап ячсми фывап ячсми имсчя',0x00
db 'фывап ячсми фывап ячсми имсчя',0x00
db 'фывап ячсми фывап ячсми имсчя',0x00
db 'фывап ячсми фывап ячсми имсчя',0x00
db 'фывап ячсми фывап ячсми имсчя',0x00
db 'фывап ячсми фывап ячсми имсчя',0xFE
;Урок 5
db 'т т т т т т т т т т т т т т т',0x00
db 'т т т т т т т т т т т т т т т',0x00
db 'т т т т т т т т т т т т т т т',0x00
db 'т т т т т т т т т т т т т т т',0x00
db 'т р т р т р т р т р т р т р т',0x00
db 'т р т р т р т р т р т р т р т',0x00
db 'т р т р т р т р т р т р т р т',0x00
db 'т р т р т р т р т р т р т р т',0x00
db 'т р т р т р т р т р т р т р т',0x00
db 'т р т р т р т р т р т р т р т',0x00
db 'ь ь ь ь ь ь ь ь ь ь ь ь ь ь ь',0x00
db 'ь ь ь ь ь ь ь ь ь ь ь ь ь ь ь',0x00
db 'ь ь ь ь ь ь ь ь ь ь ь ь ь ь ь',0x00
db 'ь ь ь ь ь ь ь ь ь ь ь ь ь ь ь',0x00
db 'ь о ь о ь о ь о ь о ь о ь о ь',0x00
db 'ь о ь о ь о ь о ь о ь о ь о ь',0x00
db 'ь о ь о ь о ь о ь о ь о ь о ь',0x00
db 'ь о ь о ь о ь о ь о ь о ь о ь',0x00
db 'ь о ь о ь о ь о ь о ь о ь о ь',0x00
db 'ь о ь о ь о ь о ь о ь о ь о ь',0x00
db 'б б б б б б б б б б б б б б б',0x00
db 'б б б б б б б б б б б б б б б',0x00
db 'б б б б б б б б б б б б б б б',0x00
db 'б б б б б б б б б б б б б б б',0x00
db 'б л б л б л б л б л б л б л б',0x00
db 'б л б л б л б л б л б л б л б',0x00
db 'б л б л б л б л б л б л б л б',0x00
db 'б л б л б л б л б л б л б л б',0x00
db 'б л б л б л б л б л б л б л б',0x00
db 'б л б л б л б л б л б л б л б',0x00
db 'ю ю ю ю ю ю ю ю ю ю ю ю ю ю ю',0x00
db 'ю ю ю ю ю ю ю ю ю ю ю ю ю ю ю',0x00
db 'ю ю ю ю ю ю ю ю ю ю ю ю ю ю ю',0x00
db 'ю ю ю ю ю ю ю ю ю ю ю ю ю ю ю',0x00
db 'ю д ю д ю д ю д ю д ю д ю д ю',0x00
db 'ю д ю д ю д ю д ю д ю д ю д ю',0x00
db 'ю д ю д ю д ю д ю д ю д ю д ю',0x00
db 'ю д ю д ю д ю д ю д ю д ю д ю',0x00
db 'ю д ю д ю д ю д ю д ю д ю д ю',0x00
db 'ю д ю д ю д ю д ю д ю д ю д ю',0x00
db 'люд люд люд люд люд люд люд люд',0x00
db 'люд люд люд люд люд люд люд люд',0x00
db 'люд люд люд люд люд люд люд люд',0x00
db 'люд люд люд люд люд люд люд люд',0x00
db 'элт элт элт элт элт элт элт элт',0x00
db 'элт элт элт элт элт элт элт элт',0x00
db 'элт элт элт элт элт элт элт элт',0x00
db 'род дол люд бють бють бють дот',0x00
db 'род дол люд бють бють бють дот',0x00
db 'род дол люд бють бють бють дот',0x00
db 'род дол люд бють бють бють дот',0xFE
;Урок 6
db 'мачта продал эдвард мир тюрьма',0x00
db 'мачта продал эдвард мир тюрьма',0x00
db 'мачта продал эдвард мир тюрьма',0x00
db 'мачта продал эдвард мир тюрьма',0x00
db 'я был дома продал сми спирт',0x00
db 'я был дома продал сми спирт',0x00
db 'я был дома продал сми спирт',0x00
db 'я был дома продал сми спирт',0x00
db 'там пиво вода да да да правда',0x00
db 'там пиво вода да да да правда',0x00
db 'там пиво вода да да да правда',0x00
db 'там пиво вода да да да правда',0x00
db 'варит вар и самовар чист аж э',0x00
db 'варит вар и самовар чист аж э',0x00
db 'варит вар и самовар чист аж э',0x00
db 'варит вар и самовар чист аж э',0x00
db 'фыва олджа бил и бил да побил',0x00
db 'фыва олджа бил и бил да побил',0x00
db 'фыва олджа бил и бил да побил',0x00
db 'фыва олджа бил и бил да побил',0x00
db 'я э ф ю я э ф ю я э ф ю я э ф',0x00
db 'я э ф ю я э ф ю я э ф ю я э ф',0x00
db 'я э ф ю я э ф ю я э ф ю я э ф',0x00
db 'я э ф ю я э ф ю я э ф ю я э ф',0xFE
;Урок 7
db 'й й й й й й й й й й й й й й й',0x00
db 'й й й й й й й й й й й й й й й',0x00
db 'й й й й й й й й й й й й й й й',0x00
db 'й й й й й й й й й й й й й й й',0x00
db 'й ф й ф й ф й ф й ф й ф й ф й',0x00
db 'й ф й ф й ф й ф й ф й ф й ф й',0x00
db 'й ф й ф й ф й ф й ф й ф й ф й',0x00
db 'й ф й ф й ф й ф й ф й ф й ф й',0x00
db 'й ф я й ф я й ф я й ф я й ф я',0x00
db 'й ф я й ф я й ф я й ф я й ф я',0x00
db 'й ф я й ф я й ф я й ф я й ф я',0x00
db 'й ф я й ф я й ф я й ф я й ф я',0x00
db 'ц ц ц ц ц ц ц ц ц ц ц ц ц ц ц',0x00
db 'ц ц ц ц ц ц ц ц ц ц ц ц ц ц ц',0x00
db 'ц ц ц ц ц ц ц ц ц ц ц ц ц ц ц',0x00
db 'ц ц ц ц ц ц ц ц ц ц ц ц ц ц ц',0x00
db 'ц ы ц ы ц ы ц ы ц ы ц ы ц ы ц',0x00
db 'ц ы ц ы ц ы ц ы ц ы ц ы ц ы ц',0x00
db 'ц ы ц ы ц ы ц ы ц ы ц ы ц ы ц',0x00
db 'ц ы ц ы ц ы ц ы ц ы ц ы ц ы ц',0x00
db 'цыц цыц цыц цыц цыц цыц цыц',0x00
db 'цыц цыц цыц цыц цыц цыц цыц',0x00
db 'ц ы ч ц ы ч ц ы ч ц ы ч ц ы ч',0x00
db 'ц ы ч ц ы ч ц ы ч ц ы ч ц ы ч',0x00
db 'ц ы ч ц ы ч ц ы ч ц ы ч ц ы ч',0x00
db 'ц ы ч ц ы ч ц ы ч ц ы ч ц ы ч',0x00
db 'у у у у у у у у у у у у у у у',0x00
db 'у у у у у у у у у у у у у у у',0x00
db 'у у у у у у у у у у у у у у у',0x00
db 'у у у у у у у у у у у у у у у',0x00
db 'у в у в у в у в у в у в у в у',0x00
db 'у в у в у в у в у в у в у в у',0x00
db 'у в у в у в у в у в у в у в у',0x00
db 'у в у в у в у в у в у в у в у',0x00
db 'у в с у в с у в с у в с у в с',0x00
db 'у в с у в с у в с у в с у в с',0x00
db 'у в с у в с у в с у в с у в с',0x00
db 'у в с у в с у в с у в с у в с',0x00
db 'к к к к к к к к к к к к к к к',0x00
db 'к к к к к к к к к к к к к к к',0x00
db 'к к к к к к к к к к к к к к к',0x00
db 'к к к к к к к к к к к к к к к',0x00
db 'к а к а к а к а к а к а к а к',0x00
db 'к а к а к а к а к а к а к а к',0x00
db 'к а к а к а к а к а к а к а к',0x00
db 'к а к а к а к а к а к а к а к',0x00
db 'кака кака кака кака кака кака',0x00
db 'кака кака кака кака кака кака',0x00
db 'кака кака кака кака кака кака',0x00
db 'кака кака кака кака кака кака',0x00
db 'к а м к а м к а м к а м к а м',0x00
db 'к а м к а м к а м к а м к а м',0x00
db 'к а м к а м к а м к а м к а м',0x00
db 'к а м к а м к а м к а м к а м',0x00
db 'е е е е е е е е е е е е е е е',0x00
db 'е е е е е е е е е е е е е е е',0x00
db 'е е е е е е е е е е е е е е е',0x00
db 'е е е е е е е е е е е е е е е',0x00
db 'е п е п е п е п е п е п е п е',0x00
db 'е п е п е п е п е п е п е п е',0x00
db 'е п е п е п е п е п е п е п е',0x00
db 'е п е п е п е п е п е п е п е',0x00
db 'е п и е п и е п и е п и е п и',0x00
db 'е п и е п и е п и е п и е п и',0x00
db 'е п и е п и е п и е п и е п и',0x00
db 'е п и е п и е п и е п и е п и',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'йцуке фывап ячсми йцуке ячсми',0x00
db 'екуцй павыф имсчя екуцй имсчя',0x00
db 'екуцй павыф имсчя екуцй имсчя',0x00
db 'екуцй павыф имсчя екуцй имсчя',0x00
db 'екуцй павыф имсчя екуцй имсчя',0x00
db 'екуцй павыф имсчя екуцй имсчя',0x00
db 'екуцй павыф имсчя екуцй имсчя',0x00
db 'ё ё ё ё ё ё ё ё ё ё ё ё ё ё ё',0x00
db 'ё ё ё ё ё ё ё ё ё ё ё ё ё ё ё',0x00
db 'ё ё ё ё ё ё ё ё ё ё ё ё ё ё ё',0x00
db 'ё ё ё ё ё ё ё ё ё ё ё ё ё ё ё',0x00
db 'ё ё ё ё ё ё ё ё ё ё ё ё ё ё ё',0x00
db 'ф ё ф ё ф ё ф ё ф ё ф ё ф ё ф',0x00
db 'ф ё ф ё ф ё ф ё ф ё ф ё ф ё ф',0x00
db 'ф ё ф ё ф ё ф ё ф ё ф ё ф ё ф',0x00
db 'ф ё ф ё ф ё ф ё ф ё ф ё ф ё ф',0x00
db 'ф ё ф ё ф ё ф ё ф ё ф ё ф ё ф',0xFE
;Урок 8
db 'н н н н н н н н н н н н н н н',0x00
db 'н н н н н н н н н н н н н н н',0x00
db 'н н н н н н н н н н н н н н н',0x00
db 'н н н н н н н н н н н н н н н',0x00
db 'н р н р н р н р н р н р н р н',0x00
db 'н р н р н р н р н р н р н р н',0x00
db 'н р н р н р н р н р н р н р н',0x00
db 'н р н р н р н р н р н р н р н',0x00
db 'н р т н р т н р т н р т н р т',0x00
db 'н р т н р т н р т н р т н р т',0x00
db 'н р т н р т н р т н р т н р т',0x00
db 'н р т н р т н р т н р т н р т',0x00
db 'г г г г г г г г г г г г г г г',0x00
db 'г г г г г г г г г г г г г г г',0x00
db 'г г г г г г г г г г г г г г г',0x00
db 'г г г г г г г г г г г г г г г',0x00
db 'г о г о г о г о г о г о г о г',0x00
db 'г о г о г о г о г о г о г о г',0x00
db 'г о г о г о г о г о г о г о г',0x00
db 'г о г о г о г о г о г о г о г',0x00
db 'г о ь г о ь г о ь г о ь г о ь',0x00
db 'г о ь г о ь г о ь г о ь г о ь',0x00
db 'г о ь г о ь г о ь г о ь г о ь',0x00
db 'г о ь г о ь г о ь г о ь г о ь',0x00
db 'ш ш ш ш ш ш ш ш ш ш ш ш ш ш ш',0x00
db 'ш ш ш ш ш ш ш ш ш ш ш ш ш ш ш',0x00
db 'ш ш ш ш ш ш ш ш ш ш ш ш ш ш ш',0x00
db 'ш ш ш ш ш ш ш ш ш ш ш ш ш ш ш',0x00
db 'ш л ш л ш л ш л ш л ш л ш л ш',0x00
db 'ш л ш л ш л ш л ш л ш л ш л ш',0x00
db 'ш л ш л ш л ш л ш л ш л ш л ш',0x00
db 'ш л ш л ш л ш л ш л ш л ш л ш',0x00
db 'ш л б ш л б ш л б ш л б ш л б',0x00
db 'ш л б ш л б ш л б ш л б ш л б',0x00
db 'ш л б ш л б ш л б ш л б ш л б',0x00
db 'ш л б ш л б ш л б ш л б ш л б',0x00
db 'щ щ щ щ щ щ щ щ щ щ щ щ щ щ щ',0x00
db 'щ щ щ щ щ щ щ щ щ щ щ щ щ щ щ',0x00
db 'щ щ щ щ щ щ щ щ щ щ щ щ щ щ щ',0x00
db 'щ щ щ щ щ щ щ щ щ щ щ щ щ щ щ',0x00
db 'щ д щ д щ д щ д щ д щ д щ д щ',0x00
db 'щ д щ д щ д щ д щ д щ д щ д щ',0x00
db 'щ д щ д щ д щ д щ д щ д щ д щ',0x00
db 'щ д щ д щ д щ д щ д щ д щ д щ',0x00
db 'щ д ю щ д ю щ д ю щ д ю щ д ю',0x00
db 'щ д ю щ д ю щ д ю щ д ю щ д ю',0x00
db 'щ д ю щ д ю щ д ю щ д ю щ д ю',0x00
db 'щ д ю щ д ю щ д ю щ д ю щ д ю',0x00
db 'з з з з з з з з з з з з з з з',0x00
db 'з з з з з з з з з з з з з з з',0x00
db 'з з з з з з з з з з з з з з з',0x00
db 'з з з з з з з з з з з з з з з',0x00
db 'з ж з ж з ж з ж з ж з ж з ж з',0x00
db 'з ж з ж з ж з ж з ж з ж з ж з',0x00
db 'з ж з ж з ж з ж з ж з ж з ж з',0x00
db 'з ж з ж з ж з ж з ж з ж з ж з',0x00
db 'з ж з ж з ж з ж з ж з ж з ж з',0x00
db 'з ж з ж з ж з ж з ж з ж з ж з',0x00
db 'х х х х х х х х х х х х х х х',0x00
db 'х х х х х х х х х х х х х х х',0x00
db 'х х х х х х х х х х х х х х х',0x00
db 'х х х х х х х х х х х х х х х',0x00
db 'х х х х х х х х х х х х х х х',0x00
db 'х з х з х з х з х з х з х з х',0x00
db 'х з х з х з х з х з х з х з х',0x00
db 'х з х з х з х з х з х з х з х',0x00
db 'х з х з х з х з х з х з х з х',0x00
db 'х з х з х з х з х з х з х з х',0x00
db 'ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ',0x00
db 'ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ',0x00
db 'ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ',0x00
db 'ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ',0x00
db 'ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'з х ъ ъ х з з х ъ ъ х з з х ъ',0x00
db 'нгшщзхъ ролджэ тьбю ъхзщшгн',0x00
db 'нгшщзхъ ролджэ тьбю ъхзщшгн',0x00
db 'нгшщзхъ ролджэ тьбю ъхзщшгн',0x00
db 'нгшщзхъ ролджэ тьбю ъхзщшгн',0x00
db 'нгшщзхъ ролджэ тьбю ъхзщшгн',0xFE
; Урок 9
db 'пример проверка набор текса', 0x00
db 'знаем быстро печатать сложно', 0x00
db 'но нужно тренироваться', 0x00
db 'и тогда получится', 0x00
db 'давайте печатать мизинцами', 0x00
db 'ф э й з ф э й з ф э й з ф э й', 0x00
db 'а теперь без пробелов', 0x00
db 'фэйз фэйз фэйз фэйз фэйз фэйз', 0x00
db 'фэйз фэйз фэйз фэйз фэйз фэйз', 0x00
db 'фэйз фэйз фэйз фэйз фэйз фэйз', 0x00
db 'фэйз фэйз фэйз фэйз фэйз фэйз', 0x00
db 'всё это достаточно сложно', 0x00
db 'давайте печатать другие слова', 0x00
db 'яхта яхта съел эхо здорово ура', 0x00
db 'яхта яхта съел эхо здорово ура', 0x00
db 'яхта яхта съел эхо здорово ура', 0x00
db 'яхта яхта съел эхо здорово ура', 0x00
db 'яхта яхта съел эхо здорово ура', 0x00
db 'яхта яхта съел эхо здорово ура', 0x00
db 'жили были дед да баба и была', 0x00
db 'у них курочка ряба и снесла', 0x00
db 'яичко не простое а золотое', 0x00
db 'вот и сказке конец', 0x00
db 'а кто слушал молодец', 0xFE
; Урок 10
db 'колибри колибри колибри колибри', 0x00
db 'колибри колибри колибри колибри', 0x00
db 'колибри колибри колибри колибри', 0x00
db 'колибри колибри колибри колибри', 0x00
db 'колибри колибри колибри колибри', 0x00
db 'операционная система колибри ос', 0x00
db 'операционная система колибри ос', 0x00
db 'операционная система колибри ос', 0x00
db 'операционная система колибри ос', 0x00
db 'операционная система колибри ос', 0x00
db 'быстрая надёжная компактная ос', 0x00
db 'быстрая надёжная компактная ос', 0x00
db 'быстрая надёжная компактная ос', 0x00
db 'быстрая надёжная компактная ос', 0x00
db 'быстрая надёжная компактная ос', 0x00
db 'ассемблер ассемблер ассемблер', 0x00
db 'ассемблер ассемблер ассемблер', 0x00
db 'ассемблер ассемблер ассемблер', 0x00
db 'ассемблер ассемблер ассемблер', 0x00
db 'ассемблер ассемблер ассемблер', 0x00
db 'микропроцессор это сердце пк', 0x00
db 'микропроцессор это сердце пк', 0x00
db 'микропроцессор это сердце пк', 0x00
db 'микропроцессор это сердце пк', 0x00
db 'микропроцессор это сердце пк', 0x00
db 'многие программы для колибри', 0x00
db 'написаны на языке ассемблера', 0x00
db 'например', 0x00
db 'клавиатурный тренажёр клавиша', 0x00
db 'клавиатурный тренажёр клавиша', 0x00
db 'клавиатурный тренажёр клавиша', 0x00
db 'клавиатурный тренажёр клавиша', 0x00
db 'клавиатурный тренажёр клавиша', 0x00
db 'спасибо вам за работу с', 0x00
db 'программой клавиша', 0x00
db 'а данный курс на этом завершён', 0xFE, 0xFF
Binary file not shown.
@@ -0,0 +1,65 @@
; Пример файла с заданиями для клавиатурного
; тренажёра KJ|ABuIIIA
; МАКСИМАЛЬНО ДОПУСТИМЫЙ РАЗМЕР СТРОКИ
; БЕЗ СКРОЛЛИНГА - 38 СИМВОЛОВ!
; (при размере окна по умолчанию)
; Настоятельно НЕ РЕКОМЕНДУЕТСЯ делать строки
; для набора длиннее 38 символов.
; Строки отделяются одна от другой байтом 0x00
; Уроки отделяются один от другого байтом 0xFE,
; который ставится ВМЕСТО 0x00 в конце последней
; строки урока
; Последним байтом файла ДОЛЖЕН быть байт 0xFF,
; который ставится ПОСЛЕ последнего 0xFE в конце
; последнего урока
; Собранный файл (или же набранный вручную в
; HEX-редакторе) должен иметь расширение .KLA
; Вот пример исходного кода ПРАВИЛЬНО подготов-
; ленного KLA-файла:
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0x00
db 'фыва пр олдж э фыва пр олдж э',0xFE
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0x00
db 'ячсми тьбю ячсми тьбю ячсми тьбю', 0xFE
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0x00
db 'йцуке нгшщзхъ йцуке нгшщзхъ зхъ',0xFE
db '12345678901234567890123456789012345678', 0x00
db 'Пример упражнения.',0x00
db 'Это упражнение номер 4.', 0x00
db 'Это конец файла KLA.',0xFE, 0xFF
Binary file not shown.
File diff suppressed because it is too large. Load diff
+87
View File
@@ -0,0 +1,87 @@
-----------------------------------------------------------
------------ Клавиатурный тренажёр KJ|ABuIIIA -------------
------------ для операционной системы Колибри -------------
-----------------------------------------------------------
---------------------- Версия 0.9a ------------------------
-----------------------------------------------------------
___________________________________________________________
1. Общие сведения о программе
___________________________________________________________
Клавиатурный тренажёр KJ|ABuIIIA - это программа обучения
быстрому набору для операционной системы Колибри ОС.
Ваша задача - набирать предложенные учебные тексты с
минимально возможным количеством ошибок.
При запуске программе должен быть передан параметр коман-
дной строки с указанием пути к файлу-набору упражнений в
формате KLA, например:
KLAVISHA /RD/1/BASEKURS.KLA
Если параметр командной строки не задан, программа будет
запущена в демонстрационном режиме.
В комплект поставки входит начальный курс обучения быс-
трому набору. Он находится в файле BASEKURS.KLA . Однако
применение данного курса не является обязательным: вы
можете использовать KLA-файл по вашему усмотрению.
Текущая версия программы является стабильной и может
применяться в практических целях при условии подключения
соответствующего KLA-файла.
___________________________________________________________
2. Создание учебных файлов. Формат KLA
___________________________________________________________
Тексты для учебного набора хранятся в файлах с расшире-
нием KLA. При этом такие файлы должны соответствовать опре-
делённым требованиям.
KLA-файл содержит строки для набора, разделённые нуле-
вым символом (0x00). Уроки отделяются один от другого бай-
том 0xFE (ставится в конце последней строки урока вместо
байта 0x00). Файл должен заканчиваться байтом 0xFF (ста-
вится в конце последней строки последнего урока ПОСЛЕ 0xFE)
Применяемая кодировка символов - OEM 866.
Файлы KLA могут быть подготовлены с помощью шестнадцате-
ричного (HEX) редактора либо с использованием программы-
ассемблера. В комплект поставки включён файл SAMPLE.ASM.
___________________________________________________________
3. Технические сведения о программе KJ|ABuIIIA
___________________________________________________________
Программа написана на чистом ассемблере x86.
Применяется ассемблер FASM.
___________________________________________________________
4. История версий
___________________________________________________________
KJ|ABuIIIA 0.9a - 29.07.2010
- Добавлен базовый курс обучения (BASEKURS.KLA)
- Добавлен справочный файл (README.TXT)
KJ|ABuIIIA 0.9 - 24.07.2010
- Добавлен "счётчик строк": на экране отображается номер
текущей набираемой строки в упражнении и общее число строк.
- Добавлена возможность перезапуска упражнения ("Повторить
упражнение") и перезапуска всего учебного курса с первого
упражнения ("Начать курс заново").
- Горизонтальный скроллинг набираемой строки (однако насто-
ятельно рекомендуется не создавать в учебных заданиях
строки длиной более 38 символов).
- По окончании упражнения выдаётся информация о средней
скорости набора
- Окно приложения при запуске теперь отображается по центру
экрана при любом разрешении
KJ|ABuIIIA 0.25 - 23.07.2010
- Вместо стандартного системного использован крупный шрифт
(за основу взят шрифт из пакета из репозитария Ubuntu
console-cyrillic_0.9-16_all.deb).
- Устранено мерцание окна при вводе символов
- Добавлена защита от "битых" (или неправильно подготовлен-
ных) KLA-файлов
- Улучшен интерфейс
KJ|ABuIIIA 0.1 - 21.07.2010
- Первая версия программы
___________________________________________________________
5. Список разработчиков
___________________________________________________________
Андрей Михайлович aka Dron2004 (http://www.lvtam.ru)
File diff suppressed because it is too large. Load diff