{"id":302229,"date":"2020-04-21T09:00:36","date_gmt":"2020-04-21T09:00:36","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=302229"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=302229","title":{"rendered":"\u041a\u0430\u043a \u0434\u0435\u043c\u043e Memories \u0443\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 256 \u0431\u0430\u0439\u0442"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/498096\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/za\/d2\/y1\/zad2y1fsjcomgxshmff-6huncn4.jpeg\"><\/div>\n<p>  <\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u00abHellMood\u00bb, \u0430 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f MS DOS \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00abMemories\u00bb. \u042d\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 256 \u0431\u0430\u0439\u0442, \u043e\u043d\u0430 \u0432\u044b\u0438\u0433\u0440\u0430\u043b\u0430 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u00abPC 256 byte\u00bb \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Demoscene\" rel=\"nofollow\">\u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u044b<\/a> <a rel=\"nofollow\" href=\"https:\/\/2020.revision-party.net\/\">\u00abRevision\u00bb<\/a> 2020 \u0433\u043e\u0434\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u043f\u0440\u0438\u0437 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0439. \u0412\u0438\u0434\u0435\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0434\u0435\u0441\u044c (<a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=Imquk_3oFf4\">https:\/\/www.youtube.com\/watch?v=Imquk_3oFf4<\/a>), \u0430 \u0432\u0438\u0434\u0435\u043e \u0441 \u0440\u0435\u0430\u043a\u0446\u0438\u0435\u0439 \u043e\u043d\u043b\u0430\u0439\u043d-\u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0438 \u0438 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u2014 \u0437\u0434\u0435\u0441\u044c (<a rel=\"nofollow\" href=\"https:\/\/www.twitch.tv\/videos\/589179638?t=7h02m40s\">https:\/\/www.twitch.tv\/videos\/589179638?t=7h02m40s<\/a>). \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0440\u0435\u043b\u0438\u0437 \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=85227\">https:\/\/www.pouet.net\/prod.php?which=85227<\/a>). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0442\u0441\u044b\u043b\u043a\u0430\u0445 \u0438 \u044d\u0442\u0430\u043f\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0421\u0442\u0430\u0442\u044c\u044f \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 sizecoding wiki. \u041e\u043d\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u00abMemories\u00bb, \u043d\u043e \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435. \u0418\u0437\u0443\u0447\u0438\u0442\u0435 \u0435\u0451! \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 sizecoding-\u0435 (\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430) \u0438\u043b\u0438 \u0432 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 x86, \u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 <a rel=\"nofollow\" href=\"http:\/\/www.sizecoding.org\/wiki\/Getting_Started\">\u043e\u0441\u043d\u043e\u0432 \u044d\u0442\u043e\u0439 wiki<\/a>. \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043b\u0435\u0433\u043a\u043e, \u043d\u043e \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<h2>\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440<\/h2>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u043d\u043a\u0443\u0440\u0441 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043b\u044f DosBox (256 \u0431\u0430\u0439\u0442). \u0412 \u0430\u0440\u0445\u0438\u0432\u0435 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043b\u044f FreeDos \u0438 Windows XP DOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445. \u042d\u0442\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u044b\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0430\u0440\u0445\u0438\u0432 \u043a\u0430\u043a proof of concept, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435. \u0412 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u00abPC 256 bytes\u00bb \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u00abRevision\u00bb 2020 \u0433\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u00abFreeDos\u00bb \u0438\u043b\u0438 \u00abDosBox\u00bb (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438). \u041a\u0430\u043a \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f DosBox \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432\u043e FreeDos, MS DOS, WinXP \u0438 Win98, \u043d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c.<a name=\"habracut\"><\/a> \u041a\u0430\u043a \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u0442. \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u043d\u043a\u0443\u0440\u0441 \u0432\u0435\u0440\u0441\u0438\u0438, \u0445\u043e\u0442\u044c \u044f \u0443\u0436\u0435 \u0438 \u043d\u0430\u0448\u0451\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0434 \u043f\u043e\u0447\u0442\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435\u0438\u0434\u0435\u0430\u043b\u0435\u043d, \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0435\u0449\u0451 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445, \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u043d\u043e\u0439.<\/p>\n<h2>\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432<\/h2>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/648\/d95\/9a3\/648d959a333dce574c8932529274cb87.png\"><\/div>\n<p>  <i>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 <a rel=\"nofollow\" href=\"http:\/\/www.pouet.net\">http:\/\/www.pouet.net<\/a><\/i><\/p>\n<p>  \u041c\u044b, \u0441\u0430\u0439\u0437\u043a\u043e\u0434\u0435\u0440\u044b, \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0435\u043c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432. \u0414\u043b\u044f MS DOS \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f 256b, 128b, 64b \u0438 32b. \u042d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0438\u0445 \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u044b <a rel=\"nofollow\" href=\"http:\/\/www.pouet.net\">http:\/\/www.pouet.net<\/a>. \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 16b \u043d\u0435\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432 16 \u0431\u0430\u0439\u0442\u0430\u0445. \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u0438\u0437 \u00abMemories\u00bb \u043f\u0438\u0441\u0430\u043b\u0438\u0441\u044c \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043c\u043d\u043e\u0439 \u0440\u0430\u043d\u0435\u0435, \u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u043c\u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u0444\u0444\u0435\u043a\u0442\u0430, \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435, \u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u041f\u043e\u0434 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 2^N. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u044b\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 33-64 \u0431\u0430\u0439\u0442\u0430\u0445, \u0442\u043e \u0435\u0433\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0434\u043e 32 \u0431\u0430\u0439\u0442 \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435. \u041f\u043e\u0447\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u00ab\u0441\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00bb \u044d\u0444\u0444\u0435\u043a\u0442 \u0432 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0443\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e, \u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u043e\u0435 \u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u0435 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u043b\u043e\u0441\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 256b, \u0438\/\u0438\u043b\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 <a rel=\"nofollow\" href=\"http:\/\/www.pouet.net\">http:\/\/www.pouet.net<\/a>. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u044e \u0432\u0430\u0441 \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u0431 \u0438\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u0440\u0430\u0445.<\/p>\n<h3>Array of chessboards<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/994\/487\/b46\/994487b46fbc5f335171fb417362c5c6.gif\"><\/div>\n<p>  <i>kasparov, 16 \u0431\u0430\u0439\u0442<\/i><\/p>\n<p>  \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u0441\u0442\u0430\u043b \u043c\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u00abKasparov 16b\u00bb 2018 \u0433\u043e\u0434\u0430 (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=75912\">https:\/\/www.pouet.net\/prod.php?which=75912<\/a>). \u041f\u043e\u0445\u043e\u0436\u0435 (\u0446\u0438\u0442\u0430\u0442\u0430 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0439 \u043a \u0440\u0435\u043b\u0438\u0437\u0443), \u044f \u00ab\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u044d\u0442\u0443 \u0434\u043e\u0441\u043a\u0443, \u0443\u043c\u0435\u0441\u0442\u0438\u043b \u0435\u0451 \u0432 17 \u0431\u0430\u0439\u0442, \u043d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u043f\u043e\u043a\u0430 \u044f \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0442\u0440\u044e\u043a&#8230;\u00bb. \u0420\u0430\u043d\u044c\u0448\u0435 \u0443\u0436\u0435 \u0431\u044b\u043b \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u044d\u0444\u0444\u0435\u043a\u0442, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 32 \u0431\u0430\u0439\u0442\u0430\u0445: \u00abew\u00bb 2003 \u0433\u043e\u0434\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u00abheadcrash\u00bb. (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=17567\">https:\/\/www.pouet.net\/prod.php?which=17567<\/a>) \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u0441\u0442\u0440\u0435\u043c\u0438\u043b\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u00ab\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435\u00bb \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0435 \u0434\u043e\u0441\u043a\u0438 \u0441 \u043f\u043e\u043b\u0435\u043c 8&#215;8 \u0438 \u0443\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u044b\u043c\u0438 \u0447\u0451\u0440\u043d\u044b\u043c\u0438 \u0438 \u0431\u0435\u043b\u044b\u043c\u0438 \u043a\u043b\u0435\u0442\u043a\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0445 \u0434\u043e\u0441\u043e\u043a, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0438\u0436\u043d\u0438\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u0443\u0433\u043e\u043b (h1) \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u0438\u043c\u0435\u0442\u044c <a rel=\"nofollow\" href=\"https:\/\/en.wikibooks.org\/wiki\/Chess\/Arranging_The_Board\">\u0431\u0435\u043b\u044b\u0439 \u0446\u0432\u0435\u0442<\/a>. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u043c, \u0432 \u00abMemories\u00bb \u0435\u0433\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u0438: \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d; \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u043d\u0433\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0441\u044f \u043e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u00abscrolling tilted plane\u00bb.<\/p>\n<h3>Zooming circles<\/h3>\n<p>  \u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043a\u0440\u0443\u0433\u0438 (zooming circles) \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0435\u043c\u043e\u043f\u0430\u0442\u0438 \u043a\u0430\u043a \u0438\u043d\u0442\u0440\u043e \u043d\u0430 32 \u0431\u0430\u0439\u0442, \u043d\u043e \u044f \u0442\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0438 \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b. \u0423 \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430 \u043d\u0430 64 \u0431\u0430\u0439\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 64b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b. Zooming circles \u0441\u0442\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043c\u043e\u0435\u0439 \u043e\u0442\u0447\u0430\u044f\u043d\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e 32b \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u043a\u0440\u0443\u0433\u043b\u043e\u0433\u043e \u00ab\u0442\u0443\u043d\u043d\u0435\u043b\u044f\u00bb, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0439 \u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u043a\u043e\u0440\u0434 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 52 \u0431\u0430\u0439\u0442\u0430 (\u00abNeontube\u00bb \u2014 2016 \u0433\u043e\u0434) (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=66808\">https:\/\/www.pouet.net\/prod.php?which=66808<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u0442\u0430\u043b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e 64-\u0431\u0430\u0439\u0442\u043d\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u00abconstant evolution\u00bb \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 ryg\/Farbrausch (2003 \u0433\u043e\u0434) (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=8697\">https:\/\/www.pouet.net\/prod.php?which=8697<\/a>). \u0412 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 zooming circles \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u0443\u0433\u043e\u043b \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b\/\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e 32b.<\/p>\n<h3>Scrolling tilted plane<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6da\/5c5\/e22\/6da5c5e22cc979b47231a7d07d017d8c.png\"><\/div>\n<p>  <i>Floorcast, \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 32 \u0431\u0430\u0439\u0442\u0430, \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f<\/i><\/p>\n<p>  Scrolling tilted plane \u2014 \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432, \u00abfloorcast 32b\u00bb 2018 \u0433\u043e\u0434\u0430. \u042d\u0444\u0444\u0435\u043a\u0442 \u00ab\u043d\u0430\u043f\u043e\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0439\u00bb \u0438\u043c\u0435\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0432 sizecoding-\u0435 \u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0441\u044f \u0441 256 \u0431\u0430\u0439\u0442 \u0434\u043e 32 \u0431\u0430\u0439\u0442. \u0420\u0430\u0437\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0435\u0439, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u0442\u0441\u044f \u0434\u0432\u0435 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438, \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430. \u0412 \u0440\u0435\u043b\u0438\u0437\u0435 \u00abfloorcast 32b\u00bb \u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0440\u0435\u0448\u0438\u043b \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b \u00abXOR\u00bb, \u0430 \u0432 \u00abMemories\u00bb \u0441\u043d\u043e\u0432\u0430 \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b, \u0437\u0430\u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u0432 \u0435\u0451 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u043c \u0432 \u0432\u0438\u0434\u0435 \u00abAND\u00bb.<\/p>\n<ul>\n<li>\u0412\u0435\u0440\u0441\u0438\u044f \u00abrain_storm\u00bb 2008 \u0433\u043e\u0434\u0430 \u2014 256 \u0431\u0430\u0439\u0442 \u2014 <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=50479\">https:\/\/www.pouet.net\/prod.php?which=50479<\/a><\/li>\n<li>\u0412\u0435\u0440\u0441\u0438\u044f \u00aborg_100h\u00bb 2008 \u0433\u043e\u0434\u0430 \u2014 128 \u0431\u0430\u0439\u0442 \u2014 <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=63271\">https:\/\/www.pouet.net\/prod.php?which=63271<\/a><\/li>\n<li>\u0412\u0435\u0440\u0441\u0438\u044f \u00abBaudsurfer\u00bb 2013 \u0433\u043e\u0434\u0430 \u2014 86 \u0431\u0430\u0439\u0442 \u2014 <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=61070\">https:\/\/www.pouet.net\/prod.php?which=61070<\/a><\/li>\n<li>\u0412\u0435\u0440\u0441\u0438\u044f \u00abBaudsurfer\u00bb 2014 \u0433\u043e\u0434\u0430 \u2014 64 \u0431\u0430\u0439\u0442 \u2014 <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=63305\">https:\/\/www.pouet.net\/prod.php?which=63305<\/a><\/li>\n<li>\u0412\u0435\u0440\u0441\u0438\u044f \u00abHellMood\u00bb 2018 \u0433\u043e\u0434\u0430 \u2014 32 \u0431\u0430\u0439\u0442 \u2014 <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=77774\">https:\/\/www.pouet.net\/prod.php?which=77774<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h3>Parallax checkerboards<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/254\/2e6\/580\/2542e65805ffbe714e47adb79dad2f28.gif\"><\/div>\n<p>  <i>Projektbeschreibung, 32 \u0431\u0430\u0439\u0442<\/i><\/p>\n<p>  \u0428\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0435 \u0434\u043e\u0441\u043a\u0438 \u0441 \u043f\u0430\u0440\u0430\u043b\u043b\u0430\u043a\u0441\u043e\u043c \u044f \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0432 2018 \u0433\u043e\u0434\u0443 \u0432 \u0432\u0438\u0434\u0435 32-\u0431\u0430\u0439\u0442\u043d\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u00abProjektbeschreibung\u00bb. \u0412 \u043d\u0451\u043c \u044f \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u00abFollow the light\u00bb (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=28543\">https:\/\/www.pouet.net\/prod.php?which=28543<\/a>) \u0438\u0437 \u00abDigimind\u00bb (2006 \u0433\u043e\u0434) \u0438\u043b\u0438 \u043c\u043e\u0435\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u00abLucy\u00bb (2014 \u0433\u043e\u0434) (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=63293\">https:\/\/www.pouet.net\/prod.php?which=63293<\/a>) \u0434\u043e 32 \u0431\u0430\u0439\u0442. \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u043b\u0438 \u00abParalaxa\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Rrrolas (32 \u0431\u0430\u0439\u0442, 2007 \u0433\u043e\u0434, <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=32281\">https:\/\/www.pouet.net\/prod.php?which=32281<\/a>) \u0438 \u00abByteropolis\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Sensenstahl (2013 \u0433\u043e\u0434) (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=61075\">https:\/\/www.pouet.net\/prod.php?which=61075<\/a>). \u0422\u0435\u0445\u043d\u0438\u043a\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 Rrrolas \u0431\u044b\u043b\u0430 \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u0430 \u043a \u043c\u043e\u0435\u043c\u0443 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u044e, \u043a\u043e\u0434 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0435\u0439, \u0437\u0430\u043c\u0435\u043d\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0435 \u0434\u043e\u0441\u043a\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432. \u0412 \u00abMemories\u00bb \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u00abDigimind\u00bb. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u044b\u043b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0439.<\/p>\n<h3>Sierpinski rotozoomer<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/02b\/b24\/0f4\/02bb240f4fcd21109bb76af96790bed9.png\"><\/div>\n<p>  <i>colpinski, 16 \u0431\u0430\u0439\u0442<\/i><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/04f\/634\/51e\/04f63451eda6291c70747550e1960692.png\"><\/div>\n<p>  <i>rotastic, 32 \u0431\u0430\u0439\u0442<\/i><\/p>\n<p>  \u041e\u043d \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432: rotozoomer \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u0421\u0435\u0440\u043f\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b. \u042d\u0444\u0444\u0435\u043a\u0442 \u0421\u0435\u0440\u043f\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043c\u043e\u0451\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0435 \u00abColpinski 16b\u00bb 2013 \u0433\u043e\u0434\u0430 (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=62079\">https:\/\/www.pouet.net\/prod.php?which=62079<\/a>), \u0433\u0434\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u00abfrag\u00bb \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00abfsqrt\u00bb. \u0423 \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c X \u0438 Y, \u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (Iterated Function System) \u0438\u043b\u0438 \u043a\u043b\u0435\u0442\u043e\u0447\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u044b. \u00ab\u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u00bb (rotozoomer) \u0431\u044b\u043b \u0432\u044b\u043f\u0443\u0449\u0435\u043d \u043c\u043d\u043e\u0439 \u0432 2017 \u0433\u043e\u0434\u0443 \u043a\u0430\u043a 32b-\u0438\u043d\u0442\u0440\u043e \u00abrotastic\u00bb (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=70112\">https:\/\/www.pouet.net\/prod.php?which=70112<\/a>), \u043e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0438\u0434\u0435\u044f\u0445 \u00abryg\u00bb \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 Farbrausch (51 \u0431\u0430\u0439\u0442, 2002 \u0433\u043e\u0434, <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=5015\">https:\/\/www.pouet.net\/prod.php?which=5015<\/a>) \u0438 \u00abGargaj\u00bb \u0433\u0440\u0443\u043f\u043f\u044b \u00abConspiracy\u00bb (49 \u0431\u0430\u0439\u0442, 2002 \u0433\u043e\u0434, <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=6088\">https:\/\/www.pouet.net\/prod.php?which=6088<\/a>).<\/p>\n<h3>Raycast bent tunnel<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fe2\/9cd\/be5\/fe29cdbe567a63af46cdf9734ea7d2e8.gif\"><\/div>\n<p>  <i>Into a new era, 64-\u0431\u0430\u0439\u0442\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/i><\/p>\n<p>  \u0418\u0437\u043e\u0433\u043d\u0443\u0442\u044b\u0439 \u0442\u0443\u043d\u043d\u0435\u043b\u044c \u0441 \u0440\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433\u043e\u043c (raycast bent tunnel) \u0441\u0442\u0430\u043b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043c\u043e\u0435\u0433\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e 64-\u0431\u0430\u0439\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u00abInto a new era\u00bb (2018 \u0433\u043e\u0434, <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=78044\">https:\/\/www.pouet.net\/prod.php?which=78044<\/a>). \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0431\u044b\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u044b \u043d\u0430 \u0446\u0432\u0435\u0442\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u044b, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442 \u0433\u043b\u0443\u0431\u0438\u043d\u044b. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 50 \u0431\u0430\u0439\u0442. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f 64-\u0431\u0430\u0439\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0442\u0430\u043b\u0438 \u0434\u0432\u0430 128-\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0438\u043d\u0442\u0440\u043e: \u00abSpongy\u00bb \u043e\u0442 \u00abTBC\u00bb (2009 \u0433\u043e\u0434, <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=53871\">https:\/\/www.pouet.net\/prod.php?which=53871<\/a>) \u0438 \u00abWolf128\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Baudsurfer (2014 \u0433\u043e\u0434, <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=63518\">https:\/\/www.pouet.net\/prod.php?which=63518<\/a>), \u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h3>Ocean night to day<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a37\/19a\/ce2\/a3719ace2bf341122325e874f4765fff.png\"><\/div>\n<p>  <i>Ocean, \u0432\u0435\u0440\u0441\u0438\u044f 64b<\/i><\/p>\n<p>  \u042d\u0444\u0444\u0435\u043a\u0442 \u043e\u043a\u0435\u0430\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043c\u043e\u0451\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c 64-\u0431\u0430\u0439\u0442\u043d\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u00abOcean\u00bb 2016 \u0433\u043e\u0434\u0430 (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=66857\">https:\/\/www.pouet.net\/prod.php?which=66857<\/a>). \u0411\u044b\u043b\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u043c\u0443\u0437\u044b\u043a\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0430, \u043e\u0431\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u043c \u00abMemories\u00bb \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u041a\u0423\u0427\u0418 \u043b\u0438\u0448\u043d\u0438\u0445 \u0431\u0430\u0439\u0442\u043e\u0432. \u0421\u043f\u0435\u0446\u044d\u0444\u0444\u0435\u043a\u0442 \u00ab\u0440\u0430\u0441\u0441\u0432\u0435\u0442\u0430\u00bb \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043e\u0431\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. \u041e\u0431 \u044d\u0442\u043e\u043c \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0433\u043b\u0430\u0432\u0435.<\/p>\n<h3>Fading effect<\/h3>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0430\u043c\u0438 \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u043e\u0432. \u0421\u043a\u043e\u0440\u0435\u0435, \u044d\u0442\u043e \u0438\u0434\u0435\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0435\u0442, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043d\u0430 \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438. \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u043a\u0430\u0434\u0440\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0440\u0430\u043d\u0434\u043e\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0430 \u0432\u0440\u0435\u043c\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0435, \u043a\u0430\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0441\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u043d\u0434\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e VGA-\u043f\u0430\u043b\u0438\u0442\u0440\u0443 (\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a), \u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u044f, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e.<\/p>\n<h2>\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043c\u043e\u0435\u0433\u043e \u00ab\u043a\u0440\u043e\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0433\u0430\u0434\u0435\u043c\u043e\u00bb<\/h2>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e \u00ab\u043c\u0435\u0433\u0430\u0434\u0435\u043c\u043e\u00bb, \u0432 \u043d\u0438\u0445 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0438 \u043e\u043d\u0438 \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043c\u0435\u0440\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u044f (\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432). \u0422\u0430\u043a\u0436\u0435 \u043e\u043d\u0438 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u043e\u0432 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043e\u0431\u0449\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. \u041d\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u043b\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u2014 \u0438 \u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430. \u041d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 (\u0435\u0441\u043b\u0438 \u0441\u0443\u0434\u0438\u0442\u044c \u043f\u043e \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u0437\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430\u043c \u0432 \u0441\u043e\u0446\u0441\u0435\u0442\u044f\u0445) \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u0434\u0435\u043c\u043e \u0438\u0437-\u0437\u0430 \u041e\u0413\u0420\u041e\u041c\u041d\u041e\u0413\u041e \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u0441\u0435\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u043d\u0430\u043b\u0430\u0436\u0435\u043d\u0430, \u044f \u043c\u043e\u0433 \u043d\u0430\u0447\u0430\u0442\u044c \u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0430\u0434 \u00ab\u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0438\u0435\u043c \u0437\u0430 \u0441\u043a\u043e\u0431\u043a\u0438\u00bb \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u043e\u0432. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0432\u0442\u0438\u044f:<\/p>\n<ul>\n<li>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c 320 x 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0441 256 \u0446\u0432\u0435\u0442\u0430\u043c\u0438<\/li>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u043b\u044f \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043c\u0443\u0437\u044b\u043a\u0438<\/li>\n<li>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b<br \/> \n<ul>\n<li>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 X \u0438 Y \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430<br \/> \n<ul>\n<li>\u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a rel=\"nofollow\" href=\"http:\/\/www.sizecoding.org\/wiki\/General_Coding_Tricks#Obtaining_X_and_Y_without_DIV_.28The_Rrrola_Trick.29\">\u00ab\u0442\u0440\u044e\u043a\u0430 Rrrola\u00bb<\/a><\/li>\n<\/ul>\n<\/li>\n<li> P = \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0442\u043e\u0447\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430<\/li>\n<li>\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 T \u043d\u0430 \u043e\u0442\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 P&#8217;<\/li>\n<li>\u0412\u044b\u0431\u043e\u0440 \u043d\u043e\u043c\u0435\u0440\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 N \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 T&#8217;<\/li>\n<li>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 N (X,Y) \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f<br \/> \n<ul>\n<li>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435 XY \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 DX (DL,DH)<\/li>\n<li>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BP<\/li>\n<li>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0432 AL \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044f<\/li>\n<\/ul>\n<\/li>\n<li>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0438\u043a\u0441\u0435\u043b\u044e<\/li>\n<li>\u0422\u0440\u043e\u0439\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043b\u0435\u0439\u0441\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/li>\n<li>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0434\u0440\u0430<\/li>\n<\/ul>\n<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0430\u0439\u043c\u0435\u0440 \u043d\u0430 \u0442\u0435\u043c\u043f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 35 FPS<\/li>\n<li>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 ESC<br \/> \n<ul>\n<li>\u0412\u044b\u0439\u0442\u0438 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 ESC, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<h3>\u041a\u043e\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/h3>\n<p>  <\/p>\n<pre><code class=\"cpp\">org 100h s: \tmov al,0x13\t\t\t\t; set AL to mode 320*200 in 256 colors \tint 0x10\t \t\t\t; call BIOS to set mode \txchg bp,ax\t\t\t\t; set timing value to 0x13  \tpush 0xa000-10\t\t\t; write the screen adress to register ES \tpop es\t\t\t\t\t; works in conjunction with Rrrola trick \tmov ax,0x251c\t\t\t; parameter for changing timer interrupt \tmov dl,timer\t\t\t; adress of timer routine, assume DH=1 \tint 0x21\t\t\t\t; install timer routine top: \tmov ax,0xcccd\t\t\t; load magic Rrrola constant \tmul di\t\t\t\t\t; transform screen pointer to X, Y \tadd al,ah\t\t\t\t; use transformation garbage as \txor ah,ah\t\t\t\t; pseudorandom value and clear AH \tadd ax,bp\t\t\t\t; add time value to random value \tshr ax,9\t\t\t\t; divide by 512 (basically the speed) \tand al,15\t\t\t\t; filter effect number \txchg bx,ax\t\t\t\t; move effect number to BX \tmov bh,1\t\t\t\t; reset BH to align with start of code \tmov bl,[byte bx+table]\t; read the effect address from the table \tcall bx\t\t\t\t\t; call the effect \tstosb\t\t\t\t\t; write the return value and advance \tinc di\t\t\t\t\t; triple interlace trick for after \tinc di\t\t\t\t\t; effect and smoothing the animation \tjnz top\t\t\t\t\t; repeat until the frame is complete \tmov al,tempo\t\t\t; set AL to divider for timer \tout 40h,al\t\t\t\t; set timing (dual pass) \tin al,0x60\t\t\t\t; read keyboard \tdec al\t\t\t\t\t; quit on ESC \tjnz top\t\t\t\t\t; otherwise repeat loop sounds: db 0xc3, 11, 0x93; 0xc3 is MIDI\/RET; fx2-s is used as volume table: \tdb fx2-s,fx1-s,fx0-s,fx3-s,fx4-s,fx5-s,fx6-s,sounds-s,stop-s<\/code><\/pre>\n<p>  <\/p>\n<h2>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432<\/h2>\n<p>  <\/p>\n<h3>Array of chessboards<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3b8\/e42\/a5b\/3b8e42a5b7ba22dbad5f6a8343b99785.png\"><\/div>\n<p>  <i>array of chessboards<\/i><\/p>\n<p>  \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c. \u041f\u043e\u0441\u043b\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d XOR. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u043a\u0438 \u0438\u0437 \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0445 \u0434\u043e\u0441\u043e\u043a, \u0432 \u0446\u0432\u0435\u0442\u0435 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u0438\u0442\u044b, \u043a\u0440\u043e\u043c\u0435 \u0434\u0432\u0443\u0445. \u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0434\u0432\u0438\u0433\u0435 \u0432 \u00ab\u0445\u043e\u0440\u043e\u0448\u0435\u0435\u00bb \u043c\u0435\u0441\u0442\u043e \u043f\u0430\u043b\u0438\u0442\u0440\u044b. \u0422\u0430 \u0447\u0430\u0441\u0442\u044c \u043a\u0430\u0434\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0447\u0451\u0440\u043d\u043e\u0439, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0447\u0451\u0440\u043d\u0430\u044f, \u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0451\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e <a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Video_Graphics_Array#Color_palette\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 VGA-\u043f\u0430\u043b\u0438\u0442\u0440\u044b<\/a>. \u0422\u0430\u043a\u043e\u0439 \u0441\u0434\u0432\u0438\u0433 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0442\u0451\u043c\u043d\u044b\u043c \u0438 \u0441\u0432\u0435\u0442\u043b\u044b\u043c \u043a\u043b\u0435\u0442\u043a\u0430\u043c \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u0434\u0440\u0435\u0432\u043d\u0435\u0439 \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u043a\u0438.<\/p>\n<pre><code class=\"cpp\">\txchg dx,ax\t\t; get XY into AX \tsub ax,bp\t\t; subtract time from row \txor al,ah\t\t; XOR pattern (x xor y) \tor al,0xDB\t\t; pattern for array of boards \tadd al,13h\t\t; shift to good palette spot<\/code><\/pre>\n<p>  <\/p>\n<h3>Zooming circles<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/345\/928\/8ba\/3459288ba8a5cfafe14437b5c2c85587.png\"><\/div>\n<p>  <i>zooming circles<\/i><\/p>\n<p>  \u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 D \u043e\u0442 \u0442\u043e\u0447\u043a\u0438 (X,Y) \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 (0,0) \u0440\u0430\u0432\u043d\u043e sqrt(X\u00b2+Y\u00b2). \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b DL \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 X, \u0430 DH=Y \u043d\u0443\u0436\u043d\u043e \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u0434\u0435. \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043d\u044f \u0432 x86 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u0438 \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0431\u043e\u0440\u0435 \u0446\u0432\u0435\u0442\u043e\u0432 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043a\u0440\u0443\u0433\u043e\u0432 \u0431\u0435\u0437 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043d\u044f \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<pre><code class=\"cpp\">\tmov al,dh\t\t; get Y in AL \tsub al,100\t\t; align Y vertically \timul al\t\t\t; AL = Y\u00b2 \txchg dx,ax\t\t; Y\u00b2\/256 in DH, X in AL \timul al\t\t\t; AL = X\u00b2 \tadd dh,ah\t\t; DH = (X\u00b2 + Y\u00b2)\/256 \tmov al,dh\t\t; AL = (X\u00b2 + Y\u00b2)\/256 \tadd ax,bp\t\t; offset color by time \tand al,8+16\t\t; select special rings<\/code><\/pre>\n<p>  <\/p>\n<h3>Scrolling tilted plane<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/935\/c9c\/5d5\/935c9c5d54d0172c96766989f5630fc8.png\"><\/div>\n<p>  <i>scrolling tilted plane<\/i><\/p>\n<p>  \u042d\u0442\u043e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043b\u044f \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u043e\u043c\u0435\u0440 Y. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b: a) \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 X \u0438 b) \u043a\u0430\u043a \u0441\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u0435 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 XOR, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d.<\/p>\n<pre><code class=\"cpp\">\tmov ax,0x1329\t; initialize with constant \tadd dh,al\t\t; preventing divide overflow \tdiv dh\t\t\t; reverse divide AL = C\/Y' \txchg dx,ax\t\t; DL = C\/Y', AL = X \timul dl\t\t\t; AH = CX\/Y' \tsub dx,bp\t\t; DL = C\/Y'-T \t \txor ah,dl\t\t; AH = (CX\/Y') ^ (C\/Y'-T) \tmov al,ah\t\t; move to AL \tand al,4+8+16\t; select special pattern<\/code><\/pre>\n<p>  <\/p>\n<h3>Parallax checkerboards<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e49\/5ef\/23f\/e495ef23f970c1892890fdee80bb3155.png\"><\/div>\n<p>  <i>parallax checker boards<\/i><\/p>\n<p>  \u042d\u0442\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433 (\u0438\u0441\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435 \u043b\u0443\u0447\u0435\u0439) \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0435\u0439. \u041a\u0430\u0436\u0434\u0430\u044f \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0438\u0437-\u0437\u0430 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0438 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u044f\u0432\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0438\u0441\u044c \u043a\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0435\u0442\u043a\u0438 (4 \u00ab\u0441\u043f\u043b\u043e\u0448\u043d\u044b\u0445\u00bb \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, 4 \u00ab\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0445\u00bb \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u043e\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e). \u0415\u0441\u043b\u0438 \u043b\u0443\u0447 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0438\u0437 \u0441\u043f\u043b\u043e\u0448\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u0446\u0432\u0435\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (+\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u043b\u0438\u0442\u0440\u044b \u0432 \u043e\u0442\u0442\u0435\u043d\u043a\u0430\u0445 \u0441\u0435\u0440\u043e\u0433\u043e), \u0430 \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0441\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439.<\/p>\n<pre><code class=\"cpp\">\tmov cx,bp\t\t; set inital point to time \tmov bx,-16\t\t; limit to 16 iterations fx3L: \tadd cx,di\t\t; offset point by screenpointer \tmov ax,819\t\t; magic, related to Rrrola constant \timul cx\t\t\t; get X',Y' in DX \tror dx,1\t\t; set carry flag on &quot;hit&quot; \tinc bx\t\t\t; increment iteration count \tja fx3L\t\t\t; loop until &quot;hit&quot; or &quot;iter=max&quot; \tlea ax,[bx+31]\t; map value to standard gray scale<\/code><\/pre>\n<p>  <\/p>\n<h3>Sierpinski rotozoomer<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/479\/382\/d6b\/479382d6bbb2294225a95baf302ba8ff.png\"><\/div>\n<p>  <i>sierpinski rotozoomer<\/i><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4a6\/9ec\/a29\/4a69eca29fb6c06b0e9546f0dbe32dd7.png\"><\/div>\n<p>  <i>\u0413\u0440\u0430\u0444\u0438\u043a 1\/cos(atan(x)), \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/www.google.com\" rel=\"nofollow\">www.google.com<\/a><\/i><\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 <a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Rotation_matrix#In_two_dimensions\">\u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 2D-\u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430<\/a> \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u0445:<\/p>\n<pre><code class=\"cpp\">x' = x*cos(a) - y*sin(a) y' = x*sin(a) + y*cos(a)<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">x' = z * (x*cos(a) - y*sin(a)) y' = z * (x*sin(a) + y*cos(a))<\/code><\/pre>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u0437\u0430\u0434\u0430\u0451\u043c z \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u0432\u044b\u043d\u0435\u0441\u0435\u043c 1\/cos(a) \u0437\u0430 \u0441\u043a\u043e\u0431\u043a\u0438:<\/p>\n<pre><code class=\"cpp\">x' = 1\/cos(a) * (x - y*tan(a)) y' = 1\/cos(a) * (x*tan(a) + y)<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043c\u0435\u043d\u0438\u043c tan(a) \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0430\u043d\u0433\u0435\u043d\u0441\u0430 \u043f\u0440\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438 \u043a 180\u00b0 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u043a \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"cpp\">x' = 1\/cos(atan(T)) * (x - y*T) y' = 1\/cos(atan(T)) * (x*T + y)<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0430\u0441 \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u044b \u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0433\u043b\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u044b \u043e\u0442 -180\u00b0 \u0434\u043e +180\u00b0 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0412\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 T. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0435\u0439 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u0430\u043b\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0434\u043e \u0435\u0434\u0438\u043d\u0438\u0446\u044b (\u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430) \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043a \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u0430\u043b\u043e\u043c\u0443. \u041f\u043e\u0440\u044f\u0434\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442\u043e\u0432 \u0431\u044b\u043b\u043e \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043d\u0430 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0421\u0435\u0440\u043f\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432, \u043d\u043e \u044f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u043e\u043d\u043e \u0442\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u043b\u043e.<\/p>\n<pre><code class=\"cpp\">\tlea cx,[bp-2048]; center time to pass zero \tsal cx,3\t\t; speed up by factor 8! \tmovzx ax,dh\t\t; get X into AL \tmovsx dx,dl\t\t; get Y int DL \tmov bx,ax\t\t; save X in BX \timul bx,cx\t\t; BX = X*T \tadd bh,dl\t\t; BH = X*T\/256+Y \timul dx,cx\t\t; DX = Y*T \tsub al,dh\t\t; AL = X-Y*T\/256 \tand al,bh\t\t; AL = (X-Y*T\/256)&amp;(X*T\/256+Y) \tand al,252\t\t; thicker sierpinski \tsalc\t\t\t; set pixel value to black \tjnz fx4q\t\t; leave black if not sierpinski \tmov al,0x2A\t\t; otherwise: a nice orange \tfx4q:<\/code><\/pre>\n<p>  <\/p>\n<h3>Raycast bent tunnel<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a70\/fc7\/a35\/a70fc7a35ae31fe48c7b2008b3389c0d.png\"><\/div>\n<p>  <i>raycast bent tunnel<\/i><\/p>\n<p>  \u042d\u0442\u043e \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=78044\">\u0442\u0443\u043d\u043d\u0435\u043b\u044f \u0441 \u0440\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433\u043e\u043c \u0438\u0437 \u00abinto a new era\u00bb<\/a> (\u0441\u043c. \u0432\u044b\u0448\u0435). <a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/tinycode\/comments\/de7dj9\/moving_cubes_with_pathtracing_lighting_and\/\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/a> \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u0434\u043b\u044f <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=83204\">\u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u00abEssence\u00bb<\/a> \u0431\u044b\u043b\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u043d\u0430 reddit. \u042f \u0438\u0437\u0431\u0430\u0432\u0438\u043b\u0441\u044f \u043e\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432, \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u043a\u043b\u043e\u043d\u0430, \u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0441\u0442\u0430\u043b\u0430 \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u043e\u0439 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0438 \u0432 DosBox.<\/p>\n<pre><code class=\"cpp\">\tmov cl,-9\t\t; start with depth 9 (moves backwards) \tfx5L:  \tpush dx\t\t\t; save DX, destroyed inside the loop \t\tmov al,dh\t; Get Y into AL \t\tsub al,100\t; Centering Y has to be done &quot;manually&quot;. \t\timul cl\t\t; Multiply AL=Y by the current distance, to get a projection(1) \t\txchg ax,dx\t; Get X into AL, while saving the result in DX (DH) \t\tadd al,cl\t; add distance to projection, (bend to the right) \t\timul cl\t\t; Multiply AL=X by the current distance, to get a projection(2) \t\tmov al,dh\t; Get projection(1) in AL \t\txor al,ah\t; combine with projection(2) \t\tadd al,4\t; center the walls around 0 \t\ttest al,-8\t; check if the wall is hit \tpop dx\t\t\t; restore DX \tloopz fx5L\t\t; repeat until &quot;hit&quot; or &quot;iter=max&quot; \tsub cx,bp\t\t; offset depth by time \txor al,cl\t\t; XOR pattern for texture  \taam 6\t\t\t; irregular pattern with MOD 6 \tadd al,20\t\t; offset into grayscale palette<\/code><\/pre>\n<p>  <\/p>\n<h3>Ocean night to day<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/640\/0f6\/249\/6400f62492b11bc031797bbaaebe4863.png\"><\/div>\n<p>  <i>oceannight<\/i><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8ed\/706\/5aa\/8ed7065aa8ee1e7b1402cbe2ccae2c85.png\"><\/div>\n<p>  <i>oceanday<\/i><\/p>\n<p>  \u042d\u0444\u0444\u0435\u043a\u0442 \u043e\u043a\u0435\u0430\u043d\u0430 \u2014 \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 <a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bob_Ross#Style\">\u00ab\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438\u00bb<\/a>. \u0415\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 FPU \u043a\u0430\u043a integer \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u043e \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a integer, \u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d. \u0415\u0441\u043b\u0438 \u0441\u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u0432\u043e\u043b\u043d. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0442\u0435\u0441\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c DX, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u0430 \u0437\u043d\u0430\u043a\u0430 \u0432 \u043d\u0443\u0436\u043d\u043e\u0439 \u043d\u0430\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0435\u0431\u043e \u043e\u0442 \u043c\u043e\u0440\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0440\u0430\u0441\u0446\u0432\u0435\u0442\u043a\u0430. \u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 AL \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u0434\u0440\u0435\u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u0430. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043e\u0432\u0430\u0432 \u043a\u043e\u0434, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0446\u0432\u0435\u0442 \u043d\u0435\u0431\u0430 \u00ab\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u00bb, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0446\u0432\u0435\u0442 \u00ab\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u0434\u0435\u043d\u044c\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0430. \u0418 \u044d\u0442\u043e \u043d\u0435 \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043b\u044f DosBox, \u0446\u0432\u0435\u0442 \u043d\u0435\u0431\u0430 \u043f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<pre><code class=\"cpp\">\tsub dh,120\t\t\t; check if pixel is in the sky \tjs fx6q\t\t\t\t; quit if that's the case \tmov [bx+si],dx\t\t; move XY to a memory location \tfild word [bx+si]\t; read memory location as integer \tfidivr dword [bx+si]; reverse divide by constant \tfstp dword [bx+si-1]; store result as floating point \tmov ax,[bx+si]\t\t; get the result into AX \tadd ax,bp\t\t\t; modify color by time \tand al,128\t\t\t; threshold into two bands \tdec ax\t\t\t\t; beautify colors to blue\/black<\/code><\/pre>\n<p>  <\/p>\n<h3>Fading effect<\/h3>\n<p>  \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044d\u0444\u0444\u0435\u043a\u0442 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. \u041f\u043e \u0441\u0443\u0442\u0438, \u043e\u043d \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0435\u0433\u043e \u043e\u0442\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044f \u043d\u0443\u0436\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442.<\/p>\n<pre><code class=\"cpp\">\tmov ax,0xcccd\t\t\t; load magic Rrrola constant \tmul di\t\t\t\t\t; transform screen pointer to X, Y \tadd al,ah\t\t\t\t; use transformation garbage as \txor ah,ah\t\t\t\t; pseudorandom value and clear AH \tadd ax,bp\t\t\t\t; add time value to random value \tshr ax,9\t\t\t\t; divide by 512 (basically the speed) \tand al,15\t\t\t\t; filter effect number \txchg bx,ax\t\t\t\t; move effect number to BX \tmov bh,1\t\t\t\t; reset BH to align with start of code \tmov bl,[byte bx+table]\t; read the effect address from the table<\/code><\/pre>\n<p>  <\/p>\n<h2>MIDI-\u043c\u0443\u0437\u044b\u043a\u0430<\/h2>\n<p>  \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u043e\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0437\u0432\u0443\u043a. \u0412\u044b\u0431\u0440\u0430\u0432 \u043a\u0430\u043d\u0430\u043b 3, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u00ab\u0441\u043c\u0435\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043a\u0430\u043d\u0430\u043b\u0430\u00bb \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u00abRET\u00bb. \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0441\u0434\u0432\u0438\u0433 \u043a\u043e\u0434\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442. \u0421\u0442\u043e\u0438\u0442 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 UART, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0449\u0451 \u0442\u0440\u0438 \u0431\u0430\u0439\u0442\u0430. \u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u0437\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043c\u043d\u0435, \u0447\u0442\u043e \u043c\u0435\u043b\u043e\u0434\u0438\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 <a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Incantations_(album)\">\u00abIncantations\u00bb \u041c\u0430\u0439\u043a\u0430 \u041e\u043b\u0434\u0444\u0438\u043b\u0434\u0430<\/a>, \u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u043e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u043e\u0439. \u0421\u043e \u0432\u0440\u0435\u043c\u0451\u043d <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=65604\">\u00abHypnoteye\u00bb 2015 \u0433\u043e\u0434\u0430<\/a> \u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u044b\u043c MIDI \u0438 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b <a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=66313\">\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 MIDI-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a (64 \u0431\u0430\u0439\u0442\u0430)<\/a>. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u044b\u0436\u043a\u0430\u0445 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0443 \u0442\u043e\u043d\u043e\u0432 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0435 (\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e). \u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f\u043c\u0438 stepwidth \u0438 modvalue \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, stepwidth=3 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u043b\u044f\u0449\u0438\u0439\u0441\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u043d\u044b\u0439 \u043c\u0438\u043d\u043e\u0440\u043d\u044b\u0439 \u0430\u043a\u043a\u043e\u0440\u0434, \u0430 stepwidth=4 \u0438\u043b\u0438 stepwidth=6 \u2014 \u0442\u0440\u0438\u0442\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b. \u041f\u0440\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u043c modvalue \u044d\u0442\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u042f \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0434\u043e\u043b\u0436\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043e\u0432 \u0438 \u043e\u0442\u043c\u0435\u0447\u0430\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0437\u0432\u0443\u043a\u0438.<\/p>\n<pre><code class=\"cpp\">sounds: db 0xc3, 11, 0x93, fx2-s ... \t\tinc bp\t\t\t\t; increment timing value \t\ttest bp, 7\t\t\t; play a note every 8th step \t\tjnz nomuse\t\t\t; quit if in between \t\tmov dx,0x330\t\t; port number for MIDI \t\tmov si,sounds\t\t; adress for sound data \t\toutsb\t\t\t\t; change instrument of channel 3 \t\toutsb\t\t\t\t; to vibraphone \t\toutsb\t\t\t\t; play a note on channel 3 \t\timul ax,bp,-19*32*4\t; the magic melody constant \t\tshr ax,10\t\t\t; scale down and implicit &quot;and 63&quot; \t\tadd al,22\t\t\t; pitch base is 22 \t\tout dx,al\t\t\t; play THIS note on channel 3 \t\toutsb\t\t\t\t; play it with THIS volume<\/code><\/pre>\n<p>  <\/p>\n<h2>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0440\u0435\u043b\u0438\u0437\u0430<\/h2>\n<p>  <\/p>\n<pre><code class=\"cpp\">; &quot;memories&quot; by HellMood\/DESiRE ; the tiny megademo, 256 byte msdos intro ; shown in April 2020 @ REVISION ; ;   (= WILL BE COMMENTED IN DETAIL LATER =) ; ; create : nasm.exe memories.asm -fbin -o memories.com ; CHOOSE YOUR TARGET PLATFORM (compo version is dosbox) ; be sure to use the dosbox.conf from this archive! ; only ONE of the defines should be active! %define dosbox\t\t\t; size : 256 bytes ;%define freedos\t\t; size : 230 bytes ;%define winxpdos\t\t; size : 263 bytes  ; DON'T TOUCH THESE UNLESS YOU KNOW WHAT YOU'RE DOING %ifdef winxpdos \t%define music \t%define switch_uart \t%define safe_dx \t%define safe_segment %endif %ifdef freedos \t%define safe_dx %endif %ifdef dosbox \t%define music \t;%define safe_dx ; sometimes needed %endif  ; GLOBAL PARAMETERS, TUNE WITH CARE! %define volume 127\t; not used on dosbox (optimization) %define instrument 11 %define scale_mod -19*32*4;  %define time_mask 7 %define targetFPS 35 %define tempo 1193182\/256\/targetFPS\t\t %define sierp_color 0x2A %define tunnel_base_color 20 %define tunnel_pattern 6 %define tilt_plate_pattern 4+8+16 %define circles_pattern 8+16  org 100h s: %ifdef freedos \tmov fs,ax \tmov [fs:0x46c],ax %endif \tmov al,0x13 \tint 0x10\t  \txchg bp,ax \tpush 0xa000-10 \tpop es %ifndef freedos \tmov ax,0x251c \t%ifdef safe_dx\t \t\tmov dx,timer\t \t%else ; assume DH=1, mostly true on DosBox \t\tmov dl,timer \t%endif \tint 0x21 %endif top: %ifdef freedos \tmov bp,[fs:0x46c] %endif\t \tmov ax,0xcccd \tmul di \tadd al,ah \txor ah,ah \tadd ax,bp \tshr ax,9 \tand al,15 \txchg bx,ax \tmov bh,1 \tmov bl,[byte bx+table] \tcall bx \tstosb \tinc di \tinc di \tjnz top \tmov al,tempo \tout 40h,al \tin al,0x60 \tdec al \tjnz top sounds: \tdb 0xc3\t; is MIDI\/RET %ifdef music \tdb instrument,0x93 \t%ifdef switch_uart \t\tdb volume\t\t; without switch, volume is in table \t\tdb 0x3f  \t%endif %endif table: ; first index is volume, change order with care!\t\t    \t\t\t\t\t \tdb fx2-s,fx1-s,fx0-s,fx3-s,fx4-s,fx5-s,fx6-s,sounds-s,stop-s stop: \tpop ax \tret timer: %ifndef freedos \t%ifdef safe_segment \t\tpush cs \t\tpop ds \t%endif \t\tinc bp \t%ifdef music\t \t\ttest bp, time_mask \t\tjnz nomuse \t\tmov dx,0x330 \t\tmov si,sounds \t\toutsb \t\toutsb \t\toutsb \t\timul ax,bp,scale_mod \t\tshr ax,10 \t\tadd al,22 \t\tout dx,al \t\toutsb \t\t%ifdef switch_uart \t\t\tinc dx \t\t\toutsb \t\t%endif \t%endif nomuse: \tiret %endif\t fx0: ; tilted plane, scrolling \tmov ax,0x1329 \tadd dh,al \tdiv dh \txchg dx,ax \timul dl \tsub dx,bp \txor ah,dl \tmov al,ah \tand al,tilt_plate_pattern ret fx2: ; board of chessboards \txchg dx,ax \tsub ax,bp \txor al,ah \tor al,0xDB \tadd al,13h ret fx1: ; circles, zooming \tmov al,dh \tsub al,100 \timul al \txchg dx,ax \timul al \tadd dh,ah \tmov al,dh \tadd ax,bp \tand al,circles_pattern ret fx3: ; parallax checkerboards \tmov cx,bp \tmov bx,-16 fx3L: \tadd cx,di \tmov ax,819 \timul cx\t  \tror dx,1\t  \tinc bx\t  \tja fx3L \tlea ax,[bx+31]\t  ret fx4: ; sierpinski rotozoomer\t \tlea cx,[bp-2048] \tsal cx,3 \tmovzx ax,dh \tmovsx dx,dl \tmov bx,ax \timul bx,cx \tadd bh,dl \timul dx,cx \tsub al,dh \tand al,bh \tand al,0b11111100 \tsalc\t\t\t\t; VERY slow on dosbox, but ok \tjnz fx4q \tmov al,sierp_color \tfx4q: ret fx5: ; raycast bent tunnel \tmov cl,-9 \tfx5L:  \tpush dx \t\tmov al,dh \t\tsub al,100 \t\timul cl \t\txchg ax,dx\t \t\tadd al,cl \t\timul cl \t\tmov al,dh \t\txor al,ah \t\tadd al,4 \t\ttest al,-8 \tpop dx \tloopz fx5L \tsub cx,bp \txor al,cl \taam tunnel_pattern; VERY slow on dosbox, but ok \tadd al,tunnel_base_color ret fx6: ; ocean night \/ to day sky \tsub dh,120 \tjs fx6q \tmov [bx+si],dx \tfild word [bx+si] \tfidivr dword [bx+si] \tfstp dword [bx+si-1] \tmov ax,[bx+si] \tadd ax,bp \tand al,128 \tdec ax fx6q: ret<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0411\u043e\u043d\u0443\u0441 &#8212; NFO\/ASCII<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre>                                                             art : hammerfist          \u2202#MW%e                              _d$Ng,          'B,  \u2202b                   _jM@$QZb,cQ&quot;  )@   ,edRB$b,l@   Wk,yGR$KM&amp;$b,     ,dP&quot;     Wl ]bsd%UR8BG6&amp;$@DSyG#ZKM&amp;$b, ,dP      &quot;T%L  'MGF      &quot;*\u2202R_   Tg    &quot;*4Zk,#I  YP   W&quot;    7P      &quot;*\u2202R 4M   gd@    ^   \u2202@   d@b   dQ$#@Z@R3L_    &quot;*GMj  'W      ,gd$   d@b   9Q$#%b W#,  `M          Wb  `*  _4P   `Qk  *#N8L   `H5   @b   'QR7YK   `*  _4F&quot;   Qk `6@L             dML            '@          ,BK   'M    \u2202B  *b,            '#L   ^QBb,_     _,4&amp;M\u221e\u2202@=,_       _dGL       _gQKM    GL    @k  'Mg,_         _dG,     &quot;*BN5W$2#MNP&quot;   &quot;*G3WRM8&amp;B5P&quot;`Y@QNW3Z5P&quot; \u2202#$W8BRM3XZN87    &quot;*GW38M%EBDW5P&quot;`                                 p r e s e n t s              4            d@,          _&amp; `Wl       _,aP   &quot;#baedM$#@@K JP*&quot;?ML  ,ad@$#P&quot;         ,d@NEWVB&quot;     X,aQPYb,_ V@Mm,_          ,d@MW#BW'      EMP&quot;   '\u00b6R ,ngBP^fML  \u00b6M@N@y        Y#BNW#M&quot;       J9&quot;      `MQ9&quot;      &quot;MgRBq  ,QBMg,   VN#P` ,d@@    `WM@^                   7f         \u00b6F` 7kY&quot;   ^G  _.eQNE1.    ]B _G@MWN$,   `P                     '     4b       QP      \u00b6w@F*^  ^Qb    ]O@NRM#W@MNB,         ;                    ^`      j        JP^       Yl   J#NRNWM@#BcT&quot;^        ,A  _J                     _q@                   `X  '\u00b6WM#B@WdY`,7        _G#YN#PM                 _,gG&quot;                      M,   *BN#WP&quot;  dK       ,Q@NRMB&quot;]9       ,      _,M@Q*                        #A    &quot;U^      V@h,   iNBW#NT  J'      J9     s@QN&quot;         _;               'D,              \u00b6RMBv&amp;NMQR@9  .W      .K'     &quot;9`         ,6BA   _JL          ]l               Y#NE@W#NRP   #[      `\u00b68               _d@MW#B_jW#W          BN                &quot;GQ@MR#W    QL_      *B            _,p#NBW#NQMG@WY          3Q                   &quot;Y@F     ,XW@M%im,_Yb_     _,g5@#MW@QMNE@E@NRMB         ,WM                     `  _,gP*&quot;#REM#GB@N#MQbnd@N#M@MW#R8QSB^'WQERM@        ;4NB,                      ,GYKL    \u00b6E#B8R8QSB@M@#BM#W@MNB&quot;`_  ,  &quot;^` N       ,dW@Ql                    _Q`'W`*t    '\u00b6@GS#MBQ#E@W#NQBW[     'LvQ_   ,K    _dNABGM#N                   ,F   '          `^WAB@QGE9*&quot;9^*@L    jP7FY,  \u00b6h,_.jWM#BR#GBM,                  J;    ,   _                  '       '   &quot;LL  YxE#B8R8QSBNW@W;                 AP   _,Ag6^          _   J                  \u00b6A  `&quot;Q#M@MW#R8E#P                j@   `&quot;XQW[            'LvK,_      'L_,\/      @t    Y#NE@WNR&quot;               :M\/     9^*@L           jP7F&quot;       _PYKL     _,A;     \u00b6RSNQ&quot;               dKL     '     `        '   &quot;L      &quot;`'W`*t   `&quot;XQb      `W^               Q`8t            'L_,\/         ,   _   '        9^Q              ,W               _PYKL       _,Ag6^             ' W,     _ ,#N&amp;              !N  _   J       &quot;`'W`*t     `&quot;XQW[       _  J     N!_JG9^RwQ' *t              `W,  'LvK,_        '        _gGB8@L   _   'LvK,_ ,WgB'    V    7L          _.,gm&amp;@B&amp;wBZF&quot;                j@'`  &quot;WL _gML  jZd7Yb lN&quot;          dBWl       ,g&amp;QB*&quot;^`    `&quot;*G@g, .gR&amp;k,_   ,N&quot;      '@QF  \u00b6k;gMF  *QvQ     jQ, ,@N@B#,    .eQF*`              `Yb@&quot;  &quot;*6Qg,gF     ,   7     XMN&quot;    'MNB,    ^\u00b6QWSER@N;  ,gP&quot;           qy,      W'       ^Q'     &amp;L      ,g@W'       `QMEL     `&quot;WBNWP g7              \u00b69      ,X         M?     9&quot;   _q8MSK           \u00b6EMt       *@K Vh   _,m#L             _AH        le         ,GBDNE9^A,          *@F        NMg  \u00b6L,qQ@ND           _.m@Bl        We      ,gM@B8#Q'   \u00b6h_                   lWE,   W9NHW@`          JWM#B@]        @e     4WR@NGF^      'QL                  dRWl    VMd*            &quot;@BE@PM        'N      *UP&quot;           VW,               JRSB;   ,@F       j       `\u00b6WK W,        \u00b6t                     XNt            _A@E#N _JP       ,6&amp;         &quot;GLdM         XD,               _.g8NMA@k,_    _,gG#NMGR; &quot;Z      .JRER           'VMi     _jNB#W&amp;_         _,j@E@W#Nl \u00b6MBGMNQGNQMG@QBW9  \u00b6h   ,G@NRMBl            `&quot;   ,d#R@M$F \u00b6Mg,_.gp&amp;@@NEWVBWBMG  *QMN8R8SBN$E@WF   Vb dW#R8QSRb,                 *YM@EQ,_ 'MENBW#NQMG#B@R@MW#l   &quot;BM@QNENRQG'    *WGS#MBMNEYL                    `^&quot;*8M@Q@NRM#W@BWSNW@QBF&quot;`     `^*@QBF^ [HFT]     ^M@MW#Q9 ^Wt                           `^\u00b6RQ@W8NQGP*`      \u00b6Q#@P     Vk                            lA `&quot;^`       Y&quot;       `MA                           J#,                 *R@,                        ,MQl                  Y#Wk,                      GWM8L                   W8RQSt,_                 AQ@MR#,                   `@M@#SB@Mbm.,_          QNBW#NW                     \u00b6QB8R8SBN$WNRM@#GNtwg@NMQR@B'                      *MBQ#8R8QS@NE@WNBW#NQMG@NR;                       `WGS#MBQ#R8QSB@NE@W#NQBW9                         *OMW@QMNE@E@NRMW@QMB@*                           `^&quot;YQW@Q#SB#NE@EGP                                `^&quot;*8R@GBQF`<\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<\/div>\n<p> \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\/post\/498096\/\"> https:\/\/habr.com\/ru\/post\/498096\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/498096\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/za\/d2\/y1\/zad2y1fsjcomgxshmff-6huncn4.jpeg\"><\/div>\n<p>  <\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u00abHellMood\u00bb, \u0430 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f MS DOS \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00abMemories\u00bb. \u042d\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 256 \u0431\u0430\u0439\u0442, \u043e\u043d\u0430 \u0432\u044b\u0438\u0433\u0440\u0430\u043b\u0430 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u00abPC 256 byte\u00bb \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Demoscene\" rel=\"nofollow\">\u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u044b<\/a> <a rel=\"nofollow\" href=\"https:\/\/2020.revision-party.net\/\">\u00abRevision\u00bb<\/a> 2020 \u0433\u043e\u0434\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u043f\u0440\u0438\u0437 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0439. \u0412\u0438\u0434\u0435\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0434\u0435\u0441\u044c (<a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=Imquk_3oFf4\">https:\/\/www.youtube.com\/watch?v=Imquk_3oFf4<\/a>), \u0430 \u0432\u0438\u0434\u0435\u043e \u0441 \u0440\u0435\u0430\u043a\u0446\u0438\u0435\u0439 \u043e\u043d\u043b\u0430\u0439\u043d-\u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0438 \u0438 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u2014 \u0437\u0434\u0435\u0441\u044c (<a rel=\"nofollow\" href=\"https:\/\/www.twitch.tv\/videos\/589179638?t=7h02m40s\">https:\/\/www.twitch.tv\/videos\/589179638?t=7h02m40s<\/a>). \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0440\u0435\u043b\u0438\u0437 \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c (<a rel=\"nofollow\" href=\"https:\/\/www.pouet.net\/prod.php?which=85227\">https:\/\/www.pouet.net\/prod.php?which=85227<\/a>). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0442\u0441\u044b\u043b\u043a\u0430\u0445 \u0438 \u044d\u0442\u0430\u043f\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0421\u0442\u0430\u0442\u044c\u044f \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 sizecoding wiki. \u041e\u043d\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u00abMemories\u00bb, \u043d\u043e \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435. \u0418\u0437\u0443\u0447\u0438\u0442\u0435 \u0435\u0451! \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 sizecoding-\u0435 (\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430) \u0438\u043b\u0438 \u0432 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 x86, \u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 <a rel=\"nofollow\" href=\"http:\/\/www.sizecoding.org\/wiki\/Getting_Started\">\u043e\u0441\u043d\u043e\u0432 \u044d\u0442\u043e\u0439 wiki<\/a>. \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043b\u0435\u0433\u043a\u043e, \u043d\u043e \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<h2>\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440<\/h2>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u043d\u043a\u0443\u0440\u0441 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043b\u044f DosBox (256 \u0431\u0430\u0439\u0442). \u0412 \u0430\u0440\u0445\u0438\u0432\u0435 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043b\u044f FreeDos \u0438 Windows XP DOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445. \u042d\u0442\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u044b\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0430\u0440\u0445\u0438\u0432 \u043a\u0430\u043a proof of concept, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435. \u0412 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u00abPC 256 bytes\u00bb \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u00abRevision\u00bb 2020 \u0433\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u00abFreeDos\u00bb \u0438\u043b\u0438 \u00abDosBox\u00bb (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438). \u041a\u0430\u043a \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f DosBox \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432\u043e FreeDos, MS DOS, WinXP \u0438 Win98, \u043d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-302229","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302229","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=302229"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302229\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=302229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=302229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}