2 package body I386
.Text_Console
is
4 Current_Line
: console_Index
:= 1;
5 Current_Column
: Console_Index
:= 1;
7 procedure Put
(C
: Character)
9 Text_Video
: Text_Buffer
;
10 for Text_Video
'Address use To_Address
(Unsigned_32
(Video_Base_Address
));
11 L
: Line_Index
:= Max_Line
;
13 if Current_Column
> Max_Column
then
15 Current_Line
:= Current_Line
+ 1;
17 if Current_Line
> Max_Line
then
18 for I
in 1 .. Max_Line
- 1 loop
19 -- for J in 1 .. Max_Column loop
20 -- Text_Video (I)(J) := Text_Video (I + 1)(J);
22 Text_Video
(I
) := Text_Video
(I
+ 1);
24 -- for I in 1 .. Max_Column loop
25 -- Text_Video (Max_Line)(I).Text := Character'Pos (Ascii.NUL);
27 Text_Video
(Max_Line
) := (others => Blank_Text_Element
);
30 Text_Video
(Current_Line
)(Current_Column
).Text
:= Character'Pos (C
);
31 Current_Column
:= Current_Column
+ 1;
34 procedure Put
(S
: String)
44 Text_Video
: Text_Buffer
;
45 for Text_Video
'Address use To_Address
(Unsigned_32
(Video_Base_Address
));
47 -- for I in Line_Index'Range loop
48 -- for J in Column_Index'Range loop
49 -- Text_Video (I)(J).Text := Character'Pos (Ascii.NUL);
52 Text_Video
:= (others => (others => Blank_Text_Element
));
60 Current_Line
:= Current_Line
+ 1;
64 procedure Put_Line
(S
: String)
71 end I386
.Text_Console
;