Projet
MonsterBook

Par
Les Chevaliers de Malte
Date de création:
1990 (Alpha MalteBook)
1994 (Bêta MonsterBook)
Auteur/Concepteur/Programmeur
du projet:
Sylvain
Maltais
Table des matières
Table des matières
1. Manifeste du Projet 5
Le traitement de texte 9
Le chiffrier électronique (tableur) 9
Le programme de dessin bitmap 14
Le programme de dessin technique 15
La base de données 15
Le gestionnaire de fichiers 15
Le gestionnaire de programmes 16
Les applications terminal 18
Les outils de programmeurs 21
Les accessoires supplémentaires 22
La sécurité 22
L'environnement 23
2. Spécifications technique 25
Système d'exploitation 26
Noyau 27
Ressources 27
Système de compatibilité 29
Lancement 29
Environnement système 35
Environnement des périphériques 37
Gestionnaire de fichiers 42
Environnement graphique 43
Traitement de texte 45
L'instruction PageFormat 50
Les instructions Put et PutLn 50
Chiffrier électronique (tableur) 50
Programme de dessin technique 51
Applications terminal 52
Outils programmeurs 52
Gestionnaire de programmes 54
Navigateur HTML (Gestionnaire de programmes) 54
Accessoires supplémentaires 55
3. Programmation du projet 56
Les routines de détection 57
Détection du CMOS 60
Les fichiers 61
ShortBF 61
Les polices de caractères 62
Les pays et les régions 62
Les bases de données 67
Le traitement de texte 67
Le tableur 72
Annexe A: Les abréviations interne de programmation du projet 79
Annexe B: Les répertoires attribués au projet 83
Annexe C: Les répertoires des bases de données 85
Annexe D: Les principaux fichiers de code sources 87
Annexe E: Structures des fichiers 89
Base de données serveur de format Mentronix 89
Table de base de données de format Mentronix 90
Structure d'un fichier dBase III+ 91
Base de registres de format Malte Genesis IV: Chantal 92
Document de format GAT 93
Document de format Premier Choix (First Choice) 94
Structure d'un fichier tableur MGC 95
Définition d'une cellule vide 95
Définition d'une cellule à valeur numérique 96
Définition d'une cellule texte 96
Définition d'une cellule de formule 97
Définition d'une cellule de formule avec décimal 97
Structure d'un fichier image BGX (Bitmap Genesis graphiX) 98
Structure d'un fichier image Bitmap Windows 98
Structure d'une image d'impression GPX 99
Structure d'un fichier image Gem/Img Ventura 99
Structure d'un fichier image LBM 100
Structure d'un fichier d'image Targa 101
Structure d'un fichier d'image GIF 102
Annexe F : Code d'erreurs 104
Erreur de compilateur 111
Erreur de format 114
Erreur de compression du format de fichier ZIP 114
Erreur interface 115
Erreur d'installation d'interface 116
Erreur d'appel d'application externe 116
Erreur application 116
Index 118
Chapitre 1
Manifeste du Projet
1. Manifeste du Projet
Étant jeune, je lisais des bandes dessinés comme Astérix. Je trouvais ces personnages rigolos et amusant face à un envahisseur roman. Ils refusaient toujours de faire partie de l'empire Roman quoi qu'il arrive et ils trouvaient immanquablement une solution afin de se sortir de leur mauvais pas. De la même manière, je me voyais confronter à quelques choses dont je n'avais pas réaliser l'ampleur à cette époque: Le monde fabrique tout en anglais. Les romans d'autrefois sont maintenant les anglais d'aujourd'hui! Ainsi, se manifeste fut tout d'abord une cause désespérée afin de renverser ce problème. Bien qu'il n'y a pas encore arriver a être développer entièrement en français, mais dans ses instructions du code source à 100%, il est d'abord développer en français.
Ensuite nous nous rendâmes compte qu'un point s'incrustait de plus en plus dans le domaine de l'informatique. A l'image exacte du mari de madame Bauvary, une médiocrité très profonde s'installa de plus en plus. L'impérialisme anglais, n'est pas le seul empire dont ce manifeste tant à braver, il y a en plus celui d'un système travaillant contre son utilisateur: truffer de “bug”, éloignant toujours plus les utilisateurs de son noyau (désinformant), gros, lent, inefficace, partie manquante, sans ressource de réparation,...
Ayant pour base toutes les raisons cité plus haut, ce projet a donc pour but d'offrir un ensemble complet permettant l'exploitation total de la machine sans passer par aucune autre application, logiciel, progiciel ou système d'exploitation existant. Il pourra cependant fonctionner sous un système d'exploitation compatible au DOS ou sans lui. La machine requise pour faire fonctionner ce projet devra être n'importe quel micro-ordinateur basé sur un processeur de la famille 8086.
Noyau
Système
d’exploitation Base de
données globale Mentronix

Environnement graphique
MonsterBook

Application
Caméléon
Premièrement, on retrouvera donc un noyau offrant des possibilités comparable à un système d'exploitation DOS. Donc essentiellement centrer sur des possibilités de gestion des fichiers et de la mémoire. Ceux-ci étant naturellement disponible comme base a partir du DR-DOS, FreeDos, MS-DOS 2.0 ou postérieur, Windows 3.1, 3.11, 95, 98, 98SE, Me, NT et 2000, OS/2 et DOSEmu de Linux. Ce noyau offrira la possibilité de démarrer à partir d'une partition primaire ou logique, aussi bien sur une FAT12, FAT16, FAT32 ou HPFS. Le noyau devra charger les routines appropriés correspondant à la capacité du microprocesseur, ainsi il devra charger des routines de transfert et d'effacement de 32 bits si un CPU 80386 ou postérieur est installé, et une simple routine 8 bits dans le cas d'un CPU 8088.
Deuxièmement, l'environnement graphique sera tant qu'à elle une application complète de format exécutable. On retrouvera à ce niveau la plus grande partie du projet le MonsterBook à proprement parler. Celui-ci offrir une grande flexibilité d'environnement, c'est-à-dire qu'il pourra prendre la forme d'un bureau Windows 9X, OS/2 Warp 3 ou 4, StarOffice, Linux, Amiga,...
Le fonctionnement de l'environnement graphique du MonsterBook sera de son côté en liaison constante avec une base de données global fournissant des informations de conformité au matériel, aux possibilités particulières de l'application et aux ajouts éventuel a être intégrer au noyau. Ce compromis quoi habituellement très onéreux en terme d'espace disque devra être orientée de façon particulière afin de ne pas être un confronter à une application de 500 Ko brancher sur une base de données de 20 Mo. Elle devra donc être optimiser au niveau de l'espace et offrir des supports important au niveau des enregistrements de taille irrégulière.
Et enfin troisièmement, les applications seront de leurs côtés totalement intégrer à l'environnement graphique au niveau de l'exécutable de programme mais toutefois écrit de façon particulière à l'intérieur de celui-ci. En fait, ils seront gérer sur un concept de recouvrement (overlay) et ne seront donc pas charger automatiquement en mémoire, ceci afin d'économiser le temps de démarrage sur les machines très lentes.
Les applications seront regrouper sous les catégories suivantes: traitement de texte (comprenant toutes les applications possible pouvant être effectuer avec du texte, aussi bien le code source, éditeur HTML, éditeur de mise en forme,...), le gestionnaire de fichiers, le chiffrier électronique (tableur), base de données (avec support de langage SQL-92), application terminal (prompt DOS, shell Unix, VAX,...), programme de dessin bitmap et programme de dessin technique, gestionnaire de programmes (comprenant naturellement le panneau de configuration et le menu déroulant à la Windows 9X sans oublier la fenêtre de dossier de répertoire à l'explorateur), système de son.
On pourra à l'aide de l'environnement graphique lancer des clones d'application existante, comme par exemple au lieu du Norton Commander, on lancera Clone Commander, une copie pratiquement conforme de celui-ci. Ainsi, on pourra lancer également un CuteHTML reprenant les critères du programme de même nom! Il ne s'agira pas d'application complètement reprogrammer à l'intérieur du MonsterBook mais plutôt d'une application interne existante avec des paramètres adaptable au besoin pour atteindre l'apparence de ceux-ci. De cette façon, l'application principal ne grossira pas vraiment et ne dépaysera pas trop l'utilisateur pour autant!
Le traitement de texte
Le traitement de texte devra s'adapter aux nombreuses situations. Tout d'abord, il devra offrir la possibilité d'un filtre d'entrée pour le chargement d'information de format concurrent (Premier Choix, Professionnal Write, RTF, HTML, Word,...), d'un filtre de sortie pour la sauvegarde dans un format de fichier étranger et en plus un filtre interne visant à offrir la conversion de type de police de caractère de format ANSI par exemple à ASCII. En plus, il devra être capable de lire et d'éditer les codes sources Ada, Assembleur, Basic, C/C++, Cobol, Euphoria, Fortran, Java, Pascal, PL/1, SQL et de les afficher en mode typer. A se niveau, on devra donc intégrer des propriétés pour obtenir des applications comparables à Netscape Composer renommer Clone Composer, CuteHTML, Word Perfect, Microsoft Office.
Étant donnée le trop grand nombre d'espace consommer par un simple plan d'électronique mais pourtant avec son nombre réduit de caractère spéciaux, il faudra ajouter un support de police de caractères supplémentaire permettant l'édition de ceux-ci à l'intérieur d'un traitement de texte sans toutefois que le traitement de texte se laisse transparaître par sa forme...
Un système de base de données de mots devra servir d'outil de base à des mécanismes de correction ou de dictionnaire.
Il faudra aussi offrir la possibilité d'intégrer un mot de passe à un document afin de protéger certains document juger secret ou personnel.
Le chiffrier électronique (tableur)
Le chiffrier électronique aussi connu sous le nom de tableur devra offrir la possibilité de manipuler des chiffres sous toutes ses formes possibles, il devra également être muni de possibilitées supplémentaires lui donnant accès a de la compréhension des chaînes de caractères pour effectuer des estimations à partir de ceux-ci en autre. Il devra bien entendu offrir un support de formule compatible à Lotus 1-2-3, Quattro Pro ou Excel. Voici donc les différentes formules supportées:
|
Fonction |
Paramètres |
Compatibilité |
|
@ABS |
N |
Quattro Pro, Lotus 1-2-3 |
|
@ACOS |
N |
Quattro Pro, Lotus 1-2-3 |
|
@ACTUEL |
|
Quattro Pro, Lotus 1-2-3 |
|
@ALEAT |
|
Quattro Pro, Lotus 1-2-3 |
|
@AMORANN |
N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@AMORDEG |
N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@AMORLIN |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@AMORT |
N,C |
Quattro Pro, Lotus 1-2-3 |
|
@ANNEE |
N |
Quattro Pro, Lotus 1-2-3 |
|
@ARRONDI |
N,N |
Quattro Pro, Lotus 1-2-3 |
|
@ASIN |
N |
Quattro Pro, Lotus 1-2-3 |
|
@ATAN |
N |
Quattro Pro, Lotus 1-2-3 |
|
@ATAN2 |
N,N |
Quattro Pro, Lotus 1-2-3 |
|
@AUJOURDHUI |
|
Quattro Pro, Lotus 1-2-3 |
|
@BCOMPTE |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BMAX |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BMIN |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BMOYENNE |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BSOMME |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BSTD |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BSTDS |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BVAR |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@BVARS |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@C |
C |
Quattro Pro, Lotus 1-2-3 |
|
@CAR |
N |
Quattro Pro, Lotus 1-2-3 |
|
@CELLINDEX |
S,C,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@CELL |
S,C |
Quattro Pro, Lotus 1-2-3 |
|
@CELLPOINTER |
S |
Quattro Pro, Lotus 1-2-3 |
|
@CELLULE |
S,C |
Quattro Pro, Lotus 1-2-3 |
|
@CHAINE |
N,N |
Quattro Pro, Lotus 1-2-3 |
|
@CHAR |
N |
Quattro Pro, Lotus 1-2-3 |
|
@CHERCHE |
S,S,N |
Quattro Pro, Lotus 1-2-3 |
|
@CHOIX |
N,V |
Quattro Pro, Lotus 1-2-3 |
|
@CHOOSE |
N,V |
Quattro Pro, Lotus 1-2-3 |
|
@CLEAN |
|
Quattro Pro, Lotus 1-2-3 |
|
@CODE |
S |
Quattro Pro, Lotus 1-2-3 |
|
@COL |
C |
Quattro Pro, Lotus 1-2-3 |
|
@COLS |
C |
Quattro Pro, Lotus 1-2-3 |
|
@COMPTE |
C |
Quattro Pro, Lotus 1-2-3 |
|
@CONSH |
N,C,N |
Quattro Pro, Lotus 1-2-3 |
|
@CONSV |
N,C,N |
Quattro Pro, Lotus 1-2-3 |
|
@COS |
N |
Quattro Pro, Lotus 1-2-3 |
|
@COSH |
N |
Lotus 1-2-3 |
|
@COUNT |
C |
Quattro Pro, Lotus 1-2-3 |
|
@CTERM |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@CURVALUE |
S,S |
Quattro Pro, Lotus 1-2-3 |
|
@DATE |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@DATEVALUE |
V |
Quattro Pro, Lotus 1-2-3 |
|
@DATVAL |
V |
Quattro Pro, Lotus 1-2-3 |
|
@DAVG |
CNC |
Quattro Pro, Lotus 1-2-3 |
|
@DAY |
N |
Quattro Pro, Lotus 1-2-3 |
|
@DCOUNT |
CNC |
Quattro Pro, Lotus 1-2-3 |
|
@DDB |
NNNN |
Quattro Pro, Lotus 1-2-3 |
|
@DEBUT |
SN |
Quattro Pro, Lotus 1-2-3 |
|
@DEG |
N |
Quattro Pro, Lotus 1-2-3 |
|
@DEGREES |
N |
Quattro Pro, Lotus 1-2-3 |
|
@DSUM |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@DVAR |
C,N,C |
Quattro Pro, Lotus 1-2-3 |
|
@DUREE |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@DUREECOMP |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@EGAL |
SS |
Quattro Pro, Lotus 1-2-3 |
|
@ENT |
N |
Quattro Pro, Lotus 1-2-3 |
|
@EPURE |
S |
Quattro Pro, Lotus 1-2-3 |
|
@ERR |
|
Quattro Pro, Lotus 1-2-3 |
|
@ESTCHAINE |
V |
Quattro Pro, Lotus 1-2-3 |
|
@ESTERR |
V |
Quattro Pro, Lotus 1-2-3 |
|
@ESTND |
V |
Quattro Pro, Lotus 1-2-3 |
|
@ESTNUM |
V |
Quattro Pro, Lotus 1-2-3 |
|
@EXP |
N |
Quattro Pro, Lotus 1-2-3 |
|
@FALSE |
|
Quattro Pro, Lotus 1-2-3 |
|
@FAUX |
|
Quattro Pro, Lotus 1-2-3 |
|
@FICHIEREXISTE |
S |
Quattro Pro, Lotus 1-2-3 |
|
@FILEEXISTS |
S |
Quattro Pro, Lotus 1-2-3 |
|
@FIN |
S,N |
Quattro Pro, Lotus 1-2-3 |
|
@FIND |
S,S,N |
Quattro Pro, Lotus 1-2-3 |
|
@FV |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@FVAL |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@HEURE |
V |
Quattro Pro, Lotus 1-2-3 |
|
@HEURVAL |
V |
Quattro Pro, Lotus 1-2-3 |
|
@HEXANUM |
S |
Quattro Pro, Lotus 1-2-3 |
|
@HEXTONUM |
S |
Quattro Pro, Lotus 1-2-3 |
|
@HLOOKUP |
N,C,N |
Quattro Pro, Lotus 1-2-3 |
|
@HOUR |
V |
Quattro Pro, Lotus 1-2-3 |
|
@IF |
B,V,V |
Quattro Pro, Lotus 1-2-3 |
|
@INDEX |
C,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@INT |
N |
Quattro Pro, Lotus 1-2-3 |
|
@INTERET |
N,N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@IPAYMT |
N,N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@IRATE |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@IRR |
N,C |
Quattro Pro, Lotus 1-2-3 |
|
@ISAAF |
S |
Quattro Pro, Lotus 1-2-3 |
|
@ISAPP |
S |
Quattro Pro, Lotus 1-2-3 |
|
@ISERR |
V |
Quattro Pro, Lotus 1-2-3 |
|
@ISNA |
V |
Quattro Pro, Lotus 1-2-3 |
|
@ISNUMBER |
V |
Quattro Pro, Lotus 1-2-3 |
|
@ISSTRING |
V |
Quattro Pro, Lotus 1-2-3 |
|
@JOUR |
N |
Quattro Pro, Lotus 1-2-3 |
|
@LEFT |
S,N |
Quattro Pro, Lotus 1-2-3 |
|
@LENGTH |
S |
Quattro Pro, Lotus 1-2-3 |
|
@LIGNES |
C |
Quattro Pro, Lotus 1-2-3 |
|
@LN |
N |
Quattro Pro, Lotus 1-2-3 |
|
@LOG |
N |
Quattro Pro, Lotus 1-2-3 |
|
@LONG |
S |
Quattro Pro, Lotus 1-2-3 |
|
@LOWER |
S |
Quattro Pro, Lotus 1-2-3 |
|
@MAJUSC |
S |
Quattro Pro, Lotus 1-2-3 |
|
@MAX |
C |
Quattro Pro, Lotus 1-2-3 |
|
@MEMAVAIL |
|
Quattro Pro, Lotus 1-2-3 |
|
@MEMDISPO |
|
Quattro Pro, Lotus 1-2-3 |
|
@MEMMEMSAVAIL |
|
Quattro Pro, Lotus 1-2-3 |
|
@MEMMEMSDISPO |
|
Quattro Pro, Lotus 1-2-3 |
|
@MID |
S,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@MILIEU |
S,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@MIN |
C |
Quattro Pro, Lotus 1-2-3 |
|
@MINUSC |
S |
Quattro Pro, Lotus 1-2-3 |
|
@MINUTE |
N |
Quattro Pro, Lotus 1-2-3 |
|
@MOD |
NN |
Quattro Pro, Lotus 1-2-3 |
|
@MOIS |
N |
Quattro Pro, Lotus 1-2-3 |
|
@MOYENNE |
C |
Quattro Pro, Lotus 1-2-3 |
|
@N |
C |
Quattro Pro, Lotus 1-2-3 |
|
@NA |
|
Quattro Pro, Lotus 1-2-3 |
|
@ND |
|
Quattro Pro, Lotus 1-2-3 |
|
@NOMPROPRE |
S |
Quattro Pro, Lotus 1-2-3 |
|
@NOW |
|
Quattro Pro, Lotus 1-2-3 |
|
@NPER |
NNNNN |
Quattro Pro, Lotus 1-2-3 |
|
@NPV |
NCN |
Quattro Pro, Lotus 1-2-3 |
|
@NUMAHEX |
S |
Quattro Pro, Lotus 1-2-3 |
|
@NUMTOHEX |
S |
Quattro Pro, Lotus 1-2-3 |
|
@PI |
|
Quattro Pro, Lotus 1-2-3 |
|
@PMT |
|
Quattro Pro, Lotus 1-2-3 |
|
@POINTCELL |
S |
Quattro Pro, Lotus 1-2-3 |
|
@PPAYMT |
N,N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@PRINCIPAL |
N,N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@PRODSCAL |
C,C |
Quattro Pro, Lotus 1-2-3 |
|
@PROPER |
S |
Quattro Pro, Lotus 1-2-3 |
|
@PV |
|
Quattro Pro, Lotus 1-2-3 |
|
@PVAL |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@RACINE |
N |
Quattro Pro, Lotus 1-2-3 |
|
@RAD |
N |
Quattro Pro, Lotus 1-2-3 |
|
@RADIANS |
N |
Quattro Pro, Lotus 1-2-3 |
|
@RATE |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@REMB |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@REMBOUR |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@REPEAT |
S,N |
Quattro Pro, Lotus 1-2-3 |
|
@REPETE |
S,N |
Quattro Pro, Lotus 1-2-3 |
|
@REPLACE |
S,N,N,S |
Quattro Pro, Lotus 1-2-3 |
|
@RIGHT |
S,N |
Quattro Pro, Lotus 1-2-3 |
|
@ROUND |
N |
Quattro Pro, Lotus 1-2-3 |
|
@ROWS |
C |
Quattro Pro, Lotus 1-2-3 |
|
@S |
C |
Quattro Pro, Lotus 1-2-3 |
|
@SECOND |
N |
Quattro Pro, Lotus 1-2-3 |
|
@SECONDE |
N |
Quattro Pro, Lotus 1-2-3 |
|
@SI |
B,V,V |
Quattro Pro, Lotus 1-2-3 |
|
@SIN |
N |
Quattro Pro, Lotus 1-2-3 |
|
@SINH |
N |
Lotus 1-2-3 |
|
@SLN |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@SOMME |
C |
Quattro Pro, Lotus 1-2-3 |
|
@SQRT |
N |
Quattro Pro, Lotus 1-2-3 |
|
@STD |
C |
Quattro Pro, Lotus 1-2-3 |
|
@STDS |
C |
Quattro Pro, Lotus 1-2-3 |
|
@STRING |
NN |
Quattro Pro, Lotus 1-2-3 |
|
@SUBSTITUE |
S,N,N,S |
Quattro Pro, Lotus 1-2-3 |
|
@SUM |
C |
Quattro Pro, Lotus 1-2-3 |
|
@SUMPRODUCT |
C,C |
Quattro Pro, Lotus 1-2-3 |
|
@SUPPRESPACE |
S |
Quattro Pro, Lotus 1-2-3 |
|
@SYD |
N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@TAN |
N |
Quattro Pro, Lotus 1-2-3 |
|
@TAUX |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@TAUXINT |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@TEMPS |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@TERM |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@TIME |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@TIMEVALUE |
V |
Quattro Pro, Lotus 1-2-3 |
|
@TODAY |
|
Quattro Pro, Lotus 1-2-3 |
|
@TRIM |
S |
Quattro Pro, Lotus 1-2-3 |
|
@TRUE |
|
Quattro Pro, Lotus 1-2-3 |
|
@UPPER |
S |
Quattro Pro, Lotus 1-2-3 |
|
@VACT |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@VALACT |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@VALEUR |
S |
Quattro Pro, Lotus 1-2-3 |
|
@VALEUROPTION |
S,S |
Quattro Pro, Lotus 1-2-3 |
|
@VALFUT |
N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@VAN |
N,C,N |
Quattro Pro, Lotus 1-2-3 |
|
@VAR |
C |
Quattro Pro, Lotus 1-2-3 |
|
@VARS |
C |
Quattro Pro, Lotus 1-2-3 |
|
@VERSION |
|
Quattro Pro, Lotus 1-2-3 |
|
@VFUT |
N,N,N,N,N |
Quattro Pro, Lotus 1-2-3 |
|
@VLOOKUP |
N,C,N |
Quattro Pro, Lotus 1-2-3 |
|
@VRAI |
|
Quattro Pro, Lotus 1-2-3 |
|
@YEAR |
N |
Quattro Pro, Lotus 1-2-3 |
|
ABS |
N |
Microsoft Excel |
|
ACCRINT |
N,N,N,N,N,N,N |
Microsoft Excel |
|
ACCRINTM |
N,N,N,N,N |
Microsoft Excel |
|
ACOS |
N |
Microsoft Excel |
|
ACOSH |
N |
Microsoft Excel |
|
ACOTH |
N |
Microsoft Excel |
|
ACSC |
N |
Microsoft Excel |
|
ADRESSE |
N,N,N,C,S |
Microsoft Excel |
|
ALEA |
|
Microsoft Excel |
|
ALEA.ENTRE.BORNES |
N,N |
Microsoft Excel |
|
AMORDEGRC |
N,N,N,N,N,N |
Microsoft Excel |
|
AMORLIN |
N,N,N |
Microsoft Excel |
|
AMORLINC |
N,N,N,N,N,N,N |
Microsoft Excel |
|
ANNEE |
N |
Microsoft Excel |
|
ARRONDI |
N,N |
Microsoft Excel |
|
ARRONDI.AU.MULTIPLE |
N,N |
Microsoft Excel |
|
ARRONDI.INF |
N,N |
Microsoft Excel |
|
ARRONDI.SUP |
N,N |
Microsoft Excel |
|
ASECH |
N |
Microsoft Excel |
|
ASIN |
N |
Microsoft Excel |
|
ASINH |
N |
Microsoft Excel |
|
ATAN |
N |
Microsoft Excel |
|
ATAN2 |
N,N |
Microsoft Excel |
|
ATANH |
N |
Microsoft Excel |
|
AUJOURDHUI |
|
Microsoft Excel |
|
AVERAGEA |
C |
Microsoft Excel |
|
BDECARTYPE |
C,C,N |
Microsoft Excel |
|
BDECARTYPEP |
C,C,N |
Microsoft Excel |
|
BDLIRE |
C,C,N |
Microsoft Excel |
|
BDMAX |
C,C,N |
Microsoft Excel |
|
BDMIN |
C,C,N |
Microsoft Excel |
|
BDMOYENNE |
C,C,N |
Microsoft Excel |
|
BDNB |
C,C,N |
Microsoft Excel |
|
BDNBVAL |
C,C,N |
Microsoft Excel |
|
BDPRODUIT |
C,C,N |
Microsoft Excel |
|
BDSOMME |
C,C,N |
Microsoft Excel |
|
BDVAR |
C,C,N |
Microsoft Excel |
|
BDVARP |
C,C,N |
Microsoft Excel |
|
BESSELI |
N,N |
Microsoft Excel |
|
BESSELJ |
N,N |
Microsoft Excel |
|
BESSELK |
N,N |
Microsoft Excel |
|
BESSELY |
N,N |
Microsoft Excel |
|
BETAINVERSE |
N,N |
Microsoft Excel |
|
BIN2DEC |
b |
Microsoft Excel |
|
BIN2HEX |
b,N |
Microsoft Excel |
|
BIN2OCT |
b,N |
Microsoft Excel |
|
BINDEC |
b |
Microsoft Excel |
|
BINHEX |
b,N |
Microsoft Excel |
|
BINOCT |
b,N |
Microsoft Excel |
|
BOITEDIALOGUESOLVEURFINIR |
N,N |
Microsoft Excel |
|
BOITEDIALOGUESOLVEUROK |
N,N,N |
Microsoft Excel |
|
CAR |
N |
Microsoft Excel |
|
CELLULE |
S,C |
Microsoft Excel |
|
CENTILE |
C,N |
Microsoft Excel |
|
CENTREE.REDUITE |
N,N,N |
Microsoft Excel |
|
CHERCHE |
S,S,N |
Microsoft Excel |
|
CHOISIR |
N,N |
Microsoft Excel |
|
CNOM |
S |
Microsoft Excel |
|
CODE |
S |
Microsoft Excel |
|
COEFFICIENT.ASYMETRIE |
N,N |
Microsoft Excel |
|
COEFFICIENT.CORRELATION |
C,C |
Microsoft Excel |
|
COEFFICIENT.DETERMINATION |
C,C |
Microsoft Excel |
|
COLONNE |
S |
Microsoft Excel |
|
COLONNES |
C |
Microsoft Excel |
|
COMBIN |
N,N |
Microsoft Excel |
|
COS |
N |
Microsoft Excel |
|
COTH |
N |
Microsoft Excel |
|
ECARTYPEP |
C |
Microsoft Excel |
|
LOG10 |
N |
Microsoft Excel |
|
LOI.BINOMIALE |
N,N,N,B |
Microsoft Excel |
|
LOI.NORMALE.STANDARD |
N |
Microsoft Excel |
|
LOI.POISSON |
N,N,B |
Microsoft Excel |
|
SIN |
N |
Microsoft Excel |
|
TAN |
N |
Microsoft Excel |
|
VAR.P |
C |
Microsoft Excel |
Le programme de dessin bitmap
Tout comme le traitement de texte ou le tableur, on devra retrouver un filtre d'entrée et de sortie pour offrir la possibilité de manipuler le format de dessin souhaiter. En plus, il devra être possible de copie par exemple dans le presse-papiers à partir du gestionnaire de fichiers un fichier et de coller son image dans le dessin actuellement en traitement. Divers format de pixel pourront être afficher comme c'est le cas par exemple sous AutoCad, il peut afficher un cercle, un X,... si désirer.
Le programme de dessin technique
Cette partie devra entre autre rendre possible l'édition de plan électronique, d'organigramme, dessin en file de fer, DFD (Diagramme de Flux de Données),... On pourra donc considérer cette application comme un équivalent de Corel Draw, Visio ou d'Adobe Illustrator.
En somme, le programme de dessin technique se divise avec les parties suivantes:
DFD (diagramme de flux de données): Permettant au programmeurs de dessiner de façon simple et efficace les structures de leur système.
Plan électronique: Permet de représenter sur un dessin à l'aide de pièce électronique des microcircuits d'électronique.
Dessin technique: Celle-ci est véritablement un dessin technique, il s'apparente à Corel Draw, Adobe Illustrator,...
La base de données
Afin d'offrir le maximum de possibilités de développement, la version utiliser sera la Mentronix. Celle-ci permettant à la base de données d'être manipulable de façon local ou global. C'est-à-dire que si le besoin sent fait sentir, on peut utiliser une base de données gérer sous l'aspect d'un volume ou encore qu'une table corresponde à un fichier. Afin d'éviter des problèmes de transformation d'information, elle devra également être moyennement compatible avec le langage SQL-92. On devra retrouver des fonctions comparables à ceux d'Adados, StarBase, Microsoft Access, Dbase, Visual dBase, Lotus SmartSuite Approach,...
Le gestionnaire de fichiers
Le gestionnaire de fichiers sera divisée en deux tableaux. Les deux pourront s'adapter a plusieurs combinaison possible (à l'image du Norton Commander), ils pourront: visualiser une liste de fichiers, de répertoires, tableau sommaire d'information et prévisualisateur. Le deuxième bouton de la souris offrira, en autre, la possibilité d'un menu contextuel s'ouvrant sur des options de conversion (fichier musique, image, animation et exécutable), copie (d'un répertoire ou d'un fichier; dans le presse-papiers, dans une ressource, vers le disque,...), déplacement (d'un fichier ou répertoire), effacement, propriété et autre composant approprier au fichier pointer. Par exemple s'il s'agit d'un fichier volume DOSEmu, il devra offrir la possibilité de le monter sur une unité non alloue du système dans le but de visualiser sont contenu sans passer par une application spécialiser. Il va de soit qu'il devra aussi être capable de lire un fichier BOOT Disquette d'OS/2. Dans le même ordre d'idée, un support permettra de parcourir des fichiers compressées comme ARC, ARJ, CAB, LZH, ICE, PAK, RAR, SWG, TZ, ZIP, ZOO,... Et afin d'offrir une alternative maison a un réseau local sans carte de réseau, le gestionnaire devra être capable d'envoyer et recevoir des fichiers par port série ou parallèle comme le font Norton Commander , Laplink ou FastLynx. Dans cette application on retrouvera des propriétés particulière afin d'obtenir un Norton Commander renommer Clone Commander, PC Shell du PC Tools.
Voici d'ailleurs un exemple d'une fenêtre de Gestionnaire de fichiers modifier afin d'obtenir un résultat similaire à celui du Norton Commander de Symantec. Il ne s'agit pas d'une nouvelle application entièrement indépendant, mais belle et bien celui d'une application multi-programmable, développer dans une optique caméléon:

Le gestionnaire de programmes
Le gestionnaire de programmes est sans doute la composante du MonsterBook la plus adaptable. Celle-ci en effet peut prendre différentes formes, allant d'un menu déroulant a la Windows 9X ou Linux, OS/2, un gestionnaire de programmes genre Windows 3.1(1) ainsi que celle d'un tableau de bord de style OS/2. Elle aura également certain supplément interne permettant d'être utiliser comme base dans un Panneau de Configuration a la manière de Windows 3.1, 9X ou NT.
Le barre de tâche d'origine
Windows 9X sera construire de façon être divisé
en segment parfaitement égale lequel représentant
toutes les fenêtres ouverte pour un maximum de dix. En voici
l'aspect:
![]()
On remarquera que sur le coté gauche d'un segment de la barre de tache, on constate un icône, lequel permet d'identifier au premier coup d'oeil de quel application il s'agit. On constate en plus qu'exclusivement sur la barre “Démarrer”, un icône sur le coter droite permet de voir immédiatement les éléments du bureau ou dans le cas contraire de restaurer celui-ci afin de permettre par exemple d'accéder au icône sur le bureau sans minimiser plusieurs dizaine de fenêtre.
Dans l'onglet de gestionnaire de programmes du MonsterBook, on construira un navigateur HTML primitif avec l'aide des polices de caractères de la classe QQF. Le défilement se fera comme un écran de texte classique. Mais avec 1 seul pixel de déplacement à la fois, plus si l'utilisateur considère que la chose est nécessaire (changement de page avec les touches Page Up et Page Down.
Les applications terminal
Les applications terminal sont
simplement un fenêtre offrant la possibilité d'utiliser
la méthode de commande afin de permettre a certain utilisateur
l'emploi de certaine possibilité très ancienne mais
toutefois essentiel! On retrouvera donc essentiellement un prompt
DOS et un shell Unix. Un menu déroulant devra être
disponible lorsqu'on appuiera sur le deux boutons de la souris afin
d'obtenir par exemple de l'aide ou des commandes nécessitant
la recherche de fichier.

Afin de permettre d'ajouter d'offrir un maximum de confort pour c'est différent format de prompt DOS, on devra fournir les commandes suivantes:
|
Nom |
Description |
Modèle |
|
? |
Fournit la liste d'aide |
4DOS/NDOS |
|
: |
Retourne l'unité courante |
MOS |
|
*: |
Affiche toutes les unités disponible |
MOS |
|
4MAT |
Format une unité de disque |
MOS |
|
ALIAS |
Association d'alias à une commande |
4DOS/NDOS |
|
ATTRIB |
Modification des attributs de fichiers |
DOS |
|
BE |
Commandes Symantec |
Norton Utility |
|
BEEP |
Émet un signal sonore |
4DOS/NDOS |
|
CD |
Changement de répertoire |
DOS |
|
CHCP |
Changement de code de page |
DOS |
|
CHDIR |
Changement de répertoire |
DOS |
|
CLS |
Efface l'écran |
DOS |
|
COMSPEC |
Retourne le chemin d'accès de l'interpréteur de commande |
DOS |
|
CONFIG |
Retourne la configuration actuel |
MOS |
|
COPY |
Copie un/des fichier(s) |
DOS |
|
CPUID |
Active/désactive l'instruction CPUID du Cyrix |
MOS |
|
CRLL |
Compilateur de ressource |
MOS |
|
DEL |
Efface un/des fichier(s) |
DOS |
|
DELQ |
Efface un/des fichier(s) avec un prompt (O/N)? |
DR-DOS |
|
DESCRIBE |
Rajoute une description à un fichier |
4DOS/NDOS |
|
DIR |
Affiche la liste des fichiers dans le répertoire |
DOS |
|
DUMP |
Dump de mémoire ou de fichier |
MOS |
|
ECHO |
Fixe l'écho |
DOS |
|
ERAQ |
Efface un/des fichier(s) avec un prompt (O/N)? |
DR-DOS |
|
ERASE |
Efface un/des fichier(s) |
DOS |
|
EXIT |
Quitter l'interpréteur de commande |
DOS |
|
FASTHELP |
Aide rapide |
MS-DOS |
|
FIND |
Recherche une chaîne de caractères dans des fichiers |
DOS |
|
FORMAT |
Format une unité de disque |
DOS |
|
FREE |
Retourne l'espace de libre sur une unité de disque |
4DOS/NDOS |
|
GREP |
Recherche une chaîne de caractères dans des fichiers |
Borland |
|
LABEL |
Fixe le nouveau nom de volume d'une unité |
DOS |
|
MD |
Crée un répertoire |
DOS |
|
MEMORY |
Affichage de l'état de la mémoire |
4DOS/NDOS |
|
MKDIR |
Crée un répertoire |
DOS |
|
MODE |
Commande MODE externe des systèmes d'exploitation DOS |
DOS |
|
MOVE |
Déplacement d'un/des fichier(s) |
DOS |
|
PATH |
Affiche les chemins de recherches par défaut |
DOS |
|
PAUSE |
Affiche un message de pause et attend un signal utilisateur |
DOS |
|
PLAY |
Jouer des sons |
Creative Labs |
|
PRNFILE |
Impression d'un fichier |
MOS |
|
PROMPT |
Affiche le prompt courant |
DOS |
|
RD |
Effacer un répertoire |
DOS |
|
REN |
Renommer un/des fichier(s) |
DOS |
|
RENAME |
Renommer un/des fichier(s) |
DOS |
|
RENDIR |
Renommer un répertoire |
DR-DOS |
|
RMDIR |
Effacer un répertoire |
DOS |
|
SCREEN |
Affiche un message à un endroit précis |
4DOS/NDOS |
|
SERNO |
Retourne le numéro de série |
MOS |
|
SET |
Retourne les variables d'environnement |
DOS |
|
SETPRN |
Définit la configuration de l'imprimante |
MOS |
|
TIME |
Fixe l'heure |
DOS |
|
TRUENAME |
Retourne un chemin au complet |
MS-DOS |
|
TRUNCTEXT |
Découpe un texte ayant trop de ligne en des textes plus court |
MOS |
|
TYPE |
Affiche le contenu ASCII d'un fichier |
DOS |
|
VER |
Affiche la version du DOS |
DOS |
|
VERIFY |
Définit la vérification |
DOS |
|
VOL |
Nom du volume |
DOS |
|
UNASM |
Décompile du code machine en assembleur |
MOS |
|
UNCODE |
Décompile du code machine en assembleur |
MOS |
|
WTDATIM |
Affiche la date et l'heure |
Utilitaire |
|
XDIR |
DR-DOS: Affiche la liste d'un répertoire |
DR-DOS |
Dans le même cheminement d'idée, on retrouvera les commandes suivantes pour le prompt Unix:
|
Commande |
Description |
|---|---|
|
? |
Aide en ligne |
|
banner |
Affiche un texte en grande lettre |
|
basename |
Indique le nom de base d'un chemin. |
|
cd |
Change de répertoire |
|
clear |
Efface l'écran |
|
cp |
Copie des fichiers |
|
dirname |
Retourne le répertoire d'un chemin |
|
echo |
Active ou désactive l'écho. |
|
exit |
Quitter la fenêtre Unix. |
|
help |
Aide en ligne |
|
logout |
Quitter la fenêtre Unix. |
|
ls |
Affiche le contenu d'un répertoire. |
|
man |
Aide en ligne |
|
pwd |
Affiche le répertoire courant |
|
whoami |
Indique l'utilisateur courant. |
En somme les commandes devront être variable en fonction du modèle de préférence de DOS ou de Unix désirer.
Les outils de programmeurs
Les outils de programmeurs sont par exemple l'éditeur hexadécimal, le débogueur, le Workshop. Ceux-ci offriront des possibilités supplémentaires de probabilité et d'ajustement supplémentaire à l'application MonsterBook. On devra éventuellement avoir la possibilité d'utiliser un compilateur d'assembleur inclus comme base dans l'application afin de promouvoir par exemple le code machine du Kébecup. Également, on pourra écrire du code compatible avec le Visual Basic, puisque se projet cherche invariablement à ouvrir des portes et certainement pas de les refermés.
Les Accessoires supplémentaires
Les accessoires supplémentaires sont des composantes de base comme la calculatrice, l'horloge, le calendrier, joueur de disque compacte de musique, format de disquette, ménagère de disque, visualisateur multimédia, navigateur de page HTML (car il est indispensable d'avoir un visualisateur de fichier HTML étant donner l'importance grandissante d'INTERNET au cours des dernières années),...
Dans la situation du calendrier, il ne sera pas tout d'ajouter un menu contextuel afin d'offrir des services éventuel correspondant à certain besoin, ceux-ci ressembleront à l'aspect suivant:
|
|
||
|---|---|---|
|
Aller au moi de/d' > |
Janvier |
|
|
Différence de jour |
Février |
|
|
Calculer Zodiaque |
Mars |
|
|
|
Avril |
|
|
Mai |
||
|
Juin |
||
|
Juillet |
||
|
Août |
||
|
Septembre |
||
|
Octobre |
||
|
Novembre |
||
|
Décembre |
||
On pourra à partir de ce menu contextuel calculer par exemple le signe du zodiaque comme le Verseau, Bélier, Taureau ou ceux chinois comme le Dragon, Cochon,...
La sécurité
La sécurité sera un aspect important a laquelle le MonsterBook devra s'adapter. Entre autre on devra retrouver des options de protection par mots de passe au lancement de l'application si désirer afin de restreindre l'accès au utilisateur non souhaiter.
Les protections par confirmation de mots de passe sont peut-être des techniques intéressantes concernant les utilisateurs indésirés, seulement, il arrive que le système pour des raisons sans nombre (panne de courant, plantage,...) se détériore lui-même et qu'un service de réparation soit nécessaire. Pour cette raison, le MonsterBook, comme tous les systèmes d'exploitation moderne se respectant, devra intégrer un service d'entretien permettant de détecter les erreurs et de les corrigées comme l'a longtemps été les produits de Symantec: Norton.
L'ajout de cette possibilité se fera par l'entremise du menu déroulant “Démarrer” du gestionnaire de programmes et devra être située a proximité de “Paramètres”. Une fenêtre apparaîtra et on pourra choisir trois style de réparation regrouper:
Fichier système.
Configuration.
Raccourci.
Ceux-ci seront diviser en des éléments encore plus complexe invisible à l'utilisateur avec les caractéristiques suivantes:
Fichier système:
Vérification du stockage des fichiers dans les répertoires afin de s'assurer qu'il ne sont pas tous dans le répertoires central.
Recherche la présence de tous les fichiers systèmes du MonsterBook. S'il y a omission, il y a possibilité de problème éventuelle!
Vérification de l'intégrité du MonsterBook.
Configuration:
Compare la date du fichier MB.CFG et MB.INI.
Vérification de la cohérence de l'information contenu dans les fichiers de configuration.
Vérification du/des fichier(s) “FRANCAIS.MNB” et de “FRANCAIS.MNX”.
Vérification que le nombre de fichiers HANDLE soit supérieur à 20 (“FILES=20” dans le fichier CONFIG.SYS du DOS).
Raccourci:
Vérification de la validité des informations contenu dans le derniers fichiers ouvert dans le menu “Démarrer” de l'item “Document”.
Une fois toutes ces analyses effectuée, une fenêtre apparaîtra et permettra de choisir les problèmes que l'on souhaite corriger ou non.
L'environnement
Dans le cas de l'environnement on entend par ce terme tout les boîtes de dialogues n'étant pas réellement des applications comme par exemple dans le domaine de la configuration des options à cliquer avec une souris.
Dans la barre du bas de l'écran à droite, un indicateur de quantité de mémoire conventionnel disponible pourra être afficher soit sous l'aspect d'un nombre, d'une barre de progression ou tout simplement caché. Il devra également offrir certaine option en rapport directe avec les informations de mémoire, comme la mémoire ressource disponible par exemple. On pourra également retrouver un icône de console de son à proximité afin de pouvoir émuler l'environnement graphique de Windows 9X.
Dans le cas du menu l'environnement vidéo, on pourra choisir les styles de boutons, style de cadre, ... Il devra fournir des options cependant un peu plus particulière afin d'offrir à l'utilisateur une possibilité d'accélérer l'exécution de celui-ci. Dans ce même ordre des choses, on retrouvera entre autre une possibilité de faire: clignoter les boutons ou non, d'activer ou désactiver le modulateur de FX (d'effet spéciaux), l'activation d'une option de détection avancée des anciennes cartes Super VGA, on accès au plage vidéo par le ROM BIOS ou par programmation directe,...
Le MonsterBook ne reculant devant rien afin d'offrir le maximum de souplesse pour améliorer le système, on devra ajouter des options particulière pour les CPU. Ainsi, les fabricant du microprocesseur Cyrix sont parmi les CPUs les plus configurable ayant été construit! Cependant, ils ne sont pas toujours optimiser et il existe que très peu de logiciel s'occupant de les configurer à notre guise... Toutefois, le MonsterBook, toujours a l'affût d'accéder a de nouvelle possibilité du matériel devra lui, plus que les autres, offrir des modifications possible de cette configuration. On retrouvera comme option ceux-ci:
“FrameBuffer” rapide.
“Write-Back cache”.
“Write Allocate”
Instruction “CPUID” supportée
Mettre en veille si “HALT”.
“Cached Directory Table Entry”
“Negate Lock”
“Data forwarding”
“LOOP” rapide.
Délai d'entrée/sortie configurable.
Chapitre 2
Spécifications technique
2. Spécifications technique
Afin d'offrir une meilleure stabilité de l'environnement graphique, en particulier au niveau des pointeurs, celui-ci sera coder à l'aide du langage de programmation Pascal. Celui-ci, par ça simplicité mais sa grande souplesse au niveau de l'inclusion de code assembleurs, permettra d'obtenir d'excellent résultat.
Les routines de base devront être écrite essentiellement en assembleur, tandis que les routines que l'on appellera de finition, seront tant qu'a elle en langage de programmation Pascal.
Le code source pourra avoir une taille illimitée afin d'obtenir cependant une taille très restreintes au niveau de la taille global de l'exécutable. Celui-ci en effet devra rentrer sur une disquette afin de pouvoir être installer sur de petit système!
Système d'exploitation
Le système d'exploitation est la partie indépendante du MonsterBook ou l'équivalent du DOS. Celle-ci sera écrit en langage de programmation Pascal B57, soit à l'aide du compilateur OverCode. Il s'agit d'un compilateur de langage Pascal étant relativement proche de l'assembleur et du fonctionnement de la machine. Il n'est pas a proprement parler lier a un système d'exploitation ou a une bibliothèque lourde.
On retrouvera dans ce système d'exploitation les routines de base de l'Interruption 21h relier a la gestion des fichiers et de la mémoire. Le reste des routines est considérer comme sans importance. Il va de soit qu'une routine de détection très pousser sera également disponible à l'intérieur de celui-ci et consultable par les exécutables une fois celui-ci complètement charger.
Noyau
En d'autre terme, le noyau du MonsterBook sera orientée autour de l'ensemble du Malte Genesis IV: Alias Chantal. Celui-ci est un noyau avec ses propres mécanismes de détection très poussée charger directement dans l'unité centrale du programme (Adèle) et réexploitable afin de charger le pilote vidéo approprier permettra une optimisation des performances accrus afin d'offrir le meilleur compromis possible pour la vitesse de chargement du programme ainsi qu'une utilisation de la mémoire minimal. Malgré le fait que les pilotes vidéo font un usage intensif de table d'accélération, la mémoire perdu a profit de ceux-ci est rentable dans le mesure ou le programme doit fonctionner sur des machines relativement lente mais disposant toujours d'au moins 512 Ko de mémoire.
Les opérations mathématiques devront être gérer de façon différentes a l'intérieur du noyau. Par exemple la division par 0 devra retourner 0 (voir la documentation sur l'Univers @ pour plus de détail) afin d'alléger le code. Selon les affirmations de ce document, la tendance mathématique tenterait à démontrer qu'il existerait une réponse unique au problème et cela ne donnerait pas l'ensemble des nombres réel comme prétendu par les mathématiciens actuel. Ainsi dans 99,99% des cas, un zéro comme réponse doit être retourner, il est préférable pour cette raison d'effectuer un teste supplémentaire lorsqu'une division par 0 pour indiquer que le cas n'est pas autoriser que d'effectuer une surveillance dans chaque cas.
Ressources
Les ressources seront diviser en plusieurs catégories: la mémoire, les images et les bases de données.
La mémoire sera gérer à deux niveaux: la mémoire central (mieux connu sous le terme de mémoire conventionnel) et les ressources mémoires ou de grande capacité (XMS, EMS, Extended Bios Interrupt 15h, VRAM, Disque dur,...). Dans le cas des ressources, il devra également être possible de l'appliquer au niveau de la mémoire conventionnel afin de permettre l'augmentation des performances dans certaines cas particulier.
Les ressources d'image offriront la possibilité de charger ou sauvegarder n'importe quel format d'image et d'ensuite pouvoir les exploiter de façon universelle à l'aide d'une ressource mémoire. Ceci évitant naturellement d'écrire beaucoup de code de filtre a chaque application et de plutôt les centraliser. On devra retrouver un support pour toutes les formats d'image les plus utiliser: BBM, BMP, GFX, JPEG, PCX, PPM, GIF, LBM, TIF, BGX, GPX, GemImg, XBM, MacPaint, TGA, SCi,... En plus, il devra être possible d'orienté l'entrée d'une ressource sur l'écran directement, pour par exemple offrir la possibilité de sauvegarder par l'intermédiaire de la touche (Print Screen) son contenu dans un fichier.
Les ressources de bases de données sont sans nulle doute la partie le plus sujet a questionnement dans le MonsterBook. Pourquoi? Parce qu'elle doit permet de rapetisser l'ampleur du code sans pour autant ralentir les performances de celui-ci. En plus il devra permettre d'utiliser des bases de données global (comprenant plusieurs tables) ou local (comprenant seulement une table pour un fichier). Il devra inclure des techniques de recherche très rapide afin d'éviter des délais d'exécution très exagérer. En pensera par exemple a utiliser les techniques dichotomique dans certain cas, des indexes d'accélération et ainsi de suite,...
Système de compatibilité
Les pilotes non fournit pas le système d'exploitation devront naturellement trouver un compromis manuellement. De ce fait, on pourra détecter et utiliser une souris PS/2 par exemple sans pour autant avoir un pilote d'interruption 33h d'installer. On devra être capable d'appliquer le même principe pour les partitions non visible par le système d'exploitation. Par exemple les partitions HPFS par le DOS ou Windows.
Les sessions d'application DOS pourront être effectuer directement par un appel de programme fils ou passer par un émulateur de CPU de la famille 80x86 et celui-ci sera donc accessible via une fenêtre ou en mode pleine écran. L'émulateur devra de son côté supporter les microprocesseurs Cyrix, AMD, Intel, NEC sans pour autant être muni de ce type de processeurs. Il offrira également la possibilité d'émuler un 6502 et ses dérivés. Il est impératif que les sessions soit ajustable car dans le cas par exemple d'un déboguage, on de programme a problème, on devra être capable de trouver une alternative intéressante permettant d'obtenir une solution. A la différence des autres émulateurs particulier, on devra faire l'implantation du prototype de microprocesseur Kébecup (voir la documentation des Chevaliers de Malte (nom de code “777-Q=Z-77F77”)), celui-ci étant très prometteur car il offrira la possibilité de coder une application comme Microsoft Office ou Corel Draw à l'intérieur de 64 Ko de mémoire et cela sans compression.
Un pilote de compatibilité passant par le MSCDEX, NWCDEX ou les pilotes de lecteur DC (Disque Compacte) devra être disponible pour jouer les DC de musique. Cependant, on devra aussi être capable de jouer un Disque Compacte sans passer par un pilote logiciel utilisant l'interruption 2Fh. Pourquoi? Pour deux raisons principalement, premièrement afin d'éviter à l'utilisateur la recherche inutile de pilote à charger en mémoire et deuxièmement afin d'augmenter les performances toujours très lentes passant par une interruption. On devra éviter toutefois d'effectuer des passages directe de la sorte sous un système multitâche comme Windows, OS/2 et Linux car ceux-ci réagissant très mal face a une situation de la sorte. En plus le pilote devra offrir la possibilité de jouer le disque compacte en mode digital ou directement en passant par l'électronique. Cette option sera nécessaire dans le cas ou égalisateur de fréquence ne sera pas disponible sur une machine rapide. Toutefois étant donnée la vitesse d'exécution requise, il devra être possible d'activer ou de désactiver cette option.
Lancement
Toute cette structure, s'apparentant d'avantage à un système expert doit également offrir la possibilité d'ajustement spécifique dans les cas non pris en charge par «StartUp» du MonsterBook.
En dépit du fait que le processus de lancement de l'application MonsterBook soit très développer, on doit donc veiller à ce que l'utilisateur puisse solutionner lui-même les problèmes de démarrage et de fonctionnement de cette application sur des machines très peu compatible et se moquant des standards ainsi que des systèmes d'exploitation minant considérablement le bon fonctionnement du d'une application DOS.
Toutefois, le «StartUp» de l'ensemble Malte Genesis V: Alias Adèle offre une grande gamme de "Switch" (échangeur) afin de démarrer dans les pires conditions imaginable. Cependant toutes ces possibilités ne sont pas accessible par l'utilisateur directement, il faut passer par un protocole définit dans un fichier de configuration, des menus déroulants et des techniques complexes ayant tous lieux lors du lancement du progiciel.
Lors du lancement du MonsterBook, vous pouvez à l'aide du prompt: «?:>MB /V», connaître les informations pertinente de son autoconfiguration. Voici une vue d'ensemble de ce que peut être ces messages:
|
MonsterBook
Version ?.? Tous droits réservés par les
Chevaliers de Malte |
La première ligne indique le nom du programme "MonsterBook" et la version "Version" de ce programme. Après vous retrouvez le nom du groupe ayant mit à jour ce programme.
La ligne suivante affiche "Lecture du fichier d'initialisation:". Ce message est suivi d'un nom de fichier nécessairement "MB.INI" ou "MB.CFG". Le premier cité est tel un fichier de configuration Dos, Windows, OS/2, avec un format ASCII des informations contenu. Plusieurs section existe étant donné l'immense variété de possibilité que renferme le MonsterBook: (Disk, Video, Systems, Printers et Modem). Chacun de ses sections doivent être entre crochet "[" "]" pour lui permettre de comprendre qu'il s'agit d'un section justement.
Vous ne pouvez mélanger les mots et les mettre dans une autre section ne lui étant pas désignée dès l'origine car sinon il prendra un sens différent et aura donc un résultat également différent lors de l'exécution.
Section: «[User]»
Cette section est réservée au profile de l'utilisateur employant le MonsterBook. Elle ne contient pas d'information pertinente à l'esthétique ou à un meilleur fonction de cette application.
UserName
Cette variable de type chaîne de caractères permet de stocker le nom d'utilisateur. Il sera accepter que dans le cas où le nom de l'usager correspond au numéro de série.
SerialCode
Cette variable de type chaîne de
caractères permet de connaître le numéro de série
attribué à cette application.
Section: «[Disk]»
Cette section est réservée afin de connaître des informations relatifs au fichier et des répertoires.
Lorsqu'il s'agit d'un identificateur se terminant par «Files», il s'agit d'un extension désignant une catégorie de fichier particulier (un «;» peu les séparer s'il existe plusieurs extension possible). On peut de cette manière rajouter de nouveau extension désignant par exemple des fichiers Basic, comme par le Visual Basic à tendance à le faire couramment. Pour permettre à l'utilisateur de ne pas toujours être à la merci de la dernière mise-à-jour, il lui sera possible de les modifier lui-même.
Lorsqu'il s'agit d'un identificateur commençant par «Dir» alors il s'agit d'un répertoire de recherche de départ pour une catégorie particulière de fichier. Il sera par exemple possible grâce à cette identificateur de définir le répertoire de départ de recherche des fichiers de la catégorie Pascal, C, Assembleur,... En plus on pourra spécifier le répertoire où actuellement installer l'application afin de lui faire éviter de rechercher dans tous les répertoires où il se trouve.
Section: «[Printers]»
Cette section est spécialisée dans le paramétrage de l'imprimante installée sur la machine.
CurrPrn
Cette variable numérique désigne le numéro de l'imprimante courante à utiliser dans l'application.
Paper2Paper
Cette option permet de spécifier s'il s'agit d'une alimentation d'imprimante feuille à feuille.
HeightPaperLPT1
Cette variable numérique permet de connaître la longueur du papier en pouce multiplier par 10.
Section: «[Systems]»
Cette section est utilisé pour définir les bases mêmes de fondations de l'application.
OvrEms
L'option de chargement de recouvrement (overlay) en mémoire EMS est réglable dans le fichier de configuration MB.INI sous la variable OvrEMS = Yes|No. Si cette variable est à Yes, vous verrez en mode "/V" le message suivante apparaître:
|
Vérification de la possibilité de chargement du recouvrement en EMS |
SwapEMS
L'option SwapEMS (par défaut Yes (actif)) autorise ou interdit l'utilisation de la mémoire EMS pour les données de type temporaire ou pour le traitement d'image et de certaine information plus particulière mais demandant de vaste zone de mémoire. Si cette variable est à No, le gestionnaire de ressource indiquera 0 Ko lors du mode "/V".
ScrSaver
Cette option permet de définir si vous souhaitez avoir un économiseur d'écran ou non.
Log
Cette option permet d'autoriser la tenue d'un journal de bord à chacun des opérations effectuer dans cette application.
Section: «[Video]»
Cette section destiné à régler la carte vidéo, le moniteur en fonction du mode vidéo et de l'environnement souhaité.
CheckSVGA
Cette variable permet de spécifier s'il l'application doit faire en sorte de pouvoir détecter des cartes vidéo n'ayant pas de standard VESA supporté.
DefaultMode
Cette variable sert à initialiser le mode vidéo de départ du MonsterBook. Si le nombre 65534 est spécifié, il utilise le mode vidéo courant fonctionnant avant le lancement du l'application.
PapierPeint
Cette variable de type chaîne de caractères contient le chemin et le nom à utiliser comme papier peint, l'image de fond de l'application, en écran graphique si possible.
FontTitle
Cette variable de type chaîne de caractères contient le chemin et le nom à utiliser comme image de fond, pour chaque titre d'application.
VesaBiosBank
Cette variable est utilisée pour permettre l'utilisation exclusif par le BIOS du standard VESA en interdisant formellement d'utiliser la routine référencé par le BIOS.
BankRoutine
Cette variable définit le numéro de la routine de changement de page par défaut à utiliser dans les modes vidéo Super VGA ayant 256 couleurs ou plus. Sa valeur numérique correspond à ceci:
|
Valeur |
Description |
|---|---|
|
0 |
Auto détection automatique |
|
1 |
VGA |
|
2 |
Ahead |
|
3 |
ATI |
|
4 |
Cirrus |
|
5 |
CTI |
|
6 |
Everex |
|
7 |
Genoa |
|
8 |
Headland |
|
9 |
Oak |
|
10 |
Paradise |
|
11 |
STB |
|
12 |
Trident |
|
13 |
Tseng Labs ET3000 |
|
14 |
Tseng Labs ET4000 |
|
15 |
VESA avec accès directe |
|
16 |
Video Seven |
|
17 |
XGA |
|
18 |
Zymos |
|
19 |
Ahead A |
|
20 |
Ahead B |
|
21 |
ATI selon la méthode GNU |
|
22 |
Chips & Technologie |
|
23 |
Trident 8900 |
|
24 |
Vesa en passant par l'interruption BIOS |
|
25 |
ATI GU Pro/Ultra |
|
26 |
ATI 16 MD |
|
27 |
Acumos |
|
28 |
Cirrus 54 |
|
29 |
CL5426 |
|
30 |
SS24X/WD90C3x |
|
31 |
RealTek |
|
32 |
S3805 - 1M / S3864 – 2M |
|
33 |
Sparadise |
|
34 |
VESA S3 |
|
35 |
Viper |
|
36 |
WD Vanila / WD90C31 |
ImageInDialog
Cette variable permet de spécifier si vous souhaitez supporter les images dans les boîtes de dialogues en mode graphique.
Cadrillage
Cette option permet de spécifier si vous souhaitez avoir un quadrillage dans votre calendrier ou vos graphiques,... en mode vidéo graphique.
Processus de lancement
Au notée que cette technique en texte nécessite un très grand nombre de cycle d'horloge d'exécution de la par du micro-processeur. Afin de régler ce genre de situation, il existe un genre de doublons du fichier de configuration texte. Celui-ci est chargé par l'application comme un bloc au lieu d'être interpréter ligne par ligne. Il est recompilé automatiquement à chaque fois qu'il existe une différence avec la version texte et la sienne. Pour se faire, il vérifie la date et s'il se rend compte qu'elle n'est pas identique, il le recompile. Ce simple système permet d'accélérer l'utilisation régulier tous en permettant à l'utilisateur de modifier lui-même les paramètres manuellement afin qu'il puisse fonctionner selon ses choix personnelles.
Dans l'éventualité où le fichier de configuration compilé est erroné, il sera recompilé pour plus de sûreté de façon automatique.
L'inconvénient, c'est que s'il n'est pas possible d'écrire le fichier de configuration, il recompilera à chaque démarrage le fichier en question.
Environnement système
Comme spécifier dans l'environnement dans la section “Manifeste du Projet”, le micro-processeur Cyrix aura un traitement de faveur. On devra donc pouvoir le programmer de la façon allant être décrit. Voici les registres concerner par chacune des options de ce processeur:
“FrameBuffer” rapide (CCR3: bit 2).
“Write-Back cache” (CCR2: bit 1).
“Write Allocate” (CCR5: bit 0).
Instruction “CPUID” supportée (CCR4: bit 7).
Mettre en veille si “HALT” (CCR2: bit 3).
“Cached Directory Table Entry” (CCR4: bit 4).
“Negate Lock” (CCR1: bit 4).
“Data forwarding” (DBR0: bit 5).
“LOOP” rapide (CCR5; bit 1 pi par le registre 20h , bit 2).
Délai d'entrée/sortie configurable (CCR4: bit entre 0 à 2).
Ces registres sont accessibles via le port d'entrée/sortie 22h, et applicable dans le port 23h. Les registres CCR0, CCR1, CCR2, CCR3 ont respectivement les registres C0h à C3h et CCR4, CCR5, CCR6, CCR7 ont respectivement les registres 0E8h à 0EBh.
La barre d'outils
La barre d'outils est une barre d'icône situé en dessous du menu principal sur le bureau. Elle permet d'accéder rapidement à certaines possibilité de l'application. Voici les codes réservés pour ses icônes:
|
Code |
Description |
|---|---|
|
0 |
Ouvre |
|
1 |
Ouvre un dessin |
|
2 |
Ouvre un icône (Bouton) |
|
3 |
Ouvre un chiffrier |
|
4 |
Change la région ou le pays |
|
5 |
<-> Conversion |
|
6 |
Recherche |
|
7 |
Avant (Précédant) |
|
8 |
Après (Suivant) |
|
9 |
Imprime |
|
10 |
Téléphone |
|
11 |
Clavier |
|
12 |
Musique |
|
13 |
Change de répertoire |
|
14 |
Prompt d'interpréteur DOS |
|
15 |
Compile |
|
16 |
Infor(mation) |
|
17 |
Liste des fenêtres |
|
18 |
Aide |
|
19 |
Quitter |
Environnement des périphériques
L'environnement des périphériques sont les spécifications particulière reliée au clavier, souris et autre méthode d'entrée utilisateur.
Dans le cas du clavier, un des principales objectifs sera d'ajouter un support permettant d'obtenir les accents appropriées sur le pavé numériques. Ainsi par exemple les chiffres 7, 8, 9 seront associées a la lettre A, 4, 5, 6 a la lettre E, et 1, 2, 3 a la lettre I. Ceux-ci par l'intermédiaire de la touche Shift permettront d'obtenir par exemple en appuyant sur le 7 le caractère “à”. Celui du 8 un accent circonflexe et le neuf un accent contraire au 7.
On retrouvera également dans cette catégorie les raccourcis clavier. Ceux-ci pourront être de style différent: Isabel (inspiré de WordStar) et Windows (de Windows et OS/2). Voici tout d'abord les attributions possibles avec le modèle Isabel:
|
Combinaison clavier |
Description |
|---|---|
|
Alt+0 |
Liste des fenêtres d'application |
|
Alt+A |
Menu déroulant d'Aide |
|
Alt+C |
Menu déroulant Commande |
|
Alt+D |
Menu déroulant Dessin |
|
Alt+E |
Menu déroulant Édition |
|
Alt+F |
Menu déroulant Fichier |
|
Alt+I |
Menu déroulant Information |
|
Alt+N |
Menu déroulant Fenêtre |
|
Alt+O |
Menu déroulant Option |
|
Alt+R |
Menu déroulant Recherche |
|
Alt+X |
Quitter le MonsterBook |
|
Alt+F1 |
Sous le gestionnaire de fichiers, change le 1ier tableau pour une pour permettre de changer d'unité au premier tableau de fichiers. |
|
Alt+F2 |
Sous le gestionnaire de fichiers, change le 2ième tableau pour une pour permettre de changer d'unité au premier tableau de fichiers. |
|
Alt+F3 |
Ferme la fenêtre courante. |
|
Alt+F4 |
Double la largeur du mots à la droite du curseur et ci positionne à la fin. |
|
Alt+F5 |
Regarde l'écran de sortie (Output). |
|
Alt+F7 |
Ouvre une fenêtre dessin. |
|
Alt+F8 |
Met le mot en mode exposant à la droite du curseur et ci positionne à la fin. |
|
Alt+F9 |
Lance une compilation. |
|
Alt+F10 |
Inverse le mot à la droite du curseur et ci positionne à la fin. |
|
Ctrl+A |
Flèche de gauche |
|
Ctrl+B |
Met en caractère gras le mots à droite du curseur |
|
Ctrl+C et Ctrl+A |
Ferme toutes les fenêtres d'application |
|
Ctrl+C et Ctrl+B |
Conversion en langage Basic |
|
Ctrl+C et Ctrl+C |
Déplacement d'une page vers le haut de la fenêtre. |
|
Ctrl+C et Ctrl+D |
Mode caractère double largeur |
|
Ctrl+C et Ctrl+F |
Conversion en langage de programmation Fortran |
|
Ctrl+C et Ctrl+G |
Mode caractère gras |
|
Ctrl+C et Ctrl+I |
Mode caractère inverse |
|
Ctrl+C et Ctrl+J |
Conversion en langage de programmation Java. |
|
Ctrl+C et Ctrl+K |
Conversion en langage de programmation AC. |
|
Ctrl+C et Ctrl+L |
Conversion en langage de programmation Cobol. |
|
Ctrl+C et Ctrl+P |
Conversion en langage de programmation Pascal. |
|
Ctrl+C et Ctrl+R |
Conversion en ressource |
|
Ctrl+C et Ctrl+S |
Ferme toutes les fenêtres sauvegardée |
|
Ctrl+C et Ctrl+T |
Mode caractère italique |
|
Ctrl+C et Ctrl+U |
Mode caractère soulignement. |
|
Ctrl+C et Ctrl+Z |
Conversion en langage de programmation C/C++ |
|
Cltr+D et Ctrl+C |
Change d'unité de disque |
|
Ctrl+D et Ctrl+D |
Docteur disque |
|
Ctrl+D et Ctrl+E |
Regarde/Édition du disque |
|
Ctrl+D et Ctrl+F |
Format une unité de disque |
|
Ctrl+D et Ctrl+H |
Regarde/Édition du disque en hexadécimal. |
|
Ctrl+D et Ctrl+I |
Information disque |
|
Ctrl+D et Ctrl+O |
Option disque (“VERIFY ON/OFF”, ajustement,...) |
|
Ctrl+D et Ctrl+S |
Docteur système/Entretien système |
|
Ctrl+D et Ctrl+V |
Docteur anti-virus |
|
Ctrl+D et Ctrl+X |
Efface la colonne courante actuellement marqué. |
|
Ctrl+D et Ctrl+Y |
Efface la ligne courante actuellement marqué. |
|
Ctrl+D et Ctrl+Z |
Efface le tableau courant. |
|
Ctrl+E et Ctrl+A |
Émulateur d'Apple ][ |
|
Ctrl+E et Ctrl+C |
Émulateur de Coco III |
|
Ctrl+E et Ctrl+E |
Déplacement de 2 lignes vers le haut |
|
Ctrl+E et Ctrl+H |
Éditeur hexadécimal |
|
Ctrl+E et Ctrl+K |
Émulateur de Commodore 64K |
|
Ctrl+E et Ctrl+M |
Exécute une macro-commande. |
|
Ctrl+E et Ctrl+V |
Émulateur de Commodore VIC-20. |
|
Ctrl+F et Ctrl+A |
Assignation d'une unité à émuler (équivalent d'“ASSIGN” sous DOS). |
|
Ctrl+F et Ctrl+B |
Traitement d'un fichier ligne par ligne (équivalent de “awk” d'Unix). |
|
Ctrl+F et Ctrl+C |
Lance un fichier exécutable. |
|
Ctrl+F et Ctrl+D |
Lance une fenêtre de Prompt DOS de modèle Malte. |
|
Ctrl+F et Ctrl+E |
Efface un fichier. |
|
Ctrl+F et Ctrl+F |
Ouvre une fenêtre de Gestionnaire de fichiers. |
|
Ctrl+F et Ctrl+G |
Recherche une chaîne de caractères dans un fichiers (équivalent de “Grep”). |
|
Ctrl+F et Ctrl+L |
Liste de fichier du répertoire courant. |
|
Ctrl+F et Ctrl+M |
Crée un répertoire (équivalent de la commande “MkDir” sous DOS). |
|
Ctrl+F et Ctrl+U |
Lance un fenêtre de Shell Unix. |
|
Ctrl+G |
Suppression du caractère sur lequel se trouve le curseur. |
|
Ctrl+H et Ctrl+P |
Partition du disque dur. |
|
Ctrl+I et Ctrl+C |
Information sur le CMOS. |
|
Ctrl+I et Ctrl+I |
Information interne sur le MonstreBook. |
|
Ctrl+I et Ctrl+M |
Information sur la mémoire par la méthode du DOS appelée MCB. |
|
Ctrl+I et Ctrl+P |
Information sur le pays actuellement configuré sur le système. |
|
Ctrl+I et Ctrl+S |
Information sommaire sur l'ordinateur. |
|
Ctrl+I et Ctrl+V |
Information sur la vidéo. |
|
Ctrl+I et Ctrl+X |
Insère une colonne dans le bloc actuellement marqué. |
|
Ctrl+I et Ctrl+Y |
Insère une ligne dans le bloc actuellement marqué. |
|
Ctrl+I et Ctrl+Z |
Insère un tableau. |
|
Ctrl+J et Ctrl+C |
Saute à l'interpréteur DOS du système (“Jump to DOS / Command / Shell”). |
|
Ctrl+J et Ctrl+D |
Associé une unité à un autre (Joint) |
|
Ctrl+J et Ctrl+P |
Associé un répertoire à un autre (Joint) |
|
Ctrl+K et Ctrl+B |
Marque le début du bloc. |
|
Ctrl+K et Ctrl+C |
Copie le bloc actuellement marqué. |
|
Ctrl+K et Ctrl+D |
Quitter |
|
Ctrl+K et Ctrl+H |
Couper le bloc (“cut”). |
|
Ctrl+K et Ctrl+K |
Marque la fin du bloc. |
|
Ctrl+K et Ctrl+P |
Imprime le bloc. |
|
Ctrl+K et Ctrl+R |
Insère un fichier. |
|
Ctrl+K et Ctrl+S |
Sauvegarder. |
|
Ctrl+K et Ctrl+T |
Marquer un mot. |
|
Ctrl+K et Ctrl+V |
Déplacement du bloc actuellement marqué. |
|
Ctrl+K et Ctrl+W |
Écrit dans un fichier le bloc actuellement marqué. |
|
Ctrl+K et Ctrl+Y |
Effacement d'un bloc actuellement marqué. |
|
Ctrl+K et Ctrl+Z et Lettre |
Insère une colonne de la lettre spécifier au bloc marqué. |
|
Ctrl+L |
Poursuite de la recherche |
|
Ctrl+M et Ctrl+A |
Mode d'édition en langage de programmation assembleur. |
|
Ctrl+M et Ctrl+B |
Mode d'édition en langage de programmation Basic. |
|
Ctrl+M et Ctrl+C |
Mode d'édition en langage de programmation Cobol. |
|
Ctrl+M et Ctrl+E |
Mode d'édition en langage de programmation Euphoria. |
|
Ctrl+M et Ctrl+F |
Mode d'édition en langage de programmation Fortran. |
|
Ctrl+M et Ctrl+K |
Change de couleur. |
|
Ctrl+M et Ctrl+L |
Centrer à gauche. |
|
Ctrl+M et Ctrl+H |
Passe en mode hôte. |
|
Ctrl+M et Ctrl+I |
Mode d'édition de fichier d'intialisation de configuration (“.INI”). |
|
Ctrl+M et Ctrl+M |
Mode d'édition de menu souris. |
|
Ctrl+M et Ctrl+P |
Mode d'édition en langage de programmation Pascal. |
|
Ctrl+M et Ctrl+R |
Centre à droite. |
|
Ctrl+M et Ctrl+U |
Souligne le mot courant. |
|
Ctrl+M et Ctrl+Z |
Mode d'édition en langage de programmation C/C++. |
|
Ctrl+N et Ctrl+A |
Nouveau fichier en mode d'édition assembleur. |
|
Ctrl+N et Ctrl+B |
Nouvelle icône |
|
Ctrl+N et Ctrl+C |
Nouvelle feuille de calcul (tableur). |
|
Ctrl+N et Ctrl+D |
Nouveau dessin |
|
Ctrl+N et Ctrl+E |
Nouveau fichier en mode d'édition Euphoria. |
|
Ctrl+N et Ctrl+F |
Nouveau fichier en mode d'édition Fortran. |
|
Ctrl+N et Ctrl+G |
Nouveau document de format GAT |
|
Ctrl+N et Ctrl+H |
Nouvelle entête de fichier en langage de programmation C/C++. |
|
Ctrl+N et Ctrl+K |
Nouveau fichier AC. |
|
Ctrl+N et Ctrl+L |
Nouveau fichier en mode d'édition Cobol |
|
Ctrl+N et Ctrl+M |
Nouveau fichier musical de format .MOD |
|
Ctrl+N et Ctrl+N |
Liste des nouveaux |
|
Ctrl+N et Ctrl+P |
Nouveau fichier en mode d'édition Pascal. |
|
Ctrl+N et Ctrl+Q |
Nouveau fichier en mode d'édition Basic. |
|
Ctrl+N et Ctrl+R |
Nouveau fichier en mode d'édition Ressource. |
|
Ctrl+N et Ctrl+ W |
Nouveau fichier en mode d'édition Basic d'Apple ][. |
|
Ctrl+N et Ctrl+X |
Nouveau fichier en mode d'édition Basic Commodore 64K. |
|
Ctrl+N et Ctrl+Y |
Nouveau fichier en mode d'édition Basic de Coco 3. |
|
Ctrl+N et Ctrl+Z |
Nouveau fichier en mode d'édition C/C++. |
|
Ctrl+O et Ctrl+A |
Ouvrir un fichier en mode d'édition Assembleur. |
|
Ctrl+O et Ctrl+B |
Ouvrir un fichier d'icône. |
|
Ctrl+O et Ctrl+C |
Ouvrir un fichier feuille de calcul (tableur) |
|
Ctrl+O et Ctrl+D |
Ouvrir un dessin. |
|
Ctrl+O et Ctrl+E |
Ouvrir un fichier de langage de programmation Euphoria. |
|
Ctrl+O et Ctrl+F |
Ouvrir un fichier en mode de langage de programmation Fortran. |
|
Ctrl+O et Ctrl+G |
Ouvrir un document de format GAT. |
|
Ctrl+O et Ctrl+H |
Ouvrir un entête de langage de programmation C/C++. |
|
Ctrl+O et Ctrl+I |
Mode d'auto-indentation actif/inactif. |
|
Ctrl+O et Ctrl+K |
Ouvrir un fichier en mode d'édition de langage de programmation AC. |
|
Ctrl+O et Ctrl+L |
Ouvrir un fichier en mode d'édition de langage de programmation Cobol. |
|
Ctrl+O et Ctrl+M |
Ouvrir un fichier musical en format .MOD |
|
Ctrl+O et Ctrl+O |
Liste des ouvertures. |
|
Ctrl+O et Ctrl+P |
Ouvrir un fichier en mode d'édition de langage de programmation Pascal. |
|
Ctrl+O et Ctrl+Q |
Ouvrir un fichier en mode d'édition de langage de programmation Basic. |
|
Ctrl+O et Ctrl+R |
Ouvrir un fichier en mode d'édition ressource. |
|
Ctrl+O et Ctrl+S |
Gestionnaire d'opérateur système. |
|
Ctrl+O et Ctrl+T |
Mode tabulation actif/inactif |
|
Ctrl+O et Ctrl+W |
Ouvrir un fichier en mode d'édition de format Basic d'Apple ][. |
|
Ctrl+O et Ctrl+X |
Ouvrir un fichier en mode d'édition de format Basic de Commodore 64K. |
|
Ctrl+O et Ctrl+Y |
Ouvrir un fichier en mode d'édition de format Basic de Coco III. |
|
Ctrl+O et Ctrl+Z |
Ouvrir un fichier en mode d'édition de format de langage de programmation C/C++. |
|
Ctrl+P et Ctrl+A |
Ouvrir un fichier assembleur et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+B |
Ouvrir un fichier Basic et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+E |
Ouvrir un fichier Euphoria et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+F |
Ouvrir un fichier Fortran et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+H |
Stationne les têtes de lectures du/des disque dur(s) |
|
Ctrl+P et Ctrl+K |
Ouvrir un fichier AC et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+J |
Journal personnel. |
|
Ctrl+P et Ctrl+L |
Ouvrir un fichier Cobol et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+M |
Fait jouer un fichier musical de format .MOD. |
|
Ctrl+P et Ctrl+P |
Ouvrir un fichier Pascal et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+Q |
Ouvrir un fichier Basic et l'éditer en format compressé en mémoire. |
|
Ctrl+P et Ctrl+S |
Arrête de faire jouer le fichier musical. |
|
Ctrl+P et Ctrl+Z |
Ouvrir un fichier C/C++ et l'éditer en format compressé en mémoire. |
|
Ctrl+Q et Ctrl+A |
Recherche et remplacement. |
|
Ctrl+Q et Ctrl+B |
Va au début du bloc. |
|
Ctrl+Q et Ctrl+C |
Va a la fin du fichier. |
|
Ctrl+Q et Ctrl+D |
Va a la fin de la ligne. |
|
Ctrl+Q et Ctrl+E |
Va au début de la page écran. |
|
Ctrl+Q et Ctrl+F |
Recherche de chaîne de caractères. |
|
Ctrl+Q et Ctrl+K |
Va a la fin du bloc. |
|
Ctrl+Q et Ctrl+L |
Permet de rappeler le contenu d'une ligne que vous avez modifiée par inadvertance. |
|
Ctrl+Q et Ctrl+P |
Retourne à la position antérieur du curseur. |
|
Ctrl+Q et Ctrl+R |
Va au début du fichier. |
|
Ctrl+Q et Ctrl+S |
Va au début de la ligne. |
|
Ctrl+Q et Ctrl+T |
Tri. |
|
Ctrl+Q et Ctrl+W |
Position de l'erreur. |
|
Ctrl+Q et Ctrl+X |
Va à la fin de la page. |
|
Ctrl+Q et Ctrl+Y |
Suppression des caractères compris entre la position du curseur et la fin de la ligne. |
|
Ctrl+S |
Efface les espaces a la droite du curseur. |
|
Ctrl+T |
Suppression du mot a la droite du curseur. |
|
Ctrl+U |
Souligne le mot à la fin du curseur et si positionne à la fin. |
|
Ctrl+V et Ctrl+A |
Regarde un fichier en format ASCII. |
|
Ctrl+V et Ctrl+M |
Choisir le mode vidéo d'affichage. |
|
Ctrl+W |
Défilement du texte d'une ligne vers le bas, position du curseur identique (mieux connu sous le terme de Scroll Up). |
|
Ctrl+X |
Centre le texte de la ligne courante. |
|
Ctrl+Y |
Efface la ligne courante. |
|
Ctrl+Z |
Défilement du texte d'une ligne vers le haut, position du curseur identique (mieux connu sous le terme de Scroll Down) |
|
Ctrl+F1 |
Aide technique.
|
|
Ctrl+F2 |
Édition d'un menu d'application. |
|
Ctrl+F3 |
Lance une fenêtre de Gestionnaire de fichiers. |
|
Ctrl+F7 |
Recherche |
|
Ctrl+F8 |
Remplace |
|
Ctrl+F10 |
Exécute une macro-commande. |
|
Ctrl+Insert |
Copie un bloc marqué. |
|
F1 |
Aide au sujet de ... |
|
F2 |
Sauvegarde. |
|
F3 |
Ouvrir un fichier. |
|
F4 |
Regarde hexadécimal. |
|
F5 |
Copie un fichier. |
|
F6 |
Va à la fenêtre suivante. |
|
F7 |
Crée un répertoire. |
|
F8 |
Efface un/des fichier(s) |
|
F9 |
Déplace/renomme un/des fichier(s) |
|
Shift+F2 |
Active le menu d'application. |
|
Shift+F3 |
Ouvrir un document de format GAT. |
|
Shift+F4 |
Regarde ASCII |
|
Shift+F6 |
Va la fenêtre précédente |
|
Shift+F9 |
Sous l'éditeur de traitement de texte, passe en mode dessin. |
|
Shift+F10 |
Édition d'une macro-commande. |
|
Shift+Insert |
Insertion d'un bloc. |
Les modèles de raccourcis de style Windows (Windows et OS/2) sont les suivants:
|
Combinaison clavier |
Description |
|---|---|
|
Alt+F4 |
Fermeture de la fenêtre d'application. |
|
Ctrl+E |
Centrer le texte de la ligne courante. |
|
Ctrl+G |
Caractère spécifier en gras. |
|
Ctrl+I |
Caractère spécifier en italique. |
|
Ctrl+Insert |
Copie un bloc marqué. |
|
Ctrl+O |
Ouvrir un document. |
|
Ctrl+P |
Impression du document courant. |
|
Ctrl+S |
Sauvegarde du document courant. |
|
Ctrl+U |
Caractère spécifier souligner. |
|
Ctrl+Z |
Annuler la dernière opération. |
|
F1 |
Aide |
|
F10 |
Accède à la barre de menu déroulant |
|
Shift+Delete |
Couper un bloc. |
|
Shift+Insert |
Insertion d'un bloc. |
Gestionnaire de fichiers
Sous les systèmes d'exploitation de la ligné du DOS, lorsqu'on rajoute un extension, dans le but de faire jouer un .MOD par exemple, on doit toujours passer par un chemin unique, impossible d'utiliser un autre moyen que le programme fournissant la nouvelle propriété en question! Sous les environnements graphique tel Windows, on peut ajouter une composante universelle offrant un service utilisable par toutes les applications. Cette innovation est un plus, toutefois le MonsterBook fonctionne sous DOS, on devra donc trouver un autre compromis! Alors quoi faire?
Afin de résoudre le d'avoir un dédoublement de fonction inutile associé à un fichier, il sera primordiale d'écrire une unité de liaison d'outil d'un menu contextuel applicable à une sélection de fichier. Celui-ci offrant les éléments de base (renommer, supprimer,...) afin d'effectuer des tâches d'entretien primordiale et de composantes associée. Le service aura donc l'orientation suivante:
Menu Contextuel pour un fichier
(index 26)



Ouverture d'un fichier
Gestionnaire de programmes
(fenêtre d'exploration)
Gestionnaire de fichiers
Environnement graphique
L'environnement graphique sera grandement inspirer des concepts de l'Amiga. Ainsi on perçois l'affichage non pas comme pixel par pixel mais avec une orientation quadriller. On ne retrouve donc aucun multiple inférieur à 8 dans les routines d'affichage de base des boîtes de dialogues. De cette façon on pourra éviter l'utilisation d'opération de multiplication car ceux-ci sont relativement lent en terme d'exécution de cycle d'horloge du microprocesseur. Car ne l'oublions pas, on devra toujours être en mesure d'exploiter le système sous des machines très lentes ou par exemple sur un émulateur comme DOSEmu de Linux! On devra également être en mesure d'utiliser les routines en se référençant à partir d'une boite de dialogue; Simple question de logique...
On pourra le faire fonctionner en mode texte aussi bien qu'en mode graphique. Car il est parfois inutile de passer en mode graphique simplement pour voir un simple texte. Dans le même ordre d'idée, les modes suivants seront donc nécessairement supporter:
|
Type |
Définition |
Nombre de couleurs |
Carte vidéo |
|---|---|---|---|
|
Texte |
40x25 |
16 couleurs |
CGA, EGA, VGA, SVGA |
|
Texte |
80x25 |
Monochrome |
MDA, EGA, VGA, SVGA |
|
Texte |
80x25 |
16 couleurs |
CGA, EGA, VGA, SVGA |
|
Texte |
80x28 |
16 couleurs |
CGA, VGA, SVGA |
|
Texte |
80x43 |
16 couleurs |
EGA, VGA, SVGA |
|
Texte |
80x50 |
16 couleurs |
VGA, SVGA |
|
Texte |
132x25 |
16 couleurs |
GS et certaines SVGA |
|
Texte |
132x28 |
16 couleurs |
GS et certaines SVGA |
|
Texte |
132x43 |
16 couleurs |
Certaines SVGA |
|
Texte |
132x50 |
16 couleurs |
Certaines SVGA |
|
Texte |
132x60 |
16 couleurs |
Certaines SVGA |
|
Graphique |
320x200 |
4 couleurs |
CGA, EGA, VGA, SVGA |
|
Graphique |
360x480 |
256 couleurs |
VGA, SVGA |
|
Graphique |
640x200 |
2 couleurs |
CGA, EGA, VGA, SVGA |
|
Graphique |
640x200 |
16 couleurs |
GS, EGA, VGA, SVGA |
|
Graphique |
640x350 |
2 couleurs |
EGA, VGA, SVGA |
|
Graphique |
640x350 |
16 couleurs |
EGA, VGA,SVGA |
|
Graphique |
640x480 |
2 couleurs |
EGA, VGA, SVGA |
|
Graphique |
640x480 |
16 couleurs |
VGA, SVGA |
|
Graphique |
640x480 |
256 couleurs |
SVGA |
|
Graphique |
640x480 |
65536 couleurs |
SVGA |
|
Graphique |
800x600 |
16 couleurs |
SVGA |
|
Graphique |
800x600 |
256 couleurs |
SVGA |
|
Graphique |
800x600 |
65536 couleurs |
SVGA |
|
Graphique |
1024x768 |
16 couleurs |
SVGA |
|
Graphique |
1024x768 |
256 couleurs |
SVGA |
|
Graphique |
1024x768 |
65536 couleurs |
SVGA |
Dans l'éventualité de minimiser la quantité de code générer par l'utilisation de boite de dialogue et afin d'alléger au niveau de la compréhension de la programmation de ceux-ci, on devra ajouter un support de code processeur DPU (voir document concerner). Celui-ci étant un code machine spécialiser dans le traitement de boite de dialogue, nous permettra d'obtenir d'excellent compromis en plus d'offrir la possibilité de modifier les boites de dialogues dans le but d'une traduction par exemple ou a leur convenance sans toutefois nécessiter les codes sources original du programme ou une recompilation de celui-ci. En somme il s'agira d'un compromis offrant également la possibilité de ne pas charger immédiatement en mémoire ces composantes et d'éventuellement les inclure a une gigantesque base de données.
Dans le but d'offrir une compatibilité a des environnements plutôt difficile, le pointeur de souris par exemple pourra être en graphique même en mode texte (inspirer des logiciels de Symantec et de Central-Point) et offrir un mode de soulignement à partir de carte vidéo EGA ou postérieure. Et donc, l'environnement graphique pourra naturellement fonctionner aussi bien en mode texte quand mode graphique.
L'esthétisme de l'environnement graphique devra également inclure certaines options particulière afin de faciliter une migration de style d'environnement a un autre. Ainsi, on retrouvera des boutons ayant le style Elvis, Bubble, Windows, OS/2, Amiga, Macintosh, Box,... Dans le même genre d'idée on pourra constater le même phénomène concernant le cadre des applications: Robotic, Windows, Relief,... Voici donc les styles de bouton à imiter:
|
Nom |
Description |
Aspect |
|---|---|---|
|
Elvis |
Descendant du Turbo Vision |
|
|
Bubble |
En forme de cercle |
|
|
Windows et OS/2 |
Des systèmes d'exploitation OS/2 et Windows, simple bordure en relief. |
|
|
Amiga |
Des ordinateurs Amiga, forme de losange |
|
|
Macintosh |
Des ordinateurs Macintosh |
|
|
Box |
Grosse boite faisant le contour de l'écriture. |
|
Lorsque l'utilisateur sera confronter a une configuration de composantes, il devra être possible d'afficher simultanément pendant sa sélection un GIF animer (ou substitue) ou non représentant la catégorie de l'opération qu'il veut effectuer. Cette option sera nécessaires afin de promouvoir l'efficacité du MonsterBook et surtout parce que les masses populaires est de nature facilement impressionnables par “le tape à l'oeil”! Il s'agit en d'autre terme d'un atout essentiel au niveau commercial.
La technologie visant a effectuer une gestion des multiples fenêtres d'application sera basée sur la méthode H (voir document concerner) celui-ci offrant contrairement au système d'exploitation graphique traditionnel des routines virtuel de branchement sur des temps a perte relativement court. Ceci permettant d'effectuer un semblant de multitâche même si pourtant le noyau ne l'est pas vraiment!
Traitement de texte
Le traitement de texte utilisera une technique fort simple de gestion de traitement de l'information. Il exploitera la technique de Liste Symétrique afin de pouvoir charger de l'information de taille variable.
Des propriétés particulière devront être ajouter afin de permettre la métamorphose de cette application pour qu'il prenne une forme identique a celle de Microsoft Office, Word Perfect (dans son ancien mode de fonctionnement DOS aussi bien que depuis qu'il fut repris par Corel sous l'aspect de Windows), Premier Choix, Professionnal Write, Emac de Linux ou un autre concurrent. Ainsi on devra être capable de fixer la règle en haut ou en bas de la fenêtre ou ne pas l'afficher du tout. On devra aussi être capable de déplacer la barre d'outils dans les mêmes position. Il devra également être possible d'ajouter une barre supplémentaire dans le haut de la fenêtre pour offrir une compatibilité possible avec StarOffice par exemple lorsqu'il permet de charger les derniers fichiers éditer ou visualiser.
On devra également être capable d'inclure des images au document, ceci permettant l'inclusion par exemple d'histogramme, de tableur ou autre données du même genre. Ils pourront être directement inclus au document ou tous simplement être un lien par exemple envers un GIF par exemple et charger indépendamment à chaque fois. Ce compromis permettrait par exemple l'utilisation de la même image dans plusieurs document différents. Cette aspects pourra être relativement intéressant dans les cas ou l'on réexploite souvent les mêmes images, comme dans le cas de barre de séparation en autre. Il serait en effet tout a fait absurde de gaspiller la moitié de l'espace attribuer au document sous prétexte d'indépendance envers les autres pourtant inséparable de la première au niveau des idées...
Afin de permettre une expansion du traitement de texte vers une optique plus proche de celle cité plus haut, il faudra offrir une système parallèle complémentaires au traitement de texte. Il s'agit d'une liste symétrique ayant une correspondance avec l'information du traitement de texte a proprement parler dont voici l'entête de chacun d'eux:
|
Nom |
Taille |
Description |
|
|---|---|---|---|
|
Modèle |
1 octet |
Le modèle correspondant: |
|
|
Code |
Description |
||
|
0 |
Nulle, inutilisé |
||
|
1 |
Repère de texte |
||
|
2 |
Image |
||
|
3 |
Police de caractères externe |
||
|
4 |
Cadre de tableau, tableur,... |
||
|
5 |
Base de données |
||
|
6 |
Dessin en fil de fer |
||
|
7 |
Lien INTERNET |
||
|
8 |
Données interne du document (code Java par exemple,...) |
||
|
9 |
Faute d'orthographe |
||
|
10 |
Couleur comme les remarques de code source en autre. |
||
|
11 |
Date du jour |
||
|
12 |
Lettrine |
||
|
13 |
Remarque |
||
|
14 |
Macro |
||
|
15 |
Ligne horizontal |
||
|
X1 |
1 octet |
Position horizontal supérieur |
|
|
Y1 |
1 octet |
Position vertical supérieur |
|
|
X2 |
1 octet |
Position horizontal inférieur |
|
|
Y2 |
1 octet |
Position vertical inférieur |
|
Lorsque le traitement de texte sera en mode d'édition de code source, il devra pouvoir indiquer de façon accentuer les différents mots considérer comme de couleurs différentes. Voici donc la liste correspondante à chacun des cas:
|
Langage |
Cas |
Identificateur |
|---|---|---|
|
Assembleur 80x86 |
Mots d'instruction |
AAA, AAD, AAM, AAS, ADC, ADD, AND, BSF, BSR, BT, BTC, BTR, BTS, CALL, CBW, CLC, CLD, CLI, CMC, CMP, CMPSB, CMPSD, CMPSW, CWD, DAA, DAS, DEC, DIV, ENTER, ESC, HLT, IDIV, IMUL, IN, INC, INSB, INSD, INSW, INT, INTO, IRET, IRETD, JA, JAE, JB, JBE, JC, JCXZ, JE, JECXZ, JG, JGE, JL, JLE, JMP, JNA, JNAE, JNB, JNBE, JNC, JNE, JNL, JNLE, JNG, JNGE, JNO, JNS, JNZ, JO, JS, JZ, LAHF, LAR, LDS, LEA, LEAVE, LES, LFS, LGS, LOCK, LODSB, LODSD, LODSW, LOOP, LOOPE, LOOPNE, LOOPNZ, LOOPZ, MOV, MOVSB, MOVSD, MOVSW, MOVSX, MOVZX, MUL, NEG, NOP, NOT, OR, OUT, OUTSB, OUTSD, OUTSW, POP, POPA, POPAD, POPF, PUSH, PUSHA, PUSHAD, PUSHF, RCL, RCR, REP, REPE, REPNE, REPNZ, REPZ, RETF, RETN, ROL, ROR, SAHF, SAL, SAR, SBB, SCASB, SCASD, SCASW, SET, SHL, SHLD, SHR, SHRD, STC, STD, STI, STOSB, STOSD, STOSW, SUB, TEST, WAIT, XCHG, XLAT et XOR |
|
Assembleur 80x86 |
Mots de registre |
AH, AL, AX, BH, BL, BP, BX, CH, CL, CS, CX, DH, DI, DL, DS, DX, EAX, EBP, EBX, ECX, EDI, EDX, ESI, ESP, ES, FS, GS, SI, SP et SS |
|
Assembleur 80x86 |
Mots réservé |
ASSUME, BYTE, CMPS, CODE, DATA, DATAPTR, DB, DD, DUP, DW, DWORD, ELSE, END, ENDIF, ENDM, ENDP, ENDS, EQU, EXTRN, FAR, FWORD, IFB, IFE, INCLUDE, INS, LOCAL, LODS, MACRO, MOVS, NEAR, NOTHING, OFFSET, OUTS, PAGE, PASCAL, PRIVATE, PROC, PTR, PUBLIC, QWORD, RET, SCAS, SEGMENT, SHORT, STOS, STRUC, TBYTE, THIS, TITLE, TYPE et WORD |
|
Basic |
Mots de fonction |
ABS, ASC, ATN, BRK, BUTTON, CDBL, CHR$, CINT, COM, COS, CSNG, CSRLIN, CVD, CVI, CVS, DATE$, DBL, EOF, ERLIN, ERNO, ERR, ERROR, EXP, FIX, FRE, HEX$, HPOINT, INKEY$, INP, INSTR, INT, JOYSTK, LEFT$, LEN, LOC, LOF, LOG, LPEEK, LPOS, MEM, MID$, MKD$, MKI$, MKS$, OCT$, PEEK, PMAP, POINT, POS, PPOINT, RIGHT$, RND, SGN, SIN, SPC, SQR, STR$, STRIG, STRING$, TAB, TAN, TIME$, TIMER, USR, VAL, VARPTR$ et VARPTR |
|
Basic |
Mot d'instruction |
APPEN, AUDIO, AUTO, BEEP, BLOAD, BRU, BSAVE, CATALOG, CHDIR, CIRCLE, CLEAR, CLOADM, CLOAD, CLOSE, CLS, COLOR, CONT, CSAVEM, CSAVE, DEF, DELETE, DEL, DRAW, EDIT, ERROR, EXEC, FIELD, FILES, FLASH, GET, GR, HBUFF, HCIRCLE, HCLS, HCOLOR, HDRAW, HGET, HGR, HLINE, HLIN, HOME, HPAINT, HPLOT, HPRINT, HPUT, HRESET, HSCREEN, HSET, HSTAT, HTAB, INPUT, INTERRUPT, INVERSE, KEY, KILL, LET, LINE, LIST, LLIST, LOAD, LOCATE, LOCK, LOOP, LPOKE, LPRINT, LSET, MAXFILE, MERGE, MKDIR, MOTOR, MO, NAME, NEW, NOMO, NORMAL, NOTRACE, OPEN, OUT, PAINT, PALETTE, PCLEAR, PCLS, PCOPY, PLAY, PLOT, PMODE, POKE, POP, POSITION, PRESET, PRINT, PSET, PUT, RANDOMIZE, READ, RECALL, RENAME, RENUM, RESET, RESTORE, RESUME, RETURN, RMDIR, RSET, SAVE, SCREEN, SET, SHELL, SHLOAD, SKIPF, SOUND, STOP, STORE, SWAP, SYSTEM, SYS, TRACE, UNLOCK, USING, VERIFY, VIEW, VLIN, VTAB, WAIT, WIDTH, WINDOW, WRITE et XDRAW |
|
Basic |
Mots réservé |
AND, AT, BASE, CALL, CASE, CHAIN, COMMON, DATA, DIM, DO, DYNAMIC, ELSE, END, ERASE, FOR, GOSUB, GOTO, IF, INTERRUPT, LOOP, NEXT, NOT, ON, OPTION, OR, RUN, SELECT, STEP, STOP, SUB, THEN, TO, TROFF, TRON, WEND, WHILE et XOR |
|
Batch File |
Mots réservé |
BREAK, CALL, CD, CHCP, CHDIR, COPY, CTTY, DATE, DEL, DIR, ERASE, ERRORLEVEL, EXIT, FOR, GOTO, IF, LH, LOADHIGH, MD, MKDIR, MOVE, NOT, PAUSE, RD, REN, RMDIR, SET, SHIFT, TIME, TYPE, VERIFY et VER. |
|
C/C++ |
Mots réservé |
asm, auto, break, case, cdcel, char, constant, continue, default, do, double, else, enum, extern, far, float, for, goto, huge, if, int, interrupt, long, near, pascal, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while, _cs, _ds, _es, _ss, _AH, _AL, _AX, _BH, _BL, _BP, _BX, _CH, _CL, _CX, _DH, _DI, _DL, _DX, _SI et _SP. |
|
Cobol |
Mots réservé |
ACCEPT, ACCESS, ADD, ADVANCING, AFTER, ALL, ALPHABETIC, ALSO, ALTER, ALTERNATIVE, AND, ARE, AREA, AREAS, ASCENDING, ASSIGN, AT, AUTHOR, BEFORE, BLANK, BLOCK, BOTTOM, BY, CALL, CANCEL, CD, CF, CH, CHARACTER, CHARACTERS, CLOCK-UNITS, CLOSE, COBOL, CODE, CODE-SET, COLLATING, COLUMN, COM, COMMA, COMMUNICATION, COMPUTATION, COMPUTE, CONFIGURATION, CONTAINS, CONTROL, CONTROLS, COPY, COR, CORRESPONDING, COUNT, CURRENCY, DATA, DATE, DATE-COMPILED, DATE-WRITTEN, DAY, DE, DEBUG-CONTENTS, DEBUG-ITEM, DEBUG-LINE, DEBUG-NAME, DEBUG-SUB-1, DEBUG-SUB-2, DEBUG-SUB-3, DEBUGGING, DECIMAL-POINT, DECLARATIVES, DELETE, DELIMITED, DELIMITER, DEPENDING, DESCENDING, DESTINATION, DETAIL, DISABLE, DISPLAY, DIVIDE, DIVISION, DOWN, DUPLICATES, DYNAMIC, EGI, ELSE, EMI, ENABLE, END, END-OF-PAGE, ENTER, ENVIRONMENT, EOP, EQUAL, ERROR, ESI, EVERY, EXCEPTION, EXIT, EXTEND, FD, FILE, FILE-CONTROL, FILLER, FINAL, FIRST, FOOTING, FOR, FROM, GENERATE, GIVING, GO, GREATER, GROUP, HEADING, HIGH-VALUE, HIGH-VALUES, I-O, I-O-CONTROL, IDENTIFICATION, IF, IN, INDEX, INDEXED, INDICATE, INITIAL, INITIATE, INPUT, INPUT-OUTPUT, INSPECT, INSTALLATION, INTO, INVALID, IS, JUS, JUSTIFIED, KEY, LABEL, LAST, LEADING, LEFT, LENGTH, LESS, LIMIT, LIMITS, LINAGE, LINAGE-COUNTER, LINE, LINE-COUNTER, LINES, LINKAGE, LOCK, LOW-VALUE, LOW-VALUES, MEMORY, MERGE, MESSAGE, MODE, MODULES, MOVE, MULTIPLE, MULTIPLY, NATIVE, NEGATIVE, NEXT, NO, NOT, NOTE, NUMBER, NUMERIC, OBJECT-COMPUTER, OCCURS, OF, OFF, OMITTED, ON, OPEN, OPTIONAL, OR, ORGANIZATION, OUTPUT, OVERFLOW, PAGE, PAGE-COUNTER, PERFORM, PF, PH, PIC, PICTURE, PLUS, POINTER, POSITION, POSITIVE, PRINTING, PROCEDURE, PROCEDURES, PROCEED, PROGRAM, PROGRAM-ID, QUEUE, QUOTE, QUOTES, RANDOM, RD, READ, RECEIVE, RECORD, RECORDS, REDEFINES, REEL, REFERENCES, RELATIVE, RELEASE, REMAINDER, REMOVAL, RENAMES, REPLACING, REPORTS, RERUN, RESERVE, RESET, RETURN, REVERSED, REWIND, REWRITE, RF, RH, RIGHT, ROUNDED, RUN, SAME, SD, SEARCH, SECTION, SECURITY, SEGMENT, SEGMENT-LIMIT, SELECT, SEND, SENTENCE, SEPARATE, SEQUENCE, SEQUENCIAL, SET, SIGN, SIZE, SORT, SORT-IMAGE, SOURCE, SOURCE-COMPUTER, SPACE, SPACES, SPECIAL-NAMES, STANDARD, STANDARD-1, START, STATUS, STOP, STRING, SUB-QUEUE-1, SUB-QUEUE-2, SUB-QUEUE-3, SUBTRACT, SUM, SUPPRESS, SYMBOLIC, SYN, SYNCHRONIZED, TABLE, TALLYING, TAPE, TERMINAL, TERMINATE, TEXT, THAN, THROU, THROUGH, TIME, TIMES, TO, TOP, TRAILING, TYPE, UNIT, UNSTRING, UNTIL, UP, UPON, USAGE, USE, USING, VALUE, VALUES, VARYING, WHEN, WITH, WORDS, WORKING-STORAGE, WRITE, ZERO et ZEROES |
|
Euphoria |
Mots réservé |
AND, BY, CONSTANT, DO, DOWNTO, END, ELSE, ELSIF, EXIT, FOR, FUNCTION, GLOBAL, IF, INCLUDE, OR, PROCEDURE, RETURN, THEN, TO, TYPE, WHILE, WITHOUT et XOR |
|
Fortran |
Mots réservé |
AND, CALL, COMMON, CONTINUE, DATA, DIMENSION, DO, END, EQ, GE, GOTO, GO, GT, IF, LT, NE, NOT, OR, PROGRAM, STOP, THEN et TO |
|
Pascal |
Mots réservé |
ABSOLUTE, AND, ASSEMBLER, ASM, ARRAY, BEGIN, CASE, CONST, CONSTRUCTOR, CSTRING, DESTRUCTOR, DIV, DO, DOWNTO, ELSE, END, EXPORT, EXPORTS, EXTERNAL, FILE, FAR, FOR, FUNCTION, GOTO, IF, IMPLEMENTATION, IN, INHERITED, INLINE, INTERFACE, LABEL, LIBRARY, MOD, NEAR, NIL, NOT, OBJECT, OF, OR, PACKED, PROCEDURE, PROGRAM, RECORD, REPEAT, SET, SHL, SHR, STRING, THEN, TO, TYPE, UNIT, UNTIL, USES, VAR, VIRTUEL, WHILE, WITH, XOR |
|
Pascal B57 |
Mots réservé |
ABSOLUE, ABSOLUTE, ALLERA, ALORS, AND, ARRAY, ASM, ASSEMBLE, ASSEMBLER, ASSEMBLEUR, AUTREMENT, AVEC, BEGIN, BIBLIOTHEQUE, CAS, CASE, CODECONST, CONST, CONSTANT, CONSTANTE, CONSTRUCTEUR, CONSTRUCTOR, CSCONST, CSDATA, DANS, DE, DEBUT, DECALD, DECALG, DED, DEG, DESTRUCTEUR, DESTRUCTOR, DIV, DO, DUPLICATE, DUPLICATION, DUPLIQUE, ELIF, ELSE, ELSEIF, ELSIF, END, ENLIGNE, ENREGISTREMENT, ENSEMBLE, ET, ETIQUETTE, EXPORTS, FAIRE, FAR, FICHIER, FILE, FIN, FINALISATION, FINALIZATION, FONCTION, FOR, FUNCTION, GOTO, HERITIER, IF, IMPLEMENTATION, IN, INCLUDE, INHERITED, INLINE, INITIALISATION, INITIALIZATION, INTERFACE, INTERRUPT, JUSQUA, LABEL, LIBRARY, LOIN, MACRO, MOD, NEAR, NOT, OBJECT, OBJET, OF, OR, OU, OUX, PACKED, PAQUET, PAS, POUR, PROCEDURE, PROCHE, PROGRAM, PROGRAMME, RANGEE, RECORD, REGISTER, REGISTRE, REPEAT, REPETER, SET, SHL, SHR, SI, SINON, TANTQUE, THEN, TO, TTQ, TYPE, TYPEDEF, UNIT, UNITE, USES, UTILISES, VAR, VARIABLE, VIRTUAL, VIRTUEL, WHILE, WITH et XOR |
|
PopMenu |
Mots réservé |
ASSIGN, BEGIN, END, EXECUTE, MATCH, MEND, MENU, MENUITEM, NOTHING, PEND, POPUP, SELECT, SEPARATOR, TEXT et TYPE |
En plus, on devra offrir la possibilité de l'activer ou de le désactiver ou de passer d'un format à l'autre selon le désir de l'utilisateur!
Concernant les macros, on aura le choix entre les différentes commandes suivantes exécutable à partir d'un fichier texte:
|
Instruction |
Description |
|---|---|
|
For |
Pour produire un effet répétitif. |
|
Ln |
Saute d'une ligne. L'équivalent de la touche «Enter». |
|
PageFormat |
Cette instruction indique au traitement de texte que vous voulez spécifier le format (ou la dimension de votre page pour permettre de ne pas produire de conflit de trop petite ou grande taille de page... ) |
|
PageNm |
«PageNumber», numéro de page, indique votre numéro de page additionner lors de l'impression de votre texte. |
|
Put |
Affiche du texte(s) mais sans passer à la ligne suivante. Il attend bien sagement à la suite du texte venant d'être écrit. |
|
PutLn |
Affiche du texte(s) et passe à la ligne suivante. |
|
SetDblChr |
«SetDoubleCharacter», fixe en double largeur les prochains caractères, change le mode d'édition du traitement de texte. Les caractères suivant seront automatiquement d'une largeur double. |
|
SetNorChr |
«SetNormalCharacter», fixe en mode normal, s'en attribue particulier les prochains caractères. Les caractères suivant ne seront plus double largeur, gras, italique ou quelque chose du même genre, ils seront ordinaire, sans charme, par défaut... |
Voici maintenant une description plus détaillés de chacune des macros:
L'instruction PageFormat
Sa syntaxe ne permet qu'un style possible «PageFormat» suivi d'un numéro à 4 chiffres séparées par des virgules comme ce format ci:
|
PageFormat X1,Y1,X2,Y2 |
Vous ne pouvez naturel pas placer des lettres dans cette instruction, ils sont là juste comme identificateur. Le premier, «X1», indique la coordonnée (marge de) gauche de la feuille. Le deuxième «Y1» indique la coordonnée du haut de la feuille. Le troisième «X2» indique la marge de droite, en partant de la gauche, en caractères. Et non pas de droite vers la gauche! Le dernier, «Y2», est naturel la position du bas en partant du haut. Et surtout pas la marge de bas de la feuille vers le haut, sinon vous rencontrerez des dimensions de feuilles négative, soit théoriquement impossible dans notre univers!
Par exemple si vous souhaitez ardemment garder une feuille de format standard, voici ce qu'il faut marquer: «PageFormat 10,6,70,60», pour en mode compressé «PageFormat 10,6,120,82».
Les instructions Put et PutLn
Ces 2 instructions s'applique de la même manière à la seule différence que l'un saute une ligne après (PutLn) et l'autre pas (Put). Il suffit d'écrire entre guillemet (") votre message à transmettre. Si par exemple vous souhaitez faire écrire le message «Je déteste les macros!». Vous écrirez le l'instruction suivante:
|
Put "Je déteste les macros!" |
L'interpréteur de macro n'écrit pas les guillemets! C'est seulement une délimitation pour lui.
Chiffrier électronique (tableur)
Le chiffrier électronique mieux connu sous le nom de tableur devra s'orienter vers la technique dites “Liste Symétrique Intelligente”, celle-ci offre la possibilité d'avoir un nombre relative de ligne vide sans pour autant devoir gaspiller de la mémoire ou du temps dans sa recherche appliquer. Autrement dit, si on rentre des données seulement à la cellule AAAB65520 on ne gaspillera pas 5 Mo pour pouvoir stocker cette cellule mais seulement la vingtaine d'octet nécessaire à imaginer le delta correspondant. On devra également inclure les formules au sein même du code permettant d'obtenir par exemple des fonctions statistiques, astronomiques ou autres.
Les caractéristiques de chacune des cellules permettront d'obtenir une couleur particulier, un format de bordure et autres caractéristiques du même genre:
|
Nom |
Taille |
Description |
|
|---|---|---|---|
|
Format |
1 octet |
Type de cellule |
|
|
Code |
Description |
||
|
0 |
Vide |
||
|
1 |
Valeur numérique |
||
|
2 |
Texte |
||
|
3 |
Formule mathématique |
||
|
4 |
Date |
||
|
Justification |
1 octet |
Droite, Centrer ou Gauche |
|
|
Attribut |
1 octet |
Couleur d'attribut (comme celui de l'écran de texte) |
|
|
Attribut spéciaux |
1 octet |
Attribut gras, souligner, exposant,... |
|
|
Bordure |
1 octet |
Bordure: droite, gauche, haut et/ou bas |
|
Dans le cas d'une bordure, il y a aura une combinaison possible de haut et bas, de gauche et droite, et ainsi de suite,... Toutes les combinaisons sont donc autorisées.
Programme de dessin technique
Le programme de dessin technique ne peut sauvegarde en Bitmap chacun des points, lignes, rectangles, ... dans un fichier d'image, il serait impossible de pouvoir le modifier, raccourcir, déplacement chacune de ses formes. Il deviendra invraisemblable de chercher une couleur de pixel ressemblant a une ligne a travers une image, ça demanderait des calculs presque infinie, voir même une compréhension humaine de l'image. Et se serait beaucoup trop long! Alors pour remédier a se problème, on suppose que chaque forme est en fait un objet manipulable de façon indépendante. On devra effectuer une recherche pour trouver le bonne objet peut importe l'échelle, la position, la taille,...
Tout d'abord, les objets sont tous en trois dimensions et se sont ses coordonnées ainsi que le modèle représentant chacun des objets au niveau interne. Voici de quel façon les caractéristiques de chaque objets devront être stockée en mémoire:
|
Nom |
Taille |
Description |
|
|---|---|---|---|
|
Modèle |
1 octet |
Le modèle correspondant: |
|
|
Code |
Description |
||
|
0 |
Nulle, inutilisé |
||
|
4 |
Point |
||
|
5 |
Ligne |
||
|
6 |
Boîte (rectangle) |
||
|
7 |
Cercle (sphère) |
||
|
8 |
Cylindre |
||
|
9 |
Cône |
||
|
50 |
Flèche avec les coins carrés |
||
|
51 |
Flèche avec les coins en rond. |
||
|
99 |
DFD: Boite de contexte |
||
|
100 |
DFD: Processus (Traitement) |
||
|
101 |
DFD: Entité |
||
|
102 |
DFD: Dépôt (Fichier) |
||
|
X1 |
Réel (6 octets) |
Position X1 d'un cube (X1,Y1,Z1)-(X2,Y2,Z2) |
|
|
Y1 |
Réel (6 octets) |
Position Y1 d'un cube (X1,Y1,Z1)-(X2,Y2,Z2) |
|
|
X2 |
Réel (6 octets) |
Position X2 d'un cube (X1,Y1,Z1)-(X2,Y2,Z2) |
|
|
Y2 |
Réel (6 octets) |
Position Y2 d'un cube (X1,Y1,Z1)-(X2,Y2,Z2) |
|
|
Z1 |
Réel (6 octets) |
Position Z1 d'un cube (X1,Y1,Z1)-(X2,Y2,Z2) |
|
|
Z2 |
Réel (6 octets) |
Position Z2 d'un cube (X1,Y1,Z1)-(X2,Y2,Z2) |
|
|
Encrée |
Booléen (1 octet) |
Invisible lorsqu'ils sont encrées dans un autre objet? |
|
Applications terminal
Les applications terminal contrairement aux autres applications inclus dans le MonsterBook, seront codés comme une application console lequel seront exécuté à l'intérieur du MonsterBook sous la forme d'une session d'émulateur 8086. En effet, le but de cette construction un peu spécial n'est pas sans raison, puisqu'il faudra permettre d'exécuter le noyau de façon indépendant ou juxtaposer de l'environnement graphique avec le terminal de son choix. Il ne pourra donc pas être tout simplement inclus dans l'environnement graphique et être impossible a exécuter sans lui. Pour cette raison, il devra être diviser du projet d'environnement graphique pour atteindre cette objectif.
Outils programmeurs
L'outils des programmeurs devant rendre un service rapide, immédiat et simple est sans nulle doute l'inclusion d'un genre de Visual Basic à l'intérieur même du MonsterBook. Celui-ci devra, pour permettre une pleine adaptation optimale être précompilé en P-Code (un peu comme le GWBASIC à l'époque pour accélérer l'interpréteur) de façon entièrement transparente, c'est-à-dire ne pas avertir le programmeur des différentes étapes pour l'interpréter son code mais simplement voir le résultat final.
L'autre élément permettant d'obtenir une puissance colossale en terme d'espace disque d'espace et de simplicité c'est le puissant code DPU. Celui-ci est ni plus ni moins qu'un code machine scripte spécialisé pour la boite de dialogue. En voici les principaux codes valides:
|
Code |
Description |
|
00h |
Indicatif de terminaison |
|
01h |
SIZE X,Y |
|
02h |
WINDOWCOLORCLASSIC Title |
|
03h |
CLOSEICON |
|
04h |
LN |
|
05h |
BARUP |
|
06h |
TEXT Message |
|
07h |
TEXT (X,Y),Message |
|
08h |
TEXT (X),Message |
|
09h |
MESSAGE message |
|
0Ah |
SIMPLE GRID(x,y),attribut |
|
0Bh |
BARHORI (x1,y,x2) |
|
10h |
IF TRUE THEN |
|
11h |
ELSE |
|
12h |
END IF |
|
31h |
COLORCUBE (X,Y),Largeur,Hauteur |
|
41h |
CAPTION BYTE (X,Y),Longueur |
|
42h |
CAPTION WORD (X,Y),Longueur |
|
43h |
CAPTION LONG (X,Y),Longueur |
|
44h |
CAPTION REAL (X,Y),Longueur |
|
46h |
CAPTION STRING (X,Y),Longueur |
|
4Fh |
CAPTION COPY ( Xsource, Ysource ), ( Xtarget, Ytarget ) , ( XglobalProgress , YglobalProgress ) , ( XlocalProgress , YlocalProgress ) |
|
50h |
COPY|MOVE source,target[,OVERWRITE][,SUBFOLDER] |
|
6Dh |
RADIOBUTTON EXTERN (X,Y),Titre,Option |
|
6Fh |
CHECKBOX EXTERN (X,Y),Longueur,Message |
|
70h |
EXTERNAL PROCESSUS |
|
81h |
INPUT BYTE (X1,Y,X2),Longueur |
|
82h |
INPUT WORD (X1,Y,X2),Longueur |
|
83h |
INPUT LONG (X1,Y,X2),Longueur |
|
84h |
INPUT REAL (X1,Y,X2),Longueur |
|
85h |
KEYHORIDOWN Touche |
|
86h |
INPUT STRING (X1,Y,X2),Longueur |
|
87h |
LISTBOX (X1,Y1)-(X2,Y2),[SHADOW,]Titre |
|
88h |
SCROLLBAR Minimum:Maximum (X1,Y,X2),Couleur |
|
8Ah |
TABBEDNOTEBOOK Couleur,Nom |
|
8Bh |
COLORGRID (X,Y)[,Nombre de couleurs][,Nombre de ligne][,FALSE|PALETTE] |
|
8Ch |
FRAME (X1,Y1)-(X2,Y2),Titre |
|
8Dh |
RADIOBUTTON (X,Y),Titre,Option |
|
8Eh |
KEYHORI (X,Y),Largeur,Nom |
|
8Fh |
CHECKBOX (X,Y),Longueur,Message |
|
91h |
GHOST BYTE |
|
92h |
GHOST WORD |
|
93h |
GHOST LONG |
|
94h |
GHOST REAL |
|
96h |
GHOST STRING |
|
B0h |
SECTORIAL (X1,Y1)-(X2,Y2),Color1[,Color2][...] |
On retrouve donc une suite de ces codes avec les paramètres appropriées pour enfin obtenir un code terminaison 0.
Selon exactement le même principe, on retrouvera cette forme de scripte pour les menus contextuels selon le tableau suivant:
|
Code |
Description |
|---|---|
|
00h |
Indicatif de terminaison |
|
01h |
ITEM - |
|
02h |
ITEM ... |
|
03h |
ITEM switch |
|
04h |
ITEM ... |
|
05h |
GROUP ITEM |
|
06h |
END GROUP |
|
07h |
IF TRUE THEN |
|
08h |
ELSE |
|
09h |
END IF |
|
0Ah |
MENU message |
On remarquera que d'habitude le DPU des menus est exploitée pour les ressources de menu contextuel activable par le deuxième bouton de la souris.
Enfin, n'oublions pas qu'il sera nécessaire de pouvoir compiler à partir d'une fenêtre d'édition de traitement de texte un fichier de ressource «.RC» en code DPU exploitable immédiatement par le MonsterBook.
Gestionnaire de programmes
Dans le cas du menu déroulant Windows 9X, les icônes seront stockée dans des ressources et ne devront pas être dupliqué. Pour se faire, on effectuera une recherche dans les ressources afin de trouver le numéro correspondant à la liste des ressources. Ce genre de ressource ne sera jamais retirer de la mémoire jusqu'à la fin de l'exécution du programme. Car étant donnée la petite que ceux-ci réclame, il est inadéquat de les décharger et recharger constamment, se serait ni plus ni moins qu'une perte inutile de performances.
Navigateur HTML (Gestionnaire de programmes)
Le navigateur de page HTML sera une partie partie du gestionnaire de programmes tous comme l'est le Panneau de configuration par exemple. La recompilation de l'affichage aura lieu à chaque rafraîchissement de la page en déplacement à l'exception des images, ceux-ci sont trop long à charger en mémoire à cause de leur format compacter, il faudra donc les stocker sous forme de ressources afin de contrer ce genre de problème.
Lors du chargement de la page, le texte affichées, les images, les cadres,... sont classés par groupe afin de permettre une résolution plus simple et rapide de chargement de la page. Il faudra également tenir compte d'erreur de chargement de page étant incomplète, fragmenter ou contenant des données invalide.
La fenêtre de navigation doit être construite dans une optique MDI, c'est-à-dire qu'il sera possible de charger plusieurs fenêtres de navigation HTML à l'écran dans le MonsterBook.
De leur côté, les polices de caractères doivent permettre un affichage transparent afin de supporter par exemple, une image de fond,... Les coordonnées devront également être calculer de façon à avoir une idée fixe concernant l'élément de la page de façon instantané. Certaines routines d'affichage de polices de caractères spécialiser permettront l'exclusion de certaines région devront être développer afin de permettre l'affichage de texte en bordure de l'écran. Ainsi, il donnera le même effet qu'un navigateur HTML professionnel tel Netscape ou Explorer.
Le JavaScript doit être stocké dans une région particulière de la mémoire et être traité que lorsque le HTML lui-même aura tout été traité et exécuter. Donc il devra être lancer après comme un “deuxième passage” des lignes de codes sources HTML.
Accessoires supplémentaires
Dans le cas des accessoires de pays, il devra être possible de fonctionner en fonction des informations retourner par le système d'exploitation ou bien de le configurer manuellement et de se fait de fonctionner à partir d'une base de données ayant une correspondance pour chaque pays ou région. Cependant, il ne devra pas avoir un numéro de clé primaire identique au DOS, mais un numéro lui étant propre en fonction de chaque pays. Toutefois, il est a noter que dans chaque enregistrement, on retrouvera malgré tout un numéro correspondant au code de pays ou de région correspondant au système d'exploitation. La raison de cette particularité est d'éviter d'être confronter un système d'exploitation n'ayant pas d'information à jour sur certains pays ou région non encore reconnu dans leur base de données. En plus, dans d'autres situations, on a put constater que le développement était uniquement orienté sur l'environnement graphique et que le noyau DOS était tout simplement abandonner dans les spécifications particulière. Et donc de cette manière, cela permettra également de changer de pays sans avoir de compte à rendre au système d'exploitation pour la modification par l'intermédiaire d'une interruption. Ceux-ci n'étant actuellement pas très bien supporté, c'est-à-dire qu'il n'autorise pas un programme de catégorie DOS, comme le MonsterBook, à changer lui-même sa configuration de pays. Et cela malgré le fait qu'elle soit spécifier comme potentiellement réalisable dans la documentation technique de ceux-ci.
Chapitre 3
Programmation du projet
3. Programmation du projet
La programmation du projet est la partie décrivant de quel façon le source du MonsterBook est élaborer.
C'est la partie la plus difficile à expliquer car elle est en constant changement. On retrouve sous cette aspect, un problème fondamental, le changement constant de Spécification dû au fait que les techniques de programmation changent et que des meilleurs méthodes sont découvertes à chaque jour! Devant l'ampleur d'un tel problème on pourra facilement en conclure qu'il ne saura jamais terminer? Peut-être bien, mais il aura au moins l'avantage de s'approcher petit à petit comme les pas patient d'une tortue vers un but assurer.
Voulant donc permettre a un humain normal de comprendre rapidement la structure des fichiers contenant les codes sources, on pourra les expliquer de la façon suivantes: les terminaisons en “TEX” pour cortex, sont les unités réservées pour les définitions de l'ensemble Malte Genesis IV: Alias Chantal et Malte Genesis V: Alias Adèle. Ensuite les unités commencent par les trois lettres “RES” sont attribuées pour la gestion des ressources de l'ensemble.
Dans le but d'optimiser les performances des applications, une unité de recouvrement ne fait jamais d'appel direct en boucle à une autre unité également de recouvrement!
Les routines de détection
Steve Job prétendait que si on additionnait toutes les secondes perdu lors de démarrage d'ordinateur, ceux-ci correspondraient à plusieurs vie d'être humain seulement en attente! Pour cette raison, le cas des routines de détection, devra être gérer d'une façon différentes des systèmes actuel afin d'éviter de commettre les mêmes erreurs. Les routines de détection ne seront pas uniquement au niveau du démarrage du MonsterBook. En effet, il sera inutile d'effectuer une détection souvent longue en attente pour l'utilisateur et pourtant celui-ci ne l'utilisera pas forcément lors de cette utilisation. Ainsi, il sera préférable d'effectuer une détection sélective permettant une accélération des routines de façon a effectuer des détections de composantes vraiment indispensable au lancement du programme et de seulement effectuer les autres lorsqu'une requête particulière attribuer a ceux-ci seront faites.
Place maintenant au explication de programmation, voici donc l'algorithme visant a effectuer la détection aura le cheminement suivant:
|
* Ce module permet de détecter le matériel disponible actuellement installer sur la machine.
MODULE Détection Matériel APPEL MODULE Détection Microprocesseur APPEL MODULE Détection Souris Détection Carte vidéo IBM SI Autorise la détection Super VGA ALORS Vérifie la présence d'une carte vidéo ATI Vérifie la présence d'une carte vidéo XGA Vérifie la présence d'une carte vidéo Video 7 Vérifie la présence d'une carte vidéo Ahead Vérifie la présence d'une carte vidéo Genoa Vérifie la présence de la carte vidéo Tseng Labs Vérifie la présence d'une carte vidéo IT-VGA2 Vérifie la présence d'une carte vidéo Cirrus Vérifie la présence d'une carte vidéo CTI Vérifie la présence d'une carte vidéo Trident Vérifie la présence d'une carte vidéo Everex Vérifie la présence d'une carte vidéo Zymos Vérifie la présence d'une carte vidéo Oak Vérifie la présence d'une carte vidéo Paradise FIN SI Détection du BIOS au standard VESA SI VESA ALORS Vérifie la présence d'une carte vidéo Matrox FIN SI |
Cette algorithme représente la méthode utilisée afin de détecter les microprocesseurs de différentes catégories et de fabricants (AMD, Cyrix, Intel,...):
|
MODULE Détection Microprocesseur Vérification du Micro-Processeur installée SI Processeur 32 bits ALORS Routine 32 bits Supportée VRAI SINON Routine 32 bits Supportée FAUX FIN SI Vérification du Pentium par Instruction CPUID SI Introuvable ALORS Teste Cyrix par contrôleur SI Cyrix trouvé ALORS Teste Présence Instruction CPUID FIN SI FIN SI |
L'algorithme suivant est employé dans le but de détecter les souris installés et d'éventuellement chargés le pilote appropriés en mémoire:
|
MODULE Détection Souris SI Pilote Souris EXISTE ALORS Souris Existe VRAI Déterminer configuration actuel SINON SI fonction BIOS du PS/2 EXISTE ALORS Souris Existe VRAI Modèle Souris PS/2 SINON Détection Souris Série SI Souris Trouvé ALORS Souris Existe VRAI Modèle Souris Port Série SINON Souris Existe FAUX FIN SI FIN SI FIN SI |
Détection du CMOS
La détection de la mémoire sur pile appeler plus couramment CMOS, existe de façon officiel qu'à partir de la gamme des PC/AT. Toutefois, de nombreux modèles de CMOS ont existé sur les clones de modèles PC/XT. Ceux-ci, offrant les mêmes services appréciables tel l'heure, la configuration,... Il est indispensable de fournir des techniques de détection appréciable pour les modèles suivantes malgré le fait qu'il n'en existe presque plus:
|
Numéro interne |
Port d'Entrée/Sortie associées |
Nom |
|---|---|---|
|
01h |
0E0h à 0E1h |
Contrôleur CMOS RTC des machines WYSE |
|
02h |
2C0h à 2DFh |
Contrôleur CMOS RTC MM58167 |
|
03h |
2C0h à 2C7h |
Contrôleur CMOS RTC MM58167 |
|
04h |
2C0h à 2C1h |
Contrôleur CMOS RTC-58321 |
|
05h |
070h à 071h |
Contrôleur CMOS RTC MC146818 de Motorola |
Les fichiers
Les fichiers sont une des problématiques à la fois les plus simple et la plus compliqué dans un projet comme celui du MonsterBook. En effet, le problème est relativement simple quand on passe par un système d'exploitation DOS, sauf qu'avec les LFNs de Windows 9X, les descriptions de 4DOS, NDOS et toutes les fichiers généré par les applications populaires, il en devient parfois étourdissant de si retrouver.
Tout d'abord, dans la bibliothèque de code source, il existe deux méthodes, la première, en mode réel, est appelé ShortBF, puisqu'il s'agit d'une liste statique ne demandant pas beaucoup de mémoire mais ayant une limite de fichiers assez basse, la seconde est une méthode de liste symétrique, beaucoup plus gourmande et beaucoup moins efficace que la première.
ShortBF
Cette technique se résume ainsi: méthode de programmation visant essentiellement à économiser la mémoire tout en accélérant la vitesse de chargement des noms de fichiers du disque vers la mémoire.
Fonctionnement
Tout d'abord, il utilise un bloc de mémoire de 65520 octets ou le reste de la mémoire disponible sur le tas.
Ensuite, il charge les fichiers dans cette banque avec le format élémentaire «^Array of Search32Rec». Attention: Il faut éviter d'excéder le nombre de 2047 fichiers dans cette banque car un plantage ou un écrasement de données se produira.
Lorsque tous les fichiers sont chargés en mémoire, libérer dans la mémoire située à la fin de la banque, car elle n'est pas utilisé en fin de compte:
|
FreeMem(Ptr^[NombreFichiers], MémoireUtilisé-NombreFichiers*SizeOf(Search32Rec)); |
Problème à surmonté
Dans le Turbo Pascal conventionnel, il n'y a pas de possibilité de diminuer ou d'agrandir directement une zone de mémoire attribué par GetMem et MemAlloc. Pourtant, cette technique ne peut être efficace que si la banque de mémoire à la fin de l'opération peut être changé. Alors que faire?
Il suffit de libérer une partie de spécifique de mémoire avec l'instruction FreeMem. Toutefois, il faut s'assurer que l'offset est inférieur à 10h et de préférence égale 0 ou 8. C'est pour cette raison que souhaitera un enregistrement de multiple de 16 octets afin d'éviter ce genre d'ennui. Car, par exemple, 43 octets se tranche assez mal par rapport à 32 octets.
Format des Enregistrements
Pour éviter de nombreux problèmes techniques, il faut que la structure d'enregistrement d'un fichier soit d'une longueur exacte de 32 octets. Cependant, le système d'exploitation DOS par exemple, envoi des paquets de 43 octets. Il faudra donc être sélectif et envoyer seulement la partie concerné de façon à incrémenter de 2 le segment pour connaître l'emplacement de l'élément suivant. Voici d'abord l'enregistrement de format DOS:
|
SearchRec=Record |
Cette enregistrement doit être copié dans le «Search32Rec» à partir de la position Fill[12]:
|
Search32Rec=Record |
Les polices de caractères
Étant donnée que les polices de caractères actuel comme TrueType sont très lourd en terme de mémoire à utiliser, on devra reprogrammer un compromis à celui-ci beaucoup plus acceptable. Le résultat de cette idée est le QQF (Quick Québec Font). Celui-ci est rien de plus que des bitmaps cadré sur une surface spécifier. Les caractères seront tous accessibles de façon absolue dans le fichier afin qu'on puisse gagner un maximum de temps sans par ailleurs être obligé de le charger en mémoire.
Les pays et les régions
Les pays et les régions seront coder avec un numéro de reconnaissance propre indépendant du celui du DOS ou de Windows, car ceux-ci par exemple dans le cas de Windows 98 et Me, on ne retrouve pas autant de détails pour une application DOS que celle de Windows. En plus, il y a souvent plusieurs associations de régions pour un seul même code de pays. Il est donc indispensable de créer un code de reconnaissance autonome permettant de contrer le problème. Voici donc la liste des différentes régions utiliser à l'interne:
|
ID |
Code de page |
Code de pays |
Abréviation |
Pays/Région |
|---|---|---|---|---|
|
100 |
27 |
437 |
ENU |
Afrique du Sud |
|
200 |
213 |
437 |
ENU |
Algérie |
|
300 |
49 |
850 |
DEU |
Allemagne |
|
310 |
61 |
437 |
ENU |
Anglais International |
|
400 |
44 |
437 |
ENG |
Angleterre |
|
500 |
3 |
437 |
ENU |
Amérique Latine |
|
600 |
966 |
437 |
ENU |
Arabie Saoudite |
|
700 |
54 |
437 |
ENU |
Argentine |
|
800 |
99 |
437 |
ENU |
Asie anglophone |
|
900 |
61 |
437 |
ENG |
Australie |
|
1000 |
43 |
437 |
DEU |
Autriche |
|
1100 |
880 |
437 |
ENU |
Bangladesh |
|
1200 |
32 |
850 |
FRA |
Belgique (Français) |
|
1300 |
32 |
850 |
NLD |
Belgique (Hollandais) |
|
1400 |
55 |
850 |
PTG |
Brésil |
|
1500 |
11 |
437 |
ENG |
Canada anglophone |
|
1600 |
2 |
863 |
FRC |
Canada francophone |
|
1700 |
56 |
437 |
ENU |
Chili |
|
1800 |
86 |
936 |
ENU |
Chine |
|
1900 |
357 |
437 |
ENU |
Chypre |
|
2000 |
57 |
437 |
ENU |
Colombie |
|
2100 |
82 |
934 |
KOR |
Corée |
|
2200 |
506 |
437 |
ENU |
Costa Rica |
|
2300 |
45 |
865 |
DAN |
Danemark |
|
2400 |
20 |
437 |
ENU |
Égypte |
|
2500 |
971 |
437 |
ENU |
Émirats Arabes Unis |
|
2600 |
34 |
850 |
ESP |
Espagne |
|
2700 |
1 |
437 |
ENU |
États-Unis |
|
2800 |
358 |
437 |
FIN |
Finlande |
|
2900 |
33 |
850 |
FRA |
France |
|
3000 |
30 |
437 |
ENU |
Grèce |
|
3100 |
502 |
437 |
ENU |
Guatemala |
|
3200 |
509 |
437 |
ENU |
Haïti |
|
3300 |
852 |
437 |
ENU |
Hong Kong |
|
3400 |
36 |
852 |
ENU |
Hongrie |
|
3500 |
22 |
437 |
ENU |
Île de Malte |
|
3600 |
91 |
437 |
ENU |
Inde |
|
3700 |
62 |
437 |
ENU |
Indonésie |
|
3800 |
98 |
437 |
ENU |
Iran |
|
3900 |
353 |
437 |
ENG |
Irlande |
|
4000 |
354 |
850 |
ISL |
Islande |
|
4100 |
972 |
862 |
ENU |
Israël |
|
4200 |
39 |
850 |
ITA |
Italie |
|
4300 |
81 |
932 |
ENU |
Japon |
|
4400 |
60 |
437 |
ENU |
Malaisie |
|
4500 |
212 |
437 |
ENU |
Maroc |
|
4600 |
52 |
850 |
ESP |
Mexique |
|
4700 |
64 |
437 |
ENG |
Nouvelle Zélande |
|
4800 |
47 |
865 |
NOR |
Norvège |
|
4900 |
92 |
437 |
ENU |
Pakistan |
|
5000 |
507 |
437 |
ENU |
Panama |
|
5100 |
785 |
864 |
ENU |
Pays arabes |
|
5200 |
31 |
850 |
NLD |
Pays-Bas |
|
5300 |
51 |
437 |
ENU |
Pérou |
|
5400 |
63 |
437 |
ENU |
Philippines |
|
5500 |
48 |
852 |
ENU |
Pologne |
|
5600 |
351 |
860 |
PTG |
Portugal |
|
5700 |
2 |
863 |
FRC |
Québec |
|
5800 |
88 |
437 |
ENU |
République Populaire de Chine |
|
5900 |
40 |
852 |
ENU |
Roumanie |
|
6000 |
44 |
437 |
ENG |
Royaume-Uni |
|
6050 |
2 |
863 |
FRC |
Saguenay/Lac-St-Jean |
|
6100 |
503 |
437 |
ENU |
Salvador |
|
6200 |
65 |
437 |
ENU |
Singapour |
|
6300 |
94 |
437 |
ENU |
Sri Lanka |
|
6400 |
46 |
850 |
SVE |
Suède |
|
6500 |
41 |
850 |
FRA |
Suisse (Français) |
|
6600 |
41 |
850 |
DEU |
Suisse (Allemand) |
|
6700 |
41 |
850 |
ITA |
Suisse (Italien) |
|
6800 |
886 |
938 |
ENG |
Taiwan |
|
6900 |
42 |
852 |
ENU |
Tchécoslovaquie |
|
7000 |
66 |
437 |
ENU |
Thaïlande |
|
7100 |
216 |
437 |
ENU |
Tunisie |
|
7200 |
90 |
857 |
ENU |
Turquie |
|
7300 |
7 |
437 |
ENU |
U.R.S.S. |
|
7400 |
58 |
437 |
ENU |
Venezuela |
|
7500 |
38 |
852 |
ENU |
Yougoslavie |
|
7600 |
1 |
437 |
ENU |
Autres pays |
Enfin que les personnes utilisant le MonsterBook ne se sentent pas trop dépayser, voici un les drapeaux correspondant à chacune des régions ou pays:
|
Pays/Région |
Pays/Région |
Pays/Région |
Pays/Région |
Pays/Région |
|
|
|
|
|
|
|
Afghanistan |
Afrique du Sud |
Albanie |
Algérie |
Allemagne |
|
|
|
|
|
|
|
Andorre |
Angleterre |
Angola |