Skip to main content

tremplin micro newsletter issue 11

  • PublicationApple Periodicals
  • Pages70
  • Sourcetremplin_micro_newsletter_issue_11.pdf
← Magazines tremplin micro newsletter issue 11
/ 70
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
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.

mp.ls