LhTools - Cross-Assembler/Desassembleur pour PC-1500
Modérateur : Politburo
-
- Fonctionne à 2400 bauds
- Messages : 2221
- Enregistré le : 13 mars 2006 15:39
- Localisation : Issy
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Je suis en train de modifier l'écran de Debug pour intégrer les symboles issues par exemple de LHASM.
J'ai encore un soucis avec le desassemblage qui a des ratés lorsqu'il fait du pas à pas sur une ROM accédée par le bus mémoire.
J'ai encore un soucis avec le desassemblage qui a des ratés lorsqu'il fait du pas à pas sur une ROM accédée par le bus mémoire.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
- phe78
- Fonctionne à 1200 bauds
- Messages : 722
- Enregistré le : 22 avr. 2011 19:08
- Localisation : Les Adrets de l'Esterel (Var)
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
GENIAL ! j'ai charge le binaire du FORTH, ca marche nickel, y compris l'imprimante ! Par contre (je ne sais pas comment j'ai fait, probablement l'effet du Cotes du Rhone j'ai reussi a "debrancher" le PC1500 du CE150 et elle imprime encore !
Juste une question : la vitesse semble similaire a l'original quelque soit le setting de CPU Speed, peut-etre cela vient-il de mon PC (c'est un X60 Lenovo un peu vieillot)
Je vais maintenant ( ou plutot demain, je vais avoir des remarques sinon.....) essayer le debug/step-step, ca fait un environnement de dev vraiment genial avec les outils de cgh
Juste une question : la vitesse semble similaire a l'original quelque soit le setting de CPU Speed, peut-etre cela vient-il de mon PC (c'est un X60 Lenovo un peu vieillot)
Je vais maintenant ( ou plutot demain, je vais avoir des remarques sinon.....) essayer le debug/step-step, ca fait un environnement de dev vraiment genial avec les outils de cgh
- badaze
- Fonctionne à 14400 bauds
- Messages : 8412
- Enregistré le : 12 févr. 2007 18:36
- Localisation : Pas très loin de Lyon
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Il y a peut être un buffer.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
-
- Fonctionne à 2400 bauds
- Messages : 2221
- Enregistré le : 13 mars 2006 15:39
- Localisation : Issy
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Non, il n'y a pas de buffer car les moteurs pas à pas sont pilotés par le CPU du PC-1500.
Ce n'est tout simplement pas possible que l'imprimante imprime, PC débranché.
DONC le pc-1500 était toujours connecté (pour PockEmul) , seul sa position à l'écran a changé, ce qui donne l'impression d'une déconnexion
Ce n'est tout simplement pas possible que l'imprimante imprime, PC débranché.
DONC le pc-1500 était toujours connecté (pour PockEmul) , seul sa position à l'écran a changé, ce qui donne l'impression d'une déconnexion
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
-
- Fonctionne à 2400 bauds
- Messages : 2221
- Enregistré le : 13 mars 2006 15:39
- Localisation : Issy
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Premier problème de la version Windows, il transforme les &0A en &0D &0A, ce qui est plutôt génant dans le fichier cible binaire
il faut donc modifier la ligne 3018 de lhasm.c comme suit:
Je pense que c'est le seul endroit où cela pose problème car c'est le seul fichier binaire produit par lhasm.
il faut donc modifier la ligne 3018 de lhasm.c comme suit:
Code : Tout sélectionner
if( 0 > (fdw = fopen( outfile, "wb" )) )
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
-
- Fonctionne à 2400 bauds
- Messages : 2221
- Enregistré le : 13 mars 2006 15:39
- Localisation : Issy
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Je pense avoir trouvé le problème de non INCLUDE sous Windows
La commande stat ligne 1495 renvoie un st_ino toujours à 0 au lieu d'in id unique sous linux.
La commande stat ligne 1495 renvoie un st_ino toujours à 0 au lieu d'in id unique sous linux.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Merci pour tout ce debug.
Bien vu, le coup du fopen(..., "wb"); Je n'avais jamais vu... Sur les systemes POSIX, ce n'est pas utilise. Je note...
st_ino n'est pas un unsigned short, mais d'un type ino_t dependant du systeme et defini dans sys/stat.h... Sur tous les OS POSIX, je n'ai aucun probleme avec cette partie de code.
Bien vu, le coup du fopen(..., "wb"); Je n'avais jamais vu... Sur les systemes POSIX, ce n'est pas utilise. Je note...
st_ino n'est pas un unsigned short, mais d'un type ino_t dependant du systeme et defini dans sys/stat.h... Sur tous les OS POSIX, je n'ai aucun probleme avec cette partie de code.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
-
- Fonctionne à 2400 bauds
- Messages : 2221
- Enregistré le : 13 mars 2006 15:39
- Localisation : Issy
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
eh oui, c'est un peu tordu.
voilà la correction
remplacer la ligne 1495
par les 2 lignes:
Incroyable !!! fstat génère bien des inodes
edit: pas plus mal aussi de rajouter un close(fildes); aprés le test.
voilà la correction
remplacer la ligne 1495
Code : Tout sélectionner
if( -1 == stat( incfile, &st ) )
Code : Tout sélectionner
int fildes = open(incfile, O_RDONLY);
if( -1 == fstat(fildes, &st ) )
edit: pas plus mal aussi de rajouter un close(fildes); aprés le test.
Modifié en dernier par remy le 26 févr. 2014 12:45, modifié 1 fois.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Attention cependant, car le fichier peut-etre binaire OU en texte hexa (option -x). Il faudra alors tester le flag de l'option -x (LHASM_OUTPUT_HEX) et utiliser "w" ou "wb" respectivement. Sinon le fichier texte hexa sera illisible sous Windows.remy a écrit :Premier problème de la version Windows, il transforme les &0A en &0D &0A, ce qui est plutôt génant dans le fichier cible binaire
il faut donc modifier la ligne 3018 de lhasm.c comme suit:Je pense que c'est le seul endroit où cela pose problème car c'est le seul fichier binaire produit par lhasm.Code : Tout sélectionner
if( 0 > (fdw = fopen( outfile, "wb" )) )
Code : Tout sélectionner
if( 0 > (fdw = fopen( outfile, (asmflags & LHASM_OUTPUT_HEX ? "w" : "wb") )) )
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Je propose plutot d'utiliser ce fil pour les suggestions/evolutions des lhTools !
Oui. Je vois bien quel est le besoin et les limites. Pour le cas du PC-1500, il faut aussi retirer de la RAM la partie "SYSTEME", de &7000 a &7FFF.
Je vais voir ce que je peux faire, et ce que j'aurais comme idees, en plus des votres et de vos suggestions.
On dit:
Oui. Je vois bien quel est le besoin et les limites. Pour le cas du PC-1500, il faut aussi retirer de la RAM la partie "SYSTEME", de &7000 a &7FFF.
Je vais voir ce que je peux faire, et ce que j'aurais comme idees, en plus des votres et de vos suggestions.
On dit:
- .ROM et .RAM pour les "sections" en ROM et/ou en RAM.
- .PC1500 et .PC1560 et voir meme .PC1500A, ce qui ouvrira une zone LM (.LM ?) de &7C01 a &7FFF).
- .SYS pour la zone des variables systemes (uniquement avec .PC1500 ou .PC1500A)
- on peut aussi ajouter: .CE161 .CE159 .CE155 et .CE151 pour le controle de la RAM en fonction du module present dans la machine. Du coup, cela changera automatiquement le .ORIGIN: par defaut en fonction du module (qui est de &40C5 pour tous les PC...)
- .USERAM <deb> <fin> qui permettra de definir la zone RAM de son choix. De meme que .USEROM <deb> <fin>.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
- phe78
- Fonctionne à 1200 bauds
- Messages : 722
- Enregistré le : 22 avr. 2011 19:08
- Localisation : Les Adrets de l'Esterel (Var)
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
hello, j'ai modifie les definition de la WORKAREA pour qu'elles ne contiennent plus que des EQU. le package est dispo ici.
Probleme, dans le format RAM/ROM ou je ne devrais avoir que du binaire correspondant au code de la ROM, le BIN contient malgre tout toute la zone RAM :
ci-dessous les declarations dans le MAIN (en dessous un extrait de WORKAREA) :
debut de WORKAREA :
Probleme, dans le format RAM/ROM ou je ne devrais avoir que du binaire correspondant au code de la ROM, le BIN contient malgre tout toute la zone RAM :
Code : Tout sélectionner
philippe@philippe-X60-linux ~/Documents/PC1500/FORTH/FORTH110 $ lhasm -D ROM=1 -L MAIN.l MAIN.asm
Written 55274 bytes (00C5:D8AF) to MAIN.bin Checksum DF95
philippe@philippe-X60-linux ~/Documents/PC1500/FORTH/FORTH110 $ lhasm -L MAIN.l MAIN.asm
Written 7141 bytes (00C5:1CAA) to MAIN.bin Checksum D89C
philippe@philippe-X60-linux ~/Documents/PC1500/FORTH/FORTH110 $
Code : Tout sélectionner
.IF EXIST? ROM
;#################################################
;# ROM / RAM implementation #
;#################################################
;-------------------------------------------------
; RAM part
;-------------------------------------------------
.ORIGIN: ORGRAM
.INCLUDE: EQUATES.asm ; EQU definitions
.INCLUDE: MACROS.asm ; word header macros
;-------------------------------------------------
.INCLUDE: WORKAREA.asm ; variables, user area
ENDDICT .EQU ENDWORKAREA ; user's code starts here
;-------------------------------------------------
; ROM part
;-------------------------------------------------
.ORIGIN: ORGROM
JP MAIN ; cold start entry point
.INCLUDE: KERNEL.asm ; machine code kernel
.INCLUDE: HIGHLEVEL.asm ; FORTH words kernel
;
.ELSE
;#################################################
;# RAM implementation #
;#################################################
.ORIGIN: ORGRAM
.INCLUDE: EQUATES.asm ; EQU definitions
.INCLUDE: MACROS.asm ; word header macros
;-------------------------------------------------
JP MAIN ; cold start entry point
.INCLUDE: WORKAREA.asm ; variables, user area
.ORIGIN: ENDWORKAREA
.INCLUDE: KERNEL.asm ; machine code kernel
.INCLUDE: HIGHLEVEL.asm ; FORTH words kernel
ENDDICT .EQU . ; user's code starts here
.ENDIF
;-------------------------------------------------
.END
Code : Tout sélectionner
;
%00m .EQU .
;-------------------------------------------------
; display / keyboard / printer area
;-------------------------------------------------
PRTFLAG .EQU %00m ; print mode flag
CHARPTR .EQU [+1]%00m ; char pointer in display buffer
DBUFF .EQU [+2]%00m ; Display buffer
KBUFF .EQU [+1D]%00m ; Terminal Input Buffer - 128 bytes
;-------------------------------------------------
; kernel stacks and work areas
;-------------------------------------------------
UAREA .EQU [+9D]%00m ; User Area - 128 bytes
BPSTACK .EQU [+11D]%00m ; Parameter stack - 128 bytes
PSTACK .EQU [+19C]%00m ; top of stack (grows down)
HAREA .EQU [+19D]%00m ; Hold Area - 40 bytes
....
....
;
ENDWORKAREA .EQU [+336]%00m ; code starts here (in all-RAM version)
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Quelle version des lhTools utilises-tu ? Si c'est une version < 0.4.8, c'est normal, car c'est le .END (meme si il n'est explicitement ecrit) qui valide l'origine.
Le fait d'appeler .INCLUDE: sur un fichier avec un .ORIGIN: 00C5 va forcer l'origine a &00C5, d'ou le debut du binaire en &00C5.
Il que tu regardes du cote des lhTools-0.4.8rc1.
Le fait d'appeler .INCLUDE: sur un fichier avec un .ORIGIN: 00C5 va forcer l'origine a &00C5, d'ou le debut du binaire en &00C5.
Il que tu regardes du cote des lhTools-0.4.8rc1.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Ce soir, je commence une grosse modif sur les lhTools (0.5.0).
J'ai rajoute l'option -m <machine> et -m <module> qui permet de fixer la configuration de la cible. Cela va permettre de fixer l'origine par defaut, automatiquement, mais en plus de controler que l'on est bien dans une section RAM, par exemple.
Les <machine> peuvent etre: pc1500 pc1500a pta4000+16 et pc1560. Si aucune machine n'est fixee, le pc1500 sera utilise par defaut.
Les <module> peuvent etre: ce151 ce155 ce159 et ce161 (couvrira aussi les ce163 et ce160). Un seul module accepte par machine. Aucun module pour le PTA-4000+16 ni pour le PC1560.
Les tests .IF MACHINE? [<machine>] et .IF MODULE? [<modulee>]. Les configurations par defaut sont statiques.
Il faudra apres ajoute des configuration dynamiques, RAM, ROM, LM (zone specifique au 1500A) et SYS (variables systemes).
De meme, des directives .RAM, .ROM, .LM et .SYS vont etre introduites. Elles vont renseigner lhasm sur la section ou le code produit est attendu. Par exemple, dans le cas de Remy avec le FORTH, mettre un .RAM mais continuer a assembler pour des adresses situees en ROM provoquera une FATAL ERROR !
J'ai introduit aussi la notion de version, qui permettra eventuellement de gerer des "compatibiltes" entre certains lhasm. De meme, il sera possible de refuser l'assemblage pour des versions de lhasm trop anciennes.
Enfin, je vais supprimer la mise a jour des pointeurs de l'ORIGIN: jusqu'a la premiere ligne de code ou le premier octet entre.
J'ai rajoute l'option -m <machine> et -m <module> qui permet de fixer la configuration de la cible. Cela va permettre de fixer l'origine par defaut, automatiquement, mais en plus de controler que l'on est bien dans une section RAM, par exemple.
Les <machine> peuvent etre: pc1500 pc1500a pta4000+16 et pc1560. Si aucune machine n'est fixee, le pc1500 sera utilise par defaut.
Les <module> peuvent etre: ce151 ce155 ce159 et ce161 (couvrira aussi les ce163 et ce160). Un seul module accepte par machine. Aucun module pour le PTA-4000+16 ni pour le PC1560.
Les tests .IF MACHINE? [<machine>] et .IF MODULE? [<modulee>]. Les configurations par defaut sont statiques.
Il faudra apres ajoute des configuration dynamiques, RAM, ROM, LM (zone specifique au 1500A) et SYS (variables systemes).
De meme, des directives .RAM, .ROM, .LM et .SYS vont etre introduites. Elles vont renseigner lhasm sur la section ou le code produit est attendu. Par exemple, dans le cas de Remy avec le FORTH, mettre un .RAM mais continuer a assembler pour des adresses situees en ROM provoquera une FATAL ERROR !
J'ai introduit aussi la notion de version, qui permettra eventuellement de gerer des "compatibiltes" entre certains lhasm. De meme, il sera possible de refuser l'assemblage pour des versions de lhasm trop anciennes.
Code : Tout sélectionner
.IF VERSION? 0.4.8
; lhasm version >= 0.4.8, c'est OK
.ELSE
.FATAL "Please, use lhTools version >= 0.4.8"
.ENDIF
Modifié en dernier par cgh le 01 mars 2014 13:56, modifié 1 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
-
- Fonctionne à 2400 bauds
- Messages : 2221
- Enregistré le : 13 mars 2006 15:39
- Localisation : Issy
- Contact :
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
puisque tu es dans les modif
Il semble que les INCLUDE imbriqués ne prennent pas en compte le répertoire courant du fichier père.
Je m'explique:
Fichier Firmware.asm:
.INCLUDE: FORTH/MAIN.asm
fichier MAIN.asm
.INCLUDE: EQUATES.asm
ERROR not found. il recherche EQUATES.asm dans le dossier de Firmware.asm
Il semble que les INCLUDE imbriqués ne prennent pas en compte le répertoire courant du fichier père.
Je m'explique:
Fichier Firmware.asm:
.INCLUDE: FORTH/MAIN.asm
fichier MAIN.asm
.INCLUDE: EQUATES.asm
ERROR not found. il recherche EQUATES.asm dans le dossier de Firmware.asm
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: LhTools - Cross-Assembler/Desassembleur pour PC-1500
Non. C'est comme en C. Je ne descends pas dans les sous repertoires, sauf si tu precises le chemin explicitement.remy a écrit :puisque tu es dans les modif
Il semble que les INCLUDE imbriqués ne prennent pas en compte le répertoire courant du fichier père.
Je m'explique:
Fichier Firmware.asm:
.INCLUDE: FORTH/MAIN.asm
fichier MAIN.asm
.INCLUDE: EQUATES.asm
ERROR not found. il recherche EQUATES.asm dans le dossier de Firmware.asm
On peut ajouter une option de recherche des fichiers a inclure, facon: -I <chemin> etc... Bon, je note aussi.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque