-
Notifications
You must be signed in to change notification settings - Fork 8
/
PRESENT2.PAS
155 lines (141 loc) · 3.72 KB
/
PRESENT2.PAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
unit Present2;
interface
procedure Presentation;
function Menu( x, y : integer ) : integer;
implementation
uses
Crt, Letters, Win, Sounds, Teletype, TTY;
const
Items : array[ 0..5 ] of string[20] =
( 'ÛÛÛÛÛÛÛÛÛÛÛÛÛÛ',
' Comenzar ',
' Introducci¢n ',
' Consejos ',
' Terminar ',
'ÛÛÛÛÛÛÛÛÛÛÛÛÛÛ' );
function Menu( x, y : integer ) : integer;
var
i : integer;
p : integer;
ch : byte;
ega : boolean;
begin
p := 1;
ega := IsEGA;
repeat
WriteStr( x, y, Items[0], 7 );
WriteStr( x, y + 5, Items[5], 7 );
for i := 1 to 4 do
begin
if ega
then WriteStr( x, y + i, Items[i], cInv )
else WriteStr( x, y + i, Items[i], cGround );
WriteStr( x + 1, y + i, copy(Items[i],2,14), cGround );
end;
if ega
then
begin
WriteStr( x + 1, y + p, 'ã æ', $74 );
WriteStr( x + 2, y + p, copy(Items[p],3,12), $4F )
end
else WriteStr( x + 1, y + p, copy(Items[p],2,14), $4F );
ch := byte(readkey);
if ch = 0
then ch := byte(readkey);
case ch of
72: if p > 1
then dec( p )
else p := 4;
80: if p < 4
then inc( p )
else p := 1;
end;
until ch = 13;
Menu := p;
end;
procedure HideCursor; assembler;
asm
mov cx, 2000H
mov ax, 0100H
int 10H
end;
procedure Presentation;
var
x : integer;
begin
HideCursor;
textbackground( 0 );
clrscr;
delay( 1000 );
WriteStr( 25, 10, ' En la lucha entre t£ y el mundo,', 15 );
WriteStr( 25, 11, ' apoya al mundo.', 15 );
WriteStr( 46, 13, 'Franz Kafka', 15);
delay( 4000 );
clrscr;
delay( 2000 );
x := 40 - length( 'Merchise Software' ) div 2;
OutTextXY( x, 12, 7, 'Merchise Software' );
delay( 100 );
WriteStr( x, 12, 'Merchise Software', 15 );
delay( 1500 );
clrscr;
x := 40;
OutTextXY( x, 12, 7, 'y' );
delay( 100 );
WriteStr( x, 12, 'y', 15 );
delay( 700 );
clrscr;
x := 40 - length( '[[]]') div 2;
OutTextXY( x, 12, 7, '[[]]' );
delay( 100 );
WriteStr( x, 12, '[[]]', 15 );
delay( 1000 );
clrscr;
x := 40 - length( 'presentan' ) div 2;
OutTextXY( x, 12, 7, 'presentan' );
delay( 100 );
WriteStr( x, 12, 'presentan', 15 );
delay( 1000 );
clrscr;
delay( 1000 );
x := 40 - length( 'L A F O R T A L E Z A II' ) div 2;
OutTextXY( x, 12, 7, 'L A F O R T A L E Z A II' );
delay( 100 );
WriteStr( x, 12, 'L A F O R T A L E Z A II', 15 );
Thunder;
delay( 1000 );
delline;
x := 40 - length( 'La venganza de la Bestia' ) div 2;
OutTextXY( x, 12, 4, 'La venganza de la Bestia' );
Ouch;
delay( 100 );
WriteStr( x, 12, 'La venganza de la Bestia', 4 );
delay( 1000 );
delline;
delay( 100 );
delline;
delay( 100 );
delline;
delay( 100 );
end;
var
i : integer;
begin
if IsEGA
then
begin
Items[0] := 'ƒ' + Items[0] + 'Û„…';
Items[1] := 'Û' + Items[1] + 'ä';
Items[2] := 'å' + Items[2] + 'ê';
Items[3] := 'á' + Items[3] + 'â';
Items[4] := 'å' + Items[4] + 'ê';
Items[5] := 'ˆ' + Items[5] + 'Û†‡';
end
else
begin
Items[0] := 'Û' + Items[0] + 'Û';
Items[5] := 'Û' + Items[5] + 'Û';
for i := 1 to 4 do
Items[i] := ' ' + Items[i] + ' ';
end;
end.