|
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 выводится пятью цифрами.
- Адреса нек.переменных редактора.
Другие статьи номера:
Похожие статьи:
В этот день... 13 ноября