Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 20:54, курсовая работа
Курсовая работа посвящена изучению структуры и работы цифровой вычислительной машины, изучению и использованию модуля Graph Турбо Паскаля, знакомство с основами языка ассемблера и машинного языка, освоению техники разработки и отладки многофайлового программного продукта на примере создания программной модели ЦВМ.
const
TicsPerSec = 18.2065;
var
BiosClock : LongInt absolute $40:$6C;
begin
CurrentTime := Trunc(BiosClock/TicsPerSec);
end; {CurrentTime }
{OutTime }
procedure OutTime;
begin
NewTime := CurrentTime;
if NewTime <> OldTime then begin
OldTime := NewTime;
ClearBar (528, 430, 528+8*8, 430+8);
OutTextXY(528, 430, TimeToTimeString('hh:mm:ss', NewTime) );
end;
end; {OutTime }
{InitMBM }
procedure InitMBM;
var
I, GrDriver, GrMode: integer;
GraphFile: string;
F: file;
begin
GraphFile:='EGAVGA.BGI';
if ParamCount <> 0 then
for i:=1 to ParamCount do
if Length(Paramstr(i)) > 2 then
GraphFile := Paramstr(i) + GraphFile;
Assign(F, GraphFile);
{$I-}
Reset(F);
{$I+}
if IOresult = 0 then begin
GrDriver := detect;
InitGraph(GrDriver, GrMode, GraphFile);
OutStructure;
Close(F);
end
else begin
WriteLn('ERROR!!!', ^M^J,
'Fajl ne syshestvyet ili neverno ykazan put! ',
GraphFile);
ReadLn;
Halt;
end;
end; {InitMBM }
{GetUserCmnd }
function GetUserCmnd: char;
var
Ch: char;
begin
Ch := Readkey;
if Ch = #0 then
case ReadKey of
{Alt-X} #45: Ch := CmndExit;
{F7} #65: Ch := ^T;
{F8} #66: Ch := ^K;
{F9} #67: Ch := ^D;
{CtrlF9}#102: Ch := ^A;
end;
GetUserCmnd := Ch;
end; {GetUserCmnd }
{OutSost }
procedure OutSost;
begin
ClearBar (394, 413, 394+4*8, 413+8);
OutTextXY(394, 413, SostName[Sost]);
end; {OutSost }
end.