Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №6 по О-Средам / lab_6_1 / DIR_SCR
.PAS Unit Dir_Scr;
Interface
{ -= Џаאַ© ўлў®¤ ў ўЁ¤Ґ®Ї ¬пвм =- }
Type
TScreenChar = Record
Data : Char;
Attr : Byte;
End;
Var TextScreenBuffer : Array [0..24,0..79] of TScreenChar
Absolute $B800:$0000;
Type
TDirectS = Object
ScrCol,ScrRow : Word;
Constructor Init;
Procedure Out( C:Char );
End;
Var DirectS : TDirectS;
Implementation
{-----------------------------------------------------}
Constructor TDirectS.Init;
Var I,J : Word;
Begin
For I:=6 to 24 do
For J:=0 to 79 do
With TextScreenBuffer[I,J] do
Begin
Data := ' ';
Attr := $07; { ЃҐ«л¬ Ї® зҐа®¬г }
End;
ScrRow := 6;
ScrCol := 0;
End;
{-----------------------------------------------------}
Procedure TDirectS.Out( C:Char );
Begin
If ScrRow>24 then Init;
TextScreenBuffer[ScrRow,ScrCol].Data := C;
TextScreenBuffer[ScrRow,ScrCol].Attr := $1F;
Inc(ScrCol);
if ScrCol>79 then
Begin
ScrCol := 0;
Inc(ScrRow);
End;
End;
Begin
DirectS.Init;
End.
Interface
{ -= Џаאַ© ўлў®¤ ў ўЁ¤Ґ®Ї ¬пвм =- }
Type
TScreenChar = Record
Data : Char;
Attr : Byte;
End;
Var TextScreenBuffer : Array [0..24,0..79] of TScreenChar
Absolute $B800:$0000;
Type
TDirectS = Object
ScrCol,ScrRow : Word;
Constructor Init;
Procedure Out( C:Char );
End;
Var DirectS : TDirectS;
Implementation
{-----------------------------------------------------}
Constructor TDirectS.Init;
Var I,J : Word;
Begin
For I:=6 to 24 do
For J:=0 to 79 do
With TextScreenBuffer[I,J] do
Begin
Data := ' ';
Attr := $07; { ЃҐ«л¬ Ї® зҐа®¬г }
End;
ScrRow := 6;
ScrCol := 0;
End;
{-----------------------------------------------------}
Procedure TDirectS.Out( C:Char );
Begin
If ScrRow>24 then Init;
TextScreenBuffer[ScrRow,ScrCol].Data := C;
TextScreenBuffer[ScrRow,ScrCol].Attr := $1F;
Inc(ScrCol);
if ScrCol>79 then
Begin
ScrCol := 0;
Inc(ScrRow);
End;
End;
Begin
DirectS.Init;
End.