Dropped all the old files. They are not really usefull anymore as everything was rewritten in clean C for us...

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@741 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2009-04-07 17:23:01 +00:00
parent 5c7256efa3
commit d1de5fa366
7 changed files with 0 additions and 15183 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,221 +0,0 @@
/* Grafx2 - The Ultimate 256-color bitmap paint program
Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
Grafx2 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.
Grafx2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grafx2; if not, see <http://www.gnu.org/licenses/> or
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#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;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,132 +0,0 @@
/* Grafx2 - The Ultimate 256-color bitmap paint program
Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
Grafx2 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.
Grafx2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grafx2; if not, see <http://www.gnu.org/licenses/> or
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#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

File diff suppressed because it is too large Load Diff

View File

@ -1,109 +0,0 @@
/* Grafx2 - The Ultimate 256-color bitmap paint program
Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
Grafx2 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.
Grafx2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grafx2; if not, see <http://www.gnu.org/licenses/> or
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#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);