Вопрос № 126142: Здравствуйте. У меня такая вот задачка: нужно с помощью ассемблера изменить частоту появления символа при зажатой клавише. Помогите плиз....Вопрос № 126173: Здравствуйте, Уважаемые Эксперты!
Объясните, пожалуйста, код этой программы. Эта программа читает главную загрузочную запись жесткого диска и интерпретирует прочитанные данные. Но вот как все это делается? Если можно, дайте, пожалуйста, подробные...
Вопрос № 126.142
Здравствуйте. У меня такая вот задачка: нужно с помощью ассемблера изменить частоту появления символа при зажатой клавише. Помогите плиз.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Rancid_Rabbit!
Int 16/AH=03h
KEYBOARD - SET TYPEMATIC RATE AND DELAY=установить скорость повторения
AH = 03h
AL = subfunction=подфунция
00h set default delay and rate (PCjr and some PS/2)=значения по умолчанию
01h increase delay before repeat (PCjr)=увеличить начальную задержку
02h decrease repeat rate by factor of 2 (PCjr)=уменьшить скорость повторения в 2-а раза
03h increase delay and decrease repeat rate (PCjr)=увеличить скорость повторения в 2-а раза
04h turn off typematic repeat (PCjr and some PS/2)=выключить повторение нажатой клавиши
05h set repeat rate and delay (AT,PS)=установить скорость и задержку повторения
BH = delay value (00h = 250ms to 03h = 1000ms)=п/ф:05Н задержка повторения
BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)=п/ф:05Н скорость повторения
06h get current typematic rate and delay (newer PS/2s)=получить скорость и задержку повторения Return:
BL = repeat rate (above)=п/ф:05Н скорость повторения
BH = delay (above)=п/ф:06Н задержка повторения
Думаю Вы найдете применение этой функции.
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 06.03.2008, 20:37
Вопрос № 126.173
Здравствуйте, Уважаемые Эксперты!
Объясните, пожалуйста, код этой программы. Эта программа читает главную загрузочную запись жесткого диска и интерпретирует прочитанные данные. Но вот как все это делается? Если можно, дайте, пожалуйста, подробные комментарии к каждой строчке.
function Move2bits(var y:byte;var z:byte):integer;assembler;
asm
les bx, y
mov cl, [bx]
mov dl, cl
and dl, 11000000b
xor dh, dh
shl dx, 1
shl dx, 1
and cl, 00111111b
mov [bx], cl
les bx, z
mov cl, [bx]
or dl, cl
mov ax, dx
end;
var Mas: array [1..512] of byte;
i,s:integer;
y,x:longint;
CurrentPart:byte;
const
m1 = 256;
m2 = 256*256;
m3 = 256*256*256;
begin
asm
mov Al, 1
mov Ch, 0
mov Dh, 0
mov Cl, 1
mov Dl, 80h
mov Bx, Ds
mov Es, Bx
lea bx, mas
mov ah,2
int 13h
end;
writeln (' Starting Location Ending Location ');
writeln ('Active Type Head Sector Cylinder Head Sector Cylinder Rel.Sect Number of S');
i:=447;
for CurrentPart:=1 to 4 do
begin
write (mas[i]:6); {First property}
write (mas[i+4]:6); {Second property}
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 06.03.2008, 12:02 Оценка за ответ: 5