Subversion Repositories pentevo

Rev

Rev 602 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. #include "_global.h"
  2.  
  3. //-----------------------------------------------------------------------------
  4.  
  5. const u8 msg_title1[] PROGMEM =
  6.                  "          ZX Evolution Test&Service ";
  7. //               |          ZX Evolution Test&Service (110203)         |
  8. //width limited! "01234567890123456789012345678901234567890123456789012"
  9.  
  10. //-----------------------------------------------------------------------------
  11.  
  12. const u8 msg_title2[] PROGMEM = "http://www.NedoPC.com/";
  13.  
  14. //-----------------------------------------------------------------------------
  15.  
  16. const u8 msg_pintest_rus[] PROGMEM = "\r\n\nПроверка выводов ATMEGA128... ";
  17. const u8 msg_pintest_eng[] PROGMEM = "\r\n\nATMEGA128 pins check... ";
  18. const u8 * const mlmsg_pintest[] PROGMEM = {msg_pintest_rus, msg_pintest_eng};
  19.  
  20. //-----------------------------------------------------------------------------
  21.  
  22. const u8 msg_pintest_ok_rus[] PROGMEM = "Проблем не обнаружено.";
  23. const u8 msg_pintest_ok_eng[] PROGMEM = "No problems found.";
  24. const u8 * const mlmsg_pintest_ok[] PROGMEM = {msg_pintest_ok_rus, msg_pintest_ok_eng};
  25.  
  26. //-----------------------------------------------------------------------------
  27.  
  28. const u8 msg_pintest_error_rus[] PROGMEM = "\r\nОбнаружена проблема на порту(-ах): ";
  29. const u8 msg_pintest_error_eng[] PROGMEM = "\r\nHave a problem at port(s): ";
  30. const u8 * const mlmsg_pintest_error[] PROGMEM = {msg_pintest_error_rus, msg_pintest_error_eng};
  31.  
  32. //-----------------------------------------------------------------------------
  33.  
  34. const u8 msg_pintest_pa[] PROGMEM = "PAx ";
  35. const u8 msg_pintest_pb[] PROGMEM = "PBx ";
  36. const u8 msg_pintest_pc[] PROGMEM = "PCx ";
  37. const u8 msg_pintest_pd[] PROGMEM = "PD5 ";
  38. const u8 msg_pintest_pe[] PROGMEM = "PEx ";
  39. const u8 msg_pintest_pg[] PROGMEM = "PGx ";
  40.  
  41. //-----------------------------------------------------------------------------
  42.  
  43. const u8 msg_halt_rus[] PROGMEM = "\r\nПрограмма остановлена!";
  44. const u8 msg_halt_eng[] PROGMEM = "\r\nProgram is halted!";
  45. const u8 * const mlmsg_halt[] PROGMEM = {msg_halt_rus, msg_halt_eng};
  46.  
  47. //-----------------------------------------------------------------------------
  48.  
  49. const u8 msg_statusof_rus[] PROGMEM = "\n\rСостояние ";
  50. const u8 msg_statusof_eng[] PROGMEM = "\n\rStatus of ";
  51. const u8 * const mlmsg_statusof_crlf[] PROGMEM = {msg_statusof_rus,  msg_statusof_eng  };
  52. const u8 * const mlmsg_statusof_cr[] PROGMEM   = {msg_statusof_rus+1,msg_statusof_eng+1};
  53.  
  54. const u8 msg_power_pg[] PROGMEM = "POWERGOOD=";
  55. const u8 msg_power_vcc5[] PROGMEM = ", VCC5=";
  56.  
  57. const u8 msg_power_on_rus[] PROGMEM = "\r\nВключение питания ATX...\n";
  58. const u8 msg_power_on_eng[] PROGMEM = "\r\nATX power up...\n";
  59. const u8 * const mlmsg_power_on[] PROGMEM = {msg_power_on_rus, msg_power_on_eng};
  60.  
  61. //-----------------------------------------------------------------------------
  62.  
  63. const u8 msg_cfgfpga_rus[] PROGMEM = "\r\nЗагрузка конфигурации в FPGA... ";
  64. const u8 msg_cfgfpga_eng[] PROGMEM = "\r\nSet FPGA configuration... ";
  65. const u8 * const mlmsg_cfgfpga[] PROGMEM = {msg_cfgfpga_rus, msg_cfgfpga_eng};
  66.  
  67. //-----------------------------------------------------------------------------
  68.  
  69. const u8 msg_done1_rus[] PROGMEM = "Завершено.\r\nПроверка обмена с FPGA... ";
  70. const u8 msg_done1_eng[] PROGMEM = "Done.\r\nFPGA data exchange test... ";
  71. const u8 * const mlmsg_done1[] PROGMEM = {msg_done1_rus, msg_done1_eng};
  72.  
  73. //-----------------------------------------------------------------------------
  74.  
  75. const u8 msg_ok[] PROGMEM = "Ok.";
  76.  
  77. //-----------------------------------------------------------------------------
  78.  
  79. const u8 msg_someerrors_rus[] PROGMEM = "Есть ошибки!";
  80. const u8 msg_someerrors_eng[] PROGMEM = "We have some errors!";
  81. const u8 * const mlmsg_someerrors[] PROGMEM = {msg_someerrors_rus, msg_someerrors_eng};
  82.  
  83. //-----------------------------------------------------------------------------
  84.  
  85. const u8 msg_spi_test_rus[] PROGMEM = "\r\nКоличество неправильных байт из 50000 -";
  86. const u8 msg_spi_test_eng[] PROGMEM = "\r\nQuantity wrong byte from 50000 -";
  87. const u8 * const mlmsg_spi_test[] PROGMEM = {msg_spi_test_rus, msg_spi_test_eng};
  88.  
  89. //-----------------------------------------------------------------------------
  90.  
  91. const u8 msg_kbd_detect_rus[] PROGMEM = "\r\nПроверка клавиатуры PS/2...\r\n";
  92. const u8 msg_kbd_detect_eng[] PROGMEM = "\r\nPS/2 keyboard check...\r\n";
  93. const u8 * const mlmsg_kbd_detect[] PROGMEM = {msg_kbd_detect_rus, msg_kbd_detect_eng};
  94.  
  95. //-----------------------------------------------------------------------------
  96.  
  97. const u8 msg_noresponse_rus[] PROGMEM = " ...нет ответа\r\n";
  98. const u8 msg_noresponse_eng[] PROGMEM = " ...no response\r\n";
  99. const u8 * const mlmsg_noresponse[] PROGMEM = {msg_noresponse_rus, msg_noresponse_eng};
  100.  
  101. //-----------------------------------------------------------------------------
  102.  
  103. const u8 msg_unwanted_rus[] PROGMEM = " <- неожидаемый ответ\r\n";
  104. const u8 msg_unwanted_eng[] PROGMEM = " <- unwanted response\r\n";
  105. const u8 * const mlmsg_unwanted[] PROGMEM = {msg_unwanted_rus, msg_unwanted_eng};
  106.  
  107. //-----------------------------------------------------------------------------
  108.  
  109. const u8 msg_txfail_rus[] PROGMEM = " ...сбой при передаче\r\n";
  110. const u8 msg_txfail_eng[] PROGMEM = " ...fail to transmit\r\n";
  111. const u8 * const mlmsg_txfail[] PROGMEM = {msg_txfail_rus, msg_txfail_eng};
  112.  
  113. //-----------------------------------------------------------------------------
  114.  
  115. const u8 msg_ready[] PROGMEM = "---\r\n";
  116.  
  117. //-----------------------------------------------------------------------------
  118.  
  119. const u8 msg_menu_help_rus[] PROGMEM =
  120.  "\x16\x05\x0e"  "Основные клавиши управления:"
  121.  "\x16\x05\x0f"  "<>, <>"
  122.  "\x16\x05\x10"  "<Enter> - \"Да\", выбор"
  123.  "\x16\x05\x11"  "<Esc> - \"Нет\", отмена, выход"
  124.  "\x16\x05\x12"  "Горячие клавиши (только в меню):"
  125.  "\x16\x05\x13"  "<ScrollLock> - режим TV/VGA"
  126.  "\x16\x05\x14"  "<CapsLock> - язык интерфейса";
  127. const u8 msg_menu_help_eng[] PROGMEM =
  128.  "\x16\x05\x0e"  "Usage:"
  129.  "\x16\x05\x0f"  "<>, <>"
  130.  "\x16\x05\x10"  "<Enter> - \"Yes\", select"
  131.  "\x16\x05\x11"  "<Esc> - \"No\", cancel, exit"
  132.  "\x16\x05\x12"  "Hot-keys (in menu only):"
  133.  "\x16\x05\x13"  "<ScrollLock> - toggle TV/VGA mode"
  134.  "\x16\x05\x14"  "<CapsLock> - language switch";
  135. //width limited! "567890123456789012345678901234567"
  136. const u8 * const mlmsg_menu_help[] PROGMEM = {msg_menu_help_rus, msg_menu_help_eng};
  137.  
  138. //-----------------------------------------------------------------------------
  139.  
  140. const u8 msg_tbeep_rus[] PROGMEM =
  141.  "\x16\x1a\x0a"  "Гц"  "\x16\x0a\x0c"  "<>, <> - изменение частоты"  "\x15\x0f";
  142. const u8 msg_tbeep_eng[] PROGMEM =
  143.  "\x16\x1a\x0a"  "Hz"  "\x16\x0e\x0c"      "<>, <> - frequence"      "\x15\x0f";
  144. //width limited!                       "0123456789012345678901234567"
  145. const u8 * const mlmsg_tbeep[] PROGMEM = {msg_tbeep_rus, msg_tbeep_eng};
  146.  
  147. //-----------------------------------------------------------------------------
  148.  
  149. const u8 msg_tzxk1_rus[] PROGMEM = "\x16\x0e\x07Клавиатура ZX\x16\x23\x07Джойстик";
  150. const u8 msg_tzxk1_eng[] PROGMEM = "\x16\x0f\x07ZX Keyboard\x16\x23\x07Joystick";
  151. const u8 * const mlmsg_tzxk1[] PROGMEM = {msg_tzxk1_rus, msg_tzxk1_eng};
  152.  
  153. //-----------------------------------------------------------------------------
  154.  
  155. const u8 msg_tzxk2[] PROGMEM =
  156.  "\x16\x0b\x09"  "1 2 3 4 5 6 7 8 9 0"
  157.  "\x16\x0b\x0a"  "Q W E R T Y U I O P"
  158.  "\x16\x0b\x0b"  "A S D F G H J K L e"
  159.  "\x16\x0b\x0c"  "c Z X C V B N M s s"
  160.  "\x16\x26\x0a"  "\x18"
  161.  "\x16\x24\x0b"  "\x1b F \x1a"
  162.  "\x16\x26\x0c"  "\x19"
  163.  "\x16\x0e\x0f"  "SoftReset"
  164.  "\x16\x1e\x0f"  "TurboKey";
  165.  
  166. //-----------------------------------------------------------------------------
  167.  
  168. const u8 msg_tps2k0_rus[] PROGMEM =
  169.  "\x16\x05\x13"  "Трёхкратное нажатие <ESC> - выход из теста.";
  170. const u8 msg_tps2k0_eng[] PROGMEM =
  171.  "\x16\x0a\x13"       "Press <ESC> three times to exit.";
  172. //width limited! "5678901234567890123456789012345678901234567"
  173. const u8 * const mlmsg_tps2k0[] PROGMEM = {msg_tps2k0_rus, msg_tps2k0_eng};
  174.  
  175. //-----------------------------------------------------------------------------
  176.  
  177. const u8 msg_tps2k1[] PROGMEM =
  178.  "\x16\x05\x07"  "e   1 2 3 4 5 6 7 8 9 0 1 2  p s p  \x07 \x07 \x07"
  179.  "\x16\x05\x09"  "` 1 2 3 4 5 6 7 8 9 0 - = \x1b  i h u  n / * -"
  180.  "\x16\x05\x0a"  "t Q W E R T Y U I O P [ ] \\  d e d  7 8 9"
  181.  "\x16\x05\x0b"  "c A S D F G H J K L ; '   e         4 5 6 +"
  182.  "\x16\x05\x0c"  "s Z X C V B N M , . /     s    \x18    1 2 3"
  183.  "\x16\x05\x0d"  "c w a       s       a w m c  \x1b \x19 \x1a  0   . e"
  184.  "\x16\x05\x10"  "Raw data:\x16\x04\x0f";
  185.  
  186. //-----------------------------------------------------------------------------
  187.  
  188. const u8 msg_mouse_test_rus[] PROGMEM = "\r\nТестирование мыши... ";
  189. const u8 msg_mouse_test_eng[] PROGMEM = "\r\nMouse test... ";
  190. const u8 * const mlmsg_mouse_test[] PROGMEM = {msg_mouse_test_rus, msg_mouse_test_eng};
  191.  
  192. //-----------------------------------------------------------------------------
  193.  
  194. const u8 msg_mouse_detect_rus[] PROGMEM = "Обнаружение мыши...  ";
  195. const u8 msg_mouse_detect_eng[] PROGMEM = "Detecting mouse...  ";
  196. const u8 * const mlmsg_mouse_detect[] PROGMEM = {msg_mouse_detect_rus, msg_mouse_detect_eng};
  197.  
  198. //-----------------------------------------------------------------------------
  199.  
  200. const u8 msg_mouse_setup_rus[] PROGMEM = "Настройка... ";
  201. const u8 msg_mouse_setup_eng[] PROGMEM = "Customization... ";
  202. const u8 * const mlmsg_mouse_setup[] PROGMEM = {msg_mouse_setup_rus, msg_mouse_setup_eng};
  203.  
  204. //-----------------------------------------------------------------------------
  205.  
  206. const u8 msg_mouse_letsgo_rus[] PROGMEM = "Поехали!";
  207. const u8 msg_mouse_letsgo_eng[] PROGMEM = "Let's go!";
  208. const u8 * const mlmsg_mouse_letsgo[] PROGMEM = {msg_mouse_letsgo_rus, msg_mouse_letsgo_eng};
  209.  
  210. //-----------------------------------------------------------------------------
  211.  
  212. const u8 msg_mouse_fail0_rus[] PROGMEM = "      Нет ответа от мыши.";
  213. const u8 msg_mouse_fail0_eng[] PROGMEM = "      No mouse response.";
  214. //width limited!                         "1234567890123456789012345678901"
  215. const u8 * const mlmsg_mouse_fail0[] PROGMEM = {msg_mouse_fail0_rus, msg_mouse_fail0_eng};
  216.  
  217. //-----------------------------------------------------------------------------
  218.  
  219. const u8 msg_mouse_fail1_rus[] PROGMEM = "   Имеются некоторые проблемы.";
  220. const u8 msg_mouse_fail1_eng[] PROGMEM = "    There are some problems.";
  221. //width limited!                         "1234567890123456789012345678901"
  222. const u8 * const mlmsg_mouse_fail1[] PROGMEM = {msg_mouse_fail1_rus, msg_mouse_fail1_eng};
  223.  
  224. //-----------------------------------------------------------------------------
  225.  
  226. const u8 msg_mouse_restart_rus[] PROGMEM = "  <Enter> - перезапустить тест.";
  227. const u8 msg_mouse_restart_eng[] PROGMEM = "     <Enter> - restart test.";
  228. //width limited!                           "1234567890123456789012345678901"
  229. const u8 * const mlmsg_mouse_restart[] PROGMEM = {msg_mouse_restart_rus, msg_mouse_restart_eng};
  230.  
  231. //-----------------------------------------------------------------------------
  232.  
  233. const u8 msg_tpsm_1[] PROGMEM =
  234.  "\x16\x25\x0f"  "Wheel ="
  235.  "\x16\x25\x0c"  "L   M   R"
  236.  "\x16\x25\x11"  "X  ="
  237.  "\x16\x25\x12"  "Y  =";
  238.  
  239. //-----------------------------------------------------------------------------
  240.  
  241. const u8 msg_mtst_rus[] PROGMEM =
  242.  "\x16\x23\x12"     " Тест DRAM "
  243.  "\x16\x20\x13"  "Проведено циклов"
  244.  "\x16\x20\x14"  "без ошибок"
  245.  "\x16\x20\x15"  "с ошибками";
  246. const u8 msg_mtst_eng[] PROGMEM =
  247.  "\x16\x23\x12"     " DRAM test "
  248. //width limited! "23456789012345678"
  249.  "\x16\x20\x13"  "Loops"
  250. //width limited! "23456789012345678"
  251.  "\x16\x20\x14"  "Pass"
  252. //width limited! "2345678901"
  253.  "\x16\x20\x15"  "Fail";
  254. //width limited! "2345678901"
  255. const u8 * const mlmsg_mtst[] PROGMEM = {msg_mtst_rus, msg_mtst_eng};
  256.  
  257. //-----------------------------------------------------------------------------
  258.  
  259. const u8 msg_swlng_rus[] PROGMEM = "\x16\x17\x0c"          "Русский";
  260. const u8 msg_swlng_eng[] PROGMEM = "\x16\x17\x0c"          "English";
  261. //width limited!                                  "456789012345678901234567"
  262. const u8 * const mlmsg_swlng[] PROGMEM = {msg_swlng_rus, msg_swlng_eng};
  263.  
  264. //-----------------------------------------------------------------------------
  265.  
  266. const u8 msg_fl_menu_rus[] PROGMEM =
  267.  "\x16\x02\x02"  "Выход"
  268.  "\x16\x02\x03"  "Всё снова"
  269.  "\x16\x02\x04"  "Стереть м/сх."
  270.  "\x16\x02\x05"  "Добав.задание"
  271.  "\x16\x02\x06"  "Выполнить";
  272. const u8 msg_fl_menu_eng[] PROGMEM =
  273.  "\x16\x02\x02"  "Exit"
  274.  "\x16\x02\x03"  "Retrieve all"
  275.  "\x16\x02\x04"  "Erase chip"
  276.  "\x16\x02\x05"  "Add job"
  277.  "\x16\x02\x06"  "Execute jobs";
  278. //width limited! "2345678901234"
  279. const u8 * const mlmsg_fl_menu[] PROGMEM = {msg_fl_menu_rus, msg_fl_menu_eng};
  280.  
  281. //-----------------------------------------------------------------------------
  282.  
  283. const u8 msg_fp_nofiles_rus[] PROGMEM = "\x15\x9f"  " Нет файлов ";
  284. const u8 msg_fp_nofiles_eng[] PROGMEM = "\x15\x9f"  "  No files  ";
  285. //width fixed!                                      "123456789012"
  286. const u8 * const mlmsg_fp_nofiles[] PROGMEM = {msg_fp_nofiles_rus, msg_fp_nofiles_eng};
  287.  
  288. //-----------------------------------------------------------------------------
  289.  
  290. const u8 msg_fl_readrom_rus[] PROGMEM =
  291.  "\x16\x02\x0a"  "Чтение Flash"
  292.  "\x16\x02\x0b"  "<ESC> - выход";
  293. const u8 msg_fl_readrom_eng[] PROGMEM =
  294.  "\x16\x02\x0a"  "Read Flash..."
  295.  "\x16\x02\x0b"  "<ESC> - exit";
  296. //width limited! "2345678901234"
  297. const u8 * const mlmsg_fl_readrom[] PROGMEM = {msg_fl_readrom_rus, msg_fl_readrom_eng};
  298.  
  299. //-----------------------------------------------------------------------------
  300.  
  301. const u8 msg_fl_sdinit_rus[] PROGMEM =
  302.  "\x16\x02\x0b\x15\x9f"  "Иниц.SD карты";
  303. const u8 msg_fl_sdinit_eng[] PROGMEM =
  304.  "\x16\x02\x0b\x15\x9f"  "SDcard init. ";
  305. //width limited!         "2345678901234"
  306. const u8 * const mlmsg_fl_sdinit[] PROGMEM = {msg_fl_sdinit_rus, msg_fl_sdinit_eng};
  307.  
  308. //-----------------------------------------------------------------------------
  309.  
  310. const u8 msg_fl_sderror1_rus[] PROGMEM = " Нет SD карты! ";
  311. const u8 msg_fl_sderror1_eng[] PROGMEM = "  No SD-card!  ";
  312. //width fixed!                           "123456789012345"
  313. const u8 * const mlmsg_fl_sderror1[] PROGMEM = {msg_fl_sderror1_rus, msg_fl_sderror1_eng};
  314.  
  315. //-----------------------------------------------------------------------------
  316.  
  317. const u8 msg_fl_sderror2_rus[] PROGMEM = " Ошибка чт. SD ";
  318. const u8 msg_fl_sderror2_eng[] PROGMEM = " SD read error ";
  319. //width fixed!                           "123456789012345"
  320. const u8 * const mlmsg_fl_sderror2[] PROGMEM = {msg_fl_sderror2_rus, msg_fl_sderror2_eng};
  321.  
  322. //-----------------------------------------------------------------------------
  323.  
  324. const u8 msg_fl_sderror3_rus[] PROGMEM = "   Нет FAT !   ";
  325. const u8 msg_fl_sderror3_eng[] PROGMEM = " FAT no found! ";
  326. //width fixed!                           "123456789012345"
  327. const u8 * const mlmsg_fl_sderror3[] PROGMEM = {msg_fl_sderror3_rus, msg_fl_sderror3_eng};
  328.  
  329. //-----------------------------------------------------------------------------
  330.  
  331. const u8 msg_fl_sderror4_rus[] PROGMEM = "  Ошибка FAT ! ";
  332. const u8 msg_fl_sderror4_eng[] PROGMEM = "  FAT error !  ";
  333. //width fixed!                           "123456789012345"
  334. const u8 * const mlmsg_fl_sderror4[] PROGMEM = {msg_fl_sderror4_rus, msg_fl_sderror4_eng};
  335.  
  336. //-----------------------------------------------------------------------------
  337.  
  338. //const u8 msg_fl_sderrorx_rus[] PROGMEM = " О, глюкануло! ";
  339. //const u8 msg_fl_sderrorx_eng[] PROGMEM = " Great glitch! ";
  340. ////width fixed!                           "123456789012345"
  341. //const u8 * const mlmsg_fl_sderrorx[] PROGMEM = {msg_fl_sderrorx_rus, msg_fl_sderrorx_eng};
  342.  
  343. //-----------------------------------------------------------------------------
  344.  
  345. const u8 msg_fl_sure_rus[] PROGMEM =
  346.  "\x16\x02\x0c\x15\x9e"  " Уверен? <Y> ";
  347. const u8 msg_fl_sure_eng[] PROGMEM =
  348.  "\x16\x02\x0c\x15\x9e"  "You sure? <Y>";
  349. //width fixed!           "2345678901234"
  350. const u8 * const mlmsg_fl_sure[] PROGMEM = {msg_fl_sure_rus, msg_fl_sure_eng};
  351.  
  352. //-----------------------------------------------------------------------------
  353.  
  354. const u8 msg_fl_erase_rus[] PROGMEM =
  355.  "\x16\x02\x0c\x15\x9e"  "Стирание...  ";
  356. const u8 msg_fl_erase_eng[] PROGMEM =
  357.  "\x16\x02\x0c\x15\x9e"  "Erase...     ";
  358. //width fixed!           "2345678901234"
  359. const u8 * const mlmsg_fl_erase[] PROGMEM = {msg_fl_erase_rus, msg_fl_erase_eng};
  360.  
  361. //-----------------------------------------------------------------------------
  362.  
  363. const u8 msg_fl_write_rus[] PROGMEM =
  364.  "\x16\x02\x0c\x15\x9e"  "Запись...    ";
  365. const u8 msg_fl_write_eng[] PROGMEM =
  366.  "\x16\x02\x0c\x15\x9e"  "Write...     ";
  367. //width fixed!           "2345678901234"
  368. const u8 * const mlmsg_fl_write[] PROGMEM = {msg_fl_write_rus, msg_fl_write_eng};
  369.  
  370. //-----------------------------------------------------------------------------
  371.  
  372. const u8 msg_fl_verify_rus[] PROGMEM =
  373.  "\x16\x02\x0c\x15\x9e"  "Проверка...  ";
  374. const u8 msg_fl_verify_eng[] PROGMEM =
  375.  "\x16\x02\x0c\x15\x9e"  "Verify...    ";
  376. //width fixed!           "2345678901234"
  377. const u8 * const mlmsg_fl_verify[] PROGMEM = {msg_fl_verify_rus, msg_fl_verify_eng};
  378.  
  379. //-----------------------------------------------------------------------------
  380.  
  381. const u8 msg_fl_complete_rus[] PROGMEM =
  382.  "\x16\x02\x0c\x15\x9e"  "Завершено.   ";
  383. const u8 msg_fl_complete_eng[] PROGMEM =
  384.  "\x16\x02\x0c\x15\x9e"  "Complete.    ";
  385. //width fixed!           "2345678901234"
  386. const u8 * const mlmsg_fl_complete[] PROGMEM = {msg_fl_complete_rus, msg_fl_complete_eng};
  387.  
  388. //-----------------------------------------------------------------------------
  389.  
  390. const u8 msg_flres0_rus[] PROGMEM =
  391.  "\x16\x0d\x06"  "Запись в FlashROM завершена";
  392. const u8 msg_flres0_eng[] PROGMEM =
  393.  "\x16\x12\x06"        "Job(s) completed.";
  394. //width limited! "23456789012345678901234567890"
  395. const u8 * const mlmsg_flres0[] PROGMEM = {msg_flres0_rus, msg_flres0_eng};
  396.  
  397. //-----------------------------------------------------------------------------
  398.  
  399. const u8 msg_flres1_rus[] PROGMEM =
  400.  "\x16\x15\x07"           "без ошибок.";
  401. const u8 msg_flres1_eng[] PROGMEM =
  402.  "\x16\x11\x07"       "No errors detected.";
  403. //width limited! "23456789012345678901234567890"
  404. const u8 * const mlmsg_flres1[] PROGMEM = {msg_flres1_rus, msg_flres1_eng};
  405.  
  406. //-----------------------------------------------------------------------------
  407.  
  408. const u8 msg_flres2_rus[] PROGMEM =
  409.  "\x16\x15\x07"           "с ошибками!";
  410. const u8 msg_flres2_eng[] PROGMEM =
  411.  "\x16\x0e\x07"    "Some errors are detected!";
  412. //width limited! "23456789012345678901234567890"
  413. const u8 * const mlmsg_flres2[] PROGMEM = {msg_flres2_rus, msg_flres2_eng};
  414.  
  415. //-----------------------------------------------------------------------------
  416.  
  417. const u8 msg_sensors_rus[] PROGMEM = "   Датчики: ";
  418. const u8 msg_sensors_eng[] PROGMEM = "   Sensors: ";
  419. //width fixed!                       "012345678901"
  420. const u8 * const mlmsg_sensors[] PROGMEM = {msg_sensors_rus, msg_sensors_eng};
  421.  
  422. //-----------------------------------------------------------------------------
  423.  
  424. const u8 msg_s_nocard_rus[] PROGMEM = "     Нет карты     ";
  425. const u8 msg_s_nocard_eng[] PROGMEM = "      No card      ";
  426. //width fixed!                        "2345678901234567890"
  427. const u8 * const mlmsg_s_nocard[] PROGMEM = {msg_s_nocard_rus, msg_s_nocard_eng};
  428.  
  429. //-----------------------------------------------------------------------------
  430.  
  431. const u8 msg_s_inserted_rus[] PROGMEM = " Карта установлена ";
  432. const u8 msg_s_inserted_eng[] PROGMEM = "   Card inserted   ";
  433. //width fixed!                          "2345678901234567890"
  434. const u8 * const mlmsg_s_inserted[] PROGMEM = {msg_s_inserted_rus, msg_s_inserted_eng};
  435.  
  436. //-----------------------------------------------------------------------------
  437.  
  438. const u8 msg_s_readonly_rus[] PROGMEM = "  Защита от записи ";
  439. const u8 msg_s_readonly_eng[] PROGMEM = "     Read only     ";
  440. //width fixed!                          "1234567890123456789"
  441. const u8 * const mlmsg_s_readonly[] PROGMEM = {msg_s_readonly_rus, msg_s_readonly_eng};
  442.  
  443. //-----------------------------------------------------------------------------
  444.  
  445. const u8 msg_s_writeen_rus[] PROGMEM = "  Запись разрешена ";
  446. const u8 msg_s_writeen_eng[] PROGMEM = "   Write enabled   ";
  447. //width fixed!                         "1234567890123456789"
  448. const u8 * const mlmsg_s_writeen[] PROGMEM = {msg_s_writeen_rus, msg_s_writeen_eng};
  449.  
  450. //-----------------------------------------------------------------------------
  451.  
  452. const u8 msg_tsd_init_rus[] PROGMEM = "Инициализация карточки...";
  453. const u8 msg_tsd_init_eng[] PROGMEM = "Card initialization...";
  454. const u8 * const mlmsg_tsd_init[] PROGMEM = {msg_tsd_init_rus, msg_tsd_init_eng};
  455.  
  456. //-----------------------------------------------------------------------------
  457.  
  458. const u8 msg_tsd_nocard_rus[] PROGMEM = "SD/MMC карта не обнаружена.";
  459. const u8 msg_tsd_nocard_eng[] PROGMEM = "No SD/MMC card found.";
  460. const u8 * const mlmsg_tsd_nocard[] PROGMEM = {msg_tsd_nocard_rus, msg_tsd_nocard_eng};
  461.  
  462. //-----------------------------------------------------------------------------
  463.  
  464. const u8 msg_tsd_foundcard_rus[] PROGMEM = "Обнаружена карта: ";
  465. const u8 msg_tsd_foundcard_eng[] PROGMEM = "Found card: ";
  466. const u8 * const mlmsg_tsd_foundcard[] PROGMEM = {msg_tsd_foundcard_rus, msg_tsd_foundcard_eng};
  467.  
  468. //-----------------------------------------------------------------------------
  469.  
  470. const u8 msg_tsd_menu_rus[] PROGMEM =
  471.  "\x16\x10\x0b"      "Начать диагностику"
  472.  "\x16\x0c\x0c"  "[ ] Подробный отчёт в RS-232";
  473. const u8 msg_tsd_menu_eng[] PROGMEM =
  474.  "\x16\x11\x0b"       "Start diagnostic"
  475.  "\x16\x0c\x0c"  "[ ] Detailed log to RS-232";
  476. //width limited! "2345678901234567890123456789"
  477. const u8 * const mlmsg_tsd_menu[] PROGMEM = {msg_tsd_menu_rus, msg_tsd_menu_eng};
  478.  
  479. //-----------------------------------------------------------------------------
  480.  
  481. const u8 msg_tsd_foundfat_rus[] PROGMEM = "Обнаружена FAT";
  482. const u8 msg_tsd_foundfat_eng[] PROGMEM = "Found FAT";
  483. const u8 * const mlmsg_tsd_foundfat[] PROGMEM = {msg_tsd_foundfat_rus, msg_tsd_foundfat_eng};
  484.  
  485. //-----------------------------------------------------------------------------
  486.  
  487. const u8 msg_tsd_detect_rus[] PROGMEM = "Поиск файловой системы...";
  488. const u8 msg_tsd_detect_eng[] PROGMEM = "Detecting of file system...";
  489. const u8 * const mlmsg_tsd_detect[] PROGMEM = {msg_tsd_detect_rus, msg_tsd_detect_eng};
  490.  
  491. //-----------------------------------------------------------------------------
  492.  
  493. const u8 msg_tsd_readfile_rus[] PROGMEM = "Чтение тестового файла...";
  494. const u8 msg_tsd_readfile_eng[] PROGMEM = "Reading of test file...";
  495. const u8 * const mlmsg_tsd_readfile[] PROGMEM = {msg_tsd_readfile_rus, msg_tsd_readfile_eng};
  496.  
  497. //-----------------------------------------------------------------------------
  498.  
  499. const u8 msg_tsd_complete_rus[] PROGMEM = "Диагностика завершена.";
  500. const u8 msg_tsd_complete_eng[] PROGMEM = "Diagnostic is complete.";
  501. const u8 * const mlmsg_tsd_complete[] PROGMEM = {msg_tsd_complete_rus, msg_tsd_complete_eng};
  502.  
  503. //-----------------------------------------------------------------------------
  504.  
  505. const u8 msg_tsd_out[] PROGMEM = "\r\nout ";
  506. const u8 msg_tsd_in[] PROGMEM = ", in ";
  507. const u8 msg_tsd_cmd[] PROGMEM = "\r\n;CMD";
  508. const u8 msg_tsd_acmd41[] PROGMEM = "\r\n;ACMD41";
  509. const u8 msg_tsd_csup[] PROGMEM = "\r\nCS up";
  510. const u8 msg_tsd_csdown[] PROGMEM = "\r\nCS down";
  511. const u8 msg_tsd_mmc[] PROGMEM = "MMC";
  512. const u8 msg_tsd_sdv1[] PROGMEM = "SD v1";
  513. const u8 msg_tsd_sdsc[] PROGMEM = "SD v2+ Standard Capacity";
  514. const u8 msg_tsd_sdhc[] PROGMEM = "SD v2+ High Capacity";
  515. const u8 msg_tsd_ocr[] PROGMEM = "OCR: ";
  516. const u8 msg_tsd_csd[] PROGMEM = "CSD: ";
  517. const u8 msg_tsd_cid0[] PROGMEM = "CID: ";
  518. const u8 msg_tsd_cid1[] PROGMEM = "Manufacturer ID    ";
  519. const u8 msg_tsd_cid2[] PROGMEM = "OEM/Application ID ";
  520. const u8 msg_tsd_cid3[] PROGMEM = "Product name       ";
  521. const u8 msg_tsd_cid4[] PROGMEM = "Product revision   ";
  522. const u8 msg_tsd_cid5[] PROGMEM = "Product serial #   ";
  523. const u8 msg_tsd_cid6[] PROGMEM = "Manufacturing date ";
  524. const u8 msg_tsd_cid6b[] PROGMEM = ".20";
  525. const u8 msg_tsd_cid6c[] PROGMEM = ".19";
  526. const u8 msg_tsd_crc[] PROGMEM = "CRC=";
  527. const u8 msg_tsd_readsector[] PROGMEM = "\r\n;Read sector ";
  528. const u8 msg_tsd_skip[] PROGMEM = "\r\n;512 operations is skiped";
  529.  
  530. //-----------------------------------------------------------------------------
  531.  
  532. const u8 msg_trs_1[] PROGMEM =
  533.  "\x16\x14\x03"  "┬"
  534.  "\x16\x0b\x04"  "pc/win32"
  535.  "\x16\x17\x04"  "TESTCOM"
  536.  "\x16\x09\x05"  "├"
  537.  "\x16\x0b\x06"  "Bit rate 115200   No parity"
  538.  "\x16\x0b\x07"  "Data bits 8"
  539.  "\x16\x1d\x07"  "Flow control"
  540.  "\x16\x0b\x08"  "Stop bits 2"
  541.  "\x16\x1e\x08"  "√ RTS/CTS"
  542.  "\x16\x1d\x09"  "DSR - Ignored"
  543.  "\x16\x15\x0a"  "Start BERT "
  544.  "\x16\x19\x0b"  "┬"
  545.  "\x16\x19\x0c"  "│COM port"
  546.  "\x16\x19\x0d"  "│"
  547.  "\x16\x13\x0e"  "RS-232│"
  548.  "\x16\x0c\x0f"  "┬"
  549.  "\x16\x19\x0f"  "┴"
  550.  "\x16\x05\x10"  "ZX Evo"
  551.  "\x16\x10\x10"  "Last sec"
  552.  "\x16\x26\x10"  "sec"
  553.  "\x16\x03\x11"  "├"
  554.  "\x16\x05\x12"  "RxBuff"
  555.  "\x16\x2d\x12"  "RTS"
  556.  "\x16\x05\x13"  "TxBuff"
  557.  "\x16\x2d\x13"  "CTS";
  558.  
  559. //-----------------------------------------------------------------------------
  560.  
  561. //const u8 msg__rus[] PROGMEM = "";
  562. //const u8 msg__eng[] PROGMEM = "";
  563. //const u8 * const mlmsg_[] PROGMEM = {msg__rus, msg__eng};
  564.  
  565. //-----------------------------------------------------------------------------
  566.  
  567. const u8 str_menu_main[] PROGMEM =
  568.   "Тест клавиатуры PS/2      "
  569.   "Тест клавиатуры ZX и др.  "
  570.   "Тест мыши                 "
  571.   "Тест BEEP/TAPEOUT/COVOX   "
  572.   "Тест видео                "
  573.   "Тест RS-232               "
  574.   "Диагностика SD/MMC        "
  575.   "Программирование Flash-ROM"
  576.  
  577.   "PS/2 keyboard test        "
  578.   "ZX keyboard test and etc  "
  579.   "Mouse test                "
  580.   "BEEP/TAPEOUT/COVOX test   "
  581.   "Video test                "
  582.   "RS-232 test               "
  583.   "SD/MMC diagnostic         "
  584.   "Write Flash-ROM           ";
  585. //"12345678901234567890123456"  width fixed!
  586.  
  587. //-----------------------------------------------------------------------------
  588.