From 73cd2e4e5d46eec3127f5e7c4bdd83db5da9d7f6 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Wed, 21 Jan 2009 15:03:19 +0000 Subject: [PATCH] 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 --- Anciens fichiers/readme!.1st | 145 ------------------- Anciens fichiers/readme.txt | 60 -------- Makefile | 1 + gfx2.png | Bin 0 -> 638 bytes testvesa/comp.bat | 26 ---- testvesa/make.inc | 4 - testvesa/makefile | 8 -- testvesa/testvesa.c | 214 --------------------------- testvesa/testvesa.exe | Bin 40426 -> 0 bytes testvesa/vesa.asm | 256 --------------------------------- testvesa/vesa.h | 100 ------------- testvesa/weoslite.exe | Bin 13078 -> 0 bytes windows-watcom/buildrelease.sh | 4 - 13 files changed, 1 insertion(+), 817 deletions(-) delete mode 100644 Anciens fichiers/readme!.1st delete mode 100644 Anciens fichiers/readme.txt create mode 100644 gfx2.png delete mode 100644 testvesa/comp.bat delete mode 100644 testvesa/make.inc delete mode 100644 testvesa/makefile delete mode 100644 testvesa/testvesa.c delete mode 100644 testvesa/testvesa.exe delete mode 100644 testvesa/vesa.asm delete mode 100644 testvesa/vesa.h delete mode 100644 testvesa/weoslite.exe delete mode 100755 windows-watcom/buildrelease.sh diff --git a/Anciens fichiers/readme!.1st b/Anciens fichiers/readme!.1st deleted file mode 100644 index ab094da5..00000000 --- a/Anciens fichiers/readme!.1st +++ /dev/null @@ -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. - ú diff --git a/Anciens fichiers/readme.txt b/Anciens fichiers/readme.txt deleted file mode 100644 index 9cf4b3b4..00000000 --- a/Anciens fichiers/readme.txt +++ /dev/null @@ -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 diff --git a/Makefile b/Makefile index 64f5a4ac..eb8cce32 100644 --- a/Makefile +++ b/Makefile @@ -151,6 +151,7 @@ else RMDIR = rmdir CP = cp ZIP = zip + PLATFORMFILES = gfx2.png ifdef WIN32CROSS #cross compile a Win32 executable diff --git a/gfx2.png b/gfx2.png new file mode 100644 index 0000000000000000000000000000000000000000..29e7fc867024a254008276ad0a56b1c5e46b4e4d GIT binary patch literal 638 zcmV-^0)hRBP)Px#7*I@9MPYCN000000RMmhfB=AifPjF&z`+0i|42)3-v9sr0d!JMQvg8b*k%9# z0tZP%K~y-)O_a@!oG=iC;SDysD{-E-1!u6dIj?1D?z!X~vNaF7F|sLt z{m*pY+UnZs&-0+ZUYgL(f3PX4N5Rg48p|QEP|!n5x!)ZbVxD%92%+G9j-`AW@KMnG3l7w(5-DSR@3iAkJ7 zDNz`Jd=VHot*e`&?^x(oCfXoa>CRkV(Ae+bvq2zK222g;HpG?l8 zLeAAW$aB{p+43umSl!@^@)R?a-3JSW@&**Hr;~Fjy-Wsl-Mc$RjB5+a03zpY*2&_U zy`Aq3K%pE7Z2)?A47a+A)(dC|g-zMm6KDtmoph`E1ayNt$L$fu{uBKHBUSA7_7qe% zWHxS{c>5_00}y_dOIYR$sC2>K5#fep2+C{uR^v7Ww}jcI)vs0?PThG(=>_BMfDJ#3 z0-Iq;b2oe$fH%KcUDjnmTqYRc5xEdd$kyrB2ovPvK~wgjoCAVOV@=y`#AdNJWQXvf zjCbI0doW&(Y2O|xH9?WVD&bWYN#CocOJHA7)IKB$n?4X01%8YaP@va^nTAD7u>5xG zLZ23F$ypv8fz_MvmQar5CCRMlIT}6uf->jD`YPgGd!rIeID8Oqt^di_+?{_*=VYAc Ye`gcmS7amLwg3PC07*qoM6N<$f*to6)Bpeg literal 0 HcmV?d00001 diff --git a/testvesa/comp.bat b/testvesa/comp.bat deleted file mode 100644 index 323963aa..00000000 --- a/testvesa/comp.bat +++ /dev/null @@ -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 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 \ No newline at end of file diff --git a/testvesa/make.inc b/testvesa/make.inc deleted file mode 100644 index 40bfa694..00000000 --- a/testvesa/make.inc +++ /dev/null @@ -1,4 +0,0 @@ -system dos4g -op stub=weoslite.exe -file vesa,testvesa -name testvesa diff --git a/testvesa/makefile b/testvesa/makefile deleted file mode 100644 index 34da38cb..00000000 --- a/testvesa/makefile +++ /dev/null @@ -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 diff --git a/testvesa/testvesa.c b/testvesa/testvesa.c deleted file mode 100644 index 89f817d5..00000000 --- a/testvesa/testvesa.c +++ /dev/null @@ -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 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 -#include -#include -#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 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 diff --git a/testvesa/vesa.asm b/testvesa/vesa.asm deleted file mode 100644 index 1b8ea4b6..00000000 --- a/testvesa/vesa.asm +++ /dev/null @@ -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 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 diff --git a/testvesa/vesa.h b/testvesa/vesa.h deleted file mode 100644 index ef7f0332..00000000 --- a/testvesa/vesa.h +++ /dev/null @@ -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 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 diff --git a/testvesa/weoslite.exe b/testvesa/weoslite.exe deleted file mode 100644 index 5dd123ac8202571754cf8a1fbbc2357f183b5b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13078 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 CBVp_S diff --git a/windows-watcom/buildrelease.sh b/windows-watcom/buildrelease.sh deleted file mode 100755 index 7be67f18..00000000 --- a/windows-watcom/buildrelease.sh +++ /dev/null @@ -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