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 |
|
|
|
CArrow := BArrow; {Стрелки}
SetColor(ARBCol);
SetFillStyle(1, Blue);
Arrow(XC + 50, YC + 50, 40, 2);
FloodFill(XC + 40, YC + 50, ARBCol);
CArrow := SArrow;
SetColor(ARSCol);
Arrow(XC + 50, YC + 80, 40, 2);
SetColor(LightGreen);
Arrow(XC + 50, YC + 80, 0, 2);
SetColor(MemCol);
SetLineStyle(1, 0, 0);
Line(XC + 10, YC + 110, XC + 34, YC
+ 110);
Line(XC + 10, YC + 126, XC + 34, YC
+ 126);
Line(XC + 14, YC + 106, XC + 14, YC
+ 128);
Line(XC + 30, YC + 106, XC + 30, YC
+ 128);
SetColor(CPUCol);
Line(XC + 12, YC + 150, XC + 30, YC
+ 150);
SetLineStyle(0, 0, 0);
SetColor(TxtCol);
SetTextJustify(0, 1); {Значения}
OutTextXY(XC + 60, YC + 50, ' - Передача
данных');
OutTextXY(XC + 60, YC + 80,
' - Сигнал управления');
OutTextXY(XC + 60, YC + 120, ' - Ячейка памяти');
OutTextXY(XC + 60, YC + 150, ' - Данной линией');
OutTextXY(XC + 60, YC + 160, ' обведены части');
OutTextXY(XC + 60, YC + 170, ' входящие в состав');
OutTextXY(XC + 60, YC + 180, ' процессора (ЦПУ)');
OutTextXY(XC + 20, YC + 200, '█ - содержимое
файла');
OutTextXY(XC + 20, YC + 210, '1 - адрес первого
операнда');
OutTextXY(XC + 20, YC + 220, '2 - адрес второго
операнда');
OutTextXY(XC + 20, YC + 230, '3 - адрес результата');
SetTextJustify(0, 0)
end; {Context}
{-------------------}
procedure BildFuncKey;
const
StrFK: array [1..4] of string[11] =
('Помощь F1', 'Назад
<-', 'Вперед ->', 'Выход Esc');
FkbCol: Word = Green;
TxtCol: Word = LightCyan;
begin
SetColor(BRDCol);
Rectangle(XS, YS, GetMaxX - XS,
GetMaxY - XS);
SetTextJustify(1, 1);
SetFillStyle(1, DarkGray);
for I := 1 to 4 do
begin
SetColor(FkbCol); {Установка цвета границы
клавиш}
Bar((GetMaxX - XS * 2) div 5 * I
- Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * I
+ Length(StrFK[I]) * 4, YS + 23);
Rectangle((GetMaxX - XS * 2) div
5 * I - Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div
5 * I + Length(StrFK[I]) * 4, YS + 23);
SetColor(Black);
{Установка цвета текста клавиш}
OutTextXY((GetMaxX - XS * 2) div
5 * I + 2, YS + 15 - 2, StrFK[I]);
SetColor(TxtCol);
OutTextXY((GetMaxX - XS * 2) div
5 * I, YS + 15, StrFK[I])
end;
SetTextJustify(0, 0);
{Сахраняем картинки}
FuncKeyWindow[1].Get(XS, YS, GetMaxX
- XS, GetMaxY - XS);
SetFillStyle(1, GetBkColor);
Bar((GetMaxX - XS * 2) div 5 * 3 -
Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * 3 + Length(StrFK[I]) * 4, YS + 23);
|
|
|
|
|
|
|
КР.
991096.00.00.00 ПЗ |
Лист |
|
|
|
|
|
——– |
Изм.
|
Лист
|
№ докум.
|
Подп.
|
Дата
|
8 |
|
|
|
FuncKeyWindow[3].Get(XS, YS, GetMaxX
- XS, GetMaxY - XS);
FuncKeyWindow[1].Put(XS, YS);
Bar((GetMaxX - XS * 2) div 5 * 2 -
Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * 2 +
Length(StrFK[I]) * 4, YS + 23);
FuncKeyWindow[2].Get(XS, YS, GetMaxX
- XS, GetMaxY - XS)
end; {FuncKey}
{-------------------}
{+----------------------------------------------+}
{ }
{ Процедуры вывода текстовой информации на экран }
{
}
{+----------------------------------------------+}
procedure Page_1;
begin
SetViewPort(X, Y, GetMaxX - X, YS -
10, ClipOn);
ClearViewPort;
SetColor(Blue);
OutTextXY(GetMaxX - X - 25, 100,
'1');
SetColor(TxtCol);
MyText(0, 8, 'До начала работы программы, она
находится на ВЗУ, ' +
'в виде файла программы');
MyText(0, 16, '(*.exe или *.com).');
SetViewPort(0, 0, GetMaxX, GetMaxY,
ClipOn)
end; {Page_1}
{-------------------}
procedure Page_2;
begin
SetViewPort(X, Y, GetMaxX - X, YS -
10, ClipOn);
ClearViewPort;
SetColor(Blue);
OutTextXY(GetMaxX - X - 25, 100,
'2');
SetColor(TxtCol);
MyText(0, 8, 'После того как ЭВМ получила команду на
запуск ' +
'программы, содержимое');
MyText(0, 16, 'этого файла помещается в ячейку ОЗУ,
начиная с ' +
'ячейки с некоторым');
MyText(0, 24, 'стартовым адресом.');
SetViewPort(0, 0, GetMaxX, GetMaxY,
ClipOn)
end; {Page_2}
{-------------------}
procedure Page_3;
begin
SetViewPort(X, Y, GetMaxX - X, YS -
10, ClipOn);
ClearViewPort;
SetColor(Blue);
OutTextXY(GetMaxX - X - 25, 100,
'3');
SetColor(TxtCol);
MyText(0, 8, 'Содержимое ячейки со стартовым адресом
программы ' +
' (первая машинная команда)');
MyText(0, 16, 'пересылается в УУ. УУ расшифровывает
первую машинную ' +
'команду и выробатывает');
MyText(0, 24, 'соответствующие ей сигналы управления
для всех систем управления.');
SetViewPort(0, 0, GetMaxX, GetMaxY,
ClipOn)
end; {Page_3}
{-------------------}
procedure Page_4_1;
begin
SetViewPort(X, Y, GetMaxX - X, YS -
10, ClipOn);
ClearViewPort;
|
|
|
|
|
КР.
991096.00.00.00 ПЗ |
Лист |
|
|
|
|
|
——– |
Изм.
|
Лист
|
№ докум.
|
Подп.
|
Дата
|
9 |
|
|
|
SetColor(Blue);
OutTextXY(GetMaxX - X - 25, 100,
'4');
SetColor(TxtCol);
MyText(0, 8, 'Например: если первой машинной
командой оказалась ' +
'трех адресной командой');
MyText(0, 16, 'сложения двух чисел, произойдут
следующие действия:');
MyText(0, 24, '- УУ посылает первый и второй адреса в
ОЗУ');
SetViewPort(0, 0, GetMaxX, GetMaxY,
ClipOn)
end; {Page_4_1}
{-------------------}
procedure Page_4_2;
begin
SetViewPort(X, Y, GetMaxX - X, YS -
10, ClipOn);
SetColor(TxtCol);
MyText(0, 32, '- ОЗУ пересылает содержимое ячеек с
этими адресами в АЛУ,');
SetViewPort(0, 0, GetMaxX, GetMaxY,
ClipOn)
end; {Page_4_2}
{-------------------}
procedure Page_4_3;
begin
SetViewPort(X, Y, GetMaxX - X, YS -
10, ClipOn);
SetColor(TxtCol);
MyText(0, 40, '- УУ отправляет сигнал управления
(КОП) в АЛУ,');
SetViewPort(0, 0, GetMaxX, GetMaxY,
ClipOn)
Страницы: 1, 2, 3, 4
|
Новости
Группа вКонтакте: новости
Пока нет
Новости в Twitter и Facebook
Новости
|