Вообщем, ситуация сложилась следущая... Задали в школе написать "чат" на паскале, но так получилось, что я на этих уроках редко уж появлялся... потреял почему-то интерес к компам, сложные времена в жизни были.... сейчас напрягли, я скопировал у знакомого рабочую версию, но проблема в том, что экзаменатор будет по исходнику задавать вопросы... а я честно говоря смутно представляю, что ему отвечать...
Так что может вам не составит труда разжевать мне что происходит в каждой строке... наверняка опытным программистам это как орешки щёлкать, а у меня от этого зависит оценка... Заранее благодарен за любую оказанную помощь! Спасибо!
Ниже привожу исходный код... если бы ответ был прокомментирован строчка за строчкой, было бы вообще просто замечтально....
Код
program chat;
uses dos,crt;
var c:char;
bios_interface:registers;
begin
with bios_interface do {ithol cartis reshet}
begin
ah:=0;
al:=$a3;
dx:=0;
end;
intr($14,bios_interface);
if bios_interface.ah and $80 = $80
then
writeln ('no good')
else
writeln ('good');
while true do {Ввод символа}
begin
if keypressed then
begin
c:=readkey;
if ord(c)=27 then halt; {exit by pressing esc. }
with bios_interface do
begin {Из символа в цифру}
ah:=1;
al:=ord(c);
dx:=0;
end;
intr($14,bios_interface);
write(c);
end;
with bios_interface do
begin {проверка status}
ah:=3;
dx:=0;
end;
intr($14,bios_interface);
if (bios_interface.ah and $01)=$01 then {Проверка если статус успешный}
begin {Ввод символа}
with bios_interface do
begin
ah:=2;
dx:=0;
end;
intr($14,bios_interface);
c:=chr(bios_interface.al);
writeln (c); {Из эксадецимального в символ}
end;
end;
end.