PROGRAM
EDNUM;
Uses
Overlay,Init,
Crt,
Dos,
Graph,
Get_Key,
Buff_Tex,
Buffs,
Box13,
H_HElp,
Var_1,
Type_Buf,
C_Read,
H_Aide,
U_Pick,
H_Calcul,
Gaff2004,
CrtKey,
Types_11,
Help7F,
NN_Tinst,
Recher,
F_Calcul,
NUMMOUSE,
H_Maths,
NUM_BUFF,
VAR_NUM,
NUM750,
Util7F,
Traduc,
ED13FNUM,
Menu_2;
Label
ErreurFin,ErreurNomOriginal;
Const
ExtraSize = 37888
;
Mouse1 = 256
;
Mouse2 = 257
;
Mouse3 = 258
;
DelayMouse : integer
=2000
;
Disk_Dur_C : string
[70
]='
'
;
Var
f_f_f_f : FILE
;
StrCalcul : string
;
StrResult : string
;
ix,iy : Word
;
CurseurDebutX : byte
;
Find_Valeur : byte
;
Sxx1,Sxx2 : string
;
Erreur1 : integer
;
Entree1 : boolean
;
S_etat : string
[5
];
STR20 : string
;
Nxx1,Nbr2 : integer
;
PoseMot : Word
;
X_Car : Char
;
Rep_Fic : string
;
ST2,Rep_Hlp : string
;
STOP : boolean
;
Options_Remplace : string
;
Procedure
P_Save; Forward
;
Procedure
CtrL_Q;
var
n,Key1:byte
;
begin
Putxy(2
,3
,'
^Q
'
);
Posxy(4
,3
);
Key1:=KeyBoard;
Putxy(2
,3
,'
'
);
Case
Key1 Of
6
,102
,70
: Cherche_Bas(63
);
1
,97
,65
: Cherche_Bas(98
);
99
,3
: Fin_DU_Fichier;
114
,18
: Debut_DU_Fichier;
49
,50
,51
,52
: if
Not
Key_Code Then
begin
Case
Key1 Of
49
: n:=1
;
50
: n:=2
;
51
: n:=3
;
52
: n:=4
;
end
;
if
(Pose_Marque[n]>0
) And
(Pose_Marque[n]<=Fin_Buffer) Then
Cherche_Marque(Pose_Marque[n])
else
if
Pose_Marque[n]>Fin_Buffer Then
Pose_Marque[n]:=0
;
end
;
end
;
end
;
Procedure
Change_Fichier_Avan;
var
Fin:boolean
;
begin
Fin:=False
;
if
_Save_Fichier Then
begin
textAttr:=Menu_Color;
if
P_New<>69
Then
Fin:=True
;
textAttr:=Edit_Color;
if
(Not
_Save_Fichier) and
(NomFic<>'
NONAME.???
'
) Then
begin
Tab[1
].Rtime:=FileDate(Tab[1
].NomR+Tab[1
].NomF);
if
X_Curseur<=Fin_ligne[Y_Curseur].ecran Then
Tab[1
].PosX:=X_Curseur
else
Tab[1
].PosX:=Fin_ligne[Y_Curseur].ecran;
Tab[1
].PosY:=Y_Curseur;
Tab[1
].PageDebut:=Debut_Page;
Tab[1
].Ligne:=Line_Curseur;
Tab[1
].Marque:=Pose_Marque;
end
;
end
;
if
Not
Fin Then
begin
textAttr:=Edit_Color;
Initialiser;
BoxFill(2
,4
,79
,CrtGetMaxY-1
,'
'
);
NomFic:=Tab[2
].NomF;
Disque_Nom:=Tab[2
].NomR;
if
NomFic<>'
NONAME.???
'
Then
Load_Fichier_Disque(Disque_Nom,NomFic);
if
NomFic<>'
NONAME.???
'
Then
begin
Reinit_Pick(Disque_Nom,NomFic);
if
X_curseur<Max_curseurX Then
E_curseurX:=X_curseur
else
E_curseurX:=Max_curseurX-1
;
if
Debut_Page>=Fin_Buffer Then
begin
Debut_Page:=1
;
Y_curseur:=1
;
Line_Curseur:=1
;
X_curseur:=1
;E_curseurX:=1
;
end
;
Premiere_Page_Debut(Debut_Page);
if
(Y_curseur>FinY) Then
begin
Dec(Line_Curseur,(Y_curseur-FinY));
Y_curseur:=FinY;
end
;
end
;
end
;
end
;
Function
LireMotXX:string
;
Var
S : string
;
Pose: Word
;
begin
Pose:=0
;
ix:=0
;
if
X_curseur<Fin_Ligne[Y_curseur].ecran Then
begin
S:='
'
;
pose:=(Fin_ligne[Y_curseur].buf-Fin_ligne[Y_curseur].ecran)+X_curseur;
ix:=0
;
if
Pose>Fin_Buffer Then
Pose:=Fin_Buffer;
if
pose>1
Then
begin
While
(POSE>1
) And
(Buffer^[pose-1
] In
Cherche_Letre_texte) DO
begin
Dec(Pose);
inc(ix);
end
;
PoseMOt:=Pose;
end
else
Pose:=1
;
if
Pose>Fin_Buffer Then
Pose:=Fin_Buffer;
While
(Pose<Fin_Buffer) And
(Buffer^[pose] In
cherche_Letre_texte) DO
begin
if
Buffer^[pose] In
cherche_Letre_texte Then
S:=S+Buffer^[pose];
inc(pose);
end
;
if
s='
'
Then
PoseMot:=0
;
LireMotXX:=S;
end
else
begin
LireMotxx:='
'
;
PoseMot:=0
;
end
;
end
;
Procedure
P_Edit;
Label
Key_Fin;
Var
X1,Y1 : byte
;
KeyChoix : Word
;
Info_Pick2: Reg_Pick;
begin
Repeat
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
if
SuppBlock Then
begin
textAttr:=Edit_Color;
Coup_Block;
end
else
if
CopierBlock Then
begin
textAttr:=Edit_Color;
CopyBlock__B(DebutBlock,Max_Block);
CopierBlock:=False
;
end
;
WindowMouse(1
,1
,CrtGetMaxX,CrtGetMaxY);
Mousexy(3
,3
);
if
(((Find_Valeur in
[63
,98
,62
]) And
(StrFind<>'
'
)) OR
(Find_Valeur=255
)) Then
begin
Case
Find_Valeur Of
63
: Cherche_Bas(163
);
98
: Cherche_Bas(198
);
62
: begin
if
StrFind<>'
'
Then
begin
Beep;
ConteLines:=0
;
Cherche_Bas(62
);
end
;
end
;
255
: begin
Mode_Teste_Mesaje:=False
;
ReadBuf(2
,3
,78
,3
,LinePtr^);
textAttr:=Help_Color;
Putxy(2
,3
,'
Teste
programme...
'
);
Texte_Programme_Buffer(1
);
Mode_Teste_Mesaje:=True
;
Str(NbrLignes,Sxx2);
Putxy(2
,3
,'
Line:
'
+Sxx2+'
'
+Error_teste_Str+'
press
any
key.
'
);
textAttr:=Edit_Color;
csoff;
Beep;
Ix:=Keyboard;
WriteBuf(2
,3
,78
,3
,LinePtr^);
end
;
end
;
Find_Valeur:=0
;
end
else
if
Find_Valeur=84
Then
begin
Find_Valeur:=0
;
Tri_Block;
end
;
Repeat
textAttr:=Etat_Color;
if
Line_Curseur=0
Then
Line_Curseur:=1
;
Str(Line_Curseur:5
,S_etat);
Putxy(11
,3
,S_Etat);
Str(X_Curseur:2
,S_Etat);
Putxy(23
,3
,S_etat+'
'
);
if
Inser_Mode Then
Putxy(28
,3
,'
Insert
'
)
else
Putxy(28
,3
,'
'
);
PutXy(58
,3
,'
'
);
PutXy(58
,3
,Disque_2+NomFic);
textAttr:=Edit_Color;
Gotoxy(E_CurseurX,Y_curseur);
if
change_de_ligne Then
Pos_ligne:=(Fin_Ligne[Y_Curseur].buf-Fin_ligne[Y_Curseur].ecran)+1
;
DisplayMouse;
KeyChoix:=GetKeyMouseWord;
MasKMouse;
if
(Shift_G OR
Shift_D) And
((KeyChoix=RightKey) OR
(KeyChoix=DownKey)) Then
begin
Shift_Bloc(KeyChoix);
Goto
Key_Fin;
end
else
Case
KeyChoix OF
AltF10: begin
textAttr:=Menu_Color;
ReadBuf(50
,4
,52
+26
,5
+11
,BuffDir^);
BoxColor(52
,5
,52
+26
,5
+11
,FondBox);
Calculatrice(50
,4
,Calculatrice_S2,Calculatrice_S3,Calculatrice_Total,Calculatrice_TotalM);
WriteBuf(50
,4
,52
+26
,5
+11
,BuffDir^);
textAttr:=Edit_Color;
Goto
Key_Fin;
end
;
32
..255
: begin
Inser_Char(Chr(KeyChoix));
if
(MouseY-3
=Y_curseur) and
(MouseX=X_curseur) Then
Mousexy(MouseX-1
,MouseY);
Goto
Key_Fin;
end
;
BS: begin
if
(X_Curseur<=Fin_Ligne[Y_Curseur].ecran) Then
Del_Gauche
else
Curseur_Gauche;
Goto
Key_Fin;
end
;
HT: begin
Tab_Deplace;
Goto
Key_Fin;
end
;
7
,DelKey: begin
if
(X_Curseur<Fin_Ligne[Y_Curseur].ecran) Then
Del_Droite
else
if
(X_Curseur=Fin_Ligne[Y_Curseur].ecran) Then
begin
if
((Fin_Ligne[Y_Curseur].ecran + Fin_Ligne[Y_Curseur+1
].ecran)<Max_Colones) And
(Y_curseur<FinY) Then
begin
if
Modif_Ligne Then
begin
Save_ligne_Curseur(Pos_Ligne);
Change_de_Ligne:=True
;
end
;
Curseur___Bas;
Debut_Ligne_Gauche;
Gotoxy(E_CurseurX,Y_curseur);
Del_Gauche;
end
;
end
else
if
(Fin_Ligne[Y_curseur].Buf<Fin_Buffer) Then
Del_FinLigne;
Goto
Key_Fin;
end
;
CtrlAltF2: begin
if
GetTexte=15
Then
Edit_Color:=GetFond shl
4
+ GetFond+1
else
Edit_Color:=GetFond shl
4
+ GetTexte+1
;
BoxColor(2
,4
,Max_curseurX+1
,Max_curseurY+3
,Edit_Color);
For
y1:=1
To
Max_curseurY+3
DO
For
x1:=1
To
Max_Colones DO
ScreenPage^[Y1,X1].Attrib:=Edit_Color;
FondBox:=Edit_Color-(((Edit_Color And
$
70
) shr
4
) * 16
);
Fond__Box:=FondBox;
Goto
Key_Fin;
end
;
CtrlF1: begin
if
Erreur_Limite_Buf('
'
) Then
begin
end
;
Goto
Key_Fin;
end
;
LeftKey: begin
Curseur_Gauche;
Goto
Key_Fin;
end
;
RightKey: begin
Curseur_Droite;
Goto
Key_Fin;
end
;
HomeKey: begin
Debut_Ligne_Gauche;
Goto
Key_Fin;
end
;
endKey: begin
Curseur__FinLigne;
Goto
Key_Fin;
end
;
InsKey: begin
if
Mem[0
:$
417
] And
128
= 128
Then
Inser_Mode:=True
else
Inser_mode:=False
;
Goto
Key_Fin;
end
;
19
: begin
Curseur_Gauche;
Goto
Key_Fin;
end
;
4
: begin
Curseur_Droite;
Goto
Key_Fin;
end
;
22
: begin
Change_Inser_Mode;
Goto
Key_Fin;
end
;
end
;
if
Modif_Ligne Then
begin
Save_ligne_Curseur(Pos_Ligne);
Change_de_Ligne:=True
;
end
;
if
(KeyChoix=Mouse1) And
(MouseY>=2
) Then
begin
if
MouseY=2
Then
begin
Lecture_Une_Ligne_Haut(Debut_page);
end
else
if
MouseY>3
Then
begin
Y1:=MouseY-3
;
if
(Y1>=1
) And
(Y1<Max_curseurY) Then
begin
if
Y1>FinY Then
Y1:=FinY;
X1:=MouseX;
if
Y1>Y_curseur Then
inc(Line_Curseur,(Y1-Y_curseur))
else
if
Y1< Y_curseur Then
Dec(Line_Curseur,Y_curseur-Y1);
Y_curseur:=Y1;
if
(X1>1
) And
(X1<Max_curseurX) Then
begin
X1:=X1+(X_curseur-E_curseurX)-1
;
Positione_curseur(X1);
end
else
if
X1>Max_CurseurX Then
begin
if
X_Curseur<Max_curseurX Then
Positione_curseur(Max_curseurX-1
);
Curseur_Droite;
end
else
if
X1<=1
Then
begin
if
E_CurseurX>1
Then
Positione_curseur((X_curseur-E_curseurX)+1
);
Curseur_Gauche;
end
;
end
else
if
(Y1=Max_curseurY+1
) Then
begin
Lecture_Une_Ligne_Bas(Fin_page,'
'
);
end
;
end
;
Goto
Key_Fin;
end
else
if
(KeyChoix=Mouse2) And
(MouseY=1
) And
(Mbox(5
,1
,60
,1
)) Then
begin
Case
MouseX Of
5
..8
: KeyChoix:=Alt_F;
13
..16
: KeyChoix:=Alt_E;
21
..27
: KeyChoix:=Alt_O;
32
..35
: KeyChoix:=Alt_L;
40
..51
: KeyChoix:=Alt_G;
56
..60
: KeyChoix:=Alt_M;
else
KeyChoix:=0
;
end
;
Delay(DelayMouse);
Goto
Key_Fin;
end
else
Case
KeyChoix OF
F1: Help_Keys;
CR: Inserer_Ligne;
1
: mot_Avan((Fin_Ligne[Y_Curseur].buf-(Fin_Ligne[Y_curseur].Ecran-1
))+X_curseur);
6
:begin
if
X_curseur=Fin_Ligne[Y_curseur].ecran-1
Then
Curseur__FinLigne
else
mot_suivan((Fin_Ligne[Y_Curseur].buf-
Fin_Ligne[Y_curseur].Ecran)+X_curseur+1
);
end
;
5
: Curseur_Haut;
24
: Curseur___Bas;
18
: Recule_Page;
3
: Avance_Page;
23
: Lecture_Une_Ligne_Haut(Debut_page);
26
: Lecture_Une_Ligne_Bas(Fin_page,'
'
);
14
: Inserer_Ligne;
11
: Ctrl_K;
17
: Ctrl_Q;
25
: if
(Y_Curseur<FinY) OR
((FinY>1
) And
(Fin_Ligne[Y_Curseur].ecran>1
)) Then
Del_Line;
12
: if
StrFind<>'
'
Then
begin
Beep;
ConteLines:=0
;
Cherche_Bas(62
);
end
;
UpKey: Curseur_haut;
DownKey: Curseur___Bas;
CtrlRightKey: begin
if
X_curseur=Fin_Ligne[Y_curseur].ecran-1
Then
Curseur__FinLigne
else
mot_suivan((Fin_Ligne[Y_Curseur].buf-Fin_Ligne[Y_curseur].Ecran)+X_curseur+1
);
end
;
CtrlLeftKey: Mot_Avan((Fin_Ligne[Y_Curseur].buf-(Fin_Ligne[Y_curseur].Ecran-1
))+X_curseur);
PgDnKey: Avance_Page;
PgUpKey: Recule_Page;
CtrlPgUP: Debut_DU_Fichier;
CtrlPgDn: Fin_DU_Fichier;
F2: begin
P_Save;
if
(Not
_Save_Fichier) and
(NomFic<>'
NONAME.???
'
) Then
begin
Tab[1
].Rtime:=FileDate(Tab[1
].NomR+Tab[1
].NomF);
Tab[1
].PosX:=X_Curseur;
Tab[1
].PosY:=Y_Curseur;
Tab[1
].PageDebut:=Debut_Page;
Tab[1
].Ligne:=Line_Curseur;
Tab[1
].Marque:=Pose_Marque;
end
;
end
;
AltF6: begin
if
(Not
_Save_Fichier) and
(NomFic<>'
NONAME.???
'
) Then
begin
Tab[1
].Rtime:=FileDate(Tab[1
].NomR+Tab[1
].NomF);
Tab[1
].PosX:=X_Curseur;
Tab[1
].PosY:=Y_Curseur;
Tab[1
].PageDebut:=Debut_Page;
Tab[1
].Ligne:=Line_Curseur;
Tab[1
].Marque:=Pose_Marque;
end
;
Change_Fichier_Avan;
end
;
Alt_T: begin
Tri_Block;
Goto
Key_Fin;
end
;
Alt_C: begin
if
(BlockDAF>0
) And
(Copy_Exemples) Then
begin
Open_line;
PutXy(2
,3
,'
Insert
copy
(Y/N)
'
);
Repeat
X_Car:=Readkey;
Until
Upcase(X_Car) in
['
Y
'
,'
N
'
,#
27
];
Close_Line;
if
Upcase(X_Car)='
Y
'
Then
begin
ix:=(Fin_Ligne[Y_Curseur].buf-Fin_ligne[Y_Curseur].ecran)+X_Curseur;
if
ix >= Fin_Buffer Then
begin
Positione_Curseur(Fin_Ligne[Y_Curseur].ecran);
end
;
CopyCopyBlock(BlockDAF);
end
;
end
else
begin
DebutDAF:=0
;
FinDAF:=0
;
BlockDAF:=0
;
Copy_Exemples:=False
;
end
;
Goto
Key_Fin;
end
;
F5: begin
Entree1:=False
;
ix:=1
;X_Car:='
'
;
While
(ix<50
) And
(Not
Entree1) Do
begin
X_Car:=Buffer^[ix];
if
X_Car>#
32
Then
Entree1:=True
;
inc(ix);
end
;
if
X_Car = '
%
'
Then
begin
if
(Lignes__N1+Lignes__N0)<32700
Then
begin
Str(Lignes__N1+Lignes__N0,Sxx1);
Sxx1:='
N
'
+Sxx1+'
'
;
Lignes__N1:=Lignes__N1+Lignes__N0;
if
Sxx1<>'
'
Then
for
ix:=1
To
Length(Sxx1) Do
Inser_Char(Sxx1[ix]);
end
;
end
;
Goto
Key_Fin;
end
;
F6: begin
if
(Max_Block>0
) And
(FinBlock > DebutBlock) And
(FinBlock < Fin_Buffer) And
(DebutBlock>=1
) Then
begin
ReadBuf(20
,CrtGetMaxY-12
,56
,CrtGetMaxY-9
,BuffDir^);
textAttr:=Menu_Color;
BoxFill(20
,CrtGetMaxY-12
,56
,CrtGetMaxY-9
,'
'
);
Box13.Rectangle(20
,CrtGetMaxY-12
,56
,CrtGetMaxY-9
,Simple);
Putxy(23
,CrtGetMaxY-11
,'
Traduction
un
bloc
Anglais
[A]
'
);
Putxy(23
,CrtGetMaxY-10
,'
Traduction
un
bloc
Fran‡ais
[F]
'
);
Repeat
ix:=KeyBoard;
Until
(ix in
[65
,97
,70
,102
,27
]);
textAttr:=Edit_Color;
WriteBuf(20
,CrtGetMaxY-12
,56
,CrtGetMaxY-9
,BuffDir^);
if
ix = 27
Then
Goto
Key_Fin;
Sxx1:=StrFind;
Sxx2:=Remplace;
Cherche_position_de_XY(DebutBlock);
case
ix of
65
,97
: Traduire_Dictionnaire_Un_Bloc_('
A
'
);
70
,102
: Traduire_Dictionnaire_Un_Bloc_('
F
'
);
end
;
Cherche_position_de_XY(DebutBlock);
StrFind:=Sxx1;
Remplace:=Sxx2;
end
;
Goto
Key_Fin;
end
;
F7,F8: begin
Window(1
,1
,80
,CrtGetMaxY);
Sxx1:=StrFind;
Sxx2:=Remplace;
StrFind:=LireMotxx;
Case
KeyChoix of
F8: X_Car:='
F
'
;
F7: X_Car:='
A
'
;
end
;
if
StrFind<>'
'
Then
begin
ix:=E_CurseurX-ix;
Highbox(ix+1
,Y_curseur+3
,ix+Length(StrFind),Y_Curseur+3
,1
);
end
;
if
Y_Curseur>=(CrtGetMaxY-15
) Then
Str20:=SuggestioneDictionaire(36
,1
,X_Car,StrFind)
else
Str20:=SuggestioneDictionaire(36
,CrtGetMaxY-11
,X_Car,StrFind);
if
StrFind<>'
'
Then
Highbox(ix+1
,Y_curseur+3
,ix+Length(StrFind),Y_Curseur+3
,1
);
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetmaxY-1
);
if
(Str20<>'
'
) And
(PoseMot>0
) Then
begin
Remplace:=Str20;
Change_Find:=True
;
Cherche_Position(PoseMot);
Change_Find:=False
;
end
else
if
Str20<>'
'
Then
begin
for
ix:=1
TO
Length(Str20) Do
Inser_Char(Str20[iX]);
end
;
StrFind:=Sxx1;
Remplace:=Sxx2;
ix:=0
;
Goto
Key_Fin;
end
;
F9: begin
Sxx1:=StrFind;
Sxx2:=Remplace;
StrFind:=LireMotxx;
if
StrFind<>'
'
Then
Str20:=StrFind
else
Str20:='
'
;
if
(Str20<>'
'
) Then
begin
Window(1
,1
,80
,CrtGetMaxY);
Recherche_Fic(Repertoire+'
EDNUM\NUMHELP.HLP
'
,Str20);
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetmaxY-1
);
end
;
StrFind:=Sxx1;
Remplace:=Sxx2;
Goto
Key_Fin;
end
;
CtrlF8: begin
X_Car:='
'
;
if
StrCalcul<>'
'
Then
begin
Open_Line;
PutXy(2
,3
,'
Insert
formule
(Y/N)
'
);
Repeat
X_Car:=Readkey;
Until
Upcase(X_Car) in
['
Y
'
,'
N
'
,#
27
];
Close_Line;
end
;
if
(Upcase(X_Car) ='
Y
'
) And
(StrCalcul<>'
'
) Then
begin
Nxx1:=Length(StrCalcul);
for
ix:=1
To
Nxx1 Do
Inser_Char(StrCalcul[ix]);
if
StrResult<>'
'
Then
begin
Inser_Char('
'
);
Inser_Char('
=
'
);
Inser_Char('
'
);
Nxx1:=Length(StrResult);
for
ix:=1
To
Nxx1 Do
Inser_Char(StrResult[ix]);
end
;
end
;
Goto
Key_Fin;
end
;
AltF8: begin
if
(_Save_Fichier) OR
(NomFic='
NONAME.???
'
) Then
begin
textAttr:=Menu_Color;
if
P_New<>69
Then
begin
Entree1:=True
;
end
;
if
(_Save_Fichier) And
(NomFic<>'
'
) And
(NomFic<>'
NONAME.???
'
) Then
begin
Save_Fichier_Disque(Disque_Nom,NomFic);
end
;
textAttr:=Edit_Color;
end
;
if
(_Save_Fichier) And
(NomFic<>'
'
) And
(NomFic<>'
NONAME.???
'
) Then
begin
textAttr:=Menu_Color;
if
P_New<>69
Then
begin
X_Car:='
'
;
end
;
textAttr:=Edit_Color;
end
;
Window(1
,1
,80
,CrtGetMaxY);
SetGraphMode(GetGraphMode);
if
(Not
_Save_Fichier) Then
begin
ix:=1
;X_Car:='
'
;
Entree1:=False
;
While
((ix < Fin_Buffer) And
(ix<100
) And
(Not
Entree1)) Do
begin
X_Car:=Buffer^[ix];
if
X_Car>#
32
Then
Entree1:=True
;
inc(ix);
end
;
if
X_Car = '
%
'
Then
begin
GraPhique_Numeriqe(Disque_Nom,NomFic);
end
else
GraPhique_Numeriqe('
'
,'
'
);
end
else
GraPhique_Numeriqe('
'
,'
'
);
RESTORECRTMODE;
EDIt_ECRAN;
textAttr:=Edit_Color;
if
X_curseur<Max_curseurX Then
E_curseurX:=X_curseur
else
E_curseurX:=Max_curseurX-1
;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Premiere_Page_Debut(Debut_Page);
if
Y_curseur>=Max_curseurY Then
begin
Dec(Line_curseur,Y_curseur-(Max_curseurY-1
));
Y_curseur:=Max_curseurY-1
;
end
;
Change_de_ligne:=True
;
WindowMouse(1
,1
,CrtGetMaxX,CrtGetMaxY);
StyleMouse(2
,14
);
textAttr:=Edit_Color;
Goto
Key_Fin;
end
;
AltF9: begin
if
(_Save_Fichier) OR
(NomFic='
NONAME.???
'
) Then
begin
textAttr:=Menu_Color;
if
P_New<>69
Then
begin
Entree1:=True
;
end
;
if
(_Save_Fichier) And
(NomFic<>'
'
) And
(NomFic<>'
NONAME.???
'
) Then
begin
Save_Fichier_Disque(Disque_Nom,NomFic);
end
;
textAttr:=Edit_Color;
end
;
if
CrtGetMaxY=50
Then
ScreenLine25;
Window(1
,1
,80
,CrtGetMaxY);
SetGraphMode(GetGraphMode);
Voir750;
RESTORECRTMODE;
EDIt_ECRAN;
textAttr:=Edit_Color;
if
X_curseur<Max_curseurX Then
E_curseurX:=X_curseur
else
E_curseurX:=Max_curseurX-1
;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Premiere_Page_Debut(Debut_Page);
if
Y_curseur>=Max_curseurY Then
begin
Dec(Line_curseur,Y_curseur-(Max_curseurY-1
));
Y_curseur:=Max_curseurY-1
;
end
;
Change_de_ligne:=True
;
WindowMouse(1
,1
,CrtGetMaxX,CrtGetMaxY);
StyleMouse(2
,14
);
textAttr:=Edit_Color;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Goto
Key_Fin;
end
;
AltF4: begin
Entree1:=False
;
ix:=1
;X_Car:='
'
;
While
(ix<100
) And
(Not
Entree1) Do
begin
X_Car:=Buffer^[ix];
if
X_Car>#
32
Then
Entree1:=True
;
inc(ix);
end
;
if
X_Car = '
%
'
Then
begin
Mode_Teste_Mesaje:=False
;
ReadBuf(2
,3
,78
,3
,LinePtr^);
textAttr:=Help_Color;
Putxy(2
,3
,'
Teste
programme...
'
);
Texte_Programme_Buffer(1
);
Mode_Teste_Mesaje:=True
;
Str(NbrLignes,Sxx2);
Putxy(2
,3
,'
Line:
'
+Sxx2+'
'
+Error_teste_Str+'
press
any
key.
'
);
textAttr:=Edit_Color;
Beep;
Ix:=Keyboard;
WriteBuf(2
,3
,78
,3
,LinePtr^);
end
;
Goto
Key_Fin;
end
;
CtrlF9: begin
Window(1
,1
,80
,CrtGetMaxY);
Correction_Outils(20
,6
);
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Goto
Key_Fin;
end
;
CtrlF10: begin
Readbuf(3
,7
,78
,11
,BuffDir^);
textAttr:=Menu_Color;
BoxColor(5
,8
,77
,11
,FondBox);
BoxFill(3
,7
,75
,10
,'
'
);
Box13.Rectangle(3
,7
,75
,10
,Simple);
Putxy(34
,7
,'
Evaluate
'
);
Repeat
Entree1:=ReadBox(5
,8
,StrCalcul,68
,140
);
if
(Entree1) and
(StrCalcul<>'
'
) Then
begin
StrResult:=Act(StrCalcul,9
,4
);
Putxy(5
,9
,'
'
);
textAttr:=113
;
Putxy(5
,9
,'
Result:
'
);
if
(Result__Error = 1
) Then
begin
textAttr:=116
;
Putxy(13
,9
,StrResult);
StrResult:='
'
;
end
else
Putxy(13
,9
,StrResult);
textAttr:=Menu_Color;
end
;
Until
(Not
Entree1);
Writebuf(3
,7
,78
,11
,BuffDir^);
textAttr:=Edit_Color;
Goto
Key_Fin;
end
;
CtrlAltF5: begin
textAttr:=Menu_Color;
ReadBuf(19
,5
,60
,8
,BuffDir^);
BoxColor(21
,6
,60
,8
,FondBox);
BoxFill(19
,5
,58
,7
,'
'
);
Box13.Rectangle(19
,5
,58
,7
,Simple);
Putxy(21
,6
,'
Conversion
des
Tabulations
[
Y
/
N
]
'
);
csoff;
Repeat
ix:=KeyBoard;
Until
(not
key_code) And
(ix in
[89
,121
,78
,110
,27
]);
if
(not
key_code) And
(ix in
[89
,121
]) Then
begin
if
Suprime_les_Tab Then
begin
X_curseur:=1
;
E_CurseurX:=1
;
Y_curseur:=1
;
finY:=1
;
Line_Curseur:=1
;
Debut_Page:=1
;
Fin_Page :=1
;
DebutBlock :=0
;
FinBlock :=0
;
Max_Block:=0
;
WriteBuf(19
,5
,60
,8
,BuffDir^);
textAttr:=Edit_Color;
if
Buffer^[1
]<>#
26
Then
Control_Longueur_DE_Lignes(1
,Fin_Buffer);
Premiere_Page_Debut(Debut_Page);
_Save_Fichier:=True
;
Write
(#
7
);
textAttr:=Menu_Color;
BoxFill(19
,5
,58
,7
,'
'
);
Box13.Rectangle(19
,5
,58
,7
,Simple);
Putxy(21
,6
,'
WARNING:
'
);
Str(((Max_Buffer-512
)-Fin_Buffer):5
,Sxx1);
Putxy(29
,6
,Sxx1+'
byte(s)
left
'
);
textAttr:=Edit_Color;
csoff;
ix:=keyboard;
end
else
begin
BoxFill(19
,5
,58
,7
,'
'
);
Box13.Rectangle(19
,5
,58
,7
,Simple);
Putxy(21
,6
,'
Tabulations
nulles.
press
key
[ESC]
'
);
csoff;
ix:=keyboard;
end
;
end
;
WriteBuf(19
,5
,60
,8
,BuffDir^);
textAttr:=Edit_Color;
Goto
Key_Fin;
end
;
AltF7: begin
if
(_Save_Fichier) OR
(NomFic='
NONAME.???
'
) Then
begin
textAttr:=Menu_Color;
if
P_New<>69
Then
begin
Entree1:=True
;
end
;
if
(_Save_Fichier) And
(NomFic<>'
'
) And
(NomFic<>'
NONAME.???
'
) Then
begin
Save_Fichier_Disque(Disque_Nom,NomFic);
end
;
textAttr:=Edit_Color;
end
;
Window(1
,1
,80
,CrtGetMaxY);
if
CrtGetMaxY=50
Then
ScreenLine25;
Calculator;
EDIt_ECRAN;
textAttr:=Edit_Color;
if
X_curseur<Max_curseurX Then
E_curseurX:=X_curseur
else
E_curseurX:=Max_curseurX-1
;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Premiere_Page_Debut(Debut_Page);
if
Y_curseur>=Max_curseurY Then
begin
Dec(Line_curseur,Y_curseur-(Max_curseurY-1
));
Y_curseur:=Max_curseurY-1
;
end
;
Change_de_ligne:=True
;
WindowMouse(1
,1
,CrtGetMaxX,CrtGetMaxY);
StyleMouse(2
,14
);
textAttr:=Edit_Color;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Goto
Key_Fin;
end
;
CtrlF4: begin
if
(Sauvegarde='
OUI
'
) Then
begin
if
(_Save_Fichier) And
(NomFic<>'
'
) And
(NomFic<>'
NONAME.???
'
) Then
begin
Save_Fichier_Disque(Disque_Nom,NomFic);
end
;
end
;
Window(1
,1
,80
,CrtGetMaxY);
SetGraphMode(GetGraphMode);
Metre_un_Veille;
RESTORECRTMODE;
EDIt_ECRAN;
textAttr:=Edit_Color;
if
X_curseur<Max_curseurX Then
E_curseurX:=X_curseur
else
E_curseurX:=Max_curseurX-1
;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Premiere_Page_Debut(Debut_Page);
if
Y_curseur>=Max_curseurY Then
begin
Dec(Line_curseur,Y_curseur-(Max_curseurY-1
));
Y_curseur:=Max_curseurY-1
;
end
;
Change_de_ligne:=True
;
WindowMouse(1
,1
,80
,CrtGetMaxY);
StyleMouse(2
,14
);
textAttr:=Edit_Color;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Goto
Key_Fin;
end
;
AltX: begin
if
_Save_Fichier Then
begin
textAttr:=Menu_Color;
if
P_New = 69
Then
Fin_programme:=True
;
textAttr:=Edit_Color;
end
else
Fin_Programme:=True
;
end
;
end
;
Key_Fin:
Until
(KeyChoix = F10) OR
(KeyChoix= F3) OR
(Fin_programme) OR
(KeyChoix=Alt_F) OR
(KeyChoix=Alt_L) OR
(KeyChoix=Alt_E) OR
(KeyChoix=Alt_O) OR
(KeyChoix=AltF3) OR
(KeyChoix=Alt_G) OR
(KeyChoix=Alt_M);
textAttr:=Menu_Color;
Window(1
,1
,80
,CrtGetMaxY);
if
KeyChoix = F10 Then
begin
Appel_Menu(Retur0);
end
else
if
KeyChoix = F3 Then
begin
Retur1:=61
;
Appel_Menu(1
);
end
else
begin
Case
KeyChoix Of
Alt_F: Appel_Menu(1
);
Alt_L: Appel_Menu(4
);
Alt_E: Appel_Menu(2
);
Alt_O: Appel_Menu(3
);
Alt_G: Appel_Menu(5
);
Alt_M: Appel_Menu(6
);
AltF3: begin
Retur1:=106
;
Appel_Menu(1
);
end
;
end
;
end
;
Until
Fin_Programme;
textAttr:=7
;
ClearBufKey;
Clrscr;
if
(Not
_Save_Fichier) And
(CrtGetMaxY=25
) Then
begin
if
(NomFic=Tab[1
].NomF) And
(Disque_Nom=Tab[1
].NomR) And
(NomFic<>'
NONAME.???
'
) Then
begin
Tab[1
].Rtime:=FileDate(Tab[1
].NomR+Tab[1
].NomF);
Tab[1
].PosX:=X_Curseur;
Tab[1
].PosY:=Y_Curseur;
Tab[1
].PageDebut:=Debut_Page;
Tab[1
].Ligne:=Line_Curseur;
Tab[1
].Marque:=Pose_Marque;
end
;
end
;
end
;
Procedure
Init_Pick_Mode(mode:byte
);
Label
ErrorFin;
Var
RR : Reg_Pick;
i : byte
;
Sn : string
[20
];
Attr: Word
;
Err: integer
;
f : File
;
begin
Assign(f,Repertoire+'
EDNUM\EDNUM.PCK
'
);
GetFattr(f,Attr);
if
(DosError=0
) And
(Attr And
$
01
= $
01
) Then
begin
SetFattr(f,$
20
);
Erreur1:=DosError;
end
;
Assign(f,Repertoire+'
EDNUM\EDNUM.PCK
'
);
GetFattr(f,Attr);
if
(DosError=0
) And
(Attr And
$
01
= $
01
) Then
begin
SetFattr(f,$
20
);
end
;
if
Mode=1
Then
begin
Assign(Libre10,Repertoire+'
EDNUM\EDNUM.PCK
'
);
Reset(Libre10);
Erreur1:=IoResult;
if
Erreur1=0
Then
begin
Max_Pick:=0
;
i:=1
;
While
Not
Eof(Libre10) DO
begin
Read
(Libre10,RR);
Erreur1:=Ioresult;
if
Erreur1<>0
Then
begin
Close(Libre10);
Init_Pick;
Goto
ErrorFin;
end
;
if
i<=10
Then
begin
if
RR.NomF<>'
'
Then
inc(Max_Pick);
Tab[i]:=RR;
end
else
if
i=11
Then
begin
end
else
if
i=12
Then
begin
end
else
if
i=13
Then
begin
Nom_Help:=RR.NomF;
Disque_help:=RR.NomR;
end
else
if
i=14
Then
begin
Langage:=RR.NomF;
Extension:=RR.NomR;
end
;
if
i=15
Then
begin
Dic_Nom8:=RR.NomF;
end
;
if
(i=16
) And
(Max_Block>0
) Then
begin
end
;
if
i=17
Then
begin
if
RR.NomF='
486
'
Then
Ordinateur486:=True
else
Ordinateur486:=False
;
Sauvegarde:=RR.NomR;
end
;
if
i=18
Then
begin
StrCalcul:=RR.NomR;
Val(RR.NomF,Nxx1,Err);
if
(Err=0
) Then
begin
Veille:=Nxx1;
end
else
Veille:=10
;
end
;
if
i=19
Then
begin
Calculatrice_S2:=RR.nomF;
Val(RR.NomR,Calculatrice_Total,Err);
if
(Err<>0
) Then
begin
Calculatrice_Total:=0
;
end
;
end
;
if
i=20
Then
begin
Calculatrice_S3:=RR.nomF;
Val(RR.NomR,Calculatrice_TotalM,Err);
if
(Err<>0
) Then
begin
Calculatrice_TotalM:=0
;
end
;
end
;
if
i=21
Then
begin
Dic_Nom7:=RR.nomF;
Dic_Nom8:=RR.nomR;
end
;
inc(i);
end
;
Close(Libre10);
end
else
Goto
ErrorFin;
end
else
if
Mode = 0
Then
begin
Assign(Libre10,Repertoire+'
EDNUM\EDNUM.PCK
'
);
ReWrite(Libre10);
Erreur1:=IoResult;
if
Erreur1 = 0
Then
begin
for
i:=1
TO
10
DO
begin
RR:=Tab[i];
Write
(Libre10,RR);
Erreur1:=IOresult;
if
Erreur1<>0
Then
begin
Close(Libre10);
Goto
ErrorFin;
end
;
end
;
RR.posX:=0
;
RR.posY:=0
;
RR.pageDebut:=0
;
RR.Ligne:=0
;
RR.RTime:=0
;
RR.NomF:='
'
;
RR.NomR:='
'
;
Write
(Libre10,RR);
RR.NomF:='
'
;
RR.NomR:='
'
;
Write
(Libre10,RR);
RR.NomF:=Nom_help;
RR.NomR:=Disque_Help;
Write
(Libre10,RR);
RR.NomF:=Langage;
RR.NomR:=Extension;
Write
(Libre10,RR);
RR.NomF:=Dic_nom8;
RR.NomR:='
'
;
Write
(Libre10,RR);
RR.NomF:='
'
;
RR.NomR:='
'
;
Write
(Libre10,RR);
if
Ordinateur486 Then
RR.NomF:='
486
'
else
RR.NomF:='
386
'
;
RR.NomR:=Sauvegarde;
Write
(Libre10,RR);
Str(Veille,Sn);
RR.nomF:=Sn;
RR.NomR:=StrCalcul;
Write
(Libre10,RR);
RR.nomF := Calculatrice_S2;
Str(Calculatrice_Total:9
:3
,Sn);
RR.nomR := Sn;
Write
(Libre10,RR);
RR.nomF := Calculatrice_S3;
Str(Calculatrice_TotalM:10
:3
,Sn);
RR.nomR := Sn;
Write
(Libre10,RR);
RR.nomF :=Dic_Nom7;
RR.nomR :=Dic_Nom8;
Write
(Libre10,RR);
Erreur1:=Ioresult;
if
Erreur1<> 0
Then
begin
Close(Libre10);
Goto
ErrorFin;
end
;
Close(Libre10);
end
;
end
;
ErrorFin:
end
;
Function
Examine_DEcode(NomA,NomB:string
):boolean
;
Var
Nom1 : string
;
i : byte
;
car : Char
;
begin
Nom1:='
'
;
for
i:=1
To
Length(NomA) DO
begin
Car:=NomA[i];
if
Car=chr(33
) Then
Nom1:=Nom1+'
'
else
Nom1:=Nom1+Chr(Ord(Car)+10
);
end
;
if
Nom1<>NomB Then
Examine_DEcode:=False
else
Examine_DEcode:=True
;
end
;
Procedure
Execute_File;
Var
Entree : boolean
;
Snom,Sreper: string
;
begin
SNom:='
'
;Sreper:='
'
;
Entree:=False
;
if
ParamStr(1
)<>'
'
Then
begin
Snom:=ParamStr(1
);
Entree:=Verify_Rep_Fic(Sreper,Snom);
end
;
if
(Entree) And
(FileExists(Sreper,Snom)) Then
begin
Disque_Nom:=Sreper;
NomFic:=Snom;
textAttr:=Edit_Color;
Initialiser;
BoxFill(2
,4
,79
,CrtGetMaxY-1
,'
'
);
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Load_Fichier_Disque(Disque_Nom,NomFic);
if
(NomFic<>'
NONAME.???
'
) And
(NomFic<>'
'
) Then
begin
Reinit_Pick(Disque_Nom,NomFic);
if
X_curseur<Max_curseurX Then
E_curseurX:=X_curseur
else
E_curseurX:=Max_curseurX-1
;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Premiere_Page_Debut(Debut_Page);
end
;
Window(1
,1
,80
,CrtGetMaxY);
end
else
if
(Tab[1
].NomF<>'
NONAME.???
'
) And
(Tab[1
].NomF<>'
'
) And
(FileExists(Tab[1
].NomR,Tab[1
].NomF)) Then
begin
textAttr:=Edit_Color;
Initialiser;
BoxFill(2
,4
,79
,CrtGetMaxY-1
,'
'
);
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
NomFic:=Tab[1
].NomF;
Disque_Nom:=Tab[1
].NomR;
Load_Fichier_Disque(Disque_Nom,NomFic);
if
(NomFic<>'
NONAME.???
'
) And
(NomFic<>'
'
) Then
begin
if
Tab[1
].Rtime = FileDate(Tab[1
].NomR+Tab[1
].NomF) Then
begin
if
(Tab[1
].PageDebut < Fin_Buffer) And
(Tab[1
].PageDebut> 0
) then
begin
Debut_Page:=Tab[1
].PageDebut;
CurseurDebutX:=Tab[1
].posX;
Y_Curseur:=Tab[1
].posY;
X_curseur:=1
;E_curseurX:=1
;
Line_Curseur:=Tab[1
].Ligne;
Pose_Marque:=Tab[1
].marque;
end
else
begin
Debut_Page:=1
;
Tab[1
].PageDebut:=1
;
CurseurDebutX:=1
;
Tab[1
].posX:=1
;
Y_Curseur:=1
;
Tab[1
].posY:=1
;
X_curseur:=1
;E_curseurX:=1
;
Line_Curseur:=1
;
Tab[1
].Ligne:=1
;
Pose_Marque[1
]:=0
;
Pose_Marque[2
]:=0
;
Pose_Marque[3
]:=0
;
Pose_Marque[4
]:=0
;
end
;
Window(1
,1
,80
,CrtGetMaxY);
Window(2
,4
,79
,CrtGetMaxY-1
);
Premiere_Page_Debut(Debut_Page);
Window(1
,1
,80
,CrtGetMaxY);
end
else
begin
Debut_Page:=1
;
X_curseur:=1
;
E_curseurX:=1
;
CurseurDebutX:=1
;
Y_Curseur:=1
;
Line_Curseur:=1
;
Pose_Marque[1
]:=0
;
Pose_Marque[2
]:=0
;
Pose_Marque[3
]:=0
;
Pose_Marque[4
]:=0
;
Window(1
,1
,80
,CrtGetMaxY);
end
;
end
;
end
else
begin
Initialiser;
NomFic:='
NONAME.???
'
;
Window(1
,1
,80
,CrtGetMaxY);
end
;
end
;
Function
Erreur_Tas(Size:Word
): integer
;
begin
Erreur_Tas:=1
;
if
Stop Then
begin
Window(1
,1
,80
,CrtGetMaxY);
Clrscr;
Writeln('
Error:
Pas
asez
de
Memoire
vive.
'
);
Writeln('
Liberer
la
memoire
ou
retirer
les
les
programmes
r‚sidents.
'
);
Writeln('
press
any
key.
'
);
ix:=KeyBoard;
Clrscr;
Release(HeapOrg);
Halt(1
);
end
else
begin
if
Erreur_Critique(300
,'
'
) Then
begin
end
;
end
;
end
;
begin
HeapError:=@Erreur_Tas;
GetDir(0
,Disq);
if
Disq[length(Disq)]<>'
\
'
Then
Repertoire:=Disq+'
\
'
else
Repertoire:=Disq;
Repertoire:='
'
;
Titres_Color := 120
;
Menu_Color := 112
;
Dir_Color := 112
;
Etat_Color := 23
;
Edit_Color := 30
;
Error_Color := 52
;
Etat_Color := 22
;
Help_Color := 120
;
BX := 3
;
Block_Color := 120
;
Marque_Color := 56
;
Char_Color := 4
;
Stop:=True
;
if
InitMouse Then
begin
Writeln('
Mouse
active..
'
);
end
else
begin
textAttr:=7
;
Clrscr;
Gotoxy(1
,2
);
Writeln('
Not
Mouse
activate,
Stop
programme.
'
);
Writeln('
Si
votre
fichier
CONFIG.SYS
ne
comporte
pas
l
'
'
instruction
suivante,
'
);
Writeln('
DEVICE=C:\MOUSE\MOUSE.SYS
-
ajoutez-la.
'
);
Writeln('
Ou
alors
sur:
Autoexec.bat
->
C:\Mouse\mouse.exe
-
ajoutez-la.
'
);
Writeln('
press
any
key.
'
);
ix:=KeyBoard;
Goto
ErreurFin;
end
;
InitGraphique;
Calculatrice_Total :=0
;
Calculatrice_TotalM:=0
;
Calculatrice_S2 :='
'
;
Calculatrice_S3 :='
'
;
ReturCNC:=7
;
StrFind:='
'
;
Remplace:='
'
;
Options_Remplace:='
u
'
;
Extension:='
.NUM
'
;
Lignes__N1:=10
;
Lignes__N0:=10
;
StrCalcul:='
'
;
StrResult:='
'
;
Find_Valeur:=0
;
Fin_Programme:=False
;
Copy__Buffer:=Nil
;
CurseurDebutX:=1
;
X_Curseur:=1
;
E_curseurX:=1
;
Y_curseur:=1
;
Debut_Page:=1
;
Line_Curseur:=1
;
Fin_Buffer:=0
;
GetDir(0
,Disq);
Disque_2:=Disq[1
]+Disq[2
];
if
Disq[length(Disq)]<>'
\
'
Then
Repertoire:=Disq+'
\
'
else
Repertoire:=Disq;
Texte_Dire:='
*.*
'
;
Disque_Dire:=Repertoire;
Repertoire:=Repertoire;
Disque_Nom:=Repertoire;
BlockNeime:='
'
;
BlockRepe:=Repertoire;
NeimeAttr:='
*.*
'
;
ReperAttr:=Repertoire;
Rep_Fic:=Repertoire;
Rep_Hlp:=Repertoire;
nom_ini:=Repertoire+'
Maths.INI
'
;
AideClavierNum750:=Repertoire+'
EDNUM\Keys750.HLP
'
;
Dic_nom2:=Repertoire+'
EDNUM\1FraAng2.Idx
'
;
Dic_nom3:=Repertoire+'
EDNUM\2AngFra1.idx
'
;
Dic_nom1:=Repertoire+'
EDNUM\FranAngl.Dic
'
;
Dic_nom4:=Repertoire+'
EDNUM\Inconu.Dic
'
;
Dic_nom8:=Repertoire+'
EDNUM\ED_Notes.Fic
'
;
Dic_nom7:=Repertoire+'
EDNUM\ED_Phras.fic
'
;
if
Repertoire[length(Repertoire)]<>'
\
'
Then
Disque_Help:=Repertoire+'
\Help.Lag\
'
else
Disque_Help:=Repertoire+'
Help.Lag\
'
;
Init_PicK;
SuppBlock:=False
;
CopierBlock:=False
;
Marque_bloc:=False
;
if
MaxAvail< SizeOF(ScreenPageXX) Then
Goto
ErreurFin;
GetMem(ScreenPage,SizeOf(ScreenPageXX));
GetMem(Buffer,Max_Buffer+512
);
FillChar(Buffer^,Max_Buffer+512
,'
'
);
Buffer^[1
]:=^Z;
GetMem(Copy__Buffer,Max_Buffer_Copy+512
);
FillChar(Copy__Buffer^,Max_Buffer_Copy+512
,'
'
);
Copy__Buffer^[1
]:=^Z;
GetMem(CopyLigne,Max_curseurX+3
);
Size_Sub_buf:= CrtSize(1
,1
,80
,4
);
GetMem(Sub_Buf,Size_Sub_Buf);
SizeLinePtr:= CrtSize(1
,1
,Max_CurseurX+2
,1
);
GetMem(LinePtr,SizelinePtr);
SizeDir:= CrtSize(30
,3
,79
,24
);
GetMem(BuffDir,SizeDir);
Init_Color(Repertoire+'
EDNUM\EDNUM.INI
'
);
Init_Pick_Mode(1
);
Init_Outils(1
);
Ordinateur486:=True
;
if
Ordinateur486 Then
begin
DelayPose:=100
;
Opertion_Tempo:=30000
;
Messages_Tempo:=32000
;
TempoOk:=300
;
Tempo:=5000
;;
DelayPon:=31000
;
DelayMouse:=2000
;
Tempo__Mouse:=Round(DelayMouse)+200
;
end
else
begin
DelayPose:=100
;
Opertion_Tempo:=8000
;
Messages_Tempo:=32000
;
TempoOK:=100
;
Tempo:=80
;
DelayPon:=31000
;
DelayMouse:=1500
;
Tempo__Mouse:=Round(DelayMouse)+200
;
end
;
Nom_Help:='
*.Hlp
'
;
TexteLoad:='
*
'
+extension;
NomFic:='
NONAME.???
'
;
Clrscr;
debut_program;
Initialiser;
FondBox:=Edit_Color-(((Edit_Color And
$
70
) shr
4
) * 16
);
Fond__Box:=FondBox;
Affiche_Menu;
Modif_Ligne:=False
;
change_de_ligne:=True
;
Execute_File;
positione_Curseur(CurseurDebutX);
Copy_Exemples:=False
;
Stop:=False
;
if
(Sauvegarde<>'
OUI
'
) And
(Sauvegarde<>'
NON
'
) Then
Sauvegarde:='
OUI
'
;
textAttr:=Edit_Color;
StyleMouse(2
,14
);
Help_Color:=Menu_Color;
BX:=7
;
P_Edit;
textAttr:=7
;
Clrscr;
Init_Pick_Mode(0
);
Init_Outils(0
);
ErreurFin:
Window(1
,1
,80
,CrtGetMaxY);
if
CrtGetMaxY=50
Then
ScreenLine25;
CloseGraph;
Window(1
,1
,80
,CrtGetMaxY);
Release(HeapOrg);
textAttr:=7
;
Clrscr;
Halt(1
);
end
.