DCPU-16 рдХреЗ рд▓рд┐рдП рдЯреЗрдЯреНрд░рд┐рд╕

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдмрд░реЗ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ , Minecraft рдХреЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛, рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдВрдХреАрд░реНрдг рд╕рд░реНрдХрд▓ рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдорд╛рд░реНрдХрд╕ "рдиреЙрдЪ" рдкрд░реНрд╕рд╕рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдирдпрд╛ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИ, рдЬреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ 281,474,976,712,644 рдореЗрдВ рдЬрдЧрд╣ рд▓реЗрдЧрд╛ред

Minecraft рдХреА рддрд░рд╣, рдЦреЗрд▓ рдЧреИрд░-рдорд╛рдирдХ рд╣реЛрдЧрд╛: рдореБрдЦреНрдп "рдЪрд╛рд▓" рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╕реНрдкреЗрд╕рд╢рд┐рдк рдмрд┐рдЧ ... рдПрд░, рдпреВрдирд┐рд╡рд░реНрд╕ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ рд╡рд░реНрд╖ 0x10 рд╕реА рдореЗрдВ рдЦреЗрд▓ рдХреЗ рдкрд╛рддреНрд░реЛрдВ (рдЦреЗрд▓, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) 1980 рд╕реЗ рд╕реАрдзреЗ рдорд┐рд▓рд╛, рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдбреАрд╕реАрдкреАрдпреВ -16 рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЙрд╕ рдпреБрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ: 128 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯреНрд╕ рд░реИрдо, 100 рдХрд┐рдЧреНрд░рд╛рд░реНрдЯреНрдЬрд╝, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕реЗрдЯред

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЦреЗрд▓ рдЕрднреА рднреА рд╡рд┐рдХрд╛рд╕ рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ - рдФрд░ рд╕рдореБрджрд╛рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрди рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рдПрдХ рдЧреИрд░-рдореМрдЬреВрдж рдордВрдЪ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рдЯреБрдХрдбрд╝реЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХрд╛ рд╡рд┐рдирдореНрд░ рд╕реЗрд╡рдХ рдЗрди рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рд╣реИ, рдФрд░ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдЗрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: DCPU-16 рдХреЗ рд▓рд┐рдП рдЯреЗрдЯреНрд░рд┐рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

(рдФрд░ рддреБрд░рдВрдд рдЕрд╕реНрд╡реАрдХрд░рдг: рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд╕рдВрдЧреАрдд рдХрд▓рд╛рддреНрдордХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП; рдбреАрд╕реАрдкреАрдпреВ рдЕрдм рддрдХ рдзреНрд╡рдирд┐ рдЙрддреНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ)


"рдЗрдирд╕рд╛рдЗрдб" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдбреАрд╕реАрдкреАрдпреВ -16


рддреЛ рдХрд▓реНрдкрдирд╛ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИ? рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕рд░ 16-рдмрд┐рдЯ рд╣реЛрдЧрд╛ (рдЖрдк рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рдбрдмрд▓-рдмрд╛рдЗрдЯ рд╢рдмреНрдж рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ), рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 12 рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВ (рдЙрдирдореЗрдВ рд╕реЗ 3 рдПрд╕рдкреА , рдкреАрд╕реА рдФрд░ рдУ рд╕рд░реНрд╡рд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ), рдмрд┐рд▓реНрдХреБрд▓ рдореЗрдореЛрд░реА рдХреЗ 65,536 рд╢рдмреНрдж рд╣реИрдВ (рдЕрд░реНрдерд╛рдд 128 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ), 15 рдореВрд▓ рдФрд░ 1 рдЕрддрд┐рд░рд┐рдХреНрдд рдУрдкрдХреЛрдб, рдирд┐рд░реНрджреЗрд╢ 1 рд╕реЗ 3 рд╢рдмреНрджреЛрдВ рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдм рд▓рдЧрднрдЧ 100 рд╣рдЬрд╛рд░ рдЪрдХреНрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЪрдХреНрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдУрдкреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдФрд░ рдХреНрдпрд╛ "рдмрдбрд╝реЗ рджреЛрд╕реНрддреЛрдВ" рдХреЛ рдСрдкрд░реЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ )ред
рдмреЗрд╕рд┐рдХ рдСрдкрдХреЛрдб рдЕрд╕рдореНрдмрджреНрдз рд╣реИрдВ - рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдЕрдВрдХрдЧрдгрд┐рдд (рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджрд╢рдорд▓рд╡ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рдж 16 рдмрд┐рдЯреНрд╕ - рд╡реЗ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдУ рдЬрдм рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ), рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди, рд╕реНрдерд┐рддрд┐ рдЬрд╛рдБрдЪред рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рд╡реЗ рд╕реАрдзреЗ рдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдЧрд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред рд╣рд╛рд▓рдд рдкрд░реАрдХреНрд╖рдг рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдпрджрд┐ рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рд╢рд░реНрдд рд╕рдВрдХреНрд░рдордг рд╕рддреНрдпрд╛рдкрди рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдЧреИрд░-рдмреБрдирд┐рдпрд╛рджреА рдУрдкрдХреЛрдб рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдбрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рд╕рдВрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдСрдкрд░реЗрдВрдбреНрд╕ рдХреЗ рд╕рд╛рде рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ: рд╕рд╛рдзрд╛рд░рдг рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкрддреЗ рдкрд░ рдореЗрдореЛрд░реА, рдПрдбреНрд░реЗрд╕ + рд░рдЬрд┐рд╕реНрдЯрд░ рд╡реИрд▓реНрдпреВ рдкрд░ рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдзреЗ рд╕реЗрдЯ рд╡реИрд▓реНрдпреВ, рд╡рд┐рд╢реЗрд╖ рдорд╛рди рд╣реИрдВ POP , PEEK рдФрд░ PUSH (рд╣рд╛рдБ - рдпреЗ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдСрдкрд░реЗрдВрдб!), рдЬреЛ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ (рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП, рдЖрдк рд╕реАрдзреЗ рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдПрд╕рдкреА рдорд╛рди рдХреЛ рдПрдХ рд╕реЗ рдШрдЯрд╛рдПрдВ рдпрд╛ рдмрдврд╝рд╛рдПрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, SET PUSH, X рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , рдЖрдк рд╕реНрдЯреИрдХ рдореЗрдВ рдорд╛рди рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, SET X, POP - рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ SET X, PEEK - рдорд╛рди рдХреЛ рд╕реНрдЯреИрдХ рд╕реЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред SET X, PUSH рдЬреИрд╕реЗ рд╕рдЪреНрдЪреЗ, рдЕрдЬреАрдм рдирд┐рд░реНрдорд╛рдг рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ; POP, X рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ SET POP, PUSH рд╕реЗрдЯ рдХрд░реЗрдВ ред рд╡реЗ рдЬреЛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рд╕рдордЭрдирд╛ рдЕрдм рдмрд╣реБрдд рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рд╕реНрдореГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╕реНрдЯреИрдХ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЪреВрдВрдХрд┐ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рднреА рд░рдЬрд┐рд╕реНрдЯрд░ 0 рд╣реИрдВ, рдпрд╣ 0xFFFF рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдкрд╣рд▓реЗ PUSH рдкрд╣рд▓реЗ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдПрд╕рдкреА рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ , рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдореВрд▓реНрдп рд▓рд┐рдЦреЗрдВ) рдФрд░ рдиреАрдЪреЗ рдмрдврд╝реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдмрдлрд░ 0x8000 рдХреЗ рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ - рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 32 рд╡рд░реНрдгреЛрдВ рдХреА 12 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рд╡реЗ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдПрдХ рд╡рд░реНрдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, 16 рдмрд┐рдЯреНрд╕ рдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ 7 рдХрдо-рдСрд░реНрдбрд░ рдмрд┐рдЯреНрд╕ рдЪрд░рд┐рддреНрд░ рдХреЛрдб рдореЗрдВ рдЧрдП (рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛) - 8 рдмрд┐рдЯ рдмрд┐рдЯ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ 4 рдФрд░ рдЪрд░рд┐рддреНрд░ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ 4 рд╣реИред 16 рд░рдВрдЧ, CGA рдкреИрд▓реЗрдЯ (RGBI) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред



рдкреНрд░рджрд░реНрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреАрдмреЛрд░реНрдб рд╕реЗ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ: 16 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде 0x9000 рдкрд░ рдПрдХ рдЪрдХреНрд░реАрдп рдмрдлрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рдЪрд░рд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЬреИрд╕реЗ рд╣реА рдореЗрдореЛрд░реА рдореЗрдВ рдореВрд▓реНрдп рдиреЙрдирдЬрд╝рд░реЛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, 0 рд▓рд┐рдЦреЗрдВ рдФрд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ 1 рд╕реЗ рдмрдврд╝рд╛рдПрдВ (рдЬрдм рдЖрдк 0x9010 рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ 0x9000 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ)ред рдиреЙрдЪ рдиреЗ рдпрд╣ рд╕рдм рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджрд┐рдпрд╛ ред

рдЕрдВрдд рдореЗрдВ, рдирд╡реАрдирддрдо рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪрд░рд┐рддреНрд░ рд╕реЗрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ 0x8180 (рд╡реАрдбрд┐рдпреЛ рдмрдлрд░ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рдЕрдХреНрд╖рд░ 4x8 рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдПрдХ рдХреЙрд▓рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдореБрд▓реЗрдЯрд░


DCPU-16 рдбрд┐рд╡рд╛рдЗрд╕ рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ - рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рдерд╛ - рдЕрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдореБрд▓реЗрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдмрдбрд╝реЗ рдвреЗрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд╛рдЧрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдХреНрдпрд╛ рд░реЛрдХ рджрд┐рдпрд╛?

рдкрд░рд┐рдгрд╛рдо рдПрдХ рдРрд╕реА рдмрд╛рдд рд╣реИ:

http://dcpu.ru/

рджрд░рдЕрд╕рд▓, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ "рдереНрд░реА рдЗрди рд╡рди" рд╢реИрдореНрдкреВ - рдЕрд╕реЗрдВрдмрд▓рд░, рдПрдореБрд▓реЗрдЯрд░ рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рддреАрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рд╡рд░реНрддрдорд╛рди рд░реЗрдЦрд╛ рдХреЛ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рднрд╛рд╡реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдЕрдЬреАрдм рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ Notch рд╕реЗ рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рдЕрдзрд┐рдХ рдореИрдХреНрд░реЛ рдХреЛ рдЦрд░рд╛рдм рдХрд░рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред

рдЦреИрд░, рдпрд╣ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЧреЗрдп рдЦреБрджрд╛рдИ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рд▓реЗрдЦ рдХреЗ рд╡рд┐рд╖рдп рдХреА рдУрд░ рдореБрдбрд╝рддрд╛ рд╣реВрдВред

рдЯреЗрдЯреНрд░рд┐рд╕


рдЬреИрд╕рд╛ рдХрд┐ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЯреЗрдЯреНрд░рд┐рд╕ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ 1984 рдореЗрдВ рдЕрд▓реЗрдХреНрд╕реА рдкрд╛рдЬрд╝рд┐рддрдиреЛрд╡ рдиреЗ рдХрд┐рдпрд╛ рдерд╛ред рдирд┐рд░реНрдорд╛рддрд╛ рд╣рдорд╛рд░рд╛ рд╣рдорд╡рддрди рд╣реИ, рдЦреЗрд▓ рд▓рдЧрднрдЧ рдЙрд╕реА рд╕реНрддрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдбреАрд╕реАрдкреАрдпреВ -16 рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ - рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореБрдЭреЗ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреЛ рднрд░реЗ рд╣реБрдП рд╕реНрдерд╛рди - рдПрдХ рд╕реЗрд▓ред рдкреНрд░рддреНрдпреЗрдХ рдЖрдХреГрддрд┐ (4 рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдореЛрдбрд╝ рдореЗрдВ) рдХреЛ 4x4 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреБрд▓ 7 рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ - рдХреБрд▓ 16 рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 16 рд╢рдмреНрдж рд╣реИрдВ (рдореИрдВрдиреЗ рд╕реАрдзреЗ рдЙрди рдХреЛрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рджреЛрд╣рд░рд╛рдПрдВ)ред рдпрд╣ рд╕рдм рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдвреЗрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдХрдИ рдЙрдкрдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдкрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ, "рд╕реНрдХреЛрд░:", "рд╕реНрддрд░:", "рдЧреЗрдо рдУрд╡рд░"), рдХреАрдмреЛрд░реНрдб рд╕реЗ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдпрд╣рд╛рдБ рдПрдХ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рд╣реИ:

:next_rand ; takes no arguments, returns random word in A MUL [rand_seed], 10061 ADD [rand_seed], 1 SET A, [rand_seed] SET PC, POP :rand_seed DAT 0xC00F 

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░реИрдЦрд┐рдХ рд╕рд░реНрд╡рд╛рдВрдЧрд╕рдо рд╡рд┐рдзрд┐ (LCG) рдХрд╛ рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдЙрдиреНрд╣реЛрдВрдиреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░ рдЕрднрд╛рдЬреНрдп рд╕рдВрдЦреНрдпрд╛ 10061 рд▓реА - рдпрджрд┐ рдХреЛрдИ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИ рддреЛ рд╡рд╣ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рднреА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рд╡рд┐рд╢реЗрд╖ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЖрдВрдХрдбрд╝реЗ рдлреЗрдВрдХрдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рднрдЧрд╡рд╛рди рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реИрдВрдб_рд╕реЗрдб рдмреАрдЬ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЬрдм рд▓реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореВрд▓реНрдп рддрдм рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рддрд╛ рд╣реИред рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдЦреЗрд▓реЛрдВ рдореЗрдВ "рдХрд┐рд╕реА рднреА рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдПрдВ" рднреА рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдерд╛ред

рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдЪрд╛рд▓рд╛рдХ рдЙрдкрдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬреЛ рд╕реНрдХреНрд░реАрди рд╕реЗ рдЖрдХреГрддрд┐ рдХреЛ рдорд┐рдЯрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреА рд╣реИ:

 :show_cur_piece ; display/clear/check current piece (A=0 - clear, A=1 - display, A=2 - check), if A=2 doesn't actually place anything, return B=1 is position is valid, 0 otherwise SET X, [piece_pos] ; place block at [X] (display) SET Y, [cur_piece] ; ...from [Y] (pieces array) SHL Y, 2 BOR Y, [cur_rot] SHL Y, 4 ADD Y, pieces SET I, 0 ; index :piece_cyc1 SET B, [Y] IFE B, 0 SET PC, piece_jmp1 IFG 2, A SET PC, piece_jmp2 IFG X, 0x8000 + 32*12 ADD PC, 3 IFE [X], 0 SET PC, piece_jmp1 SET B, 0 SET PC, POP :piece_jmp2 IFE A, 0 SET B, 0 SET [X], B SET [X + 1], B :piece_jmp1 ADD I, 1 ADD X, 2 ADD Y, 1 SET B, 1 IFE I, 16 SET PC, POP IFB I, 3 SET PC, piece_cyc1 ADD X, 32 - 8 SET PC, piece_cyc1 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдЬрд╛рдВрдЪ рд╕реАрдзреЗ "рдЬрдЧрд╣ рдореЗрдВ" рдХреА рдЬрд╛рддреА рд╣реИ - рд╡реАрдбрд┐рдпреЛ рдмрдлрд░ рдореЗрдВред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдЫреЛрдЯрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рд╣реИ - рдпрджрд┐ рдЖрдк рдЖрдВрдХрдбрд╝рд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдорд┐рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдЗрд╕реЗ рдПрдХ рдирдИ рдЬрдЧрд╣ рдкрд░ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛, рддреЛ рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдбреНрд░рд╛ рдХрд░реЗрдВред рдорд┐рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣рд▓реНрдХреА рд╕реА рдкрд▓рдХ рдЭрдкрдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХреА рдЧрддрд┐ рдЗрддрдиреА рдкрд░реНрдпрд╛рдкреНрдд рдереА рдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдереАред рджрд░рдЕрд╕рд▓, рдЖрдВрдХрдбрд╝рд╛ рдПрдХ рд╕реЗрд▓ рдХрдо рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд▓рдЧрднрдЧ 2500 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдкрд░, рдмрдлрд░ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЖрдВрдХрдбрд╝рд╛ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдкрд░ рдмрд╛рдПрдВ рдпрд╛ рджрд╛рдПрдВ рдШреВрдорддрд╛ рд╣реИ), рджреВрд╕рд░реЗ рд╕реНрддрд░ рдкрд░ 2000, рддреАрд╕рд░реЗ рдкрд░ 1500 - рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреЛ рдФрд░ рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛ рд╣реИ - рдпрджрд┐ рдЖрдВрдХрдбрд╝рд╛ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рддрд╣рдд рдиреАрдЪреЗ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░реА рд╣реБрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдПрдХ рдирдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕реЗ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдлрд╝реАрд▓реНрдб "рдЕрдЧрд▓рд╛:", рдФрд░ рдпрд╣рд╛рдБ рдЪреБрдирд╛рд╡ "рдПрдХ рдХрджрдо рдЖрдЧреЗ" рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рдКрдкрд░ рд╕реЗ рдЧреНрд▓рд╛рд╕ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╛рд╣рд░реА рдЪрдХреНрд░ рднреА рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реБрдВрджрд░ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рдЧреЗрдо рдУрд╡рд░" рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рднрд░реА рд╣реБрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рджреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрддрдорд╛рди "рд▓рд┐рдЦрд┐рдд" рдФрд░ рд╡рд░реНрддрдорд╛рди "рд░реАрдб" рд▓рд╛рдЗрдиред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, "рдкрдардиреАрдп" рддрдм рддрдХ рдЙрдарддрд╛ рд╣реИ рдЬрдм рддрдХ рдпрд╣ рдмрд╣реБрдд рдКрдкрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдЕрдкреВрд░реНрдг рдкрдВрдХреНрддрд┐ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред рдлрд┐рд░ "рдкрдардиреАрдп" рд▓рд╛рдЗрди рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ "рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдПрдХ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреЛрдиреЛрдВ 1 рд▓рд╛рдЗрди рдКрдВрдЪреА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЕрдиреБрдХреВрд▓рди рдХреА рдПрдХ рдЬреЛрдбрд╝реА: рдирдХрд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдЕрдЧрд░ рджреЛрдиреЛрдВ рдмрд┐рдВрджреБ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ "рдкрдардиреАрдп" рд▓рд╛рдЗрди рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдКрдкрд░ рд╣реИ рдпрд╛ рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд┐рдЯ рдЪреБрдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 4 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рдЧрдИ рд╣реИ (рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдирддреАрдЬрддрди, рдпрд╣ рдХрд╛рдлреА рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдк рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред

 :scan_lines ; search for complete lines, remove them and move all other down; update score & level SET A, 0x8000 + 32*11 + 11 ; start of next line to fill SET B, A ; start of next line to check SET J, 0 ; num of lines skipped :scan_cyc2 SET I, 0 ; horizontal index SET X, B :scan_cyc1 IFE [X], 0 SET PC, scan_jmp1 ADD X, 2 ADD I, 1 IFG 10, I SET PC, scan_cyc1 ADD J, 1 ; no gaps found, increase num of complete rows SUB B, 32 IFE J, 4 SET PC, scan_jmp1 IFG B, 0x8000 SET PC, scan_cyc2 :scan_jmp1 ; found a gap, or no more gaps can be found IFE A, B SET PC, scan_jmp2 ; no need to move anything, continue SET I, 0 :scan_cyc3 SET [A], [B] ADD I, 1 ADD A, 1 ADD B, 1 IFG 20, I SET PC, scan_cyc3 SUB A, 20 SUB B, 20 :scan_jmp2 SUB A, 32 IFG 0x8000, A SET PC, scan_end SUB B, 32 IFE J, 4 SET PC, scan_jmp1 IFG 0x8000, B SET PC, scan_jmp1 SET PC, scan_cyc2 :scan_end IFE J, 0 SET PC, POP ADD [lines], J SET J, [lines_score + J] MUL J, [level] ADD [score], J JSR update_score IFG 10, [lines] SET PC, POP SET [lines], 0 ADD [level], 1 JSR update_level SET PC, POP 


рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - " dcpu.ru рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ " рдмрдЯрди рдвреВрдВрдвреЗрдВ , рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА - " рд░рди " рдмрдЯрдиред

рд╕рдВрджрд░реНрдн




рдкреБрдирд╢реНрдЪ рд╣рд╛рдБ, рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдШрдордВрдб - рдЦреБрдж рдкрд╛рдпрджрд╛рди рдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХреА :)

Source: https://habr.com/ru/post/In142539/


All Articles