1980 n°1 1982

n°1 septembre 1981

(poms_1981_09.jpg)

[directeur de la publication : Hervé Thiriez] [rédacteur en chef : Hervé Thiriez] #Revue

p.3 Editorial

#Edito [auteur : Hervé Thiriez]

Extrait : «  [...] En plusieurs mois de préparation, une équipe regroupant des spécialistes français de matériels Apple parmi les meilleurs a été constituée. Cette équipe est entièrement disposée à accueillir ceux d'entre vous qui désirent soumettre leurs contributions. Une analyse approfondie des autres publications s'adressant aux utilisateurs d'Apple a été réalisée, afin de ne perdre aucune occasion de vous transmettre des informations utiles. [...]  »

SOMMAIRE

p.9 Overlay dynamique

[auteur : Guy Mathias] #Programme #BASIC #Assembleur #Programmation

Extrait : «  Dans un souci de clarté, cet article est écrit de façon très détaillée. Les experts sont priés de faire preuve de tolérance si certaines explications leur semblent superflues.

Un overlay est une technique consistant à découper un programme en morceaux de façon à ne jamais garder plus de deux morceaux dans la mémoire en même temps. Cette technique permet d'éviter de stocker en mémoire des programmes trop volumineux tout en donnant à chaque morceau, ou module, un rôle propre.

Deux approches sont possibles lors de la conception d'un overlay :
. Soit un seul module réside en mémoire à un moment donné. Quand il le faut, il se fait remplacer par un autre module.
. Soit un module appelé noyau réside en permanence dans la mémoire. Il gère les appels des autres modules, chacun d'entre eux cohabitant à un moment donné avec le noyau.

Nous avons choisi la seconde solution ; en effet, les programmeurs expérimentés bâtissent des programmes utilisant abondamment des sous-programmes d'intérêt général. Ceux-ci étant nécessaires à la plupart des modules, il est préférable de les regrouper dans le noyau afin d'éviter le déplacement de modules de taille importante.

L'objectif de l'overlay est double : permettre des traitements importants, et autoriser des chaînages beaucoup plus rapides que ceux proposés par le DOS : chargement du programme CHAIN, déplacement des variables, chargement du programme appelé et raccordement aux variables. [...]  »

p.17 VISICALC et APPLESOFT

[auteur : Bruno Rives] #Logiciel #Bureautique #Programme #BASIC

Extrait : «  VISICALC est un programme conçu et réalisé par Dan Bricklin et Bob Frankston de la société Software Arts dans le Massachussets et distribué exclusivement par Personal Software en Californie, ces deux sociétés proposant des logiciels pour micro-ordinateurs de grande qualité.

Ce programme est né de l'observation que beaucoup de problèmes sont résolus à l'aide d'une feuille de papier, d'un crayon et d'une calculatrice, des outils universels. VISICALC allie ces outils à la performance et aux caractéristiques du micro-ordinateur, et notamment de l'Apple II. Pour l'utiliser il faut, au minimum, posséder un Apple II arec 32 K de mémoire centrale, un écran de visualisation et un lecteur de disquettes.

Que fait VISICALC ?

VISICALC simule l'usage d'une grande feuille de papier, d'un crayon, d'une gomme et d'une calculatrice. La feuille de papier et le crayon servent à inscrire du texte, des nombres et des formules dans tous les sens. La calculatrice permet à l'utilisateur d'effectuer les calculs dont il a besoin, du plus simple (addition, soustraction, multiplication, division) au plus compliqué (moyenne, actualisation...). Enfin, la gomme laisse l'utilisateur libre d'effacer toute partie ou tout chiffre pour écrire autre chose. Mais, à la différence d'une utilisation manuelle, VISICALC gère immédiatement toute modification, suppression ou insertion en en tenant compte dans les calculs.

La feuille est organisée en 63 colonnes (identifiées de "A" à "BK") et 254 lignes (numérotées de 1 à 254). L'intersection d'une ligne et d'une colonne définit une case à laquelle on peut affecter une étiquette appelée "label" (titre ou commentaire), une valeur numérique (constante), ou enfin une formule, combinant d'autres cases, de la plus simple à la plus compliquée : c'est ce qui fait la puissance du modèle.

Un curseur permet de se déplacer très rapidement, à travers la feuille électronique dont seule une partie apparait à l'écran. Un "scrolling" très performant simule un déplacement sur la totalité de la feuille. Pour aider l'utilisateur , certaines parties du plan de travail peuvent être fixées par des commandes qui maintiennent les titres sur l'écran, ou qui divisent l'écran en deux parties totalement indépendantes, l'utilisateur pouvant se promener indifféremment dans l'une ou l'autre des deux parties.

Les principales caractéristiques

VISICALC est très facile à utiliser : nul besoin d'être un informaticien ou de recevoir une formation spéciale pour s'en servir. [...]  »

p.23 Un programme aide-mémoire

[auteur : Gérard Michel] #Programme #BASIC #GestionDonnées

Extrait : «  Le programme dont la liste apparaît ci-dessous est un petit programme aide-mémoire sans prétention. Le lecteur pourra à loisir l'améliorer et l'adapter à ses propres besoins.

Le programme mémorise pour chaque information de l'aide-mémoire un code de référence ayant un maximum de six caractères. Ces codes sont en permanence classés en mémoire, selon l'ordre des codes alphanumériques.

De cette façon, on retrouve très rapidement n'importe quelle information par l'appel d'une séquence alphanumérique initiale du code : il n'est pas nécessaire de reproduire la totalité du code. Ainsi, en demandant une recherche à partir du code 'ABC', on obtiendra toutes les informations dont le code commence par la séquence 'ABC'.

Il est également possible d'avoir plusieurs informations ayant des codes identiques. Il faut cependant se méfier dans ce cas : quand on souhaite annuler l'information relative à un code donné, le programme élimine la première information qu'il trouve avec ce code. Or, le programme utilise une procédure de recherche dichotomique : la première occurence du code qu'il trouvera ne sera pas nécessairement celle correspondant à la première information ayant ce code dans la liste. [...]  »

p.29 Des instructions en une lettre

[auteur : Christian Guérin] #Programme #Assembleur #SystèmeExploitation

Extrait : «  Un ordinateur aide normalement à travailler plus vite et mieux. Cependant, l'aspect rapidité n'est pas toujours évident quand il faut taper de nombreux caractères pour donner un ordre fréquent, à l'intérieur d'un vocabulaire d'ordres restreint. Ainsi, pourquoi taper 'CATALOG' au lieu de simplement 'C', ou 'SAVE' au lieu de 'S'.

Le programme en assembleur que je vous propose vous permettra de remplacer les ordres du DOS par des ordres à une seule lettre. L'objet de ce programme est de remplacer certaines lettres choisies, quand il leur arrive d'être la première lettre d'un message envoyé à l'ordinateur, par des instructions complètes en DOS.

Ainsi, au lieu de taper 'SAVE BIDULE', il vous suffira de taper 'S BIDULE', le 'S' que vous aurez tapé se transformera sur l'écran en SAVE immédiatement. De cette façon, tout 'S' tapé en première lettre devient un 'SAVE', tout 'C' devient un 'CATALOG',... [...]  »

p.32 Graphiques : de l'ITT 2020 à l'Apple

[auteur : Luis Nobre] #Graphisme #CommentCaMarche

Extrait : «  L'article paru dans l'Ordinateur Individuel numéro 28, pp 97 à 99 donnait le détail d'une modification possible afin de rendre compatible au point de vue graphique, l'Apple II et l'ITT 2020. Quelques explications s'avèrent nécessaires pour comprendre l'utilisation du graphique sur ITT 2020 et les limitations de cette modification.

Ecran mémoire

La définition du graphique haute résolution de l'ITT 2020 est de 360 points en horizontal, soit 40 fois 9 bits. A chaque adresse de la mémoire écran haute résolution correspondent 9 points haute résolution consécutifs, situés sur une même ligne.

La définition verticale est de 192 points en graphique et de 160 points lorsque le mode mixte est utilisé.

On utilise donc 192 x 360/9 = 7680 adresses mémoires pour afficher la haute résolution.

L'espace mémoire total réservé est situé de 8192 à 16383, soit 8192 adresses. Il y a donc 512 adresses qui restent libres et sont sans effet sur l'affichage, les mêmes que pour l'Apple [...]  »

p.35 Les adresses du Graphique

[auteur : Jean-François Duvivier] #Graphisme #CommentCaMarche

Extrait : «  Pour ceux d'entre vous qui désirent explorer dans le détail les entrailles de leur Apple, nous avons rassemblé dans cet article un certain nombre d'adresses utiles relatives au mode graphique. Le tableau 1 vous montre comment, sous moniteur ou en BASIC, passer en mode graphique, aller d'une page à l'autre, ...

Le second tableau indique les zones mémoire utilisées par les divers modes de fonctionnement graphique. Ces zones utilisées par les pages 1 et 2 ne sont pas totalement exploitées par le système. Afin de rendre l'adressage plus simple et plus rapide, le système a laissé quelques trous dont vous pouvez faire ce que vous voulez.

Ces adresses libres sont fournies, pour les graphiques en basse résolution, dans le tableau 3. On peut constater que les huit octets situés après le dernier octet de chaqbe ligne sont ainsi libres et utilisables à loisir. Une aubaine pour ceux qui sont en permanence à la recherche de place ! [...]  »

p.41 P.L.E. : Le Program Line Editor

[auteur : Hervé Thiriez] #Logiciel #Programmation

Extrait : «  Tous ceux d'entre nous qui suent encore sang et eau pour écrire ou modifier un programme BASIC sur leur Apple peuvent se réjouir : avec le Program Line Editor de Synergistic Software, leur tâche se trouvera considérablement allégée.

A. PROBLEMES RELATIFS A L'EDITION DE PROGRAMMES EN BASIC.

Analysons tout d'abord les divers problèmes qui engendrent si facilement la frustration lors de l'écriture ou de la modification des programmes :

1. Le non-remplissage de l'écran.

Quand une ligne en BASIC est listée sur l'écran, ce qui se passe entre la 34ème et la 40ème colonne ne répond pas à une logique évidente. Quand on repasse à travers une ligne au-delà de la 33ème colonne, on risque de récupérer des blancs imprévus qui dénatureront complètement l'instruction.

2. La transparence des fonctions ESC.

Pour modifier une instruction, l'utilisation de la touche ESC, en conjonction avec les touches A-B-C-D ou les touches I-J-K-M est transparente. C'est-à-dire qu'il n'y a pas de différence visible entre les caractères traversés de façon inactive avec la fonction ESC, et ceux écrits ou traversés de façon active avec la flèche à droite.

3. Les caractères de contrôle.

Quand on liste un programme à l'écran comme sur l'imprimante, les caractères de contrôle n'apparaissent pas. Il est par conséquent difficile de réaliser des vérifications ou modifications de programmes comportant de tels caractères [...]  »

p.46 C.R.A.E. : Co-Resident Applesoft Editor

[auteur : Hervé Thiriez] #Logiciel #Programmation

Extrait : «  Ce programme est un produit récent (1980) de la société Highlands Computer Services. Il s'agit, comme pour le P.L.E., d'un programme d'assistance à l'édition de programmes. Il peut fonctionner indépendamment de celui-ci, ou conjointement avec lui. Nous limiterons notre analyse à cette dernière hypothèse, puisque nous avons précédemment reconnu la grande utilité du P.L.E.

C.R.A.E. apporte un complément utile aux fonctions du P.L.E., en autorisant en particulier la recherche ou la modification d'une chaîne de caractères donnée, la numérotation automatique et le dump hexadécimal/ASCII d'une zone de mémoire sélectionnée. Pour rentrer en mode C.R.A.E., il faut taper le signe "&", suivi de RETURN. Le prompt " " est alors remplacé par " ". En Frappant RETURN à vide, on récupère le prompt Applesoft, indispensable pour l'écriture en Applesoft comme pour l'utilisation des instructions du P.L.E. [...]  »

p.48 Des vers dans la pomme...

[auteur : Alexandre Duback] #Programme #BASIC #Programmation

Extrait : «  Essayez de faire fonctionner le programme suivant; vous constaterez qu'il fonctionne parfaitement bien, puisqu'il ne fait rien de mal et qu'on ne lui en demande pas plus.

10 FOR I=1 TO 3 : IF 1=2 THEN 30
20 NEXT I
30 REM DEBUT DES BOUCLES DE TEST
40 FOR I=1 TO 3 : FOR J=1 TO 2 : NEXT J NEXT I
50 FOR J=1 TO 2 : FOR I=1 TO 3 : NEXT I : NEXT J

Otez maintenant l'instruction 40, et relancez le programme. Vous vous apercevrez alors avec stupeur que votre Apple favori vous envoie une injure à la figure : NEXT WITHOUT FOR ERROR IN 50

Cela provient d'un bug rencontré dans la plupart des interpréteurs BASIC de Microsoft [...]  »

p.52 Inverseur DOS 3.2 - DOS 3.3

[auteur : Jean-François Duvivier] #Electronique

Extrait : «  Vous avez certainement été nombreux, lors de l'achat du DOS 3.3, à passer de longs moments pour adapter vos disquettes au DOS 3.3 grâce à MUFFIN. En effet, les disquettes en DOS 3.2 ne peuvent plus être "bootées" telles quelles avec le DOS 3.3.

Il existe plusieurs solutions. La première consiste à utiliser le programme MUFFIN fourni avec le DOS 3.3 pour passer les programmes en format 3.3.

La deuxième est d'exécuter "Woz's Update 16" qui, grâce à une astuce, permet de booter directement une disquette 3.2 avec les PROM 3.3. Cependant, cet utilitaire est d'utilisation délicate car il modifie l'implantation du DOS sur les trois premières pistes de la disquette

La dernière solution consiste à échanger sur le contrôleur les PROM P5-P6 et P5A-P6A chaque fois que vous voulez changer de DOS. Cette solution vous a certainement fait sourire, tant elle parait longue et peu souple ! [...]  »

p.55 Déplacement du programme en assembleur

[auteur : Jean-François Duvivier] #Programme #Assembleur #Programmation

Extrait : «  Avez-vous déjà entendu parler de la ROM Programmer's Aid £1, fournie avec la carte Integer ? Il s'agit d'une ROM mise en $D000-$D800, zone laissée libre par l'Integer.

Elle rassemble un certain nombre d'utilitaires écrits en assembleur : graphique haute résolution, APPEND, renumérotation, test RAM, vérification cassette et surtout une routine RELOCATE qui m'a mis l'eau à la bouche dès que je l'ai aperçue. Voilà en effet le programme que je cherchais depuis plusieurs mois pour déplacer très facilement n'importe quel programme en assembleur.

En effet, la commande du moniteur MOVE permet de déplacer de l'assembleur mais ne change pas les adresses des JSR et des JMP rencontrés lorsqu'ils renvoient à l'intérieur du programme. Il faut donc remettre à jour le programme après le MOVE, ce qui se révèle un exercice redoutable pour les nerfs lorsque l'encombrement du programme se chiffre en kilo-octets ! [...]  »

p.59 Changez votre poignée de jeu

[auteur : Gilles Mauffrey] #Programme #Assembleur #Programmation

Extrait : «  Tous les jeux n'utilisant qu'une seule poignée de jeu mettent à contribution la poignée 0. Cette poignée s'use donc beaucoup plus vite que la poignée 1 moins sollicitée ; il peut par conséquent s'avérer utile de mettre certains jeux sur la poignée 1, ou de disposer pour chaque jeu d'une version sur chaque poignée.

Il suffit pour réaliser ce transfert d'explorer systématiquement tout le programme assembleur, mais ce travail est fastidieux et mieux vaut le confier à un programme. Ma première idée fut d'écrire un programme d'exploration systématique du jeu en BASIC; malheureusement tous les jeux binaires que je possède utilisent directement les adresses du BASIC.

Il fallait donc écrire le programme en assembleur. Ne possédant pas d'assembleur au moment de la rédaction de cet article, j'ai directement écrit le programme en hexadécimal en commençant à l'adresse hexa $8000, supérieure aux adresses utilisées habituellement par les jeux. Le lecteur pourra déplacer ce programme, en prenant la précaution de modifier tous les JMP, JSR et les LDA concernés [...]  »

p.62 Programmer en Pascal?

[auteur : Christian Colmant] #Pascal #Livre

Extrait : «  On parle beaucoup du Pascal, mais on le voit peu. On voudrait bien s'y essayer, mais on redoute un peu cette nouvelle expérience. Faut-il ou ne faut-il pas programmer en Pascal ? La réponse à cette question est une autre question : "Que voulez-vous programmer en Pascal ?". Et c'est à partir de ce moment là que l'on peut commencer à discuter. Alors, allons-y !

Si vous achetez un livre sur Pascal, qu'il soit en Français ou en Anglais, toutes les préfaces vous diront que c'est Niklaus WIRTH, de l'Université de Zurich, qui dès 1965 proposait un langage devant étendre le domaine de l'ALGOL au delà des calculs algébriques et numériques. En 1968, le Professeur WIRTH écrivit, en FORTRAN sur CDC 6000, un premier compilateur ayant pour base l'ALGOL 60, qu'il baptisa Pascal, en mémoire du philosophe et mathématicien du 17ème siècle [...]  »

p.8 p.47 p.54 p.65 Trucs, astuces et informations