ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
344126
mazur (31.07.2012 20:27 - 20:40, просмотров: 3287)
Возможно ли уйти от автомата состояний в обработчике меню? На данный момент пока получилось сделать точку входа через указатель на блоки меню\подменю, как в DOS. 
[menu]
menuitem=vc, Volcov Commander
menuitem=pqmagic, Partition Magic 8.0
menuitem=win95, Windows 95
menuitem=win98, Windows 98
menuitem=testmem, Testmem
menuitem=mhdd, MHDD

[vc]
device=a:\system\display.sys con=(ega,,1)
Country=007,866,a:\system\country.sys
device=a:\system\himem.sys /testmem:off
devicehigh=a:\system\ecscdide.sys /v /d:mscd000
installhigh=a:\system\mscdex.exe /d:mscd000 /l:r
lastdrive=z

[pqmagic]
device=a:\system\himem.sys /testmem:off
devicehigh=a:\system\ecscdide.sys /v /d:mscd000
installhigh=a:\system\mscdex.exe /d:mscd000 /l:r
lastdrive=z
Получилось так, по аналогии с config.sys: Так как пишу на асме, написал, чтобы было понятно. [MAIN_MENU] Menu_Main_Stat_Inf: string_xy 2, 7, T_MAIN string_xy 3, 9, T_MENU end_array Tab_Menu_Main: // Кнопа След. сост. Адрес блока Функция KEY_ENTER, _MENU_SETT_ITEM_1, Tab_Menu_Sett_Item_1, Menu_Settings_Init end_array T_MAIN: "ГЛАВНОЕ", 0 T_MENU: "МЕНЮ", 0, 0 [MENU_SETTINGS] Menu_Settings_Stat_Inf: string_xy 1, 6, T_SETTINGS string_xy 2, 1, T_ITEM_1 string_xy 3, 1, T_ITEM_2 string_xy 4, 1, T_ITEM_3 end_array Tab_Menu_Sett_Item_1: // Кнопа След. сост. Адрес блока Функция KEY_ESC, _MENU_MAIN, Tab_Menu_Main, Menu_Main_Init KEY_ENTER, _MENU_SETT_ITEM_1, Tab_Menu_Sett_Item_1, Blink_Led_1 KEY_UP, _MENU_SETT_ITEM_3, Tab_Menu_Sett_Item_3, Menu_Sett_Item_3_Init KEY_DOWN, _MENU_SETT_ITEM_2, Tab_Menu_Sett_Item_2, Menu_Sett_Item_2_Init end_array Tab_Menu_Sett_Item_2: KEY_ESC, _MENU_MAIN, Tab_Menu_Main, Menu_Main_Init KEY_ENTER, _MENU_SETT_ITEM_2, Tab_Menu_Sett_Item_2, Blink_Led_2 KEY_UP, _MENU_SETT_ITEM_1, Tab_Menu_Sett_Item_1, Menu_Sett_Item_1_Init KEY_DOWN, _MENU_SETT_ITEM_3, Tab_Menu_Sett_Item_3, Menu_Sett_Item_3_Init end_array Tab_Menu_Sett_Item_3: KEY_ESC, _MENU_MAIN, Tab_Menu_Main, Menu_Main_Init KEY_ENTER, _MENU_SETT_ITEM_3, Tab_Menu_Sett_Item_3, Blink_Led_3 KEY_UP, _MENU_SETT_ITEM_2, Tab_Menu_Sett_Item_2, Menu_Sett_Item_2_Init KEY_DOWN, _MENU_SETT_ITEM_1, Tab_Menu_Sett_Item_1, Menu_Sett_Item_1_Init end_array T_SETTINGS: "НАСТРОЙКИ", 0 T_ITEM_1: "LED_1", 0 T_ITEM_2: "LED_2", 0 T_ITEM_3: "LED_3", 0 T_ITEM_4: "LED_4", 0