Text content (OCR)
Mac
et mémoire virtuelle
Puzzle GS Basic
La DHGR facile
Essai
utilitaires Symantec
II 00430
UB
=
EE
Les outils
évoluent.
Echapperez-vous
aux TimeOut ?
Les TimeOut sont des pro-
grammes qui se greffent
sur AppleWorks. Ils sont
disponibles 4 tout instant,
sans quitter AppleWorks,
avec l'ergonomie Apple-
Works. Pom’s les a adapté
(en exclusivité) 4 la version
francaise 1.4 et livre des
manuels de référence en
francais.
Comment leur échapper ?
Pas simple, car se passer du
progrés, c'est un peu re-
venir aux roues dentées. Il
va falloir renoncer 4 des
possibilités étonnantes :
Rendre toutes les opérations
automatiques, utiliser la souris
partout dans AppleWorks avec
TimeOut UtrraMacros.., Créer des
menus 4a I'intérieur de macro-
commandes et profiter de toutes
les macros de MacroToots.
Imprimer avec la_ qualité
Macintosh sur une cinquantaine
dimprimantes 4 aiguilles grace a
TimeOut SuperFonts et ses 47 po-
lices de caractércs...
Imprimer les feuilles de calcul ‘a
alienne’, en plusicurs tailles...
TreOut SmeSpreap.
Représenter instantanément les
données du tableur sous forme de
graphes avec TimeOut Grars.
TimeOut Part, ce logiciel de
dessin en double HGR, intégré 4
AppleWorks, avec ses menus
déroulants.
DesxToots I et ses accessoires,
calculette, calepin, calendrier...
méme un crypteur de fichier pour
les documents confidentiels.
Copier des fichiers, les comparer.
Jes renommer, en changer le type
ete., travailler sur les volumes,
toujours sans quitter Apple-
Works, c'est ToweOut FrreMaster.
TmeOut PowerPack l'ensemble
d'applications intégrées pour
trier des colonnes, créer trois bu-
Teaux (36 fichiers) et trois presse-
papiers, lancer un autre pro-
gramme et revenir 4 AppleWorks,
charger les catalogues dans la
base de données, classer le
bureau, etc.
Travailler plus efficacement sur le
tableur ? TimeOut SpreapToots :
se simplifier les largeurs de
colonnes, recopier des lignes
dans des colonnes — ou I'inverse.
Transformer les formules en
valeurs, copier des blocs et lier des
feuilles de calculs...
Notes descriptives sur simple
demande. Bon de commande enfin
de numéro.
Editions MEV
12, rue d'Anjou
78000 Versailles
© (1) 39 51 2443
Minitel (1) 39 53 04 40
TimeOut,
le progres
simple
Numéro 43
juillet-aontt 1989
(3 * . _o
Editorial Cy Page 7
Hervé Thiriez
Programmation AppleWorks
Dimitri Geystor
—
a
@
‘ia
Essai Macintosh
ADN... le ShareWare
hors du commun
(esa] Ariel Sebban
Page #0
feemes, Page 8
SuperFonts
Daniel Lurot
Page 17
aed
Macintosh & Ram virtuelle
= Alain Raynaud
Page 42
Bibliographie
Alexandre Duback
ep (qa Page 44
aaa)
: des patches
We [Tes] Daniel Lurot
Les utilitaires Symantec
= Hervé Thiriez
Page 45
Basic et DHGR
=aTl Tes Philippe Matsumoto
ees) Page 20
—<—<— | TS GB aoa
Un programme en GS-Basic :
v
uzzle
Bruno Boissiére
Page 29
Langage C :
utilisation du
‘Color Picker Package’
Jean-Luc Bazanegue
FreeWare & ShareWare
Polices & DPA
fey Os) pe
a a] | Page 35
—==ag Page. 47
Macintosh :
Les News
= = Ariel Sebban
= SEE Page 51
Apple // for ever
Jean-Yves Bourdin
Un nouveau CDA :
Grille-pain
Jean-Yves Bourdin
= Page 38
[we | Ics
Bees | ass]
MC Page 59
< Petites annonces
Mots croisés Page 74
Les annonceurs : Apple : pages 4 & 5 ; Gribouille SA : page 27 ; ToolBox : page 39.
Editions MEV - 12, rue d’Anjou - 78000 Versailles. Tél. : (1) 39 51 24 43. Directeur de la publication : Hervé Thiriez
Dam’c n° AQ
En 1505, Léonard de Vinci peint la
Joconde. Il meurt désargenté quatorze
ans aprts, sans que l'on puisse toutefois
établir un lien entre ces deux événements.
Sil avait eu un Macintosh, une ligne
Ecean seat avec ke logic!
4 Dimension. Apple. le logo Apple. Macintosh
@ Macintosh fcx
1
:
v
so, AMON oa, MN AS A
= - = =
<e
a
de telephone et un modem, il aurait
pu, de son atelier, communiquer en
toute facilité avec le monde entier.
Il se serait ainsi connecté avec les
salles de vente tout en continuant 2
dknesees a Arp
ae fe
ervé les cours du
Jes copies de sa
déventuels
our plus « informations, ta
doute fait mentir l’idée qu’un artiste n’est riche qu’une fois mort.
a: Mona Lise z
(ie
THTTR|
$780 009]
$262.9]
teere| —$782000]
$-50.000]
= 3.57812
jejour Le Lowrse
ie ov
Wy
La Joconde est au Louvre et Macintosh
est partout.
La oti les hommes ont besoin de
travailler sur des informations. De
consulter n’importe quelle banque de
3614 cnde : Apple.
données, de n’en garder que ce qui les
intéressent, d’y adjoindre des graphi-
ques simplement en cliquant. Et d’en-
voyer le résultat sans quitter leur
bureau.
EAU AASAN 2_
Soudain un doute
m’effleure. Sil avait eu
un Macintosh Vinci
aurait-il offert la Joconde
a Francois-I"?
Ul
Apple
EXTRAFONTS
Deux APPLICATIONS, CoLoRFontTS
ET EpriFonts, QUI DONNERONT A
voTRE AppLEWorKSs/TIMEOUT
ENCORE PLUS DE SOUPLESSE ET DE
PUISSANCE
- ColorFonts donne 4 TimeOut SuperFonts la
couleur.
- EdiFonts est un éditeur de polices qui dépasse
de loin les possibilités d’Edipol et FontViewer
réunis.
CotorFonts
Votre SuperFonts monochrome (version francaise
Pom's) est transformé en ColorFonts, permettant
désormatis l'impression dams les sept couleurs de
l'Imagewriter II (noir, jaune, rouge, bleu, orange,
vert et violet), en conservant bien sir toutes les
possibilités de SuperFonts (polices et styles variés,
justification 4 droite, tabulations, impression
d'images).
Les changements de coulcurs peuvent, comme les
changements de polices ou de styles, intervenir a
tout endroit, méme au milieu d'un mot. Vous
pouvez aussi imprimer une image dans la couleur
souhaitée.
En bonus, ColorFonts vous donne aussi accés aux
caractéres normalement inaccessibles par Super-
Fonts (codes 0 a 31).
Bien entendu, les commandes habituelles restent
inchangées.
ColorFonts est compatible avec les autres impri-
mantes, mais timprime alors en monochrome.
de DanieEL Lurot
EpiIronts
Une nouvelle application TimeOut
Avec EdiFonts, vous pourrez visualiser, modifier et
imprimer vos polices de caractéres, mais aussi en
créer de nouvelles (er parlamt de zéro), copier des
caractéres d'une police vers une autre. Tout ceci
sans quitter AppleWorks !
Avec 4 votre disposition un index des polices
(analogue a l’index des fichiers AppleWorks) per-
mettant de travailler sur plusieurs polices (jusqu’a
sept a la fois).
Affichage de la police page par page, commandes
ergonomiques
Accés rapide aux caractéres désirés
Copie d'écran graphique
Impression de la police compléte
Visualisation individuelle et modification des
caractéres
Edition rapide grace 4 des commandes puis-
santes : insertion ou effacement de calonnes ou
de lignes — déplacement du caractére tout
enticr dans les quatre directions — effacement
de la grille d'édition — modification des ‘width’ et
‘offset’
Création de nouveaux caractéres
Copie de caractéres interne, vers le presse-papiers,
du presse-papicrs
Suppression de caractéres
Visualisation, impression et modification des
paramétres globaux de la police — firstC —
lastC — leading et ke Max — ascent — descent
— nom de la police
La disquette ExtraFonts cxistc cn 5,25"/140Ko et 3,5"/800Ko. ExtraFonts est compatible avec les Apple
//e 128Ko, //c, Ics.
ColorFonts nécessite AppleWorks, une ImageWriter II et TimeOut SuperFonls en version frangaise.
EdiFonts nécessite AppleWorks et au moins un TimeOut en version francaise.
ExtraFonts : 500,00 F — Carte Joker : 450,00 F — Bon de commande page 70
Pom’s n° 43
Ont collaboré a ce numéro
Jean-Luc Bazanegue - Bruno Roissidre
Jean-Yves Bourdin - Alexandre Duback
Dimitri Geystor - Olivier Herz
Nathalie Laudat - Daniel Lurot
Philippe Matsumoto - Gérard Michel
Christian Piard - Jotlle Piard
Alain Raynaud - Ariel Sebban
Hervé Thiriez
Directeur de la publication
rédacteur en chef
Hervé Thiriez
Rédacteurs
Jean Luc Bazanegue Christian Piard
Sidge social
Editions MEV ~ 12, rue d’Anjou
78000 Versailles — # (1) 39 51 24 43
Serveur Minitel (1) 39 53 04 40
Publicité
Editions MEV
Diffusion
N.MLP.P.
Impression
Berger-Levrault — Z. I. Croix de Mew
Route de Villey-Saint-Etienne
54200 Toul — # 83.35.61.44
Photos
CP & JLB
Dessins
Gilles Coursier
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 & Apple Computer, Inc. ni
& Apple Computer France $.A.R.L..
Apple, le logo Apple, Mac etle
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.
@Editions MEV 1989
Toute reproduction intégrale ou partielle,
effectuée par quelque procédé que ce soit,
sans l'accord écrit d’Editions MEV,
constitue une contrefagon.
Loi du 11 mars 1957, articles 425 et
suivants du Code Pénal.
Droits de traduction, de reproduction et
d'adaptation réservés pour tous pays.
Editorial
Apple Expo
La grande féte automnale d'Apple aura lieu cette année dans
le CNIT rénové de la Défense. Apple profite de ce nouveau
cadre pour améliorer encore I'accueil du visiteur, ‘look’ des
stands, cartes d'identification magnétiques pour les
visiteurs...
Comme |l'an passé nous serons a votre écoute, stand M9 ; vous
rencontrerez également des auteurs de Pom’s présents
chacun des quatre jours du 27 au 30 septembre.
C'est pour nous une occasion de vous offrir des invitations,
lisez page 71.
Ou s'arrétera-t-il ?
Daniel Lurot frappe encore: SuperFonts imprime en couleurs
sur l'ImageWriter II et voici un éditeur de polices de
caractéres surpuissant et intégré. AppleWorks est devenu
une plate-forme depuis laquelle, avec la souris, on travaille
des textes, on crée des graphes associés au tableur, on copie
des disques, on imprime ‘a la Mac’ le tout sous le contréle de
procédures automatisées...
Notre souci de diversité dans la réalisation de votre revue
nous conduit a ouvrir les colonnes au GSBasic avec un Puzzle
fort élégant et au LightSpeedC sur Mac. Une belle place est
réservée 4 un ‘shareware’ Mac fabuleux présenté sur six
disquettes : 4 découvrir sous la plume d'Ariel Sebban qui ne
jure plus que par ADN.
Hervé Thiriez
Pom’s n° 43
A loccasion de cet article, Pom’s
vous présente deux illustrations : un
petit divertissement pédagogique de
calcul mental, et un gros fichier de
macros spécialement consacré aux
opérations de Traitement de textes.
Les "sources" des deux fichiers sont présentés dans l'article
lui-méme, et inclus sur la disquette Pom’s sous les noms
CALCUL.UM et MACROS.TDT. La disquette Pom’s
contient en outre les deux fichiers "Task" correspondants,
nommés CALCUL.TSK et TDT.TSK. Vous y trouverez
enfin le fichier CALCUL.MENTAL (tableur AppleWorks)
dont CALCUL.TSK a besoin pour fonctionner (le modéle
en est donné 4 la fin de cet article)
Note : Les deux fichiers "Task" sont prévus pour des Apple
II (GS ou autres) dotés d'une horloge, car ils démarrent
AppleWorks sans faire la pose pour insérer la date. L'article
explique comment modifier la premiére macro du fichier
“source” pour qu'Apple Works fasse la pause.
Les fichiers Task
Les fichiers "Task" sont une innovation d'UltraMacros
inconnue des habitués de SuperMacroWorks. Ils vous
permettent de disposer d'ensembles de macros spécifiques,
en nombre illimité, activables 4 tout moment en un clin
d'ceil a partir d'AppleWorks ou sélectionnables avant méme
de démarrer AppleWorks.
Avec SMW, quand on avait besoin d'un jeu de macros
spécifiques (différentes de celles déja installées au
démarrage), il fallait charger le fichier Tdt correspondant sur
le Bureau, puis l'activer (en le compilant avec la commande
oa-=). Ces macros, présentes en mémoire vive,
s'‘évaporaient a l’extinction d'AppleWorks.
SMW ni'autorise qu'un seul jeu de macros au démarrage
d'AppleWorks. Pour le changer, il faut passer par une
procédure relativement compliquée : quitter AppleWorks,
lancer SMW, choisir l'option "Compiler", désigner le
fichier & compiler, le compiler, indiquer & SMW
l'emplacement d'AppleWorks, y installer le nouveau jeu de
macros compilées, et enfin redémarrer Apple Works.
Avec UltraMacros, I'équivalent de la compilation SMW
avec <0a-=> reste possible, avec en prime des "finesses”
supplémentaires ; on charge le fichier Tdt de macros sur le
Bureau, on fait Pomme-Escape pour aller au menu
Programmation AppleWorks
Dimitri Geystor
TimeOut, et l'application TimeOut "Macro Compiler”
donne le choix entre ;
1. Compiler avec pause & chaque ligne ou non
2. Compiler tout le fichier ou a partir du curseur
seulement.
De plus, le compilateur d'UltraMacros est "intelligent", car
il signale les fautes de syntaxe ou de logique éventuelles.
Mais UltraMacros vous donne surtout le moyen de
pré-compiler des jeux entiers de macros spécifiques, qui
peuvent étre conservés sous la forme de fichiers-systéme
(type SYS).
Les avantages ?
1. L'interchangeabilité instantanée 4 tout moment a partir
d’AppleWorks (avec l'application Macro Options du
menu TimeOut), Il n'y a plus a attendre le temps de la
compilation, qui n'est pas négligeable dans le cas de
gros fichiers.
2. Le désencombrement du Burcau d'ApplcWorks : Ices
fichiers "Task", de type SYS, n'ont pas besoin d'y étre
chargés.
3. La faculté de choisir le jeu de macros avant méme de
lancer AppleWorks.
4. La possibilité d’enchainer immédiatement sur un
macro-programme, grace a l'exécution automatique de
la premiére ou de la deuxigme macro du fichier "Task".
Les macros d'un fichier "Task"
sont-elles différentes ?
Rassurez-vous, la réponse est NON. C'est la nature du
fichier qui est différente, mais les macros dont il est issu
sont des macros UltraMacros tout a fait normales. Il faut
simplement réserver les DEUX premiéres macros aux
fonctions de démarrage.
— La premiére macro correspond au démarrage extérieur &
AppleWorks, et exécute a votre place les gestes que
vous faites quand vous démarrez votre copie d'AppleWorks.
Réduite 4 sa plus simple expression, cette premitre macro
contiendra deux RTN, correspondant aux deux poses que
fait AppleWorks au démarrage (l'une pour insérer la
disquette "Programme", l'autre pour valider la date). Si
vous avez besoin d'insérer la date manuellement, il vous
faut insérer une commande <input> entre les deux RTN.
Reportez vous aux exemples commentés de cet article.
Vous pouvez enfin, mais ce n'est pas obligatoire, terminer
la premiére macro par un "goto" a la deuxitme.
Pom’s n° 43
— La deuxitme macro correspond au démarrage a partir
d'AppleWorks, au moyen de I'application Macro
Options. Dans ce cas la premiére macro est totalement
ignorée. Sous sa plus simple expression, la deuxitme
macro pourrait tre totalement vide. Mais il cst
recommandé d'y inclure un petit message qui confirme que
les macros du fichier "Task" sélectionné ont bien été
activées, Si vous avez prévu un macro-programme
autonome, c'est cette macro qui enclenchera les diverses
opérations nécessaires (voir, par exemple, le source du
macro-programe ‘budget’ sur la disquette Pom’s n°41),
Comment créer un fichier "Task" ?
La disquette UltraMacros vendue par Pom’s contient les
applications TimeOut dont vous avez besoin, a savoir
"Macro Compiler" et "Macro Options”.
1, Mettez le fichier "source" (Tdt) qui contient vos macros
sur le Bureau d’AppleWorks. Compilez-le avec Macro
Compiler.
2, Appelez Macro Options avec Pomme-Escape, et
choisissez l'option 2 "Créer fichier Task". Vous serez
invités a taper le nom du futur fichier "Task". Donnez-lui
un nom clairement reconnaissable, faites RTN. Macro
Options vous informe que le fichier "Task" a été créé, C'est
tout. Si un fichier "Task" du méme nom existe déja, vous
en tes aussi informé, et vous avez le choix soit de
renoncer, soit de remplacer I'ancien fichier par le nouveau.
Comment démarrer un fichier
"Task" ?
1. A partir d'AppleWorks, en appelant I'application Macro
Options, option 1. La liste des fichiers "Task"
disponibles s'affiche, vous n'avez qu’a choisir.
Note : il est commode d'inclure dans chaque fichier
"Task" une troisiéme macro qui automatise cette
sélection (voir exemples), et de transformer en fichiers
"Task" vos macro-fichiers les plus courants : vous
pourrez ainsi faire des permutations instantanées.
2. Au moyen d'un sélecteur, du type PROSEL ou BBB.
Note : Le propos de cet article n‘est pas d’expliquer
comment fonctionne un sélecteur. A l'intention de ceux
qui n'ont pas encore ProSel — mais comment ont-ils
pu survivre sans lui ? — je précise quand méme que le
fichier ProDOS de la disquette d'UltraMacros contient le
mini-sélecteur BBB ou Bird's Better Bye. Pour y
accéder, il faut partir de l'écran du Basic Applesoft, taper
BYE et faire Return.
Souvenez-vous que :
1. Un fichier "Task" est un fichier de type SYS qui réside
aux cétés du fichier ULTRA.SYSTEM sur votre
disqueue AppleWorks. II contient des macros pré-compilées
prétes a l'emploi, et n'a pas besoin d'étre chargé sur le
Bureau d'AppleWorks pour étre activé .
2. On peut I’activer instantanément a partir d'AppleWorks
par l'application Macro Options du menu TimeOut.
Dans ce cas, la deuxitme macro du fichier sera
automatiquement exécutée,
3. On peut aussi I'activer avant de démarrer AppleWorks
au moyen d'un sélecteur de programmes du type ProSel
ou Bird's Better Bye, Dans ce cas, le fichier "Task" entraine
automatiquement a sa suite Ic démarrage d'AppleWorks, et
exécute la premiére macro qu'il contient.
4. Le fichier "source" (c'cst-d-dire les macros écrites en Tdt
AppleWorks) est nécessaire une seule fois, a la création
du fichier "Task". Ensuite, on n'en a plus besoin pour
activer les macros, mais il est sage de l'archiver pour
pouvoir relire les commentaires en cas de modifications.
Fichier MACROS.TDT
Un fichier de macro-commandes consacré au traitement de
textes (avec plusieurs commandes inédites)
START
Macros de démarrage du fichier "Task" :
(Envoie au Menu principal
Works, en cas de démarrage par
sélecteur, hors AppleWorks)
<ba-$>:<a
rtn (correspond 4 la pause pour insérer le
disque Programme)
( input ) (ici, l‘input est inhibé )
rtn (valide la date)
ba-*>! (enchaine sur la deuxiéme macro)
Note : Si vous n'avez pas d’horloge, enlevez les
parenthéscs qui inhibent "input" avant le deuxigme "rin"
afin qu'AppleWorks fasse la pose qui permettra d'insérer
la date.
<ba-°>:<all (Démarrage avec Macro Options)
msg ' Macros TdT activées '>!
Dans cet exemple, la deuxitme macro contient simplement
un message d'information. Comme la premitre macro
renvoie aussi a la deuxiéme, ce message s‘affichera dans
tous les cas de lancement du fichier "Task",
Macro d'appel des fichiers “Task” :
<ba-s>:<all
$0="Macro Options"
oa-Esc find rtn rtn
msg ' Choix = fléches.
ESC pour abandonner ‘:
RIN pour valider,
Pom’s n° 43
|
|
|
begin k=key
if k=10 down rpt else if x=11 up rpt else
if k=13 rtn stop else if k=27 esc ese stop
a!
MACROS de TRAITEMENT de TEXTES :
<left>:<awp c=0 (curseur en début de ligne)
begin
oa-tab c=c+l ifnot c=18 rpt>!
<right>:<awp (curseur en fin de ligne)
sa-left : down : left>!
Rappel :
Les commandes AppleWorks Pomme-fléches envoient le
curseur au début du mot précédent (0a-left) ou suivant
(oa-right),
La commande UltraMacros Pomme-pleine-Rn (sa-Rtn, ou
<find>) envoie le curseur au Retour-chariot (fin de
paragraphe) suivant.
Il n'existe pas de commande pour aller au début du
paragraphe en cours.
Rappelons aussi qu'aux yeux d'AppleWorks tout texte qui
se termine par un Retour-chariot est un paragraphe ; a la
limite, une ligne qui ne contiendrait qu'un seul espace serait
quand méme un paragraphe.
La macro suivante renvoie le curseur en début de
paragraphe, et fournit aussi en bas d'écran des informations
précieuses pour la mise en page. Il est commode de
Tactionner avant de créer une marge gauche ou une nouvelle
valeur d'indentation avec les macros <sa-g> et <sa-i>. La
macro fait la différence entre un "vrai" paragraphe (au
moins deux lignes non-vides suivies d'un Retour-chariot),
une ligne unique (non-vide) ou une vraie ligne vide.
<ba-left>:<awp (curseur au début du paragraphe
et info sur MG, IN et CI)
sa-* (lire info options)
$l-str¢ g (définir les chaines)
ba-6 (formater MG)
zoom ba-t (test ligne)
if q=$d0 goto sa-4 else (si code = ligne
vide)
k=0 (drapeau)
begin ba-t
if p<12@ sa-/ rpt else
if p>128@ sa-) rpt >!
(:<awp
if g=$d0 down yuto sa-5 else
if fel goto sa-5 else
1£ f=0 up k=2>!
) :<awp
4f q=$d0 down goto ba-L else
if f=1 goto ba-L elise
if £=0 Lf k=0 up k=1 else
tf f=0 if k=1 down goto ba-L else
if f=0 1f k=2 down goto sa-5>!
<ba-t>:<awp (test info ligne)
t=32312 (début index des lignes)
posn x,y (y=ligne)
ray*Z+t-1: q=peek r: (q=code de la ligne)
p=peek $7c01 (info ligne ordinaire)
ba-1 >! (test : si premiére ligne,
<ba-l>:sawp (teste la premlére ligne,
sous-routine)
up posn a,b
if y=b f=1 else f=0 down>!
<ba-L>:<awp (cas de la ligne unique,
sous-routine)
sa-left ba-6 sa-* p=peek $7c01 z=p-128
msg '--- Ligne unique de ' + str$ z+ " car.
7 MG= "+ $1 +", INe "+ strs i+", CI=
"+ str$ c+" ": stop>!
4:<awp msg ‘--- Ligne vide, MG= ‘ + $1 +", IN=
"sstr$i+ ", Cle "+ str$ce"":
f=1)
sa-left stop >!
S:<awp msg '--- Paragraphe ; MG= ' + $1 +",
INN £ Steg L +): Cl'= H+ BtFE GAG
stop>!
*:<awp (Sous-routine : Lecture des Options.
Merci 4 Daniel Lurot)
Sa-left
poke $031f,$c0:call $031b:C~peok $031a +peek
$7067 (MG)
poke $031f,$bf:call $031b:I=peek $031a (IN)
poke $031f,$cl:call $031b:J=peek $03la
(JU=U, J,C)
poke $031f,$c3:call $031 $031la (LC)
poke $031f,$c4:call $031 $031a (MD)
poke $031f,$c5:call $031b:C=peek $03la >!
(CI)
Aller faire une édition, et revenir au
point de départ :
La macro ci-aprés permet (aprés I'avoir actionnée), de se
déplacer n'importe-oi dans le fichier, de I'éditer puis de
revenir au point de départ en appuyant sur la touche "£".
Tous les déplacements sont possibles : souris, fléches,
Pomme-fléches, Pomme-1 & Pomme-9, recherches avec
Pomme-R.
On peut taper un texte (sauf la touche £ ), effacer avec la
touche DEL et méme avec Pomme-E (y compris effacer des
options d'impression).
On peut faire du couper-coller (interne, ou par le
Presse-papiers).
On peut méme aller dans d'autres fichiers... La macro reste
active tant qu'on n'a pas appuyé sur la touche "£"
(dailleurs, le message de bas d'écran le rappelle), et elle sait
alors retrouver automatiquement le fichier de travail sur le
Bureau. Désolé, les autres macros ne sont pas reconnues
pendant que <ba-e> est active.
<ba-e>:<awp (Se déplacer ou éditer du texte, et
revenir)
peek $c54 { N° du fichier sur le
v = peek $761 : ( statut
posn n,o oa-o>FM<rtn>254<rto
posn *,y x=o-y+1
begin
msg ' Déplacements et édit
eau )
Pom’s n° 43
——————ir
Tapez £ pour revanir au point de départ
“selrl-x:
k=key
ifnot k=35 print chr$ k:rpt (déplacements et
édition)
else (retour)
pa-q print worth
oa-L>m254<rtn rtn oa-E rtn (retouve et
efface la marque)
begin posn 4,b (ze-positionne le curseur)
ifnot x=0 x=x-1 down rpt else
ifnot a=n right rpl else
msg "" : if v=0 na-z >!
La macro suivante nettoie tous les espaces superflus en fin
de paragraphe. Mettez le curseur sur une ligne, pressez
SA-W : le curseur va au premier retour chariot SUIVANT,
et enléve les espaces qui le précédent s'il y en a.
wi<all (nettole les espaces supesflus en Cin de
paragraphe)
find (va au premier retour chariot }
begin
Jefe : x = peek $10£5 (ecule, lit sous le
curseur)
if x = 160 then sa-del (supprime espace
éventuel)
rpt>!
Cette macro recolle deux paragraphes, quel que soit le
nombre de lignes vides qui Ics séparent.
Elle sert aussi & rattraper facilement un retour chariot tapé
par mégarde, ou a éliminer proprement un retour chariot en
bout de ligne, en conservant les espaces éventuels.
Le curscur doit étre sur la premiére ligne qui suit le hiatus.
hix<awp zoom oa-z ( affiche les R.C. }
up right sa-left
x = peek $10f5 ; ifnot x - 255 then sa
sa-del
zoom stop (supprime un retour chari
invalontaire)
else
begin (va en début de ligne)
x = peek $10£5 : ifnot x = 255 then oa-left
rpt elseoff
begin ( supprime les R.c. )
x = peek $10f5 : ifnot x = 160 then
del rpt else del zoom>!
Macros de tabulation par Randy Brandt
Idée originale de David R.Grigg ("Monsieur.Macro"
d'Australie).
Note : Avant d'essayer ces macros, organisez selon vos
désirs les taquets de tabulation avec la commande
Pomme-M.
Avancer le texte jusqu'au taquet de tabulation suivant : le
curseur "repousse” tout le texte.
<tab>:<all
w = peek S10F1 : insert (sauve type
curseur, force insertion)
$0 = screen 1,2,80 : (lit dans $0 la ligne
dlaffichage des taquets)
begin
spe : (insére un espace)
posn x,y : {lit position du curseur)
y = $8ff | x : (lit pos.taquet sur buffer
d'écran)
Zz - peek y ; if z — 61 then (taquet présent
? 61 est le "=" )
t ( répéte jusqu'au taquet suivant )
elseoff
ifw=1 oa-a : ctrl-x>! ( rétablit le
curseur; la commande “vide" ctrl-x rend
visible le nouveau curseur)
Faire reculer le texte jusqu'au taque
de tabulation précédent:
Le texte & gauche du curseur est écrasé.
<Ctrl-X>:<awp left oa-e oa-tab rtn>! (
sa-Clear sur un IIgs)
Aligner une colonne de chiffres ou
justifier le texte 4 droite :
Mettre le curseur au début du chiffre a aligner
<Ctrl D>:<awp (Justification 4 droite }
Sa-tab x = 0 (insére des espaces pour
pousser le nombre jusqu'au taquet)
begin
z = peek $10F5 (lire le caractére sous le
curseur)
ifnot z - 160 then (espace ?
oa-left )
ifnot z= 172 then right : x= x +1
(recherche la virgule }
tpl else
oa-left (recule au début du nombre )
begin
not x = 0 then del : x = x- 1 (recule
pour aligner les viryules )
rpt>!
si oui, saute 4
Aligner une colonne de nombres sur la
virgule :
La liste doit se terminer par une ligne vide
<ctrl-g>:<awp
v = peek $7c61 : (statut zoom ?)
if v = 0 Lhen va-z elseoff (zoom arriére)
sa-left (aller au début de premiére ligne)
begin
sa-ctrl-d (tabulation décimale)
sa-left (début de ligne)
down (ligne suivante)
Z = peek $10F5 : (caractére sous curseur ?)
ifnot z = 255 then (continue sauf si Return)
rpt elseoff if v= 0 oa-z>! rétablit statut
zoom
Pom’s n° 43
11
~--+> échantillon de liste de nombres : mettre
le curseur sur le premier nombre, et faire
sa-ctrl-q
123,34
2,45
1234, 46
88,00
67890,12
Commandes de marge gauche et
d'indentation :
Tlest recommandé de les faire précéder de ba-left (curseur en
début de paragraphe + informations).
Pour un complément d'information, faites sa-V:
-> Cette dernitre macro permet de repérer exactement la
derniére commande en vigueur pour la marge gauche,
l'indentation ou les car/inches.
-> Si vous souhaitez modifier l'option ainsi repérée, tapez
aussit6t aprés la commande sa-T : elle posera le curseur
dessus.
-> Pour revenir ausit6t aprés a la ligne de travail quittée,
tapez sa-B.
Attention : Ces trois macros sont concues pour travailler
ensemble. La macro sa-V fait la recherche en remontant
vers le début du texte, sa-B en descendant vers la fin. Et
est sa-T qui mémonrise la ligne que retrouve sa-B.
Si le texte est long, et si l'option est a son tout début, la
recherche par sa-V prendra un peu de temps - soyez patient.
Les spécialistes du langage machine devraient pouvoir
réaliser la méme macro cn beaucoup plus rapide ; avis aux
amateurs, Pom’s attend vos contributions !
ifnot p=s (si non trouvée)
3
beb-2 y-y-1 ba-3 ba-@ rpt else (continuer
la recherche)
m=peek b (si l'option est repérée)
$l=str$ g ba-6 (formater MG)
‘+ $4 + " active est en
y +" = Au curseur M
tsursc+" IN=
we s1e"
etre oe" 32
ome =
<ba-8>:<awp
msg '--- Recherche... ‘ + sir$ yo!
<ba-6>:<awp
l=len $1
ifnot l= 1 $2=left $1,1 $3
$2="0" $3=$1 elseoff
Si= $2 + + $3>!
(formater MG)
<ba-3>:<awp (si déja début de fichier...)
if b<y $1=str$ g ba-€
msg '~ Pas d’option ' + $4 +" sélectionnee
--- Au curseur: MG="+$1+" Claus
strsc+" IN + strs i+" "sstop >!
ti<awp (trouver l'option en question)
v-y (ligne cherchée)
posn x,y h=y (ligne q
ea-1 oa-L>o<print $4
(recherche)
begin posn x,y
if v=y rtn stop else
>oxrpt>!
tée)
: rtn onerr stop
bixawp (retour 4 la ligne quittée)
if h=0 stop else
12
begin
visawp (localiser l’option IN, MG ou CI en oa-down posn x,y if ych rpt else
vigueur) oa-up
msg ' Options actives ? Taper G pour MG, I begin
pour IN ou C pour CI ; Abandon = Esc ': down posn x,y if y=h stop else rpl>!
sa-*
begin k=key Définir une nouvelle marge gauche :
if k=71 $4="MG" s=217 goto ba-ctr1-x
elseoff g:<awp (commande de marge gauche)
if k=103 $4="MG" s=217 goto ba-ctr1-x sa-* $1-str$ g ba-6
clscoff msq '~-- Marge actuelle : ' + $2 + ',' + $3
if k=73 $4="IN" s=222 goto ba-ctri-x + * 7 modifier ? O/N ':
elscoff begin k=key
if k=105 $4="IN" s=222 goto ba-ctri-x if k-78 msg ""; stop else
elseoff if k=110 msg "": stop else
if k=67 $4="CI" s=219 goto ba-ctr1-x ifnot k=79 ifnot k=111 rpt else
elseoll msg ' Tapez la nouvelle marge, et RTN ':
if k=99 $4="CI" s=219 goto ba-ctrl-x SO=getstr 4:
elseofft oa-o
if k=27 msg "":stop elseoff rpt>! >mg< rtn sa-0
onerr goto sa-e rtn esc msg "":stop>!
<ba-ctrl-x>:¢awp (recherche de 1'option Définir une nouvelle indentation :
précédente)
200m oa-z iz<awp (commande d'indentation )
a=32312 f=1 $2= "Indentation "
posn x,y sa-* $lastrg i
b=y*2+a-1 sa-k 0a-0
begin >ins rtn print x : rtn ese
pepeek b msg "":stop>!
2, oO
Pom’s n° 43
kisawp (sous-routine)
x-0 sa-m
poke $7D5,$a0 :
begin k=key
if k=21 if x>29 rpt elseoll
if k=21 x=x+1 sa-m rpt elseoff
ig if x=0 cpt elseoll
(clic souris - RTN )
if k=8 x=x-1 sa-m rpt elseoff
if k=27 bell esc esc msg ' Abandon ': stop
elseoff
ifnot k=13 rpt >!
mr<awp (sous-routine)
msg "Indenter de "+ str$x +"
# valeur actuelle IN= "+ strsi+" ":
hilight 13,23,14,23>!
caractéres
e:<awp (sous-routine, message d'erreur)
bell esc esc
msg ' Valeur non reconnue. Recommencez '
stop>!
Nettoyage radical d'une option
d'impression :
Si vous souhaitez éliminer une option d'impression partout
dans le texte, c'est la commande suivante qui fera table rase.
Elle vous invite d'abord & indiquer quelle option vous
souhaitez éliminer, puis passe a !'action :
<ctrl-e>:<awp (élimine totalement 1'option
indiguée)
zoom oa-z oa-1
msg ' Nettoyage total : tepez l ‘option 4
éliminer : p.e. MG, MD, etc, puis RIN ' :
oa-0 &
begin
0a-L>0<sa-O rtn
onerr goto ba-f (arréte en fin de parcours)
rtn oa-E rtn rpt>!
<ba-t>:<awp (arréte en fin de parcours)
spe stop>!
Effacements, insertions, inversions :
Rappel : oa-DEL et sa-DEL effacent le caracttre SOUS le
curscur.
<spc>:<awp (INSERE UN ESPACE quel que soit le
mode)
p=peek $10£1 if p=1 (si mode recouvrement)
oa-a spc oa~a
else spc>! (si mode insertion)
Les trois effacements suivants envoient le texte sur le
presse-papiers, d'oii on peut le récupérer avec sa-U :
d:<awp (efface le mot qui est sous ou devant le
curseur)
right ca-left oa-D
2S<
ea-right left rtn>!
yisawp (efflace Loute la ligne)
sa-left oa-E>S<down left rtn >!
<etri-y>:<awp (efface la ligne 4 gauche du
curseur)
left><oa-N>S<sa-left><rtn>!
ur<awp (récupére le contenu du presse-papiers)
oa-coD!
zisawp (place dans $0 le mot qui est sous ou
devant le curseur)
k=peek $10f1 (statut insertion/recouvrement)
right oa-left
begin p=peek $10f5
not p=160 read rpt elseoff
if k=0 oa-a>!
a:<awp (échange deux caractéres : le précédent
passe devant)
k=peek $10f1
left read del right insert sa-0 left if k=1
Oana>!
<ba-a>:<awp (échange deux mots : le précédent
passe devant)
$a-z oa-e oa-left rtn oa-left insert sa-0
spe
if k=1 oa-a>!
Divers :
Zéros barrés
Ordonner & l'imprimante d'imprimer des zéros barrés ou non
(allumer I'imprimante d'abord !) :
<ctrl-c>:<awp (Zéros barrés - allumez
l'imprimante avant la macro)
msg ' Imprimer zéros barrés ? Oui = RIN /
Non ~ ESC ':
begin k=key
ifnot k=13 ifnot k-27 rpt else pré 1:
if k=13 ; print chr$ 27 + "D" + chr$ 0 +
che$ 1: else
print chr$ 27 + "Z" + chr$ 0+ chr$1:
elseoff pré 0>!
Survol-éclair du fichier :
Gauche/droite = oa-1 4 oa-9, haut/bas = écre
par écran
<ba-Z>:<awp
$1 = ' Fléches : dr/g = 0a-1/9 ; haut/bas =
écran par ecran. RIN = Stop '
a-l msg $1 +"
begin k=key if k=10 oa-down $3="
Descend " ba~? rpt else
if k=11 oa-up Monte “ ba-7 rpt
else
if ke8 if a-l $2= "oa-" + str$
atba-2 $3-"" rpt else
if k=8 left a=a-1 $2= "oa-" + strs
arba-2 $3-"" rpt clse
Pom’s n° 43
13
if k=21 if a=9 $2= "oa-" + strs
arba-2 $3-"" rpt clse
if k=21 right a=atl $2= "oa-" + str$
atba-2 $3="" rpt else
ifnot k=13 rpt else
msg "" : stop>!
o=176 + a: print chr$o: msg $1+ $2 +"
" : hilight 48,24,51,24>!
<ba-7/>:<awp
meg $1 + $3 +" " s hilight 48,24,52,24>!
Rechercher une page :
<ctr1-P>:<awp (localise une page)
oa-K rtn oa-L>P<input rtn rtn>!
Numéroter les pages et/ou insérer un
Haut ou Pied de page :
Les numéros de pages font intervenir trois options
d'impression différentes :
1. L'option NO (numéro page) décide du numéro qui sera
affecté 4 une page. Elle sert uniquement @ modifier le
décompte automatique des pages que tient AppleWorks.
2. Lioption PN (imprimer numéro de page) marque
Tendroit od l'on veut imprimer le numéro de page.
L'endroit est matérialisé par le symbole "*". On peut
l'insérer dans le corps du texte pour des utilisations
spéciales (le numéro ne sera imprimé qu’a cet endroit du
texte, sans étre répété ailleurs) , mais normalement on
l'instre dans le Haut de page ou le Pied de page (dans ce
cas, il réapparait & chaque page et les numéros augmentent
automatiquement d'une unité 4 chaque nouvelle page).
3. L'option PP (Pied de page) ou HP (Haut de page) décide
si la pagination apparaitra en haut ou en bas & chaque
page. II y a une régle a observer quand on place le curseur
pour les options HP et PP ; l'option PP peut eure insérée
n'importe oi dans une page, et le Pied de page apparaitra
dés cette page. L’option HP doit étre insérée dés la
PREMIERE ligne de la page, sinon elle n'apparaitra qu’ la
page suivante ; souvenez-vous de cette régle lors de la
premiére phase de la macro ci-aprés.
Cette macro s'utilise de la fagon suivante :
1, Tapez ba-curl-N (Double-Pomme-Curl-N) : AppleWorks
affiche la pagination en vigucur. Avec les fléches,
Pommes-fléches, souris ou oa-1 4 0a-9, placez le curseur
dans la page ot vous voulez que commence I'affichage des
pages, et faites RTN.
2. Indiquez ensuite le numéro que vous souhaitez attribuer
a cette page, suivi de RTN, ou faites simplement RTN
si vous conservez la pagination d'AppleWorks (telle
qu’affichée avec oa-K).
3. La macro vous demande si vous avez déja créé un haut
de page ou un bas de page avec une option PN incluse ;
si vous répondez "O", la macro se termine. Si vous
répondez "N", vous étes invité a choisir entre unc
pagination en haut de page ou en bas de page, et la macro
fait le avail. Le modéle imprime le numéro de page vers
la droite de la ligne. Cette ligne apparaitra une seule fois
dans votre fichier aussit6t aprés l'option " -------- Haut
page” ou "-------Picd page”, mais l'imprimante la répétera &
chaque page jusqu'a la fin du texte, ou jusqu'a ce que vous
la changiez. Vous pouvez (une fois la macro terminée)
éditer cette ligne a votre convenance (par exemple, ajouter
"Page " avant le symbole "*", ou un sous-titre, etc.
Note : Cette macro convient aussi pour insérer un Pied
de page ou un Haut de page sans pagination. Il suffit,
une fois la macro achevée, d’éditer la ligne qui suit
V'option en y supprimant le symbole "™", et en insérant
le texte souhaité.
<ba-ctrl-n>:<awp
oa-k rtn
msg ' Placez le curseur 14 ot la pagination
doit commencer, puis RTN '
begin k~key
ifnot k=27 ifnot k=13 print chr$ k:rpt else
if k=27 bell msg ' Abandon ': clsc
if k=13 msq ' Tapez le nouveau N° de cette
page, ou RIN seul pour ne rien changer ';
$0= getstr 6:
ifnot $0-"" oa-o>nox rta sa-0 rta esc
elseoff
bell msg ‘ Avez-vous déja créé un HP ou PP
avec une option PN ? O/N ': |
begin k=key
if k=79° msg "": stop e
if k=111 msg "": stop else
ifnot k=78 ifnot k=110 rpt else
msg ' Voulez-vous 1a pagination en Haut ou
en Pied de page ? H/P ;
begin k=key
ifnot k=27 ifnot k=72 ifnot k=104 ifnot k=80
ifnot k=112 rpt else
if k-27 msg ' Abandon ' : stop else
if k=72 $0="HP" elseoft
if k=104 elseoff
if k=80 elseoff
if k-112 $0-"PP" elscoff
04-0 sa-0 rtn esc sa-left rtn up c-0
begin spe e=c/l ifnot c=60 rpt else
oa-o>PN<rtn esc stop>!
Esc = stop ':
Sauvegarde automatique si vous avez une
horloge :
En faisant Double-Pomme-Curl-A vous mettez en route |;
sauvegarde automatique (horloge nécessaire). Le fichier e
cours sera sauvegardé toutes les 5 minutes environ.
La fréquence peut étre modifiée (deuxidme ligne).
Si vous étes dans un menu au moment du déclenchement d¢
la sauvegarde, celle-ci n'aura pas lieu, mais se fera la foi:
ee ————ee—aSESee
Pom’s n° 4
daprés.
<ba~ctri-a>:<all $0 = time24 : H = val $0 : $0
- right $0, 2:
M= val $0+5: ( le 5 veut
entre chaque sauvegarde)
msq " Sauvegarde automatique enclenchée ":
wake ba-ctrl-b at H:M>!
e 5 minutes
<ba~ctrl-b>:<all x - peek $e86: if x = 0 Lhen
oa-s elseoff ba-ctrl-a>! vérifie que le
fichier est bien 4 l‘écran au moment de la
Sauvegarde par oa-s.
Faites Pomme-Ouverte-CONTROL-N pour annuler la
sauvegarde automatique.
end
Rappel des commandes de Tdt
disponibles :
sa-left | Curseur en début de ligne
sa-right Curseur en fin de ligne
oa-left Curseur au début du mot précédent
oa-right Curseur au début du mot suivant
sa-rin Curseur au Retour-chariot suivant
ba-left Curseur au début du paragraphe courant, et infos
sur valeurs MG, IN, CI et type de ligne
ba-e Aller éditer, déplacer, copier du texte puis revenir
automatiquent au fichier et point exacts de départ
sa-w Nettoyer les espaces superflus en fin de
paragraphe
sah Coller 2 paragraphes
sa-tab Repousser le texte au taquet de tabulation suivant
sa-ctrl-x Ramener le texte au taquet de tabulation précédent
sa-ctrl-d Aligner une colonne de chiffres, ou justifie a
droite
sa-ctl-q Aligner une colonne de nombres sur la virgule
sa-v Repirer la derniére option active MG, IN ou CI
sa-t Envoyer le cuseur sur cette option
sa-b Ramener ensuite le curseur & la ligne de wavail
sa-g Définir une nouvelle marge gauche
sa-i Définir une nouvelle indentation
sa-ctrl-e Eliminer totalement une option (au choix)
sa-spe Insérer un espace en toutes circonstances
sa-del Effacer le caractére sous le curseur
oa-del Idem
sa-d Effacer le mot sous le curseur
oa-y Effacer la ligne & droite du surseur
sa-y Effacer toute la ligne
sa-ctrl-y Effacer la ligne & gauche du curseur
sau Récupérer les effacements par sa-d, sa-y et
sa-ctrl-y
$a-z Placer dans $0 le mot sous le curseur
sa-a Echanger deux caractéres
ba-a Echanger deux mots
sa-ctrl-c Zéros barrés ou non barrés 4 |'imprimante
ba-z Survol-éclair de tout le fichier
sa-ctrl-p Recherche de page
ba-ctrl-n Pagination, Hauts et Pieds de page automatiques
ba-ctrl-a Sauvegarde automatique (horloge nécessaire)
oactrln Arrét de la sauvegarde automatique
Fichier CALCUL.UM
Un petit programme récréatif de calcul mental (a besoin du
fichier Tableur CALCUL.MENTAL)
START
Macros de démarrage du fichier “Task
<ba-$>:<all (Envole au Menu principal
d'Appleworks, en cas de démarrage par
selecteur, hors Appleworks)
rtn (correspond 4 la pause pour insérer le
disque Programme)
( input ) (ici, ltinput est inhibé )
(valide la date)
oe
(enchaine sur la deuxiéme macro)
Note : Si vous n'avez pas d'horloge, enlevez les
parenthéses qui inhibent "input" avant le deuxigme
"ttn" afin qu'Appleworks fasse la pose qui permettra
d'insérer la date.
<ba~°>:<all (Démarrage avec Macro Options)
msg ' Macros Calcul activées. Chargez
CALCUL.MENTAL et tapez SA-L '>!
Dans cet exemple, la deuxigme macro contient un message
d'information, Comme la premitre macro revoie aussi a la
deuxiéme, ce message s'affichera dans tous les cas de
lancement du fichier "Task",
Exercice proposé : modifiez cette deuxitme macro pour
qu'elle charge automatiquement le fichier
CALCUL.MENTAL sur le Bureau, et fasse sa L.
<ba-#>i<all
$0="Macro Options"
oa-Ese find rtn ren
msg ' Choix = fléches. RTN pour valider,
ESC pour abandonner ':
begin k=key
if k=10 down rpt else if k=11 up rpt else
if k=13 rtn stop else if k=27 esc esc stop
>!
Macros du programme :
<ba-a>:<asp d=0
ba-1
>plus<
ba-2
>tcl2+cl3<
ba-3 sa-L >!
<ba-s>:<asp d=0 m=51 n=9 o=63 p=9
ba-1
>moins<
ba-2
>#e12-cl3<
ba-3 sa-L >!
m=51 n=8 0-59 p=8
Pom’s n° 43
6
<ba-m>i<asp d=0 m=51 n-10 0-65 pw10
ba-l
>fois<
ba-2
>telZ*cl3<
ba-3 sa-L >!
<ba-d>:<asp d=1 m=51 n=11 o=59 p-11
ba-1
up right cell down left x=val $0
odiv.pare
ba-2
left left up up cell y=val $0 down down cell
z=val $0
a-x/y down left >Restec right
bell msg ' Indiquez ie reste ':
reval $0
up
right right if a=z >Juste< down
down elseofft
b-a*y cex-b if cor >Juste< rtn else
rtn
elseoff sa-L>!
<ba-1>:<asp
oa-L>e<oa-y>cl2<rtn
oa-b>L<down down down down rtn
bell hilight m,n,o,p
msg ‘ Tapez un chiffre, suivi de RTN ':
input down left >!
<ba-2>:<asp
right bell
msg ' Tapez un autre chiffre, suivi de RTN
input cell
else >Faux<
input down >"--------- <down
left 2Egale<right be.
msg ' Maintenant, tapez le rés
de RIN'
nput right right>!
<ba-3>:<asp
rtn cell
0
print chr$ 43 :>cl5< rtn cell
if $0=$1 >Juste< rtn else
>Fauxe rtn left left
msg "">!
<ba-v>:<asp
ifnot d=1
msg ' he résultat correct étai
appuyez sur une touche *
key sal else
msg ' Le résultat était ° + st.
reste ' + strS c+ ' 7 ap)
touche ‘: key sa-L>!
Lreasp
bell
msg ' Faites votre choix ':
begin k=key
if k=65 ba-a elseoff if k=97
if k=83 ba-s elseulf if k-115
if k=77 ba-m elseoff if k=109
if k=68 ba-d elseoff if k-100
if k=86 ba-v elseoff if k=118
ifnot k=27 rpt else msg
oa-L>e<oa-y>el?<rtn
ca-b>L<down down down down rin
stop>!
end
ultat, suivi
oa-b rtn
"92 2%"
eva 2 Fy
ez sur une
ba-a elseoft
ba-s elseoff
ba-m elseoff
ba-d elseoff
ba-v elseoff
" Terminé ":
Fichier CALCUL.MENTAL
Voici le modéle du fichier Tableur CALCUT..MENTAL.
indispensable : Construisez-le en respectant scrupuleusment
emplacement des lignes et des colonnes !
Fichier: CALCUL.MENTAL
wenee===A: ae
1!
2 Exercices de calcul mental :
REVUE/AJOUT/MODIF.
3! wen eaanenn=:
Option-L (SA-L) pour
4a! Tapez : itancer
Ss!
6!
7
a! Puis :
9!
10!
11!
12!
23
14!
15
16!
27!
18!
A pour
S pour
M pour
D pour
V pour
Escape
Faites votre choix
Menu Principal
l‘exercice,
Addition
Soustraction
Multiplication
Division
Vérifier
pour abandonner
16
Pom’s n° 43
Un patch pour SuperFonts
Si vous utilisez le nouveau
noyau Timeout.F21 de mars 89,
vous rencontrez peut-étre un
probléme pour imprimer ‘ad
partir du curseur’, Si tel est la
cas, le programme suivant se
charge d'apporter la modifi-
cation nécessaire 4 SuperFonts.
Veillez a ce que la disquette &
modifier s'appelle bien
‘/Superfonts’ ou bien modifiez
la ligne 130.
Bien entendu, le programme
Basic et la patch sont sur la
disquctte d'accompagnement de
ce numéro.
a.
GS
Programme
Patchsuperfonts
100 ONERR GOTO 320
110 DE = CHR$ (4): PRINT D$"p
xr£3": HOME : PRINT
115 PRINT D§$"profix": INPUT P
FXS
120 PRINT D§"bload sf.pat"
130 SF$ = "/superfonts/to. supe
rfonts.f"
160 HOME ; PRINT
170 PRINT "Ce patch permet 1'
emploi de TO.SUPERFONTS.F a
ney
175 PRINT " la nouvelle versi
on (mars 89) du noyau TimeO
ue
180 PRINT
193 PRINT "Tnsérez votre disq
ue contenant SuperFonts": P
RINT
195 GOSUB 500
200 IF A$ = CHRS (27) THEN 3
10
220 PRINT D$"verify "SF$
230 PRINT D$"bsave"SF$", a$200
0, b$04E2,1$091A"
250 PRINT "Modification réuss
je."
260 GOSUB 500: IF AS =
(13) THEN 130
300 PRINT "Pressez une touche
pour continuer ";: GET X$:
PRINT
310 PRINT D$"prefix"PFX$: END
320 EL = PEEK (218) + 256 *
PEEK (219)
330 IF EL = 120 THEN PRINT"
Impossible de trouver SF.PA
T": END
340 IF EL = 220 THEN PRINT "
Impossible de trouver T0.SU
PERFONTS.F": PRINT "Tapez 1
CHRS
|
SiS ‘AVAIS EU) |
| Gucci eee, |
CETTE SYMPHONIE RE)
SERAIT PAS I
Un éditeur musical
|
| fabuleux, un pilotage des
| instruments MIDI
dapreés la partition :
ConcertWare, c'est
Paganini et Peterson en
mémoire vive.
|
|
Essai dans Pom's 44
Daniel Lurot
@ nom d'aceés A SuperFonts"
; INPUT "";SF$: GOTO 220
350 IF EL = 230 THEN PRINT "
Impossible de modifier "SF$
+ GET A$: GOTO 160
440 POKE 216,0: RESUME
500 PRINT "Pressez Return pou
£ corriger, ou Escape pour
quitter: ";
505 GET A$: PRINT : IF A$ =
CHR$ (27) THEN 520
510 IF AS < > CHRS$ (13) THE
N 505
520 RETURN
Patch Sf.pat
Aprés avoir sasi ces codes sous
moniteur, vous les sauvegarderez par :
Rsave sf.pat, AS$2000,1L2330
2000:20 6F 11 00 15 2C 2A AD
2008:00 8D AD 21 &D A& 21 20
2010:8A 11 56 29 20 32 DO 08
2018:26 03 50 29 41 26 4B 29
2020:10 26 43 29 09 26 60 AD
2028:80 8D AD 21 DO 31 AS 80
2030:8D A& 21 20 8A 11 7C 2A
2038:20 AS 27 A5 88 DO E7 AS
2040:8D 8D A9 21 AS 8E 8D AA
2048:21 20 6A 11 80 2A 20 AS
2050:27 AS 88 DO D1 AS 8D 8D
2058:AB 21 A5 8E &D AC 21 20
2060:00 11 20 6F 11 15 08 24
2068:29 20 75 11 15 OA OD 29
2070:20 6F 11 29 OA BO 21 20
2078:6F 11 29 OB DO 21 20 75
2080:11 15 OD 1R 29 AD FB 21
2088:20 30 11 DO 03 4C 08 26
2090:8D FB 21 AD 5F 21 29 FC
2098:0D FB 21 8D 5F 21 20 00
20A0:11 20 3B 27 20 8A 11 DE
20A8:28 20 SA 11 C9 1B FO DD
20B0:C9 OD FO 4A C9 61 90 02
20B8:29 DF C9 41 DO OB AD FC
20C0:21 49 FF 8D FC 21 4C 83
20C8:26 C9 52 DU UB AD FD 21
20D0:49 FF 8D FD 21 4C 83 26
20D8:2C FD 21 30 1B C9 53 DO
20E0:05 8D FE 21 FO BB C9 4E
20E8:DO 05 8D FE 21 FO B2 C9
20F0:42 DO 05 8D FE 21 FO AD
20F8:20 15 11 4C 83 26 AD FE
2100:21 8D SE 21 OE SF 21 OE
Pom’s n° 43
17
18
2108:5F 21 AD FD
2110:21
2118:20
2120:A2
2128:85
2130:5D
(2138:88
2158:26
2160:20
2168:FC
2170:1C
2178:97
2180:28
2188:20
2190:6F
2198:21
21A0:C9
21A8:01
21B0:30
21B8:7E
2100:17
21C8:A9
21D0:13
21D8:85
21E0:4C
21E8:85
21FU:AE
21F8:BO
2200:D9
2208:A5
2210:0A
2218:BO
2220:8D
2228:CF
2230: 60
2238:69
2240:3A
2248:6C
2250:20
2258:4E
2260:6C
2268:20
2270:18
2278:72
2280:20
2288:20
2290:69
2298:70
22A0:2D
2248: 64
22B0:35
22B8:20
22C0:73
2208: 68
22D0:18
22D8: 69
22E0:61
22E8:2D
22F0:20
22F8:65
2300:65
2308:74
AD
20
20
3A
65
20
53
69
20
18
74
72
2D
75
30
16
12
FC
11
20
Ag
Ag
20
61
21
20
él
31
o1
60
co
29
20
11
ic
97
28
OF
11
ic
OE
A2
06
93
28
28
Ag
38
bo
15
(5-3
EC
8s
BO
DO
il
91
69
8D
6F
2D
20
20
4E
20
20
20
75
20
2D
20
73
52
74
20
3A
6D
74
2D
20
2D
OF
20
20
6C
6c
21
OA
8A
11
8D
20
AS
31
OF
15
7¢
08
27
AD
11
ic
oD
20
oc
£8
27
60
60
oo
DO
SB
i1
ag
27
85
oD
DS
cD
AS
1ée@
00
0s
6E
2D
OF
20
20
OF
20
20
65
2D
2D
6D
63
2E
27
65
cE
11
Ag
86
87
90
8D
il
07
9B
20
1c
39
28
AD
co
20
30
20
8D
AS
Ag
20
oo
EE
7)
co
29
Ae
92
65
8E
03
2D
20
20 2
72
20
20
75
65
20
75
27
54
20
6E SF
SF 21
CB 28
01 8D
OD 20
DO AS
DO 10
4C FA
28 20
06 20
cy 02
20 20
20 20
20 20
20 50
2D 2D
72 65
70 69
61 70
6F 69
64 65
236
2368:72 04 50
2370:7B 62 75
2378:72 69 6D
238
238
2391
2398: OF
23A0:65
23A
23B0:74 6F 75
23Bi 845 73
23C0:20 20 20
23C8:70 6F 75
23D0:7D 74 65
23D8:6D 70 72
21 65
75 V2
$2 65
6F 7/5
66 2E
20 64
65 20
75 73
20 6C
73 73
75 72
6E 75
6D 70
6E 4F
54 20
4F 4E
31 20
20 20
20 20
43 OF
2480:68 74 20
2488:39 38 37
2490:6B 20 53
53
20
61
20
20
27
OB
65
OF
20
74
52
27
50
20
20
20
72
70
72
64
70
1B
6c
73
45
45
76
20
20
3A
20
27
2518:29
2520:02
2528:00
2530:70
2538:80
2540:B0
2548:20
2550:13
2558335
2560:D0
2568:35
2570:8B
2578:0A
2580:E8
2588:35
2590:FE
2598:D3
25A0:48
25A8:C9
25B0:05
25B8:09
2500:C8
25C8:90
25D0: 9F
25D8:C9
25E0:20
25E8: 6F
25F0:11
25F8:23
2600:0E
2608:10
2610:FO
2618769
2620: 8A
2628:0A
2630:8A
2638:AD
2640:09
2648:20
2650: 66
2658:8B
2660:C9
2668:79
2670:20
2678: 8C
2680:30
2688:99
2690:39
2698:00
26A0:0F
26A8:FO
26B0:BD
26B8:0A
26C0:39
26C8:C3
26D0:39
26D8:99
26E0:8C
26E8:1B
26F0:35
26F8:14
2700:FO
270820
2710:4¢
2718:20
11
14
ES
90
90
06
8D
ce
66
04
66
8D
2B
Be
oF
FO
SRE
20
20
02
DO
60
4c
20
60
BO
60
11
14
0B
c3
29
60
2eag
8D
35
68
Ag
10
99
FO
AO
Ec
87 35 AO
co
36
co
36
88
OF
FO
OA
8D
00
DO
06
38
14
09
9A
29
20
AD
Bo
Ag
fou}
39
c4
06
ce
oo
2c
11
25
02
60
2c
75
3c
Bg
50
ce
35
4D
BO
BO
Ad
20
co
29
BD
20
2c
FO
FO
2D
66
ae
DO
02
DO
20
8D
co
44
3c
30
8A
oF
9D
14
2c
90
AD
AD
co
7B
Bo
cc
35
30
20
62
29
20
oF
11
35
Ag
DO
29
DO
cE
Bo
67
FF
C4
AD
FD
53
8c
ec
BO
EE
FO
cs
AD
cE
90
30
90
30
BD
DO
20
TE
66
15
59
AD
36
40
00 BS
73 AS
7c C9
06 AD
Bl 2B
89 35
3D FO
8D 89
C9 3D
8D 88
35 8D
2B BO
8D 35
8E 8C
2C AC
ec 4c
FE 21
39 DO
68 OA
02 7¢
87 35
60 20
90 03
00 11
29 20
20 OF
OF 11
11 14
23 OF
29 OF
00 18
F8 8D
OF co
03 6D
8A 35
Ec 60
38 2c
2C AC
21 30
DO 72
35 AE
35 co
07 c8
8E C2
4B A2
39 29
C3 39
C3 39
9D CS
DS AD
9D C5
c4 39
Fe 8c
6F 11
11 8c
36 30
cy O1
co 04
25 25
39 4c
Pom’s n° 43
2720:C2 2
2726:39
2730:2F
2738:BD
2740:8E
2748:36
2750:05
2758:75
2760:04
2768:26
2770:62
2778:CS
2780:2F
2788:4C
2790:FO
2798:2F
27A0:0C
27A8:A9
27B0:63
27B8:0D
2700:2C
27C8:2F
27D0:75
27D8:07
27E0:2C
27E8:40
27F0:6C
27F8:2F
2800:8D
2808:A0
2610:E8
2818:75
2820:BB
2828:2E
2830:74
2838:C3
2840:78
2848:0A
2850:2F
2858:2F
2860:70
2868:6D
2870:CA
2878:2E
2880:2E
2888:2E
2890:8B
2898:00
28A0:EE
28A8:00
28B0:0A
28B8:8C
28C0:68
28C8: 6D
28D0:73
20D8:74
28E0:20
28E8:FF
28F0:35
20F8:FF
2900:CO
2908:FO
2910:2E
2918:4C
30
25
2F
25
25
2F
20
FO
82
Ec
8D
FO
76
2F
20
68
29
2F
20
66
39
il
E8
35
00
ce
2F
6D
AD
2F
2E
33
FO
DO
aD
2F
2F
20
ag
8D
FA
35
22
co
20
A7
35
68
OF
75
65
20
38
IF
38
7B
OA
4c
83
20
21
2F
aF
OA
27
2c
8D
Ag
c
03
aA
76
8D
Ag
Be
68
OF
Ag
6c
36
7
81
AQ
co
B9
ag
BESAESIISESSRA
60
2D
AE
co
4c
20
25
66
61
ar
2E
4c
E&
2F
29
62
cS
2F
FO
oF
il
30
2F
2F
68
2c
11
20
75
a
6c
2D
4c
36
2F
gD
90
2c
76
8E
bo
FO
a
4c
03
20
00
2E
36
20
OF
11
2A
65
69
BO
20
68
Ac
AD
68
eB
6c
oF
DO
2D
il
20
c2
10
ag
63
0D
2c
a
75
42
8D
Ag
c3
03
ShaES
be
oF
75
02
9D
90
68
ce
6c
Ad
10
co
ar
63
Ag
co
25
11
FO
89
9D
il
OF
11
20
1B
20
73
75
6c
Ag
8B
20
c
2F 8&1
11 75
Ea C
Fe CA
2C 66
75 2F
6c 11
2D AD
03 AD
76 &D
2F Ag
20 BE
68 68
29 OF
2F Ag
AD A6
61 2F
2F 8D
2E 90
4c 2c
bs
E& &&
2F DO
AT 0c
6c 11
2D 20
AE 75
2F AD
A2 00
76 2F
F3 8E
2F AQ
20 c3
2F 8D
D1 20
03 4c
10 90
6D 6F
2F 8D
FA 8D
2F Ag
20 C3
8D 89
DO 89
2E 9D
O01 22
60 00
11 FF
FF 0c
$111
4D 7B
69 6E
61 6E
72 3A
11 8c
00 8D
35 99
B8 2F
20 FD
68 68
Pom’s n° 43
Daniel Lurot T35
AppleWorks : des patches
Modifications Ultramacros 1.7 > 2.2
Dans la nouvelle version US d'UltraMacros, un bug existant dans les versions
précédentes a été corrigé. Ce bug ‘plantait’ Appleworks lorsque qu'unc longue
variable chaine était manipulée pendant I'affichage du menu TimeOut (ceci
pouvait se produire par exemple au ‘réveil’ d'une macro latente).
Pour la correction dans la version frangaise d’'UluaMacrus, faire les modifications
suivantes dans le fichier ULTRA .SYSTEM.
uctet Chaine
4 rechercher
4 remplacer par
$001A79 00 BE 90 09
$001B08 ou BE 90 09
$001B1A 01 BE 91 09
$001B23 ou BE 90 09
$001C64 00 90
$001C68 BE oy
Correction du bug impression
du Tableur
Lors de l'impression sur disque d'un fichier Tableur (DIP/ASCII), si
AppleWorks rencontre un probléme lors de la création du fichier, il affiche, ce
qui est logique, Impossible de commencer xxxxxxxxxxx, puis
demande Recommencer ?. Si nous répondons Oui, il affiche dans tous les cas
XXMXKXXXKKXX existe déja, Détruire 1'ancien, ce qui est
souvent absurde.
Pour corriger ce bug, il faut modifier SEG.M1 de la manitre suivante:
UltraMacros : un STEP programmable
Lors de la mise au point de macros, il peut étre commode de disposer
temporairement du mode STEP. Un ‘poke’ bien choisi a l'adresse SD1EC peut
activer ou désactiver le STEP :
poke $diec,$fb : active le STEP
poke $dlec,$23 : désactive le STEP
S
19
= Basic & DHGR
Philippe Matsumoto
DHR-AGP regroupe plus d'une vingtaine d’instructions
accessibles ués simplement depuis I'Applesoft par
I'ampersand &. Ces instructions forment un ensemble
complet permettant une utilisation exhaustive des
possibilités offertcs par la double haute résolution, DHR.
Certes, il existe déja des programmes d'utilisation de la
page DHR, mais DHR-AGP a de nombreux alouts qui font
de lui un programme particuli¢rement intéressant.
Ce programme n’ulilise que 9 octets en mémoire
vive principale, laissant libre l'ensemble de la zone de
mémoire gérée par |’ Applesoft. Les programmes Basic et
en assembleur pourront rester aussi longs que si DUR-AGP
était absent.
Principales qualités
de structure de DHR-AGP
+> Il est stocké et utilisé en mémoire auxiliaire ; son
fichier source qui conticnt plus de 40Ko de commenuaires
est ainsi un excellent exemple d’utilisation compléte des
commutateurs logiciels de I’ Apple //.
«> Ce programme ne monopolise pas l'utilisation de
l’'ampersand, ct tout autre programme s’cn servant
fonctionnera sans modification.
«> Ilest court : une moyenne de 150 octets par nouvelle
instruction acquise.
DHR-AGP
ses possibilités graphiques
«> Instructions PLOT, BOX, inversions vidéo, affichage de
tous les types de pages graphiques, passage de 40 a 80
colonnes.
«+ DHR-AGP permet de tirer meilleur parti des
possibilités de mélanges de couleurs et surtout de création
des différents niveaux de gris ; vous pouvez définir, puis
utiliser vos propres mélanges de couleurs grace &
Vinstruction DeFcoLor. Outre les “huit” couleurs du
systéme, le programme vous offre done huit couleurs
disponibles, redéfinissables sur la base d’un motif
élémentaire de 2 fois 14 points (accés 4 plus de quatre
milliards de motifs élémentaircs possibles).
*> Il comprend une instruction de remplissage FILL AT
%, ¥ permettant de remplir dans n’importe quelle couleur
toutes les figures quelle que soit leur complexité. Utilis¢e
avec l’instruction de définition des couleurs, elle permet &
tous les graphiques d’acyuérir une finesse supplémenuaire.
++ Trois instructions complémentaires assurent une
parfaite comptabilité entre le graphisme en HGR et DHR.
Elles permettent entre autre de faire passer un dessin créé en
HGR sur la page DIIR, ct vice-versa.
++ DHR-AGP vous offre deux pages DIIR, de la méme
maniére qu’il y a deux pages HGR. L’affichage de I’une et
de l'autre est évidemment possible, et on peut également en
dupliquer une sur I’autre.
«+ DHR-AGP posséde des instruction de sauvegarde et de
chargement d’un graphisme sur la disquette (en le
“compactant”).
Utilisation
Le lancement de DHR-AGP s’effectue par :
BRUN DHRAGP.C, ASZU00
En effet, DHRAGP a été assemblé a I'adresse $800 mais,
pour pouvoir I'utiliser sans crainte de déwuire un
programme Basic, il doit étre chargé et exécuté a l'adresse
$2000 de la mémoire vive principale. Le programme
s'auto-implantera a l'adresse $800 de la mémoire auxiliaire,
laissant de nouveau libre la mémoire principale, &
l'exception des ocicts $6 4 $B ct SFA a SFC qui ne doivent
pas étre détruits.
Votre programme utilisant les fonctions de DHRAGP
devrait étre lancé par un programme du style START. DHR
listé ci-aprés.
Sur la disquette Pom’s 43
Vous y trouverez le programme de démonstration, l'objet
exécutable mais aussi Ics sources ProCODE avec
commentaires.
Liste des instructions
&PLOT X,¥ [TO Xi,¥1].. [TO Xn, ¥n]
Affichage du point de coordonnées (x, ¥) puis de
droites reliant Ies points successifs (x1, ¥1) a
(Xn, ¥Yn),dans la couleur courante.
&PLOT TO X,Y [TO X1,¥2] [TO Xn,Yn]
Pom’s n° 43
Identique & PLOT mais commence par relier le point
(X, Y) au point précédemment mémorisé dans le
pointeur.
&INVERSE PLOT [TO] X,Y [TO Xi, Yi]
[TO Xn, Yn]
Instruction PLOT [TO] mais l’inversion vidéo
remplace la couleur courante.
&BOX X1,Y1 TO Xz, ¥2
Dessine et remplit dans la coulcur courante le rectangle
dont le coin supéricur gauche est (X2, Y2) et le coin
inféricur droit (x2, ¥2) avec X7>=X7+7 et ¥2>¥7.
S& INVERSE BOX X1,Y¥1 TO Xz, ¥2
Identique & BOX mais remplacement de la couleur
courante par l’inversion vidéo (permet une inversion
vidéo partielle ou totale de l’écran).
&FILL [COLOR=Col] AT X,Y (0<=col<=15)
Remplissage dans la couleur courante (ou la couleur
Col si COLOR=col est précisé) de la partic de
Vimage contenant le point (x, ¥), délimités par des
points allumés consécutifs ou les bords de I’écran.
Cette instruction permet de remplir toutes les figures,
quelle que soit leur forme.
&DEF COLOR=Col TOA,B,C,D (8<=Col<=15)
Redéfinition de la couleur Col aux valeurs A, B, Cet
D (comprises entre 0 et 255).
Selon Ic schéma classique de la définition des masques
de couleur.
A B Motif élémentaire
———$——— gmibess de
1482 points couleurs possibles
&COLOR=Col (0<=Col<=15)
La couleur Col devient couleur courante pour Ies ins-
tructions PLOT, BOX et FILL.
&AGP.HGR>DHR
Recopie le graphisme de la page DHX. Chaque point
initial HGR est transformé en deux points juxtaposés
sur la page DHR. Affichage de DAR.
&AGP.DHR>TWO
Divise la page DHR en deux parties : la moitié gauche
est copiée sur la page HGR ct la moitié droite sur la
page HGRz. Alfichage de la page HGR.
&AGP. TWO>DHR
Copie HGR sur la moitié gauche de la page DHR, et la
page HGR2 sur la moitié droite. Instruction inverse de
AGP . DHR>TWwo. Affichage de DHR.
Les trois instructions AGP.> assurent une parfaite
comptabilité entre simple et double haute résolution.
&STORE
Sauve la page DHR sur la page DHR2 virtuelle (ce
procédé permet d’avoir deux pages DAR comme on a
deux pages HGR). DHR2 est détruite.
GRECALL
Rappel de la page DHR2 sur la page DHR ou copie de la
page DHR2 sur DHR.
&EXCHANGE
Echange les deux Pages DHR ct DHR2 entre elles.
Permet l'affichage de DHR2.
SSAVE "Nom"
Sauve sur la disquette le graphisme DHR en la
“compactant” : les octets inutiles ne sont pas sauvés.
Une page DHR prend alors 15 600 octets. Aucun
systéme de traitement d’erreur n'est prévu. Le nom peut
contenir des Icttres et des chiflres.
&LOAD “Nom”
Charge sur la page DHR le graphisme sauvé par
&SAVE.
&DHR [Text]
Affichage de la page DHR avec 4 lignes de texte si
TEXT est précisé et si la carte 80 colonnes étendue est
active.
&CLS
Efface la page DHR et fixe le blanc 1 comme couleur
courante (et/ou la page HGR).
&HGR [Text]
Affichage a l’écran de la page HGR avec 4 lignes de
texte, éventucliement.
&HGR2
Affichage de HGR2. Ces instructions sont conseillées
plutét que les instructions du syst¢me.
&TEXT ou 40
Passage en mode texte 40 colonnes
680
Passage en mode texte 80 colonnes si la carte 80
colonnes est active. Le couple & 40/480 permet des
passages successifs 4 I'écran 40 et 80 colonnes.
6... (instruction Ampersand étendue)
Permet l’utilisation d’autres programmes fonctionnant
a partir de l’interpréteur &. En fait, ¢& appelle le
programme qui se trouve a l’adresse contenue dans les
vecteurs Ampersand avant le chargement par BRUN
DHRAGP.C, A$2000 de DHR-AGP.
Pom’s n° 43
21
Programme Start.dhr
10 PRINT CHR$ (4) “BRUNDHRAGP.C, AS2000
20 PRINT CHRS (4) "-DEMONSTRATION
Programme
Demonstration
10 LOMEM: 245/6: TEXT : PRIN CHRS (4) "PKE3":
PRINT ; VIAB 21: PRINT “DEMONSTRATION DE D
HRAGP : INVERSE : PRINT SPC( 60): PRINT
: PRINT " POKE 36,58: PRINT " PRIN
T SPC{ 60): NORMAL
12 A$ = "Programme de demonstration de DHRACP p
ar P.M.": GOSUB 80:A$ = "& DHR TEXT:& CLS:T
racé d'un quadrillage avec & BOX": GOSUB 80
¢ & DHR TEXT : & CLS: & COLOR= 3: FOR I =
0 TO 154 STEP 77: & BOXO,I TO 550,I + 4: NE
xT I
14 FOR I - 0 TO 544 STEP 68: & BOXI,OTOI+9
7158: NEXT I:A$ = "& COLOR=Col (0<=Col<=15)
Palette de couleurs": GOSUB 80: FOR I - 0
TO 15: & COLOR= I: GOSUB 78: & BOXA,B TOA
+ 53,B + 69: NEXT
16 AS = “Exemples de couleurs redefinissables a
vec DEFCOLOR"; GOSUB 80
18 I = INT ( RND (1) * 16): GOSUB 78:C = RND
(1) * 256;D = RND (1) * 256: & COLOR- &:
& DEF COLOR= 8 TO D,C.C.D: & BOXA.B TO A
+ 53,B + 69: IF PEEK ( - 16364) < 127 THEN
18
19 PI = 3.1416: 6 COLOR- 0:A$ ~ “Trace de cour
bes avec &PLOT": GOSUB 80: & BOX282,0 TO 55
9,159; & COLOR= 3; FOR I = 0 T0 15:A =I *
17.125:R = T * 9.938: & PLOT 284 + A,0 TO
558,B TO 558 - A,159 TO 284,159 - B TO 284
+ ALO: NEXT T
PLOT 462,100: FOR I = 010120: § PLOT
TO 422 + 40 * ( STN (T / 60 * PI) + COS (
I / 12 * PI)),80 + 20 * ( COS (I / 60 * PI)
- SIN (I / 20 * PI)): NEXT
21 AS = "Sauvegarde de cette page sur DHR2:6 ST
ORE": GOSUB 80: & STORE :AS = "s CLS et tr
ace d'un cadre"; GUSUM 80: & CLS: & COLOR=
3: FOR I = 0 T0 12 STEP 2:A = 559-2 * TI:
B=2* 1:0 = 159-1
& PLOT B,I TO A,I TO A,C TO B,C TO B,I TO
B+1,IT70B+1,C: & PLOTA- 1,1 T10A-
1,
20 &
22
C: NEXT I:A$ = "Utilisation de PLOT et FI
LL": GOSUB 80
24 FOR I - 535 T0 25 STEP - 5: & PLOT 101,
SIN (I / 20) * 15 + 60: NEXT = 16: GOSU
B 76:B - 110: COSUB 76: & PLOT 285,74 TO 2
85,146: & FILL COLOR= 9 AT 99,74: & FILL CO
LOR- 11 AT 99,109: & PILL COLOR= 14 AT 99,1
45
26 A$ = "Inversion vidéo d'une partie de 1'éera
nz& INVERSEBOX": GOSUB 80: FOR I = 1 TO 6:
& INVERSE BOX286,30 TO 534,80: FOR J =1T
O 500: NEXT J,I:A$ = “Les graphismes sont p
lus simples avec PLOT et SPILL": COSUB 80:
& COLOR= 3
28 500 STEP 3578 = RND (1) * 5
1O A + 31,140 TO
A+ 31,B- 6 TOA + 23,8: & PLUI A,B IU A
+ 8,83 -6T70A+ 31,B-6
30 & FILL COLOR= 10 AT A+ 9,8 - 1: & Fibb COL
OR= 15 ATA + 9,8 + 1: & FILL COLOR= 9 AT A
+ 25,B: 6 COLOR= 3: NEXT : & PLOY 515,78
TO 515,146: FOR I = 146 70 80 STEP - 5: &
PLOT 513,I TO 518,1: NEXT
32 A = 158: GOSUB 72:A = 284: GOSUB 72:A = 412:
GUSUH 72:AS = "Sauvegarde de ce dessin sur
la disquette": GOSUB 80: & SAVE "DHRDESS"
1AS = "Rappel du dessin qui se trouve en DH
R2: SRECALL": GOSUB 80: & RECALL
34 AS = "Rechargement du dessin sauvé: &LOAD":
GOSUB 80: & LOAD “DHRDESS changes
entre les pages DHR et DHR2": GOSUB 80: FOR
I =1 10 10: & EXCHANGE: FOR J = 1 TO 300:
NEXT J, 1:AS = "Vivision du dessin en deux
parties HGR et HGR2": GOSUB 80
36 & AGP.DHR > TWO:AS changes entre les de
ux moitiés HGR et HGR2": GOSUB 80: FOR I =
1 10 5: GOSUB /U0: & HGRZ : GUSUB 70: & HG
Ro: NEXT
38 TEXT : HOME ; PRINT "Essais avec les comman
des 640 ct 680": FOR I = 1 70 4: & 40: GosU
B 70: & 80: GOSUB 70: NEXT : & AGP.TWO > DH
2 & DHR TEXT : HOME : PRINT "** FIN DE LA
DEMONSTRATION
40 IF PEEK ( - 16384)
GosuB 70: GOTO 40
42 END
70 FOR J = 1 70 600: NEXT : RETURN
72 &§ COLOR= 3: & PLOT A,35: FOR I ~ 0 TO 36:
= COS (I / 18 * PI) * 40+ AsY = ‘SIN (I
718 * PI) * 20+ 35: 6 PLOT 10 X,Y: IF
I/12 = INT (1 / 12) THEN & PLOT TO A,
35: 6 PLOT X,Y
74 NEXT : FOR I = 070 2:C = RND (1) * 8 + 8
& FILL COLOR- C AT A - 5,I * 15 + 20: NEXT
¢ RETURN
< 127 THEN & EXCHANGE:
76 & PLOT 25,99; FOR I = 25 TO 285 STEP 10:A
= RND (1) * 35: & PLOT TO I,B + A: NEXT
: RETURN
78@A= (1 -8* INT {I / 8)) * 68 + 12:8 = IN
T (I / 8) * 77 + 63 RETURN
80 VTAR 21: HTAB 3@: PRINT "Appuyez sur une to
uche pour continuer";; GET C$: HTAB 38: PRI
NT SPC( 40)
82 VTAB 23: FOR I = 54 TO 2 STEP - 1: POKE 36
-I: PRINT LEFTS (" "+ AS +" ",58 - I}ez
NEXT : RETURN
Récapitulation Dhragp.C
Aprés avoir saisi ces codes sous moniteur,
vous les sauvegarderez par :
bsave dhragp.C, AS800, ES14C3
0800:4C 22 2¢ 8D 95 CO 20 3B 08 8D 04 CO AS DA 30 03
0810:8D 00 CO AS DB 30 03 RD 56 CO AS DC 10 03 AD 55
0820:C0 A9 60 85 FD 4c FA 00 00 00 00 90 90 00 00 00
0830:00 00 00 00 FF FF 03 00 00 00 00 A9 5D 85 96 Ag
Pom’s n° 43
0840:13
0850:D0
| 0860:29
0870:85
0880:17
| 0890:A5
08A0:B1
09B0:co
0aco:co
08D0:08
08E0:35
08F0:85
0900:c1
0910:20
0920:20
0930:08
0940:17
0950:DF
; 0960:20
0970:29
] 0980:08
0990:80
09A0:a9
09B0:38
09c0:85
09D0:2F
09E0:08
09F0:08
OA00:AD
0A10:85
0A20:B0
0A30:9D
0A40:49
0A50:0A
0A60:24
0A70:30
OAB0:CD
0A90:F7
O0AA0:08
OABO:69
0ACO:60
OADO:AA
| 0AE0:07
OAFO:8A
OBUO:EE
OB10:A8
0820:AD
0B30:A8
0840:08
0B50:0B
0B60:33
ocvo:2z0
0c80:c9
0c91
85
06
£9
99
13
98
96
a5
6c
£9
FD
FO
17
17
aD
13
17
13
ao
26
90
Ed
aD
32
10
BD
05
37
85
AS
aS
36
Ad
a5
17
ED
13
FO
20
cD
Az
ES
08
es
29
Pom’s n° 43
SSS SSS Ss
B7
Bo
ce
D1
aS
ce
1c
68
AD
a2
co
co
20
3B
4c
eo
08
Ao
4c
Ag
Bl
99
Bl
co
68
3A
10
qc
09
09
Basen
BA ow oH
sb
rey
FO
20
99
Ra
30
90
oo
6A
96
FO
a5
96
85
AZ
20
59
co
oR
17
20
08
08
FS
20
08
ap
FO
Bg
BI
60
co
eD
aD
oB
50
ao
20
AD
13
28
co
DO
17
38
26
ce
Bi
98
aD
Ag
00
85
a2
09
09
13
Ag
Ag
vo
ac
co
Do
aD
2B
cs
38
AG
oF
2A
oe
a5
4c
B7
00
BO
2B
£9 01
12 85
oe 20
0g a2
09 Az
8D 28
a2 7D
90 09
ag 00
08 00
aS 3c
9B FO
9B AS
05 BO
FO oD
08 AE
BO 12
20 Al
B9 9A
a5 a5
BIAS
85 2E
Ag AB
55 8D
Ag 00
DO 03
37 08
08 49
32
29
co
4D
FO 0c
12 04
68
ac
17
Dc 85
co aD
Dc 60
04 aD
Dc 85
cO AD
13-A9
1E 0c
BO Ag
60 Az
Ao 00
03 4c
08 cD
76 C9 SE
85 B& AS
98 AS Bo
AO 09 20
ce ce ce
£4 08 ce
DA AD 1D
CO 8D 54
38 AD 39
£09 08 AD
FE Ag 4c
17:13 cg
BI AO 00
B7 AO 00
08 AD 2¢
AO DD 20
FO 03 4¢
F5 AO EE
85 EF AD
08 cD 28
cD 2A 08
40 AB OOS
AN 9B OR
9B A9 00
29 08 &D
OB AD 2F
09 AD 20
8D 2E 08
18 65 99
85 $C AS
0
33 08 32
AS 9F Di
08 10 20
68 99 28
13 60.20
E6 AG 80
52 CO 60
A2 Bl AO
oc co 60
E6 Ag 00
1E cO 30
80 85 DC
A2 Bi AO
12 an 00
Bl AO 00
20 17 13
13 20 3B
DF 08 AD
28 08 90
OCBO:EB
0CCO:B9
0cD0:08
OCEO: 8D
OCFO:AD
0D00:31
0D10:A5
0D20:8D
0030:FF
0D40:A0
0D50:20
0D60:A0
9n70:A5
OD80:A4
0D90:17
OFFO:B1
1000:F7
1010:A0
1020:5¢
1030:A2
1040:10
1050:A0
1060704
1070:13
1080:B9
1090:02
10A0:98
10B0:00
10C0:EE
10D0;92
AD
37
9D
08
26
BS
BE
10
2E
17
08
48
08
60
06
aD
65
85
a5
FF
aD
91
co
az
AS
D2
BE
a0
AD
AD
90
4c
a7
AA
54
Ag
60
48
Ag
a7
37
AO
14
Al
an
91
aD
54
So
20
aD
eo
a5
oe
A2
Aq
ac
2E
3
18
cB
Dé
aD
DA
20
£2
03
a2
99
20
9
bo
oo
08
08
Ag
32
AD
3
19
co
23
co
co
Ag
55
54
85
26
AS
84
8D
0s
ne
8s
OF
at
BE
00
ao
ao
co
8D
OF
cc
cs
Ao
AL
as
aD
00
32
08
55
OL
oF
08
FO
a4
oq
a2
ao
4c
OF
Az
AO
28
1e
20
bo
BI
a?
co
96
2c
96
er
85
co
08
AE
25
03
aD
BO
04
18
Do
3A
OE
06
Bl
00
ac
OE
00
DS
as
31
81
BI
a5
26
96
AD
co
ae
Ea
AS
ce
Av
GR
96
AT
Bo
ou
AD
08
55
cs
2a
as
o7
36
03
68
a2
ED
40
4c
OE
FR
ao
20
D2
ac
40
00
60
91
aS
AS
as
97
97
ap
c7
Bl
0
Ag
ce
co
17
a2
By
c4
ag
DS
28
a
08
cr
2A
02
bo
al
IF
60
DF
£4
13
20
BO
99
20
il
10
dc
10
97
7)
ag
10
AS
co
60
08
20
cL
85 97 AD
0A
08
EE
11
4B
0A
A2
08
08
£6
Bl
06
AZ
AO
Db?
17
A2
Ag
Ag
£0
Ag
Bg
20
31
43
op
4c
iE
FS
48
ag
20
0
Bl
00
13
FB
a0
60
69
£0
AS
55
91
91
08
06
AS
8D
co
a4
Bl
eq
68
86
4u
aa
pe
ee
00
co
1100388
1110:91
10
10
pe
co
20
08
55
Ag
EA
AZ
AO
az
00
17
AS
c7
17
AC
9
51
AO
Do
23
1120:91 AS 8D 54 CO 88 10 F2 CB 1C DC 10 AS 40 85 97 1300:03 C6 9A 88 24 95 80 1B AD 28 08 99 80 1¢ AD 29
1130:A9 00 85 96 60 AZ Bl AO 00 20 17 13 C9 CS FO 15 1310:08 99 80 10 60 00 00 BE 3D 13 BC 3H 13 48 AZ 39
1140:C9 AO DO OF 20 3F OD A? AT AD 00 2017 13.69 C5 1320:A0 13 20 5D OF aD 04 CO 68 4¢.C9 00 48 98 48 20
1150:F0 03 4¢ B4 08 AZ BI AO 00 20 17 13 20 3B 09 8E 1330:51 13 68 AB 68 BD 05 CO 60 BD 02 CO 20 00 00 aD
1160:30 08 AD 2B 08 8D 2E 08 AD 2C 08 8D 2F 08 A9 00 1340:03 CO 4c 2¢ 13 AD 0B B9 C9 00 99 80 1B 88 10 F7
1170:85 9A 20 98 0A AE 30 08 BD 80 1E 85.19 BD 10 1F 1350:€0 AD 0B BS 80 1B 99 CS 00 88 10 F7 60 BD 00 08
1180:85 19 E8 BD 80 1E 85 IC BD 40 IF 85 1D CACA BD 1360:F8 AO 00 0D 38 48 AD 00 OD 4U AB 00 OD 9 A7 00
1190:80 16 85 1A BD 40 1F 85 1B A9 00 8.1613. 8D 15 1370:0D AC 42 4F 58 00 OC 6C 45 58 43 48 41 4B 47 45
11A0:13 AD 2B 08 6D 26 08 AD 2F 08 6D 29 08 20 2A 0B © 1380:00 0D FB 43 4¢ 53 00 0D 8B 46 49 4¢ 4¢ 00 11 35
11B0:B9 9A OB 8D 33 08 A9 18 20 AB 12 D0 14 38 AD 28 1390:89 00 0B FD 91 09 9C 15 90 00 OC 35 34 30 00 OB
1100:08 E9 01 @D 28 08 AD 29 08 E9 00 8D 29 08 4C AD 13A0:FD 38 30 00 OC 4D 4) 47 50 2E 44 48 52 CF 54 57
11D0:11 20 00 0B B9 9A OB @D 33 08 AD 30 08 29 01 85 13B0:4F 00 0D CB 41 47 50 2E 54 57 4F CF 44 48 52 00
11E0:A5 20 Al 0A AQ 18 20 AB 12 DO 29 20 9F 12 29 CE 13C0:0D E5 41 47 50 2E 91 CF 44 48 52 00 0D BA 44 48
11F0:12 AD 30 08 29 01 19 01 85 AS 20 AI 0A 20 30.12 13D0:52 00 0B CF B7 00 10 22 BE 00 OF Fé 145 52 52 00
1200:A9 01 18 6D 28 08 8D 28 08 AD 29 08 6Y UU 4D 29 13E0:10 4E UO OY OY 00 2A 55 2A 55 55 2A 55 2A TF IF
1210:08 4C D1 11 Ad 9A DO 97 60 RO 80 1B AD 30 98 BG 13F0:7F 7F RO RO AO BO AA DS RAS D5 AA DS AA FF OFF
1220:80 1¢ 8D 2E 08 B9 80 1D &D 2F 08 C6 9A 4C 7211 1400:FF FF 36 2A 2A 36 08 06 41 41 FE 3F 3F FECA 29
1230:20 9F 12 AD 30 08 29 01 49 01 A® BO 34 08 85 1E 1410:29 CA C4 28 28 C4 70 AD AD 70 EA 57 57 EA 2A 55
1240:AB 30 08 FO 2C A9 1A 20 AB 12 FO 08 AS 00 8D 16 1420:55 2A A2 00 AO 03 BY BT 2C 85 06 A 20 85 08 AS
1250:13 4C 71 12 AD 16 13 DO 18 AS 1E 20 33:08 FO EC 1430:08 85 07 AS 06 8D U5 CU 9D 0 IE AS 07 9D 40 IF
1260:AD 16 13 DO 0C A9 01 8D 16 13 CA 20 FB 12 AE 30 © 1440:8D 04 CO AS 04 18 €5 07 85 07 EB BA 29 07 D0 £3
1270:08 £0 BF FO 29 A9 1C 20 AB 12 FO 08 A9 00 8D 15 1450:A5 06 49 80 85 06 8A 29 OF DO D4 EG 08 AS 08 C9
1280:13 4C 9B 12 AD 15 13 DO 15 AS 1E 2D 33 U8 FO EC 1460:24 DO CC 88 D0 CO AD 05 BS BB 2C 99 06 00 BS C2
1290:AD 15 13 DO 09 AQ 01 8D 15 13 FA 20 FAR 12 60 AD 1470:2¢ 99 FA 00 88 10 FI AS 08 85 Al AD 00 85 AO 85
12A0:32 08 29 01 49 01 85 AS 4C Al OA AC 31 08 3019 1480:A2 AY 20 85 A3 8D 95 CO AD 09 BI AZ 91 AO 88 DO
12B0:CO 28 FO 15 8D Cl 12 AD 32 08 8D BE 12 8D 54.CO 1490:F9 AS AI C9 2C FO 07 E6 Al E6 AZ 4C 88 2C AD FE
12C0:B1 00 8D 54 CO 2D 33 08 60 A9 FF 16. C512 AD 30 14a0:03 6D 39 08 AD F7 03 8D 3A 08 8D 04 CO AZ 06 OE
1200:08 29 01 A8 HI 34 08 85 iE AL 32 08 BD EA 12 A5 14B0:F6 03 A2 00 8E F7 03 60 50 28 00 8D 03 CO 4C 03
1280:1£ 2D 33 08 @5 1F AC 31 08 8D 54 CO A9 FF 4D 33° 14c0:08 ep 02 CO
12F0:08 31 18 05 1F 91 18 AN 54 CO 60 EG 9A AS 9A DO
Source DHRAGP FIN BNE NORMAL STA scos¢
one $800 STA INVERSE Jue (80098)
Assembleur ProCODE .-------------- ome INvvIDEO DEUKAMP PLA
UMP STARTUP+S1800 NORMAL = SEC PLA
VCTAMPER = $03F6 DEBUT STA $c00S LDA $88 JSL CHRGET
CHRGET = $00B1 JSR DHRAGP spc él SEC
curcot = $0087 Goronasc STA Scand STA $Be EDA AMPERS2
DTHGRI - $1680 LDA $DA LDA 389 spe tl
prucke = S1F40 BMI STORESO sac £0 TAX
LIGPILE = $1380 STA sco0o ‘STA $B9 LDA AMPERS2+1
ABSPILEB = $1080 STORESO LDA SDB LDA £0 SBC £0
AASPILEH = $1080 BMI BIRES STA INVERSE PHA
Wea Se ees > STA $cosé INVVIDEO COPY $53, $98 KA
vo a AIRES LDA $0¢ LOY £3FF PHA
copy Mac BEL PAGEZ NEXTCAR INY IMP GOTOBASC
LOA 0 STA $C055 NEXTCAR2 LDA ($96),Y¥ QERROR LDX £53
STA 11 PAGE2 LDA £860 BEQ PART IMP ERROR
LDA .Ort STA SED JSLR CURGET SERROR LOX £16
STA .1tl cme (S96), ERROR LDA £304
EOM BEQ NEXTCAR STA $FF
ADD MAC ABSDEP HEX 0000 NOEND = INY LDA £$12
cite LIGDEP HEX 00 LDA ($96),¥ STA $FE
aoc .0 ABSARR HEX 0000 NE NOEND LDA £$4C
OM LIGARR HEX 00 iny STA $#D
SUB Mac Aus mex 0000 INY STA $c004
SEC LIG HEX 00 Ty
sc .0 ABSY HEX 00 copy $9a, $88
BOM ABSRAM HEX LOA (896),¥ CMOPLOT JSL CHRGET
GR = MAC MASK HEX Ne NEXTCARZ cmp £8¢1
LDA DTHGRI, x COLMASKO HEX UMP SERROR BEQ PLOTTO
STA .0 COLMASK! HEX PART INY JSR LECTURE
LDA OTHGR2, X NBCOLOR HEX LDA (896),¥ JSR DUPLICAT
STA .041 MASKNB HEX STA $99 ome PLOT
Bow INVERSE HEX ny PLOTTO JSL CHRGET
ISL ‘MAC AMPERSZ HEX LDA ($96),¥ JSR DUPLICAT
LOX £<.0 *¢ PROGRAMME STA $98 JSR LECTURE
LDY £>.0 DHRAGP LDA roa Scola PLOT JSR TRACE
JSR JSRINTER STA STA DA gst CHRGOT
OM ‘LOA LOA $C0iD cMP #£$C1
JSLR MAC STA STA $0B BEQ PLOTTO
STY $3¢ Jst LDA $coic RTS
JsL .0 CMP STA $DC de ee ee eee ee eee >
Loy $3¢ ‘BEQ STA $0001 DUPLICAT COPY ABSARR, ABSDEP
EON cme STA 3c057 LDA LIGARR
Pom’s n° 43
oo
7A LICDED BEQ §TEST2 "ROL SAA UMP VL1
pa BCC DIVEAF sec vier ars
Bes §suR EDA AA
wert errr greets wa G30 See ay BITMsk HEX 01020408102040
LECTURE ssi $0073 MP 539A Bee prise tore = = ais = 68
vst $E752 BCC DIVFAF ak gis Exc wor 62
cup £2 ssuB LDA $9C Se ay EXCLOOP LDA ABSARR, ¥
BCC ORDOK aa os PHA
BEQ TESTXB Sta $0c DIVOK LDA. SAA LDA ABSDEP,
PLERROR IMP QERROR tak ab Dx $A9 STA ARSARR, ¥
resTxe cpy £530 gee san TAY PLA
BCS PLERROR ‘STA $90 STA MASKNS STA ABSDEP,Y
ORDCK «= «STA ABSARR+I we $96 TKA ey
STY ABSARR ae esd Isr BPL EXCLOOP
JSL SE6ES DIVFAF LOX $3E STA ABSY RTS
cex £192 Ina $98 TxA te DHR TEXT >=
ACS PLERROR Ler AND £1 MIXED JSL CHRCET
SIX LIGARR STA $a3 STA SAS Lor $c0sz
RTS LDA $98 EOR £93 cup £389
oS Stes Se ROR STA ABSRAM BEQ MIXEDSW
TRACE LDA £0 STA SAB RIS RTS
STA SEF EDA $9 DIV7INC INC MASKNE MIXEDSW LDA $C053
TDA ARSNFP+! cur $90 DA MASKNS USL CHROBT
CMP ABSARR+1 BEQ TESTPZ Tay RTS
Bcc NoEXcHO BCS DIVEIN cue £7 sre G FEE Sey
aby resreEx UMP INCREM BNE D7INCEIN pur JSR MIXED
Bes: CHANG TESTP2 LDA SAB SDA: BO) DHRGOT LDA SCOSE
TESTFEX LDA ASSARR cue $9c STA HASKNB IDA $c050
cme aBSDEP bes DIVerN vay LDA £520
Bes NOEXcIIC INCREM INK LDA ADSRAM STA 90C
ECHANG JSR EXC DIVEIN TxA BOR £1 STA 386
LDA £SFF LDY $9F STA ABSRAM LDA £$80
STA SEF BEQ NOTNEG OMe £355 STA $DA
NOEXCHG LDA LIGARR STA $25 BNE D?INCFIN STA SDB
cme LIGnEP LDA LICDEP INC ABSY 1A $CO1E
bes sensros SUB $A5 D7INCPIN LDA ABSRAM BMI TxT80GOT
LOA CSF UMP NEGYES AND £1 SIA $c000
STA $9F NOTNEG ADD LIGDEP EOR £1 STA $C052
LDA LIGDEP NEGYES LOX LIG STA $A5 RTS
SUB LIGARR STA IG RIS elidel
JME PLDEBUT JSR LIN DIv7DEC DEC MASKNB Text «LDA £0
SENSPOS LDA 60 LUA ABs+t LDA MASKND STA $DA
STA $9F CMP ABSARR+! Yar STA $051
LDA LIGARR BNE SUITE BPL D7INCFIN STA $cOSF
SUB LIGDEP LDA ABS LDA £6 STA $DC
PLOEBUT STA $99 CMP ARSARR STA MASKNB RTS
TDA ARSARR BNE SUITE TAY M Piss = Saxe Ss
sup ADSDEr LOA SEF LDA ADERAM TEXT40 JSL CHROET
STA $98 cue Ese bux #1 vSR Texr
LDA ABSARR*1 BNE PLOTFIN STA ABSRAM TXT40GOT LDA $CO1E
SBC ABSDEP+I JSR EXC CMP £955 BMI TEXT4OCL
STA $98 PLOTFIN RTS REQ D7INCFIN INposs STA Sco0c
LDA £0 SUITE MP PLSUITE DEC ABSY ars
STA $9¢ CALMSKIN JSR DIV7INC aap D7INCFIN TEXT40CL LDA £17
STA $90 IMP CALMSK1 Sh are ele aie 2 4g, vote COLONES
STA $9E CALMSK JSR DIV? LIN LDA ABSRAM fee ee 23
COPY ABSDEP, ABS CALNSK1 LDA SITHSK,¥ STA XVLRAM#L HGR JSR MIXED
JSR CALMSK STA MASK vn HORM $18 WGRGOT LDA £$20
LDX LIGDEP CALCOLM LDA NBCOLOR TxA STA $c
STK LIC CALCULMA ASL AND £1 STA $86
JSR vLIN ASL Tay HOR2SUIT LUA £9
LDA ABS+I ADD $5 LDA MASK STA SDA
CMP ABSARR+I ADC E<PALETTE AND COLMASKO, Y LDA £380
BNE PLSVITE STA $a5 STA SIA STA SDB
LDA ARS LOA £0 iy apsy STA $c050
cue ADsaRR TAY XVLRAM STA $C054 STA $CO5F
BNE PLSUITE ADC £9PALETTE LUA INVERSE LDA $cOle
LDA LIGARR STA $a6 BEQ VIDNORM BMI HGRCBA
STA LIG LDA (SA5),¥ LDA ($18),¥ STA $cooc
MP VLIN STA COLMASKO OR MASK WGRCBA RTS
PLSUITE LDA £1 any JME VIDINV ee ---- 3
app ans INE VIDNORM LDA £95F HGR2 USL. CHRGET
STA ABS LDA ($A5),¥ BOR MASK LDA £380
LDA ABS+I STA COLMASKI AND ($18),¥ STA $0C
apc £0 RTS ORA SIA LDA £340
STA ABS+I fee ee eee eee VIDINV STA ($18),¥ STA $E6
ISR CAIMSKTN piv? nov e16 *¢ DUR TEXT >--==-: STA $c0S2
LDA $9C COPY ABs, $A5 STA $c054 vsR TxT40G0T
ADD $98 LDA £0 Cex LG vse HoR2suLY
STA $9C STA $AA BEQ VLRET tee ee ----3>
LDA $90 DIVST ROL $A9 LDA $9F TEXT8O JSL CHRGET
apc £0 DEY BNE NEG JSR TEXT
STA $97 BMI DIVOK rx TXTBOCOT LDA $CO1E
S7EsT1 LDA $9D ASL 905 ume vbI apL poss
cue 398 ROL $A6 EG Ex Loa £18
Pom’s n° 43
2
LDA SRAM2+1
BOR £1
£0 STA $RAM211
amp esc STA ($A5),¥ TYA
BEQ COLROK2 STA $055 LsR
PLA STA ($25), TAY
ae SEARO STA $C054 $RAM2 STA SCOSS
JSR LECTURE COLROK2 LDA £0 RIS apa (4A5),¥
sR DUPLICAT STA SAS STOREPRG LDA ($A5),¥ STA $c0s4
asi cHRGOT PLA gia (en?) Se dee
cue eget JSR cALcOLMA SrA 40055 soa. CSRS
SEQ BOxXTO wy 20 LDA ($A5),¥ DEY -
UMP SERKOX msuivanr sty $18 ‘STA $c054 Be aoa
BOXTO = JSL_«CHRGET ISL SE6FS ‘STA (SA9).¥ ie
. JSR LECTURE Loy $18 prs ae
; LDA LIGARR TXA RECLLPRG LDA ($A7),¥ PRGZDHR LDY £0
. STA LIC STA (SAS),¥ ‘STA (9A5)6¥ Sean aan Vase
. cue LIGDEP my LDA ($A9I,¥ LDA SRAMI+1
. BCS BOX! wer 24 STA $C055 BOR £1
BOXERROR UMP QERROR BNE MSUIVANT STA (SA5),¥ STA SRAMI+I
BOX1 LDA ABSARR+1 RTS STA $CO5S4 LDA ($A5),¥
CMe ARSDEP+! ars PHA
BCE: BOENNOS cus JSL CHRGET EXCPRG STA $C055 TYA
‘BNE’ Boxe LDA £3 LUA (SA5I,¥ ISR
SOK: Ae STA NBCOLOR PHA TAY
ae eso LDX £<CLSPRG LDA ($A9),¥ ‘PLA
BCE: BOERROR LDY E>CLSPRG STA (SA5),¥ SRAMI STA $CO54
BOX2 COPY ARSARR, ABS UMP TRANSFRT PLA ‘STA (9A5),¥
von DIV? STORE JSL CHRGET STA ($A9),¥ SYA $054
LDA BOXNSK2, ¥ TDM! EcoremeoRe LDA (5A7),¥ LY $96
ree LOY £>STOREPRG PHA TY
LDA ABSY GMP TRANSERT STA $c0S4 cey £40
STA $96 RECALL ISL CHRGET LDA (SA5),¥ ANE SPARTI
TOR: ROSEN LOX E<RECLLERG STA (5A7),¥ STX $90
aon S97 LOY £>RECLLERG PLA LDX £<READHGR2
copy ABSOEP, ABS JME TRANSERT STA (AS),¥ LOY £>READHGR2
aBR) DIV? AGPHGDHR JSL CHRGET RTs JSR C9STRING
LDA BOXMSK1, ¥ IDX £<PRGHGDH PRGHGOH LDA (SAS),¥ LOX $9A
‘STA MASK LDY £&>PRGHGDH STA $98 Loy 6
JSR CALCONM JSR TRANSERT LDA £0 Srant2 sTY $96
wpa £0 JME AGPZDURC STA 396 LOA SRAN2+1
‘Sma 49 AGPOHR2 JSR AGPDHRZA ‘STA 397 BOR £1
REBOX LDX LIGDEP LDA Scola STX $99 STA $RAN2+1
JSR VLIN API. AGPDHRIA Lx £8 Usk $¢9
LDA ABSRAM AGP2DHRE RTS $1 aS: $96 PHA
FOR ¢1 AGPDHR2B SMP HGRGOT PHP YA
STA ABSRAM AGPDHRZA JSL CHRGET ROL $96 sk
cmp (£355 LDX £<PRGDHRZ ROL $97 cee
BNE BOXTEST LDY £>PRGDHRZ ‘PLP ADC £20
INC ABSY JMP TRANSFRT ROL $96 TAY
BOXTEST LDA ABSY AGP2DHR ISL CHRGET ROL $97 PLA
cue $96 Lox e<PROZDHR Dex Srau2 8TA $054
Bcc BOxconT uy ceprezmur BNE $1 STA (2AS)+¥
LOA ABSRAM JSR TRANSFERT ASL 396 ‘STA $c054
CMP S97 AGP2DHRC LDA $COIA ROL $9/ LDY $96
BNE BOXCONT BMI AGP2D:RB ROR $96 Iny
BOR £$55 ‘JUMP = DHRGOT LDA $97 cpy £40
STA §A5 EXCHANGE ISL CHRGET STA ($251,¥ BNE SPART2
JER CALCOLM LOX c<GxCPRG LDA $96 usR cSLOAD
PLA LOY £>EXCPRG STA $c035 Lor £0
STA MASK TRANSERT STX TRADR+1 STA ($A3),¥ RTS
LDX LIGDEP STY TRADR+Z STA $C054 READHGR2 STA $C002
JMP VLIN LOx £96 LDx $99 LDA ($A7),¥
BOXCONT LDA FSF TRLOOP LDA DTHGRI,x RTS STA $c002
STA MASK STA $a5 pRopuR2 Loy £39 aro
LDA ABSRAM STA $A7 SPARTI STY $96 C9STRING STX C9STRADR+1
BOR £$55 ‘STA SAY ‘LDA $RAMI+1 STY C9STRADR+Z
STA $A5 cle BOR f1 JSR C9SAVE
JSR CALCOLM LDA DTHGR2,X STA $RAMI+1 boy 11
IMP REBOX STA $6 TYA COSTRADR LOA $0000,¥
DOXMSK1 EX FFPEFCFSF0E0CO ave £620 LR STA $09,¥
BOXNSK2 HEX 0103070F1F3F76 STA $A8 cue ver
anc £S2U ADC £20 BPL C9STRADR
STA SAA TAY RTS
“oy £39 SRAMI STA $C055 ‘*< SAVE et LOAD >--
crapR ISR. $0000 LA (505), ¥ MANEERR IMP SERROR
DEY STA $c054 (NAME USL CURGET
| BPL TRADR STA $c004 MP £34
CPX £96 boy $96 BNE NAMEERR
TxA STA ($A7),Y Loy £5
SBC £192 STA $c00S JSLR CHRGET
FoR 6255 bey MAMELETT CMP £91
TAX BEL $eARTt pes NaNEERR
cex £192 wor £39 cme £65
BNE TRLOOP SPART2 STY $96 BCC NAMEERR
26 Pom’s n° 43
NAMEENR ORA
STA
Ny
vsuk
cme
BEQ
NAMEPIN. TYA
NAMEADR STX
NAMELOOP LDA
NAMEPLG STA
LOADDT ASC
LOADDATA ASC
SAVSOT ASC
SAVEDATA ASC
£880
$8c00, ¥
CHRGET
£34
NAMEPIN
£48
NAMEERR
58
NAMELETT
NAMEENR
NAMEPLG+1
cuRcer
NAMELOOP +1
NAMELOOP +2
£0
$0000,¥
sacno, ¥
e960
NasesLour
"BLOAD"
*,AS4000"
80
"BSAVE"
", AS4000, L13360"
60
4
Luauur, ¥
$8000, ¥
5)
NAME
{<LOADDATA
E>LUAUUATA
NAMEADR
704000
$3803
PACTINIT
cepacTpRce
£2PACTPRGS
TRANSPRT
RCL40002
§1
NAME
E<SAVEDATA
E>SAVEDATA
NAMEADR
sT04000
PACTINIT
E<PACTPRGA
E>PACTPRGA
TRANSERT
$4203
RCLa0002
ome
RCL40002 JSR
*< SAVE et LOAD >~-~-
RCL200 STA
RCL200L LDA
STA
per
5704000 Lx
CHRGET
E<RCLAOJSR
E>RCLAOISR
Excavve
RCL4000
senne
$800, ¥
$200,¥
RCLZ00L
$c005
c9LoAn
£<STO40DAT
£>STO4ODAT
C9STRING
uy £0 LDA ($98),¥ PACTPRGS JSR $9
sty $96 STA (8961,¥ STA (SAS),¥
s702L00P LDA $800, ¥ STA $005 ey
PHA RTs BPL PACTERGB
JsR sco STOCOISR USK $¢9 JSR PACTING
STA $8C00,¥ STA ($98),¥ LY £39
PLA RIS PACTB2 JSR $C9
STA sco0e STO“ODAT STA $c002 STA SCO5S
STA $200,¥ LDA ($96), ¥ STA (SA5),¥
STA $c005 STA $c003 STA $C054
DEY RTS Der
BNE STO2LOOP *€ SAVE @t LOAD >-~--n-=---==—~ BPL PACTB2
LOX e<sTo4ousR PACTINC LDA £40 Iny
ny e>sroeatse ADD $96 JHE PACTING
4 SAVE et LOAD >~ STA $96 PACTINTT LNA £340
EXC#000 LOA £0 LDA $97 STA $97
STA $96 avc £0 LDA £0
STA $98 STA $9/ STA $96
LDA £340 RIS
STA $47 PACTPRGA STA $004
LDA £$80 PACTAT LMR (SA5),¥ FILL = JSL CHRGET
STA $39 STA ($961,¥ ome £905
STX EXC#0USK#L per BEQ FILLAT
STY EXC409SR+2 SPL PACTAL cup £sa0
EXC40BCL LOY £0 JSR PACTING BNE PILLERR
EXC4QJSR JSR $0000 Loy £39 JSR COLOR
DEY STA $cn55 38h CHRGOT
BNE EXC4OISR PACTA2 LDA ($A5),¥ cup £gcs
INC $99 STA ($96),¥ BEQ FILLAT
INC $97 ber FLLLEKK UMP SERROR
LDA $97 BPL PACTAZ FILLAT JSL CHRGET
cue Es7C STA $c0S¢ JSR LECTURE
BNE EXCd0BCL STA $005 SIX 1IG
ars INY copy AgsaRR, ABS
RCLEONSR STA $c004 ume PACTING LOA £0
Traitement de texte francais
Pour Apple //e, Apple //c, Apple GS.
Glossaire puissant, recherche - remplacement.
S - Creation de caractéres téléchargeables sur Image Writer
ee (notation mathématique, alphabets étrangors etc...)
_ Impression rapide, pilotage précis de mise en page.
_ Coupure correcte des mots, justification en proportionnel,
condensé et expansé.
Gribouille, une valeur sdre pour un public averti.
Pour recevoir Gribouille, envoyez ce bon de commande a:
75015 PARIS. = Tel: (1)
Je vous prie de m'envoyer a l'adresse ci-dessous:
NOME ence
Adresse: 3...
le logiciel Gribouille Prix (port compris)
Es * version //e - /ic pour lecteur de disquettes 5 1/4 599frH.T. 710i 1.1.0.
: * version //e - //e pour lecteur de disquettes 31/2 632 frHT. 750frT.T.C.
es * version GS SSH HT. 900f TTC.
~ Cijoint un cheque de...... francs libellé a l'ordre de GRIBOUILLE SARL
riboullle
Frappe au kilometre, rapidité d'écriture, souplesse de correction.
oe S Humblot
Griboullle SARL. 5,US HON 77
27
STA $9A LDA FLAGHAU LOX E<SSPRGCI HEX wosososo
MEXTLIGN JSR CALMSK BNE BAS LDY £>6sPRGcS HEX AADSAADS
EDK LIG fon £2 JSR COSTRING HEX DSAADSAA
Hort $18 STA PLAGHAU STA 30004 REX PPEPERFE
INK DEX PLA HEX 36222036
HORM $1C JSR EMPILE Me $05 HEX 08084242
‘DEX Lox LI SRINAUX PHA HEX FEIF3FFE
DEX BAS cex £191 YA HEX CA2929CA
HORM $1A REQ. FINTEST PHA HEX C42E28C4
LWA £0 LOA $1 YSR CSLOAD HEX 70ADAD70
STA FLAGHAU JSR STATE PLA HEX EAS7S7EA
STA FLAGBAS BEQ BASOFF TAY HEX 2A35552A
COPY ABS, ABSDEP BASON = LDA £0 PLA *STARTUP —
TSTGAUCH JSR DIV7DEC STA FLAGBAS STA $c005 STARTUP LDX £0
LDA BITMSK, ¥ GIMP PINTEST RTS LY £3
SIA MASK BASOFF LDA FLACBAS SSPROC9 STA $co0e STARTUP] LDA STARTUPD~1+81800,¥
LDA £$18 ane FINTEST Sauk = sx $9000 STA $6
j JSR STATE LDA $1E STA $C003 LDA £920
| BNE ALLUMGAU AND MASK MP SRINAUK STA $8
| sec BEQ BASON seven S ethane > STARTUP2 LOA $8
LDA Ansocr LDA FLAGRAS cosave iby £21 STA $7
| sac £1 BNE PINTEST e9sLoor LDA $c5,¥ STARTUP] LDA $6
| STA ABSDEP Loa £1 STA LiGeie,¥ STA $C005
| LDA ABSDEP+1 STA FLAGSAS bey STA DTHGRI,x
sac £0 Ink BPL C9SLOOP LDA $7
STA ABSDED+1 JSR EMPILE RTS STA DTHGR2, x
ump TSTGAUCHI FINTEST RTS e9xoaD toy £11 STA $c004
ALLUNGAU JSR DIV7INC Sie SS AST > O9LL00P LDA LIGPILE,¥ LDA £4
| LDA BITMSK,Y CALCOUL LDA ABSRAN STA $09, ADD §7
STA MASK ano 1 ex SIA $7
| LDA LIG boR ct BPL C9LLOOP INK
| aes STA $A5 RTS brid
| STA GAS UMP CALCOLM * INSTRUCTIONS -- AND £7
vs CALCUL see | py sy TABLE HEX 8000 ANE STARTUP!
LDA $18 wir’. DenCnba Dos CMDELOT LDA $6
JSR STATE cy £40 HEX A000 EOR £580
| ANE ALLUME neo: DeeoRDEN DDB COLOR STA $6
JSR CALCOUL Sth statextea HEX B8A000 TKA
| wsR ARE ign ABSA oa DEFCOLOR AND £15
LDA LIG tn STATRRAMAT HEX A809 BNE STARTUP?
aD £1 STATERAM STA $C05S4 ae Shae Ihe Ae
BOR £1 STATETYP LDA ($00), ee A708 paren
| STA $AS wea sons? DDB RECALL cur £24
JSR CALCOLM STATEDER AND MASK HEX 42475800 BNE STARTUP2
| JSR TESTHB na poe BOX DEY
| LDA £2 cota 8 ASC ‘EXCHANGE’ ANE STARTUP
ADD ABSDEP Mp STATEDER ral =
STA ARSDEP ae tah uke DDB EXCHANGE STARTUPS LDA DATADTO6+$1600,¥
| LDA ABSDEP+I ae a HEX 434C5300 STA $06,¥
ape £0 aay pop cis LDA DATADTFA+S1800,¥
| STA ABSDEP+1 LDA COLMASKO, Y ex 46494C4C00 STA SFA,Y
Me ALLUMGAU A SB 08 FILL Dey
ALLUME LOY $9A toa Asi Hex 8900 ap sranture
} BNE NextPrLe eh sens pos TExT40 Loa £36
RTs on oe wex 9100 STA SAL
NEXTPILE LOA LIGPILE, ¥ Gan ihe pop HeR LDA £50
STA LIG Se Ee Hex 9000 STA $A0
LDA ABSPILEB, Y vey Aa DDB HGRZ STA $22
STA ABS quran o7n 4C056 HEX 343000 LDA £$20
I LDA ABSPILEH, ¥ LOA ‘SFr DDB TEXT49 STA 343.
FOR MASK HEX 383000 _ STA $0008
AND ($18),¥ en, ate SENS ves thee?
oak Ee ac. tae uae STARTUP LDA ($A2),¥
STA ($18), HEX CP54574F00 STA (GA0),¥
JSR CALCOUL STA $c0S4 DDB AGPDHR2 per
LA LG RTS ASC 'AGP.TWO" BNE STARTUPE
AND £1 EMPILE INC $9A HEX CF44485200 LDA $A3
| BOR £1 LDY $98 DDB AGPZDHR cup £>STARTUP+S1800
TAY ANF EMPTLD ASC ‘AGP. DEQ STARTFIN
EDA COLWASKO, ¥ DRC $9R HEX 910F44485200 Nc SAL
STA $1E oey DDB AGPHGOHR Inc $A3
Wx LG EMPIL1 —TXA HEX 44485200 yup STARTUPS+$1800
t BEQ BAS STA LIGPILE,Y DOB DHR STARTFIN COPY VCTAMPER, AMPERS2
LDA £$1A LDA ABSDEP ‘HEX 8709 STA $co0d
} JSR STATE STA ABSPILEB,Y D0B SAVE Lox £6
BEQ HAUOFF LDA ABSDEP+1 REX 8600 SIX VOTAMEES
HAUON LOA £0 STA ABSPILEH, ¥ poB LOAD Lox £0
STA FLAGHRU KES MEX 45525200 STX VCTANPER+1
UMP BAS FLAGBAS HEX 00 DOB ERK as
HAUOFF LDA FLAGHAU FLAGHAU HEX 00 *PALETTE DE COULEURS -- pr csaeigce aA
| ANE RAS 4SP dans Main RAM ----- PALETTE HEX 00000000 DUINTERE Sty 24y90e
| LDA $1E JSRINTER STX $ADR+1 HEX 2A552a55 ee eee
| AND MASK STY SADR+2 HEX 55225524 DATADTFA STA $CO02
BEQ HAUON PHA HEX 7ETEIETE “The end. ---~-~
28
Un programme en GS-Basic :
Puzzle
Bruno BOISSTERE
Nul besoin de présenter ce jeu qui consiste a remettre en
ordre une image (SHGR couleurs ici) boulcverséc par
Yordinateur.
Ce programme a été écrit dans un but de familiarisation
avec GS Basic et la bite a outils de l'Apple IGS. La
documentation du GS Basic et le livre de Jean Pierre Curcio
“Boite a outils de L'Apple IIGS’, bien que les exemples
soient en langage C, sont trés utiles. Le programme de
démonstration nommé PICS de la disquette GS Basic est
tres instructif, Il a servi d'inspiration au programme Puzzle.
Utilisation
Il vous faut tout d'abord lire une image en ouvrant un
fichier. Le programme nee sachant pas décumpacter une
image, il ne vous proposera que les fichiers de type $C1
(image non compactée). Au besoin utilisez GS Paint ou
tout autre logiciel de dessin pour sauver les images sous
forme non compactée (type écran).
Une fois votre image chargée, vous pouvez alors choisir le
nombre de pitces avec le menu du méme nom (choix de 4 &
100 pitces). Tant que vous n’avez pas mélangé vous
pouvez essayer plusieurs découpages. Lorsque vous étes
prés, mélangez ! (menu ‘Jouer’).
Le mélange étant fini, vous pouvez commencer &
reconstituer l'image en cliquant sur les pitces que vous
voulez échanger. Chaque fois que vous cliquez sur une
piéce, elle s'entoure et si vous avez cliqué auparavant sur
une autre, elle s'échange avec elle. Laissez le programme
travailler : ce n'est pas un langage compilé. Dés que le
mélange a été effectué, vous pouvez vérifier quand vous le
souhaitez si vous avez réussi 4 reconstituer l'image.
A tout moment pour vous aider, vous pouvez, par le menu
“Ecran’, passer de l'image puzzle a l'image reconstituée et
vice-versa. Vous pouvez aussi par lc méme menu visualiscr
ou non Ia grille. Dans n'‘importe quelle phase du jeu, vous
pouvez changer d'image en en chargeant une autre ou, bien
sir, sortir du programme.
Attention aux images comportant, une fois découpées, des
piéces semblables. Vous penserez les avoir reconstituées
alors que pour le programme les piéces ne seront pas &
leurs emplacements de départ.
Structure du
programme
Le programme principal PUZZLE2 est appelé par le
programme PUZZLE qui charge les fichiers TDF.
Le programme principal est constitué des initialisations et
d'une boucle presque vide en ligne 19600, tout le reste étant
des sous-programmes. Ce sont les interruptions créées par
Ja sélection d'un menu ou par un click souris qui vont faire
s'‘éxécuter tel ou tel sous-programme. Comment sont tils
appelés ?
Appels par les menus
Liinstruction mzwupzr a la ligne 19200 a pour fonction de
lier les numéros d'articles définis dans l'initialisation des
menus (lignes 17800 a 18200) aux labels des
sous-programmes. Il faut ajouter le nombre juste aprés
menupeF & 256 et A la position du label dans I'instruction
pour obtenir le numéro de l'article qui va pouvoir appeler le
sous-programme. Par exemple le sous-programme
pecoupeé4 est appelé par l'article 1 (nombre aprés
MENUDEF) + 255 + 4 (rang de DRAwPUZZLE dans la liste) =
260 (article ‘64’ du menu ‘Nb de picces’ : ligne 18000).
Appels par un click souris
L'instruction £vENTDEF & la ligne 17100 relie les
sous-programmes DRAWPUZZLE Ct DRAWIMAGE aux
événements de mise 4 jour des fenétres dont les structures
sont puzzle! () et imagent! (). L'instruction evenrper &
la ligne 19300 cllc, relie le sous-programme czuick au
click dans une fenétre qui est codé 19 par GS Basic. La
plupart des actions clavier ou souris sont ainsi codées.
Lorsque le programme tourne on est dans la boucle en
19600. Dés qu'on crée un événement (appel 4 un menu ou
click) on saute au sous-programme défini par les
instructions MENUDEF et EVENTDEF, Chaque
sous-programme ainsi appelé doit se terminer par RETURN
o. On revient alors en attente dans la boucle. Méme la
sortie du programme est ainsi traitée. L'appel de l'article
‘Quitter’ fait éxécuter le sous-programme QurTTFR qui met
Tindex quit flag a 1. La boucle testant cet index, on en
sort dés qu'on y revient.
Pom’s n° 43
29
/CEST UN
. PICASSO ?
Instructions TASKREC
Dans les sous-programmes, vous trouverez les variables
TASKRECS(I) et TASKREC4(T). Ce sont des variables
réservées de GS Basic. TASKREC# (1) est dimensionné a 12
ct TASKRECA(I) 211. Voici quelques affectations de ces
variables :
- TASKREC#(6) donne la coordonnée verticale de la
souris.
- TAsKREC’(7) donne la coordonnéc horizontale de la
souris.
- TasKRece (9) donne le numéro diarticle.
- TaskRECs (70) donne le numéro du menu.
- taskreca (3) donne le handle sur la fenétre active.
/NON.CEST
UN PUZZLE.
Z,o
ww Ft —
Initialisations
| Les outils utiliscnt beaucoup les structures. Pour les
intialiser, il est pratique d’écrire les valeurs sous forme de
datas et d’écrire une petite procédure qui lit ces datas et
transférc les valeurs dans la structure voulue.
On peut de cette maniére coder dans les datas les types de
variables qu'on veut écrire dans la structure. Par exemple,
dans le programme PUZZLE, la procédure Chardate (ligne
| 42800) prend en compte les nombres derriére les caractéres
# comme des enticrs (2 octets) et les nombres derritre les
caracttres 4 comme des doubles enticrs (4 octets). On
pourrait étendre cette technique & des nombres que l'on veut
écrire en hexadécimal ou en binaire.
Outil PaintPixels
Le programme tavaille sur trois images stockées dans des
structures. La structure picimage!() contient l'image
entitre. La structure pic! () contient l'image puzzle
mélangée qu'on voit & I'écran. La structure picrecep! ()
contient une image de travail qui sert au moment d'un
échange. En effet lorsqu'on veut échanger deux pigces 1 et
2, la procédure echange copie la pitce 1 de pic a
Yemplacement 2 dans picrecep et la pitce 2 de pic a
l'emplacement 1 dans picrecep. Elle copie ensuite la pice
1 de picrecep A l'emplacement 1 dans pic et la pitce 2 de
picrecep & l'emplacement 2 dans pic. Pour ccla cette
procédure utilise l'outil paint Pixels (pointeur). Cet
outil copie le contenu d'un rectangle appartenant @ un
locinfo dans un autre rectangle appartenant A un autre
locinfo. Les deux }ocinfo et les deux rectangles sont
définis dans la structure ‘pointée’ par pointeur. Dans le cas
du programme PUZZLE, les rectangles sont
rigoureusement de méme taille mais l'outil Paint Pixels
est capable de faire des mises & I'échelle si les rectangles
sont de dimensions differentes.
TransfertsAppleSoft + GSBasic
Il vous suffit, pour récupérer vos plus chers programmes
AppleSoft, de les transformer en fichier texte grace au
programme de capture bien connu que I'on ajoute en téte du
programme a récupérer avant de le RUNer :
0 PRINT CHR$(4)"OPEN TEXTE
1 PRINT CHRS(4) "WRITE TEXTE
2 Ist 5,
3 PRINT CHRS(4) "CLOSE TEXTE
4 END
Attention, avant cette transformation, supprimez ou
remplacez les instructions suivantes qui font planter GS
Basic:
- HGH, HGK2, HCOLOR, HPLOT ...mais QuickDraw sait
faire tellement mieux.
- HIMEMet LoMEM qui sont inutiles sous GS Basic.
- In? qui fait planter le rewum de GS Basic. Il faut alors
se débrouiller avec ROUND () el FIX().
- GET xsAwansformeren GEv's x3.
A tous ceux qui connaissent l'AppleSoft, et ils sont
nombreux, GS Basic permet d'accéder rapidement et
facilement aux outils de l'Apple IGS et donc d’écrire des
programmes possédant une interface utilisateur évoluée
(menus déroulants, multi-fenétrage, etc.). De plus
moyennant quelques adaptations rudimentaires, ils peuvent
récupérer des programmes AppleSoft.
G
Programme GSBasic ‘Puzzle’
NB. : Les préfixes précisés dans Puzzle conduisent a organiser
votre disquette de la fagon suivante :
Votre disquette s'appelle /cs81.
Le dossier /G581/TDFS contient les librairies.
Le dossier /cS#1/B0ISSTERE contient les programmes Puzzle,
Puzzle 2 ct l'image de démarrage Demar.
Le dossier /cs81/IMAGES. Ptz7z1.F conticnt... vos images SHGR
a puzzler.
Pom’s n° 43
10000 REM ox, du Memory Manager, de Miscellaneo
10100 REM us Tools el de Event Manages sont Cai
10200 REM Bruno Boissiére le 97/05/89 tes pa r GS Basic
10300 REM Programme PUZZLE version 1 12500 REM Initialisation de Quick Draw
10400 REM eee 12600 GRAF INIT 320:GRAF ON
10500 REM 12700 REM Identification de l'application
20550 PREFIX 0, "/GSB1" 12800 myid&=EXFN_MMStartUp
10600 REM Libération d'environ 64 koctets 12300 REM Réservation de 4 pages zéro
10700 CLEAR 65600 13000 aat=EXFN_loword (TEN ("C005") }
10800 PRINT FRE;" octets disponibles” 131200 ha-EXFN_NewHandle (4*256,myidt, aat, 0)
10900 REM Chargement des fichiers .tdf 13200 REM Adresse du bloc de 4 pages zéro
11000 PREFIX 1, "0/TDFS" 13300 aad=PEEK (ha) +256*PEEK (ha+1) +256*256*P
11100 LIBRARY "1/locator.tdf” EEK (ha+2)
11200 LIBRARY APPEND "1/memory.td£" 13400 REM Initialisation du Window Manager
11300 LIBRARY APPEND "1/misctool.tdf" 13500 _WindStartUp (myidt)
11400 LIBRARY APPEND “1/quickdraw.tdf” 13600 REM Initialisation de Control Manager
11500 LIBRARY APPEND "l/event.tdf" 413700 _Ctlstartup (myidt, aaa)
11600 LIBRARY APPEND "1/window.tdf* 13800 REM Initialisation de Line Edit
11700 LIBRARY APPEND “1/control.tdf” 13900 _LEStartUp (myidt, aaa+1*256)
11800 LIBRARY APPEND "1/lineedit.tdf" 14000 REM Initialisation de Dialog Manager
11900 LIBRARY APPEND "1/dialog.tdf" 14100 _DialogStartUp (myidt)
12000 LIBRARY APPEND "1/menu.tdf” 24200 REM Initialisation de Menu Manager
12100 LIBRARY APPEND "1/scrap.tdf" 14300 _MenuStartUp (myidt, aad+2"256)
12200 LIBRARY APPEND "1/stdfile.tdf” 14400 REM Visualisation de l'image de démar
412300 LIBRARY APPEND “1/desk.tdf" si. al
12400 LIBRARY APPEND "1/intmath.tdf" 44500 _BlockMove (VARPTR (pic! (0)), 14753792, 3
12500 REM Réinitialisation de 1'imprimante 2768)
sans AUTO-LF 14600 REM Initialisation du Scrap Managor
12600 ASSIGN ". PRINTER", -1 14700 _SerapStartup
12700 ASSION ", PRINTER", 1 14800 REM Initialisation du Standard File 0
12800 KEM vassage en mode texte pour efface perations
x l'image du boot 14900 _SFStartUp (myidt, aad+3*256)
12900 TEXT 15000 REM Initialisation du Desk Manager
13000 REM Lancement du programme PUZZLEZ 15100 _DeskStartUp
13100 PREFIX "0/BOISSIERE" 15200 REM Initialisation des datas des fene
13200 RUN "PUZZLE2" tres
15300 RESTORE dalalensim:PROC chardata(VARP
TR{apropos! (0)))
z ss 15400 RESTORF datadimapro:PROC chardata (VAR
Programme ‘Puzzle2 PTR (apeopos! (62)))
15500 RESTORE datafensim:PROC chardata (VARP
10000 REM TR (puzzle! (0)))
10100 REM 15690 RESTORE datadimpuz:PROC chardala (VARP
10200 REM Brune Boissiére le 03/06/89 TR{puzzle! (62)))
10300 REM © Programme PUZZLE version 2.0 15700 RESTORE datafensim:PROC chardata(VARP
10400 REM TR (imagent! (0)))
10500 REM 15800 RESTORE datadimimag:PROC chardata (VAR
10600 CLEAR 131072 PTR (imagent ! (62)))
10700 REM Traitement des erreurs 15900 RESTORE datatensim:¥KUC chardata(VARP
10800 ON ERR NOTRACE:TEXT:PRINT:PRINT ERRT TRigagne! (0)})
XTS (ERR); " E: a la ligne ";ERRLIN 16000 RESTORE datadimgagne:PROC chardata (VA
2CHRS (7) :GOTO fin RPTR(gagne! (62))}
10900 ON DREAK NOTRACE:GOTO fin 16100 waa=EXFN_NewWindow (VARPTR (apropos! (0)
11000 REM Dimensionnenents ”
11100 DIM menu?! (770), menu2! (120),menu3! (12 16200 REM Initialisations des LocInfo
0), menud! (120), menw5! (120) 16300 RESTORE datalocinfo:PROC chardata (VAR
11200 DIM pic! (32767), picrecep! (32767), pici PTR (loclinfo! (0)))
mage! (32767) 16400 RESTORE datalocinfo:PROC chardata (VAR
11300 DIM puzzle! (78), ima !(78), apropos! PTR(loc2info! (0)))
(78), qagne! (76) 16500 RESTORE datalocinfo:PROC chardata (VAR
21400 DIM ligne! (256), vecteur! (100) PTR (loc3info! (0)})
11500 DIM reply! (149), 1tstype! (10) 16600 SET (loclin£o! (2), 1) =VARPTR (pic! (0))
11600 DIM rect! (7),srcrect!(7),receprect!(7 16700 SET (locZinfo! (2}, 4)=VARPTR (picrecep! (
),entour! (7) 9)
11700 DIM loclinfo! (15}, loc2info! (15),loc3i 16800 SET (loc3info! (2), 4)-VARPTR(picimage! (
nfo! (15) 0)
11800 DIM pointeurpp! (21) 16900 RESTORE datasrcrect:PROC chardata(VAR
41900 DIM npdet (100) PTR(srcrect!(0)))
12100 REM Chargement. de l'image de démarrag 17000 REM Gestion des événements liés aux £
e enétres
412200 REM PROC charge ("DEMAR™) 17100 EVENTDEF 60, drawpuzzle, drawimage
12300 REM Initialisation des outils 17200 SET (puzzle! (58), 4) =EXEVENTA (60)
12400 REM Les initialisations du Tool Locat 17300 SET (imagent ! (58), 4) =EXEVENTA (61)
Pom’s n° 43
31
] Une page dépouillée
Les rédacteurs de Pom’s vont redouter le syndrome de la
page blanche cher aux écrivains : un papier ‘protecteur’ a
singuligrement allégé la page 21 de notre numéro 42. Vous
avez perdu le titre :
auteur du programme, Patrick Blancheton etle dessin de
Gilles Coursier.
Les protections sont maintenant sous haute surveillance...
sject.System, mais surtout le nom de
17600
17700
17800
17900
18000
18100
18200
12300
18400
418500
18600
18700
18800
18900
19100
19200
19300
19400
19500
19600
19700
20600
20800
20900
21000
21100
21200
APROPOS:
REM Mis en place de 1a barre de menus
_RefreshDeskTop (0) :_ShowCursor
SET (menul! (0))="> acN1X"+CHRS(0)+"- A
propos de puzzlegN257 V"+CHR$(0)+"."
SET (menuz!(0))="> Fichier gN2"+CHRS (
0)+"= Ouvrirg*OoN259"+ CHRS(0}+"- -cN
266D"4CHRS (0)+"~ Quitter¢*QqN258"/CHR
$(0)+"."
SET (menu3!(0))="> Nb de p.
1 CHRS (0) 1"- 4gN268"1CHRS (0) +
9"+CHRS (0)+"- 25GNZ7O"+CHRS (0)+"- 64¢
N260"4CHRS (0)+"= 100¢N264"+CHRS (0) +".
SET (menu4!(0))="> Jouer ¢N4D"+CHRS (0
)+"= Melanger¢N261"+CHRS (0)+"~ Verifi
ergNZ267D"+CHRS (0) +". "
SET (menuS!(0))="> Ecran ¢N5D"+CHRS(0
)+"= Image puzzle¢N262"+CHRS(0)+"- Im
age entiere¢N263"+CHR$(0)+"- GrillegN
265"+CHRS (0) +"."
_InsertMenu (EXFN_NewMenu (VARPTR (menu
£(0))),0)
_InsertMenu (EXFN_NewMenu (VARPTR (menu4
1(0))), 0)
_InsertMenu (EXEN_Newitenu (VARPTR (menu3
1(0))),0)
_IngertMenu (EXFN_NewMenu (VARPTR (menu2
£(0))),0)
_InsertMenu (EXFN_NewMenu (VARPTR (menu1
1(0))), 0)
FixAppleMenu (1): FixMenuBar: DrawMen
Bar
index4-1:grill
gt-0
REM Appels par les articles des menus
MENUDEF 1, apropos, quitter, charger, dec
oupe64, melanger, drawpuzzle, drawinage,
decoupe100, grille, quitter, verifier, de
coupe4, decoupel6, decoupe25
EVENTDEF 19, click
TASKPOLL INIT TEN("$FFF"),-1
TASKPOLL ON
DO:UNTIL quitflagt:GOTO fin
REM Dossin de la fenétre de présentat
don du logiciel
_SelectWindow (waa): Showiindow (wa
-1:numart$-0:quitfla
a)
_SetPort (waa) :_Setorigin(0, 0)
SET (ligne! (0)}=*"Puzzle V2.0"
_MoveTo (15,15) t_DrawString (VARPTR (lig
ne! (0)))
SET (ligne! (0))=*"Par Bruno Boissiere”
_MoveTo (15,30) :_DrawString(VARPTR (lig
ne! (0)))
21300
21400
21500
21600
21650
21700 DRAWPUZZLE:
21710
21720
21730
21800
21900
22200
22300
22350
22400 DRAWIMAGE:
22410
22420
22500
22600
22800
22900
22950
23000 QUITTER:
23050
23100 CHARGER:
23200
23300
23400
23500
23600
23700
23800
23900
24000
24100
24200
24300
24400
24500
24550
24600
24700
24800
SET (Ligne! (0))=*"Version de juin 1989
_MoveTo (15, 45) :_DrawString (VARPTR (lig
ne! (0)))
HiliteMenu(0, TASKREC%(10))
RETURN 0
REM Dessin de la fenétre du puzzle
_ShowWindow (wpa) :_SelectWindow (wp
4)1_SetPort (wpa)
REM Dessin de l'intérieur de la fenet
re
_PPToPort (VARPTR (loclinfo! (0)), VARPTR
(srerect! (0)), 0, 0,0)
TF grillet=1 THEN GOSUB dessingrille
REM Cochage de l'article Image puzzle
et suppression du cochage de 1'artic
le Image entiére
_CheckMItem (1, 262) :_CheckMItem (0, 263)
_HiliteMenu (0, TASKREC#{10))
RETURN 0
REM Dessin de la fenétre de l'image e
ntiére
_ShowWindow (wid) :_SelectWindow (wi
4):_SetPort (wia)
REM Dessin de l'intérieur de la fenét
re
_PPToPort (VARPTK (1oc3info! (0)), VARPTR
(srerect! (0)),0,0,0)
REM Cochage de l'article Image entiér
© et suppression du cochage de l'arti
cle Image puzzle
_CheckmItem (1, 263) :_CheckMItem (0, 262)
_HiliteMenu (0, TASKREC#(10))
RETURN 0
REM Sortie du programme
quitflagt=1:TASKPOLL OFF:RETURN 0
REM Chargement d'une image
SET (ligne! (0))=*"Nom de l'image
Showing the first 100000 of 282429 characters.