{"id":447723,"date":"2025-02-10T15:07:09","date_gmt":"2025-02-10T15:07:09","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=447723"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=447723","title":{"rendered":"<span>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u0434\u043b\u044f Dendy\/NES. \u0427\u0430\u0441\u0442\u044c 1<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/c57\/c19\/09f\/c57c1909f8d27102e13f35c5dd7f3992.jpg\" alt=\"D:\\Job\\\u041f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\\3D \u0413\u0440\u0430\u0444\u0438\u043a\u0430 NES\\LOGO.png\" title=\"\" width=\"4000\" height=\"2666\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c57\/c19\/09f\/c57c1909f8d27102e13f35c5dd7f3992.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u0438 <strong>Dendy<\/strong> (<strong>NES\/Famicom<\/strong>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u0434 \u043d\u0438\u043c\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 (\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0437\u0430\u043b\u0438\u0432\u043a\u0430 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u0438 \u0442. \u0434.). \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 NES.<\/p>\n<h2>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447<\/h2>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<ol>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u041e\u0417\u0423 (2 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430).<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u043c \u0438 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0446\u0432\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434\u044b \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442 STL-\u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u044f \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044f\u043c\u0438, \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. NES \u043f\u043b\u043e\u0445\u043e \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 (\u0432\u0441\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u0439\u043b\u043e\u0432 8&#215;8 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/835120\/\"><u>\u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0433\u0440 \u0434\u043b\u044f Dendy<\/u><\/a>). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u043d\u0443\u0436\u0434\u0430\u0435\u0442 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u043e \u043d\u0430 \u043a\u0440\u0430\u0441\u043e\u0442\u0443 \u043a\u043e\u0434\u0430 \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u043e \u0447\u0451\u043c \u044f \u0433\u043e\u0432\u043e\u0440\u044e).\u00a0<\/p>\n<p>\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043d\u0441\u043e\u043b\u0438:<\/p>\n<ul>\n<li>\n<p><strong>\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/strong>: 8-\u0431\u0438\u0442\u043d\u044b\u0439 MOS Technology 6502 (1,79 \u041c\u0413\u0446);<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0417\u0423<\/strong>: 2 \u041a\u0411;<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0417\u0423<\/strong>: 32 \u041a\u0411;<\/p>\n<\/li>\n<li>\n<p><strong>\u0413\u0440\u0430\u0444\u0438\u043a\u0430<\/strong>: \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0430\u044f, 256&#215;240 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, 64 \u0441\u043f\u0440\u0430\u0439\u0442\u0430 (8&#215;8 \u0438\u043b\u0438 8&#215;16 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439);<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438<\/strong>: 8 \u041a\u0411;<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u0430\u0434\u0440\u044b \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/strong>: 60 FPS (NTSC) \u0438\u043b\u0438 50 FPS (PAL).<\/p>\n<\/li>\n<\/ul>\n<h2>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043c\u0430\u043f\u043f\u0435\u0440<\/h2>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 NES \u0438\u043c\u0435\u0435\u0442 32 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 (\u041f\u0417\u0423) \u0438 8 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438 (\u0432 \u0432\u0438\u0434\u0435 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u043e 256 \u0442\u0430\u0439\u043b\u043e\u0432). \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0432\u0438\u0436\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u041f\u0417\u0423 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u0435\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0430\u043f\u043f\u0435\u0440\u0430 UnROM, \u043e \u043d\u0451\u043c \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/812573\/\"><u>\u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439<\/u><\/a>. \u042d\u0442\u043e\u0442 \u043c\u0430\u043f\u043f\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e 256 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u041e\u0417\u0423 \u0432\u043c\u0435\u0441\u0442\u043e \u041f\u0417\u0423 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u0418\u0437 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0443 \u043d\u0430\u0441 \u0434\u0432\u0443\u0445 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u041e\u0417\u0423 \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u044a\u0451\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043d\u0443\u0436\u0434 (\u0438\u0437 \u043d\u0438\u0445 256 \u0431\u0430\u0439\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445).<\/p>\n<h2>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439<\/h2>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0432\u044b\u0448\u0435, \u0432\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u0439\u043b\u043e\u0432 8\u04458 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0431\u0438\u0442\u0430\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u0446\u0432\u0435\u0442\u0430 (\u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0446\u0432\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c). \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0443 \u043d\u0430\u0441 \u0443\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0431\u0438\u0442\u0430, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 16 \u0431\u0430\u0439\u0442\u043e\u0432.<\/p>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0446\u0432\u0435\u0442\u0430\u0445 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u043f\u043e \u0432\u043e\u0441\u0435\u043c\u044c \u0431\u0430\u0439\u0442\u043e\u0432. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u0430\u0445 \u0446\u0432\u0435\u0442\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0442\u0430\u0439\u043b\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 (\u0433\u0434\u0435 \u043c\u043b\u0430\u0434\u0448\u0438\u0439 \u0431\u0438\u0442 \u2014 \u044d\u0442\u043e \u043a\u0440\u0430\u0439\u043d\u0438\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c). \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0435 \u0432\u0441\u0451 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b \u00ab1\/2\u00bb:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e44\/c60\/c70\/e44c60c707d160795ae2068bbc5fcee2.png\" alt=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b7b\/0f8\/683\/b7b0f8683e79edc6aecf07b7b9ad0e53.png\" title=\"\" width=\"256\" height=\"128\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e44\/c60\/c70\/e44c60c707d160795ae2068bbc5fcee2.png\"\/><\/figure>\n<p>\u0418\u0437 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0432\u044b\u0448\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0431\u0438\u0442\u0443 \u0432 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0435\u0434\u044c\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u0430\u0439\u043b\u0430 (\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441 \u0435\u0434\u0438\u043d\u0438\u0446\u044b), \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u0441\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u0441\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f. \u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>\u0411\u0443\u0444\u0435\u0440 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 \u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435. \u042d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u043a\u043e\u0434, \u043d\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 CC65 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0432 \u0431\u0443\u0444\u0435\u0440\u0435:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0422\u0443\u0442 \u043e\u043f\u0438\u0448\u0435\u043c \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \/\/ \u0412\u0435\u0440\u0445\u043d\u0438\u0435 32 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 \/\/ \u0410 \u043d\u0438\u0436\u043d\u0438\u0435 32 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 \/\/ \/\/ X, Y \u2013 \u0437\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f void set_pixel_to_screen_buffer (void) { \u00a0\u00a0\u00a0\u00a0\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u00a0\u00a0\u00a0\u00a0if (Y &gt; 31) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer = screen_buffer2; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Y -= 32; \u00a0\u00a0\u00a0\u00a0} else { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer = screen_buffer; \u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0442\u0430\u0439\u043b\u0430 \u043b\u0438\u043d\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u00a0\u00a0\u00a0\u00a0\/\/ 8 \u0442\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, 8 \u0431\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 \u0442\u0430\u0439\u043b, 64 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u00a0\u00a0\u00a0\u00a0\/\/ temp3 = ((y_h &amp; b1111_1000) &gt;&gt; 3) * 64; \u00a0\u00a0\u00a0\u00a0\/\/ \u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u00a0\u00a0\u00a0\u00a0byte_index = ((Y &amp; b1111_1000) &lt;&lt; 3) ;\u00a0 \u00a0 byte_index\u00a0 += (X &amp; b1111_1000); \/\/ \u041d\u043e\u043c\u0435\u0440 \u0442\u0430\u0439\u043b\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u00a0\u00a0\u00a0\u00a0\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u0439\u043b\u0430 (\u041e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 - \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0439\u043b\u0430) \u00a0\u00a0\u00a0\u00a0byte_index\u00a0 += (Y &amp; b0000_0111); \u00a0\u00a0\u00a0\u00a0\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\/\u0431\u0438\u0442\u0430 \u00a0\u00a0\u00a0\u00a0bit_index = (X &amp; b0000_0111); \u00a0\u00a0\u00a0\u00a0\/\/ \u0421\u0442\u0430\u0432\u0438\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u00a0\u00a0\u00a0\u00a0\/\/ switch \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u0434\u0432\u0438\u0433\u0430 \u00a0\u00a0\u00a0\u00a0switch (bit_index) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 0: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b1000_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 1: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0100_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 2: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0010_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 3: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0001_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 4: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_1000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 5: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_0100; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break;  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 6: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_0010; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 7: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_0001; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0}  }<\/code><\/pre>\n<p>\u0418\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u0432 \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c, \u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u0431\u0430\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0446\u0432\u0435\u0442\u0430. \u0421\u0442\u0438\u0440\u0430\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u0431\u0440\u043e\u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0431\u0438\u0442\u043e\u0432.<\/p>\n<h2>\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430<\/h2>\n<p>\u0421 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u0430\u0434\u0440\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0443 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d.<\/p>\n<p>\u041e\u0434\u0438\u043d \u0442\u0430\u0439\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 16 \u0431\u0430\u0439\u0442\u043e\u0432, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 8\u04458 \u0442\u0430\u0439\u043b\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong>\u043e\u0434\u0438\u043d \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442<\/strong>, \u0430 \u0435\u0441\u043b\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0441\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u043e\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0432 <strong>512 \u0431\u0430\u0439\u0442\u043e\u0432<\/strong>. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043e\u0431\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.<\/p>\n<p>\u0412\u044b\u0431\u043e\u0440 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u044b \u0432 8\u04458 \u0442\u0430\u0439\u043b\u043e\u0432 \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u041e\u0417\u0423, \u043d\u043e \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 (\u0432 NES \u0442\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u043a\u0440\u0430\u043d\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430\u043c\u0438, \u0430 \u0442\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e \u0441\u0435\u0442\u043a\u0435, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u043e\u043d\u043e\u0432\u044b\u043c\u0438 \u0442\u0430\u0439\u043b\u0430\u043c\u0438). \u041d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 8 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432 64 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u2014 \u044d\u0442\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u044b \u044d\u043a\u0440\u0430\u043d\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 128\u0445128 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438), \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u0434\u043b\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u0438 \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u0430\u0437\u0430 \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442 \u0432\u044b\u0432\u043e\u0434 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430.<\/p>\n<p>\u0415\u0449\u0451 \u0432\u044b\u0432\u043e\u0434 \u0441\u0446\u0435\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0440\u0430\u0439\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0435\u0451 \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u043a\u0440\u0430\u043d\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f 3D-\u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0435\u0433\u043e \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c. \u0414\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u044b \u0432\u044b\u0432\u043e\u0434\u0430 \u0431\u0430\u0439\u0442\u043e\u0432 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u0438 \u0446\u0432\u0435\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \/\/ \u0412\u044b\u0432\u043e\u0434 \u0432 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \/\/ \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 (\u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043b\u0443\u0447\u0430 \u042d\u041b\u0422 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u0430\u0434\u0440\u0430) void draw_screen_full_buffer (void) { Wait_Vblank (); PPU_ADDRESS = 0x0; PPU_ADDRESS = 0x0; \/\/ Start Tile #0.0: PPU_DATA = screen_buffer [0]; PPU_DATA = screen_buffer [1]; PPU_DATA = screen_buffer [2]; PPU_DATA = screen_buffer [3]; PPU_DATA = screen_buffer [4]; PPU_DATA = screen_buffer [5]; PPU_DATA = screen_buffer [6]; PPU_DATA = screen_buffer [7]; PPU_DATA = screen_buffer3 [0]; PPU_DATA = screen_buffer3 [1]; PPU_DATA = screen_buffer3 [2]; PPU_DATA = screen_buffer3 [3]; PPU_DATA = screen_buffer3 [4]; PPU_DATA = screen_buffer3 [5]; PPU_DATA = screen_buffer3 [6]; PPU_DATA = screen_buffer3 [7]; \/\/ Start Tile #1.0: PPU_DATA = screen_buffer [8]; PPU_DATA = screen_buffer [9]; PPU_DATA = screen_buffer [10]; PPU_DATA = screen_buffer [11]; \u2026 \/\/ Start Tile #12.0: PPU_DATA = screen_buffer [96]; PPU_DATA = screen_buffer [97]; PPU_DATA = screen_buffer [98]; PPU_DATA = screen_buffer [99]; PPU_DATA = screen_buffer [100]; PPU_DATA = screen_buffer [101]; PPU_DATA = screen_buffer [102]; PPU_DATA = screen_buffer [103]; PPU_DATA = screen_buffer3 [96]; PPU_DATA = screen_buffer3 [97]; PPU_DATA = screen_buffer3 [98]; PPU_DATA = screen_buffer3 [99]; PPU_DATA = screen_buffer3 [100]; PPU_DATA = screen_buffer3 [101]; PPU_DATA = screen_buffer3 [102]; PPU_DATA = screen_buffer3 [103]; SCROLL = 0; SCROLL = 0; PPU_CTRL = b1001_0000; \/\/ \u0416\u0434\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0446\u0430 \u043a\u0430\u0434\u0440\u0430 Wait_Vblank (); PPU_ADDRESS = 0x0; PPU_ADDRESS = 0xd0; \/\/ Start Tile #13.0: \/\/ \u0418 \u0442.\u0434. } <\/code><\/pre>\n<p>\u0412 \u0446\u0432\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043e\u043a\u043e\u043b\u043e 15 \u0442\u0430\u0439\u043b\u043e\u0432, \u0430 \u0432 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 22 \u0442\u0430\u0439\u043b\u0430 (\u0432 PAL-\u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u0439\u043b\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u044f \u0431\u0443\u0434\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e NTSC-\u0440\u0435\u0436\u0438\u043c\u0435).<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c 100500 \u0441\u0442\u0440\u043e\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 Python:<\/p>\n<pre><code class=\"python\"># \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u044b\u0432\u043e\u0434\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c addr = 0; print (\"Wait_Vblank ();\") i = 0 while i &lt; 256:     print (\"PPU_DATA = \" + \"screen_buffer [\" + str (i) + \"];\")     i += 1     if i\/8 % 22 == 0 and (i != 0):         print (\"SCROLL = 0;\")         print (\"SCROLL = 0;\")         print (\"Wait_Vblank ();\")     if i % 8 == 0 and (i != 0):         print (\"\/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0442\u0430\u0439\u043b\u0430 \" + str (i\/8) + \":\")         addr += 16         print (\"PPU_ADDRESS = \" +  str ( hex ( (addr &amp; 0x0F00) &gt;&gt; 8 ) ) + \";\")         print (\"PPU_ADDRESS = \" +  str ( hex (addr &amp; 0x00F0) ) + \";\") i = 0 while i &lt; 256:     print (\"PPU_DATA = \" + \"screen_buffer2 [\" + str (i) + \"];\")     i += 1     if i\/8 % 22 == 0 and (i != 0):         print (\"SCROLL = 0;\")         print (\"SCROLL = 0;\")         print (\"Wait_Vblank ();\")     if i % 8 == 0 and (i != 0):         print (\"\/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0442\u0430\u0439\u043b\u0430 \" + str (i\/8) + \":\")         addr += 16         print (\"PPU_ADDRESS = \" +  str ( hex ( (addr &amp; 0x0F00) &gt;&gt; 8 ) ) + \";\")         print (\"PPU_ADDRESS = \" +  str ( hex (addr &amp; 0x00F0) ) + \";\")<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a (\u0441\u043b\u0435\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e8\/40e\/309\/1e840e3092efaf9b7fc3029c3ed7468e.png\" width=\"840\" height=\"567\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1e8\/40e\/309\/1e840e3092efaf9b7fc3029c3ed7468e.png\"\/><\/figure>\n<h2>\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432<\/h2>\n<p>\u0420\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0438 \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435. \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 (\u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432).<\/p>\n<h3>\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/h3>\n<p>\u0412\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%85%D1%8D%D0%BC%D0%B0\"><u>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0411\u0440\u0435\u0437\u0435\u043d\u0445\u044d\u043c\u0430<\/u><\/a>. \u0421\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"cpp\">\/\/ \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0446\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0440\u043e\u0431\u0438 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f void gen_line(void) {     dx = x1 - x0;     dy = y1 - y0;      \/\/ \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438     \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0438 (\u0443\u0433\u043e\u043b \u043d\u0430\u043a\u043b\u043e\u043d\u0430)     if (dx &gt;= 0) {         x_inc = 1;     }  else { \/\/ \u043b\u0438\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043f\u0440\u0430\u0432\u043e         x_inc = -1;         dx = -dx; \/\/ \u041d\u0443\u0436\u043d\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430     }           \/\/ \u041b\u0438\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043b\u0435\u0432\u043e     \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c y-\u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u043d\u0430\u043a\u043b\u043e\u043d\u0430     if (dy &gt;= 0)  {         y_inc = 1;     } else { \/\/ \u041b\u0438\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043d\u0438\u0437         y_inc = -1;         dy = -dy; \/\/ \u041d\u0443\u0436\u043d\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430     } \/\/ \u041b\u0438\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u0432\u0435\u0440\u0445          \/\/ \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c (dx,dy) * 2     dx2 = dx &lt;&lt; 1;     dy2 = dy &lt;&lt; 1;     \/\/ \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0432\u0434\u043e\u043b\u044c \u043a\u0430\u043a\u043e\u0439 \u043e\u0441\u0438 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435     if (dx &gt; dy) {         \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443         error = dy2 - dx;         \/\/ \u0427\u0435\u0440\u0442\u0438\u043c \u043b\u0438\u043d\u0438\u044e         for (k = 0; k &lt;= dx; ++k) {             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u044c             X = x0;             Y = y0;             set_pixel_to_screen_buffer ();             \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435\u0442 \u043b\u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438             if (error &gt;= 0) {                 error -= dx2;                 \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043b\u0438\u043d\u0438\u044e                 y0 += y_inc;             } \/\/ if             \/\/ \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443             error += dy2;             x0 += x_inc;         }       } else {         \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443         error = dx2 - dy;         \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044e         for (k = 0; k &lt;= dy; ++k) {             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u044c             X = x0;             Y = y0;             \/\/set_pixel_to_screen_buffer ();             set_colored_pixel_to_screen_buffer ();             \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435\u0442 \u043b\u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438             if (error &gt;= 0) {                 error -= dy2;                 \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043b\u0438\u043d\u0438\u0438                 x0 += x_inc;             }             \/\/ \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443             error += dx2;             y0 += y_inc;         }       }  } <\/code><\/pre>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438, \u0430 \u0435\u0449\u0435 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u041b\u0430\u043c\u043e\u0442\u0430 \u00ab\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u0434\u043b\u044f Windows\u00bb (\u043a\u043d\u0438\u0433\u0443 \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435). \u0412 \u0438\u0442\u043e\u0433\u0435 \u043a\u043e\u0434 \u041b\u0430\u043c\u043e\u0442\u0430 \u044f \u0438 \u0432\u0437\u044f\u043b \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443.<\/p>\n<h3>\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432<\/h3>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \/\/ \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0442\u0440\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 void gen_triangle (void) {     x0 = vert_x0; y0 = vert_y0; x1 = vert_x1; y1 = vert_y1;     gen_line ();     x0 = vert_x1; y0 = vert_y1; x1 = vert_x2; y1 = vert_y2;     gen_line ();     x0 = vert_x2; y0 = vert_y2; x1 = vert_x0; y1 = vert_y0;     gen_line (); } <\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0432\u043e\u0434\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (\u0437\u0430\u043e\u0434\u043d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0439):<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/202\/c05\/360\/202c05360864f2edf666c3846a9a4019.png\" width=\"332\" height=\"296\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/202\/c05\/360\/202c05360864f2edf666c3846a9a4019.png\"\/><\/figure>\n<h3>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439<\/h3>\n<p>\u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u043e\u0431\u0449\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u0437\u0430\u043b\u0438\u0432\u043a\u0438) \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u043d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043b\u0438\u043d\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440.\u00a0<\/p>\n<p>\u0412 \u0432\u043e\u043f\u0440\u043e\u0441\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043b\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u0443\u043c\u0430\u044e, \u0432\u044b \u0443\u0436\u0435 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0432\u044b\u0448\u0435. \u041c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 \u0442\u0430\u0439\u043b\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0442\u0430\u0439\u043b\u0430 (\u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u2014 \u043e\u0434\u0438\u043d \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0442\u0440\u043e\u043a\u0438). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0432\u043e \u0432\u0441\u0435 \u0431\u0438\u0442\u044b, \u0442\u043e \u043c\u044b \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0441\u0440\u0430\u0437\u0443 8 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u0410 \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">\/\/ \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043f\u043e \u0425 \u0438 \u043e\u0434\u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 Y void gen_h_line (void) {     \/\/ \u041c\u0435\u043d\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u0431\u043e\u043b\u044c\u0448\u0435     if (x0 &gt; x1) {         temp = x1;         x1 = x0;         x0 = temp;     } else {         \/\/ \u041b\u0438\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438         if (x0 == x1) {             X = x0;             Y = y0;             set_pixel_to_screen_buffer ();             return;         }     }      y_h = y0;      \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \/\/ \u0412 \u043e\u0434\u0438\u043d \u0431\u0443\u0444\u0435\u0440 \u0432\u0441\u044f \u0441\u0446\u0435\u043d\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f     if (y_h &gt; 31) {         pointer = screen_buffer2;         y_h -= 32;     } else {         pointer = screen_buffer;     }     \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0442\u0430\u0439\u043b\u0430 \u043b\u0438\u043d\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u0430     \/\/ 8 \u0442\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, 8 \u0431\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 \u0442\u0430\u0439\u043b, 64 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443     \/\/ temp3 = ((y_h &amp; b1111_1000) &gt;&gt; 3) * 64;      temp3 = ((y_h &amp; b1111_1000) &lt;&lt;3); \/\/ \u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445     temp3  += (x0 &amp; b1111_1000); \/\/ \u041d\u043e\u043c\u0435\u0440 \u0442\u0430\u0439\u043b\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445     \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u0439\u043b\u0430 (\u041e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 - \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0439\u043b\u0430)     temp3  += (y_h &amp; b0000_0111);          \/\/ \u0414\u043b\u0438\u043d\u0430 \u043b\u0438\u043d\u0438\u0438     temp = x1 - x0;     \/\/ \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0439\u0442 \u0442\u0430\u0439\u043b\u0430     \/\/ (x0 &amp; b0000_0111)  - \u043d\u043e\u043c\u0435\u0440 \u0431\u0438\u0442\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430     temp2 = (x0 &amp; b0000_0111);     \/\/ \u0415\u0441\u043b\u0438 \u043b\u0438\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u043d\u0435\u0435 7 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439     if (temp &gt; 7) {         \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0430\u0439\u043b    \/\/ \u0422\u0430\u043a\u043e\u0439 \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043a\u043e\u0434 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438         switch (temp2) {             case 0:                 temp_tile_0 = b1111_1111;                 break;             case 1:                 temp_tile_0 = b0111_1111;                 break;             case 2:                 temp_tile_0 = b0011_1111;                 break;             case 3:                 temp_tile_0 = b0001_1111;                 break;             case 4:                 temp_tile_0 = b0000_1111;                 break;             case 5:                 temp_tile_0 = b0000_0111;                 break;             case 6:                 temp_tile_0 = b0000_0011;                 break;             case 7:                 temp_tile_0 = b0000_0001;                 break;         }         \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0430\u0439\u043b \u043b\u0438\u043d\u0438\u0438         pointer [temp3] |= temp_tile_0;          \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0430\u0439\u043b\u044b \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u043f\u043e 8 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0437\u0430 \u0440\u0430\u0437         temp -= (7 - temp2);         for (; temp &gt; 7; temp -= 8) {             temp3 += 8;             \/\/ \u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0441\u0440\u0430\u0437\u0443 8 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0435 \u0442\u0430\u0439\u043b\u0430             pointer [temp3] |= b1111_1111;         }         \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0439 \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043b\u0438\u043d\u0438\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d \u0435\u0441\u0442\u044c         if (temp &gt; 0) {             switch (temp) {                 case 1:                     \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u043f\u0438\u043a\u0441\u0435\u043b\u044c                     temp_tile_0 = b1000_0000;                      break;                 case 2:                     temp_tile_0 = b1100_0000;                     break;                 case 3:                     temp_tile_0 = b1110_0000;                     break;                 case 4:                     temp_tile_0 = b1111_0000;                     break;                 case 5:                     temp_tile_0 = b1111_1000;                     break;                 case 6:                     temp_tile_0 = b1111_1100;                     break;                 case 7:                     temp_tile_0 = b1111_1110;                     break;             }             \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0442\u0430\u0439\u043b\u0443             temp3 += 8;             \/\/ \u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0442\u0430\u0439\u043b \u043b\u0438\u043d\u0438\u0438             pointer [temp3] |= temp_tile_0;         }              } else {         \/\/ \u041b\u0438\u043d\u0438\u044f \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0430\u0439\u043b   \/\/ \u041d\u0430\u0447\u0430\u043b\u043e \u043b\u0438\u043d\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u0435 \u0442\u0430\u0439\u043b\u0430 \u043f\u043e \u0425         if (temp &lt;= (7 - temp2) ) {             switch (temp) {                 case 1: \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u043f\u0438\u043a\u0441\u0435\u043b\u044c                     temp_tile_0 = b1000_0000;                      break;                 case 2:                     temp_tile_0 = b1100_0000;                     break;                 case 3:                     temp_tile_0 = b1110_0000;                     break;                 case 4:                     temp_tile_0 = b1111_0000;                     break;                 case 5:                     temp_tile_0 = b1111_1000;                     break;                 case 6:                     temp_tile_0 = b1111_1100;                     break;                 case 7:                     temp_tile_0 = b1111_1110;                     break;             }             temp_tile_0 &gt;&gt;= temp2;             pointer [temp3] |= temp_tile_0;         } else {             \/\/ \u041e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0432 \u043e\u0434\u0438\u043d \u0442\u0430\u0439\u043b             \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0430\u0439\u043b,             switch (temp2) {                 case 0:                     temp_tile_0 = b1111_1111;                     break;                 case 1:                     temp_tile_0 = b0111_1111;                     break;                 case 2:                     temp_tile_0 = b0011_1111;                     break;                 case 3:                     temp_tile_0 = b0001_1111;                     break;                 case 4:                     temp_tile_0 = b0000_1111;                     break;                 case 5:                     temp_tile_0 = b0000_0111;                     break;                 case 6:                     temp_tile_0 = b0000_0011;                     break;                 case 7:                     temp_tile_0 = b0000_0001;                     break;             }             \/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442             pointer [temp3] |= temp_tile_0;             \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0442\u0430\u0439\u043b             \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0434\u043b\u0438\u043d\u044b             temp -= (7 - temp2);             switch (temp) {                 case 1:                     temp_tile_0 = b1000_0000; \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u043f\u0438\u043a\u0441\u0435\u043b\u044c                     break;                 case 2:                     temp_tile_0 = b1100_0000;                     break;                 case 3:                     temp_tile_0 = b1110_0000;                     break;                 case 4:                     temp_tile_0 = b1111_0000;                     break;                 case 5:                     temp_tile_0 = b1111_1000;                     break;                 case 6:                     temp_tile_0 = b1111_1100;                     break;                 case 7:                     temp_tile_0 = b1111_1110;                     break;             }             \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0442\u0430\u0439\u043b\u0443             temp3 += 8;             \/\/ \u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0442\u0430\u0439\u043b \u043b\u0438\u043d\u0438\u0438             pointer [temp3] |= temp_tile_0;         }     } } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u042d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0441\u043e\u0431\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439, \u043d\u043e \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0434\u0440\u043e\u0431\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043f\u043e \u0442\u0430\u0439\u043b\u0430\u043c (\u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0430 \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0445 \u0438 \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u043d\u044b\u0439 \u0442\u0430\u0439\u043b \u043d\u0430 \u043b\u0438\u043d\u0438\u044e). \u0418\u0434\u0435\u0438 \u043f\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u263a<\/p>\n<h3>\u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438<\/h3>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043d\u0443\u0436\u043d\u044b, \u043d\u043e \u0438\u0445 \u0442\u043e\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c (\u043f\u0440\u0430\u0432\u0434\u0430, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0437\u0430 \u043e\u0434\u043d\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043c\u0435\u0436\u043d\u044b\u0435 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0430\u0439\u0442\u0430\u0445). \u041a\u043e\u0434 \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 void gen_v_line (void) {     if (y0 &gt; y1) {         SWAP (y0, y1);     }      \/\/ \u0414\u043b\u0438\u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u0445     dy = y1 - y0;      Y = y0;     \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u044f     if (Y &gt; 31) {         pointer = screen_buffer2;         Y -= 32;     } else {         pointer = screen_buffer;     }     \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0442\u0430\u0439\u043b\u0430 \u043b\u0438\u043d\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u0430     \/\/ 8 \u0442\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, 8 \u0431\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 \u0442\u0430\u0439\u043b, 64 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443     \/\/ temp3 = ((y_h &amp; b1111_1000) &gt;&gt; 3) * 64;      byte_index   = ((Y &amp; b1111_1000) &lt;&lt; 3) ; \/\/ \u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445     byte_index  += (x0 &amp; b1111_1000); \/\/ \u041d\u043e\u043c\u0435\u0440 \u0442\u0430\u0439\u043b\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445     \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u0439\u043b\u0430 (\u041e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 - \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0439\u043b\u0430)     byte_index  += (Y &amp; b0000_0111);      \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\/\u0431\u0438\u0442\u0430     bit_index = (x0 &amp; b0000_0111);     \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043a\u0430\u043a\u043e\u0439 \u0431\u0438\u0442 \u0431\u0443\u0434\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c     \/\/ \u0412\u0441\u0435\u0433\u0434\u0430 \u0441\u0442\u0430\u0432\u0438\u043c \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u0437\u0430 \u0440\u0430\u0437 \u0432 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435     switch (bit_index) {         case 0:             temp = b1000_0000;             break;         case 1:             temp = b0100_0000;             break;         case 2:             temp = b0010_0000;             break;         case 3:             temp = b0001_0000;             break;         case 4:             temp = b0000_1000;             break;         case 5:             temp = b0000_0100;             break;         case 6:             temp = b0000_0010;             break;         case 7:             temp = b0000_0001;             break;     }      \/\/ \u041b\u0438\u043d\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0444\u0435\u0440     if ( Y + dy &gt; 31) {         \/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u0434\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0443\u0444\u0435\u0440         temp_y = Y &amp; b0000_0111;         for (; Y &lt;= 31; ++Y) {              \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0430\u0439\u043b             while (temp_y &lt; 8) {                 pointer [byte_index] |= temp;                 ++byte_index;                 ++Y;                 ++temp_y;              }             temp_y = 0;             \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0442\u0430\u0439\u043b\u0443 \u043d\u0430 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0442\u0430\u0439\u043b\u043e\u0432             \/\/ 56, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 64 \u0431\u0430\u0439\u0442\u0430, \u043d\u043e 8 \u0431\u0430\u0439\u0442 \u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u0432 \u0446\u0438\u043a\u043b\u0435, \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f 56             byte_index += 56;         }         \/\/ Y = 0, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0432 \u043d\u043e\u0432\u044b\u0439 \u0431\u0443\u0444\u0435\u0440         Y = 0;         \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0443\u0444\u0435\u0440         byte_index  = (x0 &amp; b1111_1000); \/\/ \u041d\u043e\u043c\u0435\u0440 \u0442\u0430\u0439\u043b\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445         pointer = screen_buffer2;         y1 -= 32;         \/\/ \u0414\u043e\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043b\u0438\u043d\u0438\u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0444\u0435\u0440         while (Y &lt;= y1 ) {             temp_y = 0;             \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0430\u0439\u043b             while (Y &lt;= y1 &amp;&amp; temp_y &lt; 8) {                 pointer [byte_index] |= temp;                 ++byte_index;                 ++Y;                 ++temp_y;              }             \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0442\u0430\u0439\u043b\u0443 \u043d\u0430 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435             \/\/ 56, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 64 \u0431\u0430\u0439\u0442\u0430, \u043d\u043e 8 \u0431\u0430\u0439\u0442 \u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u0432 \u0446\u0438\u043a\u043b\u0435, \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f 56             byte_index += 56;         }     } else {         \/\/ \u041b\u0438\u043d\u0438\u044f \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0432 \u043e\u0434\u0438\u043d \u0431\u0443\u0444\u0435\u0440         \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0435\u0449\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0430\u0439\u043b         temp_y = Y &amp; b0000_0111;         while (Y &lt;= y1 ) {             \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0430\u0439\u043b             while (Y &lt;= y1 &amp;&amp; temp_y &lt; 8) {                 pointer [byte_index] |= temp;                 ++byte_index;                 ++Y;                 ++temp_y;              }             temp_y = 0;             \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0442\u0430\u0439\u043b\u0443 \u043d\u0430 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435             \/\/ 56, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 64 \u0431\u0430\u0439\u0442\u0430, \u043d\u043e 8 \u0431\u0430\u0439\u0442 \u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u0432 \u0446\u0438\u043a\u043b\u0435, \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f 56             byte_index += 56;         }     } }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043b\u0438\u0442\u044b\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438<\/h3>\n<p>\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c\u0430\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u044e\u0431\u043e\u0433\u043e 3D-\u0434\u0432\u0438\u0436\u043a\u0430 \u2014 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043a\u0430\u043a \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0eb\/4e7\/4ec\/0eb4e74ec1e463ee5d893dbe506e25af.png\" alt=\"\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u0430\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 :: \u0422\u0435\u043e\u0440\u0438\u044f 2D :: \u0420\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\" title=\"\" width=\"579\" height=\"528\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0eb\/4e7\/4ec\/0eb4e74ec1e463ee5d893dbe506e25af.png\"\/><\/figure>\n<p>\u041f\u043b\u043e\u0441\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0435\u0439 (\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430 \u043e\u0441\u0438 \u0425). \u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u043b\u0438\u0432\u043a\u043e\u0439 \u043c\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438: \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441 \u043f\u043b\u043e\u0441\u043a\u0438\u043c \u043d\u0438\u0437\u043e\u043c (\u0437\u0435\u043b\u0451\u043d\u044b\u0439) \u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441 \u043f\u043b\u043e\u0441\u043a\u0438\u043c \u0432\u0435\u0440\u0445\u043e\u043c (\u0436\u0451\u043b\u0442\u044b\u0439). \u0415\u0441\u043b\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u0432\u0435\u0440\u0445 \u0438\u043b\u0438 \u043d\u0438\u0437, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0448\u0430\u0433 \u0441 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043d\u0430\u043a\u043b\u043e\u043d\u0430 \u043b\u0435\u0432\u043e\u0439 \u0438 \u043f\u0440\u0430\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0440\u0430\u0439\u043d\u0438\u0445 \u0442\u043e\u0447\u0435\u043a \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0435\u0433\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e \u0446\u0435\u043b\u044b\u043c Y-\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u0438 \u0440\u0438\u0441\u0443\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0442\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u043f\u0438\u0441\u0430\u043d \u0443 \u041b\u0430\u043c\u043e\u0442\u0430.<\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0445\u043e\u0442\u0435\u043b \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u043e\u0431\u0435\u0439 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0430\u0439\u043d\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043b\u0438\u043d\u0438\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0411\u0440\u0435\u0437\u0435\u043d\u0445\u044d\u043c\u0430, \u043d\u043e \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u043b\u043e\u0431\u043e\u0432\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u043e\u0431\u044f\u043c\u0438, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0440\u043e\u0431\u044f\u043c\u0438 (\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u044165 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434). \u041e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0447\u0438\u0441\u0435\u043b \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/850348\/\"><u>\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/u><\/a>.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">\/\/ \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 void rasterizeTriangle(void) {     \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043f\u043e y-\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435     if (vert_y0 &gt; vert_y1) {           temp_x = vert_x0;         temp_y = vert_y0;          vert_x0 = vert_x1;         vert_y0 = vert_y1;          vert_x1 = temp_x;         vert_y1 = temp_y;      }     if (vert_y1 &gt; vert_y2) {           temp_x = vert_x1;         temp_y = vert_y1;           vert_x1 = vert_x2;          vert_y1 = vert_y2;           vert_x2 = temp_x;          vert_y2 = temp_y;           if (vert_y0 &gt; vert_y1) {               temp_x = vert_x0;              temp_y = vert_y0;               vert_x0 = vert_x1;              vert_y0 = vert_y1;                           vert_x1 = temp_x;              vert_y1 = temp_y;          }     }          \/\/     \/\/ \u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u0441\u0432\u0435\u0440\u0445\u0443      \/\/     \/*       vert_0    vert_1             \\````\/              \\  \/         vert_2\\\/     *\/          if (vert_y0 == vert_y1) {         \/\/ \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b         a  = GET_BIN (vert_x2 - vert_x0, 0);          b =  GET_BIN (vert_y2 - vert_y0, 0);         if (b == 0)             return;         DIV_FIX (a, b, c); \/\/(x2-x0)\/(y2-y0)         \/\/ \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u043a\u0438         dxy_l = c;          a  = GET_BIN (vert_x2 - vert_x1, 0);          b =  GET_BIN (vert_y2 - vert_y1, 0);         if (b == 0)             return;         DIV_FIX (a, b, c); \/\/ (x2-x1)\/(y2-y1)         \/\/ \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438         dxy_r = c;         \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0438 \u0432\u044b\u0447\u0435\u0440\u0447\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430         xs = GET_BIN (vert_x0, 0);         xe = GET_BIN (vert_x1, 0);          end_y = vert_y2;     } else {         \/\/         \/\/ \u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043f\u043b\u043e\u0441\u043a\u0438\u0439 c\u043d\u0438\u0437\u0443          \/\/         \/*vert_0             \/\\            \/  \\     vert_2\/____\\ vert_1         *\/         \/\/ \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b         a  = GET_BIN (vert_x2 - vert_x0, 0);          b =  GET_BIN (vert_y2 - vert_y0, 0);         if (b == 0)             return;         DIV_FIX (a, b, c); \/\/(x2-x0)\/(y2-y0)         \/\/ \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b         dxy_l = c;          a  = GET_BIN (vert_x1 - vert_x0, 0);          b =  GET_BIN (vert_y1 - vert_y0, 0);         DIV_FIX (a, b, c); \/\/ (x2-x1)\/(y2-y1)         \/\/ \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u043e\u0439         dxy_r = c;         \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0438 \u0432\u044b\u0447\u0435\u0440\u0447\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430         xs = GET_BIN (vert_x0, 0);         xe = GET_BIN (vert_x0, 0);          end_y = vert_y1;     }      \/\/ \u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0447\u0430\u0441\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (\u043f\u043b\u043e\u0441\u043a\u0443\u044e \u0441\u043d\u0438\u0437\u0443 \u0438\u043b\u0438 \u0441\u0432\u0435\u0440\u0445\u0443)     for(y0 = vert_y0; y0 &lt;= end_y; ++y0) {         \/\/ \u0427\u0435\u0440\u0442\u0438\u043c \u043b\u0438\u043d\u0438\u044e \u043e\u0442 xs \u0434\u043e xe \u0434\u043b\u044f         \/\/ \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f y \u0446\u0432\u0435\u0442\u043e\u043c c         \/\/ Draw_Line((int)(xs+0.5),(int)(xe+0.5),y,c);         temp16 = xs + 128;         x0 = GET_INT (temp16);         temp16 = xe + 128;         x1 = GET_INT (temp16);         gen_h_line ();         \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435         xs += dxy_l;         xe += dxy_r;     }      \/\/ \u0415\u0441\u043b\u0438 \u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0435\u0441\u0442\u044c \u043d\u0438\u0436\u043d\u044f\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430     \/\/ \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u043e\u0441\u043a\u0430\u044f \u0441\u0432\u0435\u0440\u0445\u0443      if (end_y == vert_y1) {         if (x0 &gt; x1) {             SWAP (x0, x1);         }                 \/\/ \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b         a  = GET_BIN (vert_x2 - x0, 0);          b =  GET_BIN (vert_y2 - vert_y1, 0);         if (b == 0)             return;         DIV_FIX (a, b, c); \/\/(x2-x0)\/(y2-y0)         \/\/ \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u043a\u0438         dxy_l = c;          a  = GET_BIN (vert_x2 - x1, 0);          b =  GET_BIN (vert_y2 - vert_y1, 0);         if (b == 0)             return;         DIV_FIX (a, b, c); \/\/ (x2-x1)\/(y2-y1)         \/\/ \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438         dxy_r = c;          \/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a         xs = GET_BIN (x0, 0);         xe = GET_BIN (x1, 0);          \/\/ \u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043d\u0438\u0436\u043d\u044e\u044e \u0447\u0430\u0441\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (\u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043b\u043e\u0441\u043a\u0430\u044f \u0441\u0432\u0435\u0440\u0445\u0443)         \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 y0 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430         for(; y0 &lt;= vert_y2; ++y0) {             \/\/ \u0427\u0435\u0440\u0442\u0438\u043c \u043b\u0438\u043d\u0438\u044e \u043e\u0442 xs \u0434\u043e xe \u0434\u043b\u044f             \/\/ \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f y \u0446\u0432\u0435\u0442\u043e\u043c c             \/\/ Draw_Line((int)(xs+0.5),(int)(xe+0.5),y,c);             temp16 = xs + 128;             x0 = GET_INT (temp16);             temp16 = xe + 128;             x1 = GET_INT (temp16);             gen_h_line ();             \/\/ \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435             xs += dxy_l;             xe += dxy_r;         }     } }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b.\u00a0<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b21\/f2c\/f00\/b21f2cf00d4d488c58faa49e427f2868.png\" width=\"203\" height=\"215\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b21\/f2c\/f00\/b21f2cf00d4d488c58faa49e427f2868.png\"\/><\/figure>\n<p>\u041d\u0430 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430. \u0412\u0435\u0434\u044c \u0432\u0441\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u043b\u0438\u0448\u044c \u0438\u0437 \u0437\u0430\u043b\u0438\u0442\u044b\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<h3>\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438<\/h3>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0436\u0435 \u0431\u044b\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0411\u0440\u0435\u0437\u0435\u043d\u0445\u044d\u043c\u043e\u043c \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u0415\u0433\u043e \u043b\u0435\u0433\u043a\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0440\u0443\u0433\u043e\u0432 (\u0437\u0430\u043b\u0438\u0442\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439). \u041c\u043e\u044f \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \/\/ \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u044b \u0438 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 void gen_circle (void) {     x = 0;     y = radius;     delta = 1 - 2 * radius;     error = 0;      while (y &gt;= 0) {         \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0438\u0441\u0443\u0435\u043c \u0442\u043e\u0447\u043a\u0438 \u0432 \u0432\u043e\u0441\u044c\u043c\u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445         X = x0 + x; Y = y0 + y; set_pixel_to_screen_buffer();         X = x0 + x; Y = y0 - y; set_pixel_to_screen_buffer();         X = x0 - x; Y = y0 + y; set_pixel_to_screen_buffer();         X = x0 - x; Y = y0 - y; set_pixel_to_screen_buffer();         X = x0 + y; Y = y0 + x; set_pixel_to_screen_buffer();         X = x0 + y; Y = y0 - x; set_pixel_to_screen_buffer();         X = x0 - y; Y = y0 + x; set_pixel_to_screen_buffer();         X = x0 - y; Y = y0 - x; set_pixel_to_screen_buffer();          error = 2 * (delta + y) - 1;         if (delta &lt; 0 &amp;&amp; error &lt;= 0) {             x++;             delta += 2 * x + 1;             continue;         }         if (delta &gt; 0 &amp;&amp; error &gt; 0) {             y--;             delta += 1 - 2 * y;             continue;         }         x++;         delta += 2 * (x - y);         y--;     } }<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30a\/3ea\/4cb\/30a3ea4cbf32e2ce0319cce0925199ec.png\" width=\"770\" height=\"724\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/30a\/3ea\/4cb\/30a3ea4cbf32e2ce0319cce0925199ec.png\"\/><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u0438 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c. \u041c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0446\u043e\u043c \u043a\u0430\u0434\u0440\u0430. \u0421 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0432\u044b\u0432\u043e\u0434\u0443 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c \u043d\u0430\u0434 \u043d\u0438\u043c\u0438. \u0410 \u0435\u0441\u043b\u0438 \u0434\u0432\u0438\u0436\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d \u043a \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u0442\u043e, \u043c\u043e\u0436\u0435\u0442, \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0438\u0433\u0440\u0443 \u0441 \u0447\u0435\u0441\u0442\u043d\u043e\u0439 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439.<\/p>\n<p>P. S. \u041a\u0440\u043e\u043c\u0435 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e survival horror-\u0438\u0433\u0440\u044b \u0434\u043b\u044f Dendy. \u0412 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043b \u0432\u0441\u0435 \u0441\u043f\u0440\u0430\u0439\u0442\u044b. \u0421\u0435\u0439\u0447\u0430\u0441 \u0438\u0433\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a (\u0432 \u0432\u0438\u0434\u0435\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u0439\u043c\u043f\u043b\u0435\u0439):<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/67a9c5d7f97ec4e4dc714aaf\" data-style=\"\" id=\"67a9c5d7f97ec4e4dc714aaf\" width=\"\"><\/div>\n<p>\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0438\u0433\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 <a href=\"https:\/\/swamptech.itch.io\/\"><u>\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043c\u043e\u0438\u043c\u0438 Dendy-\u0438\u0433\u0440\u0430\u043c\u0438<\/u><\/a> \u0438\u043b\u0438 \u0432 <a href=\"https:\/\/t.me\/Swamp_Tech\"><u>\u0422\u0413-\u043a\u0430\u043d\u0430\u043b\u0435<\/u><\/a> (\u0442\u0430\u043c \u044f \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432).<\/p>\n<p>P. P. S.<strong> <\/strong>\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430. \u042d\u0442\u043e \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043c\u0435\u043d\u044f \u0432\u0437\u044f\u0442\u044c\u0441\u044f \u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0438 \u0431\u044b\u043b\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0441\u0435\u043b\u043e \u263a<\/p>\n<p>\u0416\u0434\u0443 \u0432\u0430\u0448\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u041c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430 \u0432\u0430\u0448\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c. \u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<ol>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/835120\/\">\u041f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Dangerous Dave \u0434\u043b\u044f NES\/Dendy<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/812573\/\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u043f\u043f\u0435\u0440\u0430 UNROM \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0433\u0440 \u0434\u043b\u044f Dendy \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%85%D1%8D%D0%BC%D0%B0\">\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0411\u0440\u0435\u0437\u0435\u043d\u0445\u044d\u043c\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/850348\/\">\u0427\u0438\u0441\u043b\u0430 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0434\u043b\u044f NES\/DENDY<\/a><\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><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\/ru\/articles\/881056\/\"> https:\/\/habr.com\/ru\/articles\/881056\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u0438 <strong>Dendy<\/strong> (<strong>NES\/Famicom<\/strong>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u0434 \u043d\u0438\u043c\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 (\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0437\u0430\u043b\u0438\u0432\u043a\u0430 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u0438 \u0442. \u0434.). \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 NES.<\/p>\n<h2>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447<\/h2>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<ol>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u041e\u0417\u0423 (2 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430).<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u043c \u0438 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0446\u0432\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434\u044b \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442 STL-\u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u044f \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044f\u043c\u0438, \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. NES \u043f\u043b\u043e\u0445\u043e \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 (\u0432\u0441\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u0439\u043b\u043e\u0432 8&#215;8 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/835120\/\"><u>\u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0433\u0440 \u0434\u043b\u044f Dendy<\/u><\/a>). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u043d\u0443\u0436\u0434\u0430\u0435\u0442 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u043e \u043d\u0430 \u043a\u0440\u0430\u0441\u043e\u0442\u0443 \u043a\u043e\u0434\u0430 \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u043e \u0447\u0451\u043c \u044f \u0433\u043e\u0432\u043e\u0440\u044e).\u00a0<\/p>\n<p>\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043d\u0441\u043e\u043b\u0438:<\/p>\n<ul>\n<li>\n<p><strong>\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/strong>: 8-\u0431\u0438\u0442\u043d\u044b\u0439 MOS Technology 6502 (1,79 \u041c\u0413\u0446);<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0417\u0423<\/strong>: 2 \u041a\u0411;<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0417\u0423<\/strong>: 32 \u041a\u0411;<\/p>\n<\/li>\n<li>\n<p><strong>\u0413\u0440\u0430\u0444\u0438\u043a\u0430<\/strong>: \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0430\u044f, 256&#215;240 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, 64 \u0441\u043f\u0440\u0430\u0439\u0442\u0430 (8&#215;8 \u0438\u043b\u0438 8&#215;16 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439);<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438<\/strong>: 8 \u041a\u0411;<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u0430\u0434\u0440\u044b \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/strong>: 60 FPS (NTSC) \u0438\u043b\u0438 50 FPS (PAL).<\/p>\n<\/li>\n<\/ul>\n<h2>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043c\u0430\u043f\u043f\u0435\u0440<\/h2>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 NES \u0438\u043c\u0435\u0435\u0442 32 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 (\u041f\u0417\u0423) \u0438 8 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438 (\u0432 \u0432\u0438\u0434\u0435 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u043e 256 \u0442\u0430\u0439\u043b\u043e\u0432). \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0432\u0438\u0436\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u041f\u0417\u0423 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u0435\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0430\u043f\u043f\u0435\u0440\u0430 UnROM, \u043e \u043d\u0451\u043c \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/812573\/\"><u>\u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439<\/u><\/a>. \u042d\u0442\u043e\u0442 \u043c\u0430\u043f\u043f\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e 256 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u041e\u0417\u0423 \u0432\u043c\u0435\u0441\u0442\u043e \u041f\u0417\u0423 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u0418\u0437 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0443 \u043d\u0430\u0441 \u0434\u0432\u0443\u0445 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u041e\u0417\u0423 \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u044a\u0451\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043d\u0443\u0436\u0434 (\u0438\u0437 \u043d\u0438\u0445 256 \u0431\u0430\u0439\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445).<\/p>\n<h2>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439<\/h2>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0432\u044b\u0448\u0435, \u0432\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u0439\u043b\u043e\u0432 8\u04458 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0431\u0438\u0442\u0430\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u0446\u0432\u0435\u0442\u0430 (\u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0446\u0432\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c). \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0443 \u043d\u0430\u0441 \u0443\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0431\u0438\u0442\u0430, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 16 \u0431\u0430\u0439\u0442\u043e\u0432.<\/p>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0446\u0432\u0435\u0442\u0430\u0445 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u043f\u043e \u0432\u043e\u0441\u0435\u043c\u044c \u0431\u0430\u0439\u0442\u043e\u0432. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u0430\u0445 \u0446\u0432\u0435\u0442\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0442\u0430\u0439\u043b\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 (\u0433\u0434\u0435 \u043c\u043b\u0430\u0434\u0448\u0438\u0439 \u0431\u0438\u0442 \u2014 \u044d\u0442\u043e \u043a\u0440\u0430\u0439\u043d\u0438\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c). \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0435 \u0432\u0441\u0451 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b \u00ab1\/2\u00bb:<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0418\u0437 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0432\u044b\u0448\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0431\u0438\u0442\u0443 \u0432 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0435\u0434\u044c\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u0430\u0439\u043b\u0430 (\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441 \u0435\u0434\u0438\u043d\u0438\u0446\u044b), \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u0441\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0438\u0442 \u0441\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f. \u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>\u0411\u0443\u0444\u0435\u0440 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 \u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435. \u042d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u043a\u043e\u0434, \u043d\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 CC65 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0432 \u0431\u0443\u0444\u0435\u0440\u0435:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0422\u0443\u0442 \u043e\u043f\u0438\u0448\u0435\u043c \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \/\/ \u0412\u0435\u0440\u0445\u043d\u0438\u0435 32 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 \/\/ \u0410 \u043d\u0438\u0436\u043d\u0438\u0435 32 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0435 \/\/ \/\/ X, Y \u2013 \u0437\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f void set_pixel_to_screen_buffer (void) { \u00a0\u00a0\u00a0\u00a0\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u00a0\u00a0\u00a0\u00a0if (Y &gt; 31) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer = screen_buffer2; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Y -= 32; \u00a0\u00a0\u00a0\u00a0} else { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer = screen_buffer; \u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0442\u0430\u0439\u043b\u0430 \u043b\u0438\u043d\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u00a0\u00a0\u00a0\u00a0\/\/ 8 \u0442\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, 8 \u0431\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 \u0442\u0430\u0439\u043b, 64 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u00a0\u00a0\u00a0\u00a0\/\/ temp3 = ((y_h &amp; b1111_1000) &gt;&gt; 3) * 64; \u00a0\u00a0\u00a0\u00a0\/\/ \u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u00a0\u00a0\u00a0\u00a0byte_index = ((Y &amp; b1111_1000) &lt;&lt; 3) ;\u00a0 \u00a0 byte_index\u00a0 += (X &amp; b1111_1000); \/\/ \u041d\u043e\u043c\u0435\u0440 \u0442\u0430\u0439\u043b\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u00a0\u00a0\u00a0\u00a0\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0430\u0439\u043b\u0430 (\u041e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 - \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0439\u043b\u0430) \u00a0\u00a0\u00a0\u00a0byte_index\u00a0 += (Y &amp; b0000_0111); \u00a0\u00a0\u00a0\u00a0\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\/\u0431\u0438\u0442\u0430 \u00a0\u00a0\u00a0\u00a0bit_index = (X &amp; b0000_0111); \u00a0\u00a0\u00a0\u00a0\/\/ \u0421\u0442\u0430\u0432\u0438\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u00a0\u00a0\u00a0\u00a0\/\/ switch \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u0434\u0432\u0438\u0433\u0430 \u00a0\u00a0\u00a0\u00a0switch (bit_index) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 0: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b1000_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 1: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0100_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 2: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0010_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 3: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0001_0000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 4: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_1000; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 5: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_0100; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break;  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 6: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_0010; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case 7: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pointer [byte_index] |= b0000_0001; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0}  }<\/code><\/pre>\n<p>\u0418\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u0432 \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c, \u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u0431\u0430\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0446\u0432\u0435\u0442\u0430. \u0421\u0442\u0438\u0440\u0430\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u0431\u0440\u043e\u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0431\u0438\u0442\u043e\u0432.<\/p>\n<h2>\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430<\/h2>\n<p>\u0421 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u0430\u0434\u0440\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0443 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d.<\/p>\n<p>\u041e\u0434\u0438\u043d \u0442\u0430\u0439\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 16 \u0431\u0430\u0439\u0442\u043e\u0432, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 8\u04458 \u0442\u0430\u0439\u043b\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong>\u043e\u0434\u0438\u043d \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442<\/strong>, \u0430 \u0435\u0441\u043b\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0441\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u043e\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0432 <strong>512 \u0431\u0430\u0439\u0442\u043e\u0432<\/strong>. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043e\u0431\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.<\/p>\n<p>\u0412\u044b\u0431\u043e\u0440 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u044b \u0432 8\u04458 \u0442\u0430\u0439\u043b\u043e\u0432 \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u041e\u0417\u0423, \u043d\u043e \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 (\u0432 NES \u0442\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u043a\u0440\u0430\u043d\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430\u043c\u0438, \u0430 \u0442\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e \u0441\u0435\u0442\u043a\u0435, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u043e\u043d\u043e\u0432\u044b\u043c\u0438 \u0442\u0430\u0439\u043b\u0430\u043c\u0438). \u041d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 8 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432 64 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u2014 \u044d\u0442\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u044b \u044d\u043a\u0440\u0430\u043d\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 128\u0445128 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438), \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u0434\u043b\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u0438 \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u0430\u0437\u0430 \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442 \u0432\u044b\u0432\u043e\u0434 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430.<\/p>\n<p>\u0415\u0449\u0451 \u0432\u044b\u0432\u043e\u0434 \u0441\u0446\u0435\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0440\u0430\u0439\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0435\u0451 \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u043a\u0440\u0430\u043d\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f 3D-\u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0435\u0433\u043e \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c. \u0414\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u044b \u0432\u044b\u0432\u043e\u0434\u0430 \u0431\u0430\u0439\u0442\u043e\u0432 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b:<\/p>\n<pre><code class=\"cpp\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u0438 \u0446\u0432\u0435\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \/\/ \u0412\u044b\u0432\u043e\u0434 \u0432 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \/\/ \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0438\u0434\u0435\u043e\u0431\u0443\u0444\u0435\u0440 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 (\u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043b\u0443\u0447\u0430 \u042d\u041b\u0422 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u0430\u0434\u0440\u0430) void draw_screen_full_buffer (void) { Wait_Vblank (); PPU_ADDRESS = 0x0; PPU_ADDRESS = 0x0; \/\/ Start Tile #0.0: PPU_DATA = screen_buffer [0]; PPU_DATA = screen_buffer [1]; PPU_DATA = screen_buffer [2]; PPU_DATA = screen_buffer [3]; PPU_DATA = screen_buffer [4]; PPU_DATA = screen_buffer [5]; PPU_DATA = screen_buffer [6]; PPU_DATA = screen_buffer [7]; PPU_DATA = screen_buffer3 [0]; PPU_DATA = screen_buffer3 [1]; PPU_DATA = screen_buffer3 [2]; PPU_DATA = screen_buffer3 [3]; PPU_DATA = screen_buffer3 [4]; PPU_DATA = screen_buffer3 [5]; PPU_DATA = screen_buffer3 [6]; PPU_DATA = screen_buffer3 [7]; \/\/ Start Tile #1.0: PPU_DATA = screen_buffer [8]; PPU_DATA = screen_buffer [9]; PPU_DATA = screen_buffer [10]; PPU_DATA = screen_buffer [11]; \u2026 \/\/ Start Tile #12.0: PPU_DATA = screen_buffer [96]; PPU_DATA = screen_buffer [97]; PPU_DATA = screen_buffer [98]; PPU_DATA = screen_buffer [99]; PPU_DATA = screen_buffer [100]; PPU_DATA = screen_buffer [101]; PPU_DATA = screen_buffer [102]; PPU_DATA = screen_buffer [103]; PPU_DATA = screen_buffer3 [96]; PPU_DATA = screen_buffer3 [97]; PPU_DATA = screen_buffer3 [98]; PPU_DATA = screen_buffer3 [99]; PPU_DATA = screen_buffer3 [100]; PPU_DATA = screen_buffer3 [101]; PPU_DATA = screen_buffer3 [102]; PPU_DATA = screen_buffer3 [103]; SCROLL = 0; SCROLL = 0; PPU_CTRL = b1001_0000; \/\/ \u0416\u0434\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0446\u0430 \u043a\u0430\u0434\u0440\u0430 Wait_Vblank (); PPU_ADDRESS = 0x0; PPU_ADDRESS = 0xd0; \/\/ Start Tile #13.0: \/\/ \u0418 \u0442.\u0434. } <\/code><\/pre>\n<p>\u0412 \u0446\u0432\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043e\u043a\u043e\u043b\u043e 15 \u0442\u0430\u0439\u043b\u043e\u0432, \u0430 \u0432 \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 22 \u0442\u0430\u0439\u043b\u0430 (\u0432 PAL-\u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u0439\u043b\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u044f \u0431\u0443\u0434\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e NTSC-\u0440\u0435\u0436\u0438\u043c\u0435).<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c 100500 \u0441\u0442\u0440\u043e\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 Python:<\/p>\n<pre><code class=\"python\"># \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u044b\u0432\u043e\u0434\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c addr = 0; print (\"Wait_Vblank ();\") i = 0 while i &lt; 256:     print (\"PPU_DATA = \" + \"screen_buffer [\" + str (i) + \"];\")     i += 1     if i\/8 % 22 == 0 and (i != 0):         print (\"SCROLL = 0;\")         print (\"SCROLL = 0;\")         print (\"Wait_Vblank ();\")     if i % 8 == 0 and (i != 0):         print (\"\/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0442\u0430\u0439\u043b\u0430 \" + str (i\/8) + \":\")         addr<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-447723","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/447723","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=447723"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/447723\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=447723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=447723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=447723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}