Text content (OCR)
La revue francophone indépendante pour les utilisateurs- des :
Apple I+, He, Hoeg IIc, ues et Macintosh™
EP rincon
atti
UltraMacros
Version frangaise Pom’s
sini
Apple Expo 88
Le monde se rejoint
ala Villette.
Cette année, le succes d’Apple Avec 150 exposants : parte-
dans l’entreprise devrait ajouter naires @Apple, créateurs
a Apple Expo une saveur toute et éditeurs de logiciels,
constructeurs de périphériques.
organismes de formation
et éditeurs de presse. Mais aussi
des conférences, et bien stir
» la«Ville Apple».
~ Pour que demain som
vraiment un autre jour
De plus en plus de
particuliére. Le monde du travail
rejoint en effet celui des
passionnés. Et chacun se
retrouve sur une idée : c'est avec
des machines puissantes,
mais simples d’accés,
que l'on donnera
al'Homme les
= moyens d’exprimer | performances?
= le meilleur de y Certes, mais qui
: lui-méme, vy permettent a chacun
> les ressources de développer sa
= ATintéricur. propre richesse. \
= Et cest ainsi Et a, tout le mon-
= tout un point de vue de peut se rejoindre.
= sur la productivité qui Out
s‘impose dans la Grande a
3 Halle de la Villette.
Apple
Du mercredi 28 septembre au samedi I" octobre. De 10 4 19 h. Métro Porte de Pantin. La Grande Halle, la Villette.
Pour le calendrier des conférences ou ('Y"" ZIT ==" d'autres informations : 3614 code: APPLE.
i oe ee
Numéro 38
septembre-octobre 1988
AW sur 2 colonnes
I A.-P. Gaspar
G8
Editorial
Hervé Thiriez
Me ‘
77
= t Live | Page 37
3 Page7
Interview :
Randy Brandt Page 8
Ensoniq 2 Marc Bavant
Travaux pratiques (2)
Page 11
AppleWorks new
look, suite — Eric Weyland
“le [Iss]
Hc Page 39
C=)
Les disquettes ‘Polices’
Ics
| He}
——II | Hc
Ee) ES) [eee Peete
Da.Mover
sas Page 17
Frédéric Rozay — &
=) =e
PR#6 Jean-Luc Bazanegue
ce S Page 41
Ratievey i
Puzzle Mare Girati
eS Ss Bocas
as) Ee) age
Macintosh : les news
[Fou] [fan] Ariel Sebban Page 50
camer iz)
Les TimeOut en VF
Dimitri Geystor
Ics
Le
La disquette Mac 38 Page 52
es) eae) (aaeee Page 23
Le calcul des Premiers
Prime.Factor
Pascal Cantot
We EI
es) Gag Page 27
Apple // for ever
Jean-Yves Bourdin
[we
ee Le Page 53
Applesoft & Dimitri
AppleWorks Geystor
He Iss Fe
a
Page 31
Courrier des Lecteurs
Page 66
Sommaire des Pom’s
Page 68
GC Petites annonces
Mots croisés page 74
Les annonceurs ; Apple : p 2 ; Bréjoux A.E. : p 55 ; P. Carlier : p13 ; Logma S.A. : p 73 ; Ubi Soft : p 6
Editions MEV - 12, rue d'Anjou - 78000 Versailles. Tél. : (1) 39 51 24 43. Directeur de la publication : Hervé Thiriez
Imprimé en France. No d’impression 784509 — Dépét légal : septembre 1988.
Pom’s n° 38
Certaines
nuits ne
portent pas
conseil...
Lorsqu'an petit matin demeure, il reste la camee Joker. Bile donne un accés
privilégié & notre Ho * sléphonique. Gratuite, la a accompagne chaque
abonnement ; un no ut pour les programmes Ponts
ProDos/D0S UTILITIES =
( A
Noftivian
72.
Single
Copy iL 7.1 |
| Macintosh
_* Copic de sauvegarde de la plupart
__ des logiciels
se Copie de la plupart des logiciels sur
disque dur
‘ Récupération de disques _endom-
ages” |
* Récupération de fichiers effaces
_ méme sur disque dur
Copy Il est livré avec MacTools
|__ Copy II Mac 7.1, MacTools,
avec documentation francaise : 500,00 F TTC
Abonnés (carte Joker) : 450,00 F TTC
Port : 20,00 F
MANUELS EN FRANCAIS
Copy II Plus 8.3
Apple //
* Utilitaire complet pour la gestion des
disques et fichiers DOS/ProDOS, y
compris conversion automatique
* Utilisation de toute la mémoire dis-
______ponible (un 800Ko en une passe par
* Récupération de fichiers effacés
° Formatage de disques
* Classement alphabétique des fichiers
* Sauvegarde de la plupart des
logiciels...
Copy II Plus 8.3 sur disquette 5,25” ct 3,5”,
avec documentation francaise : 500,00 F TTC
Abonnés (carte Joker) : 450,00 FTTC
Port : 20,00 F
Maclools a
Editions MEV/Pom's — 12, rue d°Anjou — 78000 Versailles.
(1) 39 51 24 43, Commande par Minitel au (1) 39 53 04 40
UN CHALLENGE DE HAUT NIVEAU
Du fait de son ouverture sur les marchés extérieurs
et de son expansion internationale, UBI SOFT recherche:
- DES PROGRAMMEURS EXCEPTIONNELS
en C, Assembleur et Turbo Pascal
* ayant déja réalisé leur programme et voulant 6tre édités ;
* pouvant assurer la conversion de logiciels sur différents formats ;
* voulant voir leur programme distribué dans tous les pays du monde.
- DES GRAPHISTES DE TALENT
| * qui pensent pouvoir égaler et méme surpasser les graphismes de
| Zombi, Iron Lord ou Rocket Ranger ;
* qui ont une imagination débordante.
| - DES MUSICIENS DE GENIE
* qui ont envie de mettre leur talent au service de la création ;
* pour qui la musique sur micro-ordinateur n'a plus de secret.
| VOUS TRAVAILLEZ
sur Macintosh, Apple I, Apple II GS,
et vous étes passionnés par ces machines
ou vous connaissez l’Amstrad, le PC, M.S._X., Spectrum,
Commodore 64, ST, Amiga, Nintendo, M.S.X. II.
Un futur plein d'avenir peut s’ouvrir a vous.
Aujourd’hui, téléphonez ou écrivez a UBI SOFT.
Demain vous serez peut-étre choisis pour faire partie d'une équipe de gagnants.
NOM ee ave Prénom ...-
AGNOSSG sinc cesaeteacensanesderaicatere nec ereemen ember tren wiGe Ske santas ose vteaee
Te Tél. .
LAN GAG OF cine. naxtnmmuanenccenenpetes MACHINO Nera crxrecoenncimeaaraawtinaes
Aretourner a UBI SOFT / christine QUEMARD
1, voie Félix Eboué - 94021 CRETEIL CEDEX - Tél. (1) 48 98 99 00
Ont collaboré & ce numéro
Marc Bavant — Jean-Luc Bazanegue
Jean-Yves Bourdin - Pascal Cantot
A.-P. Gaspar - Dimitri Geystor
Mare Girati - Olivier Herz
Gérard Michel - Christian Piard
Joélle Piard - Frédéric Rozay
Hervé Thiriez - Eric Weyland
Directeur de la publication
rédacteur en chef
Hervé Thiriez
Rédacteurs
Jean-Luc Bazanegue - Christian Piard
Siege social
Editions MEV — 12, rue d’Anjou
78000 Versailles — @ (1) 39 51 24 43.
Serveur Minitel (1) 35 53 04 40
Publicité
Editions MEV
Diffusion
N.M.P.P.
Impression
Berger-Levrault
18, rue des Glacis
54000 Nancy
83.35.6144
Photos
CP & JLB
Photogravure
Graphotec
21, chemin de la ‘Tour
92350 Le Plessis-Robinson
® (1) 46 30 44 49
Pom’s est une revue indépendante non
rattachée 4 Apple Computer, Inc. ni
a Apple Computer France S.A.R.L.
Apple. le logo Apple, Mac et le
logo Macintosh sont des
‘marques déposées
d’Apple Computer, Inc.
TBM est une marque déposée de International
Business Machine.
PC et AT sont des marques déposées
de la Société IBM.
ditions MEV 1988
Toute reproduction intégrale ou partielle,
Editorial
L'événement TimeOut
Ce n'est pas une nouveauté,
c'est véritablementl'événement
de cette rentrée pour le monde
Apple//.In'y avait pas d'espoir
de voir adapté 4 notre
AppleWorks 1.4 le formidable
potentiel des TimeOut : comme
nous le disions dans le précédent numéro, nous avons choisi de
retrousser nos manches parce que, pour Pom’s, la diffusion de logiciels
essentiels n'est pas comprise comme une simple affaire d'achat/vente.
Nous vous proposons aujourd'hui les premiers fruits de ce travail
d'équipe qui nous a conduit des négociations préalables avec les
détenteurs de droits américains jusqu'a ces quatre premiers TimeOut,
travail de modification et d'adaptation des softs, de francisation des
écrans, de traduction des manuels.
De nouveaux fruits, de nouvelles surprises dans les prochains _
numéros. Bientét, dans ces colonnes, l'art et la maniére d'écrire soi-
méme son application TimeOut avec exemple et sources,
Virus
Pom’s ne tombe pas dans la viromania médiatique mais lorsque l'un
des plus grands éditeurs de softs pour Macintosh constate in extremis
que des disquettes a diffuser ne sont pas saines... De facon accessoire,
nous vous offrons sur la disquette de ce numéro six outils Mac qui
protégent contre les effets de ces routines malignes.
Comme d'une vaccination ou d'un médicament, n'en attendez pas une
universalité ; de nouveaux virus mutants et résistants guettent !
Apple Expo
Notre rendez-vous annuel vous permettra cette année de rencontrer
quelques auteurs de larevue (voir page 67). Vous étes auteurs ou futurs
auteurs ? Ne manquez pas de vous présenter et de nous parler de vos
projets : c'est par l'écoute attentive de ses lecteurs que Pom’s évolue de
effectuée par quelque procédé que ce soit, sans numéro en numéro.
Yaccord écrit d'Editions MEV, constitue une
contrefacon,
Loi du 11 mars 1957, articles 425 et suivants
du Code Pénal.
Droits de traduction, de reproduction ct
d'adaptation réservés pour tous pays.
Hervé Thiriez
Pom’s n° 38 Th
oe eererel:=[_ia&asS_—F__—a—K«—F—F—<—E—GCxzeseeeeeeeeeee ee eer
A gauche Randy Brandt accompagné de B. Lissner, auteur d' AppleWorks
Le nom de Randy
Brandt, des Beagle
Brothers, est déja bien
connu de nos Iecteurs.
A l'occasion de la
sortie des premiéres
applications TimeOut
en version frangaise,
Pom’s lui a posé,
péle-méle, quelques
questions sur son
travail, ses projets, le
métier de program-
meur, les copies-
pirates, l'avenir des
Apple //, etc.
Pom’s — Avez-vous déja écrit de
nombreux programmes, et lesquels ?
Randy Brandt — Je vous en donne
une liste dans l'ordre chronologique :
Big-U, MacroWorks, SuperMacro-
Works, PathFinder, TimeOut
UltraMacros, PatchMania, TimeOut
MacroTools et TimeOut PowerPack
Mais j'ai aussi contribué aux disques
suivants : Extra K, ProByter,
Minipix, Late Nite Patches, TimeOut
DeskTools II et TimeOut SpreadTool.
Pom’s— De tous ceux-ci, en est-il
un dont vous étes particuliérement
fier?
Randy Brandt — C'est sans doute
TimeOut UltraMacros ; j'ai réussi, en
trés peu de place, a installer un arsenal
de commandes d'une puissance
étonnante, assorti cn méme temps
d'une trés grande souplesse d'emploi
pour l'utilisateur. Et j'avoue avoir
aussi un faible pour PathFinder ; il
fonctionnait deux jours aprés que j'en
ai eu l'idée...
Pom’s —Nos lecteurs de Pom's
aimeraient en savoir un peu plus sur
vous. Est-il indiscret de vous
demander de vous présenter ?
Randy Brandt — Je suis né au
Canada, en 1960. Plus précisément au
Manitoba — la neige et les grands
espaces. Et puis, & l'age de 19 ans, je
me suis transporté loin vers le sud :
en Californic, & plus de 3 000
kilométrs. J'y ai suivi des études
universitaires au Christian Heritage
College, avec comme option
principale... la biologie. C'est la que
j'ai renconué ma femme Joanna, c'est
1A aussi que j'ai commencé &
programmer sur un Apple TI+. Tl n'y
avail pas, je précise, de cours de
Programmation dans mon
établissement (j'ai d'ailleurs terminé
avec un dipléme de littérature
anglaise) ; j'ai appris en autodidacte,
en piochant dans Nibble et
Call-Apple.
Unc fois mes diplémes en poche, j'ai
€pousé Joanna et me suis établi aux
Etats-Unis. Deux ans plus tard (en
1985), les Beagle Bros m'ont engagé
pour travailler 4 la documentation
Interview:
Brandt
dExtra K et de ProByter. Cette méme
année j'ai écrit Big-U (un utilitaire
sous ProDos), puis vinrent les droits
d'auteur de MacroWorks, C'est depuis
cette Epoque que, ma foi, la vie me
sourit.
Pom’s — C'est-a-dire ? Estimez-
vous mieux gagner votre vie que,
mettons, un médecin, un journaliste,
un avocat ? Et pour y arriver, combien
d’heures travaillez- vous au total par
semaine ?
Randy Brandt — Un programmeur
peut bien gagner sa vie 4 condition
d'avoir sorti un ‘best seller’, ou méme
plusieurs. Soyons francs : peu d’entre
nous y parviennent. Mes
‘améliorations’ a AppleWorks ont été
d'un excellent rapport, mais de 1a &
dire que je réussis aussi bien qu'un
avocat ou un médecin... Ma femme ct
moi avons des gojfits modestes ; nous
sommes heureux dans notre petite
maison : nous avons notre chambre,
nos deux petites filles (Heather — 3
ans — et Erica — 1 an —) ont la
leur, et... mes ordinateurs occupent la
troisiéme. Nous nous estimons
privilégiés d'avoir nowe maison, mais
nous la payons 4 tempérament,
comme tout le monde.
Je travaille environ 60 heures par
semaine. Je commence rarement avant
9h30 du matin, et je continue en
général au-dela de minuit. Comme je
fais des pauses pour langer Erica, ma
femme ne me tient pas trop rigueur
Pom’s n° 38
des couchers tardifs. De toutes fagons,
elle m’a toujours sous la main !
Le vendredi est le jour des Beagle
Bros : nous nous retrouvons tous au
“bureau’, autour d'un lunch de travail :
Je fondateur des Beagle Bert Kersey, le
président de la société Mark
Simonsen, les programmeurs Alan
Bird, Rob Renstrom, Dan Verkade, et
moi-méme. Nous échangeons des
idées, montrons nos derniéres
‘ceuvres’ ; mais la discussion est tout
aussi animée qu'il s'agisse
dordinateurs, de sport, de politique ou
de n'importe quel autre sujet.
Le dimanche est consacré au culte
(église Evangélique protestante), aux
amis et la détente. Il m'arrive
parfois, les dimanches aprés-midi, de
faire mon courrier pendant que les
‘dames de la maison’ font la sieste.
Toutefois, j'essaie de m'astreindre,
autant que possible, 4 accorder aussi 4
mes ordinateurs leur repos dominical.
Mais comme la programmation est un
exercice plus mental que physique, je
narrive jamais a y échapper
totalement. Il faut croire que ga
“travaille dans ma téte’ méme quand je
dors, car il m’arrive de me coucher
apres avoir vainement tenté de
résoudre un probléme, et d'aller droit &
Ja solution le lendemain matin.
Pom’s — Et les loisirs ?
Randy Brandt — Une fois les
ordinateurs éteints ? Il ne leur reste
pas beaucoup de place. Par contre, j'ai
une télé dans mon bureau, et j'aime
bien suivre les sports tout en
programmant. J'aime aussi la lecture
(fiction et réalité), m'instruire en
matiére politique et religieuse, jouer
aux échecs, au baskct ct autres sports.
J'adore aussi jouer avec mes deux
petites filles,
Pom’s— Quels conseils donneriez-
vous a un jeune qui réve de devenir le
Randy Brandt de I'an 2010?
Randy Brandt — Si un écolier me
demandait comment on devient un
programmeur (qui réussit !), je lui
conseillerais, avant toute chose, de
Suivre des cours de dactylographie, de
géométrie et de maths. Tout logiciel
représente un ensemble de problémes
conceptuels et logiques : des
connaissances d’algébre et de
géométrie sont particulitrement utiles.
De plus, on ne programme pas bien si
l'on ne sait pas bicn taper a la
machine : il faut donc absolument en
Passer par 1a.
Bien que je ne pratique que le Basic et
l'Assembleur, je recommanderais aux
programmeurs A venir d'apprendre le
langage C. C'est Ie langage du futur,
et je compte d'ailleurs m'y mettre
moi-méme. Mes amis Mark, Alan et
Rob ont tous les trois appris la
programmation a l'université, et ¢a
leur donne un avantage sur moi.
Quant a moi, j'ai appris la
programmation sur le peu de temps de
libre que me laissaient mes autres
études, I'activisme étudiant (nous
appelons cela ‘Student government’),
les articles que j'écrivais dans le
journal universitaire, etc., etc. Bref, je
me suis formé en lisant des revues. Si
c'est votre voie, épluchez tous les
programmes de Pom’s : il ne suffit
pas de les recopier, il faut s'en
imprégner si vous voulez programmer
& votre tour.
Enfin, il faut que programmer soit
pour vous un PLAISIR. Sinon,
n'insistez pas, allez chercher fortune
ailleurs. A ma connaissance, tous les
programmeurs qui ont réussi adorent
leur métier. J'aime a dire en boutade
que je n'ai pas de métier, juste un
violon d'Ingres & plein temps !
Pom's — Revenons aux Beagle.
Pour le moment, l'essentiel de leur
production — nous voulons parler de
la nouvelle série TimeOut — se situe
dans le sillage d'AppleWorks. Ne
craignez-vous pas de mettre ‘tous vos
ceufs dans le méme panier’ ? Bientét,
Claris va sortir le nouvel AppleWorks
GS. N’allez-vous pas étre débordés ?
Randy Brandt — Non, pas du tout.
AppleWorks GS sera trés Ient par
rapport a AppleWorks, et fort
gourmand en mémoire (1,25 Méga
pour Ie moins). Il ne devrait pas ‘faire
de l'ombre’ a la série TimeOut.
Beaucoup de ceux qui posstdent un
GS hésitcront a sortir quelques
centaines de dollars — ou milliers de
francs — uniquement pour faire
tourner un programme affligé d'une
interface graphique poussive.
Dvailleurs méme les //c et //e
continuent & bien se vendre (du moins
aux Etats-Unis), et il y aun grand
nombre d'utilisateurs d'AppleWorks
qui ne sont pas encore passés
TimeOut, et qui y viendront.
Je prédis, personnellement, que la
majorité de ceux qui achéteront
l'AppleWorks GS continucront a faire
Yessentiel de leur travail avec
AppleWorks et TimeOut, et ne
passeront a I'AppleWorks GS que
pour des applications spéciales, pour
des mises en page élaborées par
exemple. Il est bon que Claris ait pris
une initiative favorable a l'Apple //, et
je m’en réjouis ; mais pour abattre du
boulot, vite fait bien fait, le bon vieil
AppleWorks est loin d'avoir dit son
dernicr mot. D'ailleurs, a l'AppleFest
du mois de mai dernier, tant Bob
Lissner (l'auteur d'AppleWorks) que
Claris (son distributeur) ont annoncé
une mise a jour de la demiére version
(anglaise) d'AppleWorks.
Pom’s — Programmez-vous seul, ou
en équipe ? Comment coordonnez-
vous votre travail ?
Randy Brandt — Tous les
programmeurs de chez Beagle
travaillent généralement seuls, dans la
mesure oi ils ne mettent pas leurs
fichiers-sources en commun, Mais on
peut dire aussi qu'ils travaillent en
€quipe car ils essaient mutuellement
leurs programmes, se font des
suggestions, ou méme échangent des
idécs & développer. Je vous ai déja
parlé de nos réunions du vendredi :
C'est au cours de ces lunchs que nait
I'émulation. Nous sommes, cn
quelque sorte, une grande famille : nos
€pouses et nos enfants se connaissent,
et nous fétons ensemble nos divers
anniversaires, en toute amitié. Il n'y a
pas de cloison étanche entre le travail
et le reste de l'existence. Nos ages ?
En moyenne, autour de trente, un peu
moins peut-€tre. Matt Reimer est
l'exception : il avait 16 ans quand il a
commencé chez les Beagle Bros, ilen
a 19 aujourd'hui.
Mait a travaillé sur les ‘Beagle
Screens’. Il écrit actuellement un
programme de dessin pour TIGS
nommé ‘MiniPaint’, qui sera distribué
par JEM SoftWare dés I'hiver prochain
pour un prix de 25 dollars. Il en
sortira une version plus puissante d'ici
une année sans doute, qui sera publié
Pom’s n° 38
2)
10
cette fois par Ics Beagle Bros. J'ai fait
Ja connaissance de Matt alors que je
faisais un remplacement en tant que
prof de chimie a son école, a I'époque
oii il faisait ses premitres armes chez
les Beagle Bros. Etc’est pas hasard
que nous avons découvert que nos
grands-péres avaient 616 de bons amis,
il y a 50 ans, au Canada !
Pom’s — Quels sont vos langages
de programmation favoris ? Quels
outils de programmation utilisez-
vous ? Sur quelle(s) machine(s) ?
Randy Brandt — Je n’écris qu'en
assembleur 6502, a l'exception des
programmes d'installation qui sont en
Basic Applesoft. Pardon, j'utilise
aussi un troisiéme langage de
programmation : c'est UltraMacros sur
AppleWorks !
Tout récemment, je suis passé au
Macintosh Programmer's Workshop
sur Macintosh SE, et 4 son
assembleur IIGS. Vu sa puissance, je
crois que je finirai par I'utiliser pour
tout mon travail futur. Mais la totalité
de mes programmes actuels ont été
écrits avec Merlin Pro, d'abord sur un
/ic, puis sur un IGS.
Voici une liste de mon matériel :
* Un Apple IIGS avec 1,75 Mégas
(GS RAM d'Applicd Engineering)
* 1 carte RamFactor (1 Méga) avec
batterie autonome (Merlin,
AppleWorks, ctc.)
* 1 lecteur 3,5"
* 1 lecteur 5"1/4
+ 1 modem 1200 bauds
* 1 écran //e vert Apple //e (pour la
programmation)
+ 1 cran couleur IIGS (pour épater
les amis, et pour les logiciels
scolaires “Sticky Bear” de ma fille
Heather)
* 1 imprimante ImageWriter II
+ 1 Apple //c
+ 1 Macintosh SE avec disque dur
interne 20 Méga.
(Mes amis Roger et ‘Tina Wunker, qui
font toutes les expéditions des
logiciels JEM Software, gérent la liste
des clients avec le //c et la Base de
données d'AppleWorks).
Jusqu'a préscnt, je n'ai employé que
Word de MicroSoft, et I'MPW sur le
AppleWorks sur le IIGS. Je réserve
Word a des travaux spéciaux, que je
souhaite imprimer sur la LaserWriter
des Beagle. Nous faisons aussi la mise
en page de nos manuels avec Word,
bien qu'ils soient d'abord écrits sur
AppleWorks, puis transférés sur Mac.
Pom’s— Vous avez toujours eu
pour politique (comme Pom' s) de
vendre des programmes non protégés,
malgré le risque de les voir piratés. Et
pourtant, malgré (ou a cause de ?) leur
prix trés raisonnable, ils continuent a
bien se vendre. Qu‘avez-vous a dire a
ce propos ?
Randy Brandt — Ce n’est pas une
‘protection’ qui découragera les
déplombeurs ; je dirai méme qui'ils y
voicnt un défi. A mon avis, face 4 un
bon logiciel non protégé, a un prix
abordable, une personne honnéte reste
honnéte, alors que le pirate endurci n'y
trouve aucune stimulation. Quant au
“gagne-petit’ décidé a se procurer des
logiciels gratis, il y parvient de toutes
facons, protection ou pas. C'est
tegretlable, mais cela fait partie des
désagréments du métier. Il serait
injuste de vouloir imposer, pour une
protection illusoire, des désagréments
la majorité des acheteurs honnétes. Il
est trés difficile, pour ne pas dire
impossible, d'utiliser des disques
RAM et des disques durs avec des
logiciels protégés. Notre politique a
toujours été de proposer des logiciels
d'accés simple et convivial, et notre
clientéle nous en sait gré.
Pom’s — Cette clientéle vous
écrit-elle beaucoup ? Comment
arrivez-vous @ lui répondre et @
Programmer quand-méme ?
Randy Brandt — Oui, le courrier ne
manque pas : je lui consacre plusieurs
heures par semaine ! UltraMacros
m'apporte des consolations : la
correspondance me prend du temps,
mais m'améne souvent de bonnes
idées. Je crois que mes correspondants
apprécient mes propres suggestions &
leurs questions
Pom’s— Et Apple, dans tout ga ?
Que pensez-vous du IIGS ? Quand ona
Randy Brandt — L'avenir du IIGS
se présente bien. II est de plus en plus
question d'un modélc amélioré, plus
rapide, avec une meilleure résolution
verticale et d'autres ‘plus’. Les
premiéres innovations ne viendront
peut-étre pas d'Apple. Déja, des
sociétés comme Applied Engineering
travaillent sur des accélérateurs et des
cartes mémoire perfectionnées.
Apple soutient la famille des Apple //
(du moins aux U.S.A.) en proposant
un //c équipé d'un lecteur interne 3,5".
Si Apple pensait que la famille des //
était morte et enterréc, il ne se
donnerait pas la peine de sortir un
nouveau //c.
Vu le nombre d'Apple // couramment
utilisés dans le monde, je crois que
méme si Apple arrétait d'en fabriquer,
ils auraient encore un bel avenir
devant eux. Connaissez-vous une autre
machine qui compte un tel nombre
d'utilisateurs dévoués ? Il appartient &
des publications comme Pom’s,
Nibble, Open Apple et d'autres de faire
circuler l'information, maintenir un
lien entre les membres de cette
immense communauté, de ne pas
laisser s'étcindre I'enthousiasme.
Quant a moi, j'ai été hcurcux de cette
occasion de partager un peu de mon
univers personnel avec les lecteurs de
Pom’s. J'applaudis aux efforts de votre
revue qui a su garder a l'Apple // une
place de choix dans un pays quelque
peu saisi par la ‘fiévre de Mac’, et je
vous envoie & tous un trés amical
salut!
2oass CS
Disquettes DPA 147
Vous trouverez la
description de nos
sept premiéres
disquettes Apple //
Shareware dans le
numéro 37 de Pom’s
ou sur notre serveur
Mac. un /le, faut-il le vendre, ou le mettre a Minitel au:
Pour gérer toutes mes fiches, faire niveau ? Quel est l'avenir de l’Apple //
mon courrier, etc. j'emploie en général ? (1) 39 53 04 40.
Pom’s n° 38
iene rte Le ee
Ensonig :
Marc Bavant
La premiére partie de
cet article, publiée dans
le numéro 37 de Pom’s,
nous a permis de faire
connaissance avec la
‘théorie’ de l'Ensoniq ;
passons donc mainte-
nant a la pratique...
Etalonnage
du convertisseur
Nous savons peu de choses sur ce
convertisseur sinon qu'il accepte des
tensions comprises entre 0 et 2,5 V.
Construisons-nous un petit programme
qui se charge d'interroger le
convertisseur et de stocker 256
résultats successifs.
1800:LDA £13
! STA CO3C
1 LDA £82
! STA CO3E
1 LDx £0
180C:LDA CO3D
1 pec 0 ; histoire de passer §
cycles
! DEC
0
0
0
DEC 0
DEC 0
2
000,x
!
!
!
!
! INX
! BNE 80c
!
*
Pour fonctionner comme souhaité, ce
programme doit étre lancé en vitesse
lente (sélectionnez vitesse normale
dans le tableau de bord, revenez sous
Basic et faites un Reset pour étre plus
stir). En vitesse rapide, il faudrait
ajouter des délais pour atteindre les 32
microsecondes indispensables (faites-le
A titre d'exercice).
Vérifier 4 l'aide d'un voltmétre que le
circuit ne délivre aucune tension entre
les broches 1 ct 2 (si c'était lc cas,
vous vous seriez trompé de broches !)
ct court-circuitez-les. La valeur trouvée
par le convertisseur est alors 0. Si
vous vous en sentez capables, bricolez
une alimentation variable avec une pile
et un potentiométre. Reliez la masse
au péle moins de la pile et appliquez
prudemment et successivement des
tensions de 0 a 2,5 V de manitre a
étalonner le convertisseur. Pour ma
part, aux erreurs de mesure prés je
trouve :
tension (V) valeur numérique
BE
D2
Ee
2.4 Fc
Ces résultats montrent de maniére
flagrante que le convertisscur cst
linéaire sur la totalité de son domaine,
avec une pemte constante d’environ
110/V.
Cette gamme de tensions admissibles
va nous poser un petit probléme car la
plupart des équipements de
reproduction musicale (postes de radio,
magnétophones...) fournissent un
signal de valeur moyenne nulle, signal
qu'il faudra donc polariser autour de 1,2
V si on veut I'utiliser en entrée du
convertisseur. Et ceux qui fourniraient
éventuellement un signal polarisé n'ont
aucune raison d'avoir la tension
moyenne que nous recherchons. Un
simple couplage par condensateurs et
un pont diviscur tel que celui décrit
ci-aprés feront l'affaire dans tous les
cas.
Attention : Mesurez la tension
U avant de relier le DOC au
montage, U = polarisation
continue + signal et vérifier
Travaux pratiques
impérativement :
OU <K25V
Ce montage ne _ protige
absolument pas le DOC des
surtensions ni d'une erreur de polarité
dans le branchement de la pile. Si vous
ne savez pas distinguer le pOle ‘+
d'une pile de son péle ‘—’ réclamez des
dommages-intéréts au Ministére de
1'Education Nationale.
i Source sonore
ea
H
ibroche 2
i
i Ics
broche 1 i
i
C=2,2nF R2=3R1
R1=10KQ V=4,5a5Y
Adaptateur d'entrée
du convertisseur
analogique ™* numérique
Ecoute directe du
son numérisé et écrété
Ce paragraphe va certainement rappeler
des souvenirs 4 ceux qui avaient utilisé
l'entrée cassette de leur Apple ][+ ou
//e pour numériser des messages qu'on
pouvait lui faire restituer d'une voix
nasillarde, mais parfaitement intel-
ligible et naturelle, 4 tout moment. La
technique est ici la méme : on ne
regarde que le signe du signal d'cntréc
(par rapport a sa valeur moyenne) et on
actionne un déplacement de la
membrane du haut-parleur 4 chaque
changement de signe.
Pom’s n° 38
11
actionne un déplacement de la
membrane du haut-parleur 4 chaque
changement de signe.
1800:LDA £13
! STA cO3C
! LDA £E2
! STA CO3E
180A:LDX CO3D ; 4 cycles
JSR 830 512+ n*2 (n=
nombre de NOP)
1! 9XA 72
BOR 0 32
BPL 80A :3
STX 0
STA C030
BIT C061
BPL 80A
RIS
y haut-parleur
} bouton ou GB
1830 :NOP
1 NOP
! NOP
! NOP
! RTS
Une fois encore, les temps sont ajustés
pour un fonctionnement 4 1 MHz.
Testons tout cela. Choisissez une
station de radio, de préférence en
modulation de fréquence en raison de la
meilleure qualité du son, et au moment
des informations pour pouvoir évaluer
lintelligibilité. Récupérez le signal de
la prise casque, par exemple grace 4 un
jack monophonique avec un éventuel
adaptateur stéréo-mono, et enfin
injectez ce signal a l'entrée du montage
polarisatcur aprés avoir pris soin de
baisser le réglage de volume du poste.
Tlest prudent de garder un volumétre en
paralléle sur l'entrée du DOC pour
surveiller les tensions appliquées.
Lancez le programme ci-dessus, ajustez
le volume juste au-dessus du seuil
limite, ne lésinez pas sur les aigus et
appréciez la qualité de la parole écrétéc
c'est-A-dire, dans notre cas, numérisée
avec un seul bit par échantillon. Si
tout fonctionne correctement, la parole
doit étre clairement intelligible et
ressembler & ce qui peut sortir d'un
walkie-talkie, d'un poste CB ou autres
gadgets pas précisément renommés
pour leurs qualités musicales. Si ga ne
marche... pas cherchez l'erreur !
L'avantage de ce type de numérisation
est bien entendu la compacit¢ uu
codage qu'il est possible d'atteindre
(pour mémoire, les systtmes similaires
sur Apple // permettent de stocker une
petite dizaine de secondes de parole
dans 16Ko, mais cela dépend beaucoup
de la qualité du son). La fréquence
d'échantillonnage est toutefois un peu
faible sur le DOC pour ce genre de
technique (I'entrée cassette était mieux
adaptée aux échantillonnages rapides
sur un bit).
Quand vous en avez assez, frappez la
touche G ou faites reset.
Numérisation et
stockage du son
dans la RAM privative
L'expérience précédente nous aura
surtout permis de vérifier que notre
montage fonctionne correctement.
Nous allons maintenant préparer I'étape
suivante cn stockant Ics valeurs
numérisées dans la RAM privative du
DOC. On peut noter au passage qu'il
est dommage que le processeur soit
obligé d'intervenir pour cette opération
qu'on aimerait bien voir le DOC
effectuer seul. Le programme qui suit
est une copie du précédent légtrement
compliquée par la valse des registres.
*1800:LDA £00
! SYA CO3E
! STA CO3F
(acquérir Véchantillon précédent et
relancer la numérisution)
1808:LDA CO3E 54+ keycles
! PHA A
! LDA £13 52
! STA C03C i4+k
! LDA £E2 32
! STA CO3E i4ek
! LDxX c03D s4tk
! BNE @1C :3 (remplacer les
valeurs $00 par $01)
! INX 52-1
(insérer Uéchantillon dans la RAM
privative)
181C:LDA £73 12
! STA CO3C 44k
1 PLA +4
! STA CO3E s4tk
! sTX cO3D s4ek
(continuer jusqu’a 64 Ko échantillons)
! LDA CO3E s4+k
! BEQ 631 s3
! NOP $2-1
! IMP 834 33 (astuce pour
équilibrer les temps de cycle)
1831:LDA CO3F) =; 4-14k
1834:BNE 808 i3
! RTS
Lancez ce programme par 800G, le
prompteur du moniteur réapparaitra
aprés un court instant quand toute la
RAM privative aura été remplie.
Remarque : la valeur 0, qui
correspond a une tension
rigoureusement nulle, a la mauvaisc
propriété d'étre également un ordre
darrét pour les oscillateurs qui essaient
de la produire, d'od notre INX.
Remarque 2 : on a procédé A une
astuce pour éviler que la durée de la
période d'échantillonnage ne différe
selon la branche empruntée par le
programme aprés le test de début de
page. Ceci n'a sans doute pas grand
effet sur la qualité du son et présente
l'inconvénient d'allonger cette période
dans tous les cas.
Exercice 5.1 : on arrive @ une
période d'échantillonnage de 59 ou 60
cycles si je ne me wompe pas, ce qui
est un peu trop pour un
fonctionnement du microprocesseur a 1
MHz et pas assez en principe pour 2,8
MHz. Néanmoins, on verra que grace
au ralentissement dQ aux accts & la
mémoire lente, ce programme
fonctionne également en vitesse
“rapide”. En supposant que l'accés ala
mémoire lente se fait exactement a 1
MHz, calculez le nombre équivalent k
de cycles & 2,8 MHz “ajoutés” aux
instructions STore et LoaD. (réponse :
k=11 environ)
Exercice 5.2 : calculez la fréquence
d'échantillonnage correspondant a ce
programme tournant & 1 MHz,
Calculez le débit binaire moyen de
transfert dans la RAM des données
numérisées. Calculez le temps de
remplissage de la RAM.
Mesurez-le et comparez.
Exercice 5.3 : mesurez le temps de
remplissage pour l'horloge 4 2,8 MHz.
Déduisez-en la période et la fréquence
d'échantillonnage. Conclusion,
Nous pouvons lancer ce programme
mais, a ce stade, nous n'aurons pas
d'assurance sonore que tout s‘est bien
passé. Contentons-nous donc
d'observer une page de la RAM
privative et de vérifier qu'elle contient
Pom’s n° 38
des données plausibles.
“!
1840:LDX £0
! JSL FF40A8
1846:STA 2000,X
! USL FR40AF
! INK
! BNE 846
! RTS
!
* 840G 2000.20KF
; ReadRam
; ReadNxt
Remarque : comme nous exécutons
ce programme en mode 8 bits, l'octet
de poids fort du registre X n'est pas
positionné par nous, on observe donc
bien une page de la RAM mais on ne
sait pas laquelle a priori.
6. Les registres
d'oscillateur
Voici I'heure du plat de résistance ! Les
lecteurs pressés peuvent sauter
directement aux expériences mais il ne
comprendront pas tout. Il ne sera pas
question ici d'entrer dans tous les
détails, mais seulement d'essayer
d'éclairer la documentation dévelop-
peurs sans la paraphraser. La lecture
intégrale de cette documentation
(Ensoniq DOC ERS, 11 pages) n'est
pas nécessaire pour comprendre ce
chapitre, mais je la recommande
fortement a ceux que le sujet intéresse.
Généralités sur
les oscillateurs
Le DOC est un processeur synchronisé
grace a une horloge 4 7,14 MHz (je ne
garantis pas cette valeur sur laquelle la
documentation semble hésitante). Le
cycle de traitement interne du DOC est
8 fois plus long que le cycle d'horloge.
Pendant chaque cycle de traitement, le
DOC ‘donne la parole’ a un oscillateur,
par ordre de numéro croissant et jusqu'a
concurrence du nombre d'oscillateurs
autorisés (si quatre oscillateurs sont
autorisés, le DOC donnera
successivement la parole au 0, au 1, au
2, au 3, au 0, etc.). Il consacre ensuite
deux cycles au rafraichissement de la
RAM. La durée qui sépare deux
interrogations successives du méme
oscillateur dépend donc du nombre
d'oscillateurs autorisés. Par
commodité, on lui donnera le nom de
période d'échantillonnage du DOC (ne
pas confondre cet échantillonnage de
sortie avec l'échantillonnage de 32
microsecondes réalisé par le
convertisseur d'entrée !)
Chaque oscillateur est en fait un
générateur d'adresses, c’est-a-dire que
lorsque le DOC lui donne la parole, il
élabore une adresse de 16 bits a l'aide
des informations de commandes que
l'utilisateur a placées dans ses registres.
Vous aurez siirement deviné que cette
adresse désigne un octet de la RAM
privative du DOC et que c'est
justement cet octet-l4 qui va ensuite
passer dans le convertisseur
numérique-analogique qui conduit a la
broche 3 du connecteur.
La génération d'adresse
Enuons maintenant dans les détails de
la génération d'adresse. Tout d'abord,
notons que les calculs d'adresse se font
sur 24 bits. A chaque oscillateur est
associée une valeur courante sur 24
bits qui est mise a jour a chaque cycle
de traitement par addition d'un nombre
de 16 bits contenu dans les registres
dits de fréquence de cet oscillateur. Les
calculs se font dans I'accumulateur de
T'unité arithmétique du DOC. Ll faut
ensuite procéder a un savant mixage
pour obtenir l'adresse recherchée en
fonction du contenu de I'accumulateur.
Cela se fait a l'aide de trois
paramétres :
- larésolution ;
la page de début de la ‘table
d'onde’ ;
- lalongueur de la ‘table d’onde’.
On peut écrire symboliquement :
POUR CHAQUE OSCILLATEUR i ET A
CHAQUE CYCLE DE TRAITEMENT
FAIRE
ACCUMULATEUR = COURANT (i)
ACCUMULATEUR ~ ACCUMULATEUR
+ INCREMENT (i)
COURANT (i) = ACCUMULATEUR
ADRESSE (i) = F (ACCUMULATEUR,
RESOLUTION(i), DEBUT (i),
LONGUEUR (i))
PIN TRAITEMENT
Parallélement a I'explicitation de la
fonction F, nous développerons un
exemple numérique en prenant
ACCUMULATEUR = $04FF82. Le
paramétre de résolution nous permet
déja de nous débarrasscr de 8 bits
superflus dans I'accumulateur. On peut
garder les bits
de b23 ab8 : $04FP (résolution 7)
de b22ab7: $09FF (résolution 6)
etc.
de b16ab1: $7FA1 (résolution 0)
Vous voyez que dans tous les cas le bit
NUMERI
LOGICIEL DE CALCUL MENTAL
Comprenant 8 niveaux d'additions, 6 de soustractions, 6 de multiplications, 7 de
divisions, et des calculs algébriques avec parenthéses : 3000 opérations choisies
pour leur intérét pédagogique, s'adressant aux éléves de CM1, CM2, Géme et Séme.
Pour Apple //e (64Ko), Apple //c et Apple IIGS
Prix du logiciel avec sa copie de sauvegarde et sa notice d'emploi : 210 F TTC + 20 F de port
Envoyer ce bon et votre réglement a :
P. Carlier — 16, impasse du bureau — 75011 Paris
Pom’s n° 38
13
0 est sacrifié (le bit 1 aussi d'ailleurs a
cause de ce qui suit). Notez tout de
méme que l'accumulateur est
sauvegardé pour le cycle suivant, donc
le bit 0 n'est pas du tout inutile !
La ‘table d'onde’ (wavetable) est tout
simplement un segment de la mémoire
RAM privative auquel on veut
cantonner I'oscillateur. Autrement dit,
on ne I'autorise pas 4 générer des
adresses en dehors de ce segment. Pour
simplifier les calculs du DOC nous
sommes astreints 4 définir des tables
d'onde commencant impérativement en
début d'une page (c‘est-a-dire avec une
adresse divisible par $100) et dont la
longueur est un nombre entier de
pages, puissance de deux comprise
entre 1 et 128 (ce qui correspond a des
tailles de 2**8 4 2**15 octets). Noue
bonheur ne serait pas complet si on
n’ajoutait pas a cela une restriction
liant ces deux paramitres, 4 savoir que
le début d'une table d'onde doit avoir
une adresse multiple de sa longueur.
Illustration
un segment d'une page peut
commencer & n'importe quel début
de page ;
un segment de 16 pages ne peut
commencer qu'a une adresse de la
forme $n000 ;
un segment de 128 pages (alias 32
Ko) ne peut commencer qu'a
Tadresse $0000 ou $8000 ;
un segment de 2**L pages ne peut
commencer qu'a une adresse de la
forme d*2**(L+8), ot d <
2*#(8-L).
Plagons-nous dans le cas d'un segment
de 16 pages commengant en $A000 (et
finissant en $AFFF par conséquent) et
reprenons notre exemple. Avec la
résolution la plus fine RES=0, notre
adresse $04FF82 est devenue $7FA1.
Tl nous reste & extraire de ce nombre les
12 bits qui suffiront pour adresser un
octet déterminé au sein de la table
d'onde. Le DOC choisit les 12 bits de
poids fort (S7FAO -> $7FA) d'oi
l'adresse définitive $A7FA. De maniére
plus générale, si on considére un
segment de 2**L pages et une
résolution RES, l'adresse générée est
formée des 8-L premiers bits du
numéro de la premiére page et les 8+L
is
14
bits suivants sont extraits de
l'accumulateur entre les positions
16+RES et 9+RES-L (bornes
incluses). Tout ceci est illustré dans le
tableau de la page 11 de la
documentation développeurs, mais se
résume en une seule égalité qui
exprime l'adresse générée au k-itme
cycle de traitement :
ADRESSE(i) = (DEBUT(i) DIV 2**
(8+L))*2"*(8+L) + ((k*
INCREMENT()) MOD 24#
(8+L)) DIV 2**(9+RES-L))
Cette derniére égalité n'est donnée qu’'a
titre indicatif. Si elle vous rebute (ce
qui ne serait pas étonnant)
contentez-vous de comprendre
T'explication donnée ci-dessus.
Quelques formules
pour mieux saisir
On aura compris que la fréquence du
son issu du DOC est une fonction des
nombreux paramétres décrits ci-dessus.
Commengons par exprimer la fréquence
d'échantillonnage (inverse de la période
d'échantillonnage) désignée dans la
documentation par SR.
SR = CLK / (@*(0SC + 2))
ou l'on retrouve CLK la fréquence
d'horloge, 8 le nombre de cycles
d'horloge pour un cycle de traitement,
OSC le nombre d'oscillateurs autorisés
et 2 le nombre de cycles de
rafraichissement. On peut mettre ceci
en paralléle avec la fréquence
d'échantillonnage d'entrée :
SRin = CLK / 8476
oi l'on retrouve 26, le nombre de
cycles de waitements par numérisation.
Imaginons maintenant que nous
définissions unc table d'onde en RAM
contenant une période unique d'un
signal périodique quelconque. Nous
pouvons demander a un oscillateur de
parcourir cette table indéfiniment en
bouclant (croyez-moi sur parole pour le
moment). Le son produit sera donc
également périodique et de période
égale & la durée de parcours de cette
table (période du fondamental).
Calculons cette durée ; 4 chaque période
de traitement, l'oscillateur incrémente
T'adresse qu'il produit d'une quantité n :
n= FC / (2**(9+RES-L))
ot FC est l'incrément (contenu des
regisures dits de fréquence), RES est la
résolution et 2**L est la longueur de la
lable en pages.
La période du fondamental est donc :
T= nombre d'’échantillons lus /
fréquence de traitement
T= (nombre total / pas de lecture) /
SR
T= (2**(L+8)/n)/SR=
2**(17+RES) / (FC * SR)
Ce n'est pas un hasard si la longueur de
la table n'intervient plus dans cette
derniére formule c'est une
conséquence directe des mécanismes
compliqués de calcul d'adresse. C'est
méme vraisemblablement leur cause !
De cette maniére, vous avez le choix
du pas d'’échantillonnage de votre
signal : soit vous choisissez un pas
trés fin et alors vous aurez une table
d'onde trés longue, soit vous choisissez
un pas grossier et alors la méme
portion du méme signal tiendra dans
une ‘table d'onde’ plus courte. Si les
paramétres FC, RES et OSC sont
identiques dans les deux cas, vous
obtiendrez en sortie du DOC un signal
de méme fréquence mais de qualité
sonore peut-étre différente.
Les registres dits de commande
de fréquence $00-$1F et
$20-$3F (frequency
control, low and high)
Ceux de la premiére série contiennent
les bits de poids faible et ceux de la
seconde les bits de poids fort de
Tincrément ajouté 4 la valeur courante
des oscillateurs 4 chaque cycle de
traitement,
Exemple : $05 contient $40 et $25
contient $02 -> incrément de $240
pour l'oscillateur numéro 5
Les registres de volume
$40-$5F (volume)
En plus du volume général de la sortie
commandé par les 4 bits de poids faible
du registre $CO3C, on peut commander
individuellement et sur une échelle de 0
(mini) 4 255 (maxi) le volume de
sortie de chaque oscillateur. C'est cela
qui permet 4 la boite a outils d'offrir
des définitions d'enveloppe.
Les registres d'échantillon
$60-$7F (data sample)
Chaque registre contient la dernitre
Pom’s n° 38
es ee
valeur lue dans
Toscillateur concerné.
la RAM par
Les registres dits d'adresse
$80-$9F (adress pointer)
Chaque registre contient le numéro de
la premitre page de la ‘table d'onde’ a
laquelle l'oscillateur est rattaché.
Rappelons que la longueur de la table
d'onde détermine les bits significatifs
de ce registre.
Les registres de commande
$A0-$BF (control)
Chaque registre de cette série est
composé de plusieurs champs :
b7 a b4:
canal (ces bits seront présentés sur les
broches 4 47 du connecteur Molex &
chaque fois que I'oscillateur en question
sera actif),
b3:
autorisation de générer unc interruption
4 la fin de chaque cycle de parcours de
la table d'onde associée,
b2 a bl:
mode de fonctionnement (voir plus
bas),
bO:
arrét de l'oscillateur (spontané ou
commandé par forcage de ce bit),
rappelons que l'oscillateur s'arréte
spontanément s'il génére l'adresse d'une
mémoire de contenu 0.
Les modes de fonctionnement
(commandés par le bit 0) sont 00
(boucle infinic), 01 (une sculc
itération), 10 (un oscillateur commande
Je volume ou la durée de Ja boucle d'un
oscillateur de numéro adjacent), 11
(deux oscillateurs de numéros adjacents
prennent la main a tour de rile et
indéfiniment).
Les registres de longueur/
résolution $C0-$DF (waveform
table size/ resolution/ bank
select)
Chaque registre de cette série est
composé de plusieurs champs :
b7 a b6 : non utilisés sur IIGS
bs a b3 : paramétre L (2**L =
nombre de pages de la "table
donde")
b2 a bO : paramétre RES
Nous ne revenons pas sur Icur
signification.
Mise en pratique
Nous allons nous contenter de
déterminer par le raisonnement les
paramétres a utiliser pour que le DOC
nous ‘rejoue’ le contenu de la mémoire
que nous venons d'y insérer grace au
programme de numérisation.
Tout d'abord, on remarque qu'un seul
oscillateur ne peut pas parcourir les
64Ko d'un coup. On pourrait penser &
lui faire parcourir les 32 premiers Ko,
lui demander de générer une
interruption, traiter cette interruption
en modifiant ses registres pour lui faire
parcourir le reste de la RAM. C'est
faisable mais il existe une technique
beaucoup plus naturelle pour le DOC,
& savoir l'utilisation du mode relais
(swap mode, %11) qui permet
d'enchainer Ie fonctionnement de deux
oscillateurs sans aucune discontinuité.
Le premier oscillateur travaillera donc
sur les adresses $0000 4 $7FFF et le
second sur $8000 a SFFFF.
Remarque : ce mode nécessite que le
premier oscillateur soit de numéro pair
et que le second soit de numéro
immédiatement supérieur.
Nous voulons que la période
d'échantillonnage en sortie soit
identique 4 celle que nous avons
utilisée en entrée. En supposant que
Yon a échantillonné l'entrée avec la
fréquence maximale SRin, on obtient :
osc = 24
Nous voulons également qu'd chaque
période d'échantillonnage, l'adresse
produite augmente de n=1. Comme
L=7, il vient :
FC = 2**(2 + RES)
Nous pouvons donc choisir ces deux
demiers paramitres avec un degré de
liberté : RES=0 et FC=$0004 par
exemple. Le volume de chaque
oscillateur sera réglé 4 une valeur
identique, $FF par exemple.
4340 : El 2e (24 oscillateurs )
40 FF 41 FF (volume)
00 04 20 00 01 04 21 00 (fréqu)
80 00 81 80 (page de début )
CO 38 Cl 38 (longueurlrésolution)
AO 06 Al 07 (commande)
PF (fin des directives)
*320G (chargement des registres )
*300G 2000.20FF (relire et verifier)
Normalement, dés I'exécution de la
routine de chargement des registres
vous devriez entendre le contenu sonore
de la RAM privative répété sans
relache. Si cela vous convient, vous
pouvez continuer 4 travailler en
musique (un peu lancinant tout de
méme) ou arréter le DOC, soit par un
reset, soit par
*340 : AQ 01 Al O1 AO 01 Al O1
FF N 3206
La répétition de la séqucnce semble
nécessaire dans certains cas.
Remarque : en dépit des savants
calculs ci-dessus, la fréquence restituée
par le DOC est trop grande. Ceci est dit
au fail que nous avons supposé que la
fréquence d’échantillonnage est égale &
la fréquence maximum possible, ce qui
est approximatif dans le cas d'une
horloge & 2,8 MHz. et carrément faux
dans le cas de Il'horloge & 1 MHz.
Ajuster la fréquence par I'intermédiaire
des paramétres RES ou FC ne peut pas
suffire car la modification de l'un de ces
paramétres revient toujours 4 doubler
ou diviser par deux la fréquence du son.
On peut, en revanche, jouer sur le
nombre d'oscillateurs pour régler
finement la fréquence. Les paramétres
suivants sont satisfaisants :
2.8 MHz OSC=27 RES=0 FC=$0004
1 MHz OSC-22 RES-0 FC~$0002
Exercice 6.1 : calculez k (ralentis-
sement) en fonction des résultats
ci-dessus (résultat : k=10 environ).
Exercice 6.2 : essayez différentes
valeurs de RES et de FC satisfaisant 4
l'égalité FC = 2**(2 + RES).
Exercice 6.3 : utilisez quatre
oscillateurs (2 paires) en choisissant
leurs numéros assez éloignés pour
obtenir un léger décalage entre les deux
“voies’ (ex: 0-1 et 13-14). Vous
constaterez peut-étre un léger écho.
Comment produire un décalage plus
important ?
Exercice 6.4 : modifier la routine de
numérisation pour qu'elle boucle
indéfiniment sur elle méme (prévoir
quand méme une sortie par appui sur
) et lancer cette routine tandis que les
oscillateurs sont en fonctionnement.
Qu'obtient-on ? Observez les
conséquences du léger désajustement
des fréquences d'échantillonnage de
lecture et de numérisation, 4
Pom’s n° 38
Impression :
Nouvelles Domaine
disquettes
Public distribuées par Pom’s : des
polices de caractéres pour la
plupart issues du Macintosh,
conyertics pour I'Apple //.
Ces polices de caractéres, livrées sur disquettes
5,25' ou 3,5', sont utilisables avec des
programmes du type TimeOut SuperFonts,
Publish-It !, 816 Paint //e etc.
Les quelques exemples ci-contre ont été réalisés &
l'aide de TimeOut SuperFonts sur AppleWorks
1.4. A noter que SuperFonts pratique comme le
Macintosh : pour imprimer en 12 points par
exemple, il recherche en priorité la police 24
points et s'il la trouve, il la réduit & 12 points
gagnant ainsi en finesse. Une fois imprimé, il est
impossible de savoir si un Mac ou un Apple //
avec SuperFonts a travaillé...
POLICES 01 : 41 polices
Aba Dump 18 — Abbeydecco 14 28 — Aberdeen
12 24 — Akashi 12 — Alexis 24 — Alice 09 12
18 24 — Amslan 18 — Andover 12 — Apl 12 —
Apple I 18 — Arabic 24 — Ascii 12 — Asl
Finger 14 18 24 36 — Athens 18 — Austin 09
— Austin Econ 09 10 12 18 20 24 — Avant
Garde 10 12 14 18 24 — Babylon 09 18 —
Barnett 12 18 — Basel 24 48 — Berkeley 18
POLICES 02 : 33 polices
Beta Italic 18 24 36 48 — BlockBuster 36 —
Boise 09 18 — Bombay 12 24 — Book 36 —
Bookman 10 12 14 18 24 — Border 12 —
Boston 07 08 09 10 12 14 16 18 20 24 — Bouton
24 — Brenncro 12 24 — Broadway 24 —
Broadway E 14 18 — Bubbles 14
POLICES 03 : 35 polices
Bubbles 24 — Cairo 09 18 36 — Calligraphy 24
36 72 — Camelot 12 18 24 — Candy 24 —
CapCanaveral 09 — Carmel 12 18 24 — Cartoon
12 — Casey 12 24 — Cavanaugh 18 36 — Celtic
72 — Century 18 24 — Chicago Night 12 —
Chicago 12 18 24 — ChicMath 09 12 18 24 —
Chivalry 18 — Chugach 12 — Ciao 12 24
odOn% fe Bad de Uhadd Teh:
tUXbeliziopysestloisvenpbw
Portez ce bol de vieux whisky aux 257 juges qui
Porter ce bol de yieus whiahy «
Portez ce bol de vieux whisky a!
Portez ce bol de vieux whisky aux
Portez ce bol de v
Portes ce hol be vieux whisky aux 2
forsez ce bol de vieux whisky aux 257 juges qui:
Portez ce bol de vieux whisky aux 257 juge
Portez ce bol de vieux whisky au:
Portez ce bol de 1
Portez ce bol de vieun whisky aun 257 ju
porcez ce bol de vieux whisky «
Portez ce bol de vieux whisky aux 257 juges ¢
Portez ce bol de vieux wl
Portez ce bol de vieux whisky aux 257
I Portez oe a de vieux ree aux 25/ | juges qui fume
SPEEA 4
PenT:
16
|
Pom’s n° 38
Charger les accessoires :
F. Rozay
N'avez vous jamais eu
besoin d'un accessoire de
bureau (Classique ou
Nouveau) alors que
celui-ci ne se trouvait pas
sur la disquette de
démarrage. Votre disquette
systéme est-elle tellement
pleine que vous ne pouvez
pas y _ stocker vos
mini-applications (desk
accessories) favorites. Un
redémarrage de l'Apple
IIGs prend tellement de
temps que cela vous
rebute. Le but de ce
programme est de pallier
cet inconvénient' en
permettant de charger des
NDA et CDA (entendez par
la New Desk Accessories
et Classic Desk Accesso-
ries) sans que ceux-ci ne
soient sur la disquette de
démarrage.
“Movrr’
FONCTIONNE
sous PrRoDOS 16
sur Les Apple IIcs
Utilisation du
programme
Llutilisation de ce petit programme est
rendue trés simple par I'utilisation
d'une fenétre de dialogue ne
comportant que quatre boutons.
Les boutons Lecteur, Ouvrir, Fermer
ont leur rdle habituel, c'est-a-dire de
passer d'un lecteur a un autre, d'ouvrir
un répertoire ou de charger un fichier,
et de fermer un répertoire. Le bouton
Quitter permet quant a lui de quitter le
programme.
Pour mettre un nouvel accessoire de
bureau en mémoire, il suffit, apres
avoir sélectionné le répertoire
contenant les fichiers des DA, de
cliquer deux fois sur le nom de celui-ci
ou de cliquer une fois pour le
sélectionner puis de cliquer dans le
bouton Ouvrir. A partir de cet instant
l'accessoire est en mémoire et est
accessible de l'utilisateur mais n'est
pas encore complétement opéra-
tionnel. Pour qu'il le devienne il faut
quitter le programme.
A propos du programme
Dans le bloc de données nommé
ToolTable, la version de chaque outil
Source
‘MOVER.SRC’
mcopy macs
init start
using Data
using prodos
using ToolTable
* Bank de donnees =
* bank de programme
* utilisation de l‘adressage
=>
absolu
phk
plb
Sauve l'adresse de
la page zero
tde
sta MyZP
*
Demarre le Tool Locator
_TLstartup
Demarre le Memory Manager
Pushiord £0
_MMStartup
Pom’s n° 38
& charger est indiquée. Celles-ci ne
sont valables que pour les personnes
qui utilisent la version 3.1 (En
attendant la 3.2) du Finder ou les
Tools qui sont sur cette disquette.
Pour ceux qui font I'erreur de ne pas
utiliser cette version, il faut mettre 0
ou un numéro de version inférieur.
Exemple:
de i2'23,$0200'; S.F.O
?
Version 2.0
Si vous voulez utiliser une version
antérieure du Standart File Operation,
mettre votre numéro de version a la
place de $0200, mais ceci A vos
risques et périls.
Le programme ne vérifie pas si
Taccessoire de bureau demandé est déja
en mémoire. Ceci permet aux
éventuels programmeurs d'accessoires
de charger différentes versions de leur
ceuvre.
Icone/Mover est & mettre dans le
répertoire Icons de la disquette
contenant le Finder. C'est l'ic6ne
Teprésentant ce programme. a
PullwWord MyID
* prend de la memoire en vage 0
* pour les Tools
PushLong £0
PushLong £$700
PushWord MyID
Pushiiord £$C001
PushLong £0
_NewHandle
pla
sta 0
sta @PHandle
pla
sta 2
17
sta ZPHandle+2
lda "0s
sta 4
* Quickdraw en route ?
PushWord £0
_oDStatus
pla
bne Quickroute
* Non, alors demarre
4 guickdraw IT
da 4
pha
PushWord £$80
PushWord £0
PushWord MyID
_oDStartup
* Oui, alors ne demarre que
* 1‘Event Manager
Quickroute anop
lda 4
ele
adc £9300
pha
PushWord £255
PushWord £0
PushWord £640
PushWord £0
PushWord £200
PushWord My1D
_EMStartup
*
Place le curseur
PushWord £10
PushWord £20
_MoveTo
Fond noir, ecriture blanche
PushWord £0
_SetBackColor
PushWord £$f
_SetForeColor
*
Affiche une phrase pour
faire patienter
PushLong fWaitString
_DrawString
* Demarre le Desk Manager
_DeskStartup
Charge les Tools
PushLong £ToolTable
_LoadTools
ade £3400
pha
istartup
* Demarre Line Edit
Pushword Mj
Ida 4
cle
ade £9500
pha
* Demarre Quickdraw Auxiliary
_QDAuxStartup
* Demarre Dialog Manager
PushWord MyID
_Dialogstartup
* Demarre Standart File
Operation
PushWord MyID
lda 4
cle
adc £9600
pha
_SFStartup
* Choisit une fleche comme
* curseur et affiche-la
_InitCursor
_ShowCursor
end
* Affiche une fenetre de
* dialogue standart pour
* charger un fichier.
PutDialog start
using Dialog
using prodos
PushWord £100
PushWord £35
PushLong £Prompt
PushLong £0
PushLong £TypeList
PushLong £Template
PushLong £Hook
PushLong £ReplyRec
_SFPGetFile
Ida Good
bne Yabon
end
* Quitte le programme en fermant
* tous les outils qui ont
* ete ouverts
_oDShutdown
PushLong ZPHandle
_DisposeHandle
Pushitord MyID
_MMShutDown
_TLShutdown
_QUIT QuitParams
end
Fait patienter l'utilisateur,
appelle la routine de
chargement en memoire puis
appelle la bonne
routine d'installation.
Yabon start
using Data
using prodos
using Window
_WaitCursor
PushLong £0
PushLong £ParamList
_Newiindow
Ida 12
sta theWindow
Ida 335
sta theWindow+2
_SetPort
jal ContDefProc
jsr LoadOne
PushLong theWindow
CloseWindow
_InitCursor
PushLong DAHandle
lda filetype
cmp £$B9
bne PasCDA
_InstallcbaA
PasCDA cmp £$D8
bne PasNDA
_Instal1NDA
PasNDA anop
br Putbialog
end
* Charge le Desk Accessory
* choisit grace au System Loader
LoadOne start
using Data
using prodos
Pushivord £0
Pushivord £0
PushLong £0
Pushivord £0
PushWord £$5000
PushLong £fullname
PushWord £1
* affiche un beau fond bleu Quit start _InitialLload
PushWord £$dddd using Data PullWord NewID
_ClearScreen using Prodos PullLong DAAddress
_SF Shutdown PullWord Direct
* Demarre Window Manager aPiad ogshuedeen: PullWord DSize
| PushWord MyID LisSne Gown PushLong £0
| _WindStartup —ODAnxShutdown PushLong DAAddress
| _¢tlShutdown _FindHandle
* Demarre Control Manager _WindShutdown PullLong DAHandle
PushWord MyID —DeskShutdown rts
sae 4 _EMShutdown cat
l
Pom’s n° 38
* Routine de gestion des Items.
Hook start
using Data
psing prodos
using Dialog
phb
phk
plb
PullLong Return
Pulllong ItemHit
PullLong DialogPort
PushLong Return
plb
rtl
end
* Ecrit un message dans la
* fenetre.
ContDefProc start
using Window
PushWord £10
PushWord £20
MoveTo
PushLong £Message
_brawstring
rt]
end
* Quelques definitions.
Define privdata
ButtonItem equ 10
ScrollBarItem equ 13
StatText equ 15
UserItem equ 20
ItemDisable equ $8000
end
* Donnees pour le chargement
* des outils
ToolTable privdata
de a6
de i'14,30201"
de i'16,$0202'
de 18, 30202"
de '20, $0200"
de 21, $0200'
de i'23,$0200'
end
* Donnees generales
Data privdata
WailString str ‘un instant,
8.¥.P.*
MyZP ds 2
MyID ds 2
ROMZP ds 2
NewID da 2
Direct ds 2
DSize ds 2
Comment faire ?
© Vous n‘avez pas la disquette Pom’s 38:
" saisissez et sauvegardez la récapitulation ‘MOVER’ ;
= sous ProDOS 16, depuis le Finder, par exemple, lancez
l'application ;
t= l'icOne sera le losange traditionnel.
®@ Vous avez la disquette Pom’s 38 :
x dans votre dossier ‘Icons’, mettez l'icOne ‘Mover’ que
vous trouvez dans le dossier ‘cone’ de la disquette
Pom’'s ;
«= maintenant, l'application Mover’ a son icone en
couleurs.
® Pour essayer:
tx Dans le dossier ‘Desk.Accs’ de la disquette Pom’s, vous
avez un CDA et un NDA ; chargez-les avec ‘Mover’ :
plus besoin de redémarrer le GS...
2PHandle ds 4 Item3 de i2'3'
DAHandle ds 4 de 42'28, 265, 40,
DAAddress ds 4 375"
end de i2'ButtonItem'
* Donnees pour la fenetre 4 ro aa
* de dialogue ' meet
os de iz'o"
Dialog privdata ae eas
using Define
Itemd de i2tae
Template de 42'0,0,130 ae 42° 900:289,410,
400° 375"
ac i2t-1' de 4£2'ButtonItem'
ae tar0e de i4'Quitterstr’
de i4'Iteml, a —
Item2, Item3, ae ee
Teaud' de a4'o8
de i4'Item5, ;
Ttem6, Item/, Iten5 do 42'S
Item’ de 42'28, 214,110,
de 14‘Item9* eae
ae i4'or de 42
ScrollBarItem'
Iteml de #2028 ee seid
de 12'54, 265, 66, de i2'0
375" de 42'3"
de i2'DuttonItem' de i4°0"
de i4'Ouvrirstr’
de i2'0' Item6 de i2'6"
ae 42"0" de 42/12, 15, 24,
a iator 395"
de i2'UserItom'
Item2 de 4212" de gad”
de 42'72, 265, 84, de hee
375" de i2‘0"
de 42‘ButtonItem’ de FASS
dc i4'FermerStr' Ttem7 de azeze
de i2‘o" de 12°28, 15,110,
de 42'0' 215"
de 4410! de 42‘Userrtem’
Pom’s n° 38
19
F de 44°0" de 42'84,100,116, £lab _DialogShutDown
de 42'0° 500° élab Idx £30315
de i2'0! de i410 jsl $£10000
dc ig'o" de i4'o" MEND
ParamEnd anop BAEKO
L Items. de 428° 4lab _FMStartUp
de 420,15, 12, Message str "Veuillez a0 les Eaee0e
395° cutee jsl $£10000
de i2'UserItem' se ates yy.
deat" peices pay
de ‘ioe Pee A &lab _EMShutDown
de 42/0" theWindow ds 4 i ae atone
ee Gar jsl $£10000
MEND
end MACRO
arene ee ott élab _LEStartUp
de 421115,15,130, * Donnees pour les appels 6lab Idx £90214
395° * a Provos/16 jsl $£10000
de i2'statText+ prodos privdata MEND
ItemDisable* MACRO
de i4'VersionStr' —guitparams anop élab _LEShutDown
de i2'0" ae 16'0" élab Idx £90314
de 42'0' jsl $£10000
de agra! ReplyRec anop basis
Good ds 2 lial!
TypeList de 4112, $28, $29" filetype ds = slab _InitialLoad
aaeeleyy Os 5 Slab Idx £90911
Ouvrirstr str ‘Ouvrir! Citenase as o jsi $£10000
FermerStr str ‘Fermer' Pitta ds 128 MEND
LecteurStr str ‘Lecteur' BAGRO
Quitterstr str ‘guitter’ ae élab _TLStartUp
Prompt str 'Choisissez un si Sua
SPP s.
| secesscice «@ Fichier ‘MACS’ iio
| Versionstr str ‘Version BACKO
MACRO élab _TLShutDown
VE-1.2
| élab Ctlstartup lab Idx £30301
| oe ee lab Idx £$0210 jsl $£10000
| Fred. Rozay' “3
| jsl $£10000 MEND
MEND MACRO
Return ds 4 MACRO &lab _LoadTools
qeemet) | aes Slab _Ct1ShutDown élab Idx £$0£01
| saetoore ce: | lab Idx £$0310 js1 $£10000
| js1 $£10000 MEND
| end MEND MACRO
| MACRO élab _MMStartUp
| * Donnees pour 1a Slab DeskStartup &lab Idx £$0202
| * fenetre d'attente &lab ldx £$0205 3jsl $£10000
| jsl $£10000 MEND
Window privdata MEND MACRO
| MACRO ¢lab _MMShutDown
ParamList do i2'ParamEnd- &lab _DeskShutDown slab Idx £30302
ParamList' &lab Idx £$0305 js1 $£10000
de i2'800100000 jsl $£10000 MEND
01100000" MEND MACRO
de i4'o° MACRO élab _NewHandle
ae. iator &élab _Instal1NDA &lab Idx £0902
a8 12'0,0,0,0° Slab ldx £$0205 jsl $£10000
de aioe Jjsl $£10000 MEND
de 12'0,0° bist pecs
| oe ea MACRO élab _DisposeHandle
a ee élab _Instal1CbA Slab Idx £31002
= élab Idx £$0F05 isl $£10000
ae 42°0,0° jsl $£10000 MEND
de 42°0,0° MEND MACRO
de i4'o" MACRO élab _FindHandle
de 42'08 slab _Dialogstartup élab Idx £$1A02
de dase" &lab Idx £$0215 jsl $£10000
de 440" jsl $£10000 MEND
de ig’ MEND MACRO
ContDe£Proc’ MACRO &lab _QUIT éparams
20 Pom’s n° 38
a ee ee |
&lab jsl $E100A8
de i2"$29"
dc i4"¢params"
MEND
MACRO
élab QDStartUp
&lab Idx £$0204
jsl $£10000
MEND
MACRO
&lab _QUShutDown
&lab Idx £$0304
jsl $E10000
MEND
MACRO
&lab _QDStatus
&lab Idx £$0604
jsl $£10000
MEND
MACRO
Slab _ClearScreen
&lab Idx £$1504
jsl $£16000
‘MEND
‘MACRO
&lab _SetPort
&lab Idx £$1R04
jsl $£10000
MEND
MACRO
&lab _MoveTo
&lab Idx £$3A04
jsl $£10000
MEND
MACRO
&lab _ShowCursor
&lab Idx £$9104
jsl $£10000
MEND
MACRO
&lab _SetForeColor
&lab Idx £$A004
jsl $£10000
MEND
MACRO
&lab _SetBackColor
&lab Idx £$A204
js1 $£10000
‘MEND
MACRO
élab _DrawString
&lah Idx £SA504
jsl $£10000
MEND
MACRO
4lab _Initcursor
&lab Idx £S$CA04
js1 $E10000
MEND
MACRO
élab _SFStartup
Slab Idx £$0217
js1 $£10000
MEND
MACRO
&lab _SFShutDown
&lab ldx £$0317
jel $£10000
MEND
MACRO
élab _SFPGetFile
&lab ldx £$0B17
jal $£10000
MEND
MACRO
élab _WindStartUp
&lab Idx £$020E
jel $£10000
MEND
MACRO
élab _WindshutDown
&lab ldx £$030E
jsl $£10000
MEND
MACRO
&lab _NewWindow
&lab ldx £$090E
jsl $£10000
MEND
MACRO
&lab _CloseWindow
&lab ldx £$0B0E
jsl $£10000
MEND
MACRO
6lab pulllong ¢addrl, éaddr2
&lab ANOP
AIF C:&addrl=0,.a
AIF C:éaddr2=0, .b
LCL &C
&C AMID éaddr1,1,1
AIF "&C"="°", , zeropage
pullword saddr1
sta éaddr2
pullword gaddr1+2
sta gaddr212
MEXIT
-a
pullword
pullword
MEXIT
-b
pullword saddr1
pullword gaddr1+2Z
MEXIT
«zeropage
ldy £&addrz
pullword éaddrl,y
Idy £¢addr2+2
pullword éaddrl,y
MEND
MACRO
élab pullword sSYsOPR
&lab ANOP
pla
AIP c:&SYSOPR=0, .end
sta &SYSOPR
.end
MEND
MACRO
6lab pushlong éaddr, goffset
&lab ANOP
ICL &C
ECLC &REST
&C AMID éaddr,1,1
AIF "6C"="£", immediate
AIP "gC"="", , zeropage
AIF Cr&é0ffset-0, .nooffset
AIF "soffset"="s",.stack
Pushword éaddr+?, sof fset
pushword saddr, s0ffset
MEXIT
-nooffset
pushword saddr+2
pushword éaddr
MEXIT
.immediate
&REST AMID &addr,2,L:éaddr-1
de I1'$F4',12' (6REST)U-16'
dc I1'$F4',I2'&REST'
MEXIT
«stack
pushword gaddr+2,s
pushword saddr+2,s
MEXLT
.2eropage
Idy £60ffset +2
pushword éaddr,y
ldy £soffsot
pushword saddr,y
MEND
MACRO
&lab pushword &SYSOPR
élab ANOP
AIF cz&SYSOPR=0, .b
LCLC &C
&C AMID “6SYSOPR",1,1
AIF ("&C"="£") AND. (S:LONGA),
- immediate
Ida &SYSOPR
pha
MEXIT
-b
pha
MEXIT
-immediate
LCLC &REST
LCLA &BL
&BL ASEARCH "&SYSOPR"," ",1
AIF 6BL20,.a
&BL SETA L:&SYSOPRt1
3
&REST AMID "&SYSOPR", 2, &BL-2
de I1'$P4',I2'GREST!
MEND
MACRO
Slab str é&string
&lab de il'l:&string',c'sstring’
MEND
MACRO
&lab _ODAuxStartup
&lab Idx £$0212
jsi $£10000
MEND
MACRO
&lab _QDAuxShutdown
&lab Idx £$0312
jsl $#10000
MEND
MACRO
élab _WaitCursor
6lab Idx £$0A12
isl $£10000
MEND
Fichier ‘BUILD’
asml mover.src keep=mover
filetype mover s16
Pom’s n° 38
Récapitulation ‘MOVER’
Aprés avoir saisie ce code sous moniteur, faites :
create MOVER, t$63
puis :
bsave MOVER, a$2000,1$800,t8b3
00
00
00
20
26
£1
00
01
85
00
80
AS
F4
El
00
00
05
oo
48
00
18
00
03
a2
oo
Fa
9c
30
00
a2
03
00
00
22
oA
04
28
aD
04
05
Do
00
00
oF
13
A2
8B
@D
gc
00
06
00
R73
00
00
00
03
00
00
00
20
00
00
Fa
Fa
ap
a2
Fa
18
00
OA
04
Fa
22
El
OE
48
00
El
AS
cA
23
00
F4
DO
A2
03
00
£1
aD
00
oo
OE
a2
05
00
00
00
20
00
00
090
00
15
04
oo
69
Fa
00
A2
00
00
Fa
02
a2
05
AD
04
22
7)
Fa
00
6A
14
22
00
AD
oR
El
09
09
04
48
00
00
05
00
05
6D
oo
22
6a
68
AB
00
00
00
6
00
oo
57
3?
17
77
02
00
77
04
00
EF
06
00
D7
00
00
00
20
43
a2
00
00
03
06
00
00
ca
Fa
22
00
00
7?)
22
10
48
0B
18
00
F4
Fr
00
a2
03
00
El
17
03
22
El
22
1B
aD
00
DO
OE
00
Fa
1D
oo
00
8D
6D
6B
00
on
00
74
00
00
03
03
04
01
00
00
01
00
00
oo
00
00
00
00
00
00
20
AB
02
Fa
Fa
68
22
AD
03
00
14
00
P4
El
bb
00
02
a2
03
69
00
oo
04
F4
17
22
00
R2
03
48
aa
Fa
00
22
26
El
07
22
F4
01
03
F4
00
gc
aq
Fa
Fa
00
00
00 2c
20
73
02
00
00
a5
00
oB
48
AD
00
00
Fe
Fé
a2
00
22
1¢
48
00
El
oo
Fa
30
03
00
£1
06
48
a?
00
00
co
00
05
05
00
00
00
40
20
03
00
00
02
17
68
Az
00
48
SA
OF
04
Fe
22
OB
El
00
02
A2
91
04
Fa
17
00
A2
03
00
03
22
00
00
01
22
oz
48
22
82
00
09
00
00
00
20
A2
21
07
og
03
Do
04
F4
a2
22
00
As
pe
oo
03
aD
00
22
17
22
Fa
21
oB
El
12
22
00
48
00
2a
oo
aD
cl
0B
AD
00
F2
00
22
00
00
20
20
ol
68
AD
22
a7
14
az
00
06
00
A2
22
02
oo
48
oB
El
00
02
00
09
03
22
a2
03
00
El
A2
00
05
Fa
26
OA
00
20
20
02
aD
OB
00
00
as
22
00
02
00
04
00
a2
El
AS
03
A2
00
22
00
oo
Fe
00
15
22
00
az
02
RT
00
90
05
00
90
03
El
Pa
00
00
20
09
00
ra
A2
8D
El
48
FF
03
04
Fa
a2
00
1s
AD
00
22
15
48
04
50
00
a2
00
£1
OE
22
15
03
29
Fa
AZ
El
a2
03
oF
El
Fa
a2 11
20€0:02
2000: 00
AD
8D
aD
aD
Fa
a2
02
00
2E
iF
19
9E
as
14
04
02
oz
56
00
82
00
00
00
00
54
00
00
6R
00
00
18
00
00
03
03
04
04
00
as
12
12
2E
00
oo
00
00
00
00
00
00
00
00
00
00
00
00
00
AD
8D
aD
9E
04
00
6E
2E
00
OL
03
03
00
00
01
00
00
01
00
00
01
00
00
2c
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
03
03
00
04
01
04
01
00
00
00
00
00
23E0:00
23F0:48
2400:D6
2410:00
2420:00
2430:0F
00
14
04
00
20
20
22
0B
03
00
a5
04
oo
ra
22
El
AO
00
o1
AD
04
48
12
£1
00
El
FS
00
00
03
00
El
04
10
a2
00
00
AZ
20
00
48
co
00
50
FI
1D
1B
ao
04
aA
00
02
20
00
00
FF
00
00
36
00
1c
00
OA
1c
03
14
1c
00
03
00
El
Liste des fichiers de ‘Mover’
sur la disquette Pom’s 38
Mover sre... 2... Source
Mover .............Application
Build... 2.5. esse PAChier
MACS «6.5.45. .+Fichier de macros
Icone/Mover . ..Icéne couleurs
Desk.accs/Alarme ..Un CDA exemple
Desk.accs/Horloge .Un NDA exemple
|
|
|
|
|
|
|
| d'assemblage
|
|
2440:00
2450:00
2460:0F
2470:00
2480:65
2490:69
24A0:20
24B0:65
24¢0:20
24D0:31
2480:79
24F0:20
2900:00
2510:00
2520:00
2530:00
2540:6C
2550:75
2560:73
2570:F5
2580:00
2590:00
25A0:03
25B0:02
25C0:DA
25D0;0B
25E0:F5
25F0:F0
2600:01
2610:02
2620:02
2630:B0
2640:0B
2650:F5
2660:00
2670:02
2680:05
2690:02
26A0:5E
26B0:1D
26C0:F5
26D0:00
26B0:02
26F0:04
2700:02
2710:B8
2720:F6
2730:F5
2740:00
2750:03
2760:03
2770:04
2780:AB
2790:C1
27A0:00
2730:00
27¢0:00
2700:00
27E0:00
27F0:00
00
00
oo
00
72
74
75
20
56
39
00
00
oo
00
00
Fa
6c
65
65
02
28
17
FS
FO
00
03
02
4D
21
FS
00
o1
03
02
FC
48
FS
00
02
03
02
a9
1B
F5
00
02
04
04
3B
CF
FS
00
03
02
00
00
00
00
00
00
00
00
a2
00
6D
74
6E
62
46
38
00
00
oo
00
00
01
65
6c
63
00
00
03
oz
c3
oR
FS
FO
01
03
02
62
17
FS
00
01
02
02
2B
416
F5
00
02
03
02
RI
SE
FS
00
03
03
04
7B
48
00
00
00
00
00
00
00
00
00
00
00
65
65
20
75
2D
38
oo
00
oo
00
00
FF
7A
71
oF
og
0B
PS
FO
00
03
o2
41
2F
FS
08
00
68
02
72
72
61
72
31
2c
00
00
oo
90
00
FF
20
75
6E
090
03
02
AF
Dc
P5
00
ol
04
02
Sc
30
FS
00
01
05
02
23
32
FS
00
02
03
02
Ag
Aa
PS
00
03
03
04
4F
39
PS
00
00
00
oo
00
00
00
00
00
on
Be
07
22
63
65
2E
20
00
00
oo
00
00
FF
70
65
64
09
FS
00
00
02
02
10
50
FS
00
o1
05
02
D6
Aa
F5
09
02
05
02
74
13
FS
00
02
04
02
Dz
oF
PS
00
03
04
04
00
00
00
00
00
00
00
00
00
OF
Bg
4c
43
63
61
32
46
00
00
oo
00
00
FF
61
73
65
03
02
62
Fé
FS
00
on
04
02
56
3c
FS
00
01
04
03
oD
1B
FS
00
02
03
02
Al
AO
FS
00
02
03
04
47
17
FS
00
00
00
00
00
00
00
00
00
00
80
06
65
68
65
75
20
72
00
00
v0
00
cl
00
74
20
73
FS
00
00
02
02
ES
OB
PS
00
01
o2
02
Ba
2A
FS
00
02
03
02
6c
1F
FS
00
02
04
02
BC
F6
FS
00
03
4
04
23
00
00
00
oo
00
00
00
oF
00
73
4E
63
OF
73
2a
20
65
00
00
oo
00
02
00
69
70
25
02
oF
oB
FS
00
00
03
02
50
21
FS
00
01
05
02
06
28
FS
FO
02
03
02
95
9c
FS
00
o2
04
04
ey
£7
FS
00
04
00
00
00
00
00
00
00
00
00
04
75
74
69
73
56
20
64
00
00
oo
00
00
cr)
65
65
2B
00
00
03
02
cé
oR
FS
00
01
03
02
6c
15
FS
00
02
0s
02
5B
oF
FS
00
02
o4
02
BS
oC
FS
00
03
03
04
93
73
00
00
00
oo
00
00
00
oc
00
00
76
65
73
6F
65
20
2E
00
00
00
00
00
00
6E
74
22
19
15
PSs
00
00
03
02
44
oF
FS
FO
01
03
o2
F7
cl
FS
00
02
03
oz
85
19
FS
00
02
04
04
37
B?
F5
00
03
o4
00
00
00
00
00
00
00
00
00
oo
72
75
69
69
72
20
20
00
00
oo
00
54
2F
74
69
Fl
00
03
02
B2
Dc
FS
00
ol
04
02
SF
30
FS
FO
ol
02
02
27
46
PS
00
02
03
02
AD
AG
FS
00
03
03
04
63
40
FS
00
00
00
00
00
00
00
8B
09
00
69
72
73
72
73
28
52
00
00
oo
00
00
56
65
74
Ao
oB
FS
00
00
02
02
1B
50
P5
FO
o1
01
00
09
72
07
73
65
69
43
OF
4E
00
00
00
64
65
72
65
00
03
02
a3
Fé
FS
00
o1
04
02
59
30
FS
00
o1
05
02
1
19
FS
00
02
03
02
AS
A2
P5
FO
03
03
04
4B
32
FS
00
00
00
00
00
00
00
00
14
00
06
20
FS
F7
FS
01
03
04
EB
28
FS
00
02
05
02
7c
1D
FS
00
02
04
02
33
oF
FS
00
03
04
00
00
00
00
00
00
00
02
E86
26
FS
00
02
05
02
78
iF
FS
00
02
04
o2
2F
a7
FS
09
03
04
oF
00
00
00
00
00
00
00
BF
ae
FS
FS
E2
00
00
00
46
75
7A
64
6E
20
61
60
00
oo
00
4
69
71
20
00
02
45
oB
FS
00
00
03
02
53
gc
FS
00
01
04
02
OA
26
FS
00
02
03
02
99
9E
FS
00
02
03
04
43
FF
FS
00
o¢
00
00
00
00
00
00
00
22
Evénement :
og. Ly
Oui, c'est un événement
capital pour tous les
Apple // ; les Etats-
Unis le vivent depuis
prés d'un an déja.
Fric Weyland vous en parlait dans son
long article du numéro 34 de Pom’s,
en ajoutant avec regret «...la série
TimeOut ne marche, et ne marchera
sans doute jamais que sur la version
américaine 2.0 d'AppleWorks, et pas
sur la version francaise 1.4. Non que
cela soit techniquement impossible :
mais il faudrait alors adapter et traduire
chacune des applications TimeOut
présentes et futures, ce qui représcnte
énormément de travail. L'investis-
sement est sans doute trop grand pour
tre rentable...».
Ce que ni Apple Computer, ni Claris,
ni les Beagle Bros eux-mémes n'ont
pu, ni voulu faire, Pom’s et un
programmeur frangais l'ont réalisé. Je
tiens a saluer le talent exceptionnel de
Danicl Lurot, qui a écrit Ics patches
nécessaires & AppleWorks 1.4, et
adapté les logiciels TimeOut. Sans lui,
tous les utilisateurs frangais
d'AppleWorks 1.4 seraient encore une
fois restés ‘sur le bord du chemin’.
Sans lui, ct sans le dévouement des
collaborateurs de Pom’s.
Comme vous n'avez peut-étre pas tous
en mémoire l'article d'Eric Weyland, il
n'est pas inutile de rappeler d'abord ce
que sont ces logiciels TimeOut.
Et il m'est agréable de pouvoir vous en
parler, cette fois-ci, non comme de
quelque lointain mirage, mais sachant :
W quis sont la;
¥Y quils fonctionnent ;
¥ quis sont entigrement francisés ;
VY qu'une documentation frangaise les
accompagne.
TimeOut...
ou la voie royale
pour exalter AppleWorks
Deux touches magiques
O G-Escape vous étes dans
TimeOut ;
O Escape : vous étes de retour dans
AppleWorks.
.-Va-ct-vient immédiat, écrans
familiers.
Il était difficile d'imaginer plus simple.
Vous ne quittez pas AppleWorks, c'est
le menu TimeOut qui vient a vous.
Dans la ‘fenétre’ qui s‘ouvre au milicu
de I'écran, la liste des applications
disponibles. Vous sélectionnez
lapplication. Celle-ci se charge, et fait
son travail : ©
= S'agit-il dc SuperFonts ? Vous
pourrez imprimer directement vos
fichiers AppleWorks dans un choix
extraordinaire de polices Macintosh, en
caractéres francais, en faisant varier la
taille et le style (italiques, ombré,
telicf, inversc), 4 tout moment, méme
au milieu d'un mot. Pom‘s propose
déja 3 disquettes, regroupant plus de
100 polices. Trois qualités d'impres-
sion. Importation d'images HR et
DHR. Une retouche a votre texte ?
Faites Escape, et vous voila revenu
dans AppleWorks, dans le fichier de
traitement de texte d’ol vous étiez
partis. Préts 4 imprimer ? G-Escape,
vous étes A nouveau dans SuperFonts.
= S'agit-il de Graph ? Directement
de votre tableur, faites (s-Escape.
Sélectionnez Graph : c'est & peine si
l'on remarque que I'écran a un peu
changé ; le titre, en haut ; et en bas,
une ligne d'options nouvelles. Ah,
mais quelles options ! Elles s'ouvrent
les unes aprés les autres, comme des
tiroirs (il suffit de cliquer dessus). Elles
vous permetient soit de voir a l'écran,
soit d'imprimer : des graphiques en
barres, en secteurs, en lignes, en barres
empilées, en aires, en XY. Avec
légendes ou sans légendes. Titrés, et
sous-titrés. Avec ou sans quadrillage.
Etc., etc. Voulez-vous retoucher voure
tableau ? Escape et vous y étes.
Voulez-vous voir comment a changé
votre graphique ? G-Escape et vous
étes de retour dans Graph (Ics options
choisies ont été conservées).
= S'agit-il de SideSpread ? Vous
pouvez imprimer vos grands tableaux &
l'horizontale, sans crainte de manquer
de place. Vous partez directement du
tableur, vous faites G-Escape. Les
commandes sont familitres : Imprimer
Tout ? Lignes ? Colonnes ? Bloc ?
Faites votre choix, et allez-y. C'est
tout. Pas de manipulations délicates,
pas de manceuvres piégées. Et pas de
caractéres bizarres a la place des €, &, ¢
et! Vous disposez de deux polices
francisées, chacune en 8 tailles
différentes : de quoi tirer des effets de
miniaturisation ou de grossissement
surprenants.
@ S'agit-il d'UltraMacros ? Deux
applications TimeOut lui sont
adjointes : un compilateur (emploi
instantané, plus besoin de revenir a la
disquette d'installation pour modifier
les macros résidentes), et Macros
Options tous les réglages
imaginables de la souris ct du curseur,
et la création immédiate de fichiers
“Task” : des fichiers de macros préts a
l'emploi, affectés a une tache
spécifique ; on les démarre d'un menu
TimeOut sans quitter AppleWorks, ou
méme avant de booter AppleWorks au
moyen d'un sélecteur genre ProSel (car
ut en
Pom’s n° 38
93
ce sont des fichiers SYS). Ces deux
applications transférées dans TimeOut
ont soulagé I'ancétre, qui n'est nul
autre que SuperMacroWorks, et ont
permis (grace & la place récupérée) d'en
faire un véritable langage de
programmation. SuperMacroWorks et
UltraMacros sont les deux ‘chefs
d'orchestres’ sans lesquels il est
désormais difficile d'imaginer un
AppleWorks amélioré, mais
UltraMacros est beaucoup, beaucoup
plus puissant.
Voila donc les grandes vedettes qui
vous attendent. Ce sont incontesta-
blement les ‘stars’. Mais il y a aussi
les seconds réles, les auxiliaires
toujours présents et indispensables. II
n'est pas nécessaire de les acheter a
part, ils sont fournis avec les logiciels
principaux.
> Utilitaires est une application
qui permet de ‘configurer’ Graph,
SideSpread, SuperFonts et les autres
(entendez par 1a : choisir les polices de
caractéres, les imprimantes, et divers
autres paramétres utiles). Cette
application permet aussi de crécr
instantanément un menu TimeOut
supplémentaire pour une nouvelle
application TimeOut.
> Data Converter crée le pont —
qui manquait 4 AppleWorks — entre
données du Tableur et de la Base de
données. Grace a cette application, le
pressc-papiers transforme les tableaux
en base de données, et vice versa, sans
aucune manipulation particulitre.
© Debug offre le contrdle des
variables d'UltraMacros, et I'affichage
des macros.
> Valeurs ASCII donne, par
exemple pour Ctrl-I, 9 en décimal, 9
en hexadécimal, 00001001 en binaire,
“Tab”, et précise qu’a l'écran c'est un
“T” en vidéo inverse.
= File Status indique l'état du
bureau AppleWorks.
=> AWP to TXT transforme les
fichiers AppleWorks en fichiers ‘Text’
(pratique pour changer de machine ou
de programme).
Note : PathFinder lui-méme n'est
pas une application TimeOut : c'est
une précieuse modification
d’AppleWorks, qui installe directement
dans le menu Autres activités
d’AppleWorks les nouvelles options :
Ajouter un sous-catalogue, Retrancher
un sous-catalogue, Renommer un
fichier, Verrouiller un fichier et
Déverrouiller un fichier.
D'autres applications TimeOut
viendront prochainement s'ajouter a la
liste, au fur et & mesure de leurs
francisations, et de la traduction de
leurs documentations.
DES EXEMPLES ?
PAGES 16 & 30...
Le principe
du fonctionnement
TimeOut, qui a donné son nom a
l'ensemble de ces applications, est une
invention d’Alan Bird. C'est un
programme-noyau (un “kernel” comme
disent les américains) qui s'installe
dans AppleWorks en modifiant son
amorgage. Une fois qu'il y est, il n'en
bouge plus. Quand vous I'aurez installé
une fois, vous n'aurez plus besoin de
recommencer,
Ce noyau n'est pas lui-méme une
application TimeOut. Son réle est de
servir ‘d'entremetteur’ entre
AppleWorks et toutes les applications
TimeOut qu'il pourra repérer.
Comment se fait
cette entremise ?
* tout d'abord, au démarrage de votre
AppleWorks, TimeOut va ‘ausculter’
le disque od se trouvent les
applications TimeOut, et mémoriser
les noms de toutes les applications
présentes ;
+ deuxigmement, a l'appel du menu
TimeOut par -Escape, il affichera la
liste ainsi mémorisée, dans laquelle
vous ferez votre sélection ;
* troisitmement, aussit6t aprés la
sélection, TimeOut chargera ct activera
l'application choisie ;
+ Quatrigmement, par la touche
Escape, TimeOut vous raménera a
AppleWorks.
C'est donc un gestionnaire, qui doit
connaitre les paramétres d'AppleWorks
et ceux des applications, et les
préserver 4 chaque appel pour que vous
puissiez les retrouver intacts quand
vous passerez de I'un a l'autre.
Quant aux applications, elles partagent
toutes la faculté d'étre appelées par
TimeOut a partir d'AppleWorks. Sclon
leur degré de complexité, elles feront
tourner des programmes puissants, ou
se contenteront de tiches relativement
subalternes. Bien que théoriquement
elles puissent étre des programmes
indépendants d'AppleWorks, leur
intérét est de pouvoir puiser des
données directement dans cet immense
réservoir qu'est AppleWorks (fichiers
Traitement de texte, Base de données,
Tableur), pour accomplir des taches
qu'AppleWorks ne sait pas accomplir
lui-méme. AppleWorks travaille pour
elles, et elles travaillent pour lui (pour
notre plus grande satisfaction 4 nous
autres, les utilisateurs).
Cela vous donne, soit dit en passant,
une idée de l'extréme complexité in-
terne du fonctionnement de TimeOut :
la mémoire de I'Apple étant ce qu'elle
est, déja AppleWorks (qui est un
programme énorme) devait fonctionner
en ‘overlay’, c'est-A-dire que n'étaient
appelés en mémoire active que les
‘segments’ dont AppleWorks avait
besoin 4 un moment donné. Sans que
vous vous en doutiez, AppleWorks se
livre continuellement 4 un jeu de
‘chaises musicales’ électronique.
La-dessus arrivent TimeOut et ses
applications, qui elles aussi entrent
dans la danse. Un exercice de haute
voltige s'organise, od nul ne doit se
trouver au méme moment au méme
endroit, tout en sachant exactement
quel instant ‘tendre la main au
trapéziste d'en face’. Mais
rassurez-vous, tout cela est, comme
ont dit, ‘transparent pour Iutilisateur’ :
l'intégration est parfaitement
harmonieuse, et TimeOut se conduit
avec des commandes simples et
naturelles.
Pom’s n° 38
ee ee — |
ee e ge e
TimeOut : configurations
Les applications TimeOut peuvent étre configurées pour fonctionner avec VOTRE matériel.
Vous pourrez choisir 48 imprimantes, parmi lesquelles :
Apple DMP. Apple ImageWriter Apple Image Writer I Apple Scribe
Epson AP 80 Epson FX 80 Epson LQ 800 Epson LQ 1000
Epson LQ 1500 Epson LX 80 Epson MX 70 Epson MX 80
Epson MX100 Epson RX 80 Mannesmann 160 Mannesmann 180
Mannesmann Spirit 80 | NEC PC 8023 NEC PC 8025 Oki 82
Oki 83 Oki 84 Oki 92 Oki 93)
55 interfaces vous sont proposées, parmi lesquelles :
Série //c Serial to Parallel //c Ilcs port intégré Apple Centronics
Communications Apple Parallel Apple Série Apple SSC
Epson APL Graphicard Grappler Grappler +
Grappler Serial Microbuffer IT Versacard Serial Versacard Parallel
UltraMacros et
SuperMacroWorks
sont un cas a part !
Un mot tout de suite pour rassurer les
possesseurs de SuperMacroWorks :
celui-ci est compatible avec TimeOut
et la plupart de scs applications
(Graph, SideSpread, Superfonts, etc.).
Il ne l'est évidemment pas avec
TO.Compiler, TO.Macros Options ct
TO.Debug, qui sont réservés a
UltraMacros.
Les macros de SuperMacroWorks et
d'UltraMacros fonctionnent méme a
l'intéricur de TimeOut et de ses
applications |! On peut parfaitement
saisir au clavier, par exemple, d'une
part la série de commandes qui méne
d'un fichier tableur dans AppleWorks
jusqu’a son affichage sous une forme
graphique donnée dans Graph, et d'autre
habitués de SMW, qui ne seront
quasiment pas dérangés dans leurs
habitudes. En gros, on peut dire que la
souris fonctionne de la méme manitre
(sauf qu'elle est vraiment réglable, en
déplacement et en ‘clic’), et que la
saisie des macros au clavier est
pratiquement la méme. Mais 18 ou
SMW avait une fonction
conditionnelle rudimentaire liée au seul
caractére sous le curseur, et une unique
variable numérique non directement
accessible, UltraMacros a une
authentique fonction if-then-else
appliquable a 26 variables numériques
et 10 chaines-texte définissables de
fagon indépendante et variée. D'ailleurs,
une gamme entitre de nouvelles
instructions est congue pour
fonctionner avec ces variables comme
paramétres. Ajoutez-y les instructions
Peck, Poke et méme Call pour les pro-
grammeurs les plus audacieux, et vous
aurez une petite idée de ce qu'Ultra-
TimeOut. La régle du jeu a ainsi été
fixée une fois pour toutes.
+ Ouvert, parce qu'il n'y a pas de limite
au nombre des applications que
TimeOut pourra appeler, 4 condition
qu'elles respectent cette régle du jeu.
Mais, me direz-vous, cela fait
beaucoup de monde a loger dans mon
Apple. Comment vais-je y arriver ?
Rassurez-vous, il n'y aura pas de
bousculade, tout ce monde n'entrera
dans votre Apple que dans la limite de
la mémoire disponible.
Avez-vous ¢u la prévoyance (comme
yous I'a recommandé maintes fois
Jean-Yves Bourdin) de renforcer la
capacité-mémoire de voue Apple ?
Parfait. Les applications TimeOut
pourront y séjourner a plusieurs, et étre
appelées quasi-instantanément. Sinon ?
Elles patienteront dans la salle d'attente
(le “disque d'applications TimeOut”), et
part la série de commandes qui raméne Macros est capable d'accomplir ! le noyau TimeOut les appellera et les
au point de départ. En deux touches fera passer une a unc.
seulement on pourra ainsi faire le
va-et-vient entre un tableau et sa Une vue Les privilégiés seront évidemment les
Teprésentation graphique ! On croit d'ensemble possesseurs de GS : la mémoire de
réver...
Mais alors, pourquoi UluaMacros ?
Parce que c'est autre chose.
UltraMacros est un vrai langage de
programmation, dans lequel on a inclus
SMW par souci de continuité. C'est,
en quelque sorte, une ‘fleur’ faite aux
Le wait génial d'Alan Bird (créateur de
TimeOut) est d'avoir congu, dés le
départ, un ensemble a la fois
homogéne ct ouvert.
+ Homogéne, puisqu'il repose sur un
gestionnaire unique, le noyau
Pom’s n° 38
celui-ci a été dimensionnée en fonction
d'applications graphiques tellement
voraces par rapport a l'appétit de
TimeOut que vous en aurez largement
assez pour loger enti¢rement en RAM,
par exemple : AppleWorks tout entier,
UltraMacros, SuperFonts et la totalité
de ses polices de caractéres, plus
25
eee EE EeeeEueES=S=SEeeeEEEEEEeEeEeEeEeEeEeEeEeEeEeEeEeoeee
26
quelques autres applications. Il vous
restera quand-méme un Bureau de
plusieurs centaines de Ko.
Mais, méme dans la pire des
hypotheses, les applications TimeOut
fonctionneront quand-méme : 1a ou
AppleWorks va, TimeOut va aussi. Au
prix, néanmoins, de fréquents appels
aux lecteurs de disques. Vous voila
prévenus. La gestion des disques a été
améliorée dans une récente version
TimeOut (celle, justement, que diffuse
Pom’s) : une nouvelle option de
TO.Utilitaires permet de créer & tout
moment, sans quitter AppleWorks, un
menu TimeOut supplémentaire, lié a
un disque d'applications donné :
décidez-vous, par exemple, en cours de
travail d'utiliser Graph alors que vous
avicz chargé SupcrFonts, ct que vous
disposez de peu de mémoire ? En
quelques secondes, par appel a des
menus clairs, SuperFonts est
reconduit, et Graph le remplace.
Le ‘miracle’
des TimeOut
en francais
De ce qui précéde vous aurez déja
compris que TimeOut, ses
applications, UltraMacros et
AppleWorks vivent en étroite
symbiose. TimeOut était congu au
départ pour la version américaine 2.0 et
la gérait compte tenu de toutes ses
adresses internes spécifiques. Dans la
version frangaise 1.4 d'AppleWorks,
toutes ces adresses sont décalées ou
modifiées. Pour reprendre ma
métaphore de I'exercice de haute
voltige, imaginez un trapéziste qui
s‘élancerait vers son partenaire sans
avoir été prévenu qu'on a rallongé a
son insu les courroies de son trapéze...
C'est exactement ce qui advient si l'on
essaie de faire tourner un TimeOut
américain sur un AppleWorks francais.
Il fallait donc :
* modifier AppleWorks ;
* modifier TimeOut ;
* modifier les applications TimeOut ;
* et réconcilier, dans le nouvel
ensemble obtcnu, toutes les
adresses internes. Je ne parle pas de
la francisation, qui vient s'y ajouter
par-dessus le marché.
Tache impossible ? Quasiment, 4
moins d'un miracle... C'est justement
ce qui s'est produit par un heureux
concours de circonstances : Daniel
Lurot, le programmeur qui a adapté
TimeOut, n'avait nullement ce projet
en téte au départ. Il ignorait méme tout
de TimeOut, et avait commandé aux
Beagle Bros un exemplaire de
SuperMacroWorks. La destin a voulu
qu'on lui envoie par erreur une
exemplaire d'UltraMacros, évidemment
incompatible avec AppleWorks 1.4.
Or, il se trouve que Daniel avait déja,
pour satisfaire sa curiosité, entitrement
désassemblé AppleWorks 1.4. Oui,
oui, vous avez bien lu (ga représente
deux classeurs pleins de code, d'une
€paisseur de quelques 15 centimétres).
Il en connaissait done déja tous les
tours et détours ; adapter UltraMacros
ne lui a nullement paru étre unc tiche
surhumaine, et il a méme essayé
diverses facons de s'y prendre. Puis il
en a modestement informé I'autcur
Randy Brandt, lequel lui a aussit6t
recommandé de me contacter. Ce qu'il
fit.
A partir de 1a, ce qui avait été un
heureux coup du sort individuel s'est
transformé en travail d'équipe, et un
projet plus ambitieux prit corps : pour-
quoi ne pas adapter, franciser et diffu-
ser, 4 lintention de tous les utilisateurs
d'AppleWorks 1.4, les plus intéres-
santes des applications TimeOut ? Pari
tenu...
Dans les revues américaines consacrées
aux Apple //, on voit en double page
deux publicités trés éloquentes :
+ la premitre est de Claris
(distributeur d'AppleWorks). Elle
montre une rutilante Porsche
rouge... sur quatre parpaings en
guise de roues. Le texte dit «Il y a
encore certains possesseurs d'Apple
qui n'emploient pas AppleWorks» ;
+ la deuxiéme est des Beagle Bros.
On y voit quatre magnifiques roues
A jantes de course... sans rien
par-dessus. Le texte dit «Il y a
encore des _ utilisateurs
d'AppleWorks qui ne connaissent
pas TimeOur.
La revue Pom’s n'est ni Claris, ni les
Beagle Bros, mais grace a elle, et a
l'esprit Apple de son équipe, le bolide
complet — et francisé — est 4 votre
disposition. Installez-vous au volant :
croyez-moi, l'expérience en vaut la
peine ! Je vous souhaite bonne route,
et beaucoup de plaisir.
Pom's vous proposera bientét — en
exclusivité également — FileMaster
(gestion compléte de fichiers sous
AppleWorks), DeskTools (une
dizaine d’accessoires de bureau, y
compris un cryptage de fichiers),
MacroTools (de puissantes macros
pour AppleWorks).
Pour les prochains numéros, Dimitri
Geystor vous prépare des utilitaires
dont il a le secret, sous UltraMacros.
e;
Tarif des logiciels en francais — avec manuels
francais — pour AppleWorks 1.4
Graph : 850 F TTC (carte Joker : 765 F)
SuperFonts (comprenant une quarantaine de polices de
caractéres) : 800 F TTC (carte Joker : 720 F)
UltraMacros : 650 F TTC (carte Joker : 585 F)
SideSpread : 550 F TTC (carte Joker : 495 F)
PathFinder: 150 F TTC (les 4 TimeOut inclus sont utilisables
si vous avez déja un TimeOut, UltraMacros par exemple)
Pom’s n° 38
a ee ee ee ee |
Le calcul des Premiers :
Pascal Cantot
Source du programme ‘PRIME FACTOR’
#Nombre de 32 bits 4 tester
#Tndex vers PREMTBL
#Diviseur trouvé (16 bits)
#Reste (0 si non premier)
#Vecteur pour fonction USR()
#Racine (par excés) de N1 (16 bits)
#Registre flottant secondaire
#Résultat division (32 bits)
#Temporaire (32 bits)
7OKG de PRIME FACTOR
sAdresse table nbres premiers
sAffiche erreur X
7A,¥ —> FAC
-> $50
¢PAC -> ARG
#SQR(FAC) -> FAC
:MOVe byte
*MOVe 4-byte word
;SURst ract: Double-byte (16 bits)
(16 bits)
rime.Factor
PRIME FACTOR est un petit
programme machine qui peut,
en quelques secondes — au pire
— déterminer les diviseurs
premiers d'un nombre compris
entre 2 et 1 073 741 824 (230,
soit environ un milliard).
Les applications sont nombreuses :
+ déterminer si un nombre est
premier ou non ;
= décomposition d'un nombre en
produit de facteurs premiers (l'objet
de DECOMPOSER), afin de
simplifier une fraction, de
déterminer le Plus Grand Commun
Diviseur de deux nombres, etc. ;
+ calcul trés simple et trés rapide de
tables de nombres premiers : j'ai
ainsi mis sur une disquette tous les
nombres premiers jusqu’a 580 000,
soit 47 600 nombres. Le calcul a
pris 8 heures. En Basic, un calcul
identique m'avait pris 48 heures !
Autre exemple : il met 6 secondes
seulement pour trouver que
42 841 001 est premicr.
De plus, le programme en lui-méme
présente un intérét pédagogiquc,
puisqu'il comprend une routine de
division entitre 32 bits par 16 bits,
ainsi qu'une routine de conversion d'un
nombre flottant en entier 32 bits...
Mode d'emploi
PRIME.FACTOR s'utilise simple-
ment a partir de l'Applesoft par la
commande Y = USR (X) (ou PRINT
USR(X)), oi X est le nombre entier 4
tester (il doit étre compris entre 2 et
1E9). Y conticnt alors lc plus petit
diviseur premier de X, ou zéro si
X est premier. Notons que
PRIME.FACTOR fonctionnera pour
Assembleur Merlin-Pro
1 SRRERR ERR ER AR ER ARE AREA AEE AS ERE
om
34 PRIME FACTOR *
qre eases pesrenraricede ean eet ‘
a Par P, CANTOY, 20/05/88 *
8 ’
8
9
10 NI = $0
11 ADRTBL = $4
12 N2 = $6
13 Rk = $8
14 USRIMP = $A
15 SQRNI - $50
16 ARG = $AS
17 RESULT - $EB
18 TEMP4 = SFC
19
20 PRIME = $2000
21 PREMTBL = PRIME+$100
22
23 ERROR = $D412
24 GIVAYF Cd SE2F2
25 GETADR = $E75Z 7 INT (FAC)
26 MAF = SEBEE
27 SOR SEE8D
28
30
a EXP OFF
4
33 MOV MAC
34 LDA $1
35 STA $2
36 <<
37
38 MOV4 MAC
39 MOV $1;$2
40 MOV $1+17$2+1
41 MOV $142; $242
42 MOV $1437§2+3
43 <<
44
45 SUBD MAC
46 LDA $1
47 SEC
48 SBC $2
49 STA $2
50 LDA §1+1
51 SBC $2+1
52 STA $3+1
Pom’s n° 38
27
X compris entre 1E9 et 4E9 (plus °. ae
exactement : 232), mais seulement si >4
: vble-b 16 bits
X admet un diviseur inférieur a a ome pate $1 BME ES RAE SOLE ts
32 768. Dans le cas contraire, un = 57 CMP §2
“OVERFLOW ERROR” est envoyé. 58 LDA $1+1
59 SBC §2+1 70 = 1 si $1 >= $2
Exemples : e SSS
f USR(12) donne 3 62 ROLD MAC #ROtate Left Double-byte
USR(11) donne 0 car 11 est premier 63 ROL $1
USR (20989) donne 139 car20989= 64 ROL $itl
139*151 S a
| USR(4284700%) connec) cat Xs 67 ASLE MAC sShift 4-byte word
est premier 68 ASL $1
USR (3343549127) donne 31573 69 ROL $1+1
car X = 31573*105899 70 ROLD §1+2
USR(2840783401) donne 74 <x
2 ERROR: cE S ROL4 MA 0 ft 4-b: d
jal 0. aC skOtate Left 4-byte wor
X>1E9 et Y = 5329942 7 ROLD $i
75 ROLD $1+2
. ¢ 76 <<
Principe iS
78
| PRIMERACTOR utilise pour ses 79 *####tdesaasassasasansaasavazens
calculs une table de tous les nombres
‘ 5 81 ORG PRIME
premiers compris entre 2 et 32 768 = g2
(PREMTBL), soit 3 512 enticrscodés 23 seTUSR MOV £>INTFAC32;USRUMP+2 ;Revectorise USR
| sur 2 octets. Cette table DOIT étre 84 MOV £<INTFAC32;USRIMP+1
chargée 256 octets aprés le début de RTS
PRIME.FACTOR (c'est-a-dire $2100 °°
87 INTFAC32 JSR MAF 7FAC -> ARG
si PRIME.FACTOR est assemblé en 5. LDA ARG pexposant -> A
$2000) avant toute utilisation de 9 AND £$7F
PRIME.FACTOR. 90 STA CNTR #Nbre de bits dans la mantisse
PRIME.FACTOR se lance depuis le 92 MOV £0;N1 ;Mise 4 zéro de N1
| [ieee 92 STA 141
disque par BRUN ou — (prononcer 93 SrA Rie
“smart RUN”). Il revectorise alors la 94 STA 143
commande “USR” du Basic etrendla 95
main au programme appelant. 96 INTFAC2 DEC CNTR #Convertit ARG
97 BMI INTFAC3 =; en un nombre entier N1
Lors de chaque appel ¥Y = USR(X), 7? ash eer 7 de 32 bits (4 octets)
l'argument X est placé dans un 555 Roe | Ree
accumulateur flottant, FAC. j9; ROL ARG#+1
PRIME.FACTOR le convertit alors 102 ROL4 N1
en nombre entier sur 4 octets, puisle 103 UMP = -INTFACZ
divise successivement par tous les 194
nombres de sa table compris entre 2et 105 INTFAC3 JSR SOR #SQR(FAC) -> FAC
| SQR(X), jusqu’a ce que le reste de la 106 JSR GETADR sINT(FAC) -> $50
IRCA); Jus q 107 INC SQRN1 7S'agsure que la valeur
division soit nul. Auquel cas, le 39g BNE TESTNUM ; est par excés
diviseur est retourné dans FAC, et 109 INC SQRN1+1
T’Applesoft se charge ensuite d'affecter 119
le contenu de FAC & Y. Si aucun 111 TESTNUM MOV £>PREMTBL;ADRTBL+1
diviseur n'est trouvé, alors c'est 0 qui ee BON" ERREN TERT ADRTEE:
st placé dans FAC, puis dans Y. 774 tee ee
est plac > P * 41¢ BEQ TEST #Toujours pris
Enfin, si PRIME.FACTOR arrive Ala 375
fin de sa table (c'est-a-dire si X > 116 TESTLUP INY
3276842, soit environ 1E9), alorsun 127 BNE TESTI
message d'erreur est envoyé. } ae INC ADRTBL+1
ROS epee are , 120 TEST3 LDA (ADRTBL),Y ;Met le nombre premier suivant
Note : j'ai privilégié ici la vitesse. Si 33) STA N2 3} dans N2
toutefois 7Ko vous semblent trop 122 BEQ OVRFLOW 7Si 00, fin table
28 Pom’s n° 38
123
124
125
126
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
166
169
170
171
EXIT
FNDPREM
OVRFLOW
Iny
LDA
STA
CMPD
BCS
USK
LDA
BNE
LDA
BNE
LDA
Loy
UMP
LDA
TAY
BEQ
LDxX
MP
(ADRTBL) , ¥
N2+1
N2;SQRN1_ ;N2 > racine (N1)?
FNDPREM #Si oui, alors Nl premier!
biv32 sEffectue N1/N2
R #Reste nul?
TESTLUP = #Non -> on continue
R+1
TESTLUP
N2+1 #Si non premier,
N2 ¢ retourne le diviseur
GIVAYF
£0 #Sinon, retourne 0
EXIT #Toujours pris
£69 ;Affiche OVERFLOW ERROR
ERROR
PEREARARARERA RRA R ERE RE RE RE REE EEE
* Division entiére de Nl (32 bits) par N2 (16 bits)
bIV32
DIVLUP
DIVv2
DIVEND
CNTR
Mov4
MOV
STA
LDx
DEX
BMI
ASL4
ROLD
CMPD
BCS
ROL
UMP
ROL4
SUBD
MP
RTS
Ds
NI;TEMP4 ;Dividende -> Temp4
long, vous pouvez toujours modifier
PRIME FACTOR en réduisant la
table, voire méme en la supprimant
totalement (on teste alors tous les
entiers impairs). Dans ce dernier cas,
la mémoire occupée sera trés faible
(moins de 256 octets), mais alors les
temps de calcul deviennent trés
importants.
Comment
créer PREMTBL
Il est, bien sOr, possible de saisir
PREMTBL manuellement, a partir du
moniteur. Mais alors “bonjour le
travail” ; PREMTBL est longue de
3512 x 2 = 7024 octets. Le mieux est
de calculer PREMTBL 4 I'aide du
programme Basic CRE.PREMTBL.
Celui-ci calcule les 3 512 nombres
premiers inférieurs contenus dans
PREMTBL, puis les code sur 2 octets
et enfin les sauve sous forme binaire
dans le fichier PREMTBL, en
utilisant le préfixe courant.
Pour lancer le calcul, il suffit de taper
“RUN CRE.PREMTBL”. Attention,
cela prend plus d'une heure !
A vous maintenant de construire vos
applications, comme par exemple la
simplification de fractions ou la
représentation graphique de spirales de
nombres premiers. 4
£0;R #Mise 4 zéro du reste R
Rtl
£32 #Le dividende a 32 bits
DIVEND
TEMP4
R
R:N2 7Si R>=N2, le quotient est 1
DIv2 #sinon 0
RESULT
DIVLUP #Toujours pris
RESULT
R7N2;R 7R - N2->R
DIVLUP
1 Programme
OFF ‘CRE.PREMTBL’
10 REM CALCUL ET CREATION DE
PREMTBL
20 LOMEM: 16384
PRIME FACTOR 30 DS = CHRS$ (4): DIM K(3512)
40 PRINT : PRINT “CALCUL PREL
FONCTIONNE IMINATRE";
guilt TRS 50 K(2) = 1:K(1) = 0:K(3) = 1:
N=2
60 FOR I = 5 TO 255 STEP 2
Apple I+, //[e, 70 IF INT (I / 2) = (I / 2)
THEN K(I) = 0: GOTO 120
/fe ET IIcs 80 C = INT ( SOR (I))
90 FOR J=3T0C STEP 2: IF
sous DOS 3.3 ou INT (I / J) = (I / J) THE
NJ = 999
sous ProDOS fone
110 IF J < 999 THEN PRINT ".
“¢sK (2) = 1s =< N+ 2
120 NEXT
130 PRINT : PRINT : PRINT "CA
LCUL DE PREMTBL:": PRINT
140 J = 1: FORI ~ 1 70 256: I
F K(I) THEN K(J) = I:d = J
+ 1: PRINT I,
150 NEXT
160 FOR I = 255 TO 32767 STEP
2
170 FOR J =2 70 54
180 IF INT (T / K(J)) = (I /
K(J)) THEN J = 99
190 NEXT
200 IF J < 99 THEN PRINT I,:
N= N+ 1:K(N) =T
210 NEXT
220 PRINT ; PRINT CHR$ (7)7"
CREATION DE PREMTBL”
230 AD& = 8448: REM $2100
240 FOR I = 0 TO 3511:X = K(I
+1)
Pom’s n° 38
29
F | 250 POKE ADé+I*2+1,x/ 2058:C@ Bl 04 85 07 AS 06 CS 20 PRINT CURG (4) "BRUN PRIME
| 256: POKE AD$ + I * 2,X - 2060:50 AS 07 B5 51 BO 12 20 «FACTOR, A$2000"
256 * INT (x / 256): NEXT 2068:83 20 AS 08 DO DF a5 09 30 PRINT CHRS (4) "BLOAD PREM
TBL, A$2100"
40 LOMEM: 16364
50 HOME : PRINT "En utilisant
260 PRINT CHR$ (7)
270 PRINT D$"BSAVEPREMTBL, A"A
De", L"2 * N 2088:01 85 FD AD UZ 85 FE AS PRIME FACTOR, je peux dec
2R0 TEXT 2090:03 85 FF AS 00 85 08 85 omposer un nombre entier <
2098:09 AZ 20 CA 30 39 U6 FC 4 189 en"; PRINT “produit
i 20A0:26 FD 26 FE 26 FF 26 08 de facteurs premiers."
Récapitulation 20A8:26 09 A5 08 C5 06 AS 09 60 PRINT :MAX — 32768 ~ 2
20B0:E5 07 BO 0B 26 EB 26 EC 70 PRINT : PRINT : INPUT "Nom
| ’ a
| PRIME.FACTOR 20B8:26 ED 26 EE 4C YB 20 26 bre a décomposer ou 0 ? "7
3 ir saisi 20C0:EB 26 EC 26 ED 26 EE AS X:X = INT ( ABS (X))
rés av
| ae Oe ae ee 20C#:08 38 E5 06 85 08 AS 09 680 PRINT : IF X = 0 THEN END
moniteur, vous le sauvegarderez par ba =
BSAVE PRIME.FACTORAS2000,L$D9 —-7000#E5 07 85 09 4c 9B 20 60
2008: 00 90 IF X > = MAX THEN PRINT
2000:A9 20 85 0C AQ 09 85 OB “Trop grand!": GOTO 70
Wee eee ae 100 PRINT “Liste des facteurs
| 2020:8D D8 20 AS 00 85 00 €5 Programme pieilens de "Xt",
2018:01 85 07 AS 03 CR DA 20 fj * bam ae e
2020:30 13 06 A9 26 AB 26 A? DECOMPOSEUR Bee W Pes es ae
2028:26 A6 26 00 26 01 26 02 0
2030:26 03 4C 1D 20 20 a0 EE 1 REM DECOMPOSITION EN PROD 45, porym y sx = x / Y= GOTO
2038:20 52 F7 E6 50 DO 02 E6 UTT DE FACTEURS PREMIERS ce
| 2040:51 AQ 21 85 05 AI 00 8&5 10 TEXT : (E : PRINT “Je ch
| 2048:04 AO 00 FO 05 CA DO 02 arge PRIME FACTOR et PREMT
2050:E6 05 Bl 04 85 06 FO 26 Bbaes™ J
TimeOut GrarH
| VOICI QUELQUES
EXEMPLES QUI ILLUSTRENT
LA PUISSANCE DE GRAPH.
SANS QUITTER
APPLEWORKS, LES
GRAPHIQUES SE
CONSTRUISENT
INSTANTANEMENT
EXACTEMENT ADAPTES A
VOS BESOINS. CHANGEZ
UNE VALEUR ET TROIS
| | TOUCHES SUFFISENT POUR
AFFICHER LE GRAPIIIQUE
MODIFIE. ET POURQUOI
NE PAS AUTOMATISER
CONSTRUCTION ET 28 (22, 5%)
IMPRESSION DES GRAPHES
AVEC ULTRAMACROS ?
30 Pom’s n° 38
Vous l'avez strement
entendu dire, avec un brin
d'envie, par des amis qui
programment : «Un éditeur
de programmes Basic ?
J'emploie mon traitement
de texte, voyons !». Mais
comment font-ils done ?
Le principe est fort simple : partant
d'un fichier de traitement de texte, on
le transforme en un fichier de type
TXT (ASCII), on va en Basic
Applesoft, on EXECute ce fichicr : &
partir de 14, on peut le sauver sous le
nom qu'on veut avec SAVE : il est
devenu un fichier BAS (faites “RUN”,
vous verre7).
La réalité est un peu plus complexe,
surtout si l'envie vous prend d'aller
travailler avec AppleWorks un fichier
Basic déji existant. Essayez de
transformer directement un fichier
BAS en fichier aitement de texte :
AppleWorks est d'accord pour
convertir n'importe quel fichier en
traitement de texte AWP, mais les
résultats sont pour le moins
déconcertants. Il vous faut d'abord
‘traduire’ votre fichier type BAS en
fichier type TXT (ASCII), et
malheureusement il n'existe pas en
Basic Applesoft de commande qui
fasse le contraire d'EXEC. II faut done
Tuser une peu. On verra cela un peu
plus loin.
Tout ceci peut évidemment se
maitriser, et un programme sous
forme de traitement de texte est quand
méme plus facile a travailler que sous
sa forme Basic (la procédure de
modification en Applesoft avec ESC
et les fléches est parfaitement
odieuse). Mais, sauf pour les tout
petits programmes, ce n'est pas la
joie: pour peu qu'il y ait beaucoup
d'instructions par numéro de ligne, et
des REMs 4 droite et 4 gauche, la
lecture ne sera pas facile. Non, non,
croyez-moi, ceux qui vous disent que
le traitement de texte AppleWorks est
Téditeur idéal pour les programmes en
Basic Applesoft vous racontent des
histoires. Ils ‘friment’. Les avez-vous
seulement vus a I'ceuvre ?
Mais heureusement SuperMacroWorks
peut venir mettre de l'ordre dans ce
fouillis, en permettant de formater et
déformater votre programme. Ce
sera le sujet de cet article, qui vous
proposera aussi un certain nombre de
macros-commandes pour accélérer et
simplifier l'écriture de vos
programmes Applesoft. Certes, cela
ne vaudra jamais un vérilable éditeur
Basic écrit exprés en langage machine
(comme Program Writer d'Alan Bird,
ou le GPLE des Beagle Bros, ou
encore E.P.E. de Pom’s), mais les
avantages sont certains par rapport aux
misérables moyens d'édition de
T'Applesoft abandonné & lui-méme...
En fait, je vous propose deux macros
de formatage :
+ l'une ‘aére’ simplement le
programme, en allant a la ligne
Pom’s n° 38
Dimitri Geystor
entre chaque instruction, et en
intercalant A chaque fois un trait
fait de 5 ‘tirets’. Ce sera la macro
<sa-Ctrl-A> du fichier
MACROS.BASIC.
+ T'autre ‘ventile’ le programme, en
envoyant chaque instruction
séparée & la ligne. C'est la macro
<sa-Ctrl-V> du _ fichier
MACROS.BASIC.
Ilest possible d'aérer et de ventiler a la
fois, si vous ne craignez
Showing the first 100000 of 265455 characters.