; Процедуры, расположенные в осн. странице ФМ. ; Вызываются из страницы гляделки. ; ; флаг выхода из гляделки после вывода содержимого файла half_mode_fview: db false ; 0/1 не выходить/выйти ;------------------------------------------------- ; Вызов вьюера на исполнение ; выход: CF - при ошибке, A=код ошибки ;------------------------------------------------- ; Панельный режим ;alt_file_viewer: ; ld a,true ; вывести данные и выйти из fview ; ld (half_mode_fview),a ; уст. флаг ; ld c,true ; панельный режим работы вьюера ; jr $+4 ; Обычный режим file_viewer: ld c,false ; норм. режим работы вьюера call test_show_panels ; тест на режим вкл. панелей ret z ld a,(format_mode) ; формат акт. панели and form_info ret nz ld hl,(all_files) ld a,l or h ret z ; пустая панель ld a,c ld (viewer_mode),a ; 0/1 режим работы вьюера call get_record ; hl=начало записи, a=атрибут файла and 10h ret nz ; папка push hl call set_path_from_activ_panel ; уст. сист. диск и путь от акт. панели pop hl ret c ld de,temp_fname ; куда ld bc,0044h ; 11 -> 8.3 rst 10h ret c ;ld (evcomb_stack+1),sp ; сохр. стек ld a,(page_viewer) ; стр. вьюера out (SLOT1),a call viewer ; вьюер ex af,af' ; код возврата ld a,(page_module1) out (SLOT1),a ; восст. стр. ex af,af' ret ;----------------------------------------------------------- ; Вызов из fview. Обработка клавиш без комбинаций ; вход: e=ascii-код ; d=скен-код ; b=биты служ. клавиш ;----------------------------------------------------------- ;fm_event: ; ld a,(viewer_mode) ; режим работы вьюера ; or a ; ret z ; норм. режим ; ; fview в панельном режиме ; push iy ; push ix ; ld a,(page_module1) ; out (SLOT1),a ; восст. стр. ; call main_event ; обработчик ФМ ; ld a,(page_viewer) ; стр. вьюера ; out (SLOT1),a ; pop ix ; pop iy ; ret ;------------------------------------------------- ; Tab. Вызов из fview ;------------------------------------------------- ;fm_event_tab: ; ld a,(page_module1) ; out (SLOT1),a ; восст. стр. ; pop de ; убрать "call viewer" ; jp tab ; сменить акт. панель ; точка выхода в fview ;event_comb_return: ; ld a,(page_viewer) ; стр. вьюера ; out (SLOT1),a ; ; настроить полож. дампа ; ld hl,panel_left ; полож. акт. панели ; ld d,(hl) ; Y полож. панели ; inc hl ; ld e,(hl) ; X полож. панели ; inc d ; inc e ; ld (coord),de ; полож. курсора ; ld (winpos),de ; полож. окна ; ret ;----------------------------------------------------------- ; Вызов из fview. Обработка комбинаций клавиш ; вход: e=ascii-код ; d=скен-код ; b=биты служ. клавиш ;----------------------------------------------------------- ;fm_event_comb: ; ld hl,event_comb_return ; точка выхода ; push hl ; ld a,(page_module1) ; out (SLOT1),a ; восст. стр. фм ; ld a,d ; ; с возвратом в fview qview-панели ; cp 18h ; Ctrl+O убрать/показать панели ; jp z,hidd;en_panels ; cp 16h ; Ctrl+U обмен панелей ; jp z,swap;_panels ; cp 12h ; Ctrl+E пред. строка истории ; jp z,prev_history ; cp 2Bh ; Ctrl+X след. строка истории ; jp z,next_history ; cp 4Fh ; Ctrl+Del, очистить историю команд ; jp z,clear_history ; ; без возврата в fview qview-панели ; cp 2 ; "1" краткий акт. панели ; jr z,event_comb_done ; cp 3 ; "2" средний акт. панели ; jr z,event_comb_done ; cp 4 ; "3" полный акт. панели ; jr z,event_comb_done ; cp 10h ; Ctrl+Q скрыть/показать панели ; jr z,event_comb_done ; cp 25h ; Ctrl+L панель информации ; jr z,event_comb_done ; ret ;event_comb_done: ;evcomb_stack: ; ld sp,0 ; восст. стек до входа в fview ; jp keybar_options ; отработать Ctrl,Alt,Shift комбинации ;hidd: push iy ; push ix ; ld a,true ; ld (set_qview_fl),a ; уст. флаг "не заходить снова в fview" ; call hidden_panels ; pop ix ; pop iy ; call test_show_panels ; тест на режим вкл. панелей ; ret z ; выкл. ; pop hl ; восст. баланс стека ; call event_comb_return ; вкл. стр. гляделки ; ; вывести содерж. файла в панели ; ld hl,AB317 ; ascii-окно ; ld a,(cur_mode_dump) ; 0/1 флаг тек. окна (ascii/hex) ; or a ; jr z,$+5 ; ld hl,ABB1C ; hex-окно ; jp (hl) ;swap: push iy ; push ix ; call swap_panels ; pop ix ; pop iy ; ret ;------------------------------------------------- ; Ctrl+Q. Вызов из fview ;------------------------------------------------- ;qv_panel: ; ld a,(page_module1) ; out (SLOT1),a ; восст. стр. ; jp alt_qview_panel