{"id":347721,"date":"2023-05-21T09:00:34","date_gmt":"2023-05-21T09:00:34","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=347721"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=347721","title":{"rendered":"<span>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f Palm OS: \u0441\u0442\u0430\u0432\u0438\u043c CodeWarrior \u0438 \u043e\u0436\u0438\u0432\u043b\u044f\u0435\u043c \u0422\u0421\u0414<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445! <br \/>  \u041d\u0435\u043c\u0430\u043b\u043e \u0443\u0448\u0435\u0434\u0448\u0438\u0445 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0443\u0441\u043f\u0435\u043b\u0438 \u043c\u044b \u043f\u043e\u0432\u0438\u0434\u0430\u0442\u044c. \u0418 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0435\u0449\u0451 \u0431\u0443\u0434\u0435\u0442 \u0443 \u043d\u0430\u0441 \u0432\u043f\u0435\u0440\u0435\u0434\u0438. \u041d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435 \u043e \u0447\u0451\u043c-\u0442\u043e \u0440\u0435\u043b\u0438\u043a\u0442\u043e\u0432\u043e\u043c \u0438 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c, \u0430 \u043e \u041a\u041f\u041a, \u0447\u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0443\u0441\u043f\u0435\u043b\u0438 \u0437\u0430\u0441\u0442\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430. \u042d\u0442\u0438 \u0434\u0435\u0432\u0430\u0439\u0441\u044b \u0438\u043c\u0435\u043b\u0438 \u043c\u0430\u0441\u0441\u0443 \u043f\u043e\u043a\u043b\u043e\u043d\u043d\u0438\u043a\u043e\u0432, \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044e\u0441\u044c, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c. \u0422\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0444\u0442\u0430 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u041e\u0421.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/20\/yz\/zi\/20yzzilxlvz5mci3o_0-ncfhyvu.jpeg\"><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u043e\u0444\u0442\u0430 \u0434\u043b\u044f \u041a\u041f\u041a \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0439 Palm OS. \u0423\u0437\u043d\u0430\u0435\u043c, \u0433\u0434\u0435 \u0432\u0437\u044f\u0442\u044c \u0432\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0436\u0435\u043b\u0435\u0437\u043e\u043a. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0421\u0443\u0442\u044c \u0442\u0430\u043a\u043e\u0432\u0430<\/font><\/h2>\n<p>  \u0414\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e, \u0435\u0449\u0451 \u043f\u044f\u0442\u044c \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0432 \u0443\u0437\u043a\u0438\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u0442\u043e\u0432\u0430\u0440\u0438\u0449 <a href=\"https:\/\/habr.com\/ru\/users\/dlinyj\/\" class=\"user_link\">dlinyj<\/a> \u0432\u044b\u043a\u0430\u0442\u0438\u043b \u043f\u043e\u0441\u0442 &quot;<a href=\"https:\/\/habr.com\/ru\/post\/358168\/\">\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f Palm \u0432 2017 \u0433\u043e\u0434\u0443<\/a>&quot;. \u0422\u0430\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u043e\u0441\u044c, \u0433\u0434\u0435 \u0432\u0437\u044f\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u041f\u041e, \u043a\u0430\u043a \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435. \u0418 \u0442\u0430\u043a \u0432\u044b\u0448\u043b\u043e, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0441\u043f\u0443\u0441\u0442\u044f \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u0435\u0451 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b, \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u043b\u0430 \u043c\u0435\u043d\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u043e\u043a\u0443\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043c\u0438\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u0441\u0442\u0430\u0440\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u0438 \u0432\u0441\u0435\u0433\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043e. \u041d\u043e \u0432\u043e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 Palm \u044f \u0442\u0430\u043a \u043d\u0438\u0447\u0435\u0433\u043e \u0438 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b, \u0438 \u044d\u0442\u043e \u043d\u0435 \u0434\u0430\u0432\u0430\u043b\u043e \u043c\u043d\u0435 \u043f\u043e\u043a\u043e\u044f. \u0410 \u0440\u0430\u0437 \u0442\u0430\u043a \u2014 \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c. \u0410 \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438. <\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0421\u043b\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043b\u044f Palm OS?<\/font><\/h2>\n<p>  \u041d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b \u043d\u0435\u043c\u0430\u043b\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043e Palm OS \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u041a\u043e\u043c\u0443-\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0434 \u043d\u0435\u0451 \u0431\u044b\u043b\u043e \u043e\u0434\u043d\u0438\u043c \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c, \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u043b \u0435\u0451 \u0445\u0443\u0434\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0418, \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f, \u043e\u0431\u0430 \u044d\u0442\u0438\u0445 \u043c\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u0431\u0435\u0437\u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043f\u043e\u0441\u043b\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u043e\u0433\u0434\u0430\u0448\u043d\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0430\u0439\u0437\u0435\u0440\u043e\u0432, \u0438\u043c\u0435\u0432\u0448\u0438\u0445 \u0441\u0432\u043e\u0439 SDK (Casio PV, Franklin eBookMan), \u0433\u0434\u0435 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0435\u0440\u0443\u043d\u0434\u043e\u0439 \u0442\u0438\u043f\u0430 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u043e\u0441\u0430 \u0441\u0435\u043d\u0441\u043e\u0440\u0430, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u0442\u043c\u0430\u043f\u043e\u0432, \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0439 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u0434\u0430\u0448\u043d\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, Palm OS \u0434\u0430\u0432\u0430\u043b \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u0414\u0430 \u0438 \u0441\u0430\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u043e\u0436\u0435 \u0431\u044b\u043b\u0438 \u043d\u0430 \u0432\u044b\u0441\u043e\u0442\u0435, \u043e\u0434\u0438\u043d \u043b\u0438\u0448\u044c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0432\u0448\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041a\u041f\u041a \u0438 \u0434\u0430\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443, \u043d\u0435 \u043c\u043e\u0433 \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c. \u0423 \u0442\u043e\u0433\u043e \u0436\u0435 Pocket PC \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u00ab\u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0439\u00bb \u041a\u041f\u041a \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u0443\u044e \u0437\u0430\u0434\u0443\u043c\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043b\u0435\u0442\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. <\/p>\n<p>  \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0436\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0442\u043e\u0442 \u0436\u0435 Psion \u043d\u0430 \u0431\u0430\u0437\u0435 EPOC16, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0432 \u0440\u0430\u0437\u044b \u0431\u043e\u043b\u0435\u0435 \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0442\u0430\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u043f\u0430\u043b\u044c\u043c\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0435\u0451 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f (\u0430 \u0435\u0449\u0451 \u043a\u0430\u0436\u0434\u044b\u0439 Psion \u043e\u0441\u043d\u0430\u0449\u0430\u043b\u0441\u044f \u0441\u0440\u0435\u0434\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 OPL, \u0447\u0442\u043e \u0434\u0430\u0432\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0430\u0436\u0435 \u0432\u0434\u0430\u043b\u0438 \u043e\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430), \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043d\u0451\u043c \u0443\u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0432\u0441\u044f\u043a\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439, \u0434\u0430 \u0438 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043e\u0434 \u043d\u0435\u0433\u043e \u0431\u044b\u043b \u043a\u0443\u0434\u0430 \u043d\u0438\u0436\u0435: \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 EPOC16 \u0431\u044b\u043b\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043f\u043e\u0434 DOS. \u041f\u0430\u043b\u044c\u043c\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u043b\u0430 \u0441\u0432\u043e\u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 \u0431\u0435\u0441\u0442\u043e\u043b\u043a\u043e\u0432\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0430 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445) \u0438 \u043c\u043d\u043e\u0433\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u041a\u041f\u041a \u043d\u0430 \u0431\u0430\u0437\u0435 Windows CE \u0441\u0442\u0430\u043b\u0438 \u0441\u0442\u043e\u0438\u0442\u044c \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043d\u0441\u043a\u0438\u0445 \u0434\u0435\u043d\u0435\u0433, \u043e\u0442\u0447\u0435\u0433\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u041a\u041f\u041a \u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0443\u0433\u043e\u0434\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441 Palm OS \u0441\u043c\u043e\u0433 \u043a\u043e\u043d\u043a\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e Symbian, \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0432\u0448\u0438\u0439 \u0448\u0430\u043d\u0441\u043e\u0432 \u043d\u0430 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u00ab\u0441 \u0443\u043b\u0438\u0446\u044b\u00bb.<\/p>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0447\u0442\u043e \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e, \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u0437 \u043d\u0430\u0441 \u043f\u0430\u043b\u044c\u043c\u044b \u0441\u0442\u0430\u043b\u0438 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043b\u0435\u0433\u0435\u043d\u0434\u043e\u0439 \u041a\u041f\u041a-\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f. \u0418\u0445 \u043b\u044e\u0431\u0438\u043b\u0438 \u0437\u0430 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u044c, \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0438 \u044d\u0440\u0433\u043e\u043d\u043e\u043c\u0438\u0447\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d, \u043e\u0431\u0438\u043b\u0438\u0435 \u0441\u043e\u0444\u0442\u0430, \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043f\u043e \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u043c \u043c\u0435\u0440\u043a\u0430\u043c \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u042d\u0442\u0438 \u0434\u0435\u0432\u0430\u0439\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0430\u0439\u0437\u0435\u0440\u044b, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438, \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0435 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u044b, \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u0438 \u043c\u043d\u043e\u0433\u043e \u043a\u0430\u043a \u0435\u0449\u0451. \u0410 \u0440\u0430\u0437 \u0442\u0430\u043a \u2014 \u043f\u043e\u0433\u043d\u0430\u043b\u0438!<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0427\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c?<\/font><\/h2>\n<p>  \u041d\u0443 \u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a\u0438\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u041a\u041f\u041a \u043d\u0430 \u0431\u0430\u0437\u0435 Palm OS.<\/p>\n<p>  \u0422\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u043f\u0430\u043b\u044c\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 MC68000 (\u0442\u043e\u0447\u043d\u0435\u0435, Motorola DragonBall, \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430) \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446, \u0438\u043c\u0435\u043b\u0430 \u041e\u0417\u0423 \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u043e\u0442 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0434\u043e \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 (\u0441\u043e\u0432\u0441\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0440\u043e\u0434\u0435 PalmPilot \u0438\u043c\u0435\u043b\u0438 \u0435\u0449\u0451 \u043c\u0435\u043d\u044c\u0448\u0435), \u043f\u043e\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438 RAM-\u0434\u0438\u0441\u043a, \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u044b\u0439 \u0416\u041a\u0418 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c 160*160. \u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u2014 RS-232 \u0438 \u0438\u043d\u0444\u0440\u0430\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043f\u043e\u0440\u0442.<\/p>\n<p>  \u041f\u043e\u0437\u0434\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 (PalmOne) \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0443\u0436\u0435 \u043d\u0430 ARM \u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u043b\u0438 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u0436\u0438\u0440\u043d\u044b\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438, \u043d\u043e \u0442\u0430\u043c \u0442\u043e\u0436\u0435 \u0431\u044b\u043b\u0438 \u0441\u0432\u043e\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b MC68000 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0442\u0435\u0440\u044f\u043b\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e \u00ab\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445\u00bb \u043f\u0430\u043b\u044c\u043c\u0430\u0445.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041e\u0431\u0437\u043e\u0440 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/font><\/h2>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u041a\u041f\u041a \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u041e\u0421 \u0432 \u043c\u043e\u0438\u0445 \u0440\u0443\u043a\u0430\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u0430\u043b\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pz\/mk\/cf\/pzmkcfpxgpi736h76cygj6fle2e.jpeg\"><\/p>\n<p>  Palm III. \u041c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0440\u0435\u0432\u043d\u044f\u044f, \u0435\u0449\u0451 \u043f\u043e\u0434 \u043c\u0430\u0440\u043a\u043e\u0439 3Com. \u041f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u0432\u0430\u0439\u0441 \u0438\u0437 \u043b\u0438\u043d\u0435\u0439\u043a\u0438 Palm (\u043d\u0435 Pilot \u0438 \u043d\u0435 PalmPilot). \u041d\u0430 \u0431\u043e\u0440\u0442\u0443 \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 Palm OS \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wg\/at\/33\/wgat33dur6ipmx8xbrvykkeo8yq.jpeg\"><\/p>\n<p>  Palm VX. \u041a\u0430\u043a \u043f\u043e \u043c\u043d\u0435, \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0448\u0435\u0434\u0435\u0432\u0440 \u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0435\u0433\u043e \u0433\u0430\u0431\u0430\u0440\u0438\u0442\u0430\u043c \u043f\u043e\u0437\u0430\u0432\u0438\u0434\u0443\u044e\u0442 \u0434\u0430\u0436\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b. \u041f\u0430\u043c\u044f\u0442\u0438 \u0441\u0442\u0430\u043b\u043e \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0432\u0435\u0440\u0441\u0438\u044f \u041e\u0421 \u0442\u0435\u043f\u0435\u0440\u044c 3.5.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pb\/o8\/vt\/pbo8vtd3bbu8vnhdsrqmbjjpbe0.jpeg\"><\/p>\n<p>  Palm M105. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u00ab\u043c\u043e\u043b\u043e\u0434\u0451\u0436\u043d\u044b\u0439\u00bb \u0434\u0435\u0432\u0430\u0439\u0441. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0438\u0437-\u0437\u0430 \u0435\u0433\u043e \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438 \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0446\u0435\u043d\u044b \u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u043e\u043d \u043c\u043d\u043e\u0433\u0438\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kz\/0e\/4p\/kz0e4pi0fwankvpclegympnctea.jpeg\"><\/p>\n<p>  Palm Tungsten E2. \u042d\u0442\u043e\u0442 \u0430\u0433\u0440\u0435\u0433\u0430\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043d \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 ARM \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0434\u0432\u0435\u0441\u0442\u0438 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446, \u0438\u043c\u0435\u0435\u0442 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0430 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0441\u0442\u0430\u043b\u0430 \u044d\u043d\u0435\u0440\u0433\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0439. \u0425\u043e\u0442\u044f \u0434\u0435\u0432\u0430\u0439\u0441 \u0441\u0447\u0438\u0442\u0430\u043b\u0441\u044f \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u043c, \u043e\u0431\u043b\u0430\u0434\u0430\u043b \u043e\u043d \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/-j\/go\/t1\/-jgot1xx4-1dqkmvtgoccznfjye.jpeg\"><\/p>\n<p>  Sony Cli\u00e9 PEG-NR70V\/U. \u0422\u0430 \u0441\u0430\u043c\u0430\u044f \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u0443\u0448\u043a\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 Palm OS. \u041f\u0440\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c NX70V \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u043c <a href=\"https:\/\/habr.com\/ru\/users\/f15\/\" class=\"user_link\">f15<\/a> \u0434\u0430\u0436\u0435 \u0431\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/kaspersky\/blog\/554064\/\">\u043e\u0431\u0437\u043e\u0440<\/a>. \u041a\u041f\u041a \u0438\u043c\u0435\u0435\u0442 \u043a\u0440\u0430\u0439\u043d\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0438\u0439 \u0434\u0438\u0437\u0430\u0439\u043d \u0438 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0438\u043b\u044c\u043d\u043e.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041d\u0435 \u041a\u041f\u041a \u0435\u0434\u0438\u043d\u044b\u043c\u0438<\/font><\/h2>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u00ab\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445\u00bb \u0434\u0435\u0432\u0430\u0439\u0441\u043e\u0432, \u043d\u0430 \u0431\u0430\u0437\u0435 Palm OS \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u0438 \u043e\u043a\u043e\u043b\u043e\u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wc\/ma\/by\/wcmaby1lwcmfl2d8viabqhn1ak0.png\"><\/p>\n<p>  \u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 Palm OS \u0441\u0442\u0430\u043b\u0430 \u043d\u0435\u0431\u0435\u0437\u044b\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f Symbol (\u043f\u043e\u0437\u0436\u0435 Motorola, \u043f\u043e\u0437\u0436\u0435 Zebra). \u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, SPT-1500. \u0410\u043f\u043f\u0430\u0440\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e Palm III \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 \u043d\u0438\u043c \u043f\u043e \u0441\u043e\u0444\u0442\u0443 \u0438 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430\u043c. \u0418\u0437 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u2014 \u0441\u043a\u0430\u043d\u0435\u0440 \u0448\u0442\u0440\u0438\u0445-\u043a\u043e\u0434\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0440\u044f\u0434\u043a\u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0442\u0430\u0440\u0435\u044e \u0438 <br \/>  \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u0440\u044b\u0448\u043a\u0443 \u043d\u0430 \u0442\u0430\u043a\u043e\u0432\u0443\u044e \u0441 \u0434\u0432\u0443\u043c\u044f \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u043d\u0430 \u0437\u0430\u0440\u044f\u0434\u043d\u0443\u044e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043a\u0443).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/j2\/jp\/05\/j2jp05qphwufkygrwqdimxe5e4m.jpeg\"><\/p>\n<p>  Symbol SPT-1550. \u041f\u043e \u0432\u0438\u0434\u0443 \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043d\u0435\u0433\u043e. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0438\u043c\u0435\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 33 \u041c\u0413\u0446, \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u043e\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u0432\u043e\u0441\u0435\u043c\u044c \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442. \u0411\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u043b\u0430 \u0438 \u0432\u0435\u0440\u0441\u0438\u044f Palm OS \u2014 4.0. \u042d\u0442\u043e\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u0438\u043d \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/24\/tu\/mb\/24tumbevvaltwg9bjgs4xpr2vuu.jpeg\"><\/p>\n<p>  Symbol SPT-1800. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0451\u043d \u043d\u0430 \u041a\u0414\u041f\u0412 \u0432 \u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0430 <a href=\"https:\/\/habr.com\/ru\/users\/dlinyj\/\" class=\"user_link\">dlinyj<\/a>. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0432\u043e\u0440\u043e\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0439 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u044c\u044e Symbol Spectrum24. \u0423\u0432\u044b, \u043c\u043e\u0439 \u0434\u0435\u0432\u0430\u0439\u0441 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043a\u0438, \u0447\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a \u0436\u0438\u0437\u043d\u0438 SPT-1550<\/font><\/h2>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0445 \u043a\u043e \u043c\u043d\u0435 \u0434\u0435\u0432\u0430\u0439\u0441\u043e\u0432 \u0438\u043c\u0435\u043b \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u2014 \u044d\u043a\u0440\u0430\u043d \u043d\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u044f. \u041a\u043e\u0441\u044f\u043a \u044d\u0442\u043e\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u043e\u0439 \u0431\u0440\u0430\u043a \u043f\u0440\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u044d\u0442\u0438\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kw\/45\/vd\/kw45vdkn21ws2nm0qczc0bzlq-k.jpeg\"><\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u0438 \u0441\u043d\u0438\u043c\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/g0\/wk\/sa\/g0wksajybxo3gdo4209fhrvxi5q.jpeg\"><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0438 \u043e\u043d.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dw\/xt\/kd\/dwxtkdm_8ll6hhm6eamhfwxipkg.jpeg\"><\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430. \u041f\u0440\u043e\u0437\u0432\u0430\u043d\u0438\u0432\u0430\u0435\u043c \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0442\u0440\u043e\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d\u0430. \u0414\u0430\u0436\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043f\u0440\u0435\u0434\u0435\u043b\u0435 \u043e\u043d \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e\u0431\u0440\u044b\u0432. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0441\u0435\u043d\u0441\u043e\u0440 \u0443\u043c\u0435\u0440 \u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u043f\u0430\u0439\u043a\u0430 \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043d\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kx\/6i\/r4\/kx6ir4mfkhka_firyuukpe1ku_c.jpeg\"><\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u043a\u0438\u043d\u0443\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u043e\u0442 Palm III. \u041a\u041f\u041a \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0447\u0435\u043d\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e \u0430\u0436 \u0431\u043e\u0438\u0448\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u0437\u0430\u043f\u0447\u0430\u0441\u0442\u044c \u043e\u0442 \u043a\u0430\u043a\u043e\u0433\u043e, \u043d\u043e \u043e\u0431\u0449\u0438\u0435 \u0447\u0435\u0440\u0442\u044b \u044f\u0432\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rr\/e5\/qm\/rre5qmygzvwmdrpoe88uo-mn2i8.jpeg\"><\/p>\n<p>  \u042d\u043a\u0440\u0430\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u0435: \u0437\u043b\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u044b\u0439 \u043e\u0442 SPT-1550 \u0438 \u043e\u0442 Palm III. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zi\/av\/pq\/ziavpqqjrsntrijz8cth2w4jklq.jpeg\"><\/p>\n<p>  \u042d\u043a\u0440\u0430\u043d \u043e\u0442 Palm III \u0431\u0435\u0437 \u0444\u043e\u043b\u044c\u0433\u0438. \u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043b\u0430\u0442\u044b \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0430\u044f, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043d\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vk\/so\/nl\/vksonl0xajnojsi96g4xbsq6f9e.jpeg\"><\/p>\n<p>  \u041c\u0435\u043d\u044f\u0435\u043c \u044d\u043a\u0440\u0430\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0423\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u0438\u043e\u043d\u0438\u0441\u0442\u043e\u0440 \u0443 Palm III \u043d\u0435\u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u043c\u0443\u0434\u0440\u0438\u043b\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0437\u0430\u0440\u044f\u0434, \u0438 \u041a\u041f\u041a \u0434\u0430\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b, \u0430 \u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. <\/p>\n<p>  \u0412 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u041a\u041f\u041a \u043f\u0440\u043e\u0436\u0438\u043b \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043c\u0435\u0441\u044f\u0446. \u041d\u043e Palm III \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u044b\u043b \u0434\u043e\u0445\u043b\u044f\u043a\u043e\u043c, \u0438 \u044d\u0442\u043e \u043d\u0435 \u0434\u0430\u0432\u0430\u043b\u043e \u043c\u043d\u0435 \u043f\u043e\u043a\u043e\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043f\u0440\u0438\u0431\u0435\u0433\u043d\u0443\u0442\u044c \u043a \u043a\u0440\u0430\u0439\u043d\u0438\u043c \u043c\u0435\u0440\u0430\u043c. \u0418\u0442\u0430\u043a, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u044b \u0438 \u0432\u043d\u043e\u0432\u044c \u0434\u043e\u0441\u0442\u0430\u0451\u043c \u043f\u043e\u043c\u0435\u0440\u0448\u0438\u0439 \u0434\u0438\u0441\u043f\u043b\u0435\u0439. \u041d\u0430 \u043c\u0435\u0441\u0442\u043e \u0441\u0442\u044b\u043a\u0430 \u0448\u043b\u0435\u0439\u0444\u0430 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0441\u0442\u0435\u043a\u043b\u0430 \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d\u0430 \u043a\u043b\u0430\u0434\u0451\u043c \u043a\u0443\u0441\u043e\u043a \u0442\u0435\u0440\u043c\u043e\u0431\u0443\u043c\u0430\u0433\u0438 (\u0438\u043b\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0442\u043e\u043d\u043a\u0443\u044e \u0431\u0443\u043c\u0430\u0436\u043a\u0443) \u0438 \u0441 \u043d\u0430\u0436\u0438\u043c\u043e\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u0433\u043e\u0440\u044f\u0447\u0438\u043c \u043f\u0430\u044f\u043b\u044c\u043d\u0438\u043a\u043e\u043c. \u0413\u0435\u0440\u043c\u0435\u0442\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0437\u0430\u043b\u0438\u0442\u043e \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u043e\u0439\u043a\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0448\u043b\u0435\u0439\u0444\u043e\u0432 \u0416\u041a-\u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432, \u0435\u0441\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0431\u0435\u0437 \u0444\u0430\u043d\u0430\u0442\u0438\u0437\u043c\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0442\u044c. \u041f\u043e\u0434\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0430\u0442\u0430\u0440\u0435\u0439\u043a\u0438, \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f. \u0423\u0436\u0435 \u043b\u0443\u0447\u0448\u0435: \u044d\u043a\u0440\u0430\u043d \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438: \u0432\u0441\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u044b \u043a \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u0421\u043d\u043e\u0432\u0430 \u043e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u0439\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u043f\u0440\u043e\u0436\u0430\u0440\u043a\u0443. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043e\u0434\u043d\u0430\u043a\u043e! \u041d\u0435 \u043e\u0447\u0435\u043d\u044c \u0442\u043e\u0447\u043d\u043e, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0451 \u0432 \u043a\u0443\u0447\u0443, \u0436\u0434\u0451\u043c, \u043f\u043e\u043a\u0430 \u0438\u043e\u043d\u0438\u0441\u0442\u043e\u0440 \u043d\u0435 \u0432\u044b\u0434\u043e\u0445\u043d\u0435\u0442\u0441\u044f, \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c. \u0417\u0430\u043f\u0443\u0441\u043a, \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430, \u0438\u2026 \u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u0435\u043d! <s>\u041d\u0435 \u0431\u0438\u0442, \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0430!<\/s> \u0423 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0438 \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0447\u0451\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043b\u0433\u043e\u0432\u0435\u0447\u043d\u044b\u043c \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u043c\u043e\u043d\u0442, \u043d\u043e \u0434\u0430\u0436\u0435 \u0441\u043f\u0443\u0441\u0442\u044f \u0433\u043e\u0434 \u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u0432\u0441\u0451 \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044f \u0441\u0432\u043e\u0435\u0439 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439. <\/p>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043d\u0451\u043c \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u043f\u0440\u043e\u0433\u0438.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041d\u0430 \u0447\u0451\u043c \u043f\u0438\u0448\u0443\u0442 \u043d\u0430 Palm OS?<\/font><\/h2>\n<p>  \u0421 \u0436\u0435\u043b\u0435\u0437\u043e\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0444\u0442\u0430. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443:<\/p>\n<ul>\n<li>BASIC. \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u043e\u0444\u0442 \u043a\u0430\u043a NSBASIC IDE for Palm. \u0410\u0432\u0442\u043e\u0440 \u0435\u0451 \u0437\u0430\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0430\u043b\u044c\u043c\u044b. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Runtime, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439.<\/li>\n<li>C. \u041d\u0443, \u044d\u0442\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435. \u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 (\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u041e\u0421 \u0438 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0439).<\/li>\n<\/ul>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0421\u0442\u0430\u0432\u0438\u043c \u0441\u043e\u0444\u0442<\/font><\/h2>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0430\u043b\u044c\u043c\u044b \u043f\u043e\u0434 Linux, \u0443\u0436\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/358168\/\">\u0431\u044b\u043b\u0430<\/a>. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u043d\u0435\u0439 \u0437\u0430 \u043f\u044f\u0442\u044c \u043b\u0435\u0442 \u0443\u043c\u0443\u0434\u0440\u0438\u043b\u0438\u0441\u044c \u043d\u0435 \u043f\u0440\u043e\u0442\u0443\u0445\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c. \u0422\u0430\u043a \u0447\u0442\u043e \u0442\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0434\u0435\u043b\u0430 \u043f\u043e\u0434 Windows. \u041f\u0443\u0442\u0435\u0439 \u0442\u0443\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e:<\/p>\n<ul>\n<li>Palm OS Developer Suite. \u042d\u0442\u043e IDE \u043d\u0430 \u0431\u0430\u0437\u0435 Eclipse, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0432\u0448\u0430\u044f\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 Palm OS. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 SDK. \u041a \u0441\u043b\u043e\u0432\u0443 \u0433\u043e\u0432\u043e\u0440\u044f, \u044d\u0442\u0430 IDE \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 cygwin \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u0443 \u043d\u0435\u0451 \u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 Linux.<\/li>\n<li>\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0441 Linux. \u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432 \u0442\u043e\u0439 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/li>\n<li>CodeWarrior. \u042d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0430\u0432\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u0430\u044f IDE \u043e\u0442 Metrowerks, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u044d\u0442\u0438 \u041a\u041f\u041a. \u0412\u043e\u043e\u0431\u0449\u0435, \u0434\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u0432 \u0443\u0437\u043a\u0438\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440.<\/li>\n<\/ul>\n<p>  \u0421\u0430\u043c\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438\u0437 \u043d\u0438\u0445 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439, \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u043c\u044b \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c.<br \/>  \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Metrowerks \u0434\u0430\u0432\u043d\u043e \u0443\u0448\u043b\u0430 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e, \u0431\u0443\u0434\u0443\u0447\u0438 \u0432\u044b\u043a\u0443\u043f\u043b\u0435\u043d\u043d\u043e\u0439 Motorola, \u043f\u043e\u0437\u0436\u0435 \u0435\u0451 \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043e\u0442\u043e\u0448\u043b\u0438 Freescale, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438 NXP, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043f\u0440\u043e\u0434\u0430\u0451\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u041f\u041e. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CodeWarrior for Palm \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u043d\u0430\u0437\u0430\u0434, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e\u0442 \u0441\u043e\u0444\u0442 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435. \u0412\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043b\u0435\u0436\u0438\u0442 <a href=\"https:\/\/palmdb.net\/app\/codewarrior\">\u0442\u0443\u0442<\/a>, \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 PalmDB. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 PocketViewer \u0438\u043b\u0438 Psion SIBO, \u0433\u0434\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043b\u0438\u0448\u044c \u0432 \u0430\u0440\u0445\u0438\u0432\u0430\u0445, \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438 \u0441\u043c\u043e\u0433\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u0430\u0439\u0442 \u0441 \u0441\u043e\u0444\u0442\u043e\u043c \u0434\u043b\u044f \u043f\u0430\u043b\u044c\u043c. \u0418\u0437 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c, \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u044f 9.3. \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0441 Windows NT\/2000\/XP \u0438\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0441 \u043d\u0435\u0439 \u0436\u0435. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e ISO, \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0444\u0442\u0430, \u0442\u0430\u043c \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043b\u043e\u0436\u0435\u043d \u043e\u0431\u0440\u0430\u0437 \u0434\u043b\u044f VMWare \u0441 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 CodeWarrior IDE. \u0415\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043b\u044f Mac OS, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u0438 \u0441\u0442\u0430\u0440\u0435\u043d\u044c\u043a\u043e\u0433\u043e Power Mac \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043e\u0431\u0449\u0438\u0442\u044c\u0441\u044f \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u0443\u044e \u041e\u0421.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c ISO\u0448\u043d\u0438\u043a, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0438 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wo\/lv\/bf\/wolvbfnz7ukpg4y4ma-eitvvwdi.jpeg\"><\/p>\n<p>  \u0412 \u0445\u043e\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abCustom installation\u00bb. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0412\u0441\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 SDK \u0432\u0440\u043e\u0434\u0435 Handspring \u0438\u043b\u0438 Symbol \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 CodeWarrior, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/em\/yx\/bc\/emyxbcnmnhsskiwjzf0juep3i84.jpeg\"><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c) \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043e\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043e\u0444\u0442\u0438\u043d\u0443 \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/y8\/ol\/gn\/y8olgneonylqnhlcgykaod1ceqi.jpeg\"><\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0443\u0442 \u0432\u0438\u0434\u043d\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u0435 \u0442\u043e\u0439 \u044d\u043f\u043e\u0445\u0438 \u2014 Creator ID, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0444\u0442 \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435, \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 PalmOS.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/c4\/hc\/ep\/c4hcep13yszfwy-mna_jxrd08sc.jpeg\"><\/p>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u0438. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/v0\/n6\/qj\/v0n6qjryuotsxb4utwqx0rhbjq0.jpeg\"><\/p>\n<p>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 SDK. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u043f\u0430\u043b\u044c\u043c\u044b, \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/oj\/xv\/-_\/ojxv-_nfx9uufvjjethgicybcxa.jpeg\"><\/p>\n<p>  \u0412\u043e\u0442 \u0438 \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440<\/font><\/h2>\n<p>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 ROM-\u044b \u0441 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u041a\u041f\u041a. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u0445 \u0432\u0441\u0451 \u0441 \u0442\u043e\u0433\u043e \u0436\u0435 PalmDB. \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (\u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u043c\u0435\u043d\u044e \u0436\u043c\u044f\u043a\u0430\u0435\u043c \u00abPalm OS\u00bb \u0438 \u0442\u0430\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 ROM). <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qt\/3w\/6o\/qt3w6ops2lg-sfdufmpssqyths4.jpeg\"><\/p>\n<p>  \u0412\u0441\u0451, \u043c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f. \u0416\u043c\u044f\u043a\u043d\u0443\u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c *.prc-\u0424\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u0438\u0448\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443<\/font><\/h2>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u0418\u0442\u0430\u043a, \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0432\u0435\u0441\u044c \u0442\u0435\u043a\u0441\u0442 \u0438 \u043f\u0438\u0448\u0435\u043c \u0442\u0430\u043c:<\/p>\n<pre><code class=\"cpp\">#include &lt;PalmOS.h&gt;  UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { EventType event; char* toLCD = &quot;Hello, Habr!&quot;;  switch (cmd) { case sysAppLaunchCmdNormalLaunch: WinDrawChars(toLCD, StrLen(toLCD), 55, 74); do {   EvtGetEvent(&amp;event, evtWaitForever);   SysHandleEvent(&amp;event); } while(event.eType != appStopEvent); break; }  return errNone; } <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c. \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442\u043e \u0443 \u043d\u0430\u0441 \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/04\/xv\/vi\/04xvvip-bkfuyew74-x4gw2rhli.jpeg\"><\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0415\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0420\u0435\u0441\u0443\u0440\u0441\u044b<\/font><\/h2>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0443\u0435\u0434\u0435\u0448\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u2014 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0444\u043e\u0440\u043c\u044b \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2v\/lt\/wh\/2vltwhbl4czzxgo9e5tz5tdhsd8.jpeg\"><\/p>\n<p>  \u0421\u043e\u0431\u0435\u0440\u0451\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tg\/ez\/fn\/tgezfnhawti2fiquvnoconc9isq.jpeg\"><\/p>\n<p>  \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u0430\u043d\u0435\u043b\u044c \u0432\u044b\u043b\u0435\u0437\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u043c\u0435\u043d\u044e.<\/p>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u043f\u0430\u043f\u043a\u0443, \u0433\u0434\u0435 \u043e\u0431\u0438\u0442\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c *.rcp \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f:<\/p>\n<pre><code class=\"plaintext\">\/\/ test_Rsc.rcp \/\/ \/\/ PilRC-format resources for test \/\/ \/\/ Generated by the CodeWarrior for Palm OS V9 application wizard  GENERATEHEADER &quot;test_Rsc.h&quot; RESETAUTOID 1000  MENU ID MainMenuBar BEGIN     PULLDOWN &quot;Edit&quot;     BEGIN MENUITEM &quot;Undo&quot; ID 10000 &quot;U&quot; MENUITEM &quot;Cut&quot; ID 10001 &quot;X&quot; MENUITEM &quot;Copy&quot;ID 10002 &quot;C&quot; MENUITEM &quot;Paste&quot; ID 10003 &quot;P&quot; MENUITEM &quot;Select All&quot; ID 10004 &quot;S&quot; MENUITEM SEPARATOR ID 10005 MENUITEM &quot;Keyboard&quot; ID 10006 &quot;K&quot; MENUITEM &quot;Graffiti Help&quot; ID 10007 &quot;G&quot;     END   END  MENU ID EditOnlyMenuBar BEGIN     PULLDOWN &quot;Edit&quot;     BEGIN MENUITEM &quot;Undo&quot; ID 10000 &quot;U&quot; MENUITEM &quot;Cut&quot; ID 10001 &quot;X&quot; MENUITEM &quot;Copy&quot;ID 10002 &quot;C&quot; MENUITEM &quot;Paste&quot; ID 10003 &quot;P&quot; MENUITEM &quot;Select All&quot; ID 10004 &quot;S&quot; MENUITEM SEPARATOR ID 10005 MENUITEM &quot;Keyboard&quot; ID 10006 &quot;K&quot; MENUITEM &quot;Graffiti Help&quot; ID 10007 &quot;G&quot;     END END  ALERT ID RomIncompatibleAlert     DEFAULTBUTTON 0     ERROR BEGIN     TITLE &quot;System Incompatible&quot;     MESSAGE &quot;System Version 3.0 or greater is required to run this application.&quot;     BUTTONS &quot;OK&quot; END  FORM ID MainForm AT (0 0 160 160) NOSAVEBEHIND NOFRAME MENUID MainMenuBar BEGIN TITLE &quot;test&quot;     GRAFFITISTATEINDICATOR AT (149 148) FIELD ID MainDescriptionField AT (0 16 160 126) MULTIPLELINES EDITABLE UNDERLINED MAXCHARS 1024 BUTTON &quot;Clear Text&quot; ID MainClearTextButton AT (1 147 AUTO 12) END  ICONFAMILYEX BEGIN     BITMAP &quot;icon-lg-1.bmp&quot; BPP 1      BITMAP &quot;icon-lg-2.bmp&quot; BPP 2      BITMAP &quot;icon-lg-8.bmp&quot; BPP 8 TRANSPARENTINDEX 210 COMPRESS     BITMAP &quot;icon-lg-1-d144.bmp&quot; BPP 1 DENSITY 2     BITMAP &quot;icon-lg-2-d144.bmp&quot; BPP 2 DENSITY 2     BITMAP &quot;icon-lg-8-d144.bmp&quot; BPP 8 TRANSPARENTINDEX 210 COMPRESS DENSITY 2 END  SMALLICONFAMILYEX BEGIN     BITMAP &quot;icon-sm-1.bmp&quot;  BPP 1     BITMAP &quot;icon-sm-2.bmp&quot;  BPP 2     BITMAP &quot;icon-sm-8.bmp&quot;  BPP 8 TRANSPARENTINDEX 210 COMPRESS     BITMAP &quot;icon-sm-1-d144.bmp&quot; BPP 1 DENSITY 2     BITMAP &quot;icon-sm-2-d144.bmp&quot; BPP 2 DENSITY 2     BITMAP &quot;icon-sm-8-d144.bmp&quot; BPP 8 TRANSPARENTINDEX 210 COMPRESS DENSITY 2  END <\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0438 \u0435\u0441\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041a\u0440\u043e\u043c\u0435 \u043d\u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0435 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f *.h-\u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"cpp\">\/* pilrc generated file.  Do not edit!*\/ #define MainClearTextButton 1008 #define MainDescriptionField 1007 #define MainForm 1006 #define RomIncompatibleAlert 1005 #define EditOnlyMenuBar 1003 #define MainMenuBar 1001 <\/code><\/pre>\n<p>  \u0412 \u043d\u0451\u043c \u043b\u0435\u0436\u0430\u0442 ID \u044d\u0442\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<pre><code class=\"cpp\">\/*  * test.c  *  * main file for test  *  * This wizard-generated code is based on code adapted from the  * stationery files distributed as part of the Palm OS SDK 4.0.  *  * Copyright (c) 1999-2000 Palm, Inc. or its subsidiaries.  * All rights reserved.  *\/   #include &lt;PalmOS.h&gt; #include &lt;PalmOSGlue.h&gt;  #include &quot;test.h&quot; #include &quot;test_Rsc.h&quot;  \/*********************************************************************  * Entry Points  *********************************************************************\/  \/*********************************************************************  * Global variables  *********************************************************************\/    \/*********************************************************************  * Internal Constants  *********************************************************************\/  \/* Define the minimum OS version we support *\/ #define ourMinVersion    sysMakeROMVersion(3,0,0,sysROMStageDevelopment,0) #define kPalmOS20Version sysMakeROMVersion(2,0,0,sysROMStageDevelopment,0)  \/*********************************************************************  * Internal Functions  *********************************************************************\/  \/*  * FUNCTION: GetObjectPtr  *  * DESCRIPTION:  *  * This routine returns a pointer to an object in the current form.  *  * PARAMETERS:  *  * formId  *     id of the form to display  *  * RETURNED:  *     address of object as a void pointer  *\/  static void * GetObjectPtr(UInt16 objectID) { FormType * frmP;  frmP = FrmGetActiveForm(); return FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, objectID)); }  \/*  * FUNCTION: MainFormInit  *  * DESCRIPTION: This routine initializes the MainForm form.  *  * PARAMETERS:  *  * frm  *     pointer to the MainForm form.  *\/  static void MainFormInit(FormType *frmP) { FieldType *field; const char *wizardDescription; UInt16 fieldIndex;  fieldIndex = FrmGetObjectIndex(frmP, MainDescriptionField); field = (FieldType *)FrmGetObjectPtr(frmP, fieldIndex); FrmSetFocus(frmP, fieldIndex);  wizardDescription = &quot;C application\\n&quot; &quot;Creator Code: STRT\\n&quot; &quot;\\n&quot; &quot;Other SDKs:\\n&quot; ;  \/* dont stack FldInsert calls, since each one generates a  * fldChangedEvent, and multiple uses can overflow the event queue *\/ FldInsert(field, wizardDescription, StrLen(wizardDescription)); }  \/*  * FUNCTION: MainFormDoCommand  *  * DESCRIPTION: This routine performs the menu command specified.  *  * PARAMETERS:  *  * command  *     menu item id  *\/  static Boolean MainFormDoCommand(UInt16 command) { Boolean handled = false;  switch (command) {  }  return handled; }  \/*  * FUNCTION: MainFormHandleEvent  *  * DESCRIPTION:  *  * This routine is the event handler for the &quot;MainForm&quot; of this   * application.  *  * PARAMETERS:  *  * eventP  *     a pointer to an EventType structure  *  * RETURNED:  *     true if the event was handled and should not be passed to  *     FrmHandleEvent  *\/  static Boolean MainFormHandleEvent(EventType * eventP) { Boolean handled = false; FormType * frmP;  switch (eventP-&gt;eType)  { case menuEvent: return MainFormDoCommand(eventP-&gt;data.menu.itemID);  case frmOpenEvent: frmP = FrmGetActiveForm(); FrmDrawForm(frmP); MainFormInit(frmP); handled = true; break;                      case frmUpdateEvent: \/*   * To do any custom drawing here, first call  * FrmDrawForm(), then do your drawing, and  * then set handled to true.   *\/ break;  case ctlSelectEvent: { if (eventP-&gt;data.ctlSelect.controlID == MainClearTextButton) { \/* The &quot;Clear&quot; button was hit. Clear the contents of the field. *\/ FieldType * field = (FieldType*)GetObjectPtr(MainDescriptionField); if (field) { FldDelete(field, 0, 0xFFFF); FldDrawField(field); } break; }  break; } }      return handled; }  \/*  * FUNCTION: AppHandleEvent  *  * DESCRIPTION:   *  * This routine loads form resources and set the event handler for  * the form loaded.  *  * PARAMETERS:  *  * event  *     a pointer to an EventType structure  *  * RETURNED:  *     true if the event was handled and should not be passed  *     to a higher level handler.  *\/  static Boolean AppHandleEvent(EventType * eventP) { UInt16 formId; FormType * frmP;  if (eventP-&gt;eType == frmLoadEvent) { \/* Load the form resource. *\/ formId = eventP-&gt;data.frmLoad.formID; frmP = FrmInitForm(formId); FrmSetActiveForm(frmP);  \/*   * Set the event handler for the form.  The handler of the  * currently active form is called by FrmHandleEvent each  * time is receives an event.   *\/ switch (formId) { case MainForm: FrmSetEventHandler(frmP, MainFormHandleEvent); break;  } return true; }  return false; }  \/*  * FUNCTION: AppEventLoop  *  * DESCRIPTION: This routine is the event loop for the application.  *\/  static void AppEventLoop(void) { UInt16 error; EventType event;  do  { \/* change timeout if you need periodic nilEvents *\/ EvtGetEvent(&amp;event, evtWaitForever);  if (! SysHandleEvent(&amp;event)) { if (! MenuHandleEvent(0, &amp;event, &amp;error)) { if (! AppHandleEvent(&amp;event)) { FrmDispatchEvent(&amp;event); } } } } while (event.eType != appStopEvent); }  \/*  * FUNCTION: AppStart  *  * DESCRIPTION:  Get the current application's preferences.  *  * RETURNED:  *     errNone - if nothing went wrong  *\/  static Err AppStart(void) {  return errNone; }  \/*  * FUNCTION: AppStop  *  * DESCRIPTION: Save the current state of the application.  *\/  static void AppStop(void) {          \/* Close all the open forms. *\/ FrmCloseAllForms();  }  \/*  * FUNCTION: RomVersionCompatible  *  * DESCRIPTION:   *  * This routine checks that a ROM version is meet your minimum   * requirement.  *  * PARAMETERS:  *  * requiredVersion  *     minimum rom version required  *     (see sysFtrNumROMVersion in SystemMgr.h for format)  *  * launchFlags  *     flags that indicate if the application UI is initialized  *     These flags are one of the parameters to your app's PilotMain  *  * RETURNED:  *     error code or zero if ROM version is compatible  *\/  static Err RomVersionCompatible(UInt32 requiredVersion, UInt16 launchFlags) { UInt32 romVersion;  \/* See if we're on in minimum required version of the ROM or later. *\/ FtrGet(sysFtrCreator, sysFtrNumROMVersion, &amp;romVersion); if (romVersion &lt; requiredVersion) { if ((launchFlags &amp;  (sysAppLaunchFlagNewGlobals | sysAppLaunchFlagUIApp)) == (sysAppLaunchFlagNewGlobals | sysAppLaunchFlagUIApp)) { FrmAlert (RomIncompatibleAlert);  \/* Palm OS versions before 2.0 will continuously relaunch this  * app unless we switch to another safe one. *\/ if (romVersion &lt; kPalmOS20Version) { AppLaunchWithCommand( sysFileCDefaultApp,  sysAppLaunchCmdNormalLaunch, NULL); } }  return sysErrRomIncompatible; }  return errNone; }  \/*  * FUNCTION: PilotMain  *  * DESCRIPTION: This is the main entry point for the application.  *   * PARAMETERS:  *  * cmd  *     word value specifying the launch code.   *  * cmdPB  *     pointer to a structure that is associated with the launch code  *  * launchFlags  *     word value providing extra information about the launch.  *  * RETURNED:  *     Result of launch, errNone if all went OK  *\/  UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { Err error;  error = RomVersionCompatible (ourMinVersion, launchFlags); if (error) return (error);  switch (cmd) { case sysAppLaunchCmdNormalLaunch: error = AppStart(); if (error)  return error;  \/*   * start application by opening the main form  * and then entering the main event loop   *\/ FrmGotoForm(MainForm); AppEventLoop();  AppStop(); break; }  return errNone; } <\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430. \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0446\u0438\u043a\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u041e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u044b\u0445\u043e\u0434\u0430. \u041f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0432\u0441\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0444\u043e\u0440\u043c\u044b \u043f\u0440\u0438\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u2014 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e, \u0442\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">PilRC Designer<\/font><\/h2>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 CodeWarrior \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0430\u0436 \u0434\u0432\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 <i>Constructor<\/i> \u0438 <i>PilRC Designer<\/i>. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/j5\/r8\/nv\/j5r8nvom4gbohpf8ynenzy-nwpe.jpeg\"><\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0443. \u0422\u0443\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u041a\u041f\u041a \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jv\/b7\/p2\/jvb7p22-njf392nx1lchjpl2jwc.jpeg\"><\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u0435\u0439 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c ID. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 <i>Constructor<\/i> \u043c\u043e\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b (\u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c \u0438 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0444\u0430\u0439\u043b \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rh\/5j\/8s\/rh5j8sqfxv0lsqmk5m81ch-bx44.jpeg\"><\/p>\n<p>  \u0412\u043e\u0442 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u0430 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u0435\u043d\u044e. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 Exit, \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mp\/gl\/pk\/mpglpkhtzxdkcpxigzkamdxymlm.jpeg\"><\/p>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0443. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0438 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0444\u043e\u0440\u043c\u044b \u0448\u043b\u0451\u043f\u043d\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/oq\/ln\/sq\/oqlnsqa77dn3c-k2l_sfnynxjfo.jpeg\"><\/p>\n<p>  \u0412 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u044d\u0442\u043e \u0432\u0441\u0451 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043a\u0438\u0434\u0430\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c ID \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u0451\u043c *.c-\u0444\u0430\u0439\u043b, \u0433\u0434\u0435 \u043f\u0438\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"cpp\">#include &lt;PalmOS.h&gt; #include &lt;PalmOSGlue.h&gt;  #include &quot;test.h&quot; #include &quot;test_Rsc.h&quot;  static void * GetObjectPtr(UInt16 objectID) { FormType * frmP;  frmP = FrmGetActiveForm(); return FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, objectID)); }   static Boolean MainFormDoCommand(UInt16 command) { Boolean handled = false;  switch (command) {  }  return handled; }  static Boolean MainFormHandleEvent(EventType * eventP) { Boolean handled = false; FormType * frmP;  switch (eventP-&gt;eType)  { case menuEvent: return MainFormDoCommand(eventP-&gt;data.menu.itemID);  case frmOpenEvent: frmP = FrmGetActiveForm(); FrmDrawForm(frmP); handled = true; break;                      case frmUpdateEvent:  break;  case ctlSelectEvent: break;  }      return handled; }  static Boolean AppHandleEvent(EventType * eventP) { UInt16 formId; FormType * frmP;  if (eventP-&gt;eType == frmLoadEvent) { \/* Load the form resource. *\/ formId = eventP-&gt;data.frmLoad.formID; frmP = FrmInitForm(formId); FrmSetActiveForm(frmP);  switch (formId) { case MainForm: FrmSetEventHandler(frmP, MainFormHandleEvent); break;  } return true; }  return false; }  static void AppEventLoop(void) { UInt16 error; EventType event;  do  { EvtGetEvent(&amp;event, evtWaitForever);  if (! SysHandleEvent(&amp;event)) { if (! MenuHandleEvent(0, &amp;event, &amp;error)) { if (! AppHandleEvent(&amp;event)) { FrmDispatchEvent(&amp;event); } } } } while (event.eType != appStopEvent); }   static Err AppStart(void) {  return errNone; }  static void AppStop(void) {          FrmCloseAllForms();  }  UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { Err error;  switch (cmd) { case sysAppLaunchCmdNormalLaunch: error = AppStart(); if (error)  return error;  FrmGotoForm(MainForm); AppEventLoop();  AppStop(); break; }  return errNone; } <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/f6\/96\/yn\/f696ynkr_dlnk2cukc2brbz63hc.jpeg\"><\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c. \u041a\u0430\u043a \u043c\u043e\u0436\u0435\u043c \u0432\u0438\u0434\u0435\u0442\u044c, \u0444\u043e\u0440\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f. \u041d\u043e \u043a\u043d\u043e\u043f\u043a\u0430, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0430 \u043d\u0435\u0451 \u043d\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u044d\u0442\u043e \u043d\u0435\u0434\u043e\u0440\u0430\u0437\u0443\u043c\u0435\u043d\u0438\u0435.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0438\u0430\u043b\u043e\u0433, \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e ID, \u0430 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 <i>case ctlSelectEvent:<\/i> \u043f\u0440\u043e\u043f\u0438\u0448\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"cpp\">if (eventP-&gt;data.ctlSelect.controlID == testButton) { FrmAlert(testAlert); break; }<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u0438, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e, \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0444\u043e\u0440\u043c\u044b, \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0438\u0437 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ou\/r-\/si\/our-sihnh4s8sxdj4gro1wsopv8.jpeg\"><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0451 \u044d\u0442\u043e (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 ID, \u0438\u043d\u0430\u0447\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442). \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u2014 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c alert.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xh\/_w\/0w\/xh_w0w2j3xp-syp6ul0jccplzmg.jpeg\"><\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0438\u0447\u0442\u043e \u0442\u0430\u043a \u043d\u0435 \u0440\u0430\u0434\u0443\u0435\u0442 \u043a\u0430\u043a \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0435\u0440\u0451\u043c \u043d\u0430\u0448 *.prc-\u0444\u0430\u0439\u043b \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uk\/yo\/4l\/ukyo4lhtgd_6aatyxnx4v_xogvw.jpeg\"><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rp\/nt\/rd\/rpntrd5tuhlss8qmgqnxamo_juo.jpeg\"><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hs\/sc\/6w\/hssc6wje2a1zmpq-aopbug90njc.jpeg\"><\/p>\n<p>  \u041d\u0430\u0441\u0430\u0436\u0438\u0432\u0430\u0435\u043c \u041a\u041f\u041a \u043d\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043a\u0443, \u0436\u043c\u044f\u043a\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0443 \u043d\u0430 \u043d\u0435\u0439, \u0438 \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0430 \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438<\/font><\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0441 \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u0441\u0451 \u043d\u0435 \u0442\u0430\u043a \u043b\u0435\u0433\u043a\u043e, \u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/w3\/vg\/qg\/w3vgqgezv2wld8l0g_hmkir6_ik.jpeg\"><\/p>\n<p>  \u0411\u0435\u0440\u0451\u043c \u043d\u0430\u0448\u0443 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u2014 <i>BITMAP<\/i>. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 <i>BITMAP FAMILY<\/i> \u2014 \u0434\u043b\u044f \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0440\u0430\u0437\u043d\u043e\u0439 \u0431\u0438\u0442\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u0446\u0432\u0435\u0442\u043d\u044b\u043c \u041a\u041f\u041a \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u043b \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u0443\u044e \u043a\u0430\u0448\u0443 \u0438\u0437 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/op\/km\/n4\/opkmn4rlimfzebr3bld8v2fxb2s.jpeg\"><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <i>FORMBITMAP<\/i>, \u0433\u0434\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c ID \u043d\u0430\u0448\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ly\/1z\/dg\/ly1zdgz8mbyfihz5itgn3penvnc.jpeg\"><\/p>\n<p>  \u0412\u0441\u0451, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c!<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">RS-232<\/font><\/h2>\n<p>  \u041e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043a\u0440\u0443\u0442\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0430\u043b\u044c\u043c\u044b \u2014 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 \u043d\u0435\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 \u0441 \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e RS-232. \u0422\u043e \u0435\u0441\u0442\u044c \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 (\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e Comms \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 Psion), \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u043c\u0438-\u0442\u043e \u0436\u0435\u043b\u0435\u0437\u043a\u0430\u043c\u0438 \u043f\u043e COM-\u043f\u043e\u0440\u0442\u0443.<br \/>  \u0418\u0442\u0430\u043a, \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0440\u0442 \u043d\u0430\u0434\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"cpp\">UInt16 port;  UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { Err error; error = SrmOpen(serPortCradlePort,115200,&amp;port); if (error) return error;  switch (cmd) { case sysAppLaunchCmdNormalLaunch: error = AppStart(); if (error)  return error;  \/*   * start application by opening the main form  * and then entering the main event loop   *\/ FrmGotoForm(MainForm); AppEventLoop(); SrmClose(port); AppStop(); break; }  return errNone; }<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u043e\u0440\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c. \u0415\u0441\u043b\u0438 \u044d\u0442\u0438\u043c \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0447\u044c, \u0442\u043e \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c HotSync \u0432\u044b \u0440\u0438\u0441\u043a\u0443\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/n5\/j7\/dd\/n5j7ddw10xwsvgsjr-9myvowgkc.jpeg\"><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ln\/br\/w8\/lnbrw8zd22a1ssz-iy-5vt1y9cs.jpeg\"><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e\u0440\u0442 \u043e\u0442\u043a\u0440\u044b\u043b\u0438. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u044f \u0431\u0430\u0445\u043d\u0443\u043b \u0434\u0432\u0435 \u043a\u043d\u043e\u043f\u043a\u0438, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043f\u043e\u0440\u0442 \u00ab1\u00bb, \u0434\u0440\u0443\u0433\u0430\u044f \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0431\u0443\u0444\u0435\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0451 \u044d\u0442\u043e, \u043a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b:<\/p>\n<pre><code class=\"cpp\">if (eventP-&gt;data.ctlSelect.controlID == sendButton) { Err error; char data = '1'; SrmSend(port,&amp;data,sizeof(data),&amp;error); FrmAlert (sendAlert); break; } if (eventP-&gt;data.ctlSelect.controlID == receiveButton) { UInt8 * receivedData; UInt32 bytesRead = 0; Err error = SrmReceiveWindowOpen(port,&amp;receivedData,&amp;bytesRead); if(error == errNone) {  SrmReceiveWindowClose(port,bytesRead);  } if(bytesRead != 0) {  FrmAlert (receiveAlert);  }  else FrmAlert (noDataAlert); break; }<\/code><\/pre>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">IMMA CHARGIN MAH LAZER!<\/font><\/h2>\n<p>  \u041d\u0443 \u0438 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 API \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0432 \u0422\u0421\u0414 Symbol. \u0411\u043b\u0430\u0433\u043e \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 Symbol SDK \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0410 \u0432\u043e\u0442 \u0438 \u043a\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">\/************************************************************************ * COPYRIGHT:   Copyright  &copy;  1998, 2000 Symbol Technologies, Inc.  * * FILE:        Sscan.c * * SYSTEM:      Symbol barcode scanner for Symbol Palm Terminals *  * MODULE:      A Simple Scan Demo Application for both 1D and 2D Barcodes *               * DESCRIPTION: Contains application support functions, including main form event handlers *              and event loop for the sample application. * * FUNCTIONS:   StartApplication * StopApplication *PilotMain *MainFormHandleEvent *MainFormOnInit *MainFormHandleMenu *EventLoop *ApplicationHandleEvent *OnDecoderData * OnAbout *AboutHandleEvent * AboutOnInit * * HISTORY:     5\/25\/98    KEF   Created *   3\/17\/99  CFS   Set bHandled to true so that the default error processing will  *not be used.  The app processing is used (line 175). *   3\/29\/00  MWModified for 2D Barcodes. *              ... *************************************************************************\/ #ifdef __cplusplus    extern &quot;C&quot; { #endif  #include &quot;PalmOS.h&quot;\/\/ all the system toolbox headers #include &lt;Menu.h&gt;  #include &quot;ScanMgrDef.h&quot;\/\/ Scan Manager constant definitions #include &quot;ScanMgrStruct.h&quot;\/\/ Scan Manager structure definitions  #include &quot;ScanMgr.h&quot; \/\/ Scan Manager API function definitions  #include &quot;SscandemoRsc.h&quot;\/\/ application resource defines #include &quot;Utils.h&quot;\/\/ miscellaneous utility functions for this app  #define  SCANDATA_WIDTH145  Boolean extend; Int16 extendedDataLength;  \/***********************************************************************  * Prototypes for internal functions  **********************************************************************\/ static void StartApplication(void); static void StopApplication(void); static Boolean MainFormHandleEvent(EventPtr event); static void MainFormHandleMenu( UInt16 menuSel ); static void EventLoop(void); static MenuBarPtrCurrentMenu; static Boolean OnDecoderData();  static void MainFormOnInit(); static Boolean ApplicationHandleEvent (EventPtr event); static void OnAbout(); static Boolean AboutHandleEvent( EventPtr ev ); static void AboutOnInit( void ); static void UpdateScrollbar(void); static voidScrollLines(Int16 numLinesToScroll, Boolean redraw); static void PageScroll(WinDirectionType direction);  #ifdef __cplusplus     } #endif \/***********************************************************************  *  * FUNCTION: StartApplication  *  * DESCRIPTION: This routine sets up the initial state of the application.  * Set the Main Form as the initial form to display.  * Checks to make sure we're running on Symbol hardware, then   * calls ScanOpenDecoder to initialize the Scan Manager.    * If successful, then we proceed with setting decoder   * parameters that we care about for this application.  * ScanCmdSendParams is called to send our params to the decoder.  *  * PARAMETERS: None.  *  * RETURNED: Nothing.  *  ***********************************************************************\/ static void StartApplication(void) { Err error;  \/\/ Call up the main form. FrmGotoForm( MainForm );  \/\/ Make sure we're running on Symbol hardware before attempting to  \/\/ open the decoder or call any other Scan Manager functions. if (ScanIsPalmSymbolUnit()) { \/\/ Now, open the scan manager library error = ScanOpenDecoder();  if (!error) { \/\/ Set decoder parameters we care about... ScanCmdScanEnable(); \/\/ enable scanning ScanSetTriggeringModes( HOST ); \/\/ allow software-triggered scans (from our Scan button) ScanSetBarcodeEnabled( barUPCA, true ); \/\/ Enable any barcodes to be scanned ScanSetBarcodeEnabled( barUPCE, true ); ScanSetBarcodeEnabled( barUPCE1, true ); ScanSetBarcodeEnabled( barEAN13, true ); ScanSetBarcodeEnabled( barEAN8, true ); ScanSetBarcodeEnabled( barBOOKLAND_EAN, true); ScanSetBarcodeEnabled( barCOUPON, true); ScanSetBarcodeEnabled( barPDF417, true);  \/\/ We've set our parameters... \/\/ Now call &quot;ScanCmdSendParams&quot; to send them to the decoder ScanCmdSendParams( No_Beep);  } } }  \/***********************************************************************  *  * FUNCTION:     StopApplication  *  * DESCRIPTION:  This routine does any cleanup required, including shutting down  *   the decoder and Scan Manager shared library.  *  * PARAMETERS:   None.  *  * RETURNED:     Nothing.  *  ***********************************************************************\/ static void StopApplication(void) { if (ScanIsPalmSymbolUnit()) { \/\/ Disable the scanner and Close Scan Manager shared library ScanCmdScanDisable();  ScanCloseDecoder();  } }  \/***********************************************************************  *  * FUNCTION:MainFormHandleEvent  *  * DESCRIPTION:Handles processing of events for the Main Form.  * The following events are handled:  * frmOpenEvent and menuEvent - standard handling  * scanDecodeEvent - indicates that a scan was completed  * scanBatteryErrorEvent - indicates batteries too low to scan  * ctlSelectEvent - for Scan button on the main form  *  * PARAMETERS:event- the most recent event.  *  * RETURNED:True if the event is handled, false otherwise.  *  ***********************************************************************\/ static Boolean MainFormHandleEvent(EventPtr event) { BooleanbHandled = false; UInt16extendedDataFlag;  switch( event-&gt;eType ) { case frmOpenEvent: MainFormOnInit(); bHandled = true; break;  case menuEvent: MainFormHandleMenu(event-&gt;data.menu.itemID); bHandled = true; break;  case scanDecodeEvent: \/\/ A decode has been performed.   \/\/ Use the decoder API to get the decoder data into our memory  \/\/ Get barcode parameters from the registers extendedDataFlag = ((ScanEventPtr)event)-&gt;scanData.scanGen.data1; extendedDataLength  = (Int16)(((ScanEventPtr)event)-&gt;scanData.scanGen.data2);  extend = extendedDataFlag &amp; EXTENDED_DATA_FLAG;  OnDecoderData();  bHandled = true; break;  case scanBatteryErrorEvent: { Char szTemp[10]; StrIToA( szTemp, ((ScanEventPtr)event)-&gt;scanData.batteryError.batteryLevel ); FrmCustomAlert( BatteryErrorAlert, szTemp, NULL, NULL );  bHandled = true; break; }  case ctlSelectEvent: { if (ScanIsPalmSymbolUnit()) { \/\/ Scan Button if (event-&gt;data.ctlEnter.controlID == MainSCANButton) { ScanCmdStartDecode(); bHandled = true; } }    break; }  case fldChangedEvent: UpdateScrollbar(); bHandled = true; break;  case sclRepeatEvent: ScrollLines(event-&gt;data.sclRepeat.newValue - event-&gt;data.sclRepeat.value, false); break;  case keyDownEvent: { if (event-&gt;data.keyDown.chr == pageUpChr) { PageScroll(winUp); bHandled = true; } else if (event-&gt;data.keyDown.chr == pageDownChr) { PageScroll(winDown); bHandled = true; }  break; }  } \/\/end switch  return(bHandled); }    \/***********************************************************************  *  * FUNCTION:     MainFormOnInit  *  * DESCRIPTION:  This routine sets up the initial state of the main form  *  * PARAMETERS:   None.  *  * RETURNED:     Nothing.  *  ***********************************************************************\/ static void MainFormOnInit() { FormPtr pForm = FrmGetActiveForm(); if( pForm ) { \/\/ initialize the barcode type and barcode data fields SetFieldText( MainBarTypeField, &quot;No Data&quot;, 20, false ); SetFieldText( MainScandataField, &quot;No Data&quot;, 80, false ); FrmDrawForm( pForm ); } }  \/***********************************************************************  *  * FUNCTION:     MainFormHandleMenu  *  * DESCRIPTION:  This routine handles menu selections off of the main form  *  * PARAMETERS:   None.  *  * RETURNED:     Nothing.  *  ***********************************************************************\/ void MainFormHandleMenu( UInt16 menuSel ) { switch( menuSel ) { \/\/ Options menu case OptionsResetDefaults: if (ScanIsPalmSymbolUnit()) { ScanCmdScanDisable();   if(ScanCmdParamDefaults() == STATUS_OK) ScanCmdScanEnable(); \/\/ enable scanning } break;  case OptionsAbout: OnAbout(); break; } }  \/***********************************************************************  *  * FUNCTION:EventLoop  *  * DESCRIPTION:A simple loop that obtains events from the Event  *Manager and passes them on to various applications and  *system event handlers before passing them on to  *FrmHandleEvent for default processing.  *  * PARAMETERS:None.  *  * RETURNED:Nothing.  *  ***********************************************************************\/ static void EventLoop(void) { static EventTypeevent; UInt16 error;  do { \/\/ Get the next available event. EvtGetEvent(&amp;event, \/*5*\/ evtWaitForever);  \/\/ Give the system a chance to handle the event.   if( !SysHandleEvent (&amp;event)) if( !MenuHandleEvent (CurrentMenu, &amp;event, &amp;error)) \/\/ Give the application a chance to handle the event. if( !ApplicationHandleEvent(&amp;event) ) \/\/ Let the form object provide default handling of the event. FrmDispatchEvent(&amp;event); }  while (event.eType != appStopEvent); }   \/***********************************************************************  *  * FUNCTION:ApplicationHandleEvent  *  * DESCRIPTION:An event handler for this application.  Gives control   * to the appropriate form (Main or About) by setting the  * newly-loaded form's event handler.  *  * PARAMETERS:None.  *  * RETURNED:Nothing.  *  ***********************************************************************\/ static Boolean ApplicationHandleEvent (EventPtr event) { UInt16 formID; FormPtr frm;  if (event-&gt;eType == frmLoadEvent) { \/\/ Load the form resource. formID = event-&gt;data.frmLoad.formID; frm = FrmInitForm (formID); FrmSetActiveForm (frm);  \/\/ Set the event handler for the form.  The handler of the currently \/\/ active form is called by FrmDispatchEvent each time is receives an \/\/ event. switch (formID) { case MainForm: FrmSetEventHandler (frm, MainFormHandleEvent); break;  case AboutForm: FrmSetEventHandler (frm, AboutHandleEvent ); break; } return (true); } return (false); }   \/***********************************************************************  *  * FUNCTION:PilotMain  *  * DESCRIPTION:This function is the equivalent of a main() function  *in standard C.  It is called by the Emulator to begin  *execution of this application.  *  * PARAMETERS:cmd - command specifying how to launch the application.  *cmdPBP - parameter block for the command.  *launchFlags - flags used to configure the launch.  *  * RETURNED:Any applicable error code.  *  ***********************************************************************\/ UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { \/\/ Check for a normal launch. if (cmd == sysAppLaunchCmdNormalLaunch) { Err error = STATUS_OK;  \/\/ Set up Scan Manager and the initial (Main) form. StartApplication();  \/\/ Start up the event loop. EventLoop();  \/\/ Close down Scan Manager, decoder StopApplication(); }  return(0); }  \/***********************************************************************  *  * FUNCTION: OnDecoderData  *  * DESCRIPTION:Called when the app receives a scanDecodeEvent, which  * signals that a decode operation has been completed.  * Calls the Scan Manager function &quot;ScanGetDecodedData&quot;   * to get the scan data and barcode type from the last   * scan.  Fills in the controls on the main form that   * display this information.  *  * RETURNED:True if the event is handled, false otherwise.  *  ***********************************************************************\/ Boolean OnDecoderData() {  static Char BarTypeStr[80]=&quot; &quot;; MESSAGE decodeDataMsg; Int16status; MemHandlehExtendedData; UInt8*pExtendedData; Int16extendedDataType; UInt16numlines;   if (extend){ hExtendedData = MemHandleNew( extendedDataLength ); pExtendedData = (UInt8 *)MemHandleLock( hExtendedData ); status = ScanGetExtendedDecodedData(extendedDataLength, &amp;extendedDataType, pExtendedData); } else{ status = ScanGetDecodedData( &amp;decodeDataMsg ); extendedDataType = decodeDataMsg.type; extendedDataLength = decodeDataMsg.length; hExtendedData = MemHandleNew(extendedDataLength+1); pExtendedData = (UInt8 *)MemHandleLock( hExtendedData ); pExtendedData[extendedDataLength] = '\\0'; MemMove( &amp;pExtendedData[0], &amp;decodeDataMsg.data[0], extendedDataLength+1 ); }  if( status == STATUS_OK ) \/\/ if we successfully got the decode data from the API... { FieldPtr pField;  \/\/ call a function to translate barcoce type into a string, and display it ScanGetBarTypeStr( extendedDataType, BarTypeStr, 30 );\/\/ in Utils.c SetFieldText( MainBarTypeField, BarTypeStr, 30, true );   \/\/ Check to see if this scan was a &quot;No Data Read&quot; (indicated by type of zero). if( extendedDataType == 0) { SetFieldText( MainScandataField, &quot;No Scan&quot;, 30, true ); } else { FieldAttrType attr; \/\/ Place the barcode data into the field and display    \/* Set up data display field to display the memory *\/ pField = (FieldPtr)GetObjectPtr(MainScandataField);  FldGetAttributes(pField, &amp;attr); attr.editable = true; FldSetAttributes(pField, &amp;attr);  FldDelete(pField, 0, FldGetTextLength(pField));\/\/ clear out old data    if (extendedDataLength &gt; FldGetMaxChars(pField)) FldSetMaxChars (pField, extendedDataLength);  FldEraseField(pField);\/\/ hide field so we don't \/\/ see the data scroll in  FldInsert(pField, (Char *)&amp;pExtendedData[0], extendedDataLength);  \/\/ move to top of scroll bar numlines = FldCalcFieldHeight((Char *)&amp;pExtendedData[0], SCANDATA_WIDTH); ScrollLines(-numlines, false);\/\/ scroll to top of data  FldDrawField(pField);\/\/ show field  FldGetAttributes(pField, &amp;attr); attr.editable = false; FldSetAttributes(pField, &amp;attr);  } }  UpdateScrollbar();  MemHandleUnlock( hExtendedData ); MemHandleFree( hExtendedData );  return(0);     }  \/***********************************************************************  *  * FUNCTION:UpdateScrollbar  *  * DESCRIPTION:Updates the scroll bar according to the current condition  *of MainScandataField. Code taken from Palm Programming.  *  * PARAMETERS:none  *  * RETURNED:none  *  ***********************************************************************\/  static void UpdateScrollbar(void) { FormPtrfrm = FrmGetActiveForm(); ScrollBarPtrscroll; FieldPtrfield; UInt16currentPosition; UInt16textHeight; UInt16fieldHeight; UInt16maxValue;  field = (FieldPtr)FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, MainScandataField)); FldGetScrollValues(field, &amp;currentPosition, &amp;textHeight, &amp;fieldHeight);  if (textHeight &gt; fieldHeight) maxValue = textHeight - fieldHeight; else if (currentPosition) maxValue = currentPosition; else maxValue = 0;  scroll = (ScrollBarPtr)FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, MainScanScrollBar)); SclSetScrollBar(scroll, currentPosition, 0, maxValue, fieldHeight - 1);  }  \/***********************************************************************  *  * FUNCTION:ScrollLines  *  * DESCRIPTION:Scrolls the field according to the Scroll bar  *  * PARAMETERS:numLinesToScroll - number of lines to scroll  *redraw - call update scrollbar  *  * RETURNED:none  *  ***********************************************************************\/  static void ScrollLines (Int16 numLinesToScroll, Boolean redraw) { FormPtrfrm = FrmGetActiveForm(); FieldPtrfield;  field = (FieldPtr)FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, MainScandataField));  if (numLinesToScroll &lt; 0) FldScrollField(field, -numLinesToScroll, winUp); else FldScrollField(field, numLinesToScroll, winDown);  if (FldGetNumberOfBlankLines(field) &amp;&amp; numLinesToScroll &lt; 0 || redraw) UpdateScrollbar(); }   \/***********************************************************************  *  * FUNCTION:PageScroll  *  * DESCRIPTION:Scrolls the field up or down one field page length  *  * PARAMETERS:direction - up or down  *  * RETURNED:none  *  ***********************************************************************\/  static void PageScroll (WinDirectionType direction) { FormPtrfrm = FrmGetActiveForm(); FieldPtrfield;  field = (FieldPtr)FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, MainScandataField)); if (FldScrollable(field, direction)){ Int16 linesToScroll = FldGetVisibleLines(field) -1;  if(direction == winUp) linesToScroll = -linesToScroll;  ScrollLines(linesToScroll, true); } }  \/***********************************************************************    About Form ************************************************************************\/  \/***********************************************************************  *  * FUNCTION:OnAbout  *  * DESCRIPTION:Changes the active form to the About Form  *  * PARAMETERS:None.  *  * RETURNED:Nothing  *  ***********************************************************************\/ void OnAbout() { FrmGotoForm( AboutForm ); }  \/***********************************************************************  *  * FUNCTION:AboutOnInit  *  * DESCRIPTION:Initialize controls on the about form, after getting   * the version strings from the Scan Manager API.  *  * PARAMETERS:None.  *  * RETURNED:Nothing  *  ***********************************************************************\/ static void AboutOnInit( void ) { Char chrDecoderVersion[MAX_PACKET_LENGTH]; Char chrPortDriverVersion[20]; Char chrScanMgrVersion[20]; FormPtr pForm = FrmGetActiveForm();  if (ScanIsPalmSymbolUnit()) { \/\/ initialize text in all the version string fields ScanGetDecoderVersion( chrDecoderVersion, MAX_PACKET_LENGTH); SetFieldText(AboutDecoderField, chrDecoderVersion, MAX_PACKET_LENGTH, false);  ScanGetScanPortDriverVersion(chrPortDriverVersion, 20 ); SetFieldText(AboutPortDriverField, chrPortDriverVersion, 20, false);  ScanGetScanManagerVersion(chrScanMgrVersion, 20 ); SetFieldText(AboutScanManagerField, chrScanMgrVersion, 20, false); }  FrmDrawForm( pForm ); }  \/***********************************************************************  *  * FUNCTION:AboutHandleEvent  *  * DESCRIPTION:Event handler for the About form.  * Handles the frmOpenEvent, frmCloseEvent, and the   * ctlSelectEvent (for the OK button).  *  * PARAMETERS:ev - pointer to the event information structure.  *  * RETURNED:true - the event was handled by us.  false otherwise  *  ***********************************************************************\/ Boolean AboutHandleEvent( EventPtr ev ) { Boolean bHandled = false;  switch( ev-&gt;eType ) { case ctlSelectEvent: if( ev-&gt;data.ctlSelect.controlID == AboutOKButton ) { FrmGotoForm(MainForm); bHandled = true; } break;  case frmOpenEvent: AboutOnInit(); bHandled = true; break;  case frmCloseEvent: FreeFieldHandle(AboutDecoderField); break;  default: break; }  return bHandled; } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <i>ScanIsPalmSymbolUnit()<\/i>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0422\u0421\u0414. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u043e\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u041a\u041f\u041a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0443\u0447\u043d\u043e\u0439 \u0432\u0432\u043e\u0434, \u0430 \u043d\u0430 \u0422\u0421\u0414 \u2014 \u0435\u0449\u0451 \u0438 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0432\u0435\u0440\u043d\u043e, \u0441\u043a\u0430\u043d\u0435\u0440 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <i>ScanCmdScanEnable()<\/i>. \u0412 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u0430: <i>scanDecodeEvent<\/i> \u0438 <i>scanBatteryErrorEvent<\/i>. \u041f\u0435\u0440\u0432\u043e\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0441\u043a\u0430\u043d\u0435\u0440 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b, \u0432\u0442\u043e\u0440\u043e\u0435 \u2014 \u043f\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u043c \u0437\u0430\u0440\u044f\u0434\u0435 \u0431\u0430\u0442\u0430\u0440\u0435\u0439. <\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u043a\u0430\u043d\u0435\u0440 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u043a, \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u044f\u0436\u0435\u043d\u043d\u044b\u0445 \u0431\u0430\u0442\u0430\u0440\u0435\u0439\u043a\u0430\u0445 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0438 \u0433\u043b\u044e\u043a\u0430\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0438 \u043f\u0440\u0438 \u0435\u0433\u043e \u043d\u0438\u0437\u043a\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0432\u044b\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<p>  \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u0434\u0435\u0440. \u0414\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0442\u0438\u043f\u0430 <i>MESSAGE<\/i> \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <i>ScanGetDecodedData<\/i>, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <i>ScanGetBarTypeStr<\/i> \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u043c, \u043a\u043e\u0434 \u043a\u0430\u043a\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0431\u044b\u043b \u0441\u0447\u0438\u0442\u0430\u043d. \u0414\u0430\u043b\u0435\u0435 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0444\u043e\u0440\u043c\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6i\/mb\/gi\/6imbgirvz-zcdoxmaxihknymq8i.jpeg\"><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/e2\/q0\/ug\/e2q0ugjfgimzvp5l4l088lckkhc.jpeg\"><\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u041a\u0441\u0442\u0430\u0442\u0438, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043e\u043d\u043e \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u0432, \u0447\u0442\u043e \u043c\u043e\u0433\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u044b\u0435 \u041a\u041f\u041a, \u0442\u043e \u0435\u0441\u0442\u044c QR-\u043a\u043e\u0434\u044b \u0438\u043b\u0438 PDF417 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0431\u044b \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/font><\/h2>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434 Palm OS \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0438\u0445 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438 \u0432 \u043f\u0430\u0440\u0435-\u0442\u0440\u043e\u0439\u043a\u0435 \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u044e\u0430\u043d\u0441\u043e\u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u043d\u043e\u0433\u043e. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u0441\u0451 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u043f\u043b\u043e\u0445\u043e, \u0442\u0443 \u0436\u0435 <i>Palm OS Programming<\/i> \u043e\u0442 O&#8217;Reilly \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445. \u0422\u0430\u043a\u0436\u0435 \u0446\u0435\u043b\u0430\u044f \u043a\u0443\u0447\u0430 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0434\u0451\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 CodeWarrior. <\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043f\u0440\u043e rePalm \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b<\/font><\/h2>\n<p>  \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 EPOC16 (\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e \u044f \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0433\u043e\u0440\u044f\u0447\u043e \u043b\u044e\u0431\u043b\u044e), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u0431\u0438\u043b\u0430 \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u0430\u043b\u044c\u043c\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0441\u0434\u043e\u0445\u043b\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/8a\/ds\/72\/8ads72hnkexchaqchr2axvlu-4e.jpeg\"><\/p>\n<p>  \u0427\u0435\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u0430\u043a rePalm, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Palm OS \u043d\u0430 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 (\u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b STM32F429I-DISCO, \u0447\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u0432 \u043c\u043e\u0438\u0445 \u0449\u0435\u0434\u0440\u044b\u0445 \u0437\u0430\u043a\u0440\u043e\u043c\u0430\u0445 \u0420\u043e\u0434\u0438\u043d\u044b).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nk\/st\/hp\/nksthpngqsxlqlb_h2yzb5lfply.jpeg\"><\/p>\n<p>  \u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u044b \u043f\u0430\u043b\u044c\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043b\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d PHEM, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u041e\u0421 \u0438\u0437-\u043f\u043e\u0434 Android. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0443 \u0432\u0430\u0441 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0439 \u0436\u0435\u043b\u0435\u0437\u043a\u0438 \u0432\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0435\u0451 \u0441\u043e\u0444\u0442\u043e\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kj\/qe\/om\/kjqeomyz0rjdm3utnk3z3bse5wc.png\"><\/p>\n<p>  \u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u043b\u0435\u0442\u043e\u043c \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430, \u043d\u0430 Web Archive \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0446\u0435\u043b\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u0441\u043e\u0444\u0442\u043e\u043c \u0434\u043b\u044f \u043f\u0430\u043b\u044c\u043c. \u041f\u0440\u0438\u0447\u0451\u043c \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0412\u043e\u0442 \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a<\/font><\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/by\/1h\/8q\/by1h8qqcmfbcr8yetqzi8_uzvrm.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u0430\u043b\u044c\u043c\u0443 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u043c\u0438, \u0447\u0442\u043e \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b, \u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043d\u0435\u0439 \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e. \u041d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043a\u0443\u0447\u0430 \u0441\u043e\u0444\u0442\u0430, \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0435\u0441\u0442\u044c \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430, \u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0435\u0441\u0442\u044c \u0442\u0435, \u043a\u0442\u043e \u044d\u0442\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0432\u0441\u0435\u0445 \u043d\u044e\u0430\u043d\u0441\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435 \u041a\u041f\u041a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432 \u043f\u043b\u0430\u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0434\u0440\u0435\u0432\u043d\u0435\u0433\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430. <br \/>  \u0422\u0430\u043a\u0438\u0435 \u0434\u0435\u043b\u0430.<\/p>\n<h3><font color=\"#454cee\">\u0421\u0441\u044b\u043b\u043a\u0438<\/font><\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/palmdb.net\/\">PalmDB \u2014 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 CodeWarrior, Palm Desktop, \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0440\u043e\u043c\u044b \u0438 \u043c\u043e\u0440\u0435 \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430. \u041a \u0441\u043b\u043e\u0432\u0443, \u043b\u0438\u0447\u043d\u043e \u044f \u0437\u0430\u043b\u0438\u043b \u0442\u0443\u0434\u0430 \u043a\u0443\u0447\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0422\u0421\u0414 Symbol.<\/a><\/li>\n<li><a href=\"https:\/\/4pda.to\/forum\/index.php?showtopic=587871\">PHEM \u2014 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0430\u043b\u044c\u043c\u044b \u043d\u0430 Android. \u0423\u043d\u0438\u043a\u0430\u043b\u0435\u043d \u043e\u043d \u0442\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 POSE, \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u041e\u0421.<\/a><\/li>\n<li><a href=\"https:\/\/dmitry.gr\/?r=05.Projects&amp;proj=27.%20rePalm\">\u041f\u0440\u043e\u0435\u043a\u0442 rePalm<\/a><\/li>\n<li><a href=\"https:\/\/archive.org\/details\/softwarelibrary_palm\">\u041f\u0430\u043b\u044c\u043c\u043e\u0432\u044b\u0439 \u0441\u043e\u0444\u0442 \u043d\u0430 Web Archive<\/a><\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/timeweb.cloud\/vds-vps?utm_source=habr&amp;utm_medium=banner&amp;utm_campaign\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mx\/ua\/nb\/mxuanbovcusqgmqdgugvpnql8vq.jpeg\"><\/a><\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/723240\/\"> https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/723240\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445! <br \/>  \u041d\u0435\u043c\u0430\u043b\u043e \u0443\u0448\u0435\u0434\u0448\u0438\u0445 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0443\u0441\u043f\u0435\u043b\u0438 \u043c\u044b \u043f\u043e\u0432\u0438\u0434\u0430\u0442\u044c. \u0418 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0435\u0449\u0451 \u0431\u0443\u0434\u0435\u0442 \u0443 \u043d\u0430\u0441 \u0432\u043f\u0435\u0440\u0435\u0434\u0438. \u041d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435 \u043e \u0447\u0451\u043c-\u0442\u043e \u0440\u0435\u043b\u0438\u043a\u0442\u043e\u0432\u043e\u043c \u0438 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c, \u0430 \u043e \u041a\u041f\u041a, \u0447\u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0443\u0441\u043f\u0435\u043b\u0438 \u0437\u0430\u0441\u0442\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430. \u042d\u0442\u0438 \u0434\u0435\u0432\u0430\u0439\u0441\u044b \u0438\u043c\u0435\u043b\u0438 \u043c\u0430\u0441\u0441\u0443 \u043f\u043e\u043a\u043b\u043e\u043d\u043d\u0438\u043a\u043e\u0432, \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044e\u0441\u044c, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c. \u0422\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0444\u0442\u0430 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u041e\u0421.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/20\/yz\/zi\/20yzzilxlvz5mci3o_0-ncfhyvu.jpeg\"><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u043e\u0444\u0442\u0430 \u0434\u043b\u044f \u041a\u041f\u041a \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0439 Palm OS. \u0423\u0437\u043d\u0430\u0435\u043c, \u0433\u0434\u0435 \u0432\u0437\u044f\u0442\u044c \u0432\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0436\u0435\u043b\u0435\u0437\u043e\u043a. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e.  <\/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-347721","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/347721","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=347721"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/347721\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=347721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=347721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=347721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}