Remove some old useless files, and add a png format icon for linux (wich does not like ico too much).
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@514 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
3ff77f068b
commit
73cd2e4e5d
@ -1,145 +0,0 @@
|
||||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||||
³!!!!!!! PLEASE READ THIS FILE !!!!!!!³!!!!!! VEUILLEZ LIRE CE FICHIER !!!!!!³
|
||||
³!! ENTIRELY BEFORE RUNNING GRAFX2 !!!³! ENTIEREMENT AVANT DE LANCER GRAFX2 !³
|
||||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||||
³
|
||||
³
|
||||
If you are reading this file right ³ Si vous lisez ce fichier maintenant,
|
||||
now, I'm sure that it is for one out ³ Je suis s–r que c'est pour l'une de
|
||||
of these four reasons: ³ ces quatre raisons:
|
||||
³
|
||||
1) You are THE ONE who first reads ³ 1) Vous ˆtes CELUI qui lit les
|
||||
README.1ST files before running ³ fichiers README.1ST avant de lancer
|
||||
new programs. ³ de nouveaux programmes.
|
||||
³
|
||||
2) Today is a rainy day and you've ³ 2) Il pleut aujourd'hui et vous avez
|
||||
already finished all the games ³ d‚j… termin‚ tous les jeux que vous
|
||||
you've... "purchased". So you ³ avez... "achet‚s". Donc vous n'avez
|
||||
have nothing else to do that ³ rien d'autre … faire que de lire ce
|
||||
reading this damn file. ³ fichu fichier.
|
||||
³
|
||||
3) You had the quite good reflex ³ 3) Vous avez eu l'assez bon r‚flŠxe
|
||||
(for someone who did not read ³ (pour quelqu'un qui n'a pas lu ce
|
||||
this file) to switch off your PC ³ fichier) d'‚teindre votre PC avant
|
||||
before your monitor burns, and ³ que votre moniteur grille, et
|
||||
now you wonder why. ³ maintenant vous cherchez pourquoi.
|
||||
³
|
||||
4) You have burnt your monitor ³ 4) Vous avez bouzill‚ votre moniteur
|
||||
because you didn't read this ³ parce que vous n'avez pas lu ce
|
||||
file first. And you now have all ³ fichier en premier. Et maintenant
|
||||
the time to read it on your ³ vous avez tout le temps de le lire
|
||||
neighbour's computer before you ³ sur l'ordinateur de votre voisin en
|
||||
can buy another monitor. ³ attendant de pouvoir vous acheter
|
||||
³ un nouvel ‚cran.
|
||||
³
|
||||
³
|
||||
úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄú
|
||||
³
|
||||
³
|
||||
So here is what you must know about ³ Donc voici ce que vous devez savoir
|
||||
GrafX2 before running it: ³ … propos de GrafX2 avant de le lancer:
|
||||
³
|
||||
³
|
||||
Video problems: ³ ProblŠmes vid‚o:
|
||||
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ³ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
||||
³
|
||||
- This program provides a huge ³ - Ce programme propose un trŠs grand
|
||||
range of video resolutions. All ³ nombre de modes vid‚o. Toutes ces
|
||||
these resolutions may not work with ³ r‚solutions peuvent ne pas marcher
|
||||
your monitor or video card. This ³ avec votre moniteur ou carte vid‚o.
|
||||
should result by your monitor to ³ Ceci peut r‚sulter par un sifflement
|
||||
whistle and stay black or display ³ de votre moniteur ou bien plus g‚n‚-
|
||||
shit. ³ ralement qu'il affiche n'importe
|
||||
So we added a keyboard shortcut ³ quoi ou qu'il reste tout noir.
|
||||
for you to come back to a normal ³ Par cons‚quent, nous avons ajout‚
|
||||
resolution (MCGA 320x200). The ³ un raccourci clavier pour que vous
|
||||
default keys for this shortcut are ³ puissiez revenir … un r‚solution
|
||||
[Shift]+[Return]. But, since you ³ normale (MCGA 320x200). La combinai-
|
||||
can configure all the keys with ³ son de touches par d‚faut est
|
||||
GFXCFG, you should check its actual ³ [Shift]+[Return]. Mais, puisque vous
|
||||
value by running this setup program.³ pouvez configurer toutes les touches
|
||||
³ avec GFXCFG, vous devriez v‚rifier
|
||||
Note that we take no responsa- ³ la combinaison exacte en lan‡ant ce
|
||||
bility for any problems you could ³ programme.
|
||||
encounter with GrafX2. ³
|
||||
³ Notez que ne sommes aucunement
|
||||
Important: ³ responsables d'‚ventuels problŠmes
|
||||
If the standard VESA modes (i.e. ³ que vous pourriez rencontrer avec
|
||||
640x400,640x480,800x600 & 1024x768) ³ GrafX2.
|
||||
don't work, please type this line ³
|
||||
from the DOS command line: ³ Important:
|
||||
TESTVESA > VESA.TXT ³ Si les modes VESA standards (i.e.
|
||||
and send us the file thus created ³ 640x400,640x480,800x600 & 1024x768)
|
||||
telling us the name of your video ³ ne fonctionnent pas, veuillez taper
|
||||
card. It would be even better if you³ ceci sur la ligne de commande DOS:
|
||||
sent a version of this file with no ³ TESTVESA > VESA.TXT
|
||||
VESA driver in memory and another ³ et nous envoyer le fichier ainsi
|
||||
one with a resident driver (such as ³ cr‚‚ en nous donnant le nom de votre
|
||||
UNIVBE (c)Scitech Software). ³ carte vid‚o. Ce serait encore mieux
|
||||
³ si vous nous envoyiez une version de
|
||||
³ ce fichier avec aucun gestionnaire
|
||||
³ VESA en m‚moire et une autre avec un
|
||||
³ driver r‚sident (tel que UNIVBE
|
||||
³ (c)Scitech Software).
|
||||
³
|
||||
³
|
||||
Problems with the keys? ³ ProblŠmes avec les touches?
|
||||
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ³ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
||||
³
|
||||
- The button in the bottom-left ³ - Le bouton dans le coin bas-gauche
|
||||
corner of the tool-bar (the one ³ de la barre d'outils (celui avec une
|
||||
with a cross) was designed to hide ³ croix) a ‚t‚ con‡u pour cacher la
|
||||
the tool-bar. But, the danger with ³ barre d'outils. Mais le danger avec
|
||||
this button is that, if you don't ³ ce bouton est que si vous ne con-
|
||||
know the key to have it back, you ³ naissez pas la touche qui permet de
|
||||
will be in trouble :). ³ la rafficher, vous serez embˆt‚ :).
|
||||
The default key is [F10] but ³ La touche par d‚faut est [F10]
|
||||
check it in the setup program. ³ mais v‚rifiez-la avec GFXCFG.
|
||||
³
|
||||
- The default key for exiting the ³ - La touche par d‚faut pour quitter
|
||||
program is [Q] (for QWERTY ³ le programme est [Q] (pour claviers
|
||||
keyboards). This can be useful if ³ QWERTY). Cela peut ˆtre utile si
|
||||
you don't remember how to show the ³ vous ne vous rappelez pas comment
|
||||
tool-bar. ³ remontrer la barre d'outils.
|
||||
³
|
||||
- The key-configuration program ³ - Le programme de configuration des
|
||||
displays the values for QWERTY ³ touches affiche ces derniŠres pour
|
||||
keyboards. So if you have an AZERTY ³ les claviers QWERTY. Donc, si vous
|
||||
keyboard for example, and want to ³ avez un clavier AZERTY par exemple
|
||||
use your true Q key for quitting, ³ et que vous voulez utiliser votre
|
||||
don't worry if the program displays ³ vraie touche Q pour quitter, ne vous
|
||||
'A'. ³ ‚tonnez pas si le programme affiche
|
||||
³ 'A'.
|
||||
- Though keys are designed for ³
|
||||
QWERTY keyboards, "typing areas" ³ - Bien que les touches soient g‚r‚es
|
||||
will read the key-codes of your ³ pour claviers QWERTY, les zones de
|
||||
country. For example, when you'll ³ saisie lisent les touches de votre
|
||||
have to enter a file name, you'll ³ pays. Par exemple, lorsque vous
|
||||
get what you type (cool! :)). ³ entrerez un nom de fichier, vous
|
||||
³ obtiendrez ce que vous tapez (cool!)
|
||||
- For people who would like to get ³ :).
|
||||
directly the AZERTY equivalent of ³
|
||||
the default configuration file, we ³ - Pour ceux qui voudraient avoir
|
||||
have added the GFX2_FRA.CFG file. ³ directement l'‚quivalent AZERTY du
|
||||
Then you'll just have to rename it ³ fichier de configuration par d‚faut,
|
||||
to GFX2.CFG (great!) ;). ³ nous avons inclus le fichier
|
||||
³ GFX2_FRA.CFG. Vous n'aurez qu'… le
|
||||
³ renommer en GFX2.CFG (g‚nial!) ;).
|
||||
³
|
||||
³
|
||||
úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄú
|
||||
³
|
||||
³
|
||||
OK! Now you can use and abuse of ³ OK! Maintenant vous pouvez user et
|
||||
this program! ³ abuser de ce programme!
|
||||
³
|
||||
³
|
||||
PS: Pleeeease! If you think something ³ PS: Par piti‚‚‚‚! Si vous pensez que
|
||||
is going wrong, read all the docs ³ quelque chose ne tourne pas rond,
|
||||
before complaining! Maybe that's ³ lisez toutes les docs avant de
|
||||
merely because you don't know how ³ vous plaindre! Peut-ˆtre que c'est
|
||||
to use it that it doesn't act as ³ simplement parce que vous ne savez
|
||||
you expect. ;) ³ pas comment l'utiliser qu'une
|
||||
³ option n'agit pas comme vous
|
||||
| esp‚rez.
|
||||
ú
|
||||
@ -1,60 +0,0 @@
|
||||
GrafX2 - The Ultimate 256-color bitmap paint program
|
||||
Copyright (C)1996-2001 Sunset Design (G.Dorme & K.Maritaud)
|
||||
-------------------------------------
|
||||
|
||||
Here you can find the source code of GrafX2.
|
||||
You can use and modify it as you want (in the
|
||||
limits fixed the GNU GPL).
|
||||
But you are strongly encouraged to submit new
|
||||
versions to the authors (see addresses below)
|
||||
if you plan to release them.
|
||||
|
||||
The GFX2_SRC directory contains the current state
|
||||
of our own directory when we were programming GrafX2.
|
||||
The source code is mainly in French but you'll find
|
||||
more explanations (in both English and French) on
|
||||
our web site (see address below).
|
||||
|
||||
The subdirectory "DAT" contains the source code
|
||||
of the program used to generate the GFX2.DAT file.
|
||||
|
||||
The subdirectory "CFG" contains the source code
|
||||
of the GFXCFG program used for redefining keys
|
||||
and recreating corrupt configuration files.
|
||||
|
||||
The current version of GrafX2 must be compiled
|
||||
with Watcom C (we used version 10.6).
|
||||
The auxiliary programs (GFXCFG, MAKEDAT, etc...)
|
||||
must be compiled with Borland Turbo Pascal 7.
|
||||
Both Watcom C and Borland Turbo Pascal 7 are now
|
||||
FREE to use.
|
||||
|
||||
|
||||
------- GNU G.P.L. disclaimer -------
|
||||
This program 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; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program 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 this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
-------------------------------------
|
||||
|
||||
|
||||
You can contact the authors here:
|
||||
|
||||
Guillaume DORME
|
||||
address: 15, rue de l'Observatoire, 87000 LIMOGES (FRANCE)
|
||||
e-mail: dorme@msi.unilim.fr
|
||||
|
||||
Karl Maritaud
|
||||
address: 10, rue de la Brasserie, 87000 LIMOGES (FRANCE)
|
||||
e-mail: maritaud@ensil.unilim.fr
|
||||
|
||||
http://w3.ensil.unilim.fr/~maritaud/sunset
|
||||
1
Makefile
1
Makefile
@ -151,6 +151,7 @@ else
|
||||
RMDIR = rmdir
|
||||
CP = cp
|
||||
ZIP = zip
|
||||
PLATFORMFILES = gfx2.png
|
||||
|
||||
ifdef WIN32CROSS
|
||||
#cross compile a Win32 executable
|
||||
|
||||
@ -1,26 +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.
|
||||
@
|
||||
@echo off
|
||||
50
|
||||
wmake
|
||||
if errorlevel 1 goto END
|
||||
if not exist testvesa.exe goto END
|
||||
if %0==COMP testvesa %1
|
||||
:END
|
||||
@ -1,4 +0,0 @@
|
||||
system dos4g
|
||||
op stub=weoslite.exe
|
||||
file vesa,testvesa
|
||||
name testvesa
|
||||
@ -1,8 +0,0 @@
|
||||
testvesa.exe : testvesa.obj vesa.obj
|
||||
wlink @make.inc
|
||||
|
||||
testvesa.obj : testvesa.c vesa.h
|
||||
wcc386 /we /4s /fp3 testvesa
|
||||
|
||||
vesa.obj : vesa.asm vesa.h
|
||||
tasm /mx /zn /os vesa
|
||||
@ -1,214 +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.
|
||||
*/
|
||||
typedef unsigned char byte;
|
||||
typedef unsigned short word;
|
||||
typedef unsigned long dword;
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "vesa.h"
|
||||
|
||||
|
||||
|
||||
char * Version_to_string(word Version)
|
||||
{
|
||||
static char Chaine[20];
|
||||
|
||||
sprintf(Chaine,"%d",(Version>>8));
|
||||
strcat(Chaine,".");
|
||||
sprintf(Chaine+strlen(Chaine),"%d",(Version & 0xFF));
|
||||
|
||||
return Chaine;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Lire_infos_VESA(void)
|
||||
{
|
||||
struct S_Buffer_VESA Buffer_VESA;
|
||||
struct S_Buffer_mode_VESA Buffer_mode_VESA;
|
||||
word Retour;
|
||||
int Nombre_de_modes;
|
||||
word * Liste_des_modes;
|
||||
int Offset1;
|
||||
int Offset2;
|
||||
char Libelle_du_nombre_de_couleurs[16];
|
||||
int Nombre_de_bits;
|
||||
|
||||
Retour=Get_VESA_info(&Buffer_VESA);
|
||||
|
||||
if (Retour==0x004F)
|
||||
{
|
||||
if (memcmp(Buffer_VESA.Signature,"VESA",4)==0)
|
||||
{
|
||||
printf("VESA version : %s\n",Version_to_string(Buffer_VESA.Version));
|
||||
printf("Builder : %s\n",Buffer_VESA.Fabricant);
|
||||
printf("Capabilities : %d\n",Buffer_VESA.Capacite);
|
||||
printf("Video memory : %dK\n",Buffer_VESA.Memoire*64);
|
||||
|
||||
if (Buffer_VESA.Version>=0x0200)
|
||||
{
|
||||
printf("OEM version : %s\n",Version_to_string(Buffer_VESA.Version_bios));
|
||||
printf("Vendor : %s\n",Buffer_VESA.Vendeur);
|
||||
printf("Product : %s\n",Buffer_VESA.Produit);
|
||||
printf("Revision : %s\n",Buffer_VESA.Revision);
|
||||
}
|
||||
|
||||
// Comptage du nombre de modes:
|
||||
Nombre_de_modes=0;
|
||||
for (Offset1=0;Buffer_VESA.Liste_des_modes[Offset1]!=0xFFFF;Offset1++)
|
||||
Nombre_de_modes++;
|
||||
|
||||
// Allocation d'une liste dupliqu‚e des modes:
|
||||
Liste_des_modes=(word *)malloc(sizeof(word)*Nombre_de_modes);
|
||||
|
||||
// Copie de la liste des modes originale vers la dupliqu‚e:
|
||||
memcpy(Liste_des_modes,Buffer_VESA.Liste_des_modes,sizeof(word)*Nombre_de_modes);
|
||||
|
||||
// Affichage de la liste des modes:
|
||||
for (Offset1=0;Offset1<Nombre_de_modes;Offset1++)
|
||||
{
|
||||
// Lecture des infos du mode:
|
||||
Retour=Get_VESA_mode_info(Liste_des_modes[Offset1],&Buffer_mode_VESA);
|
||||
|
||||
// Affichage des infos de ce mode:
|
||||
|
||||
if (Retour==0x004F)
|
||||
{
|
||||
if (Buffer_mode_VESA.Nb_bits_par_pixel<=8)
|
||||
{
|
||||
Nombre_de_bits=0;
|
||||
sprintf(Libelle_du_nombre_de_couleurs,"%d col.",1<<Buffer_mode_VESA.Nb_bits_par_pixel);
|
||||
}
|
||||
else
|
||||
{
|
||||
Nombre_de_bits=Buffer_mode_VESA.Taille_masque_rouge+
|
||||
Buffer_mode_VESA.Taille_masque_vert+
|
||||
Buffer_mode_VESA.Taille_masque_bleu;
|
||||
|
||||
switch (Nombre_de_bits)
|
||||
{
|
||||
case 15:
|
||||
strcpy(Libelle_du_nombre_de_couleurs,"32K");
|
||||
break;
|
||||
case 16:
|
||||
strcpy(Libelle_du_nombre_de_couleurs,"64K");
|
||||
break;
|
||||
case 24:
|
||||
if (Buffer_mode_VESA.Nb_bits_par_pixel==24)
|
||||
strcpy(Libelle_du_nombre_de_couleurs,"16M");
|
||||
else
|
||||
strcpy(Libelle_du_nombre_de_couleurs,"16M 32-bits");
|
||||
break;
|
||||
default:
|
||||
sprintf(Libelle_du_nombre_de_couleurs,"%d col.",1<<Nombre_de_bits);
|
||||
}
|
||||
}
|
||||
|
||||
printf("\nMode : %Xh\t(",Liste_des_modes[Offset1]);
|
||||
|
||||
if (Buffer_mode_VESA.Attributs&16)
|
||||
printf("Graphmode: ");
|
||||
else
|
||||
printf("Textmode : ");
|
||||
|
||||
printf("%dx%d - %s - ",Buffer_mode_VESA.Largeur,
|
||||
Buffer_mode_VESA.Hauteur,Libelle_du_nombre_de_couleurs);
|
||||
|
||||
switch (Buffer_mode_VESA.Attributs&192)
|
||||
{
|
||||
case 0 : printf("Banked)\n"); break;
|
||||
case 128 : printf("Banked/LFB)\n"); break;
|
||||
case 192 : printf("LFB)\n"); break;
|
||||
default : printf("BUGGED!)\n");
|
||||
}
|
||||
|
||||
printf(" Attributes : %Xh\n",Buffer_mode_VESA.Attributs);
|
||||
printf(" Window A attributes : %Xh\n",Buffer_mode_VESA.Attributs_fenetre_A);
|
||||
printf(" Window B attributes : %Xh\n",Buffer_mode_VESA.Attributs_fenetre_B);
|
||||
printf(" Granularity : %dK\n",Buffer_mode_VESA.Granularite);
|
||||
printf(" Window size : %dK\n",Buffer_mode_VESA.Taille_fenetres);
|
||||
printf(" Window A segment : %Xh\n",Buffer_mode_VESA.Segment_fenetre_A);
|
||||
printf(" Window B segment : %Xh\n",Buffer_mode_VESA.Segment_fenetre_B);
|
||||
printf(" WinFunction pointer : %p\n",Buffer_mode_VESA.WinFuncPtr);
|
||||
printf(" Bytes per line : %d\n",Buffer_mode_VESA.Octets_par_ligne);
|
||||
printf(" Width : %d\n",Buffer_mode_VESA.Largeur);
|
||||
printf(" Height : %d\n",Buffer_mode_VESA.Hauteur);
|
||||
printf(" Character width : %d\n",Buffer_mode_VESA.Largeur_de_char);
|
||||
printf(" Character height : %d\n",Buffer_mode_VESA.Hauteur_de_char);
|
||||
printf(" Number of planes : %d\n",Buffer_mode_VESA.Nb_plans);
|
||||
printf(" Bits per pixel : %d\n",Buffer_mode_VESA.Nb_bits_par_pixel);
|
||||
printf(" Number of banks : %d\n",Buffer_mode_VESA.Nb_banques);
|
||||
printf(" Memory model : %d\n",Buffer_mode_VESA.Modele_de_memoire);
|
||||
printf(" Bank size : %d\n",Buffer_mode_VESA.Taille_des_banques);
|
||||
printf(" Number of pages : %d\n",Buffer_mode_VESA.Nombre_de_pages);
|
||||
|
||||
if (Nombre_de_bits)
|
||||
{
|
||||
printf(" Red mask size : %d\n",Buffer_mode_VESA.Taille_masque_rouge);
|
||||
printf(" Red mask position : %d\n",Buffer_mode_VESA.Pos_masque_rouge);
|
||||
printf(" Green mask size : %d\n",Buffer_mode_VESA.Taille_masque_vert);
|
||||
printf(" Green mask position : %d\n",Buffer_mode_VESA.Pos_masque_vert);
|
||||
printf(" Blue mask size : %d\n",Buffer_mode_VESA.Taille_masque_bleu);
|
||||
printf(" Blue mask position : %d\n",Buffer_mode_VESA.Pos_masque_bleu);
|
||||
printf(" Reserved mask size : %d\n",Buffer_mode_VESA.Taille_masque_res);
|
||||
printf(" Reserved mask pos. : %d\n",Buffer_mode_VESA.Pos_masque_res);
|
||||
}
|
||||
|
||||
printf(" Direct screen mode : %d\n",Buffer_mode_VESA.Direct_screen_mode);
|
||||
printf(" LFB address : %p\n",Buffer_mode_VESA.Adresse_LFB);
|
||||
printf(" Offscreen address : %p\n",Buffer_mode_VESA.Adresse_offscreen);
|
||||
printf(" Offscreen size : %dK\n",Buffer_mode_VESA.Taille_offscreen);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\nMode : %Xh",Liste_des_modes[Offset1]);
|
||||
printf(" Mode not supported (not enough memory or bad monitor)\n");
|
||||
}
|
||||
}
|
||||
|
||||
// Lib‚ration de la liste dupliqu‚e:
|
||||
free(Liste_des_modes);
|
||||
}
|
||||
else
|
||||
printf("VESA bugged.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Retour==0xFF00)
|
||||
printf("Memory allocation impossible.\n");
|
||||
else
|
||||
printf("No VESA supported: %d\n",Retour);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("\nÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
|
||||
printf("\nºÛ²±° VESA tester - Copyright (c)1997 Sunset Design °±²Ûº");
|
||||
printf("\nÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n\n");
|
||||
Lire_infos_VESA();
|
||||
return 0;
|
||||
}
|
||||
Binary file not shown.
@ -1,256 +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.
|
||||
|
||||
.386P
|
||||
.MODEL FLAT
|
||||
|
||||
_TEXT Segment dword public 'code'
|
||||
Assume cs:_TEXT, ds:_DATA
|
||||
|
||||
|
||||
; -- Fonctions VESA --
|
||||
public Get_VESA_info
|
||||
public Get_VESA_mode_info
|
||||
|
||||
|
||||
|
||||
|
||||
; - -- --- ----\/\ Lecture des informations VESA : /\/---- --- -- -
|
||||
|
||||
Convertir_adresse_MR_MP proc near
|
||||
|
||||
; EDI = Adresse d'une adresse … corriger
|
||||
|
||||
push eax
|
||||
push ecx
|
||||
|
||||
mov eax,[edi] ; EAX = adresse … corriger
|
||||
mov ecx,eax
|
||||
shr eax,16
|
||||
shl eax,4
|
||||
and ecx,0FFFFh
|
||||
add eax,ecx
|
||||
mov [edi],eax
|
||||
|
||||
pop ecx
|
||||
pop eax
|
||||
|
||||
ret
|
||||
|
||||
Convertir_adresse_MR_MP endp
|
||||
|
||||
|
||||
|
||||
Get_VESA_info proc near
|
||||
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
|
||||
arg Buffer:dword
|
||||
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
|
||||
|
||||
; On commence par allouer un buffer en mode r‚el de 1024+64 octets
|
||||
mov ax,0100h ; "DPMI : Allocate Dos memory blocks"
|
||||
mov bx,68d ; BX = (1024+64)/16 = 68 paragraphes
|
||||
int 31h
|
||||
jc GVI_Erreur
|
||||
|
||||
; On sauve l'handle du buffer dans la pile
|
||||
push dx
|
||||
|
||||
; On place dans EDX l'adresse du buffer
|
||||
xor edx,edx
|
||||
mov dx,ax
|
||||
shl edx,4
|
||||
|
||||
; On nettoie ce(s) buffer(s)
|
||||
mov edi,edx ; On place en EDX
|
||||
xor eax,eax ; ... la valeur 0
|
||||
mov ecx,0110h ; ... sur 1024+64 positions
|
||||
rep stosd ; !!! Maintenant !!!
|
||||
|
||||
; On demande les infos VESA: (AX=4F00, ES:DI=Adresse du buffer)
|
||||
mov edi,edx ; Adresse des valeurs des registres … passer … l'interruption
|
||||
add edx,40h ; EDX=segment du buffer d'infos VESA
|
||||
shr edx,4
|
||||
mov dword ptr[edi+1Ch],00004F00h ; EAX pass‚ … l'interruption
|
||||
mov dword ptr[edi+00h],00000000h ; EDI pass‚ … l'interruption
|
||||
mov word ptr[edi+22h],dx ; ES pass‚ … l'interruption
|
||||
shl edx,4
|
||||
mov dword ptr[edx],32454256h ; valeur hexa de "VBE2"
|
||||
mov ax,0300h ; Service DPMI simuler une interruption en mode r‚el
|
||||
mov bl,10h ; Interruption … appeler (int vid‚o)
|
||||
xor bh,bh ; Flags de mode d'appel d'interruption
|
||||
xor cx,cx ; Nb d'elements de la pile … passer
|
||||
int 31h ; Appel de l'interruption du DPMI
|
||||
|
||||
; On place dans EBX la valeur EAX de retour de l'interruption
|
||||
mov ebx,dword ptr[edi+1Ch]
|
||||
|
||||
; On recopie le buffer du mode r‚el vers le mode prot‚g‚
|
||||
mov ecx,256 ; (256 dword = 1024 octets)
|
||||
mov esi,edx
|
||||
mov edi,Buffer
|
||||
rep movsd
|
||||
|
||||
; Puis on corrige chacune des adresses:
|
||||
mov edi,Buffer
|
||||
add edi,06h
|
||||
call Convertir_adresse_MR_MP ; Fabricant
|
||||
add edi,08h
|
||||
call Convertir_adresse_MR_MP ; Liste des modes
|
||||
add edi,08h
|
||||
call Convertir_adresse_MR_MP ; Vendeur
|
||||
add edi,04h
|
||||
call Convertir_adresse_MR_MP ; Produit
|
||||
add edi,04h
|
||||
call Convertir_adresse_MR_MP ; R‚vision
|
||||
|
||||
; On libŠre le buffer en mode r‚el de 1024+64 octets
|
||||
mov ax,0101h ; "DPMI : Free Dos memory blocks"
|
||||
pop dx ; DX = handle du buffer
|
||||
int 31h
|
||||
jnc GVI_Pas_d_erreur
|
||||
|
||||
|
||||
GVI_Erreur:
|
||||
|
||||
mov bx,0FF00h
|
||||
|
||||
GVI_Pas_d_erreur:
|
||||
|
||||
mov ax,bx
|
||||
|
||||
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
|
||||
ret
|
||||
|
||||
Get_VESA_info endp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Get_VESA_mode_info proc near
|
||||
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
|
||||
arg Mode:word,Buffer:dword
|
||||
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
|
||||
|
||||
; On commence par allouer un buffer en mode r‚el de 256+64 octets
|
||||
mov ax,0100h ; "DPMI : Allocate Dos memory blocks"
|
||||
mov bx,20d ; BX = (256+64)/16 = 20 paragraphes
|
||||
int 31h
|
||||
jc GVMI_Erreur
|
||||
|
||||
; On sauve l'handle du buffer dans la pile
|
||||
push dx
|
||||
|
||||
; On place dans EDX l'adresse du buffer
|
||||
xor edx,edx
|
||||
mov dx,ax
|
||||
shl edx,4
|
||||
|
||||
; On nettoie ce(s) buffer(s)
|
||||
mov edi,edx ; On place en EDX
|
||||
xor eax,eax ; ... la valeur 0
|
||||
mov ecx,0080d ; ... sur 256+64 positions
|
||||
rep stosd ; !!! Maintenant !!!
|
||||
|
||||
; On demande les infos VESA: (AX=4F01, CX=Mode, ES:DI=Adresse du buffer)
|
||||
mov edi,edx ; Adresse des valeurs des registres … passer … l'interruption
|
||||
add edx,40h ; EDX=segment du buffer d'infos VESA
|
||||
shr edx,4
|
||||
mov ax,Mode ; ECX=Mode vid‚o dont ont recherche les informations
|
||||
mov dword ptr[edi+1Ch],00004F01h ; EAX pass‚ … l'interruption
|
||||
mov word ptr[edi+18h],ax ; ECX pass‚ … l'interruption
|
||||
mov dword ptr[edi+00h],00000000h ; EDI pass‚ … l'interruption
|
||||
mov word ptr[edi+22h],dx ; ES pass‚ … l'interruption
|
||||
shl edx,4
|
||||
mov ax,0300h ; Service DPMI simuler une interruption en mode r‚el
|
||||
mov bl,10h ; Interruption … appeler (int vid‚o)
|
||||
xor bh,bh ; Flags de mode d'appel d'interruption
|
||||
xor cx,cx ; Nb d'elements de la pile … passer
|
||||
int 31h ; Appel de l'interruption du DPMI
|
||||
|
||||
; On place dans EBX la valeur EAX de retour de l'interruption
|
||||
mov ebx,dword ptr[edi+1Ch]
|
||||
|
||||
; On recopie le buffer du mode r‚el vers le mode prot‚g‚
|
||||
mov ecx,64 ; (64 dword = 256 octets)
|
||||
mov esi,edx
|
||||
mov edi,Buffer
|
||||
rep movsd
|
||||
|
||||
; Puis on corrige chacune des adresses:
|
||||
mov edi,Buffer
|
||||
add edi,0Ch
|
||||
call Convertir_adresse_MR_MP ; Adresse WinFuncPtr (Mode r‚el)
|
||||
|
||||
; On libŠre le buffer en mode r‚el de 256+64 octets
|
||||
mov ax,0101h ; "DPMI : Free Dos memory blocks"
|
||||
pop dx ; DX = handle du buffer
|
||||
int 31h
|
||||
jnc GVMI_Pas_d_erreur
|
||||
|
||||
|
||||
GVMI_Erreur:
|
||||
|
||||
mov bx,0FF00h
|
||||
|
||||
GVMI_Pas_d_erreur:
|
||||
|
||||
mov ax,bx
|
||||
|
||||
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
|
||||
ret
|
||||
|
||||
Get_VESA_mode_info endp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
_TEXT ENDS
|
||||
END
|
||||
100
testvesa/vesa.h
100
testvesa/vesa.h
@ -1,100 +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 _VESA_H_
|
||||
#define _VESA_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 vid‚os support‚s par le VESA
|
||||
word Memoire; // Taille de la m‚moire 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 r‚vision
|
||||
|
||||
// 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 r‚el(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 m‚moire (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 m‚moire (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 d‚but de la m‚moire offscreen (2Ch)
|
||||
word Taille_offscreen; // Taille de la m‚moire offscreen en Ko (30h)
|
||||
|
||||
// Filler
|
||||
byte Filler[206];
|
||||
};
|
||||
|
||||
|
||||
|
||||
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);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
rm grafx2-beta-svn*.zip
|
||||
wine ide grafx2.wpj
|
||||
zip -j grafx2-beta-svn`svnversion`.zip grafx2.exe ../gfx2.dat ../gfx2.cfg ../gfx2.ini ~/.wine/drive_c/WATCOM/binnt/mt7r17.dll ~/.wine/drive_c/WATCOM/binnt/clbr17.dll ~/.wine/drive_c/windows/system32/SDL.dll
|
||||
Loading…
x
Reference in New Issue
Block a user