;/////////////////////////////////////////////////////////// ; ; Выполнение пунктов pull-меню ; ;/////////////////////////////////////////////////////////// pull_commands: ld hl,what ; поле событий ld a,(hl) cp evCommand ; событие "команда" ? ret nz ; нет inc hl ld a,(hl) ;+1 номер команды (пункта) ld c,a ; сохр. номер add a,a ld e,a ld d,0 ld hl,pull_array ; список обработчиков add hl,de ld e,(hl) inc hl ld d,(hl) ex de,hl ld a,c ; восст. номер команды jp (hl) ; a=входн. параметр ; список обработчиков pull-меню pull_array: ; Left dw left_right ; brief-формат dw left_right ; medium-формат dw left_right ; full-формат dw left_info ; info-формат dw left_qview ; qview-формат dw left_right ; sort "Name" dw left_right ; sort "Ext" dw left_right ; sort "Date" dw left_right ; sort "Size" dw left_right ; "Unsort" dw pull_empty ;LFilter dw select_left_drive ; меню выбора дисков ; Files dw pull_empty ;Help dw user_menu ; вызов Меню Пользователя dw pull_empty ;View dw pull_empty ;Edit dw copy ; Copy dw rename ; Rename dw make_folder ; Make folder dw delete ; Delete dw pull_empty;set_attrib2 ; вывод окна атрибутов файла/папки dw pull_empty ;SelGroup dw pull_empty ;USelGroup dw quit ; выход в ДОС ; Commands dw pull_empty ;Find dw pull_empty ;Volume dw swap_panels ; обмен панелей dw hidden_panels ; убрать/показать панели dw pull_empty ;Create TRD-image dw pull_empty ;TRD-image -> Disk dw pull_empty ;Disk -> TRD-image ; Options dw set_interface ; окно настройки интерфейса dw set_confirm ; окно настройки подтверждений dw setup_colors ; настройка цветов менеджера dw pull_empty ;Highlight dw pull_empty ;ViewSet dw pull_empty ;EditSet dw write_ini_file ; записать ini-файл ; Right dw left_right ; brief-формат dw left_right ; medium-формат dw left_right ; full-формат dw right_info ; info-формат dw right_qview ; qview-формат dw left_right ; sort "Name" dw left_right ; sort "Ext" dw left_right ; sort "Date" dw left_right ; sort "Size" dw left_right ; "Unsort" dw pull_empty ;RFilter dw select_right_drive ; меню выбора дисков ; заглушка pull_empty: ret ;/////////////////////////////////////////////////////////// ; Пункты меню Left/Right (до "Filter...") ; вход: a=номер pull-пункта ;/////////////////////////////////////////////////////////// left_right: ld (punct_left_right),a ld hl,show_pointer ; точка выхода push hl cp cmLUnsort+1 ld a,(cur_panel) ; 0/#80 левая/правая акт. панель jr c,punct_left ; Right-пункт меню rlca jr c,pars_left_right ; акт. правая lft_right1: call change_panel call pars_left_right jp change_panel ; Left-пункт меню punct_left: rlca jr c,lft_right1 ; акт. правая ; pars_left_right: db 3Eh ; ld a,.. punct_left_right: db 0 ; номер pull-пункта ; форматы списка cp cmLBrief jp z,set_format_brief cp cmRBrief jp z,set_format_brief cp cmLMed jp z,set_format_medium cp cmRMed jp z,set_format_medium cp cmLFull jp z,set_format_full cp cmRFull jp z,set_format_full ; сортировки списка ld c,"n" ; name cp cmLName jr z,punct_sort cp cmRName jr z,punct_sort ld c,"x" ; ext cp cmLExt jr z,punct_sort cp cmRExt jr z,punct_sort ld c,"d" ; date cp cmLDate jr z,punct_sort cp cmRDate jr z,punct_sort ld c,"s" ; size cp cmLSize jr z,punct_sort cp cmRSize jr z,punct_sort ld c,"u" ; unsorted cp cmLUnsort jr z,punct_sort cp cmRUnsort jr z,punct_sort ret ;/////////////////////////////////////////////////////////// ; На сортировку списка ;/////////////////////////////////////////////////////////// punct_sort: jp sorting_list ;/////////////////////////////////////////////////////////// ; Вызов info-панели ;/////////////////////////////////////////////////////////// ; Left-пункт ;left_info: ; ld hl,show_pointer ; push hl ; ld a,(cur_panel) ; 0/#80 левая/правая акт. панель ; rlca ; jp c,alt_info_panel ; акт. правая (данные акт. панели -> в пасс. панель) ; jp set_info_actpanel ; данные пасс. панели -> в акт. панель ; ; ; Right-пункт ;right_info: ; ld hl,show_pointer ; push hl ; ld a,(cur_panel) ; 0/#80 левая/правая акт. панель ; rlca ; jp nc,alt_info_panel ; акт. левая (данные акт. панели -> в пасс. панель) ; jp set_info_actpanel ; данные пасс. панели -> в акт. панель left_info: ld hl,show_pointer push hl ld a,(cur_panel) ; 0/#80 левая/правая акт. панель rlca jp c,alt_info_panel ; акт. правая lft_info1: call change_panel call alt_info_panel jp change_panel ; Right-пункт right_info: ld hl,show_pointer push hl ld a,(cur_panel) ; 0/#80 левая/правая акт. панель rlca jp nc,alt_info_panel ; акт. левая jr lft_info1 ;/////////////////////////////////////////////////////////// ; Вызов qview-панели ;/////////////////////////////////////////////////////////// ; Left-пункт left_qview: ld hl,show_pointer push hl ld a,(cur_panel) ; 0/#80 левая/правая акт. панель rlca jp c,alt_qview_panel ; акт. правая lft_qview1: call change_panel call alt_qview_panel jp change_panel ; Right-пункт right_qview: ld hl,show_pointer push hl ld a,(cur_panel) ; 0/#80 левая/правая акт. панель rlca jp nc,alt_qview_panel ; акт. левая jr lft_qview1