Блок управления для системы кодового контроля с возможностью внутреннего соединения абонентов, страница 26

begin

IF Shape23.Brush.Color:=clWhite then

begin

Shapc23.Brush.Color:=clRed;

Datal:=Data1+64;

Edit3.Text:=IntToStr(Data1);

end

else

begin

Shape23.Brush.Color:=clWhite;

Datal:=Data1-64;

Edit3.Text:=IntToStr(Data1);

end;

end;

procedure TFoml.Shape24MouselDown(Sender: TObject; Button:

TMouseButton;  Shift: TShiftState: X, Y: Integer);

begin

     IF Shape24.Brush.Color=clWhite then

      begin

Shape24.Brush.Color:=clRed;

Datal:=Datal+128;

Edit3.Text:=lntToStr(Data1):

end

else 

begin

Shape24.Bmsh.Color:=clWhite;

Data1:=Data 1-128;

Edit3.Text:=lntToStr(Data1);

end;

end;

procedure TForml.FormActivate(Sender: TObjcct);

var

i:integer;

begin

Address1 :=0;

Korpus:=0;

Address1:=192;

asm

MOV DX,888

MOV AL,Address1

OUT DX,AL

MOV DX,890

MOV AL,2

OUT DX,AL

end;

for i:=1 to 10000 do

begin

end;

asm

MOV DX,890

MOV AL,0

OUT DX,AL

end;

Address1 :=64;

asm

MOV DX.888

MOV AL,Address1

OUT DX,AL

MOV DX,890

MOV AL,2

OUT DX,AL

end;

for i:=1 to 10000 do

begin

end;

asm

MOV DX,890

MOV AL,0

OUT DX,AL

end;

Shape15.Brush.Color:=clLime;

Shape16.Brush.Color:=clWhite;

end;

procedure TForm1.ButtonlClick(Sender: TObject);

var

i: integer;

begin

AdL:=0;

if (Shape1.Brush.Color:=clGreen) then AdL:=AdL+1;

if (Shape2.Brush.Color:=clGreen) then AdL:=AdL+2;

if (Shape3.Brush.Color:=clGreen) then AdL:=AdL+4;

if (Shape4.Brush.Color:=clGreen) then AdL:=AdL+8;

if (Shape5.Brush.Color:=clGreen) then AdL:=AdL+16;

if (Shape6.Brush.Color:=clGreen) then AdL:=AdL+32;

if (Shape7.Brush.Color:=clGreen) then AdL:=AdL+64;

if (Shape8.Brush.Cofor:=clGreen) then AdL:=AdL+128;

asm

MOV DX.888

MOV AL,AdL

OUT DX,AL

MOV DX,890

MOV AL,1

OUT DX,AL

end;

for i:=1 to 10000 do

begin

end;

asm

MOV DX,890

MOV AL,0

OUT DX,AL

end;

end;

procedure TForml.Button2Click(Sender: TObject);

var

i: integer;

begin

AdH:=0;

if Shape9.Brush.Color=clRed then AdH:=AdH+1;

if Shape10.Brush.Color=clRed then AdH:=AdH+2;

asm

MOV DX,888

MOV AL,AdH

OUT DX.AL

MOV DX,890

MOV AL,2

OUT DX,AL

end;

for i:=1 to 10000 do

begin

end;

asm

MOV DX,890

MOV AL,0

OUT DX,AL

end;

end;

procedure TForm1.Butlon5Click(Sender: TObject);

var

i: integer;

begin 

asm

MOV DX,888

MOV AL,Data1

OUT DX,AL

MOV DX,890

MOV AL,3

OUT DX,AL

end;

for i:=l to 10000 do

begin

end;

asm

              MOV DX,890

              MOV AL,0

              OUT DX.AL

end;  

end;

procedure TForml.Button3Click(Sender: TObject);

begin

Shape15.Brush.Color:=clWhite;

Shape16.Brush.Color:=clLime;

end;

procedure TForml.Button4Click(Sender: TObject);

begin

Shape 15.Brush.Color:=clLime;

Shapel6.Brush.Color:=clWhite;

end;

procedure TForml.close1Click(Sender: TObject);

begin

close;

end;

end.


LD A,88                       ;настройка первого порта

OUT (251 ),А

LD A, 112                    ;настройка второго порта

               OUT(223),A

LD HL,32768             ;стартовый адрес ОЗУ

LD ВС,2048                ;количество повторов

LD DE,0                        ;количество исправных

V 1         LD А,255                      ;все единицы

  LD (HL),A                        ; запись аккум. по адр., содержащемуся в per. HL                                                   XOR(HL)                            ;искл. или для установки флага «ZERO» если =

JP Z,V 11                       ;если 0, то нет ошибки - продолжение

LD A,D                          ;загрузить в А ст, разр. сч. исправных ячеек

OR 0                                 ;или для установки флага «ZERO»

JR NZ,V11                   .;если ст. разр. сч. испр.ячеек.>0  продолжение

LD А,Е                           ;копировать в А мл. разр. сч. исправных ячеек

SBC 100                         ;вычесть100

JP Р,ERROR                ;ошибка если флаг переноса установлен

V 11        INC HL                         ;увеличение адреса в ОЗУ

INC DE                         ;увеличение счетчика исправных ячеек ОЗУ

DEC ВС                        ;уменьшение счетчика повторов

LD А,В                          ;ст. разряд сч. повторов поместить в аккумулятор

               OR С                              ;лог. «и» с мл, разрядом сч. повторов для установки флага “ZERO”