First upload of the code.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@3 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2007-04-14 20:19:08 +00:00
parent 306a004e36
commit fb7887f535
11 changed files with 18570 additions and 0 deletions

3943
Anciens fichiers/divers.asm Normal file

File diff suppressed because it is too large Load Diff

4000
Anciens fichiers/oper_bak.c Normal file

File diff suppressed because it is too large Load Diff

202
Anciens fichiers/vesahigh.c Normal file
View File

@ -0,0 +1,202 @@
#include <string.h>
#include "vesalfb.h"
// - -- --- ----\/\ Detection du support VESA sur la machine: /\/---- --- -- -
void Support_VESA(void)
{
struct S_Buffer_VESA Buffer_VESA;
word Retour;
VESA_Erreur=0;
// Lecture des infos du VESA:
Retour=Get_VESA_info(&Buffer_VESA);
if (Retour==0x004F)
{
// Les interruptions VESA sont interprˆtes par la carte vido
if (memcmp(Buffer_VESA.Signature,"VESA",4)==0)
{
// La signature "VESA" est bien prsente
VESA_Liste_des_modes =Buffer_VESA.Liste_des_modes;
VESA_Version_Unite =(Buffer_VESA.Version >> 8);
VESA_Version_Decimale=(Buffer_VESA.Version & 0xFF);
strncpy(VESA_Constructeur,Buffer_VESA.Fabricant,TAILLE_NOM_CONSTRUCTEUR);
VESA_Constructeur[TAILLE_NOM_CONSTRUCTEUR]='\0';
VESA_Taille_memoire =Buffer_VESA.Memoire;
}
else
{
// Pas de signature VESA sur la carte
VESA_Erreur=1;
}
}
else
{
// La carte vido n'a jamais entendu parler du VESA
VESA_Erreur=1;
}
}
// - -- --- -----\/\ Detection du support VESA pour un mode: /\/----- --- -- -
void Mode_VESA_supporte(word Mode,int Indice_mode)
{
struct S_Buffer_VESA Buffer_VESA;
struct S_Buffer_mode_VESA Buffer_mode_VESA;
word Retour;
int Code_fenetres=0;
int Granularite=0;
int Indice;
int Taille;
VESA_Erreur=0;
/*
On va commencer par regarder si le mode n'est pas dans la liste de ceux
supports par la carte. Pour cela, il nous faut redemander cette liste
car certaines cartes la "perdent" d'un appel sur l'autre.
*/
// Lecture des infos du VESA:
Retour=Get_VESA_info(&Buffer_VESA);
if (Retour==0x004F)
{
// Les interruptions VESA sont interprˆtes par la carte vido
Taille=65536L*(int)Buffer_VESA.Memoire;
// On regarde si le mode se trouve dans la liste
for (Indice=0;Buffer_VESA.Liste_des_modes[Indice]!=0xFFFF;Indice++)
if (Buffer_VESA.Liste_des_modes[Indice]==Mode)
break;
if (Buffer_VESA.Liste_des_modes[Indice]==Mode)
{
// Le mode est dans la liste
// Lecture des infos du mode VESA:
Retour=Get_VESA_mode_info(Mode,&Buffer_mode_VESA);
if (Retour==0x004F)
{
if ((Buffer_mode_VESA.Attributs & 1)==0)
VESA_Erreur=1;
// On calcule le facteur de granularit:
switch(Buffer_mode_VESA.Granularite)
{
case 64 :
Granularite=0;
break;
case 32 :
Granularite=1;
break;
case 16 :
Granularite=2;
break;
case 8 :
Granularite=3;
break;
case 4 :
Granularite=4;
break;
case 2 :
Granularite=5;
break;
case 1 :
Granularite=6;
break;
default :
VESA_Erreur=1;
};
// On calcule le code des fenˆtres:
// 0 = Lecture & criture dans A
// 1 = Lecture & criture dans B
// 2 = Lecture dans A et criture dans B
// 3 = Lecture dans B et criture dans A
if ((Buffer_mode_VESA.Attributs_fenetre_A & 7)==7)
// La fenˆtre A suffit … tout faire (lecture & criture)
Code_fenetres=0;
else
{
if ((Buffer_mode_VESA.Attributs_fenetre_B & 7)==7)
// La fenˆtre B suffit … tout faire (lecture & criture)
Code_fenetres=1;
else
{
// La fenˆtre B ne suffira pas … tout faire
if ( ((Buffer_mode_VESA.Attributs_fenetre_A & 3)==3) &&
((Buffer_mode_VESA.Attributs_fenetre_B & 5)==5) )
// La fenˆtre A est lisible et la fenˆtre B inscriptible
Code_fenetres=2;
else
{
if ( ((Buffer_mode_VESA.Attributs_fenetre_B & 3)==3) &&
((Buffer_mode_VESA.Attributs_fenetre_A & 5)==5) )
// La fenˆtre B est lisible et la fenˆtre A inscriptible
Code_fenetres=3;
else
VESA_Erreur=1;
}
}
}
// On vrifie que la taille des fenˆtres soit bien de 64Ko:
if (Buffer_mode_VESA.Taille_fenetres!=64)
VESA_Erreur=1;
if ( (VESA_Erreur==0) ||
((Buffer_mode_VESA.Attributs & 128) &&
(Buffer_mode_VESA.Adresse_LFB!=0)) )
{
VESA_Erreur=0;
VESA_Mode_Infos[Indice_mode].Granularite=Granularite;
VESA_Mode_Infos[Indice_mode].Code_fenetres=Code_fenetres;
Get_VESA_protected_mode_WinFuncPtr();
VESA_Mode_Infos[Indice_mode].WinFuncPtr=VESA_WinFuncPtr;
if (Buffer_mode_VESA.Attributs & 128)
{
// LFB support
VESA_Mode_Infos[Indice_mode].Adresse_physique_LFB=Buffer_mode_VESA.Adresse_LFB;
VESA_Mode_Infos[Indice_mode].Taille_LFB=Taille;
}
else
VESA_Mode_Infos[Indice_mode].Adresse_physique_LFB=0;
}
}
else
{
// Le mode est renseign dans la liste mais n'est pas support
VESA_Erreur=1;
}
}
else
{
// Le mode n'est pas dans la liste
VESA_Erreur=1;
}
}
else
{
// La carte vido n'a jamais entendu parler du VESA
VESA_Erreur=1;
}
// Si le mode n'est pas support, on disable les modes vidos bass sur
// ce mode VESA:
if (VESA_Erreur!=0)
for (Indice=0;Indice<NB_MODES_VIDEO;Indice++)
if (Mode_video[Indice].Mode_VESA_de_base==Mode)
Mode_video[Indice].Etat+=128;
}

2301
Anciens fichiers/vesalfb.asm Normal file

File diff suppressed because it is too large Load Diff

113
Anciens fichiers/vesalfb.h Normal file
View File

@ -0,0 +1,113 @@
#ifndef _VESALFB_H_
#define _VESALFB_H_
#include "struct.h"
#include "global.h"
struct S_Buffer_VESA
{
// VESA 1.0
char Signature[4]; // = 'VESA'
word Version; // Nø de version
char * Fabricant; // Nom du fabricant
dword Capacite; // Bits de capacit du DAC
word * Liste_des_modes; // Liste des modes vidos supports par le VESA
word Memoire; // Taille de la mmoire en blocs de 64K
// VESA 2.0
word Version_bios; // Version du BIOS du fabricant
char * Vendeur; // Nom du vendeur
char * Produit; // Nom du produit
char * Revision; // Nom de la rvision
// Filler
byte Filler[990]; // Reserv
};
struct S_Buffer_mode_VESA
{
// VESA 1.0
word Attributs; // Attributs du mode (00h)
byte Attributs_fenetre_A; // Attributs de la fenˆtre A (02h)
byte Attributs_fenetre_B; // Attributs de la fenˆtre B (03h)
word Granularite; // Granularit des fenˆtres en Ko (04h)
word Taille_fenetres; // Taille des fenˆtres en Ko (06h)
word Segment_fenetre_A; // Segment de la fenˆtre A (08h)
word Segment_fenetre_B; // Segment de la fenˆtre B (0Ah)
byte * WinFuncPtr; // Fonction d'AX=4F05 en mode rel(0Ch)
word Octets_par_ligne; // Nombre d'octets par ligne (10h)
// Optionnels ou OEM
word Largeur; // Largeur en pixels (12h)
word Hauteur; // Hauteur en pixels (14h)
byte Largeur_de_char; // Largeur des caractŠres en pxls (16h)
byte Hauteur_de_char; // Hauteur des caractŠres en pxls (17h)
byte Nb_plans; // Nombre de plans de mmoire (18h)
byte Nb_bits_par_pixel; // Nombre de bits par pixel (19h)
byte Nb_banques; // Nombre de banques (1Ah)
byte Modele_de_memoire; // ModŠle de mmoire (1Bh)
byte Taille_des_banques; // Taille des banques en Ko (1Ch)
byte Nombre_de_pages; // Nombre de pages d'image (1Dh)
byte Reserve; // Reserv (=1) (1Eh)
// VESA 1.2
byte Taille_masque_rouge; // Taille du masque des rouges (1Fh)
byte Pos_masque_rouge; // Position du masque des rouges (20h)
byte Taille_masque_vert; // Taille du masque des verts (21h)
byte Pos_masque_vert; // Position du masque des verts (22h)
byte Taille_masque_bleu; // Taille du masque des bleus (23h)
byte Pos_masque_bleu; // Position du masque des bleus (24h)
byte Taille_masque_res; // Taille d'un masque reserv (25h)
byte Pos_masque_res; // Position d'un masque reserv (26h)
byte Direct_screen_mode; // Direct screen mode info (27h)
// VESA 2.0
byte * Adresse_LFB; // Adresse du LFB (28h)
byte * Adresse_offscreen; // Pointeur vers le dbut de la mmoire offscreen (2Ch)
word Taille_offscreen; // Taille de la mmoire offscreen en Ko (30h)
// Filler
byte Filler[206];
};
extern word LFB_Selecteur; // Slecteur utilis par le mapping du LFB
extern word LFB_Adresse; // Adresse o— est mappe le LFB
extern word LFB_Taille; // Taille de la mmoire LFB
word Get_VESA_info ( struct S_Buffer_VESA * Buffer_VESA);
word Get_VESA_mode_info(word Mode, struct S_Buffer_mode_VESA * Buffer_mode_VESA);
void Get_VESA_protected_mode_WinFuncPtr(void);
word Set_VESA_mode(word Mode);
word Initialiser_le_LFB(byte * Adresse_physique,dword Taille);
word Fermer_le_LFB(void);
void Pixel_VESA_LFB (word X,word Y,byte Couleur);
byte Lit_pixel_VESA_LFB (word X,word Y);
void Effacer_tout_l_ecran_VESA_LFB (byte Couleur);
void Block_VESA_LFB (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur);
void Pixel_Preview_Normal_VESA_LFB (word X,word Y,byte Couleur);
void Pixel_Preview_Loupe_VESA_LFB (word X,word Y,byte Couleur);
void Ligne_horizontale_XOR_VESA_LFB(word Pos_X,word Pos_Y,word Largeur);
void Ligne_verticale_XOR_VESA_LFB (word Pos_X,word Pos_Y,word Hauteur);
void Display_brush_Color_VESA_LFB (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_brosse);
void Display_brush_Mono_VESA_LFB (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse);
void Clear_brush_VESA_LFB (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_image);
void Remap_screen_VESA_LFB (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Table_de_conversion);
void Afficher_partie_de_l_ecran_VESA_LFB (word Largeur,word Hauteur,word Largeur_image);
void Afficher_une_ligne_a_l_ecran_VESA_LFB (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Lire_une_ligne_a_l_ecran_VESA_LFB (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Afficher_partie_de_l_ecran_zoomee_VESA_LFB(word Largeur,word Hauteur,word Largeur_image,byte * Buffer);
void Display_brush_Color_Zoom_VESA_LFB(word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_brosse,byte * Buffer);
void Display_brush_Mono_Zoom_VESA_LFB (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse,byte * Buffer);
void Clear_brush_Zoom_VESA_LFB (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_image,byte * Buffer);
#endif

6903
Anciens fichiers/video.asm Normal file

File diff suppressed because it is too large Load Diff

90
Anciens fichiers/video.h Normal file
View File

@ -0,0 +1,90 @@
#include "struct.h"
// -- Headers des fonctions MCGA --
void Set_mode_MCGA (void);
void Pixel_MCGA (word X,word Y,byte Couleur);
byte Lit_pixel_MCGA (word X,word Y);
void Effacer_tout_l_ecran_MCGA (byte Couleur);
void Block_MCGA (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur);
void Pixel_Preview_Normal_MCGA (word X,word Y,byte Couleur);
void Pixel_Preview_Loupe_MCGA (word X,word Y,byte Couleur);
void Ligne_horizontale_XOR_MCGA(word Pos_X,word Pos_Y,word Largeur);
void Ligne_verticale_XOR_MCGA (word Pos_X,word Pos_Y,word Hauteur);
void Display_brush_Color_MCGA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_brosse);
void Display_brush_Mono_MCGA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse);
void Clear_brush_MCGA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_image);
void Remap_screen_MCGA (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Table_de_conversion);
// -- Headers des fonctions Mode X --
void Set_mode_X (void);
void Pixel_mode_X (word X,word Y,byte Couleur);
byte Lit_pixel_mode_X (word X,word Y);
void Effacer_tout_l_ecran_mode_X (byte Couleur);
void Block_mode_X (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur);
void Pixel_Preview_Normal_mode_X (word X,word Y,byte Couleur);
void Pixel_Preview_Loupe_mode_X (word X,word Y,byte Couleur);
void Ligne_horizontale_XOR_mode_X(word Pos_X,word Pos_Y,word Largeur);
void Ligne_verticale_XOR_mode_X (word Pos_X,word Pos_Y,word Hauteur);
void Display_brush_Color_mode_X(word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_brosse);
void Display_brush_Mono_mode_X (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse);
void Clear_brush_mode_X (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_image);
void Remap_screen_mode_X (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Table_de_conversion);
// -- Headers des fonctions VESA --
void VESA_Change_banque_Fenetre_A(void);
void VESA_Change_banque_Fenetre_B(void);
void VESA_Change_banque_Fenetre_A_et_B(void);
void VESA_Change_banque_Fenetre_A_FAST(void);
void VESA_Change_banque_Fenetre_B_FAST(void);
void VESA_Change_banque_Fenetre_A_et_B_FAST(void);
//void Support_VESA(void);
//void Mode_VESA_supporte(word Mode);
byte Initialiser_mode_video_VESA(word Mode);
void Retoucher_CRTC(void);
void Pixel_VESA(word X,word Y,byte Couleur);
byte Lit_pixel_VESA(word X,word Y);
void Effacer_tout_l_ecran_VESA(byte Couleur);
void Block_VESA(word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur);
void Pixel_Preview_Normal_VESA (word X,word Y,byte Couleur);
void Pixel_Preview_Loupe_VESA (word X,word Y,byte Couleur);
void Ligne_horizontale_XOR_VESA(word Pos_X,word Pos_Y,word Largeur);
void Ligne_verticale_XOR_VESA (word Pos_X,word Pos_Y,word Hauteur);
void Display_brush_Color_VESA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_brosse);
void Display_brush_Mono_VESA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse);
void Clear_brush_VESA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_image);
void Remap_screen_VESA (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Table_de_conversion);
// -- Nouveaux trucs --
void Afficher_partie_de_l_ecran_MCGA (word Largeur,word Hauteur,word Largeur_image);
void Afficher_une_ligne_a_l_ecran_MCGA (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Lire_une_ligne_a_l_ecran_MCGA (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Afficher_partie_de_l_ecran_zoomee_MCGA (word Largeur,word Hauteur,word Largeur_image,byte * Buffer);
void Afficher_partie_de_l_ecran_mode_X (word Largeur,word Hauteur,word Largeur_image);
void Afficher_une_ligne_a_l_ecran_mode_X (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Lire_une_ligne_a_l_ecran_mode_X (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Afficher_partie_de_l_ecran_zoomee_mode_X(word Largeur,word Hauteur,word Largeur_image,byte * Buffer);
void Afficher_partie_de_l_ecran_VESA (word Largeur,word Hauteur,word Largeur_image);
void Afficher_une_ligne_a_l_ecran_VESA (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Lire_une_ligne_a_l_ecran_VESA (word Pos_X,word Pos_Y,word Largeur,byte * Ligne);
void Afficher_partie_de_l_ecran_zoomee_VESA (word Largeur,word Hauteur,word Largeur_image,byte * Buffer);
void Display_brush_Color_Zoom_MCGA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_brosse,byte * Buffer);
void Display_brush_Mono_Zoom_MCGA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse,byte * Buffer);
void Clear_brush_Zoom_MCGA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_image,byte * Buffer);
void Display_brush_Color_Zoom_mode_X(word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_brosse,byte * Buffer);
void Display_brush_Mono_Zoom_mode_X (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse,byte * Buffer);
void Clear_brush_Zoom_mode_X (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_image,byte * Buffer);
void Display_brush_Color_Zoom_VESA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_brosse,byte * Buffer);
void Display_brush_Mono_Zoom_VESA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,byte Couleur,word Largeur_brosse,byte * Buffer);
void Clear_brush_Zoom_VESA (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_image,byte * Buffer);

365
GrafX.cbp Normal file
View File

@ -0,0 +1,365 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="GrafX" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/GrafX" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/GrafX" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
<Target title="Bazar">
<Option output="Bazar" prefix_auto="1" extension_auto="1" />
<Option type="1" />
<Option compiler="gcc" />
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="Anciens fichiers/divers.asm">
<Option target="Bazar" />
</Unit>
<Unit filename="Anciens fichiers/oper_bak.c">
<Option compilerVar="CC" />
<Option target="Bazar" />
</Unit>
<Unit filename="Anciens fichiers/vesahigh.c">
<Option compilerVar="CC" />
<Option target="Bazar" />
</Unit>
<Unit filename="Anciens fichiers/vesalfb.asm">
<Option target="Bazar" />
</Unit>
<Unit filename="Anciens fichiers/vesalfb.h">
<Option target="Bazar" />
</Unit>
<Unit filename="Anciens fichiers/video.asm">
<Option target="Bazar" />
</Unit>
<Unit filename="Anciens fichiers/video.h">
<Option target="Bazar" />
</Unit>
<Unit filename="GrafX.cbp">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="GrafX.depend">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="aide.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="aide.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="boutons.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="boutons.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="const.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="divers.asm">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="divers.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="divers.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="doc_eng.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="doc_fra.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="dpmi.asm">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="dpmi.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="file_id.diz">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="files.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="files.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2.cfg">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2.dat">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2.gif">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2.ico">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2.ini">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2_fra.cfg">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="gfx2_mem.bat">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="global.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="graph.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="graph.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="history.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="init.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="init.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="linux.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="linux.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="loadsave.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="loadsave.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="main.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="make.inc">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="makefile">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="mcnormal.asm">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="mcpourp2.asm">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="modesvdo.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="moteur.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="moteur.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="op_asm.asm">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="op_asm.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="op_c.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="op_c.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="operatio.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="operatio.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="pages.c">
<Option compilerVar="CC" />
<Option link="0" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="pages.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="palette.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="palette.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="readini.c">
<Option compilerVar="CC" />
<Option link="0" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="readini.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="readline.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="readline.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="readme!.1st">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="readme.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="saveini.c">
<Option compilerVar="CC" />
<Option link="0" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="saveini.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="sdlscreen.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="shade.c">
<Option compilerVar="CC" />
<Option link="0" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="shade.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="special.c">
<Option compilerVar="CC" />
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="special.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="struct.h">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="tech_eng.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="tech_fra.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Unit filename="todo.txt">
<Option target="Debug" />
<Option target="Release" />
</Unit>
<Extensions>
<code_completion />
</Extensions>
</Project>
</CodeBlocks_project_file>

333
GrafX.depend Normal file
View File

@ -0,0 +1,333 @@
# depslib dependency file v1.0
1176573750 source:/home/pulkomandy/Projects/GFX2_SRC/aide.c
<stdio.h>
"const.h"
"struct.h"
"global.h"
"divers.h"
"graph.h"
"moteur.h"
<string.h>
<sys/vfs.h>
1176566963 /home/pulkomandy/Projects/GFX2_SRC/const.h
1176561067 /home/pulkomandy/Projects/GFX2_SRC/struct.h
"const.h"
1176580114 /home/pulkomandy/Projects/GFX2_SRC/global.h
<SDL/SDL.h>
"struct.h"
"loadsave.h"
940692956 /home/pulkomandy/Projects/GFX2_SRC/loadsave.h
898300360 /home/pulkomandy/Projects/GFX2_SRC/divers.h
1176563251 /home/pulkomandy/Projects/GFX2_SRC/graph.h
1176549546 /home/pulkomandy/Projects/GFX2_SRC/moteur.h
1176573039 source:/home/pulkomandy/Projects/GFX2_SRC/boutons.c
"const.h"
"struct.h"
"global.h"
"divers.h"
"graph.h"
"moteur.h"
"readline.h"
"files.h"
"loadsave.h"
"init.h"
<fcntl.h>
<stdio.h>
"boutons.h"
"operatio.h"
<string.h>
<stdlib.h>
<unistd.h>
<ctype.h>
"shade.c"
898300360 /home/pulkomandy/Projects/GFX2_SRC/readline.h
1176552986 /home/pulkomandy/Projects/GFX2_SRC/files.h
1176553118 /home/pulkomandy/Projects/GFX2_SRC/init.h
"readini.h"
"saveini.h"
898300360 /home/pulkomandy/Projects/GFX2_SRC/readini.h
898300360 /home/pulkomandy/Projects/GFX2_SRC/saveini.h
1176554162 /home/pulkomandy/Projects/GFX2_SRC/boutons.h
945641428 /home/pulkomandy/Projects/GFX2_SRC/operatio.h
1176579600 /home/pulkomandy/Projects/GFX2_SRC/shade.c
"global.h"
"graph.h"
1176556780 source:/home/pulkomandy/Projects/GFX2_SRC/files.c
"const.h"
"struct.h"
"global.h"
"graph.h"
"divers.h"
<stdlib.h>
<fcntl.h>
<string.h>
<dirent.h>
<errno.h>
<unistd.h>
<sys/types.h>
<sys/stat.h>
<unistd.h>
"linux.h"
1176552205 /home/pulkomandy/Projects/GFX2_SRC/linux.h
1176571401 source:/home/pulkomandy/Projects/GFX2_SRC/graph.c
"sdlscreen.h"
"graph.h"
"divers.h"
<math.h>
<malloc.h>
<sys/sysinfo.h>
<string.h>
<stdlib.h>
"moteur.h"
"boutons.h"
"pages.h"
"global.h"
"pages.c"
1176559031 /home/pulkomandy/Projects/GFX2_SRC/video.h
"struct.h"
1176548808 /home/pulkomandy/Projects/GFX2_SRC/vesalfb.h
"struct.h"
"global.h"
1176561017 /home/pulkomandy/Projects/GFX2_SRC/pages.h
1176561064 /home/pulkomandy/Projects/GFX2_SRC/pages.c
<stddef.h>
<string.h>
<stdlib.h>
"linux.h"
"global.h"
"pages.h"
"graph.h"
1176568608 source:/home/pulkomandy/Projects/GFX2_SRC/init.c
<fcntl.h>
"const.h"
"struct.h"
"global.h"
"modesvdo.h"
"graph.h"
"boutons.h"
"palette.h"
"aide.h"
"operatio.h"
<stdio.h>
<sys/types.h>
<sys/stat.h>
<fcntl.h>
<string.h>
<unistd.h>
<stdlib.h>
"divers.h"
"readini.c"
"saveini.c"
898300360 /home/pulkomandy/Projects/GFX2_SRC/modesvdo.h
898300360 /home/pulkomandy/Projects/GFX2_SRC/palette.h
941312106 /home/pulkomandy/Projects/GFX2_SRC/aide.h
1176548158 /home/pulkomandy/Projects/GFX2_SRC/readini.c
<stdio.h>
"const.h"
"global.h"
1176555965 /home/pulkomandy/Projects/GFX2_SRC/saveini.c
<stdio.h>
"const.h"
"global.h"
1176539011 source:/home/pulkomandy/Projects/GFX2_SRC/linux.c
<string.h>
1176562607 source:/home/pulkomandy/Projects/GFX2_SRC/loadsave.c
"const.h"
"struct.h"
"global.h"
"graph.h"
"divers.h"
"pages.h"
"op_c.h"
<fcntl.h>
<sys/stat.h>
<stdio.h>
<stdlib.h>
<string.h>
<unistd.h>
"boutons.h"
944346298 /home/pulkomandy/Projects/GFX2_SRC/op_c.h
"struct.h"
1176571151 source:/home/pulkomandy/Projects/GFX2_SRC/main.c
"const.h"
"struct.h"
"global.h"
"graph.h"
"divers.h"
"init.h"
"boutons.h"
"moteur.h"
<stdio.h>
<stdlib.h>
<string.h>
<signal.h>
<time.h>
<SDL/SDL.h>
<unistd.h>
"linux.h"
"pages.h"
"files.h"
"loadsave.h"
"sdlscreen.h"
1176562163 /home/pulkomandy/Projects/GFX2_SRC/vesahigh.c
<string.h>
"vesalfb.h"
1176562627 source:/home/pulkomandy/Projects/GFX2_SRC/moteur.c
"const.h"
"struct.h"
"global.h"
"graph.h"
"divers.h"
"special.h"
<string.h>
<stdlib.h>
<stdio.h>
"linux.h"
"boutons.h"
"operatio.h"
"shade.h"
898300360 /home/pulkomandy/Projects/GFX2_SRC/special.h
1176553647 /home/pulkomandy/Projects/GFX2_SRC/shade.h
1176546236 source:/home/pulkomandy/Projects/GFX2_SRC/op_c.c
<stdlib.h>
<stdio.h>
<fcntl.h>
<sys/stat.h>
"op_c.h"
"op_asm.h"
944346460 /home/pulkomandy/Projects/GFX2_SRC/op_asm.h
"op_c.h"
976376552 source:/home/pulkomandy/Projects/GFX2_SRC/operatio.c
<math.h>
"const.h"
"struct.h"
"global.h"
"divers.h"
"moteur.h"
"graph.h"
"operatio.h"
1176561064 source:/home/pulkomandy/Projects/GFX2_SRC/pages.c
<stddef.h>
<string.h>
<stdlib.h>
"linux.h"
"global.h"
"pages.h"
"graph.h"
940768894 source:/home/pulkomandy/Projects/GFX2_SRC/palette.c
<stdio.h>
"const.h"
"struct.h"
"global.h"
"divers.h"
"graph.h"
"moteur.h"
"readline.h"
1176548158 source:/home/pulkomandy/Projects/GFX2_SRC/readini.c
<stdio.h>
"const.h"
"global.h"
898300360 source:/home/pulkomandy/Projects/GFX2_SRC/readline.c
"const.h"
"struct.h"
"global.h"
"graph.h"
"divers.h"
1176555965 source:/home/pulkomandy/Projects/GFX2_SRC/saveini.c
<stdio.h>
"const.h"
"global.h"
1176579600 source:/home/pulkomandy/Projects/GFX2_SRC/shade.c
"global.h"
"graph.h"
898300360 source:/home/pulkomandy/Projects/GFX2_SRC/special.c
"const.h"
"struct.h"
"global.h"
"graph.h"
"moteur.h"
<stdlib.h>
1176552028 source:/home/pulkomandy/Projects/GFX2_SRC/testvesa/testvesa.c
<stdlib.h>
<stdio.h>
<string.h>
"vesa.h"
870946826 /home/pulkomandy/Projects/GFX2_SRC/testvesa/vesa.h
1176562163 source:/home/pulkomandy/Projects/GFX2_SRC/vesahigh.c
<string.h>
"vesalfb.h"
1176564725 source:/home/pulkomandy/Projects/GFX2_SRC/vesalfb.c
1176579529 /home/pulkomandy/Projects/GFX2_SRC/sdlscreen.h
<SDL/SDL.h>
"struct.h"
1176551535 source:/home/pulkomandy/Projects/GFX2_SRC/oper_bak.c
<math.h>
"const.h"
"struct.h"
"global.h"
"divers.h"
"moteur.h"
"graph.h"
"operatio.h"
<string.h>
<stdlib.h>
1176579531 source:/home/pulkomandy/Projects/GFX2_SRC/divers.c
<SDL/SDL.h>
"struct.h"
"sdlscreen.h"
"global.h"

31
GrafX.layout Normal file
View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_layout_file>
<ActiveTarget name="Debug" />
<File name="Anciens fichiers/divers.asm" open="1" top="0" tabpos="7">
<Cursor position="35193" topLine="1614" />
</File>
<File name="aide.c" open="1" top="0" tabpos="3">
<Cursor position="4763" topLine="127" />
</File>
<File name="boutons.c" open="1" top="1" tabpos="5">
<Cursor position="78223" topLine="2431" />
</File>
<File name="divers.c" open="1" top="0" tabpos="4">
<Cursor position="1961" topLine="47" />
</File>
<File name="divers.h" open="1" top="0" tabpos="6">
<Cursor position="1275" topLine="5" />
</File>
<File name="global.h" open="1" top="0" tabpos="1">
<Cursor position="2951" topLine="101" />
</File>
<File name="readline.h" open="1" top="0" tabpos="8">
<Cursor position="0" topLine="0" />
</File>
<File name="sdlscreen.h" open="1" top="0" tabpos="2">
<Cursor position="2273" topLine="0" />
</File>
<File name="shade.c" open="1" top="0" tabpos="9">
<Cursor position="31123" topLine="924" />
</File>
</CodeBlocks_layout_file>

289
aide.c Normal file
View File

@ -0,0 +1,289 @@
#include <stdio.h>
#include "const.h"
#include "struct.h"
#include "global.h"
#include "divers.h"
#include "graph.h"
#include "moteur.h"
#include <string.h>
#include <sys/vfs.h>
// -- Menu d'aide -----------------------------------------------------------
void Afficher_aide(void)
{
byte * Curseur;
byte * Curseur_initial;
word Debut_de_fonte;
short X; // Indices d'affichage d'un caractŠre
short Y;
short Position_X; // Parcours de remplissage du buffer de ligne
short Indice_de_ligne; // 0-15 (16 lignes de textes)
short Indice_de_caractere; // Parcours des caractŠres d'une ligne
short Ligne_de_depart=Position_d_aide_en_cours;
short Longueur_de_ligne; // Longueur en char d'une ligne de texte
short Repeat_Menu_Facteur_X;
short Repeat_Menu_Facteur_Y;
short Pos_Reel_X;
short Pos_Reel_Y;
short Largeur; // Largeur physique d'une ligne de texte
Pos_Reel_X=Fenetre_Pos_X+(13*Menu_Facteur_X);
Pos_Reel_Y=Fenetre_Pos_Y+(19*Menu_Facteur_Y);
for (Curseur=Table_d_aide[Section_d_aide_en_cours].Debut_de_la_liste;
Ligne_de_depart>0;
Ligne_de_depart--)
Curseur+=( (*Curseur) & 0x7F )+1;
for (Indice_de_ligne=0;Indice_de_ligne<16;Indice_de_ligne++)
{
// On affiche la ligne
Debut_de_fonte =((*Curseur) & 0x80)?147:0;
Indice_de_caractere=((*Curseur) & 0x7F);
Curseur++;
Curseur_initial=Curseur;
Longueur_de_ligne=Indice_de_caractere;
Largeur=Longueur_de_ligne*Menu_Facteur_X*6;
// Pour chaque ligne dans la fenˆtre:
for (Y=0;Y<8;Y++)
{
Curseur=Curseur_initial;
Position_X=0;
// On cre une nouvelle ligne … splotcher
for (Indice_de_caractere=0;Indice_de_caractere<Longueur_de_ligne;Indice_de_caractere++)
{
for (X=0;X<6;X++)
for (Repeat_Menu_Facteur_X=0;Repeat_Menu_Facteur_X<Menu_Facteur_X;Repeat_Menu_Facteur_X++)
Buffer_de_ligne_horizontale[Position_X++]=Fonte_help[(*Curseur)+Debut_de_fonte][X][Y];
Curseur++;
}
// On la splotche
for (Repeat_Menu_Facteur_Y=0;Repeat_Menu_Facteur_Y<Menu_Facteur_Y;Repeat_Menu_Facteur_Y++)
Afficher_ligne(Pos_Reel_X,Pos_Reel_Y++,Largeur,Buffer_de_ligne_horizontale);
}
// On efface la fin de la ligne:
Block (Pos_Reel_X+Largeur,
Pos_Reel_Y-(8*Menu_Facteur_Y),
((44*6*Menu_Facteur_X)-Largeur)+1, // 44 = Nb max de char (+1 pour viter les plantages en mode X causs par une largeur = 0)
Menu_Facteur_Y<<3,
CM_Noir);
}
}
void Scroller_aide(void)
{
Effacer_curseur();
Fenetre_Liste_boutons_scroller->Position=Position_d_aide_en_cours;
Calculer_hauteur_curseur_jauge(Fenetre_Liste_boutons_scroller);
Fenetre_Dessiner_jauge(Fenetre_Liste_boutons_scroller);
Afficher_aide();
Afficher_curseur();
}
void Bouton_Aide(void)
{
short Bouton_clicke;
short Nb_lignes=Table_d_aide[Section_d_aide_en_cours].Nombre_de_lignes;
Ouvrir_fenetre(310,175,"Help / About...");
// dessiner de la fenˆtre o— va dfiler le texte
Fenetre_Afficher_cadre_creux(8,17,274,132);
Block(Fenetre_Pos_X+(Menu_Facteur_X*9),
Fenetre_Pos_Y+(Menu_Facteur_Y*18),
Menu_Facteur_X*272,Menu_Facteur_Y*130,CM_Noir);
Fenetre_Definir_bouton_normal(266,153,35,14,"Exit",0,1,0x0001); // 1
Fenetre_Definir_bouton_scroller(290,18,130,Nb_lignes,
16,Position_d_aide_en_cours); // 2
Fenetre_Definir_bouton_normal( 9,154, 59,14,"Credits" ,1,1,0x002E); // 3
Fenetre_Definir_bouton_normal( 71,154, 75,14,"Register?",1,1,0x0013); // 4
Fenetre_Definir_bouton_normal(149,154, 75,14,"Greetings",1,1,0x0022); // 5
Afficher_aide();
Afficher_curseur();
do
{
Bouton_clicke=Fenetre_Bouton_clicke();
switch (Bouton_clicke)
{
case -1:
case 0:
case 1:
break;
default:
Effacer_curseur();
if (Bouton_clicke>2)
{
Section_d_aide_en_cours=Bouton_clicke-3;
Position_d_aide_en_cours=0;
Nb_lignes=Table_d_aide[Section_d_aide_en_cours].Nombre_de_lignes;
Fenetre_Liste_boutons_scroller->Position=0;
Fenetre_Liste_boutons_scroller->Nb_elements=Nb_lignes;
Calculer_hauteur_curseur_jauge(Fenetre_Liste_boutons_scroller);
Fenetre_Dessiner_jauge(Fenetre_Liste_boutons_scroller);
}
else
Position_d_aide_en_cours=Fenetre_Attribut2;
Afficher_aide();
Afficher_curseur();
}
// Gestion des touches de dplacement dans la liste
switch (Touche)
{
case 0x0048 : // Haut
if (Position_d_aide_en_cours>0)
Position_d_aide_en_cours--;
Scroller_aide();
break;
case 0x0050 : // Bas
if (Position_d_aide_en_cours<Nb_lignes-16)
Position_d_aide_en_cours++;
Scroller_aide();
break;
case 0x0049 : // PageUp
if (Position_d_aide_en_cours>15)
Position_d_aide_en_cours-=15;
else
Position_d_aide_en_cours=0;
Scroller_aide();
break;
case 0x0051 : // PageDown
if (Position_d_aide_en_cours<Nb_lignes-31)
Position_d_aide_en_cours+=15;
else
Position_d_aide_en_cours=Nb_lignes-16;
Scroller_aide();
break;
case 0x0047 : // Home
Position_d_aide_en_cours=0;
Scroller_aide();
break;
case 0x004F : // End
Position_d_aide_en_cours=Nb_lignes-16;
Scroller_aide();
break;
}
}
while ((Bouton_clicke!=1) && (Touche!=0x001C));
Fermer_fenetre();
Desenclencher_bouton(BOUTON_AIDE);
Afficher_curseur();
}
#define STATS_COULEUR_TITRES CM_Blanc
#define STATS_COULEUR_DONNEES CM_Clair
void Bouton_Stats(void)
{
short Bouton_clicke;
char Buffer[37];
dword Utilisation_couleur[256];
long Taille;
struct statfs* Informations_Disque;
Ouvrir_fenetre(310,174,"Statistics");
// dessiner de la fenˆtre o— va s'afficher le texte
Fenetre_Afficher_cadre_creux(8,17,294,132);
Block(Fenetre_Pos_X+(Menu_Facteur_X*9),
Fenetre_Pos_Y+(Menu_Facteur_Y*18),
Menu_Facteur_X*292,Menu_Facteur_Y*130,CM_Noir);
Fenetre_Definir_bouton_normal(120,153,70,14,"OK",0,1,0x0001); // 1
// Affichage du numro de version
Print_dans_fenetre(10,19,"Version:",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"GrafX 2.00 %s%s",ALPHA_BETA,POURCENTAGE_VERSION);
Print_dans_fenetre(82,19,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage de la mmoire restante
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%d bytes",Memoire_libre());
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage de l'espace disque libre
sprintf(Buffer,"Free space on %c:",Principal_Repertoire_courant[0]);
Print_dans_fenetre(10,51,Buffer,STATS_COULEUR_TITRES,CM_Noir);
statfs(Principal_Repertoire_courant,Informations_Disque);
Taille=Informations_Disque->f_bfree;
if (Taille>=0)
{
sprintf(Buffer,"%d bytes",Taille);
Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
}
else
Print_dans_fenetre(146,51,"* Error *",STATS_COULEUR_DONNEES,CM_Noir);
// Affichage des informations sur l'image
Print_dans_fenetre(10,67,"Picture info.:",STATS_COULEUR_TITRES,CM_Noir);
// Affichage des dimensions de l'image
Print_dans_fenetre(18,75,"Dimensions :",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%dx%d",Principal_Largeur_image,Principal_Hauteur_image);
Print_dans_fenetre(122,75,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage du nombre de couleur utilis
Print_dans_fenetre(18,83,"Colors used:",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%d",Palette_Compter_nb_couleurs_utilisees(Utilisation_couleur));
Print_dans_fenetre(122,83,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage des dimensions de l'cran
Print_dans_fenetre(10,99,"Resolution:",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%dx%d",Largeur_ecran,Hauteur_ecran);
Print_dans_fenetre(106,99,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage des infos VESA
Print_dans_fenetre(10,115,"VESA info.:",STATS_COULEUR_TITRES,CM_Noir);
if (((VESA_Version_Unite*10)+VESA_Version_Decimale)>=12)
{
Print_dans_fenetre(18,123,"Version :",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%d.%d",VESA_Version_Unite,VESA_Version_Decimale);
Print_dans_fenetre(106,123,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
Print_dans_fenetre(18,131,"Manufact.:",STATS_COULEUR_TITRES,CM_Noir);
strncpy(Buffer,VESA_Constructeur,TAILLE_NOM_CONSTRUCTEUR);
Buffer[TAILLE_NOM_CONSTRUCTEUR]='\0';
Print_dans_fenetre(106,131,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
Print_dans_fenetre(18,139,"Memory :",STATS_COULEUR_TITRES,CM_Noir);
sprintf(Buffer,"%d Kb",VESA_Taille_memoire*64);
Print_dans_fenetre(106,139,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
}
else
Print_dans_fenetre(106,115,"* No VESA support *",STATS_COULEUR_DONNEES,CM_Noir);
Afficher_curseur();
do
{
Bouton_clicke=Fenetre_Bouton_clicke();
}
while ( (Bouton_clicke!=1) && (Touche!=0x001C) );
Fermer_fenetre();
Desenclencher_bouton(BOUTON_AIDE);
Afficher_curseur();
}