Text content (OCR)
tremplin
micro
| ° va ; :
m :
cod f
<
=
Tremplin
Micro 11
Un événement attendu,
mais néanmoins imprévu,
a quelque peu perturbé
la pagination de ce numéro...
mais la naissance de l'APPLE //GS
justitie bien un tel remue-ménage !
L'APPLE 1/65
Lisez ci-contre (page |)
les premiéres impressions
de notre ami NESTOR.
Les caractéristiques
techniques de la béte
se trouvent page 2.
A partir de la page 4,
Marcel COTTINI vous
invite a faire connaissance
avec le 65C816,
microprocesseur
équipant l’Apple //GS.
SOMMAIRE
Editorial (Guy-Hachette) ..........-..- 0.0 cece eens 1
L'Apple IGS (caractéristiques techniques) ........ 2
Lavenir est 4 vous avec I’Apple IGS
* Le microprocesseur 65C816 4
* Les instructions du 65€816 9
Pourrez-vous programmer avec le GS (Nestor)?... 8
Directory Utility (Marcel COTTINI) ... 18
Anagrammes (Clément RENARD) ... - oe at
Recherche spécialisée (Clément RENARD) ......... 22
Saisie d'un fichier binaire (Nestor) ........-.-...+- 24
BASIC DIDACTIQUE
En toutes lettres (Jean GOUTELLE) ..............-. 25
Protection de HGR ou HGR2 ............-6-0200 505 29
Décalage (Nestor) ....... 31
Catalogue spécial (GEO) a «oy 298
INTERESSANT UTILITAIRE
Glossaire (Maurice CHAVELLI) .... 35
Enléve-Dos (Marcel COTTINI) .........-.--050s eee 43
SUITE DU TRILM
Tri rapide en langage machine (Nestor) ..........- 47
Complément au numéro précédent ...........---- 50
Pirates au coeur pur (interview de Madeleine HODE,
auteur de GRIBOUILLE) ............... cece eee eee 51
GRIBOUILLE (essai de logiciel) .. . 53
Di CO) PORNO 6:55:60 secre 54
Les solutions d'Yvan KOENIG 56
L'Apple /Ic et l'imprimante 57
DOSMGVER.80 et PROMGVER.80 (Yvan KOENIG) .... 59
SLOADC (fiche 11), Yvan KOENIG ............-.4 61
TREMPLIN MICRO N°12
paraitra le 3 janvier 1987
02
GUY-HACHETTE
FTURIE MID)
MUNGO
a
vous
avez dit
L
"COMPATIBLE" ?
APPLE //GS est né. Probablement avant terme, mais qui pourrait s‘en plaindre ? C'est
toujours un APPLE //, mais ce nest plus le 6502 (ou son successeur, le 65C02). La greffe
' du cerveau est réussie et nous allons pouvoir disposer, dans quelques semaines, d'une
machine capable de rivaliser avec les plus récents des ordinateurs personnels. Ayant eu le plai-
sir d'essayer l'un des premiers APPLE //GS, je n‘ai pas voulu priver plus longtemps les lecteurs
de TREMPLIN MICRO d'informations précises et objectives sur la béte.
Quand on est un incondi-
tionnel de |'Apple II... ce
qui est mon cas, cette objectivité reste bien
entendu sujette 4 caution. Le préciser reléve de la
franchise la plus élémentaire. Voila qui est fait !
Alors ce premier contact ? Sympa. Et méme mieux
que cela. Rien 4 monter. Ni vis ni écrou... seule-
ment des emballages 4 ouvrir et 4 vider.
!l semble impossible de commettre une erreur lors
des connections. Vous branchez ov vous pouvez le
faire... et c'est tout ! C'est facile sans doc et cela
doit |'étre davantage avec la documentation qui
accompagnera bientét la machine. Les détrom-
peurs existent et je les ai rencontrés !
TREMPLIN MICRO
Cété esthétique, excellente impression : le GS est
simple, net, agréable 4 regarder. L’écran couleur ne
se révéle pas trop envahissant. L'ensemble parait plus
petit que celui de l'ancien Apple... mais occupe pour-
tant une place aussi importante sur le bureau.
Le clavier est bien proportionné. II rappelle celui de
‘Apple lc, mais il m’a semblé plus agréable. II
serait néanmoins surprenant qu'il fasse |'unani-
mité, notamment pour une utilisation intensive.
Heureusement, on apprécie d'emblée la présence de son
pavé numérique. Les gauchers seront ravis en constatant
qu'Apple ne les a pas oubliés (la souris se connecte indif-
féremment a droite ou 4 gauche). (Suite page I!)
=~
APPLE /I¢S
Janus-Apple Lo firme de Cupertino aurait pu
oublier ses quatre millions de
clients et les abandonner 4 leur triste sort, avec leurs
dizaines (ou centaines) de logiciels. C’est une démar-
che courante : on efface tout et on recommence. Nous
lui saurons gré d'avoir adopté une autre politique,
sans doute plus codteuse, mais dont les possesseurs
de lic et Ile se féliciteront. L'APPLE /IGS est bistan-
dard. C'est d’abord un Apple //... grace a la présence
— 6 combien efficace ! — d'un seul et unique cir-
cuit (ou chip !) : le MEGA Il, capable d’émuler la
machine que vous et moi connaissons bien.
Le MEGA II sait tout faire : les fonctions de |'Apple //
et aussi des taches qui, dans votre Apple actuel, sont
généralement confiées a diverses cartes.
JANUS-APPLE vous offre donc, sans utiliser aucun des
slots d’extension, les 80 colonnes étendues, le contré-
leur 3 pouces 1/2 mais aussi le contréleur 5 pouces
1/4, le port souris, l'extension de mémoire, la sortie
super série, un accélérateur 2,8 Mhz (mais on peut
tourner 4 1 Mhz).
Compatibilité On comprendra qu'il nous soit
impossible, aprés un essai de
deux semaines, d’affirmer que toutes les anciennes
cartes sont vraiment compatibles... toutefois, les
exceptions devraient se révéler rares... et il en ira de
méme pour les périphériques. Personnellement, j'ai
connecté sans probléme le lecteur 5 pouces 1/4 de
mon lic sur le second lecteur 3 pouces 1/2 de I’Apple
1IGS. Non seulement cette configuration tourne nor-
malement, mais elle démarre sous ProDOS ou DOS
3.3. suivant la disquette placée dans le lecteur 5 pou-
ces 1/4, En fait, on peut affirmer sans risque d’erreur
que, 4 quelques exceptions et détails prés, tout ce qui
fonctionne sur un Apple Ile ou /ic s‘accommodera de
la compatibilité de |'Apple //GS... si les auteurs des
programmes ont bien respecté les points d’entrées
imposés par Apple aux développeurs.
Je me suis par exemple amusé 4 tester les disquettes
succcessescsnseesesseseesencoer:
"
de TREMPLIN MICRO sans rencontrer de difficultés
insurmontables.
Janus-G§ Mais, tel Janus et ses deux visages,
APPLE JIGS est aussi une machine
résolument tournée vers l'avenir. II suffit, pour s’en
convaincre, de lire la fiche technique que nous
publions plus loin (page 2).
Si les sept slots d'extension nous laissent actuelle-
ment sur notre faim (mais libre & nous de les occuper
avec nos "vieilles” cartes !), ils n’en sont pas moins
prometteurs. Que de possibilités en vue ! Quant au
| slot spécial "16 bits", s'il parait essentiellement
réservé aux extensions de mémoire, on peut raison-
nablement penser que d’aucuns lui trouveront
d'autres usages.
C'est évidemment l'un des points
onew forts de la machine. En fait, la ROM
de 128 K contient non seulement le Basic Applesoft
(celui-la, je l'aurais aimé plus musclé !), mais une
Boite 4 outils graphiques, que l'on dit inspirée du
QuickDraw de Macintosh (moi, le MAC, je ne le con-
nais que de nom !). Sera-t-il facile, 4 partir de ces
| outils essentiels, de créer et gérer les fenétres et
menus déroulants ? Je le souhaite et attend la docu-
mentation pour me faire une opinion. Je crois savoir
qu'un bouquin de Nicole Bréaud-Pouliquen (sur le GS)
GUY-HACHETTE
oe
a +>
24244434445 4411404,4,
PP ES S88
—
we
ceusesseueeeeeescneneseseeesersessseeennsaseecrsses
est en cours d'impression au PSI. Il répondra certaine-
ment @ quelques-unes de mes préoccupations. Sans
doute vous posez-vous la question de savoir si le GS est
compatible avec le MAC... et s'il en lit les disquettes ?
Dans |'état actuel de mes connaissances, je vous assure
que la réponse est négative. D’ailleurs pourquoi un
Apple JIGS irait-il s'acoquiner avec un MAC... incapable
de nous offrir des images en couleur ? A moins d’étre un
inconditionnel de MAC (ca existe aussi), on est bien
obligé de reconnaitre que le GSPaint de Version Soft a
tout de méme une autre allure que le noir et blanc du
68000. Ah ! quand viendra OPEN MAC, couleurs... et ses
slots d'extension, nous en reparlerons | Pour I’heure,
place au GS.
Le SOM Je ne suis pas un dingue de la sono, mais
j'aime bien la bonne musique et je suis
méme un peu musicien sur les bords. Il est probable que
je ferai mes débuts de compositeur sur mon Apple JIGS.
¢a promet pour I’entourage ! D'autres que moi y pensent
déja et, lors du récent SICOB, j‘ai “espionné” un groupe
de jeunes qui se voyaient déja avec leur GS, au coeur
d'une animation od, d’aprés ce que j'ai pu comprendre,
l'aléatoire primerait sur la logique.
Les logiciels Pos nombreux si I’on s'en tient au
seul GS. Personnellement, je n’ai
testé que GSPaint, mais GSWrite (également de Ver-
sion Soft) sera livré avec la machine... et sa finition ne
devrait donc point tarder. D'autres développeurs, en
France et a |’étranger, travaillent actuellement sur des
produits superbes, destinés au dernier-né de chez Apple.
Nous en parlerons au fur et & mesure de leur apparition
sur le marché... dans la mesure ov nous les estimerons
intéressants ! ORCA/M (voir notre dernier numéro) est
déjé prévu pour travailler sur I'Apple //GS, mais il est
destiné & des programmeurs avertis, capables de com-
prendre une documentation en anglais. Il convient de
noter que la plupart des grands classiques fonctionne-
ront en émulation... & quelques rares exceptions prés
(gageons que les fabricants auront a caeur de corriger les
éventuelles imperfections).
Un conseil : exigez dés maintenant une disquette 3 pou-
ces 1/2 de tous les logiciels que vous déciderez de vous
offrir, et cela dés que leur prix dépasse 500 F. C'est une
‘assurance pour l'avenir.
Périphériques On I'a vu, le GS accepte les
nouveaux lecteurs 3 pouces
1/2, mais reconnait les anciens. Vous n’étes donc
pas obligé, si vous possédez déja I'Unidisk, de vous
offrir une configuration compléte. Je ne vous
apprendrai rien en précisant que les 800 K sont
chainables... y compris avec un 5 pouces 1/4 (voir
plus haut). Vous pouvez aussi glisser la carte con-
tréleur de votre Ile dans le GS... et y connecter _
vos lecteurs actuels. Ce ne sera pas pour autant le
Salon du Bricolage ! Et puis, on aime ca... chez les
applemaniaques, alors !...
TREMPLIN MICRO
Lautre compatibilité Vous me
Imprimante Votre IMAGEWRITER (I ou Il) fera
Vaffaire, avec une préférence
pour la Il... et ses caractéres souris. Par la suite,
vous éprouverez peut étre l'envie de vous connec-
ter — en passant par quelque réseau... ou directe-
ment si vous avez les moyens de vous I'offrir vous-
méme — 4 une Laser Writer. Cela supposera que
vous disposerez alors d'un logiciel comme PageMa-
ker (dont on distribue actuellement la version 1.2
francaise... mais pour MAC). Pourquoi pas ? II est
bien permis de réver, non ?
Moi, je ne vous cacherai pas que, lorsqu’un fabri-
cant me parle de son logiciel, je lui pose illico la
question de confiance :
— Et il fonctionne aussi sur le GS ?
voyez
venir? Il va étre
question d'IBM. Mais d’abord, que signifie la com-
patibilité avec IBM ? Que l'on pourra utiliser, sur
Apple //GSdes logiciels prévus pour IIBM PC ? En
connaissez-vous beaucoup qui n‘ont pas leur équi-
valent sur Apple ? Ou qui ne I'auront pas, au cours
des prochains mois sur APPLE /IGS ? D’ailleurs, le
vrai compatible n'existe pas. C'est un leurre.
Pourrez-vous lire, sur Apple /IGS, des fichiers
écrits sur un IBM PC ? C'est déja possible... tant il
est vrai que tout est réalisable, quand il ne s’agit
que de transmettre ou recevoir des données.
Evidemment, pour exécuter un programme, c'est
une autre histoire !
On sait pourtant que, par cartes "coprocesseurs”
interposées, l'Apple //GS deviendra compatible
avec CP/M (c'est la moindre des politesses) et avec
MS/DOS (d’o sort-il, celui-la ?).
Moi, stoique, fidéle 4 mon Apple /le, mais tout dis-
posé 4 le mettre dans un coin et 4 le remplacer par
le GS, j'attends ma DOC, mon langage machine,
mes adresses (et notamment celles du moniteur...
car j‘en ai semble-t-i] égaré quelques-unes)... et
une sceur de Ia belle béte que je viens de toucher...
mais que je dois hélas restituer au service de
Presse d'Apple ! NESTOR
sceeeeeeeeneeeseenesescssoseseesensorssconee
m
Une révolution
dans le domaine
de la saisie
des données :
la reconnaissance
de l’écriture -——
PERSONAL WRITER
TOSH, avec PERSONAL WRITER — un nom anglais pour désigner un logiciel bien fran-
iQ) UE sera |'informatique de 1990 ? Nous en avons aujourd'hui un avant-godt, sur MACIN-
¢ais, mais que ses promoteurs espérent diffuser dans le monde entier. En fait, PERSO-
NAL WRITER est le produit numéro un d'une société créée en 1985 : ANATEX S.A. Une dizaine
de personnes — dont sept ingénieurs aussi jeunes qu’enthousiastes — y travaillent sous la
direction du fondateur : Xavier Maury. Mais revenons a PERSONAL WRITER !
Objet Déchiffrer les caractéres manuscrits et
les transformer directement en texte
dactylographié, sans nulle intervention du clavier.
Lesystéme |! se compose d'une tablette a
digitaliser, d'un stylo électroni-
que et d'un logiciel de reconnaissance des caracté-
res. Actuellement, PERSONAL WRITER n’est utilisa-
ble que sur Macintosh, mais il sera progressive-
ment adapté 4 d'autres machines (IBM PC... et nen
doutons pas... l'Apple //GS).
Apprentissage Pendant la phase dite
d‘apprentissage, la machine
se contente de reconnaitre |'écriture de |'usager,
mais les variations d'écriture continueront ensuite
d'étre enregistrées lors de chaque utilisation. Plus
on se sert de PERSONAL WRITER et plus il devient
intelligent et performant !
Iv
Ecriture naturelle Avec ce systéme, on écrit
normalement, sur la ta-
blette, sans contrainte particuliére. On peut rayer un
mot, en ajouter un autre, intercaler une phrase ou
changer Ia taille d'une lettre. L'écran restitue fidéle-
ment toutes les modifications apportées au texte.
Etlesfautes ? Mais oui, grace 4 un diction-
naire intégré, PERSONAL WRI-
TER est également capable de détecter et donc de
corriger les fautes d’orthographe (on prévoit d’ail-
leurs des dictionnaires spécialisés). Evidemment,
pour I'instant du moins, il n'est question que de cor-
riger les mots... et non la syntaxe, mais tous les
espoirs sont permis !
Prix Commercialisation prévue au début de
l'année prochaine. Le prix public se situera
entre 14000 et 18000 F (tablette & digitaliser, stylo
électronique, logiciel et dictionnaire de 200000 mots).
Clément RENARD.
GUY-HACHETTE
ee ee
Apple et ProDOS (noms et
logos) sont des marques dépo-
sées d’Apple Computer, Inc.
BIMESTRIEL
Le numéro : 33 F
Abonnement d'un an 190 F
(6 numéros)
EDITIONS JIBENA
Direction-Rédaction :
Editions JIBENA
Guy-HACHETTE
La Petite Motte — Senillé
86100 CHATELLERAULT.
Téléphone :
49-93-66-66
PUBLICITE :
Raymond JULLIEN
(1) 45.75.41.81
Commission paritaire :
Demande en cours.
Les revues qui choisissent d’étre
réellement au service du Lecteur,
en ne l'obligeant pos & glaner,
dons plusieurs magazines, les
fenseignements concernant sa
mochine, ne bénéficient pas du
numéro de Commission Poritaire,
et pas davontage des tarifs pos-
taux réduits.
TREMPLIN MICRO — Bimestriel
— C'est une publication des Edi-
tions JIBENA, 4, rue de la Cour-
des-Noves, 75020 PARIS — S.A.
ou copital de 3600000F —
Imprimé par CITE-PRESS/PARIS
— Dépét légal & la date de
parution — Directeur de la
Publication: — Guy-Clément
COGNE — Diffusion N.M.P.P.
L'APPLE // GS
Votre ordinateur personnel de demain ?
OUS |’attendions tous. On en avait beaucoup parlé, ici et 1a,
mais surtout dans les revues d'informatique. Jusqu’au 15 sep-
tembre — un peu plus tét pour quelques rares privilégiés — on
ignorait quel serait exactement son nom de baptéme. I! en va
ainsi pour la plupart des nouveaux-nés.
indmaae
Ce sera donc un GS: G pour le graphisme et $ pour un son qui a laissé babas
bien des journalistes (les Amiga et autres Atari sont de nouveau 4 la traine).
Un vrai synthétiseur 16 voix (ou instruments), comme sur les appareils réser-
vés aux professionnels. Sans doute en déduisez-vous que, prochainement, on
utilisera le GS pour commander des animations avec paroles et musique ?
Vous avez sdrement raison. Reproduire la voix humaine ne pose pas de pro-
bléme particulier 4 |'Apple // GS. On va bien s‘amuser !
Je ne vous spereodral rien en ajoutant que le GS doit beaucoup — et notam-
ment sa rapidité d'exécution — au 65C816, un microprocesseur 16 bits dont
vous découvrirez rapidement les nombreuses et immenses ressources.
J'avoue avoir été conquis, et d'emblée, par la démonstration que j'ai regardée
et écoutée. Evidemment, le graphisme ne présente pas encore la qualité photo
{telle qu'on la congoit dans une revue comme CHASSEUR D'IMAGES), mais il
s'en rapproche un peu plus, notamment quand il utilise la palette de couleurs
avec ses 40% nuances.
Mais que deviennent votre vieil Apple //e et sa montagne de logiciels ?
Rassurez-vous, le GS saura exécuter la plupart des programmes qui lui
étaient destinés, mais environ trois fois plus vite. Il est probable que vos routi-
nes personnelles figureront au nombre des merveilles réellement compati-
bles. Mais il y a mieux : dans quelques mois (sans doute au début de l'année
1987), vous aurez la possibilité, pour environ 5000 F, de remplacer votre carte
actuelle par la nouvelle. Quel intérét ? Répondre actuellement 4 cette ques-
tion se révélerait fort présomptueux : attendons d'avoir réalisé un tel échange
pour en parler sérieusement, mais félicitons tout de méme Apple d'avoir
pensé aux 4 millions d’utilisateurs fidéles 4 la Pomme.
Av fait, il parait que les premiers Apple // GS seront disponibles dés la fin de
ce mois de novembre...
BONNE PROGRAMMATION ! GUY-HACHETIE.
Cone eeneeeeneeeseerenssessnssesasssereeeeessesaeweo eT EEE eEeds ceeeesu eon eeeneeseeeeReeweeee ie seOee EE
TREMPLIN MICRO
UApple lIGs
LAPPLE IGS
/
(0mce'
pO © sae <EM> <a> OO
Le panneau arriére de |'Apple lIGS
CARACTERISTIQUES TECHNIQUES
L'Apple tics comprend
e Un microprocesseur 16 bits 65C816, émulant le
65C02 ;
e Des processeurs spécialisés :
— MEGA II pour I’émulation Apple II ;
— VGC pour les nouveaux modes graphiques ;
—IWM pour les entrées-sorties disques 51/4
et3"1/2;
— ENSONIQ, 32 oscillateurs pour le son.
* 256K de mémoire vive (RAM) extensible 4 8
Mégooctets ;
® 128K de mémoire morte (ROM) contenant les
outils QuickDraw II et le BASIC Applesoft ;
e Unclavier détachable AZERTY avec bloc numérique ;
e Une souris ;
* Une horloge temps réel intégrée ;
© 8 ports intégrés :
— Un connecteur son pour haut-parleur ou cas-
que d’écoute ;
—2 ports série RS422C (compatibles RS232)
dont l'un peut servir de port Apple Talk ;
—Un port pour manettes de jeu ou manche a
balai (joystick) ;
— Un port lecteur de disquette 51/4 et 3°1/2 ;
— Un port video couleur analogique RVB ;
— Un connecteur video pour moniteur mono-
chrome ;
—Un connecteur ADB (Apple Desktop Bus)
pour clavier et souris.
* 8 connecteurs internes d’extension, dont un
connecteur pour carte d’extension mémoire
vive et mémoire morte ;
*® Des graphiques super-haute résolution 640 X
200 en 4 couleurs et 320 X 200 en 16 couleurs
parmi 4096 couleurs possibles ;
* Sons 16 voix permettant de restituer la musique
et la voix humaine.
L’'Apple IIGS est compatible avec la gamme Apple
ul, ire avec la presque totalité des logi-
ciels, périphériques et cartes d'extension Apple Il.
Par adjonction de cartes coprocesseurs, il sera
également compatible CP/M et MS/DOS.
* GS Paint et GS Write sont des morques déposées Version Soft.
GUY-HACHETTE
MARCEL COTTINI
L’AVENIR
est a vous...
avec I’APPLE //
et son 65C816
e Le Microprocesseur...
® Ses instructions
e Ses registres »
© Ses codes opérations —
e Ses adressages sommaires
* TREMPLIN MICRO
LE MICROPROCESSEUR
We65C816PI-2
AVANT-PROPOS
Le microprocesseur 6502, comme le 280, est un rescapé du début de |'informatique indivi-
duelle ayant équipé d'origine les premiers Apple //. L'évolution de la technologie aidant, un
probléme de taille s'est posé aux chercheurs de Cupertino : comment faire évoluer la série
des Apple // sans perdre, dans |'immédiat, l'accés 4 |'imposante bibliothéque de logiciels ?
Le premier essai tenté (et loupé) a été la mise en place du 65C02 dans |'Apple /lc et
Apple lle+. Ce microprocesseur, bien que plus complet que son prédécesseur, ne fut pas
4 la hauteur de la concurrence du marché actuel (processeur du type 8086/8088 ou 68000).
Le W65C816PI-2 de Western Design Center Inc est
un successeur direct du 65C02, I'architecture
interne des registres étant réalisée sur 16 bits de
large avec un bus de données de 8 bits. II peut
adresser 16 Mo, posséde un registre supplémen-
taire (Direct Register - D) et porte 4 16 bits tous les
registres existants. Néanmoins, son bus de don-
nées reste un 8 bits, ce qui le limite 4 travailler sur
des mots d'une longueur de 8 bits. Cette situation
de faux 16 bits n'est nullement un handicap, et ne
le pénalise absolument pas par rapport a d'autres
«chips». Il posséde en effet le plus faible temps
d'accés mémoire des microprocesseurs grand
public (un cycle horloge). La version W65C816PI-8
autorise un fonctionnement de I'horloge huit fois
plus rapide que celle de I’Apple Il, c'est-d-dire
8 Mhz. C'est un concurrent potentiel du processeur
8088, cceur des IBM PC et compatibles IBM PC.
Le 65C816 n'est d'ailleurs pas le seul de sa famille,
puisqu’il existe un autre microprocesseur possé-
dant les mémes instructions machine et de surcroit
compatible broche a broche (pin to pin) avec le
6502, c'est le 65C802. Ces deux processeurs font
partie de la famille des composants hybrides,
capables de travailler sur 8 ou 16 bits en passant
d'un mode 4 un autre.
Neuf registres de base
Le microprocesseur 65C802 peut étre installé direc-
tement sur un Apple /le sans la moindre modifica-
tion. Par ailleurs, il pourra étre programmeé puis-
que certains assembleurs connaissent déja son lan-
gage machine (S-C Macro Assembler). Dans les
versions du 6502, les registres sont au nombre de
six : les registres d'index X et Y, l'accumulateur, le
registre d'état, le compteur ordinal et le registre
pointeur de pile. Leur taille est de 8 bits de large,
sauf pour le compteur ordinal, dont la taille est de
16 bits (adresses $0000 4 $FFFF).
La structure des 65C816 et 65802 est dotée de 9
registres de base, dont six sont communs aux
65C816, 65C802 et 6502. Les nouveaux arrivants
sont : le registre d’adressage direct (D) et deux
registres annexes qui se composent d'une part du
registre page de données (DBR) et d’autre part du
registre page programme (PBR). L'innovation prin-
cipale réside dans le mode d'adressage pouvant
&tre basculé soit en mode 8 bits, soit en mode
16 bits. Les registres de ce nouveau produit sont :
— le registre page de données. Data Bank Register
-DBR
— le registre d'index X. Index Register X - X
— le registre d'index Y. Index Register Y - Y
— le registre pointeur de pile. Stack Pointer -S
— le registre accumulateur. Accumulator - C
— le registre page programme. Program Bank
Register -PBR
— le compteur ordinal. Program Counter - PC
— le registre direct. Direct Register -D
— le registre d'état. Status Register - P
a sortie sur le marché de la série des Apple //
suscita, parmi un grand nombre de ses adeptes, un
enthousiasme tel que la courbe des ventes s’en
ressentit. Mais, la limitation de la capacité mé-
GUY-HACHETTE
moire et la lenteur relative de la vitesse d'exécu-
tion des instructions (processeurs 6502 et 65C02)
furent trés vite sujet 4 caution. II faut par ailleurs
rappeler que le marché de I'informatique subit
périodiquement des bouleversements provoqués
en grande partie par la sortie de nouveaux pro-
duits. C'est ainsi qu'Apple Computer a fait la dou-
loureuse expérience de la montée en fléche du
matériel IBM (PC, AT et XT). L’année 1986, témoin
de la purge de bon nombre de modéles de micro-
ordinateurs, reste tout de méme une bonne année
pour la micro-informatique grand public. Apple
Computer a relevé le défi avec son nouveau
modéle (Apple //-GS) équipé d'un microproces-
seur hybride capable de travailler sur 8 ou 16 bits
en passant respectivement du mode émulation au
mode native. Le processeur est un 16 bits émulable
avec le 6502 par I'intermédiaire d'un registre d'état
(bit E associé aux bits M et X).
Un certain nombre de revues spécialisées dans le
domaine de la micro-informatique grand public, en
particulier Tremplin Micro, sont en droit de se
poser des questions sur l'avenir immédiat des
Apple // (processeurs 6502 et 65C02). Que tout ce
monde se rassure, la sortie de |'Apple //-GS
n’empiéte en rien sur le marché existant de
\'Apple JI. L'Apple //-GS s'adresse 4 un nouveau
public, désirant évoluer dans le domaine de la pro-
grammation tout en gardant la possibilité d'usage
de la bibliothéque des logiciels du 6502. En quel-
que sorte un certain retour aux sources : compati-
bilité garantie, avec en prime la possibilité d'un
nouveau mode de programmation (16 bits).
L'Apple /1-¢S
UApple //-GS, dernier né de la lignée des Apple /I,
est doté d'un microprocesseur 16 bits (65C816)
dont le modéle retenu posséde un temps d’horloge
de 2 Mhz. Ce processeur, coeur de la «machine»,
est capable d’adresser 16 Méga-octets (16.384.000
lala aa eae ae el
octets) de mémoire vive (RAM). Par ailleurs, 4
Méga-octets seront directement accessibles dans
la carrosserie du modéle fabriqué en série. L'origi-
nalité de cette opération commerciale réside dans
le fait que ce processeur peut tout aussi bien fonc-
tionner en 16 bits qu’en 8 bits. Dans ce dernier cas,
on dit qu'il émule avec le 6502, pouvant utiliser
toute la bibliothéque des logiciels existants. Cer-
taines similitudes frappantes existent par rapport
au Macintosh. La configuration de base se divise en
trois maillons : unité centrale, clavier détachable
et écran de visualisation.
Haute résolution extra
Un soin trés particulier a été apporté la haute
résolution graphique. Une palette de 16 couleurs
est disponible pour l'utilisateur, permettant un affi-
chage de 200 x 320 points (ou pixels) sur I’écran. Le
systéme d'exploitation ProDOS, dernier né des
programmes systéme d'Apple Computer, a été mis
4 jour pour s‘adapter aux exigences du 65C816 (ou
65C8G2). Il integre un «Finder» style Macintosh et
une horloge. Certaines routines ont été réécrites.
Un certain nombre de dispositions ont été prises
pour donner 4 ce nouveau-né un new look capable
d'accrocher les «branchés» potentiels. Toute une
panoplie d'extensions sont déja disponibles, on
pourrait citer une carte sonore* avec synthétiseur
4 16 voies, la possibilité de raccordement au
réseau AppleTalk, la compatibilité des lecteurs de
disquettes 3 pouces et demi (800 Ko) et des lec-
teurs de 5 pouces 1/4 (140 Ko). Par ailleurs, tout
est prévu pour permettre 4 votre machine préférée
de dialoguer avec un IBM PC en lui raccordant une
carte interface munie du fameux processeur 8088.
Cest ainsi que la riche bibliothéque de logiciels
MS-DOS sera 4 la portée de I’heureux détenteur du
nouvel Apple. Une ombre pourtant au tableau de
ce magnifique palmarés : le prix.
Cet article a été rédigé et composé avant la naissance officielle de |'Apple I1GS et aucune carte
d'extension n'est nécessaire pour bénéficier d'un remarquable synthétiseur
Ce nouveau type de microprocesseur fait partie
d'une famille de composants de la série 8
bits/16 bits CMOS. Le numéro de référence com-
plet est W65C816PI-2. C'est un 16 bits, compor-
tant un registre supplémentaire par rapport au
6502. Le registre de données est un 8 bits ne
traitant que des mots de 8 bits de large. Cette
restriction est imposée pour permettre |'émula-
tion avec la série des processeurs 6502.
MICROCIRCUITS CMOS 8/16 BITS - Microprocesseur familial
A la mise sous tension de la configuration, mode
native, le bit E du registre d'état a la valeur zéro.
En mode émulation, le bit E sera positionné a la
valeur 1. Différents modes d’adressage sont possi-
bles suivant la valeur du bit E. Si E = 1, la configu-
ration se trouve en mode émulation, elle est alors
compatible avec le 6502 (8 bits). SiE = 0, le mode
est native avec la possibilité de traiter des regis-
tres ou la mémoire sur 16 bits.
seoneeeennueaneseresssneneeseesesseaonsoneseesessesosssesesesveceraorseeeeseoeseEseereosseseesesennses
4 TREMPLIN MICRO .
COMPATIBILITE ENTRE LE 65C802 ET LE 6502
Le microprocesseur 65C802 (16 bits processor) est
un produit similaire au 65C816, avec une compati-
bilité broche par broche totale (pin to pin) avec le
6502 de la série des Apple Il. II est donc permis de
remplacer le 6502 par un 65C802, aux performan-
ces plus adaptées 4 notre temps.
Ce type de produit a l'opportunité de se substituer
4 un autre processeur sans modifier la carte mére.
Il autorise dés sa mise en place la possibilité d'utili-
ser deux modes de programmation .
— en émulation, c'est toute la bibliotheque de
l'Apple //(6562) qui sera offerte a l'utilisateur ;
— en mode native, des instructions supplémen-
taires et plus puissantes seront disponibles.
Uavantage réside en Ia mise en place d'un seul
composant mettant la puissance de |'adres-
sage 16 bits 4 la portée du programmeur
amateur.
En mode native, c'est-d-dire 4 la mise sous tension
de la configuration, l'adressage 16 bits sera dispo-
nible, tandis qu'en mode émulation la configura-
tion sera compatible avec le bon vieux 6502 (8
bits). Le microprocesseur 65€862 est donc un
excellent produit de remplacement du 6502.
Le microprocesseur 65C816 ne peut pas remplacer
directement le 6502, le brochage n’étant pas le
méme.
organisation interne des microprocesseurs
65C802 et 65C816 se divise en deux grandes
parties :
— la partie réservée aux registres ;
— la partie réservée pour le contréle des instruc-
tions (codes).
Architectures du processeur :
Architecture interne. Les signaux contribuant au
transfert et 4 l’exécution des instructions relatives
au processeur, via la section de contréle des ins-
tructions, sont du type 16 bits pour les processeurs
65C802 et 65€816.
Architecture externe. Le bus de données (data bus)
4 l'encontre de la structure des registres internes
(16 bits) est de 8 bits.
COMPARAISON DES MICROPROCESSEURS 65C802 ET 65C816
FONCTION
MODE EMULATION E = 1
MODE NATIVEE= 0
Pointeur de pile (S)
Direct indexé
8 bits Page 1
Interne 4 une page
16 bits
Dépassement limite page mémoire
Bit 5 (M)
Registre d'état (P)
Bit 4 (x)
est
interruption Hardware.
Toujours & 1.
Toujours & 1. Hormis si la pile
réactualisée suite & une
x=@0
Index sur 8 ou 16 bits.
M=0
Accumulateur sur 8 ou 16 bits.
Branchement par dépossement de
la limite d'une page mémoire. 4 cycles 3 cycles
Situation des vecteurs d’interruption
ABORT SOGFFF8/$OGFFF9 SOGFFES/SOOFFE9
BRK SOGFFFE/SQFFFF SGOFFE6/SOGFFE7
cop SOGFFF4/$OGFFFS SOGFFE4/SOGFFES
IRQ SOGFFFE/SGQFFFF SOGFFEE /SOOFFEF
NMI SOGFFFA/SOOFFFB SOGFFEA/SGOFFEB
RESet SOGFFFC/$OQFFFD SOGFFFC/SOGFFFD (1-E)
Program Bank (PB) pendant une interruption — retour par RTI.
Non empilé/dépilé
Empilé et dépilé
— 65C802
— 65C816
Tension nulle sur la broche RDY du processeur
- Write
Ignoré avant Read
Processeur stop
Processeur stop
Sauvegarde (Write) pendant Read/Modify/Write
Durée 2 cycles
Durée | ov 2 cycles suivant le bit M du
registre d'état.
TREMPLIN MICRO
DESCRIPTION DU MICROPROCESSEUR 65C816
CMOS désigne une fabrication du produit en
Metal Oxyde Semi-conducteur pour MOS, et ot
le C désigne que ce circuit est complémen-
taire. Les Jonctions semi-conducteurs du
type P (Positif) et N (Négatif) sont utilisées de
maniére complémentaire. Ce procédé de fabri-
cation réduit considérablement la dissipation
d’énergie (chaleur) en autorisant une alimen-
tation du circuit sous une faible intensité.
émulation, d’ou totale compatibilité des pro-
grammes écrits pour le processeur 6502 (8
bits).
16 bits pour les registres Accumulateur, poin-
teur de pile et d’index (X et Y).
un registre 16 bits supplémentaire par rapport
au 6502. Registre Direct (Direct Register) pour
l'adressage de la page zéro (16 bits). Si le
registre D est égal a G, on se trouve en pré-
sence de l'adressage page zéro du 6502 (8
bits).
deux registres annexes 8 bits, supplémentai-
res par rapport au 6502. Le registre page de
données et le registre page programme.
24 modes d'adressage (le 6502 n‘en possédait
que 13).
Vinstruction WAI attend une interruption, tan-
dis que l'instruction STP inhibe |'horloge du
processeur. Cette commodité permet de
réduire la consommation en énergie et dimi-
nue les interruptions latentes.
un total de 91 instructions de base autorise 255
codes instructions combinés, suivant le mode
d'adressage utilisé.
une instruction spécifique (COP) pour |'utilisa-
tion d'un coprocesseur. Elle affecte l’adressage
de la pile et force 4 1 le bit | et 4 le bit D du
registre d'état.
déplacement d'une page source (block bank)
vers une page de destination (bank). Instruc-
tion trés puissante pour le déplacement de
données d'une page mémoire source vers une
page mémoire destination.
permet d’effectuer des opérations sur 16 bits.
Le bus d’adresses est organisé pour adresser
16 Mo de mémoire vive.
sélection en mode 8 bits pour émuler avec le
processeur 6502.
validation des broches de sortie du circuit de
contréle d'état du processeur (Status Control) :
Valid Program Address (VPA) et Valid Data
Address (VDA).
SIGNIFICATION DU NUMERO DE REFERENCE
W 65C816 P| -2
Ww
wc
65¢
type standard
usage général
816 identification du produit
65 série
c¢ — CMOS
816 — 8/16 bits
enrobage du processeur
plastique
céramique
procédé d'enrobage
= réservé l'automobile
iT]
moov
température normale
sans indice = 00470 degrés
I = 40/485 degrés
M = 554125 degrés
horloge du processeur
-2. = 2Mhz
-4. = 4 Mhz
-6 = 6 Mhz
-8 = 8 Mhz
Sean eseocsnsERewesT ENA seREEEEsEENeEsEeseeesNETessesssess sess eseoeeesesseeussseeNsosoeeeeeUEeseeseenes
GUY-HACHETTE
COMPATIBILITE DES MICROPROCESSEURS DE LA SERIE 65C...
Mode décimal
— Aprés interruption
— Drapeaux N et Z
— ADC et SBC
Read/Modify/Write
page mémoire
— Write
—esceis-émutaTion | scons | 502
Bits 0-D Bits 0-D Inutilisés
Validés Validés Indéterminés
Pas de cycle en + + 1cycle Pas de cycle en +
— Adressage absolu indexé. 7 cycles 6 cycles | T cycles
Pas de chevauchement de
|
Dure 2 cycles Dure 1 cycle Dure 2 cycles
— Verrouillage de la mémoire Dure 3 cycles Dure 2 cycles Non disponible
Saut Inconditionnel (JMP |
Indirect)
— Durée en Cycles 5 cycles 6 cycles 5 cycles
— Saut a l’adresse opérante -
forme XXFF Correcte Correcte Non valide
Branchement ou passage d'une cues tuts Lit un byt Rood tion valid
limite de la page mémoire iinet Su a la ‘ctiaibaid
Tension nulle sur la broche
RDY durant I'écriture -Write.
— Processeur 65C802 Ignoré avant Read Stop 65C802 Idem au 65C816
— Processeur 65C816 Processeur stop = =
Ecriture (Write) durant Reset Non Oui Non
pein de codes machine Inopérant Inopérant Indéterminé
Signal valide sur la broche RDY z x Entré Entré
du microprocesseur Entrée/sortie ntrée ntrée
APPLE lIGS ?
Certains de nos correspondants
sinquiétent et paraissent redouter
leurs premiers contacts avec la béte...
Vous retrouverez, sur |'APPLE IIGS, le bon vieux Basic
Applesoft que vous connaissez déja. Vous le retrouverez
avec ses inconvénients (nombre d’instructions limité,
absence de PRINT USING, etc.) et ses avantages : une cer-
taine rapidité et une grande tolérance lors de la saisie. Par
conséquent, aucun probléme de ce cété, sinon que vos pro-
grammes tourneront au moins deux fois plus vite.
Vous aurez par contre avantage 4 pratiquer le langage
machine. Le 65C816, microprocesseur puissant et complet
vous autorisera 4 créer des routines 4 la fois courtes et
ultra-performantes. Pensez aussi au Langage C... dont on
dit beaucoup de bien. NESTOR.
GUY-HACHETTE
LES INSTRUCTIONS DU
MICROPROCESSEUR 65C816
GENERALITES
Le microprocesseur 65C€816 posséde la propriété de pouvoir traiter des données suivant
deux modes d'adressage différents : le mode émulation qui traite des registres de 8 bits et
le mode native qui traite des registres de 16 bits. Le passage d'un mode 4 l'autre se fait en
positionnant la retenue (Carry Flag) et en transmettant au systéme |'instruction XCE
(Exchange Carry an Emulation Bits). La commande XCE positionne le drapeau en E (bit
d'émulation). Si E est & un, le microprocesseur est en mode émulation et adresse comme un
6502 (8 bits). Toute la bibliothéque des logiciels existants reste alors disponible. Si E est 4
zéro, le mode native est actif. Dans ce mode, le microprocesseur utilise certains de ses
registres sous un format 16 bits. En mode native, les bits 4 (Index Register Select) et 5
(Memory Select) du registre d'état changent de signification. Si le bit 4 est positionné 4 zéro,
alors les registres d'index sont considérés comme des registres de 16 bits de large. Si le bit 5
est 4 zéro, l'accés 4 la mémoire se fait sur 16 bits.
Le microprocesseur 65C816 utilise 255 codes instructions, soit 91 de plus que le 65C02. Ces
nouvelles instructions sont pour la plupart des améliorations apportées 4 |'adressage du
6502, soit pour |'utilisation de la fonction 16 bits, soit pour exploiter les nouveaux modes
d'adressage. Par ailleurs, de nouvelles instructions de transfert entre les registres ont fait
leur apparition, sans oublier l'innovation des instructions de déplacement de bloc mémoire,
ainsi que l'instruction COP, pour une utilisation d'un coprocesseur.
abc Addition avec retenue — Add
Memory to Accumulator with Carry.
On gjoute 4 |'accumulateur le contenu de la case
mémoire plus le bit de retenue. Cette opération
s'effectue en mode binaire ou décimal. Agit sur les
bits N, V, Zet C du registre d'état.
AND ET logique — AND. ET logique (AND)
entre l'accumulateur et la mémoire.
On effectue une opération bit bit avec l’accumu-
lateur et la mémoire. Permet de forcer des bits a
zéro. Agit sur les bits N et Z du registre d'état.
ASL Décalage d'un bit vers la gauche —
Shift One Bit Left (Memory or Accumu-
lator). On décale & gauche d'un bit, opération
effectuée sur l'accumulateur ov la mémoire. Un
zéro entre 4 droite tandis que le bit sortant a gau-
che va dans la retenue. Agit sur les bits N, Zet C du
registre d'état. Pour tous les modes d’adressage
utilisant les instructions relatives @ Read/
Modify/Write, excepté l'adressage accumulateur,
les régles suivantes sont 4 appliquer :
— Ajouter 2 cycles siE = 1 ouE = Get M = 1 (8 bits mode) ;
TREMPLIN MICRO
— Ajouter 3 cycles si E = @ et M = G (16 bits
mode).
Bcc Branchement si pas de retenue —
Branch on Carry Clear (C = 9). Sile bit
C = Gon saute a |'adresse indiquée, sinon, on con-
tinue en séquence. Aucune action sur le registre
d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
BcS Branchement si la retenue est 4 1 —
Branch on Carry Set (C = 1). Si le bit
C = 1 onsaute 4 |'adresse indiquée, sinon, on con-
tinue en séquence. Aucune action sur le registre
d'état.
— Ajouter | cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie. (suite page 10)
E
BEQ Branchement si zéro — Branch if
Equal (Z = 1). Sile bit Z = 1 on saute
4 l'adresse indiquée, sinon, on continue en
séquence (bit Z = 1 si le dernier résultat est nul, ou
si la derniére comparaison a donné |'égalité).
Aucune action sur le registre d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
Test de bits — Bit Test. On effectue le
ET virtuel entre I’accumulateur et la
mémoire spécifiée, Le résultat n'est pas remis dans
Vaccumulateur (AL ou A) qui reste inchangé. L'indi-
cateur Z (Z flag) est positionné en conséquence.
Agit sur les bits N, V et Z du registre d'état. L'ins-
truction BIT n’affecte pas les bits N et V en adres-
sage immédiat. Dans les autres modes d’adres-
sage, N et V (flags) occupent respectivement les
bits 7 et 6 ou 15 et 14 de la mémoire adressée, sui-
vant le mode actuel (byte — 8 bits ou expression —
16 bits).
BMI Branchement si négatif — Branch if
Result Minus (N = 1). Si le bitN = 1
on saute a I'adresse indiquée, sinon, on continue
en séquence. Le résultat est négatif. Aucune action
sur le registre d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
BNE Branchement si non égal — Branch if
Not Equal (Z = 9). Si le bit Z = G on
saute 4 I'adresse indiquée, sinon, on continue en
séquence. Le bit Z = @ (résultat nul) si le dernier
résultat est différent de 0, ou si la derniére compa-
raison n‘a pas donné |’égalité. Aucune action sur le
registre d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
BPL Branchement si positif ou nul —
_— Branch if Result Plus (N = Q). Si le bit
N = Gon saute a l'adresse indiquée, sinon, on con-
tinue en séquence. N = @ si le dernier résultat est
supérieur ou égal 40. Aucune action sur le registre
d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
BRA Branchement relatif effectué sur 8 bits
— Branch Always. On saute a
l'adresse indiquée sans condition. Aucune action
sur le registre d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
BRK Interruption logicielle — Force Break.
Met le bit | 4 1 et D 4G, puis simule
une interruption. On empile les valeurs du comp-
teur ordinal et du registre d'état puis on saute 4
l'adresse contenue dans le vecteur d'interruption.
Force 4 @ le bit D et 41 le bit | du registre d'état.
Deux octets sont occupés par BRK. Sept cycles sont
nécessaires en mode 8 bits et huit cycles en mode
16 bits.
BRL Branchement relatif long (16 bits) —
Branch Always long. Eectue la
recherche de l'adresse mémoire lors d'un branche-
ment long effectué sur 16 bits ($0000-SFFFF).
Aucune action sur le registre d'état.
Bye Branchement si non dépassement de
are capacité — Branch on Overflow Clear
(V = @). Si le bit V = 0 on saute 4 I'adresse indi-
quée, sinon, on continue en séquence. Aucune
action sur le registre d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
BVS Branchement si dépassement de
eoraeses capacité — Branch on Overflow Set
(V = 1). Si le bit V = 1 on saute a l'adresse indi-
quée, sinon, on continue en séquence. Aucune
action sur le registre d'état.
— Ajouter 1 cycle si le branchement est réalisé.
— En mode émulation (E = 1), ajouter 1 cycle si le
branchement est réalisé et si une page mémoire
est franchie.
Annulation de la retenue — Clear
Carry Flag (C = @). On force 4 @ le bit
de retenue. Surtout employé avant une addition
(ADC) pour l'effectuer sans retenue. Force 4 zéro le
bit C du registre d'état.
¢eLD Annulation du mode décimal — Clear
ae Decimal Mode (D = @). On force 4G le
bit D pour positionner |'unité arithmétique en mode
binaire. Utilisé pour effectuer ADC et SBC. Force
zéro le bit D du registre d'état.
GUY-HACHETTE
-_
Tl
CLI Autorise les interruptions — Clear
ora Interrupt Disable Bit (I = 0). On force
4G le bit |, inhibition des interruptions IRQ, ce qui
autorise ces interruptions. Cette instruction est
encore utilisée pour la fin des séquences critiques
pendant lesquelles on inhibe les interruptions par
SEI. Force 4 zéro le bit | du registre d'état.
CLV Annulation de |'indicateur de débor-
dement — Clear Overflow Flag (V =
G). Positionne l'indicateur de dépassement de
capacité @ la valeur @. On force 4 @ le bit V du
registre d'état.
CMP = Compare la mémoire a l'accumulateur
— Compare Memory and Accumula-
tor. On effectue la soustraction virtuelle entre
V'accumulateur et la mémoire. Le résultat n'est pas
MODE NATIVE (E = 0, mode 16 bits)
Dans ce mode, lors d'une interruption
Hardware, le registre PB est purge et ini-
tialisé par des zéros (0). BRK ou COP est
remis dans l’accumulateur qui reste inchangé. Les
indicateurs N, Z et C sont positionnés d’aprés le
résultat. Pour prévoir l'état de N, faire X + com-
plément de la mémoire, o N sera correct s'il n'y a
pas de débordement. V reste inchangé.
cop Initialisation d'une séquence diinter-
ruption — Coprocesseur. Deux modes
d'interruptions peuvent étre gérés par le micropro-
cesseur 65C816, en purticulier les interruptions
logicielles (Software) contrélées par |'instruction
COP. Les programmeurs sous systeéme ProDOS
auront vite fait le rapprochement avec ledit
systéme d’exploitation. L'instruction COP affecte le
contenu des registres PB (Program Bank Register)
et DB (Data Bank Register). Force 40 le bit Det al
le bit | du registre d'état.
exécuté. Le contenu du registre PB sera
automatiquement sauvegardé sur le som-
met de la pile (8 bits).
_ MODE EMULATION (E = 1, mode 8 bits)
Dans ce mode, lors d'une interruption
Hardware, les registres DB et PB sont pur-
gés et des zéros écrits & ces emplace-
COP Flag (Signature)
Les valeurs de $00 4 $7F inclus sont utili-
sées par le systeme comme signature,
tandis que les valeurs de $80 4 $FF inclus
ments. BRK ou COP est exécuté. Le contenu
de l'adresse du registre PB ne sera pas
automatiquement sauvegardé sur la pile.
sont réservées pour une utilisation future
(extension 4 32 bits avec le microproces-
seur 65C832).
Hardware Interrupt - ABORT, IRQ, NMI ou RESET
REGISTRE OPERATION EFFECTUEE
PC Opération interne.
Pe Opération interne.
Ss Sauvegarde de PB sur la pile.
s Sauvegarde de PCH sur la pile.
Ss Sauvegarde de PCL sur la pile.
Ss Sauvegarde de P sur la pile.
VL Lecture de I’adresse pour la gestion de l'erreur — LByte.
VH Lecture de l’adresse pour la gestion de |’erreur — HByte. (suite page 12)
Seen nenseaseusnessssessseresasssesessessscesgrossosnsserenEesasusnerroneesressEsenseenesoseuseeneunases
TREMPLIN MICRO W
Software Interrupt — BRK, COP
REGISTRE OPERATION EFFECTUEE
PC-2 Opcode
PC-1 Signature
Ss Sauvegarde de PB sur la pile.
Ss Sauvegarde de PCH sur la pile.
Ss Sauvegarde de PCL sur la pile.
Ss Sauvegarde de P sur la pile.
VL Lecture de l’adresse pour la gestion de l’erreur — LByte.
VH Lecture de l'adresse pour la gestion de l'erreur — HByte.
1s .
Tableau des vecteurs d’interruption
INTERRUPTION ORIGINE EMULATION (E = 1) MODE 65C816 (E = 0)
ABORT Matériel S$OGFFF8 /$GQFFF9 $OGFFE8 /$OGFFE9
BRK Logiciel S$OGFFFE /$OGF FFF $GGFFE6 /$OQFFE7
COP Logiciel $OGFFF4 /$QGQFFFS $OGFFE4 /$OGFFE5S
IRQ Matériel $OGFFFE /$OGF FFF $OGFFEE /$OQFFEF
NMI Matériel $OOFFFA/$OGFFFB $OOFFEA/$OOFFEB
RESET Matériel $QOGFFFC /$GGFFFD $OQFFFC /$GGFFFD (1)
CPx Compare la mémoire au registre X — Modify/Write, excepté l'adressage accumulateur,
lalallala alah aha aaa alee eed dae eed
12
Compare Memory and Index X. Effec-
tue la soustraction virtuelle entre le registre
d'index X et la mémoire. Les indicateurs N, Z et C
sont positionnés suivant le résultat. Pour prévoir
\'état de N, faire X + complément de la mémoire,
ou N sera correct s'il n'y a pas de débordement. V
reste inchangé.
CcPY Compare la mémoire au registre Y —
intend Compare Memory and Index Y. Effec-
tue la soustraction virtuelle entre le registre
d'index Y et la mémoire, et positionne les indica-
teurs N, Z et C suivant le résultat. Pour prévoir
\'état de N, effectuer Y + complément de la
mémoire, o N sera correct s'il n'y a pas de débor-
dement. V reste inchangé.
DEC Décrémentation de la mémoire ou de
Vaccumulateur — Decrement Memory
or Accumulator by One. On diminue de 1 le con-
tenu de la mémoire indiquée. Agit sur les bits N et
Z du registre d'état. Pour tous les modes d’adres-
sage utilisant les instructions relatives @ Read/
les régles suivantes sont 4 appliquer :
— Ajouter 2 cycles siE = 1 ouE = GetM = 1 (8
bits mode) ;
— Ajouter 3 cycles si E = @ et
mode).
M = @ (16 bits
DEX Décrémentation du registre d'index X
— Decrement Index X by One. On
diminue de 1 le contenu du registre d'index X. Agit
sur les bits N et Z du registre d'état.
DEY Décrémentation du registre d'index Y
— Decrement Index Y by One. On
diminue de 1 le contenu du registre d'index Y. Agit
sur les bits N et Z du registre d'état.
EOR OU exclusif — Exclusive OR Memory
with Accumulator. On effectue le OU
exclusif bit @ bit entre l'accumulateur et la
mémoire suivant la table de vérité. Agit sur les bits
Net Z du registre d'état.
GUY-HACHETTE
1
Tl
Table de verite
@ EORG = @
@ EOR 1 1
1 EOR @ 1
1 EOR1 = @
Inc Incrémentation de la mémoire ou de
Vaccumulateur — Increment Memory
or Accumulator by One. On augmente de | le con-
tenu de la mémoire indiquée. Agit sur les bits N et
Z du registre d'état. Pour tous les modes d'adres-
sage utilisant les instructions relatives @ Read/
Modify/Write, excepté l’adressage accumulateur,
les régles suivantes sont 4 appliquer :
— Ajouter 2 cycles siE = 1 ouE = GetM=1 (8
bits mode) ;
— Ajouter 3 cycles si E = 0 et M = @ (16 bits
mode).
INxX Incrémentation du registre d'index X
— Increment Index X by One. On aug-
mente de | le contenu du registre d'index X. Agit
sur les bits N et Z du registre d'état.
INY Incrémentation du registre d'index Y
—- — Increment Index Y by One. On aug-
mente de | le contenu du registre d'index Y. Agit
sur les bits N et Z du registre d'état.
Saut inconditionnel long — Jump
4d
Long. Cette instruction est équiva-
lente au JMP. JML réalise un branchement a un
nouveau vecteur de la mémoire avec une adresse
sur 24 bits. Adressage absolu indirect. Aucune
action sur le registre d'état.
iP Saut inconditionnel sur 16 bits —
Jump to New Location. On saute a
l'adresse indiquée. Effectue un branchement avec
un saut inconditionnel suivant le mode d’adressage
utilisé. Adresse de 16 bits de large. Aucune action
sur le registre d'état.
JSL Saut long & un sous-programme
—— (adresse 24 bits) — Jump to Long.
Cette instruction est équivalente au JSR, appel d'un
sous-programme. Adressage absolu. Aucune
action sur le registre d'état.
ISR Appel d'un sous-programme — Jump
to New Location Saving Return
Address. On sauve PC (JSR + 2) sur la pile pour
mémoriser l'adresse de retour, puis saut &
l'adresse indiquée. Aucune action sur le registre
d'état.
charge I’accumulateur avec la valeur se trouvant 4
Vemplacement de la mémoire indiquée. La
mémoire elle-méme n'est pas modifée. Agit sur les
bits N et Z du registre d'état.
LDX Charge le registre d'index X — Load
Index X. On met dans le registre X le
contenu de la mémoire indiquée. La mémoire n’est
pas modifiée. Agit sur les bits N et Z du registre
d'état.
LDY Charge le registre d'index Y — Load
Index Y. On met dans le registre Y
le contenu de la mémoire indiquée. La mémoire
nest pas modifiée. Agit sur les bits N et Z du
registre d'état.
LSR Décalage d'un bit vers la droite —
Shift One Bit Right Memory or Accu-
mulator. On décale d'un bit vers la droite l’accumu-
lateur ou la mémoire. Agit sur les bits Z, C et force
40 le bit N du registre d'état. Pour tous les modes
d'adressage utilisant les instructions relatives 4
Read/Modify/Write, excepté l'adressage accumu-
lateur, les régles suivantes sont 4 appliquer :
— Ajouter 2 cycles siE = 1 ou E = Get M = 1 (8
bits mode) ;
— Ajouter 3 cycles si E = 0 et M = G (16 bits
mode).
MVN__Déplacement négatif de bloc — Block
Move Negative. Cette instruction est
utilisée en liaison avec le mode d’adressage Block
pour déplacer un bloc de données d'un emplace-
ment mémoire vers un autre. MVN incrémente les
registres d'index X et Y utilisés comme compteur
de bytes. Le premier byte de |'instruction contient
le code de |'instruction. Le second byte contient les
8 bits de poids fort de I’adressage de destination.
Le troisiéme byte contient les 8 bits de poids fort de
\adresse source. Le registre Y contient les 16 bits
de poids faible de l'adresse de destination. Le
registre X contient les 16 bits de poids faible de
l'adresse source. L’accumulateur contient la valeur
du nombre de bytes 4 déplacer, moins un. Le
second byte relatif @ l'instruction Block Move se
trouve localisé dans le registre page de données
(Data Bank Register).
MVP ___Déplacement positif de bloc —
Block Move Position. Cette instruc-
tion est utilisée en liaison avec le mode d'adres-
sage Block pour déplacer un bloc de données.
MVP décrémente les registres d'index X et Y uti-
lisés comme compteur de bytes. L'accumulateur
est décrémenté si son contenu a une valeur
positive, d’ou PC «—— PC + 3. Les régles relati-
LDA Chargement de l'accumulateur — ves aux registres restent les mémes que pour
= Load Accumulator with Memory. On l'instruction MVN. (suite page 14)
TREMPLIN MICRO 13
NOP Pas d'opération — No Operation. Ins-
aad truction sans effet, qui ne fait aucune
action mais utilise néanmoins 2 cycles et nécessite
un byte. Utilisé aprés la phase de mise au point de
programmes pour remplacer des instructions sup-
primées. Aucune action sur le registre d'état.
ORA OU logique entre la mémoire et
Vaccumulateur — OR Memory with
Accumulator. On effectue le OU logique bit a bit
entre l’accumulateur et la mémoire conformément
la table de vérité. Agit sur les bits N et Z du regis-
tre d'état.
Empile l'adresse absolue ou une don-
née en mode immédiat — Push Effec-
tive Absolute Address on Stack (or Push Immédiate
Data on Stack). Empile ladresse absolue ou une
donnée lors de l'adressage immédiat. Se rapporte
4 toute instruction relative 4 l'adressage de la pile
(empile). Aucune action sur le registre d'état.
PEI Empile l'adresse indirecte — Push
Effective Indirect Address on Stack.
Ajoute 1 cycle 4 l'opération si le contenu du regis-
tre DL (Direct Low Register) est égal a zéro (DL =
@). Aucune action sur le registre d'état.
PER Empile l'adresse relative au PC —
Push Effective Program Counter
Relative Address on Stack. Empile |'adresse
relative au compteur ordinal. Aucune action sur
le registre d'état.
PHA Empile l'accumulateur (AL ou A) —
Push Accumulator on Stack. On place
le contenu de I’accumulateur au sommet de la pile
et on met 4 jour le pointeur de pile. A reste intact.
Aucune action sur le registre d'état.
PHB Empile le registre page de données —
Push Data Bank Register on Stack. On
place le contenu du registre page de données au
sommet de la pile et on met a jour le pointeur de
pile. Aucune action sur le registre d'état.
PHD Empile le registre direct (D) — Push
Direct Register on Stack. On place le
contenu du registre direct au sommet de Ia pile et
on met a jour le pointeur de pile. Aucune action sur
le registre d'état.
PHMK — Empile le registre page programme
—< — Push Program Bank Register on
Stack. On empile le registre page programme et
on met a jour le pointeur de pile. Aucune action
sur le registre d'état.
PHP Empile le registre d'état (P) — Push
aha Processor Status on Stack. On place
le contenu du registre d'état au sommet de la
pile et on met a jour le pointeur de pile. P reste
intact. Aucune action sur le registre d'état.
PHX Empile le registre d'index X — Push
—_— Index X on Stack. On copie le con-
tenu du registre X au sommet de la pile et on
met 4 jour le pointeur de pile. Aucune action sur
le registre d'état.
PHY Empile le registre d'index Y — Push
— Index Y on Stack. On dépose le con-
tenu du registre Y au sommet de la pile et on
met a jour le pointeur de pile. Aucune action sur
le registre d'état.
PLA Dépile |’accumulateur (AL ou A) —
Pull Accumulator from Stack. On
transfére vers l’accumulateur le contenu du som-
met de la pile et on met 4 jour le pointeur de pile.
Agit sur les bits N et Z du registre d'état.
PLB Dépile le registre page de données —
Pull Data Bank Register from Stack.
On transfére vers le registre DB le contenu du som-
met de la pile et on met 4 jour le pointeur de pile.
Agit sur les bits N et Z du registre d'état.
PLD Dépile le registre direct (D) — Pull
Direct Register from Stack. On trans-
fére vers le registre D le contenu du sommet de la
pile et on met @ jour le pointeur de pile. Agit sur les
bits N et Z du registre d'état.
PLP Dépile le registre d'état (P) — Pull
Processor Status from Stack. On trans-
fére vers le registre P le contenu du sommet de la
pile et on met 4 jour le pointeur de pile. Agit sur les
bits N, V, M, X, D, |, Zet C du registre d'état.
PLX Dépile le registre d'index X — Pull
Index X from Stack. On dépose le con-
tenu du sommet de Ia pile dans le registre d'index
X et on met 4 jour le pointeur de pile. Agit sur les
bits N et Z du registre d'état.
PLY Dépile le registre d'index Y — Pull
Index Y from Stack. On dépose le con-
tenu du sommet de la pile dans le registre d'index
Y et on met 4 jour le pointeur de pile. Agit sur les
bits N et Z du registre d'état.
REP Met @ zéro des bits du registre
d'état (P) — Reset Status Bits. Per-
met de positioner 4 zéro la valeur des bits du
registre d'état aprés un test de bits par exemple
(BEQ, BNE, etc.). Agit sur les bits N, V, M, X, D,
|, Z et C du registre d'état.
GUY-HACHETTE
TREM
ROL Rotation d'un bit vers la gauche —
aia Rotate One Bit Left — Memory or
Accumulator. Décale d'un bit vers la gauche le con-
tenu de l'accumulateur ou de la mémoire.
Uancienne valeur du bit de retenue entre par la
droite, tandis que le bit qui sort par la gauche cons-
titue la nouvelle valeur de C. Agit sur les bits N, Z
et C du registre d'état. Pour tous les modes
d'adressage utilisant les instructions relatives 4
Read/Modify/Write, excepté l'adressage accumu-
lateur, les régles suivantes sont 4 appliquer :
— Ajouter 2 cycles siE = 1 ouE = GetM=1(8
bits mode) ;
— Ajouter 3 cycles si E = G et M = G (16 bits
mode).
ROR Rotation d'un bit vers la droite —
Rotate One Bit Right Memory or Accu-
mulator. Décale d'un bit vers la droite le contenu
de l'accumulateur ou de la mémoire. L’ancienne
valeur entre par la gauche et le bit qui sort par la
droite constitue la nouvelle valeur de C. Agit sur
les bits N, Z et C du registre d'état. Pour tous les
modes d'adressage utilisant les instructions relati-
ves 4 Read/Modify/Write, excepté |'adressage
accumulateur, les régles ‘suivantes sont @
appliquer :
— Ajouter 2 cycles siE = 1ouE = GetM=1(8
bits mode) ;
— Ajouter 3 cycles si E = @ et M = G@ (16 bits
mode).
Retour d'interruption — Return from
Interrupt. Retour de sous-programme
ou de routine d'interruption. On récupére sur la
pile les contenus de PC (compteur ordinal) et P
(registre d'état) qui y avaient été sauvegardés au
préalable par le mécanisme d'interruption et on
met a jour le pointeur de pile. On reprend l’exécu-
tion 1a oW elle avait été laissée lors de |'interrup-
tion. Agit sur les bits N, V, M, X, D, |, Zet C du
registre d'état.
RTL Retour d'un sous-programme appelé
por JSL (24 bits) — Return from Sub-
routine Long. On récupére sur le sommet de la pile
le PC et le contenu de PB lors d'un retour de sous-
programme long (adresses de $000000 4 $FFFFFF).
Aucune action sur le registre d'état.
RTS Retour d'un sous-programme appelé
par JSR (16 bits) — Return from Sub-
routine. On récupére sur la pile le PC (compteur
ordinal) qui avait été sauvé par le dernier JSR. On
reprend |'exécution du programme principal direc-
tement derriére l'appel au sous-programme.
Aucune action sur le registre d'état.
sBCc Soustrait la mémoire avec la retenue
4 l'accumulateur — Subtract Memory
from Accumulator with Borrow. On soustrait de
l'accumulateur le contenu de la mémoire indiquée
et l'opposé de la retenue (|'emprunt). On opére en
mode décimal ou en binaire. Agit sur les bits N, V,
ZetC du registre d'état.
sEC Met la retenue a 1 (C = 1) — Set Carry
Flag. Est utilisée particuliérement
avant SBC pour effectuer une soustraction sans
retenue. Force | le bit C du registre d'état.
SED Met en mode décimal (D = 1) — Set
Decimal Mode. Met I’unité arithméti-
que en mode décimal. Force a | le bit D du registre
d'état (par exemple avant ADC ou SEC).
SEI Met en mode non interruptible (| = 1)
—- — Set Interrupt Disable Status. Inhibe
les interruptions. Force 4 1 le bit | d'inhibition des
interruptions IRQ, ce qui a comme effet de mas-
quer ces interruptions. Si la demande d'interrup-
tion est maintenue sur la borne IRQ du micropro-
cesseur (pin IRQ = Q) I'interruption sera prise en
compte dés que le bit | sera remis a zéro. Trés utile
pour changer le vecteur d'interruption.
SEP Met a 1 des bits du registre d'état (P)
— Set Processor Status Bits. Force 41
les bits du registre d'état. Agit sur les bits N, V, M,
X, D, |, Zet Cdu registre d'état.
Sauvegarde de |'accumulateur 4 un
emplacement mémoire — Store Accu-
mulator in Memory. On transfére le contenu de
V'accumulateur (AL ou A) dans la mémoire indiquée
tandis que l'accumulateur reste inchangé. Aucune
action sur le registre d'état.
— Ajouter | cycle en mode émulation (E = 1) pour
les modes d’adressage suivants :
* Direct indexé par Y ;
* Absolu indexé par X ;
* Absolu indexé par Y.
STP Arréte I'horloge — Stop the Clock.
Cette instruction interrompt le circuit
d'horloge du microprocesseur. A ce stade, le bus
de données reste disponible pour le transfert de
données, tandis que le banc d'adresses n’est plus
en mode multiplexé (pour le bus de données). Le
circuit d'horloge du processeur est relancé en
effectuant un RESET du systéme. Aucune action sur
le registre d'état.
STXx Sauvegarde de X 4 un emplacement
— mémoire — Store Index X in Memory.
On transfére le contenu du registre d'index X vers
l'emplacement de la mémoire indiquée, tandis que
X (XL ou X) reste inchangé. Aucune action sur le
registre d'état. (suite page 16)
CUNO NASR AEL AAO ESSENSE AE AOO LESSON SHSAOTONDOES NT OHSTASSASO RSTO ASSASSS AS ALSHAAGISAAASASASSOSSSTSOSSSGs
TREMPLIN MICRO Ld
STY Sauvegarde de Y 4 un emplacement
mémoire — Store Index Y in Memory.
On transfére le contenu du registre d'index Y vers
l'emplacement de la mémoire indiquée, tandis que
Y (YL ou Y) reste inchangé. Aucune action sur le
registre d'état.
STz Met 4 zéro un emplacement mémoire
— Store Zero in Memory. Place des
zéros 4 l'emplacement de la mémoire indiquée.
Aucune action sur le registre d'état.
— Ajouter 1 cycle en mode émulation (E = 1) pour
les modes d'adressage suivants :
® Direct indexé par Y ;
* Absolu indexé par X ;
* Absolu indexé par Y.
TAX Transfert de l'accumulateur dans X —
Transfer Accumulator to Index X. On
met le contenu de l’accumulateur (AL ou A) dans le
registre d'index X (XL ou X). Le contenu de l'accu-
mulateur reste inchangé. Agit sur les bits N et Z du
registre d'état.
yv Transfert de l'accumulateur dans Y —
Transfer Accumulator to Index Y. On
met le contenu de l'accumulateur (AL ou A) dans le
registre d'index Y (YL ou Y). Le contenu de l'accu-
MODE EMULATION (E =1)
Effectue un AND logique entre le contenu de
l'accumulateur (Low Accumulator — registre
MODE NATIVE (E = 0)
Effectue un and logique entre le contenu de
l'accumulateur (Accumulator — registre 16
bits) et l'expression représentant une adresse
effective, moins la valeur arithmétique de
ladite expression. Agit sur le bit Z du registre
d'état. Pour tous les modes d’adressage de
TRB, excepté I’accumulateur, si le bit Z du
registre d'état est déterminé ou modifié lors
Teste et met 41 des bits — Test
and Set Bit. Teste et met 41 des
MODE EMULATION (E =1)
Effectue un OR logique entre le contenu de
V'accumulateur (Low Accumulator — registre
MODE NATIVE (E = 0)
ecaeeresnoosssnscanssesensasssesnocesessnesesesenerssesnosneacesssceessasssesssasseeascouaenesessonees
mulateur reste inchangé. Agit sur les bits N et Z du
registre d'état.
Transfert de l’accumulateur (C — 16
bits) dans le registre D — Transfert
Accumulator to Direct Register. On copie le con-
tenu de |'accumulateur (C) dans le registre direct
(D). Le contenu de l'accumulateur reste inchangé.
Agit sur les bits N et Z du registre d'état.
Transfert de l'accumulateur (C — 16
bits) dans $ — Transfert Accumula-
tor to Stack Pointer Register. On copie le con-
tenu de l’accumulateur (C) dans le registre poin-
teur de pile (S). A reste inchangé. Aucune action
sur le registre d'état.
Transfert de D dans C (accumulateur
16 bits) — Transfer Direct Register
to Accumulator. On copie le contenu du registre
d'adressage direct (D) dans l'accumulateur (C).
D reste inchangé. Agit sur les bits N et Z du
registre d'état.
Test et met zéro des bits — Test
and Reset Bit. Teste et met 4 zéro
des bits de la mémoire @ l'aide de I'accu-
mulateur.
8 bits) et l'adresse effective, moins ladite
adresse. Agit sur le bit Z du registre d'état.
du résultat des opérations A OR B ou AOR W
et pour toute commande relative & Read/
Modify/Write, la régle suivante est 4
appliquer :
— Ajouter 2 cycles siE = 1 ou E = Get le bit
M = 1 (8 bits mode) ;
— Ajouter 3 cycles siE = 0 et le bit M = 9
(16 bits mode).
bits de la mémoire @ l'aide de |'accu-
mulateur.
8 bits) et l'adresse effective, moins ladite
adresse. Agit sur le bit Z du registre d'état.
Effectue un OR logique entre le contenu de l’accumulateur (Accumulator — registre 16 bits)
GUY-HACHETTE
et l'expression représentant une adresse
effective, moins la valeur arithmétique de
ladite expression. Agit sur le bit Z du registre
d'état. Pour tous les modes d’adressage de
TRB, excepté l’accumulateur, si le bit Z du
registre d'état est déterminé ou modifié lors
du résultat des opérations A OR B ou A OR W
Transfert de $ dans C (accumulateur
16 bits) — Transfer Stack Pointer
Register to Accumulator. On copie le pointeur de
pile (S) dans l'accumulateur (C). $ reste inchangé.
Agit sur les bits N et Z du registre d'état.
Transfert de S$ dans X — Transter
TSX
Stack Pointer Register to Index X. On
copie le pointeur de pile (S) dans le registre d'index
X. S reste inchangé. Agit sur les bits N et Z du
registre d'état.
TXA Transfert de X dans l'accumulateur —
Transfer Index X to Accumulator. On
copie le contenu du registre d'index X dans I’accu-
mulateur, tandis que X reste inchangé. Agit sur les
bits N et Z du registre d'état.
Txs Transfert de X dans $ — Transfer
Index X to Stack Pointer Register. On
copie le contenu du registre d'index X dans le
registre pointeur de pile (S), tandis que X reste
inchangé. Aucune action sur le registre d'état.
TXY Transfert de X dans Y — Transfer
Index X to Index Y. On copie le con-
tenu du registre d'index X dans le registe d'index
Y, tandis que X reste inchangé. Agit sur les bits N
et Z du registre d'état.
TYA Transfert de Y dans l’accumulateur —
Transfer Index Y to Accumulator. On
copie le contenu du registre d'index Y dans |'accu-
mulateur, tandis que Y reste inchangé. Agit sur les
bits N et Z du registre d'état.
TYxX Transfert de Y dans X — Transfer
Index Y to Index X. On copie le con-
tenu du registre d'index Y dans le registre
d'index X, tandis que Y reste inchangé. Instruc-
et pour toute commande relative 4 Read/
Modify/Write, la régle suivante est a
appliquer : .
— Ajouter 2 cycles siE = 1 ou E = Get le bit
M = 1 (8 bits mode) ;
— Ajouter 3 cycles siE = 0 et le bit M = 0
(16 bits mode).
tion complémentaire 4 TXY. Agit sur les bits N et
Z du registre d'état.
WAI Attend une interruption — Wait for
Interrupt. Cette instruction met en
attente le systeme pour détecter une interruption
sur la broche 2 (RDY — Ready) du microprocesseur
65C816. N'agit sur aucun des bits du registre d'état.
XBA Permute AH avec Al de C — Exchange
B and A Accumulator. Permutation de
l'octet de poids faible (AL ou A) avec I'octet de
poids fort (AH ou B) du registre accumulateur de 16
bits de large (C). La position des bits du registre
d'état conditionne l'utilisation du registre AL (Low
Byte de l'accumulateur). Agit sur les bits N et Z du
registre d'état.
x Permute les bits de retenue et d’ému-
lation (C « —— » E) — Exchange Carry
and Emulation Bits. Permute la Carry (C) avec le bit
d’émulation (E) pour n'importe quelle valeur de E
(XH = 0; YH = 0; SH = 1; bitM = 1; bitX = 1).
Le bit E est interne au microprocesseur et de ce fait
non accessible directement par le programmeur.
Cette instruction pemet de passer d'un mode
d'adressage 4 un autre (émulation ou native ou
inversement). Pour cela, il suffit de positionner la
retenue (Carry Flag) et d’exécuter |'instruction
XCE. En mode émulation, E = 1, le microproces-
seur fonctionne comme le 6502, c'est-a-dire en 8
bits. En mode native, E = 0, le mode 16 bits est
actif. Si le bit 4 (bit X) du registre d'état est mis a
zéro, alors les registres d'index sont utilisés en 16
bits. Si le bit 5 (bit M) est positionné a zéro, |'accés
4 la mémoire pourra se faire en 16 bits. Agit sur le
bit C du registre d'état et permute celui-ci avec le
bit d'émulation (bit E).
Marcel COTTINI continuera, dans les prochains numéros de
TREMPLIN MICRO, a vous aider a vous familiariser avec le
65C816, mais aussi avec ProDOS, systeme d’exploitation
avec lequel il faudra de plus en plus compter.
TREMPLIN MICRO wi
PC UTILTAIRE Eee Marcel COTTIN
Pour APPLE II,
I+, HE,
He+ et IIc
Cet utilitaire vous rendra de nombreux services en autorisant la mise en place, dans
votre catalogue (directory) de disquette, de certaines dispositions nouvelles. Plusieurs
possibilités vous seront offertes, suivant que vous désirerez cacher un nom de pro-
gramme, le restituer par la suite, ou encore mettre en place des titres pour repérer des
sous-programmes éventuels. Placer des lignes d'espace sera un jeu d’enfant. Le nom de
vos fichiers textes pourra étre modifié pour adopter une présentation sans les paramé-
tres caractéristiques (type de fichier et occupation des secteurs). Seul point noir au
tableau : le nom du fichier ne devra pas dépasser Ia taille de 21 caractéres maximum.
Cette situation est imposée par la mise en place d'un artifice décalant de huit positions
‘emplacement du nom du fichier dans son entrée de la table des matiéres.
A propos du programme | Mise en place titre
| Option permettant de donner un certain cachet a
votre table des matiéres de la disquette. I] vous sera
Lors de l'exécution du programme, un menu sera affiche : | Aes
donné 4 loisir de placer des titres ou sous-titres per
(1) Cacher un programme. mettant de classer vos programmes et sous-
(2) Récupérer le programme. programmes au niveau du directory. Des lignes
(3) Mise en place titre. d'espace, pour effectuer un travail fini, sont égale-
(@) Mise en place fichier /titre ment autorisées. Loption 5 permet de récupérer le
(5) Récupérer fichier/titre nom du titre et de le convertir en nom de fichier pour
une éventuelle élimination du directory (DELETE)
a .
Détail de chaque option : Mise en place fichier/titre
Option spécialement étudiee pour traiter les noms
Cacher un programme des fichiers texte. Elle permet de re idre invisible au
Cette option du menu permet la modification du nom niveau du directory, tout nom de fict ier texte. Elle est
d'un programme du type Basic Applesoft, Texte ou en somme similaire 4 l'option (1) qi traite les autres
Binaire. Dans les deux premiers cas, le nom du pro- types de fichiers,
ramme aura totalement disparu aprés |'utilisation de
futiltare. Dans le dernier viel tillisation d'un nom Récuperer fichier/texte
représentant un fichier Binaire, celui-ci restera appa- Option complémentaire 4 la précédente, elle autorise
rent, mais ne pourra plus étre exécuté. Cette pratique la récupération du nom du fichier texte traité avec
permet de protéger dans une certaine mesure Voption (4). M,C.
certains de vos programmes, qui ne pourront étre
exécutés que par un artifice (consulter & cet effet les A vos claviers pour effectuer le menage au niveau de la table des
matiéres de vos disquettes. Avec un peu de maitrise, cet utilitaire
lignes 350 4 400). vous permettra de réaliser des protections av niveau de 'accés
au nom de vos fichiers, par le simple fait de déplacer entrée
Récupérer le programme dans la table des matiéres. A cet effet, je vous conselle de lre du
Option complémentaire de la précédente, permettant méme auteur, louvrage sur le DOS 3.3, GUIDE LU PROGRAM-
de récupérer le nom dun fichier rendu inopérant par MEUR, édité par les éditions du SYBEX. Il y figure en bonne place,
" . ra outre les vecteurs utilisés par le DOS, le detail d'une disquette, en
le menu (1). Les lignes 500 4 530 permettent & partir particulier les entrées de la table des matiéres avec tous les para-
dun autre programme, d'appeler et d'exécuter un ‘métres disponibles. Un livre indispensable dans votre bibliothé-
fichier traité par l'option (1) que Apple. NESTOR
GUY-HACHETTE
NNNN
TRI
mrys-teseasa
1@ REM ctMctM MENUctM ----ctJctJ 290 GET AS: IF A$ = CHRS (27) T
28 CALL 1042: REM REVECTORISE L HEN 58 BD89
E pos oi4F | 366 IF CAS < > "" AND AS = CHR
38 ONERR GOTO 1110 EB13 $ (13) THEN A$ = CAS: GOTO 3
40 D¢ = CHR$ (13) + CHRE (4) ea88 58 43F5
56 CAS = "":AS = ""SBS = ""ICH 310 IF A$ = CHR (13) THEN GOS
mw ERS TS 9996 UB 1126: GOSUB 1124: GOTO 27
68 TEXT : HOME : INVERSE 2132 8 32E2
78 VTAB 2: PRINT ":"3 SPCC 12): 326 PRINT AS; A750
HTAB 28: PRINT SPCC 12);":" 338 CAS = CAS + AS 174D
: VTAB 22: PRINT “s"3 SPCC 3 346 GOTO 298 2946
8)5"2"5 AB3E | 358 PRINT D$; "UNLOCK" ;A$ c1eD
88 FOR I = 3 TO 21: VTAB I: HTA 368 BS = AS 2098
B 1: PRINT " "3: HTAB 40: PR 376 IF LEN (A$) > 8 THEN AS =
INT " "3: NEXT FD2D MIDS (A$,1,8) OFA7
96 YTAB 1: HTAB 15: PRINT “: 386 FOR I = 1 TO 28 + LEN (AS):
woes : HTAB 15: PRINT * L$ = L$ + CHR (8): NEXT 1 9876
“TITREUR : HTAB 15: PRINT 398 PRINT D$;"RENAME" ;B$;",";A3;
Hp eee NORMAL 9845 Ls FCF@
168 VTAB 7: HTAB 5 O@DE | 488 PRINT D$;"LOCK" ;AS;L EE15S
116 PRINT "<1> CACHER UN PROGRAM 418 GOTO Sé 7416
ME* Ac246 | 428 REM ctMctM RECUPERER LE PROG
126 VTAB 8: HTAB 5 9OFDF RAMMEeM -------------------
13@ PRINT “<2> RECUPERER LE PROG ---ctJctd
RAMME ." 5028 | 438 HOME : PRINT "RECUP FICHIER:
148 VTAB 18: HTAB 5S 8768 ": PRINT "###eeeeHHHERE" SP
15@ PRINT "<3> MISE EN PLACE TIT RINT : PRINT "Nom du fichier
RE.* 1467 a récupérer:": PRINT "--->
168 VTAB 12: HTAB 5 : 430A a 443A
178 PRINT "<4> MISE EN PLACE FIC 440 GET AS: IF AS = CHRS (27) T
HIER/TITRE." BE31 HEN 56 BDe?
184 VTAB 13: HTAB 5 e098 | 450 IF CAS < > "" AND AS = CHR
196 PRINT "<5> RECUPERER FICHIER $ (13) THEN AS = CAS: GOTO 5
7TITRE." 9279 ag 39F2
204 VTAB 17: HTAB 5S 450F | 460 IF A$’ = CHRS (13) THEN GOS
216 PRINT "VOTRE CHOIX :"" 2BA3 UB 1128: GOSUB 1128: GOTO 42
228 VTAB 21: HTAB 3 6968 8 @cDF
238 PRINT *< ESC > Pour quitter 470 PRINT A$; A758
"; YVTAB 17: HTAB 28 SEER | 488 CAS = CAS + AS 174D
248 GET R$: IF R# = CHRS (27) T 498 GOTO 448 F443
HEN GOSUB 1120: GOSUB 1126: 5e@ BS = AS 2098
TEXT : HOME : YTAB 5S: PRINT 516 IF LEN (A$) > 8 THEN AS =
" Terminé...": END 3073 MIDS (A$,1,8) @FA7
256 R= VAL (R$): IF R <1 ORR 526 IF LEN (A$) 4 2 ¢ > INT ¢
> 5 THEN GOSUB 112@: GOSUB LEN (AS) / 2) THEN AS = MID
1128: GOTO 248 AC8E $ (AS,1, LEN (A$) - A) 4162
268 ON R GOTO 276,426,586 ,580,82 538 FOR I = 1 TO 28 + LEN A$):
C) 2364 # = L$ + CHR$ (8): NEXT I @B76
27@ REM ctMctM CACHER UN PROGRAM 54@ PRINT D$; "UNLOCK" ;A$;L$ C4688
MEctM ------------------- ctJ 558 PRINT D$;"RENAME" ;A$;L$;","5
ctd BS 33F8
288 HOME : PRINT "NOM DU FICHIER 568 PRINT D$;"LOCK" ;BS 996B
@ CACHER:": PRINT “---> "3 2545 | 578 GOTO 58 Ta be
TREMPLIN MICRO 19
850 IF CA$ < > "" AND AS = CHR
DIRECTORY UTILITY (suite) a a ae
588 REM ctMctM PLACER UN TITREct i) SiFé
M serene nnn - nna ctdctd 868 IF A$ = CHR$ (13) THEN GOS
596 HOME : PRINT "TITRES et ESPA UB 1124: GOSUB 112@: GOSUB 1
CES:": PRINT "*###eeHRH HERE 136: GOTO 826 1E92
xeee"s PRINT + PRINT " - ¢R 878 PRINT At; A75A
ETURN > Pour une ligne d’esp 888 CAS = CAS + AS 174D
ace.": PRINT " - < CARACTERE 898 GOTO 346 447
S$ > Pour un titre." 8FC2 908 PRINT : PRINT “Tapez son anc
688 PRINT 75BA ien nom: “ BsBs
616 GOSUB 730 Foaq | 918 GOSUB 1016 5F72
$20 UTAB 9: HTAB 1: CALL - 868 a4i1 | 928 YTAB 9: HTAB 1: CALL - 868 8411
$38 PRINT "Tapez votre caractére 938 PRINT "Tapez votre caractére
de controle: "3: GET Cs 3037 de controle: “3: GET C% 3C37
440 IF C$ = CHRS (27) THEN 50 4pae | 248 IF C8 = CHRS (27) THEN 50° 4BAE
650 IF C$ < CHRS (65) OR CS > 958 IF C$ < CHRS (65) OR C$ >
CHR$ (98) THEN GOSUB 1120: CHR$ (98) THEN GOSUB 1120:
GOSUB 1120: GOTO 620 1190 GOSUB 1128: GOTO 928 3873
668 FOR 1 = 1 TO 8:L\$=L$ + CH 968 FOR 1 = 1 70 8:L$ = L$ + CH
R$ (8): NEXT I EEEB R$ (8): NEXT I EEEB
670 IF 8 = "" OR R = 3 THEN AS 970 PRINT D$; "UNLOCK" ;C3;L$;B$ — ABSE
= "TITRE": PRINT DS"BSAVE" 34 980 PRINT D$;"RENAME" ;C$;L;B$;"
$" ,A$2008,L1": GOTO 760 F67C 1" 5S 1792
688 At = BS ABSB 998 PRINT D%;"LOCK" ;AS BF6A
$98 PRINT DS; "UNLOCK" ;AS ciep | 1888 GOTO S5é 7416
788 PRINT D%;"RENAME" ;A$;"," 503; 1618 GET WS: IF Ws = CHR (8) TH
L$;Bs £692 EN GOTO 1688 1713
718 PRINT 0$;"LOCK" ;C$;L3;BS poppe | 1820 IF WS = CHR (27) THEN 5@ 1cc2
728 GOTO 56 741g | 1038 IF BS = "" AND WS = CHRS (1
730 GET WS: IF We = CHRS (8) TH 3) THEN GOSUB 1128: GOSUB 1
EN CALL - 1008: PRINT " “3: 128: GOTO 1616 B168
GOTO 796 Epos | 164@ IF We = CHRS (13) THEN RET
746 IF We = CHRS (27) THEN 56 1CC2 URN 6589
750 IF We = CHRS (13) THEN CAL 1656 BS = BS + WE EBOF
L - 868: PRINT WS: RETURN AsAD | 1068 PRINT WS; 9476
766 BS = BS + WS EBOF | 1876 GOTO 1616 366D
776 PRINT WS; e479 | 1088 PRINT W;:BS = MIDS (BS,1,
788 GOTO 738 2B45 LEN (BS) - 1) 219E
799 IF BS = "" THEN 730 gags | 189@ GOTO 1616 366D
880 PRINT W$;:B% = MIDS (BS,1, 11@@ REM ctMctM GESTION ERREURctM
LEN (BS) - 1) 161. OSS Eee ctictd
816 GOTO 738 2pa5 | 1118 GOSUB 1126: GOSUB 1126: GOTO
82@ REM ctMctM RECUPERER LE TITR 56 7A6C
EctM 1126 FOR X = 1 TO 8:XX = PEEK (4
J 9200) - PEEK (49208): NEXT
838 HOME : PRINT "RECUP TITRE:": X: RETURN CAB?
PRINT “####eee8e8%"" > PRINT 1136 VTAB 22: HTAB 1: PRINT " Err
: PRINT "Nom du fichier apré eur d’entrée !!!"3 PRINT " T
s récupération:": PRINT "--~ apez une touche pour continu
>"; F4CB er. "3: GET RS E438
848 GET AS: IF AS = CHRS (27) T 1146 IF R@ = CHRS (27) THEN 58 3BBD
HEN 58 Boge | 1158 RETURN e 6381
GUY-HACHETTE
mot
fichi
lea
mon
routi
135.
pass
Fic!
cons
PLIN
fichi:
(non
ma 8
AGE MACHINE [tures
Clement RENARD
ANAGRAMMES
RECHERCHE DES ANAGRAMMES DANS LES MOTS DE SIX LETTRES
OBJET; Rechercher les
anagrammes d'un
mot de six lettres dans un
fichier binaire.
FONCTIONNEMENT :
Le court programme ci-contre
montre que tout est fait par la
routine LM, 4 partir de la ligne
135. Seule la saisie du mot-clé
passe par le Basic.
FICHIER ; Vous lirez plus
loin comment le
constituer. La disquette TREM-
PLIN MICRO vous fournit un
fichier de plus de 3000 mots
(noms communs).
100 LOMEM: 28500: PRINT CHR$ (4)"BLOAD M6" 244C
1@5 TEXT : HOME : PRINT CHRS (4)"PRE3": PRINT ESEA
118 GOSUB 145 294
115 PRINT "RECHERCHE DES ANAGRAMMES DUN MOT DE S
1X LETTRES" é6DBD
128 VTAB 7: CALL - 958 A3GE
125 PRINT "MOT DE 6 LETTRES: ...... “y: POKE 1483,
18: INPUT "";M$: IF M& = "" THEN 148 989C
138 IF LEN (M$) < > 6 THEN 128 1E7F
135 PRINT : CALL 768,M$ 4BC2
148 PRINT : VTAB 23: PRINT "<1> AUTRE MOT ~<2) ME
NU DE DISQUETTE ~<3) TERMINEctG "3: GET R$: V
TAB 22: PRINT BA74
145 IF R$ = "1" THEN 128 7EBF
158 IF R$ = "2" THEN PRINT CHR$ (4)"RUN MENU,D1
* 5ce2
155 IF R$ < > "3" THEN 14 4393
164 HOME : END BES!
165 FOR 1 = 748 TO 862: READ R: POKE 1,R: NEXT :
RETURN 9E14
170 DATA 32,198,222,32,227,223,160,2,177,131,153,
24,0,136,16,248,198,24,169,258,133,6,169, 31,1
33,7,165,6,24,105,6,133,4,144,2,230,7,164,24,
177,25,153,95,3,136,16,248,160 7448
175 DATA 5,177,4,24,41,166, 24,221 ,95,3,248,5, 282
116,248,48,217,169,8,157,95,3,136,14,232,168,
8,177,6,9,128,32, 237,253,206 ,192,6,208, 244,16
2,2,32,74, 249,248, 188,96 ceE3c
20 BE DE JSR
20 £3 DF JSR
AG 02 LDY
BI 83 LDA
99 18 GG STA
88 DEY
10 FB BPL
cé 18 DEC
Ad FA LDA
85 06 STA
A? 1F LDA
85 07 STA
TREMPLIN MICRO
LES LIGNES DE DATA =
$DEBE ‘| CHKCOM teste la présence de la virgule et
ig PTRGET recherche la variable par son nom.
($83), On sait lire la longueur de la variable (et son adresse)
$0018,Y en $83-84. On sauvegarde ces renseingements en
$18-19-1A.
$308
1
£SFA
$06
£$1F
$07
Longueur = longueur — 1.
Uadresse du fichier binaire (— 6)
est installée en $6-7.
(Suite page 22)
21
31A:[ [AS 06 LDA $06 7
31c:|| 18 CLE
31D:|| 69 06 ADC £806 |
31F :|| 85 G6 STA $06 |
321 :|| 96 o2 BCC $0325 |
323 :|| £6 G7 INC $07 J
325 :|| A4 18 LDY $18
327]:|| B1 19 LDA ($19),Y
329°: 99 SF G3 STA $035F,Y
32¢ :|| 88 DEY
32D:|| 10 F8 BPL [$0327] _|
32F.:| | AG O5 LDY 0
[331] B1 G6 [— LDA ($06),¥
333.:|| Fo 29 | BEQ $035E
|| A618 | LDX $18
337]:| | DD SF G3} CMP x
33A:|| FO OS BEQ } [$0341]
3ac :|| CA | | Dex 7
33D 10 FB | BPL | [$0337
33F :| 130 D9 BMI | SO31A
341]:| AI oo LDA! £$00 7
:| 9D 5F O3 STA $G35F,X
346:| 88 DEY
347:| 10 £8 BPL
- —_
9 :| AG oa LDY £$00
34B :| Bl 06 LDA ($06),Y
4D:| G9 80 ORA £$80
34F :| 26 ED FD JSR $FDED
352 :| C8 INY
353 : CO G6 CPY £$06
355 :| DO F4 BNE [$634B
357 :| A2 G2 LDx £$02
359::| 20 4A F9 JSR $F94A J
35¢:L FO BC BEQ $031A
35E: 60 RTS
Uadresse du fichier est incrémentée de 6 pour lire les
caractéres du mot suivant.
Longueur du mot dans Y.
Le caractére de rang $19-1A + Y dans VAccumulateur
est sauvegardé en $35F + Y... et ainsi de suite.
Longueur des mots du fichier (6 45 = 6).
On lit le caractére de rang $6-7 + Y.
Si c'est un @, le fichier est épuisé : sortie.
Longueur du mot que l'on teste dans X.
Comparaison de l’accumulateur avec caractére.
Si égal, saut.
Sinon, X = X — 1 pour contréler le caractére sui-
vant... si la boucle n’est pas terminée.
Le mot n'est pas une anagramme : retour au début.
Le caractére est mis 4G pour qu’on ne puisse pas I'uti-
liser plusieurs fois.
ye eer
Tant que Y ne vaudra pas $FF, on bouclera...
Affichage du mot, caractére par caractére.
ORA met le bit 7 4 1 (le fichier binaire contient des
mots enregistrés en ASCII).
On envoie 2 espaces.
Vers un autre test.
Retour au Basic.
2 h h : li :
Rechercher, dans
OBJET:
———__ un fichier de
mots de 6 lettres, ceux qui
comportent tel ou tel carac-
tére 4 tel rang (ligne 115).
FONCTIONNEMENT :
La saisie du “mot-clé”, dans
lequel les caractéres “nuls”
seront remplacés par un
tiret, est faite 4 partir du
Basic (ligne 125).
22
1@@ LOMEM: 28506: PRINT CHR$ ¢4)"BLOAD M6" 244C
165 TEXT : HOME : PRINT CHRS (4)"PRE3": PRINT E9EA
11@ GOSUB 165 294C
115 PRINT “RECHERCHE DES MOTS DE 6 LETTRES CONTEN
ANT UNE PARTIE D’UN MOT DE 6 LETTRES “""""<Sy
ntaxe: -TOI ou ----UX ou encore -U--I) 6317
12@ VTAB 7: CALL - 958 A3BE
125 PRINT "MOT DE 6 LETTRES: . oe"3s POKE 1483,
18: INPUT "";M%: IF M$ = "" THEN 148 989C
13@ IF LEN (M$) > 6 THEN 120 EBAE
135 PRINT : CALL 768,M% 48C2
146 PRINT : VTAB 23: PRINT "<1> AUTRE MOT ~<2> ME
NU DE DISQUETTE ~<3> TERMINEctG “3: GET RS: V
TAB 22: PRINT BA7E
GUY-HACHETTE
segauanuaucqeseessasonsocesnssncesesenssnnanesseeeenesessesesassseseoesesseuassseseeeseoEseEeeeeeeeeens
Exemple : — | — — — € permettra
Golfherouslesmatsdes «145: TF RS = "1" THEN 120 _
lettres dont le 2* caractére est un Jet le der- 150 IF Re = "2" THEN PRINT CHR$ (4)"RUN MENU, D1
nier un E : AJUSTE, AJOUTE... par exemple. ” 5c82
REMA\ : lest inutile de 155 IF R$ < > "3" THEN 140 4393
~~ taper tout le = 16@ HOME : END BES!
mot quand on ne désire testerque = 145 FOR 1 = 768 TO 847: READ R: POKE I +R: NEXT :
n ada 2m RETURN E517
SE ere «= 170 DATA a; a Blt 1B,
ni 24,6,136,16,248,198,24,169,258,133,6,169,31,
UMITES : piety ape 33,7,165,6,24,105,6,133,6,144,2,230,7,168,8, 1
‘é ir 77,6 383C
complet, l'écran va se remplir de tous ’
les mots commencant pas A... Cest. 175 DATA 240,36,164,24,177,25,201,45,240,4,209,6,
sons danger mais pas joli et inutile. 268,227,136,16,243,168,6,177,6,9,128,32,237,2
Vous pouvez évidemment modifier lo 53,208,192,6,208,244,162,2,32,74,249, 248,263,
DEMO en Basic pour I’éviter ! 96 COEE
LES LIGNES DATA
4 Ks aon apres 7 Voir programme précédent.
as LDY on ao
LDA 83), ¥ ton ” “
gueur et adresse du “mot” de base
18 GG BA ——«89818.V | sont sauvegardées en $18-1A.
F8 BPL La longueur est décrémentée de 1 car le @ compte.
18 DEC 8 ad
FA LDA £SF, 7a
06 STA $06 Uadresse du fichier binaire des mots de six lettres est
1F LDA £$1F installée en $6-7 (adresse — 6).
a7 STA $07 =
06 we $06 7
Ke : .
Adresse = adresse + 6 pour lire le mot suivant.
bd aoe gee Quand il y a retenue,
| 02 BCC $0325 il faut incrémenter la partie haute ($7).
323: E6 O7 INC $07
RECHERCHE
325 : AG ag LDY £300 Y = @ (boucle).
327 : Bl G6 LDA G6 Lecture du caractére de rang $6-7 + Y.
329 ;| FO 24 BEQ "] |$034F Si le caractére lu dans le fichier est 0, c'est fini !
BS A4 18 LDY 8 Longueur du “mot” 4 tester dans Y.
(32pD]:| | B1 19 LDA ($19).¥ Lecture du caractére de $19-1A + Y.
H c9 2D CMP D Est-ce un tiret ?
331 :| | FO G4 BEQ oI Si oui, saut.
333 : Di 06 CMP ($06).Y Est-il égal 4 celui du mot ($6-7 + Y) ?
335 :| |_DO E3 BNE [$031A | Non : il faut passer au mot suivant.
a 88 DEY
10 F3 BPL Boucle si Y plus grand ou égal 4G.
AFFICHACE
33A : AG GG LDY £$00
33C : Bl G6 LDA A
33E : a9 80 ORA
ae | aa ED FD ine Affichage des 6 caractéres du mot
344: CO 06 cPY puis envoi de 2 espaces.
346: DO F4 BNE
348 : A2 62 LDX
34A 20 4A F9 JSR
Fo cB BEQ Et on passe au mot suivant éventuel.
: 60 RTS _| Retour au Basic. «
TREMPLIN MICRO
[| es
Saisie (fichier DIMNAIFE) 4665500 menos
(ProDOS conseillé)
Vous pouvez vous amuser 4 saisir vos propres mots (4 partir d'un dic-
tionnaire des mots croisés... ou de Scrabble). Vous pouvez aussi vous
offrir la disquette TM (plus de 3000 mots).
Adresse d'origine: 'ci c'est $2000 (8192), mais c'est 4 vous de choisir.
——————_Méme constation pour LOMEM. Dans notre DEMO,
LOMEM vaut 28500, mais c'est une limite arbitraire.
Fin de fichier: Le fichier se termine par deux mots nuls (douze octets 4 0
dans le cas d'un fichier avec mots de 6 lettres).
16@ TEXT : HOME : LOMEM: 28560 DA37 Cette petite routine est
11@ PRINT CHRS (21) Aqs5 prévue pour saisir des
126 PRINT "SAISIE DE MOTS POUR FICHIER BINAIRE" 7F62 mots de n‘importe quelle
130 PRINT *--------- GRAS pCiS ares i alice nc ” 4825 longueur. Il suffit de
140 POKE 34,3: = é:L 26A1 modifier la valeur de L
150 N = @:AD = 8192 - L fer. _ (ligne 149). Si vous chan-
16@N=N+41 CE: bod V'adresse d'origine
178 VTAB V: PRINT "MOT "N". -) ....."3:H = PEEK (ligne: 158, AD) in’ou-
bliez pas de remplacer
(36) + 1 -L: CALL - 958 7A2B le "A$2000" de la ligne
188 VTAB V: HTAB H: INPUT "" ;M% B7BE 270 par la nouvelle
196 IF M$ = "" THEN N=N - 1: GOTO 248 C907 valeur hexa.
208 IF LEN (M$) < > L THEN 186 6398
218 AD = AD + L: FORI = AD TOAD +L- 1:AS= A 7
SC ¢ MIDS (M$,I + 1 - AD,1)): IF AS ¢ 65 ORA ERREUR :
S > 98 THEN AD = AD - L: GOTO 188 3387 Aucune correction n’est prévue.
220) ROKE (ABs: NERT. 1 MOC? it ca eile Ualevlor idles
238 GOTO 166 3942 instructions pour se donner le
24@ VTAB 22: PRINT "<1> TERMINE <2> ENCORE ";: GE temps de relire chacun des mots
T R$: PRINT R#: IF RB = "1" THEN 168 27F5 rentrés au clavier. De plus, si
256 IF R@ < > " THEN 246 7893 vous constatez par la suite qu'un
249 AD = AD + Li FORT = AD TOAD + L + Li POKE 1 ee palm
16: NEXT :LF = AD + L + 5 - 8191 S@07 LOAD FICHIER, de poquer la cor-
270 PRINT CHRS (4)"BSAVE M."; STRS (L);",A$2000, rection... puis de vous offrir un
ELE AS@E BSAVE du FICHIER rectifié.
A propos de RECH6 et d’ANAG :
Des modifications mineures vous permettront d'utiliser ces deux routines pour des recher-
ches avec des mots de 7, 8, 9, 10 lettres et plus. Si vous ne trouvez pas vous-méme Ia solu-
tion, adressez-moi une enveloppe timbrée et vous aurez rapidement la réponse. NESTOR.
24 GUY-HACHETTE
DIDA [ay (DOS ProDOS Jean GOUTELLE
EN TOUTES LETTRES
| OU LA BONNE ORTHOGRAPHE DES NOMBRES
| Orthographier convenablement les grands nombres... lorsqu’il faut les
libeller en toutes lettres, n‘est pas forcément de tout repos. Les caissiers de
nos établissements bancaires en savent quelque chose : que de vingt ou de
cent gratifiés d'un s... ou privés de cette marque du pluriel, alors que celle-
| ci est indésirable... ou au contraire nécessaire.
|
LE PROGRAMME de Jean GOu- donne son verdict, ou vous ne répondez
TELLE saura pas et il vous fournit alors la solution du
rafraichir votre mémoire défaillante ou probléme posé. Attention ! quand vous
| pallier votre ignorance. Ou vous répon- écrirez en toutes lettres, n’oubliez pas la
| dez et il analyse votre réponse, puis vous | mention FRANC(S) !
LES CORRIGES Proposés sont, en principe, en accord avec le Dictionnaire
des difficultés de la langue francaise des Editions Larousse.
| 100 REM #e+4eseeHeHRRHRRHREES
185 REM *LIBELLE D’UNE SOMMEs
\ 110 REM * EN TOUTES LETTRES *
| 115 REM *44444exseRHRR ERR HREH
F 128 ; 683A
| 125 REM Ce programme traite les entiers positifs de
6 & 999 999 Billions
| 138 DIM N$(120),C$<(5@) ,CPS(58) 49BE
} 135 FOR I = @ TO 116: READ N$(I): NEXT : FOR I = 1
TO 38:T$ = T$ + "_": NEXT 8EFE
148: 883A
145 REM ##enndeennnecaexexenee
15@ REM *ENTREE D’UNE SOMME *
| 155 REM *ET TEST DE VALIDITE*
160 REM #xxeRHHKHRHERHERERRER
165 : - 863A
’ 178 TEXT : HOME : INVERSE : PRINT " CETTE SOMME...
, (aes en EN TOUTES LETTRES S.U.P.";: NORMAL : PRINT " "T
i mum) 4 transposer. $: POKE 34,2 3A61
|
ouausanesossenensensnsnnsencensvenessnnzcocoesesaensenenen*<s9sesaconeneneecenansnesseneneseencccenses
} TREMPLIN MICRO 25
a
EN TOUTES LETTRES
175
195
286
285
218
215
228
225
238
235
248
245
258
255
268
265
278
275
288
285
296
295
388
385
318
315:
328
325
FOR I = 1 TO 7:TNS(I) = "":TRS¢I) = "": NEXT 3S
FS = "":DE$ = "": VTAB 2: HTAB 5S: PRINT “Ecrive
z un nombre en chiffres": HTAB 18: PRINT “.....
VTAB PEEK (37): HTAB 18: INPUT "";NC$: PRINT T
$: IF NC$ = "" THEN 526
L = LEN (NC$):NC = VAL (NC$): IF NC ¢ > @ TH
EN FOR I = 1 TO L:LX$ = LEFTS (NC$,1); IF LX¢
= "@" THEN NC$ = MIDS (NC$,2): NEXT
L = LEN (NCS): FOR I = 1 TO L:LX$ = MIDS (NCS
31,1): IF LX® ¢ "@" OR LX# > "9" THEN 178
NEXT I
REM #HRHHRHR REE RHRH EER ERE RER
REM *#SEPARATION EN TRANCHES*
REM #4 RHHHHHERRRR HERE ERREEE
NT = INT (L / 3):
R = 1: GOTO 255-
FOR I = 1 TO NT:TN#(1) =
3,3): NEXT sTR=1-1
IF L/3< > INT (L / 3) THEN TNS(I) =
(NC$,L - NT * 3):TR = 1
IF TR > 6 THEN 176
IF L < 3 THEN TNS(1) = NC$:T
MIDS «(NC$,L + 1-1 *
LEFTS
REM #HHRRRHHRRERE HHH ER EERE
REM *#ANALYSE DES TRANCHES*
REM ##RRRRHHRHER RHEE R REE
FOR K
K)
= TR TO 1 STEP - 1:TNS = TNSCK): IF TNS<
= "688" AND NC <¢ > 8 AND K ¢ > 5S THEN 296
CT = VAL ¢ LEFTS (TN$,1)):CD = VAL ¢ RIGHTS ¢
TN$,2)): GOTO 535
SF = "": IF CT > 1 AND CD = @ AND K <¢
K < > 6 THEN SFS = "S"
TRS(K) = N$(108 + CT) + SFS + " " + NSCCD) + "
"+ N$C11@ + K): IF (K > 2 AND K ¢ 6 AND VAL ¢
TNS) > 1) OR (K = 5 AND VAL (TNS(6)) > 6) THEN
TRS(K) = TRECK) + "S"
NEXT K
> 2 AND
REM #HHRHRRRHHH ERR EHRRER
REM #FORMAT SCIENTIFIQUE*
REM #4HARHRH HARA RREERRRER
cli¢="" 1 = 1 TO TR:C1$ = MIDS (" “"" +
NC$,L + * 1,3) +" " + CI$: NEXT
SFS “"; IF NC > 1 THEN SF$ = "S"
VTAB 3: CALL - 868: HTAB 14 - L / 2: PRINT CI#
" "3: INVERSE : PRINT "FRANC" + SF%: NORMAL
FOR
3
oe
~ ee
a
5388
ADD?
7BD2
4600
9DCB
883A
8634
8DBA
8616
3cce
B6B4
883A
883A
D@8E
88A8
5C63
9CF1
AICD
883A
883A
7E88
3731
756A
663A
189 Arrét du_ pro-
gramme sur un simple
RETURN.
185 Suppression des
zéros en téte du nom-
bre.
199 Si le nombre ne
contient pas que des
chiffres, rejet.
216 Tranches de 3
chiffres.
225 Cas d'un nombre
plus petit que 1000.
235 La premiére tran-
che, a gauche, ne con-
tient pas 3 chiffres.
240 S'il y a plus de 18
chiffres, rejet.
270 Analyse de gau-
che 4 droite.
280 Pluriel de cent.
285 Traduction litté-
rale, par tranches,
complétée par un s,
sauf pour MILLE.
305 Pour plus de lisi-
bilité du nombre en
chiffres.
320 Séparation des
tranches de 3 chiffres
et formation d'une
chaine.
325 Pluriel de FRANC.
330 Affichage de la
chaine en chiffres a
transposer.
GUY-HACHETTE
360 Sur RETURN seul,
pas de traduction pro-
posée. Branchement
direct au modéle.
370 Elimination des es-
paces aprés FRANC(S).
375 Chaque “mot” de
la chaine est mis dans
un tableau CP$(_).
NR = NM, nombre de
mots de la chaine.
495 Cas de nombre
2% 2 millions compor-
tant six zéros ou plus.
415 Reconstitution
d'une chaine modéle
unique, formée avec
les éléments de la
ligne 285.
420 Cas d'une répon-
se vide. Chaque mot
de la chaine modéle
est transféré dans un
tableau C$( ) par
GOSUB 585.
450 Cadrage adapté
4 la longueur de la
chaine. Si le nombre
de mots n'est pas le
méme, FG = 1, affi-
chage sans analyse.
455 Evite les coupu-
res en fin de ligne.
469 Affichage direct
du modéle.
479 Non identité des
“mots” en INVERSE.
480 Nombre de
faute(s) et affichage si
la chaine réponse a le
méme nombre
mots que le modéle.
348
345
358
355
368
365
378
375
388
385
398
395
408
405
415
428
425
438
435
448
445
458
455
468
465
476
475
480
485
498
495
5ee
585
REM ###eReH KH RHRHREE
REM *CHAINE PROPOSEE*
REM ####eee eR RHH RHEE
VTAB 4: HTAB 6: PRINT "“Ecrivez-le en toutes let
tres": VTAB 18 - L / 4: CALL - 958: INPUT "";C
$:FG = 6: IF C$ = "" THEN FG = 1: VTAB 12: HTAB
8: FLASH : PRINT "LA REPONSE CORRECTE EST:": NO
RMAL : PRINT : GOTO 398
VTAB 28: PRINT "D’accord ~<O/N) "3: GET R$: PRI
NT : IF R$ <¢ > "O" THEN 345
C = LEN (C$): IF RIGHTS (C$,1) = “ " THEN C%
= LEFT$ (C$,C - 1): GOTO 378
VTAB 15: CALL - 958: FOR X = 1 TO 5@:CPS(X) =
“"; NEXT :; HTAB 12: FLASH : PRINT "ANALYSE EN C
OURS"; NORMAL : GOSUB 585: FOR I = 1 TO NM:CPS<¢
1) = C$(1): NEXT I:C% = "":NR = NM
REM ##exHRHR ERR RHEH
REM *CHAINE MODELE*
REM #8 HH RHR RHR HER
DES = “": IF VAL ¢ RIGHTS (NC$,6)) = 6 AND TR
> 2 AND NC < > @ THEN DES = "DE "
FOR K = TR TO 1 STEP - 1:C% = C$ + TRS(K) + *
"; NEXT :C$ = C$ + DES + "FRANC" + SF$:C = LEN
(C$)
GOSUB 585: IF FG THEN 455
REM #H RHR RRR RERE EERE REE
REM *ANALYSE DE CONFORMITE®*
REM * ET AFFICHAGE *
REM #H#ERHRHRRH RHR ERE R RHEE
F = 6: VTAB 12: CALL - 958: PRINT T#: VTAB PE
EK (37): HTAB 15: PRINT " Corrigé ": VTAB 19 -
C / 68: IF NR < > NM AND NOT FG THEN FLASH :
PRINT "ERREUR D’ECRITURE! VERSION CORRECTE: ":
NORMAL : CALL - 198:FG = 1
FOR I = 1 TO NM:M$ = LEFTS (C$¢I), LEN (C$¢(1))
- 1): IF PEEK (36) + LEN (M$) > 39 THEN PRIN
Tk
IF FG THEN PRINT C$(1);: GOTO 475
PS = LEFT$ (CP$(1), LEN (CP$(I1)) - 1): IF M$ =
P$ THEN PRINT C$(1)3: GOTO 475
INVERSE : PRINT C$(I);: NORMAL :F = F + 1
NEXT I: PRINT :F$ = “": IF F > 1 THEN F% = "5s"
IF NOT FG THEN POKE 35,24: VTAB 22: PRINT F"
faute"Fs
:
REM #44RRHRRRRHR REM
REM *POUR LA SUITE®
REM ##RRR RHR RHRRER
(suite au verso)
883A
FFB3
8ESD
7A4A
F9Be
883A
883A
FFF
1613
EA28
883A
D659
SBE@
8F79
1454
£834
F339
8B34
883A
863A
TREMPLIN MICRO
ee
27
EN TOUTES LETTRES
Sie
515
528
525
538
535
548
545
558
555
568
565
576
575
588
585
598
S95
688
685
618
615
626
625
636
635
648
645
658
655
668
665
678
675
POKE 35,24: VTAB 23: PRINT T$;: HTAB 6: VTAB 23
: INVERSE : PRINT "ESP";: NORMAL : PRINT ": Aut
re TEST; ou Fin: “;: INVERSE : PRINT "“ESC";: NO
RMAL : GET R$: IF R$ = CHR (32) THEN 158
IF R$ < > CHRS (27) THEN 495
TEXT : HOME : END
REM ##HHRRRHRR RRR RRR RE
REM *CAS PARTICULIERS*
REM ###HRRRR RRR RRR REE
IF NC = 8 THEN TR$(1) = "ZERO": GOTO 365
IF <K = 2 OR K = 6) AND CD = 1 THEN CT = @:CD =
@: GOTO 286: REM Cas des Mille et Mille Billion
s
IF K = TRAND L << > 3 * TR THEN CT = 6: GOTO 2
88: REM lére tranche incomplete
IF NC = 166 THEN TR$(K) = "CENT": GOTO 305: REM
Cent
GOTO 288
REM ###HHRRRRRRH RRR RRR ER ER
REM #DECOUPAGE DES CHAINES*
REM #¥HHHREREERH RRR HHREERE
FOR X = 1 TO 5@:C$¢(X) = "": NEXT X:NM = 1:DR =
1; FORT =17T0C
L$ = MIDS (C$,1,1): IF L$ > = "A" AND LE <( =
"2" THEN DR = @:C$<{NM) = C$(NM) + L$: GOTO 625
IF DR AND L$ = " " THEN 625
IF DR AND L$ = "-" THEN C$(NM - 1) = LEFTS (CS
CNM - 1), LEN (C$(NM - 1)) - 1) + L$: GOTO 625
IF L$ =" " OR L$ = "-" THEN DR = 1:C$<NM) = CB
(NM) + L$:NM = NM + 1
NEXT I: RETURN
REM ##HRH HERE E RRR RRR RREE
REM #EN TOUTES LETTRES..*
REM ¥HRHHH RHE HERR RR RRER
DATA "",UN,DEUX,TROIS,QUATRE ,CINQ,SIX,SEPT,HUIT
sNEUF
DATA DIX, ONZE ,DOUZE,TREIZE,QUATORZE ,QUINZE,SEIZ
E,DIX-SEPT ,D1X-HUIT ,DIX-NEUF
DATA VINGT,VINGT ET UN,VINGT-DEUX ,VINGT-TROIS,V
INGT-QUATRE , VINGT-CING@ ,VINGT-SIX ,VINGT-SEPT ,VIN
GT-HUIT ,VINGT-NEUF
DATA TRENTE,TRENTE ET UN, TRENTE-DEUX , TRENTE-TRO
1S, TRENTE-QUATRE , TRENTE-CING, TRENTE-SIX , TRENTE-
SEPT , TRENTE-HUIT , TRENTE-NEUF
DATA QUARANTE ,QUARANTE ET UN, QUARANTE-DEUX,QUA
ED7F
@BCA
5514
883A
883A
FSIF
865A
8404
8784
2345
883A
883A
E622
O66F
F8iS
E389
De4C
FSBS
8634
88348
F452
FE3B
D39F
3F83
585 Notez que :
1. la chaine propo-
sée, puis la chaine
modéle sont décou-
es en éliminant les
lancs et en terminant
chaque “mot” par un
blanc ou par un tiret.
2 absence d'un ti-
ret et/ou un tiret
illégal dans la chaine
proposée ne sont pas
décomptés comme
une faute.
Je vous conseille de
créer une ligne :
126 TEXT : PRINT CHRS(21)
: HOME
car le programme tra-
vaille en 40 colonnes.
D'autre part, sous
ProDOS, —_ remplacez
FLASH par INVERSE :
c'est aussi joli et sans
effet sur l'affichage !
Be ceueeewennesansesoesewsssescsesnnaEsEssEEsee SESE EsESESEHATeEEECasTEEEeEeUDETs sR EESoEUEEEOREEECCEsOSS
GUY-HACHETTE
eedsaesossuaeussenesseescorsnsesesssreeeErEsesasON sen eseeEeeeeeeee eee ooee ee eeeeeeeeeseeseeeeeEeeD
ATTENTION !
Ces lignes sont évi-
demment trés impor-
tantes.
Vous contrélerez
facilement la saisie
de vos programmes
(Basic et LM) en vous
offrant, une fois pour
toute, la disquette
SIGNATURE
(voir notre bulletin
de commande).
RANTE-TROIS ,QUARANTE-QUATRE , QUARANTE-CINQ, QUARA
NTE-SIX, QUARANTE-SEPT , QUARANTE-HUIT , QUARANTE-NE
UF 8F39
688 DATA CINQUANTE ,CINQUANTE ET UN, CINQUANTE-DEUX,C
INQUANTE-TROIS,CINQUANTE-QUATRE , CINQUANTE-CINQ,
CINQUANTE-S1X ,CINQUANTE-SEPT , CINQUANTE-HUIT ,CIN
QUANTE-NEUF 8FDF
685 DATA SOIXANTE,SOIXANTE ET UN,SOIXANTE-DEUX ,SOIX
ANTE-TROIS , SOIXANTE-QUATRE , SOIXANTE-CING , SOIXAN
TE-SIX ,SOIXANTE-SEPT , SOIXANTE-HUIT , SOIXANTE-NEU
F 547D
698 DATA SOIXANTE-DIX,SOIXANTE ET ONZE,SOI1XANTE-DOU
ZE,SOIXANTE-TREIZE ,SOIXANTE-QUATORZE , SOIXANTE-Q
UINZE , SOIXANTE-SEIZE,SO1XANTE-DIX-SEPT , SOIXANTE
-DIX-HUIT , SOIXANTE-DIX-NEUF 48D7
695 DATA QUATRE-VINGTS , QUATRE-VINGT-UN , QUATRE-VINGT
~DEUX , QUATRE-VINGT-TROIS , QUATRE-VINGT-QUATRE , QU
ATRE-VINGT-CING , QUATRE-VINGT-SIX , QUATRE-VINGT-S
EPT ,QUATRE-VINGT-HUIT , QUATRE-VINGT-NEUF 9E3C
786 DATA QUATRE-VINGT-D1X , QUATRE-VINGT-ONZE , QUATRE-
VINGT-DOUZE , QUATRE-VINGT-TREI ZE , QUATRE-VINGT-QU
ATORZE , QUATRE-VINGT-QUINZE , QUATRE-VINGT-SEIZE,Q
UATRE-VINGT-DIX-SEPT , QUATRE-VINGT-DIX-HUIT , QUAT
RE-VINGT-DIX-NEUF 3143
785 DATA “",CENT,DEUX CENT,TROIS CENT, QUATRE CENT ,C
INQ CENT,SIX CENT,SEPT CENT,HUIT CENT,NEUF CENT 212%
71@ DATA "", MILLE ,MILLION,MILLIARD,BILLION,MILLE 6F28
QUESTION :
Protection
de HGR
OU HGR2
Attention !
supprimer le LOMEM
éventuel du pro-
gramme concerné...
J'ai concu un programme graphique trop long pour se loger entre
$800, et $3FFF, adresse aprés laquelle commence HGR2... aussi
ést-ce un $.0.S. que je vous lance.
REPONSE : |I faut LOADer votre programme au-dessus de la
page que vous désirez protéger. Pour cela, tapez :
*HGR = POKE 103,1: POKE 104,64: POKE 16384,0
*HGR2 POKE 103,1: POKE 104,96: POKE 24576,0
Ensuite, LOAD PROGRAMME ou RUN PROGRAMME (celui-ci est
maintenant installé 4 sa nouvelle adresse).
Vous pouvez automatiser la chose par quelques lignes du type :
0 IF (PEEK (103) + PEEK (104) * 256) = 2049 THEN POKE 103,1:
POKE 104,96: POKE 24576,0: PRINT CHR$(4) “RUN PRO”
10 TEXT : HOME
20 PRINT PEEK (105) + PEEK (106) * 256
N’oubliez pas qu'il est possible d'utiliser la pseudo page 3 (voir la
collection de Tremplin Micro). *
Slalahetalaltalatalahalataalalatalalatale ate ialaleel alata eee deel edd dd deel
TREMPLIN MICRO
ae
29
Votre bibliotheque
INFORMATIQUE
¢ MATHEMATIQUE
ET INFORMATIQUE
(Cedic/Nathan)
Est-il maintenant l'heure de penser (r)évolu-
tion de notre enseignement qui donnerait la
priorité aux processus algorithmiques et,
travers eux, & une mathématique plus
active, plus vécue : faire des mathémati-
ques et non en contempler ? C'est la ques-
tion que pose |'introduction de ce livre. Une
question & laquelle neuf chapitres apportent
ensuite une multitude de réponses.
Si vous aimez les mathématiques et pouvez
prétendre & un niveau «terminale» ou au-
dessus, il est certain que cet ouvrage
d/Arthur Engel, adapt
Showing the first 100000 of 183402 characters.