Micro Systèmes n°93 janvier 1989
Micro Systèmes n°93 janvier 1989
  • Prix facial : 30 F

  • Parution : n°93 de janvier 1989

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (203 x 271) mm

  • Nombre de pages : 182

  • Taille du fichier PDF : 160 Mo

  • Dans ce numéro : systèmes experts et psychologie cognitive.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 62 - 63  |  Aller à la page   OK
Pages suivantes >
62 63
cal, avec tous les avantages de simplicité, de modularité et d'efficacité qu'elles permettent. Il y a plusieurs manières de procéder, selon qu'on veuille un programme fonctionnant aussi bien sous CP/M 80 que MS-DOS, ou bien qu'on préfère minimiser au maximum la taille du code généré. Dans tous les cas, la procédure paramètre est déclarée dans la partie déclarative de la procédure réceptrice, et son adresse réelle est transmise comme un paramètre de type entier. Il faut'ensuite écrire un saut (JP ad ou JMP ad) à l'adresse réelle au tout début de ce que le compilateur considère comme une procédure, mais qui n'est autre qu'un vecteur (notion courante en assembleur), et qui renvoie à la procédure désirée par le programmeur. La première solution consiste à déclarer la procédure paramètre comme une procédure normale, n'effectuant qu'un appel à la procédure « RIEN », juste pour ménager l'espace nécessaire à l'écriture ultérieure du « JP ad ». Le compilateur génère à cet endroit le code de dépilement des paramètres transmis dans la pile, qui peut être aussi bien nul (sous CP/M, s'il n'y a pas de paramètres) que très important (s'il y en a beaucoup), puis un « CALL rien ». Ce code ne sera pas utilisé mais occupe de l'espace mémoire inutilement, ainsi que l'espace de stockage des paramètres réservé dans la zone de données, d'où un petit gaspillage. Mais cette méthode a l'avantage de fonctionner indifféremment sous CP/M ou MS-DOS (comme fait le programme de démonstration). Pour optimiser le procédé sous MS-DOS, on déclare d'abord une procédure « bidon » qui ne fait rien sauf ménager de l'espace dans le code, puis la procédure paramètre en EXTERNAL à l'adresse de « bidon ». Ainsi le code de dépilement des paramètres n'est pas généré (voir l'exemple dans VECTORX.INC, version MS- DOS, fig. 1). Sous CP/M 80, en raison du comportement différent de l'instruction EXTERNAL qui n'accepte que des constantes prédéfinies, on est obligé de déclarer la procédure paramètre à une adresse déterminée, { VECTORX. INC Pour CP/M 80 } Vectorisation de TURBO PASCAL. Syntaxe No 1 : (compatible MS-DOS) procedure quelquonoue(proced:integer ; ()) ; procedure sortie (begin rien ; end ; begin installe(proced,addr(sortie)) ; sortie ()end ; Syntaxe No 2 : (economie memoire, nb de sauts (= 10) procedure quelquonque(proced:integer ; ) ) ; procedure sortie ()external adresse_vecteur0 ; begin installe(proced,addr(sortie)) ; sortie () ; end ; const adresse_vecteur0= 261 ; adresse_vecteurl= 264 ; adresse_vecteur2= 267 ; adresse_vecteur3= 270 ; adresse_vecteur4= 273 ; adresse_vecteur5= 276 ; adresse_vecteur6= 279 ; adresse_vecteur7= 282 ; adresse_vecteur8= 285 ; adresse_vecteur9= 288 ; procedure rien ; begin end ; procedure installe(adresse, const jp=$C3 ; begin inline($2P/position/$36/jp/$ED/$5B/adresse/{ $23/$73/$23/$72) ; end ; Ag. 2. - Vectorisation de Turbo Pascal sous CP/M. position:integer) ; LD HL, (position) LD (HL), jp LD DE, (adresse) INC HL LD (HL), E INC HL LD (HL), D { bibliotheque graphique minimum pour fonction. pas, { elles sont toutes dans MicroStrad No 5, mai/juin const acces_rom= $FC5A ; { CP/M 3.0 } {acces_rom= $BE9B ; } { CP/M 2.2 } { pour acceder a la rom de l'amstrad const xechelle=640 ; yechelle=400 ; procedure clg ; begin inline($CD/acces_rom/$DB/$BB) ; end ; procedure mode_texte ; begin, sous CP/M adresse du vecteur } instruction JP adresse du saut poids faible } poids fort } version AMSTRAD 86 } 62 - MICRO-SYSTEMES Janvier 1989
PROGRAMME clrscr ; end ; procedure mode_graphique ; begin clg ; end ; procedure deplace(x,y:integer) ; begin inline(SED/$5B/x/$2A/y/SCD/acces_rom/SCO/SHB) ; end ; procedure ligne(x,y:integer) ; begin inline(SED/$5B/x/$2P/y/SCD/acces_rom/SF6/$BP) ; end ; procedure point(x,y:integer) ; begin inline(SED/$5B/x/$2121/y/SCD/acces_rom/SEP/SBB) ; end ; procedure origine(x,y:integer) ; begin inline(SED/$5B/x/e2P/y/SCD/acces_rom/SC9/$BB) ; end ; Fig. 3. - GRAF-INC pour P/M. indépendante de la compilation. Or, il se trouve un espace libre de 30 octets, toujours à la même place, quelle que soit l'option de compilation choisie ou le système d'exploitation (CP/M 2.2 ou 3.0), qui est la chaîne de caractères du Copy- right située au début de la bibliothèque. Cela fait tout juste 10 sauts, ce qui devrait suffire dans la plupart des cas. L'inconvénient est que le programmeur doit gérer lui-même l'affectation des vecteurs de saut, en vérifiant qu'ils sont bien li- bres au moment où il les utilise. (Voir l'exemple dans VEC- TORX.INC, version CP/M, fig. 2.) Note : ce procédé est utilisable sous MS-DOS en cas de passage d'un programme de CP/M à MS-DOS. Dans ce cas, l'adresse de la chaîne est Cseg:263, et elle fait aussi 30 octets. Il est à noter que sous CP/M (et c'est une extension du standard !) les procédures paramètre peuvent très bien avoir des paramètres par variable, ce qui est logique étant donné que la procédure appelée dispose de l'adresse réelle de la variable exactement comme une procédure normale. En revanche, cela ne fonctionne pas sous MS-DOS (et nous avouons ne pas avoir compris pourquoi !). Dans tous les cas, la syntaxe de INSTALLE est la même, ainsi que l'appel des procédures ayant des paramètres procédures. Ces utilitaires peuvent servir parfaitement dans le cas de programmes contenant des procédures utilisant des sousprocédures différentes, et où l'on ne peut pas trop augmenter le code, tout en ayant une bonne vitesse d'exécution, comme dans le programme de démonstration mettant en oeuvre une procédure universelle de tracé de fonction. La meilleure solution sans vectorisation aurait été d'écrire la procédure de tracé comme une sous-procédure, appelée par les différentes fonctions (qui Tél : 46.03.38.32 Télex : 250752 F Télécopie : 46.05.28.71 LE MAP 5, Avenue du Maréchal Juin 92100 BOULOGNE LOGICIEL ET MAINTENANCE D'APPLICATIONS PROMOTIONS : PRIX FF — MÉMOIREDYNAWOUE : TMS 4256-12 97 — COPROCESSEURS MATHÉMATIQUES : 80287-8 1 990 80287-10 2 490 80387.16 3 690 80387-20 4 290 — MONITEURS : 12" mono. ambre MDA/Tercules/CGA/EGA(720 x 350) 990 14" Paper white MDA/hercules (720 x 350) 1 190 14" couleur EGA/CGA (640 x 350) 3 900 14" couleur MULTIS. MDA/herculps/CGA/EGANGA/PGA 4 590 — IMPMMANTES : Star LC10 80 col. 9 aig. 2 290 NEC P2260 3 490 NEC P6 plus 5 990 LASER canon LBP 811 15 990 — LOGICIELS : Ciel Comptabilité-Gestion 900 WORD PERFECT 4.2 3 290 WORD PERFECT 5.0 3 900 — AT SAMSUNG SPC-650012 1 Mo RAM 1 unité de disquette 5" 1/4 de 1,2 Mo 1 unité de disquette 3" 1/2 de 1,44 Mo 1 disque dur de 20 Mo (65 ms) + 1 écran EGA OFFERT + 1 Imprimante NEC 2260 OFFERT + cable OFFERT PRIX LE MAP 19 990 F HT — AT SAMSUNG S-800/1 Microprocesseur 80386 (10/20 MHz) 2 Mo RAM 1 unité de disquette 5" 1/4 de 1,2 Mo 1 unité de disquette 3" 1/2 de 1,44 Mo 1 disque dur de 40 Mo (28 ms) Adaptateur vidéo EGA autoswitch : monochrome (MDA/1-lercules) et couleur (CGAJEGA/émulation VGA) 2 sorties série et 1 sortie parallèle Clavier Azerty 102 louches MS DOS 3.3. GW BASIC 3.22 Écran EGA OFFERT Souris comp. MICROSOFT OFFERT Imprimante NEC P2260 OFFERT PRIX LE MAP 38 490 F HT — BULL MICRAL 35 F Disquette 1,44 Mo 1 disque dur 20 Mo 640 Ko RAM + TRI-MODE ambre OFFERT + Imprimante NEC 2260 OFFERT + Cable OFFERT PRIX LE MAP 19 790 F HT C8 SAMSUNG "Ces prix sont modifiables sans préavis. NA en sus. La qualité de niveau « Zéro-Défaut », est le prix de la compétivité de LE MAP. SERVICE-LECTEURS N°268 Revendeur agréé e Bull



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 93 janvier 1989 Page 1Micro Systèmes numéro 93 janvier 1989 Page 2-3Micro Systèmes numéro 93 janvier 1989 Page 4-5Micro Systèmes numéro 93 janvier 1989 Page 6-7Micro Systèmes numéro 93 janvier 1989 Page 8-9Micro Systèmes numéro 93 janvier 1989 Page 10-11Micro Systèmes numéro 93 janvier 1989 Page 12-13Micro Systèmes numéro 93 janvier 1989 Page 14-15Micro Systèmes numéro 93 janvier 1989 Page 16-17Micro Systèmes numéro 93 janvier 1989 Page 18-19Micro Systèmes numéro 93 janvier 1989 Page 20-21Micro Systèmes numéro 93 janvier 1989 Page 22-23Micro Systèmes numéro 93 janvier 1989 Page 24-25Micro Systèmes numéro 93 janvier 1989 Page 26-27Micro Systèmes numéro 93 janvier 1989 Page 28-29Micro Systèmes numéro 93 janvier 1989 Page 30-31Micro Systèmes numéro 93 janvier 1989 Page 32-33Micro Systèmes numéro 93 janvier 1989 Page 34-35Micro Systèmes numéro 93 janvier 1989 Page 36-37Micro Systèmes numéro 93 janvier 1989 Page 38-39Micro Systèmes numéro 93 janvier 1989 Page 40-41Micro Systèmes numéro 93 janvier 1989 Page 42-43Micro Systèmes numéro 93 janvier 1989 Page 44-45Micro Systèmes numéro 93 janvier 1989 Page 46-47Micro Systèmes numéro 93 janvier 1989 Page 48-49Micro Systèmes numéro 93 janvier 1989 Page 50-51Micro Systèmes numéro 93 janvier 1989 Page 52-53Micro Systèmes numéro 93 janvier 1989 Page 54-55Micro Systèmes numéro 93 janvier 1989 Page 56-57Micro Systèmes numéro 93 janvier 1989 Page 58-59Micro Systèmes numéro 93 janvier 1989 Page 60-61Micro Systèmes numéro 93 janvier 1989 Page 62-63Micro Systèmes numéro 93 janvier 1989 Page 64-65Micro Systèmes numéro 93 janvier 1989 Page 66-67Micro Systèmes numéro 93 janvier 1989 Page 68-69Micro Systèmes numéro 93 janvier 1989 Page 70-71Micro Systèmes numéro 93 janvier 1989 Page 72-73Micro Systèmes numéro 93 janvier 1989 Page 74-75Micro Systèmes numéro 93 janvier 1989 Page 76-77Micro Systèmes numéro 93 janvier 1989 Page 78-79Micro Systèmes numéro 93 janvier 1989 Page 80-81Micro Systèmes numéro 93 janvier 1989 Page 82-83Micro Systèmes numéro 93 janvier 1989 Page 84-85Micro Systèmes numéro 93 janvier 1989 Page 86-87Micro Systèmes numéro 93 janvier 1989 Page 88-89Micro Systèmes numéro 93 janvier 1989 Page 90-91Micro Systèmes numéro 93 janvier 1989 Page 92-93Micro Systèmes numéro 93 janvier 1989 Page 94-95Micro Systèmes numéro 93 janvier 1989 Page 96-97Micro Systèmes numéro 93 janvier 1989 Page 98-99Micro Systèmes numéro 93 janvier 1989 Page 100-101Micro Systèmes numéro 93 janvier 1989 Page 102-103Micro Systèmes numéro 93 janvier 1989 Page 104-105Micro Systèmes numéro 93 janvier 1989 Page 106-107Micro Systèmes numéro 93 janvier 1989 Page 108-109Micro Systèmes numéro 93 janvier 1989 Page 110-111Micro Systèmes numéro 93 janvier 1989 Page 112-113Micro Systèmes numéro 93 janvier 1989 Page 114-115Micro Systèmes numéro 93 janvier 1989 Page 116-117Micro Systèmes numéro 93 janvier 1989 Page 118-119Micro Systèmes numéro 93 janvier 1989 Page 120-121Micro Systèmes numéro 93 janvier 1989 Page 122-123Micro Systèmes numéro 93 janvier 1989 Page 124-125Micro Systèmes numéro 93 janvier 1989 Page 126-127Micro Systèmes numéro 93 janvier 1989 Page 128-129Micro Systèmes numéro 93 janvier 1989 Page 130-131Micro Systèmes numéro 93 janvier 1989 Page 132-133Micro Systèmes numéro 93 janvier 1989 Page 134-135Micro Systèmes numéro 93 janvier 1989 Page 136-137Micro Systèmes numéro 93 janvier 1989 Page 138-139Micro Systèmes numéro 93 janvier 1989 Page 140-141Micro Systèmes numéro 93 janvier 1989 Page 142-143Micro Systèmes numéro 93 janvier 1989 Page 144-145Micro Systèmes numéro 93 janvier 1989 Page 146-147Micro Systèmes numéro 93 janvier 1989 Page 148-149Micro Systèmes numéro 93 janvier 1989 Page 150-151Micro Systèmes numéro 93 janvier 1989 Page 152-153Micro Systèmes numéro 93 janvier 1989 Page 154-155Micro Systèmes numéro 93 janvier 1989 Page 156-157Micro Systèmes numéro 93 janvier 1989 Page 158-159Micro Systèmes numéro 93 janvier 1989 Page 160-161Micro Systèmes numéro 93 janvier 1989 Page 162-163Micro Systèmes numéro 93 janvier 1989 Page 164-165Micro Systèmes numéro 93 janvier 1989 Page 166-167Micro Systèmes numéro 93 janvier 1989 Page 168-169Micro Systèmes numéro 93 janvier 1989 Page 170-171Micro Systèmes numéro 93 janvier 1989 Page 172-173Micro Systèmes numéro 93 janvier 1989 Page 174-175Micro Systèmes numéro 93 janvier 1989 Page 176-177Micro Systèmes numéro 93 janvier 1989 Page 178-179Micro Systèmes numéro 93 janvier 1989 Page 180-181Micro Systèmes numéro 93 janvier 1989 Page 182