Create two separate executables, emu8051-cli (default) and emu8051-gtk
[emu8051.git] / ChangeLog
index eafa260..87ef95e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,46 +1,66 @@
-
-------------------------------------------------------------------------------
-2004/05/07     Hugo Villeneuve         <hugo@hugovil.com>
-       -Corrected a bug with the CJNE instruction.
-       -Modified the directory layout and autoconf files.
-       -Added support for GTK2.
-       -Added project to subversion.
-
-------------------------------------------------------------------------------
-2002/11/12     Hugo Villeneuve         <hugovil@videotron.ca>
-       -Removed some warnings for GCC 3.2: replaced <fstream.h> by <fstream>
-        and <iostream.h> by <iostream>.
-       -Added "using namespace std;" in EmuGtk.hpp (for GCC 3.2)
-       -Removed all unused variables
-       -Corrected error in CPU8051.cpp, in function:
+2011-12-11  Hugo Villeneuve  <hugo@hugovil.com>
+        Added optional size parameter when dumping memory.
+        Created two separate executables, emu8051-cli (default)
+          and optional emu8051-gtk if Gtk+ is detected.
+
+2011-10-29  Hugo Villeneuve  <hugo@hugovil.com>
+        Fixed SJMP error and improved columns and rows sizing.
+       Error reported and patch submitted by Pierre Ferrari
+       (piferr4ri at gmail.com).
+
+2010-03-19  Hugo Villeneuve  <hugo@hugovil.com>
+        Reintroduced the console mode if no GTK+ librairies are
+        detected. The default is to build the GUI if GTK+ is detected,
+       but the console mode can always be forced by using
+       "--enable-gui=no" as a configure option.
+
+2009-02-09  Hugo Villeneuve  <hugo@hugovil.com>
+        * Updated Free Software Foundation address.
+
+2008-11-05  Hugo Villeneuve  <hugo@hugovil.com>
+        * Added licencing informations for each source file.
+        * Removed some debugging messages.
+
+2008-04-28  Hugo Villeneuve  <hugo@hugovil.com>
+        * Removed gtk+-1.0 support, now requires gtk+-2
+
+2004-05-07  Hugo Villeneuve  <hugo@hugovil.com>
+       * Corrected a bug with the CJNE instruction.
+       * Modified the directory layout and autoconf files.
+       * Added support for GTK2.
+       * Added project to subversion.
+
+2002-11-12  Hugo Villeneuve  <hugo@hugovil.com>
+       * Removed some warnings for GCC 3.2: replaced <fstream.h> by <fstream>
+         and <iostream.h> by <iostream>.
+       * Added "using namespace std;" in EmuGtk.hpp (for GCC 3.2)
+       * Removed all unused variables
+       * Corrected error in CPU8051.cpp, in function:
                'void CPU8051::IntMemBitInfo( unsigned int BitAddress, char *Text )'
-        Modified this:
+         Modified this:
                'sprintf( &Text[ TextLength ], ".%X", BitAddress );'
-        instead of:
+         instead of:
                'sprintf( &Text[ TextLength ], ".%X" );'
-       -In Opcode2cpp.pl (line 767), modified for GCC 3.2:
+       In Opcode2cpp.pl (line 767), modified for GCC 3.2:
                'print INST_IMP " funcptr[$i]=&CPU8051::$ifunc;\n";'
-        instead of:
+         instead of:
                'print INST_IMP " funcptr[$i]=&$ifunc;\n";'
-       -EmuGtk.cpp, added '#include <iostream>'
-       -Modified the return type of some functions to void to remove warnings.
-       -In function 'void RegWin::Show( CPU8051 *CPU )' (RegWin.cpp), removed all
-        the '\n' in 'gtk_clist_set_text' calls (to fix a display problem)
-------------------------------------------------------------------------------
-99/04/27       Hugo Villeneuve         <villen01@gel.ulaval.ca>
-
-       - Ajoute les fonctions DumpInt dans EmuConsole.hpp ainsi que ReadInt
+       * EmuGtk.cpp, added '#include <iostream>'
+       * Modified the return type of some functions to void to remove warnings.
+       * In function 'void RegWin::Show( CPU8051 *CPU )' (RegWin.cpp), removed all
+         the '\n' in 'gtk_clist_set_text' calls (to fix a display problem)
+
+1999-04-27  Hugo Villeneuve  <hugo@hugovil.com>
+       * Ajoute les fonctions DumpInt dans EmuConsole.hpp ainsi que ReadInt
          dans CPU8051.hpp. Corrige des bugs dans WriteInt et WriteExt.
 
-       - Corrige l'implementation des timers. Les 4 modes ont ete testes et
+       * Corrige l'implementation des timers. Les 4 modes ont ete testes et
          semblent bien fonctionner maintenant. LEs flags sont mis correctement
          et les timers augmentent maintenant (au lieu d'etre decrementes).
-       - Ajoute un fichier timer.hex pour tester les timers.
+       * Ajoute un fichier timer.hex pour tester les timers.
 
------------------------------------------------------------------------------
-99/04/22       Hugo Villeneuve         <villen01@gel.ulaval.ca>
-
-       - Ajoute les fonctions ME, MI et MP (voir definitions dans
+1999-04-22  Hugo Villeneuve  <hugo@hugovil.com>
+       * Ajoute les fonctions ME, MI et MP (voir definitions dans
          EmuConsole.cpp). Ajoute les fonctions membres WriteExt et WriteInt
          dans la classe CPU8051 afin de suivre la logique de l'espace
          memoire du 8051. WriteExt permet de modifier la memoire externe
          l'instruction MOVX alors que la memoire interne l'est avec les
          instructions MOV (direct ou indirect).
 
-       - Renomme l'option DD du menu pour DE (dump External data memory).
+       * Renomme l'option DD du menu pour DE (dump External data memory).
          Change la description de l'option DI du menu pour Dump External
          Data Memory.
 
-       - Ajoute la fonction ReadExt dans la classe CPU8051, toujours pour
+       * Ajoute la fonction ReadExt dans la classe CPU8051, toujours pour
          la logique de la memoire du 8051. Ajoute la fonction DumpExt dans la
          classe EmuConsole pour dumper la memoire externe.
-       - Ces nouvelles fonctions ont ete testees et semblent bien fonctionner.
-------------------------------------------------------------------------------
-99/04/09       Jonathan St-Andre       <standr00@gel.ulaval.ca>
+       * Ces nouvelles fonctions ont ete testees et semblent bien fonctionner.
 
-       - Refait marche le RunningState avec les classes.
-       - Reconnecte les signaux aux boutons Trace, Run, Reset et Quit.
-       - Ajoute bouton Step qui ajoute un breakpoint a la ligne suivante
+1999-04-09  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Refait marche le RunningState avec les classes.
+       * Reconnecte les signaux aux boutons Trace, Run, Reset et Quit.
+       * Ajoute bouton Step qui ajoute un breakpoint a la ligne suivante
        et passe en RunningState. Pratique lorsqu'arrive un CALL et qu'on ne
        veut pas y entrer contrairement a Trace.
-------------------------------------------------------------------------------
-99/04/06       Jonathan St-Andre       <standr00@gel.ulaval.ca>
 
-       - Creation de EmuConsole.hpp et EmuConsole.cpp
-       - Cette nouvelle archive est presque rendue au meme niveau que
+1999-04-06  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Creation de EmuConsole.hpp et EmuConsole.cpp
+       * Cette nouvelle archive est presque rendue au meme niveau que
        l'ancienne. Vous allez pouvoir commencer a laisser faire l'ancienne
        et vous concentrer sur celle-ci.
-------------------------------------------------------------------------------
+
 (Les modifs annoncee se rapportent a l'ancienne archive mais elles ont ete
 ramenee dans celle-ci par Jonathan St-Andre)
-99/04/05       Jonathan St-Andre       <standr00@gel.ulaval.ca>
-
-       - Corrige qq malfonctions dans exec de mainconsole.cpp (nb d'inst.
+1999-04-05  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Corrige qq malfonctions dans exec de mainconsole.cpp (nb d'inst.
        peut etre l'infini, caractere est attendu au clavier seulement
        si l'execution est arretee par une touche.
-       - Corrige probleme d'instructions sans operandes mal desassemblees
+       * Corrige probleme d'instructions sans operandes mal desassemblees
        (il ne faut pas ecrire le caractere ' ' dans la chaine, il faut
        utiliser sprintf avec " " a la place car sprintf termine la chaine
        avec un 0 a la fin. La chaine n'etait pas terminee par un 0 et elle
        affichait du garbage de la memoire)
-       - Corrige probleme dans disasm.cpp en rapport avec addr11 qui ne
+       * Corrige probleme dans disasm.cpp en rapport avec addr11 qui ne
        prenait pas opcode mais memoire[opcode] (je devais etre chaud quand
        j'ai ecrit ca).
-       - Bouton Run se change en Stop dans l'interface Gtk+ lorsque l'on
+       * Bouton Run se change en Stop dans l'interface Gtk+ lorsque l'on
        clique dessus et le cpu se met en mode execution. Les fonctions de
        l'interface restent disponibles. N'importe quelle action dans
        l'interface(excepte le fait de cliquer dans les fenetre memoire
        et programme) cause l'arret de l'execution et la mise a jour
        de l'affichage.
-       - Il est possible de placer des breakpoints pendant qu'il est
+       * Il est possible de placer des breakpoints pendant qu'il est
        dans le "RunningState".
-       - Enleve les pixmaps sur les boutons dans l'interface Gtk+
-       - Ajoute verification de breakpoint deja existant dans
+       * Enleve les pixmaps sur les boutons dans l'interface Gtk+
+       * Ajoute verification de breakpoint deja existant dans
        setbreakpoint.
 
-               Hugo Villeneuve         <villen01@gel.ulaval.ca>
+               Hugo Villeneuve  <hugo@hugovil.com>
 
-       -Modifie l'affichage de disasm pour que les operandes soient alignees.
-       -Modifie la fonction DP pour qu'elle prenne l'adresse du PC par
-        defaut si aucune adresse n'est specifiee.
+       Modifie l'affichage de disasm pour que les operandes soient alignees.
+       Modifie la fonction DP pour qu'elle prenne l'adresse du PC par
+         defaut si aucune adresse n'est specifiee.
 
-       - Erreur avec l'instruction ACALL qui ne calculait pas l'adresse
+       * Erreur avec l'instruction ACALL qui ne calculait pas l'adresse
          correctement et qui ne poussait pas l'adresse de retour sur la pile.
          Il est important que le PC soit incremente de 2 avant de calculer
          addr11 et de pousser le PC sur la pile...
          Il faut aussi modifier le dessassemblage de cette instruction qui
          n'affiche que la deuxieme operande (adresse de 8 bits), alors que
          l'adresse est sur 11 bits...
-       -Erreur avec l'instruction RET( fichier siae1.asm adresse 03A4) ,
-        affiche RET   @%K
-       -Ajoute la possibilite d'arreter l'execution du programme en pesant
-        sur n'importe quelle touche grace a la fonction kbhit().
-       -Ajoute les fonctions SB, RB et DB pour les breakpoints dans le
-        mode console. L'execution se fait jusqu'au breakpoint. Une fois
-        arrive au breakpoint, si on fait de nouveau EM, on peut continuer
-        l'execution du programme passe ce breakpoint. Autrement dit, EM
-        ne verifie pas si la premiere instruction qu'il execute est un
-        break point, ce qui est pratique pour continuer l'execution du prog
-        apres un breakpoint.
-------------------------------------------------------------------------------
-99/03/31-
-99/04/03       Jonathan St-Andre       <standr00@gel.ulaval.ca>
-
-       - Reecriture de TOUT les sources en imbriquant au maximum
+       * Erreur avec l'instruction RET( fichier siae1.asm adresse 03A4) ,
+         affiche RET   @%K
+       * Ajoute la possibilite d'arreter l'execution du programme en pesant
+         sur n'importe quelle touche grace a la fonction kbhit().
+       * Ajoute les fonctions SB, RB et DB pour les breakpoints dans le
+         mode console. L'execution se fait jusqu'au breakpoint. Une fois
+         arrive au breakpoint, si on fait de nouveau EM, on peut continuer
+         l'execution du programme passe ce breakpoint. Autrement dit, EM
+         ne verifie pas si la premiere instruction qu'il execute est un
+         break point, ce qui est pratique pour continuer l'execution du prog
+         apres un breakpoint.
+
+1999-03-31  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Reecriture de TOUT les sources en imbriquant au maximum
        dans des classes pour que ce soit plus lisible et reutilisable.
-       - Les classes sont CPU8051, Memory, EmuGtk, MemWin, RegWin, PgmWin
+       * Les classes sont CPU8051, Memory, EmuGtk, MemWin, RegWin, PgmWin
        et les exceptions.
-       - Tout est en anglais pour rendre le programme disponible sur
+       * Tout est en anglais pour rendre le programme disponible sur
        internet.
-       - Je n'ai pas encore refais l'interface Console en classes donc
+       * Je n'ai pas encore refais l'interface Console en classes donc
        elle n'est pas incluse dans cette archive. Il faudrait vraiment
        la refaire en tant que classe.
-       - Ajout fichiers TODO, CREDITS et COPYING (license GPL)
-------------------------------------------------------------------------------
-99/03/30       Jonathan St-Andre       <standr00@gel.ulaval.ca>
+       * Ajout fichiers TODO, CREDITS et COPYING (license GPL)
 
-       - Corrige bug lors du desassemblage dans l'interpretation des
+1999-03-30  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Corrige bug lors du desassemblage dans l'interpretation des
        adresses directes dans 0-7F. disasm.cpp
-       - Corrige bug dans l'opcode 0x85, ajoute conditions particulieres
+       * Corrige bug dans l'opcode 0x85, ajoute conditions particulieres
        pour cette instruction dans script Perl et dans desassemblage.
        Les operandes de cette instruction sont inversees dans la memoire
        programme. Ex.: MOV 50H,51H est ecrit 85 51 50 dans la memoire
        programme.
 
-               Hugo Villeneuve         <villen01@gel.ulaval.ca>
+               Hugo Villeneuve  <hugo@hugovil.com>
 
-       - Bug dans les instructions ayant un mode d'adressage direct qui
+       * Bug dans les instructions ayant un mode d'adressage direct qui
        utilisent des adresses dans 0-7F. Le desassembleur interprete les
        adresses comme etant des adresses de bit.
-       - Bug dans l'opcode 0x85 MOV direct,direct. La source et la
+       * Bug dans l'opcode 0x85 MOV direct,direct. La source et la
        destination sont inverses dans le desassemblage et dans l'execution.
-------------------------------------------------------------------------------
-99/03/29       Jonathan St-Andre       <standr00@gel.ulaval.ca>
 
-       - Remplace string::erase pour string::replace partout, g++ a
+1999-03-29  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Remplace string::erase pour string::replace partout, g++ a
        l'universite ne connait pas encore string::erase, c'est trop recent.
-       - Ajoute "-w" pour disabler les warnings et "-fhandle-exceptions"
+       * Ajoute "-w" pour disabler les warnings et "-fhandle-exceptions"
        pour activer les exceptions a l'universite.
 
                Pascal Fecteau          <fectea00@gel.ulaval.ca>
 
-       - Ajoute .h comme extension aux fichiers inclus, sinon ca ne
+       * Ajoute .h comme extension aux fichiers inclus, sinon ca ne
        fonctionne pas a l'universite.
 
                Pascal Fecteau          <fectea00@gel.ulaval.ca>
-               Hugo Villeneuve         <villen01@gel.ulaval.ca>
+               Hugo Villeneuve  <hugo@hugovil.com>
 
-       - Corrige une erreur dans les instructions AJMP addr11
-------------------------------------------------------------------------------
-99/03/28       Hugo Villeneuve         <villen01@gel.ulaval.ca>
+       * Corrige une erreur dans les instructions AJMP addr11
 
-       - Modification de la presentation de "Dump Register" sur la console.
+1999-03-28  Hugo Villeneuve  <hugo@hugovil.com>
+       * Modification de la presentation de "Dump Register" sur la console.
        Beaucoup plus facile a lire maintenant.
-       - Correction d'un bug dans l'instruction DA (opcode 0xD4).
-------------------------------------------------------------------------------
-99/03/27       Hugo Villeneuve         <villen01@gel.ulaval.ca>
+       * Correction d'un bug dans l'instruction DA (opcode 0xD4).
 
-       - Correction d'un probleme avec l'instruction CJNE.
-       - Correction de bugs dans LoadHexFile (voir 99/03/22)
+1999-03-27  Hugo Villeneuve  <hugo@hugovil.com>
+       * Correction d'un probleme avec l'instruction CJNE.
+       * Correction de bugs dans LoadHexFile (voir 1999-03-22)
 
                Jonathan St-Andre       <standr00@gel.ulaval.ca>
 
-       - Augmente la hauteur de la fenetre Internal RAM.
-       - Correction de probleme avec tous les XCH et XCHD, l'operande source
+       * Augmente la hauteur de la fenetre Internal RAM.
+       * Correction de probleme avec tous les XCH et XCHD, l'operande source
        n'etait pas modifiee (Trouve par Hugo et suggestion de correction par
        Hugo).
-       - Ajout de P0, P1, P2 et P3 dans la fenetre des registres.
+       * Ajout de P0, P1, P2 et P3 dans la fenetre des registres.
        (Suggestion d'Hugo).
-       - View -> Data Memory Dump et View -> Program Memory Dump sont
+       * View -> Data Memory Dump et View -> Program Memory Dump sont
        fonctionnels. On ne peut visionner que les 16384 premiers octets.
        Il ne veut pas prendre 65536 lignes dans une scrolled window.
        Probablement parce que 18colonnes x 65536lignes = 1179648 cellules
        est beaucoup trop.
-       - J'ai remarque qu'avec Gtk, on peut facilement changer les raccoucis
+       * J'ai remarque qu'avec Gtk, on peut facilement changer les raccoucis
        dans les menus. Pour associer "View -> Program Memory Dump" au
        raccourci "Alt-2" par exemple, il suffit d'aller dans le menu "View",
        se placer au dessus de "Program Memory Dump" et appuyer "Alt-2".
        Le menu se modifiera automatiquement pour afficher "Alt-2" au bout
        de la ligne et desormais, lorsque vous appuierez "Alt-2", l'action
        sera executee. Ca dure seulement durant la session presente.
-       - Reduit la taille de la fenetre principale en largeur de 120 pixels
+       * Reduit la taille de la fenetre principale en largeur de 120 pixels
        et en hauteur de 20 pixels.
-------------------------------------------------------------------------------
-99/03/25       Jonathan St-Andre       <standr00@gel.ulaval.ca>
 
-       - Fenetre dump connais la position ou on clique dedans.
-       - Generalise dans une classe la fenetre memorydump, il sera plus
+1999-03-25  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Fenetre dump connais la position ou on clique dedans.
+       * Generalise dans une classe la fenetre memorydump, il sera plus
        facile d'ajouter plusieurs fenetres memory dump a partir du menu
        plus tard.
-       - Implemente Run jusqu'a un breakpoint (si aucun breakpoint,
+       * Implemente Run jusqu'a un breakpoint (si aucun breakpoint,
        loop sans fin -> il faut killer).
-       - Suffit de cliquer sur une ligne de programme dans Gtk pour placer
+       * Suffit de cliquer sur une ligne de programme dans Gtk pour placer
        ou retirer un breakpoint. Les breakpoints apparaissent comme une
        asterisque (*) a droite de l'adresse dans la fenetre program.
-       - Ajoute bouton Run dans interface Gtk
-       - Implemente quelques fonctions necessaires au breakpoints.
-       - Change un peu le layout
-       - Enleve image de fond (cause leger delai au chargement)
-       - Fait un peu de menage dans fichiers relatifs au Gtk
-------------------------------------------------------------------------------
-99/03/23       Jonathan St-Andre       <standr00@gel.ulaval.ca>
-
-       - Changement des champs GTK_TEXT des fenetres Registre, Program et
+       * Ajoute bouton Run dans interface Gtk
+       * Implemente quelques fonctions necessaires au breakpoints.
+       * Change un peu le layout
+       * Enleve image de fond (cause leger delai au chargement)
+       * Fait un peu de menage dans fichiers relatifs au Gtk
+
+1999-03-23  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Changement des champs GTK_TEXT des fenetres Registre, Program et
        Internal RAM pour des champs GTK_CLIST. Plus beau, moins de
        flickering quand on trace et plus pratique pour ce qui s'en vient.
-       - Integration des fichiers xpm dans l'executable. Mais c'est encore
+       * Integration des fichiers xpm dans l'executable. Mais c'est encore
        trop long a charger lors de l'execution, va probablement falloir les
        compresser ou laisser faire l'image de fond.
-       - Ajout de pixmaps sur les boutons Trace, Reset et Quit (Gtk)
-       - Ajout de pixmap comme fond (Gtk)
-------------------------------------------------------------------------------
-99/03/22        Hugo Villeneuve <villen01@gel.ulaval.ca>
+       * Ajout de pixmaps sur les boutons Trace, Reset et Quit (Gtk)
+       * Ajout de pixmap comme fond (Gtk)
 
-       - Corrige un bug dans la fonction LoadHexFile : Le checksum n'etait
+1999-03-22  Hugo Villeneuve <villen01@gel.ulaval.ca>
+       * Corrige un bug dans la fonction LoadHexFile : Le checksum n'etait
          pas calcule correctement, ce qui entrainait des erreurs a l'ouverture
          de certains fichiers HEX. L'erreur venait du fait que le checksum se
          calculait avec la valeur absolue du LoadOffset, au lieu d'utiliser
          les caracteres composant le LoadOffset. Exemple : si LoadOffset =
          0103, il faut additionner 01h+03h=4h au Checksum et non pas 0103h = 
          259 en decimal.
-       - Deplace la fonction enleve_espaces de main_console vers mainemu
+       * Deplace la fonction enleve_espaces de main_console vers mainemu
          car elle est commune aux deux interfaces graphiques.
-       - Modifie la fonction majuscules pour qu'elle puisse convertir les
+       * Modifie la fonction majuscules pour qu'elle puisse convertir les
          lettres de minuscule a majuscule meme si la chaine contient des
          chiffres ou autres signes de ponctuation.
-       - Modifie la declaration des fonctions dans tous les fichiers .hpp:
+       * Modifie la declaration des fonctions dans tous les fichiers .hpp:
          enleve le nom des parametres car c'etait inutile.
-       - Stocke le nom des registres dans un fichier registres8051.hpp.
+       * Stocke le nom des registres dans un fichier registres8051.hpp.
          Ainsi, si on veut emuler un autre type de processeur, il suffira
          de se creer un autre fichier registres8052xxx.hpp par exemple.
-       - Implemente l'affichage en francais ou en anglais dependant de
+       * Implemente l'affichage en francais ou en anglais dependant de
          l'option passee sur la ligne de commande. L'interface est beaucoup
          plus lisible de cette facon. Par defaut, l'affichage est en anglais.
-------------------------------------------------------------------------------
-99/03/21        Hugo Villeneuve <villen01@gel.ulaval.ca>
 
-       - Ajoute deux parametres qu'on peut passer par la ligne de commande:
+1999-03-21  Hugo Villeneuve <villen01@gel.ulaval.ca>
+       * Ajoute deux parametres qu'on peut passer par la ligne de commande:
            /?  affiche les options disponibles sur la ligne de commande.
            -f  force l'affichage en francais (pas encore implemente!!!)
-       - Ajoute le controle d'erreur pour le chargement d'un fichier HEX.
+       * Ajoute le controle d'erreur pour le chargement d'un fichier HEX.
          Les differentes erreurs sont controlees ( checksum, rectype,
          fin de fichier, etc.).
-       - Modifie la fonction unasm pour qu'elle accepte 0,1 ou 2 parametres.
+       * Modifie la fonction unasm pour qu'elle accepte 0,1 ou 2 parametres.
          U (adresse) (nombre d'instructions)
          Si adresse et nombre d'instructions non-specifies:
            Adresse = PC et Nombre d'Instructions = 16
@@ -283,218 +290,195 @@ ramenee dans celle-ci par Jonathan St-Andre)
 
                Jonathan St-Andre       <standr00@gel.ulaval.ca
 
-       - Fait le menage dans la fonction main
-       - Modifie Makefile.console et Makefile.gtk
-       - Rearrangement des fichiers pour limiter les impacts sur
+       * Fait le menage dans la fonction main
+       * Modifie Makefile.console et Makefile.gtk
+       * Rearrangement des fichiers pour limiter les impacts sur
        tout le projet lors de modifications dans une partie et
        pour accelerer la compilation (en modules).
-       - Creation de mainconsole.hpp + mainconsole.cpp
-       - Creation de maingtk.cpp + maingtk.hpp
-       - Creation de mainemu.cpp + mainemu.hpp
-       - Elimine fonctions.cpp.
-       - Elimination du 2e parametre a unasm. Desassemble
+       * Creation de mainconsole.hpp + mainconsole.cpp
+       * Creation de maingtk.cpp + maingtk.hpp
+       * Creation de mainemu.cpp + mainemu.hpp
+       * Elimine fonctions.cpp.
+       * Elimination du 2e parametre a unasm. Desassemble
        de nouveau 16 instructions.
-       - Ajustement du menu pour qu'il rentre dans la largeur
+       * Ajustement du menu pour qu'il rentre dans la largeur
        d'un terminal 80x25.
        
                Jimmy Ringuette <ringue00@gel.ulaval.ca>
 
-       - Ajout des interruptions du port serie.
-       - Ajout du timer 2 (8052).
-------------------------------------------------------------------------------
-99/03/20        Hugo Villeneuve <villen01@gel.ulaval.ca>
+       * Ajout des interruptions du port serie.
+       * Ajout du timer 2 (8052).
 
-       - Separe le fichier main.cpp en deux: main.cpp et fonctions.cpp.
+1999-03-20  Hugo Villeneuve <villen01@gel.ulaval.ca>
+       * Separe le fichier main.cpp en deux: main.cpp et fonctions.cpp.
          fonctions.cpp contient les fonctions necessaires a main.cpp.
-       - Ajoute un fichier exceptions.hpp qui permet de gerer les erreurs.
-       - Modifie le Makefile en consequence.
-       - On peut maintenant entrer les adresses < a quatre caracteres :
+       * Ajoute un fichier exceptions.hpp qui permet de gerer les erreurs.
+       * Modifie le Makefile en consequence.
+       * On peut maintenant entrer les adresses < a quatre caracteres :
          ex: adresse 0000h = 0 ou 00 ou 000 ou 0000.
-       - Enleve le include <stdlib.h>
-       - Remplace toutes les commandes printf du main par cout.
-       - Modifie l'apparence du menu.
-       - Le programme est maintenant plus robuste en ce qui concerne les
+       * Enleve le include <stdlib.h>
+       * Remplace toutes les commandes printf du main par cout.
+       * Modifie l'apparence du menu.
+       * Le programme est maintenant plus robuste en ce qui concerne les
          erreurs de syntaxe, les adresses invalides, etc (a tester...).
-       - Modifier l'operation et la syntaxe de certaines commandes
+       * Modifier l'operation et la syntaxe de certaines commandes
          S (set register) devient MR (modify register) car set veut
          plutot dire "mettre a 1", et on pourra aussi implementer
          MM (modify Memory).
          R devient DR (display Register), pour suivre la logique de
          DP, DM et DI.
-       - Ajoute une commande Execute Memory: EM addr n
-       - La gestion des chaines de caracteres se fait maintenant
+       * Ajoute une commande Execute Memory: EM addr n
+       * La gestion des chaines de caracteres se fait maintenant
          uniquement avec des variables de type STRING, selon le C++.
-       - Enleve variables i,j,k et inputcars dans le main.
-       - Modifie la fonction RESET pour quelle n'affiche pas les
+       * Enleve variables i,j,k et inputcars dans le main.
+       * Modifie la fonction RESET pour quelle n'affiche pas les
          registres au demarrage... ca faisait pas beau! Ajoute
          cependant un message pour dire que le up est resette.
-       - Pour changer un registre, on doit entrer PC (et non p) ainsi
+       * Pour changer un registre, on doit entrer PC (et non p) ainsi
          que SP (et non seulement s).
-       - Ajoute une fonction qui convertit une chaine de caracteres
+       * Ajoute une fonction qui convertit une chaine de caracteres
          en majuscules.
-------------------------------------------------------------------------------
-99/03/19       Jonathan St-Andre       <standr00@gel.ulaval.ca>
 
-       - Fonction reset51() ajoutee dans cpu8051.cpp, reset() ajoutee
+1999-03-19  Jonathan St-Andre  <standr00@gel.ulaval.ca>
+       * Fonction reset51() ajoutee dans cpu8051.cpp, reset() ajoutee
        dans main.cpp.
-       - Commande "Z" fait un reset du processeur sur la console et le
+       * Commande "Z" fait un reset du processeur sur la console et le
        bouton Reset fonctionne dans le GUI.
 
                Jimmy Ringuette <ringue00@gel.ulaval.ca>
 
-       - Les interruptions sont maintenant implementees. check_hardware() a
+       * Les interruptions sont maintenant implementees. check_hardware() a
        ete supprimee et Do_timers() est appelee directement de exec8051().
-------------------------------------------------------------------------------
-99/03/18        Hugo Villeneuve <villen01@gel.ulaval.ca>
 
-       - Modifie l'entree des commandes pour gerer un peu plus les erreurs
+1999-03-18  Hugo Villeneuve <villen01@gel.ulaval.ca>
+       * Modifie l'entree des commandes pour gerer un peu plus les erreurs
          de syntaxe (je n'ai pas fini, il y a encore de la job a faire pour
          mettre ca error proof).
-       - Simplifie l'entree des parametres pour chacune des fonctions.
-       - Re-modifie l'instruction trace pour avoir seulement deux modes:
+       * Simplifie l'entree des parametres pour chacune des fonctions.
+       * Re-modifie l'instruction trace pour avoir seulement deux modes:
          trace a adresse et trace 1 instruction. Cela simplifie l'entree de
          la commande (on n'a pas a faire TA, qui n'est pas une commande
          standard dans les emulateurs). Si on veut faire tracer pour plusieurs
          instructions, alors il suffira d'implementer la commande
          EXECUTE Nombre_instructions, ce qui est beaucoup plus logique et 
          c'est ce qu'on retrouve dans la plupart des emulateurs.
-       - Ajoute la description des commandes en francais (loi 101).
-------------------------------------------------------------------------------
-99/03/18       Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Ajoute la description des commandes en francais (loi 101).
 
-       - Le bouton Trace dans la version Gtk+ fonctionne. On peut tracer
+1999-03-18  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Le bouton Trace dans la version Gtk+ fonctionne. On peut tracer
        et les 3 fenetres(registres, memoire, programme) se mettent a jour.
-       - Ajout de 2 nouvelles fonctions trace : "tracenb()" et "traceat()"
+       * Ajout de 2 nouvelles fonctions trace : "tracenb()" et "traceat()"
        Qui, respectivement, prenent un nombre d'instruction a executer ou
        une adresse ou commencer l'execution. La fonction trace() a ete
        resimplifiee.
-       - Dans les instructions RET, RETI, LCALL, PUSH et POP la pile prend
+       * Dans les instructions RET, RETI, LCALL, PUSH et POP la pile prend
        la iram seulement pour les adresses sous 0x80, la data RAM est
        utilisee autrement. Avant, les SFR se faisaient ecraser!
-       - Modes d'addressage addr16, reladdr, #data16 modifies!
+       * Modes d'addressage addr16, reladdr, #data16 modifies!
        En tenant compte de ce que Hugo avait fait remarquer ce matin :
        ex.: si PC++ apparait 2 fois sur une ligne, les 2 fois il repartira
        de la meme valeur de PC et suite a cette ligne, on se trouve avec
        un PC incremente 1 fois au lieu de 2.
-       - Menu accepte maj/minuscules
-       - Corrige bug dans "setreg", les registres peuvent vraiment
+       * Menu accepte maj/minuscules
+       * Corrige bug dans "setreg", les registres peuvent vraiment
        etre donnes en maj/minuscules maintenant.
-------------------------------------------------------------------------------
-99/03/17       Hugo Villeneuve <villen01@gel.ulaval.ca
 
-        - Corrige les instructions LJMP et LCALL qui ne calculaient pas la
+1999-03-17  Hugo Villeneuve    <villen01@gel.ulaval.ca
+        * Corrige les instructions LJMP et LCALL qui ne calculaient pas la
           bonne adresse pour le PC. Toutes les autres instructions de
           branchement sont probablement a revoir pour le meme probleme. Le
           probleme etait cause par la syntaxe dans le fichier instructions.hpp
           (lignes ou on retrouve addr16 = (pgm_mem[PC++] << 8)+pgm_mem[PC++] a
           remplacer par addr16 = (pgm_mem[PC+1] << 8) + pgm_mem[PC+2] )
-       - Modifie la commande TRACE pour qu'on puisse lui passer une adresse
+       * Modifie la commande TRACE pour qu'on puisse lui passer une adresse
           de depart comme parametre (main.cpp lignes 406-409) et modifie
           en consequence ascii2hex pour qu'il ignore les espaces avant
           l'adresse. (main.cpp ligne 133).
-------------------------------------------------------------------------------
-99/03/14       Pascal Fecteau <fectea00@gel.ulaval.ca>
 
-       - Correction de bugs relatifs a la compilation sur VC5.
+1999-03-14  Pascal Fecteau <fectea00@gel.ulaval.ca>
+       * Correction de bugs relatifs a la compilation sur VC5.
        Dont ajout de #include <string.h>.
-------------------------------------------------------------------------------
-99/03/13       Jimmy Ringuette <ringue00@gel.ulaval.ca>
 
-       - Ajout des timers dans cpu8051.cpp. Il faudrait tester a fond.
-------------------------------------------------------------------------------
-99/03/12       Jonathan St-Andre <standr00@gel.ulaval.ca>
+1999-03-13  Jimmy Ringuette <ringue00@gel.ulaval.ca>
+       * Ajout des timers dans cpu8051.cpp. Il faudrait tester a fond.
 
-       - Je crois qu'il sera plus interessant si on garde le memory
+1999-03-12  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Je crois qu'il sera plus interessant si on garde le memory
        dump normal dans une fenetre exterieur et dont on pourra en ouvrir
        plusieurs pour monitorer differents endroits de la memoire, c'est
        pourquoi je n'ai place que "Internal RAM" comme memory dump dans
        la fenetre principale.
-       - Au demarrage, effectue un premier memory dump dans la fenetre
+       * Au demarrage, effectue un premier memory dump dans la fenetre
        "Internal RAM", un unasm dans "Program" et un show register dans
        "Registers".
-       - Bouton Quit, menus "File -> Quit" et "Help -> About" reagissent.
-       - Comporte maintenant 2 Makefile : Makefile.console(fonctionne sur
+       * Bouton Quit, menus "File -> Quit" et "Help -> About" reagissent.
+       * Comporte maintenant 2 Makefile : Makefile.console(fonctionne sur
        toutes les plateformes) et Makefile.gtk(teste seulement sous Linux).
-       - DEBUT d'interface graphique Gtk+ (ne fait qu'afficher une fenetre
+       * DEBUT d'interface graphique Gtk+ (ne fait qu'afficher une fenetre
        avec un layout tres simple), presentement je cours apres des sources
        de documentations.(le manuel n'est pas encore complet)
-------------------------------------------------------------------------------
-99/03/09       Jimmy Ringuette <ringue00@gel.ulaval.ca>
 
-        - Regle le bug avec mul (probleme avec les bits 15-8 du resultat
+1999-03-09  Jimmy Ringuette <ringue00@gel.ulaval.ca>
+        * Regle le bug avec mul (probleme avec les bits 15-8 du resultat
        ne se ramenaient pas dans les bits 7-0 du registre B)
-        - La conversion chaine->hexadecimal accepte les minuscules
-        - Il n'est plus obligatoire d'ecrire les 4 caracteres lorsqu'il faut
+        * La conversion chaine->hexadecimal accepte les minuscules
+        * Il n'est plus obligatoire d'ecrire les 4 caracteres lorsqu'il faut
        entrer une valeur hexadecimale.
-------------------------------------------------------------------------------
-99/03/05       Jonathan St-Andre <standr00@gel.ulaval.ca>
 
-       - Corrige un warning de compilation sous Solaris.
-------------------------------------------------------------------------------
-99/03/04       Jonathan St-Andre <standr00@gel.ulaval.ca>
+1999-03-05  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Corrige un warning de compilation sous Solaris.
 
-       - Ca execute! (presque) 
-       - Phase de corrections des bugs dans les instructions, une premiere
+1999-03-04  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Ca execute! (presque) 
+       * Phase de corrections des bugs dans les instructions, une premiere
        implementation est faite pour toutes les instructions. 
-       - Ajout fonction "trace" et "dump internal memory" 
-       - Les modes d'adressage sont pratiquement termines dans
+       * Ajout fonction "trace" et "dump internal memory" 
+       * Les modes d'adressage sont pratiquement termines dans
        les instructions. 
-       - Certaines instructions ont un debut d'implementation. 
-       - Desassembleur, bit addressable segment 00-7F -> 20.0-2F.7 
-------------------------------------------------------------------------------
-99/03/03       Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Certaines instructions ont un debut d'implementation. 
+       * Desassembleur, bit addressable segment 00-7F -> 20.0-2F.7 
 
-       - Ajout automatique de certaines lignes de codes concernant
+1999-03-03  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Ajout automatique de certaines lignes de codes concernant
        l'adressage dans les fonctions d'instructions tres brouillon 
-       - Ajout de stub pour write_mem et read_mem, modifs dans exec8051 
-       - Ajout de la fonction showregister() et de la commande 'r'. 
-       - Correction d'une erreur iram_mem doit etre unsigned char et non int
-       - Note : Il y a des references a certaines parties du 8052 mais
+       * Ajout de stub pour write_mem et read_mem, modifs dans exec8051 
+       * Ajout de la fonction showregister() et de la commande 'r'. 
+       * Correction d'une erreur iram_mem doit etre unsigned char et non int
+       * Note : Il y a des references a certaines parties du 8052 mais
        elles ne seront pas implementees. Ce n'est qu'a titre d'informations.
-       - Ajout de #define pour faire correspondre les registres SFR avec
+       * Ajout de #define pour faire correspondre les registres SFR avec
        leur adresse dans la iram. 
-       - Renomme instructions.cpp a instructions.hpp et ajout du tableau
+       * Renomme instructions.cpp a instructions.hpp et ajout du tableau
        de pointeurs sur les fonctions 
-       - Ajout de la ram interne 00-FF et valeurs initiale au reset
+       * Ajout de la ram interne 00-FF et valeurs initiale au reset
        dans cpu8051.cpp avec le registre : unsigned int PC. 
-       - Ajout de cpu8051.cpp contenant exec8051() 
-------------------------------------------------------------------------------
-99/03/02       Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Ajout de cpu8051.cpp contenant exec8051() 
 
-       - Ajout de remarques dans le source 
-       - Il faudrait maintenant tester avec plusieurs programmes pour
+1999-03-02  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Ajout de remarques dans le source 
+       * Il faudrait maintenant tester avec plusieurs programmes pour
        reperer les bugs. 
-       - Le desassembleur reconnait maintenant les registres du SFR
+       * Le desassembleur reconnait maintenant les registres du SFR
        (ex.: 88H est remplace par TCON, F0 par B, etc...) 
-       - Changement au desassembleur (instructions peuvent avoir jusqu'a 3
+       * Changement au desassembleur (instructions peuvent avoir jusqu'a 3
        arguments ex.: CJNE R0,#data,reladdr) 
-       - La vrai instruction CJNE comporte 3 arguments il faut changer 
+       * La vrai instruction CJNE comporte 3 arguments il faut changer 
        radicalement le desassembleur 
-------------------------------------------------------------------------------
-99/03/01       Jonathan St-Andre <standr00@gel.ulaval.ca>
 
-       - Probleme dans opcodes.lst au niveau de l'instruction CJNE (mauvaise
+1999-03-01  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Probleme dans opcodes.lst au niveau de l'instruction CJNE (mauvaise
         definition) 
-       - Tous les types d'adressages semblent fonctionner 
-       - Le desassembleur peut lire les arguments et les afficher 
+       * Tous les types d'adressages semblent fonctionner 
+       * Le desassembleur peut lire les arguments et les afficher 
        (ex.: MOV A,#data peut devenir plus concret MOV A,#20) 
-       - Desassembleur (instructions ont 2 arguments : instleftarg et 
+       * Desassembleur (instructions ont 2 arguments : instleftarg et 
        instrightarg) 
-------------------------------------------------------------------------------
-99/02/28       Jonathan St-Andre <standr00@gel.ulaval.ca>
 
-       - Charge un fichier .hex donne en parametre (format Intel Hexadecimal 
+1999-02-28  Jonathan St-Andre <standr00@gel.ulaval.ca>
+       * Charge un fichier .hex donne en parametre (format Intel Hexadecimal 
        produit par ASM51) 
-       - Effectue le dump program memory et dump data memory 
-       - On peut quitter (YEAH!) 
-       - Affiche le menu 
-       - Creation de opcodes.lst et script Perl pour l'interpreter 
-       - Debut
-
-
-
-
-
-
-
-
+       * Effectue le dump program memory et dump data memory 
+       * On peut quitter (YEAH!) 
+       * Affiche le menu 
+       * Creation de opcodes.lst et script Perl pour l'interpreter 
+       * Debut