Измерительно-вычислительные комплексы (канал общего пользования). Петросьянц В.В. - 148 стр.

UptoLike

Составители: 

147
While (Byte(S[Ch])<>$00) and (I<=Length(S))
do
begin
M:=Byte(S[Ch]);
Source_2(M);
Inc(Ch);
end;
end;
Procedure Sin(var S:String);
{организация управления вводом}
var
M:Byte;
begin
S:="";
M:=0;
{переключение режима работы порта}
asm
{запоминание ОИ=1}
mov al,0Ch
mov dx,Port_B
out dx,al
mov al,04h
out dx,al
{режим порта 91-ввод}
mov al,91h
mov dx,Port_M
out dx,al
{УП=1}
mov al,0Eh
mov dx,Port_B
out dx,al
mov al,06h
out dx,al
end;
Resiver_l;
While M<>$10 do begin
Resiver_2(M);
if M<>$10 Then S:=S+Char(M);
end;
{запоминание значения ОИ=1}
asm
mov al,0Ch
mov dx,Port_B
out dx,al
     While (Byte(S[Ch])<>$00) and (I<=Length(S))
              do
                 begin
                    M:=Byte(S[Ch]);
                    Source_2(M);
                           Inc(Ch);
                 end;
end;
Procedure Sin(var S:String);
   {организация управления вводом}
    var
       M:Byte;
    begin
       S:="";
     M:=0;
       {переключение режима работы порта}
    asm
       {запоминание ОИ=1}
          mov al,0Ch
          mov dx,Port_B
          out dx,al
          mov al,04h
          out dx,al
       {режим порта 91-ввод}
          mov al,91h
          mov dx,Port_M
          out dx,al
        {УП=1}
          mov al,0Eh
          mov dx,Port_B
          out dx,al
          mov al,06h
          out dx,al
     end;
Resiver_l;
While M<>$10 do begin
  Resiver_2(M);
  if M<>$10 Then S:=S+Char(M);
                    end;
{запоминание значения ОИ=1}
asm
          mov         al,0Ch
          mov         dx,Port_B
          out         dx,al

                                147