рд╣реЗрдмреЗрд░реА рдмрд╛рд░-рдмрд╛рд░ рдкреНрд░рд╕рд┐рджреНрдз рдлрд┐рд▓реНрдо "рдж рдореИрдЯреНрд░рд┐рдХреНрд╕" рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рд▓реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡реЗ рд╕рднреА рддрдерд╛рдХрдерд┐рдд рд╡реНрдпреВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡рд░реНрдЧ рдХреЗ рд╣реИрдВ, рд╡реЗ рдЖрдкрдХреЛ рджреБрдирд┐рдпрд╛ рдХреА рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдлрд┐рд▓реНрдо рдХреЗ рдореБрдЦреНрдп рдкрд╛рддреНрд░ рд░рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрди рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рддреНрд░рдпреА рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореЙрд░реНрдлрд┐рдпрд╕ рдирд╛рдо рдХреЗ рдПрдХ рдирд╛рдпрдХ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдо рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред
рдкреНрдпрд╛рд░реЗ рджреЛрд╕реНрддреЛрдВ, рдпрд╣ рд▓реЗрдЦ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ рдЬреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЙрд╕ рдХреНрдпрд╛ рд╣реИ, 80x25 рд╡реАрдбрд┐рдпреЛ рдореЛрдб рдФрд░ рдкреБрд░рд╛рдиреЗ-рд╕реНрдХреВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдХреА рдЕрдиреНрдп "рдЕрджреНрднреБрдд рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ"ред рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рдЗрдЪреНрдЫреБрдХ рд╣реИред
рдЗрд╕ рдХрд╣рд╛рдиреА рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЬрдм рдореИрдВ рдПрдХ рдЫрд╛рддреНрд░ рдерд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг (рдкреЙрдХреЗрдЯ рдкрд░реНрд╕рдирд▓ рдХрдВрдкреНрдпреВрдЯрд░) рдерд╛: рдХреЙрдореНрдкреИрдХ iPAQ H3800 рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдВрдбреЛрдЬ рдкреЙрдХреЗрдЯ рдкреАрд╕реА 2002 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЧрд╛рдБрд╡ рдореЗрдВ рд▓рдВрдмреА, рдЧрд╣рд░реА рд╕рд░реНрджрд┐рдпреЛрдВ рдХреА рдЫреБрдЯреНрдЯрд┐рдпрд╛рдВ рднреА рдереАрдВред рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рди рддреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рди рд╣реА рдкрд░реНрд╕рдирд▓ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдХреЗрд╡рд▓ рдЗрд╕ рдЙрдкрдХрд░рдг рдФрд░ рдорд╕реНрддрд┐рд╖реНрдХ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреА рдЫрд╛рддреНрд░ рдХреА рдорд╣рд╛рди рдЗрдЪреНрдЫрд╛ рдЯреНрд░рд┐рд╡рд┐рдпрд▓ рдХреНрд░реЙрд╕ / рд╕реНрдХреИрдирд╡рд░реНрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ, рдЗрд╕ рдЙрдкрдХрд░рдг рдкрд░ рдЧрд╛рдБрд╡ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ PocketDOS рдирд╛рдордХ рдПрдХ рдбреЙрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдПрдореБрд▓реЗрдЯрд░ рд▓рдЧрд╛рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрд╕ рд╕рдордп рдореЗрд░реЗ рд╕рд╛рде рдореЗрд░реА "рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХ" рдереА, рдпрд╣ рд▓реЗрдЦрдХ рдПрд╕ рдЬрд╝реБрдХреЛрд╡ рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдХрд╛рдо рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╢реАрд░реНрд╖рдХ рд╣реИ: " рдбреЙрд╕, рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдпреВрдирд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░ред " рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдХрд╛рдо рдореЗрдВ рдЖрдП: рд╡рд┐рдВрдбрд╡реЛрд╕ рдкреЙрдХреЗрдЯ рдкреАрд╕реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рдПрдХ рд╕реНрдЯрд╛рдЗрд▓рд╕ рдФрд░ рдПрдХ рдорд╛рдирдХ рдиреЛрдЯрдмреБрдХред
(рдлрд┐рд▓рд╣рд╛рд▓, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдбреЙрд╕рдмреЙрдХреНрд╕ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЯреАрдПрдПрд╕рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛)ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рд╛рд▓рд┐рдпрд╛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо
"рдЖрдк рдХрд┐рд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗ?" рдореЗрд░реЗ рдЕрдиреБрдорд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЙрд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред
рддреЛ, рдЖрдЗрдП IAQ H3800 рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмреЛрд░рд▓реИрдВрдб рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдЯрд░реНрдмреЛ рдЕрд╕реЗрдВрдмрд▓рд░ (рдЗрд╕рдХреЗ рдмрд╛рдж TASM) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЙрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, i80186 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓рд░ рднрд╛рд╖рд╛ рдореЗрдВ "рдореИрдЯреНрд░рд┐рдХреНрд╕" рдХреНрд░реЙрд╕рд╡рд░реНрдб рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, i80186 рдкреНрд░реЛрд╕реЗрд╕рд░ 16 рдмрд┐рдЯ рд╣реИ, рдХреНрд░рдорд╢рдГ, рдЗрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ 16 рдмрд┐рдЯреНрд╕ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдПрдХреНрд╕ рдмреИрдЯрд░реА рд░рдЬрд┐рд╕реНрдЯрд░) рдФрд░ 8 рдмрд┐рдЯреНрд╕ рдХреЗ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ (рдПрдПрдЪ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдПрдПрд▓ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ)ред рд╣рдореЗрдВ BIOS рдЗрдВрдЯрд░рдкреНрдЯ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: 10h рдФрд░ 16h, рдЬреЛ рдХреНрд░рдорд╢рдГ рд╡реАрдбрд┐рдпреЛ рдореЛрдб рдФрд░ рдХреАрдмреЛрд░реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдФрд░ рдбреЙрд╕ рдЗрдВрдЯрд░рдкреНрдЯ 21h рдЧрд┐рдирд╛ рдЧрдпрд╛, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдПрдХ рд▓рд╛рдЗрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред
рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░реИрдо рдХреА рдПрдХ рдЫреЛрдЯреА рдорд╛рддреНрд░рд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк - .com рдФрд░ рдЫреЛрдЯреЗ рдореЗрдореЛрд░реА рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдбреЙрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рдХреНрд▓рд╛рд╕рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрдореЛрд░реА 100 рдПрдЪ рдореЗрдВ рдкреАрдЫреЗ рд╣рдЯрдирд╛ред
.model tiny ; .186 ; i80186 .code ; , org 100h ;
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╣ рдореЗрдореЛрд░реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЪрд░ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рддреБрд░рдВрдд рдореЗрдореЛрд░реА рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХреВрдж рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рди рдХрд░реЗрдВ:
main: jmp start ; W equ 1Fh H equ 18h OFFS equ 04h cells db W + OFFS dup(0) c_n db W + OFFS dup(0) bsymb db 0 _sleep dw 1fffh ; the_matrix db "THEMATRI X" ; , the_matrix_len equ $ - the_matrix ; , $ msg_end db 0ah, 0dh, "Follow the white rabbit.", 0ah, 0dh, "$" timer dw 04ffh ;
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рдЬрдм рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЛрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдкрд░ рд╡рд░реНрддрдорд╛рди рдореЛрдб рдХреЛ рд╕рд╣реЗрдЬреЗрдВред
mov ax, 0f00h ; int 10h push ax ;
рд╣рдо рд╡реАрдбрд┐рдпреЛ рдореЛрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдЯреЗрдХреНрд╕реНрдЯ CGA, EGA 80x25:
mov ax, 0003h int 10h
рдЕрдЧрд▓рд╛ рдХреЛрдб рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬрд╛рджреВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ:
- рдорд┐рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд░рд┐рддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛
- рдХрд░реНрд╕рд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд░рд┐рддреНрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
- рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдЪрд░рд┐рддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
- ASCII рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪрд░рд┐рддреНрд░ рдирд┐рд░реНрдорд╛рдг
- рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ
- рдЕрдЧрд▓реЗ рд╡рд░реНрдг рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмреАрдЪ рд╡рд┐рд▓рдВрдм рдЪрдХреНрд░
- THEMATRIX рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рд╕рдордпрд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИ
- рд╢рд┐рд▓рд╛рд▓реЗрдЦ "THEMATRIX" рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда main_loop: imul dx, 4E35h inc dx push dx and dh, W add dh, OFFS shr dx, 08h mov bx, dx lea di, cells add byte ptr [di+ bx], 1 mov dh, byte ptr [di+ bx] cmp dh, H jne next1 mov byte ptr [di+ bx], 0 next1: cmp dh, 0 je draw1 dec dh ; mov bh, 00h mov ah, 02h ; int 10h mov ah, 09h ; / mov al, bsymb ; mov bx, 0002h ; , mov cx, 01h ; ( ) int 10h draw1: inc dh mov bh, 00h mov ah, 02h int 10h mov ah, 09h ; / pop dx imul dx, 4E35h inc dx push dx mov bsymb, dh ; mov al, bsymb mov bx, 000Ah mov cx, 01h int 10h ;... pop dx imul dx, 4E35h inc dx push dx and dh, W add dh, OFFS shr dx, 08h mov bx, dx lea di, c_n add byte ptr [di+ bx], 01h mov dh, byte ptr [di+ bx] cmp dh, H + 01h jne next2 mov byte ptr [di+ bx], 00h next2: dec dh mov bh, 00h mov ah, 2 int 10h mov ah, 09h ; / mov al, 08h ; mov bh, 00h ; mov bl, 00h ; () () mov cx, 0001h ; int 10h ; sleep cycle mov cx, _sleep loop2: nop loop loop2 ;draw message cmp timer, 0 je no_msg dec timer mov ax, 1300h ; mov ch, 00h mov cl, the_matrix_len mov bh, 00h ; mov bl, 20h ; mov dl, 0Bh ; () mov dh, 0Bh ; () lea bp, the_matrix ; int 10h inc dh
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдм рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдлреЗрдж рдЦрд░рдЧреЛрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреАрдмреЛрд░реНрдб рдХреАрд╕реНрдЯреНрд░реЛрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рд╡рд░реНрдг рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛, рддреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ:
mov ah, 01h int 16h pop dx jz loop1 jmp end_prog loop1: jmp main_loop
рдкреНрд░рддреАрдХ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкрд┐рдЫрд▓реЗ рд╡реАрдбрд┐рдпреЛ рдореЛрдб рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
end_prog: pop ax ; mov ah, 00h mov bh, 00h int 10h
рд╕рдлреЗрдж рдЦрд░рдЧреЛрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
mov ah, 09h ; lea dx, msg_end ; , '$' (ASCII 24H) int 21h
рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
mov ah, 4ch mov al, 00h ; int 21h end main
рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЗ рдЗрди рд╕рднреА рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рди рдФрд░ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
tasm /t /z matrix tlink /t matrix
рдЕрдВрдд рдореЗрдВ, рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:
- рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд▓рдВрдмрд╡рдд рд░реЛрд▓рд┐рдВрдЧ рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдХреЗрдВрджреНрд░ рдореЗрдВ рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рдж рдореИрдЯреНрд░рд┐рдХреНрд╕" рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
- рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рд╕реЗ рдХрд┐рд╕реА рд╡рд░реНрдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
- рд╕рдВрдХрд▓рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕реНрдХрд░рдг 357 рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдореЗрдВ
рдЕрдкрдбреЗрдЯ: рд╣реИрдмрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, "рдИрдорд╛рдирджрд╛рд░" рдореИрдЯреНрд░рд┐рдХреНрд╕ рдлрд╝реЙрдиреНрдЯ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде:
- рдХреЛрдб рдХреЛ 11h BIOS рдЗрдВрдЯрд░рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди 10h рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
lea bp, font mov bx, 1000h xor dx, dx mov cx, 100h mov ax, 1100h int 10h
- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЖрдХрд╛рд░ 4,472 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ
- рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рд╕рдВрдХрд▓рд┐рдд .COM рдлрд╝рд╛рдЗрд▓ (рдЬреЛ DosBox рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдЪрд▓рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ) рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИ - bitbucket.org/andrey_suharev/the-matrix