Взаимодействие основных частей ЭВМ при выполнении программы
|{-------------------} |
| |
|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; |
| |
| |
| 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) |
|end; {Page_4_3} |
|{-------------------} |
| |
|procedure Page_4_4; |
|begin |
|SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn); |
|SetColor(TxtCol); |
|MyText(0, 48, '- АЛУ выполняет эту операцию (сложение) над двумя ' + |
|'операндами и возвращает'); |
|MyText(0, 56, ' результат в ОЗУ.'); |
|SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn) |
|end; {Page_4_4} |
|{-------------------} |
| |
|procedure Page_4_5; |
|begin |
|SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn); |
|SetColor(TxtCol); |
|MyText(0, 64, '- УУ собщает ОЗУ третий адрес (адрес результата),'); |
|SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn) |
|end; {Page_4_5} |
|{-------------------} |
| |
|procedure Page_4_6; |
|begin |
|SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn); |
|SetColor(TxtCol); |
|MyText(0, 72, '- ОЗУ помещает полученный результат в ячейку памяти.'); |
|SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn) |
|end; {Page_4_6} |
|{-------------------} |
| |
|procedure Page_4_7; |
|begin |
|SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn); |
|SetColor(TxtCol); |
|MyText(0, 80, 'На этом выполнение первой машинной команды ' + |
|'заканчивается, происходит'); |
| |
| |
| MyText(0, 88, 'переход к следующей по порядку машинной команде. ' + |
|'Содержимое ячейки ОЗУ с'); |
|MyText(0, 96, 'адресом, следующим за стартовым, пересылается в УУ ' + |
|'и все повторяется.'); |
|SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn) |
|end; {Page_4_6} |
|{-------------------} |
| |
|{+------------------+} |
|{ } |
|{ Процедуры анимации } |
|{ } |
|{+------------------+} |
| |
|procedure Move_1; |
|begin |
|BLink(150, 285, 'kurs.exe'); |
|end; {Move_1} |
|{-------------------} |
| |
|procedure Move_2; |
|begin |
|SetColor(Green); |
|Animation(150, 285, -125, 2, ' ? ?', True) |
|end; {Move_2} |
|{-------------------} |
| |
|procedure Move_3; |
|begin |
|SetColor(GetBkColor); |
|SetColor(Green); |
|Animation(100, 168, -70, 1, ' 1 2 +', True) |
|end; {Move_3} |
|{-------------------} |
| |
|procedure Move_4_1; |
|begin |
|SetColor(GetBkColor); |
|OutTextXY(30, 176, ' 1 2'); |
|SetColor(Green); |
|Animation(47, 198, 63, 1, ' 1 2', False); |
|SetColor(GetBkColor); |
|OutTextXY(150, 168, ' ? ?'); |
|SetColor(Green); |
|OutTextXY(150, 168, ' a b') |
|end; {Move_4_1} |
|{-------------------} |
| |
|procedure Move_4_2; |
|begin |
|SetColor(Green); |
|Animation(150, 160, -95, 2, ' a b', True) |
|end; {Move_4_2} |
|{-------------------} |
| |
|procedure Move_4_3; |
|begin |
|setcolor(getbkcolor); |
|OutTextXY(30, 176, ' +'); |
|SetColor(Green); |
|Animation(52, 160, -94, 2, '+', False) |
|end; {Move_4_3} |
|{-------------------} |
| |
|procedure Move_4_4; |
| |
| |
|begin |
|SetColor(Green); |
|Animation(52, 66, 115, 1, '+', True); |
|OutTextXY(183, 73, '=c') |
|end; {Move_4_4} |
|{-------------------} |
| |
|procedure Move_4_5; |
|begin |
|SetColor(GetBkColor); |
|SetColor(Green); |
|Animation(47, 198, 63, 1, '3', False); |
|end; {Move_4_1} |
|{-------------------} |
| |
|procedure Move_4_6; |
|begin |
|SetColor(Green); |
|Animation(191, 66, 94, 2, 'c', True) |
|end; {Move_4_5} |
|{-------------------} |
| |
| |
|procedure Help; {Помощь} |
|const |
|XH: Integer = 70; |
|YH: Integer = 70; |
|begin |
|ClearDevice; |
|SetColor(BRDCol); |
|Rectangle(0, 0, GetMaxX, GetMaxY); |
|SetColor(LightCyan); |
|SetTextJustify(1, 0); |
|OutTextXY(GetMaxX div 2, YH + 10,'Помощь:'); |
|SetTextJustify(0, 0); |
|OutTextXY(XH + 10, YH + 20,'Адрес :'); |
|OutTextXY(XH + 10, YH + 30,'УУ :'); |
|OutTextXY(XH + 10, YH + 40,'АЛУ :'); |
|OutTextXY(XH + 10, YH + 50,'АЛУ+УУ :'); |
|OutTextXY(XH + 10, YH + 60,'ВЗУ :'); |
|OutTextXY(XH + 10, YH + 70,'ОЗУ :'); |
|OutTextXY(XH + 10, YH + 80,'УВвода :'); |
|OutTextXY(XH + 10, YH + 90,'УВывода:'); |
|SetColor(Cyan); |
|OutTextXY(XH + 90, YH + 20,'номер ячейки памяти'); |
|OutTextXY(XH + 90, YH + 30,'устройство управления'); |
|OutTextXY(XH + 90, YH + 40,'арифметико-логическое устройство'); |
|OutTextXY(XH + 90, YH + 50,'процессор'); |
|OutTextXY(XH + 90, YH + 60,'внешнее запоминающее устройство (hdd, fdd и |
|др.)'); |
|OutTextXY(XH + 90, YH + 70,'оперативное запоминающее устройство'); |
|OutTextXY(XH + 90, YH + 80,'устройство ввода'); |
|OutTextXY(XH + 90, YH + 90,'устройство вывода'); |
|_Pause |
|end; {Help} |
|{-------------------} |
| |
|procedure MainWin; |
|begin |
|ClearDevice; |
|BildWin; |
|BildContext; |
|BildFuncKey |
|end; {MainWin} |
|{-------------------} |
| |
| |
| |
|procedure Play; |
|{-------------} |
|procedure SelectPage(N: Byte); |
|begin |
|case N of |
Страницы: 1, 2, 3, 4, 5
|