ACNews
#06
01 ноября 2001 |
|
Софт - Настройка горячих клавиш и Смена курсоров в ACEdit.
/================ Настройка горячих клавиш ==================== (idea by Death Moroz) В бейсик-файле по адресу #5d60 (смещение от начала сектора= #25) располагается табличка соответствия клавиш с Extend коман- дам редактора. Формат таблички следующий: <байт скан-кода клавиши> <2 байта адреса процедуры обработки> и т.д., в конце ноль. Скан-код очень оригинальный. Байт состоит из 2 частей: %rrrmmmmm rrr - это номер полуряда: 000 =Caps-V ... 111 =Space-B. mmmmm - это маска клавиши. Должен быть установлен один бит, соответствующий этой клавише, а остальные биты - сброшены. Хотя можно установить 2 бита и опрашивать одновременное нажатие ;) Клавиши опрашиваются следующей подпрограммой (слабо сокра- тить? ;)): LD BC,#DFFE IN A,(C) BIT 3,A JR Z,EXTU ;нажато U = Undo (переопределить невозможно) LD HL,TSCAN ;та самая табличка KSCAN XOR A OR (HL) JR Z,KSC0 ;0 - конец таблички INC HL LD B,C RRC B SUB -32 JR C,$-4 IN B,(C) AND B LD E,(HL) INC HL LD D,(HL) INC HL JR NZ,KSCAN PUSH DE JP PUTLIN7 KSC0 LD (EXTIME+1),A ;ни одна клавиша из списка не нажата RET Изначально клавиши расположены в табличке следующим образом: (это чтобы вам было легче понять принцип её построения) Space (Quit) M (Move block) B (Mark begin) A (Mark all) S (Save) D (Delete block) F (Find/Replace) P (Print) O (SetUp) I (Insert/Overwrite) Y (Music on/off) C (Copy block) W (Centering line) E (Mark end) R (Remove mark) T (Merge) L (Load) K (Save block) H (Help) 3 (Goto begin) 4 (Goto end) 5 (Home) 0 (Delete word) 9 (Delete line) 8 (End of line) 7 (Mark up) 6 (Mark down) Ваш выбор - переставлять местами адреса или менять скан- коды... ==============================================================/ --- Смена курсоров (idea by Путь Самурая) Найдите в файле редактора доктором последовательность #05,#07,#16,#16,#00,#0e,#1a,#1a Здесь закодированы виды курсоров для режимов (соответственно) rus,lat,grf,grf,RUS,LAT,GRF,GRF Сами понимаете, стоит заменить циферки, и курсоры поменяются местами по вашему желанию ;). Только желательно всё-таки оста- вить заглавный русский курсор, как он и был - нулевым, а графи- ческие курсоры оставить попарно равными,то есть grf=grf,GRF=GRF, grf<>GRF, чтобы не сглюкнул модуль "ace64qua". Он эту последова- тельность ищет, потому что после неё лежит шрифт =) Коды: #00 - подчёркивание; #07 - инверсия (прямоугольник размером со знакоместо); #05 - квадратик в нижней половине знакоместа; #0e - контур прямоугольника размером со знакоместо; #16 - ▄▀, #1a - ▀▄ Например, можно сделать все символьные курсоры чёрточками: #00,#00,#16,#16,#00,#00,#1a,#1a Или наоборот - все инверсией: #07,#07,#16,#16,#00,#07,#1a,#1a ---------------------------------------------------------------- --- for beta testers: Исправлено по сравнению с бетаверсией: - 42 символа после Find и после Load при режиме "Бегущее окно +" - Колбасился шрифт после Save Setup (Capry) - Убивался рамдиск на KAY (AlexUzer) - Не читался с диска по умолчанию файл, указанный в командной строке: A> RUN "B:ACE59FIX",filenameW - В режиме каталога free выводится пятью цифрами. - Адреса нек.переменных редактора.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября