Приложение А. Исходный текст программы
program LEAN_Ecm;
uses Crt, Graph, Sm_Graph, Sm_Const;
{-------------------} {uses}
var
I: Integer;
FuncKeyWindow: array [1..3] of
TImage; {Массив картинок функциональных клавиш}
Temp: array [1..2] of
TImage; {Массив вспомогательный}
{-------------------} {var}
procedure BildWin;
const
TxtCol: Word = Red; {Цвет
текста}
RTACol: Word = Yellow; {Цвет
прямоугольников}
BACCol: Word = Black; {Цвет
фона}
{Рисуем главную картинку}
begin
SetBkColor(BACCol);
SetColor(BRDCol);
Rectangle(X0, Y0, X0 + 385, Y0 +
300);
Rectangle(X0, Y0 + 305, GetMaxX -
X0, YS - 5);
SetColor(MemCol);
{Ячейки памяти}
SetLineStyle(1, 0, 0);
for I := 1 to 4 do {Ячейки памяти}
begin
Line(X0 + 130 + 16 * I, Y0 +
120, X0 + 130 + 16 * I, Y0 + 200);
Line(X0 + 130, Y0 + 120 + 16 *
I, X0 + 210, Y0 + 120 + 16 * I)
end;
{CPU}
SetColor(CPUCol);
MoveTo(X0 + 83, Y0 + 203); {0}
LineTo(X0 + 7, Y0 + 203); {1}
LineTo(X0 + 7, Y0 + 117); {2}
LineTo(X0 + 40, Y0 + 117); {3}
LineTo(X0 + 40, Y0 + 45); {4}
LineTo(X0 + 127, Y0 + 45); {5}
LineTo(X0 + 127, Y0 + 27); {6}
LineTo(X0 + 213, Y0 + 27); {7}
LineTo(X0 + 213, Y0 + 73); {8}
LineTo(X0 + 127, Y0 + 73); {9}
LineTo(X0 + 127, Y0 + 55); {10}
LineTo(X0 + 50, Y0 + 55); {11}
LineTo(X0 + 50, Y0 + 117); {12}
LineTo(X0 + 83, Y0 + 117); {12}
LineTo(X0 + 83, Y0 + 203); {13}
SetLineStyle(0, 0, 0);
{Прямоугольники}
SetColor(RTACol);
Rectangle(X0 + 10, Y0 + 120, X0 +
80, Y0 + 200); {УУ(ЦУУ)}
Rectangle(X0 + 55, Y0 + 120, X0 +
80, Y0 + 130); {КОП}
Rectangle(X0 + 130, Y0 + 120, X0 +
210, Y0 + 200); {ОЗУ}
Rectangle(X0 + 130, Y0 + 30, X0 +
210, Y0 + 70); {АЛУ}
Rectangle(X0 + 130, Y0 + 250, X0 +
210, Y0 + 290); {ВЗУ}
Rectangle(X0 + 260, Y0 + 120, X0 +
360, Y0 + 150); {У.Ввода}
Rectangle(X0 + 260, Y0 + 170, X0 +
360, Y0 + 200); {У.Вывода}
{Подписи к прямоугольникам}
SetColor(TxtCol);
|
|
|
|
|
|
|
КР.
991096.00.00.00 ПЗ |
Лист |
|
|
|
|
|
——– |
Изм.
|
Лист
|
№ докум.
|
Подп.
|
Дата
|
6 |
|
|
|
|
|
|
|
КР.
991096.00.00.00 ПЗ |
Лист |
|
|
|
|
|
——– |
Изм.
|
Лист
|
№ докум.
|
Подп
|
Дата
|
|
|
|
|
SetTextJustify(2, 0);
OutTextXY(X0 + 80, Y0 + 200, 'УУ(ЦУУ)');
OutTextXY(X0 + 80, Y0 + 130, 'PC');
OutTextXY(X0 + 210, Y0 + 200, 'ОЗУ');
OutTextXY(X0 + 210, Y0 + 70, 'АЛУ');
OutTextXY(X0 + 210, Y0 + 290, 'ВЗУ');
OutTextXY(X0 + 360, Y0 + 150, 'У.Ввода');
OutTextXY(X0 + 360, Y0 + 200, 'У.Вывода');
SetTextJustify(0, 0);
{Стрелки
Big}
SetColor(ARBCol);
SetFillStyle(1, FILCol);
{Вид стрелки}
CArrow := BArrow;
Arrow(X0 + 85, Y0 + 140, 40, 1); {ОЗУ - УУ(ЦУУ)}
FloodFill(X0 + 90, Y0 + 140,
ARBCol);
Arrow(X0 + 150, Y0 + 75, 40, 3); {ОЗУ - АЛУ}
FloodFill(X0 + 150, Y0 + 80,
ARBCol);
Arrow(X0 + 190, Y0 + 115, 40, 4); {АЛУ - ОЗУ}
FloodFill(X0 + 190, Y0 + 110,
ARBCol);
Arrow(X0 + 150, Y0 + 205, 40, 3); {ВЗУ - ОЗУ}
FloodFill(X0 + 150, Y0 + 210,
ARBCol);
Arrow(X0 + 190, Y0 + 245, 40, 4); {ОЗУ - ВЗУ}
FloodFill(X0 + 190, Y0 + 240,
ARBCol);
Arrow(X0 + 215, Y0 + 135, 40, 1); {У.Ввода - ОЗУ}
FloodFill(X0 + 220, Y0 + 135,
ARBCol);
Arrow(X0 + 255, Y0 + 185, 40, 2); {У.Вывода - ОЗУ}
FloodFill(X0 + 250, Y0 + 185,
ARBCol);
{Стрелки
Small}
SetColor(ARSCol);
{Вид стрелки}
CArrow := SArrow;
Arrow(X0 + 125, Y0 + 180, 40, 2); {УУ(ЦУУ) - ОЗУ}
Arrow(X0 + 125, Y0 + 270, 80, 2); {УУ(ЦУУ) - ВЗУ}
Arrow(X0 + 125, Y0 + 50, 80, 2); {УУ(ЦУУ) - АЛУ = КОП}
Line(X0 + 45, Y0 + 115, X0 + 45, Y0
+ 50); {1}
OutTextXY(X0 + 70, Y0 + 60, 'КОП'); {2}
{УУ(ЦУУ) - У.Вводы, У.Вывода}
Line(X0 + 45, Y0 + 205, X0 + 45,
Y0 + 295); {1}
Line(X0 + 45, Y0 + 295, X0 + 380,
Y0 + 295); {2}
Line(X0 + 380, Y0 + 295, X0 + 380,
Y0 + 135); {3}
Arrow(X0 + 365, Y0 + 135, 15, 1);
{in} {4}
Arrow(X0 + 365, Y0 + 185, 15, 1);
{out} {5}
{Носики стрелок Small}
SetColor(LightGreen);
Arrow(X0 + 125, Y0 + 180, 0, 2); {1}
Arrow(X0 + 125, Y0 + 270, 0, 2); {2}
Arrow(X0 + 125, Y0 + 50, 0, 2); {3}
Arrow(X0 + 365, Y0 + 135, 0, 1); {4}
Arrow(X0 + 365, Y0 + 185, 0, 1); {5}
SetColor(BRDCol);
Rectangle(0, 0, GetMaxX, GetMaxY);
end; {BildWin}
{-------------------}
procedure BildContext;
const
TxtCol: Word = LightBlue;
begin
SetColor(BRDCol); {Устанавливаем цвет границы и
рисуем ее}
Rectangle(XC, YC, GetMaxX - X0, YC +
300);
SetTextJustify(1, 1);
SetColor(TxtCol + 1); {Заголовок}
OutTextXY(GetMaxX - (GetMaxX - X0 -
XC) div 2 - X0, YC + 20, 'Обозначения ' +
'на
схеме:');
|
|
|
|
|
|
|
КР.
991096.00.00.00 ПЗ |
Лист |
|
|
|
|
|
——– |
Изм.
|
Лист
|
№ докум.
|
Подп.
|
Дата
|
7 |
|
|
|