{"id":288462,"date":"2018-08-24T12:50:03","date_gmt":"2018-08-24T08:50:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=288462"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=288462","title":{"rendered":"\u041a\u0430\u043a \u044f \u043d\u0430\u0443\u0447\u0438\u043b \u0418\u0418 \u0438\u0433\u0440\u0430\u0442\u044c \u0432 Tetris \u0434\u043b\u044f NES. \u0427\u0430\u0441\u0442\u044c 1: \u0430\u043d\u0430\u043b\u0438\u0437 \u043a\u043e\u0434\u0430 \u0438\u0433\u0440\u044b"},"content":{"rendered":"\n<div data-io-article-url=\"https:\/\/habr.com\/post\/420725\/\" class=\"post__text post__text-html js-mediator-article\">\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u044e \u043e\u0431\u043c\u0430\u043d\u0447\u0438\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 Nintendo Tetris, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u043b \u0418\u0418, \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/48f\/1a4\/9b8\/48f1a49b87860e6139e8d298e1fe6188.png\"><\/div>\n<p>  <\/p>\n<h2>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u0430\u043c\u0438<\/h2>\n<p>  <\/p>\n<h3>\u041e \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/h3>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0443\u043f\u043e\u0440\u0441\u0442\u0432\u0430, \u0442\u0435\u0440\u043f\u0435\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u044f Nintendo Tetris, \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u0418\u0418, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u0438\u0433\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0412\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f 30 \u0438 \u0434\u0430\u0436\u0435 \u0434\u0430\u043b\u044c\u0448\u0435. \u0412\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0447\u043a\u043e\u0432 \u0438 \u043f\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0435 \u0437\u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432 \u0440\u044f\u0434\u043e\u0432, \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438. \u0423\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u044f\u0445, \u0432\u044b\u0448\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u043c\u043e\u0433 \u0437\u0430\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>  \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0418\u0418 \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 NES\/Famicom <a href=\"http:\/\/www.fceux.com\/\">FCEUX<\/a>. \u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442 \u0431\u044b\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f <a href=\"http:\/\/www.fceux.com\/web\/version.html\">FCEUX 2.2.2<\/a>, \u0441\u0430\u043c\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f ROM-\u0444\u0430\u0439\u043b Nintendo Tetris (\u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043b\u044f \u0421\u0428\u0410). \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0432 <a href=\"https:\/\/www.google.com\/#q=Tetris+NES+ROM+USA\">Google<\/a>.<\/p>\n<h3>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>  \u0420\u0430\u0441\u043f\u0430\u043a\u0443\u0439\u0442\u0435 <code>lua\/NintendoTetrisAI.lua<\/code> \u0438\u0437 \u044d\u0442\u043e\u0433\u043e <a href=\"http:\/\/meatfighter.com\/nintendotetrisai\/NintendoTetrisAI.zip\">zip-\u0444\u0430\u0439\u043b\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438<\/a>.<\/p>\n<h3>\u0417\u0430\u043f\u0443\u0441\u043a<\/h3>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 FCEUX. \u0412 \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 File | Open ROM\u2026 \u0412 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435 Open File \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 ROM-\u0444\u0430\u0439\u043b Nintendo Tetris \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Open. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0438\u0433\u0440\u0430.<\/p>\n<p>  \u0412 \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 File | Lua | New Lua Script Window\u2026 \u0412 \u043e\u043a\u043d\u0435 the Lua Script \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u043a <code>NintendoTetrisAI.lua<\/code> \u0438\u043b\u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 Browse, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Run.<\/p>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 Lua \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442 \u0432\u0430\u0441 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u043c\u0435\u043d\u044e. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0442\u0438\u043f \u0438\u0433\u0440\u044b A-Type, \u0430 \u043c\u0443\u0437\u044b\u043a\u0443 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e. \u041d\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u043c\u0443\u0437\u044b\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0433\u0440\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0434\u0451\u0440\u0433\u0430\u043d\u043e, \u0442\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0438\u0442 \u0435\u0451 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 Start (Enter), \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u043a\u0440\u0430\u043d\u0443 \u043c\u0435\u043d\u044e. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u043c\u0435\u043d\u044e \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u0430\u0432\u0438\u0448 \u0441\u043e \u0441\u0442\u0440\u0435\u043b\u043a\u0430\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 Start, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0433\u0440\u0443. \u0418 \u0437\u0434\u0435\u0441\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u0442 \u0418\u0418.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435 \u043c\u0435\u043d\u044e \u0437\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u0433\u0435\u0439\u043c\u043f\u0430\u0434\u0430 A (\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0443 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0432 \u043c\u0435\u043d\u044e Config | Input&#8230;) \u0438 \u043d\u0430\u0436\u0430\u0442\u044c Start, \u0442\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 10 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u2014 \u0434\u0435\u0432\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044b\u0439.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0438\u0433\u0440\u0430 \u0448\u043b\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 Lua \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p>  <code>PLAY_FAST = false<\/code><\/p>\n<p>  \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 <code>false<\/code> \u043d\u0430 <code>true<\/code>, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\n<p>  <code>PLAY_FAST = true<\/code><\/p>\n<p>  \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b. \u0417\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 Restart \u0432 \u043e\u043a\u043d\u0435 Lua Script.<\/p>\n<h2>\u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 Nintendo Tetris<\/h2>\n<p>  <\/p>\n<h3>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  \u041a\u0430\u0436\u0434\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0435 \u0435\u0451 \u0444\u043e\u0440\u043c\u0443.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/975\/440\/5ed\/9754405ed7b3d83a47181edef3de6913.png\"><\/div>\n<p>  \u0414\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b Nintendo Tetris \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0437\u0430\u0434\u0430\u043b\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e. \u0424\u0438\u0433\u0443\u0440\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0442\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0430 \u0441\u0445\u0435\u043c\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u043e\u0447\u0442\u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0431\u0440\u0430\u043d \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a). \u0418\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u0451\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 ID. \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442\u0438\u043f\u0430 \u0432\u0430\u0436\u043d\u044b \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f; \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u043d\u0438 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u044e\u0442 \u0441\u0435\u0431\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0444\u0438\u0433\u0443\u0440, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u043c \u0432 \u043f\u043e\u043b\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 (\u0441\u043c. \u043d\u0438\u0436\u0435).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/dc2\/35d\/778\/dc235d778c47654e1abbc5896581fd6a.png\"><\/div>\n<p>  19 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 Nintendo Tetris \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$8A9C<\/code> \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 NES. \u041a\u0430\u0436\u0434\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 12 \u0431\u0430\u0439\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 \u0442\u0440\u043e\u0439\u043a\u0438 <code>(Y, tile, X)<\/code>, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0432 \u0444\u0438\u0433\u0443\u0440\u0435. \u0423\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 hex-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u044b\u0448\u0435 <code>$7F<\/code> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 (<code>$FF= \u22121<\/code>, \u0430 <code>$FE = \u22122<\/code>).<\/p>\n<p>  <code> ; Y0 T0 X0 Y1 T1 X1 Y2 T2 X2 Y3 T3 X3<\/p>\n<p>  8A9C: 00 7B FF 00 7B 00 00 7B 01 FF 7B 00 ; 00: T up<br \/>  8AA8: FF 7B 00 00 7B 00 00 7B 01 01 7B 00 ; 01: T right<br \/>  8AB4: 00 7B FF 00 7B 00 00 7B 01 01 7B 00 ; 02: T down (spawn)<br \/>  8AC0: FF 7B 00 00 7B FF 00 7B 00 01 7B 00 ; 03: T left<\/p>\n<p>  8ACC: FF 7D 00 00 7D 00 01 7D FF 01 7D 00 ; 04: J left<br \/>  8AD8: FF 7D FF 00 7D FF 00 7D 00 00 7D 01 ; 05: J up<br \/>  8AE4: FF 7D 00 FF 7D 01 00 7D 00 01 7D 00 ; 06: J right<br \/>  8AF0: 00 7D FF 00 7D 00 00 7D 01 01 7D 01 ; 07: J down (spawn)<\/p>\n<p>  8AFC: 00 7C FF 00 7C 00 01 7C 00 01 7C 01 ; 08: Z horizontal (spawn)<br \/>  8B08: FF 7C 01 00 7C 00 00 7C 01 01 7C 00 ; 09: Z vertical<\/p>\n<p>  8B14: 00 7B FF 00 7B 00 01 7B FF 01 7B 00 ; 0A: O (spawn)<\/p>\n<p>  8B20: 00 7D 00 00 7D 01 01 7D FF 01 7D 00 ; 0B: S horizontal (spawn)<br \/>  8B2C: FF 7D 00 00 7D 00 00 7D 01 01 7D 01 ; 0C: S vertical<\/p>\n<p>  8B38: FF 7C 00 00 7C 00 01 7C 00 01 7C 01 ; 0D: L right<br \/>  8B44: 00 7C FF 00 7C 00 00 7C 01 01 7C FF ; 0E: L down (spawn)<br \/>  8B50: FF 7C FF FF 7C 00 00 7C 00 01 7C 00 ; 0F: L left<br \/>  8B5C: FF 7C 01 00 7C FF 00 7C 00 00 7C 01 ; 10: L up<\/p>\n<p>  8B68: FE 7B 00 FF 7B 00 00 7B 00 01 7B 00 ; 11: I vertical<br \/>  8B74: 00 7B FE 00 7B FF 00 7B 00 00 7B 01 ; 12: I horizontal (spawn)<\/p>\n<p>  8B80: 00 FF 00 00 FF 00 00 FF 00 00 FF 00 ; 13: Unused<\/code><\/p>\n<p>  \u0412\u043d\u0438\u0437\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u0430\u044e\u0449\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u043a\u043e\u0434\u0430 <code>$13<\/code> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<p>  <code>-- { { X0, Y0 }, { X1, Y1 }, { X2, Y2 }, { X3, Y3 }, },<\/p>\n<p>  { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, -1 }, }, -- 00: T up<br \/>   { { 0, -1 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, }, -- 01: T right<br \/>   { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, }, -- 02: T down (spawn)<br \/>   { { 0, -1 }, { -1, 0 }, { 0, 0 }, { 0, 1 }, }, -- 03: T left<\/p>\n<p>  { { 0, -1 }, { 0, 0 }, { -1, 1 }, { 0, 1 }, }, -- 04: J left<br \/>   { { -1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, }, -- 05: J up<br \/>   { { 0, -1 }, { 1, -1 }, { 0, 0 }, { 0, 1 }, }, -- 06: J right<br \/>   { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 1 }, }, -- 07: J down (spawn)<\/p>\n<p>  { { -1, 0 }, { 0, 0 }, { 0, 1 }, { 1, 1 }, }, -- 08: Z horizontal (spawn) <br \/>   { { 1, -1 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, }, -- 09: Z vertical<\/p>\n<p>  { { -1, 0 }, { 0, 0 }, { -1, 1 }, { 0, 1 }, }, -- 0A: O (spawn)<\/p>\n<p>  { { 0, 0 }, { 1, 0 }, { -1, 1 }, { 0, 1 }, }, -- 0B: S horizontal (spawn)<br \/>   { { 0, -1 }, { 0, 0 }, { 1, 0 }, { 1, 1 }, }, -- 0C: S vertical<\/p>\n<p>  { { 0, -1 }, { 0, 0 }, { 0, 1 }, { 1, 1 }, }, -- 0D: L right<br \/>   { { -1, 0 }, { 0, 0 }, { 1, 0 }, { -1, 1 }, }, -- 0E: L down (spawn)<br \/>   { { -1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, }, -- 0F: L left<br \/>   { { 1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, }, -- 10: L up<\/p>\n<p>  { { 0, -2 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, }, -- 11: I vertical<br \/>   { { -2, 0 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, }, -- 12: I horizontal (spawn)<\/code><\/p>\n<p>  \u0412\u0441\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 5\u00d75.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8ca\/435\/322\/8ca435322ee85d07cc631640c11a9aee.png\"><\/div>\n<p>  \u041d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0431\u0435\u043b\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0446\u0435\u043d\u0442\u0440 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043e\u043f\u043e\u0440\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0434\u043b\u044f \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>  \u041d\u0438\u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b18\/4e0\/f0e\/b184e0f0ea182222b58d151c09217567.png\"><\/div>\n<p>  \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (\u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b) \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0410 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043d\u0435\u043c\u043e\u043d\u0438\u043a\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0432 \u043b\u0435\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443. <code>u<\/code>, <code>r<\/code>, <code>d<\/code>, <code>l<\/code>, <code>h<\/code> \u0438 <code>v<\/code> \u2014 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043e\u0442 \u00abup, right, down, left, horizontal \u0438 vertical\u00bb. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0449\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e <code>Jd<\/code>, \u0430 \u043d\u0435 <code>$07<\/code>.<\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0444\u0438\u0433\u0443\u0440 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b \u0431\u0435\u043b\u043e\u0439 \u0440\u0430\u043c\u043a\u043e\u0439.<\/p>\n<p>  \u0422\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e I, S \u0438 Z \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u0430\u0442\u044c 4 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 Nintendo Tetris \u0440\u0435\u0448\u0438\u043b\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u0434\u0432\u0443\u043c\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, <code>Zv<\/code> \u0438 <code>Sv<\/code> \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430. \u041e\u0431\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0434\u0438\u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0443.<\/p>\n<p>  \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b.<\/p>\n<table>\n<tr>\n<th>T<\/th>\n<th>J<\/th>\n<th>Z<\/th>\n<th>O<\/th>\n<th>S<\/th>\n<th>L<\/th>\n<th>I<\/th>\n<\/tr>\n<tr>\n<td><code>7B<\/code><\/td>\n<td><code>7D<\/code><\/td>\n<td><code>7C<\/code><\/td>\n<td><code>7B<\/code><\/td>\n<td><code>7D<\/code><\/td>\n<td><code>7C<\/code><\/td>\n<td><code>7B<\/code><\/td>\n<\/tr>\n<\/table>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043b\u043e\u0432 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u043f\u0441\u0435\u0432\u0434\u043e\u0446\u0432\u0435\u0442\u043d\u043e\u0433\u043e) \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e00\/97a\/713\/e0097a713f629afaf73936d3192820e3.png\"><\/div>\n<p>  \u0422\u0430\u0439\u043b\u044b <code>$7B<\/code>, <code>$7C<\/code> \u0438 <code>$7D<\/code> \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043f\u0440\u044f\u043c\u043e \u043f\u043e\u0434 \u00abATIS\u00bb \u0438\u0437 \u0441\u043b\u043e\u0432\u0430 \u00abSTATISTICS\u00bb. \u042d\u0442\u043e \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e.<\/p>\n<p>  \u0414\u043b\u044f \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0441\u0442\u0440\u0430\u0443\u0441\u044b \u0438 \u043f\u0438\u043d\u0433\u0432\u0438\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430\u0445 \u0440\u0435\u0436\u0438\u043c\u0430 B-Type. \u042d\u0442\u0430 \u0442\u0435\u043c\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041a\u043e\u043d\u0446\u043e\u0432\u043a\u0438\u00bb.<\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 ROM \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043c\u0435\u043d\u044b <code>$7B<\/code> \u043d\u0430 <code>$29<\/code>. \u0421\u0435\u0440\u0434\u0446\u0435 \u2014 \u044d\u0442\u043e \u0442\u0430\u0439\u043b \u043f\u043e\u0434 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c P \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439 T.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/5fa\/551\/215\/5fa55121523b443f8f3b6daa2bd46ad8.png\"><\/div>\n<p>  \u0422\u0430\u0439\u043b\u044b-\u0441\u0435\u0440\u0434\u0446\u0430 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 T \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435. \u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e\u00bb, \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0442\u0430\u0439\u043b\u043e\u0432 \u0441\u044b\u0433\u0440\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e.<\/p>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0438\u0433\u0440\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b 4 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0439\u043b\u043e\u0432, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432. \u042d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0444\u0438\u0448\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0430 \u0438\u0433\u0440\u044b. \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0442\u0430\u0439\u043b\u043e\u0432, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434.<\/p>\n<p>  \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0442\u0440\u043e\u0435\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439.<\/p>\n<p>  <code>8A9C: FE 7B FE FE 7B 02 02 7B FE 02 7B 02 ; 00: T up<\/code><\/p>\n<p>  \u042d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443:<\/p>\n<p>  <code> { { -2, -2 }, { 2, -2 }, { -2, 2 }, { 2, 2 }, }, -- 00: T up<\/code><\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3a6\/ab5\/86d\/3a6ab586d06a57b92208bd612b755109.png\"><\/div>\n<p>  \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0435\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0444\u0438\u0433\u0443\u0440\u044b. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u0433\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432 \u044d\u0442\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0438\u043b\u0438 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043d\u0430\u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442.<\/p>\n<p>  \u0420\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u043f\u043e\u0440\u0430 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0438\u0437 \u0435\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0442\u043e \u0432\u0438\u0441\u044f\u0449\u0438\u0435 \u0432 \u0432\u043e\u0437\u0434\u0443\u0445\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0432\u0438\u0441\u0435\u0442\u044c.<\/p>\n<p>  \u0418\u0433\u0440\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043a\u0430\u043a \u0441 \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u043e\u0439. \u042d\u0442\u043e \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u0439 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439 \u0441 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u043e\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041d\u043e \u0442\u0430\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0438\u0433\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u044f\u043c\u0438 \u0441 \u0444\u0438\u0433\u0443\u0440\u043e\u0439.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438; \u043e\u043d\u0438 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c <code>[\u22122, 2]<\/code>. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0435 \u044d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u0434\u0443\u0442 \u043d\u0430\u043c \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u044f\u0442\u0441\u044f \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435. \u0427\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438\u0433\u0440\u044b \u0438 \u0440\u0435\u0436\u0438\u043c\u044b \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430\u00bb, \u043a\u043e\u0433\u0434\u0430 \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0440\u044f\u0434\u043e\u0432 \u043e\u0442 \u22122 \u0434\u043e 1 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0444\u0438\u0433\u0443\u0440\u044b; \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0439 <code>y<\/code> \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u043c.<\/p>\n<h3>\u0412\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  \u0412 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043e\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446 \u0441\u043b\u0435\u0432\u0430 \u0438\u043b\u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0440\u044f\u0434\u0430 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u042d\u0442\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$88EE<\/code>.<\/p>\n<p>  <code> ; CCW CW<br \/>  88EE: 03 01 ; Tl Tr<br \/>  88F0: 00 02 ; Tu Td<br \/>  88F2: 01 03 ; Tr Tl<br \/>  88F4: 02 00 ; Td Tu<br \/>  88F6: 07 05 ; Jd Ju<br \/>  88F8: 04 06 ; Jl Jr<br \/>  88FA: 05 07 ; Ju Jd<br \/>  88FC: 06 04 ; Jr Jl<br \/>  88FE: 09 09 ; Zv Zv<br \/>  8900: 08 08 ; Zh Zh<br \/>  8902: 0A 0A ; O O<br \/>  8904: 0C 0C ; Sv Sv<br \/>  8906: 0B 0B ; Sh Sh<br \/>  8908: 10 0E ; Lu Ld<br \/>  890A: 0D 0F ; Lr Ll<br \/>  890C: 0E 10 ; Ld Lu<br \/>  890E: 0F 0D ; Ll Lr<br \/>  8910: 12 12 ; Ih Ih<br \/>  8912: 11 11 ; Iv Iv<\/code><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043c \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.    <\/p>\n<table>\n<tr>\n<th><\/th>\n<th><code>Tu<\/code><\/th>\n<th><code>Tr<\/code><\/th>\n<th><code>Td<\/code><\/th>\n<th><code>Tl<\/code><\/th>\n<th><code>Jl<\/code><\/th>\n<th><code>Ju<\/code><\/th>\n<th><code>Jr<\/code><\/th>\n<th><code>Jd<\/code><\/th>\n<th><code>Zh<\/code><\/th>\n<th><code>Zv<\/code><\/th>\n<th><code>O<\/code><\/th>\n<th><code>Sh<\/code><\/th>\n<th><code>Sv<\/code><\/th>\n<th><code>Lr<\/code><\/th>\n<th><code>Ld<\/code><\/th>\n<th><code>Ll<\/code><\/th>\n<th><code>Lu<\/code><\/th>\n<th><code>Iv<\/code><\/th>\n<th><code>Ih<\/code><\/th>\n<\/tr>\n<tr>\n<th>\u041f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438<\/th>\n<td><code>Tl<\/code><\/td>\n<td><code>Tu<\/code><\/td>\n<td><code>Tr<\/code><\/td>\n<td><code>Td<\/code><\/td>\n<td><code>Jd<\/code><\/td>\n<td><code>Jl<\/code><\/td>\n<td><code>Ju<\/code><\/td>\n<td><code>Jr<\/code><\/td>\n<td><code>Zv<\/code><\/td>\n<td><code>Zh<\/code><\/td>\n<td><code>O<\/code><\/td>\n<td><code>Sv<\/code><\/td>\n<td><code>Sh<\/code><\/td>\n<td><code>Lu<\/code><\/td>\n<td><code>Lr<\/code><\/td>\n<td><code>Ld<\/code><\/td>\n<td><code>Ll<\/code><\/td>\n<td><code>Ih<\/code><\/td>\n<td><code>Iv<\/code><\/td>\n<\/tr>\n<tr>\n<th>\u041f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435<\/th>\n<td><code>Tr<\/code><\/td>\n<td><code>Td<\/code><\/td>\n<td><code>Tl<\/code><\/td>\n<td><code>Tu<\/code><\/td>\n<td><code>Ju<\/code><\/td>\n<td><code>Jr<\/code><\/td>\n<td><code>Jd<\/code><\/td>\n<td><code>Jl<\/code><\/td>\n<td><code>Zv<\/code><\/td>\n<td><code>Zh<\/code><\/td>\n<td><code>O<\/code><\/td>\n<td><code>Sv<\/code><\/td>\n<td><code>Sh<\/code><\/td>\n<td><code>Ld<\/code><\/td>\n<td><code>Ll<\/code><\/td>\n<td><code>Lu<\/code><\/td>\n<td><code>Lr<\/code><\/td>\n<td><code>Ih<\/code><\/td>\n<td><code>Iv<\/code><\/td>\n<\/tr>\n<\/table>\n<p>  \u041c\u043d\u0435\u043c\u043e\u043d\u0438\u043a\u0438 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u0432\u0432\u0435\u0440\u0445\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 <code>Tu<\/code> \u0434\u0430\u0451\u0442 \u043d\u0430\u043c <code>Tl<\/code>, \u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435 <code>Tu<\/code> \u0434\u0430\u0451\u0442 <code>Tr<\/code>.<\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0435 \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439; \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u043b \u043e\u0434\u0438\u043d \u0442\u0438\u043f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u0439. \u042d\u0442\u0443 \u0442\u0435\u0445\u043d\u0438\u043a\u0443 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u044b \u0438\u0437 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043a\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0435\u0439.<\/p>\n<p>  <code>88AB: LDA $0042<br \/>  88AD: STA $00AE ; originalOrientationID = orientationID; <\/p>\n<p>  88AF: CLC<br \/>  88B0: LDA $0042<br \/>  88B2: ASL<br \/>  88B3: TAX ; index = 2 * orientationID;<\/p>\n<p>  88B4: LDA $00B5 <br \/>  88B6: AND #$80 ; if (not just pressed button A) {<br \/>  88B8: CMP #$80 ; goto aNotPressed;<br \/>  88BA: BNE $88CF ; }<\/p>\n<p>  88BC: INX <br \/>  88BD: LDA $88EE,X <br \/>  88C0: STA $0042 ; orientationID = rotationTable[index + 1];<\/p>\n<p>  88C2: JSR $948B ; if (new orientation not valid) {<br \/>  88C5: BNE $88E9 ; goto restoreOrientationID;<br \/>   ; }<\/p>\n<p>  88C7: LDA #$05 <br \/>  88C9: STA $06F1 ; play rotation sound effect;<br \/>  88CC: JMP $88ED ; return;<\/p>\n<p>  aNotPressed:<\/p>\n<p>  88CF: LDA $00B5<br \/>  88D1: AND #$40 ; if (not just pressed button B) {<br \/>  88D3: CMP #$40 ; return;<br \/>  88D5: BNE $88ED ; }<\/p>\n<p>  88D7: LDA $88EE,X <br \/>  88DA: STA $0042 ; orientationID = rotationTable[index];<\/p>\n<p>  88DC: JSR $948B ; if (new orientation not valid) { <br \/>  88DF: BNE $88E9 ; goto restoreOrientationID;<br \/>   ; }<\/p>\n<p>  88E1: LDA #$05<br \/>  88E3: STA $06F1 ; play rotation sound effect;<br \/>  88E6: JMP $88ED ; return;<\/p>\n<p>  restoreOrientationID:<\/p>\n<p>  88E9: LDA $00AE <br \/>  88EB: STA $0042 ; orientationID = originalOrientationID;<\/p>\n<p>  88ED: RTS ; return;<\/code><\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0434\u0432\u043e\u0435\u043d\u0438\u0435\u043c ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a \u043d\u0435\u043c\u0443 1 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435.<\/p>\n<p>  \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <code>x<\/code>, <code>y<\/code> \u0438 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c <code>$0040<\/code>, <code>$0041<\/code> \u0438 <code>$0042<\/code>.<\/p>\n<p>  \u041a\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u0437\u0436\u0435, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043a\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0438 \u043d\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b (\u043a\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$948B<\/code>, \u043f\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0448\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u043c \u043a\u043e\u0434\u0430). \u0415\u0441\u043b\u0438 \u043d\u043e\u0432\u0430\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0435\u0432\u0435\u0440\u043d\u0430, \u0442\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f, \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0438\u0433\u0440\u043e\u043a\u0443 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443.<\/p>\n<p>  \u0421\u0447\u0438\u0442\u0430\u044f \u0441 \u043a\u0440\u0435\u0441\u0442\u043e\u0432\u0438\u043d\u043e\u0439, \u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 NES \u0432\u043e\u0441\u0435\u043c\u044c \u043a\u043d\u043e\u043f\u043e\u043a, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0431\u0438\u0442\u043e\u043c \u0430\u0434\u0440\u0435\u0441\u0430 <code>$00B6<\/code>.<\/p>\n<table>\n<tr>\n<th><code>7<\/code><\/th>\n<th><code>6<\/code><\/th>\n<th><code>5<\/code><\/th>\n<th><code>4<\/code><\/th>\n<th><code>3<\/code><\/th>\n<th><code>2<\/code><\/th>\n<th><code>1<\/code><\/th>\n<th><code>0<\/code><\/th>\n<\/tr>\n<tr>\n<td>A<\/td>\n<td>B<\/td>\n<td>Select<\/td>\n<td>Start<\/td>\n<td>\u0412\u0432\u0435\u0440\u0445<\/td>\n<td>\u0412\u043d\u0438\u0437<\/td>\n<td>\u0412\u043b\u0435\u0432\u043e<\/td>\n<td>\u0412\u043f\u0440\u0430\u0432\u043e<\/td>\n<\/tr>\n<\/table>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 <code>$00B6<\/code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>$81<\/code> \u043f\u043e\u043a\u0430 \u0438\u0433\u0440\u043e\u043a \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 A \u0438 \u00ab\u0412\u043b\u0435\u0432\u043e\u00bb.<\/p>\n<p>  \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, <code>$00B5<\/code> \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044b \u043a\u043d\u043e\u043f\u043a\u0438; \u0431\u0438\u0442\u044b <code>$00B5<\/code> \u0438\u0441\u0442\u0438\u043d\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 (1 \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430). \u041a\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <code>$00B5<\/code>, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u044f A \u0438 B. \u041a\u0430\u0436\u0434\u0443\u044e \u0438\u0437 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430.<\/p>\n<p>  <code>$00B5<\/code> \u0438 <code>$00B6<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0435\u0440\u043a\u0430\u043b\u0430\u043c\u0438 <code>$00F5<\/code> \u0438 <code>$00F6<\/code>. \u041a\u043e\u0434 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c\u043e.<\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 Nintendo Tetris \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441 22 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0438 10 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u0432\u0435\u0440\u0445\u043d\u0438\u0435 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043a\u0440\u044b\u0442\u044b \u043e\u0442 \u0438\u0433\u0440\u043e\u043a\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6e1\/0dc\/33b\/6e10dc33b40eaa5dec35bc6e7bf42c5f.png\"><\/div>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u043d\u0438\u0436\u0435 \u043a\u043e\u0434\u0435, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 <code>(5, 0)<\/code> \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f.<\/p>\n<p>  <code>98BA: LDA #$00<br \/>  98BC: STA $00A4<br \/>  98BE: STA $0045<br \/>  98C0: STA $0041 ; Tetrimino Y = 0<br \/>  98C2: LDA #$01<br \/>  98C4: STA $0048 <br \/>  98C6: LDA #$05 <br \/>  98C8: STA $0040 ; Tetrimino X = 5<\/code><\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u044d\u0442\u0443 \u0442\u043e\u0447\u043a\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 5\u00d75.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fcf\/d3b\/d94\/fcfd3bd94514779d6e967770a1f216cb.png\"><\/div>\n<p>  \u041d\u0438 \u0443 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0435\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043d\u0430\u0434 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0435\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0441\u0440\u0430\u0437\u0443 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0438\u0434\u043d\u044b \u0438\u0433\u0440\u043e\u043a\u0443. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u0438\u0433\u0440\u043e\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0451\u0442 \u0444\u0438\u0433\u0443\u0440\u0443, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043e\u043d\u0430 \u0443\u0441\u043f\u0435\u0435\u0442 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f, \u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u0431\u0443\u0434\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u043a\u0440\u044b\u0442\u0430 \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f.<\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u0438\u0433\u0440\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043a\u0443\u0447\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u041d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u0430\u043a. \u0418\u0433\u0440\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0444\u0438\u0433\u0443\u0440\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e. \u0424\u0438\u0433\u0443\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0435\u0451 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u0438 \u0438\u0433\u0440\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f; \u043e\u0434\u043d\u0430\u043a\u043e \u0432 Nintendo Tetris \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u2014 \u044d\u0442\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0430\u044f\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f (\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0435\u0436\u0430\u0449\u0435\u0439), \u043d\u0430 \u043f\u043e\u043b\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u043e\u0442 \u043d\u0443\u043b\u044f \u0438 \u0431\u043e\u043b\u044c\u0448\u0435. \u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0447\u0438\u0449\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438. \u041d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0433\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0442\u0441\u0435\u043a\u0430\u044f \u0432\u0435\u0440\u0445\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0444\u0438\u0433\u0443\u0440.<\/p>\n<p>  \u0412\u0438\u0434\u0438\u043c\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f 20\u00d710 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$0400<\/code> \u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u043e\u043d\u043e\u0432\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430. \u041f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u0435\u0442\u043a\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u0439\u043b\u043e\u043c <code>$EF<\/code>, \u0441\u043f\u043b\u043e\u0448\u043d\u044b\u043c \u0447\u0451\u0440\u043d\u044b\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c.<\/p>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0440\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u0438\u0441\u043a\u0430. \u041f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9956<\/code> \u0434\u0430\u0451\u0442 \u043d\u0430\u043c ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u0438\u043f\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e.<\/p>\n<p>  <code>9956: 02 02 02 02 ; Td<br \/>  995A: 07 07 07 07 ; Jd<br \/>  995E: 08 08 ; Zh<br \/>  9960: 0A ; O<br \/>  9961: 0B 0B ; Sh<br \/>  9963: 0E 0E 0E 0E ; Ld<br \/>  9967: 12 12 ; Ih<\/code><\/p>\n<p>  \u041f\u0440\u043e\u0449\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<table>\n<tr>\n<th><code>Tu<\/code><\/th>\n<th><code>Tr<\/code><\/th>\n<th><code>Td<\/code><\/th>\n<th><code>Tl<\/code><\/th>\n<th><code>Jl<\/code><\/th>\n<th><code>Ju<\/code><\/th>\n<th><code>Jr<\/code><\/th>\n<th><code>Jd<\/code><\/th>\n<th><code>Zh<\/code><\/th>\n<th><code>Zv<\/code><\/th>\n<th><code>O<\/code><\/th>\n<th><code>Sh<\/code><\/th>\n<th><code>Sv<\/code><\/th>\n<th><code>Lr<\/code><\/th>\n<th><code>Ld<\/code><\/th>\n<th><code>Ll<\/code><\/th>\n<th><code>Lu<\/code><\/th>\n<th><code>Iv<\/code><\/th>\n<th><code>Ih<\/code><\/th>\n<\/tr>\n<tr>\n<td><code>Td<\/code><\/td>\n<td><code>Td<\/code><\/td>\n<td><code>Td<\/code><\/td>\n<td><code>Td<\/code><\/td>\n<td><code>Jd<\/code><\/td>\n<td><code>Jd<\/code><\/td>\n<td><code>Jd<\/code><\/td>\n<td><code>Jd<\/code><\/td>\n<td><code>Zh<\/code><\/td>\n<td><code>Zh<\/code><\/td>\n<td><code>O<\/code><\/td>\n<td><code>Sh<\/code><\/td>\n<td><code>Sh<\/code><\/td>\n<td><code>Ld<\/code><\/td>\n<td><code>Ld<\/code><\/td>\n<td><code>Ld<\/code><\/td>\n<td><code>Ld<\/code><\/td>\n<td><code>Ih<\/code><\/td>\n<td><code>Ih<\/code><\/td>\n<\/tr>\n<\/table>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 J \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a <code>Jd<\/code>.<\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$993B<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0438\u043f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<p>  <code>993B: 00 00 00 00 ; T<br \/>  993F: 01 01 01 01 ; J<br \/>  9943: 02 02 ; Z<br \/>  9945: 03 ; O<br \/>  9946: 04 04 ; S<br \/>  9948: 05 05 05 05 ; L<br \/>  994C: 06 06 ; I<\/code><\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u0432\u0441\u0451 \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435.<\/p>\n<table>\n<tr>\n<th><code>Tu<\/code><\/th>\n<th><code>Tr<\/code><\/th>\n<th><code>Td<\/code><\/th>\n<th><code>Tl<\/code><\/th>\n<th><code>Jl<\/code><\/th>\n<th><code>Ju<\/code><\/th>\n<th><code>Jr<\/code><\/th>\n<th><code>Jd<\/code><\/th>\n<th><code>Zh<\/code><\/th>\n<th><code>Zv<\/code><\/th>\n<th><code>O<\/code><\/th>\n<th><code>Sh<\/code><\/th>\n<th><code>Sv<\/code><\/th>\n<th><code>Lr<\/code><\/th>\n<th><code>Ld<\/code><\/th>\n<th><code>Ll<\/code><\/th>\n<th><code>Lu<\/code><\/th>\n<th><code>Iv<\/code><\/th>\n<th><code>Ih<\/code><\/th>\n<\/tr>\n<tr>\n<td><code>T<\/code><\/td>\n<td><code>T<\/code><\/td>\n<td><code>T<\/code><\/td>\n<td><code>T<\/code><\/td>\n<td><code>J<\/code><\/td>\n<td><code>J<\/code><\/td>\n<td><code>J<\/code><\/td>\n<td><code>J<\/code><\/td>\n<td><code>Z<\/code><\/td>\n<td><code>Z<\/code><\/td>\n<td><code>O<\/code><\/td>\n<td><code>S<\/code><\/td>\n<td><code>S<\/code><\/td>\n<td><code>L<\/code><\/td>\n<td><code>L<\/code><\/td>\n<td><code>L<\/code><\/td>\n<td><code>L<\/code><\/td>\n<td><code>I<\/code><\/td>\n<td><code>I<\/code><\/td>\n<\/tr>\n<\/table>\n<p>  \u0422\u0440\u0435\u0442\u044c\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<h3>\u0412\u044b\u0431\u043e\u0440 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  \u0412 Nintendo Tetris \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0447\u0438\u0441\u0435\u043b (PRNG) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 16-\u0431\u0438\u0442\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0_%D1%81_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B9_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B9_%D1%81%D0%B2%D1%8F%D0%B7%D1%8C%D1%8E\">\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0434\u0432\u0438\u0433\u0430 \u0441 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u044c\u044e<\/a> (linear feedback shift register, LFSR) \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438. 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a big-endian \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c <code>$0017<\/code>\u2013<code>$0018<\/code>. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 Seed \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <code>$8988<\/code>.<\/p>\n<p>  <code>80BC: LDX #$89<br \/>  80BE: STX $0017 <br \/>  80C0: DEX<br \/>  80C1: STX $0018<\/code><\/p>\n<p>  \u041a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a 17-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0439 \u0431\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c XOR \u0434\u043b\u044f \u0431\u0438\u0442\u043e\u0432 1 \u0438 9. \u0417\u0430\u0442\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0432\u043f\u0440\u0430\u0432\u043e, \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044f \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0439 \u0431\u0438\u0442.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3a0\/45d\/3f2\/3a045d3f2d64a94aa272aa15f351ac7a.png\"><\/div>\n<p>  \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$AB47<\/code>.<\/p>\n<p>  <code>AB47: LDA $00,X<br \/>  AB49: AND #$02<br \/>  AB4B: STA $0000 ; extract bit 1<\/p>\n<p>  AB4D: LDA $01,X<br \/>  AB4F: AND #$02 ; extract bit 9<\/p>\n<p>  AB51: EOR $0000<br \/>  AB53: CLC<br \/>  AB54: BEQ $AB57 <br \/>  AB56: SEC ; XOR bits 1 and 9 together<\/p>\n<p>  AB57: ROR $00,X <br \/>  AB59: INX <br \/>  AB5A: DEY ; right shift<br \/>  AB5B: BNE $AB57 ; shifting in the XORed value<\/p>\n<p>  AB5D: RTS ; return<\/code><\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u043e\u0433\u043b\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0441\u0434\u0432\u0438\u0433\u0430 \u0438 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0435 \u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u0432\u0441\u044e\u0434\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0438\u0434\u043e\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0435\u0433\u043e \u043d\u0430 Java.<\/p>\n<pre><code class=\"java\">int generateNextPseudorandomNumber(int value) {   int bit1 = (value &gt;&gt; 1) &amp; 1;   int bit9 = (value &gt;&gt; 9) &amp; 1;   int leftmostBit = bit1 ^ bit9;   return (leftmostBit &lt;&lt; 15) | (value &gt;&gt; 1); }<\/code><\/pre>\n<p>  \u0418 \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0430\u0442\u044c \u0434\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<pre><code class=\"java\">int generateNextPseudorandomNumber(int value) {   return ((((value &gt;&gt; 9) &amp; 1) ^ ((value &gt;&gt; 1) &amp; 1)) &lt;&lt; 15) | (value &gt;&gt; 1); }<\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 PRNG \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e \u0438 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 32 767 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0446\u0438\u043a\u043b \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e seed. \u042d\u0442\u043e \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0438 \u043b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044d\u0442\u043e\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 seed. \u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0447\u0438\u0441\u043b\u0443 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442 \u043a \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u043b\u0435\u0439.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e PRNG, \u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0441 <a href=\"http:\/\/www.random.org\/analysis\/\">RANDOM.ORG<\/a>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/254\/477\/bef\/254477befbd14f540925a6d3169e5179.png\"><\/div>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f PRNG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0430 \u043d\u0435 16-\u0431\u0438\u0442\u043d\u044b\u0445 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0438\u0442\u0430 0. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 128\u00d7256, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0434\u0432\u0430 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0435 \u043f\u043e\u043b\u043e\u0441\u044b \u043f\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0438 \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c, \u043e\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439. \u041d\u0435 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 PRNG \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u043d\u0435 \u0440\u0435\u0436\u0435, \u0447\u0435\u043c \u0440\u0430\u0437 \u0432 \u043a\u0430\u0434\u0440. \u042d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u043c\u0435\u043d\u044e, \u043d\u043e \u0438 \u043f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043c\u0435\u0436\u0434\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u0430\u0434\u0440\u043e\u0432, \u0443\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0443 \u0438\u0433\u0440\u043e\u043a\u0430 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0449\u0430\u044f\u0441\u044f \u0441\u043b\u0435\u0434\u043e\u043c \u0444\u0438\u0433\u0443\u0440\u0430. \u041f\u043e \u0441\u0443\u0442\u0438, \u0438\u0433\u0440\u0430 \u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0441 \u043d\u0435\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0434 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9907<\/code>, \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439 \u0442\u0438\u043f \u043d\u043e\u0432\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>  <code>9907: INC $001A ; spawnCount++;<\/p>\n<p>  9909: LDA $0017 ; index = high byte of randomValue;<\/p>\n<p>  990B: CLC<br \/>  990C: ADC $001A ; index += spawnCount;<\/p>\n<p>  990E: AND #$07 ; index &amp;= 7;<\/p>\n<p>  9910: CMP #$07 ; if (index == 7) {<br \/>  9912: BEQ $991C ; goto invalidIndex;<br \/>   ; }<\/p>\n<p>  9914: TAX <br \/>  9915: LDA $994E,X ; newSpawnID = spawnTable[index];<\/p>\n<p>  9918: CMP $0019 ; if (newSpawnID != spawnID) {<br \/>  991A: BNE $9938 ; goto useNewSpawnID;<br \/>   ; }<\/p>\n<p>  invalidIndex:<\/p>\n<p>  991C: LDX #$17<br \/>  991E: LDY #$02<br \/>  9920: JSR $AB47 ; randomValue = generateNextPseudorandomNumber(randomValue);<\/p>\n<p>  9923: LDA $0017 ; index = high byte of randomValue;<\/p>\n<p>  9925: AND #$07 ; index &amp;= 7;<\/p>\n<p>  9927: CLC<br \/>  9928: ADC $0019 ; index += spawnID;<\/p>\n<p>  992A: CMP #$07<br \/>  992C: BCC $9934<br \/>  992E: SEC<br \/>  992F: SBC #$07<br \/>  9931: JMP $992A ; index %= 7;<\/p>\n<p>  9934: TAX<br \/>  9935: LDA $994E,X ; newSpawnID = spawnTable[index];<\/p>\n<p>  useNewSpawnID:<\/p>\n<p>  9938: STA $0019 ; spawnID = newSpawnID;<\/p>\n<p>  993A: RTS ; return;<\/code><\/p>\n<p>  \u041f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$001A<\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0438\u0433\u0443\u0440, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f. \u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0441\u0447\u0451\u0442\u0447\u0438\u043a, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 256 \u0444\u0438\u0433\u0443\u0440 \u043e\u043d \u0441\u043d\u043e\u0432\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u043d\u0443\u043b\u044e. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u0435\u0436\u0434\u0443 \u0438\u0433\u0440\u0430\u043c\u0438 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u043d\u0435 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0438\u0433\u0440 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b. \u042d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0433\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u0433\u0440\u043e\u043a\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u041f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0439 \u0431\u0430\u0439\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 (<code>$0017<\/code>) \u0432 \u0442\u0438\u043f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$994E<\/code> \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u0432 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>  <code>994E: 02 ; Td<br \/>  994F: 07 ; Jd<br \/>  9950: 08 ; Zh<br \/>  9951: 0A ; O<br \/>  9952: 0B ; Sh<br \/>  9953: 0E ; Ld<br \/>  9954: 12 ; Ih<\/code><\/p>\n<p>  \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0432\u0435\u0440\u0445\u043d\u0435\u043c\u0443 \u0431\u0430\u0439\u0442\u0443 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440. \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0438\u0436\u043d\u0438\u0445 3 \u0431\u0438\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u0440\u0430\u0432\u0435\u043d 7, \u0442\u043e \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430, \u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u043d\u0438\u0445 3 \u0431\u0438\u0442\u043e\u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440.<\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c, \u044d\u0442\u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c 7, \u043f\u043e\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 7. \u0414\u0435\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0441\u0443\u043c\u043c\u0435 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0441 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0441\u043a\u043e\u0439 \u0438 \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0440\u0430\u0432\u043d\u043e 25. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0435\u0451 \u0434\u043e \u043e\u0441\u0442\u0430\u0442\u043a\u0430 4 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e 3 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0433\u0440\u044b ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b (<code>$0019<\/code>) \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>Tu<\/code> (<code>$00<\/code>). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9928<\/code> \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>  \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0441\u0443\u043c\u043c\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b, \u0430 \u043d\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0442\u0438\u043f\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043d\u0435 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e. \u042d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435:<\/p>\n<table>\n<tr>\n<th>$00<\/th>\n<th><code>$02<\/code><\/th>\n<th><code>$07<\/code><\/th>\n<th><code>$08<\/code><\/th>\n<th><code>$0A<\/code><\/th>\n<th><code>$0B<\/code><\/th>\n<th><code>$0E<\/code><\/th>\n<th><code>$12<\/code><\/th>\n<\/tr>\n<tr>\n<th>0<\/th>\n<td>2<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>0<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<th>1<\/th>\n<td>3<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>4<\/td>\n<td>5<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<th>2<\/th>\n<td>4<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>2<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<th>3<\/th>\n<td>5<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>0<\/td>\n<td>3<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<th>4<\/th>\n<td>6<\/td>\n<td>4<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<th>5<\/th>\n<td>0<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>5<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<th>6<\/th>\n<td>1<\/td>\n<td>6<\/td>\n<td>0<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>6<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<th>7<\/th>\n<td>2<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>0<\/td>\n<td>4<\/td>\n<\/tr>\n<\/table>\n<p>  \u0412 \u043a\u0430\u0436\u0434\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0442\u0438\u043f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b (\u0441\u0442\u043e\u043b\u0431\u0446\u0430) \u043a 3-\u0431\u0438\u0442\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e (\u0441\u0442\u0440\u043e\u043a\u0435), \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043a \u0441\u0443\u043c\u043c\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u043e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 7. \u0412 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <code>$07<\/code> and <code>$0E<\/code> \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 7, \u0430 <code>$0B<\/code> \u0438 <code>$12<\/code> \u0438\u043c\u0435\u044e\u0442 \u043e\u0431\u0449\u0438\u0439 \u043e\u0441\u0442\u0430\u0442\u043e\u043a. \u0421\u0442\u0440\u043e\u043a\u0438 0 \u0438 7 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438 7.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 56 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439, \u0438 \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0442\u0438\u043f\u044b \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0438\u043f \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0440\u043e\u0432\u043d\u043e 8 \u0440\u0430\u0437. \u041d\u043e \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<table>\n<tr>\n<th>\u0422\u0438\u043f<\/th>\n<th>\u0427\u0430\u0441\u0442\u043e\u0442\u0430<\/th>\n<\/tr>\n<tr>\n<td>T<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>J<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>Z<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>O<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>S<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>L<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>I<\/td>\n<td>7<\/td>\n<\/tr>\n<\/table>\n<p>  T \u0438 S \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0449\u0435, \u0430 L \u0438 I \u2014 \u0440\u0435\u0436\u0435. \u041d\u043e \u043a\u043e\u0434 \u0441 \u043f\u0435\u0440\u0435\u043a\u043e\u0441\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e PRNG \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0435 \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u0435, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0442\u043e, \u043a\u0430\u043a \u0438\u0433\u0440\u0430 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438\u0433\u0440\u043e\u043a\u0430. \u041f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$990C<\/code> \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043c\u0430\u0441\u043a\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$990E<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 8 \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u043e\u0436\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9910<\/code> \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a <code>invalidIndex<\/code> \u0432 1\/8 \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432. \u0410 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9918<\/code>, \u0433\u0434\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u043e\u0439, \u0440\u0430\u0432\u043d\u0430 7\/8, \u043f\u0440\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0432 1\/7. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c <code>7\/8 \u00d7 1\/7 = 1\/8<\/code> \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432 <code>invalidIndex<\/code>. \u0412 \u0446\u0435\u043b\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c 25% \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0441 \u043f\u0435\u0440\u0435\u043a\u043e\u0441\u043e\u043c \u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c 75% \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430, \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0449\u0435\u0433\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e.<\/p>\n<p>  \u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u0438\u0437 224 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e 32 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u041d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043a\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435:<\/p>\n<table>\n<tr>\n<th>\u0422\u0438\u043f<\/th>\n<th>\u0427\u0430\u0441\u0442\u043e\u0442\u0430<\/th>\n<\/tr>\n<tr>\n<td>T<\/td>\n<td>33<\/td>\n<\/tr>\n<tr>\n<td>J<\/td>\n<td>32<\/td>\n<\/tr>\n<tr>\n<td>Z<\/td>\n<td>32<\/td>\n<\/tr>\n<tr>\n<td>O<\/td>\n<td>32<\/td>\n<\/tr>\n<tr>\n<td>S<\/td>\n<td>33<\/td>\n<\/tr>\n<tr>\n<td>L<\/td>\n<td>31<\/td>\n<\/tr>\n<tr>\n<td>I<\/td>\n<td>31<\/td>\n<\/tr>\n<\/table>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u0438\u0432 90 \u0441\u0442\u0440\u043e\u043a \u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0432 \u0443\u0440\u043e\u0432\u043d\u044f 9, \u0438\u0433\u0440\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043d\u0430 \u043e\u0434\u043d\u0443 \u043b\u0438\u0448\u043d\u044e\u044e T \u0438 S \u0438 \u043d\u0430 \u043e\u0434\u043d\u0443 \u043c\u0435\u043d\u044c\u0448\u0435 L \u0438 I, \u0447\u0435\u043c \u044d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p>  \u0422\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044f\u043c\u0438:<\/p>\n<table>\n<tr>\n<th>\u0422\u0438\u043f<\/th>\n<th>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c<\/th>\n<\/tr>\n<tr>\n<td>T<\/td>\n<td>14.73%<\/td>\n<\/tr>\n<tr>\n<td>J<\/td>\n<td>14.29%<\/td>\n<\/tr>\n<tr>\n<td>Z<\/td>\n<td>14.29%<\/td>\n<\/tr>\n<tr>\n<td>O<\/td>\n<td>14.29%<\/td>\n<\/tr>\n<tr>\n<td>S<\/td>\n<td>14.73%<\/td>\n<\/tr>\n<tr>\n<td>L<\/td>\n<td>13.84%<\/td>\n<\/tr>\n<tr>\n<td>I<\/td>\n<td>13.84%<\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0435, \u0432 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u00ab\u0434\u043b\u0438\u043d\u043d\u0430\u044f \u043f\u0430\u043b\u043a\u0430\u00bb I \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430, \u0435\u0441\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0434\u044b (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0434\u043b\u044f Nintendo Tetris).<\/p>\n<h3>\u0421\u0434\u0432\u0438\u0433 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  Nintendo Tetris \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0434\u0432\u0438\u0433 (Delayed Auto Shift, DAS). \u041d\u0430\u0436\u0430\u0442\u0438\u0435 \u043d\u0430 \u00ab\u0412\u043b\u0435\u0432\u043e\u00bb \u0438\u043b\u0438 \u00ab\u0412\u043f\u0440\u0430\u0432\u043e\u00bb \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430 \u043e\u0434\u043d\u0443 \u044f\u0447\u0435\u0439\u043a\u0443 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438. \u0412 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043d\u043e\u043f\u043e\u043a \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0433\u0440\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 6 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432 16 \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u0432\u0438\u0434 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0434\u043e\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$89AE<\/code>.<\/p>\n<p>  <code>89AE: LDA $0040 <br \/>  89B0: STA $00AE ; originalX = tetriminoX;<\/p>\n<p>  89B2: LDA $00B6 ; if (pressing down) { <br \/>  89B4: AND #$04 ; return;<br \/>  89B6: BNE $8A09 ; } <\/p>\n<p>  89B8: LDA $00B5 ; if (just pressed left\/right) {<br \/>  89BA: AND #$03 ; goto resetAutorepeatX;<br \/>  89BC: BNE $89D3 ; }<\/p>\n<p>  89BE: LDA $00B6 ; if (not pressing left\/right) {<br \/>  89C0: AND #$03 ; return; <br \/>  89C2: BEQ $8A09 ; }<\/p>\n<p>  89C4: INC $0046 ; autorepeatX++;<br \/>  89C6: LDA $0046 ; if (autorepeatX &lt; 16) {<br \/>  89C8: CMP #$10 ; return; <br \/>  89CA: BMI $8A09 ; }<\/p>\n<p>  89CC: LDA #$0A<br \/>  89CE: STA $0046 ; autorepeatX = 10;<br \/>  89D0: JMP $89D7 ; goto buttonHeldDown; <\/p>\n<p>  resetAutorepeatX:<\/p>\n<p>  89D3: LDA #$00<br \/>  89D5: STA $0046 ; autorepeatX = 0;<\/p>\n<p>  buttonHeldDown:<\/p>\n<p>  89D7: LDA $00B6 ; if (not pressing right) {<br \/>  89D9: AND #$01 ; goto notPressingRight;<br \/>  89DB: BEQ $89EC ; }<\/p>\n<p>  89DD: INC $0040 ; tetriminoX++;<br \/>  89DF: JSR $948B ; if (new position not valid) {<br \/>  89E2: BNE $8A01 ; goto restoreX;<br \/>   ; }<\/p>\n<p>  89E4: LDA #$03<br \/>  89E6: STA $06F1 ; play shift sound effect;<br \/>  89E9: JMP $8A09 ; return;<\/p>\n<p>  notPressingRight:<\/p>\n<p>  89EC: LDA $00B6 ; if (not pressing left) {<br \/>  89EE: AND #$02 ; return;<br \/>  89F0: BEQ $8A09 ; }<\/p>\n<p>  89F2: DEC $0040 ; tetriminoX--;<br \/>  89F4: JSR $948B ; if (new position not valid) {<br \/>  89F7: BNE $8A01 ; goto restoreX;<br \/>   ; }<\/p>\n<p>  89F9: LDA #$03<br \/>  89FB: STA $06F1 ; play shift sound effect;<br \/>  89FE: JMP $8A09 ; return;<\/p>\n<p>  restoreX:<\/p>\n<p>  8A01: LDA $00AE <br \/>  8A03: STA $0040 ; tetriminoX = originalX;<\/p>\n<p>  8A05: LDA #$10 <br \/>  8A07: STA $0046 ; autorepeatX = 16;<\/p>\n<p>  8A09: RTS ; return;<\/code><\/p>\n<p>  \u041a\u0430\u043a \u0438 \u0432 \u043a\u043e\u0434\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <code>x<\/code> \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u043d\u043e\u0432\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439.<\/p>\n<p>  \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043c\u0435\u0448\u0430\u0435\u0442 \u0441\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443, \u043f\u043e\u043a\u0430 \u0438\u0433\u0440\u043e\u043a \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442 \u00ab\u0412\u043d\u0438\u0437\u00bb.<\/p>\n<h3>\u0411\u0440\u043e\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u2014 \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442 \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u044f. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u043d\u0430 \u0441\u043f\u0443\u0441\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$898E<\/code>. \u0422\u0430\u043a \u043a\u0430\u043a NES \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 60,0988 \u043a\u0430\u0434\u0440\u043e\u0432\/\u0441, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u0441\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.<\/p>\n<table>\n<tr>\n<th>\u0423\u0440\u043e\u0432\u0435\u043d\u044c<\/th>\n<th>\u041a\u0430\u0434\u0440\u043e\u0432 \u043d\u0430 \u0441\u043f\u0443\u0441\u043a<\/th>\n<th>\u041f\u0435\u0440\u0438\u043e\u0434 (\u0441\/\u0441\u043f\u0443\u0441\u043a)<\/th>\n<th>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c (\u044f\u0447\u0435\u0435\u043a\/\u0441)<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>48<\/td>\n<td>.799<\/td>\n<td>1.25<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>43<\/td>\n<td>.715<\/td>\n<td>1.40<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>38<\/td>\n<td>.632<\/td>\n<td>1.58<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>33<\/td>\n<td>.549<\/td>\n<td>1.82<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>28<\/td>\n<td>.466<\/td>\n<td>2.15<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>23<\/td>\n<td>.383<\/td>\n<td>2.61<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>18<\/td>\n<td>.300<\/td>\n<td>3.34<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>13<\/td>\n<td>.216<\/td>\n<td>4.62<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>8<\/td>\n<td>.133<\/td>\n<td>7.51<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>6<\/td>\n<td>.100<\/td>\n<td>10.02<\/td>\n<\/tr>\n<tr>\n<td>10\u201312<\/td>\n<td>5<\/td>\n<td>.083<\/td>\n<td>12.02<\/td>\n<\/tr>\n<tr>\n<td>13\u201315<\/td>\n<td>4<\/td>\n<td>.067<\/td>\n<td>15.05<\/td>\n<\/tr>\n<tr>\n<td>16\u201318<\/td>\n<td>3<\/td>\n<td>.050<\/td>\n<td>20.03<\/td>\n<\/tr>\n<tr>\n<td>19\u201328<\/td>\n<td>2<\/td>\n<td>.033<\/td>\n<td>30.05<\/td>\n<\/tr>\n<tr>\n<td>29+<\/td>\n<td>1<\/td>\n<td>.017<\/td>\n<td>60.10<\/td>\n<\/tr>\n<\/table>\n<p>  \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u0441\u0435\u0433\u043e 30 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041f\u043e\u0441\u043b\u0435 \u0443\u0440\u043e\u0432\u043d\u044f 29 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u043e\u0432 \u043d\u0430 \u0441\u043f\u0443\u0441\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u043e 1.<\/p>\n<p>  \u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u0430\u0434\u0440\u043e\u0432 \u043d\u0430 \u0441\u043f\u0443\u0441\u043a \u2014 \u044d\u0442\u043e \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043d\u0438\u0436\u0435, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0442\u0451\u0442 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c 29 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c 28.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ddd\/18c\/a29\/ddd18ca2950f9055bd5f82108a4d3ddc.png\"><\/div>\n<p>  \u041f\u0440\u0438 1 \u043a\u0430\u0434\u0440\u0435\/\u0441\u043f\u0443\u0441\u043a \u0443 \u0438\u0433\u0440\u043e\u043a\u0430 \u0435\u0441\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 1\/3 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043e\u043d\u0430 \u043d\u0430\u0447\u043d\u0451\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f. \u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u043f\u0443\u0441\u043a\u0430 DAS \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044c \u043a\u0440\u0430\u0451\u0432 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0434\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043b\u044e\u0434\u0435\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0433\u0440\u043e\u043a\u0430\u043c, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Thor_Aackerlund\">\u0422\u043e\u0440\u0443 \u0410\u043a\u0435\u0440\u043b\u0443\u043d\u0434\u0443<\/a>, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c DAS \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0432\u0438\u0431\u0440\u0430\u0446\u0438\u0435\u0439 \u043a\u043d\u043e\u043f\u043e\u043a \u043a\u0440\u0435\u0441\u0442\u043e\u0432\u0438\u043d\u044b (<code>D-pad<\/code>). \u0412 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043a\u043e\u0434\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0434\u0440, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u044f\u0445 29 \u0438 \u0432\u044b\u0448\u0435 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439. \u042d\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c, \u043d\u043e \u043b\u044e\u0431\u0430\u044f \u0432\u0438\u0431\u0440\u0430\u0446\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u0430\u043b\u044c\u0446\u0430 \u0432\u044b\u0448\u0435 3,75 \u043d\u0430\u0436\u0430\u0442\u0438\u0439\/\u0441 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 16 \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u0438\u0433\u0440\u043e\u043a\u043e\u043c \u0441\u043f\u0443\u0441\u043a (\u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u00ab\u0412\u043d\u0438\u0437\u00bb) \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u0430\u0434\u0440\u0435, \u044d\u0444\u0444\u0435\u043a\u0442 \u043d\u0435 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u041b\u044e\u0431\u043e\u0439 \u0438\u043b\u0438 \u043e\u0431\u0430 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0444\u0438\u0433\u0443\u0440\u0443 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0432\u043d\u0438\u0437 \u0432 \u044d\u0442\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u043e\u0434\u043d\u0443 \u044f\u0447\u0435\u0439\u043a\u0443.<\/p>\n<p>  \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u0441\u043f\u0443\u0441\u043a \u043b\u043e\u0433\u0438\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$8914<\/code>.<\/p>\n<p>  <code>8914: LDA $004E ; if (autorepeatY &gt; 0) {<br \/>  8916: BPL $8922 ; goto autorepeating;<br \/>   ; } else if (autorepeatY == 0) {<br \/>   ; goto playing;<br \/>   ; }<\/p>\n<p>  ; game just started<br \/>   ; initial Tetrimino hanging at spawn point <\/p>\n<p>  8918: LDA $00B5 ; if (not just pressed down) { <br \/>  891A: AND #$04 ; goto incrementAutorepeatY;<br \/>  891C: BEQ $8989 ; }<\/p>\n<p>  ; player just pressed down ending startup delay<\/p>\n<p>  891E: LDA #$00 <br \/>  8920: STA $004E ; autorepeatY = 0;<br \/>  8922: BNE $8939 <\/p>\n<p>  playing:<\/p>\n<p>  8924: LDA $00B6 ; if (left or right pressed) {<br \/>  8926: AND #$03 ; goto lookupDropSpeed;<br \/>  8928: BNE $8973 ; }<\/p>\n<p>  ; left\/right not pressed<\/p>\n<p>  892A: LDA $00B5 <br \/>  892C: AND #$0F ; if (not just pressed only down) {<br \/>  892E: CMP #$04 ; goto lookupDropSpeed;<br \/>  8930: BNE $8973 ; }<\/p>\n<p>  ; player exclusively just presssed down<\/p>\n<p>  8932: LDA #$01<br \/>  8934: STA $004E ; autorepeatY = 1;<\/p>\n<p>  8936: JMP $8973 ; goto lookupDropSpeed;<\/p>\n<p>  autorepeating:<\/p>\n<p>  8939: LDA $00B6 <br \/>  893B: AND #$0F ; if (down pressed and not left\/right) {<br \/>  893D: CMP #$04 ; goto downPressed;<br \/>  893F: BEQ $894A ; } <\/p>\n<p>  ; down released<\/p>\n<p>  8941: LDA #$00 <br \/>  8943: STA $004E ; autorepeatY = 0<br \/>  8945: STA $004F ; holdDownPoints = 0<br \/>  8947: JMP $8973 ; goto lookupDropSpeed;<\/p>\n<p>  downPressed:<\/p>\n<p>  894A: INC $004E ; autorepeatY++;<br \/>  894C: LDA $004E<br \/>  894E: CMP #$03 ; if (autorepeatY &lt; 3) {<br \/>  8950: BCC $8973 ; goto lookupDropSpeed;<br \/>   ; }<\/p>\n<p>  8952: LDA #$01 <br \/>  8954: STA $004E ; autorepeatY = 1;<\/p>\n<p>  8956: INC $004F ; holdDownPoints++;<\/p>\n<p>  drop:<\/p>\n<p>  8958: LDA #$00 <br \/>  895A: STA $0045 ; fallTimer = 0;<\/p>\n<p>  895C: LDA $0041 <br \/>  895E: STA $00AE ; originalY = tetriminoY;<\/p>\n<p>  8960: INC $0041 ; tetriminoY++;<br \/>  8962: JSR $948B ; if (new position valid) {<br \/>  8965: BEQ $8972 ; return;<br \/>   ; }<\/p>\n<p>  ; the piece is locked<\/p>\n<p>  8967: LDA $00AE <br \/>  8969: STA $0041 ; tetriminoY = originalY;<\/p>\n<p>  896B: LDA #$02 <br \/>  896D: STA $0048 ; playState = UPDATE_PLAYFIELD;<br \/>  896F: JSR $9CAF ; updatePlayfield();<\/p>\n<p>  8972: RTS ; return;<\/p>\n<p>  lookupDropSpeed:<\/p>\n<p>  8973: LDA #$01 ; tempSpeed = 1;<\/p>\n<p>  8975: LDX $0044 ; if (level &gt;= 29) {<br \/>  8977: CPX #$1D ; goto noTableLookup;<br \/>  8979: BCS $897E ; }<\/p>\n<p>  897B: LDA $898E,X ; tempSpeed = framesPerDropTable[level];<\/p>\n<p>  noTableLookup:<\/p>\n<p>  897E: STA $00AF ; dropSpeed = tempSpeed;<\/p>\n<p>  8980: LDA $0045 ; if (fallTimer &gt;= dropSpeed) {<br \/>  8982: CMP $00AF ; goto drop;<br \/>  8984: BPL $8958 ; }<\/p>\n<p>  8986: JMP $8972 ; return;<\/p>\n<p>  incrementAutorepeatY:<\/p>\n<p>  8989: INC $004E ; autorepeatY++;<br \/>  898B: JMP $8972 ; return;<\/code><\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043a\u0430\u0434\u0440\u043e\u0432 \u043d\u0430 \u0441\u043f\u0443\u0441\u043a \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0434 \u043c\u0435\u0442\u043a\u043e\u0439 <code>lookupDropSpeed<\/code>. \u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 29 \u0438 \u0432\u044b\u0448\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0432\u043d\u0430 1 \u0441\u043f\u0443\u0441\u043a\u0443\/\u043a\u0430\u0434\u0440.<\/p>\n<p>  <code>fallTimer<\/code> (\u0430\u0434\u0440\u0435\u0441 <code>$0045<\/code>) \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u043f\u0443\u0441\u043a, \u043a\u043e\u0433\u0434\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 <code>dropSpeed<\/code> (<code>$00AF<\/code>). \u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 <code>fallTimer<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$8892<\/code> \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u0434\u0430. \u041f\u0440\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c \u0441\u043f\u0443\u0441\u043a\u0435 \u043e\u043d \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>autorepeatY<\/code> (<code>$004E<\/code>) \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>$0A<\/code> (\u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$8739<\/code>), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u221296. \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443. \u0421\u0430\u043c\u043e\u0435 \u043f\u0435\u0440\u0432\u043e\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0439 \u0432 \u0432\u043e\u0437\u0434\u0443\u0445\u0435 \u0432 \u0442\u043e\u0447\u043a\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u043f\u043e\u043a\u0430 <code>autorepeatY<\/code> \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u0441\u044f \u0434\u043e 0, \u0447\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 1,6 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u00ab\u0412\u043d\u0438\u0437\u00bb \u0432 \u044d\u0442\u043e\u0439 \u0444\u0430\u0437\u0435 <code>autorepeatY<\/code> \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f 0. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0438 \u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u0432 \u044d\u0442\u043e\u0439 \u0444\u0430\u0437\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438, \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u044f \u0435\u0451.<\/p>\n<p>  \u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 <code>autorepeatY<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0438 \u00ab\u0412\u043d\u0438\u0437\u00bb. \u041a\u043e\u0433\u0434\u0430 \u043e\u043d \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 3, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c \u0441\u043f\u0443\u0441\u043a (\u00ab\u043c\u044f\u0433\u043a\u0438\u0439\u00bb \u0441\u043f\u0443\u0441\u043a) \u0438 <code>autorepeatY<\/code> \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f 1. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043c\u044f\u0433\u043a\u043e\u043c\u0443 \u0441\u043f\u0443\u0441\u043a\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 3 \u043a\u0430\u0434\u0440\u0430, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u043e\u043d \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, <code>autorepeatY<\/code> \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 0 \u0434\u043e 1 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u0438\u0433\u0440\u0430 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0451\u0442, \u0447\u0442\u043e \u0438\u0433\u0440\u043e\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043d\u0430\u0436\u0430\u043b \u00ab\u0412\u043d\u0438\u0437\u00bb (\u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$00B5<\/code>), \u0430 \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0451\u0442 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u00ab\u0412\u043d\u0438\u0437\u00bb. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <code>autorepeatY<\/code> \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e (\u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$98E8<\/code>), \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0432\u0430\u0436\u043d\u0443\u044e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c: \u0435\u0441\u043b\u0438 \u0438\u0433\u0440\u043e\u043a \u0441\u0430\u043c \u0441\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u0443 \u0438 \u043e\u043d\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0430 \u043e\u043d \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c \u00ab\u0412\u043d\u0438\u0437\u00bb \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u044b, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445, \u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043c\u044f\u0433\u043a\u043e\u043c\u0443 \u0441\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b. \u0427\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b, \u0438\u0433\u0440\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u00ab\u0412\u043d\u0438\u0437\u00bb, \u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443.<\/p>\n<p>  \u041f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u044f\u0433\u043a\u0438\u0439 \u0441\u043f\u0443\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0447\u043a\u043e\u0432. <code>holdDownPoints<\/code> (<code>$004F<\/code>) \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043f\u0443\u0441\u043a\u0435, \u043d\u043e \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u00ab\u0412\u043d\u0438\u0437\u00bb \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043e\u0447\u043a\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0432 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043c\u044f\u0433\u043a\u0438\u043c \u0441\u043f\u0443\u0441\u043a\u043e\u043c. \u041a\u0440\u0430\u0442\u043a\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u044f\u0433\u043a\u0438\u0439 \u0441\u043f\u0443\u0441\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u0444\u0438\u0433\u0443\u0440\u044b, \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043e\u0447\u043a\u0438. \u0421\u0447\u0451\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9BFE<\/code>, \u0430 <code>holdDownPoints<\/code> \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0 \u0432\u0441\u043a\u043e\u0440\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9C2F<\/code>.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043c\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u0438\u0433\u0440\u043e\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043c\u044f\u0433\u043a\u0438\u0439 \u0441\u043f\u0443\u0441\u043a \u043f\u0440\u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0434\u0432\u0438\u0433\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043e\u0447\u043a\u043e\u0432. \u041e\u043d \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0445\u043e\u0434\u043e\u043c \u043f\u0435\u0440\u0435\u0434 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u00ab\u0412\u043d\u0438\u0437\u00bb.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u043a, <code>tetriminoY<\/code> (<code>$0041<\/code>) \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 <code>originalY<\/code> (<code>$00AE<\/code>). \u0415\u0441\u043b\u0438 \u043d\u043e\u0432\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u0430\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u043e\u043c <code>tetriminoY<\/code>, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 (\u0442\u043e \u0435\u0441\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0430 \u0438\u043b\u0438 \u043f\u0440\u043e\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0432\u043e\u0437\u044c \u043f\u043e\u043b \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0438\u043b\u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0436\u0435 \u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b), \u0442\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f <code>tetriminoY<\/code> \u0438 \u0444\u0438\u0433\u0443\u0440\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u0434\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e, \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044f\u0441\u044c \u0432 \u0432\u043e\u0437\u0434\u0443\u0445\u0435 \u043f\u0435\u0440\u0435\u0434 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439) \u0440\u0430\u0432\u043d\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0435 \u0441\u043f\u0443\u0441\u043a\u0430.<\/p>\n<p>  \u0416\u0451\u0441\u0442\u043a\u0438\u0439 \u0441\u043f\u0443\u0441\u043a (\u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b) \u0432 Nintendo Tetris \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0421\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>  \u0412 \u0431\u0443\u043a\u043b\u0435\u0442\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 Nintendo Tetris \u0435\u0441\u0442\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u044f:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f6f\/4bb\/647\/f6f4bb647937094d3d68fae530b0bfd4.png\"><\/div>\n<p>  \u0421\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0434\u0432\u0438\u0433\u0435 \u0432\u0434\u043e\u043b\u044c \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438\u043b\u0438 \u0432\u0434\u043e\u043b\u044c \u043f\u043e\u043b\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0441\u0443\u043d\u0443\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u043f\u043e\u0434 \u043d\u0430\u0432\u0438\u0441\u0430\u044e\u0449\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442. \u0421\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c, \u043f\u043e\u043a\u0430 \u0442\u0430\u0439\u043c\u0435\u0440 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u043f\u0443\u0441\u043a\u0430, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/efe\/9f5\/022\/efe9f502248d4185409fc20db3a47647.gif\"><\/div>\n<p>  \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0441\u0443\u043d\u0443\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430, \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c (\u0441\u043c. \u043d\u0438\u0436\u0435).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c53\/ca5\/350\/c53ca53509826b9f2c462c0290ffa9c9.gif\"><\/div>\n<p>  \u041a\u0430\u043a \u0438 \u0441\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438. \u041d\u043e \u043a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0433\u0440\u0430 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438. \u041f\u0435\u0440\u0435\u0434 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u0438\u043b\u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u043c \u0444\u0438\u0433\u0443\u0440\u044b \u0438\u0433\u0440\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432\u0441\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0443\u0441\u0442\u044b\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u0422\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u043d\u0435 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0443 \u0441\u043a\u0432\u043e\u0437\u044c \u0431\u043b\u0438\u0436\u043d\u0438\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438.<\/p>\n<p>  <code>948B: LDA $0041 <br \/>  948D: ASL <br \/>  948E: STA $00A8<br \/>  9490: ASL<br \/>  9491: ASL <br \/>  9492: CLC<br \/>  9493: ADC $00A8<br \/>  9495: ADC $0040<br \/>  9497: STA $00A8 <\/p>\n<p>  9499: LDA $0042 <br \/>  949B: ASL<br \/>  949C: ASL<br \/>  949D: STA $00A9<br \/>  949F: ASL <br \/>  94A0: CLC<br \/>  94A1: ADC $00A9 <br \/>  94A3: TAX ; index = 12 * orientationID;<br \/>  94A4: LDY #$00<\/p>\n<p>  94A6: LDA #$04<br \/>  94A8: STA $00AA ; for(i = 0; i &lt; 4; i++) {<\/p>\n<p>  94AA: LDA $8A9C,X ; squareY = orientationTable[index];<br \/>  94AD: CLC<br \/>  94AE: ADC $0041 ; cellY = squareY + tetriminoY; <br \/>  94B0: ADC #$02 ; if (cellY &lt; -2 || cellY &gt;= 20) {<br \/>  94B2: CMP #$16 ; return false;<br \/>  94B4: BCS $94E9 ; }<\/p>\n<p>  94B6: LDA $8A9C,X<br \/>  94B9: ASL<br \/>  94BA: STA $00AB<br \/>  94BC: ASL<br \/>  94BD: ASL<br \/>  94BE: CLC<br \/>  94BF: ADC $00AB<br \/>  94C1: CLC<br \/>  94C2: ADC $00A8<br \/>  94C4: STA $00AD <\/p>\n<p>  94C6: INX<br \/>  94C7: INX ; index += 2;<\/p>\n<p>  94C8: LDA $8A9C,X ; squareX = orientationTable[index];<br \/>  94CB: CLC<br \/>  94CC: ADC $00AD <br \/>  94CE: TAY ; cellX = squareX + tetriminoX;<br \/>  94CF: LDA ($B8),Y ; if (playfield[10 * cellY + cellX] != EMPTY_TILE) {<br \/>  94D1: CMP #$EF ; return false;<br \/>  94D3: BCC $94E9 ; }<\/p>\n<p>  94D5: LDA $8A9C,X<br \/>  94D8: CLC <br \/>  94D9: ADC $0040 ; if (cellX &lt; 0 || cellX &gt;= 10) { <br \/>  94DB: CMP #$0A ; return false;<br \/>  94DD: BCS $94E9 ; }<\/p>\n<p>  94DF: INX ; index++;<br \/>  94E0: DEC $00AA <br \/>  94E2: BNE $94AA ; }<\/p>\n<p>  94E4: LDA #$00 <br \/>  94E6: STA $00A8 <br \/>  94E8: RTS ; return true;<\/p>\n<p>  94E9: LDA #$FF <br \/>  94EB: STA $00A8 <br \/>  94ED: RTS<\/code><\/p>\n<p>  \u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e\u00bb, \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 12 \u0431\u0430\u0439\u0442\u043e\u0432; \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430 12. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u0432\u0441\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0434\u0432\u0438\u0433\u043e\u0432 \u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <code>index = (orientationID &lt;&lt; 3) + (orientationID &lt;&lt; 2); \/\/ index = 8 * orientationID + 4 * orientationID;<\/p>\n<p>  (cellY &lt;&lt; 3) + (cellY &lt;&lt; 1) \/\/ 8 * cellY + 2 * cellY<\/code><\/p>\n<p>  \u041a\u0430\u0436\u0434\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u0446\u0438\u043a\u043b\u0430 \u0441\u043c\u0435\u0449\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0432\u0443\u044e\u0449\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u044f\u0447\u0435\u0439\u043a\u0438 \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435. \u0417\u0430\u0442\u0435\u043c \u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u044f\u0447\u0435\u0439\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0433\u0440\u0430\u043d\u0438\u0446 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0438 \u0447\u0442\u043e \u0441\u0430\u043c\u0430 \u044f\u0447\u0435\u0439\u043a\u0430 \u043f\u0443\u0441\u0442\u0430.<\/p>\n<p>  \u0412 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<p>  <code>94AA: LDA $8A9C,X ; squareY = orientationTable[index];<br \/>  94AD: CLC<br \/>  94AE: ADC $0041 ; cellY = squareY + tetriminoY; <br \/>  94B0: ADC #$02 ; if (cellY + 2 &gt;= 22) {<br \/>  94B2: CMP #$16 ; return false;<br \/>  94B4: BCS $94E9 ; }<\/code><\/p>\n<p>  \u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u044f\u0447\u0435\u0439\u043a\u0430\u043c \u0432 \u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u043a\u043e\u0434 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0434\u0432\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0434 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435\u043c \u0437\u0430\u043a\u043e\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f. \u042d\u0442\u043e \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4\">\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435<\/a> \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438, \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0431\u043e\u043b\u044c\u0448\u0435 127. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u0435\u043d\u0447\u0435\u043d\u0438\u0435 <code>cellY<\/code> \u0440\u0430\u0432\u043d\u043e \u22122, \u0447\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a <code>$FE<\/code> (254 \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438). <\/p>\n<p>  \u0418\u043d\u0434\u0435\u043a\u0441 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430 <code>cellY<\/code>, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043d\u0430 10 \u0438 <code>cellX<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u043e\u0433\u0434\u0430 <code>cellY<\/code> \u0440\u0430\u0432\u0435\u043d \u22121 (<code>$FF<\/code> = 255) \u0438\u043b\u0438 \u22122 (<code>$FE<\/code> = 254), \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u221210 (<code>$F6<\/code> = 246) \u0438 \u221220 (<code>$EC<\/code> = 236). \u041d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435, <code>cellX<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 9, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 246 + 9 = 255, \u0430 \u044d\u0442\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0446\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u0433\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 <code>$0400<\/code>\u2013<code>$04FF<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>$EF<\/code> (\u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430), \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0435\u0449\u0451 56 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430.<\/p>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 <code>cellX<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0447\u0435\u0439\u043a\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041d\u043e \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0438\u0436\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  <code>94D5: LDA $8A9C,X<br \/>  94D8: CLC <br \/>  94D9: ADC $0040 ; if (cellX &gt;= 10) { <br \/>  94DB: CMP #$0A ; return false;<br \/>  94DD: BCS $94E9 ; }<\/code><\/p>\n<p>  \u041f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/45f\/c2d\/dc0\/45fc2ddc0d156d534aad4fd065b86aa4.gif\"><\/div>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/15f\/185\/0db\/15f1850dbfca0b491498e8d81ab03877.gif\"><\/div>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/08f\/74c\/c78\/08f74cc7825cd53d5a8002b8e33c4612.gif\"><\/div>\n<p>  \u0418\u0418 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0438\u043c\u0441\u044f \u0432 Nintendo Tetris, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0441\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435\u043c \u0441 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<h3>\u0423\u0440\u043e\u0432\u0435\u043d\u044c 30 \u0438 \u0432\u044b\u0448\u0435<\/h3>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0443\u0440\u043e\u0432\u043d\u044f 30 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u043b\u044c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/feb\/fee\/b1f\/febfeeb1faafda1a70f5da385c2276ac.png\"><\/div>\n<p>  \u041d\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c 31 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435\u0447\u0442\u043e \u0438\u043d\u043e\u0435:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/26e\/057\/20c\/26e05720ca15aa302a0b61e09498e5a0.png\"><\/div>\n<p>  \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$96B8<\/code>.<\/p>\n<p>  <code>96B8: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29<\/code><\/p>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u0430 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u0439\u043b\u044b \u0441 <code>$00<\/code> \u043f\u043e <code>$0F<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0433\u043b\u0438\u0444\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0441 <code>0<\/code> \u043f\u043e <code>F<\/code>. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0446\u0438\u0444\u0440\u044b \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u0432\u043e\u0438\u0447\u043d\u043e-\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 (binary-coded decimal, BCD); \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u0439\u043b\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e00\/97a\/713\/e0097a713f629afaf73936d3192820e3.png\"><\/div>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b \u0438\u0433\u0440\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438, \u0447\u0442\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0451\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c 29, \u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u0441\u0435\u0433\u043e 30 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0421\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0414\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 (\u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$0044<\/code>), \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0438\u0433\u0440\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u043e \u043e\u0431\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u0436\u0435 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<table>\n<tr>\n<th><code>00<\/code><\/th>\n<th><code>0<\/code><\/th>\n<th><code>1<\/code><\/th>\n<th><code>2<\/code><\/th>\n<th><code>3<\/code><\/th>\n<th><code>4<\/code><\/th>\n<th><code>5<\/code><\/th>\n<th><code>6<\/code><\/th>\n<th><code>7<\/code><\/th>\n<th><code>8<\/code><\/th>\n<th><code>9<\/code><\/th>\n<th><code>A<\/code><\/th>\n<th><code>B<\/code><\/th>\n<th><code>C<\/code><\/th>\n<th><code>D<\/code><\/th>\n<th><code>E<\/code><\/th>\n<th><code>F<\/code><\/th>\n<\/tr>\n<tr>\n<th><code>0<\/code><\/th>\n<td><code>00<\/code><\/td>\n<td><code>01<\/code><\/td>\n<td><code>02<\/code><\/td>\n<td><code>03<\/code><\/td>\n<td><code>04<\/code><\/td>\n<td><code>05<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>07<\/code><\/td>\n<td><code>08<\/code><\/td>\n<td><code>09<\/code><\/td>\n<td><code>10<\/code><\/td>\n<td><code>11<\/code><\/td>\n<td><code>12<\/code><\/td>\n<td><code>13<\/code><\/td>\n<td><code>14<\/code><\/td>\n<td><code>15<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>1<\/code><\/th>\n<td><code>16<\/code><\/td>\n<td><code>17<\/code><\/td>\n<td><code>18<\/code><\/td>\n<td><code>19<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>23<\/code><\/td>\n<td><code>24<\/code><\/td>\n<td><code>25<\/code><\/td>\n<td><code>26<\/code><\/td>\n<td><code>27<\/code><\/td>\n<td><code>28<\/code><\/td>\n<td><code>29<\/code><\/td>\n<td><code>00<\/code><\/td>\n<td><code>0A<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>2<\/code><\/th>\n<td><code>14<\/code><\/td>\n<td><code>1E<\/code><\/td>\n<td><code>28<\/code><\/td>\n<td><code>32<\/code><\/td>\n<td><code>3C<\/code><\/td>\n<td><code>46<\/code><\/td>\n<td><code>50<\/code><\/td>\n<td><code>5A<\/code><\/td>\n<td><code>64<\/code><\/td>\n<td><code>6E<\/code><\/td>\n<td><code>78<\/code><\/td>\n<td><code>82<\/code><\/td>\n<td><code>8C<\/code><\/td>\n<td><code>96<\/code><\/td>\n<td><code>A0<\/code><\/td>\n<td><code>AA<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>3<\/code><\/th>\n<td><code>B4<\/code><\/td>\n<td><code>BE<\/code><\/td>\n<td><code>C6<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>E6<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>26<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>46<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>66<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>86<\/code><\/td>\n<td><code>21<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>4<\/code><\/th>\n<td><code>A6<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>C6<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>E6<\/code><\/td>\n<td><code>21<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>26<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>46<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>66<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>86<\/code><\/td>\n<td><code>22<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>5<\/code><\/th>\n<td><code>A6<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>C6<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>E6<\/code><\/td>\n<td><code>22<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>23<\/code><\/td>\n<td><code>26<\/code><\/td>\n<td><code>23<\/code><\/td>\n<td><code>85<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>29<\/code><\/td>\n<td><code>F0<\/code><\/td>\n<td><code>4A<\/code><\/td>\n<td><code>4A<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>6<\/code><\/th>\n<td><code>4A<\/code><\/td>\n<td><code>4A<\/code><\/td>\n<td><code>8D<\/code><\/td>\n<td><code>07<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>29<\/code><\/td>\n<td><code>0F<\/code><\/td>\n<td><code>8D<\/code><\/td>\n<td><code>07<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>60<\/code><\/td>\n<td><code>A6<\/code><\/td>\n<td><code>49<\/code><\/td>\n<td><code>E0<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>7<\/code><\/th>\n<td><code>15<\/code><\/td>\n<td><code>10<\/code><\/td>\n<td><code>53<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>D6<\/code><\/td>\n<td><code>96<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>8A<\/code><\/td>\n<td><code>0A<\/code><\/td>\n<td><code>AA<\/code><\/td>\n<td><code>E8<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>EA<\/code><\/td>\n<td><code>96<\/code><\/td>\n<td><code>8D<\/code><\/td>\n<td><code>06<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>8<\/code><\/th>\n<td><code>20<\/code><\/td>\n<td><code>CA<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>BE<\/code><\/td>\n<td><code>C9<\/code><\/td>\n<td><code>01<\/code><\/td>\n<td><code>F0<\/code><\/td>\n<td><code>1E<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>B9<\/code><\/td>\n<td><code>C9<\/code><\/td>\n<td><code>05<\/code><\/td>\n<td><code>F0<\/code><\/td>\n<td><code>0C<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>EA<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>9<\/code><\/th>\n<td><code>96<\/code><\/td>\n<td><code>38<\/code><\/td>\n<td><code>E9<\/code><\/td>\n<td><code>02<\/code><\/td>\n<td><code>8D<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>4C<\/code><\/td>\n<td><code>67<\/code><\/td>\n<td><code>97<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>EA<\/code><\/td>\n<td><code>96<\/code><\/td>\n<td><code>18<\/code><\/td>\n<td><code>69<\/code><\/td>\n<td><code>0C<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>A<\/code><\/th>\n<td><code>8D<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>4C<\/code><\/td>\n<td><code>67<\/code><\/td>\n<td><code>97<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>EA<\/code><\/td>\n<td><code>96<\/code><\/td>\n<td><code>18<\/code><\/td>\n<td><code>69<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>8D<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>A2<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>B<\/code><\/th>\n<td><code>0A<\/code><\/td>\n<td><code>B1<\/code><\/td>\n<td><code>B8<\/code><\/td>\n<td><code>8D<\/code><\/td>\n<td><code>07<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>C8<\/code><\/td>\n<td><code>CA<\/code><\/td>\n<td><code>D0<\/code><\/td>\n<td><code>F7<\/code><\/td>\n<td><code>E6<\/code><\/td>\n<td><code>49<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>49<\/code><\/td>\n<td><code>C9<\/code><\/td>\n<td><code>14<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>C<\/code><\/th>\n<td><code>30<\/code><\/td>\n<td><code>04<\/code><\/td>\n<td><code>A9<\/code><\/td>\n<td><code>20<\/code><\/td>\n<td><code>85<\/code><\/td>\n<td><code>49<\/code><\/td>\n<td><code>60<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>B1<\/code><\/td>\n<td><code>29<\/code><\/td>\n<td><code>03<\/code><\/td>\n<td><code>D0<\/code><\/td>\n<td><code>78<\/code><\/td>\n<td><code>A9<\/code><\/td>\n<td><code>00<\/code><\/td>\n<td><code>85<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>D<\/code><\/th>\n<td><code>AA<\/code><\/td>\n<td><code>A6<\/code><\/td>\n<td><code>AA<\/code><\/td>\n<td><code>B5<\/code><\/td>\n<td><code>4A<\/code><\/td>\n<td><code>F0<\/code><\/td>\n<td><code>5C<\/code><\/td>\n<td><code>0A<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>B9<\/code><\/td>\n<td><code>EA<\/code><\/td>\n<td><code>96<\/code><\/td>\n<td><code>85<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>BE<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>E<\/code><\/th>\n<td><code>C9<\/code><\/td>\n<td><code>01<\/code><\/td>\n<td><code>D0<\/code><\/td>\n<td><code>0A<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>18<\/code><\/td>\n<td><code>69<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td><code>85<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>4C<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>97<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>B9<\/code><\/td>\n<\/tr>\n<tr>\n<th><code>F<\/code><\/th>\n<td><code>C9<\/code><\/td>\n<td><code>04<\/code><\/td>\n<td><code>D0<\/code><\/td>\n<td><code>0A<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>38<\/code><\/td>\n<td><code>E9<\/code><\/td>\n<td><code>02<\/code><\/td>\n<td><code>85<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<td><code>4C<\/code><\/td>\n<td><code>BD<\/code><\/td>\n<td><code>97<\/code><\/td>\n<td><code>A5<\/code><\/td>\n<td><code>A8<\/code><\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 20 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2014 \u044d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u0440\u0443\u0433\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 20 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<p>  <code>96D6: 00 ; 0<br \/>  96D7: 0A ; 10<br \/>  96D8: 14 ; 20<br \/>  96D9: 1E ; 30<br \/>  96DA: 28 ; 40<br \/>  96DB: 32 ; 50<br \/>  96DC: 3C ; 60<br \/>  96DD: 46 ; 70<br \/>  96DE: 50 ; 80<br \/>  96DF: 5A ; 90<br \/>  96E0: 64 ; 100<br \/>  96E1: 6E ; 110<br \/>  96E2: 78 ; 120<br \/>  96E3: 82 ; 130<br \/>  96E4: 8C ; 140<br \/>  96E5: 96 ; 150<br \/>  96E6: A0 ; 160<br \/>  96E7: AA ; 170<br \/>  96E8: B4 ; 180<br \/>  96E9: BE ; 190<\/code><\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 <code>$0400<\/code> \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 10 \u044f\u0447\u0435\u0435\u043a, \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u0440\u0430\u0432\u0435\u043d:<\/p>\n<p>  <code>$0400 + 10 * y + x<\/code><\/p>\n<p>  \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u044d\u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>  <code>$0400 + [$96D6 + y] + x<\/code><\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 40 \u0431\u0430\u0439\u0442. \u0412 \u043d\u0435\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f 20 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 little endian \u0434\u043b\u044f nametable 0 (\u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 VRAM, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0442\u0430\u0439\u043b\u043e\u0432). \u041e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043d\u0430 <code>$06<\/code>.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0431\u0430\u0439\u0442\u044b, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438.<\/p>\n<h3>\u0420\u044f\u0434\u044b \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430<\/h3>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u043e 2 \u0431\u0430\u0439\u0442\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c.<\/p>\n<table>\n<tr>\n<th>\u0410\u0434\u0440\u0435\u0441\u0430<\/th>\n<th>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/th>\n<\/tr>\n<tr>\n<td><code>0050<\/code>\u2013<code>0051<\/code><\/td>\n<td>\u0420\u044f\u0434\u044b<\/td>\n<\/tr>\n<tr>\n<td><code>03F0<\/code>\u2013<code>03F1<\/code><\/td>\n<td>T<\/td>\n<\/tr>\n<tr>\n<td><code>03F2<\/code>\u2013<code>03F3<\/code><\/td>\n<td>J<\/td>\n<\/tr>\n<tr>\n<td><code>03F4<\/code>\u2013<code>03F5<\/code><\/td>\n<td>Z<\/td>\n<\/tr>\n<tr>\n<td><code>03F6<\/code>\u2013<code>03F7<\/code><\/td>\n<td>O<\/td>\n<\/tr>\n<tr>\n<td><code>03F8<\/code>\u2013<code>03F9<\/code><\/td>\n<td>S<\/td>\n<\/tr>\n<tr>\n<td><code>03FA<\/code>\u2013<code>03FB<\/code><\/td>\n<td>L<\/td>\n<\/tr>\n<tr>\n<td><code>03FC<\/code>\u2013<code>03FD<\/code><\/td>\n<td>I<\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u0430\u043a 16-\u0431\u0438\u0442\u043d\u044b\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 BCD little endian. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u044f\u0434\u043e\u0432, \u0440\u0430\u0432\u043d\u043e\u0435 123. \u0411\u0430\u0439\u0442\u044b \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0448\u043b\u0438 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4f4\/68b\/c0e\/4f468bc0e6f22afe40d74f1711bad46e.png\"><\/div>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b \u0438\u0433\u0440\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438, \u0447\u0442\u043e \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 999. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 \u043a\u0430\u043a \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 BCD, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043b\u0430. \u041d\u043e \u0432\u0435\u0441\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u0430\u044f \u0446\u0438\u0444\u0440\u0430. \u041a\u043e\u0433\u0434\u0430 \u043d\u0438\u0436\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u043e\u0442 <code>99<\/code> \u043a <code>00<\/code> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u0439\u0442 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0432\u0441\u0435\u043c 256 \u0442\u0430\u0439\u043b\u0430\u043c. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u044d\u0442\u043e\u0433\u043e.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6c7\/b4a\/d52\/6c7b4ad52a59641b8c2e04971415f0df.png\"><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u044f\u0434\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434.<\/p>\n<p>  <code>9BA8: INC $0050 ; increment middle-lowest digit pair<br \/>  9BAA: LDA $0050 <br \/>  9BAC: AND #$0F <br \/>  9BAE: CMP #$0A ; if (lowest digit &gt; 9) {<br \/>  9BB0: BMI $9BC7 <br \/>  9BB2: LDA $0050 <br \/>  9BB4: CLC <br \/>  9BB5: ADC #$06 ; set lowest digit to 0, increment middle digit<br \/>  9BB7: STA $0050 <br \/>  9BB9: AND #$F0 <br \/>  9BBB: CMP #$A0 ; if (middle digit &gt; 9) {<br \/>  9BBD: BCC $9BC7 <br \/>  9BBF: LDA $0050 <br \/>  9BC1: AND #$0F <br \/>  9BC3: STA $0050 ; set middle digit to 0<br \/>  9BC5: INC $0051 ; increment highest digit<br \/>   ; }<br \/>   ; }<\/code><\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0438 \u043d\u0438\u0436\u043d\u0438\u0445 \u0446\u0438\u0444\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0442 0 \u0434\u043e 9. \u041d\u043e \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0446\u0438\u0444\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u044f\u0434\u043e\u0432 \u043d\u0438\u0436\u043d\u044f\u044f \u0446\u0438\u0444\u0440\u0430 \u0440\u0430\u0432\u043d\u0430 0, \u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0438\u0433\u0440\u043e\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b \u043d\u0430\u0431\u043e\u0440 \u0438\u0437 10 \u0441\u0442\u0440\u043e\u043a \u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0438\u0436\u0435 \u043a\u043e\u0434\u0430, \u043f\u0435\u0440\u0435\u0434 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430.<\/p>\n<p>  <code>9BC7: LDA $0050 <br \/>  9BC9: AND #$0F <br \/>  9BCB: BNE $9BFB ; if (lowest digit == 0) { <br \/>  9BCD: JMP $9BD0 <\/p>\n<p>  9BD0: LDA $0051 <br \/>  9BD2: STA $00A9 <br \/>  9BD4: LDA $0050 <br \/>  9BD6: STA $00A8 ; copy digits from $0050-$0051 to $00A8-$00A9<\/p>\n<p>  9BD8: LSR $00A9<br \/>  9BDA: ROR $00A8<br \/>  9BDC: LSR $00A9<br \/>  9BDE: ROR $00A8 <br \/>  9BE0: LSR $00A9 <br \/>  9BE2: ROR $00A8 ; treat $00A8-$00A9 as a 16-bit packed BCD value<br \/>  9BE4: LSR $00A9 ; and right-shift it 4 times<br \/>  9BE6: ROR $00A8 ; this leaves the highest and middle digits in $00A8 <\/p>\n<p>  9BE8: LDA $0044 <br \/>  9BEA: CMP $00A8 ; if (level &lt; [$00A8]) {<br \/>  9BEC: BPL $9BFB <\/p>\n<p>  9BEE: INC $0044 ; increment level<br \/>   ; }<br \/>   ; }<\/code><\/p>\n<p>  \u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c. \u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c <code>X<\/code>, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0433\u0440\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c <code>10X<\/code> \u0441\u0442\u0440\u043e\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0438\u0433\u0440\u043e\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441 \u0443\u0440\u043e\u0432\u043d\u044f 5, \u043e\u043d \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u0451\u043c, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0447\u0438\u0441\u0442\u0438\u0442 60 \u0441\u0442\u0440\u043e\u043a, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c 6. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u0430\u0436\u0434\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 10 \u0441\u0442\u0440\u043e\u043a \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0443 \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u044f.<\/p>\n<p>  \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0437 <code>$0050<\/code>\u2013<code>$0051<\/code> \u0432 <code>$00A8<\/code>\u2013<code>$00A9<\/code>. \u0417\u0430\u0442\u0435\u043c \u043a\u043e\u043f\u0438\u044f 4 \u0440\u0430\u0437\u0430 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0432\u043f\u0440\u0430\u0432\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e BCD \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043d\u0430 10. \u0421\u0430\u043c\u0430\u044f \u043c\u043b\u0430\u0434\u0448\u0430\u044f \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u0430\u044f \u0446\u0438\u0444\u0440\u0430 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0430 \u0441\u0442\u0430\u0440\u0448\u0430\u044f \u0438 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0446\u0438\u0444\u0440\u044b \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0441\u044c \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442\u0430\u043c\u0438 <code>$00A8<\/code>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8e4\/c0b\/2e7\/8e4c0b2e7d53a33d54cea8717a872a65.png\"><\/div>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9BEA<\/code> \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c BCD \u0432 <code>$00A8<\/code>. \u041f\u043e\u0438\u0441\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f BCD \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0438 \u044d\u0442\u043e \u044f\u0432\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 <code>$12<\/code> (18 \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435), \u0430 \u043d\u0435 \u0441 12. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0438\u0433\u0440\u043e\u043a \u0440\u0435\u0448\u0438\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u0443\u0440\u043e\u0432\u043d\u044f 17, \u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u0442 \u043d\u0430 120 \u0440\u044f\u0434\u043e\u0432, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e 18 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c 17.<\/p>\n<p>  \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u044f\u0434\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u041e\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u0431\u0430\u0433\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435.<\/p>\n<table>\n<tr>\n<th><code>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c<\/code><\/th>\n<td>0<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>7<\/td>\n<td>8<\/td>\n<td>9<\/td>\n<td>10<\/td>\n<td>11<\/td>\n<td>12<\/td>\n<td>13<\/td>\n<td>14<\/td>\n<td>15<\/td>\n<td>16<\/td>\n<td>17<\/td>\n<td>18<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<th><code>\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u044f\u0434\u043e\u0432<\/code><\/th>\n<td>10<\/td>\n<td>20<\/td>\n<td>30<\/td>\n<td>40<\/td>\n<td>50<\/td>\n<td>60<\/td>\n<td>70<\/td>\n<td>80<\/td>\n<td>90<\/td>\n<td>100<\/td>\n<td>110<\/td>\n<td>120<\/td>\n<td>130<\/td>\n<td>140<\/td>\n<td>150<\/td>\n<td>160<\/td>\n<td>170<\/td>\n<td>180<\/td>\n<td>190<\/td>\n<td>200<\/td>\n<\/tr>\n<tr>\n<th><code>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u044f\u0434\u043e\u0432 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435<\/code><\/th>\n<td>10<\/td>\n<td>20<\/td>\n<td>30<\/td>\n<td>40<\/td>\n<td>50<\/td>\n<td>60<\/td>\n<td>70<\/td>\n<td>80<\/td>\n<td>90<\/td>\n<td>100<\/td>\n<td>100<\/td>\n<td>100<\/td>\n<td>100<\/td>\n<td>100<\/td>\n<td>100<\/td>\n<td>100<\/td>\n<td>110<\/td>\n<td>120<\/td>\n<td>130<\/td>\n<td>140<\/td>\n<\/tr>\n<\/table>\n<p>  \u041e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 0\u20139. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f 9 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e; 10\u201315 \u0442\u043e\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u0438 100 \u0440\u044f\u0434\u0430\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <code>$10<\/code> \u2014 \u044d\u0442\u043e 16 \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u2014 60 \u0440\u044f\u0434\u043e\u0432.<\/p>\n<p>  \u042f \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u044e, \u0447\u0442\u043e \u0431\u0430\u0433 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u043d\u0430 \u043f\u043e\u0437\u0434\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043c\u0435\u043d\u044e, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0438\u0433\u0440\u043e\u043a\u0443 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/858\/51e\/019\/85851e019d65bf00d265fa4ea277b8c2.png\"><\/div>\n<p>  \u041d\u0435\u0442 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0432\u044b\u0448\u0435 9. \u041d\u043e \u0432 \u0431\u0443\u043a\u043b\u0435\u0442\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 Nintendo Tetris \u044d\u0442\u043e\u0442 \u0441\u0435\u043a\u0440\u0435\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c20\/cee\/c3b\/c20ceec3b4b30879812be109b6666b79.png\"><\/div>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u044d\u0442\u0443 \u0441\u043a\u0440\u044b\u0442\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0451 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u0434\u0430\u0442\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0451 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0442\u043e\u0440\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0437\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u043a\u043e\u0434\u0435, \u043b\u0443\u0447\u0448\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u044e\u0449\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435.<\/p>\n<p>  <code>9BE8: LDA $0044 <br \/>  9BEA: CMP $00A8 ; if (level - [$00A8] &lt; 0) {<br \/>  9BEC: BPL $9BFB <\/p>\n<p>  9BEE: INC $0044 ; increment level<br \/>   ; }<\/code><\/p>\n<p>  \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0437\u043d\u0430\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u041d\u043e \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u043e\u0442 \u2212128 \u0434\u043e 127. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u2212128, \u0442\u043e \u0447\u0438\u0441\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c. \u042d\u0442\u043e\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043e\u0431\u044a\u044f\u0441\u043d\u0451\u043d \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043a\u043e\u0434\u0443.<\/p>\n<p>  <code>9BE8: LDA $0044 ; difference = level - [$00A8]; <br \/>  9BEA: CMP $00A8 ; if (difference &lt; 0 &amp;&amp; difference &gt;= -128) {<br \/>  9BEC: BPL $9BFB <\/p>\n<p>  9BEE: INC $0044 ; increment level<br \/>   ; }<\/code><\/p>\n<p>  \u041f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435, \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u0440\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0435 \u0434\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 255 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u043a 0, \u0430 <code>$00A8<\/code> \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0433\u043e \u0432\u0435\u0440\u0445\u043d\u0438\u0439 \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u0437 <code>$0051<\/code>, \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e.<\/p>\n<p>  \u042d\u0442\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c. \u041f\u0435\u0440\u0438\u043e\u0434\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u043c\u0438 \u0432 2900 \u0440\u044f\u0434\u043e\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 2190 \u0440\u044f\u0434\u043e\u0432, \u0438 \u0434\u043b\u044f\u0442\u0441\u044f \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 800 \u0440\u044f\u0434\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 2190 (<code>L90<\/code>) \u043f\u043e 2990 (<code>T90<\/code>) \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u044b\u043c <code>$DB<\/code> (<code>96<\/code>), \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/055\/e15\/8de\/055e158de2ecde24e0f052cd325bef32.png\"><\/div>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441 5090 \u043f\u043e 5890, \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0432\u0435\u043d <code>$AD<\/code> (<code>06<\/code>). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u044d\u0442\u0438\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043f\u0430\u043b\u0438\u0442\u0440\u0430 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0420\u0430\u0441\u043a\u0440\u0430\u0441\u043a\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/h3>\n<p>  \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0430\u0439\u043b\u0430\u043c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f 4 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u0430. \u0426\u0432\u0435\u0442\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0439\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$984C<\/code>. \u0415\u0451 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 10 \u0443\u0440\u043e\u0432\u043d\u0435\u0439.<\/p>\n<p>  <code>984C: 0F 30 21 12 ; level 0<br \/>  9850: 0F 30 29 1A ; level 1<br \/>  9854: 0F 30 24 14 ; level 2<br \/>  9858: 0F 30 2A 12 ; level 3<br \/>  985C: 0F 30 2B 15 ; level 4<br \/>  9860: 0F 30 22 2B ; level 5<br \/>  9864: 0F 30 00 16 ; level 6<br \/>  9868: 0F 30 05 13 ; level 7<br \/>  986C: 0F 30 16 12 ; level 8<br \/>  9870: 0F 30 27 16 ; level 9<\/code><\/p>\n<p>  \u0421\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e: \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0447\u0451\u0440\u043d\u043e\u0439, \u0431\u0435\u043b\u043e\u0439, \u0441\u0438\u043d\u0435\u0439 \u0438 \u043a\u0440\u0430\u0441\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0438\u0436\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/68e\/fc4\/7d7\/68efc47d771e9c673b003d76810d74fb.png\"><\/div>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u0435 NES.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e80\/c0a\/8b6\/e80c0a8b624b90261042d71eb21d50db.png\"><\/div>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 2 \u0446\u0432\u0435\u0442\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0447\u0451\u0440\u043d\u044b\u0439 \u0438 \u0431\u0435\u043b\u044b\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0446\u0432\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f; \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0439 \u0447\u0451\u0440\u043d\u044b\u0439 \u0444\u043e\u043d.<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0446\u0432\u0435\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9808<\/code>.<\/p>\n<p>  <code>9808: LDA $0064 <br \/>  980A: CMP #$0A <br \/>  980C: BMI $9814 <br \/>  980E: SEC <br \/>  980F: SBC #$0A <br \/>  9811: JMP $980A ; index = levelNumber % 10;<\/p>\n<p>  9814: ASL <br \/>  9815: ASL<br \/>  9816: TAX ; index *= 4;<\/p>\n<p>  9817: LDA #$00<br \/>  9819: STA $00A8 ; for(i = 0; i &lt; 32; i += 16) {<\/p>\n<p>  981B: LDA #$3F <br \/>  981D: STA $2006 <br \/>  9820: LDA #$08<br \/>  9822: CLC<br \/>  9823: ADC $00A8 <br \/>  9825: STA $2006 ; palette = $3F00 + i + 8;<\/p>\n<p>  9828: LDA $984C,X <br \/>  982B: STA $2007 ; palette[0] = colorTable[index + 0];<\/p>\n<p>  982E: LDA $984D,X <br \/>  9831: STA $2007 ; palette[1] = colorTable[index + 1];<\/p>\n<p>  9834: LDA $984E,X <br \/>  9837: STA $2007 ; palette[2] = colorTable[index + 2];<\/p>\n<p>  983A: LDA $984F,X<br \/>  983D: STA $2007 ; palette[3] = colorTable[index + 3];<\/p>\n<p>  9840: LDA $00A8<br \/>  9842: CLC<br \/>  9843: ADC #$10<br \/>  9845: STA $00A8 <br \/>  9847: CMP #$20<br \/>  9849: BNE $981B ; }<\/p>\n<p>  984B: RTS ; return;<\/code><\/p>\n<p>  \u0418\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0446\u0432\u0435\u0442\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0435 \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u043e\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043d\u0430 10. \u0426\u0438\u043a\u043b \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0430\u043b\u0438\u0442\u0440 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 VRAM.<\/p>\n<p>  \u0414\u0435\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c 10, \u043f\u043e\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 10. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438.<\/p>\n<p>  <code>9808: LDA $0064 ; index = levelNumber; <br \/>  980A: CMP #$0A ; while(index &gt;= 10) {<br \/>  980C: BMI $9814 <br \/>  980E: SEC <br \/>  980F: SBC #$0A ; index -= 10; <br \/>  9811: JMP $980A ; }<\/code><\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u0438 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u043d\u0430\u043a\u0430 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u0438. \u0410 \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u043e\u0442 \u2212128 \u0434\u043e 127. \u041e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0438\u0436\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0442 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f.<\/p>\n<p>  <code>9808: LDA $0064 ; index = levelNumber; <br \/>   ; difference = index - 10; <br \/>  980A: CMP #$0A ; while(difference &gt;= 0 &amp;&amp; difference &lt;= 127) {<br \/>  980C: BMI $9814 <br \/>  980E: SEC ; index -= 10; <br \/>  980F: SBC #$0A ; difference = index - 10; <br \/>  9811: JMP $980A ; }<\/code><\/p>\n<p>  \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0438\u0436\u0435 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u044b.<\/p>\n<p>  <code>9808: LDA $0064 ; index = levelNumber; <br \/>  980A: CMP #$0A ; while(index &gt;= 10 &amp;&amp; index &lt;= 137) {<br \/>  980C: BMI $9814 <br \/>  980E: SEC <br \/>  980F: SBC #$0A ; index -= 10; <br \/>  9811: JMP $980A ; }<\/code><\/p>\n<p>  \u0422\u0430\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u044f\u0432\u043b\u044f\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043a\u043e\u0434\u0435. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043e\u0442 138 \u0438 \u0432\u044b\u0448\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0430\u0439\u0442\u0430\u043c \u0434\u0430\u043b\u0435\u043a\u043e \u0437\u0430 \u043a\u043e\u043d\u0446\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0446\u0432\u0435\u0442\u043e\u0432. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u044d\u0442\u043e \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u043c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6ed\/2e5\/2c6\/6ed2e52c6a20dc9c8c1ffd1bf13d9b37.png\"><\/div>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0446\u0432\u0435\u0442\u0430 \u0432\u0441\u0435\u0445 256 \u0443\u0440\u043e\u0432\u043d\u0435\u0439. \u0422\u0430\u0439\u043b\u044b \u0432\u044b\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0432 10 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0446\u0432\u0435\u0442\u043e\u0432, \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u043c\u043e\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 138. \u0421\u0442\u0440\u043e\u043a\u0438 \u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/423\/6f0\/ed6\/4236f0ed6a508633b746d773a530fe90.png\"><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 255 \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a 0.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0440\u043e\u0432\u043d\u0438 \u043d\u0435 \u0441\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0443\u0431\u0440\u0430\u043d\u043e 800 \u0440\u044f\u0434\u043e\u0432. \u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0434\u043e\u043b\u0433\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0446\u0432\u0435\u0442\u0430 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c\u0438.<\/p>\n<h3>\u0420\u0435\u0436\u0438\u043c \u0438\u0433\u0440\u044b<\/h3>\n<p>  \u0420\u0435\u0436\u0438\u043c \u0438\u0433\u0440\u044b, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0439\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$00C0<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u043e\u0432 \u0438 \u043c\u0435\u043d\u044e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.<\/p>\n<table>\n<tr>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><code>00<\/code><\/td>\n<td>\u042d\u043a\u0440\u0430\u043d \u0441 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/td>\n<\/tr>\n<tr>\n<td><code>01<\/code><\/td>\n<td>\u042d\u043a\u0440\u0430\u043d \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>02<\/code><\/td>\n<td>\u041c\u0435\u043d\u044e \u0442\u0438\u043f\u0430 \u0438\u0433\u0440\u044b<\/td>\n<\/tr>\n<tr>\n<td><code>03<\/code><\/td>\n<td>\u041c\u0435\u043d\u044e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0438 \u0432\u044b\u0441\u043e\u0442\u044b<\/td>\n<\/tr>\n<tr>\n<td><code>04<\/code><\/td>\n<td>\u0418\u0433\u0440\u0430 \/ \u044d\u043a\u0440\u0430\u043d \u0440\u0435\u043a\u043e\u0440\u0434\u043e\u0432 \/ \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430 \/ \u043f\u0430\u0443\u0437\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>05<\/code><\/td>\n<td>\u0414\u0435\u043c\u043e<\/td>\n<\/tr>\n<\/table>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u0432 \u0438\u0433\u0440\u0435 \u0435\u0441\u0442\u044c \u0443\u043c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0430\u044f \u0440\u043e\u043b\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 switch \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 little endian, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430.<\/p>\n<p>  <code>8161: LDA $00C0 <br \/>  8163: JSR $AC82 ; switch(gameMode) {<br \/>  8166: 00 82 ; case 0: goto 8200; \/\/ \u042d\u043a\u0440\u0430\u043d \u0441 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<br \/>  8168: 4F 82 ; case 1: goto 824F; \/\/ \u042d\u043a\u0440\u0430\u043d \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438<br \/>  816A: D1 82 ; case 2: goto 82D1; \/\/ \u041c\u0435\u043d\u044e \u0442\u0438\u043f\u0430 \u0438\u0433\u0440\u044b<br \/>  816C: D7 83 ; case 3: goto 83D7; \/\/ \u041c\u0435\u043d\u044e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0438 \u0432\u044b\u0441\u043e\u0442\u044b<br \/>  816E: 5D 81 ; case 4: goto 815D; \/\/ \u0418\u0433\u0440\u0430 \/ \u044d\u043a\u0440\u0430\u043d \u0440\u0435\u043a\u043e\u0440\u0434\u043e\u0432 \/ \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430 \/ \u043f\u0430\u0443\u0437\u0430<br \/>  8170: 5D 81 ; case 5: goto 815D; \/\/ \u0414\u0435\u043c\u043e<br \/>   ; }<\/code><\/p>\n<p>  \u0412 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u0441\u043f\u0438\u0441\u043a\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0441\u0435\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0438\u0433\u0440\u044b. \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u0440\u0435\u0436\u0438\u043c\u044b \u00ab\u0418\u0433\u0440\u0430\u00bb \u0438 \u00ab\u0414\u0435\u043c\u043e\u00bb \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<p>  \u042d\u0442\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0442. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430; \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043a \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 (\u043c\u0438\u043d\u0443\u0441 1 \u0431\u0430\u0439\u0442), \u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432. \u0410\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0441\u0442\u0435\u043a\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 <code>$0000<\/code>\u2013<code>$0001<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043a\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 A \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434.<\/p>\n<p>  <code>AC82: ASL <br \/>  AC83: TAY <br \/>  AC84: INY <\/p>\n<p>  AC85: PLA <br \/>  AC86: STA $0000 <br \/>  AC88: PLA ; pop return address off of stack<br \/>  AC89: STA $0001 ; and store it at $0000-$0001<\/p>\n<p>  AC8B: LDA ($00),Y <br \/>  AC8D: TAX <br \/>  AC8E: INY <br \/>  AC8F: LDA ($00),Y <br \/>  AC91: STA $0001 <br \/>  AC93: STX $0000 <br \/>  AC95: JMP ($0000) ; goto Ath 16-bit address<br \/>   ; in table at [$0000-$0001]<\/code><\/p>\n<p>  \u041a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 switch-\u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043f\u043e\u043a\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u043b\u0438\u0437\u043a\u0438 \u043a 0 \u0438 \u043c\u0435\u0436\u0434\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 case \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0438\u043b\u0438 \u0438\u0445 \u043c\u0430\u043b\u043e.<\/p>\n<h3>\u042d\u043a\u0440\u0430\u043d \u0441 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/h3>\n<p>  \u0418\u0433\u0440\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441 \u044d\u043a\u0440\u0430\u043d\u043e\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/524\/4e2\/d4b\/5244e2d4b26989579afaad64838c0962.png\"><\/div>\n<p>  \u0412\u043d\u0438\u0437\u0443 \u044d\u043a\u0440\u0430\u043d\u0430 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B0%D0%B6%D0%B8%D1%82%D0%BD%D0%BE%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9B%D0%B5%D0%BE%D0%BD%D0%B8%D0%B4%D0%BE%D0%B2%D0%B8%D1%87\">\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u0430\u0436\u0438\u0442\u043d\u043e\u0432<\/a> \u043a\u0430\u043a \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u0435\u043b\u044c, \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u00ab\u0422\u0435\u0442\u0440\u0438\u0441\u0430\u00bb. \u0412 1984 \u0433\u043e\u0434\u0443, \u0440\u0430\u0431\u043e\u0442\u0430\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%86%D0%B5%D0%BD%D1%82%D1%80_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%90._%D0%90._%D0%94%D0%BE%D1%80%D0%BE%D0%B4%D0%BD%D0%B8%D1%86%D1%8B%D0%BD%D0%B0_%D0%A0%D0%90%D0%9D\">\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0435\u043d\u0442\u0440\u0435 \u0438\u043c\u0435\u043d\u0438 \u0414\u043e\u0440\u043e\u0434\u043d\u0438\u0446\u044b\u043d\u0430<\/a> (\u0432\u0435\u0434\u0443\u0449\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0438\u043d\u0441\u0442\u0438\u0442\u0443\u0442\u0435 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0438 \u041d\u0430\u0443\u043a \u0432 \u041c\u043e\u0441\u043a\u0432\u0435), \u043e\u043d \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0438\u0433\u0440\u044b \u043d\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0-60\">\u00ab\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0435-60\u00bb<\/a> (\u0441\u043e\u0432\u0435\u0442\u0441\u043a\u043e\u043c \u043a\u043b\u043e\u043d\u0435 DEC <a href=\"http:\/\/en.wikipedia.org\/wiki\/PDP-11#LSI-11\">LSI-11<\/a>). \u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0437\u0435\u043b\u0451\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u043b\u0438\u0441\u044c \u043f\u0430\u0440\u0430\u043c\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a <code>[]<\/code>. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e 16-\u043b\u0435\u0442\u043d\u0435\u0433\u043e \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u0430 <a href=\"http:\/\/vadim.oversigma.com\/Tetris.htm\">\u0412\u0430\u0434\u0438\u043c\u0430 \u0413\u0435\u0440\u0430\u0441\u0438\u043c\u043e\u0432\u0430<\/a> \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0414\u043c\u0438\u0442\u0440\u0438\u044f \u041f\u0430\u0432\u043b\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0431\u044b\u043b \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 IBM PC \u0441 MS DOS \u0438 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Turbo_Pascal\">Turbo Pascal<\/a>. \u041d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u043e\u043d\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0438\u0433\u0440\u0443, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0442\u0430\u043a\u0438\u0435 \u0447\u0435\u0440\u0442\u044b, \u043a\u0430\u043a \u0446\u0432\u0435\u0442\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e, \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0438, \u0447\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u043e, \u043a\u043e\u0434 \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u043e\u0432 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0432\u0448\u0438\u0439 \u0438\u0433\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438 \u043a\u043b\u043e\u043d\u043e\u0432 PC.<\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0421\u043e\u0432\u0435\u0442\u0441\u043a\u043e\u0433\u043e \u0421\u043e\u044e\u0437\u0430 \u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438\u0445 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043c\u043e\u043d\u0435\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0433\u0440\u0443 \u043d\u0435 \u0443\u0432\u0435\u043d\u0447\u0430\u043b\u0438\u0441\u044c \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u043e\u043d\u0438 \u0440\u0435\u0448\u0438\u043b\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0437\u044c\u044f\u043c\u0438 PC-\u0432\u0435\u0440\u0441\u0438\u0435\u0439. \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u00ab\u0422\u0435\u0442\u0440\u0438\u0441\u00bb \u043d\u0430\u0447\u0430\u043b \u0432\u0438\u0440\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0435 \u0438 \u0437\u0430 \u0435\u0451 \u043f\u0440\u0435\u0434\u0435\u043b\u044b, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0441 \u0434\u0438\u0441\u043a\u0435\u0442\u044b \u043d\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u0443. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0433\u0440\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0447\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u0435\u0451 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0431\u044b\u043b\u043e \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e, \u0438 \u0432 1987 \u0433\u043e\u0434\u0443 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0433\u0440\u044b \u0437\u0430\u043d\u044f\u043b\u0430\u0441\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442\u0432\u0435\u0447\u0430\u0432\u0448\u0430\u044f \u0437\u0430 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u0443\u044e \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438 (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Elektronorgtechnica\">\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043e\u0440\u0433\u0442\u0435\u0445\u043d\u0438\u043a\u0430 (ELORG)<\/a>). \u0410\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440\u0430 V\/O \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c \u043e\u0442 \u00abVersion Originale\u00bb.<\/p>\n<p>  \u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u041f\u041e <a href=\"http:\/\/www.atarihq.com\/tsr\/special\/tetrishist.html\">Andromeda<\/a> \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 Tetris \u0438 \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u043a\u0438 \u0441\u0443\u0431\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0438\u0433\u0440\u0443 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u043e\u043c\u0443 \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0438\u0433\u0440 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Mirrorsoft\">Mirrorsoft<\/a>. Mirrorsoft, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u0443\u0431\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043b \u0435\u0451 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Tengen_(company)\">Tengen<\/a>, \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Atari Games. Tengen \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0430 Bullet-Proof Software \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u0435\u0439 \u0432 \u042f\u043f\u043e\u043d\u0438\u0438, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f Tetris \u0434\u043b\u044f Nintendo <a href=\"http:\/\/en.wikipedia.org\/wiki\/Famicom\">Famicom<\/a>. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/750\/b96\/6c0\/750b966c0d526110e504b409b3f1a1af.png\"><\/div>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a \u0412\u0430\u0434\u0438\u043c \u0413\u0435\u0440\u0430\u0441\u0438\u043c\u043e\u0432 \u043d\u0430\u0437\u0432\u0430\u043d \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u043c \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c.<\/p>\n<p>  \u041f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0433\u043e\u0442\u043e\u0432\u044f\u0449\u0435\u0439\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Game Boy, Nintendo \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c Bullet-Proof Software \u0434\u043b\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0441\u0434\u0435\u043b\u043a\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 ELORG. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u043a\u0438 ELORG \u043f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0430 \u0441\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0441 Andromeda, \u0443\u0442\u043e\u0447\u043d\u0438\u0432, \u0447\u0442\u043e Andromeda \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u043f\u0440\u0430\u0432\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438 \u0430\u0440\u043a\u0430\u0434\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043e\u0432. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e Bullet-Proof Software \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043b\u0430\u0442\u0438\u0442\u044c ELORG \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0435 \u043e\u0442\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u0441\u0435 \u043f\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f Famicom \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0435\u044e \u043e\u0442 Tengen \u043f\u0440\u0430\u0432\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043b\u0438\u043f\u043e\u0432\u044b\u043c\u0438. \u041d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u0438\u043c\u0438\u0440\u0435\u043d\u0438\u044e \u0441 ELORG \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Bullet-Proof Software \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435\u043c\u0438\u0440\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u044b \u0434\u043b\u044f Nintendo. <\/p>\n<p>  Bullet-Proof Software \u0441\u0443\u0431\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0438\u0433\u0440\u044b Nintendo \u0438 \u043e\u043d\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 Game Boy Tetris, \u0447\u0442\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u043e \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u043d\u0438\u0436\u0435 \u044d\u043a\u0440\u0430\u043d\u0435 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/0dc\/d28\/e4c\/0dcd28e4c4f7b3da1a0259fcdbcf9b70.png\"><\/div>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u0432\u0441\u0435\u043c\u0438\u0440\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u044b, Nintendo \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432\u0435\u0440\u0441\u0438\u044e Tetris \u0434\u043b\u044f NES, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0438\u0437\u0443\u0447\u0430\u0435\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0417\u0430\u0442\u0435\u043c Bullet-Proof Software \u0441\u0443\u0431\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043f\u0440\u0430\u0432\u0430 \u0443 Nintendo, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0435\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0435\u0439 \u0434\u043b\u044f Famicom \u0432 \u042f\u043f\u043e\u043d\u0438\u0438.<\/p>\n<p>  \u0417\u0430 \u044d\u0442\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u0430 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u044f\u0436\u0431\u0430. \u0418 Nintendo, \u0438 Tengen \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0438 \u043f\u0440\u043e\u0434\u0430\u0436\u0443 \u0441\u0432\u043e\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0433\u0440\u044b. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 Nintendo \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0430, \u0438 \u0441\u043e\u0442\u043d\u0438 \u0442\u044b\u0441\u044f\u0447 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0435\u0439 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Tetris_(Atari)\">Tengen Tetris<\/a> \u0431\u044b\u043b\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u044b. \u041f\u0440\u0438\u0433\u043e\u0432\u043e\u0440 \u0441\u0443\u0434\u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 Mirrorsoft \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>  \u041f\u0430\u0436\u0438\u0442\u043d\u043e\u0432 \u0442\u0430\u043a \u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0442\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043e\u0442 ELORG \u0438\u043b\u0438 \u0441\u043e\u0432\u0435\u0442\u0441\u043a\u043e\u0433\u043e \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 1991 \u0433\u043e\u0434\u0443 \u043e\u043d \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b \u0432 \u0421\u0428\u0410 \u0438 \u0432 1996 \u0433\u043e\u0434\u0443 \u043f\u0440\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 Bullet-Proof Software <a href=\"http:\/\/en.wikipedia.org\/wiki\/Henk_Rogers\">\u0425\u0435\u043d\u043a\u0430 \u0420\u043e\u0434\u0436\u0435\u0440\u0441\u0430<\/a> \u0441\u0442\u0430\u043b \u0441\u043e\u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c <a href=\"http:\/\/www.tetris.com\/\">The Tetris Company<\/a>, \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0432\u0448\u0435\u0439 \u0435\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u043e\u043b\u0435\u0439.<\/p>\n<p>  \u041b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u043e \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043a\u0430\u043a \u0432 \u043e\u043a\u043d\u043e, \u0434\u0430\u044e\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c \u0437\u0430\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u0438\u0433\u0440\u044b \u0438 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0437\u0430 \u043d\u0438\u043c \u0431\u043e\u044f\u0445 \u0437\u0430 \u043f\u0440\u0430\u0432\u0430 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0432\u0435\u0434\u044c \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u044d\u0442\u043e\u0442 \u044d\u043a\u0440\u0430\u043d \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u043c\u0435\u0445\u0430, \u0438\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0436\u0434\u0430\u0442\u044c \u0432\u0435\u0447\u043d\u043e. \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0445 \u043e\u0442\u0441\u0447\u0451\u0442 \u0441 255 \u0434\u043e 0. \u041f\u0435\u0440\u0432\u0443\u044e \u0444\u0430\u0437\u0443 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 Start. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u044d\u043a\u0440\u0430\u043d \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c 4,25 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0438 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 8,5 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041e\u0434\u043d\u0430\u043a\u043e, \u044f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0441\u0434\u0430\u0451\u0442\u0441\u044f, \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u044f \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c Start \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430, \u0438 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0436\u0434\u0451\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0422\u0430\u0439\u043c\u0438\u043d\u0433 \u0444\u0430\u0437, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0433\u0440\u044b, \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u0430\u0441\u043a\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u043c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u043e\u0432\u043e\u0433\u043e \u0433\u0430\u0441\u044f\u0449\u0435\u0433\u043e \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430 (vertical blanking interval) \u2014 \u043a\u0440\u0430\u0442\u043a\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u043e\u043c \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0435 16,6393 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c.<\/p>\n<p>  <code>8005: PHA <br \/>  8006: TXA<br \/>  8007: PHA <br \/>  8008: TYA<br \/>  8009: PHA ; save A, X, Y<\/p>\n<p>  800A: LDA #$00<br \/>  800C: STA $00B3<br \/>  800E: JSR $804B ; render();<\/p>\n<p>  8011: DEC $00C3 ; legalScreenCounter1--;<\/p>\n<p>  8013: LDA $00C3 <br \/>  8015: CMP #$FF ; if (legalScreenCounter1 &lt; 0) {<br \/>  8017: BNE $801B ; legalScreenCounter1 = 0;<br \/>  8019: INC $00C3 ; }<\/p>\n<p>  801B: JSR $AB5E ; initializeOAM();<\/p>\n<p>  801E: LDA $00B1<br \/>  8020: CLC<br \/>  8021: ADC #$01<br \/>  8023: STA $00B1<br \/>  8025: LDA #$00<br \/>  8027: ADC $00B2<br \/>  8029: STA $00B2 ; frameCounter++;<\/p>\n<p>  802B: LDX #$17<br \/>  802D: LDY #$02<br \/>  802F: JSR $AB47 ; randomValue = generateNextPseudorandomNumber(randomValue);<\/p>\n<p>  8032: LDA #$00<br \/>  8034: STA $00FD<br \/>  8036: STA $2005 ; scrollX = 0;<br \/>  8039: STA $00FC<br \/>  803B: STA $2005 ; scrollY = 0; <\/p>\n<p>  803E: LDA #$01<br \/>  8040: STA $0033 ; verticalBlankingInterval = true;<\/p>\n<p>  8042: JSR $9D51 ; pollControllerButtons();<\/p>\n<p>  8045: PLA<br \/>  8046: TAY<br \/>  8047: PLA<br \/>  8048: TAX<br \/>  8049: PLA ; restore A, X, Y<\/p>\n<p>  804A: RTI ; resume interrupted task<\/code><\/p>\n<p>  \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 \u0441\u0442\u0435\u043a \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043c\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0412\u044b\u0437\u043e\u0432 <code>render()<\/code> \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 VRAM, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0442\u043e, \u0447\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u0414\u0430\u043b\u0435\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0443\u043b\u044f. \u0412\u044b\u0437\u043e\u0432 <code>initializeOAM()<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u044d\u0442\u0430\u043f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u0430\u0434\u0440\u0430. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u043a\u0430\u0434\u0440\u043e\u0432 \u2014 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f little endian, \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$00B1<\/code>\u2013<code>$00B2<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0430. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e; \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0440\u0430\u0437 \u0432 \u043a\u0430\u0434\u0440. \u041f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$8040<\/code> \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0444\u043b\u0430\u0433 vertical blanking interval, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430; \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0414\u0435\u043c\u043e\u00bb.<\/p>\n<p>  \u0424\u043b\u0430\u0433 <code>verticalBlankingInterval<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435. \u041e\u043d\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <code>AA2F: JSR $E000 ; updateAudio();<\/p>\n<p>  AA32: LDA #$00<br \/>  AA34: STA $0033 ; verticalBlankingInterval = false;<\/p>\n<p>  AA36: NOP<\/p>\n<p>  AA37: LDA $0033 <br \/>  AA39: BEQ $AA37 ; while(!verticalBlankingInterval) { }<\/p>\n<p>  AA3B: LDA #$FF<br \/>  AA3D: LDX #$02<br \/>  AA3F: LDY #$02<br \/>  AA41: JSR $AC6A ; fill memory page 2 with all $FF's<\/p>\n<p>  AA44: RTS ; return;<\/code><\/p>\n<p>  \u042d\u0442\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c.<\/p>\n<p>  <code>8236: LDA #$FF<br \/>  8238: JSR $A459<\/p>\n<p>  ...<\/p>\n<p>  A459: STA $00C3 ; legalScreenCounter1 = 255;<\/p>\n<p>  A45B: JSR $AA2F ; do {<br \/>  A45E: LDA $00C3 ; waitForVerticalBlankingInterval();<br \/>  A460: BNE $A45B ; } while(legalScreenCounter1 &gt; 0);<\/p>\n<p>  A462: RTS ; return;<\/code><\/p>\n<p>  <code>823B: LDA #$FF<br \/>  823D: STA $00A8 ; legalScreenCounter2 = 255;<\/p>\n<p>  ; do {<\/p>\n<p>  823F: LDA $00F5 ; if (just pressed Start) {<br \/>  8241: CMP #$10 ; break;<br \/>  8243: BEQ $824C ; }<\/p>\n<p>  8245: JSR $AA2F ; waitForVerticalBlankingInterval();<\/p>\n<p>  8248: DEC $00A8 ; legalScreenCounter2--;<br \/>  824A: BNE $823F ; } while(legalScreenCounter2 &gt; 0);<\/p>\n<p>  824C: INC $00C0 ; gameMode = TITLE_SCREEN;<\/code><\/p>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442 \u0418\u0418 \u043d\u0430 Lua \u043e\u0431\u0445\u043e\u0434\u0438\u0442 \u044d\u0442\u0443 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443, \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044f \u043e\u0431\u043e\u0438\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0.<\/p>\n<h3>\u0414\u0435\u043c\u043e<\/h3>\n<p>  \u0412 \u0434\u0435\u043c\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 80 \u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0435\u0439\u043c\u043f\u043b\u0435\u044f. \u0412 \u043d\u0451\u043c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u0432\u0438\u0434\u0435\u043e, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u0442 \u0436\u0435 \u0434\u0432\u0438\u0436\u043e\u043a, \u0447\u0442\u043e \u0438 \u0432 \u0438\u0433\u0440\u0435. \u041f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041f\u0435\u0440\u0432\u0430\u044f, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$DF00<\/code>, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e:<\/p>\n<p>  <code>T J T S Z J T S Z J S Z L Z J T T S I T O J S Z L Z L I O L Z L I O J T S I T O J<\/code><\/p>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0444\u0438\u0433\u0443\u0440\u0430 \u0438\u043b\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e, \u0438\u043b\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c\u0430. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$98EB<\/code>.<\/p>\n<p>  <code>98EB: LDA $00C0 <br \/>  98ED: CMP #$05<br \/>  98EF: BNE $9903 ; if (gameMode == DEMO) { <\/p>\n<p>  98F1: LDX $00D3 <br \/>  98F3: INC $00D3 <br \/>  98F5: LDA $DF00,X ; value = demoTetriminoTypeTable[++demoIndex]; <\/p>\n<p>  98F8: LSR<br \/>  98F9: LSR<br \/>  98FA: LSR<br \/>  98FB: LSR <br \/>  98FC: AND #$07<br \/>  98FE: TAX ; tetriminoType = bits 6,5,4 of value;<\/p>\n<p>  98FF: LDA $994E,X <br \/>  9902: RTS ; return spawnTable[tetriminoType];<br \/>   ; } else {<br \/>   ; pickRandomTetrimino();<br \/>   ; }<\/code><\/p>\n<p>  \u0422\u0438\u043f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0431\u0438\u0442\u043e\u0432 6, 5 \u0438 4 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430. \u0412\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>$07<\/code> \u2014 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f. \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 (<code>$994E<\/code>), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0432 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438:<\/p>\n<p>  <code>993B: 00 00 00 00 ; T<br \/>  993F: 01 01 01 01 ; J<br \/>  9943: 02 02 ; Z<br \/>  9945: 03 ; O<br \/>  9946: 04 04 ; S<br \/>  9948: 05 05 05 05 ; L<br \/>  994C: 06 06 ; I<\/code><\/p>\n<p>  <code>994E: 02 ; Td<br \/>  994F: 07 ; Jd<br \/>  9950: 08 ; Zh<br \/>  9951: 0A ; O<br \/>  9952: 0B ; Sh<br \/>  9953: 0E ; Ld<br \/>  9954: 12 ; Ih<\/code><\/p>\n<p>  <code>9956: 02 02 02 02 ; Td<br \/>  995A: 07 07 07 07 ; Jd<br \/>  995E: 08 08 ; Zh<br \/>  9960: 0A ; O<br \/>  9961: 0B 0B ; Sh<br \/>  9963: 0E 0E 0E 0E ; Ld<br \/>  9967: 12 12 ; Ih<\/code><\/p>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>$07<\/code> \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0451 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0437\u0430 \u043a\u043e\u043d\u0446\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 <code>Td<\/code> (<code>$02<\/code>).<\/p>\n<p>  \u0418\u0437-\u0437\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u044d\u0442\u0430 \u0441\u0445\u0435\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0442\u044c \u043d\u0430\u043c \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0443\u044e, \u043d\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0433\u0443\u0440. \u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0439\u0442\u043e\u0432 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0433\u0434\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$DF00<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0430\u0441\u0442\u044c\u044e \u0447\u0435\u0433\u043e-\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441 \u044d\u0442\u0438\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f 5 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0431\u0438\u0442\u043e\u0432 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 \u0434\u0435\u043c\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (<code>$00D3<\/code>) \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$872B<\/code>.<\/p>\n<p>  \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u0435\u043c\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u043d\u043e\u043f\u043e\u043a \u0433\u0435\u0439\u043c\u043f\u0430\u0434\u0430, \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432 \u043f\u0430\u0440\u0430\u0445 \u0431\u0430\u0439\u0442\u043e\u0432. \u0411\u0438\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u043d\u043e\u043f\u043a\u0430\u043c.<\/p>\n<table>\n<tr>\n<th><code>7<\/code><\/th>\n<th><code>6<\/code><\/th>\n<th><code>5<\/code><\/th>\n<th><code>4<\/code><\/th>\n<th><code>3<\/code><\/th>\n<th><code>2<\/code><\/th>\n<th><code>1<\/code><\/th>\n<th><code>0<\/code><\/th>\n<\/tr>\n<tr>\n<td>A<\/td>\n<td>B<\/td>\n<td>Select<\/td>\n<td>Start<\/td>\n<td>\u0412\u0432\u0435\u0440\u0445<\/td>\n<td>\u0412\u043d\u0438\u0437<\/td>\n<td>\u0412\u043b\u0435\u0432\u043e<\/td>\n<td>\u0412\u043f\u0440\u0430\u0432\u043e<\/td>\n<\/tr>\n<\/table>\n<p>  \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0431\u0430\u0439\u0442\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u0434\u0440\u043e\u0432, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a.<\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 <code>$DD00<\/code>\u2013<code>$DEFF<\/code> \u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 256 \u043f\u0430\u0440. \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u0439 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9D5B<\/code>.<\/p>\n<p>  <code>9D5B: LDA $00D0 ; if (recording mode) {<br \/>  9D5D: CMP #$FF ; goto recording;<br \/>  9D5F: BEQ $9DB0 ; }<\/p>\n<p>  9D61: JSR $AB9D ; pollController();<br \/>  9D64: LDA $00F5 ; if (start button pressed) {<br \/>  9D66: CMP #$10 ; goto startButtonPressed;<br \/>  9D68: BEQ $9DA3 ; }<\/p>\n<p>  9D6A: LDA $00CF ; if (repeats == 0) {<br \/>  9D6C: BEQ $9D73 ; goto finishedMove;<br \/>   ; } else {<br \/>  9D6E: DEC $00CF ; repeats--;<br \/>  9D70: JMP $9D9A ; goto moveInProgress;<br \/>   ; }<\/p>\n<p>  finishedMove:<\/p>\n<p>  9D73: LDX #$00<br \/>  9D75: LDA ($D1,X)<br \/>  9D77: STA $00A8 ; buttons = demoButtonsTable[index];<\/p>\n<p>  9D79: JSR $9DE8 ; index++;<\/p>\n<p>  9D7C: LDA $00CE<br \/>  9D7E: EOR $00A8<br \/>  9D80: AND $00A8<br \/>  9D82: STA $00F5 ; setNewlyPressedButtons(difference between heldButtons and buttons);<\/p>\n<p>  9D84: LDA $00A8<br \/>  9D86: STA $00CE ; heldButtons = buttons;<\/p>\n<p>  9D88: LDX #$00 <br \/>  9D8A: LDA ($D1,X)<br \/>  9D8C: STA $00CF ; repeats = demoButtonsTable[index];<\/p>\n<p>  9D8E: JSR $9DE8 ; index++;<\/p>\n<p>  9D91: LDA $00D2 ; if (reached end of demo table) {<br \/>  9D93: CMP #$DF ; return;<br \/>  9D95: BEQ $9DA2 ; }<\/p>\n<p>  9D97: JMP $9D9E ; goto holdButtons;<\/p>\n<p>  moveInProgress:<\/p>\n<p>  9D9A: LDA #$00<br \/>  9D9C: STA $00F5 ; clearNewlyPressedButtons();<\/p>\n<p>  holdButtons:<\/p>\n<p>  9D9E: LDA $00CE<br \/>  9DA0: STA $00F7 ; setHeldButtons(heldButtons);<\/p>\n<p>  9DA2: RTS ; return;<\/p>\n<p>  startButtonPressed:<\/p>\n<p>  9DA3: LDA #$DD<br \/>  9DA5: STA $00D2 ; reset index;<\/p>\n<p>  9DA7: LDA #$00<br \/>  9DA9: STA $00B2 ; counter = 0;<\/p>\n<p>  9DAB: LDA #$01<br \/>  9DAD: STA $00C0 ; gameMode = TITLE_SCREEN;<\/p>\n<p>  9DAF: RTS ; return;<\/code><\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043a\u043d\u043e\u043f\u043e\u043a \u0434\u0435\u043c\u043e \u0438\u043c\u0435\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 512 \u0431\u0430\u0439\u0442\u043e\u0432, \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0435\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441. \u0418\u043d\u0434\u0435\u043a\u0441 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a little endian \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c <code>$00D1<\/code>\u2013<code>$00D2<\/code>. \u041e\u043d \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0430\u0434\u0440\u0435\u0441\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <code>$872D<\/code>, \u0430 \u0435\u0433\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c.<\/p>\n<p>  <code>9DE8: LDA $00D1<br \/>  9DEA: CLC ; increment [$00D1]<br \/>  9DEB: ADC #$01 ; possibly causing wrap around to 0<br \/>  9DED: STA $00D1 ; which produces a carry<\/p>\n<p>  9DEF: LDA #$00<br \/>  9DF1: ADC $00D2<br \/>  9DF3: STA $00D2 ; add carry to [$00D2]<\/p>\n<p>  9DF5: RTS ; return<\/code><\/p>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0432 \u043a\u043e\u0434\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432\u0432\u043e\u0434\u0430 \u0438\u0433\u0440\u043e\u043a\u0430, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0435\u043c\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c. \u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0435\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 <code>$00D0<\/code> \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>$FF<\/code>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a\u043d\u043e\u043f\u043e\u043a \u0434\u0435\u043c\u043e.<\/p>\n<p>  <code>recording:<\/p>\n<p>  9DB0: JSR $AB9D ; pollController();<\/p>\n<p>  9DB3: LDA $00C0 ; if (gameMode != DEMO) {<br \/>  9DB5: CMP #$05 ; return;<br \/>  9DB7: BNE $9DE7 ; }<\/p>\n<p>  9DB9: LDA $00D0 ; if (not recording mode) {<br \/>  9DBB: CMP #$FF ; return;<br \/>  9DBD: BNE $9DE7 ; }<\/p>\n<p>  9DBF: LDA $00F7 ; if (getHeldButtons() == heldButtons) {<br \/>  9DC1: CMP $00CE ; goto buttonsNotChanged;<br \/>  9DC3: BEQ $9DE4 ; }<\/p>\n<p>  9DC5: LDX #$00<br \/>  9DC7: LDA $00CE<br \/>  9DC9: STA ($D1,X) ; demoButtonsTable[index] = heldButtons;<\/p>\n<p>  9DCB: JSR $9DE8 ; index++;<\/p>\n<p>  9DCE: LDA $00CF<br \/>  9DD0: STA ($D1,X) ; demoButtonsTable[index] = repeats;<\/p>\n<p>  9DD2: JSR $9DE8 ; index++;<\/p>\n<p>  9DD5: LDA $00D2 ; if (reached end of demo table) {<br \/>  9DD7: CMP #$DF ; return;<br \/>  9DD9: BEQ $9DE7 ; }<\/p>\n<p>  9DDB: LDA $00F7<br \/>  9DDD: STA $00CE ; heldButtons = getHeldButtons();<\/p>\n<p>  9DDF: LDA #$00<br \/>  9DE1: STA $00CF ; repeats = 0;<\/p>\n<p>  9DE3: RTS ; return;<\/p>\n<p>  buttonsNotChanged:<\/p>\n<p>  9DE4: INC $00CF ; repeats++;<\/p>\n<p>  9DE6: RTS <br \/>  9DE7: RTS ; return;<\/code><\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 PRG-ROM. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043d\u0435\u0451 \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u044b\u043d\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u043d\u043a\u043e\u0432, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0438\u0436\u0435 \u0433\u043b\u0438\u0442\u0447\u0435\u0432\u043e\u043c\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u0443.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a07\/66a\/261\/a0766a261967e1ee2e7d4a61d3367ee6.png\"><\/div>\n<p>  \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u041e\u0417\u0423.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u0435, \u044f \u0441\u043e\u0437\u0434\u0430\u043b <code>lua\/RecordDemo.lua<\/code>, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u0432 <a href=\"http:\/\/meatfighter.com\/nintendotetrisai\/NintendoTetrisAI.zip\">zip \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438<\/a>. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0435\u043c\u043e \u043e\u043d \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c Lua. \u0418\u0437 \u043d\u0435\u0451 \u0431\u0430\u0439\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u041f\u0417\u0423.<\/p>\n<p>  \u0414\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 FCEUX \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 ROM-\u0444\u0430\u0439\u043b Nintendo Tetris (File | Open ROM&#8230;). \u0417\u0430\u0442\u0435\u043c \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043e\u043a\u043d\u043e Lua Script window (File | Lua | New Lua Script Window&#8230;), \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0444\u0430\u0439\u043b\u0443 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 Run, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0435\u043c\u043e, \u0430 \u043f\u043e\u0442\u043e\u043c \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043c\u044b\u0448\u044c\u044e \u043d\u0430 \u043e\u043a\u043d\u0435 FCEUX, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0444\u043e\u043a\u0443\u0441 \u043d\u0430 \u043d\u0435\u0433\u043e. \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438, \u043f\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043a\u043d\u043e\u043f\u043e\u043a \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0438\u0433\u0440\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 Stop \u0432 \u043e\u043a\u043d\u0435 Lua Script window, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442. \u0417\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Output Console, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f2e\/3cd\/f61\/f2e3cdf61589005f2e1cae0659f66467.png\"><\/div>\n<p>  \u0412\u044b\u0434\u0435\u043b\u0438\u0442\u0435 \u0432\u0441\u0451 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430 (Ctrl+C). \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 Hex Editor (Debug | Hex Editor&#8230;). \u0412 \u043c\u0435\u043d\u044e Hex Editor \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 View | ROM File, \u0430 \u0437\u0430\u0442\u0435\u043c File | Goto Address. \u0412 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435 Goto \u0432\u0432\u0435\u0434\u0438\u0442\u0435 5D10 (\u0430\u0434\u0440\u0435\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043a\u043d\u043e\u043f\u043e\u043a \u0434\u0435\u043c\u043e \u0432 \u0444\u0430\u0439\u043b\u0435 ROM) \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Ok. \u0417\u0430\u0442\u0435\u043c \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 (Ctrl+V).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/bef\/599\/392\/bef599392455c773652e850de13f6413.png\"><\/div>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u0432 \u043c\u0435\u043d\u044e FCEUX \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 NES | Reset. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u0438 \u044d\u0442\u0430\u043f\u044b, \u0442\u043e \u0434\u0435\u043c\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c\u0441\u044f \u0432\u0430\u0448\u0435\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0442\u043e \u0432 \u043c\u0435\u043d\u044e Hex Editor \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 File | Save Rom As\u2026 \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u043e\u0433\u043e ROM-\u0444\u0430\u0439\u043b\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Save.<\/p>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e.<\/p>\n<h3>\u042d\u043a\u0440\u0430\u043d \u0441\u043c\u0435\u0440\u0442\u0438<\/h3>\n<p>  \u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0441\u043f\u0443\u0441\u043a\u0430 \u0444\u0438\u0433\u0443\u0440 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 29, \u0447\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e \u0438\u0433\u0440\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u043e\u043d \u0441\u0442\u0430\u043b \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00ab\u044d\u043a\u0440\u0430\u043d \u0441\u043c\u0435\u0440\u0442\u0438\u00bb. \u041d\u043e \u0441 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d \u0441\u043c\u0435\u0440\u0442\u0438 \u043d\u0435 \u0434\u0430\u0451\u0442 \u0438\u0433\u0440\u043e\u043a\u0443 \u043f\u0440\u043e\u0439\u0442\u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u0437-\u0437\u0430 \u0431\u0430\u0433\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u0443\u0441\u043a \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0431\u0430\u0433\u043e\u043c, \u0430 \u0444\u0438\u0447\u0435\u0439. \u0414\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b \u0431\u044b\u043b\u0438 \u0442\u0430\u043a \u0434\u043e\u0431\u0440\u044b, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u0438\u0433\u0440\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u0438\u0433\u0440\u043e\u043a \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0442\u044c \u0441\u0432\u0435\u0440\u0445\u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u044d\u043a\u0440\u0430\u043d \u0441\u043c\u0435\u0440\u0442\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 1550 \u0443\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u0430\u0445. \u041f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043d \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0418\u043d\u043e\u0433\u0434\u0430 \u0438\u0433\u0440\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f. \u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u044d\u043a\u0440\u0430\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0447\u0451\u0440\u043d\u044b\u043c. \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u0433\u0440\u0430 \u0437\u0430\u043c\u0438\u0440\u0430\u0435\u0442 (\u00ab\u0444\u0440\u0438\u0437\u0438\u0442\u0441\u044f\u00bb) \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0440\u044f\u0434\u0430, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435. \u0422\u0430\u043a\u0438\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0430\u043c \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/09d\/7fe\/4f3\/09d7fe4f3ec1e77057c7ee5e252d8d75.png\"><\/div>\n<p>  \u042d\u043a\u0440\u0430\u043d \u0441\u043c\u0435\u0440\u0442\u0438 \u2014 \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0430\u0433\u0430 \u0432 \u043a\u043e\u0434\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043e\u0447\u043a\u0438 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0440\u044f\u0434\u043e\u0432. \u0428\u0435\u0441\u0442\u0438\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0441\u0447\u0451\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a 24-\u0431\u0438\u0442\u043d\u044b\u0439 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 BCD little endian \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c <code>$0053<\/code>\u2013<code>$0055<\/code>. \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u043e\u0447\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430; \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f 16-\u0431\u0438\u0442\u043d\u044b\u043c \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c BCD little endian.<\/p>\n<p>  <code>9CA5: 00 00 ; 0: 0<br \/>  9CA7: 40 00 ; 1: 40<br \/>  9CA9: 00 01 ; 2: 100<br \/>  9CAB: 00 03 ; 3: 300<br \/>  9CAD: 00 12 ; 4: 1200<\/code><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u044f\u0434\u043e\u0432, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u0443\u0440\u043e\u0432\u043d\u044f, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044d\u0442\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u043b\u044e\u0441 \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u043e\u0447\u043a\u0430\u043c. \u042d\u0442\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u0437 \u0431\u0443\u043a\u043b\u0435\u0442\u0430 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 Nintendo Tetris:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/34b\/a36\/7cf\/34ba367cfefad47e493306fa6ef8fe3e.png\"><\/div>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0446\u0438\u043a\u043b\u043e\u043c, \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c \u043a \u0441\u0447\u0451\u0442\u0443 \u043e\u0447\u043a\u0438. \u041e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u043d\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  <code>9C31: LDA $0044<br \/>  9C33: STA $00A8<br \/>  9C35: INC $00A8 ; for(i = 0; i &lt;= level; i++) {<\/p>\n<p>  9C37: LDA $0056 <br \/>  9C39: ASL<br \/>  9C3A: TAX <br \/>  9C3B: LDA $9CA5,X ; points[0] = pointsTable[2 * completedLines];<\/p>\n<p>  9C3E: CLC<br \/>  9C3F: ADC $0053<br \/>  9C41: STA $0053 ; score[0] += points[0]; <\/p>\n<p>  9C43: CMP #$A0 <br \/>  9C45: BCC $9C4E ; if (upper digit of score[0] &gt; 9) {<\/p>\n<p>  9C47: CLC<br \/>  9C48: ADC #$60<br \/>  9C4A: STA $0053 ; upper digit of score[0] -= 10;<br \/>  9C4C: INC $0054 ; score[1]++;<br \/>   ; }<\/p>\n<p>  9C4E: INX<br \/>  9C4F: LDA $9CA5,X ; points[1] = pointsTable[2 * completedLines + 1];<\/p>\n<p>  9C52: CLC<br \/>  9C53: ADC $0054<br \/>  9C55: STA $0054 ; score[1] += points[1];<\/p>\n<p>  9C57: AND #$0F <br \/>  9C59: CMP #$0A<br \/>  9C5B: BCC $9C64 ; if (lower digit of score[1] &gt; 9) {<\/p>\n<p>  9C5D: LDA $0054 <br \/>  9C5F: CLC ; lower digit of score[1] -= 10;<br \/>  9C60: ADC #$06 ; increment upper digit of score[1];<br \/>  9C62: STA $0054 ; }<\/p>\n<p>  9C64: LDA $0054 <br \/>  9C66: AND #$F0<br \/>  9C68: CMP #$A0<br \/>  9C6A: BCC $9C75 ; if (upper digit of score[1] &gt; 9) { <\/p>\n<p>  9C6C: LDA $0054 <br \/>  9C6E: CLC<br \/>  9C6F: ADC #$60<br \/>  9C71: STA $0054 ; upper digit of score[1] -= 10;<br \/>  9C73: INC $0055 ; score[2]++;<br \/>   ; }<\/p>\n<p>  9C75: LDA $0055<br \/>  9C77: AND #$0F<br \/>  9C79: CMP #$0A<br \/>  9C7B: BCC $9C84 ; if (lower digit of score[2] &gt; 9) {<\/p>\n<p>  9C7D: LDA $0055 <br \/>  9C7F: CLC ; lower digit of score[2] -= 10;<br \/>  9C80: ADC #$06 ; increment upper digit of score[2];<br \/>  9C82: STA $0055 ; }<\/p>\n<p>  9C84: LDA $0055 <br \/>  9C86: AND #$F0<br \/>  9C88: CMP #$A0<br \/>  9C8A: BCC $9C94 ; if (upper digit of score[2] &gt; 9) {<\/p>\n<p>  9C8C: LDA #$99<br \/>  9C8E: STA $0053 <br \/>  9C90: STA $0054 <br \/>  9C92: STA $0055 ; max out score to 999999;<br \/>   ; }<\/p>\n<p>  9C94: DEC $00A8<br \/>  9C96: BNE $9C37 ; }<\/code><\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Ricoh_2A03\">Ricoh 2A03<\/a> \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0436\u0438\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u043e-\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 6502; \u043e\u043d \u0431\u044b \u043c\u043e\u0433 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0442\u0435\u043b\u043e \u0446\u0438\u043a\u043b\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0443\u043f\u0435\u043d\u0447\u0430\u0442\u043e, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430. \u041b\u044e\u0431\u0430\u044f \u0446\u0438\u0444\u0440\u0430, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 9, \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c 10 \u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0446\u0438\u0444\u0440\u044b \u0441\u043b\u0435\u0432\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>$07 + $07 = $0E<\/code>, \u0447\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 <code>$14<\/code>. \u041d\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u0430 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u0412\u043e\u0437\u044c\u043c\u0451\u043c <code>$09 + $09 = $12<\/code>: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 <code>$18<\/code>. \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e, \u043d\u0438 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u0432 \u0437\u0430\u043f\u0438\u0441\u044f\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0447\u043a\u043e\u0432 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 6. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0446\u0438\u0444\u0440\u0430 \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u0430 0.<\/p>\n<p>  \u041d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f. \u041d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0442\u0430\u0439\u043c\u0438\u043d\u0433 \u0438\u0433\u0440\u044b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 1\/60 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0412\u0441\u0451 \u044d\u0442\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u00ab\u044d\u043a\u0440\u0430\u043d\u0430 \u0441\u043c\u0435\u0440\u0442\u0438\u00bb.<\/p>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442 \u0418\u0418 \u043d\u0430 Lua \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 30 \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e \u0437\u0430\u043c\u044b\u0441\u043b\u0443 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u0432 \u043c\u043e\u0433\u043b\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044c \u0438\u0433\u0440\u043e\u043a\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u0441\u043c\u0435\u0440\u0442\u0438.<\/p>\n<h3>\u041a\u043e\u043d\u0446\u043e\u0432\u043a\u0438<\/h3>\n<p>  \u0412 \u0431\u0443\u043a\u043b\u0435\u0442\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 Nintendo Tetris \u0438\u0433\u0440\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 A-Type \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c53\/f16\/5ea\/c53f165ea675badb06f75f6409f6c836.png\"><\/div>\n<p>  \u0418\u0433\u0440\u0430 \u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0430\u0435\u0442 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043d\u0430\u0431\u0440\u0430\u0432\u0448\u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432 \u043e\u0447\u043a\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u044f\u0442\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u043a\u043e\u043d\u0446\u043e\u0432\u043e\u043a. \u0412\u044b\u0431\u043e\u0440 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0430\u043c\u044b\u0445 \u043b\u0435\u0432\u044b\u0445 \u0446\u0438\u0444\u0440\u0430\u0445 \u0448\u0435\u0441\u0442\u0438\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0433\u043e \u0441\u0447\u0451\u0442\u0430. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043a\u043e\u043d\u0446\u043e\u0432\u043e\u043a, \u0438\u0433\u0440\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 30 000 \u043e\u0447\u043a\u043e\u0432.<\/p>\n<p>  <code>9A4D: LDA $0075<br \/>  9A4F: CMP #$03 <br \/>  9A51: BCC $9A5E ; if (score[2] &gt;= $03) {<\/p>\n<p>  9A53: LDA #$80<br \/>  9A55: JSR $A459<br \/>  9A58: JSR $9E3A<br \/>  9A5B: JMP $9A64 ; select ending; <br \/>   ; }<\/code><\/p>\n<p>  \u0421\u0442\u043e\u0438\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e <code>$0060<\/code>\u2013<code>$007F<\/code> \u2014 \u044d\u0442\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u0430\u0434\u0440\u0435\u0441\u043e\u0432 <code>$0040<\/code>\u2013<code>$005F<\/code>. \u0421\u0447\u0451\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c <code>$0073<\/code>\u2013<code>$0075<\/code>.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c switch. <\/p>\n<p>  <code>A96E: LDA #$00<br \/>  A970: STA $00C4<br \/>  A972: LDA $0075 ; if (score[2] &lt; $05) {<br \/>  A974: CMP #$05 ; ending = 0;<br \/>  A976: BCC $A9A5 ; }<\/p>\n<p>  A978: LDA #$01<br \/>  A97A: STA $00C4<br \/>  A97C: LDA $0075 ; else if (score[2] &lt; $07) {<br \/>  A97E: CMP #$07 ; ending = 1;<br \/>  A980: BCC $A9A5 ; }<\/p>\n<p>  A982: LDA #$02<br \/>  A984: STA $00C4<br \/>  A986: LDA $0075 ; else if (score[2] &lt; $10) {<br \/>  A988: CMP #$10 ; ending = 2;<br \/>  A98A: BCC $A9A5 ; }<\/p>\n<p>  A98C: LDA #$03<br \/>  A98E: STA $00C4<br \/>  A990: LDA $0075 ; else if (score[2] &lt; $12) {<br \/>  A992: CMP #$12 ; ending = 3;<br \/>  A994: BCC $A9A5 ; }<\/p>\n<p>  A996: LDA #$04 ; else {<br \/>  A998: STA $00C4 ; ending = 4;<br \/>   ; }<\/code><\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430\u0445 \u0440\u0430\u043a\u0435\u0442\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0441\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0440\u044f\u0434\u043e\u043c \u0441 \u0441\u043e\u0431\u043e\u0440\u043e\u043c \u0412\u0430\u0441\u0438\u043b\u0438\u044f \u0411\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e. \u0412 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0439 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u0440\u0430\u0431\u043b\u044c \u00ab\u0411\u0443\u0440\u0430\u043d\u00bb \u2014 \u0441\u043e\u0432\u0435\u0442\u0441\u043a\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u00ab\u0421\u043f\u0435\u0439\u0441 \u0448\u0430\u0442\u0442\u043b\u0430\u00bb. \u0412 \u0441\u0430\u043c\u043e\u0439 \u043b\u0443\u0447\u0448\u0435\u0439 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 \u0432 \u0432\u043e\u0437\u0434\u0443\u0445 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c \u0441\u043e\u0431\u043e\u0440, \u0430 \u043d\u0430\u0434 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u043e\u0439 \u0432\u0438\u0441\u0438\u0442 \u041d\u041b\u041e. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438 \u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u043d\u0435\u0439 \u0441\u0447\u0451\u0442.   <\/p>\n<table>\n<tr>\n<td><code>30000\u201349999<\/code><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/0b9\/b73\/4b4\/0b9b734b43dae52eccafaa71e3c1441d.png\"><\/div>\n<\/td>\n<td><code>50000\u201369999<\/code><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ade\/f93\/f39\/adef93f395eb2bef2c1fd71562857c39.png\"><\/div>\n<\/td>\n<td><code>70000\u201399999<\/code><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/df3\/480\/b63\/df3480b63de128a70b7c9e4dd7cec81f.png\"><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td><code>100000\u2013119999<\/code><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8e3\/91a\/658\/8e391a6581df6e7ec0c08134b6a6d5bf.png\"><\/div>\n<\/td>\n<td><code>120000+<\/code><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3e1\/2bd\/42f\/3e12bd42ffc331742d809325db418f78.png\"><\/div>\n<\/td>\n<td><\/td>\n<\/tr>\n<\/table>\n<p>  \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0433\u0440\u044b B-Type \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432 \u0431\u0443\u043a\u043b\u0435\u0442\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 Nintendo Tetris \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/0aa\/929\/624\/0aa929624f41a68ea1388b6ba9013dd3.png\"><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0438\u0433\u0440\u043e\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0447\u0438\u0449\u0430\u0435\u0442 25 \u0440\u044f\u0434\u0430, \u0442\u043e \u0438\u0433\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0443, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0443\u044e \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041a\u043e\u043d\u0446\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u0435\u0439 0\u20138 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043b\u0435\u0442\u0430\u044e\u0449\u0438\u0445 \u0438\u043b\u0438 \u0431\u0435\u0433\u0430\u044e\u0449\u0438\u0445 \u0432 \u043a\u0430\u0434\u0440\u0435, \u0437\u0430\u0433\u0430\u0434\u043e\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u044f \u0437\u0430 \u0441\u043e\u0431\u043e\u0440\u043e\u043c \u0412\u0430\u0441\u0438\u043b\u0438\u044f \u0411\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e. \u041d\u041b\u041e \u0438\u0437 \u043b\u0443\u0447\u0448\u0435\u0439 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 A-Type \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 3. \u0412 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 4 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u044b\u043c\u0435\u0440\u0448\u0438\u0435 \u043b\u0435\u0442\u0430\u044e\u0449\u0438\u0435 \u043f\u0442\u0435\u0440\u043e\u0437\u0430\u0432\u0440\u044b, \u0430 \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 7 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043c\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043b\u0435\u0442\u0430\u044e\u0449\u0438\u0435 \u0434\u0440\u0430\u043a\u043e\u043d\u044b. \u0412 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430\u0445 2 \u0438 6 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0431\u0435\u0441\u043a\u0440\u044b\u043b\u044b\u0435 \u043f\u0442\u0438\u0446\u044b: \u0431\u0435\u0433\u0430\u044e\u0449\u0438\u0435 \u043f\u0438\u043d\u0433\u0432\u0438\u043d\u044b \u0438 \u0441\u0442\u0440\u0430\u0443\u0441\u044b. \u0412 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 5 \u043d\u0435\u0431\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0434\u0438\u0440\u0438\u0436\u0430\u0431\u043b\u044f\u043c\u0438 GOOD (\u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 \u0434\u0438\u0440\u0438\u0436\u0430\u0431\u043b\u044f\u043c\u0438 Goodyear). \u0410 \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 8 \u043f\u043e \u044d\u043a\u0440\u0430\u043d\u0443 \u043f\u0440\u043e\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u00ab\u0411\u0443\u0440\u0430\u043d\u043e\u0432\u00bb, \u0445\u043e\u0442\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d \u0431\u044b\u043b \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d.<\/p>\n<p>  \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u044b\u0441\u043e\u0442\u0430 (\u043f\u043b\u044e\u0441 1) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c, \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0430\u044f \u0438\u0433\u0440\u043e\u043a\u0430 \u0431\u041e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0436\u0438\u0432\u043e\u0442\u043d\u044b\u0445\/\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0437\u0430 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u0443\u044e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0412 \u043b\u0443\u0447\u0448\u0435\u0439 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435 B-Type \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0437\u0430\u043c\u043e\u043a, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u043c\u0438 \u0438\u0437 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 Nintendo: \u043f\u0440\u0438\u043d\u0446\u0435\u0441\u0441\u0430 \u041f\u0438\u0447 \u0445\u043b\u043e\u043f\u0430\u0435\u0442 \u0432 \u043b\u0430\u0434\u043e\u0448\u0438, Kid Icarus \u0438\u0433\u0440\u0430\u0435\u0442 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u043a\u0435, \u0414\u043e\u043d\u043a\u0438 \u041a\u043e\u043d\u0433 \u0441\u0442\u0443\u0447\u0438\u0442 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0430\u0440\u0430\u0431\u0430\u043d, \u041c\u0430\u0440\u0438\u043e \u0438 \u041b\u0443\u0438\u0434\u0436\u0438 \u0442\u0430\u043d\u0446\u0443\u044e\u0442, \u0411\u0430\u0443\u0437\u0435\u0440 \u0438\u0433\u0440\u0430\u0435\u0442 \u043d\u0430 \u0430\u043a\u043a\u043e\u0440\u0434\u0435\u043e\u043d\u0435, \u0421\u0430\u043c\u0443\u0441 \u0438\u0433\u0440\u0430\u0435\u0442 \u043d\u0430 \u0432\u0438\u043e\u043b\u043e\u043d\u0447\u0435\u043b\u0438, \u041b\u0438\u043d\u043a \u2014 \u043d\u0430 \u0444\u043b\u0435\u0439\u0442\u0435, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u043a\u0443\u043f\u043e\u043b\u0430 \u0441\u043e\u0431\u043e\u0440\u0430 \u0412\u0430\u0441\u0438\u043b\u0438\u044f \u0411\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0437\u043c\u044b\u0432\u0430\u044e\u0442 \u0432 \u0432\u043e\u0437\u0434\u0443\u0445. \u041e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435. \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 10 \u043a\u043e\u043d\u0446\u043e\u0432\u043e\u043a.<\/p>\n<table>\n<tr>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/5d9\/c8e\/525\/5d9c8e525177613cb3fcd59c7c6aa53a.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ade\/2fc\/f3d\/ade2fcf3d389b67e5d4b3d7e8c5c1ea0.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ec9\/bd3\/9dd\/ec9bd39dd26529013d7d408f6a4e855b.png\"><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fdb\/125\/132\/fdb125132ecaed550966562b5e08f169.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/22b\/758\/028\/22b75802841a3b558f8fae476f2d2598.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/43e\/710\/858\/43e710858220b08e1860da00a309c665.png\"><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/dda\/332\/1d5\/dda3321d5e5246d2aa92eafb69f3cf5d.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c6f\/2d0\/843\/c6f2d0843995d294393bbbf277b83bdf.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/572\/3b8\/f29\/5723b8f2919ac35746b52923d59dbf41.png\"><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/639\/938\/9df\/6399389dfff187a8db7ac92f1dc815e3.png\"><\/div>\n<\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/table>\n<p>  \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 25 \u0440\u044f\u0434\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 B-Type \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0438 \u0432\u044b\u0441\u043e\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043a\u043e\u043d\u0446\u043e\u0432\u043e\u043a. \u0421\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u0436\u0435 \u043e\u0446\u0435\u043d\u0438\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u043e\u043d \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043a\u0443\u0447\u0430\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430\u0445 0\u20138 \u0432 \u043a\u0430\u0434\u0440\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u043e 6 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b y \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$A7B7<\/code>.<\/p>\n<p>  <code>A7B7: 98 A8 C0 A8 90 B0 ; 0<br \/>  A7BD: B0 B8 A0 B8 A8 A0 ; 1<br \/>  A7C3: C8 C8 C8 C8 C8 C8 ; 2<br \/>  A7C9: 30 20 40 28 A0 80 ; 3<br \/>  A7CF: A8 88 68 A8 48 78 ; 4<br \/>  A7D5: 58 68 18 48 78 38 ; 5<br \/>  A7DB: C8 C8 C8 C8 C8 C8 ; 6<br \/>  A7E1: 90 58 70 A8 40 38 ; 7<br \/>  A7E7: 68 88 78 18 48 A8 ; 8<\/code><\/p>\n<p>  \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$A77B<\/code>.<\/p>\n<p>  <code>A77B: 3A 24 0A 4A 3A FF ; 0<br \/>  A781: 22 44 12 32 4A FF ; 1<br \/>  A787: AE 6E 8E 6E 1E 02 ; 2<br \/>  A78D: 42 42 42 42 42 02 ; 3<br \/>  A793: 22 0A 1A 04 0A FF ; 4<br \/>  A799: EE DE FC FC F6 02 ; 5<br \/>  A79F: 80 80 80 80 80 FF ; 6<br \/>  A7A5: E8 E8 E8 E8 48 FF ; 7<br \/>  A7AB: 80 AE 9E 90 80 02 ; 8<\/code><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$A771<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/p>\n<p>  <code>A771: 01 ; 0: 1 <br \/>  A772: 01 ; 1: 1<br \/>  A773: FF ; 2: -1<br \/>  A774: FC ; 3: -4<br \/>  A775: 01 ; 4: 1<br \/>  A776: FF ; 5: -1<br \/>  A777: 02 ; 6: 2<br \/>  A778: 02 ; 7: 2<br \/>  A779: FE ; 8: -1<\/code><\/p>\n<p>  \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$A7F3<\/code>.<\/p>\n<p>  <code>A7F3: 2C ; 0: dragonfly<br \/>  A7F4: 2E ; 1: dove<br \/>  A7F5: 54 ; 2: penguin<br \/>  A7F6: 32 ; 3: UFO<br \/>  A7F7: 34 ; 4: pterosaur<br \/>  A7F8: 36 ; 5: blimp<br \/>  A7F9: 4B ; 6: ostrich<br \/>  A7FA: 38 ; 7: dragon<br \/>  A7FB: 3A ; 8: Buran<\/code><\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 \u0441 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c 1. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0440\u0430\u043a\u043e\u043d \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 <code>$38<\/code> \u0438 <code>$39<\/code>. \u0422\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043d\u0438\u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432.<\/p>\n<table>\n<tr>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/86d\/524\/373\/86d5243738d9c3e34db5318889c4f894.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d82\/2d1\/229\/d822d122984b77a0973f08feac962647.png\"><\/div>\n<\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d8a\/3c1\/9b5\/d8a3c19b513fb9f7338e250b97fdeac1.png\"><\/div>\n<\/td>\n<\/tr>\n<\/table>\n<p>  \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0432\u044b\u0448\u0435, \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0435\u0441\u044c \u0430\u043b\u0444\u0430\u0432\u0438\u0442, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430. \u041d\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0441\u043f\u0440\u0430\u0439\u0442\u044b \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u0430 \u0438 \u0432\u0435\u0440\u0442\u043e\u043b\u0451\u0442\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u0441\u043b\u0435\u0432\u0430; \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0438 \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0430\u0445, \u043d\u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u0438\u0433\u0440\u044b. \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u043b\u0451\u0442 \u0438 \u0432\u0435\u0440\u0442\u043e\u043b\u0451\u0442 \u0438\u043c\u0435\u044e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 <code>$30<\/code> \u0438 <code>$16<\/code> \u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0432\u044b\u0448\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u0445 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/04e\/2e2\/203\/04e2e2203b1581876d99736ad9b56fd6.png\"><\/div>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/445\/153\/3b4\/4451533b43874485cb5a0cdfd9df0c58.png\"><\/div>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043e\u043f\u043e\u0440\u044b \u0432\u0435\u0440\u0442\u043e\u043b\u0451\u0442\u0430 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f, \u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438 \u0445\u0432\u043e\u0441\u0442\u043e\u0432\u043e\u0439 \u0440\u043e\u0442\u043e\u0440\u044b \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b.<\/p>\n<h3>2 Player Versus<\/h3>\n<p>  \u0412 Nintendo Tetris \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u0434\u0432\u0443\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0438\u0437\u043c\u0435\u043d\u0438\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 (<code>$00BE<\/code>) \u043d\u0430 2. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u043d\u0430 \u0444\u043e\u043d\u0435 \u043e\u0434\u043d\u043e\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/418\/6e7\/2af\/4186e72af40c6c617996ca2f8d39a72c.png\"><\/div>\n<p>  \u041c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044f\u043c\u0438 \u043d\u0435\u0442 \u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0444\u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0439 \u0447\u0451\u0440\u043d\u044b\u0439 \u0446\u0432\u0435\u0442. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>003<\/code>, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0434 \u0438\u0433\u0440\u043e\u0432\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0433\u0440\u043e\u043a\u043e\u043c \u0440\u044f\u0434\u043e\u0432. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u0449\u0430\u044f \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0444\u0438\u0433\u0443\u0440\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u0436\u0435 \u043c\u0435\u0441\u0442\u0435, \u0447\u0442\u043e \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u043a\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043e\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435. \u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0430\u0439\u043b\u044b \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0435\u043d\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u0438\u0433\u0440\u043e\u043a \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0433\u0440\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u043e \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0442\u043e \u0440\u0435\u0436\u0438\u043c \u0432\u043f\u043e\u043b\u043d\u0435 \u0438\u0433\u0440\u0430\u0431\u0435\u043b\u0435\u043d. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0433\u0440\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435. \u0410 \u043a\u043e\u0433\u0434\u0430 \u0438\u0433\u0440\u043e\u043a \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442 Double, Triple \u0438\u043b\u0438 Tetris (\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0434\u0432\u0430, \u0442\u0440\u0438 \u0438\u043b\u0438 \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u044f\u0434\u0430), \u0432 \u043d\u0438\u0436\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u0440\u044f\u0434\u044b \u0441 \u043e\u0434\u043d\u0438\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c.<\/p>\n<p>  \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$0500<\/code>. \u0410 <code>$0060<\/code>\u2013<code>$007F<\/code>, \u043e\u0431\u044b\u0447\u043d\u043e \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u0435\u0440\u043a\u0430\u043b\u043e\u043c <code>$0040<\/code>\u2013<code>$005F<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u043a\u0430.<\/p>\n<p>  \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0438\u0437-\u0437\u0430 \u043f\u043b\u043e\u0442\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0410 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u043c \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e. \u041e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 Tetris \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 Nintendo Game Boy \u0438\u0433\u0440\u044b, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u0441\u0442\u0438\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043a \u043f\u043e\u043a\u0443\u043f\u043a\u0435 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Game_Link_Cable\">Game Link Cable<\/a> \u2014 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430, \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0432\u0448\u0435\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0434\u0432\u0430 Game Boy \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 2 player versus. \u042d\u0442\u043e\u0442 \u043a\u0430\u0431\u0435\u043b\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u00ab\u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438\u00bb \u2014 \u043f\u043e\u0434\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b \u0434\u0440\u0443\u0437\u0435\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c Game Boy, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u0432\u0435\u0441\u0435\u043b\u044c\u044e. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, Nintendo \u043e\u043f\u0430\u0441\u0430\u043b\u0430\u0441\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0433\u0440\u044b \u0431\u044b\u043b \u0431\u044b \u0440\u0435\u0436\u0438\u043c 2 player versus, \u0442\u043e \u00ab\u0440\u0435\u043a\u043b\u0430\u043c\u043d\u0430\u044f\u00bb \u043c\u043e\u0449\u044c Tetris, \u0441\u0442\u0438\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0430\u044f \u043a \u043f\u043e\u043a\u0443\u043f\u043a\u0435 Game Boy, \u043c\u043e\u0433\u043b\u0430 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u043d\u043e\u0439.<\/p>\n<h3>\u041c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b<\/h3>\n<p>  \u0424\u043e\u043d\u043e\u0432\u0430\u044f \u043c\u0443\u0437\u044b\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 <code>$06F5<\/code> \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<table>\n<tr>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><code>01<\/code><\/td>\n<td>\u041d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0443\u0437\u044b\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>02<\/code><\/td>\n<td>\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u0430 \u0446\u0435\u043b\u044c \u0440\u0435\u0436\u0438\u043c\u0430 B-Type<\/td>\n<\/tr>\n<tr>\n<td><code>03<\/code><\/td>\n<td>Music-1<\/td>\n<\/tr>\n<tr>\n<td><code>04<\/code><\/td>\n<td>Music-2<\/td>\n<\/tr>\n<tr>\n<td><code>05<\/code><\/td>\n<td>Music-3<\/td>\n<\/tr>\n<tr>\n<td><code>06<\/code><\/td>\n<td>Music-1 allegro<\/td>\n<\/tr>\n<tr>\n<td><code>07<\/code><\/td>\n<td>Music-2 allegro<\/td>\n<\/tr>\n<tr>\n<td><code>08<\/code><\/td>\n<td>Music-3 allegro<\/td>\n<\/tr>\n<tr>\n<td><code>09<\/code><\/td>\n<td>\u042d\u043a\u0440\u0430\u043d Congratulations<\/td>\n<\/tr>\n<tr>\n<td><code>0A<\/code><\/td>\n<td>\u041a\u043e\u043d\u0446\u043e\u0432\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>0B<\/code><\/td>\n<td>\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u0430 \u0446\u0435\u043b\u044c \u0440\u0435\u0436\u0438\u043c\u0430 B-Type<\/td>\n<\/tr>\n<\/table>\n<p> \u041d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u0443\u0437\u044b\u043a\u0443 \u044d\u043a\u0440\u0430\u043d\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c <a href=\"http:\/\/meatfighter.com\/nintendotetrisai\/tetris-01.mp3\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0412 \u0441\u0430\u043c\u043e\u0439 \u0438\u0433\u0440\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u044d\u043a\u0440\u0430\u043d\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u0432\u0443\u0447\u0438\u0442.<\/p>\n<p>  Music-1 \u2014 \u044d\u0442\u043e \u0432\u0435\u0440\u0441\u0438\u044f &#171;<a href=\"https:\/\/simple.wikipedia.org\/wiki\/Dance_of_the_Sugar_Plum_Fairy\">\u0422\u0430\u043d\u0446\u0430 \u0424\u0435\u0438 \u0414\u0440\u0430\u0436\u0435<\/a>&#171;, \u043c\u0443\u0437\u044b\u043a\u0438 \u0434\u043b\u044f \u0431\u0430\u043b\u0435\u0440\u0438\u043d\u044b \u0438\u0437 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B0-%D0%B4%D0%B5-%D0%B4%D0%B5\">\u043f\u0430-\u0434\u0435-\u0434\u0435<\/a> \u0432\u0430\u043b\u044c\u0441\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A9%D0%B5%D0%BB%D0%BA%D1%83%D0%BD%D1%87%D0%B8%D0%BA\"><i>\u00ab\u0429\u0435\u043b\u043a\u0443\u043d\u0447\u0438\u043a\u00bb<\/i><\/a> \u0427\u0430\u0439\u043a\u043e\u0432\u0441\u043a\u043e\u0433\u043e. \u041c\u0443\u0437\u044b\u043a\u0430 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438 \u2014 \u044d\u0442\u043e \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f &#171;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D1%83%D0%BF%D0%BB%D0%B5%D1%82%D1%8B_%D0%AD%D1%81%D0%BA%D0%B0%D0%BC%D0%B8%D0%BB%D1%8C%D0%BE\">\u041a\u0443\u043f\u043b\u0435\u0442\u043e\u0432 \u0442\u043e\u0440\u0435\u0430\u0434\u043e\u0440\u0430<\/a>&#171;, \u0430\u0440\u0438\u0438 \u0438\u0437 \u043e\u043f\u0435\u0440\u044b <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%B0%D1%80%D0%BC%D0%B5%D0%BD_(%D0%BE%D0%BF%D0%B5%D1%80%D0%B0)\"><i>\u041a\u0430\u0440\u043c\u0435\u043d<\/i><\/a> \u0416\u043e\u0440\u0436\u0430 \u0411\u0438\u0437\u0435. \u042d\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0441\u0430\u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435\u0439 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0443\u0437\u044b\u043a\u0438 \u0438\u0433\u0440\u044b <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A2%D0%B0%D0%BD%D0%B0%D0%BA%D0%B0,_%D0%A5%D0%B8%D1%80%D0%BE%D0%BA%D0%B0%D0%B4%D0%B7%D1%83\">\u0425\u0438\u0440\u043e\u043a\u0430\u0434\u0437\u0443 \u0422\u0430\u043d\u0430\u043a\u0430<\/a>.<\/p>\n<p>  Music-2 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u043e\u043b\u044c\u043a\u043b\u043e\u0440\u043d\u044b\u043c\u0438 \u0440\u0443\u0441\u0441\u043a\u0438\u043c\u0438 \u043f\u0435\u0441\u043d\u044f\u043c\u0438. Music-3 \u0437\u0430\u0433\u0430\u0434\u043e\u0447\u043d\u0430, \u0444\u0443\u0442\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u043d\u0430 \u0438 \u043d\u0435\u0436\u043d\u0430; \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043c\u0435\u043b\u043e\u0434\u0438\u0435\u0439 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0441\u043b\u0443\u0436\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 Nintendo of America.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0438\u0433\u0440\u043e\u043a\u0443 \u0432\u043f\u0430\u0441\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0430\u043d\u0438\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0441\u043e\u0442\u0430 \u043a\u0443\u0447\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442\u0441\u044f \u043a \u043f\u043e\u0442\u043e\u043b\u043a\u0443 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u043e\u043d\u043e\u0432\u043e\u0439 \u043c\u0443\u0437\u044b\u043a\u0438 \u0432 \u0431\u044b\u0441\u0442\u0440\u043e\u043c \u0442\u0435\u043c\u043f\u0435(<code>$06<\/code>\u2013<code>$08<\/code>).<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0441\u0440\u0435\u0434\u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043d\u0435\u0442 &#171;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%BE%D1%80%D0%BE%D0%B1%D1%83%D1%88%D0%BA%D0%B0\">\u041a\u043e\u0440\u043e\u0431\u0435\u0439\u043d\u0438\u043a\u043e\u0432<\/a>&#171;, \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0439 \u0442\u0435\u043c\u044b, \u0437\u0432\u0443\u0447\u0430\u0449\u0435\u0439 \u0432 Game Boy Tetris.<\/p>\n<p>  \u0417\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0432 <code>$06F0<\/code> \u0438 <code>$06F1<\/code>, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439.<\/p>\n<table>\n<tr>\n<th>\u0410\u0434\u0440\u0435\u0441<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><code>06F0<\/code><\/td>\n<td><code>02<\/code><\/td>\n<td>\u0417\u0430\u043d\u0430\u0432\u0435\u0441 \u043a\u043e\u043d\u0446\u0430 \u0438\u0433\u0440\u044b<\/td>\n<\/tr>\n<tr>\n<td><code>06F0<\/code><\/td>\n<td><code>03<\/code><\/td>\n<td>\u0420\u0430\u043a\u0435\u0442\u0430 \u0432 \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0435<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>01<\/code><\/td>\n<td>\u0412\u044b\u0431\u043e\u0440 \u043e\u043f\u0446\u0438\u0438 \u043c\u0435\u043d\u044e<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>02<\/code><\/td>\n<td>\u0412\u044b\u0431\u043e\u0440 \u044d\u043a\u0440\u0430\u043d\u0430 \u043c\u0435\u043d\u044e<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>03<\/code><\/td>\n<td>\u0421\u0434\u0432\u0438\u0433 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>04<\/code><\/td>\n<td>\u041f\u043e\u043b\u0443\u0447\u0435\u043d Tetris<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>05<\/code><\/td>\n<td>\u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>06<\/code><\/td>\n<td>\u041d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>07<\/code><\/td>\n<td>\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>08<\/code><\/td>\n<td>\u0429\u0435\u0431\u0435\u0442\u0430\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>09<\/code><\/td>\n<td>\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0440\u044f\u0434\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>06F1<\/code><\/td>\n<td><code>0A<\/code><\/td>\n<td>\u0420\u044f\u0434 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d<\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<h3>\u0418\u0433\u0440\u043e\u0432\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0440\u0435\u0436\u0438\u043c\u044b \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430<\/h3>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$0048<\/code>. \u0411\u041e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>$01<\/code>, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435, \u0447\u0442\u043e \u0438\u0433\u0440\u043e\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e. \u041e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u0438\u0433\u0440\u0430 \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$02<\/code> \u0434\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$08<\/code>, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<table>\n<tr>\n<th>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><code>00<\/code><\/td>\n<td>\u041d\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>01<\/code><\/td>\n<td>\u0418\u0433\u0440\u043e\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>02<\/code><\/td>\n<td>\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435<\/td>\n<\/tr>\n<tr>\n<td><code>03<\/code><\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a<\/td>\n<\/tr>\n<tr>\n<td><code>04<\/code><\/td>\n<td>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0440\u044f\u0434\u0430<\/td>\n<\/tr>\n<tr>\n<td><code>05<\/code><\/td>\n<td>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>06<\/code><\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0446\u0435\u043b\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 B-Type<\/td>\n<\/tr>\n<tr>\n<td><code>07<\/code><\/td>\n<td>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f<\/td>\n<\/tr>\n<tr>\n<td><code>08<\/code><\/td>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>09<\/code><\/td>\n<td>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f<\/td>\n<\/tr>\n<tr>\n<td><code>0A<\/code><\/td>\n<td>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u0430 \u043a\u043e\u043d\u0446\u0430 \u0438\u0433\u0440\u044b<\/td>\n<\/tr>\n<tr>\n<td><code>0B<\/code><\/td>\n<td>\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/td>\n<\/tr>\n<\/table>\n<p>  \u0412\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$81B2<\/code>:<\/p>\n<p>  <code>81B2: LDA $0048<br \/>  81B4: JSR $AC82 ; switch(playState) {<br \/>  81B7: 2F 9E ; case 00: goto 9E2F; \/\/ Unassign orientationID<br \/>  81B9: CF 81 ; case 01: goto 81CF; \/\/ Player controls active Tetrimino<br \/>  81BB: A2 99 ; case 02: goto 99A2; \/\/ Lock Tetrimino into playfield<br \/>  81BD: 6B 9A ; case 03: goto 9A6B; \/\/ Check for completed rows<br \/>  81BF: 39 9E ; case 04: goto 9E39; \/\/ Display line clearing animation<br \/>  81C1: 58 9B ; case 05: goto 9B58; \/\/ Update lines and statistics<br \/>  81C3: F2 A3 ; case 06: goto A3F2; \/\/ B-Type goal check; Unused frame for A-Type<br \/>  81C5: 03 9B ; case 07: goto 9B03; \/\/ Unused frame; Execute unfinished 2 player mode logic<br \/>  81C7: 8E 98 ; case 08: goto 988E; \/\/ Spawn next Tetrimino<br \/>  81C9: 39 9E ; case 09: goto 9E39; \/\/ Unused<br \/>  81CB: 11 9A ; case 0A: goto 9A11; \/\/ Update game over curtain<br \/>  81CD: 37 9E ; case 0B: goto 9E37; \/\/ Increment play state<br \/>   ; }<\/code><\/p>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <code>$00<\/code> switch \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u043a\u043e\u0434\u0443, \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0449\u0435\u043c\u0443 <code>orientationID<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>$13<\/code>, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435, \u0447\u0442\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u0430.<\/p>\n<p>  <code>9E2F: LDA #$13<br \/>  9E31: STA $0042 ; orientationID = UNASSIGNED;<\/p>\n<p>  9E33: RTS ; return;<\/code><\/p>\n<p>  \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f; \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>$00<\/code> \u0441\u043b\u0443\u0436\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>$01<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0433\u0440\u043e\u043a\u0443 \u0441\u0434\u0432\u0438\u0433\u0430\u0442\u044c, \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u043d\u0438\u0437 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e:<\/p>\n<p>  <code>81CF: JSR $89AE ; shift Tetrimino;<br \/>  81D2: JSR $88AB ; rotate Tetrimino;<br \/>  81D5: JSR $8914 ; drop Tetrimino;<\/p>\n<p>  81D8: RTS ; return;<\/code><\/p>\n<p>  \u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445, \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u0434\u0432\u0438\u0433\u0430, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0441\u043f\u0443\u0441\u043a\u0430 \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0451 \u043f\u043e\u0432\u0435\u0440\u0445 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0435\u0439\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u044b. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0438\u0433\u0440\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u044d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u0434 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$02<\/code>.<\/p>\n<p>  <code>99A2: JSR $948B ; if (new position valid) {<br \/>  99A5: BEQ $99B8 ; goto updatePlayfield;<br \/>   ; } <\/p>\n<p>  99A7: LDA #$02<br \/>  99A9: STA $06F0 ; play curtain sound effect;<\/p>\n<p>  99AC: LDA #$0A<br \/>  99AE: STA $0048 ; playState = UPDATE_GAME_OVER_CURTAIN;<\/p>\n<p>  99B0: LDA #$F0<br \/>  99B2: STA $0058 ; curtainRow = -16;<\/p>\n<p>  99B4: JSR $E003 ; updateAudio();<\/p>\n<p>  99B7: RTS ; return;<\/code><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430, \u043e\u043d\u0430 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 4 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043a\u0430\u043a \u0437\u0430\u043d\u044f\u0442\u044b\u0435. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e <code>$0A<\/code> \u2014 \u0437\u043b\u043e\u0432\u0435\u0449\u0435\u043c\u0443 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u0443 \u043a\u043e\u043d\u0446\u0430 \u0438\u0433\u0440\u044b.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b1b\/7c0\/a46\/b1b7c0a4637995c25423a07984bce24e.png\"><\/div>\n<p>  \u0417\u0430\u043d\u0430\u0432\u0435\u0441 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0432\u0435\u0440\u0445\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0432\u043d\u0438\u0437, \u0441\u043f\u0443\u0441\u043a\u0430\u044f\u0441\u044c \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 4 \u043a\u0430\u0434\u0440\u0430. <code>curtainRow<\/code> (<code>$0058<\/code>) \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u221216, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 0,27 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043c\u0435\u0436\u0434\u0443 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438. \u041f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9A21<\/code> \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <code>$0A<\/code> \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0438\u0436\u0435 \u043a\u043e\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0430\u044f \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u0435\u0439. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <code>curtainRow<\/code> \u043d\u0430 10. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043a\u043e\u0434 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9A51<\/code> \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438, \u0435\u0441\u043b\u0438 \u0441\u0447\u0451\u0442 \u0438\u0433\u0440\u043e\u043a\u0430 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 30 000 \u043e\u0447\u043a\u043e\u0432; \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f Start.<\/p>\n<p>  <code>9A11: LDA $0058 ; if (curtainRow == 20) {<br \/>  9A13: CMP #$14 ; goto endGame;<br \/>  9A15: BEQ $9A47 ; }<\/p>\n<p>  9A17: LDA $00B1 ; if (frameCounter not divisible by 4) {<br \/>  9A19: AND #$03 ; return; <br \/>  9A1B: BNE $9A46 ; }<\/p>\n<p>  9A1D: LDX $0058 ; if (curtainRow &lt; 0) {<br \/>  9A1F: BMI $9A3E ; goto incrementCurtainRow;<br \/>   ; } <\/p>\n<p>  9A21: LDA $96D6,X <br \/>  9A24: TAY ; rowIndex = 10 * curtainRow; <\/p>\n<p>  9A25: LDA #$00<br \/>  9A27: STA $00AA ; i = 0;<\/p>\n<p>  9A29: LDA #$13<br \/>  9A2B: STA $0042 ; orientationID = NONE;<\/p>\n<p>  drawCurtainRow:<\/p>\n<p>  9A2D: LDA #$4F <br \/>  9A2F: STA ($B8),Y ; playfield[rowIndex + i] = CURTAIN_TILE;<br \/>  9A31: INY <br \/>  9A32: INC $00AA ; i++;<br \/>  9A34: LDA $00AA<br \/>  9A36: CMP #$0A ; if (i != 10) {<br \/>  9A38: BNE $9A2D ; goto drawCurtainRow;<br \/>   ; }<\/p>\n<p>  9A3A: LDA $0058<br \/>  9A3C: STA $0049 ; vramRow = curtainRow;<\/p>\n<p>  incrementCurtainRow:<\/p>\n<p>  9A3E: INC $0058 ; curtainRow++;<\/p>\n<p>  9A40: LDA $0058 ; if (curtainRow != 20) {<br \/>  9A42: CMP #$14 ; return;<br \/>  9A44: BNE $9A46 ; }<\/p>\n<p>  9A46: RTS ; return;<\/p>\n<p>  endGame:<\/p>\n<p>  9A47: LDA $00BE <br \/>  9A49: CMP #$02<br \/>  9A4B: BEQ $9A64 ; if (numberOfPlayers == 1) {<\/p>\n<p>  9A4D: LDA $0075<br \/>  9A4F: CMP #$03<br \/>  9A51: BCC $9A5E ; if (score[2] &gt;= $03) {<\/p>\n<p>  9A53: LDA #$80<br \/>  9A55: JSR $A459<br \/>  9A58: JSR $9E3A<br \/>  9A5B: JMP $9A64 ; select ending; <br \/>   ; }<\/p>\n<p>  9A5E: LDA $00F5 ; if (not just pressed Start) {<br \/>  9A60: CMP #$10 ; return;<br \/>  9A62: BNE $9A6A ; }<br \/>   ; }<\/p>\n<p>  9A64: LDA #$00<br \/>  9A66: STA $0048 ; playState = INITIALIZE_ORIENTATION_ID;<br \/>  9A68: STA $00F5 ; clear newly pressed buttons;<\/p>\n<p>  9A6A: RTS ; return;<\/code><\/p>\n<p>  \u041a\u043e\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u043c\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>$00<\/code>, \u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u0433\u0440\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430.<\/p>\n<p>  \u0421\u0442\u0440\u043e\u043a\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u043e VRAM \u0434\u043b\u044f \u0438\u0445 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0418\u043d\u0434\u0435\u043a\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 <code>vramRow<\/code> (<code>$0049<\/code>). \u041f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9A3C<\/code> <code>vramRow<\/code> \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>curtainRow<\/code>, \u0447\u0442\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u043f\u0440\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435.<\/p>\n<p>  \u041c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 VRAM \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u0434\u0440\u043e\u0432\u043e\u0433\u043e \u0433\u0430\u0441\u044f\u0449\u0435\u0433\u043e \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430 (vertical blanking interval), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u042d\u043a\u0440\u0430\u043d \u0441 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439\u00bb. \u041e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u043d\u0438\u0436\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 (\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u0443\u044e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u043a\u0430\u043a <code>render()<\/code>).<\/p>\n<p>  <code>804B: LDA $00BD<br \/>  804D: JSR $AC82 ; switch(renderMode) {<br \/>  8050: B1 82 ; case 0: goto 82B1; \/\/ Legal and title screens<br \/>  8052: DA 85 ; case 1: goto 85DA; \/\/ Menu screens<br \/>  8054: 44 A3 ; case 2: goto A344; \/\/ Congratulations screen<br \/>  8056: EE 94 ; case 3: goto 94EE; \/\/ Play and demo<br \/>  8058: 95 9F ; case 4: goto 9F95; \/\/ Ending animation<br \/>   ; }<\/code><\/p>\n<p>  \u0420\u0435\u0436\u0438\u043c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0441\u0445\u043e\u0436 \u0441 \u0438\u0433\u0440\u043e\u0432\u044b\u043c \u0440\u0435\u0436\u0438\u043c\u043e\u043c. \u041e\u043d \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$00BD<\/code> \u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<table>\n<tr>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><code>00<\/code><\/td>\n<td>\u042d\u043a\u0440\u0430\u043d \u0441 \u044e\u0440. \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0438 \u044d\u043a\u0440\u0430\u043d \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td><code>01<\/code><\/td>\n<td>\u042d\u043a\u0440\u0430\u043d\u044b \u043c\u0435\u043d\u044e<\/td>\n<\/tr>\n<tr>\n<td><code>02<\/code><\/td>\n<td>\u042d\u043a\u0440\u0430\u043d Congratulations<\/td>\n<\/tr>\n<tr>\n<td><code>03<\/code><\/td>\n<td>\u0418\u0433\u0440\u0430 \u0438 \u0434\u0435\u043c\u043e<\/td>\n<\/tr>\n<tr>\n<td><code>04<\/code><\/td>\n<td>\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0446\u043e\u0432\u043a\u0438<\/td>\n<\/tr>\n<\/table>\n<p>  \u0427\u0430\u0441\u0442\u044c \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 <code>$03<\/code> \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0438\u0436\u0435.<\/p>\n<p>  <code>952A: JSR $9725 ; copyPlayfieldRowToVRAM();<br \/>  952D: JSR $9725 ; copyPlayfieldRowToVRAM();<br \/>  9530: JSR $9725 ; copyPlayfieldRowToVRAM();<br \/>  9533: JSR $9725 ; copyPlayfieldRowToVRAM();<\/code><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0438\u0436\u0435, <code>copyPlayfieldRowToVRAM()<\/code> \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u043e VRAM \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0438\u043c\u0435\u044e\u0449\u0443\u044e \u0438\u043d\u0434\u0435\u043a\u0441 <code>vramRow<\/code>. \u0415\u0441\u043b\u0438 <code>vramRow<\/code> \u0431\u043e\u043b\u044c\u0448\u0435 20, \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>  <code>9725: LDX $0049 ; if (vramRow &gt; 20) { <br \/>  9727: CPX #$15 ; return;<br \/>  9729: BPL $977E ; }<\/p>\n<p>  972B: LDA $96D6,X <br \/>  972E: TAY ; playfieldAddress = 10 * vramRow;<\/p>\n<p>  972F: TXA <br \/>  9730: ASL <br \/>  9731: TAX<br \/>  9732: INX ; high = vramPlayfieldRows[vramRow * 2 + 1];<br \/>  9733: LDA $96EA,X<br \/>  9736: STA $2006 <br \/>  9739: DEX <\/p>\n<p>  973A: LDA $00BE <br \/>  973C: CMP #$01<br \/>  973E: BEQ $975E ; if (numberOfPlayers == 2) {<\/p>\n<p>  9740: LDA $00B9 <br \/>  9742: CMP #$05<br \/>  9744: BEQ $9752 ; if (leftPlayfield) {<\/p>\n<p>  9746: LDA $96EA,X <br \/>  9749: SEC<br \/>  974A: SBC #$02<br \/>  974C: STA $2006 ; low = vramPlayfieldRows[vramRow * 2] - 2;<\/p>\n<p>  974F: JMP $9767 ; } else {<\/p>\n<p>  9752: LDA $96EA,X<br \/>  9755: CLC<br \/>  9756: ADC #$0C<br \/>  9758: STA $2006 ; low = vramPlayfieldRows[vramRow * 2] + 12;<\/p>\n<p>  975B: JMP $9767 ; } else {<\/p>\n<p>  975E: LDA $96EA,X <br \/>  9761: CLC<br \/>  9762: ADC #$06 ; low = vramPlayfieldRows[vramRow * 2] + 6;<br \/>  9764: STA $2006 ; }<\/p>\n<p>  ; vramAddress = (high &lt;&lt; 8) | low;<\/p>\n<p>  9767: LDX #$0A<br \/>  9769: LDA ($B8),Y <br \/>  976B: STA $2007 <br \/>  976E: INY ; for(i = 0; i &lt; 10; i++) {<br \/>  976F: DEX ; vram[vramAddress + i] = playfield[playfieldAddress + i];<br \/>  9770: BNE $9769 ; }<\/p>\n<p>  9772: INC $0049 ; vramRow++;<br \/>  9774: LDA $0049 ; if (vramRow &lt; 20) {<br \/>  9776: CMP #$14 ; return;<br \/>  9778: BMI $977E ; }<\/p>\n<p>  977A: LDA #$20<br \/>  977C: STA $0049 ; vramRow = 32;<\/p>\n<p>  977E: RTS ; return;<\/code><\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 <code>vramPlayfieldRows<\/code> (<code>$96EA<\/code>) \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 VRAM \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 little endian, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u043c \u0441\u0442\u0440\u043e\u043a\u0430\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u043c \u043d\u0430 6 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0438 \u043d\u0430 \u22122 \u0438 12 \u0434\u043b\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0432 \u043d\u0435\u0434\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 2 Player Versus. \u0411\u0430\u0439\u0442\u044b \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u043a\u0430\u043a \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043f\u043e\u0441\u043b\u0435 \u0443\u0440\u043e\u0432\u043d\u044f 29. \u0421\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043d\u0438\u0436\u043d\u0438\u0435 \u0438 \u0432\u0435\u0440\u0445\u043d\u0438\u0435 \u0431\u0430\u0439\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e \u0441\u0443\u0442\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 <code>vramRow<\/code>. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 20, \u0442\u043e \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 32, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435, \u0447\u0442\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u0437\u0430 \u043a\u0430\u0434\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 4 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$03<\/code> \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0445 \u0441 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 4 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043e\u043d \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a <code>[\u22122, 1]<\/code> \u0440\u044f\u0434\u043e\u043c \u0441 \u0446\u0435\u043d\u0442\u0440\u043e\u043c \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e (\u043e\u0431\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435). \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$004A<\/code>\u2013<code>$004D<\/code>; \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 0 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043d\u0438\u0436\u0435.<\/p>\n<p>  <code>9A6B: LDA $0049 <br \/>  9A6D: CMP #$20 ; if (vramRow &lt; 32) {<br \/>  9A6F: BPL $9A74 ; return;<br \/>  9A71: JMP $9B02 ; } <\/p>\n<p>  9A74: LDA $0041 ; rowY = tetriminoY - 2; <br \/>  9A76: SEC <br \/>  9A77: SBC #$02 ; if (rowY &lt; 0) {<br \/>  9A79: BPL $9A7D ; rowY = 0;<br \/>  9A7B: LDA #$00 ; }<\/p>\n<p>  9A7D: CLC<br \/>  9A7E: ADC $0057 <br \/>  9A80: STA $00A9 ; rowY += lineIndex; <\/p>\n<p>  9A82: ASL <br \/>  9A83: STA $00A8 <br \/>  9A85: ASL<br \/>  9A86: ASL <br \/>  9A87: CLC<br \/>  9A88: ADC $00A8 <br \/>  9A8A: STA $00A8 ; rowIndex = 10 * rowY;<\/p>\n<p>  9A8C: TAY <br \/>  9A8D: LDX #$0A <br \/>  9A8F: LDA ($B8),Y <br \/>  9A91: CMP #$EF ; for(i = 0; i &lt; 10; i++) {<br \/>  9A93: BEQ $9ACC ; if (playfield[rowIndex + i] == EMPTY_TILE) {<br \/>  9A95: INY ; goto rowNotComplete; <br \/>  9A96: DEX ; } <br \/>  9A97: BNE $9A8F ; }<\/p>\n<p>  9A99: LDA #$0A<br \/>  9A9B: STA $06F1 ; play row completed sound effect;<\/p>\n<p>  9A9E: INC $0056 ; completedLines++;<\/p>\n<p>  9AA0: LDX $0057 <br \/>  9AA2: LDA $00A9 <br \/>  9AA4: STA $4A,X ; lines[lineIndex] = rowY;<\/p>\n<p>  9AA6: LDY $00A8<br \/>  9AA8: DEY <br \/>  9AA9: LDA ($B8),Y <br \/>  9AAB: LDX #$0A <br \/>  9AAD: STX $00B8<br \/>  9AAF: STA ($B8),Y <br \/>  9AB1: LDA #$00<br \/>  9AB3: STA $00B8<br \/>  9AB5: DEY ; for(i = rowIndex - 1; i &gt;= 0; i--) {<br \/>  9AB6: CPY #$FF ; playfield[i + 10] = playfield[i]; <br \/>  9AB8: BNE $9AA9 ; }<\/p>\n<p>  9ABA: LDA #$EF <br \/>  9ABC: LDY #$00<br \/>  9ABE: STA ($B8),Y <br \/>  9AC0: INY ; for(i = 0; i &lt; 10; i++) {<br \/>  9AC1: CPY #$0A ; playfield[i] = EMPTY_TILE;<br \/>  9AC3: BNE $9ABE ; }<\/p>\n<p>  9AC5: LDA #$13<br \/>  9AC7: STA $0042 ; orientationID = UNASSIGNED;<\/p>\n<p>  9AC9: JMP $9AD2 ; goto incrementLineIndex;<\/p>\n<p>  rowNotComplete:<\/p>\n<p>  9ACC: LDX $0057<br \/>  9ACE: LDA #$00<br \/>  9AD0: STA $4A,X ; lines[lineIndex] = 0;<\/p>\n<p>  incrementLineIndex:<\/p>\n<p>  9AD2: INC $0057 ; lineIndex++;<\/p>\n<p>  9AD4: LDA $0057 ; if (lineIndex &lt; 4) {<br \/>  9AD6: CMP #$04 ; return;<br \/>  9AD8: BMI $9B02 ; }<\/p>\n<p>  9ADA: LDY $0056<br \/>  9ADC: LDA $9B53,Y <br \/>  9ADF: CLC<br \/>  9AE0: ADC $00BC<br \/>  9AE2: STA $00BC ; totalGarbage += garbageLines[completedLines];<\/p>\n<p>  9AE4: LDA #$00<br \/>  9AE6: STA $0049 ; vramRow = 0;<br \/>  9AE8: STA $0052 ; clearColumnIndex = 0;<\/p>\n<p>  9AEA: LDA $0056 <br \/>  9AEC: CMP #$04 <br \/>  9AEE: BNE $9AF5 ; if (completedLines == 4) {<br \/>  9AF0: LDA #$04 ; play Tetris sound effect; <br \/>  9AF2: STA $06F1 ; }<\/p>\n<p>  9AF5: INC $0048 ; if (completedLines &gt; 0) {<br \/>  9AF7: LDA $0056 ; playState = DISPLAY_LINE_CLEARING_ANIMATION;<br \/>  9AF9: BNE $9B02 ; return; <br \/>   ; }<\/p>\n<p>  9AFB: INC $0048 ; playState = UPDATE_LINES_AND_STATISTICS;<\/p>\n<p>  9AFD: LDA #$07 <br \/>  9AFF: STA $06F1 ; play piece locked sound effect;<\/p>\n<p>  9B02: RTS ; return;<\/code><\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 <code>vramRow<\/code> \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0435 \u0441\u0442\u0440\u043e\u043a \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0432 VRAM (\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$03<\/code> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435). \u0415\u0441\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b, <code>vramRow<\/code> \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0, \u0447\u0442\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441.<\/p>\n<p>  <code>lineIndex<\/code> (<code>$00A9<\/code>) \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0 \u0438 \u0435\u0433\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435.<\/p>\n<p>  \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$0A<\/code> \u0438 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$96D6<\/code>, \u0431\u043b\u043e\u043a, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0441 <code>$9A82<\/code> \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 <code>rowY<\/code> \u043d\u0430 10 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0434\u0432\u0438\u0433\u043e\u0432 \u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p>  <code>rowIndex = (rowY &lt;&lt; 1) + (rowY &lt;&lt; 3); \/\/ rowIndex = 2 * rowY + 8 * rowY;<\/code><\/p>\n<p>  \u0422\u0430\u043a \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e <code>rowY<\/code> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c <code>[0, 20]<\/code>, \u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <code>[0, 19]<\/code>. \u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u044f\u0434\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041e\u0434\u043d\u0430\u043a\u043e, \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u0438\u0433\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 <code>$0400<\/code>\u2013<code>$04FF<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>$EF<\/code> (\u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430), \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0431\u043e\u043b\u0435\u0435 5 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0443\u0441\u0442\u044b\u0445 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u0434 \u043f\u043e\u043b\u043e\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f.<\/p>\n<p>  \u0411\u043b\u043e\u043a, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0441 <code>$9ADA<\/code>, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 2 Player Versus. \u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0440\u044f\u0434\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9B53<\/code>:<\/p>\n<p>  <code>9B53: 00 ; no cleared lines<br \/>  9B54: 00 ; Single<br \/>  9B55: 01 ; Double<br \/>  9B56: 02 ; Triple<br \/>  9B57: 04 ; Tetris<\/code><\/p>\n<p>  \u0426\u0438\u043a\u043b \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>$9AA6<\/code> \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043d\u0430\u0434 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u0440\u044f\u0434\u043e\u043c \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u043d\u0438\u0437. \u041e\u043d \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 10 \u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u044d\u0442\u0438\u043c \u0446\u0438\u043a\u043b \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p>  \u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0440\u044f\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$04<\/code>, \u043d\u043e \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u043e\u043d\u0430 \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0443\u0441\u0442.<\/p>\n<p>  <code>9E39: RTS ; return;<\/code><\/p>\n<p>  \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$04<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 <code>$03<\/code>.<\/p>\n<p>  <code>94EE: LDA $0068 <br \/>  94F0: CMP #$04<br \/>  94F2: BNE $9522 ; if (playState == DISPLAY_LINE_CLEARING_ANIMATION) {<\/p>\n<p>  94F4: LDA #$04<br \/>  94F6: STA $00B9 ; leftPlayfield = true;<\/p>\n<p>  94F8: LDA $0072<br \/>  94FA: STA $0052<br \/>  94FC: LDA $006A<br \/>  94FE: STA $004A<br \/>  9500: LDA $006B<br \/>  9502: STA $004B<br \/>  9504: LDA $006C<br \/>  9506: STA $004C<br \/>  9508: LDA $006D<br \/>  950A: STA $004D<br \/>  950C: LDA $0068<br \/>  950E: STA $0048 ; mirror values;<\/p>\n<p>  9510: JSR $977F ; updateLineClearingAnimation();<\/p>\n<p>   ; ...<br \/>   ; }<\/code><\/p>\n<p>  <code>leftPlayfield<\/code> \u0438 \u043e\u0442\u0437\u0435\u0440\u043a\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u043d\u0435\u0434\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 2 Player Versus.<\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 <code>updateLineClearingAnimation()<\/code>. \u041e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435, \u043d\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0435\u0451 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u043c \u043a\u0430\u0434\u0440\u0435. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435 \u043e\u043d\u0430 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 2 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0432 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u0434\u0432\u0438\u0433\u0430\u044f\u0441\u044c \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043d\u0430\u0440\u0443\u0436\u0443.<\/p>\n<p>  <code>977F: LDA $00B1 ; if (frameCounter not divisible by 4) {<br \/>  9781: AND #$03 ; return;<br \/>  9783: BNE $97FD ; }<\/p>\n<p>  9785: LDA #$00 ; for(i = 0; i &lt; 4; i++) {<br \/>  9787: STA $00AA ; rowY = lines[i];<br \/>  9789: LDX $00AA ; if (rowY == 0) {<br \/>  978B: LDA $4A,X ; continue;<br \/>  978D: BEQ $97EB ; }<\/p>\n<p>  978F: ASL<br \/>  9790: TAY <br \/>  9791: LDA $96EA,Y <br \/>  9794: STA $00A8 ; low = vramPlayfieldRows[2 * rowY];<\/p>\n<p>  9796: LDA $00BE ; if (numberOfPlayers == 2) {<br \/>  9798: CMP #$01 ; goto twoPlayers;<br \/>  979A: BNE $97A6 ; }<\/p>\n<p>  979C: LDA $00A8<br \/>  979E: CLC<br \/>  979F: ADC #$06<br \/>  97A1: STA $00A8 ; low += 6;<\/p>\n<p>  97A3: JMP $97BD ; goto updateVRAM;<\/p>\n<p>  twoPlayers:<\/p>\n<p>  97A6: LDA $00B9 <br \/>  97A8: CMP #$04<br \/>  97AA: BNE $97B6 ; if (leftPlayfield) {<\/p>\n<p>  97AC: LDA $00A8<br \/>  97AE: SEC<br \/>  97AF: SBC #$02<br \/>  97B1: STA $00A8 ; low -= 2;<\/p>\n<p>  97B3: JMP $97BD ; } else {<\/p>\n<p>  97B6: LDA $00A8<br \/>  97B8: CLC<br \/>  97B9: ADC #$0C ; low += 12; <br \/>  97BB: STA $00A8 ; }<\/p>\n<p>  updateVRAM:<\/p>\n<p>  97BD: INY <br \/>  97BE: LDA $96EA,Y<br \/>  97C1: STA $00A9 <br \/>  97C3: STA $2006 <br \/>  97C6: LDX $0052 ; high = vramPlayfieldRows[2 * rowY + 1]; <br \/>  97C8: LDA $97FE,X <br \/>  97CB: CLC ; rowAddress = (high &lt;&lt; 8) | low;<br \/>  97CC: ADC $00A8 <br \/>  97CE: STA $2006 ; vramAddress = rowAddress + leftColumns[clearColumnIndex];<br \/>  97D1: LDA #$FF<br \/>  97D3: STA $2007 ; vram[vramAddress] = 255;<\/p>\n<p>  97D6: LDA $00A9 <br \/>  97D8: STA $2006 <br \/>  97DB: LDX $0052 ; high = vramPlayfieldRows[2 * rowY + 1];<br \/>  97DD: LDA $9803,X <br \/>  97E0: CLC ; rowAddress = (high &lt;&lt; 8) | low;<br \/>  97E1: ADC $00A8<br \/>  97E3: STA $2006 ; vramAddress = rowAddress + rightColumns[clearColumnIndex];<br \/>  97E6: LDA #$FF <br \/>  97E8: STA $2007 ; vram[vramAddress] = 255;<\/p>\n<p>  97EB: INC $00AA<br \/>  97ED: LDA $00AA<br \/>  97EF: CMP #$04<br \/>  97F1: BNE $9789 ; }<\/p>\n<p>  97F3: INC $0052 ; clearColumnIndex++;<br \/>  97F5: LDA $0052 ; if (clearColumnIndex &lt; 5) {<br \/>  97F7: CMP #$05 ; return;<br \/>  97F9: BMI $97FD ; }<\/p>\n<p>  97FB: INC $0048 ; playState = UPDATE_LINES_AND_STATISTICS;<\/p>\n<p>  97FD: RTS ; return;<\/code><\/p>\n<p>  16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 VRAM \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0432 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0438\u0437 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>  <code>97FE: 04 03 02 01 00 ; left columns <br \/>  9803: 05 06 07 08 09 ; right columns<\/code><\/p>\n<p>  \u0414\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 5 \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u0432. \u0417\u0430\u0442\u0435\u043c \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0438\u0433\u0440\u043e\u0432\u043e\u043c\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e.<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$05<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u0434, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0420\u044f\u0434\u044b \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430\u00bb. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u0438\u043c \u043a\u043e\u0434\u043e\u043c:<\/p>\n<p>  <code>9C9E: LDA #$00<br \/>  9CA0: STA $0056 ; completedLines = 0;<\/p>\n<p>  9CA2: INC $0048 ; playState = B_TYPE_GOAL_CHECK;<\/p>\n<p>  9CA4: RTS ; return;<\/code><\/p>\n<p>  \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>completedLines<\/code> \u043d\u0435 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$05<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u044f\u0434\u043e\u0432 \u0438 \u0441\u0447\u0451\u0442\u0430. \u042d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0431\u0430\u0433\u0430. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u0435\u043c\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u0438\u0433\u0440\u0430 \u043d\u0435 \u0441\u043e\u0431\u0435\u0440\u0451\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0440\u044f\u0434, \u0430 \u0437\u0430\u0442\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0436\u0430\u0442\u044c Start, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0440\u044f\u0434\u0430. \u0418\u0433\u0440\u0430 \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u043a \u044d\u043a\u0440\u0430\u043d\u0443 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0431\u0435\u0440\u0451\u0442\u0435 \u0432\u0440\u0435\u043c\u044f, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>completedLines<\/code> \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0433\u0440\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 A-Type. \u041f\u0440\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$03<\/code> \u043d\u0430\u0447\u043d\u0451\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432. \u041e\u043d \u043d\u0435 \u043d\u0430\u0439\u0434\u0451\u0442 \u0438\u0445, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442 <code>completedLines<\/code> \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <code>$05<\/code> \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u044f\u0434\u043e\u0432 \u0438 \u0441\u0447\u0451\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0430\u0442\u0441\u044f, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u0438\u0445 \u043d\u0430\u0431\u0440\u0430\u043b\u0438 \u0432\u044b.<\/p>\n<p>  \u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0434\u043e\u0436\u0434\u0430\u0432\u0448\u0438\u0441\u044c, \u043f\u043e\u043a\u0430 \u0434\u0435\u043c\u043e \u0441\u043e\u0431\u0435\u0440\u0451\u0442 Tetris (\u0432 \u0434\u0435\u043c\u043e \u0438\u0445 \u0431\u0443\u0434\u0435\u0442 2). \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043c\u0435\u0440\u0446\u0430\u043d\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0430, \u043d\u0430\u0436\u0438\u043c\u0430\u0439\u0442\u0435 Start.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2a8\/80a\/091\/2a880a09173c42fb8c5256f9921a635b.png\"><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u043e\u0439 \u0438\u0433\u0440\u044b \u044d\u043a\u0440\u0430\u043d \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u043c\u0435\u0440\u0446\u0430\u0442\u044c. \u0412\u0441\u0451 \u044d\u0442\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043a\u043e\u0434\u0443, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439.<\/p>\n<p>  <code>9673: LDA #$3F<br \/>  9675: STA $2006<br \/>  9678: LDA #$0E<br \/>  967A: STA $2006 ; prepare to modify background tile color;<\/p>\n<p>  967D: LDX #$00 ; color = DARK_GRAY;<\/p>\n<p>  967F: LDA $0056<br \/>  9681: CMP #$04<br \/>  9683: BNE $9698 ; if (completedLines == 4) {<\/p>\n<p>  9685: LDA $00B1 <br \/>  9687: AND #$03<br \/>  9689: BNE $9698 ; if (frameCounter divisible by 4) {<\/p>\n<p>  968B: LDX #$30 ; color = WHITE;<\/p>\n<p>  968D: LDA $00B1<br \/>  968F: AND #$07<br \/>  9691: BNE $9698 ; if (frameCounter divisible by 8) { <\/p>\n<p>  9693: LDA #$09<br \/>  9695: STA $06F1 ; play clear sound effect;<\/p>\n<p>  ; }<br \/>   ; }<br \/>   ; }<\/p>\n<p>  9698: STX $2007 ; update background tile color;<\/code><\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0434\u043e \u043f\u043e\u043b\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0441\u0447\u0451\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u0441\u044f \u043d\u0430 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <code>holdDownPoints<\/code> (<code>$004F<\/code>) \u0442\u043e\u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0432\u043e\u0451 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0435\u043c\u043e. \u042d\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u0434\u0435\u043c\u043e \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u043b\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430. <code>holdDownPoints<\/code> \u043d\u0435 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u00ab\u0412\u043d\u0438\u0437\u00bb.<\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c Start \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0440\u044f\u0434\u043e\u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 Tetris \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u0435\u043c\u043e, \u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043d\u043e\u0432\u0430 \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0434\u0435\u043c\u043e, \u0432 \u0434\u0435\u043c\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0447\u0442\u0443\u0442\u0441\u044f \u043e\u0447\u043a\u0438 \u0437\u0430 Tetris, \u043d\u043e \u0438 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c \u0442\u0430\u0439\u043c\u0438\u043d\u0433. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0434\u0435\u043c\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u0435\u0442 \u0438\u0433\u0440\u0443. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u0430 \u043a\u043e\u043d\u0446\u0430 \u0438\u0433\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u044d\u043a\u0440\u0430\u043d\u0443 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 Start.<\/p>\n<p>  \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>$06<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0446\u0435\u043b\u0438 \u0434\u043b\u044f \u0438\u0433\u0440 \u0440\u0435\u0436\u0438\u043c\u0430 B-Type. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 A-Type \u043e\u043d\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u043a\u0430\u0434\u0440\u043e\u043c.<\/p>\n<p>  \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>$07<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 2 Player Versus. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u043a\u0430 \u043e\u043d\u043e \u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u043a\u0430\u043a \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u0434\u0440.<\/p>\n<p>  \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>$08<\/code> \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e\u00bb \u0438 \u00ab\u0412\u044b\u0431\u043e\u0440 \u0442\u0435\u0442\u0440\u0438\u043c\u0438\u043d\u043e\u00bb.<\/p>\n<p>  \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>$09<\/code> \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. <code>$0B<\/code> \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043d\u043e \u0442\u043e\u0436\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c.<\/p>\n<p>  \u0418 \u0432\u043e\u0442, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b \u0438\u0433\u0440\u044b:<\/p>\n<p>  <code> ; while(true) {<\/p>\n<p>  8138: JSR $8161 ; branchOnGameMode();<\/p>\n<p>  813B: CMP $00A7 ; if (vertical blanking interval wait requested) {<br \/>  813D: BNE $8142 ; waitForVerticalBlankingInterval(); <br \/>  813F: JSR $AA2F ; }<\/p>\n<p>  8142: LDA $00C0 <br \/>  8144: CMP #$05 <br \/>  8146: BNE $815A ; if (gameMode == DEMO) {<\/p>\n<p>  8148: LDA $00D2 <br \/>  814A: CMP #$DF<br \/>  814C: BNE $815A ; if (reached end of demo table) {<\/p>\n<p>  814E: LDA #$DD<br \/>  8150: STA $00D2 ; reset demo table index;<\/p>\n<p>  8152: LDA #$00<br \/>  8154: STA $00B2 ; clear upper byte of frame counter;<\/p>\n<p>  8156: LDA #$01<br \/>  8158: STA $00C0 ; gameMode = TITLE_SCREEN;<br \/>   ; }<br \/>   ; }<br \/>  815A: JMP $8138 ; }<\/code><\/div>\n<p>        <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/post\/420725\/\"> https:\/\/habr.com\/post\/420725\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div data-io-article-url=\"https:\/\/habr.com\/post\/420725\/\" class=\"post__text post__text-html js-mediator-article\">\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u044e \u043e\u0431\u043c\u0430\u043d\u0447\u0438\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 Nintendo Tetris, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u043b \u0418\u0418, \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/48f\/1a4\/9b8\/48f1a49b87860e6139e8d298e1fe6188.png\"><\/div>\n<p>  <\/p>\n<h2>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u0430\u043c\u0438<\/h2>\n<p>  <\/p>\n<h3>\u041e \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/h3>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0443\u043f\u043e\u0440\u0441\u0442\u0432\u0430, \u0442\u0435\u0440\u043f\u0435\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u044f Nintendo Tetris, \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u0418\u0418, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u0438\u0433\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0412\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f 30 \u0438 \u0434\u0430\u0436\u0435 \u0434\u0430\u043b\u044c\u0448\u0435. \u0412\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0447\u043a\u043e\u0432 \u0438 \u043f\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0435 \u0437\u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432 \u0440\u044f\u0434\u043e\u0432, \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438. \u0423\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u044f\u0445, \u0432\u044b\u0448\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u043c\u043e\u0433 \u0437\u0430\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-288462","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/288462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=288462"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/288462\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=288462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=288462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=288462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}