/*
		    MM   MM    OOOOO    5555555
		    M M M M   O     O   5
		    M  M  M   O     O   555555
		    M     M   O     O         5
		    M     M   O     O         5
		    M     M    OOOOO    555555

			     EMULATEUR

			 Par Edouard FORLER
                      (edouard.forler@epfl.ch)
			  Par Sylvain HUET
		    (huet@poly.polytechnique.fr)
                             1997, 98

  modifs.txt : liste des modifications TO770->MO5, par Edouard FORLER.
               (malheureusement pas exhaustif, a titre indicatif!)
               (plus mis a jour depuis janvier 1998)

*/

Pour obtenir l'emulateur MO5, je suis parti de l'emulateur TO770, qui est
une machine tres proche du MO5, quoiqu'on en dise. Il suffit de possder
les bonnes ROMs (surtout celle du moniteur!), de modifier quelque peu
la map-memoire, de supprimer quelques particularites du TO770, et d'ajouter
celles du MO5 dans l'adressage. Voila, c'est tout. Voici une liste grossiere
des modifications apportes:

1. les identificateurs portant la mention TO7 portent desormais MO5 ;)

2. Fichier:         Modif:

   EMUMO5.C         dans inimo5: l'adresse de demarrage PC
                    dans cd10, cd11, exe6809: l'appel aux banques video

   EMUP1.C          dans iosb: l'appel aux routines K7 et crayon optique

   MONITOR.C        dans interp: le reset
                    dans importrom: chargement des ROMs, points d'entree
                    K7 et lightpen, initialisation des PIAs
                    dans main: valeur de endmem
                    rajout de nouvelles commandes et suppression
                    d'autres dans l'interpreteur

   VIDEO.C          beaucoup beaucoup de choses:
                    dans loads, loadl, stocs, stocl: adressage et gestion
                    des PIAs, banques mmoires video.
                    dans readmouse, gestion du bouton crayon optique
                    dans bouclex, gestion clavier, tour ecran.
                    quelques details dans les ini*.

Parties les plus complexes a adapter: gestion k7 et clavier.

Les parties auparavant ecrites en assembleur ont ete reecrite en C. En
effet, PGRAF.ASM et SCAN.ASM assuraient des fonctions de bas niveau ne
necessitant pas de rapidite particuliere; Ainsi, l'ensemble est plus
homogene et ne requiert plus de compilation assembleur externe.
Deux nouveaux fichiers apparaissent ainsi, INTRPT.H et INTRPT.C, qui
contiennent les routines de gestions des interruptions du timer et du
clavier. Deux autres fichiers SB.H et SB.C ont ete rajoutes pour la gestion
de la Sound Blaster v1.0 et sup, pour l'emulation du DAC 6 bits.

copymo5.* ont ete supprimes.

3. Les outils GETROM et GETMEMO5 ont ete legerement modifies de maniere
   a accepter la map-clavier du mo5 et le format de fichier k5 du mo5
   (qui est different du format k7).

   l'outil ENTERKEY a ete reecrit de maniere a ne plus faire appel aux
   routines en assembleur pour le clavier.

   l'outil WAV2K5 a ete ecrit "from scratch", car le codage k7 du MO5
   est totalement different de celui du TO7(70).

   Un nouvel outil K52QD et son pendant pour MO5 QD2K7 ont ete crees
   pour la manipulation de QDs.

   Un nouvel outil K52WAV a ete cree pour reconstituer les k7 a partir
   des images sur PC.
