Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 08:00   #1
green_
 
Регистрация: 28.10.2009
Сообщений: 3
По умолчанию Нужен комментарий к программе

Есть программа, но никак не могу в ней разобраться. Напишите пожалуйста коментарий с подробным объяснением. Заранее спасибо!

{$M $4096,0,4096}
{$g+}
uses dos ;
const
Sounds: array[0..83] of Word = (
1, {scancode=0}
1, { Esc }
1, { 1 }
2152,{ 2 }
1918,{ 3 }
1, { 4 }
1612,{ 5 }
1437,{ 6 }
1280,{ 7 }
1, { 8 }
1076,{ 9 }
959, { 0 }
1, { - }
806, { + }
1, { Backspace }
1, { Tab }
2280,{ q }
2032,{ w }
1810,{ e }
1708,{ r }
1522,{ t }
1356,{ y }
1208,{ u }
1140,{ i }
1016,{ o }
905, { p }
854, { [ }
761, { ] }
1, { Enter }
1, { Ctrl }
1, { a }
4305,{ s }
3835,{ d }
1, { f }
3225,{ g }
2873,{ h }
2560,{ j }
1, { k }
2152,{ l }
1918,{ ; }
1, { ' }
1, { ` }
1, { Left Shift }
719, { \ }
4559,{ z }
4063,{ x }
3620,{ c }
3417,{ v }
3044,{ b }
2712,{ n }
2416,{ m }
2280,{ , }
2032,{ . }
1810,{ / }
1, { Right Shift }
1, { Num * }
1, { Alt }
1, { Space }
1, { Caps Lock }
1, { F1 }
1, { F2 }
1, { F3 }
1, { F4 }
1, { F5 }
1, { F6 }
1, { F7 }
1, { F8 }
1, { F9 }
1, { F10 }
1, { Num Lock }
1, { Scroll Lock }
1, { Num 7 }
1, { Num 8 }
1, { Num 9 }
1, { Num - }
1, { Num 4 }
1, { Num 5 }
1, { Num 6 }
1, { Num + }
1, { Num 1 }
1, { Num 2 }
1, { Num 3 }
1, { Num 0 }
1 { Num . }
);

var
OldIntKeyVect: procedure;
OldIntTimVect: procedure;
LampPeriod,kod:byte;
accum,on,off:word;
lampState :boolean;
SoundDelay:byte;
procedure NewIntKeyVect;interrupt;assembler;
asm
in al,60h
test al,10000000b
jnz @end1
MOV DX,378H
OUT DX,AL
mov off,1
mov on,65535
mov kod,al
mov accum,20
mov bl,al
xor bh,bh
add bx,bx
mov al,10110110b
out 43h,al
mov ax, [offset sounds+bx]
out 42h,al
mov al,ah
out 42h,al
in al,61h
or al,00000011b
out 61h,al
mov SoundDelay,5
@end1:
pushf
call OldIntKeyVect
end;
procedure NewIntTimVect;interrupt;assembler;
asm
cmp SoundDelay,0
jz @C
dec SoundDelay
jnz @C
in al,61h
and al,11111100b
out 61h,al
@C:
dec LampPeriod
jnz @Miganie
mov LampPeriod,4
xor ax,ax
mov es,ax
mov bl,0
xor LampState,true
jz @LampOff
mov bl,[es:417h]
shr bl,4
and bl,7
@LampOff:
@Wl1:
in al,64h
and al,10b
jnz @Wl1
mov al,0EDh
out 60h,al
@Wl2:
in al,64h
and al,10b
jnz @Wl2
mov al,bl
out 60h,al
@Miganie:
pushf
call OldIntTimVect
end;
Begin
asm
mov accum,0
mov LampPeriod,4
xor ax,ax
mov es,ax
mov ax,[es:20h]
mov dx,[es:22h]
mov OldIntTimVect.word,ax
mov OldIntTimVect.word+2,dx
mov ax,[es:24h]
mov dx,[es:26h]
mov OldIntKeyVect.word,ax
mov OldIntKeyVect.word+2,dx
cli
mov ax,offset(NewIntTimVect)
mov dx,seg(NewIntTimVect)
mov [es:20h],ax
mov [es:22h],dx
mov ax,offset(NewIntKeyVect)
mov dx,seg(NewIntkeyVect)
mov [es:24h],ax
mov [es:26h],dx
sti
mov LampState,false
mov ax,3
int 10h
end;
readln;
keep(0);
end.
green_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комментарий к Брезенхейму stscolt Помощь студентам 2 27.10.2009 21:38
Как в комментарий Msgboxса вставить перенос строки в нужном месте? Oooleg Microsoft Office Excel 3 23.07.2009 13:32
#Delphi Нужен комментарий к программе forumu Фриланс 4 03.06.2008 10:46
как добавить комментарий к статье после самой статьи? Gorychev PHP 4 21.04.2008 22:22
Файлы в программе. Kukkk Общие вопросы Delphi 3 25.12.2007 21:09