Text content (OCR)
La revue francophone indépendante pour les utilisateurs des |
Apple ][+, //e, //e+, //c, IIGs™ et Macintosh™
1 = =
L'anti-disque
Speedisk™, —
la RAM Card a mémoire permanente
Rapidité temps daccés 4 l'information : 0,2 ms
(100 fois plus rapide que les disques
durs...).
Par exemple ;
démarrage sur Basic.System en 3 s,
Applewriter disponible en a peine 1 s.
Fiabilit@ Constituée de circuit CMOS 4 trés
faible consommation, Speedisk™ est
aussi fiable que l'ordinateur lukméme.
Elle est insensible l'environnement.
Capacité speedisk™ est proposée en quatre
versions: |
1 Mo (1 048 576 octets)
384Ko extensible 4 1Mo
avec horioge compatible ProDOS
(pour les Apple )(+, //e) ou sans (IGS)
Compatibilité 100% compatible avec ProDOs (c'est
un volume), Speedisk™ fonctionne sur
Apple )(+. sur Apple //e et sur Apple
llGs.
Prix Lecteur de Pom’s, vous bénéficiez
d'une remise de 10%:
sP400
384Ko 399060 3591.00
SP1000
1Mo 592060 5 301,00
SP400H
"384Ko horioge 458700 4122.00
SP1000H
1Mo horioge 658200 5922,00
Garantie speedisk™ est une fabrication
frangaise garantie un an par échange
de la carte.
Banc d'essal dans la revue Pom’s n° 31
Vente par correspondance, Logma S.A.
documentation, 12, rue d'Anjou
renseignements 78000 Versailles
Tél: (1) 39.51 24 43
—$—<—<— =~ — Speedisk™ est une marque déposée de
Je désire recevoir — sans engagement — votre Thot Informatique® - France
documentation sur les cartes Speedisk™
Speedisk™
Numéro 33
novembre-décembre 1987
Sondage Pom’s Page 4
Graphisme & Minitel
S
Jean-Luc Bazanegue
Page 41
Editorial
Hervé Thiriez
GG Page 5
La date avec AppleWriter
Lyda Pétkové
[tes We] ET pace,
i | age 6
Essai Macintosh : SideKick
version 2 =
Hervé Thiriez SS. Ge=mam Page 47
Graphisme sur Minitel
Patrice Neveu
[+] [el]
2 Beg
Recherche d'applications
Georges Zwingelstein
— Page 49
Booter dans un dossier ?
NEWBOOT Patrick Guyou
Raccourcir WPL
Page 15
[1se]) Gy
GS & QuickDraw IT
fee) LE Pham Hiep
Page 17
Disquettes Pom’s 33 Page 57
Heure & AppleWriter
Ar) 77 Lyda Pdtkova
I Lit) ©} 7c Page 24
Damien Nould Essai:
SuperMacroWorks Co age 62
AppleWorks
& LaserJet+
Bruno Ribard
Page 63
Commande externe : ONLINE
WE Pascal Cantot
Mc \\Page 25
MultiScribe 2.0
@) Bernard Toméno Page 65
Apple // for ever
(ir) [vel]
aaa) (SS | (SS | ee
Jean-Yves Bourdin
Impression avec CS
AppleWriter Page 28
Cats & Mouse
Pascal Duboin
be Ie} ell preg
cay a (aes fees Pace 29
sur CalvaCom
(Gi Page 69
Bibliographie
Alexandre Duback
Biree 72
En vitrine
Page 40
Mots croisés
Joélle Piard
ee 73
Les annonceurs ; Apple : page 38 & 39 ; La Commande Electronique : page 76 ; LOGMA S.A. : page 2.
Editions MEV - 12, rue d'Anjou - 78000 Versailles. Tél. : (1) 39 51 24 43. Directcur de la publication : Hervé Thiriez
Pom's n° 33
Ce bref questionnaire
est pour nous une
précieuse source de
renseignements : ses
précédentes appari-
tions sont al'origine des
disquettes DOS/Pro-
DOS, des disquettes
3,5", des programmes
de communication. Il
nous permettra de
suivre au mieux
l'évolution de vos be-
soins et celle de votre
matériel. Il constituera
également un moyen de
gagnerl'un des 10 abon-
nements avec dis-
quettes...
Vous avez:
—de 15 ans.
de 15a 19 ans
de 35 a 45 ans
+ de 45 ans...
Logo
Asm Apple // .
Asm Mac
Autres
Votre niveau en pro-
grammation :
Utilisateur
Débutant
Intermédiaire
Averti....
Haut niveau.
oo0000
Chaque semaine, vous
&tes devant votre
micro:
—de 2 heures...
de 3 4 8 heures..
de 9 4 16 heures
+ de 16 heures .
ocoo
Sondage
Ce qu'il faut changer:
Votre ordinateur ;
Apple Il+...
Apple //e ..
Apple //e+
Apple //c ..
Apple Iics..
Apple ///..
Compatible
Macintosh 128
Macintosh 512
Macintosh Plus.
Lisa/Mac XL.
Mac II/SE...
Votre imprimante :
ImageWriter ..
ImageWriter 2
Apple DMP
LaserWriter
Epson.
Scikosha
Mannesman
Centronics ..
OKI.
Extensions,
périphériques :
Carte 80 colonnes...
80 col. étendue.
Carte Z80 CP/M ..
Table tragante ..
Minitel
Modem
Extension mémoire
Speedisk
Autre:
Prochainement, vous
allez acquérir :
Apple // ...
Macintosh
Lecteurs
Minitel
Modem
o0000
CalvaCom :
Vous étes abonné ...O
Depuis :
6 mois ou plus ........
Moins de 6 mois.....
Ce qu'il faut
Combien de numéros développer:
de la revue Pom’s
avez-Vous 1U ? sss
De 5 (trés bon) 40 (trés
mauvais), votre
opinion sur:
Niveau général ....__
Présentation .........
Intérét des
programmes ........ —_
Clarté des
articles ....
Intérét pédago-
gique seeeeee!
Micro-Infos
Disquettes ..
Vos autres revues
informatiques :
Ce que vous préférez :
FACULTATIF
Nom
N° CalvaCom
Abonné.......
Pom's n° 33
Ont collaboré a ce numéro
Alexandre Avrane - Jean Luc Bazanegue
Alain Bohec — Jean-Yves Bourdin
Pascal Cantot — Alexandre Duback
Pascal Duboin — Patrick Guyou
Le Pham Hiep — Olivier Herz
Gérard Michel — Patrice Neveu
Damien Nould — Lyda Patkové
Christian Piard — Joélle Piard
Bruno Ribard — Georges Zwingelstein
Hervé Thiriez - Bernard Toméno
Directeur de la publication
rédacteur en chef
Hervé ‘Thiriez
Rédacteurs
Alexandre Avrane — Olivier Herz
Siége social
Editions MEV
12, rue d’Anjou
78000 Versailles
® (1) 39.51.24.43
Publicité
Editions MEV
Diffusion
NMP.P.
Impression
Berger-Levrault
18, rue des Glacis
54000 Nancy
‘® 83.35.61.44
Photo de couverture
CP & JLB
Illustrations ‘Apple // for ever’
Jean-Yves Bourdin
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 a Apple Computer, Inc. ni
a Apple Computer France S.A.R.L.
Apple, le logo Apple, Mac et le
logo Macintosh sont des
marques déposées
d’Apple Computer, Inc.
TBM est une marque déposée de International
Business Machine.
PC et AT sont des marques déposées
de la Société IBM.
Editorial |
Pom’s est entré dans sa septiéme année!
Nous avons vu beaucoup d’eau passer sous les ponts. Nous avons
vu naitre et mourir l’'Apple I, Golden, Infomag. Maintenant,
e’est Apple Ic dont la vente est intcrrompuc. La gammc
Macintosh est apparue et porte 4 présent trés haut le flambeau,
ayant méme réussi la percée dans les grands comptes ce que les
autres modéles de la marque n’étaient jamais parvenus 4 faire ;
il entraine dans sa lancée l’Apple Iles qui devient
incontestablement un ‘grand’ de la gamme. Apple Expo, chaque
annéeuneréussite, nous rassure surl’avenir de noschers micros :
le fruit du travail des développeurs aussi bien dans la création de
programmes que dans le ‘hard’ semble bien sans limite.
Dans cette optique, nous continuons & faire évoluer Pom’s pour
vous apporter une qualité de service grandissante. C’est
aujourd’hui la possibilité, par l’intermédiaire de notre boite aux
lettres CalvaCom, de passer des commandes télématiques et de
nous soumettre vos problémes techniques dans la mise en wuvre
des programmes de la revue : il nous arrive de répondre & des
heures fort tardives et méme durant le week-end... Il nous faut
hélas, lors d’affluence, privilégier nos abonnés dans notre assis-
tance technique : abonnez-vous !
S’abonner, c’est — outre une priorité dans l’aide que nous vous
apportons—recevoir Pom’s avant la mise en kiosque, c’est passer
gratuitement dans votre revue des petites annonces, c’est égale-
ment recevoir par tirage au sort des cadeaux-surprise de valeur :
logiciels, documents techniques (nouveaux abonnements sous-
crits & partir du 30 novembre 87). C’est aussi un rapport plus
étroit avec Pom’s, un plus grand poids dans vos suggestions.
Idées, nouvelles orientations ? Notre sondage ci-contre nous
permet de mieux vous connaitre, c'est une sorte de trait d’union.
Notre ami Jean-Michel Gourévitch est en route vers de nouvelles
aventures et c’est désormais Jean-Yves Bourdin qui assurera la
chronique des nouvelles sur Apple //. A cette occasion nous vous
proposons une nouvelle formule, “Apple // for ever”, composée de
huit rubriques. La encore, c’est a vous de dire ce que vous pensez
de cette innovation et aussi 4 vous d’y contribuer : envoyez-nous
nouvelles, informations, ‘patches’...
Le contenu de ce numéro satisfera certainement les besoins de
chacun ; en couverture, l'un des résultats de nos recherches dans
le domaine de la communication : le couple micro-ordinateur/
Minitel est doué d'un potentiel peu commun...
Hervé Thiriez
Pom's n° 33
La date avec Apple’
a carte Speedisk, grace &
Textréme rapidité d'accés
aux fichiers, permet
d'envisager de nouvelles
applications WPL — lan-
gage de programmation
d'AppleWriter -, applications qui
resteraient lentes d'exécution sur Ics
supports traditionnels ; les programmes
présentés ici demeurent toutefois
utilisables sur tous types de supports.
Nous vous deux
programmes :
- le premier permet de disposer de la
date dans un fichier 4 charger & tous
moments par une commande
glossaire par exemple ;
- le second montre un exemple
d'automatisation du courrier répétitif
habitnel, devis, commande,
telance... Cet exemple utilise la
date et gére une numérotation de
documents.
Bien sGr, pour que tout cela fonctionne,
il faut disposer de la date. Il y a trois
méthodes :
= doter son Apple d'une carte horloge ;
- y installer une Speedisk avec option
horloge ;
- disposer d'un programme de boot qui
demande la date et la met @ jour dans
Iles octcts $BF90/$BF91 de
ProDOS. REBOOT.SYSTEM dis-
ponible dans la bibliothtque de
CalvaCom convient fort bien.
La date
proposons
Le premier programme WPL, qui se
contente de vous offrir la date & la
frangaise (03 novembre 1987), s'exécute
en faisant simplement :
<ctrl-P>DO STARTUP .D
Avant cet ordre, vous aurez mis sur
votre disquettc (ou plutét volume) les
fichiers STARTUP.D, INTDATE.D (le
fichier intermédiaire VARIDATE.D se
crée automatiquement) et DATE.
Un instant plus tard, le fichier DATE
eréé sur le volume contient la date du
jour : pour I'utiliser faire simplement :
<ctrl-—L>DATE
Mieux : installer la commande glossaire
D<ctr1-L>DATE>
ainsi, la date sera sous la pomme : GD.
Concrétement, le fonctionnement se
résume ainsi :
STARTUP.D
C'est le premier programme i
s'exécuter. I] sauvegarde un fichier vide
dans le catalogue courant puis charge ce
catalogue en mémoire texte. La date en
cours est la date de modification du
fichier “VIDE” sous la forme :
mm/jj/aa. STARTUP.D isole donc cette
date en mémoire texte et la transforme
en un programme WPL sauvegardé sous
le nom de VARIDATE.D et exécuté &
son tour par la demiére commande de
STARTUP.D.
VARIDATE.D
Ce programme n'a qu'une fonction : il
place dans les variables $B le mois, $C
le jour, $D l'année, ce qui va permettre
de les traiter 4 notre convenance. Cela
fait, VARIDATE.D lance I'exécution de
INIDATE.D, 38me programme WPL
(heureusement que Speedisk met un
tigre dans AppleWriter...).
INIDATE.D
Tl était pou utile de garder la date sous la
forme 01/01/1987, INIDATE.N
peaufine le travail en la présentant sous
la forme 07 janvier 1987 et en la
sauvegardant dans le fichier texte
“DATE” (remarquer le PGO Variable
bien utile dans le programme WPL). En
fin d'exécution, DATE est disponible.
Remarque : si aucun de vos
programmes WPL n'utilise l'une des
quatre variables disponibles ($D, par
exemple), cet ensemble pourrait
simplifié, La date mise en forme serait
placée non plus dans un fichier mais
dans la variable $D, INIDATE se
terminant alors de la fagon suivante :
ter
Lyda Patkovd
12 pas décembre =$C
Pas $B$C $D=§$D
$D resterait alors utilisable autant de
fois que nécessaire au sein d'un
programme WPL par la seule fonction
du type :
F/ (DATE) /$D/
Oo?
STARTUP.D, VARIDATE.D et
INIDATE.D ne sont exécutés qu'une
fois, 4 la mise en route d'AppleWriter.
Si STARTUP.D est renommé
STARTUP, vous bénéficierez d'une
exécution automatique lors du
démarrage.
Un exemple
complet
L'exemple d'utilisation qui suit inclut,
en plus de l'usage de la date tel que
décrit, une fonction de numérotation
automatique des documents retenant la
forme : numéro d'ordre numéro du mois
(6709, 6809, 6910, 7010, etc). I
conduit &@ la réalisation semi-
automatique de commandes ou de
relances.
A cette fin le programme STARTUP.N
remplace le précédent STARTUP.D.
STARTUP.N crée un programme
VARIDATE.N complété par la mise &
jour du numéro du mois dans le fichier
NUMERO.
STARTUP.N
La comparaison des deux startups et des
programmes VARIDATE respectifs
quiils créent, permet de bien comprendre
le processus de transformation de la
date, initialement isolée du catalogue,
en un programme WPL.
Remarquer l'usage dans la 188me ligne
de §C au lieu de $C, S'il était écrit $C,
l'exécution de la fonction de
remplacement mettrait la valeur
courante de la variable $C au lieu du
nom de variable $C. Reste ensuite &
ajouter la commande de remplacement
de § par § (c.f. fin du programme).
Est ajouté aussi le chargement du
Pom's n° 33
glossaire (QEGLOSSAIRE) dont la
seule commande prévue permet revenir &
tout moment au programme CHOIX.
Cette commande est donc 4 ajouter a
votre glossaire habituel.
VARIDATE.N
VARIDATE.N conticnt maintenant la
fonction de mise & jour du numéro du
mois dans le fichier NUMERO. Il lance
commande <ctrl-C> <ctrl-P>
doCHOIX> (remarquer que > aprés
DOCHOIX signifie RETURN mais
certaines versions d'AppleWriter exigent
a la place le signe §) qui permet par la
commande : Getrl-C d'appeler CHOIX
aprés chaque application.
COMMANDE (RELANCE)
l'exécution de INIDATE.N Ce petit programme WPL permet de
placer dans une fiche standard
INIDATE.N (FICHCOMMANDE) préparée et mise
Sans changement, lance l'exécution de
CHOIx.
CHOIX
Exécuté pour la premitre fois
automatiquement par I'intermédiaire de
INIDATE.N, il doit étre le passage
obligé de toute nouvelle application
d'ot la commande incluse dans le
glossaire.
Pour limiter cet exemple, seules les
options 1 et 3 sont utilisées. L’option 1
permet de préparer une commande ct
Yoption 3 une relance.
Les programmes WPL RELANCE et
COMMANDE sont simplifiés. Ces
programmes doivent charger les fichiers
de tabulation et d'impression appropriés.
Ce programme contréle la validité du
choix & l'aide, d'une part de la fonction
de comparaison : contréle de Escape, et
d'autre part d'une boucle numérique
limitant la valeur choisi entre 0 et 4:
O<CHOIX>4.
GLOSSAIRE
Le glossaire ne contient que la
en page & votre convenance, les données
variables mais systématiques qui lui
sont liées. Pour ce qui nous occupe
présentement, il s‘agit de la date par les
instructions :
PLSDATE=SA
F/ (DATE) /$A/A
et du numéro par la méme méthode :
PLSNUMERO=$C
F/ (NUMERO) /$C/a
Le fichier NUMERO est mis & jour
(incrémentation de 100 de sorte que
6709 par exemple devient 6809) et
sauvegardé pour I'application suivante.
La lettre de commande créée est
sauvegardée sous le nom :
C.nom de fichier numéro
d'od la commande WPL :
SC. SBSC<H><H>
ot <H><H> permet de supprimer le
numéro du mois : si $C = 6709,
$C<H><H> = 67.
Le fichier ainsi créé permet de faire la
sauvegarde finale par un simple
<ctrl-S>=.
Utilisation
Pour essayer l'exemple ci-aprés proposé
il vous faut dans le catalogue courant :
1 STARTUP.N
& exécuter en premier
INIDATE.N
CHOIX
COMMANDE
RELANCE
FICHCOMMANDE
FICHRELANCE
NUMERO
qui contient uniquement le numéro
a incrémenter
9 GLOSSAIRE
10 DATE
BUYHHAWH
Aprés chaque application on revient
directement au menu de CHOIX par la
commande glossaire Cictrl-C.
Remarque : pour la simplicité de la
présentation, cet ensemble n'utilise
aucun sous-catalogue. Il est pourtant
préférable de prévoir le classement des
fichicrs ct programmes dans des
sous-catalogues spécifiques, En
particulier, pour le fichier VIDE, l'idéal
est qu'un catalogue lui soit réservé afin
que la fonction de recherche de
STARTUP soit rapide. Si tel n'est pas
Je cas il est souhaitable de placer VIDE
au début du catalogue courant car
STARTUP cherche non pas le fichier
s'appelant VIDE mais le premier fichier
de longueur nulle ! a
an +0? Transforme
Fichier STARTUP.D LF HEARTS) tae ie
+0? enun
*n0 Efface mémoire texte oP I/!£«PAS! programme
* <ESC><ESC> Efface ligne status 0? WPL / I €
*PND Supprime affichage °R J, / e+
*PPRuneinstant+! Affiche le message oF lelepas!
*SVIDE Sauvegarde un fichier vide +0? / | e
“0 Accepte son remplacement oF *, *=$C, *
*OAE Charge le catalogue *0? IIgs
2 Quitte les cdes ProDOS opty amu,
*B Va au début catalogue +0?
aPhenns **0* — Positionne le curseur «
i (pyle areca f eel D Le sauvegarde...
7) Change le sens (<) Z exé
7 Chiat ge ta dite dans te baer ) PAOVARIDATE.D et Vexécute
“NO Efface mémoire texte a >
‘D Change le sens (>) Fichier DATE
“xX Date en mémoire texte
"D Change le sens 03+novembre+1987 —_pas de retour chariot aprés
*P*+4-$D, +NO, *PDOINIDATE.D*
Pom's n° 33
Fichier RELANCE
+PND
*PPR<CTRL-L>
+O
*PLSNUMERO*=$C
#PSK*$C
*PSX*+100
“PAS (X)=$D
*LNUMERO
eF/$C/$D/A
ose
*PISDATE=SA
*PPR+Numéro*de*document
*PPR+Datereeees
*PPR
“NO
+ LPICHRELANCE
*BF/ (DATE) /SA/
*0?F/ (NUMERO) /$C/
°0?
APP*PPR* (1) *Monsicur** (2) *Madame* + (3) *Mada
*Monsieurs
*PPR+RETURN+pour* "Messieurs
*PIN®
*PCS/$A//
*PGOS
*+PSXSA
*BCS/(X)/0/
*PGOAPP
“PsYO
BOUCLE*PSY+1
*PCS/{¥) /4/
*PGOAPP
*PSK-1
*PGOBOUCLE
*PGOSA*
1+F/ (APPEL) /Monsieur/a
*PCO-NO
2*F/ (APPEL) /Madame/a
*PGO*NO
3*F/ (APPEL) /Madame, *Monsieur/A
*PGO+NO
S*F/ (APPEL) //
*O?F/ (APPEL) /Messieurs/a
NO*PPR*Nom¢dusfichier*de*sauvegarde++++++++
*PINeeeseeeseseesevecansesignesnitespaces
*PCS/$B//
*PGONO
*PPR*Nom* complet -du-destinataire- (return--++$B)
=$D
(Ets, *SARL, *Ete.)
ADINeteeeeececccceseseeeeettseeecesseas
*PCS/$D//
*PASSB=$D
+*PIN-Prénom
*F/ (PRENOM) /$a/
*O?F/ (NOM) /$D/
*OPPINAdresse+tetseeceescececeeseseveees
*F/ (ADR) /$A/
*0?
A*PIN«Date+deslasfactures+++s
*PCS/$A//
*PGOA
“PF! (DATE) !$A!
+0?
F*PIN¢Numéro*de*la* facture ao
been ceccccccccccceceereensa
s195a
seereensa
*PCS/$A//
*PGOF
+P! (NUMERO) !6A!
+078
C*PINeConcernant
*F/ (CONCERNANT) /*concernant *$a/
0?
PINeMontant TTC + (nombre*seu) +
*PCS/$a//
*PGOP
°F / (MONTANT) /$A/
*02SR. $BSC<CTRL-H><CTRL-H>
Fichier INIDATE.D
**NO Efface page texte
°*PGOSC GOTO variable : $C est
00*PGOERR le n° du mois.
01*pas* janvier=$c
+*-pgod
02¢pas*février=Sc
o+spgod
03*pasemars=$c
++ spgod
04*pas+avril=se
++-pgod
O5*pas+mai=$c
e+ spgod
06*pas*juin=$c
++spgod
O7+pas* juillet=$c
seepgod
08+pas*aout=$c
+ eepgod
09*pas*septembre=$c
+ eepgod
10*pas-octobre=$e
++epgod
11+pas+novembre=$c
eepgod
12+pas+décembre=$c
d*LDATE
opr eyo
Changement du n° de mois
en nom de mois
Charge fichier date
*$BSC*$D*
En remplace le contenu
“s= Le sauvegarde
*PPR la date $B$C $D est dis
—ponible dans le fichier "DATE"
PER
*PPR voir l'exemple d'utili
sation avec STARTUP.N
+PPR
“PIN taper une Couche :
°POT Fin
ERR*PPR<CTRL-L>
*PPR vous n‘'avez pas de carte h
morloge ou bien
“PPR vous n'étes pas passé par R
AEBOOT. SYSTEM
*PPR votre fichier 'vide' n'a do
ane pas de date de modification
“PPR ce programme n'est pas utilisable.
“PIN
“NO
Pom's n° 33
Fichier COMMANDE
© LP TCHCOMMANDE.
*F/ (NUMERO) /$C/a
*F/ (DATE) /SA/a
NO*PPR*Nom*du*fichier*de*sauvegardes*++ss+s
*DPR+Nomecomplet +duedest inataires (return
HPINCAGreSSOtteteeeeeeneneneneeceseeuees
+PND *PINe
*PPRSCTRL-L> *PCS/SB//
+NO *PGONO
*PLSNUMERO*=$C *PPR
*PSK0SC
*PSX+4100 *PIN®
*PAS (X) =$D *PCS/$D//
*LNUMERO *PAS$B=$D
*F/$C/$D/A *F/ (NOM) /$D/A
+S=
*PLSDATE-$A +F/ (ADR) /SA/A
*PPR+Numéro+de+document+rrseeeeseeeeeesees eC +F/Ret/
SPER Datiasses en seses tacsssisnee ganisseeeenes 3sOA. 2
“PPR * JIT
*NO
ssans+signeeni+espace
*SC. $B$C<CTRL-H><CTRL-H>
Fichier
INIDATE.N
**NO
+ *PGOSC
00*PGOERR
01*pas* janvier-$e
+ eepgod
02*pas*février=$c
seepgod
03*pas*mars=$c
se*pgod
O4*passavrll=$c
seepgod
05*pas*mai=sc
seepgod
06+pas* juin=$c
seepgod
O7pas* juillet=$c
seepgod
O08*pas*aout=$c
seepgod
09+pas*septembre=$c
seepgod
10*pas*octobre=$ce
eeepgod
11*pas*novembre=$c
seepgod
1Z*pas*décembre=$c
deLDATE
SEE Phra ASHECEOD
+0?
*PDOchoix
ERK* PPRSCTKL-L>
“PPR vous n'avez pas de
mearte horloge ou bien
“PPR vous n'étes pas passé
—par REBOOT. SYSTEM
*PPR votre fichier ‘vide! n!
ma done pas de date d
me modification
+PPR ce programme n'est pas u
atilisable.
“PIN
+NO
Fichier GLOSSAIRE
<CTRI:—C><CTRI-P>DOCHOTX>
Fichier VARIDATE.D
Met mois dans $C
Met jour dans $B
*PAS1987=$D Met année dans $D
+N
*PDOINIDATE.D — Exécute Inidate.d
Concernant les listings
Dans les programmes WPL listés
ici:
les **’ symbolisent les espaces,
les caractéres qui suivent le signe
‘+ sont la suite de la ligne
précédente,
<ctrl-L> symbolise le caractére
contréle-L que l'on saisi dans
Apple-Writer avec la
s€quence clavier: ctrl-V ctrl-L
ctrl-V ;
Idem pour <esc> 4 saisir ainsi :
ctrl-V touche escape ctrl-V.
Fichier CHOIX
+ <ESC><ESC>
“PND
OPTTON+ PPR<CTRI-L>
*PPR
+PPR
ePPReeeeeseeeeeee] secommande
*PPR
oPpReeeeceevecesezeelettre
+PPR
oPPReeeeseeseeeee3eerelances
PPR
*PPRe*
*PPR
“PPR
sPINeceecccccessccsscvcevoce
—ee*choisirsunesoptio
anelede3ese=$B
*PCS/$B/<ESC>/
*PCOQUIT
*PSX$B
+PCs/ (x) /0/
*PGOOPTION
-PSYO
BOUCLE*PSY+1
*PCS/(¥)/4/
*PGOOPTION
+PSK-1
*PGOBOUCLE
+N
*PGOSB
1 +PDOCOMMANDE
2*PPR<ESC>******Choisirel+ou
a+ 3+poursun-essal
+<Esc>**quitter
°PPR
*PINe:
ao touches:
*PGOOPTION
3*PDORELANCE
tapereun
QUIT*<ESC>
“xO ProDOS
Pom's n° 33
Fichier STARTUP.N
“NO
+ SESC><ESC>
*PND
*PPRun*instant-!
*SVIDE
weeeee oe
“D
+F*+*=$D, *NO, *LNUMERO, *HH, *F<?
?<SC<, *0?, *S=, *PDOINID
AATE.N*
+0?
oF !/1£*PAS19!
+0?
*F!/!£°PAS!
*0?
°B
oF lelePAS!
+0?
oF#, #=$C, *
°0?7
+P*, #=$B, *
+0?
+FKS<$<A
+ SVARIDATE.N
“0
* QEGLOSSAIRE
*pdoVARIDATE.N
Fichier
VARIDATE.N
*PASLI=SC
*PASO3=$B
*PAS1987=§D
+NO
*LNUMERO
Hl
*F<?2<$C<
+0?
se
*PDOINIDATE.N
Fichier
NUMERO
411
Fichier FICHRELANCE
ig
+md140
Paris, le (DATE) RAPPEL (NUMERO)
(APPEL) (PRENOM) (NOM), (ADR).
-MG10
«MDE4
(APPEL),
En date du (DATE), je vous ai adressé ma facture n°(NUMERO),
(CONCERNANT) .
Or & ce jour,aucun réglement ne m‘est parvenu.
s'agit d'un oubli de votre part, et vous prie
(MONTANT) Fr par
Je pense qu'il
de bien vouloir m'adresser la somme de :
tout moyen 4 votre convenance.
Dans |'attente,
Je vous pric d'agréer, (APPEL), mes salutations distinguécs.
Signature
-mp0
«mgO
FF
Fichier FICHCOMMANDE
-mg2
«3G
-md90
Paris, le (DATE) COMMANDE N° (NUMERO)
«M140
(NOM), (ADR).
-Md90
-MC1O
SCOMMANDES
Réf Désignation Quantité Unité
«MG4
-Identilé bancaire .... : code étab. guichet comple clé RIB
Banque XX HRKKIX MXKK — AXKKAAKKXKN XKKK
Répertoire des métiers + xxxxxxxxx
SLLENE cesecescccecces XXXXXXXXXXKAK
-MGO
FF
10
Pom's n° 33
Nouvelle étape des recherches de Pom’s dans le domaine
de la communication, voici un programme de conversion
Image HGR/écran semi-graphique Minitel, cc qui —
compte tenu des contraintes Vidéotex (2 couleurs
seulement par groupe de 6 pavés) — représente une
recherche remarquable.
Cette nouvelle étape, aprés le détecteur de sonnerie du
numéro 32 représente un pas de plus vers une prochaine
application conversationnelle entre votre ordinateur et le
Minitel de vos correspondants : l'Apple // serveur...
S'abonner
Vous cherchiez une bonne
raison de vous abonner ?
en voici quelques-unes :
% six numéros pour le prix
de cing ;
¥ l'assurance den'enrater
aucun ;
®une assistance tech-
nique prioritaire, par
téléphone, par Calva-
Com ;
= Pom’s dans votre boite
aux lettres avant mise
en kiosque ;
*¢les petites annonces
gratuites ;
& un tirage au sort A
comptcr du 30 no-
vembre pour recevoir
logiciels de valeur, docu-
mentations tcechni-
ques...
andis que nous
bénéficions de su-
perbes images en
haute résolution sur
nos Apple //, le
Minitel connecté de fraiche date
continue 4 faire triste mine avec
son texte et ses médiocres
images. Il suffit pourtant d'un
programme de conversion pour
profiter de ses 8 nuances de gris
et de ses mosaiques semi-
graphiques.
Quoi de mieux pour surprendre
un utilisateur qu'une Lady
numérisée, ou votre derniére
ceuvre graphique réalisée souris 4
la main ?
Méthode
Mais ces images HGR ont une
définition de 280 x 192 points,
tandis que notre petit Minitel ne
peut en afficher que 80 x 72. Ily
aura certes perte importante de
définition, mais vous serez
surpris par ce dont ces 1440
points sont capables aprés étre
remplis par la routine
HGR.MNTL.
Ce programme est congu pour
pouvoir :
Patrice Neveu
- convertir les images HGR en
mosaiques Minitel a plusieurs
niveaux de gris, plus ou moins
contrastés, ou en noir et blanc ;
- sauver le résultat sur disque ;
- le récupérer ultérieurement.
La conversion se déroule en deux
phases :
La premiére est écrite en
langage-machine et analyse
l'image HGR pour donner le
nombre de points par zones de 3
x 3 ou de 4 x 3 points, stocker
ces chiffres, puis indiquer de
combien de points est constituée
Timage entitre.
Chaque petite zone formera un
carré sur l'écran du Minitel. Or,
comme l'indique la page 10 du
Pom’s n° 29, chaque caractére
Minitel contient 6 de ces carrés.
Ainsi, les 280 colonnes HGR
deviendront 80 colonnes Minitel,
d'alternativement 3 puis 4 points
HGR de large. Ce compte curieux
est nécessaire 4 cause du stockage
méme des points HGR en
Pom's n° 33
Liat
mémoire ; 7 points par octet, et 40
octets par ligne que l'on doit
mettre en relation avec les 40
caractéres par ligne du Minitel.
Quant aux lignes, nous
n'utiliserons que 192 lignes HGR
(3 lignes par carré mosaique), soit
64 lignes mosaique, ou encore 21
lignes de caractéres Minitel.
Donc horizontalement,
- 1 ligne Minitel=
40 caractéres Minitel
- 1caractére Minitel =
2 colonnes mosaiques
- 1colonne mosaique =
3 ou 4 colonnes HGR
et verticalement,
- 1colonne Minitel =
24 caractéres Minitel
- 1 caractére Minitel =
3 lignes mosaiques
- 1 ligne mosaique =
3 lignes HGR
La scconde phase est écrite en
Applesoft car elle comporte de
nombreux calculs. Il faut en effet,
& partir de la densité par carré
mosaique. en déduire les deux
couleurs que le caractére Minitel
prendra.
Un caractére peut en effet prendre
deux couleurs : une pour le
caractére lui-méme, l'autre pour le
fond. Pour des mosaiques, cela
signifie que certains des six carrés
du caractére auront l'une ou
l'autre couleur.
C'est 18 que le probléme majeur
intervient : comment calculer ces
deux couleurs parmi les huit
disponibles pour que l'image
reste cohérente d'un caractére a
Tautre ?
La solution passe par un calcul
d'écart-type des six carrés d'un
caractére
On calcule aussi la densité
moyenne MC de chaque carré de
l'image par la division du nombre
de points d'un carré sur lcur
nombre maximum (7 x 9).
Cela nous permet d'obtenir les
deux couleurs du caractére:
lalére: MC-ET/2
la2&me: MC+ET/2
Enfin, pour savoir si un carré
prendra l'une ou l'autre couleur,
on compare la densité moyenne
du carré MC 4 la densité moyenne
de l'image entiére M.
La couleur cst donnée par les
séquences suivantes :
$1B $4x : couleur du caractére,
$1B $5x : couleur du fond.
x prend Ics valeurs
0: noir
1: rouge
2: vert
3: jaune
4: bleu
5: magenta
6: cyan
7: blanc
En tons de gris, nous avons du
plus clair au plus foncé :73 625
140.
Dernier raffinement, il est
possible de changer le contraste
normal de l'image (1), pour
obtenir des effets spéciaux.
Entrez donc 10 ou 30...
On remarque avec I'habitude que
certaines images passent mal en
niveaux de gris. On peut alors les
passer en monochrome noir et
blanc, ce qui les avantage
généralement,
Comment faire ?
Trois éléments sont nécessaires
un Minitel,
un cable de liaison 4 I'ordinateur,
un port série.
Le Minitel
S'il est retournable (bi-standard)
vos ceuvres pourront étre
transmiscs & un correspondant
équipé également d'un Minitel.
Le cable
La revue en tient 4 votre
disposition si vous n'en disposez
pas.
Le port série
Sur un //c ou un IIGS, il est
intégré a la machine. Sur un ][+
ou un //e, la carte SuperSérie
Apple doit éure insérée dans le slot
2 (si elle est dans un autre slot,
modifiez la ligne 1100 du
programme Basic), configurée de
la facon suivante :
alahahahel’
modem
Zs
terminal
swi
on i]
off
sw2
on
AMUN
Sur votre IGS, a l'aide du tableau
de bord, mettre toutes les options
par défaut du port modem, sauf :
Data/Stop Bits : 7/1
Parity : Even
DCD Handshake : No
DSR/DTR Handshake : No
Sur votre //c, supprimer le
REM de la ligne 4.
Le programme
Pour utiliser ce programme de
conversion il faut, si yous ne
disposez pas de la disquette
d'accompagnement, saisir et
sauvegardcr les programmes
Basic HGR.MNTL_ et
COMPACTEUR ainsi que la
routine binaire DENSITE.
Apres l'ordre :
RUN HGR.MNTL
le menu vous propose la
conversion d'une image HGR qui
consiste en sa transformation en
un fichier TEXT a envoyer au
Minitel. Dans cette option, aprés
affichage du catalogue, indiquez
le nom de votre image HGR
(veillez & ce que son nom
n'excéde pas 8 caractéres, éven-
tuellement renommez-la avant).
Aprés transformation, un fichier
TEXT a été créé sur disque :
nom_de_1'image.MNTL
Ce fichier peut déja étre transmis
Pom's n° 33 :
au Minitel a l'aide de l'option
récupération.
Le fichier qui est composé de
4206 caractéres peut étre réduit &
l'aide du programme COMPAC-
TEUR qui a pour objet la
suppression de codes de
changement de couleurs inutiles :
4 n'exécuter que lorsque l'image
transformée a le contraste voulu.
Remarques
Si votre image HGR s‘appelle :
LADY par exemple,
le fichier de texte créé par
IIgr.Mntl s'appelle :
LADY. MNTL
et, aprés compactage par le
programme Compacteur :
LADYC.MNTL
Pour envoyer votre belle image &
votre Minitel depuis un
programme Basic, s'inspirer des
lignes 63002 & 63120 du
programme Hgr.Mnil.
Pour l'envoyer a un
correspondant qui posséde un
Minitel, s'inspirer du programme
ENVOIIM. Le seul travail dudit
correspondant sera de connecter
son Minitel lorsqu'il entendra la
porteuse.
Hgr.Mntl fonctionne aussi bien
sous ProDOS que sous DOS 3.3.
La routine en Assembleur a été
écrite avec Mcrlin-Pro.
Programme HGR.MNTL
Pour l’Apple /Ic, voir article.
Pour en faciliter le comptage, certains espaces ont été
remplacés par des ‘puces' «
Pour l'Apple //c, supprimer le REM de Ia ligne 4.
0 REM
Programme de transformation
d'une image HGR en mosaique
Minitel
4 REM PRINT CHRS$(4)"PR£2" : PRINT CHR$
(1) "1D"CHR$ (1) "3P"CHR$ (1) "8B
5 PRINT CHRS$ (4) "PRE3
6 PRINT
10 TEXT : HOME : INVERSE : PRINT " Prog
ramme de conversion d'une image HGR en
Minitel / Patrice Neveu (87) me
NORMAL
20 POKE 34,2
30 VTAB S
40 POKE 768,104: POKE 769,168: POKE 770,
104: POKE 771,166: POKE 772,223: POKE
773,154: POKE 774,72: POKE 775,152: PO
KE 776,72: POKE 777,96
1000 HimEM: 38400
1005 ONERR GOTO 63200
1010 PRINT CHR$ (4) "BLOADDENSITE
1015 POKE 216,0
1020 LOMEM: 21760: REM Pour protéger 1-
a page 1 Haute Résolution
1030 HIMEM: 36864: REM
es variables et fichiers.
1040 RESTORE : DIM ER$(17):
@: READ R$: NEXT I
1050 FOR I = 1 TO 16: READ ERS$:ER$(I) =
ERS: NEXT I
1100 sh = 2
10000 REM
Choix des différentes
options de transfert
10010 VTAB 5
10020 PRINT “Voulez-vous (T)raiter une i
FOR I = 1 TO
et la routine d *
* (R) écupérer
mage HGR*
une image Miniteleeese
See eeceececccccvcescceseses (O)uItt
er vers 1’Applesoft
10025 PRINT "+ (S)ortir vers u
n redémarrage ProDOS ";: GET R$
10030 PRINT R$: IF R$ = "R" THEN 63000
10033 IF R$ 'Q" THEN TEXT : HOME ; EN
D
10036 IF R$ = "S" THEN PRINT CHR$ (4)"
BYE"
10040 ik R$ < > "T" THEN 10010
10043 ONERR GOTO 63300
10045 PRINT CHRS$ (4) "CATALOG": PRINT
10050 INPUT "Quelle image voulez-vous tr
aiter ? ";I$
10060 HGR : PRINT CHRS$ (4) "BLOAD"T$",A$
2000
Programme ENVOIIM
100 ESC$ = CHR$ (27):PRO1$ = ESC$ | CHR$
(57) :DECS = CHR$ (103):CNEX$ = CHRS$
TLS. =... CHRS, (111) :D$ = CHRS
“PRINT DS"PREZ
5.° PRINT CARS (1) "2
PRINT PROISRET1SPRO1SCNEXS.
FOR fF % 470-6000: NEXT
PRINT DS"OPEN"IMS
160° PRINT DS"READ"IMS
170. ONERR GOTO. 200
“180 GET RS: PRINT RS;
190 GOTO 180°.
(200 PRINT ©; PRINT D9 "CLOSE" IM$
‘210. PRINT. “PROLSDECS.
220° PRINT DS"PRE3
Sur l'Apple //c; ajouter : ‘
122 PRINT CHRS(1)"1D"CHRS (I
BB e ;
Pom's n° 33
10070 TEexT
10080 PRINT
"7: GET R$: PRINT R$:
N MNS = 1: GOTO 40000
10090 INPUT "Quel contraste ? ";CO%
40000 REM lére phase en Langage-Machine
et prépare la 2éme en Basic
40010 PRINT CHRS (4) "STORE DATA.MNTL
40020 CLEAR
40030 CALL 38144
40040 CLEAR
40050 PRINT CHR$ (4) "RESTORE DATA.MNTL
40060 T = PEEK (24) + PERK (25) * 256
40070 PRINT T / 5120:M% = INT (T / 5120
)
40080
40090
40100
50000
"Voulez-vous de la couleur ?
IF R$ = "N" THE
PRINT CHR$ (4)"PRE"SL
PRINT CHR$ (12): PRINT CHR$ (14)
DIM DT% (840,2)
REM
Phase Applesoft de déter-
mination de couleurs et
points
50010 FOR ¥ = 0 TO 62 STEP 3: FOR X= 0
TO 79 STEP 2
50020 AD% = 16384 + X
50030 Cé(1) = PEEK (ADt + Y * 80) :C%(2)
= PEEK (AD% + 1+ ¥ * 80):C8(3) = PE
EK (AD& + (Y¥ + 1) * 80):C%(4) = PEEK
(ADS$ +1 + (¥ + 1) * 80):C8(5) = PEEK
(ADE + (Y¥ + 2) * 80):C%(6) = PEEK (A
DE +d + (Y + 2) * 80)
50040 IF MN% THEN CF% =
$0130
50050 S = C&(1) + C8(2) + C#(3) + CB(4) +
C#(5) + CB(6)
7:CL% = 0: GOTO
50060 ET = ((C#(1) * 2 + C#(2) * 2 + C8(3
) ~2\4 CB(4) ~ 2 # CB(S) 7:2 + CE(6)
Ray = (8 22). f 6) £78
50070 ET = ET * CO%
50080 CL8 =S/6- ET / 2:C8F8#=S/6+
ET /2
50090 IF CL& > 7 THEN CL% = 7: GOTO 5011
7)
50100 IF CL < 0 THEN CL% - 0
50110 IF CF% > 7 THEN CF% = 7: GOTO 5013
i)
50120 IF CF% < 0 THEN CF% = 0
50130 C# = 32 + (C&(1) > Mt) + 2 * (C8(2)
> Mt) + 4 * (C8(3) > M8) + 8 * (CB(4)
> Mt) + 16 * (C&(5) > MB) + 64 * (C8/(
6) > M8)
50140 RESTORE : FOR I = 0 TO CF%: READ F
%: NEXT I:CF% = F%
50150 RESTORE : FOR I = 0 TO CLé: READ L
%: NEXT I:CL? = Lt
50160 PRINT CHR$ (27) + CHR$ (64 + CF%
) + CHRS (27) + CHRS$ (80 + CL%); CHR
3 (C8);
50170 DT%(0%,0) = CF%:DT%(O%,1) = CL&:DT%
(02,2) = C#:0% = 08 + 1
50180 NEXT X,Y
50190 PRINT CHR (15)
50200 PRINT CHRS$ (4) "PR£2
50210 DATA 0,4,1,5,2,6,3,7
62000 REM
Sauvergarde de la mosaique
sur Disque
62010 NORMAL : TEXT :; HOME
62020 PRINT "Voulez-vous sauver cette im
age Minitel sur disque ? ";: GET R$
62030 IF R$ = "N" THEN RUN
62040 IF R$ < > "0" THEN 62010
62050 PRINT CHR$ (4) "OPEN"I$".MNTL
62060 PRINT CHR$ (4) "WRITE"I$".MNTL
62070 PRINT CHR$ (12): PRINT CHR$ (14)
62080 FORI=0 7008-1
62090 PRINT CHRS$ (27) + CHRS$ (64 + DT#
(I,0)) + CHR$ (27) + CHRS (80 + DT#(
I,1)) + CHRS$ (DT#(I,2));
62100 NEXT T
62110 PRINT CHR$ (15)
62120 PRINT CHR$ (4) "CLOSE
62130 RUN
63000 REM
Affichage d'une mosaique
sauvée sur Disque
63002 ONERR GOTO 63300
63004 PRINT CHRS$ (4) "CATALOG
63010 INPUT "Quelle image voulez-vous ré
cupérer ? ";I¢$
63020 PRINT CHRS$ (4) "UNLOCK"I$".MNTI
63040 PRINT CHR$ (4)"PRE"SL
63050 PRINT CHR (4) "OPEN"I$".MNTL
63060 PRINT CHRS$ (4)"READ"I$".MNTI.
63070 ONERR GOTO 63090
63080 GET R$: PRINT R$;: GOTO 63080
63090 PRINT CHR$ (4) "CLOSE
63100 NORMAL
63110 PRINT CHR$ (4) "PRE3
63120 POKE 216,0
63130 RUN
63200 REM
Erreur, il n'y a plus le
disque d'origine
63210 HOME : PRINT : PRINT "Vous devriez
remettre le disque de Conversion": PR
InT
63220 GET R$
63230 POKE 216,0
63240 RUN
63300 REM
Erreur de disque, on
recommence 1'opération
63302 POKE 216,0
ProDOS
DOS 3.3
63303 TEXT
63305 CALL 768
63310 ER = PEEK (222): HOME : TEXT
63320 RL = PEEK (218) + PEEK (219) * 25
6
14
Pom's n° 33
63360 "RL
63370
63390 RUN
63399 REM
Données contenant les mes~
sages d'erreur du DOS plus
un pour l'Applesoft.
63400 DATA "Langage non disponible", "P
aramétre hors limite", "Rien n'est conn
ecté" ,"Disquette protégée a l'écritu
re", "Fin des données", "Fichier introuv
able", "Erreur de paramétre", "Erreur d'
Entrée - Sortie", "Disque plein"
63405 DATA "Fichier verrouillé"
63410 PATA "Pas de mémoire tampon dispo
nible", "Erreur quant au type de fichie
xr", "Programme trop important", "Cette c
ommande ne peut etre passée en mode di
rect”
63420 DATA "Erreur de syntaxe", "Erreur
dans l'Applesoft"
PRINT "("ER")
GET R$
"ERS (ER)" ligne
Programme
COMPACTEUR
5 HOME
10 D$ = CHRS (4): DIM CAR(4205),S1(4),C(
4):ES$ = CHR$ (27) :ES = 27
20 INPUT "Fichier a compacter ? ";F$:F1$
= FS + "C" + “.MNTL":FS = FS +". MNTL
29 PRINT "Chargement du fichier "F$
30 PRINT D$"OPEN"F$: PRINT D$"READ"F$: F
OR I = 0 TO 4205: GET CARS:CAR(I) = A
SC (CAK$): NEXT : PRINT D$"CLOSE
80 PRINT "Compactage en cours
90 PRINT DS"OPEN"F1$: PRINT DS$"WRITE"F1$
100 PTR = -1
110 PTR = PTR + 1: IF PTR > 1205 THEN 400
120 C(1) = CAR(PTR): IF C(1) < > ES THEN
PRINT CHR$ (C(1));: GOTO 110
130 PTR = PTR +1
140 C(2) = CAR(PTR): IF C(2) < 64 OR C(2)
> 71 THEN PRINT BS$ CHR$ (C(2));: GO
TO 110
150 PTR = PTR +1
160 C(3) = CAR(PTR): IF C(3) < > ES THEN
PRINT ES$ CHRS (C(2)) CHRS$ (C(3));:
GoTo 110
170 PTR = PIR +. 1
180 C(4) = CAR(PTR): IF C(4) < 80 OR C(4)
> 87 THEN PRINT ES$ CHR$ (C(2))ES$ C
HR$ (C(4))7: GOTO 110
490 (OK = 1: FOR T= i 20 42 IF ST(T}' < 2
C(I) THEN OK - 0
200 NEXT : IF OK THEN GOSUB 1000: GOTO
110
210 FOR I= 1 70 4; PRINT CHR$ (C(I));:
NEXT : GOSUB 1000: GOTO 110
400 PRINT D$"CLOSE": PRINI "Fichier "F1$
" créé"; PRINT "Terminé.": END
1000 FOR IT = 1 TO 4:ST(I) = C(I): NEXT :
RETURN
Raccourcir WPL
<ese esc>PND
PPRun instant !
SVIDE.
°
OAL
PBF ee o*
PDWNO
DXDF* *=$D, NO,
OF! /1£ PASI9!
O?PF!/!£ PAS!
oPBF! ! PAS!
O?F*, *=SC, *
O?F*, #3, *
O?PF<S<S<A
SVARIDATE.N
°
PDOVARIDATE.N
Pour comprimer un programme WPL trop long (la limite se
situe A 2048 caractéres), toutes les commandes qui
s’exécutent sans “return” peuvent étre accollées.
Le programme STARTUP.N de la page 10 pourrait ainsi
s’écrire comme ci-dessous et passer de 288 caractéres a 244.
LNUMERO, HH, F<??<SC<, 0?, S=, PDOINIDAIE.N*
Récapitulation DENSITE
Apres avoir saisi cette récapitulation
sous moniteur, vous la sauvegarderez par :
BSAVE DENSITE, A$9500, L181
40 8D 5A 95 A9 00 85
65 06 &D 59 95 85 18
19 A9 00 85 09 AS 03
AZ 00 AO
06 4A AB
44 42 29
07 AB B
85 09 F6
DS AS 06
B9 8D 95
B9 97 95
95 DO 03
18 65 18
19 A4 07
Ag 00 85
Pom's n° 33
15
ume ADUPTS
Si DENSITE. Ss PTSG AND £800000111 ; Onvole les 3 points intéressants de droite
ource : Jf | score
. TAY 7 Transtorme la valeur en index
Assembleur Merlin-Pro /le ia; MSRERALD3 «Pant bale die es VO
cie
/ / e+ ADC NBRPTS ——_;_ Adgilonne ga au nombre de points du lot
//c STA NBRPTS
ist OFF
‘ore $9500 ligs Nc ycooRD Passe ala prochaine ligne HGR
pec arLans — + Gallaitune ligne de moins & faire
EeAaaaonge seAeRRRRSA RATE STURT CUPATOEAAA me cebfcorer or bad que conple i deseaeo MNT
* Objet général: *
= * * Il y a huit concentrations possibles
* stockage de la concentration des points *
* d'un sixiéme de caractére en mémoire. ’ LDA COORD : A nouveau if faut faire fa distinction
Sse taviaw Siasiensesipeauptswrsevemenss sR {entre la partia gauche ot fa partie droite
ie fee enim Bes PTSIZ + de Foctet considéré.
Prewerretetreterrr ret rr eter tee etre
DY NBRPTS + Dans un cas on prend une table contenant
+ Lot de points fait 3x3 points (pair) = * * : zi
ae one oats) ® LDA COULEUR, Y ; 10 concentrations possibles (0 a9)
. * ue STOCKDENS
* Donc 21 lignes Minitel seront utilisées *
prsiz Loy NBRPTS —_;_ Dans fautre cas ona 13 possibiltés
EDA COULEUR2,¥ ; (0412)
* Labels
STOCKDENS STA $4000 7 On sauve le nombre de points dans une table
XCOORD = 206 + Coordonndées du lot @ étudier, 0-79 INC STOCKDENS+1; Puis on passe a fa prochaine position...
YCOORD = $07 4 Coordonnées du jot 4 étudier, 0-191 BNE STOCKED
NBRPTS) = $09 Nombre de points dans le lot INC STOCKDENS+2
PrsTor = $18 STOCKED
HBAS - $26 + Adresse sortie de HPOSN LDA NBRPTS + Pour avoir le nombre total de points
HIMEM ~ $73 2 Protection du programme face aux variables cic 4 Constitvant Fimage, on rajoute ceux-lé..
apc PTsToT
HROSN = $F411 + Trouve ladresse d'un groupe de points STA PrsTor
| BCC NOC
| INC PYSTOT+1
* oc
Haliole ge Tonasiee Gee epzONaps AGE oy YCooRD + Onlait cela car & chaque 1/6 émo do
DEY caractére, le n° da ligne augmente de 3
LDA £840 + Les densités de points seront mises DEY + Or, on ne doit passer aux 3 lignes HGR
STA STOCKDENS+2; & partir da $4000 DEY + Suivantes qu'en bout de ligne, c'est &
LDA EU STY — YCOORD 2 dite...
STA YCOORD + Oncommence en haut 4 gauche de limage
STA ‘XCOORD INC XCOORD
STA STOCKDENS+1 LDA XCOORD
STA PTSTOT Mise a 26ro du nombre de points constituant cMP 6 £80 ¢ Lorsque XCOORD est a 80. (40x2)
STA PTSTOT+1 image et utilisé cans fa mayenne générale. BCC CALCLOTS
| * Programme de calcul de concentration d'un lot de points DA £0 + Alors sovlement on pout sauter les 3 lignes
] teeeeeaaa=-- ee = STA XCOORD ¢ que lon vient de traiter et revenir en
zoy ycoorn début de ligna
cALCLOTS INy
LDA £0 2 Misa a z6ro du nombre de points d'un lol. INY
STA NBRPTS INY
| LDA £3 sty YCOORD
STA NBRLGNS Nombre de lignes dans le lot cpy £191 + Laligne HGR n°191 est la demnidre
Bcc CALCLOTS
LITOCTET RTS + Aprés laquelle on passe ala phase n°2
LDA ¥COORD 2 Onva se positioner au début de fa ligne
Lox £0 + dont le numéro est dans YCOOAD. * Tables diverses
bY £0
JSR HPOSN + Vachercher son adresse * On peut changer ces deux premiéres tables qui indiquent
* que pour un nombre X de points dans le 1/6 de caractére
LDA XCOORD * un @ le niveau de gris ¥.
sR + Colonne /2= numéro goctet
TAY COULEUR HEX 00010102030405060607
LDA (HBAS), ¥ —_; Prendfoctet sur la bonne ligne COULEUR2 HEX — 00010102020304040505060607
acc PTSe + Pour savoir sion est dans la colonne de
LSR gauche ou de droite dun caractére Mintel * Cette table indique que pour la valeur X, ¥ bits sont al
ae Dans le cas de la partie gauche, décale 4 NBRPRVAL HEX 00020102020202030102020302030304
SR droite les 4 bits intéressants.
AND £#00001111 ; Etonksisole NORLGYS HEX 00
16 Pom's n° 33
GS & QuickDraw II
LE Pham Hiep
oici un _ petit
programme qui
vous permet d'uti-
liser les fonctions
graphiques Super
haute résolution
de l'Apple IIcs.
Il vous montrera les
principes de base pour
exploiter les possibilités
des “outils” & partir du
Basic Applesoft.
Les possibilités
graphiques du IIcs
L'Apple Ils, grace 4 sa ROM de
128Ko, présente de nombreuses
possibilités qui ne sont pas
exploitables directement depuis
l'Applesoft. Dans cet article, nous
nous intéressons surtout aux
outils graphiques.
L'Apple IlGs est doté, en plus
des traditionnels modes graphi-
ques de l'Apple //, du mode
Super-Hi-Res. Ce dernier est géré
par QuickDraw II, il vous donne
la possibilité de contréler les
résolutions suivantes :
+ 320x200 ou
* 640x200 en 16 ou 4 couleurs
(en standard) parmi une palette
de 4096.
QuickDraw II sait gérer les
fonctions de base telles :
*- les lignes,
« les rectangles,
le texte,
mais également les manipulations
de l'environnement graphique
comme :
* la gestion des coordonnées,
+ la gestion des régions
visibles....
Possibilités de
mise en cuvre
Pour utiliser les outils du GS,
vous disposez de plusieurs
moyens :
- un langage évolué comme
Pascal ou C,
- l'assembleur sous moniteur
(qui fonctionne fort bien) ou
APW (Apple Programmer
Workshop).
Ici, nous allons_ utiliser
l'assembleur pour définir une
interface permettant au Basic
d'accéder aux fonctions
graphiques. Il faut savoir
également que les outils ne sont
pas indépendants. Dans le cas cui
nous intéresse, pour faire
fonctionner Quickdraw II, il faut
également installer Locator,
Memory (qui sont nécessaires
pour le fonctionnement du
systéme). Mais heureusement le
Basic.system s'installe déja avec
ces derniers...
Le fonctionnement de certains des
outils du systéme nécessite
parfois quelques espaces
mémoires réservées, dans le cas
de QuickDraw II v1.1, il s'agit de
3 pages de 256 octcts dans Ic
premier bank de mémoire (bank
00).
Les appels aux fonctions des
outils doivent se faire en mode
natif pur (c'est-a-dire les
drapeaux du registre d'état du
65816 sont : e=0, m=0, x=0).
Maintenant nous pouvons
commencer 4 écrire notre petit
programme qui permet :
1) I'installation de QuickDraw II ;
2) sa désactivation, nécessaire
pour libérer les mémoires et
assurer la cohérence du
systéme ;
3) l'appel de certaines fonctions
graphiques.
Appels des
fonctions des outils
Les appels des fonctions se font a
partir du point d'entrée $E10000
(adresse 0 du banc de mémoire
$E1) de la fagon suivante :
- mettre dans X le numéro de la
fonction souhaitée puis,
- faire JSL $E10000.
Souvent, les paramétres sont
passés par la pile ; par exemple,
Pour positionner le curseur, nous
empilons sa position horizontale,
sa position verticale, puis nous
faisons :
IDX £$..
JSL $E10000
En assembleur (APW) il existe
une bibliothéque de macros qui
permet de faire des appels de
fonctions des outils par leur nom :
_MoveTo, MMStartup,...
Description du
programme
Vous trouverez ici le programme
source écrit sous APW avec les
directives nécessaires pour son
assemblage.
Quelques explications concernant
deux macros usuelles :
pushword... empile un mot
(cest-a-dire 16bits). Son
équivalent : LDA.. PHA
pushlong... empile un mot
long (32bits). Tl est
€quivalent 4 deux push word
Pom's n° 33
17
———_
Toutes les macros commengant
par le souligné “_” sont des
appels & des fonctions des outils,
en général, leur équivalent est :
LDX £$§.. ; n° de fonction
JSL $E10000
Le programme
binaire
Le programme en assembleur se
logera en $800. Les programmes
Basic de ce fait commenceront en
$1000.
De $800 a $AFF : espace réservé
pour initialiser Quickdraw.
A partir de $B00 : les points
d'entrées des fonctions gra-
phiques : ils vous facilitent les
appels. A la suite de ces points
d'entrées nous laisserons la place
pour passer des paramétres.
Ici, nous avons adopté le passage
des paramétres par des Pokes et
les appels par des Calls pour 2
raisons :
- pour ceux qui voulaient utiliser
QD.BIN en assembleur, la
maniére de les appeler reste
identique ;
- ilse peut que vous ne vouliez
pas changer toutes les valeurs
d'une fonction (exemple : vous
voulez faire un trait horizontal,
il suffit de ne changer que le
paramétre H).
Le programme de démonstration
QD.SAMPLE devrait éclairer les
choses.
Concernant les listings
QD.SAMPLE : programme cn
Applesoft qui donne un
exemple d'utilisation,
Pour ceux qui possédent APW il
faut taper :
- MAIN: programme (en EXE)
- QD.SRC : source en assem-
bleur APW (en ASM65816)
puis lancer MAIN ; yous
obtiendrez QD.BIN I'interface
binaire nécessaire.
Pour ceux qui ne possédent pas
de APW vous devez tapez
directement la récapitulation.
Comment utiliser
QD.BASIC ?
Vous étes arrivés au
Basic.System en ayant booté sur
ProDOS 16 puis MouseDesk ou
Sélecteur, et sur votre disque
yous avez QD.BIN. Pour
disposer des fonctions
graphiques, vous devrez vous
inspirer du programme de
démonstration QD.SAMPLE.
Pour charger QD.BIN et lui
réserver la place, les lignes 9 4 20
telogent le Basic :
ligne 9 : est-on relogé ?
ligne 10 ; fixe la nouvelle adresse
de chargement du programme
Basic,
ligne 15 : charge QD.BIN.
ligne 20 : recharge le programme
Basic, mais 4 la bonne
adresse.
Il vous faut alors définir une
variable, QD par exemple, valant
2816 et les fonctions vous sont
alors accessibles ainsi :
Initialisation
- CALL QD
Désactivation
- CALL QD+3
Positionnement
AT(H,V)
- Poker en QD+70 et QD+80 la
position verticale (de 0 & 200)
Poker en Q+68 et QD+69 la
position horizontale (de 0 a 320),
Poids faible, poids fort
- CALL QD+6
Impression de chaines
PRINT (T$)
- Poker en QD+72 la longueur de la
chaine
Poker la chaine a partir de
QD+73 (maximum 127 carac-
téres)
CALL QD+9
Mode d'impression
graphique
SetPenMode (C)
C vaut de 0 a 3 ou de $8000 a
$8003.
Poker C en QD+50 et QD+51
(faible, fort)
CALL QD+12
Les valeurs de C sont les
suivantes :
$0 COPY : la source écrase la
destination
$1 OR: la source s'ajoute a la
destination
$2. XOR: le Ou Exclusif entre la
source et la destination sera
affiché
$3 BIC : on affiche : (NOT
source) AND destination
$4 mémes modes que $0 a $3
$5 — mais s'appliquent a l'atfichage
du texte : seul le corps du
$7 texte est concerné
A toutes ces valeurs, si on ajoute
$8000 a C, la source est inversée
avant opération logique : si C =
$8001, (NOT source) OR
destination sera affiché.
Couleur du crayon
SetSolidPenPat (C)
Poker 0 en QD+51
Poker C en QD+50
CALL QD+18
Attributs du texte
SetTextFace (C)
C=0 normal
C=1 gras
C=2_ souligné
Poker 0 en QD+53
Poker C en QD+52
- CALL QD+21
Mode d'impression texte
SetTextMode (C)
Idem SetPenMode pour le texte.
Poker C en QD+54/QD+55
CALL QD+24
Couleur du texte
SetForeColor (C)
Poker 0 en QD+51
Poker C (de 0 a 15) en QD+50
CALL QD+27
Tracé d'une ligne
LineTo (H,V)
18
Pom's n° 33
Poker coordonnées d'arrivée V
en QD+70 et QD+71
Poker coordonnées d'arrivée H
en QD+68 et QD+69
CALL QD+30
Inversion d'un rectangle
InvertRect (V1, H1, V2, H2)
Le rectangle est défini par les
coordonnées du point haut/gauche
et bas/droit.
Poker V1 en QD+56 et QD+57
Poker Hi en QD+58 et QD+59
Poker V2 en QD+60 et QD+61
Poker H2 en QD+62 et QD+63
CALL QD+33
Dessin d'un rectangle
PaintRect (V1, H1, V2, H2)
Poker V1 en QD+56 et QD+57
- Poker H1 en QD+58 et QD+59
- Poker V2 en QD+60 et QD+61
- Poker H2 en QD+62 et QD+63
CALL QD+36
Tracé d'un are
PaintArc (V1, H1, V2, H2, S, C)
Le rectangle V1/H1/V2/H2 sert a
définir lellipse support de l'arc, S est
ag de départ, C I'angle de tracé.
Poker Vi en QD+56 et QD+57
Poker Hi en QD+58 et QD+59
Poker V2 en QD+60 et QD+61
Poker H2 en QD+62 et QD+63
Poker S en QD+64 et QD+65
Poker C en QD+66 et QD+67
CALL QD+39
Couleur de fond
SetBackColor (C)
Poker 0 en QD+51
Poker C (de 0 a 15) en QD+50
CALL QD+42
Bibliographie
nécessaire
Clefs pour Apple IIcs (PSI)
Rom tools (Apple)
a;
Programme QD.SRCE
Apw
* QD Basic
* par Le Pham Hiep 87
* 3 pages de quickdraw $800.$afff
* programme en $bUU0
perveeerererterrsssrretetitetercre sss
list off
absaddr on
CEN off
SYMBOL off
erg $000b00
KEEP QD
meopy qd.macros
FichierEXE
QD.MAIN
macgen qd.src qd.mac
ros .d2/macros/-J
asml qd.srot
rename qd qd.bint
makebin qd.bin-l
IIgs
QDstart START
Jmp initgd ;installe Quickdraw
jmp qdoff desactive Quickdraw (libére le systéme)
jmp At 7AT (HY)
jmp Print Print (strptr) : de type Pascal
jmp SetPenMode ;SetPenMode(color) :0..3 ou $8000.$8003
jmp Grafort + GraffOft
jmp SetSolidPenPat ;SotSolidPenPat{color) :couleur crayon
jmp SetTextFace : SetTextFace(TextFace) : 0..3,souligne
jmp SetTextMode 7 SetTextMode(TextMode) : 0..3 ou b15=1
jmp SetForeColor — ;SetForeColor(color) = set texte color
jmp LineTo ;LineTo(H, V)
jmp InvertRect 7 InvertRect(rectptr)
jmp PaintRect + PaintRect{rectptr)
jmp Paintarc ; PaintArc(rectptr, startangle,angle)
jmp SetBackcolor ;SetBackColor(color) : couleur du fond
jmp nothing
MyId de i'00' normalement $3001
color de i'05' 700..0f
TextFace de i'01' 700..03
TextMode de i'oo' 700.03 $8000..$8003
rectptr de i'10,10,100,100';V1,H1,V2,H2
StartAngle de i'00'
Arcangle de 1'10'
# de i'z0'
v de i'20'
strptr str ‘hello 0123' — ;chaine du type Pascal (ascii bas)
ds 120
buffer dc h'EAEAEAEA'
Pom's n° 33
19
nothing anop 7ne rien faire qdstartok anop
rts jmp emul 7 FIN QDinit
* *
emul anop stevient en mode émulation deja_inst anop
sep £$30 _Grafon
se jmp emul
ae Cerne siseerarecssdaeeeeee =
rts AX Bbits SOEe one
jsr natif
‘i wks mi _Grafoft
i hutdown
ano} + passage en mode natif = 005)
natit F pene jmp emul FIN qdott
cle 7
xce ahatit : ee
rep £$30 7AX16 ae Pees
ital jsr natit
ae
Pushword H
getmyID anop #técupére le numéro pushword V.
phd + IDentification affoctée par PRODOS16 ereho
pushlong £0 jmp emul 3
pushlong £$800 Pa ee
_Findhandle print anop
tse jer natif
ted
idy £$6 pushlong £strptr
ida [$01],y _DrawString
sta >Myid
pla jmp emul +fin Print
pla oe a aes
SetPenMode anop
pld jsr nati£
rts pushword color
Set PenMode
a e=====: — =e 7%
*#% LES FONCTIONS ad jmp emul
initgd anop Grafoft anop
jer natif jsr natir
pushword £0 Gratott
_oDStatus
pla jmp emul
bne deja_inst Fea a ne a a SEEN
SetSolidPenPat anop
jsr getmyid jsr natif
ToolsLoaded anop pushword color
pushlong £0000 SetSolidPenPat
pushlong £$e12000 i,
_FindHandle jmp emu)
_DisposeHandle Aunaneaceaecsessseeese:
SetTextFace anop
Jjsr natirt
contl anop
PushWord £$800 pushword Textface
Pushword £00 7320 Set TextFace
PushWord £160 nombre d'octets par ligne as
PushWord >MyID jmp emul
_opstartup ees Sen
bee qdstartok SetTextMode anop
brk $ff jsr natit
Pom's n° 33
— SSS... |
pushword textmode
_Set TextMode
jmp emul
——
SetForeColor anop
gsr natif
pushword color
_SetForecolor
jmp emul
teeeneneneneeennne
LineTo anop
jsr natif
pushword
pushword V
_LineTo
jmp emul
InvertRect anop
Jsc nalic
pushlong frectptr
_InvertRect
jmp emul FIN drawrect
PaintRect anaop
jsr natit
ProDOS 16
pushlong érectptr
_PaintRect
jmp emul
Paintarc anop
jsr natir
Ppushlong érectptr
pushword StartAngle
pushword ArcAngle
_Paintare
jmp cmul
SetBackColor anop
jsr natit
pushword color
_SetBackColor
jmp emul
END
Programme QD.SAMPLE
B REM ssnsenescesseneseeseeesnesen
2 REM exemple d'utilisation
3 : REM == de QuickDrawII du GS
4 ::::: REM —— sous Basic par LPH(87) —-
(avec JV et DDP)
5 siz: REM — aonenene _
6 REM ** Variables utilisees par les SP :
7 REM we. V,H, V1,H1,V2,H2,T$,5,C,QD
a2
9 IF PEEK (104) = 16 THEN 50
10 POKE 103,1: POKE 104,16: POKE 16 * 25
6,0
15 PRINT CHR$ (4);"bload qd.bin":
20 PRINT CHRS$ (4);"-qd.sample"
50 DIM TXT$(4):QD = 11 * 256: PRINT CHR
$ (4); "pr£3": PRINT : PRINT : PRINT "
Exemples d'utilisation de Quic
kdrawII sous le Basic"
51 TXI$(1) = "Copy": TXI$ (2)
) = "Xor":TXT$(4) = "Bic"
60 : GOTO 10000
100:
1000 : CALL QD: REM InitQuickdraw
1010 RETURN
1015 :
1100 : CALL (QD + 3): REM QuickdrawOfft
1110 RETURN
1120 :
1200 : REM $$$S At (H ,V )
H : de 00 a 320
Vv: de 00 a 200
1210 POKE (QD ! 71),V / 256: POKE (QD +
70),(V - 256 * PEEK (QD + 71))
1220 POKE (QD + 69),H / 256: POKE (QD +
68), (H - 256 * PEEK (QD + 69))
1230 CALL (QD + 6):
1240 RETURN
1299 :
1300 : REM $$$$ Print (t$)
1310 POKE (QD + 72), LEN (TS):
1320 FOR I=1 70 LEN (T$)
1330 POKE (QD + 72 +I), ASC ( MID$ (TS,
Dye
1340 NEXT : CALL (QD + 9)
1350 RETURN
1399 :
1400 : REM $$$$ SetPenMode (C)
00..03 $8000..$8003
1410 POKE (QD + 51),0
1420 IF C > 128 THEN POKE (QD + 51),128
:C =C- 8 * 16 * 256:
1430 POKE (QD + 50),C
1440 CALL (QD + 12)
1450 RETURN
1499 :
1600 : REM $$$$ SetSolidPenPat (C)
00..15
1610 POKE (QD + 51),0: POKE (QD + 50),C:
CALL (QD + 18)
1620 RETURN
1699 :
Pom's n° 33
21
1700 : REM $$$$ SetTextFace (C)
00..03 suivant la version de QDIT
1710 POKE (QD + 53),C / 256: POKE (QD +
52), (C - 256 * PEEK (QD + 53))
1720 CALL (QD + 21)
1730 RETURN
1799 :
1800 : REM $$$$ SetTextMode (C)
0..3 $8000. .$8003
1810 POKE (QD + 55),C / 256: POKE (QD +
54), (C - 256 * PEEK (QD + 55))
1820 CALL (QD + 24)
1830 RETURN
1899 :
1900 : REM $$$$ SetForeColor (Cc)
00..15
1910 : POKE (QD + 51),0: POKE (QD + 50),C
: CALL (QD + 27)
1930 RETURN
1999 :
2000 : REM $$$$ LineTo(H,V)
2010 POKE (QD + 71),V / 256: POKE
70),(V - 256 * PEEK (QD + 71))
2020 POKE (QD + 69),H / 256: POKE
68), (H - 256 * PEEK (QD + 69))
2030 CALL (QD + 30)
2040 RETURN
2099 :
2100 REM $$$$ InvertRect (V1,H1,V2,H2)
2110 POKE (QD + 57),V1 / 256: POKE (QD +
56), (V1 - 256 * PEEK (QD + 57))
2120 POKE (QD + 59),H1 / 256: POKE (QD +
58), (H1 - 256 * PEEK (QD + 59))
2130 POKE (QD + 61),V2 / 256: POKE (QD +
60), (V2 - 256 * PEEK (QD + 61))
2140 POKE (QD + 63),H2 / 256: POKE (QD +
62), (HZ - 256 * PEEK (QD + 63))
2150 CALL (QD + 33)
2160 RETURN
2199 :
2200 REM $$$$ PaintRect (V1,H1,V2,H2)
2210 POKE (QD + 57), (V1 / 256): POKE (QD
+ 56), (V1 - 256 * PEEK (QD + 57))
2220 POKE (QD + 59),H1 / 256: POKE (QD +
58), (H1 - 256 * PEEK (QD + 59))
2230 POKE (QD + 61),V2 / 256: POKE (QD +
60), (V2 - 256 * PEEK (QD + 61))
2240 POKE (QD + 63),H2 / 256: POKE (QD +
62), (H2 - 256 * PEEK (QD + 63))
2250 CALL (QD + 36)
2260 RETURN
2299 :
2300 REM $$$$ PaintArc(V1,H1,V2,H2,S,
C): rectangle, startangle, angle
2301 :
2310 POKE (QD + 57), (V1 / 256): POKE (QD
+ 56), (V1 - 256 * PEEK (QD + 57))
2320 POKE (QD + 59),H1 / 256: POKE (QD +
58), (H1 - 256 * PEEK (QD + 59))
2330 POKE (QD + 61),V2 / 256: POKE (QD +
60), (V2 - 256 * PEEK (QD + 61))
2340 POKE (QD + 63),H2 / 256: POKE (QD +
62), (H2 - 256 * PEEK (QD + 63))
(QD +
(QD +
2350 POKE (QD + 65),S / 256: POKE (QD +
64),S - 256 * PEEK (QD + 65)
2360 POKE (QD + 67),C / 256: POKE (QD +
66),C - 256 * PEEK (QD + 67)
2370 CALL (QD + 39)
2390 RETURN
2399 :
2400 : REM $$$$ SetBackColor (Cc)
00..15
2410 POKE (QD + 51),0: POKE (QD + 50),C:
2420 CALL (QD + 42)
2430 RETURN
2499 :
5000 REM ++++ Cartouche (V1,H1,V2,H2,C
) bouton type ombre
5005 S = C:C = 0: GOSUB 1600
5010 V1 = V1 + 2:H1 = Hl + 2:V2 = V2 +2:
2 = H2 + 3: GOSUB 2200
5015 C = S: GOSUB 1600
5020 V1 = V1 - 2:H1 = H1 - 2:V2 = V2 - 2:
H2 = H2 - 3: GOSUB 2200
5025 C = 15 - S: GOSUB 1600
5030 V1 = V1 + 1:Hl = H1 + 1:V2 = V2 - 1:
H2 = H2 - 1: GOSUB 2200
5035 V1 = V1 - 1:H1 = H1 - 1:V2 = V2 + 1:
H2 = #H2+4+1
5040 C = S: GOSUB 1600
5090 RETURN
5099 :
5100 : REM ++++ Centertexte(t$)
5150 H = H1 + (H2 - H1) / 2 - ( LEN (T$)
* 3.5)
5160 V= V1 + (V2- V1) /243
5170 GOSUB 1200:
5180 GOSUB 1300
5190 : RETURN
5199 :
9000 :
9010
10000 GOSUB 1100: GOSUB 1000; REM
#kkkkEEA DEBUT DE L'EXEMPLE #4444444
10010 c = 5: GOSUB 1600
10020 V1 = 0:H1 = 0:V2 = 200:H2 = 320: GO
SUB 2200
10030 :
10040 FOR V1 = 0 To 198
10050 C = C + 1: GOSUB 1600: IF C = 15 TH
ENC= -1
10060 V2 = V1 + 2: GOSUB 2200
10070 NEXT
10080 :
10090 FOR C = 0 TO 3: GOSUB 1400: REM
chgt PenMode
10095 V1 = C * 50:V2 = V1 + 50:H2 = 320
10100 FOR H1 = 319 TO 0 STEP -1
10110 C = C + 1: GOSUB 1600: IF C = 15 TH
ENC= -1
10120 GOSUB 2200:H2 = H2 - 1
10130 NEXT H1
10140 H = (C * 70 + 2):V = 25 + V1: GOSUB
1200
10150 :T$ = "PenMode " + TXT$(C + 1): GOS
UB 1300
22
Pom's n° 33
10160 NEXT C
10170 :
10200 FORI=1
10210 V1 = 0:H1 =
OSUB 2100
10220 NEXT
10299 :
10300 c = 0: GosUB 1400
10310 FOR V1 = 0 10 85 STEP 5
10320 C = V1 / 5: GOSUB 1600
10330 V2 = 200 - V1:H1 = V1:H2 = 320 - H1
TO 4:
0:V2 = 200:H2 = 3200: G
: GOSUB 2200
10340 NEXT V1
10499 :
10500 C = 10: GOSUB 1600
10510 C = 2: GOSUB 1400
10520 FOR S = 0 TO 359 STEP 10
10530 C = 11: GOSUB 2350
10540 GOSUB 2370:
10550 NEXT Ss:
10600 S = 0:C = 08: GOSUB 1600:C = 0: GOS
UB 1400
10610 FOR C = 0 TO 360 STEP 9
10620 GOSUB 2350
10630 NEXT
10640 FOR I = 1 TO 3:V1 — 0:H1 = 0:V2 =
200:H2 = 320: GOSUB 2100: NEXT
10697 :
10698 :
10699 REM exemple d'utilisation de
CARTOUCHE
10700 C = 5: GOSUB 1600:
10860 NEXT C:
10870 NEXT FO
10890 :
10899 : REM ---- exemple d'utilation
de Centertexte
10900 :C = 12: GOSUB 1600:V1 = 0:H1 = 0:V
2 = 200:H2 - 320: GOSUB 2200
10910 V1 = 090:V2 = V1 + 20::H1 = 090:H2
= H1 + 150:C = 4: GOSUB 5000
10915 C = 11: GOSUB 2400
10920 T$ = "Couleur": GOSUB 5100
10921 :
10940 FOR CO =15 TO 0 STEP - 1
10950 C = CO: GOSUB 1900: GOSUB 5100
10960 NEXT CO
11000 :
11010 FOR TM = 0 TO 02:REM TextMode
11015 C = 04: GOSUB 5000:C = 11: GOSUB 24
00
11020 C = TM: GOSUB 1700:TS$ = "Texte Styl
e” + STIRS (TM)
11040 GosUB 5100
11050 FOR I = 0 TO 600: NEXT I
11090 NEXT TM
11095 T$ = "LineTo sample": GOSUB 5100
11099 :
11100 :REM =
11110 C = 0:V1 = 0:H1 =
20: GOSUB 2300
11120 :
11125 FOR MODE = 3 T0 0 STEP -
DE: GOSUB 1400
LineTo sample =
0:V2 = 200:H2 = 3
10710 : GOSUB 2200 11130 FOR I = 0 TO 200 STEP 2:
10711 :T$ = "Cartouche" 11140 V = I:H = 0: GOSUB 1200
10798 : 11150 C = ABS (15 - I / 13): GOSUB 1600
10799 FOR FO = 0 70 15:C = FO: GOSUR 240 11160 V = 0:H = 320 - I * 1.6: GOSUB 2000
O: 11170 V = 200 - I::H = 320: GOSUB 2000
10800 FOR C = 0 TO 15 11180 V ~ 200::H = I * 1.6: GOSUB 2000
10810 V1 = 2+ C * 12:H1] = 30:V2 = V1 +1 11185 V = I::H = 0: GOSUB 2000
2:H2 = H1 + 100: 11190 NEXT I
10820 : GOSUB 5000: REM --- CARTOUCHE 11192 NEXT MODE
gauche --- 11193 :
10821 + GOSUB 5100 11194 V1 = 090:V2 = V1 + 20::H1 = 090:H2
10830 C=C#1 = H1 + 150:C = 3: GOSUB 5000
10840 V1 = 6 + (C - 1) * 12:H1 = 170:V2 = 11195 :T$ = "The End":C = 12: GOSUB 2400:
V1 + 12:H2 = H1 + 100: GOSUB 5100
10850 : GOSUB 5000: REM --- CARTOUCHE 11199 :
droite --- 19999 :
10851 : GOSUB 5100: 20000 GET A$: GOSUB 1100
: 4c 03 0D 4¢ 16 OD 4c 0B88:00 90 00 00 00 00 00 00
Récapitulation 0D 4¢ 44 0D 4c CF OB 0B90:00 00 00 00 90 00 00 00
QD.BIN 00 05 00 02 00 00 00 0B98:00 00 00 90 vv 00 00 00
00 0A 00 64 00 64 00 0BA0:00 00 00 00 00 00 00 00
00 0A 00 14 00 14 00 0A8:00 00 00 00 00 00 00 00
Aprés avoir saisi cette récapitulation 68 65 6C 6C 6F 20 30 0BB0:00 00 00 00 00 00 00 90
sous moniteur, vous la sauvegarderez par : 32 33 00 00 00 00 90 0BB8:00 00 00 00 00 00 00 00
BSAVE QD BIN, ASROO, L597 00 00 00 00 00 00 00 0BC0:00 00 00 gO 00 00 00 00
00 00 00 00 00 00 00 0BC@:00 00 00 EA EA BA EA 60
0B00:4C FD 0B 4C 50 OC 4c 64 00 00 00 00 00 00 00 0BD0:E2 30 38 FB 60 18 FB C2
0p0@:0¢ 4¢ 79 0c 4¢ BC OC 4C¢ 00 00 00 00 00 00 00 0BD8:30 60 0B F4 00 00 F4 00
0B10:9D OC 4C AA OC 4C BB OC 00 00 09 00 UO “UU WU OBEO:00 F4 UU O00 £4 00 08 AZ
0B18:4¢ CC 0C 4C DD OC 4C EE 00 00 00 00 00 00 00 ORE8:02 1A 22 00 00 Fl 3B 5B
Pom's n° 33
23
24
OBFO:AO
OBF8:00
oco0:F4
0C08:00
OC10:F4
0C18:00
0¢20:00
uc28:00
0c30:F4
0c36:A2
0C040:02
0C48;0A
0C50:20
0c58:00
0C60:E1
06
68
00
B7
DS
Az
DO
F4
20
a2
00
00
F4
00
El
ao
o4
00
Fa
22
4c
El
A2
Do
22
oo
oB
FF
00
DS
El A2
4c vO
a2
04
océe:44
0c70:04
0¢78:0B
oceo:46
0C88:B1
0c90:32
0C98:00
OcA0:A2
OcA8:D0
ocBo:48
ocBe: 4c
occo:0B
occé:E1
0CD0:36
0cD8:00 Bi
418
22
DS
A2
DO
46
AD
ob
20
04
oB
DO
48 A2
4c DO
04
OB 48 A2 OCEO:AD 32 OB 48 A2 04 AD 22
El 4c DO 0CH8:00 00 El 4C DO OB 20 D5
00 00 F4 OCFO:0R AND 44 OB 48 AD 46 OB
22 00 00 OCFa:48 AZ 04 3C 22 00 00 EL
DS OB AD 0D00:4C DO OB 20 D5 0B F4 00
2E 22 00 0D06:00 F4 38 OB A2 04 56 22
20 D5 OB 0D10:00 00 El 4C DO OB 20 DS
00 EI 4c 0D18:0B F4 00 00 F4 38 0B A2
AD 32 0B 0D20:04 54 22 00 00 El 4c DO
00 00 FI 0D28:0R 20 D5 OR F4 00 00 F4
OB AD 34 0D30:36 OB AD 40 OB 48 AD 42
22 00 00 0D38:0B 48 A2 04 63 22 00 00
DS 0B AD 0D40:B1 4C DO OB 20 D5 OB AD
9C 22 00 0D48:32 OB 48 A2 04 Az 22 OU
20 D5 OB 0D50:00 £1 4c DO OB
Heure & AppleWriter
1 ne s'‘agit pas d'un
accessoire de bureau type
GS mais plus modestement
d'un programme WPL qui
permet l'exploitation de la
carte horloge depuis votre
traitement de textes préféré.
Si vous avez une carte Speedisk,
vous saurez l'heure actuelle,
sinon yous connaitrez une heure
vieille de 3 ou 4 secondes.
Le mode d'emploi est simple :
faire :
<ctrl-P>DO HEURE
L'heure, sous la forme 10:58 est
insérée a l'emplacement du
curseur. Faites 4 nouveau :
<ctrl-P>DO HEURE
Theure est effacée.
Seule contrainte : il faut avoir
dans le catalogue courant un
sous-catalogue nommé ‘N’
réservé au seul usage de la
récupération de l'heure. Ce
sous-catalogue contiendra un
fichier composé de ‘**’
uniquement.
Bien sar, il sera plus confortable
de mettre l'ordre WPL dans une
commande glossaire : vous aurez
Theure sous la pomme. a
G
Lyda Patkova
Fichier HEURE
*PND
*PCS/$a/
+ PGO*
0B //**/
0?
“B
oF /*R/
°?
*SN/N, *
“0
uu
* OANE
2
*D
*f
oF ISSSS2E£1**!
°0?
“Ww
*UUU
oP aAURE
#0?)
"D
“WW
*PAS*=$A
*POT
xD
“WHO
*PAS=SA
'
I
//e
//et
//c
IIgs
Stoppe l'affichage.
Si le pointeur $A est *,
aller a Vétiquette *.
Met dans le texte le repére **
la place du curseur.
Début page texte et direction > ligne de statut.
Retourne au repére **.
Sauvegarde, dans le sous-catalogue N, le fichier N
ne contenant que le repére **.
2 fléches de droite : passe devant le repére **
Charge le catalogue en mémoire texte.
Change la direction ligne de statut : <.
Remplace la fin du catalogue jusqu’a l'heure de
modification par un nouveau repere **.
Met dans le buffer texte l'heure et un espace.
Déplace le cureur vers la droite, aprés le repére **.
Supprime tout ce qu'il y a entre les reperes,
repéres inclus.
Change la direction ligne de statut : >.
Remet U'heure et Vespace du buffer dans le texte.
Initialise le pointeur $A.
Fin d'un premier appel.
Second appel ; change la direction.
Supprime I'heure.
Vide le pointeur $A,
ProDOS
Pom's n° 33
Pascal ONL INE “
Cantot
Source ONLINE.S ProDOs |
Assembleur Merlin Pro
BASIC KBD
CNTR - $18
in = $200
BUFFER = $200 7Utilisons IN comme buffer
DO BASIC
EXTRNCMD = $BEO6 #Vecteur vers commande exlerne
ERROUT = $BEO9 #Traitement d'erreur
XTRNADDR = $BESO Adresse de la commande externe
XLEN = $BE52 slongueur - 1 de la commande
XCNUM = $BES3 7N° commande BASIC.SYSTEM (ext.=0)
PBITS = $BE54 7Drapeaux des paramétres requis
BADCALL = $BEBB ;Convertit erreur MLI -> Basic
SONLINE = $BECE sListe parametres MLI pour ON_IINE:
SUNLINUM = $BEC7 # Code de l'unité (00 = Loules)
SBUFADR = $BECe ¢ Adresse du buffer
FIN
MLI = $BFOO #Point d'entrée du MLI ProDOs
SERR = $BFOF #Code erreur MLI (U0 = ok)
BITMAP = $BF58 7Schéma occupation mémoire
PRBYTE - $FDDA sAttiche A en hexa
cour = $FDED 7Affiche le caractére dans A
RTS = $FF58 #RTS connu en ROM
On_Line EQU $C5 7Référence de la routine On_Line
AAA RAA AERA REAAE HAR ERE R ERE ERE R EEE
* Code destiné 4 e “tre relogé avec CMDLOAD (cf POM'S 20)
* syntaxe commande: "ONLINE", pas de paramétres
* Il faut charger CMDLOAD en $2000, ONLINE.CODE en $2100
* et faire CALL 8192 pour installer la commande ProDOS
*
ORG $2100 sAdresse arbitraire ($2100 pour CMDLOAD)
DO BASIC
START CLD #Convention avec ProDOS
LDA £>PRGEND+$100 ;Convention avec CMDLOAD
LDA £>PRGLEN+$100
une commande externe
ui n'a jamais
souhaité disposer
sous ProDOS
d'une commande
donnant la liste
de tous les
volumes en ligne, comme le font
AppleWriter, Merlin-Pro, etc. ?
Nec scrait-ce que pour connaitre le
nom de telle disquette, ou savoir
si telle autre disquctte est bien au
format ProDOS...
Cette fonction existe au sein du
noyau ProDOS : elle s'appelle
ON_LINE. Mais elle n'est
accessible que via le MLI
(Machine Language Interface)
qui, comme son nom I'indique,
ne peut étre appelé que par un
programme machine.
La routine ONLINE proposée ici
affiche la liste de tous les volumes
en précisant port, lecteur et nom
d'accés de chacun d'entre eux. De
plus, si une erreur survient lors
de la lecture d'un volume, le
programme affiche 4 la place du
nom le code de l'erreur MLI
spécifique a l'unité ayant
provoquée l'erreur. Exemple :
$6,D1: /MERLIN
86,D2: $52
$3,D2: /RAM
Nous voyons que la disquette (ou
plutét le volume) dans le lecteur
2, port 6 n'est pas un volume
ProDOS (c'est peut-étre une
disquette DOS 3.3, CP/M...).
Les erreurs possibles sont les
suivantes :
V_OLDCMD LDA RTS sAdresse commande précédente $27 : erreur d'entrée/sortie (I/O
ERROR) ;
SET sInhnibe les interruptions $28:pas de périphérique
ONLINCOM LDX £0 7Verifie qu'il s‘agit bien connecté (NO DEVICE
CHKCOM LDA IN,X ide notre commande CONNECTED) ;
Pom's n° 33
25
eS ==. ° °°
ORA £880
CMP = CMDSTR, X
BNE BADCOM
INX
CPX £6
BCC CHKCOM
STX XLEN
LDA V_ONLINE+1
STA XTRNADDR
LDA V_ONLINE+2
STA XTRNADDR+1
LDA £0
STA SERR
STA XCNUM
STA PBLITS
STA PBITS+1
CLC
RTS
V_ONLINE JMP ONLINE
BADCOM SEC
CLI
FIN
ONLINE LDA £0
ONLINO STA SUNITNUM
LDX £<BUFFER
STX SBUPADR
LDX = £>BUFFER
STX — SRUFADR+1
LDA BITMAP
AND £#11011111
STA BITMAP
JSR MLI
DFB On_Line
PRMADR DA SONLINE
BEQ ONLINZ
Do BASIC
JSR BADCALL
UMP ERROUT
ELSE
RTS
FIN
ONLINZ LDX £0
LDA CNTR
PHA
SCANVOL LDA BUFFER, X
BEQ EOBUF
PHA
LDA £$8D
#Convertit en Ascii négatif
#Si pas notre commande
#6 caractéres correspondant?
#Non ~> on continue
gAutorise 4 nouveau les interruptions
7Clest bien "ONLINE"!
galors on donne au BASIC.SYSTEM
fl'ordre de l'exécuter
Rem: on n‘indique pas dans PBIT.
#qu'aucun paramétre (,S,D,L...)
gntest requis par ONILINE.
;Done ONLINE, S6,D1 ne provoquera
spas dterreur mais seul "ONLINE"
fsera pris en compte
7Retourne vers le BASIC.SYSTEM
#Vecteur vers ONLINE
#Si ce n'est pas "ONLINE"
#Retourne avec C=1
UMP _ (V_OLDCMD+1) ;et essaye comm. suivante
* Routine principale: 2 points d'entrées
* ONLINE: liste tous les volumes
* ONLINO: affiche le nom du volume dans l'unité
* dont le code DSSS0000 est dans A
* (Dz drive 0-1, SSS: Slot 0-7)
#Balaye tous les volumes
7A = dsss0000 (d: drv, sss: slot)
#Stassure que la page 2 (IN)
yest marquée comme “libre”
7Exécute la routine On_Line
¢du MLT Pronos
7Z=1 si pas d'erreur
#Sinon, atfiche le message
adterreur (ou gére ONERR)
#Sort avec Z-0, C=1 et A= erreur
;Saisie le premier octet
#Si 00, alors fin
#Sinon, nouveau volume
$2E : disques échangés : fichier
encore ouvert sur un autre
disque ;
$45: impossible de trouver le
répertoire du volume
(VOLUME DIRECTORY
NOT FOUND) ;
$52: ce n'est pas un disque
ProDOS (NOT A PRODOS
DISK) ;
$57 : nom de volume déja utilisé
(DUPLICATE VOLUME).
ONLINE peut reconnaitre jusqu'a
16 volumes (c'est le maximum
toléré par ProDOS). La routine
utilise le buffer clavier
($200-$2FF) comme espace de
travail. Aucune adresse page zéro
n'est modifiée. Enfin, il est
intéressant de savoir que
ONLINE prend moins de 256
octets en mémoire...
Lorsque ONLINE.S est assemblé
(par MERLIN PRO), le systéme
demande de donner une valeur 4
l'étiquette (label) "BASIC"
("Give value for BASIC:"). Sion
entre "1", le code objet produit
sera celui d'une commande
externe ProDOS nommée
"ONLINE", installée par
CMDLOAD (voir la revue Pom’s
20). Si on répond "0" en
revanche, le code produit est celui
d'une simple routine machine
appelée par CALL, JSR, BRUN,
etc.
La commande
OnLine
Pour l'installer, il suffit de faire :
- ONLINE. EXE
(Ce fichier a &6 obtenu en faisant :
BLOAD ONLINE.CODE
BLOAD CMDLOAD
BSAVE ONLINE.EXE,A$2000, L512
ONLINE.CODE est le résultat de
Vassemblage de ONLINE.S option Basic,
CMDLOAD est le relogeur d’A. Avrane
(Pom's 20).)
La routine sera relogée sous le
BASIC.SYSTEM et la commande
sera active et utilisable comme
n'importe quelle autre commande
de ProDOS.
La syntaxe est :
ONLINE
Pom's n° 33
PRNAME LUA
SETDX PLA
EOR
STA
TXA
cLe
TAX
Bcc
EoBur LDA
JSR
JSR
PLA
STA
cCLe
RTS
VOLERR TXA
COUT
eugn
COUT
£%01110000
£70"
Cour
AM
couT
£"D"
cour
£0
ene
cour
ene
cour
gn
cour
BUFFER, X
£S0F
VOLERR
CNTR
eg
couT
BUFFER, X
£$80
couT
CNIR
PRNAME
£S0F
CNTR
CNTR
SCANVOL
£$8D
cour
£88D
cout
CNTR
£0
#Envoie un retour chariot I
//e
#Isole le slot //e+
/Ic
IIgs
#Convertit en
#Bit? (drive) -> C
7Si C=0, alors drive 1 s. n drive 2
7C -> Bit 0 de A, et bit 7 de A->C
emais bit 7 = 0, done C = 0
yIsole la longueur du nom
7Si Namebength = 0, ecceuz
#Sinon, on peut afficher le nom
sAffiche le nom du volume
7Calcule L'adresse
7du nom de volume suivant
7= adr. courante + (15-long. nom)
#Toujours pris si moins de 16 volumes
70n a liste tous les volumes
yon saute deux lignes
70n restaure CNTR
get on sort avec C=1
#Z=l et A= 0
7Affiche le code de l'erreur
Tout ce qui suit (paramétres, S,
D...) est ignoré par I'interpréteur
du Basic.System.
OnLine sans le
Basic
Correspond 4 _ l'option
d'assemblage "BASIC = ()"
(fichier ONLINE.oBu non listé
ici), La routine s'exécute a
l'adresse "adr" indiquée par la
directive "ORG" de l'assembleur
(par défaut ici $2100).
Un JSR adr (ou CALL adr)
affiche la liste de tous les volumes
connectés, alors qu'un JSR adr+3
sélectionne un lecteur de disque
particulier : en ce cas, mettre le
code de l'unité dans
l'accumulateur sous la forme
DSSS0000, avec D = numéro du
lecteur moins un (donc 0 ou 1) et
SSS = slot (0-7).
Si vous souhaitez exécuter
ONLINE 4 une autre adresse
‘adr’ sans réassembler le source,
il suffit de mettre en adr+$04,
adr+$09 et adr+$0E le poids
FORT de la nouvelle adresse
d'exécution (cela suppose que la
routine se trouve en début de
page, donc a une adresse de la
forme $xx00, ot xx est le poids
fort de 'adr’).
InterPom’s
version 2.0 ©
©
Des transmissions
intelligentes entre :
Apple//™
et/ou
Macintosh™ —
et/ou
IBM®ect compatibles
Bon de commande page 75
Pom's n° 33
27
PHA #survenue durant le lecture
LDA £"s" ;du volume
z. Z JSR cour
Récapitulation IDA BUFFER,X ; (code MLI hexa)
ONLINE.EXE isn PasyTe
PLA
* . ., 5 TAX
Aprés avoir sa cette récapitulation Ce dane BE Soneiatiel
sous moniteur, vous la sauvegarderez par : sce? SeROE aroujaixs Bets
BSAVE ONLINE.EXE, A$2000,L512
BRK #Fin du code 4 reloger (CMDLOAD)
2000:AD 00 BF C9 4C FO 05 Ad
7008:87 4C ED FD AD 4D BE FO RRR RRA AER ARERR EER Re
2010:05 A9 15 4C 09 BE AD 04
| 2018:21 69 00 20 98 20 90 05
2020:A9 OE 4C 09 BE CD 02 21
2028:90 F6 AE 08 BE 8D 08 BE DO BASIC
2030:8F 07 21 AE 07 BE 8E 06 CMDSTR ASC “ONLINE” iom de la commande
2038:21 AO 00 8C 07 BE 48 E9 PRCEND = *
2040:21 85 3C 68 38 E9 04 85 PRGLEN = PRGEND-START+$100
2048:74 AJ 21 @5 49 84 48 AD ELSE
2050:00 Bl 48 FO 27 20 8E F8 SONLINE DFB 2 7Si pas de BASIC.SYSTEM
2058:A4 2F CO 02 DO OF Bl 18 SUNITNUM DFB 00 falors il faut notre propre
2060:C9 21 90 09 CD 02 21 BU SBUFADR DA BUFFER ;Parmbist
2068:04 65 3C 91 48 AS 48 38 FIN
20/0:65 2F 85 48 AS 49 69 00
2078:85 49 DO D3 AO 00 AY 21
2080:84 3C 85 3D 18 6D 04 21 2100:D8 AQ 22 A9 02 AD 58 FF 4A 4A 18 69 BO
2088:84 42 88 84 3E 85 3F AD 2108:78 A2 00 BD U0 02 09 80 Ag AC 20 ED FD
2090:08 BE 85 43 C8 4C 2C FE 2110:DD F7 21 DO 29 FA FO 06 ED FD AO 00 68
2098:8D FB 20 A5 74 18 69 04 2118:90 F1 58 CA 6E 52 BE AD 69 Bl 20 ED FD
20A0:8D FC 20 86 3D CE FC 20 2120:3C 71 8D 50 BE AD 3D 21 ED FD A9 AO 20
20A8:FO 4/ AD FC 20 8D FD 20 2128:8D 51 BE A9 00 OD OF BF 00 02 B8 29 OF
20B0:AD FD 20 48 42 4A 4A AA 2130:8D 53 BE 8D 54 BE 8D 55 85 18 AY AF 20
20B8:68 29 07 AB B9 F3 20 3D 2138:BE 18 60 4¢ 43 21 38 58 00 02 09 80 70
20C0:58 BF DO El AS 3D DO 09 2140:6C 06 21 A9 00 8D C7 BE C6 18 DO F3 68
20C8:B9 F3 20 1D 58 BF 9D 58 2148:A2 00 8E CB RE A? 02 BE 21C8:49 OF 85 18 8A 18 65 18
20D0:BF AD FC 20 38 CE FD 20 2150:C¥ BE AD 56 BF 29 DF 8D 21D0:AA 90 9A A9 8D 20 ED FD
20D8:ED FD 20 CD FB 20 DO DO 2158:58 BF 20 00 BF C5 C6 BE 21D8:A9 8D 20 ED FD 68 85 18
20E0:A5 3D DO 07 18 AE FD 20 2160:F0 06 20 8B BE 4C 09 BE 21E0:18 A9 00 60 8A 18 AO Ad
20E8:E8 8A 60 A9 00 85 3D FO 2168:27 00 AS 18 48 BD 00 02 21£8:20 ED FD BD 00 02 20 DA
20F0:B9 38 60 80 40 20 10 08 2170:F0 61 48 A9 D 20 ED FD 21P0:FD 68 AA 18 90 D1 00 CF
20F8:04 02 01 00 00 00 AD 99 2178:A9 D3 20 ED FD 68 48 29 21F8:CE CC CY Ck C5 FD BF 4c
Impression avec AppleWriter
Le début d’impression d’un fichier, surtout la ligne du haut, est souvent perturbée par des caractéres
restés dans le buffer d’imprimante, en particulier aprés I’initialisation—caractéres programmables ou
autres — ou bien espaces de marge de gauche d’une précédente impression.
Pourrésoudre tous les problémes de ce type, il suffit d’inclure au début de la ligne du haut le caractére
<ctrl-X> qui a justement pour fonction de vider le buffer d’imprimante. Si vous n‘utilisez pas cette
ligne, elle peut toutefois ne contenir que <ctrl-X> ou bien par exemple <ctrl-I>80N<ctrl-X><esc>E
(configuration de I’interface, vidage du buffer, choix des caractéres “ELITE”).
Elle peut aussi contenir une ligne complexe initialisée par un fichier texte tel celui présenté ci-dessous.
. LH*<ctr1I>80N<x><esc>P<esc>!<esc>Xquartier’ rastaux’ RN 120 MOUSSAILLON 74 550
Caurdes tél : 70.70.70.70 <esc>n<ctrl-N>J.POM’ S<esc> q<ctrl-o> société
nouvelle<esc>E <esc>Y<esc>”*
28 Pom's n° 33
Pascal Duboin
et utilitaire permet de
visualiser le catalogue
d'un disque formaté
en DOS 3.3 avec
quelques avantages par rapport a
la simple commande utilisée par
le DOS :
¢ visualisation des fichiers
effacés ;
¢ visualisation des caractéres
de contréle ;
° visualisation des adresses de
chargement des fichiers ;
¢ tri du catalogue (11 options) ;
+ défilement de haut en bas et
bas en haut du catalogue ;
* utilisation de la souris et de la
carte 80 colonnes.
ee
' e
Petites annonces
Vous étes abonné ? Pom’s
ouvre gratuitement ses
colonnes a vos petites an-
nonces : vente, recherche
de matériel ou de logiciel,
contact, club... (Pour les
ventes de logiciels, joindre
la photocopie de la facture
d'achat).
Les annonces seront
constituées de 250 carac-
téres au maximum et
préciseront obligatoire-
ment le type de matériel, le
prix et votre numéro de
téléphone.
Elles nous seront
adressées par courrier ou
messagerie CalvaCom
(emp11).
Cats & Mouse
<= CATS AND NOUSE =>
T 021 ARTICLE.POMS
‘081 CATS. SOURCE.LISA
¥7-001 FICHIER.EFFACE. 1
*T 001 FICHIER EFFACE.2
#*f 005 -PAOG. BOOT
FILES: 007 EFFACES: 000
Configuration
Le programme requiert :
* une carte 80 colonnes ;
le microprocesseur 65C02.
Leur présence est détcctéc
automatiquement en début de
programme. En cas de non
installation, vous étes invité a
‘rebooter’ le systéme sur un autre
disque par simple appui sur la barre
d'cspacement. L'interface souris n'est
pas obligatoire, mais le programme
actionne automatiquement I'animal en
cas de détection de ladite interface. Le
cas échéant, il autorise simplement les
ordres entrés au clavier.
Utilisation
Sélections
Dans le menu principal, on
sélectionne les options soit en se
déplagant a T'aide des fiéches et en
validant par Return, soit en déplagant
le curseur par un simple ‘clic’ et en
validant par un double ‘clic’.
Pour la sélection du lecteur de disques,
Ic principe est le méme avec, en plus,
la possibilité de s'échapper par Escape
ou par un simple ‘clic’ sur le bouton
du coin supérieur gauche de la fenétre.
Ces deux dernigres options se
retrouvent bien évidemment tout au
long du programme.
+ 00) ——
LIB.: 264 NUMERO: 003
copyright en juin 1967 pcr
CATALOG _EUL1UH
LONGUEUR:
F. EFFACES
CARAC CTRL
TRI CATALOG
REDEMARRER
La suite est aussi classique pour les
personnes ayant utilisé un Macintosh.
Dans toutes les options d'affichage du
catalogue, on peut se déplacer a l'aide
des fl&ches du clavier ou celles
dessinées a I'écran, mais vous avez la
possibilité de vous déplacer
rapidement en frappant un chiffre de 0
49, (B) pour Begin, ou encore (E}
pour End.
Les utilisateurs de la souris ne seront
pas lésés pour autant, car le mode
déplacement rapide leur est accessible
par simple ‘clic’ sur la bande de
T'ascenseur. Ce mode de déplacement
est déconnecté lorsque que l'option
MOVING est activéc.
Le Tri
Dans I'option de TRI vous pouvez
changer le sens (ascendant ou
descendant) par un ‘clic’ sur le petit
bandeau, ou en utilisant la barre
d'espacement. Le choix de la méthode
de tri est effectué en ‘cliquant’ sur les
chiffres inversés ou en entrant un
chiffre au clavier.
Mise 4 jour
Pour réécrire un catalogue trié, il
suffit de *cliquer’ sur le drive 1 qui est
silué en haut a droite de la fenétre de
travail. Les utilisateurs du clavier se
contenteront de taper W.
Pom's n° 33
29
| [| Se
Une fenétre d'alarme s'ouvrira, vous
demandant de confirmer votre action
soit en cliquant sur OK, soit en
faisant Return. Pour abandonner, il
faut cliquer dans tout autre endroit de
la fenétre ou bien encore faire Escape.
Cette procédure fonctionne pour toutes
les fenétres, d’alarmes
En ce qui concerne la méthode de ti
dite Personnelle, clle vous permet de
placer vos fichiers dans l'ordre que
vous aurez choisi. Pour cela, il
convient de sélectionner un fichier a
Taide de l'une des diverses méthodes de
déplacement énoncées plus haut et de
cliquer sur le bandeau inversé, ou
encore de frapper Return, ce qui aura
pour effet de vous mettre en mode
déplacement.
Le mode ‘déplacement’
Ce mode sera caractérisé par l'affichage
de moving sur la ligne supérieure de la
fenétre de travail. Vous pourrez alors
positionner votre fichier a
l'emplacement de votre choix, et I'y
fixer par un sccond ‘clic’ sur lc
bandeau ou Return. Pour réécrire le
catalogue, la procédure est la méme
que dans les autres tris, c'est-&-dire : W
ou ‘cliquer’ sur drive-: ] et confirmer
par Return ou OK. 4
Source PILENSE EP2 128 : STA LON23,X
é , pos Pz 132 Iw = $20 INE
‘SOURCE.LISA PrLeM S22 133 quesos = saz nr
MOVING EPz 134 SABLE = $43 cey £40
mus DBicLic EPe 135 Fo - $98 ace <0
. 2 FB = 38% PLA
setnersseeesserssees FAC RPE 161 FH - $68 ‘STA 16N23+39
+ THE FRENCH DISK. * : Rw = SD
- - ¢ ARITHMETIQUE APPLE oe - $0 na £215
+ caratoc error + z ¥D - $95 JsR AIT
: . INTEGER pov 9B10¢ Bec - 698 é
. . suurr eu $6982 src = tao pee renner
. . DIVISE EQU $EA69 : are ri
oo - AKG -BQU $2B63 Durres 2qu #0000 rox £26
| SIGNE EU SEBBU AORTBL BQO $8100 DA esPc
+ VARIABLE EN PAGE ZERO AUSTR BuO $8200 “0 STA L6N10+6, x
: LENGHT BU $szuU Ex
Drive BPE 2 START — EQU $9300 BPL <0
TRACK Bez 4 00 $9400 :
SECTEUR EP2 5 DEC TEMPO
DATA «BPz 8 00 opcooe 65026 per Tl
on rR 17 ro BME 0
: rou = SIA ‘
INDEX Epz 21 Fou - $3 BEGIN:
LEVELI EPZ 22 OU = $1c LDA {BEGIN
TSENS ere 23 5OU = a ‘STA RROOT
sre Bre 24 au - so TOR /REGTN
Pre ePE 25 oo - ‘STA nooors1
é 4oenr BQU $EC71 ’ ‘BOR £405
cal ep2 27 WAIT BQU $ECAB ong £000 STA RDOOTI2
ol mE 28 QU SE00A oBz 3800
é BQU $EDE6 : JSR COLO
LEFT —-EP2 32 EQU $FE8O rest:
RIGHT EPZ 33 BQU SFES4 en LOK £29
Top «BP2 34 m0 $7593 JSR SCREEN *0 IDA RATS, x
DoRW EE 35 ¢ STA $0,x
CH ‘EP2 36 2 ADRESSES HARDWARE LDA CART8O DEX
o ger 37 ; BMI TESTERR BPL <0
2 RBoor FOU $3F2 DA IDENT
Bast EE 40 mot = -BQU $478 cup carPLEzc 10x £7
srons Eps 44 vemos aU F45B £0 >0 “0 Dec PrRe!
ree BPE AG nev equ sare MP FAPPLEDE Dex
Temelgez 48 vaxt nau sare “0 BBQ BECIN Aur >t
: maxt = BQU $388 ‘ Moy £12
PoRS ape 68 Aine beu $478 TESTERR: LDA (PTR), ¥
IOONE BPE BL mine BQU 5878 Jan PRINT cor £92
Msiot =z 82 mstat B00 $778 BYT 23,10 DWE <0
Z 4 ASC “(PRESS SPACE TO zpy £251
MAXCLIC EPZ 84 EGN10 —-BQU $528 Boot) * LDA (PTR), ¥
MINCLIC Pz 85 iovl2 BU $628 bas poaglad
TEMPO EPZ 86 b0N22 © BQU $750 : gaanepd
opriow sz 88 1cv23 ou $700 10 JSR PRINT IDA PTR
: Fi BYT 10,6 STA MOUSE+2
vorx! FPR ag KBD Bov $c000 ASC "< CARTE 80 STA MS#2
vorx? RPE 90 STROBE BQU $c010 COLONNES & 650Zc >" BOR £$C0
LONGEUR Pz 91 caarec BU $017 BRK STA MSLOT
, PKR Bau 4¢030 BNE MOUSEOK
DeLeLc BPE 92 apa £6 :
penser Bre 99 consranres ‘st TEMPO "1 na £560
LONELG BPE 94 oa £9 STA MSPRT
HIDELG §=6EPZ 93 - oo (STA TEMPOt! ‘STA MOUSEPRT
SETOUR PE 96 re ; ‘STA ROCURS
; - 2 tt Da KBD NE TTL
ALPHA BPE 125 -3 EPL 72 2
lock = PE 120 a Re BoOT2 oussox:
DeL «PE 121 8 2 tox emrwrr
wRTOK PE 124 - 6 72 ‘LDA L6N23 JSR MOUSE
: =o PHA :
FILBOK BPE 127 1x £0 LDA £79
DELETED EPE 129 ae) wy £1 STA MAXL
| FREE EPE 130 = 06 “0 IDA 10829, ¥ WA £1
4 °
Pom's n° 33
STA MINE
RYT DFA
STA MINE
STA MAXH
LOK £CLAME
JSR MOUSE
LDA E22
STA MAKE
LDA £1
DX ECLANP
JSR MOUSE
LDA £1
LOX £SET
JSR MOUSE
LOX EMHOME
SR MOUSE
Tt:
JaR PRINT
BYT 0,255
ASC * <- CATS AND MOUSE
‘ASC ‘copyright in june
1987 by *
ASC ‘INTERET SOFTWARE 5
DUBOIN.P *
BRK
JSR HONS
JSR WIND
Byrt
BYT 59,20.3.23
JSR RSCUR
Inrre
BYT $72, MOvINe
yr 978, pDLcLIC
YT STZ,ALPHA
DYT 372, DEL
BYT STZ, DBLELG
BYT STZ, HIDELG
BYT STZ, LGNELG
OX £62
EDA £74
JSR PIXCLIC
LOX £255
1™xs
JSR PRINT
ayr 3,60
ASC" CATALOG EDITOR
nx
Dx £17
MENU:
JSR PRINT
YT 7,62
ASC " FILE LENGHT"
LDA INDEX
ape £7
tpx £11
JSR REVERT
JSR MOUSEPRT
+o JSR FUNCTION
BCC MENU
‘LOX INDEX
CPx £5
JSR CROISE
nx THR
+0 MAINE, X
Tee 2
DA
STA
‘EDA MAZNHL, x
STA
ne (TEM)
warns
MAINA:
IND:
wo
BY SORT
DY 90422,%
STY Ms#2
HEX 4C93C4
STA PTR
STA PTR+
LY £5
LDA (PTR).Y
STA SIR,Y
‘BNE WO
wy "1
LDA RIGHT
INC TOP
DY DOWW
DEY
STY STORE+I
10x TOP
‘LY RIGHT
STY MERE+1
JSR MOUSEOFE
JSR MOUSEON
‘STX TOP
vse
LDA
ix
ce SR Cour
DEX
BPL
LDA SIP
BNE C4
3
ce veR TEXT
s
Da
ape
TAK
LDA PTR
apc £0
PHA
BYT
ior MsLoT
LDA MSTAT, Y
PL MOUSEPRT
RSCUR JSR MTAB
JSR ROCURS
MOUSEPRT:
asR
LOA STYLE
cup es1B
BCE
pec
ona,
ws
SR PICKY
ouP
0 ISR
ay LOY MSLOT
DA
‘Lox
0 STA
s™
aR
gsr
oe
2BEQ
oe
BNE
4 STA STYLE
CHGCUR LDA £CURSOR
Récapitulation
‘CAT & MOUSE’
Apres avoir saisi cette récapitulation
sous moniteur,
vous la sauvegarderez par :
BSAVE CAT & MOUSE,
A$800, L$1000
FC 20 93 FE AD 17
0B AD 71 FC c9 35
C9 06 FO 7F 20 91
0819:0¢ 17 0A AB DO D2 cS D3
0820;:D3 AO D3 DO cl c3 co AO
0828:D4 CF AO C2 CF CF D4 ag
0830:00 20 91 0c OA 06 BC AO
D2 D4 C5 20 BB BO
CF CC CF CE CE C5
A6 AO BG BS BO B2
0850:E3 AO BE 00 A9 06 85 56
0858:A9 09 85 57 AD 00 co 10
0860:03 4c DA OE AD D0 07 48
0868:A2 00 AO 01 BY DU UI 9D
0870:D0 07 E8 CB CO 28 90 F4
O878:68 AD F7 07 A9 D7 20 AB
0880:FC C6 57 10 D7 Az IC Ad
0888:A0 9D 2E 05 CA 10 FA LO
0830:56 10 C9 30 9c. A9 95 BD
0898:F2 03 A9 08 8D F3 03 49
O8A0:A5 8D F4 03 20 00 c3 a2
06A8:1D BD D3 17 95 00 ca 10
06B0:F8 A2 07 C6 1A CA 30 1E
06B8:A0 OC B1 19 C9 20 D0 F3
08C0:A0 FB BI 19 C9 D6 DO EB
08c8:A5 1A 8D 3E 0A 80 44 0A
85 52 DO OD a9 60
0B 8D 30 0B 8p 58
08E0:0B DO 33 A2 07 20 3c On
08E8:A9 4F 8D F8 04 AS O1 8D
OSFU:78 04 3A 8D 78 05 &D FB
08F8:05 A2 05 20 3C 0A AS 16
0900:8N FA 06 Ag 01 a2 O5 20
0906:3¢ 0A A9 01 a2 00 20 3c
9910:0A AZ 06 2U 3C UA 20 91
0918:0C 00 FF 20 3c 2p 20 43
09270:41 54 53 20 41 4E 44 20
0928:4D 4F 55 53 45 20 2D 3B
0930:20 20 63 6F 70 79 72 69
0938:67 68 74 20 69 6E 20 6A
0940:75 6E 65 20 31 39 38 37
0918:20 62 79 20 20 20 49 4B
0950:54 45 52 45 54 20 53 4F
0958:46 54 57 41 52 45 20 26
0960:20 44 55 42 4F 49 4E 2E
0969:50 20 00 20 8F Op 20 45
0970:0A 01 3B 14 03 17 20 2a
0978:0B 64 86 64 87 64 7D 64
0980:79 64 5C 64 SF 64 SE AZ
0988:3E AS 1A 20 00 OC A2 FE
0990:86 7c 9A 20 91 OC 03 3c
0998:A0 AO C3 Cl D4 cl cc CF
09A0:C7 AO C5 C4 C9 D4 CF D2
09A8:A0 AO 00 A2 11 20 48 OC
0980:20 91 OC 07 3E AO AO AO
0988:CE CF D2 CD Cl CC AO AO
09C0:A0 DE AO C6 C9 CC C5 AO
09C8:CC C5 CE C7 C8 D4 DE cé
cc
ca
cs
or
09D0:¢9 cc C5 AO cd cS co CS
09D8:D4 C5 C4 DE Ce C9 C4 C4
09E0:C5 CE AO D4 CF CB C5 CE
O9E@:DE C3 Cl D4 Cl cc CF C7
O9F0:A0 D3 CF D2 D4 DE AO C2
O9F8:CF CF D4 AO C4 C9 D3 CB
0A00:A0 AO 00 18 AS 15 OA 69
oR 20 45 Oc 20 30
0A10:08 20 72 08 90 9A AG 15
OALB:EU U5 FU US ZU Ud UE AG
0A20:15 BD 2E OA 85 2E BD 34
Pom's n° 33
31
0A28:02 85 2F 6C 2E 00 £3 cB
0A30:0F D9 44 99 OF OF OF OF
0A38:13 OE AZ 02 BC 12 C4 BC
paring pa nan 29 piniepated 0A40:43 0A 4c 95 C4 68 85 19
5 Ye see pale ao ie 0A48:68 85 1A AO 05 BI 19 99
Funcriow: RIS RTS 0A50:1E 00 88 D0 F8 AO CC OA
JSR INPUT2 2 2 0A58:90 02 AU DC 84 36 ZU 58
edges od ane OA60:FC 20 18 OB AY DA 20 F6
LDA STYLE DA a JSR VIAB OR6A:FN AS 21 £9 02 85 2C AA
espe hla Dr we citi 0A70:A5 1F 10 06 A9 DE 20 F6
é 3 ‘i OA78:ED CA AS 56 20 F6 FD CA
on cv rpor: PRINT: 0A80:10 FA A9 DF 20 F6 FD 56
ioe 28 Ena £255 PIA 0A88:22 Ad 23 88 84 2D AG 22
a Ow 10%, x STA DEES: sn et 0290:24 21 98 8c 9c 0A AD DA
Sie 4 aes oe erate 0A38:20 F6 FD AO 00 84 24 a9
we <t DA KOD iby £2 26, 2D Ei EAD DO
BMI FUNCTION RPL MOUSENVE 3 22 AG 22 Ad 23 88
2 SBC SEC FR LDA (PTR) 20 11 0B 20 58 FC
sac £7 “0 STA STHUSE PRO JSR VEAB 0B 86 22 BG 21 a9
ae RIS a ee F6 ED 20 11 0B Ad
STA :
ton ere ‘econ: ooh (em ae 20 F6 mca 10
AND £938 JSR XMREAD STA CH
‘STA STYLE by sstor ‘STA STORE 21 AS IF DO 24 aS
cue ‘LDA MSTAT, ¥ : 25 20 62 FC £6 24
RTs ash Re iwy Ag DA 20 F6 FD Ag
’ bee} A ES QAFO:DE 20 F6 FD 20 62 FC E6
tox ST ial ti it dala’ 5 gai OAF8:24 A9 D3 AG 2C 20 F6 FD
ky nox INDEX asp MOUSEPRT 4 cue £255 0B00:CA 10 FA 20 2F FB AS 19
cue ero + BNE >6 0B08:69 05 AA AS 1A 69 00 48
beg Desc ourons: T™Y 0B10:DA 20 84 FE AS 04 DO 05
cw te8 yoy ustor BNE PR 0819120 90 FE A9 01 1C FB 04
ae Ore = peti ue aes 0820:60 Ad 52 BS 78 07 OA OA
besc | Ime Bir paccne Sra 0828:10 06 20 68 OB 20 58 OB
mate mast me 0530:20 6B 0B AS 18 C9 1B BO
BLT >0 ASL LA (PTR), ¥ 0838:0D C6 51 09 CO 20 FE FD
1px £0 ‘BME INPUT2 TAK 0B40:20 55 0c 4c 49 0B 20 FG
é é ney 0B48:FD Ad 52 B9 FB 04 BE 78
15 = a ees ed baacliasee 2 peta a es 0B50:04 85 1¢ 86 1B 20 6B OC
oe peti “ i aid 0858120 55 Oc CB 42 FO 09 co
. coy urickte: rst 0860:43 D0 01 60 85 18 AS 42
oracr cu are BLT INPUT2 BMI PR2 0B68:4C F6 FD AS 1C Ab 1B 4C
BEQ MONT : : 0870:8B OC 20 12 0c BO 26 AS
cue crn “1 cw oe ou OR7A:18 C9 71 90 4B AS IC AZ
as = pe 28 0D80:05 DD 99 0B FO 05 cA 10
i ‘ 0B88:F8 30 E7 38 £9 07 4a 85
ane aon meee 7 ee 0B90:15 AS 18 29 3F 85 18 18
Dx £6 -0 ee 1CONE a5 pone 0R98:60 07 09 OB OD OF 11 Ab
Dex ‘bY STORE LDA stone 95 FO 04 C9 8A DO
PL <0 JSR cour2 STA CH EO 06 90 02 A2 00
. Siti) cub sae am sto. fee ee 18 60 C9 88 FO 04
| ~s Be — bo o@ ok 10 FL AZ
. 2 oe fens 0BC0:06 CA 10 EC C9 ED DO EB
| CLIC.OK: m ‘JSR CROUT 0BC8:A9 04 85 2E 1A 85 59 4A
ipa £4 Prexy: BNE PRI 0BD0:85 5A 85 5B 20 DF UB Cé
STA TEMP ta cvt i 0BD8:59 E6 5A C6 2E DO FS AG
oe ae BIN a! gee 0BE0:59 At SA 18 CA DO OB 2¢
pa ame baat’ 0BE8:30 cO A6 53 90 00 90 00
aisous lowai ea 00 88 D0 EF 2c 30 cu
‘STA LONGEUR YA , 5A C6 5B DO E6 38 60
“0 sm souND ROR Inc ev 55 85 54 64 87 60 AD
DEC VOIX acs >0 2 ine ev €0 30 0c 10 F9 a9 FF
ae onal pene 87 AD 00 CO 10 05 38
BNE <0 0 TYA 3 10 CO 60 20 3A OA AA
, os os moe BG 78 07 OA OA 10 03
soump: TAY BEQ >4 30 0B Ad S2 BD 78 07
10k vorXI LDA (BASL).¥ cw £251 EU 24 87 30 Ob 0A 30
DY vorx2 BIT ICONE BEQ >5 AG 18 E4 54 BO D3 £4
S cue Be 31 amor 90 CF 18 60 20 5B FB
BNE 82 STA (BASI}.Y : Sh Pere0: S000. He
BIT SPxR me aaa taeatae CA 10 F4 60 AS IC 20
Dx vorx By? st2, ICME STA STRI6I FB Ad 1B 98 6A BO 04
ace #1 ‘era gc0s4 ox £9 55 CO C8 98 4A AB BL
m CC #2 ars ” 2D sTA1,X 24 51 10 04 29 3F 91
ne Se pac pa 64 51 av 54 CO 60 20
Hess. aa eae pon FD A9 A4 20 F6 FD AS
BIT SPER Soa 39 bogey 4c F6 FD AS 02 49 BO
Loy vorx2 oor: ; BF 60 20 5B FB 86 24
DEC LONGEUR ysR cour +5 10K £7 68 65 19 68 85 1A AO
ANE $1. oursec: 3 2DA STR3,x B1 19 20 5B FB C@ Bl
0 SBC LDA £sPC JSR COUT Ex ion asvacxchent 39
32 Pom's n° 33
pex JsR FINeLIC by? 255,12, 24 0CA8:FO 7E C9 FF DO 03 cB DO
art <s , Asc “VERIFY Boor FD DO OF c® 1 19
bIr ssvor zpa £0 bax BI719 20 3615p ‘cA
Beg PRS boy £934 ;
JSR MTAB tox £538 JSR ALR OEE Co Bei EO 07,
ion ae Saptiods Occe:c9 DE DO 0c 20 62 FC 20
sR cour : HOME 0cD0:62 Fc AS 2c 85 24 10 co
: JSR RSCUR £0 OcDa:c9 Al DO 05 20 62 FC DO
aa itis ~~ ome arore OCE0:BD C9 AS FO 06 C9 A3 DO
bare! Laiseae a OCEe:08 FE 25 FE 25 AS 25 10
TAX CMP £ESC ose
Fa ernd2 Sess pass OcrO:AA C9 FC FO 09 C9 FB FO
aces a cas tee Y F6 FD DO A7 20 84
PHA 2 cue eRTW carl: 0D00:0C 8D 34 0D A2 08 BD 33
BY? PHX BNE <0 tox £0 0D08:0D 20 F6 FD cA 10 F7 30
ats 2 JSR HOS TxA 0010:94 A2 07 BD 3c OD 20 FS
P MP CLIC.OK “0 STA LENGHT. X 10 F7 24 52 FO 08
STRI ASC cevird? “ toa cut ‘STA START, X
STRI ASC “COLATAC * ow £8 pex aye Jae Eo ED
pais i 2th 19 AA AS 1A 69 00
ow cis Dex 60 20 20 20 3a 65
STA cH BGE <0 7x LoNEDG 0098: 76 69 72 64 C7 CF cc Cl
on Free rales ee eae OD4U:D4 Cl C3 AO 85 24 86 44
ma =e a 0D48:8A 60 20 44 0D 20 53 OD
as cme 441 LOA 4253 0D50:4c 84 FE 64 45 85 44 20
amie mares = 0058:00 AS 44 38 £9 64 85 44
JSR DEC2SS cM £45 BNE CATH 0D60:A5 45 £9 00 85 45 90 03
SMP NORMAL BGE <1 : 0D68:C8 DO EE AS 44 69 64 85
Sf eee BLT <3 So ee 0070:44 20 87 On AO 00 AS 44
YD STZ, DEC : is
eo Gn tty 0D78:38 £9 OA 90 05 85 44 ca
eestss ose eae 5 0080:80 £6 20 87 0D Ad 44 98
xor'eo Byr 128 carw: 0088:29 OF 09 BO 4c F6 FD 20
“0 1px PDRC BY? 15,308.16 JSR ROCAT 0090:45 OA 01 01 39 03 17 4c
SEC nx 616 BYT STZ, WRTOK 0098:2A 0B 20 8F 0D 4c 91 0c
popor! Se oecae seas 0DA0:20 8F OD 4c 79 09 20 45
piece e +e paabectond ODA8:0A 02 0B 26 08 10 20 91
aa a0 es jane pes <6 0DB0:0C 09 16 FD OE 20 Fc FF
‘STA POECSL “4 DEC WRTOK 0DB9:08 29 20 6F 6B 20 00 4c
sce >1 ASC ‘drive select * ve ourT 00c0:91 0c AZ 0D A9 30 20 00
Ny BY 299, 11,22 : 0pc8:0c AS 00 AO 34 A2 9B 20
Be <0. See ee eS 5 CATEECSS " 0DD0:28 15 20 2A 0B 20 12 Oc
ot oped pe Ed oe 0pD8:90 11 C9 9B DO 03 4c AO
posters 3 Saal ncerueke 9DE0:0D C9 8D DO FO 20 aF OD
JSR OUT2 DA DRIVE STA SECTEUR ODE#:4c C8 OB AS 1C C9 08 90
wy £0 ast ACESS: OF BO £0 C9 OF DO
EDA POBC ADC £9 wor £0 1R C9 29 90 DF C9
7 sae rasta aa DD 90 £0 20 45 0A
pale pocket: poaodhartaly 0E08:80 OF 1E 08 10 Az 10 Ad
om cone \ ane 0E10:2 20 00 0c 20 91 oc 08
ae oe camer P OFIA:18 64 72 69 76 65 20 73
bes <2 Bcc >4 ERRDOS: 0620:65 6¢ 65 63 74 FF OD 16
3 JSR our2 cme eKmN JSR ALAR 0828:A0 C4 v2 C9 D6 C5 AO CE
‘DY PDEC =e pe 0£30:D5 CD C2 C5 D2 AO B1 AO
ware rey ws aE cane aaa iv 0£38:DE AO C4 D2 C9 D6 C5 AO
peep a he cee a eae 0540:CE D5 cD C2 CS D2 20 B2
ae cor sue >3 0E48:A0 00 AS 02 OA 69 09 Az
; 42 Me QUIT OESO:0F 20 45 0c 20 21 08 20
now: % ‘LDA DRIVE 0558:12 0c 90 19 C9 8D DO 06
JSR WIND OR £3 : 0860:20 8F 0D 4¢ c9 OB c9 9B
ee seas papal ee 0568:D0 03 4c AO Ob AS 02 49
Me SCR 5 eas Si 0E70:03 85 02 10 9F AS 18 C9
: “4 LDA sryte JSR PRINT 0£78:5E FO EF A6 1C £0 0B FO
ENTER: oe + Byr 13,27 0£80:04 £0 OD D0 D2 a6 1B EO
sn HoMD BBQ <2 ASC ‘write’ 0868:16 90 Cc EO 26 BO cB cS
panirnee GQ one 0£90:33 90 CD 29 3F 85 18 DU
a 2 as ; a le 0E98:D4 20 A6 OD 09 OF 20 62
acne ease < nee OFRO:6F 6F 74 20 64 69 73 6R
he aire Cx cis pga OEAG:FF OC 18 D6 C5 D2 C9 co
z BNE <0 Dx £28 0EBO:D9 AO C2 CF CF D4 00 20
ALAR: : JSR TAB 0EB8:C2 OD 20 58 FC A9 00 AB
JSR WIND 1s 20x cH TYA OECO:A2 FF 20 28 15 éc 00 cé
BS oweieae puidiatd : ere 05C8:A2 00 8A 90 00 92 90 00
‘JSR PRINT cex £38 ae eas 0&D0:93 CA DU F7 CA 86 SE DU
BYT 9.22 Rar <0 Ryr 13,27 0ED@:0A AS FF 85 SF DO 04 a9
RYT 253,14, 15 cu +2 ASC "READ" OREO: FF 85 5C 20 RE OF 64 7¢
BY? 252 BLT <1 Bax 05E8:20 D7 11 20 1c 14 DO FD
BY? 255,14,42 AND £636 7c 4¢ AO OD AD 01 80
asc + ok ¢ STA STYLE OA £10
prey pcnges bigs 04 AD 02 80 85 05 AO
Me PRINT ; Ey biex 0F00:00 98 20 BS B7 BO 01 60
; poor: gan <0 0F09220 AG OD 09 OE 20 64 69
Aare: sk ALAR Loy SECTEUR 0F10:73 6B 20 65 72 72 6F 72
Lux £13 BYT 3,14 JSR <0 13 D4 D2 Cl C3 cB
DA £48 ASC * boot disk’ , PSE Fe
1
Pom's n° 33
33
JSR ALRM LDA BUFFER+! ‘STA SECTEUR OFZ8:D2 BA FE C3 CD C4 AU AO
CUEe ae seit LOA BOEPER2 0F30:A0 BA FE 00 AS OC 4A FO
eccde? aoe pecs md 0F38:1A 20 91 Oc OD 1R 77 72
ey Byr 9,14 pis OF40:69 74 65 00 90 17 EE 25
BYT 9,14 ASC ' dos error’ BEQ >3 OF4d8:AS 25 AZ IC 20 8B OC 98
ASC | urite catalog’ BYT 255.12,21 ae +? 0F50:4¢ DA FD 20 91 OC OD 1B
BY? 255, 12,24 ASC "NOT A DOS 3.3 BED >3 OFS8:02 C5 Cl C4 00 A9 OA 85
See Mme eT mo 2 ane OF60:25 Ad 04 20 46 OF Ad 05
7 ane Si DASATT. OF64:20 46 OF 20 C2 OD 4c 79
JSR ALAM IMP INIT JSR ACESS 0F70:09 20 A6 OD 09 OE 20 77
: ‘ pa rs1+12 OF78:72 69 74 65 20 63 61 74
USK PRINT e00003: STA TRACK 67 FF 0c 18 cl
‘BYT 9,21 SYS S36, FREE 2OR TSL+19 D9 CF DS AO D3
ASC "ARITING” DYT sre,eReze STA SECTEUR
BYT 251 BYT STé,£1LENBE ‘JSR ACESS 00 20:c2 0D 20
z BY? STZ, DELETED : 15 D7 D2 C9 D4
EDA £912 : 1px £3 OFA0:C9 CE C7 FB AS 11 85 04
STA TRACK Lby £g8c LDA TEMP! OFA8:8D 01 80 A9 10 85 05 3A
STA BUFFER? DESCR LDA BUFFERSS3E-1, ¥ oer OFBO:8D 02 80 A9 FF 85 85 6
TOA £16 rst a NXTTRACK BGE 22 OFBa:0C A2 OB C6 05 CE 02 80
—— pecieey poles OFCO:ES 85 AS 95 20 46 11 BO
eta bobwenss ‘PRP tox £2 OFC8:17 AO 00 BI 19 9D 00 80
LDA £255 INC FREE “2 IDA TEMPOH OFDO:E8 FO 07 C8 CO 23 90 F3
‘STA FILENON ‘BNE OTH ASL OFD8:80 £6 20 FF OF 4C B9 OF
INC om eee a OFEO:A9 00 9D 00 80 EG DO FA
i aaceae mama nae sete OFFO:0C 09 16 D2 C5 Cl C4 C9
DEC BUFFER+2 BNE DESCR ‘SPA Lewoute, ¥ OFF:CE C7 A0 FBA9 00 8D 00
2 INC FILENOM : DEX 1000:81 A9 82 8D O1 81 A2 02
LDA FILENOM 2DA £293 Ex 1008:8D FE 80 18 69 23 90 00
fete : SENT EERM, pie 1010:81 BD FF 80 69 00 9p 01
: *0 JSR CATSECT STA START#, ¥ eonntt dred oe e x
wor £0 Lox £11 LDA T51-1,X
2 ‘LDA (PTRI.Y 4i ‘LDA BUFFER, X STA START, Y 1026:11 85 04 64 05 Ad 01 85
‘STA BUFFER, X ‘BEQ >3 : 1030:0C AI 80 85 OF 20 FF UE
Tx Bei NODEL 3 INC TEMPO 1038:AD 01 80 C9 11 FO 2B 20
BEQ >3 INC DELETED LDA /BUFFER 09 OF 20 64 6F 73
my : ‘STA DATA
cPy £23 ‘NODEL INC FILENOM INC TEMPO 2048220 Tae AEE Te Oe
pais paki sespovah pao pease 1050:15 CE CF D4 AO Cl AD C4
Bes <i DA FILEWoN ’ AO B3 AE B3 AO C4
aR ADRETL apnere: eR 00 20 ©? On 4c
‘JSR ACESS ior £0 ‘THA 1068:79 09 G4 82 64 83 64 80
oMP <0 sl son ueren, 8 naicats 1070:64 81 AO 8C BY 37 80 FO
Py oats poe 1078:0D OA 90 FB 08 E6 82 DO
eae pales te siege 1080:02 E6 83 26 D0 F3 88 DD
x IN ORA ADRTBLY1,Y 1089:E8 A9 FF 85 85 20 FS OE
BNE <5 cpy £35 ‘BEQ >041 1090:A2 OB BD 00 80 FO 1E 10
JSR ACESS ace <2 ‘DA ADRTBL, ¥ 1098:02 E6 81 E6 85 E6 80 AS
awe oars Bes <2 a 10A0:85 20 4£ 11 AO 00 BD 00
z 4, ss 10A8:80 91 19 E8 FO DF cB CO
sae oo J mie oe 10B0:23 90 F3 BO DD AS 85 1A
Byr 9,22 ASL “0 arr $38 10B8:0A AB 18 AS 80 E5 81 1A
‘ASC "READING ~ Tay ars 100:85 7F A9 00 99 00 81 99
BIT 231 * 3 10ce:01 OS 24 SE 30 O1
: ce asian 85 57 AS 56 20
‘LDA £ADRSTR LOA FILENBE STA 30085 Reactas ai aa
‘STA ADRTBL SBC DELETED 20a °0
‘LDA /ADRSTK ‘BYT INA ‘STA LON22+1 88 10 Fe C9 FF
‘STA ADRTBL+2 STA FILEOK SYT INA (04 AD 01 80 AS
LOX £2 : ‘STA LGNZZ+28 10F0:05 AD 02 80 20 07 14 85
; LDA £0 a 10F8:30 C9 D4 FO 46 C9 BE FO
af EDA ADRIBL-2,% ee AOR TERY: eee 1100:42 A9 94 85 09 20 FF OE
es piabesioti ald et Pe ass 1108:AD OC 94 &5 04 AD OD 94
‘STA ADRTBL,X BIT LGNFLG STA LGN22+1,X pale SCR ON AS O38 ae
LOA ADRTBL 1,% AMT ROTST, BYT INA C9 BO 06 C9 C2 FO
auc £0 “0 ars ‘STA scose 01 AS 57 0A AB BD
STA ADRTBL+1,X ie ‘STA LGN22+1,X 99 01 92 AD FF 93
Tee = = 1130:99 00 92 CA CA 30 0c BD
pak edistbicansts = Ss 1138:00 94 99 01 93 BO FF 93
arn pain 2 asm 1140:99 00 93 E6 57 A9 80 85
‘ALO ‘USR ADREIL eas 1148:09 £6 56 DO AA BA OA AB
‘STA ADRTBL, X ‘BCS <0 LOX FILENUM 1150:B9 00 81 19 01 81 FO Oc
STA ADRTBL+1,X : DY FILENBE 1158:39 81 85 19 B9 OL 81
’ cciolck ee 18 24 38 60 6D 55
LDA £811 “0 IDA (PTR),¥ sa cueore ae aOS1 07-18 BD
TRACK STA BUFFER, ¥
Se ire bacrean oe oe A2 1A a9 S6 8D S5
2pa £3 ‘BPL <0 ™ 1178:CO 90 51 07 1A 8p 54 CO
er, oD : ZDA £22 1180:9D 51 07 CA DO EE 8D 51
LDA /DUEFER cue £255 JSR TAB 1188:07 A9 34 AB BS Ad BO 86
ipaitebenessaie ae0>4 aiid 1190:20 A3 11 58 £8 E8 AD 16
neni peace pice 1198:20 88 OC A SC 20 FE FD
f Sass 11A0:4C 2A 0B 8E BO 11 8C BE
34 Pom's n° 33
compure:
al DA
PRICAT:
JSR
STA
ay
asc
BYT
asc
cATsK ASC
avr
BRK
PRAT":
srr
per
uA
STA
LDA
PHA
LDA
STA
10x
JSR
ra
PLA
‘STA
1 san
ayr
asc
srr
ASC
BYT
asc
BYT
asc
BRK
10x
*0
BNE
TSR
‘IDA
sR
LDA
2px
BNE
JSR
JSR
SEER
JSR
DA
ANE
sr
Tax
IDA
sR
use
vse
BYT
asc
BYT
3,2
253,18. '¢"
* catalog disk *
253,18,
DELELG
a1
ruubun
‘FILENBE
233, 6, SPC
“DELETED: *
253,5,5°C
“PREE:
253, 6, SPC
“NOMBER:
FREESI
PDEC#
£38
1s
DECs12
PILEOK
parcar*
INVERSE
£2
a
ASCENS
ALaKe
314
* catalog’
255, 12,22
‘ASC "NO FILS OW DISK”
+0
“0
*t
0
PRIFILE:
0
eed
USK ALK
MP INIT
BIT MOVING
BPL >0
ASC '< moving >'
LDA £20
JSR VTAB
BDA £52
Dx FILENOM
Im
JSR LS"
JSR ASCENS
LDA £5
JSR VIAB
LDA FILENOM
SEC
sac £8
PL >0
LDA £0
USK AUKELL
BCS >3
JSR PRIEILE
INK
INC cv
‘LDA cv
cw £19
BCC <1
STX STORESI
IDA cv
IDK £4
JSR TAB
Loy £0
LDA (PTH),
BEL >0
BIT DELFLG
‘BMI >8
MP >
2
“a
+s
“6
7
ADRPRT:
BPL
wy
LDA
my
cry
ma
arr
BPE
Da
aR
sir
BIT
BPL
sR
px
ars
EDA
Beg
‘IDR
IDX
BIT
BEQ
<<
£2
(PTR).
22
23
spc
cour
FILerves
e921
(eTk), ¥
DECZ29
oursPc
“3
(PTR), ¥
spc
£880
27
£32
<5
(PTR), ¥
REVERT+3
STORES!
£13
TEMP
START, Y
START+1, ¥
20
"”
AL
START#1.Y
START. Y
LENGHT,
>t
~
AL
LENGHT+1, ¥
LENGHT, Y
TEMP
22
11A8:11 20 93 EB
11B0:00 20 93 EB
1188:82 £9 20 63
1100;93 3 20 80
1108:20 23 EC 20
11D0:E8 20 0c £1
11D8:84 0c 9D F4
21£0:03 02 SE FD
11E8:61 74 61 6C
11F0:69 73 6B 20
11F8:5¢ 00 24 Sc
1200:85 80 AS 61
420881 17 AZ Ud
1210:20 8D 81 17
1218:91
cs C4
D2 5
1238:20 CE DS co
1240:00 A6 7F DO
1248:A9 06 20 4A
1250:81 DO 03 20
1258:0D AS 83 85
1260:82 20 44 oD
1268:7F D0 32 20
1270:34 20 4A 0D
1278:A6 OD 09 OE
1280:61 6C 6F 67
1268:CF AO C6 co
1290:cE AO C4 co
1298:¢2 OD 4c 79
12A0:10 20 91 oc
12A9:6D 6F 76 69
12B0:00 A9 14 20
12B8:A6 85 E8 20
12C0:11 A9 05 20
1208:38 £9 08 10
1200:8A C5 85 DO
1208:4E 11 BO 0c
25
22
20
20
1300:30 03 4c 21
1308:86 2D AS 25
13
1330:F7 30 17 a0
1338:A2 04 24 5E
1340:FC 4c 4A 13
1348:10 FA AO 02
1350:04 A9 AA DO
1358:F6 FD 68 20
1360:0C AO 21 BL
1368:20 7F 0c AO
1370:A0 BO 14 09
10 0A 24
49 80 DO
BO 02 69
2D 20 89
93 19 OL
13¢8:C1 20 77 0c
13D0:00 93 20 41
13D8:F6 ED 64 2B
13E0:01 92 FO 14
13£8:0C B9 01 92
13F0:41 F9 24 2B
13F9:20 7F 0C CA
1400:C9 C1 C2 D3
1408:7F AO 07 0A
1410:D0 FA B9 FF
30 0B
18 a6
20
20
EB
EB
63
a6
1
12
oF
20
30
48
20
68
ce
Ao
BA
cs
©
03
op
80
45
20
80
20
20
FP
ec
D3
09
03
6E
5B
4a
5B
02
oz
20
co
ao
ag
2
oB
a2
00
oc
C6
re
cc
10
20
Bl
02
07
19
03
80
51
oz
co
pa
ao
10
13
4a
or
93
Bg
Fo
Bo
ag
BE
FO
DO
b2
oA
13
20
ac
63
80
ag
20
EB
al
20
Sc
67
20
oc
24
19
67
FB
oD
FB
ag
C6
08
13
13
36
FB
4c
04
e4
30
2E
FD
cs
06
7a
19
ag
14
20
B1
90
30
29
BI
20
09
a2
oc
86
FO
o1
ag
00
cc
00
08
BE
BO
60
EB AS
EB 20
00 20
69 EA
20 80
60 20
9A 0D
20 63
20 64
58
58
23
21
SRRSSKSBERKRSS
2
&
2 OB
86 2c
28 Bl
0S C6
a2 04
ca 10
c4 ao
2010
Oc cA
48 10
0 20
53 0D
19 C9
10 24
7F cy
F6 ED
19 24
7e 0c
C6 2c
34 24
25 Bg
93 BE
ac 20
92 19
2077
92 20
a2 08
60 D4
ce 29
03 88
20 9D
oc BO
04, 90
Pom's n° 33
35
1x
on JSR
DEX
BNE
2 RIS
FILECDE Asc
FILETYPE:
AND
wor
ash
-o Ash
acs
DEY
BNE
31 LDA
ars
carro:
“9 DA
BRRESESE RQEQES
4
2
7
i
BRERRRERER FEE
SRESS
§
q
RES & ERaE
£8
ourspc
a
wrTARsR?L”
cee
“7
1
<0
FILECOE, ¥
pRtcar*
MousEPRT
INPUT
ot
sre
“4
8
£20
8
cH
£58
cATTCH
STYLE
CATTCH
£540
CATCH
255
TEMP+1
28
sco
war
‘0
cary
3
w
28
'P
caTOW
vw
cATTCH
cu
DRA
DE
Showing the first 100000 of 231540 characters.