EPB

Programmation d'applications complexes
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: EPB

Message par SPH »

Ce code refuse d'etre executé alors qu'il fonctionne sous PB. Pkoi ?

Code : Tout sélectionner

i.l
a.l
b.l
c.l
t.l=ElapsedMilliseconds()
; for i=1 to 100000000
!  MOV    dword [v_i],1
!_For1:
!  MOV    eax,100000000
!  CMP    eax,dword [v_i]
!  JL    _Next2
; a=14
!  MOV    dword [v_a],14
; b=15
!  MOV    dword [v_b],15
; c=16
!  MOV    dword [v_c],16
; Next
!_NextContinue2:
!  INC    dword [v_i]
!  JNO   _For1
!_Next2:

t=ElapsedMilliseconds()-t
MessageRequester("Chrono", str(t)+"ms", 0)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

si tu utilise EPB

1er -- lis la Doc en PDF que j'ai fait expres pour éviter ce genre d'erreur !! ;)

il te faut Appuyer sur la touche F8 (située au dessus des touches du clavier .... on appel ça des touches de fonctions ;) )

ça va lancer les Options (remarque qu'il existe aussi un icone pour ça ... ) Image


Image


une fois les options lancés ... la première page , t'offre la possibilité de cocher plusieurs petite cases
parmi celles-ci une concerne "Activer l'assembleur en ligne" ;)
étonnant non ?


profite en pour paramétrer EPB comme il faut , en lui indiquant le chemin vers les 2 Compilateurs (32bit ET 64 bits)... ( il faut cliquer sur le fichier "pbcompiler.exe" du dossier "Compiler" )
et te choisir un profil de couleur ...
note que tu peux faire le tiens ....
tu sauvegarde ton Style :
que tu peux poster ici , de sorte que je l'inclue dans la prochaine archive ...
pour ça tu vas dans le dossier "Styles" apres avoir sauver ton style

tu édites le fichier "SPH" et tu copie son contenu ici ;)



je te re-conseil vivement de lire la Doc jointe avec EPB , elle contient d'autres informations tres importantes
notamment pour activer le Débuggeur ...

la doc se trouve dans le dossier "A lire"
et porte le nom "A lire.pdf"

:)
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: EPB

Message par Micoute »

Si ça peut intéresser, je propose mes préférences

Code : Tout sélectionner

;  ********** styles de couleur de epb *********
[coloration]
fond = 15925245
ecriture = 3155994
ligne selectionne = -1
curseur = 0
blocs fond = 307864
blocs text = 0
numeros de ligne text = 0
numeros de ligne fond = 16777215
basic = 2002243
type du basic = 1
fonctions = 10761617
type des fonctions = 1
fonctions perso = 7626553
types de variables = 14899042
type de variables = 0
commentaires = 45056
type des commentaires = 0
strings = 255
type des strings = 0
chiffres = 0
type des chiffres = 0
constantes = 33023
type des constantes = 0
Apis = 7084280
type des Apis = 0
debugger = 16187647
type debugger = 0
Hexa = 6782995
type Hexa = 0
Binaire = 5291553
type Binaire = 0
Pointeur = 16753919
type Pointeur = 0
Fond Procedure = 14808764
signe = 359530
type signe = 0
Fonte = Verdana
Taille Fonte = 10
chemin icones = 
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

ce sera integré dans le prochain opus :)
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: EPB

Message par SPH »

Le code generé en asm devrait etre executable. Mais il manque tous les "!" devant les instructions asm :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

SPH a écrit :Le code generé en asm devrait etre executable. Mais il manque tous les "!" devant les instructions asm :idea:
normal , je ressort un code que le compilateur Purebasic ,génère juste avant le linkage ...
EPB n'est pas un editeur Assembleur . mais un éditeur Purebasic . :)

il permet juste de voir a quoi ressemble notre code Purebasic en Assembleur ..
on peut coder en "Assembleur Purebasic" dans EPB , mais je n'ai jamais voulu en faire un éditeur d'Assembleur ..
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: EPB

Message par SPH »

pourtant, si tu rajoute un "!" devant toutes les instructions, ca le ferait...

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

t'es sur ?

je dois dire , que j'ai meme pas testé :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

oui mais bon , ça force a modifier pas mal le source quand meme :)

j'ai testé a partir de ce code Purebasic

Code : Tout sélectionner

for i=32 to 255
 debug i
next i
voici ce que j'ai du modifier sur la version assembleur pour que ça marche dans l'editeur Purebasic

Code : Tout sélectionner


; 
; PureBasic 4.61 (Windows - x86) generated code
; 
; (c) 2012 Fantaisie Software
; 
; The header must remain intact for Re-Assembly
; 
; :System
; KERNEL32
; :Import
; 
;format MS COFF
; 
; 
; !extrn _ExitProcess@4
; !extrn _GetModuleHandleA@4
; !extrn _HeapCreate@12
; !extrn _HeapDestroy@4
; !extrn _memset
; !public _PB_Instance
; !public _PB_ExecutableType
; !public _PB_OpenGLSubsystem
; !public _PB_MemoryBase
; !public PB_Instance
; !public PB_MemoryBase
; !public _PB_EndFunctions


; !macro pb_public symbol
; !{
; !public  _#symbol
; !public symbol
; !_#symbol:
; !symbol:
; !}
; 
; !macro    pb_align value { rb (value-1) - ($-_PB_DataSection + value-1) mod value }
; !macro pb_bssalign value { rb (value-1) - ($-_PB_BSSSection  + value-1) mod value }
; !public PureBasicStart
; ; 
; !section '.code' code readable executable align 8
; ; 
; ; 
; !PureBasicStart:

; 
i=0 ;  <<<<----------------------- re Ajouté a la main Par Dobro
!PUSH   dword I_BSSEnd-I_BSSStart
!PUSH   dword 0
!PUSH   dword I_BSSStart
!CALL  _memset
!ADD    esp,12
!PUSH   dword 0
!CALL  _GetModuleHandleA@4
!MOV    [_PB_Instance],eax
!PUSH   dword 0
!PUSH   dword 4096
!PUSH   dword 0
!CALL  _HeapCreate@12
!MOV    [PB_MemoryBase],eax
; 
; 
; for i=32 to 255
!MOV    dword [v_i],32
!_For1:
!MOV    eax,255
!CMP    eax,dword [v_i]
!JL    _Next2
debug i  ;<<<<<<<< -------------- re Ajouté a la main Par Dobro
; next i
!_NextContinue2:
!INC    dword [v_i]
!JNO   _For1
!_Next2:
; 
; 
; 
; 
; 

; 
; !_PB_EOP_NoValue:
; !PUSH   dword 0
; !_PB_EOP:
; !CALL  _PB_EndFunctions
; !PUSH   dword [PB_MemoryBase]
; !CALL  _HeapDestroy@4
; !CALL  _ExitProcess@4
; !_PB_EndFunctions:
; !RET
; ; 
; ; 
; !section '.data' data readable writeable
; 
; !_PB_DataSection:
; !_PB_OpenGLSubsystem: db 0
;  !pb_public PB_DEBUGGER_LineNumber
;  !dd     -1
;  !pb_public PB_DEBUGGER_IncludedFiles
;  !dd     0
;  !pb_public PB_DEBUGGER_FileName
;  !db     0
;  !_PB_ExecutableType: dd 0
;  !align 4
;  !align 4
;  !s_s:
;  !dd     0
;  !dd     -1
;  !align 4

; 
; !section '.bss' readable writeable
; !_PB_BSSSection:
; !align 4
; 
; !I_BSSStart:
; !_PB_MemoryBase:
; !PB_MemoryBase: rd 1
; !_PB_Instance:
; !PB_Instance: rd 1
; 
; !align 4
; !PB_DataPointer rd 1
; !v_i rd 1
; !align 4
; !align 4
; !align 4
; !align 4
; !I_BSSEnd:
; !section '.data' data readable writeable
; !SYS_EndDataSection:




; EPB
j'ai quand meme due ajouter les "!" .. mais aussi

j'ai due Commenter la majorité du code , mais en plus
ajouter a la main la variable i=1 , qui n'etait pas reconnue sinon ...
et Ajouter le Debug au bon endroit pour que ça marche ...

et là le code est tres simple , imagine sur un code plus complexe ... :roll:

donc, le simple fait d'ajouter des "!" ne suffit pas ... loin de là

je ne sais meme pas ce qu'il faudrait modifier si utilisation de structures , dataSection ...etc ... :?

c'est mal barré :lol:
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: EPB

Message par SPH »

En fait, il n'y a que ce code d'utile avec les "!" devant.
Mais il faut rajouter devant un i.l

Code : Tout sélectionner

; for i=32 to 255
!MOV    dword [v_i],32
!_For1:
!MOV    eax,255
!CMP    eax,dword [v_i]
!JL    _Next2
debug i  ;<<<<<<<< -------------- re Ajouté a la main Par Dobro
; next i
!_NextContinue2:
!INC    dword [v_i]
!JNO   _For1
!_Next2:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

EPB V2.40

passage du programme en version purebasic 5.11
correction d'un gros Bug , sur l'utilisation des menus "<-" et "->" (swap d'onglet )
qui pouvait amener un plantage si l'un des onglets a échanger avait le nom "Nouveau"

le problème de sélection des mots avec accent n'est pas vraiment résolu
mais je me suis rendu compte que ça variait avec le type de listing chargé
avec certains , ça marche très bien ... avec d'autres pas du tout ! :roll:

bref , j'ai décider de mettre un alerte pour avertir que la recherche d'un mot avec accent
pouvait occasionner des problèmes de sélection...heureusement, dans un code , les accents sont assez rares ...
pour les mots sans accent , ça marche tres bien :)

une recherche avec EPB , ont pose le curseur sur un mot , et Ctrl+F
c'est parti ... (pas de selection du mot a faire)
ou bien Ctrl+f et on entre le mot qu'on recherche ....



ajout d'une nouvelle commande de type $xxxxx
il s'agit de $intro
si vous écrivez "$intro" au debut du code , un cartouche viendra s'inserer a la place de cette commande
(c'est le même principe avec toute les commandes "$xxxx" de EPB )

le cartouche ressemble a ça :

;***********************************************
;Titre :le nom du prg en cours d'edition
;Auteur : Dobro <---- ici vous mettez votre pseudo
;Date :25/08/2013 ; la date du jour au moment de l'utilisation de la commande $intro
;Heure :22:25:45 ; l'heure au moment de l'utilisation de la commande $intro
;Version Purebasic : PureBasic 5.11 (Windows - x86) ; la version du compilateur utilisé au moment de l'utilisation de la commande $intro
;Version de l'editeur :EPB V2.40 ; Version de EPB utilisé
;***********************************************

ce sont de simples lignes, qui peuvent etre effacé , ou editer ....
ça permet d'avoir une information sur le code , et sur qu'elle version de purebasic il a été codé ...

je code tout les jours avec EPB , il ne montre pas de problemes d'utilisation
j'ai d'abord fait ce prg pour moi meme , mais peut etre allez vous l'adopter

il a sont petit lots d’inconvénients (peu en fait )

lenteur de la mise en forme
uniquement pour Windows
n'as pas la complétion des éléments d'une Structure, ni des variables (mais a la complétion des constantes, et des fonctions )


et beaucoup d'avantages ... l'air de rien , le principe des commandes ($path,$declare,$intro,etc... )
dépanne bien la vie :)

il reste rapide quelque soit la taille du code
seule la mise en forme (Ctrl+tab ) peut prendre du temps
ça permet de reflechir :lol:

dans les avantages :
on peut cliquer sur tout les éléments des liste a droite de l'editeur , ça marchera , l'editeur sautera au bon endroit
on peut cliquer a gauche des ligne de code pour effectuer une selection
ça ne refermera pas le Folder (ça c'est pénible avec Jabpe :) )

l'essayer c'est l'adopter :)


ps : pour le télécharger , il vous faut ouvrir un compte sur mon site ! (adresse dans mon profil)
je confirme les comptes a la main... donc ne cherchez pas a vous connecter tout de suite
vous seriez vue comme un Spammeur et votre ip serai automatiquement Bannis ....
vous recevrez un email qui vous dira que votre compte est ouvert ..
donc renseignez une bonne adresse email ;)
et utilisez le meme pseudo qu'ici .. si je ne connais pas , je valide pas ..

si par hasard vous aviez un probleme de connexion
un petit message privé ici .... :)
Dernière modification par Backup le mar. 27/août/2013 0:26, modifié 1 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: EPB

Message par Ar-S »

Dobro a écrit :EPB V2.40

passage du programme en version purebasic 5.11
correction d'un gros Bug , sur l'utilisation des menus "<-" et "->" (swap d'onglet )
qui pouvait amener un plantage si l'un des onglets a échanger avait le nom "Nouveau"

le problème de sélection des mots avec accent n'est pas vraiment résolu
mais je me suis rendu compte que ça variait avec le type de listing chargé
avec certains , ça marche très bien ... avec d'autres pas du tout ! :roll:

bref , j'ai décider de mettre un alerte pour avertir que la recherche d'un mot avec accent
pouvait occasionner des problèmes de sélection...heureusement, dans un code , les accents sont assez rares ...
pour les mots sans accent , ça marche tres bien :)

une recherche avec EPB , ont pose le curseur sur un mot , et Ctrl+F
c'est parti ... (pas de selection du mot a faire)
ou bien Ctrl+f et on entre le mot qu'on recherche ....



ajout d'une nouvelle commande de type $xxxxx
il s'agit de $intro
si vous écrivez "$intro" au debut du code , un cartouche viendra s'inserer a la place de cette commande
(c'est le même principe avec toute les commandes "$xxxx" de EPB )

le cartouche ressemble a ça :

;***********************************************
;Titre :le nom du prg en cours d'edition
;Auteur : Dobro <---- ici vous mettez votre pseudo
;Date :25/08/2013 ; la date du jour au moment de l'utilisation de la commande $intro
;Heure :22:25:45 ; l'heure au moment de l'utilisation de la commande $intro
;Version Purebasic : PureBasic 5.11 (Windows - x86) ; la version du compilateur utilisé au moment de l'utilisation de la commande $intro
;Version de l'editeur :EPB V2.40 ; Version de EPB utilisé
;***********************************************

ce sont de simples lignes, qui peuvent etre effacé , ou editer ....
ça permet d'avoir une information sur le code , et sur qu'elle version de purebasic il a été codé ...

je code tout les jours avec EPB , il ne montre pas de problemes d'utilisation
j'ai d'abord fait ce prg pour moi meme , mais peut etre allez vous l'adopter

il a sont petit lots d’inconvénients (peu en fait )

lenteur de la mise en forme
uniquement pour Windows
n'as pas la complétion des éléments d'une Structure, ni des variables (mais a la complétion des constantes, et des fonctions )


et beaucoup d'avantages ... l'air de rien , le principe des commandes ($path,$declare,$intro,etc... )
dépanne bien la vie :)

il reste rapide quelque soit la taille du code
seule la mise en forme (Ctrl+tab ) peut prendre du temps
ça permet de reflechir :lol:

dans les avantages :
on peut cliquer sur tout les éléments des liste a droite de l'editeur , ça marchera , l'editeur sautera au bon endroit
on peut cliquer a gauche des ligne de code pour effectuer une selection
ça ne refermera pas le Folder (ça c'est pénible avec Jabpe :) )

l'essayer c'est l'adopter :)

ps : pour le télécharger , il vous faut ouvrir un compte sur mon site ! (adresse dans mon profil)
je confirme les comptes a la main... donc ne cherchez pas a vous connecter tout de suite
vous seriez vue comme un Spammeur et votre ip serai automatiquement Bannis ....
vous recevrez un email qui vous dira que votre compte est ouvert ..
donc renseignez une bonne adresse email ;)

si par hasard vous aviez un probleme de connexion
un petit message privé ici .... :)
il devient vraiment intéressant le petit epb.
Comme il est compilé en 5.11 est-ce que les modifs frame3Dgadget etc... de la 5.20 sont prises en compte si on le met dans le rep de ce dernier ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

Ar-S a écrit : Comme il est compilé en 5.11 est-ce que les modifs frame3Dgadget etc... de la 5.20 sont prises en compte si on le met dans le rep de ce dernier ?
t’étais pas obligé de citer tout mon message :)

normalement oui !
parceque la coloration /syntaxe des mots clef c'est le compilateur qui me les envoient

donc si tu met le chemin du compilateur de la 5.20
ça doit marcher :)

deja que j'ai rien eu a faire pour les decoupes de la version 5.10

ce sont les chemins des compilateur , indiqué dans EPB qui font que EPB, travail avec Tel ou tel version ...
Epb peut etre a un endroit et travailler avec un compilateur situé a un autre ....
pas obligé de mettre EPB dans un dossier d'une version de Purebasic...
chez moi EPB est meme carrément ailleurs dans une autre arborescence

j'ai différents dossier avec chaque version de Purebasic
il m'arrive de mettre la version 4.61
et aussi la Version 5.11 (les 2 version en 32bits ) simplement je renseigne le chemin prevu pour la 64bits avec un compilo d'une version 32 bits
comme ça je dispose de 2 version de Purebasic en 32 bits
on pourrai mettre une 32 et une 64 :)

j'avais ajouté des coches pour activer ou pas un compilo au choix :)
c'es l'avantage de lancer le compilo au vol a chaque compilation ... (au lieu de l'avoir en permanence en Ram )
Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

correction d'un bug de derniere minute ; qui pouvais empêcher le lancement de la fenetre d'option (F8)
si l'on copiait le dossier EPB, en lieu et place d'une ancienne config

j'ai repassé EPB en téléchargement publique
je pense que l'inscription sur mon site peut etre un frein a sa récupération...

d'autant que le menu "mise a jour" de EPB, au cas ou une mise a jour se présente
nous téléporte directement sur la Page de téléchargement , ce qui , si on est obligé de s'inscrire
peut empêcher son rapatriement ....puisqu'il faut repasser par la page d'accueil du site...

bon, voici donc le lien direct vers EPB
http://michel.dobro.free.fr/download.php?view.25
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

arf ! desolé pour celui qui viens de recuperer EPB
http://michel.dobro.free.fr/download.php?view.25

je viens de mettre en ligne une version legerement améliorée :)

ajout des commandes
$dec
$hex
$bin


ces commandes inserent a l'endroit du curseur une valeur traduite
par exemple vous tapez

Code : Tout sélectionner

a=$hex
....... un input requester s'ouvre , vous entrez "15" puis [enter]
EPB ecrira

Code : Tout sélectionner

a=$f
on peut entrer un chiffre binaire en précédant avec '%' ex : "%1001"
Epb ecrira

Code : Tout sélectionner

a=$9
pareil pour les autres commandes
$dec pour avoir en decimal
$hex pour avoir en hexa
$bin pour avoir en binaire


la commande $pi ...... insérera a l'emplacement du curseur "3.1415926536"
la commande $date .... insèrera la date du moment (sous la forme : "31/08/2013" )
la commande $heure ... insèrera l'heure du moment ( sous la forme : "14:14:19" )

voila ... c'est tout pour le moment :)

ps: si vous avez des idées de commandes "$xxx" dites toujours :)

(pas de $faitmoiunfpsquiarrache ...:lol:)
Dernière modification par Backup le sam. 31/août/2013 19:48, modifié 1 fois.
Verrouillé